xref: /aosp_15_r20/external/libavc/encoder/svc/isvce_ibl_private_defs.h (revision 495ae853bb871d1e5a258cb02c2cc13cde8ddb9a)
1 /******************************************************************************
2  *
3  * Copyright (C) 2022 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 *  isvce_intra_pred_private_defs.h
25 *
26 * @brief
27 *  Contains datatype and macro definitions used exclusively in
28 *  residual prediction
29 *
30 *******************************************************************************
31 */
32 
33 #ifndef _ISVCE_IBL_PRIVATE_DEFS_H_
34 #define _ISVCE_IBL_PRIVATE_DEFS_H_
35 
36 #include "ih264_typedefs.h"
37 #include "isvc_defs.h"
38 #include "isvc_structs.h"
39 #include "isvce_structs.h"
40 #include "isvc_intra_resample.h"
41 
42 /* Structs */
43 typedef struct intra_pred_mb_state_t
44 {
45     coordinates_t s_offsets;
46 
47     coordinates_t s_ref_array_dims;
48 
49     WORD32 *pi4_ref_array_positions_x;
50 
51     WORD32 *pi4_ref_array_positions_y;
52 
53     coordinates_t *ps_ref_array_phases;
54 
55     coordinates_t s_min_pos;
56 
57     coordinates_t s_max_pos;
58 
59 } intra_pred_mb_state_t;
60 
61 typedef struct intra_pred_layer_state_t
62 {
63     layer_resampler_props_t *ps_luma_props;
64 
65     layer_resampler_props_t *ps_chroma_props;
66 
67     intra_pred_mb_state_t *ps_luma_mb_states;
68 
69     intra_pred_mb_state_t *ps_chroma_mb_states;
70 
71     WORD8 *pi1_mb_mode;
72 
73     WORD32 i4_mb_mode_stride;
74 
75     /* buffer to store the reference
76        layer data before intra sampling */
77     UWORD8 *pu1_refarray_buffer;
78 
79     UWORD8 *pu1_refarray_cb;
80 
81     UWORD8 *pu1_refarray_cr;
82 
83     WORD32 *pi4_temp_interpolation_buffer;
84 
85 } intra_pred_layer_state_t;
86 
87 typedef struct intra_pred_state_t
88 {
89     /* Array of size numSpatialLayers */
90     intra_pred_layer_state_t *ps_layer_state;
91 
92 } intra_pred_state_t;
93 
94 #endif
95