Lines Matching refs:rd

164 lz_rd_create(struct lz_range_decoder *rd, FILE *fp)
166 rd->fp = fp;
167 rd->code = 0;
168 rd->range = ~0;
170 rd->code = (rd->code << 8) | (uint8_t)getc(rd->fp);
171 return ferror(rd->fp) ? -1 : 0;
175 lz_rd_decode(struct lz_range_decoder *rd, int num_bits)
180 rd->range >>= 1;
182 if (rd->code >= rd->range) {
183 rd->code -= rd->range;
186 if (rd->range <= 0x00FFFFFFU) {
187 rd->range <<= 8;
188 rd->code = (rd->code << 8) | (uint8_t)getc(rd->fp);
196 lz_rd_decode_bit(struct lz_range_decoder *rd, int *bm)
199 const uint32_t bound = (rd->range >> BIT_MODEL_TOTAL_BITS) * *bm;
201 if(rd->code < bound) {
202 rd->range = bound;
207 rd->range -= bound;
208 rd->code -= bound;
213 if (rd->range <= 0x00FFFFFFU) {
214 rd->range <<= 8;
215 rd->code = (rd->code << 8) | (uint8_t)getc(rd->fp);
221 lz_rd_decode_tree(struct lz_range_decoder *rd, int *bm, int num_bits)
226 symbol = (symbol << 1) | lz_rd_decode_bit(rd, &bm[symbol]);
232 lz_rd_decode_tree_reversed(struct lz_range_decoder *rd, int *bm, int num_bits)
234 unsigned symbol = lz_rd_decode_tree(rd, bm, num_bits);
246 lz_rd_decode_matched(struct lz_range_decoder *rd, int *bm, int match_byte)
252 const unsigned bit = lz_rd_decode_bit(rd,
258 lz_rd_decode_bit(rd, &bm[symbol]);
267 lz_rd_decode_len(struct lz_range_decoder *rd, struct lz_len_model *lm,
270 if (lz_rd_decode_bit(rd, &lm->choice1) == 0)
271 return lz_rd_decode_tree(rd, lm->bm_low[pos_state], LOW_BITS);
273 if (lz_rd_decode_bit(rd, &lm->choice2) == 0) {
275 lz_rd_decode_tree(rd, lm->bm_mid[pos_state], MID_BITS);
279 lz_rd_decode_tree(rd, lm->bm_high, HIGH_BITS);
433 struct lz_range_decoder *rd = &lz->rdec;
442 if (lz_rd_decode_bit(rd, &bm_match[state][pos_state]) == 0) {
448 lz_put(lz, lz_rd_decode_tree(rd, bm, 8));
451 lz_put(lz, lz_rd_decode_matched(rd, bm, peek));
458 if (lz_rd_decode_bit(rd, &bm_rep[0][state]) != 0) {
460 if (lz_rd_decode_bit(rd, &bm_rep[1][state]) == 0) {
462 if (lz_rd_decode_bit(rd,
472 if (lz_rd_decode_bit(rd, &bm_rep[2][state])
477 if (lz_rd_decode_bit(rd,
491 lz_rd_decode_len(rd, &rep_len_model, pos_state);
495 lz_rd_decode_len(rd, &match_len_model, pos_state);
498 rep[0] = lz_rd_decode_tree(rd, bm_dis_slot[len_state],
505 rep[0] += lz_rd_decode_tree_reversed(rd,
509 rep[0] += lz_rd_decode(rd, direct_bits
511 rep[0] += lz_rd_decode_tree_reversed(rd,