W3C home > Mailing lists > Public > public-colorweb@w3.org > May 2017

Re: PQ HDR in PNG - draft review

From: Pierre-Anthony Lemieux <pal@sandflow.com>
Date: Fri, 19 May 2017 21:20:08 -0700
Message-ID: <CAF_7JxADyMCZbB5T3jtYoYrm2E_HZDt5-H4v28bdmH1c+g5ETA@mail.gmail.com>
To: Fredrik Hubinette <hubbe@google.com>
Cc: Lars Borg <borg@adobe.com>, Chris Lilley <chris@w3.org>, "public-colorweb@w3.org" <public-colorweb@w3.org>
 Hi Fredrik,

> I think it's confusing
> to suggest that sRGB is 80 nits since almost all monitors in use today are
> brighter than that.

 A default of sRGB 80 nits peak white was chosen as the default in
TTML2 because it is always safe when compositing subtitles onto full
screen video: it is particularly jarring when subtitles are much
brighter than the picture!

In practice, subtitles are typically presented around 400 nits when
composited onto PQ content, i.e. luminanceGain = 4, with occasional
exceptions that are content dependent.

A default of sRGB 80 nits peak white might not be the right answer for
general UI/web page work.

> > Would it be possible to drop the 80 lumens and just say that luminanceGain =
> 2 is twice as bright
> as the default?

What do you mean by "default"? Is the suggestion that, by default,
sRGB peak white be mapped to 160 nits?

Best,

-- Pierre

