summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_speed_features.c
diff options
context:
space:
mode:
authorPaul Wilkins <paulwilkins@google.com>2014-03-31 16:58:39 +0100
committerPaul Wilkins <paulwilkins@google.com>2014-04-02 12:18:05 +0100
commit769cd78ff25c8461d37ef9b3e8901395114d9d8e (patch)
tree0b42bac2f38e8e4b567c023b3b01f37538f805c3 /vp9/encoder/vp9_speed_features.c
parent88690475ea28fb396c8efb01ab6d21e106765341 (diff)
downloadlibvpx-769cd78ff25c8461d37ef9b3e8901395114d9d8e.tar
libvpx-769cd78ff25c8461d37ef9b3e8901395114d9d8e.tar.gz
libvpx-769cd78ff25c8461d37ef9b3e8901395114d9d8e.tar.bz2
libvpx-769cd78ff25c8461d37ef9b3e8901395114d9d8e.zip
Add speed feature for recode tolerance.
The new tolerance is a little higher than before (especially for kf/gf/arf) so this change gives an encode speed up for some clips up for speeds 0-2. Change-Id: I63f7d6c9cc11c7f58742f41e250dcd3eab1741eb
Diffstat (limited to 'vp9/encoder/vp9_speed_features.c')
-rw-r--r--vp9/encoder/vp9_speed_features.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/vp9/encoder/vp9_speed_features.c b/vp9/encoder/vp9_speed_features.c
index f09035077..6a437bf03 100644
--- a/vp9/encoder/vp9_speed_features.c
+++ b/vp9/encoder/vp9_speed_features.c
@@ -25,13 +25,6 @@
#define DISABLE_COMPOUND_SPLIT 0x18
#define LAST_AND_INTRA_SPLIT_ONLY 0x1E
-// Intra only frames, golden frames (except alt ref overlays) and
-// alt ref frames tend to be coded at a higher than ambient quality
-static INLINE int frame_is_boosted(const VP9_COMP *cpi) {
- return frame_is_intra_only(&cpi->common) || cpi->refresh_alt_ref_frame ||
- (cpi->refresh_golden_frame && !cpi->rc.is_src_frame_alt_ref);
-}
-
static void set_good_speed_feature(VP9_COMP *cpi,
VP9_COMMON *cm,
SPEED_FEATURES *sf,
@@ -44,7 +37,7 @@ static void set_good_speed_feature(VP9_COMP *cpi,
if (speed >= 1) {
sf->use_square_partition_only = !frame_is_intra_only(cm);
sf->less_rectangular_check = 1;
- sf->tx_size_search_method = frame_is_boosted(cpi)
+ sf->tx_size_search_method = vp9_frame_is_boosted(cpi)
? USE_FULL_RD : USE_LARGESTALL;
if (MIN(cm->width, cm->height) >= 720)
@@ -68,7 +61,7 @@ static void set_good_speed_feature(VP9_COMP *cpi,
}
// Additions or changes from speed 1 for speed >= 2.
if (speed >= 2) {
- sf->tx_size_search_method = frame_is_boosted(cpi)
+ sf->tx_size_search_method = vp9_frame_is_boosted(cpi)
? USE_FULL_RD : USE_LARGESTALL;
if (MIN(cm->width, cm->height) >= 720)
@@ -326,6 +319,9 @@ void vp9_set_speed_features(VP9_COMP *cpi) {
// to FIXED_PARTITION.
sf->always_this_block_size = BLOCK_16X16;
+ // Recode loop tolerence %.
+ sf->recode_tolerance = 25;
+
switch (cpi->oxcf.mode) {
case MODE_BESTQUALITY:
case MODE_SECONDPASS_BEST: // This is the best quality mode.