【摘要】
要借用某高通平台的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 services Oem层 App层
要借用某高通平台的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 services Oem层 App层