0

[DevTools] Adjust luminance grayscale constants

This patch modifies the constants used to simulate
achromatopsia (grayscale). The paper referenced in
the patch's inline comments suggests that the
constants being used by Chromium are only correct
when converting from the NTSC color space. The
new constants here are proposed in the paper for
conversion from sRGB.

R=mathias@chromium.org

Bug: chromium:1143044
Change-Id: I4c20b61a067ba4842e846c8dc03d0f3b61ee8fb2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2504809
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Commit-Queue: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/master@{#822149}
This commit is contained in:
Will Cohen
2020-10-29 14:08:49 +00:00
committed by Commit Bot
parent cad04fefc7
commit 25c9d397f8
3 changed files with 14 additions and 6 deletions
AUTHORS
third_party/blink
renderer
web_tests
inspector-protocol

@ -1074,6 +1074,7 @@ WenSheng He <wensheng.he@samsung.com>
Wesley Lancel <wesleylancel@gmail.com>
Wei Wang <wei4.wang@intel.com>
Wesley Wigham <wwigham@gmail.com>
Will Cohen <wwcohen@gmail.com>
Will Hirsch <chromium@willhirsch.co.uk>
Will Shackleton <w.shackleton@gmail.com>
William Xie <william.xie@intel.com>

@ -24,18 +24,25 @@ AtomicString CreateFilterDataUrl(const char* piece) {
AtomicString CreateVisionDeficiencyFilterUrl(
VisionDeficiency vision_deficiency) {
// The filter color matrices are based on the following research paper:
// Gustavo M. Machado, Manuel M. Oliveira, and Leandro A. F. Fernandes
// Gustavo M. Machado, Manuel M. Oliveira, and Leandro A. F. Fernandes,
// "A Physiologically-based Model for Simulation of Color Vision Deficiency".
// IEEE Transactions on Visualization and Computer Graphics. Volume 15 (2009),
// Number 6, November/December 2009. pp. 1291-1298.
// https://www.inf.ufrgs.br/~oliveira/pubs_files/CVD_Simulation/CVD_Simulation.html
//
// The filter grayscale matrix is based on the following research paper:
// Rang Man Ho Nguyen and Michael S. Brown,
// "Why You Should Forget Luminance Conversion and Do Something Better".
// IEEE Conference on Computer Vision and Pattern Recognition (CVPR),
// Honolulu, HI, 2017. pp. 6750-6758.
// https://openaccess.thecvf.com/content_cvpr_2017/papers/Nguyen_Why_You_Should_CVPR_2017_paper.pdf
switch (vision_deficiency) {
case VisionDeficiency::kAchromatopsia:
return CreateFilterDataUrl(
"<feColorMatrix values=\""
"0.299 0.587 0.114 0.000 0.000 "
"0.299 0.587 0.114 0.000 0.000 "
"0.299 0.587 0.114 0.000 0.000 "
"0.213 0.715 0.072 0.000 0.000 "
"0.213 0.715 0.072 0.000 0.000 "
"0.213 0.715 0.072 0.000 0.000 "
"0.000 0.000 0.000 1.000 0.000 "
"\"/>");
case VisionDeficiency::kBlurredVision:

@ -2,7 +2,7 @@ Tests that vision deficiencies can be emulated.
<p>Emulating "none":
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAFRJREFUWIXt18ENACAMw8DA5N0chnCQePgGiKz+ujI5aZru3K6uPWAgZSBlIGUgZSBlIGUgZSBlILWS030iyr6/oIGUgZSBlIGUgZSBlIGUgZSB1AXNwwVLtuf+dAAAAABJRU5ErkJggg==">
<p>Emulating "achromatopsia":
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAFpJREFUWIXt10ENADEMxMD2eARR2IfQFYS3Uh8eACsrv+zu/lfQzCTn1hddu8BAykDKQMpAykDKQMpAykDKQGpXVfQnSXv+ggZSBlIGUgZSBlIGUgZSBlIGUgcPVwX7L3bHewAAAABJRU5ErkJggg==">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAFpJREFUWIXt10ENADEMxMD2IARfcIbeFYS3Uh8eACsrv+zu/lfQzCTn1hddu8BAykDKQMpAykDKQMpAykDKQGpXVfQnSXv+ggZSBlIGUgZSBlIGUgZSBlIGUgdMlAW5OcC1dAAAAABJRU5ErkJggg==">
<p>Emulating "blurredVision":
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAehJREFUWIXtl81u4jAURo8TN7RpASXqohKLvsG89DzXLJFm1ZZCyb89i5tAWtAQYlfqIp90FWEl1yfX186H4tdvy3wN8Qvc7CGoQVnA8n8psAqMhiqGfQrbFWye4X0FWSrjRst9qAv5zkuzWEPyBx7+QrQDXbZwAwBRUEdQPsDuSYbKOeQJFAtQZhTUZ8C7F4FbrGG2EUBlhgHaQACLhQzlCURbCAtZicOLjqueAN7spXK3G5i9jQCcyfz5TlokLI9tMp6rBxjUkjQsBU4X1wEC1GUPrOn18KUcQwCV4WwM6kF6z1hvVfsMeJA9E5d07hk/lesUeMv0TZoAXTUBumoCdFXvHFRf4pKuvX+cNDbgJIDBn7qT8AusMRqaSKKO2rmvdDPd80aDDb1CaqpY/Fy+FKZRdmspOaq4B9pV0xUwS8VsAkRLN8OapWJYmxmYEB/9qXlfCUue+LH8WQplfKyiozSbZ3nr7bb1dM0AuB6kCWVZy7nAfTxCdS9jHjaNVDBLxKh2Nl0NBOwmN1qcdRVDed/7s+ReQcXtqyWor1ja0xSHpe5OBKPbHnTfKIqwsIddqxgJ2F39n4cK1bREri5YHa+2/9s5q/UM6FdfvsU/Tz/ezUyArpoAXTUBumoCdNUE6KoJ0FX/AAow6PKlz4YvAAAAAElFTkSuQmCC">
<p>Emulating "none":
@ -50,5 +50,5 @@ Tests that vision deficiencies can be emulated.
<p>Navigating&mldr;
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAFhJREFUWIXt10ENACAQxEAgiMQJsnDHF0R0SXh0BGya+10tc5yStHZ0rkXXHjCQMpAykDKQMpAykDKQMpAykOrpHyLt+wsaSBlIGUgZSBlIGUgZSBlIGUhdCWsFapTFH60AAAAASUVORK5CYII=">
<p>Emulating "achromatopsia":
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAFpJREFUWIXt10ENADEMxMD2eARR2IfQFYS3Uh8eACsrv+zu/lfQzCTn1hddu8BAykDKQMpAykDKQMpAykDKQGpXVfQnSXv+ggZSBlIGUgZSBlIGUgZSBlIGUgcPVwX7L3bHewAAAABJRU5ErkJggg==">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAFpJREFUWIXt10ENADEMxMD2IARfcIbeFYS3Uh8eACsrv+zu/lfQzCTn1hddu8BAykDKQMpAykDKQMpAykDKQGpXVfQnSXv+ggZSBlIGUgZSBlIGUgZSBlIGUgdMlAW5OcC1dAAAAABJRU5ErkJggg==">