Lines Matching defs:coder

222 	// Range coder
294 lzma_lzma1_decoder *restrict coder = coder_ptr;
302 &coder->rc, in, in_pos, in_size);
319 rc_to_local(coder->rc, *in_pos);
322 uint32_t state = coder->state;
323 uint32_t rep0 = coder->rep0;
324 uint32_t rep1 = coder->rep1;
325 uint32_t rep2 = coder->rep2;
326 uint32_t rep3 = coder->rep3;
328 const uint32_t pos_mask = coder->pos_mask;
332 probability *probs = coder->probs;
333 uint32_t symbol = coder->symbol;
334 uint32_t limit = coder->limit;
335 uint32_t offset = coder->offset;
336 uint32_t len = coder->len;
338 const uint32_t literal_pos_mask = coder->literal_pos_mask;
339 const uint32_t literal_context_bits = coder->literal_context_bits;
348 const bool no_eopm = coder->uncompressed_size
350 if (no_eopm && coder->uncompressed_size < dict.limit - dict.pos)
351 dict.limit = dict.pos + (size_t)(coder->uncompressed_size);
355 switch (coder->sequence)
367 rc_if_0(coder->is_match[state][pos_state], SEQ_IS_MATCH) {
368 rc_update_0(coder->is_match[state][pos_state]);
372 probs = literal_subcoder(coder->literal,
486 coder->sequence = SEQ_LITERAL_WRITE;
497 rc_update_1(coder->is_match[state][pos_state]);
500 rc_if_0(coder->is_rep[state], SEQ_IS_REP) {
502 rc_update_0(coder->is_rep[state]);
512 len_decode(len, coder->match_len_decoder,
517 probs = coder->dist_slot[get_dist_state(len)];
564 probs = coder->pos_special + rep0
636 rc_bit(coder->pos_align[
643 rc_bit(coder->pos_align[symbol], ,
646 rc_bit(coder->pos_align[symbol], ,
649 rc_bit(coder->pos_align[symbol], ,
655 rc_bit_last(coder->pos_align[symbol], ,
664 if (coder->uncompressed_size
687 rc_update_1(coder->is_rep[state]);
704 rc_if_0(coder->is_rep0[state], SEQ_IS_REP0) {
705 rc_update_0(coder->is_rep0[state]);
709 rc_if_0(coder->is_rep0_long[state][pos_state],
711 rc_update_0(coder->is_rep0_long[
719 coder->sequence = SEQ_SHORTREP;
728 rc_update_1(coder->is_rep0_long[
732 rc_update_1(coder->is_rep0[state]);
739 rc_if_0(coder->is_rep1[state], SEQ_IS_REP1) {
740 rc_update_0(coder->is_rep1[state]);
747 rc_update_1(coder->is_rep1[state]);
749 rc_if_0(coder->is_rep2[state],
751 rc_update_0(coder->is_rep2[
760 rc_update_1(coder->is_rep2[
775 len_decode(len, coder->rep_len_decoder,
791 coder->sequence = SEQ_COPY;
797 coder->sequence = SEQ_IS_MATCH;
806 rc_from_local(coder->rc, *in_pos);
808 coder->state = state;
809 coder->rep0 = rep0;
810 coder->rep1 = rep1;
811 coder->rep2 = rep2;
812 coder->rep3 = rep3;
814 coder->probs = probs;
815 coder->symbol = symbol;
816 coder->limit = limit;
817 coder->offset = offset;
818 coder->len = len;
822 if (coder->uncompressed_size != LZMA_VLI_UNKNOWN) {
823 coder->uncompressed_size -= dict.pos - dict_start;
828 if (coder->uncompressed_size == 0 && ret == LZMA_OK
829 && coder->sequence != SEQ_NORMALIZE)
830 ret = coder->sequence == SEQ_IS_MATCH
837 if (!rc_is_finished(coder->rc))
842 rc_reset(coder->rc);
853 lzma_lzma1_decoder *coder = coder_ptr;
854 coder->uncompressed_size = uncompressed_size;
861 lzma_lzma1_decoder *coder = coder_ptr;
868 coder->pos_mask = (1U << options->pb) - 1;
871 literal_init(coder->literal, options->lc, options->lp);
873 coder->literal_context_bits = options->lc;
874 coder->literal_pos_mask = (1U << options->lp) - 1;
877 coder->state = STATE_LIT_LIT;
878 coder->rep0 = 0;
879 coder->rep1 = 0;
880 coder->rep2 = 0;
881 coder->rep3 = 0;
882 coder->pos_mask = (1U << options->pb) - 1;
885 rc_reset(coder->rc);
889 for (uint32_t j = 0; j <= coder->pos_mask; ++j) {
890 bit_reset(coder->is_match[i][j]);
891 bit_reset(coder->is_rep0_long[i][j]);
894 bit_reset(coder->is_rep[i]);
895 bit_reset(coder->is_rep0[i]);
896 bit_reset(coder->is_rep1[i]);
897 bit_reset(coder->is_rep2[i]);
901 bittree_reset(coder->dist_slot[i], DIST_SLOT_BITS);
904 bit_reset(coder->pos_special[i]);
906 bittree_reset(coder->pos_align, ALIGN_BITS);
910 bit_reset(coder->match_len_decoder.choice);
911 bit_reset(coder->match_len_decoder.choice2);
912 bit_reset(coder->rep_len_decoder.choice);
913 bit_reset(coder->rep_len_decoder.choice2);
916 bittree_reset(coder->match_len_decoder.low[pos_state],
918 bittree_reset(coder->match_len_decoder.mid[pos_state],
921 bittree_reset(coder->rep_len_decoder.low[pos_state],
923 bittree_reset(coder->rep_len_decoder.mid[pos_state],
927 bittree_reset(coder->match_len_decoder.high, LEN_HIGH_BITS);
928 bittree_reset(coder->rep_len_decoder.high, LEN_HIGH_BITS);
930 coder->sequence = SEQ_IS_MATCH;
931 coder->probs = NULL;
932 coder->symbol = 0;
933 coder->limit = 0;
934 coder->offset = 0;
935 coder->len = 0;
945 if (lz->coder == NULL) {
946 lz->coder = lzma_alloc(sizeof(lzma_lzma1_decoder), allocator);
947 if (lz->coder == NULL)
979 lzma_decoder_reset(lz->coder, options);
980 lzma_decoder_uncompressed(lz->coder, LZMA_VLI_UNKNOWN);