相机动态范围的原理是什么?
7535 263
[145 楼] rivershaw [泡菜]
19-7-11 08:04
关于动态范围和RAW数字化再多说几句。

1、动态范围定义为最大信号与最小信号之比,关键在于最小信号的确定。

DxO按照信噪比1:1,就是光强信号与噪声相等,用此时的噪声(或者光强信号)当成最小信号,再根据RAW数据统计计算动态范围,得到Screen数据,然后推算出Print数据。此时的噪声是所有的噪声,包括CMOS固定噪声(读出噪声)、光子散弹噪声、A/D噪声和量化噪声。

photonstophotos则按照读出噪声作为最小信号计算动态范围。(http://www.photonstophotos.net/
读出噪声测量常用的办法是盖上镜头盖,拍摄全黑照片统计噪声,但实际上,统计数据来自RAW,只是排除了光子散弹噪声,仍然会包含A/D噪声和量化噪声。

实际上,在噪声统计分析上还有一个更麻烦的问题,CMOS是马赛克结构,RAW数据是按RGGB通道存储的,把RGGB换算成亮度信号,要根据CMOS的频谱响应计算亮度方程。所以不同网站测试计算出的动态范围数据,不能互相比对、参考。

dpreview另辟蹊径,用欠曝提亮的办法,直观地判断动态范围,实际上是观察小信号时的噪点。欠曝5级、6级,观察出来的噪点,还是所有噪声的噪点,包括CMOS固定噪声(读出噪声)、光子散弹噪声、A/D噪声和量化噪声。

无论那种方法,都是从RAW数据计算动态范围,RAW的真实性就很重要!A/D输出的数据,存在黑白边界(Blacklevel、Whitelevel),RAW解码要做的首先是归一化处理,Blacklevel对应0,Whitelevel对应1.0。这个归一化应该在后期完成,Canon都是存储A/D的原始数据,而Nikon有的照相机的RAW,是对Blacklevel、Whitelevel做过0-16383的归一化处理后的数据,Sony则是保留Blacklevel,对0-Whitelevel做了0-16383的归一化处理。

这种归一化处理,对计算全黑时噪声影响很大,因为去掉了小于Blacklevel的噪声(全部归0)。且不说还可能存在对RAW的降噪预处理,所以动态范围的数据仅仅只是个参考,实际使用时,学会对照片降噪处理才是正道。

2、关于RAW的色阶与照片细腻程度

有一种糊涂观点认为,动态范围越大,A/D量化的台阶越大,而动态范围小,A/D量化的台阶小,照片色阶越细腻。

Canon照相机,在5D4之前,很多的Blacklevel都是2048,而Sony的Blacklevel都是512,5D4也只有ISO100、200时的Blacklevel是512,其他ISO都是2048。所以单纯从RAW的色阶数量上看,Canon的色阶更少,

实际上RAW的色阶大小与我们看到的照片(JPEG、TIFF)的色阶没有什么关系,线性的14bit的RAW色阶,在非线性的影调曲线变换和非线性的Gamma校准后,几个、几十个、几百个甚至几千个RAW色阶被压缩进8bit的JPEG、TIFF的一个色阶!RAW色阶的大小根本无关照片的细腻程度。

这就是为什么RAW后期空间比JPEG大的道理。后期对JPEG随意拉动色阶(亮度、对比度、色阶、曲线调整),JPEG的色阶立刻出现断裂,而这些调整也会造成RAW的色阶断裂,但是几个、几十个、几百个甚至几千个RAW色阶被压缩进8bit的JPEG、TIFF的一个色阶,只要这几个、几十个、几百个甚至几千个中间有一个色阶存在,最终的JPEG色阶就不会断裂。

[144 楼] 无际 [泡菜]
19-7-10 18:30
行摄大葱 发表于 2019-7-10 18:25
扯一扯没关系
如果你把坐标系换成对数坐标系就能明白了
从测量仪器和传感器的角度,测量范围和测量动态范围不是一回事。当然我的观点可以商榷

跟文科生没法一起玩 你开心就成
[143 楼] 行摄大葱 [注销用户]
19-7-10 18:25
用户已注销,历史内容不予显示
[142 楼] 无际 [泡菜]
19-7-10 18:19
以0V~10V的输入范围为例,
如果是10比特采样,则最低有效电压是1/1024×10≈0.01,最高有效电压1023/1024×10≈10,则能表示动态范围大约是0.01~10;
如果是14比特采样,则最低有效电压是1/16384×10≈0.0006,最高有效电压16383/16384×10≈10,则能表示动态范围大约是0.0006~10;

扯淡 看不下去了 本帖最后由 无际 于 2019-7-10 18:20 编辑
[141 楼] 行摄大葱 [注销用户]
19-7-10 18:15
用户已注销,历史内容不予显示
[140 楼] 行摄大葱 [注销用户]
19-7-10 17:59
用户已注销,历史内容不予显示
[139 楼] 玩的美 [泡菜]
19-7-10 11:20
动态范围就是尺子的长度,bit数就是尺子的精度。
[138 楼] 无际 [泡菜]
19-7-10 11:12
rivershaw 发表于 2019-7-9 18:25
鼓掌!

认知错误 知识不需要说服谁 只有一个人是真懂还是假懂的区别
[137 楼] QumiQ1 [禁言中]
19-7-9 19:42
讨论纯理论的东西,比较晦涩,如果能配一张13.4EV和14.6EV在同场景拍的同样画面,让肉眼看一下,或许就感性多了,或许这点数值上的差异,在肉眼的分辨力面前,完全可以无视。
[136 楼] rivershaw [泡菜]
19-7-9 18:25
iZaZaD 发表于 2019-7-9 17:32
没有更有说服力的说法之前,我先保留这个想法了。 因为以前我也是认为数字采样可以分区域的按不同密度去采样,后来被纠正了。 原来的讨论帖在这/thread-1801087-1-1-1.html

这个帖子里的讨论,现在我明白了动态范围13.4EV  和 14.6 EV之间到底有多大差别了。。

都是最大14位采样的传感器,完全暗光下, A 的输出信号平均值是 1.6 ,   B的平均输出值是0.7 ,就这么点儿区别。

20LOG(16384/1.6) /6 =13.4   
20LOG(16384/0.7) /6 =14.6

也就是一张全黑光线下拍的照片,A图上一堆亮度值是1的噪点多些, B图上一堆亮度是2的多些。


鼓掌!
[135 楼] iZaZaD [泡菜]
19-7-9 17:32
无际 发表于 2019-7-9 17:18
你这是误区 不能乱自负


没有更有说服力的说法之前,我先保留这个想法了。 因为以前我也是认为数字采样可以分区域的按不同密度去采样,后来被纠正了。 原来的讨论帖在这/thread-1801087-1-1-1.html

这个帖子里的讨论,现在我明白了动态范围13.4EV  和 14.6 EV之间到底有多大差别了。。

都是最大14位采样的传感器,完全暗光下, A 的输出信号平均值是 1.6 ,   B的平均输出值是0.7 ,就这么点儿区别。

20LOG(16384/1.6) /6 =13.4   
20LOG(16384/0.7) /6 =14.6

也就是一张全黑光线下拍的照片,A图上一堆亮度值是1的噪点多些, B图上一堆亮度是2的多些。

本帖由安卓客户端编辑于:2019-07-09 17:38:52
[134 楼] 无际 [泡菜]
19-7-9 17:18
iZaZaD 发表于 2019-7-9 17:14
这个问题以前讨论过。不存在这个说法,A/D采样是线性的。
你这是误区 不能乱自负
[133 楼] iZaZaD [泡菜]
19-7-9 17:14
无际 发表于 2019-7-9 16:51
那么你可以进一步来理解 动态大意味着中间调层次会减少这个问题了


这个问题以前讨论过。不存在这个说法,A/D采样是线性的。
[132 楼] 无际 [泡菜]
19-7-9 16:51
iZaZaD 发表于 2019-7-9 16:37
这么浅显的道理当然懂了。不懂的是14位的数字怎么量化出来高于14位的动态范围。  现在也懂了。

那么你可以进一步来理解 动态大意味着中间调层次会减少这个问题了
[131 楼] iZaZaD [泡菜]
19-7-9 16:37
无际 发表于 2019-7-9 16:32
你怎么就没明白 0-14EV 按14bit数字化就是0-16383 也可以按8bit数字化数字0-255 不管是255还是16383只是一个量化细分的映射关系 不是动态本身

即便是0-6EV也可以映射到14bit的0-16383 或者8bit的0-255


这么浅显的道理当然懂了。不懂的是14位的数字怎么量化出来高于14位的动态范围。  现在也懂了。

[130 楼] 无际 [泡菜]
19-7-9 16:32
iZaZaD 发表于 2019-7-9 11:27
理想的手电筒,能发出亮度是1-16383

你怎么就没明白 0-14EV 按14bit数字化就是0-16383 也可以按8bit数字化数字0-255 不管是255还是16383只是一个量化细分的映射关系 不是动态本身

即便是0-6EV也可以映射到14bit的0-16383 或者8bit的0-255 本帖最后由 无际 于 2019-7-9 16:33 编辑
[129 楼] 征途上奔走 [泡菜]
19-7-9 16:10
james3721 发表于 2019-7-9 11:12
理论上的量化噪音是0.5,如果信号接近甚至小于0.5时,就必须要考虑量化噪音了,所以动态不可能大于15ev。这时如果要记录更大的动态范围,恐怕要增加bit了,比如16位。
我通俗理解,动态范围是指最低有效光度与最强光度的比较值吧。若传感器不能随光线增强而线性输出电压(已经满阱),再增加采样值也不行吧。之所以背照式比前照式传感器有更大的动态范围,首先是因为同等光照强度与曝光时间内背照式每个像素点可容纳光带来的电子比前照式更多,电压更强劲,反映出更高的光亮度(当然也与其所使用的电路技术有关,如铜基比铝基本底电噪声低,图像电信号放大处理电路越靠近传感器像素损耗越少以致电信号信噪比更高,再加上适应处理电信号所需的高采样率等),这样采样才有意义。
https://wenku.baidu.com/view/d540e3a5f524ccbff1218459.html《动态范围》可参考下理解动态范围。 本帖最后由 征途上奔走 于 2019-7-9 16:17 编辑
[128 楼] iZaZaD [泡菜]
19-7-9 15:36
娲姝 发表于 2019-07-09 15:00
我觉得你已经接近问题的核心,其实你这个说法已经涉及到过采样,实际上嘛...

也是那样

我们先来说一个非常简单...


似乎懂了。

实际上是平均值的意义。

最小测量刻度是1,四舍五入的算法下,它不能一次就测出来0.5~1.4999之间的真实数值,但可以用多次测量的方法得到真实的数值,如果最大量程是16384,那么最大的被测动态范围是20log(16384/0.5)/6 = 15EV

如果在最小刻度下测量出现较多次的0,说明平均值可能低于0.5,这种情况下,就应该提高采样位数了,14位不够了。

所以rivershaw说14位采样,可以是15EV,但也不太会超出多少。

本帖由安卓客户端发布
[127 楼] 行摄大葱 [注销用户]
19-7-9 15:32
用户已注销,历史内容不予显示
[126 楼] 行摄大葱 [注销用户]
19-7-9 15:23
用户已注销,历史内容不予显示
[125 楼] 行摄大葱 [注销用户]
19-7-9 15:19
用户已注销,历史内容不予显示
[124 楼] 行摄大葱 [注销用户]
19-7-9 15:11
用户已注销,历史内容不予显示
[123 楼] 娲姝 [泡菜]
19-7-9 15:00
iZaZaD 发表于 2019-7-9 13:14
量子效率不是1,制造工艺也保证不了各个像素绝对均衡一致输出只能是整数,四舍五入了

可能不是很符合实际,但是就是想搞明白原本1~16384  14EV的亮度范围的信号,为啥经检测和量化输出变成大于14EV的动态范围了。


我觉得你已经接近问题的核心,其实你这个说法已经涉及到过采样,实际上嘛...

也是那样

我们先来说一个非常简单的 ADC,它只有 1bit,输出要么是 0,要么是 1。考虑到大多数 ADC 输入模拟量都是电压,我们就假设这个 ADC 的输入范围是 0~1V,底噪 0.5V,也就是说,将 ADC 输入短路到 0V,然后让 ADC 采样 1000 次,其中有 500 次结果给出 1,有 500 次结果给出 0(这个计算简化了),结果是均匀、随机分布的。那么,现在我们给它输入 0.1V 电压,会如何呢?

还是采样 1000 次,会有 600 次输出 1,有 400 次输出 0(这个计算还是过度简化了)。因此这个只有 1bit、输入范围 0~1V 的 ADC,竟然可以分辨 0.1V 的电压变化

当然我们的相机只曝光一次,可是它像素多么,所以比如映像中有 1000 个像素区域的亮度在比底噪水平高 1LSB 的 10% 水平上,就会出现有 600 个像素输出 1,400 个像素输出 0 的情况(这个计算更加过度简化了)。它们均匀、随机分布。

[122 楼] 泽普林 [泡菜]
19-7-9 14:03
结像松散  色彩怪异  还不仅仅是白平衡问题   估计不会只是动态范围那么简单吧  
[121 楼] rivershaw [泡菜]
19-7-9 13:33
iZaZaD 发表于 2019-7-9 10:58
假设如果我有个理想的手电筒,能发出亮度是1-16383 (什么单位我就先不去学习了)均匀光照射到传感器表面。传感器有10个像素。 分两次照射,第一次亮度是1,第二次光的亮度是16383 。

第一次光照射,传感器上的读数得到:1,0,0,0,1,0,1,0,0,1   统计平均值0.4
第二次光照射,传感器上的读数得到:16383,16380,16383,16381,16382,16382,16380,16383,16380,16383, 统计平均值16381.7

那么我说统计出来的这个光线的亮度动态范围是 20log(16381.7/0.4)=92.2dB /6 =15.4EV  

这个计算过程,对吗?


基本就是这个意思。

严格一点应该这样说,当CMOS光照达到饱和时(满阱),输出为16383,16380,16383,16381,16382,16382,16380,16383,16380,16383, 最大信号为统计平均值16381.7。

盖上镜头盖、无光照时,输出为1,0,0,0,1,0,1,0,0,1,标准差(噪声)是0.49,动态范围应该是最大信号除以固定噪声,16381.7除以0.49,等于15.0EV。

[120 楼] iZaZaD [泡菜]
19-7-9 13:14
james3721 发表于 2019-7-9 11:39

如果你的手电筒亮度是1,第一次照射为啥输出不是全1呢?


量子效率不是1,制造工艺也保证不了各个像素绝对均衡一致,输出只能是整数,四舍五入了。

可能不是很符合实际,但是就是想搞明白原本1~16384  14EV的亮度范围的信号,为啥经检测和量化输出变成大于14EV的动态范围了。
[119 楼] constaintin-fox [泡菜]
19-7-9 12:59
iZaZaD 发表于 2019-7-9 10:44
我是这么想的:

首先动态范围是一个可观存在的量,与用什么办法测量无关的,即使不去测量它也存在。

但是不去测量,就不会知道它到底是多少。

那么测量手段不同,会不会导致不同的读出结果? 会不会因为测量手段的局限导致不能完整观测到完整的动态范围?

101楼那个参数表,102Ke- 我理解为是这个像素最大能装下102000个单位的光电子数, 3e- 是能观测到的有效光电子数的下限, 不管用什么量化手段,这个都是传感器本身的固有属性。 20log(102000/3 ) =90.6dB  /6 =15.1EV   , 那么用14位的ADC采样,如果是完全线性的对应关系, 那么14位的数据0-16383,就不足以表达出来这个传感器的全部动态范围了。

哪怕只有一位数据,只记录纯黑和纯白,它的动态范围该是多少还是多少(除去误差)。釆样精度是针对上下的过渡,位数越高,画面越精细。
数码音乐中的釆样如果精度很低,会造成跳跃感,不连贯,极端的例子就是从最弱音跳到最强音,但动态没变。
[118 楼] james3721 [泡菜]
19-7-9 11:39
iZaZaD 发表于 2019-7-9 11:27
“如果信号接近甚至小于0.5时,就必须要考虑量化噪音了” ,这个是哪方面的知识?我去学习一下

我刚才举的这个例,说了“理想的手电筒,能发出亮度是1-16383” ,那么它的发光亮度范围是不可能超过14EV的,怎么一番折腾测量后就出来15.6了,这个是我不理解的。


量化噪音是实际存在的,如果有用信号接近甚至小于量化噪音,这个信号就没啥意义了。所以有一些技术来减少量化噪音,比如dither抖动技术。

如果你的手电筒亮度是1,第一次照射为啥输出不是全1呢?
[117 楼] iZaZaD [泡菜]
19-7-9 11:27
james3721 发表于 2019-7-9 11:12
理论上的量化噪音是0.5,如果信号接近甚至小于0.5时,就必须要考虑量化噪音了,所以动态不可能大于15ev。这时如果要记录更大的动态范围,恐怕要增加bit了,比如16位。


“如果信号接近甚至小于0.5时,就必须要考虑量化噪音了” ,这个是哪方面的知识?我去学习一下

我刚才举的这个例,说了“理想的手电筒,能发出亮度是1-16383” ,那么它的发光亮度范围是不可能超过14EV的,怎么一番折腾测量后就出来15.6了,这个是我不理解的。
[116 楼] james3721 [泡菜]
19-7-9 11:12
iZaZaD 发表于 2019-7-9 10:58
假设如果我有个理想的手电筒,能发出亮度是1-16383 (什么单位我就先不去学习了)均匀光照射到传感器表面。传感器有10个像素。 分两次照射,第一次亮度是1,第二次光的亮度是16383 。

第一次光照射,传感器上的读数得到:1,0,0,0,1,0,1,0,0,1   统计平均值0.4
第二次光照射,传感器上的读数得到:16383,16380,16383,16381,16382,16382,16380,16383,16380,16383, 统计平均值16381.7

那么我说统计出来的这个光线的亮度动态范围是 20log(16381.7/0.4)=92.2dB /6 =15.4EV  

这个计算过程,对吗?


理论上的量化噪音是0.5,如果信号接近甚至小于0.5时,就必须要考虑量化噪音了,所以动态不可能大于15ev。这时如果要记录更大的动态范围,恐怕要增加bit了,比如16位。