diff options
author | Yaowu Xu <yaowu@google.com> | 2014-05-20 11:36:44 -0700 |
---|---|---|
committer | Yaowu Xu <yaowu@google.com> | 2014-05-21 12:08:56 -0700 |
commit | 3bda7ec1bab9b7336cf3218d1e7596f79930208c (patch) | |
tree | 1844c8247fd81024eb1f3896fda9f02b3af3243c /vp9/encoder/vp9_speed_features.h | |
parent | d83295f2e1642461d2ac1415942258af95475781 (diff) | |
download | libvpx-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.h | 9 |
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. |