• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /******************************************************************************
2  *
3  * Copyright (C) 2018 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 * \file ihevce_enc_subpel_gen.h
23 *
24 * \brief
25 *    This file contains interface defination of Subpel Plane generation
26 *    function
27 *
28 * \date
29 *    29/12/2012
30 *
31 * \author
32 *    Ittiam
33 *
34 ******************************************************************************
35 */
36 
37 #ifndef _IHEVCE_ENC_SUBPEL_GEN_H_
38 #define _IHEVCE_ENC_SUBPEL_GEN_H_
39 
40 /*****************************************************************************/
41 /* Constant Macros                                                           */
42 /*****************************************************************************/
43 
44 /*****************************************************************************/
45 /* Function Macros                                                           */
46 /*****************************************************************************/
47 
48 /*****************************************************************************/
49 /* Typedefs                                                                  */
50 /*****************************************************************************/
51 
52 /*****************************************************************************/
53 /* Enums                                                                     */
54 /*****************************************************************************/
55 
56 /*****************************************************************************/
57 /* Structure                                                                 */
58 /*****************************************************************************/
59 
60 /*****************************************************************************/
61 /* Extern Variable Declarations                                              */
62 /*****************************************************************************/
63 /*****************************************************************************/
64 /* Extern Function Declarations                                              */
65 /*****************************************************************************/
66 
67 void ihevce_subpel_padding(
68     UWORD8 *pu1_dst,
69     WORD32 stride,
70     WORD32 tot_wd,
71     WORD32 tot_ht,
72     WORD32 pad_subpel_x,
73     WORD32 pad_subpel_y,
74     WORD32 ctb_ctr,
75     WORD32 vert_ctr,
76     frm_ctb_ctxt_t *ps_frm_ctb_prms,
77     func_selector_t *ps_func_selector);
78 
79 void ihevce_pad_interp_recon_ctb(
80     pad_interp_recon_frm_t *ps_pad_interp_recon,
81     WORD32 ctb_ctr,
82     WORD32 vert_ctr,
83     WORD32 quality_preset,
84     frm_ctb_ctxt_t *ps_frm_ctb_prms,
85     WORD16 *pi2_hxhy_interm,
86     WORD32 i4_bitrate_instance,
87     func_selector_t *ps_func_selector);
88 
89 void ihevce_recon_padding(
90     pad_interp_recon_frm_t *ps_pad_interp_recon,
91     WORD32 ctb_ctr,
92     WORD32 vert_ctr,
93     frm_ctb_ctxt_t *ps_frm_ctb_prms,
94     func_selector_t *ps_func_selector);
95 
96 void ihevce_pad_interp_recon_src_ctb(
97     pad_interp_recon_frm_t *ps_pad_interp_recon,
98     WORD32 ctb_ctr,
99     WORD32 vert_ctr,
100     frm_ctb_ctxt_t *ps_frm_ctb_prms,
101     WORD32 i4_bitrate_instance_id,
102     func_selector_t *ps_func_selector,
103     WORD32 is_chroma_needs_padding);
104 
105 #endif /* _IHEVCE_ENC_SUBPEL_GEN_H_ */
106