ref: 01860f6fe4ad45c86630d4b5b3079afada6f0628
parent: 90a109f0eef8bfaaa4869cf7b2873dac5076b582
author: Marco <[email protected]>
date: Tue Sep 22 06:42:55 EDT 2015
Non-rd mode: Limit transform size for intra to 16x16. Limit transform size for intra to 16x16, for non-screen content mode. Little/no change in speed or metrics. 32x32 intra block is rarley selected in RTC (non-screen content) case, but some visual improvement can be seen in some example, e.g., captured_video_dark_whd.yuv. Change-Id: I68e2db87875343b3fb9bb407a7709f0088f84072
--- a/vp9/encoder/vp9_pickmode.c
+++ b/vp9/encoder/vp9_pickmode.c
@@ -1532,11 +1532,13 @@
(!x->skip && best_rdc.rdcost > inter_mode_thresh &&
bsize <= cpi->sf.max_intra_bsize)) {
struct estimate_block_intra_args args = { cpi, x, DC_PRED, 0, 0 };
- const TX_SIZE intra_tx_size =
- VPXMIN(max_txsize_lookup[bsize],
- tx_mode_to_biggest_tx_size[cpi->common.tx_mode]);
int i;
TX_SIZE best_intra_tx_size = TX_SIZES;
+ TX_SIZE intra_tx_size =
+ VPXMIN(max_txsize_lookup[bsize],
+ tx_mode_to_biggest_tx_size[cpi->common.tx_mode]);
+ if (cpi->oxcf.content != VP9E_CONTENT_SCREEN && intra_tx_size > TX_16X16)
+ intra_tx_size = TX_16X16;
if (reuse_inter_pred && best_pred != NULL) {
if (best_pred->data == orig_dst.buf) {