• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_deblk_edge_filters.h
25 *
26 * @brief
27 *  This file contains declarations of functions used for deblocking
28 *
29 * @author
30 *  ittiam
31 *
32 * @remarks
33 *  none
34 *
35 *******************************************************************************
36 */
37 
38 #ifndef _IH264_DEBLK_EDGE_FILTERS_H_
39 #define _IH264_DEBLK_EDGE_FILTERS_H_
40 
41 /*****************************************************************************/
42 /* Extern Function Declarations                                              */
43 /*****************************************************************************/
44 
45 typedef void ih264_deblk_edge_bslt4_ft(UWORD8 *pu1_src,
46                                        WORD32 src_strd,
47                                        WORD32 alpha,
48                                        WORD32 beta,
49                                        UWORD32 u4_bs,
50                                        const UWORD8 *pu1_cliptab );
51 
52 typedef void ih264_deblk_edge_bs4_ft(UWORD8 *pu1_src,
53                                      WORD32 src_strd,
54                                      WORD32 alpha,
55                                      WORD32 beta );
56 
57 typedef void ih264_deblk_chroma_edge_bslt4_ft(UWORD8 *pu1_src,
58                                               WORD32 src_strd,
59                                               WORD32 alpha_cb,
60                                               WORD32 beta_cb,
61                                               WORD32 alpha_cr,
62                                               WORD32 beta_cr,
63                                               UWORD32 u4_bs,
64                                               const UWORD8 *pu1_cliptab_cb,
65                                               const UWORD8 *pu1_cliptab_cr);
66 
67 typedef void ih264_deblk_chroma_edge_bs4_ft(UWORD8 *pu1_src,
68                                             WORD32 src_strd,
69                                             WORD32 alpha_cb,
70                                             WORD32 beta_cb,
71                                             WORD32 alpha_cr,
72                                             WORD32 beta_cr);
73 
74 /* C Declarations */
75 ih264_deblk_edge_bs4_ft ih264_deblk_luma_horz_bs4;
76 ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4;
77 ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_mbaff;
78 ih264_deblk_edge_bs4_ft ih264_deblk_chroma_horz_bs4_bp;
79 ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_bp;
80 ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_bp;
81 ih264_deblk_edge_bslt4_ft ih264_deblk_luma_horz_bslt4;
82 ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4;
83 ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_mbaff;
84 ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_bp;
85 ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_bp;
86 ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_bp;
87 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4;
88 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4;
89 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff;
90 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_mbaff;
91 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4;
92 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4;
93 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff;
94 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_mbaff;
95 
96 /* A9 Declarations */
97 ih264_deblk_edge_bs4_ft ih264_deblk_luma_horz_bs4_a9;
98 ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_a9;
99 ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_mbaff_a9;
100 ih264_deblk_edge_bs4_ft ih264_deblk_chroma_horz_bs4_bp_a9;
101 ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_bp_a9;
102 ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_bp_a9;
103 ih264_deblk_edge_bslt4_ft ih264_deblk_luma_horz_bslt4_a9;
104 ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_a9;
105 ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_mbaff_a9;
106 ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_bp_a9;
107 ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_bp_a9;
108 ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_bp_a9;
109 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_a9;
110 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_a9;
111 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_a9;
112 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_mbaff_a9;
113 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_a9;
114 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_a9;
115 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_a9;
116 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_mbaff_a9;
117 
118 /* AV8 Declarations */
119 ih264_deblk_edge_bs4_ft ih264_deblk_luma_horz_bs4_av8;
120 ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_av8;
121 ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_mbaff_av8;
122 ih264_deblk_edge_bs4_ft ih264_deblk_chroma_horz_bs4_bp_av8;
123 ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_bp_av8;
124 ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_bp_av8;
125 ih264_deblk_edge_bslt4_ft ih264_deblk_luma_horz_bslt4_av8;
126 ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_av8;
127 ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_mbaff_av8;
128 ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_bp_av8;
129 ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_bp_av8;
130 ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_bp_av8;
131 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_av8;
132 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_av8;
133 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_av8;
134 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_mbaff_av8;
135 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_av8;
136 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_av8;
137 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_av8;
138 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_mbaff_av8;
139 
140 /* SSSE3 Declarations */
141 ih264_deblk_edge_bs4_ft ih264_deblk_luma_horz_bs4_ssse3;
142 ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_ssse3;
143 ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_mbaff_ssse3;
144 ih264_deblk_edge_bs4_ft ih264_deblk_chroma_horz_bs4_bp_ssse3;
145 ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_bp_ssse3;
146 ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_bp_ssse3;
147 ih264_deblk_edge_bslt4_ft ih264_deblk_luma_horz_bslt4_ssse3;
148 ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_ssse3;
149 ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_mbaff_ssse3;
150 ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_bp_ssse3;
151 ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_bp_ssse3;
152 ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_bp_ssse3;
153 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_ssse3;
154 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_ssse3;
155 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_ssse3;
156 ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_mbaff_ssse3;
157 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_ssse3;
158 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_ssse3;
159 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_ssse3;
160 ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_mbaff_ssse3;
161 
162 #endif /* _IH264_DEBLK_EDGE_FILTERS_H_ */
163