06 · Sharpen

Restore sharpness, carefully

Now the image is clean, we can safely sharpen. (Sharpen before denoise and you'd just amplify grain, which is why it waits until here.)

Fixes: softness Tools: CAS + unsharp mask sharpen.py

The unsharp mask is the classic trick: blur a copy, subtract it from the original to isolate the edges, then add those edges back amplified. More amount = more bite. But there's a hard ceiling, past a point the mask stops adding detail and starts tracing halos: bright and dark rings drawn around every high-contrast edge.

Top: an intensity profile across one edge, original vs sharpened. The steeper the transition, the crisper it looks. Past the ceiling the profile overshoots (shaded), that's the halo, visible as bright/dark rings on the edge swatch below.

During tuning we compared 0.85 (too soft), 0.95/1.3 (crisp and clean) and 1.0/1.5 (halos, dark/blue rings around every high-contrast edge). CAS (Contrast-Adaptive Sharpening) does the gentle, halo-free lifting; the unsharp mask, run luma-only so it adds no colored fringes, supplies the extra bite. 0.95/1.3 is the honest maximum for this footage.

Yossi's dials: strength: 0.95 (CAS), unsharp: 1.3 (luma-only). Visibly sharper, no ringing.