作者momokoshi (廉价艺术工)
看板DSLR
标题Re: [问题] Nikon sRGB 跟一般 sRGB 差别?
时间Mon Aug 8 20:48:22 2022
简单分析一下 Nikon 版和 Adobe 版的 sRGB 有什麽差异
为了怕被 End,先说结论:不同的 sRGB 几乎没差,直接用不需担心
原文发在这里,欢迎加入社团一起讨论:
https://www.facebook.com/groups/goodprintsharing/posts/742850950280618
各家软体随附的 sRGB profile 有什麽差别,其实国外有大神分析过
总共拿了 15 个不同来源的 sRGB ICC 做比较,有兴趣的板友可以移驾过去看看
https://ninedegreesbelow.com/photography/srgb-profile-comparison.html
这同时也代表一件很有趣的事:
即便都叫做 sRGB,但实际上不同描述档之间有些微差异
但这些差异通常是很轻微的,直接指定不同 profile 可能也没有可察觉的色彩差异
把 Nikon 修图软体内使用的
Nikon sRGB 4.0.0.3002
和 Adobe 版本的
sRGB IEC61966-2.1 拿来比较
为了方便称呼,以下使用 Nikon sRGB 和 Adobe sRGB
‧额外的标签资料
两者最明显的差别是 Adobe sRGB 用了更多的标签纪录额外资料
例如黑点、标准环境照明等等,但这些标签内容并不是 ICC 规范一定要使用的
实际应用上通常也会被舍弃,所以 Nikon sRGB 缺少这些资料实际上没有影响
‧D65 白点
sRGB 使用 D65 的白点,依据 ICC 规范应使用的 XYZ 值为 0.9505 1.0000 1.0890
两个 sRGB profile 内部使用的 XYZ 值和规范比较如下:
规范 Nikon Adobe
X 0.9505 0.9505 0.95045
Y 1.0000 1.0000 1.00000
Z 1.0890 1.0891 1.08905
可以看出两者的白点有些微的差异,且都和 ICC 规范不同
但这麽小的差异实际上并不会造成使用上的影响,比较可能产生的是心理上的疙瘩
‧RGB 色度
sRGB 规范 RGB 的 xy 色度座标为 R (0.64,0.33)、G (0.30,0.60)、B (0.15,0.06)
以下整理规范计算上的 RGB 理论 XYZ 数值,以及另两个描述档中实际的 XYZ 值
数值都已经过 D65-D50 色度转换,使用 ICC 建议的线性 Bradford
Red 规范 Nikon Adobe
X 0.43604 0.43607 0.43607
Y 0.22248 0.22250 0.22249
Z 0.01392 0.01392 0.01392
Green 规范 Nikon Adobe
X 0.38511 0.38507 0.38515
Y 0.71691 0.71687 0.71687
Z 0.09707 0.09706 0.09708
Blue 规范 Nikon Adobe
X 0.14305 0.14305 0.14307
Y 0.06061 0.06061 0.06061
Z 0.71391 0.71399 0.71410
将三种不同的 RGB 点绘制在 xy 色度图上,三者几乎是重合的
https://imgur.com/vYKHi5W
不同描述档实作之间的差异可以忽略
‧真正的差异
从以上白点和 RGB 色度的比较上可以发现,虽然数值有些微的差异
但实际使用上应该没有人可以发觉其中不同之处
不过 Nikon sRGB 的档案容量明显要比 Adobe sRGB 要大上许多
差异在於 Adobe 使用常见的 10 bit 精度纪录 sRGB 曲线
Nikon 则使用了较高的 12 bit
众所皆知,sRGB 曲线在暗部有一小段直线区域,接着使用 gamma 2.4 曲线
整体整合起来才接近於常见的 gamma 2.2
ICC profile 内部采用类似 1D LUT 的 TRC 标签来记录
理论上 Nikon 使用 12 bit 共 4096 点来表达 sRGB 曲线
会比 Adobe 的 10 bit 共 1024 点精度要好
但从图上比较也很难看出彼此之间的差异
https://imgur.com/4w3HNNV
故进一步把两个 profile 每一节点的数值和 sRGB 规范的理论值做比较
Nikon sRGB 的误差反而比 Adobe sRGB 更大
平均误差分别是 0.00000758 对上 0.00000379
若是以 16 bit 共 65536 阶输入数值,仿一般色管软体线性内插 LUT 计算
Nikon sRGB 曲线均方差为 0.12037985,Adobe sRGB 则是 0.12058937
靠着更高精度的 12 bit LUT,Nikon sRGB 总算把优势取回
题外话,这两个 ICC 都是 V2 格式,ICC V4 支援「类sRGB」曲线的储存方式
可以直接利用直线段和曲线段的分界点,以及直线段斜率、曲线段 gamma 值
以更少的资料栏位达到更高的准确度,不必再使用 LUT 的方式储存、内插实际数值
‧结语
说了这麽一大篇,最终结论就如同文章开头所说
各家制作的 sRGB profile 虽然存在数值上的差异,但在实际应用中几乎无法被察觉
只要不是被恶搞的 profile,各种 sRGB ICC 可以说是实用上等校的
不需要在彼此之间做多余的转换,以免转换造成更多的断阶和阶调损失
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.168.173.149 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DSLR/M.1659962906.A.CB1.html
1F:推 CGary: 推 写得很详细 08/08 20:51
2F:推 user1120: 推 08/08 21:01
3F:推 jack8587: 推 08/08 22:17
4F:推 firenick: 推专业详细,结论就是:几乎没差,不要没事转来转去自扰 08/08 22:19
5F:推 ocean920704: 好意外12bit居然没有差很多 08/09 01:05
6F:推 ferrinatice: 推 08/09 02:45
7F:推 qo6m3: 专业用心推 08/09 07:59
8F:推 hisct: 请问精度10、12bit存成jpg会压成8bit吗? 08/09 10:10
TRC 的精度并不是指色彩深度,可能太容易混淆所以以下补充说明
TRC 内部记录类似 1D LUT,也就是输入一个数值,从表中寻找对应的输出数值
在本篇文中的输出数值就是 sRGB 的曲线,那个看起来像但不是 gamma 2.2 的东西
若输入数值没有刚好对应的栏位,就用上下两个栏位的数值内插
所以越多的栏位就可以有越高的 sRGB 曲线匹配度
但不可能为了追求精度无止境提高栏位数量,所以一般 ICC 使用 1024 个栏位
这个数量是 2^10,所以称为 10 bit,这是指 LUT 的格子数量
相同地,12 bit 是指这个 TRC 有 4096 个栏位,并不是指数值的色彩深度
在 ICC 的 TRC 标签里,数值的色彩深度通常都使用 16 bit
本文中的两个 sRGB ICC 都是如此
9F:→ hisct: 色域转换是软体必须动作 那相对色度比较好吗? 08/09 10:15
不知道你用哪一套软体,但支援色管的软体理论上不应该有强制转换的流程才对
感应式和相对色度的差异主要在接近色域边缘的色彩处理
没有所谓谁比较好,只有适不适合的问题,不确定的话都试试看就好了
这个问题太大哉问,网路上应该有很多完整的说明可以看,就不详述了
推
souvlaki: 专业…推 08/09 10:34
※ 编辑: momokoshi (60.248.162.95 台湾), 08/09/2022 12:08:58
10F:→ CGary: 有个疑问 不同软体对於相同profile的解读是否都是一样的呢? 08/09 16:34
11F:→ CGary: 如果不是 将不同sRGB profile做了转换会不会在不同软体上反 08/09 16:35
12F:→ CGary: 而呈现意想不到的结果呢? 08/09 16:35
13F:推 firenick: 一样,硬体端的表现才会呈现意想不到的结果 08/09 23:46
14F:→ firenick: 所以硬体要用描述档做硬体校正 08/09 23:47
15F:→ momokoshi: 对 profile 的"解读"是一样的,只要是 ICC 规范的栏位 08/10 08:24
16F:→ momokoshi: 解读之後应用可能会有差异,比如黑点对应或是内插法 08/10 08:26
17F:→ momokoshi: 或者是资料栏位的支援性,比如有些色管核心不支援LUT 08/10 08:27
18F:→ momokoshi: 在都正确支援的情形下,不同软体间差异是微乎其微 08/10 08:29
19F:推 rgbff: 专业推 08/10 12:50
20F:推 akito: 专业推 08/10 14:41
21F:推 a4332377: 推! 08/11 09:40
22F:推 WMQ: 推 09/20 20:08