FFmpeg
atrac9tab.h
Go to the documentation of this file.
1 /*
2  * ATRAC9 decoder
3  * Copyright (c) 2018 Rostislav Pehlivanov <atomnuker@gmail.com>
4  *
5  * This file is part of FFmpeg.
6  *
7  * FFmpeg is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * FFmpeg is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with FFmpeg; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20  */
21 
22 #ifndef AVCODEC_ATRAC9TAB_H
23 #define AVCODEC_ATRAC9TAB_H
24 
25 #include <stdint.h>
26 
28 
30  ATRAC9_BLOCK_TYPE_SCE, /* Single channel */
31  ATRAC9_BLOCK_TYPE_CPE, /* 2 coupled channels */
32  ATRAC9_BLOCK_TYPE_LFE, /* Single LFE channel */
33 };
34 
35 typedef struct ATRAC9BlockConfig {
38  int plane_map[5][2];
39  int count;
41 
43  { /* Mono */
45  .type = { ATRAC9_BLOCK_TYPE_SCE, },
46  .count = 1,
47  },
48  { /* Dual Mono */
49  .channel_layout = AV_CHANNEL_LAYOUT_STEREO,
50  .type = { ATRAC9_BLOCK_TYPE_SCE,
52  .plane_map = { { 0 }, { 1 }, },
53  .count = 2,
54  },
55  { /* Stereo */
56  .channel_layout = AV_CHANNEL_LAYOUT_STEREO,
57  .type = { ATRAC9_BLOCK_TYPE_CPE, },
58  .plane_map = { { 0, 1 }, },
59  .count = 1,
60  },
61  { /* 5.1 */
62  .channel_layout = AV_CHANNEL_LAYOUT_5POINT1,
63  .type = { ATRAC9_BLOCK_TYPE_CPE,
67  .plane_map = { { 0, 1 }, { 2 }, { 3 }, { 4, 5 }, },
68  .count = 4,
69  },
70  { /* 7.1 */
71  .channel_layout = AV_CHANNEL_LAYOUT_7POINT1,
72  .type = { ATRAC9_BLOCK_TYPE_CPE,
77  .plane_map = { { 0, 1 }, { 2 }, { 3 }, { 4, 5 }, { 6, 7 }, },
78  .count = 5,
79  },
80  { /* Quad */
81  .channel_layout = AV_CHANNEL_LAYOUT_QUAD,
82  .type = { ATRAC9_BLOCK_TYPE_CPE,
84  .plane_map = { { 0, 1 }, { 2, 3 }, },
85  .count = 2,
86  },
87 };
88 
89 static const uint8_t at9_tab_sri_frame_log2[] = {
90  6, 6, 7, 7, 7, 8, 8, 8, 6, 6, 7, 7, 7, 8, 8, 8,
91 };
92 
93 static const uint8_t at9_tab_band_q_unit_map[] = {
94  0, 4, 8, 10, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 28, 30,
95 };
96 
97 static const uint8_t at9_q_unit_to_coeff_cnt[] = {
98  2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 8, 8, 8,
99  8, 8, 8, 8, 8, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
100 };
101 
102 static const int at9_q_unit_to_coeff_idx[] = {
103  0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, 64,
104  72, 80, 88, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240, 256
105 };
106 
107 static const uint8_t at9_q_unit_to_codebookidx[] = {
108  0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2,
109  2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
110 };
111 
112 static const uint8_t at9_tab_sri_max_bands[] = {
113  8, 8, 12, 12, 12, 18, 18, 18, 8, 8, 12, 12, 12, 16, 16, 16,
114 };
115 
116 static const int at9_tab_samplerates[] = {
117  11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 44100, 48000,
118  64000, 88200, 96000, 128000, 176400, 192000,
119 };
120 
121 static const uint8_t at9_tab_band_ext_cnt[][6] = {
122  { 0, 0, 0, 4, 4, 2 },
123  { 0, 0, 0, 0, 0, 0 },
124  { 0, 0, 0, 2, 2, 1 },
125  { 0, 0, 0, 2, 2, 2 },
126  { 1, 1, 1, 0, 0, 0 },
127 };
128 
129 /* B unit, C unit, Band count */
130 static const uint8_t at9_tab_band_ext_group[][3] = {
131  { 16, 21, 0 },
132  { 18, 22, 1 },
133  { 20, 22, 2 },
134  { 21, 22, 3 },
135  { 21, 22, 3 },
136  { 23, 24, 4 },
137  { 23, 24, 4 },
138  { 24, 24, 5 },
139 };
140 
141 static const uint8_t at9_tab_band_ext_lengths[][6][4] = {
142  {
143  { 0, 0, 0, 0 },
144  { 0, 0, 0, 0 },
145  { 0, 0, 0, 0 },
146  { 5, 4, 3, 3 },
147  { 4, 4, 3, 4 },
148  { 4, 5, 0, 0 },
149  },
150  {
151  { 0, 0, 0, 0 },
152  { 0, 0, 0, 0 },
153  { 0, 0, 0, 0 },
154  { 0, 0, 0, 0 },
155  { 0, 0, 0, 0 },
156  { 0, 0, 0, 0 },
157  },
158  {
159  { 0, 0, 0, 0 },
160  { 0, 0, 0, 0 },
161  { 0, 0, 0, 0 },
162  { 6, 6, 0, 0 },
163  { 6, 6, 0, 0 },
164  { 6, 0, 0, 0 },
165  },
166  {
167  { 0, 0, 0, 0 },
168  { 0, 0, 0, 0 },
169  { 0, 0, 0, 0 },
170  { 4, 4, 0, 0 },
171  { 4, 4, 0, 0 },
172  { 4, 4, 0, 0 },
173  },
174  {
175  { 3, 0, 0, 0 },
176  { 3, 0, 0, 0 },
177  { 3, 0, 0, 0 },
178  { 0, 0, 0, 0 },
179  { 0, 0, 0, 0 },
180  { 0, 0, 0, 0 },
181  },
182 };
183 
184 static const float at9_band_ext_scales_m0[][5][32] = {
185  {
186  {
187  0.000000e+0f, 1.988220e-1f, 2.514343e-1f, 2.960510e-1f,
188  3.263550e-1f, 3.771362e-1f, 3.786926e-1f, 4.540405e-1f,
189  4.877625e-1f, 5.262451e-1f, 5.447083e-1f, 5.737000e-1f,
190  6.212158e-1f, 6.222839e-1f, 6.560974e-1f, 6.896667e-1f,
191  7.555542e-1f, 7.677917e-1f, 7.918091e-1f, 7.971497e-1f,
192  8.188171e-1f, 8.446045e-1f, 9.790649e-1f, 9.822083e-1f,
193  9.846191e-1f, 9.859314e-1f, 9.863586e-1f, 9.863892e-1f,
194  9.873352e-1f, 9.881287e-1f, 9.898682e-1f, 9.913330e-1f,
195  }, {
196  0.000000e+0f, 9.982910e-1f, 7.592773e-2f, 7.179565e-1f,
197  9.851379e-1f, 5.340271e-1f, 9.013672e-1f, 6.349182e-1f,
198  7.226257e-1f, 1.948547e-1f, 7.628174e-1f, 9.873657e-1f,
199  8.112183e-1f, 2.715454e-1f, 9.734192e-1f, 1.443787e-1f,
200  4.640198e-1f, 3.249207e-1f, 3.790894e-1f, 8.276367e-2f,
201  5.954590e-1f, 2.864380e-1f, 9.806824e-1f, 7.929077e-1f,
202  6.292114e-1f, 4.887085e-1f, 2.905273e-1f, 1.301880e-1f,
203  3.140869e-1f, 5.482483e-1f, 4.210815e-1f, 1.182861e-1f,
204  }, {
205  0.000000e+0f, 3.155518e-2f, 8.581543e-2f, 1.364746e-1f,
206  1.858826e-1f, 2.368469e-1f, 2.888184e-1f, 3.432617e-1f,
207  4.012451e-1f, 4.623108e-1f, 5.271301e-1f, 5.954895e-1f,
208  6.681213e-1f, 7.448425e-1f, 8.245239e-1f, 9.097290e-1f,
209  }, {
210  0.000000e+0f, 4.418945e-2f, 1.303711e-1f, 2.273560e-1f,
211  3.395996e-1f, 4.735718e-1f, 6.267090e-1f, 8.003845e-1f,
212  }, {
213  0.000000e+0f, 2.804565e-2f, 9.683228e-2f, 1.849976e-1f,
214  3.005981e-1f, 4.470520e-1f, 6.168518e-1f, 8.007813e-1f,
215  },
216  },
217  {
218  {
219  0.000000e+0f, 2.708740e-1f, 3.479614e-1f, 3.578186e-1f,
220  5.083618e-1f, 5.299072e-1f, 5.819092e-1f, 6.381836e-1f,
221  7.276917e-1f, 7.595520e-1f, 7.878723e-1f, 9.707336e-1f,
222  9.713135e-1f, 9.736023e-1f, 9.759827e-1f, 9.832458e-1f,
223  }, {
224  0.000000e+0f, 2.330627e-1f, 5.891418e-1f, 7.170410e-1f,
225  2.036438e-1f, 1.613464e-1f, 6.668701e-1f, 9.481201e-1f,
226  9.769897e-1f, 5.111694e-1f, 3.522644e-1f, 8.209534e-1f,
227  2.933960e-1f, 9.757690e-1f, 5.289917e-1f, 4.372253e-1f,
228  }, {
229  0.000000e+0f, 4.360962e-2f, 1.056519e-1f, 1.590576e-1f,
230  2.078857e-1f, 2.572937e-1f, 3.082581e-1f, 3.616028e-1f,
231  4.191589e-1f, 4.792175e-1f, 5.438538e-1f, 6.125183e-1f,
232  6.841125e-1f, 7.589417e-1f, 8.365173e-1f, 9.148254e-1f,
233  }, {
234  0.000000e+0f, 4.074097e-2f, 1.164551e-1f, 2.077026e-1f,
235  3.184509e-1f, 4.532166e-1f, 6.124268e-1f, 7.932129e-1f,
236  }, {
237  0.000000e+0f, 8.880615e-3f, 2.932739e-2f, 5.593872e-2f,
238  8.825684e-2f, 1.259155e-1f, 1.721497e-1f, 2.270813e-1f,
239  2.901611e-1f, 3.579712e-1f, 4.334106e-1f, 5.147095e-1f,
240  6.023254e-1f, 6.956177e-1f, 7.952881e-1f, 8.977356e-1f,
241  },
242  },
243  {
244  {
245  0.000000e+0f, 7.379150e-2f, 1.806335e-1f, 2.687073e-1f,
246  3.407898e-1f, 4.047546e-1f, 4.621887e-1f, 5.168762e-1f,
247  5.703125e-1f, 6.237488e-1f, 6.763611e-1f, 7.288208e-1f,
248  7.808533e-1f, 8.337708e-1f, 8.874512e-1f, 9.418030e-1f,
249  }, {
250  0.000000e+0f, 7.980347e-2f, 1.615295e-1f, 1.665649e-1f,
251  1.822205e-1f, 2.185669e-1f, 2.292175e-1f, 2.456665e-1f,
252  2.666321e-1f, 3.306580e-1f, 3.330688e-1f, 3.765259e-1f,
253  4.085083e-1f, 4.400024e-1f, 4.407654e-1f, 4.817505e-1f,
254  4.924011e-1f, 5.320740e-1f, 5.893860e-1f, 6.131287e-1f,
255  6.212463e-1f, 6.278076e-1f, 6.308899e-1f, 7.660828e-1f,
256  7.850647e-1f, 7.910461e-1f, 7.929382e-1f, 8.038330e-1f,
257  9.834900e-1f, 9.846191e-1f, 9.852295e-1f, 9.862671e-1f,
258  }, {
259  0.000000e+0f, 6.084290e-1f, 3.672791e-1f, 3.151855e-1f,
260  1.488953e-1f, 2.571716e-1f, 5.103455e-1f, 3.311157e-1f,
261  5.426025e-2f, 4.254456e-1f, 7.998352e-1f, 7.873230e-1f,
262  5.418701e-1f, 2.925110e-1f, 8.468628e-2f, 1.410522e-1f,
263  9.819641e-1f, 9.609070e-1f, 3.530884e-2f, 9.729004e-2f,
264  5.758362e-1f, 9.941711e-1f, 7.215576e-1f, 7.183228e-1f,
265  2.028809e-1f, 9.588623e-2f, 2.032166e-1f, 1.338806e-1f,
266  5.003357e-1f, 1.874390e-1f, 9.804993e-1f, 1.107788e-1f,
267  },
268  },
269 };
270 
271 static const float at9_band_ext_scales_m2[] = {
272  4.272461e-4f, 1.312256e-3f, 2.441406e-3f, 3.692627e-3f,
273  4.913330e-3f, 6.134033e-3f, 7.507324e-3f, 8.972168e-3f,
274  1.049805e-2f, 1.223755e-2f, 1.406860e-2f, 1.599121e-2f,
275  1.800537e-2f, 2.026367e-2f, 2.264404e-2f, 2.517700e-2f,
276  2.792358e-2f, 3.073120e-2f, 3.344727e-2f, 3.631592e-2f,
277  3.952026e-2f, 4.275513e-2f, 4.608154e-2f, 4.968262e-2f,
278  5.355835e-2f, 5.783081e-2f, 6.195068e-2f, 6.677246e-2f,
279  7.196045e-2f, 7.745361e-2f, 8.319092e-2f, 8.993530e-2f,
280  9.759521e-2f, 1.056213e-1f, 1.138916e-1f, 1.236267e-1f,
281  1.348267e-1f, 1.470337e-1f, 1.603394e-1f, 1.755676e-1f,
282  1.905823e-1f, 2.071228e-1f, 2.245178e-1f, 2.444153e-1f,
283  2.658997e-1f, 2.897644e-1f, 3.146057e-1f, 3.450012e-1f,
284  3.766174e-1f, 4.122620e-1f, 4.505615e-1f, 4.893799e-1f,
285  5.305481e-1f, 5.731201e-1f, 6.157837e-1f, 6.580811e-1f,
286  6.985168e-1f, 7.435303e-1f, 7.865906e-1f, 8.302612e-1f,
287  8.718567e-1f, 9.125671e-1f, 9.575806e-1f, 9.996643e-1f,
288 };
289 
290 static const float at9_band_ext_scales_m3[][2] = {
291  { 3.491211e-1f, -2.913818e-1f, }, { 5.371094e-1f, -2.541504e-1f, },
292  { 6.782227e-1f, -1.664429e-1f, }, { 7.910156e-1f, -1.476440e-1f, },
293  { 9.057617e-1f, -1.342163e-1f, }, { 1.024902e+0f, -1.220703e-1f, },
294  { 1.156250e+0f, -1.117554e-1f, }, { 1.290527e+0f, -1.026611e-1f, },
295  { 1.458984e+0f, -9.436035e-2f, }, { 1.664551e+0f, -8.483887e-2f, },
296  { 1.929688e+0f, -7.476807e-2f, }, { 2.278320e+0f, -6.304932e-2f, },
297  { 2.831543e+0f, -4.492188e-2f, }, { 3.659180e+0f, -2.447510e-2f, },
298  { 5.257813e+0f, +1.831055e-4f, }, { 8.373047e+0f, +4.174805e-2f, },
299 };
300 
301 static const float at9_band_ext_scales_m4[] = {
302  3.610229e-2f, 1.260681e-1f, 2.227478e-1f, 3.338318e-1f,
303  4.662170e-1f, 6.221313e-1f, 7.989197e-1f, 9.939575e-1f,
304 };
305 
306 static const float at9_quant_step_coarse[] = {
307  2.0000000000000000e+0f, 6.6666666666666663e-1f, 2.8571428571428570e-1f,
308  1.3333333333333333e-1f, 6.4516129032258063e-2f, 3.1746031746031744e-2f,
309  1.5748031496062992e-2f, 7.8431372549019607e-3f, 3.9138943248532287e-3f,
310  1.9550342130987292e-3f, 9.7703957010258913e-4f, 4.8840048840048840e-4f,
311  2.4417043096081065e-4f, 1.2207776353537203e-4f, 6.1037018951994385e-5f,
312  3.0518043793392844e-5f,
313 };
314 
315 static const float at9_quant_step_fine[] = {
316  3.0518043793392844e-05f, 1.0172681264464281e-05f, 4.3597205419132631e-06f,
317  2.0345362528928561e-06f, 9.8445302559331759e-07f, 4.8441339354591809e-07f,
318  2.4029955742829012e-07f, 1.1967860311134448e-07f, 5.9722199204291275e-08f,
319  2.9831909866464167e-08f, 1.4908668194134265e-08f, 7.4525137468602791e-09f,
320  3.7258019525568114e-09f, 1.8627872668859698e-09f, 9.3136520869755679e-10f,
321  4.6567549848772173e-10f,
322 };
323 
324 static const float at9_scalefactor_c[] = {
325  3.0517578125e-5f, 6.1035156250e-5f, 1.2207031250e-4f, 2.4414062500e-4f,
326  4.8828125000e-4f, 9.7656250000e-4f, 1.9531250000e-3f, 3.9062500000e-3f,
327  7.8125000000e-3f, 1.5625000000e-2f, 3.1250000000e-2f, 6.2500000000e-2f,
328  1.2500000000e-1f, 2.5000000000e-1f, 5.0000000000e-1f, 1.0000000000e+0f,
329  2.0000000000e+0f, 4.0000000000e+0f, 8.0000000000e+0f, 1.6000000000e+1f,
330  3.2000000000e+1f, 6.4000000000e+1f, 1.2800000000e+2f, 2.5600000000e+2f,
331  5.1200000000e+2f, 1.0240000000e+3f, 2.0480000000e+3f, 4.0960000000e+3f,
332  8.1920000000e+3f, 1.6384000000e+4f, 3.2768000000e+4f, 6.5536000000e+4f,
333 };
334 
335 static const uint8_t at9_tab_sf_weights[][32] = {
336  {
337  0, 0, 0, 1, 1, 2, 2, 2, 2, 2, 2, 3, 2, 3, 3, 4, 4, 4,
338  4, 4, 4, 5, 5, 6, 6, 7, 7, 8, 10, 12, 12, 12,
339  },
340  {
341  3, 2, 2, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1,
342  1, 1, 1, 1, 1, 2, 3, 3, 4, 5, 7, 10, 10, 10,
343  },
344  {
345  0, 2, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
346  6, 6, 6, 6, 6, 7, 7, 7, 7, 8, 9, 12, 12, 12,
347  },
348  {
349  0, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6,
350  6, 6, 6, 7, 8, 8, 10, 11, 11, 12, 13, 13, 13, 13,
351  },
352  {
353  0, 2, 2, 3, 3, 4, 4, 5, 4, 5, 5, 5, 5, 6, 7, 8, 8, 8,
354  8, 9, 9, 9, 10, 10, 11, 12, 12, 13, 13, 14, 14, 14,
355  },
356  {
357  1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2,
358  2, 3, 3, 3, 4, 4, 5, 6, 7, 7, 9, 11, 11, 11,
359  },
360  {
361  0, 5, 8, 10, 11, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13,
362  13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 13, 15, 15, 15,
363  },
364  {
365  0, 2, 3, 4, 5, 6, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11,
366  11, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 15, 15, 15,
367  },
368 };
369 
370 static const uint8_t at9_tab_b_dist[] = {
371  1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 7, 8,
372  9, 10, 11, 12, 13, 15, 6, 18, 19, 20, 21, 22, 23, 24, 25, 26, 26, 27,
373  27, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 30,
374 };
375 
376 static const uint8_t at9_sfb_a_tab[][2] = {
377  /* Unsigned scalefactor table 1 - 2 entries */
378  { 0, 1 }, { 1, 1 },
379  /* Unsigned scalefactor table 2 - 4 entries */
380  { 0, 1 }, { 3, 2 }, { 1, 3 }, { 2, 3 },
381  /* Unsigned scalefactor table 3 - 8 entries */
382  { 0, 2 }, { 1, 2 }, { 7, 2 }, { 6, 3 }, { 2, 4 }, { 5, 5 }, { 3, 6 },
383  { 4, 6 },
384  /* Unsigned scalefactor table 4 - 16 entries */
385  { 2, 4 }, { 14, 4 }, { 11, 8 }, { 10, 8 }, { 9, 8 }, { 6, 8 }, { 7, 8 },
386  { 8, 8 }, { 5, 7 }, { 13, 5 }, { 3, 5 }, { 12, 6 }, { 4, 6 }, { 0, 2 },
387  { 1, 2 }, { 15, 2 },
388  /* Unsigned scalefactor table 5 - 32 entries */
389  { 31, 3 }, { 1, 3 }, { 26, 7 }, { 7, 7 }, { 20, 8 }, { 21, 8 }, { 23, 8 },
390  { 22, 8 }, { 29, 5 }, { 30, 4 }, { 4, 5 }, { 11, 8 }, { 24, 8 }, { 9, 8 },
391  { 10, 8 }, { 6, 6 }, { 25, 7 }, { 19, 8 }, { 12, 8 }, { 27, 6 }, { 18, 8 },
392  { 13, 8 }, { 16, 8 }, { 17, 8 }, { 14, 8 }, { 15, 8 }, { 8, 7 }, { 0, 2 },
393  { 5, 5 }, { 28, 5 }, { 3, 4 }, { 2, 3 },
394  /* Unsigned scalefactor table 6 - 64 entries */
395  { 0, 3 }, { 1, 3 }, { 2, 4 }, { 3, 4 }, { 61, 4 }, { 62, 4 }, { 63, 4 },
396  { 4, 5 }, { 5, 5 }, { 58, 5 }, { 59, 5 }, { 60, 5 }, { 6, 6 }, { 7, 6 },
397  { 8, 6 }, { 56, 6 }, { 57, 6 }, { 9, 7 }, { 10, 7 }, { 53, 7 }, { 54, 7 },
398  { 55, 7 }, { 11, 8 }, { 12, 8 }, { 13, 8 }, { 14, 8 }, { 15, 8 }, { 16, 8 },
399  { 17, 8 }, { 18, 8 }, { 19, 8 }, { 20, 8 }, { 21, 8 }, { 22, 8 }, { 23, 8 },
400  { 24, 8 }, { 25, 8 }, { 26, 8 }, { 27, 8 }, { 28, 8 }, { 29, 8 }, { 30, 8 },
401  { 31, 8 }, { 32, 8 }, { 33, 8 }, { 34, 8 }, { 35, 8 }, { 36, 8 }, { 37, 8 },
402  { 38, 8 }, { 39, 8 }, { 40, 8 }, { 41, 8 }, { 42, 8 }, { 43, 8 }, { 44, 8 },
403  { 45, 8 }, { 46, 8 }, { 47, 8 }, { 48, 8 }, { 49, 8 }, { 50, 8 }, { 51, 8 },
404  { 52, 8 },
405 };
406 
407 static const uint8_t at9_sfb_b_tab[][2] = {
408  /* Signed scalefactor table 2 - 3 entries */
409  { 16, 1 }, { 15, 2 }, { 17, 2 },
410  /* Signed scalefactor table 3 - 7 entries */
411  { 17, 3 }, { 18, 5 }, { 13, 6 }, { 19, 6 }, { 14, 4 }, { 15, 2 }, { 16, 1 },
412  /* Signed scalefactor table 4 - 15 entries */
413  { 15, 3 }, { 17, 3 }, { 18, 4 }, { 13, 6 }, { 12, 6 }, { 21, 7 }, { 22, 8 },
414  { 10, 8 }, { 9, 8 }, { 23, 8 }, { 11, 7 }, { 14, 4 }, { 19, 5 }, { 20, 5 },
415  { 16, 1 },
416  /* Signed scalefactor table 5 - 32 entries */
417  { 16, 3 }, { 21, 4 }, { 22, 4 }, { 20, 4 }, { 23, 4 }, { 30, 8 }, { 1, 8 },
418  { 0, 8 }, { 2, 8 }, { 3, 8 }, { 31, 8 }, { 27, 7 }, { 14, 6 }, { 28, 7 },
419  { 13, 7 }, { 18, 4 }, { 25, 5 }, { 12, 7 }, { 11, 7 }, { 26, 6 }, { 24, 4 },
420  { 17, 3 }, { 19, 4 }, { 9, 7 }, { 10, 7 }, { 8, 7 }, { 7, 7 }, { 6, 7 },
421  { 5, 7 }, { 29, 7 }, { 4, 7 }, { 15, 3 },
422 };
423 
424 typedef struct HuffmanCodebook {
425  const int size;
426  const int value_cnt;
427  const int value_cnt_pow;
428  const int value_bits;
430 
432  { 0 },
433  { 2, 1, 0, 1 },
434  { 4, 1, 0, 2 },
435  { 8, 1, 0, 3 },
436  { 16, 1, 0, 4 },
437  { 32, 1, 0, 5 },
438  { 64, 1, 0, 6 },
439 };
440 
442  { 0 },
443  { 0 },
444  { 3, 1, 0, 2 },
445  { 7, 1, 0, 3 },
446  { 15, 1, 0, 4 },
447  { 32, 1, 0, 5 },
448 };
449 
450 static const uint8_t at9_coeffs_tab[][2] = {
451  /* Coefficient table A.2.1 - 8 entries */
452  { 1, 3 }, { 3, 3 }, { 12, 3 }, { 4, 3 }, { 7, 3 },
453  { 13, 3 }, { 15, 3 }, { 5, 3 },
454  /* Coefficient table A.2.2 - 80 entries */
455  { 17, 6 }, { 51, 6 }, { 81, 7 }, { 243, 7 }, { 69, 7 },
456  { 207, 7 }, { 205, 7 }, { 71, 7 }, { 209, 7 }, { 115, 7 },
457  { 245, 7 }, { 95, 7 }, { 125, 7 }, { 215, 7 }, { 1, 4 },
458  { 3, 4 }, { 116, 7 }, { 220, 7 }, { 84, 7 }, { 252, 7 },
459  { 29, 7 }, { 55, 7 }, { 21, 7 }, { 63, 7 }, { 65, 6 },
460  { 195, 6 }, { 193, 6 }, { 67, 6 }, { 20, 6 }, { 60, 6 },
461  { 52, 6 }, { 28, 6 }, { 16, 5 }, { 48, 5 }, { 4, 5 },
462  { 12, 5 }, { 221, 8 }, { 119, 8 }, { 117, 8 }, { 223, 8 },
463  { 213, 8 }, { 127, 8 }, { 253, 8 }, { 87, 8 }, { 80, 6 },
464  { 240, 6 }, { 93, 8 }, { 247, 8 }, { 85, 8 }, { 255, 8 },
465  { 113, 7 }, { 211, 7 }, { 208, 6 }, { 112, 6 }, { 64, 5 },
466  { 192, 5 }, { 212, 7 }, { 124, 7 }, { 241, 7 }, { 83, 7 },
467  { 77, 7 }, { 199, 7 }, { 244, 7 }, { 92, 7 }, { 196, 6 },
468  { 76, 6 }, { 53, 7 }, { 31, 7 }, { 197, 7 }, { 79, 7 },
469  { 49, 6 }, { 19, 6 }, { 61, 7 }, { 23, 7 }, { 68, 7 },
470  { 204, 7 }, { 5, 6 }, { 15, 6 }, { 13, 6 }, { 7, 6 },
471  /* Coefficient table A.2.3 - 81 entries */
472  { 65, 6 }, { 195, 6 }, { 193, 6 }, { 67, 6 }, { 197, 7 },
473  { 79, 7 }, { 77, 7 }, { 199, 7 }, { 241, 7 }, { 83, 7 },
474  { 244, 7 }, { 92, 7 }, { 1, 4 }, { 3, 4 }, { 20, 6 },
475  { 60, 6 }, { 212, 7 }, { 124, 7 }, { 61, 7 }, { 23, 7 },
476  { 52, 6 }, { 28, 6 }, { 53, 7 }, { 31, 7 }, { 245, 8 },
477  { 95, 8 }, { 125, 8 }, { 215, 8 }, { 80, 6 }, { 240, 6 },
478  { 208, 6 }, { 112, 6 }, { 205, 8 }, { 71, 8 }, { 81, 8 },
479  { 243, 8 }, { 69, 8 }, { 207, 8 }, { 209, 8 }, { 115, 8 },
480  { 5, 6 }, { 15, 6 }, { 13, 6 }, { 7, 6 }, { 196, 6 },
481  { 76, 6 }, { 221, 9 }, { 119, 9 }, { 253, 9 }, { 87, 9 },
482  { 116, 8 }, { 220, 8 }, { 68, 7 }, { 204, 7 }, { 49, 6 },
483  { 19, 6 }, { 117, 9 }, { 223, 9 }, { 213, 9 }, { 127, 9 },
484  { 84, 8 }, { 252, 8 }, { 29, 8 }, { 55, 8 }, { 21, 8 },
485  { 63, 8 }, { 17, 7 }, { 51, 7 }, { 93, 9 }, { 247, 9 },
486  { 85, 9 }, { 255, 9 }, { 113, 8 }, { 211, 8 }, { 4, 5 },
487  { 12, 5 }, { 0, 3 }, { 16, 5 }, { 48, 5 }, { 64, 5 },
488  { 192, 5 },
489  /* Coefficient table A.2.4 - 81 entries */
490  { 20, 6 }, { 60, 6 }, { 52, 6 }, { 28, 6 }, { 80, 6 },
491  { 240, 6 }, { 208, 6 }, { 112, 6 }, { 1, 4 }, { 3, 4 },
492  { 5, 6 }, { 15, 6 }, { 13, 6 }, { 7, 6 }, { 84, 8 },
493  { 252, 8 }, { 29, 8 }, { 55, 8 }, { 68, 7 }, { 204, 7 },
494  { 196, 6 }, { 76, 6 }, { 17, 7 }, { 51, 7 }, { 21, 8 },
495  { 63, 8 }, { 113, 8 }, { 211, 8 }, { 49, 6 }, { 19, 6 },
496  { 245, 9 }, { 95, 9 }, { 125, 9 }, { 215, 9 }, { 244, 8 },
497  { 92, 8 }, { 212, 8 }, { 124, 8 }, { 241, 8 }, { 83, 8 },
498  { 77, 8 }, { 199, 8 }, { 197, 8 }, { 79, 8 }, { 53, 8 },
499  { 31, 8 }, { 253, 10 }, { 87, 10 }, { 213, 10 }, { 127, 10 },
500  { 81, 9 }, { 243, 9 }, { 0, 2 }, { 61, 8 }, { 23, 8 },
501  { 117, 10 }, { 223, 10 }, { 221, 10 }, { 119, 10 }, { 209, 9 },
502  { 115, 9 }, { 65, 7 }, { 195, 7 }, { 193, 7 }, { 67, 7 },
503  { 69, 9 }, { 207, 9 }, { 205, 9 }, { 71, 9 }, { 93, 10 },
504  { 247, 10 }, { 85, 10 }, { 255, 10 }, { 116, 9 }, { 220, 9 },
505  { 16, 5 }, { 48, 5 }, { 64, 5 }, { 192, 5 }, { 4, 5 },
506  { 12, 5 },
507  /* Coefficient table A.3.1 - 40 entries */
508  { 50, 5 }, { 22, 5 }, { 11, 5 }, { 61, 5 }, { 2, 4 },
509  { 6, 4 }, { 59, 5 }, { 13, 5 }, { 17, 5 }, { 55, 5 },
510  { 49, 5 }, { 23, 5 }, { 24, 5 }, { 40, 5 }, { 26, 6 },
511  { 46, 6 }, { 42, 6 }, { 30, 6 }, { 10, 5 }, { 62, 5 },
512  { 58, 5 }, { 14, 5 }, { 19, 6 }, { 53, 6 }, { 51, 6 },
513  { 21, 6 }, { 3, 5 }, { 5, 5 }, { 16, 5 }, { 48, 5 },
514  { 25, 6 }, { 47, 6 }, { 41, 6 }, { 31, 6 }, { 27, 7 },
515  { 45, 7 }, { 43, 7 }, { 29, 7 }, { 18, 6 }, { 54, 6 },
516  /* Coefficient table A.3.2 - 49 entries */
517  { 57, 5 }, { 15, 5 }, { 17, 5 }, { 55, 5 }, { 49, 5 },
518  { 23, 5 }, { 58, 5 }, { 14, 5 }, { 10, 5 }, { 62, 5 },
519  { 43, 7 }, { 29, 7 }, { 27, 7 }, { 45, 7 }, { 25, 6 },
520  { 47, 6 }, { 41, 6 }, { 31, 6 }, { 59, 6 }, { 13, 6 },
521  { 11, 6 }, { 61, 6 }, { 50, 6 }, { 22, 6 }, { 16, 5 },
522  { 48, 5 }, { 8, 5 }, { 56, 5 }, { 18, 6 }, { 54, 6 },
523  { 24, 6 }, { 40, 6 }, { 2, 5 }, { 6, 5 }, { 1, 5 },
524  { 7, 5 }, { 0, 4 }, { 42, 7 }, { 30, 7 }, { 26, 7 },
525  { 46, 7 }, { 3, 6 }, { 5, 6 }, { 19, 7 }, { 53, 7 },
526  { 51, 7 }, { 21, 7 }, { 9, 6 }, { 63, 6 },
527  /* Coefficient table A.3.3 - 49 entries */
528  { 51, 7 }, { 21, 7 }, { 19, 7 }, { 53, 7 }, { 24, 6 },
529  { 40, 6 }, { 50, 6 }, { 22, 6 }, { 18, 6 }, { 54, 6 },
530  { 3, 6 }, { 5, 6 }, { 43, 8 }, { 29, 8 }, { 27, 8 },
531  { 45, 8 }, { 25, 7 }, { 47, 7 }, { 16, 5 }, { 48, 5 },
532  { 8, 4 }, { 56, 4 }, { 1, 4 }, { 7, 4 }, { 2, 5 },
533  { 6, 5 }, { 9, 5 }, { 63, 5 }, { 0, 3 }, { 57, 5 },
534  { 15, 5 }, { 41, 7 }, { 31, 7 }, { 11, 7 }, { 61, 7 },
535  { 59, 7 }, { 13, 7 }, { 26, 8 }, { 46, 8 }, { 42, 8 },
536  { 30, 8 }, { 49, 6 }, { 23, 6 }, { 17, 6 }, { 55, 6 },
537  { 58, 6 }, { 14, 6 }, { 10, 6 }, { 62, 6 },
538  /* Coefficient table A.3.4 - 49 entries */
539  { 0, 2 }, { 16, 5 }, { 48, 5 }, { 2, 5 }, { 6, 5 },
540  { 26, 8 }, { 46, 8 }, { 51, 8 }, { 21, 8 }, { 24, 7 },
541  { 40, 7 }, { 3, 7 }, { 5, 7 }, { 19, 8 }, { 53, 8 },
542  { 25, 8 }, { 47, 8 }, { 50, 7 }, { 22, 7 }, { 18, 7 },
543  { 54, 7 }, { 17, 6 }, { 55, 6 }, { 8, 4 }, { 56, 4 },
544  { 1, 4 }, { 7, 4 }, { 49, 6 }, { 23, 6 }, { 10, 6 },
545  { 62, 6 }, { 58, 6 }, { 14, 6 }, { 41, 8 }, { 31, 8 },
546  { 11, 8 }, { 61, 8 }, { 59, 8 }, { 13, 8 }, { 43, 10 },
547  { 29, 10 }, { 27, 10 }, { 45, 10 }, { 42, 9 }, { 30, 9 },
548  { 9, 5 }, { 63, 5 }, { 57, 5 }, { 15, 5 },
549  /* Coefficient table A.4.1 - 176 entries */
550  { 83, 7 }, { 189, 7 }, { 68, 7 }, { 204, 7 }, { 23, 7 },
551  { 249, 7 }, { 166, 8 }, { 106, 8 }, { 183, 8 }, { 89, 8 },
552  { 52, 7 }, { 220, 7 }, { 161, 7 }, { 111, 7 }, { 179, 7 },
553  { 93, 7 }, { 196, 7 }, { 76, 7 }, { 38, 7 }, { 234, 7 },
554  { 116, 8 }, { 156, 8 }, { 148, 8 }, { 124, 8 }, { 97, 7 },
555  { 175, 7 }, { 247, 7 }, { 25, 7 }, { 53, 7 }, { 219, 7 },
556  { 212, 7 }, { 60, 7 }, { 5, 6 }, { 11, 6 }, { 101, 8 },
557  { 171, 8 }, { 165, 8 }, { 107, 8 }, { 230, 7 }, { 42, 7 },
558  { 244, 6 }, { 28, 6 }, { 7, 7 }, { 9, 7 }, { 213, 7 },
559  { 59, 7 }, { 86, 8 }, { 186, 8 }, { 115, 8 }, { 157, 8 },
560  { 71, 8 }, { 201, 8 }, { 182, 8 }, { 90, 8 }, { 4, 6 },
561  { 12, 6 }, { 147, 8 }, { 125, 8 }, { 199, 8 }, { 73, 8 },
562  { 82, 7 }, { 190, 7 }, { 66, 7 }, { 206, 7 }, { 178, 7 },
563  { 94, 7 }, { 194, 7 }, { 78, 7 }, { 22, 7 }, { 250, 7 },
564  { 96, 7 }, { 160, 7 }, { 100, 8 }, { 172, 8 }, { 164, 8 },
565  { 108, 8 }, { 246, 7 }, { 26, 7 }, { 85, 8 }, { 187, 8 },
566  { 114, 8 }, { 158, 8 }, { 37, 7 }, { 235, 7 }, { 36, 7 },
567  { 236, 7 }, { 146, 8 }, { 126, 8 }, { 70, 8 }, { 202, 8 },
568  { 215, 8 }, { 57, 8 }, { 55, 8 }, { 217, 8 }, { 181, 8 },
569  { 91, 8 }, { 198, 8 }, { 74, 8 }, { 228, 7 }, { 44, 7 },
570  { 229, 7 }, { 43, 7 }, { 81, 7 }, { 191, 7 }, { 177, 7 },
571  { 95, 7 }, { 119, 9 }, { 153, 9 }, { 151, 9 }, { 121, 9 },
572  { 99, 8 }, { 173, 8 }, { 65, 7 }, { 207, 7 }, { 6, 7 },
573  { 10, 7 }, { 193, 7 }, { 79, 7 }, { 113, 8 }, { 159, 8 },
574  { 163, 8 }, { 109, 8 }, { 145, 8 }, { 127, 8 }, { 118, 9 },
575  { 154, 9 }, { 103, 9 }, { 169, 9 }, { 84, 8 }, { 188, 8 },
576  { 39, 8 }, { 233, 8 }, { 167, 9 }, { 105, 9 }, { 150, 9 },
577  { 122, 9 }, { 69, 8 }, { 203, 8 }, { 180, 8 }, { 92, 8 },
578  { 54, 8 }, { 218, 8 }, { 197, 8 }, { 75, 8 }, { 98, 8 },
579  { 174, 8 }, { 21, 7 }, { 251, 7 }, { 231, 8 }, { 41, 8 },
580  { 162, 8 }, { 110, 8 }, { 214, 8 }, { 58, 8 }, { 117, 9 },
581  { 155, 9 }, { 149, 9 }, { 123, 9 }, { 80, 7 }, { 176, 7 },
582  { 20, 7 }, { 252, 7 }, { 102, 9 }, { 170, 9 }, { 87, 9 },
583  { 185, 9 }, { 112, 8 }, { 144, 8 }, { 245, 7 }, { 27, 7 },
584  { 64, 7 }, { 192, 7 }, { 67, 8 }, { 205, 8 }, { 195, 8 },
585  { 77, 8 },
586  /* Coefficient table A.4.2 - 225 entries */
587  { 3, 7 }, { 13, 7 }, { 113, 8 }, { 159, 8 }, { 163, 8 },
588  { 109, 8 }, { 16, 6 }, { 240, 6 }, { 81, 7 }, { 191, 7 },
589  { 177, 7 }, { 95, 7 }, { 0, 5 }, { 112, 8 }, { 144, 8 },
590  { 99, 8 }, { 173, 8 }, { 149, 9 }, { 123, 9 }, { 166, 9 },
591  { 106, 9 }, { 54, 8 }, { 218, 8 }, { 66, 7 }, { 206, 7 },
592  { 23, 8 }, { 249, 8 }, { 214, 8 }, { 58, 8 }, { 194, 7 },
593  { 78, 7 }, { 117, 9 }, { 155, 9 }, { 87, 9 }, { 185, 9 },
594  { 247, 8 }, { 25, 8 }, { 21, 7 }, { 251, 7 }, { 211, 8 },
595  { 61, 8 }, { 51, 8 }, { 221, 8 }, { 36, 7 }, { 236, 7 },
596  { 228, 7 }, { 44, 7 }, { 183, 9 }, { 89, 9 }, { 102, 9 },
597  { 170, 9 }, { 180, 8 }, { 92, 8 }, { 80, 7 }, { 176, 7 },
598  { 245, 7 }, { 27, 7 }, { 69, 8 }, { 203, 8 }, { 84, 8 },
599  { 188, 8 }, { 225, 7 }, { 47, 7 }, { 33, 7 }, { 239, 7 },
600  { 1, 6 }, { 15, 6 }, { 197, 8 }, { 75, 8 }, { 98, 8 },
601  { 174, 8 }, { 18, 7 }, { 254, 7 }, { 162, 8 }, { 110, 8 },
602  { 116, 9 }, { 156, 9 }, { 148, 9 }, { 124, 9 }, { 242, 7 },
603  { 30, 7 }, { 5, 7 }, { 11, 7 }, { 7, 8 }, { 9, 8 },
604  { 230, 8 }, { 42, 8 }, { 65, 7 }, { 207, 7 }, { 71, 9 },
605  { 201, 9 }, { 199, 9 }, { 73, 9 }, { 38, 8 }, { 234, 8 },
606  { 32, 7 }, { 224, 7 }, { 193, 7 }, { 79, 7 }, { 165, 9 },
607  { 107, 9 }, { 182, 9 }, { 90, 9 }, { 35, 8 }, { 237, 8 },
608  { 244, 7 }, { 28, 7 }, { 20, 7 }, { 252, 7 }, { 50, 8 },
609  { 222, 8 }, { 97, 8 }, { 175, 8 }, { 101, 9 }, { 171, 9 },
610  { 86, 9 }, { 186, 9 }, { 83, 8 }, { 189, 8 }, { 161, 8 },
611  { 111, 8 }, { 179, 8 }, { 93, 8 }, { 64, 7 }, { 192, 7 },
612  { 227, 8 }, { 45, 8 }, { 210, 8 }, { 62, 8 }, { 2, 7 },
613  { 14, 7 }, { 213, 8 }, { 59, 8 }, { 53, 8 }, { 219, 8 },
614  { 196, 8 }, { 76, 8 }, { 115, 9 }, { 157, 9 }, { 151, 10 },
615  { 121, 10 }, { 119, 10 }, { 153, 10 }, { 68, 8 }, { 204, 8 },
616  { 22, 8 }, { 250, 8 }, { 96, 8 }, { 160, 8 }, { 147, 9 },
617  { 125, 9 }, { 55, 9 }, { 217, 9 }, { 246, 8 }, { 26, 8 },
618  { 215, 9 }, { 57, 9 }, { 164, 9 }, { 108, 9 }, { 17, 7 },
619  { 255, 7 }, { 4, 7 }, { 12, 7 }, { 241, 7 }, { 31, 7 },
620  { 114, 9 }, { 158, 9 }, { 100, 9 }, { 172, 9 }, { 6, 8 },
621  { 10, 8 }, { 209, 8 }, { 63, 8 }, { 19, 8 }, { 253, 8 },
622  { 49, 8 }, { 223, 8 }, { 195, 8 }, { 77, 8 }, { 212, 8 },
623  { 60, 8 }, { 198, 9 }, { 74, 9 }, { 70, 9 }, { 202, 9 },
624  { 82, 8 }, { 190, 8 }, { 243, 8 }, { 29, 8 }, { 146, 9 },
625  { 126, 9 }, { 118, 10 }, { 154, 10 }, { 167, 10 }, { 105, 10 },
626  { 178, 8 }, { 94, 8 }, { 67, 8 }, { 205, 8 }, { 85, 9 },
627  { 187, 9 }, { 181, 9 }, { 91, 9 }, { 52, 8 }, { 220, 8 },
628  { 150, 10 }, { 122, 10 }, { 103, 10 }, { 169, 10 }, { 231, 9 },
629  { 41, 9 }, { 229, 8 }, { 43, 8 }, { 48, 8 }, { 208, 8 },
630  { 37, 8 }, { 235, 8 }, { 34, 8 }, { 238, 8 }, { 226, 8 },
631  { 46, 8 }, { 39, 9 }, { 233, 9 }, { 145, 9 }, { 127, 9 },
632  /* Coefficient table A.4.3 - 225 entries */
633  { 246, 8 }, { 26, 8 }, { 22, 8 }, { 250, 8 }, { 210, 7 },
634  { 62, 7 }, { 50, 7 }, { 222, 7 }, { 53, 8 }, { 219, 8 },
635  { 231, 9 }, { 41, 9 }, { 39, 9 }, { 233, 9 }, { 16, 5 },
636  { 240, 5 }, { 0, 4 }, { 227, 7 }, { 45, 7 }, { 35, 7 },
637  { 237, 7 }, { 196, 8 }, { 76, 8 }, { 151, 10 }, { 121, 10 },
638  { 119, 10 }, { 153, 10 }, { 150, 10 }, { 122, 10 }, { 167, 10 },
639  { 105, 10 }, { 118, 10 }, { 154, 10 }, { 103, 10 }, { 169, 10 },
640  { 117, 10 }, { 155, 10 }, { 149, 10 }, { 123, 10 }, { 96, 8 },
641  { 160, 8 }, { 166, 10 }, { 106, 10 }, { 183, 10 }, { 89, 10 },
642  { 87, 10 }, { 185, 10 }, { 102, 10 }, { 170, 10 }, { 71, 10 },
643  { 201, 10 }, { 116, 10 }, { 156, 10 }, { 148, 10 }, { 124, 10 },
644  { 199, 10 }, { 73, 10 }, { 182, 10 }, { 90, 10 }, { 165, 10 },
645  { 107, 10 }, { 181, 9 }, { 91, 9 }, { 68, 8 }, { 204, 8 },
646  { 85, 9 }, { 187, 9 }, { 113, 9 }, { 159, 9 }, { 6, 8 },
647  { 10, 8 }, { 65, 7 }, { 207, 7 }, { 32, 6 }, { 224, 6 },
648  { 2, 6 }, { 14, 6 }, { 193, 7 }, { 79, 7 }, { 145, 9 },
649  { 127, 9 }, { 163, 9 }, { 109, 9 }, { 99, 9 }, { 173, 9 },
650  { 247, 9 }, { 25, 9 }, { 20, 7 }, { 252, 7 }, { 244, 7 },
651  { 28, 7 }, { 178, 8 }, { 94, 8 }, { 82, 8 }, { 190, 8 },
652  { 23, 9 }, { 249, 9 }, { 54, 9 }, { 218, 9 }, { 214, 9 },
653  { 58, 9 }, { 112, 9 }, { 144, 9 }, { 49, 7 }, { 223, 7 },
654  { 209, 7 }, { 63, 7 }, { 37, 8 }, { 235, 8 }, { 229, 8 },
655  { 43, 8 }, { 19, 7 }, { 253, 7 }, { 243, 7 }, { 29, 7 },
656  { 64, 7 }, { 192, 7 }, { 195, 8 }, { 77, 8 }, { 67, 8 },
657  { 205, 8 }, { 212, 8 }, { 60, 8 }, { 52, 8 }, { 220, 8 },
658  { 7, 9 }, { 9, 9 }, { 180, 9 }, { 92, 9 }, { 197, 9 },
659  { 75, 9 }, { 84, 9 }, { 188, 9 }, { 4, 7 }, { 12, 7 },
660  { 48, 7 }, { 208, 7 }, { 34, 7 }, { 238, 7 }, { 226, 7 },
661  { 46, 7 }, { 101, 10 }, { 171, 10 }, { 86, 10 }, { 186, 10 },
662  { 69, 9 }, { 203, 9 }, { 211, 8 }, { 61, 8 }, { 17, 6 },
663  { 255, 6 }, { 241, 6 }, { 31, 6 }, { 3, 7 }, { 13, 7 },
664  { 51, 8 }, { 221, 8 }, { 98, 9 }, { 174, 9 }, { 162, 9 },
665  { 110, 9 }, { 177, 8 }, { 95, 8 }, { 81, 8 }, { 191, 8 },
666  { 38, 9 }, { 234, 9 }, { 230, 9 }, { 42, 9 }, { 21, 8 },
667  { 251, 8 }, { 245, 8 }, { 27, 8 }, { 115, 10 }, { 157, 10 },
668  { 55, 10 }, { 217, 10 }, { 147, 10 }, { 125, 10 }, { 215, 10 },
669  { 57, 10 }, { 80, 8 }, { 176, 8 }, { 66, 8 }, { 206, 8 },
670  { 194, 8 }, { 78, 8 }, { 97, 9 }, { 175, 9 }, { 161, 9 },
671  { 111, 9 }, { 5, 8 }, { 11, 8 }, { 228, 8 }, { 44, 8 },
672  { 36, 8 }, { 236, 8 }, { 114, 10 }, { 158, 10 }, { 100, 10 },
673  { 172, 10 }, { 83, 9 }, { 189, 9 }, { 33, 7 }, { 239, 7 },
674  { 164, 10 }, { 108, 10 }, { 198, 10 }, { 74, 10 }, { 179, 9 },
675  { 93, 9 }, { 70, 10 }, { 202, 10 }, { 146, 10 }, { 126, 10 },
676  { 213, 9 }, { 59, 9 }, { 18, 7 }, { 254, 7 }, { 225, 7 },
677  { 47, 7 }, { 242, 7 }, { 30, 7 }, { 1, 6 }, { 15, 6 },
678  /* Coefficient table A.4.4 - 225 entries */
679  { 193, 7 }, { 79, 7 }, { 20, 7 }, { 252, 7 }, { 151, 10 },
680  { 121, 10 }, { 119, 10 }, { 153, 10 }, { 118, 10 }, { 154, 10 },
681  { 150, 10 }, { 122, 10 }, { 167, 10 }, { 105, 10 }, { 103, 10 },
682  { 169, 10 }, { 117, 10 }, { 155, 10 }, { 149, 10 }, { 123, 10 },
683  { 244, 7 }, { 28, 7 }, { 87, 10 }, { 185, 10 }, { 183, 10 },
684  { 89, 10 }, { 166, 10 }, { 106, 10 }, { 102, 10 }, { 170, 10 },
685  { 71, 10 }, { 201, 10 }, { 148, 10 }, { 124, 10 }, { 199, 10 },
686  { 73, 10 }, { 116, 10 }, { 156, 10 }, { 165, 10 }, { 107, 10 },
687  { 182, 10 }, { 90, 10 }, { 86, 10 }, { 186, 10 }, { 115, 10 },
688  { 157, 10 }, { 101, 10 }, { 171, 10 }, { 147, 10 }, { 125, 10 },
689  { 55, 10 }, { 217, 10 }, { 215, 10 }, { 57, 10 }, { 114, 10 },
690  { 158, 10 }, { 146, 10 }, { 126, 10 }, { 164, 10 }, { 108, 10 },
691  { 39, 10 }, { 233, 10 }, { 100, 10 }, { 172, 10 }, { 231, 10 },
692  { 41, 10 }, { 198, 10 }, { 74, 10 }, { 70, 10 }, { 202, 10 },
693  { 145, 10 }, { 127, 10 }, { 181, 10 }, { 91, 10 }, { 85, 10 },
694  { 187, 10 }, { 113, 10 }, { 159, 10 }, { 247, 10 }, { 25, 10 },
695  { 112, 10 }, { 144, 10 }, { 23, 10 }, { 249, 10 }, { 7, 10 },
696  { 9, 10 }, { 99, 10 }, { 173, 10 }, { 54, 10 }, { 218, 10 },
697  { 163, 10 }, { 109, 10 }, { 214, 10 }, { 58, 10 }, { 197, 10 },
698  { 75, 10 }, { 84, 10 }, { 188, 10 }, { 98, 10 }, { 174, 10 },
699  { 69, 10 }, { 203, 10 }, { 67, 8 }, { 205, 8 }, { 180, 10 },
700  { 92, 10 }, { 162, 10 }, { 110, 10 }, { 97, 9 }, { 175, 9 },
701  { 81, 8 }, { 191, 8 }, { 177, 8 }, { 95, 8 }, { 210, 7 },
702  { 62, 7 }, { 212, 8 }, { 60, 8 }, { 195, 8 }, { 77, 8 },
703  { 35, 7 }, { 237, 7 }, { 64, 7 }, { 192, 7 }, { 50, 7 },
704  { 222, 7 }, { 227, 7 }, { 45, 7 }, { 52, 8 }, { 220, 8 },
705  { 21, 8 }, { 251, 8 }, { 4, 7 }, { 12, 7 }, { 245, 8 },
706  { 27, 8 }, { 161, 9 }, { 111, 9 }, { 22, 9 }, { 250, 9 },
707  { 225, 6 }, { 47, 6 }, { 33, 6 }, { 239, 6 }, { 18, 6 },
708  { 254, 6 }, { 242, 6 }, { 30, 6 }, { 80, 8 }, { 176, 8 },
709  { 246, 9 }, { 26, 9 }, { 96, 9 }, { 160, 9 }, { 5, 8 },
710  { 11, 8 }, { 6, 9 }, { 10, 9 }, { 179, 9 }, { 93, 9 },
711  { 83, 9 }, { 189, 9 }, { 53, 9 }, { 219, 9 }, { 213, 9 },
712  { 59, 9 }, { 196, 9 }, { 76, 9 }, { 49, 7 }, { 223, 7 },
713  { 16, 5 }, { 240, 5 }, { 1, 5 }, { 15, 5 }, { 0, 4 },
714  { 209, 7 }, { 63, 7 }, { 19, 7 }, { 253, 7 }, { 32, 6 },
715  { 224, 6 }, { 2, 6 }, { 14, 6 }, { 243, 7 }, { 29, 7 },
716  { 51, 8 }, { 221, 8 }, { 211, 8 }, { 61, 8 }, { 66, 8 },
717  { 206, 8 }, { 194, 8 }, { 78, 8 }, { 228, 8 }, { 44, 8 },
718  { 36, 8 }, { 236, 8 }, { 48, 7 }, { 208, 7 }, { 3, 7 },
719  { 13, 7 }, { 68, 9 }, { 204, 9 }, { 82, 9 }, { 190, 9 },
720  { 178, 9 }, { 94, 9 }, { 37, 9 }, { 235, 9 }, { 34, 7 },
721  { 238, 7 }, { 226, 7 }, { 46, 7 }, { 229, 9 }, { 43, 9 },
722  { 38, 10 }, { 234, 10 }, { 230, 10 }, { 42, 10 }, { 65, 8 },
723  { 207, 8 }, { 17, 6 }, { 255, 6 }, { 241, 6 }, { 31, 6 },
724  /* Coefficient table A.5.1 - 31 entries */
725  { 8, 4 }, { 24, 4 }, { 15, 5 }, { 17, 5 }, { 4, 5 },
726  { 28, 5 }, { 9, 4 }, { 23, 4 }, { 14, 5 }, { 18, 5 },
727  { 3, 5 }, { 29, 5 }, { 13, 5 }, { 19, 5 }, { 2, 5 },
728  { 30, 5 }, { 12, 5 }, { 20, 5 }, { 1, 5 }, { 31, 5 },
729  { 7, 6 }, { 25, 6 }, { 0, 5 }, { 11, 5 }, { 21, 5 },
730  { 6, 6 }, { 26, 6 }, { 5, 6 }, { 27, 6 }, { 10, 5 },
731  { 22, 5 },
732  /* Coefficient table A.5.2 - 31 entries */
733  { 2, 4 }, { 30, 4 }, { 11, 5 }, { 21, 5 }, { 7, 5 },
734  { 25, 5 }, { 1, 4 }, { 31, 4 }, { 6, 5 }, { 26, 5 },
735  { 10, 5 }, { 22, 5 }, { 15, 6 }, { 17, 6 }, { 14, 6 },
736  { 18, 6 }, { 0, 4 }, { 5, 5 }, { 27, 5 }, { 9, 5 },
737  { 23, 5 }, { 8, 5 }, { 24, 5 }, { 4, 5 }, { 28, 5 },
738  { 13, 6 }, { 19, 6 }, { 12, 6 }, { 20, 6 }, { 3, 5 },
739  { 29, 5 },
740  /* Coefficient table A.5.3 - 31 entries */
741  { 0, 3 }, { 9, 5 }, { 23, 5 }, { 7, 5 }, { 25, 5 },
742  { 3, 4 }, { 29, 4 }, { 8, 5 }, { 24, 5 }, { 15, 7 },
743  { 17, 7 }, { 14, 7 }, { 18, 7 }, { 11, 6 }, { 21, 6 },
744  { 2, 4 }, { 30, 4 }, { 6, 5 }, { 26, 5 }, { 5, 5 },
745  { 27, 5 }, { 1, 4 }, { 31, 4 }, { 10, 6 }, { 22, 6 },
746  { 13, 7 }, { 19, 7 }, { 12, 7 }, { 20, 7 }, { 4, 5 },
747  { 28, 5 },
748  /* Coefficient table A.5.4 - 31 entries */
749  { 8, 5 }, { 24, 5 }, { 7, 5 }, { 25, 5 }, { 4, 4 },
750  { 28, 4 }, { 0, 3 }, { 10, 6 }, { 22, 6 }, { 13, 7 },
751  { 19, 7 }, { 12, 7 }, { 20, 7 }, { 6, 5 }, { 26, 5 },
752  { 3, 4 }, { 29, 4 }, { 2, 4 }, { 30, 4 }, { 9, 6 },
753  { 23, 6 }, { 15, 8 }, { 17, 8 }, { 14, 8 }, { 18, 8 },
754  { 11, 7 }, { 21, 7 }, { 5, 5 }, { 27, 5 }, { 1, 4 },
755  { 31, 4 },
756  /* Coefficient table A.6.1 - 63 entries */
757  { 19, 5 }, { 45, 5 }, { 31, 6 }, { 33, 6 }, { 30, 6 },
758  { 34, 6 }, { 16, 5 }, { 48, 5 }, { 8, 6 }, { 56, 6 },
759  { 7, 6 }, { 57, 6 }, { 18, 5 }, { 46, 5 }, { 29, 6 },
760  { 35, 6 }, { 28, 6 }, { 36, 6 }, { 6, 6 }, { 58, 6 },
761  { 27, 6 }, { 37, 6 }, { 17, 5 }, { 47, 5 }, { 5, 6 },
762  { 59, 6 }, { 26, 6 }, { 38, 6 }, { 4, 6 }, { 60, 6 },
763  { 25, 6 }, { 39, 6 }, { 3, 6 }, { 61, 6 }, { 2, 6 },
764  { 62, 6 }, { 24, 6 }, { 40, 6 }, { 15, 7 }, { 49, 7 },
765  { 14, 7 }, { 50, 7 }, { 1, 6 }, { 63, 6 }, { 23, 6 },
766  { 41, 6 }, { 13, 7 }, { 51, 7 }, { 0, 6 }, { 22, 6 },
767  { 42, 6 }, { 12, 7 }, { 52, 7 }, { 11, 7 }, { 53, 7 },
768  { 21, 6 }, { 43, 6 }, { 20, 6 }, { 44, 6 }, { 10, 7 },
769  { 54, 7 }, { 9, 7 }, { 55, 7 },
770  /* Coefficient table A.6.2 - 63 entries */
771  { 23, 6 }, { 41, 6 }, { 15, 6 }, { 49, 6 }, { 4, 5 },
772  { 60, 5 }, { 3, 5 }, { 61, 5 }, { 22, 6 }, { 42, 6 },
773  { 14, 6 }, { 50, 6 }, { 2, 5 }, { 62, 5 }, { 31, 7 },
774  { 33, 7 }, { 30, 7 }, { 34, 7 }, { 21, 6 }, { 43, 6 },
775  { 13, 6 }, { 51, 6 }, { 12, 6 }, { 52, 6 }, { 1, 5 },
776  { 63, 5 }, { 20, 6 }, { 44, 6 }, { 29, 7 }, { 35, 7 },
777  { 28, 7 }, { 36, 7 }, { 11, 6 }, { 53, 6 }, { 19, 6 },
778  { 45, 6 }, { 0, 5 }, { 10, 6 }, { 54, 6 }, { 18, 6 },
779  { 46, 6 }, { 27, 7 }, { 37, 7 }, { 26, 7 }, { 38, 7 },
780  { 9, 6 }, { 55, 6 }, { 16, 6 }, { 48, 6 }, { 8, 6 },
781  { 56, 6 }, { 17, 6 }, { 47, 6 }, { 7, 6 }, { 57, 6 },
782  { 25, 7 }, { 39, 7 }, { 24, 7 }, { 40, 7 }, { 6, 6 },
783  { 58, 6 }, { 5, 6 }, { 59, 6 },
784  /* Coefficient table A.6.3 - 63 entries */
785  { 0, 4 }, { 7, 5 }, { 57, 5 }, { 15, 6 }, { 49, 6 },
786  { 25, 7 }, { 39, 7 }, { 24, 7 }, { 40, 7 }, { 18, 6 },
787  { 46, 6 }, { 14, 6 }, { 50, 6 }, { 6, 5 }, { 58, 5 },
788  { 5, 5 }, { 59, 5 }, { 31, 8 }, { 33, 8 }, { 30, 8 },
789  { 34, 8 }, { 23, 7 }, { 41, 7 }, { 17, 6 }, { 47, 6 },
790  { 13, 6 }, { 51, 6 }, { 16, 6 }, { 48, 6 }, { 4, 5 },
791  { 60, 5 }, { 12, 6 }, { 52, 6 }, { 22, 7 }, { 42, 7 },
792  { 29, 8 }, { 35, 8 }, { 28, 8 }, { 36, 8 }, { 3, 5 },
793  { 61, 5 }, { 11, 6 }, { 53, 6 }, { 10, 6 }, { 54, 6 },
794  { 2, 5 }, { 62, 5 }, { 21, 7 }, { 43, 7 }, { 20, 7 },
795  { 44, 7 }, { 9, 6 }, { 55, 6 }, { 1, 5 }, { 63, 5 },
796  { 27, 8 }, { 37, 8 }, { 26, 8 }, { 38, 8 }, { 19, 7 },
797  { 45, 7 }, { 8, 6 }, { 56, 6 },
798  /* Coefficient table A.6.4 - 63 entries */
799  { 16, 6 }, { 48, 6 }, { 27, 8 }, { 37, 8 }, { 26, 8 },
800  { 38, 8 }, { 21, 7 }, { 43, 7 }, { 8, 5 }, { 56, 5 },
801  { 1, 4 }, { 63, 4 }, { 14, 6 }, { 50, 6 }, { 20, 7 },
802  { 44, 7 }, { 31, 9 }, { 33, 9 }, { 30, 9 }, { 34, 9 },
803  { 25, 8 }, { 39, 8 }, { 7, 5 }, { 57, 5 }, { 0, 4 },
804  { 6, 5 }, { 58, 5 }, { 13, 6 }, { 51, 6 }, { 12, 6 },
805  { 52, 6 }, { 5, 5 }, { 59, 5 }, { 19, 7 }, { 45, 7 },
806  { 24, 8 }, { 40, 8 }, { 29, 9 }, { 35, 9 }, { 28, 9 },
807  { 36, 9 }, { 11, 6 }, { 53, 6 }, { 4, 5 }, { 60, 5 },
808  { 18, 7 }, { 46, 7 }, { 23, 8 }, { 41, 8 }, { 22, 8 },
809  { 42, 8 }, { 10, 6 }, { 54, 6 }, { 3, 5 }, { 61, 5 },
810  { 2, 5 }, { 62, 5 }, { 17, 7 }, { 47, 7 }, { 15, 7 },
811  { 49, 7 }, { 9, 6 }, { 55, 6 },
812  /* Coefficient table A.7.1 - 127 entries */
813  { 18, 7 }, { 110, 7 }, { 63, 7 }, { 65, 7 }, { 38, 6 },
814  { 90, 6 }, { 17, 7 }, { 111, 7 }, { 62, 7 }, { 66, 7 },
815  { 61, 7 }, { 67, 7 }, { 16, 7 }, { 112, 7 }, { 37, 6 },
816  { 91, 6 }, { 60, 7 }, { 68, 7 }, { 15, 7 }, { 113, 7 },
817  { 32, 6 }, { 96, 6 }, { 59, 7 }, { 69, 7 }, { 14, 7 },
818  { 114, 7 }, { 36, 6 }, { 92, 6 }, { 58, 7 }, { 70, 7 },
819  { 13, 7 }, { 115, 7 }, { 57, 7 }, { 71, 7 }, { 12, 7 },
820  { 116, 7 }, { 35, 6 }, { 93, 6 }, { 56, 7 }, { 72, 7 },
821  { 55, 7 }, { 73, 7 }, { 11, 7 }, { 117, 7 }, { 10, 7 },
822  { 118, 7 }, { 34, 6 }, { 94, 6 }, { 54, 7 }, { 74, 7 },
823  { 9, 7 }, { 119, 7 }, { 33, 6 }, { 95, 6 }, { 53, 7 },
824  { 75, 7 }, { 52, 7 }, { 76, 7 }, { 8, 7 }, { 120, 7 },
825  { 51, 7 }, { 77, 7 }, { 50, 7 }, { 78, 7 }, { 7, 7 },
826  { 121, 7 }, { 5, 7 }, { 123, 7 }, { 6, 7 }, { 122, 7 },
827  { 49, 7 }, { 79, 7 }, { 4, 7 }, { 124, 7 }, { 31, 8 },
828  { 97, 8 }, { 30, 8 }, { 98, 8 }, { 48, 7 }, { 80, 7 },
829  { 3, 7 }, { 125, 7 }, { 29, 8 }, { 99, 8 }, { 28, 8 },
830  { 100, 8 }, { 47, 7 }, { 81, 7 }, { 2, 7 }, { 126, 7 },
831  { 46, 7 }, { 82, 7 }, { 1, 7 }, { 127, 7 }, { 27, 8 },
832  { 101, 8 }, { 26, 8 }, { 102, 8 }, { 45, 7 }, { 83, 7 },
833  { 0, 7 }, { 25, 8 }, { 103, 8 }, { 44, 7 }, { 84, 7 },
834  { 24, 8 }, { 104, 8 }, { 23, 8 }, { 105, 8 }, { 43, 7 },
835  { 85, 7 }, { 42, 7 }, { 86, 7 }, { 22, 8 }, { 106, 8 },
836  { 21, 8 }, { 107, 8 }, { 41, 7 }, { 87, 7 }, { 20, 8 },
837  { 108, 8 }, { 19, 8 }, { 109, 8 }, { 40, 7 }, { 88, 7 },
838  { 39, 7 }, { 89, 7 },
839  /* Coefficient table A.7.2 - 127 entries */
840  { 47, 7 }, { 81, 7 }, { 46, 7 }, { 82, 7 }, { 8, 6 },
841  { 120, 6 }, { 31, 7 }, { 97, 7 }, { 45, 7 }, { 83, 7 },
842  { 7, 6 }, { 121, 6 }, { 30, 7 }, { 98, 7 }, { 29, 7 },
843  { 99, 7 }, { 6, 6 }, { 122, 6 }, { 63, 8 }, { 65, 8 },
844  { 62, 8 }, { 66, 8 }, { 44, 7 }, { 84, 7 }, { 5, 6 },
845  { 123, 6 }, { 28, 7 }, { 100, 7 }, { 43, 7 }, { 85, 7 },
846  { 4, 6 }, { 124, 6 }, { 27, 7 }, { 101, 7 }, { 26, 7 },
847  { 102, 7 }, { 42, 7 }, { 86, 7 }, { 61, 8 }, { 67, 8 },
848  { 60, 8 }, { 68, 8 }, { 3, 6 }, { 125, 6 }, { 25, 7 },
849  { 103, 7 }, { 41, 7 }, { 87, 7 }, { 2, 6 }, { 126, 6 },
850  { 24, 7 }, { 104, 7 }, { 59, 8 }, { 69, 8 }, { 58, 8 },
851  { 70, 8 }, { 40, 7 }, { 88, 7 }, { 23, 7 }, { 105, 7 },
852  { 39, 7 }, { 89, 7 }, { 22, 7 }, { 106, 7 }, { 1, 6 },
853  { 127, 6 }, { 57, 8 }, { 71, 8 }, { 56, 8 }, { 72, 8 },
854  { 21, 7 }, { 107, 7 }, { 38, 7 }, { 90, 7 }, { 20, 7 },
855  { 108, 7 }, { 0, 6 }, { 55, 8 }, { 73, 8 }, { 54, 8 },
856  { 74, 8 }, { 37, 7 }, { 91, 7 }, { 19, 7 }, { 109, 7 },
857  { 18, 7 }, { 110, 7 }, { 36, 7 }, { 92, 7 }, { 53, 8 },
858  { 75, 8 }, { 52, 8 }, { 76, 8 }, { 17, 7 }, { 111, 7 },
859  { 35, 7 }, { 93, 7 }, { 32, 7 }, { 96, 7 }, { 16, 7 },
860  { 112, 7 }, { 15, 7 }, { 113, 7 }, { 34, 7 }, { 94, 7 },
861  { 51, 8 }, { 77, 8 }, { 50, 8 }, { 78, 8 }, { 14, 7 },
862  { 114, 7 }, { 13, 7 }, { 115, 7 }, { 33, 7 }, { 95, 7 },
863  { 12, 7 }, { 116, 7 }, { 49, 8 }, { 79, 8 }, { 48, 8 },
864  { 80, 8 }, { 11, 7 }, { 117, 7 }, { 10, 7 }, { 118, 7 },
865  { 9, 7 }, { 119, 7 },
866  /* Coefficient table A.7.3 - 127 entries */
867  { 15, 6 }, { 113, 6 }, { 31, 7 }, { 97, 7 }, { 51, 8 },
868  { 77, 8 }, { 50, 8 }, { 78, 8 }, { 14, 6 }, { 114, 6 },
869  { 0, 5 }, { 37, 7 }, { 91, 7 }, { 30, 7 }, { 98, 7 },
870  { 13, 6 }, { 115, 6 }, { 29, 7 }, { 99, 7 }, { 49, 8 },
871  { 79, 8 }, { 63, 9 }, { 65, 9 }, { 62, 9 }, { 66, 9 },
872  { 12, 6 }, { 116, 6 }, { 36, 7 }, { 92, 7 }, { 28, 7 },
873  { 100, 7 }, { 35, 7 }, { 93, 7 }, { 48, 8 }, { 80, 8 },
874  { 47, 8 }, { 81, 8 }, { 11, 6 }, { 117, 6 }, { 10, 6 },
875  { 118, 6 }, { 27, 7 }, { 101, 7 }, { 34, 7 }, { 94, 7 },
876  { 61, 9 }, { 67, 9 }, { 60, 9 }, { 68, 9 }, { 46, 8 },
877  { 82, 8 }, { 26, 7 }, { 102, 7 }, { 9, 6 }, { 119, 6 },
878  { 32, 7 }, { 96, 7 }, { 33, 7 }, { 95, 7 }, { 8, 6 },
879  { 120, 6 }, { 25, 7 }, { 103, 7 }, { 45, 8 }, { 83, 8 },
880  { 59, 9 }, { 69, 9 }, { 58, 9 }, { 70, 9 }, { 7, 6 },
881  { 121, 6 }, { 24, 7 }, { 104, 7 }, { 23, 7 }, { 105, 7 },
882  { 6, 6 }, { 122, 6 }, { 44, 8 }, { 84, 8 }, { 57, 9 },
883  { 71, 9 }, { 56, 9 }, { 72, 9 }, { 22, 7 }, { 106, 7 },
884  { 5, 6 }, { 123, 6 }, { 43, 8 }, { 85, 8 }, { 42, 8 },
885  { 86, 8 }, { 21, 7 }, { 107, 7 }, { 4, 6 }, { 124, 6 },
886  { 20, 7 }, { 108, 7 }, { 55, 9 }, { 73, 9 }, { 54, 9 },
887  { 74, 9 }, { 41, 8 }, { 87, 8 }, { 3, 6 }, { 125, 6 },
888  { 19, 7 }, { 109, 7 }, { 18, 7 }, { 110, 7 }, { 2, 6 },
889  { 126, 6 }, { 40, 8 }, { 88, 8 }, { 53, 9 }, { 75, 9 },
890  { 52, 9 }, { 76, 9 }, { 17, 7 }, { 111, 7 }, { 39, 8 },
891  { 89, 8 }, { 38, 8 }, { 90, 8 }, { 16, 7 }, { 112, 7 },
892  { 1, 6 }, { 127, 6 },
893  /* Coefficient table A.7.4 - 127 entries */
894  { 3, 5 }, { 125, 5 }, { 32, 7 }, { 96, 7 }, { 29, 7 },
895  { 99, 7 }, { 16, 6 }, { 112, 6 }, { 2, 5 }, { 126, 5 },
896  { 53, 9 }, { 75, 9 }, { 52, 9 }, { 76, 9 }, { 42, 8 },
897  { 86, 8 }, { 28, 7 }, { 100, 7 }, { 15, 6 }, { 113, 6 },
898  { 63, 10 }, { 65, 10 }, { 62, 10 }, { 66, 10 }, { 51, 9 },
899  { 77, 9 }, { 41, 8 }, { 87, 8 }, { 27, 7 }, { 101, 7 },
900  { 14, 6 }, { 114, 6 }, { 1, 5 }, { 127, 5 }, { 13, 6 },
901  { 115, 6 }, { 0, 5 }, { 26, 7 }, { 102, 7 }, { 40, 8 },
902  { 88, 8 }, { 50, 9 }, { 78, 9 }, { 61, 10 }, { 67, 10 },
903  { 60, 10 }, { 68, 10 }, { 12, 6 }, { 116, 6 }, { 25, 7 },
904  { 103, 7 }, { 39, 8 }, { 89, 8 }, { 49, 9 }, { 79, 9 },
905  { 48, 9 }, { 80, 9 }, { 11, 6 }, { 117, 6 }, { 24, 7 },
906  { 104, 7 }, { 38, 8 }, { 90, 8 }, { 59, 10 }, { 69, 10 },
907  { 58, 10 }, { 70, 10 }, { 47, 9 }, { 81, 9 }, { 10, 6 },
908  { 118, 6 }, { 9, 6 }, { 119, 6 }, { 23, 7 }, { 105, 7 },
909  { 22, 7 }, { 106, 7 }, { 8, 6 }, { 120, 6 }, { 37, 8 },
910  { 91, 8 }, { 36, 8 }, { 92, 8 }, { 21, 7 }, { 107, 7 },
911  { 7, 6 }, { 121, 6 }, { 6, 6 }, { 122, 6 }, { 57, 10 },
912  { 71, 10 }, { 56, 10 }, { 72, 10 }, { 46, 9 }, { 82, 9 },
913  { 35, 8 }, { 93, 8 }, { 20, 7 }, { 108, 7 }, { 5, 6 },
914  { 123, 6 }, { 19, 7 }, { 109, 7 }, { 45, 9 }, { 83, 9 },
915  { 44, 9 }, { 84, 9 }, { 31, 8 }, { 97, 8 }, { 4, 6 },
916  { 124, 6 }, { 34, 8 }, { 94, 8 }, { 55, 10 }, { 73, 10 },
917  { 54, 10 }, { 74, 10 }, { 43, 9 }, { 85, 9 }, { 18, 7 },
918  { 110, 7 }, { 30, 8 }, { 98, 8 }, { 33, 8 }, { 95, 8 },
919  { 17, 7 }, { 111, 7 },
920  /* Coefficient table B.2.2 - 80 entries */
921  { 80, 5 }, { 240, 5 }, { 253, 10 }, { 87, 10 }, { 117, 10 },
922  { 223, 10 }, { 93, 10 }, { 247, 10 }, { 221, 10 }, { 119, 10 },
923  { 213, 10 }, { 127, 10 }, { 85, 10 }, { 255, 10 }, { 245, 10 },
924  { 95, 10 }, { 81, 10 }, { 243, 10 }, { 17, 7 }, { 51, 7 },
925  { 20, 6 }, { 60, 6 }, { 116, 9 }, { 220, 9 }, { 84, 9 },
926  { 252, 9 }, { 68, 8 }, { 204, 8 }, { 212, 7 }, { 124, 7 },
927  { 196, 6 }, { 76, 6 }, { 5, 5 }, { 15, 5 }, { 53, 7 },
928  { 31, 7 }, { 61, 7 }, { 23, 7 }, { 52, 6 }, { 28, 6 },
929  { 13, 5 }, { 7, 5 }, { 16, 4 }, { 48, 4 }, { 4, 4 },
930  { 12, 4 }, { 49, 6 }, { 19, 6 }, { 244, 7 }, { 92, 7 },
931  { 21, 9 }, { 63, 9 }, { 197, 9 }, { 79, 9 }, { 69, 10 },
932  { 207, 10 }, { 205, 10 }, { 71, 10 }, { 241, 9 }, { 83, 9 },
933  { 208, 6 }, { 112, 6 }, { 77, 9 }, { 199, 9 }, { 113, 9 },
934  { 211, 9 }, { 29, 9 }, { 55, 9 }, { 209, 10 }, { 115, 10 },
935  { 125, 10 }, { 215, 10 }, { 65, 8 }, { 195, 8 }, { 193, 8 },
936  { 67, 8 }, { 64, 4 }, { 192, 4 }, { 1, 4 }, { 3, 4 },
937  /* Coefficient table B.2.3 - 81 entries */
938  { 16, 4 }, { 48, 4 }, { 4, 4 }, { 12, 4 }, { 64, 4 },
939  { 192, 4 }, { 5, 6 }, { 15, 6 }, { 13, 6 }, { 7, 6 },
940  { 212, 8 }, { 124, 8 }, { 213, 10 }, { 127, 10 }, { 93, 10 },
941  { 247, 10 }, { 117, 10 }, { 223, 10 }, { 253, 10 }, { 87, 10 },
942  { 21, 9 }, { 63, 9 }, { 221, 10 }, { 119, 10 }, { 81, 10 },
943  { 243, 10 }, { 205, 10 }, { 71, 10 }, { 69, 10 }, { 207, 10 },
944  { 245, 10 }, { 95, 10 }, { 209, 10 }, { 115, 10 }, { 125, 10 },
945  { 215, 10 }, { 85, 10 }, { 255, 10 }, { 116, 10 }, { 220, 10 },
946  { 241, 10 }, { 83, 10 }, { 77, 10 }, { 199, 10 }, { 84, 10 },
947  { 252, 10 }, { 29, 9 }, { 55, 9 }, { 61, 8 }, { 23, 8 },
948  { 53, 8 }, { 31, 8 }, { 1, 4 }, { 3, 4 }, { 193, 8 },
949  { 67, 8 }, { 65, 8 }, { 195, 8 }, { 196, 7 }, { 76, 7 },
950  { 49, 7 }, { 19, 7 }, { 20, 7 }, { 60, 7 }, { 52, 7 },
951  { 28, 7 }, { 208, 7 }, { 112, 7 }, { 80, 7 }, { 240, 7 },
952  { 113, 10 }, { 211, 10 }, { 197, 10 }, { 79, 10 }, { 68, 9 },
953  { 204, 9 }, { 17, 9 }, { 51, 9 }, { 244, 9 }, { 92, 9 },
954  { 0, 2 },
955  /* Coefficient table B.2.4 - 81 entries */
956  { 1, 4 }, { 3, 4 }, { 52, 7 }, { 28, 7 }, { 193, 8 },
957  { 67, 8 }, { 213, 10 }, { 127, 10 }, { 253, 10 }, { 87, 10 },
958  { 93, 10 }, { 247, 10 }, { 117, 10 }, { 223, 10 }, { 80, 7 },
959  { 240, 7 }, { 196, 7 }, { 76, 7 }, { 208, 7 }, { 112, 7 },
960  { 221, 10 }, { 119, 10 }, { 245, 10 }, { 95, 10 }, { 69, 10 },
961  { 207, 10 }, { 85, 10 }, { 255, 10 }, { 209, 10 }, { 115, 10 },
962  { 205, 10 }, { 71, 10 }, { 81, 10 }, { 243, 10 }, { 125, 10 },
963  { 215, 10 }, { 5, 7 }, { 15, 7 }, { 116, 10 }, { 220, 10 },
964  { 84, 10 }, { 252, 10 }, { 29, 10 }, { 55, 10 }, { 113, 10 },
965  { 211, 10 }, { 241, 10 }, { 83, 10 }, { 21, 10 }, { 63, 10 },
966  { 197, 10 }, { 79, 10 }, { 77, 10 }, { 199, 10 }, { 16, 5 },
967  { 48, 5 }, { 4, 5 }, { 12, 5 }, { 49, 7 }, { 19, 7 },
968  { 13, 7 }, { 7, 7 }, { 212, 10 }, { 124, 10 }, { 244, 10 },
969  { 92, 10 }, { 68, 9 }, { 204, 9 }, { 53, 9 }, { 31, 9 },
970  { 61, 9 }, { 23, 9 }, { 17, 9 }, { 51, 9 }, { 65, 9 },
971  { 195, 9 }, { 20, 8 }, { 60, 8 }, { 64, 5 }, { 192, 5 },
972  { 0, 1 },
973  /* Coefficient table B.3.2 - 49 entries */
974  { 58, 5 }, { 14, 5 }, { 59, 6 }, { 13, 6 }, { 19, 7 },
975  { 53, 7 }, { 25, 7 }, { 47, 7 }, { 1, 4 }, { 7, 4 },
976  { 0, 2 }, { 9, 6 }, { 63, 6 }, { 57, 6 }, { 15, 6 },
977  { 24, 6 }, { 40, 6 }, { 17, 6 }, { 55, 6 }, { 42, 8 },
978  { 30, 8 }, { 43, 9 }, { 29, 9 }, { 27, 9 }, { 45, 9 },
979  { 41, 7 }, { 31, 7 }, { 3, 6 }, { 5, 6 }, { 8, 5 },
980  { 56, 5 }, { 49, 6 }, { 23, 6 }, { 11, 7 }, { 61, 7 },
981  { 26, 8 }, { 46, 8 }, { 51, 8 }, { 21, 8 }, { 16, 5 },
982  { 48, 5 }, { 18, 7 }, { 54, 7 }, { 50, 7 }, { 22, 7 },
983  { 10, 6 }, { 62, 6 }, { 2, 5 }, { 6, 5 },
984  /* Coefficient table B.3.3 - 49 entries */
985  { 57, 5 }, { 15, 5 }, { 9, 5 }, { 63, 5 }, { 59, 7 },
986  { 13, 7 }, { 50, 7 }, { 22, 7 }, { 18, 7 }, { 54, 7 },
987  { 51, 8 }, { 21, 8 }, { 27, 10 }, { 45, 10 }, { 43, 10 },
988  { 29, 10 }, { 26, 9 }, { 46, 9 }, { 17, 6 }, { 55, 6 },
989  { 49, 6 }, { 23, 6 }, { 8, 4 }, { 56, 4 }, { 16, 5 },
990  { 48, 5 }, { 10, 6 }, { 62, 6 }, { 58, 6 }, { 14, 6 },
991  { 1, 4 }, { 7, 4 }, { 2, 5 }, { 6, 5 }, { 25, 8 },
992  { 47, 8 }, { 42, 9 }, { 30, 9 }, { 19, 9 }, { 53, 9 },
993  { 24, 7 }, { 40, 7 }, { 41, 8 }, { 31, 8 }, { 11, 8 },
994  { 61, 8 }, { 3, 7 }, { 5, 7 }, { 0, 2 },
995  /* Coefficient table B.3.4 - 49 entries */
996  { 0, 1 }, { 8, 4 }, { 56, 4 }, { 1, 4 }, { 7, 4 },
997  { 59, 8 }, { 13, 8 }, { 27, 10 }, { 45, 10 }, { 43, 10 },
998  { 29, 10 }, { 26, 10 }, { 46, 10 }, { 51, 10 }, { 21, 10 },
999  { 18, 8 }, { 54, 8 }, { 50, 8 }, { 22, 8 }, { 16, 6 },
1000  { 48, 6 }, { 17, 7 }, { 55, 7 }, { 24, 8 }, { 40, 8 },
1001  { 19, 10 }, { 53, 10 }, { 42, 10 }, { 30, 10 }, { 25, 9 },
1002  { 47, 9 }, { 49, 7 }, { 23, 7 }, { 10, 7 }, { 62, 7 },
1003  { 2, 6 }, { 6, 6 }, { 58, 7 }, { 14, 7 }, { 11, 9 },
1004  { 61, 9 }, { 41, 9 }, { 31, 9 }, { 3, 8 }, { 5, 8 },
1005  { 9, 6 }, { 63, 6 }, { 57, 6 }, { 15, 6 },
1006  /* Coefficient table B.4.2 - 225 entries */
1007  { 33, 7 }, { 239, 7 }, { 36, 7 }, { 236, 7 }, { 119, 10 },
1008  { 153, 10 }, { 151, 10 }, { 121, 10 }, { 118, 10 }, { 154, 10 },
1009  { 167, 10 }, { 105, 10 }, { 247, 8 }, { 25, 8 }, { 112, 8 },
1010  { 144, 8 }, { 150, 10 }, { 122, 10 }, { 103, 10 }, { 169, 10 },
1011  { 87, 10 }, { 185, 10 }, { 183, 10 }, { 89, 10 }, { 53, 8 },
1012  { 219, 8 }, { 213, 8 }, { 59, 8 }, { 228, 7 }, { 44, 7 },
1013  { 225, 7 }, { 47, 7 }, { 166, 10 }, { 106, 10 }, { 102, 10 },
1014  { 170, 10 }, { 149, 10 }, { 123, 10 }, { 117, 10 }, { 155, 10 },
1015  { 114, 9 }, { 158, 9 }, { 165, 10 }, { 107, 10 }, { 148, 10 },
1016  { 124, 10 }, { 81, 7 }, { 191, 7 }, { 21, 7 }, { 251, 7 },
1017  { 64, 6 }, { 192, 6 }, { 242, 7 }, { 30, 7 }, { 116, 10 },
1018  { 156, 10 }, { 71, 10 }, { 201, 10 }, { 101, 10 }, { 171, 10 },
1019  { 199, 10 }, { 73, 10 }, { 19, 8 }, { 253, 8 }, { 18, 7 },
1020  { 254, 7 }, { 182, 10 }, { 90, 10 }, { 86, 10 }, { 186, 10 },
1021  { 39, 9 }, { 233, 9 }, { 34, 8 }, { 238, 8 }, { 2, 6 },
1022  { 14, 6 }, { 177, 7 }, { 95, 7 }, { 231, 9 }, { 41, 9 },
1023  { 146, 9 }, { 126, 9 }, { 67, 8 }, { 205, 8 }, { 17, 6 },
1024  { 255, 6 }, { 241, 6 }, { 31, 6 }, { 16, 5 }, { 240, 5 },
1025  { 243, 8 }, { 29, 8 }, { 195, 8 }, { 77, 8 }, { 245, 7 },
1026  { 27, 7 }, { 7, 8 }, { 9, 8 }, { 209, 8 }, { 63, 8 },
1027  { 99, 9 }, { 173, 9 }, { 163, 9 }, { 109, 9 }, { 226, 8 },
1028  { 46, 8 }, { 212, 8 }, { 60, 8 }, { 97, 8 }, { 175, 8 },
1029  { 161, 8 }, { 111, 8 }, { 52, 8 }, { 220, 8 }, { 180, 9 },
1030  { 92, 9 }, { 50, 9 }, { 222, 9 }, { 35, 9 }, { 237, 9 },
1031  { 211, 10 }, { 61, 10 }, { 51, 10 }, { 221, 10 }, { 210, 9 },
1032  { 62, 9 }, { 84, 9 }, { 188, 9 }, { 82, 8 }, { 190, 8 },
1033  { 4, 6 }, { 12, 6 }, { 227, 9 }, { 45, 9 }, { 214, 9 },
1034  { 58, 9 }, { 54, 9 }, { 218, 9 }, { 197, 9 }, { 75, 9 },
1035  { 178, 8 }, { 94, 8 }, { 22, 8 }, { 250, 8 }, { 65, 7 },
1036  { 207, 7 }, { 80, 7 }, { 176, 7 }, { 246, 8 }, { 26, 8 },
1037  { 69, 9 }, { 203, 9 }, { 145, 9 }, { 127, 9 }, { 193, 7 },
1038  { 79, 7 }, { 37, 8 }, { 235, 8 }, { 229, 8 }, { 43, 8 },
1039  { 5, 7 }, { 11, 7 }, { 20, 7 }, { 252, 7 }, { 244, 7 },
1040  { 28, 7 }, { 1, 5 }, { 15, 5 }, { 98, 9 }, { 174, 9 },
1041  { 147, 10 }, { 125, 10 }, { 115, 10 }, { 157, 10 }, { 96, 8 },
1042  { 160, 8 }, { 113, 9 }, { 159, 9 }, { 38, 9 }, { 234, 9 },
1043  { 162, 9 }, { 110, 9 }, { 55, 10 }, { 217, 10 }, { 215, 10 },
1044  { 57, 10 }, { 48, 8 }, { 208, 8 }, { 68, 9 }, { 204, 9 },
1045  { 164, 10 }, { 108, 10 }, { 100, 10 }, { 172, 10 }, { 32, 7 },
1046  { 224, 7 }, { 0, 4 }, { 3, 8 }, { 13, 8 }, { 23, 9 },
1047  { 249, 9 }, { 230, 9 }, { 42, 9 }, { 83, 9 }, { 189, 9 },
1048  { 181, 10 }, { 91, 10 }, { 198, 10 }, { 74, 10 }, { 6, 8 },
1049  { 10, 8 }, { 66, 8 }, { 206, 8 }, { 179, 9 }, { 93, 9 },
1050  { 70, 10 }, { 202, 10 }, { 85, 10 }, { 187, 10 }, { 194, 8 },
1051  { 78, 8 }, { 196, 9 }, { 76, 9 }, { 49, 9 }, { 223, 9 },
1052  /* Coefficient table B.4.3 - 225 entries */
1053  { 193, 7 }, { 79, 7 }, { 48, 7 }, { 208, 7 }, { 6, 8 },
1054  { 10, 8 }, { 151, 10 }, { 121, 10 }, { 119, 10 }, { 153, 10 },
1055  { 167, 10 }, { 105, 10 }, { 118, 10 }, { 154, 10 }, { 103, 10 },
1056  { 169, 10 }, { 150, 10 }, { 122, 10 }, { 102, 10 }, { 170, 10 },
1057  { 183, 10 }, { 89, 10 }, { 117, 10 }, { 155, 10 }, { 149, 10 },
1058  { 123, 10 }, { 166, 10 }, { 106, 10 }, { 87, 10 }, { 185, 10 },
1059  { 116, 10 }, { 156, 10 }, { 148, 10 }, { 124, 10 }, { 71, 10 },
1060  { 201, 10 }, { 199, 10 }, { 73, 10 }, { 165, 10 }, { 107, 10 },
1061  { 182, 10 }, { 90, 10 }, { 101, 10 }, { 171, 10 }, { 86, 10 },
1062  { 186, 10 }, { 20, 7 }, { 252, 7 }, { 55, 10 }, { 217, 10 },
1063  { 147, 10 }, { 125, 10 }, { 115, 10 }, { 157, 10 }, { 215, 10 },
1064  { 57, 10 }, { 100, 10 }, { 172, 10 }, { 181, 10 }, { 91, 10 },
1065  { 198, 10 }, { 74, 10 }, { 114, 10 }, { 158, 10 }, { 244, 7 },
1066  { 28, 7 }, { 70, 10 }, { 202, 10 }, { 164, 10 }, { 108, 10 },
1067  { 85, 10 }, { 187, 10 }, { 146, 10 }, { 126, 10 }, { 39, 10 },
1068  { 233, 10 }, { 231, 10 }, { 41, 10 }, { 53, 9 }, { 219, 9 },
1069  { 54, 10 }, { 218, 10 }, { 99, 10 }, { 173, 10 }, { 214, 10 },
1070  { 58, 10 }, { 163, 10 }, { 109, 10 }, { 197, 10 }, { 75, 10 },
1071  { 84, 10 }, { 188, 10 }, { 69, 10 }, { 203, 10 }, { 113, 10 },
1072  { 159, 10 }, { 180, 10 }, { 92, 10 }, { 145, 10 }, { 127, 10 },
1073  { 98, 10 }, { 174, 10 }, { 23, 10 }, { 249, 10 }, { 247, 10 },
1074  { 25, 10 }, { 162, 10 }, { 110, 10 }, { 38, 10 }, { 234, 10 },
1075  { 230, 10 }, { 42, 10 }, { 83, 10 }, { 189, 10 }, { 179, 10 },
1076  { 93, 10 }, { 211, 10 }, { 61, 10 }, { 112, 10 }, { 144, 10 },
1077  { 51, 10 }, { 221, 10 }, { 68, 10 }, { 204, 10 }, { 213, 10 },
1078  { 59, 10 }, { 196, 10 }, { 76, 10 }, { 3, 7 }, { 13, 7 },
1079  { 66, 8 }, { 206, 8 }, { 81, 8 }, { 191, 8 }, { 32, 6 },
1080  { 224, 6 }, { 0, 2 }, { 7, 9 }, { 9, 9 }, { 97, 9 },
1081  { 175, 9 }, { 36, 8 }, { 236, 8 }, { 194, 8 }, { 78, 8 },
1082  { 177, 8 }, { 95, 8 }, { 2, 6 }, { 14, 6 }, { 21, 8 },
1083  { 251, 8 }, { 245, 8 }, { 27, 8 }, { 228, 8 }, { 44, 8 },
1084  { 22, 9 }, { 250, 9 }, { 246, 9 }, { 26, 9 }, { 49, 8 },
1085  { 223, 8 }, { 19, 8 }, { 253, 8 }, { 209, 8 }, { 63, 8 },
1086  { 243, 8 }, { 29, 8 }, { 225, 7 }, { 47, 7 }, { 64, 7 },
1087  { 192, 7 }, { 33, 7 }, { 239, 7 }, { 18, 7 }, { 254, 7 },
1088  { 242, 7 }, { 30, 7 }, { 161, 9 }, { 111, 9 }, { 178, 9 },
1089  { 94, 9 }, { 82, 9 }, { 190, 9 }, { 195, 9 }, { 77, 9 },
1090  { 52, 9 }, { 220, 9 }, { 212, 9 }, { 60, 9 }, { 67, 9 },
1091  { 205, 9 }, { 37, 9 }, { 235, 9 }, { 34, 8 }, { 238, 8 },
1092  { 226, 8 }, { 46, 8 }, { 17, 6 }, { 255, 6 }, { 4, 7 },
1093  { 12, 7 }, { 80, 8 }, { 176, 8 }, { 229, 9 }, { 43, 9 },
1094  { 35, 9 }, { 237, 9 }, { 16, 5 }, { 240, 5 }, { 241, 6 },
1095  { 31, 6 }, { 227, 9 }, { 45, 9 }, { 210, 9 }, { 62, 9 },
1096  { 50, 9 }, { 222, 9 }, { 96, 9 }, { 160, 9 }, { 5, 8 },
1097  { 11, 8 }, { 65, 8 }, { 207, 8 }, { 1, 5 }, { 15, 5 },
1098  /* Coefficient table B.4.4 - 225 entries */
1099  { 3, 7 }, { 13, 7 }, { 4, 7 }, { 12, 7 }, { 151, 10 },
1100  { 121, 10 }, { 119, 10 }, { 153, 10 }, { 103, 10 }, { 169, 10 },
1101  { 167, 10 }, { 105, 10 }, { 150, 10 }, { 122, 10 }, { 118, 10 },
1102  { 154, 10 }, { 117, 10 }, { 155, 10 }, { 102, 10 }, { 170, 10 },
1103  { 5, 8 }, { 11, 8 }, { 183, 10 }, { 89, 10 }, { 87, 10 },
1104  { 185, 10 }, { 166, 10 }, { 106, 10 }, { 149, 10 }, { 123, 10 },
1105  { 17, 5 }, { 255, 5 }, { 1, 4 }, { 15, 4 }, { 241, 5 },
1106  { 31, 5 }, { 116, 10 }, { 156, 10 }, { 148, 10 }, { 124, 10 },
1107  { 199, 10 }, { 73, 10 }, { 182, 10 }, { 90, 10 }, { 71, 10 },
1108  { 201, 10 }, { 86, 10 }, { 186, 10 }, { 101, 10 }, { 171, 10 },
1109  { 115, 10 }, { 157, 10 }, { 165, 10 }, { 107, 10 }, { 215, 10 },
1110  { 57, 10 }, { 55, 10 }, { 217, 10 }, { 70, 10 }, { 202, 10 },
1111  { 147, 10 }, { 125, 10 }, { 85, 10 }, { 187, 10 }, { 164, 10 },
1112  { 108, 10 }, { 198, 10 }, { 74, 10 }, { 100, 10 }, { 172, 10 },
1113  { 114, 10 }, { 158, 10 }, { 39, 10 }, { 233, 10 }, { 146, 10 },
1114  { 126, 10 }, { 99, 10 }, { 173, 10 }, { 181, 10 }, { 91, 10 },
1115  { 231, 10 }, { 41, 10 }, { 163, 10 }, { 109, 10 }, { 54, 10 },
1116  { 218, 10 }, { 214, 10 }, { 58, 10 }, { 113, 10 }, { 159, 10 },
1117  { 23, 10 }, { 249, 10 }, { 145, 10 }, { 127, 10 }, { 180, 10 },
1118  { 92, 10 }, { 84, 10 }, { 188, 10 }, { 247, 10 }, { 25, 10 },
1119  { 32, 6 }, { 224, 6 }, { 197, 10 }, { 75, 10 }, { 98, 10 },
1120  { 174, 10 }, { 112, 10 }, { 144, 10 }, { 162, 10 }, { 110, 10 },
1121  { 69, 10 }, { 203, 10 }, { 38, 10 }, { 234, 10 }, { 230, 10 },
1122  { 42, 10 }, { 7, 10 }, { 9, 10 }, { 213, 10 }, { 59, 10 },
1123  { 83, 10 }, { 189, 10 }, { 179, 10 }, { 93, 10 }, { 53, 10 },
1124  { 219, 10 }, { 97, 10 }, { 175, 10 }, { 68, 10 }, { 204, 10 },
1125  { 196, 10 }, { 76, 10 }, { 161, 10 }, { 111, 10 }, { 22, 10 },
1126  { 250, 10 }, { 246, 10 }, { 26, 10 }, { 82, 10 }, { 190, 10 },
1127  { 96, 10 }, { 160, 10 }, { 178, 10 }, { 94, 10 }, { 37, 10 },
1128  { 235, 10 }, { 67, 10 }, { 205, 10 }, { 51, 10 }, { 221, 10 },
1129  { 229, 10 }, { 43, 10 }, { 6, 10 }, { 10, 10 }, { 211, 10 },
1130  { 61, 10 }, { 212, 10 }, { 60, 10 }, { 195, 10 }, { 77, 10 },
1131  { 52, 10 }, { 220, 10 }, { 81, 10 }, { 191, 10 }, { 177, 10 },
1132  { 95, 10 }, { 65, 8 }, { 207, 8 }, { 21, 10 }, { 251, 10 },
1133  { 245, 10 }, { 27, 10 }, { 194, 10 }, { 78, 10 }, { 228, 10 },
1134  { 44, 10 }, { 193, 8 }, { 79, 8 }, { 20, 8 }, { 252, 8 },
1135  { 0, 2 }, { 2, 6 }, { 14, 6 }, { 19, 8 }, { 253, 8 },
1136  { 49, 8 }, { 223, 8 }, { 209, 8 }, { 63, 8 }, { 244, 8 },
1137  { 28, 8 }, { 66, 10 }, { 206, 10 }, { 210, 10 }, { 62, 10 },
1138  { 36, 9 }, { 236, 9 }, { 243, 8 }, { 29, 8 }, { 33, 7 },
1139  { 239, 7 }, { 225, 7 }, { 47, 7 }, { 64, 8 }, { 192, 8 },
1140  { 80, 9 }, { 176, 9 }, { 50, 9 }, { 222, 9 }, { 18, 7 },
1141  { 254, 7 }, { 242, 7 }, { 30, 7 }, { 48, 8 }, { 208, 8 },
1142  { 226, 8 }, { 46, 8 }, { 34, 8 }, { 238, 8 }, { 227, 9 },
1143  { 45, 9 }, { 35, 9 }, { 237, 9 }, { 16, 5 }, { 240, 5 },
1144  /* Coefficient table B.5.2 - 31 entries */
1145  { 3, 4 }, { 29, 4 }, { 5, 5 }, { 27, 5 }, { 10, 5 },
1146  { 22, 5 }, { 13, 6 }, { 19, 6 }, { 7, 6 }, { 25, 6 },
1147  { 4, 5 }, { 28, 5 }, { 2, 4 }, { 30, 4 }, { 9, 5 },
1148  { 23, 5 }, { 12, 6 }, { 20, 6 }, { 15, 7 }, { 17, 7 },
1149  { 14, 7 }, { 18, 7 }, { 8, 5 }, { 24, 5 }, { 6, 6 },
1150  { 26, 6 }, { 11, 6 }, { 21, 6 }, { 0, 3 }, { 1, 4 },
1151  { 31, 4 },
1152  /* Coefficient table B.5.3 - 31 entries */
1153  { 1, 3 }, { 31, 3 }, { 7, 6 }, { 25, 6 }, { 13, 7 },
1154  { 19, 7 }, { 12, 7 }, { 20, 7 }, { 10, 6 }, { 22, 6 },
1155  { 6, 6 }, { 26, 6 }, { 2, 4 }, { 30, 4 }, { 0, 2 },
1156  { 4, 5 }, { 28, 5 }, { 15, 8 }, { 17, 8 }, { 14, 8 },
1157  { 18, 8 }, { 11, 7 }, { 21, 7 }, { 9, 6 }, { 23, 6 },
1158  { 3, 5 }, { 29, 5 }, { 8, 6 }, { 24, 6 }, { 5, 6 },
1159  { 27, 6 },
1160  /* Coefficient table B.5.4 - 31 entries */
1161  { 3, 4 }, { 29, 4 }, { 9, 6 }, { 23, 6 }, { 8, 6 },
1162  { 24, 6 }, { 13, 8 }, { 19, 8 }, { 12, 8 }, { 20, 8 },
1163  { 10, 7 }, { 22, 7 }, { 6, 6 }, { 26, 6 }, { 1, 3 },
1164  { 31, 3 }, { 2, 4 }, { 30, 4 }, { 4, 5 }, { 28, 5 },
1165  { 15, 9 }, { 17, 9 }, { 14, 9 }, { 18, 9 }, { 11, 8 },
1166  { 21, 8 }, { 7, 7 }, { 25, 7 }, { 5, 6 }, { 27, 6 },
1167  { 0, 2 },
1168  /* Coefficient table B.6.2 - 63 entries */
1169  { 11, 6 }, { 53, 6 }, { 21, 6 }, { 43, 6 }, { 27, 7 },
1170  { 37, 7 }, { 26, 7 }, { 38, 7 }, { 10, 6 }, { 54, 6 },
1171  { 5, 5 }, { 59, 5 }, { 20, 6 }, { 44, 6 }, { 9, 6 },
1172  { 55, 6 }, { 15, 7 }, { 49, 7 }, { 25, 7 }, { 39, 7 },
1173  { 19, 6 }, { 45, 6 }, { 4, 5 }, { 60, 5 }, { 1, 4 },
1174  { 63, 4 }, { 14, 7 }, { 50, 7 }, { 24, 7 }, { 40, 7 },
1175  { 8, 6 }, { 56, 6 }, { 18, 6 }, { 46, 6 }, { 31, 8 },
1176  { 33, 8 }, { 30, 8 }, { 34, 8 }, { 13, 7 }, { 51, 7 },
1177  { 3, 5 }, { 61, 5 }, { 23, 7 }, { 41, 7 }, { 12, 7 },
1178  { 52, 7 }, { 7, 6 }, { 57, 6 }, { 16, 6 }, { 48, 6 },
1179  { 17, 6 }, { 47, 6 }, { 0, 4 }, { 2, 5 }, { 62, 5 },
1180  { 22, 7 }, { 42, 7 }, { 29, 8 }, { 35, 8 }, { 28, 8 },
1181  { 36, 8 }, { 6, 6 }, { 58, 6 },
1182  /* Coefficient table B.6.3 - 63 entries */
1183  { 6, 5 }, { 58, 5 }, { 10, 6 }, { 54, 6 }, { 16, 6 },
1184  { 48, 6 }, { 17, 6 }, { 47, 6 }, { 21, 7 }, { 43, 7 },
1185  { 14, 7 }, { 50, 7 }, { 5, 5 }, { 59, 5 }, { 2, 4 },
1186  { 62, 4 }, { 9, 6 }, { 55, 6 }, { 25, 8 }, { 39, 8 },
1187  { 31, 9 }, { 33, 9 }, { 30, 9 }, { 34, 9 }, { 20, 7 },
1188  { 44, 7 }, { 8, 6 }, { 56, 6 }, { 13, 7 }, { 51, 7 },
1189  { 19, 7 }, { 45, 7 }, { 4, 5 }, { 60, 5 }, { 24, 8 },
1190  { 40, 8 }, { 29, 9 }, { 35, 9 }, { 28, 9 }, { 36, 9 },
1191  { 12, 7 }, { 52, 7 }, { 7, 6 }, { 57, 6 }, { 3, 5 },
1192  { 61, 5 }, { 18, 7 }, { 46, 7 }, { 23, 8 }, { 41, 8 },
1193  { 22, 8 }, { 42, 8 }, { 11, 7 }, { 53, 7 }, { 15, 8 },
1194  { 49, 8 }, { 27, 9 }, { 37, 9 }, { 26, 9 }, { 38, 9 },
1195  { 0, 3 }, { 1, 4 }, { 63, 4 },
1196  /* Coefficient table B.6.4 - 63 entries */
1197  { 1, 3 }, { 63, 3 }, { 14, 7 }, { 50, 7 }, { 18, 7 },
1198  { 46, 7 }, { 27, 9 }, { 37, 9 }, { 26, 9 }, { 38, 9 },
1199  { 21, 8 }, { 43, 8 }, { 13, 7 }, { 51, 7 }, { 9, 6 },
1200  { 55, 6 }, { 17, 7 }, { 47, 7 }, { 31, 10 }, { 33, 10 },
1201  { 30, 10 }, { 34, 10 }, { 25, 9 }, { 39, 9 }, { 20, 8 },
1202  { 44, 8 }, { 5, 5 }, { 59, 5 }, { 16, 7 }, { 48, 7 },
1203  { 12, 7 }, { 52, 7 }, { 8, 6 }, { 56, 6 }, { 2, 4 },
1204  { 62, 4 }, { 4, 5 }, { 60, 5 }, { 24, 9 }, { 40, 9 },
1205  { 29, 10 }, { 35, 10 }, { 28, 10 }, { 36, 10 }, { 15, 8 },
1206  { 49, 8 }, { 11, 7 }, { 53, 7 }, { 7, 6 }, { 57, 6 },
1207  { 19, 8 }, { 45, 8 }, { 23, 9 }, { 41, 9 }, { 22, 9 },
1208  { 42, 9 }, { 10, 7 }, { 54, 7 }, { 6, 6 }, { 58, 6 },
1209  { 3, 5 }, { 61, 5 }, { 0, 3 },
1210  /* Coefficient table B.7.2 - 127 entries */
1211  { 3, 5 }, { 125, 5 }, { 42, 7 }, { 86, 7 }, { 21, 7 },
1212  { 107, 7 }, { 11, 6 }, { 117, 6 }, { 41, 7 }, { 87, 7 },
1213  { 20, 7 }, { 108, 7 }, { 53, 8 }, { 75, 8 }, { 31, 8 },
1214  { 97, 8 }, { 40, 7 }, { 88, 7 }, { 52, 8 }, { 76, 8 },
1215  { 51, 8 }, { 77, 8 }, { 19, 7 }, { 109, 7 }, { 10, 6 },
1216  { 118, 6 }, { 30, 8 }, { 98, 8 }, { 29, 8 }, { 99, 8 },
1217  { 18, 7 }, { 110, 7 }, { 9, 6 }, { 119, 6 }, { 39, 7 },
1218  { 89, 7 }, { 17, 7 }, { 111, 7 }, { 28, 8 }, { 100, 8 },
1219  { 50, 8 }, { 78, 8 }, { 38, 7 }, { 90, 7 }, { 2, 5 },
1220  { 126, 5 }, { 8, 6 }, { 120, 6 }, { 49, 8 }, { 79, 8 },
1221  { 48, 8 }, { 80, 8 }, { 16, 7 }, { 112, 7 }, { 37, 7 },
1222  { 91, 7 }, { 63, 9 }, { 65, 9 }, { 62, 9 }, { 66, 9 },
1223  { 27, 8 }, { 101, 8 }, { 7, 6 }, { 121, 6 }, { 36, 7 },
1224  { 92, 7 }, { 26, 8 }, { 102, 8 }, { 47, 8 }, { 81, 8 },
1225  { 61, 9 }, { 67, 9 }, { 60, 9 }, { 68, 9 }, { 46, 8 },
1226  { 82, 8 }, { 15, 7 }, { 113, 7 }, { 6, 6 }, { 122, 6 },
1227  { 25, 8 }, { 103, 8 }, { 45, 8 }, { 83, 8 }, { 35, 7 },
1228  { 93, 7 }, { 1, 5 }, { 127, 5 }, { 14, 7 }, { 114, 7 },
1229  { 59, 9 }, { 69, 9 }, { 58, 9 }, { 70, 9 }, { 24, 8 },
1230  { 104, 8 }, { 5, 6 }, { 123, 6 }, { 32, 7 }, { 96, 7 },
1231  { 34, 7 }, { 94, 7 }, { 13, 7 }, { 115, 7 }, { 23, 8 },
1232  { 105, 8 }, { 44, 8 }, { 84, 8 }, { 4, 6 }, { 124, 6 },
1233  { 57, 9 }, { 71, 9 }, { 56, 9 }, { 72, 9 }, { 43, 8 },
1234  { 85, 8 }, { 12, 7 }, { 116, 7 }, { 0, 5 }, { 33, 7 },
1235  { 95, 7 }, { 22, 8 }, { 106, 8 }, { 55, 9 }, { 73, 9 },
1236  { 54, 9 }, { 74, 9 },
1237  /* Coefficient table B.7.3 - 127 entries */
1238  { 0, 3 }, { 4, 5 }, { 124, 5 }, { 19, 7 }, { 109, 7 },
1239  { 29, 8 }, { 99, 8 }, { 51, 9 }, { 77, 9 }, { 62, 10 },
1240  { 66, 10 }, { 63, 10 }, { 65, 10 }, { 28, 8 }, { 100, 8 },
1241  { 41, 8 }, { 87, 8 }, { 33, 7 }, { 95, 7 }, { 10, 6 },
1242  { 118, 6 }, { 18, 7 }, { 110, 7 }, { 40, 8 }, { 88, 8 },
1243  { 27, 8 }, { 101, 8 }, { 9, 6 }, { 119, 6 }, { 17, 7 },
1244  { 111, 7 }, { 50, 9 }, { 78, 9 }, { 61, 10 }, { 67, 10 },
1245  { 60, 10 }, { 68, 10 }, { 26, 8 }, { 102, 8 }, { 1, 4 },
1246  { 127, 4 }, { 3, 5 }, { 125, 5 }, { 39, 8 }, { 89, 8 },
1247  { 49, 9 }, { 79, 9 }, { 48, 9 }, { 80, 9 }, { 16, 7 },
1248  { 112, 7 }, { 8, 6 }, { 120, 6 }, { 25, 8 }, { 103, 8 },
1249  { 38, 8 }, { 90, 8 }, { 15, 7 }, { 113, 7 }, { 7, 6 },
1250  { 121, 6 }, { 59, 10 }, { 69, 10 }, { 58, 10 }, { 70, 10 },
1251  { 47, 9 }, { 81, 9 }, { 24, 8 }, { 104, 8 }, { 37, 8 },
1252  { 91, 8 }, { 23, 8 }, { 105, 8 }, { 14, 7 }, { 114, 7 },
1253  { 46, 9 }, { 82, 9 }, { 57, 10 }, { 71, 10 }, { 56, 10 },
1254  { 72, 10 }, { 36, 8 }, { 92, 8 }, { 2, 5 }, { 126, 5 },
1255  { 6, 6 }, { 122, 6 }, { 45, 9 }, { 83, 9 }, { 31, 9 },
1256  { 97, 9 }, { 22, 8 }, { 106, 8 }, { 13, 7 }, { 115, 7 },
1257  { 21, 8 }, { 107, 8 }, { 55, 10 }, { 73, 10 }, { 54, 10 },
1258  { 74, 10 }, { 44, 9 }, { 84, 9 }, { 12, 7 }, { 116, 7 },
1259  { 5, 6 }, { 123, 6 }, { 35, 8 }, { 93, 8 }, { 43, 9 },
1260  { 85, 9 }, { 30, 9 }, { 98, 9 }, { 20, 8 }, { 108, 8 },
1261  { 53, 10 }, { 75, 10 }, { 52, 10 }, { 76, 10 }, { 42, 9 },
1262  { 86, 9 }, { 34, 8 }, { 94, 8 }, { 32, 8 }, { 96, 8 },
1263  { 11, 7 }, { 117, 7 },
1264  /* Coefficient table B.7.4 - 127 entries */
1265  { 28, 8 }, { 100, 8 }, { 27, 8 }, { 101, 8 }, { 36, 8 },
1266  { 92, 8 }, { 63, 10 }, { 65, 10 }, { 61, 10 }, { 67, 10 },
1267  { 62, 10 }, { 66, 10 }, { 60, 10 }, { 68, 10 }, { 19, 7 },
1268  { 109, 7 }, { 59, 10 }, { 69, 10 }, { 58, 10 }, { 70, 10 },
1269  { 57, 10 }, { 71, 10 }, { 56, 10 }, { 72, 10 }, { 55, 10 },
1270  { 73, 10 }, { 53, 10 }, { 75, 10 }, { 54, 10 }, { 74, 10 },
1271  { 52, 10 }, { 76, 10 }, { 5, 5 }, { 123, 5 }, { 0, 3 },
1272  { 51, 10 }, { 77, 10 }, { 50, 10 }, { 78, 10 }, { 49, 10 },
1273  { 79, 10 }, { 48, 10 }, { 80, 10 }, { 47, 10 }, { 81, 10 },
1274  { 46, 10 }, { 82, 10 }, { 43, 9 }, { 85, 9 }, { 18, 7 },
1275  { 110, 7 }, { 11, 6 }, { 117, 6 }, { 26, 8 }, { 102, 8 },
1276  { 35, 8 }, { 93, 8 }, { 25, 8 }, { 103, 8 }, { 42, 9 },
1277  { 86, 9 }, { 41, 9 }, { 87, 9 }, { 10, 6 }, { 118, 6 },
1278  { 4, 5 }, { 124, 5 }, { 17, 7 }, { 111, 7 }, { 34, 8 },
1279  { 94, 8 }, { 24, 8 }, { 104, 8 }, { 9, 6 }, { 119, 6 },
1280  { 1, 4 }, { 127, 4 }, { 16, 7 }, { 112, 7 }, { 32, 8 },
1281  { 96, 8 }, { 33, 8 }, { 95, 8 }, { 23, 8 }, { 105, 8 },
1282  { 40, 9 }, { 88, 9 }, { 31, 9 }, { 97, 9 }, { 15, 7 },
1283  { 113, 7 }, { 8, 6 }, { 120, 6 }, { 39, 9 }, { 89, 9 },
1284  { 45, 10 }, { 83, 10 }, { 44, 10 }, { 84, 10 }, { 22, 8 },
1285  { 106, 8 }, { 14, 7 }, { 114, 7 }, { 3, 5 }, { 125, 5 },
1286  { 7, 6 }, { 121, 6 }, { 30, 9 }, { 98, 9 }, { 38, 9 },
1287  { 90, 9 }, { 21, 8 }, { 107, 8 }, { 13, 7 }, { 115, 7 },
1288  { 29, 9 }, { 99, 9 }, { 37, 9 }, { 91, 9 }, { 20, 8 },
1289  { 108, 8 }, { 12, 7 }, { 116, 7 }, { 6, 6 }, { 122, 6 },
1290  { 2, 5 }, { 126, 5 },
1291 };
1292 
1293 static const HuffmanCodebook at9_huffman_coeffs[][8][4] = {
1294  {
1295  { { 0 } },
1296  { { 0 } },
1297  {
1298  { 8, 2, 1, 2 },
1299  { 80, 4, 2, 2 },
1300  { 81, 4, 2, 2 },
1301  { 81, 4, 2, 2 },
1302  },
1303  {
1304  { 40, 2, 1, 3 },
1305  { 49, 2, 1, 3 },
1306  { 49, 2, 1, 3 },
1307  { 49, 2, 1, 3 },
1308  },
1309  {
1310  { 176, 2, 1, 4 },
1311  { 225, 2, 1, 4 },
1312  { 225, 2, 1, 4 },
1313  { 225, 2, 1, 4 },
1314  },
1315  {
1316  { 31, 1, 0, 5 },
1317  { 31, 1, 0, 5 },
1318  { 31, 1, 0, 5 },
1319  { 31, 1, 0, 5 },
1320  },
1321  {
1322  { 63, 1, 0, 6 },
1323  { 63, 1, 0, 6 },
1324  { 63, 1, 0, 6 },
1325  { 63, 1, 0, 6 },
1326  },
1327  {
1328  { 127, 1, 0, 7 },
1329  { 127, 1, 0, 7 },
1330  { 127, 1, 0, 7 },
1331  { 127, 1, 0, 7 },
1332  },
1333  },
1334  {
1335  { { 0 } },
1336  { { 0 } },
1337  {
1338  { 0 },
1339  { 80, 4, 2, 2 },
1340  { 81, 4, 2, 2 },
1341  { 81, 4, 2, 2 },
1342  },
1343  {
1344  { 0 },
1345  { 49, 2, 1, 3 },
1346  { 49, 2, 1, 3 },
1347  { 49, 2, 1, 3 },
1348  },
1349  {
1350  { 0 },
1351  { 225, 2, 1, 4 },
1352  { 225, 2, 1, 4 },
1353  { 225, 2, 1, 4 },
1354  },
1355  {
1356  { 0 },
1357  { 31, 1, 0, 5 },
1358  { 31, 1, 0, 5 },
1359  { 31, 1, 0, 5 },
1360  },
1361  {
1362  { 0 },
1363  { 63, 1, 0, 6 },
1364  { 63, 1, 0, 6 },
1365  { 63, 1, 0, 6 },
1366  },
1367  {
1368  { 0 },
1369  { 127, 1, 0, 7 },
1370  { 127, 1, 0, 7 },
1371  { 127, 1, 0, 7 },
1372  },
1373  },
1374 };
1375 
1376 #endif /* AVCODEC_ATRAC9TAB_H */
AV_CHANNEL_LAYOUT_STEREO
#define AV_CHANNEL_LAYOUT_STEREO
Definition: channel_layout.h:379
HuffmanCodebook::size
const int size
Definition: atrac9tab.h:425
at9_band_ext_scales_m2
static const float at9_band_ext_scales_m2[]
Definition: atrac9tab.h:271
ATRAC9BlockConfig::count
int count
Definition: atrac9tab.h:39
at9_tab_samplerates
static const int at9_tab_samplerates[]
Definition: atrac9tab.h:116
at9_block_layout
static const ATRAC9BlockConfig at9_block_layout[]
Definition: atrac9tab.h:42
HuffmanCodebook::value_cnt
const int value_cnt
Definition: atrac9tab.h:426
at9_tab_band_ext_cnt
static const uint8_t at9_tab_band_ext_cnt[][6]
Definition: atrac9tab.h:121
ATRAC9BlockConfig::type
enum ATRAC9BlockType type[5]
Definition: atrac9tab.h:37
HuffmanCodebook::value_cnt_pow
const int value_cnt_pow
Definition: atrac9tab.h:427
ATRAC9_BLOCK_TYPE_LFE
@ ATRAC9_BLOCK_TYPE_LFE
Definition: atrac9tab.h:32
at9_tab_sri_max_bands
static const uint8_t at9_tab_sri_max_bands[]
Definition: atrac9tab.h:112
AV_CHANNEL_LAYOUT_7POINT1
#define AV_CHANNEL_LAYOUT_7POINT1
Definition: channel_layout.h:401
at9_q_unit_to_codebookidx
static const uint8_t at9_q_unit_to_codebookidx[]
Definition: atrac9tab.h:107
ATRAC9BlockConfig
Definition: atrac9tab.h:35
HuffmanCodebook::value_bits
const int value_bits
Definition: atrac9tab.h:428
at9_band_ext_scales_m0
static const float at9_band_ext_scales_m0[][5][32]
Definition: atrac9tab.h:184
at9_sfb_a_tab
static const uint8_t at9_sfb_a_tab[][2]
Definition: atrac9tab.h:376
HuffmanCodebook
Definition: atrac9tab.h:424
at9_huffman_sf_unsigned
static const HuffmanCodebook at9_huffman_sf_unsigned[]
Definition: atrac9tab.h:431
f
f
Definition: af_crystalizer.c:121
AVChannelLayout
An AVChannelLayout holds information about the channel layout of audio data.
Definition: channel_layout.h:303
ATRAC9BlockConfig::plane_map
int plane_map[5][2]
Definition: atrac9tab.h:38
ATRAC9_BLOCK_TYPE_CPE
@ ATRAC9_BLOCK_TYPE_CPE
Definition: atrac9tab.h:31
at9_tab_band_q_unit_map
static const uint8_t at9_tab_band_q_unit_map[]
Definition: atrac9tab.h:93
at9_huffman_sf_signed
static const HuffmanCodebook at9_huffman_sf_signed[]
Definition: atrac9tab.h:441
at9_q_unit_to_coeff_idx
static const int at9_q_unit_to_coeff_idx[]
Definition: atrac9tab.h:102
at9_quant_step_coarse
static const float at9_quant_step_coarse[]
Definition: atrac9tab.h:306
at9_tab_band_ext_lengths
static const uint8_t at9_tab_band_ext_lengths[][6][4]
Definition: atrac9tab.h:141
AV_CHANNEL_LAYOUT_QUAD
#define AV_CHANNEL_LAYOUT_QUAD
Definition: channel_layout.h:387
at9_band_ext_scales_m3
static const float at9_band_ext_scales_m3[][2]
Definition: atrac9tab.h:290
at9_scalefactor_c
static const float at9_scalefactor_c[]
Definition: atrac9tab.h:324
at9_band_ext_scales_m4
static const float at9_band_ext_scales_m4[]
Definition: atrac9tab.h:301
ATRAC9BlockConfig::channel_layout
AVChannelLayout channel_layout
Definition: atrac9tab.h:36
at9_coeffs_tab
static const uint8_t at9_coeffs_tab[][2]
Definition: atrac9tab.h:450
channel_layout.h
ATRAC9BlockType
ATRAC9BlockType
Definition: atrac9tab.h:29
at9_quant_step_fine
static const float at9_quant_step_fine[]
Definition: atrac9tab.h:315
ATRAC9_BLOCK_TYPE_SCE
@ ATRAC9_BLOCK_TYPE_SCE
Definition: atrac9tab.h:30
at9_tab_sf_weights
static const uint8_t at9_tab_sf_weights[][32]
Definition: atrac9tab.h:335
at9_tab_band_ext_group
static const uint8_t at9_tab_band_ext_group[][3]
Definition: atrac9tab.h:130
AV_CHANNEL_LAYOUT_MONO
#define AV_CHANNEL_LAYOUT_MONO
Definition: channel_layout.h:378
at9_sfb_b_tab
static const uint8_t at9_sfb_b_tab[][2]
Definition: atrac9tab.h:407
AV_CHANNEL_LAYOUT_5POINT1
#define AV_CHANNEL_LAYOUT_5POINT1
Definition: channel_layout.h:389
at9_tab_b_dist
static const uint8_t at9_tab_b_dist[]
Definition: atrac9tab.h:370
at9_huffman_coeffs
static const HuffmanCodebook at9_huffman_coeffs[][8][4]
Definition: atrac9tab.h:1293
at9_tab_sri_frame_log2
static const uint8_t at9_tab_sri_frame_log2[]
Definition: atrac9tab.h:89
at9_q_unit_to_coeff_cnt
static const uint8_t at9_q_unit_to_coeff_cnt[]
Definition: atrac9tab.h:97