Browse code

Synchronise AAC decoder code with that from SoC

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

Robert Swain authored on 2008/08/15 09:19:14
Showing 4 changed files
... ...
@@ -91,7 +91,6 @@
91 91
 #include <string.h>
92 92
 
93 93
 #ifndef CONFIG_HARDCODED_TABLES
94
-    static float ff_aac_ivquant_tab[IVQUANT_SIZE];
95 94
     static float ff_aac_pow2sf_tab[316];
96 95
 #endif /* CONFIG_HARDCODED_TABLES */
97 96
 
... ...
@@ -403,8 +402,6 @@ static av_cold int aac_decode_init(AVCodecContext * avccontext) {
403 403
     }
404 404
 
405 405
 #ifndef CONFIG_HARDCODED_TABLES
406
-    for (i = 1 - IVQUANT_SIZE/2; i < IVQUANT_SIZE/2; i++)
407
-        ff_aac_ivquant_tab[i + IVQUANT_SIZE/2 - 1] =  cbrt(fabs(i)) * i;
408 406
     for (i = 0; i < 316; i++)
409 407
         ff_aac_pow2sf_tab[i] = pow(2, (i - 200)/4.);
410 408
 #endif /* CONFIG_HARDCODED_TABLES */
... ...
@@ -469,19 +466,6 @@ static int decode_ics_info(AACContext * ac, IndividualChannelStream * ics, GetBi
469 469
 }
470 470
 
471 471
 /**
472
- * inverse quantization
473
- *
474
- * @param   a   quantized value to be dequantized
475
- * @return  Returns dequantized value.
476
- */
477
-static inline float ivquant(int a) {
478
-    if (a + (unsigned int)IVQUANT_SIZE/2 - 1 < (unsigned int)IVQUANT_SIZE - 1)
479
-        return ff_aac_ivquant_tab[a + IVQUANT_SIZE/2 - 1];
480
-    else
481
-        return cbrtf(fabsf(a)) * a;
482
-}
483
-
484
-/**
485 472
  * Decode band types (section_data payload); reference: table 4.46.
486 473
  *
487 474
  * @param   band_type           array of the used band type
... ...
@@ -535,7 +519,6 @@ static int decode_scalefactors(AACContext * ac, float sf[120], GetBitContext * g
535 535
     int offset[3] = { global_gain, global_gain - 90, 100 };
536 536
     int noise_flag = 1;
537 537
     static const char *sf_str[3] = { "Global gain", "Noise gain", "Intensity stereo position" };
538
-    ics->intensity_present = 0;
539 538
     for (g = 0; g < ics->num_window_groups; g++) {
540 539
         for (i = 0; i < ics->max_sfb;) {
541 540
             int run_end = band_type_run_end[idx];
... ...
@@ -543,7 +526,6 @@ static int decode_scalefactors(AACContext * ac, float sf[120], GetBitContext * g
543 543
                 for(; i < run_end; i++, idx++)
544 544
                     sf[idx] = 0.;
545 545
             }else if((band_type[idx] == INTENSITY_BT) || (band_type[idx] == INTENSITY_BT2)) {
546
-                ics->intensity_present = 1;
547 546
                 for(; i < run_end; i++, idx++) {
548 547
                     offset[2] += get_vlc2(gb, vlc_scalefactors.table, 7, 3) - 60;
549 548
                     if(offset[2] > 255U) {
... ...
@@ -585,13 +567,14 @@ static int decode_scalefactors(AACContext * ac, float sf[120], GetBitContext * g
585 585
 /**
586 586
  * Decode pulse data; reference: table 4.7.
587 587
  */
588
-static void decode_pulses(Pulse * pulse, GetBitContext * gb) {
588
+static void decode_pulses(Pulse * pulse, GetBitContext * gb, const uint16_t * swb_offset) {
589 589
     int i;
590 590
     pulse->num_pulse = get_bits(gb, 2) + 1;
591
-    pulse->start = get_bits(gb, 6);
592
-    for (i = 0; i < pulse->num_pulse; i++) {
593
-        pulse->offset[i] = get_bits(gb, 5);
594
-        pulse->amp   [i] = get_bits(gb, 4);
591
+    pulse->pos[0]    = get_bits(gb, 5) + swb_offset[get_bits(gb, 6)];
592
+    pulse->amp[0]    = get_bits(gb, 4);
593
+    for (i = 1; i < pulse->num_pulse; i++) {
594
+        pulse->pos[i] = get_bits(gb, 5) + pulse->pos[i-1];
595
+        pulse->amp[i] = get_bits(gb, 4);
595 596
     }
596 597
 }
597 598
 
... ...
@@ -614,22 +597,6 @@ static void decode_mid_side_stereo(ChannelElement * cpe, GetBitContext * gb,
614 614
 }
615 615
 
616 616
 /**
617
- * Add pulses with particular amplitudes to the quantized spectral data; reference: 4.6.3.3.
618
- *
619
- * @param   pulse   pointer to pulse data struct
620
- * @param   icoef   array of quantized spectral data
621
- */
622
-static void add_pulses(int icoef[1024], const Pulse * pulse, const IndividualChannelStream * ics) {
623
-    int i, off = ics->swb_offset[pulse->start];
624
-    for (i = 0; i < pulse->num_pulse; i++) {
625
-        int ic;
626
-        off += pulse->offset[i];
627
-        ic = (icoef[off] - 1)>>31;
628
-        icoef[off] += (pulse->amp[i]^ic) - ic;
629
-    }
630
-}
631
-
632
-/**
633 617
  * Decode an individual_channel_stream payload; reference: table 4.44.
634 618
  *
635 619
  * @param   common_window   Channels have independent [0], or shared [1], Individual Channel Stream information.
... ...
@@ -638,18 +605,16 @@ static void add_pulses(int icoef[1024], const Pulse * pulse, const IndividualCha
638 638
  * @return  Returns error status. 0 - OK, !0 - error
639 639
  */
640 640
 static int decode_ics(AACContext * ac, SingleChannelElement * sce, GetBitContext * gb, int common_window, int scale_flag) {
641
-    int icoeffs[1024];
642 641
     Pulse pulse;
643 642
     TemporalNoiseShaping * tns = &sce->tns;
644 643
     IndividualChannelStream * ics = &sce->ics;
645 644
     float * out = sce->coeffs;
646 645
     int global_gain, pulse_present = 0;
647 646
 
648
-    /* These two assignments are to silence some GCC warnings about the
649
-     * variables being used uninitialised when in fact they always are.
647
+    /* This assignment is to silence a GCC warning about the variable being used
648
+     * uninitialized when in fact it always is.
650 649
      */
651 650
     pulse.num_pulse = 0;
652
-    pulse.start     = 0;
653 651
 
654 652
     global_gain = get_bits(gb, 8);
655 653
 
... ...
@@ -670,7 +635,7 @@ static int decode_ics(AACContext * ac, SingleChannelElement * sce, GetBitContext
670 670
                 av_log(ac->avccontext, AV_LOG_ERROR, "Pulse tool not allowed in eight short sequence.\n");
671 671
                 return -1;
672 672
             }
673
-            decode_pulses(&pulse, gb);
673
+            decode_pulses(&pulse, gb, ics->swb_offset);
674 674
         }
675 675
         if ((tns->present = get_bits1(gb)) && decode_tns(ac, tns, gb, ics))
676 676
             return -1;
... ...
@@ -680,11 +645,8 @@ static int decode_ics(AACContext * ac, SingleChannelElement * sce, GetBitContext
680 680
         }
681 681
     }
682 682
 
683
-    if (decode_spectrum(ac, icoeffs, gb, ics, sce->band_type) < 0)
683
+    if (decode_spectrum_and_dequant(ac, out, gb, sce->sf, pulse_present, &pulse, ics, sce->band_type) < 0)
684 684
         return -1;
685
-    if (pulse_present)
686
-        add_pulses(icoeffs, &pulse, ics);
687
-    dequant(ac, out, icoeffs, sce->sf, ics, sce->band_type);
688 685
     return 0;
689 686
 }
690 687
 
... ...
@@ -722,8 +684,7 @@ static int decode_cpe(AACContext * ac, GetBitContext * gb, int elem_id) {
722 722
     if (common_window && ms_present)
723 723
         apply_mid_side_stereo(cpe);
724 724
 
725
-    if (cpe->ch[1].ics.intensity_present)
726
-        apply_intensity_stereo(cpe, ms_present);
725
+    apply_intensity_stereo(cpe, ms_present);
727 726
     return 0;
728 727
 }
729 728
 
