百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

多摄像头视频采集系统中摄像头 切换方案的设计与实现

haoteby 2025-02-16 20:55 13 浏览

摘 要: 目前使用的图像传感器主要有CMOS和CCD两类。CMOS器件功耗低、集成度高,但成像质量不如CCD器件好。因此该多摄像头视频采集系统采用了CCD和CMOS两种器件,以满足多种需求。提出了一种基于TI公司TMS320DM365处理芯片、采用CCD和CMOS器件的摄像头软硬件切换设计方案。

0 引言

近年来,随着移动终端的快速发展,计算能力增强,移动网络传输速度大幅提高,移动视频监控技术发展迅速。目前国内外视频监控业务主要应用在公共领域、行业用户和个人用户。特别是在公共场所,国外设置了众多监控设备,以加强对公共领域安全的控制能力[1]。嵌入式视频采集系统具有高效、体积小、实时稳定、低成本等优点[2],自然而然地成为了视频监控设备的良好载体。

目前使用的图像传感器有CMOS(互补金属氧化物半导体)和CCD(电荷耦合器件)两类。与CCD相比,CMOS器件具有功耗低、集成度高等优点,但是在噪点和成像质量方面不如CCD器件[3]。而CCD器件则刚好相反。所以在本设计中,采用了CCD与CMOS搭配的设计。其中CCD器件搭配TVP5151视频解码芯片,外置的CCD摄像头能够提供更灵活、更清晰的视频图像。CMOS则是采用了OV5640的模组,利用其集成度高、体积小的特点,作为内置的视频采集摄像头,满足视频聊天等一般成像需求。

1 硬件框架设计

整个视频采集系统终端以TMS320DM365芯片作为处理器芯片,基本模块有DDR2、SDRAM、NAND Flash、网口、串口以及负责进行信令和视频数据传输的3G模块等。TI公司的基于DaVinci技术的TMS320DM365芯片,集成了一颗ARM926EJ-S内核,一个图像处理子系统(VPSS),一个H.264高清编码器协处理器HDVICP和一个MPEG-4/JPEG高清编码器协处理器MJCP,支持多格式编解码[4],所以特别适用于图像处理。视频采集部分主要由DM365的VPFE(视频处理前端)、一个多路转换器和两个视频数据采集芯片(OV5640和TVP5151)组成。摄像头硬件切换由DM365的GPIO口对多路转换器进行控制,选择输入到VPFE的数据源。

系统硬件框架设计图如图1所示。

DM365的VPFE采集驱动是一个V4L2设备驱动,可以对RGB和YUV数据进行采集。VPFE的简单框架如图2所示[5]。

视频采集前端在接收到原始的YUV视频数据后,可以对数据进行存储,同时又将视频数据通过内部的数据总线传输到图像处理模块。此时可对图像数据进行裁剪、缩放等,以适应本地存储或者网络上传的需求。

视频采集前端在接收到原始的YUV视频数据后,可以对数据进行存储,同时又将视频数据通过内部的数据总线传输到图像处理模块。此时可对图像数据进行裁剪、缩放等,以适应本地存储或者是网络上传的需求。

2 软件设计

2.1 VPFE模块驱动

TMS320DM365数字多媒体芯片包含一个视频处理模块用来处理视频数据,减轻主处理器的负担。它支持大多数主流的外置视频采集设备。而与外置视频采集设备直接相连的就是视频处理前端子系统(VPFE)。

VPFE采集驱动通过标准的V4L2接口将底层硬件的功能暴露给了上层应用程序,在应用程序和设备驱动之间建立起了桥梁[6]。VPFE驱动初始化开始后,首先通过imp_get_hw_if函数和ccdc_get_hw_interface函数绑定imp和CCDC的接口函数组,随后对CCDC模块进行初始化。初始化CCDC模块之后,驱动会分配需要的内存用来存储采集上来的视频数据。最后,便是调用driver_register(&vpfe_driver)函数和platform_device_register(&_vpfe_device)函数注册驱动和平台设备。系统启动时,检测到其驱动和设备都存在后,就会调用vpfe_prob函数,这个函数做的最重要的事情就是调用video_register_device函数绑定了file_operations结构体,提供给应用程序访问内核与设备驱动的接口。同时生成一个设备文件节点(/dev/Video0),这样,应用程序就能通过访问/dev/Video0设备文件节点,配合Ioctl函数调用VPFE驱动中file_operations结构体成员函数来进行视频的采集。

