3

如果我们有一个 RGB 图像,大多数浏览器,事实上,显示器只支持 sRGB 空间。我试图理解一些重要的事情。然后监视器/网络是否将图像中的每个像素转换为 sRGB 然后显示它?这意味着我们实际上看到的是图像的 sRGB 版本。

另外,如果是这种情况,我们可以使用哪个公式进行转换,如果我们自己进行转换,我假设我们会得到一个“看起来”与原始图像完全相同的图像?

4

3 回答 3

3

图像文件中的像素值只是数字。如果图像“位于”大于 sRGB 的空间(例如 ProPhoto),则只有在启用颜色管理或您自己执行转换的情况下,像素值才会“转换”为 sRGB。

如果有颜色管理引擎,浏览器或设备只会将非 sRGB 颜色空间的标记图像转换为 sRGB。

如果没有色彩管理和标准 sRGB 显示器,所有图像都将“好像”显示为 sRGB,无论其色彩空间如何。即它们可能显示不正确。

即使使用颜色管理,如果图像未标记,它将显示为系统设置使用的任何默认值(通常为 sRGB)。

至于公式:这种转换通常被称为“色域映射”——您实际上是将色度分量从一个空间映射到另一个空间。我将在下面通过链接讨论多种技术和方法。

如果您想做自己的色彩空间转换,请查看Bruce Lindbloom 的网站。如果您想要一个可以使用的色彩管理引擎,请查看Argyll,这里是开源工具列表。


编辑添加:术语和技术

因为这里有一些“替代”(虚假)信息的其他答案,所以我在这里编辑我的答案以添加和帮助澄清。

更正

  1. sRGB 使用与Rec.709(又名 HDTV)相同的主色度和白点色度。色调响应曲线略有不同。
  2. sRGB 由 HP 和 Microsoft 于 1996 年开发,并于 1998 年左右被 IEC 设定为国际标准。
  3. W3.org(万维网联盟。)将 sRGB 设置为所有 Web 内容的标准,在 CSS 颜色中定义。
    • 旁注,“HTML”不是一个标准组织,它是一种标记语言。sRGB 被添加到 CSS 3 标准中。
  4. 如果没有适当的颜色管理系统,配置文件将不起作用。

并且要清楚(参考另一个答案):RGB是颜色模型,sRGB是颜色空间,像sRGB的ICC配置文件这样的可解析描述是颜色配置文件。

其次,sRGB 是 Web 内容的标准,在 Web 浏览器中没有显示配置文件的 RGB 值名义上假定为 sRGB,因此在大多数浏览器中被解释为 sRGB。但是,如果用户具有广色域(非 sRGB 显示器)并且没有色彩管理,那么非色彩管理的浏览器通常会在显示器的色彩空间中显示,这可能会产生意想不到的结果。

条款

  • RGB是一种附加颜色模型。它之所以如此命名,是因为它是一种三刺激模型,它使用三种窄带光“颜色”(红绿和蓝色),选择这些光以尽可能独立地刺激每种眼睛的视锥细胞类型。

  • sRGB是一种颜色空间。颜色空间是颜色模型的子集,但添加了诸如原色色度、白点和色调响应曲线(又名 TRC 或伽马)等细节。

  • sRGB-IEC61966-2.1.icc是sRGB颜色空间的 ICC 颜色配置文件,用于将颜色管理软件告知细节,以便可以进行适当的转换。

    • 一些配置文件与特定设备(如打印机)相关。
    • 一些配置文件被用作“工作空间”。
    • ICC 配置文件包括一些数学相关信息,以将配置文件应用于给定目标。
  • 色彩管理是一个系统,它使用有关设备配置文件和工作色彩空间的信息来处理输出、查看、显示器上的软打样等转换。请参阅此 CM 速成课程

  • LUT或查找表是另一种可用于转换图像或应用颜色“外观”的文件类型。

  • 色域映射是将一个颜色空间的颜色坐标转换或映射到不同颜色空间的坐标的技术。执行此操作的方法取决于许多因素以及所需的结果或渲染意图。

  • 渲染意图意味着使用的方法,例如,它应该是感知的吗?绝对比色法?相对于黑点补偿?饱和?请参阅此关于映射和 Argyll 的讨论。

技术

色彩空间变换和转换并非易事。这并不是说您可以通过名义公式粘贴图像数据并获得良好的结果。

阅读上面的几个链接会有所帮助,我还想推荐Elle Stone 的网站。特别是关于配置文件。

于 2020-02-08T11:07:36.433 回答
1

注意:我使用我认为最常见的表示法(如上一个答案中的替代表示法):RGB 是一种颜色模型,[所以计算各种事物的公式,但没有定义色度、比例和伽马;sRGB 是一个色彩空间,因此具有定义的色域;通过颜色空间,我们知道可以描述哪些颜色,哪些不能;配置文件是设备的特征(因此它定义了设备特定的颜色空间)、意图,并且通常还有一些转换颜色的计算方法。

sRGB 是由计算机制造商和软件公司定义的,用于标准化颜色,但对于旧屏幕和低分辨率,它真的没多大关系。注意:他们使用 Rec.709 (HDTV) 的原色,但使用不同的白点和伽玛(观看条件不同:我们在较暗的房间里看电视和电影;我们有工作用的电脑,在明亮的房间里使用) )。