... ...
@@ -906,10 +867,10 @@ static void imdct_and_windowing(AACContext * ac, SingleChannelElement * sce) {
906 906
     float * in = sce->coeffs;
907 907
     float * out = sce->ret;
908 908
     float * saved = sce->saved;
909
-    const float * lwindow      = ics->use_kb_window[0] ? ff_aac_kbd_long_1024 : ff_aac_sine_long_1024;
910
-    const float * swindow      = ics->use_kb_window[0] ? ff_aac_kbd_short_128 : ff_aac_sine_short_128;
911
-    const float * lwindow_prev = ics->use_kb_window[1] ? ff_aac_kbd_long_1024 : ff_aac_sine_long_1024;
912
-    const float * swindow_prev = ics->use_kb_window[1] ? ff_aac_kbd_short_128 : ff_aac_sine_short_128;
909
+    const float * lwindow      = ics->use_kb_window[0] ? ff_aac_kbd_long_1024 : ff_sine_1024;
910
+    const float * swindow      = ics->use_kb_window[0] ? ff_aac_kbd_short_128 : ff_sine_128;
911
+    const float * lwindow_prev = ics->use_kb_window[1] ? ff_aac_kbd_long_1024 : ff_sine_1024;
912
+    const float * swindow_prev = ics->use_kb_window[1] ? ff_aac_kbd_short_128 : ff_sine_128;
913 913
     float * buf = ac->buf_mdct;
914 914
     int i;
915 915
 
... ...
@@ -1093,7 +1054,7 @@ static int aac_decode_frame(AVCodecContext * avccontext, void * data, int * data
1093 1093
     if (!ac->is_saved) {
1094 1094
         ac->is_saved = 1;
1095 1095
         *data_size = 0;
1096
-        return 0;
1096
+        return buf_size;
1097 1097
     }
1098 1098
 
1099 1099
     data_size_tmp = 1024 * avccontext->channels * sizeof(int16_t);
... ...
@@ -45,8 +45,6 @@
45 45
 #define MAX_CHANNELS 64
46 46
 #define MAX_ELEM_ID 16
47 47
 
48
-#define IVQUANT_SIZE 1024
49
-
50 48
 enum AudioObjectType {
51 49
     AOT_NULL,
52 50
                                // Support?                Name
... ...
@@ -165,8 +163,7 @@ typedef struct {
165 165
 
166 166
 typedef struct {
167 167
     int num_pulse;
168
-    int start;
169
-    int offset[4];
168
+    int pos[4];
170 169
     int amp[4];
171 170
 } Pulse;
172 171
 
... ...
@@ -398,145 +398,494 @@ const uint16_t ff_aac_spectral_sizes[11] = {
398 398
     81, 81, 81, 81, 81, 81, 64, 64, 169, 169, 289,
399 399
 };
400 400
 
401
-static const int8_t codebook_vector0[324] = {
402
- -1, -1, -1, -1, -1, -1, -1,  0, -1, -1, -1,  1, -1, -1,  0, -1,
403
- -1, -1,  0,  0, -1, -1,  0,  1, -1, -1,  1, -1, -1, -1,  1,  0,
404
- -1, -1,  1,  1, -1,  0, -1, -1, -1,  0, -1,  0, -1,  0, -1,  1,
405
- -1,  0,  0, -1, -1,  0,  0,  0, -1,  0,  0,  1, -1,  0,  1, -1,
406
- -1,  0,  1,  0, -1,  0,  1,  1, -1,  1, -1, -1, -1,  1, -1,  0,
407
- -1,  1, -1,  1, -1,  1,  0, -1, -1,  1,  0,  0, -1,  1,  0,  1,
408
- -1,  1,  1, -1, -1,  1,  1,  0, -1,  1,  1,  1,  0, -1, -1, -1,
409
-  0, -1, -1,  0,  0, -1, -1,  1,  0, -1,  0, -1,  0, -1,  0,  0,
410
-  0, -1,  0,  1,  0, -1,  1, -1,  0, -1,  1,  0,  0, -1,  1,  1,
411
-  0,  0, -1, -1,  0,  0, -1,  0,  0,  0, -1,  1,  0,  0,  0, -1,
412
-  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  1, -1,  0,  0,  1,  0,
413
-  0,  0,  1,  1,  0,  1, -1, -1,  0,  1, -1,  0,  0,  1, -1,  1,
414
-  0,  1,  0, -1,  0,  1,  0,  0,  0,  1,  0,  1,  0,  1,  1, -1,
415
-  0,  1,  1,  0,  0,  1,  1,  1,  1, -1, -1, -1,  1, -1, -1,  0,
416
-  1, -1, -1,  1,  1, -1,  0, -1,  1, -1,  0,  0,  1, -1,  0,  1,
417
-  1, -1,  1, -1,  1, -1,  1,  0,  1, -1,  1,  1,  1,  0, -1, -1,
418
-  1,  0, -1,  0,  1,  0, -1,  1,  1,  0,  0, -1,  1,  0,  0,  0,
419
-  1,  0,  0,  1,  1,  0,  1, -1,  1,  0,  1,  0,  1,  0,  1,  1,
420
-  1,  1, -1, -1,  1,  1, -1,  0,  1,  1, -1,  1,  1,  1,  0, -1,
421
-  1,  1,  0,  0,  1,  1,  0,  1,  1,  1,  1, -1,  1,  1,  1,  0,
422
-  1,  1,  1,  1,
423
-};
424
-
425
-static const int8_t codebook_vector2[324] = {
426
-  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  2,  0,  0,  1,  0,
427
-  0,  0,  1,  1,  0,  0,  1,  2,  0,  0,  2,  0,  0,  0,  2,  1,
428
-  0,  0,  2,  2,  0,  1,  0,  0,  0,  1,  0,  1,  0,  1,  0,  2,
429
-  0,  1,  1,  0,  0,  1,  1,  1,  0,  1,  1,  2,  0,  1,  2,  0,
430
-  0,  1,  2,  1,  0,  1,  2,  2,  0,  2,  0,  0,  0,  2,  0,  1,
431
-  0,  2,  0,  2,  0,  2,  1,  0,  0,  2,  1,  1,  0,  2,  1,  2,
432
-  0,  2,  2,  0,  0,  2,  2,  1,  0,  2,  2,  2,  1,  0,  0,  0,
433
-  1,  0,  0,  1,  1,  0,  0,  2,  1,  0,  1,  0,  1,  0,  1,  1,
434
-  1,  0,  1,  2,  1,  0,  2,  0,  1,  0,  2,  1,  1,  0,  2,  2,
435
-  1,  1,  0,  0,  1,  1,  0,  1,  1,  1,  0,  2,  1,  1,  1,  0,
436
-  1,  1,  1,  1,  1,  1,  1,  2,  1,  1,  2,  0,  1,  1,  2,  1,
437
-  1,  1,  2,  2,  1,  2,  0,  0,  1,  2,  0,  1,  1,  2,  0,  2,
438
-  1,  2,  1,  0,  1,  2,  1,  1,  1,  2,  1,  2,  1,  2,  2,  0,
439
-  1,  2,  2,  1,  1,  2,  2,  2,  2,  0,  0,  0,  2,  0,  0,  1,
440
-  2,  0,  0,  2,  2,  0,  1,  0,  2,  0,  1,  1,  2,  0,  1,  2,
441
-  2,  0,  2,  0,  2,  0,  2,  1,  2,  0,  2,  2,  2,  1,  0,  0,
442
-  2,  1,  0,  1,  2,  1,  0,  2,  2,  1,  1,  0,  2,  1,  1,  1,
443
-  2,  1,  1,  2,  2,  1,  2,  0,  2,  1,  2,  1,  2,  1,  2,  2,
444
-  2,  2,  0,  0,  2,  2,  0,  1,  2,  2,  0,  2,  2,  2,  1,  0,
445
-  2,  2,  1,  1,  2,  2,  1,  2,  2,  2,  2,  0,  2,  2,  2,  1,
446
-  2,  2,  2,  2,
447
-};
448
-
449
-static const int8_t codebook_vector4[162] = {
450
- -4, -4, -4, -3, -4, -2, -4, -1, -4,  0, -4,  1, -4,  2, -4,  3,
451
- -4,  4, -3, -4, -3, -3, -3, -2, -3, -1, -3,  0, -3,  1, -3,  2,
452
- -3,  3, -3,  4, -2, -4, -2, -3, -2, -2, -2, -1, -2,  0, -2,  1,
453
- -2,  2, -2,  3, -2,  4, -1, -4, -1, -3, -1, -2, -1, -1, -1,  0,
454
- -1,  1, -1,  2, -1,  3, -1,  4,  0, -4,  0, -3,  0, -2,  0, -1,
455
-  0,  0,  0,  1,  0,  2,  0,  3,  0,  4,  1, -4,  1, -3,  1, -2,
456
-  1, -1,  1,  0,  1,  1,  1,  2,  1,  3,  1,  4,  2, -4,  2, -3,
457
-  2, -2,  2, -1,  2,  0,  2,  1,  2,  2,  2,  3,  2,  4,  3, -4,
458
-  3, -3,  3, -2,  3, -1,  3,  0,  3,  1,  3,  2,  3,  3,  3,  4,
459
-  4, -4,  4, -3,  4, -2,  4, -1,  4,  0,  4,  1,  4,  2,  4,  3,
460
-  4,  4,
461
-};
462
-
463
-static const int8_t codebook_vector6[128] = {
464
-  0,  0,  0,  1,  0,  2,  0,  3,  0,  4,  0,  5,  0,  6,  0,  7,
465
-  1,  0,  1,  1,  1,  2,  1,  3,  1,  4,  1,  5,  1,  6,  1,  7,
466
-  2,  0,  2,  1,  2,  2,  2,  3,  2,  4,  2,  5,  2,  6,  2,  7,
467
-  3,  0,  3,  1,  3,  2,  3,  3,  3,  4,  3,  5,  3,  6,  3,  7,
468
-  4,  0,  4,  1,  4,  2,  4,  3,  4,  4,  4,  5,  4,  6,  4,  7,
469
-  5,  0,  5,  1,  5,  2,  5,  3,  5,  4,  5,  5,  5,  6,  5,  7,
470
-  6,  0,  6,  1,  6,  2,  6,  3,  6,  4,  6,  5,  6,  6,  6,  7,
471
-  7,  0,  7,  1,  7,  2,  7,  3,  7,  4,  7,  5,  7,  6,  7,  7,
472
-};
473
-
474
-static const int8_t codebook_vector8[338] = {
475
-  0,  0,  0,  1,  0,  2,  0,  3,  0,  4,  0,  5,  0,  6,  0,  7,
476
-  0,  8,  0,  9,  0, 10,  0, 11,  0, 12,  1,  0,  1,  1,  1,  2,
477
-  1,  3,  1,  4,  1,  5,  1,  6,  1,  7,  1,  8,  1,  9,  1, 10,
478
-  1, 11,  1, 12,  2,  0,  2,  1,  2,  2,  2,  3,  2,  4,  2,  5,
479
-  2,  6,  2,  7,  2,  8,  2,  9,  2, 10,  2, 11,  2, 12,  3,  0,
480
-  3,  1,  3,  2,  3,  3,  3,  4,  3,  5,  3,  6,  3,  7,  3,  8,
481
-  3,  9,  3, 10,  3, 11,  3, 12,  4,  0,  4,  1,  4,  2,  4,  3,
482
-  4,  4,  4,  5,  4,  6,  4,  7,  4,  8,  4,  9,  4, 10,  4, 11,
483
-  4, 12,  5,  0,  5,  1,  5,  2,  5,  3,  5,  4,  5,  5,  5,  6,
484
-  5,  7,  5,  8,  5,  9,  5, 10,  5, 11,  5, 12,  6,  0,  6,  1,
485
-  6,  2,  6,  3,  6,  4,  6,  5,  6,  6,  6,  7,  6,  8,  6,  9,
486
-  6, 10,  6, 11,  6, 12,  7,  0,  7,  1,  7,  2,  7,  3,  7,  4,
487
-  7,  5,  7,  6,  7,  7,  7,  8,  7,  9,  7, 10,  7, 11,  7, 12,
488
-  8,  0,  8,  1,  8,  2,  8,  3,  8,  4,  8,  5,  8,  6,  8,  7,
489
-  8,  8,  8,  9,  8, 10,  8, 11,  8, 12,  9,  0,  9,  1,  9,  2,
490
-  9,  3,  9,  4,  9,  5,  9,  6,  9,  7,  9,  8,  9,  9,  9, 10,
491
-  9, 11,  9, 12, 10,  0, 10,  1, 10,  2, 10,  3, 10,  4, 10,  5,
492
- 10,  6, 10,  7, 10,  8, 10,  9, 10, 10, 10, 11, 10, 12, 11,  0,
493
- 11,  1, 11,  2, 11,  3, 11,  4, 11,  5, 11,  6, 11,  7, 11,  8,
494
- 11,  9, 11, 10, 11, 11, 11, 12, 12,  0, 12,  1, 12,  2, 12,  3,
495
- 12,  4, 12,  5, 12,  6, 12,  7, 12,  8, 12,  9, 12, 10, 12, 11,
496
- 12, 12,
497
-};
498
-
499
-static const int8_t codebook_vector10[578] = {
500
-  0,  0,  0,  1,  0,  2,  0,  3,  0,  4,  0,  5,  0,  6,  0,  7,
501
-  0,  8,  0,  9,  0, 10,  0, 11,  0, 12,  0, 13,  0, 14,  0, 15,
502
-  0, 16,  1,  0,  1,  1,  1,  2,  1,  3,  1,  4,  1,  5,  1,  6,
503
-  1,  7,  1,  8,  1,  9,  1, 10,  1, 11,  1, 12,  1, 13,  1, 14,
504
-  1, 15,  1, 16,  2,  0,  2,  1,  2,  2,  2,  3,  2,  4,  2,  5,
505
-  2,  6,  2,  7,  2,  8,  2,  9,  2, 10,  2, 11,  2, 12,  2, 13,
506
-  2, 14,  2, 15,  2, 16,  3,  0,  3,  1,  3,  2,  3,  3,  3,  4,
507
-  3,  5,  3,  6,  3,  7,  3,  8,  3,  9,  3, 10,  3, 11,  3, 12,
508
-  3, 13,  3, 14,  3, 15,  3, 16,  4,  0,  4,  1,  4,  2,  4,  3,
509
-  4,  4,  4,  5,  4,  6,  4,  7,  4,  8,  4,  9,  4, 10,  4, 11,
510
-  4, 12,  4, 13,  4, 14,  4, 15,  4, 16,  5,  0,  5,  1,  5,  2,
511
-  5,  3,  5,  4,  5,  5,  5,  6,  5,  7,  5,  8,  5,  9,  5, 10,
512
-  5, 11,  5, 12,  5, 13,  5, 14,  5, 15,  5, 16,  6,  0,  6,  1,
513
-  6,  2,  6,  3,  6,  4,  6,  5,  6,  6,  6,  7,  6,  8,  6,  9,
514
-  6, 10,  6, 11,  6, 12,  6, 13,  6, 14,  6, 15,  6, 16,  7,  0,
515
-  7,  1,  7,  2,  7,  3,  7,  4,  7,  5,  7,  6,  7,  7,  7,  8,
516
-  7,  9,  7, 10,  7, 11,  7, 12,  7, 13,  7, 14,  7, 15,  7, 16,
517
-  8,  0,  8,  1,  8,  2,  8,  3,  8,  4,  8,  5,  8,  6,  8,  7,
518
-  8,  8,  8,  9,  8, 10,  8, 11,  8, 12,  8, 13,  8, 14,  8, 15,
519
-  8, 16,  9,  0,  9,  1,  9,  2,  9,  3,  9,  4,  9,  5,  9,  6,
520
-  9,  7,  9,  8,  9,  9,  9, 10,  9, 11,  9, 12,  9, 13,  9, 14,
521
-  9, 15,  9, 16, 10,  0, 10,  1, 10,  2, 10,  3, 10,  4, 10,  5,
522
- 10,  6, 10,  7, 10,  8, 10,  9, 10, 10, 10, 11, 10, 12, 10, 13,
523
- 10, 14, 10, 15, 10, 16, 11,  0, 11,  1, 11,  2, 11,  3, 11,  4,
524
- 11,  5, 11,  6, 11,  7, 11,  8, 11,  9, 11, 10, 11, 11, 11, 12,
525
- 11, 13, 11, 14, 11, 15, 11, 16, 12,  0, 12,  1, 12,  2, 12,  3,
526
- 12,  4, 12,  5, 12,  6, 12,  7, 12,  8, 12,  9, 12, 10, 12, 11,
527
- 12, 12, 12, 13, 12, 14, 12, 15, 12, 16, 13,  0, 13,  1, 13,  2,
528
- 13,  3, 13,  4, 13,  5, 13,  6, 13,  7, 13,  8, 13,  9, 13, 10,
529
- 13, 11, 13, 12, 13, 13, 13, 14, 13, 15, 13, 16, 14,  0, 14,  1,
530
- 14,  2, 14,  3, 14,  4, 14,  5, 14,  6, 14,  7, 14,  8, 14,  9,
531
- 14, 10, 14, 11, 14, 12, 14, 13, 14, 14, 14, 15, 14, 16, 15,  0,
532
- 15,  1, 15,  2, 15,  3, 15,  4, 15,  5, 15,  6, 15,  7, 15,  8,
533
- 15,  9, 15, 10, 15, 11, 15, 12, 15, 13, 15, 14, 15, 15, 15, 16,
534
- 16,  0, 16,  1, 16,  2, 16,  3, 16,  4, 16,  5, 16,  6, 16,  7,
535
- 16,  8, 16,  9, 16, 10, 16, 11, 16, 12, 16, 13, 16, 14, 16, 15,
536
- 16, 16,
537
-};
538
-
539
-const int8_t *ff_aac_codebook_vectors[] = {
401
+/* NOTE:
402
+ * 64.0f is a special value indicating the existence of an escape code in the
403
+ * bitstream.
404
+ */
405
+static const float codebook_vector0[324] = {
406
+ -1.0000000, -1.0000000, -1.0000000, -1.0000000,
407
+ -1.0000000, -1.0000000, -1.0000000,  0.0000000,
408
+ -1.0000000, -1.0000000, -1.0000000,  1.0000000,
409
+ -1.0000000, -1.0000000,  0.0000000, -1.0000000,
410
+ -1.0000000, -1.0000000,  0.0000000,  0.0000000,
411
+ -1.0000000, -1.0000000,  0.0000000,  1.0000000,
412
+ -1.0000000, -1.0000000,  1.0000000, -1.0000000,
413
+ -1.0000000, -1.0000000,  1.0000000,  0.0000000,
414
+ -1.0000000, -1.0000000,  1.0000000,  1.0000000,
415
+ -1.0000000,  0.0000000, -1.0000000, -1.0000000,
416
+ -1.0000000,  0.0000000, -1.0000000,  0.0000000,
417
+ -1.0000000,  0.0000000, -1.0000000,  1.0000000,
418
+ -1.0000000,  0.0000000,  0.0000000, -1.0000000,
419
+ -1.0000000,  0.0000000,  0.0000000,  0.0000000,
420
+ -1.0000000,  0.0000000,  0.0000000,  1.0000000,
421
+ -1.0000000,  0.0000000,  1.0000000, -1.0000000,
422
+ -1.0000000,  0.0000000,  1.0000000,  0.0000000,
423
+ -1.0000000,  0.0000000,  1.0000000,  1.0000000,
424
+ -1.0000000,  1.0000000, -1.0000000, -1.0000000,
425
+ -1.0000000,  1.0000000, -1.0000000,  0.0000000,
426
+ -1.0000000,  1.0000000, -1.0000000,  1.0000000,
427
+ -1.0000000,  1.0000000,  0.0000000, -1.0000000,
428
+ -1.0000000,  1.0000000,  0.0000000,  0.0000000,
429
+ -1.0000000,  1.0000000,  0.0000000,  1.0000000,
430
+ -1.0000000,  1.0000000,  1.0000000, -1.0000000,
431
+ -1.0000000,  1.0000000,  1.0000000,  0.0000000,
432
+ -1.0000000,  1.0000000,  1.0000000,  1.0000000,
433
+  0.0000000, -1.0000000, -1.0000000, -1.0000000,
434
+  0.0000000, -1.0000000, -1.0000000,  0.0000000,
435
+  0.0000000, -1.0000000, -1.0000000,  1.0000000,
436
+  0.0000000, -1.0000000,  0.0000000, -1.0000000,
437
+  0.0000000, -1.0000000,  0.0000000,  0.0000000,
438
+  0.0000000, -1.0000000,  0.0000000,  1.0000000,
439
+  0.0000000, -1.0000000,  1.0000000, -1.0000000,
440
+  0.0000000, -1.0000000,  1.0000000,  0.0000000,
441
+  0.0000000, -1.0000000,  1.0000000,  1.0000000,
442
+  0.0000000,  0.0000000, -1.0000000, -1.0000000,
443
+  0.0000000,  0.0000000, -1.0000000,  0.0000000,
444
+  0.0000000,  0.0000000, -1.0000000,  1.0000000,
445
+  0.0000000,  0.0000000,  0.0000000, -1.0000000,
446
+  0.0000000,  0.0000000,  0.0000000,  0.0000000,
447
+  0.0000000,  0.0000000,  0.0000000,  1.0000000,
448
+  0.0000000,  0.0000000,  1.0000000, -1.0000000,
449
+  0.0000000,  0.0000000,  1.0000000,  0.0000000,
450
+  0.0000000,  0.0000000,  1.0000000,  1.0000000,
451
+  0.0000000,  1.0000000, -1.0000000, -1.0000000,
452
+  0.0000000,  1.0000000, -1.0000000,  0.0000000,
453
+  0.0000000,  1.0000000, -1.0000000,  1.0000000,
454
+  0.0000000,  1.0000000,  0.0000000, -1.0000000,
455
+  0.0000000,  1.0000000,  0.0000000,  0.0000000,
456
+  0.0000000,  1.0000000,  0.0000000,  1.0000000,
457
+  0.0000000,  1.0000000,  1.0000000, -1.0000000,
458
+  0.0000000,  1.0000000,  1.0000000,  0.0000000,
459
+  0.0000000,  1.0000000,  1.0000000,  1.0000000,
460
+  1.0000000, -1.0000000, -1.0000000, -1.0000000,
461
+  1.0000000, -1.0000000, -1.0000000,  0.0000000,
462
+  1.0000000, -1.0000000, -1.0000000,  1.0000000,
463
+  1.0000000, -1.0000000,  0.0000000, -1.0000000,
464
+  1.0000000, -1.0000000,  0.0000000,  0.0000000,
465
+  1.0000000, -1.0000000,  0.0000000,  1.0000000,
466
+  1.0000000, -1.0000000,  1.0000000, -1.0000000,
467
+  1.0000000, -1.0000000,  1.0000000,  0.0000000,
468
+  1.0000000, -1.0000000,  1.0000000,  1.0000000,
469
+  1.0000000,  0.0000000, -1.0000000, -1.0000000,
470
+  1.0000000,  0.0000000, -1.0000000,  0.0000000,
471
+  1.0000000,  0.0000000, -1.0000000,  1.0000000,
472
+  1.0000000,  0.0000000,  0.0000000, -1.0000000,
473
+  1.0000000,  0.0000000,  0.0000000,  0.0000000,
474
+  1.0000000,  0.0000000,  0.0000000,  1.0000000,
475
+  1.0000000,  0.0000000,  1.0000000, -1.0000000,
476
+  1.0000000,  0.0000000,  1.0000000,  0.0000000,
477
+  1.0000000,  0.0000000,  1.0000000,  1.0000000,
478
+  1.0000000,  1.0000000, -1.0000000, -1.0000000,
479
+  1.0000000,  1.0000000, -1.0000000,  0.0000000,
480
+  1.0000000,  1.0000000, -1.0000000,  1.0000000,
481
+  1.0000000,  1.0000000,  0.0000000, -1.0000000,
482
+  1.0000000,  1.0000000,  0.0000000,  0.0000000,
483
+  1.0000000,  1.0000000,  0.0000000,  1.0000000,
484
+  1.0000000,  1.0000000,  1.0000000, -1.0000000,
485
+  1.0000000,  1.0000000,  1.0000000,  0.0000000,
486
+  1.0000000,  1.0000000,  1.0000000,  1.0000000,
487
+};
488
+
489
+static const float codebook_vector2[324] = {
490
+  0.0000000,  0.0000000,  0.0000000,  0.0000000,
491
+  0.0000000,  0.0000000,  0.0000000,  1.0000000,
492
+  0.0000000,  0.0000000,  0.0000000,  2.5198421,
493
+  0.0000000,  0.0000000,  1.0000000,  0.0000000,
494
+  0.0000000,  0.0000000,  1.0000000,  1.0000000,
495
+  0.0000000,  0.0000000,  1.0000000,  2.5198421,
496
+  0.0000000,  0.0000000,  2.5198421,  0.0000000,
497
+  0.0000000,  0.0000000,  2.5198421,  1.0000000,
498
+  0.0000000,  0.0000000,  2.5198421,  2.5198421,
499
+  0.0000000,  1.0000000,  0.0000000,  0.0000000,
500
+  0.0000000,  1.0000000,  0.0000000,  1.0000000,
501
+  0.0000000,  1.0000000,  0.0000000,  2.5198421,
502
+  0.0000000,  1.0000000,  1.0000000,  0.0000000,
503
+  0.0000000,  1.0000000,  1.0000000,  1.0000000,
504
+  0.0000000,  1.0000000,  1.0000000,  2.5198421,
505
+  0.0000000,  1.0000000,  2.5198421,  0.0000000,
506
+  0.0000000,  1.0000000,  2.5198421,  1.0000000,
507
+  0.0000000,  1.0000000,  2.5198421,  2.5198421,
508
+  0.0000000,  2.5198421,  0.0000000,  0.0000000,
509
+  0.0000000,  2.5198421,  0.0000000,  1.0000000,
510
+  0.0000000,  2.5198421,  0.0000000,  2.5198421,
511
+  0.0000000,  2.5198421,  1.0000000,  0.0000000,
512
+  0.0000000,  2.5198421,  1.0000000,  1.0000000,
513
+  0.0000000,  2.5198421,  1.0000000,  2.5198421,
514
+  0.0000000,  2.5198421,  2.5198421,  0.0000000,
515
+  0.0000000,  2.5198421,  2.5198421,  1.0000000,
516
+  0.0000000,  2.5198421,  2.5198421,  2.5198421,
517
+  1.0000000,  0.0000000,  0.0000000,  0.0000000,
518
+  1.0000000,  0.0000000,  0.0000000,  1.0000000,
519
+  1.0000000,  0.0000000,  0.0000000,  2.5198421,
520
+  1.0000000,  0.0000000,  1.0000000,  0.0000000,
521
+  1.0000000,  0.0000000,  1.0000000,  1.0000000,
522
+  1.0000000,  0.0000000,  1.0000000,  2.5198421,
523
+  1.0000000,  0.0000000,  2.5198421,  0.0000000,
524
+  1.0000000,  0.0000000,  2.5198421,  1.0000000,
525
+  1.0000000,  0.0000000,  2.5198421,  2.5198421,
526
+  1.0000000,  1.0000000,  0.0000000,  0.0000000,
527
+  1.0000000,  1.0000000,  0.0000000,  1.0000000,
528
+  1.0000000,  1.0000000,  0.0000000,  2.5198421,
529
+  1.0000000,  1.0000000,  1.0000000,  0.0000000,
530
+  1.0000000,  1.0000000,  1.0000000,  1.0000000,
531
+  1.0000000,  1.0000000,  1.0000000,  2.5198421,
532
+  1.0000000,  1.0000000,  2.5198421,  0.0000000,
533
+  1.0000000,  1.0000000,  2.5198421,  1.0000000,
534
+  1.0000000,  1.0000000,  2.5198421,  2.5198421,
535
+  1.0000000,  2.5198421,  0.0000000,  0.0000000,
536
+  1.0000000,  2.5198421,  0.0000000,  1.0000000,
537
+  1.0000000,  2.5198421,  0.0000000,  2.5198421,
538
+  1.0000000,  2.5198421,  1.0000000,  0.0000000,
539
+  1.0000000,  2.5198421,  1.0000000,  1.0000000,
540
+  1.0000000,  2.5198421,  1.0000000,  2.5198421,
541
+  1.0000000,  2.5198421,  2.5198421,  0.0000000,
542
+  1.0000000,  2.5198421,  2.5198421,  1.0000000,
543
+  1.0000000,  2.5198421,  2.5198421,  2.5198421,
544
+  2.5198421,  0.0000000,  0.0000000,  0.0000000,
545
+  2.5198421,  0.0000000,  0.0000000,  1.0000000,
546
+  2.5198421,  0.0000000,  0.0000000,  2.5198421,
547
+  2.5198421,  0.0000000,  1.0000000,  0.0000000,
548
+  2.5198421,  0.0000000,  1.0000000,  1.0000000,
549
+  2.5198421,  0.0000000,  1.0000000,  2.5198421,
550
+  2.5198421,  0.0000000,  2.5198421,  0.0000000,
551
+  2.5198421,  0.0000000,  2.5198421,  1.0000000,
552
+  2.5198421,  0.0000000,  2.5198421,  2.5198421,
553
+  2.5198421,  1.0000000,  0.0000000,  0.0000000,
554
+  2.5198421,  1.0000000,  0.0000000,  1.0000000,
555
+  2.5198421,  1.0000000,  0.0000000,  2.5198421,
556
+  2.5198421,  1.0000000,  1.0000000,  0.0000000,
557
+  2.5198421,  1.0000000,  1.0000000,  1.0000000,
558
+  2.5198421,  1.0000000,  1.0000000,  2.5198421,
559
+  2.5198421,  1.0000000,  2.5198421,  0.0000000,
560
+  2.5198421,  1.0000000,  2.5198421,  1.0000000,
561
+  2.5198421,  1.0000000,  2.5198421,  2.5198421,
562
+  2.5198421,  2.5198421,  0.0000000,  0.0000000,
563
+  2.5198421,  2.5198421,  0.0000000,  1.0000000,
564
+  2.5198421,  2.5198421,  0.0000000,  2.5198421,
565
+  2.5198421,  2.5198421,  1.0000000,  0.0000000,
566
+  2.5198421,  2.5198421,  1.0000000,  1.0000000,
567
+  2.5198421,  2.5198421,  1.0000000,  2.5198421,
568
+  2.5198421,  2.5198421,  2.5198421,  0.0000000,
569
+  2.5198421,  2.5198421,  2.5198421,  1.0000000,
570
+  2.5198421,  2.5198421,  2.5198421,  2.5198421,
571
+};
572
+
573
+static const float codebook_vector4[162] = {
574
+ -6.3496042, -6.3496042, -6.3496042, -4.3267487,
575
+ -6.3496042, -2.5198421, -6.3496042, -1.0000000,
576
+ -6.3496042,  0.0000000, -6.3496042,  1.0000000,
577
+ -6.3496042,  2.5198421, -6.3496042,  4.3267487,
578
+ -6.3496042,  6.3496042, -4.3267487, -6.3496042,
579
+ -4.3267487, -4.3267487, -4.3267487, -2.5198421,
580
+ -4.3267487, -1.0000000, -4.3267487,  0.0000000,
581
+ -4.3267487,  1.0000000, -4.3267487,  2.5198421,
582
+ -4.3267487,  4.3267487, -4.3267487,  6.3496042,
583
+ -2.5198421, -6.3496042, -2.5198421, -4.3267487,
584
+ -2.5198421, -2.5198421, -2.5198421, -1.0000000,
585
+ -2.5198421,  0.0000000, -2.5198421,  1.0000000,
586
+ -2.5198421,  2.5198421, -2.5198421,  4.3267487,
587
+ -2.5198421,  6.3496042, -1.0000000, -6.3496042,
588
+ -1.0000000, -4.3267487, -1.0000000, -2.5198421,
589
+ -1.0000000, -1.0000000, -1.0000000,  0.0000000,
590
+ -1.0000000,  1.0000000, -1.0000000,  2.5198421,
591
+ -1.0000000,  4.3267487, -1.0000000,  6.3496042,
592
+  0.0000000, -6.3496042,  0.0000000, -4.3267487,
593
+  0.0000000, -2.5198421,  0.0000000, -1.0000000,
594
+  0.0000000,  0.0000000,  0.0000000,  1.0000000,
595
+  0.0000000,  2.5198421,  0.0000000,  4.3267487,
596
+  0.0000000,  6.3496042,  1.0000000, -6.3496042,
597
+  1.0000000, -4.3267487,  1.0000000, -2.5198421,
598
+  1.0000000, -1.0000000,  1.0000000,  0.0000000,
599
+  1.0000000,  1.0000000,  1.0000000,  2.5198421,
600
+  1.0000000,  4.3267487,  1.0000000,  6.3496042,
601
+  2.5198421, -6.3496042,  2.5198421, -4.3267487,
602
+  2.5198421, -2.5198421,  2.5198421, -1.0000000,
603
+  2.5198421,  0.0000000,  2.5198421,  1.0000000,
604
+  2.5198421,  2.5198421,  2.5198421,  4.3267487,
605
+  2.5198421,  6.3496042,  4.3267487, -6.3496042,
606
+  4.3267487, -4.3267487,  4.3267487, -2.5198421,
607
+  4.3267487, -1.0000000,  4.3267487,  0.0000000,
608
+  4.3267487,  1.0000000,  4.3267487,  2.5198421,
609
+  4.3267487,  4.3267487,  4.3267487,  6.3496042,
610
+  6.3496042, -6.3496042,  6.3496042, -4.3267487,
611
+  6.3496042, -2.5198421,  6.3496042, -1.0000000,
612
+  6.3496042,  0.0000000,  6.3496042,  1.0000000,
613
+  6.3496042,  2.5198421,  6.3496042,  4.3267487,
614
+  6.3496042,  6.3496042,
615
+};
616
+
617
+static const float codebook_vector6[128] = {
618
+  0.0000000,  0.0000000,  0.0000000,  1.0000000,
619
+  0.0000000,  2.5198421,  0.0000000,  4.3267487,
620
+  0.0000000,  6.3496042,  0.0000000,  8.5498797,
621
+  0.0000000, 10.9027236,  0.0000000, 13.3905183,
622
+  1.0000000,  0.0000000,  1.0000000,  1.0000000,
623
+  1.0000000,  2.5198421,  1.0000000,  4.3267487,
624
+  1.0000000,  6.3496042,  1.0000000,  8.5498797,
625
+  1.0000000, 10.9027236,  1.0000000, 13.3905183,
626
+  2.5198421,  0.0000000,  2.5198421,  1.0000000,
627
+  2.5198421,  2.5198421,  2.5198421,  4.3267487,
628
+  2.5198421,  6.3496042,  2.5198421,  8.5498797,
629
+  2.5198421, 10.9027236,  2.5198421, 13.3905183,
630
+  4.3267487,  0.0000000,  4.3267487,  1.0000000,
631
+  4.3267487,  2.5198421,  4.3267487,  4.3267487,
632
+  4.3267487,  6.3496042,  4.3267487,  8.5498797,
633
+  4.3267487, 10.9027236,  4.3267487, 13.3905183,
634
+  6.3496042,  0.0000000,  6.3496042,  1.0000000,
635
+  6.3496042,  2.5198421,  6.3496042,  4.3267487,
636
+  6.3496042,  6.3496042,  6.3496042,  8.5498797,
637
+  6.3496042, 10.9027236,  6.3496042, 13.3905183,
638
+  8.5498797,  0.0000000,  8.5498797,  1.0000000,
639
+  8.5498797,  2.5198421,  8.5498797,  4.3267487,
640
+  8.5498797,  6.3496042,  8.5498797,  8.5498797,
641
+  8.5498797, 10.9027236,  8.5498797, 13.3905183,
642
+ 10.9027236,  0.0000000, 10.9027236,  1.0000000,
643
+ 10.9027236,  2.5198421, 10.9027236,  4.3267487,
644
+ 10.9027236,  6.3496042, 10.9027236,  8.5498797,
645
+ 10.9027236, 10.9027236, 10.9027236, 13.3905183,
646
+ 13.3905183,  0.0000000, 13.3905183,  1.0000000,
647
+ 13.3905183,  2.5198421, 13.3905183,  4.3267487,
648
+ 13.3905183,  6.3496042, 13.3905183,  8.5498797,
649
+ 13.3905183, 10.9027236, 13.3905183, 13.3905183,
650
+};
651
+
652
+static const float codebook_vector8[338] = {
653
+  0.0000000,  0.0000000,  0.0000000,  1.0000000,
654
+  0.0000000,  2.5198421,  0.0000000,  4.3267487,
655
+  0.0000000,  6.3496042,  0.0000000,  8.5498797,
656
+  0.0000000, 10.9027236,  0.0000000, 13.3905183,
657
+  0.0000000, 16.0000000,  0.0000000, 18.7207544,
658
+  0.0000000, 21.5443469,  0.0000000, 24.4637810,
659
+  0.0000000, 27.4731418,  1.0000000,  0.0000000,
660
+  1.0000000,  1.0000000,  1.0000000,  2.5198421,
661
+  1.0000000,  4.3267487,  1.0000000,  6.3496042,
662
+  1.0000000,  8.5498797,  1.0000000, 10.9027236,
663
+  1.0000000, 13.3905183,  1.0000000, 16.0000000,
664
+  1.0000000, 18.7207544,  1.0000000, 21.5443469,
665
+  1.0000000, 24.4637810,  1.0000000, 27.4731418,
666
+  2.5198421,  0.0000000,  2.5198421,  1.0000000,
667
+  2.5198421,  2.5198421,  2.5198421,  4.3267487,
668
+  2.5198421,  6.3496042,  2.5198421,  8.5498797,
669
+  2.5198421, 10.9027236,  2.5198421, 13.3905183,
670
+  2.5198421, 16.0000000,  2.5198421, 18.7207544,
671
+  2.5198421, 21.5443469,  2.5198421, 24.4637810,
672
+  2.5198421, 27.4731418,  4.3267487,  0.0000000,
673
+  4.3267487,  1.0000000,  4.3267487,  2.5198421,
674
+  4.3267487,  4.3267487,  4.3267487,  6.3496042,
675
+  4.3267487,  8.5498797,  4.3267487, 10.9027236,
676
+  4.3267487, 13.3905183,  4.3267487, 16.0000000,
677
+  4.3267487, 18.7207544,  4.3267487, 21.5443469,
678
+  4.3267487, 24.4637810,  4.3267487, 27.4731418,
679
+  6.3496042,  0.0000000,  6.3496042,  1.0000000,
680
+  6.3496042,  2.5198421,  6.3496042,  4.3267487,
681
+  6.3496042,  6.3496042,  6.3496042,  8.5498797,
682
+  6.3496042, 10.9027236,  6.3496042, 13.3905183,
683
+  6.3496042, 16.0000000,  6.3496042, 18.7207544,
684
+  6.3496042, 21.5443469,  6.3496042, 24.4637810,
685
+  6.3496042, 27.4731418,  8.5498797,  0.0000000,
686
+  8.5498797,  1.0000000,  8.5498797,  2.5198421,
687
+  8.5498797,  4.3267487,  8.5498797,  6.3496042,
688
+  8.5498797,  8.5498797,  8.5498797, 10.9027236,
689
+  8.5498797, 13.3905183,  8.5498797, 16.0000000,
690
+  8.5498797, 18.7207544,  8.5498797, 21.5443469,
691
+  8.5498797, 24.4637810,  8.5498797, 27.4731418,
692
+ 10.9027236,  0.0000000, 10.9027236,  1.0000000,
693
+ 10.9027236,  2.5198421, 10.9027236,  4.3267487,
694
+ 10.9027236,  6.3496042, 10.9027236,  8.5498797,
695
+ 10.9027236, 10.9027236, 10.9027236, 13.3905183,
696
+ 10.9027236, 16.0000000, 10.9027236, 18.7207544,
697
+ 10.9027236, 21.5443469, 10.9027236, 24.4637810,
698
+ 10.9027236, 27.4731418, 13.3905183,  0.0000000,
699
+ 13.3905183,  1.0000000, 13.3905183,  2.5198421,
700
+ 13.3905183,  4.3267487, 13.3905183,  6.3496042,
701
+ 13.3905183,  8.5498797, 13.3905183, 10.9027236,
702
+ 13.3905183, 13.3905183, 13.3905183, 16.0000000,
703
+ 13.3905183, 18.7207544, 13.3905183, 21.5443469,
704
+ 13.3905183, 24.4637810, 13.3905183, 27.4731418,
705
+ 16.0000000,  0.0000000, 16.0000000,  1.0000000,
706
+ 16.0000000,  2.5198421, 16.0000000,  4.3267487,
707
+ 16.0000000,  6.3496042, 16.0000000,  8.5498797,
708
+ 16.0000000, 10.9027236, 16.0000000, 13.3905183,
709
+ 16.0000000, 16.0000000, 16.0000000, 18.7207544,
710
+ 16.0000000, 21.5443469, 16.0000000, 24.4637810,
711
+ 16.0000000, 27.4731418, 18.7207544,  0.0000000,
712
+ 18.7207544,  1.0000000, 18.7207544,  2.5198421,
713
+ 18.7207544,  4.3267487, 18.7207544,  6.3496042,
714
+ 18.7207544,  8.5498797, 18.7207544, 10.9027236,
715
+ 18.7207544, 13.3905183, 18.7207544, 16.0000000,
716
+ 18.7207544, 18.7207544, 18.7207544, 21.5443469,
717
+ 18.7207544, 24.4637810, 18.7207544, 27.4731418,
718
+ 21.5443469,  0.0000000, 21.5443469,  1.0000000,
719
+ 21.5443469,  2.5198421, 21.5443469,  4.3267487,
720
+ 21.5443469,  6.3496042, 21.5443469,  8.5498797,
721
+ 21.5443469, 10.9027236, 21.5443469, 13.3905183,
722
+ 21.5443469, 16.0000000, 21.5443469, 18.7207544,
723
+ 21.5443469, 21.5443469, 21.5443469, 24.4637810,
724
+ 21.5443469, 27.4731418, 24.4637810,  0.0000000,
725
+ 24.4637810,  1.0000000, 24.4637810,  2.5198421,
726
+ 24.4637810,  4.3267487, 24.4637810,  6.3496042,
727
+ 24.4637810,  8.5498797, 24.4637810, 10.9027236,
728
+ 24.4637810, 13.3905183, 24.4637810, 16.0000000,
729
+ 24.4637810, 18.7207544, 24.4637810, 21.5443469,
730
+ 24.4637810, 24.4637810, 24.4637810, 27.4731418,
731
+ 27.4731418,  0.0000000, 27.4731418,  1.0000000,
732
+ 27.4731418,  2.5198421, 27.4731418,  4.3267487,
733
+ 27.4731418,  6.3496042, 27.4731418,  8.5498797,
734
+ 27.4731418, 10.9027236, 27.4731418, 13.3905183,
735
+ 27.4731418, 16.0000000, 27.4731418, 18.7207544,
736
+ 27.4731418, 21.5443469, 27.4731418, 24.4637810,
737
+ 27.4731418, 27.4731418,
738
+};
739
+
740
+static const float codebook_vector10[578] = {
741
+  0.0000000,  0.0000000,  0.0000000,  1.0000000,
742
+  0.0000000,  2.5198421,  0.0000000,  4.3267487,
743
+  0.0000000,  6.3496042,  0.0000000,  8.5498797,
744
+  0.0000000, 10.9027236,  0.0000000, 13.3905183,
745
+  0.0000000, 16.0000000,  0.0000000, 18.7207544,
746
+  0.0000000, 21.5443469,  0.0000000, 24.4637810,
747
+  0.0000000, 27.4731418,  0.0000000, 30.5673509,
748
+  0.0000000, 33.7419917,  0.0000000, 36.9931811,
749
+  0.0000000,      64.0f,  1.0000000,  0.0000000,
750
+  1.0000000,  1.0000000,  1.0000000,  2.5198421,
751
+  1.0000000,  4.3267487,  1.0000000,  6.3496042,
752
+  1.0000000,  8.5498797,  1.0000000, 10.9027236,
753
+  1.0000000, 13.3905183,  1.0000000, 16.0000000,
754
+  1.0000000, 18.7207544,  1.0000000, 21.5443469,
755
+  1.0000000, 24.4637810,  1.0000000, 27.4731418,
756
+  1.0000000, 30.5673509,  1.0000000, 33.7419917,
757
+  1.0000000, 36.9931811,  1.0000000,      64.0f,
758
+  2.5198421,  0.0000000,  2.5198421,  1.0000000,
759
+  2.5198421,  2.5198421,  2.5198421,  4.3267487,
760
+  2.5198421,  6.3496042,  2.5198421,  8.5498797,
761
+  2.5198421, 10.9027236,  2.5198421, 13.3905183,
762
+  2.5198421, 16.0000000,  2.5198421, 18.7207544,
763
+  2.5198421, 21.5443469,  2.5198421, 24.4637810,
764
+  2.5198421, 27.4731418,  2.5198421, 30.5673509,
765
+  2.5198421, 33.7419917,  2.5198421, 36.9931811,
766
+  2.5198421,      64.0f,  4.3267487,  0.0000000,
767
+  4.3267487,  1.0000000,  4.3267487,  2.5198421,
768
+  4.3267487,  4.3267487,  4.3267487,  6.3496042,
769
+  4.3267487,  8.5498797,  4.3267487, 10.9027236,
770
+  4.3267487, 13.3905183,  4.3267487, 16.0000000,
771
+  4.3267487, 18.7207544,  4.3267487, 21.5443469,
772
+  4.3267487, 24.4637810,  4.3267487, 27.4731418,
773
+  4.3267487, 30.5673509,  4.3267487, 33.7419917,
774
+  4.3267487, 36.9931811,  4.3267487,      64.0f,
775
+  6.3496042,  0.0000000,  6.3496042,  1.0000000,
776
+  6.3496042,  2.5198421,  6.3496042,  4.3267487,
777
+  6.3496042,  6.3496042,  6.3496042,  8.5498797,
778
+  6.3496042, 10.9027236,  6.3496042, 13.3905183,
779
+  6.3496042, 16.0000000,  6.3496042, 18.7207544,
780
+  6.3496042, 21.5443469,  6.3496042, 24.4637810,
781
+  6.3496042, 27.4731418,  6.3496042, 30.5673509,
782
+  6.3496042, 33.7419917,  6.3496042, 36.9931811,
783
+  6.3496042,      64.0f,  8.5498797,  0.0000000,
784
+  8.5498797,  1.0000000,  8.5498797,  2.5198421,
785
+  8.5498797,  4.3267487,  8.5498797,  6.3496042,
786
+  8.5498797,  8.5498797,  8.5498797, 10.9027236,
787
+  8.5498797, 13.3905183,  8.5498797, 16.0000000,
788
+  8.5498797, 18.7207544,  8.5498797, 21.5443469,
789
+  8.5498797, 24.4637810,  8.5498797, 27.4731418,
790
+  8.5498797, 30.5673509,  8.5498797, 33.7419917,
791
+  8.5498797, 36.9931811,  8.5498797,      64.0f,
792
+ 10.9027236,  0.0000000, 10.9027236,  1.0000000,
793
+ 10.9027236,  2.5198421, 10.9027236,  4.3267487,
794
+ 10.9027236,  6.3496042, 10.9027236,  8.5498797,
795
+ 10.9027236, 10.9027236, 10.9027236, 13.3905183,
796
+ 10.9027236, 16.0000000, 10.9027236, 18.7207544,
797
+ 10.9027236, 21.5443469, 10.9027236, 24.4637810,
798
+ 10.9027236, 27.4731418, 10.9027236, 30.5673509,
799
+ 10.9027236, 33.7419917, 10.9027236, 36.9931811,
800
+ 10.9027236,      64.0f, 13.3905183,  0.0000000,
801
+ 13.3905183,  1.0000000, 13.3905183,  2.5198421,
802
+ 13.3905183,  4.3267487, 13.3905183,  6.3496042,
803
+ 13.3905183,  8.5498797, 13.3905183, 10.9027236,
804
+ 13.3905183, 13.3905183, 13.3905183, 16.0000000,
805
+ 13.3905183, 18.7207544, 13.3905183, 21.5443469,
806
+ 13.3905183, 24.4637810, 13.3905183, 27.4731418,
807
+ 13.3905183, 30.5673509, 13.3905183, 33.7419917,
808
+ 13.3905183, 36.9931811, 13.3905183,      64.0f,
809
+ 16.0000000,  0.0000000, 16.0000000,  1.0000000,
810
+ 16.0000000,  2.5198421, 16.0000000,  4.3267487,
811
+ 16.0000000,  6.3496042, 16.0000000,  8.5498797,
812
+ 16.0000000, 10.9027236, 16.0000000, 13.3905183,
813
+ 16.0000000, 16.0000000, 16.0000000, 18.7207544,
814
+ 16.0000000, 21.5443469, 16.0000000, 24.4637810,
815
+ 16.0000000, 27.4731418, 16.0000000, 30.5673509,
816
+ 16.0000000, 33.7419917, 16.0000000, 36.9931811,
817
+ 16.0000000,      64.0f, 18.7207544,  0.0000000,
818
+ 18.7207544,  1.0000000, 18.7207544,  2.5198421,
819
+ 18.7207544,  4.3267487, 18.7207544,  6.3496042,
820
+ 18.7207544,  8.5498797, 18.7207544, 10.9027236,
821
+ 18.7207544, 13.3905183, 18.7207544, 16.0000000,
822
+ 18.7207544, 18.7207544, 18.7207544, 21.5443469,
823
+ 18.7207544, 24.4637810, 18.7207544, 27.4731418,
824
+ 18.7207544, 30.5673509, 18.7207544, 33.7419917,
825
+ 18.7207544, 36.9931811, 18.7207544,      64.0f,
826
+ 21.5443469,  0.0000000, 21.5443469,  1.0000000,
827
+ 21.5443469,  2.5198421, 21.5443469,  4.3267487,
828
+ 21.5443469,  6.3496042, 21.5443469,  8.5498797,
829
+ 21.5443469, 10.9027236, 21.5443469, 13.3905183,
830
+ 21.5443469, 16.0000000, 21.5443469, 18.7207544,
831
+ 21.5443469, 21.5443469, 21.5443469, 24.4637810,
832
+ 21.5443469, 27.4731418, 21.5443469, 30.5673509,
833
+ 21.5443469, 33.7419917, 21.5443469, 36.9931811,
834
+ 21.5443469,      64.0f, 24.4637810,  0.0000000,
835
+ 24.4637810,  1.0000000, 24.4637810,  2.5198421,
836
+ 24.4637810,  4.3267487, 24.4637810,  6.3496042,
837
+ 24.4637810,  8.5498797, 24.4637810, 10.9027236,
838
+ 24.4637810, 13.3905183, 24.4637810, 16.0000000,
839
+ 24.4637810, 18.7207544, 24.4637810, 21.5443469,
840
+ 24.4637810, 24.4637810, 24.4637810, 27.4731418,
841
+ 24.4637810, 30.5673509, 24.4637810, 33.7419917,
842
+ 24.4637810, 36.9931811, 24.4637810,      64.0f,
843
+ 27.4731418,  0.0000000, 27.4731418,  1.0000000,
844
+ 27.4731418,  2.5198421, 27.4731418,  4.3267487,
845
+ 27.4731418,  6.3496042, 27.4731418,  8.5498797,
846
+ 27.4731418, 10.9027236, 27.4731418, 13.3905183,
847
+ 27.4731418, 16.0000000, 27.4731418, 18.7207544,
848
+ 27.4731418, 21.5443469, 27.4731418, 24.4637810,
849
+ 27.4731418, 27.4731418, 27.4731418, 30.5673509,
850
+ 27.4731418, 33.7419917, 27.4731418, 36.9931811,
851
+ 27.4731418,      64.0f, 30.5673509,  0.0000000,
852
+ 30.5673509,  1.0000000, 30.5673509,  2.5198421,
853
+ 30.5673509,  4.3267487, 30.5673509,  6.3496042,
854
+ 30.5673509,  8.5498797, 30.5673509, 10.9027236,
855
+ 30.5673509, 13.3905183, 30.5673509, 16.0000000,
856
+ 30.5673509, 18.7207544, 30.5673509, 21.5443469,
857
+ 30.5673509, 24.4637810, 30.5673509, 27.4731418,
858
+ 30.5673509, 30.5673509, 30.5673509, 33.7419917,
859
+ 30.5673509, 36.9931811, 30.5673509,      64.0f,
860
+ 33.7419917,  0.0000000, 33.7419917,  1.0000000,
861
+ 33.7419917,  2.5198421, 33.7419917,  4.3267487,
862
+ 33.7419917,  6.3496042, 33.7419917,  8.5498797,
863
+ 33.7419917, 10.9027236, 33.7419917, 13.3905183,
864
+ 33.7419917, 16.0000000, 33.7419917, 18.7207544,
865
+ 33.7419917, 21.5443469, 33.7419917, 24.4637810,
866
+ 33.7419917, 27.4731418, 33.7419917, 30.5673509,
867
+ 33.7419917, 33.7419917, 33.7419917, 36.9931811,
868
+ 33.7419917,      64.0f, 36.9931811,  0.0000000,
869
+ 36.9931811,  1.0000000, 36.9931811,  2.5198421,
870
+ 36.9931811,  4.3267487, 36.9931811,  6.3496042,
871
+ 36.9931811,  8.5498797, 36.9931811, 10.9027236,
872
+ 36.9931811, 13.3905183, 36.9931811, 16.0000000,
873
+ 36.9931811, 18.7207544, 36.9931811, 21.5443469,
874
+ 36.9931811, 24.4637810, 36.9931811, 27.4731418,
875
+ 36.9931811, 30.5673509, 36.9931811, 33.7419917,
876
+ 36.9931811, 36.9931811, 36.9931811,      64.0f,
877
+      64.0f,  0.0000000,      64.0f,  1.0000000,
878
+      64.0f,  2.5198421,      64.0f,  4.3267487,
879
+      64.0f,  6.3496042,      64.0f,  8.5498797,
880
+      64.0f, 10.9027236,      64.0f, 13.3905183,
881
+      64.0f, 16.0000000,      64.0f, 18.7207544,
882
+      64.0f, 21.5443469,      64.0f, 24.4637810,
883
+      64.0f, 27.4731418,      64.0f, 30.5673509,
884
+      64.0f, 33.7419917,      64.0f, 36.9931811,
885
+      64.0f,      64.0f,
886
+};
887
+
888
+const float *ff_aac_codebook_vectors[] = {
540 889
     codebook_vector0, codebook_vector0, codebook_vector2,
541 890
     codebook_vector2, codebook_vector4, codebook_vector4,
542 891
     codebook_vector6, codebook_vector6, codebook_vector8,
... ...
@@ -545,265 +894,6 @@ const int8_t *ff_aac_codebook_vectors[] = {
545 545
 
546 546
 #ifdef CONFIG_HARDCODED_TABLES
547 547
 
548
-const float ff_aac_ivquant_tab[IVQUANT_SIZE] = {
549
-    -4085.3368071, -4074.6805676, -4064.0312908, -4053.3889857,
550
-    -4042.7536614, -4032.1253271, -4021.5039921, -4010.8896656,
551
-    -4000.2823568, -3989.6820750, -3979.0888296, -3968.5026299,
552
-    -3957.9234854, -3947.3514054, -3936.7863993, -3926.2284768,
553
-    -3915.6776473, -3905.1339203, -3894.5973054, -3884.0678123,
554
-    -3873.5454506, -3863.0302299, -3852.5221601, -3842.0212507,
555
-    -3831.5275117, -3821.0409528, -3810.5615838, -3800.0894147,
556
-    -3789.6244554, -3779.1667157, -3768.7162058, -3758.2729355,
557
-    -3747.8369150, -3737.4081544, -3726.9866637, -3716.5724532,
558
-    -3706.1655329, -3695.7659132, -3685.3736044, -3674.9886166,
559
-    -3664.6109603, -3654.2406458, -3643.8776835, -3633.5220839,
560
-    -3623.1738574, -3612.8330147, -3602.4995662, -3592.1735225,
561
-    -3581.8548943, -3571.5436923, -3561.2399271, -3550.9436095,
562
-    -3540.6547503, -3530.3733604, -3520.0994506, -3509.8330317,
563
-    -3499.5741148, -3489.3227109, -3479.0788309, -3468.8424860,
564
-    -3458.6136872, -3448.3924458, -3438.1787728, -3427.9726795,
565
-    -3417.7741773, -3407.5832773, -3397.3999911, -3387.2243299,
566
-    -3377.0563052, -3366.8959286, -3356.7432115, -3346.5981655,
567
-    -3336.4608022, -3326.3311334, -3316.2091706, -3306.0949257,
568
-    -3295.9884105, -3285.8896367, -3275.7986164, -3265.7153613,
569
-    -3255.6398836, -3245.5721951, -3235.5123081, -3225.4602346,
570
-    -3215.4159867, -3205.3795768, -3195.3510169, -3185.3303196,
571
-    -3175.3174970, -3165.3125617, -3155.3155261, -3145.3264026,
572
-    -3135.3452039, -3125.3719425, -3115.4066312, -3105.4492825,
573
-    -3095.4999092, -3085.5585243, -3075.6251404, -3065.6997706,
574
-    -3055.7824278, -3045.8731250, -3035.9718753, -3026.0786917,
575
-    -3016.1935876, -3006.3165760, -2996.4476703, -2986.5868839,
576
-    -2976.7342300, -2966.8897222, -2957.0533740, -2947.2251989,
577
-    -2937.4052106, -2927.5934226, -2917.7898488, -2907.9945030,
578
-    -2898.2073989, -2888.4285505, -2878.6579717, -2868.8956767,
579
-    -2859.1416793, -2849.3959939, -2839.6586345, -2829.9296156,
580
-    -2820.2089512, -2810.4966560, -2800.7927443, -2791.0972306,
581
-    -2781.4101295, -2771.7314556, -2762.0612237, -2752.3994485,
582
-    -2742.7461448, -2733.1013276, -2723.4650117, -2713.8372123,
583
-    -2704.2179443, -2694.6072231, -2685.0050637, -2675.4114815,
584
-    -2665.8264919, -2656.2501103, -2646.6823521, -2637.1232331,
585
-    -2627.5727687, -2618.0309748, -2608.4978671, -2598.9734614,
586
-    -2589.4577738, -2579.9508201, -2570.4526166, -2560.9631792,
587
-    -2551.4825244, -2542.0106682, -2532.5476273, -2523.0934179,
588
-    -2513.6480566, -2504.2115601, -2494.7839450, -2485.3652281,
589
-    -2475.9554262, -2466.5545562, -2457.1626352, -2447.7796803,
590
-    -2438.4057086, -2429.0407373, -2419.6847838, -2410.3378655,
591
-    -2401.0000000, -2391.6712048, -2382.3514975, -2373.0408959,
592
-    -2363.7394180, -2354.4470815, -2345.1639046, -2335.8899054,
593
-    -2326.6251019, -2317.3695127, -2308.1231559, -2298.8860501,
594
-    -2289.6582139, -2280.4396659, -2271.2304249, -2262.0305097,
595
-    -2252.8399393, -2243.6587327, -2234.4869090, -2225.3244875,
596
-    -2216.1714876, -2207.0279286, -2197.8938301, -2188.7692117,
597
-    -2179.6540933, -2170.5484945, -2161.4524354, -2152.3659360,
598
-    -2143.2890165, -2134.2216972, -2125.1639983, -2116.1159404,
599
-    -2107.0775442, -2098.0488302, -2089.0298192, -2080.0205323,
600
-    -2071.0209905, -2062.0312148, -2053.0512267, -2044.0810473,
601
-    -2035.1206983, -2026.1702013, -2017.2295780, -2008.2988502,
602
-    -1999.3780400, -1990.4671694, -1981.5662607, -1972.6753362,
603
-    -1963.7944183, -1954.9235298, -1946.0626932, -1937.2119316,
604
-    -1928.3712678, -1919.5407249, -1910.7203263, -1901.9100954,
605
-    -1893.1100555, -1884.3202305, -1875.5406441, -1866.7713202,
606
-    -1858.0122829, -1849.2635565, -1840.5251653, -1831.7971337,
607
-    -1823.0794865, -1814.3722485, -1805.6754445, -1796.9890997,
608
-    -1788.3132394, -1779.6478889, -1770.9930739, -1762.3488199,
609
-    -1753.7151529, -1745.0920989, -1736.4796841, -1727.8779349,
610
-    -1719.2868777, -1710.7065393, -1702.1369465, -1693.5781262,
611
-    -1685.0301058, -1676.4929125, -1667.9665739, -1659.4511177,
612
-    -1650.9465718, -1642.4529642, -1633.9703232, -1625.4986772,
613
-    -1617.0380549, -1608.5884850, -1600.1499965, -1591.7226186,
614
-    -1583.3063807, -1574.9013124, -1566.5074433, -1558.1248036,
615
-    -1549.7534233, -1541.3933328, -1533.0445627, -1524.7071438,
616
-    -1516.3811070, -1508.0664836, -1499.7633050, -1491.4716029,
617
-    -1483.1914090, -1474.9227555, -1466.6656746, -1458.4201990,
618
-    -1450.1863613, -1441.9641946, -1433.7537320, -1425.5550071,
619
-    -1417.3680536, -1409.1929053, -1401.0295965, -1392.8781617,
620
-    -1384.7386355, -1376.6110529, -1368.4954490, -1360.3918594,
621
-    -1352.3003198, -1344.2208661, -1336.1535347, -1328.0983621,
622
-    -1320.0553851, -1312.0246407, -1304.0061665, -1296.0000000,
623
-    -1288.0061792, -1280.0247424, -1272.0557280, -1264.0991750,
624
-    -1256.1551226, -1248.2236101, -1240.3046773, -1232.3983645,
625
-    -1224.5047118, -1216.6237602, -1208.7555507, -1200.9001246,
626
-    -1193.0575238, -1185.2277903, -1177.4109665, -1169.6070953,
627
-    -1161.8162197, -1154.0383833, -1146.2736299, -1138.5220038,
628
-    -1130.7835495, -1123.0583122, -1115.3463371, -1107.6476700,
629
-    -1099.9623571, -1092.2904450, -1084.6319806, -1076.9870114,
630
-    -1069.3555851, -1061.7377500, -1054.1335548, -1046.5430486,
631
-    -1038.9662809, -1031.4033017, -1023.8541615, -1016.3189112,
632
-    -1008.7976022, -1001.2902864,  -993.7970162,  -986.3178444,
633
-     -978.8528243,  -971.4020099,  -963.9654554,  -956.5432158,
634
-     -949.1353466,  -941.7419036,  -934.3629435,  -926.9985233,
635
-     -919.6487005,  -912.3135336,  -904.9930812,  -897.6874027,
636
-     -890.3965581,  -883.1206081,  -875.8596139,  -868.6136373,
637
-     -861.3827409,  -854.1669878,  -846.9664418,  -839.7811675,
638
-     -832.6112300,  -825.4566953,  -818.3176299,  -811.1941012,
639
-     -804.0861773,  -796.9939269,  -789.9174197,  -782.8567260,
640
-     -775.8119169,  -768.7830645,  -761.7702415,  -754.7735215,
641
-     -747.7929790,  -740.8286894,  -733.8807287,  -726.9491743,
642
-     -720.0341040,  -713.1355968,  -706.2537328,  -699.3885927,
643
-     -692.5402584,  -685.7088129,  -678.8943400,  -672.0969248,
644
-     -665.3166532,  -658.5536125,  -651.8078908,  -645.0795775,
645
-     -638.3687633,  -631.6755398,  -625.0000000,  -618.3422381,
646
-     -611.7023495,  -605.0804310,  -598.4765806,  -591.8908978,
647
-     -585.3234834,  -578.7744395,  -572.2438698,  -565.7318795,
648
-     -559.2385751,  -552.7640648,  -546.3084584,  -539.8718672,
649
-     -533.4544042,  -527.0561843,  -520.6773237,  -514.3179408,
650
-     -507.9781556,  -501.6580901,  -495.3578679,  -489.0776150,
651
-     -482.8174592,  -476.5775303,  -470.3579603,  -464.1588834,
652
-     -457.9804359,  -451.8227566,  -445.6859865,  -439.5702691,
653
-     -433.4757504,  -427.4025787,  -421.3509053,  -415.3208841,
654
-     -409.3126715,  -403.3264272,  -397.3623135,  -391.4204959,
655
-     -385.5011431,  -379.6044268,  -373.7305221,  -367.8796078,
656
-     -362.0518657,  -356.2474818,  -350.4666456,  -344.7095504,
657
-     -338.9763937,  -333.2673772,  -327.5827066,  -321.9225924,
658
-     -316.2872495,  -310.6768976,  -305.0917613,  -299.5320705,
659
-     -293.9980602,  -288.4899710,  -283.0080491,  -277.5525469,
660
-     -272.1237227,  -266.7218414,  -261.3471743,  -256.0000000,
661
-     -250.6806041,  -245.3892798,  -240.1263282,  -234.8920585,
662
-     -229.6867885,  -224.5108452,  -219.3645645,  -214.2482925,
663
-     -209.1623853,  -204.1072101,  -199.0831450,  -194.0905802,
664
-     -189.1299182,  -184.2015749,  -179.3059798,  -174.4435769,
665
-     -169.6148258,  -164.8202021,  -160.0601987,  -155.3353268,
666
-     -150.6461166,  -145.9931191,  -141.3769069,  -136.7980757,
667
-     -132.2572463,  -127.7550655,  -123.2922085,  -118.8693810,
668
-     -114.4873209,  -110.1468012,  -105.8486329,  -101.5936673,
669
-      -97.3828002,   -93.2169752,   -89.0971879,   -85.0244912,
670
-      -81.0000000,   -77.0248978,   -73.1004435,   -69.2279794,
671
-      -65.4089405,   -61.6448653,   -57.9374077,   -54.2883523,
672
-      -50.6996313,   -47.1733451,   -43.7117870,   -40.3174736,
673
-      -36.9931811,   -33.7419917,   -30.5673509,   -27.4731418,
674
-      -24.4637810,   -21.5443469,   -18.7207544,   -16.0000000,
675
-      -13.3905183,   -10.9027236,    -8.5498797,    -6.3496042,
676
-       -4.3267487,    -2.5198421,    -1.0000000,     0.0000000,
677
-        1.0000000,     2.5198421,     4.3267487,     6.3496042,
678
-        8.5498797,    10.9027236,    13.3905183,    16.0000000,
679
-       18.7207544,    21.5443469,    24.4637810,    27.4731418,
680
-       30.5673509,    33.7419917,    36.9931811,    40.3174736,
681
-       43.7117870,    47.1733451,    50.6996313,    54.2883523,
682
-       57.9374077,    61.6448653,    65.4089405,    69.2279794,
683
-       73.1004435,    77.0248978,    81.0000000,    85.0244912,
684
-       89.0971879,    93.2169752,    97.3828002,   101.5936673,
685
-      105.8486329,   110.1468012,   114.4873209,   118.8693810,
686
-      123.2922085,   127.7550655,   132.2572463,   136.7980757,
687
-      141.3769069,   145.9931191,   150.6461166,   155.3353268,
688
-      160.0601987,   164.8202021,   169.6148258,   174.4435769,
689
-      179.3059798,   184.2015749,   189.1299182,   194.0905802,
690
-      199.0831450,   204.1072101,   209.1623853,   214.2482925,
691
-      219.3645645,   224.5108452,   229.6867885,   234.8920585,
692
-      240.1263282,   245.3892798,   250.6806041,   256.0000000,
693
-      261.3471743,   266.7218414,   272.1237227,   277.5525469,
694
-      283.0080491,   288.4899710,   293.9980602,   299.5320705,
695
-      305.0917613,   310.6768976,   316.2872495,   321.9225924,
696
-      327.5827066,   333.2673772,   338.9763937,   344.7095504,
697
-      350.4666456,   356.2474818,   362.0518657,   367.8796078,
698
-      373.7305221,   379.6044268,   385.5011431,   391.4204959,
699
-      397.3623135,   403.3264272,   409.3126715,   415.3208841,
700
-      421.3509053,   427.4025787,   433.4757504,   439.5702691,
701
-      445.6859865,   451.8227566,   457.9804359,   464.1588834,
702
-      470.3579603,   476.5775303,   482.8174592,   489.0776150,
703
-      495.3578679,   501.6580901,   507.9781556,   514.3179408,
704
-      520.6773237,   527.0561843,   533.4544042,   539.8718672,
705
-      546.3084584,   552.7640648,   559.2385751,   565.7318795,
706
-      572.2438698,   578.7744395,   585.3234834,   591.8908978,
707
-      598.4765806,   605.0804310,   611.7023495,   618.3422381,
708
-      625.0000000,   631.6755398,   638.3687633,   645.0795775,
709
-      651.8078908,   658.5536125,   665.3166532,   672.0969248,
710
-      678.8943400,   685.7088129,   692.5402584,   699.3885927,
711
-      706.2537328,   713.1355968,   720.0341040,   726.9491743,
712
-      733.8807287,   740.8286894,   747.7929790,   754.7735215,
713
-      761.7702415,   768.7830645,   775.8119169,   782.8567260,
714
-      789.9174197,   796.9939269,   804.0861773,   811.1941012,
715
-      818.3176299,   825.4566953,   832.6112300,   839.7811675,
716
-      846.9664418,   854.1669878,   861.3827409,   868.6136373,
717
-      875.8596139,   883.1206081,   890.3965581,   897.6874027,
718
-      904.9930812,   912.3135336,   919.6487005,   926.9985233,
719
-      934.3629435,   941.7419036,   949.1353466,   956.5432158,
720
-      963.9654554,   971.4020099,   978.8528243,   986.3178444,
721
-      993.7970162,  1001.2902864,  1008.7976022,  1016.3189112,
722
-     1023.8541615,  1031.4033017,  1038.9662809,  1046.5430486,
723
-     1054.1335548,  1061.7377500,  1069.3555851,  1076.9870114,
724
-     1084.6319806,  1092.2904450,  1099.9623571,  1107.6476700,
725
-     1115.3463371,  1123.0583122,  1130.7835495,  1138.5220038,
726
-     1146.2736299,  1154.0383833,  1161.8162197,  1169.6070953,
727
-     1177.4109665,  1185.2277903,  1193.0575238,  1200.9001246,
728
-     1208.7555507,  1216.6237602,  1224.5047118,  1232.3983645,
729
-     1240.3046773,  1248.2236101,  1256.1551226,  1264.0991750,
730
-     1272.0557280,  1280.0247424,  1288.0061792,  1296.0000000,
731
-     1304.0061665,  1312.0246407,  1320.0553851,  1328.0983621,
732
-     1336.1535347,  1344.2208661,  1352.3003198,  1360.3918594,
733
-     1368.4954490,  1376.6110529,  1384.7386355,  1392.8781617,
734
-     1401.0295965,  1409.1929053,  1417.3680536,  1425.5550071,
735
-     1433.7537320,  1441.9641946,  1450.1863613,  1458.4201990,
736
-     1466.6656746,  1474.9227555,  1483.1914090,  1491.4716029,
737
-     1499.7633050,  1508.0664836,  1516.3811070,  1524.7071438,
738
-     1533.0445627,  1541.3933328,  1549.7534233,  1558.1248036,
739
-     1566.5074433,  1574.9013124,  1583.3063807,  1591.7226186,
740
-     1600.1499965,  1608.5884850,  1617.0380549,  1625.4986772,
741
-     1633.9703232,  1642.4529642,  1650.9465718,  1659.4511177,
742
-     1667.9665739,  1676.4929125,  1685.0301058,  1693.5781262,
743
-     1702.1369465,  1710.7065393,  1719.2868777,  1727.8779349,
744
-     1736.4796841,  1745.0920989,  1753.7151529,  1762.3488199,
745
-     1770.9930739,  1779.6478889,  1788.3132394,  1796.9890997,
746
-     1805.6754445,  1814.3722485,  1823.0794865,  1831.7971337,
747
-     1840.5251653,  1849.2635565,  1858.0122829,  1866.7713202,
748
-     1875.5406441,  1884.3202305,  1893.1100555,  1901.9100954,
749
-     1910.7203263,  1919.5407249,  1928.3712678,  1937.2119316,
750
-     1946.0626932,  1954.9235298,  1963.7944183,  1972.6753362,
751
-     1981.5662607,  1990.4671694,  1999.3780400,  2008.2988502,
752
-     2017.2295780,  2026.1702013,  2035.1206983,  2044.0810473,
753
-     2053.0512267,  2062.0312148,  2071.0209905,  2080.0205323,
754
-     2089.0298192,  2098.0488302,  2107.0775442,  2116.1159404,
755
-     2125.1639983,  2134.2216972,  2143.2890165,  2152.3659360,
756
-     2161.4524354,  2170.5484945,  2179.6540933,  2188.7692117,
757
-     2197.8938301,  2207.0279286,  2216.1714876,  2225.3244875,
758
-     2234.4869090,  2243.6587327,  2252.8399393,  2262.0305097,
759
-     2271.2304249,  2280.4396659,  2289.6582139,  2298.8860501,
760
-     2308.1231559,  2317.3695127,  2326.6251019,  2335.8899054,
761
-     2345.1639046,  2354.4470815,  2363.7394180,  2373.0408959,
762
-     2382.3514975,  2391.6712048,  2401.0000000,  2410.3378655,
763
-     2419.6847838,  2429.0407373,  2438.4057086,  2447.7796803,
764
-     2457.1626352,  2466.5545562,  2475.9554262,  2485.3652281,
765
-     2494.7839450,  2504.2115601,  2513.6480566,  2523.0934179,
766
-     2532.5476273,  2542.0106682,  2551.4825244,  2560.9631792,
767
-     2570.4526166,  2579.9508201,  2589.4577738,  2598.9734614,
768
-     2608.4978671,  2618.0309748,  2627.5727687,  2637.1232331,
769
-     2646.6823521,  2656.2501103,  2665.8264919,  2675.4114815,
770
-     2685.0050637,  2694.6072231,  2704.2179443,  2713.8372123,
771
-     2723.4650117,  2733.1013276,  2742.7461448,  2752.3994485,
772
-     2762.0612237,  2771.7314556,  2781.4101295,  2791.0972306,
773
-     2800.7927443,  2810.4966560,  2820.2089512,  2829.9296156,
774
-     2839.6586345,  2849.3959939,  2859.1416793,  2868.8956767,
775
-     2878.6579717,  2888.4285505,  2898.2073989,  2907.9945030,
776
-     2917.7898488,  2927.5934226,  2937.4052106,  2947.2251989,
777
-     2957.0533740,  2966.8897222,  2976.7342300,  2986.5868839,
778
-     2996.4476703,  3006.3165760,  3016.1935876,  3026.0786917,
779
-     3035.9718753,  3045.8731250,  3055.7824278,  3065.6997706,
780
-     3075.6251404,  3085.5585243,  3095.4999092,  3105.4492825,
781
-     3115.4066312,  3125.3719425,  3135.3452039,  3145.3264026,
782
-     3155.3155261,  3165.3125617,  3175.3174970,  3185.3303196,
783
-     3195.3510169,  3205.3795768,  3215.4159867,  3225.4602346,
784
-     3235.5123081,  3245.5721951,  3255.6398836,  3265.7153613,
785
-     3275.7986164,  3285.8896367,  3295.9884105,  3306.0949257,
786
-     3316.2091706,  3326.3311334,  3336.4608022,  3346.5981655,
787
-     3356.7432115,  3366.8959286,  3377.0563052,  3387.2243299,
788
-     3397.3999911,  3407.5832773,  3417.7741773,  3427.9726795,
789
-     3438.1787728,  3448.3924458,  3458.6136872,  3468.8424860,
790
-     3479.0788309,  3489.3227109,  3499.5741148,  3509.8330317,
791
-     3520.0994506,  3530.3733604,  3540.6547503,  3550.9436095,
792
-     3561.2399271,  3571.5436923,  3581.8548943,  3592.1735225,
793
-     3602.4995662,  3612.8330147,  3623.1738574,  3633.5220839,
794
-     3643.8776835,  3654.2406458,  3664.6109603,  3674.9886166,
795
-     3685.3736044,  3695.7659132,  3706.1655329,  3716.5724532,
796
-     3726.9866637,  3737.4081544,  3747.8369150,  3758.2729355,
797
-     3768.7162058,  3779.1667157,  3789.6244554,  3800.0894147,
798
-     3810.5615838,  3821.0409528,  3831.5275117,  3842.0212507,
799
-     3852.5221601,  3863.0302299,  3873.5454506,  3884.0678123,
800
-     3894.5973054,  3905.1339203,  3915.6776473,  3926.2284768,
801
-     3936.7863993,  3947.3514054,  3957.9234854,  3968.5026299,
802
-     3979.0888296,  3989.6820750,  4000.2823568,  4010.8896656,
803
-     4021.5039921,  4032.1253271,  4042.7536614,  4053.3889857,
804
-     4064.0312908,  4074.6805676,  4085.3368071,  4096.0000000,
805
-};
806
-
807 548
 /**
808 549
  * Table of pow(2, (i - 200)/4.) used for different purposes depending on the
809 550
  * range of indices to the table:
... ...
@@ -54,10 +54,9 @@ extern const uint16_t *ff_aac_spectral_codes[11];
54 54
 extern const uint8_t  *ff_aac_spectral_bits [11];
55 55
 extern const uint16_t  ff_aac_spectral_sizes[11];
56 56
 
57
-extern const int8_t *ff_aac_codebook_vectors[];
57
+extern const float *ff_aac_codebook_vectors[];
58 58
 
59 59
 #ifdef CONFIG_HARDCODED_TABLES
60
-extern const float ff_aac_ivquant_tab[IVQUANT_SIZE];
61 60
 extern const float ff_aac_pow2sf_tab[316];
62 61
 #endif /* CONFIG_HARDCODED_TABLES */
63 62