comparison h264.c @ 8385:af35581ac2ca libavcodec

Replace i by trailing_ones, part of a patch by dark shikari. No speed change meassureable with START/STOP_TIMER, but this is needed for future optimizations.
author michael
date Thu, 18 Dec 2008 15:51:32 +0000
parents 9754fef77769
children 102b197185d1
comparison
equal deleted inserted replaced
8384:9754fef77769 8385:af35581ac2ca
4089 4089
4090 for(i=0; i<trailing_ones; i++){ 4090 for(i=0; i<trailing_ones; i++){
4091 level[i]= 1 - 2*get_bits1(gb); 4091 level[i]= 1 - 2*get_bits1(gb);
4092 } 4092 }
4093 4093
4094 if(i<total_coeff) { 4094 if(trailing_ones<total_coeff) {
4095 int level_code, mask; 4095 int level_code, mask;
4096 int suffix_length = total_coeff > 10 && trailing_ones < 3; 4096 int suffix_length = total_coeff > 10 && trailing_ones < 3;
4097 int prefix= get_level_prefix(gb); 4097 int prefix= get_level_prefix(gb);
4098 4098
4099 //first coefficient has suffix_length equal to 0 or 1 4099 //first coefficient has suffix_length equal to 0 or 1
4118 4118
4119 suffix_length = 1; 4119 suffix_length = 1;
4120 if(level_code > 5) 4120 if(level_code > 5)
4121 suffix_length++; 4121 suffix_length++;
4122 mask= -(level_code&1); 4122 mask= -(level_code&1);
4123 level[i]= (((2+level_code)>>1) ^ mask) - mask; 4123 level[trailing_ones]= (((2+level_code)>>1) ^ mask) - mask;
4124 i++;
4125 4124
4126 //remaining coefficients have suffix_length > 0 4125 //remaining coefficients have suffix_length > 0
4127 for(;i<total_coeff;i++) { 4126 for(i=trailing_ones+1;i<total_coeff;i++) {
4128 static const int suffix_limit[7] = {0,5,11,23,47,95,INT_MAX }; 4127 static const int suffix_limit[7] = {0,5,11,23,47,95,INT_MAX };
4129 prefix = get_level_prefix(gb); 4128 prefix = get_level_prefix(gb);
4130 if(prefix<15){ 4129 if(prefix<15){
4131 level_code = (prefix<<suffix_length) + get_bits(gb, suffix_length); 4130 level_code = (prefix<<suffix_length) + get_bits(gb, suffix_length);
4132 }else{ 4131 }else{