Mercurial > libavcodec.hg
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{ |