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_intra_pred.h 22*c83a76b0SSuyog Pawar * 23*c83a76b0SSuyog Pawar * @brief 24*c83a76b0SSuyog Pawar * Declarations for the fucntions defined in ihevc_intra_pred_filters 25*c83a76b0SSuyog Pawar * 26*c83a76b0SSuyog Pawar * @author 27*c83a76b0SSuyog Pawar * Mamatha 28*c83a76b0SSuyog Pawar * 29*c83a76b0SSuyog Pawar * 30*c83a76b0SSuyog Pawar * @remarks 31*c83a76b0SSuyog Pawar * None 32*c83a76b0SSuyog Pawar * 33*c83a76b0SSuyog Pawar ******************************************************************************* 34*c83a76b0SSuyog Pawar */ 35*c83a76b0SSuyog Pawar 36*c83a76b0SSuyog Pawar #ifndef IHEVC_INTRA_PRED_H_ 37*c83a76b0SSuyog Pawar #define IHEVC_INTRA_PRED_H_ 38*c83a76b0SSuyog Pawar 39*c83a76b0SSuyog Pawar 40*c83a76b0SSuyog Pawar /*****************************************************************************/ 41*c83a76b0SSuyog Pawar /* Macro definitions */ 42*c83a76b0SSuyog Pawar /*****************************************************************************/ 43*c83a76b0SSuyog Pawar #define look_up_trailing_zeros(x) (0 == (x) ? 8 : CTZ(x)) 44*c83a76b0SSuyog Pawar 45*c83a76b0SSuyog Pawar #define GET_BIT(y,x) ((y) & (1 << (x))) 46*c83a76b0SSuyog Pawar 47*c83a76b0SSuyog Pawar /*****************************************************************************/ 48*c83a76b0SSuyog Pawar /* Function Declarations */ 49*c83a76b0SSuyog Pawar /*****************************************************************************/ 50*c83a76b0SSuyog Pawar typedef void ihevc_intra_pred_luma_planar_ft( 51*c83a76b0SSuyog Pawar UWORD8 *pu1_ref, 52*c83a76b0SSuyog Pawar WORD32 src_strd, 53*c83a76b0SSuyog Pawar UWORD8 *pu1_dst, 54*c83a76b0SSuyog Pawar WORD32 dst_strd, 55*c83a76b0SSuyog Pawar WORD32 nt, 56*c83a76b0SSuyog Pawar WORD32 mode); 57*c83a76b0SSuyog Pawar 58*c83a76b0SSuyog Pawar 59*c83a76b0SSuyog Pawar 60*c83a76b0SSuyog Pawar typedef void ihevc_intra_pred_luma_dc_ft( 61*c83a76b0SSuyog Pawar UWORD8 *pu1_ref, 62*c83a76b0SSuyog Pawar WORD32 src_strd, 63*c83a76b0SSuyog Pawar UWORD8 *pu1_dst, 64*c83a76b0SSuyog Pawar WORD32 dst_strd, 65*c83a76b0SSuyog Pawar WORD32 nt, 66*c83a76b0SSuyog Pawar WORD32 mode); 67*c83a76b0SSuyog Pawar 68*c83a76b0SSuyog Pawar typedef void ihevc_intra_pred_luma_horz_ft( 69*c83a76b0SSuyog Pawar UWORD8 *pu1_ref, 70*c83a76b0SSuyog Pawar WORD32 src_strd, 71*c83a76b0SSuyog Pawar UWORD8 *pu1_dst, 72*c83a76b0SSuyog Pawar WORD32 dst_strd, 73*c83a76b0SSuyog Pawar WORD32 nt, 74*c83a76b0SSuyog Pawar WORD32 mode); 75*c83a76b0SSuyog Pawar 76*c83a76b0SSuyog Pawar 77*c83a76b0SSuyog Pawar typedef void ihevc_intra_pred_luma_ver_ft( 78*c83a76b0SSuyog Pawar UWORD8 *pu1_ref, 79*c83a76b0SSuyog Pawar WORD32 src_strd, 80*c83a76b0SSuyog Pawar UWORD8 *pu1_dst, 81*c83a76b0SSuyog Pawar WORD32 dst_strd, 82*c83a76b0SSuyog Pawar WORD32 nt, 83*c83a76b0SSuyog Pawar WORD32 mode); 84*c83a76b0SSuyog Pawar 85*c83a76b0SSuyog Pawar 86*c83a76b0SSuyog Pawar typedef void ihevc_intra_pred_luma_mode2_ft( 87*c83a76b0SSuyog Pawar UWORD8 *pu1_ref, 88*c83a76b0SSuyog Pawar WORD32 src_strd, 89*c83a76b0SSuyog Pawar UWORD8 *pu1_dst, 90*c83a76b0SSuyog Pawar WORD32 dst_strd, 91*c83a76b0SSuyog Pawar WORD32 nt, 92*c83a76b0SSuyog Pawar WORD32 mode); 93*c83a76b0SSuyog Pawar 94*c83a76b0SSuyog Pawar 95*c83a76b0SSuyog Pawar typedef void ihevc_intra_pred_luma_mode_18_34_ft( 96*c83a76b0SSuyog Pawar UWORD8 *pu1_ref, 97*c83a76b0SSuyog Pawar WORD32 src_strd, 98*c83a76b0SSuyog Pawar UWORD8 *pu1_dst, 99*c83a76b0SSuyog Pawar WORD32 dst_strd, 100*c83a76b0SSuyog Pawar WORD32 nt, 101*c83a76b0SSuyog Pawar WORD32 mode); 102*c83a76b0SSuyog Pawar 103*c83a76b0SSuyog Pawar 104*c83a76b0SSuyog Pawar typedef void ihevc_intra_pred_luma_mode_3_to_9_ft( 105*c83a76b0SSuyog Pawar UWORD8 *pu1_ref, 106*c83a76b0SSuyog Pawar WORD32 src_strd, 107*c83a76b0SSuyog Pawar UWORD8 *pu1_dst, 108*c83a76b0SSuyog Pawar WORD32 dst_strd, 109*c83a76b0SSuyog Pawar WORD32 nt, 110*c83a76b0SSuyog Pawar WORD32 mode); 111*c83a76b0SSuyog Pawar 112*c83a76b0SSuyog Pawar 113*c83a76b0SSuyog Pawar typedef void ihevc_intra_pred_luma_mode_11_to_17_ft( 114*c83a76b0SSuyog Pawar UWORD8 *pu1_ref, 115*c83a76b0SSuyog Pawar WORD32 src_strd, 116*c83a76b0SSuyog Pawar UWORD8 *pu1_dst, 117*c83a76b0SSuyog Pawar WORD32 dst_strd, 118*c83a76b0SSuyog Pawar WORD32 nt, 119*c83a76b0SSuyog Pawar WORD32 mode); 120*c83a76b0SSuyog Pawar 121*c83a76b0SSuyog Pawar 122*c83a76b0SSuyog Pawar typedef void ihevc_intra_pred_luma_mode_19_to_25_ft( 123*c83a76b0SSuyog Pawar UWORD8 *pu1_ref, 124*c83a76b0SSuyog Pawar WORD32 src_strd, 125*c83a76b0SSuyog Pawar UWORD8 *pu1_dst, 126*c83a76b0SSuyog Pawar WORD32 dst_strd, 127*c83a76b0SSuyog Pawar WORD32 nt, 128*c83a76b0SSuyog Pawar WORD32 mode); 129*c83a76b0SSuyog Pawar 130*c83a76b0SSuyog Pawar 131*c83a76b0SSuyog Pawar typedef void ihevc_intra_pred_luma_mode_27_to_33_ft( 132*c83a76b0SSuyog Pawar UWORD8 *pu1_ref, 133*c83a76b0SSuyog Pawar WORD32 src_strd, 134*c83a76b0SSuyog Pawar UWORD8 *pu1_dst, 135*c83a76b0SSuyog Pawar WORD32 dst_strd, 136*c83a76b0SSuyog Pawar WORD32 nt, 137*c83a76b0SSuyog Pawar WORD32 mode); 138*c83a76b0SSuyog Pawar 139*c83a76b0SSuyog Pawar typedef void ihevc_intra_pred_luma_ref_substitution_ft(UWORD8 *pu1_top_left, 140*c83a76b0SSuyog Pawar UWORD8 *pu1_top, 141*c83a76b0SSuyog Pawar UWORD8 *pu1_left, 142*c83a76b0SSuyog Pawar WORD32 src_strd, 143*c83a76b0SSuyog Pawar WORD32 nt, 144*c83a76b0SSuyog Pawar WORD32 nbr_flags, 145*c83a76b0SSuyog Pawar UWORD8 *pu1_dst, 146*c83a76b0SSuyog Pawar WORD32 dst_strd); 147*c83a76b0SSuyog Pawar 148*c83a76b0SSuyog Pawar 149*c83a76b0SSuyog Pawar typedef void ihevc_intra_pred_luma_ref_subst_all_avlble_ft(UWORD8 *pu1_top_left, 150*c83a76b0SSuyog Pawar UWORD8 *pu1_top, 151*c83a76b0SSuyog Pawar UWORD8 *pu1_left, 152*c83a76b0SSuyog Pawar WORD32 src_strd, 153*c83a76b0SSuyog Pawar WORD32 nt, 154*c83a76b0SSuyog Pawar WORD32 nbr_flags, 155*c83a76b0SSuyog Pawar UWORD8 *pu1_dst, 156*c83a76b0SSuyog Pawar WORD32 dst_strd); 157*c83a76b0SSuyog Pawar 158*c83a76b0SSuyog Pawar typedef void ihevc_intra_pred_ref_filtering_ft(UWORD8 *pu1_src, 159*c83a76b0SSuyog Pawar WORD32 nt, 160*c83a76b0SSuyog Pawar UWORD8 *pu1_dst, 161*c83a76b0SSuyog Pawar WORD32 mode, 162*c83a76b0SSuyog Pawar WORD32 strong_intra_smoothing_enable_flag); 163*c83a76b0SSuyog Pawar 164*c83a76b0SSuyog Pawar typedef void ihevc_hbd_intra_pred_luma_planar_ft( 165*c83a76b0SSuyog Pawar UWORD16 *pu2_ref, 166*c83a76b0SSuyog Pawar WORD32 src_strd, 167*c83a76b0SSuyog Pawar UWORD16 *pu2_dst, 168*c83a76b0SSuyog Pawar WORD32 dst_strd, 169*c83a76b0SSuyog Pawar WORD32 nt, 170*c83a76b0SSuyog Pawar WORD32 mode, 171*c83a76b0SSuyog Pawar UWORD8 bit_depth); 172*c83a76b0SSuyog Pawar 173*c83a76b0SSuyog Pawar 174*c83a76b0SSuyog Pawar typedef void ihevc_hbd_intra_pred_luma_dc_ft( 175*c83a76b0SSuyog Pawar UWORD16 *pu2_ref, 176*c83a76b0SSuyog Pawar WORD32 src_strd, 177*c83a76b0SSuyog Pawar UWORD16 *pu2_dst, 178*c83a76b0SSuyog Pawar WORD32 dst_strd, 179*c83a76b0SSuyog Pawar WORD32 nt, 180*c83a76b0SSuyog Pawar WORD32 mode, 181*c83a76b0SSuyog Pawar UWORD8 bit_depth); 182*c83a76b0SSuyog Pawar 183*c83a76b0SSuyog Pawar 184*c83a76b0SSuyog Pawar typedef void ihevc_hbd_intra_pred_luma_horz_ft( 185*c83a76b0SSuyog Pawar UWORD16 *pu2_ref, 186*c83a76b0SSuyog Pawar WORD32 src_strd, 187*c83a76b0SSuyog Pawar UWORD16 *pu2_dst, 188*c83a76b0SSuyog Pawar WORD32 dst_strd, 189*c83a76b0SSuyog Pawar WORD32 nt, 190*c83a76b0SSuyog Pawar WORD32 mode, 191*c83a76b0SSuyog Pawar UWORD8 bit_depth); 192*c83a76b0SSuyog Pawar 193*c83a76b0SSuyog Pawar 194*c83a76b0SSuyog Pawar typedef void ihevc_hbd_intra_pred_luma_ver_ft( 195*c83a76b0SSuyog Pawar UWORD16 *pu2_ref, 196*c83a76b0SSuyog Pawar WORD32 src_strd, 197*c83a76b0SSuyog Pawar UWORD16 *pu2_dst, 198*c83a76b0SSuyog Pawar WORD32 dst_strd, 199*c83a76b0SSuyog Pawar WORD32 nt, 200*c83a76b0SSuyog Pawar WORD32 mode, 201*c83a76b0SSuyog Pawar UWORD8 bit_depth); 202*c83a76b0SSuyog Pawar 203*c83a76b0SSuyog Pawar 204*c83a76b0SSuyog Pawar typedef void ihevc_hbd_intra_pred_luma_mode2_ft( 205*c83a76b0SSuyog Pawar UWORD16 *pu2_ref, 206*c83a76b0SSuyog Pawar WORD32 src_strd, 207*c83a76b0SSuyog Pawar UWORD16 *pu2_dst, 208*c83a76b0SSuyog Pawar WORD32 dst_strd, 209*c83a76b0SSuyog Pawar WORD32 nt, 210*c83a76b0SSuyog Pawar WORD32 mode, 211*c83a76b0SSuyog Pawar UWORD8 bit_depth); 212*c83a76b0SSuyog Pawar 213*c83a76b0SSuyog Pawar 214*c83a76b0SSuyog Pawar typedef void ihevc_hbd_intra_pred_luma_mode_18_34_ft( 215*c83a76b0SSuyog Pawar UWORD16 *pu2_ref, 216*c83a76b0SSuyog Pawar WORD32 src_strd, 217*c83a76b0SSuyog Pawar UWORD16 *pu2_dst, 218*c83a76b0SSuyog Pawar WORD32 dst_strd, 219*c83a76b0SSuyog Pawar WORD32 nt, 220*c83a76b0SSuyog Pawar WORD32 mode, 221*c83a76b0SSuyog Pawar UWORD8 bit_depth); 222*c83a76b0SSuyog Pawar 223*c83a76b0SSuyog Pawar 224*c83a76b0SSuyog Pawar typedef void ihevc_hbd_intra_pred_luma_mode_3_to_9_ft( 225*c83a76b0SSuyog Pawar UWORD16 *pu2_ref, 226*c83a76b0SSuyog Pawar WORD32 src_strd, 227*c83a76b0SSuyog Pawar UWORD16 *pu2_dst, 228*c83a76b0SSuyog Pawar WORD32 dst_strd, 229*c83a76b0SSuyog Pawar WORD32 nt, 230*c83a76b0SSuyog Pawar WORD32 mode, 231*c83a76b0SSuyog Pawar UWORD8 bit_depth); 232*c83a76b0SSuyog Pawar 233*c83a76b0SSuyog Pawar 234*c83a76b0SSuyog Pawar typedef void ihevc_hbd_intra_pred_luma_mode_11_to_17_ft( 235*c83a76b0SSuyog Pawar UWORD16 *pu2_ref, 236*c83a76b0SSuyog Pawar WORD32 src_strd, 237*c83a76b0SSuyog Pawar UWORD16 *pu2_dst, 238*c83a76b0SSuyog Pawar WORD32 dst_strd, 239*c83a76b0SSuyog Pawar WORD32 nt, 240*c83a76b0SSuyog Pawar WORD32 mode, 241*c83a76b0SSuyog Pawar UWORD8 bit_depth); 242*c83a76b0SSuyog Pawar 243*c83a76b0SSuyog Pawar typedef void ihevc_hbd_intra_pred_luma_mode_19_to_25_ft( 244*c83a76b0SSuyog Pawar UWORD16 *pu2_ref, 245*c83a76b0SSuyog Pawar WORD32 src_strd, 246*c83a76b0SSuyog Pawar UWORD16 *pu2_dst, 247*c83a76b0SSuyog Pawar WORD32 dst_strd, 248*c83a76b0SSuyog Pawar WORD32 nt, 249*c83a76b0SSuyog Pawar WORD32 mode, 250*c83a76b0SSuyog Pawar UWORD8 bit_depth); 251*c83a76b0SSuyog Pawar 252*c83a76b0SSuyog Pawar 253*c83a76b0SSuyog Pawar 254*c83a76b0SSuyog Pawar typedef void ihevc_hbd_intra_pred_luma_mode_27_to_33_ft( 255*c83a76b0SSuyog Pawar UWORD16 *pu2_ref, 256*c83a76b0SSuyog Pawar WORD32 src_strd, 257*c83a76b0SSuyog Pawar UWORD16 *pu2_dst, 258*c83a76b0SSuyog Pawar WORD32 dst_strd, 259*c83a76b0SSuyog Pawar WORD32 nt, 260*c83a76b0SSuyog Pawar WORD32 mode, 261*c83a76b0SSuyog Pawar UWORD8 bit_depth); 262*c83a76b0SSuyog Pawar 263*c83a76b0SSuyog Pawar typedef void ihevc_hbd_intra_pred_luma_ref_substitution_ft(UWORD16 *pu2_top_left, 264*c83a76b0SSuyog Pawar UWORD16 *pu2_top, 265*c83a76b0SSuyog Pawar UWORD16 *pu2_left, 266*c83a76b0SSuyog Pawar WORD32 src_strd, 267*c83a76b0SSuyog Pawar WORD32 nt, 268*c83a76b0SSuyog Pawar WORD32 nbr_flags, 269*c83a76b0SSuyog Pawar UWORD16 *pu2_dst, 270*c83a76b0SSuyog Pawar WORD32 dst_strd, 271*c83a76b0SSuyog Pawar UWORD8 bit_depth); 272*c83a76b0SSuyog Pawar 273*c83a76b0SSuyog Pawar 274*c83a76b0SSuyog Pawar 275*c83a76b0SSuyog Pawar typedef void ihevc_hbd_intra_pred_ref_filtering_ft(UWORD16 *pu2_src, 276*c83a76b0SSuyog Pawar WORD32 nt, 277*c83a76b0SSuyog Pawar UWORD16 *pu2_dst, 278*c83a76b0SSuyog Pawar WORD32 mode, 279*c83a76b0SSuyog Pawar WORD32 strong_intra_smoothing_enable_flag, 280*c83a76b0SSuyog Pawar UWORD8 bit_depth); 281*c83a76b0SSuyog Pawar 282*c83a76b0SSuyog Pawar /* C function declarations */ 283*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_planar_ft ihevc_intra_pred_luma_planar; 284*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_dc_ft ihevc_intra_pred_luma_dc; 285*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_horz_ft ihevc_intra_pred_luma_horz; 286*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_ver_ft ihevc_intra_pred_luma_ver; 287*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode2_ft ihevc_intra_pred_luma_mode2; 288*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_18_34_ft ihevc_intra_pred_luma_mode_18_34; 289*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_3_to_9_ft ihevc_intra_pred_luma_mode_3_to_9; 290*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_11_to_17_ft ihevc_intra_pred_luma_mode_11_to_17; 291*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_19_to_25_ft ihevc_intra_pred_luma_mode_19_to_25; 292*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_27_to_33_ft ihevc_intra_pred_luma_mode_27_to_33; 293*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_ref_substitution_ft ihevc_intra_pred_luma_ref_substitution; 294*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_ref_subst_all_avlble_ft ihevc_intra_pred_luma_ref_subst_all_avlble; 295*c83a76b0SSuyog Pawar ihevc_intra_pred_ref_filtering_ft ihevc_intra_pred_ref_filtering; 296*c83a76b0SSuyog Pawar 297*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_planar_ft ihevc_hbd_intra_pred_luma_planar; 298*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_dc_ft ihevc_hbd_intra_pred_luma_dc; 299*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_horz_ft ihevc_hbd_intra_pred_luma_horz; 300*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_ver_ft ihevc_hbd_intra_pred_luma_ver; 301*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_mode2_ft ihevc_hbd_intra_pred_luma_mode2; 302*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_mode_18_34_ft ihevc_hbd_intra_pred_luma_mode_18_34; 303*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_mode_3_to_9_ft ihevc_hbd_intra_pred_luma_mode_3_to_9; 304*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_mode_11_to_17_ft ihevc_hbd_intra_pred_luma_mode_11_to_17; 305*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_mode_19_to_25_ft ihevc_hbd_intra_pred_luma_mode_19_to_25; 306*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_mode_27_to_33_ft ihevc_hbd_intra_pred_luma_mode_27_to_33; 307*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_ref_substitution_ft ihevc_hbd_intra_pred_luma_ref_substitution; 308*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_ref_filtering_ft ihevc_hbd_intra_pred_ref_filtering; 309*c83a76b0SSuyog Pawar 310*c83a76b0SSuyog Pawar 311*c83a76b0SSuyog Pawar /* A9Q function declarations */ 312*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_planar_ft ihevc_intra_pred_luma_planar_a9q; 313*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_dc_ft ihevc_intra_pred_luma_dc_a9q; 314*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_horz_ft ihevc_intra_pred_luma_horz_a9q; 315*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_ver_ft ihevc_intra_pred_luma_ver_a9q; 316*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode2_ft ihevc_intra_pred_luma_mode2_a9q; 317*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_18_34_ft ihevc_intra_pred_luma_mode_18_34_a9q; 318*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_3_to_9_ft ihevc_intra_pred_luma_mode_3_to_9_a9q; 319*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_11_to_17_ft ihevc_intra_pred_luma_mode_11_to_17_a9q; 320*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_19_to_25_ft ihevc_intra_pred_luma_mode_19_to_25_a9q; 321*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_27_to_33_ft ihevc_intra_pred_luma_mode_27_to_33_a9q; 322*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_ref_substitution_ft ihevc_intra_pred_luma_ref_substitution_a9q; 323*c83a76b0SSuyog Pawar ihevc_intra_pred_ref_filtering_ft ihevc_intra_pred_ref_filtering_a9q; 324*c83a76b0SSuyog Pawar 325*c83a76b0SSuyog Pawar /* A9 A function declarations */ 326*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_planar_ft ihevc_intra_pred_luma_planar_a9a; 327*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_dc_ft ihevc_intra_pred_luma_dc_a9a; 328*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_horz_ft ihevc_intra_pred_luma_horz_a9a; 329*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_ver_ft ihevc_intra_pred_luma_ver_a9a; 330*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode2_ft ihevc_intra_pred_luma_mode2_a9a; 331*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_18_34_ft ihevc_intra_pred_luma_mode_18_34_a9a; 332*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_3_to_9_ft ihevc_intra_pred_luma_mode_3_to_9_a9a; 333*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_11_to_17_ft ihevc_intra_pred_luma_mode_11_to_17_a9a; 334*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_19_to_25_ft ihevc_intra_pred_luma_mode_19_to_25_a9a; 335*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_27_to_33_ft ihevc_intra_pred_luma_mode_27_to_33_a9a; 336*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_ref_substitution_ft ihevc_intra_pred_luma_ref_substitution_a9a; 337*c83a76b0SSuyog Pawar ihevc_intra_pred_ref_filtering_ft ihevc_intra_pred_ref_filtering_a9a; 338*c83a76b0SSuyog Pawar 339*c83a76b0SSuyog Pawar /* NEONINTR function declarations */ 340*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_planar_ft ihevc_intra_pred_luma_planar_neonintr; 341*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_dc_ft ihevc_intra_pred_luma_dc_neonintr; 342*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_horz_ft ihevc_intra_pred_luma_horz_neonintr; 343*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_ver_ft ihevc_intra_pred_luma_ver_neonintr; 344*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode2_ft ihevc_intra_pred_luma_mode2_neonintr; 345*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_18_34_ft ihevc_intra_pred_luma_mode_18_34_neonintr; 346*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_3_to_9_ft ihevc_intra_pred_luma_mode_3_to_9_neonintr; 347*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_11_to_17_ft ihevc_intra_pred_luma_mode_11_to_17_neonintr; 348*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_19_to_25_ft ihevc_intra_pred_luma_mode_19_to_25_neonintr; 349*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_27_to_33_ft ihevc_intra_pred_luma_mode_27_to_33_neonintr; 350*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_ref_substitution_ft ihevc_intra_pred_luma_ref_substitution_neonintr; 351*c83a76b0SSuyog Pawar ihevc_intra_pred_ref_filtering_ft ihevc_intra_pred_ref_filtering_neonintr; 352*c83a76b0SSuyog Pawar 353*c83a76b0SSuyog Pawar /* SSSE31 function declarations */ 354*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_planar_ft ihevc_intra_pred_luma_planar_ssse3; 355*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_dc_ft ihevc_intra_pred_luma_dc_ssse3; 356*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_horz_ft ihevc_intra_pred_luma_horz_ssse3; 357*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_ver_ft ihevc_intra_pred_luma_ver_ssse3; 358*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode2_ft ihevc_intra_pred_luma_mode2_ssse3; 359*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_18_34_ft ihevc_intra_pred_luma_mode_18_34_ssse3; 360*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_3_to_9_ft ihevc_intra_pred_luma_mode_3_to_9_ssse3; 361*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_11_to_17_ft ihevc_intra_pred_luma_mode_11_to_17_ssse3; 362*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_19_to_25_ft ihevc_intra_pred_luma_mode_19_to_25_ssse3; 363*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_27_to_33_ft ihevc_intra_pred_luma_mode_27_to_33_ssse3; 364*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_ref_substitution_ft ihevc_intra_pred_luma_ref_substitution_ssse3; 365*c83a76b0SSuyog Pawar ihevc_intra_pred_ref_filtering_ft ihevc_intra_pred_ref_filtering_ssse3; 366*c83a76b0SSuyog Pawar 367*c83a76b0SSuyog Pawar /* SSE42 function declarations */ 368*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_dc_ft ihevc_intra_pred_luma_dc_sse42; 369*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_horz_ft ihevc_intra_pred_luma_horz_sse42; 370*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_ver_ft ihevc_intra_pred_luma_ver_sse42; 371*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_3_to_9_ft ihevc_intra_pred_luma_mode_3_to_9_sse42; 372*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_11_to_17_ft ihevc_intra_pred_luma_mode_11_to_17_sse42; 373*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_19_to_25_ft ihevc_intra_pred_luma_mode_19_to_25_sse42; 374*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_27_to_33_ft ihevc_intra_pred_luma_mode_27_to_33_sse42; 375*c83a76b0SSuyog Pawar ihevc_intra_pred_ref_filtering_ft ihevc_intra_pred_ref_filtering_sse42; 376*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_planar_ft ihevc_hbd_intra_pred_luma_planar_sse42; 377*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_dc_ft ihevc_hbd_intra_pred_luma_dc_sse42; 378*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_horz_ft ihevc_hbd_intra_pred_luma_horz_sse42; 379*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_ver_ft ihevc_hbd_intra_pred_luma_ver_sse42; 380*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_mode2_ft ihevc_hbd_intra_pred_luma_mode2_sse42; 381*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_mode_18_34_ft ihevc_hbd_intra_pred_luma_mode_18_34_sse42; 382*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_mode_3_to_9_ft ihevc_hbd_intra_pred_luma_mode_3_to_9_sse42; 383*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_mode_11_to_17_ft ihevc_hbd_intra_pred_luma_mode_11_to_17_sse42; 384*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_mode_19_to_25_ft ihevc_hbd_intra_pred_luma_mode_19_to_25_sse42; 385*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_mode_27_to_33_ft ihevc_hbd_intra_pred_luma_mode_27_to_33_sse42; 386*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_ref_substitution_ft ihevc_hbd_intra_pred_luma_ref_substitution_sse42; 387*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_ref_filtering_ft ihevc_hbd_intra_pred_ref_filtering_sse42; 388*c83a76b0SSuyog Pawar 389*c83a76b0SSuyog Pawar /* AVX function declaration*/ 390*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_dc_ft ihevc_intra_pred_luma_dc_avx; 391*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_18_34_ft ihevc_intra_pred_luma_mode_18_34_avx; 392*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_ver_ft ihevc_intra_pred_luma_ver_avx; 393*c83a76b0SSuyog Pawar 394*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_dc_ft ihevc_hbd_intra_pred_luma_dc_avx; 395*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_mode_18_34_ft ihevc_hbd_intra_pred_luma_mode_18_34_avx; 396*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_luma_ver_ft ihevc_hbd_intra_pred_luma_ver_avx; 397*c83a76b0SSuyog Pawar ihevc_hbd_intra_pred_ref_filtering_ft ihevc_hbd_intra_pred_ref_filtering_avx; 398*c83a76b0SSuyog Pawar 399*c83a76b0SSuyog Pawar /* armv8 function declarations */ 400*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_planar_ft ihevc_intra_pred_luma_planar_av8; 401*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_dc_ft ihevc_intra_pred_luma_dc_av8; 402*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_horz_ft ihevc_intra_pred_luma_horz_av8; 403*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_ver_ft ihevc_intra_pred_luma_ver_av8; 404*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode2_ft ihevc_intra_pred_luma_mode2_av8; 405*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_18_34_ft ihevc_intra_pred_luma_mode_18_34_av8; 406*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_3_to_9_ft ihevc_intra_pred_luma_mode_3_to_9_av8; 407*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_11_to_17_ft ihevc_intra_pred_luma_mode_11_to_17_av8; 408*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_19_to_25_ft ihevc_intra_pred_luma_mode_19_to_25_av8; 409*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_mode_27_to_33_ft ihevc_intra_pred_luma_mode_27_to_33_av8; 410*c83a76b0SSuyog Pawar ihevc_intra_pred_luma_ref_substitution_ft ihevc_intra_pred_luma_ref_substitution_av8; 411*c83a76b0SSuyog Pawar ihevc_intra_pred_ref_filtering_ft ihevc_intra_pred_ref_filtering_av8; 412*c83a76b0SSuyog Pawar #endif /* IHEVC_INTRA_PRED_H_ */ 413