xref: /aosp_15_r20/external/aac/libSBRenc/src/sbrenc_rom.cpp (revision e54365361535b070c2db7374cec45c159c7d0e7a)
1*e5436536SAndroid Build Coastguard Worker /* -----------------------------------------------------------------------------
2*e5436536SAndroid Build Coastguard Worker Software License for The Fraunhofer FDK AAC Codec Library for Android
3*e5436536SAndroid Build Coastguard Worker 
4*e5436536SAndroid Build Coastguard Worker © Copyright  1995 - 2018 Fraunhofer-Gesellschaft zur Förderung der angewandten
5*e5436536SAndroid Build Coastguard Worker Forschung e.V. All rights reserved.
6*e5436536SAndroid Build Coastguard Worker 
7*e5436536SAndroid Build Coastguard Worker  1.    INTRODUCTION
8*e5436536SAndroid Build Coastguard Worker The Fraunhofer FDK AAC Codec Library for Android ("FDK AAC Codec") is software
9*e5436536SAndroid Build Coastguard Worker that implements the MPEG Advanced Audio Coding ("AAC") encoding and decoding
10*e5436536SAndroid Build Coastguard Worker scheme for digital audio. This FDK AAC Codec software is intended to be used on
11*e5436536SAndroid Build Coastguard Worker a wide variety of Android devices.
12*e5436536SAndroid Build Coastguard Worker 
13*e5436536SAndroid Build Coastguard Worker AAC's HE-AAC and HE-AAC v2 versions are regarded as today's most efficient
14*e5436536SAndroid Build Coastguard Worker general perceptual audio codecs. AAC-ELD is considered the best-performing
15*e5436536SAndroid Build Coastguard Worker full-bandwidth communications codec by independent studies and is widely
16*e5436536SAndroid Build Coastguard Worker deployed. AAC has been standardized by ISO and IEC as part of the MPEG
17*e5436536SAndroid Build Coastguard Worker specifications.
18*e5436536SAndroid Build Coastguard Worker 
19*e5436536SAndroid Build Coastguard Worker Patent licenses for necessary patent claims for the FDK AAC Codec (including
20*e5436536SAndroid Build Coastguard Worker those of Fraunhofer) may be obtained through Via Licensing
21*e5436536SAndroid Build Coastguard Worker (www.vialicensing.com) or through the respective patent owners individually for
22*e5436536SAndroid Build Coastguard Worker the purpose of encoding or decoding bit streams in products that are compliant
23*e5436536SAndroid Build Coastguard Worker with the ISO/IEC MPEG audio standards. Please note that most manufacturers of
24*e5436536SAndroid Build Coastguard Worker Android devices already license these patent claims through Via Licensing or
25*e5436536SAndroid Build Coastguard Worker directly from the patent owners, and therefore FDK AAC Codec software may
26*e5436536SAndroid Build Coastguard Worker already be covered under those patent licenses when it is used for those
27*e5436536SAndroid Build Coastguard Worker licensed purposes only.
28*e5436536SAndroid Build Coastguard Worker 
29*e5436536SAndroid Build Coastguard Worker Commercially-licensed AAC software libraries, including floating-point versions
30*e5436536SAndroid Build Coastguard Worker with enhanced sound quality, are also available from Fraunhofer. Users are
31*e5436536SAndroid Build Coastguard Worker encouraged to check the Fraunhofer website for additional applications
32*e5436536SAndroid Build Coastguard Worker information and documentation.
33*e5436536SAndroid Build Coastguard Worker 
34*e5436536SAndroid Build Coastguard Worker 2.    COPYRIGHT LICENSE
35*e5436536SAndroid Build Coastguard Worker 
36*e5436536SAndroid Build Coastguard Worker Redistribution and use in source and binary forms, with or without modification,
37*e5436536SAndroid Build Coastguard Worker are permitted without payment of copyright license fees provided that you
38*e5436536SAndroid Build Coastguard Worker satisfy the following conditions:
39*e5436536SAndroid Build Coastguard Worker 
40*e5436536SAndroid Build Coastguard Worker You must retain the complete text of this software license in redistributions of
41*e5436536SAndroid Build Coastguard Worker the FDK AAC Codec or your modifications thereto in source code form.
42*e5436536SAndroid Build Coastguard Worker 
43*e5436536SAndroid Build Coastguard Worker You must retain the complete text of this software license in the documentation
44*e5436536SAndroid Build Coastguard Worker and/or other materials provided with redistributions of the FDK AAC Codec or
45*e5436536SAndroid Build Coastguard Worker your modifications thereto in binary form. You must make available free of
46*e5436536SAndroid Build Coastguard Worker charge copies of the complete source code of the FDK AAC Codec and your
47*e5436536SAndroid Build Coastguard Worker modifications thereto to recipients of copies in binary form.
48*e5436536SAndroid Build Coastguard Worker 
49*e5436536SAndroid Build Coastguard Worker The name of Fraunhofer may not be used to endorse or promote products derived
50*e5436536SAndroid Build Coastguard Worker from this library without prior written permission.
51*e5436536SAndroid Build Coastguard Worker 
52*e5436536SAndroid Build Coastguard Worker You may not charge copyright license fees for anyone to use, copy or distribute
53*e5436536SAndroid Build Coastguard Worker the FDK AAC Codec software or your modifications thereto.
54*e5436536SAndroid Build Coastguard Worker 
55*e5436536SAndroid Build Coastguard Worker Your modified versions of the FDK AAC Codec must carry prominent notices stating
56*e5436536SAndroid Build Coastguard Worker that you changed the software and the date of any change. For modified versions
57*e5436536SAndroid Build Coastguard Worker of the FDK AAC Codec, the term "Fraunhofer FDK AAC Codec Library for Android"
58*e5436536SAndroid Build Coastguard Worker must be replaced by the term "Third-Party Modified Version of the Fraunhofer FDK
59*e5436536SAndroid Build Coastguard Worker AAC Codec Library for Android."
60*e5436536SAndroid Build Coastguard Worker 
61*e5436536SAndroid Build Coastguard Worker 3.    NO PATENT LICENSE
62*e5436536SAndroid Build Coastguard Worker 
63*e5436536SAndroid Build Coastguard Worker NO EXPRESS OR IMPLIED LICENSES TO ANY PATENT CLAIMS, including without
64*e5436536SAndroid Build Coastguard Worker limitation the patents of Fraunhofer, ARE GRANTED BY THIS SOFTWARE LICENSE.
65*e5436536SAndroid Build Coastguard Worker Fraunhofer provides no warranty of patent non-infringement with respect to this
66*e5436536SAndroid Build Coastguard Worker software.
67*e5436536SAndroid Build Coastguard Worker 
68*e5436536SAndroid Build Coastguard Worker You may use this FDK AAC Codec software or modifications thereto only for
69*e5436536SAndroid Build Coastguard Worker purposes that are authorized by appropriate patent licenses.
70*e5436536SAndroid Build Coastguard Worker 
71*e5436536SAndroid Build Coastguard Worker 4.    DISCLAIMER
72*e5436536SAndroid Build Coastguard Worker 
73*e5436536SAndroid Build Coastguard Worker This FDK AAC Codec software is provided by Fraunhofer on behalf of the copyright
74*e5436536SAndroid Build Coastguard Worker holders and contributors "AS IS" and WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES,
75*e5436536SAndroid Build Coastguard Worker including but not limited to the implied warranties of merchantability and
76*e5436536SAndroid Build Coastguard Worker fitness for a particular purpose. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
77*e5436536SAndroid Build Coastguard Worker CONTRIBUTORS BE LIABLE for any direct, indirect, incidental, special, exemplary,
78*e5436536SAndroid Build Coastguard Worker or consequential damages, including but not limited to procurement of substitute
79*e5436536SAndroid Build Coastguard Worker goods or services; loss of use, data, or profits, or business interruption,
80*e5436536SAndroid Build Coastguard Worker however caused and on any theory of liability, whether in contract, strict
81*e5436536SAndroid Build Coastguard Worker liability, or tort (including negligence), arising in any way out of the use of
82*e5436536SAndroid Build Coastguard Worker this software, even if advised of the possibility of such damage.
83*e5436536SAndroid Build Coastguard Worker 
84*e5436536SAndroid Build Coastguard Worker 5.    CONTACT INFORMATION
85*e5436536SAndroid Build Coastguard Worker 
86*e5436536SAndroid Build Coastguard Worker Fraunhofer Institute for Integrated Circuits IIS
87*e5436536SAndroid Build Coastguard Worker Attention: Audio and Multimedia Departments - FDK AAC LL
88*e5436536SAndroid Build Coastguard Worker Am Wolfsmantel 33
89*e5436536SAndroid Build Coastguard Worker 91058 Erlangen, Germany
90*e5436536SAndroid Build Coastguard Worker 
91*e5436536SAndroid Build Coastguard Worker www.iis.fraunhofer.de/amm
92*e5436536SAndroid Build Coastguard Worker [email protected]
93*e5436536SAndroid Build Coastguard Worker ----------------------------------------------------------------------------- */
94*e5436536SAndroid Build Coastguard Worker 
95*e5436536SAndroid Build Coastguard Worker /**************************** SBR encoder library ******************************
96*e5436536SAndroid Build Coastguard Worker 
97*e5436536SAndroid Build Coastguard Worker    Author(s):   Tobias Chalupka
98*e5436536SAndroid Build Coastguard Worker 
99*e5436536SAndroid Build Coastguard Worker    Description: Definition of constant tables
100*e5436536SAndroid Build Coastguard Worker 
101*e5436536SAndroid Build Coastguard Worker *******************************************************************************/
102*e5436536SAndroid Build Coastguard Worker 
103*e5436536SAndroid Build Coastguard Worker /*!
104*e5436536SAndroid Build Coastguard Worker   \file
105*e5436536SAndroid Build Coastguard Worker   \brief  Definition of constant tables
106*e5436536SAndroid Build Coastguard Worker   $Revision: 95404 $
107*e5436536SAndroid Build Coastguard Worker 
108*e5436536SAndroid Build Coastguard Worker   This module contains most of the constant data that can be stored in ROM.
109*e5436536SAndroid Build Coastguard Worker */
110*e5436536SAndroid Build Coastguard Worker 
111*e5436536SAndroid Build Coastguard Worker #include "sbrenc_rom.h"
112*e5436536SAndroid Build Coastguard Worker #include "genericStds.h"
113*e5436536SAndroid Build Coastguard Worker 
114*e5436536SAndroid Build Coastguard Worker //@{
115*e5436536SAndroid Build Coastguard Worker /*******************************************************************************
116*e5436536SAndroid Build Coastguard Worker 
117*e5436536SAndroid Build Coastguard Worker    Table Overview:
118*e5436536SAndroid Build Coastguard Worker 
119*e5436536SAndroid Build Coastguard Worker  o envelope level,   1.5 dB:
120*e5436536SAndroid Build Coastguard Worker     1a)  v_Huff_envelopeLevelC10T[121]
121*e5436536SAndroid Build Coastguard Worker     1b)  v_Huff_envelopeLevelL10T[121]
122*e5436536SAndroid Build Coastguard Worker     2a)  v_Huff_envelopeLevelC10F[121]
123*e5436536SAndroid Build Coastguard Worker     2b)  v_Huff_envelopeLevelL10F[121]
124*e5436536SAndroid Build Coastguard Worker 
125*e5436536SAndroid Build Coastguard Worker  o envelope balance, 1.5 dB:
126*e5436536SAndroid Build Coastguard Worker     3a)  bookSbrEnvBalanceC10T[49]
127*e5436536SAndroid Build Coastguard Worker     3b)  bookSbrEnvBalanceL10T[49]
128*e5436536SAndroid Build Coastguard Worker     4a)  bookSbrEnvBalanceC10F[49]
129*e5436536SAndroid Build Coastguard Worker     4b)  bookSbrEnvBalanceL10F[49]
130*e5436536SAndroid Build Coastguard Worker 
131*e5436536SAndroid Build Coastguard Worker  o envelope level,   3.0 dB:
132*e5436536SAndroid Build Coastguard Worker     5a)  v_Huff_envelopeLevelC11T[63]
133*e5436536SAndroid Build Coastguard Worker     5b)  v_Huff_envelopeLevelL11T[63]
134*e5436536SAndroid Build Coastguard Worker     6a)  v_Huff_envelopeLevelC11F[63]
135*e5436536SAndroid Build Coastguard Worker     6b)  v_Huff_envelopeLevelC11F[63]
136*e5436536SAndroid Build Coastguard Worker 
137*e5436536SAndroid Build Coastguard Worker  o envelope balance, 3.0 dB:
138*e5436536SAndroid Build Coastguard Worker     7a)  bookSbrEnvBalanceC11T[25]
139*e5436536SAndroid Build Coastguard Worker     7b)  bookSbrEnvBalanceL11T[25]
140*e5436536SAndroid Build Coastguard Worker     8a)  bookSbrEnvBalanceC11F[25]
141*e5436536SAndroid Build Coastguard Worker     8b)  bookSbrEnvBalanceL11F[25]
142*e5436536SAndroid Build Coastguard Worker 
143*e5436536SAndroid Build Coastguard Worker  o noise level,      3.0 dB:
144*e5436536SAndroid Build Coastguard Worker     9a)  v_Huff_NoiseLevelC11T[63]
145*e5436536SAndroid Build Coastguard Worker     9b)  v_Huff_NoiseLevelL11T[63]
146*e5436536SAndroid Build Coastguard Worker     - ) (v_Huff_envelopeLevelC11F[63] is used for freq dir)
147*e5436536SAndroid Build Coastguard Worker     - ) (v_Huff_envelopeLevelL11F[63] is used for freq dir)
148*e5436536SAndroid Build Coastguard Worker 
149*e5436536SAndroid Build Coastguard Worker  o noise balance,    3.0 dB:
150*e5436536SAndroid Build Coastguard Worker    10a)  bookSbrNoiseBalanceC11T[25]
151*e5436536SAndroid Build Coastguard Worker    10b)  bookSbrNoiseBalanceL11T[25]
152*e5436536SAndroid Build Coastguard Worker     - ) (bookSbrEnvBalanceC11F[25] is used for freq dir)
153*e5436536SAndroid Build Coastguard Worker     - ) (bookSbrEnvBalanceL11F[25] is used for freq dir)
154*e5436536SAndroid Build Coastguard Worker 
155*e5436536SAndroid Build Coastguard Worker 
156*e5436536SAndroid Build Coastguard Worker   (1.5 dB is never used for noise)
157*e5436536SAndroid Build Coastguard Worker 
158*e5436536SAndroid Build Coastguard Worker ********************************************************************************/
159*e5436536SAndroid Build Coastguard Worker 
160*e5436536SAndroid Build Coastguard Worker /*******************************************************************************/
161*e5436536SAndroid Build Coastguard Worker /* table       : envelope level, 1.5 dB */
162*e5436536SAndroid Build Coastguard Worker /* theor range : [-58,58], CODE_BOOK_SCF_LAV   = 58 */
163*e5436536SAndroid Build Coastguard Worker /* implem range: [-60,60], CODE_BOOK_SCF_LAV10 = 60 */
164*e5436536SAndroid Build Coastguard Worker /* raw stats   : envelopeLevel_00 (yes, wrong suffix in name)  KK 01-03-09 */
165*e5436536SAndroid Build Coastguard Worker /*******************************************************************************/
166*e5436536SAndroid Build Coastguard Worker 
167*e5436536SAndroid Build Coastguard Worker /* direction: time
168*e5436536SAndroid Build Coastguard Worker    contents : codewords
169*e5436536SAndroid Build Coastguard Worker    raw table: HuffCode3C2FIX.m/envelopeLevel_00T_cF.mat/v_nChex_cF
170*e5436536SAndroid Build Coastguard Worker    built by : FH 01-07-05 */
171*e5436536SAndroid Build Coastguard Worker 
172*e5436536SAndroid Build Coastguard Worker const INT v_Huff_envelopeLevelC10T[121] = {
173*e5436536SAndroid Build Coastguard Worker     0x0003FFD6, 0x0003FFD7, 0x0003FFD8, 0x0003FFD9, 0x0003FFDA, 0x0003FFDB,
174*e5436536SAndroid Build Coastguard Worker     0x0007FFB8, 0x0007FFB9, 0x0007FFBA, 0x0007FFBB, 0x0007FFBC, 0x0007FFBD,
175*e5436536SAndroid Build Coastguard Worker     0x0007FFBE, 0x0007FFBF, 0x0007FFC0, 0x0007FFC1, 0x0007FFC2, 0x0007FFC3,
176*e5436536SAndroid Build Coastguard Worker     0x0007FFC4, 0x0007FFC5, 0x0007FFC6, 0x0007FFC7, 0x0007FFC8, 0x0007FFC9,
177*e5436536SAndroid Build Coastguard Worker     0x0007FFCA, 0x0007FFCB, 0x0007FFCC, 0x0007FFCD, 0x0007FFCE, 0x0007FFCF,
178*e5436536SAndroid Build Coastguard Worker     0x0007FFD0, 0x0007FFD1, 0x0007FFD2, 0x0007FFD3, 0x0001FFE6, 0x0003FFD4,
179*e5436536SAndroid Build Coastguard Worker     0x0000FFF0, 0x0001FFE9, 0x0003FFD5, 0x0001FFE7, 0x0000FFF1, 0x0000FFEC,
180*e5436536SAndroid Build Coastguard Worker     0x0000FFED, 0x0000FFEE, 0x00007FF4, 0x00003FF9, 0x00003FF7, 0x00001FFA,
181*e5436536SAndroid Build Coastguard Worker     0x00001FF9, 0x00000FFB, 0x000007FC, 0x000003FC, 0x000001FD, 0x000000FD,
182*e5436536SAndroid Build Coastguard Worker     0x0000007D, 0x0000003D, 0x0000001D, 0x0000000D, 0x00000005, 0x00000001,
183*e5436536SAndroid Build Coastguard Worker     0x00000000, 0x00000004, 0x0000000C, 0x0000001C, 0x0000003C, 0x0000007C,
184*e5436536SAndroid Build Coastguard Worker     0x000000FC, 0x000001FC, 0x000003FD, 0x00000FFA, 0x00001FF8, 0x00003FF6,
185*e5436536SAndroid Build Coastguard Worker     0x00003FF8, 0x00007FF5, 0x0000FFEF, 0x0001FFE8, 0x0000FFF2, 0x0007FFD4,
186*e5436536SAndroid Build Coastguard Worker     0x0007FFD5, 0x0007FFD6, 0x0007FFD7, 0x0007FFD8, 0x0007FFD9, 0x0007FFDA,
187*e5436536SAndroid Build Coastguard Worker     0x0007FFDB, 0x0007FFDC, 0x0007FFDD, 0x0007FFDE, 0x0007FFDF, 0x0007FFE0,
188*e5436536SAndroid Build Coastguard Worker     0x0007FFE1, 0x0007FFE2, 0x0007FFE3, 0x0007FFE4, 0x0007FFE5, 0x0007FFE6,
189*e5436536SAndroid Build Coastguard Worker     0x0007FFE7, 0x0007FFE8, 0x0007FFE9, 0x0007FFEA, 0x0007FFEB, 0x0007FFEC,
190*e5436536SAndroid Build Coastguard Worker     0x0007FFED, 0x0007FFEE, 0x0007FFEF, 0x0007FFF0, 0x0007FFF1, 0x0007FFF2,
191*e5436536SAndroid Build Coastguard Worker     0x0007FFF3, 0x0007FFF4, 0x0007FFF5, 0x0007FFF6, 0x0007FFF7, 0x0007FFF8,
192*e5436536SAndroid Build Coastguard Worker     0x0007FFF9, 0x0007FFFA, 0x0007FFFB, 0x0007FFFC, 0x0007FFFD, 0x0007FFFE,
193*e5436536SAndroid Build Coastguard Worker     0x0007FFFF};
194*e5436536SAndroid Build Coastguard Worker 
195*e5436536SAndroid Build Coastguard Worker /* direction: time
196*e5436536SAndroid Build Coastguard Worker    contents : codeword lengths
197*e5436536SAndroid Build Coastguard Worker    raw table: HuffCode3C2FIX.m/envelopeLevel_00T_cF.mat/v_nLhex_cF
198*e5436536SAndroid Build Coastguard Worker    built by : FH 01-07-05 */
199*e5436536SAndroid Build Coastguard Worker 
200*e5436536SAndroid Build Coastguard Worker const UCHAR v_Huff_envelopeLevelL10T[121] = {
201*e5436536SAndroid Build Coastguard Worker     0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x13, 0x13, 0x13, 0x13, 0x13,
202*e5436536SAndroid Build Coastguard Worker     0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13,
203*e5436536SAndroid Build Coastguard Worker     0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13,
204*e5436536SAndroid Build Coastguard Worker     0x13, 0x11, 0x12, 0x10, 0x11, 0x12, 0x11, 0x10, 0x10, 0x10, 0x10,
205*e5436536SAndroid Build Coastguard Worker     0x0F, 0x0E, 0x0E, 0x0D, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07,
206*e5436536SAndroid Build Coastguard Worker     0x06, 0x05, 0x04, 0x03, 0x02, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
207*e5436536SAndroid Build Coastguard Worker     0x08, 0x09, 0x0A, 0x0C, 0x0D, 0x0E, 0x0E, 0x0F, 0x10, 0x11, 0x10,
208*e5436536SAndroid Build Coastguard Worker     0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13,
209*e5436536SAndroid Build Coastguard Worker     0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13,
210*e5436536SAndroid Build Coastguard Worker     0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13,
211*e5436536SAndroid Build Coastguard Worker     0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13};
212*e5436536SAndroid Build Coastguard Worker 
213*e5436536SAndroid Build Coastguard Worker /* direction: freq
214*e5436536SAndroid Build Coastguard Worker    contents : codewords
215*e5436536SAndroid Build Coastguard Worker    raw table: HuffCode3C2FIX.m/envelopeLevel_00F_cF.mat/v_nChex_cF
216*e5436536SAndroid Build Coastguard Worker    built by : FH 01-07-05 */
217*e5436536SAndroid Build Coastguard Worker 
218*e5436536SAndroid Build Coastguard Worker const INT v_Huff_envelopeLevelC10F[121] = {
219*e5436536SAndroid Build Coastguard Worker     0x0007FFE7, 0x0007FFE8, 0x000FFFD2, 0x000FFFD3, 0x000FFFD4, 0x000FFFD5,
220*e5436536SAndroid Build Coastguard Worker     0x000FFFD6, 0x000FFFD7, 0x000FFFD8, 0x0007FFDA, 0x000FFFD9, 0x000FFFDA,
221*e5436536SAndroid Build Coastguard Worker     0x000FFFDB, 0x000FFFDC, 0x0007FFDB, 0x000FFFDD, 0x0007FFDC, 0x0007FFDD,
222*e5436536SAndroid Build Coastguard Worker     0x000FFFDE, 0x0003FFE4, 0x000FFFDF, 0x000FFFE0, 0x000FFFE1, 0x0007FFDE,
223*e5436536SAndroid Build Coastguard Worker     0x000FFFE2, 0x000FFFE3, 0x000FFFE4, 0x0007FFDF, 0x000FFFE5, 0x0007FFE0,
224*e5436536SAndroid Build Coastguard Worker     0x0003FFE8, 0x0007FFE1, 0x0003FFE0, 0x0003FFE9, 0x0001FFEF, 0x0003FFE5,
225*e5436536SAndroid Build Coastguard Worker     0x0001FFEC, 0x0001FFED, 0x0001FFEE, 0x0000FFF4, 0x0000FFF3, 0x0000FFF0,
226*e5436536SAndroid Build Coastguard Worker     0x00007FF7, 0x00007FF6, 0x00003FFA, 0x00001FFA, 0x00001FF9, 0x00000FFA,
227*e5436536SAndroid Build Coastguard Worker     0x00000FF8, 0x000007F9, 0x000003FB, 0x000001FC, 0x000001FA, 0x000000FB,
228*e5436536SAndroid Build Coastguard Worker     0x0000007C, 0x0000003C, 0x0000001C, 0x0000000C, 0x00000005, 0x00000001,
229*e5436536SAndroid Build Coastguard Worker     0x00000000, 0x00000004, 0x0000000D, 0x0000001D, 0x0000003D, 0x000000FA,
230*e5436536SAndroid Build Coastguard Worker     0x000000FC, 0x000001FB, 0x000003FA, 0x000007F8, 0x000007FA, 0x000007FB,
231*e5436536SAndroid Build Coastguard Worker     0x00000FF9, 0x00000FFB, 0x00001FF8, 0x00001FFB, 0x00003FF8, 0x00003FF9,
232*e5436536SAndroid Build Coastguard Worker     0x0000FFF1, 0x0000FFF2, 0x0001FFEA, 0x0001FFEB, 0x0003FFE1, 0x0003FFE2,
233*e5436536SAndroid Build Coastguard Worker     0x0003FFEA, 0x0003FFE3, 0x0003FFE6, 0x0003FFE7, 0x0003FFEB, 0x000FFFE6,
234*e5436536SAndroid Build Coastguard Worker     0x0007FFE2, 0x000FFFE7, 0x000FFFE8, 0x000FFFE9, 0x000FFFEA, 0x000FFFEB,
235*e5436536SAndroid Build Coastguard Worker     0x000FFFEC, 0x0007FFE3, 0x000FFFED, 0x000FFFEE, 0x000FFFEF, 0x000FFFF0,
236*e5436536SAndroid Build Coastguard Worker     0x0007FFE4, 0x000FFFF1, 0x0003FFEC, 0x000FFFF2, 0x000FFFF3, 0x0007FFE5,
237*e5436536SAndroid Build Coastguard Worker     0x0007FFE6, 0x000FFFF4, 0x000FFFF5, 0x000FFFF6, 0x000FFFF7, 0x000FFFF8,
238*e5436536SAndroid Build Coastguard Worker     0x000FFFF9, 0x000FFFFA, 0x000FFFFB, 0x000FFFFC, 0x000FFFFD, 0x000FFFFE,
239*e5436536SAndroid Build Coastguard Worker     0x000FFFFF};
240*e5436536SAndroid Build Coastguard Worker 
241*e5436536SAndroid Build Coastguard Worker /* direction: freq
242*e5436536SAndroid Build Coastguard Worker    contents : codeword lengths
243*e5436536SAndroid Build Coastguard Worker    raw table: HuffCode3C2FIX.m/envelopeLevel_00F_cF.mat/v_nLhex_cF
244*e5436536SAndroid Build Coastguard Worker    built by : FH 01-07-05 */
245*e5436536SAndroid Build Coastguard Worker 
246*e5436536SAndroid Build Coastguard Worker const UCHAR v_Huff_envelopeLevelL10F[121] = {
247*e5436536SAndroid Build Coastguard Worker     0x13, 0x13, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x13, 0x14,
248*e5436536SAndroid Build Coastguard Worker     0x14, 0x14, 0x14, 0x13, 0x14, 0x13, 0x13, 0x14, 0x12, 0x14, 0x14,
249*e5436536SAndroid Build Coastguard Worker     0x14, 0x13, 0x14, 0x14, 0x14, 0x13, 0x14, 0x13, 0x12, 0x13, 0x12,
250*e5436536SAndroid Build Coastguard Worker     0x12, 0x11, 0x12, 0x11, 0x11, 0x11, 0x10, 0x10, 0x10, 0x0F, 0x0F,
251*e5436536SAndroid Build Coastguard Worker     0x0E, 0x0D, 0x0D, 0x0C, 0x0C, 0x0B, 0x0A, 0x09, 0x09, 0x08, 0x07,
252*e5436536SAndroid Build Coastguard Worker     0x06, 0x05, 0x04, 0x03, 0x02, 0x02, 0x03, 0x04, 0x05, 0x06, 0x08,
253*e5436536SAndroid Build Coastguard Worker     0x08, 0x09, 0x0A, 0x0B, 0x0B, 0x0B, 0x0C, 0x0C, 0x0D, 0x0D, 0x0E,
254*e5436536SAndroid Build Coastguard Worker     0x0E, 0x10, 0x10, 0x11, 0x11, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12,
255*e5436536SAndroid Build Coastguard Worker     0x12, 0x14, 0x13, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x13, 0x14,
256*e5436536SAndroid Build Coastguard Worker     0x14, 0x14, 0x14, 0x13, 0x14, 0x12, 0x14, 0x14, 0x13, 0x13, 0x14,
257*e5436536SAndroid Build Coastguard Worker     0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14};
258*e5436536SAndroid Build Coastguard Worker 
259*e5436536SAndroid Build Coastguard Worker /*******************************************************************************/
260*e5436536SAndroid Build Coastguard Worker /* table       : envelope balance, 1.5 dB */
261*e5436536SAndroid Build Coastguard Worker /* theor range : [-48,48], CODE_BOOK_SCF_LAV = 48 */
262*e5436536SAndroid Build Coastguard Worker /* implem range: same but mapped to [-24,24], CODE_BOOK_SCF_LAV_BALANCE10 = 24
263*e5436536SAndroid Build Coastguard Worker  */
264*e5436536SAndroid Build Coastguard Worker /* raw stats   : envelopePan_00 (yes, wrong suffix in name)  KK 01-03-09 */
265*e5436536SAndroid Build Coastguard Worker /*******************************************************************************/
266*e5436536SAndroid Build Coastguard Worker 
267*e5436536SAndroid Build Coastguard Worker /* direction: time
268*e5436536SAndroid Build Coastguard Worker    contents : codewords
269*e5436536SAndroid Build Coastguard Worker    raw table: HuffCode3C.m/envelopePan_00T.mat/v_nBhex
270*e5436536SAndroid Build Coastguard Worker    built by : FH 01-05-15 */
271*e5436536SAndroid Build Coastguard Worker 
272*e5436536SAndroid Build Coastguard Worker const INT bookSbrEnvBalanceC10T[49] = {
273*e5436536SAndroid Build Coastguard Worker     0x0000FFE4, 0x0000FFE5, 0x0000FFE6, 0x0000FFE7, 0x0000FFE8, 0x0000FFE9,
274*e5436536SAndroid Build Coastguard Worker     0x0000FFEA, 0x0000FFEB, 0x0000FFEC, 0x0000FFED, 0x0000FFEE, 0x0000FFEF,
275*e5436536SAndroid Build Coastguard Worker     0x0000FFF0, 0x0000FFF1, 0x0000FFF2, 0x0000FFF3, 0x0000FFF4, 0x0000FFE2,
276*e5436536SAndroid Build Coastguard Worker     0x00000FFC, 0x000007FC, 0x000001FE, 0x0000007E, 0x0000001E, 0x00000006,
277*e5436536SAndroid Build Coastguard Worker     0x00000000, 0x00000002, 0x0000000E, 0x0000003E, 0x000000FE, 0x000007FD,
278*e5436536SAndroid Build Coastguard Worker     0x00000FFD, 0x00007FF0, 0x0000FFE3, 0x0000FFF5, 0x0000FFF6, 0x0000FFF7,
279*e5436536SAndroid Build Coastguard Worker     0x0000FFF8, 0x0000FFF9, 0x0000FFFA, 0x0001FFF6, 0x0001FFF7, 0x0001FFF8,
280*e5436536SAndroid Build Coastguard Worker     0x0001FFF9, 0x0001FFFA, 0x0001FFFB, 0x0001FFFC, 0x0001FFFD, 0x0001FFFE,
281*e5436536SAndroid Build Coastguard Worker     0x0001FFFF};
282*e5436536SAndroid Build Coastguard Worker 
283*e5436536SAndroid Build Coastguard Worker /* direction: time
284*e5436536SAndroid Build Coastguard Worker    contents : codeword lengths
285*e5436536SAndroid Build Coastguard Worker    raw table: HuffCode3C.m/envelopePan_00T.mat/v_nLhex
286*e5436536SAndroid Build Coastguard Worker    built by : FH 01-05-15 */
287*e5436536SAndroid Build Coastguard Worker 
288*e5436536SAndroid Build Coastguard Worker const UCHAR bookSbrEnvBalanceL10T[49] = {
289*e5436536SAndroid Build Coastguard Worker     0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
290*e5436536SAndroid Build Coastguard Worker     0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0C, 0x0B,
291*e5436536SAndroid Build Coastguard Worker     0x09, 0x07, 0x05, 0x03, 0x01, 0x02, 0x04, 0x06, 0x08, 0x0B,
292*e5436536SAndroid Build Coastguard Worker     0x0C, 0x0F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x11,
293*e5436536SAndroid Build Coastguard Worker     0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11};
294*e5436536SAndroid Build Coastguard Worker 
295*e5436536SAndroid Build Coastguard Worker /* direction: freq
296*e5436536SAndroid Build Coastguard Worker    contents : codewords
297*e5436536SAndroid Build Coastguard Worker    raw table: HuffCode3C.m/envelopePan_00F.mat/v_nBhex
298*e5436536SAndroid Build Coastguard Worker    built by : FH 01-05-15 */
299*e5436536SAndroid Build Coastguard Worker 
300*e5436536SAndroid Build Coastguard Worker const INT bookSbrEnvBalanceC10F[49] = {
301*e5436536SAndroid Build Coastguard Worker     0x0003FFE2, 0x0003FFE3, 0x0003FFE4, 0x0003FFE5, 0x0003FFE6, 0x0003FFE7,
302*e5436536SAndroid Build Coastguard Worker     0x0003FFE8, 0x0003FFE9, 0x0003FFEA, 0x0003FFEB, 0x0003FFEC, 0x0003FFED,
303*e5436536SAndroid Build Coastguard Worker     0x0003FFEE, 0x0003FFEF, 0x0003FFF0, 0x0000FFF7, 0x0001FFF0, 0x00003FFC,
304*e5436536SAndroid Build Coastguard Worker     0x000007FE, 0x000007FC, 0x000000FE, 0x0000007E, 0x0000000E, 0x00000002,
305*e5436536SAndroid Build Coastguard Worker     0x00000000, 0x00000006, 0x0000001E, 0x0000003E, 0x000001FE, 0x000007FD,
306*e5436536SAndroid Build Coastguard Worker     0x00000FFE, 0x00007FFA, 0x0000FFF6, 0x0003FFF1, 0x0003FFF2, 0x0003FFF3,
307*e5436536SAndroid Build Coastguard Worker     0x0003FFF4, 0x0003FFF5, 0x0003FFF6, 0x0003FFF7, 0x0003FFF8, 0x0003FFF9,
308*e5436536SAndroid Build Coastguard Worker     0x0003FFFA, 0x0003FFFB, 0x0003FFFC, 0x0003FFFD, 0x0003FFFE, 0x0007FFFE,
309*e5436536SAndroid Build Coastguard Worker     0x0007FFFF};
310*e5436536SAndroid Build Coastguard Worker 
311*e5436536SAndroid Build Coastguard Worker /* direction: freq
312*e5436536SAndroid Build Coastguard Worker    contents : codeword lengths
313*e5436536SAndroid Build Coastguard Worker    raw table: HuffCode3C.m/envelopePan_00F.mat/v_nLhex
314*e5436536SAndroid Build Coastguard Worker    built by : FH 01-05-15 */
315*e5436536SAndroid Build Coastguard Worker 
316*e5436536SAndroid Build Coastguard Worker const UCHAR bookSbrEnvBalanceL10F[49] = {
317*e5436536SAndroid Build Coastguard Worker     0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12,
318*e5436536SAndroid Build Coastguard Worker     0x12, 0x12, 0x12, 0x12, 0x12, 0x10, 0x11, 0x0E, 0x0B, 0x0B,
319*e5436536SAndroid Build Coastguard Worker     0x08, 0x07, 0x04, 0x02, 0x01, 0x03, 0x05, 0x06, 0x09, 0x0B,
320*e5436536SAndroid Build Coastguard Worker     0x0C, 0x0F, 0x10, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12,
321*e5436536SAndroid Build Coastguard Worker     0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x13, 0x13};
322*e5436536SAndroid Build Coastguard Worker 
323*e5436536SAndroid Build Coastguard Worker /*******************************************************************************/
324*e5436536SAndroid Build Coastguard Worker /* table       : envelope level, 3.0 dB */
325*e5436536SAndroid Build Coastguard Worker /* theor range : [-29,29], CODE_BOOK_SCF_LAV   = 29 */
326*e5436536SAndroid Build Coastguard Worker /* implem range: [-31,31], CODE_BOOK_SCF_LAV11 = 31 */
327*e5436536SAndroid Build Coastguard Worker /* raw stats   : envelopeLevel_11  KK 00-02-03 */
328*e5436536SAndroid Build Coastguard Worker /*******************************************************************************/
329*e5436536SAndroid Build Coastguard Worker 
330*e5436536SAndroid Build Coastguard Worker /* direction: time
331*e5436536SAndroid Build Coastguard Worker    contents : codewords
332*e5436536SAndroid Build Coastguard Worker    raw table: HuffCode2.m
333*e5436536SAndroid Build Coastguard Worker    built by : FH 00-02-04 */
334*e5436536SAndroid Build Coastguard Worker 
335*e5436536SAndroid Build Coastguard Worker const INT v_Huff_envelopeLevelC11T[63] = {
336*e5436536SAndroid Build Coastguard Worker     0x0003FFED, 0x0003FFEE, 0x0007FFDE, 0x0007FFDF, 0x0007FFE0, 0x0007FFE1,
337*e5436536SAndroid Build Coastguard Worker     0x0007FFE2, 0x0007FFE3, 0x0007FFE4, 0x0007FFE5, 0x0007FFE6, 0x0007FFE7,
338*e5436536SAndroid Build Coastguard Worker     0x0007FFE8, 0x0007FFE9, 0x0007FFEA, 0x0007FFEB, 0x0007FFEC, 0x0001FFF4,
339*e5436536SAndroid Build Coastguard Worker     0x0000FFF7, 0x0000FFF9, 0x0000FFF8, 0x00003FFB, 0x00003FFA, 0x00003FF8,
340*e5436536SAndroid Build Coastguard Worker     0x00001FFA, 0x00000FFC, 0x000007FC, 0x000000FE, 0x0000003E, 0x0000000E,
341*e5436536SAndroid Build Coastguard Worker     0x00000002, 0x00000000, 0x00000006, 0x0000001E, 0x0000007E, 0x000001FE,
342*e5436536SAndroid Build Coastguard Worker     0x000007FD, 0x00001FFB, 0x00003FF9, 0x00003FFC, 0x00007FFA, 0x0000FFF6,
343*e5436536SAndroid Build Coastguard Worker     0x0001FFF5, 0x0003FFEC, 0x0007FFED, 0x0007FFEE, 0x0007FFEF, 0x0007FFF0,
344*e5436536SAndroid Build Coastguard Worker     0x0007FFF1, 0x0007FFF2, 0x0007FFF3, 0x0007FFF4, 0x0007FFF5, 0x0007FFF6,
345*e5436536SAndroid Build Coastguard Worker     0x0007FFF7, 0x0007FFF8, 0x0007FFF9, 0x0007FFFA, 0x0007FFFB, 0x0007FFFC,
346*e5436536SAndroid Build Coastguard Worker     0x0007FFFD, 0x0007FFFE, 0x0007FFFF};
347*e5436536SAndroid Build Coastguard Worker 
348*e5436536SAndroid Build Coastguard Worker /* direction: time
349*e5436536SAndroid Build Coastguard Worker    contents : codeword lengths
350*e5436536SAndroid Build Coastguard Worker    raw table: HuffCode2.m
351*e5436536SAndroid Build Coastguard Worker    built by : FH 00-02-04 */
352*e5436536SAndroid Build Coastguard Worker 
353*e5436536SAndroid Build Coastguard Worker const UCHAR v_Huff_envelopeLevelL11T[63] = {
354*e5436536SAndroid Build Coastguard Worker     0x12, 0x12, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13,
355*e5436536SAndroid Build Coastguard Worker     0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x11, 0x10, 0x10, 0x10, 0x0E,
356*e5436536SAndroid Build Coastguard Worker     0x0E, 0x0E, 0x0D, 0x0C, 0x0B, 0x08, 0x06, 0x04, 0x02, 0x01, 0x03,
357*e5436536SAndroid Build Coastguard Worker     0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0E, 0x0E, 0x0F, 0x10, 0x11, 0x12,
358*e5436536SAndroid Build Coastguard Worker     0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13,
359*e5436536SAndroid Build Coastguard Worker     0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13};
360*e5436536SAndroid Build Coastguard Worker 
361*e5436536SAndroid Build Coastguard Worker /* direction: freq
362*e5436536SAndroid Build Coastguard Worker    contents : codewords
363*e5436536SAndroid Build Coastguard Worker    raw table: HuffCode2.m
364*e5436536SAndroid Build Coastguard Worker    built by : FH 00-02-04 */
365*e5436536SAndroid Build Coastguard Worker 
366*e5436536SAndroid Build Coastguard Worker const INT v_Huff_envelopeLevelC11F[63] = {
367*e5436536SAndroid Build Coastguard Worker     0x000FFFF0, 0x000FFFF1, 0x000FFFF2, 0x000FFFF3, 0x000FFFF4, 0x000FFFF5,
368*e5436536SAndroid Build Coastguard Worker     0x000FFFF6, 0x0003FFF3, 0x0007FFF5, 0x0007FFEE, 0x0007FFEF, 0x0007FFF6,
369*e5436536SAndroid Build Coastguard Worker     0x0003FFF4, 0x0003FFF2, 0x000FFFF7, 0x0007FFF0, 0x0001FFF5, 0x0003FFF0,
370*e5436536SAndroid Build Coastguard Worker     0x0001FFF4, 0x0000FFF7, 0x0000FFF6, 0x00007FF8, 0x00003FFB, 0x00000FFD,
371*e5436536SAndroid Build Coastguard Worker     0x000007FD, 0x000003FD, 0x000001FD, 0x000000FD, 0x0000003E, 0x0000000E,
372*e5436536SAndroid Build Coastguard Worker     0x00000002, 0x00000000, 0x00000006, 0x0000001E, 0x000000FC, 0x000001FC,
373*e5436536SAndroid Build Coastguard Worker     0x000003FC, 0x000007FC, 0x00000FFC, 0x00001FFC, 0x00003FFA, 0x00007FF9,
374*e5436536SAndroid Build Coastguard Worker     0x00007FFA, 0x0000FFF8, 0x0000FFF9, 0x0001FFF6, 0x0001FFF7, 0x0003FFF5,
375*e5436536SAndroid Build Coastguard Worker     0x0003FFF6, 0x0003FFF1, 0x000FFFF8, 0x0007FFF1, 0x0007FFF2, 0x0007FFF3,
376*e5436536SAndroid Build Coastguard Worker     0x000FFFF9, 0x0007FFF7, 0x0007FFF4, 0x000FFFFA, 0x000FFFFB, 0x000FFFFC,
377*e5436536SAndroid Build Coastguard Worker     0x000FFFFD, 0x000FFFFE, 0x000FFFFF};
378*e5436536SAndroid Build Coastguard Worker 
379*e5436536SAndroid Build Coastguard Worker /* direction: freq
380*e5436536SAndroid Build Coastguard Worker    contents : codeword lengths
381*e5436536SAndroid Build Coastguard Worker    raw table: HuffCode2.m
382*e5436536SAndroid Build Coastguard Worker    built by : FH 00-02-04 */
383*e5436536SAndroid Build Coastguard Worker 
384*e5436536SAndroid Build Coastguard Worker const UCHAR v_Huff_envelopeLevelL11F[63] = {
385*e5436536SAndroid Build Coastguard Worker     0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x12, 0x13, 0x13, 0x13,
386*e5436536SAndroid Build Coastguard Worker     0x13, 0x12, 0x12, 0x14, 0x13, 0x11, 0x12, 0x11, 0x10, 0x10, 0x0F,
387*e5436536SAndroid Build Coastguard Worker     0x0E, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x06, 0x04, 0x02, 0x01, 0x03,
388*e5436536SAndroid Build Coastguard Worker     0x05, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x0F, 0x10,
389*e5436536SAndroid Build Coastguard Worker     0x10, 0x11, 0x11, 0x12, 0x12, 0x12, 0x14, 0x13, 0x13, 0x13, 0x14,
390*e5436536SAndroid Build Coastguard Worker     0x13, 0x13, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14};
391*e5436536SAndroid Build Coastguard Worker 
392*e5436536SAndroid Build Coastguard Worker /*******************************************************************************/
393*e5436536SAndroid Build Coastguard Worker /* table       : envelope balance, 3.0 dB */
394*e5436536SAndroid Build Coastguard Worker /* theor range : [-24,24], CODE_BOOK_SCF_LAV = 24 */
395*e5436536SAndroid Build Coastguard Worker /* implem range: same but mapped to [-12,12], CODE_BOOK_SCF_LAV_BALANCE11 = 12
396*e5436536SAndroid Build Coastguard Worker  */
397*e5436536SAndroid Build Coastguard Worker /* raw stats   : envelopeBalance_11  KK 00-02-03 */
398*e5436536SAndroid Build Coastguard Worker /*******************************************************************************/
399*e5436536SAndroid Build Coastguard Worker 
400*e5436536SAndroid Build Coastguard Worker /* direction: time
401*e5436536SAndroid Build Coastguard Worker    contents : codewords
402*e5436536SAndroid Build Coastguard Worker    raw table: HuffCode3C.m/envelopeBalance_11T.mat/v_nBhex
403*e5436536SAndroid Build Coastguard Worker    built by : FH 01-05-15 */
404*e5436536SAndroid Build Coastguard Worker 
405*e5436536SAndroid Build Coastguard Worker const INT bookSbrEnvBalanceC11T[25] = {
406*e5436536SAndroid Build Coastguard Worker     0x00001FF2, 0x00001FF3, 0x00001FF4, 0x00001FF5, 0x00001FF6,
407*e5436536SAndroid Build Coastguard Worker     0x00001FF7, 0x00001FF8, 0x00000FF8, 0x000000FE, 0x0000007E,
408*e5436536SAndroid Build Coastguard Worker     0x0000000E, 0x00000006, 0x00000000, 0x00000002, 0x0000001E,
409*e5436536SAndroid Build Coastguard Worker     0x0000003E, 0x000001FE, 0x00001FF9, 0x00001FFA, 0x00001FFB,
410*e5436536SAndroid Build Coastguard Worker     0x00001FFC, 0x00001FFD, 0x00001FFE, 0x00003FFE, 0x00003FFF};
411*e5436536SAndroid Build Coastguard Worker 
412*e5436536SAndroid Build Coastguard Worker /* direction: time
413*e5436536SAndroid Build Coastguard Worker    contents : codeword lengths
414*e5436536SAndroid Build Coastguard Worker    raw table: HuffCode3C.m/envelopeBalance_11T.mat/v_nLhex
415*e5436536SAndroid Build Coastguard Worker    built by : FH 01-05-15 */
416*e5436536SAndroid Build Coastguard Worker 
417*e5436536SAndroid Build Coastguard Worker const UCHAR bookSbrEnvBalanceL11T[25] = {
418*e5436536SAndroid Build Coastguard Worker     0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0C, 0x08,
419*e5436536SAndroid Build Coastguard Worker     0x07, 0x04, 0x03, 0x01, 0x02, 0x05, 0x06, 0x09, 0x0D,
420*e5436536SAndroid Build Coastguard Worker     0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0E, 0x0E};
421*e5436536SAndroid Build Coastguard Worker 
422*e5436536SAndroid Build Coastguard Worker /* direction: freq
423*e5436536SAndroid Build Coastguard Worker    contents : codewords
424*e5436536SAndroid Build Coastguard Worker    raw table: HuffCode3C.m/envelopeBalance_11F.mat/v_nBhex
425*e5436536SAndroid Build Coastguard Worker    built by : FH 01-05-15 */
426*e5436536SAndroid Build Coastguard Worker 
427*e5436536SAndroid Build Coastguard Worker const INT bookSbrEnvBalanceC11F[25] = {
428*e5436536SAndroid Build Coastguard Worker     0x00001FF7, 0x00001FF8, 0x00001FF9, 0x00001FFA, 0x00001FFB,
429*e5436536SAndroid Build Coastguard Worker     0x00003FF8, 0x00003FF9, 0x000007FC, 0x000000FE, 0x0000007E,
430*e5436536SAndroid Build Coastguard Worker     0x0000000E, 0x00000002, 0x00000000, 0x00000006, 0x0000001E,
431*e5436536SAndroid Build Coastguard Worker     0x0000003E, 0x000001FE, 0x00000FFA, 0x00001FF6, 0x00003FFA,
432*e5436536SAndroid Build Coastguard Worker     0x00003FFB, 0x00003FFC, 0x00003FFD, 0x00003FFE, 0x00003FFF};
433*e5436536SAndroid Build Coastguard Worker 
434*e5436536SAndroid Build Coastguard Worker /* direction: freq
435*e5436536SAndroid Build Coastguard Worker    contents : codeword lengths
436*e5436536SAndroid Build Coastguard Worker    raw table: HuffCode3C.m/envelopeBalance_11F.mat/v_nLhex
437*e5436536SAndroid Build Coastguard Worker    built by : FH 01-05-15 */
438*e5436536SAndroid Build Coastguard Worker 
439*e5436536SAndroid Build Coastguard Worker const UCHAR bookSbrEnvBalanceL11F[25] = {
440*e5436536SAndroid Build Coastguard Worker     0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0E, 0x0E, 0x0B, 0x08,
441*e5436536SAndroid Build Coastguard Worker     0x07, 0x04, 0x02, 0x01, 0x03, 0x05, 0x06, 0x09, 0x0C,
442*e5436536SAndroid Build Coastguard Worker     0x0D, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E};
443*e5436536SAndroid Build Coastguard Worker 
444*e5436536SAndroid Build Coastguard Worker /*******************************************************************************/
445*e5436536SAndroid Build Coastguard Worker /* table       : noise level, 3.0 dB */
446*e5436536SAndroid Build Coastguard Worker /* theor range : [-29,29], CODE_BOOK_SCF_LAV   = 29 */
447*e5436536SAndroid Build Coastguard Worker /* implem range: [-31,31], CODE_BOOK_SCF_LAV11 = 31 */
448*e5436536SAndroid Build Coastguard Worker /* raw stats   : noiseLevel_11  KK 00-02-03 */
449*e5436536SAndroid Build Coastguard Worker /*******************************************************************************/
450*e5436536SAndroid Build Coastguard Worker 
451*e5436536SAndroid Build Coastguard Worker /* direction: time
452*e5436536SAndroid Build Coastguard Worker    contents : codewords
453*e5436536SAndroid Build Coastguard Worker    raw table: HuffCode2.m
454*e5436536SAndroid Build Coastguard Worker    built by : FH 00-02-04 */
455*e5436536SAndroid Build Coastguard Worker 
456*e5436536SAndroid Build Coastguard Worker const INT v_Huff_NoiseLevelC11T[63] = {
457*e5436536SAndroid Build Coastguard Worker     0x00001FCE, 0x00001FCF, 0x00001FD0, 0x00001FD1, 0x00001FD2, 0x00001FD3,
458*e5436536SAndroid Build Coastguard Worker     0x00001FD4, 0x00001FD5, 0x00001FD6, 0x00001FD7, 0x00001FD8, 0x00001FD9,
459*e5436536SAndroid Build Coastguard Worker     0x00001FDA, 0x00001FDB, 0x00001FDC, 0x00001FDD, 0x00001FDE, 0x00001FDF,
460*e5436536SAndroid Build Coastguard Worker     0x00001FE0, 0x00001FE1, 0x00001FE2, 0x00001FE3, 0x00001FE4, 0x00001FE5,
461*e5436536SAndroid Build Coastguard Worker     0x00001FE6, 0x00001FE7, 0x000007F2, 0x000000FD, 0x0000003E, 0x0000000E,
462*e5436536SAndroid Build Coastguard Worker     0x00000006, 0x00000000, 0x00000002, 0x0000001E, 0x000000FC, 0x000003F8,
463*e5436536SAndroid Build Coastguard Worker     0x00001FCC, 0x00001FE8, 0x00001FE9, 0x00001FEA, 0x00001FEB, 0x00001FEC,
464*e5436536SAndroid Build Coastguard Worker     0x00001FCD, 0x00001FED, 0x00001FEE, 0x00001FEF, 0x00001FF0, 0x00001FF1,
465*e5436536SAndroid Build Coastguard Worker     0x00001FF2, 0x00001FF3, 0x00001FF4, 0x00001FF5, 0x00001FF6, 0x00001FF7,
466*e5436536SAndroid Build Coastguard Worker     0x00001FF8, 0x00001FF9, 0x00001FFA, 0x00001FFB, 0x00001FFC, 0x00001FFD,
467*e5436536SAndroid Build Coastguard Worker     0x00001FFE, 0x00003FFE, 0x00003FFF};
468*e5436536SAndroid Build Coastguard Worker 
469*e5436536SAndroid Build Coastguard Worker /* direction: time
470*e5436536SAndroid Build Coastguard Worker    contents : codeword lengths
471*e5436536SAndroid Build Coastguard Worker    raw table: HuffCode2.m
472*e5436536SAndroid Build Coastguard Worker    built by : FH 00-02-04 */
473*e5436536SAndroid Build Coastguard Worker 
474*e5436536SAndroid Build Coastguard Worker const UCHAR v_Huff_NoiseLevelL11T[63] = {
475*e5436536SAndroid Build Coastguard Worker     0x0000000D, 0x0000000D, 0x0000000D, 0x0000000D, 0x0000000D, 0x0000000D,
476*e5436536SAndroid Build Coastguard Worker     0x0000000D, 0x0000000D, 0x0000000D, 0x0000000D, 0x0000000D, 0x0000000D,
477*e5436536SAndroid Build Coastguard Worker     0x0000000D, 0x0000000D, 0x0000000D, 0x0000000D, 0x0000000D, 0x0000000D,
478*e5436536SAndroid Build Coastguard Worker     0x0000000D, 0x0000000D, 0x0000000D, 0x0000000D, 0x0000000D, 0x0000000D,
479*e5436536SAndroid Build Coastguard Worker     0x0000000D, 0x0000000D, 0x0000000B, 0x00000008, 0x00000006, 0x00000004,
480*e5436536SAndroid Build Coastguard Worker     0x00000003, 0x00000001, 0x00000002, 0x00000005, 0x00000008, 0x0000000A,
481*e5436536SAndroid Build Coastguard Worker     0x0000000D, 0x0000000D, 0x0000000D, 0x0000000D, 0x0000000D, 0x0000000D,
482*e5436536SAndroid Build Coastguard Worker     0x0000000D, 0x0000000D, 0x0000000D, 0x0000000D, 0x0000000D, 0x0000000D,
483*e5436536SAndroid Build Coastguard Worker     0x0000000D, 0x0000000D, 0x0000000D, 0x0000000D, 0x0000000D, 0x0000000D,
484*e5436536SAndroid Build Coastguard Worker     0x0000000D, 0x0000000D, 0x0000000D, 0x0000000D, 0x0000000D, 0x0000000D,
485*e5436536SAndroid Build Coastguard Worker     0x0000000D, 0x0000000E, 0x0000000E};
486*e5436536SAndroid Build Coastguard Worker 
487*e5436536SAndroid Build Coastguard Worker /*******************************************************************************/
488*e5436536SAndroid Build Coastguard Worker /* table       : noise balance, 3.0 dB */
489*e5436536SAndroid Build Coastguard Worker /* theor range : [-24,24], CODE_BOOK_SCF_LAV = 24 */
490*e5436536SAndroid Build Coastguard Worker /* implem range: same but mapped to [-12,12], CODE_BOOK_SCF_LAV_BALANCE11 = 12
491*e5436536SAndroid Build Coastguard Worker  */
492*e5436536SAndroid Build Coastguard Worker /* raw stats   : noiseBalance_11  KK 00-02-03 */
493*e5436536SAndroid Build Coastguard Worker /*******************************************************************************/
494*e5436536SAndroid Build Coastguard Worker 
495*e5436536SAndroid Build Coastguard Worker /* direction: time
496*e5436536SAndroid Build Coastguard Worker    contents : codewords
497*e5436536SAndroid Build Coastguard Worker    raw table: HuffCode3C.m/noiseBalance_11.mat/v_nBhex
498*e5436536SAndroid Build Coastguard Worker    built by : FH 01-05-15 */
499*e5436536SAndroid Build Coastguard Worker 
500*e5436536SAndroid Build Coastguard Worker const INT bookSbrNoiseBalanceC11T[25] = {
501*e5436536SAndroid Build Coastguard Worker     0x000000EC, 0x000000ED, 0x000000EE, 0x000000EF, 0x000000F0,
502*e5436536SAndroid Build Coastguard Worker     0x000000F1, 0x000000F2, 0x000000F3, 0x000000F4, 0x000000F5,
503*e5436536SAndroid Build Coastguard Worker     0x0000001C, 0x00000002, 0x00000000, 0x00000006, 0x0000003A,
504*e5436536SAndroid Build Coastguard Worker     0x000000F6, 0x000000F7, 0x000000F8, 0x000000F9, 0x000000FA,
505*e5436536SAndroid Build Coastguard Worker     0x000000FB, 0x000000FC, 0x000000FD, 0x000000FE, 0x000000FF};
506*e5436536SAndroid Build Coastguard Worker 
507*e5436536SAndroid Build Coastguard Worker /* direction: time
508*e5436536SAndroid Build Coastguard Worker    contents : codeword lengths
509*e5436536SAndroid Build Coastguard Worker    raw table: HuffCode3C.m/noiseBalance_11.mat/v_nLhex
510*e5436536SAndroid Build Coastguard Worker    built by : FH 01-05-15 */
511*e5436536SAndroid Build Coastguard Worker 
512*e5436536SAndroid Build Coastguard Worker const UCHAR bookSbrNoiseBalanceL11T[25] = {
513*e5436536SAndroid Build Coastguard Worker     0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
514*e5436536SAndroid Build Coastguard Worker     0x08, 0x05, 0x02, 0x01, 0x03, 0x06, 0x08, 0x08, 0x08,
515*e5436536SAndroid Build Coastguard Worker     0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08};
516*e5436536SAndroid Build Coastguard Worker 
517*e5436536SAndroid Build Coastguard Worker /*
518*e5436536SAndroid Build Coastguard Worker    tuningTable
519*e5436536SAndroid Build Coastguard Worker */
520*e5436536SAndroid Build Coastguard Worker const sbrTuningTable_t sbrTuningTable[] = {
521*e5436536SAndroid Build Coastguard Worker     /* Some of the low bitrates are commented out here, this is because the
522*e5436536SAndroid Build Coastguard Worker        encoder could lose frames at those bitrates and throw an error
523*e5436536SAndroid Build Coastguard Worker        because it has insufficient bits to encode for some test items.
524*e5436536SAndroid Build Coastguard Worker     */
525*e5436536SAndroid Build Coastguard Worker 
526*e5436536SAndroid Build Coastguard Worker     /*** HE-AAC section ***/
527*e5436536SAndroid Build Coastguard Worker     /*                        sf,sfsp,sf,sfsp,nnb,nfo,saml,SM,FS*/
528*e5436536SAndroid Build Coastguard Worker 
529*e5436536SAndroid Build Coastguard Worker     /*** mono ***/
530*e5436536SAndroid Build Coastguard Worker 
531*e5436536SAndroid Build Coastguard Worker     /* 8/16 kHz dual rate */
532*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 8000, 10000, 8000, 1, 7, 6, 11, 10, 1, 0, 6, SBR_MONO, 3},
533*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 10000, 12000, 8000, 1, 11, 7, 13, 12, 1, 0, 6, SBR_MONO, 3},
534*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 12000, 16001, 8000, 1, 14, 10, 13, 13, 1, 0, 6, SBR_MONO, 3},
535*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 16000, 24000, 8000, 1, 14, 10, 14, 14, 2, 0, 3, SBR_MONO, 2},
536*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 24000, 32000, 8000, 1, 14, 10, 14, 14, 2, 0, 3, SBR_MONO, 2},
537*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 32000, 48001, 8000, 1, 14, 11, 15, 15, 2, 0, 3, SBR_MONO, 2},
538*e5436536SAndroid Build Coastguard Worker 
539*e5436536SAndroid Build Coastguard Worker     /* 11/22 kHz dual rate */
540*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 8000, 10000, 11025, 1, 5, 4, 6, 6, 1, 0, 6, SBR_MONO, 3},
541*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 10000, 12000, 11025, 1, 8, 5, 12, 9, 1, 0, 6, SBR_MONO, 3},
542*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 12000, 16000, 11025, 1, 12, 8, 13, 8, 1, 0, 6, SBR_MONO, 3},
543*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 16000, 20000, 11025, 1, 12, 8, 13, 8, 1, 0, 6, SBR_MONO, 3},
544*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 20000, 24001, 11025, 1, 13, 9, 13, 8, 1, 0, 6, SBR_MONO, 3},
545*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 24000, 32000, 11025, 1, 14, 10, 14, 9, 2, 0, 3, SBR_MONO, 2},
546*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 32000, 48000, 11025, 1, 15, 11, 15, 10, 2, 0, 3, SBR_MONO, 2},
547*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 48000, 64001, 11025, 1, 15, 11, 15, 10, 2, 0, 3, SBR_MONO, 1},
548*e5436536SAndroid Build Coastguard Worker 
549*e5436536SAndroid Build Coastguard Worker     /* 12/24 kHz dual rate */
550*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 8000, 10000, 12000, 1, 4, 3, 6, 6, 1, 0, 6, SBR_MONO, 3},
551*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 10000, 12000, 12000, 1, 7, 4, 11, 8, 1, 0, 6, SBR_MONO, 3},
552*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 12000, 16000, 12000, 1, 11, 7, 12, 8, 1, 0, 6, SBR_MONO, 3},
553*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 16000, 20000, 12000, 1, 11, 7, 12, 8, 1, 0, 6, SBR_MONO, 3},
554*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 20000, 24001, 12000, 1, 12, 8, 12, 8, 1, 0, 6, SBR_MONO, 3},
555*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 24000, 32000, 12000, 1, 13, 9, 13, 9, 2, 0, 3, SBR_MONO, 2},
556*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 32000, 48000, 12000, 1, 14, 10, 14, 10, 2, 0, 3, SBR_MONO, 2},
557*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 48000, 64001, 12000, 1, 14, 11, 15, 11, 2, 0, 3, SBR_MONO, 1},
558*e5436536SAndroid Build Coastguard Worker 
559*e5436536SAndroid Build Coastguard Worker     /* 16/32 kHz dual rate */
560*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 8000, 10000, 16000, 1, 1, 1, 0, 0, 1, 0, 6, SBR_MONO, 3},
561*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 10000, 12000, 16000, 1, 2, 1, 6, 0, 1, 0, 6, SBR_MONO, 3},
562*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 12000, 16000, 16000, 1, 4, 2, 6, 0, 1, 0, 6, SBR_MONO, 3},
563*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 16000, 18000, 16000, 1, 4, 2, 8, 3, 1, 0, 6, SBR_MONO, 3},
564*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 18000, 22000, 16000, 1, 6, 5, 11, 7, 2, 0, 6, SBR_MONO, 2},
565*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 22000, 28000, 16000, 1, 10, 9, 12, 8, 2, 0, 6, SBR_MONO, 2},
566*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 28000, 36000, 16000, 1, 12, 12, 13, 13, 2, 0, 3, SBR_MONO, 2},
567*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 36000, 44000, 16000, 1, 14, 14, 13, 13, 2, 0, 3, SBR_MONO, 1},
568*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 44000, 64001, 16000, 1, 14, 14, 13, 13, 2, 0, 3, SBR_MONO, 1},
569*e5436536SAndroid Build Coastguard Worker 
570*e5436536SAndroid Build Coastguard Worker     /* 22.05/44.1 kHz dual rate */
571*e5436536SAndroid Build Coastguard Worker     /* { CODEC_AAC,   8000, 11369,  22050, 1,  1, 1, 1, 1,  1, 0, 6,
572*e5436536SAndroid Build Coastguard Worker        SBR_MONO, 3 }, */
573*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 11369, 16000, 22050, 1, 3, 1, 4, 4, 1, 0, 6, SBR_MONO, 3},
574*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 16000, 18000, 22050, 1, 3, 1, 5, 4, 1, 0, 6, SBR_MONO, 3},
575*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 18000, 22000, 22050, 1, 4, 4, 8, 5, 2, 0, 6, SBR_MONO, 2},
576*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 22000, 28000, 22050, 1, 7, 6, 8, 6, 2, 0, 6, SBR_MONO, 2},
577*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 28000, 36000, 22050, 1, 10, 10, 9, 9, 2, 0, 3, SBR_MONO, 2},
578*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 36000, 44000, 22050, 1, 11, 11, 10, 10, 2, 0, 3, SBR_MONO, 1},
579*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 44000, 64001, 22050, 1, 13, 13, 12, 12, 2, 0, 3, SBR_MONO, 1},
580*e5436536SAndroid Build Coastguard Worker 
581*e5436536SAndroid Build Coastguard Worker     /* 24/48 kHz dual rate */
582*e5436536SAndroid Build Coastguard Worker     /* { CODEC_AAC,   8000, 12000,  24000, 1,  1, 1, 1, 1,  1, 0, 6,
583*e5436536SAndroid Build Coastguard Worker        SBR_MONO, 3 }, */
584*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 12000, 16000, 24000, 1, 3, 1, 4, 4, 1, 0, 6, SBR_MONO, 3},
585*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 16000, 18000, 24000, 1, 3, 1, 5, 4, 1, 0, 6, SBR_MONO, 3},
586*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 18000, 22000, 24000, 1, 4, 3, 8, 5, 2, 0, 6, SBR_MONO, 2},
587*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 22000, 28000, 24000, 1, 7, 6, 8, 6, 2, 0, 6, SBR_MONO, 2},
588*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 28000, 36000, 24000, 1, 10, 10, 9, 9, 2, 0, 3, SBR_MONO, 2},
589*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 36000, 44000, 24000, 1, 11, 11, 10, 10, 2, 0, 3, SBR_MONO, 1},
590*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 44000, 64001, 24000, 1, 13, 13, 11, 11, 2, 0, 3, SBR_MONO, 1},
591*e5436536SAndroid Build Coastguard Worker 
592*e5436536SAndroid Build Coastguard Worker     /* 32/64 kHz dual rate */
593*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 24000, 36000, 32000, 1, 4, 4, 4, 4, 2, 0, 3, SBR_MONO, 3},
594*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 36000, 60000, 32000, 1, 7, 7, 6, 6, 2, 0, 3, SBR_MONO, 2},
595*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 60000, 72000, 32000, 1, 9, 9, 8, 8, 2, 0, 3, SBR_MONO, 1},
596*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 72000, 100000, 32000, 1, 11, 11, 10, 10, 2, 0, 3, SBR_MONO, 1},
597*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 100000, 160001, 32000, 1, 13, 13, 11, 11, 2, 0, 3, SBR_MONO, 1},
598*e5436536SAndroid Build Coastguard Worker 
599*e5436536SAndroid Build Coastguard Worker     /* 44.1/88.2 kHz dual rate */
600*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 24000, 36000, 44100, 1, 4, 4, 4, 4, 2, 0, 3, SBR_MONO, 3},
601*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 36000, 60000, 44100, 1, 7, 7, 6, 6, 2, 0, 3, SBR_MONO, 2},
602*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 60000, 72000, 44100, 1, 9, 9, 8, 8, 2, 0, 3, SBR_MONO, 1},
603*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 72000, 100000, 44100, 1, 11, 11, 10, 10, 2, 0, 3, SBR_MONO, 1},
604*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 100000, 160001, 44100, 1, 13, 13, 11, 11, 2, 0, 3, SBR_MONO, 1},
605*e5436536SAndroid Build Coastguard Worker 
606*e5436536SAndroid Build Coastguard Worker     /* 48/96 kHz dual rate */
607*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 32000, 36000, 48000, 1, 4, 4, 9, 9, 2, 0, 3, SBR_MONO, 3},
608*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 36000, 60000, 48000, 1, 7, 7, 10, 10, 2, 0, 3, SBR_MONO, 2},
609*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 60000, 72000, 48000, 1, 9, 9, 10, 10, 2, 0, 3, SBR_MONO, 1},
610*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 72000, 100000, 48000, 1, 11, 11, 11, 11, 2, 0, 3, SBR_MONO, 1},
611*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 100000, 160001, 48000, 1, 13, 13, 11, 11, 2, 0, 3, SBR_MONO, 1},
612*e5436536SAndroid Build Coastguard Worker 
613*e5436536SAndroid Build Coastguard Worker     /*** stereo ***/
614*e5436536SAndroid Build Coastguard Worker     /* 08/16 kHz dual rate */
615*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 16000, 24000, 8000, 2, 6, 6, 9, 7, 1, 0, -3, SBR_SWITCH_LRC, 3},
616*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 24000, 28000, 8000, 2, 9, 9, 11, 9, 1, 0, -3, SBR_SWITCH_LRC,
617*e5436536SAndroid Build Coastguard Worker      3},
618*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 28000, 36000, 8000, 2, 11, 9, 11, 9, 2, 0, -3, SBR_SWITCH_LRC,
619*e5436536SAndroid Build Coastguard Worker      2},
620*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 36000, 44000, 8000, 2, 13, 11, 13, 11, 2, 0, -3, SBR_SWITCH_LRC,
621*e5436536SAndroid Build Coastguard Worker      2},
622*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 44000, 52000, 8000, 2, 14, 12, 13, 12, 2, 0, -3, SBR_SWITCH_LRC,
623*e5436536SAndroid Build Coastguard Worker      2},
624*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 52000, 60000, 8000, 2, 14, 14, 13, 13, 3, 0, -3, SBR_SWITCH_LRC,
625*e5436536SAndroid Build Coastguard Worker      1},
626*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 60000, 76000, 8000, 2, 14, 14, 13, 13, 3, 0, -3, SBR_LEFT_RIGHT,
627*e5436536SAndroid Build Coastguard Worker      1},
628*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 76000, 128001, 8000, 2, 14, 14, 13, 13, 3, 0, -3,
629*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
630*e5436536SAndroid Build Coastguard Worker 
631*e5436536SAndroid Build Coastguard Worker     /* 11/22 kHz dual rate */
632*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 16000, 24000, 11025, 2, 7, 5, 9, 7, 1, 0, -3, SBR_SWITCH_LRC,
633*e5436536SAndroid Build Coastguard Worker      3},
634*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 24000, 28000, 11025, 2, 10, 8, 10, 8, 1, 0, -3, SBR_SWITCH_LRC,
635*e5436536SAndroid Build Coastguard Worker      3},
636*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 28000, 36000, 11025, 2, 12, 8, 12, 8, 2, 0, -3, SBR_SWITCH_LRC,
637*e5436536SAndroid Build Coastguard Worker      2},
638*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 36000, 44000, 11025, 2, 13, 9, 13, 9, 2, 0, -3, SBR_SWITCH_LRC,
639*e5436536SAndroid Build Coastguard Worker      2},
640*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 44000, 52000, 11025, 2, 14, 11, 13, 11, 2, 0, -3,
641*e5436536SAndroid Build Coastguard Worker      SBR_SWITCH_LRC, 2},
642*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 52000, 60000, 11025, 2, 15, 15, 13, 13, 3, 0, -3,
643*e5436536SAndroid Build Coastguard Worker      SBR_SWITCH_LRC, 1},
644*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 60000, 76000, 11025, 2, 15, 15, 13, 13, 3, 0, -3,
645*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
646*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 76000, 128001, 11025, 2, 15, 15, 13, 13, 3, 0, -3,
647*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
648*e5436536SAndroid Build Coastguard Worker 
649*e5436536SAndroid Build Coastguard Worker     /* 12/24 kHz dual rate */
650*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 16000, 24000, 12000, 2, 6, 4, 9, 7, 1, 0, -3, SBR_SWITCH_LRC,
651*e5436536SAndroid Build Coastguard Worker      3},
652*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 24000, 28000, 12000, 2, 9, 7, 10, 8, 1, 0, -3, SBR_SWITCH_LRC,
653*e5436536SAndroid Build Coastguard Worker      3},
654*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 28000, 36000, 12000, 2, 11, 7, 12, 8, 2, 0, -3, SBR_SWITCH_LRC,
655*e5436536SAndroid Build Coastguard Worker      2},
656*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 36000, 44000, 12000, 2, 12, 9, 12, 9, 2, 0, -3, SBR_SWITCH_LRC,
657*e5436536SAndroid Build Coastguard Worker      2},
658*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 44000, 52000, 12000, 2, 13, 12, 13, 12, 2, 0, -3,
659*e5436536SAndroid Build Coastguard Worker      SBR_SWITCH_LRC, 2},
660*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 52000, 60000, 12000, 2, 14, 14, 13, 13, 3, 0, -3,
661*e5436536SAndroid Build Coastguard Worker      SBR_SWITCH_LRC, 1},
662*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 60000, 76000, 12000, 2, 14, 14, 13, 13, 3, 0, -3,
663*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
664*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 76000, 128001, 12000, 2, 14, 14, 13, 13, 3, 0, -3,
665*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
666*e5436536SAndroid Build Coastguard Worker 
667*e5436536SAndroid Build Coastguard Worker     /* 16/32 kHz dual rate */
668*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 16000, 24000, 16000, 2, 4, 2, 1, 0, 1, 0, -3, SBR_SWITCH_LRC,
669*e5436536SAndroid Build Coastguard Worker      3},
670*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 24000, 28000, 16000, 2, 8, 7, 10, 8, 1, 0, -3, SBR_SWITCH_LRC,
671*e5436536SAndroid Build Coastguard Worker      3},
672*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 28000, 36000, 16000, 2, 10, 9, 12, 11, 2, 0, -3, SBR_SWITCH_LRC,
673*e5436536SAndroid Build Coastguard Worker      2},
674*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 36000, 44000, 16000, 2, 13, 13, 13, 13, 2, 0, -3,
675*e5436536SAndroid Build Coastguard Worker      SBR_SWITCH_LRC, 2},
676*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 44000, 52000, 16000, 2, 14, 14, 13, 13, 2, 0, -3,
677*e5436536SAndroid Build Coastguard Worker      SBR_SWITCH_LRC, 2},
678*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 52000, 60000, 16000, 2, 14, 14, 13, 13, 3, 0, -3,
679*e5436536SAndroid Build Coastguard Worker      SBR_SWITCH_LRC, 1},
680*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 60000, 76000, 16000, 2, 14, 14, 13, 13, 3, 0, -3,
681*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
682*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 76000, 128001, 16000, 2, 14, 14, 13, 13, 3, 0, -3,
683*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
684*e5436536SAndroid Build Coastguard Worker 
685*e5436536SAndroid Build Coastguard Worker     /* 22.05/44.1 kHz dual rate */
686*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 16000, 24000, 22050, 2, 2, 1, 1, 0, 1, 0, -3, SBR_SWITCH_LRC,
687*e5436536SAndroid Build Coastguard Worker      3},
688*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 24000, 28000, 22050, 2, 5, 4, 6, 5, 1, 0, -3, SBR_SWITCH_LRC,
689*e5436536SAndroid Build Coastguard Worker      3},
690*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 28000, 32000, 22050, 2, 5, 4, 8, 7, 2, 0, -3, SBR_SWITCH_LRC,
691*e5436536SAndroid Build Coastguard Worker      2},
692*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 32000, 36000, 22050, 2, 7, 6, 8, 7, 2, 0, -3, SBR_SWITCH_LRC,
693*e5436536SAndroid Build Coastguard Worker      2},
694*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 36000, 44000, 22050, 2, 10, 10, 9, 9, 2, 0, -3, SBR_SWITCH_LRC,
695*e5436536SAndroid Build Coastguard Worker      2},
696*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 44000, 52000, 22050, 2, 12, 12, 9, 9, 3, 0, -3, SBR_SWITCH_LRC,
697*e5436536SAndroid Build Coastguard Worker      2},
698*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 52000, 60000, 22050, 2, 13, 13, 10, 10, 3, 0, -3,
699*e5436536SAndroid Build Coastguard Worker      SBR_SWITCH_LRC, 1},
700*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 60000, 76000, 22050, 2, 14, 14, 12, 12, 3, 0, -3,
701*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
702*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 76000, 128001, 22050, 2, 14, 14, 12, 12, 3, 0, -3,
703*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
704*e5436536SAndroid Build Coastguard Worker 
705*e5436536SAndroid Build Coastguard Worker     /* 24/48 kHz dual rate */
706*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 16000, 24000, 24000, 2, 2, 1, 1, 0, 1, 0, -3, SBR_SWITCH_LRC,
707*e5436536SAndroid Build Coastguard Worker      3},
708*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 24000, 28000, 24000, 2, 5, 5, 6, 6, 1, 0, -3, SBR_SWITCH_LRC,
709*e5436536SAndroid Build Coastguard Worker      3},
710*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 28000, 36000, 24000, 2, 7, 6, 8, 7, 2, 0, -3, SBR_SWITCH_LRC,
711*e5436536SAndroid Build Coastguard Worker      2},
712*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 36000, 44000, 24000, 2, 10, 10, 9, 9, 2, 0, -3, SBR_SWITCH_LRC,
713*e5436536SAndroid Build Coastguard Worker      2},
714*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 44000, 52000, 24000, 2, 12, 12, 9, 9, 3, 0, -3, SBR_SWITCH_LRC,
715*e5436536SAndroid Build Coastguard Worker      2},
716*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 52000, 60000, 24000, 2, 13, 13, 10, 10, 3, 0, -3,
717*e5436536SAndroid Build Coastguard Worker      SBR_SWITCH_LRC, 1},
718*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 60000, 76000, 24000, 2, 14, 14, 12, 12, 3, 0, -3,
719*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
720*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 76000, 128001, 24000, 2, 14, 14, 12, 12, 3, 0, -3,
721*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
722*e5436536SAndroid Build Coastguard Worker 
723*e5436536SAndroid Build Coastguard Worker     /* 32/64 kHz dual rate */
724*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 32000, 60000, 32000, 2, 4, 4, 4, 4, 2, 0, -3, SBR_SWITCH_LRC,
725*e5436536SAndroid Build Coastguard Worker      3},
726*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 60000, 80000, 32000, 2, 7, 7, 6, 6, 3, 0, -3, SBR_SWITCH_LRC,
727*e5436536SAndroid Build Coastguard Worker      2},
728*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 80000, 112000, 32000, 2, 9, 9, 8, 8, 3, 0, -3, SBR_LEFT_RIGHT,
729*e5436536SAndroid Build Coastguard Worker      1},
730*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 112000, 144000, 32000, 2, 11, 11, 10, 10, 3, 0, -3,
731*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
732*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 144000, 256001, 32000, 2, 13, 13, 11, 11, 3, 0, -3,
733*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
734*e5436536SAndroid Build Coastguard Worker 
735*e5436536SAndroid Build Coastguard Worker     /* 44.1/88.2 kHz dual rate */
736*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 32000, 60000, 44100, 2, 4, 4, 4, 4, 2, 0, -3, SBR_SWITCH_LRC,
737*e5436536SAndroid Build Coastguard Worker      3},
738*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 60000, 80000, 44100, 2, 7, 7, 6, 6, 3, 0, -3, SBR_SWITCH_LRC,
739*e5436536SAndroid Build Coastguard Worker      2},
740*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 80000, 112000, 44100, 2, 9, 9, 8, 8, 3, 0, -3, SBR_LEFT_RIGHT,
741*e5436536SAndroid Build Coastguard Worker      1},
742*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 112000, 144000, 44100, 2, 11, 11, 10, 10, 3, 0, -3,
743*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
744*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 144000, 256001, 44100, 2, 13, 13, 11, 11, 3, 0, -3,
745*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
746*e5436536SAndroid Build Coastguard Worker 
747*e5436536SAndroid Build Coastguard Worker     /* 48/96 kHz dual rate */
748*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 36000, 60000, 48000, 2, 4, 4, 9, 9, 2, 0, -3, SBR_SWITCH_LRC,
749*e5436536SAndroid Build Coastguard Worker      3},
750*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 60000, 80000, 48000, 2, 7, 7, 9, 9, 3, 0, -3, SBR_SWITCH_LRC,
751*e5436536SAndroid Build Coastguard Worker      2},
752*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 80000, 112000, 48000, 2, 9, 9, 10, 10, 3, 0, -3, SBR_LEFT_RIGHT,
753*e5436536SAndroid Build Coastguard Worker      1},
754*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 112000, 144000, 48000, 2, 11, 11, 11, 11, 3, 0, -3,
755*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
756*e5436536SAndroid Build Coastguard Worker     {CODEC_AAC, 144000, 256001, 48000, 2, 13, 13, 11, 11, 3, 0, -3,
757*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
758*e5436536SAndroid Build Coastguard Worker 
759*e5436536SAndroid Build Coastguard Worker     /** AAC LOW DELAY SECTION **/
760*e5436536SAndroid Build Coastguard Worker 
761*e5436536SAndroid Build Coastguard Worker     /* 24 kHz dual rate - 12kHz singlerate is not allowed (deactivated in
762*e5436536SAndroid Build Coastguard Worker        FDKsbrEnc_IsSbrSettingAvail()) */
763*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 8000, 32000, 12000, 1, 1, 1, 0, 0, 1, 0, 6, SBR_MONO, 3},
764*e5436536SAndroid Build Coastguard Worker 
765*e5436536SAndroid Build Coastguard Worker     /*** mono ***/
766*e5436536SAndroid Build Coastguard Worker     /* 16/32 kHz dual rate */
767*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 16000, 18000, 16000, 1, 4, 5, 9, 7, 1, 0, 6, SBR_MONO, 3},
768*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 18000, 22000, 16000, 1, 7, 7, 12, 12, 1, 6, 9, SBR_MONO, 3},
769*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 22000, 28000, 16000, 1, 6, 6, 9, 9, 2, 3, 6, SBR_MONO, 3},
770*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 28000, 36000, 16000, 1, 8, 8, 12, 7, 2, 9, 12, SBR_MONO, 3},
771*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 36000, 44000, 16000, 1, 10, 14, 12, 13, 2, 0, 3, SBR_MONO, 1},
772*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 44000, 64001, 16000, 1, 11, 14, 13, 13, 2, 0, 3, SBR_MONO, 1},
773*e5436536SAndroid Build Coastguard Worker 
774*e5436536SAndroid Build Coastguard Worker     /* 22.05/44.1 kHz dual rate */
775*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 18000, 22000, 22050, 1, 4, 4, 5, 5, 2, 0, 6, SBR_MONO, 3},
776*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 22000, 28000, 22050, 1, 5, 5, 6, 6, 2, 0, 6, SBR_MONO, 2},
777*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 28000, 36000, 22050, 1, 7, 8, 8, 8, 2, 0, 3, SBR_MONO, 2},
778*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 36000, 44000, 22050, 1, 9, 9, 9, 9, 2, 0, 3, SBR_MONO, 1},
779*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 44000, 52000, 22050, 1, 12, 11, 11, 11, 2, 0, 3, SBR_MONO, 1},
780*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 52000, 64001, 22050, 1, 13, 11, 11, 10, 2, 0, 3, SBR_MONO, 1},
781*e5436536SAndroid Build Coastguard Worker 
782*e5436536SAndroid Build Coastguard Worker     /* 24/48 kHz dual rate */
783*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 20000, 22000, 24000, 1, 3, 4, 8, 8, 2, 0, 6, SBR_MONO, 2},
784*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 22000, 28000, 24000, 1, 3, 8, 8, 7, 2, 0, 3, SBR_MONO, 2},
785*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 28000, 36000, 24000, 1, 4, 8, 8, 7, 2, 0, 3, SBR_MONO, 2},
786*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 36000, 56000, 24000, 1, 8, 9, 9, 8, 2, 0, 3, SBR_MONO, 1},
787*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 56000, 64001, 24000, 1, 13, 11, 11, 10, 2, 0, 3, SBR_MONO, 1},
788*e5436536SAndroid Build Coastguard Worker 
789*e5436536SAndroid Build Coastguard Worker     /* 32/64 kHz dual rate */
790*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 24000, 36000, 32000, 1, 4, 4, 4, 4, 2, 0, 3, SBR_MONO, 3},
791*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 36000, 60000, 32000, 1, 7, 7, 6, 6, 2, 0, 3, SBR_MONO, 2},
792*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 60000, 72000, 32000, 1, 9, 9, 8, 8, 2, 0, 3, SBR_MONO, 1},
793*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 72000, 100000, 32000, 1, 11, 11, 10, 10, 2, 0, 3, SBR_MONO,
794*e5436536SAndroid Build Coastguard Worker      1},
795*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 100000, 160001, 32000, 1, 13, 13, 11, 11, 2, 0, 3, SBR_MONO,
796*e5436536SAndroid Build Coastguard Worker      1},
797*e5436536SAndroid Build Coastguard Worker 
798*e5436536SAndroid Build Coastguard Worker     /* 44/88 kHz dual rate */
799*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 36000, 60000, 44100, 1, 8, 7, 6, 9, 2, 0, 3, SBR_MONO, 2},
800*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 60000, 72000, 44100, 1, 9, 9, 10, 10, 2, 0, 3, SBR_MONO, 1},
801*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 72000, 100000, 44100, 1, 11, 11, 11, 11, 2, 0, 3, SBR_MONO,
802*e5436536SAndroid Build Coastguard Worker      1},
803*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 100000, 160001, 44100, 1, 13, 13, 11, 11, 2, 0, 3, SBR_MONO,
804*e5436536SAndroid Build Coastguard Worker      1},
805*e5436536SAndroid Build Coastguard Worker 
806*e5436536SAndroid Build Coastguard Worker     /* 48/96 kHz dual rate */ /* 32 and 40kbps line tuned for dual-rate SBR
807*e5436536SAndroid Build Coastguard Worker                                */
808*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 36000, 60000, 48000, 1, 4, 7, 4, 4, 2, 0, 3, SBR_MONO, 3},
809*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 60000, 72000, 48000, 1, 9, 9, 10, 10, 2, 0, 3, SBR_MONO, 1},
810*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 72000, 100000, 48000, 1, 11, 11, 11, 11, 2, 0, 3, SBR_MONO,
811*e5436536SAndroid Build Coastguard Worker      1},
812*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 100000, 160001, 48000, 1, 13, 13, 11, 11, 2, 0, 3, SBR_MONO,
813*e5436536SAndroid Build Coastguard Worker      1},
814*e5436536SAndroid Build Coastguard Worker 
815*e5436536SAndroid Build Coastguard Worker     /*** stereo ***/
816*e5436536SAndroid Build Coastguard Worker     /* 16/32 kHz dual rate */
817*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 32000, 36000, 16000, 2, 10, 9, 12, 11, 2, 0, -3,
818*e5436536SAndroid Build Coastguard Worker      SBR_SWITCH_LRC, 2},
819*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 36000, 44000, 16000, 2, 13, 13, 13, 13, 2, 0, -3,
820*e5436536SAndroid Build Coastguard Worker      SBR_SWITCH_LRC, 2},
821*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 44000, 52000, 16000, 2, 10, 9, 11, 9, 2, 0, -3,
822*e5436536SAndroid Build Coastguard Worker      SBR_SWITCH_LRC, 2},
823*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 52000, 60000, 16000, 2, 14, 14, 13, 13, 3, 0, -3,
824*e5436536SAndroid Build Coastguard Worker      SBR_SWITCH_LRC, 1},
825*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 60000, 76000, 16000, 2, 14, 14, 13, 13, 3, 0, -3,
826*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
827*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 76000, 128001, 16000, 2, 14, 14, 13, 13, 3, 0, -3,
828*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
829*e5436536SAndroid Build Coastguard Worker 
830*e5436536SAndroid Build Coastguard Worker     /* 22.05/44.1 kHz dual rate */
831*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 32000, 36000, 22050, 2, 5, 4, 7, 6, 2, 0, -3, SBR_SWITCH_LRC,
832*e5436536SAndroid Build Coastguard Worker      2},
833*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 36000, 44000, 22050, 2, 5, 8, 8, 8, 2, 0, -3, SBR_SWITCH_LRC,
834*e5436536SAndroid Build Coastguard Worker      2},
835*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 44000, 52000, 22050, 2, 7, 10, 8, 8, 3, 0, -3, SBR_SWITCH_LRC,
836*e5436536SAndroid Build Coastguard Worker      2},
837*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 52000, 60000, 22050, 2, 9, 11, 9, 9, 3, 0, -3, SBR_SWITCH_LRC,
838*e5436536SAndroid Build Coastguard Worker      1},
839*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 60000, 76000, 22050, 2, 10, 12, 10, 11, 3, 0, -3,
840*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
841*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 76000, 82000, 22050, 2, 12, 12, 11, 11, 3, 0, -3,
842*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
843*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 82000, 128001, 22050, 2, 13, 12, 11, 11, 3, 0, -3,
844*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
845*e5436536SAndroid Build Coastguard Worker 
846*e5436536SAndroid Build Coastguard Worker     /* 24/48 kHz dual rate */
847*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 32000, 36000, 24000, 2, 5, 4, 7, 6, 2, 0, -3, SBR_SWITCH_LRC,
848*e5436536SAndroid Build Coastguard Worker      2},
849*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 36000, 44000, 24000, 2, 4, 8, 8, 8, 2, 0, -3, SBR_SWITCH_LRC,
850*e5436536SAndroid Build Coastguard Worker      2},
851*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 44000, 52000, 24000, 2, 6, 10, 8, 8, 3, 0, -3, SBR_SWITCH_LRC,
852*e5436536SAndroid Build Coastguard Worker      2},
853*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 52000, 60000, 24000, 2, 9, 11, 9, 9, 3, 0, -3, SBR_SWITCH_LRC,
854*e5436536SAndroid Build Coastguard Worker      1},
855*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 60000, 76000, 24000, 2, 11, 12, 10, 11, 3, 0, -3,
856*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
857*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 76000, 88000, 24000, 2, 12, 13, 11, 11, 3, 0, -3,
858*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
859*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 88000, 128001, 24000, 2, 13, 13, 11, 11, 3, 0, -3,
860*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
861*e5436536SAndroid Build Coastguard Worker 
862*e5436536SAndroid Build Coastguard Worker     /* 32/64 kHz dual rate */
863*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 60000, 80000, 32000, 2, 7, 7, 6, 6, 3, 0, -3, SBR_SWITCH_LRC,
864*e5436536SAndroid Build Coastguard Worker      2},
865*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 80000, 112000, 32000, 2, 9, 9, 8, 8, 3, 0, -3, SBR_LEFT_RIGHT,
866*e5436536SAndroid Build Coastguard Worker      1},
867*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 112000, 144000, 32000, 2, 11, 11, 10, 10, 3, 0, -3,
868*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
869*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 144000, 256001, 32000, 2, 13, 13, 11, 11, 3, 0, -3,
870*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
871*e5436536SAndroid Build Coastguard Worker 
872*e5436536SAndroid Build Coastguard Worker     /* 44.1/88.2 kHz dual rate */
873*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 60000, 80000, 44100, 2, 7, 7, 6, 6, 3, 0, -3, SBR_SWITCH_LRC,
874*e5436536SAndroid Build Coastguard Worker      2},
875*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 80000, 112000, 44100, 2, 10, 10, 8, 8, 3, 0, -3,
876*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
877*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 112000, 144000, 44100, 2, 12, 12, 10, 10, 3, 0, -3,
878*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
879*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 144000, 256001, 44100, 2, 13, 13, 11, 11, 3, 0, -3,
880*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
881*e5436536SAndroid Build Coastguard Worker 
882*e5436536SAndroid Build Coastguard Worker     /* 48/96 kHz dual rate */
883*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 60000, 80000, 48000, 2, 7, 7, 10, 10, 2, 0, -3,
884*e5436536SAndroid Build Coastguard Worker      SBR_SWITCH_LRC, 2},
885*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 80000, 112000, 48000, 2, 9, 9, 10, 10, 3, 0, -3,
886*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
887*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 112000, 144000, 48000, 2, 11, 11, 11, 11, 3, 0, -3,
888*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
889*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 144000, 176000, 48000, 2, 12, 12, 11, 11, 3, 0, -3,
890*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
891*e5436536SAndroid Build Coastguard Worker     {CODEC_AACLD, 176000, 256001, 48000, 2, 13, 13, 11, 11, 3, 0, -3,
892*e5436536SAndroid Build Coastguard Worker      SBR_LEFT_RIGHT, 1},
893*e5436536SAndroid Build Coastguard Worker 
894*e5436536SAndroid Build Coastguard Worker };
895*e5436536SAndroid Build Coastguard Worker 
896*e5436536SAndroid Build Coastguard Worker const int sbrTuningTableSize =
897*e5436536SAndroid Build Coastguard Worker     sizeof(sbrTuningTable) / sizeof(sbrTuningTable[0]);
898*e5436536SAndroid Build Coastguard Worker 
899*e5436536SAndroid Build Coastguard Worker const psTuningTable_t psTuningTable[4] = {
900*e5436536SAndroid Build Coastguard Worker     {8000, 22000, PSENC_STEREO_BANDS_10, PSENC_NENV_1,
901*e5436536SAndroid Build Coastguard Worker      FL2FXCONST_DBL(3.0f / 4.0f)},
902*e5436536SAndroid Build Coastguard Worker     {22000, 28000, PSENC_STEREO_BANDS_20, PSENC_NENV_1,
903*e5436536SAndroid Build Coastguard Worker      FL2FXCONST_DBL(2.0f / 4.0f)},
904*e5436536SAndroid Build Coastguard Worker     {28000, 36000, PSENC_STEREO_BANDS_20, PSENC_NENV_2,
905*e5436536SAndroid Build Coastguard Worker      FL2FXCONST_DBL(1.5f / 4.0f)},
906*e5436536SAndroid Build Coastguard Worker     {36000, 160001, PSENC_STEREO_BANDS_20, PSENC_NENV_4,
907*e5436536SAndroid Build Coastguard Worker      FL2FXCONST_DBL(1.1f / 4.0f)},
908*e5436536SAndroid Build Coastguard Worker };
909*e5436536SAndroid Build Coastguard Worker 
910*e5436536SAndroid Build Coastguard Worker //@}
911