const int neg = coeff[x] < 0;
uint32_t c_abs = FFABS(coeff[x]);
if (c_abs < COEF_LUT_TAB) {
- const uint8_t len = len_lut[c_abs];
- if (len == 1)
- put_bits(pb, 1, 1);
- else
- put_bits(pb, len + 1, (val_lut[c_abs] << 1) | neg);
+ put_bits(pb, len_lut[c_abs], val_lut[c_abs] | neg);
} else {
c_abs = QUANT(c_abs, qfactor);
put_vc2_ue_uint(pb, c_abs);
for (x = left; x < right; x++) {
uint32_t c_abs = FFABS(buf[x]);
if (c_abs < COEF_LUT_TAB) {
- const int len = len_lut[c_abs];
- bits += len + (len != 1);
+ bits += len_lut[c_abs];
} else {
c_abs = QUANT(c_abs, qfactor);
bits += count_vc2_ue_uint(c_abs);
for (j = 0; j < COEF_LUT_TAB; j++) {
get_vc2_ue_uint(QUANT(j, ff_dirac_qscale_tab[i]),
&len_lut[j], &val_lut[j]);
+ if (len_lut[j] != 1) {
+ len_lut[j] += 1;
+ val_lut[j] <<= 1;
+ } else {
+ val_lut[j] = 1;
+ }
}
}