所以正常方式(在颜色配置文件之前):图像有 3 个通道,每个通道的值从 0 到 255,一个用于红色,一个用于绿色,一个用于蓝色。这是直接发送到视频内存,视频卡将这些值发送到屏幕而不修改它们(在数字 RGB 信号上)。屏幕将 3 个通道值用于 3 个子像素的强度。注意:对比度和亮度控制 [在 CRT 屏幕上] 允许进行一些修正。

因为假定的颜色空间是 sRGB(并且屏幕是为显示 sRGB 而构建的),所以这是标准,并且由 HTML 标准化(作为默认颜色空间)。因此,如果您的浏览器没有明确的颜色空间(例如图像),它将假定它是 sRGB,因此它不会更改值。

屏幕改进,内容的创建和修改开始在计算机上完成,并且有许多具有不同色彩空间的媒体,图像开始指定色彩空间:电视有限制范围(16-235)和不同的伽马(和白点),DCI-P3(数字电影)具有不同的伽马和原色(广色域),打印通常需要更宽的色域(忘记小型 CMYK 打印机),打印照片还需要不同的动态范围、伽马、白色和色彩空间.

所以现在(假设是 RGB 图像,但请注意很多图像不是 RGB,而是 YCC(例如 JPEG)),图像应该有自己的配置文件,它告诉我们相机的颜色特征(所以红色是值 255 ,0,0)。颜色感知程序将检查输出配置文件和输入配置文件,并调整颜色,以使最终结果接近预期颜色。

因此,如果您有一个未配置文件或 sRGB 图像,并且您的屏幕没有配置文件(或sRGB 配置文件):值 255,0,0 将显示您的屏幕可以显示的最强烈和“最红”的红色.

如果您有一个未配置文件的图像,但输出屏幕的配置文件:如果意图是“绝对的”:屏幕会尽力根据 sRGB 匹配颜色。色域外将与色域颜色越接近。“相对”意图:它缩放了许多值,因此您不会看到高光(许多超色域值的颜色相同)。眼睛会纠正,所以你会适应(我们会很快适应,例如 sRGB 等不饱和色彩空间)。其他意图更多的是关于图形,因此它保留了值:与原始值不同,但尽可能不同(对于情节和漫画,这可能很好)。

如果您有轮廓图像,则几乎相同,只是您会发现更多差异。

AdobeRGB 图像(但没有配置文件)将在大多数广域屏幕(启用广域)上以正确的饱和度显示,并且在 RGB 屏幕上显示为不饱和(如果没有配置文件;“绝对和感性意图”可以纠正缺乏饱和度)。

相反,在 Adob​​eRGB 上显示的 sRGB 图像将被视为过于饱和。如果图像具有配置文件,则可以正确看到图像。

在 RGB 图像(通常格式)上,您不能有超出此类图像色域的颜色:255,0,0 和 0,255,0 和 0,0,255 是图像颜色空间的原色,因此您只能描述其颜色颜色空间(如果未指定,则假定为 sRGB)。这不适用于某些允许负值或高于“白色值”的值的格式,例如带有浮点值的格式 (openEXR)。

注意:广色域屏幕通常有一个硬件按钮来切换色彩空间,从原生到 sRGB(以及返回),因为许多应用程序与颜色配置文件不兼容,但我们仍然需要浏览器和邮件。

如果你有兴趣,Giorgianni 等人的书。(来自柯达)是一个很好的介绍:两位作者都在柯达工作(所以胶片 [照片,电影],但他们正在制作 PhotoCD),因此在屏幕和色彩空间以及意图方面存在很多问题。ICC(个人资料的标准)是(在我看来)这本书的后续:ICC 网站有关于该主题的各种信息。

于 2020-01-07T14:00:02.937 回答
0

简单来说:RGB 是一种颜色空间,而 sRGB 是一种颜色配置文件

配置文件将RGB 值解释为特定的上下文,例如设备、软件、浏览器等,以确保您在用户可能看到您的图片的各种设备上具有一致的颜色。

没有配置文件的 RGB 值基本上是无用的,因为显示设备或软件必须猜测如何将 RGB 值映射到显示颜色空间。相当于假设您收到 100 张未知货币的钞票,并被要求将其转换为您的本国货币。它不起作用——你需要知道如何映射这两个值。

所以基本上你不必担心自己解释你的图像。对于 web 来说似乎是始终转换为 sRGB配置文件(图像色彩空间仍然是 RGB)并让浏览器进行解释的最合理方法。

您会发现看似最新的信息,其中包含主要浏览器的图形以及它们在此 EIZO 页面上正确显示 sRGB 配置文件的能力。

PS:为了增加关于颜色管理的一般混淆 -颜色空间有时可能被称为颜色模型,而颜色配置文件有时可能被称为颜色空间

于 2020-01-05T08:40:00.757 回答