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_deblk.h
22 *
23 * @brief
24 *  Declarations for the fucntions defined in  ihevc_deblk.c
25 *
26 * @author
27 *  Srinivas T
28 *
29 * @remarks
30 *  None
31 *
32 *******************************************************************************
33 */
34 #ifndef _IHEVC_DEBLK_H_
35 #define _IHEVC_DEBLK_H_
36 
37 /*****************************************************************************/
38 /* Function Declarations                                                     */
39 /*****************************************************************************/
40 
41 typedef void ihevc_deblk_luma_vert_ft(
42                 UWORD8 *pu1_src,
43                 WORD32 src_strd,
44                 WORD32 bs,
45                 WORD32 quant_param_p,
46                 WORD32 quant_param_q,
47                 WORD32 beta_offset_div2,
48                 WORD32 tc_offset_div2,
49                 WORD32 filter_flag_p,
50                 WORD32 filter_flag_q);
51 
52 typedef void ihevc_deblk_luma_horz_ft(
53                 UWORD8 *pu1_src,
54                 WORD32 src_strd,
55                 WORD32 bs,
56                 WORD32 quant_param_p,
57                 WORD32 quant_param_q,
58                 WORD32 beta_offset_div2,
59                 WORD32 tc_offset_div2,
60                 WORD32 filter_flag_p,
61                 WORD32 filter_flag_q);
62 
63 typedef void ihevc_deblk_chroma_vert_ft(
64                 UWORD8 *pu1_src,
65                 WORD32 src_strd,
66                 WORD32 quant_param_p,
67                 WORD32 quant_param_q,
68                 WORD32 qp_offset_u,
69                 WORD32 qp_offset_v,
70                 WORD32 tc_offset_div2,
71                 WORD32 filter_flag_p,
72                 WORD32 filter_flag_q);
73 
74 typedef void ihevc_deblk_chroma_horz_ft(
75                 UWORD8 *pu1_src,
76                 WORD32 src_strd,
77                 WORD32 quant_param_p,
78                 WORD32 quant_param_q,
79                 WORD32 qp_offset_u,
80                 WORD32 qp_offset_v,
81                 WORD32 tc_offset_div2,
82                 WORD32 filter_flag_p,
83                 WORD32 filter_flag_q);
84 
85 typedef void ihevc_hbd_deblk_luma_vert_ft(
86                 UWORD16 *pu2_src,
87                 WORD32 src_strd,
88                 WORD32 bs,
89                 WORD32 quant_param_p,
90                 WORD32 quant_param_q,
91                 WORD32 beta_offset_div2,
92                 WORD32 tc_offset_div2,
93                 WORD32 filter_flag_p,
94                 WORD32 filter_flag_q,
95                 UWORD8 bit_depth);
96 
97 typedef void ihevc_hbd_deblk_luma_horz_ft(
98                 UWORD16 *pu2_src,
99                 WORD32 src_strd,
100                 WORD32 bs,
101                 WORD32 quant_param_p,
102                 WORD32 quant_param_q,
103                 WORD32 beta_offset_div2,
104                 WORD32 tc_offset_div2,
105                 WORD32 filter_flag_p,
106                 WORD32 filter_flag_q,
107                 UWORD8 bit_depth);
108 
109 typedef void ihevc_hbd_deblk_chroma_vert_ft(
110                 UWORD16 *pu2_src,
111                 WORD32 src_strd,
112                 WORD32 quant_param_p,
113                 WORD32 quant_param_q,
114                 WORD32 qp_offset_u,
115                 WORD32 qp_offset_v,
116                 WORD32 tc_offset_div2,
117                 WORD32 filter_flag_p,
118                 WORD32 filter_flag_q,
119                 UWORD8 bit_depth);
120 
121 typedef void ihevc_hbd_deblk_chroma_horz_ft(
122                 UWORD16 *pu2_src,
123                 WORD32 src_strd,
124                 WORD32 quant_param_p,
125                 WORD32 quant_param_q,
126                 WORD32 qp_offset_u,
127                 WORD32 qp_offset_v,
128                 WORD32 tc_offset_div2,
129                 WORD32 filter_flag_p,
130                 WORD32 filter_flag_q,
131                 UWORD8 bit_depth);
132 
133 ihevc_deblk_luma_vert_ft ihevc_deblk_luma_vert;
134 ihevc_deblk_luma_horz_ft ihevc_deblk_luma_horz;
135 ihevc_deblk_chroma_vert_ft ihevc_deblk_chroma_vert;
136 ihevc_deblk_chroma_horz_ft ihevc_deblk_chroma_horz;
137 ihevc_deblk_chroma_vert_ft ihevc_deblk_422chroma_vert;
138 ihevc_deblk_chroma_horz_ft ihevc_deblk_422chroma_horz;
139 
140 ihevc_deblk_luma_vert_ft ihevc_deblk_luma_vert_a9q;
141 ihevc_deblk_luma_horz_ft ihevc_deblk_luma_horz_a9q;
142 ihevc_deblk_chroma_vert_ft ihevc_deblk_chroma_vert_a9q;
143 ihevc_deblk_chroma_horz_ft ihevc_deblk_chroma_horz_a9q;
144 
145 ihevc_deblk_luma_vert_ft ihevc_deblk_luma_vert_a9a;
146 ihevc_deblk_luma_horz_ft ihevc_deblk_luma_horz_a9a;
147 ihevc_deblk_chroma_vert_ft ihevc_deblk_chroma_vert_a9a;
148 ihevc_deblk_chroma_horz_ft ihevc_deblk_chroma_horz_a9a;
149 
150 ihevc_deblk_luma_vert_ft ihevc_deblk_luma_vert_neonintr;
151 ihevc_deblk_luma_horz_ft ihevc_deblk_luma_horz_neonintr;
152 ihevc_deblk_chroma_vert_ft ihevc_deblk_chroma_vert_neonintr;
153 ihevc_deblk_chroma_horz_ft ihevc_deblk_chroma_horz_neonintr;
154 
155 ihevc_deblk_luma_vert_ft ihevc_deblk_luma_vert_ssse3;
156 ihevc_deblk_luma_horz_ft ihevc_deblk_luma_horz_ssse3;
157 ihevc_deblk_chroma_vert_ft ihevc_deblk_chroma_vert_ssse3;
158 ihevc_deblk_chroma_horz_ft ihevc_deblk_chroma_horz_ssse3;
159 ihevc_deblk_chroma_vert_ft ihevc_deblk_422chroma_vert_ssse3;
160 ihevc_deblk_chroma_horz_ft ihevc_deblk_422chroma_horz_ssse3;
161 
162 ihevc_hbd_deblk_luma_vert_ft ihevc_hbd_deblk_luma_vert;
163 ihevc_hbd_deblk_luma_horz_ft ihevc_hbd_deblk_luma_horz;
164 ihevc_hbd_deblk_chroma_vert_ft ihevc_hbd_deblk_chroma_vert;
165 ihevc_hbd_deblk_chroma_horz_ft ihevc_hbd_deblk_chroma_horz;
166 ihevc_hbd_deblk_chroma_vert_ft ihevc_hbd_deblk_422chroma_vert;
167 ihevc_hbd_deblk_chroma_horz_ft ihevc_hbd_deblk_422chroma_horz;
168 
169 ihevc_hbd_deblk_luma_vert_ft ihevc_hbd_deblk_luma_vert_sse42;
170 ihevc_hbd_deblk_luma_horz_ft ihevc_hbd_deblk_luma_horz_sse42;
171 ihevc_hbd_deblk_chroma_vert_ft ihevc_hbd_deblk_chroma_vert_sse42;
172 ihevc_hbd_deblk_chroma_horz_ft ihevc_hbd_deblk_chroma_horz_sse42;
173 ihevc_hbd_deblk_chroma_vert_ft ihevc_hbd_deblk_422chroma_vert_sse42;
174 ihevc_hbd_deblk_chroma_horz_ft ihevc_hbd_deblk_422chroma_horz_sse42;
175 
176 ihevc_deblk_luma_vert_ft ihevc_deblk_luma_vert_av8;
177 ihevc_deblk_luma_horz_ft ihevc_deblk_luma_horz_av8;
178 ihevc_deblk_chroma_vert_ft ihevc_deblk_chroma_vert_av8;
179 ihevc_deblk_chroma_horz_ft ihevc_deblk_chroma_horz_av8;
180 
181 #endif /*_IHEVC_DEBLK_H_*/
182