Mercurial > libavcodec.hg
changeset 2605:39ef4c5454f0 libavcodec
optimizing unpack_coeffs()
author | michael |
---|---|
date | Thu, 14 Apr 2005 18:33:26 +0000 |
parents | b7e6c3d31c65 |
children | 2649aeaadc44 |
files | snow.c |
diffstat | 1 files changed, 12 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/snow.c Wed Apr 13 01:57:19 2005 +0000 +++ b/snow.c Thu Apr 14 18:33:26 2005 +0000 @@ -1817,10 +1817,21 @@ int context= av_log2(/*ABS(ll) + */3*(l>>1) + (lt>>1) + (t&~1) + (rt>>1) + (p>>1)); v=get_rac(&s->c, &b->state[0][context]); + if(v){ + v= 2*(get_symbol2(&s->c, b->state[context + 2], context-4) + 1); + v+=get_rac(&s->c, &b->state[0][16 + 1 + 3 + quant3bA[l&0xFF] + 3*quant3bA[t&0xFF]]); + + b->x_coeff[index].x=x; + b->x_coeff[index++].coeff= v; + } }else{ if(!run){ run= get_symbol2(&s->c, b->state[1], 3); - v=1; + v= 2*(get_symbol2(&s->c, b->state[0 + 2], 0-4) + 1); + v+=get_rac(&s->c, &b->state[0][16 + 1 + 3]); + + b->x_coeff[index].x=x; + b->x_coeff[index++].coeff= v; }else{ run--; v=0; @@ -1835,14 +1846,6 @@ } } } - if(v){ - int context= av_log2(/*ABS(ll) + */3*(l>>1) + (lt>>1) + (t&~1) + (rt>>1) + (p>>1)); - v= 2*(get_symbol2(&s->c, b->state[context + 2], context-4) + 1); - v+=get_rac(&s->c, &b->state[0][16 + 1 + 3 + quant3bA[l&0xFF] + 3*quant3bA[t&0xFF]]); - - b->x_coeff[index].x=x; - b->x_coeff[index++].coeff= v; - } } b->x_coeff[index++].x= w+1; //end marker prev_index= prev2_index;