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_padding.h 22*c83a76b0SSuyog Pawar * 23*c83a76b0SSuyog Pawar * @brief 24*c83a76b0SSuyog Pawar * Declarations for the fucntions defined in ihevc_padding.c 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 #ifndef _IHEVC_PADDING_H_ 35*c83a76b0SSuyog Pawar #define _IHEVC_PADDING_H_ 36*c83a76b0SSuyog Pawar 37*c83a76b0SSuyog Pawar /*****************************************************************************/ 38*c83a76b0SSuyog Pawar /* Function Declarations */ 39*c83a76b0SSuyog Pawar /*****************************************************************************/ 40*c83a76b0SSuyog Pawar 41*c83a76b0SSuyog Pawar typedef void ihevc_pad_horz_luma_ft( 42*c83a76b0SSuyog Pawar UWORD8 *pu1_src, 43*c83a76b0SSuyog Pawar WORD32 src_strd, 44*c83a76b0SSuyog Pawar WORD32 ht, 45*c83a76b0SSuyog Pawar WORD32 wd, 46*c83a76b0SSuyog Pawar WORD32 pad_size); 47*c83a76b0SSuyog Pawar 48*c83a76b0SSuyog Pawar typedef void ihevc_hbd_pad_horz_luma_ft( 49*c83a76b0SSuyog Pawar UWORD16 *pu2_src, 50*c83a76b0SSuyog Pawar WORD32 src_strd, 51*c83a76b0SSuyog Pawar WORD32 ht, 52*c83a76b0SSuyog Pawar WORD32 wd, 53*c83a76b0SSuyog Pawar WORD32 pad_size); 54*c83a76b0SSuyog Pawar 55*c83a76b0SSuyog Pawar typedef void ihevc_pad_horz_chroma_ft( 56*c83a76b0SSuyog Pawar UWORD8 *pu1_src, 57*c83a76b0SSuyog Pawar WORD32 src_strd, 58*c83a76b0SSuyog Pawar WORD32 ht, 59*c83a76b0SSuyog Pawar WORD32 wd, 60*c83a76b0SSuyog Pawar WORD32 pad_size); 61*c83a76b0SSuyog Pawar 62*c83a76b0SSuyog Pawar typedef void ihevc_hbd_pad_horz_chroma_ft( 63*c83a76b0SSuyog Pawar UWORD16 *pu2_src, 64*c83a76b0SSuyog Pawar WORD32 src_strd, 65*c83a76b0SSuyog Pawar WORD32 ht, 66*c83a76b0SSuyog Pawar WORD32 wd, 67*c83a76b0SSuyog Pawar WORD32 pad_size); 68*c83a76b0SSuyog Pawar 69*c83a76b0SSuyog Pawar typedef void ihevc_pad_vert_ft( 70*c83a76b0SSuyog Pawar UWORD8 *pu1_src, 71*c83a76b0SSuyog Pawar WORD32 src_strd, 72*c83a76b0SSuyog Pawar WORD32 ht, 73*c83a76b0SSuyog Pawar WORD32 wd, 74*c83a76b0SSuyog Pawar WORD32 pad_size); 75*c83a76b0SSuyog Pawar 76*c83a76b0SSuyog Pawar typedef void ihevc_hbd_pad_vert_ft( 77*c83a76b0SSuyog Pawar UWORD16 *pu2_src, 78*c83a76b0SSuyog Pawar WORD32 src_strd, 79*c83a76b0SSuyog Pawar WORD32 ht, 80*c83a76b0SSuyog Pawar WORD32 wd, 81*c83a76b0SSuyog Pawar WORD32 pad_size); 82*c83a76b0SSuyog Pawar 83*c83a76b0SSuyog Pawar typedef void ihevc_pad_top_ft(UWORD8 *pu1_src, 84*c83a76b0SSuyog Pawar WORD32 src_strd, 85*c83a76b0SSuyog Pawar WORD32 wd, 86*c83a76b0SSuyog Pawar WORD32 pad_size); 87*c83a76b0SSuyog Pawar 88*c83a76b0SSuyog Pawar typedef void ihevc_hbd_pad_top_ft(UWORD16 *pu2_src, 89*c83a76b0SSuyog Pawar WORD32 src_strd, 90*c83a76b0SSuyog Pawar WORD32 wd, 91*c83a76b0SSuyog Pawar WORD32 pad_size); 92*c83a76b0SSuyog Pawar 93*c83a76b0SSuyog Pawar typedef void ihevc_pad_bottom_ft(UWORD8 *pu1_src, 94*c83a76b0SSuyog Pawar WORD32 src_strd, 95*c83a76b0SSuyog Pawar WORD32 wd, 96*c83a76b0SSuyog Pawar WORD32 pad_size); 97*c83a76b0SSuyog Pawar 98*c83a76b0SSuyog Pawar typedef void ihevc_hbd_pad_bottom_ft(UWORD16 *pu2_src, 99*c83a76b0SSuyog Pawar WORD32 src_strd, 100*c83a76b0SSuyog Pawar WORD32 wd, 101*c83a76b0SSuyog Pawar WORD32 pad_size); 102*c83a76b0SSuyog Pawar 103*c83a76b0SSuyog Pawar typedef void ihevc_pad_left_luma_ft(UWORD8 *pu1_src, 104*c83a76b0SSuyog Pawar WORD32 src_strd, 105*c83a76b0SSuyog Pawar WORD32 ht, 106*c83a76b0SSuyog Pawar WORD32 pad_size); 107*c83a76b0SSuyog Pawar 108*c83a76b0SSuyog Pawar typedef void ihevc_hbd_pad_left_luma_ft(UWORD16 *pu2_src, 109*c83a76b0SSuyog Pawar WORD32 src_strd, 110*c83a76b0SSuyog Pawar WORD32 ht, 111*c83a76b0SSuyog Pawar WORD32 pad_size); 112*c83a76b0SSuyog Pawar 113*c83a76b0SSuyog Pawar typedef void ihevc_pad_left_chroma_ft(UWORD8 *pu1_src, 114*c83a76b0SSuyog Pawar WORD32 src_strd, 115*c83a76b0SSuyog Pawar WORD32 ht, 116*c83a76b0SSuyog Pawar WORD32 pad_size); 117*c83a76b0SSuyog Pawar 118*c83a76b0SSuyog Pawar typedef void ihevc_hbd_pad_left_chroma_ft(UWORD16 *pu2_src, 119*c83a76b0SSuyog Pawar WORD32 src_strd, 120*c83a76b0SSuyog Pawar WORD32 ht, 121*c83a76b0SSuyog Pawar WORD32 pad_size); 122*c83a76b0SSuyog Pawar 123*c83a76b0SSuyog Pawar typedef void ihevc_pad_right_luma_ft(UWORD8 *pu1_src, 124*c83a76b0SSuyog Pawar WORD32 src_strd, 125*c83a76b0SSuyog Pawar WORD32 ht, 126*c83a76b0SSuyog Pawar WORD32 pad_size); 127*c83a76b0SSuyog Pawar 128*c83a76b0SSuyog Pawar typedef void ihevc_hbd_pad_right_luma_ft(UWORD16 *pu2_src, 129*c83a76b0SSuyog Pawar WORD32 src_strd, 130*c83a76b0SSuyog Pawar WORD32 ht, 131*c83a76b0SSuyog Pawar WORD32 pad_size); 132*c83a76b0SSuyog Pawar 133*c83a76b0SSuyog Pawar typedef void ihevc_pad_right_chroma_ft(UWORD8 *pu1_src, 134*c83a76b0SSuyog Pawar WORD32 src_strd, 135*c83a76b0SSuyog Pawar WORD32 ht, 136*c83a76b0SSuyog Pawar WORD32 pad_size); 137*c83a76b0SSuyog Pawar 138*c83a76b0SSuyog Pawar typedef void ihevc_hbd_pad_right_chroma_ft(UWORD16 *pu2_src, 139*c83a76b0SSuyog Pawar WORD32 src_strd, 140*c83a76b0SSuyog Pawar WORD32 ht, 141*c83a76b0SSuyog Pawar WORD32 pad_size); 142*c83a76b0SSuyog Pawar 143*c83a76b0SSuyog Pawar /* C function declarations */ 144*c83a76b0SSuyog Pawar ihevc_pad_horz_luma_ft ihevc_pad_horz_luma; 145*c83a76b0SSuyog Pawar ihevc_pad_horz_chroma_ft ihevc_pad_horz_chroma; 146*c83a76b0SSuyog Pawar ihevc_pad_vert_ft ihevc_pad_vert; 147*c83a76b0SSuyog Pawar ihevc_pad_top_ft ihevc_pad_top; 148*c83a76b0SSuyog Pawar ihevc_pad_bottom_ft ihevc_pad_bottom; 149*c83a76b0SSuyog Pawar ihevc_pad_left_luma_ft ihevc_pad_left_luma; 150*c83a76b0SSuyog Pawar ihevc_pad_left_chroma_ft ihevc_pad_left_chroma; 151*c83a76b0SSuyog Pawar ihevc_pad_right_luma_ft ihevc_pad_right_luma; 152*c83a76b0SSuyog Pawar ihevc_pad_right_chroma_ft ihevc_pad_right_chroma; 153*c83a76b0SSuyog Pawar 154*c83a76b0SSuyog Pawar ihevc_hbd_pad_horz_luma_ft ihevc_hbd_pad_horz_luma; 155*c83a76b0SSuyog Pawar ihevc_hbd_pad_horz_chroma_ft ihevc_hbd_pad_horz_chroma; 156*c83a76b0SSuyog Pawar ihevc_hbd_pad_vert_ft ihevc_hbd_pad_vert; 157*c83a76b0SSuyog Pawar ihevc_hbd_pad_top_ft ihevc_hbd_pad_top; 158*c83a76b0SSuyog Pawar ihevc_hbd_pad_bottom_ft ihevc_hbd_pad_bottom; 159*c83a76b0SSuyog Pawar ihevc_hbd_pad_left_luma_ft ihevc_hbd_pad_left_luma; 160*c83a76b0SSuyog Pawar ihevc_hbd_pad_left_chroma_ft ihevc_hbd_pad_left_chroma; 161*c83a76b0SSuyog Pawar ihevc_hbd_pad_right_luma_ft ihevc_hbd_pad_right_luma; 162*c83a76b0SSuyog Pawar ihevc_hbd_pad_right_chroma_ft ihevc_hbd_pad_right_chroma; 163*c83a76b0SSuyog Pawar 164*c83a76b0SSuyog Pawar /* A9 Q function declarations */ 165*c83a76b0SSuyog Pawar ihevc_pad_horz_luma_ft ihevc_pad_horz_luma_a9q; 166*c83a76b0SSuyog Pawar ihevc_pad_horz_chroma_ft ihevc_pad_horz_chroma_a9q; 167*c83a76b0SSuyog Pawar ihevc_pad_vert_ft ihevc_pad_vert_a9q; 168*c83a76b0SSuyog Pawar ihevc_pad_top_ft ihevc_pad_top_a9q; 169*c83a76b0SSuyog Pawar ihevc_pad_bottom_ft ihevc_pad_bottom_a9q; 170*c83a76b0SSuyog Pawar ihevc_pad_left_luma_ft ihevc_pad_left_luma_a9q; 171*c83a76b0SSuyog Pawar ihevc_pad_left_chroma_ft ihevc_pad_left_chroma_a9q; 172*c83a76b0SSuyog Pawar ihevc_pad_right_luma_ft ihevc_pad_right_luma_a9q; 173*c83a76b0SSuyog Pawar ihevc_pad_right_chroma_ft ihevc_pad_right_chroma_a9q; 174*c83a76b0SSuyog Pawar 175*c83a76b0SSuyog Pawar /* A9 a function declarations */ 176*c83a76b0SSuyog Pawar ihevc_pad_horz_luma_ft ihevc_pad_horz_luma_a9a; 177*c83a76b0SSuyog Pawar ihevc_pad_horz_chroma_ft ihevc_pad_horz_chroma_a9a; 178*c83a76b0SSuyog Pawar ihevc_pad_vert_ft ihevc_pad_vert_a9a; 179*c83a76b0SSuyog Pawar ihevc_pad_top_ft ihevc_pad_top_a9a; 180*c83a76b0SSuyog Pawar ihevc_pad_bottom_ft ihevc_pad_bottom_a9a; 181*c83a76b0SSuyog Pawar ihevc_pad_left_luma_ft ihevc_pad_left_luma_a9a; 182*c83a76b0SSuyog Pawar ihevc_pad_left_chroma_ft ihevc_pad_left_chroma_a9a; 183*c83a76b0SSuyog Pawar ihevc_pad_right_luma_ft ihevc_pad_right_luma_a9a; 184*c83a76b0SSuyog Pawar ihevc_pad_right_chroma_ft ihevc_pad_right_chroma_a9a; 185*c83a76b0SSuyog Pawar 186*c83a76b0SSuyog Pawar /* NEONINTR function declarations */ 187*c83a76b0SSuyog Pawar ihevc_pad_horz_luma_ft ihevc_pad_horz_luma_neonintr; 188*c83a76b0SSuyog Pawar ihevc_pad_horz_chroma_ft ihevc_pad_horz_chroma_neonintr; 189*c83a76b0SSuyog Pawar ihevc_pad_vert_ft ihevc_pad_vert_neonintr; 190*c83a76b0SSuyog Pawar ihevc_pad_top_ft ihevc_pad_top_neonintr; 191*c83a76b0SSuyog Pawar ihevc_pad_bottom_ft ihevc_pad_bottom_neonintr; 192*c83a76b0SSuyog Pawar /*SSSE3 functions declarations */ 193*c83a76b0SSuyog Pawar ihevc_pad_left_luma_ft ihevc_pad_left_luma_ssse3; 194*c83a76b0SSuyog Pawar ihevc_pad_left_chroma_ft ihevc_pad_left_chroma_ssse3; 195*c83a76b0SSuyog Pawar ihevc_pad_right_luma_ft ihevc_pad_right_luma_ssse3; 196*c83a76b0SSuyog Pawar ihevc_pad_right_chroma_ft ihevc_pad_right_chroma_ssse3; 197*c83a76b0SSuyog Pawar 198*c83a76b0SSuyog Pawar /* armv8 function declarations */ 199*c83a76b0SSuyog Pawar ihevc_pad_horz_luma_ft ihevc_pad_horz_luma_av8; 200*c83a76b0SSuyog Pawar ihevc_pad_horz_chroma_ft ihevc_pad_horz_chroma_av8; 201*c83a76b0SSuyog Pawar ihevc_pad_vert_ft ihevc_pad_vert_av8; 202*c83a76b0SSuyog Pawar ihevc_pad_top_ft ihevc_pad_top_av8; 203*c83a76b0SSuyog Pawar ihevc_pad_bottom_ft ihevc_pad_bottom_av8; 204*c83a76b0SSuyog Pawar ihevc_pad_left_luma_ft ihevc_pad_left_luma_av8; 205*c83a76b0SSuyog Pawar ihevc_pad_left_chroma_ft ihevc_pad_left_chroma_av8; 206*c83a76b0SSuyog Pawar ihevc_pad_right_luma_ft ihevc_pad_right_luma_av8; 207*c83a76b0SSuyog Pawar ihevc_pad_right_chroma_ft ihevc_pad_right_chroma_av8; 208*c83a76b0SSuyog Pawar 209*c83a76b0SSuyog Pawar #endif /*_IHEVC_PADDING_H_*/ 210