FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
dcahuff.c
Go to the documentation of this file.
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 "libavutil/common.h"
24 
25 #include "avcodec.h"
26 #include "get_bits.h"
27 #include "dcahuff.h"
28 
29 #define TMODE_COUNT 4
30 static const uint8_t tmode_vlc_bits[TMODE_COUNT] = { 3, 3, 3, 2 };
31 static const uint16_t tmode_codes[TMODE_COUNT][4] = {
32  { 0x0000, 0x0002, 0x0006, 0x0007 },
33  { 0x0002, 0x0006, 0x0007, 0x0000 },
34  { 0x0006, 0x0007, 0x0000, 0x0002 },
35  { 0x0000, 0x0001, 0x0002, 0x0003 }
36 };
37 
38 static const uint8_t tmode_bits[TMODE_COUNT][4] = {
39  { 1, 2, 3, 3 },
40  { 2, 3, 3, 1 },
41  { 3, 3, 1, 2 },
42  { 2, 2, 2, 2 }
43 };
44 
45 #define BITALLOC_12_COUNT 5
46 #define BITALLOC_12_VLC_BITS 9
48  9, 7, 7, 9, 9
49 };
50 
51 static const uint16_t bitalloc_12_codes[BITALLOC_12_COUNT][12] = {
52  { 0x0000, 0x0002, 0x0006, 0x000E, 0x001E, 0x003E, 0x00FF, 0x00FE,
53  0x01FB, 0x01FA, 0x01F9, 0x01F8, },
54  { 0x0001, 0x0000, 0x0002, 0x000F, 0x000C, 0x001D, 0x0039, 0x0038,
55  0x0037, 0x0036, 0x0035, 0x0034, },
56  { 0x0000, 0x0007, 0x0005, 0x0004, 0x0002, 0x000D, 0x000C, 0x0006,
57  0x000F, 0x001D, 0x0039, 0x0038, },
58  { 0x0003, 0x0002, 0x0000, 0x0002, 0x0006, 0x000E, 0x001E, 0x003E,
59  0x007E, 0x00FE, 0x01FF, 0x01FE, },
60  { 0x0001, 0x0000, 0x0002, 0x0006, 0x000E, 0x003F, 0x003D, 0x007C,
61  0x0079, 0x0078, 0x00FB, 0x00FA, }
62 };
63 
65  { 1, 2, 3, 4, 5, 6, 8, 8, 9, 9, 9, 9 },
66  { 1, 2, 3, 5, 5, 6, 7, 7, 7, 7, 7, 7 },
67  { 2, 3, 3, 3, 3, 4, 4, 4, 5, 6, 7, 7 },
68  { 2, 2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10 },
69  { 1, 2, 3, 4, 5, 7, 7, 8, 8, 8, 9, 9 }
70 };
71 
72 #define SCALES_COUNT 5
73 #define SCALES_VLC_BITS 9
74 static const uint16_t scales_codes[SCALES_COUNT][129] = {
75  { 0x3AB0, 0x3AB2, 0x3AB4, 0x3AB6, 0x3AB8, 0x3ABA, 0x3ABC, 0x3ABE,
76  0x3AC0, 0x3AC2, 0x3AC4, 0x3AC6, 0x3AC8, 0x3ACA, 0x3ACC, 0x3ACE,
77  0x3AD0, 0x3AD2, 0x3AD4, 0x3AD6, 0x3AD8, 0x3ADA, 0x3ADC, 0x3ADE,
78  0x3AE0, 0x3AE2, 0x3AE4, 0x3AE6, 0x3AE8, 0x3AEA, 0x3AEC, 0x3AEE,
79  0x3AF0, 0x3AF2, 0x3AF4, 0x3AF6, 0x3AF8, 0x3AFA, 0x3AFC, 0x3AFE,
80  0x0540, 0x0542, 0x0544, 0x0546, 0x0548, 0x054A, 0x054C, 0x054E,
81  0x0558, 0x055E, 0x02AD, 0x0154, 0x0754, 0x03A8, 0x0056, 0x0028,
82  0x00E8, 0x004A, 0x000B, 0x003B, 0x0013, 0x0003, 0x000F, 0x0005,
83  0x0001, 0x0006, 0x0000, 0x0008, 0x001C, 0x0004, 0x0024, 0x004B,
84  0x00E9, 0x0029, 0x0057, 0x03A9, 0x0755, 0x0155, 0x02AE, 0x055F,
85  0x0559, 0x054F, 0x054D, 0x054B, 0x0549, 0x0547, 0x0545, 0x0543,
86  0x0541, 0x3AFF, 0x3AFD, 0x3AFB, 0x3AF9, 0x3AF7, 0x3AF5, 0x3AF3,
87  0x3AF1, 0x3AEF, 0x3AED, 0x3AEB, 0x3AE9, 0x3AE7, 0x3AE5, 0x3AE3,
88  0x3AE1, 0x3ADF, 0x3ADD, 0x3ADB, 0x3AD9, 0x3AD7, 0x3AD5, 0x3AD3,
89  0x3AD1, 0x3ACF, 0x3ACD, 0x3ACB, 0x3AC9, 0x3AC7, 0x3AC5, 0x3AC3,
90  0x3AC1, 0x3ABF, 0x3ABD, 0x3ABB, 0x3AB9, 0x3AB7, 0x3AB5, 0x3AB3,
91  0x3AB1, },
92  { 0x0F60, 0x0F62, 0x0F64, 0x0F66, 0x0F68, 0x0F6A, 0x0F6C, 0x0F6E,
93  0x0F70, 0x0F72, 0x0F74, 0x0F76, 0x0F78, 0x0F7A, 0x0F7C, 0x0F7E,
94  0x0F80, 0x0F82, 0x0F84, 0x0F86, 0x0F88, 0x0F8A, 0x0F8C, 0x0F8E,
95  0x0F90, 0x0F92, 0x0F94, 0x0F96, 0x0F98, 0x0F9A, 0x0F9C, 0x0F9E,
96  0x0FA0, 0x0FA2, 0x0FA4, 0x0FA6, 0x0FA8, 0x0FAA, 0x0FAC, 0x0FAE,
97  0x0FB0, 0x0FB2, 0x0FB4, 0x0FB6, 0x0FB8, 0x0FBA, 0x0FBC, 0x0FBE,
98  0x07A0, 0x07A2, 0x03D2, 0x01EA, 0x00FC, 0x007F, 0x001C, 0x000C,
99  0x0004, 0x0034, 0x0010, 0x001B, 0x0009, 0x000B, 0x000E, 0x0001,
100  0x0003, 0x0002, 0x000F, 0x000C, 0x000A, 0x0000, 0x0011, 0x0035,
101  0x0005, 0x000D, 0x001D, 0x003C, 0x00FD, 0x01EB, 0x03D3, 0x07A3,
102  0x07A1, 0x0FBF, 0x0FBD, 0x0FBB, 0x0FB9, 0x0FB7, 0x0FB5, 0x0FB3,
103  0x0FB1, 0x0FAF, 0x0FAD, 0x0FAB, 0x0FA9, 0x0FA7, 0x0FA5, 0x0FA3,
104  0x0FA1, 0x0F9F, 0x0F9D, 0x0F9B, 0x0F99, 0x0F97, 0x0F95, 0x0F93,
105  0x0F91, 0x0F8F, 0x0F8D, 0x0F8B, 0x0F89, 0x0F87, 0x0F85, 0x0F83,
106  0x0F81, 0x0F7F, 0x0F7D, 0x0F7B, 0x0F79, 0x0F77, 0x0F75, 0x0F73,
107  0x0F71, 0x0F6F, 0x0F6D, 0x0F6B, 0x0F69, 0x0F67, 0x0F65, 0x0F63,
108  0x0F61, },
109  { 0x51D0, 0x51D2, 0x51D4, 0x51D6, 0x51D8, 0x51DA, 0x51DC, 0x51DE,
110  0x51E0, 0x51E2, 0x51E4, 0x51E6, 0x51E8, 0x51EA, 0x51EC, 0x51EE,
111  0x51F0, 0x51F2, 0x51F4, 0x51F6, 0x51F8, 0x51FA, 0x51FC, 0x51FE,
112  0x70C0, 0x70C2, 0x70C4, 0x70C6, 0x70C8, 0x70CA, 0x70CC, 0x70CE,
113  0x70EC, 0x10EA, 0x3868, 0x3877, 0x0876, 0x1C35, 0x0434, 0x0A34,
114  0x0E1B, 0x021B, 0x051B, 0x070F, 0x010F, 0x0380, 0x0080, 0x0140,
115  0x01C1, 0x0041, 0x00A1, 0x00E2, 0x0022, 0x0052, 0x0072, 0x0012,
116  0x002A, 0x003A, 0x000A, 0x0016, 0x001E, 0x0006, 0x000C, 0x0000,
117  0x0004, 0x0001, 0x000D, 0x0007, 0x001F, 0x0017, 0x000B, 0x003B,
118  0x002B, 0x0013, 0x0073, 0x0053, 0x0023, 0x00E3, 0x00A2, 0x0042,
119  0x01C2, 0x0141, 0x0081, 0x0381, 0x028C, 0x010C, 0x051C, 0x021C,
120  0x0E1C, 0x0A35, 0x0435, 0x1C3A, 0x0877, 0x0874, 0x3869, 0x10EB,
121  0x70ED, 0x70CF, 0x70CD, 0x70CB, 0x70C9, 0x70C7, 0x70C5, 0x70C3,
122  0x70C1, 0x51FF, 0x51FD, 0x51FB, 0x51F9, 0x51F7, 0x51F5, 0x51F3,
123  0x51F1, 0x51EF, 0x51ED, 0x51EB, 0x51E9, 0x51E7, 0x51E5, 0x51E3,
124  0x51E1, 0x51DF, 0x51DD, 0x51DB, 0x51D9, 0x51D7, 0x51D5, 0x51D3,
125  0x51D1, },
126  { 0x6F64, 0x6F66, 0x6F68, 0x6F6A, 0x6F6C, 0x6F6E, 0x6F70, 0x6F72,
127  0x6F74, 0x6F76, 0x6F78, 0x6F7A, 0x6F7C, 0x6F7E, 0x6F80, 0x6F82,
128  0x6F84, 0x6F86, 0x6F88, 0x6F8A, 0x6F8C, 0x6F8E, 0x6F90, 0x6F92,
129  0x6F94, 0x6F96, 0x6F98, 0x6F9A, 0x6F9C, 0x6F9E, 0x6FA0, 0x6FA2,
130  0x6FA4, 0x6FA6, 0x6FA8, 0x6FAA, 0x6FAC, 0x6FAE, 0x6FB0, 0x6FB2,
131  0x6FB4, 0x6FB6, 0x17B4, 0x37DC, 0x0BDB, 0x1BEF, 0x05EE, 0x0DF8,
132  0x02F8, 0x06FD, 0x017D, 0x037F, 0x00BF, 0x0040, 0x00C0, 0x0021,
133  0x0061, 0x0011, 0x0031, 0x0009, 0x0019, 0x0006, 0x000E, 0x0004,
134  0x0000, 0x0005, 0x000F, 0x0007, 0x001A, 0x000A, 0x0036, 0x0016,
135  0x006E, 0x002E, 0x00C1, 0x0041, 0x01BC, 0x00BC, 0x037A, 0x017A,
136  0x02F9, 0x0DF9, 0x05EF, 0x05EC, 0x1BD8, 0x37DD, 0x17B5, 0x6FB7,
137  0x6FB5, 0x6FB3, 0x6FB1, 0x6FAF, 0x6FAD, 0x6FAB, 0x6FA9, 0x6FA7,
138  0x6FA5, 0x6FA3, 0x6FA1, 0x6F9F, 0x6F9D, 0x6F9B, 0x6F99, 0x6F97,
139  0x6F95, 0x6F93, 0x6F91, 0x6F8F, 0x6F8D, 0x6F8B, 0x6F89, 0x6F87,
140  0x6F85, 0x6F83, 0x6F81, 0x6F7F, 0x6F7D, 0x6F7B, 0x6F79, 0x6F77,
141  0x6F75, 0x6F73, 0x6F71, 0x6F6F, 0x6F6D, 0x6F6B, 0x6F69, 0x6F67,
142  0x6F65, },
143  { 0xDF54, 0xDF56, 0xDFC8, 0xDFCA, 0xDFCC, 0xDFCE, 0xDFD0, 0xDFD2,
144  0xDFD4, 0xDFD6, 0xDFD8, 0xDFDA, 0xDFDC, 0xDFDE, 0xDFE0, 0xDFE2,
145  0x0FE8, 0x2FEA, 0x6FA8, 0x6FF6, 0x07F5, 0x07F7, 0x37D2, 0x37F9,
146  0x03F8, 0x0BF8, 0x0BFB, 0x1BEB, 0x01FA, 0x05FA, 0x09FA, 0x0DFA,
147  0x0DFF, 0x00FF, 0x02FF, 0x06FB, 0x007C, 0x017C, 0x027C, 0x027F,
148  0x003C, 0x00BC, 0x013C, 0x01BC, 0x001C, 0x005C, 0x009C, 0x00DC,
149  0x000C, 0x002C, 0x004C, 0x006C, 0x0004, 0x0014, 0x0024, 0x0034,
150  0x0000, 0x0008, 0x0010, 0x0018, 0x001E, 0x0002, 0x0006, 0x000A,
151  0x000E, 0x000B, 0x0007, 0x0003, 0x001F, 0x0019, 0x0011, 0x0009,
152  0x0001, 0x0035, 0x0025, 0x0015, 0x0005, 0x006D, 0x004D, 0x002D,
153  0x000D, 0x00DD, 0x009D, 0x005D, 0x001D, 0x01BD, 0x013D, 0x00BD,
154  0x003D, 0x037C, 0x027D, 0x017D, 0x007D, 0x06FC, 0x04FC, 0x02FC,
155  0x00FC, 0x0DFB, 0x09FB, 0x05FB, 0x01FB, 0x1BF8, 0x1BE8, 0x0BF9,
156  0x03F9, 0x37FA, 0x37D3, 0x17F4, 0x07F6, 0x6FF7, 0x6FA9, 0x2FEB,
157  0x0FE9, 0xDFE3, 0xDFE1, 0xDFDF, 0xDFDD, 0xDFDB, 0xDFD9, 0xDFD7,
158  0xDFD5, 0xDFD3, 0xDFD1, 0xDFCF, 0xDFCD, 0xDFCB, 0xDFC9, 0xDF57,
159  0xDF55, }
160 };
161 
162 static const uint8_t scales_bits[SCALES_COUNT][129] = {
163  { 14, 14, 14, 14, 14, 14, 14, 14,
164  14, 14, 14, 14, 14, 14, 14, 14,
165  14, 14, 14, 14, 14, 14, 14, 14,
166  14, 14, 14, 14, 14, 14, 14, 14,
167  14, 14, 14, 14, 14, 14, 14, 14,
168  13, 13, 13, 13, 13, 13, 13, 13,
169  13, 13, 12, 11, 11, 10, 9, 8,
170  8, 7, 6, 6, 5, 4, 4, 3,
171  2, 3, 3, 4, 5, 5, 6, 7,
172  8, 8, 9, 10, 11, 11, 12, 13,
173  13, 13, 13, 13, 13, 13, 13, 13,
174  13, 14, 14, 14, 14, 14, 14, 14,
175  14, 14, 14, 14, 14, 14, 14, 14,
176  14, 14, 14, 14, 14, 14, 14, 14,
177  14, 14, 14, 14, 14, 14, 14, 14,
178  14, 14, 14, 14, 14, 14, 14, 14,
179  14, },
180  { 15, 15, 15, 15, 15, 15, 15, 15,
181  15, 15, 15, 15, 15, 15, 15, 15,
182  15, 15, 15, 15, 15, 15, 15, 15,
183  15, 15, 15, 15, 15, 15, 15, 15,
184  15, 15, 15, 15, 15, 15, 15, 15,
185  15, 15, 15, 15, 15, 15, 15, 15,
186  14, 14, 13, 12, 11, 10, 8, 7,
187  6, 6, 5, 5, 4, 4, 4, 3,
188  3, 3, 4, 4, 4, 4, 5, 6,
189  6, 7, 8, 9, 11, 12, 13, 14,
190  14, 15, 15, 15, 15, 15, 15, 15,
191  15, 15, 15, 15, 15, 15, 15, 15,
192  15, 15, 15, 15, 15, 15, 15, 15,
193  15, 15, 15, 15, 15, 15, 15, 15,
194  15, 15, 15, 15, 15, 15, 15, 15,
195  15, 15, 15, 15, 15, 15, 15, 15,
196  15, },
197  { 15, 15, 15, 15, 15, 15, 15, 15,
198  15, 15, 15, 15, 15, 15, 15, 15,
199  15, 15, 15, 15, 15, 15, 15, 15,
200  15, 15, 15, 15, 15, 15, 15, 15,
201  15, 14, 14, 14, 13, 13, 12, 12,
202  12, 11, 11, 11, 10, 10, 9, 9,
203  9, 8, 8, 8, 7, 7, 7, 6,
204  6, 6, 5, 5, 5, 4, 4, 3,
205  3, 3, 4, 4, 5, 5, 5, 6,
206  6, 6, 7, 7, 7, 8, 8, 8,
207  9, 9, 9, 10, 10, 10, 11, 11,
208  12, 12, 12, 13, 13, 13, 14, 14,
209  15, 15, 15, 15, 15, 15, 15, 15,
210  15, 15, 15, 15, 15, 15, 15, 15,
211  15, 15, 15, 15, 15, 15, 15, 15,
212  15, 15, 15, 15, 15, 15, 15, 15,
213  15, },
214  { 15, 15, 15, 15, 15, 15, 15, 15,
215  15, 15, 15, 15, 15, 15, 15, 15,
216  15, 15, 15, 15, 15, 15, 15, 15,
217  15, 15, 15, 15, 15, 15, 15, 15,
218  15, 15, 15, 15, 15, 15, 15, 15,
219  15, 15, 14, 14, 13, 13, 12, 12,
220  11, 11, 10, 10, 9, 8, 8, 7,
221  7, 6, 6, 5, 5, 4, 4, 3,
222  2, 3, 4, 4, 5, 5, 6, 6,
223  7, 7, 8, 8, 9, 9, 10, 10,
224  11, 12, 12, 12, 13, 14, 14, 15,
225  15, 15, 15, 15, 15, 15, 15, 15,
226  15, 15, 15, 15, 15, 15, 15, 15,
227  15, 15, 15, 15, 15, 15, 15, 15,
228  15, 15, 15, 15, 15, 15, 15, 15,
229  15, 15, 15, 15, 15, 15, 15, 15,
230  15, },
231  { 16, 16, 16, 16, 16, 16, 16, 16,
232  16, 16, 16, 16, 16, 16, 16, 16,
233  15, 15, 15, 15, 14, 14, 14, 14,
234  13, 13, 13, 13, 12, 12, 12, 12,
235  12, 11, 11, 11, 10, 10, 10, 10,
236  9, 9, 9, 9, 8, 8, 8, 8,
237  7, 7, 7, 7, 6, 6, 6, 6,
238  5, 5, 5, 5, 5, 4, 4, 4,
239  4, 4, 4, 4, 5, 5, 5, 5,
240  5, 6, 6, 6, 6, 7, 7, 7,
241  7, 8, 8, 8, 8, 9, 9, 9,
242  9, 10, 10, 10, 10, 11, 11, 11,
243  11, 12, 12, 12, 12, 13, 13, 13,
244  13, 14, 14, 14, 14, 15, 15, 15,
245  15, 16, 16, 16, 16, 16, 16, 16,
246  16, 16, 16, 16, 16, 16, 16, 16,
247  16,
248  }
249 };
250 
251 static const uint16_t bitalloc_3_codes[3] = {
252  0x0003, 0x0000, 0x0002,
253 };
254 
255 static const uint8_t bitalloc_3_bits[3] = {
256  2, 1, 2,
257 };
258 
259 static const uint16_t bitalloc_5_codes_a[5] = {
260  0x000F, 0x0006, 0x0000, 0x0002, 0x000E,
261 };
262 
263 static const uint16_t bitalloc_5_codes_b[5] = {
264  0x0007, 0x0001, 0x0002, 0x0000, 0x0006,
265 };
266 
267 static const uint16_t bitalloc_5_codes_c[5] = {
268  0x0007, 0x0005, 0x0000, 0x0004, 0x0006,
269 };
270 
271 static const uint8_t bitalloc_5_bits_a[5] = {
272  4, 3, 1, 2, 4,
273 };
274 
275 static const uint8_t bitalloc_5_bits_b[5] = {
276  3, 2, 2, 2, 3,
277 };
278 
279 static const uint8_t bitalloc_5_bits_c[5] = {
280  3, 3, 1, 3, 3,
281 };
282 
283 static const uint16_t bitalloc_7_codes_a[7] = {
284  0x001E, 0x000E, 0x0005, 0x0000, 0x0006, 0x0004, 0x001F,
285 };
286 
287 static const uint16_t bitalloc_7_codes_b[7] = {
288  0x0014, 0x000B, 0x0000, 0x0003, 0x0001, 0x0004, 0x0015,
289 };
290 
291 static const uint16_t bitalloc_7_codes_c[7] = {
292  0x0000, 0x0002, 0x0001, 0x0003, 0x0002, 0x0003, 0x0001,
293 };
294 
295 static const uint8_t bitalloc_7_bits_a[7] = {
296  5, 4, 3, 1, 3, 3, 5,
297 };
298 
299 static const uint8_t bitalloc_7_bits_b[7] = {
300  5, 4, 2, 2, 2, 3, 5,
301 };
302 
303 static const uint8_t bitalloc_7_bits_c[7] = {
304  4, 4, 2, 2, 2, 4, 4,
305 };
306 
307 static const uint16_t bitalloc_9_codes_a[9] = {
308  0x0030, 0x0019, 0x0009, 0x0005, 0x0000, 0x0007, 0x000D, 0x0008,
309  0x0031,
310 };
311 
312 static const uint16_t bitalloc_9_codes_b[9] = {
313  0x0018, 0x001A, 0x0002, 0x0007, 0x0002, 0x0000, 0x0003, 0x001B,
314  0x0019,
315 };
316 
317 static const uint16_t bitalloc_9_codes_c[9] = {
318  0x001C, 0x000F, 0x0002, 0x0007, 0x0002, 0x0000, 0x0006, 0x0006,
319  0x001D,
320 };
321 
322 static const uint8_t bitalloc_9_bits_a[9] = {
323  6, 5, 4, 3, 1, 3, 4, 4, 6,
324 };
325 
326 static const uint8_t bitalloc_9_bits_b[9] = {
327  5, 5, 3, 3, 2, 2, 3, 5, 5,
328 };
329 
330 static const uint8_t bitalloc_9_bits_c[9] = {
331  6, 5, 3, 3, 2, 2, 3, 4, 6,
332 };
333 
334 static const uint16_t bitalloc_13_codes_a[13] = {
335  0x0070, 0x002E, 0x0039, 0x001D, 0x000C, 0x000F, 0x0000, 0x0004,
336  0x000D, 0x000A, 0x0016, 0x002F, 0x0071,
337 };
338 
339 static const uint16_t bitalloc_13_codes_b[13] = {
340  0x0038, 0x0010, 0x001D, 0x0007, 0x000F, 0x0005, 0x0000, 0x0006,
341  0x0002, 0x0009, 0x0006, 0x0011, 0x0039,
342 };
343 
344 static const uint16_t bitalloc_13_codes_c[13] = {
345  0x0004, 0x001A, 0x0003, 0x000E, 0x0000, 0x0003, 0x0005, 0x0004,
346  0x0002, 0x000F, 0x000C, 0x001B, 0x0005,
347 };
348 
349 static const uint8_t bitalloc_13_bits_a[13] = {
350  7, 6, 6, 5, 4, 4, 1, 3, 4, 4, 5, 6, 7,
351 };
352 
353 static const uint8_t bitalloc_13_bits_b[13] = {
354  6, 5, 5, 4, 4, 3, 2, 3, 3, 4, 4, 5, 6,
355 };
356 
357 static const uint8_t bitalloc_13_bits_c[13] = {
358  5, 5, 4, 4, 3, 3, 3, 3, 3, 4, 4, 5, 5,
359 };
360 
361 static const uint16_t bitalloc_17_codes_a[17] = {
362  0x0154, 0x00AB, 0x002B, 0x000B, 0x0003, 0x000A, 0x0001, 0x0006,
363  0x0001, 0x0007, 0x0004, 0x000B, 0x0000, 0x0004, 0x0014, 0x0054,
364  0x0155,
365 };
366 
367 static const uint16_t bitalloc_17_codes_b[17] = {
368  0x007C, 0x003F, 0x0019, 0x000D, 0x001C, 0x0008, 0x000F, 0x0005,
369  0x0000, 0x0006, 0x0002, 0x0009, 0x001D, 0x000E, 0x001E, 0x0018,
370  0x007D,
371 };
372 
373 static const uint16_t bitalloc_17_codes_c[17] = {
374  0x002C, 0x0017, 0x0005, 0x001C, 0x0003, 0x000A, 0x000F, 0x0003,
375  0x0006, 0x0004, 0x0000, 0x000B, 0x0004, 0x001D, 0x000A, 0x0004,
376  0x002D,
377 };
378 
379 static const uint16_t bitalloc_17_codes_d[17] = {
380  0x0100, 0x0102, 0x0082, 0x0042, 0x0022, 0x0012, 0x000A, 0x0006,
381  0x0000, 0x0007, 0x000B, 0x0013, 0x0023, 0x0043, 0x0083, 0x0103,
382  0x0101,
383 };
384 
385 static const uint16_t bitalloc_17_codes_e[17] = {
386  0x00E8, 0x00F6, 0x0075, 0x0034, 0x003B, 0x001B, 0x001F, 0x0004,
387  0x0000, 0x0005, 0x000C, 0x001C, 0x003C, 0x0035, 0x007A, 0x00F7,
388  0x00E9,
389 };
390 
391 static const uint16_t bitalloc_17_codes_f[17] = {
392  0x0004, 0x0003, 0x001E, 0x0001, 0x0001, 0x000E, 0x0001, 0x0004,
393  0x0006, 0x0005, 0x0002, 0x000F, 0x0006, 0x000E, 0x001F, 0x0000,
394  0x0005,
395 };
396 
397 static const uint16_t bitalloc_17_codes_g[17] = {
398  0x0060, 0x007E, 0x0031, 0x0019, 0x000D, 0x0004, 0x0000, 0x0006,
399  0x0002, 0x0007, 0x0001, 0x0005, 0x000E, 0x001E, 0x003E, 0x007F,
400  0x0061,
401 };
402 
403 static const uint8_t bitalloc_17_bits_a[17] = {
404  12, 11, 9, 7, 5, 4, 3, 3, 2, 3, 3, 4, 4, 6, 8, 10,
405  12,
406 };
407 
408 static const uint8_t bitalloc_17_bits_b[17] = {
409  8, 7, 6, 5, 5, 4, 4, 3, 2, 3, 3, 4, 5, 5, 6, 6,
410  8,
411 };
412 
413 static const uint8_t bitalloc_17_bits_c[17] = {
414  7, 6, 5, 5, 4, 4, 4, 3, 3, 3, 3, 4, 4, 5, 5, 5,
415  7,
416 };
417 
418 static const uint8_t bitalloc_17_bits_d[17] = {
419  9, 9, 8, 7, 6, 5, 4, 3, 1, 3, 4, 5, 6, 7, 8, 9,
420  9,
421 };
422 
423 static const uint8_t bitalloc_17_bits_e[17] = {
424  8, 8, 7, 6, 6, 5, 5, 3, 1, 3, 4, 5, 6, 6, 7, 8,
425  8,
426 };
427 
428 static const uint8_t bitalloc_17_bits_f[17] = {
429  8, 7, 6, 5, 4, 4, 3, 3, 3, 3, 3, 4, 4, 5, 6, 6,
430  8,
431 };
432 
433 static const uint8_t bitalloc_17_bits_g[17] = {
434  8, 8, 7, 6, 5, 4, 3, 3, 2, 3, 3, 4, 5, 6, 7, 8,
435  8,
436 };
437 
438 static const uint16_t bitalloc_25_codes_a[25] = {
439  0x2854, 0x142B, 0x050B, 0x0143, 0x00A2, 0x0052, 0x002E, 0x0015,
440  0x0004, 0x000E, 0x0000, 0x0003, 0x0006, 0x0004, 0x0001, 0x000F,
441  0x0005, 0x0016, 0x002F, 0x0053, 0x00A3, 0x00A0, 0x0284, 0x0A14,
442  0x2855,
443 };
444 
445 static const uint16_t bitalloc_25_codes_b[25] = {
446  0x001C, 0x000F, 0x0005, 0x0000, 0x0030, 0x0036, 0x000E, 0x0019,
447  0x0001, 0x0008, 0x000E, 0x0001, 0x0005, 0x0002, 0x000F, 0x0009,
448  0x0006, 0x001A, 0x000F, 0x0037, 0x0031, 0x0001, 0x0006, 0x0004,
449  0x001D,
450 };
451 
452 static const uint16_t bitalloc_25_codes_c[25] = {
453  0x004C, 0x0027, 0x006D, 0x0028, 0x0037, 0x000E, 0x0015, 0x0000,
454  0x0005, 0x0008, 0x000B, 0x000E, 0x0001, 0x000F, 0x000C, 0x0009,
455  0x0006, 0x0001, 0x001A, 0x000F, 0x0008, 0x0029, 0x0012, 0x006C,
456  0x004D,
457 };
458 
459 static const uint16_t bitalloc_25_codes_d[25] = {
460  0x0780, 0x0782, 0x03C2, 0x01E2, 0x00FE, 0x0079, 0x003D, 0x001C,
461  0x000C, 0x0004, 0x0000, 0x0006, 0x0002, 0x0007, 0x0001, 0x0005,
462  0x000D, 0x001D, 0x003E, 0x007E, 0x00FF, 0x01E3, 0x03C3, 0x0783,
463  0x0781,
464 };
465 
466 static const uint16_t bitalloc_25_codes_e[25] = {
467  0x003C, 0x0092, 0x0018, 0x001F, 0x004E, 0x000D, 0x0025, 0x0004,
468  0x0010, 0x0000, 0x000A, 0x0002, 0x0003, 0x0003, 0x000B, 0x0001,
469  0x0011, 0x0005, 0x0026, 0x000E, 0x004F, 0x0048, 0x0019, 0x0093,
470  0x003D,
471 };
472 
473 static const uint16_t bitalloc_25_codes_f[25] = {
474  0x0324, 0x0193, 0x00CE, 0x0065, 0x0024, 0x000C, 0x0013, 0x0004,
475  0x0007, 0x000A, 0x000D, 0x000F, 0x0001, 0x0000, 0x000E, 0x000B,
476  0x0008, 0x0005, 0x0018, 0x000D, 0x0025, 0x0066, 0x00CF, 0x00C8,
477  0x0325,
478 };
479 
480 static const uint16_t bitalloc_25_codes_g[25] = {
481  0x03A8, 0x03AE, 0x01D5, 0x0094, 0x0014, 0x004B, 0x000B, 0x003B,
482  0x0013, 0x0003, 0x000F, 0x0005, 0x0001, 0x0006, 0x0000, 0x0008,
483  0x001C, 0x0004, 0x0024, 0x0074, 0x0015, 0x0095, 0x01D6, 0x03AF,
484  0x03A9,
485 };
486 
487 static const uint8_t bitalloc_25_bits_a[25] = {
488  14, 13, 11, 9, 8, 7, 6, 5, 4, 4, 3, 3, 3, 3, 3, 4,
489  4, 5, 6, 7, 8, 8, 10, 12, 14,
490 };
491 
492 static const uint8_t bitalloc_25_bits_b[25] = {
493  9, 8, 7, 6, 6, 6, 5, 5, 4, 4, 4, 3, 3, 3, 4, 4,
494  4, 5, 5, 6, 6, 6, 7, 7, 9,
495 };
496 
497 static const uint8_t bitalloc_25_bits_c[25] = {
498  8, 7, 7, 6, 6, 5, 5, 4, 4, 4, 4, 4, 3, 4, 4, 4,
499  4, 4, 5, 5, 5, 6, 6, 7, 8,
500 };
501 
502 static const uint8_t bitalloc_25_bits_d[25] = {
503  12, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 3, 2, 3, 3, 4,
504  5, 6, 7, 8, 9, 10, 11, 12, 12,
505 };
506 
507 static const uint8_t bitalloc_25_bits_e[25] = {
508  8, 8, 7, 7, 7, 6, 6, 5, 5, 4, 4, 3, 2, 3, 4, 4,
509  5, 5, 6, 6, 7, 7, 7, 8, 8,
510 };
511 
512 static const uint8_t bitalloc_25_bits_f[25] = {
513  10, 9, 8, 7, 6, 5, 5, 4, 4, 4, 4, 4, 3, 3, 4, 4,
514  4, 4, 5, 5, 6, 7, 8, 8, 10,
515 };
516 
517 static const uint8_t bitalloc_25_bits_g[25] = {
518  10, 10, 9, 8, 7, 7, 6, 6, 5, 4, 4, 3, 2, 3, 3, 4,
519  5, 5, 6, 7, 7, 8, 9, 10, 10,
520 };
521 
522 static const uint16_t bitalloc_33_codes_a[33] = {
523  0x1580, 0x1582, 0x0AC2, 0x0562, 0x02B2, 0x015E, 0x00AD, 0x0054,
524  0x001C, 0x003C, 0x000F, 0x001F, 0x0008, 0x000B, 0x000D, 0x0000,
525  0x0002, 0x0001, 0x000E, 0x000C, 0x0009, 0x0006, 0x0014, 0x003D,
526  0x001D, 0x0055, 0x00AE, 0x015F, 0x02B3, 0x0563, 0x0AC3, 0x1583,
527  0x1581,
528 };
529 
530 static const uint16_t bitalloc_33_codes_b[33] = {
531  0x030C, 0x0187, 0x006D, 0x0028, 0x0037, 0x0066, 0x0015, 0x0031,
532  0x0000, 0x000B, 0x0012, 0x001A, 0x0001, 0x0007, 0x000A, 0x000E,
533  0x0001, 0x000F, 0x000B, 0x0008, 0x0004, 0x001B, 0x0013, 0x000C,
534  0x0001, 0x0032, 0x001A, 0x0067, 0x0060, 0x0029, 0x00C2, 0x006C,
535  0x030D,
536 };
537 
538 static const uint16_t bitalloc_33_codes_c[33] = {
539  0x00CC, 0x0067, 0x0005, 0x0070, 0x0003, 0x001A, 0x0039, 0x003F,
540  0x000A, 0x0012, 0x0018, 0x001D, 0x0001, 0x0003, 0x0007, 0x000A,
541  0x000D, 0x000B, 0x0008, 0x0004, 0x0002, 0x001E, 0x0019, 0x0013,
542  0x000B, 0x0000, 0x003E, 0x001B, 0x0018, 0x0071, 0x0032, 0x0004,
543  0x00CD,
544 };
545 
546 static const uint16_t bitalloc_33_codes_d[33] = {
547  0x3AF8, 0x3AFA, 0x1D7E, 0x0EBC, 0x075C, 0x03AC, 0x01D4, 0x0094,
548  0x0014, 0x004B, 0x000B, 0x003B, 0x0013, 0x0003, 0x000F, 0x0005,
549  0x0001, 0x0006, 0x0000, 0x0008, 0x001C, 0x0004, 0x0024, 0x0074,
550  0x0015, 0x0095, 0x01D5, 0x03AD, 0x075D, 0x0EBD, 0x1D7F, 0x3AFB,
551  0x3AF9,
552 };
553 
554 static const uint16_t bitalloc_33_codes_e[33] = {
555  0x01C8, 0x01E6, 0x0064, 0x00E2, 0x00E5, 0x0030, 0x0033, 0x0073,
556  0x007A, 0x001A, 0x003A, 0x0002, 0x001A, 0x001F, 0x0007, 0x0001,
557  0x0002, 0x0002, 0x000C, 0x0000, 0x001B, 0x0003, 0x003B, 0x001B,
558  0x007B, 0x0078, 0x0070, 0x0031, 0x00F2, 0x00E3, 0x0065, 0x01E7,
559  0x01C9,
560 };
561 
562 static const uint16_t bitalloc_33_codes_f[33] = {
563  0x0724, 0x0393, 0x01CE, 0x00E5, 0x002C, 0x0008, 0x0017, 0x003E,
564  0x0005, 0x0014, 0x001D, 0x0000, 0x0003, 0x0006, 0x0008, 0x000B,
565  0x000D, 0x000C, 0x0009, 0x0007, 0x0004, 0x0001, 0x001E, 0x0015,
566  0x000A, 0x003F, 0x0038, 0x0009, 0x002D, 0x00E6, 0x01CF, 0x01C8,
567  0x0725,
568 };
569 
570 static const uint16_t bitalloc_33_codes_g[33] = {
571  0x0284, 0x0042, 0x0140, 0x0143, 0x003E, 0x00BE, 0x0011, 0x0051,
572  0x0009, 0x0029, 0x0005, 0x0015, 0x0000, 0x0008, 0x000E, 0x0002,
573  0x0006, 0x0003, 0x000F, 0x0009, 0x0001, 0x0016, 0x0006, 0x002E,
574  0x000E, 0x005E, 0x001E, 0x00BF, 0x003F, 0x0020, 0x0141, 0x0043,
575  0x0285,
576 };
577 
578 static const uint8_t bitalloc_33_bits_a[33] = {
579  13, 13, 12, 11, 10, 9, 8, 7, 6, 6, 5, 5, 4, 4, 4, 3,
580  3, 3, 4, 4, 4, 4, 5, 6, 6, 7, 8, 9, 10, 11, 12, 13,
581  13,
582 };
583 
584 static const uint8_t bitalloc_33_bits_b[33] = {
585  10, 9, 8, 7, 7, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4,
586  3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 7, 7, 7, 8, 8,
587  10,
588 };
589 
590 static const uint8_t bitalloc_33_bits_c[33] = {
591  9, 8, 7, 7, 6, 6, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4,
592  4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 7, 7, 7,
593  9,
594 };
595 
596 static const uint8_t bitalloc_33_bits_d[33] = {
597  14, 14, 13, 12, 11, 10, 9, 8, 7, 7, 6, 6, 5, 4, 4, 3,
598  2, 3, 3, 4, 5, 5, 6, 7, 7, 8, 9, 10, 11, 12, 13, 14,
599  14,
600 };
601 
602 static const uint8_t bitalloc_33_bits_e[33] = {
603  9, 9, 8, 8, 8, 7, 7, 7, 7, 6, 6, 5, 5, 5, 4, 3,
604  2, 3, 4, 4, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 9,
605  9,
606 };
607 
608 static const uint8_t bitalloc_33_bits_f[33] = {
609  11, 10, 9, 8, 7, 6, 6, 6, 5, 5, 5, 4, 4, 4, 4, 4,
610  4, 4, 4, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 8, 9, 9,
611  11,
612 };
613 
614 static const uint8_t bitalloc_33_bits_g[33] = {
615  10, 9, 9, 9, 8, 8, 7, 7, 6, 6, 5, 5, 4, 4, 4, 3,
616  3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 8, 9, 9,
617  10,
618 };
619 
620 static const uint16_t bitalloc_65_codes_a[65] = {
621  0x9E5C, 0x9E5E, 0x4F2C, 0x2794, 0x13C4, 0x1E44, 0x09E3, 0x0F23,
622  0x04F3, 0x0792, 0x027E, 0x03CE, 0x013D, 0x01E5, 0x009C, 0x00CC,
623  0x0040, 0x0058, 0x0067, 0x001E, 0x0021, 0x002D, 0x003D, 0x0007,
624  0x0011, 0x0014, 0x0017, 0x001A, 0x001C, 0x001F, 0x0001, 0x0004,
625  0x0006, 0x0005, 0x0002, 0x0000, 0x001D, 0x001B, 0x0018, 0x0015,
626  0x0012, 0x000E, 0x0006, 0x0032, 0x0026, 0x001F, 0x0078, 0x0059,
627  0x0041, 0x00CD, 0x009D, 0x01E6, 0x013E, 0x03CF, 0x027F, 0x0793,
628  0x0790, 0x04F0, 0x09E4, 0x1E45, 0x13C5, 0x2795, 0x4F2D, 0x9E5F,
629  0x9E5D,
630 };
631 
632 static const uint16_t bitalloc_65_codes_b[65] = {
633  0x0A8C, 0x0547, 0x01B5, 0x0008, 0x00DB, 0x0152, 0x0005, 0x000B,
634  0x008E, 0x00AE, 0x00E4, 0x0003, 0x0037, 0x0039, 0x0055, 0x006C,
635  0x0073, 0x0003, 0x0015, 0x001D, 0x0028, 0x0030, 0x0037, 0x003E,
636  0x0006, 0x000B, 0x000F, 0x0012, 0x0016, 0x0019, 0x001D, 0x0001,
637  0x0004, 0x0002, 0x001E, 0x001A, 0x0017, 0x0013, 0x0010, 0x000C,
638  0x0007, 0x003F, 0x0038, 0x0031, 0x0029, 0x0022, 0x001A, 0x0014,
639  0x0000, 0x006D, 0x0056, 0x0046, 0x0038, 0x0004, 0x00E5, 0x00AF,
640  0x008F, 0x006C, 0x000A, 0x0153, 0x0150, 0x0009, 0x02A2, 0x01B4,
641  0x0A8D,
642 };
643 
644 static const uint16_t bitalloc_65_codes_c[65] = {
645  0x045C, 0x022F, 0x03F5, 0x01BC, 0x01FB, 0x0059, 0x00D0, 0x00DF,
646  0x000A, 0x002D, 0x002F, 0x0052, 0x0069, 0x0078, 0x007F, 0x000A,
647  0x0010, 0x001C, 0x0023, 0x002A, 0x0035, 0x003A, 0x003D, 0x0000,
648  0x0003, 0x0006, 0x0009, 0x000C, 0x000F, 0x0012, 0x0016, 0x0018,
649  0x001C, 0x0019, 0x0017, 0x0013, 0x0010, 0x000D, 0x000A, 0x0007,
650  0x0004, 0x0001, 0x003E, 0x003B, 0x0036, 0x002B, 0x0028, 0x001D,
651  0x0011, 0x000B, 0x0004, 0x0079, 0x006E, 0x0053, 0x0044, 0x002E,
652  0x000B, 0x00FC, 0x00D1, 0x008A, 0x0058, 0x01BD, 0x0116, 0x03F4,
653  0x045D,
654 };
655 
656 static const uint16_t bitalloc_65_codes_d[65] = {
657  0x70B0, 0x70B2, 0x70B4, 0x2852, 0x385B, 0x142E, 0x1C2E, 0x0A15,
658  0x0E14, 0x0214, 0x0704, 0x0104, 0x010B, 0x0383, 0x0083, 0x0143,
659  0x01C3, 0x0043, 0x00A2, 0x00E2, 0x0022, 0x0052, 0x0072, 0x0012,
660  0x002A, 0x003A, 0x000A, 0x0016, 0x001E, 0x0006, 0x000C, 0x0000,
661  0x0004, 0x0001, 0x000D, 0x0007, 0x001F, 0x0017, 0x000B, 0x003B,
662  0x002B, 0x0013, 0x0073, 0x0053, 0x0023, 0x00E3, 0x00A3, 0x00A0,
663  0x0040, 0x01C0, 0x0084, 0x0384, 0x0284, 0x0105, 0x0705, 0x0215,
664  0x0E15, 0x0A16, 0x1C2F, 0x142F, 0x1428, 0x2853, 0x70B5, 0x70B3,
665  0x70B1,
666 };
667 
668 static const uint16_t bitalloc_65_codes_e[65] = {
669  0x032C, 0x0332, 0x0378, 0x037E, 0x008C, 0x014A, 0x0188, 0x0197,
670  0x019E, 0x01BD, 0x0044, 0x0047, 0x00AA, 0x00C5, 0x00CD, 0x00DC,
671  0x001C, 0x002C, 0x0053, 0x0063, 0x0068, 0x0008, 0x000F, 0x0017,
672  0x002B, 0x0035, 0x0005, 0x0009, 0x0016, 0x001C, 0x0006, 0x000F,
673  0x0004, 0x0000, 0x0007, 0x001D, 0x0017, 0x000A, 0x0006, 0x0036,
674  0x0030, 0x0028, 0x0010, 0x0009, 0x0069, 0x0064, 0x0054, 0x002D,
675  0x001D, 0x00DD, 0x00CE, 0x00CA, 0x00AB, 0x00A4, 0x0045, 0x01BE,
676  0x019F, 0x0198, 0x0189, 0x014B, 0x008D, 0x037F, 0x0379, 0x0333,
677  0x032D,
678 };
679 
680 static const uint16_t bitalloc_65_codes_f[65] = {
681  0x0FE0, 0x0FE2, 0x0FE8, 0x0FEA, 0x0FEC, 0x0FEE, 0x0FF0, 0x0FF2,
682  0x0FF4, 0x2FF2, 0x07F2, 0x07FB, 0x03F6, 0x0BFA, 0x0BFD, 0x01FF,
683  0x05FF, 0x02FC, 0x007C, 0x017C, 0x003C, 0x00BC, 0x001C, 0x005C,
684  0x000C, 0x002C, 0x0004, 0x0014, 0x0000, 0x0008, 0x000E, 0x0002,
685  0x0006, 0x0003, 0x000F, 0x0009, 0x0001, 0x0015, 0x0005, 0x002D,
686  0x000D, 0x005D, 0x001D, 0x00BD, 0x003D, 0x017D, 0x007D, 0x02FD,
687  0x00FC, 0x05FC, 0x01FA, 0x0BFB, 0x03F7, 0x17F8, 0x07F3, 0x2FF3,
688  0x0FF5, 0x0FF3, 0x0FF1, 0x0FEF, 0x0FED, 0x0FEB, 0x0FE9, 0x0FE3,
689  0x0FE1,
690 };
691 
692 static const uint16_t bitalloc_65_codes_g[65] = {
693  0x010C, 0x038A, 0x0608, 0x0786, 0x0084, 0x0087, 0x0302, 0x0305,
694  0x0040, 0x00E0, 0x00E3, 0x0183, 0x001E, 0x005E, 0x009E, 0x00DE,
695  0x00F1, 0x0011, 0x0039, 0x0061, 0x0079, 0x0009, 0x001D, 0x0031,
696  0x003D, 0x0005, 0x000F, 0x0019, 0x001F, 0x0003, 0x0006, 0x000A,
697  0x000E, 0x000B, 0x0008, 0x0004, 0x0000, 0x001A, 0x0012, 0x000A,
698  0x0002, 0x0036, 0x0026, 0x0016, 0x0006, 0x006E, 0x004E, 0x002E,
699  0x000E, 0x00DF, 0x009F, 0x005F, 0x001F, 0x01E0, 0x0180, 0x00E1,
700  0x0041, 0x03C2, 0x0303, 0x01C4, 0x0085, 0x0787, 0x0609, 0x038B,
701  0x010D,
702 };
703 
704 static const uint8_t bitalloc_65_bits_a[65] = {
705  16, 16, 15, 14, 13, 13, 12, 12, 11, 11, 10, 10, 9, 9, 8, 8,
706  7, 7, 7, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 4, 4,
707  4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 7, 7,
708  7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 13, 13, 14, 15, 16,
709  16,
710 };
711 
712 static const uint8_t bitalloc_65_bits_b[65] = {
713  12, 11, 10, 9, 9, 9, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7,
714  7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 4,
715  4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6,
716  6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 10, 10,
717  12,
718 };
719 
720 static const uint8_t bitalloc_65_bits_c[65] = {
721  11, 10, 10, 9, 9, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6,
722  6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5,
723  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6,
724  6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 10,
725  11,
726 };
727 
728 static const uint8_t bitalloc_65_bits_d[65] = {
729  15, 15, 15, 14, 14, 13, 13, 12, 12, 11, 11, 10, 10, 10, 9, 9,
730  9, 8, 8, 8, 7, 7, 7, 6, 6, 6, 5, 5, 5, 4, 4, 3,
731  3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8,
732  8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 15, 15,
733  15,
734 };
735 
736 static const uint8_t bitalloc_65_bits_e[65] = {
737  10, 10, 10, 10, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8,
738  7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 5, 5, 5, 5, 4, 4,
739  3, 3, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 7,
740  7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10,
741  10,
742 };
743 
744 static const uint8_t bitalloc_65_bits_f[65] = {
745  14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 13, 13, 12, 12, 12, 11,
746  11, 10, 9, 9, 8, 8, 7, 7, 6, 6, 5, 5, 4, 4, 4, 3,
747  3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10,
748  10, 11, 11, 12, 12, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14,
749  14,
750 };
751 
752 static const uint8_t bitalloc_65_bits_g[65] = {
753  11, 11, 11, 11, 10, 10, 10, 10, 9, 9, 9, 9, 8, 8, 8, 8,
754  8, 7, 7, 7, 7, 6, 6, 6, 6, 5, 5, 5, 5, 4, 4, 4,
755  4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7,
756  7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11,
757  11,
758 };
759 
760 static const uint16_t bitalloc_129_codes_a[129] = {
761  0x0660, 0x0666, 0x06EC, 0x0722, 0x0760, 0x076E, 0x004C, 0x004E,
762  0x00F4, 0x010A, 0x0148, 0x0156, 0x01D4, 0x01F2, 0x0331, 0x0370,
763  0x0377, 0x0396, 0x03B1, 0x0024, 0x0064, 0x007B, 0x008A, 0x00A5,
764  0x00D4, 0x00EB, 0x00FA, 0x019A, 0x01B9, 0x01C9, 0x01D9, 0x0010,
765  0x0030, 0x0033, 0x0043, 0x0053, 0x006B, 0x007A, 0x00CA, 0x00D2,
766  0x00DE, 0x00E6, 0x00F6, 0x000E, 0x001F, 0x0023, 0x002B, 0x003B,
767  0x003F, 0x0067, 0x0070, 0x0077, 0x0005, 0x000D, 0x0012, 0x001B,
768  0x002C, 0x0035, 0x003A, 0x0004, 0x000B, 0x0017, 0x001F, 0x0009,
769  0x0008, 0x000A, 0x0000, 0x0018, 0x000C, 0x0005, 0x003C, 0x0036,
770  0x002D, 0x001C, 0x0013, 0x000E, 0x0006, 0x007A, 0x0071, 0x0068,
771  0x0064, 0x003C, 0x0034, 0x0028, 0x0020, 0x000F, 0x00F7, 0x00E7,
772  0x00DF, 0x00D3, 0x00CB, 0x007B, 0x0074, 0x0054, 0x0044, 0x003C,
773  0x0031, 0x0011, 0x01DA, 0x01CA, 0x01BA, 0x019B, 0x00FB, 0x00F8,
774  0x00D5, 0x00AA, 0x008B, 0x0084, 0x0065, 0x0025, 0x03B6, 0x0397,
775  0x0390, 0x0371, 0x0332, 0x01F3, 0x01D5, 0x0157, 0x0149, 0x010B,
776  0x00F5, 0x004F, 0x004D, 0x076F, 0x0761, 0x0723, 0x06ED, 0x0667,
777  0x0661,
778 };
779 
780 static const uint16_t bitalloc_129_codes_b[129] = {
781  0x29DC, 0x14EF, 0x0455, 0x0E9C, 0x022B, 0x0489, 0x0740, 0x074F,
782  0x0172, 0x0245, 0x0247, 0x030A, 0x03A1, 0x001C, 0x008B, 0x00D6,
783  0x010C, 0x0148, 0x014F, 0x0186, 0x01D1, 0x0008, 0x000F, 0x0046,
784  0x005D, 0x0078, 0x0087, 0x0096, 0x00A5, 0x00BC, 0x00D8, 0x00DE,
785  0x00F6, 0x0005, 0x0014, 0x0024, 0x002F, 0x003A, 0x003D, 0x0049,
786  0x0050, 0x0058, 0x005F, 0x0066, 0x006D, 0x0075, 0x007C, 0x0004,
787  0x000B, 0x0013, 0x0018, 0x001B, 0x001F, 0x0022, 0x0026, 0x002A,
788  0x002D, 0x0031, 0x0034, 0x0038, 0x003B, 0x003F, 0x0003, 0x0006,
789  0x000A, 0x0007, 0x0004, 0x0000, 0x003C, 0x0039, 0x0035, 0x0032,
790  0x002E, 0x002B, 0x0027, 0x0023, 0x0020, 0x001C, 0x0019, 0x0016,
791  0x0010, 0x0005, 0x007D, 0x007A, 0x006E, 0x0067, 0x0060, 0x0059,
792  0x0051, 0x004A, 0x0042, 0x003B, 0x0034, 0x0025, 0x0015, 0x0006,
793  0x00F7, 0x00DF, 0x00D9, 0x00BD, 0x00A6, 0x0097, 0x0090, 0x0079,
794  0x006A, 0x0047, 0x0044, 0x0009, 0x01D2, 0x0187, 0x0184, 0x0149,
795  0x010D, 0x00D7, 0x00B8, 0x001D, 0x03A6, 0x030B, 0x029C, 0x0246,
796  0x0173, 0x0114, 0x0741, 0x053A, 0x0488, 0x0E9D, 0x0A76, 0x0454,
797  0x29DD,
798 };
799 
800 static const uint16_t bitalloc_129_codes_c[129] = {
801  0x0E5C, 0x072F, 0x001D, 0x0724, 0x000F, 0x010D, 0x0324, 0x0393,
802  0x03E9, 0x0080, 0x0087, 0x00FA, 0x0164, 0x0193, 0x01DE, 0x01F5,
803  0x0010, 0x002A, 0x0041, 0x0064, 0x0073, 0x008E, 0x00A4, 0x00B3,
804  0x00D6, 0x00E5, 0x00F4, 0x00FB, 0x0002, 0x0009, 0x0013, 0x001E,
805  0x0026, 0x002C, 0x0033, 0x003F, 0x0041, 0x004C, 0x0053, 0x005E,
806  0x0065, 0x0070, 0x0073, 0x0078, 0x007B, 0x007E, 0x0002, 0x0005,
807  0x0007, 0x000B, 0x000D, 0x0011, 0x0014, 0x0017, 0x001A, 0x001D,
808  0x0021, 0x0024, 0x0027, 0x002A, 0x002D, 0x0030, 0x0033, 0x0036,
809  0x003A, 0x0037, 0x0034, 0x0031, 0x002E, 0x002B, 0x0028, 0x0025,
810  0x0022, 0x001E, 0x001B, 0x0018, 0x0015, 0x0012, 0x000E, 0x000C,
811  0x0008, 0x0006, 0x0003, 0x007F, 0x007C, 0x0079, 0x0076, 0x0071,
812  0x006A, 0x005F, 0x0058, 0x004D, 0x0046, 0x0040, 0x0038, 0x002D,
813  0x0027, 0x001F, 0x0014, 0x0012, 0x0003, 0x0000, 0x00F5, 0x00EE,
814  0x00D7, 0x00C8, 0x00A5, 0x008F, 0x007C, 0x0065, 0x0042, 0x002B,
815  0x0011, 0x0002, 0x01DF, 0x01C8, 0x0165, 0x00FB, 0x00E4, 0x0081,
816  0x0006, 0x03E8, 0x0325, 0x01CA, 0x010C, 0x0725, 0x0396, 0x001C,
817  0x0E5D,
818 };
819 
820 static const uint16_t bitalloc_129_codes_d[129] = {
821  0xA598, 0xA59A, 0xA59C, 0xA59E, 0xC598, 0xE586, 0x3ACC, 0x52CA,
822  0x62CD, 0x0D48, 0x1D67, 0x2978, 0x3167, 0x3966, 0x06A5, 0x0EBC,
823  0x14BD, 0x1CB1, 0x0350, 0x0353, 0x075F, 0x0A5F, 0x0C5E, 0x0E5E,
824  0x01AE, 0x03AD, 0x052D, 0x062D, 0x072D, 0x00D5, 0x01D4, 0x0294,
825  0x0314, 0x0394, 0x0014, 0x0094, 0x0114, 0x0174, 0x01B4, 0x01F4,
826  0x000B, 0x004B, 0x008B, 0x00BB, 0x00DB, 0x00FB, 0x001B, 0x003B,
827  0x0053, 0x0063, 0x0073, 0x0003, 0x0013, 0x0023, 0x002F, 0x0037,
828  0x003F, 0x0007, 0x000F, 0x0015, 0x0019, 0x001D, 0x0001, 0x0005,
829  0x0009, 0x0006, 0x0002, 0x001E, 0x001A, 0x0016, 0x0010, 0x0008,
830  0x0000, 0x0038, 0x0030, 0x0028, 0x001C, 0x000C, 0x007C, 0x006C,
831  0x005C, 0x0044, 0x0024, 0x0004, 0x00E4, 0x00C4, 0x00A4, 0x0074,
832  0x0034, 0x01F5, 0x01B5, 0x0175, 0x0115, 0x0095, 0x0015, 0x0395,
833  0x0315, 0x0295, 0x01D5, 0x00D6, 0x072E, 0x062E, 0x052E, 0x03AE,
834  0x01AF, 0x0E5F, 0x0C5F, 0x0C58, 0x0A58, 0x0758, 0x0351, 0x1CB2,
835  0x18B2, 0x0EBD, 0x0EB2, 0x3967, 0x3960, 0x2979, 0x2964, 0x0D49,
836  0x72C2, 0x52CB, 0x3ACD, 0xE587, 0xC599, 0xA59F, 0xA59D, 0xA59B,
837  0xA599,
838 };
839 
840 static const uint16_t bitalloc_129_codes_e[129] = {
841  0xA13C, 0xC720, 0xA13F, 0xA13E, 0xA13D, 0xE722, 0x5090, 0x6393,
842  0x7392, 0x2849, 0x31CE, 0x39CE, 0x1425, 0x18E5, 0x1CE5, 0x0844,
843  0x0A1C, 0x0C7C, 0x036C, 0x0423, 0x050F, 0x063F, 0x01B7, 0x0216,
844  0x0285, 0x031D, 0x039D, 0x0109, 0x0140, 0x0180, 0x01C8, 0x01CF,
845  0x007A, 0x008A, 0x00A2, 0x00C1, 0x00E5, 0x0014, 0x0037, 0x0043,
846  0x004E, 0x0056, 0x0061, 0x006C, 0x007C, 0x000B, 0x001C, 0x001F,
847  0x0023, 0x0025, 0x0029, 0x002C, 0x002E, 0x0032, 0x0034, 0x0037,
848  0x003A, 0x003C, 0x003F, 0x0001, 0x0003, 0x0006, 0x0008, 0x000A,
849  0x000C, 0x000B, 0x0009, 0x0007, 0x0004, 0x0002, 0x0000, 0x003D,
850  0x003B, 0x0038, 0x0035, 0x0033, 0x002F, 0x002D, 0x002A, 0x0026,
851  0x0024, 0x0020, 0x001D, 0x001A, 0x007D, 0x006D, 0x0062, 0x0057,
852  0x004F, 0x0044, 0x003C, 0x0015, 0x00E6, 0x00C6, 0x00A3, 0x008B,
853  0x007B, 0x006C, 0x01C9, 0x0181, 0x0141, 0x010A, 0x00DA, 0x031E,
854  0x0286, 0x0217, 0x0210, 0x0738, 0x0638, 0x0508, 0x036D, 0x0C7D,
855  0x0A1D, 0x0845, 0x1CE6, 0x18E6, 0x1426, 0x39CF, 0x31CF, 0x284E,
856  0x7393, 0x7390, 0x5091, 0xE723, 0xC724, 0xC725, 0xC722, 0xC723,
857  0xC721,
858 };
859 
860 static const uint16_t bitalloc_129_codes_f[129] = {
861  0x762C, 0x3B17, 0x1555, 0x0608, 0x0AAB, 0x0FF2, 0x0305, 0x0307,
862  0x0763, 0x0046, 0x010C, 0x01BC, 0x02AB, 0x03B6, 0x03FD, 0x0080,
863  0x0087, 0x00DF, 0x0156, 0x01D9, 0x01F8, 0x01FF, 0x002A, 0x0041,
864  0x0061, 0x0094, 0x00D4, 0x00EA, 0x00F2, 0x00FD, 0x0009, 0x000B,
865  0x001A, 0x0026, 0x0031, 0x0040, 0x004B, 0x006B, 0x0073, 0x0077,
866  0x007A, 0x007C, 0x0000, 0x0002, 0x0006, 0x0008, 0x000B, 0x000E,
867  0x0011, 0x0014, 0x0016, 0x0019, 0x001C, 0x001E, 0x0021, 0x0023,
868  0x0026, 0x0028, 0x002B, 0x002D, 0x002F, 0x0031, 0x0033, 0x0036,
869  0x0038, 0x0037, 0x0034, 0x0032, 0x0030, 0x002E, 0x002C, 0x0029,
870  0x0027, 0x0024, 0x0022, 0x001F, 0x001D, 0x001A, 0x0017, 0x0015,
871  0x0012, 0x000F, 0x000C, 0x0009, 0x0007, 0x0003, 0x0001, 0x007D,
872  0x007B, 0x0078, 0x0074, 0x0072, 0x0054, 0x0041, 0x0036, 0x0027,
873  0x001B, 0x0014, 0x000A, 0x00FE, 0x00F3, 0x00EB, 0x00D5, 0x0095,
874  0x006E, 0x0042, 0x002B, 0x0010, 0x01F9, 0x01DA, 0x0157, 0x0154,
875  0x00C0, 0x0081, 0x0022, 0x03B7, 0x03B0, 0x01BD, 0x010D, 0x0047,
876  0x07F8, 0x0554, 0x0306, 0x0FF3, 0x0EC4, 0x0609, 0x1D8A, 0x1554,
877  0x762D,
878 };
879 
880 static const uint16_t bitalloc_129_codes_g[129] = {
881  0x1E20, 0x1E5E, 0x031C, 0x051A, 0x0718, 0x0916, 0x0B14, 0x0D12,
882  0x0F11, 0x0090, 0x018F, 0x028E, 0x038D, 0x048C, 0x058B, 0x068A,
883  0x0789, 0x0049, 0x00C8, 0x0148, 0x01C7, 0x0247, 0x02C6, 0x0346,
884  0x03C5, 0x0025, 0x0065, 0x00A5, 0x00E4, 0x0124, 0x0164, 0x01A4,
885  0x01E3, 0x0013, 0x0033, 0x0053, 0x0073, 0x0093, 0x00B3, 0x00D3,
886  0x00F3, 0x000A, 0x001A, 0x002A, 0x003A, 0x004A, 0x005A, 0x006A,
887  0x007A, 0x0006, 0x000E, 0x0016, 0x001E, 0x0026, 0x002E, 0x0036,
888  0x003E, 0x0004, 0x0008, 0x000C, 0x0010, 0x0014, 0x0018, 0x001C,
889  0x0000, 0x001D, 0x0019, 0x0015, 0x0011, 0x000D, 0x0009, 0x0005,
890  0x003F, 0x0037, 0x002F, 0x0027, 0x001F, 0x0017, 0x000F, 0x0007,
891  0x007B, 0x006B, 0x005B, 0x004B, 0x003B, 0x002B, 0x001B, 0x000B,
892  0x0008, 0x00F0, 0x00D0, 0x00B0, 0x0090, 0x0070, 0x0050, 0x0030,
893  0x01E4, 0x01A5, 0x0165, 0x0125, 0x00E5, 0x00E2, 0x00A2, 0x0062,
894  0x03CA, 0x0347, 0x02C7, 0x02C4, 0x0244, 0x0149, 0x00C9, 0x00C6,
895  0x0796, 0x068B, 0x0688, 0x048D, 0x048A, 0x028F, 0x028C, 0x0091,
896  0x0F2E, 0x0D13, 0x0B15, 0x0917, 0x0719, 0x051B, 0x031D, 0x1E5F,
897  0x1E21,
898 };
899 
900 static const uint8_t bitalloc_129_bits_a[129] = {
901  11, 11, 11, 11, 11, 11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
902  10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8,
903  8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7,
904  7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 4,
905  4, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7,
906  7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
907  8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10,
908  10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11,
909  11,
910 };
911 
912 static const uint8_t bitalloc_129_bits_b[129] = {
913  14, 13, 12, 12, 11, 11, 11, 11, 10, 10, 10, 10, 10, 9, 9, 9,
914  9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
915  8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6,
916  6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5,
917  5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
918  6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
919  8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9,
920  9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12,
921  14,
922 };
923 
924 static const uint8_t bitalloc_129_bits_c[129] = {
925  13, 12, 11, 11, 10, 10, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9,
926  8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7,
927  7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6,
928  6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
929  6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
930  6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
931  7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
932  8, 8, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11,
933  13,
934 };
935 
936 static const uint8_t bitalloc_129_bits_d[129] = {
937  16, 16, 16, 16, 16, 16, 15, 15, 15, 14, 14, 14, 14, 14, 13, 13,
938  13, 13, 12, 12, 12, 12, 12, 12, 11, 11, 11, 11, 11, 10, 10, 10,
939  10, 10, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 7, 7,
940  7, 7, 7, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4,
941  4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7,
942  7, 7, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10,
943  10, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13,
944  13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 15, 16, 16, 16, 16, 16,
945  16,
946 };
947 
948 static const uint8_t bitalloc_129_bits_e[129] = {
949  16, 16, 16, 16, 16, 16, 15, 15, 15, 14, 14, 14, 13, 13, 13, 12,
950  12, 12, 11, 11, 11, 11, 10, 10, 10, 10, 10, 9, 9, 9, 9, 9,
951  8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6,
952  6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5,
953  5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6,
954  6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8,
955  8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12,
956  12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 16, 16, 16,
957  16,
958 };
959 
960 static const uint8_t bitalloc_129_bits_f[129] = {
961  15, 14, 13, 12, 12, 12, 11, 11, 11, 10, 10, 10, 10, 10, 10, 9,
962  9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7,
963  7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6,
964  6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
965  6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
966  6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7,
967  7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9,
968  9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13,
969  15,
970 };
971 
972 static const uint8_t bitalloc_129_bits_g[129] = {
973  13, 13, 12, 12, 12, 12, 12, 12, 12, 11, 11, 11, 11, 11, 11, 11,
974  11, 10, 10, 10, 10, 10, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9,
975  9, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7,
976  7, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5,
977  4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6,
978  7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8,
979  9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10,
980  11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 13,
981  13,
982 };
983 
985  3, 5, 7, 9, 13, 17, 25, 33, 65, 129
986 };
987 
988 static const int8_t bitalloc_offsets[DCA_CODE_BOOKS] = {
989  -1, -2, -3, -4, -6, -8, -12, -16, -32, -64
990 };
991 
993  { 2 },
994  { 4, 3, 3 },
995  { 5, 5, 4 },
996  { 6, 5, 6 },
997  { 7, 6, 5 },
998  { 9, 8, 7, 9, 8, 8, 8 },
999  { 9, 9, 8, 9, 8, 9, 9 },
1000  { 9, 9, 9, 9, 9, 9, 9 },
1001  { 9, 9, 9, 9, 9, 9, 9 },
1002  { 9, 9, 9, 9, 9, 9, 9 }
1003 };
1004 
1005 static const uint16_t *const bitalloc_codes[DCA_CODE_BOOKS][8] = {
1006  { bitalloc_3_codes, NULL },
1021 };
1022 
1023 static const uint8_t *const bitalloc_bits[DCA_CODE_BOOKS][8] = {
1024  { bitalloc_3_bits, NULL },
1039 };
1040 
1041 static const uint16_t tnl_grp_0_codes[37] = {
1042  0x0000, 0x0003, 0x0004, 0x0007, 0x0001, 0x0009, 0x000a, 0x000d,
1043  0x000e, 0x0006, 0x0012, 0x0005, 0x0015, 0x0016, 0x0022, 0x0025,
1044  0x0035, 0x0076, 0x0002, 0x0042, 0x00b6, 0x0036, 0x00c2, 0x0136,
1045  0x0182, 0x01c2, 0x03c2, 0x0482, 0x0682, 0x0082, 0x0882, 0x0a82,
1046  0x0282, 0x2282, 0x3282, 0x1282, 0x5282,
1047 };
1048 
1049 static const uint16_t tnl_grp_1_codes[34] = {
1050  0x0001, 0x0003, 0x0006, 0x0000, 0x0002, 0x0004, 0x0005, 0x0007,
1051  0x0008, 0x000f, 0x001a, 0x001c, 0x001d, 0x000a, 0x002c, 0x002d,
1052  0x000d, 0x002a, 0x004c, 0x004d, 0x006a, 0x008c, 0x00cd, 0x00ea,
1053  0x000c, 0x010c, 0x01ea, 0x020c, 0x030c, 0x07ea, 0x0bea, 0x03ea,
1054  0x13ea, 0x33ea,
1055 };
1056 
1057 static const uint16_t tnl_grp_2_codes[31] = {
1058  0x0001, 0x0003, 0x0006, 0x0007, 0x0004, 0x0008, 0x000c, 0x0010,
1059  0x0012, 0x001a, 0x0022, 0x0000, 0x000a, 0x0020, 0x0040, 0x004a,
1060  0x006a, 0x0002, 0x002a, 0x0042, 0x0082, 0x00aa, 0x00e0, 0x0060,
1061  0x00c2, 0x01c2, 0x0160, 0x0360, 0x0f60, 0x0760, 0x1760,
1062 };
1063 
1064 static const uint16_t tnl_grp_3_codes[28] = {
1065  0x0001, 0x0006, 0x0008, 0x0014, 0x001c, 0x0000, 0x0002, 0x0004,
1066  0x000a, 0x000c, 0x0010, 0x0012, 0x001a, 0x0020, 0x002a, 0x002c,
1067  0x0032, 0x003a, 0x0022, 0x0030, 0x0062, 0x0064, 0x0070, 0x0024,
1068  0x00a4, 0x01a4, 0x03a4, 0x07a4,
1069 };
1070 
1071 static const uint16_t tnl_grp_4_codes[23] = {
1072  0x0001, 0x0000, 0x000a, 0x0006, 0x0012, 0x001e, 0x0022, 0x002e,
1073  0x0036, 0x003e, 0x0002, 0x0016, 0x0032, 0x004e, 0x0056, 0x000e,
1074  0x0042, 0x0072, 0x00c2, 0x00f2, 0x008e, 0x018e, 0x038e,
1075 };
1076 
1077 static const uint16_t tnl_scf_codes[20] = {
1078  0x0000, 0x0001, 0x0002, 0x0005, 0x0006, 0x0007, 0x000b, 0x000c,
1079  0x0013, 0x0014, 0x0003, 0x0004, 0x0023, 0x0064, 0x00a4, 0x0024,
1080  0x0124, 0x0324, 0x0724, 0x0f24,
1081 };
1082 
1083 static const uint16_t damp_codes[7] = {
1084  0x0001, 0x0000, 0x0002, 0x0006, 0x000e, 0x001e, 0x003e,
1085 };
1086 
1087 static const uint16_t dph_codes[9] = {
1088  0x0000, 0x0002, 0x0003, 0x0001, 0x0009, 0x000d, 0x0005, 0x0015,
1089  0x0035,
1090 };
1091 
1092 static const uint16_t fst_rsd_amp_codes[24] = {
1093  0x0003, 0x0005, 0x0006, 0x0007, 0x0000, 0x0001, 0x0002, 0x0008,
1094  0x0009, 0x000a, 0x0014, 0x0004, 0x001a, 0x001c, 0x0024, 0x002c,
1095  0x003a, 0x000c, 0x003c, 0x004c, 0x00fc, 0x007c, 0x017c, 0x037c,
1096 };
1097 
1098 static const uint16_t rsd_apprx_codes[6] = {
1099  0x0000, 0x0001, 0x0003, 0x0007, 0x000f, 0x001f,
1100 };
1101 
1102 static const uint16_t rsd_amp_codes[33] = {
1103  0x0001, 0x0000, 0x0002, 0x0003, 0x0004, 0x000e, 0x000f, 0x0016,
1104  0x0007, 0x0027, 0x0037, 0x0026, 0x0066, 0x0006, 0x0017, 0x0046,
1105  0x0097, 0x00d7, 0x0086, 0x00c6, 0x01c6, 0x0157, 0x0186, 0x0257,
1106  0x0357, 0x0057, 0x0786, 0x0386, 0x0b86, 0x0457, 0x0c57, 0x1457,
1107  0x1c57,
1108 };
1109 
1110 static const uint16_t avg_g3_codes[18] = {
1111  0x0001, 0x0002, 0x0003, 0x0000, 0x000c, 0x0014, 0x0018, 0x0004,
1112  0x0008, 0x0028, 0x0068, 0x0024, 0x00a4, 0x00e4, 0x0164, 0x0064,
1113  0x0264, 0x0664,
1114 };
1115 
1116 static const uint16_t st_grid_codes[22] = {
1117  0x0001, 0x0002, 0x0000, 0x0004, 0x0008, 0x001c, 0x004c, 0x006c,
1118  0x000c, 0x002c, 0x008c, 0x00ac, 0x012c, 0x018c, 0x01ac, 0x038c,
1119  0x03ac, 0x032c, 0x072c, 0x0f2c, 0x172c, 0x1f2c,
1120 };
1121 
1122 static const uint16_t grid_2_codes[20] = {
1123  0x0000, 0x0002, 0x0003, 0x0001, 0x0005, 0x000d, 0x003d, 0x005d,
1124  0x009d, 0x011d, 0x001d, 0x061d, 0x041d, 0x0c1d, 0x0a1d, 0x121d,
1125  0x021d, 0x1a1d, 0x221d, 0x3a1d,
1126 };
1127 
1128 static const uint16_t grid_3_codes[13] = {
1129  0x0001, 0x0002, 0x0000, 0x0004, 0x000c, 0x001c, 0x007c, 0x003c,
1130  0x01bc, 0x00bc, 0x06bc, 0x02bc, 0x0abc,
1131 };
1132 
1133 static const uint16_t rsd_codes[9] = {
1134  0x0001, 0x0003, 0x0000, 0x0002, 0x0006, 0x0004, 0x000c, 0x001c,
1135  0x003c,
1136 };
1137 
1138 static const uint8_t tnl_grp_0_bitvals[74] = {
1139  3, 5, 3, 9, 3, 4, 3, 6, 4, 10, 4, 13, 4, 7, 4, 11,
1140  4, 8, 5, 12, 5, 14, 6, 15, 6, 18, 6, 1, 6, 17, 6, 16,
1141  6, 21, 7, 20, 8, 19, 8, 22, 8, 25, 9, 26, 9, 23, 9, 3,
1142  9, 24, 10, 29, 10, 27, 11, 28, 11, 30, 12, 33, 12, 31, 12, 32,
1143  14, 34, 14, 37, 14, 36, 15, 35, 15, 0,
1144 };
1145 
1146 static const uint8_t tnl_grp_1_bitvals[68] = {
1147  3, 9, 3, 6, 3, 5, 4, 4, 4, 8, 4, 10, 4, 1, 4, 11,
1148  4, 7, 4, 13, 5, 12, 5, 14, 5, 17, 6, 16, 6, 15, 6, 18,
1149  7, 20, 7, 19, 7, 21, 8, 25, 8, 23, 8, 22, 8, 24, 9, 26,
1150  10, 3, 10, 29, 10, 30, 10, 27, 10, 28, 11, 31, 12, 32, 13, 33,
1151  14, 34, 14, 0,
1152 };
1153 
1154 static const uint8_t tnl_grp_2_bitvals[62] = {
1155  2, 1, 3, 6, 3, 5, 3, 7, 4, 9, 4, 8, 4, 4, 5, 10,
1156  5, 11, 5, 13, 6, 12, 7, 14, 7, 16, 7, 15, 7, 17, 7, 18,
1157  7, 19, 8, 22, 8, 20, 8, 21, 8, 3, 8, 24, 8, 25, 9, 23,
1158  9, 26, 9, 27, 10, 28, 11, 29, 12, 31, 13, 30, 13, 0,
1159 };
1160 
1161 static const uint8_t tnl_grp_3_bitvals[56] = {
1162  1, 1, 3, 6, 4, 5, 5, 9, 5, 4, 6, 8, 6, 14, 6, 10,
1163  6, 21, 6, 13, 6, 7, 6, 3, 6, 16, 6, 2, 6, 18, 6, 17,
1164  6, 11, 6, 15, 7, 19, 7, 23, 7, 24, 7, 22, 7, 12, 8, 20,
1165  9, 25, 10, 26, 11, 27, 11, 0,
1166 };
1167 
1168 static const uint8_t tnl_grp_4_bitvals[46] = {
1169  1, 1, 2, 2, 4, 4, 5, 5, 6, 6, 6, 8, 6, 3, 6, 19,
1170  6, 20, 6, 9, 7, 7, 7, 11, 7, 13, 7, 17, 7, 10, 8, 12,
1171  8, 15, 8, 14, 8, 21, 8, 18, 9, 16, 10, 22, 10, 0,
1172 };
1173 
1174 static const uint8_t tnl_scf_bitvals[40] = {
1175  3, 3, 3, 1, 3, 2, 3, 5, 3, 4, 3, 6, 4, 8, 4, 7,
1176  5, 10, 5, 9, 6, 12, 6, 11, 6, 13, 7, 14, 8, 15, 9, 16,
1177  10, 17, 11, 18, 12, 19, 12, 0,
1178 };
1179 
1180 static const uint8_t damp_bitvals[14] = {
1181  1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 6, 0,
1182 };
1183 
1184 static const uint8_t dph_bitvals[18] = {
1185  2, 2, 2, 1, 2, 8, 4, 3, 4, 7, 4, 4, 5, 6, 6, 5,
1186  6, 0,
1187 };
1188 
1189 static const uint8_t fst_rsd_amp_bitvals[48] = {
1190  3, 13, 3, 15, 3, 16, 3, 14, 4, 12, 4, 10, 4, 11, 4, 17,
1191  4, 18, 5, 19, 5, 9, 6, 1, 6, 7, 6, 6, 6, 8, 6, 5,
1192  6, 4, 7, 20, 7, 2, 7, 3, 8, 21, 9, 22, 10, 23, 10, 0,
1193 };
1194 
1195 static const uint8_t rsd_apprx_bitvals[12] = {
1196  1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 0,
1197 };
1198 
1199 static const uint8_t rsd_amp_bitvals[66] = {
1200  2, 3, 3, 2, 3, 5, 3, 4, 3, 1, 4, 7, 4, 6, 5, 9,
1201  6, 8, 6, 11, 6, 10, 7, 12, 7, 13, 8, 14, 8, 18, 8, 16,
1202  8, 15, 8, 22, 9, 20, 9, 24, 9, 17, 10, 28, 10, 26, 10, 21,
1203  10, 23, 11, 30, 11, 19, 12, 25, 12, 32, 13, 36, 13, 29, 13, 34,
1204  13, 0,
1205 };
1206 
1207 static const uint8_t avg_g3_bitvals[36] = {
1208  2, 15, 2, 16, 2, 17, 4, 14, 4, 18, 5, 12, 5, 13, 6, 10,
1209  6, 11, 7, 19, 7, 9, 8, 20, 8, 8, 8, 7, 9, 21, 10, 6,
1210  11, 23, 11, 0,
1211 };
1212 
1213 static const uint8_t st_grid_bitvals[44] = {
1214  1, 6, 2, 1, 4, 4, 4, 8, 4, 3, 5, 10, 7, 12, 7, 5,
1215  8, 14, 9, 16, 9, 7, 9, 18, 10, 11, 10, 9, 10, 20, 10, 22,
1216  10, 2, 11, 13, 13, 17, 13, 24, 13, 15, 13, 0,
1217 };
1218 
1219 static const uint8_t grid_2_bitvals[40] = {
1220  2, 3, 2, 2, 2, 1, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8,
1221  8, 9, 9, 10, 11, 11, 11, 12, 12, 13, 12, 17, 13, 15, 13, 18,
1222  14, 19, 14, 16, 14, 14, 14, 0,
1223 };
1224 
1225 static const uint8_t grid_3_bitvals[26] = {
1226  1, 17, 2, 16, 3, 18, 4, 15, 5, 19, 6, 14, 7, 20, 8, 13,
1227  9, 21, 10, 12, 11, 22, 12, 11, 12, 0,
1228 };
1229 
1230 static const uint8_t rsd_bitvals[18] = {
1231  2, 2, 2, 3, 3, 1, 3, 4, 3, 0, 4, 5, 5, 6, 6, 7,
1232  6, 4,
1233 };
1234 
1235 static const uint16_t vlc_offs[80] = {
1236  0, 512, 640, 768, 1282, 1794, 2436, 3080, 3770, 4454, 5364,
1237  5372, 5380, 5388, 5392, 5396, 5412, 5420, 5428, 5460, 5492, 5508,
1238  5572, 5604, 5668, 5796, 5860, 5892, 6412, 6668, 6796, 7308, 7564,
1239  7820, 8076, 8620, 9132, 9388, 9910, 10166, 10680, 11196, 11726, 12240,
1240  12752, 13298, 13810, 14326, 14840, 15500, 16022, 16540, 17158, 17678, 18264,
1241  18796, 19352, 19926, 20468, 21472, 22398, 23014, 23622, 24200, 24748, 25276,
1242  25792, 26306, 26826, 26890, 26954, 27468, 27500, 28038, 28554, 29086, 29630,
1243  30150, 30214
1244 };
1245 
1250 
1263 
1265 {
1266  static VLC_TYPE dca_table[30214][2];
1267  static int vlcs_initialized = 0;
1268  int i, j, k = 0;
1269 
1270  if (vlcs_initialized)
1271  return;
1272 
1273 #define DCA_INIT_VLC(vlc, a, b, c, d) \
1274  do { \
1275  vlc.table = &dca_table[vlc_offs[k]]; \
1276  vlc.table_allocated = vlc_offs[k + 1] - vlc_offs[k]; \
1277  init_vlc(&vlc, a, b, c, 1, 1, d, 2, 2, INIT_VLC_USE_NEW_STATIC); \
1278  k++; \
1279  } while (0)
1280 
1281  ff_dca_vlc_bit_allocation.offset = 1;
1282  ff_dca_vlc_bit_allocation.max_depth = 2;
1283  for (i = 0; i < 5; i++)
1284  DCA_INIT_VLC(ff_dca_vlc_bit_allocation.vlc[i], bitalloc_12_vlc_bits[i], 12,
1286 
1287  ff_dca_vlc_scale_factor.offset = -64;
1288  ff_dca_vlc_scale_factor.max_depth = 2;
1289  for (i = 0; i < 5; i++)
1290  DCA_INIT_VLC(ff_dca_vlc_scale_factor.vlc[i], SCALES_VLC_BITS, 129,
1291  scales_bits[i], scales_codes[i]);
1292 
1293  ff_dca_vlc_transition_mode.offset = 0;
1294  ff_dca_vlc_transition_mode.max_depth = 1;
1295  for (i = 0; i < 4; i++)
1296  DCA_INIT_VLC(ff_dca_vlc_transition_mode.vlc[i], tmode_vlc_bits[i], 4,
1297  tmode_bits[i], tmode_codes[i]);
1298 
1299  for (i = 0; i < DCA_CODE_BOOKS; i++) {
1300  ff_dca_vlc_quant_index[i].offset = bitalloc_offsets[i];
1301  ff_dca_vlc_quant_index[i].max_depth = 1 + (i > 4);
1302  for (j = 0; bitalloc_codes[i][j]; j++)
1303  DCA_INIT_VLC(ff_dca_vlc_quant_index[i].vlc[j], bitalloc_maxbits[i][j],
1304  bitalloc_sizes[i], bitalloc_bits[i][j], bitalloc_codes[i][j]);
1305  }
1306 
1307 #define LBR_INIT_VLC(vlc, tab, nb_bits) \
1308  do { \
1309  vlc.table = &dca_table[vlc_offs[k]]; \
1310  vlc.table_allocated = vlc_offs[k + 1] - vlc_offs[k]; \
1311  ff_init_vlc_sparse(&vlc, nb_bits, FF_ARRAY_ELEMS(tab##_codes), \
1312  &tab##_bitvals[0], 2, 1, \
1313  tab##_codes, 2, 2, \
1314  &tab##_bitvals[1], 2, 1, \
1315  INIT_VLC_LE | INIT_VLC_USE_NEW_STATIC); \
1316  k++; \
1317  } while (0)
1318 
1319  LBR_INIT_VLC(ff_dca_vlc_tnl_grp[0], tnl_grp_0, 9);
1320  LBR_INIT_VLC(ff_dca_vlc_tnl_grp[1], tnl_grp_1, 9);
1321  LBR_INIT_VLC(ff_dca_vlc_tnl_grp[2], tnl_grp_2, 9);
1322  LBR_INIT_VLC(ff_dca_vlc_tnl_grp[3], tnl_grp_3, 9);
1323  LBR_INIT_VLC(ff_dca_vlc_tnl_grp[4], tnl_grp_4, 9);
1324  LBR_INIT_VLC(ff_dca_vlc_tnl_scf, tnl_scf, 9);
1325  LBR_INIT_VLC(ff_dca_vlc_damp, damp, 6);
1326  LBR_INIT_VLC(ff_dca_vlc_dph, dph, 6);
1327  LBR_INIT_VLC(ff_dca_vlc_fst_rsd_amp, fst_rsd_amp, 9);
1328  LBR_INIT_VLC(ff_dca_vlc_rsd_apprx, rsd_apprx, 5);
1329  LBR_INIT_VLC(ff_dca_vlc_rsd_amp, rsd_amp, 9);
1330  LBR_INIT_VLC(ff_dca_vlc_avg_g3, avg_g3, 9);
1331  LBR_INIT_VLC(ff_dca_vlc_st_grid, st_grid, 9);
1332  LBR_INIT_VLC(ff_dca_vlc_grid_2, grid_2, 9);
1333  LBR_INIT_VLC(ff_dca_vlc_grid_3, grid_3, 9);
1334  LBR_INIT_VLC(ff_dca_vlc_rsd, rsd, 6);
1335 
1336  vlcs_initialized = 1;
1337 }
static const uint16_t bitalloc_9_codes_a[9]
Definition: dcahuff.c:307
static const uint16_t bitalloc_7_codes_a[7]
Definition: dcahuff.c:283
static const uint8_t rsd_amp_bitvals[66]
Definition: dcahuff.c:1199
VLC vlc[7]
Actual codes.
Definition: dcahuff.h:36
VLC ff_dca_vlc_avg_g3
Definition: dcahuff.c:1258
#define NULL
Definition: coverity.c:32
static const uint8_t bitalloc_129_bits_f[129]
Definition: dcahuff.c:960
static const uint8_t bitalloc_33_bits_a[33]
Definition: dcahuff.c:578
DCAVLC ff_dca_vlc_bit_allocation
Definition: dcahuff.c:1246
static const uint8_t bitalloc_maxbits[DCA_CODE_BOOKS][7]
Definition: dcahuff.c:992
static const int8_t bitalloc_offsets[DCA_CODE_BOOKS]
Definition: dcahuff.c:988
static const uint16_t grid_3_codes[13]
Definition: dcahuff.c:1128
static const uint16_t bitalloc_25_codes_a[25]
Definition: dcahuff.c:438
static const uint8_t avg_g3_bitvals[36]
Definition: dcahuff.c:1207
static const uint16_t bitalloc_17_codes_c[17]
Definition: dcahuff.c:373
static const uint16_t bitalloc_12_codes[BITALLOC_12_COUNT][12]
Definition: dcahuff.c:51
static const uint16_t bitalloc_17_codes_d[17]
Definition: dcahuff.c:379
static const uint16_t bitalloc_17_codes_b[17]
Definition: dcahuff.c:367
static const uint16_t bitalloc_33_codes_d[33]
Definition: dcahuff.c:546
static const uint8_t bitalloc_65_bits_a[65]
Definition: dcahuff.c:704
static const uint8_t bitalloc_17_bits_b[17]
Definition: dcahuff.c:408
#define TMODE_COUNT
Definition: dcahuff.c:29
#define SCALES_COUNT
Definition: dcahuff.c:72
static const uint8_t bitalloc_25_bits_d[25]
Definition: dcahuff.c:502
static const uint16_t bitalloc_129_codes_b[129]
Definition: dcahuff.c:780
static const uint8_t bitalloc_17_bits_a[17]
Definition: dcahuff.c:403
static const uint16_t bitalloc_13_codes_c[13]
Definition: dcahuff.c:344
static const uint8_t bitalloc_65_bits_f[65]
Definition: dcahuff.c:744
static const uint8_t rsd_bitvals[18]
Definition: dcahuff.c:1230
static const uint8_t grid_2_bitvals[40]
Definition: dcahuff.c:1219
static const uint16_t bitalloc_13_codes_a[13]
Definition: dcahuff.c:334
VLC ff_dca_vlc_grid_3
Definition: dcahuff.c:1261
static const uint8_t tnl_grp_4_bitvals[46]
Definition: dcahuff.c:1168
static const uint16_t bitalloc_33_codes_a[33]
Definition: dcahuff.c:522
static const uint8_t grid_3_bitvals[26]
Definition: dcahuff.c:1225
static const uint16_t damp_codes[7]
Definition: dcahuff.c:1083
static const uint16_t vlc_offs[80]
Definition: dcahuff.c:1235
static const uint16_t bitalloc_33_codes_b[33]
Definition: dcahuff.c:530
static const uint8_t tnl_scf_bitvals[40]
Definition: dcahuff.c:1174
static const uint8_t bitalloc_9_bits_b[9]
Definition: dcahuff.c:326
VLC ff_dca_vlc_st_grid
Definition: dcahuff.c:1259
static const uint16_t bitalloc_65_codes_e[65]
Definition: dcahuff.c:668
static const uint16_t bitalloc_17_codes_g[17]
Definition: dcahuff.c:397
static const uint16_t tnl_grp_1_codes[34]
Definition: dcahuff.c:1049
static const uint8_t bitalloc_65_bits_e[65]
Definition: dcahuff.c:736
uint8_t
#define av_cold
Definition: attributes.h:82
static const uint16_t bitalloc_65_codes_b[65]
Definition: dcahuff.c:632
static const uint16_t bitalloc_65_codes_f[65]
Definition: dcahuff.c:680
static const uint16_t bitalloc_5_codes_a[5]
Definition: dcahuff.c:259
static const uint8_t bitalloc_5_bits_b[5]
Definition: dcahuff.c:275
static const uint8_t bitalloc_25_bits_a[25]
Definition: dcahuff.c:487
static const uint16_t bitalloc_17_codes_a[17]
Definition: dcahuff.c:361
static const uint8_t bitalloc_12_bits[BITALLOC_12_COUNT][12]
Definition: dcahuff.c:64
static const uint16_t bitalloc_33_codes_c[33]
Definition: dcahuff.c:538
static const uint8_t bitalloc_3_bits[3]
Definition: dcahuff.c:255
bitstream reader API header.
static const uint8_t bitalloc_129_bits_c[129]
Definition: dcahuff.c:924
static const uint16_t bitalloc_65_codes_a[65]
Definition: dcahuff.c:620
static const uint8_t tmode_bits[TMODE_COUNT][4]
Definition: dcahuff.c:38
static const uint8_t bitalloc_25_bits_f[25]
Definition: dcahuff.c:512
static const uint16_t bitalloc_3_codes[3]
Definition: dcahuff.c:251
static const uint8_t tnl_grp_2_bitvals[62]
Definition: dcahuff.c:1154
static const uint8_t *const bitalloc_bits[DCA_CODE_BOOKS][8]
Definition: dcahuff.c:1023
static const uint16_t tmode_codes[TMODE_COUNT][4]
Definition: dcahuff.c:31
static const uint8_t bitalloc_17_bits_f[17]
Definition: dcahuff.c:428
DCAVLC ff_dca_vlc_transition_mode
Definition: dcahuff.c:1247
static const uint16_t tnl_grp_2_codes[31]
Definition: dcahuff.c:1057
#define DCA_INIT_VLC(vlc, a, b, c, d)
int offset
Code values offset.
Definition: dcahuff.h:34
static const uint16_t bitalloc_5_codes_c[5]
Definition: dcahuff.c:267
static const uint16_t bitalloc_65_codes_c[65]
Definition: dcahuff.c:644
static const uint8_t damp_bitvals[14]
Definition: dcahuff.c:1180
static const uint16_t bitalloc_9_codes_b[9]
Definition: dcahuff.c:312
static const uint8_t bitalloc_25_bits_c[25]
Definition: dcahuff.c:497
static const uint16_t bitalloc_129_codes_d[129]
Definition: dcahuff.c:820
static const uint8_t bitalloc_33_bits_f[33]
Definition: dcahuff.c:608
static const uint16_t grid_2_codes[20]
Definition: dcahuff.c:1122
Definition: vlc.h:26
#define SCALES_VLC_BITS
Definition: dcahuff.c:73
static const uint16_t bitalloc_65_codes_d[65]
Definition: dcahuff.c:656
static const uint8_t bitalloc_9_bits_a[9]
Definition: dcahuff.c:322
static const uint16_t bitalloc_65_codes_g[65]
Definition: dcahuff.c:692
static const uint16_t bitalloc_17_codes_f[17]
Definition: dcahuff.c:391
static const uint8_t bitalloc_33_bits_e[33]
Definition: dcahuff.c:602
static const uint16_t scales_codes[SCALES_COUNT][129]
Definition: dcahuff.c:74
static const uint8_t bitalloc_7_bits_c[7]
Definition: dcahuff.c:303
static const uint16_t tnl_grp_0_codes[37]
Definition: dcahuff.c:1041
static const uint8_t fst_rsd_amp_bitvals[48]
Definition: dcahuff.c:1189
static const uint16_t *const bitalloc_codes[DCA_CODE_BOOKS][8]
Definition: dcahuff.c:1005
static const uint16_t bitalloc_7_codes_c[7]
Definition: dcahuff.c:291
static const uint8_t dph_bitvals[18]
Definition: dcahuff.c:1184
static const uint16_t bitalloc_7_codes_b[7]
Definition: dcahuff.c:287
static const uint8_t bitalloc_9_bits_c[9]
Definition: dcahuff.c:330
static const uint16_t bitalloc_25_codes_g[25]
Definition: dcahuff.c:480
static const uint8_t bitalloc_7_bits_a[7]
Definition: dcahuff.c:295
static const uint16_t rsd_apprx_codes[6]
Definition: dcahuff.c:1098
static const uint8_t tnl_grp_3_bitvals[56]
Definition: dcahuff.c:1161
VLC ff_dca_vlc_grid_2
Definition: dcahuff.c:1260
static const uint8_t bitalloc_25_bits_g[25]
Definition: dcahuff.c:517
VLC ff_dca_vlc_tnl_grp[5]
Definition: dcahuff.c:1251
static const uint16_t bitalloc_129_codes_a[129]
Definition: dcahuff.c:760
static const uint8_t tnl_grp_1_bitvals[68]
Definition: dcahuff.c:1146
static const uint8_t tnl_grp_0_bitvals[74]
Definition: dcahuff.c:1138
static const uint16_t tnl_grp_3_codes[28]
Definition: dcahuff.c:1064
#define BITALLOC_12_COUNT
Definition: dcahuff.c:45
static const uint8_t bitalloc_13_bits_c[13]
Definition: dcahuff.c:357
Libavcodec external API header.
static const uint8_t bitalloc_129_bits_b[129]
Definition: dcahuff.c:912
#define DCA_CODE_BOOKS
Definition: dcahuff.h:31
av_cold void ff_dca_init_vlcs(void)
Definition: dcahuff.c:1264
static const uint16_t bitalloc_17_codes_e[17]
Definition: dcahuff.c:385
static const uint8_t bitalloc_13_bits_b[13]
Definition: dcahuff.c:353
static const uint8_t bitalloc_13_bits_a[13]
Definition: dcahuff.c:349
static const uint8_t bitalloc_5_bits_c[5]
Definition: dcahuff.c:279
static const uint8_t bitalloc_129_bits_g[129]
Definition: dcahuff.c:972
static const uint8_t bitalloc_25_bits_b[25]
Definition: dcahuff.c:492
static const uint16_t st_grid_codes[22]
Definition: dcahuff.c:1116
static const uint8_t tmode_vlc_bits[TMODE_COUNT]
Definition: dcahuff.c:30
static const uint8_t bitalloc_17_bits_g[17]
Definition: dcahuff.c:433
static const uint8_t bitalloc_7_bits_b[7]
Definition: dcahuff.c:299
static const uint8_t bitalloc_33_bits_d[33]
Definition: dcahuff.c:596
static const uint8_t bitalloc_129_bits_a[129]
Definition: dcahuff.c:900
static const uint16_t bitalloc_25_codes_f[25]
Definition: dcahuff.c:473
VLC ff_dca_vlc_tnl_scf
Definition: dcahuff.c:1252
VLC ff_dca_vlc_rsd_amp
Definition: dcahuff.c:1257
static const uint16_t bitalloc_13_codes_b[13]
Definition: dcahuff.c:339
#define LBR_INIT_VLC(vlc, tab, nb_bits)
static const uint8_t bitalloc_65_bits_d[65]
Definition: dcahuff.c:728
static const uint16_t bitalloc_33_codes_e[33]
Definition: dcahuff.c:554
static const uint8_t bitalloc_sizes[DCA_CODE_BOOKS]
Definition: dcahuff.c:984
static const uint8_t bitalloc_17_bits_d[17]
Definition: dcahuff.c:418
VLC ff_dca_vlc_dph
Definition: dcahuff.c:1254
static const uint8_t bitalloc_33_bits_c[33]
Definition: dcahuff.c:590
static const uint16_t bitalloc_129_codes_e[129]
Definition: dcahuff.c:840
static const uint16_t dph_codes[9]
Definition: dcahuff.c:1087
static const uint16_t tnl_grp_4_codes[23]
Definition: dcahuff.c:1071
static const uint16_t bitalloc_25_codes_e[25]
Definition: dcahuff.c:466
static const uint8_t bitalloc_25_bits_e[25]
Definition: dcahuff.c:507
static const uint16_t bitalloc_25_codes_c[25]
Definition: dcahuff.c:452
static const uint16_t rsd_codes[9]
Definition: dcahuff.c:1133
DCAVLC ff_dca_vlc_scale_factor
Definition: dcahuff.c:1248
static const uint8_t bitalloc_65_bits_c[65]
Definition: dcahuff.c:720
static const uint8_t bitalloc_129_bits_d[129]
Definition: dcahuff.c:936
static const uint8_t rsd_apprx_bitvals[12]
Definition: dcahuff.c:1195
common internal and external API header
static const uint16_t bitalloc_25_codes_b[25]
Definition: dcahuff.c:445
int max_depth
Parameter for get_vlc2()
Definition: dcahuff.h:35
DCAVLC ff_dca_vlc_quant_index[DCA_CODE_BOOKS]
Definition: dcahuff.c:1249
static const uint8_t bitalloc_65_bits_b[65]
Definition: dcahuff.c:712
static const uint16_t bitalloc_33_codes_g[33]
Definition: dcahuff.c:570
static const uint8_t bitalloc_33_bits_b[33]
Definition: dcahuff.c:584
static const uint16_t bitalloc_129_codes_g[129]
Definition: dcahuff.c:880
VLC ff_dca_vlc_fst_rsd_amp
Definition: dcahuff.c:1255
static const uint8_t scales_bits[SCALES_COUNT][129]
Definition: dcahuff.c:162
static const uint16_t bitalloc_5_codes_b[5]
Definition: dcahuff.c:263
static const uint8_t bitalloc_17_bits_c[17]
Definition: dcahuff.c:413
static const uint16_t bitalloc_33_codes_f[33]
Definition: dcahuff.c:562
static const uint16_t bitalloc_129_codes_f[129]
Definition: dcahuff.c:860
static const uint8_t st_grid_bitvals[44]
Definition: dcahuff.c:1213
static const uint8_t bitalloc_65_bits_g[65]
Definition: dcahuff.c:752
VLC ff_dca_vlc_rsd_apprx
Definition: dcahuff.c:1256
static const uint8_t bitalloc_129_bits_e[129]
Definition: dcahuff.c:948
static const uint8_t bitalloc_33_bits_g[33]
Definition: dcahuff.c:614
static const uint16_t tnl_scf_codes[20]
Definition: dcahuff.c:1077
#define VLC_TYPE
Definition: vlc.h:24
static const uint8_t bitalloc_17_bits_e[17]
Definition: dcahuff.c:423
static const uint16_t bitalloc_9_codes_c[9]
Definition: dcahuff.c:317
static const uint16_t rsd_amp_codes[33]
Definition: dcahuff.c:1102
VLC ff_dca_vlc_rsd
Definition: dcahuff.c:1262
Definition: dcahuff.h:33
static const uint16_t bitalloc_129_codes_c[129]
Definition: dcahuff.c:800
static const uint16_t bitalloc_25_codes_d[25]
Definition: dcahuff.c:459
static const uint8_t bitalloc_5_bits_a[5]
Definition: dcahuff.c:271
VLC ff_dca_vlc_damp
Definition: dcahuff.c:1253
static const uint16_t fst_rsd_amp_codes[24]
Definition: dcahuff.c:1092
static const uint8_t bitalloc_12_vlc_bits[BITALLOC_12_COUNT]
Definition: dcahuff.c:47
static const uint16_t avg_g3_codes[18]
Definition: dcahuff.c:1110