Disabling skiploopfilter=all by default is not necessarily a good idea

Added by Kevin Dean about 2 years ago

I notice that by default there's a flag for:

-lavdopts fast:skiploopfilter=all

This has a negative visual effect when playing back h.264 files making the quality look worse.

Likely this option was chosen for it's performance benefits, so at minimum I think there should be a preference checkbox regarding it and default it to the higher quality output option.

I don't know if nonref is the best option, but I currently add the following to reverse the above:

-lavdopts fast:skiploopfilter=nonref

Here's the details from the manual:

skiploopfilter=<skipvalue> (H.264 only)
Skips the loop filter (AKA deblocking) during H.264 de-coding. Since the filtered frame is supposed to be used as reference for decoding dependent frames this has a worse effect on quality than not doing deblocking on e.g. MPEG-2 video. But at least for high bitrate HDTV this provides a big speedup with no visible quality loss.

<skipvalue> can be either one of the following:
none: Never skip.
default: Skip useless processing steps (e.g. 0 size packets in AVI).
nonref: Skip frames that are not referenced (i.e. not used for decoding other frames, the error cannot "build up").
bidir: Skip B-Frames.
nonkey: Skip all frames except keyframes.
all: Skip all frames.


Replies (2)

RE: Disabling skiploopfilter=all by default is not necessarily a good idea - Added by Adrian Stutz about 2 years ago

No, that option is not enabled by default and triggered by the "Optimize for decoding performance by degrading quality" option in the video section in preferences.

I think that is a good description of the drawbacks using this option and I decided not mentioning loopfilters because most people won't know what that is or does and experienced users can just use the advanced options to have fine control.

RE: Disabling skiploopfilter=all by default is not necessarily a good idea - Added by Kevin Dean about 2 years ago

Ahhh, I see what's going on. I was confused by the layout of the preferences.

Generally an indented select menu underneath an item with a checkbox implies that the lower indented one is contingent on the checkbox above. I didn't realize they we're two separate items that could be set independently.

Do you know if there's any benefit to using "-lavdopts fast:skiploopfilter=nonref" versus the mplayer default, which is I assume "none"?

I also find dropping safe frames helps a little with video tearing, especially in Full Screen. Is there a parameter to ensure the sync of the video regardless of any of these settings to avoid video tearing. I don't get tearing with VLC on the same videos.

(1-2/2)