• 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_inter_pred.h
23 *
24 * \brief
25 *    This file contains function prototypes of luma and chroma MC function
26 *    interfaces for a inter PU
27 *
28 * \date
29 *    18/09/2012
30 *
31 * \author
32 *    Ittiam
33 *
34 ******************************************************************************
35 */
36 
37 #ifndef _IHEVCE_INTER_PRED_H_
38 #define _IHEVCE_INTER_PRED_H_
39 
40 /*****************************************************************************/
41 /* Constant Macros                                                           */
42 /*****************************************************************************/
43 
44 /*****************************************************************************/
45 /* Function Macros                                                           */
46 /*****************************************************************************/
47 
48 /*****************************************************************************/
49 /* Typedefs                                                                  */
50 /*****************************************************************************/
51 
52 /*****************************************************************************/
53 /* Enums                                                                     */
54 /*****************************************************************************/
55 /* enum to get availability of nbr by ANDing with nbr_mask */
56 typedef enum TILE_NBR_MASK_E
57 {
58     TILE_TL_NBR = 0x10000000,
59     TILE_TOP_NBR = 0x01000000,
60     TILE_TR_NBR = 0x00100000,
61     TILE_LT_NBR = 0x00010000,
62     TILE_RT_NBR = 0x00001000,
63     TILE_BL_NBR = 0x00000100,
64     TILE_BOT_NBR = 0x00000010,
65     TILE_BR_NBR = 0x00000001
66 } TILE_NBR_MASK_E;
67 
68 /* enum to access an array of entries representing four directions */
69 typedef enum
70 {
71     E_TOP = 0,
72     E_LEFT = 1,
73     E_RIGHT = 2,
74     E_BOT = 3,
75 
76     E_FOUR_DIRECTIONS = 4
77 } IHEVCE_FOUR_DIRECTIONS_T;
78 
79 /*****************************************************************************/
80 /* Structure                                                                 */
81 /*****************************************************************************/
82 
83 /*****************************************************************************/
84 /* Extern Variable Declarations                                              */
85 /*****************************************************************************/
86 
87 extern WORD8 gai1_hevc_luma_filter_taps[4][NTAPS_LUMA];
88 extern WORD8 gai1_hevc_chroma_filter_taps[8][NTAPS_CHROMA];
89 
90 /*****************************************************************************/
91 /* Extern Function Declarations                                              */
92 /*****************************************************************************/
93 
94 IV_API_CALL_STATUS_T ihevce_luma_inter_pred_pu(
95     void *pv_inter_pred_ctxt,
96     pu_t *ps_pu,
97     void *pv_dst_buf,
98     WORD32 dst_stride,
99     WORD32 i4_flag_inter_pred_source);
100 
101 IV_API_CALL_STATUS_T ihevce_luma_inter_pred_pu_high_speed(
102     void *pv_inter_pred_ctxt,
103     pu_t *ps_pu,
104     UWORD8 **ppu1_dst_buf,
105     WORD32 *pi4_dst_stride,
106     func_selector_t *ps_func_selector);
107 
108 void ihevce_chroma_inter_pred_pu(
109     void *pv_inter_pred_ctxt, pu_t *ps_pu, UWORD8 *pu1_dst_buf, WORD32 dst_stride);
110 
111 #endif /* _IHEVCE_INTER_PRED_H_ */
112