diff options
author | Yunqing Wang <yunqingwang@google.com> | 2015-07-29 13:37:41 -0700 |
---|---|---|
committer | Yunqing Wang <yunqingwang@google.com> | 2015-07-30 18:53:40 -0700 |
commit | 3b2e73b9a476ad1b6cffb126118e394c65cfecab (patch) | |
tree | dd7cbff2513e9ac3936c0284e3f0b69b7295303a /vp9/encoder/vp9_encodeframe.c | |
parent | eb6b443bd266d3c1f7931830de92fd11b86e27cd (diff) | |
download | libvpx-3b2e73b9a476ad1b6cffb126118e394c65cfecab.tar libvpx-3b2e73b9a476ad1b6cffb126118e394c65cfecab.tar.gz libvpx-3b2e73b9a476ad1b6cffb126118e394c65cfecab.tar.bz2 libvpx-3b2e73b9a476ad1b6cffb126118e394c65cfecab.zip |
Remove tx cache and speed up tx size selection
1. The RD scores obtained during the tx size selection were stored in the
tx cache, and used to help make the tx decision for the following frames.
This wasn't used anymore in VP9 encoder. Recovered the related decision
making code from 1.5+ years ago, and borg tests didn't show any quality
gain. This patch removed it to lower the complexity.
2. An optimization was done after the above refactoring. If the tx_mode
is not TX_MODE_SELECT, we only need to test the chosen tx size instead
of all posible tx sizes. This gave a 1.5% average speed gain at speed 2,
and a 1% average speed gain at speed 3.
Change-Id: Id8cd650e066a8cef33829d8c15388a8138adc78c
Diffstat (limited to 'vp9/encoder/vp9_encodeframe.c')
-rw-r--r-- | vp9/encoder/vp9_encodeframe.c | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c index 6199db426..e7f14eb7e 100644 --- a/vp9/encoder/vp9_encodeframe.c +++ b/vp9/encoder/vp9_encodeframe.c @@ -1039,14 +1039,6 @@ static void update_state(VP9_COMP *cpi, ThreadData *td, if (cpi->oxcf.aq_mode) vp9_init_plane_quantizers(cpi, x); - // FIXME(rbultje) I'm pretty sure this should go to the end of this block - // (i.e. after the output_enabled) - if (bsize < BLOCK_32X32) { - if (bsize < BLOCK_16X16) - ctx->tx_rd_diff[ALLOW_16X16] = ctx->tx_rd_diff[ALLOW_8X8]; - ctx->tx_rd_diff[ALLOW_32X32] = ctx->tx_rd_diff[ALLOW_16X16]; - } - if (is_inter_block(mbmi) && mbmi->sb_type < BLOCK_8X8) { mbmi->mv[0].as_int = mi->bmi[3].as_mv[0].as_int; mbmi->mv[1].as_int = mi->bmi[3].as_mv[1].as_int; |