AEC就是自动曝光,自动曝光的实现,就是一个不断给sensor写gain与曝光的过程。高通的AEC,首先生成一个AE table ,设置一个target luma,然后实时统计出每一帧的cur luma。这样自动曝光其实就是cur luma 靠近target luma的过程,luma的变化其实就是调节sensor的gain与曝光的过程,然后配合HOLDING TIME功能使AE稳定在target luma 附近。

高通的AEC基本运转过程就是以上这么简单,然后需要注意的是sensor输出的sensor gain并不会很高,我知道的OV的一般16倍左右,SONY的也是8或者16,很少有sensor超过16的,那么当我们AE table设置的高于16时,高于16的部分会使用ISP gain去做补充。sensor厂会评估自身sensor稳定的工作极限范围,然后设置一个max gain,超过max gain就可能会导致sensor工作不稳定。

影响亮度只有两种可能,要么改变当前帧的统计方法而影响cur luma,要么根据帧信息动态改变luma target。在advance aec里面,bright region与dark region这两个就是通过改变cur luma来调整亮度,而extreme_color 与Histogram就是改变luma target来影响亮度。还有一点AEC的调整只能单向去做调整,就是直方图要么整体左移,要么整体右移。

再说说曝光,sensor曝光都是逐行曝光,在国内,为了避免出现banding,曝光除了逐行曝光意外,还必须是10ms的整数倍,那么如何计算出10ms的整数倍的曝光是具体多少行呢,下面就说说这个。sensor的每一个pixel产生的数据都需要输出,输出就需要有能量,因此camera的主时钟MCLK,由BB提供,再由sensor处理后变成传输数据所需要的PCLK,PCLK给每一个pixel数据传输提供能量,它是一个频率,那么通过PCLK可以算出每一个pixel曝光需要的时间,就是1/PCLK,然后每一行有多少个pixel曝光(line_length_pclk)可以从sensor_lib.c里获取,这个值一般都会比sensor的output size会大,因为会加入dummy pixel(为啥需要加入空白的,都是为了调整曝光,从而达到消除banding的目的),有了这个值以后我们就可以很轻松的算出来10ms的整数倍到底具体是多少行,公式我还是列下来:
                                              (1/PCLK)*line_length_pclk*X = 10ms   ----(X表示10ms的曝光行数)

再多说一点,其实通过PCLK可以算出来mipi数据总量,假如我们是10bit的数据输出,那么MIPI的数据总量就是PCLK*10,如果是MIPI 4lane的那么每条lane的数据量就再除以4就好。

Qualcomm luma的理解相关推荐

  1. camera学习入门指南

    等待补充. 1.背景介绍 近年来,随着消费电子领域市场的快速增长,如安防.图像等领域,camera市场得到了快速发展.智能手机这几年以拍照作为主打卖点,带动了camera(CCM)出货. 具体可以看电 ...

  2. Qualcomm式创新融入中国 有何深层逻辑?

    高通来了,很多问题可以换一种方式解决 文/郑凯 如果说哪家公司的创新曾给过我最深的印象,那一定是Qualcomm. 为什么呢?这家成立于1985年的公司,所处的客观环境跟中国的科技公司启动的时间点很接 ...

  3. Metal之探究理解视频渲染RGB与YUV颜色编码

    一.颜色编码 ① RGB 颜色编码 RGB 三个字母分别代表了 红.绿.蓝,这三种颜色作为三个基底颜色,将它们以不同的比例相加,可以产生多种多样的颜色. RGB 图像中,每个像素点都有红.绿.蓝三个基 ...

  4. 李智:用数学来理解世界

    李智说,用数学来理解世界可能是每一个理工男的梦想吧.从思科到Netflix,李智一直希望通过数学的方法改善用户的体验.如今他正在在负责开源项目VMAF,希望通过这一项目帮助更多平台改善用户观看体验. ...

  5. Android 下 Kernel Debug (Qualcomm Chipset)

    Android 下 Kernel Debug (Qualcomm Chipset) Android 下 Kernel Debug  (Qualcomm Chipset) 1. 背景  本文面向Linu ...

  6. 颜色空间YUV、RGB理解(二)

    接触到了一些yuv相关的信息.从Camera中拿到的每一帧,它的默认格式是NV21,它是一种yuv格式,然后转成 OpenCV所需的BGR.Camera的每一帧的数据格式还可以指定成别的格式.因此开始 ...

  7. 《深入理解Android内核设计思想(第2版)(上下册)》之Android源码下载及编译

    本文摘自人民邮电出版社异步社区<深入理解Android内核设计思想(第2版)(上下册)> 购书地址:http://item.jd.com/12212640.html 试读地址:http:/ ...

  8. Qualcomm 音频学习一

    前言 最近在学习高通的音频驱动,在学习了高通音频 bring up 和 Audio overview 文档后,并在网上寻找到一篇比较重要的 blog进行学习后,将这部分学习笔记记录于此. 四个重要部分 ...

  9. mbim ndis ecm ncm之我的理解

    这几个问题困扰了我很长时间,经过我不懈的努力 加上  我的悟性,  我自认为 理解了那么一点. ndis (Network Driver Interface Specification) 网络驱动接口 ...

最新文章

  1. OpenCV编译viz模块
  2. 【 FPGA 】Vivado中常用的5个Tcl命令
  3. 【企业管理】战略与策略通俗理解
  4. Google-glog 日志库使用手记
  5. 深度学习和目标检测系列教程 7-300:先进的目标检测Faster R-CNN架构
  6. LAMP环境下动态网站许愿墙的搭建
  7. pb中将已经建好的Grid类型转为Tabular类型
  8. figma设计_5位来自杂乱无章的设计师的Figma技巧
  9. windows下node安装
  10. 钱线观察:货币基金T+0驾到 活期存款将死?
  11. Hibernate操作数据库步骤(包括语法)
  12. 鸿蒙眼镜怎么样,Babiators儿童太阳镜怎么样 Babiators儿童太阳镜测评
  13. linux系统找运行指令,Linux系统常用指令总结
  14. LIBRARY_PATH和LD_LIBRARY_PATH
  15. 如何应对企业的数字灾难
  16. Python - 快速理解汉诺塔
  17. html中加载gif图片,使用CSS3实现动态加载gif图片的效果
  18. vgc机器人编程1到13题_工业机器人编程与实操期末试题
  19. 【正本清源】算力大战根本就从未开始过!BCH分叉事件之技术细节七问
  20. 在Kubuntu14.04中安装小企鹅输入法

热门文章

  1. pycharm中用pandas读取中文表头的csv
  2. linux低功耗服务器,低功耗版Linux:WattOS
  3. 汽配汽修业务流程-维修业务
  4. CPU——中央处理器概述
  5. Hook微信朋友圈图片下载(标题党)
  6. 压缩包密码忘记了怎么解决
  7. 李国杰:云计算不可忽视计算机系统研究
  8. 对计算机科学的反思(转计算所李国杰文章)
  9. .net里Properties 文件夹中的东东
  10. .NET项目中的AssemblyInfo文件的作用