/
Color fidelity for Web Browsers

Color fidelity for Web Browsers





Issue

Chrome on windows

Chrome on OSX

Chrome on Linux

Firefox on windows

Firefox on OSX

Firefox on Linux

Safari on OSX

Safari on IOS

How to test

Issue

Chrome on windows

Chrome on OSX

Chrome on Linux

Firefox on windows

Firefox on OSX

Firefox on Linux

Safari on OSX

Safari on IOS

How to test

Uses monitor ICC Profiles for png files

Yes *

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Do you see differences in the images here: https://richardssam.github.io/ffmpeg-tests/tests/greyramp-osx/compare.html?.png

Uses monitor ICC Profiles of native OS for mp4 and mov

No

Yes

no

no

no

no

Yes

?



Ability to disable system profile



no

no

Yes

Yes

Yes

no

no























Obeys NCLC Color Transfer Characteristic Parameters (TRC)

Partially see below

no

no

no

no

no

Partially - see below

no

If the following link https://richardssam.github.io/ffmpeg-tests/tests/greyramp-osx/compare.html?.colortrc shows all the ramps looking the same, its not supported.

Color TRC 1 = rec709

No. - See note 1

no

no

no

no

no

No. - See note 1

no



Color TRC 2 = undefined

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes



Color TRC 4 = gamma22

Yes - see note 3

no

no

no

no

no

no

no



Color TRC 5 = gamma28

Yes - see note 3

no

no

no

no

no

no

no



Color TRC 8 = linear

Yes - see note 3

Yes

no

no

no

no

Yes

no



Color TRC 9 = log





no

no

no

no



no



color TRC 13 = sRGB

Yes - see note 3

Yes



no

no



Yes

no



Supports gamma in mov file

no

no

no

no

no

no

Yes

no



Interprets full range 8-bit YUV mp4's

Yes

Yes

Yes

Yes

Yes

Yes

Yes

Yes



Supports 10-bit h264 mp4's

Yes

Yes

Yes

no

no

no

no

no



h265 support

no

no

no

no

no

no

yes?

no

https://caniuse.com/hevc





















Gamut Support



















Supports different gamuts with ICC profiles in PNG

Yes

Yes

Yes (See note 3)

no

no

no

Yes

Yes

See https://wide-gamut.com

Obeys NCLC Primaries (e.g. will it translate rec2020 media to display correctly)

Converts to rec709 gamut, ignores monitor.

Yes

no

no

no

no

Yes

Converts to rec709 gamut, ignores monitor.

If you see the text Rec2020 and your monitor does not support rec2020 then the browser is not supported:

https://richardssam.github.io/ffmpeg-tests/gamuttests/iccgamut/greyscale-rec2020.mp4





Notes:

  1. TRC 1 (rec709 camera) for chrome on windows uses a sRGB transfer function. see comment 32: https://bugs.chromium.org/p/chromium/issues/detail?id=784713#c35 or ~line995 of https://chromium.googlesource.com/chromium/src/+/refs/heads/main/ui/gfx/color_space.cc 

  2. Color shift on Chrome, reported: https://bugs.chromium.org/p/chromium/issues/detail?id=1262622 this seems to only be an issue with multiple videos on the same page.

  3. The wide-gamut.com page is reporting that it has a wide gamut, but I'm not seeing the Red W on the test page. It would be good to get confirmation.

Chrome on windows and linux

You have the option of forcing what sort of display you would like to default to. This directly affects how video is rendered. 

chrome://flags/#force-color-profile

So you can force the display to be a sRGB display and all media is adjusted accordingly. You can similarly do this for Display-P3, "Color-Spin with gamma 2.4", HDR10. 

Other Links



Test Images

Related content