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