3 * Copyright (c) 2007 SmartJog S.A., Baptiste Coudurier <baptiste dot coudurier at smartjog dot com>
5 * This file is part of FFmpeg.
7 * FFmpeg is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
12 * FFmpeg is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with FFmpeg; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23 #include "dnxhddata.h"
25 /* The quantization tables below are in zigzag order! */
27 static const uint8_t dnxhd_1235_luma_weight[] = {
28 0, 32, 32, 32, 33, 32, 32, 32,
29 32, 31, 32, 33, 33, 33, 33, 35,
30 36, 36, 34, 34, 36, 37, 37, 36,
31 36, 35, 36, 38, 39, 39, 37, 36,
32 37, 37, 39, 41, 42, 41, 39, 39,
33 40, 41, 42, 43, 42, 42, 41, 41,
34 41, 44, 47, 46, 46, 48, 51, 51,
35 50, 50, 53, 55, 55, 56, 60, 60,
38 static const uint8_t dnxhd_1235_chroma_weight[] = {
39 0, 32, 33, 34, 34, 33, 34, 35,
40 37, 40, 43, 42, 39, 38, 39, 41,
41 43, 44, 47, 50, 55, 61, 63, 56,
42 48, 46, 49, 54, 59, 58, 55, 58,
43 63, 65, 67, 74, 84, 82, 75, 72,
44 70, 74, 84, 87, 87, 94, 93, 81,
45 75, 78, 83, 89, 91, 86, 82, 85,
46 90, 90, 85, 79, 73, 73, 73, 73,
49 static const uint8_t dnxhd_1237_luma_weight[] = {
50 0, 32, 33, 34, 34, 36, 37, 36,
51 36, 37, 38, 38, 38, 39, 41, 44,
52 43, 41, 40, 41, 46, 49, 47, 46,
53 47, 49, 51, 54, 60, 62, 59, 55,
54 54, 56, 58, 61, 65, 66, 64, 63,
55 66, 73, 78, 79, 80, 79, 78, 78,
56 82, 87, 89, 90, 93, 95, 96, 97,
57 97, 100, 104, 102, 98, 98, 99, 99,
60 static const uint8_t dnxhd_1237_chroma_weight[] = {
61 0, 32, 36, 39, 39, 38, 39, 41,
62 45, 51, 57, 58, 53, 48, 47, 51,
63 55, 58, 66, 75, 81, 83, 82, 78,
64 73, 72, 74, 77, 83, 85, 83, 82,
65 89, 99, 96, 90, 94, 97, 99, 105,
66 109, 105, 95, 89, 92, 95, 94, 93,
67 92, 88, 89, 90, 93, 95, 96, 97,
68 97, 100, 104, 102, 98, 98, 99, 99,
71 static const uint8_t dnxhd_1238_luma_weight[] = {
72 0, 32, 32, 33, 34, 33, 33, 33,
73 33, 33, 33, 33, 33, 35, 37, 37,
74 36, 36, 35, 36, 38, 38, 36, 35,
75 36, 37, 38, 41, 42, 41, 39, 38,
76 38, 38, 39, 41, 42, 41, 39, 39,
77 40, 41, 43, 44, 44, 44, 44, 44,
78 45, 47, 47, 47, 49, 50, 51, 51,
79 51, 53, 55, 57, 58, 59, 57, 57,
82 static const uint8_t dnxhd_1238_chroma_weight[] = {
83 0, 32, 35, 35, 35, 34, 34, 35,
84 39, 43, 45, 45, 41, 39, 40, 41,
85 42, 44, 48, 55, 59, 63, 65, 59,
86 53, 52, 52, 55, 61, 62, 58, 58,
87 63, 66, 66, 65, 70, 74, 70, 66,
88 65, 68, 75, 77, 74, 74, 77, 76,
89 73, 73, 73, 73, 76, 80, 89, 90,
90 82, 77, 80, 86, 84, 82, 82, 82,
93 static const uint8_t dnxhd_1241_luma_weight[] = {
94 0, 32, 33, 34, 34, 35, 36, 37,
95 36, 37, 38, 38, 38, 39, 39, 40,
96 40, 38, 38, 39, 38, 37, 39, 41,
97 41, 42, 43, 45, 45, 46, 47, 46,
98 45, 43, 39, 37, 37, 40, 44, 45,
99 45, 46, 46, 46, 47, 47, 46, 44,
100 42, 43, 45, 47, 48, 49, 50, 49,
101 48, 46, 47, 48, 48, 49, 49, 49,
104 static const uint8_t dnxhd_1241_chroma_weight[] = {
105 0, 32, 36, 38, 37, 37, 40, 41,
106 40, 40, 42, 42, 41, 41, 41, 41,
107 42, 43, 44, 44, 45, 46, 46, 45,
108 44, 45, 45, 45, 45, 46, 47, 46,
109 45, 44, 42, 41, 43, 45, 45, 47,
110 48, 48, 48, 46, 47, 47, 46, 47,
111 46, 45, 45, 47, 48, 49, 50, 49,
112 48, 46, 48, 49, 48, 49, 49, 49,
115 static const uint8_t dnxhd_1242_luma_weight[] = {
116 0, 32, 33, 33, 34, 35, 36, 35,
117 33, 33, 35, 36, 37, 37, 38, 37,
118 37, 37, 36, 37, 37, 37, 38, 39,
119 37, 36, 37, 40, 42, 45, 46, 44,
120 41, 42, 44, 45, 47, 49, 50, 48,
121 46, 48, 49, 50, 52, 52, 50, 49,
122 47, 48, 50, 50, 51, 51, 50, 49,
123 49, 51, 52, 51, 49, 47, 47, 47,
126 static const uint8_t dnxhd_1242_chroma_weight[] = {
127 0, 32, 37, 42, 45, 45, 45, 44,
128 38, 37, 40, 42, 44, 49, 51, 47,
129 41, 40, 43, 44, 46, 48, 51, 54,
130 51, 47, 47, 45, 47, 50, 51, 49,
131 46, 47, 49, 47, 50, 55, 55, 51,
132 48, 49, 51, 51, 52, 52, 54, 54,
133 49, 49, 52, 53, 54, 54, 53, 53,
134 55, 59, 63, 62, 60, 60, 60, 60,
137 static const uint8_t dnxhd_1243_luma_weight[] = {
138 0, 32, 32, 33, 33, 35, 35, 35,
139 35, 35, 35, 35, 34, 35, 38, 40,
140 39, 37, 37, 37, 36, 35, 36, 38,
141 40, 41, 42, 44, 45, 44, 42, 41,
142 40, 38, 36, 36, 37, 38, 40, 43,
143 44, 45, 45, 45, 45, 45, 45, 41,
144 39, 41, 45, 47, 47, 48, 48, 48,
145 46, 44, 45, 47, 47, 48, 47, 47,
148 static const uint8_t dnxhd_1243_chroma_weight[] = {
149 0, 32, 36, 37, 36, 37, 39, 39,
150 41, 43, 43, 42, 41, 41, 41, 42,
151 43, 43, 43, 44, 44, 44, 46, 47,
152 46, 45, 45, 45, 45, 46, 44, 44,
153 45, 44, 42, 41, 43, 46, 45, 44,
154 45, 45, 45, 46, 46, 46, 45, 44,
155 45, 44, 45, 47, 47, 48, 49, 48,
156 46, 45, 46, 47, 47, 48, 47, 47,
159 static const uint8_t dnxhd_1250_luma_weight[] = {
160 0, 32, 32, 33, 34, 35, 35, 35,
161 34, 34, 35, 36, 36, 36, 36, 36,
162 37, 38, 38, 38, 38, 38, 39, 39,
163 38, 38, 39, 41, 43, 43, 42, 41,
164 40, 40, 39, 40, 41, 41, 39, 39,
165 40, 42, 47, 50, 47, 45, 46, 46,
166 44, 45, 46, 47, 49, 54, 58, 54,
167 48, 49, 54, 57, 60, 62, 63, 63,
170 static const uint8_t dnxhd_1250_chroma_weight[] = {
171 0, 32, 35, 36, 36, 35, 36, 39,
172 41, 43, 45, 44, 41, 39, 40, 42,
173 43, 43, 45, 48, 49, 51, 52, 50,
174 50, 51, 51, 51, 51, 52, 53, 54,
175 51, 49, 51, 52, 52, 56, 57, 55,
176 54, 54, 55, 56, 55, 58, 58, 58,
177 60, 61, 62, 62, 59, 57, 58, 58,
178 61, 59, 59, 59, 60, 62, 63, 63,
181 static const uint8_t dnxhd_1251_luma_weight[] = {
182 0, 32, 32, 34, 34, 34, 34, 35,
183 35, 35, 36, 37, 36, 36, 35, 36,
184 38, 38, 38, 38, 38, 38, 38, 38,
185 38, 38, 39, 41, 44, 43, 41, 40,
186 40, 40, 40, 39, 40, 41, 40, 39,
187 40, 43, 46, 46, 44, 44, 44, 42,
188 41, 43, 46, 48, 50, 55, 58, 53,
189 48, 50, 55, 58, 61, 62, 62, 62,
192 static const uint8_t dnxhd_1251_chroma_weight[] = {
193 0, 32, 35, 36, 36, 35, 36, 39,
194 41, 43, 45, 44, 41, 39, 40, 42,
195 43, 43, 45, 48, 48, 48, 50, 50,
196 50, 51, 51, 51, 51, 52, 53, 54,
197 51, 49, 51, 52, 52, 56, 57, 55,
198 54, 54, 55, 56, 55, 58, 58, 58,
199 60, 61, 62, 62, 59, 57, 58, 58,
200 61, 59, 59, 59, 61, 62, 62, 62,
203 static const uint8_t dnxhd_1252_luma_weight[] = {
204 0, 32, 34, 35, 36, 36, 36, 37,
205 36, 37, 39, 40, 41, 40, 40, 40,
206 41, 41, 42, 41, 41, 43, 44, 44,
207 45, 46, 48, 55, 60, 57, 52, 50,
208 49, 49, 52, 52, 53, 55, 58, 62,
209 65, 73, 82, 82, 80, 78, 73, 68,
210 71, 82, 90, 90, 88, 87, 90, 95,
211 100, 107, 103, 97, 95, 93, 99, 99,
213 static const uint8_t dnxhd_1252_chroma_weight[] = {
214 0, 32, 35, 36, 37, 37, 38, 40,
215 42, 46, 49, 50, 50, 49, 49, 53,
216 56, 56, 57, 58, 60, 62, 64, 65,
217 63, 64, 64, 65, 66, 65, 67, 71,
218 72, 74, 74, 74, 74, 77, 81, 78,
219 72, 73, 82, 85, 89, 88, 84, 80,
220 90, 100, 90, 90, 88, 87, 90, 95,
221 114, 128, 125, 129, 134, 125, 116, 116,
224 static const uint8_t dnxhd_1237_dc_codes[12] = {
225 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63,
228 static const uint8_t dnxhd_1237_dc_bits[12] = {
229 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6,
232 static const uint16_t dnxhd_1237_ac_codes[257] = {
233 0, 1, 4, 5, 12, 26, 27, 56,
234 57, 58, 59, 120, 121, 244, 245, 246,
235 247, 248, 498, 499, 500, 501, 502, 1006,
236 1007, 1008, 1009, 1010, 1011, 2024, 2025, 2026,
237 2027, 2028, 2029, 2030, 2031, 4064, 4065, 4066,
238 4067, 4068, 4069, 4070, 4071, 4072, 4073, 8148,
239 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156,
240 8157, 8158, 16318, 16319, 16320, 16321, 16322, 16323,
241 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331,
242 16332, 16333, 32668, 32669, 32670, 32671, 32672, 32673,
243 32674, 32675, 32676, 32677, 32678, 32679, 32680, 32681,
244 32682, 32683, 32684, 65370, 65371, 65372, 65373, 65374,
245 65375, 65376, 65377, 65378, 65379, 65380, 65381, 65382,
246 65383, 65384, 65385, 65386, 65387, 65388, 65389, 65390,
247 65391, 65392, 65393, 65394, 65395, 65396, 65397, 65398,
248 65399, 65400, 65401, 65402, 65403, 65404, 65405, 65406,
249 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414,
250 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422,
251 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
252 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
253 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
254 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
255 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
256 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
257 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
258 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
259 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
260 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
261 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
262 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
263 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
264 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
268 static const uint8_t dnxhd_1237_ac_bits[257] = {
269 2, 2, 3, 3, 4, 5, 5, 6, 6, 6, 6, 7, 7, 8, 8, 8,
270 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 11, 11, 11,
271 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13,
272 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14,
273 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15,
274 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 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,
284 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
288 static const uint8_t dnxhd_1237_ac_level[257] = {
289 3, 3, 5, 0, 7, 9, 5, 11, 13, 15, 7, 17, 19, 21, 23, 25,
290 9, 11, 27, 29, 31, 33, 13, 35, 37, 39, 41, 43, 15, 45, 47, 49,
291 51, 53, 55, 17, 19, 57, 59, 61, 63, 65, 67, 69, 21, 23, 25, 71,
292 73, 75, 77, 79, 81, 83, 27, 29, 31, 33, 85, 87, 89, 91, 93, 95,
293 97, 99,101,103,105, 35, 37, 39, 41, 43,107,109,111,113,115,117,
294 119,121,123,129, 3, 45, 47, 49, 51, 53, 55,125,127, 5, 7, 9,
295 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41,
296 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73,
297 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99,101,103,105,
298 107,109,111,113,115,117,119,121,123,125,127,129, 57, 59, 61, 63,
299 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
300 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
301 129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31,
302 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63,
303 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
304 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
308 static const uint8_t dnxhd_1237_ac_flags[257] = {
309 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0,
310 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0,
311 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0,
312 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
313 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
314 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 0, 0, 1, 1, 1,
315 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
316 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 2, 2, 2, 2,
319 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
320 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
321 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
322 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
323 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
324 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
328 static const uint16_t dnxhd_1237_run_codes[62] = {
329 0, 4, 10, 11, 24, 25, 26, 54,
330 55, 56, 57, 58, 118, 119, 240, 482,
331 483, 484, 485, 486, 487, 488, 489, 490,
332 491, 492, 493, 494, 990, 991, 992, 993,
333 994, 995, 996, 997, 998, 999, 1000, 1001,
334 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
335 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
336 1018, 1019, 1020, 1021, 1022, 1023,
339 static const uint8_t dnxhd_1237_run_bits[62] = {
340 1, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 8, 9,
341 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10,
342 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
343 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
346 static const uint8_t dnxhd_1237_run[62] = {
347 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
348 17, 18, 19, 20, 21, 53, 57, 58, 59, 60, 61, 62, 22, 23, 24, 25,
349 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
350 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56,
353 static const uint8_t dnxhd_1238_dc_codes[12] = {
354 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63,
357 static const uint8_t dnxhd_1238_dc_bits[12] = {
358 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6,
361 static const uint16_t dnxhd_1238_ac_codes[257] = {
362 0, 1, 4, 10, 11, 24, 25, 26,
363 54, 55, 56, 57, 116, 117, 118, 119,
364 240, 241, 242, 243, 244, 245, 492, 493,
365 494, 495, 496, 497, 498, 499, 1000, 1001,
366 1002, 1003, 1004, 1005, 1006, 1007, 1008, 2018,
367 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026,
368 2027, 4056, 4057, 4058, 4059, 4060, 4061, 4062,
369 4063, 4064, 4065, 4066, 4067, 4068, 4069, 8140,
370 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148,
371 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156,
372 16314, 16315, 16316, 16317, 16318, 16319, 16320, 16321,
373 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329,
374 16330, 16331, 16332, 16333, 16334, 16335, 16336, 16337,
375 16338, 32678, 32679, 32680, 32681, 32682, 32683, 32684,
376 32685, 32686, 32687, 32688, 32689, 32690, 32691, 32692,
377 32693, 32694, 32695, 32696, 32697, 32698, 32699, 32700,
378 32701, 32702, 32703, 32704, 32705, 65412, 65413, 65414,
379 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422,
380 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
381 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
382 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
383 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
384 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
385 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
386 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
387 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
388 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
389 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
390 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
391 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
392 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
393 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
397 static const uint8_t dnxhd_1238_ac_bits[257] = {
398 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
399 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10,
400 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11,
401 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13,
402 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
403 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
404 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15,
405 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
406 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
407 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
408 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
409 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
410 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
411 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
412 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
413 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
417 static const uint8_t dnxhd_1238_ac_level[257] = {
418 3, 3, 5, 7, 0, 9, 11, 5, 13, 15, 17, 7, 19, 21, 23, 9,
419 25, 27, 29, 31, 33, 11, 35, 37, 39, 41, 43, 45, 13, 15, 47, 49,
420 51, 53, 55, 57, 59, 17, 19, 61, 63, 65, 67, 69, 71, 73, 75, 21,
421 23, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 25, 27, 29, 99,
422 101,103,105,107,109,111,113,115,117,119,121,123, 31, 33, 35, 37,
423 125,127,129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27,
424 29, 31, 33, 39, 41, 43, 45, 47, 49, 35, 37, 39, 41, 43, 45, 47,
425 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 81, 51,
426 53, 55, 57, 59, 61, 77, 79, 83, 85, 87, 89, 91, 93, 95, 97, 99,
427 101,103,105,107,109,111,113,115,117,119,121,123,125,127,129, 63,
428 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
429 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
430 129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31,
431 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63,
432 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
433 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
437 static const uint8_t dnxhd_1238_ac_flags[257] = {
438 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2,
439 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0,
440 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2,
441 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0,
442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2,
443 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
444 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
445 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
446 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
447 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
448 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
449 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
450 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
451 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
452 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
453 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
457 static const uint16_t dnxhd_1235_1238_1241_run_codes[62] = {
458 0, 4, 10, 11, 24, 25, 26, 27,
459 56, 57, 58, 59, 120, 242, 486, 487,
460 488, 489, 980, 981, 982, 983, 984, 985,
461 986, 987, 988, 989, 990, 991, 992, 993,
462 994, 995, 996, 997, 998, 999, 1000, 1001,
463 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
464 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
465 1018, 1019, 1020, 1021, 1022, 1023,
468 static const uint8_t dnxhd_1235_1238_1241_run_bits[62] = {
469 1, 3, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 8, 9, 9,
470 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
471 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
472 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
475 static const uint8_t dnxhd_1238_run[62] = {
476 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
477 20, 21, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
478 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
479 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
482 static const uint8_t dnxhd_1235_1241_dc_codes[14] = {
483 10, 62, 11, 12, 13, 0, 1, 2, 3, 4, 14, 30, 126, 127,
486 static const uint8_t dnxhd_1235_1241_dc_bits[14] = {
487 4, 6, 4, 4, 4, 3, 3, 3, 3, 3, 4, 5, 7, 7,
490 static const uint16_t dnxhd_1235_1241_ac_codes[257] = {
491 0, 1, 4, 10, 11, 24, 25, 26,
492 54, 55, 56, 57, 116, 117, 118, 119,
493 240, 241, 242, 243, 244, 245, 492, 493,
494 494, 495, 496, 497, 498, 998, 999, 1000,
495 1001, 1002, 1003, 1004, 1005, 1006, 1007, 2016,
496 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024,
497 2025, 2026, 4054, 4055, 4056, 4057, 4058, 4059,
498 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067,
499 4068, 4069, 8140, 8141, 8142, 8143, 8144, 8145,
500 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153,
501 8154, 8155, 8156, 8157, 16316, 16317, 16318, 16319,
502 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327,
503 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
504 16336, 16337, 32676, 32677, 32678, 32679, 32680, 32681,
505 32682, 32683, 32684, 32685, 32686, 32687, 32688, 32689,
506 32690, 32691, 32692, 32693, 32694, 32695, 32696, 32697,
507 32698, 32699, 32700, 32701, 32702, 32703, 32704, 32705,
508 32706, 32707, 32708, 65418, 65419, 65420, 65421, 65422,
509 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
510 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
511 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
512 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
513 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
514 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
515 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
516 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
517 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
518 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
519 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
520 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
521 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
522 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
526 static const uint8_t dnxhd_1235_1241_ac_bits[257] = {
527 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
528 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10,
529 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11,
530 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
531 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
532 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
533 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15,
534 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
535 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16,
536 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
537 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
538 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
539 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
540 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
541 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
542 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
546 static const uint8_t dnxhd_1235_1241_ac_level[257] = {
547 3, 3, 5, 7, 0, 9, 11, 5, 13, 15, 17, 7, 19, 21, 23, 9,
548 25, 27, 29, 31, 33, 11, 35, 37, 39, 41, 43, 13, 15, 45, 47, 49,
549 51, 53, 55, 57, 59, 17, 19, 61, 63, 65, 67, 69, 71, 73, 75, 77,
550 21, 23, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99,101, 25, 27,
551 29, 31,103,105,107,109,111,113,115,117,119,121,123,125,127, 3,
552 33, 35, 37, 39,129, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25,
553 27, 29, 31, 33, 35, 41, 43, 45, 47, 49, 37, 39, 41, 43, 45, 47,
554 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79,
555 81, 83, 85, 51, 53, 55, 57, 59, 61, 63, 65, 87, 89, 91, 93, 95,
556 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
557 129, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
558 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
559 129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31,
560 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63,
561 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
562 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
566 static const uint8_t dnxhd_1235_1241_ac_flags[257] = {
567 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2,
568 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0,
569 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
570 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2,
571 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
572 2, 2, 2, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
573 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,
574 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
575 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1,
576 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
577 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
578 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
579 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
580 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
581 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
582 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
586 static const uint8_t dnxhd_1235_1241_run[62] = {
587 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
588 18, 20, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
589 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
590 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
593 static const uint8_t dnxhd_1250_dc_codes[14] = {
594 10, 62, 11, 12, 13, 0, 1, 2, 3, 4, 14, 30, 126, 127
596 static const uint8_t dnxhd_1250_dc_bits[14] = {
597 4, 6, 4, 4, 4, 3, 3, 3, 3, 3, 4, 5, 7, 7
599 static const uint16_t dnxhd_1250_ac_codes[257] = {
600 0, 1, 4, 10, 11, 24, 25, 26,
601 54, 55, 56, 57, 116, 117, 118, 119,
602 240, 241, 242, 243, 244, 245, 492, 493,
603 494, 495, 496, 497, 498, 998, 999, 1000,
604 1001, 1002, 1003, 1004, 1005, 1006, 2014, 2015,
605 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023,
606 2024, 2025, 4052, 4053, 4054, 4055, 4056, 4057,
607 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065,
608 4066, 4067, 8136, 8137, 8138, 8139, 8140, 8141,
609 8142, 8143, 8144, 8145, 8146, 8147, 8148, 8149,
610 8150, 8151, 8152, 8153, 8154, 8155, 8156, 16314,
611 16315, 16316, 16317, 16318, 16319, 16320, 16321, 16322,
612 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330,
613 16331, 16332, 16333, 16334, 16335, 16336, 16337, 16338,
614 32678, 32679, 32680, 32681, 32682, 32683, 32684, 32685,
615 32686, 32687, 32688, 32689, 32690, 32691, 32692, 32693,
616 32694, 32695, 32696, 32697, 32698, 32699, 32700, 32701,
617 32702, 32703, 32704, 32705, 32706, 32707, 32708, 32709,
618 32710, 32711, 32712, 65426, 65427, 65428, 65429, 65430,
619 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
620 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
621 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
622 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
623 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
624 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
625 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
626 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
627 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
628 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
629 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
630 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
631 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
634 static const uint8_t dnxhd_1250_ac_bits[257] = {
635 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
636 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10,
637 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
638 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
639 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
640 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14,
641 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
642 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
643 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
644 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
645 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
646 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
647 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
648 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
649 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
650 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
653 static const uint8_t dnxhd_1250_ac_level[257] = {
654 3, 3, 5, 7, 0, 9, 11, 5, 13, 15, 17, 7, 19, 21, 23, 9,
655 25, 27, 29, 31, 33, 11, 35, 37, 39, 41, 43, 45, 13, 47, 49, 51,
656 53, 55, 57, 59, 15, 17, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79,
657 19, 21, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99,101,103,105, 23,
658 25, 27,107,109,111,113,115,117,119,121,123,125,127,129, 3, 5,
659 7, 9, 11, 29, 31, 33, 35, 13, 15, 17, 19, 21, 23, 25, 27, 29,
660 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 37, 39, 41, 43,
661 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85,
662 87, 89, 91, 93, 95, 97, 99,101,103,105,107,111,113, 45, 47, 49,
663 51, 53, 55,109,115,117,119,121,123,125,127,129, 57, 59, 61, 63,
664 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
665 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
666 129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31,
667 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63,
668 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
669 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
672 static const uint8_t dnxhd_1250_ac_flags[257] = {
673 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2,
674 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
675 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
676 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
677 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
678 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
679 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
680 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
681 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
682 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
683 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
684 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
685 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
686 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
687 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
688 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
691 static const uint16_t dnxhd_1250_run_codes[62] = {
692 0, 4, 5, 12, 26, 27, 28, 58,
693 118, 119, 120, 242, 486, 487, 976, 977,
694 978, 979, 980, 981, 982, 983, 984, 985,
695 986, 987, 988, 989, 990, 991, 992, 993,
696 994, 995, 996, 997, 998, 999, 1000, 1001,
697 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
698 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
699 1018, 1019, 1020, 1021, 1022, 1023
701 static const uint8_t dnxhd_1250_run_bits[62] = {
702 1, 3, 3, 4, 5, 5, 5, 6, 7, 7, 7, 8, 9, 9, 10, 10,
703 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
704 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
705 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10
707 static const uint8_t dnxhd_1250_run[62] = {
708 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
709 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
710 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
711 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62
714 static const uint8_t dnxhd_1251_dc_codes[12] = {
715 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63,
718 static const uint8_t dnxhd_1251_dc_bits[12] = {
719 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6,
722 static const uint16_t dnxhd_1251_ac_codes[257] = {
723 0, 1, 4, 10, 11, 24, 25, 26,
724 54, 55, 56, 57, 116, 117, 118, 119,
725 240, 241, 242, 243, 244, 245, 492, 493,
726 494, 495, 496, 497, 996, 997, 998, 999,
727 1000, 1001, 1002, 1003, 1004, 1005, 2012, 2013,
728 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,
729 2022, 2023, 2024, 2025, 4052, 4053, 4054, 4055,
730 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063,
731 4064, 4065, 4066, 8134, 8135, 8136, 8137, 8138,
732 8139, 8140, 8141, 8142, 8143, 8144, 8145, 8146,
733 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154,
734 8155, 8156, 16314, 16315, 16316, 16317, 16318, 16319,
735 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327,
736 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
737 16336, 16337, 16338, 16339, 32680, 32681, 32682, 32683,
738 32684, 32685, 32686, 32687, 32688, 32689, 32690, 32691,
739 32692, 32693, 32694, 32695, 32696, 32697, 32698, 32699,
740 32700, 32701, 32702, 32703, 32704, 32705, 32706, 32707,
741 32708, 32709, 32710, 32711, 32712, 32713, 32714, 65430,
742 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
743 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
744 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
745 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
746 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
747 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
748 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
749 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
750 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
751 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
752 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
753 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
754 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
758 static const uint8_t dnxhd_1251_ac_bits[257] = {
759 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
760 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10,
761 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
762 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
763 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
764 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14,
765 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
766 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
767 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
768 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16,
769 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
770 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
771 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
772 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
773 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
774 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
778 static const uint8_t dnxhd_1251_ac_level[257] = {
779 3, 3, 5, 7, 0, 9, 11, 5, 13, 15, 17, 7, 19, 21, 23, 9,
780 25, 27, 29, 31, 33, 11, 35, 37, 39, 41, 43, 13, 45, 47, 49, 51,
781 53, 55, 57, 59, 15, 17, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79,
782 81, 19, 21, 23, 83, 85, 87, 89, 91, 93, 95, 97, 99,101,103,105,
783 25, 27, 29,107,109,111,113,115,117,119,121,123,125,127,129, 3,
784 5, 7, 9, 11, 13, 15, 17, 31, 33, 35, 19, 21, 23, 25, 27, 29,
785 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 37,
786 39, 41, 43, 45, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83,
787 85, 87, 89, 91, 93, 95, 97, 99,101,103,105,107,109,111,113,115,
788 117, 47, 49, 51, 53, 55, 57,119,121,123,125,127,129, 59, 61, 63,
789 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
790 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
791 129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31,
792 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63,
793 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
794 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
798 static const uint8_t dnxhd_1251_ac_flags[257] = {
799 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2,
800 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
801 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
802 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
803 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
804 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1,
805 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
806 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
807 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
808 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2,
809 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
810 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
811 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
812 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
813 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
814 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
818 static const uint16_t dnxhd_1251_run_codes[62] = {
819 0, 4, 5, 12, 26, 27, 28, 58,
820 118, 119, 120, 242, 486, 487, 976, 977,
821 978, 979, 980, 981, 982, 983, 984, 985,
822 986, 987, 988, 989, 990, 991, 992, 993,
823 994, 995, 996, 997, 998, 999, 1000, 1001,
824 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
825 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
826 1018, 1019, 1020, 1021, 1022, 1023,
829 static const uint8_t dnxhd_1251_run_bits[62] = {
830 1, 3, 3, 4, 5, 5, 5, 6, 7, 7, 7, 8, 9, 9, 10, 10,
831 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
832 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
833 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
836 static const uint8_t dnxhd_1251_run[62] = {
837 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
838 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
839 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
840 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
843 static const uint8_t dnxhd_1252_dc_codes[12] = {
844 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63,
847 static const uint8_t dnxhd_1252_dc_bits[12] = {
848 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6,
851 static const uint16_t dnxhd_1252_ac_codes[257] = {
852 0, 1, 4, 10, 11, 12, 26, 27,
853 56, 57, 58, 118, 119, 120, 242, 243,
854 244, 245, 246, 247, 496, 497, 498, 499,
855 500, 1002, 1003, 1004, 1005, 1006, 1007, 1008,
856 1009, 2020, 2021, 2022, 2023, 2024, 2025, 2026,
857 2027, 2028, 2029, 4060, 4061, 4062, 4063, 4064,
858 4065, 4066, 4067, 4068, 4069, 4070, 4071, 8144,
859 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152,
860 8153, 8154, 8155, 8156, 8157, 8158, 16318, 16319,
861 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327,
862 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
863 32672, 32673, 32674, 32675, 32676, 32677, 32678, 32679,
864 32680, 32681, 32682, 32683, 32684, 32685, 32686, 32687,
865 32688, 32689, 32690, 32691, 32692, 32693, 32694, 65390,
866 65391, 65392, 65393, 65394, 65395, 65396, 65397, 65398,
867 65399, 65400, 65401, 65402, 65403, 65404, 65405, 65406,
868 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414,
869 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422,
870 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
871 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
872 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
873 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
874 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
875 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
876 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
877 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
878 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
879 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
880 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
881 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
882 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
883 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
887 static const uint8_t dnxhd_1252_ac_bits[257] = {
888 2, 2, 3, 4, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8,
889 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10,
890 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12,
891 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13,
892 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
893 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15,
894 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16,
895 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
896 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
897 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
898 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
899 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
900 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
901 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
902 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
903 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
907 static const uint8_t dnxhd_1252_ac_level[257] = {
908 3, 3, 5, 7, 5, 0, 9, 11, 13, 15, 7, 17, 19, 21, 23, 25,
909 27, 29, 9, 11, 31, 33, 35, 37, 13, 39, 41, 43, 45, 47, 49, 15,
910 17, 51, 53, 55, 57, 59, 61, 63, 65, 19, 21, 67, 69, 71, 73, 75,
911 77, 79, 81, 83, 23, 25, 27, 85, 87, 89, 91, 93, 95, 97, 99,101,
912 103,105,107, 29, 31, 33,109,111,113,115,117,119,121,123,125,127,
913 129, 3, 5, 7, 35, 37, 39, 41, 9, 11, 13, 15, 17, 19, 21, 23,
914 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 43, 45, 47, 49, 51, 45,
915 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77,
916 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99,101,103,105,107,109,
917 111,113,115,117,119,121,123,125,127,129, 53, 55, 57, 59, 61, 63,
918 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
919 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
920 129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31,
921 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63,
922 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
923 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
927 static const uint8_t dnxhd_1252_ac_flags[257] = {
928 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
929 0, 0, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2,
930 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0,
931 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
932 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
933 0, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
934 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1,
935 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
936 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
937 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
938 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
939 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
940 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
941 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
942 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
943 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
947 const CIDEntry ff_dnxhd_cid_table[] = {
948 { 1235, 1920, 1080, 0, 917504, 917504, 6, 10, 4,
949 dnxhd_1235_luma_weight, dnxhd_1235_chroma_weight,
950 dnxhd_1235_1241_dc_codes, dnxhd_1235_1241_dc_bits,
951 dnxhd_1235_1241_ac_codes, dnxhd_1235_1241_ac_bits, dnxhd_1235_1241_ac_level,
952 dnxhd_1235_1241_ac_flags,
953 dnxhd_1235_1238_1241_run_codes, dnxhd_1235_1238_1241_run_bits, dnxhd_1235_1241_run,
954 { 175, 185, 365, 440 } },
955 { 1237, 1920, 1080, 0, 606208, 606208, 4, 8, 3,
956 dnxhd_1237_luma_weight, dnxhd_1237_chroma_weight,
957 dnxhd_1237_dc_codes, dnxhd_1237_dc_bits,
958 dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level,
960 dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run,
961 { 115, 120, 145, 240, 290 } },
962 { 1238, 1920, 1080, 0, 917504, 917504, 4, 8, 4,
963 dnxhd_1238_luma_weight, dnxhd_1238_chroma_weight,
964 dnxhd_1238_dc_codes, dnxhd_1238_dc_bits,
965 dnxhd_1238_ac_codes, dnxhd_1238_ac_bits, dnxhd_1238_ac_level,
967 dnxhd_1235_1238_1241_run_codes, dnxhd_1235_1238_1241_run_bits, dnxhd_1238_run,
968 { 175, 185, 220, 365, 440 } },
969 { 1241, 1920, 1080, 1, 917504, 458752, 6, 10, 4,
970 dnxhd_1241_luma_weight, dnxhd_1241_chroma_weight,
971 dnxhd_1235_1241_dc_codes, dnxhd_1235_1241_dc_bits,
972 dnxhd_1235_1241_ac_codes, dnxhd_1235_1241_ac_bits, dnxhd_1235_1241_ac_level,
973 dnxhd_1235_1241_ac_flags,
974 dnxhd_1235_1238_1241_run_codes, dnxhd_1235_1238_1241_run_bits, dnxhd_1235_1241_run,
976 { 1242, 1920, 1080, 1, 606208, 303104, 4, 8, 3,
977 dnxhd_1242_luma_weight, dnxhd_1242_chroma_weight,
978 dnxhd_1237_dc_codes, dnxhd_1237_dc_bits,
979 dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level,
981 dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run,
983 { 1243, 1920, 1080, 1, 917504, 458752, 4, 8, 4,
984 dnxhd_1243_luma_weight, dnxhd_1243_chroma_weight,
985 dnxhd_1238_dc_codes, dnxhd_1238_dc_bits,
986 dnxhd_1238_ac_codes, dnxhd_1238_ac_bits, dnxhd_1238_ac_level,
988 dnxhd_1235_1238_1241_run_codes, dnxhd_1235_1238_1241_run_bits, dnxhd_1238_run,
990 { 1250, 1280, 720, 0, 458752, 458752, 6, 10, 4,
991 dnxhd_1250_luma_weight, dnxhd_1250_chroma_weight,
992 dnxhd_1250_dc_codes, dnxhd_1250_dc_bits,
993 dnxhd_1250_ac_codes, dnxhd_1250_ac_bits, dnxhd_1250_ac_level,
995 dnxhd_1250_run_codes, dnxhd_1250_run_bits, dnxhd_1250_run,
997 { 1251, 1280, 720, 0, 458752, 458752, 4, 8, 4,
998 dnxhd_1251_luma_weight, dnxhd_1251_chroma_weight,
999 dnxhd_1251_dc_codes, dnxhd_1251_dc_bits,
1000 dnxhd_1251_ac_codes, dnxhd_1251_ac_bits, dnxhd_1251_ac_level,
1001 dnxhd_1251_ac_flags,
1002 dnxhd_1251_run_codes, dnxhd_1251_run_bits, dnxhd_1251_run,
1003 { 90, 110, 175, 220 } },
1004 { 1252, 1280, 720, 0, 303104, 303104, 4, 8, 5,
1005 dnxhd_1252_luma_weight, dnxhd_1252_chroma_weight,
1006 dnxhd_1252_dc_codes, dnxhd_1252_dc_bits,
1007 dnxhd_1252_ac_codes, dnxhd_1252_ac_bits, dnxhd_1252_ac_level,
1008 dnxhd_1252_ac_flags,
1009 dnxhd_1251_run_codes, dnxhd_1251_run_bits, dnxhd_1251_run,
1010 { 60, 75, 115, 145 } },
1011 { 1253, 1920, 1080, 0, 188416, 188416, 4, 8, 3,
1012 dnxhd_1237_luma_weight, dnxhd_1237_chroma_weight,
1013 dnxhd_1237_dc_codes, dnxhd_1237_dc_bits,
1014 dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level,
1015 dnxhd_1237_ac_flags,
1016 dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run,
1017 { 36, 45, 75, 90 } },
1020 int ff_dnxhd_get_cid_table(int cid)
1023 for (i = 0; i < FF_ARRAY_ELEMS(ff_dnxhd_cid_table); i++)
1024 if (ff_dnxhd_cid_table[i].cid == cid)
1029 int ff_dnxhd_find_cid(AVCodecContext *avctx, int bit_depth)
1032 int mbs = avctx->bit_rate/1000000;
1035 for (i = 0; i < FF_ARRAY_ELEMS(ff_dnxhd_cid_table); i++) {
1036 const CIDEntry *cid = &ff_dnxhd_cid_table[i];
1037 if (cid->width == avctx->width && cid->height == avctx->height &&
1038 cid->interlaced == !!(avctx->flags & CODEC_FLAG_INTERLACED_DCT) &&
1039 cid->bit_depth == bit_depth) {
1040 for (j = 0; j < sizeof(cid->bit_rates); j++) {
1041 if (cid->bit_rates[j] == mbs)