mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-08 10:30:04 +08:00
[rc]: Update intra qp and qscale calculation
Change-Id: Ic5ddfbb7f034e4cd2abe65cb55192c3386baf3e3 Signed-off-by: sayon.chen <sayon.chen@rock-chips.com> Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This commit is contained in:
@@ -1307,22 +1307,23 @@ MPP_RET rc_model_v2_hal_start(void *ctx, EncRcTask *task)
|
|||||||
|
|
||||||
/* setup quality parameters */
|
/* setup quality parameters */
|
||||||
if (p->first_frm_flg && frm->is_intra) {
|
if (p->first_frm_flg && frm->is_intra) {
|
||||||
|
RK_S32 i_quality_delta = usr_cfg->i_quality_delta;
|
||||||
|
|
||||||
if (info->quality_target < 0) {
|
if (info->quality_target < 0) {
|
||||||
if (info->bit_target) {
|
if (info->bit_target) {
|
||||||
p->start_qp = cal_first_i_start_qp(info->bit_target, mb_w * mb_h);
|
info->quality_target = cal_first_i_start_qp(info->bit_target, mb_w * mb_h);
|
||||||
p->cur_scale_qp = p->start_qp << 6;
|
|
||||||
} else {
|
} else {
|
||||||
mpp_log("init qp not set on fix qp mode, use default qp\n");
|
mpp_log("init qp not set on fix qp mode, use default qp\n");
|
||||||
info->quality_target = 26;
|
info->quality_target = 26;
|
||||||
p->start_qp = 26;
|
|
||||||
p->cur_scale_qp = 26 << 6;
|
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
p->cur_scale_qp = info->quality_target << 6;
|
|
||||||
if (p->reenc_cnt)
|
|
||||||
p->cur_scale_qp += p->next_ratio;
|
|
||||||
|
|
||||||
p->start_qp = p->cur_scale_qp >> 6;
|
if (p->reenc_cnt) {
|
||||||
|
p->cur_scale_qp += p->next_ratio;
|
||||||
|
p->start_qp = (p->cur_scale_qp >> 6) - i_quality_delta;
|
||||||
|
} else {
|
||||||
|
p->start_qp = info->quality_target;
|
||||||
|
p->cur_scale_qp = (info->quality_target + i_quality_delta) << 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc_dbg_rc("qp: start %2d cur_scale %d next_ratio %d reenc %d\n",
|
rc_dbg_rc("qp: start %2d cur_scale %d next_ratio %d reenc %d\n",
|
||||||
|
Reference in New Issue
Block a user