2016-05-19, 01:19
Static vs. Dynamic Tone Mapping
The terms static and dynamic tone mapping are commonly associated with PQ HDR content mastered in HDR10, HDR10+ or Dolby Vision.
Static tone mapping is associated with HDR10 content. Static tone mapping is based on a single metadata value that defines the brightest pixels in the source. With the current HDR10 standard, a value is defined for MaxCLL (Maximum Content Light Level) and the mastering display maximum luminance.
When presented with a static metadata value, the tone mapping algorithm is given limited information on the overall distribution of brightness of the source. As a result, one tone curve is used to present the entire video with the intent of keeping the brightest pixels (the entire source range) within the available display range.
Using a single tone curve for each HDR video is not optimal for three reasons:
Most sources are improperly judged by a static HDR10 metadata value. These static metadata values tend to be surprisingly inaccurate in communicating the average peak brightness of the source as opposed to a single frame peak. One abnormally high frame peak may be reached during a few seconds of runtime, while the rest of the presentation stays at a comparatively low peak brightness. Unfortunately, even the single maximum frame peak provided by HDR10 movies has proven to be inaccurate in some cases.
An example of how unreliable static metadata can be is the movie Leon: The Professional.
Leon: The Professional - The official metadata:
Mastering display luminance: min: 0.0050 cd/m2, max: 4000 cd/m2
Maximum Content Light Level: 3696 cd/m2
Maximum Frame-Average Light Level: 314 cd/m2
This would imply this is a very bright movie. However, when decoded with madMeasureHDR, the true distributed brightness looks like this:
Leon: The Professional after measurement:
Leon: The Professional - Actual distributed peak brightness:
average scene peak (time-weighted): 291 nits
average frame peak (avgFMLL): 225 nits
The source reports a maximum peak brightness of 3696 nits, yet almost the entire movie stays below 300 nits!
You can see in the graph this reported scene peak only occurs in one specific juncture towards the movie's finale. Outside of this small brightness peak, this is a movie with a very low dynamic range being reported as a movie with a very high dynamic range.
Tone mapping this movie from 4,000 nits would lead to a loss of brightness and a distorting of contrast for any display below the reported 4,000 nits mastering peak.
Static metadata is rendered more ineffective given upwards of 75% of current movies are mastered to 1,000 nits and report 1,000 nits as the MaxCLL or mastering display maximum luminance. So most HDR movies are being tone mapped with the same internal display tone curve despite containing differing amounts of high dynamic range specular highlights.
Current HDR content also isn't graded for displays such as HDR projectors with a low peak brightness, where tone mapping of 0-100 nits is common. This can result in some movies appearing darker than others, as the colorist grading HDR content likely does not consider the visual impact of lowering the brightness of reference white at the end display. HDR televisions don’t often encounter this issue because tone mapping for TVs is primarily focused on compressing the upper range of the source values where the specular highlights are found.
The purpose of HDR metadata is to inform the display of how bright the source is at its highest peak. This metadata does not provide any information on how much content is located within 0-100 nits near black, nor does it tell the display how much the lower part of the PQ curve can be tone mapped before the image becomes too dim. When tone mapping for a display with limited peak brightness such as a projector, most of the HDR source range must be compressed, including the lower shadows, and it can be difficult to produce consistent brightness across titles using static metadata as the same tone curve applied to sources with identical source peaks will result in a different APL (Average Picture Level) due to different distributions of content in the SDR range.
Dynamic Tone Mapping Curves
Dynamic tone mapping is more flexible. It ignores the static metadata altogether in favor of judging each scene individually. As the video plays, every frame peak is measured and this information is used to dynamically alter the shape of the roll-off. Frame peak targets come from reading the input Y values or by using frame-by-frame metadata embedded in the source.
Dynamic tone mapping applied to titles with static metadata reacts in real-time to each incoming frame to predict any sudden changes in peak brightness. By making dynamic changes to the tone curve, brightness is saved by reducing the effect of the roll-off whenever possible and the optimum amount of contrast can be applied to preserve all specular highlight detail in each scene.
In madVR, the tone curve responds based on a brightness histogram that measures the peak brightness of each incoming frame. Similar to Dolby Vision and HDR10+, the movie is treated as a series of unique scenes with separate brightness peaks.
High Peak Brightness Scenes:
The tone curve resembles a static curve with a more aggressive roll-off. The APL (Average Picture Level) is lowered to provide enough contrast to limit clipping of the brightest specular highlights.
2019 LG OLED - 10,000 nits Custom Curve:
Average Peak Brightness Scenes:
The tone curve uses a less aggressive roll-off to reflect the lower scene peak. The APL increases slightly by reducing unneeded compression, which preserves more intermediate detail.
2019 LG OLED - 4,000 nits Custom Curve:
Scene Peaks Below the Real Display Peak Nits:
Tone mapping is disabled and the PQ curve is followed 1:1. Tone mapping is unnecessary as the scene peak is within the available display peak.
2019 LG OLED - 1,000 nits Custom Curve:
Example of Dynamic Tone Mapping
Star Wars The Last Jedi
Frame 162 nits / Source Peak 1,000 nits:
Dynamic Tone Mapping (200nits)
Static Tone Mapping (200nits)
madVR OSD:
Examples of Dynamic Tone Mapping Targets in madVR
min target / real display peak nits: 250 nits
source mastering peak: 1,000 nits
measured frame 842, tone map 886 nits
The measured frame peak is close to the source peak. The tone curve employs an aggressive roll-off to preserve the high contrast of the frame.
measured frame 328, tone map 329 nits
The tone curve significantly reduces the roll-off to reflect the lower frame peak, which is only slightly above the real display peak nits (250nits).
measured frame 147, tone map 176 nits
Tone mapping is disabled because the frame peak is within the real display peak nits (250nits).
Dynamic Target Nits (HDR to SDR Output Only)
The last layer of complexity involves the use of dynamic target peak nits. By checking apply target nits (Coming Soon!), madVR will adjust both the tone curve AND display target nits to match any measured peak brightness changes. This is the most dynamic form of HDR to SDR tone mapping available intended for very large adaptations in contrast that are simply not possible with a fixed display target nits.
A dynamic target nits is designed for light-starved HDR displays such as projectors that benefit less from scene or frame peak targets that are often out of reach and unrealistic for these displays. Instead of focusing on scene or frame peak brightness, tone mapping is applied based on the APL (frame average light level) of each scene to determine where the scene falls in relation to black and apply tone compression to the scene APL that is suitable for the end display without producing a dim image while still rolling off enough of the APL to preserve specular highlight detail.
What Is a Dynamic Target Nits?
Example of a Dynamic Target Nits
Mission Impossible Ghost Protocol
Frame 1085 nits / FALL 108.098 nits:
Dynamic Target Nits: Enabled (480nits)
Dynamic Target Nits: Disabled (275nits)
Further Reading:
Using madMeasureHDR to Create Dynamic HDR10 Metadata
The terms static and dynamic tone mapping are commonly associated with PQ HDR content mastered in HDR10, HDR10+ or Dolby Vision.
Static tone mapping is associated with HDR10 content. Static tone mapping is based on a single metadata value that defines the brightest pixels in the source. With the current HDR10 standard, a value is defined for MaxCLL (Maximum Content Light Level) and the mastering display maximum luminance.
When presented with a static metadata value, the tone mapping algorithm is given limited information on the overall distribution of brightness of the source. As a result, one tone curve is used to present the entire video with the intent of keeping the brightest pixels (the entire source range) within the available display range.
Using a single tone curve for each HDR video is not optimal for three reasons:
- It assumes the entire presentation is more as less as bright as its highest frame peak;
- Very bright scenes may get a less optimal tone curve in favor of one that is a middle ground for both high and low scene peaks;
- Aggressive tone curves will cause a loss of brightness for the many scenes in an HDR presentation with frame peaks well below the maximum source peak.
Most sources are improperly judged by a static HDR10 metadata value. These static metadata values tend to be surprisingly inaccurate in communicating the average peak brightness of the source as opposed to a single frame peak. One abnormally high frame peak may be reached during a few seconds of runtime, while the rest of the presentation stays at a comparatively low peak brightness. Unfortunately, even the single maximum frame peak provided by HDR10 movies has proven to be inaccurate in some cases.
An example of how unreliable static metadata can be is the movie Leon: The Professional.
Leon: The Professional - The official metadata:
Mastering display luminance: min: 0.0050 cd/m2, max: 4000 cd/m2
Maximum Content Light Level: 3696 cd/m2
Maximum Frame-Average Light Level: 314 cd/m2
This would imply this is a very bright movie. However, when decoded with madMeasureHDR, the true distributed brightness looks like this:
Leon: The Professional after measurement:
Leon: The Professional - Actual distributed peak brightness:
average scene peak (time-weighted): 291 nits
average frame peak (avgFMLL): 225 nits
The source reports a maximum peak brightness of 3696 nits, yet almost the entire movie stays below 300 nits!
You can see in the graph this reported scene peak only occurs in one specific juncture towards the movie's finale. Outside of this small brightness peak, this is a movie with a very low dynamic range being reported as a movie with a very high dynamic range.
Tone mapping this movie from 4,000 nits would lead to a loss of brightness and a distorting of contrast for any display below the reported 4,000 nits mastering peak.
Static metadata is rendered more ineffective given upwards of 75% of current movies are mastered to 1,000 nits and report 1,000 nits as the MaxCLL or mastering display maximum luminance. So most HDR movies are being tone mapped with the same internal display tone curve despite containing differing amounts of high dynamic range specular highlights.
Current HDR content also isn't graded for displays such as HDR projectors with a low peak brightness, where tone mapping of 0-100 nits is common. This can result in some movies appearing darker than others, as the colorist grading HDR content likely does not consider the visual impact of lowering the brightness of reference white at the end display. HDR televisions don’t often encounter this issue because tone mapping for TVs is primarily focused on compressing the upper range of the source values where the specular highlights are found.
The purpose of HDR metadata is to inform the display of how bright the source is at its highest peak. This metadata does not provide any information on how much content is located within 0-100 nits near black, nor does it tell the display how much the lower part of the PQ curve can be tone mapped before the image becomes too dim. When tone mapping for a display with limited peak brightness such as a projector, most of the HDR source range must be compressed, including the lower shadows, and it can be difficult to produce consistent brightness across titles using static metadata as the same tone curve applied to sources with identical source peaks will result in a different APL (Average Picture Level) due to different distributions of content in the SDR range.
Dynamic Tone Mapping Curves
Dynamic tone mapping is more flexible. It ignores the static metadata altogether in favor of judging each scene individually. As the video plays, every frame peak is measured and this information is used to dynamically alter the shape of the roll-off. Frame peak targets come from reading the input Y values or by using frame-by-frame metadata embedded in the source.
Dynamic tone mapping applied to titles with static metadata reacts in real-time to each incoming frame to predict any sudden changes in peak brightness. By making dynamic changes to the tone curve, brightness is saved by reducing the effect of the roll-off whenever possible and the optimum amount of contrast can be applied to preserve all specular highlight detail in each scene.
In madVR, the tone curve responds based on a brightness histogram that measures the peak brightness of each incoming frame. Similar to Dolby Vision and HDR10+, the movie is treated as a series of unique scenes with separate brightness peaks.
High Peak Brightness Scenes:
The tone curve resembles a static curve with a more aggressive roll-off. The APL (Average Picture Level) is lowered to provide enough contrast to limit clipping of the brightest specular highlights.
2019 LG OLED - 10,000 nits Custom Curve:
Average Peak Brightness Scenes:
The tone curve uses a less aggressive roll-off to reflect the lower scene peak. The APL increases slightly by reducing unneeded compression, which preserves more intermediate detail.
2019 LG OLED - 4,000 nits Custom Curve:
Scene Peaks Below the Real Display Peak Nits:
Tone mapping is disabled and the PQ curve is followed 1:1. Tone mapping is unnecessary as the scene peak is within the available display peak.
2019 LG OLED - 1,000 nits Custom Curve:
Example of Dynamic Tone Mapping
Star Wars The Last Jedi
Frame 162 nits / Source Peak 1,000 nits:
Dynamic Tone Mapping (200nits)
Static Tone Mapping (200nits)
madVR OSD:
Examples of Dynamic Tone Mapping Targets in madVR
min target / real display peak nits: 250 nits
source mastering peak: 1,000 nits
measured frame 842, tone map 886 nits
The measured frame peak is close to the source peak. The tone curve employs an aggressive roll-off to preserve the high contrast of the frame.
measured frame 328, tone map 329 nits
The tone curve significantly reduces the roll-off to reflect the lower frame peak, which is only slightly above the real display peak nits (250nits).
measured frame 147, tone map 176 nits
Tone mapping is disabled because the frame peak is within the real display peak nits (250nits).
Dynamic Target Nits (HDR to SDR Output Only)
The last layer of complexity involves the use of dynamic target peak nits. By checking apply target nits (Coming Soon!), madVR will adjust both the tone curve AND display target nits to match any measured peak brightness changes. This is the most dynamic form of HDR to SDR tone mapping available intended for very large adaptations in contrast that are simply not possible with a fixed display target nits.
A dynamic target nits is designed for light-starved HDR displays such as projectors that benefit less from scene or frame peak targets that are often out of reach and unrealistic for these displays. Instead of focusing on scene or frame peak brightness, tone mapping is applied based on the APL (frame average light level) of each scene to determine where the scene falls in relation to black and apply tone compression to the scene APL that is suitable for the end display without producing a dim image while still rolling off enough of the APL to preserve specular highlight detail.
What Is a Dynamic Target Nits?
Example of a Dynamic Target Nits
Mission Impossible Ghost Protocol
Frame 1085 nits / FALL 108.098 nits:
Dynamic Target Nits: Enabled (480nits)
Dynamic Target Nits: Disabled (275nits)
Further Reading:
Using madMeasureHDR to Create Dynamic HDR10 Metadata