手机camera模块AECcamera曝光时间间为何要用多少个line count来表示

您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
高通5Mcamera在BMP10平台上总结学习笔记.doc 18页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
你可能关注的文档:
·········
高通BMP1.0平台调试5M CMOS camera总结
本文着重解决BMP1.0平台上的RAW data 输出数据的500万camera sensor的调试。包括驱动层,应用层代码和camera镜头的色彩校准。
我们按照调试的先后顺序进行步骤说明:
我们先说OEM层。OEM层继承了ICAMERA的所有功能,ICAMERA只是一个壳,实现会转到OEMCAMERA。AEE层介于两者之间,公开的代码只是让我们参考,修改无效。
在我们需要使用camera时候,调用CreateCamera,在Create Instance获得句柄后,我们得到一个应用的壳,然后得到具体的与camera应用相关的函数注册。然后通过OEMCamera_SetParm开始启动ACM相关资源,ACM简单的理解,就是图片和相关分支调用函数。详情看OEMCamera_ACMTransaction ()相关函数,这里不是重点,因此点到即止。因为高通在双camera的资源应用上还没有完善,日后和应用在ACM上可能遇上问题,因此才在这里顺带说一下。各位有兴趣可以和应用的多交流。
现在,我们可以从OEMCamera_New()开始,对驱动设计工程师而言,可以理解为camera代码应用的开始。
OEMCamera_New()中,camera_get_sensors所用到的变量,在代码启动的时候已经赋值,因此,并不是为空,这点需要注意,另外,这里还没有开始分配camera提供显示的内存空间,主要是对camera硬件相关进行初始化(想深入了解,看graph_task中的camera_init,这是在service层注册过的函数,再往下说,我怕会开始跑火车,就在这里点到即止,很多东西我们可以从代码中看到更多。我这里提点一下就好)
经常,我们需要trace看sensorInfo里面的信息。我们最关心的是sensor_width和sensor_height,这个是从底层获取的camera输出图像的尺寸。从代码的设计上看,AEECLSID_CAMERA1固定的表示主摄像头,AEECLSID_CAMERA2表示从摄像头(现在手机一般都是双camera,因此单camera的流程就不说了)
现在我们非常关心sevice层的camera应用,在这里涵盖了camera绝大多数的基础代码(指公共服务的接口,)这个文件里的函数,需要认真研究。
首先,我们研究preview的部分:camera_malloc_preview_buffers(),可以看到camera_preview_buffers.buffers[current_buffer].buf_ptr表示preview的buffer的指针,共5块,前3块是给VFE用的,后2块是显示overlay用的。
VFE处理video数据流,图像效果处理,raw数据解析(包括rolloff,gamma,ASF,AWB相关),YCBCR格式拍照解析
显示overlay用途,包括录像buffer的缓冲,屏幕显示的重载。
在raw data buffer中,会带上buffer头标志&QCAMRAW &,只有带这个标志的raw buffer,才是合法的,可以参看qcamrawIsHeader()这个函数判断,具体头里面有多少内容,看qcamrawSetHeader()这个函数,很直观的就能解析,这里就不在赘述。
想看preview关于buffer的指针定义,有一个函数camera_set_preview_buffers()很方便,这里面还包括recoding部分的buffer指针定义。
这里提供一个函数camera_calculate_output1_framerate(),可以看到如何用软件的方式看camera preview的帧率,我用过,和实际用示波器查看的结果非常接近,考虑帧率的动态变化,实际用软件的方式比示波器更好。
如果我们想对camera的数据进行一些深入的修改,建议从两个函数入手去追溯:camera_process_qdsp_output1_msg和camera_process_qdsp_output2_msg,这里面有很多图像处理。Output1进行preview;output2进行snapshot。Snapshot的thumbnail放在output1处理。
图像的旋转,camera_svcs_blt_ex(0这个函数是需要的,注意Y 和CbCr是分开存放的。
若是还想向上追溯,可以参看camera_svcs_process_func(),这里是camera一些主要公共功能的消息派发点。具体看函数内部就明白,我就不多说了。
const camera_bestshot_config_type camera_
正在加载中,请稍后...
259页376页18页345页169页13页390页320页183页376页后使用快捷导航没有帐号?
查看: 6378|回复: 5
高通camera驱动中vt_pixel_clk和op_pixel_clk用来做什么的
驱动中vt_pixel_clk和op_pixel_clk用来做什么的,用过的朋友们速来解惑啊,谢谢
回帖奖励 +1
本帖最后由 阿龙 于
18:52 编辑
vt_pixel_clk 主要是用于曝光时间计算,用于AEC算法的banding 纠正,计算公式 vt_pixel_clk = line_length_pclk * frame_length_lines * frame_rate
op_pixel_clk VFE时钟,表示每秒VFE处理数据量 op_pixel_clk = (sensor 输出实际比特率)/ bits-per-pixel
比如,如果MIPI DDR 时钟值&&(sensor MIPI 的时钟lane&&频率)&&为300Mhz,&&同时sensor 使
用4 个lane 传输数据,&&每一个lane 的数据率是&&300*2 = 600Mhz. 因此,&&总数据率为&&600*4
= 2400Mhz. 对于10bit的bayer sensor, op_pixel_clk 值可设置为2400/10&&= 240Mhz.
这些值可以从sensor 的寄存器设置中技算出来
vt_pixel_clk 主要是用于曝光时间计算,用于AEC算法的banding 纠正,计算公式 vt_pixel_clk = line_length_ ...
多谢,op_pixel_clk按此计算应该是最小值吧,可以比这个值大,但是vfe应该有上限。所以op_pixel_clk应该是在一个区间吧
多谢,op_pixel_clk按此计算应该是最小值吧,可以比这个值大,但是vfe应该有上限。所以op_pixel_clk应该 ...
理论上来说是这样的,最大值得话和平台端的VFE处理速度是有关系的
学习了学习了
vt_pixel_clk 主要是用于曝光时间计算,用于AEC算法的banding 纠正,计算公式 vt_pixel_clk = line_length_ ...
请问V信号极性是哪个参数
获取手机验证码扫码下载APK
共101个评分
扫码查看详情
下载酷安APP
发现应用的乐趣
发现应用的乐趣
扫码下载酷安手机APP手机camera模块AEC曝光时间为何要用多少个line count来表示_百度知道
手机camera模块AEC曝光时间为何要用多少个line count来表示
我有更好的答案
他用大学生 突发脑溢血,卧床不起,成了植物人.他的父母都是普通工人.节目中,支付不起那巨 额医药费台,收看“闪电星感动”节目.这次说的是一 位复旦大学的大学生,因为突发脑溢血,他就会有反映;手会抬起来一点, 或者嘴巴张开一些.似乎很高兴,也想一起来唱歌.光良得知这个情况后,立即给这位大学生写了一封信 鼓励他,告诉他一定会醒过来的.但是这位大学生非常喜欢听光良的歌,每当放到光良的歌.随后,他就来到“闪电星感动”,做了一期节目
为您推荐:
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 camera 模块 的文章

 

随机推荐