2.5 LZNT1 Algorithm Details

The LZNT1 algorithm employs a grammar common to LZ77 variants, making use of LZ77 [UASDC] literals and matches and using the characteristic processing. The LZNT1 algorithm is comparable to the Plain LZ77 variant, which implements the features of LZ77 through a specialized buffer format as specified in section 2.3 and section 2.4. Key differences between the "plain" and LZNT1 variants include the following:

  • LZNT1 uses a less complex process to encode lengths.

  • LZNT1 varies the number of bits used to encode length and distance, whereas the sizes of the Plain LZ77-encoded fields are fixed.

  • LZNT1 groups flags in bytes; Plain LZ77 groups them in 4-byte DWORDs.

  • The LZNT1 buffer is structured as a series of chunks that can be independently decompressed.