W3C

- DRAFT -

Media & Entertainment IG / Color on the Web CG Joint Meeting, TPAC 2020

19 Oct 2020

Agenda

Attendees

Present
Kaz_Ashimura, Chris_Lilley, Francois_Daoust, Wendy_Seltzer, Argyle, Chris_Needham, Gary_Katsevman, Jim_Helman, Andreas_Tai, Brian_Kardell, Brian_Osman, Carys_H, Chris_Cunningham, Chris_Seeger, Christopher_Cameron, Corentin_Wallez, Cyril_Concolato, Dlibby, DrAlex (Alexandre Gouaillard?), Emilio, Franco_Ghilardi, Germain_Souquet, Grg_Freedman, Hober, Tatsuya_Igarashi, Jan-Ivar_Bruaroey, Jer_Noble, jgilbert, John_Riviello, John_Simmons, Kazuhiro_Hoya, Ken_Russell, Takahiro_Kumekawa, Louay_Bassbouss, Mark_Watson, Masaru_Takechi, Dzmitry_Malyshau, Myles, Pierre-Anthony_Lemieux, Robin_Wilson, Simon_Fraser, Simon_Thompson, Stearns, Takio_Yamaoka, Tim_Onders, Tuukka_Toivonen, una, Youngsun_Ryu
Regrets
Chair
Chris
Scribe
wseltzer, cpn

Contents


Color on the Web

<inserted> scribenick: wseltzer

Pierre: Intro

ChrisS: Broadcast industry very interested in this

Pierre: Agenda

Agenda

Overview of W3C activities [ChrisL]

<kaz> Chris Lilley's slides

ChrisN: [shows slides]

<cpn> scribenick: cpn

<inserted> Draft Report

ChrisL: The Color on the Web CG has a draft report. Chris Needham started it, I've been editing since last TPAC
... It collects together issues and discussion. Was hoping to get more input. It doesn't have any recommendations yet
... Having the CG as a focus is good, as it's color specific
... TAG did two reviews: LAB in CSS color 4, identified ColorWeb CG to follow up. They see a need for a typed object model, contrast conversions
... Luminance should be calculated correctly

<Kangz> Uuuuh we didn't realize there was a WebGPU section to be filled. The best way to ask the GPU CG for feedback is to reach out to public-gpu@w3.org.

ChrisL: Also need for an explainer for color-mix
... The platform assumes RGB with 8 bit per component. Could be a gradual rollout of improved capability
... W3C is a member of the ICC. Security review of color profiles
... Lea Verou and I are working on Color.js, covering gamut mapping, deltaE. Houdini needs a typed object model with color conversions
... TAG review #488

<chris> https://colorjs.io/docs/color-difference.html

ChrisS: Which deltaE is it?

ChrisL: It covers all of them
... There's a conversion demo app in Color.js
... Replacing LAB? Fairchild HDR-lAB extends lightness to 400. Should there be a different color space?
... HLG and PQ, both try to do HDR. HLG is scene referred, difuse white at 0.75. PQ is aimed at cinema-like viewing, absolute luminance
... Need to re-render if not in a non-reference viewing environment

Pierre: For the average user, CSS is all RGB, how different to LAB?

ChrisL: LAB ties together the other color spaces in CSS4, Display P3, etc, will cover later
... I investigated Jzazbz. It has a simple deltaE function.
... [Comparison of deltaE metrics]
... (Salmon color in the graphs is out of range of SRGB)
... Implemented both in Color.js (available in GitHub).

Florian: As far as LAB is concerned, it's well understood. Based on what you just explained, we seem to be more in research and discovery territory.

ChrisL: ICT is part of a standard, color difference formula. It's not fully researched stuff, and the standards are being developed

ChrisS: ITP in a form is implemented in Dolby Vision

ChrisL: and it was later standardized in ITU

HDR Video on the Web

Greg: A brief update on HDR video on the web. I work at Netflix on the browser video player team, on features like HDR and 4K
... The Media WG extended Media Capabilities to add HDR metadata type, gamut, transfer function
... The API just detects if you can decode and render the stream to an SDR or HDR display. Not quite enough, want to know if display is HDR as well
... We added a dynamic range media query, so you could know if you *should* decode an HDR stream, not just if you *can* decode it
... Early 2021 will have implementation in Chrome. SUpport
... Supports VP9, AV1
... Edge has supported HDR10 and Dolby Vision in Windows 10 since 2018. It's in Edge Chromium
... We've been using nonstandard APIs to detect this support. They're targeting early 2021 for the updated APIs
... You need something from the store (HEVC extension pack). Most devices support HDR10 out of the box. But it's a little complex
... Apple supports in Catalina since 2020. Search HDR Mac in Apple support to find the devices that support HDR
... it's exciting. Now the 3 major browser support HDR video, we're moving more to browser applications

Pierre: If Dolby Vision metadata is present in the video, can it be applied also to UI elements? What's the interaction?

Jim: Part of it depends on whether you're talking about a built in or an external display. For an HDMI conntected device, you'd be sending the full stream to the device, so would also receive dynamic metadata. you get tone mapping

ChrisS: Some of this work was done in ATSC3.0. They have a hybrid HTML5 mode, I don't have the full answer though

MarkW: In a TV case, any dynamic metadata processing is done separately from graphics rendering
... Problem with HDMI, there's nothing there to tell it what's the graphics vs the video plane
... Dolby have a solution of their own for that
... There's a new feature in HDMI 2.1a (not completed spec yet), called source-based tone mapping
... It allows metadata-based tone mapping to occur at the source being going over HDMI

ChrisL: Does DisplayPort have similar problems?

