Synchronise AAC decoder code with that from SoC
authorRobert Swain <robert.swain@gmail.com>
Fri, 15 Aug 2008 00:19:14 +0000 (00:19 +0000)
committerRobert Swain <robert.swain@gmail.com>
Fri, 15 Aug 2008 00:19:14 +0000 (00:19 +0000)
Originally committed as revision 14772 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/aac.c
libavcodec/aac.h
libavcodec/aactab.c
libavcodec/aactab.h

index 42a25eb..45d6a55 100644 (file)
@@ -91,7 +91,6 @@
 #include <string.h>
 
 #ifndef CONFIG_HARDCODED_TABLES
-    static float ff_aac_ivquant_tab[IVQUANT_SIZE];
     static float ff_aac_pow2sf_tab[316];
 #endif /* CONFIG_HARDCODED_TABLES */
 
@@ -403,8 +402,6 @@ static av_cold int aac_decode_init(AVCodecContext * avccontext) {
     }
 
 #ifndef CONFIG_HARDCODED_TABLES
-    for (i = 1 - IVQUANT_SIZE/2; i < IVQUANT_SIZE/2; i++)
-        ff_aac_ivquant_tab[i + IVQUANT_SIZE/2 - 1] =  cbrt(fabs(i)) * i;
     for (i = 0; i < 316; i++)
         ff_aac_pow2sf_tab[i] = pow(2, (i - 200)/4.);
 #endif /* CONFIG_HARDCODED_TABLES */
@@ -468,19 +465,6 @@ static int decode_ics_info(AACContext * ac, IndividualChannelStream * ics, GetBi
     return 0;
 }
 
-/**
- * inverse quantization
- *
- * @param   a   quantized value to be dequantized
- * @return  Returns dequantized value.
- */
-static inline float ivquant(int a) {
-    if (a + (unsigned int)IVQUANT_SIZE/2 - 1 < (unsigned int)IVQUANT_SIZE - 1)
-        return ff_aac_ivquant_tab[a + IVQUANT_SIZE/2 - 1];
-    else
-        return cbrtf(fabsf(a)) * a;
-}
-
 /**
  * Decode band types (section_data payload); reference: table 4.46.
  *
@@ -535,7 +519,6 @@ static int decode_scalefactors(AACContext * ac, float sf[120], GetBitContext * g
     int offset[3] = { global_gain, global_gain - 90, 100 };
     int noise_flag = 1;
     static const char *sf_str[3] = { "Global gain", "Noise gain", "Intensity stereo position" };
-    ics->intensity_present = 0;
     for (g = 0; g < ics->num_window_groups; g++) {
         for (i = 0; i < ics->max_sfb;) {
             int run_end = band_type_run_end[idx];
@@ -543,7 +526,6 @@ static int decode_scalefactors(AACContext * ac, float sf[120], GetBitContext * g
                 for(; i < run_end; i++, idx++)
                     sf[idx] = 0.;
             }else if((band_type[idx] == INTENSITY_BT) || (band_type[idx] == INTENSITY_BT2)) {
-                ics->intensity_present = 1;
                 for(; i < run_end; i++, idx++) {
                     offset[2] += get_vlc2(gb, vlc_scalefactors.table, 7, 3) - 60;
                     if(offset[2] > 255U) {
@@ -585,13 +567,14 @@ static int decode_scalefactors(AACContext * ac, float sf[120], GetBitContext * g
 /**
  * Decode pulse data; reference: table 4.7.
  */
-static void decode_pulses(Pulse * pulse, GetBitContext * gb) {
+static void decode_pulses(Pulse * pulse, GetBitContext * gb, const uint16_t * swb_offset) {
     int i;
     pulse->num_pulse = get_bits(gb, 2) + 1;
-    pulse->start = get_bits(gb, 6);
-    for (i = 0; i < pulse->num_pulse; i++) {
-        pulse->offset[i] = get_bits(gb, 5);
-        pulse->amp   [i] = get_bits(gb, 4);
+    pulse->pos[0]    = get_bits(gb, 5) + swb_offset[get_bits(gb, 6)];
+    pulse->amp[0]    = get_bits(gb, 4);
+    for (i = 1; i < pulse->num_pulse; i++) {
+        pulse->pos[i] = get_bits(gb, 5) + pulse->pos[i-1];
+        pulse->amp[i] = get_bits(gb, 4);
     }
 }
 
@@ -613,22 +596,6 @@ static void decode_mid_side_stereo(ChannelElement * cpe, GetBitContext * gb,
     }
 }
 
-/**
- * Add pulses with particular amplitudes to the quantized spectral data; reference: 4.6.3.3.
- *
- * @param   pulse   pointer to pulse data struct
- * @param   icoef   array of quantized spectral data
- */
-static void add_pulses(int icoef[1024], const Pulse * pulse, const IndividualChannelStream * ics) {
-    int i, off = ics->swb_offset[pulse->start];
-    for (i = 0; i < pulse->num_pulse; i++) {
-        int ic;
-        off += pulse->offset[i];
-        ic = (icoef[off] - 1)>>31;
-        icoef[off] += (pulse->amp[i]^ic) - ic;
-    }
-}
-
 /**
  * Decode an individual_channel_stream payload; reference: table 4.44.
  *
@@ -638,18 +605,16 @@ static void add_pulses(int icoef[1024], const Pulse * pulse, const IndividualCha
  * @return  Returns error status. 0 - OK, !0 - error
  */
 static int decode_ics(AACContext * ac, SingleChannelElement * sce, GetBitContext * gb, int common_window, int scale_flag) {
-    int icoeffs[1024];
     Pulse pulse;
     TemporalNoiseShaping * tns = &sce->tns;
     IndividualChannelStream * ics = &sce->ics;
     float * out = sce->coeffs;
     int global_gain, pulse_present = 0;
 
-    /* These two assignments are to silence some GCC warnings about the
-     * variables being used uninitialised when in fact they always are.
+    /* This assignment is to silence a GCC warning about the variable being used
+     * uninitialized when in fact it always is.
      */
     pulse.num_pulse = 0;
-    pulse.start     = 0;
 
     global_gain = get_bits(gb, 8);
 
@@ -670,7 +635,7 @@ static int decode_ics(AACContext * ac, SingleChannelElement * sce, GetBitContext
                 av_log(ac->avccontext, AV_LOG_ERROR, "Pulse tool not allowed in eight short sequence.\n");
                 return -1;
             }
-            decode_pulses(&pulse, gb);
+            decode_pulses(&pulse, gb, ics->swb_offset);
         }
         if ((tns->present = get_bits1(gb)) && decode_tns(ac, tns, gb, ics))
             return -1;
@@ -680,11 +645,8 @@ static int decode_ics(AACContext * ac, SingleChannelElement * sce, GetBitContext
         }
     }
 
-    if (decode_spectrum(ac, icoeffs, gb, ics, sce->band_type) < 0)
+    if (decode_spectrum_and_dequant(ac, out, gb, sce->sf, pulse_present, &pulse, ics, sce->band_type) < 0)
         return -1;
-    if (pulse_present)
-        add_pulses(icoeffs, &pulse, ics);
-    dequant(ac, out, icoeffs, sce->sf, ics, sce->band_type);
     return 0;
 }
 
@@ -722,8 +684,7 @@ static int decode_cpe(AACContext * ac, GetBitContext * gb, int elem_id) {
     if (common_window && ms_present)
         apply_mid_side_stereo(cpe);
 
-    if (cpe->ch[1].ics.intensity_present)
-        apply_intensity_stereo(cpe, ms_present);
+    apply_intensity_stereo(cpe, ms_present);
     return 0;
 }
 
