APP下载

DVR 系统中视频采集压缩的软件设计

2010-01-08赵传跃

关键词:存储模块嵌入式芯片

赵传跃,彭 宏

(浙江工业大学信息学院,浙江杭州310023)

DVR 系统中视频采集压缩的软件设计

赵传跃,彭 宏

(浙江工业大学信息学院,浙江杭州310023)

视频采集和压缩是数字录像机系统的核心内容,其效果直接影响整个系统的性能。该文介绍了基于GM8180+TW 2835的Linux嵌入式DVR系统的硬件框架,提出了切实可行的视频采集压缩方案。对嵌入式DVR的开发有一定的参考价值。

嵌入式;数字录像机;视频采集;视频压缩

0 引 言

DVR(数字录像机,DigitalVideo Record)监控管理系统集先进的计算机网络技术、多媒体技术和通信技术于一体,不仅能够完全实现传统模拟设备的功能,还大大增强了系统的稳定性和扩展能力,提高了图像显示的清晰度和数据安全性,更为重要的是,它利用当前流行的H.264压缩技术可以将大量的录像数据保存,为远程网络浏览、录像查询回放提供了方便[1]。本文介绍了嵌入式DVR系统的硬件框架,视频数据的格式和流向。提出可行的视频采集压缩软件方案,实际测试的结果证明,本系统的采集压缩效果很好,回放出来的图像画面清晰。

1 DVR系统的硬件框架

1.1 硬件框架

DVR系统硬件主要由视频采集模块、视频处理模块和存储模块三部分组成,如图1所示。

图1 DVR系统的硬件框架图

模拟视频信号从摄像头采集进来,经过视频采集模块的处理后以标准BT.656格式的数字信号输入到视频处理模块中。视频处理模块捕捉到一帧的视频数据后,通过内部的压缩模块将视频帧压缩成一帧H.264格式的视频帧,然后将该帧数据输入到存储模块,由存储模块将数据存放到相应位置,这样就完成了一帧数据的处理过程。

视频采集模块:主要的功能是接收4路摄像头的模拟视频数据,经过模数转换后形成4路D1大小的视频流,然后通过特殊的算法处理,将4路D1大小的视频数据合成为1路D1大小的视频数据,即一个D1的视频画面中呈现出4个CIF大小的视频画面。其中关键的视频采集芯片为TW2835。

视频处理模块:主要的功能是能同时捕捉两路D1大小的视频流,按照H.264标准压缩不同格式大小的视频数据,并向存储模块写入数据。其中关键的视频处理芯片是GM 8180。存储模块:主要的功能是将视频文件保存到大容量硬盘中,建立有效的文件列表,保证能随时找到需要回放的视频文件。

1.2 DVR系统中主要芯片

DVR系统主要由视频采集模块和视频处理模块构成。该系统的视频采集模块选择了Techwell公司的TW 2835芯片,而视频处理模块选择了台湾的FARADAY技术公司设计的GM8180芯片,其中CPU就集成在该模块中。TW2835芯片是Techwell公司近年来新推出的一款4信道视频和音频控制器。它包括4个高质量的NTSC/PAL视频解码器、4个音频模拟数字转换器、1个音频复用器、双色显示控制器、双视频解码器以及一个先进的OSD[1]。主要实现了将4路视频输入合成为1路视频输出的功能,能够满足DVR在视频采集端的要求。GM 8180是高度集成的编解码系统单芯片,支持H.264、MPEG-4以及JPEG编解码,可以应用于视频分析、对象侦测、目标应用锁定、网络串流媒体以及网络监控等[2]。GM 8180集成各种存储方式接口和图形输出接口。最重要的亮点是该系统支持高清影像传输接口,集成H.264硬件编解码,在高分辨率下的H.264压缩效能可以达到30帧。H.264压缩比MEPG-4节省了1/3的频宽,能够降低频宽以及在储存上所需花费的成本[3]。CPU采用的是FA626,FA626是GM 8180的控制核心,是智原科技新近推出的ARM 9芯片。FA626主要是针对下一代网络、对媒体和网络应用所设计,采用0.13μm工艺,时钟速度可达到533MHz,执行速度为650MIPS,包含4向32KB的指令快取以及数据快取。

CPU和各模块都挂载在AHB总线上,通过AHB控制器控制,如图2所示:

图2 CPU和各模块连接图

2 视频采集压缩的软件设计

2.1 软件开发环境

Linux操作系统作为一种多任务、稳定可靠、内核可裁剪的系统可以运行在多种硬件平台上,是开发嵌入式软硬件产品的优秀平台。裁剪和优化后的Linux体积更小,性能更加稳定,而且源代码本身是免费的。这大大减少了开发商的成本,使其更具市场竞争力。同时,由于遍布全球的众多Linux爱好者又能给予Linux开发者强大的技术支持,所以众多商家纷纷转向嵌入式Linux的开发。本系统也选择了嵌入式linux操作系统,内核版本采用的是Linux2.6.14。

2.2 视频采集压缩的软件设计

