作者BenHuang (benhuang)
看板DSLR
标题Re: [问题] 关闭白平衡?
时间Sat Jul 10 12:10:17 2010
看了这一串讨论,我有一点建议:在对这些基本观念感到疑惑时,是不是先做些功课再来
讨论会省去很多时间?毕竟这些观念是客观的事实而不是主观的认知。如果没有先弄清楚
原理就去做没有控制环境控制变因的粗糙实验,然後以此支持自己认为的论点,基本上就
是一种Cargo Cult Science [1],这样似是而非论点很容易使得许多新手(e.g., me) 遭
到误导。
关於白平衡跟RAW档的关系,我直接引用并节录两篇对於白平衡的介绍。
第一篇来自[2],顺道大略翻译成中文。
By far the best white balance solution is to photograph using the RAW file
format (if your camera supports them), as these allow you to set the WB
*after* the photo has been taken. RAW files also allow one to set the WB
based on a broader range of color temperature and green-magenta shifts.
至今摄影最佳的白平衡解决办法是使用RAW档(如果你的照相机支援此格式),因为RAW允许
在拍摄相片*之後*再设定白平衡。RAW档同时允许你依据更广色温范围和红绿偏移来设定
白平衡。
Performing a white balance with a raw file is quick and easy. You can either
adjust the temperature and green-magenta sliders until color casts are
removed, or you can simply click on a neutral reference within the image (see
next section). Even if only one of your photos contains a neutral reference,
you can click on it and then use the resulting WB settings for the remainder
of your photos (assuming the same lighting).
使用RAW档来执行非常迅速且简单。你可以调整色温和红绿色偏直到影像中的色偏被移除
,或者你可以简单地选定一个中性参考点,你可以点他一下然後用此白平衡设定应用在其
余的相片(假设都是在同一个场景底下拍摄的)
第二篇来自 [3]
RAW File Format
A discussion in WB would not be complete without a mention of the RAW file
format available in many advanced digital cameras. When you save an image in
RAW file format, you are saving it the way the image sensor sees it --
without applying any adjustments (including white balance) to it. In fact,
the camera ignores any WB setting you dial in.
白平衡的讨论必定会牵扯到每台进阶的数位相机都支援的RAW档。当你以RAW档储存影像时
,你储存的是原始的影像感光元件的数据,不包含任何调整(包括白平衡)。事实上,照相
机会忽略任何你输入的白平衡设定。
Later, in an image editing software with the appropriate RAW plug-in, you can
convert the RAW image to JPEG, and apply any colour temperature shift. Undo
your change and try again, ad infinitum, in as fine an increment as you wish,
until you obtain perfect colour balance.
之後,在一个支援RAW档的影像编辑软体中,你可以将RAW档转成JPEG档,调整任何色温偏
移。可以一试再试直到你得到最理想的白平衡。
关於RAW档格式究竟存了甚麽档案,请参考Wikipedia [4]中第二节File Contents。在第
三节Benefits中第四点也提到了RAW档对於白平衡的功用。关於白平衡原理和运算,请参
考 [5]。
想了解较详细的Image Sensing Pipeline过程的朋友,可以参考 [6] 中的2.3节The
Digital Camera和Figure 2.23。光线经由相机本体 (光圈、快门、和镜头所产生的光学
路径)之後,经过Color Filter Array (e.g., Bayer Pattern ) 落在相机的Sensor chip
上,(CCD/CMOS)捕捉到的光讯号藉由Sense Amplifier来放大 (即所谓的ISO),放大之後
经由类比/数位转换的电路(A/D)量化成12 bit (or 14 bit),并将此资料储存成RAW档。
RAW档到生成JPEG的流程则会经过一连串的数位讯号处理(DSP)运算,可在机身上处理或是
交给任何一款支援RAW的软体:Demosaicking => (Sharpening) => White Balance =>
Gamma Correction / Tone Curve (Contrast, Color Saturation) => Conversion to
8-bit JPEG Compression
所以RAW档於数位摄影中相当於底片摄影里”底片”的角色,纪录的是感光资料,而後面
这一连串运算转换感光资料到可以在电脑上展示的照片则相当於冲洗底片成照片的过程。
对於更广的主题 - Color Reproduction请参考 [7]。
注:一般来说提到RAW档,指的就是未经处理的感光资料,不过有些相机会自行对於RAW档
做些影像处理 (e.g., Noise reduction, Lens-correction),这种情况便叫做Cooked
RAW [8]。
至於为什麽同一场景连续拍两张影像不会得到一模一样的结果,除了环境的光场本身可能
就有扰动之外,相机成像过程本身就有很多杂讯产生,常见的杂讯就有五种[9][10]:
1) Fixed pattern noise
2) Dark current noise
3) Shot noise
4) Amplifier noise
5) Quantization noise
如果对於机率中随机变数 [11]有基本观念的话,就会了解每一次拍照都是对这些随机变
数的一次观察,所以要得到同样的影像几乎是不可能的。
最後,其实现在相机系统都仅支援单一光源的白平衡(e.g., 日光、阴影、白光灯管等等)
。但是实际上现实世界我们所看到的场景都不是如此,尤其以室内最为严重,所以不管你
怎麽选色温都只是逼近或是取舍而已。关於多个光源的白平衡(i.e., spatially
varying white balance) 最近几年也有些研究成果,有兴趣的可以参考[12]。
[1]
http://calteches.library.caltech.edu/51/2/CargoCult.pdf
[2]
http://www.cambridgeincolour.com/tutorials/white-balance.htm
[3]
http://www.photoxels.com/tutorial_white-balance.html
[4]
http://en.wikipedia.org/wiki/Raw_image_format
[5]
http://en.wikipedia.org/wiki/Color_balance
[6] Szeliski R., Computer Vision: Algorithms and Applications, Springer 2010.
http://szeliski.org/Book/drafts/SzeliskiBook_20100517_draft.pdf
[7] R.W.G. Hunt, The Reproduction of Colour, Wiley-IS&T Series 2005
http://ppt.cc/@SE4
[8]
http://en.wikipedia.org/wiki/Cooked_raw
[9]
http://en.wikipedia.org/wiki/Image_noise
[10] Tsin, Y., Ramesh, V., and Kanade, T. (2001). Statistical calibration of
CCD imaging process. In Eighth International Conference on Computer Vision
(ICCV 2001), pages 480–487, Vancouver, Canada.
http://ppt.cc/xvdB
[11]
http://en.wikipedia.org/wiki/Random_variable
[12] Light Mixture Estimation for Spatially Varying White Balance
Eugene Hsu, Tom Mertens, Sylvain Paris, Shai Avidan, Frédo Durand. ACM
Transactions on Graphics, 27(3), (Proc.Siggraph), August 2008
http://people.csail.mit.edu/ehsu/work/sig08lme/
以上跟大家分享
Feedback and bug report are welcome
Jia-Bin Huang
E-mail:
[email protected]
Blog:
http://jbhuang0604.blogspot.com/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.104.128.66
1F:推 poppyer :不过你还是没证明cooked raw一定没动过白平衡啊 07/10 12:15
Hi Poppyer,
就我所知的,Cooked Raw通常是对於sensor感应到的数值做Noise Reduction或是
做implicit lens-correction。
我没有办法证明cooked raw跟白平衡设定没有关系,因为找不到有测试直接说明。
(同样的,这麽说也会很难证明Cooked Raw跟Gamma correction/tone curve等没有关系)
不过,我认为Cooked Raw不会跟白平衡有关系。
理由是白平衡的运算是在对Raw档做完demosaicking之後,也就是如果Cooked Raw要动到
白平衡的话,先得从Raw做demosaicking,得到每个pixel的R,G,B值,做完白平衡,
然後再取一次Baye Pattern回复原本Raw该有的格式。所以我想应该不会有厂商做这种
多余而且对於影像品质没有帮助的步骤。
这是我的理由。不过,我确实没有办法证明没有关系,也许你是对的。
2F:推 freshego :推 07/10 12:32
※ 编辑: BenHuang 来自: 59.104.128.66 (07/10 13:00)
3F:推 spvgf :这篇一定要推一下 07/10 13:16
4F:推 poppyer :good point. 这理由可以说的通 07/10 13:22
5F:→ poppyer :但也有另种可能.因为只是为了做NR,那麽可以把RGGB成 07/10 13:23
6F:→ poppyer :bin成1个点来看.这样就不用复杂的demosacing了. 07/10 13:23
7F:→ poppyer :@而通常的色块噪,都比单点来的大,是一块一块的 07/10 13:24
8F:→ poppyer :当然,k-x到底怎麽做这麽威,没人知道,要不CN就学了.XD 07/10 13:24
9F:推 mrjameslee :这篇一定要推一下 this is the scientific way 07/10 13:32
10F:推 DESW1 :版主在干麻~还不出来m 07/10 13:36
11F:推 joyoyo :这篇不推不行啊! 07/10 13:47
12F:推 nthomas :终於有中肯的出来端正视听了 07/10 14:03
13F:推 LionRafale :好文推 07/10 14:19
14F:推 milkpapa :我比较好奇的是原po是不是理工科系出身呀? 07/10 14:54
15F:→ milkpapa :你的文章和摄影实验都超有趣,思绪清楚有条理~ 07/10 14:55
16F:→ erspicu :有受过电资理工科所教育的人基本上都有这种能力.. 07/10 15:20
17F:→ erspicu :不过像我这种混毕业的人是例外... 07/10 15:21
18F:→ erspicu :相信原PO自己写出解译RAW档的软体也有可能 07/10 15:23
19F:推 BearSheep :送你个大推。正解出现了!!! 07/10 15:43
20F:→ BenHuang :@milkpapa 是 不过这文章内容基本上wiki里头都有 07/10 16:09
21F:→ BenHuang :不需要理工背景也看得懂 差别只在於愿不愿意看而已 07/10 16:10
22F:推 BIGNOSER :经过消化的专业文 一定要推的啦! 07/10 16:25
23F:推 nervcgbeva1 :有神快拜 @o@~~~ 太威了, 这和seminar的报告没两样了 07/10 17:26
24F:推 nervcgbeva1 :再补推一下~~真的是超级好文~~又学了一些知识了~~ 07/10 17:28
25F:推 ejywar :那种标示的方式让晚辈觉得想是在写论文... 真厉害! 07/10 17:44
26F:推 ejywar :晚辈英文烂,所以想知道常见的5种杂讯的中文用辞为何 07/10 17:50
27F:推 Rhomboid :amesphoto跑哪里去了 07/10 18:54
28F:推 chairmanchan:推 这才是真专业 07/10 21:52
29F:→ BenHuang :@ejywar 你是想知道中文名字而已还是他们是怎麽来的? 07/11 00:31
30F:推 MapleWang :阿弥陀佛一定有办法做出更严谨的实验! 07/11 00:40
31F:→ BenHuang :阿密佛陀是甚麽? 07/11 01:39
32F:→ arenptt :有些sensor可以分别对RGGB做不同的gain, 效果就是WB. 07/11 01:53
33F:→ arenptt :所以cooked raw可以跟白平衡有关. 07/11 01:54
Hi arenptt,
1. 请问有没有相关的reference?
2. 假设真有这种做法(用white balance来控制Sense amplifier),好处是甚麽?
出来的结果,跟後端自行设定白平衡应该是等价的 (也许Quantization noise不一样)
3. 由於Sensor不完美的缘故,本来每个pixel上的sensor对於光的感应度就不尽相同
所以产生了同步杂讯 Fixed Pattern Noise (FPN),一般在处理这个问题的做法会去做
Flat-field correction来补偿FPN和Dark current noise所产生的non-uniformity
http://en.wikipedia.org/wiki/Flat-field_correction
不晓得你所指的 是不是Flat-field correction中处理Gain的部分?
34F:推 piggyi :端正视听文.推! 07/11 11:48
35F:推 SniperF :推这篇 07/11 15:03
※ 编辑: BenHuang 来自: 140.109.23.131 (07/11 20:39)
36F:→ arenptt :1. 基於法律的理由, 恕难提供. 07/11 23:49
37F:→ arenptt :2. 我是指sensor对RGB分别不同放大值, 等效於WB; 07/11 23:52
38F:→ arenptt : 而不是WB控制amplifier. 07/11 23:52
39F:→ arenptt :3. flat-field corr. 包含很多项, 在此仅讨论WB. 07/11 23:54
40F:→ arenptt : 最简单的WB就是改变R-gain, B-gain; 07/11 23:57
41F:→ arenptt : 所以sensor若本身可调R-/B-gain, 即可达到WB功能. 07/11 23:58
42F:→ arenptt : 故sensor Bayer-raw可以是做过WB的. 07/12 00:00
43F:→ arenptt :若有误解, 欢迎指正. 07/12 00:02
1. 了解
2. 我的意思是 RGB sensor 从接受 光子 => 电荷 => 电压这个过程有许多放大器
标准的CMOS sensor architecture:
CMOS Active Pixel Sensor Array -> Column Amplifiers -> Programmable gain
amplifiers -> Analog-to-digital converters
若要根据某个设定好的WB来对RGB分别设定不同的Gain 一定是在某一级做了更改
我相信当然有可能有厂商这麽做
我比较感兴趣的是 为什麽?有甚麽好处?
尽管可以先动WB 所存的Cooked RAW仍然可以随意再调整WB
跟标准的RAW比起来 差别只在量化电压讯号之前或之後
若忽略量化误差的话 这两个做法应该是等价的
我想如果有这种sensor作法存在
他这麽做的理由并不在於要得到比较好的感光资料(Cooked RAW),提供使用者後制
而是要简化整个流程/成本,目标只是最後的jpeg档。
所以在高阶的相机比较看不到这种可能的做法 (我还没有找到可公开的参考资料@@)
3. Flat-field correction针对每个sensor只有两项 (Gain 跟 Offset)
我原本以为你可能指的是Gain的这个动作
※ 编辑: BenHuang 来自: 59.104.128.66 (07/12 01:28)
44F:推 dan192 :楼上的,你的层面是在修正SENSOR本身的误差而做的 07/12 01:03
45F:→ dan192 :跟拍出来的场景的WB关系不大 07/12 01:03
46F:→ arenptt :请先了解数位白平衡是在做啥, 即使在电脑上也是类似 07/12 01:16
47F:推 haoto :请问..这种sensor调R/B gain是调AD後的数位讯号吧? 07/12 02:32
48F:→ arenptt :2. 是的, 这种sensor主要是消费型产品. 07/13 01:26
49F:→ arenptt :3. gain可分为exposure和WB, 後者一般是後级的DSP. 07/13 01:29
50F:→ arenptt : 即 built-in (on-chip) 的 DSP. 07/13 01:30
51F:→ arenptt : FFC还包含一些lens correction之类. 07/13 01:32
52F:→ arenptt :回haoto, R/B gain我没看过类比放大的, 若有请告知. 07/13 01:34
53F:推 haoto :谢谢,我猜也是很难,但我不是业内的所以确认一下 07/13 02:47
54F:→ BenHuang :了解 如这样的话 其实这种sensor只是简化整个流程 07/13 08:01
55F:→ BenHuang :把後级DSP的一些动作拿到前头处理 07/13 08:04