From: Jingning Han Date: Wed, 12 Mar 2014 17:03:28 +0000 (-0700) Subject: Tune rate-distortion modeling for non-RD mode decision X-Git-Tag: v1.4.0~2077^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7686c950b563b63bd39f3699558bb22ba965274b;p=libvpx Tune rate-distortion modeling for non-RD mode decision This commit adjusts the rate-distortion modeling for non-RD mode decision. It puts more weights on energy from AC coefficients when estimating the cost. The coding performance for rtc testset is improved by 0.72%. Change-Id: Ifa6ff11311a513ec2b10586589e82a9a21f6c61c --- diff --git a/vp9/encoder/vp9_pickmode.c b/vp9/encoder/vp9_pickmode.c index e38ba98d6..4bafabdf5 100644 --- a/vp9/encoder/vp9_pickmode.c +++ b/vp9/encoder/vp9_pickmode.c @@ -207,14 +207,14 @@ static void model_rd_for_sb_y(VP9_COMP *cpi, BLOCK_SIZE bsize, struct macroblockd_plane *const pd = &xd->plane[0]; const BLOCK_SIZE bs = get_plane_block_size(bsize, pd); - (void) cpi->fn_ptr[bs].vf(p->src.buf, p->src.stride, - pd->dst.buf, pd->dst.stride, &sse); + int var = cpi->fn_ptr[bs].vf(p->src.buf, p->src.stride, + pd->dst.buf, pd->dst.stride, &sse); - vp9_model_rd_from_var_lapndz(sse, 1 << num_pels_log2_lookup[bs], + vp9_model_rd_from_var_lapndz(var + sse, 1 << num_pels_log2_lookup[bs], pd->dequant[1] >> 3, &rate, &dist); *out_rate_sum = rate; - *out_dist_sum = dist << 4; + *out_dist_sum = dist << 3; } // TODO(jingning) placeholder for inter-frame non-RD mode decision.