]> granicus.if.org Git - libvpx/commitdiff
vp9: SVC: Set downsample filtertype for lowest spatial layer.
authorMarco <marpan@google.com>
Sat, 6 May 2017 01:39:55 +0000 (18:39 -0700)
committerMarco <marpan@google.com>
Sat, 6 May 2017 02:29:09 +0000 (19:29 -0700)
For lowest spatial layer, in 3 layer SVC, set the
downsampling filtertype to get averaging filter.
Needed for reducing aliasing on low-res layer,
small increase in overall encoder time.

Change-Id: Ia31460123bd91b72eca49b46dd924b9f226d4563

vp9/encoder/vp9_svc_layercontext.c

index ed628758b73b2fc43fbac3dd9de79356d1774cc6..edd8e226d384c74db572d4d305c39cd55d6b2120 100644 (file)
@@ -651,6 +651,10 @@ int vp9_one_pass_cbr_svc_start_layer(VP9_COMP *const cpi) {
                        lc->scaling_factor_num, lc->scaling_factor_den, &width,
                        &height);
 
+  // For 3 spatial layers, on the lowest resolution layer: set the filtertype
+  // for downsampling source to 1, to get averaging filter.
+  if (cpi->svc.number_spatial_layers == 3)
+    cpi->svc.filtertype_downsample_source[0] = 1;
   // The usage of use_base_mv assumes down-scale of 2x2. For now, turn off use
   // of base motion vectors if spatial scale factors for any layers are not 2,
   // keep the case of 3 spatial layers with scale factor of 4x4 for base layer.