summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_svc_layercontext.c
diff options
context:
space:
mode:
authorJerome Jiang <jianj@google.com>2018-11-29 15:53:41 -0800
committerJerome Jiang <jianj@google.com>2018-12-04 12:16:40 -0800
commit28345f9730e476eebd23c41c1abd71fc45b74d9a (patch)
tree4502f22a1f32b229a917e0e767ef73aad05daa27 /vp9/encoder/vp9_svc_layercontext.c
parent932f8fa04dc15f4adf16df37402556e8c4dc72e7 (diff)
downloadlibvpx-28345f9730e476eebd23c41c1abd71fc45b74d9a.tar
libvpx-28345f9730e476eebd23c41c1abd71fc45b74d9a.tar.gz
libvpx-28345f9730e476eebd23c41c1abd71fc45b74d9a.tar.bz2
libvpx-28345f9730e476eebd23c41c1abd71fc45b74d9a.zip
vp9: force refresh of long term ref when denoiser reset.
This will allocate extra frame buffer if long term temporal reference is used and denoiser is enabled on non-key frame. Add test. Change-Id: I0e8d1fdb9a2d697a8eed7fe6206bcb362e69f1c8
Diffstat (limited to 'vp9/encoder/vp9_svc_layercontext.c')
-rw-r--r--vp9/encoder/vp9_svc_layercontext.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_svc_layercontext.c b/vp9/encoder/vp9_svc_layercontext.c
index 21b920f11..510087580 100644
--- a/vp9/encoder/vp9_svc_layercontext.c
+++ b/vp9/encoder/vp9_svc_layercontext.c
@@ -1106,6 +1106,16 @@ void vp9_svc_assert_constraints_pattern(VP9_COMP *const cpi) {
}
}
+#if CONFIG_VP9_TEMPORAL_DENOISING
+int vp9_denoise_svc_non_key(VP9_COMP *const cpi) {
+ int layer =
+ LAYER_IDS_TO_IDX(cpi->svc.spatial_layer_id, cpi->svc.temporal_layer_id,
+ cpi->svc.number_temporal_layers);
+ LAYER_CONTEXT *lc = &cpi->svc.layer_context[layer];
+ return denoise_svc(cpi) && !lc->is_key_frame;
+}
+#endif
+
void vp9_svc_check_spatial_layer_sync(VP9_COMP *const cpi) {
SVC *const svc = &cpi->svc;
// Only for superframes whose base is not key, as those are