1/****************************************************************************** 2 * 3 * Copyright (C) 2015 The Android Open Source Project 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 * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore 19*/ 20 21/** 22******************************************************************************* 23* @file 24* ih264_weighted_pred.h 25* 26* @brief 27* Declarations of functions used for weighted prediction 28* 29* @author 30* Ittiam 31* 32* @par List of Functions: 33* -ih264_default_weighted_pred_luma 34* -ih264_default_weighted_pred_chroma 35* -ih264_weighted_pred_luma 36* -ih264_weighted_pred_chroma 37* -ih264_weighted_bi_pred_luma 38* -ih264_weighted_bi_pred_chroma 39* -ih264_default_weighted_pred_luma_a9q 40* -ih264_default_weighted_pred_chroma_a9q 41* -ih264_weighted_pred_luma_a9q 42* -ih264_weighted_pred_luma_a9q 43* -ih264_weighted_bi_pred_luma_a9q 44* -ih264_weighted_bi_pred_chroma_a9q 45* -ih264_default_weighted_pred_luma_av8 46* -ih264_default_weighted_pred_chroma_av8 47* -ih264_weighted_pred_luma_av8 48* -ih264_weighted_pred_chroma_av8 49* -ih264_weighted_bi_pred_luma_av8 50* -ih264_weighted_bi_pred_chroma_av8 51* -ih264_default_weighted_pred_luma_sse42 52* -ih264_default_weighted_pred_chroma_sse42 53* -ih264_weighted_pred_luma_sse42 54* -ih264_weighted_pred_chroma_sse42 55* -ih264_weighted_bi_pred_luma_sse42 56* -ih264_weighted_bi_pred_chroma_sse42 57* 58* 59* @remarks 60* None 61* 62******************************************************************************* 63*/ 64 65#ifndef IH264_WEIGHTED_PRED_H_ 66#define IH264_WEIGHTED_PRED_H_ 67 68/*****************************************************************************/ 69/* Extern Function Declarations */ 70/*****************************************************************************/ 71typedef void ih264_default_weighted_pred_ft(UWORD8 *puc_src1, 72 UWORD8 *puc_src2, 73 UWORD8 *puc_dst, 74 WORD32 src_strd1, 75 WORD32 src_strd2, 76 WORD32 dst_strd, 77 WORD32 ht, 78 WORD32 wd); 79 80typedef void ih264_weighted_pred_ft(UWORD8 *puc_src, 81 UWORD8 *puc_dst, 82 WORD32 src_strd, 83 WORD32 dst_strd, 84 WORD32 log_wd, 85 WORD32 wt, 86 WORD32 ofst, 87 WORD32 ht, 88 WORD32 wd); 89 90typedef void ih264_weighted_bi_pred_ft(UWORD8 *puc_src1, 91 UWORD8 *puc_src2, 92 UWORD8 *puc_dst, 93 WORD32 src_strd1, 94 WORD32 src_strd2, 95 WORD32 dst_strd, 96 WORD32 log_wd, 97 WORD32 wt1, 98 WORD32 wt2, 99 WORD32 ofst1, 100 WORD32 ofst2, 101 WORD32 ht, 102 WORD32 wd); 103 104/* No NEON Declarations */ 105 106ih264_default_weighted_pred_ft ih264_default_weighted_pred_luma; 107 108ih264_default_weighted_pred_ft ih264_default_weighted_pred_chroma; 109 110ih264_weighted_pred_ft ih264_weighted_pred_luma; 111 112ih264_weighted_pred_ft ih264_weighted_pred_chroma; 113 114ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_luma; 115 116ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_chroma; 117 118/* A9 NEON Declarations */ 119 120ih264_default_weighted_pred_ft ih264_default_weighted_pred_luma_a9q; 121 122ih264_default_weighted_pred_ft ih264_default_weighted_pred_chroma_a9q; 123 124ih264_weighted_pred_ft ih264_weighted_pred_luma_a9q; 125 126ih264_weighted_pred_ft ih264_weighted_pred_chroma_a9q; 127 128ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_luma_a9q; 129 130ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_chroma_a9q; 131 132 133/* AV8 NEON Declarations */ 134 135ih264_default_weighted_pred_ft ih264_default_weighted_pred_luma_av8; 136 137ih264_default_weighted_pred_ft ih264_default_weighted_pred_chroma_av8; 138 139ih264_weighted_pred_ft ih264_weighted_pred_luma_av8; 140 141ih264_weighted_pred_ft ih264_weighted_pred_chroma_av8; 142 143ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_luma_av8; 144 145ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_chroma_av8; 146 147 148/* SSE42 Intrinsic Declarations */ 149 150ih264_default_weighted_pred_ft ih264_default_weighted_pred_luma_sse42; 151 152ih264_default_weighted_pred_ft ih264_default_weighted_pred_chroma_sse42; 153 154ih264_weighted_pred_ft ih264_weighted_pred_luma_sse42; 155 156ih264_weighted_pred_ft ih264_weighted_pred_chroma_sse42; 157 158ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_luma_sse42; 159 160ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_chroma_sse42; 161 162#endif /* IH264_WEIGHTED_PRED_H_ */ 163 164/** Nothing past this point */ 165