summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_onyx_if.c
diff options
context:
space:
mode:
authorDeb Mukherjee <debargha@google.com>2013-08-02 17:15:38 -0700
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>2013-08-15 10:01:45 -0700
commit24856b6abc8494b6c9ab073c47aecc8e477d44f2 (patch)
tree6350d9d5322df71345a140ff56ac00b96eb960f7 /vp9/encoder/vp9_onyx_if.c
parent1a3641d91b7179631113ece6c0f4bb25ad9b881f (diff)
downloadlibvpx-24856b6abc8494b6c9ab073c47aecc8e477d44f2.tar
libvpx-24856b6abc8494b6c9ab073c47aecc8e477d44f2.tar.gz
libvpx-24856b6abc8494b6c9ab073c47aecc8e477d44f2.tar.bz2
libvpx-24856b6abc8494b6c9ab073c47aecc8e477d44f2.zip
Speed feature to skip split partition based on var
Adds a speed feature to disable split partition search based on a given threshold on the source variance. A tighter threshold derived from the threshold provided is used to also disable horizontal and vertical partitions. Results on derfraw300: threshold = 16, psnr = -0.057%, speedup ~1% (football) threshold = 32, psnr = -0.150%, speedup ~4-5% (football) threshold = 64, psnr = -0.570%, speedup ~10-12% (football) Results on stdhdraw250: threshold = 32, psnr = -0.18%, speedup is somewhat more than derf because of a larger number of smoother blocks at higher resolution. Based on these results, a threshold of 32 is chosen for speed 1, and a threshold of 64 is chosen for speeds 2 and above. Change-Id: If08912fb6c67fd4242d12a0d094783a99f52f6c6
Diffstat (limited to 'vp9/encoder/vp9_onyx_if.c')
-rw-r--r--vp9/encoder/vp9_onyx_if.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/vp9/encoder/vp9_onyx_if.c b/vp9/encoder/vp9_onyx_if.c
index fd624af47..2f91f9593 100644
--- a/vp9/encoder/vp9_onyx_if.c
+++ b/vp9/encoder/vp9_onyx_if.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
+ * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
@@ -736,6 +736,7 @@ void vp9_set_speed_features(VP9_COMP *cpi) {
sf->last_partitioning_redo_frequency = 4;
sf->disable_splitmv = 0;
sf->mode_search_skip_flags = 0;
+ sf->disable_split_var_thresh = 0;
sf->last_chroma_intra_mode = TM_PRED;
sf->use_rd_breakout = 0;
sf->skip_encode_sb = 0;
@@ -793,6 +794,7 @@ void vp9_set_speed_features(VP9_COMP *cpi) {
sf->auto_min_max_partition_size = 1;
sf->auto_min_max_partition_interval = 1;
+ sf->disable_split_var_thresh = 32;
}
if (speed == 2) {
sf->adjust_thresholds_by_speed = 1;
@@ -826,6 +828,7 @@ void vp9_set_speed_features(VP9_COMP *cpi) {
sf->search_method = SQUARE;
sf->subpel_iters_per_step = 1;
sf->use_fast_lpf_pick = 1;
+ sf->disable_split_var_thresh = 64;
}
if (speed == 3) {
sf->comp_inter_joint_search_thresh = BLOCK_SIZES;
@@ -848,6 +851,7 @@ void vp9_set_speed_features(VP9_COMP *cpi) {
sf->auto_mv_step_size = 1;
sf->search_method = BIGDIA;
sf->subpel_iters_per_step = 1;
+ sf->disable_split_var_thresh = 64;
}
if (speed == 4) {
sf->comp_inter_joint_search_thresh = BLOCK_SIZES;
@@ -874,6 +878,7 @@ void vp9_set_speed_features(VP9_COMP *cpi) {
sf->disable_splitmv = 1;
sf->search_method = HEX;
sf->subpel_iters_per_step = 1;
+ sf->disable_split_var_thresh = 64;
}
/*
if (speed == 2) {