Home | History | Annotate | Download | only in common
      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