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
23 #include "dnxhddata.h"
25 static const uint8_t dnxhd_1235_luma_weight[] = {
26 0, 32, 32, 32, 33, 35, 38, 39,
27 32, 33, 32, 33, 36, 36, 39, 42,
28 32, 32, 33, 36, 35, 37, 41, 43,
29 31, 33, 34, 36, 36, 40, 42, 48,
30 32, 34, 36, 37, 39, 42, 46, 51,
31 36, 37, 37, 39, 41, 46, 51, 55,
32 37, 39, 41, 41, 47, 50, 55, 56,
33 41, 42, 41, 44, 50, 53, 60, 60
36 static const uint8_t dnxhd_1235_chroma_weight[] = {
37 0, 32, 33, 34, 39, 41, 54, 59,
38 33, 34, 35, 38, 43, 49, 58, 84,
39 34, 37, 39, 44, 46, 55, 74, 87,
40 40, 42, 47, 48, 58, 70, 87, 86,
41 43, 50, 56, 63, 72, 94, 91, 82,
42 55, 63, 65, 75, 93, 89, 85, 73,
43 61, 67, 82, 81, 83, 90, 79, 73,
44 74, 84, 75, 78, 90, 85, 73, 73
47 static const uint8_t dnxhd_1237_luma_weight[] = {
48 0, 32, 33, 34, 34, 36, 37, 36,
49 36, 37, 38, 38, 38, 39, 41, 44,
50 43, 41, 40, 41, 46, 49, 47, 46,
51 47, 49, 51, 54, 60, 62, 59, 55,
52 54, 56, 58, 61, 65, 66, 64, 63,
53 66, 73, 78, 79, 80, 79, 78, 78,
54 82, 87, 89, 90, 93, 95, 96, 97,
55 97, 100, 104, 102, 98, 98, 99, 99,
58 static const uint8_t dnxhd_1237_chroma_weight[] = {
59 0, 32, 36, 39, 39, 38, 39, 41,
60 45, 51, 57, 58, 53, 48, 47, 51,
61 55, 58, 66, 75, 81, 83, 82, 78,
62 73, 72, 74, 77, 83, 85, 83, 82,
63 89, 99, 96, 90, 94, 97, 99, 105,
64 109, 105, 95, 89, 92, 95, 94, 93,
65 92, 88, 89, 90, 93, 95, 96, 97,
66 97, 100, 104, 102, 98, 98, 99, 99,
69 static const uint8_t dnxhd_1238_luma_weight[] = {
70 0, 32, 32, 33, 34, 33, 33, 33,
71 33, 33, 33, 33, 33, 35, 37, 37,
72 36, 36, 35, 36, 38, 38, 36, 35,
73 36, 37, 38, 41, 42, 41, 39, 38,
74 38, 38, 39, 41, 42, 41, 39, 39,
75 40, 41, 43, 44, 44, 44, 44, 44,
76 45, 47, 47, 47, 49, 50, 51, 51,
77 51, 53, 55, 57, 58, 59, 57, 57,
80 static const uint8_t dnxhd_1238_chroma_weight[] = {
81 0, 32, 35, 35, 35, 34, 34, 35,
82 39, 43, 45, 45, 41, 39, 40, 41,
83 42, 44, 48, 55, 59, 63, 65, 59,
84 53, 52, 52, 55, 61, 62, 58, 58,
85 63, 66, 66, 65, 70, 74, 70, 66,
86 65, 68, 75, 77, 74, 74, 77, 76,
87 73, 73, 73, 73, 76, 80, 89, 90,
88 82, 77, 80, 86, 84, 82, 82, 82,
91 static const uint8_t dnxhd_1241_luma_weight[] = {
92 0, 32, 33, 34, 34, 35, 36, 37,
93 36, 37, 38, 38, 38, 39, 39, 40,
94 40, 38, 38, 39, 38, 37, 39, 41,
95 41, 42, 43, 45, 45, 46, 47, 46,
96 45, 43, 39, 37, 37, 40, 44, 45,
97 45, 46, 46, 46, 47, 47, 46, 44,
98 42, 43, 45, 47, 48, 49, 50, 49,
99 48, 46, 47, 48, 48, 49, 49, 49,
102 static const uint8_t dnxhd_1241_chroma_weight[] = {
103 0, 32, 36, 38, 37, 37, 40, 41,
104 40, 40, 42, 42, 41, 41, 41, 41,
105 42, 43, 44, 44, 45, 46, 46, 45,
106 44, 45, 45, 45, 45, 46, 47, 46,
107 45, 44, 42, 41, 43, 45, 45, 47,
108 48, 48, 48, 46, 47, 47, 46, 47,
109 46, 45, 45, 47, 48, 49, 50, 49,
110 48, 46, 48, 49, 48, 49, 49, 49,
113 static const uint8_t dnxhd_1242_luma_weight[] = {
114 0, 32, 33, 33, 34, 35, 36, 35,
115 33, 33, 35, 36, 37, 37, 38, 37,
116 37, 37, 36, 37, 37, 37, 38, 39,
117 37, 36, 37, 40, 42, 45, 46, 44,
118 41, 42, 44, 45, 47, 49, 50, 48,
119 46, 48, 49, 50, 52, 52, 50, 49,
120 47, 48, 50, 50, 51, 51, 50, 49,
121 49, 51, 52, 51, 49, 47, 47, 47,
124 static const uint8_t dnxhd_1242_chroma_weight[] = {
125 0, 32, 37, 42, 45, 45, 45, 44,
126 38, 37, 40, 42, 44, 49, 51, 47,
127 41, 40, 43, 44, 46, 48, 51, 54,
128 51, 47, 47, 45, 47, 50, 51, 49,
129 46, 47, 49, 47, 50, 55, 55, 51,
130 48, 49, 51, 51, 52, 52, 54, 54,
131 49, 49, 52, 53, 54, 54, 53, 53,
132 55, 59, 63, 62, 60, 60, 60, 60,
135 static const uint8_t dnxhd_1243_luma_weight[] = {
136 0, 32, 32, 33, 33, 35, 35, 35,
137 35, 35, 35, 35, 34, 35, 38, 40,
138 39, 37, 37, 37, 36, 35, 36, 38,
139 40, 41, 42, 44, 45, 44, 42, 41,
140 40, 38, 36, 36, 37, 38, 40, 43,
141 44, 45, 45, 45, 45, 45, 45, 41,
142 39, 41, 45, 47, 47, 48, 48, 48,
143 46, 44, 45, 47, 47, 48, 47, 47,
146 static const uint8_t dnxhd_1243_chroma_weight[] = {
147 0, 32, 36, 37, 36, 37, 39, 39,
148 41, 43, 43, 42, 41, 41, 41, 42,
149 43, 43, 43, 44, 44, 44, 46, 47,
150 46, 45, 45, 45, 45, 46, 44, 44,
151 45, 44, 42, 41, 43, 46, 45, 44,
152 45, 45, 45, 46, 46, 46, 45, 44,
153 45, 44, 45, 47, 47, 48, 49, 48,
154 46, 45, 46, 47, 47, 48, 47, 47,
157 static const uint8_t dnxhd_1250_luma_weight[] = {
158 0, 32, 35, 35, 36, 36, 41, 43,
159 32, 34, 35, 36, 37, 39, 43, 47,
160 33, 34, 36, 38, 38, 42, 42, 50,
161 34, 36, 38, 38, 41, 40, 47, 54,
162 35, 38, 39, 40, 39, 45, 49, 58,
163 38, 39, 40, 39, 46, 47, 54, 60,
164 38, 39, 41, 46, 46, 48, 57, 62,
165 40, 41, 44, 45, 49, 54, 63, 63
168 static const uint8_t dnxhd_1250_chroma_weight[] = {
169 0, 32, 35, 36, 40, 42, 51, 51,
170 35, 36, 39, 39, 43, 51, 52, 55,
171 36, 41, 41, 43, 51, 53, 54, 56,
172 43, 44, 45, 50, 54, 54, 55, 57,
173 45, 48, 50, 51, 55, 58, 59, 58,
174 49, 52, 49, 57, 58, 62, 58, 60,
175 51, 51, 56, 58, 62, 61, 59, 62,
176 52, 52, 60, 61, 59, 59, 63, 63
179 static const uint8_t dnxhd_1251_luma_weight[] = {
180 0, 32, 32, 34, 34, 34, 34, 35,
181 35, 35, 36, 37, 36, 36, 35, 36,
182 38, 38, 38, 38, 38, 38, 38, 38,
183 38, 38, 39, 41, 44, 43, 41, 40,
184 40, 40, 40, 39, 40, 41, 40, 39,
185 40, 43, 46, 46, 44, 44, 44, 42,
186 41, 43, 46, 48, 50, 55, 58, 53,
187 48, 50, 55, 58, 61, 62, 62, 62,
190 static const uint8_t dnxhd_1251_chroma_weight[] = {
191 0, 32, 35, 36, 36, 35, 36, 39,
192 41, 43, 45, 44, 41, 39, 40, 42,
193 43, 43, 45, 48, 48, 48, 50, 50,
194 50, 51, 51, 51, 51, 52, 53, 54,
195 51, 49, 51, 52, 52, 56, 57, 55,
196 54, 54, 55, 56, 55, 58, 58, 58,
197 60, 61, 62, 62, 59, 57, 58, 58,
198 61, 59, 59, 59, 61, 62, 62, 62,
201 static const uint8_t dnxhd_1252_luma_weight[] = {
202 0, 32, 34, 35, 36, 36, 36, 37,
203 36, 37, 39, 40, 41, 40, 40, 40,
204 41, 41, 42, 41, 41, 43, 44, 44,
205 45, 46, 48, 55, 60, 57, 52, 50,
206 49, 49, 52, 52, 53, 55, 58, 62,
207 65, 73, 82, 82, 80, 78, 73, 68,
208 71, 82, 90, 90, 88, 87, 90, 95,
209 100, 107, 103, 97, 95, 93, 99, 99,
211 static const uint8_t dnxhd_1252_chroma_weight[] = {
212 0, 32, 35, 36, 37, 37, 38, 40,
213 42, 46, 49, 50, 50, 49, 49, 53,
214 56, 56, 57, 58, 60, 62, 64, 65,
215 63, 64, 64, 65, 66, 65, 67, 71,
216 72, 74, 74, 74, 74, 77, 81, 78,
217 72, 73, 82, 85, 89, 88, 84, 80,
218 90, 100, 90, 90, 88, 87, 90, 95,
219 114, 128, 125, 129, 134, 125, 116, 116,
222 static const uint8_t dnxhd_1237_dc_codes[12] = {
223 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63,
226 static const uint8_t dnxhd_1237_dc_bits[12] = {
227 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6,
230 static const uint16_t dnxhd_1237_ac_codes[257] = {
231 0, 1, 4, 5, 12, 26, 27, 56,
232 57, 58, 59, 120, 121, 244, 245, 246,
233 247, 248, 498, 499, 500, 501, 502, 1006,
234 1007, 1008, 1009, 1010, 1011, 2024, 2025, 2026,
235 2027, 2028, 2029, 2030, 2031, 4064, 4065, 4066,
236 4067, 4068, 4069, 4070, 4071, 4072, 4073, 8148,
237 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156,
238 8157, 8158, 16318, 16319, 16320, 16321, 16322, 16323,
239 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331,
240 16332, 16333, 32668, 32669, 32670, 32671, 32672, 32673,
241 32674, 32675, 32676, 32677, 32678, 32679, 32680, 32681,
242 32682, 32683, 32684, 65370, 65371, 65372, 65373, 65374,
243 65375, 65376, 65377, 65378, 65379, 65380, 65381, 65382,
244 65383, 65384, 65385, 65386, 65387, 65388, 65389, 65390,
245 65391, 65392, 65393, 65394, 65395, 65396, 65397, 65398,
246 65399, 65400, 65401, 65402, 65403, 65404, 65405, 65406,
247 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414,
248 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422,
249 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
250 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
251 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
252 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
253 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
254 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
255 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
256 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
257 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
258 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
259 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
260 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
261 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
262 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
266 static const uint8_t dnxhd_1237_ac_bits[257] = {
267 2, 2, 3, 3, 4, 5, 5, 6, 6, 6, 6, 7, 7, 8, 8, 8,
268 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 11, 11, 11,
269 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13,
270 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14,
271 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15,
272 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16,
273 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 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,
286 static const uint8_t dnxhd_1237_ac_level[257] = {
287 1, 1, 2, 0, 3, 4, 2, 5, 6, 7, 3, 8, 9, 10, 11, 12,
288 4, 5, 13, 14, 15, 16, 6, 17, 18, 19, 20, 21, 7, 22, 23, 24,
289 25, 26, 27, 8, 9, 28, 29, 30, 31, 32, 33, 34, 10, 11, 12, 35,
290 36, 37, 38, 39, 40, 41, 13, 14, 15, 16, 42, 43, 44, 45, 46, 47,
291 48, 49, 50, 51, 52, 17, 18, 19, 20, 21, 53, 54, 55, 56, 57, 58,
292 59, 60, 61, 64, 1, 22, 23, 24, 25, 26, 27, 62, 63, 2, 3, 4,
293 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
294 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
295 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
296 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 28, 29, 30, 31,
297 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
298 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
299 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
300 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
301 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
302 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
306 static const uint8_t dnxhd_1237_ac_run_flag[257] = {
307 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
308 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0,
309 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
310 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
311 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
312 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
313 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1,
317 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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,
326 static const uint8_t dnxhd_1237_ac_index_flag[257] = {
327 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
333 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 0, 0, 0, 0,
337 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
338 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
339 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
340 1, 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,
346 static const uint16_t dnxhd_1237_run_codes[62] = {
347 0, 4, 10, 11, 24, 25, 26, 54,
348 55, 56, 57, 58, 118, 119, 240, 482,
349 483, 484, 485, 486, 487, 488, 489, 490,
350 491, 492, 493, 494, 990, 991, 992, 993,
351 994, 995, 996, 997, 998, 999, 1000, 1001,
352 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
353 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
354 1018, 1019, 1020, 1021, 1022, 1023,
357 static const uint8_t dnxhd_1237_run_bits[62] = {
358 1, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 8, 9,
359 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10,
360 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
361 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
364 static const uint8_t dnxhd_1237_run[62] = {
365 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
366 17, 18, 19, 20, 21, 53, 57, 58, 59, 60, 61, 62, 22, 23, 24, 25,
367 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
368 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56,
371 static const uint8_t dnxhd_1238_dc_codes[12] = {
372 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63,
375 static const uint8_t dnxhd_1238_dc_bits[12] = {
376 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6,
379 static const uint16_t dnxhd_1238_ac_codes[257] = {
380 0, 1, 4, 10, 11, 24, 25, 26,
381 54, 55, 56, 57, 116, 117, 118, 119,
382 240, 241, 242, 243, 244, 245, 492, 493,
383 494, 495, 496, 497, 498, 499, 1000, 1001,
384 1002, 1003, 1004, 1005, 1006, 1007, 1008, 2018,
385 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026,
386 2027, 4056, 4057, 4058, 4059, 4060, 4061, 4062,
387 4063, 4064, 4065, 4066, 4067, 4068, 4069, 8140,
388 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148,
389 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156,
390 16314, 16315, 16316, 16317, 16318, 16319, 16320, 16321,
391 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329,
392 16330, 16331, 16332, 16333, 16334, 16335, 16336, 16337,
393 16338, 32678, 32679, 32680, 32681, 32682, 32683, 32684,
394 32685, 32686, 32687, 32688, 32689, 32690, 32691, 32692,
395 32693, 32694, 32695, 32696, 32697, 32698, 32699, 32700,
396 32701, 32702, 32703, 32704, 32705, 65412, 65413, 65414,
397 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422,
398 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
399 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
400 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
401 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
402 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
403 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
404 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
405 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
406 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
407 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
408 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
409 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
410 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
411 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
415 static const uint8_t dnxhd_1238_ac_bits[257] = {
416 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
417 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10,
418 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11,
419 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13,
420 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
421 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
422 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15,
423 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
424 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
425 16, 16, 16, 16, 16, 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,
435 static const uint8_t dnxhd_1238_ac_level[257] = {
436 1, 1, 2, 3, 0, 4, 5, 2, 6, 7, 8, 3, 9, 10, 11, 4,
437 12, 13, 14, 15, 16, 5, 17, 18, 19, 20, 21, 22, 6, 7, 23, 24,
438 25, 26, 27, 28, 29, 8, 9, 30, 31, 32, 33, 34, 35, 36, 37, 10,
439 11, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 12, 13, 14, 49,
440 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 15, 16, 17, 18,
441 62, 63, 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
442 14, 15, 16, 19, 20, 21, 22, 23, 24, 17, 18, 19, 20, 21, 22, 23,
443 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 25,
444 26, 27, 28, 29, 30, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49,
445 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 31,
446 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
447 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
448 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
449 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
450 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
451 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
455 static const uint8_t dnxhd_1238_ac_run_flag[257] = {
456 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1,
457 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,
458 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1,
459 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
462 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
464 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
466 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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,
475 static const uint8_t dnxhd_1238_ac_index_flag[257] = {
476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
482 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,
483 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
484 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
485 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
488 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
489 1, 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,
495 static const uint16_t dnxhd_1235_1238_1241_run_codes[62] = {
496 0, 4, 10, 11, 24, 25, 26, 27,
497 56, 57, 58, 59, 120, 242, 486, 487,
498 488, 489, 980, 981, 982, 983, 984, 985,
499 986, 987, 988, 989, 990, 991, 992, 993,
500 994, 995, 996, 997, 998, 999, 1000, 1001,
501 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
502 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
503 1018, 1019, 1020, 1021, 1022, 1023,
506 static const uint8_t dnxhd_1235_1238_1241_run_bits[62] = {
507 1, 3, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 8, 9, 9,
508 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
509 10, 10, 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,
513 static const uint8_t dnxhd_1238_run[62] = {
514 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
515 20, 21, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
516 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
517 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
520 static const uint8_t dnxhd_1235_1241_dc_codes[14] = {
521 10, 62, 11, 12, 13, 0, 1, 2, 3, 4, 14, 30, 126, 127,
524 static const uint8_t dnxhd_1235_1241_dc_bits[14] = {
525 4, 6, 4, 4, 4, 3, 3, 3, 3, 3, 4, 5, 7, 7,
528 static const uint16_t dnxhd_1235_1241_ac_codes[257] = {
529 0, 1, 4, 10, 11, 24, 25, 26,
530 54, 55, 56, 57, 116, 117, 118, 119,
531 240, 241, 242, 243, 244, 245, 492, 493,
532 494, 495, 496, 497, 498, 998, 999, 1000,
533 1001, 1002, 1003, 1004, 1005, 1006, 1007, 2016,
534 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024,
535 2025, 2026, 4054, 4055, 4056, 4057, 4058, 4059,
536 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067,
537 4068, 4069, 8140, 8141, 8142, 8143, 8144, 8145,
538 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153,
539 8154, 8155, 8156, 8157, 16316, 16317, 16318, 16319,
540 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327,
541 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
542 16336, 16337, 32676, 32677, 32678, 32679, 32680, 32681,
543 32682, 32683, 32684, 32685, 32686, 32687, 32688, 32689,
544 32690, 32691, 32692, 32693, 32694, 32695, 32696, 32697,
545 32698, 32699, 32700, 32701, 32702, 32703, 32704, 32705,
546 32706, 32707, 32708, 65418, 65419, 65420, 65421, 65422,
547 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
548 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
549 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
550 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
551 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
552 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
553 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
554 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
555 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
556 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
557 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
558 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
559 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
560 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
564 static const uint8_t dnxhd_1235_1241_ac_bits[257] = {
565 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
566 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10,
567 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11,
568 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
569 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
570 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
571 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15,
572 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
573 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16,
574 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 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,
584 static const uint8_t dnxhd_1235_1241_ac_level[257] = {
585 1, 1, 2, 3, 0, 4, 5, 2, 6, 7, 8, 3, 9, 10, 11, 4,
586 12, 13, 14, 15, 16, 5, 17, 18, 19, 20, 21, 6, 7, 22, 23, 24,
587 25, 26, 27, 28, 29, 8, 9, 30, 31, 32, 33, 34, 35, 36, 37, 38,
588 10, 11, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 12, 13,
589 14, 15, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 1,
590 16, 17, 18, 19, 64, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
591 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 18, 19, 20, 21, 22, 23,
592 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
593 40, 41, 42, 25, 26, 27, 28, 29, 30, 31, 32, 43, 44, 45, 46, 47,
594 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
595 64, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
596 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
597 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
598 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
599 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
600 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
604 static const uint8_t dnxhd_1235_1241_ac_run_flag[257] = {
605 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1,
606 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
607 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
608 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
609 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
610 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
611 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
612 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
613 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
614 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
615 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
616 1, 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,
624 static const uint8_t dnxhd_1235_1241_ac_index_flag[257] = {
625 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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, 1,
630 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
631 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
632 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
633 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,
634 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
635 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
636 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
637 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
638 1, 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,
644 static const uint8_t dnxhd_1235_1241_run[62] = {
645 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
646 18, 20, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
647 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
648 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
651 static const uint8_t dnxhd_1250_dc_codes[14] = {
652 10, 62, 11, 12, 13, 0, 1, 2, 3, 4, 14, 30, 126, 127
654 static const uint8_t dnxhd_1250_dc_bits[14] = {
655 4, 6, 4, 4, 4, 3, 3, 3, 3, 3, 4, 5, 7, 7
657 static const uint16_t dnxhd_1250_ac_codes[257] = {
658 0, 1, 4, 10, 11, 24, 25, 26,
659 54, 55, 56, 57, 116, 117, 118, 119,
660 240, 241, 242, 243, 244, 245, 492, 493,
661 494, 495, 496, 497, 498, 998, 999, 1000,
662 1001, 1002, 1003, 1004, 1005, 1006, 2014, 2015,
663 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023,
664 2024, 2025, 4052, 4053, 4054, 4055, 4056, 4057,
665 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065,
666 4066, 4067, 8136, 8137, 8138, 8139, 8140, 8141,
667 8142, 8143, 8144, 8145, 8146, 8147, 8148, 8149,
668 8150, 8151, 8152, 8153, 8154, 8155, 8156, 16314,
669 16315, 16316, 16317, 16318, 16319, 16320, 16321, 16322,
670 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330,
671 16331, 16332, 16333, 16334, 16335, 16336, 16337, 16338,
672 32678, 32679, 32680, 32681, 32682, 32683, 32684, 32685,
673 32686, 32687, 32688, 32689, 32690, 32691, 32692, 32693,
674 32694, 32695, 32696, 32697, 32698, 32699, 32700, 32701,
675 32702, 32703, 32704, 32705, 32706, 32707, 32708, 32709,
676 32710, 32711, 32712, 65426, 65427, 65428, 65429, 65430,
677 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
678 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
679 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
680 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
681 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
682 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
683 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
684 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
685 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
686 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
687 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
688 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
689 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
692 static const uint8_t dnxhd_1250_ac_bits[257] = {
693 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
694 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10,
695 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
696 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
697 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
698 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14,
699 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
700 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
701 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
702 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
703 16, 16, 16, 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,
711 static const uint8_t dnxhd_1250_ac_level[257] = {
712 1, 1, 2, 3, 0, 4, 5, 2, 6, 7, 8, 3, 9, 10, 11, 4,
713 12, 13, 14, 15, 16, 5, 17, 18, 19, 20, 21, 22, 6, 23, 24, 25,
714 26, 27, 28, 29, 7, 8, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
715 9, 10, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 11,
716 12, 13, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1, 2,
717 3, 4, 5, 14, 15, 16, 17, 6, 7, 8, 9, 10, 11, 12, 13, 14,
718 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 18, 19, 20, 21,
719 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
720 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 55, 56, 22, 23, 24,
721 25, 26, 27, 54, 57, 58, 59, 60, 61, 62, 63, 64, 28, 29, 30, 31,
722 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
723 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
724 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
725 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
726 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
727 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
730 static const uint8_t dnxhd_1250_ac_run_flag[257] = {
731 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1,
732 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
733 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
734 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
735 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
736 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
737 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
740 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
741 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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,
749 static const uint8_t dnxhd_1250_ac_index_flag[257] = {
750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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, 1, 1,
755 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
756 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
757 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
758 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0,
759 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
762 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
763 1, 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,
768 static const uint16_t dnxhd_1250_run_codes[62] = {
769 0, 4, 5, 12, 26, 27, 28, 58,
770 118, 119, 120, 242, 486, 487, 976, 977,
771 978, 979, 980, 981, 982, 983, 984, 985,
772 986, 987, 988, 989, 990, 991, 992, 993,
773 994, 995, 996, 997, 998, 999, 1000, 1001,
774 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
775 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
776 1018, 1019, 1020, 1021, 1022, 1023
778 static const uint8_t dnxhd_1250_run_bits[62] = {
779 1, 3, 3, 4, 5, 5, 5, 6, 7, 7, 7, 8, 9, 9, 10, 10,
780 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 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
784 static const uint8_t dnxhd_1250_run[62] = {
785 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
786 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
787 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
788 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62
791 static const uint8_t dnxhd_1251_dc_codes[12] = {
792 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63,
795 static const uint8_t dnxhd_1251_dc_bits[12] = {
796 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6,
799 static const uint16_t dnxhd_1251_ac_codes[257] = {
800 0, 1, 4, 10, 11, 24, 25, 26,
801 54, 55, 56, 57, 116, 117, 118, 119,
802 240, 241, 242, 243, 244, 245, 492, 493,
803 494, 495, 496, 497, 996, 997, 998, 999,
804 1000, 1001, 1002, 1003, 1004, 1005, 2012, 2013,
805 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,
806 2022, 2023, 2024, 2025, 4052, 4053, 4054, 4055,
807 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063,
808 4064, 4065, 4066, 8134, 8135, 8136, 8137, 8138,
809 8139, 8140, 8141, 8142, 8143, 8144, 8145, 8146,
810 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154,
811 8155, 8156, 16314, 16315, 16316, 16317, 16318, 16319,
812 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327,
813 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
814 16336, 16337, 16338, 16339, 32680, 32681, 32682, 32683,
815 32684, 32685, 32686, 32687, 32688, 32689, 32690, 32691,
816 32692, 32693, 32694, 32695, 32696, 32697, 32698, 32699,
817 32700, 32701, 32702, 32703, 32704, 32705, 32706, 32707,
818 32708, 32709, 32710, 32711, 32712, 32713, 32714, 65430,
819 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
820 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
821 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
822 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
823 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
824 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
825 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
826 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
827 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
828 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
829 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
830 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
831 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
835 static const uint8_t dnxhd_1251_ac_bits[257] = {
836 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
837 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10,
838 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
839 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
840 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
841 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14,
842 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
843 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
844 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
845 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16,
846 16, 16, 16, 16, 16, 16, 16, 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,
855 static const uint8_t dnxhd_1251_ac_level[257] = {
856 1, 1, 2, 3, 0, 4, 5, 2, 6, 7, 8, 3, 9, 10, 11, 4,
857 12, 13, 14, 15, 16, 5, 17, 18, 19, 20, 21, 6, 22, 23, 24, 25,
858 26, 27, 28, 29, 7, 8, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
859 40, 9, 10, 11, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
860 12, 13, 14, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1,
861 2, 3, 4, 5, 6, 7, 8, 15, 16, 17, 9, 10, 11, 12, 13, 14,
862 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 18,
863 19, 20, 21, 22, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
864 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
865 58, 23, 24, 25, 26, 27, 28, 59, 60, 61, 62, 63, 64, 29, 30, 31,
866 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
867 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
868 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
869 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
870 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
871 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
875 static const uint8_t dnxhd_1251_ac_run_flag[257] = {
876 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1,
877 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
878 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
879 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
880 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
881 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0,
882 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
883 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
885 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1,
886 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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,
895 static const uint8_t dnxhd_1251_ac_index_flag[257] = {
896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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, 1,
901 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1,
902 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
903 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
904 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
905 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
908 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
909 1, 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,
915 static const uint16_t dnxhd_1251_run_codes[62] = {
916 0, 4, 5, 12, 26, 27, 28, 58,
917 118, 119, 120, 242, 486, 487, 976, 977,
918 978, 979, 980, 981, 982, 983, 984, 985,
919 986, 987, 988, 989, 990, 991, 992, 993,
920 994, 995, 996, 997, 998, 999, 1000, 1001,
921 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
922 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
923 1018, 1019, 1020, 1021, 1022, 1023,
926 static const uint8_t dnxhd_1251_run_bits[62] = {
927 1, 3, 3, 4, 5, 5, 5, 6, 7, 7, 7, 8, 9, 9, 10, 10,
928 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 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,
933 static const uint8_t dnxhd_1251_run[62] = {
934 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
935 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
936 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
937 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
940 static const uint8_t dnxhd_1252_dc_codes[12] = {
941 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63,
944 static const uint8_t dnxhd_1252_dc_bits[12] = {
945 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6,
948 static const uint16_t dnxhd_1252_ac_codes[257] = {
949 0, 1, 4, 10, 11, 12, 26, 27,
950 56, 57, 58, 118, 119, 120, 242, 243,
951 244, 245, 246, 247, 496, 497, 498, 499,
952 500, 1002, 1003, 1004, 1005, 1006, 1007, 1008,
953 1009, 2020, 2021, 2022, 2023, 2024, 2025, 2026,
954 2027, 2028, 2029, 4060, 4061, 4062, 4063, 4064,
955 4065, 4066, 4067, 4068, 4069, 4070, 4071, 8144,
956 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152,
957 8153, 8154, 8155, 8156, 8157, 8158, 16318, 16319,
958 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327,
959 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
960 32672, 32673, 32674, 32675, 32676, 32677, 32678, 32679,
961 32680, 32681, 32682, 32683, 32684, 32685, 32686, 32687,
962 32688, 32689, 32690, 32691, 32692, 32693, 32694, 65390,
963 65391, 65392, 65393, 65394, 65395, 65396, 65397, 65398,
964 65399, 65400, 65401, 65402, 65403, 65404, 65405, 65406,
965 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414,
966 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422,
967 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
968 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
969 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
970 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
971 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
972 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
973 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
974 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
975 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
976 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
977 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
978 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
979 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
980 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
984 static const uint8_t dnxhd_1252_ac_bits[257] = {
985 2, 2, 3, 4, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8,
986 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10,
987 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12,
988 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13,
989 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
990 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15,
991 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16,
992 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 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,
1004 static const uint8_t dnxhd_1252_ac_level[257] = {
1005 1, 1, 2, 3, 2, 0, 4, 5, 6, 7, 3, 8, 9, 10, 11, 12,
1006 13, 14, 4, 5, 15, 16, 17, 18, 6, 19, 20, 21, 22, 23, 24, 7,
1007 8, 25, 26, 27, 28, 29, 30, 31, 32, 9, 10, 33, 34, 35, 36, 37,
1008 38, 39, 40, 41, 11, 12, 13, 42, 43, 44, 45, 46, 47, 48, 49, 50,
1009 51, 52, 53, 14, 15, 16, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1010 64, 1, 2, 3, 17, 18, 19, 20, 4, 5, 6, 7, 8, 9, 10, 11,
1011 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 21, 22, 23, 24, 25, 22,
1012 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1013 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1014 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 26, 27, 28, 29, 30, 31,
1015 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1016 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1017 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1018 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1019 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
1020 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1024 static const uint8_t dnxhd_1252_ac_run_flag[257] = {
1025 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
1026 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1,
1027 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
1028 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1029 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1030 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
1031 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0,
1032 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1,
1035 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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,
1044 static const uint8_t dnxhd_1252_ac_index_flag[257] = {
1045 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1,
1051 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1,
1052 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 0, 0, 0, 0, 0, 0,
1055 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1058 1, 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,
1064 const CIDEntry ff_dnxhd_cid_table[] = {
1065 { 1235, 1920, 1080, 0, 917504, 917504, 6, 10,
1066 dnxhd_1235_luma_weight, dnxhd_1235_chroma_weight,
1067 dnxhd_1235_1241_dc_codes, dnxhd_1235_1241_dc_bits,
1068 dnxhd_1235_1241_ac_codes, dnxhd_1235_1241_ac_bits, dnxhd_1235_1241_ac_level,
1069 dnxhd_1235_1241_ac_run_flag, dnxhd_1235_1241_ac_index_flag,
1070 dnxhd_1235_1238_1241_run_codes, dnxhd_1235_1238_1241_run_bits, dnxhd_1235_1241_run,
1071 { 175, 185, 365, 440 } },
1072 { 1237, 1920, 1080, 0, 606208, 606208, 4, 8,
1073 dnxhd_1237_luma_weight, dnxhd_1237_chroma_weight,
1074 dnxhd_1237_dc_codes, dnxhd_1237_dc_bits,
1075 dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level,
1076 dnxhd_1237_ac_run_flag, dnxhd_1237_ac_index_flag,
1077 dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run,
1078 { 115, 120, 145, 240, 290 } },
1079 { 1238, 1920, 1080, 0, 917504, 917504, 4, 8,
1080 dnxhd_1238_luma_weight, dnxhd_1238_chroma_weight,
1081 dnxhd_1238_dc_codes, dnxhd_1238_dc_bits,
1082 dnxhd_1238_ac_codes, dnxhd_1238_ac_bits, dnxhd_1238_ac_level,
1083 dnxhd_1238_ac_run_flag, dnxhd_1238_ac_index_flag,
1084 dnxhd_1235_1238_1241_run_codes, dnxhd_1235_1238_1241_run_bits, dnxhd_1238_run,
1085 { 175, 185, 220, 365, 440 } },
1086 { 1241, 1920, 1080, 1, 917504, 458752, 6, 10,
1087 dnxhd_1241_luma_weight, dnxhd_1241_chroma_weight,
1088 dnxhd_1235_1241_dc_codes, dnxhd_1235_1241_dc_bits,
1089 dnxhd_1235_1241_ac_codes, dnxhd_1235_1241_ac_bits, dnxhd_1235_1241_ac_level,
1090 dnxhd_1235_1241_ac_run_flag, dnxhd_1235_1241_ac_index_flag,
1091 dnxhd_1235_1238_1241_run_codes, dnxhd_1235_1238_1241_run_bits, dnxhd_1235_1241_run,
1093 { 1242, 1920, 1080, 1, 606208, 303104, 4, 8,
1094 dnxhd_1242_luma_weight, dnxhd_1242_chroma_weight,
1095 dnxhd_1237_dc_codes, dnxhd_1237_dc_bits,
1096 dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level,
1097 dnxhd_1237_ac_run_flag, dnxhd_1237_ac_index_flag,
1098 dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run,
1100 { 1243, 1920, 1080, 1, 917504, 458752, 4, 8,
1101 dnxhd_1243_luma_weight, dnxhd_1243_chroma_weight,
1102 dnxhd_1238_dc_codes, dnxhd_1238_dc_bits,
1103 dnxhd_1238_ac_codes, dnxhd_1238_ac_bits, dnxhd_1238_ac_level,
1104 dnxhd_1238_ac_run_flag, dnxhd_1238_ac_index_flag,
1105 dnxhd_1235_1238_1241_run_codes, dnxhd_1235_1238_1241_run_bits, dnxhd_1238_run,
1107 { 1250, 1280, 720, 0, 458752, 458752, 6, 10,
1108 dnxhd_1250_luma_weight, dnxhd_1250_chroma_weight,
1109 dnxhd_1250_dc_codes, dnxhd_1250_dc_bits,
1110 dnxhd_1250_ac_codes, dnxhd_1250_ac_bits, dnxhd_1250_ac_level,
1111 dnxhd_1250_ac_run_flag, dnxhd_1250_ac_index_flag,
1112 dnxhd_1250_run_codes, dnxhd_1250_run_bits, dnxhd_1250_run,
1114 { 1251, 1280, 720, 0, 458752, 458752, 4, 8,
1115 dnxhd_1251_luma_weight, dnxhd_1251_chroma_weight,
1116 dnxhd_1251_dc_codes, dnxhd_1251_dc_bits,
1117 dnxhd_1251_ac_codes, dnxhd_1251_ac_bits, dnxhd_1251_ac_level,
1118 dnxhd_1251_ac_run_flag, dnxhd_1251_ac_index_flag,
1119 dnxhd_1251_run_codes, dnxhd_1251_run_bits, dnxhd_1251_run,
1120 { 90, 110, 175, 220 } },
1121 { 1252, 1280, 720, 0, 303104, 303104, 4, 8,
1122 dnxhd_1252_luma_weight, dnxhd_1252_chroma_weight,
1123 dnxhd_1252_dc_codes, dnxhd_1252_dc_bits,
1124 dnxhd_1252_ac_codes, dnxhd_1252_ac_bits, dnxhd_1252_ac_level,
1125 dnxhd_1252_ac_run_flag, dnxhd_1252_ac_index_flag,
1126 dnxhd_1251_run_codes, dnxhd_1251_run_bits, dnxhd_1251_run,
1127 { 60, 75, 115, 145 } },
1128 { 1253, 1920, 1080, 0, 188416, 188416, 4, 8,
1129 dnxhd_1237_luma_weight, dnxhd_1237_chroma_weight,
1130 dnxhd_1237_dc_codes, dnxhd_1237_dc_bits,
1131 dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level,
1132 dnxhd_1237_ac_run_flag, dnxhd_1237_ac_index_flag,
1133 dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run,
1134 { 36, 45, 75, 90 } },
1137 int ff_dnxhd_get_cid_table(int cid)
1140 for (i = 0; i < FF_ARRAY_ELEMS(ff_dnxhd_cid_table); i++)
1141 if (ff_dnxhd_cid_table[i].cid == cid)
1146 int ff_dnxhd_find_cid(AVCodecContext *avctx, int bit_depth)
1149 int mbs = avctx->bit_rate/1000000;
1152 for (i = 0; i < FF_ARRAY_ELEMS(ff_dnxhd_cid_table); i++) {
1153 const CIDEntry *cid = &ff_dnxhd_cid_table[i];
1154 if (cid->width == avctx->width && cid->height == avctx->height &&
1155 cid->interlaced == !!(avctx->flags & CODEC_FLAG_INTERLACED_DCT) &&
1156 cid->bit_depth == bit_depth) {
1157 for (j = 0; j < sizeof(cid->bit_rates); j++) {
1158 if (cid->bit_rates[j] == mbs)