2.3.5 传感器原始图像格式
本节前面的内容介绍了原始图像是什么,以及ISP是如何处理原始图像的。但对于原始图像,读者可能仍抱有这样的疑问:
图2-21 伽马编码前后的显示图像(使用Sony α7 III相机拍摄)
如果已经获取了ISP处理后的图像(如JPEG图像;通常相机输出即为处理后的图像),是否需要再有意去获取原始图像?
换言之,相比于使用处理后的图像,使用原始图像有什么益处?
答案是肯定的,特别是在计算摄像与计算机视觉的专业研究领域。在设计与使用一些基于物理的计算机视觉算法时,如光度立体视觉(photometric stereo)、从明暗恢复形状(shape from shading)、基于图像的重光照(image-based relighting)和光照估计(illumination estimation),由于它们均基于光传播函数为线性函数的性质(即满足可加性与一次齐次性),所以要求像素的强度值与场景光照强度是线性关系。由于ISP处理后的图像为伽马编码后的图像,其强度值与场景光照强度呈非线性关系,所以无法在这些图像上使用这些算法。这些算法在原始图像上(或者说,至少是未伽马编码的图像上)才能够正常运行。所以,在做此类研究时,必须使用原始图像,不能使用JPEG图像等处理后的图像。
即使不使用这些基于物理的算法,原始图像依然具有优势。这是由于相比处理后的图像,原始图像包含更完整的场景信息(例如,原始图像10~16位的色彩深度比一般JPEG图像的8位更大,并且没有因量化、降噪和压缩算法损失细节),用户可以使用专门的工具(如Adobe Photoshop Camera RAW、RawTherapee)更灵活地处理它们,具有调节曝光时需要处理的噪声更少、颜色过渡更平滑等优势。
不过,这些益处并不是无代价的。使用原始图像最显著的缺点是它占用的存储空间相比ISP处理并压缩后的图像要大得多,因此相同空间能够拍摄的照片数量更少,对运行处理图像算法时的计算机的内存的要求也更高。例如,一张一千八百万像素的JPEG图像大约需要几兆的存储空间,而对应同样大小的未压缩的原始图像需要几十兆的存储空间,增大几倍到十几倍不等(具体数字均因图像内容及JPEG的压缩质量而异)。这样大的原始图像也会导致相机在连拍模式时需要更频繁地因为写入而缓冲,降低连拍速度。
那么,如何在拍摄时获取原始图像?
大部分高端相机以及一些手机支持存储并导出原始图像,包含DNG格式、ARW格式等。不过要注意的是,这些“原始图像”可能是经过一些处理的,并不是真正的原始图像。这可能会成为设计算法时的不可控因素。如果需要使用确保没有经过任何处理的原始图像,可以使用工业相机进行拍摄。
啊!我在拍摄时忘记开原始图像模式了,我还能获得JPEG图像对应的原始图像吗?
很遗憾,不能。如果在拍摄时未开启原始图像模式,一般很难从ISP处理后的图像估计出原始图像,因为ISP包含许多不可逆操作,并且通常各相机和手机厂商的ISP都是商业机密。只有完全了解相机ISP,并且在极其有限的情况下,例如有相似的JPEG图像的原始图像,才可能逆转ISP、恢复出原始图像。总之,从处理后的JPEG或PNG图像恢复出原始图像的难度很大,并且如今仍是一个活跃的研究领域。
在了解原始图像以及相机内部ISP之后,作为本节的小结,读者需要记住最重要的一点是:
相机输出的图像和原始图像是完全不同的,其经历了一系列的(包括白平衡、去马赛克等)相机内部图像处理流程。两者的关系非常复杂,并且未知。