color: drop EDR

EDR can be a useful concept for relative luminance HDR, but it is not
needed or used with PQ or HLG.

Let's concentrate on the more well-known video standards using PQ and
HLG first. We can consider re-adding EDR back once we have a better idea
of how it mixes with PQ with metadata and HLG.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
This commit is contained in:
Pekka Paalanen 2023-02-27 13:12:29 +02:00 committed by Sebastian Wick
parent efcec81722
commit 2cb2453787

View file

@ -442,7 +442,6 @@
parameters consists of these properties:
- transfer characteristic function (tf)
- chromaticities of primaries and white point
- extended dynamic range
Each property must be set exactly once if the client is to create an
image description. The set requests verify that a property was not
@ -539,45 +538,6 @@
<arg name="w_y" type="uint" summary="White y * 10000"/>
</request>
<request name="set_extended_dynamic_range">
<description summary="set the content extended dynamic range">
The EDR value describes how much dynamic range is encoded relative to
the SDR maximum white. EDR value is proportional to luminance, using
the luminance of black as the zero level. A value of 1.0 means that the
SDR maximum white is the highest possible luminance of the surface. A
value of 3.0 means that the SDR maximum white is one third of the
highest possible luminance of the surface.
The image description attached to the surface can make the code values in the
buffer non-linear in regards to the luminance. The code value to produce
a third of the luminance of the biggest code value therefore might not
be one third of the biggest code value.
For the definition of the SDR maximum white on an output, see
extended_dynamic_range on wp_color_management_output_v1.get_image_description.
Content producers are free to choose their SDR maximum white level. How it
shall be displayed depends on the monitor capabilities and the output
EDR value.
By default the EDR value is 1.0. The compositor will tone map the image
to match the EDR of each output the surface is shown on. The aim for
the EDR-EDR mapping is to produce a relative luminance mapping that
looks equally good regardless of the viewing conditions and the monitor
capabilities, assuming the output EDR value was tuned to the output
capabilities and the viewing environment. There might be performance
and image quality benefits from providing content readily tone mapped to
the EDR value of the output the surface is shown on.
The EDR value is multiplied by 1000 to produce the integer value
carried by the protocol.
If extended dynamic range has already been set on this object, the
protocol error already_set is raised.
</description>
<arg name="value" type="uint" summary="EDR value * 1000"/>
</request>
<request name="create">
<description summary="Create the image description object using params">
Create an image description object based on the parameters previously
@ -745,33 +705,6 @@
<arg name="icc_size" type="uint" summary="ICC profile size, in bytes"/>
</event>
<event name="extended_dynamic_range">
<description summary="output extended dynamic range">
The extended dynamic range value describes how much dynamic range is
available relative to the SDR maximum white. EDR value is proportional
to luminance, and the luminance of black is used as the zero level.
A value of 1.0 means that the the display can not display
anything brighter than SDR maximum white. A value of 3.0 means that the
SDR maximum white is at one third of the highest luminance the display
can produce.
The absolute luminance of the SDR maximum white depends on the monitor
capabilities, the viewing conditions and the viewer personal
preferences. A such, it cannot be given a single value in cd/m².
Compositors using HDR video modes should allow users to control the the
SDR maximum white level which the output EDR value is calculated from.
The SDR maximum white is a relative reference luminance that allows
to tone-map content from different dynamic ranges into a single common
dynamic range for display.
The EDR value is multiplied by 1000 to produce the integer value
carried by the protocol.
</description>
<arg name="value" type="uint" summary="EDR value * 1000"/>
</event>
<event name="primaries">
<description summary="primaries as chromaticity coordinates">
Delivers the color primaries and white point using CIE 1931 xy