58 lines
1.5 KiB
C++
58 lines
1.5 KiB
C++
// Lzx.h
|
|
|
|
#ifndef __COMPRESS_LZX_H
|
|
#define __COMPRESS_LZX_H
|
|
|
|
namespace NCompress {
|
|
namespace NLzx {
|
|
|
|
const unsigned kBlockType_NumBits = 3;
|
|
const unsigned kBlockType_Verbatim = 1;
|
|
const unsigned kBlockType_Aligned = 2;
|
|
const unsigned kBlockType_Uncompressed = 3;
|
|
|
|
const unsigned kNumHuffmanBits = 16;
|
|
const unsigned kNumReps = 3;
|
|
|
|
const unsigned kNumLenSlots = 8;
|
|
const unsigned kMatchMinLen = 2;
|
|
const unsigned kNumLenSymbols = 249;
|
|
const unsigned kMatchMaxLen = kMatchMinLen + (kNumLenSlots - 1) + kNumLenSymbols - 1;
|
|
|
|
const unsigned kNumAlignLevelBits = 3;
|
|
const unsigned kNumAlignBits = 3;
|
|
const unsigned kAlignTableSize = 1 << kNumAlignBits;
|
|
|
|
const unsigned kNumPosSlots = 50;
|
|
const unsigned kNumPosLenSlots = kNumPosSlots * kNumLenSlots;
|
|
|
|
const unsigned kMainTableSize = 256 + kNumPosLenSlots;
|
|
const unsigned kLevelTableSize = 20;
|
|
const unsigned kMaxTableSize = kMainTableSize;
|
|
|
|
const unsigned kNumLevelBits = 4;
|
|
|
|
const unsigned kLevelSym_Zero1 = 17;
|
|
const unsigned kLevelSym_Zero2 = 18;
|
|
const unsigned kLevelSym_Same = 19;
|
|
|
|
const unsigned kLevelSym_Zero1_Start = 4;
|
|
const unsigned kLevelSym_Zero1_NumBits = 4;
|
|
|
|
const unsigned kLevelSym_Zero2_Start = kLevelSym_Zero1_Start + (1 << kLevelSym_Zero1_NumBits);
|
|
const unsigned kLevelSym_Zero2_NumBits = 5;
|
|
|
|
const unsigned kLevelSym_Same_NumBits = 1;
|
|
const unsigned kLevelSym_Same_Start = 4;
|
|
|
|
const unsigned kNumDictBits_Min = 15;
|
|
const unsigned kNumDictBits_Max = 21;
|
|
const UInt32 kDictSize_Max = (UInt32)1 << kNumDictBits_Max;
|
|
|
|
const unsigned kNumLinearPosSlotBits = 17;
|
|
const unsigned kNumPowerPosSlots = 38;
|
|
|
|
}}
|
|
|
|
#endif
|