Standard Dynamic Range (SDR) and High Dynamic Range (HDR) represent two distinct approaches to image encoding, brightness mapping, and color reproduction. SDR is based on legacy broadcast standards, while HDR introduces expanded luminance and color capabilities. This comparison focuses on quantifiable visual differences and outlines the precise technical workflows used in capture, encoding, mastering, and playback"without generalizations or marketing terminology.

SDR (Standard Dynamic Range)

A video format that operates within limited brightness and color parameters. It typically uses 8-bit color depth, the Rec. 709 color space, and assumes a peak display brightness around 100 nits. SDR offers a dynamic range of approximately 6 stops, which restricts its ability to display detailed highlights and deep shadows simultaneously.

HDR (High Dynamic Range)

A video format designed to store and display a wider range of luminance and color than SDR. It uses higher bit depth (10-bit or more), wider color gamut (Rec. 2020), and supports enhanced brightness levels up to 10,000 nits in some cases. HDR offers a dynamic range of approximately 17.6 stops, enabling significantly more detail in both bright and dark regions of an image.

Visual Differences

Feature SDRHDR
Contrast Ratio Limited (approx. 1000:1)Higher (can exceed 1,000,000:1)
Color Gamut Rec. 709 Rec. 2020
Brightness Range ~100 nits (typical)1,000 to 10,000 nits (mastering)
Detail in Highlights/Shadows LimitedPreserved in extreme luminance regions
Perceptual Impact Flatter appearanceGreater realism and depth

Technical Workflow Differences

I. Color Space & Gamut

In SDR workflows, video content is encoded using the Rec. 709 color space, which is limited in both color gamut and saturation and was designed originally for HDTV systems. HDR workflows expand this by using Rec. 2020, which supports a significantly wider color gamut, enabling the encoding and display of more saturated colors and nuanced variations that SDR cannot represent.

II. Bit Depth

SDR content is typically encoded using 8 bits per channel, which allows for 256 discrete shades per primary color. This limited precision often results in visible banding, especially in gradients like skies or shadows. HDR increases the minimum bit depth to 10-bit, offering 1,024 shades per channel and allowing for much smoother tonal transitions without perceptible artifacts.

III. EOTF (Electro-Optical Transfer Function)

EOTF defines how digital values map to display brightness. HDR"s perceptual EOTFs better match human vision.

Transfer Function Use Case
Gamma SDR
PQ (ST 2084) HDR10, Dolby Vision
HLG HDR for broadcast

IV. Metadata

SDR does not rely on metadata for tone mapping; all brightness and color values are fixed across the entire video. HDR, however, incorporates metadata to guide display rendering. HDR10 uses static metadata (SMPTE ST 2086, MaxFALL, MaxCLL), applying a single tone mapping profile throughout the video. Formats like Dolby Vision and HDR10+ use dynamic metadata, which adjusts tone mapping scene-by-scene or even frame-by-frame to preserve detail across varying luminance levels.

V. Encoding & Container Support

Format SDRHDR
Codecs H.264, VP9H.265 (HEVC), AV1, VP9 (HDR)
Containers MP4, MKV, MOV Same, with HDR metadata
Tools FFmpeg, x264FFmpeg, x265, Dolby tools

Developer Workflow Considerations

I. Encoding Example: SDR (FFmpeg)

To encode SDR content using FFmpeg, the standard configuration uses H.264 with 8-bit color depth and Rec. 709 primaries. The following command encodes a source video to SDR-compatible output using libx264 with a constant rate factor (CRF) of 18 and 4:2:0 chroma subsampling:

code
ffmpeg -i input.mov -c:v libx264 -preset slow -crf 18 -pix_fmt yuv420p output_sdr.mp4
FFmpeg SDR Encoding Output Using libx264 with CRF 18 and yuv420p Format

II. Encoding Example: HDR10 (FFmpeg + x265)

For HDR10 encoding, FFmpeg must be paired with libx265 and configured for 10-bit color depth and BT.2020 color primaries. The following command applies the PQ transfer function (SMPTE ST 2084), Rec. 2020 color primaries, and a non-constant luminance matrix, conforming to HDR10 standards:

code
ffmpeg -i input.mov -c:v libx265 -pix_fmt yuv420p10le -x265-params "colorprim=bt2020:transfer=smpte2084:colormatrix=bt2020nc" output_hdr10.mp4
FFmpeg HDR10 Encoding Output Using libx265 with BT.2020 and PQ Transfer Function

III. Playback Compatibility

SDR content is universally compatible across legacy and modern devices, requiring only support for Rec. 709 color space, 8-bit decoding, and standard gamma EOTFs. HDR playback demands end-to-end compatibility: the device must support HDR formats (e.g., HDR10, Dolby Vision), correct EOTF handling (PQ or HLG), and appropriate tone mapping based on the display's peak brightness and color volume.

Use Case Suitability

Application Area Recommended Format
Legacy web delivery SDR (Rec. 709, 8-bit)
VOD platforms HDR10, Dolby Vision
Broadcast (live feeds) HLG
Mobile/OTT HDR10, Dolby Vision
Archive/Preservation HDR10 (10-bit+, Rec. 2020)