Lines Matching refs:coder

46 literal(lzma_lzma1_encoder *coder, lzma_mf *mf, uint32_t position)  in literal()  argument
51 probability *subcoder = literal_subcoder(coder->literal, in literal()
52 coder->literal_context_bits, coder->literal_pos_mask, in literal()
55 if (is_literal_state(coder->state)) { in literal()
58 rc_bittree(&coder->rc, subcoder, 8, cur_byte); in literal()
64 mf->read_pos - coder->reps[0] - 1 in literal()
66 literal_matched(&coder->rc, subcoder, match_byte, cur_byte); in literal()
69 update_literal(coder->state); in literal()
143 match(lzma_lzma1_encoder *coder, const uint32_t pos_state, in match() argument
146 update_match(coder->state); in match()
148 length(&coder->rc, &coder->match_len_encoder, pos_state, len, in match()
149 coder->fast_mode); in match()
153 rc_bittree(&coder->rc, coder->dist_slot[dist_state], in match()
164 rc_bittree_reverse(&coder->rc, in match()
165 coder->dist_special + base - dist_slot - 1, in match()
168 rc_direct(&coder->rc, dist_reduced >> ALIGN_BITS, in match()
171 &coder->rc, coder->dist_align, in match()
173 ++coder->align_price_count; in match()
177 coder->reps[3] = coder->reps[2]; in match()
178 coder->reps[2] = coder->reps[1]; in match()
179 coder->reps[1] = coder->reps[0]; in match()
180 coder->reps[0] = distance; in match()
181 ++coder->match_price_count; in match()
190 rep_match(lzma_lzma1_encoder *coder, const uint32_t pos_state, in rep_match() argument
194 rc_bit(&coder->rc, &coder->is_rep0[coder->state], 0); in rep_match()
195 rc_bit(&coder->rc, in rep_match()
196 &coder->is_rep0_long[coder->state][pos_state], in rep_match()
199 const uint32_t distance = coder->reps[rep]; in rep_match()
200 rc_bit(&coder->rc, &coder->is_rep0[coder->state], 1); in rep_match()
203 rc_bit(&coder->rc, &coder->is_rep1[coder->state], 0); in rep_match()
205 rc_bit(&coder->rc, &coder->is_rep1[coder->state], 1); in rep_match()
206 rc_bit(&coder->rc, &coder->is_rep2[coder->state], in rep_match()
210 coder->reps[3] = coder->reps[2]; in rep_match()
212 coder->reps[2] = coder->reps[1]; in rep_match()
215 coder->reps[1] = coder->reps[0]; in rep_match()
216 coder->reps[0] = distance; in rep_match()
220 update_short_rep(coder->state); in rep_match()
222 length(&coder->rc, &coder->rep_len_encoder, pos_state, len, in rep_match()
223 coder->fast_mode); in rep_match()
224 update_long_rep(coder->state); in rep_match()
234 encode_symbol(lzma_lzma1_encoder *coder, lzma_mf *mf, in encode_symbol() argument
237 const uint32_t pos_state = position & coder->pos_mask; in encode_symbol()
242 rc_bit(&coder->rc, in encode_symbol()
243 &coder->is_match[coder->state][pos_state], 0); in encode_symbol()
244 literal(coder, mf, position); in encode_symbol()
247 rc_bit(&coder->rc, in encode_symbol()
248 &coder->is_match[coder->state][pos_state], 1); in encode_symbol()
253 rc_bit(&coder->rc, &coder->is_rep[coder->state], 1); in encode_symbol()
254 rep_match(coder, pos_state, back, len); in encode_symbol()
257 rc_bit(&coder->rc, &coder->is_rep[coder->state], 0); in encode_symbol()
258 match(coder, pos_state, back - REPS, len); in encode_symbol()
268 encode_init(lzma_lzma1_encoder *coder, lzma_mf *mf) in encode_init() argument
284 rc_bit(&coder->rc, &coder->is_match[0][0], 0); in encode_init()
285 rc_bittree(&coder->rc, coder->literal[0], 8, mf->buffer[0]); in encode_init()
289 coder->is_initialized = true; in encode_init()
296 encode_eopm(lzma_lzma1_encoder *coder, uint32_t position) in encode_eopm() argument
298 const uint32_t pos_state = position & coder->pos_mask; in encode_eopm()
299 rc_bit(&coder->rc, &coder->is_match[coder->state][pos_state], 1); in encode_eopm()
300 rc_bit(&coder->rc, &coder->is_rep[coder->state], 0); in encode_eopm()
301 match(coder, pos_state, UINT32_MAX, MATCH_LEN_MIN); in encode_eopm()
312 lzma_lzma_encode(lzma_lzma1_encoder *restrict coder, lzma_mf *restrict mf, in lzma_lzma_encode() argument
317 if (!coder->is_initialized && !encode_init(coder, mf)) in lzma_lzma_encode()
330 if (rc_encode(&coder->rc, out, out_pos, out_size)) { in lzma_lzma_encode()
340 || *out_pos + rc_pending(&coder->rc) in lzma_lzma_encode()
365 if (coder->fast_mode) in lzma_lzma_encode()
366 lzma_lzma_optimum_fast(coder, mf, &back, &len); in lzma_lzma_encode()
369 coder, mf, &back, &len, position); in lzma_lzma_encode()
371 encode_symbol(coder, mf, back, len, position); in lzma_lzma_encode()
376 if (!coder->is_flushed) { in lzma_lzma_encode()
377 coder->is_flushed = true; in lzma_lzma_encode()
382 encode_eopm(coder, position); in lzma_lzma_encode()
385 rc_flush(&coder->rc); in lzma_lzma_encode()
391 if (rc_encode(&coder->rc, out, out_pos, out_size)) { in lzma_lzma_encode()
398 coder->is_flushed = false; in lzma_lzma_encode()
405 lzma_encode(void *coder, lzma_mf *restrict mf, in lzma_encode() argument
413 return lzma_lzma_encode(coder, mf, out, out_pos, out_size, UINT32_MAX); in lzma_encode()
476 lzma_lzma_encoder_reset(lzma_lzma1_encoder *coder, in lzma_lzma_encoder_reset() argument
482 coder->pos_mask = (1U << options->pb) - 1; in lzma_lzma_encoder_reset()
483 coder->literal_context_bits = options->lc; in lzma_lzma_encoder_reset()
484 coder->literal_pos_mask = (1U << options->lp) - 1; in lzma_lzma_encoder_reset()
487 rc_reset(&coder->rc); in lzma_lzma_encoder_reset()
490 coder->state = STATE_LIT_LIT; in lzma_lzma_encoder_reset()
492 coder->reps[i] = 0; in lzma_lzma_encoder_reset()
494 literal_init(coder->literal, options->lc, options->lp); in lzma_lzma_encoder_reset()
498 for (size_t j = 0; j <= coder->pos_mask; ++j) { in lzma_lzma_encoder_reset()
499 bit_reset(coder->is_match[i][j]); in lzma_lzma_encoder_reset()
500 bit_reset(coder->is_rep0_long[i][j]); in lzma_lzma_encoder_reset()
503 bit_reset(coder->is_rep[i]); in lzma_lzma_encoder_reset()
504 bit_reset(coder->is_rep0[i]); in lzma_lzma_encoder_reset()
505 bit_reset(coder->is_rep1[i]); in lzma_lzma_encoder_reset()
506 bit_reset(coder->is_rep2[i]); in lzma_lzma_encoder_reset()
510 bit_reset(coder->dist_special[i]); in lzma_lzma_encoder_reset()
514 bittree_reset(coder->dist_slot[i], DIST_SLOT_BITS); in lzma_lzma_encoder_reset()
516 bittree_reset(coder->dist_align, ALIGN_BITS); in lzma_lzma_encoder_reset()
519 length_encoder_reset(&coder->match_len_encoder, in lzma_lzma_encoder_reset()
520 1U << options->pb, coder->fast_mode); in lzma_lzma_encoder_reset()
522 length_encoder_reset(&coder->rep_len_encoder, in lzma_lzma_encoder_reset()
523 1U << options->pb, coder->fast_mode); in lzma_lzma_encoder_reset()
538 coder->match_price_count = UINT32_MAX / 2; in lzma_lzma_encoder_reset()
539 coder->align_price_count = UINT32_MAX / 2; in lzma_lzma_encoder_reset()
541 coder->opts_end_index = 0; in lzma_lzma_encoder_reset()
542 coder->opts_current_index = 0; in lzma_lzma_encoder_reset()
560 lzma_lzma1_encoder *coder = *coder_ptr; in lzma_lzma_encoder_create() local
568 coder->fast_mode = true; in lzma_lzma_encoder_create()
572 coder->fast_mode = false; in lzma_lzma_encoder_create()
580 coder->dist_table_size = log_size * 2; in lzma_lzma_encoder_create()
583 coder->match_len_encoder.table_size in lzma_lzma_encoder_create()
585 coder->rep_len_encoder.table_size in lzma_lzma_encoder_create()
598 coder->is_initialized = options->preset_dict != NULL in lzma_lzma_encoder_create()
600 coder->is_flushed = false; in lzma_lzma_encoder_create()
604 return lzma_lzma_encoder_reset(coder, options); in lzma_lzma_encoder_create()
614 &lz->coder, allocator, options, lz_options); in lzma_encoder_init()