Addaly is in open beta. Things will change, and AI answers can be wrong — check anything that matters.

Editing Video

Cuts, sound, colour and export — taught on DaVinci Resolve, which costs nothing.

Lesson 64 of 779 min

Noise reduction, sharpening, and what neither can do

Where noise comes from

A sensor counts photons. In low light there are few photons, so the count is uncertain, and that uncertainty appears as noise. Raising ISO amplifies the signal and the uncertainty together — it does not add noise, it makes the existing shortfall visible.

Two kinds appear in the image:

Luminance noise — brightness varies pixel to pixel. Reads as grain. Broadly acceptable and sometimes pleasant.

Chroma noise — colour varies pixel to pixel. Reads as coloured speckles, usually in the shadows. Always ugly, and much easier to remove because the eye's tolerance for chroma resolution is low anyway.

The practical consequence: remove chroma noise aggressively and luminance noise gently. Most beginners do the reverse and end up with a waxy image.

Spatial against temporal

Spatial denoise works within one frame: it averages a pixel with its neighbours, guided by whether they look like they belong to the same region. It removes noise and it also removes fine detail, because fine detail and noise look similar to an algorithm inside a single frame. Push it and skin goes plastic, hair becomes a smear, and texture disappears.

Temporal denoise works across frames: it averages the same pixel over several frames in time. Because noise is random per frame and the real image is not, the noise averages toward zero while the detail survives. This is much better.

Its failure mode is motion. Where something moves, the same pixel is different content in each frame, so averaging produces ghosting or trails. Every temporal denoiser therefore has a motion threshold that decides when to stop averaging, and setting it too high produces smearing behind moving objects.

The two denoisers, and where each one failsSpatial: averages within a frameAverages a pixel with its neighboursCannot tell fine detail from noisePushed hard, skin goes plastic and hair smearsMotion is no obstacle, because it never looksacross framesTemporal: averages across framesAverages the same pixel over several framesNoise is random per frame, so it cancelsReal detail is not random, so it survivesFails on movement: ghosting and trails behindobjectsTemporal first and gently, then a little spatial for what is left. Remove chroma noise aggressivelyand luminance noise sparingly; most beginners do the reverse and end up with a waxy picture.
The two denoisers, and where each one failsSpatial: averages within a frameAverages a pixel with its neighboursCannot tell fine detail from noisePushed hard, skin goes plastic and hairsmearsMotion is no obstacle, because it neverlooks across framesTemporal: averages across framesAverages the same pixel over several framesNoise is random per frame, so it cancelsReal detail is not random, so it survivesFails on movement: ghosting and trailsbehind objectsTemporal first and gently, then a little spatial forwhat is left. Remove chroma noise aggressively andluminance noise sparingly; most beginners do thereverse and end up with a waxy picture.

The working method: temporal first, gently, then a small amount of spatial for what remains.

The free routes

Resolve's temporal and spatial noise reduction on the colour page is Studio-only on current versions. This is one of the clearest gaps in the free version, and it is worth saying plainly.

The free alternatives:

bash
# hqdn3d: fast, combined spatial and temporal
ffmpeg -i noisy.mov -vf hqdn3d=4:3:6:4.5 -c:v dnxhd -profile:v dnxhr_hq out.mov

# nlmeans: much better quality, much slower
ffmpeg -i noisy.mov -vf nlmeans=s=3.0:p=7:r=15 -c:v dnxhd -profile:v dnxhr_hq out.mov

The four hqdn3d parameters are luma spatial, chroma spatial, luma temporal, chroma temporal. Note that you can raise the chroma values well above the luma ones, which is exactly the asymmetry described above.

Neat Video is the paid specialist and is excellent; it profiles your specific camera's noise and is worth the money if you do a lot of low-light work.

Always denoise to an intermediate codec, not back to H.264. Denoising and re-encoding to a lossy format twice is two generations of loss.

Denoise before everything else

Order matters. Denoise first, before grading, because:

  • A grade that adds contrast amplifies noise, so denoising afterwards is fighting an amplified problem.
  • A keyer or a tracker fed noisy footage produces unstable results.
  • Sharpening applied to noise sharpens the noise.

And re-add grain at the end, after grading, if the result looks too clean. Denoise then re-grain is a standard and slightly absurd-sounding workflow, and it works because the grain you add is consistent and controllable while the noise you removed was not.

Sharpening, and what it actually is

Sharpening does not add detail. It increases acutance — the local contrast at edges — by finding edges and making the light side lighter and the dark side darker.

That produces a perception of sharpness. It also produces halos: a visible bright line on one side of a high-contrast edge and a dark one on the other. Once you can see halos you will see them everywhere, including on television.

Unsharp mask has three controls:

  • Amount — how strong. Keep it modest.
  • Radius — how wide the effect extends from the edge. Small values (0.5–1.5 px at 1080p) sharpen fine detail; large values produce halos.
  • Threshold — how much difference counts as an edge. Raising it stops the filter sharpening noise in flat areas, which is the single most useful control and the least used.

Upscaling

Bicubic and Lanczos interpolate smoothly and produce a soft, honest enlargement. Machine-learning upscalers produce a sharp, plausible enlargement with invented detail.

The honest position on the latter: for archive material, home video and anything where the goal is watchability, they are often a genuine improvement. For anything where the image is evidence or a record, they are generating content — an upscaled face is a guess about what that face looked like — and that is a meaningful difference whatever the result looks like.

What neither can fix

Missed focus. Sharpening raises edge contrast on the blur, producing a crunchy soft image.

Motion blur from a slow shutter. The information is spread across the frame.

Heavy compression artefacts. Sharpening makes blocking more visible, not less. Mild denoise sometimes helps blocking; sharpening never does.

Today

Run the hqdn3d command on a noisy clip with chroma values twice the luma values, and compare against the original at 200% zoom. That asymmetry is most of the technique.

The one thing to keep

Temporal denoise averages the same pixel across frames so noise cancels and detail survives, spatial denoise averages within a frame so detail goes with the noise — remove chroma noise aggressively and luminance gently, denoise before grading, and re-add grain at the end.

Before you move on

An editor applies heavy spatial noise reduction to a low-light interview. The noise is gone and faces look waxy, with hair reduced to a smear. Why does temporal denoise not have this problem to the same degree?

Pick the one you would defend. Nobody sees your answer.

No ads. No data sale. No public scores on people. Ever.

© 2026 Addaly