Lines Matching refs:rd
162 lz_rd_create(struct lz_range_decoder *rd, FILE *fp) in lz_rd_create() argument
164 rd->fp = fp; in lz_rd_create()
165 rd->code = 0; in lz_rd_create()
166 rd->range = ~0; in lz_rd_create()
168 rd->code = (rd->code << 8) | (uint8_t)getc(rd->fp); in lz_rd_create()
169 return ferror(rd->fp) ? -1 : 0; in lz_rd_create()
173 lz_rd_decode(struct lz_range_decoder *rd, int num_bits) in lz_rd_decode() argument
178 rd->range >>= 1; in lz_rd_decode()
180 if (rd->code >= rd->range) { in lz_rd_decode()
181 rd->code -= rd->range; in lz_rd_decode()
184 if (rd->range <= 0x00FFFFFFU) { in lz_rd_decode()
185 rd->range <<= 8; in lz_rd_decode()
186 rd->code = (rd->code << 8) | (uint8_t)getc(rd->fp); in lz_rd_decode()
194 lz_rd_decode_bit(struct lz_range_decoder *rd, int *bm) in lz_rd_decode_bit() argument
197 const uint32_t bound = (rd->range >> BIT_MODEL_TOTAL_BITS) * *bm; in lz_rd_decode_bit()
199 if(rd->code < bound) { in lz_rd_decode_bit()
200 rd->range = bound; in lz_rd_decode_bit()
205 rd->range -= bound; in lz_rd_decode_bit()
206 rd->code -= bound; in lz_rd_decode_bit()
211 if (rd->range <= 0x00FFFFFFU) { in lz_rd_decode_bit()
212 rd->range <<= 8; in lz_rd_decode_bit()
213 rd->code = (rd->code << 8) | (uint8_t)getc(rd->fp); in lz_rd_decode_bit()
219 lz_rd_decode_tree(struct lz_range_decoder *rd, int *bm, int num_bits) in lz_rd_decode_tree() argument
224 symbol = (symbol << 1) | lz_rd_decode_bit(rd, &bm[symbol]); in lz_rd_decode_tree()
230 lz_rd_decode_tree_reversed(struct lz_range_decoder *rd, int *bm, int num_bits) in lz_rd_decode_tree_reversed() argument
232 unsigned symbol = lz_rd_decode_tree(rd, bm, num_bits); in lz_rd_decode_tree_reversed()
244 lz_rd_decode_matched(struct lz_range_decoder *rd, int *bm, int match_byte) in lz_rd_decode_matched() argument
250 const unsigned bit = lz_rd_decode_bit(rd, in lz_rd_decode_matched()
256 lz_rd_decode_bit(rd, &bm[symbol]); in lz_rd_decode_matched()
265 lz_rd_decode_len(struct lz_range_decoder *rd, struct lz_len_model *lm, in lz_rd_decode_len() argument
268 if (lz_rd_decode_bit(rd, &lm->choice1) == 0) in lz_rd_decode_len()
269 return lz_rd_decode_tree(rd, lm->bm_low[pos_state], LOW_BITS); in lz_rd_decode_len()
271 if (lz_rd_decode_bit(rd, &lm->choice2) == 0) { in lz_rd_decode_len()
273 lz_rd_decode_tree(rd, lm->bm_mid[pos_state], MID_BITS); in lz_rd_decode_len()
277 lz_rd_decode_tree(rd, lm->bm_high, HIGH_BITS); in lz_rd_decode_len()
431 struct lz_range_decoder *rd = &lz->rdec; in lz_decode_member() local
440 if (lz_rd_decode_bit(rd, &bm_match[state][pos_state]) == 0) { in lz_decode_member()
446 lz_put(lz, lz_rd_decode_tree(rd, bm, 8)); in lz_decode_member()
449 lz_put(lz, lz_rd_decode_matched(rd, bm, peek)); in lz_decode_member()
456 if (lz_rd_decode_bit(rd, &bm_rep[0][state]) != 0) { in lz_decode_member()
458 if (lz_rd_decode_bit(rd, &bm_rep[1][state]) == 0) { in lz_decode_member()
460 if (lz_rd_decode_bit(rd, in lz_decode_member()
470 if (lz_rd_decode_bit(rd, &bm_rep[2][state]) in lz_decode_member()
475 if (lz_rd_decode_bit(rd, in lz_decode_member()
489 lz_rd_decode_len(rd, &rep_len_model, pos_state); in lz_decode_member()
493 lz_rd_decode_len(rd, &match_len_model, pos_state); in lz_decode_member()
496 rep[0] = lz_rd_decode_tree(rd, bm_dis_slot[len_state], in lz_decode_member()
503 rep[0] += lz_rd_decode_tree_reversed(rd, in lz_decode_member()
507 rep[0] += lz_rd_decode(rd, direct_bits in lz_decode_member()
509 rep[0] += lz_rd_decode_tree_reversed(rd, in lz_decode_member()