解析SRAW的秘密
文并摄影/兰拓科技
【摘 要】随着数码相机传感器的有效像素越来越高,高像素所带来的一些"负面效应"也越来越被人们所关注,尤其是后期缩图的工作量以及电脑处理压力。于是对于不太重要的图片,使用小尺寸的JPEG格式拍摄便成为一种不得已的选择。 【期刊名称】中国摄影家 【年(卷),期】2016(000)005 【总页数】4
【关键词】秘密 解析 数码相机 负面效应 JPEG 传感器 工作量 像素
随着数码相机传感器的有效像素越来越高,高像素所带来的一些“负面效应”也越来越被人们所关注,尤其是后期缩图的工作量以及电脑处理压力。于是对于不太重要的图片,使用小尺寸的JPEG格式拍摄便成为一种不得已的选择。 然而对于某些品牌的相机用户来说,我们还有另一个选择,就是小格式的RAW文件。从目前还在产的产品来看,佳能70D以上定位的产品均提供了MRAW(2﹕1压缩)和SRAW(4﹕1压缩)格式,尼康D4s/D5/D810提供了SRAW(4﹕1压缩)格式,索尼方面暂时未提供此功能(这一点甚至成了大家对于索尼不满意的一个点,很多人在当初A7R2的留言中表示希望索尼提供小尺寸RAW的输出功能)。
大家对这个功能呼声很高,其实主要原因不外乎以下几点:很多需求当中不需要高像素输出;M/SRAW格式可以缩小文件体积和减小后期的负载压力;依然保留了RAW文件的调整空间和后期特性……这一切看起来都很美,但实际情况是残酷的:SRAW并不能提高持续连拍的张数和速度,也节省不了多少空间,
甚至是连调整的空间都没有想象中那么理想。为什么会这样?
什么是RAW?
虽然我们天天都在用RAW,大家对RAW文件有一定的了解,但是为了整篇文章的体系严谨,还是把基础知识放在前面,也方便不懂的人来查阅(注:本文讨论均针对Bayer-Pattern的传统图像传感器,至于RGBW、X3、Q67之类的,不在本篇的讨论范围之内)。
对于传感器上的单一像素来说,只能接收到单一色彩的信息(实际上不会是纯的RGB,各个厂商都会对自己的CFA做一些调整,选出最优化的透射波长区间)。如果把图像传感器接收到的信息红色像素标成红色,绿色像素标成绿色,蓝色像素标成蓝色,那么一张照片的“原始信息”应该是这样: 小贴士
MATLAB是美国MathWorks公司出品的商业数学软件,在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
实际上的RAW图像,我们直接用Matlab软件,抽出来存成Tiff,局部截取是这样的:
真正的RAW图像是黑白的,每个像素实际上代表什么色彩需要手动指定。 既然RAW原始文件是黑白图像,而我们看到的照片又是色彩斑斓,这其中一定经过了某种操作,这种操作就叫做解RAW,或者Demosaicing(反马赛克)。比如像素P是红色像素,需要知道它的绿色像素成分,我们需要用斜向四个方
向的四个绿色像素来取均值得到,蓝色亦然,这样就得到了某个像素的RGB信息。当然这是最简单、纯时域,且针对理想拜耳阵列的算法,现在主流的反马赛克算法都已经利用了频域分布信息,解出来的图像锐度也是越来越高,符合现在图像传感器像素的发展趋势。
但是无论反马赛克算法如何进步,有一点结论是永远不变的:Bayer-Pattern当中每一个像素都没有完整的颜色信息,都需要结合周围的像素才能得到准确的色彩值!所以谈论“RAW文件的色彩”是没有意义的!
对于Bayer-Pattern的原始图像进行缩图,同时保留RAW文件的特性,没有我们想的那么简单。因为每个像素的位置信息其实都是有意义的,而且缩图本身也需要引入额外的混叠(需要由几个像素的信息来计算出一个新像素),想利用之前的像素间关系计算出正确的色彩,几乎可以说是难于登天。 小贴士
时域分析与频域分析是对模拟信号的两个观察面。时域分析是以时间轴为坐标表示动态信号的关系;频域分析是把信号变为以频率轴为坐标表示出来。一般来说,时域的表示较为形象与直观,频域分析则更为简练,剖析问题更为深刻和方便。
所以对于SRAW,具体的实现方式,只剩下下面两种可能:
1、Binning(抽行):对于2合1或者4合1来说,这是最简单的方法。以4合1为例,从4×4的RGGB阵列当中,第一个2×2单元保留R像素,第二个2×2单元保留G1像素……以此类推,空间关系并没有被破坏。但可想而知,这种方式对于画质的影响几乎是毁灭性的,高大上的5000万像素5DsR,瞬间就变成了一台1200万像素的M4/3无反相机。
2、用更高的位深存储RGB:不再保留原始的空间位置信息,而是存储由机内解码之后的数据,本质上还是RGB的图像。但是相对于JPG来说具有更大的后期空间,同时可以实现超采样输出。对于4﹕1缩图而言,还可以直接用2×2单元加权平均计算RGB的方法来实现类Foveon X3效果。 那么实际操作当中,厂商们究竟采用的又是哪种方式呢?
SRAW的秘密:佳能篇
进行分析的机器是佳能EOS 5D Mark III,其RAW文件存储有20.2MP、10MP和5MP三个选项。 判断一:是不是抽行?
这个做一下分辨率和边缘锯齿测试即可明确。采用原始RAW文件解码后4﹕1缩图与相机直出的SRAW解码后来进行对比测试:
从这两点可以基本排除SRAW采用了抽行存储的可能性,因为解析力和边缘锯齿没有本质的差别。结合一般用户的使用体验(SRAW可以提升100%看图时的高感画质,而不是反之),我们可以得到结论一:佳能5D Mark III 的SRAW是超采样保存的。
那么具体的存储格式到底是什么呢?我们继续探索,用RAWDigger打开5D Mark III拍摄的RAW和SRAW,对比其基本数据: 小贴士
RawDigger可以查看和分析RAW图像文件,支持多种文件格式和相机类型,可以使用它查看原始像素值、生成并导出数据直方图或计算每个通道的统计数据。
从中可以看到两个明显的不同:
1、RAW文件是R/G1/B/G2四通道,SRAW是R/G/B三通道。从这一点上基本可以判定SRAW丢弃了原本的空间阵列信息,代之以直接用RGB来保存。 2、RAW是14bit位深,SRAW反而采用了更高的16bit。但只是套了个16bit的壳,其中的数据量(Different Values)依然是14bit。
看完了基本信息,我们再来进一步剖析。最简单的方法就是查看它没经过任何解码算法的100%图像,到底是什么组织形式。采用前面的伪彩色图像生成法,我们可以得到如下的图片:
这种对比佐证了之前的结论,其实SRAW严格来说并不是Bayer-Pattern的那种RAW,而是一张每个像素都有着完整信息的RGB图片。得到这个结论之后我又用Matlab的dcraw插件读了一下SRAW文件,得到的是这么一个提示: 大概意思是这个文件“Must be monochrome”—所谓monochrome就是单色文件的意思,但是这里的意思指的不是单色,是单值,也就是每个像素的色彩信息都是确定的—这也为我最后给佳能的SRAW盖棺定论,提供了最后的信息:佳能的SRAW里面保存的其实是一个16bit的RGB图像文件,反马赛克运算这一步是在相机内完成的。
那么就我们关心的画质表现来说,SRAW的这种存储方式究竟影响多大呢?经过对佳能SRAW和RAW文件后期缩图之间的比较发现:二者分辨率方面相当,边缘锯齿方面没有差距;高感信噪比和动态范围方面RAW后期缩图略强,但没有本质差异,可能跟图像算法有关。
那么是不是就意味着二者画质没有区别呢?其实不是的,毕竟原始的RAW图像和RGB文件有个最大的区别—白平衡调整容限。
反马赛克阶段指定白平衡的时候可以任意指定,反正图像的色彩都是计算出来
解析SRAW的秘密



