平台:MTK23C,视频需求要求的分辨率为80x64,112x80
问题:优米视频聊天软件实现方法为先preview,之后就是连续的capture,通过MTK的API调用PAS6167,不是直接调用
解决方案:
1. 先把80x64,112x80这两个分辨率做好,并在MTK的标准相机测试,测试方法就是在CameraApp.c文件中。设定此相应preview和capture的分辨率,并测试此分辨率下的preview和capture是否都正常。
2. 要求方案商给我一个全局变量或函数,让PAS6167知道视频软件什么时修执行连续拍照连续拍照时,第一次调用capture时,须令continuing_capture=0,让我们的PAS6167先初行一次正常的capture初始化,从第二次capture开始,使continuing_capture=1,执行(continuing_capture==1)的代码当退出视频软件时,continuing_capture要致0,不然会影响一般相机capture。
调试过程遇到的问题及解决方法:
1. PAS6167 Capture直接使用80x64此分辨率在MTK上有问题,MTK会以为数据没有发送完一直在等(直接超时中断),在视频软件上一直没有图像。
而Preview直接使用80x64此分辨率则没有此问题,后来把Capture的分辨率改为80x67就正常了。
2. 在室内环境切换到户外环境出现过曝问题,因为连续的Capture过程中没有做AE引起,修改代码后就AE就能收敛了。
先去掉以下4行
PixSensor_AE_Mode(KAL_FALSE);
exposure_pixels=PAS6167_Read_Shutter();
。。。。
exposure_pixels=exposure_pixels*preview_pclk_division/capture_pclk_division;
PAS6167_Write_Shutter(exposure_pixels);
然后再加入PixSensor_AE_Mode(KAL_TRUE); , 加在 PAS6167_Output_Enable(KAL_TRUE);前
3. 但对灯管或光线强的户外环境,连续的Capture过程中会每几帧就出现一帧亮度过亮的现象,AE在强光下收剑有问题,把preview这三行代码
write_cmos_sensor(0xef,0x00);
write_cmos_sensor(0x6B,0x07);//R_AE_minStage[4:0]
write_cmos_sensor(0xef,0x00);
拷到capture函数相应地方就解决,但AE的收剑会比之前小一些。
4. 帧率过慢,不到1帧,不过优米视频软件正常的帧率也就2帧左右。执行连续拍照功能时,把PixSensor_Skip_Frame(3);去掉,帧率有改善。