From e371cd73a346339d467ec9dcc0af59511f6c23cc Mon Sep 17 00:00:00 2001 From: Yaowu Xu Date: Mon, 24 Jun 2013 16:43:26 -0700 Subject: [PATCH] change to enable use_largest_txform feature for all regular inter frames at speed 1 Change-Id: I0a8b301273ecf2b8730ab1f6b7a05f89f4d498e0 --- vp9/encoder/vp9_encodeframe.c | 7 +++++++ vp9/encoder/vp9_onyx_if.c | 3 +++ 2 files changed, 10 insertions(+) diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c index f655d456b..836a234b2 100644 --- a/vp9/encoder/vp9_encodeframe.c +++ b/vp9/encoder/vp9_encodeframe.c @@ -1617,6 +1617,12 @@ static void switch_lossless_mode(VP9_COMP *cpi, int lossless) { } } +static void switch_txfm_mode(VP9_COMP *cpi) { + if (cpi->sf.use_largest_txform && + cpi->common.txfm_mode >= ALLOW_32X32) + cpi->common.txfm_mode = ALLOW_32X32; +} + static void encode_frame_internal(VP9_COMP *cpi) { int mi_row; MACROBLOCK * const x = &cpi->mb; @@ -1661,6 +1667,7 @@ static void encode_frame_internal(VP9_COMP *cpi) { vp9_initialize_rd_consts(cpi, cm->base_qindex + cm->y_dc_delta_q); vp9_initialize_me_consts(cpi, cm->base_qindex); + switch_txfm_mode(cpi); if (cpi->oxcf.tuning == VP8_TUNE_SSIM) { // Initialize encode frame context. diff --git a/vp9/encoder/vp9_onyx_if.c b/vp9/encoder/vp9_onyx_if.c index e02e73232..48a8b48c6 100644 --- a/vp9/encoder/vp9_onyx_if.c +++ b/vp9/encoder/vp9_onyx_if.c @@ -724,6 +724,9 @@ void vp9_set_speed_features(VP9_COMP *cpi) { sf->first_step = 1; sf->use_avoid_tested_higherror = 1; sf->adjust_thresholds_by_speed = 1; + sf->use_largest_txform = !(cpi->common.frame_type == KEY_FRAME || + cpi->common.intra_only || + cpi->common.show_frame == 0); } if (speed == 2) { sf->comp_inter_joint_search_thresh = BLOCK_SIZE_SB8X8; -- 2.40.0