diff options
author | Christophe Gisquet <christophe.gisquet@gmail.com> | 2013-04-09 22:16:36 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-04-19 13:19:45 +0200 |
commit | 76c7277385120741914168d02b57a7a1acf87a9b (patch) | |
tree | 1a0821b6a1b2aae976515ed3423a05ac9cd245f5 /libavcodec/aacsbrdata.h | |
parent | 380cfce2b2138a0513f7c054134458b3b4c92fd4 (diff) | |
download | ffmpeg-76c7277385120741914168d02b57a7a1acf87a9b.tar.gz |
x86: sbrdsp: implement SSE2 hf_apply_noise
233 to 105 cycles on Arrandale and Win64.
Replacing the multiplication by s_m[m] by a pand and a pxor with
appropriate vectors is slower. Unrolling is a 15 cycles win.
A SSE version was 4 cycles slower.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/aacsbrdata.h')
-rw-r--r-- | libavcodec/aacsbrdata.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libavcodec/aacsbrdata.h b/libavcodec/aacsbrdata.h index dd7a827fc4..12575eeaef 100644 --- a/libavcodec/aacsbrdata.h +++ b/libavcodec/aacsbrdata.h @@ -352,7 +352,7 @@ static DECLARE_ALIGNED(32, float, sbr_qmf_window_us)[640] = { 0.8537385600, }; -/* First two entries repeated at end to simplify SIMD implementations. */ +/* First eight entries repeated at end to simplify SIMD implementations. */ const DECLARE_ALIGNED(16, float, ff_sbr_noise_table)[][2] = { {-0.99948153278296, -0.59483417516607}, { 0.97113454393991, -0.67528515225647}, { 0.14130051758487, -0.95090983575689}, {-0.47005496701697, -0.37340549728647}, @@ -610,7 +610,11 @@ const DECLARE_ALIGNED(16, float, ff_sbr_noise_table)[][2] = { {-0.93412041758744, 0.41374052024363}, { 0.96063943315511, 0.93116709541280}, { 0.97534253457837, 0.86150930812689}, { 0.99642466504163, 0.70190043427512}, {-0.94705089665984, -0.29580042814306}, { 0.91599807087376, -0.98147830385781}, +// Start of duplicated table {-0.99948153278296, -0.59483417516607}, { 0.97113454393991, -0.67528515225647}, +{ 0.14130051758487, -0.95090983575689}, {-0.47005496701697, -0.37340549728647}, +{ 0.80705063769351, 0.29653668284408}, {-0.38981478896926, 0.89572605717087}, +{-0.01053049862020, -0.66959058036166}, {-0.91266367957293, -0.11522938140034}, }; #endif /* AVCODEC_AACSBRDATA_H */ |