Mercurial > libavcodec.hg
diff cabac.c @ 3974:93746612bc78 libavcodec
optimize branchless C CABAC decoder
author | michael |
---|---|
date | Mon, 09 Oct 2006 20:44:11 +0000 |
parents | 162bea01a5d4 |
children | 27e90123b346 |
line wrap: on
line diff
--- a/cabac.c Mon Oct 09 18:29:46 2006 +0000 +++ b/cabac.c Mon Oct 09 20:44:11 2006 +0000 @@ -133,11 +133,19 @@ c->mps_state[2*i+3]= 2*mps_state[i]+3; if( i ){ +#ifdef BRANCHLESS_CABAD + c->mps_state[-2*i-3]= 2*lps_state[i]+2; //FIXME yes this is not valid C but iam lazy, cleanup welcome + c->mps_state[-2*i-4]= 2*lps_state[i]+3; + }else{ + c->mps_state[-2*i-3]= 3; + c->mps_state[-2*i-4]= 2; +#else c->lps_state[2*i+2]= 2*lps_state[i]+2; c->lps_state[2*i+3]= 2*lps_state[i]+3; }else{ c->lps_state[2*i+2]= 3; c->lps_state[2*i+3]= 2; +#endif } } }