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_chroma_itrans_recon.h
22 *
23 * @brief
24 *  Functions declarations for inverse transform and  reconstruction  of
25 * chroma interleaved data.
26 *
27 * @author
28 *  Ittiam
29 *
30 * @remarks
31 *  None
32 *
33 *******************************************************************************
34 */
35 
36 
37 #ifndef _IHEVC_CHROMA_ITRANS_RECON_H_
38 #define _IHEVC_CHROMA_ITRANS_RECON_H_
39 
40 typedef void ihevc_chroma_itrans_recon_4x4_ft(WORD16 *pi2_src,
41                                               WORD16 *pi2_tmp,
42                                               UWORD8 *pu1_pred,
43                                               UWORD8 *pu1_dst,
44                                               WORD32 src_strd,
45                                               WORD32 pred_strd,
46                                               WORD32 dst_strd,
47                                               WORD32 zero_cols,
48                                               WORD32 zero_rows);
49 typedef void ihevc_hbd_chroma_itrans_recon_4x4_ft(WORD16 *pi2_src,
50                                                   WORD16 *pi2_tmp,
51                                                   UWORD16 *pu2_pred,
52                                                   UWORD16 *pu2_dst,
53                                                   WORD32 src_strd,
54                                                   WORD32 pred_strd,
55                                                   WORD32 dst_strd,
56                                                   WORD32 zero_cols,
57                                                   WORD32 zero_rows,
58                                                   UWORD8 bit_depth);
59 typedef void ihevc_chroma_itrans_recon_8x8_ft(WORD16 *pi2_src,
60                                               WORD16 *pi2_tmp,
61                                               UWORD8 *pu1_pred,
62                                               UWORD8 *pu1_dst,
63                                               WORD32 src_strd,
64                                               WORD32 pred_strd,
65                                               WORD32 dst_strd,
66                                               WORD32 zero_cols,
67                                               WORD32 zero_rows);
68 typedef void ihevc_hbd_chroma_itrans_recon_8x8_ft(WORD16 *pi2_src,
69                                                   WORD16 *pi2_tmp,
70                                                   UWORD16 *pu2_pred,
71                                                   UWORD16 *pu2_dst,
72                                                   WORD32 src_strd,
73                                                   WORD32 pred_strd,
74                                                   WORD32 dst_strd,
75                                                   WORD32 zero_cols,
76                                                   WORD32 zero_rows,
77                                                   UWORD8 bit_depth);
78 typedef void ihevc_chroma_itrans_recon_16x16_ft(WORD16 *pi2_src,
79                                                 WORD16 *pi2_tmp,
80                                                 UWORD8 *pu1_pred,
81                                                 UWORD8 *pu1_dst,
82                                                 WORD32 src_strd,
83                                                 WORD32 pred_strd,
84                                                 WORD32 dst_strd,
85                                                 WORD32 zero_cols,
86                                                 WORD32 zero_rows);
87 typedef void ihevc_hbd_chroma_itrans_recon_16x16_ft(WORD16 *pi2_src,
88                                                     WORD16 *pi2_tmp,
89                                                     UWORD16 *pu2_pred,
90                                                     UWORD16 *pu2_dst,
91                                                     WORD32 src_strd,
92                                                     WORD32 pred_strd,
93                                                     WORD32 dst_strd,
94                                                     WORD32 zero_cols,
95                                                     WORD32 zero_rows,
96                                                     UWORD8 bit_depth);
97 
98 ihevc_chroma_itrans_recon_4x4_ft ihevc_chroma_itrans_recon_4x4;
99 ihevc_hbd_chroma_itrans_recon_4x4_ft ihevc_hbd_chroma_itrans_recon_4x4;
100 ihevc_chroma_itrans_recon_8x8_ft ihevc_chroma_itrans_recon_8x8;
101 ihevc_hbd_chroma_itrans_recon_8x8_ft ihevc_hbd_chroma_itrans_recon_8x8;
102 ihevc_chroma_itrans_recon_16x16_ft ihevc_chroma_itrans_recon_16x16;
103 ihevc_hbd_chroma_itrans_recon_16x16_ft ihevc_hbd_chroma_itrans_recon_16x16;
104 
105 /* A9 Q Function Declarations */
106 ihevc_chroma_itrans_recon_4x4_ft ihevc_chroma_itrans_recon_4x4_a9q;
107 ihevc_chroma_itrans_recon_8x8_ft ihevc_chroma_itrans_recon_8x8_a9q;
108 ihevc_chroma_itrans_recon_16x16_ft ihevc_chroma_itrans_recon_16x16_a9q;
109 
110 ihevc_hbd_chroma_itrans_recon_4x4_ft ihevc_hbd_chroma_itrans_recon_4x4_sse42;
111 ihevc_hbd_chroma_itrans_recon_8x8_ft ihevc_hbd_chroma_itrans_recon_8x8_sse42;
112 ihevc_hbd_chroma_itrans_recon_16x16_ft ihevc_hbd_chroma_itrans_recon_16x16_sse42;
113 
114 #endif /*_IHEVC_CHROMA_ITRANS_RECON_H_*/
115