diff --git a/test/mpi_enc_test.c b/test/mpi_enc_test.c index 598f49f3..35761556 100644 --- a/test/mpi_enc_test.c +++ b/test/mpi_enc_test.c @@ -616,18 +616,19 @@ MPP_RET test_mpp_enc_cfg_setup(MpiEncMultiCtxInfo *info) } /* setup fine tuning paramters */ - mpp_enc_cfg_set_s32(cfg, "tune:speed", cmd->speed); mpp_enc_cfg_set_s32(cfg, "tune:anti_flicker_str", p->anti_flicker_str); mpp_enc_cfg_set_s32(cfg, "tune:atr_str_i", p->atr_str_i); mpp_enc_cfg_set_s32(cfg, "tune:atr_str_p", p->atr_str_p); mpp_enc_cfg_set_s32(cfg, "tune:atl_str", p->atl_str); - mpp_enc_cfg_set_s32(cfg, "tune:sao_str_i", p->sao_str_i); - mpp_enc_cfg_set_s32(cfg, "tune:sao_str_p", p->sao_str_p); - - mpp_enc_cfg_set_s32(cfg, "tune:scene_mode", p->scene_mode); mpp_enc_cfg_set_s32(cfg, "tune:deblur_en", cmd->deblur_en); mpp_enc_cfg_set_s32(cfg, "tune:deblur_str", cmd->deblur_str); + mpp_enc_cfg_set_s32(cfg, "tune:sao_str_i", p->sao_str_i); + mpp_enc_cfg_set_s32(cfg, "tune:sao_str_p", p->sao_str_p); + mpp_enc_cfg_set_s32(cfg, "tune:lambda_idx_p", cmd->lambda_idx_p); + mpp_enc_cfg_set_s32(cfg, "tune:lambda_idx_i", cmd->lambda_idx_i); mpp_enc_cfg_set_s32(cfg, "tune:rc_container", cmd->rc_container); + mpp_enc_cfg_set_s32(cfg, "tune:scene_mode", p->scene_mode); + mpp_enc_cfg_set_s32(cfg, "tune:speed", cmd->speed); mpp_enc_cfg_set_s32(cfg, "tune:vmaf_opt", 0); /* setup hardware specified parameters */ diff --git a/utils/mpi_enc_utils.c b/utils/mpi_enc_utils.c index 6d096645..4c5e4d99 100644 --- a/utils/mpi_enc_utils.c +++ b/utils/mpi_enc_utils.c @@ -652,6 +652,32 @@ RK_S32 mpi_enc_opt_bias_p(void *ctx, const char *next) return 0; } +RK_S32 mpi_enc_opt_lmd(void *ctx, const char *next) +{ + MpiEncTestArgs *cmd = (MpiEncTestArgs *)ctx; + + if (next) { + cmd->lambda_idx_p = atoi(next); + return 1; + } + + mpp_err("invalid lambda idx\n"); + return 0; +} + +RK_S32 mpi_enc_opt_lmdi(void *ctx, const char *next) +{ + MpiEncTestArgs *cmd = (MpiEncTestArgs *)ctx; + + if (next) { + cmd->lambda_idx_i = atoi(next); + return 1; + } + + mpp_err("invalid intra lambda idx\n"); + return 0; +} + RK_S32 mpi_enc_opt_speed(void *ctx, const char *next) { MpiEncTestArgs *cmd = (MpiEncTestArgs *)ctx; @@ -723,7 +749,9 @@ static MppOptInfo enc_opts[] = { {"bc", "bitrate container", "rc_container, 0:off 1:weak 2:strong", mpi_enc_opt_bc}, {"ibias", "bias i", "bias_i", mpi_enc_opt_bias_i}, {"pbias", "bias p", "bias_p", mpi_enc_opt_bias_p}, - {"speed", "enc speed", "speed", mpi_enc_opt_speed}, + {"lmd", "lambda idx", "lambda_idx_p 0~8", mpi_enc_opt_lmd}, + {"lmdi", "lambda i idx", "lambda_idx_i 0~8", mpi_enc_opt_lmdi}, + {"speed", "enc speed", "speed mode", mpi_enc_opt_speed}, {"kmpp", "kmpp path enable", "kmpp path enable", mpi_enc_opt_kmpp} }; diff --git a/utils/mpi_enc_utils.h b/utils/mpi_enc_utils.h index 6c7bd050..a1e378d0 100644 --- a/utils/mpi_enc_utils.h +++ b/utils/mpi_enc_utils.h @@ -83,11 +83,14 @@ typedef struct MpiEncTestArgs_t { /* -qpdd cu_qp_delta_depth */ RK_S32 cu_qp_delta_depth; RK_S32 anti_flicker_str; + RK_S32 atf_str; RK_S32 atr_str_i; RK_S32 atr_str_p; RK_S32 atl_str; RK_S32 sao_str_i; RK_S32 sao_str_p; + RK_S32 lambda_idx_p; + RK_S32 lambda_idx_i; RK_S32 speed; /* -dbe deblur enable flag * -dbs deblur strength