WCAG 2.0通用闪存定义中的"Maximum relative luminance"指的是什么?

What does "Maximum relative luminance" in WCAG 2.0 general flash definition refer to?

我正在尝试编写视频分析软件来检查是否符合 WCAG 2.0 扣押指南。但是,在 definition of 'general flash' 中,它声明如下:

A general flash is defined as a pair of opposing changes in relative luminance of 10% or more of the maximum relative luminance (...)

我对“最大相对亮度”的用法感到困惑。没有指定我们在哪个上下文中考虑最大值。是指1.0的亮度吗?或者网页中达到的最大亮度?还是别的?

我找不到任何说明。我只是假设它指的是 1.0 亮度,但是,如果这个假设是错误的,我的代码会由于不正确的高阈值而在闪光检测中产生假阴性。

抱歉,如果我遗漏了一些明显的东西,或者这是问错了地方。

有一个 WCAG 2.0 的 wiki 页面Relative Luminance:

The relative brightness of any point in a colorspace, normalized to 0 for darkest black and 1 for lightest white.

最大相对亮度就是使用本答案末尾的公式得出的最大亮度。

使用“最大相对亮度”的原因是还有其他颜色space,但由于这是网页,因此使用了RGB颜色space。 (例如,您可以使用 CMYK 颜色 space 并使用不同的计算方法。但是最终结果是相同的,1 为白色,0 为黑色)。

最大值 10% 是指最大亮度与最小亮度之间的差异(但最大亮度的 10% 作为差异,而不是最小值的 10%,因为那样会导致更小的差异)。

例如:-

  1. 如果最亮值的亮度为 0.9,则最暗点的最小亮度为 0.81(0.9 * 10% = 0.09,0.9 - 0.09 = 0.81)。
  2. 由于第二条规则,尽管方差大于 10%,但以下是可以接受的 - 最亮值 0.99,最暗值 0.8 - 这有 ~20% 的差异,但最暗值的相对亮度为 0.8,因此它是好的。
  3. 如果最亮的值的亮度为 0.9,但最暗的亮度为 0.72,则这要求每秒闪光次数少于 3 次,因为差异为 20%(1 - (0.9 / 0.72) = 0.2 或 20 %)

由于以下规则注释,第二个语句可以:

A general flash is defined as a pair of opposing changes in relative luminance of 10% or more of the maximum relative luminance where the relative luminance of the darker image is below 0.80; and where "a pair of opposing changes" is an increase followed by a decrease, or a decrease followed by an increase

有一个解释相对亮度方程(第 1 点到第 4 点)的精彩代码笔:

https://codepen.io/bcdon/full/qBWwWyx

包含在内,因为您必须使用 codepen 包含代码...这是使用 RGB 颜色的亮度公式 space。

 L = 0.2126 * R + 0.7152 * G + 0.0722 * B

我从处理类似问题的人那里得到了非常有用的答案:

I'm going to give some background first, which helps to figure out the right interpretation. In the Ofcom and ITU broadcast standards, the general flash threshold is defined as 20 candela/m^2 (=20 nits) where the darker image is darker than 160 nits. When WCAG 2 was in committee, common screens used CRT technology and the committee figured on a max brightness of 200 nits.

So, you can assume bright white #FFFFFF on your monitor to be 100% maximum relative luminance--and just assume this is 200 nits for typical viewing environments. This means that the 0.1 difference in relative luminance corresponds to a brightness difference of 20 nits. The 0.8 cutoff corresponds to 160 nits.

这意味着 “最大相对亮度的 10% 或更多” 不是指过渡中涉及的较亮图像的相对亮度。我在哪里做类似的事情:

diff = brighter_img_rel_lum - darker_img_rel_lum
if diff >= 0.1 * brighter_img_rel_lum:
    # stuff

我应该做这样的事情:

max_rel_lum = 1.0 # might be different in different systems
diff = brighter_img_rel_lum - darker_img_rel_lum
if diff >= 0.1 * max_rel_lum:
    # stuff

这与格雷厄姆的回答相矛盾

If the lightest value has a luminance of 0.9 then the minimum luminance for the darkest point is 0.81 (0.9 * 10% = 0.09, 0.9 - 0.09 = 0.81).

所以我仍然不确定。过去几个月我一直在研究他们的答案,直到我的代码 运行 出现以下问题后才回到这个问题:

  1. 浅色 #000001 深色 #000000
  2. 分别得到2.19E-50.0的相对亮度
  3. 他们的区别也是2.19E-5
  4. 阈值为 2.19E-5 * 10% = 2.19E-6
  5. 2.19E-5 > 2.19E-6
  6. 这在检查一般闪烁时算作有效转换

这导致我的代码将压缩伪像以及其他人眼几乎看不到的特征检测为癫痫发作风险。