Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. #include "common.h"
  2. #define kNumRepDistances 4
  3. #define kNumStates 12
  4. extern const byte kLiteralNextStates[kNumStates];
  5. extern const byte kMatchNextStates[kNumStates];
  6. extern const byte kRepNextStates[kNumStates];
  7. extern const byte kShortRepNextStates[kNumStates];
  8.  
  9. typedef byte CState;
  10. #define CState_Init(a) a=0
  11. #define CState_UpdateChar(a) a=kLiteralNextStates[a]
  12. #define CState_UpdateMatch(a) a=kMatchNextStates[a]
  13. #define CState_UpdateRep(a) a=kRepNextStates[a]
  14. #define CState_UpdateShortRep(a) a=kShortRepNextStates[a]
  15. #define CState_IsCharState(a) (a<7)
  16.  
  17. #define kNumPosSlotBits 6
  18. #define kDicLogSizeMin 0
  19. #define kDicLogSizeMax 32
  20. #define kDistTableSizeMax (kDicLogSizeMax*2)
  21. #define kNumLenToPosStates 4
  22.  
  23. #define GetLenToPosState(len) ((len<kNumLenToPosStates+2)?len-2:kNumLenToPosStates-1)
  24.  
  25. #define kNumPosStatesBitsMax    4
  26. #define kNumPosStatesMax        (1<<kNumPosStatesBitsMax)
  27.  
  28. #define kNumPosStatesBitsEncodingMax    4
  29. #define kNumPosStatesEncodingMax        (1 << kNumPosStatesBitsEncodingMax)
  30.  
  31. #define kNumLowBits     3
  32. #define kNumMidBits     3
  33. #define kNumHighBits    8
  34. #define kNumLowSymbols  (1<<kNumLowBits)
  35. #define kNumMidSymbols  (1<<kNumMidBits)
  36. #define kNumSymbolsTotal (kNumLowSymbols + kNumMidSymbols + (1<<kNumHighBits))
  37.  
  38. #define kMatchMinLen 2
  39. #define kMatchMaxLen (kMatchMinLen + kNumSymbolsTotal - 1)
  40.  
  41. #define kNumAlignBits 4
  42. #define kAlignTableSize (1<<kNumAlignBits)
  43. #define kAlignMask (kAlignTableSize-1)
  44.  
  45. #define kStartPosModelIndex 4
  46. #define kEndPosModelIndex 14
  47. #define kNumPosModels (kEndPosModelIndex-kStartPosModelIndex)
  48.  
  49. #define kNumFullDistances (1<<(kEndPosModelIndex/2))
  50. #define kNumLitPosStatesBitsEncodingMax 4
  51. #define kNumLitContextBitsMax 8
  52. #define kNumMoveBits 5
  53.