double occ[256] = { 0 };
double len = 0;
occ[j] = 1.0;
+
+ if (!one_state[j])
+ continue;
+
for (k = 0; k < 256; k++) {
double newocc[256] = { 0 };
for (m = 1; m < 256; m++)
return AVERROR(EINVAL);
}
- if (s->ac == AC_RANGE_CUSTOM_TAB)
+ if (s->ac == AC_RANGE_CUSTOM_TAB) {
for (i = 1; i < 256; i++)
s->state_transition[i] = ver2_state[i];
+ } else {
+ RangeCoder c;
+ ff_build_rac_states(&c, 0.05 * (1LL << 32), 256 - 8);
+ for (i = 1; i < 256; i++)
+ s->state_transition[i] = c.one_state[i];
+ }
for (i = 0; i < 256; i++) {
s->quant_table_count = 2;
if (p[0] == 0)
break;
}
- sort_stt(s, s->state_transition);
+ if (s->ac == AC_RANGE_CUSTOM_TAB)
+ sort_stt(s, s->state_transition);
find_best_state(best_state, s->state_transition);