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

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

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

摘 要: 目前使用的图像传感器主要有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.

相关推荐

Chrome OS 41 用 Freon 取代 X11_chrome os atom

在刚发布的ChromeOS41里,除了常规的Wi-Fi稳定性提升(几乎所有系统的changelog里都会包含这一项)、访客模式壁纸等之外,还存在底层改变。这一更新中Google移除...

苹果iPad Pro再曝光 有望今年六月发布

自进入2015年以后,有关大屏iPad的消息便一直不绝于耳,之前就有不少媒体猜想这款全新的平板电脑将会在三月发布,不过可惜的是我么只在那次发布会上看到了MacBookPro。近日@Ubuntu团队便...

雷卯针对香橙派Orange Pi 5 Max开发板防雷防静电方案

一、应用场景高端平板、边缘计算、人工智能、云计算、AR/VR、智能安防、智能家居、Linux桌面计算机、Linux网络服务器、Android平板、Android游戏机...

Ubuntu Server无法更新问题解决_ubuntu server not found

上周老家的一台运行UbuntuServer的盒子无法连接上了,中秋这两天回来打开,顺手更新一下发现更新报错。提示`E:Releasefileforhttps://mirrors.aliyun...

虚幻引擎5正式版发布:古墓丽影&巫师新作采用、新一代实时渲染

机器之心报道编辑:杜伟、陈萍虚幻引擎5的目标是「助力各种规模的团队在视觉领域和互动领域挑战极限,施展无限潜能」。...

AMD Milan-X双路霄龙7773X平台基准测试曝光 CPU缓存总量超1.5GB

OpenBenchmarking基准测试数据库刚刚曝光了AMDMilan-X双路霄龙7773X平台的跑分成绩,虽然很快就被撤下,但我们还是知晓了高达1.6GB的总CPU缓存。早些时...

ROS机器人建模_ros机器人硬件搭建

...

全网最新的Dify(1.7.2)私有化离线部署教程(ARM架构)

Hello,大家好!近期工作中有涉及到Dify私有化离线部署,特别是针对于一些国产设备。因此特别整理了该教程,实测有效!有需要的小伙伴可以参考下!本文主要针对Dify1.7.2最新版本+国产操作系...

在ubuntu下新建asp.net core项目_创建ubuntu

本文一步步讲述在ubuntu下用visualstudiocode创建asp.netcore项目的过程。step1:环境操作系统:virtualbox下安装的lubuntu。请不要开启“硬件...

在晶晨A311D2处理器上进行Linux硬件视频编码
在晶晨A311D2处理器上进行Linux硬件视频编码

在KhadasVIM4AmogicA311D2SBC上,我更多的时间是在使用Ubuntu22.04。它的总体性能还不错,只不过缺少3D图形加速和硬件视...

2025-08-26 17:22 haoteby

Nacos3.0重磅来袭!全面拥抱AI,单机及集群模式安装详细教程!

之前和大家分享过JDK17的多版本管理及详细安装过程,然后在项目升级完jdk17后又发现之前的注册和配置中心nacos又用不了,原因是之前的nacos1.3版本的,版本太老了,已经无法适配当前新的JD...

电影质量级渲染来了!虚幻引擎5.3正式发布:已开放下载

快科技9月8日消息,日前,Unrealengine正式发布了虚幻引擎5.3,带来了大量全方位的改进。...

2025如何选购办公电脑?极摩客mini主机英特尔系列选购指南

当下,迷你主机的性能越来越强,品类也越来越多。但是CPU是不变的,基本都是AMD和英特尔的。有一个小伙伴在评论区提问,我应该如何在众多机器中选购一台符合自己的迷你主机呢?那今天我们优先把我们的系列,分...

ubuntu 20.04+RTX4060 Ti+CUDA 11.7+cudnn

ububtu添加国内源sudocp/etc/apt/sources.list/etc/apt/sources.list.backupsudovim/etc/apt/sources.lis...

Linux Mint 18将重新基于Ubuntu 16.04 带来更好硬件支持

项目负责人ClementLefebvre在本月6日披露了关于LinuxMint18“Sarah”操作系统的大量信息,包括带来全新扁平化体验的Mint-Y主题。而现在,这款将于年底之前上线的操作...