(一)主观清晰度不够的原因

  1. 从场景方面考虑:
    1. 物体本身由于反光等原因不清晰
    2. 场景亮度过低,导致噪声大,画面模糊
  2. 从镜头方面考虑:
    1. 景深问题
    2. 虚焦问题
    3. 镜头上有脏东西
  3. 从ISP的方面考虑:
    1. 降噪开的太强
    2. 锐化开的太低
    3. 对比度太低
  4. 从编码方面考虑:
    1. 分辨率不够
    2. 码率太低
  5. 从显示方面考虑:
    1. 电视机对比度太低,显得清晰度低
    2. 不同电视机自带的锐化强度不同

(二)客观清晰度不够的原因(清晰度线不达标)

  1. 没有手动聚焦:自动聚焦往往不能聚焦到最清晰的地方,需要手动调焦。这样也有利于对比修改参数前后,清晰度是否有改善。因为每次修改参数后,AF可能会重新聚焦,如果每次聚焦位置不一致,就会清晰度不一致,从而导致误判。
  2. crosstalk开启:crosstalk开启会对清晰度有一些影响,一般sensor较好的不需要对绿平衡进行矫正
  3. 锐化强度不够:尤其是纹理层的锐化太弱
  4. 2D降噪太强:尤其是随机噪声去除的强度太大
  5. 3DNR的调试不够精细:时域降噪太弱
  6. 开启了LDCI(局部对比度增强):导致画面较暗区域的噪声较大,需要加强降噪,反过来就导致清晰度降低
  7. 坏点矫正也会增加噪声:融合比率blendratio 值偏大会偏绿,同时增加跳动的噪声,导致需要加大降噪,造成清晰度下降
  8. 没有对不同环境亮度下的降噪和锐化参数进行调节:如果亮环境和暗环境都用同一套降噪锐化参数,由于需要照顾到中低照度下的效果,必然要加大降噪,会导致比较亮的环境下,清晰度下降

(三)海思锐化调试总结

调试锐化之前需要先理解锐化的系统原理图。

  1. 首先输入的图像经过了滤波分解成了三个图像,基础层、边缘层、细节层。基础层不进行变换;边缘层是有方向边缘,存在于物体的边缘;细节层是无方向纹理,存在于平坦区域的纹理或者是清晰度线极高的部分。
  2. 边缘层和细节层分别通过edgestr和texturestr调节强度,通过edgefreq和texture调节增强的频率。
  3. 将变换后的三张图像融合,融合参数两个,lumawgt调节画面中不同亮度区域的锐化权重,抑制部分颜色区域的最大锐化强度:Rgain(深红),Ggain(绿色),Bgain(深蓝),Skingain(肤色)
  4. 最后对白边(overshoot)和黑边(undershoot)进行抑制,分为全局和局部的方法。

懂了原理之后,我们就知道了如何调试锐化参数。

  1. 首先我们要知道细节层和边缘层大概分布在图像的哪些位置,把边缘层强度开到最大,细节层强度开到0,从而确定边缘层的范围,反之可以确定细节层的范围。边缘层锐化出来的噪声比较小,调节edgefiltstr和DetailCtrlThr,可以调节边缘层和细节层的范围。还有一点需要注意,锐化原理图中没有DetailCtrl这个参数,这个参数是纹理区的shoot强度的控制,需要调大些,否则怎么调节纹理区的锐化强度都不明显。
  2. 确定锐化的频率。先把边缘层和细节层的强度开到最大,调节EdgeFreq和TextureFreq,频率越大,边缘就纤薄细碎,反之就越粗越圆润。
  3. 调试不同频率下的锐化强度。横坐标左边是高频纹理区域,右边是强边缘,如果对清晰度要求比较高,会需要把左侧抬高,否则清晰度很难达到指标。PS:经过实测,人脸皮肤的细节也在靠左的区域,如果像默认值那样调,皮肤区域的锐化太弱,会造成磨皮感太强的感觉。
  1. 调节画面中不同亮度区域的锐化强度。lumawgt的横坐标从左到右的意义是亮度逐渐增加。根据我的调试经验来说,经过gamma之后,暗区有所提亮,造成噪声较多,不适合过多的锐化,调低一些。而亮区经过gamma之后,有所压缩,需要提升一些锐化强度。
  2. 调试完降噪后,测试特殊颜色区域的噪声情况,注意深红色,绿色,蓝色和肤色区域的噪声,如果画面整体噪声控制的比较好,但是就这些区域的噪声比较大,就需要调整Rgain,Ggain,Bgain,Skingain这四个参数。
  3. 最后是调整白边和黑边的强度,建议使用ShootSupStr和ShootSupAdj局部抑制白边和黑边。可以保证清晰度不明显下降。但是播放的视频,往往需要一些白边黑边,人眼才觉得清晰高,这部分不应过多的抑制。

