Coverage Report

Created: 2025-11-16 07:20

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/ffmpeg/libavcodec/dcahuff.c
Line
Count
Source
1
/*
2
 * DCA compatible decoder - huffman tables
3
 * Copyright (C) 2004 Gildas Bazin
4
 * Copyright (C) 2007 Konstantin Shishkov
5
 *
6
 * This file is part of FFmpeg.
7
 *
8
 * FFmpeg is free software; you can redistribute it and/or
9
 * modify it under the terms of the GNU Lesser General Public
10
 * License as published by the Free Software Foundation; either
11
 * version 2.1 of the License, or (at your option) any later version.
12
 *
13
 * FFmpeg is distributed in the hope that it will be useful,
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16
 * Lesser General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU Lesser General Public
19
 * License along with FFmpeg; if not, write to the Free Software
20
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
 */
22
23
#include <stddef.h>
24
25
#include "libavutil/macros.h"
26
27
#include "dcadata.h"
28
#include "dcahuff.h"
29
30
static const uint8_t bitalloc_12_vlc_bits[DCA_BITALLOC_12_COUNT] = {
31
    9, 7, 7, 9, 9
32
};
33
34
#define SCALES_VLC_BITS 9
35
static const uint8_t tnl_grp_sizes[] = { 37, 34, 31, 28, 23 };
36
37
const uint8_t ff_dca_bitalloc_sizes[DCA_CODE_BOOKS] = {
38
    3, 5, 7, 9, 13, 17, 25, 33, 65, 129
39
};
40
41
const int8_t ff_dca_bitalloc_offsets[DCA_CODE_BOOKS] = {
42
    -1, -2, -3, -4, -6, -8, -12, -16, -32, -64
43
};
44
45
static const uint8_t bitalloc_maxbits[DCA_CODE_BOOKS][7] = {
46
    { 2 },
47
    { 4, 3, 3 },
48
    { 5, 5, 4 },
49
    { 6, 5, 6 },
50
    { 7, 6, 5 },
51
    { 9, 8, 7, 9, 8, 8, 8 },
52
    { 9, 9, 8, 9, 8, 9, 9 },
53
    { 9, 9, 9, 9, 9, 9, 9 },
54
    { 9, 9, 9, 9, 9, 9, 9 },
55
    { 9, 9, 9, 9, 9, 9, 9 }
56
};
57
58
const uint8_t ff_dca_vlc_src_tables[][2] = {
59
    /* bitalloc_3 - 3 entries */
60
    {   1,   1 }, {   2,   2 }, {   0,   2 },
61
    /* bitalloc_5_a - 5 entries */
62
    {   2,   1 }, {   3,   2 }, {   1,   3 }, {   4,   4 }, {   0,   4 },
63
    /* bitalloc_5_b - 5 entries */
64
    {   3,   2 }, {   1,   2 }, {   2,   2 }, {   4,   3 }, {   0,   3 },
65
    /* bitalloc_5_c - 5 entries */
66
    {   2,   1 }, {   3,   3 }, {   1,   3 }, {   4,   3 }, {   0,   3 },
67
    /* bitalloc_7_a - 7 entries */
68
    {   3,   1 }, {   5,   3 }, {   2,   3 }, {   4,   3 }, {   1,   4 },
69
    {   0,   5 }, {   6,   5 },
70
    /* bitalloc_7_b - 7 entries */
71
    {   2,   2 }, {   4,   2 }, {   5,   3 }, {   0,   5 }, {   6,   5 },
72
    {   1,   4 }, {   3,   2 },
73
    /* bitalloc_7_c - 7 entries */
74
    {   0,   4 }, {   6,   4 }, {   1,   4 }, {   5,   4 }, {   2,   2 },
75
    {   4,   2 }, {   3,   2 },
76
    /* bitalloc_9_a - 9 entries */
77
    {   4,   1 }, {   7,   4 }, {   2,   4 }, {   3,   3 }, {   0,   6 },
78
    {   8,   6 }, {   1,   5 }, {   6,   4 }, {   5,   3 },
79
    /* bitalloc_9_b - 9 entries */
80
    {   5,   2 }, {   2,   3 }, {   6,   3 }, {   4,   2 }, {   0,   5 },
81
    {   8,   5 }, {   1,   5 }, {   7,   5 }, {   3,   3 },
82
    /* bitalloc_9_c - 9 entries */
83
    {   5,   2 }, {   2,   3 }, {   7,   4 }, {   0,   6 }, {   8,   6 },
84
    {   1,   5 }, {   4,   2 }, {   6,   3 }, {   3,   3 },
85
    /* bitalloc_13_a - 13 entries */
86
    {   6,   1 }, {   7,   3 }, {   9,   4 }, {  10,   5 }, {   1,   6 },
87
    {  11,   6 }, {   4,   4 }, {   8,   4 }, {   0,   7 }, {  12,   7 },
88
    {   2,   6 }, {   3,   5 }, {   5,   4 },
89
    /* bitalloc_13_b - 13 entries */
90
    {   6,   2 }, {   8,   3 }, {  10,   4 }, {   3,   4 }, {   1,   5 },
91
    {  11,   5 }, {   9,   4 }, {   5,   3 }, {   7,   3 }, {   0,   6 },
92
    {  12,   6 }, {   2,   5 }, {   4,   4 },
93
    /* bitalloc_13_c - 13 entries */
94
    {   4,   3 }, {   0,   5 }, {  12,   5 }, {   2,   4 }, {   8,   3 },
95
    {   5,   3 }, {   7,   3 }, {   6,   3 }, {  10,   4 }, {   1,   5 },
96
    {  11,   5 }, {   3,   4 }, {   9,   4 },
97
    /* bitalloc_17_a - 17 entries */
98
    {  12,   4 }, {  13,   6 }, {  14,   8 }, {  15,  10 }, {   0,  12 },
99
    {  16,  12 }, {   1,  11 }, {   2,   9 }, {   3,   7 }, {   4,   5 },
100
    {   6,   3 }, {   8,   2 }, {  10,   3 }, {   5,   4 }, {  11,   4 },
101
    {   7,   3 }, {   9,   3 },
102
    /* bitalloc_17_b - 17 entries */
103
    {   8,   2 }, {  10,   3 }, {  15,   6 }, {   2,   6 }, {   3,   5 },
104
    {  13,   5 }, {  14,   6 }, {   0,   8 }, {  16,   8 }, {   1,   7 },
105
    {   5,   4 }, {  11,   4 }, {   7,   3 }, {   9,   3 }, {   4,   5 },
106
    {  12,   5 }, {   6,   4 },
107
    /* bitalloc_17_c - 17 entries */
108
    {  10,   3 }, {  15,   5 }, {   2,   5 }, {   4,   4 }, {  12,   4 },
109
    {  14,   5 }, {   0,   7 }, {  16,   7 }, {   1,   6 }, {   7,   3 },
110
    {   9,   3 }, {   5,   4 }, {  11,   4 }, {   8,   3 }, {   3,   5 },
111
    {  13,   5 }, {   6,   4 },
112
    /* bitalloc_17_d - 17 entries */
113
    {   8,   1 }, {   0,   9 }, {  16,   9 }, {   1,   9 }, {  15,   9 },
114
    {   2,   8 }, {  14,   8 }, {   3,   7 }, {  13,   7 }, {   4,   6 },
115
    {  12,   6 }, {   5,   5 }, {  11,   5 }, {   6,   4 }, {  10,   4 },
116
    {   7,   3 }, {   9,   3 },
117
    /* bitalloc_17_e - 17 entries */
118
    {   8,   1 }, {   7,   3 }, {   9,   3 }, {  10,   4 }, {   3,   6 },
119
    {  13,   6 }, {   5,   5 }, {  11,   5 }, {   0,   8 }, {  16,   8 },
120
    {   2,   7 }, {   4,   6 }, {  12,   6 }, {  14,   7 }, {   1,   8 },
121
    {  15,   8 }, {   6,   5 },
122
    /* bitalloc_17_f - 17 entries */
123
    {  15,   6 }, {   0,   8 }, {  16,   8 }, {   1,   7 }, {   3,   5 },
124
    {   4,   4 }, {   6,   3 }, {  10,   3 }, {  12,   4 }, {  13,   5 },
125
    {   2,   6 }, {  14,   6 }, {   7,   3 }, {   9,   3 }, {   8,   3 },
126
    {   5,   4 }, {  11,   4 },
127
    /* bitalloc_17_g - 17 entries */
128
    {   6,   3 }, {  10,   3 }, {   5,   4 }, {  11,   4 }, {   0,   8 },
129
    {  16,   8 }, {   2,   7 }, {   3,   6 }, {   4,   5 }, {  12,   5 },
130
    {  13,   6 }, {  14,   7 }, {   1,   8 }, {  15,   8 }, {   8,   2 },
131
    {   7,   3 }, {   9,   3 },
132
    /* bitalloc_25_a - 25 entries */
133
    {  10,   3 }, {  14,   3 }, {   8,   4 }, {  16,   4 }, {  11,   3 },
134
    {  13,   3 }, {  21,   8 }, {  22,  10 }, {  23,  12 }, {   0,  14 },
135
    {  24,  14 }, {   1,  13 }, {   2,  11 }, {   3,   9 }, {   4,   8 },
136
    {  20,   8 }, {   5,   7 }, {  19,   7 }, {   7,   5 }, {  17,   5 },
137
    {   6,   6 }, {  18,   6 }, {  12,   3 }, {   9,   4 }, {  15,   4 },
138
    /* bitalloc_25_b - 25 entries */
139
    {   3,   6 }, {  21,   6 }, {  23,   7 }, {   2,   7 }, {  22,   7 },
140
    {   0,   9 }, {  24,   9 }, {   1,   8 }, {   8,   4 }, {  11,   3 },
141
    {  13,   3 }, {  16,   4 }, {   6,   5 }, {  18,   5 }, {   9,   4 },
142
    {  15,   4 }, {  12,   3 }, {   4,   6 }, {  20,   6 }, {   7,   5 },
143
    {  17,   5 }, {   5,   6 }, {  19,   6 }, {  10,   4 }, {  14,   4 },
144
    /* bitalloc_25_c - 25 entries */
145
    {   7,   4 }, {  17,   4 }, {  12,   3 }, {  20,   5 }, {  22,   6 },
146
    {   0,   8 }, {  24,   8 }, {   1,   7 }, {   8,   4 }, {  16,   4 },
147
    {   5,   5 }, {  19,   5 }, {   9,   4 }, {  15,   4 }, {   3,   6 },
148
    {  21,   6 }, {   6,   5 }, {  10,   4 }, {  14,   4 }, {  18,   5 },
149
    {  23,   7 }, {   2,   7 }, {   4,   6 }, {  11,   4 }, {  13,   4 },
150
    /* bitalloc_25_d - 25 entries */
151
    {  10,   3 }, {  14,   3 }, {   9,   4 }, {  15,   4 }, {   8,   5 },
152
    {  16,   5 }, {   7,   6 }, {  17,   6 }, {   0,  12 }, {  24,  12 },
153
    {   1,  12 }, {  23,  12 }, {   2,  11 }, {  22,  11 }, {   3,  10 },
154
    {  21,  10 }, {   5,   8 }, {   6,   7 }, {  18,   7 }, {  19,   8 },
155
    {   4,   9 }, {  20,   9 }, {  12,   2 }, {  11,   3 }, {  13,   3 },
156
    /* bitalloc_25_e - 25 entries */
157
    {   9,   4 }, {  15,   4 }, {   7,   5 }, {  17,   5 }, {   2,   7 },
158
    {  22,   7 }, {   5,   6 }, {  19,   6 }, {   0,   8 }, {  24,   8 },
159
    {   3,   7 }, {  11,   3 }, {  13,   3 }, {   8,   5 }, {  16,   5 },
160
    {  21,   7 }, {   1,   8 }, {  23,   8 }, {   6,   6 }, {  18,   6 },
161
    {   4,   7 }, {  20,   7 }, {  10,   4 }, {  14,   4 }, {  12,   2 },
162
    /* bitalloc_25_f - 25 entries */
163
    {  13,   3 }, {  12,   3 }, {   7,   4 }, {  17,   4 }, {   5,   5 },
164
    {  19,   5 }, {   8,   4 }, {  16,   4 }, {   4,   6 }, {  20,   6 },
165
    {   6,   5 }, {   9,   4 }, {  15,   4 }, {  18,   5 }, {  23,   8 },
166
    {   0,  10 }, {  24,  10 }, {   1,   9 }, {   3,   7 }, {  21,   7 },
167
    {   2,   8 }, {  22,   8 }, {  10,   4 }, {  14,   4 }, {  11,   4 },
168
    /* bitalloc_25_g - 25 entries */
169
    {  14,   3 }, {  17,   5 }, {   4,   7 }, {  20,   7 }, {   6,   6 },
170
    {   9,   4 }, {  12,   2 }, {  15,   4 }, {  18,   6 }, {   3,   8 },
171
    {  21,   8 }, {   5,   7 }, {   8,   5 }, {  11,   3 }, {  13,   3 },
172
    {  16,   5 }, {  19,   7 }, {   0,  10 }, {  24,  10 }, {   2,   9 },
173
    {  22,   9 }, {   1,  10 }, {  23,  10 }, {   7,   6 }, {  10,   4 },
174
    /* bitalloc_33_a - 33 entries */
175
    {  15,   3 }, {  17,   3 }, {  16,   3 }, {  21,   4 }, {   8,   6 },
176
    {  24,   6 }, {  10,   5 }, {  12,   4 }, {  20,   4 }, {  22,   5 },
177
    {   7,   7 }, {  25,   7 }, {   0,  13 }, {  32,  13 }, {   1,  13 },
178
    {  31,  13 }, {   2,  12 }, {  30,  12 }, {   3,  11 }, {  29,  11 },
179
    {   4,  10 }, {  28,  10 }, {   6,   8 }, {  26,   8 }, {   5,   9 },
180
    {  27,   9 }, {  13,   4 }, {  19,   4 }, {  14,   4 }, {  18,   4 },
181
    {   9,   6 }, {  23,   6 }, {  11,   5 },
182
    /* bitalloc_33_b - 33 entries */
183
    {   8,   5 }, {  24,   5 }, {  12,   4 }, {  16,   3 }, {  20,   4 },
184
    {   3,   7 }, {  29,   7 }, {   6,   6 }, {   9,   5 }, {  23,   5 },
185
    {  26,   6 }, {  31,   8 }, {   2,   8 }, {   4,   7 }, {  13,   4 },
186
    {  19,   4 }, {  10,   5 }, {  22,   5 }, {  14,   4 }, {  18,   4 },
187
    {  28,   7 }, {  30,   8 }, {   0,  10 }, {  32,  10 }, {   1,   9 },
188
    {   7,   6 }, {  25,   6 }, {   5,   7 }, {  27,   7 }, {  11,   5 },
189
    {  21,   5 }, {  15,   4 }, {  17,   4 },
190
    /* bitalloc_33_c - 33 entries */
191
    {  25,   5 }, {  31,   7 }, {   2,   7 }, {   4,   6 }, {  12,   4 },
192
    {  20,   4 }, {  13,   4 }, {  19,   4 }, {   8,   5 }, {  24,   5 },
193
    {  28,   6 }, {  30,   7 }, {   0,   9 }, {  32,   9 }, {   1,   8 },
194
    {   5,   6 }, {  27,   6 }, {  14,   4 }, {  18,   4 }, {   9,   5 },
195
    {  23,   5 }, {  15,   4 }, {  17,   4 }, {  10,   5 }, {  22,   5 },
196
    {  16,   4 }, {   3,   7 }, {  29,   7 }, {   6,   6 }, {  11,   5 },
197
    {  21,   5 }, {  26,   6 }, {   7,   6 },
198
    /* bitalloc_33_d - 33 entries */
199
    {  18,   3 }, {  21,   5 }, {   8,   7 }, {  24,   7 }, {  10,   6 },
200
    {  13,   4 }, {  16,   2 }, {  19,   4 }, {  22,   6 }, {   7,   8 },
201
    {  25,   8 }, {   9,   7 }, {  12,   5 }, {  15,   3 }, {  17,   3 },
202
    {  20,   5 }, {  23,   7 }, {   6,   9 }, {  26,   9 }, {   5,  10 },
203
    {  27,  10 }, {   4,  11 }, {  28,  11 }, {   3,  12 }, {  29,  12 },
204
    {   0,  14 }, {  32,  14 }, {   1,  14 }, {  31,  14 }, {   2,  13 },
205
    {  30,  13 }, {  11,   6 }, {  14,   4 },
206
    /* bitalloc_33_e - 33 entries */
207
    {  19,   4 }, {  11,   5 }, {  21,   5 }, {  15,   3 }, {  17,   3 },
208
    {   5,   7 }, {  27,   7 }, {   2,   8 }, {  30,   8 }, {   6,   7 },
209
    {   9,   6 }, {  23,   6 }, {  14,   4 }, {  16,   2 }, {  18,   4 },
210
    {  12,   5 }, {  20,   5 }, {  26,   7 }, {   3,   8 }, {  29,   8 },
211
    {   0,   9 }, {  32,   9 }, {   4,   8 }, {   7,   7 }, {  10,   6 },
212
    {  22,   6 }, {  25,   7 }, {  28,   8 }, {   1,   9 }, {  31,   9 },
213
    {   8,   7 }, {  24,   7 }, {  13,   5 },
214
    /* bitalloc_33_f - 33 entries */
215
    {  11,   4 }, {  21,   4 }, {   5,   6 }, {  27,   6 }, {   8,   5 },
216
    {  12,   4 }, {  20,   4 }, {  24,   5 }, {   4,   7 }, {  28,   7 },
217
    {   6,   6 }, {  13,   4 }, {  19,   4 }, {  14,   4 }, {  18,   4 },
218
    {   9,   5 }, {  23,   5 }, {  15,   4 }, {  17,   4 }, {  16,   4 },
219
    {  26,   6 }, {  31,   9 }, {   0,  11 }, {  32,  11 }, {   1,  10 },
220
    {   3,   8 }, {  29,   8 }, {   2,   9 }, {  30,   9 }, {  10,   5 },
221
    {  22,   5 }, {   7,   6 }, {  25,   6 },
222
    /* bitalloc_33_g - 33 entries */
223
    {  12,   4 }, {  20,   4 }, {  29,   8 }, {   1,   9 }, {  31,   9 },
224
    {   6,   7 }, {   8,   6 }, {  10,   5 }, {  22,   5 }, {  24,   6 },
225
    {  26,   7 }, {   4,   8 }, {  28,   8 }, {  15,   3 }, {  17,   3 },
226
    {  13,   4 }, {  19,   4 }, {   2,   9 }, {  30,   9 }, {   0,  10 },
227
    {  32,  10 }, {   3,   9 }, {   7,   7 }, {   9,   6 }, {  11,   5 },
228
    {  21,   5 }, {  23,   6 }, {  25,   7 }, {   5,   8 }, {  27,   8 },
229
    {  16,   3 }, {  14,   4 }, {  18,   4 },
230
    /* bitalloc_65_a - 65 entries */
231
    {  35,   4 }, {  30,   4 }, {  34,   4 }, {  42,   5 }, {  23,   5 },
232
    {  31,   4 }, {  33,   4 }, {  32,   4 }, {  41,   5 }, {  19,   6 },
233
    {  45,   6 }, {  16,   7 }, {  48,   7 }, {  20,   6 }, {  24,   5 },
234
    {  40,   5 }, {  44,   6 }, {  14,   8 }, {  50,   8 }, {  57,  11 },
235
    {   4,  13 }, {  60,  13 }, {   6,  12 }, {  58,  12 }, {   3,  14 },
236
    {  61,  14 }, {   2,  15 }, {  62,  15 }, {   0,  16 }, {  64,  16 },
237
    {   1,  16 }, {  63,  16 }, {   8,  11 }, {  12,   9 }, {  52,   9 },
238
    {  10,  10 }, {  54,  10 }, {  25,   5 }, {  39,   5 }, {  17,   7 },
239
    {  47,   7 }, {  21,   6 }, {  26,   5 }, {  38,   5 }, {  43,   6 },
240
    {  15,   8 }, {  49,   8 }, {  18,   7 }, {  27,   5 }, {  37,   5 },
241
    {  28,   5 }, {  36,   5 }, {  46,   7 }, {  56,  11 }, {   5,  13 },
242
    {  59,  13 }, {   7,  12 }, {   9,  11 }, {  55,  11 }, {  13,   9 },
243
    {  51,   9 }, {  11,  10 }, {  53,  10 }, {  22,   6 }, {  29,   5 },
244
    /* bitalloc_65_b - 65 entries */
245
    {  48,   6 }, {   3,   9 }, {  61,   9 }, {   6,   8 }, {  11,   7 },
246
    {  53,   7 }, {  58,   8 }, {   7,   8 }, {  17,   6 }, {  31,   4 },
247
    {  33,   4 }, {  24,   5 }, {  40,   5 }, {  32,   4 }, {  47,   6 },
248
    {  18,   6 }, {  25,   5 }, {  39,   5 }, {  46,   6 }, {  57,   8 },
249
    {  63,  10 }, {   2,  10 }, {   4,   9 }, {  12,   7 }, {  52,   7 },
250
    {  13,   7 }, {  19,   6 }, {  26,   5 }, {  38,   5 }, {  45,   6 },
251
    {  51,   7 }, {   8,   8 }, {  56,   8 }, {  27,   5 }, {  37,   5 },
252
    {  20,   6 }, {  44,   6 }, {  60,   9 }, {  62,  10 }, {   0,  12 },
253
    {  64,  12 }, {   1,  11 }, {   5,   9 }, {  59,   9 }, {  14,   7 },
254
    {  50,   7 }, {   9,   8 }, {  55,   8 }, {  28,   5 }, {  36,   5 },
255
    {  21,   6 }, {  43,   6 }, {  29,   5 }, {  35,   5 }, {  15,   7 },
256
    {  49,   7 }, {  22,   6 }, {  42,   6 }, {  10,   8 }, {  54,   8 },
257
    {  16,   7 }, {  30,   5 }, {  34,   5 }, {  23,   6 }, {  41,   6 },
258
    /* bitalloc_65_c - 65 entries */
259
    {  23,   5 }, {  41,   5 }, {  50,   6 }, {   8,   7 }, {  56,   7 },
260
    {  24,   5 }, {  40,   5 }, {  15,   6 }, {  49,   6 }, {  25,   5 },
261
    {  39,   5 }, {  16,   6 }, {  48,   6 }, {  26,   5 }, {  38,   5 },
262
    {  60,   8 }, {   5,   8 }, {   9,   7 }, {  55,   7 }, {  10,   7 },
263
    {  27,   5 }, {  37,   5 }, {  17,   6 }, {  47,   6 }, {  28,   5 },
264
    {  36,   5 }, {  54,   7 }, {  59,   8 }, {  62,   9 }, {   0,  11 },
265
    {  64,  11 }, {   1,  10 }, {  18,   6 }, {  29,   5 }, {  35,   5 },
266
    {  46,   6 }, {  11,   7 }, {  53,   7 }, {  19,   6 }, {  45,   6 },
267
    {  30,   5 }, {  34,   5 }, {  31,   5 }, {  33,   5 }, {   6,   8 },
268
    {  58,   8 }, {  12,   7 }, {  20,   6 }, {  44,   6 }, {  52,   7 },
269
    {   3,   9 }, {  61,   9 }, {   7,   8 }, {  32,   5 }, {  21,   6 },
270
    {  43,   6 }, {  13,   7 }, {  51,   7 }, {  22,   6 }, {  42,   6 },
271
    {  57,   8 }, {  63,  10 }, {   2,  10 }, {   4,   9 }, {  14,   7 },
272
    /* bitalloc_65_d - 65 entries */
273
    {  31,   3 }, {  33,   3 }, {  48,   8 }, {  11,  10 }, {  53,  10 },
274
    {  14,   9 }, {  50,   9 }, {   9,  11 }, {  55,  11 }, {  12,  10 },
275
    {  17,   8 }, {  20,   7 }, {  44,   7 }, {  23,   6 }, {  41,   6 },
276
    {  26,   5 }, {  38,   5 }, {  29,   4 }, {  35,   4 }, {  32,   3 },
277
    {  47,   8 }, {  52,  10 }, {  60,  13 }, {   3,  14 }, {  61,  14 },
278
    {   7,  12 }, {  57,  12 }, {   5,  13 }, {  59,  13 }, {  15,   9 },
279
    {  18,   8 }, {  46,   8 }, {  21,   7 }, {  43,   7 }, {  24,   6 },
280
    {  40,   6 }, {  27,   5 }, {  37,   5 }, {  30,   4 }, {  34,   4 },
281
    {  49,   9 }, {  10,  11 }, {  54,  11 }, {  13,  10 }, {  51,  10 },
282
    {   8,  12 }, {  56,  12 }, {   0,  15 }, {  64,  15 }, {   1,  15 },
283
    {  63,  15 }, {   2,  15 }, {  62,  15 }, {   4,  14 }, {   6,  13 },
284
    {  58,  13 }, {  16,   9 }, {  19,   8 }, {  45,   8 }, {  22,   7 },
285
    {  42,   7 }, {  25,   6 }, {  39,   6 }, {  28,   5 }, {  36,   5 },
286
    /* bitalloc_65_e - 65 entries */
287
    {  33,   3 }, {  21,   6 }, {  43,   6 }, {  26,   5 }, {  38,   5 },
288
    {  16,   7 }, {  48,   7 }, {  22,   6 }, {  42,   6 }, {  10,   8 },
289
    {  54,   8 }, {   4,   9 }, {  60,   9 }, {  11,   8 }, {  27,   5 },
290
    {  37,   5 }, {  17,   7 }, {  47,   7 }, {  23,   6 }, {  30,   4 },
291
    {  34,   4 }, {  32,   3 }, {  41,   6 }, {  53,   8 }, {   5,   9 },
292
    {  59,   9 }, {  18,   7 }, {  46,   7 }, {  12,   8 }, {  52,   8 },
293
    {  24,   6 }, {  28,   5 }, {  36,   5 }, {  40,   6 }, {   6,   9 },
294
    {  58,   9 }, {  13,   8 }, {  19,   7 }, {  45,   7 }, {  51,   8 },
295
    {   0,  10 }, {  64,  10 }, {   7,   9 }, {  57,   9 }, {   1,  10 },
296
    {  63,  10 }, {  14,   8 }, {  50,   8 }, {   8,   9 }, {  56,   9 },
297
    {  20,   7 }, {  44,   7 }, {  25,   6 }, {  39,   6 }, {  15,   8 },
298
    {  49,   8 }, {   2,  10 }, {  62,  10 }, {   9,   9 }, {  55,   9 },
299
    {   3,  10 }, {  61,  10 }, {  29,   5 }, {  35,   5 }, {  31,   4 },
300
    /* bitalloc_65_f - 65 entries */
301
    {  28,   4 }, {  36,   4 }, {  26,   5 }, {  38,   5 }, {  24,   6 },
302
    {  40,   6 }, {  22,   7 }, {  42,   7 }, {  20,   8 }, {  44,   8 },
303
    {  18,   9 }, {  46,   9 }, {  48,  10 }, {  50,  11 }, {  12,  12 },
304
    {  52,  12 }, {   0,  14 }, {  64,  14 }, {   1,  14 }, {  63,  14 },
305
    {  10,  13 }, {  54,  13 }, {   2,  14 }, {  62,  14 }, {   3,  14 },
306
    {  61,  14 }, {   4,  14 }, {  60,  14 }, {   5,  14 }, {  59,  14 },
307
    {   6,  14 }, {  58,  14 }, {   7,  14 }, {  57,  14 }, {   8,  14 },
308
    {  56,  14 }, {  11,  13 }, {  15,  11 }, {  31,   3 }, {  33,   3 },
309
    {  29,   4 }, {  35,   4 }, {  27,   5 }, {  37,   5 }, {  25,   6 },
310
    {  39,   6 }, {  23,   7 }, {  41,   7 }, {  21,   8 }, {  43,   8 },
311
    {  19,   9 }, {  45,   9 }, {  17,  10 }, {  47,  10 }, {  49,  11 },
312
    {  13,  12 }, {  51,  12 }, {  53,  13 }, {   9,  14 }, {  55,  14 },
313
    {  14,  12 }, {  16,  11 }, {  32,   3 }, {  30,   4 }, {  34,   4 },
314
    /* bitalloc_65_g - 65 entries */
315
    {  36,   4 }, {  40,   5 }, {  44,   6 }, {  48,   7 }, {  12,   8 },
316
    {  52,   8 }, {   8,   9 }, {  56,   9 }, {   4,  10 }, {  60,  10 },
317
    {   0,  11 }, {  64,  11 }, {   5,  10 }, {  17,   7 }, {  21,   6 },
318
    {  25,   5 }, {  29,   4 }, {  35,   4 }, {  39,   5 }, {  43,   6 },
319
    {  47,   7 }, {  13,   8 }, {  51,   8 }, {  30,   4 }, {   9,   9 },
320
    {  55,   9 }, {  59,  10 }, {   1,  11 }, {  63,  11 }, {  10,   9 },
321
    {  18,   7 }, {  22,   6 }, {  26,   5 }, {  34,   4 }, {  38,   5 },
322
    {  42,   6 }, {  46,   7 }, {  14,   8 }, {  50,   8 }, {  31,   4 },
323
    {  33,   4 }, {  54,   9 }, {   6,  10 }, {  58,  10 }, {   2,  11 },
324
    {  62,  11 }, {   7,  10 }, {  11,   9 }, {  19,   7 }, {  23,   6 },
325
    {  27,   5 }, {  37,   5 }, {  41,   6 }, {  45,   7 }, {  15,   8 },
326
    {  49,   8 }, {  32,   4 }, {  53,   9 }, {  57,  10 }, {   3,  11 },
327
    {  61,  11 }, {  16,   8 }, {  20,   7 }, {  24,   6 }, {  28,   5 },
328
    /* bitalloc_129_a - 129 entries */
329
    {  66,   4 }, {  31,   8 }, {  97,   8 }, {  19,   9 }, { 109,   9 },
330
    {   6,  10 }, { 122,  10 }, {   7,  10 }, { 121,  10 }, {  52,   6 },
331
    {  76,   6 }, {  43,   7 }, {  85,   7 }, {  59,   5 }, {  69,   5 },
332
    {  32,   8 }, {  96,   8 }, {  20,   9 }, { 108,   9 }, {  33,   8 },
333
    {  53,   6 }, {  75,   6 }, {  95,   8 }, {   8,  10 }, { 120,  10 },
334
    {  21,   9 }, {  44,   7 }, {  84,   7 }, { 107,   9 }, {   9,  10 },
335
    { 119,  10 }, {  34,   8 }, {  94,   8 }, {  22,   9 }, { 106,   9 },
336
    {  45,   7 }, {  54,   6 }, {  74,   6 }, {  83,   7 }, {  10,  10 },
337
    { 118,  10 }, {  23,   9 }, {  35,   8 }, {  93,   8 }, { 105,   9 },
338
    {  11,  10 }, { 117,  10 }, {  46,   7 }, {  60,   5 }, {  68,   5 },
339
    {  82,   7 }, {  24,   9 }, { 104,   9 }, {  36,   8 }, {  55,   6 },
340
    {  73,   6 }, {  92,   8 }, {  12,  10 }, { 116,  10 }, {  25,   9 },
341
    {  47,   7 }, {  81,   7 }, {  37,   8 }, {  91,   8 }, { 103,   9 },
342
    {  13,  10 }, { 115,  10 }, {  26,   9 }, { 102,   9 }, {  48,   7 },
343
    {  64,   4 }, {  63,   4 }, {  65,   4 }, {  56,   6 }, {  72,   6 },
344
    {  61,   5 }, {  67,   5 }, {  80,   7 }, {  38,   8 }, {  90,   8 },
345
    {   0,  11 }, { 128,  11 }, {  14,  10 }, { 114,  10 }, {   1,  11 },
346
    { 127,  11 }, {  27,   9 }, { 101,   9 }, {  49,   7 }, {  79,   7 },
347
    {  39,   8 }, {  89,   8 }, {  57,   6 }, {  71,   6 }, {  15,  10 },
348
    { 113,  10 }, {  28,   9 }, { 100,   9 }, {   2,  11 }, { 126,  11 },
349
    {  16,  10 }, {  40,   8 }, {  88,   8 }, {  50,   7 }, {  78,   7 },
350
    { 112,  10 }, {   3,  11 }, { 125,  11 }, {  29,   9 }, {  99,   9 },
351
    {  17,  10 }, { 111,  10 }, {  41,   8 }, {  87,   8 }, {  58,   6 },
352
    {   4,  11 }, { 124,  11 }, {  18,  10 }, {  30,   9 }, {  98,   9 },
353
    { 110,  10 }, {   5,  11 }, { 123,  11 }, {  51,   7 }, {  70,   6 },
354
    {  77,   7 }, {  42,   8 }, {  86,   8 }, {  62,   5 },
355
    /* bitalloc_129_b - 129 entries */
356
    {  67,   5 }, {  21,   8 }, { 107,   8 }, {  33,   7 }, {  95,   7 },
357
    {  13,   9 }, { 115,   9 }, {  22,   8 }, {  47,   6 }, {  81,   6 },
358
    {  62,   5 }, {  66,   5 }, {  34,   7 }, {  94,   7 }, {  48,   6 },
359
    {  63,   5 }, {  65,   5 }, {  80,   6 }, { 106,   8 }, { 121,  10 },
360
    { 127,  12 }, {   2,  12 }, {   4,  11 }, {  14,   9 }, {  23,   8 },
361
    { 105,   8 }, {  35,   7 }, {  93,   7 }, {  49,   6 }, {  64,   5 },
362
    {  79,   6 }, { 114,   9 }, {   8,  10 }, { 120,  10 }, {  24,   8 },
363
    {  36,   7 }, {  50,   6 }, {  78,   6 }, {  92,   7 }, { 104,   8 },
364
    {  15,   9 }, { 113,   9 }, {  51,   6 }, {  77,   6 }, {  37,   7 },
365
    {  91,   7 }, {  25,   8 }, { 103,   8 }, {  38,   7 }, {  52,   6 },
366
    {  76,   6 }, {  90,   7 }, {  16,   9 }, { 112,   9 }, {  26,   8 },
367
    {  53,   6 }, {  75,   6 }, { 102,   8 }, { 124,  11 }, {   5,  11 },
368
    {   9,  10 }, { 119,  10 }, {  10,  10 }, {  39,   7 }, {  89,   7 },
369
    {  27,   8 }, { 101,   8 }, {  54,   6 }, {  74,   6 }, {  40,   7 },
370
    {  88,   7 }, {  17,   9 }, { 111,   9 }, {  28,   8 }, { 100,   8 },
371
    { 118,  10 }, { 123,  11 }, { 126,  12 }, {   0,  14 }, { 128,  14 },
372
    {   1,  13 }, {  18,   9 }, {  55,   6 }, {  73,   6 }, {  41,   7 },
373
    {  87,   7 }, {  56,   6 }, {  72,   6 }, {  29,   8 }, {  99,   8 },
374
    {  42,   7 }, {  86,   7 }, { 110,   9 }, {  11,  10 }, { 117,  10 },
375
    {  19,   9 }, { 109,   9 }, {  57,   6 }, {  71,   6 }, {  43,   7 },
376
    {  85,   7 }, {  58,   6 }, {  70,   6 }, {  30,   8 }, {  98,   8 },
377
    {  44,   7 }, {  84,   7 }, {  31,   8 }, {  97,   8 }, {  59,   6 },
378
    {  69,   6 }, {   6,  11 }, { 122,  11 }, {  12,  10 }, {  20,   9 },
379
    { 108,   9 }, { 116,  10 }, {   3,  12 }, { 125,  12 }, {   7,  11 },
380
    {  45,   7 }, {  60,   6 }, {  68,   6 }, {  83,   7 }, {  32,   8 },
381
    {  96,   8 }, {  46,   7 }, {  82,   7 }, {  61,   6 },
382
    /* bitalloc_129_c - 129 entries */
383
    { 101,   7 }, { 113,   8 }, { 120,   9 }, { 127,  11 }, {   2,  11 },
384
    {   4,  10 }, {  28,   7 }, { 100,   7 }, {  46,   6 }, {  82,   6 },
385
    {  16,   8 }, { 112,   8 }, {  29,   7 }, {  47,   6 }, {  81,   6 },
386
    {  48,   6 }, {  80,   6 }, {  99,   7 }, {  30,   7 }, {  98,   7 },
387
    {  17,   8 }, { 111,   8 }, {  49,   6 }, {  79,   6 }, {  50,   6 },
388
    {  78,   6 }, {  31,   7 }, {  97,   7 }, {   9,   9 }, { 119,   9 },
389
    {  18,   8 }, { 110,   8 }, { 124,  10 }, {   5,  10 }, {  10,   9 },
390
    {  51,   6 }, {  77,   6 }, {  32,   7 }, {  96,   7 }, {  52,   6 },
391
    {  76,   6 }, {  33,   7 }, {  95,   7 }, {  53,   6 }, {  75,   6 },
392
    {  19,   8 }, { 109,   8 }, {  34,   7 }, {  54,   6 }, {  74,   6 },
393
    {  94,   7 }, { 118,   9 }, { 123,  10 }, { 126,  11 }, {   0,  13 },
394
    { 128,  13 }, {   1,  12 }, {  20,   8 }, {  55,   6 }, {  73,   6 },
395
    { 108,   8 }, {  11,   9 }, { 117,   9 }, {  35,   7 }, {  93,   7 },
396
    {  36,   7 }, {  56,   6 }, {  72,   6 }, {  92,   7 }, {  21,   8 },
397
    { 107,   8 }, {  57,   6 }, {  71,   6 }, {  37,   7 }, {  91,   7 },
398
    {  58,   6 }, {  70,   6 }, {  22,   8 }, { 106,   8 }, {  38,   7 },
399
    {  59,   6 }, {  69,   6 }, {  90,   7 }, {  12,   9 }, { 116,   9 },
400
    {  23,   8 }, {  60,   6 }, {  68,   6 }, {  39,   7 }, {  89,   7 },
401
    {  61,   6 }, {  67,   6 }, { 105,   8 }, {   6,  10 }, { 122,  10 },
402
    {  13,   9 }, {  40,   7 }, {  62,   6 }, {  66,   6 }, {  88,   7 },
403
    {  24,   8 }, { 104,   8 }, {  63,   6 }, {  65,   6 }, {  41,   7 },
404
    {  87,   7 }, { 115,   9 }, {   3,  11 }, { 125,  11 }, {   7,  10 },
405
    {  25,   8 }, {  42,   7 }, {  64,   6 }, {  86,   7 }, { 103,   8 },
406
    {  14,   9 }, { 114,   9 }, {  43,   7 }, {  85,   7 }, {  26,   8 },
407
    { 102,   8 }, {  44,   7 }, {  84,   7 }, { 121,  10 }, {   8,  10 },
408
    {  15,   9 }, {  27,   8 }, {  45,   7 }, {  83,   7 },
409
    /* bitalloc_129_d - 129 entries */
410
    {  72,   5 }, {  83,   7 }, {  34,   9 }, {  94,   9 }, {  40,   8 },
411
    {  51,   6 }, {  62,   4 }, {  66,   4 }, {  77,   6 }, {  88,   8 },
412
    {  18,  12 }, { 110,  12 }, {   9,  14 }, { 119,  14 }, {  14,  13 },
413
    {  19,  12 }, {  29,  10 }, {  99,  10 }, {  24,  11 }, { 104,  11 },
414
    {  46,   7 }, {  57,   5 }, {  71,   5 }, {  82,   7 }, {  35,   9 },
415
    {  93,   9 }, {  41,   8 }, {  52,   6 }, {  63,   4 }, {  65,   4 },
416
    {  76,   6 }, {  87,   8 }, {  30,  10 }, {  98,  10 }, { 109,  12 },
417
    { 114,  13 }, {   6,  15 }, { 122,  15 }, {  10,  14 }, {  25,  11 },
418
    { 103,  11 }, {  15,  13 }, { 113,  13 }, {  20,  12 }, {  47,   7 },
419
    {  58,   5 }, {  70,   5 }, {  81,   7 }, {  36,   9 }, {  92,   9 },
420
    {  42,   8 }, {  53,   6 }, {  64,   4 }, {  75,   6 }, {  86,   8 },
421
    {  31,  10 }, {  97,  10 }, { 108,  12 }, { 118,  14 }, {   7,  15 },
422
    { 121,  15 }, {   0,  16 }, { 128,  16 }, {   1,  16 }, { 127,  16 },
423
    {   2,  16 }, { 126,  16 }, {   3,  16 }, { 125,  16 }, {  26,  11 },
424
    { 102,  11 }, {  11,  14 }, { 117,  14 }, {  16,  13 }, {  21,  12 },
425
    {  48,   7 }, {  59,   5 }, {  69,   5 }, {  80,   7 }, {  37,   9 },
426
    {  91,   9 }, {  43,   8 }, {  54,   6 }, {  74,   6 }, {  85,   8 },
427
    {  32,  10 }, {  96,  10 }, { 107,  12 }, { 112,  13 }, {   4,  16 },
428
    { 124,  16 }, {   8,  15 }, {  12,  14 }, {  27,  11 }, { 101,  11 },
429
    {  22,  12 }, { 106,  12 }, {  49,   7 }, {  60,   5 }, {  68,   5 },
430
    {  79,   7 }, {  38,   9 }, {  90,   9 }, {  44,   8 }, {  55,   6 },
431
    {  73,   6 }, {  84,   8 }, {  33,  10 }, {  95,  10 }, { 116,  14 },
432
    { 120,  15 }, {   5,  16 }, { 123,  16 }, {  17,  13 }, { 111,  13 },
433
    {  13,  14 }, { 115,  14 }, {  28,  11 }, { 100,  11 }, {  23,  12 },
434
    { 105,  12 }, {  50,   7 }, {  61,   5 }, {  67,   5 }, {  78,   7 },
435
    {  39,   9 }, {  89,   9 }, {  45,   8 }, {  56,   6 },
436
    /* bitalloc_129_e - 129 entries */
437
    {  70,   5 }, {  59,   5 }, {  69,   5 }, {  60,   5 }, {  68,   5 },
438
    {  37,   7 }, {  91,   7 }, {  45,   6 }, {  61,   5 }, {  67,   5 },
439
    {  62,   5 }, {  66,   5 }, {  63,   5 }, {  65,   5 }, {  64,   5 },
440
    {  83,   6 }, {  97,   8 }, { 102,   9 }, {  18,  11 }, { 110,  11 },
441
    {  22,  10 }, {  38,   7 }, {  46,   6 }, {  82,   6 }, {  90,   7 },
442
    {  32,   8 }, {  96,   8 }, {  47,   6 }, {  81,   6 }, { 106,  10 },
443
    {  15,  12 }, { 113,  12 }, {  19,  11 }, {  27,   9 }, { 101,   9 },
444
    {  23,  10 }, { 105,  10 }, {  39,   7 }, {  89,   7 }, {  33,   8 },
445
    {  95,   8 }, {  48,   6 }, {  80,   6 }, {  49,   6 }, {  79,   6 },
446
    {  40,   7 }, {  88,   7 }, {  28,   9 }, { 100,   9 }, { 109,  11 },
447
    {   6,  15 }, { 122,  15 }, {   9,  14 }, {  12,  13 }, { 116,  13 },
448
    { 119,  14 }, {   0,  16 }, {   4,  16 }, {   3,  16 }, {   2,  16 },
449
    {  24,  10 }, { 104,  10 }, {  16,  12 }, { 112,  12 }, {  20,  11 },
450
    {  34,   8 }, {  94,   8 }, {  50,   6 }, {  78,   6 }, {  41,   7 },
451
    {  87,   7 }, {  51,   6 }, {  77,   6 }, {  52,   6 }, {  76,   6 },
452
    {  29,   9 }, {  99,   9 }, {  35,   8 }, {  42,   7 }, {  86,   7 },
453
    {  93,   8 }, { 108,  11 }, {   1,  16 }, { 128,  16 }, { 126,  16 },
454
    { 127,  16 }, { 124,  16 }, { 125,  16 }, {   7,  15 }, {  13,  13 },
455
    { 115,  13 }, {  10,  14 }, { 118,  14 }, {  25,  10 }, { 103,  10 },
456
    {  17,  12 }, { 111,  12 }, {  21,  11 }, {  53,   6 }, {  75,   6 },
457
    {  54,   6 }, {  74,   6 }, {  43,   7 }, {  85,   7 }, {  55,   6 },
458
    {  73,   6 }, {  30,   9 }, {  98,   9 }, {  36,   8 }, {  92,   8 },
459
    { 107,  11 }, { 121,  15 }, {   5,  16 }, { 123,  16 }, {   8,  15 },
460
    { 120,  15 }, {  14,  13 }, { 114,  13 }, {  11,  14 }, { 117,  14 },
461
    {  26,  10 }, {  31,   9 }, {  56,   6 }, {  72,   6 }, {  57,   6 },
462
    {  71,   6 }, {  44,   7 }, {  84,   7 }, {  58,   6 },
463
    /* bitalloc_129_f - 129 entries */
464
    {  42,   6 }, {  86,   6 }, {  43,   6 }, {  85,   6 }, { 107,   8 },
465
    { 114,   9 }, {   9,  10 }, { 119,  10 }, {  30,   7 }, {  98,   7 },
466
    {  31,   7 }, {  44,   6 }, {  84,   6 }, {  45,   6 }, {  83,   6 },
467
    {  97,   7 }, {  22,   8 }, { 106,   8 }, {  46,   6 }, {  82,   6 },
468
    {  32,   7 }, {  96,   7 }, {  47,   6 }, {  81,   6 }, {  15,   9 },
469
    { 113,   9 }, {  23,   8 }, { 105,   8 }, {  10,  10 }, { 118,  10 },
470
    {  16,   9 }, {  48,   6 }, {  80,   6 }, {  33,   7 }, {  95,   7 },
471
    {  49,   6 }, {  79,   6 }, {  50,   6 }, {  78,   6 }, { 112,   9 },
472
    {   3,  12 }, { 125,  12 }, {   6,  11 }, { 122,  11 }, {   7,  11 },
473
    {  24,   8 }, {  34,   7 }, {  51,   6 }, {  77,   6 }, {  94,   7 },
474
    { 104,   8 }, {  11,  10 }, { 117,  10 }, {  17,   9 }, {  52,   6 },
475
    {  76,   6 }, {  53,   6 }, {  75,   6 }, {  35,   7 }, {  93,   7 },
476
    {  54,   6 }, {  74,   6 }, {  55,   6 }, {  73,   6 }, {  25,   8 },
477
    { 103,   8 }, {  36,   7 }, {  56,   6 }, {  72,   6 }, {  57,   6 },
478
    {  71,   6 }, {  92,   7 }, { 111,   9 }, { 121,  11 }, { 127,  13 },
479
    {   2,  13 }, {   4,  12 }, {  12,  10 }, {  18,   9 }, { 110,   9 },
480
    {  58,   6 }, {  70,   6 }, {  59,   6 }, {  69,   6 }, {  60,   6 },
481
    {  68,   6 }, {  61,   6 }, {  67,   6 }, {  62,   6 }, {  66,   6 },
482
    {  26,   8 }, { 102,   8 }, {  37,   7 }, {  63,   6 }, {  65,   6 },
483
    {  64,   6 }, {  91,   7 }, {  38,   7 }, {  90,   7 }, {  27,   8 },
484
    { 101,   8 }, { 116,  10 }, { 124,  12 }, { 126,  13 }, {   0,  15 },
485
    { 128,  15 }, {   1,  14 }, {   8,  11 }, {  19,   9 }, { 109,   9 },
486
    {  13,  10 }, { 115,  10 }, {  39,   7 }, {  89,   7 }, {  28,   8 },
487
    { 100,   8 }, {  40,   7 }, {  88,   7 }, {  41,   7 }, {  87,   7 },
488
    {  20,   9 }, { 108,   9 }, {  29,   8 }, {  99,   8 }, { 120,  11 },
489
    {   5,  12 }, { 123,  12 }, {  14,  10 }, {  21,   9 },
490
    /* bitalloc_129_g - 129 entries */
491
    {  64,   4 }, {  88,   7 }, {   9,  11 }, { 119,  11 }, {  17,  10 },
492
    {  25,   9 }, {  33,   8 }, {  41,   7 }, {  87,   7 }, {  49,   6 },
493
    {  79,   6 }, {  57,   5 }, {  71,   5 }, {  95,   8 }, { 103,   9 },
494
    { 111,  10 }, {   2,  12 }, { 126,  12 }, {  10,  11 }, {  18,  10 },
495
    { 110,  10 }, {  26,   9 }, {  34,   8 }, {  42,   7 }, {  86,   7 },
496
    {  50,   6 }, {  78,   6 }, {  58,   5 }, {  70,   5 }, {  94,   8 },
497
    { 102,   9 }, { 118,  11 }, {   3,  12 }, { 125,  12 }, {  11,  11 },
498
    { 117,  11 }, {  19,  10 }, { 109,  10 }, {  27,   9 }, {  35,   8 },
499
    {  43,   7 }, {  85,   7 }, {  51,   6 }, {  77,   6 }, {  59,   5 },
500
    {  69,   5 }, {  93,   8 }, { 101,   9 }, {   4,  12 }, { 124,  12 },
501
    {  12,  11 }, {  20,  10 }, {  28,   9 }, { 100,   9 }, {  36,   8 },
502
    {  44,   7 }, {  84,   7 }, {  52,   6 }, {  76,   6 }, {  60,   5 },
503
    {  68,   5 }, {  92,   8 }, { 108,  10 }, { 116,  11 }, {   5,  12 },
504
    { 123,  12 }, {  13,  11 }, { 115,  11 }, {  21,  10 }, {  29,   9 },
505
    {  99,   9 }, {  37,   8 }, {  45,   7 }, {  83,   7 }, {  53,   6 },
506
    {  75,   6 }, {  61,   5 }, {  67,   5 }, {  91,   8 }, { 107,  10 },
507
    {   6,  12 }, { 122,  12 }, {  14,  11 }, {  22,  10 }, { 106,  10 },
508
    {  30,   9 }, {  98,   9 }, {  38,   8 }, {  46,   7 }, {  82,   7 },
509
    {  54,   6 }, {  74,   6 }, {  62,   5 }, {  66,   5 }, {  90,   8 },
510
    { 114,  11 }, {   7,  12 }, { 121,  12 }, {  15,  11 }, { 113,  11 },
511
    {  23,  10 }, { 105,  10 }, {  31,   9 }, {  97,   9 }, {  39,   8 },
512
    {  47,   7 }, {  81,   7 }, {  55,   6 }, {  73,   6 }, {  63,   5 },
513
    {  65,   5 }, {  89,   8 }, {   0,  13 }, { 128,  13 }, {   8,  12 },
514
    {  16,  11 }, {  24,  10 }, {  32,   9 }, {  96,   9 }, { 104,  10 },
515
    { 112,  11 }, { 120,  12 }, {   1,  13 }, { 127,  13 }, {  40,   8 },
516
    {  48,   7 }, {  80,   7 }, {  56,   6 }, {  72,   6 },
517
    /* bit_alloc_12[0] - 12 entries */
518
    {   0,   1 }, {   1,   2 }, {   2,   3 }, {   3,   4 }, {   4,   5 },
519
    {   5,   6 }, {  11,   9 }, {  10,   9 }, {   9,   9 }, {   8,   9 },
520
    {   7,   8 }, {   6,   8 },
521
    /* bit_alloc_12[1] - 12 entries */
522
    {   1,   2 }, {   2,   3 }, {   4,   5 }, {  11,   7 }, {  10,   7 },
523
    {   9,   7 }, {   8,   7 }, {   7,   7 }, {   6,   7 }, {   5,   6 },
524
    {   3,   5 }, {   0,   1 },
525
    /* bit_alloc_12[2] - 12 entries */
526
    {   0,   2 }, {   4,   3 }, {   7,   4 }, {  11,   7 }, {  10,   7 },
527
    {   9,   6 }, {   8,   5 }, {   3,   3 }, {   2,   3 }, {   6,   4 },
528
    {   5,   4 }, {   1,   3 },
529
    /* bit_alloc_12[3] - 12 entries */
530
    {   2,   2 }, {   3,   3 }, {   4,   4 }, {   5,   5 }, {   6,   6 },
531
    {   7,   7 }, {   8,   8 }, {   9,   9 }, {  11,  10 }, {  10,  10 },
532
    {   1,   2 }, {   0,   2 },
533
    /* bit_alloc_12[4] - 12 entries */
534
    {   1,   2 }, {   2,   3 }, {   3,   4 }, {   4,   5 }, {   9,   8 },
535
    {   8,   8 }, {   6,   7 }, {   7,   8 }, {  11,   9 }, {  10,   9 },
536
    {   5,   7 }, {   0,   1 },
537
    /* scale_factor[0] - 129 entries */
538
    {  66,   3 }, {  69,   5 }, {  55,   8 }, {  73,   8 }, {  40,  13 },
539
    {  88,  13 }, {  41,  13 }, {  87,  13 }, {  42,  13 }, {  86,  13 },
540
    {  43,  13 }, {  85,  13 }, {  44,  13 }, {  84,  13 }, {  45,  13 },
541
    {  83,  13 }, {  46,  13 }, {  82,  13 }, {  47,  13 }, {  81,  13 },
542
    {  51,  11 }, {  77,  11 }, {  48,  13 }, {  80,  13 }, {  50,  12 },
543
    {  78,  12 }, {  49,  13 }, {  79,  13 }, {  54,   9 }, {  74,   9 },
544
    {  58,   6 }, {  61,   4 }, {  64,   2 }, {  67,   4 }, {  70,   6 },
545
    {  57,   7 }, {  71,   7 }, {  60,   5 }, {  63,   3 }, {  65,   3 },
546
    {  68,   5 }, {  56,   8 }, {  72,   8 }, {  53,  10 }, {  75,  10 },
547
    {  52,  11 }, {  76,  11 }, {   0,  14 }, { 128,  14 }, {   1,  14 },
548
    { 127,  14 }, {   2,  14 }, { 126,  14 }, {   3,  14 }, { 125,  14 },
549
    {   4,  14 }, { 124,  14 }, {   5,  14 }, { 123,  14 }, {   6,  14 },
550
    { 122,  14 }, {   7,  14 }, { 121,  14 }, {   8,  14 }, { 120,  14 },
551
    {   9,  14 }, { 119,  14 }, {  10,  14 }, { 118,  14 }, {  11,  14 },
552
    { 117,  14 }, {  12,  14 }, { 116,  14 }, {  13,  14 }, { 115,  14 },
553
    {  14,  14 }, { 114,  14 }, {  15,  14 }, { 113,  14 }, {  16,  14 },
554
    { 112,  14 }, {  17,  14 }, { 111,  14 }, {  18,  14 }, { 110,  14 },
555
    {  19,  14 }, { 109,  14 }, {  20,  14 }, { 108,  14 }, {  21,  14 },
556
    { 107,  14 }, {  22,  14 }, { 106,  14 }, {  23,  14 }, { 105,  14 },
557
    {  24,  14 }, { 104,  14 }, {  25,  14 }, { 103,  14 }, {  26,  14 },
558
    { 102,  14 }, {  27,  14 }, { 101,  14 }, {  28,  14 }, { 100,  14 },
559
    {  29,  14 }, {  99,  14 }, {  30,  14 }, {  98,  14 }, {  31,  14 },
560
    {  97,  14 }, {  32,  14 }, {  96,  14 }, {  33,  14 }, {  95,  14 },
561
    {  34,  14 }, {  94,  14 }, {  35,  14 }, {  93,  14 }, {  36,  14 },
562
    {  92,  14 }, {  37,  14 }, {  91,  14 }, {  38,  14 }, {  90,  14 },
563
    {  39,  14 }, {  89,  14 }, {  59,   6 }, {  62,   4 },
564
    /* scale_factor[1] - 129 entries */
565
    {  69,   4 }, {  56,   6 }, {  72,   6 }, {  55,   7 }, {  73,   7 },
566
    {  54,   8 }, {  74,   8 }, {  75,   9 }, {  48,  14 }, {  80,  14 },
567
    {  49,  14 }, {  79,  14 }, {  50,  13 }, {  78,  13 }, {  51,  12 },
568
    {  77,  12 }, {   0,  15 }, { 128,  15 }, {   1,  15 }, { 127,  15 },
569
    {   2,  15 }, { 126,  15 }, {   3,  15 }, { 125,  15 }, {   4,  15 },
570
    { 124,  15 }, {   5,  15 }, { 123,  15 }, {   6,  15 }, { 122,  15 },
571
    {   7,  15 }, { 121,  15 }, {   8,  15 }, { 120,  15 }, {   9,  15 },
572
    { 119,  15 }, {  10,  15 }, { 118,  15 }, {  11,  15 }, { 117,  15 },
573
    {  12,  15 }, { 116,  15 }, {  13,  15 }, { 115,  15 }, {  14,  15 },
574
    { 114,  15 }, {  15,  15 }, { 113,  15 }, {  16,  15 }, { 112,  15 },
575
    {  17,  15 }, { 111,  15 }, {  18,  15 }, { 110,  15 }, {  19,  15 },
576
    { 109,  15 }, {  20,  15 }, { 108,  15 }, {  21,  15 }, { 107,  15 },
577
    {  22,  15 }, { 106,  15 }, {  23,  15 }, { 105,  15 }, {  24,  15 },
578
    { 104,  15 }, {  25,  15 }, { 103,  15 }, {  26,  15 }, { 102,  15 },
579
    {  27,  15 }, { 101,  15 }, {  28,  15 }, { 100,  15 }, {  29,  15 },
580
    {  99,  15 }, {  30,  15 }, {  98,  15 }, {  31,  15 }, {  97,  15 },
581
    {  32,  15 }, {  96,  15 }, {  33,  15 }, {  95,  15 }, {  34,  15 },
582
    {  94,  15 }, {  35,  15 }, {  93,  15 }, {  36,  15 }, {  92,  15 },
583
    {  37,  15 }, {  91,  15 }, {  38,  15 }, {  90,  15 }, {  39,  15 },
584
    {  89,  15 }, {  40,  15 }, {  88,  15 }, {  41,  15 }, {  87,  15 },
585
    {  42,  15 }, {  86,  15 }, {  43,  15 }, {  85,  15 }, {  44,  15 },
586
    {  84,  15 }, {  45,  15 }, {  83,  15 }, {  46,  15 }, {  82,  15 },
587
    {  47,  15 }, {  81,  15 }, {  52,  11 }, {  76,  11 }, {  53,  10 },
588
    {  63,   3 }, {  65,   3 }, {  64,   3 }, {  58,   5 }, {  70,   5 },
589
    {  60,   4 }, {  68,   4 }, {  61,   4 }, {  67,   4 }, {  57,   6 },
590
    {  71,   6 }, {  59,   5 }, {  62,   4 }, {  66,   4 },
591
    /* scale_factor[2] - 129 entries */
592
    {  63,   3 }, {  65,   3 }, {  46,   9 }, {  82,   9 }, {  49,   8 },
593
    {  79,   8 }, {  85,  10 }, {  38,  12 }, {  90,  12 }, {  41,  11 },
594
    {  87,  11 }, {  93,  13 }, {  33,  14 }, {  95,  14 }, {  36,  13 },
595
    {  92,  13 }, {  44,  10 }, {  52,   7 }, {  76,   7 }, {  55,   6 },
596
    {  73,   6 }, {  58,   5 }, {  70,   5 }, {  61,   4 }, {  67,   4 },
597
    {  64,   3 }, {  47,   9 }, {  81,   9 }, {  50,   8 }, {  78,   8 },
598
    {  84,  10 }, {  39,  12 }, {  89,  12 }, {  42,  11 }, {  86,  11 },
599
    {   0,  15 }, { 128,  15 }, {   1,  15 }, { 127,  15 }, {   2,  15 },
600
    { 126,  15 }, {   3,  15 }, { 125,  15 }, {   4,  15 }, { 124,  15 },
601
    {   5,  15 }, { 123,  15 }, {   6,  15 }, { 122,  15 }, {   7,  15 },
602
    { 121,  15 }, {   8,  15 }, { 120,  15 }, {   9,  15 }, { 119,  15 },
603
    {  10,  15 }, { 118,  15 }, {  11,  15 }, { 117,  15 }, {  12,  15 },
604
    { 116,  15 }, {  13,  15 }, { 115,  15 }, {  14,  15 }, { 114,  15 },
605
    {  15,  15 }, { 113,  15 }, {  16,  15 }, { 112,  15 }, {  17,  15 },
606
    { 111,  15 }, {  18,  15 }, { 110,  15 }, {  19,  15 }, { 109,  15 },
607
    {  20,  15 }, { 108,  15 }, {  21,  15 }, { 107,  15 }, {  22,  15 },
608
    { 106,  15 }, {  23,  15 }, { 105,  15 }, {  53,   7 }, {  75,   7 },
609
    {  56,   6 }, {  72,   6 }, {  59,   5 }, {  69,   5 }, {  62,   4 },
610
    {  66,   4 }, {  45,  10 }, {  83,  10 }, {  48,   9 }, {  80,   9 },
611
    {  24,  15 }, { 104,  15 }, {  25,  15 }, { 103,  15 }, {  26,  15 },
612
    { 102,  15 }, {  27,  15 }, { 101,  15 }, {  28,  15 }, { 100,  15 },
613
    {  29,  15 }, {  99,  15 }, {  30,  15 }, {  98,  15 }, {  31,  15 },
614
    {  97,  15 }, {  34,  14 }, {  94,  14 }, {  37,  13 }, {  40,  12 },
615
    {  88,  12 }, {  91,  13 }, {  32,  15 }, {  96,  15 }, {  35,  14 },
616
    {  43,  11 }, {  51,   8 }, {  77,   8 }, {  54,   7 }, {  74,   7 },
617
    {  57,   6 }, {  71,   6 }, {  60,   5 }, {  68,   5 },
618
    /* scale_factor[3] - 129 entries */
619
    {  64,   2 }, {  53,   8 }, {  75,   8 }, {  55,   7 }, {  57,   6 },
620
    {  59,   5 }, {  69,   5 }, {  71,   6 }, {  73,   7 }, {  77,   9 },
621
    {  79,  10 }, {  83,  12 }, {  42,  14 }, {  86,  14 }, {  44,  13 },
622
    {  46,  12 }, {  82,  12 }, {  48,  11 }, {  80,  11 }, {  50,  10 },
623
    {  52,   9 }, {  61,   4 }, {  67,   4 }, {  63,   3 }, {  65,   3 },
624
    {  54,   8 }, {  74,   8 }, {  56,   7 }, {  58,   6 }, {  60,   5 },
625
    {  68,   5 }, {  70,   6 }, {  72,   7 }, {  76,   9 }, {  78,  10 },
626
    {  84,  13 }, {   0,  15 }, { 128,  15 }, {   1,  15 }, { 127,  15 },
627
    {   2,  15 }, { 126,  15 }, {   3,  15 }, { 125,  15 }, {   4,  15 },
628
    { 124,  15 }, {   5,  15 }, { 123,  15 }, {   6,  15 }, { 122,  15 },
629
    {   7,  15 }, { 121,  15 }, {   8,  15 }, { 120,  15 }, {   9,  15 },
630
    { 119,  15 }, {  10,  15 }, { 118,  15 }, {  11,  15 }, { 117,  15 },
631
    {  12,  15 }, { 116,  15 }, {  13,  15 }, { 115,  15 }, {  14,  15 },
632
    { 114,  15 }, {  15,  15 }, { 113,  15 }, {  16,  15 }, { 112,  15 },
633
    {  17,  15 }, { 111,  15 }, {  18,  15 }, { 110,  15 }, {  19,  15 },
634
    { 109,  15 }, {  20,  15 }, { 108,  15 }, {  21,  15 }, { 107,  15 },
635
    {  22,  15 }, { 106,  15 }, {  23,  15 }, { 105,  15 }, {  24,  15 },
636
    { 104,  15 }, {  25,  15 }, { 103,  15 }, {  26,  15 }, { 102,  15 },
637
    {  27,  15 }, { 101,  15 }, {  28,  15 }, { 100,  15 }, {  29,  15 },
638
    {  99,  15 }, {  30,  15 }, {  98,  15 }, {  31,  15 }, {  97,  15 },
639
    {  32,  15 }, {  96,  15 }, {  33,  15 }, {  95,  15 }, {  34,  15 },
640
    {  94,  15 }, {  35,  15 }, {  93,  15 }, {  36,  15 }, {  92,  15 },
641
    {  37,  15 }, {  91,  15 }, {  38,  15 }, {  90,  15 }, {  39,  15 },
642
    {  89,  15 }, {  40,  15 }, {  88,  15 }, {  41,  15 }, {  87,  15 },
643
    {  43,  14 }, {  85,  14 }, {  45,  13 }, {  47,  12 }, {  81,  12 },
644
    {  49,  11 }, {  51,  10 }, {  62,   4 }, {  66,   4 },
645
    /* scale_factor[4] - 129 entries */
646
    {  56,   5 }, {  72,   5 }, {  52,   6 }, {  76,   6 }, {  48,   7 },
647
    {  80,   7 }, {  44,   8 }, {  84,   8 }, {  40,   9 }, {  88,   9 },
648
    {  36,  10 }, {  92,  10 }, {  96,  11 }, {  28,  12 }, { 100,  12 },
649
    {  24,  13 }, { 104,  13 }, {  16,  15 }, { 112,  15 }, {  20,  14 },
650
    { 108,  14 }, {  21,  14 }, {  33,  11 }, {  61,   4 }, {  67,   4 },
651
    {  57,   5 }, {  71,   5 }, {  53,   6 }, {  75,   6 }, {  49,   7 },
652
    {  79,   7 }, {  45,   8 }, {  83,   8 }, {  41,   9 }, {  87,   9 },
653
    {  37,  10 }, {  91,  10 }, {  95,  11 }, {  29,  12 }, {  99,  12 },
654
    {  25,  13 }, { 103,  13 }, { 107,  14 }, {  17,  15 }, { 111,  15 },
655
    {  26,  13 }, {  34,  11 }, {  62,   4 }, {  66,   4 }, {  58,   5 },
656
    {  70,   5 }, {  54,   6 }, {  74,   6 }, {  50,   7 }, {  78,   7 },
657
    {  46,   8 }, {  82,   8 }, {  42,   9 }, {  86,   9 }, {  38,  10 },
658
    {  90,  10 }, {  94,  11 }, {  30,  12 }, {  98,  12 }, {  39,  10 },
659
    {  63,   4 }, {  65,   4 }, {  59,   5 }, {  69,   5 }, {  55,   6 },
660
    {  73,   6 }, {  51,   7 }, {  77,   7 }, {  47,   8 }, {  81,   8 },
661
    {  43,   9 }, {  85,   9 }, {  89,  10 }, { 102,  13 }, {  22,  14 },
662
    { 106,  14 }, {  18,  15 }, { 110,  15 }, {   0,  16 }, { 128,  16 },
663
    {   1,  16 }, { 127,  16 }, {  27,  13 }, {  35,  11 }, {  93,  11 },
664
    {  31,  12 }, {  97,  12 }, { 101,  13 }, {   2,  16 }, { 126,  16 },
665
    {   3,  16 }, { 125,  16 }, {   4,  16 }, { 124,  16 }, {   5,  16 },
666
    { 123,  16 }, {   6,  16 }, { 122,  16 }, {   7,  16 }, { 121,  16 },
667
    {   8,  16 }, { 120,  16 }, {   9,  16 }, { 119,  16 }, {  10,  16 },
668
    { 118,  16 }, {  11,  16 }, { 117,  16 }, {  12,  16 }, { 116,  16 },
669
    {  13,  16 }, { 115,  16 }, {  14,  16 }, { 114,  16 }, {  15,  16 },
670
    { 113,  16 }, {  23,  14 }, { 105,  14 }, {  19,  15 }, { 109,  15 },
671
    {  32,  12 }, {  64,   4 }, {  60,   5 }, {  68,   5 },
672
    /* transition_mode[0] - 4 entries */
673
    {   0,   1 }, {   1,   2 }, {   2,   3 }, {   3,   3 },
674
    /* transition_mode[1] - 4 entries */
675
    {   3,   1 }, {   0,   2 }, {   1,   3 }, {   2,   3 },
676
    /* transition_mode[2] - 4 entries */
677
    {   2,   1 }, {   3,   2 }, {   0,   3 }, {   1,   3 },
678
    /* transition_mode[3] - 4 entries */
679
    {   0,   2 }, {   1,   2 }, {   2,   2 }, {   3,   2 },
680
    /* tnl_group[0] - 37 entries */
681
    {   5,   3 }, {   4,   3 }, {  19,   8 }, {  33,  12 }, {  31,  12 },
682
    {  28,  11 }, {  34,  14 }, {  37,  14 }, {  35,  15 }, {   0,  15 },
683
    {  36,  14 }, {  32,  12 }, {  30,  11 }, {  24,   9 }, {  22,   8 },
684
    {  23,   9 }, {  29,  10 }, {  27,  10 }, {  17,   6 }, {  14,   5 },
685
    {   7,   4 }, {  12,   5 }, {   1,   6 }, {  26,   9 }, {   3,   9 },
686
    {  25,   8 }, {  20,   7 }, {   8,   4 }, {  10,   4 }, {  13,   4 },
687
    {  15,   6 }, {  16,   6 }, {  18,   6 }, {  21,   6 }, {  11,   4 },
688
    {   9,   3 }, {   6,   3 },
689
    /* tnl_group[1] - 34 entries */
690
    {   4,   4 }, {   7,   4 }, {  10,   4 }, {   3,  10 }, {  27,  10 },
691
    {  29,  10 }, {  28,  10 }, {  22,   8 }, {  21,   7 }, {  15,   6 },
692
    {  14,   5 }, {   8,   4 }, {  16,   6 }, {  19,   7 }, {  23,   8 },
693
    {  26,   9 }, {  30,  10 }, {  33,  13 }, {  34,  14 }, {   0,  14 },
694
    {  32,  12 }, {  31,  11 }, {  12,   5 }, {   5,   3 }, {   9,   3 },
695
    {   1,   4 }, {  20,   7 }, {  25,   8 }, {  24,   8 }, {  18,   6 },
696
    {  17,   5 }, {   6,   3 }, {  11,   4 }, {  13,   4 },
697
    /* tnl_group[2] - 31 entries */
698
    {  14,   7 }, {  17,   7 }, {  15,   7 }, {  23,   9 }, {  28,  10 },
699
    {  29,  11 }, {  30,  13 }, {   0,  13 }, {  31,  12 }, {  25,   8 },
700
    {  10,   5 }, {   8,   4 }, {   9,   4 }, {   4,   4 }, {  22,   8 },
701
    {   3,   8 }, {  21,   8 }, {  26,   9 }, {  27,   9 }, {  12,   6 },
702
    {  11,   5 }, {  16,   7 }, {  18,   7 }, {  20,   8 }, {  24,   8 },
703
    {  19,   7 }, {  13,   5 }, {   5,   3 }, {   1,   2 }, {   6,   3 },
704
    {   7,   3 },
705
    /* tnl_group[3] - 28 entries */
706
    {   8,   6 }, {   2,   6 }, {   7,   6 }, {  23,   7 }, {  12,   7 },
707
    {   5,   4 }, {  10,   6 }, {  20,   8 }, {  25,   9 }, {  26,  10 },
708
    {  27,  11 }, {   0,  11 }, {  22,   7 }, {   9,   5 }, {  13,   6 },
709
    {  17,   6 }, {   4,   5 }, {  14,   6 }, {  19,   7 }, {  24,   7 },
710
    {   3,   6 }, {  11,   6 }, {  21,   6 }, {  18,   6 }, {  16,   6 },
711
    {  15,   6 }, {   6,   3 }, {   1,   1 },
712
    /* tnl_group[4] - 23 entries */
713
    {   2,   2 }, {   7,   7 }, {  15,   8 }, {  21,   8 }, {   3,   6 },
714
    {   6,   6 }, {  13,   7 }, {  14,   8 }, {  18,   8 }, {   4,   4 },
715
    {   5,   5 }, {  11,   7 }, {  10,   7 }, {  20,   6 }, {  12,   8 },
716
    {  16,   9 }, {  22,  10 }, {   0,  10 }, {  17,   7 }, {  19,   6 },
717
    {   8,   6 }, {   9,   6 }, {   1,   1 },
718
    /* tnl_scf - 20 entries */
719
    {   3,   3 }, {  11,   6 }, {  16,   9 }, {  17,  10 }, {  18,  11 },
720
    {  19,  12 }, {   0,  12 }, {  15,   8 }, {  14,   7 }, {   9,   5 },
721
    {   7,   4 }, {   2,   3 }, {   4,   3 }, {   1,   3 }, {   5,   3 },
722
    {  12,   6 }, {  13,   6 }, {  10,   5 }, {   8,   4 }, {   6,   3 },
723
    /* damp - 7 entries */
724
    {   2,   2 }, {   3,   3 }, {   4,   4 }, {   5,   5 }, {   6,   6 },
725
    {   0,   6 }, {   1,   1 },
726
    /* dph - 9 entries */
727
    {   2,   2 }, {   1,   2 }, {   3,   4 }, {   7,   4 }, {   6,   5 },
728
    {   5,   6 }, {   0,   6 }, {   4,   4 }, {   8,   2 },
729
    /* fst_rsd_amp - 24 entries */
730
    {  12,   4 }, {  17,   4 }, {   1,   6 }, {   8,   6 }, {   9,   5 },
731
    {  20,   7 }, {   3,   7 }, {   5,   6 }, {   6,   6 }, {   2,   7 },
732
    {  22,   9 }, {  23,  10 }, {   0,  10 }, {  21,   8 }, {  11,   4 },
733
    {  19,   5 }, {   7,   6 }, {   4,   6 }, {  16,   3 }, {  10,   4 },
734
    {  18,   4 }, {  15,   3 }, {  13,   3 }, {  14,   3 },
735
    /* rsd_apprx - 6 entries */
736
    {   1,   1 }, {   2,   2 }, {   3,   3 }, {   4,   4 }, {   5,   5 },
737
    {   0,   5 },
738
    /* rsd_amp - 33 entries */
739
    {   2,   3 }, {   1,   3 }, {   5,   3 }, {  14,   8 }, {  20,   9 },
740
    {  26,  10 }, {  25,  12 }, {  32,  12 }, {  19,  11 }, {  16,   8 },
741
    {  24,   9 }, {  17,   9 }, {  12,   7 }, {  13,   7 }, {   9,   5 },
742
    {   7,   4 }, {   3,   2 }, {   4,   3 }, {   8,   6 }, {  11,   6 },
743
    {  18,   8 }, {  15,   8 }, {  30,  11 }, {  36,  13 }, {  34,  13 },
744
    {  29,  13 }, {   0,  13 }, {  21,  10 }, {  28,  10 }, {  23,  10 },
745
    {  22,   8 }, {  10,   6 }, {   6,   4 },
746
    /* avg_g3 - 18 entries */
747
    {  14,   4 }, {  11,   6 }, {  19,   7 }, {   9,   7 }, {  13,   5 },
748
    {  10,   6 }, {  20,   8 }, {   8,   8 }, {   6,  10 }, {  23,  11 },
749
    {   0,  11 }, {  21,   9 }, {   7,   8 }, {  12,   5 }, {  18,   4 },
750
    {  16,   2 }, {  15,   2 }, {  17,   2 },
751
    /* st_grid - 22 entries */
752
    {   4,   4 }, {   3,   4 }, {   8,   4 }, {  14,   8 }, {   7,   9 },
753
    {   9,  10 }, {  22,  10 }, {  12,   7 }, {  16,   9 }, {  11,  10 },
754
    {  13,  11 }, {  17,  13 }, {  15,  13 }, {  24,  13 }, {   0,  13 },
755
    {  18,   9 }, {  20,  10 }, {   2,  10 }, {   5,   7 }, {  10,   5 },
756
    {   1,   2 }, {   6,   1 },
757
    /* grid_2 - 20 entries */
758
    {   3,   2 }, {   2,   2 }, {   4,   3 }, {   5,   4 }, {   6,   5 },
759
    {  11,  11 }, {  13,  12 }, {  17,  12 }, {  19,  14 }, {  14,  14 },
760
    {  18,  13 }, {  15,  13 }, {  16,  14 }, {   0,  14 }, {  12,  11 },
761
    {  10,   9 }, {   9,   8 }, {   8,   7 }, {   7,   6 }, {   1,   2 },
762
    /* grid_3 - 13 entries */
763
    {  18,   3 }, {  15,   4 }, {  19,   5 }, {  14,   6 }, {  13,   8 },
764
    {  12,  10 }, {  11,  12 }, {   0,  12 }, {  22,  11 }, {  21,   9 },
765
    {  20,   7 }, {  16,   2 }, {  17,   1 },
766
    /* rsd - 9 entries */
767
    {   1,   3 }, {   5,   4 }, {   6,   5 }, {   7,   6 }, {   4,   6 },
768
    {   4,   3 }, {   0,   3 }, {   2,   2 }, {   3,   2 },
769
};
770
771
VLC     ff_dca_vlc_bit_allocation[5];
772
VLC     ff_dca_vlc_transition_mode[4];
773
VLC     ff_dca_vlc_scale_factor[5];
774
VLC     ff_dca_vlc_quant_index[DCA_CODE_BOOKS][7];
775
776
VLC     ff_dca_vlc_tnl_grp[5];
777
VLC     ff_dca_vlc_tnl_scf;
778
VLC     ff_dca_vlc_damp;
779
VLC     ff_dca_vlc_dph;
780
VLC     ff_dca_vlc_fst_rsd_amp;
781
VLC     ff_dca_vlc_rsd_apprx;
782
VLC     ff_dca_vlc_rsd_amp;
783
VLC     ff_dca_vlc_avg_g3;
784
VLC     ff_dca_vlc_st_grid;
785
VLC     ff_dca_vlc_grid_2;
786
VLC     ff_dca_vlc_grid_3;
787
VLC     ff_dca_vlc_rsd;
788
789
av_cold void ff_dca_init_vlcs(void)
790
1
{
791
1
    static VLCElem dca_table[30218];
792
1
    const uint8_t (*src_table)[2] = ff_dca_vlc_src_tables;
793
1
    unsigned offset = 0;
794
795
1
#define DCA_INIT_VLC(vlc, nb_bits, nb_codes, entry_offset)                  \
796
62
    do {                                                                    \
797
62
        vlc.table           = &dca_table[offset];                           \
798
62
        vlc.table_allocated = FF_ARRAY_ELEMS(dca_table) - offset;           \
799
62
        ff_vlc_init_from_lengths(&vlc, nb_bits, nb_codes, &src_table[0][1], 2, \
800
62
                                 &src_table[0][0], 2, 1, entry_offset,      \
801
62
                                 VLC_INIT_STATIC_OVERLONG, NULL);           \
802
62
        offset += vlc.table_size;                                           \
803
62
        src_table += nb_codes;                                              \
804
62
    } while (0)
805
806
11
    for (unsigned i = 0; i < DCA_CODE_BOOKS; i++) {
807
58
        for (unsigned j = 0; j < ff_dca_quant_index_group_size[i]; j++)
808
48
            DCA_INIT_VLC(ff_dca_vlc_quant_index[i][j], bitalloc_maxbits[i][j],
809
10
                         ff_dca_bitalloc_sizes[i], ff_dca_bitalloc_offsets[i]);
810
10
    }
811
812
6
    for (unsigned i = 0; i < FF_ARRAY_ELEMS(ff_dca_vlc_bit_allocation); i++)
813
5
        DCA_INIT_VLC(ff_dca_vlc_bit_allocation[i], bitalloc_12_vlc_bits[i], 12, 1);
814
815
6
    for (unsigned i = 0; i < FF_ARRAY_ELEMS(ff_dca_vlc_scale_factor); i++)
816
5
        DCA_INIT_VLC(ff_dca_vlc_scale_factor[i], DCA_SCALES_VLC_BITS, 129, -64);
817
818
5
    for (unsigned i = 0; i < FF_ARRAY_ELEMS(ff_dca_vlc_transition_mode); i++)
819
4
        DCA_INIT_VLC(ff_dca_vlc_transition_mode[i], DCA_TMODE_VLC_BITS, 4, 0);
820
821
1
#define LBR_INIT_VLC(vlc, nb_bits, nb_codes, entry_offset)              \
822
16
    do {                                                                \
823
16
        vlc.table           = &dca_table[offset];                       \
824
16
        vlc.table_allocated = FF_ARRAY_ELEMS(dca_table) - offset;       \
825
16
        ff_vlc_init_from_lengths(&vlc, nb_bits, nb_codes, &src_table[0][1], 2, \
826
16
                                 &src_table[0][0], 2, 1, entry_offset,  \
827
16
                                 VLC_INIT_STATIC_OVERLONG | VLC_INIT_LE,\
828
16
                                 NULL);                                 \
829
16
        offset += vlc.table_size;                                       \
830
16
        src_table += nb_codes;                                          \
831
16
    } while (0)
832
833
6
    for (unsigned i = 0; i < FF_ARRAY_ELEMS(ff_dca_vlc_tnl_grp); i++)
834
5
        LBR_INIT_VLC(ff_dca_vlc_tnl_grp[i], DCA_TNL_GRP_VLC_BITS, tnl_grp_sizes[i], -1);
835
1
    LBR_INIT_VLC(ff_dca_vlc_tnl_scf,     DCA_TNL_SCF_VLC_BITS,   20, -1);
836
1
    LBR_INIT_VLC(ff_dca_vlc_damp,        DCA_DAMP_VLC_BITS,       7, -1);
837
1
    LBR_INIT_VLC(ff_dca_vlc_dph,         DCA_DPH_VLC_BITS,        9, -1);
838
1
    LBR_INIT_VLC(ff_dca_vlc_fst_rsd_amp, DCA_FST_RSD_VLC_BITS,   24, -1);
839
1
    LBR_INIT_VLC(ff_dca_vlc_rsd_apprx,   DCA_RSD_APPRX_VLC_BITS,  6, -1);
840
1
    LBR_INIT_VLC(ff_dca_vlc_rsd_amp,     DCA_RSD_AMP_VLC_BITS,   33, -1);
841
1
    LBR_INIT_VLC(ff_dca_vlc_avg_g3,      DCA_AVG_G3_VLC_BITS,    18, -1);
842
1
    LBR_INIT_VLC(ff_dca_vlc_st_grid,     DCA_ST_GRID_VLC_BITS,   22, -1);
843
1
    LBR_INIT_VLC(ff_dca_vlc_grid_2,      DCA_GRID_VLC_BITS,      20, -1);
844
1
    LBR_INIT_VLC(ff_dca_vlc_grid_3,      DCA_GRID_VLC_BITS,      13, -1);
845
    LBR_INIT_VLC(ff_dca_vlc_rsd,         DCA_RSD_VLC_BITS,        9,  0);
846
1
}