summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_encodeframe.c
diff options
context:
space:
mode:
authorAdam Xu <adam@xuyaowu.com>2014-08-13 19:50:01 -0700
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>2014-08-13 19:50:01 -0700
commit1d476a9ba4d7d52a3d43a81d887b67d58bd90b6b (patch)
tree572b25c86e66ef776596ed1449a2387b537ba1fe /vp9/encoder/vp9_encodeframe.c
parent41c89f7aee9d3564f1b3bb70f700867e396a268f (diff)
parentb6a41802c410969113c17856238afd88f462c507 (diff)
downloadlibvpx-1d476a9ba4d7d52a3d43a81d887b67d58bd90b6b.tar
libvpx-1d476a9ba4d7d52a3d43a81d887b67d58bd90b6b.tar.gz
libvpx-1d476a9ba4d7d52a3d43a81d887b67d58bd90b6b.tar.bz2
libvpx-1d476a9ba4d7d52a3d43a81d887b67d58bd90b6b.zip
Merge "Simplify select_tx_mode()"
Diffstat (limited to 'vp9/encoder/vp9_encodeframe.c')
-rw-r--r--vp9/encoder/vp9_encodeframe.c36
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,