ref: 36825590ba676d54765c6c31482cacb4fe661b43
parent: fc1c5d1c9cba8829995c68d07e827bc9bcccd9e8
parent: 8502a95a0de1bc06fa790759511cfcf3f7049b19
author: Marco Paniconi <marpan@google.com>
date: Fri May 25 11:50:19 EDT 2018
Merge "VP9: Fix issues with high bitdepth in real-time."
--- a/vp9/encoder/vp9_aq_cyclicrefresh.c
+++ b/vp9/encoder/vp9_aq_cyclicrefresh.c
@@ -428,7 +428,9 @@
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 &&
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -3753,7 +3753,8 @@
}
}
- 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) {
--- a/vp9/vp9_cx_iface.c
+++ b/vp9/vp9_cx_iface.c
@@ -709,6 +709,8 @@
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);
}