summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_speed_features.h
diff options
context:
space:
mode:
authorYaowu Xu <yaowu@google.com>2014-05-20 11:36:44 -0700
committerYaowu Xu <yaowu@google.com>2014-05-21 12:08:56 -0700
commit3bda7ec1bab9b7336cf3218d1e7596f79930208c (patch)
tree1844c8247fd81024eb1f3896fda9f02b3af3243c /vp9/encoder/vp9_speed_features.h
parentd83295f2e1642461d2ac1415942258af95475781 (diff)
downloadlibvpx-3bda7ec1bab9b7336cf3218d1e7596f79930208c.tar
libvpx-3bda7ec1bab9b7336cf3218d1e7596f79930208c.tar.gz
libvpx-3bda7ec1bab9b7336cf3218d1e7596f79930208c.tar.bz2
libvpx-3bda7ec1bab9b7336cf3218d1e7596f79930208c.zip
Enable various thresholds of motion detection
This commit changed to enable the encoder to adjust motion dection speed threshold based on picture size. In addition, cpu-used 1 now does a partition search every other frame instead of every third frame for low resolution inputs. The change has no quality/speed impact for 720p and above. Test showed the change increase encoding time by between 3% to 6% for cpu-used 2 encodiong of 360p sequences. It also has a compression gain about .3%. For cpu-used 2, the change resolved some very disturbing visual artifacts in certain sequences when large block partitionings and transforms are used as a result of copying the partition from a previous frame. Change-Id: Ic7fd22508cdb811d4ca935655adbf20109286cfa
Diffstat (limited to 'vp9/encoder/vp9_speed_features.h')
-rw-r--r--vp9/encoder/vp9_speed_features.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_speed_features.h b/vp9/encoder/vp9_speed_features.h
index 46806c9a9..6d2cbb9a9 100644
--- a/vp9/encoder/vp9_speed_features.h
+++ b/vp9/encoder/vp9_speed_features.h
@@ -44,6 +44,11 @@ typedef enum {
} SUBPEL_SEARCH_METHODS;
typedef enum {
+ NO_MOITION_THRESHOLD = 0,
+ LOW_MOITION_THRESHOLD = 7
+} MOTION_THRESHOLD;
+
+typedef enum {
LAST_FRAME_PARTITION_OFF = 0,
LAST_FRAME_PARTITION_LOW_MOTION = 1,
LAST_FRAME_PARTITION_ALL = 2
@@ -200,6 +205,10 @@ typedef struct SPEED_FEATURES {
// partitioning.
LAST_FRAME_PARTITION_METHOD use_lastframe_partitioning;
+ // The threshold is to determine how slow the motino is, it is used when
+ // use_lastframe_partitioning is set to LAST_FRAME_PARTITION_LOW_MOTION
+ MOTION_THRESHOLD lf_motion_threshold;
+
// Determine which method we use to determine transform size. We can choose
// between options like full rd, largest for prediction size, largest
// for intra and model coefs for the rest.