From: Marco Date: Fri, 5 Jan 2018 17:33:27 +0000 (-0800) Subject: vp9-svc: Use eightap_smooth for downsampling at low resol. X-Git-Tag: v1.8.0~895^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=321f295632b1a66ac4de576f2f9fc99e150ac953;p=libvpx vp9-svc: Use eightap_smooth for downsampling at low resol. Switch from bilinear to eighttap_smooth for frame-level downsampling at low resolutions (<= 320x240). avgPSNR/SSIM metrics increase from ~0.5-2% (all clips positive gain), for 2 and 3 spatial layer SVC, with 3 temporal layers. Small/negligible increase in encoding time (< 1%). Change-Id: I758472fc4fddd51d87f13c9d1a1cd4986ef5d41f --- diff --git a/vp9/encoder/vp9_svc_layercontext.c b/vp9/encoder/vp9_svc_layercontext.c index 2636bd9a5..4f137ecc3 100644 --- a/vp9/encoder/vp9_svc_layercontext.c +++ b/vp9/encoder/vp9_svc_layercontext.c @@ -661,6 +661,10 @@ int vp9_one_pass_cbr_svc_start_layer(VP9_COMP *const cpi) { // averaging filter), use bilinear for now. if (width * height <= 640 * 480) { cpi->svc.downsample_filter_type[cpi->svc.spatial_layer_id] = BILINEAR; + // Use Eightap_smooth for low resolutions. + if (width * height <= 320 * 240) + cpi->svc.downsample_filter_type[cpi->svc.spatial_layer_id] = + EIGHTTAP_SMOOTH; cpi->svc.downsample_filter_phase[cpi->svc.spatial_layer_id] = 8; }