ref: aaa6cdcc2ea68fbab1d4422174fac85459ad6d37
parent: cd463c7acb52160fd001a5ec311b27802d97e7d1
author: Marco <marpan@google.com>
date: Tue Sep 19 11:19:41 EDT 2017
vp9: Modify simple_block_yrd condition for SVC Modify simple_block_yrd condition in nonrd_pickmode for SVC: allow it to be used also on base temporal_layer, only when spatial_layer > 1 and block size < 32x32. Speed up of about ~2% for 3 layer SVC, with little/negligible loss in quality. Change-Id: I7734bdae51cf51f22b96f6b2b27da20ea1d84344
--- a/vp9/encoder/vp9_pickmode.c
+++ b/vp9/encoder/vp9_pickmode.c
@@ -676,7 +676,9 @@
#endif
if (cpi->sf.use_simple_block_yrd && cpi->common.frame_type != KEY_FRAME &&
- (bsize < BLOCK_32X32 || cpi->use_svc)) {
+ (bsize < BLOCK_32X32 ||
+ (cpi->use_svc &&
+ (bsize < BLOCK_32X32 || cpi->svc.temporal_layer_id > 0)))) {
unsigned int var_y, sse_y;
(void)tx_size;
if (!rd_computed)
--- a/vp9/encoder/vp9_speed_features.c
+++ b/vp9/encoder/vp9_speed_features.c
@@ -572,7 +572,7 @@
sf->mv.search_method = NSTEP;
sf->mv.fullpel_search_step_param = 6;
}
- if (cpi->svc.temporal_layer_id > 0) {
+ if (cpi->svc.temporal_layer_id > 0 || cpi->svc.spatial_layer_id > 1) {
sf->use_simple_block_yrd = 1;
if (cpi->svc.non_reference_frame)
sf->mv.subpel_search_method = SUBPEL_TREE_PRUNED_EVENMORE;