OSDN Git Service

Optimize level_code computation, 6cpu cycles speedup.
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 24 Jan 2010 18:17:01 +0000 (18:17 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 24 Jan 2010 18:17:01 +0000 (18:17 +0000)
Originally committed as revision 21428 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/h264_cavlc.c

index c248137..9440ce0 100644 (file)
@@ -441,7 +441,7 @@ static int decode_residual(H264Context *h, GetBitContext *gb, DCTELEM *block, in
             mask= -(level_code&1);
             level[trailing_ones]= (((2+level_code)>>1) ^ mask) - mask;
         }else{
-            if(trailing_ones < 3) level_code += (level_code>>31)|1;
+            level_code += ((level_code>>31)|1) & -(trailing_ones < 3);
 
             suffix_length = 1;
             if(level_code + 3U > 6U)