Mans Rullgard | e2e838a | 2011-04-22 09:22:33 +0300 | [diff] [blame] | 1 | /* |
| 2 | ** Copyright 2003-2010, VisualOn, Inc. |
| 3 | ** |
| 4 | ** Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | ** you may not use this file except in compliance with the License. |
| 6 | ** You may obtain a copy of the License at |
| 7 | ** |
| 8 | ** http://www.apache.org/licenses/LICENSE-2.0 |
| 9 | ** |
| 10 | ** Unless required by applicable law or agreed to in writing, software |
| 11 | ** distributed under the License is distributed on an "AS IS" BASIS, |
| 12 | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 13 | ** See the License for the specific language governing permissions and |
| 14 | ** limitations under the License. |
| 15 | */ |
| 16 | /******************************************************************************* |
| 17 | File: aac_rom.h |
| 18 | |
Mans Rullgard | b676a05 | 2011-04-05 17:40:06 +0300 | [diff] [blame] | 19 | Content: constant tables |
Mans Rullgard | e2e838a | 2011-04-22 09:22:33 +0300 | [diff] [blame] | 20 | |
James Dong | 956c553 | 2010-05-14 15:45:22 -0700 | [diff] [blame] | 21 | *******************************************************************************/ |
| 22 | |
| 23 | #ifndef ROM_H |
| 24 | #define ROM_H |
Mans Rullgard | e2e838a | 2011-04-22 09:22:33 +0300 | [diff] [blame] | 25 | |
James Dong | 956c553 | 2010-05-14 15:45:22 -0700 | [diff] [blame] | 26 | #include "config.h" |
| 27 | #include "psy_const.h" |
| 28 | #include "tns_param.h" |
| 29 | |
| 30 | /* |
| 31 | mdct |
| 32 | */ |
| 33 | extern const int ShortWindowSine[FRAME_LEN_SHORT/2]; |
Mans Rullgard | e2e838a | 2011-04-22 09:22:33 +0300 | [diff] [blame] | 34 | extern const int LongWindowKBD[FRAME_LEN_LONG/2]; |
| 35 | |
| 36 | extern const unsigned char bitrevTab[17 + 129]; |
| 37 | extern const int cossintab[128 + 1024]; |
| 38 | |
| 39 | #if defined (ARMV5E) && !defined (ARMV7Neon) |
| 40 | extern const int twidTab64[(4*6 + 16*6)/2]; |
| 41 | extern const int twidTab512[(8*6 + 32*6 + 128*6)/2]; |
| 42 | #else |
| 43 | extern const int twidTab64[4*6 + 16*6]; |
James Dong | 956c553 | 2010-05-14 15:45:22 -0700 | [diff] [blame] | 44 | extern const int twidTab512[8*6 + 32*6 + 128*6]; |
| 45 | #endif |
| 46 | |
| 47 | /* |
| 48 | form factor |
| 49 | */ |
| 50 | extern const Word32 formfac_sqrttable[96]; |
| 51 | |
| 52 | /* |
| 53 | quantizer |
| 54 | */ |
| 55 | extern const Word32 mTab_3_4[512]; |
| 56 | extern const Word32 mTab_4_3[512]; |
| 57 | /*! $2^{-\frac{n}{16}}$ table */ |
| 58 | extern const Word16 pow2tominusNover16[17] ; |
| 59 | |
Martin Storsjo | 9538ab8 | 2012-09-09 16:33:52 +0300 | [diff] [blame] | 60 | extern const Word32 specExpMantTableComb_enc[4][14]; |
James Dong | 956c553 | 2010-05-14 15:45:22 -0700 | [diff] [blame] | 61 | extern const UWord8 specExpTableComb_enc[4][14]; |
| 62 | |
| 63 | extern const Word16 quantBorders[4][4]; |
Mans Rullgard | e2e838a | 2011-04-22 09:22:33 +0300 | [diff] [blame] | 64 | //extern const Word16 quantRecon[3][4]; |
James Dong | 956c553 | 2010-05-14 15:45:22 -0700 | [diff] [blame] | 65 | extern const Word16 quantRecon[4][3]; |
| 66 | |
| 67 | /* |
| 68 | huffman |
| 69 | */ |
| 70 | extern const UWord16 huff_ltab1_2[3][3][3][3]; |
| 71 | extern const UWord16 huff_ltab3_4[3][3][3][3]; |
| 72 | extern const UWord16 huff_ltab5_6[9][9]; |
| 73 | extern const UWord16 huff_ltab7_8[8][8]; |
| 74 | extern const UWord16 huff_ltab9_10[13][13]; |
| 75 | extern const UWord16 huff_ltab11[17][17]; |
| 76 | extern const UWord16 huff_ltabscf[121]; |
| 77 | extern const UWord16 huff_ctab1[3][3][3][3]; |
| 78 | extern const UWord16 huff_ctab2[3][3][3][3]; |
| 79 | extern const UWord16 huff_ctab3[3][3][3][3]; |
| 80 | extern const UWord16 huff_ctab4[3][3][3][3]; |
| 81 | extern const UWord16 huff_ctab5[9][9]; |
| 82 | extern const UWord16 huff_ctab6[9][9]; |
| 83 | extern const UWord16 huff_ctab7[8][8]; |
| 84 | extern const UWord16 huff_ctab8[8][8]; |
| 85 | extern const UWord16 huff_ctab9[13][13]; |
| 86 | extern const UWord16 huff_ctab10[13][13]; |
| 87 | extern const UWord16 huff_ctab11[17][17]; |
| 88 | extern const UWord32 huff_ctabscf[121]; |
| 89 | |
| 90 | |
| 91 | |
| 92 | /* |
| 93 | misc |
| 94 | */ |
Mans Rullgard | e2e838a | 2011-04-22 09:22:33 +0300 | [diff] [blame] | 95 | extern const int sampRateTab[NUM_SAMPLE_RATES]; |
| 96 | extern const int BandwithCoefTab[8][NUM_SAMPLE_RATES]; |
| 97 | extern const int rates[8]; |
| 98 | extern const UWord8 sfBandTotalShort[NUM_SAMPLE_RATES]; |
| 99 | extern const UWord8 sfBandTotalLong[NUM_SAMPLE_RATES]; |
| 100 | extern const int sfBandTabShortOffset[NUM_SAMPLE_RATES]; |
| 101 | extern const short sfBandTabShort[76]; |
| 102 | extern const int sfBandTabLongOffset[NUM_SAMPLE_RATES]; |
| 103 | extern const short sfBandTabLong[325]; |
James Dong | 956c553 | 2010-05-14 15:45:22 -0700 | [diff] [blame] | 104 | |
| 105 | extern const Word32 m_log2_table[INT_BITS]; |
| 106 | |
| 107 | /* |
| 108 | TNS |
| 109 | */ |
Mans Rullgard | e2e838a | 2011-04-22 09:22:33 +0300 | [diff] [blame] | 110 | extern const Word32 tnsCoeff3[8]; |
| 111 | extern const Word32 tnsCoeff3Borders[8]; |
| 112 | extern const Word32 tnsCoeff4[16]; |
| 113 | extern const Word32 tnsCoeff4Borders[16]; |
| 114 | extern const Word32 invSBF[24]; |
| 115 | extern const Word16 sideInfoTabLong[MAX_SFB_LONG + 1]; |
James Dong | 956c553 | 2010-05-14 15:45:22 -0700 | [diff] [blame] | 116 | extern const Word16 sideInfoTabShort[MAX_SFB_SHORT + 1]; |
| 117 | #endif |