From 56a8bc54a61619f675694f06be7fe5cce2a6dc56 Mon Sep 17 00:00:00 2001 From: Jingning Han Date: Tue, 16 Dec 2014 16:02:58 -0800 Subject: [PATCH] Properly store the tx_size of selected intra mode Use a temporary variable to store the transform size associated with the best intra mode and restore the mode_info if the overall best mode is intra mode. Change-Id: I2606e0061ad32f91b095462902b1eb734b128eea --- vp9/encoder/vp9_pickmode.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vp9/encoder/vp9_pickmode.c b/vp9/encoder/vp9_pickmode.c index e0892fe35..54423789b 100644 --- a/vp9/encoder/vp9_pickmode.c +++ b/vp9/encoder/vp9_pickmode.c @@ -845,6 +845,7 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, MIN(max_txsize_lookup[bsize], tx_mode_to_biggest_tx_size[cpi->common.tx_mode]); int i; + TX_SIZE best_intra_tx_size = TX_SIZES; if (reuse_inter_pred && best_pred != NULL) { if (best_pred->data == orig_dst.buf) { @@ -888,7 +889,7 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, if (this_rdc.rdcost < best_rdc.rdcost) { best_rdc = this_rdc; mbmi->mode = this_mode; - mbmi->tx_size = intra_tx_size; + best_intra_tx_size = mbmi->tx_size; mbmi->ref_frame[0] = INTRA_FRAME; mbmi->uv_mode = this_mode; mbmi->mv[0].as_int = INVALID_MV; @@ -899,6 +900,8 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, if (mbmi->ref_frame[0] != INTRA_FRAME) { x->skip_txfm[0] = best_mode_skip_txfm; mbmi->tx_size = best_tx_size; + } else { + mbmi->tx_size = best_intra_tx_size; } } -- 2.40.0