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 uint8_t dnxhd_1238_ac_index_flag[257] = {
458 static const uint16_t dnxhd_1235_1238_1241_run_codes[62] = {
459 0, 4, 10, 11, 24, 25, 26, 27,
460 56, 57, 58, 59, 120, 242, 486, 487,
461 488, 489, 980, 981, 982, 983, 984, 985,
462 986, 987, 988, 989, 990, 991, 992, 993,
463 994, 995, 996, 997, 998, 999, 1000, 1001,
464 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
465 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
466 1018, 1019, 1020, 1021, 1022, 1023,
469 static const uint8_t dnxhd_1235_1238_1241_run_bits[62] = {
470 1, 3, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 8, 9, 9,
471 9, 9, 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, 10, 10,
473 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
476 static const uint8_t dnxhd_1238_run[62] = {
477 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
478 20, 21, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
479 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
480 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
483 static const uint8_t dnxhd_1235_1241_dc_codes[14] = {
484 10, 62, 11, 12, 13, 0, 1, 2, 3, 4, 14, 30, 126, 127,
487 static const uint8_t dnxhd_1235_1241_dc_bits[14] = {
488 4, 6, 4, 4, 4, 3, 3, 3, 3, 3, 4, 5, 7, 7,
491 static const uint16_t dnxhd_1235_1241_ac_codes[257] = {
492 0, 1, 4, 10, 11, 24, 25, 26,
493 54, 55, 56, 57, 116, 117, 118, 119,
494 240, 241, 242, 243, 244, 245, 492, 493,
495 494, 495, 496, 497, 498, 998, 999, 1000,
496 1001, 1002, 1003, 1004, 1005, 1006, 1007, 2016,
497 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024,
498 2025, 2026, 4054, 4055, 4056, 4057, 4058, 4059,
499 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067,
500 4068, 4069, 8140, 8141, 8142, 8143, 8144, 8145,
501 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153,
502 8154, 8155, 8156, 8157, 16316, 16317, 16318, 16319,
503 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327,
504 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
505 16336, 16337, 32676, 32677, 32678, 32679, 32680, 32681,
506 32682, 32683, 32684, 32685, 32686, 32687, 32688, 32689,
507 32690, 32691, 32692, 32693, 32694, 32695, 32696, 32697,
508 32698, 32699, 32700, 32701, 32702, 32703, 32704, 32705,
509 32706, 32707, 32708, 65418, 65419, 65420, 65421, 65422,
510 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
511 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
512 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
513 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
514 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
515 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
516 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
517 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
518 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
519 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
520 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
521 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
522 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
523 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
527 static const uint8_t dnxhd_1235_1241_ac_bits[257] = {
528 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
529 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10,
530 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11,
531 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
532 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
533 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
534 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15,
535 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
536 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 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,
543 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
547 static const uint8_t dnxhd_1235_1241_ac_level[257] = {
548 3, 3, 5, 7, 0, 9, 11, 5, 13, 15, 17, 7, 19, 21, 23, 9,
549 25, 27, 29, 31, 33, 11, 35, 37, 39, 41, 43, 13, 15, 45, 47, 49,
550 51, 53, 55, 57, 59, 17, 19, 61, 63, 65, 67, 69, 71, 73, 75, 77,
551 21, 23, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99,101, 25, 27,
552 29, 31,103,105,107,109,111,113,115,117,119,121,123,125,127, 3,
553 33, 35, 37, 39,129, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25,
554 27, 29, 31, 33, 35, 41, 43, 45, 47, 49, 37, 39, 41, 43, 45, 47,
555 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79,
556 81, 83, 85, 51, 53, 55, 57, 59, 61, 63, 65, 87, 89, 91, 93, 95,
557 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
558 129, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
559 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
560 129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31,
561 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63,
562 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
563 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
567 static const uint8_t dnxhd_1235_1241_ac_flags[257] = {
568 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2,
569 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0,
570 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
571 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2,
572 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
573 2, 2, 2, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
574 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,
575 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
576 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1,
577 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
578 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
579 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
580 2, 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,
583 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
587 static const uint8_t dnxhd_1235_1241_run[62] = {
588 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
589 18, 20, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
590 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
591 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
594 static const uint8_t dnxhd_1250_dc_codes[14] = {
595 10, 62, 11, 12, 13, 0, 1, 2, 3, 4, 14, 30, 126, 127
597 static const uint8_t dnxhd_1250_dc_bits[14] = {
598 4, 6, 4, 4, 4, 3, 3, 3, 3, 3, 4, 5, 7, 7
600 static const uint16_t dnxhd_1250_ac_codes[257] = {
601 0, 1, 4, 10, 11, 24, 25, 26,
602 54, 55, 56, 57, 116, 117, 118, 119,
603 240, 241, 242, 243, 244, 245, 492, 493,
604 494, 495, 496, 497, 498, 998, 999, 1000,
605 1001, 1002, 1003, 1004, 1005, 1006, 2014, 2015,
606 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023,
607 2024, 2025, 4052, 4053, 4054, 4055, 4056, 4057,
608 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065,
609 4066, 4067, 8136, 8137, 8138, 8139, 8140, 8141,
610 8142, 8143, 8144, 8145, 8146, 8147, 8148, 8149,
611 8150, 8151, 8152, 8153, 8154, 8155, 8156, 16314,
612 16315, 16316, 16317, 16318, 16319, 16320, 16321, 16322,
613 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330,
614 16331, 16332, 16333, 16334, 16335, 16336, 16337, 16338,
615 32678, 32679, 32680, 32681, 32682, 32683, 32684, 32685,
616 32686, 32687, 32688, 32689, 32690, 32691, 32692, 32693,
617 32694, 32695, 32696, 32697, 32698, 32699, 32700, 32701,
618 32702, 32703, 32704, 32705, 32706, 32707, 32708, 32709,
619 32710, 32711, 32712, 65426, 65427, 65428, 65429, 65430,
620 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
621 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
622 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
623 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
624 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
625 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
626 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
627 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
628 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
629 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
630 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
631 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
632 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
635 static const uint8_t dnxhd_1250_ac_bits[257] = {
636 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
637 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10,
638 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
639 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
640 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
641 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14,
642 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
643 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
644 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
645 15, 15, 15, 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,
651 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
654 static const uint8_t dnxhd_1250_ac_level[257] = {
655 3, 3, 5, 7, 0, 9, 11, 5, 13, 15, 17, 7, 19, 21, 23, 9,
656 25, 27, 29, 31, 33, 11, 35, 37, 39, 41, 43, 45, 13, 47, 49, 51,
657 53, 55, 57, 59, 15, 17, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79,
658 19, 21, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99,101,103,105, 23,
659 25, 27,107,109,111,113,115,117,119,121,123,125,127,129, 3, 5,
660 7, 9, 11, 29, 31, 33, 35, 13, 15, 17, 19, 21, 23, 25, 27, 29,
661 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 37, 39, 41, 43,
662 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85,
663 87, 89, 91, 93, 95, 97, 99,101,103,105,107,111,113, 45, 47, 49,
664 51, 53, 55,109,115,117,119,121,123,125,127,129, 57, 59, 61, 63,
665 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
666 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
667 129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31,
668 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63,
669 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
670 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
673 static const uint8_t dnxhd_1250_ac_flags[257] = {
674 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2,
675 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
676 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
677 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
678 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
679 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
680 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
681 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
682 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
683 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
684 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
685 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
686 2, 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,
689 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
692 static const uint16_t dnxhd_1250_run_codes[62] = {
693 0, 4, 5, 12, 26, 27, 28, 58,
694 118, 119, 120, 242, 486, 487, 976, 977,
695 978, 979, 980, 981, 982, 983, 984, 985,
696 986, 987, 988, 989, 990, 991, 992, 993,
697 994, 995, 996, 997, 998, 999, 1000, 1001,
698 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
699 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
700 1018, 1019, 1020, 1021, 1022, 1023
702 static const uint8_t dnxhd_1250_run_bits[62] = {
703 1, 3, 3, 4, 5, 5, 5, 6, 7, 7, 7, 8, 9, 9, 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, 10, 10,
706 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10
708 static const uint8_t dnxhd_1250_run[62] = {
709 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
710 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
711 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
712 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62
715 static const uint8_t dnxhd_1251_dc_codes[12] = {
716 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63,
719 static const uint8_t dnxhd_1251_dc_bits[12] = {
720 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6,
723 static const uint16_t dnxhd_1251_ac_codes[257] = {
724 0, 1, 4, 10, 11, 24, 25, 26,
725 54, 55, 56, 57, 116, 117, 118, 119,
726 240, 241, 242, 243, 244, 245, 492, 493,
727 494, 495, 496, 497, 996, 997, 998, 999,
728 1000, 1001, 1002, 1003, 1004, 1005, 2012, 2013,
729 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,
730 2022, 2023, 2024, 2025, 4052, 4053, 4054, 4055,
731 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063,
732 4064, 4065, 4066, 8134, 8135, 8136, 8137, 8138,
733 8139, 8140, 8141, 8142, 8143, 8144, 8145, 8146,
734 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154,
735 8155, 8156, 16314, 16315, 16316, 16317, 16318, 16319,
736 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327,
737 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
738 16336, 16337, 16338, 16339, 32680, 32681, 32682, 32683,
739 32684, 32685, 32686, 32687, 32688, 32689, 32690, 32691,
740 32692, 32693, 32694, 32695, 32696, 32697, 32698, 32699,
741 32700, 32701, 32702, 32703, 32704, 32705, 32706, 32707,
742 32708, 32709, 32710, 32711, 32712, 32713, 32714, 65430,
743 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
744 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
745 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
746 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
747 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
748 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
749 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
750 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
751 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
752 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
753 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
754 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
755 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
759 static const uint8_t dnxhd_1251_ac_bits[257] = {
760 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
761 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10,
762 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
763 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
764 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
765 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14,
766 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
767 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
768 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
769 15, 15, 15, 15, 15, 15, 15, 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,
775 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
779 static const uint8_t dnxhd_1251_ac_level[257] = {
780 3, 3, 5, 7, 0, 9, 11, 5, 13, 15, 17, 7, 19, 21, 23, 9,
781 25, 27, 29, 31, 33, 11, 35, 37, 39, 41, 43, 13, 45, 47, 49, 51,
782 53, 55, 57, 59, 15, 17, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79,
783 81, 19, 21, 23, 83, 85, 87, 89, 91, 93, 95, 97, 99,101,103,105,
784 25, 27, 29,107,109,111,113,115,117,119,121,123,125,127,129, 3,
785 5, 7, 9, 11, 13, 15, 17, 31, 33, 35, 19, 21, 23, 25, 27, 29,
786 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 37,
787 39, 41, 43, 45, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83,
788 85, 87, 89, 91, 93, 95, 97, 99,101,103,105,107,109,111,113,115,
789 117, 47, 49, 51, 53, 55, 57,119,121,123,125,127,129, 59, 61, 63,
790 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
791 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
792 129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31,
793 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63,
794 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
795 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
799 static const uint8_t dnxhd_1251_ac_flags[257] = {
800 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2,
801 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
802 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
803 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
804 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
805 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1,
806 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
807 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
808 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
809 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2,
810 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
811 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
812 2, 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,
815 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
819 static const uint16_t dnxhd_1251_run_codes[62] = {
820 0, 4, 5, 12, 26, 27, 28, 58,
821 118, 119, 120, 242, 486, 487, 976, 977,
822 978, 979, 980, 981, 982, 983, 984, 985,
823 986, 987, 988, 989, 990, 991, 992, 993,
824 994, 995, 996, 997, 998, 999, 1000, 1001,
825 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
826 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
827 1018, 1019, 1020, 1021, 1022, 1023,
830 static const uint8_t dnxhd_1251_run_bits[62] = {
831 1, 3, 3, 4, 5, 5, 5, 6, 7, 7, 7, 8, 9, 9, 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, 10, 10,
834 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
837 static const uint8_t dnxhd_1251_run[62] = {
838 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
839 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
840 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
841 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
844 static const uint8_t dnxhd_1252_dc_codes[12] = {
845 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63,
848 static const uint8_t dnxhd_1252_dc_bits[12] = {
849 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6,
852 static const uint16_t dnxhd_1252_ac_codes[257] = {
853 0, 1, 4, 10, 11, 12, 26, 27,
854 56, 57, 58, 118, 119, 120, 242, 243,
855 244, 245, 246, 247, 496, 497, 498, 499,
856 500, 1002, 1003, 1004, 1005, 1006, 1007, 1008,
857 1009, 2020, 2021, 2022, 2023, 2024, 2025, 2026,
858 2027, 2028, 2029, 4060, 4061, 4062, 4063, 4064,
859 4065, 4066, 4067, 4068, 4069, 4070, 4071, 8144,
860 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152,
861 8153, 8154, 8155, 8156, 8157, 8158, 16318, 16319,
862 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327,
863 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
864 32672, 32673, 32674, 32675, 32676, 32677, 32678, 32679,
865 32680, 32681, 32682, 32683, 32684, 32685, 32686, 32687,
866 32688, 32689, 32690, 32691, 32692, 32693, 32694, 65390,
867 65391, 65392, 65393, 65394, 65395, 65396, 65397, 65398,
868 65399, 65400, 65401, 65402, 65403, 65404, 65405, 65406,
869 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414,
870 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422,
871 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
872 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
873 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
874 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
875 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
876 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
877 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
878 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
879 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
880 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
881 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
882 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
883 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
884 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
888 static const uint8_t dnxhd_1252_ac_bits[257] = {
889 2, 2, 3, 4, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8,
890 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10,
891 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12,
892 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13,
893 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
894 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15,
895 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 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,
904 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
908 static const uint8_t dnxhd_1252_ac_level[257] = {
909 3, 3, 5, 7, 5, 0, 9, 11, 13, 15, 7, 17, 19, 21, 23, 25,
910 27, 29, 9, 11, 31, 33, 35, 37, 13, 39, 41, 43, 45, 47, 49, 15,
911 17, 51, 53, 55, 57, 59, 61, 63, 65, 19, 21, 67, 69, 71, 73, 75,
912 77, 79, 81, 83, 23, 25, 27, 85, 87, 89, 91, 93, 95, 97, 99,101,
913 103,105,107, 29, 31, 33,109,111,113,115,117,119,121,123,125,127,
914 129, 3, 5, 7, 35, 37, 39, 41, 9, 11, 13, 15, 17, 19, 21, 23,
915 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 43, 45, 47, 49, 51, 45,
916 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77,
917 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99,101,103,105,107,109,
918 111,113,115,117,119,121,123,125,127,129, 53, 55, 57, 59, 61, 63,
919 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
920 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
921 129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31,
922 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63,
923 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95,
924 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,
928 static const uint8_t dnxhd_1252_ac_flags[257] = {
929 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
930 0, 0, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2,
931 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0,
932 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
933 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
934 0, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
935 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 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, 1, 1, 1, 1, 1, 1,
938 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
941 2, 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,
944 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
948 const CIDEntry ff_dnxhd_cid_table[] = {
949 { 1235, 1920, 1080, 0, 917504, 917504, 6, 10, 4,
950 dnxhd_1235_luma_weight, dnxhd_1235_chroma_weight,
951 dnxhd_1235_1241_dc_codes, dnxhd_1235_1241_dc_bits,
952 dnxhd_1235_1241_ac_codes, dnxhd_1235_1241_ac_bits, dnxhd_1235_1241_ac_level,
953 dnxhd_1235_1241_ac_flags,
954 dnxhd_1235_1238_1241_run_codes, dnxhd_1235_1238_1241_run_bits, dnxhd_1235_1241_run,
955 { 175, 185, 365, 440 } },
956 { 1237, 1920, 1080, 0, 606208, 606208, 4, 8, 3,
957 dnxhd_1237_luma_weight, dnxhd_1237_chroma_weight,
958 dnxhd_1237_dc_codes, dnxhd_1237_dc_bits,
959 dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level,
961 dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run,
962 { 115, 120, 145, 240, 290 } },
963 { 1238, 1920, 1080, 0, 917504, 917504, 4, 8, 4,
964 dnxhd_1238_luma_weight, dnxhd_1238_chroma_weight,
965 dnxhd_1238_dc_codes, dnxhd_1238_dc_bits,
966 dnxhd_1238_ac_codes, dnxhd_1238_ac_bits, dnxhd_1238_ac_level,
968 dnxhd_1235_1238_1241_run_codes, dnxhd_1235_1238_1241_run_bits, dnxhd_1238_run,
969 { 175, 185, 220, 365, 440 } },
970 { 1241, 1920, 1080, 1, 917504, 458752, 6, 10, 4,
971 dnxhd_1241_luma_weight, dnxhd_1241_chroma_weight,
972 dnxhd_1235_1241_dc_codes, dnxhd_1235_1241_dc_bits,
973 dnxhd_1235_1241_ac_codes, dnxhd_1235_1241_ac_bits, dnxhd_1235_1241_ac_level,
974 dnxhd_1235_1241_ac_flags,
975 dnxhd_1235_1238_1241_run_codes, dnxhd_1235_1238_1241_run_bits, dnxhd_1235_1241_run,
977 { 1242, 1920, 1080, 1, 606208, 303104, 4, 8, 3,
978 dnxhd_1242_luma_weight, dnxhd_1242_chroma_weight,
979 dnxhd_1237_dc_codes, dnxhd_1237_dc_bits,
980 dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level,
982 dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run,
984 { 1243, 1920, 1080, 1, 917504, 458752, 4, 8, 4,
985 dnxhd_1243_luma_weight, dnxhd_1243_chroma_weight,
986 dnxhd_1238_dc_codes, dnxhd_1238_dc_bits,
987 dnxhd_1238_ac_codes, dnxhd_1238_ac_bits, dnxhd_1238_ac_level,
989 dnxhd_1235_1238_1241_run_codes, dnxhd_1235_1238_1241_run_bits, dnxhd_1238_run,
991 { 1250, 1280, 720, 0, 458752, 458752, 6, 10, 4,
992 dnxhd_1250_luma_weight, dnxhd_1250_chroma_weight,
993 dnxhd_1250_dc_codes, dnxhd_1250_dc_bits,
994 dnxhd_1250_ac_codes, dnxhd_1250_ac_bits, dnxhd_1250_ac_level,
996 dnxhd_1250_run_codes, dnxhd_1250_run_bits, dnxhd_1250_run,
998 { 1251, 1280, 720, 0, 458752, 458752, 4, 8, 4,
999 dnxhd_1251_luma_weight, dnxhd_1251_chroma_weight,
1000 dnxhd_1251_dc_codes, dnxhd_1251_dc_bits,
1001 dnxhd_1251_ac_codes, dnxhd_1251_ac_bits, dnxhd_1251_ac_level,
1002 dnxhd_1251_ac_flags,
1003 dnxhd_1251_run_codes, dnxhd_1251_run_bits, dnxhd_1251_run,
1004 { 90, 110, 175, 220 } },
1005 { 1252, 1280, 720, 0, 303104, 303104, 4, 8, 5,
1006 dnxhd_1252_luma_weight, dnxhd_1252_chroma_weight,
1007 dnxhd_1252_dc_codes, dnxhd_1252_dc_bits,
1008 dnxhd_1252_ac_codes, dnxhd_1252_ac_bits, dnxhd_1252_ac_level,
1009 dnxhd_1252_ac_flags,
1010 dnxhd_1251_run_codes, dnxhd_1251_run_bits, dnxhd_1251_run,
1011 { 60, 75, 115, 145 } },
1012 { 1253, 1920, 1080, 0, 188416, 188416, 4, 8, 3,
1013 dnxhd_1237_luma_weight, dnxhd_1237_chroma_weight,
1014 dnxhd_1237_dc_codes, dnxhd_1237_dc_bits,
1015 dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level,
1016 dnxhd_1237_ac_flags,
1017 dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run,
1018 { 36, 45, 75, 90 } },
1021 int ff_dnxhd_get_cid_table(int cid)
1024 for (i = 0; i < FF_ARRAY_ELEMS(ff_dnxhd_cid_table); i++)
1025 if (ff_dnxhd_cid_table[i].cid == cid)
1030 int ff_dnxhd_find_cid(AVCodecContext *avctx, int bit_depth)
1033 int mbs = avctx->bit_rate/1000000;
1036 for (i = 0; i < FF_ARRAY_ELEMS(ff_dnxhd_cid_table); i++) {
1037 const CIDEntry *cid = &ff_dnxhd_cid_table[i];
1038 if (cid->width == avctx->width && cid->height == avctx->height &&
1039 cid->interlaced == !!(avctx->flags & CODEC_FLAG_INTERLACED_DCT) &&
1040 cid->bit_depth == bit_depth) {
1041 for (j = 0; j < sizeof(cid->bit_rates); j++) {
1042 if (cid->bit_rates[j] == mbs)