搜索
 找回密码
 立即注册

简单一步 , 微信登陆

图像调试ISP 值细节Interpolation

作者:laowai_love | 时间:2017-4-6 12:17:07 | 阅读:9307| 只看该作者
这里说的interpolation是指把Bayer pattern data 转化为RGB data的过程,每个像素都要有完整的[R G B]三个分量。先看一下最简单的双线性插值算法。
                                                               
                                                                                       双线性插值
这是最简单原始的方法,确实可以得到一幅RGB图像,不过存在一些问题,例如拉链现象,有些模糊,分辨率不高,边缘有些彩色(false color)等。评价插值算法的好坏,通常用ISO12233测试纸,如下图。
                                                      
观察细节算法的好坏,必须把图像放大到像素级别,直接研究数值大小,下面以拉链现象为例。拉链现象出现在水平或者垂直的边缘上,是由于G分量计算不当所致。以一条水平边为例,如下图,用双线性插值的话,在水平边缘上就会出现[90, 82.5, 90, 82.5…]这样的循环重复规律。
                                                                    
从图像效果来看就是类似拉链状。
                                                            
                                                                       拉链现象(双线性插值和沿着edge方向插值)
要解决拉链现象,保持边缘的光滑,很直观的想法就是对G分量采取沿着边缘方向去插值,在上图中,就让G5 =(G4 + G6)/2。这样就意味着要做边缘方向性的判断,如果是垂直边,那么就会是G=(G2+G8)/2,还有各种其他方向,则可以对周边四个G分量采用不同的加权平均算法得到中心点G分量数值。边缘方向判断是interpolation算法中最重要的一个环节,是各家ISP算法的核心之一,有兴趣的同学可以查看这个方面的论文。评价图像分辨率(清晰度)的一个指标,是看ISO12233中对细密纹理的识别程度。一个好的算法可以判断出只有一个像素宽度的细条纹。
                                                                 
                                                                                     interpolation识别细密纹理
在Bayer pattern中,一半像素是G,R和B都只占1/4,R和B信息缺失比较严重。在双线性插值算法中,R分量的计算只和周围的R相关,如果用G分量的信息去修正缺失的R分量,那么清晰度会有不小的提升。以水平方向的边缘为例:
                                                                 
                                                                                   水平edge上利用G分量修正R或B


上图中a1和a2是修正系数,范围在0~1之间。这种常用的计算方法不仅提高了清晰度,也可以缓解false color现象。不过从另一方面来看,这种修正会增加Noise幅度,原本R分量自身有一定的Noise分布概率,现在叠加了G分量的Noise,那么最大Noise幅度会提高。因此系数a1和a2需要根据场景,Noise幅度等因素权衡选择。


整体来说,Interpolation算法大致过程就是先边缘方向检测,然后沿着方向去做插值,兼顾Noise和清晰度的平衡,顺便还可以做一些false color的处理。


收藏
收藏0
分享
分享
点赞
点赞3
反对
反对0
该会员没有填写今日想说内容.
回复

使用道具 举报

大神点评1

沙发#
高天凡1993 发表于:2017-4-8 11:27:31
上海衡海投资管理有限公司。好东东,谢谢楼主
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
手机版