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