📄 coder.cpp
字号:
inline unsigned int RangeCoder::GetChar(){ return(UnpackRead->GetChar());}void RangeCoder::InitDecoder(Unpack *UnpackRead){ RangeCoder::UnpackRead=UnpackRead; low=code=0; range=uint(-1); for (int i=0;i < 4;i++) code=(code << 8) | GetChar();}#define ARI_DEC_NORMALIZE(code,low,range,read) \{ \ while ((low^(low+range))<TOP || range<BOT && ((range=-low&(BOT-1)),1)) \ { \ code=(code << 8) | read->GetChar(); \ range <<= 8; \ low <<= 8; \ } \}inline int RangeCoder::GetCurrentCount() { return (code-low)/(range /= SubRange.scale);}inline uint RangeCoder::GetCurrentShiftCount(uint SHIFT) { return (code-low)/(range >>= SHIFT);}inline void RangeCoder::Decode(){ low += range*SubRange.LowCount; range *= SubRange.HighCount-SubRange.LowCount;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -