summaryrefslogtreecommitdiff
path: root/vp9
diff options
context:
space:
mode:
authorDmitry Kovalev <dkovalev@google.com>2014-03-10 10:38:25 -0700
committerDmitry Kovalev <dkovalev@google.com>2014-03-10 11:35:40 -0700
commitd8c9288465aabefaa0193b2e17ff6a198204c262 (patch)
treecbcb9675ea3ecf46ab8fca54199077d54930c36e /vp9
parent924dc81e7426852d6c447fa10515e59f4f3c19bf (diff)
downloadlibvpx-d8c9288465aabefaa0193b2e17ff6a198204c262.tar
libvpx-d8c9288465aabefaa0193b2e17ff6a198204c262.tar.gz
libvpx-d8c9288465aabefaa0193b2e17ff6a198204c262.tar.bz2
libvpx-d8c9288465aabefaa0193b2e17ff6a198204c262.zip
Cleaning up select_tx_mode() function.
Change-Id: Ib105db0f3deeedf6a8402a292db3df1d77a3d7c1
Diffstat (limited to 'vp9')
-rw-r--r--vp9/encoder/vp9_encodeframe.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c
index 76ef2705c..5a8fd8247 100644
--- a/vp9/encoder/vp9_encodeframe.c
+++ b/vp9/encoder/vp9_encodeframe.c
@@ -2230,7 +2230,7 @@ static void reset_skip_txfm_size(VP9_COMMON *cm, TX_SIZE txfm_max) {
}
}
-static MV_REFERENCE_FRAME get_frame_type(VP9_COMP *cpi) {
+static MV_REFERENCE_FRAME get_frame_type(const VP9_COMP *cpi) {
if (frame_is_intra_only(&cpi->common))
return INTRA_FRAME;
else if (cpi->rc.is_src_frame_alt_ref && cpi->refresh_golden_frame)
@@ -2241,30 +2241,31 @@ static MV_REFERENCE_FRAME get_frame_type(VP9_COMP *cpi) {
return GOLDEN_FRAME;
}
-static void select_tx_mode(VP9_COMP *cpi) {
+static TX_MODE select_tx_mode(const VP9_COMP *cpi) {
if (cpi->oxcf.lossless) {
- cpi->common.tx_mode = ONLY_4X4;
+ return ONLY_4X4;
} else if (cpi->common.current_video_frame == 0) {
- cpi->common.tx_mode = TX_MODE_SELECT;
+ return TX_MODE_SELECT;
} else {
if (cpi->sf.tx_size_search_method == USE_LARGESTALL) {
- cpi->common.tx_mode = ALLOW_32X32;
+ return ALLOW_32X32;
} else if (cpi->sf.tx_size_search_method == USE_FULL_RD) {
- int frame_type = get_frame_type(cpi);
- cpi->common.tx_mode =
- cpi->rd_tx_select_threshes[frame_type][ALLOW_32X32]
- > cpi->rd_tx_select_threshes[frame_type][TX_MODE_SELECT] ?
- ALLOW_32X32 : TX_MODE_SELECT;
+ const int frame_type = get_frame_type(cpi);
+ return cpi->rd_tx_select_threshes[frame_type][ALLOW_32X32] >
+ cpi->rd_tx_select_threshes[frame_type][TX_MODE_SELECT] ?
+ ALLOW_32X32 : 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) {
- double fraction = (double)cpi->tx_stepdown_count[0] / total;
- cpi->common.tx_mode = fraction > 0.90 ? ALLOW_32X32 : TX_MODE_SELECT;
- // printf("fraction = %f\n", fraction);
- } // else keep unchanged
+ 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;
+ }
}
}
}
@@ -2403,7 +2404,7 @@ static void encode_frame_internal(VP9_COMP *cpi) {
vp9_zero(cm->counts.eob_branch);
// Set frame level transform size use case
- select_tx_mode(cpi);
+ cm->tx_mode = select_tx_mode(cpi);
cpi->mb.e_mbd.lossless = cm->base_qindex == 0 && cm->y_dc_delta_q == 0
&& cm->uv_dc_delta_q == 0 && cm->uv_ac_delta_q == 0;
@@ -2571,7 +2572,6 @@ void vp9_encode_frame(VP9_COMP *cpi) {
}
cpi->mb.e_mbd.lossless = cpi->oxcf.lossless;
-
cm->reference_mode = reference_mode;
encode_frame_internal(cpi);