Commit 25c9d397 authored by Will Cohen's avatar Will Cohen Committed by Commit Bot

[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/+/2504809Reviewed-by: default avatarRune Lillesveen <futhark@chromium.org>
Reviewed-by: default avatarMathias Bynens <mathias@chromium.org>
Commit-Queue: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/master@{#822149}
parent cad04fef
...@@ -1074,6 +1074,7 @@ WenSheng He <wensheng.he@samsung.com> ...@@ -1074,6 +1074,7 @@ WenSheng He <wensheng.he@samsung.com>
Wesley Lancel <wesleylancel@gmail.com> Wesley Lancel <wesleylancel@gmail.com>
Wei Wang <wei4.wang@intel.com> Wei Wang <wei4.wang@intel.com>
Wesley Wigham <wwigham@gmail.com> Wesley Wigham <wwigham@gmail.com>
Will Cohen <wwcohen@gmail.com>
Will Hirsch <chromium@willhirsch.co.uk> Will Hirsch <chromium@willhirsch.co.uk>
Will Shackleton <w.shackleton@gmail.com> Will Shackleton <w.shackleton@gmail.com>
William Xie <william.xie@intel.com> William Xie <william.xie@intel.com>
......
...@@ -24,18 +24,25 @@ AtomicString CreateFilterDataUrl(const char* piece) { ...@@ -24,18 +24,25 @@ AtomicString CreateFilterDataUrl(const char* piece) {
AtomicString CreateVisionDeficiencyFilterUrl( AtomicString CreateVisionDeficiencyFilterUrl(
VisionDeficiency vision_deficiency) { VisionDeficiency vision_deficiency) {
// The filter color matrices are based on the following research paper: // 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". // "A Physiologically-based Model for Simulation of Color Vision Deficiency".
// IEEE Transactions on Visualization and Computer Graphics. Volume 15 (2009), // IEEE Transactions on Visualization and Computer Graphics. Volume 15 (2009),
// Number 6, November/December 2009. pp. 1291-1298. // Number 6, November/December 2009. pp. 1291-1298.
// https://www.inf.ufrgs.br/~oliveira/pubs_files/CVD_Simulation/CVD_Simulation.html // 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) { switch (vision_deficiency) {
case VisionDeficiency::kAchromatopsia: case VisionDeficiency::kAchromatopsia:
return CreateFilterDataUrl( return CreateFilterDataUrl(
"<feColorMatrix values=\"" "<feColorMatrix values=\""
"0.299 0.587 0.114 0.000 0.000 " "0.213 0.715 0.072 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.299 0.587 0.114 0.000 0.000 " "0.213 0.715 0.072 0.000 0.000 "
"0.000 0.000 0.000 1.000 0.000 " "0.000 0.000 0.000 1.000 0.000 "
"\"/>"); "\"/>");
case VisionDeficiency::kBlurredVision: case VisionDeficiency::kBlurredVision:
......
...@@ -2,7 +2,7 @@ Tests that vision deficiencies can be emulated. ...@@ -2,7 +2,7 @@ Tests that vision deficiencies can be emulated.
<p>Emulating "none": <p>Emulating "none":
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAFRJREFUWIXt18ENACAMw8DA5N0chnCQePgGiKz+ujI5aZru3K6uPWAgZSBlIGUgZSBlIGUgZSBlILWS030iyr6/oIGUgZSBlIGUgZSBlIGUgZSB1AXNwwVLtuf+dAAAAABJRU5ErkJggg=="> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAFRJREFUWIXt18ENACAMw8DA5N0chnCQePgGiKz+ujI5aZru3K6uPWAgZSBlIGUgZSBlIGUgZSBlILWS030iyr6/oIGUgZSBlIGUgZSBlIGUgZSB1AXNwwVLtuf+dAAAAABJRU5ErkJggg==">
<p>Emulating "achromatopsia": <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": <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"> <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": <p>Emulating "none":
...@@ -50,5 +50,5 @@ Tests that vision deficiencies can be emulated. ...@@ -50,5 +50,5 @@ Tests that vision deficiencies can be emulated.
<p>Navigating&mldr; <p>Navigating&mldr;
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAFhJREFUWIXt10ENACAQxEAgiMQJsnDHF0R0SXh0BGya+10tc5yStHZ0rkXXHjCQMpAykDKQMpAykDKQMpAykOrpHyLt+wsaSBlIGUgZSBlIGUgZSBlIGUhdCWsFapTFH60AAAAASUVORK5CYII="> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAFhJREFUWIXt10ENACAQxEAgiMQJsnDHF0R0SXh0BGya+10tc5yStHZ0rkXXHjCQMpAykDKQMpAykDKQMpAykOrpHyLt+wsaSBlIGUgZSBlIGUgZSBlIGUhdCWsFapTFH60AAAAASUVORK5CYII=">
<p>Emulating "achromatopsia": <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==">
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment