《玩转RAW格式》——基础篇
作者:网友整理NFC写卡v1.1.0 32.79M / 简体中文
点击下载视频照片恢复大师v1.3.9 21.70M / 简体中文
点击下载image toolbox(图像缩放器)v2.6.0 31.17M / 简体中文
点击下载
[老狐教程]之《玩转RAW格式》——基础篇 引用: 【关于本文】 DSLR现在已经算是相当普及了,可是关于Raw格式的问题,在国内的各种书籍里、或是网上,这方面的资料是少之又少。前段时间相当有幸地拜读了B R U C E_F R A S E R大师的《R e a l_w o r l d_c a m e r a_r a w_w i t h_A d o b e_P h o t o s h o p_C s》
,并对其中的观点进行实际文件的多次验证。将读书笔记及心得整理成该文,希望能给广大数码摄影爱好者带来一些有用的信息。另外,假如你对Gamma、Photoshop中的Level、Curve等问题有深入了解的话,阅读本文会更容易理解。
一、什么是RAW文件?
RAW文件主要是一种记录了数码相机传感器的原始信息,同时伴随着一些由相机所产生的一些元数据(metadata,诸如IS0的设置、快门速度、光圈值、白平衡等)的文件。不同的相机制造商会采用各种不同的编码方式来记录raw数据,进行不同方式的压缩,个别还甚至对raw数据进行加密。所以,不同的制造商对各自的raw文件采用不同的文件扩展名,如Canon的.CRW、Minolta的.MRW,Nikon的.NEF,Olympus的.ORF等,不过其原理和所提供的作用功能都是大同小异的。
二、为何要选择RAW格式?
答案是非常简单的,我们来看一下在绝大部分数码相机内部,拍摄JPG的话,其生成过程是怎样的。
从CCD/CMOS得到原始Raw数据后,把之前设置好的各项参数,如sRGB或是Adobe RGB的色彩空间、锐化值、白平衡、对比度、降噪等,更多的是再加上一条强S形的曲线(提亮亮部、压暗暗部)进行变换(为什么要这样?这是因为CCD/CMOS捕获光子能量是基于一种线性Gamma(Gamma 1.0),可是人眼对光的感觉的却是非线性的,如果不进行这个操作的话,图像是暗得没法看的。并且不清楚原因的人看了后绝对不会去买数码相机,厂商恐怕要倒闭了),得到变换后的图像,再按照你所设定的JPEG质量(诸如SHQ、HQ、M、S)进行压缩,得到JPG文件。
而拍摄RAW格式的话,机身上的所有设置除了ISO、快门、光圈、焦距之外,其它设定一律对RAW文件不起作用,因为上述的色彩空间、锐化值、白平衡、对比度、降噪等的所有操作必须在转换Raw时才指定,一切都由你自己控制。
打个最简单的比方,拍JPG就像是自己拍照,然后拿给相机制造商的打片手来帮你出片;而拍RAW格式则是自己拍照、自己冲洗底片、自己出片。(看看为什么Olympus Studio中把英文版的“Raw Development”翻译成中文版的“Raw显像”就知道了)
也许有很多人对后期的处理(或是对PS)嗤之以鼻,觉得前期拍摄时相机后面的脑袋是最重要的。没错,对于这一点,本人也十分赞同。可是,既然有前期那种认真对待摄影的精神,为什么就不能把这种态度用后期制作上去呢?以前我们一直埋怨拍的片子被冲印店的打片手糟蹋,于是转向拍翻转,算是让自己有了更大部分的操控权。现在到了数码,从头到尾都可以让自己完全控制,又为何要将其拒之千里之外呢?况且,更是由于数码的原因,假设后期出片(这里指的不是PS,而是相当于底片显影的过程)不认真处理的话,前期付出的努力再多也可能没法弄出真正质量高的片子。
三、关于传感器
主流的数码相机传感器,主要有CCD、CMOS和Foveon X3。对于Foveon X3的工作方式,可自行到Foveon的主页上去查阅,这里主要只简单地讲一下CCD/ CMOS的工作方式,对我们使用raw就已经足够了。
数码相机传感器是由横竖两个方向密集排列的感光元件(CCD或CMOS)组成的一个二维矩阵,常见的有如下图示的Bayer模式的排列方式,每个CCD就对应一个像素。其中R感应红光、G感应绿光、B感应蓝光,而在Bayer模式中G是R和B的两倍(因为我们的眼睛对绿色更敏感)
图1
在矩阵内的每个CCD或CMOS只是用来感受光子的能量,因应进入光线的强度而产生对应比例的电荷,然后将这些电荷信息汇集并经过放大,储存起来。而应当知道的是,raw纪录的只是每个像素位置的电荷值,它是没有记录任何的颜色信息的。所以CCD是“色盲”的,也就是说:
RAW文件只是灰度文件而已!
我们可以这样去想象一下充满电荷的CCD/CMOS,就像下图一样:
图2
因此任何一个RAW Converter(如Photoshop的Camera RAW Plugin,Bibble、Phrase One C1 Pro、RawShooter essentials 2005,各厂商自带的Raw转换软件等)的作用就是将这些像素所记录的亮度信息转换成为肉眼所能看见的颜色信息,至于不同的制造商是如何排列传感器矩阵上的RGB或CMY的问题,我们不需要去关心,只要所使用的软件能够支持你的数码相机,就说明他已经了解这个问题,知道该怎么去诠释和处理每个像素上的亮度值。
由于现在的CCD/CMOS与Foveon X3的原理不一样,所以对于CCD/CMOS而言,要获得一个像素上的颜色值,必须从邻近的像素中获取信息来进行一种叫做“反马赛克”的运算(Foveon X3可不需要这样),从而得到该位置的颜色值。当然,除此之外,RAW Converter所控制的事情还有下面的这些,而这些也是我们在操作Raw的时候一定得知道的原理。
●白平衡——我们的眼睛能够自动的适应不同的环境光线,把最亮的地方解释成白色,其他的颜色依序地去解释。可是传感器却没有人眼的这种功能,它必须知道到底多亮才是白色,因此我们需要设定白平衡来告诉它。在使用Raw拍摄的时候,传感器纪录的只是每个像素的亮度值,白平衡是作为元数据(metadata)记录的,用以在后期RAW Converter转换的时候用的。也就相当于一个起点,也可以理解成在转换函数中的一个必不可少的参数,少了它,其它的颜色就没办法解释。之前小革命好像有篇文章关于拍摄时白平衡不管设置与否,都可以在后期还原的问题。我的看法是在理论上是绝对肯定的,为什么说是在“理论上”?从上面的论述就可以知道,白平衡的设置只是在后期转换时才参与。所以即使拍摄时没有设置正确的白平衡,只要在后期转换时能够输入当时场景的正确的色温值的话,绝对是可以还原出原来的色彩的。可问题就是,有多少人能够在转换时准确的记起当时的色温值。除非在图片中有一处纯白色的参照物,用白平衡吸管吸取该处的颜色就可以正确设置了。这里其实也告诉了我们一个值得去尝试的技巧:拍摄照片时,在构图里放置一个白色物(如白纸,但注意要在不影响构图的地方,也不能太大面积影响曝光读数,并且要让其充分受到现场光线的照射),把它也拍进去。后期转换时候用白平衡吸管吸取这个白色物就可以了,然后把白色物这部分裁掉。
可是,对于拍JPG的话,可不是这么一回事。因为拍摄后,就由相机在内部处理转换成JPG,也就是说它必须要用到色温值进行运算。如果这之前没有设定好白平衡的话,那肯定是要偏色的。
●色彩演绎——假如你问一千个人哪种颜色是红色,可能你会得到一千种不同的红色。同样的道理,对于CCD/CMOS而言,它不知道究竟什么才算是红色、蓝色、绿色。因此,我们在转换RAW文件时,必须指定红色、蓝色、绿色的定义,也即色彩空间(Color space),不同的数码相机本身就内置了不同的Color space,如sRGB,AdobeRGB等。对于这点,我的理解是,拍摄RAW格式的话,相机里面设置sRGB或者是Adobe RGB都是废的,因为是在转换时才将RGB的定义(即目标Color Space,转换后的文件的Color Space)告诉RAW Converter,因此在转换RAW文件时都会有一个Color space的选项,是你必须指定这个目标Color Space的。所以,如果我们是拍摄RAW格式的话,不要再问到底要设置成sRGB或者是AdobeRGB了,喜欢的话,甚至可以转成ProPhoto RGB也可以!拍JPG的话恐怕对图像质量的追求也不是很高,所以就用sRGB算了。
●Gamma 校正——首先你应该先知道什么是Gamma,相关的资料可以自己上网搜索一下。数码RAW格式的拍摄是采用线性的gamma (即gamma 1.0),可是人的眼睛对光的感应曲线却是一“非线性”的曲线。所以RAW Converter会在转换时都会应用一条Gamma曲线到Raw数据上(简单的理解,就是相当于对原始数据进行一个f(x)的变换,并且注意,f(x)并不是一次的线性函数),来产生更加接近人眼感应的色调。
●降噪、抗锯齿和锐化——当图像细节刚好落在CCD矩阵中的单位像素上,或者假设落在了一个R-感光像素和B-感光像素上时,问题就出现了。该细节处的真正的颜色光靠“反马赛克”运算是很难准确地还原出来,也就是说细节会有所丢失。因此,大部分的RAW Converter都会在转换的时候进行一系列诸如边缘检测、抗锯齿、降噪以及锐化等操作。而由于不同软件所采用的算法未必相同,因此使用不同的RAW Converter出来的片的细节也不一样的原因就在于此。
哎,打了那么多的字,真的好累了。其实关于Raw要说的还有太多太多,我在做笔记的时候是直接把原文(英文,全书254页,关于Raw的内容就100多页)摘录下来的,所以在写这篇文章时一边看着英文一边思考来写的,甚是痛苦。虽然,如果能够明白Raw相机内部的工作原理的话,以前的所有问题可以迎刃而解。但也许对大多数阅读这篇文章的人来说,关键是要知道怎么用好(转换好)Raw,所以原理的东西不再多讲(涉及较多的数学原理)。假如以后有精力的话再写一篇:[老狐教程]之《玩转RAW格式》——软件篇,专门介绍Camera Raw 2.4。最后,把大家必须知道的关键性的东西列出来(以Camera Raw 2.4 for Photoshop CS Plugin 为例):
图4
1、任何的操作,能够用Camera Raw进行的,都不要留到转换后到PS中去操作。这里的原因我只简单地说:转换前和转换后的操作有根本性的区别,转换前的各种操作,实际上是在定义一系列的参数(如色彩空间、锐化值、白平衡、对比度、降噪等),然后交给转换函数(其实就是Dcraw,一个开源软件,Dave Coffin。他有多厉害,看看下面这些RAW Converter软件,都是基于Dcraw:Adobe Photoshop、Bibble、BreezeBrowser、Conceiva Lightbox、 cPicture、dcRAW-X、Directory Opus Plugin、dpMagicGraphicConverter by Thorsten Lemke、IrfanView、IRIS image processor for astronomers、Lightbox、 Photo Companion、Photo Jockey、PhotoReviewer、PolyView、PowerShovel-II、 RawDrop、RawView、SharpRaw by Duane DeSieno、SilverFast DCPro、ViewIt、 Viewer n5、VueScan)进行运算,生成目标像素的颜色信息。相当于一个f(x),f(色彩空间的定义,锐化值,白平衡,对比度降噪)= 目标像素的颜色,只要这个颜色值不超出目标色彩空间的色域,它就是有效的颜色信息。但如果是转换到较小的色域中,是会出现部分颜色被裁掉(即目标像素的颜色超出了色彩空间(如把一副包含颜色信息相当丰富的图像转换到sRGB的Color space时)。可是在图像已经转换(显影)后,再到PS中操作的话,如Level、Curve,Hue/Saturation等,都是基于目前已有的像素颜色值进行操作,而且是非线性的操作,必然会造成不可逆的信息损失。举个例,一个非线性的转换f(x)=x^2(x的平方),x=3或x=-3,得到的结果都是9,必然有颜色信息被压缩。又如,Camera Raw 2.4中所提供的Exposure、Shadows所提供的作用相当于PS中Level里面的White Point和Black Point,那么假设我们把亮度值为245的点设为白点(255),在Level中的结果是从245到255两度的点全部变成白色,这好像问题不大。可是最致命的就是,原来从0到245之间的点都被拉伸成0到255,那中间没有的颜色信息从何而来?那些就是“捏造”出来的颜色,采用插值的算法算出来的。这也就是为什么应用完Level后再看一下直方图会看到中间有很多不连续的断线(这里我不上图说明了,如果对PS的Level相当熟悉的话,应该能理解)。可是,如果在Camera Raw中设定Exposure有什么不一样呢?在Camera Raw中实际上只是给定了一个参数值,让函数去把所有的像素重新计算,因此得到的是有效的像素颜色信息。
2、关于锐化的问题,是用软件(Camera Raw 2.4)自带的锐化功能好还是PS中的Unsharp Mask好?答案绝对是软件(Camera Raw 2.4)自带的锐化功能。……在图像中,边缘是由灰度级和相邻域点不同的像素点构成的。因而,若想强化边缘,就应该突出相邻点间的灰度级的变化……(《Delphi 数字图像处理高级应用》刘骏),也就是说,锐化的算法,一般是通过对灰度值进行运算的。那么,不用解释,你也知道PS中的是对以转换后的像素值(已有的像素基础上)进行操作。软件自带的锐化功能由有何不同呢?
先说锐化过程:像素灰度化-->边缘检测-->灰度强化-->还原出R、G、B分量
而像素灰度化的几种方法:
1)求出每一个像素点的R、G、B的平均值,然后把这个平均值赋给该像素点的R、G、B三个分量
2)求出每一个像素点的R、G、B三个分量的最大值,然后把这个最大值赋给该像素点的R、G、B三个分量
3)根据YUV的颜色空间,Y分量的物理含义就是量度,它包含了灰度图的所有信息。而Y=0.299R+0.578G+0.114B
上面几种方法,不管RAW Converter采用的是哪一种(甚至是其它的),从灰度的raw数据直接进行边缘检测,与现将转换后的像素的R、G、B变成灰度在检测,你认为那种效果好呢?
B R U C E F R A S E R在书中对这一问题的看法是留下余地到PS中Unsharp Mask(认为Camera Raw 2.4的选项少,只有Sharpness一个。而Unsharp Mask有Amount、Radius、Threshold,余地较大)。就这一问题,我做过多次尝试,从一副饱含细节图像,经过Camera Raw 2.4锐化后所看到的细节,用Unsharp Mask不管Amount、Radius、Threshold怎么调都出不来那种效果,要么就锐化过渡(有些细节就是看不到)。
在这里也教一个Photoshop做锐化的Trick:把图像转成Lab模式,在对L通道进行Unsharp Mask,再转回RGB模式,效果比直接对图像进行Unsharp Mask好。
3、如果只要800X600的片上网交流,把2240 X 1680(甚至更大)的图片Resize到800X600,原图是否需要先锐化呢?缩小以后不是什么都一样吗?错!实践证明,先用RAW Converter锐化后再Resize,能看到的细节还是能看到。不做锐化的话是绝对看得出区别的!信不信由你!
4、拿到外面出片的话选Adobe RGB(在RAW Converter里,不是相机里!),上网交流的话选sRGB,不要先选了Adobe RGB进行转换后,去到PS里面再转成sRGB!但如果希望转换后作进一步处理,如加框或加签名等,就先选了Adobe RGB进行转换去到PS里面再转成sRGB。
5、Depth和第4点一样。拿到外面出片的话选16 bits/channel,上网交流的话选8 bits/channel,不要先选了16 bits/channel进行转换后,去到PS里面再转成8 bits/channel!但如果希望转换后作进一步处理,如加框或加签名等,就先选了16 bits/channel进行转换去到PS里面再转成8 bits/channel(但如果你想用一大堆的滤镜对图片进行操作的话,还是直接用8 bits/channel吧,因为PS中很多滤镜在16 bits/channel下不能用)。
6、如果打算出小图上网交流,在Camera Raw 2.4中的Size尽可能选最小的直接出(对于正方形的CCD/CMOS像素),不要出原大在PS中Resize缩小!对于Fuji SuperCCD(六角形的)则相反,尽量出大的在PS中Resize缩小。(B R U C E F R A S E R说的)
7、Camera Raw 2.4中的Exposure宁减勿加,减的话能恢复更多高光区细节,加得太大的话很容易在阴影区产生噪点。
8、Camera Raw 2.4中的Brightness相当于PS Level中的midtone——中灰度;Contrast相当于Curve;Saturation有点类似于Hue/Saturation。其中各项的调整所产生的结果如下图:
图3
9、一定要学会看Raw的直方图,不管哪一项的调整,注意不要有颜色的溢出(被Clip掉)就行了。
10、Camera Raw 2.4中的Luminance Smoothing对去处大片色块中出现的噪点相当有效,如蓝色天空中的噪点。同样的噪点,用PS去处的方法是把图像转成Lab模式,在对L通道进行模糊,再转回RGB模式。但效果不如Luminance Smoothing好。
11、Camera Raw 2.4中的Color Noise Reduction,这个不用说了吧,去处暗部的噪点。
12、Chromatic Abberation R/C、Chromatic Abberation B/Y是用来去处紫边的
13、Vignetting Amount是用来调整暗角的
总结一下
RAW格式的好处
引用:
◆RAW文件几乎是未经过处理而直接从CCD/CMOS上得到的信息,为后期处理提供更大的自由度。
◆RAW文件没有白平衡设置,可以任意的调整色温和白平衡来进行创造性的制作,而不会造成图像质量损失。
◆电脑上的微处理器来处理锐化及其它颜色运算来得更加迅速,也使得更加优化或复杂的运算能够得以实施。
◆可以转化成16位的图像,也就是有65536个灰度层次可以被调整,这对于JPG文件来说是一个很大的优势。当需要对阴影区或高光区进行细致调整的时候,这一点非常重要。
推荐几本书:
加载全部内容