mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-07 09:15:00 -06:00
62 lines
1.5 KiB
C++
Executable File
62 lines
1.5 KiB
C++
Executable File
// Lzx.h
|
|
|
|
#ifndef __COMPRESS_LZX_H
|
|
#define __COMPRESS_LZX_H
|
|
|
|
namespace NCompress {
|
|
namespace NLzx {
|
|
|
|
const int kNumHuffmanBits = 16;
|
|
const UInt32 kNumRepDistances = 3;
|
|
|
|
const UInt32 kNumLenSlots = 8;
|
|
const UInt32 kMatchMinLen = 2;
|
|
const UInt32 kNumLenSymbols = 249;
|
|
const UInt32 kMatchMaxLen = kMatchMinLen + (kNumLenSlots - 1) + kNumLenSymbols - 1;
|
|
|
|
const int kNumAlignBits = 3;
|
|
const UInt32 kAlignTableSize = 1 << kNumAlignBits;
|
|
|
|
const UInt32 kNumPosSlots = 50;
|
|
const UInt32 kNumPosLenSlots = kNumPosSlots * kNumLenSlots;
|
|
|
|
const UInt32 kMainTableSize = 256 + kNumPosLenSlots;
|
|
const UInt32 kLevelTableSize = 20;
|
|
const UInt32 kMaxTableSize = kMainTableSize;
|
|
|
|
const int kNumBlockTypeBits = 3;
|
|
const int kBlockTypeVerbatim = 1;
|
|
const int kBlockTypeAligned = 2;
|
|
const int kBlockTypeUncompressed = 3;
|
|
|
|
const int kUncompressedBlockSizeNumBits = 24;
|
|
|
|
const int kNumBitsForPreTreeLevel = 4;
|
|
|
|
const int kLevelSymbolZeros = 17;
|
|
const int kLevelSymbolZerosBig = 18;
|
|
const int kLevelSymbolSame = 19;
|
|
|
|
const int kLevelSymbolZerosStartValue = 4;
|
|
const int kLevelSymbolZerosNumBits = 4;
|
|
|
|
const int kLevelSymbolZerosBigStartValue = kLevelSymbolZerosStartValue +
|
|
(1 << kLevelSymbolZerosNumBits);
|
|
const int kLevelSymbolZerosBigNumBits = 5;
|
|
|
|
const int kLevelSymbolSameNumBits = 1;
|
|
const int kLevelSymbolSameStartValue = 4;
|
|
|
|
const int kNumBitsForAlignLevel = 3;
|
|
|
|
const int kNumDictionaryBitsMin = 15;
|
|
const int kNumDictionaryBitsMax = 21;
|
|
const UInt32 kDictionarySizeMax = (1 << kNumDictionaryBitsMax);
|
|
|
|
const int kNumLinearPosSlotBits = 17;
|
|
const UInt32 kNumPowerPosSlots = 0x26;
|
|
|
|
}}
|
|
|
|
#endif
|