(四)海思2D降噪调试总结

2D降噪在锐化之前,可以减少锐化出来的噪声,减轻3DNR的压力。同时2D降噪在RAW域降噪,可以通过标定得到比较准确的噪声模型,对降噪提供参考。

标定

  1. 拍摄24色卡,设置成目标增益,然后调整曝光时间,让24色卡左下角的白块,G分量亮度在饱和亮度的80%左右(RAW图),采集30帧raw数据。

  2. 然后曝光时间减少为原来的1/16,然后再抓取30帧raw数据。

  3. 重复前面两个步骤,把目标增益覆盖所需要的增益范围。

  4. 把数据导入到pqtools工具里面的ISP calibrate tool,可以标定出增益-噪声曲线

  5. 最后把标定结果导出为头文件,替换cmos_ex.h里的g_stIspNoiseCalibration。

参数组成

主要的参数就是CoringRatio(噪声保留强度,值越大,保留的噪声越多),CoringWgt(随机噪声保留强度),CoarseStr(整体降噪强度),注意随机噪声保留强度过小,会损失清晰度!建议随着照度增加,随机噪 声保留强度适当增大,改善冲击噪声及 pattern 噪声,使全图噪声均匀分布。

(五)海思3DNR调试总结

3DNR的参数特别多,如果每个参数都要去调教,花的时间太多了,这里教大家如何快速调试。如果还有更进一步的要求,需要仔细研究文档《Hi3559A╱C V100 3DNR参数配置说明》。

参数组成

3DNR是可以添加多组降噪参数的,对不同增益下的画面设置不同的降噪参数,ISO100代表的是1倍增益,依次类推。一般低ISO的画面质量都比较好,降噪可以弱一点;中等ISO的噪声变大了,降噪要强一点;到了低照度下,过强的降噪会损失图像清晰度,需要减弱空域降噪,增加时域降噪,牺牲一些画面拖影的问题。

然后需要了解3DNR的参数构成,如下图所示,可以划分为4个滤波器,第0级滤波器是带有时域参考的空域滤波器,中间两个第1、2级是带有动静判决的时域+空域滤波,最后一个第3级滤波器是纯粹的空域滤波。

而每个滤波器的上方绿色的那排参数是空滤滤波,重要的参数就是SBS(图像中亮的区域的降噪强度),SDS(图像中暗的区域的降噪强度),STH是保边阈值;中间黑色的那排是时域和空域的权重(STR),大小越大,时域降噪的强度就越大,下方绿色的那排是时域滤波参数,主要调试动静判决、频率和强度,第0、3滤波器没有可调的时域滤波参数。

调试方法

由于针对人脸抓拍应用场景,部分参数可以确定:SBF是滤波器的频率选择,第0, 1, 2级的需要设置成2 ,3 ,0,第 0,2,3 级的 STH 三段阈值调试比例为 1:2:4,第 1 级的 STH 的三段阈值调试比例接近 为 1:2:0,STR配置为13,13,13,这种调试方法可以获得人脸边缘过渡自然和整体空域去噪保边的效果。

  1. 调试静止的场景。将 TFS 调最大63,将 MATH 调到刚好抑制雨点噪声,这时再适当调低 TFS,直到没有雨点,建议第1级的TFS强度大于第二级。MATH是动静判诀的阈值,MATH和TFS过大都会引起拖影,需要平衡。
  2. 在静止画面时域去噪调试合理的基础上,接下来需要调试中间两级的动静判决的空域滤波参数,抑制运动区域的噪声,主要调试STH保边阈值,SBS,SDS降噪强度
  3. 如果画面中还有部分噪声,就调节第3级的空域降噪,有两种模式可选,一种是简单的SBS,SDS控制,另外一种可以拉曲线,调试更加细致,噪声不多的话,用简单模式即可。同时噪声这块也需要和锐化进行平衡,噪声过大,可以适当地降低锐化。
  4. 最后调试色噪,sfc设置成1,sfc/tfc/csfs就是降噪强度,csfs主要去除画面的低频噪声,sfc空域色度降噪强度,tfc是时域色度降噪强度,一般高增益下调节csfs效果很明显。