调试freescale CSI sa7113 camera的心得

来源:互联网 发布:python 字典查找value 编辑:程序博客网 时间:2024/05/19 20:43

最近在freescale mx51平台上调试saf7113芯片,写下一些调试的心得

1. 一个好的工具 YUVtools.exe

这个工具可以用来查看拍摄出来的YUV图片效果, 来发现到底什么地方出了问题,很方便,选项非常多,在调试中碰到的很多问题,比如失帧

图片模糊,格式不对等等都可以通过这个工具对图片进行分析

2. 概念的了解: BT656, MX51 IPU, SAF7113 V4L2这些概念一定要清楚

SAF7113有一套缺省的设置, 按照这套缺省设置基本就可以出图像了。

我设置的saf7113输出是BT656,当初对BT656不太了解,所以在理解MXC V4L2对下层的接口上多花费了一些时间。

3. freescale的代码

毕竟不是为项目定制的,问题还是有一些的,我想当初他们也只是测试了部分代码,所以不要太迷信他的代码,当我放开手脚开始修改MXC V4L2代码后,觉得轻松了很多

另外MXC V4L2中有很多hardcode的代码,如果格式或者制式的原因,可能会使capture和overlay看起来像失帧,其实都是格式惹的祸。

此外MXC ipu3 code 也有值得商榷的地方,反正该改写的地方我都没客气

4. 解隔行, saf7113输出的是隔行数据

使用channel的scan-order可以实现隔行数据的交错, 但是对于动态图像,交错后的数据可能会出现毛刺,锯齿等问题。

还有一种办法,就是使用一场数据代替整帧数据,缺点是会损害静态图像的清晰度。

5. preview很好用

我直接用的freescale的代码,效果很不错,从camera直接到framebuffer,几乎不需要cpu参与。不过freescale android overlay hal使用的是push mode模式,而不是VIDIOC_OVERLAY。

6. 照抄ov3640

驱动框架都是从ov3640.c抄来的,虽然最后已改的面目全非,但是最初还是很有帮助的

7. IPU的channel

这个概念要尽早了解,很重要,了解这个,MXC V4L2的代码看起来相当的简单

 

 

原创粉丝点击