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

调试freescale CSI sa7113 camera的心得

2012年11月24日 ⁄ 综合 ⁄ 共 1053字 ⁄ 字号 评论关闭

转:http://blog.csdn.net/kickxxx/article/details/6559415

最近在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. 自己写小程序分析图片

比如NTSC摄像头拍出的图片模糊,其实是IPU把NTSC数据top bottom field搞反了,图片看着很奇怪,我写了个程序把top bottom解出来,然后调整下顺序,发现图片清晰了,改了下IPU中top field的识别模式,好了,再次说明不要太相信freescale的代码。dd 也要用好,方便的很。

7. 照抄ov3640

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

8. IPU的channel

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

抱歉!评论已关闭.