RH Hue Compressor
dctlsRH Hue Compressor
🎚️ Proportional Hue Normalisation Engine
Pull drifting hues back without hard edges.
When your camera's greens lean teal or your yellows drift orange across a scene, a standard hue rotation shifts everything equally — which is exactly wrong. RH Hue Compressor uses proportional attraction: the further a hue sits from your target, the harder it gets pulled. Hues already sitting on the target don't move at all.

Key Features
-
Distance-Proportional Compression
-
Independent Centre Offset Per Vector
-
Adjustable Range Per Vector
Overview
RH Hue Compressor is a targeted hue normalisation tool that pulls stray hues toward a user-definable target point across all six standard hue vectors: Red, Yellow, Green, Cyan, Blue, and Magenta.
Unlike a conventional hue rotation, which shifts every hue in a zone by the same fixed amount, compression attracts hues proportionally to their distance from the target centre. A hue sitting exactly on the centre point is not moved at all. A hue 30° away is pulled 30% × Compression toward the target.
This creates a naturally smooth, artefact-free normalisation that tightens a hue family without creating hard edges or unnatural colour boundaries. Common uses include pulling yellows that have drifted slightly green back toward a truer yellow, tightening skin tones that have shifted slightly toward orange, or normalising sky blues that vary across a scene.
1. Core Concept 💡
For each active hue vector, the tool applies the following logic per pixel:
Convert the pixel to the IQ Polar chromaticity space (hue angle, saturation, intensity).
- At
Compression = 0.0: No change — the pixel passes through untouched. - At
Compression = 1.0: Hues within the active range are fully pulled to the centre point in a single pass. - Between
0.0and1.0: The pull is proportional — pixels far from the centre move more, pixels near the centre move less.
This creates a natural convergence without any hard step at the edge of the zone.
2. Per-Vector Controls 🎛️
Six identical control groups — Red, Yellow, Green, Cyan, Blue, Magenta — each with three parameters:

| Parameter | Description |
|---|---|
| Compression | Strength of the pull toward the target centre. 0.0 = off, 1.0 = full compression. |
| Center | Offset to shift the target point away from the nominal hue angle. |
| Range | Width of the hue neighbourhood that is affected by this vector. |
Compression
- Default:
0.0(no effect) - Range:
0.0–1.0 - The primary control. Raise it to begin pulling that colour family toward its centre. The compression is distance-weighted: pixels far from the centre are pulled more than pixels already close to it.
Center
- Default:
0.0 - Range:
−0.1–+0.1(normalised hue units; full circle = 1.0) - Fine-tunes the target point slightly away from the default vector angle. Use this when your camera or LUT has a systematic hue bias.
Default vector positions (normalised 0–1 hue space):
| Vector | Nominal Position |
|---|---|
| Red | 0.000 (wraps from 1.0) |
| Yellow | 0.167 |
| Green | 0.333 |
| Cyan | 0.500 |
| Blue | 0.667 |
| Magenta | 0.833 |
Range
- Default:
0.5 - Range:
0.0–1.0 - Controls the width of the influence plateau around the vector centre. Lower values narrow the selection; higher values broaden the zone (adjacent vectors may overlap).
Important: A Range of
0.0effectively disables that vector regardless of the Compression value — no pixels fall within an infinitely narrow window.
3. Under the Hood — IQ Polar Chromaticity Model 🔬
All hue operations are performed in the IQ Polar Chromaticity model — a max-normalised polar representation of the RGB chromaticity.
Hue compression operates on the hue angle only — saturation and intensity are not modified. This means the tool does not change the brightness or chroma density of any pixel; it is a purely angular hue operation.
The IQ model has C-infinity-smooth transitions at the sector boundaries, ensuring no visual seams at edge hue positions.
4. Node Placement 🗂️
Expected pipeline:
- Scene-referred input
- DaVinci Wide Gamut / Intermediate (DWG/DI), or linear sRGB
Recommended placement:
- After primary balance/exposure corrections.
- As a normalisation pass directly after the input transform, before any creative colour work.
- Can also be placed after creative grading, to tighten hues that drifted during the look development process.
Note: Operating in display-referred (Rec.709) space may produce different vector positions than expected, since the IQ model's primary angles are calibrated for linear RGB. Results will still be artefact-free but may require different Center offsets.
5. Usage Tips 💬
- Start with Compression at 0.1–0.3: A value of
0.2is enough for subtle correction. Values above0.7produce obvious, visually apparent normalisation. - Use Center to match your camera: If your camera consistently produces slightly cool reds, shift Red Center slightly negative to target the corrected angle rather than the mathematical nominal.
- Narrow Range for surgical work: To correct only highly saturated reds without touching skin tones or transitional hues, bring Range down to
0.2–0.3. - Global Blend as a safety valve: Once all vectors are dialled in, reduce Global Blend to ease the total effect — this avoids over-processing while still benefiting from the correction.
- Combine adjacent vectors intentionally: Simultaneously compressing Yellow and Green at moderate Range with slightly overlapping coverage is effective for normalising foliage that contains both green and yellow hues across a scene.
- This tool does not change saturation or luminance: To also reduce chroma density of a particular hue family, combine this with RH Chroma Gate in a downstream node.
