# MI_UnfilterDiff*

## Syntax

  `#include <nitro/mi.h>`
  `void MI_UnfilterDiff8( const void* srcp, void* destp );`
  `void MI_UnfilterDiff16( const void* srcp, void* destp );`
  `void MI_UnfilterDiff32( const void* srcp, void* destp );`

## 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.

## Return Values

None.

## Description

This function expands the data to which the difference filter was applied and writes it to the 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_UnfilterDiff8` writes in 8-bit units. On NITRO, you cannot decompress directly to VRAM. On TWL, this is possible, but it is quite slow.
`MI_UnfilterDiff16` writes in 16-bit units. It is also possible to decompress to DTCM or VRAM.
`MI_UnfilterDiff32()` writes in 32-bit units.
It operates at a higher speed than both the `MI_UnfilterDiff8` and `MI_UnfilterDiff16` functions.
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_FilterDiff
MI_UncompressHuffman
MI_UncompressRL*
MI_UncompressLZ*
`

## Revision History

2008/07/02 Added the 32-bit version. Revised the description of internal operations.
2004/11/15 Initial version.

CONFIDENTIAL