/*
|
* Copyright 2020 Rockchip Electronics Co. LTD
|
*
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
* you may not use this file except in compliance with the License.
|
* You may obtain a copy of the License at
|
*
|
* http://www.apache.org/licenses/LICENSE-2.0
|
*
|
* Unless required by applicable law or agreed to in writing, software
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* See the License for the specific language governing permissions and
|
* limitations under the License.
|
*/
|
|
#ifndef __HAL_H265E_VEPU54X_REG_L2_H__
|
#define __HAL_H265E_VEPU54X_REG_L2_H__
|
|
#include "rk_type.h"
|
|
typedef struct {
|
/* 0x48 - ATF_THD0 */
|
struct {
|
RK_U32 atf_thd0_i32 : 6;
|
RK_U32 reserved0 : 10;
|
RK_U32 atf_thd1_i32 : 6;
|
RK_U32 reserved1 : 10;
|
} atf_thd0;
|
|
/* 0x4c - ATF_THD1 */
|
struct {
|
RK_U32 atf_thd0_i16 : 6;
|
RK_U32 reserved0 : 10;
|
RK_U32 atf_thd1_i16 : 6;
|
RK_U32 reserved1 : 10;
|
} atf_thd1;
|
|
/* 0x50 - ATF_SAD_THD0 */
|
struct {
|
RK_U32 atf_thd0_p64 : 6;
|
RK_U32 reserved0 : 10;
|
RK_U32 atf_thd1_p64 : 6;
|
RK_U32 reserved1 : 10;
|
} atf_sad_thd0;
|
|
/* 0x54 - ATF_SAD_THD1 */
|
struct {
|
RK_U32 atf_thd0_p32 : 6;
|
RK_U32 reserved0 : 10;
|
RK_U32 atf_thd1_p32 : 6;
|
RK_U32 reserved1 : 10;
|
} atf_sad_thd1;
|
|
/* 0x58 - ATF_SAD_WGT0 */
|
struct {
|
RK_U32 atf_thd0_p16 : 6;
|
RK_U32 reserved0 : 10;
|
RK_U32 atf_thd1_p16 : 6;
|
RK_U32 reserved1 : 10;
|
} atf_sad_wgt0;
|
} vepu541_intra_thd;
|
|
typedef struct {
|
/* 0x48 - ATF_THD0 */
|
struct {
|
RK_U32 atf_thd0_i32 : 10;
|
RK_U32 reserved0 : 6;
|
RK_U32 atf_thd1_i32 : 10;
|
RK_U32 reserved1 : 6;
|
} atf_thd0;
|
|
/* 0x4c - ATF_THD1 */
|
struct {
|
RK_U32 atf_thd0_i16 : 10;
|
RK_U32 reserved0 : 6;
|
RK_U32 atf_thd1_i16 : 10;
|
RK_U32 reserved1 : 6;
|
} atf_thd1;
|
|
/* 0x50 - ATF_SAD_THD0 */
|
struct {
|
RK_U32 atf_thd0_p64 : 10;
|
RK_U32 reserved0 : 6;
|
RK_U32 atf_thd1_p64 : 10;
|
RK_U32 reserved1 : 6;
|
} atf_sad_thd0;
|
|
/* 0x54 - ATF_SAD_THD1 */
|
struct {
|
RK_U32 atf_thd0_p32 : 10;
|
RK_U32 reserved0 : 6;
|
RK_U32 atf_thd1_p32 : 10;
|
RK_U32 reserved1 : 6;
|
} atf_sad_thd1;
|
|
/* 0x58 - ATF_SAD_WGT0 */
|
struct {
|
RK_U32 atf_thd0_p16 : 10;
|
RK_U32 reserved0 : 6;
|
RK_U32 atf_thd1_p16 : 10;
|
RK_U32 reserved1 : 6;
|
} atf_sad_wgt0;
|
} vepu540_intra_thd;
|
|
|
typedef struct H265eV54xL2RegSet_t {
|
/* L2 Register: 0x4 */
|
struct {
|
RK_U32 lvl32_intra_cst_thd0 : 12;
|
RK_U32 reserved0 : 4;
|
RK_U32 lvl32_intra_cst_thd1 : 12;
|
RK_U32 reserved1 : 4;
|
} lvl32_intra_CST_THD0;
|
|
struct {
|
RK_U32 lvl32_intra_cst_thd2 : 12;
|
RK_U32 reserved0 : 4;
|
RK_U32 lvl32_intra_cst_thd3 : 12;
|
RK_U32 reserved1 : 4;
|
} lvl32_intra_CST_THD1;
|
|
struct {
|
RK_U32 lvl16_intra_cst_thd0 : 12;
|
RK_U32 reserved0 : 4;
|
RK_U32 lvl16_intra_cst_thd1 : 12;
|
RK_U32 reserved1 : 4;
|
} lvl16_intra_CST_THD0;
|
|
struct {
|
RK_U32 lvl16_intra_cst_thd2 : 12;
|
RK_U32 reserved0 : 4;
|
RK_U32 lvl16_intra_cst_thd3 : 12;
|
RK_U32 reserved1 : 4;
|
} lvl16_intra_CST_THD1;
|
|
/* 0x14-0x1c - reserved */
|
RK_U32 lvl8_intra_CST_THD0;
|
RK_U32 lvl8_intra_CST_THD1;
|
RK_U32 lvl16_intra_UL_CST_THD;
|
|
struct {
|
RK_U32 lvl32_intra_cst_wgt0 : 8;
|
RK_U32 lvl32_intra_cst_wgt1 : 8;
|
RK_U32 lvl32_intra_cst_wgt2 : 8;
|
RK_U32 lvl32_intra_cst_wgt3 : 8;
|
} lvl32_intra_CST_WGT0;
|
|
struct {
|
RK_U32 lvl32_intra_cst_wgt4 : 8;
|
RK_U32 lvl32_intra_cst_wgt5 : 8;
|
RK_U32 lvl32_intra_cst_wgt6 : 8;
|
RK_U32 reserved2 : 8;
|
} lvl32_intra_CST_WGT1;
|
|
struct {
|
RK_U32 lvl16_intra_cst_wgt0 : 8;
|
RK_U32 lvl16_intra_cst_wgt1 : 8;
|
RK_U32 lvl16_intra_cst_wgt2 : 8;
|
RK_U32 lvl16_intra_cst_wgt3 : 8;
|
} lvl16_intra_CST_WGT0;
|
|
struct {
|
RK_U32 lvl16_intra_cst_wgt4 : 8;
|
RK_U32 lvl16_intra_cst_wgt5 : 8;
|
RK_U32 lvl16_intra_cst_wgt6 : 8;
|
RK_U32 reserved2 : 8;
|
} lvl16_intra_CST_WGT1;
|
|
/* 0x30 - RDO_QUANT */
|
struct {
|
RK_U32 quant_f_bias_I : 10;
|
RK_U32 quant_f_bias_P : 10;
|
RK_U32 reserved : 12;
|
} rdo_quant;
|
|
/* 0x34 - ATR_THD0, reserved */
|
struct {
|
RK_U32 atr_thd0 : 12;
|
RK_U32 reserved0 : 4;
|
RK_U32 atr_thd1 : 12;
|
RK_U32 reserved1 : 4;
|
} atr_thd0;
|
|
/* 0x38 - ATR_THD1, reserved */
|
struct {
|
RK_U32 atr_thd2 : 12;
|
RK_U32 reserved0 : 4;
|
RK_U32 atr_thdqp : 6;
|
RK_U32 reserved1 : 10;
|
} atr_thd1;
|
|
/* 0x3c - Lvl16_ATR_WGT, reserved */
|
struct {
|
RK_U32 lvl16_atr_wgt0 : 8;
|
RK_U32 lvl16_atr_wgt1 : 8;
|
RK_U32 lvl16_atr_wgt2 : 8;
|
RK_U32 reserved : 8;
|
} lvl16_atr_wgt;
|
|
/* 0x40 - Lvl8_ATR_WGT, reserved */
|
struct {
|
RK_U32 lvl8_atr_wgt0 : 8;
|
RK_U32 lvl8_atr_wgt1 : 8;
|
RK_U32 lvl8_atr_wgt2 : 8;
|
RK_U32 reserved : 8;
|
} lvl8_atr_wgt;
|
|
/* 0x44 - Lvl4_ATR_WGT, reserved */
|
struct {
|
RK_U32 lvl4_atr_wgt0 : 8;
|
RK_U32 lvl4_atr_wgt1 : 8;
|
RK_U32 lvl4_atr_wgt2 : 8;
|
RK_U32 reserved : 8;
|
} lvl4_atr_wgt;
|
|
union {
|
vepu541_intra_thd thd_541;
|
vepu540_intra_thd thd_540;
|
};
|
|
/* 0x5c - ATF_SAD_WGT1 */
|
struct {
|
RK_U32 atf_wgt_i16 : 6;
|
RK_U32 reserved0 : 10;
|
RK_U32 atf_wgt_i32 : 6;
|
RK_U32 reserved1 : 10;
|
} atf_sad_wgt1;
|
|
/* 0x60 - ATF_SAD_WGT2 */
|
struct {
|
RK_U32 atf_wgt_p32 : 6;
|
RK_U32 reserved0 : 10;
|
RK_U32 atf_wgt_p64 : 6;
|
RK_U32 reserved1 : 10;
|
} atf_sad_wgt2;
|
|
/* 0x64 - ATF_SAD_OFST0 */
|
struct {
|
RK_U32 atf_wgt_p16 : 6;
|
RK_U32 reserved : 26;
|
} atf_sad_ofst0;
|
|
/* 0x68 - ATF_SAD_OFST1, reserved */
|
struct {
|
RK_U32 atf_sad_ofst12 : 14;
|
RK_U32 reserved0 : 2;
|
RK_U32 atf_sad_ofst20 : 14;
|
RK_U32 reserved1 : 2;
|
} atf_sad_ofst1;
|
|
/* 0x6c - ATF_SAD_OFST2, reserved */
|
struct {
|
RK_U32 atf_sad_ofst21 : 14;
|
RK_U32 reserved0 : 2;
|
RK_U32 atf_sad_ofst30 : 14;
|
RK_U32 reserved1 : 2;
|
} atf_sad_ofst2;
|
|
/* 0x70-0x13c - LAMD_SATD_qp */
|
RK_U32 lamd_satd_qp[52];
|
|
/* 0x140-0x20c - LAMD_MOD_qp, combo for I and P */
|
RK_U32 lamd_moda_qp[52];
|
/* 0x210-0x2dc */
|
RK_U32 lamd_modb_qp[52];
|
|
/* 0x2e0 - MADI_CFG */
|
struct {
|
RK_U32 reserved : 16;
|
RK_U32 madi_thd : 8;
|
RK_U32 reserved1 : 8;
|
} madi_cfg;
|
|
/* 0x2e4 - AQ_THD0 */
|
struct {
|
RK_U32 aq_thld0 : 8;
|
RK_U32 aq_thld1 : 8;
|
RK_U32 aq_thld2 : 8;
|
RK_U32 aq_thld3 : 8;
|
} aq_thd0;
|
|
/* 0x2e8 - AQ_THD1 */
|
struct {
|
RK_U32 aq_thld4 : 8;
|
RK_U32 aq_thld5 : 8;
|
RK_U32 aq_thld6 : 8;
|
RK_U32 aq_thld7 : 8;
|
} aq_thd1;
|
|
/* 0x2ec - AQ_THD2 */
|
struct {
|
RK_U32 aq_thld8 : 8;
|
RK_U32 aq_thld9 : 8;
|
RK_U32 aq_thld10 : 8;
|
RK_U32 aq_thld11 : 8;
|
} aq_thd2;
|
|
/* 0x2f0 - AQ_THD3 */
|
struct {
|
RK_U32 aq_thld12 : 8;
|
RK_U32 aq_thld13 : 8;
|
RK_U32 aq_thld14 : 8;
|
RK_U32 aq_thld15 : 8;
|
} aq_thd3;
|
|
/* 0x2f4 - AQ_QP_DLT0 */
|
struct {
|
RK_S32 qp_delta0 : 6;
|
RK_S32 reserved0 : 2;
|
RK_S32 qp_delta1 : 6;
|
RK_S32 reserved1 : 2;
|
RK_S32 qp_delta2 : 6;
|
RK_S32 reserved2 : 2;
|
RK_S32 qp_delta3 : 6;
|
RK_S32 reserved3 : 2;
|
} aq_qp_dlt0;
|
|
/* 0x2f8 - AQ_QP_DLT1 */
|
struct {
|
RK_S32 qp_delta4 : 6;
|
RK_S32 reserved0 : 2;
|
RK_S32 qp_delta5 : 6;
|
RK_S32 reserved1 : 2;
|
RK_S32 qp_delta6 : 6;
|
RK_S32 reserved2 : 2;
|
RK_S32 qp_delta7 : 6;
|
RK_S32 reserved3 : 2;
|
} aq_qp_dlt1;
|
|
/* 0x2fc - AQ_QP_DLT2 */
|
struct {
|
RK_S32 qp_delta8 : 6;
|
RK_S32 reserved0 : 2;
|
RK_S32 qp_delta9 : 6;
|
RK_S32 reserved1 : 2;
|
RK_S32 qp_delta10 : 6;
|
RK_S32 reserved2 : 2;
|
RK_S32 qp_delta11 : 6;
|
RK_S32 reserved3 : 2;
|
} aq_qp_dlt2;
|
|
/* 0x300 - AQ_QP_DLT3 */
|
struct {
|
RK_S32 qp_delta12 : 6;
|
RK_S32 reserved0 : 2;
|
RK_S32 qp_delta13 : 6;
|
RK_S32 reserved1 : 2;
|
RK_S32 qp_delta14 : 6;
|
RK_S32 reserved2 : 2;
|
RK_S32 qp_delta15 : 6;
|
RK_S32 reserved3 : 2;
|
} aq_qp_dlt3;
|
/*0x304-0x30c*/
|
RK_U32 reserve[3];
|
/*pre_intra class mode */
|
// 0x0310~0x394
|
// 0x0310
|
struct {
|
RK_U32 pre_intra_cla0_m0 : 6;
|
RK_U32 pre_intra_cla0_m1 : 6;
|
RK_U32 pre_intra_cla0_m2 : 6;
|
RK_U32 pre_intra_cla0_m3 : 6;
|
RK_U32 pre_intra_cla0_m4 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla0_B0;
|
|
// 0x0314
|
struct {
|
RK_U32 pre_intra_cla0_m5 : 6;
|
RK_U32 pre_intra_cla0_m6 : 6;
|
RK_U32 pre_intra_cla0_m7 : 6;
|
RK_U32 pre_intra_cla0_m8 : 6;
|
RK_U32 pre_intra_cla0_m9 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla0_B1;
|
|
// 0x0318
|
struct {
|
RK_U32 pre_intra_cla1_m0 : 6;
|
RK_U32 pre_intra_cla1_m1 : 6;
|
RK_U32 pre_intra_cla1_m2 : 6;
|
RK_U32 pre_intra_cla1_m3 : 6;
|
RK_U32 pre_intra_cla1_m4 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla1_B0;
|
|
// 0x031c
|
struct {
|
RK_U32 pre_intra_cla1_m5 : 6;
|
RK_U32 pre_intra_cla1_m6 : 6;
|
RK_U32 pre_intra_cla1_m7 : 6;
|
RK_U32 pre_intra_cla1_m8 : 6;
|
RK_U32 pre_intra_cla1_m9 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla1_B1;
|
|
// 0x0320
|
struct {
|
RK_U32 pre_intra_cla2_m0 : 6;
|
RK_U32 pre_intra_cla2_m1 : 6;
|
RK_U32 pre_intra_cla2_m2 : 6;
|
RK_U32 pre_intra_cla2_m3 : 6;
|
RK_U32 pre_intra_cla2_m4 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla2_B0;
|
|
// 0x0324
|
struct {
|
RK_U32 pre_intra_cla2_m5 : 6;
|
RK_U32 pre_intra_cla2_m6 : 6;
|
RK_U32 pre_intra_cla2_m7 : 6;
|
RK_U32 pre_intra_cla2_m8 : 6;
|
RK_U32 pre_intra_cla2_m9 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla2_B1;
|
|
// 0x0328
|
struct {
|
RK_U32 pre_intra_cla3_m0 : 6;
|
RK_U32 pre_intra_cla3_m1 : 6;
|
RK_U32 pre_intra_cla3_m2 : 6;
|
RK_U32 pre_intra_cla3_m3 : 6;
|
RK_U32 pre_intra_cla3_m4 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla3_B0;
|
|
// 0x032c
|
struct {
|
RK_U32 pre_intra_cla3_m5 : 6;
|
RK_U32 pre_intra_cla3_m6 : 6;
|
RK_U32 pre_intra_cla3_m7 : 6;
|
RK_U32 pre_intra_cla3_m8 : 6;
|
RK_U32 pre_intra_cla3_m9 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla3_B1;
|
|
// 0x0330
|
struct {
|
RK_U32 pre_intra_cla4_m0 : 6;
|
RK_U32 pre_intra_cla4_m1 : 6;
|
RK_U32 pre_intra_cla4_m2 : 6;
|
RK_U32 pre_intra_cla4_m3 : 6;
|
RK_U32 pre_intra_cla4_m4 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla4_B0;
|
|
// 0x0334
|
struct {
|
RK_U32 pre_intra_cla4_m5 : 6;
|
RK_U32 pre_intra_cla4_m6 : 6;
|
RK_U32 pre_intra_cla4_m7 : 6;
|
RK_U32 pre_intra_cla4_m8 : 6;
|
RK_U32 pre_intra_cla4_m9 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla4_B1;
|
|
// 0x0338
|
struct {
|
RK_U32 pre_intra_cla5_m0 : 6;
|
RK_U32 pre_intra_cla5_m1 : 6;
|
RK_U32 pre_intra_cla5_m2 : 6;
|
RK_U32 pre_intra_cla5_m3 : 6;
|
RK_U32 pre_intra_cla5_m4 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla5_B0;
|
|
// 0x033c
|
struct {
|
RK_U32 pre_intra_cla5_m5 : 6;
|
RK_U32 pre_intra_cla5_m6 : 6;
|
RK_U32 pre_intra_cla5_m7 : 6;
|
RK_U32 pre_intra_cla5_m8 : 6;
|
RK_U32 pre_intra_cla5_m9 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla5_B1;
|
|
// 0x0340
|
struct {
|
RK_U32 pre_intra_cla6_m0 : 6;
|
RK_U32 pre_intra_cla6_m1 : 6;
|
RK_U32 pre_intra_cla6_m2 : 6;
|
RK_U32 pre_intra_cla6_m3 : 6;
|
RK_U32 pre_intra_cla6_m4 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla6_B0;
|
|
// 0x0344
|
struct {
|
RK_U32 pre_intra_cla6_m5 : 6;
|
RK_U32 pre_intra_cla6_m6 : 6;
|
RK_U32 pre_intra_cla6_m7 : 6;
|
RK_U32 pre_intra_cla6_m8 : 6;
|
RK_U32 pre_intra_cla6_m9 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla6_B1;
|
|
// 0x0348
|
struct {
|
RK_U32 pre_intra_cla7_m0 : 6;
|
RK_U32 pre_intra_cla7_m1 : 6;
|
RK_U32 pre_intra_cla7_m2 : 6;
|
RK_U32 pre_intra_cla7_m3 : 6;
|
RK_U32 pre_intra_cla7_m4 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla7_B0;
|
|
// 0x034c
|
struct {
|
RK_U32 pre_intra_cla7_m5 : 6;
|
RK_U32 pre_intra_cla7_m6 : 6;
|
RK_U32 pre_intra_cla7_m7 : 6;
|
RK_U32 pre_intra_cla7_m8 : 6;
|
RK_U32 pre_intra_cla7_m9 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla7_B1;
|
|
// 0x0350
|
struct {
|
RK_U32 pre_intra_cla8_m0 : 6;
|
RK_U32 pre_intra_cla8_m1 : 6;
|
RK_U32 pre_intra_cla8_m2 : 6;
|
RK_U32 pre_intra_cla8_m3 : 6;
|
RK_U32 pre_intra_cla8_m4 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla8_B0;
|
|
// 0x0354
|
struct {
|
RK_U32 pre_intra_cla8_m5 : 6;
|
RK_U32 pre_intra_cla8_m6 : 6;
|
RK_U32 pre_intra_cla8_m7 : 6;
|
RK_U32 pre_intra_cla8_m8 : 6;
|
RK_U32 pre_intra_cla8_m9 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla8_B1;
|
|
// 0x0358
|
struct {
|
RK_U32 pre_intra_cla9_m0 : 6;
|
RK_U32 pre_intra_cla9_m1 : 6;
|
RK_U32 pre_intra_cla9_m2 : 6;
|
RK_U32 pre_intra_cla9_m3 : 6;
|
RK_U32 pre_intra_cla9_m4 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla9_B0;
|
|
// 0x035c
|
struct {
|
RK_U32 pre_intra_cla9_m5 : 6;
|
RK_U32 pre_intra_cla9_m6 : 6;
|
RK_U32 pre_intra_cla9_m7 : 6;
|
RK_U32 pre_intra_cla9_m8 : 6;
|
RK_U32 pre_intra_cla9_m9 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla9_B1;
|
|
// 0x0360
|
struct {
|
RK_U32 pre_intra_cla10_m0 : 6;
|
RK_U32 pre_intra_cla10_m1 : 6;
|
RK_U32 pre_intra_cla10_m2 : 6;
|
RK_U32 pre_intra_cla10_m3 : 6;
|
RK_U32 pre_intra_cla10_m4 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla10_B0;
|
|
// 0x0364
|
struct {
|
RK_U32 pre_intra_cla10_m5 : 6;
|
RK_U32 pre_intra_cla10_m6 : 6;
|
RK_U32 pre_intra_cla10_m7 : 6;
|
RK_U32 pre_intra_cla10_m8 : 6;
|
RK_U32 pre_intra_cla10_m9 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla10_B1;
|
|
// 0x0368
|
struct {
|
RK_U32 pre_intra_cla11_m0 : 6;
|
RK_U32 pre_intra_cla11_m1 : 6;
|
RK_U32 pre_intra_cla11_m2 : 6;
|
RK_U32 pre_intra_cla11_m3 : 6;
|
RK_U32 pre_intra_cla11_m4 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla11_B0;
|
|
// 0x036c
|
struct {
|
RK_U32 pre_intra_cla11_m5 : 6;
|
RK_U32 pre_intra_cla11_m6 : 6;
|
RK_U32 pre_intra_cla11_m7 : 6;
|
RK_U32 pre_intra_cla11_m8 : 6;
|
RK_U32 pre_intra_cla11_m9 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla11_B1;
|
|
// 0x0370
|
struct {
|
RK_U32 pre_intra_cla12_m0 : 6;
|
RK_U32 pre_intra_cla12_m1 : 6;
|
RK_U32 pre_intra_cla12_m2 : 6;
|
RK_U32 pre_intra_cla12_m3 : 6;
|
RK_U32 pre_intra_cla12_m4 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla12_B0;
|
|
// 0x0374
|
struct {
|
RK_U32 pre_intra_cla12_m5 : 6;
|
RK_U32 pre_intra_cla12_m6 : 6;
|
RK_U32 pre_intra_cla12_m7 : 6;
|
RK_U32 pre_intra_cla12_m8 : 6;
|
RK_U32 pre_intra_cla12_m9 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla12_B1;
|
|
// 0x0378
|
struct {
|
RK_U32 pre_intra_cla13_m0 : 6;
|
RK_U32 pre_intra_cla13_m1 : 6;
|
RK_U32 pre_intra_cla13_m2 : 6;
|
RK_U32 pre_intra_cla13_m3 : 6;
|
RK_U32 pre_intra_cla13_m4 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla13_B0;
|
|
// 0x037c
|
struct {
|
RK_U32 pre_intra_cla13_m5 : 6;
|
RK_U32 pre_intra_cla13_m6 : 6;
|
RK_U32 pre_intra_cla13_m7 : 6;
|
RK_U32 pre_intra_cla13_m8 : 6;
|
RK_U32 pre_intra_cla13_m9 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla13_B1;
|
|
// 0x0380
|
struct {
|
RK_U32 pre_intra_cla14_m0 : 6;
|
RK_U32 pre_intra_cla14_m1 : 6;
|
RK_U32 pre_intra_cla14_m2 : 6;
|
RK_U32 pre_intra_cla14_m3 : 6;
|
RK_U32 pre_intra_cla14_m4 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla14_B0;
|
|
// 0x0384
|
struct {
|
RK_U32 pre_intra_cla14_m5 : 6;
|
RK_U32 pre_intra_cla14_m6 : 6;
|
RK_U32 pre_intra_cla14_m7 : 6;
|
RK_U32 pre_intra_cla14_m8 : 6;
|
RK_U32 pre_intra_cla14_m9 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla14_B1;
|
|
// 0x0388
|
struct {
|
RK_U32 pre_intra_cla15_m0 : 6;
|
RK_U32 pre_intra_cla15_m1 : 6;
|
RK_U32 pre_intra_cla15_m2 : 6;
|
RK_U32 pre_intra_cla15_m3 : 6;
|
RK_U32 pre_intra_cla15_m4 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla15_B0;
|
|
// 0x038c
|
struct {
|
RK_U32 pre_intra_cla15_m5 : 6;
|
RK_U32 pre_intra_cla15_m6 : 6;
|
RK_U32 pre_intra_cla15_m7 : 6;
|
RK_U32 pre_intra_cla15_m8 : 6;
|
RK_U32 pre_intra_cla15_m9 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla15_B1;
|
|
// 0x0390
|
struct {
|
RK_U32 pre_intra_cla16_m0 : 6;
|
RK_U32 pre_intra_cla16_m1 : 6;
|
RK_U32 pre_intra_cla16_m2 : 6;
|
RK_U32 pre_intra_cla16_m3 : 6;
|
RK_U32 pre_intra_cla16_m4 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla16_B0;
|
|
// 0x0394
|
struct {
|
RK_U32 pre_intra_cla16_m5 : 6;
|
RK_U32 pre_intra_cla16_m6 : 6;
|
RK_U32 pre_intra_cla16_m7 : 6;
|
RK_U32 pre_intra_cla16_m8 : 6;
|
RK_U32 pre_intra_cla16_m9 : 6;
|
RK_U32 reserved : 2;
|
} pre_intra_cla16_B1;
|
|
// 0x0398 0x03fC
|
RK_U32 reg_L2reserved1[26];
|
|
// 0x400
|
RK_U32 reg_rdo_ckg_hevc;
|
|
// 0x404~0x40c
|
RK_U32 reg_L2reserved2[3];
|
|
// 0x410
|
struct {
|
RK_U32 intra_l16_sobel_t0 : 12;
|
RK_U32 reserved0 : 4;
|
RK_U32 intra_l16_sobel_t1 : 12;
|
RK_U32 reserved1 : 4;
|
} i16_sobel_t_hevc;
|
|
struct {
|
RK_U32 intra_l16_sobel_a0_qp0 : 6;
|
RK_U32 intra_l16_sobel_a0_qp1 : 6;
|
RK_U32 intra_l16_sobel_a0_qp2 : 6;
|
RK_U32 intra_l16_sobel_a0_qp3 : 6;
|
RK_U32 intra_l16_sobel_a0_qp4 : 6;
|
RK_U32 reserved0 : 2;
|
} i16_sobel_a_00_hevc;
|
|
struct {
|
RK_U32 intra_l16_sobel_a0_qp5 : 6;
|
RK_U32 intra_l16_sobel_a0_qp6 : 6;
|
RK_U32 intra_l16_sobel_a0_qp7 : 6;
|
RK_U32 intra_l16_sobel_a0_qp8 : 6;
|
RK_U32 reserved0 : 8;
|
} i16_sobel_a_01_hevc;
|
|
struct {
|
RK_U32 intra_l16_sobel_b0_qp0 : 15;
|
RK_U32 reserved0 : 1;
|
RK_U32 intra_l16_sobel_b0_qp1 : 15;
|
RK_U32 reserved1 : 1;
|
} i16_sobel_b_00_hevc;
|
|
struct {
|
RK_U32 intra_l16_sobel_b0_qp2 : 15;
|
RK_U32 reserved0 : 1;
|
RK_U32 intra_l16_sobel_b0_qp3 : 15;
|
RK_U32 reserved1 : 1;
|
} i16_sobel_b_01_hevc;
|
|
struct {
|
RK_U32 intra_l16_sobel_b0_qp4 : 15;
|
RK_U32 reserved0 : 1;
|
RK_U32 intra_l16_sobel_b0_qp5 : 15;
|
RK_U32 reserved1 : 1;
|
} i16_sobel_b_02_hevc;
|
|
struct {
|
RK_U32 intra_l16_sobel_b0_qp6 : 15;
|
RK_U32 reserved0 : 1;
|
RK_U32 intra_l16_sobel_b0_qp7 : 15;
|
RK_U32 reserved1 : 1;
|
} i16_sobel_b_03_hevc;
|
|
struct {
|
RK_U32 intra_l16_sobel_b0_qp8 : 15;
|
RK_U32 reserved0 : 17;
|
} i16_sobel_b_04_hevc;
|
|
struct {
|
RK_U32 intra_l16_sobel_c0_qp0 : 6;
|
RK_U32 intra_l16_sobel_c0_qp1 : 6;
|
RK_U32 intra_l16_sobel_c0_qp2 : 6;
|
RK_U32 intra_l16_sobel_c0_qp3 : 6;
|
RK_U32 intra_l16_sobel_c0_qp4 : 6;
|
RK_U32 reserved0 : 2;
|
} i16_sobel_c_00_hevc;
|
|
struct {
|
RK_U32 intra_l16_sobel_c0_qp5 : 6;
|
RK_U32 intra_l16_sobel_c0_qp6 : 6;
|
RK_U32 intra_l16_sobel_c0_qp7 : 6;
|
RK_U32 intra_l16_sobel_c0_qp8 : 6;
|
RK_U32 reserved0 : 8;
|
} i16_sobel_c_01_hevc;
|
|
struct {
|
RK_U32 intra_l16_sobel_d0_qp0 : 15;
|
RK_U32 reserved0 : 1;
|
RK_U32 intra_l16_sobel_d0_qp1 : 15;
|
RK_U32 reserved1 : 1;
|
} i16_sobel_d_00_hevc;
|
|
struct {
|
RK_U32 intra_l16_sobel_d0_qp2 : 15;
|
RK_U32 reserved0 : 1;
|
RK_U32 intra_l16_sobel_d0_qp3 : 15;
|
RK_U32 reserved1 : 1;
|
} i16_sobel_d_01_hevc;
|
|
struct {
|
RK_U32 intra_l16_sobel_d0_qp4 : 15;
|
RK_U32 reserved0 : 1;
|
RK_U32 intra_l16_sobel_d0_qp5 : 15;
|
RK_U32 reserved1 : 1;
|
} i16_sobel_d_02_hevc;
|
|
struct {
|
RK_U32 intra_l16_sobel_d0_qp6 : 15;
|
RK_U32 reserved0 : 1;
|
RK_U32 intra_l16_sobel_d0_qp7 : 15;
|
RK_U32 reserved1 : 1;
|
} i16_sobel_d_03_hevc;
|
|
struct {
|
RK_U32 intra_l16_sobel_d0_qp8 : 15;
|
RK_U32 reserved0 : 17;
|
} i16_sobel_d_04_hevc;
|
|
RK_U32 i16_sobel_e_00_17_hevc[18];// 0 2 4 ... low 32bit ; 1 3 5 ... high 2bit
|
|
// 0x494
|
struct {
|
RK_U32 intra_l32_sobel_t2 : 12;
|
RK_U32 reserved0 : 4;
|
RK_U32 intra_l32_sobel_t3 : 12;
|
RK_U32 reserved1 : 4;
|
} i32_sobel_t_00_hevc;
|
|
struct {
|
RK_U32 intra_l32_sobel_t4 : 6;
|
RK_U32 reserved0 : 24;
|
|
} i32_sobel_t_01_hevc;
|
|
struct {
|
RK_U32 intra_l32_sobel_t5 : 12;
|
RK_U32 reserved0 : 4;
|
RK_U32 intra_l32_sobel_t6 : 12;
|
RK_U32 reserved1 : 4;
|
} i32_sobel_t_02_hevc;
|
|
struct {
|
RK_U32 intra_l32_sobel_a1_qp0 : 6;
|
RK_U32 intra_l32_sobel_a1_qp1 : 6;
|
RK_U32 intra_l32_sobel_a1_qp2 : 6;
|
RK_U32 intra_l32_sobel_a1_qp3 : 6;
|
RK_U32 intra_l32_sobel_a1_qp4 : 6;
|
RK_U32 reserved0 : 2;
|
} i32_sobel_a_hevc;
|
|
struct {
|
RK_U32 intra_l32_sobel_b1_qp0 : 15;
|
RK_U32 reserved0 : 1;
|
RK_U32 intra_l32_sobel_b1_qp1 : 15;
|
RK_U32 reserved1 : 1;
|
} i32_sobel_b_00_hevc;
|
|
struct {
|
RK_U32 intra_l32_sobel_b1_qp2 : 15;
|
RK_U32 reserved0 : 1;
|
RK_U32 intra_l32_sobel_b1_qp3 : 15;
|
RK_U32 reserved1 : 1;
|
} i32_sobel_b_01_hevc;
|
|
struct {
|
RK_U32 intra_l32_sobel_b1_qp4 : 15;
|
RK_U32 reserved0 : 17;
|
} i32_sobel_b_02_hevc;
|
|
struct {
|
RK_U32 intra_l32_sobel_c1_qp0 : 6;
|
RK_U32 intra_l32_sobel_c1_qp1 : 6;
|
RK_U32 intra_l32_sobel_c1_qp2 : 6;
|
RK_U32 intra_l32_sobel_c1_qp3 : 6;
|
RK_U32 intra_l32_sobel_c1_qp4 : 6;
|
RK_U32 reserved0 : 2;
|
} i32_sobel_c_hevc;
|
|
struct {
|
RK_U32 intra_l32_sobel_d1_qp0 : 15;
|
RK_U32 reserved0 : 1;
|
RK_U32 intra_l32_sobel_d1_qp1 : 15;
|
RK_U32 reserved1 : 1;
|
} i32_sobel_d_00_hevc;
|
|
struct {
|
RK_U32 intra_l32_sobel_d1_qp2 : 15;
|
RK_U32 reserved0 : 1;
|
RK_U32 intra_l32_sobel_d1_qp3 : 15;
|
RK_U32 reserved1 : 1;
|
} i32_sobel_d_01_hevc;
|
|
struct {
|
RK_U32 intra_l32_sobel_d1_qp4 : 15;
|
RK_U32 reserved0 : 17;
|
} i32_sobel_d_02_hevc;
|
// 0x4c0~0x4e4
|
RK_U32 i32_sobel_e_00_09_hevc[10];// 0 2 4 ... low 32bit ; 1 3 5 ... high 9bit
|
} H265eV54xL2RegSet;
|
|
#endif /* __HAL_H265E_VEPU54X_REG_L2_H__ */
|