SLAU131V October 2004 – February 2020
The following subsections provide information about decompression algorithms for the RLE and LZSS formats. To see example decompression algorithms, refer to the following functions in the Run-Time Support library:
Additional information about compression algorithms can be found in the MSP430 Embedded Application Binary Interface Application Report (SLAA534) EABI specification.
Run Length Encoding (RLE):
8-bit index | Initialization data compressed using run length encoding |
The data following the 8-bit index is compressed using run length encoded (RLE) format. MSP430 uses a simple run length encoding that can be decompressed using the following algorithm. See copy_decompress_rle.c for details.
The MSP430 run-time support library has a routine __TI_decompress_rle24() to decompress data compressed using RLE. The first argument to this function is the address pointing to the byte after the 8-bit index. The second argument is the run address from the C auto initialization record.
NOTE
RLE Decompression RoutineThe previous decompression routine, __TI_decompress_rle(), is included in the run-time-support library for decompressing RLE encodings that are generated by older versions of the linker.
Lempel-Ziv-Storer-Szymanski Compression (LZSS):
8-bit index | Data compressed using LZSS |
The data following the 8-bit index is compressed using LZSS compression. The MSP430 run-time-support library has the routine __TI_decompress_lzss() to decompress the data compressed using LZSS. The first argument to this function is the address pointing to the byte after the 8-bit Index, and the second argument is the run address from the C auto initialization record.
See copy_decompress_lzss.c for details on the LZSS algorithm.