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