Mercurial > libavcodec.hg
comparison cabac.c @ 4014:b2582438effe libavcodec
dehack *ps_state indexing in the branchless decoder
author | michael |
---|---|
date | Fri, 13 Oct 2006 14:21:25 +0000 |
parents | 8b7c59b7af01 |
children | d550343b5dac |
comparison
equal
deleted
inserted
replaced
4013:aace6b74fddc | 4014:b2582438effe |
---|---|
48 { 10, 12, 14, 16}, { 9, 11, 13, 15}, { 9, 11, 12, 14}, { 8, 10, 12, 14}, | 48 { 10, 12, 14, 16}, { 9, 11, 13, 15}, { 9, 11, 12, 14}, { 8, 10, 12, 14}, |
49 { 8, 9, 11, 13}, { 7, 9, 11, 12}, { 7, 9, 10, 12}, { 7, 8, 10, 11}, | 49 { 8, 9, 11, 13}, { 7, 9, 11, 12}, { 7, 9, 10, 12}, { 7, 8, 10, 11}, |
50 { 6, 8, 9, 11}, { 6, 7, 9, 10}, { 6, 7, 8, 9}, { 2, 2, 2, 2}, | 50 { 6, 8, 9, 11}, { 6, 7, 9, 10}, { 6, 7, 8, 9}, { 2, 2, 2, 2}, |
51 }; | 51 }; |
52 | 52 |
53 uint8_t ff_h264_mlps_state[4*64]; | |
53 uint8_t ff_h264_lps_range[2*65][4]; | 54 uint8_t ff_h264_lps_range[2*65][4]; |
54 uint8_t ff_h264_lps_state[2*64]; | 55 uint8_t ff_h264_lps_state[2*64]; |
55 uint8_t ff_h264_mps_state[2*64]; | 56 uint8_t ff_h264_mps_state[2*64]; |
56 | 57 |
57 static const uint8_t mps_state[64]= { | 58 static const uint8_t mps_state[64]= { |
130 for(j=0; j<4; j++){ //FIXME check if this is worth the 1 shift we save | 131 for(j=0; j<4; j++){ //FIXME check if this is worth the 1 shift we save |
131 ff_h264_lps_range[2*i+0][j+4]= | 132 ff_h264_lps_range[2*i+0][j+4]= |
132 ff_h264_lps_range[2*i+1][j+4]= lps_range[i][j]; | 133 ff_h264_lps_range[2*i+1][j+4]= lps_range[i][j]; |
133 } | 134 } |
134 | 135 |
136 ff_h264_mlps_state[128+2*i+0]= | |
135 ff_h264_mps_state[2*i+0]= 2*mps_state[i]+0; | 137 ff_h264_mps_state[2*i+0]= 2*mps_state[i]+0; |
138 ff_h264_mlps_state[128+2*i+1]= | |
136 ff_h264_mps_state[2*i+1]= 2*mps_state[i]+1; | 139 ff_h264_mps_state[2*i+1]= 2*mps_state[i]+1; |
137 | 140 |
138 if( i ){ | 141 if( i ){ |
139 #ifdef BRANCHLESS_CABAC_DECODER | 142 #ifdef BRANCHLESS_CABAC_DECODER |
140 ff_h264_mps_state[-2*i-1]= 2*lps_state[i]+0; //FIXME yes this is not valid C but iam lazy, cleanup welcome | 143 ff_h264_mlps_state[128-2*i-1]= 2*lps_state[i]+0; |
141 ff_h264_mps_state[-2*i-2]= 2*lps_state[i]+1; | 144 ff_h264_mlps_state[128-2*i-2]= 2*lps_state[i]+1; |
142 }else{ | 145 }else{ |
143 ff_h264_mps_state[-2*i-1]= 1; | 146 ff_h264_mlps_state[128-2*i-1]= 1; |
144 ff_h264_mps_state[-2*i-2]= 0; | 147 ff_h264_mlps_state[128-2*i-2]= 0; |
145 #else | 148 #else |
146 ff_h264_lps_state[2*i+0]= 2*lps_state[i]+0; | 149 ff_h264_lps_state[2*i+0]= 2*lps_state[i]+0; |
147 ff_h264_lps_state[2*i+1]= 2*lps_state[i]+1; | 150 ff_h264_lps_state[2*i+1]= 2*lps_state[i]+1; |
148 }else{ | 151 }else{ |
149 ff_h264_lps_state[2*i+0]= 1; | 152 ff_h264_lps_state[2*i+0]= 1; |