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 /*****************************************************************************/ 71 typedef 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 80 typedef 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 90 typedef 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 106 ih264_default_weighted_pred_ft ih264_default_weighted_pred_luma; 107 108 ih264_default_weighted_pred_ft ih264_default_weighted_pred_chroma; 109 110 ih264_weighted_pred_ft ih264_weighted_pred_luma; 111 112 ih264_weighted_pred_ft ih264_weighted_pred_chroma; 113 114 ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_luma; 115 116 ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_chroma; 117 118 /* A9 NEON Declarations */ 119 120 ih264_default_weighted_pred_ft ih264_default_weighted_pred_luma_a9q; 121 122 ih264_default_weighted_pred_ft ih264_default_weighted_pred_chroma_a9q; 123 124 ih264_weighted_pred_ft ih264_weighted_pred_luma_a9q; 125 126 ih264_weighted_pred_ft ih264_weighted_pred_chroma_a9q; 127 128 ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_luma_a9q; 129 130 ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_chroma_a9q; 131 132 133 /* AV8 NEON Declarations */ 134 135 ih264_default_weighted_pred_ft ih264_default_weighted_pred_luma_av8; 136 137 ih264_default_weighted_pred_ft ih264_default_weighted_pred_chroma_av8; 138 139 ih264_weighted_pred_ft ih264_weighted_pred_luma_av8; 140 141 ih264_weighted_pred_ft ih264_weighted_pred_chroma_av8; 142 143 ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_luma_av8; 144 145 ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_chroma_av8; 146 147 148 /* SSE42 Intrinsic Declarations */ 149 150 ih264_default_weighted_pred_ft ih264_default_weighted_pred_luma_sse42; 151 152 ih264_default_weighted_pred_ft ih264_default_weighted_pred_chroma_sse42; 153 154 ih264_weighted_pred_ft ih264_weighted_pred_luma_sse42; 155 156 ih264_weighted_pred_ft ih264_weighted_pred_chroma_sse42; 157 158 ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_luma_sse42; 159 160 ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_chroma_sse42; 161 162 #endif /* IH264_WEIGHTED_PRED_H_ */ 163 164 /** Nothing past this point */ 165