Coverage Report

Created: 2026-09-14 06:14

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libldac/src/tables_ldac.c
Line
Count
Source
1
/*
2
 * Copyright (C) 2003 - 2016 Sony Corporation
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
#include "ldac.h"
18
19
/***************************************************************************************************
20
    Tables related to Sampling Rate Indices
21
***************************************************************************************************/
22
DECLFUNC const unsigned int ga_smplrate_ldac[LDAC_NSUPSMPLRATEID] = {
23
    44100, 48000, 88200, 96000,
24
};
25
26
DECLFUNC const unsigned short ga_framesmpls_ldac[LDAC_NSUPSMPLRATEID] = {
27
    LDAC_1FSLSU, LDAC_1FSLSU, LDAC_2FSLSU, LDAC_2FSLSU,
28
};
29
30
DECLFUNC const unsigned char ga_ln_framesmpls_ldac[LDAC_NSUPSMPLRATEID] = {
31
    LDAC_1FSLNN, LDAC_1FSLNN, LDAC_2FSLNN, LDAC_2FSLNN,
32
};
33
34
DECLFUNC const unsigned char ga_max_nbands_ldac[LDAC_NSUPSMPLRATEID] = {
35
    LDAC_1FSNBANDS, LDAC_1FSNBANDS, LDAC_2FSNBANDS, LDAC_2FSNBANDS,
36
};
37
38
DECLFUNC const char gaa_nlnn_shift_ldac[LDAC_NSUPSMPLRATEID][LDAC_NSFTSTEP] = {
39
    {-1, -1,  0,  0, -1},
40
    {-1, -1,  0,  0, -1},
41
    {-1,  0,  0, -1, -1},
42
    {-1,  0,  0, -1, -1},
43
};
44
45
/***************************************************************************************************
46
    Tables related to Channel Config Indices
47
***************************************************************************************************/
48
DECLFUNC const unsigned char ga_ch_ldac[LDAC_NCHCONFIGID] = {
49
    LDAC_CHANNEL_1CH, LDAC_CHANNEL_2CH, LDAC_CHANNEL_2CH, 0, 0, 0, 0, 0
50
};
51
52
DECLFUNC const unsigned char ga_chconfig_id_ldac[LDAC_MAXNCH+1] = {
53
    0, LDAC_CHCONFIGID_MN, LDAC_CHCONFIGID_ST
54
};
55
56
DECLFUNC const char gaa_block_setting_ldac[LDAC_NCHCONFIGID][LDAC_MAXNCH+2]=
57
{
58
    {LDAC_CHANNEL_1CH, 1, LDAC_BLKID_MONO},
59
    {LDAC_CHANNEL_2CH, 2, LDAC_BLKID_MONO, LDAC_BLKID_MONO},
60
    {LDAC_CHANNEL_2CH, 1, LDAC_BLKID_STEREO},
61
    {0, 0, 0},
62
};
63
64
DECLFUNC int get_block_nchs_ldac(
65
int blk_type)
66
44
{
67
44
    int blk_nchs;
68
69
44
    if (blk_type == LDAC_BLKID_MONO) {
70
44
        blk_nchs = 1;
71
44
    }
72
0
    else if (blk_type == LDAC_BLKID_STEREO) {
73
0
        blk_nchs = 2;
74
0
    }
75
0
    else {
76
0
        blk_nchs = -1;
77
0
    }
78
79
44
    return blk_nchs;
80
44
}
81
82
/***************************************************************************************************
83
    Tables related to Quantization Units
84
***************************************************************************************************/
85
DECLFUNC const unsigned char ga_idsp_ldac[LDAC_MAXNQUS] = {
86
      0,  0,  0,  0,  0,  0,  0,  0,
87
      1,  1,  1,  1,
88
      1,  1,  1,  1,
89
      1,  1,  1,  1,
90
      2,  2,
91
      2,  2,
92
      3,  3,
93
      3,  3,
94
      3,  3,
95
      3,  3,
96
      3,  3,
97
};
98
99
DECLFUNC const unsigned char ga_nsps_ldac[LDAC_MAXNQUS] = {
100
      2,  2,  2,  2,  2,  2,  2,  2,
101
      4,  4,  4,  4,
102
      4,  4,  4,  4,
103
      4,  4,  4,  4,
104
      8,  8,
105
      8,  8,
106
     16, 16,
107
     16, 16,
108
     16, 16,
109
     16, 16,
110
     16, 16,
111
};
112
113
DECLFUNC const unsigned short ga_isp_ldac[LDAC_MAXNQUS+1] = {
114
      0,  2,  4,  6,  8, 10, 12, 14,
115
     16, 20, 24, 28,
116
     32, 36, 40, 44,
117
     48, 52, 56, 60,
118
     64, 72,
119
     80, 88,
120
     96,112,
121
    128,144,
122
    160,176,
123
    192,208,
124
    224,240,
125
    256,
126
};
127
128
DECLFUNC const unsigned char ga_nqus_ldac[LDAC_MAXNBANDS+1] = {
129
    0,  4,  8, 10, 12, 14, 16, 18, 20, 22, 24, 25, 26, 28, 30, 32, 34,
130
};
131
132
/***************************************************************************************************
133
    Encoding/Decoding Tables for Spectrum Data
134
***************************************************************************************************/
135
DECLFUNC const unsigned char ga_wl_ldac[LDAC_NIDWL] = {
136
    0,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
137
};
138
139
DECLFUNC const short gaa_ndim_wls_ldac[4][LDAC_NIDWL] = {
140
    {0,  3,  6,  8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32},
141
    {0,  7, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64},
142
    {0, 14, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96,104,112,120,128},
143
    {0, 28, 48, 64, 80, 96,112,128,144,160,176,192,208,224,240,256},
144
};
145
146
DECLFUNC const int ga_2dimenc_spec_ldac[LDAC_N2DIMSPECENCTBL] = {
147
    0,  1,  2,  0,  3,  0,  4,  0,  5,  6,  7,  0,  0,  0,  0,  0,
148
};
149
150
DECLFUNC const int ga_4dimenc_spec_ldac[LDAC_N4DIMSPECENCTBL] = {
151
     0,  1,  2,  0,  3,  4,  5,  0,  6,  7,  8,  0,  0,  0,  0,  0,
152
     9, 10, 11,  0, 12, 13, 14,  0, 15, 16, 17,  0,  0,  0,  0,  0,
153
    18, 19, 20,  0, 21, 22, 23,  0, 24, 25, 26,  0,  0,  0,  0,  0,
154
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
155
    27, 28, 29,  0, 30, 31, 32,  0, 33, 34, 35,  0,  0,  0,  0,  0,
156
    36, 37, 38,  0, 39, 40, 41,  0, 42, 43, 44,  0,  0,  0,  0,  0,
157
    45, 46, 47,  0, 48, 49, 50,  0, 51, 52, 53,  0,  0,  0,  0,  0,
158
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
159
    54, 55, 56,  0, 57, 58, 59,  0, 60, 61, 62,  0,  0,  0,  0,  0,
160
    63, 64, 65,  0, 66, 67, 68,  0, 69, 70, 71,  0,  0,  0,  0,  0,
161
    72, 73, 74,  0, 75, 76, 77,  0, 78, 79, 80,  0,  0,  0,  0,  0,
162
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
163
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
164
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
165
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
166
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
167
};
168
169
170
/***************************************************************************************************
171
    Resampled Gradient Table
172
***************************************************************************************************/
173
DECLFUNC const unsigned char gaa_resamp_grad_ldac[LDAC_MAXGRADQU][LDAC_MAXGRADQU] = {
174
{
175
128,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
176
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
177
},
178
{
179
 31,225,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
180
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
181
},
182
{
183
 17,128,239,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
184
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
185
},
186
{
187
 12, 69,187,244,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
188
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
189
},
190
{
191
 10, 43,128,213,246,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
192
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
193
},
194
{
195
  9, 31, 87,169,225,247,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
196
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
197
},
198
{
199
  8, 24, 62,128,194,232,248,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
200
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
201
},
202
{
203
  8, 19, 47, 97,159,209,237,248,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
204
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
205
},
206
{
207
  7, 17, 37, 75,128,181,219,239,249,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
208
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
209
},
210
{
211
  7, 15, 31, 59,103,153,197,225,241,249,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
212
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
213
},
214
{
215
  7, 13, 26, 48, 83,128,173,208,230,243,249,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
216
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
217
},
218
{
219
  6, 12, 23, 41, 69,107,149,187,215,233,244,250,255,255,255,255,255,255,255,255,255,255,255,255,255,
220
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
221
},
222
{
223
  6, 11, 20, 35, 58, 90,128,166,198,221,236,245,250,255,255,255,255,255,255,255,255,255,255,255,255,
224
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
225
},
226
{
227
  6, 11, 18, 31, 49, 76,110,146,180,207,225,238,245,250,255,255,255,255,255,255,255,255,255,255,255,
228
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
229
},
230
{
231
  6, 10, 17, 27, 43, 66, 95,128,161,190,213,229,239,246,250,255,255,255,255,255,255,255,255,255,255,
232
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
233
},
234
{
235
  6, 10, 15, 24, 38, 57, 82,112,144,174,199,218,232,241,246,250,255,255,255,255,255,255,255,255,255,
236
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
237
},
238
{
239
  6,  9, 14, 22, 34, 50, 72, 98,128,158,184,206,222,234,242,247,250,255,255,255,255,255,255,255,255,
240
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
241
},
242
{
243
  6,  9, 13, 20, 31, 45, 63, 87,114,142,169,193,211,225,236,243,247,250,255,255,255,255,255,255,255,
244
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
245
},
246
{
247
  6,  9, 13, 19, 28, 40, 56, 77,101,128,155,179,200,216,228,237,243,247,250,255,255,255,255,255,255,
248
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
249
},
250
{
251
  6,  8, 12, 18, 26, 36, 51, 69, 91,115,141,165,187,205,220,230,238,244,248,250,255,255,255,255,255,
252
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
253
},
254
{
255
  6,  8, 12, 17, 24, 33, 46, 62, 81,104,128,152,175,194,210,223,232,239,244,248,250,255,255,255,255,
256
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
257
},
258
{
259
  6,  8, 11, 16, 22, 31, 42, 56, 74, 94,116,140,162,182,200,214,225,234,240,245,248,250,255,255,255,
260
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
261
},
262
{
263
  5,  8, 11, 15, 21, 28, 38, 51, 67, 85,106,128,150,171,189,205,218,228,235,241,245,248,251,255,255,
264
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
265
},
266
{
267
  5,  8, 10, 14, 19, 26, 35, 47, 61, 78, 97,117,139,159,178,195,209,221,230,237,242,246,248,251,255,
268
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
269
},
270
{
271
  5,  7, 10, 14, 18, 25, 33, 43, 56, 71, 88,108,128,148,168,185,200,213,223,231,238,242,246,249,251,
272
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
273
},
274
{
275
  5,  7, 10, 13, 17, 23, 31, 40, 51, 65, 81, 99,118,138,157,175,191,205,216,225,233,239,243,246,249,
276
251,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
277
},
278
{
279
  5,  7,  9, 13, 17, 22, 29, 37, 47, 60, 75, 91,109,128,147,165,181,196,209,219,227,234,239,243,247,
280
249,251,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
281
},
282
{
283
  5,  7,  9, 12, 16, 21, 27, 35, 44, 55, 69, 84,101,119,137,155,172,187,201,212,221,229,235,240,244,
284
247,249,251,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
285
},
286
{
287
  5,  7,  9, 12, 15, 20, 25, 32, 41, 51, 64, 78, 94,110,128,146,162,178,192,205,215,224,231,236,241,
288
244,247,249,251,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
289
},
290
{
291
  5,  7,  9, 11, 15, 19, 24, 31, 38, 48, 59, 72, 87,103,119,137,153,169,184,197,208,218,225,232,237,
292
241,245,247,249,251,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
293
},
294
{
295
  5,  7,  9, 11, 14, 18, 23, 29, 36, 45, 55, 67, 81, 96,112,128,144,160,175,189,201,211,220,227,233,
296
238,242,245,247,249,251,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
297
},
298
{
299
  5,  7,  8, 11, 14, 17, 22, 27, 34, 42, 52, 63, 75, 89,104,120,136,152,167,181,193,204,214,222,229,
300
234,239,242,245,248,249,251,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
301
},
302
{
303
  5,  7,  8, 11, 13, 17, 21, 26, 32, 40, 48, 59, 70, 83, 98,113,128,143,158,173,186,197,208,216,224,
304
230,235,239,243,245,248,249,251,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
305
},
306
{
307
  5,  7,  8, 10, 13, 16, 20, 25, 31, 37, 46, 55, 66, 78, 91,106,120,136,150,165,178,190,201,210,219,
308
225,231,236,240,243,246,248,249,251,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
309
},
310
{
311
  5,  6,  8, 10, 12, 15, 19, 24, 29, 35, 43, 52, 62, 73, 86, 99,113,128,143,157,170,183,194,204,213,
312
221,227,232,237,241,244,246,248,250,251,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
313
},
314
{
315
  5,  6,  8, 10, 12, 15, 18, 23, 28, 34, 41, 49, 58, 69, 81, 93,107,121,135,149,163,175,187,198,207,
316
215,222,228,233,238,241,244,246,248,250,251,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
317
},
318
{
319
  5,  6,  8, 10, 12, 15, 18, 22, 26, 32, 39, 46, 55, 65, 76, 88,101,114,128,142,155,168,180,191,201,
320
210,217,224,230,234,238,241,244,246,248,250,251,255,255,255,255,255,255,255,255,255,255,255,255,255,
321
},
322
{
323
  5,  6,  8,  9, 12, 14, 17, 21, 25, 31, 37, 44, 52, 61, 72, 83, 95,108,121,135,148,161,173,184,195,
324
204,212,219,225,231,235,239,242,244,247,248,250,251,255,255,255,255,255,255,255,255,255,255,255,255,
325
},
326
{
327
  5,  6,  8,  9, 11, 14, 17, 20, 24, 29, 35, 42, 49, 58, 68, 78, 90,102,115,128,141,154,166,178,188,
328
198,207,214,221,227,232,236,239,242,245,247,248,250,251,255,255,255,255,255,255,255,255,255,255,255,
329
},
330
{
331
  5,  6,  8,  9, 11, 13, 16, 19, 23, 28, 33, 40, 47, 55, 64, 74, 85, 97,109,122,134,147,159,171,182,
332
192,201,209,216,223,228,233,237,240,243,245,247,248,250,251,255,255,255,255,255,255,255,255,255,255,
333
},
334
{
335
  5,  6,  7,  9, 11, 13, 16, 19, 22, 27, 32, 38, 44, 52, 61, 70, 80, 92,103,116,128,140,153,164,176,
336
186,195,204,212,218,224,229,234,237,240,243,245,247,249,250,251,255,255,255,255,255,255,255,255,255,
337
},
338
{
339
  5,  6,  7,  9, 11, 13, 15, 18, 22, 26, 31, 36, 42, 49, 58, 66, 76, 87, 98,110,122,134,146,158,169,
340
180,190,198,207,214,220,225,230,234,238,241,243,245,247,249,250,251,255,255,255,255,255,255,255,255,
341
},
342
{
343
  5,  6,  7,  9, 10, 12, 15, 18, 21, 25, 29, 34, 40, 47, 55, 63, 72, 82, 93,104,116,128,140,152,163,
344
174,184,193,201,209,216,222,227,231,235,238,241,244,246,247,249,250,251,255,255,255,255,255,255,255,
345
},
346
{
347
  5,  6,  7,  9, 10, 12, 14, 17, 20, 24, 28, 33, 39, 45, 52, 60, 69, 78, 89, 99,111,122,134,145,157,
348
167,178,187,196,204,211,217,223,228,232,236,239,242,244,246,247,249,250,251,255,255,255,255,255,255,
349
},
350
{
351
  5,  6,  7,  8, 10, 12, 14, 17, 20, 23, 27, 32, 37, 43, 50, 57, 66, 75, 84, 95,105,117,128,139,151,
352
161,172,181,190,199,206,213,219,224,229,233,236,239,242,244,246,248,249,250,251,255,255,255,255,255,
353
},
354
{
355
  5,  6,  7,  8, 10, 12, 14, 16, 19, 22, 26, 31, 36, 41, 48, 55, 62, 71, 80, 90,101,111,122,134,145,
356
155,166,176,185,194,201,208,215,220,225,230,234,237,240,242,244,246,248,249,250,251,255,255,255,255,
357
},
358
{
359
  5,  6,  7,  8, 10, 11, 13, 16, 18, 22, 25, 29, 34, 39, 45, 52, 60, 68, 77, 86, 96,106,117,128,139,
360
150,160,170,179,188,196,204,211,217,222,227,231,234,238,240,243,245,246,248,249,250,251,255,255,255,
361
},
362
{
363
  5,  6,  7,  8, 10, 11, 13, 15, 18, 21, 24, 28, 33, 38, 44, 50, 57, 65, 73, 82, 92,102,112,123,133,
364
144,154,164,174,183,191,199,206,212,218,223,228,232,235,238,241,243,245,246,248,249,250,251,255,255,
365
},
366
{
367
  5,  6,  7,  8,  9, 11, 13, 15, 17, 20, 24, 27, 32, 36, 42, 48, 55, 62, 70, 78, 88, 97,107,118,128,
368
138,149,159,168,178,186,194,201,208,214,220,224,229,232,236,239,241,243,245,247,248,249,250,251,255,
369
},
370
{
371
  5,  6,  7,  8,  9, 11, 13, 15, 17, 20, 23, 26, 31, 35, 40, 46, 52, 59, 67, 75, 84, 93,103,113,123,
372
133,143,153,163,172,181,189,197,204,210,216,221,225,230,233,236,239,241,243,245,247,248,249,250,251,
373
},
374
};
375
376
/***************************************************************************************************
377
    Weighting Tables for Scale Factor Data
378
***************************************************************************************************/
379
DECLFUNC const unsigned char gaa_sfcwgt_ldac[LDAC_NSFCWTBL][LDAC_MAXNQUS] = {
380
{
381
     1,  0,  0,  1,  1,  1,  2,  2,  2,  2,  2,  2,  3,  3,  3,  3,
382
     3,  3,  3,  3,  3,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,  8,  8,  8,
383
},
384
{
385
     0,  1,  1,  2,  3,  4,  4,  4,  4,  5,  6,  6,  6,  6,  6,  7,
386
     7,  7,  7,  7,  7,  7,  8,  8,  8,  9, 10, 10, 11, 11, 12, 12, 12, 12,
387
},
388
{
389
     0,  1,  1,  2,  3,  3,  3,  3,  3,  4,  4,  5,  5,  5,  5,  5,
390
     5,  5,  5,  5,  5,  5,  6,  6,  6,  7,  8,  9,  9, 10, 10, 11, 11, 11,
391
},
392
{
393
     0,  1,  3,  4,  5,  5,  6,  6,  6,  6,  7,  7,  7,  7,  7,  7,
394
     7,  7,  7,  7,  7,  7,  7,  8,  8,  8,  8,  9,  9,  9, 10, 10, 10, 10,
395
},
396
{
397
     0,  1,  3,  4,  5,  5,  6,  7,  7,  8,  8,  9,  9, 10, 10, 10,
398
    10, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13,
399
},
400
{
401
     1,  0,  1,  2,  2,  3,  3,  4,  4,  5,  6,  7,  7,  8,  8,  8,
402
     9,  9,  9,  9,  9, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11,
403
},
404
{
405
     0,  0,  1,  1,  2,  2,  2,  2,  2,  3,  3,  3,  3,  4,  4,  4,
406
     4,  4,  4,  4,  4,  4,  4,  5,  5,  6,  7,  7,  7,  8,  9,  9,  9,  9,
407
},
408
{
409
     0,  0,  1,  2,  3,  4,  4,  5,  5,  6,  7,  7,  8,  8,  8,  8,
410
     9,  9,  9,  9,  9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12,
411
},
412
};
413
414
/***************************************************************************************************
415
    Huffman Codewords for Scale Factor Data
416
***************************************************************************************************/
417
static const HC sa_hc_sf0_blen3_ldac[8] = {
418
    {  0, 2}, {  1, 2}, { 14, 4}, { 62, 6},
419
    { 63, 6}, { 30, 5}, {  6, 3}, {  2, 2},
420
};
421
422
static const HC sa_hc_sf0_blen4_ldac[16] = {
423
    {  1, 2}, {  2, 2}, {  0, 4}, {  6, 5},
424
    { 15, 6}, { 19, 7}, { 35, 8}, { 36, 8},
425
    { 37, 8}, { 34, 8}, { 33, 8}, { 32, 8},
426
    { 14, 6}, {  5, 5}, {  1, 4}, {  3, 2},
427
};
428
429
static const HC sa_hc_sf0_blen5_ldac[32] = {
430
    {  2, 2}, {  1, 3}, {  7, 3}, { 13, 4},
431
    { 12, 5}, { 24, 5}, { 27, 6}, { 33, 7},
432
    { 63, 7}, {106, 8}, {107, 8}, {104, 8},
433
    {115, 8}, {121, 8}, {124, 8}, {125, 8},
434
    {122, 8}, {123, 8}, {120, 8}, {114, 8},
435
    { 68, 8}, { 69, 8}, { 71, 8}, { 70, 8},
436
    {105, 8}, { 56, 7}, { 32, 7}, { 29, 6},
437
    { 25, 5}, {  9, 5}, {  5, 4}, {  0, 3},
438
};
439
440
static const HC sa_hc_sf0_blen6_ldac[64] = {
441
    {  0, 3}, {  1, 3}, {  4, 4}, {  5, 4},
442
    { 18, 5}, { 19, 5}, { 46, 6}, { 47, 6},
443
    { 48, 6}, {102, 7}, {103, 7}, {214, 8},
444
    {215, 8}, {216, 8}, {217, 8}, {218, 8},
445
    {219, 8}, {220, 8}, {221, 8}, {222, 8},
446
    {223, 8}, {224, 8}, {225, 8}, {226, 8},
447
    {227, 8}, {228, 8}, {229, 8}, {230, 8},
448
    {231, 8}, {232, 8}, {233, 8}, {234, 8},
449
    {235, 8}, {236, 8}, {237, 8}, {238, 8},
450
    {239, 8}, {240, 8}, {241, 8}, {242, 8},
451
    {243, 8}, {244, 8}, {245, 8}, {246, 8},
452
    {247, 8}, {248, 8}, {249, 8}, {250, 8},
453
    {251, 8}, {252, 8}, {253, 8}, {254, 8},
454
    {255, 8}, {104, 7}, {105, 7}, {106, 7},
455
    { 49, 6}, { 50, 6}, { 20, 5}, { 21, 5},
456
    { 22, 5}, {  6, 4}, {  7, 4}, {  8, 4},
457
};
458
459
static const HC sa_hc_sf1_blen2_ldac[4] = {
460
    {  0, 1}, {  3, 2}, {  0, 0}, { 2,  2},
461
};
462
463
static const HC sa_hc_sf1_blen3_ldac[8] = {
464
    {  1, 1}, {  0, 3}, {  4, 5}, { 11, 6},
465
    {  0, 0}, { 10, 6}, {  3, 4}, {  1, 2},
466
};
467
468
static const HC sa_hc_sf1_blen4_ldac[16] = {
469
    {  1, 1}, {  1, 3}, {  4, 4}, { 14, 5},
470
    { 15, 5}, { 44, 7}, { 90, 8}, { 93, 8},
471
    {  0, 0}, { 92, 8}, { 91, 8}, { 47, 7},
472
    { 21, 6}, { 20, 6}, {  6, 4}, {  0, 3},
473
};
474
475
static const HC sa_hc_sf1_blen5_ldac[32] = {
476
    {  0, 3}, {  5, 3}, {  7, 4}, { 12, 4},
477
    {  4, 4}, {  2, 4}, {  3, 4}, {  5, 4},
478
    {  9, 4}, { 16, 5}, { 35, 6}, { 51, 7},
479
    { 54, 7}, {110, 7}, { 96, 8}, {101, 8},
480
    { 98, 8}, { 97, 8}, { 99, 8}, {100, 8},
481
    {111, 7}, {109, 7}, {108, 7}, {107, 7},
482
    {106, 7}, {104, 7}, {105, 7}, { 69, 7},
483
    { 68, 7}, { 55, 7}, { 26, 6}, {  7, 3},
484
};
485
486
487
/***************************************************************************************************
488
    Huffman Encoding/Decoding Structures for Scale Factor Data
489
***************************************************************************************************/
490
DECLFUNC HCENC ga_hcenc_sf0_ldac[LDAC_MAXSFCBLEN_0-LDAC_MINSFCBLEN_0+1] = {
491
    {sa_hc_sf0_blen3_ldac,  8,  3,  7},
492
    {sa_hc_sf0_blen4_ldac, 16,  4, 15},
493
    {sa_hc_sf0_blen5_ldac, 32,  5, 31},
494
    {sa_hc_sf0_blen6_ldac, 64,  6, 63},
495
};
496
497
DECLFUNC HCENC ga_hcenc_sf1_ldac[LDAC_MAXSFCBLEN_2-LDAC_MINSFCBLEN_2+1] = {
498
    {sa_hc_sf1_blen2_ldac,  4,  2,  3},
499
    {sa_hc_sf1_blen3_ldac,  8,  3,  7},
500
    {sa_hc_sf1_blen4_ldac, 16,  4, 15},
501
    {sa_hc_sf1_blen5_ldac, 32,  5, 31},
502
};
503
504
505