⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lzma.h

📁 经过项目量产验证的代码.开发环境是sparc+vxworks. 这个LZMA是专门为sparc做的优化压缩,性能是最好的.
💻 H
字号:
// LZMA.h#include "LenCoder.h"#ifndef __LZMA_H#define __LZMA_Hconst int kNumRepDistances = 4;const BYTE kNumStates = 12;const BYTE kLiteralNextStates[kNumStates] = {0, 0, 0, 0, 1, 2, 3, 4,  5,  6,   4, 5};const BYTE kMatchNextStates[kNumStates]   = {7, 7, 7, 7, 7, 7, 7, 10, 10, 10, 10, 10};const BYTE kRepNextStates[kNumStates]     = {8, 8, 8, 8, 8, 8, 8, 11, 11, 11, 11, 11};const BYTE kShortRepNextStates[kNumStates]= {9, 9, 9, 9, 9, 9, 9, 11, 11, 11, 11, 11};class CState{public:  BYTE m_Index;  void Init()    { m_Index = 0; }  void UpdateChar()    { m_Index = kLiteralNextStates[m_Index]; }  void UpdateMatch()    { m_Index = kMatchNextStates[m_Index]; }  void UpdateRep()    { m_Index = kRepNextStates[m_Index]; }  void UpdateShortRep()    { m_Index = kShortRepNextStates[m_Index]; }};const int kNumPosSlotBits = 6; const int kDicLogSizeMax = 28; const int kDistTableSizeMax = kDicLogSizeMax * 2; extern UINT32 kDistStart[kDistTableSizeMax];const BYTE kDistDirectBits[kDistTableSizeMax] = {  0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,  10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19,   20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26 };const int kNumLenToPosStates = 4;inline int GetLenToPosState(int len){  len -= 2;  if (len < kNumLenToPosStates)    return len;  return kNumLenToPosStates - 1;}const int kMatchMinLen = 2;const int kMatchMaxLen = kMatchMinLen + kLenNumSymbolsTotal - 1;const int kNumAlignBits = 4;const int kAlignTableSize = 1 << kNumAlignBits;// const UINT32 kAlignMask = (kAlignTableSize - 1);const int kStartPosModelIndex = 4;const int kEndPosModelIndex = 14;const int kNumPosModels = kEndPosModelIndex - kStartPosModelIndex;const int kNumFullDistances = 1 << (kEndPosModelIndex / 2);const int kMainChoiceLiteralIndex = 0;const int kMainChoiceMatchIndex = 1;const int kMatchChoiceDistanceIndex = 0;const int kMatchChoiceRepetitionIndex = 1;const int kNumLitPosStatesBitsEncodingMax = 4;const int kNumLitContextBitsMax = 8;#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -