shithub: libvpx

Download patch

ref: 321f295632b1a66ac4de576f2f9fc99e150ac953
parent: 8a4336ed2edea09b67f49828df1f8c526a85a7a6
author: Marco <marpan@google.com>
date: Fri Jan 5 04:33:27 EST 2018

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

--- a/vp9/encoder/vp9_svc_layercontext.c
+++ b/vp9/encoder/vp9_svc_layercontext.c
@@ -661,6 +661,10 @@
   // 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;
   }