3 * Copyright (c) 2007 SmartJog S.A., Baptiste Coudurier <baptiste dot coudurier at smartjog dot com>
5 * This file is part of Libav.
7 * Libav is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
12 * Libav is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with Libav; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23 #include "dnxhddata.h"
25 static const uint8_t dnxhd_1237_luma_weight[] = {
26 0, 32, 33, 34, 34, 36, 37, 36,
27 36, 37, 38, 38, 38, 39, 41, 44,
28 43, 41, 40, 41, 46, 49, 47, 46,
29 47, 49, 51, 54, 60, 62, 59, 55,
30 54, 56, 58, 61, 65, 66, 64, 63,
31 66, 73, 78, 79, 80, 79, 78, 78,
32 82, 87, 89, 90, 93, 95, 96, 97,
33 97, 100, 104, 102, 98, 98, 99, 99,
36 static const uint8_t dnxhd_1237_chroma_weight[] = {
37 0, 32, 36, 39, 39, 38, 39, 41,
38 45, 51, 57, 58, 53, 48, 47, 51,
39 55, 58, 66, 75, 81, 83, 82, 78,
40 73, 72, 74, 77, 83, 85, 83, 82,
41 89, 99, 96, 90, 94, 97, 99, 105,
42 109, 105, 95, 89, 92, 95, 94, 93,
43 92, 88, 89, 90, 93, 95, 96, 97,
44 97, 100, 104, 102, 98, 98, 99, 99,
47 static const uint8_t dnxhd_1238_luma_weight[] = {
48 0, 32, 32, 33, 34, 33, 33, 33,
49 33, 33, 33, 33, 33, 35, 37, 37,
50 36, 36, 35, 36, 38, 38, 36, 35,
51 36, 37, 38, 41, 42, 41, 39, 38,
52 38, 38, 39, 41, 42, 41, 39, 39,
53 40, 41, 43, 44, 44, 44, 44, 44,
54 45, 47, 47, 47, 49, 50, 51, 51,
55 51, 53, 55, 57, 58, 59, 57, 57,
58 static const uint8_t dnxhd_1238_chroma_weight[] = {
59 0, 32, 35, 35, 35, 34, 34, 35,
60 39, 43, 45, 45, 41, 39, 40, 41,
61 42, 44, 48, 55, 59, 63, 65, 59,
62 53, 52, 52, 55, 61, 62, 58, 58,
63 63, 66, 66, 65, 70, 74, 70, 66,
64 65, 68, 75, 77, 74, 74, 77, 76,
65 73, 73, 73, 73, 76, 80, 89, 90,
66 82, 77, 80, 86, 84, 82, 82, 82,
69 static const uint8_t dnxhd_1241_luma_weight[] = {
70 0, 32, 33, 34, 34, 35, 36, 37,
71 36, 37, 38, 38, 38, 39, 39, 40,
72 40, 38, 38, 39, 38, 37, 39, 41,
73 41, 42, 43, 45, 45, 46, 47, 46,
74 45, 43, 39, 37, 37, 40, 44, 45,
75 45, 46, 46, 46, 47, 47, 46, 44,
76 42, 43, 45, 47, 48, 49, 50, 49,
77 48, 46, 47, 48, 48, 49, 49, 49,
80 static const uint8_t dnxhd_1241_chroma_weight[] = {
81 0, 32, 36, 38, 37, 37, 40, 41,
82 40, 40, 42, 42, 41, 41, 41, 41,
83 42, 43, 44, 44, 45, 46, 46, 45,
84 44, 45, 45, 45, 45, 46, 47, 46,
85 45, 44, 42, 41, 43, 45, 45, 47,
86 48, 48, 48, 46, 47, 47, 46, 47,
87 46, 45, 45, 47, 48, 49, 50, 49,
88 48, 46, 48, 49, 48, 49, 49, 49,
91 static const uint8_t dnxhd_1242_luma_weight[] = {
92 0, 32, 33, 33, 34, 35, 36, 35,
93 33, 33, 35, 36, 37, 37, 38, 37,
94 37, 37, 36, 37, 37, 37, 38, 39,
95 37, 36, 37, 40, 42, 45, 46, 44,
96 41, 42, 44, 45, 47, 49, 50, 48,
97 46, 48, 49, 50, 52, 52, 50, 49,
98 47, 48, 50, 50, 51, 51, 50, 49,
99 49, 51, 52, 51, 49, 47, 47, 47,
102 static const uint8_t dnxhd_1242_chroma_weight[] = {
103 0, 32, 37, 42, 45, 45, 45, 44,
104 38, 37, 40, 42, 44, 49, 51, 47,
105 41, 40, 43, 44, 46, 48, 51, 54,
106 51, 47, 47, 45, 47, 50, 51, 49,
107 46, 47, 49, 47, 50, 55, 55, 51,
108 48, 49, 51, 51, 52, 52, 54, 54,
109 49, 49, 52, 53, 54, 54, 53, 53,
110 55, 59, 63, 62, 60, 60, 60, 60,
113 static const uint8_t dnxhd_1243_luma_weight[] = {
114 0, 32, 32, 33, 33, 35, 35, 35,
115 35, 35, 35, 35, 34, 35, 38, 40,
116 39, 37, 37, 37, 36, 35, 36, 38,
117 40, 41, 42, 44, 45, 44, 42, 41,
118 40, 38, 36, 36, 37, 38, 40, 43,
119 44, 45, 45, 45, 45, 45, 45, 41,
120 39, 41, 45, 47, 47, 48, 48, 48,
121 46, 44, 45, 47, 47, 48, 47, 47,
124 static const uint8_t dnxhd_1243_chroma_weight[] = {
125 0, 32, 36, 37, 36, 37, 39, 39,
126 41, 43, 43, 42, 41, 41, 41, 42,
127 43, 43, 43, 44, 44, 44, 46, 47,
128 46, 45, 45, 45, 45, 46, 44, 44,
129 45, 44, 42, 41, 43, 46, 45, 44,
130 45, 45, 45, 46, 46, 46, 45, 44,
131 45, 44, 45, 47, 47, 48, 49, 48,
132 46, 45, 46, 47, 47, 48, 47, 47,
135 static const uint8_t dnxhd_1251_luma_weight[] = {
136 0, 32, 32, 34, 34, 34, 34, 35,
137 35, 35, 36, 37, 36, 36, 35, 36,
138 38, 38, 38, 38, 38, 38, 38, 38,
139 38, 38, 39, 41, 44, 43, 41, 40,
140 40, 40, 40, 39, 40, 41, 40, 39,
141 40, 43, 46, 46, 44, 44, 44, 42,
142 41, 43, 46, 48, 50, 55, 58, 53,
143 48, 50, 55, 58, 61, 62, 62, 62,
146 static const uint8_t dnxhd_1251_chroma_weight[] = {
147 0, 32, 35, 36, 36, 35, 36, 39,
148 41, 43, 45, 44, 41, 39, 40, 42,
149 43, 43, 45, 48, 48, 48, 50, 50,
150 50, 51, 51, 51, 51, 52, 53, 54,
151 51, 49, 51, 52, 52, 56, 57, 55,
152 54, 54, 55, 56, 55, 58, 58, 58,
153 60, 61, 62, 62, 59, 57, 58, 58,
154 61, 59, 59, 59, 61, 62, 62, 62,
157 static const uint8_t dnxhd_1252_luma_weight[] = {
158 0, 32, 34, 35, 36, 36, 36, 37,
159 36, 37, 39, 40, 41, 40, 40, 40,
160 41, 41, 42, 41, 41, 43, 44, 44,
161 45, 46, 48, 55, 60, 57, 52, 50,
162 49, 49, 52, 52, 53, 55, 58, 62,
163 65, 73, 82, 82, 80, 78, 73, 68,
164 71, 82, 90, 90, 88, 87, 90, 95,
165 100, 107, 103, 97, 95, 93, 99, 99,
167 static const uint8_t dnxhd_1252_chroma_weight[] = {
168 0, 32, 35, 36, 37, 37, 38, 40,
169 42, 46, 49, 50, 50, 49, 49, 53,
170 56, 56, 57, 58, 60, 62, 64, 65,
171 63, 64, 64, 65, 66, 65, 67, 71,
172 72, 74, 74, 74, 74, 77, 81, 78,
173 72, 73, 82, 85, 89, 88, 84, 80,
174 90, 100, 90, 90, 88, 87, 90, 95,
175 114, 128, 125, 129, 134, 125, 116, 116,
178 static const uint8_t dnxhd_1237_dc_codes[12] = {
179 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63,
182 static const uint8_t dnxhd_1237_dc_bits[12] = {
183 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6,
186 static const uint16_t dnxhd_1237_ac_codes[257] = {
187 0, 1, 4, 5, 12, 26, 27, 56,
188 57, 58, 59, 120, 121, 244, 245, 246,
189 247, 248, 498, 499, 500, 501, 502, 1006,
190 1007, 1008, 1009, 1010, 1011, 2024, 2025, 2026,
191 2027, 2028, 2029, 2030, 2031, 4064, 4065, 4066,
192 4067, 4068, 4069, 4070, 4071, 4072, 4073, 8148,
193 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156,
194 8157, 8158, 16318, 16319, 16320, 16321, 16322, 16323,
195 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331,
196 16332, 16333, 32668, 32669, 32670, 32671, 32672, 32673,
197 32674, 32675, 32676, 32677, 32678, 32679, 32680, 32681,
198 32682, 32683, 32684, 65370, 65371, 65372, 65373, 65374,
199 65375, 65376, 65377, 65378, 65379, 65380, 65381, 65382,
200 65383, 65384, 65385, 65386, 65387, 65388, 65389, 65390,
201 65391, 65392, 65393, 65394, 65395, 65396, 65397, 65398,
202 65399, 65400, 65401, 65402, 65403, 65404, 65405, 65406,
203 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414,
204 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422,
205 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
206 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
207 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
208 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
209 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
210 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
211 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
212 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
213 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
214 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
215 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
216 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
217 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
218 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
222 static const uint8_t dnxhd_1237_ac_bits[257] = {
223 2, 2, 3, 3, 4, 5, 5, 6, 6, 6, 6, 7, 7, 8, 8, 8,
224 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 11, 11, 11,
225 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13,
226 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14,
227 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15,
228 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16,
229 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
230 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
231 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
232 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
233 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
234 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
235 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
236 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
237 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
238 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
242 static const uint8_t dnxhd_1237_ac_level[257] = {
243 1, 1, 2, 0, 3, 4, 2, 5, 6, 7, 3, 8, 9, 10, 11, 12,
244 4, 5, 13, 14, 15, 16, 6, 17, 18, 19, 20, 21, 7, 22, 23, 24,
245 25, 26, 27, 8, 9, 28, 29, 30, 31, 32, 33, 34, 10, 11, 12, 35,
246 36, 37, 38, 39, 40, 41, 13, 14, 15, 16, 42, 43, 44, 45, 46, 47,
247 48, 49, 50, 51, 52, 17, 18, 19, 20, 21, 53, 54, 55, 56, 57, 58,
248 59, 60, 61, 64, 1, 22, 23, 24, 25, 26, 27, 62, 63, 2, 3, 4,
249 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
250 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
251 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
252 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 28, 29, 30, 31,
253 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
254 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
255 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
256 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
257 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
258 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
262 static const uint8_t dnxhd_1237_ac_run_flag[257] = {
263 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
264 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0,
265 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
266 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
267 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
268 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
270 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
271 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
272 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
273 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
274 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
275 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
276 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
277 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
278 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
282 static const uint8_t dnxhd_1237_ac_index_flag[257] = {
283 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
284 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
286 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
287 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
288 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
289 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
290 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
291 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
292 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,
293 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
294 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
295 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
296 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
297 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
298 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
302 static const uint16_t dnxhd_1237_run_codes[62] = {
303 0, 4, 10, 11, 24, 25, 26, 54,
304 55, 56, 57, 58, 118, 119, 240, 482,
305 483, 484, 485, 486, 487, 488, 489, 490,
306 491, 492, 493, 494, 990, 991, 992, 993,
307 994, 995, 996, 997, 998, 999, 1000, 1001,
308 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
309 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
310 1018, 1019, 1020, 1021, 1022, 1023,
313 static const uint8_t dnxhd_1237_run_bits[62] = {
314 1, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 8, 9,
315 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10,
316 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
317 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
320 static const uint8_t dnxhd_1237_run[62] = {
321 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
322 17, 18, 19, 20, 21, 53, 57, 58, 59, 60, 61, 62, 22, 23, 24, 25,
323 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
324 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56,
327 static const uint8_t dnxhd_1238_dc_codes[12] = {
328 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63,
331 static const uint8_t dnxhd_1238_dc_bits[12] = {
332 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6,
335 static const uint16_t dnxhd_1238_ac_codes[257] = {
336 0, 1, 4, 10, 11, 24, 25, 26,
337 54, 55, 56, 57, 116, 117, 118, 119,
338 240, 241, 242, 243, 244, 245, 492, 493,
339 494, 495, 496, 497, 498, 499, 1000, 1001,
340 1002, 1003, 1004, 1005, 1006, 1007, 1008, 2018,
341 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026,
342 2027, 4056, 4057, 4058, 4059, 4060, 4061, 4062,
343 4063, 4064, 4065, 4066, 4067, 4068, 4069, 8140,
344 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148,
345 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156,
346 16314, 16315, 16316, 16317, 16318, 16319, 16320, 16321,
347 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329,
348 16330, 16331, 16332, 16333, 16334, 16335, 16336, 16337,
349 16338, 32678, 32679, 32680, 32681, 32682, 32683, 32684,
350 32685, 32686, 32687, 32688, 32689, 32690, 32691, 32692,
351 32693, 32694, 32695, 32696, 32697, 32698, 32699, 32700,
352 32701, 32702, 32703, 32704, 32705, 65412, 65413, 65414,
353 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422,
354 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
355 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
356 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
357 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
358 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
359 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
360 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
361 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
362 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
363 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
364 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
365 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
366 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
367 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
371 static const uint8_t dnxhd_1238_ac_bits[257] = {
372 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
373 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10,
374 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11,
375 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13,
376 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
377 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
378 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15,
379 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
380 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
381 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
382 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
383 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
384 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
385 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
386 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
387 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
391 static const uint8_t dnxhd_1238_ac_level[257] = {
392 1, 1, 2, 3, 0, 4, 5, 2, 6, 7, 8, 3, 9, 10, 11, 4,
393 12, 13, 14, 15, 16, 5, 17, 18, 19, 20, 21, 22, 6, 7, 23, 24,
394 25, 26, 27, 28, 29, 8, 9, 30, 31, 32, 33, 34, 35, 36, 37, 10,
395 11, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 12, 13, 14, 49,
396 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 15, 16, 17, 18,
397 62, 63, 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
398 14, 15, 16, 19, 20, 21, 22, 23, 24, 17, 18, 19, 20, 21, 22, 23,
399 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 25,
400 26, 27, 28, 29, 30, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49,
401 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 31,
402 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
403 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
404 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
405 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
406 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
407 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
411 static const uint8_t dnxhd_1238_ac_run_flag[257] = {
412 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1,
413 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0,
414 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1,
415 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0,
416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
417 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
418 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
420 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
422 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
423 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
424 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
425 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
426 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
427 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
431 static const uint8_t dnxhd_1238_ac_index_flag[257] = {
432 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
434 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
436 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
437 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
438 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,
439 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
440 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
441 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
444 0, 1, 1, 1, 1, 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, 1,
446 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
447 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
451 static const uint16_t dnxhd_1238_run_codes[62] = {
452 0, 4, 10, 11, 24, 25, 26, 27,
453 56, 57, 58, 59, 120, 242, 486, 487,
454 488, 489, 980, 981, 982, 983, 984, 985,
455 986, 987, 988, 989, 990, 991, 992, 993,
456 994, 995, 996, 997, 998, 999, 1000, 1001,
457 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
458 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
459 1018, 1019, 1020, 1021, 1022, 1023,
462 static const uint8_t dnxhd_1238_run_bits[62] = {
463 1, 3, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 8, 9, 9,
464 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
465 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
466 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
469 static const uint8_t dnxhd_1238_run[62] = {
470 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
471 20, 21, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
472 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
473 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
476 static const uint8_t dnxhd_1241_dc_codes[14] = {
477 10, 62, 11, 12, 13, 0, 1, 2, 3, 4, 14, 30, 126, 127,
480 static const uint8_t dnxhd_1241_dc_bits[14] = {
481 4, 6, 4, 4, 4, 3, 3, 3, 3, 3, 4, 5, 7, 7,
484 static const uint16_t dnxhd_1241_ac_codes[257] = {
485 0, 1, 4, 10, 11, 24, 25, 26,
486 54, 55, 56, 57, 116, 117, 118, 119,
487 240, 241, 242, 243, 244, 245, 492, 493,
488 494, 495, 496, 497, 498, 998, 999, 1000,
489 1001, 1002, 1003, 1004, 1005, 1006, 1007, 2016,
490 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024,
491 2025, 2026, 4054, 4055, 4056, 4057, 4058, 4059,
492 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067,
493 4068, 4069, 8140, 8141, 8142, 8143, 8144, 8145,
494 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153,
495 8154, 8155, 8156, 8157, 16316, 16317, 16318, 16319,
496 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327,
497 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
498 16336, 16337, 32676, 32677, 32678, 32679, 32680, 32681,
499 32682, 32683, 32684, 32685, 32686, 32687, 32688, 32689,
500 32690, 32691, 32692, 32693, 32694, 32695, 32696, 32697,
501 32698, 32699, 32700, 32701, 32702, 32703, 32704, 32705,
502 32706, 32707, 32708, 65418, 65419, 65420, 65421, 65422,
503 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
504 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
505 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
506 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
507 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
508 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
509 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
510 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
511 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
512 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
513 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
514 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
515 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
516 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
520 static const uint8_t dnxhd_1241_ac_bits[257] = {
521 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
522 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10,
523 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11,
524 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
525 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
526 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
527 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15,
528 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
529 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16,
530 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
531 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
532 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
533 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 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,
540 static const uint8_t dnxhd_1241_ac_level[257] = {
541 1, 1, 2, 3, 0, 4, 5, 2, 6, 7, 8, 3, 9, 10, 11, 4,
542 12, 13, 14, 15, 16, 5, 17, 18, 19, 20, 21, 6, 7, 22, 23, 24,
543 25, 26, 27, 28, 29, 8, 9, 30, 31, 32, 33, 34, 35, 36, 37, 38,
544 10, 11, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 12, 13,
545 14, 15, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 1,
546 16, 17, 18, 19, 64, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
547 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 18, 19, 20, 21, 22, 23,
548 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
549 40, 41, 42, 25, 26, 27, 28, 29, 30, 31, 32, 43, 44, 45, 46, 47,
550 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
551 64, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
552 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
553 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
554 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
555 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
556 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
560 static const uint8_t dnxhd_1241_ac_run_flag[257] = {
561 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1,
562 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
563 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
564 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
565 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
566 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
567 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
569 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
570 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
571 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
574 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
575 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
576 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
580 static const uint8_t dnxhd_1241_ac_index_flag[257] = {
581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
582 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
584 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
585 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
586 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
587 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
588 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
589 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,
590 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
591 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
593 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
594 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
595 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
596 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
600 static const uint8_t dnxhd_1241_run[62] = {
601 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
602 18, 20, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
603 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
604 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
607 static const uint8_t dnxhd_1251_dc_codes[12] = {
608 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63,
611 static const uint8_t dnxhd_1251_dc_bits[12] = {
612 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6,
615 static const uint16_t dnxhd_1251_ac_codes[257] = {
616 0, 1, 4, 10, 11, 24, 25, 26,
617 54, 55, 56, 57, 116, 117, 118, 119,
618 240, 241, 242, 243, 244, 245, 492, 493,
619 494, 495, 496, 497, 996, 997, 998, 999,
620 1000, 1001, 1002, 1003, 1004, 1005, 2012, 2013,
621 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,
622 2022, 2023, 2024, 2025, 4052, 4053, 4054, 4055,
623 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063,
624 4064, 4065, 4066, 8134, 8135, 8136, 8137, 8138,
625 8139, 8140, 8141, 8142, 8143, 8144, 8145, 8146,
626 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154,
627 8155, 8156, 16314, 16315, 16316, 16317, 16318, 16319,
628 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327,
629 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
630 16336, 16337, 16338, 16339, 32680, 32681, 32682, 32683,
631 32684, 32685, 32686, 32687, 32688, 32689, 32690, 32691,
632 32692, 32693, 32694, 32695, 32696, 32697, 32698, 32699,
633 32700, 32701, 32702, 32703, 32704, 32705, 32706, 32707,
634 32708, 32709, 32710, 32711, 32712, 32713, 32714, 65430,
635 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
636 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
637 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
638 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
639 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
640 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
641 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
642 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
643 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
644 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
645 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
646 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
647 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
651 static const uint8_t dnxhd_1251_ac_bits[257] = {
652 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
653 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10,
654 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
655 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
656 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
657 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14,
658 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
659 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
660 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
661 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16,
662 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
663 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
664 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
665 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
666 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
667 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
671 static const uint8_t dnxhd_1251_ac_level[257] = {
672 1, 1, 2, 3, 0, 4, 5, 2, 6, 7, 8, 3, 9, 10, 11, 4,
673 12, 13, 14, 15, 16, 5, 17, 18, 19, 20, 21, 6, 22, 23, 24, 25,
674 26, 27, 28, 29, 7, 8, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
675 40, 9, 10, 11, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
676 12, 13, 14, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1,
677 2, 3, 4, 5, 6, 7, 8, 15, 16, 17, 9, 10, 11, 12, 13, 14,
678 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 18,
679 19, 20, 21, 22, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
680 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
681 58, 23, 24, 25, 26, 27, 28, 59, 60, 61, 62, 63, 64, 29, 30, 31,
682 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
683 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
684 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
685 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
686 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
687 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
691 static const uint8_t dnxhd_1251_ac_run_flag[257] = {
692 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1,
693 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
694 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
695 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
696 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
697 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0,
698 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
699 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
700 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
701 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1,
702 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
703 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
704 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
705 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
706 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
707 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
711 static const uint8_t dnxhd_1251_ac_index_flag[257] = {
712 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
713 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
714 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
715 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
717 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1,
718 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
719 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
720 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
721 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,
722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
724 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
725 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
726 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
727 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
731 static const uint16_t dnxhd_1251_run_codes[62] = {
732 0, 4, 5, 12, 26, 27, 28, 58,
733 118, 119, 120, 242, 486, 487, 976, 977,
734 978, 979, 980, 981, 982, 983, 984, 985,
735 986, 987, 988, 989, 990, 991, 992, 993,
736 994, 995, 996, 997, 998, 999, 1000, 1001,
737 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
738 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
739 1018, 1019, 1020, 1021, 1022, 1023,
742 static const uint8_t dnxhd_1251_run_bits[62] = {
743 1, 3, 3, 4, 5, 5, 5, 6, 7, 7, 7, 8, 9, 9, 10, 10,
744 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
745 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
746 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
749 static const uint8_t dnxhd_1251_run[62] = {
750 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
751 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
752 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
753 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
756 static const uint8_t dnxhd_1252_dc_codes[12] = {
757 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63,
760 static const uint8_t dnxhd_1252_dc_bits[12] = {
761 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6,
764 static const uint16_t dnxhd_1252_ac_codes[257] = {
765 0, 1, 4, 10, 11, 12, 26, 27,
766 56, 57, 58, 118, 119, 120, 242, 243,
767 244, 245, 246, 247, 496, 497, 498, 499,
768 500, 1002, 1003, 1004, 1005, 1006, 1007, 1008,
769 1009, 2020, 2021, 2022, 2023, 2024, 2025, 2026,
770 2027, 2028, 2029, 4060, 4061, 4062, 4063, 4064,
771 4065, 4066, 4067, 4068, 4069, 4070, 4071, 8144,
772 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152,
773 8153, 8154, 8155, 8156, 8157, 8158, 16318, 16319,
774 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327,
775 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
776 32672, 32673, 32674, 32675, 32676, 32677, 32678, 32679,
777 32680, 32681, 32682, 32683, 32684, 32685, 32686, 32687,
778 32688, 32689, 32690, 32691, 32692, 32693, 32694, 65390,
779 65391, 65392, 65393, 65394, 65395, 65396, 65397, 65398,
780 65399, 65400, 65401, 65402, 65403, 65404, 65405, 65406,
781 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414,
782 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422,
783 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
784 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
785 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
786 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
787 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
788 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
789 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
790 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
791 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
792 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
793 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
794 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
795 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
796 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
800 static const uint8_t dnxhd_1252_ac_bits[257] = {
801 2, 2, 3, 4, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8,
802 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10,
803 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12,
804 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13,
805 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
806 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15,
807 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16,
808 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
809 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
810 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
811 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
812 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
813 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
814 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
815 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
816 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
820 static const uint8_t dnxhd_1252_ac_level[257] = {
821 1, 1, 2, 3, 2, 0, 4, 5, 6, 7, 3, 8, 9, 10, 11, 12,
822 13, 14, 4, 5, 15, 16, 17, 18, 6, 19, 20, 21, 22, 23, 24, 7,
823 8, 25, 26, 27, 28, 29, 30, 31, 32, 9, 10, 33, 34, 35, 36, 37,
824 38, 39, 40, 41, 11, 12, 13, 42, 43, 44, 45, 46, 47, 48, 49, 50,
825 51, 52, 53, 14, 15, 16, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
826 64, 1, 2, 3, 17, 18, 19, 20, 4, 5, 6, 7, 8, 9, 10, 11,
827 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 21, 22, 23, 24, 25, 22,
828 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
829 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
830 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 26, 27, 28, 29, 30, 31,
831 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
832 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
833 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
834 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
835 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
836 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
840 static const uint8_t dnxhd_1252_ac_run_flag[257] = {
841 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
842 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1,
843 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
844 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
845 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
846 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0,
848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
851 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
852 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
853 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
854 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
855 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
856 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
860 static const uint8_t dnxhd_1252_ac_index_flag[257] = {
861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
866 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1,
867 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1,
868 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
869 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
870 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
873 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
874 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
875 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
876 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
880 const CIDEntry ff_dnxhd_cid_table[] = {
881 { 1237, 1920, 1080, 0, 606208, 606208, 4, 8,
882 dnxhd_1237_luma_weight, dnxhd_1237_chroma_weight,
883 dnxhd_1237_dc_codes, dnxhd_1237_dc_bits,
884 dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level,
885 dnxhd_1237_ac_run_flag, dnxhd_1237_ac_index_flag,
886 dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run,
887 { 115, 120, 145, 240, 290 } },
888 { 1238, 1920, 1080, 0, 917504, 917504, 4, 8,
889 dnxhd_1238_luma_weight, dnxhd_1238_chroma_weight,
890 dnxhd_1238_dc_codes, dnxhd_1238_dc_bits,
891 dnxhd_1238_ac_codes, dnxhd_1238_ac_bits, dnxhd_1238_ac_level,
892 dnxhd_1238_ac_run_flag, dnxhd_1238_ac_index_flag,
893 dnxhd_1238_run_codes, dnxhd_1238_run_bits, dnxhd_1238_run,
894 { 175, 185, 220, 365, 440 } },
895 { 1241, 1920, 1080, 1, 917504, 458752, 6, 10,
896 dnxhd_1241_luma_weight, dnxhd_1241_chroma_weight,
897 dnxhd_1241_dc_codes, dnxhd_1241_dc_bits,
898 dnxhd_1241_ac_codes, dnxhd_1241_ac_bits, dnxhd_1241_ac_level,
899 dnxhd_1241_ac_run_flag, dnxhd_1241_ac_index_flag,
900 dnxhd_1238_run_codes, dnxhd_1238_run_bits, dnxhd_1241_run,
902 { 1242, 1920, 1080, 1, 606208, 303104, 4, 8,
903 dnxhd_1242_luma_weight, dnxhd_1242_chroma_weight,
904 dnxhd_1237_dc_codes, dnxhd_1237_dc_bits,
905 dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level,
906 dnxhd_1237_ac_run_flag, dnxhd_1237_ac_index_flag,
907 dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run,
909 { 1243, 1920, 1080, 1, 917504, 458752, 4, 8,
910 dnxhd_1243_luma_weight, dnxhd_1243_chroma_weight,
911 dnxhd_1238_dc_codes, dnxhd_1238_dc_bits,
912 dnxhd_1238_ac_codes, dnxhd_1238_ac_bits, dnxhd_1238_ac_level,
913 dnxhd_1238_ac_run_flag, dnxhd_1238_ac_index_flag,
914 dnxhd_1238_run_codes, dnxhd_1238_run_bits, dnxhd_1238_run,
916 { 1251, 1280, 720, 0, 458752, 458752, 4, 8,
917 dnxhd_1251_luma_weight, dnxhd_1251_chroma_weight,
918 dnxhd_1251_dc_codes, dnxhd_1251_dc_bits,
919 dnxhd_1251_ac_codes, dnxhd_1251_ac_bits, dnxhd_1251_ac_level,
920 dnxhd_1251_ac_run_flag, dnxhd_1251_ac_index_flag,
921 dnxhd_1251_run_codes, dnxhd_1251_run_bits, dnxhd_1251_run,
922 { 90, 110, 175, 220 } },
923 { 1252, 1280, 720, 0, 303104, 303104, 4, 8,
924 dnxhd_1252_luma_weight, dnxhd_1252_chroma_weight,
925 dnxhd_1252_dc_codes, dnxhd_1252_dc_bits,
926 dnxhd_1252_ac_codes, dnxhd_1252_ac_bits, dnxhd_1252_ac_level,
927 dnxhd_1252_ac_run_flag, dnxhd_1252_ac_index_flag,
928 dnxhd_1251_run_codes, dnxhd_1251_run_bits, dnxhd_1251_run,
929 { 60, 75, 115, 145 } },
930 { 1253, 1920, 1080, 0, 188416, 188416, 4, 8,
931 dnxhd_1237_luma_weight, dnxhd_1237_chroma_weight,
932 dnxhd_1237_dc_codes, dnxhd_1237_dc_bits,
933 dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level,
934 dnxhd_1237_ac_run_flag, dnxhd_1237_ac_index_flag,
935 dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run,
936 { 36, 45, 75, 90 } },
939 int ff_dnxhd_get_cid_table(int cid)
942 for (i = 0; i < FF_ARRAY_ELEMS(ff_dnxhd_cid_table); i++)
943 if (ff_dnxhd_cid_table[i].cid == cid)
948 int ff_dnxhd_find_cid(AVCodecContext *avctx)
951 int mbs = avctx->bit_rate/1000000;
954 for (i = 0; i < FF_ARRAY_ELEMS(ff_dnxhd_cid_table); i++) {
955 const CIDEntry *cid = &ff_dnxhd_cid_table[i];
956 if (cid->width == avctx->width && cid->height == avctx->height &&
957 cid->interlaced == !!(avctx->flags & CODEC_FLAG_INTERLACED_DCT) &&
958 cid->bit_depth == 8) { // until 10 bit is supported
959 for (j = 0; j < sizeof(cid->bit_rates); j++) {
960 if (cid->bit_rates[j] == mbs)