MI_CompressHuffman

構文

#include <nitro/mi.h>

u32 MI_CompressHuffman( const u8 *srcp, u32 size, u8 *dstp, u8 huffBitSize, u8 *work);

引数

srcp 圧縮するデータが格納されているソースアドレス。
size 圧縮するソースデータサイズ。
dstp 圧縮先バッファへのポインタ、ソースデータサイズ以上の領域が必要です。要4バイトアライン。
huffBitSize ハフマン符号化するビットサイズ(4 or 8)
work ハフマン圧縮に使用するワークバッファ。MI_HUFFMAN_COMPRESS_WORK_SIZEのサイズが必要です。
要4バイトアライン。

返り値

圧縮データのサイズを返します。
もしも圧縮後のデータがソースファイルよりも大きくなる場合には、圧縮を行なわずに0を返します。

説明

ハフマン圧縮し、指定のメモリ領域に書き込みます。
圧縮先のバッファにはソースデータと同じサイズの領域を用意する必要があります。

8bit単位で書き込みますので、NITROの場合はdstpにVRAM上のアドレスを指定することはできません。
srcpにはNITRO/TWL共にVRAM上のアドレスを指定することが可能です。

内部動作

システムコール、DMAは使用せずCPUだけで処理します。

参照

MI_UncompressHuffman, MI_ReadUncompHuffman, MI_CompressLZ*, MI_CompressRL

履歴

2008/12/05 TWLに関する記述を追加した
2005/06/28 構文に work を追加した
2005/02/01 初版