From 6ab6ac450b29ea21411072297bafb9a78a78291d Mon Sep 17 00:00:00 2001 From: hui su Date: Fri, 6 Nov 2015 13:56:51 -0800 Subject: Use accurate bit cost for uv_mode in UV intra mode RD selection On derflr, +0.1% for VP10; however, -0.03% on VP9. Change-Id: I09c724232ede74254043d61d3cadc506256af0af --- vp10/encoder/rdopt.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'vp10/encoder/rdopt.c') diff --git a/vp10/encoder/rdopt.c b/vp10/encoder/rdopt.c index cecc59c8f..8ba211017 100644 --- a/vp10/encoder/rdopt.c +++ b/vp10/encoder/rdopt.c @@ -1369,7 +1369,8 @@ static int64_t rd_pick_intra_sbuv_mode(VP10_COMP *cpi, MACROBLOCK *x, if (!super_block_uvrd(cpi, x, &this_rate_tokenonly, &this_distortion, &s, &this_sse, bsize, best_rd)) continue; - this_rate = this_rate_tokenonly + cpi->intra_uv_mode_cost[mode]; + this_rate = this_rate_tokenonly + + cpi->intra_uv_mode_cost[xd->mi[0]->mbmi.mode][mode]; this_rd = RDCOST(x->rdmult, x->rddiv, this_rate, this_distortion); if (this_rd < best_rd) { @@ -1398,7 +1399,8 @@ static int64_t rd_sbuv_dcpred(const VP10_COMP *cpi, MACROBLOCK *x, memset(x->skip_txfm, SKIP_TXFM_NONE, sizeof(x->skip_txfm)); super_block_uvrd(cpi, x, rate_tokenonly, distortion, skippable, &unused, bsize, INT64_MAX); - *rate = *rate_tokenonly + cpi->intra_uv_mode_cost[DC_PRED]; + *rate = *rate_tokenonly + + cpi->intra_uv_mode_cost[x->e_mbd.mi[0]->mbmi.mode][DC_PRED]; return RDCOST(x->rdmult, x->rddiv, *rate, *distortion); } -- cgit v1.2.3