do int curAndLenPrice = price + _repMatchLenEncoder.getPrice(repLen - 2, posState); Optimal optimum = _optimum[repLen]; if (curAndLenPrice < optimum.Price)
do int curAndLenPrice = price + _repMatchLenEncoder.getPrice(repLen - 2, posState); Optimal optimum = _optimum[repLen]; if (curAndLenPrice < optimum.Price)
void init() { baseInit(); _rangeEncoder.init(); lzma.sdk.rangecoder.Encoder.initBitModels(_isMatch); lzma.sdk.rangecoder.Encoder.initBitModels(_isRep0Long); lzma.sdk.rangecoder.Encoder.initBitModels(_isRep); lzma.sdk.rangecoder.Encoder.initBitModels(_isRepG0); lzma.sdk.rangecoder.Encoder.initBitModels(_isRepG1); lzma.sdk.rangecoder.Encoder.initBitModels(_isRepG2); lzma.sdk.rangecoder.Encoder.initBitModels(_posEncoders); _literalEncoder.init(); for (int i = 0; i < Base.kNumLenToPosStates; i++) { _posSlotEncoder[i].init(); } _lenEncoder.init(1 << _posStateBits); _repMatchLenEncoder.init(1 << _posStateBits); _posAlignEncoder.init(); _longestMatchWasFound = false; _optimumEndIndex = 0; _optimumCurrentIndex = 0; _additionalOffset = 0; }
void init() { baseInit(); _rangeEncoder.init(); lzma.sdk.rangecoder.Encoder.initBitModels(_isMatch); lzma.sdk.rangecoder.Encoder.initBitModels(_isRep0Long); lzma.sdk.rangecoder.Encoder.initBitModels(_isRep); lzma.sdk.rangecoder.Encoder.initBitModels(_isRepG0); lzma.sdk.rangecoder.Encoder.initBitModels(_isRepG1); lzma.sdk.rangecoder.Encoder.initBitModels(_isRepG2); lzma.sdk.rangecoder.Encoder.initBitModels(_posEncoders); _literalEncoder.init(); for (int i = 0; i < Base.kNumLenToPosStates; i++) { _posSlotEncoder[i].init(); } _lenEncoder.init(1 << _posStateBits); _repMatchLenEncoder.init(1 << _posStateBits); _posAlignEncoder.init(); _longestMatchWasFound = false; _optimumEndIndex = 0; _optimumCurrentIndex = 0; _additionalOffset = 0; }
void writeEndMarker(int posState) throws IOException { if (!_writeEndMark) { return; } _rangeEncoder.encode(_isMatch, (_state << Base.kNumPosStatesBitsMax) + posState, 1); _rangeEncoder.encode(_isRep, _state, 0); _state = Base.stateUpdateMatch(_state); int len = Base.kMatchMinLen; _lenEncoder.encode(_rangeEncoder, len - Base.kMatchMinLen, posState); int posSlot = (1 << Base.kNumPosSlotBits) - 1; int lenToPosState = Base.getLenToPosState(len); _posSlotEncoder[lenToPosState].encode(_rangeEncoder, posSlot); int footerBits = 30; int posReduced = (1 << footerBits) - 1; _rangeEncoder.encodeDirectBits(posReduced >> Base.kNumAlignBits, footerBits - Base.kNumAlignBits); _posAlignEncoder.reverseEncode(_rangeEncoder, posReduced & Base.kAlignMask); }
void setStreams(java.io.InputStream inStream, java.io.OutputStream outStream ) { _inStream = inStream; _finished = false; create(); setOutStream(outStream); init(); // if (!_fastMode) { fillDistancesPrices(); fillAlignPrices(); } _lenEncoder.setTableSize(_numFastBytes + 1 - Base.kMatchMinLen); _lenEncoder.updateTables(1 << _posStateBits); _repMatchLenEncoder.setTableSize(_numFastBytes + 1 - Base.kMatchMinLen); _repMatchLenEncoder.updateTables(1 << _posStateBits); nowPos64 = 0; }
void writeEndMarker(int posState) throws IOException { if (!_writeEndMark) { return; } _rangeEncoder.encode(_isMatch, (_state << Base.kNumPosStatesBitsMax) + posState, 1); _rangeEncoder.encode(_isRep, _state, 0); _state = Base.stateUpdateMatch(_state); int len = Base.kMatchMinLen; _lenEncoder.encode(_rangeEncoder, len - Base.kMatchMinLen, posState); int posSlot = (1 << Base.kNumPosSlotBits) - 1; int lenToPosState = Base.getLenToPosState(len); _posSlotEncoder[lenToPosState].encode(_rangeEncoder, posSlot); int footerBits = 30; int posReduced = (1 << footerBits) - 1; _rangeEncoder.encodeDirectBits(posReduced >> Base.kNumAlignBits, footerBits - Base.kNumAlignBits); _posAlignEncoder.reverseEncode(_rangeEncoder, posReduced & Base.kAlignMask); }
void setStreams(java.io.InputStream inStream, java.io.OutputStream outStream ) { _inStream = inStream; _finished = false; create(); setOutStream(outStream); init(); // if (!_fastMode) { fillDistancesPrices(); fillAlignPrices(); } _lenEncoder.setTableSize(_numFastBytes + 1 - Base.kMatchMinLen); _lenEncoder.updateTables(1 << _posStateBits); _repMatchLenEncoder.setTableSize(_numFastBytes + 1 - Base.kMatchMinLen); _repMatchLenEncoder.updateTables(1 << _posStateBits); nowPos64 = 0; }
int getPosLenPrice(int pos, int len, int posState) { int price; int lenToPosState = Base.getLenToPosState(len); if (pos < Base.kNumFullDistances) { price = _distancesPrices[(lenToPosState * Base.kNumFullDistances) + pos]; } else { price = _posSlotPrices[(lenToPosState << Base.kNumPosSlotBits) + getPosSlot2(pos)] + _alignPrices[pos & Base.kAlignMask]; } return price + _lenEncoder.getPrice(len - Base.kMatchMinLen, posState); }
int getPosLenPrice(int pos, int len, int posState) { int price; int lenToPosState = Base.getLenToPosState(len); if (pos < Base.kNumFullDistances) { price = _distancesPrices[(lenToPosState * Base.kNumFullDistances) + pos]; } else { price = _posSlotPrices[(lenToPosState << Base.kNumPosSlotBits) + getPosSlot2(pos)] + _alignPrices[pos & Base.kAlignMask]; } return price + _lenEncoder.getPrice(len - Base.kMatchMinLen, posState); }
public void encode(lzma.sdk.rangecoder.Encoder rangeEncoder, int symbol, int posState) throws IOException { super.encode(rangeEncoder, symbol, posState); if (--_counters[posState] == 0) { updateTable(posState); } } }
int getRepPrice(int repIndex, int len, int state, int posState) { int price = _repMatchLenEncoder.getPrice(len - Base.kMatchMinLen, posState); return price + getPureRepPrice(repIndex, state, posState); }
int getRepPrice(int repIndex, int len, int state, int posState) { int price = _repMatchLenEncoder.getPrice(len - Base.kMatchMinLen, posState); return price + getPureRepPrice(repIndex, state, posState); }
public void updateTables(int numPosStates) { for (int posState = 0; posState < numPosStates; posState++) { updateTable(posState); } }
void updateTable(int posState) { setPrices(posState, _tableSize, _prices, posState * Base.kNumLenSymbols); _counters[posState] = _tableSize; }
public void updateTables(int numPosStates) { for (int posState = 0; posState < numPosStates; posState++) { updateTable(posState); } }
void updateTable(int posState) { setPrices(posState, _tableSize, _prices, posState * Base.kNumLenSymbols); _counters[posState] = _tableSize; }
public void encode(lzma.sdk.rangecoder.Encoder rangeEncoder, int symbol, int posState) throws IOException { super.encode(rangeEncoder, symbol, posState); if (--_counters[posState] == 0) { updateTable(posState); } } }