asfdec: also read Metadata Library Object
[FFMpeg-mirror/mplayer-patches.git] / libavcodec / dnxhddata.c
blob96895daf62411c96101ec37c1cafeee2cbb3ddb0
1 /*
2 * VC3/DNxHD data.
3 * Copyright (c) 2007 SmartJog S.A., Baptiste Coudurier <baptiste dot coudurier at smartjog dot com>
5 * This file is part of Libav.
7 * Libav 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.
12 * Libav 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.
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with Libav; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 #include "avcodec.h"
23 #include "dnxhddata.h"
24 #include "libavutil/common.h"
26 static const uint8_t dnxhd_1235_luma_weight[] = {
27 0, 32, 32, 32, 33, 35, 38, 39,
28 32, 33, 32, 33, 36, 36, 39, 42,
29 32, 32, 33, 36, 35, 37, 41, 43,
30 31, 33, 34, 36, 36, 40, 42, 48,
31 32, 34, 36, 37, 39, 42, 46, 51,
32 36, 37, 37, 39, 41, 46, 51, 55,
33 37, 39, 41, 41, 47, 50, 55, 56,
34 41, 42, 41, 44, 50, 53, 60, 60
37 static const uint8_t dnxhd_1235_chroma_weight[] = {
38 0, 32, 33, 34, 39, 41, 54, 59,
39 33, 34, 35, 38, 43, 49, 58, 84,
40 34, 37, 39, 44, 46, 55, 74, 87,
41 40, 42, 47, 48, 58, 70, 87, 86,
42 43, 50, 56, 63, 72, 94, 91, 82,
43 55, 63, 65, 75, 93, 89, 85, 73,
44 61, 67, 82, 81, 83, 90, 79, 73,
45 74, 84, 75, 78, 90, 85, 73, 73
48 static const uint8_t dnxhd_1237_luma_weight[] = {
49 0, 32, 33, 34, 34, 36, 37, 36,
50 36, 37, 38, 38, 38, 39, 41, 44,
51 43, 41, 40, 41, 46, 49, 47, 46,
52 47, 49, 51, 54, 60, 62, 59, 55,
53 54, 56, 58, 61, 65, 66, 64, 63,
54 66, 73, 78, 79, 80, 79, 78, 78,
55 82, 87, 89, 90, 93, 95, 96, 97,
56 97, 100, 104, 102, 98, 98, 99, 99,
59 static const uint8_t dnxhd_1237_chroma_weight[] = {
60 0, 32, 36, 39, 39, 38, 39, 41,
61 45, 51, 57, 58, 53, 48, 47, 51,
62 55, 58, 66, 75, 81, 83, 82, 78,
63 73, 72, 74, 77, 83, 85, 83, 82,
64 89, 99, 96, 90, 94, 97, 99, 105,
65 109, 105, 95, 89, 92, 95, 94, 93,
66 92, 88, 89, 90, 93, 95, 96, 97,
67 97, 100, 104, 102, 98, 98, 99, 99,
70 static const uint8_t dnxhd_1238_luma_weight[] = {
71 0, 32, 32, 33, 34, 33, 33, 33,
72 33, 33, 33, 33, 33, 35, 37, 37,
73 36, 36, 35, 36, 38, 38, 36, 35,
74 36, 37, 38, 41, 42, 41, 39, 38,
75 38, 38, 39, 41, 42, 41, 39, 39,
76 40, 41, 43, 44, 44, 44, 44, 44,
77 45, 47, 47, 47, 49, 50, 51, 51,
78 51, 53, 55, 57, 58, 59, 57, 57,
81 static const uint8_t dnxhd_1238_chroma_weight[] = {
82 0, 32, 35, 35, 35, 34, 34, 35,
83 39, 43, 45, 45, 41, 39, 40, 41,
84 42, 44, 48, 55, 59, 63, 65, 59,
85 53, 52, 52, 55, 61, 62, 58, 58,
86 63, 66, 66, 65, 70, 74, 70, 66,
87 65, 68, 75, 77, 74, 74, 77, 76,
88 73, 73, 73, 73, 76, 80, 89, 90,
89 82, 77, 80, 86, 84, 82, 82, 82,
92 static const uint8_t dnxhd_1241_luma_weight[] = {
93 0, 32, 33, 34, 34, 35, 36, 37,
94 36, 37, 38, 38, 38, 39, 39, 40,
95 40, 38, 38, 39, 38, 37, 39, 41,
96 41, 42, 43, 45, 45, 46, 47, 46,
97 45, 43, 39, 37, 37, 40, 44, 45,
98 45, 46, 46, 46, 47, 47, 46, 44,
99 42, 43, 45, 47, 48, 49, 50, 49,
100 48, 46, 47, 48, 48, 49, 49, 49,
103 static const uint8_t dnxhd_1241_chroma_weight[] = {
104 0, 32, 36, 38, 37, 37, 40, 41,
105 40, 40, 42, 42, 41, 41, 41, 41,
106 42, 43, 44, 44, 45, 46, 46, 45,
107 44, 45, 45, 45, 45, 46, 47, 46,
108 45, 44, 42, 41, 43, 45, 45, 47,
109 48, 48, 48, 46, 47, 47, 46, 47,
110 46, 45, 45, 47, 48, 49, 50, 49,
111 48, 46, 48, 49, 48, 49, 49, 49,
114 static const uint8_t dnxhd_1242_luma_weight[] = {
115 0, 32, 33, 33, 34, 35, 36, 35,
116 33, 33, 35, 36, 37, 37, 38, 37,
117 37, 37, 36, 37, 37, 37, 38, 39,
118 37, 36, 37, 40, 42, 45, 46, 44,
119 41, 42, 44, 45, 47, 49, 50, 48,
120 46, 48, 49, 50, 52, 52, 50, 49,
121 47, 48, 50, 50, 51, 51, 50, 49,
122 49, 51, 52, 51, 49, 47, 47, 47,
125 static const uint8_t dnxhd_1242_chroma_weight[] = {
126 0, 32, 37, 42, 45, 45, 45, 44,
127 38, 37, 40, 42, 44, 49, 51, 47,
128 41, 40, 43, 44, 46, 48, 51, 54,
129 51, 47, 47, 45, 47, 50, 51, 49,
130 46, 47, 49, 47, 50, 55, 55, 51,
131 48, 49, 51, 51, 52, 52, 54, 54,
132 49, 49, 52, 53, 54, 54, 53, 53,
133 55, 59, 63, 62, 60, 60, 60, 60,
136 static const uint8_t dnxhd_1243_luma_weight[] = {
137 0, 32, 32, 33, 33, 35, 35, 35,
138 35, 35, 35, 35, 34, 35, 38, 40,
139 39, 37, 37, 37, 36, 35, 36, 38,
140 40, 41, 42, 44, 45, 44, 42, 41,
141 40, 38, 36, 36, 37, 38, 40, 43,
142 44, 45, 45, 45, 45, 45, 45, 41,
143 39, 41, 45, 47, 47, 48, 48, 48,
144 46, 44, 45, 47, 47, 48, 47, 47,
147 static const uint8_t dnxhd_1243_chroma_weight[] = {
148 0, 32, 36, 37, 36, 37, 39, 39,
149 41, 43, 43, 42, 41, 41, 41, 42,
150 43, 43, 43, 44, 44, 44, 46, 47,
151 46, 45, 45, 45, 45, 46, 44, 44,
152 45, 44, 42, 41, 43, 46, 45, 44,
153 45, 45, 45, 46, 46, 46, 45, 44,
154 45, 44, 45, 47, 47, 48, 49, 48,
155 46, 45, 46, 47, 47, 48, 47, 47,
158 static const uint8_t dnxhd_1250_luma_weight[] = {
159 0, 32, 35, 35, 36, 36, 41, 43,
160 32, 34, 35, 36, 37, 39, 43, 47,
161 33, 34, 36, 38, 38, 42, 42, 50,
162 34, 36, 38, 38, 41, 40, 47, 54,
163 35, 38, 39, 40, 39, 45, 49, 58,
164 38, 39, 40, 39, 46, 47, 54, 60,
165 38, 39, 41, 46, 46, 48, 57, 62,
166 40, 41, 44, 45, 49, 54, 63, 63
169 static const uint8_t dnxhd_1250_chroma_weight[] = {
170 0, 32, 35, 36, 40, 42, 51, 51,
171 35, 36, 39, 39, 43, 51, 52, 55,
172 36, 41, 41, 43, 51, 53, 54, 56,
173 43, 44, 45, 50, 54, 54, 55, 57,
174 45, 48, 50, 51, 55, 58, 59, 58,
175 49, 52, 49, 57, 58, 62, 58, 60,
176 51, 51, 56, 58, 62, 61, 59, 62,
177 52, 52, 60, 61, 59, 59, 63, 63
180 static const uint8_t dnxhd_1251_luma_weight[] = {
181 0, 32, 32, 34, 34, 34, 34, 35,
182 35, 35, 36, 37, 36, 36, 35, 36,
183 38, 38, 38, 38, 38, 38, 38, 38,
184 38, 38, 39, 41, 44, 43, 41, 40,
185 40, 40, 40, 39, 40, 41, 40, 39,
186 40, 43, 46, 46, 44, 44, 44, 42,
187 41, 43, 46, 48, 50, 55, 58, 53,
188 48, 50, 55, 58, 61, 62, 62, 62,
191 static const uint8_t dnxhd_1251_chroma_weight[] = {
192 0, 32, 35, 36, 36, 35, 36, 39,
193 41, 43, 45, 44, 41, 39, 40, 42,
194 43, 43, 45, 48, 48, 48, 50, 50,
195 50, 51, 51, 51, 51, 52, 53, 54,
196 51, 49, 51, 52, 52, 56, 57, 55,
197 54, 54, 55, 56, 55, 58, 58, 58,
198 60, 61, 62, 62, 59, 57, 58, 58,
199 61, 59, 59, 59, 61, 62, 62, 62,
202 static const uint8_t dnxhd_1252_luma_weight[] = {
203 0, 32, 34, 35, 36, 36, 36, 37,
204 36, 37, 39, 40, 41, 40, 40, 40,
205 41, 41, 42, 41, 41, 43, 44, 44,
206 45, 46, 48, 55, 60, 57, 52, 50,
207 49, 49, 52, 52, 53, 55, 58, 62,
208 65, 73, 82, 82, 80, 78, 73, 68,
209 71, 82, 90, 90, 88, 87, 90, 95,
210 100, 107, 103, 97, 95, 93, 99, 99,
212 static const uint8_t dnxhd_1252_chroma_weight[] = {
213 0, 32, 35, 36, 37, 37, 38, 40,
214 42, 46, 49, 50, 50, 49, 49, 53,
215 56, 56, 57, 58, 60, 62, 64, 65,
216 63, 64, 64, 65, 66, 65, 67, 71,
217 72, 74, 74, 74, 74, 77, 81, 78,
218 72, 73, 82, 85, 89, 88, 84, 80,
219 90, 100, 90, 90, 88, 87, 90, 95,
220 114, 128, 125, 129, 134, 125, 116, 116,
223 static const uint8_t dnxhd_1237_dc_codes[12] = {
224 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63,
227 static const uint8_t dnxhd_1237_dc_bits[12] = {
228 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6,
231 static const uint16_t dnxhd_1237_ac_codes[257] = {
232 0, 1, 4, 5, 12, 26, 27, 56,
233 57, 58, 59, 120, 121, 244, 245, 246,
234 247, 248, 498, 499, 500, 501, 502, 1006,
235 1007, 1008, 1009, 1010, 1011, 2024, 2025, 2026,
236 2027, 2028, 2029, 2030, 2031, 4064, 4065, 4066,
237 4067, 4068, 4069, 4070, 4071, 4072, 4073, 8148,
238 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156,
239 8157, 8158, 16318, 16319, 16320, 16321, 16322, 16323,
240 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331,
241 16332, 16333, 32668, 32669, 32670, 32671, 32672, 32673,
242 32674, 32675, 32676, 32677, 32678, 32679, 32680, 32681,
243 32682, 32683, 32684, 65370, 65371, 65372, 65373, 65374,
244 65375, 65376, 65377, 65378, 65379, 65380, 65381, 65382,
245 65383, 65384, 65385, 65386, 65387, 65388, 65389, 65390,
246 65391, 65392, 65393, 65394, 65395, 65396, 65397, 65398,
247 65399, 65400, 65401, 65402, 65403, 65404, 65405, 65406,
248 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414,
249 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422,
250 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
251 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
252 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
253 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
254 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
255 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
256 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
257 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
258 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
259 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
260 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
261 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
262 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
263 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
264 65535,
267 static const uint8_t dnxhd_1237_ac_bits[257] = {
268 2, 2, 3, 3, 4, 5, 5, 6, 6, 6, 6, 7, 7, 8, 8, 8,
269 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 11, 11, 11,
270 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13,
271 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14,
272 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15,
273 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16,
274 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
275 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
276 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
277 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
278 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
279 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
280 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
281 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
282 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
283 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
287 static const uint8_t dnxhd_1237_ac_level[257] = {
288 1, 1, 2, 0, 3, 4, 2, 5, 6, 7, 3, 8, 9, 10, 11, 12,
289 4, 5, 13, 14, 15, 16, 6, 17, 18, 19, 20, 21, 7, 22, 23, 24,
290 25, 26, 27, 8, 9, 28, 29, 30, 31, 32, 33, 34, 10, 11, 12, 35,
291 36, 37, 38, 39, 40, 41, 13, 14, 15, 16, 42, 43, 44, 45, 46, 47,
292 48, 49, 50, 51, 52, 17, 18, 19, 20, 21, 53, 54, 55, 56, 57, 58,
293 59, 60, 61, 64, 1, 22, 23, 24, 25, 26, 27, 62, 63, 2, 3, 4,
294 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
295 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
296 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
297 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 28, 29, 30, 31,
298 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
299 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
300 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
301 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
302 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
303 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
307 static const uint8_t dnxhd_1237_ac_run_flag[257] = {
308 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
309 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0,
310 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
311 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
312 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
313 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
314 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
315 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
316 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
317 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
318 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
319 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
320 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
321 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
322 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
323 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
327 static const uint8_t dnxhd_1237_ac_index_flag[257] = {
328 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
329 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
330 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
331 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
332 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
333 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
334 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
335 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
336 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
337 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
338 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
339 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
340 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
341 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
342 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
343 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
347 static const uint16_t dnxhd_1237_run_codes[62] = {
348 0, 4, 10, 11, 24, 25, 26, 54,
349 55, 56, 57, 58, 118, 119, 240, 482,
350 483, 484, 485, 486, 487, 488, 489, 490,
351 491, 492, 493, 494, 990, 991, 992, 993,
352 994, 995, 996, 997, 998, 999, 1000, 1001,
353 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
354 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
355 1018, 1019, 1020, 1021, 1022, 1023,
358 static const uint8_t dnxhd_1237_run_bits[62] = {
359 1, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 8, 9,
360 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10,
361 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
362 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
365 static const uint8_t dnxhd_1237_run[62] = {
366 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
367 17, 18, 19, 20, 21, 53, 57, 58, 59, 60, 61, 62, 22, 23, 24, 25,
368 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
369 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56,
372 static const uint8_t dnxhd_1238_dc_codes[12] = {
373 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63,
376 static const uint8_t dnxhd_1238_dc_bits[12] = {
377 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6,
380 static const uint16_t dnxhd_1238_ac_codes[257] = {
381 0, 1, 4, 10, 11, 24, 25, 26,
382 54, 55, 56, 57, 116, 117, 118, 119,
383 240, 241, 242, 243, 244, 245, 492, 493,
384 494, 495, 496, 497, 498, 499, 1000, 1001,
385 1002, 1003, 1004, 1005, 1006, 1007, 1008, 2018,
386 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026,
387 2027, 4056, 4057, 4058, 4059, 4060, 4061, 4062,
388 4063, 4064, 4065, 4066, 4067, 4068, 4069, 8140,
389 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148,
390 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156,
391 16314, 16315, 16316, 16317, 16318, 16319, 16320, 16321,
392 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329,
393 16330, 16331, 16332, 16333, 16334, 16335, 16336, 16337,
394 16338, 32678, 32679, 32680, 32681, 32682, 32683, 32684,
395 32685, 32686, 32687, 32688, 32689, 32690, 32691, 32692,
396 32693, 32694, 32695, 32696, 32697, 32698, 32699, 32700,
397 32701, 32702, 32703, 32704, 32705, 65412, 65413, 65414,
398 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422,
399 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
400 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
401 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
402 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
403 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
404 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
405 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
406 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
407 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
408 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
409 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
410 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
411 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
412 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
413 65535,
416 static const uint8_t dnxhd_1238_ac_bits[257] = {
417 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
418 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10,
419 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11,
420 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13,
421 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
422 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
423 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15,
424 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
425 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
426 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
427 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
428 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
429 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
430 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
431 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
432 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
436 static const uint8_t dnxhd_1238_ac_level[257] = {
437 1, 1, 2, 3, 0, 4, 5, 2, 6, 7, 8, 3, 9, 10, 11, 4,
438 12, 13, 14, 15, 16, 5, 17, 18, 19, 20, 21, 22, 6, 7, 23, 24,
439 25, 26, 27, 28, 29, 8, 9, 30, 31, 32, 33, 34, 35, 36, 37, 10,
440 11, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 12, 13, 14, 49,
441 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 15, 16, 17, 18,
442 62, 63, 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
443 14, 15, 16, 19, 20, 21, 22, 23, 24, 17, 18, 19, 20, 21, 22, 23,
444 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 25,
445 26, 27, 28, 29, 30, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49,
446 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 31,
447 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
448 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
449 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
450 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
451 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
452 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
454 }; /* 0 is EOB */
456 static const uint8_t dnxhd_1238_ac_run_flag[257] = {
457 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1,
458 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,
459 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1,
460 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
463 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
465 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
467 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
468 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
469 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
470 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
471 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
472 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
476 static const uint8_t dnxhd_1238_ac_index_flag[257] = {
477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
482 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
483 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,
484 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
485 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
486 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
489 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
490 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
491 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
492 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
496 static const uint16_t dnxhd_1235_1238_1241_run_codes[62] = {
497 0, 4, 10, 11, 24, 25, 26, 27,
498 56, 57, 58, 59, 120, 242, 486, 487,
499 488, 489, 980, 981, 982, 983, 984, 985,
500 986, 987, 988, 989, 990, 991, 992, 993,
501 994, 995, 996, 997, 998, 999, 1000, 1001,
502 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
503 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
504 1018, 1019, 1020, 1021, 1022, 1023,
507 static const uint8_t dnxhd_1235_1238_1241_run_bits[62] = {
508 1, 3, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 8, 9, 9,
509 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
510 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
511 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
514 static const uint8_t dnxhd_1238_run[62] = {
515 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
516 20, 21, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
517 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
518 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
521 static const uint8_t dnxhd_1235_1241_dc_codes[14] = {
522 10, 62, 11, 12, 13, 0, 1, 2, 3, 4, 14, 30, 126, 127,
525 static const uint8_t dnxhd_1235_1241_dc_bits[14] = {
526 4, 6, 4, 4, 4, 3, 3, 3, 3, 3, 4, 5, 7, 7,
529 static const uint16_t dnxhd_1235_1241_ac_codes[257] = {
530 0, 1, 4, 10, 11, 24, 25, 26,
531 54, 55, 56, 57, 116, 117, 118, 119,
532 240, 241, 242, 243, 244, 245, 492, 493,
533 494, 495, 496, 497, 498, 998, 999, 1000,
534 1001, 1002, 1003, 1004, 1005, 1006, 1007, 2016,
535 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024,
536 2025, 2026, 4054, 4055, 4056, 4057, 4058, 4059,
537 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067,
538 4068, 4069, 8140, 8141, 8142, 8143, 8144, 8145,
539 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153,
540 8154, 8155, 8156, 8157, 16316, 16317, 16318, 16319,
541 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327,
542 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
543 16336, 16337, 32676, 32677, 32678, 32679, 32680, 32681,
544 32682, 32683, 32684, 32685, 32686, 32687, 32688, 32689,
545 32690, 32691, 32692, 32693, 32694, 32695, 32696, 32697,
546 32698, 32699, 32700, 32701, 32702, 32703, 32704, 32705,
547 32706, 32707, 32708, 65418, 65419, 65420, 65421, 65422,
548 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
549 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
550 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
551 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
552 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
553 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
554 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
555 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
556 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
557 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
558 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
559 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
560 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
561 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
562 65535,
565 static const uint8_t dnxhd_1235_1241_ac_bits[257] = {
566 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
567 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10,
568 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11,
569 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
570 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
571 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
572 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15,
573 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
574 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16,
575 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
576 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
577 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
578 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
579 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
580 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
581 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
585 static const uint8_t dnxhd_1235_1241_ac_level[257] = {
586 1, 1, 2, 3, 0, 4, 5, 2, 6, 7, 8, 3, 9, 10, 11, 4,
587 12, 13, 14, 15, 16, 5, 17, 18, 19, 20, 21, 6, 7, 22, 23, 24,
588 25, 26, 27, 28, 29, 8, 9, 30, 31, 32, 33, 34, 35, 36, 37, 38,
589 10, 11, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 12, 13,
590 14, 15, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 1,
591 16, 17, 18, 19, 64, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
592 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 18, 19, 20, 21, 22, 23,
593 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
594 40, 41, 42, 25, 26, 27, 28, 29, 30, 31, 32, 43, 44, 45, 46, 47,
595 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
596 64, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
597 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
598 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
599 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
600 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
601 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
605 static const uint8_t dnxhd_1235_1241_ac_run_flag[257] = {
606 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1,
607 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
608 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
609 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
610 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
611 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
612 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
613 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
614 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
615 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
616 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
617 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
618 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
619 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
620 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
621 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
625 static const uint8_t dnxhd_1235_1241_ac_index_flag[257] = {
626 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
627 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
631 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
632 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
633 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
634 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,
635 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
636 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
637 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
638 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
639 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
640 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
641 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
645 static const uint8_t dnxhd_1235_1241_run[62] = {
646 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
647 18, 20, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
648 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
649 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
652 static const uint8_t dnxhd_1250_dc_codes[14] = {
653 10, 62, 11, 12, 13, 0, 1, 2, 3, 4, 14, 30, 126, 127
655 static const uint8_t dnxhd_1250_dc_bits[14] = {
656 4, 6, 4, 4, 4, 3, 3, 3, 3, 3, 4, 5, 7, 7
658 static const uint16_t dnxhd_1250_ac_codes[257] = {
659 0, 1, 4, 10, 11, 24, 25, 26,
660 54, 55, 56, 57, 116, 117, 118, 119,
661 240, 241, 242, 243, 244, 245, 492, 493,
662 494, 495, 496, 497, 498, 998, 999, 1000,
663 1001, 1002, 1003, 1004, 1005, 1006, 2014, 2015,
664 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023,
665 2024, 2025, 4052, 4053, 4054, 4055, 4056, 4057,
666 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065,
667 4066, 4067, 8136, 8137, 8138, 8139, 8140, 8141,
668 8142, 8143, 8144, 8145, 8146, 8147, 8148, 8149,
669 8150, 8151, 8152, 8153, 8154, 8155, 8156, 16314,
670 16315, 16316, 16317, 16318, 16319, 16320, 16321, 16322,
671 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330,
672 16331, 16332, 16333, 16334, 16335, 16336, 16337, 16338,
673 32678, 32679, 32680, 32681, 32682, 32683, 32684, 32685,
674 32686, 32687, 32688, 32689, 32690, 32691, 32692, 32693,
675 32694, 32695, 32696, 32697, 32698, 32699, 32700, 32701,
676 32702, 32703, 32704, 32705, 32706, 32707, 32708, 32709,
677 32710, 32711, 32712, 65426, 65427, 65428, 65429, 65430,
678 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
679 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
680 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
681 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
682 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
683 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
684 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
685 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
686 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
687 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
688 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
689 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
690 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
691 65535
693 static const uint8_t dnxhd_1250_ac_bits[257] = {
694 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
695 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10,
696 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
697 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
698 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
699 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14,
700 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
701 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
702 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
703 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
704 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
705 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
706 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
707 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
708 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
709 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
712 static const uint8_t dnxhd_1250_ac_level[257] = {
713 1, 1, 2, 3, 0, 4, 5, 2, 6, 7, 8, 3, 9, 10, 11, 4,
714 12, 13, 14, 15, 16, 5, 17, 18, 19, 20, 21, 22, 6, 23, 24, 25,
715 26, 27, 28, 29, 7, 8, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
716 9, 10, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 11,
717 12, 13, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1, 2,
718 3, 4, 5, 14, 15, 16, 17, 6, 7, 8, 9, 10, 11, 12, 13, 14,
719 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 18, 19, 20, 21,
720 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
721 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 55, 56, 22, 23, 24,
722 25, 26, 27, 54, 57, 58, 59, 60, 61, 62, 63, 64, 28, 29, 30, 31,
723 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
724 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
725 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
726 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
727 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
728 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
731 static const uint8_t dnxhd_1250_ac_run_flag[257] = {
732 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1,
733 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
734 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
735 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
736 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
737 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
740 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
741 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
742 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
743 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
744 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
745 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
746 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
747 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
750 static const uint8_t dnxhd_1250_ac_index_flag[257] = {
751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
756 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
757 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
758 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
759 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0,
760 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
762 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
763 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
764 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
765 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
766 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
769 static const uint16_t dnxhd_1250_run_codes[62] = {
770 0, 4, 5, 12, 26, 27, 28, 58,
771 118, 119, 120, 242, 486, 487, 976, 977,
772 978, 979, 980, 981, 982, 983, 984, 985,
773 986, 987, 988, 989, 990, 991, 992, 993,
774 994, 995, 996, 997, 998, 999, 1000, 1001,
775 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
776 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
777 1018, 1019, 1020, 1021, 1022, 1023
779 static const uint8_t dnxhd_1250_run_bits[62] = {
780 1, 3, 3, 4, 5, 5, 5, 6, 7, 7, 7, 8, 9, 9, 10, 10,
781 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
782 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
783 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10
785 static const uint8_t dnxhd_1250_run[62] = {
786 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
787 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
788 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
789 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62
792 static const uint8_t dnxhd_1251_dc_codes[12] = {
793 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63,
796 static const uint8_t dnxhd_1251_dc_bits[12] = {
797 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6,
800 static const uint16_t dnxhd_1251_ac_codes[257] = {
801 0, 1, 4, 10, 11, 24, 25, 26,
802 54, 55, 56, 57, 116, 117, 118, 119,
803 240, 241, 242, 243, 244, 245, 492, 493,
804 494, 495, 496, 497, 996, 997, 998, 999,
805 1000, 1001, 1002, 1003, 1004, 1005, 2012, 2013,
806 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,
807 2022, 2023, 2024, 2025, 4052, 4053, 4054, 4055,
808 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063,
809 4064, 4065, 4066, 8134, 8135, 8136, 8137, 8138,
810 8139, 8140, 8141, 8142, 8143, 8144, 8145, 8146,
811 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154,
812 8155, 8156, 16314, 16315, 16316, 16317, 16318, 16319,
813 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327,
814 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
815 16336, 16337, 16338, 16339, 32680, 32681, 32682, 32683,
816 32684, 32685, 32686, 32687, 32688, 32689, 32690, 32691,
817 32692, 32693, 32694, 32695, 32696, 32697, 32698, 32699,
818 32700, 32701, 32702, 32703, 32704, 32705, 32706, 32707,
819 32708, 32709, 32710, 32711, 32712, 32713, 32714, 65430,
820 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
821 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
822 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
823 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
824 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
825 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
826 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
827 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
828 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
829 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
830 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
831 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
832 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
833 65535,
836 static const uint8_t dnxhd_1251_ac_bits[257] = {
837 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
838 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10,
839 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
840 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
841 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
842 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14,
843 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
844 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
845 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
846 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16,
847 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
848 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
849 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
850 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
851 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
852 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
856 static const uint8_t dnxhd_1251_ac_level[257] = {
857 1, 1, 2, 3, 0, 4, 5, 2, 6, 7, 8, 3, 9, 10, 11, 4,
858 12, 13, 14, 15, 16, 5, 17, 18, 19, 20, 21, 6, 22, 23, 24, 25,
859 26, 27, 28, 29, 7, 8, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
860 40, 9, 10, 11, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
861 12, 13, 14, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1,
862 2, 3, 4, 5, 6, 7, 8, 15, 16, 17, 9, 10, 11, 12, 13, 14,
863 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 18,
864 19, 20, 21, 22, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
865 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
866 58, 23, 24, 25, 26, 27, 28, 59, 60, 61, 62, 63, 64, 29, 30, 31,
867 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
868 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
869 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
870 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
871 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
872 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
876 static const uint8_t dnxhd_1251_ac_run_flag[257] = {
877 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1,
878 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
879 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
880 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
881 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
882 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0,
883 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
884 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
886 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1,
887 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
888 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
889 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
890 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
891 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
892 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
896 static const uint8_t dnxhd_1251_ac_index_flag[257] = {
897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
899 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
902 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1,
903 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
904 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
905 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
906 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
908 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
909 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
910 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
911 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
912 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
916 static const uint16_t dnxhd_1251_run_codes[62] = {
917 0, 4, 5, 12, 26, 27, 28, 58,
918 118, 119, 120, 242, 486, 487, 976, 977,
919 978, 979, 980, 981, 982, 983, 984, 985,
920 986, 987, 988, 989, 990, 991, 992, 993,
921 994, 995, 996, 997, 998, 999, 1000, 1001,
922 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
923 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
924 1018, 1019, 1020, 1021, 1022, 1023,
927 static const uint8_t dnxhd_1251_run_bits[62] = {
928 1, 3, 3, 4, 5, 5, 5, 6, 7, 7, 7, 8, 9, 9, 10, 10,
929 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
930 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
931 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
934 static const uint8_t dnxhd_1251_run[62] = {
935 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
936 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
937 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
938 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
941 static const uint8_t dnxhd_1252_dc_codes[12] = {
942 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63,
945 static const uint8_t dnxhd_1252_dc_bits[12] = {
946 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6,
949 static const uint16_t dnxhd_1252_ac_codes[257] = {
950 0, 1, 4, 10, 11, 12, 26, 27,
951 56, 57, 58, 118, 119, 120, 242, 243,
952 244, 245, 246, 247, 496, 497, 498, 499,
953 500, 1002, 1003, 1004, 1005, 1006, 1007, 1008,
954 1009, 2020, 2021, 2022, 2023, 2024, 2025, 2026,
955 2027, 2028, 2029, 4060, 4061, 4062, 4063, 4064,
956 4065, 4066, 4067, 4068, 4069, 4070, 4071, 8144,
957 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152,
958 8153, 8154, 8155, 8156, 8157, 8158, 16318, 16319,
959 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327,
960 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
961 32672, 32673, 32674, 32675, 32676, 32677, 32678, 32679,
962 32680, 32681, 32682, 32683, 32684, 32685, 32686, 32687,
963 32688, 32689, 32690, 32691, 32692, 32693, 32694, 65390,
964 65391, 65392, 65393, 65394, 65395, 65396, 65397, 65398,
965 65399, 65400, 65401, 65402, 65403, 65404, 65405, 65406,
966 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414,
967 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422,
968 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
969 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
970 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
971 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
972 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
973 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
974 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
975 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
976 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
977 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
978 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
979 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
980 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
981 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
982 65535,
985 static const uint8_t dnxhd_1252_ac_bits[257] = {
986 2, 2, 3, 4, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8,
987 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10,
988 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12,
989 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13,
990 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
991 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15,
992 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16,
993 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
994 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
995 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
996 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
997 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
998 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
999 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1000 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1001 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
1005 static const uint8_t dnxhd_1252_ac_level[257] = {
1006 1, 1, 2, 3, 2, 0, 4, 5, 6, 7, 3, 8, 9, 10, 11, 12,
1007 13, 14, 4, 5, 15, 16, 17, 18, 6, 19, 20, 21, 22, 23, 24, 7,
1008 8, 25, 26, 27, 28, 29, 30, 31, 32, 9, 10, 33, 34, 35, 36, 37,
1009 38, 39, 40, 41, 11, 12, 13, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1010 51, 52, 53, 14, 15, 16, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1011 64, 1, 2, 3, 17, 18, 19, 20, 4, 5, 6, 7, 8, 9, 10, 11,
1012 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 21, 22, 23, 24, 25, 22,
1013 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1014 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1015 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 26, 27, 28, 29, 30, 31,
1016 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1017 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1018 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1019 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1020 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1021 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1025 static const uint8_t dnxhd_1252_ac_run_flag[257] = {
1026 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
1027 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1,
1028 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
1029 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1030 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1031 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
1032 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0,
1033 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1034 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1035 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
1036 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1037 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1038 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1039 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1040 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1041 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1045 static const uint8_t dnxhd_1252_ac_index_flag[257] = {
1046 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1047 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1048 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1050 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1051 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1,
1052 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1,
1053 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1054 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1055 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
1056 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1057 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1058 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1059 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1060 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1061 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1065 const CIDEntry ff_dnxhd_cid_table[] = {
1066 { 1235, 1920, 1080, 0, 917504, 917504, 6, 10,
1067 dnxhd_1235_luma_weight, dnxhd_1235_chroma_weight,
1068 dnxhd_1235_1241_dc_codes, dnxhd_1235_1241_dc_bits,
1069 dnxhd_1235_1241_ac_codes, dnxhd_1235_1241_ac_bits, dnxhd_1235_1241_ac_level,
1070 dnxhd_1235_1241_ac_run_flag, dnxhd_1235_1241_ac_index_flag,
1071 dnxhd_1235_1238_1241_run_codes, dnxhd_1235_1238_1241_run_bits, dnxhd_1235_1241_run,
1072 { 175, 185, 365, 440 } },
1073 { 1237, 1920, 1080, 0, 606208, 606208, 4, 8,
1074 dnxhd_1237_luma_weight, dnxhd_1237_chroma_weight,
1075 dnxhd_1237_dc_codes, dnxhd_1237_dc_bits,
1076 dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level,
1077 dnxhd_1237_ac_run_flag, dnxhd_1237_ac_index_flag,
1078 dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run,
1079 { 115, 120, 145, 240, 290 } },
1080 { 1238, 1920, 1080, 0, 917504, 917504, 4, 8,
1081 dnxhd_1238_luma_weight, dnxhd_1238_chroma_weight,
1082 dnxhd_1238_dc_codes, dnxhd_1238_dc_bits,
1083 dnxhd_1238_ac_codes, dnxhd_1238_ac_bits, dnxhd_1238_ac_level,
1084 dnxhd_1238_ac_run_flag, dnxhd_1238_ac_index_flag,
1085 dnxhd_1235_1238_1241_run_codes, dnxhd_1235_1238_1241_run_bits, dnxhd_1238_run,
1086 { 175, 185, 220, 365, 440 } },
1087 { 1241, 1920, 1080, 1, 917504, 458752, 6, 10,
1088 dnxhd_1241_luma_weight, dnxhd_1241_chroma_weight,
1089 dnxhd_1235_1241_dc_codes, dnxhd_1235_1241_dc_bits,
1090 dnxhd_1235_1241_ac_codes, dnxhd_1235_1241_ac_bits, dnxhd_1235_1241_ac_level,
1091 dnxhd_1235_1241_ac_run_flag, dnxhd_1235_1241_ac_index_flag,
1092 dnxhd_1235_1238_1241_run_codes, dnxhd_1235_1238_1241_run_bits, dnxhd_1235_1241_run,
1093 { 185, 220 } },
1094 { 1242, 1920, 1080, 1, 606208, 303104, 4, 8,
1095 dnxhd_1242_luma_weight, dnxhd_1242_chroma_weight,
1096 dnxhd_1237_dc_codes, dnxhd_1237_dc_bits,
1097 dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level,
1098 dnxhd_1237_ac_run_flag, dnxhd_1237_ac_index_flag,
1099 dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run,
1100 { 120, 145 } },
1101 { 1243, 1920, 1080, 1, 917504, 458752, 4, 8,
1102 dnxhd_1243_luma_weight, dnxhd_1243_chroma_weight,
1103 dnxhd_1238_dc_codes, dnxhd_1238_dc_bits,
1104 dnxhd_1238_ac_codes, dnxhd_1238_ac_bits, dnxhd_1238_ac_level,
1105 dnxhd_1238_ac_run_flag, dnxhd_1238_ac_index_flag,
1106 dnxhd_1235_1238_1241_run_codes, dnxhd_1235_1238_1241_run_bits, dnxhd_1238_run,
1107 { 185, 220 } },
1108 { 1250, 1280, 720, 0, 458752, 458752, 6, 10,
1109 dnxhd_1250_luma_weight, dnxhd_1250_chroma_weight,
1110 dnxhd_1250_dc_codes, dnxhd_1250_dc_bits,
1111 dnxhd_1250_ac_codes, dnxhd_1250_ac_bits, dnxhd_1250_ac_level,
1112 dnxhd_1250_ac_run_flag, dnxhd_1250_ac_index_flag,
1113 dnxhd_1250_run_codes, dnxhd_1250_run_bits, dnxhd_1250_run,
1114 { 90, 180, 220 } },
1115 { 1251, 1280, 720, 0, 458752, 458752, 4, 8,
1116 dnxhd_1251_luma_weight, dnxhd_1251_chroma_weight,
1117 dnxhd_1251_dc_codes, dnxhd_1251_dc_bits,
1118 dnxhd_1251_ac_codes, dnxhd_1251_ac_bits, dnxhd_1251_ac_level,
1119 dnxhd_1251_ac_run_flag, dnxhd_1251_ac_index_flag,
1120 dnxhd_1251_run_codes, dnxhd_1251_run_bits, dnxhd_1251_run,
1121 { 90, 110, 175, 220 } },
1122 { 1252, 1280, 720, 0, 303104, 303104, 4, 8,
1123 dnxhd_1252_luma_weight, dnxhd_1252_chroma_weight,
1124 dnxhd_1252_dc_codes, dnxhd_1252_dc_bits,
1125 dnxhd_1252_ac_codes, dnxhd_1252_ac_bits, dnxhd_1252_ac_level,
1126 dnxhd_1252_ac_run_flag, dnxhd_1252_ac_index_flag,
1127 dnxhd_1251_run_codes, dnxhd_1251_run_bits, dnxhd_1251_run,
1128 { 60, 75, 115, 145 } },
1129 { 1253, 1920, 1080, 0, 188416, 188416, 4, 8,
1130 dnxhd_1237_luma_weight, dnxhd_1237_chroma_weight,
1131 dnxhd_1237_dc_codes, dnxhd_1237_dc_bits,
1132 dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level,
1133 dnxhd_1237_ac_run_flag, dnxhd_1237_ac_index_flag,
1134 dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run,
1135 { 36, 45, 75, 90 } },
1138 int ff_dnxhd_get_cid_table(int cid)
1140 int i;
1141 for (i = 0; i < FF_ARRAY_ELEMS(ff_dnxhd_cid_table); i++)
1142 if (ff_dnxhd_cid_table[i].cid == cid)
1143 return i;
1144 return -1;
1147 int ff_dnxhd_find_cid(AVCodecContext *avctx, int bit_depth)
1149 int i, j;
1150 int mbs = avctx->bit_rate/1000000;
1151 if (!mbs)
1152 return 0;
1153 for (i = 0; i < FF_ARRAY_ELEMS(ff_dnxhd_cid_table); i++) {
1154 const CIDEntry *cid = &ff_dnxhd_cid_table[i];
1155 if (cid->width == avctx->width && cid->height == avctx->height &&
1156 cid->interlaced == !!(avctx->flags & CODEC_FLAG_INTERLACED_DCT) &&
1157 cid->bit_depth == bit_depth) {
1158 for (j = 0; j < sizeof(cid->bit_rates); j++) {
1159 if (cid->bit_rates[j] == mbs)
1160 return cid->cid;
1164 return 0;