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_weighted_pred.h 22*c83a76b0SSuyog Pawar * 23*c83a76b0SSuyog Pawar * @brief 24*c83a76b0SSuyog Pawar * Function declarations used for buffer management 25*c83a76b0SSuyog Pawar * 26*c83a76b0SSuyog Pawar * @author 27*c83a76b0SSuyog Pawar * Srinivas T 28*c83a76b0SSuyog Pawar * 29*c83a76b0SSuyog Pawar * @remarks 30*c83a76b0SSuyog Pawar * None 31*c83a76b0SSuyog Pawar * 32*c83a76b0SSuyog Pawar ******************************************************************************* 33*c83a76b0SSuyog Pawar */ 34*c83a76b0SSuyog Pawar 35*c83a76b0SSuyog Pawar #ifndef IHEVC_WEIGHTED_PRED_H_ 36*c83a76b0SSuyog Pawar #define IHEVC_WEIGHTED_PRED_H_ 37*c83a76b0SSuyog Pawar 38*c83a76b0SSuyog Pawar typedef void ihevc_weighted_pred_uni_ft(WORD16 *pi2_src, 39*c83a76b0SSuyog Pawar UWORD8 *pu1_dst, 40*c83a76b0SSuyog Pawar WORD32 src_strd, 41*c83a76b0SSuyog Pawar WORD32 dst_strd, 42*c83a76b0SSuyog Pawar WORD32 wgt0, 43*c83a76b0SSuyog Pawar WORD32 off0, 44*c83a76b0SSuyog Pawar WORD32 shift, 45*c83a76b0SSuyog Pawar WORD32 lvl_shift, 46*c83a76b0SSuyog Pawar WORD32 ht, 47*c83a76b0SSuyog Pawar WORD32 wd); 48*c83a76b0SSuyog Pawar 49*c83a76b0SSuyog Pawar typedef void ihevc_weighted_pred_chroma_uni_ft(WORD16 *pi2_src, 50*c83a76b0SSuyog Pawar UWORD8 *pu1_dst, 51*c83a76b0SSuyog Pawar WORD32 src_strd, 52*c83a76b0SSuyog Pawar WORD32 dst_strd, 53*c83a76b0SSuyog Pawar WORD32 wgt0_cb, 54*c83a76b0SSuyog Pawar WORD32 wgt0_cr, 55*c83a76b0SSuyog Pawar WORD32 off0_cb, 56*c83a76b0SSuyog Pawar WORD32 off0_cr, 57*c83a76b0SSuyog Pawar WORD32 shift, 58*c83a76b0SSuyog Pawar WORD32 lvl_shift, 59*c83a76b0SSuyog Pawar WORD32 ht, 60*c83a76b0SSuyog Pawar WORD32 wd); 61*c83a76b0SSuyog Pawar 62*c83a76b0SSuyog Pawar typedef void ihevc_weighted_pred_bi_ft(WORD16 *pi2_src1, 63*c83a76b0SSuyog Pawar WORD16 *pi2_src2, 64*c83a76b0SSuyog Pawar UWORD8 *pu1_dst, 65*c83a76b0SSuyog Pawar WORD32 src_strd1, 66*c83a76b0SSuyog Pawar WORD32 src_strd2, 67*c83a76b0SSuyog Pawar WORD32 dst_strd, 68*c83a76b0SSuyog Pawar WORD32 wgt0, 69*c83a76b0SSuyog Pawar WORD32 off0, 70*c83a76b0SSuyog Pawar WORD32 wgt1, 71*c83a76b0SSuyog Pawar WORD32 off1, 72*c83a76b0SSuyog Pawar WORD32 shift, 73*c83a76b0SSuyog Pawar WORD32 lvl_shift1, 74*c83a76b0SSuyog Pawar WORD32 lvl_shift2, 75*c83a76b0SSuyog Pawar WORD32 ht, 76*c83a76b0SSuyog Pawar WORD32 wd); 77*c83a76b0SSuyog Pawar 78*c83a76b0SSuyog Pawar typedef void ihevc_weighted_pred_chroma_bi_ft(WORD16 *pi2_src1, 79*c83a76b0SSuyog Pawar WORD16 *pi2_src2, 80*c83a76b0SSuyog Pawar UWORD8 *pu1_dst, 81*c83a76b0SSuyog Pawar WORD32 src_strd1, 82*c83a76b0SSuyog Pawar WORD32 src_strd2, 83*c83a76b0SSuyog Pawar WORD32 dst_strd, 84*c83a76b0SSuyog Pawar WORD32 wgt0_cb, 85*c83a76b0SSuyog Pawar WORD32 wgt0_cr, 86*c83a76b0SSuyog Pawar WORD32 off0_cb, 87*c83a76b0SSuyog Pawar WORD32 off0_cr, 88*c83a76b0SSuyog Pawar WORD32 wgt1_cb, 89*c83a76b0SSuyog Pawar WORD32 wgt1_cr, 90*c83a76b0SSuyog Pawar WORD32 off1_cb, 91*c83a76b0SSuyog Pawar WORD32 off1_cr, 92*c83a76b0SSuyog Pawar WORD32 shift, 93*c83a76b0SSuyog Pawar WORD32 lvl_shift1, 94*c83a76b0SSuyog Pawar WORD32 lvl_shift2, 95*c83a76b0SSuyog Pawar WORD32 ht, 96*c83a76b0SSuyog Pawar WORD32 wd); 97*c83a76b0SSuyog Pawar 98*c83a76b0SSuyog Pawar typedef void ihevc_weighted_pred_bi_default_ft(WORD16 *pi2_src1, 99*c83a76b0SSuyog Pawar WORD16 *pi2_src2, 100*c83a76b0SSuyog Pawar UWORD8 *pu1_dst, 101*c83a76b0SSuyog Pawar WORD32 src_strd1, 102*c83a76b0SSuyog Pawar WORD32 src_strd2, 103*c83a76b0SSuyog Pawar WORD32 dst_strd, 104*c83a76b0SSuyog Pawar WORD32 lvl_shift1, 105*c83a76b0SSuyog Pawar WORD32 lvl_shift2, 106*c83a76b0SSuyog Pawar WORD32 ht, 107*c83a76b0SSuyog Pawar WORD32 wd); 108*c83a76b0SSuyog Pawar 109*c83a76b0SSuyog Pawar typedef void ihevc_weighted_pred_chroma_bi_default_ft(WORD16 *pi2_src1, 110*c83a76b0SSuyog Pawar WORD16 *pi2_src2, 111*c83a76b0SSuyog Pawar UWORD8 *pu1_dst, 112*c83a76b0SSuyog Pawar WORD32 src_strd1, 113*c83a76b0SSuyog Pawar WORD32 src_strd2, 114*c83a76b0SSuyog Pawar WORD32 dst_strd, 115*c83a76b0SSuyog Pawar WORD32 lvl_shift1, 116*c83a76b0SSuyog Pawar WORD32 lvl_shift2, 117*c83a76b0SSuyog Pawar WORD32 ht, 118*c83a76b0SSuyog Pawar WORD32 wd); 119*c83a76b0SSuyog Pawar /* C function declarations */ 120*c83a76b0SSuyog Pawar ihevc_weighted_pred_uni_ft ihevc_weighted_pred_uni; 121*c83a76b0SSuyog Pawar ihevc_weighted_pred_chroma_uni_ft ihevc_weighted_pred_chroma_uni; 122*c83a76b0SSuyog Pawar ihevc_weighted_pred_bi_ft ihevc_weighted_pred_bi; 123*c83a76b0SSuyog Pawar ihevc_weighted_pred_chroma_bi_ft ihevc_weighted_pred_chroma_bi; 124*c83a76b0SSuyog Pawar ihevc_weighted_pred_bi_default_ft ihevc_weighted_pred_bi_default; 125*c83a76b0SSuyog Pawar ihevc_weighted_pred_chroma_bi_default_ft ihevc_weighted_pred_chroma_bi_default; 126*c83a76b0SSuyog Pawar 127*c83a76b0SSuyog Pawar /* A9 Q function declarations */ 128*c83a76b0SSuyog Pawar ihevc_weighted_pred_uni_ft ihevc_weighted_pred_uni_a9q; 129*c83a76b0SSuyog Pawar ihevc_weighted_pred_chroma_uni_ft ihevc_weighted_pred_chroma_uni_a9q; 130*c83a76b0SSuyog Pawar ihevc_weighted_pred_bi_ft ihevc_weighted_pred_bi_a9q; 131*c83a76b0SSuyog Pawar ihevc_weighted_pred_chroma_bi_ft ihevc_weighted_pred_chroma_bi_a9q; 132*c83a76b0SSuyog Pawar ihevc_weighted_pred_bi_default_ft ihevc_weighted_pred_bi_default_a9q; 133*c83a76b0SSuyog Pawar ihevc_weighted_pred_chroma_bi_default_ft ihevc_weighted_pred_chroma_bi_default_a9q; 134*c83a76b0SSuyog Pawar 135*c83a76b0SSuyog Pawar /* A9 A function declarations */ 136*c83a76b0SSuyog Pawar ihevc_weighted_pred_uni_ft ihevc_weighted_pred_uni_a9a; 137*c83a76b0SSuyog Pawar ihevc_weighted_pred_chroma_uni_ft ihevc_weighted_pred_chroma_uni_a9a; 138*c83a76b0SSuyog Pawar ihevc_weighted_pred_bi_ft ihevc_weighted_pred_bi_a9a; 139*c83a76b0SSuyog Pawar ihevc_weighted_pred_chroma_bi_ft ihevc_weighted_pred_chroma_bi_a9a; 140*c83a76b0SSuyog Pawar ihevc_weighted_pred_bi_default_ft ihevc_weighted_pred_bi_default_a9a; 141*c83a76b0SSuyog Pawar ihevc_weighted_pred_chroma_bi_default_ft ihevc_weighted_pred_chroma_bi_default_a9a; 142*c83a76b0SSuyog Pawar 143*c83a76b0SSuyog Pawar /* NEONINTR function declarations */ 144*c83a76b0SSuyog Pawar ihevc_weighted_pred_uni_ft ihevc_weighted_pred_uni_neonintr; 145*c83a76b0SSuyog Pawar ihevc_weighted_pred_chroma_uni_ft ihevc_weighted_pred_chroma_uni_neonintr; 146*c83a76b0SSuyog Pawar ihevc_weighted_pred_bi_ft ihevc_weighted_pred_bi_neonintr; 147*c83a76b0SSuyog Pawar ihevc_weighted_pred_chroma_bi_ft ihevc_weighted_pred_chroma_bi_neonintr; 148*c83a76b0SSuyog Pawar ihevc_weighted_pred_bi_default_ft ihevc_weighted_pred_bi_default_neonintr; 149*c83a76b0SSuyog Pawar ihevc_weighted_pred_chroma_bi_default_ft ihevc_weighted_pred_chroma_bi_default_neonintr; 150*c83a76b0SSuyog Pawar /* SSSE3 function declarations */ 151*c83a76b0SSuyog Pawar ihevc_weighted_pred_uni_ft ihevc_weighted_pred_uni_ssse3; 152*c83a76b0SSuyog Pawar ihevc_weighted_pred_chroma_uni_ft ihevc_weighted_pred_chroma_uni_ssse3; 153*c83a76b0SSuyog Pawar ihevc_weighted_pred_bi_ft ihevc_weighted_pred_bi_ssse3; 154*c83a76b0SSuyog Pawar ihevc_weighted_pred_chroma_bi_ft ihevc_weighted_pred_chroma_bi_ssse3; 155*c83a76b0SSuyog Pawar ihevc_weighted_pred_bi_default_ft ihevc_weighted_pred_bi_default_ssse3; 156*c83a76b0SSuyog Pawar ihevc_weighted_pred_chroma_bi_default_ft ihevc_weighted_pred_chroma_bi_default_ssse3; 157*c83a76b0SSuyog Pawar 158*c83a76b0SSuyog Pawar /* SSE42 function declarations */ 159*c83a76b0SSuyog Pawar ihevc_weighted_pred_uni_ft ihevc_weighted_pred_uni_sse42; 160*c83a76b0SSuyog Pawar ihevc_weighted_pred_chroma_uni_ft ihevc_weighted_pred_chroma_uni_sse42; 161*c83a76b0SSuyog Pawar ihevc_weighted_pred_bi_ft ihevc_weighted_pred_bi_sse42; 162*c83a76b0SSuyog Pawar ihevc_weighted_pred_chroma_bi_ft ihevc_weighted_pred_chroma_bi_sse42; 163*c83a76b0SSuyog Pawar ihevc_weighted_pred_bi_default_ft ihevc_weighted_pred_bi_default_sse42; 164*c83a76b0SSuyog Pawar ihevc_weighted_pred_chroma_bi_default_ft ihevc_weighted_pred_chroma_bi_default_sse42; 165*c83a76b0SSuyog Pawar 166*c83a76b0SSuyog Pawar /* AVX2 function declarations */ 167*c83a76b0SSuyog Pawar ihevc_weighted_pred_bi_default_ft ihevc_weighted_pred_bi_default_avx2; 168*c83a76b0SSuyog Pawar ihevc_weighted_pred_chroma_bi_default_ft ihevc_weighted_pred_chroma_bi_default_avx2; 169*c83a76b0SSuyog Pawar 170*c83a76b0SSuyog Pawar /* armv8 function declarations */ 171*c83a76b0SSuyog Pawar ihevc_weighted_pred_uni_ft ihevc_weighted_pred_uni_av8; 172*c83a76b0SSuyog Pawar ihevc_weighted_pred_chroma_uni_ft ihevc_weighted_pred_chroma_uni_av8; 173*c83a76b0SSuyog Pawar ihevc_weighted_pred_bi_ft ihevc_weighted_pred_bi_av8; 174*c83a76b0SSuyog Pawar ihevc_weighted_pred_chroma_bi_ft ihevc_weighted_pred_chroma_bi_av8; 175*c83a76b0SSuyog Pawar ihevc_weighted_pred_bi_default_ft ihevc_weighted_pred_bi_default_av8; 176*c83a76b0SSuyog Pawar ihevc_weighted_pred_chroma_bi_default_ft ihevc_weighted_pred_chroma_bi_default_av8; 177*c83a76b0SSuyog Pawar 178*c83a76b0SSuyog Pawar #endif /* IHEVC_WEIGHTED_PRED_H_ */ 179