wbsn123 发表于 2019-3-25 17:27:51

Qualcomm ISP pipeline

本帖最后由 wbsn123 于 2019-6-17 09:47 编辑

       楼主最近工作调整,现在再学习driver部分,啃代码中{:cry:},camera的驱动移植点亮很简单,但是完全看懂高通的surfaceview逻辑也是很头疼,现在也只能说看懂了30%。
       今天抽时间写下一直想写的这个ISP pipeline部分,这个部分其实一直有在构思,想写好真的不是很容易。但是这个部分是非常重要的,ISP 的处理流程,这个部分是考验你对平台的理解怎么样,几乎所有的应聘里面面试官都会问到这个问题。所以我今天来谈谈我的理解,希望能够对大家带来帮助。
       下面列出我认为合理的pipeline(相对高通文档上面的处理过程,这里只是列出关键部分):


       Mipi–> BLC –> linearization –> DPC –> ABF –>Rolloff –> Demosaic –>Color Correction –> Gamma –> Luma Adaptation –> ACE(advancedchroma enhancement) –> WNR –> ASF
      
       高通将sensor吐出的RAW数据先后按顺序分为三部分处理: 1. Bayer RAW域    2. RGB域   3. YUV域 (上面红色部分标出色域转换的地方,下面挑重点讲一讲)。
      
      BLC: 大家常说的黑电平校准产生的原因无非就两点:a. sensor厂家一般会在AD的输入之前加上一个固定的偏移量,使输出的pixel value在5(非固定)~255之间,目的是为了让暗部的细节完全保留,因为人眼对暗部的细节变化更为敏感。
                                                                                     b. sensor的电路本身会存在暗电流,导致在没有光线照射的时候,像素单位也有一定的输出电压,暗电流这个东西跟曝光时间和gain都有关系,不同的位置也是不一样的。因此在gain增大的时候,电路的增益增大,暗电流也会增强,因此很多ISP会选择在不同gain下减去不同的bl的值。


      gamma校正:是为了配合屏的gamma校准,为了让图像真实的还原到显示设备上。gamma的理论可以深入研究,可以参靠下面这个博客                      https://blog.csdn.net/candycat1992/article/details/46228771


      CCM:每一个色温的R 、G、B的比例都不同,所以这就需要我们按照不同的比例来进行补偿。
   
      小波降噪(WNR):小波降噪能够从频域去除高低频噪声,并且能够较好的保留细节,高通采用一个双边滤波器来实现,参数用来控制滤波器以及去噪力度。
         
      Luma Adaptation(or GTM): global去控制所有像素,而LTM可以做到不同像素使用不同的 tone mapping cure.   

         
      
         


      
      
      


      
            
                  
                                                                  


      


         
      


页: [1]
查看完整版本: Qualcomm ISP pipeline