0
|
1 /*
|
|
2 * HEVC video decoder
|
|
3 *
|
|
4 * Copyright (C) 2012 - 2013 Guillaume Martres
|
|
5 * Copyright (C) 2013 - 2014 Pierre-Edouard Lepere
|
|
6 *
|
|
7 *
|
|
8 * This file is part of FFmpeg.
|
|
9 *
|
|
10 * FFmpeg is free software; you can redistribute it and/or
|
|
11 * modify it under the terms of the GNU Lesser General Public
|
|
12 * License as published by the Free Software Foundation; either
|
|
13 * version 2.1 of the License, or (at your option) any later version.
|
|
14 *
|
|
15 * FFmpeg is distributed in the hope that it will be useful,
|
|
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
18 * Lesser General Public License for more details.
|
|
19 *
|
|
20 * You should have received a copy of the GNU Lesser General Public
|
|
21 * License along with FFmpeg; if not, write to the Free Software
|
|
22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
23 */
|
|
24
|
|
25 #include "hevcdsp.h"
|
|
26
|
|
27 #ifdef CONFIG_SMALL
|
|
28 static int8_t transform[32][32];
|
|
29
|
|
30 static const int8_t dct_coefs[32] = {
|
|
31 64, 90, 90, 90, 89, 88, 87, 85, 83, 82, 80, 78, 75, 73, 70, 67, 64, 61, 57, 54, 50, 46, 43, 38, 36, 31, 25, 22, 18, 13, 9, 4
|
|
32 };
|
|
33
|
|
34 void hevc_transform_init(void)
|
|
35 {
|
|
36 int i, j, k, s;
|
|
37
|
|
38 if (transform[0][0])
|
|
39 return;
|
|
40 for(i = 0; i < 32; i++) {
|
|
41 for(j = 0; j < 32; j++) {
|
|
42 k = (unsigned)((2 * j + 1) * i) % 128;
|
|
43 s = 1;
|
|
44 if (k >= 64) {
|
|
45 k -= 64;
|
|
46 s = -1;
|
|
47 }
|
|
48 if (k >= 32) {
|
|
49 k = 64 - k;
|
|
50 s = -s;
|
|
51 }
|
|
52 transform[i][j] = dct_coefs[k] * s;
|
|
53 }
|
|
54 }
|
|
55 }
|
|
56
|
|
57 #else
|
|
58 static const int8_t transform[32][32] = {
|
|
59 { 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
|
|
60 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64 },
|
|
61 { 90, 90, 88, 85, 82, 78, 73, 67, 61, 54, 46, 38, 31, 22, 13, 4,
|
|
62 -4, -13, -22, -31, -38, -46, -54, -61, -67, -73, -78, -82, -85, -88, -90, -90 },
|
|
63 { 90, 87, 80, 70, 57, 43, 25, 9, -9, -25, -43, -57, -70, -80, -87, -90,
|
|
64 -90, -87, -80, -70, -57, -43, -25, -9, 9, 25, 43, 57, 70, 80, 87, 90 },
|
|
65 { 90, 82, 67, 46, 22, -4, -31, -54, -73, -85, -90, -88, -78, -61, -38, -13,
|
|
66 13, 38, 61, 78, 88, 90, 85, 73, 54, 31, 4, -22, -46, -67, -82, -90 },
|
|
67 { 89, 75, 50, 18, -18, -50, -75, -89, -89, -75, -50, -18, 18, 50, 75, 89,
|
|
68 89, 75, 50, 18, -18, -50, -75, -89, -89, -75, -50, -18, 18, 50, 75, 89 },
|
|
69 { 88, 67, 31, -13, -54, -82, -90, -78, -46, -4, 38, 73, 90, 85, 61, 22,
|
|
70 -22, -61, -85, -90, -73, -38, 4, 46, 78, 90, 82, 54, 13, -31, -67, -88 },
|
|
71 { 87, 57, 9, -43, -80, -90, -70, -25, 25, 70, 90, 80, 43, -9, -57, -87,
|
|
72 -87, -57, -9, 43, 80, 90, 70, 25, -25, -70, -90, -80, -43, 9, 57, 87 },
|
|
73 { 85, 46, -13, -67, -90, -73, -22, 38, 82, 88, 54, -4, -61, -90, -78, -31,
|
|
74 31, 78, 90, 61, 4, -54, -88, -82, -38, 22, 73, 90, 67, 13, -46, -85 },
|
|
75 { 83, 36, -36, -83, -83, -36, 36, 83, 83, 36, -36, -83, -83, -36, 36, 83,
|
|
76 83, 36, -36, -83, -83, -36, 36, 83, 83, 36, -36, -83, -83, -36, 36, 83 },
|
|
77 { 82, 22, -54, -90, -61, 13, 78, 85, 31, -46, -90, -67, 4, 73, 88, 38,
|
|
78 -38, -88, -73, -4, 67, 90, 46, -31, -85, -78, -13, 61, 90, 54, -22, -82 },
|
|
79 { 80, 9, -70, -87, -25, 57, 90, 43, -43, -90, -57, 25, 87, 70, -9, -80,
|
|
80 -80, -9, 70, 87, 25, -57, -90, -43, 43, 90, 57, -25, -87, -70, 9, 80 },
|
|
81 { 78, -4, -82, -73, 13, 85, 67, -22, -88, -61, 31, 90, 54, -38, -90, -46,
|
|
82 46, 90, 38, -54, -90, -31, 61, 88, 22, -67, -85, -13, 73, 82, 4, -78 },
|
|
83 { 75, -18, -89, -50, 50, 89, 18, -75, -75, 18, 89, 50, -50, -89, -18, 75,
|
|
84 75, -18, -89, -50, 50, 89, 18, -75, -75, 18, 89, 50, -50, -89, -18, 75 },
|
|
85 { 73, -31, -90, -22, 78, 67, -38, -90, -13, 82, 61, -46, -88, -4, 85, 54,
|
|
86 -54, -85, 4, 88, 46, -61, -82, 13, 90, 38, -67, -78, 22, 90, 31, -73 },
|
|
87 { 70, -43, -87, 9, 90, 25, -80, -57, 57, 80, -25, -90, -9, 87, 43, -70,
|
|
88 -70, 43, 87, -9, -90, -25, 80, 57, -57, -80, 25, 90, 9, -87, -43, 70 },
|
|
89 { 67, -54, -78, 38, 85, -22, -90, 4, 90, 13, -88, -31, 82, 46, -73, -61,
|
|
90 61, 73, -46, -82, 31, 88, -13, -90, -4, 90, 22, -85, -38, 78, 54, -67 },
|
|
91 { 64, -64, -64, 64, 64, -64, -64, 64, 64, -64, -64, 64, 64, -64, -64, 64,
|
|
92 64, -64, -64, 64, 64, -64, -64, 64, 64, -64, -64, 64, 64, -64, -64, 64 },
|
|
93 { 61, -73, -46, 82, 31, -88, -13, 90, -4, -90, 22, 85, -38, -78, 54, 67,
|
|
94 -67, -54, 78, 38, -85, -22, 90, 4, -90, 13, 88, -31, -82, 46, 73, -61 },
|
|
95 { 57, -80, -25, 90, -9, -87, 43, 70, -70, -43, 87, 9, -90, 25, 80, -57,
|
|
96 -57, 80, 25, -90, 9, 87, -43, -70, 70, 43, -87, -9, 90, -25, -80, 57 },
|
|
97 { 54, -85, -4, 88, -46, -61, 82, 13, -90, 38, 67, -78, -22, 90, -31, -73,
|
|
98 73, 31, -90, 22, 78, -67, -38, 90, -13, -82, 61, 46, -88, 4, 85, -54 },
|
|
99 { 50, -89, 18, 75, -75, -18, 89, -50, -50, 89, -18, -75, 75, 18, -89, 50,
|
|
100 50, -89, 18, 75, -75, -18, 89, -50, -50, 89, -18, -75, 75, 18, -89, 50 },
|
|
101 { 46, -90, 38, 54, -90, 31, 61, -88, 22, 67, -85, 13, 73, -82, 4, 78,
|
|
102 -78, -4, 82, -73, -13, 85, -67, -22, 88, -61, -31, 90, -54, -38, 90, -46 },
|
|
103 { 43, -90, 57, 25, -87, 70, 9, -80, 80, -9, -70, 87, -25, -57, 90, -43,
|
|
104 -43, 90, -57, -25, 87, -70, -9, 80, -80, 9, 70, -87, 25, 57, -90, 43 },
|
|
105 { 38, -88, 73, -4, -67, 90, -46, -31, 85, -78, 13, 61, -90, 54, 22, -82,
|
|
106 82, -22, -54, 90, -61, -13, 78, -85, 31, 46, -90, 67, 4, -73, 88, -38 },
|
|
107 { 36, -83, 83, -36, -36, 83, -83, 36, 36, -83, 83, -36, -36, 83, -83, 36,
|
|
108 36, -83, 83, -36, -36, 83, -83, 36, 36, -83, 83, -36, -36, 83, -83, 36 },
|
|
109 { 31, -78, 90, -61, 4, 54, -88, 82, -38, -22, 73, -90, 67, -13, -46, 85,
|
|
110 -85, 46, 13, -67, 90, -73, 22, 38, -82, 88, -54, -4, 61, -90, 78, -31 },
|
|
111 { 25, -70, 90, -80, 43, 9, -57, 87, -87, 57, -9, -43, 80, -90, 70, -25,
|
|
112 -25, 70, -90, 80, -43, -9, 57, -87, 87, -57, 9, 43, -80, 90, -70, 25 },
|
|
113 { 22, -61, 85, -90, 73, -38, -4, 46, -78, 90, -82, 54, -13, -31, 67, -88,
|
|
114 88, -67, 31, 13, -54, 82, -90, 78, -46, 4, 38, -73, 90, -85, 61, -22 },
|
|
115 { 18, -50, 75, -89, 89, -75, 50, -18, -18, 50, -75, 89, -89, 75, -50, 18,
|
|
116 18, -50, 75, -89, 89, -75, 50, -18, -18, 50, -75, 89, -89, 75, -50, 18 },
|
|
117 { 13, -38, 61, -78, 88, -90, 85, -73, 54, -31, 4, 22, -46, 67, -82, 90,
|
|
118 -90, 82, -67, 46, -22, -4, 31, -54, 73, -85, 90, -88, 78, -61, 38, -13 },
|
|
119 { 9, -25, 43, -57, 70, -80, 87, -90, 90, -87, 80, -70, 57, -43, 25, -9,
|
|
120 -9, 25, -43, 57, -70, 80, -87, 90, -90, 87, -80, 70, -57, 43, -25, 9 },
|
|
121 { 4, -13, 22, -31, 38, -46, 54, -61, 67, -73, 78, -82, 85, -88, 90, -90,
|
|
122 90, -90, 88, -85, 82, -78, 73, -67, 61, -54, 46, -38, 31, -22, 13, -4 },
|
|
123 };
|
|
124 #endif
|
|
125
|
|
126 DECLARE_ALIGNED(16, const int8_t, ff_hevc_epel_filters[7][4]) = {
|
|
127 { -2, 58, 10, -2},
|
|
128 { -4, 54, 16, -2},
|
|
129 { -6, 46, 28, -4},
|
|
130 { -4, 36, 36, -4},
|
|
131 { -4, 28, 46, -6},
|
|
132 { -2, 16, 54, -4},
|
|
133 { -2, 10, 58, -2},
|
|
134 };
|
|
135
|
|
136 DECLARE_ALIGNED(16, const int8_t, ff_hevc_qpel_filters[3][16]) = {
|
|
137 { -1, 4,-10, 58, 17, -5, 1, 0, -1, 4,-10, 58, 17, -5, 1, 0},
|
|
138 { -1, 4,-11, 40, 40,-11, 4, -1, -1, 4,-11, 40, 40,-11, 4, -1},
|
|
139 { 0, 1, -5, 17, 58,-10, 4, -1, 0, 1, -5, 17, 58,-10, 4, -1}
|
|
140 };
|
|
141
|
|
142 #if defined(USE_VAR_BIT_DEPTH)
|
|
143
|
|
144 #define BIT_DEPTH bit_depth
|
|
145 #include "hevcdsp_template.c"
|
|
146 #undef BIT_DEPTH
|
|
147
|
|
148 #else
|
|
149
|
|
150 #define BIT_DEPTH 8
|
|
151 #include "hevcdsp_template.c"
|
|
152 #undef BIT_DEPTH
|
|
153
|
|
154 #ifdef USE_FULL
|
|
155 #define BIT_DEPTH 9
|
|
156 #include "hevcdsp_template.c"
|
|
157 #undef BIT_DEPTH
|
|
158
|
|
159 #define BIT_DEPTH 10
|
|
160 #include "hevcdsp_template.c"
|
|
161 #undef BIT_DEPTH
|
|
162
|
|
163 #define BIT_DEPTH 12
|
|
164 #include "hevcdsp_template.c"
|
|
165 #undef BIT_DEPTH
|
|
166 #endif /* USE_FULL */
|
|
167
|
|
168 #endif /* !USE_VAR_BIT_DEPTH */
|
|
169
|
|
170 void ff_hevc_dsp_init(HEVCDSPContext *hevcdsp, int bit_depth)
|
|
171 {
|
|
172 #undef FUNC
|
|
173 #define FUNC(a, depth) a ## _ ## depth
|
|
174
|
|
175 #undef PEL_FUNC
|
|
176 #define PEL_FUNC(dst1, idx1, idx2, a, depth) \
|
|
177 for(i = 0 ; i < 10 ; i++) \
|
|
178 { \
|
|
179 hevcdsp->dst1[i][idx1][idx2] = a ## _ ## depth; \
|
|
180 }
|
|
181
|
|
182 #undef EPEL_FUNCS
|
|
183 #define EPEL_FUNCS(depth) \
|
|
184 PEL_FUNC(put_hevc_epel, 0, 0, put_hevc_pel_pixels, depth); \
|
|
185 PEL_FUNC(put_hevc_epel, 0, 1, put_hevc_epel_h, depth); \
|
|
186 PEL_FUNC(put_hevc_epel, 1, 0, put_hevc_epel_v, depth); \
|
|
187 PEL_FUNC(put_hevc_epel, 1, 1, put_hevc_epel_hv, depth)
|
|
188
|
|
189 #undef EPEL_UNI_FUNCS
|
|
190 #define EPEL_UNI_FUNCS(depth) \
|
|
191 PEL_FUNC(put_hevc_epel_uni, 0, 0, put_hevc_pel_uni_pixels, depth); \
|
|
192 PEL_FUNC(put_hevc_epel_uni, 0, 1, put_hevc_epel_uni_h, depth); \
|
|
193 PEL_FUNC(put_hevc_epel_uni, 1, 0, put_hevc_epel_uni_v, depth); \
|
|
194 PEL_FUNC(put_hevc_epel_uni, 1, 1, put_hevc_epel_uni_hv, depth); \
|
|
195 PEL_FUNC(put_hevc_epel_uni_w, 0, 0, put_hevc_pel_uni_w_pixels, depth); \
|
|
196 PEL_FUNC(put_hevc_epel_uni_w, 0, 1, put_hevc_epel_uni_w_h, depth); \
|
|
197 PEL_FUNC(put_hevc_epel_uni_w, 1, 0, put_hevc_epel_uni_w_v, depth); \
|
|
198 PEL_FUNC(put_hevc_epel_uni_w, 1, 1, put_hevc_epel_uni_w_hv, depth)
|
|
199
|
|
200 #undef EPEL_BI_FUNCS
|
|
201 #define EPEL_BI_FUNCS(depth) \
|
|
202 PEL_FUNC(put_hevc_epel_bi, 0, 0, put_hevc_pel_bi_pixels, depth); \
|
|
203 PEL_FUNC(put_hevc_epel_bi, 0, 1, put_hevc_epel_bi_h, depth); \
|
|
204 PEL_FUNC(put_hevc_epel_bi, 1, 0, put_hevc_epel_bi_v, depth); \
|
|
205 PEL_FUNC(put_hevc_epel_bi, 1, 1, put_hevc_epel_bi_hv, depth); \
|
|
206 PEL_FUNC(put_hevc_epel_bi_w, 0, 0, put_hevc_pel_bi_w_pixels, depth); \
|
|
207 PEL_FUNC(put_hevc_epel_bi_w, 0, 1, put_hevc_epel_bi_w_h, depth); \
|
|
208 PEL_FUNC(put_hevc_epel_bi_w, 1, 0, put_hevc_epel_bi_w_v, depth); \
|
|
209 PEL_FUNC(put_hevc_epel_bi_w, 1, 1, put_hevc_epel_bi_w_hv, depth)
|
|
210
|
|
211 #undef QPEL_FUNCS
|
|
212 #define QPEL_FUNCS(depth) \
|
|
213 PEL_FUNC(put_hevc_qpel, 0, 0, put_hevc_pel_pixels, depth); \
|
|
214 PEL_FUNC(put_hevc_qpel, 0, 1, put_hevc_qpel_h, depth); \
|
|
215 PEL_FUNC(put_hevc_qpel, 1, 0, put_hevc_qpel_v, depth); \
|
|
216 PEL_FUNC(put_hevc_qpel, 1, 1, put_hevc_qpel_hv, depth)
|
|
217
|
|
218 #undef QPEL_UNI_FUNCS
|
|
219 #define QPEL_UNI_FUNCS(depth) \
|
|
220 PEL_FUNC(put_hevc_qpel_uni, 0, 0, put_hevc_pel_uni_pixels, depth); \
|
|
221 PEL_FUNC(put_hevc_qpel_uni, 0, 1, put_hevc_qpel_uni_h, depth); \
|
|
222 PEL_FUNC(put_hevc_qpel_uni, 1, 0, put_hevc_qpel_uni_v, depth); \
|
|
223 PEL_FUNC(put_hevc_qpel_uni, 1, 1, put_hevc_qpel_uni_hv, depth); \
|
|
224 PEL_FUNC(put_hevc_qpel_uni_w, 0, 0, put_hevc_pel_uni_w_pixels, depth); \
|
|
225 PEL_FUNC(put_hevc_qpel_uni_w, 0, 1, put_hevc_qpel_uni_w_h, depth); \
|
|
226 PEL_FUNC(put_hevc_qpel_uni_w, 1, 0, put_hevc_qpel_uni_w_v, depth); \
|
|
227 PEL_FUNC(put_hevc_qpel_uni_w, 1, 1, put_hevc_qpel_uni_w_hv, depth)
|
|
228
|
|
229 #undef QPEL_BI_FUNCS
|
|
230 #define QPEL_BI_FUNCS(depth) \
|
|
231 PEL_FUNC(put_hevc_qpel_bi, 0, 0, put_hevc_pel_bi_pixels, depth); \
|
|
232 PEL_FUNC(put_hevc_qpel_bi, 0, 1, put_hevc_qpel_bi_h, depth); \
|
|
233 PEL_FUNC(put_hevc_qpel_bi, 1, 0, put_hevc_qpel_bi_v, depth); \
|
|
234 PEL_FUNC(put_hevc_qpel_bi, 1, 1, put_hevc_qpel_bi_hv, depth); \
|
|
235 PEL_FUNC(put_hevc_qpel_bi_w, 0, 0, put_hevc_pel_bi_w_pixels, depth); \
|
|
236 PEL_FUNC(put_hevc_qpel_bi_w, 0, 1, put_hevc_qpel_bi_w_h, depth); \
|
|
237 PEL_FUNC(put_hevc_qpel_bi_w, 1, 0, put_hevc_qpel_bi_w_v, depth); \
|
|
238 PEL_FUNC(put_hevc_qpel_bi_w, 1, 1, put_hevc_qpel_bi_w_hv, depth)
|
|
239
|
|
240 #ifdef USE_PRED
|
|
241
|
|
242 #ifdef USE_BIPRED
|
|
243
|
|
244 #define HEVC_DSP_PRED(depth) \
|
|
245 QPEL_FUNCS(depth); \
|
|
246 QPEL_UNI_FUNCS(depth); \
|
|
247 QPEL_BI_FUNCS(depth); \
|
|
248 EPEL_FUNCS(depth); \
|
|
249 EPEL_UNI_FUNCS(depth); \
|
|
250 EPEL_BI_FUNCS(depth);
|
|
251
|
|
252 #else
|
|
253
|
|
254 #define HEVC_DSP_PRED(depth) \
|
|
255 QPEL_UNI_FUNCS(depth); \
|
|
256 EPEL_UNI_FUNCS(depth);
|
|
257
|
|
258 #endif
|
|
259
|
|
260 #else
|
|
261
|
|
262 #define HEVC_DSP_PRED(depth)
|
|
263
|
|
264 #endif
|
|
265
|
|
266 #define HEVC_DSP(depth) \
|
|
267 hevcdsp->put_pcm = FUNC(put_pcm, depth); \
|
|
268 hevcdsp->transform_add[0] = FUNC(transform_add4x4, depth); \
|
|
269 hevcdsp->transform_add[1] = FUNC(transform_add8x8, depth); \
|
|
270 hevcdsp->transform_add[2] = FUNC(transform_add16x16, depth); \
|
|
271 hevcdsp->transform_add[3] = FUNC(transform_add32x32, depth); \
|
|
272 hevcdsp->transform_skip = FUNC(transform_skip, depth); \
|
|
273 hevcdsp->transform_rdpcm = FUNC(transform_rdpcm, depth); \
|
|
274 hevcdsp->idct_4x4_luma = FUNC(transform_4x4_luma, depth); \
|
|
275 hevcdsp->idct[0] = FUNC(idct_4x4, depth); \
|
|
276 hevcdsp->idct[1] = FUNC(idct_8x8, depth); \
|
|
277 hevcdsp->idct[2] = FUNC(idct_16x16, depth); \
|
|
278 hevcdsp->idct[3] = FUNC(idct_32x32, depth); \
|
|
279 \
|
|
280 hevcdsp->idct_dc[0] = FUNC(idct_4x4_dc, depth); \
|
|
281 hevcdsp->idct_dc[1] = FUNC(idct_8x8_dc, depth); \
|
|
282 hevcdsp->idct_dc[2] = FUNC(idct_16x16_dc, depth); \
|
|
283 hevcdsp->idct_dc[3] = FUNC(idct_32x32_dc, depth); \
|
|
284 HEVC_DSP_PRED(depth) \
|
|
285 hevcdsp->sao_band_filter = FUNC(sao_band_filter_0, depth); \
|
|
286 hevcdsp->sao_edge_filter[0] = FUNC(sao_edge_filter_0, depth); \
|
|
287 hevcdsp->sao_edge_filter[1] = FUNC(sao_edge_filter_1, depth); \
|
|
288 \
|
|
289 hevcdsp->hevc_h_loop_filter_luma = FUNC(hevc_h_loop_filter_luma, depth); \
|
|
290 hevcdsp->hevc_v_loop_filter_luma = FUNC(hevc_v_loop_filter_luma, depth); \
|
|
291 hevcdsp->hevc_h_loop_filter_chroma = FUNC(hevc_h_loop_filter_chroma, depth); \
|
|
292 hevcdsp->hevc_v_loop_filter_chroma = FUNC(hevc_v_loop_filter_chroma, depth); \
|
|
293 hevcdsp->hevc_h_loop_filter_luma_c = FUNC(hevc_h_loop_filter_luma, depth); \
|
|
294 hevcdsp->hevc_v_loop_filter_luma_c = FUNC(hevc_v_loop_filter_luma, depth); \
|
|
295 hevcdsp->hevc_h_loop_filter_chroma_c = FUNC(hevc_h_loop_filter_chroma, depth); \
|
|
296 hevcdsp->hevc_v_loop_filter_chroma_c = FUNC(hevc_v_loop_filter_chroma, depth)
|
|
297
|
|
298 #ifdef USE_PRED
|
|
299 int i = 0;
|
|
300 #endif
|
|
301
|
|
302 #if defined(USE_VAR_BIT_DEPTH)
|
|
303 HEVC_DSP(var);
|
|
304 #else
|
|
305 switch (bit_depth) {
|
|
306 #ifdef USE_FULL
|
|
307 case 9:
|
|
308 HEVC_DSP(9);
|
|
309 break;
|
|
310 case 10:
|
|
311 HEVC_DSP(10);
|
|
312 break;
|
|
313 case 12:
|
|
314 HEVC_DSP(12);
|
|
315 break;
|
|
316 #endif /* USE_FULL */
|
|
317 default:
|
|
318 HEVC_DSP(8);
|
|
319 break;
|
|
320 }
|
|
321 #endif /* USE_VAR_BIT_DEPTH */
|
|
322
|
|
323 if (ARCH_X86)
|
|
324 ff_hevc_dsp_init_x86(hevcdsp, bit_depth);
|
|
325 }
|