diff options
author | Adam Xu <adam@xuyaowu.com> | 2014-08-13 19:50:01 -0700 |
---|---|---|
committer | Gerrit Code Review <gerrit@gerrit.golo.chromium.org> | 2014-08-13 19:50:01 -0700 |
commit | 1d476a9ba4d7d52a3d43a81d887b67d58bd90b6b (patch) | |
tree | 572b25c86e66ef776596ed1449a2387b537ba1fe /vp9 | |
parent | 41c89f7aee9d3564f1b3bb70f700867e396a268f (diff) | |
parent | b6a41802c410969113c17856238afd88f462c507 (diff) | |
download | libvpx-1d476a9ba4d7d52a3d43a81d887b67d58bd90b6b.tar libvpx-1d476a9ba4d7d52a3d43a81d887b67d58bd90b6b.tar.gz libvpx-1d476a9ba4d7d52a3d43a81d887b67d58bd90b6b.tar.bz2 libvpx-1d476a9ba4d7d52a3d43a81d887b67d58bd90b6b.zip |
Merge "Simplify select_tx_mode()"
Diffstat (limited to 'vp9')
-rw-r--r-- | vp9/encoder/vp9_encodeframe.c | 36 |
1 files changed, 9 insertions, 27 deletions
diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c index b20b662f3..c6bc2c205 100644 --- a/vp9/encoder/vp9_encodeframe.c +++ b/vp9/encoder/vp9_encodeframe.c @@ -2581,35 +2581,17 @@ static MV_REFERENCE_FRAME get_frame_type(const VP9_COMP *cpi) { } static TX_MODE select_tx_mode(const VP9_COMP *cpi) { - if (cpi->mb.e_mbd.lossless) { + if (cpi->mb.e_mbd.lossless) return ONLY_4X4; - } else if (cpi->common.current_video_frame == 0) { + if (cpi->common.current_video_frame == 0) return TX_MODE_SELECT; - } else { - if (cpi->sf.tx_size_search_method == USE_LARGESTALL) { - return ALLOW_32X32; - } else if (cpi->sf.tx_size_search_method == USE_FULL_RD) { - const RD_OPT *const rd_opt = &cpi->rd; - const MV_REFERENCE_FRAME frame_type = get_frame_type(cpi); - return rd_opt->tx_select_threshes[frame_type][ALLOW_32X32] > - rd_opt->tx_select_threshes[frame_type][TX_MODE_SELECT] ? - ALLOW_32X32 : TX_MODE_SELECT; - } else if (cpi->sf.tx_size_search_method == USE_TX_8X8) { - return TX_MODE_SELECT; - } else { - unsigned int total = 0; - int i; - for (i = 0; i < TX_SIZES; ++i) - total += cpi->tx_stepdown_count[i]; - - if (total) { - const double fraction = (double)cpi->tx_stepdown_count[0] / total; - return fraction > 0.90 ? ALLOW_32X32 : TX_MODE_SELECT; - } else { - return cpi->common.tx_mode; - } - } - } + if (cpi->sf.tx_size_search_method == USE_LARGESTALL) + return ALLOW_32X32; + else if (cpi->sf.tx_size_search_method == USE_FULL_RD|| + cpi->sf.tx_size_search_method == USE_TX_8X8) + return TX_MODE_SELECT; + else + return cpi->common.tx_mode; } static void nonrd_pick_sb_modes(VP9_COMP *cpi, const TileInfo *const tile, |