OSDN Git Service

Another micro-optimization for unpack_vlcs(): Eliminate a possible
authorMike Melanson <mike@multimedia.cx>
Wed, 23 Sep 2009 05:38:12 +0000 (05:38 +0000)
committerMike Melanson <mike@multimedia.cx>
Wed, 23 Sep 2009 05:38:12 +0000 (05:38 +0000)
branch and save around 45k-55k dezicycles per function run.

Originally committed as revision 19974 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/vp3.c

index e2b1706..4d27a8a 100644 (file)
@@ -1070,10 +1070,9 @@ static int unpack_vlcs(Vp3DecodeContext *s, GetBitContext *gb,
                 coeff = zero_run = 0;
             } else {
                 bits_to_get = coeff_get_bits[token];
-                if (!bits_to_get)
-                    coeff = coeff_tables[token][0];
-                else
-                    coeff = coeff_tables[token][get_bits(gb, bits_to_get)];
+                if (bits_to_get)
+                    bits_to_get = get_bits(gb, bits_to_get);
+                coeff = coeff_tables[token][bits_to_get];
 
                 zero_run = zero_run_base[token];
                 if (zero_run_get_bits[token])