Files
easy7zip/C/lizard/ENTROPY.md
Tino Reichardt b2d7bd30d7 Update Lizard - use internal HUF and FSE entropy
- AdjustLiz.sh fixes some double defines with zstd of lizard
- lizard uses it's own entropy lib again
- this will fix #302

Signed-off-by: Tino Reichardt <milky-7zip@mcmilk.de>
2023-02-27 14:43:39 +01:00

1.5 KiB

New Generation Entropy library

The lib directory contains several files, but you don't necessarily want them all. Here is a detailed list, to help you decide which one you need :

Compulsory files

These files are required in all circumstances :

  • error_public.h : error list as enum
  • error_private.h : error management
  • mem.h : low level memory access routines
  • bitstream.h : generic read/write bitstream common to all entropy codecs
  • entropy_common.c : common functions needed for both compression and decompression

Finite State Entropy

This is the base codec required by other ones. It implements a tANS variant, similar to arithmetic in compression performance, but much faster. Compression and decompression can be compiled independently.

  • fse.h : exposes interfaces
  • fse_compress.c : implements compression codec
  • fse_decompress.c : implements decompression codec

FSE 16-bits symbols version

This codec is able to encode alphabets of size > 256, using 2 bytes per symbol. It requires the base FSE codec to compile properly. Compression and decompression are merged in the same file.

  • fseU16.c implements the codec, while fseU16.h exposes its interfaces.

Huffman codec

This is the fast huffman codec. It requires the base FSE codec to compress its headers. Compression and decompression can be compiled independently.

  • huf.h : exposes interfaces.
  • huf_compress.c : implements compression codec
  • huf_decompress.c : implements decompression codec