视频驱动分析1:

项目需求:通过模拟相机采集数据,对于采集到的数据,通过DMA转换得到RGBYUV

视频驱动涉及以下几个方面:

1.摄像头输入信号相关知识。

Tvp5150可以接收2路复合视频信号(CVBS1S-Video信号。当接收复合信号时,可选择通道A或者通道BS-VideoALuminanceB输入Chrominance信号。复合信号PALNTSCNTSC720x480PAL720x576 输出可配置为BT601,BT656.

2.camera解码,控制器,

s3c2451cameraBT601/BT656DMAP/C解码,可以分别得到需求的RGB/YUV数据。

3.V4L2的驱动架构

熟悉应用程序访问V4L2的方法及设计到的数据结构。

由模拟相机+ADtvp5150+cameras3c2451集成)+LCD构成一个完整的视频系统,框架如下图


需要注意的是:数据传输的格式,我们这里采用PAL制输入,最终得到320x240yuv输出


驱动分析:

1.输入端:

tvp5150可以接收NTSC (M, 4.43), PAL (B, D, G, H, I, M, N), and SECAM (B, D, G, K, K1, L) 格式的视频数据,支持2CVBS1S-Video信号,通过一个高速9ADCBT.601/BT.656 Tvp5150是一个I2C 2.camera解码—s3c2451控制器

S3C2451ITU-R BT601/6562DMAPreviewCodec


Preview通道可以将YCbCr4:2:2格式的图像转换为RGB16bit24bit)格式的数据,并存放于为Preview DMA分配的内存中,最大分辨率为640*480。主要用于本地液晶屏显示。如果将Preview DMA的内存和Framebuffer内存重叠的话,就可以实现采集直接输出到液晶屏上了。

 Codec通道可以输出YCbCr4:2:0YCbCr4:2:2格式到为Codec DMA分配的内存中。最大分辨率为4096*4096。主要用于图像的编解码处理。


上图中的window cutCIWDOFSTPC通道后,各自的scaler单元还可以对其进行缩放、旋转等处理。


我实际调试中得到如下图片


左边有几列一直是黑条,不知道什么原因,所以干脆就剪切掉,得到640x576图像(取8的整数倍)。

S3C2451 camera控制器支持乒乓存储。为了防止采集和输出之间的冲突,采用了乒乓存储方式。每次采集一帧后,自动转到下一个存储区。如果你因为内存空间不足,不想使用此功能的话,可以将四个区域设置到同一块空间。

在做图像处理时,需要关注到最后存储区中的图像格式,如codec通道硬件自动把YCbCr分离存储。


S3C2451 camera 控制器Last IRQ


控制器会在每个VSYNCImgCptEnImgCptEnIRQVSYNCImgCptEnLastIRQEnImgCptEnstop capturing后的vysnclastirq  我在移植linux驱动时就遇到了一个Last IRQ的问题。现象是输出图像上面总是有一条比其它部分反应慢。采集运动图像,就能看出现象。查看代码是因为没有设立lastirq,因为每次如果不在lastirq产生的情况下读取,图像缓冲中的数据是不稳定的,可能照成图像不完整。修改代码支持lastirq后,问题解决。

3.本例中采用BT.656输入

所以不需要连接同步信号,行场同步信号包含在数据流中,s3c2451BT601ov7740


4.调试中常见的问题

1cameraYCbYCrCbYCrY 2cameraCAMPCLK 3Framebuffer 参考链接:刘洪涛博客http://blog.csdn.net/hongtao_liu/article/details/5867351












<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(1832) | 评论(0) | 转发(3) |
给主人留下些什么吧!~~
评论热议
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值