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 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 3, 3, 5, 0, 7, 9, 5, 11, 13, 15, 7, 17, 19, 21, 23, 25,
288 9, 11, 27, 29, 31, 33, 13, 35, 37, 39, 41, 43, 15, 45, 47, 49,
289 51, 53, 55, 17, 19, 57, 59, 61, 63, 65, 67, 69, 21, 23, 25, 71,
290 73, 75, 77, 79, 81, 83, 27, 29, 31, 33, 85, 87, 89, 91, 93, 95,
291 97, 99,101,103,105, 35, 37, 39, 41, 43,107,109,111,113,115,117,
292 119,121,123,129, 3, 45, 47, 49, 51, 53, 55,125,127, 5, 7, 9,
293 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41,
294 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73,
295 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99,101,103,105,
296 107,109,111,113,115,117,119,121,123,125,127,129, 57, 59, 61, 63,
297 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
298 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
299 129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31,
300 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63,
301 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
302 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
306 static const uint8_t dnxhd_1237_ac_flags[257] = {
307 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0,
308 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0,
309 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0,
310 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
311 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0,
312 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 0, 0, 1, 1, 1,
313 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
314 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 2, 2, 2, 2,
317 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
318 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
319 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
320 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
321 3, 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,
326 static const uint16_t dnxhd_1237_run_codes[62] = {
327 0, 4, 10, 11, 24, 25, 26, 54,
328 55, 56, 57, 58, 118, 119, 240, 482,
329 483, 484, 485, 486, 487, 488, 489, 490,
330 491, 492, 493, 494, 990, 991, 992, 993,
331 994, 995, 996, 997, 998, 999, 1000, 1001,
332 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
333 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
334 1018, 1019, 1020, 1021, 1022, 1023,
337 static const uint8_t dnxhd_1237_run_bits[62] = {
338 1, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 8, 9,
339 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10,
340 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
341 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
344 static const uint8_t dnxhd_1237_run[62] = {
345 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
346 17, 18, 19, 20, 21, 53, 57, 58, 59, 60, 61, 62, 22, 23, 24, 25,
347 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
348 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56,
351 static const uint8_t dnxhd_1238_dc_codes[12] = {
352 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63,
355 static const uint8_t dnxhd_1238_dc_bits[12] = {
356 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6,
359 static const uint16_t dnxhd_1238_ac_codes[257] = {
360 0, 1, 4, 10, 11, 24, 25, 26,
361 54, 55, 56, 57, 116, 117, 118, 119,
362 240, 241, 242, 243, 244, 245, 492, 493,
363 494, 495, 496, 497, 498, 499, 1000, 1001,
364 1002, 1003, 1004, 1005, 1006, 1007, 1008, 2018,
365 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026,
366 2027, 4056, 4057, 4058, 4059, 4060, 4061, 4062,
367 4063, 4064, 4065, 4066, 4067, 4068, 4069, 8140,
368 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148,
369 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156,
370 16314, 16315, 16316, 16317, 16318, 16319, 16320, 16321,
371 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329,
372 16330, 16331, 16332, 16333, 16334, 16335, 16336, 16337,
373 16338, 32678, 32679, 32680, 32681, 32682, 32683, 32684,
374 32685, 32686, 32687, 32688, 32689, 32690, 32691, 32692,
375 32693, 32694, 32695, 32696, 32697, 32698, 32699, 32700,
376 32701, 32702, 32703, 32704, 32705, 65412, 65413, 65414,
377 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422,
378 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
379 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
380 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
381 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
382 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
383 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
384 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
385 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
386 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
387 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
388 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
389 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
390 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
391 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
395 static const uint8_t dnxhd_1238_ac_bits[257] = {
396 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
397 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10,
398 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11,
399 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13,
400 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
401 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
402 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15,
403 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
404 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
405 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
406 16, 16, 16, 16, 16, 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,
415 static const uint8_t dnxhd_1238_ac_level[257] = {
416 3, 3, 5, 7, 0, 9, 11, 5, 13, 15, 17, 7, 19, 21, 23, 9,
417 25, 27, 29, 31, 33, 11, 35, 37, 39, 41, 43, 45, 13, 15, 47, 49,
418 51, 53, 55, 57, 59, 17, 19, 61, 63, 65, 67, 69, 71, 73, 75, 21,
419 23, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 25, 27, 29, 99,
420 101,103,105,107,109,111,113,115,117,119,121,123, 31, 33, 35, 37,
421 125,127,129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27,
422 29, 31, 33, 39, 41, 43, 45, 47, 49, 35, 37, 39, 41, 43, 45, 47,
423 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 81, 51,
424 53, 55, 57, 59, 61, 77, 79, 83, 85, 87, 89, 91, 93, 95, 97, 99,
425 101,103,105,107,109,111,113,115,117,119,121,123,125,127,129, 63,
426 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
427 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
428 129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31,
429 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63,
430 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
431 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
435 static const uint8_t dnxhd_1238_ac_flags[257] = {
436 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2,
437 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0,
438 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2,
439 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0,
440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2,
441 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
442 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
443 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
444 2, 2, 2, 2, 2, 1, 1, 1, 1, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
447 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
448 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
449 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
450 3, 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,
455 static const uint16_t dnxhd_1235_1238_1241_run_codes[62] = {
456 0, 4, 10, 11, 24, 25, 26, 27,
457 56, 57, 58, 59, 120, 242, 486, 487,
458 488, 489, 980, 981, 982, 983, 984, 985,
459 986, 987, 988, 989, 990, 991, 992, 993,
460 994, 995, 996, 997, 998, 999, 1000, 1001,
461 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
462 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
463 1018, 1019, 1020, 1021, 1022, 1023,
466 static const uint8_t dnxhd_1235_1238_1241_run_bits[62] = {
467 1, 3, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 8, 9, 9,
468 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
469 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
470 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
473 static const uint8_t dnxhd_1238_run[62] = {
474 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
475 20, 21, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
476 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
477 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
480 static const uint8_t dnxhd_1235_1241_dc_codes[14] = {
481 10, 62, 11, 12, 13, 0, 1, 2, 3, 4, 14, 30, 126, 127,
484 static const uint8_t dnxhd_1235_1241_dc_bits[14] = {
485 4, 6, 4, 4, 4, 3, 3, 3, 3, 3, 4, 5, 7, 7,
488 static const uint16_t dnxhd_1235_1241_ac_codes[257] = {
489 0, 1, 4, 10, 11, 24, 25, 26,
490 54, 55, 56, 57, 116, 117, 118, 119,
491 240, 241, 242, 243, 244, 245, 492, 493,
492 494, 495, 496, 497, 498, 998, 999, 1000,
493 1001, 1002, 1003, 1004, 1005, 1006, 1007, 2016,
494 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024,
495 2025, 2026, 4054, 4055, 4056, 4057, 4058, 4059,
496 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067,
497 4068, 4069, 8140, 8141, 8142, 8143, 8144, 8145,
498 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153,
499 8154, 8155, 8156, 8157, 16316, 16317, 16318, 16319,
500 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327,
501 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
502 16336, 16337, 32676, 32677, 32678, 32679, 32680, 32681,
503 32682, 32683, 32684, 32685, 32686, 32687, 32688, 32689,
504 32690, 32691, 32692, 32693, 32694, 32695, 32696, 32697,
505 32698, 32699, 32700, 32701, 32702, 32703, 32704, 32705,
506 32706, 32707, 32708, 65418, 65419, 65420, 65421, 65422,
507 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
508 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
509 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
510 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
511 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
512 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
513 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
514 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
515 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
516 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
517 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
518 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
519 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
520 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
524 static const uint8_t dnxhd_1235_1241_ac_bits[257] = {
525 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
526 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10,
527 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11,
528 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
529 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
530 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
531 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15,
532 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
533 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16,
534 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
535 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 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,
544 static const uint8_t dnxhd_1235_1241_ac_level[257] = {
545 3, 3, 5, 7, 0, 9, 11, 5, 13, 15, 17, 7, 19, 21, 23, 9,
546 25, 27, 29, 31, 33, 11, 35, 37, 39, 41, 43, 13, 15, 45, 47, 49,
547 51, 53, 55, 57, 59, 17, 19, 61, 63, 65, 67, 69, 71, 73, 75, 77,
548 21, 23, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99,101, 25, 27,
549 29, 31,103,105,107,109,111,113,115,117,119,121,123,125,127, 3,
550 33, 35, 37, 39,129, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25,
551 27, 29, 31, 33, 35, 41, 43, 45, 47, 49, 37, 39, 41, 43, 45, 47,
552 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79,
553 81, 83, 85, 51, 53, 55, 57, 59, 61, 63, 65, 87, 89, 91, 93, 95,
554 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
555 129, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
556 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
557 129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31,
558 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63,
559 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
560 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
564 static const uint8_t dnxhd_1235_1241_ac_flags[257] = {
565 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2,
566 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0,
567 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
568 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2,
569 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
570 2, 2, 2, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
571 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,
572 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
573 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1,
574 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
575 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
576 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
577 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
578 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
579 3, 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,
584 static const uint8_t dnxhd_1235_1241_run[62] = {
585 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
586 18, 20, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
587 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
588 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
591 static const uint8_t dnxhd_1250_dc_codes[14] = {
592 10, 62, 11, 12, 13, 0, 1, 2, 3, 4, 14, 30, 126, 127
594 static const uint8_t dnxhd_1250_dc_bits[14] = {
595 4, 6, 4, 4, 4, 3, 3, 3, 3, 3, 4, 5, 7, 7
597 static const uint16_t dnxhd_1250_ac_codes[257] = {
598 0, 1, 4, 10, 11, 24, 25, 26,
599 54, 55, 56, 57, 116, 117, 118, 119,
600 240, 241, 242, 243, 244, 245, 492, 493,
601 494, 495, 496, 497, 498, 998, 999, 1000,
602 1001, 1002, 1003, 1004, 1005, 1006, 2014, 2015,
603 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023,
604 2024, 2025, 4052, 4053, 4054, 4055, 4056, 4057,
605 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065,
606 4066, 4067, 8136, 8137, 8138, 8139, 8140, 8141,
607 8142, 8143, 8144, 8145, 8146, 8147, 8148, 8149,
608 8150, 8151, 8152, 8153, 8154, 8155, 8156, 16314,
609 16315, 16316, 16317, 16318, 16319, 16320, 16321, 16322,
610 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330,
611 16331, 16332, 16333, 16334, 16335, 16336, 16337, 16338,
612 32678, 32679, 32680, 32681, 32682, 32683, 32684, 32685,
613 32686, 32687, 32688, 32689, 32690, 32691, 32692, 32693,
614 32694, 32695, 32696, 32697, 32698, 32699, 32700, 32701,
615 32702, 32703, 32704, 32705, 32706, 32707, 32708, 32709,
616 32710, 32711, 32712, 65426, 65427, 65428, 65429, 65430,
617 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
618 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
619 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
620 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
621 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
622 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
623 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
624 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
625 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
626 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
627 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
628 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
629 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
632 static const uint8_t dnxhd_1250_ac_bits[257] = {
633 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
634 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10,
635 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
636 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
637 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
638 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14,
639 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
640 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
641 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
642 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
643 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
644 16, 16, 16, 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,
651 static const uint8_t dnxhd_1250_ac_level[257] = {
652 3, 3, 5, 7, 0, 9, 11, 5, 13, 15, 17, 7, 19, 21, 23, 9,
653 25, 27, 29, 31, 33, 11, 35, 37, 39, 41, 43, 45, 13, 47, 49, 51,
654 53, 55, 57, 59, 15, 17, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79,
655 19, 21, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99,101,103,105, 23,
656 25, 27,107,109,111,113,115,117,119,121,123,125,127,129, 3, 5,
657 7, 9, 11, 29, 31, 33, 35, 13, 15, 17, 19, 21, 23, 25, 27, 29,
658 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 37, 39, 41, 43,
659 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85,
660 87, 89, 91, 93, 95, 97, 99,101,103,105,107,111,113, 45, 47, 49,
661 51, 53, 55,109,115,117,119,121,123,125,127,129, 57, 59, 61, 63,
662 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
663 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
664 129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31,
665 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63,
666 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
667 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
670 static const uint8_t dnxhd_1250_ac_flags[257] = {
671 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2,
672 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
673 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
674 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
675 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
676 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
677 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
678 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
679 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
680 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
681 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
682 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
683 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
684 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
685 3, 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,
689 static const uint16_t dnxhd_1250_run_codes[62] = {
690 0, 4, 5, 12, 26, 27, 28, 58,
691 118, 119, 120, 242, 486, 487, 976, 977,
692 978, 979, 980, 981, 982, 983, 984, 985,
693 986, 987, 988, 989, 990, 991, 992, 993,
694 994, 995, 996, 997, 998, 999, 1000, 1001,
695 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
696 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
697 1018, 1019, 1020, 1021, 1022, 1023
699 static const uint8_t dnxhd_1250_run_bits[62] = {
700 1, 3, 3, 4, 5, 5, 5, 6, 7, 7, 7, 8, 9, 9, 10, 10,
701 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
702 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
703 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10
705 static const uint8_t dnxhd_1250_run[62] = {
706 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
707 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
708 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
709 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62
712 static const uint8_t dnxhd_1251_dc_codes[12] = {
713 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63,
716 static const uint8_t dnxhd_1251_dc_bits[12] = {
717 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6,
720 static const uint16_t dnxhd_1251_ac_codes[257] = {
721 0, 1, 4, 10, 11, 24, 25, 26,
722 54, 55, 56, 57, 116, 117, 118, 119,
723 240, 241, 242, 243, 244, 245, 492, 493,
724 494, 495, 496, 497, 996, 997, 998, 999,
725 1000, 1001, 1002, 1003, 1004, 1005, 2012, 2013,
726 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,
727 2022, 2023, 2024, 2025, 4052, 4053, 4054, 4055,
728 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063,
729 4064, 4065, 4066, 8134, 8135, 8136, 8137, 8138,
730 8139, 8140, 8141, 8142, 8143, 8144, 8145, 8146,
731 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154,
732 8155, 8156, 16314, 16315, 16316, 16317, 16318, 16319,
733 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327,
734 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
735 16336, 16337, 16338, 16339, 32680, 32681, 32682, 32683,
736 32684, 32685, 32686, 32687, 32688, 32689, 32690, 32691,
737 32692, 32693, 32694, 32695, 32696, 32697, 32698, 32699,
738 32700, 32701, 32702, 32703, 32704, 32705, 32706, 32707,
739 32708, 32709, 32710, 32711, 32712, 32713, 32714, 65430,
740 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
741 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
742 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
743 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
744 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
745 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
746 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
747 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
748 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
749 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
750 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
751 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
752 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
756 static const uint8_t dnxhd_1251_ac_bits[257] = {
757 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
758 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10,
759 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
760 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
761 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
762 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14,
763 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
764 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
765 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
766 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16,
767 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
768 16, 16, 16, 16, 16, 16, 16, 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,
776 static const uint8_t dnxhd_1251_ac_level[257] = {
777 3, 3, 5, 7, 0, 9, 11, 5, 13, 15, 17, 7, 19, 21, 23, 9,
778 25, 27, 29, 31, 33, 11, 35, 37, 39, 41, 43, 13, 45, 47, 49, 51,
779 53, 55, 57, 59, 15, 17, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79,
780 81, 19, 21, 23, 83, 85, 87, 89, 91, 93, 95, 97, 99,101,103,105,
781 25, 27, 29,107,109,111,113,115,117,119,121,123,125,127,129, 3,
782 5, 7, 9, 11, 13, 15, 17, 31, 33, 35, 19, 21, 23, 25, 27, 29,
783 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 37,
784 39, 41, 43, 45, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83,
785 85, 87, 89, 91, 93, 95, 97, 99,101,103,105,107,109,111,113,115,
786 117, 47, 49, 51, 53, 55, 57,119,121,123,125,127,129, 59, 61, 63,
787 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
788 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
789 129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31,
790 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63,
791 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
792 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
796 static const uint8_t dnxhd_1251_ac_flags[257] = {
797 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2,
798 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
799 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
800 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
801 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
802 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1,
803 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
804 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
805 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
806 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2,
807 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
808 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
809 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
810 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
811 3, 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,
816 static const uint16_t dnxhd_1251_run_codes[62] = {
817 0, 4, 5, 12, 26, 27, 28, 58,
818 118, 119, 120, 242, 486, 487, 976, 977,
819 978, 979, 980, 981, 982, 983, 984, 985,
820 986, 987, 988, 989, 990, 991, 992, 993,
821 994, 995, 996, 997, 998, 999, 1000, 1001,
822 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
823 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
824 1018, 1019, 1020, 1021, 1022, 1023,
827 static const uint8_t dnxhd_1251_run_bits[62] = {
828 1, 3, 3, 4, 5, 5, 5, 6, 7, 7, 7, 8, 9, 9, 10, 10,
829 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
830 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
831 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
834 static const uint8_t dnxhd_1251_run[62] = {
835 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
836 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
837 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
838 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
841 static const uint8_t dnxhd_1252_dc_codes[12] = {
842 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63,
845 static const uint8_t dnxhd_1252_dc_bits[12] = {
846 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6,
849 static const uint16_t dnxhd_1252_ac_codes[257] = {
850 0, 1, 4, 10, 11, 12, 26, 27,
851 56, 57, 58, 118, 119, 120, 242, 243,
852 244, 245, 246, 247, 496, 497, 498, 499,
853 500, 1002, 1003, 1004, 1005, 1006, 1007, 1008,
854 1009, 2020, 2021, 2022, 2023, 2024, 2025, 2026,
855 2027, 2028, 2029, 4060, 4061, 4062, 4063, 4064,
856 4065, 4066, 4067, 4068, 4069, 4070, 4071, 8144,
857 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152,
858 8153, 8154, 8155, 8156, 8157, 8158, 16318, 16319,
859 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327,
860 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
861 32672, 32673, 32674, 32675, 32676, 32677, 32678, 32679,
862 32680, 32681, 32682, 32683, 32684, 32685, 32686, 32687,
863 32688, 32689, 32690, 32691, 32692, 32693, 32694, 65390,
864 65391, 65392, 65393, 65394, 65395, 65396, 65397, 65398,
865 65399, 65400, 65401, 65402, 65403, 65404, 65405, 65406,
866 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414,
867 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422,
868 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
869 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
870 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
871 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
872 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
873 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
874 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
875 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
876 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
877 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
878 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
879 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
880 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
881 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
885 static const uint8_t dnxhd_1252_ac_bits[257] = {
886 2, 2, 3, 4, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8,
887 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10,
888 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12,
889 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13,
890 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
891 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15,
892 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16,
893 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
894 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 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,
905 static const uint8_t dnxhd_1252_ac_level[257] = {
906 3, 3, 5, 7, 5, 0, 9, 11, 13, 15, 7, 17, 19, 21, 23, 25,
907 27, 29, 9, 11, 31, 33, 35, 37, 13, 39, 41, 43, 45, 47, 49, 15,
908 17, 51, 53, 55, 57, 59, 61, 63, 65, 19, 21, 67, 69, 71, 73, 75,
909 77, 79, 81, 83, 23, 25, 27, 85, 87, 89, 91, 93, 95, 97, 99,101,
910 103,105,107, 29, 31, 33,109,111,113,115,117,119,121,123,125,127,
911 129, 3, 5, 7, 35, 37, 39, 41, 9, 11, 13, 15, 17, 19, 21, 23,
912 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 43, 45, 47, 49, 51, 45,
913 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77,
914 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99,101,103,105,107,109,
915 111,113,115,117,119,121,123,125,127,129, 53, 55, 57, 59, 61, 63,
916 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
917 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
918 129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31,
919 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63,
920 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
921 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
925 static const uint8_t dnxhd_1252_ac_flags[257] = {
926 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
927 0, 0, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2,
928 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0,
929 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
930 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
931 0, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
932 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1,
933 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
934 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
935 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
936 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
937 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
938 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
939 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
940 3, 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,
945 const CIDEntry ff_dnxhd_cid_table[] = {
946 { 1235, 1920, 1080, 0, 917504, 917504, 6, 10, 4,
947 dnxhd_1235_luma_weight, dnxhd_1235_chroma_weight,
948 dnxhd_1235_1241_dc_codes, dnxhd_1235_1241_dc_bits,
949 dnxhd_1235_1241_ac_codes, dnxhd_1235_1241_ac_bits, dnxhd_1235_1241_ac_level,
950 dnxhd_1235_1241_ac_flags,
951 dnxhd_1235_1238_1241_run_codes, dnxhd_1235_1238_1241_run_bits, dnxhd_1235_1241_run,
952 { 175, 185, 365, 440 } },
953 { 1237, 1920, 1080, 0, 606208, 606208, 4, 8, 3,
954 dnxhd_1237_luma_weight, dnxhd_1237_chroma_weight,
955 dnxhd_1237_dc_codes, dnxhd_1237_dc_bits,
956 dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level,
958 dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run,
959 { 115, 120, 145, 240, 290 } },
960 { 1238, 1920, 1080, 0, 917504, 917504, 4, 8, 4,
961 dnxhd_1238_luma_weight, dnxhd_1238_chroma_weight,
962 dnxhd_1238_dc_codes, dnxhd_1238_dc_bits,
963 dnxhd_1238_ac_codes, dnxhd_1238_ac_bits, dnxhd_1238_ac_level,
965 dnxhd_1235_1238_1241_run_codes, dnxhd_1235_1238_1241_run_bits, dnxhd_1238_run,
966 { 175, 185, 220, 365, 440 } },
967 { 1241, 1920, 1080, 1, 917504, 458752, 6, 10, 4,
968 dnxhd_1241_luma_weight, dnxhd_1241_chroma_weight,
969 dnxhd_1235_1241_dc_codes, dnxhd_1235_1241_dc_bits,
970 dnxhd_1235_1241_ac_codes, dnxhd_1235_1241_ac_bits, dnxhd_1235_1241_ac_level,
971 dnxhd_1235_1241_ac_flags,
972 dnxhd_1235_1238_1241_run_codes, dnxhd_1235_1238_1241_run_bits, dnxhd_1235_1241_run,
974 { 1242, 1920, 1080, 1, 606208, 303104, 4, 8, 3,
975 dnxhd_1242_luma_weight, dnxhd_1242_chroma_weight,
976 dnxhd_1237_dc_codes, dnxhd_1237_dc_bits,
977 dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level,
979 dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run,
981 { 1243, 1920, 1080, 1, 917504, 458752, 4, 8, 4,
982 dnxhd_1243_luma_weight, dnxhd_1243_chroma_weight,
983 dnxhd_1238_dc_codes, dnxhd_1238_dc_bits,
984 dnxhd_1238_ac_codes, dnxhd_1238_ac_bits, dnxhd_1238_ac_level,
986 dnxhd_1235_1238_1241_run_codes, dnxhd_1235_1238_1241_run_bits, dnxhd_1238_run,
988 { 1250, 1280, 720, 0, 458752, 458752, 6, 10, 4,
989 dnxhd_1250_luma_weight, dnxhd_1250_chroma_weight,
990 dnxhd_1250_dc_codes, dnxhd_1250_dc_bits,
991 dnxhd_1250_ac_codes, dnxhd_1250_ac_bits, dnxhd_1250_ac_level,
993 dnxhd_1250_run_codes, dnxhd_1250_run_bits, dnxhd_1250_run,
995 { 1251, 1280, 720, 0, 458752, 458752, 4, 8, 4,
996 dnxhd_1251_luma_weight, dnxhd_1251_chroma_weight,
997 dnxhd_1251_dc_codes, dnxhd_1251_dc_bits,
998 dnxhd_1251_ac_codes, dnxhd_1251_ac_bits, dnxhd_1251_ac_level,
1000 dnxhd_1251_run_codes, dnxhd_1251_run_bits, dnxhd_1251_run,
1001 { 90, 110, 175, 220 } },
1002 { 1252, 1280, 720, 0, 303104, 303104, 4, 8, 5,
1003 dnxhd_1252_luma_weight, dnxhd_1252_chroma_weight,
1004 dnxhd_1252_dc_codes, dnxhd_1252_dc_bits,
1005 dnxhd_1252_ac_codes, dnxhd_1252_ac_bits, dnxhd_1252_ac_level,
1006 dnxhd_1252_ac_flags,
1007 dnxhd_1251_run_codes, dnxhd_1251_run_bits, dnxhd_1251_run,
1008 { 60, 75, 115, 145 } },
1009 { 1253, 1920, 1080, 0, 188416, 188416, 4, 8, 3,
1010 dnxhd_1237_luma_weight, dnxhd_1237_chroma_weight,
1011 dnxhd_1237_dc_codes, dnxhd_1237_dc_bits,
1012 dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level,
1013 dnxhd_1237_ac_flags,
1014 dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run,
1015 { 36, 45, 75, 90 } },
1018 int ff_dnxhd_get_cid_table(int cid)
1021 for (i = 0; i < FF_ARRAY_ELEMS(ff_dnxhd_cid_table); i++)
1022 if (ff_dnxhd_cid_table[i].cid == cid)
1027 int ff_dnxhd_find_cid(AVCodecContext *avctx, int bit_depth)
1030 int mbs = avctx->bit_rate/1000000;
1033 for (i = 0; i < FF_ARRAY_ELEMS(ff_dnxhd_cid_table); i++) {
1034 const CIDEntry *cid = &ff_dnxhd_cid_table[i];
1035 if (cid->width == avctx->width && cid->height == avctx->height &&
1036 cid->interlaced == !!(avctx->flags & CODEC_FLAG_INTERLACED_DCT) &&
1037 cid->bit_depth == bit_depth) {
1038 for (j = 0; j < sizeof(cid->bit_rates); j++) {
1039 if (cid->bit_rates[j] == mbs)