现在的位置: 首页 > 综合 > 正文

Qualcomm camera部分学习

2013年12月28日 ⁄ 综合 ⁄ 共 1292字 ⁄ 字号 评论关闭

         高通将android的camera模块重新修改了一下,与原生的方式存在一些差异。这里将前段时间学习的一些零散知识进行一下总结,便于以后查阅。

1.整个模块主要巡行三个主线程:control、config及frame,control用来执行总的控制,是上层控制接口(这个线程还未去了解)?config主要进行一些配置,这个线程里面主要进行3A的工作,另外还有一些跟效果有关的设置;至于frame线程好像主要用来做预览吧。目前还只是大致了解config线程。

2.在Qualcomm执行初始化时就会调用到mm_camera_exec()函数来建立config线程launch_cam_conf_thread();阅读此线程函数体会发现里面使用了select机制来检测配置指令并进行分发(调用不同的分支函数)。后面就是一连串的function call了。 关于select机制还有不少疑点需要进一步学习:指令的来源?如何对文件进行控制的?

比如下面这一段LOG就可以看到对AE、AWB及HIS设置的过程(只贴了部分):

E/CAM_FD  (  194): ...... entering config duty loop ......
E/CAM_FD  (  194): cam_conf: MSM_CAM_IOCTL_GET_STATS: resptype=1 ctrl_cmd.type=4
E/mm-camera(  194): +++++++++++++ config_proc_vfe_event_message type 0                 // event类型
E/mm-camera(  194): camconfig_proc_vfe_event_message received msgId = 9               

E/mm-camera(  194): vfe_process_msg_evt msg_id = 9
E/mm-camera(  194): vfe_process_VFE_ID_COMMON, vfe common message = 0x4a000           // AE、AWB、IHIS
E/mm-camera(  194): received AEC stats: buf = 0x40821000, fd = 52
E/mm-camera(  194): VFE_ID_STATS_AE numReg 256, opt_mode 4
E/mm-camera(  194): vfe_util_do_aec: numReg = 256, num_pixels_per_region_aec = 30856
E/CAM_FD  (  194): isp3a_execute stats_type: 0                              // 执行AEC
E/mm-camera(  194): vfe_util_do_aec: no pendingPrepSnapCtrlCmd
......

3.关于sensor的DRV部分,目前只了解了大致框架,弄了个新模组也只是获取到ID并未能点亮。

3.设备模型的概念,这部分目前还很朦胧,后续需要加大力度。

 

抱歉!评论已关闭.