/* SPDX-License-Identifier: Apache-2.0 */ /* * Copyright (c) 2024 Rockchip Electronics Co., Ltd. */ #ifndef __HAL_H265E_VEPU510_REG_H__ #define __HAL_H265E_VEPU510_REG_H__ #include "rk_type.h" #include "vepu510_common.h" typedef struct PreCstPar_t { struct { RK_U32 madi_thd0 : 7; RK_U32 reserved : 1; RK_U32 madi_thd1 : 7; RK_U32 reserved1 : 1; RK_U32 madi_thd2 : 7; RK_U32 reserved2 : 1; RK_U32 madi_thd3 : 7; RK_U32 reserved3 : 1; } cst_madi_thd0; /* 0x000020c4 reg2097 */ struct { RK_U32 madi_thd4 : 7; RK_U32 reserved : 1; RK_U32 madi_thd5 : 7; RK_U32 reserved1 : 1; RK_U32 madi_thd6 : 7; RK_U32 reserved2 : 1; RK_U32 madi_thd7 : 7; RK_U32 reserved3 : 1; } cst_madi_thd1; /* 0x000020c8 reg2098 */ struct { RK_U32 madi_thd8 : 7; RK_U32 reserved : 1; RK_U32 madi_thd9 : 7; RK_U32 reserved1 : 1; RK_U32 madi_thd10 : 7; RK_U32 reserved2 : 1; RK_U32 madi_thd11 : 7; RK_U32 reserved3 : 1; } cst_madi_thd2; /* 0x000020cc reg2099 */ struct { RK_U32 madi_thd12 : 7; RK_U32 reserved : 1; RK_U32 madi_thd13 : 7; RK_U32 reserved1 : 1; RK_U32 mode_th : 3; RK_U32 reserved2 : 1; RK_U32 qp_thd : 6; RK_U32 reserved3 : 6; } cst_madi_thd3; /* 0x000020d0 reg2100 */ struct { RK_U32 wgt0 : 8; RK_U32 wgt1 : 8; RK_U32 wgt2 : 8; RK_U32 wgt3 : 8; } cst_wgt0; /* 0x000020d4 reg2101 */ struct { RK_U32 wgt4 : 8; RK_U32 wgt5 : 8; RK_U32 wgt6 : 8; RK_U32 wgt7 : 8; } cst_wgt1; /* 0x000020d8 reg2102 */ struct { RK_U32 wgt8 : 8; RK_U32 wgt9 : 8; RK_U32 wgt10 : 8; RK_U32 wgt11 : 8; } cst_wgt2; /* 0x000020dc reg2103 */ struct { RK_U32 wgt12 : 8; RK_U32 wgt13 : 8; RK_U32 wgt14 : 8; RK_U32 lambda_mv_bit_0 : 3; RK_U32 reserved : 1; RK_U32 lambda_mv_bit_1 : 3; RK_U32 anti_strp_e : 1; } cst_wgt3; } pre_cst_par; /* class: buffer/video syntax */ /* 0x00000270 reg156 - 0x000003f4 reg253*/ typedef struct H265eVepu510Frame_t { Vepu510FrmCommon common; /* 0x000003a0 reg232 */ struct { RK_U32 ltm_col : 1; RK_U32 ltm_idx0l0 : 1; RK_U32 chrm_spcl : 1; RK_U32 cu_inter_e : 12; RK_U32 reserved : 8; RK_U32 ccwa_e : 1; RK_U32 scl_lst_sel : 2; RK_U32 lambda_qp_use_avg_cu16_flag : 1; RK_U32 yuvskip_calc_en : 1; RK_U32 atf_e : 1; RK_U32 atr_e : 1; RK_U32 reserved1 : 2; } rdo_cfg; /* 0x000003a4 reg233 */ struct { RK_U32 rdo_mark_mode : 9; RK_U32 reserved : 23; } iprd_csts; /* 0x3a8 - 0x3ac */ RK_U32 reserved234_235[2]; /* 0x000003b0 reg236 */ struct { RK_U32 nal_unit_type : 6; RK_U32 reserved : 26; } synt_nal; /* 0x000003b4 reg237 */ struct { RK_U32 smpl_adpt_ofst_e : 1; RK_U32 num_st_ref_pic : 7; RK_U32 lt_ref_pic_prsnt : 1; RK_U32 num_lt_ref_pic : 6; RK_U32 tmpl_mvp_e : 1; RK_U32 log2_max_poc_lsb : 4; RK_U32 strg_intra_smth : 1; RK_U32 reserved : 11; } synt_sps; /* 0x000003b8 reg238 */ struct { RK_U32 dpdnt_sli_seg_en : 1; RK_U32 out_flg_prsnt_flg : 1; RK_U32 num_extr_sli_hdr : 3; RK_U32 sgn_dat_hid_en : 1; RK_U32 cbc_init_prsnt_flg : 1; RK_U32 pic_init_qp : 6; RK_U32 cu_qp_dlt_en : 1; RK_U32 chrm_qp_ofst_prsn : 1; RK_U32 lp_fltr_acrs_sli : 1; RK_U32 dblk_fltr_ovrd_en : 1; RK_U32 lst_mdfy_prsnt_flg : 1; RK_U32 sli_seg_hdr_extn : 1; RK_U32 cu_qp_dlt_depth : 2; RK_U32 lpf_fltr_acrs_til : 1; RK_U32 csip_flag : 1; RK_U32 reserved : 9; } synt_pps; /* 0x000003bc reg239 */ struct { RK_U32 cbc_init_flg : 1; RK_U32 mvd_l1_zero_flg : 1; RK_U32 reserved : 3; RK_U32 ref_pic_lst_mdf_l0 : 1; RK_U32 num_refidx_l1_act : 2; RK_U32 num_refidx_l0_act : 2; RK_U32 num_refidx_act_ovrd : 1; RK_U32 sli_sao_chrm_flg : 1; RK_U32 sli_sao_luma_flg : 1; RK_U32 sli_tmprl_mvp_e : 1; RK_U32 pic_out_flg : 1; RK_U32 sli_type : 2; RK_U32 sli_rsrv_flg : 7; RK_U32 dpdnt_sli_seg_flg : 1; RK_U32 sli_pps_id : 6; RK_U32 no_out_pri_pic : 1; } synt_sli0; /* 0x000003c0 reg240 */ struct { RK_U32 sp_tc_ofst_div2 : 4; RK_U32 sp_beta_ofst_div2 : 4; RK_U32 sli_lp_fltr_acrs_sli : 1; RK_U32 sp_dblk_fltr_dis : 1; RK_U32 dblk_fltr_ovrd_flg : 1; RK_U32 sli_cb_qp_ofst : 5; RK_U32 sli_qp : 6; RK_U32 max_mrg_cnd : 2; RK_U32 reserved : 1; RK_U32 col_ref_idx : 1; RK_U32 col_frm_l0_flg : 1; RK_U32 lst_entry_l0 : 4; RK_U32 reserved1 : 1; } synt_sli1; /* 0x000003c4 reg241 */ struct { RK_U32 sli_poc_lsb : 16; RK_U32 sli_hdr_ext_len : 9; RK_U32 reserved : 7; } synt_sli2; /* 0x000003c8 reg242 */ struct { RK_U32 st_ref_pic_flg : 1; RK_U32 poc_lsb_lt0 : 16; RK_U32 lt_idx_sps : 5; RK_U32 num_lt_pic : 2; RK_U32 st_ref_pic_idx : 6; RK_U32 num_lt_sps : 2; } synt_refm0; /* 0x000003cc reg243 */ struct { RK_U32 used_by_s0_flg : 4; RK_U32 num_pos_pic : 1; RK_U32 num_negative_pics : 5; RK_U32 dlt_poc_msb_cycl0 : 16; RK_U32 dlt_poc_msb_prsnt0 : 1; RK_U32 dlt_poc_msb_prsnt1 : 1; RK_U32 dlt_poc_msb_prsnt2 : 1; RK_U32 used_by_lt_flg0 : 1; RK_U32 used_by_lt_flg1 : 1; RK_U32 used_by_lt_flg2 : 1; } synt_refm1; /* 0x000003d0 reg244 */ struct { RK_U32 dlt_poc_s0_m10 : 16; RK_U32 dlt_poc_s0_m11 : 16; } synt_refm2; /* 0x000003d4 reg245 */ struct { RK_U32 dlt_poc_s0_m12 : 16; RK_U32 dlt_poc_s0_m13 : 16; } synt_refm3; /* 0x000003d8 reg246 */ struct { RK_U32 poc_lsb_lt1 : 16; RK_U32 poc_lsb_lt2 : 16; } synt_long_refm0; /* 0x000003dc reg247 */ struct { RK_U32 dlt_poc_msb_cycl1 : 16; RK_U32 dlt_poc_msb_cycl2 : 16; } synt_long_refm1; struct { RK_U32 sao_lambda_multi : 3; RK_U32 reserved : 29; } sao_cfg; /* 0x3e4 - 0x3ec */ RK_U32 reserved249_251[3]; /* 0x000003f0 reg252 */ struct { RK_U32 tile_w_m1 : 9; RK_U32 reserved : 7; RK_U32 tile_h_m1 : 9; RK_U32 reserved1 : 6; RK_U32 tile_en : 1; } tile_cfg; /* 0x000003f4 reg253 */ struct { RK_U32 tile_x : 9; RK_U32 reserved : 7; RK_U32 tile_y : 9; RK_U32 reserved1 : 7; } tile_pos_hevc; } H265eVepu510Frame; /* class: param */ /* 0x00001700 reg1472 - 0x000019cc reg1651 */ typedef struct H265eVepu510Param_t { /* 0x00001700 reg1472 - 0x0000172c reg1483*/ RK_U32 reserved_1472_1483[12]; /* 0x00001730 reg1484 */ struct { RK_U32 qnt_f_bias_i : 10; RK_U32 qnt_f_bias_p : 10; RK_U32 reserve : 12; } qnt_bias_comb; /* 0x00001734 reg1485 - 0x0000175c reg1495*/ RK_U32 reserved1485_1495[11]; /* 0x00001760 reg1496 */ struct { RK_U32 cime_pmv_num : 1; RK_U32 cime_fuse : 1; RK_U32 itp_mode : 1; RK_U32 reserved : 1; RK_U32 move_lambda : 4; RK_U32 rime_lvl_mrg : 2; RK_U32 rime_prelvl_en : 2; RK_U32 rime_prersu_en : 3; RK_U32 reserved1 : 17; } me_sqi_comb; /* 0x00001764 reg1497 */ struct { RK_U32 cime_mvd_th0 : 9; RK_U32 reserved : 1; RK_U32 cime_mvd_th1 : 9; RK_U32 reserved1 : 1; RK_U32 cime_mvd_th2 : 9; RK_U32 reserved2 : 3; } cime_mvd_th_comb; /* 0x00001768 reg1498 */ struct { RK_U32 cime_madp_th : 12; RK_U32 reserved : 20; } cime_madp_th_comb; /* 0x0000176c reg1499 */ struct { RK_U32 cime_multi0 : 8; RK_U32 cime_multi1 : 8; RK_U32 cime_multi2 : 8; RK_U32 cime_multi3 : 8; } cime_multi_comb; /* 0x00001770 reg1500 */ struct { RK_U32 rime_mvd_th0 : 3; RK_U32 reserved : 1; RK_U32 rime_mvd_th1 : 3; RK_U32 reserved1 : 9; RK_U32 fme_madp_th : 12; RK_U32 reserved2 : 4; } rime_mvd_th_comb; /* 0x00001774 reg1501 */ struct { RK_U32 rime_madp_th0 : 12; RK_U32 reserved : 4; RK_U32 rime_madp_th1 : 12; RK_U32 reserved1 : 4; } rime_madp_th_comb; /* 0x00001778 reg1502 */ struct { RK_U32 rime_multi0 : 10; RK_U32 rime_multi1 : 10; RK_U32 rime_multi2 : 10; RK_U32 reserved : 2; } rime_multi_comb; /* 0x0000177c reg1503 */ struct { RK_U32 cmv_th0 : 8; RK_U32 cmv_th1 : 8; RK_U32 cmv_th2 : 8; RK_U32 reserved : 8; } cmv_st_th_comb; /* 0x1780 - 0x17fc */ RK_U32 reserved1504_1535[32]; /* 0x00001800 reg1536 - 0x000018cc reg1587*/ RK_U32 pprd_lamb_satd_0_51[52]; /* 0x000018d0 reg1588 */ struct { RK_U32 lambda_satd_offset : 5; RK_U32 reserved : 27; } iprd_lamb_satd_ofst; /* 0x18d4 - 0x18fc */ RK_U32 reserved1589_1599[11]; /* 0x00001900 reg1600 - 0x000019cc reg1651*/ RK_U32 rdo_wgta_qp_grpa_0_51[52]; } H265eVepu510Param; /* class: rdo/q_i */ /* 0x00002000 reg2048 - 0x000020fc reg2111 */ typedef struct H265eVepu510SqiCfg_t { /* 0x00002000 reg2048 */ struct { RK_U32 subj_opt_en : 1; RK_U32 subj_opt_strength : 3; RK_U32 aq_subj_en : 1; RK_U32 aq_subj_strength : 3; RK_U32 reserved : 4; RK_U32 thre_sum_grdn_point : 20; } subj_opt_cfg; /* 0x00002004 reg2049 */ struct { RK_U32 common_thre_num_grdn_point_dep0 : 8; RK_U32 common_thre_num_grdn_point_dep1 : 8; RK_U32 common_thre_num_grdn_point_dep2 : 8; RK_U32 reserved : 8; } subj_opt_dpth_thd; /* 0x00002008 reg2050 */ struct { RK_U32 common_rdo_cu_intra_r_coef_dep0 : 8; RK_U32 common_rdo_cu_intra_r_coef_dep1 : 8; RK_U32 reserved : 16; } subj_opt_inrar_coef; /* 0x200c */ RK_U32 reserved_2051; /* 0x00002010 reg2052 */ struct { RK_U32 anti_smear_en : 1; RK_U32 frm_static : 1; RK_U32 smear_stor_en : 1; RK_U32 smear_load_en : 1; RK_U32 smear_strength : 3; RK_U32 reserved : 1; RK_U32 thre_mv_inconfor_cime : 4; RK_U32 thre_mv_confor_cime : 2; RK_U32 thre_mv_confor_cime_gmv : 2; RK_U32 thre_mv_inconfor_cime_gmv : 4; RK_U32 thre_num_mv_confor_cime : 2; RK_U32 thre_num_mv_confor_cime_gmv : 2; RK_U32 reserved1 : 8; } smear_opt_cfg0; /* 0x00002014 reg2053 */ struct { RK_U32 dist0_frm_avg : 14; RK_U32 thre_dsp_static : 5; RK_U32 thre_dsp_mov : 5; RK_U32 thre_dist_mv_confor_cime : 7; RK_U32 reserved : 1; } smear_opt_cfg1; /* 0x00002018 reg2054 */ struct { RK_U32 thre_madp_stc_dep0 : 4; RK_U32 thre_madp_stc_dep1 : 4; RK_U32 thre_madp_stc_dep2 : 4; RK_U32 thre_madp_mov_dep0 : 6; RK_U32 thre_madp_mov_dep1 : 6; RK_U32 thre_madp_mov_dep2 : 6; RK_U32 reserved : 2; } smear_madp_thd; /* 0x0000201c reg2055 */ struct { RK_U32 thre_num_pt_stc_dep0 : 6; RK_U32 thre_num_pt_stc_dep1 : 4; RK_U32 thre_num_pt_stc_dep2 : 2; RK_U32 reserved : 4; RK_U32 thre_num_pt_mov_dep0 : 6; RK_U32 thre_num_pt_mov_dep1 : 4; RK_U32 thre_num_pt_mov_dep2 : 2; RK_U32 reserved1 : 4; } smear_stat_thd; /* 0x00002020 reg2056 */ struct { RK_U32 thre_ratio_dist_mv_confor_cime_gmv0 : 5; RK_U32 reserved : 3; RK_U32 thre_ratio_dist_mv_confor_cime_gmv1 : 5; RK_U32 reserved1 : 3; RK_U32 thre_ratio_dist_mv_inconfor_cime_gmv0 : 6; RK_U32 reserved2 : 2; RK_U32 thre_ratio_dist_mv_inconfor_cime_gmv1 : 6; RK_U32 reserved3 : 2; } smear_bmv_dist_thd0; /* 0x00002024 reg2057 */ struct { RK_U32 thre_ratio_dist_mv_inconfor_cime_gmv2 : 6; RK_U32 reserved : 2; RK_U32 thre_ratio_dist_mv_inconfor_cime_gmv3 : 6; RK_U32 reserved1 : 2; RK_U32 thre_ratio_dist_mv_inconfor_cime_gmv4 : 6; RK_U32 reserved2 : 10; } smear_bmv_dist_thd1; /* 0x00002028 reg2058 */ struct { RK_U32 thre_min_num_confor_csu0_bndry_cime_gmv : 2; RK_U32 thre_max_num_confor_csu0_bndry_cime_gmv : 2; RK_U32 thre_min_num_inconfor_csu0_bndry_cime_gmv : 2; RK_U32 thre_max_num_inconfor_csu0_bndry_cime_gmv : 2; RK_U32 thre_split_dep0 : 2; RK_U32 thre_zero_srgn : 5; RK_U32 reserved : 1; RK_U32 madi_thre_dep0 : 8; RK_U32 madi_thre_dep1 : 8; } smear_min_bndry_gmv; /* 0x0000202c reg2059 */ struct { RK_U32 thre_madp_stc_cover0 : 6; RK_U32 thre_madp_stc_cover1 : 6; RK_U32 thre_madp_mov_cover0 : 5; RK_U32 thre_madp_mov_cover1 : 5; RK_U32 smear_qp_strength : 4; RK_U32 smear_thre_qp : 6; } smear_madp_cov_thd; /* 0x00002030 reg2060 */ struct { RK_U32 skin_en : 1; RK_U32 skin_strength : 3; RK_U32 thre_uvsqr16_skin : 8; RK_U32 skin_thre_cst_best_mad : 10; RK_U32 skin_thre_cst_best_grdn_blk : 7; RK_U32 reserved : 1; RK_U32 frame_skin_ratio : 2; } skin_opt_cfg; /* 0x00002034 reg2061 */ struct { RK_U32 thre_sum_mad_intra : 2; RK_U32 thre_sum_grdn_blk_intra : 2; RK_U32 vld_thre_skin_v : 3; RK_U32 reserved : 1; RK_U32 thre_min_skin_u : 8; RK_U32 thre_max_skin_u : 8; RK_U32 thre_min_skin_v : 8; } skin_chrm_thd; /* 0x00002038 reg2062 */ struct { RK_U32 block_en : 1; RK_U32 reserved : 1; RK_U32 block_thre_cst_best_mad : 10; RK_U32 reserved1 : 4; RK_U32 block_thre_cst_best_grdn_blk : 6; RK_U32 reserved2 : 2; RK_U32 thre_num_grdnt_point_cmplx : 2; RK_U32 block_delta_qp_flag : 2; RK_U32 reserved3 : 4; } block_opt_cfg; /* 0x0000203c reg2063 */ struct { RK_U32 cmplx_thre_cst_best_mad_dep0 : 13; RK_U32 reserved : 3; RK_U32 cmplx_thre_cst_best_mad_dep1 : 13; RK_U32 reserved1 : 2; RK_U32 cmplx_en : 1; } cmplx_opt_cfg; /* 0x00002040 reg2064 */ struct { RK_U32 cmplx_thre_cst_best_mad_dep2 : 13; RK_U32 reserved : 3; RK_U32 cmplx_thre_cst_best_grdn_blk_dep0 : 11; RK_U32 reserved1 : 5; } cmplx_bst_mad_thd; /* 0x00002044 reg2065 */ struct { RK_U32 cmplx_thre_cst_best_grdn_blk_dep1 : 11; RK_U32 reserved : 5; RK_U32 cmplx_thre_cst_best_grdn_blk_dep2 : 11; RK_U32 reserved1 : 5; } cmplx_bst_grdn_thd; /* 0x00002048 reg2066 */ struct { RK_U32 line_en : 1; RK_U32 line_thre_min_cst_best_grdn_blk_dep0 : 5; RK_U32 line_thre_min_cst_best_grdn_blk_dep1 : 5; RK_U32 line_thre_min_cst_best_grdn_blk_dep2 : 5; RK_U32 line_thre_ratio_best_grdn_blk_dep0 : 4; RK_U32 line_thre_ratio_best_grdn_blk_dep1 : 4; RK_U32 reserved : 8; } line_opt_cfg; /* 0x0000204c reg2067 */ struct { RK_U32 line_thre_max_cst_best_grdn_blk_dep0 : 7; RK_U32 reserved : 1; RK_U32 line_thre_max_cst_best_grdn_blk_dep1 : 7; RK_U32 reserved1 : 1; RK_U32 line_thre_max_cst_best_grdn_blk_dep2 : 7; RK_U32 reserved2 : 9; } line_cst_bst_grdn; /* 0x00002050 reg2068 */ struct { RK_U32 line_thre_qp : 6; RK_U32 block_strength : 3; RK_U32 block_thre_qp : 6; RK_U32 cmplx_strength : 3; RK_U32 cmplx_thre_qp : 6; RK_U32 cmplx_thre_max_grdn_blk : 6; RK_U32 reserved : 2; } subj_opt_dqp0; /* 0x00002054 reg2069 */ struct { RK_U32 skin_thre_qp : 6; RK_U32 reserved : 2; RK_U32 bndry_rdo_cu_intra_r_coef_dep0 : 8; RK_U32 bndry_rdo_cu_intra_r_coef_dep1 : 8; RK_U32 reserved1 : 8; } subj_opt_dqp1; /* 0x2058 - 0x205c */ RK_U32 reserved2070_2071[2]; /* 0x00002060 reg2072 - 0x0000206c reg2075 */ rdo_skip_par rdo_b32_skip; /* 0x00002070 reg2076 - 0x0000207c reg2079*/ rdo_skip_par rdo_b16_skip; /* 0x00002080 reg2080 - 0x00002088 reg2082 */ rdo_noskip_par rdo_b32_inter; /* 0x0000208c reg2083 - 0x00002094 reg2085 */ rdo_noskip_par rdo_b16_inter; /* 0x00002098 reg2086 - 0x000020a4 reg2088 */ rdo_noskip_par rdo_b32_intra; /* 0x000020a8 reg2089 - 0x000020ac reg2091 */ rdo_noskip_par rdo_b16_intra; /* 0x000020b0 reg2092 */ struct { RK_U32 blur_low_madi_thd : 7; RK_U32 reserved : 1; RK_U32 blur_high_madi_thd : 7; RK_U32 reserved1 : 1; RK_U32 blur_low_cnt_thd : 4; RK_U32 blur_hight_cnt_thd : 4; RK_U32 blur_sum_cnt_thd : 4; RK_U32 anti_blur_en : 1; RK_U32 reserved2 : 3; } subj_anti_blur_thd; /* 0x000020b4 reg2093 */ struct { RK_U32 blur_motion_thd : 12; RK_U32 sao_ofst_thd_eo_luma : 3; RK_U32 reserved : 1; RK_U32 sao_ofst_thd_bo_luma : 3; RK_U32 reserved1 : 1; RK_U32 sao_ofst_thd_eo_chroma : 3; RK_U32 reserved2 : 1; RK_U32 sao_ofst_thd_bo_chroma : 3; RK_U32 reserved3 : 5; } subj_anti_blur_sao; /* 0x000020b8 reg2094 - 0x000020bc reg2095*/ RK_U32 reserved_2094_2095[2]; /* 0x000020c0 reg2096 - 0x000020dc reg2103 */ pre_cst_par preintra32_cst; /* 0x000020e0 reg2104 - 0x000020fc reg2111 */ pre_cst_par preintra16_cst; /* 0x00002100 reg2112 */ struct { RK_U32 base_thre_rough_mad32_intra : 4; RK_U32 delta0_thre_rough_mad32_intra : 4; RK_U32 delta1_thre_rough_mad32_intra : 6; RK_U32 delta2_thre_rough_mad32_intra : 6; RK_U32 delta3_thre_rough_mad32_intra : 7; RK_U32 delta4_thre_rough_mad32_intra_low5 : 5; } cudecis_thd0; /* 0x00002104 reg2113 */ struct { RK_U32 delta4_thre_rough_mad32_intra_high2 : 2; RK_U32 delta5_thre_rough_mad32_intra : 7; RK_U32 delta6_thre_rough_mad32_intra : 7; RK_U32 base_thre_fine_mad32_intra : 4; RK_U32 delta0_thre_fine_mad32_intra : 4; RK_U32 delta1_thre_fine_mad32_intra : 5; RK_U32 delta2_thre_fine_mad32_intra_low3 : 3; } cudecis_thd1; /* 0x00002108 reg2114 */ struct { RK_U32 delta2_thre_fine_mad32_intra_high2 : 2; RK_U32 delta3_thre_fine_mad32_intra : 5; RK_U32 delta4_thre_fine_mad32_intra : 5; RK_U32 delta5_thre_fine_mad32_intra : 6; RK_U32 delta6_thre_fine_mad32_intra : 6; RK_U32 base_thre_str_edge_mad32_intra : 3; RK_U32 delta0_thre_str_edge_mad32_intra : 2; RK_U32 delta1_thre_str_edge_mad32_intra : 3; } cudecis_thd2; /* 0x0000210c reg2115 */ struct { RK_U32 delta2_thre_str_edge_mad32_intra : 3; RK_U32 delta3_thre_str_edge_mad32_intra : 4; RK_U32 base_thre_str_edge_bgrad32_intra : 5; RK_U32 delta0_thre_str_edge_bgrad32_intra : 2; RK_U32 delta1_thre_str_edge_bgrad32_intra : 3; RK_U32 delta2_thre_str_edge_bgrad32_intra : 4; RK_U32 delta3_thre_str_edge_bgrad32_intra : 5; RK_U32 base_thre_mad16_intra : 3; RK_U32 delta0_thre_mad16_intra : 3; } cudecis_thd3; /* 0x00002110 reg2116 */ struct { RK_U32 delta1_thre_mad16_intra : 3; RK_U32 delta2_thre_mad16_intra : 4; RK_U32 delta3_thre_mad16_intra : 5; RK_U32 delta4_thre_mad16_intra : 5; RK_U32 delta5_thre_mad16_intra : 6; RK_U32 delta6_thre_mad16_intra : 6; RK_U32 delta0_thre_mad16_ratio_intra : 3; } cudecis_thd4; /* 0x00002114 reg2117 */ struct { RK_U32 delta1_thre_mad16_ratio_intra : 3; RK_U32 delta2_thre_mad16_ratio_intra : 3; RK_U32 delta3_thre_mad16_ratio_intra : 3; RK_U32 delta4_thre_mad16_ratio_intra : 3; RK_U32 delta5_thre_mad16_ratio_intra : 3; RK_U32 delta6_thre_mad16_ratio_intra : 3; RK_U32 delta7_thre_mad16_ratio_intra : 3; RK_U32 delta0_thre_rough_bgrad32_intra : 3; RK_U32 delta1_thre_rough_bgrad32_intra : 4; RK_U32 delta2_thre_rough_bgrad32_intra_low4 : 4; } cudecis_thd5; /* 0x00002118 reg2118 */ struct { RK_U32 delta2_thre_rough_bgrad32_intra_high2 : 2; RK_U32 delta3_thre_rough_bgrad32_intra : 10; RK_U32 delta4_thre_rough_bgrad32_intra : 10; RK_U32 delta5_thre_rough_bgrad32_intra_low10 : 10; } cudecis_thd6; /* 0x0000211c reg2119 */ struct { RK_U32 delta5_thre_rough_bgrad32_intra_high1 : 1; RK_U32 delta6_thre_rough_bgrad32_intra : 12; RK_U32 delta7_thre_rough_bgrad32_intra : 13; RK_U32 delta0_thre_bgrad16_ratio_intra : 4; RK_U32 delta1_thre_bgrad16_ratio_intra_low2 : 2; } cudecis_thd7; /* 0x00002120 reg2120 */ struct { RK_U32 delta1_thre_bgrad16_ratio_intra_high2 : 2; RK_U32 delta2_thre_bgrad16_ratio_intra : 4; RK_U32 delta3_thre_bgrad16_ratio_intra : 4; RK_U32 delta4_thre_bgrad16_ratio_intra : 4; RK_U32 delta5_thre_bgrad16_ratio_intra : 4; RK_U32 delta6_thre_bgrad16_ratio_intra : 4; RK_U32 delta7_thre_bgrad16_ratio_intra : 4; RK_U32 delta0_thre_fme_ratio_inter : 3; RK_U32 delta1_thre_fme_ratio_inter : 3; } cudecis_thdt8; /* 0x00002124 reg2121 */ struct { RK_U32 delta2_thre_fme_ratio_inter : 3; RK_U32 delta3_thre_fme_ratio_inter : 3; RK_U32 delta4_thre_fme_ratio_inter : 3; RK_U32 delta5_thre_fme_ratio_inter : 3; RK_U32 delta6_thre_fme_ratio_inter : 3; RK_U32 delta7_thre_fme_ratio_inter : 3; RK_U32 base_thre_fme32_inter : 3; RK_U32 delta0_thre_fme32_inter : 3; RK_U32 delta1_thre_fme32_inter : 4; RK_U32 delta2_thre_fme32_inter : 4; } cudecis_thd9; /* 0x00002128 reg2122 */ struct { RK_U32 delta3_thre_fme32_inter : 5; RK_U32 delta4_thre_fme32_inter : 6; RK_U32 delta5_thre_fme32_inter : 7; RK_U32 delta6_thre_fme32_inter : 8; RK_U32 thre_cme32_inter : 6; } cudecis_thd10; /* 0x0000212c reg2123 */ struct { RK_U32 delta0_thre_mad_fme_ratio_inter : 4; RK_U32 delta1_thre_mad_fme_ratio_inter : 4; RK_U32 delta2_thre_mad_fme_ratio_inter : 4; RK_U32 delta3_thre_mad_fme_ratio_inter : 4; RK_U32 delta4_thre_mad_fme_ratio_inter : 4; RK_U32 delta5_thre_mad_fme_ratio_inter : 4; RK_U32 delta6_thre_mad_fme_ratio_inter : 4; RK_U32 delta7_thre_mad_fme_ratio_inter : 4; } cudecis_thd11; } H265eVepu510Sqi; typedef struct H265eV510RegSet_t { Vepu510ControlCfg reg_ctl; H265eVepu510Frame reg_frm; Vepu510RcRoi reg_rc_roi; H265eVepu510Param reg_param; H265eVepu510Sqi reg_sqi; Vepu510SclCfg reg_scl; Vepu510Dbg reg_dbg; } H265eV510RegSet; typedef struct H265eV510StatusElem_t { RK_U32 hw_status; Vepu510Status st; } H265eV510StatusElem; #endif