comparison cabac.h @ 3984:bb186452e7da libavcodec

BRANCHLESS_CABAD --> BRANCHLESS_CABAC_DECODER
author diego
date Tue, 10 Oct 2006 08:16:41 +0000
parents af16271634c2
children 746a60ba3177
comparison
equal deleted inserted replaced
3983:fec25fd9febf 3984:bb186452e7da
29 //#undef NDEBUG 29 //#undef NDEBUG
30 #include <assert.h> 30 #include <assert.h>
31 31
32 #define CABAC_BITS 16 32 #define CABAC_BITS 16
33 #define CABAC_MASK ((1<<CABAC_BITS)-1) 33 #define CABAC_MASK ((1<<CABAC_BITS)-1)
34 #define BRANCHLESS_CABAD 1 34 #define BRANCHLESS_CABAC_DECODER 1
35 35
36 typedef struct CABACContext{ 36 typedef struct CABACContext{
37 int low; 37 int low;
38 int range; 38 int range;
39 int outstanding_count; 39 int outstanding_count;
373 #define LPS_STATE "12+2*65*4" 373 #define LPS_STATE "12+2*65*4"
374 #define MPS_STATE "12+2*65*4+2*64" 374 #define MPS_STATE "12+2*65*4+2*64"
375 #define BYTESTART "12+2*65*4+4*64" 375 #define BYTESTART "12+2*65*4+4*64"
376 #define BYTE "16+2*65*4+4*64" 376 #define BYTE "16+2*65*4+4*64"
377 #define BYTEEND "20+2*65*4+4*64" 377 #define BYTEEND "20+2*65*4+4*64"
378 #ifndef BRANCHLESS_CABAD 378 #ifndef BRANCHLESS_CABAC_DECODER
379 asm volatile( 379 asm volatile(
380 "movzbl (%1), %%eax \n\t" 380 "movzbl (%1), %%eax \n\t"
381 "movl "RANGE "(%2), %%ebx \n\t" 381 "movl "RANGE "(%2), %%ebx \n\t"
382 "movl "RANGE "(%2), %%edx \n\t" 382 "movl "RANGE "(%2), %%edx \n\t"
383 "shrl $23, %%ebx \n\t" 383 "shrl $23, %%ebx \n\t"
521 int s = *state; 521 int s = *state;
522 int RangeLPS= c->lps_range[s][c->range>>(CABAC_BITS+7)]<<(CABAC_BITS+1); 522 int RangeLPS= c->lps_range[s][c->range>>(CABAC_BITS+7)]<<(CABAC_BITS+1);
523 int bit, lps_mask attribute_unused; 523 int bit, lps_mask attribute_unused;
524 524
525 c->range -= RangeLPS; 525 c->range -= RangeLPS;
526 #ifndef BRANCHLESS_CABAD 526 #ifndef BRANCHLESS_CABAC_DECODER
527 if(c->low < c->range){ 527 if(c->low < c->range){
528 bit= s&1; 528 bit= s&1;
529 *state= c->mps_state[s]; 529 *state= c->mps_state[s];
530 renorm_cabac_decoder_once(c); 530 renorm_cabac_decoder_once(c);
531 }else{ 531 }else{