|
|
@ -66,28 +66,6 @@ void ff_build_rac_states(RangeCoder *c, int factor, int max_p){ |
|
|
|
memset(c->zero_state, 0, sizeof(c->zero_state)); |
|
|
|
memset(c->zero_state, 0, sizeof(c->zero_state)); |
|
|
|
memset(c-> one_state, 0, sizeof(c-> one_state)); |
|
|
|
memset(c-> one_state, 0, sizeof(c-> one_state)); |
|
|
|
|
|
|
|
|
|
|
|
#if 0 |
|
|
|
|
|
|
|
for(i=1; i<256; i++){ |
|
|
|
|
|
|
|
if(c->one_state[i]) |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
p= (i*one + 128) >> 8; |
|
|
|
|
|
|
|
last_p8= i; |
|
|
|
|
|
|
|
for(;;){ |
|
|
|
|
|
|
|
p+= ((one-p)*factor + one/2) >> 32; |
|
|
|
|
|
|
|
p8= (256*p + one/2) >> 32; //FIXME try without the one
|
|
|
|
|
|
|
|
if(p8 <= last_p8) p8= last_p8+1; |
|
|
|
|
|
|
|
if(p8 > max_p) p8= max_p; |
|
|
|
|
|
|
|
if(p8 < last_p8) |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
c->one_state[last_p8]= p8; |
|
|
|
|
|
|
|
if(p8 == last_p8) |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
last_p8= p8; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
#if 1 |
|
|
|
|
|
|
|
last_p8= 0; |
|
|
|
last_p8= 0; |
|
|
|
p= one/2; |
|
|
|
p= one/2; |
|
|
|
for(i=0; i<128; i++){ |
|
|
|
for(i=0; i<128; i++){ |
|
|
@ -99,7 +77,7 @@ void ff_build_rac_states(RangeCoder *c, int factor, int max_p){ |
|
|
|
p+= ((one-p)*factor + one/2) >> 32; |
|
|
|
p+= ((one-p)*factor + one/2) >> 32; |
|
|
|
last_p8= p8; |
|
|
|
last_p8= p8; |
|
|
|
} |
|
|
|
} |
|
|
|
#endif |
|
|
|
|
|
|
|
for(i=256-max_p; i<=max_p; i++){ |
|
|
|
for(i=256-max_p; i<=max_p; i++){ |
|
|
|
if(c->one_state[i]) |
|
|
|
if(c->one_state[i]) |
|
|
|
continue; |
|
|
|
continue; |
|
|
@ -114,10 +92,6 @@ void ff_build_rac_states(RangeCoder *c, int factor, int max_p){ |
|
|
|
|
|
|
|
|
|
|
|
for(i=1; i<255; i++) |
|
|
|
for(i=1; i<255; i++) |
|
|
|
c->zero_state[i]= 256-c->one_state[256-i]; |
|
|
|
c->zero_state[i]= 256-c->one_state[256-i]; |
|
|
|
#if 0 |
|
|
|
|
|
|
|
for(i=0; i<256; i++) |
|
|
|
|
|
|
|
av_log(NULL, AV_LOG_DEBUG, "%3d %3d\n", i, c->one_state[i]); |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -155,7 +129,6 @@ int main(){ |
|
|
|
r[i]= random()%7; |
|
|
|
r[i]= random()%7; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(i=0; i<SIZE; i++){ |
|
|
|
for(i=0; i<SIZE; i++){ |
|
|
|
START_TIMER |
|
|
|
START_TIMER |
|
|
|
put_rac(&c, state, r[i]&1); |
|
|
|
put_rac(&c, state, r[i]&1); |
|
|
@ -177,5 +150,4 @@ STOP_TIMER("get_rac") |
|
|
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#endif |
|
|
|
#endif |
|
|
|