今年的苹果开发者大会(WWDC 2016)上,苹果向开发者和用户介绍了新一代iOS系统的诸多新功能。在众多改进中有一个项目并未得到足够重视:iOS 10首次开始支持系统级的RAW格式照片拍摄、图像处理功能。几天的WWDC日程中,苹果安排了多场讲座介绍与RAW相关的内容,向开发者详细讲述了iOS 10实现RAW格式支持的具体方式,因此本文将重点关注这项更新。
在了解iOS 10对RAW格式支持的相关内容前,我们自然要先来了解一下这种格式的来龙去脉。
我们知道,数字成像设备使用传感器来拍摄图像。光线通过镜头组件照射到传感器上被转化为电流信号,信号传送到图像处理芯片(ISP)中进行必要的运算,得到的数据则被存储在设备的存储器中。这就是各种拍照设备(手机、相机、摄影机等)拍摄图像的典型处理流程。
在这一流程中,传感器向ISP输送的信号就是RAW数据,也就是"原始"数据。RAW数据是传感器每个像素受到光照后的反馈信号集合,一般还包括拍摄者按下快门时设定的拍摄参数(如ISO、白平衡等)。由于传感器的每个像素一般是单色的,所以RAW数据记录下的也都是单色信息集合。
ISP接收到RAW数据后,经过反拜耳运算(将单色像素插值为彩色像素)、镜头参数纠偏、色彩空间应用、曝光和色温调整、对比度和色调调节、减噪等一系列操作后输出常用的JPG、TIFF等图像格式。简单来说,ISP就是对传感器的RAW格式数据进行了一次图像后期处理,而处理过的图像是无法还原出原始的RAW数据的。
既然ISP的工作实质上相当于我们常说的"PS",一个显而易见的事实就是并不是每一次的"PS"都会足够完美。受限于算法、芯片性能、处理时间限制等约束,ISP的图像处理结果经常会有种种缺陷。此外,拍摄者也往往希望在拍摄后重新调整诸如白平衡、ISO等照片参数,同时不影响图像的质量。要解决这些问题,简单的做法就是直接保存传感器输出的RAW格式图像,在后期使用图像处理程序慢慢手工调整以实现最佳效果。因此,专业相机大都支持RAW格式图像记录,以满足摄影师的挑剔需求。
随着智能手机取代普通数码相机成为大众主要的图像拍摄设备,越来越多的用户开始希望在手机上实现RAW格式图像的拍照和处理。在用户的呼声中,Android平台首先提供了通用的RAW格式拍照功能,如今新一代Android智能手机大都可以在拍照时选择以RAW输出并保存。
iOS 10对RAW格式的支持则分为拍照和处理两大部分。其中,部分iOS设备可以在拍照时输出RAW格式照片;更多的一些设备则可以对RAW格式照片进行后期处理。接下来我们对这两大部分的内容进行分别探讨。
iOS 10系统负责拍照的应用程序控件名为"AVCapturePhotoOutput"。任何应用使用拍照功能时均需调用该控件。在使用新一代1200万像素摄像头的设备上(包括iPhone 6s/6s Plus、iPhone SE、iPad Pro 9.7),AVCapturePhotoOutput控件可以选择RAW格式输出,具体方式为在该控件的辅助控件AVCapturePhotoSettings中设定rawPixelFormatType一项。
启用RAW格式输出功能后,应用从AVCapturePhotoOutput接口中就可以获取以Adobe DNG(业界通用的RAW数据格式)编码的RAW图像了。按下快门后,RAW图像会先保存在设备内存中,根据应用的需要选择进行下一步处理或者直接将DNG文件保存在闪存中。
除了单独输出RAW格式图像外,应用也可以选择让设备同时输出RAW格式和经过ISP处理过的图像格式(如JPG、TIFF)。这一功能在专业相机上很常见,意义在于既能让拍摄者快速预览照片效果,又可以存储未经修改的原始传感器数据。此外,使用包围曝光(用不同曝光参数连续拍摄多张照片)功能时也可以输出RAW格式图像。
RAW格式的文件体积要比常见的JPG格式大得多,一张1200万像素照片占用的空间可以达到20M字节以上。但值得注意的是,RAW格式图像记录的信息要比JPG格式丰富许多:JPG格式图像的动态范围被限制到了7档左右,而iPhone 6s使用的1200万像素摄像头输出的RAW数据实际可以达到9档;JPG图像通常使用sRGB标准色域,但RAW格式记录的色域范围甚至超过了Adobe RGB广色域标准。通过对RAW图像的适当后期处理,用户事实上可以获得比JPG拍摄流程更好的图像画质,这也是iOS 10支持RAW拍摄最显而易见的好处。
保存RAW格式照片后,接下来的工作自然是对这一格式进行后期处理。原始的RAW数据不经处理是无法正确形成图像的,只有经过合适的后期流程,RAW格式的优势才能真正体现出来。
在过去,摄影师用相机拍摄RAW格式照片后都会传输到PC上使用专业应用(如Adobe Photoshop Lightroom)来做后期工作,这一流程对摄影师的专业技能要求很高。iOS 10为了让更多普通用户能方便地利用RAW格式,特别提供了一套系统级的RAW后期处理应用程序接口。
在iOS 10中,应用可以调用CoreImage框架来处理各种图像格式。在使用A8、A9芯片的iOS设备上(iPhone 5/5s/5c、iPad mini 2/3、iPad 4不在支持之列),CoreImage框架支持Adobe DNG格式的处理流程。
应用可以通过filterWithImageData或filterWithImageURL控件来创建RAW格式图像的处理对象,并使用CoreImage内建的参数来调整图像。CoreImage框架集成了常用的图像处理算法和参数调整功能,所以开发者不需要自行开发算法就可以在应用中实现对RAW的处理。苹果在图像后期处理算法领域享誉业界,因此CoreImage的图像处理效果也是值得信赖的。
如果开发者自己有更优秀的算法,还可以通过imageWithExtent:inputFormat:outputFormat:options:roiCallback:processor:控件来插入自己的后期算法和滤镜,取代CoreImage内建的流程。CoreImage内建算法在处理图像时只能使用sRGB或Display P3色彩空间,但使用第三方算法时,开发者可以通过imageByColorMatchingWorkingSpaceToColorSpace和imageByColorMatchingColorSpaceToWorkingSpace控件应用更多的色彩空间选项,如Adobe RGB、NTSC甚至ACES、Rec.2020等。此外,开发者还可以应用优秀的噪点控制滤镜、反拜耳算法、白平衡调整算法等来提升图像处理效果。支持第三方算法大大增强了iOS 10处理RAW格式图像的灵活性和专业性,使其拥有了不输于PC的RAW格式处理潜力。
CoreImage支持标准的Adobe DNG格式,也就意味着数百款使用这一格式保存RAW图像的专业相机都可以在新一代iOS 10设备中实现后期流程。由于支持RAW拍照的Android手机也都使用该格式记录图像,所以这些手机拍摄的照片也可以在iOS 10设备上进行处理。苹果还特别增强了CoreImage框架的性能,通过Metal语言使用GPU来加快运算速度,以提升RAW后期流程的使用体验。在苹果的努力下,开发者可以轻易制作出功能强大、效果出色的RAW格式后期处理应用,使iOS设备成为专业级的RAW图像处理平台。
需要注意的是,iOS 10对RAW格式的大小支持有一定限制:2GB内存及以上的设备支持1.2亿像素的图像,而1GB内存的设备最多支持6千万像素;此外,使用第三方算法和滤镜时应用支持的最大图像也是6千万像素。
通过对RAW格式拍照功能的支持,苹果事实上进一步增强了新一代iOS设备在拍照方面的优势。使用RAW格式记录照片可以保留更多细节,用户无需更新手机就能拍到画质更出色的照片。
而iOS 10为RAW格式后期处理提供的完整支持框架则是一项杀手锏级别的功能。在这套框架支持下,iOS中流行的图像处理应用只需简单升级就可以变身为专业级别的RAW后期处理平台,为用户带来效果出色、使用方便的后期流程。
非专业用户对照片的后期处理需求不高,如果只是拍照分享在社交网络,没有长期保存的需要,那么流行的JPG格式已经绰绰有余。相比之下,RAW格式更适合记录有纪念意义、艺术价值的照片。iPhone用户可以根据自己的需求在拍照时开关RAW记录模式,在节省存储空间和提升画质之间找到平衡。
而对于专业用户来说,iOS 10可以让他们手中的iPhone、iPad成为外出拍摄时不错的单反相机伴侣设备。单反拍摄的RAW图像可以通过相机连接套件直接导入iOS 10设备进行预览编辑,需要时甚至可以现场出图。通过iOS 10的RAW流程支持,苹果会进一步增强自己在专业图像领域的影响力。
希望iOS 10发布后,第三方应用能尽快跟进升级,加入对RAW格式和处理流程的支持。在苹果和开发者的推动下,未来RAW格式或许不再是专业用户的专属,而会惠及更多的普通用户,帮助他们更好地记录生活中的精彩瞬间。