MarkW: Not as far as i know

ChrisL: How does this affect the tone mapping?

Jim: If it's a combined stream, it could be region based. But colors or gradients could not have the same color in the display

ChrisS: In a live HDR production, the Dolby Vision analysis is doen in real time in the decoder. Could we do a re-analysis at that point?
... It would look at the composited image, and build a dynamic tone mapping. It's how a live encoder works, analyzing the essence

Jim: So it's not making full use of the DV capabilities, e.g., window or region based adjustments. What about ticker graphics, for example?
... One corner case worth mentioning: The HLG signal is scene referred, at least for putpose of conversion PQ to HLG, it's done at a 1000 nit operating point
... HLG is documented in some of the operational practices to, in some circumstances, to allow signals to go beyond legal range - "super whites"
... Even at 1000 nits, due to the way HLG and PQ apply their transfer functions. For example, if you have intense blues that don't contribute to luminance, those can fall outside the 1000 nit color volume. Clipping HDR signals needs to be done with caution
... A common practice in some studios has been to allow excursions beyond that. The display is relied on to roll of to max luminance.
... So some signals might be outside the range you're expecting

ChrisL: Does that apply to narrrow and also full range encoding?

Jim: In the narrow range, but if you were to convert the content with excursions outside legal range you'd end up clipping
... You want to smoothly bring the color volume back to the legal range without resorting to clipping

ChrisS: There are also some notes abotu HLG in consumer displays, which do clip in displays
... A display at less than 1000 nits, could appear darker than SRGB. Discussion around normalizing for those displays, not concluded yet

Pierre: Where are these observations being captured?

ChrisS: Discussion should get to ITU

Simon: Regarding super whites. The reason they're there is not for conversion, but for live TV you don't want clipping at the top end. And filters or other converters will ring badly. Super whites is there to deal with over-ranges we may not be in full control of

Jim: Encoding in HEVC can also cause ringing

Canvas API

ChrisC: We're planning to add to 2D canvas and GL contexts, colorSpace and colorEncoding parameters
... Similar, for 2D canvas with createImageData you'll be able to specify colorSpace and storageFormat
... Everythign that fits in the destination colorspace works, everything else clips
... In terms of drawing using CSS colors in Canvas, you can specify CSS color spaces such as display-p3. Would be similar in WebGL
... We support SRGB 8-bit, Display P3 and Rec2020 in float16
... Other color spaces in CSS color 4, we should add as named color spaces
... Also not in the spec is extended SRGB, linear SRGB with colors outside the range 0 to 1, can go to arbitrary large gamut with floating point colors
... WCG support not added, can infer color space. Alternatively, can have an API for specifying HDR presence and metadata
... We should consider adding a tag for 'HDR presence', and it can then vary dynamically
... Everything here is with respect to HDR

Jim: If it were linear with respect to HDR, would you be looking at half-floats or full floats?

ChrisC: The parameters are there for float16, but could do full float

Jim: What about PQ and/or HLG?

ChrisC: If we were to add, it would be rec2020-pq or rec2020-hlg

ChrisL: Actually rec2100-pq?

ChrisC: Yes

Pierre: Is this used on input/output, or during compositing?

ChrisC: It's converted to the canvas's color space on input. All the blending is done in the canvas's color space, which is what people expect
... When you composite, it's the browser and OS's responsibility to render based on monitor capabilities

Pierre: As an example, if there's blending that happens in the canvas, and you're using non-linear light space?

ChrisC: All the blending is done in the color space of the back buffer, so not a linear space

<cpn_> scribenick: cpn_

CSS Color 4

<kaz> Chris Lilley's slides on CSS updates

ChrisL: Adds calibrated SRGB color spaces

<kaz> CSS Color 4 with sRGB

ChrisL: LAB and CMYK examples. It also explains conversions, e.g., the naive conversion
... Safari implements Display-P3 since 2016, now looking at LCH, Lab
... Chrome wants to implement LCH, Lab
... BFO have a PDF to CSS converter, implements all of CSS color 4
... Issues remaining: Gamut mapping, color serialization, specs assume RGB only. Interpolation and currentColor
... Also choice of computational space
... CSS Color 5 builds on Color 4, adds a color-mix function
... color-contrast finds most contrasting color

<kaz> CSS Color 5

ChrisL: color-adjust for finding triad, complementary color
... Color HDR is an unofficial draft

<kaz> Color HDR (Unofficial Proposal)

ChrisL: Adds Rec BT2100 with HLG, PQ. ITP, Jzazbz
... Media queries has a color-gamut and dynamic-range queries. Similar for devices with separate video planes with different capabilities

Pierre: A good question is when and where to continue discussion? There's lots of interest.
... We have MEIG, CSS WG, CotW CG, Media WG. Where to get together regularly?

Florian: Many things relate to CSS. Media Queries stuff shuold happen there
... Coordination between CSS and Canvas, could be needed

ChrisL: CotW CG could be the right place if people are contributing. Would like to see more activity there, but it's kind of dead there

Pierre: Sending PRs could be daunting, good to have more discussion

ChrisL: W3C runs workshops, we're preparing one on this topic. Proposal gone to W3M approval. Reaching out to speakers, can share call for participation
... Format is 5-10 minute video presentations shared ahead of time, and come together to discuss

Pierre: How about just scheduling another meeting in a month or so?

ChrisL: That would be good

Pierre: Please send your presentations, and we'll follow up about future meeting

[adjourned]

Summary of Action Items

Summary of Resolutions

[End of minutes]

Minutes manually created (not a transcript), formatted by David Booth's scribe.perl version (CVS log)
$Date: 2020/10/21 00:39:58 $