"Unblurring" a video is a misleading name. Blur is destroyed information, and no model invents it back. What you can do is restore the parts that are recoverable - the edges you can sharpen, the noise you can separate from signal, the compression artefacts you can smooth - and leave the rest alone.
Separate the blur types first
Handheld motion blur, out-of-focus blur and upscaling blur are different problems. Motion blur is directional and can be modelled with a point-spread function; defocus is roughly symmetric; upscaling blur has no blur kernel at all, only missing high frequencies. Treating all three with one sharpening filter is why most attempts look over-processed.
Work in a linear space and in tiles
Sharpening in sRGB pushes colours; converting to linear light first keeps highlights from clipping. For anything above 1080p, process in overlapping tiles so memory stays bounded, then blend the seams - a feathered overlap of 16-32 px is usually invisible.
Denoise before you sharpen
Sharpening amplifies noise, so the order matters. A light edge-preserving denoise pass first, then an unsharp mask with a small radius, gives a cleaner result than a single aggressive filter. Two gentle passes beat one strong one.
Do not chase detail that is not there
If the source is 240p, no amount of processing produces 1080p detail. The usable goal is a cleaner version of the same content: fewer artefacts, steadier edges, less noise. Promise that and you will not disappoint anyone.
A browser implementation that follows this order is at Unblur Video, and it is worth comparing how it handles motion versus defocus cases.
Top comments (0)