2.2.1 对视频数据处理的要求和思路

本系统要实现的功能有:(1)实现4路25帧/s的采集用于本地存储,其中3路CIF、1路D1;(2)实现1路6帧/s的采集用于网络传输,格式为QCIF。本系统所用的视频采集芯片TW2835支持4路模拟输入和4路数字输入,视频数据处理芯片GM8180采用硬件压缩,最大能同时支持2路D1格式的压缩,在数据处理能力等方面完全可以满足系统的需求。

2.2.2 主程序流程

首先要初始化硬件,主要是初始化视频采集芯片TW2835,按需求设置寄存器。创建3个线程,分别用于一路D1、三路CIF、一路QCIF图像的采集和压缩。其中D1和CIF数据用于本地存储,压缩完写入文件存储,QCIF数据用于网络传输,压缩后放到共享内存中,用于网络发送进程来读取视频数据并发送到客户端。主程序流程如图3所示:

图3 程序流程框图

2.2.3 视频采集和压缩流程

视频采集和压缩线程是本系统软件的核心部分,其流程如图4所示:

图4 视频采集和压缩线程的流程图

(1)视频采集

视频采集主要包括3部分:设备初始化、内存映射、视频采集。

设备初始化:首先打开视频设备,GM8180能同时处理两路视频数据,所以有两个设备文件分别是/dev/video1和/dev/video2。采用系统调用函数fd=open(”/dev/video*”,O_RDWR),fd是设备打开后返回的文件描述符(打开失败则返回-1),以后的ioctl函数就是使用这个文件描述符对视频设备进行相应的操作的。接着调用ioctl(fd,VIDIOCGCAP,&capability)函数读取有关摄像头的信息[4]。此函数成功返回后,系统将这些信息从内核空间拷贝到用户程序的capability各成员变量中。应用程序能了解摄像头的具体参数并允许进行修改。内存映射:首先调用ioctl(i_video_fd,VIDIOCGMBUF,&gb_buffers)函数获取摄像头存储缓冲区的帧信息[4]。接着调用mmap()函数把视频设备对应的设备文件映射到内存区,该映射内容可读写并可在进程间共享。视频采集:首先调用ioctl(i_video_fd,VIDIOCMCAPTURE,&mmap)来捕获视频帧,接着调用ioctl(i_Video_fd,VIDIOCSYNC,&frame)函数来判断该帧图像是否截取完毕。之后就可以对原始的图像数据进行处理了。

(2)视频压缩

初始化编码模块:H.264压缩模块在设备中的设备文件名为/dev/f264enc。首先打开H.264压缩设备,将这些参数写入到ENC_DEV格式的结构体中,然后调用驱动命令FAVC_IOCTL_ENCODE_INIT初始化H.264压缩设备[5]。开始压缩:合理初始化压缩模块的各个参数之后,直接调用驱动命令FAVC_IOCTL_ENCODE_FRAME进行压缩。

3 结束语

回放压缩后图像的效果如图5所示,测试结果证明,上述的采集和压缩程序实现了一路D1、三路CIF和一路QCIF格式的数据的采集和压缩,并且效果良好。

图5 效果图

[1]付英华,傅尔胜.DVR音视频压缩卡及其Linux驱动[J].陕西科技大学学报,2005,10(2):25-27.

[2]吴才章.基于ARM的图像采集与显示系统设计[J].自动化技术与应用,2006,29(3):118-122.

[3]张杰.视频编码新标准H.264/AVC中的重要技术[J].现代电子技术,2004,8(6):104-106.

[4]Techwell.Techwell TW2835(4 Channel Video and Audio Controller For Secyrity Application)datesheet[EB/CD].http://www.techwell.com:Techwell,Inc,2004-01-03.

[5]刘伟平,毛玉良,潘纯,等.嵌入式Linux下驱动程序的开发[J].航空精密制造技术,2003,39(3):23-25.

Software Design and Implementation of Video Capture and Compression in Digital Video Record ZHAO Chuan-yue,PENG Hong

(Collegeof Communication Engineering,Zhejiang University of Technology,Hangzhou Zhejiang310023,China)

The coreof digitalvideo record system is video capture and compression thatwould affect thesystem.In this paper,we demonstrate a feasiblemethod for video capture and compression,basing on theplatform ofGM8180 and TW2835.Have some reference value on the development of embedded DVR.

embedded;DVR;video capture;video compression

TN401

A

1001-9146(2010)05-0145-04

2010-07-20

赵传跃(1984-),男,安徽宿州人,在读研究生,宽带接入网.

猜你喜欢

存储模块嵌入式芯片
全国产化NVMe存储模块方案设计实现
芯片会议
Burden of Cirrhosis and Other Chronic Liver Diseases Caused by Specific Etiologies in China, 1990−2016:Findings from the Global Burden of Disease Study 2016
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
数据采集系统在环保工程中的应用研究
多通道采样芯片ADS8556在光伏并网中的应用
Altera加入嵌入式视觉联盟
倍福 CX8091嵌入式控制器
74HC164芯片的应用