Browse code

Change code so it uses 2 adds instead of one FFABS. About 1% faster ff_ac3_bit_alloc_calc_psd on Intel Atom, overall speedup not measurable though. Should have a bigger effect on systems without cmov or with very slow cmov.

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

Reimar Döffinger authored on 2010/01/15 02:50:33
Showing 1 changed files
... ...
@@ -112,9 +112,10 @@ void ff_ac3_bit_alloc_calc_psd(int8_t *exp, int start, int end, int16_t *psd,
112 112
         int v = psd[bin++];
113 113
         int band_end = FFMIN(band_start_tab[band+1], end);
114 114
         for (; bin < band_end; bin++) {
115
+            int max = FFMAX(v, psd[bin]);
115 116
             /* logadd */
116
-            int adr = FFMIN(FFABS(v - psd[bin]) >> 1, 255);
117
-            v = FFMAX(v, psd[bin]) + ff_ac3_log_add_tab[adr];
117
+            int adr = FFMIN(max - ((v + psd[bin] + 1) >> 1), 255);
118
+            v = max + ff_ac3_log_add_tab[adr];
118 119
         }
119 120
         band_psd[band++] = v;
120 121
     } while (end > band_start_tab[band]);