


If you really hate blocking/ringing, and don't mind blurring as much, then you might still want to postprocess. The end result is that low-bit-rate h.264 video usually already has as good a balance of blurring vs. The encoder knows what the decoder is going to do, and thus knows what it's getting when choosing reference frames and sending the difference (residual).) (Every h.264 decoder must decode a valid h.264 stream to the same bit-identical output, so all of this filtering is specified exactly. This is why it's called an "in-loop" deblocker, because it's inside the decode / reference loop, and why -skip_loop_filter all causes errors to accumulate. For example, in h.264, the deblocking filter is applied before a decoded frame is used as a reference for future frames, and the deblocking strength is selected by the encoder. Newer ones (including h.264, h.265, and VP8/9) all include deblocking filters as part of the codec. Postprocessing is usually only useful with older codecs. Some things are more visually annoying than others, and postprocessing can make low-quality videos nicer to watch. There is always a tradeoff, though, and once a lossy codec has thrown away information, it can never be recovered without access to the original source. They operate by blurring the video in a way that reduces blocking and ringing with as little impact as possible on the sharpness of the image. Post-processing filters are applied after decoding a low-quality video, usually to make blocking and ringing artifacts less visually annoying.
