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