High Dynamic Range (HDR) is a technology utilized in video production that enables a wider contrast ratio, increased brightness, and enhanced color depth, compared to Standard Dynamic Range (SDR) video. HDR improves the visual experience by providing bright highlights, deep shadows, and a broader color spectrum, making videos appear more realistic and lifelike.
In HDR video, the range of light intensity surpasses that of traditional video, allowing scenes with extreme lighting conditions (such as a sunset or a dimly lit room) to retain greater detail. This results in richer, more immersive experiences, particularly on HDR-compatible displays including modern televisions, computer monitors, and mobile devices.
Info: Viz Engine supports Hybrid Log Gamma (HLG-HDR).
Color Spaces, Brightness and Contrast
Color values within the inner triangle, are within the SDR color space. Other colors are represented in the HDR color space. | A color space defines the range of colors that can be displayed. The human eye is capable of recognizing many more colors than common displays or TV screen can produce. Traditionally a television monitor is capable of displaying a certain, limited range of colors, also known as Standard Definition Range SDR (BT 709) color space. The SDR color space is represented as the smaller rectangle in the image on the left. In comparison to SDR, the High Definition Range or HDR, is capable of representing a much higher range of details, colors and brightness. As of the larger color spaces, HDR is able to display a much higher contrast. With more distinct differences between darker and lighter areas, resulting in a more vibrant and realistic output. It comes with much finer details, and subtler gradations of brightness levels. High Definition requires more color depth, therefore, representing a color requires 10 bit instead of 8 bit per channel, to avoid any banding in gradients. HDR capable devices are able to display brighter pixels than standard monitors. A typical HDR capable monitor can display a peak brightness of 1000 nits and more, whereas SDR is not able to show more than 100 nits. These higher brightness levels allow a greater detail in highlights and shadows. The maximum level of brightness shown in HDR ranges from 0 (complete black) to 100 (brightest white). |
Linear and sRGB Color Spaces
The human eye is more sensitive to light in lower intensities, then to higher ones. If we use a linear gradient (bottom) from black to white, the eye perceives more dark shades than light ones. In mathematical terms, human eyes have a roughly logarithmic response to light. This means that representing colors linearly encodes more different bright colors that we can actually distinguish, but not enough dark colors to prevent banding. The simplest solution, using more bits to increase the number of distinct color levels, is inefficient in terms of data size. Therefore, most common color encoding systems use non-linear brightness levels like gamma curves. They redistribute available code points to match human perception. Smaller differences in the dark areas are encoded at the cost of larger gaps in the bright areas. |
Hybrid Log-Gamma (HLG)
Hybrid log-gamma is the most common HDR format in broadcast. It was developed by the BBC and NHK. It is standardized in ITU recommendation BT.2100 and uses the BT.2020 color space. Similar to established SDR standards, HLG encodes relative scene light in a non-linear curve. The main difference to SDR, is that HLG switches from a gamma curve to a logarithmic curve in brighter areas. This system supports practical luminance levels from 1,000 up to 2,000 cd/m2.
HLG is very common in broadcast, and Viz Engine supports it far better than anything else. At this point, HLG is the only recommended HDR format to use with Viz Engine.
Other HDR Formats
This section provides a short overview of other HDR, and HDR-adjacent video formats.
S-Log3
S-Log3 was developed by Sony, and Viz Engine only offers basic support for this format.
Perceptual Quantizer (PQ)
PQ was developed by Dolby, and unlike all other formats described, it is an absolute display-referred system. Meaning that a PQ signal directly encodes the brightness of a pixel on the display in nits. Common consumer HDR formats like HDR10 are based on PQ. As HLG, PQ is standardized in ITU recommendation BT.2100, and uses the BT.2020 color space. Conversions from HLG to PQ are relatively straight forward.
Note: Viz Engine does not support PQ.
Wide Color Gamut SDR Video
ITU recommendation BT.2020 defines a wide color gamut SDR video format that still uses a traditional gamma curve. This approach has not found wide adoption in broadcast, and is not supported by Viz Engine.
Reference White - White Level
The white level (or reference white) is the brightness of a non-reflective, white object. Colors that exceed this brightness, are called specular highlights. The established white level of Hybrid Log Gamma (HLG) is at 75% of the signal, which corresponds to 203 nits on a Monitor with a peak brightness of 1000 nits.
In Viz Engine, white level is configurable and serves two purposes:
100% of an SDR color is mapped to the HDR white level.
The HDR white level is scaled to a linear light value of 1.0 (or 100% white) in HDR scenes.
It is recommended to use brightness values around graphics (white for overlays, graphics, fonts, etc.).
Look-up Tables - LUTs
Color spaces need to be transformed from one to another. For example, translating an SDR live input to an HDR output in Viz Engine, or if a calculation like blending needs to be performed. There are multiple ways to perform these conversions and map the colors of an input image to a target color space. They serve different purposes and make different tradeoffs in terms of color accuracy, brightness preservation, and more.
Look Up Tables (LUTs) are a common approach to encode a given conversion. Viz Engine comes with built-in NBCU LUTs to support color conversions between SDR and HLG, but also offers support for external 3D Look Up Tables from .cube files. The BBC established a nomenclature of different HDR conversion LUT types, depending on the processing range. Viz Engine supports Type I LUTs (which are limited to nominal range), and Type III LUTs (which support extended range).