diff options
author | Lynne <dev@lynne.ee> | 2022-10-28 21:36:10 +0200 |
---|---|---|
committer | Lynne <dev@lynne.ee> | 2022-11-06 14:39:33 +0100 |
commit | 469cd8d7fa55ebd07be31e4c5bd0ed4b45c551dc (patch) | |
tree | 39a6426364b9fdd54468fc16b0bc6137c42927c7 /libavcodec/sinewin_fixed_tablegen.h | |
parent | 4cee7ebd75205bca06ca8010711ae2f83a55caa6 (diff) |
aacdec: convert to lavu/tx and support fixed-point 960-sample decoding
This patch replaces the transform used in AAC with lavu/tx and removes
the limitation on only being able to decode 960-sample files
with the float decoder.
This commit also removes a whole bunch of unnecessary and slow
lifting steps the decoder did to compensate for the poor accuracy
of the old integer transformation code.
Overall float decoder speedup on Zen 3 for 64kbps: 32%
Diffstat (limited to 'libavcodec/sinewin_fixed_tablegen.h')
-rw-r--r-- | libavcodec/sinewin_fixed_tablegen.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libavcodec/sinewin_fixed_tablegen.h b/libavcodec/sinewin_fixed_tablegen.h index c52c90bed7..056735704c 100644 --- a/libavcodec/sinewin_fixed_tablegen.h +++ b/libavcodec/sinewin_fixed_tablegen.h @@ -44,8 +44,11 @@ #include "libavutil/attributes.h" #define SINETABLE_CONST +SINETABLE( 120); SINETABLE( 128); +SINETABLE( 480); SINETABLE( 512); +SINETABLE( 960); SINETABLE(1024); #define SIN_FIX(a) (int)floor((a) * 0x80000000 + 0.5) @@ -59,8 +62,11 @@ static av_cold void sine_window_init_fixed(int *window, int n) static av_cold void init_sine_windows_fixed(void) { + sine_window_init_fixed(sine_120_fixed, 120); sine_window_init_fixed(sine_128_fixed, 128); + sine_window_init_fixed(sine_480_fixed, 480); sine_window_init_fixed(sine_512_fixed, 512); + sine_window_init_fixed(sine_960_fixed, 960); sine_window_init_fixed(sine_1024_fixed, 1024); } #endif /* CONFIG_HARDCODED_TABLES */ |