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