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