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
This commit is contained in:
Marco 2018-01-05 09:33:27 -08:00
parent 8a4336ed2e
commit 321f295632

View File

@ -661,6 +661,10 @@ int vp9_one_pass_cbr_svc_start_layer(VP9_COMP *const cpi) {
// averaging filter), use bilinear for now. // averaging filter), use bilinear for now.
if (width * height <= 640 * 480) { if (width * height <= 640 * 480) {
cpi->svc.downsample_filter_type[cpi->svc.spatial_layer_id] = BILINEAR; 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; cpi->svc.downsample_filter_phase[cpi->svc.spatial_layer_id] = 8;
} }