summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYaowu Xu <yaowu@google.com>2014-08-13 10:43:43 -0700
committerYaowu Xu <yaowu@google.com>2014-08-13 11:48:29 -0700
commitb6a41802c410969113c17856238afd88f462c507 (patch)
tree736b586b1d5ccd83af9a8d57d37e0715084f9438
parent9f233fc5a1ef0e3db5659245a5b4bdff75e968c9 (diff)
downloadlibvpx-b6a41802c410969113c17856238afd88f462c507.tar
libvpx-b6a41802c410969113c17856238afd88f462c507.tar.gz
libvpx-b6a41802c410969113c17856238afd88f462c507.tar.bz2
libvpx-b6a41802c410969113c17856238afd88f462c507.zip
Simplify select_tx_mode()
The function is called only once, right after all stats counters are reset to 0. Therefore all the computations have zero effect on return values. This commmit to removed those effectless code. Change-Id: I50d27c0802547921fa36c60aa4bd92d76247f595
-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,