boolean setLcLpPb(int lc, int lp, int pb) { if (lc > Base.kNumLitContextBitsMax || lp > 4 || pb > Base.kNumPosStatesBitsMax) { return false; } m_LiteralDecoder.create(lp, lc); int numPosStates = 1 << pb; m_LenDecoder.create(numPosStates); m_RepLenDecoder.create(numPosStates); m_PosStateMask = numPosStates - 1; return true; }
len = m_RepLenDecoder.decode(m_RangeDecoder, posState) + Base.kMatchMinLen; state = Base.stateUpdateRep(state); rep2 = rep1; rep1 = rep0; len = Base.kMatchMinLen + m_LenDecoder.decode(m_RangeDecoder, posState); state = Base.stateUpdateMatch(state); int posSlot = m_PosSlotDecoder[Base.getLenToPosState(len)].decode(m_RangeDecoder);
void init() throws IOException { m_OutWindow.init(false); lzma.sdk.rangecoder.Decoder.initBitModels(m_IsMatchDecoders); lzma.sdk.rangecoder.Decoder.initBitModels(m_IsRep0LongDecoders); lzma.sdk.rangecoder.Decoder.initBitModels(m_IsRepDecoders); lzma.sdk.rangecoder.Decoder.initBitModels(m_IsRepG0Decoders); lzma.sdk.rangecoder.Decoder.initBitModels(m_IsRepG1Decoders); lzma.sdk.rangecoder.Decoder.initBitModels(m_IsRepG2Decoders); lzma.sdk.rangecoder.Decoder.initBitModels(m_PosDecoders); m_LiteralDecoder.init(); int i; for (i = 0; i < Base.kNumLenToPosStates; i++) { m_PosSlotDecoder[i].init(); } m_LenDecoder.init(); m_RepLenDecoder.init(); m_PosAlignDecoder.init(); m_RangeDecoder.init(); }
len = m_RepLenDecoder.decode(m_RangeDecoder, posState) + Base.kMatchMinLen; state = Base.stateUpdateRep(state); rep2 = rep1; rep1 = rep0; len = Base.kMatchMinLen + m_LenDecoder.decode(m_RangeDecoder, posState); state = Base.stateUpdateMatch(state); int posSlot = m_PosSlotDecoder[Base.getLenToPosState(len)].decode(m_RangeDecoder);
void init() throws IOException { m_OutWindow.init(false); lzma.sdk.rangecoder.Decoder.initBitModels(m_IsMatchDecoders); lzma.sdk.rangecoder.Decoder.initBitModels(m_IsRep0LongDecoders); lzma.sdk.rangecoder.Decoder.initBitModels(m_IsRepDecoders); lzma.sdk.rangecoder.Decoder.initBitModels(m_IsRepG0Decoders); lzma.sdk.rangecoder.Decoder.initBitModels(m_IsRepG1Decoders); lzma.sdk.rangecoder.Decoder.initBitModels(m_IsRepG2Decoders); lzma.sdk.rangecoder.Decoder.initBitModels(m_PosDecoders); m_LiteralDecoder.init(); int i; for (i = 0; i < Base.kNumLenToPosStates; i++) { m_PosSlotDecoder[i].init(); } m_LenDecoder.init(); m_RepLenDecoder.init(); m_PosAlignDecoder.init(); m_RangeDecoder.init(); }
boolean setLcLpPb(int lc, int lp, int pb) { if (lc > Base.kNumLitContextBitsMax || lp > 4 || pb > Base.kNumPosStatesBitsMax) { return false; } m_LiteralDecoder.create(lp, lc); int numPosStates = 1 << pb; m_LenDecoder.create(numPosStates); m_RepLenDecoder.create(numPosStates); m_PosStateMask = numPosStates - 1; return true; }