[h265e]: Add sao disable cfg

Change-Id: I446178d5d2aefa26750382f126fac582ae93e16c
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
This commit is contained in:
sayon.chen
2021-08-25 17:51:24 +08:00
committed by Herman Chen
parent 026a768de5
commit 09d2bca7e7
4 changed files with 13 additions and 7 deletions

View File

@@ -881,8 +881,8 @@ typedef struct MppEncH265DblkCfg_t {
} MppEncH265DblkCfg_t;
typedef struct MppEncH265SaoCfg_t {
RK_U32 slice_sao_luma_flag;
RK_U32 slice_sao_chroma_flag;
RK_U32 slice_sao_luma_disable;
RK_U32 slice_sao_chroma_disable;
} MppEncH265SaoCfg;
typedef struct MppEncH265TransCfg_t {

View File

@@ -211,6 +211,8 @@ RK_U32 mpp_enc_cfg_debug = 0;
ENTRY(h265, qp_max_i, S32, RK_S32, MPP_ENC_RC_CFG_CHANGE_QP_RANGE_I, rc, qp_max_i) \
ENTRY(h265, qp_step, S32, RK_S32, MPP_ENC_RC_CFG_CHANGE_QP_MAX_STEP, rc, qp_max_step) \
ENTRY(h265, qp_delta_ip, S32, RK_S32, MPP_ENC_RC_CFG_CHANGE_QP_IP, rc, qp_delta_ip) \
ENTRY(h265, sao_luma_disable, S32, RK_S32, MPP_ENC_H265_CFG_SAO_CHANGE, codec.h265, sao_cfg.slice_sao_luma_disable) \
ENTRY(h265, sao_chroma_disable, S32, RK_S32, MPP_ENC_H265_CFG_SAO_CHANGE, codec.h265, sao_cfg.slice_sao_chroma_disable) \
/* vp8 config */ \
ENTRY(vp8, qp_init, S32, RK_S32, MPP_ENC_RC_CFG_CHANGE_QP_INIT, rc, qp_init) \
ENTRY(vp8, qp_min, S32, RK_S32, MPP_ENC_RC_CFG_CHANGE_QP_RANGE, rc, qp_min) \
@@ -251,7 +253,7 @@ RK_S32 const_strlen(const char* str)
return *str ? 1 + const_strlen(str + 1) : 0;
}
static RK_S32 node_len = ENTRY_TABLE(EXPAND_AS_STRLEN) - 73;
static RK_S32 node_len = ENTRY_TABLE(EXPAND_AS_STRLEN) - 61;
class MppEncCfgService
{

View File

@@ -95,8 +95,8 @@ static MPP_RET h265e_init(void *ctx, EncImplCfg *ctrlCfg)
h265->slice_cfg.split_enable = 0;
h265->entropy_cfg.cabac_init_flag = 1;
h265->sao_cfg.slice_sao_chroma_flag = 1;
h265->sao_cfg.slice_sao_luma_flag = 1;
h265->sao_cfg.slice_sao_chroma_disable = 0;
h265->sao_cfg.slice_sao_luma_disable = 0;
h265->dblk_cfg.slice_deblocking_filter_disabled_flag = 0;
h265->cu_cfg.strong_intra_smoothing_enabled_flag = 1;
h265->merge_cfg.max_mrg_cnd = 2;
@@ -434,6 +434,10 @@ static MPP_RET h265e_proc_h265_cfg(MppEncH265Cfg *dst, MppEncH265Cfg *src)
memcpy(&dst->vui, &src->vui, sizeof(src->vui));
}
if (change & MPP_ENC_H265_CFG_SAO_CHANGE) {
memcpy(&dst->sao_cfg, &src->sao_cfg, sizeof(src->sao_cfg));
}
/*
* NOTE: use OR here for avoiding overwrite on multiple config
* When next encoding is trigger the change flag will be clear

View File

@@ -255,8 +255,8 @@ void h265e_slice_init(void *ctx, EncFrmStatus curr)
slice->m_deblockingFilterBetaOffsetDiv2 = pps->m_deblockingFilterBetaOffsetDiv2;
slice->m_deblockingFilterTcOffsetDiv2 = pps->m_deblockingFilterTcOffsetDiv2;
}
slice->m_saoEnabledFlag = codec->sao_cfg.slice_sao_luma_flag;
slice->m_saoEnabledFlagChroma = codec->sao_cfg.slice_sao_chroma_flag;
slice->m_saoEnabledFlag = !codec->sao_cfg.slice_sao_luma_disable;
slice->m_saoEnabledFlagChroma = !codec->sao_cfg.slice_sao_chroma_disable;
slice->m_maxNumMergeCand = codec->merge_cfg.max_mrg_cnd;
slice->m_cabacInitFlag = codec->entropy_cfg.cabac_init_flag;
slice->m_picOutputFlag = 1;