summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_speed_features.h
diff options
context:
space:
mode:
authorHui Su <huisu@google.com>2018-07-20 15:29:14 -0700
committerHui Su <huisu@google.com>2018-07-23 10:22:32 -0700
commitb54cdcc3de62390dc438a36425665a89958aefea (patch)
tree21a801b2b62cf84207bab351cca3322e6197de5b /vp9/encoder/vp9_speed_features.h
parente858863dda2e242ede57916dae4086a991f618dd (diff)
downloadlibvpx-b54cdcc3de62390dc438a36425665a89958aefea.tar
libvpx-b54cdcc3de62390dc438a36425665a89958aefea.tar.gz
libvpx-b54cdcc3de62390dc438a36425665a89958aefea.tar.bz2
libvpx-b54cdcc3de62390dc438a36425665a89958aefea.zip
Add prune_ref_frame_for_rect_partitions feature
Add a speed feature to prune reference frames for rectangular partitions. Rectangular partition RD search happens after square partition RD search. With this feature, we keep record of the ref frames picked by square partitions, and only consider those ref frames during rect partition RD search. With this feature on, the computation cost of rect partition RD search is greatly reduced, so we can afford to skip rect partition RD search less aggressively. Overall, both compression and encoding speed are improved. Only speed 0 is affected. Coding gains: lowres midres hdres ovr psnr 0.00% -0.36% -0.37% avg psnr 0.00% -0.36% -0.36% Tested encoding speed with QP=40 on about 30 sequences. Speed gains: lowres midres hdres average 13.4% 7.1% 6.1% max 28.0% 12.0% 9.8% Change-Id: Id5f36dd2ac75028ae98550d67b0a524aa251b692
Diffstat (limited to 'vp9/encoder/vp9_speed_features.h')
-rw-r--r--vp9/encoder/vp9_speed_features.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_speed_features.h b/vp9/encoder/vp9_speed_features.h
index 7a591e491..fd4973fb2 100644
--- a/vp9/encoder/vp9_speed_features.h
+++ b/vp9/encoder/vp9_speed_features.h
@@ -319,6 +319,9 @@ typedef struct SPEED_FEATURES {
int use_square_partition_only;
BLOCK_SIZE use_square_only_threshold;
+ // Prune reference frames for rectangular partitions.
+ int prune_ref_frame_for_rect_partitions;
+
// Sets min and max partition sizes for this 64x64 region based on the
// same 64x64 in last encoded frame, and the left and above neighbor.
AUTO_MIN_MAX_MODE auto_min_max_partition_size;