From 0cc51734b20032a5fea3020e40db968c5da91d1f Mon Sep 17 00:00:00 2001 From: Justin Ruggles Date: Thu, 13 Nov 2008 03:18:13 +0000 Subject: add support for spectral extension Originally committed as revision 15812 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/ac3dec_data.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'libavcodec/ac3dec_data.c') diff --git a/libavcodec/ac3dec_data.c b/libavcodec/ac3dec_data.c index a70c8fca45..fb21888c78 100644 --- a/libavcodec/ac3dec_data.c +++ b/libavcodec/ac3dec_data.c @@ -1127,6 +1127,52 @@ const uint8_t ff_eac3_frm_expstr[32][6] = { const uint8_t ff_eac3_default_cpl_band_struct[18] = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1 }; + /** + * Table E2.15 Default Spectral Extension Banding Structure + */ +const uint8_t ff_eac3_default_spx_band_struct[17] = +{ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 }; + +/** + * Table E.25: Spectral Extension Attenuation Table + * 24-bit fixed-point version of the floating-point table in the specification. + * ff_eac3_spx_atten_tab[code][bin]=lrint(pow(1<<(bin+1),(code+1)/-15.0)*(1<<23)); + */ +const int32_t ff_eac3_spx_atten_tab[32][3] = { + { 8009792, 7648083, 7302707 }, + { 7648083, 6972929, 6357376 }, + { 7302707, 6357376, 5534417 }, + { 6972929, 5796163, 4817990 }, + { 6658043, 5284492, 4194304 }, + { 6357376, 4817990, 3651354 }, + { 6070287, 4392670, 3178688 }, + { 5796163, 4004896, 2767209 }, + { 5534417, 3651354, 2408995 }, + { 5284492, 3329021, 2097152 }, + { 5045853, 3035144, 1825677 }, + { 4817990, 2767209, 1589344 }, + { 4600417, 2522926, 1383604 }, + { 4392670, 2300209, 1204498 }, + { 4194304, 2097152, 1048576 }, + { 4004896, 1912021, 912838 }, + { 3824041, 1743232, 794672 }, + { 3651354, 1589344, 691802 }, + { 3486464, 1449041, 602249 }, + { 3329021, 1321123, 524288 }, + { 3178688, 1204498, 456419 }, + { 3035144, 1098167, 397336 }, + { 2898081, 1001224, 345901 }, + { 2767209, 912838, 301124 }, + { 2642246, 832255, 262144 }, + { 2522926, 758786, 228210 }, + { 2408995, 691802, 198668 }, + { 2300209, 630732, 172951 }, + { 2196335, 575052, 150562 }, + { 2097152, 524288, 131072 }, + { 2002448, 478005, 114105 }, + { 1912021, 435808, 99334 } +}; + /** * Table of bin locations for rematrixing bands * reference: Section 7.5.2 Rematrixing : Frequency Band Definitions -- cgit v1.2.3