ffmpeg / libavcodec / dnxhddata.c @ 2912e87a
History | View | Annotate | Download (40.4 KB)
1 | d3dc629c | Baptiste Coudurier | /*
|
---|---|---|---|
2 | * VC3/DNxHD data.
|
||
3 | 406792e7 | Diego Biurrun | * Copyright (c) 2007 SmartJog S.A., Baptiste Coudurier <baptiste dot coudurier at smartjog dot com>
|
4 | d3dc629c | Baptiste Coudurier | *
|
5 | 2912e87a | Mans Rullgard | * This file is part of Libav.
|
6 | d3dc629c | Baptiste Coudurier | *
|
7 | 2912e87a | Mans Rullgard | * Libav is free software; you can redistribute it and/or
|
8 | d3dc629c | Baptiste Coudurier | * 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.
|
||
11 | *
|
||
12 | 2912e87a | Mans Rullgard | * Libav is distributed in the hope that it will be useful,
|
13 | d3dc629c | Baptiste Coudurier | * 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.
|
||
16 | *
|
||
17 | * You should have received a copy of the GNU Lesser General Public
|
||
18 | 2912e87a | Mans Rullgard | * License along with Libav; if not, write to the Free Software
|
19 | d3dc629c | Baptiste Coudurier | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
20 | */
|
||
21 | |||
22 | 0c39c38b | Baptiste Coudurier | #include "avcodec.h" |
23 | d3dc629c | Baptiste Coudurier | #include "dnxhddata.h" |
24 | |||
25 | 6cb1d361 | Baptiste Coudurier | static const uint8_t dnxhd_1237_luma_weight[] = { |
26 | d3dc629c | Baptiste Coudurier | 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, |
||
34 | }; |
||
35 | |||
36 | 6cb1d361 | Baptiste Coudurier | static const uint8_t dnxhd_1237_chroma_weight[] = { |
37 | d3dc629c | Baptiste Coudurier | 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, |
||
45 | }; |
||
46 | |||
47 | 6cb1d361 | Baptiste Coudurier | static const uint8_t dnxhd_1238_luma_weight[] = { |
48 | d3dc629c | Baptiste Coudurier | 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, |
||
56 | }; |
||
57 | |||
58 | 6cb1d361 | Baptiste Coudurier | static const uint8_t dnxhd_1238_chroma_weight[] = { |
59 | d3dc629c | Baptiste Coudurier | 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, |
||
67 | }; |
||
68 | |||
69 | cd52a9ca | Baptiste Coudurier | 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, |
||
78 | }; |
||
79 | |||
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, |
||
89 | }; |
||
90 | |||
91 | 6cb1d361 | Baptiste Coudurier | static const uint8_t dnxhd_1242_luma_weight[] = { |
92 | 6aacfd22 | Baptiste Coudurier | 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, |
||
100 | }; |
||
101 | |||
102 | 6cb1d361 | Baptiste Coudurier | static const uint8_t dnxhd_1242_chroma_weight[] = { |
103 | 6aacfd22 | Baptiste Coudurier | 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, |
||
111 | }; |
||
112 | |||
113 | 6cb1d361 | Baptiste Coudurier | static const uint8_t dnxhd_1243_luma_weight[] = { |
114 | d3dc629c | Baptiste Coudurier | 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, |
||
122 | }; |
||
123 | |||
124 | 6cb1d361 | Baptiste Coudurier | static const uint8_t dnxhd_1243_chroma_weight[] = { |
125 | d3dc629c | Baptiste Coudurier | 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, |
||
133 | }; |
||
134 | |||
135 | cc3a9708 | Baptiste Coudurier | 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, |
||
144 | }; |
||
145 | |||
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, |
||
155 | }; |
||
156 | |||
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, |
||
166 | }; |
||
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, |
||
176 | }; |
||
177 | |||
178 | d3dc629c | Baptiste Coudurier | static const uint8_t dnxhd_1237_dc_codes[12] = { |
179 | 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63, |
||
180 | }; |
||
181 | |||
182 | static const uint8_t dnxhd_1237_dc_bits[12] = { |
||
183 | 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6, |
||
184 | }; |
||
185 | |||
186 | static const uint16_t dnxhd_1237_ac_codes[257] = { |
||
187 | 0, 1, 4, 5, 12, 26, 27, 56, 57, 58, 59, 120, 121, 244, 245, 246, 247, 248, 498, 499, 500, 501, 502, 1006, 1007, 1008, 1009, 1010, 1011, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156, 8157, 8158, 16318, 16319, 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331, 16332, 16333, 32668, 32669, 32670, 32671, 32672, 32673, 32674, 32675, 32676, 32677, 32678, 32679, 32680, 32681, 32682, 32683, 32684, 65370, 65371, 65372, 65373, 65374, 65375, 65376, 65377, 65378, 65379, 65380, 65381, 65382, 65383, 65384, 65385, 65386, 65387, 65388, 65389, 65390, 65391, 65392, 65393, 65394, 65395, 65396, 65397, 65398, 65399, 65400, 65401, 65402, 65403, 65404, 65405, 65406, 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414, 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422, 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430, 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438, 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446, 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454, 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462, 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470, 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478, 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486, 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494, 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502, 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510, 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518, 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526, 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534, 65535, |
||
188 | }; |
||
189 | |||
190 | static const uint8_t dnxhd_1237_ac_bits[257] = { |
||
191 | 2, 2, 3, 3, 4, 5, 5, 6, 6, 6, 6, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, |
||
192 | }; |
||
193 | |||
194 | static const uint8_t dnxhd_1237_ac_level[257] = { |
||
195 | 1, 1, 2, 0, 3, 4, 2, 5, 6, 7, 3, 8, 9, 10, 11, 12, 4, 5, 13, 14, 15, 16, 6, 17, 18, 19, 20, 21, 7, 22, 23, 24, 25, 26, 27, 8, 9, 28, 29, 30, 31, 32, 33, 34, 10, 11, 12, 35, 36, 37, 38, 39, 40, 41, 13, 14, 15, 16, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 17, 18, 19, 20, 21, 53, 54, 55, 56, 57, 58, 59, 60, 61, 64, 1, 22, 23, 24, 25, 26, 27, 62, 63, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, |
||
196 | }; |
||
197 | |||
198 | static const uint8_t dnxhd_1237_ac_run_flag[257] = { |
||
199 | 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
||
200 | }; |
||
201 | |||
202 | static const uint8_t dnxhd_1237_ac_index_flag[257] = { |
||
203 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
||
204 | }; |
||
205 | |||
206 | static const uint16_t dnxhd_1237_run_codes[62] = { |
||
207 | 0, 4, 10, 11, 24, 25, 26, 54, 55, 56, 57, 58, 118, 119, 240, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, |
||
208 | }; |
||
209 | |||
210 | static const uint8_t dnxhd_1237_run_bits[62] = { |
||
211 | 1, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, |
||
212 | }; |
||
213 | |||
214 | static const uint8_t dnxhd_1237_run[62] = { |
||
215 | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 53, 57, 58, 59, 60, 61, 62, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, |
||
216 | }; |
||
217 | |||
218 | static const uint8_t dnxhd_1238_dc_codes[12] = { |
||
219 | 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63, |
||
220 | }; |
||
221 | |||
222 | static const uint8_t dnxhd_1238_dc_bits[12] = { |
||
223 | 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6, |
||
224 | }; |
||
225 | |||
226 | static const uint16_t dnxhd_1238_ac_codes[257] = { |
||
227 | 0, 1, 4, 10, 11, 24, 25, 26, 54, 55, 56, 57, 116, 117, 118, 119, 240, 241, 242, 243, 244, 245, 492, 493, 494, 495, 496, 497, 498, 499, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 8140, 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156, 16314, 16315, 16316, 16317, 16318, 16319, 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335, 16336, 16337, 16338, 32678, 32679, 32680, 32681, 32682, 32683, 32684, 32685, 32686, 32687, 32688, 32689, 32690, 32691, 32692, 32693, 32694, 32695, 32696, 32697, 32698, 32699, 32700, 32701, 32702, 32703, 32704, 32705, 65412, 65413, 65414, 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422, 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430, 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438, 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446, 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454, 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462, 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470, 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478, 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486, 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494, 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502, 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510, 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518, 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526, 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534, 65535, |
||
228 | }; |
||
229 | |||
230 | static const uint8_t dnxhd_1238_ac_bits[257] = { |
||
231 | 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, |
||
232 | }; |
||
233 | |||
234 | static const uint8_t dnxhd_1238_ac_level[257] = { |
||
235 | 1, 1, 2, 3, 0, 4, 5, 2, 6, 7, 8, 3, 9, 10, 11, 4, 12, 13, 14, 15, 16, 5, 17, 18, 19, 20, 21, 22, 6, 7, 23, 24, 25, 26, 27, 28, 29, 8, 9, 30, 31, 32, 33, 34, 35, 36, 37, 10, 11, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 12, 13, 14, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 15, 16, 17, 18, 62, 63, 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 25, 26, 27, 28, 29, 30, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, |
||
236 | }; /* 0 is EOB */
|
||
237 | |||
238 | static const uint8_t dnxhd_1238_ac_run_flag[257] = { |
||
239 | 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
||
240 | }; |
||
241 | |||
242 | static const uint8_t dnxhd_1238_ac_index_flag[257] = { |
||
243 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
||
244 | }; |
||
245 | |||
246 | static const uint16_t dnxhd_1238_run_codes[62] = { |
||
247 | 0, 4, 10, 11, 24, 25, 26, 27, 56, 57, 58, 59, 120, 242, 486, 487, 488, 489, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, |
||
248 | }; |
||
249 | |||
250 | static const uint8_t dnxhd_1238_run_bits[62] = { |
||
251 | 1, 3, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 8, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, |
||
252 | }; |
||
253 | |||
254 | static const uint8_t dnxhd_1238_run[62] = { |
||
255 | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 20, 21, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, |
||
256 | }; |
||
257 | |||
258 | cd52a9ca | Baptiste Coudurier | static const uint8_t dnxhd_1241_dc_codes[14] = { |
259 | 10, 62, 11, 12, 13, 0, 1, 2, 3, 4, 14, 30, 126, 127, |
||
260 | }; |
||
261 | |||
262 | static const uint8_t dnxhd_1241_dc_bits[14] = { |
||
263 | 4, 6, 4, 4, 4, 3, 3, 3, 3, 3, 4, 5, 7, 7, |
||
264 | }; |
||
265 | static const uint16_t dnxhd_1241_ac_codes[257] = { |
||
266 | 0, 1, 4, 10, 11, 24, 25, 26, 54, 55, 56, 57, 116, 117, 118, 119, 240, 241, 242, 243, 244, 245, 492, 493, 494, 495, 496, 497, 498, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 8140, 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156, 8157, 16316, 16317, 16318, 16319, 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335, 16336, 16337, 32676, 32677, 32678, 32679, 32680, 32681, 32682, 32683, 32684, 32685, 32686, 32687, 32688, 32689, 32690, 32691, 32692, 32693, 32694, 32695, 32696, 32697, 32698, 32699, 32700, 32701, 32702, 32703, 32704, 32705, 32706, 32707, 32708, 65418, 65419, 65420, 65421, 65422, 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430, 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438, 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446, 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454, 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462, 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470, 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478, 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486, 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494, 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502, 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510, 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518, 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526, 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534, 65535, |
||
267 | }; |
||
268 | |||
269 | static const uint8_t dnxhd_1241_ac_bits[257] = { |
||
270 | 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, |
||
271 | }; |
||
272 | |||
273 | static const uint8_t dnxhd_1241_ac_level[257] = { |
||
274 | 1, 1, 2, 3, 0, 4, 5, 2, 6, 7, 8, 3, 9, 10, 11, 4, 12, 13, 14, 15, 16, 5, 17, 18, 19, 20, 21, 6, 7, 22, 23, 24, 25, 26, 27, 28, 29, 8, 9, 30, 31, 32, 33, 34, 35, 36, 37, 38, 10, 11, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 12, 13, 14, 15, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 1, 16, 17, 18, 19, 64, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 25, 26, 27, 28, 29, 30, 31, 32, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, |
||
275 | }; |
||
276 | |||
277 | static const uint8_t dnxhd_1241_ac_run_flag[257] = { |
||
278 | 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
||
279 | }; |
||
280 | |||
281 | static const uint8_t dnxhd_1241_ac_index_flag[257] = { |
||
282 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
||
283 | }; |
||
284 | |||
285 | static const uint8_t dnxhd_1241_run[62] = { |
||
286 | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, |
||
287 | }; |
||
288 | |||
289 | cc3a9708 | Baptiste Coudurier | static const uint8_t dnxhd_1251_dc_codes[12] = { |
290 | 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63, |
||
291 | }; |
||
292 | static const uint8_t dnxhd_1251_dc_bits[12] = { |
||
293 | 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6, |
||
294 | }; |
||
295 | static const uint16_t dnxhd_1251_ac_codes[257] = { |
||
296 | 0, 1, 4, 10, 11, 24, 25, 26, 54, 55, 56, 57, 116, 117, 118, 119, 240, 241, 242, 243, 244, 245, 492, 493, 494, 495, 496, 497, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 8134, 8135, 8136, 8137, 8138, 8139, 8140, 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156, 16314, 16315, 16316, 16317, 16318, 16319, 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335, 16336, 16337, 16338, 16339, 32680, 32681, 32682, 32683, 32684, 32685, 32686, 32687, 32688, 32689, 32690, 32691, 32692, 32693, 32694, 32695, 32696, 32697, 32698, 32699, 32700, 32701, 32702, 32703, 32704, 32705, 32706, 32707, 32708, 32709, 32710, 32711, 32712, 32713, 32714, 65430, 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438, 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446, 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454, 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462, 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470, 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478, 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486, 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494, 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502, 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510, 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518, 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526, 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534, 65535, |
||
297 | }; |
||
298 | static const uint8_t dnxhd_1251_ac_bits[257] = { |
||
299 | 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, |
||
300 | }; |
||
301 | static const uint8_t dnxhd_1251_ac_level[257] = { |
||
302 | 1, 1, 2, 3, 0, 4, 5, 2, 6, 7, 8, 3, 9, 10, 11, 4, 12, 13, 14, 15, 16, 5, 17, 18, 19, 20, 21, 6, 22, 23, 24, 25, 26, 27, 28, 29, 7, 8, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 9, 10, 11, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 12, 13, 14, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1, 2, 3, 4, 5, 6, 7, 8, 15, 16, 17, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 18, 19, 20, 21, 22, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 23, 24, 25, 26, 27, 28, 59, 60, 61, 62, 63, 64, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, |
||
303 | }; |
||
304 | static const uint8_t dnxhd_1251_ac_run_flag[257] = { |
||
305 | 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
||
306 | }; |
||
307 | static const uint8_t dnxhd_1251_ac_index_flag[257] = { |
||
308 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
||
309 | }; |
||
310 | static const uint16_t dnxhd_1251_run_codes[62] = { |
||
311 | 0, 4, 5, 12, 26, 27, 28, 58, 118, 119, 120, 242, 486, 487, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, |
||
312 | }; |
||
313 | static const uint8_t dnxhd_1251_run_bits[62] = { |
||
314 | 1, 3, 3, 4, 5, 5, 5, 6, 7, 7, 7, 8, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, |
||
315 | }; |
||
316 | static const uint8_t dnxhd_1251_run[62] = { |
||
317 | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, |
||
318 | }; |
||
319 | |||
320 | static const uint8_t dnxhd_1252_dc_codes[12] = { |
||
321 | 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63, |
||
322 | }; |
||
323 | static const uint8_t dnxhd_1252_dc_bits[12] = { |
||
324 | 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6, |
||
325 | }; |
||
326 | static const uint16_t dnxhd_1252_ac_codes[257] = { |
||
327 | 0, 1, 4, 10, 11, 12, 26, 27, 56, 57, 58, 118, 119, 120, 242, 243, 244, 245, 246, 247, 496, 497, 498, 499, 500, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 8144, 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156, 8157, 8158, 16318, 16319, 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335, 32672, 32673, 32674, 32675, 32676, 32677, 32678, 32679, 32680, 32681, 32682, 32683, 32684, 32685, 32686, 32687, 32688, 32689, 32690, 32691, 32692, 32693, 32694, 65390, 65391, 65392, 65393, 65394, 65395, 65396, 65397, 65398, 65399, 65400, 65401, 65402, 65403, 65404, 65405, 65406, 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414, 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422, 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430, 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438, 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446, 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454, 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462, 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470, 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478, 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486, 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494, 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502, 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510, 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518, 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526, 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534, 65535, |
||
328 | }; |
||
329 | static const uint8_t dnxhd_1252_ac_bits[257] = { |
||
330 | 2, 2, 3, 4, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, |
||
331 | }; |
||
332 | static const uint8_t dnxhd_1252_ac_level[257] = { |
||
333 | 1, 1, 2, 3, 2, 0, 4, 5, 6, 7, 3, 8, 9, 10, 11, 12, 13, 14, 4, 5, 15, 16, 17, 18, 6, 19, 20, 21, 22, 23, 24, 7, 8, 25, 26, 27, 28, 29, 30, 31, 32, 9, 10, 33, 34, 35, 36, 37, 38, 39, 40, 41, 11, 12, 13, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 14, 15, 16, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1, 2, 3, 17, 18, 19, 20, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 21, 22, 23, 24, 25, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, |
||
334 | }; |
||
335 | static const uint8_t dnxhd_1252_ac_run_flag[257] = { |
||
336 | 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
||
337 | }; |
||
338 | static const uint8_t dnxhd_1252_ac_index_flag[257] = { |
||
339 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
||
340 | }; |
||
341 | |||
342 | d3dc629c | Baptiste Coudurier | const CIDEntry ff_dnxhd_cid_table[] = {
|
343 | { 1237, 1920, 1080, 0, 606208, 606208, 4, 8, |
||
344 | 6cb1d361 | Baptiste Coudurier | dnxhd_1237_luma_weight, dnxhd_1237_chroma_weight, |
345 | d3dc629c | Baptiste Coudurier | dnxhd_1237_dc_codes, dnxhd_1237_dc_bits, |
346 | dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level, |
||
347 | dnxhd_1237_ac_run_flag, dnxhd_1237_ac_index_flag, |
||
348 | 0c39c38b | Baptiste Coudurier | dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run, |
349 | { 115, 120, 145, 240, 290 } }, |
||
350 | d3dc629c | Baptiste Coudurier | { 1238, 1920, 1080, 0, 917504, 917504, 4, 8, |
351 | 6cb1d361 | Baptiste Coudurier | dnxhd_1238_luma_weight, dnxhd_1238_chroma_weight, |
352 | d3dc629c | Baptiste Coudurier | dnxhd_1238_dc_codes, dnxhd_1238_dc_bits, |
353 | dnxhd_1238_ac_codes, dnxhd_1238_ac_bits, dnxhd_1238_ac_level, |
||
354 | dnxhd_1238_ac_run_flag, dnxhd_1238_ac_index_flag, |
||
355 | 0c39c38b | Baptiste Coudurier | dnxhd_1238_run_codes, dnxhd_1238_run_bits, dnxhd_1238_run, |
356 | { 175, 185, 220, 365, 440 } }, |
||
357 | cd52a9ca | Baptiste Coudurier | { 1241, 1920, 1080, 1, 917504, 458752, 6, 10, |
358 | dnxhd_1241_luma_weight, dnxhd_1241_chroma_weight, |
||
359 | dnxhd_1241_dc_codes, dnxhd_1241_dc_bits, |
||
360 | dnxhd_1241_ac_codes, dnxhd_1241_ac_bits, dnxhd_1241_ac_level, |
||
361 | dnxhd_1241_ac_run_flag, dnxhd_1241_ac_index_flag, |
||
362 | 439c6503 | Stefan Gehrer | dnxhd_1238_run_codes, dnxhd_1238_run_bits, dnxhd_1241_run, |
363 | 0c39c38b | Baptiste Coudurier | { 185, 220 } }, |
364 | 6aacfd22 | Baptiste Coudurier | { 1242, 1920, 1080, 1, 606208, 303104, 4, 8, |
365 | 6cb1d361 | Baptiste Coudurier | dnxhd_1242_luma_weight, dnxhd_1242_chroma_weight, |
366 | 6aacfd22 | Baptiste Coudurier | dnxhd_1237_dc_codes, dnxhd_1237_dc_bits, |
367 | dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level, |
||
368 | dnxhd_1237_ac_run_flag, dnxhd_1237_ac_index_flag, |
||
369 | 0c39c38b | Baptiste Coudurier | dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run, |
370 | { 120, 145 } }, |
||
371 | d3dc629c | Baptiste Coudurier | { 1243, 1920, 1080, 1, 917504, 458752, 4, 8, |
372 | 6cb1d361 | Baptiste Coudurier | dnxhd_1243_luma_weight, dnxhd_1243_chroma_weight, |
373 | d3dc629c | Baptiste Coudurier | dnxhd_1238_dc_codes, dnxhd_1238_dc_bits, |
374 | dnxhd_1238_ac_codes, dnxhd_1238_ac_bits, dnxhd_1238_ac_level, |
||
375 | dnxhd_1238_ac_run_flag, dnxhd_1238_ac_index_flag, |
||
376 | 0c39c38b | Baptiste Coudurier | dnxhd_1238_run_codes, dnxhd_1238_run_bits, dnxhd_1238_run, |
377 | { 185, 220 } }, |
||
378 | cc3a9708 | Baptiste Coudurier | { 1251, 1280, 720, 0, 458752, 458752, 4, 8, |
379 | dnxhd_1251_luma_weight, dnxhd_1251_chroma_weight, |
||
380 | dnxhd_1251_dc_codes, dnxhd_1251_dc_bits, |
||
381 | dnxhd_1251_ac_codes, dnxhd_1251_ac_bits, dnxhd_1251_ac_level, |
||
382 | dnxhd_1251_ac_run_flag, dnxhd_1251_ac_index_flag, |
||
383 | 0c39c38b | Baptiste Coudurier | dnxhd_1251_run_codes, dnxhd_1251_run_bits, dnxhd_1251_run, |
384 | { 90, 110, 175, 220 } }, |
||
385 | cc3a9708 | Baptiste Coudurier | { 1252, 1280, 720, 0, 303104, 303104, 4, 8, |
386 | dnxhd_1252_luma_weight, dnxhd_1252_chroma_weight, |
||
387 | dnxhd_1252_dc_codes, dnxhd_1252_dc_bits, |
||
388 | dnxhd_1252_ac_codes, dnxhd_1252_ac_bits, dnxhd_1252_ac_level, |
||
389 | dnxhd_1252_ac_run_flag, dnxhd_1252_ac_index_flag, |
||
390 | 439c6503 | Stefan Gehrer | dnxhd_1251_run_codes, dnxhd_1251_run_bits, dnxhd_1251_run, |
391 | 0c39c38b | Baptiste Coudurier | { 60, 75, 115, 145 } }, |
392 | 2e85b344 | Baptiste Coudurier | { 1253, 1920, 1080, 0, 188416, 188416, 4, 8, |
393 | dnxhd_1237_luma_weight, dnxhd_1237_chroma_weight, |
||
394 | dnxhd_1237_dc_codes, dnxhd_1237_dc_bits, |
||
395 | dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level, |
||
396 | dnxhd_1237_ac_run_flag, dnxhd_1237_ac_index_flag, |
||
397 | 0c39c38b | Baptiste Coudurier | dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run, |
398 | { 36, 45, 75, 90 } }, |
||
399 | d3dc629c | Baptiste Coudurier | }; |
400 | |||
401 | int ff_dnxhd_get_cid_table(int cid) |
||
402 | { |
||
403 | int i;
|
||
404 | 37d3e066 | Aurelien Jacobs | for (i = 0; i < FF_ARRAY_ELEMS(ff_dnxhd_cid_table); i++) |
405 | d3dc629c | Baptiste Coudurier | if (ff_dnxhd_cid_table[i].cid == cid)
|
406 | return i;
|
||
407 | return -1; |
||
408 | } |
||
409 | 0c39c38b | Baptiste Coudurier | |
410 | int ff_dnxhd_find_cid(AVCodecContext *avctx)
|
||
411 | { |
||
412 | int i, j;
|
||
413 | int mbs = avctx->bit_rate/1000000; |
||
414 | 892d2268 | Baptiste Coudurier | if (!mbs)
|
415 | return 0; |
||
416 | 37d3e066 | Aurelien Jacobs | for (i = 0; i < FF_ARRAY_ELEMS(ff_dnxhd_cid_table); i++) { |
417 | 0c39c38b | Baptiste Coudurier | const CIDEntry *cid = &ff_dnxhd_cid_table[i];
|
418 | if (cid->width == avctx->width && cid->height == avctx->height &&
|
||
419 | cid->interlaced == !!(avctx->flags & CODEC_FLAG_INTERLACED_DCT) && |
||
420 | cid->bit_depth == 8) { // until 10 bit is supported |
||
421 | for (j = 0; j < sizeof(cid->bit_rates); j++) { |
||
422 | if (cid->bit_rates[j] == mbs)
|
||
423 | return cid->cid;
|
||
424 | } |
||
425 | } |
||
426 | } |
||
427 | return 0; |
||
428 | } |