MI_FilterDiff*

Syntax

#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 );

Arguments

srcp The source address where difference filtered-data is stored.
destp The destination address where the data is expanded. Can be the same region as the source address.
size Size of the source address. It is expressed in bytes.
bitsize Bit depth of the difference filter. 16-bit if TRUE; 8-bit if FALSE.

Return Values

None.

Description

Encodes data using a difference filter, then writes it to a specified memory region. The source address must be aligned to a 4-byte boundary. When the size of the compressed data is not a multiple of 4, adjust by padding it with zeros. The pointers to the source and destination addresses may point to the same region.

MI_FilterDiff8() writes in 8-bit units. On NITRO, you cannot decompress directly to VRAM.


MI_FilterDiff16() writes in 16-bit units. It is also possible to decompress to DTCM or VRAM.


MI_FilterDiff32() writes in 32-bit units. It operates at a higher speed than both MI_FilterDiff8() and MI_FilterDiff16(). It is also possible to decompress to DTCM or VRAM.

Internal Operation

Processing only takes place on the CPU, without the use of a system call or DMA.

See Also

MI_UnfilterDiff, MI_CompressRL, MI_CompressHuffman

Revision History

2008/07/02 Initial version.


CONFIDENTIAL