From: Yaowu Xu Date: Mon, 6 Dec 2010 21:33:01 +0000 (-0800) Subject: adjust RDMULT for UV plane in quantization RDO X-Git-Tag: v0.9.6~156^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7c03a1c3083645ef1b59078a018798aed8d95f96;p=libvpx adjust RDMULT for UV plane in quantization RDO This patch adds a weighting factor on RDMULT for UV blocks. The change has an overall gain about 0.5% based on ssim, between 0.1 and 0.2% by psnr numbers. Change-Id: I97781b077ce3bb7e34241b03268491917e8d1d72 --- diff --git a/vp8/encoder/encodemb.c b/vp8/encoder/encodemb.c index e9753ac48..5ee755942 100644 --- a/vp8/encoder/encodemb.c +++ b/vp8/encoder/encodemb.c @@ -243,9 +243,9 @@ struct vp8_token_state{ }; // TODO: experiments to find optimal multiple numbers -#define Y1_RD_MULT 1 -#define UV_RD_MULT 1 -#define Y2_RD_MULT 4 +#define Y1_RD_MULT 4 +#define UV_RD_MULT 2 +#define Y2_RD_MULT 16 static const int plane_rd_mult[4]= { @@ -309,7 +309,7 @@ void vp8_optimize_b(MACROBLOCK *mb, int ib, int type, eob = d->eob; /* Now set up a Viterbi trellis to evaluate alternative roundings. */ - rdmult = (mb->rdmult << 2)*err_mult; + rdmult = mb->rdmult * err_mult; if(mb->e_mbd.mode_info_context->mbmi.ref_frame==INTRA_FRAME) rdmult = (rdmult * 9)>>4;