VPFE初始化流程图如图3所示。在此设计中采用了两种视频采集芯片,分别为德州仪器的TVP5151和豪威科技的OV5640。这两种芯片的驱动程序中,在完成标准的I2C设备注册的工作后,都会调用vpif_register_decoder(&ov5640_dev[i])或是vpif_register_decoder(&TVP5151 _dev[i])函数将采集芯片的各种操作函数接口封装成一个struct decoder_device结构体注册到前面提到的VPFE模块中。这样,应用程序就可以通过VPFE的设备文件节点(/dev/Video0)来调用VPFE的操作函数,进而再间接地调用采集设备的操作函数,完成视频采集芯片的配置工作,使得其能够正常工作。

2.2 摄像头软切换

此设计中使用了两种视频采集芯片TVP5151与OV5640,因此会有两个decoder_device结构体注册到VPFE模块中。摄像头的软切换,也就是对VPFE模块中注册的decodor_device结构体进行重新选择,决定该调用哪个采集芯片,并对CCDC模块进行相应的配置。于此同时,对多路选择器也要进行相应的配置,使其选择正确的通路。摄像头切换流程如图4所示。

首先自然是通过3个GPIO口来配置多路选择器选择正确的通路,使得DM365可以获取到来自正确的采集芯片的视频数据。VIDIOC_ENUMINPUT命令会通过VPFE模块调用到注册到VPFE模块中的采集芯片驱动的操作函数enuminput,从而依次检索注册到VPFE中的各个decoder_device结构体中是否有需要的input_info,并返回对应的decoder_device的序号。所以只需要在调用VIDIOC_ENUMINPUT命令时传入与所需要采集芯片驱动中相同的input类型,便可以找到对应的decoder_device,从而切换到对应的摄像头。得到正确的decoder_device序号后,即可用VIDIOC_S_INPUT命令,调用到采集芯片驱动中的initialize函数,完成其初始化。

切换到正确的视频数据源以后,还要对CCDC模块进行对应的设置。这时需要调用命令VIDIOC_S_STD:ioctl(fd,VIDIOC_S_STD,&std),它会调用到视频采集芯片驱动中的setstd函数,进而对驱动中的struct v4l2_standard结构体数组进行便利,找到其中数据成员ID与VIDIOC_S_STD命令传入参数std相同的项,返回其name成员,并将其作为ccdc_hw_if->setstd函数的参数执行,便可以对CCDC模块的分辨率、帧率等信息进行设置。例如,当检索到的name值为“VGA-30”时,CCDC模块分辨率便会被设置成640×480,帧率为30 FPS。

2.3 扫描方式的切换

此设计方案中用到的两种视频采集芯片的扫描方式是不同的。TVP5151是隔行扫描,一帧分为奇偶两场,而OV5640是逐行扫描。VPFE模块对于这两种扫描方式的处理方式是不同的,所以完成摄像头的切换后,还要把CCDC模块扫描方式设定成与对应的视频采集芯片一致。在VPFE驱动中,有一个标志位frame_format就是用来表示扫描方式的,frame_format为0时表示隔行扫描,即使用TVP5151;为1时就表示逐行扫描,即使用OV5640。原本ccdc_hw_if->setstd函数还可以对扫描方式进行设定,但是由于本设计所使用的内核版本的缺陷,设定无法生效,所以添加了一个小补丁:在内核VOFE驱动中声明了一个变量scanmode,并使用EXP ORT_SYMBOL(scanmode)使之成为内核全局变量。然后分别在TVP5151和OV5640驱动的intialize函数中对其进行赋值。TVP5151为隔行扫描,故对其赋0,OV5640则相反。这样,每次切换摄像头后,在初始化采集芯片的同时也会对CCDC的扫描方式进行选择。

3 测试结果

测试在实验室的单兵设备上进行。在后置的OV5640摄像头模组和外置的TVP5151摄像头模组之间进行了切换,外置摄像头更清晰,也更灵活。而内置的则胜在方便、小巧。设计达到了预期目标。测试效果图如图5所示。

4 结论

嵌入式芯片技术的快速发展,使其在视频监控设备总的应用越来越广泛。同样发展迅速的还有视频采集芯片。本文设计实现了基于TMS320DM365硬件平台的多摄像头软硬件切换方案,采用了CMOS和CCD两种器件,实现了不同厂家型号、不同扫描方式的视频采集芯片模组之间的顺畅切换。这在视频采集芯片发展越来越多样化的今天,有一定的意义。

参考文献

[1] 苗润生.3G移动视频监控业务的应用与发展[D].北京:北京邮电大学,2010.

[2] 李佳林,刘永春.基于S3C2440网络视频采集系统的设计与实现[J].电脑知识与技术,2014(6):1314-1316, 1325.

[3] 王旭东,叶玉堂.CMOS与CCD图像传感器的比较研究和发展趋势[J].电子设计工程,2010(11):178-181.

[4] 徐凯,钱燕,魏宗群,等.基于TMS320DM365的3G实时视频传输系统设计与实现[J].浙江农业科学,2012(7):1056-1059.

