diff options
author | Marco Paniconi <marpan@google.com> | 2018-07-27 06:02:34 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-07-27 06:02:34 +0000 |
commit | 187fac45a4fea6facad79e8e898bfb5bb4a45365 (patch) | |
tree | ec25aa3a9dcb3a25ef308c461002feacd2561e3e /vp9/encoder | |
parent | d0ad2e25d156cf538888f9b2389361d660a0421e (diff) | |
parent | d22ea1d3f6f7c4ca97e07c5637696ece3db11d54 (diff) | |
download | libvpx-187fac45a4fea6facad79e8e898bfb5bb4a45365.tar libvpx-187fac45a4fea6facad79e8e898bfb5bb4a45365.tar.gz libvpx-187fac45a4fea6facad79e8e898bfb5bb4a45365.tar.bz2 libvpx-187fac45a4fea6facad79e8e898bfb5bb4a45365.zip |
Merge "vp9: 4x4 tx_size for nonrd-pickmode for screen content"
Diffstat (limited to 'vp9/encoder')
-rw-r--r-- | vp9/encoder/vp9_pickmode.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_pickmode.c b/vp9/encoder/vp9_pickmode.c index 4ff385a23..50a2c9057 100644 --- a/vp9/encoder/vp9_pickmode.c +++ b/vp9/encoder/vp9_pickmode.c @@ -406,6 +406,11 @@ static void model_rd_for_sb_y_large(VP9_COMP *cpi, BLOCK_SIZE bsize, tx_size = TX_8X8; else if (tx_size > TX_16X16) tx_size = TX_16X16; + + // For screen-content force 4X4 tx_size over 8X8, for large variance. + if (cpi->oxcf.content == VP9E_CONTENT_SCREEN && tx_size == TX_8X8 && + bsize <= BLOCK_16X16 && var > (ac_thr << 6)) + tx_size = TX_4X4; } else { tx_size = VPXMIN(max_txsize_lookup[bsize], tx_mode_to_biggest_tx_size[cpi->common.tx_mode]); @@ -588,6 +593,12 @@ static void model_rd_for_sb_y(VP9_COMP *cpi, BLOCK_SIZE bsize, MACROBLOCK *x, xd->mi[0]->tx_size = TX_8X8; else if (xd->mi[0]->tx_size > TX_16X16) xd->mi[0]->tx_size = TX_16X16; + + // For screen-content force 4X4 tx_size over 8X8, for large variance. + if (cpi->oxcf.content == VP9E_CONTENT_SCREEN && + xd->mi[0]->tx_size == TX_8X8 && bsize <= BLOCK_16X16 && + var > (ac_thr << 6)) + xd->mi[0]->tx_size = TX_4X4; } else { xd->mi[0]->tx_size = VPXMIN(max_txsize_lookup[bsize], |