summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_speed_features.c
diff options
context:
space:
mode:
authorMarco Paniconi <marpan@google.com>2018-11-05 17:49:39 -0800
committerMarco Paniconi <marpan@google.com>2018-11-06 11:01:52 -0800
commit7db01784570c676a5a2d4a73a5e3986a846e6491 (patch)
tree2b059ddc300c2542a3ed30d4f509c984c6941e41 /vp9/encoder/vp9_speed_features.c
parentee8920732d1b1446799c5cb9195cfcb2df1fefe8 (diff)
downloadlibvpx-7db01784570c676a5a2d4a73a5e3986a846e6491.tar
libvpx-7db01784570c676a5a2d4a73a5e3986a846e6491.tar.gz
libvpx-7db01784570c676a5a2d4a73a5e3986a846e6491.tar.bz2
libvpx-7db01784570c676a5a2d4a73a5e3986a846e6491.zip
vp9 screen-content: Adjustments for screen content.
Increase search area, use NSTEP, and in some cases avoid bsize below 16x16. This for base spatial layer when many blocks in the frame have motion (from scene detection analysis). Improves quality for scrolling motion. Change-Id: If77b43e738a6c43610d4727a95712667088db564
Diffstat (limited to 'vp9/encoder/vp9_speed_features.c')
-rw-r--r--vp9/encoder/vp9_speed_features.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_speed_features.c b/vp9/encoder/vp9_speed_features.c
index 1f9044265..2b0d5e146 100644
--- a/vp9/encoder/vp9_speed_features.c
+++ b/vp9/encoder/vp9_speed_features.c
@@ -794,6 +794,13 @@ static void set_rt_speed_feature_framesize_independent(
sf->partition_search_type = FIXED_PARTITION;
sf->always_this_block_size = BLOCK_64X64;
}
+ // Special case for screen content: increase motion search when high motion
+ // is detected.
+ if (cpi->oxcf.content == VP9E_CONTENT_SCREEN && cpi->oxcf.speed > 5 &&
+ cpi->rc.high_num_blocks_with_motion && cpi->svc.spatial_layer_id == 0) {
+ sf->mv.search_method = NSTEP;
+ sf->mv.fullpel_search_step_param = 2;
+ }
}
void vp9_set_speed_features_framesize_dependent(VP9_COMP *cpi) {