xref: /aosp_15_r20/external/libavc/decoder/svc/isvcd_process_epslice.h (revision 495ae853bb871d1e5a258cb02c2cc13cde8ddb9a)
1*495ae853SAndroid Build Coastguard Worker /******************************************************************************
2*495ae853SAndroid Build Coastguard Worker  *
3*495ae853SAndroid Build Coastguard Worker  * Copyright (C) 2022 The Android Open Source Project
4*495ae853SAndroid Build Coastguard Worker  *
5*495ae853SAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
6*495ae853SAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
7*495ae853SAndroid Build Coastguard Worker  * You may obtain a copy of the License at:
8*495ae853SAndroid Build Coastguard Worker  *
9*495ae853SAndroid Build Coastguard Worker  * http://www.apache.org/licenses/LICENSE-2.0
10*495ae853SAndroid Build Coastguard Worker  *
11*495ae853SAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
12*495ae853SAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
13*495ae853SAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*495ae853SAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
15*495ae853SAndroid Build Coastguard Worker  * limitations under the License.
16*495ae853SAndroid Build Coastguard Worker  *
17*495ae853SAndroid Build Coastguard Worker  *****************************************************************************
18*495ae853SAndroid Build Coastguard Worker  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19*495ae853SAndroid Build Coastguard Worker  */
20*495ae853SAndroid Build Coastguard Worker /**
21*495ae853SAndroid Build Coastguard Worker  *******************************************************************************
22*495ae853SAndroid Build Coastguard Worker  * @file
23*495ae853SAndroid Build Coastguard Worker  *  isvcd_process_epslice.h
24*495ae853SAndroid Build Coastguard Worker  *
25*495ae853SAndroid Build Coastguard Worker  * @brief
26*495ae853SAndroid Build Coastguard Worker  *  Contains declarations of routines that decode an EP slice type
27*495ae853SAndroid Build Coastguard Worker  *
28*495ae853SAndroid Build Coastguard Worker  * @author
29*495ae853SAndroid Build Coastguard Worker  *  Kishore
30*495ae853SAndroid Build Coastguard Worker  *
31*495ae853SAndroid Build Coastguard Worker  * @remarks
32*495ae853SAndroid Build Coastguard Worker  *  None
33*495ae853SAndroid Build Coastguard Worker  *
34*495ae853SAndroid Build Coastguard Worker  *******************************************************************************
35*495ae853SAndroid Build Coastguard Worker  */
36*495ae853SAndroid Build Coastguard Worker 
37*495ae853SAndroid Build Coastguard Worker #ifndef _ISVCD_PROCESS_EPSLICE_H_
38*495ae853SAndroid Build Coastguard Worker #define _ISVCD_PROCESS_EPSLICE_H_
39*495ae853SAndroid Build Coastguard Worker 
40*495ae853SAndroid Build Coastguard Worker #include "ih264_typedefs.h"
41*495ae853SAndroid Build Coastguard Worker #include "ih264_macros.h"
42*495ae853SAndroid Build Coastguard Worker #include "ih264_platform_macros.h"
43*495ae853SAndroid Build Coastguard Worker #include "isvcd_structs.h"
44*495ae853SAndroid Build Coastguard Worker 
45*495ae853SAndroid Build Coastguard Worker WORD32 isvcd_parse_epslice(svc_dec_lyr_struct_t *ps_svc_lyr_dec, UWORD16 u2_first_mb_in_slice);
46*495ae853SAndroid Build Coastguard Worker 
47*495ae853SAndroid Build Coastguard Worker WORD32 isvcd_parse_pmb_cabac(svc_dec_lyr_struct_t *ps_svc_lyr_dec, dec_mb_info_t *ps_cur_mb_info,
48*495ae853SAndroid Build Coastguard Worker                              dec_svc_mb_info_t *ps_svc_cur_mb_info, UWORD8 u1_mb_num,
49*495ae853SAndroid Build Coastguard Worker                              UWORD8 u1_num_mbsNby2);
50*495ae853SAndroid Build Coastguard Worker 
51*495ae853SAndroid Build Coastguard Worker WORD32 isvcd_parse_pmb_cavlc(svc_dec_lyr_struct_t *ps_svc_lyr_dec, dec_mb_info_t *ps_cur_mb_info,
52*495ae853SAndroid Build Coastguard Worker                              dec_svc_mb_info_t *ps_svc_cur_mb_info, UWORD8 u1_mb_num,
53*495ae853SAndroid Build Coastguard Worker                              UWORD8 u1_num_mbsNby2);
54*495ae853SAndroid Build Coastguard Worker WORD32 isvcd_process_ibl_mb(svc_dec_lyr_struct_t *ps_svc_lyr_dec, dec_mb_info_t *ps_cur_mb_info,
55*495ae853SAndroid Build Coastguard Worker                             UWORD8 u1_mb_num, UWORD8 u1_inter_intra_mode);
56*495ae853SAndroid Build Coastguard Worker 
57*495ae853SAndroid Build Coastguard Worker WORD32 isvcd_process_residual_resample_mb(svc_dec_lyr_struct_t *ps_svc_lyr_dec,
58*495ae853SAndroid Build Coastguard Worker                                           dec_mb_info_t *ps_cur_mb_info);
59*495ae853SAndroid Build Coastguard Worker 
60*495ae853SAndroid Build Coastguard Worker WORD32 isvcd_process_inter_mb_no_rsd_pred_non_target(svc_dec_lyr_struct_t *ps_svc_lyr_dec,
61*495ae853SAndroid Build Coastguard Worker                                                      dec_mb_info_t *ps_cur_mb_info,
62*495ae853SAndroid Build Coastguard Worker                                                      UWORD8 u1_inference_mode);
63*495ae853SAndroid Build Coastguard Worker 
64*495ae853SAndroid Build Coastguard Worker WORD32 isvcd_process_inter_mb_rsd_pred_non_target(svc_dec_lyr_struct_t *ps_svc_lyr_dec,
65*495ae853SAndroid Build Coastguard Worker                                                   dec_mb_info_t *ps_cur_mb_info,
66*495ae853SAndroid Build Coastguard Worker                                                   UWORD8 u1_inference_mode,
67*495ae853SAndroid Build Coastguard Worker                                                   UWORD16 *pu2_res_luma_csbp);
68*495ae853SAndroid Build Coastguard Worker 
69*495ae853SAndroid Build Coastguard Worker WORD32 isvcd_process_inter_mb_rsd_pred_target_lyr(svc_dec_lyr_struct_t *ps_svc_lyr_dec,
70*495ae853SAndroid Build Coastguard Worker                                                   dec_mb_info_t *ps_cur_mb_info, UWORD8 u1_mb_num,
71*495ae853SAndroid Build Coastguard Worker                                                   UWORD8 u1_inference_mode,
72*495ae853SAndroid Build Coastguard Worker                                                   UWORD16 *pu2_res_luma_csbp);
73*495ae853SAndroid Build Coastguard Worker 
74*495ae853SAndroid Build Coastguard Worker WORD32 isvcd_mv_pred_ref_tfr_nby2_epmb(dec_struct_t *ps_dec, UWORD8 u1_num_mbs,
75*495ae853SAndroid Build Coastguard Worker                                        UWORD8 u1_num_mbsNby2);
76*495ae853SAndroid Build Coastguard Worker 
77*495ae853SAndroid Build Coastguard Worker WORD32 isvcd_decode_recon_tfr_nmb_non_base_lyr(svc_dec_lyr_struct_t *ps_svc_lyr_dec,
78*495ae853SAndroid Build Coastguard Worker                                                UWORD8 u1_mb_idx, UWORD8 u1_num_mbs,
79*495ae853SAndroid Build Coastguard Worker                                                UWORD8 u1_num_mbs_next, UWORD8 u1_tfr_n_mb,
80*495ae853SAndroid Build Coastguard Worker                                                UWORD8 u1_end_of_row);
81*495ae853SAndroid Build Coastguard Worker WORD32 isvcd_decode_recon_tfr_nmb_base_lyr(svc_dec_lyr_struct_t *ps_svc_lyr_dec, UWORD8 u1_mb_idx,
82*495ae853SAndroid Build Coastguard Worker                                            UWORD8 u1_num_mbs, UWORD8 u1_num_mbs_next,
83*495ae853SAndroid Build Coastguard Worker                                            UWORD8 u1_tfr_n_mb, UWORD8 u1_end_of_row);
84*495ae853SAndroid Build Coastguard Worker void isvcd_retrive_infer_mode_mv(svc_dec_lyr_struct_t *ps_svc_lyr_dec, mv_pred_t *ps_mvpred,
85*495ae853SAndroid Build Coastguard Worker                                  UWORD8 u1_lx, UWORD8 u1_sub_mb_num);
86*495ae853SAndroid Build Coastguard Worker 
87*495ae853SAndroid Build Coastguard Worker void isvcd_update_intra_mb_inter_layer_info(svc_dec_lyr_struct_t *ps_svc_lyr_dec,
88*495ae853SAndroid Build Coastguard Worker                                             dec_mb_info_t *ps_cur_mb_info);
89*495ae853SAndroid Build Coastguard Worker 
90*495ae853SAndroid Build Coastguard Worker void isvcd_update_ipcm_mb_inter_layer_info(svc_dec_lyr_struct_t *ps_svc_lyr_dec,
91*495ae853SAndroid Build Coastguard Worker                                            dec_mb_info_t *ps_cur_mb_info);
92*495ae853SAndroid Build Coastguard Worker 
93*495ae853SAndroid Build Coastguard Worker void isvcd_update_ibl_mb_inter_layer_info(svc_dec_lyr_struct_t *ps_svc_lyr_dec,
94*495ae853SAndroid Build Coastguard Worker                                           dec_mb_info_t *ps_cur_mb_info);
95*495ae853SAndroid Build Coastguard Worker void isvcd_update_inter_mb_inter_layer_info(svc_dec_lyr_struct_t *ps_svc_lyr_dec,
96*495ae853SAndroid Build Coastguard Worker                                             dec_mb_info_t *ps_cur_mb_info,
97*495ae853SAndroid Build Coastguard Worker                                             UWORD8 u1_inference_mode);
98*495ae853SAndroid Build Coastguard Worker void isvcd_ii_pred_mb(void *pv_svc_dec, dec_mb_info_t *ps_cur_mb_info);
99*495ae853SAndroid Build Coastguard Worker 
100*495ae853SAndroid Build Coastguard Worker WORD32 isvcd_mark_err_slice_skip(svc_dec_lyr_struct_t *ps_svc_lyr_dec, WORD32 num_mb_skip,
101*495ae853SAndroid Build Coastguard Worker                                  UWORD8 u1_is_idr_slice, UWORD16 u2_frame_num,
102*495ae853SAndroid Build Coastguard Worker                                  pocstruct_t *ps_cur_poc, WORD32 prev_slice_err);
103*495ae853SAndroid Build Coastguard Worker 
104*495ae853SAndroid Build Coastguard Worker void isvcd_one_to_one(svc_dec_lyr_struct_t *ps_svc_lyr_dec, struct pic_buffer_t *ps_col_pic,
105*495ae853SAndroid Build Coastguard Worker                       directmv_t *ps_direct, UWORD8 u1_wd_x, WORD32 u2_sub_mb_ofst,
106*495ae853SAndroid Build Coastguard Worker                       dec_mb_info_t *ps_cur_mb_info);
107*495ae853SAndroid Build Coastguard Worker 
108*495ae853SAndroid Build Coastguard Worker WORD32 isvcd_process_ii_mb(svc_dec_lyr_struct_t *ps_svc_lyr_dec, dec_mb_info_t *ps_cur_mb_info,
109*495ae853SAndroid Build Coastguard Worker                            dec_svc_mb_info_t *ps_svc_cur_mb_info, UWORD8 u1_mb_num);
110*495ae853SAndroid Build Coastguard Worker #endif /* _ISVCD_PROCESS_EPSLICE_H_ */