logo资料库

高通CAMIF和Ov_sensor_调试总结(OV7670资料).pdf

第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
资料共7页,全文预览结束
高通CAMIF和OV sensor 调试总结
一、问题的提出
二、解决思路
三、实践情况
3.1预览
3.2拍照无效区域的问题
3.4预览和拍照范围不一致的问题
3.5拍小尺寸照片压扁问题
四、效果评价
五、推广建议
参考资料
高通 CAMIF 和 OV sensor 调试总结 手机事业部 CDMA 二部 时慧钦 2008 年 2 月 【摘要】 要借用某高通平台的 camera 接口,联合 OV(OmniVision)公司的 sensor,实现手机摄像头的拍照及 录像功能,需要处理两芯片、显示屏和需求配合的问题,在这个过程中遇到并解决了许多问题。 【关键词】 拍照 预览 CAMIF 一、问题的提出 新手上路,第一次见到 ov sensor,第一次认识 Qualcomm 的 CAMIF,没有任何经验,调试中遇到 诸多劫难,如没有预览不到任何象素点、图像色彩不对、拍照无效区域、dispsize 设置不合适预览全屏 问题、黑白模式上层设不成、预览和拍照范围不一致的问题、软件转 90 度压扁问题等等。 二、解决思路 先做基础理论的储备。 VGA :640x480; QVGA :320x240; YUV 格式:4:2:2 曝光控制/伽玛增益/白平衡等都是效果方面的调整。 对于象素数较大的 sensor,如 1280x1024,由于数据量较大,通常预览分辨率 640x512 拍照分辨率 是 1280x1024,且拍照时的 PCLK 是预览时的 2 倍,这样可以对 VFE(video front end)来说是同样的 帧速率。 Ov7670 的寄存器 0x15 的 bit6 可以切换 sensor 输出 HREF 或 HSYNC,我们用 HREF。 Camera_process_config_vfe 初始化 VFE 寄存器; Qcamraw_set_header 设置 sensor 帧头; 代码分层: 层 Drivers 代码位置 camsensor services camera Oemcamera.c Qcamera.c/Qcamcorder.c Oem 层 App 层 Trace32命令:data.image addr. 640. 480. /GS8,可方便的看某buffer地址中的图片,判断取到的预览图 片内容和最终显示的屏上的差异。 camera_qdsp_cb 是收到帧等事件的回调,根据预览和拍照的不同需要,QDSP 会送来不同的格式, 本例中拍照格式是 YUV422PS,预览格式是 RGB565LE。 要得到需要的帧率,需要给 sensor 寄存器设置时加入空白象素和空白行。对于 ov7670,0x92/0x93 加入空白行个数。 帧率的计算按照以下公式: fps*(640+144)*(510+x)*2 = 12M(Pclk) 1 www.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.com
其中 x 是空行数,{0x92, 0x00},{0x93, 0x00}时,x 为 0,fps 为 15;{0x92, 0x19},{0x93, 0x01}时, x 为 281(0x119),fps 为 9.67。 如下图 1 是 x 为 0 时的时序图: 图 1 VGA Frame Timing 三、实践情况 3.1 预览 首先关注寄存器设置是否成功,测试发现写完寄存器,再读出的值和写的部分不同,因为某些寄存 器是在自动刷新的。 对于 sensor,只要供电正常,且有 MCLK,就应该有行场同步及 PCLK 信号。开始没有测到信号, 后查出来同步信号在传输过程中由于某管脚对地短路,衰减了。 要保证代码中主芯片和 sensor 侧象素数(宽、高)、同步信号极性(高低电平)和采样频率(PCLK) 设置一致,才能预览。主芯片通过 CAMIF 接口的寄存器设置。在 camera_process_config_vfe 中写入。 软件设置如下: 测出 9.679fps 时的波形如下图: 2 www.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.com
3 www.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.com
4 www.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.com
15fps 的时序如下: VSYNC High:66ms(约 510=17+480+10 lines)Low 394us 周期约 66ms 即 15fps; HSYNC High:106us (约 1280 clks) low 24.4us 周期约 130us; VSYNC 上升沿到 HSYNC 上升沿的 time :1.98ms,约 17 lines; HSYNC 下降沿到 VSYNC 下降沿的 time :1.57ms,约 10 lines; PCLK 是 12MHz. HREF、VSYNC 都用做同步信号,高通新近平台上通过采样同步信号得到数据,有效行前边的无 效行不需精确设置,只要同步信号电平给定即可。检测计数到够一帧才会产生中断数据。 查完一切状态正常,但从 log 文件可以看看主芯片还是是未接到 sensor 的帧; 后再测信号,发现 HREF 信号实际板子上没传到 CPU 子板上。 总结经验:硬件调试时注意,信号测试要逐级测试,从输出一直到输入点上,考虑硬件通路可能存 在的传输问题。硬件电路容易有对地短路的点,如遇到信号传输异常的。可以断电侧对地电阻,确认是 否对地短路。 3.2 拍照无效区域的问题 Dispsize 设为 216x160 可以在 128*160 的屏上全屏预览,但拍出的照片有一条杂色区域,如图所示, 这个问题在默认 Dispsize 设置 128x96 时也有。 30 万像素,数据量比较小,预览和拍照可以用同一分辨率,所以 snapshot 不用重设寄存器,驱动 中重设寄存器引起了拍照无效区域的问题,去掉解决。 5 www.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.com
3.4 预览和拍照范围不一致的问题 CAMIF 输出的是一个横长的图像,在竖长的屏上预览需要裁减,因此造成了用户看到的和拍到的 明显不一致,为解决这个问题,需要把 sensor 从横着放置改为竖直放置,但是所用高通平台没有一个 MDP,即图像旋转的硬件加速器,软件上的旋转可能会增加负担,对此,做了必要的验证工作。 从原理上看,不旋转和旋转 90 度的处理算法没有明显差异。 现象上看,软件令 camera_default_rotation =90,camera 预览和拍照及 camcorder 预览及录下的视频 都顺时针转了 90 度。 用 task profiling 跟踪,不旋转和旋转 90 度占用 CPU 时间一样。详如下图: 旋转:0 度; display size: 216x160; Image size :160*120 九宫格 QCAMERA 预览 拍照 拍照 QCAMERA 预览 旋转:90 度; display size: 216x160; Image size :160*120 九宫格 QCAMERA 预览 拍照 拍照 QCAMERA 预览 3.5 拍小尺寸照片压扁问题 软件和硬件都转过 90 度之后,拍出来的大尺寸照片和预览只有了微小差异,但小照片却被压扁了, 从理论上分析,宽高比等和屏同样很协调,怎么也想不出道理。 最终用仿真器仔细跟踪拍照过程中各参数的设置,找到了原因:预览的 CAMIF window 根据 6 www.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.com
display_aspect_ratio 不同分别基于宽或高来计算,拍照的 CAMIF window 也需要这么处理,否则看到的 和拍到的会不同。 因此在代码上加了类似的处理。 四、效果评价 如此这般,处理完一系列小的绊脚石之后,手机 camera 的功能比较理想的满足了需求,圆满达到 设计目的。 五、推广建议 此实践对类似高通 CAMIF 上外加 ov sensor 开发 camera 的功能的同事都有参考意义。 参考资料 OV7670_DS 20(1.3)-2 80-V6212-1_F_CAMIF_Qcamera —— 完 —— 7 www.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.comwww.mbtrend.com
分享到:
收藏