summaryrefslogtreecommitdiff
path: root/vp9
diff options
context:
space:
mode:
authorMarco Paniconi <marpan@google.com>2017-04-17 18:00:09 +0000
committerMarco <marpan@google.com>2017-04-17 11:02:02 -0700
commit9aa429a66dcd4b7a80a57fb738fc0167924f2a4f (patch)
tree6666957103ba23ec9fde39b3dcca41ca6df72287 /vp9
parentd578bdad028735fda27730fb6617866d52dcaf29 (diff)
downloadlibvpx-9aa429a66dcd4b7a80a57fb738fc0167924f2a4f.tar
libvpx-9aa429a66dcd4b7a80a57fb738fc0167924f2a4f.tar.gz
libvpx-9aa429a66dcd4b7a80a57fb738fc0167924f2a4f.tar.bz2
libvpx-9aa429a66dcd4b7a80a57fb738fc0167924f2a4f.zip
Revert "Revert "vp9: Avoid encoder loopfilter for non-reference frames.""
This reverts commit e9b7f98c56b3b9c99a60eb41b83bf8346b3ad25f. Reason for revert: Commit d578bdad fixes the issue (encoder/decoder mismatch in 3TL datarate test) that causes the original revert. Original change's description: > Revert "vp9: Avoid encoder loopfilter for non-reference frames." > > This reverts commit 863f860bfcf3bdc26eeecb299aa481d0f63d11ac. > > This causes encoder / decoder mismatches in various > VP9/DatarateTestVP9Large.BasicRateTargeting3TemporalLayers tests > > BUG=webm:1408 > > Change-Id: Ic200c39d7ed9c0b0247ef562f5d6f7b2625f7e14 > TBR=jzern@google.com,marpan@google.com,builds@webmproject.org,jianj@google.com BUG=webm:1408 Change-Id: Ifeb81460856d1d56482d4e0477a70ee98f8bfaa6
Diffstat (limited to 'vp9')
-rw-r--r--vp9/encoder/vp9_encoder.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c
index 1dc70d2d3..7d56232e1 100644
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -2618,6 +2618,10 @@ static void loopfilter_frame(VP9_COMP *cpi, VP9_COMMON *cm) {
MACROBLOCKD *xd = &cpi->td.mb.e_mbd;
struct loopfilter *lf = &cm->lf;
+ const int is_reference_frame =
+ (cpi->refresh_last_frame || cpi->refresh_golden_frame ||
+ cpi->refresh_alt_ref_frame);
+
if (xd->lossless) {
lf->filter_level = 0;
lf->last_filt_level = 0;
@@ -2643,7 +2647,7 @@ static void loopfilter_frame(VP9_COMP *cpi, VP9_COMMON *cm) {
cpi->time_pick_lpf += vpx_usec_timer_elapsed(&timer);
}
- if (lf->filter_level > 0) {
+ if (lf->filter_level > 0 && is_reference_frame) {
vp9_build_mask_frame(cm, lf->filter_level, 0);
if (cpi->num_workers > 1)