blob: aaf9797ad6646b09119321715553bb0834d7a9bc [file] [log] [blame]
Harish Mahendrakar0d8951c2014-05-16 10:31:13 -07001/******************************************************************************
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_weighted_pred.h
22*
23* @brief
24* Function declarations used for buffer management
25*
26* @author
27* Srinivas T
28*
29* @remarks
30* None
31*
32*******************************************************************************
33*/
34
35#ifndef IHEVC_WEIGHTED_PRED_H_
36#define IHEVC_WEIGHTED_PRED_H_
37
38typedef void ihevc_weighted_pred_uni_ft(WORD16 *pi2_src,
39 UWORD8 *pu1_dst,
40 WORD32 src_strd,
41 WORD32 dst_strd,
42 WORD32 wgt0,
43 WORD32 off0,
44 WORD32 shift,
45 WORD32 lvl_shift,
46 WORD32 ht,
47 WORD32 wd);
48
49typedef void ihevc_weighted_pred_chroma_uni_ft(WORD16 *pi2_src,
50 UWORD8 *pu1_dst,
51 WORD32 src_strd,
52 WORD32 dst_strd,
53 WORD32 wgt0_cb,
54 WORD32 wgt0_cr,
55 WORD32 off0_cb,
56 WORD32 off0_cr,
57 WORD32 shift,
58 WORD32 lvl_shift,
59 WORD32 ht,
60 WORD32 wd);
61
62typedef void ihevc_weighted_pred_bi_ft(WORD16 *pi2_src1,
63 WORD16 *pi2_src2,
64 UWORD8 *pu1_dst,
65 WORD32 src_strd1,
66 WORD32 src_strd2,
67 WORD32 dst_strd,
68 WORD32 wgt0,
69 WORD32 off0,
70 WORD32 wgt1,
71 WORD32 off1,
72 WORD32 shift,
73 WORD32 lvl_shift1,
74 WORD32 lvl_shift2,
75 WORD32 ht,
76 WORD32 wd);
77
78typedef void ihevc_weighted_pred_chroma_bi_ft(WORD16 *pi2_src1,
79 WORD16 *pi2_src2,
80 UWORD8 *pu1_dst,
81 WORD32 src_strd1,
82 WORD32 src_strd2,
83 WORD32 dst_strd,
84 WORD32 wgt0_cb,
85 WORD32 wgt0_cr,
86 WORD32 off0_cb,
87 WORD32 off0_cr,
88 WORD32 wgt1_cb,
89 WORD32 wgt1_cr,
90 WORD32 off1_cb,
91 WORD32 off1_cr,
92 WORD32 shift,
93 WORD32 lvl_shift1,
94 WORD32 lvl_shift2,
95 WORD32 ht,
96 WORD32 wd);
97
98typedef void ihevc_weighted_pred_bi_default_ft(WORD16 *pi2_src1,
99 WORD16 *pi2_src2,
100 UWORD8 *pu1_dst,
101 WORD32 src_strd1,
102 WORD32 src_strd2,
103 WORD32 dst_strd,
104 WORD32 lvl_shift1,
105 WORD32 lvl_shift2,
106 WORD32 ht,
107 WORD32 wd);
108
109typedef void ihevc_weighted_pred_chroma_bi_default_ft(WORD16 *pi2_src1,
110 WORD16 *pi2_src2,
111 UWORD8 *pu1_dst,
112 WORD32 src_strd1,
113 WORD32 src_strd2,
114 WORD32 dst_strd,
115 WORD32 lvl_shift1,
116 WORD32 lvl_shift2,
117 WORD32 ht,
118 WORD32 wd);
119/* C function declarations */
120ihevc_weighted_pred_uni_ft ihevc_weighted_pred_uni;
121ihevc_weighted_pred_chroma_uni_ft ihevc_weighted_pred_chroma_uni;
122ihevc_weighted_pred_bi_ft ihevc_weighted_pred_bi;
123ihevc_weighted_pred_chroma_bi_ft ihevc_weighted_pred_chroma_bi;
124ihevc_weighted_pred_bi_default_ft ihevc_weighted_pred_bi_default;
125ihevc_weighted_pred_chroma_bi_default_ft ihevc_weighted_pred_chroma_bi_default;
126
127/* A9 Q function declarations */
128ihevc_weighted_pred_uni_ft ihevc_weighted_pred_uni_a9q;
129ihevc_weighted_pred_chroma_uni_ft ihevc_weighted_pred_chroma_uni_a9q;
130ihevc_weighted_pred_bi_ft ihevc_weighted_pred_bi_a9q;
131ihevc_weighted_pred_chroma_bi_ft ihevc_weighted_pred_chroma_bi_a9q;
132ihevc_weighted_pred_bi_default_ft ihevc_weighted_pred_bi_default_a9q;
133ihevc_weighted_pred_chroma_bi_default_ft ihevc_weighted_pred_chroma_bi_default_a9q;
134
135/* A9 A function declarations */
136ihevc_weighted_pred_uni_ft ihevc_weighted_pred_uni_a9a;
137ihevc_weighted_pred_chroma_uni_ft ihevc_weighted_pred_chroma_uni_a9a;
138ihevc_weighted_pred_bi_ft ihevc_weighted_pred_bi_a9a;
139ihevc_weighted_pred_chroma_bi_ft ihevc_weighted_pred_chroma_bi_a9a;
140ihevc_weighted_pred_bi_default_ft ihevc_weighted_pred_bi_default_a9a;
141ihevc_weighted_pred_chroma_bi_default_ft ihevc_weighted_pred_chroma_bi_default_a9a;
142
143/* NEONINTR function declarations */
144ihevc_weighted_pred_uni_ft ihevc_weighted_pred_uni_neonintr;
145ihevc_weighted_pred_chroma_uni_ft ihevc_weighted_pred_chroma_uni_neonintr;
146ihevc_weighted_pred_bi_ft ihevc_weighted_pred_bi_neonintr;
147ihevc_weighted_pred_chroma_bi_ft ihevc_weighted_pred_chroma_bi_neonintr;
148ihevc_weighted_pred_bi_default_ft ihevc_weighted_pred_bi_default_neonintr;
149ihevc_weighted_pred_chroma_bi_default_ft ihevc_weighted_pred_chroma_bi_default_neonintr;
150/* SSSE3 function declarations */
151ihevc_weighted_pred_uni_ft ihevc_weighted_pred_uni_ssse3;
152ihevc_weighted_pred_chroma_uni_ft ihevc_weighted_pred_chroma_uni_ssse3;
153ihevc_weighted_pred_bi_ft ihevc_weighted_pred_bi_ssse3;
154ihevc_weighted_pred_chroma_bi_ft ihevc_weighted_pred_chroma_bi_ssse3;
155ihevc_weighted_pred_bi_default_ft ihevc_weighted_pred_bi_default_ssse3;
156ihevc_weighted_pred_chroma_bi_default_ft ihevc_weighted_pred_chroma_bi_default_ssse3;
157
158/* SSE42 function declarations */
159ihevc_weighted_pred_uni_ft ihevc_weighted_pred_uni_sse42;
160ihevc_weighted_pred_chroma_uni_ft ihevc_weighted_pred_chroma_uni_sse42;
161ihevc_weighted_pred_bi_ft ihevc_weighted_pred_bi_sse42;
162ihevc_weighted_pred_chroma_bi_ft ihevc_weighted_pred_chroma_bi_sse42;
163ihevc_weighted_pred_bi_default_ft ihevc_weighted_pred_bi_default_sse42;
164ihevc_weighted_pred_chroma_bi_default_ft ihevc_weighted_pred_chroma_bi_default_sse42;
165
166/* AVX2 function declarations */
167ihevc_weighted_pred_bi_default_ft ihevc_weighted_pred_bi_default_avx2;
168ihevc_weighted_pred_chroma_bi_default_ft ihevc_weighted_pred_chroma_bi_default_avx2;
169
170/* armv8 function declarations */
171ihevc_weighted_pred_uni_ft ihevc_weighted_pred_uni_av8;
172ihevc_weighted_pred_chroma_uni_ft ihevc_weighted_pred_chroma_uni_av8;
173ihevc_weighted_pred_bi_ft ihevc_weighted_pred_bi_av8;
174ihevc_weighted_pred_chroma_bi_ft ihevc_weighted_pred_chroma_bi_av8;
175ihevc_weighted_pred_bi_default_ft ihevc_weighted_pred_bi_default_av8;
176ihevc_weighted_pred_chroma_bi_default_ft ihevc_weighted_pred_chroma_bi_default_av8;
177
178#endif /* IHEVC_WEIGHTED_PRED_H_ */