diff options
author | Marco Paniconi <marpan@google.com> | 2020-11-11 23:11:16 -0800 |
---|---|---|
committer | Marco Paniconi <marpan@google.com> | 2020-11-12 11:31:42 -0800 |
commit | 7beafefd16b9d41eaf0bfc09e6bbb843ada9e952 (patch) | |
tree | ead90fb4fcd263bcbae8088b166dfc6fd5cd7ece /vp9/encoder | |
parent | 94384b5c685ad3baac8989f19ee587eb72093a7f (diff) | |
download | libvpx-7beafefd16b9d41eaf0bfc09e6bbb843ada9e952.tar libvpx-7beafefd16b9d41eaf0bfc09e6bbb843ada9e952.tar.gz libvpx-7beafefd16b9d41eaf0bfc09e6bbb843ada9e952.tar.bz2 libvpx-7beafefd16b9d41eaf0bfc09e6bbb843ada9e952.zip |
vp9: Allow for disabling loopfilter per spatial layer
For SVC: add parameter to the control SET_SVC_PARAMS to
allow for disabling the loopfilter per spatial layer.
Note this svc setting will override the setting via
VP9E_SET_DISABLE_LOOPFILTER (which should only be used
for non-SVC).
Add unittest to handle both SVC (spatial or temporal layers)
and non-SVC (single layer) case.
Change-Id: I4092f01668bae42aac724a6df5b6f6a604337448
Diffstat (limited to 'vp9/encoder')
-rw-r--r-- | vp9/encoder/vp9_svc_layercontext.c | 2 | ||||
-rw-r--r-- | vp9/encoder/vp9_svc_layercontext.h | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_svc_layercontext.c b/vp9/encoder/vp9_svc_layercontext.c index d85b3632c..9c75d7726 100644 --- a/vp9/encoder/vp9_svc_layercontext.c +++ b/vp9/encoder/vp9_svc_layercontext.c @@ -357,6 +357,8 @@ void vp9_restore_layer_context(VP9_COMP *const cpi) { if (is_one_pass_cbr_svc(cpi) && lc->speed > 0) { cpi->oxcf.speed = lc->speed; } + if (lc->loopfilter_ctrl >= 0 || lc->loopfilter_ctrl < 3) + cpi->loopfilter_ctrl = lc->loopfilter_ctrl; // Reset the frames_since_key and frames_to_key counters to their values // before the layer restore. Keep these defined for the stream (not layer). if (cpi->svc.number_temporal_layers > 1 || diff --git a/vp9/encoder/vp9_svc_layercontext.h b/vp9/encoder/vp9_svc_layercontext.h index e7d9712aa..b12e7e01a 100644 --- a/vp9/encoder/vp9_svc_layercontext.h +++ b/vp9/encoder/vp9_svc_layercontext.h @@ -71,6 +71,7 @@ typedef struct { int actual_num_seg2_blocks; int counter_encode_maxq_scene_change; uint8_t speed; + int loopfilter_ctrl; } LAYER_CONTEXT; typedef struct SVC { |