MI_FilterDiff* 

構文

#include <nitro/mi.h>

void MI_FilterDiff8( const void *srcp, void *destp, u32 size, BOOL bitsize );
void MI_FilterDiff16( const void *srcp, void *destp, u32 size, BOOL bitsize );
void MI_FilterDiff32( const void *srcp, void *destp, u32 size, BOOL bitsize );

引数

srcp 差分フィルタがかけられたデータの格納されているソースアドレス
destp 展開するディスティネーションアドレス。ソースアドレスと同じ領域でも構いません。
size ソースアドレスのサイズ。単位はbyteです。
bitsize 差分フィルタのビット深度。TRUEの場合16bitで、FALSEの場合8bit。

返り値

なし。

説明

データを差分フィルタで符号化し、指定のメモリ領域に書き込みます。
ソースアドレスは4byte 境界に合わせてください。
圧縮データのサイズが4の倍数にならなかった場合は出来るだけ0で詰めて調整してください。

ソースアドレスとデスティネーションアドレスに同じ領域へのポインタを渡しても構いません。

MI_FilterDiff8() は、8bit単位で書き込みます。
NITROではVRAMに直接展開することは出来ません。

MI_FilterDiff16()は、16bit単位で書き込みます。
DTCMやVRAMにも展開できます。

MI_FilterDiff32()は、32bit単位で書き込みます。
MI_FilterDiff8()・MI_FilterDiff16()よりも高速に動作します。
DTCMやVRAMにも展開できます。

内部動作

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

参照

MI_UnfilterDiff, MI_CompressRL, MI_CompressHuffman

履歴

2008/07/02 初版