# HDR Limit

HDR Limit QC provides comprehensive High Dynamic Range content validation, ensuring your HDR material meets delivery specifications for various HDR formats and platforms.

## Overview

The HDR Limit tool monitors:

* Peak luminance per frame, in absolute nits (for MaxCLL compliance)
* Frame-average luminance over the whole content (for MaxFALL compliance)
* Optionally, that the signal decodes cleanly through the active EOTF (no out-of-range PQ / HLG code values)

This is essential for:

* **HDR10** and **HDR10+** mastering (static and dynamic PQ metadata)
* **Dolby Vision** deliverables (PQ base layer plus per-scene L1–L8 metadata)
* **HLG** broadcast content (ARIB STD-B67 scene-referred transfer)
* Streaming platform ingest requirements (Netflix / Disney+ / Apple TV+ / Amazon / YouTube)

## Enabling the Tool

1. Open the **QC** panel (View > QC Panel or use the toolbar button)
2. Enable **HDR Limit** checkbox
3. Select your target HDR format
4. Configure threshold settings

## How It Works

HDR Limit performs per-frame analysis:

1. Decodes the signal through the **inverse EOTF** (SMPTE ST 2084 for PQ, ARIB STD-B67 for HLG) to obtain per-pixel **display luminance** in candelas per square metre (nits). HLG additionally applies the system gamma tied to a chosen nominal peak (default 1 000 nits).
2. Computes **per-pixel luminance (Y)** — the scalar quantity metadata specs reference for MaxCLL / MaxFALL. Two methods exist in the industry:
   * **Max-RGB** — take the maximum of the three linear channels per pixel. Used by Dolby's original Dolby Vision analysis and by most HDR10 mastering tools.
   * **CIE Y** — compute a properly weighted sum of the linear R, G, B values (the active colour space's Y coefficients). Closer to perceptual brightness. Check your target spec — MaxCLL/MaxFALL as CTA-861.3 defines them reference a luminance of a pixel, and different tools interpret this slightly differently.
3. Tracks the **per-frame maximum** (for MaxCLL) and the **frame average** (for MaxFALL).
4. Compares against format-specific limits.
5. Logs violations to the QC Timeline.

## Settings

| Setting            | Description                       | Default |
| ------------------ | --------------------------------- | ------- |
| HDR Format         | Target HDR specification          | HDR10   |
| Max Peak (nits)    | Maximum peak brightness allowed   | 1000    |
| Max Average (nits) | Maximum frame average (MaxFALL)   | 400     |
| Error Threshold    | Pixel percentage to trigger error | 0.1%    |

### HDR Format Presets

| Preset                | Max Peak     | Max Average  | Notes                                                                                                                                                                             |
| --------------------- | ------------ | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **HDR10 (1000 nits)** | 1 000        | 400          | Most common HDR10 mastering-display peak; matches Netflix/Amazon reference.                                                                                                       |
| **HDR10 (4000 nits)** | 4 000        | 1 000        | "Premium" HDR10 — Sony X300 / Dolby PRM-4200 class mastering.                                                                                                                     |
| **Dolby Vision**      | 4 000        | 1 000        | Dolby Vision carries a **mastering display metadata tag** (e.g. `Mastering Display 1000,0.005` or `4000,0.005`). Targets depend on the mastering display actually used.           |
| **HLG**               | 1 000        | 400          | HLG is **scene-referred**: the code values themselves don't commit to a peak-nit target, but the display's system gamma maps to a nominal peak (usually 1 000 nits at reference). |
| **Custom**            | User-defined | User-defined | Manual settings                                                                                                                                                                   |

> **HDR10 vs HDR10+ vs Dolby Vision.** All three use PQ as their base transfer function and Rec. 2020 as their container. The difference is the metadata layer: HDR10 ships a single **static** pair of MaxCLL/MaxFALL values per title; HDR10+ adds **dynamic** per-frame tone-mapping metadata (SMPTE ST 2094-40); Dolby Vision adds its own dynamic per-shot L1–L8 metadata (SMPTE ST 2094-10 / profile-specific). Dolby Vision's L1 metadata — min, avg, max luminance per shot — is exactly what HDR Limit QC computes.

## Reading the Results

### In the QC Panel

Real-time display shows:

* **Current Peak**: Maximum nits in current frame
* **Max Peak**: Highest peak seen in session
* **Current Average**: Frame average luminance
* **MaxFALL**: Running content average
* **Status**: Pass/Warning/Error indicator

### In the Timeline

HDR limit violations appear as:

* **Yellow markers**: Approaching limits (warning)
* **Red markers**: Exceeding limits (error)
* Hover for details including peak nits value

### In Exports

QC reports include:

* Timecode of each violation
* Peak brightness value
* Whether MaxCLL or MaxFALL was exceeded
* Frame-by-frame statistics

## Use Cases

### HDR10 Mastering

Validate content for HDR10 delivery:

1. Select **HDR10 (1000 nits)** preset
2. Enable MaxFALL tracking
3. Run full content playback
4. Review any flagged frames

### Streaming Platform QC

Different platforms have different requirements:

| Platform  | Typical Max Peak | Notes                  |
| --------- | ---------------- | ---------------------- |
| Netflix   | 1000-4000 nits   | Content dependent      |
| Amazon    | 1000-4000 nits   | HDR10/DV supported     |
| Apple TV+ | Up to 4000 nits  | Dolby Vision preferred |
| YouTube   | 1000 nits        | HDR10 support          |

### Broadcast HDR (HLG)

For HLG broadcast delivery:

1. Select **HLG** preset
2. Set Max Peak to broadcaster requirement
3. Enable average brightness monitoring
4. Verify against delivery specs

## Understanding HDR Metrics

These are defined in **CTA-861.3** as HDR static metadata type 1, carried in the SEI / mastering-display-metadata fields of the stream.

### MaxCLL (Maximum Content Light Level)

The luminance value of the **single brightest pixel** in the whole content, in nits. Think of it as "the peak of peaks". HDR Limit tracks this across the session and reports the highest value encountered. MaxCLL feeds the downstream tone-mapper: a TV with a 600-nit panel seeing MaxCLL = 1 000 will compress highlights from 600–1 000 down to the panel's peak without crushing midtones.

### MaxFALL (Maximum Frame Average Light Level)

The **frame whose average linear luminance is highest**, reported in nits. "Average" here is computed over the active picture area. MaxFALL is the knob that tells a consumer display how aggressively to defend itself against sustained full-field brightness (to protect the panel, especially on OLEDs that dim the whole screen under heavy load). A low MaxCLL with a high MaxFALL is a bright, uniform scene (a snowfield). A high MaxCLL with a low MaxFALL is a dark scene with one hot specular highlight (a lightbulb at night).

### Why Both Matter

* Consumer displays use MaxCLL/MaxFALL to drive their tone-mapping curves
* Wrong values cause visible errors — crushed highlights (MaxCLL too low), panel dimming kicking in at the wrong level (MaxFALL wrong)
* Streaming platforms require the static metadata to be truthful; incorrect tags fail ingest QC
* Dolby Vision's per-scene **L1 metadata** (min / avg / max) plays the same role at a finer granularity — 24 frames instead of "the whole title"

## Standards Reference

| Standard         | Transfer     | Metadata                          | Typical MaxCLL                   | Typical MaxFALL  |
| ---------------- | ------------ | --------------------------------- | -------------------------------- | ---------------- |
| **HDR10**        | PQ (ST 2084) | CTA-861.3 static                  | 1 000 – 4 000 nits               | 400 – 1 000 nits |
| **HDR10+**       | PQ (ST 2084) | ST 2094-40 dynamic                | Per-scene                        | Per-scene        |
| **Dolby Vision** | PQ (ST 2084) | Dolby L1–L8 (ST 2094-10) per-shot | Up to 4 000 nits (Profile 5/7/8) | Per-shot         |
| **HLG**          | ARIB STD-B67 | No static tone metadata           | \~1 000 nits at reference        | \~400 nits       |

All four use **Rec. 2020** as the colour container. Chromaticity rarely exceeds **P3-D65** in practice because current mastering displays don't cover more than \~99 % of P3.

## Tips

* Always verify delivery specs with your distributor
* Use HDR Statistics scope for detailed MaxCLL/MaxFALL measurement
* Test problematic frames in the False Color scope with HDR preset
* Consider headroom - staying below 90% of limits is good practice

## Related QC Tools

* [Luminosity Limit](/nobe-omniscope/qc/luminosity-limit.md) - General brightness limit checking
* [HDR Statistics](/nobe-omniscope/qc/hdr-statistics-maxfall-and-maxcll.md) - MaxCLL/MaxFALL measurement
* [Gamut Check](/nobe-omniscope/qc/gamut-check.md) - Color gamut compliance
* [Data Analyser](/nobe-omniscope/qc/data-analyser.md) - Detailed signal analysis


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.timeinpixels.com/nobe-omniscope/qc/hdr-limit.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
