xref: /third_party/ffmpeg/libavcodec/atrac9tab.h (revision cabdff1a)
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
27#include "libavutil/channel_layout.h"
28
29enum ATRAC9BlockType {
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
35typedef struct ATRAC9BlockConfig {
36    AVChannelLayout channel_layout;
37    enum ATRAC9BlockType type[5];
38    int plane_map[5][2];
39    int count;
40} ATRAC9BlockConfig;
41
42static const ATRAC9BlockConfig at9_block_layout[] = {
43    { /* Mono */
44        .channel_layout  = AV_CHANNEL_LAYOUT_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,
51                             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,
64                             ATRAC9_BLOCK_TYPE_SCE,
65                             ATRAC9_BLOCK_TYPE_LFE,
66                             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,
73                             ATRAC9_BLOCK_TYPE_SCE,
74                             ATRAC9_BLOCK_TYPE_LFE,
75                             ATRAC9_BLOCK_TYPE_CPE,
76                             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,
83                             ATRAC9_BLOCK_TYPE_CPE, },
84        .plane_map       = { { 0, 1 }, { 2, 3 }, },
85        .count           = 2,
86    },
87};
88
89static 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
93static 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
97static 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
102static 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
107static 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
112static 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
116static 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
121static 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 */
130static 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
141static 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
184static 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
271static 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
290static 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
301static 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
306static 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
315static 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
324static 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
335static 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
370static 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
376static 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
407static 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
424typedef struct HuffmanCodebook {
425    const int size;
426    const int value_cnt;
427    const int value_cnt_pow;
428    const int value_bits;
429} HuffmanCodebook;
430
431static const HuffmanCodebook at9_huffman_sf_unsigned[] = {
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
441static const HuffmanCodebook at9_huffman_sf_signed[] = {
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
450static 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
1293static 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 */
1377