[转载] 相机越贵画质越好?聊聊CMOS设计
似乎在很多人心目中,个位数机身就代表了品牌最强成像素质,这或许有“人不识货钱识货”的道理在作祟,但事实上如佳能1DX2或尼康D5,又或是索尼A9这种旗舰机真的就一定能代表本家的画质巅峰么?这一切都得从相机CMOS说起……
首先要做的是溯源,也即当下的CMOS主要都有哪些供应商,全世界的龙头老大是索尼,紧接着是三星,然后还有豪威科技OmniVision(已被中资公司收购)、安森美ON Semi、佳能、东芝(东芝半导体已被索尼收购)、松下、海力士SK Hynix、Aptina、意法半导体,以及国产的格科、思比科、长光辰芯、比亚迪等等,其实大家不难发现这里面正儿八经做相机CMOS的其实没有几家,不少都在专注汽车、医疗、安防、工业以及手机领域,最典型的就是三星了,虽然自己的相机做得没啥动静了,但在手机、汽车等领域还是风生水起。
说到这儿可能你已经察觉到了一丝古怪,这些CMOS巨头里,我们找不到熟悉的尼康,也没有富士、奥林巴斯、适马、甚至宾得、徕卡的大名,原因在于要么它们被归类于“其他”这个市占率不到5%的的门类里,比如适马,要么就是它们压根自己就不制造CMOS,主要靠代工或买成品,其中最知名的可能就是尼康和索尼的PY关系了。
可能在大多数人的印象中,尼康单反所用的就是索尼CMOS,但事实可能会颠覆你的认知——除了索尼之外,东芝、瑞萨也都为尼康提供过传感器成品或代工,佳能也并不是所有相机都用自家CMOS,比如G7X就是用的索尼IMX183CQJ……尼康其实一直也有在做传感器设计,比如2003年的D2H采用的就是尼康自家研发的LBCAST传感器(类似于CMOS,但把金氧半场效晶体管MOSFET换成了综合型电场效果晶体管JFET,在当时可实现高速+低功耗,定位为体育机);D700和D3的CMOS也是尼康自研的NC83138L CMOS、D3s则是NC81361A CMOS……不过研发归研发,制造就不一定是尼康自己做的了,主要还是靠合作代工。
在尼康的代工机型中比较典型的案例的是D4,个位数机身代表的是各家的速度旗舰,这个趋势从D4、1DX时代正式开始,告别了D3s/D3X或1D/1DS一快一高的布局方式。而数码相机速度的本源就是CMOS读取,CMOS作为半导体,刷速度听起来不就是CPU/GPU那套高频+制程一波流的事儿么?有英特尔、苹果、NVIDIA在前面开路还怕啥?但问题在于CMOS是模拟+数字电路的组合体,模拟电路对制程的要求非常低,常年被嘲笑的佳能祖传500nm其实都绰绰有余了,但无奈数字电路却是妥妥的越快越好,而这也是实现高速的最关键前提,这个组合体没有办法直接沿用纯数字电路的制程工艺,所以还真不是直接塞给台积电、三星之类的纯数字电路代工厂就能搞定。
在D4发布那时候,也就是6年多以前的2012年,虽然英特尔都已经冲到了32nm、台积电杀到了28nm,但索尼那时候也不过180nm,佳能自然是停留在500nm,这也就导致作为数字电路之一的模数转换器ADC,佳能只能把它和后端打包单独做在片后,索尼的工艺虽然可以做内置ADC,但性能实在是被制程拖了后腿,连拍速度达不到体育机的标准,因此,尼康D4和后来的D4s为了高速,CMOS就找了瑞萨代工,做片外ADC,甚至索尼自己的视频机A7S都只能做片外ADC来解决速度的问题,进而实现4K内录。
其实这个节点也是颇为有趣的,因为寻找解决速度问题的出路,索尼是各大品牌里最积极的,第一步是背照式,也就是Exmor R,它的基本概念是把数字电路铺到了模拟电路下方,因为数字电路要么靠规模要么靠制程,背照式把它移动到后面就可以放心大胆地堆规模,而不会影响到上方模拟电路——也就是光电二极管效率。下图应该演示得很明显了,灰色的Light Sensitive Diodes就是光电二极管,即模拟电路:
这里同时也能体现出索尼精明的一面,背照式首先出现在了索尼自家的卡片机上,这是因为小画幅良率高、成本低,因此很适合用来做CMOS的新设计实验。2012年还有卡片机这个端口,佳能还算可以跟进,但后来手机吃掉了卡片机市场,索尼小画幅成功转移到手机端,而佳能在这方面就几乎被砍干净了,因此佳能的设计思路一直停留在猛堆高端,然后砍规格做主流做低端,形成了:技术研发成本高;产品定位等级深严的调性,但好处是以下犯上这种事情比起尼康索尼要少非常多。
不过背照式的优势其实也就是速度这一点而已,高开口率的高感等优势,随着无缝微透镜技术的全面普及也不复存在,而且新制程工艺的前照式CMOS也并不会在速度上输给背照式,最好的例子就是A6500,它可以做到6K分辨率2000万像素超采30fps 4K,所以没有用背照式并不能代表CMOS读取性能低,别忘了时代(制程)的差距。
既然制程这么重要,那为什么不猛刷?直接刚上最新工艺啊!前面其实提到了,对于成像CMOS的模拟电路来说,并不需要高制程,提制程对它来说属于“只增成本,不增效益”的事儿。所以聪明的传感器工程师们想出了一个新招:模拟、数字二合一不方便刷制程,那把它们分开不就欧了?没错,这就是堆栈式CMOS设计,在索尼这儿叫Exmor RS。
具体结构设计就不多说了,上面这张图也算是解析得很明白了。堆栈式的好处就是模拟电路(即上图[1])可以继续祖传,数字电路(即上图[2])就交给台积电,直接可以用上与当代NVIDIA GPU相同的工艺制造,速度直接升天,快到机内处理器都来不及处理,只能再堆一块DRAM(即上图[3])来缓存数据。第一代堆栈式CMOS诞生于2014年,使用者苹果iPhone 6,制造者索尼……没错,熟悉的大法,熟悉的小尺寸CMOS起家,让iPhone 6成为第一台有240fps 720P升格慢动作视频功能的手机。
很快在2015年,堆栈式1英寸CMOS就出现在索尼RX100M4身上,然后在2017年,堆栈式CMOS跳过APS-C,直接现身于全画幅速度旗舰索尼A9当中,全电子快门带对焦20fps连拍、每秒60次曝光/对焦检测,静音、快速而且还省电(FZ100电池实际拍摄超1000张续航基本没问题,相对而言,佳能1DX2虽然搞定了片上ADC的问题,但功耗与发热爆表,不仅续航掉得妈都不认识,甚至还用了一根热管辅助散热……)。另一大CMOS巨头三星也在S9系列手机中引入了堆栈式设计,所以才能以960fps拍摄0.2秒,这也足足有192张了!
换句话说,在堆栈式CMOS引入的高速时代,单反机械结构已经成为限制(光是反光镜和机械幕帘设计要精准、稳定、长效达到20fps连拍就已经非常有挑战,复杂程度参考上图),据可靠消息,A9这块CMOS甚至并没有发挥全部速度,只是因为它如果再高就可能影响到高端4K电影机,这也同时为大家提了个醒,电影机的CMOS性能也很快就会起飞……当然,电子快门的同步速度还是不如机械快门精确,A9也只能做到1/160秒,所以才有机械后帘的存在,不过按照当下的发展速度来看,突破甚至普及也只是时间问题,不存在明显的结构限制。
那么我们回到一开始的话题:越是高端高价的机身,画质就一定最好么?其实讲了这么些CMOS设计的概念无非就是在告诉大家,越是先进的CMOS,研究的方向就越没有单纯朝向“画质”,这是因为画质这个东西其实是有上限的,从硬件角度来看,我们已经越来越靠近这个极限,这是因为当下的传感器设计大基础是光子电子转换,有单光子探测器就避不开自然存在的散粒噪声。即便CMOS读取噪声为0,但光电二极管的阱容是有限的,阱容有限意味着进入二极管的光子量有限,以一块最大阱容61000的CMOS为例(佳能35MMFHDXS,全画幅,19um超大画素,总像素220万哟~~),即便它的读取/传输噪声为0,信噪比上限也只有不到48dB,即便把阱容冲到100000,还是假设没有读取/传输等底噪,信噪比也只有50dB,这是老天爷给的限制,不改变最基础的光电结构就绕不开。
所以索尼为什么要刷速度,理由已经很清晰了吧。不过既然前面提到了“从硬件角度看,我们已经越来越靠近极限”,也就是说其实还是可以通过一些拍摄手法,来实现信噪比的继续增益。实现方式的原理很简单,就是PS或LR里的多张均值堆栈合成,拍摄N张堆栈升Log2(N)倍,比如拍1024张,信噪比提升10倍,即+10dB。具体拍摄手法如下:比如光圈F8,1/10秒正常曝光的环境,想出10秒长曝就只能上ND,这时候可以不改变光圈,不用ND,直接以1/1000秒、10fps RAW连拍10秒,获得100张RAW照片,再到PS软件中统一设置白平衡、拉阴影和高光,然后进行均值脚本的堆栈处理,在这种情况下,信噪比相对单张可以直接提升6.6dB,同时不存在ND导致的偏色问题,对灯泡头友好度上升N个档次,除此之外暗部的随机噪声也能得到有效抑制,动态范围自然也能顺带提升。
其实这也反映出:基准信噪比不足导致的先天差距是很难弥补的。比如A款CMOS信噪比比B款先天就低3dB,这意味着B的单张就需要A堆栈16张才能补上来,B拍摄32张A就要拍多达512张才能实现,而且这还是在没有考虑本底噪声色彩偏移的情况下,所以堆栈大法虽然好用,但也建立在本身信噪比就足够出色的前提下。而且这种方法主要是对风光或静态摄影管用,对后期处理的PC主机性能要求也很高,尤其是吃内存,所以局限性不容忽视。
提升画质还有一个重要的方向就是加像素,而且随着前端集成电路性能提升,高速、高像素密度、无损编码的兼容已经不再是问题,典型案例就是索尼A7R3:4200万像素、10fps、连拍也有14bit RAW。之所以只做5K超采4K我认为更多还是产品间定位差的问题,并不是这块CMOS速度不够。
很多人对加像素后的高感表示担忧,但事实上高像素在观看照片时,是可以通过缩小照片尺寸来实现信噪比增益的,比如从4200万缩到2100万来观看,信噪比提升有:
在无间隙微透镜技术加持下,2N像素缩图到N像素时开口率不再是问题,光电转换的量子效率可以保持在统一水准。有很多朋友提到过“单像素信噪比”,但CMOS是整片曝光,只讨论单个像素没有意义,事实上在出图分辨率一致的前提下,理想传感器本身就可以忽略原始像素的概念。这个可以通过数学手段证明,比如相同尺寸的CMOS,A相机有100个像素,而B相机是1000个像素。当输入信号为10000时,总噪声为10000开方=100,A相机的单个像素信噪比为100/10=10,B相机的信噪比为10/3.162=3.162,此时均为100%放大,B的输出分辨率更高(画面更大)。
但此时如果B相机缩图到与A相机的100像素,单个像素的信号从10增加到100,而单个像素的噪声则有以下算式:
10个3.16的平方相加再开方,不难算出这就是100开方=10,单个像素信噪比回到100/10=10,即高像素缩图到低像素后,信噪比可以回到应有水准,同时也证明了一点,在画幅不变的情况下,高分辨率和高信噪比这两个极端只能取其一。以前还会受像素之间的间隔的影响,但现在都是无缝微透镜,这个问题已经得到了很好的解决,而且高像素缩图后还能获取更高的空间频率响应,换句话说就是锐度更出色,大家可以自行下载A7S与A7R的RAW格式照片同等缩放对比,我其实发过好几次了,就不再赘述。
除此之外小胖也不止一次强调过,对噪点的视觉感官受制于照片展示尺寸和观看距离,因为人眼的敏感频率范围有限,而高频部分才是成像缺陷的“重灾区”(因为空间频率越高,成像系统响应率越低),缩图或观看距离增加会使高频区域的频率进一步增高,这时候缺点虽然还在,但频率超过人眼辨识范围,我们的大脑就会直接选择忽略,形成“画质变好”的感觉。
在缩图后具备与低像素相同的信噪比的大前提下,加像素还能提高CMOS奈奎斯特频率的上限,从而减少摩尔纹等混叠现象的发生几率,而且即便是一些分辨率很低的镜头,比如国产的那一堆超大光圈标头(50mm F0.95、35mm F0.95之类的),高像素也依然可以带来高解析力的优势,因为我们拍摄的三维空间里包含了无穷尽的高频信号,CMOS奈奎斯特上限越高,还原得就越多。至于极限衍射光圈的问题,在F22下A7S2的空间频率响应也还是落后于A7R2至少三成,高像素采样频率高的优势在极限小光圈下也并不会抹灭。
更何况当下显示设备也都是往高分辨率发展,相机往高分辨率走也是大势所趋。目前的低分辨率相机几乎都是视频定位,之所以做低分辨率主要想尽量多利用CMOS面积,同时减少采样倍率降低计算量,用以增加视频码率和色深等关键视频规格。但即便如此,当下索尼以6K超采30fps视频已经没有问题,或在今年发布的A7S3突破2000万像素也并不会是一件让人惊讶的事情,毕竟决定速度的技术基础已经打好,更高采样率的高品质视频自然会呼之欲出。
所以,对于当代数码相机传感器而言,其实光谈绝对的画质已经不再实用,更多主要还是“按需定制”。这里可以简单举几个例子,比如尼康D5,它没有使用索尼A9的同底CMOS,一来因为这块CMOS的进发方向是数字化的高速,在单反上受制于机械结构,用武之地不大(总不至于一直抬起反光板来拍吧,那也太尴尬了),花出去的成本换不回已在无反得到印证的性能,还容易被diss,再加上索尼也不一定愿意把这种高端货卖给尼康。所以D5用其实是东芝的CMOS(索尼:嘿嘿,其实这也是我的!),而且为求高速,ADC依然是外置,除此之外传言它的阱容调整偏低,方便做高倍程控电压增益,原生ISO达到800的水准(事实上原生ISO都是由阱容以及增益倍率来决定的,增益可以有1x、4x、16x,也可以有0.5x等,但低倍率的问题是电荷转移时的传输噪声偏大)。
D5的高倍电压增益使得一级模拟放大之前的前端传输噪声相应降低,而前端噪声会随着ISO增益倍率的增大而增大——输出信号=(输入信号+前端噪声)X放大器增益倍率+后端噪声。不难看出括号中的数值越小,高ISO时总体噪声会降低,从而提升高感性能。但问题也很明显,在低放大器增益倍率,也就是低感光度时,ADC外置引入的大量后端本底噪声,让动态范围这个尼康长期引以为傲的规格在D5身上被佳能1DX2和索尼A9揍到怀疑人生。但这也正好体现了我们的主题:专机专用,定制设计。
与之类似的设计还有尼康天文专用机D810A,砍掉阱容以实现高感成像素质,毕竟星空甚至深空类摄影上万的ISO也并不算少见,在这种感光度下的控噪和动态范围才是它的重点。D5作为专为奥运会等大型活动而生的速度机,高灵敏度下的成像素质自然也是它的核心,所以它们的CMOS都是专机专用,特应强化的类型。
既然有砍阱容求高感画质的,自然也会有加阱容增强低感动态范围的,因为满阱容量/本底噪声也是动态范围的定义方式之一,在本地噪声不变的情况下,增一档阱容就意味着增一档动态范围。而采用这种设计的是尼康D810——加大阱容实现原生ISO 64,所以它的动态范围达到可与的44X33中画幅(原生ISO 100)一战的水平。但代价就是高感动态范围骤降,相同缩放尺寸,ISO 1600以后甚至被祖传5D3追上甚至反超:
不过既然是不同阱容导致了两种取向,想要一把抓,当代传感器设计就又引入了双增益的设计,你猜是谁先做出来?没错还是索尼……基本思路就是设计一个开关,在一定ISO之前使用高阱容模式以实现高低感光度的高动态范围,而当ISO设置到一定数值之后,降低阱容,降低前端噪声,实现高感素质提升。现在使用这项技术的机身有不少,比如索尼A7R3(可参考下图黄颜色线,在ISO 800时有一个明显的反折)、尼康D850、松下GH5S……虽然D850没有说是谁做的,但又是背照又是双增益,其实已经提示得足够明显了……
所以,不同定位的CMOS,就有不同的擅长领域,这世上不存在信噪比极高同时出图分辨率极高的CMOS,想要实现这个目的只能靠拍摄手法,比如有手有脚靠自己的堆栈,比如抖像素……当下求极限高速的CMOS设计已经迈入数字电路时代,单反结构成为限制,无反正在往高速/低功耗这个传统半导体大方向搭着顺风车高速迈进,具体会有多少惊喜,就看今年佳能尼康全画幅无反的表现了。
[转载] 相机越贵画质越好?聊聊CMOS设计的更多相关文章
- android:layout_weight越大所占比例越大和越大所占比例越小的两个例子
摘要: 我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3907146.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的 ...
- JVM内存越多,能创建的线程越少,越容易发生java.lang.OutOfMemoryError: unable to create new native thread。
一.认识问题: 首先我们通过下面这个 测试程序 来认识这个问题:运行的环境 (有必要说明一下,不同环境会有不同的结果):32位 Windows XP,Sun JDK 1.6.0_18, eclipse ...
- 越大优先级越高,优先级越高被OS选中的可能性就越大
进程的休眠:Thread sleep(1000);//括号中以毫秒为单位 当main()运行完毕,即使在结束时时间片还没有用完,CPU也放弃此时间片,继续运行其他程序. Try{Thread.slee ...
- 将Form的AlphaBlend属性设置为True,之后调整Form的AlphaBlendValue属性,255为不透明,数字越小透明度越大~~~想显示文字用l
将Form的AlphaBlend属性设置为True,之后调整Form的AlphaBlendValue属性,255为不透明,数字越小透明度越大~~~想显示文字用lable就行哈~~~直接在窗体上写字就行 ...
- Scrapy下载中间件的优先级(神踏马值越小优先级越高)
自从之前看的一篇讲Scrapy下载中间件的文章后,一直认为设置里下载中间件的优先级数值越小,越优先,最近要抓的网站反爬增强了,所以需要使用代理ip,但是由于使用的是免费代理以至于经常失效,需要对失效的 ...
- 权力越大职责越大——C#中的职责链模式
大家好,欢迎来到老胡的博客,今天我们继续了解设计模式中的职责链模式,这是一个比较简单的模式.跟往常一样,我们还是从一个真实世界的例子入手,这样大家也对这个模式的应用场景有更深刻的理解. 一个真实的 ...
- 聊聊如何设计千万级吞吐量的.Net Core网络通信!
聊聊如何设计千万级吞吐量的.Net Core网络通信! 作者:大石头 时间:2018-10-26 晚上 20:00 地点:QQ群-1600800 内容:网络通信, 网络库使用方式 网络库设计理念,高性 ...
- [转载]MySQL之char、varchar和text的设计
[转载]MySQL之char.varchar和text的设计 来源:https://www.cnblogs.com/billyxp/p/3548540.html 首先我们先普及一下常识: 1.char ...
- TF卡速度测试对比 Class数越高速度越快
存储卡(TF卡)是手机扩展存储的大杀器,让你多装n部学习资料,多装n个外语听力练习.除了装东西外,存储卡性能不佳也会影响手机的整体性能以及体验的.本文主要针对Android手机,我是懒人,但我讨厌懒人 ...
随机推荐
- Java高并发编程(四)
一.Executor执行器 1.Executor接口,java线程池框架中的顶层接口,提供一个execute方法来执行任务 import java.util.concurrent.Executor; ...
- JBoss 7 更改response header中的Server参数
jboss服务器缺省情况下会在HTTP response header中显示自身的标识,如下 Server: Apache-Coyote/1.1 出于安全考虑,如果不想让人知道服务器类型,可以用以下方 ...
- Java入门系列:实例讲解ArrayList用法
本文通过实例讲解Java中如何使用ArrayList类. Java.util.ArrayList类是一个动态数组类型,也就是说,ArrayList对象既有数组的特征,也有链表的特征.可以随时从链表中添 ...
- jQuery 效果函数,jquery文档操作,jQuery属性操作方法,jQuerycss操作函数,jQuery参考手册-事件,jQuery选择器
jQuery 效果函数 方法 描述 animate() 对被选元素应用“自定义”的动画 clearQueue() 对被选元素移除所有排队的函数(仍未运行的) delay() 对被选元素的所有排队函数( ...
- [luogu T71973]卡常者π酱
[luogu T71973]卡常者π酱 题意 给定一个长度为 \(n\) 的字符串, 要求将字符串分割为若干段, 每一段要么是一个字符要么是前面几段的并的子串. 如果某一段是一个单独字符, 则产生 \ ...
- Alpha冲刺报告(11/12)(麻瓜制造者)
今日已完成 邓弘立: 整合了主页的功能 符天愉: 大致上完成了留言部分的添加,删除,查询功能 江郑: 测试了剩余四个查询,一个添加接口,也搞定了接口说明. 刘双玉: 测试了剩余四个查询,一个添加接口, ...
- html简单介绍(二)
表格 table标签:border:表示边框的大小 <table border="1"> <tr> <td>row(行1), cell(列1)& ...
- 远程登录Linux(window下操作Linux)
参考文章:http://www.runoob.com/linux/linux-remote-login.html 1.Window系统上 Linux 远程登录客户端有SecureCRT, Putty, ...
- express+mysql+vue开发环境搭建
最近开始做一个实验室资产管理系统,后台使用node.js的Express框架,前端使用vue,数据库使用mysql.在这里开始简单记录一下开发过程和遇到的问题. 今天要说的是express+mysql ...
- Netty入门(六)Decoder(解码器)
Netty 提供了丰富的解码器抽象基类,主要分为两类: 解码字节到消息(ByteToMessageDecoder 和 ReplayingDecoder) 解码消息到消息(MessageToMessag ...