Home | History | Annotate | Download | only in common
      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