1 /******************************************************************************
2 *
3 * Copyright (C) 2012 Ittiam Systems Pvt Ltd, Bangalore
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at:
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 ******************************************************************************/
18 /**
19 *******************************************************************************
20 * @file
21 *  ihevc_inter_pred.h
22 *
23 * @brief
24 *  Declarations for the fucntions defined in  ihevc_inter_pred_ft.c
25 *
26 * @author
27 *  Srinivas T
28 *
29 * @par List of Functions:
30 *
31 * @remarks
32 *  None
33 *
34 *******************************************************************************
35 */
36 #ifndef _IHEVC_INTER_PRED_H_
37 #define _IHEVC_INTER_PRED_H_
38 
39 #define NTAPS_LUMA 8
40 #define NTAPS_CHROMA 4
41 #define SHIFT_14_MINUS_BIT_DEPTH (14 - BIT_DEPTH)
42 #define OFFSET_14_MINUS_BIT_DEPTH (1 << (SHIFT_14_MINUS_BIT_DEPTH - 1))
43 #define OFFSET14 (1 << (14 - 1))
44 #define FILTER_PREC 6
45 
46 #define REF_WIDTH 1280
47 #define REF_HEIGHT 720
48 
49 /*****************************************************************************/
50 /* Function Declarations                                                     */
51 /*****************************************************************************/
52 
53 typedef void ihevc_inter_pred_ft(
54                 UWORD8 *pu1_src,
55                 UWORD8 *pu1_dst,
56                 WORD32 src_strd,
57                 WORD32 dst_strd,
58                 WORD8 *pi1_coeff,
59                 WORD32 ht,
60                 WORD32 wd);
61 
62 typedef void ihevc_inter_pred_w16out_ft(
63                 UWORD8 *pu1_src,
64                 WORD16 *pi2_dst,
65                 WORD32 src_strd,
66                 WORD32 dst_strd,
67                 WORD8 *pi1_coeff,
68                 WORD32 ht,
69                 WORD32 wd);
70 
71 typedef void ihevc_inter_pred_w16inp_ft(
72                 WORD16 *pi2_src,
73                 UWORD8 *pu1_dst,
74                 WORD32 src_strd,
75                 WORD32 dst_strd,
76                 WORD8 *pi1_coeff,
77                 WORD32 ht,
78                 WORD32 wd);
79 
80 typedef void ihevc_inter_pred_w16inp_w16out_ft(
81                 WORD16 *pi2_src,
82                 WORD16 *pi2_dst,
83                 WORD32 src_strd,
84                 WORD32 dst_strd,
85                 WORD8 *pi1_coeff,
86                 WORD32 ht,
87                 WORD32 wd);
88 
89 
90 typedef void ihevc_hbd_inter_pred_ft(UWORD16 *pu2_src,
91                                      UWORD16 *pu2_dst,
92                                      WORD32 src_strd,
93                                      WORD32 dst_strd,
94                                      WORD8 *pi1_coeff,
95                                      WORD32 ht,
96                                      WORD32 wd,
97                                      UWORD8 bit_depth);
98 
99 
100 typedef void ihevc_hbd_inter_pred_w16out_ft(
101                 UWORD16 *pu2_src,
102                 WORD16 *pi2_dst,
103                 WORD32 src_strd,
104                 WORD32 dst_strd,
105                 WORD8 *pi1_coeff,
106                 WORD32 ht,
107                 WORD32 wd,
108                 UWORD8 bit_depth);
109 
110 
111 typedef void ihevc_hbd_inter_pred_w16inp_ft(
112                 WORD16 *pi2_src,
113                 UWORD16 *pu2_dst,
114                 WORD32 src_strd,
115                 WORD32 dst_strd,
116                 WORD8 *pi1_coeff,
117                 WORD32 ht,
118                 WORD32 wd,
119                 UWORD8 bit_depth);
120 
121 
122 typedef void ihevc_hbd_inter_pred_w16inp_w16out_ft(
123                 WORD16 *pi2_src,
124                 WORD16 *pi2_dst,
125                 WORD32 src_strd,
126                 WORD32 dst_strd,
127                 WORD8 *pi1_coeff,
128                 WORD32 ht,
129                 WORD32 wd,
130                 UWORD8 bit_depth);
131 
132 typedef void ihevc_hbd_weighted_pred_uni_ft(
133                 WORD16 *pi2_src,
134                 UWORD16 *pu2_dst,
135                 WORD32 src_strd,
136                 WORD32 dst_strd,
137                 WORD32 wgt0,
138                 WORD32 off0,
139                 WORD32 shift,
140                 WORD32 lvl_shift,
141                 WORD32 ht,
142                 WORD32 wd,
143                 UWORD8 bit_depth);
144 
145 
146 typedef void ihevc_hbd_weighted_pred_bi_ft(
147                 WORD16 *pi2_src1,
148                 WORD16 *pi2_src2,
149                 UWORD16 *pu2_dst,
150                 WORD32 src_strd1,
151                 WORD32 src_strd2,
152                 WORD32 dst_strd,
153                 WORD32 wgt0,
154                 WORD32 off0,
155                 WORD32 wgt1,
156                 WORD32 off1,
157                 WORD32 shift,
158                 WORD32 lvl_shift1,
159                 WORD32 lvl_shift2,
160                 WORD32 ht,
161                 WORD32 wd,
162                 UWORD8 bit_depth);
163 
164 
165 typedef void ihevc_hbd_weighted_pred_bi_default_ft(
166                 WORD16 *pi2_src1,
167                 WORD16 *pi2_src2,
168                 UWORD16 *pu2_dst,
169                 WORD32 src_strd1,
170                 WORD32 src_strd2,
171                 WORD32 dst_strd,
172                 WORD32 lvl_shift1,
173                 WORD32 lvl_shift2,
174                 WORD32 ht,
175                 WORD32 wd,
176                 UWORD8 bit_depth);
177 typedef void ihevc_hbd_weighted_pred_chroma_uni_ft(WORD16 *pi2_src,
178                                                    UWORD16 *pu2_dst,
179                                                    WORD32 src_strd,
180                                                    WORD32 dst_strd,
181                                                    WORD32 wgt0_cb,
182                                                    WORD32 wgt0_cr,
183                                                    WORD32 off0_cb,
184                                                    WORD32 off0_cr,
185                                                    WORD32 shift,
186                                                    WORD32 lvl_shift,
187                                                    WORD32 ht,
188                                                    WORD32 wd,
189                                                    UWORD8 bit_depth);
190 
191 typedef void ihevc_hbd_weighted_pred_chroma_bi_ft(WORD16 *pi2_src1,
192                                                   WORD16 *pi2_src2,
193                                                   UWORD16 *pu2_dst,
194                                                   WORD32 src_strd1,
195                                                   WORD32 src_strd2,
196                                                   WORD32 dst_strd,
197                                                   WORD32 wgt0_cb,
198                                                   WORD32 wgt0_cr,
199                                                   WORD32 off0_cb,
200                                                   WORD32 off0_cr,
201                                                   WORD32 wgt1_cb,
202                                                   WORD32 wgt1_cr,
203                                                   WORD32 off1_cb,
204                                                   WORD32 off1_cr,
205                                                   WORD32 shift,
206                                                   WORD32 lvl_shift1,
207                                                   WORD32 lvl_shift2,
208                                                   WORD32 ht,
209                                                   WORD32 wd,
210                                                   UWORD8 bit_depth);
211 
212 typedef void ihevc_hbd_weighted_pred_chroma_bi_default_ft(WORD16 *pi2_src1,
213                                                           WORD16 *pi2_src2,
214                                                           UWORD16 *pu2_dst,
215                                                           WORD32 src_strd1,
216                                                           WORD32 src_strd2,
217                                                           WORD32 dst_strd,
218                                                           WORD32 lvl_shift1,
219                                                           WORD32 lvl_shift2,
220                                                           WORD32 ht,
221                                                           WORD32 wd,
222                                                           UWORD8 bit_depth);
223 /* C function declarations */
224 ihevc_inter_pred_ft ihevc_inter_pred_luma_copy;
225 ihevc_inter_pred_ft ihevc_inter_pred_luma_horz;
226 ihevc_inter_pred_ft ihevc_inter_pred_luma_vert;
227 ihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_copy_w16out;
228 ihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_horz_w16out;
229 ihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_vert_w16out;
230 ihevc_inter_pred_w16inp_ft ihevc_inter_pred_luma_vert_w16inp;
231 ihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_luma_vert_w16inp_w16out;
232 ihevc_inter_pred_ft ihevc_inter_pred_chroma_copy;
233 ihevc_inter_pred_ft ihevc_inter_pred_chroma_horz;
234 ihevc_inter_pred_ft ihevc_inter_pred_chroma_vert;
235 ihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_copy_w16out;
236 ihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_horz_w16out;
237 ihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_vert_w16out;
238 ihevc_inter_pred_w16inp_ft ihevc_inter_pred_chroma_vert_w16inp;
239 ihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_chroma_vert_w16inp_w16out;
240 
241 ihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_luma_copy;
242 ihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_luma_horz;
243 ihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_luma_vert;
244 ihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_luma_copy_w16out;
245 ihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_luma_horz_w16out;
246 ihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_luma_vert_w16out;
247 ihevc_hbd_inter_pred_w16inp_ft ihevc_hbd_inter_pred_luma_vert_w16inp;
248 ihevc_hbd_inter_pred_w16inp_w16out_ft ihevc_hbd_inter_pred_luma_vert_w16inp_w16out;
249 ihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_chroma_copy;
250 ihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_chroma_horz;
251 ihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_chroma_vert;
252 ihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_chroma_copy_w16out;
253 ihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_chroma_horz_w16out;
254 ihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_chroma_vert_w16out;
255 ihevc_hbd_inter_pred_w16inp_ft ihevc_hbd_inter_pred_chroma_vert_w16inp;
256 ihevc_hbd_inter_pred_w16inp_w16out_ft ihevc_hbd_inter_pred_chroma_vert_w16inp_w16out;
257 ihevc_hbd_weighted_pred_uni_ft ihevc_hbd_weighted_pred_uni;
258 ihevc_hbd_weighted_pred_bi_ft ihevc_hbd_weighted_pred_bi;
259 ihevc_hbd_weighted_pred_bi_default_ft ihevc_hbd_weighted_pred_bi_default;
260 ihevc_hbd_weighted_pred_chroma_uni_ft ihevc_hbd_weighted_pred_chroma_uni;
261 ihevc_hbd_weighted_pred_chroma_bi_ft ihevc_hbd_weighted_pred_chroma_bi;
262 ihevc_hbd_weighted_pred_chroma_bi_default_ft ihevc_hbd_weighted_pred_chroma_bi_default;
263 
264 /* A9 Q function declarations */
265 ihevc_inter_pred_ft ihevc_inter_pred_luma_copy_a9q;
266 ihevc_inter_pred_ft ihevc_inter_pred_luma_horz_a9q;
267 ihevc_inter_pred_ft ihevc_inter_pred_luma_vert_a9q;
268 ihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_copy_w16out_a9q;
269 ihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_horz_w16out_a9q;
270 ihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_vert_w16out_a9q;
271 ihevc_inter_pred_w16inp_ft ihevc_inter_pred_luma_vert_w16inp_a9q;
272 ihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_luma_vert_w16inp_w16out_a9q;
273 ihevc_inter_pred_ft ihevc_inter_pred_chroma_copy_a9q;
274 ihevc_inter_pred_ft ihevc_inter_pred_chroma_horz_a9q;
275 ihevc_inter_pred_ft ihevc_inter_pred_chroma_vert_a9q;
276 ihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_copy_w16out_a9q;
277 ihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_horz_w16out_a9q;
278 ihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_vert_w16out_a9q;
279 ihevc_inter_pred_w16inp_ft ihevc_inter_pred_chroma_vert_w16inp_a9q;
280 ihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_chroma_vert_w16inp_w16out_a9q;
281 
282 /* A9 A function declarations */
283 ihevc_inter_pred_ft ihevc_inter_pred_luma_copy_a9a;
284 ihevc_inter_pred_ft ihevc_inter_pred_luma_horz_a9a;
285 ihevc_inter_pred_ft ihevc_inter_pred_luma_vert_a9a;
286 ihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_copy_w16out_a9a;
287 ihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_horz_w16out_a9a;
288 ihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_vert_w16out_a9a;
289 ihevc_inter_pred_w16inp_ft ihevc_inter_pred_luma_vert_w16inp_a9a;
290 ihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_luma_vert_w16inp_w16out_a9a;
291 ihevc_inter_pred_ft ihevc_inter_pred_chroma_copy_a9a;
292 ihevc_inter_pred_ft ihevc_inter_pred_chroma_horz_a9a;
293 ihevc_inter_pred_ft ihevc_inter_pred_chroma_vert_a9a;
294 ihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_copy_w16out_a9a;
295 ihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_horz_w16out_a9a;
296 ihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_vert_w16out_a9a;
297 ihevc_inter_pred_w16inp_ft ihevc_inter_pred_chroma_vert_w16inp_a9a;
298 ihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_chroma_vert_w16inp_w16out_a9a;
299 
300 /* NEONINTR function declarations */
301 ihevc_inter_pred_ft ihevc_inter_pred_luma_copy_neonintr;
302 ihevc_inter_pred_ft ihevc_inter_pred_luma_horz_neonintr;
303 ihevc_inter_pred_ft ihevc_inter_pred_luma_vert_neonintr;
304 ihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_copy_w16out_neonintr;
305 ihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_horz_w16out_neonintr;
306 ihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_vert_w16out_neonintr;
307 ihevc_inter_pred_w16inp_ft ihevc_inter_pred_luma_vert_w16inp_neonintr;
308 ihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_luma_vert_w16inp_w16out_neonintr;
309 ihevc_inter_pred_ft ihevc_inter_pred_chroma_copy_neonintr;
310 ihevc_inter_pred_ft ihevc_inter_pred_chroma_horz_neonintr;
311 ihevc_inter_pred_ft ihevc_inter_pred_chroma_vert_neonintr;
312 ihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_copy_w16out_neonintr;
313 ihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_horz_w16out_neonintr;
314 ihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_vert_w16out_neonintr;
315 ihevc_inter_pred_w16inp_ft ihevc_inter_pred_chroma_vert_w16inp_neonintr;
316 ihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_chroma_vert_w16inp_w16out_neonintr;
317 
318 /* SSSE31 function declarations */
319 ihevc_inter_pred_ft ihevc_inter_pred_luma_copy_ssse3;
320 ihevc_inter_pred_ft ihevc_inter_pred_luma_horz_ssse3;
321 ihevc_inter_pred_ft ihevc_inter_pred_luma_vert_ssse3;
322 ihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_copy_w16out_ssse3;
323 ihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_horz_w16out_ssse3;
324 ihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_vert_w16out_ssse3;
325 ihevc_inter_pred_w16inp_ft ihevc_inter_pred_luma_vert_w16inp_ssse3;
326 ihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_luma_vert_w16inp_w16out_ssse3;
327 ihevc_inter_pred_ft ihevc_inter_pred_chroma_copy_ssse3;
328 ihevc_inter_pred_ft ihevc_inter_pred_chroma_horz_ssse3;
329 ihevc_inter_pred_ft ihevc_inter_pred_chroma_vert_ssse3;
330 ihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_copy_w16out_ssse3;
331 ihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_horz_w16out_ssse3;
332 ihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_vert_w16out_ssse3;
333 ihevc_inter_pred_w16inp_ft ihevc_inter_pred_chroma_vert_w16inp_ssse3;
334 ihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_chroma_vert_w16inp_w16out_ssse3;
335 
336 /* SSE42 function declarations */
337 ihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_copy_w16out_sse42;
338 ihevc_inter_pred_ft ihevc_inter_pred_chroma_copy_sse42;
339 ihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_copy_w16out_sse42;
340 
341 ihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_luma_copy_sse42;
342 ihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_luma_horz_sse42;
343 ihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_luma_vert_sse42;
344 ihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_luma_copy_w16out_sse42;
345 ihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_luma_horz_w16out_sse42;
346 ihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_luma_vert_w16out_sse42;
347 ihevc_hbd_inter_pred_w16inp_ft ihevc_hbd_inter_pred_luma_vert_w16inp_sse42;
348 ihevc_hbd_inter_pred_w16inp_w16out_ft ihevc_hbd_inter_pred_luma_vert_w16inp_w16out_sse42;
349 
350 ihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_chroma_copy_sse42;
351 ihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_chroma_horz_sse42;
352 ihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_chroma_vert_sse42;
353 ihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_chroma_copy_w16out_sse42;
354 ihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_chroma_horz_w16out_sse42;
355 ihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_chroma_vert_w16out_sse42;
356 ihevc_hbd_inter_pred_w16inp_ft ihevc_hbd_inter_pred_chroma_vert_w16inp_sse42;
357 ihevc_hbd_inter_pred_w16inp_w16out_ft ihevc_hbd_inter_pred_chroma_vert_w16inp_w16out_sse42;
358 
359 ihevc_hbd_weighted_pred_uni_ft ihevc_hbd_weighted_pred_uni_sse42;
360 ihevc_hbd_weighted_pred_bi_ft ihevc_hbd_weighted_pred_bi_sse42;
361 ihevc_hbd_weighted_pred_bi_default_ft ihevc_hbd_weighted_pred_bi_default_sse42;
362 ihevc_hbd_weighted_pred_chroma_uni_ft ihevc_hbd_weighted_pred_chroma_uni_sse42;
363 ihevc_hbd_weighted_pred_chroma_bi_ft ihevc_hbd_weighted_pred_chroma_bi_sse42;
364 ihevc_hbd_weighted_pred_chroma_bi_default_ft ihevc_hbd_weighted_pred_chroma_bi_default_sse42;
365 
366 #ifndef DISABLE_AVX2
367 /* AVX2 function declarations */
368 ihevc_inter_pred_ft ihevc_inter_pred_luma_copy_avx2;
369 ihevc_inter_pred_ft ihevc_inter_pred_luma_horz_avx2;
370 ihevc_inter_pred_ft ihevc_inter_pred_luma_vert_avx2;
371 ihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_copy_w16out_avx2;
372 ihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_horz_w16out_avx2;
373 ihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_vert_w16out_avx2;
374 ihevc_inter_pred_w16inp_ft ihevc_inter_pred_luma_vert_w16inp_avx2;
375 ihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_luma_vert_w16inp_w16out_avx2;
376 ihevc_inter_pred_ft ihevc_inter_pred_chroma_copy_avx2;
377 ihevc_inter_pred_ft ihevc_inter_pred_chroma_horz_avx2;
378 ihevc_inter_pred_ft ihevc_inter_pred_chroma_vert_avx2;
379 ihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_copy_w16out_avx2;
380 ihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_horz_w16out_avx2;
381 ihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_vert_w16out_avx2;
382 ihevc_inter_pred_w16inp_ft ihevc_inter_pred_chroma_vert_w16inp_avx2;
383 ihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_chroma_vert_w16inp_w16out_avx2;
384 
385 ihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_luma_copy_avx2;
386 ihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_luma_horz_avx2;
387 ihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_luma_vert_avx2;
388 ihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_luma_copy_w16out_avx2;
389 ihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_luma_horz_w16out_avx2;
390 ihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_luma_vert_w16out_avx2;
391 ihevc_hbd_inter_pred_w16inp_ft ihevc_hbd_inter_pred_luma_vert_w16inp_avx2;
392 ihevc_hbd_inter_pred_w16inp_w16out_ft ihevc_hbd_inter_pred_luma_vert_w16inp_w16out_avx2;
393 ihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_chroma_copy_avx2;
394 ihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_chroma_horz_avx2;
395 ihevc_hbd_inter_pred_ft ihevc_hbd_inter_pred_chroma_vert_avx2;
396 ihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_chroma_copy_w16out_avx2;
397 ihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_chroma_horz_w16out_avx2;
398 ihevc_hbd_inter_pred_w16out_ft ihevc_hbd_inter_pred_chroma_vert_w16out_avx2;
399 ihevc_hbd_inter_pred_w16inp_ft ihevc_hbd_inter_pred_chroma_vert_w16inp_avx2;
400 ihevc_hbd_inter_pred_w16inp_w16out_ft ihevc_hbd_inter_pred_chroma_vert_w16inp_w16out_avx2;
401 #endif
402 
403 /* armv8 function declarations */
404 ihevc_inter_pred_ft ihevc_inter_pred_luma_copy_av8;
405 ihevc_inter_pred_ft ihevc_inter_pred_luma_horz_av8;
406 ihevc_inter_pred_ft ihevc_inter_pred_luma_vert_av8;
407 ihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_copy_w16out_av8;
408 ihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_horz_w16out_av8;
409 ihevc_inter_pred_w16out_ft ihevc_inter_pred_luma_vert_w16out_av8;
410 ihevc_inter_pred_w16inp_ft ihevc_inter_pred_luma_vert_w16inp_av8;
411 ihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_luma_vert_w16inp_w16out_av8;
412 ihevc_inter_pred_ft ihevc_inter_pred_chroma_copy_av8;
413 ihevc_inter_pred_ft ihevc_inter_pred_chroma_horz_av8;
414 ihevc_inter_pred_ft ihevc_inter_pred_chroma_vert_av8;
415 ihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_copy_w16out_av8;
416 ihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_horz_w16out_av8;
417 ihevc_inter_pred_w16out_ft ihevc_inter_pred_chroma_vert_w16out_av8;
418 ihevc_inter_pred_w16inp_ft ihevc_inter_pred_chroma_vert_w16inp_av8;
419 ihevc_inter_pred_w16inp_w16out_ft ihevc_inter_pred_chroma_vert_w16inp_w16out_av8;
420 #endif /*_IHEVC_INTER_PRED_H_*/
421