调试freescale CSI sa7113 camera的心得

本文分享了在Freescale MX51平台调试SAF7113芯片的经验,包括使用YUVtools分析图像、理解BT656与MX51IPU等概念、修改Freescale代码以解决各种问题、解隔行处理技巧及利用preview功能提高效率。

转:http://blog.youkuaiyun.com/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的代码看起来相当的简单

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值