From 8ee640f9792a0f8610cc9ca98c4a62429483d342 Mon Sep 17 00:00:00 2001 From: Geza Lore Date: Thu, 12 May 2016 14:55:56 +0100 Subject: [PATCH] Compute cost of UV mode accurately for intra blocks. We used to cache the cost of the UV mode from the search with a different previously tried Y mode, but the UV mode is contexted on the Y mode, so caching the cost is inaccurate. Change-Id: Ib003510afb6fc9befb7808b67b0be64f1c0a0804 --- vp10/encoder/rdopt.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vp10/encoder/rdopt.c b/vp10/encoder/rdopt.c index 1ddbcd459..bc767aea4 100644 --- a/vp10/encoder/rdopt.c +++ b/vp10/encoder/rdopt.c @@ -9024,7 +9024,8 @@ void vp10_rd_pick_inter_mode_sb(VP10_COMP *cpi, } #endif // CONFIG_EXT_INTRA - rate2 = rate_y + intra_mode_cost[mbmi->mode] + rate_uv_intra[uv_tx]; + rate2 = rate_y + intra_mode_cost[mbmi->mode] + + rate_uv + cpi->intra_uv_mode_cost[mbmi->mode][mbmi->uv_mode]; if (cpi->common.allow_screen_content_tools && mbmi->mode == DC_PRED) rate2 += vp10_cost_bit(vp10_default_palette_y_mode_prob[bsize - BLOCK_8X8] -- 2.49.0