@@ -906,10 +867,10 @@ static void imdct_and_windowing(AACContext * ac, SingleChannelElement * sce) {
     float * in = sce->coeffs;
     float * out = sce->ret;
     float * saved = sce->saved;
-    const float * lwindow      = ics->use_kb_window[0] ? ff_aac_kbd_long_1024 : ff_aac_sine_long_1024;
-    const float * swindow      = ics->use_kb_window[0] ? ff_aac_kbd_short_128 : ff_aac_sine_short_128;
-    const float * lwindow_prev = ics->use_kb_window[1] ? ff_aac_kbd_long_1024 : ff_aac_sine_long_1024;
-    const float * swindow_prev = ics->use_kb_window[1] ? ff_aac_kbd_short_128 : ff_aac_sine_short_128;
+    const float * lwindow      = ics->use_kb_window[0] ? ff_aac_kbd_long_1024 : ff_sine_1024;
+    const float * swindow      = ics->use_kb_window[0] ? ff_aac_kbd_short_128 : ff_sine_128;
+    const float * lwindow_prev = ics->use_kb_window[1] ? ff_aac_kbd_long_1024 : ff_sine_1024;
+    const float * swindow_prev = ics->use_kb_window[1] ? ff_aac_kbd_short_128 : ff_sine_128;
     float * buf = ac->buf_mdct;
     int i;
 
@@ -1093,7 +1054,7 @@ static int aac_decode_frame(AVCodecContext * avccontext, void * data, int * data
     if (!ac->is_saved) {
         ac->is_saved = 1;
         *data_size = 0;
-        return 0;
+        return buf_size;
     }
 
     data_size_tmp = 1024 * avccontext->channels * sizeof(int16_t);
index d1be156..84ae8f0 100644 (file)
@@ -45,8 +45,6 @@
 #define MAX_CHANNELS 64
 #define MAX_ELEM_ID 16
 
-#define IVQUANT_SIZE 1024
-
 enum AudioObjectType {
     AOT_NULL,
                                // Support?                Name
@@ -165,8 +163,7 @@ typedef struct {
 
 typedef struct {
     int num_pulse;
-    int start;
-    int offset[4];
+    int pos[4];
     int amp[4];
 } Pulse;
 
index ac1d59f..2c30eeb 100644 (file)
@@ -398,145 +398,494 @@ const uint16_t ff_aac_spectral_sizes[11] = {
     81, 81, 81, 81, 81, 81, 64, 64, 169, 169, 289,
 };
 
-static const int8_t codebook_vector0[324] = {
- -1, -1, -1, -1, -1, -1, -1,  0, -1, -1, -1,  1, -1, -1,  0, -1,
- -1, -1,  0,  0, -1, -1,  0,  1, -1, -1,  1, -1, -1, -1,  1,  0,
- -1, -1,  1,  1, -1,  0, -1, -1, -1,  0, -1,  0, -1,  0, -1,  1,
- -1,  0,  0, -1, -1,  0,  0,  0, -1,  0,  0,  1, -1,  0,  1, -1,
- -1,  0,  1,  0, -1,  0,  1,  1, -1,  1, -1, -1, -1,  1, -1,  0,
- -1,  1, -1,  1, -1,  1,  0, -1, -1,  1,  0,  0, -1,  1,  0,  1,
- -1,  1,  1, -1, -1,  1,  1,  0, -1,  1,  1,  1,  0, -1, -1, -1,
-  0, -1, -1,  0,  0, -1, -1,  1,  0, -1,  0, -1,  0, -1,  0,  0,
-  0, -1,  0,  1,  0, -1,  1, -1,  0, -1,  1,  0,  0, -1,  1,  1,
-  0,  0, -1, -1,  0,  0, -1,  0,  0,  0, -1,  1,  0,  0,  0, -1,
-  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  1, -1,  0,  0,  1,  0,
-  0,  0,  1,  1,  0,  1, -1, -1,  0,  1, -1,  0,  0,  1, -1,  1,
-  0,  1,  0, -1,  0,  1,  0,  0,  0,  1,  0,  1,  0,  1,  1, -1,
-  0,  1,  1,  0,  0,  1,  1,  1,  1, -1, -1, -1,  1, -1, -1,  0,
-  1, -1, -1,  1,  1, -1,  0, -1,  1, -1,  0,  0,  1, -1,  0,  1,
-  1, -1,  1, -1,  1, -1,  1,  0,  1, -1,  1,  1,  1,  0, -1, -1,
-  1,  0, -1,  0,  1,  0, -1,  1,  1,  0,  0, -1,  1,  0,  0,  0,
-  1,  0,  0,  1,  1,  0,  1, -1,  1,  0,  1,  0,  1,  0,  1,  1,
-  1,  1, -1, -1,  1,  1, -1,  0,  1,  1, -1,  1,  1,  1,  0, -1,
-  1,  1,  0,  0,  1,  1,  0,  1,  1,  1,  1, -1,  1,  1,  1,  0,
-  1,  1,  1,  1,
-};
-
-static const int8_t codebook_vector2[324] = {
-  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  2,  0,  0,  1,  0,
-  0,  0,  1,  1,  0,  0,  1,  2,  0,  0,  2,  0,  0,  0,  2,  1,
-  0,  0,  2,  2,  0,  1,  0,  0,  0,  1,  0,  1,  0,  1,  0,  2,
-  0,  1,  1,  0,  0,  1,  1,  1,  0,  1,  1,  2,  0,  1,  2,  0,
-  0,  1,  2,  1,  0,  1,  2,  2,  0,  2,  0,  0,  0,  2,  0,  1,
-  0,  2,  0,  2,  0,  2,  1,  0,  0,  2,  1,  1,  0,  2,  1,  2,
-  0,  2,  2,  0,  0,  2,  2,  1,  0,  2,  2,  2,  1,  0,  0,  0,
-  1,  0,  0,  1,  1,  0,  0,  2,  1,  0,  1,  0,  1,  0,  1,  1,
-  1,  0,  1,  2,  1,  0,  2,  0,  1,  0,  2,  1,  1,  0,  2,  2,
-  1,  1,  0,  0,  1,  1,  0,  1,  1,  1,  0,  2,  1,  1,  1,  0,
-  1,  1,  1,  1,  1,  1,  1,  2,  1,  1,  2,  0,  1,  1,  2,  1,
-  1,  1,  2,  2,  1,  2,  0,  0,  1,  2,  0,  1,  1,  2,  0,  2,
-  1,  2,  1,  0,  1,  2,  1,  1,  1,  2,  1,  2,  1,  2,  2,  0,
-  1,  2,  2,  1,  1,  2,  2,  2,  2,  0,  0,  0,  2,  0,  0,  1,
-  2,  0,  0,  2,  2,  0,  1,  0,  2,  0,  1,  1,  2,  0,  1,  2,
-  2,  0,  2,  0,  2,  0,  2,  1,  2,  0,  2,  2,  2,  1,  0,  0,
-  2,  1,  0,  1,  2,  1,  0,  2,  2,  1,  1,  0,  2,  1,  1,  1,
-  2,  1,  1,  2,  2,  1,  2,  0,  2,  1,  2,  1,  2,  1,  2,  2,
-  2,  2,  0,  0,  2,  2,  0,  1,  2,  2,  0,  2,  2,  2,  1,  0,
-  2,  2,  1,  1,  2,  2,  1,  2,  2,  2,  2,  0,  2,  2,  2,  1,
-  2,  2,  2,  2,
-};
-
-static const int8_t codebook_vector4[162] = {
- -4, -4, -4, -3, -4, -2, -4, -1, -4,  0, -4,  1, -4,  2, -4,  3,
- -4,  4, -3, -4, -3, -3, -3, -2, -3, -1, -3,  0, -3,  1, -3,  2,
- -3,  3, -3,  4, -2, -4, -2, -3, -2, -2, -2, -1, -2,  0, -2,  1,
- -2,  2, -2,  3, -2,  4, -1, -4, -1, -3, -1, -2, -1, -1, -1,  0,
- -1,  1, -1,  2, -1,  3, -1,  4,  0, -4,  0, -3,  0, -2,  0, -1,
-  0,  0,  0,  1,  0,  2,  0,  3,  0,  4,  1, -4,  1, -3,  1, -2,
-  1, -1,  1,  0,  1,  1,  1,  2,  1,  3,  1,  4,  2, -4,  2, -3,
-  2, -2,  2, -1,  2,  0,  2,  1,  2,  2,  2,  3,  2,  4,  3, -4,
-  3, -3,  3, -2,  3, -1,  3,  0,  3,  1,  3,  2,  3,  3,  3,  4,
-  4, -4,  4, -3,  4, -2,  4, -1,  4,  0,  4,  1,  4,  2,  4,  3,
-  4,  4,
-};
-
-static const int8_t codebook_vector6[128] = {
-  0,  0,  0,  1,  0,  2,  0,  3,  0,  4,  0,  5,  0,  6,  0,  7,
-  1,  0,  1,  1,  1,  2,  1,  3,  1,  4,  1,  5,  1,  6,  1,  7,
-  2,  0,  2,  1,  2,  2,  2,  3,  2,  4,  2,  5,  2,  6,  2,  7,
-  3,  0,  3,  1,  3,  2,  3,  3,  3,  4,  3,  5,  3,  6,  3,  7,
-  4,  0,  4,  1,  4,  2,  4,  3,  4,  4,  4,  5,  4,  6,  4,  7,
-  5,  0,  5,  1,  5,  2,  5,  3,  5,  4,  5,  5,  5,  6,  5,  7,
-  6,  0,  6,  1,  6,  2,  6,  3,  6,  4,  6,  5,  6,  6,  6,  7,
-  7,  0,  7,  1,  7,  2,  7,  3,  7,  4,  7,  5,  7,  6,  7,  7,
-};
-
-static const int8_t codebook_vector8[338] = {
-  0,  0,  0,  1,  0,  2,  0,  3,  0,  4,  0,  5,  0,  6,  0,  7,
-  0,  8,  0,  9,  0, 10,  0, 11,  0, 12,  1,  0,  1,  1,  1,  2,
-  1,  3,  1,  4,  1,  5,  1,  6,  1,  7,  1,  8,  1,  9,  1, 10,
-  1, 11,  1, 12,  2,  0,  2,  1,  2,  2,  2,  3,  2,  4,  2,  5,
-  2,  6,  2,  7,  2,  8,  2,  9,  2, 10,  2, 11,  2, 12,  3,  0,
-  3,  1,  3,  2,  3,  3,  3,  4,  3,  5,  3,  6,  3,  7,  3,  8,
-  3,  9,  3, 10,  3, 11,  3, 12,  4,  0,  4,  1,  4,  2,  4,  3,
-  4,  4,  4,  5,  4,  6,  4,  7,  4,  8,  4,  9,  4, 10,  4, 11,
-  4, 12,  5,  0,  5,  1,  5,  2,  5,  3,  5,  4,  5,  5,  5,  6,
-  5,  7,  5,  8,  5,  9,  5, 10,  5, 11,  5, 12,  6,  0,  6,  1,
-  6,  2,  6,  3,  6,  4,  6,  5,  6,  6,  6,  7,  6,  8,  6,  9,
-  6, 10,  6, 11,  6, 12,  7,  0,  7,  1,  7,  2,  7,  3,  7,  4,
-  7,  5,  7,  6,  7,  7,  7,  8,  7,  9,  7, 10,  7, 11,  7, 12,
-  8,  0,  8,  1,  8,  2,  8,  3,  8,  4,  8,  5,  8,  6,  8,  7,
-  8,  8,  8,  9,  8, 10,  8, 11,  8, 12,  9,  0,  9,  1,  9,  2,
-  9,  3,  9,  4,  9,  5,  9,  6,  9,  7,  9,  8,  9,  9,  9, 10,
-  9, 11,  9, 12, 10,  0, 10,  1, 10,  2, 10,  3, 10,  4, 10,  5,
- 10,  6, 10,  7, 10,  8, 10,  9, 10, 10, 10, 11, 10, 12, 11,  0,
- 11,  1, 11,  2, 11,  3, 11,  4, 11,  5, 11,  6, 11,  7, 11,  8,
- 11,  9, 11, 10, 11, 11, 11, 12, 12,  0, 12,  1, 12,  2, 12,  3,
- 12,  4, 12,  5, 12,  6, 12,  7, 12,  8, 12,  9, 12, 10, 12, 11,
- 12, 12,
-};
-
-static const int8_t codebook_vector10[578] = {
-  0,  0,  0,  1,  0,  2,  0,  3,  0,  4,  0,  5,  0,  6,  0,  7,
-  0,  8,  0,  9,  0, 10,  0, 11,  0, 12,  0, 13,  0, 14,  0, 15,
-  0, 16,  1,  0,  1,  1,  1,  2,  1,  3,  1,  4,  1,  5,  1,  6,
-  1,  7,  1,  8,  1,  9,  1, 10,  1, 11,  1, 12,  1, 13,  1, 14,
-  1, 15,  1, 16,  2,  0,  2,  1,  2,  2,  2,  3,  2,  4,  2,  5,
-  2,  6,  2,  7,  2,  8,  2,  9,  2, 10,  2, 11,  2, 12,  2, 13,
-  2, 14,  2, 15,  2, 16,  3,  0,  3,  1,  3,  2,  3,  3,  3,  4,
-  3,  5,  3,  6,  3,  7,  3,  8,  3,  9,  3, 10,  3, 11,  3, 12,
-  3, 13,  3, 14,  3, 15,  3, 16,  4,  0,  4,  1,  4,  2,  4,  3,
-  4,  4,  4,  5,  4,  6,  4,  7,  4,  8,  4,  9,  4, 10,  4, 11,
-  4, 12,  4, 13,  4, 14,  4, 15,  4, 16,  5,  0,  5,  1,  5,  2,
-  5,  3,  5,  4,  5,  5,  5,  6,  5,  7,  5,  8,  5,  9,  5, 10,
-  5, 11,  5, 12,  5, 13,  5, 14,  5, 15,  5, 16,  6,  0,  6,  1,
-  6,  2,  6,  3,  6,  4,  6,  5,  6,  6,  6,  7,  6,  8,  6,  9,
-  6, 10,  6, 11,  6, 12,  6, 13,  6, 14,  6, 15,  6, 16,  7,  0,
-  7,  1,  7,  2,  7,  3,  7,  4,  7,  5,  7,  6,  7,  7,  7,  8,
-  7,  9,  7, 10,  7, 11,  7, 12,  7, 13,  7, 14,  7, 15,  7, 16,
-  8,  0,  8,  1,  8,  2,  8,  3,  8,  4,  8,  5,  8,  6,  8,  7,
-  8,  8,  8,  9,  8, 10,  8, 11,  8, 12,  8, 13,  8, 14,  8, 15,
-  8, 16,  9,  0,  9,  1,  9,  2,  9,  3,  9,  4,  9,  5,  9,  6,
-  9,  7,  9,  8,  9,  9,  9, 10,  9, 11,  9, 12,  9, 13,  9, 14,
-  9, 15,  9, 16, 10,  0, 10,  1, 10,  2, 10,  3, 10,  4, 10,  5,
- 10,  6, 10,  7, 10,  8, 10,  9, 10, 10, 10, 11, 10, 12, 10, 13,
- 10, 14, 10, 15, 10, 16, 11,  0, 11,  1, 11,  2, 11,  3, 11,  4,
- 11,  5, 11,  6, 11,  7, 11,  8, 11,  9, 11, 10, 11, 11, 11, 12,
- 11, 13, 11, 14, 11, 15, 11, 16, 12,  0, 12,  1, 12,  2, 12,  3,
- 12,  4, 12,  5, 12,  6, 12,  7, 12,  8, 12,  9, 12, 10, 12, 11,
- 12, 12, 12, 13, 12, 14, 12, 15, 12, 16, 13,  0, 13,  1, 13,  2,
- 13,  3, 13,  4, 13,  5, 13,  6, 13,  7, 13,  8, 13,  9, 13, 10,
- 13, 11, 13, 12, 13, 13, 13, 14, 13, 15, 13, 16, 14,  0, 14,  1,
- 14,  2, 14,  3, 14,  4, 14,  5, 14,  6, 14,  7, 14,  8, 14,  9,
- 14, 10, 14, 11, 14, 12, 14, 13, 14, 14, 14, 15, 14, 16, 15,  0,
- 15,  1, 15,  2, 15,  3, 15,  4, 15,  5, 15,  6, 15,  7, 15,  8,
- 15,  9, 15, 10, 15, 11, 15, 12, 15, 13, 15, 14, 15, 15, 15, 16,
- 16,  0, 16,  1, 16,  2, 16,  3, 16,  4, 16,  5, 16,  6, 16,  7,
- 16,  8, 16,  9, 16, 10, 16, 11, 16, 12, 16, 13, 16, 14, 16, 15,
- 16, 16,
-};
-
-const int8_t *ff_aac_codebook_vectors[] = {
+/* NOTE:
+ * 64.0f is a special value indicating the existence of an escape code in the
+ * bitstream.
+ */
+static const float codebook_vector0[324] = {
+ -1.0000000, -1.0000000, -1.0000000, -1.0000000,
+ -1.0000000, -1.0000000, -1.0000000,  0.0000000,
+ -1.0000000, -1.0000000, -1.0000000,  1.0000000,
+ -1.0000000, -1.0000000,  0.0000000, -1.0000000,
+ -1.0000000, -1.0000000,  0.0000000,  0.0000000,
+ -1.0000000, -1.0000000,  0.0000000,  1.0000000,
+ -1.0000000, -1.0000000,  1.0000000, -1.0000000,
+ -1.0000000, -1.0000000,  1.0000000,  0.0000000,
+ -1.0000000, -1.0000000,  1.0000000,  1.0000000,
+ -1.0000000,  0.0000000, -1.0000000, -1.0000000,
+ -1.0000000,  0.0000000, -1.0000000,  0.0000000,
+ -1.0000000,  0.0000000, -1.0000000,  1.0000000,
+ -1.0000000,  0.0000000,  0.0000000, -1.0000000,
+ -1.0000000,  0.0000000,  0.0000000,  0.0000000,
+ -1.0000000,  0.0000000,  0.0000000,  1.0000000,
+ -1.0000000,  0.0000000,  1.0000000, -1.0000000,
+ -1.0000000,  0.0000000,  1.0000000,  0.0000000,
+ -1.0000000,  0.0000000,  1.0000000,  1.0000000,
+ -1.0000000,  1.0000000, -1.0000000, -1.0000000,
+ -1.0000000,  1.0000000, -1.0000000,  0.0000000,
+ -1.0000000,  1.0000000, -1.0000000,  1.0000000,
+ -1.0000000,  1.0000000,  0.0000000, -1.0000000,
+ -1.0000000,  1.0000000,  0.0000000,  0.0000000,
+ -1.0000000,  1.0000000,  0.0000000,  1.0000000,
+ -1.0000000,  1.0000000,  1.0000000, -1.0000000,
+ -1.0000000,  1.0000000,  1.0000000,  0.0000000,
+ -1.0000000,  1.0000000,  1.0000000,  1.0000000,
+  0.0000000, -1.0000000, -1.0000000, -1.0000000,
+  0.0000000, -1.0000000, -1.0000000,  0.0000000,
+  0.0000000, -1.0000000, -1.0000000,  1.0000000,
+  0.0000000, -1.0000000,  0.0000000, -1.0000000,
+  0.0000000, -1.0000000,  0.0000000,  0.0000000,
+  0.0000000, -1.0000000,  0.0000000,  1.0000000,
+  0.0000000, -1.0000000,  1.0000000, -1.0000000,
+  0.0000000, -1.0000000,  1.0000000,  0.0000000,
+  0.0000000, -1.0000000,  1.0000000,  1.0000000,
+  0.0000000,  0.0000000, -1.0000000, -1.0000000,
+  0.0000000,  0.0000000, -1.0000000,  0.0000000,
+  0.0000000,  0.0000000, -1.0000000,  1.0000000,
+  0.0000000,  0.0000000,  0.0000000, -1.0000000,
+  0.0000000,  0.0000000,  0.0000000,  0.0000000,
+  0.0000000,  0.0000000,  0.0000000,  1.0000000,
+  0.0000000,  0.0000000,  1.0000000, -1.0000000,
+  0.0000000,  0.0000000,  1.0000000,  0.0000000,
+  0.0000000,  0.0000000,  1.0000000,  1.0000000,
+  0.0000000,  1.0000000, -1.0000000, -1.0000000,
+  0.0000000,  1.0000000, -1.0000000,  0.0000000,
+  0.0000000,  1.0000000, -1.0000000,  1.0000000,
+  0.0000000,  1.0000000,  0.0000000, -1.0000000,
+  0.0000000,  1.0000000,  0.0000000,  0.0000000,
+  0.0000000,  1.0000000,  0.0000000,  1.0000000,
+  0.0000000,  1.0000000,  1.0000000, -1.0000000,
+  0.0000000,  1.0000000,  1.0000000,  0.0000000,
+  0.0000000,  1.0000000,  1.0000000,  1.0000000,
+  1.0000000, -1.0000000, -1.0000000, -1.0000000,
+  1.0000000, -1.0000000, -1.0000000,  0.0000000,
+  1.0000000, -1.0000000, -1.0000000,  1.0000000,
+  1.0000000, -1.0000000,  0.0000000, -1.0000000,
+  1.0000000, -1.0000000,  0.0000000,  0.0000000,
+  1.0000000, -1.0000000,  0.0000000,  1.0000000,
+  1.0000000, -1.0000000,  1.0000000, -1.0000000,
+  1.0000000, -1.0000000,  1.0000000,  0.0000000,
+  1.0000000, -1.0000000,  1.0000000,  1.0000000,
+  1.0000000,  0.0000000, -1.0000000, -1.0000000,
+  1.0000000,  0.0000000, -1.0000000,  0.0000000,
+  1.0000000,  0.0000000, -1.0000000,  1.0000000,
+  1.0000000,  0.0000000,  0.0000000, -1.0000000,
+  1.0000000,  0.0000000,  0.0000000,  0.0000000,
+  1.0000000,  0.0000000,  0.0000000,  1.0000000,
+  1.0000000,  0.0000000,  1.0000000, -1.0000000,
+  1.0000000,  0.0000000,  1.0000000,  0.0000000,
+  1.0000000,  0.0000000,  1.0000000,  1.0000000,
+  1.0000000,  1.0000000, -1.0000000, -1.0000000,
+  1.0000000,  1.0000000, -1.0000000,  0.0000000,
+  1.0000000,  1.0000000, -1.0000000,  1.0000000,
+  1.0000000,  1.0000000,  0.0000000, -1.0000000,
+  1.0000000,  1.0000000,  0.0000000,  0.0000000,
+  1.0000000,  1.0000000,  0.0000000,  1.0000000,
+  1.0000000,  1.0000000,  1.0000000, -1.0000000,
+  1.0000000,  1.0000000,  1.0000000,  0.0000000,
+  1.0000000,  1.0000000,  1.0000000,  1.0000000,
+};
+
+static const float codebook_vector2[324] = {
+  0.0000000,  0.0000000,  0.0000000,  0.0000000,
+  0.0000000,  0.0000000,  0.0000000,  1.0000000,
+  0.0000000,  0.0000000,  0.0000000,  2.5198421,
+  0.0000000,  0.0000000,  1.0000000,  0.0000000,
+  0.0000000,  0.0000000,  1.0000000,  1.0000000,
+  0.0000000,  0.0000000,  1.0000000,  2.5198421,
+  0.0000000,  0.0000000,  2.5198421,  0.0000000,
+  0.0000000,  0.0000000,  2.5198421,  1.0000000,
+  0.0000000,  0.0000000,  2.5198421,  2.5198421,
+  0.0000000,  1.0000000,  0.0000000,  0.0000000,
+  0.0000000,  1.0000000,  0.0000000,  1.0000000,
+  0.0000000,  1.0000000,  0.0000000,  2.5198421,
+  0.0000000,  1.0000000,  1.0000000,  0.0000000,
+  0.0000000,  1.0000000,  1.0000000,  1.0000000,
+  0.0000000,  1.0000000,  1.0000000,  2.5198421,
+  0.0000000,  1.0000000,  2.5198421,  0.0000000,
+  0.0000000,  1.0000000,  2.5198421,  1.0000000,
+  0.0000000,  1.0000000,  2.5198421,  2.5198421,
+  0.0000000,  2.5198421,  0.0000000,  0.0000000,
+  0.0000000,  2.5198421,  0.0000000,  1.0000000,
+  0.0000000,  2.5198421,  0.0000000,  2.5198421,
+  0.0000000,  2.5198421,  1.0000000,  0.0000000,
+  0.0000000,  2.5198421,  1.0000000,  1.0000000,
+  0.0000000,  2.5198421,  1.0000000,  2.5198421,
+  0.0000000,  2.5198421,  2.5198421,  0.0000000,
+  0.0000000,  2.5198421,  2.5198421,  1.0000000,
+  0.0000000,  2.5198421,  2.5198421,  2.5198421,
+  1.0000000,  0.0000000,  0.0000000,  0.0000000,
+  1.0000000,  0.0000000,  0.0000000,  1.0000000,
+  1.0000000,  0.0000000,  0.0000000,  2.5198421,
+  1.0000000,  0.0000000,  1.0000000,  0.0000000,
+  1.0000000,  0.0000000,  1.0000000,  1.0000000,
+  1.0000000,  0.0000000,  1.0000000,  2.5198421,
+  1.0000000,  0.0000000,  2.5198421,  0.0000000,
+  1.0000000,  0.0000000,  2.5198421,  1.0000000,
+  1.0000000,  0.0000000,  2.5198421,  2.5198421,
+  1.0000000,  1.0000000,  0.0000000,  0.0000000,
+  1.0000000,  1.0000000,  0.0000000,  1.0000000,
+  1.0000000,  1.0000000,  0.0000000,  2.5198421,
+  1.0000000,  1.0000000,  1.0000000,  0.0000000,
+  1.0000000,  1.0000000,  1.0000000,  1.0000000,
+  1.0000000,  1.0000000,  1.0000000,  2.5198421,
+  1.0000000,  1.0000000,  2.5198421,  0.0000000,
+  1.0000000,  1.0000000,  2.5198421,  1.0000000,
+  1.0000000,  1.0000000,  2.5198421,  2.5198421,
+  1.0000000,  2.5198421,  0.0000000,  0.0000000,
+  1.0000000,  2.5198421,  0.0000000,  1.0000000,
+  1.0000000,  2.5198421,  0.0000000,  2.5198421,
+  1.0000000,  2.5198421,  1.0000000,  0.0000000,
+  1.0000000,  2.5198421,  1.0000000,  1.0000000,
+  1.0000000,  2.5198421,  1.0000000,  2.5198421,
+  1.0000000,  2.5198421,  2.5198421,  0.0000000,
+  1.0000000,  2.5198421,  2.5198421,  1.0000000,
+  1.0000000,  2.5198421,  2.5198421,  2.5198421,
+  2.5198421,  0.0000000,  0.0000000,  0.0000000,
+  2.5198421,  0.0000000,  0.0000000,  1.0000000,
+  2.5198421,  0.0000000,  0.0000000,  2.5198421,
+  2.5198421,  0.0000000,  1.0000000,  0.0000000,
+  2.5198421,  0.0000000,  1.0000000,  1.0000000,
+  2.5198421,  0.0000000,  1.0000000,  2.5198421,
+  2.5198421,  0.0000000,  2.5198421,  0.0000000,
+  2.5198421,  0.0000000,  2.5198421,  1.0000000,
+  2.5198421,  0.0000000,  2.5198421,  2.5198421,
+  2.5198421,  1.0000000,  0.0000000,  0.0000000,
+  2.5198421,  1.0000000,  0.0000000,  1.0000000,
+  2.5198421,  1.0000000,  0.0000000,  2.5198421,
+  2.5198421,  1.0000000,  1.0000000,  0.0000000,
+  2.5198421,  1.0000000,  1.0000000,  1.0000000,
+  2.5198421,  1.0000000,  1.0000000,  2.5198421,
+  2.5198421,  1.0000000,  2.5198421,  0.0000000,
+  2.5198421,  1.0000000,  2.5198421,  1.0000000,
+  2.5198421,  1.0000000,  2.5198421,  2.5198421,
+  2.5198421,  2.5198421,  0.0000000,  0.0000000,
+  2.5198421,  2.5198421,  0.0000000,  1.0000000,
+  2.5198421,  2.5198421,  0.0000000,  2.5198421,
+  2.5198421,  2.5198421,  1.0000000,  0.0000000,
+  2.5198421,  2.5198421,  1.0000000,  1.0000000,
+  2.5198421,  2.5198421,  1.0000000,  2.5198421,
+  2.5198421,  2.5198421,  2.5198421,  0.0000000,
+  2.5198421,  2.5198421,  2.5198421,  1.0000000,
+  2.5198421,  2.5198421,  2.5198421,  2.5198421,
+};
+
+static const float codebook_vector4[162] = {
+ -6.3496042, -6.3496042, -6.3496042, -4.3267487,
+ -6.3496042, -2.5198421, -6.3496042, -1.0000000,
+ -6.3496042,  0.0000000, -6.3496042,  1.0000000,
+ -6.3496042,  2.5198421, -6.3496042,  4.3267487,
+ -6.3496042,  6.3496042, -4.3267487, -6.3496042,
+ -4.3267487, -4.3267487, -4.3267487, -2.5198421,
+ -4.3267487, -1.0000000, -4.3267487,  0.0000000,
+ -4.3267487,  1.0000000, -4.3267487,  2.5198421,
+ -4.3267487,  4.3267487, -4.3267487,  6.3496042,
+ -2.5198421, -6.3496042, -2.5198421, -4.3267487,
+ -2.5198421, -2.5198421, -2.5198421, -1.0000000,
+ -2.5198421,  0.0000000, -2.5198421,  1.0000000,
+ -2.5198421,  2.5198421, -2.5198421,  4.3267487,
+ -2.5198421,  6.3496042, -1.0000000, -6.3496042,
+ -1.0000000, -4.3267487, -1.0000000, -2.5198421,
+ -1.0000000, -1.0000000, -1.0000000,  0.0000000,
+ -1.0000000,  1.0000000, -1.0000000,  2.5198421,
+ -1.0000000,  4.3267487, -1.0000000,  6.3496042,
+  0.0000000, -6.3496042,  0.0000000, -4.3267487,
+  0.0000000, -2.5198421,  0.0000000, -1.0000000,
+  0.0000000,  0.0000000,  0.0000000,  1.0000000,
+  0.0000000,  2.5198421,  0.0000000,  4.3267487,
+  0.0000000,  6.3496042,  1.0000000, -6.3496042,
+  1.0000000, -4.3267487,  1.0000000, -2.5198421,
+  1.0000000, -1.0000000,  1.0000000,  0.0000000,
+  1.0000000,  1.0000000,  1.0000000,  2.5198421,
+  1.0000000,  4.3267487,  1.0000000,  6.3496042,
+  2.5198421, -6.3496042,  2.5198421, -4.3267487,
+  2.5198421, -2.5198421,  2.5198421, -1.0000000,
+  2.5198421,  0.0000000,  2.5198421,  1.0000000,
+  2.5198421,  2.5198421,  2.5198421,  4.3267487,
+  2.5198421,  6.3496042,  4.3267487, -6.3496042,
+  4.3267487, -4.3267487,  4.3267487, -2.5198421,
+  4.3267487, -1.0000000,  4.3267487,  0.0000000,
+  4.3267487,  1.0000000,  4.3267487,  2.5198421,
+  4.3267487,  4.3267487,  4.3267487,  6.3496042,
+  6.3496042, -6.3496042,  6.3496042, -4.3267487,
+  6.3496042, -2.5198421,  6.3496042, -1.0000000,
+  6.3496042,  0.0000000,  6.3496042,  1.0000000,
+  6.3496042,  2.5198421,  6.3496042,  4.3267487,
+  6.3496042,  6.3496042,
+};
+
+static const float codebook_vector6[128] = {
+  0.0000000,  0.0000000,  0.0000000,  1.0000000,
+  0.0000000,  2.5198421,  0.0000000,  4.3267487,
+  0.0000000,  6.3496042,  0.0000000,  8.5498797,
+  0.0000000, 10.9027236,  0.0000000, 13.3905183,
+  1.0000000,  0.0000000,  1.0000000,  1.0000000,
+  1.0000000,  2.5198421,  1.0000000,  4.3267487,
+  1.0000000,  6.3496042,  1.0000000,  8.5498797,
+  1.0000000, 10.9027236,  1.0000000, 13.3905183,
+  2.5198421,  0.0000000,  2.5198421,  1.0000000,
+  2.5198421,  2.5198421,  2.5198421,  4.3267487,
+  2.5198421,  6.3496042,  2.5198421,  8.5498797,
+  2.5198421, 10.9027236,  2.5198421, 13.3905183,
+  4.3267487,  0.0000000,  4.3267487,  1.0000000,
+  4.3267487,  2.5198421,  4.3267487,  4.3267487,
+  4.3267487,  6.3496042,  4.3267487,  8.5498797,
+  4.3267487, 10.9027236,  4.3267487, 13.3905183,
+  6.3496042,  0.0000000,  6.3496042,  1.0000000,
+  6.3496042,  2.5198421,  6.3496042,  4.3267487,
+  6.3496042,  6.3496042,  6.3496042,  8.5498797,
+  6.3496042, 10.9027236,  6.3496042, 13.3905183,
+  8.5498797,  0.0000000,  8.5498797,  1.0000000,
+  8.5498797,  2.5198421,  8.5498797,  4.3267487,
+  8.5498797,  6.3496042,  8.5498797,  8.5498797,
+  8.5498797, 10.9027236,  8.5498797, 13.3905183,
+ 10.9027236,  0.0000000, 10.9027236,  1.0000000,
+ 10.9027236,  2.5198421, 10.9027236,  4.3267487,
+ 10.9027236,  6.3496042, 10.9027236,  8.5498797,
+ 10.9027236, 10.9027236, 10.9027236, 13.3905183,
+ 13.3905183,  0.0000000, 13.3905183,  1.0000000,
+ 13.3905183,  2.5198421, 13.3905183,  4.3267487,
+ 13.3905183,  6.3496042, 13.3905183,  8.5498797,
+ 13.3905183, 10.9027236, 13.3905183, 13.3905183,
+};
+
+static const float codebook_vector8[338] = {
+  0.0000000,  0.0000000,  0.0000000,  1.0000000,
+  0.0000000,  2.5198421,  0.0000000,  4.3267487,
+  0.0000000,  6.3496042,  0.0000000,  8.5498797,
+  0.0000000, 10.9027236,  0.0000000, 13.3905183,
+  0.0000000, 16.0000000,  0.0000000, 18.7207544,
+  0.0000000, 21.5443469,  0.0000000, 24.4637810,
+  0.0000000, 27.4731418,  1.0000000,  0.0000000,
+  1.0000000,  1.0000000,  1.0000000,  2.5198421,
+  1.0000000,  4.3267487,  1.0000000,  6.3496042,
+  1.0000000,  8.5498797,  1.0000000, 10.9027236,
+  1.0000000, 13.3905183,  1.0000000, 16.0000000,
+  1.0000000, 18.7207544,  1.0000000, 21.5443469,
+  1.0000000, 24.4637810,  1.0000000, 27.4731418,
+  2.5198421,  0.0000000,  2.5198421,  1.0000000,
+  2.5198421,  2.5198421,  2.5198421,  4.3267487,
+  2.5198421,  6.3496042,  2.5198421,  8.5498797,
+  2.5198421, 10.9027236,  2.5198421, 13.3905183,
+  2.5198421, 16.0000000,  2.5198421, 18.7207544,
+  2.5198421, 21.5443469,  2.5198421, 24.4637810,
+  2.5198421, 27.4731418,  4.3267487,  0.0000000,
+  4.3267487,  1.0000000,  4.3267487,  2.5198421,
+  4.3267487,  4.3267487,  4.3267487,  6.3496042,
+  4.3267487,  8.5498797,  4.3267487, 10.9027236,
+  4.3267487, 13.3905183,  4.3267487, 16.0000000,
+  4.3267487, 18.7207544,  4.3267487, 21.5443469,
+  4.3267487, 24.4637810,  4.3267487, 27.4731418,
+  6.3496042,  0.0000000,  6.3496042,  1.0000000,
+  6.3496042,  2.5198421,  6.3496042,  4.3267487,
+  6.3496042,  6.3496042,  6.3496042,  8.5498797,
+  6.3496042, 10.9027236,  6.3496042, 13.3905183,
+  6.3496042, 16.0000000,  6.3496042, 18.7207544,
+  6.3496042, 21.5443469,  6.3496042, 24.4637810,
+  6.3496042, 27.4731418,  8.5498797,  0.0000000,
+  8.5498797,  1.0000000,  8.5498797,  2.5198421,
+  8.5498797,  4.3267487,  8.5498797,  6.3496042,
+  8.5498797,  8.5498797,  8.5498797, 10.9027236,
+  8.5498797, 13.3905183,  8.5498797, 16.0000000,
+  8.5498797, 18.7207544,  8.5498797, 21.5443469,
+  8.5498797, 24.4637810,  8.5498797, 27.4731418,
+ 10.9027236,  0.0000000, 10.9027236,  1.0000000,
+ 10.9027236,  2.5198421, 10.9027236,  4.3267487,
+ 10.9027236,  6.3496042, 10.9027236,  8.5498797,
+ 10.9027236, 10.9027236, 10.9027236, 13.3905183,
+ 10.9027236, 16.0000000, 10.9027236, 18.7207544,
+ 10.9027236, 21.5443469, 10.9027236, 24.4637810,
+ 10.9027236, 27.4731418, 13.3905183,  0.0000000,
+ 13.3905183,  1.0000000, 13.3905183,  2.5198421,
+ 13.3905183,  4.3267487, 13.3905183,  6.3496042,
+ 13.3905183,  8.5498797, 13.3905183, 10.9027236,
+ 13.3905183, 13.3905183, 13.3905183, 16.0000000,
+ 13.3905183, 18.7207544, 13.3905183, 21.5443469,
+ 13.3905183, 24.4637810, 13.3905183, 27.4731418,
+ 16.0000000,  0.0000000, 16.0000000,  1.0000000,
+ 16.0000000,  2.5198421, 16.0000000,  4.3267487,
+ 16.0000000,  6.3496042, 16.0000000,  8.5498797,
+ 16.0000000, 10.9027236, 16.0000000, 13.3905183,
+ 16.0000000, 16.0000000, 16.0000000, 18.7207544,
+ 16.0000000, 21.5443469, 16.0000000, 24.4637810,
+ 16.0000000, 27.4731418, 18.7207544,  0.0000000,
+ 18.7207544,  1.0000000, 18.7207544,  2.5198421,
+ 18.7207544,  4.3267487, 18.7207544,  6.3496042,
+ 18.7207544,  8.5498797, 18.7207544, 10.9027236,
+ 18.7207544, 13.3905183, 18.7207544, 16.0000000,
+ 18.7207544, 18.7207544, 18.7207544, 21.5443469,
+ 18.7207544, 24.4637810, 18.7207544, 27.4731418,
+ 21.5443469,  0.0000000, 21.5443469,  1.0000000,
+ 21.5443469,  2.5198421, 21.5443469,  4.3267487,
+ 21.5443469,  6.3496042, 21.5443469,  8.5498797,
+ 21.5443469, 10.9027236, 21.5443469, 13.3905183,
+ 21.5443469, 16.0000000, 21.5443469, 18.7207544,
+ 21.5443469, 21.5443469, 21.5443469, 24.4637810,
+ 21.5443469, 27.4731418, 24.4637810,  0.0000000,
+ 24.4637810,  1.0000000, 24.4637810,  2.5198421,
+ 24.4637810,  4.3267487, 24.4637810,  6.3496042,
+ 24.4637810,  8.5498797, 24.4637810, 10.9027236,
+ 24.4637810, 13.3905183, 24.4637810, 16.0000000,
+ 24.4637810, 18.7207544, 24.4637810, 21.5443469,
+ 24.4637810, 24.4637810, 24.4637810, 27.4731418,
+ 27.4731418,  0.0000000, 27.4731418,  1.0000000,
+ 27.4731418,  2.5198421, 27.4731418,  4.3267487,
+ 27.4731418,  6.3496042, 27.4731418,  8.5498797,
+ 27.4731418, 10.9027236, 27.4731418, 13.3905183,
+ 27.4731418, 16.0000000, 27.4731418, 18.7207544,
+ 27.4731418, 21.5443469, 27.4731418, 24.4637810,
+ 27.4731418, 27.4731418,
+};
+
+static const float codebook_vector10[578] = {
+  0.0000000,  0.0000000,  0.0000000,  1.0000000,
+  0.0000000,  2.5198421,  0.0000000,  4.3267487,
+  0.0000000,  6.3496042,  0.0000000,  8.5498797,
+  0.0000000, 10.9027236,  0.0000000, 13.3905183,
+  0.0000000, 16.0000000,  0.0000000, 18.7207544,
+  0.0000000, 21.5443469,  0.0000000, 24.4637810,
+  0.0000000, 27.4731418,  0.0000000, 30.5673509,
+  0.0000000, 33.7419917,  0.0000000, 36.9931811,
+  0.0000000,      64.0f,  1.0000000,  0.0000000,
+  1.0000000,  1.0000000,  1.0000000,  2.5198421,
+  1.0000000,  4.3267487,  1.0000000,  6.3496042,
+  1.0000000,  8.5498797,  1.0000000, 10.9027236,
+  1.0000000, 13.3905183,  1.0000000, 16.0000000,
+  1.0000000, 18.7207544,  1.0000000, 21.5443469,
+  1.0000000, 24.4637810,  1.0000000, 27.4731418,
+  1.0000000, 30.5673509,  1.0000000, 33.7419917,
+  1.0000000, 36.9931811,  1.0000000,      64.0f,
+  2.5198421,  0.0000000,  2.5198421,  1.0000000,
+  2.5198421,  2.5198421,  2.5198421,  4.3267487,
+  2.5198421,  6.3496042,  2.5198421,  8.5498797,
+  2.5198421, 10.9027236,  2.5198421, 13.3905183,
+  2.5198421, 16.0000000,  2.5198421, 18.7207544,
+  2.5198421, 21.5443469,  2.5198421, 24.4637810,
+  2.5198421, 27.4731418,  2.5198421, 30.5673509,
+  2.5198421, 33.7419917,  2.5198421, 36.9931811,
+  2.5198421,      64.0f,  4.3267487,  0.0000000,
+  4.3267487,  1.0000000,  4.3267487,  2.5198421,
+  4.3267487,  4.3267487,  4.3267487,  6.3496042,
+  4.3267487,  8.5498797,  4.3267487, 10.9027236,
+  4.3267487, 13.3905183,  4.3267487, 16.0000000,
+  4.3267487, 18.7207544,  4.3267487, 21.5443469,
+  4.3267487, 24.4637810,  4.3267487, 27.4731418,
+  4.3267487, 30.5673509,  4.3267487, 33.7419917,
+  4.3267487, 36.9931811,  4.3267487,      64.0f,
+  6.3496042,  0.0000000,  6.3496042,  1.0000000,
+  6.3496042,  2.5198421,  6.3496042,  4.3267487,
+  6.3496042,  6.3496042,  6.3496042,  8.5498797,
+  6.3496042, 10.9027236,  6.3496042, 13.3905183,
+  6.3496042, 16.0000000,  6.3496042, 18.7207544,
+  6.3496042, 21.5443469,  6.3496042, 24.4637810,
+  6.3496042, 27.4731418,  6.3496042, 30.5673509,
+  6.3496042, 33.7419917,  6.3496042, 36.9931811,
+  6.3496042,      64.0f,  8.5498797,  0.0000000,
+  8.5498797,  1.0000000,  8.5498797,  2.5198421,
+  8.5498797,  4.3267487,  8.5498797,  6.3496042,
+  8.5498797,  8.5498797,  8.5498797, 10.9027236,
+  8.5498797, 13.3905183,  8.5498797, 16.0000000,
+  8.5498797, 18.7207544,  8.5498797, 21.5443469,
+  8.5498797, 24.4637810,  8.5498797, 27.4731418,
+  8.5498797, 30.5673509,  8.5498797, 33.7419917,
+  8.5498797, 36.9931811,  8.5498797,      64.0f,
+ 10.9027236,  0.0000000, 10.9027236,  1.0000000,
+ 10.9027236,  2.5198421, 10.9027236,  4.3267487,
+ 10.9027236,  6.3496042, 10.9027236,  8.5498797,
+ 10.9027236, 10.9027236, 10.9027236, 13.3905183,
+ 10.9027236, 16.0000000, 10.9027236, 18.7207544,
+ 10.9027236, 21.5443469, 10.9027236, 24.4637810,
+ 10.9027236, 27.4731418, 10.9027236, 30.5673509,
+ 10.9027236, 33.7419917, 10.9027236, 36.9931811,
+ 10.9027236,      64.0f, 13.3905183,  0.0000000,
+ 13.3905183,  1.0000000, 13.3905183,  2.5198421,
+ 13.3905183,  4.3267487, 13.3905183,  6.3496042,
+ 13.3905183,  8.5498797, 13.3905183, 10.9027236,
+ 13.3905183, 13.3905183, 13.3905183, 16.0000000,
+ 13.3905183, 18.7207544, 13.3905183, 21.5443469,
+ 13.3905183, 24.4637810, 13.3905183, 27.4731418,
+ 13.3905183, 30.5673509, 13.3905183, 33.7419917,
+ 13.3905183, 36.9931811, 13.3905183,      64.0f,
+ 16.0000000,  0.0000000, 16.0000000,  1.0000000,
+ 16.0000000,  2.5198421, 16.0000000,  4.3267487,
+ 16.0000000,  6.3496042, 16.0000000,  8.5498797,
+ 16.0000000, 10.9027236, 16.0000000, 13.3905183,
+ 16.0000000, 16.0000000, 16.0000000, 18.7207544,
+ 16.0000000, 21.5443469, 16.0000000, 24.4637810,
+ 16.0000000, 27.4731418, 16.0000000, 30.5673509,
+ 16.0000000, 33.7419917, 16.0000000, 36.9931811,
+ 16.0000000,      64.0f, 18.7207544,  0.0000000,
+ 18.7207544,  1.0000000, 18.7207544,  2.5198421,
+ 18.7207544,  4.3267487, 18.7207544,  6.3496042,
+ 18.7207544,  8.5498797, 18.7207544, 10.9027236,
+ 18.7207544, 13.3905183, 18.7207544, 16.0000000,
+ 18.7207544, 18.7207544, 18.7207544, 21.5443469,
+ 18.7207544, 24.4637810, 18.7207544, 27.4731418,
+ 18.7207544, 30.5673509, 18.7207544, 33.7419917,
+ 18.7207544, 36.9931811, 18.7207544,      64.0f,
+ 21.5443469,  0.0000000, 21.5443469,  1.0000000,
+ 21.5443469,  2.5198421, 21.5443469,  4.3267487,
+ 21.5443469,  6.3496042, 21.5443469,  8.5498797,
+ 21.5443469, 10.9027236, 21.5443469, 13.3905183,
+ 21.5443469, 16.0000000, 21.5443469, 18.7207544,
+ 21.5443469, 21.5443469, 21.5443469, 24.4637810,
+ 21.5443469, 27.4731418, 21.5443469, 30.5673509,
+ 21.5443469, 33.7419917, 21.5443469, 36.9931811,
+ 21.5443469,      64.0f, 24.4637810,  0.0000000,
+ 24.4637810,  1.0000000, 24.4637810,  2.5198421,
+ 24.4637810,  4.3267487, 24.4637810,  6.3496042,
+ 24.4637810,  8.5498797, 24.4637810, 10.9027236,
+ 24.4637810, 13.3905183, 24.4637810, 16.0000000,
+ 24.4637810, 18.7207544, 24.4637810, 21.5443469,
+ 24.4637810, 24.4637810, 24.4637810, 27.4731418,
+ 24.4637810, 30.5673509, 24.4637810, 33.7419917,
+ 24.4637810, 36.9931811, 24.4637810,      64.0f,
+ 27.4731418,  0.0000000, 27.4731418,  1.0000000,
+ 27.4731418,  2.5198421, 27.4731418,  4.3267487,
+ 27.4731418,  6.3496042, 27.4731418,  8.5498797,
+ 27.4731418, 10.9027236, 27.4731418, 13.3905183,
+ 27.4731418, 16.0000000, 27.4731418, 18.7207544,
+ 27.4731418, 21.5443469, 27.4731418, 24.4637810,
+ 27.4731418, 27.4731418, 27.4731418, 30.5673509,
+ 27.4731418, 33.7419917, 27.4731418, 36.9931811,
+ 27.4731418,      64.0f, 30.5673509,  0.0000000,
+ 30.5673509,  1.0000000, 30.5673509,  2.5198421,
+ 30.5673509,  4.3267487, 30.5673509,  6.3496042,
+ 30.5673509,  8.5498797, 30.5673509, 10.9027236,
+ 30.5673509, 13.3905183, 30.5673509, 16.0000000,
+ 30.5673509, 18.7207544, 30.5673509, 21.5443469,
+ 30.5673509, 24.4637810, 30.5673509, 27.4731418,
+ 30.5673509, 30.5673509, 30.5673509, 33.7419917,
+ 30.5673509, 36.9931811, 30.5673509,      64.0f,
+ 33.7419917,  0.0000000, 33.7419917,  1.0000000,
+ 33.7419917,  2.5198421, 33.7419917,  4.3267487,
+ 33.7419917,  6.3496042, 33.7419917,  8.5498797,
+ 33.7419917, 10.9027236, 33.7419917, 13.3905183,
+ 33.7419917, 16.0000000, 33.7419917, 18.7207544,
+ 33.7419917, 21.5443469, 33.7419917, 24.4637810,
+ 33.7419917, 27.4731418, 33.7419917, 30.5673509,
+ 33.7419917, 33.7419917, 33.7419917, 36.9931811,
+ 33.7419917,      64.0f, 36.9931811,  0.0000000,
+ 36.9931811,  1.0000000, 36.9931811,  2.5198421,
+ 36.9931811,  4.3267487, 36.9931811,  6.3496042,
+ 36.9931811,  8.5498797, 36.9931811, 10.9027236,
+ 36.9931811, 13.3905183, 36.9931811, 16.0000000,
+ 36.9931811, 18.7207544, 36.9931811, 21.5443469,
+ 36.9931811, 24.4637810, 36.9931811, 27.4731418,
+ 36.9931811, 30.5673509, 36.9931811, 33.7419917,
+ 36.9931811, 36.9931811, 36.9931811,      64.0f,
+      64.0f,  0.0000000,      64.0f,  1.0000000,
+      64.0f,  2.5198421,      64.0f,  4.3267487,
+      64.0f,  6.3496042,      64.0f,  8.5498797,
+      64.0f, 10.9027236,      64.0f, 13.3905183,
+      64.0f, 16.0000000,      64.0f, 18.7207544,
+      64.0f, 21.5443469,      64.0f, 24.4637810,
+      64.0f, 27.4731418,      64.0f, 30.5673509,
+      64.0f, 33.7419917,      64.0f, 36.9931811,
+      64.0f,      64.0f,
+};
+
+const float *ff_aac_codebook_vectors[] = {
     codebook_vector0, codebook_vector0, codebook_vector2,
     codebook_vector2, codebook_vector4, codebook_vector4,
     codebook_vector6, codebook_vector6, codebook_vector8,
@@ -545,265 +894,6 @@ const int8_t *ff_aac_codebook_vectors[] = {
 
 #ifdef CONFIG_HARDCODED_TABLES
 
-const float ff_aac_ivquant_tab[IVQUANT_SIZE] = {
-    -4085.3368071, -4074.6805676, -4064.0312908, -4053.3889857,
-    -4042.7536614, -4032.1253271, -4021.5039921, -4010.8896656,
-    -4000.2823568, -3989.6820750, -3979.0888296, -3968.5026299,
-    -3957.9234854, -3947.3514054, -3936.7863993, -3926.2284768,
-    -3915.6776473, -3905.1339203, -3894.5973054, -3884.0678123,
-    -3873.5454506, -3863.0302299, -3852.5221601, -3842.0212507,
-    -3831.5275117, -3821.0409528, -3810.5615838, -3800.0894147,
-    -3789.6244554, -3779.1667157, -3768.7162058, -3758.2729355,
-    -3747.8369150, -3737.4081544, -3726.9866637, -3716.5724532,
-    -3706.1655329, -3695.7659132, -3685.3736044, -3674.9886166,
-    -3664.6109603, -3654.2406458, -3643.8776835, -3633.5220839,
-    -3623.1738574, -3612.8330147, -3602.4995662, -3592.1735225,
-    -3581.8548943, -3571.5436923, -3561.2399271, -3550.9436095,
-    -3540.6547503, -3530.3733604, -3520.0994506, -3509.8330317,
-    -3499.5741148, -3489.3227109, -3479.0788309, -3468.8424860,
-    -3458.6136872, -3448.3924458, -3438.1787728, -3427.9726795,
-    -3417.7741773, -3407.5832773, -3397.3999911, -3387.2243299,
-    -3377.0563052, -3366.8959286, -3356.7432115, -3346.5981655,
-    -3336.4608022, -3326.3311334, -3316.2091706, -3306.0949257,
-    -3295.9884105, -3285.8896367, -3275.7986164, -3265.7153613,
-    -3255.6398836, -3245.5721951, -3235.5123081, -3225.4602346,
-    -3215.4159867, -3205.3795768, -3195.3510169, -3185.3303196,
-    -3175.3174970, -3165.3125617, -3155.3155261, -3145.3264026,
-    -3135.3452039, -3125.3719425, -3115.4066312, -3105.4492825,
-    -3095.4999092, -3085.5585243, -3075.6251404, -3065.6997706,
-    -3055.7824278, -3045.8731250, -3035.9718753, -3026.0786917,
-    -3016.1935876, -3006.3165760, -2996.4476703, -2986.5868839,
-    -2976.7342300, -2966.8897222, -2957.0533740, -2947.2251989,
-    -2937.4052106, -2927.5934226, -2917.7898488, -2907.9945030,
-    -2898.2073989, -2888.4285505, -2878.6579717, -2868.8956767,
-    -2859.1416793, -2849.3959939, -2839.6586345, -2829.9296156,
-    -2820.2089512, -2810.4966560, -2800.7927443, -2791.0972306,
-    -2781.4101295, -2771.7314556, -2762.0612237, -2752.3994485,
-    -2742.7461448, -2733.1013276, -2723.4650117, -2713.8372123,
-    -2704.2179443, -2694.6072231, -2685.0050637, -2675.4114815,
-    -2665.8264919, -2656.2501103, -2646.6823521, -2637.1232331,
-    -2627.5727687, -2618.0309748, -2608.4978671, -2598.9734614,
-    -2589.4577738, -2579.9508201, -2570.4526166, -2560.9631792,
-    -2551.4825244, -2542.0106682, -2532.5476273, -2523.0934179,
-    -2513.6480566, -2504.2115601, -2494.7839450, -2485.3652281,
-    -2475.9554262, -2466.5545562, -2457.1626352, -2447.7796803,
-    -2438.4057086, -2429.0407373, -2419.6847838, -2410.3378655,
-    -2401.0000000, -2391.6712048, -2382.3514975, -2373.0408959,
-    -2363.7394180, -2354.4470815, -2345.1639046, -2335.8899054,
-    -2326.6251019, -2317.3695127, -2308.1231559, -2298.8860501,
-    -2289.6582139, -2280.4396659, -2271.2304249, -2262.0305097,
-    -2252.8399393, -2243.6587327, -2234.4869090, -2225.3244875,
-    -2216.1714876, -2207.0279286, -2197.8938301, -2188.7692117,
-    -2179.6540933, -2170.5484945, -2161.4524354, -2152.3659360,
-    -2143.2890165, -2134.2216972, -2125.1639983, -2116.1159404,
-    -2107.0775442, -2098.0488302, -2089.0298192, -2080.0205323,
-    -2071.0209905, -2062.0312148, -2053.0512267, -2044.0810473,
-    -2035.1206983, -2026.1702013, -2017.2295780, -2008.2988502,
-    -1999.3780400, -1990.4671694, -1981.5662607, -1972.6753362,
-    -1963.7944183, -1954.9235298, -1946.0626932, -1937.2119316,
-    -1928.3712678, -1919.5407249, -1910.7203263, -1901.9100954,
-    -1893.1100555, -1884.3202305, -1875.5406441, -1866.7713202,
-    -1858.0122829, -1849.2635565, -1840.5251653, -1831.7971337,
-    -1823.0794865, -1814.3722485, -1805.6754445, -1796.9890997,
-    -1788.3132394, -1779.6478889, -1770.9930739, -1762.3488199,
-    -1753.7151529, -1745.0920989, -1736.4796841, -1727.8779349,
-    -1719.2868777, -1710.7065393, -1702.1369465, -1693.5781262,
-    -1685.0301058, -1676.4929125, -1667.9665739, -1659.4511177,
-    -1650.9465718, -1642.4529642, -1633.9703232, -1625.4986772,
-    -1617.0380549, -1608.5884850, -1600.1499965, -1591.7226186,
-    -1583.3063807, -1574.9013124, -1566.5074433, -1558.1248036,
-    -1549.7534233, -1541.3933328, -1533.0445627, -1524.7071438,
-    -1516.3811070, -1508.0664836, -1499.7633050, -1491.4716029,
-    -1483.1914090, -1474.9227555, -1466.6656746, -1458.4201990,
-    -1450.1863613, -1441.9641946, -1433.7537320, -1425.5550071,
-    -1417.3680536, -1409.1929053, -1401.0295965, -1392.8781617,
-    -1384.7386355, -1376.6110529, -1368.4954490, -1360.3918594,
-    -1352.3003198, -1344.2208661, -1336.1535347, -1328.0983621,
-    -1320.0553851, -1312.0246407, -1304.0061665, -1296.0000000,
-    -1288.0061792, -1280.0247424, -1272.0557280, -1264.0991750,
-    -1256.1551226, -1248.2236101, -1240.3046773, -1232.3983645,
-    -1224.5047118, -1216.6237602, -1208.7555507, -1200.9001246,
-    -1193.0575238, -1185.2277903, -1177.4109665, -1169.6070953,
-    -1161.8162197, -1154.0383833, -1146.2736299, -1138.5220038,
-    -1130.7835495, -1123.0583122, -1115.3463371, -1107.6476700,
-    -1099.9623571, -1092.2904450, -1084.6319806, -1076.9870114,
-    -1069.3555851, -1061.7377500, -1054.1335548, -1046.5430486,
-    -1038.9662809, -1031.4033017, -1023.8541615, -1016.3189112,
-    -1008.7976022, -1001.2902864,  -993.7970162,  -986.3178444,
-     -978.8528243,  -971.4020099,  -963.9654554,  -956.5432158,
-     -949.1353466,  -941.7419036,  -934.3629435,  -926.9985233,
-     -919.6487005,  -912.3135336,  -904.9930812,  -897.6874027,
-     -890.3965581,  -883.1206081,  -875.8596139,  -868.6136373,
-     -861.3827409,  -854.1669878,  -846.9664418,  -839.7811675,
-     -832.6112300,  -825.4566953,  -818.3176299,  -811.1941012,
-     -804.0861773,  -796.9939269,  -789.9174197,  -782.8567260,
-     -775.8119169,  -768.7830645,  -761.7702415,  -754.7735215,
-     -747.7929790,  -740.8286894,  -733.8807287,  -726.9491743,
-     -720.0341040,  -713.1355968,  -706.2537328,  -699.3885927,
-     -692.5402584,  -685.7088129,  -678.8943400,  -672.0969248,
-     -665.3166532,  -658.5536125,  -651.8078908,  -645.0795775,
-     -638.3687633,  -631.6755398,  -625.0000000,  -618.3422381,
-     -611.7023495,  -605.0804310,  -598.4765806,  -591.8908978,
-     -585.3234834,  -578.7744395,  -572.2438698,  -565.7318795,
-     -559.2385751,  -552.7640648,  -546.3084584,  -539.8718672,
-     -533.4544042,  -527.0561843,  -520.6773237,  -514.3179408,
-     -507.9781556,  -501.6580901,  -495.3578679,  -489.0776150,
-     -482.8174592,  -476.5775303,  -470.3579603,  -464.1588834,
-     -457.9804359,  -451.8227566,  -445.6859865,  -439.5702691,
-     -433.4757504,  -427.4025787,  -421.3509053,  -415.3208841,
-     -409.3126715,  -403.3264272,  -397.3623135,  -391.4204959,
-     -385.5011431,  -379.6044268,  -373.7305221,  -367.8796078,
-     -362.0518657,  -356.2474818,  -350.4666456,  -344.7095504,
-     -338.9763937,  -333.2673772,  -327.5827066,  -321.9225924,
-     -316.2872495,  -310.6768976,  -305.0917613,  -299.5320705,
-     -293.9980602,  -288.4899710,  -283.0080491,  -277.5525469,
-     -272.1237227,  -266.7218414,  -261.3471743,  -256.0000000,
-     -250.6806041,  -245.3892798,  -240.1263282,  -234.8920585,
-     -229.6867885,  -224.5108452,  -219.3645645,  -214.2482925,
-     -209.1623853,  -204.1072101,  -199.0831450,  -194.0905802,
-     -189.1299182,  -184.2015749,  -179.3059798,  -174.4435769,
-     -169.6148258,  -164.8202021,  -160.0601987,  -155.3353268,
-     -150.6461166,  -145.9931191,  -141.3769069,  -136.7980757,
-     -132.2572463,  -127.7550655,  -123.2922085,  -118.8693810,
-     -114.4873209,  -110.1468012,  -105.8486329,  -101.5936673,
-      -97.3828002,   -93.2169752,   -89.0971879,   -85.0244912,
-      -81.0000000,   -77.0248978,   -73.1004435,   -69.2279794,
-      -65.4089405,   -61.6448653,   -57.9374077,   -54.2883523,
-      -50.6996313,   -47.1733451,   -43.7117870,   -40.3174736,
-      -36.9931811,   -33.7419917,   -30.5673509,   -27.4731418,
-      -24.4637810,   -21.5443469,   -18.7207544,   -16.0000000,
-      -13.3905183,   -10.9027236,    -8.5498797,    -6.3496042,
-       -4.3267487,    -2.5198421,    -1.0000000,     0.0000000,
-        1.0000000,     2.5198421,     4.3267487,     6.3496042,
-        8.5498797,    10.9027236,    13.3905183,    16.0000000,
-       18.7207544,    21.5443469,    24.4637810,    27.4731418,
-       30.5673509,    33.7419917,    36.9931811,    40.3174736,
-       43.7117870,    47.1733451,    50.6996313,    54.2883523,
-       57.9374077,    61.6448653,    65.4089405,    69.2279794,
-       73.1004435,    77.0248978,    81.0000000,    85.0244912,
-       89.0971879,    93.2169752,    97.3828002,   101.5936673,
-      105.8486329,   110.1468012,   114.4873209,   118.8693810,
-      123.2922085,   127.7550655,   132.2572463,   136.7980757,
-      141.3769069,   145.9931191,   150.6461166,   155.3353268,
-      160.0601987,   164.8202021,   169.6148258,   174.4435769,
-      179.3059798,   184.2015749,   189.1299182,   194.0905802,
-      199.0831450,   204.1072101,   209.1623853,   214.2482925,
-      219.3645645,   224.5108452,   229.6867885,   234.8920585,
-      240.1263282,   245.3892798,   250.6806041,   256.0000000,
-      261.3471743,   266.7218414,   272.1237227,   277.5525469,
-      283.0080491,   288.4899710,   293.9980602,   299.5320705,
-      305.0917613,   310.6768976,   316.2872495,   321.9225924,
-      327.5827066,   333.2673772,   338.9763937,   344.7095504,
-      350.4666456,   356.2474818,   362.0518657,   367.8796078,
-      373.7305221,   379.6044268,   385.5011431,   391.4204959,
-      397.3623135,   403.3264272,   409.3126715,   415.3208841,
-      421.3509053,   427.4025787,   433.4757504,   439.5702691,
-      445.6859865,   451.8227566,   457.9804359,   464.1588834,
-      470.3579603,   476.5775303,   482.8174592,   489.0776150,
-      495.3578679,   501.6580901,   507.9781556,   514.3179408,
-      520.6773237,   527.0561843,   533.4544042,   539.8718672,
-      546.3084584,   552.7640648,   559.2385751,   565.7318795,
-      572.2438698,   578.7744395,   585.3234834,   591.8908978,
-      598.4765806,   605.0804310,   611.7023495,   618.3422381,
-      625.0000000,   631.6755398,   638.3687633,   645.0795775,
-      651.8078908,   658.5536125,   665.3166532,   672.0969248,
-      678.8943400,   685.7088129,   692.5402584,   699.3885927,
-      706.2537328,   713.1355968,   720.0341040,   726.9491743,
-      733.8807287,   740.8286894,   747.7929790,   754.7735215,
-      761.7702415,   768.7830645,   775.8119169,   782.8567260,
-      789.9174197,   796.9939269,   804.0861773,   811.1941012,
-      818.3176299,   825.4566953,   832.6112300,   839.7811675,
-      846.9664418,   854.1669878,   861.3827409,   868.6136373,
-      875.8596139,   883.1206081,   890.3965581,   897.6874027,
-      904.9930812,   912.3135336,   919.6487005,   926.9985233,
-      934.3629435,   941.7419036,   949.1353466,   956.5432158,
-      963.9654554,   971.4020099,   978.8528243,   986.3178444,
-      993.7970162,  1001.2902864,  1008.7976022,  1016.3189112,
-     1023.8541615,  1031.4033017,  1038.9662809,  1046.5430486,
-     1054.1335548,  1061.7377500,  1069.3555851,  1076.9870114,
-     1084.6319806,  1092.2904450,  1099.9623571,  1107.6476700,
-     1115.3463371,  1123.0583122,  1130.7835495,  1138.5220038,
-     1146.2736299,  1154.0383833,  1161.8162197,  1169.6070953,
-     1177.4109665,  1185.2277903,  1193.0575238,  1200.9001246,
-     1208.7555507,  1216.6237602,  1224.5047118,  1232.3983645,
-     1240.3046773,  1248.2236101,  1256.1551226,  1264.0991750,
-     1272.0557280,  1280.0247424,  1288.0061792,  1296.0000000,
-     1304.0061665,  1312.0246407,  1320.0553851,  1328.0983621,
-     1336.1535347,  1344.2208661,  1352.3003198,  1360.3918594,
-     1368.4954490,  1376.6110529,  1384.7386355,  1392.8781617,
-     1401.0295965,  1409.1929053,  1417.3680536,  1425.5550071,
-     1433.7537320,  1441.9641946,  1450.1863613,  1458.4201990,
-     1466.6656746,  1474.9227555,  1483.1914090,  1491.4716029,
-     1499.7633050,  1508.0664836,  1516.3811070,  1524.7071438,
-     1533.0445627,  1541.3933328,  1549.7534233,  1558.1248036,
-     1566.5074433,  1574.9013124,  1583.3063807,  1591.7226186,
-     1600.1499965,  1608.5884850,  1617.0380549,  1625.4986772,
-     1633.9703232,  1642.4529642,  1650.9465718,  1659.4511177,
-     1667.9665739,  1676.4929125,  1685.0301058,  1693.5781262,
-     1702.1369465,  1710.7065393,  1719.2868777,  1727.8779349,
-     1736.4796841,  1745.0920989,  1753.7151529,  1762.3488199,
-     1770.9930739,  1779.6478889,  1788.3132394,  1796.9890997,
-     1805.6754445,  1814.3722485,  1823.0794865,  1831.7971337,
-     1840.5251653,  1849.2635565,  1858.0122829,  1866.7713202,
-     1875.5406441,  1884.3202305,  1893.1100555,  1901.9100954,
-     1910.7203263,  1919.5407249,  1928.3712678,  1937.2119316,
-     1946.0626932,  1954.9235298,  1963.7944183,  1972.6753362,
-     1981.5662607,  1990.4671694,  1999.3780400,  2008.2988502,
-     2017.2295780,  2026.1702013,  2035.1206983,  2044.0810473,
-     2053.0512267,  2062.0312148,  2071.0209905,  2080.0205323,
-     2089.0298192,  2098.0488302,  2107.0775442,  2116.1159404,
-     2125.1639983,  2134.2216972,  2143.2890165,  2152.3659360,
-     2161.4524354,  2170.5484945,  2179.6540933,  2188.7692117,
-     2197.8938301,  2207.0279286,  2216.1714876,  2225.3244875,
-     2234.4869090,  2243.6587327,  2252.8399393,  2262.0305097,
-     2271.2304249,  2280.4396659,  2289.6582139,  2298.8860501,
-     2308.1231559,  2317.3695127,  2326.6251019,  2335.8899054,
-     2345.1639046,  2354.4470815,  2363.7394180,  2373.0408959,
-     2382.3514975,  2391.6712048,  2401.0000000,  2410.3378655,
-     2419.6847838,  2429.0407373,  2438.4057086,  2447.7796803,
-     2457.1626352,  2466.5545562,  2475.9554262,  2485.3652281,
-     2494.7839450,  2504.2115601,  2513.6480566,  2523.0934179,
-     2532.5476273,  2542.0106682,  2551.4825244,  2560.9631792,
-     2570.4526166,  2579.9508201,  2589.4577738,  2598.9734614,
-     2608.4978671,  2618.0309748,  2627.5727687,  2637.1232331,
-     2646.6823521,  2656.2501103,  2665.8264919,  2675.4114815,
-     2685.0050637,  2694.6072231,  2704.2179443,  2713.8372123,
-     2723.4650117,  2733.1013276,  2742.7461448,  2752.3994485,
-     2762.0612237,  2771.7314556,  2781.4101295,  2791.0972306,
-     2800.7927443,  2810.4966560,  2820.2089512,  2829.9296156,
-     2839.6586345,  2849.3959939,  2859.1416793,  2868.8956767,
-     2878.6579717,  2888.4285505,  2898.2073989,  2907.9945030,
-     2917.7898488,  2927.5934226,  2937.4052106,  2947.2251989,
-     2957.0533740,  2966.8897222,  2976.7342300,  2986.5868839,
-     2996.4476703,  3006.3165760,  3016.1935876,  3026.0786917,
-     3035.9718753,  3045.8731250,  3055.7824278,  3065.6997706,
-     3075.6251404,  3085.5585243,  3095.4999092,  3105.4492825,
-     3115.4066312,  3125.3719425,  3135.3452039,  3145.3264026,
-     3155.3155261,  3165.3125617,  3175.3174970,  3185.3303196,
-     3195.3510169,  3205.3795768,  3215.4159867,  3225.4602346,
-     3235.5123081,  3245.5721951,  3255.6398836,  3265.7153613,
-     3275.7986164,  3285.8896367,  3295.9884105,  3306.0949257,
-     3316.2091706,  3326.3311334,  3336.4608022,  3346.5981655,
-     3356.7432115,  3366.8959286,  3377.0563052,  3387.2243299,
-     3397.3999911,  3407.5832773,  3417.7741773,  3427.9726795,
-     3438.1787728,  3448.3924458,  3458.6136872,  3468.8424860,
-     3479.0788309,  3489.3227109,  3499.5741148,  3509.8330317,
-     3520.0994506,  3530.3733604,  3540.6547503,  3550.9436095,
-     3561.2399271,  3571.5436923,  3581.8548943,  3592.1735225,
-     3602.4995662,  3612.8330147,  3623.1738574,  3633.5220839,
-     3643.8776835,  3654.2406458,  3664.6109603,  3674.9886166,
-     3685.3736044,  3695.7659132,  3706.1655329,  3716.5724532,
-     3726.9866637,  3737.4081544,  3747.8369150,  3758.2729355,
-     3768.7162058,  3779.1667157,  3789.6244554,  3800.0894147,
-     3810.5615838,  3821.0409528,  3831.5275117,  3842.0212507,
-     3852.5221601,  3863.0302299,  3873.5454506,  3884.0678123,
-     3894.5973054,  3905.1339203,  3915.6776473,  3926.2284768,
-     3936.7863993,  3947.3514054,  3957.9234854,  3968.5026299,
-     3979.0888296,  3989.6820750,  4000.2823568,  4010.8896656,
-     4021.5039921,  4032.1253271,  4042.7536614,  4053.3889857,
-     4064.0312908,  4074.6805676,  4085.3368071,  4096.0000000,
-};
-
 /**
  * Table of pow(2, (i - 200)/4.) used for different purposes depending on the
  * range of indices to the table:
index 198b61c..8dcf94d 100644 (file)
@@ -54,10 +54,9 @@ extern const uint16_t *ff_aac_spectral_codes[11];
 extern const uint8_t  *ff_aac_spectral_bits [11];
 extern const uint16_t  ff_aac_spectral_sizes[11];
 
-extern const int8_t *ff_aac_codebook_vectors[];
+extern const float *ff_aac_codebook_vectors[];
 
 #ifdef CONFIG_HARDCODED_TABLES
-extern const float ff_aac_ivquant_tab[IVQUANT_SIZE];
 extern const float ff_aac_pow2sf_tab[316];
 #endif /* CONFIG_HARDCODED_TABLES */