From 7c03a1c3083645ef1b59078a018798aed8d95f96 Mon Sep 17 00:00:00 2001 From: Yaowu Xu Date: Mon, 6 Dec 2010 13:33:01 -0800 Subject: [PATCH] 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 --- vp8/encoder/encodemb.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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;