]> git.sesse.net Git - ffmpeg/commitdiff
Use MULH instead of 64x64 multiplication, around 5% overall speedup on Intel Atom.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Tue, 12 Jan 2010 23:02:07 +0000 (23:02 +0000)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Tue, 12 Jan 2010 23:02:07 +0000 (23:02 +0000)
Patch by myself and Yuriy Kaminskiy [yumkam mail ru]

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

libavcodec/ac3dec.c

index 82091bc6e3f4f52fcc70d7410fcbf70e1322c47f..ba7ae1671191ab6a7e0102a092ab63950811d587 100644 (file)
@@ -420,10 +420,9 @@ static void calc_transform_coeffs_cpl(AC3DecodeContext *s)
         int band_end = bin + s->cpl_band_sizes[band];
         for (ch = 1; ch <= s->fbw_channels; ch++) {
             if (s->channel_in_cpl[ch]) {
-                int64_t cpl_coord = s->cpl_coords[ch][band];
+                int cpl_coord = s->cpl_coords[ch][band] << 5;
                 for (bin = band_start; bin < band_end; bin++) {
-                    s->fixed_coeffs[ch][bin] = ((int64_t)s->fixed_coeffs[CPL_CH][bin] *
-                                                cpl_coord) >> 23;
+                    s->fixed_coeffs[ch][bin] = MULH(s->fixed_coeffs[CPL_CH][bin] << 4, cpl_coord);
                 }
                 if (ch == 2 && s->phase_flags[band]) {
                     for (bin = band_start; bin < band_end; bin++)