]> granicus.if.org Git - libvpx/commitdiff
VP9: Fix issues with high bitdepth in real-time.
authorJerome Jiang <jianj@google.com>
Thu, 24 May 2018 21:03:43 +0000 (14:03 -0700)
committerJerome Jiang <jianj@google.com>
Fri, 25 May 2018 06:36:20 +0000 (23:36 -0700)
Disable denoiser, skin detection and aq-mode for high bitdepth for now.

BUG=webm:1534

Change-Id: I361a4e20b2319041148af497bf7043bfd5c5f589

vp9/encoder/vp9_aq_cyclicrefresh.c
vp9/encoder/vp9_encoder.c
vp9/vp9_cx_iface.c

index b47840795e14457c59931b540ef683d8be2ce4d8..b8c55727502cf32667d3620e20d75a5239cf816d 100644 (file)
@@ -428,7 +428,9 @@ void vp9_cyclic_refresh_update_parameters(VP9_COMP *const cpi) {
   double weight_segment = 0;
   int thresh_low_motion = (cm->width < 720) ? 55 : 20;
   cr->apply_cyclic_refresh = 1;
-  if (cm->frame_type == KEY_FRAME || cpi->svc.temporal_layer_id > 0 ||
+  // TODO(jianj): Look into issue of cyclic refresh with high bitdepth.
+  if (cm->bit_depth > 8 || cm->frame_type == KEY_FRAME ||
+      cpi->svc.temporal_layer_id > 0 ||
       (cpi->use_svc &&
        cpi->svc.layer_context[cpi->svc.temporal_layer_id].is_key_frame) ||
       (!cpi->use_svc && rc->avg_frame_low_motion < thresh_low_motion &&
index f5b7b1264bbf17a6839f46ac26b2c6ae371067d4..e5059452e7d43ef989ed61d7fec93a17e0eb0c0e 100644 (file)
@@ -3753,7 +3753,8 @@ static void encode_without_recode_loop(VP9_COMP *cpi, size_t *size,
     }
   }
 
-  if (cpi->oxcf.speed >= 5 && cpi->oxcf.pass == 0 &&
+  // TODO(jianj): Look into issue of skin detection with high bitdepth.
+  if (cm->bit_depth == 8 && cpi->oxcf.speed >= 5 && cpi->oxcf.pass == 0 &&
       cpi->oxcf.rc_mode == VPX_CBR &&
       cpi->oxcf.content != VP9E_CONTENT_SCREEN &&
       cpi->oxcf.aq_mode == CYCLIC_REFRESH_AQ) {
index d6c6ece9168f5c6d498bff8260756f48dea14542..477b66defc75aa197533f553df01bc43988457aa 100644 (file)
@@ -709,6 +709,8 @@ static vpx_codec_err_t ctrl_set_noise_sensitivity(vpx_codec_alg_priv_t *ctx,
                                                   va_list args) {
   struct vp9_extracfg extra_cfg = ctx->extra_cfg;
   extra_cfg.noise_sensitivity = CAST(VP9E_SET_NOISE_SENSITIVITY, args);
+  // TODO(jianj): Look into issue of noise estimation with high bitdepth.
+  if (ctx->cfg.g_bit_depth > 8) extra_cfg.noise_sensitivity = 0;
   return update_extra_cfg(ctx, &extra_cfg);
 }