On Fri, May 19, 2017 at 6:40 PM, Fredrik Hubinette <hubbe@google.com> wrote:
> The TTLML2 gain value seems like a good idea. It is imilar in some sense to
> the wording
> for how to deal with floats outside of 0-1 in the canvas-color-space.
> However, I think it's confusing
> to suggest that sRGB is 80 nits since almost all monitors in use today are
> brighter than that. It seems
> like the tts:luminanceGain wording would lock legacy elements at 80 nits
> (aka "dark and dreary").
>
> Would it be possible to drop the 80 lumens and just say that luminanceGain =
> 2 is twice as bright
> as the default?
>
> If we really need a way to match how PQ works, it might be better to have an
> absoluteLuminance
> tag instead.  But personally I would prefer not to deal with absolute
> luminance as that is not compatible
> with how I use my TV and monitor.
>
>      /Hubbe
>
> On Fri, May 19, 2017 at 3:30 PM, Pierre-Anthony Lemieux <pal@sandflow.com>
> wrote:
>>
>> Hi Frederik et al.,
>>
>> >  Since non-HDR images are all in screen-relative brightness, it's
>> > impossible to make an PQ image
>> > which looks the same as a non-HDR image.
>>
>> One approach is to specify an (optional) gain value to scale the SDR
>> image before compositing it onto HDR images.
>>
>> This is the approach taken in recent TTML2 [1] draft, and has the
>> advantage of giving the author control because, sometimes, the white
>> point of the SDR image should be at 80/100 nits.
>>
>> [1]
>> https://w3c.github.io/ttml2/spec/ttml2.html#style-attribute-luminanceGain
>>
>> > Suddenly all legacy apps become dark and gray, as windows translates
>> > them to 80 nits.
>>
>> Using 80 nits as the default white point for SDR images is certainly
>> safe and conservative, but not appropriate in all cases. I think this
>> is an industry discussion, which hopefully we can have.
>>
>> Hope this makes sense.
>>
>> Best,
>>
>> -- Pierre
>>
>> On Fri, May 19, 2017 at 2:55 PM, Fredrik Hubinette <hubbe@google.com>
>> wrote:
>> > While ICCMax does have proper ways to describe PQ, it seems to do so in
>> > a
>> > way that is not easy to understand and implement.  Recent work to
>> > support
>> > ICC profiles in chrome has focused on ICC version 2, because ICC version
>> > 4.x
>> > is too difficult to implement efficiently, and ICCMax looks much more
>> > difficult. Since we don't know what the uptake on ICCMax will look like,
>> > having a special bit for HDR content might not be a bad idea. (However,
>> > the
>> > proposed magic string solution doesn't sound like a good idea.)
>> >
>> > Another problem altogether is that PQ as a transform is defined in
>> > absolute
>> > lumens. Since non-HDR images are all in screen-relative brightness, it's
>> > impossible to make an PQ image which looks the same as a non-HDR image.
>> > To
>> > observe this problem in practice, hook up a recent Win10 machine with an
>> > HDR-capable graphics card to an HDR-capable tv and turn on HDR.
>> > Suddenly
>> > all legacy apps become dark and gray, as windows translates them to 80
>> > nits.
>> > Most people quickly turn HDR off again.
>> >
>> > A better solution is probably to use hybrid-log-gamma, which uses
>> > screen-relative brightness. I'm not sure if there is an ICC(Max) profile
>> > that describes HLG accurately though.
>> >
>> >       /Fredrik "Hubbe" Hubinette (Chrome HDR Video)
>> >
>> >
>> > On Thu, May 18, 2017 at 8:04 PM, Lars Borg <borg@adobe..com> wrote:
>> >>
>> >> Hi Chris,
>> >>
>> >> I assume you’re looking at the profile that I created.
>> >> The profile was designed to provide a transform to/from Rec.2100 PQ to
>> >> XYZ
>> >> D50.
>> >> The only descriptive metadata included is the profile description, as
>> >> that’s what’s being displayed in profile menus, etc.
>> >> No effort was made to add other descriptive metadata, as no such was
>> >> asked
>> >> for.
>> >>
>> >> Elaborating on some of the ICC constraints that you’re observing.
>> >>
>> >> The first thing I noticed is that there are no colorant tags to
>> >> indicate
>> >> the primaries used.
>> >>
>> >> The colorant tag will not be used by the CMM.
>> >> One tricky thing is that the colorant values in this tag will not match
>> >> the Rec. 2100 spec.
>> >> The colorant XYZ value has to be in PCS space, so it has to be
>> >> chromatically adapted to D50.
>> >>
>> >> There is a chromaticityType tag that can indicate the unconverted xy
>> >> chromaticities from the Rec. 2100 spec.
>> >> Probably more useful.
>> >> The chromaticityType tag will not be used by the CMM.
>> >> This is purely descriptive metadata.
>> >>
>> >> Although the specification itself does list the chromaticities of the
>> >> 2020
>> >> primaries, they are not in the ICC profile.
>> >>
>> >> They are embedded in the matrices in the A2B and B2A tags.
>> >>
>> >> The second thing I noticed was that the lumi tag indicates a peak
>> >> luminance of 100 cd/m^2 which does not sound like HDR at all.
>> >>
>> >> True.
>> >> It’s not clear from the ICC spec that the lumi tag shall express peak
>> >> luminance.
>> >> It is here set to match the luminance of the PCS white point.
>> >> A PQ value of 508, 508, 508 (/1023) corresponds to 100 nits.
>> >> This is also the reference SDR diffuse white, and was selected as the
>> >> PCS
>> >> white point for cross-media conversion.
>> >> The reason:
>> >> ICC profiles are used for converting between SDR and HDR.
>> >> No established practice exists for mapping colors between HDR and SDR.
>> >> Reference white for SDR in the studio is 100 nits.
>> >> But many consumer SDR displays operate at 300 nits, so some existing
>> >> programs put diffuse white in HDR at 300 nits.
>> >> So the desired crossover between SDR and HDR is at 100 or 300 nits,
>> >> definitely not at 1000 or 10,000 nits.
>> >> Time will tell.
>> >>
>> >> There are A2B0 and B2A0 tags for the transfer functions. The B curve is
>> >> linear, the M curve has a gamma of 5 and there is a slightly sigmoidal
>> >> A
>> >> curve. I am not able to tell whether this correctly represents the
>> >> BT.2100
>> >> EOTF and would appreciate guidance here.
>> >>
>> >> The dynamic range of the PQ curve (10^9) far exceeds the U16 code range
>> >> available in an ICC sampled curves.
>> >> The high gamma in the M curve expands the dynamic range of the sampled
>> >> A
>> >> curve. (Established practice)
>> >> Thus, the A curve has a dynamic range of <100. This allows for almost 3
>> >> significant digits in the low end.
>> >> This results in a more accurate transform.
>> >>
>> >> Eek! It looks as if a magic string is used to signal the image
>> >> contents,
>> >> and that string is the name of the ICC profile. Not only are the gamma
>> >> and
>> >> chromaticity to be ignored, but also the contents of the ICC profile.
>> >>
>> >> Agreed. That looks horrible.
>> >>
>> >> It seems clear that a vastly better way to encode BT.2100 still images
>> >> in
>> >> PNG would be to embed an ICCMax profile that correctly describes the
>> >> EOTF
>> >> and the primary chromaticities, and has a correct peak luminance value.
>> >> I
>> >> assume that the flaws noted above are due to limitations of ICC v.4?
>> >>
>> >> Any obvious drawbacks of my proposed approach?
>> >>
>> >> Have you created such an ICCMax profile?
>> >> How do you encode PQ EOTF?
>> >>
>> >> 1. I assume the profile is to be used for color conversions, and not
>> >> only
>> >> to signal a color space. The current profile works in tested
>> >> contemporary
>> >> CMMs and apps. Those same CMMs fail on ICCMax profiles. I am not aware
>> >> of
>> >> any plans to change that.
>> >> 2. No way to map the content to SDR media as the 10,000 nits value is
>> >> useless for this. The current ICC profile provides a fallback for SDR
>> >> on
>> >> existing systems.
>> >> 3. Did you find any flaws related to ICC v4? It seems the mismatch
>> >> between
>> >> your expectations and the current implementation are not due to flaws
>> >> in ICC
>> >> v4, so we can simply update the ICC profile to address your needs.
>> >>
>> >> How about adding descriptive metadata tags to a v4.2 profile?
>> >> The chromaticityType tag is already in the ICC standard.
>> >> Not sure how to indicate an EOTF in ICC.
>> >> Maybe the best is to indicate color and EOTF by name or enum instead of
>> >> by
>> >> value?
>> >> HEVC, etc. have adopted enumerations for a closed set of color tags.
>> >> Here
>> >> the values would be 9,16,0.
>> >>
>> >> Lars
>> >
>> >
>
>
Received on Saturday, 20 May 2017 04:21:04 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:14:11 UTC