[5] Texas Instruments. Davinci Linux VPFE Capture Driver [EB/OL]. [2015-07-15]. http://www.ti.com/lit/an/sprs566a/ sprs566a. pdf.2015.2.

[6] 潘力策,孟利民.基于DM365的双码流视频监控设备的设计与实现[J].微型机与应用,2015,34(10):41-43,47.

相关推荐

Python爬虫进阶教程(二):线程、协程

简介线程线程也叫轻量级进程,它是一个基本的CPU执行单元,也是程序执行过程中的最小单元,由线程ID、程序计数器、寄存器集合和堆栈共同组成。线程的引入减小了程序并发执行时的开销,提高了操作系统的并发性能...

A320-V2500发动机系统FADEC介绍(2)

目的全权数字发动机控制(FADEC)系统在所有飞行和运行阶段提供全范围发动机控制。...

三国志战棋版:玩家“二叔”用这套群DOT在比武中拿下31胜5负

声明:本文首发于今日头条,而后发布于“鼎叔闯三棋”的微信公众号、抖音、哔哩哔哩和小红书平台,如果在其他平台就是抄袭。...

真正的独一无二:Dot One 推出 DNA 定制系列 139英镑起

相信很多人在挑选衣物时有着这样的困扰,综合了性价比、面料等因素后好不容易找到了心仪的款式,还要担心是否会撞衫,不管是擦肩而过的陌生人还是身边的熟人,都令人尴尬。小部分人为此热衷于购买少量的古着或者限量...

崩铁:周年庆福利再升级,老角色加强时间确定,3.xdot体系反转

#埃安UT大一圈高级很多#...

Dotgo推出RBMHub,扩大了CPaaS提供商的覆盖范围和功能

据telecompaper网7月15日报道,用于商业消息传递的RichCommunicationServices(RCS)解决方案的领先提供商Dotgo宣布推出RBMHub。RBMHub的推出扩大了C...

深度解析:快照取消Dot职业的将何去何从

写在前面曾几何时,术士的出现便被冠以dot大师的名头,从远古时期的献祭腐蚀虹吸不如暗牧一个痛,到TBC上满dot=荣誉击杀+1,到wlk接近全暴击的冰晶腐蚀,再到CTM就算了吧MOP的各种变态吸x放...

星穹铁道:抽卡芙卡之前,你必须了解什么是dot!

卡妈终于上线了,可还是有很多人不明白什么是dot伤害,抽了卡妈直接玩起了直伤流,把一个持续伤害的引爆器玩成了打手,卡妈打dot伤害是远高于直伤的,有了卡妈的玩家一直了解dot,不然这卡妈就真被玩成四不...

游戏界的闪耀星辰陨落:悼念知名游戏博主″dotα牛娃″

无尽哀思!在数字时代浪潮中,游戏不仅是消遣娱乐的代名词,更是连接心灵的桥梁,构筑了无数人的青春回忆。在这片浩瀚无垠的游戏宇宙中,有这样一位博主,他以独特的风采、深邃的洞察力和无尽的热情,成为了玩家心中...

直击2017新加坡同性恋聚会Pink Dot,自由爱!

今年的“粉红点”又来啦~这个支持LGBT群体(男女同志、双性恋、跨性别等)群体的活动,从2009年起,已经在新加坡举办8年了!”这个非营利的同性恋权益活动,主要是希望大家了解到,不管一个人的性倾向或...

python-dotenv,一款超级实用处理环境变量python库

python-dotenv,一款超级实用处理环境变量python库python-dotenv概述:...

亚马逊语音助手毫无征兆发笑 诡异至极吓坏用户

来源:新华网美国电商亚马逊7日承诺,将更改名下“亚历克萨”语音系统设置,令它不会莫名发笑,免得吓坏用户。“亚历克萨”是亚马逊开发的语音助手软件,可服从用户语音指令完成对话、播放音乐等任务。依照原来设计...

2022最火英文网名男女生

精选好听英文昵称带翻译1.moveon(离开)2.Monster(怪物)3.Solo吉他手4.Finish.(散场)...

智能家具 RecycleDot 的出现给传统家具厂商带来新的挑战

从可穿戴手环、手表到智能衣服,智能硬件逐步渗透到每一个领域。最近有一对父子MikeSandru和JohnSandru在自家的车库中设计了一款智能家具RecycleDot,给日渐萧条的家具行...

欧洲通信卫星公司 OneWeb 敦促印度DoT尽早批准提供卫星宽带服务

据telecomtalk2月17日报道,欧洲通信卫星公司EutelsatOneWeb近日敦促印度电信部(DoT)尽快批准其在印度部署双地球站网关的计划,以便连接其近地轨道(LEO)全球卫星星座,并...