基于 DM642 的网络视频服务器设计与实现.doc

上传人:sccc 文档编号:5197201 上传时间:2023-06-13 格式:DOC 页数:6 大小:292.50KB
返回 下载 相关 举报
基于 DM642 的网络视频服务器设计与实现.doc_第1页
第1页 / 共6页
基于 DM642 的网络视频服务器设计与实现.doc_第2页
第2页 / 共6页
基于 DM642 的网络视频服务器设计与实现.doc_第3页
第3页 / 共6页
基于 DM642 的网络视频服务器设计与实现.doc_第4页
第4页 / 共6页
基于 DM642 的网络视频服务器设计与实现.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《基于 DM642 的网络视频服务器设计与实现.doc》由会员分享,可在线阅读,更多相关《基于 DM642 的网络视频服务器设计与实现.doc(6页珍藏版)》请在三一办公上搜索。

1、精品论文基于 DM642 的网络视频服务器设计与实现李维勇,王库,傅颖,孙庆 中国农业大学信息与电气工程学院电子信息系,北京 (100083) E-mail:christopherlee1984摘要:本文提出了一种基于 DM642 的网络视频服务器设计。系统以 DM642 为核心实现 了视频数据的采集、本地显示、H.264 编码和网络传输。介绍了系统的硬件结构和软件设计,重点给出了各个模块的程序设计。实验结果表明,该系统能够满足网络视频服务器实时性和 稳定性的要求,具有良好的推广应用价值。关键词:视频监控;DM642;H.264;DSP/BIOS;NDK中图分类号:TN919.81. 引 言随

2、着社会的进步,人们生活水平的提高,我国视频监控市场得到了快速发展。目前,传 统的模拟监控市场正逐步萎缩,而数字监控逐步成为主流,网络化、个人化和智能化将是中 国视频监控市场重要的发展趋势。与模拟和数字监控技术相比,网络视频监控利用 TCP/IP 网络,实现了远程监控和低成本扩展监控范围,大大扩展了视频监控的应用场景1。针对数字图像数据量大和当前网络带宽不够的情况,系统采用了 H.264 压缩算法。H.264 作为最新的视频压缩标准,不仅在相同图像质量下比 H.263 和 MPEG-4 节约 50%的码率, 而且对网络传输具有更好的支持功能,另外还有较强的抗误码性。这些特点使得 H.264 非常

3、 适合于视频监控方面的应用。本文详述了一种基于 DM642 的网络视频服务器的设计,给出了视频采集、本地回显、 压缩和网络传输的软件实现。2. 系统硬件设计DM642 是 TI 公司针对数字媒体应用推出的一款 32 位定点 DSP 芯片。其工作主频高达720MHz,8 个并行处理单元,处理性能可达 5760MIPS。采用二级缓存结构 L1P、L1D 和 L2;具有 64 个独立的 EDMA 通道,能够实现 L2 和其他外设之间数据的高速传输;具有 3 个可配置为输入或输出的视频端口,支持多种视频标准;具有符合 IEEE 802.3 规范的10/100M 以太网 MAC 和媒体独立接口(MII)

4、,可直接与 PHY 器件连接。此外还拥有 HPI、PCI、McBSP、I2C 总线模块以及 GPIO 等外设接口2。 整个系统的硬件部分主要由以下几个模块组成:视频采集模块、视频显示模块、视频处理模块和网络传输模块。硬件电路的设计框图如图 1 所示。图 1 硬件电路设计框图- 6 -3. 系统软件设计3.1 软件整体架构系统软件架构采用了TI的RF5参考框架。在本系统中,视频数据的压缩采用H.264压缩 算法。网络传输采用TI公司推出的NDK(Network Developers Kit)网络开发包。在操作系 统方面,采用了基于DSP/BIOS的实时操作系统。首先,在DSP/BIOS配置工具中

5、静态建立4个任务线程,包括视频输入、视频输出、视频 编码和网络初始化线程。其中网络初始化线程优先级设为5,其余三个线程优先级设为3。在 网络初始化线程中动态建立网络发送线程,网络发送线程优先级设为OS_TASKPRINORM。main函数主要完成整个程序的初始化工作,如片上L2缓存的分配,目标板的初始化, RF5模块的初始化,视频采集和显示的初始化与启动等,然后DM642把程序的控制权交给 DSP/BIOS线程调度器(Scheduler),由调度器按线程的优先级来调度执行。系统线程关系图如图2所示,线程之间通过RF5中的SCOM模块进行同步通信。图2 系统线程关系图3.2 视频采集和显示驱动程

6、序视频驱动程序的编写采用了FVID视频I/O开发包。它是DM642芯片内核DSP/BIOS提供 的进行视频数据输入输出的函数库,它包括了处于Mini-Driver层次的,具体操作视频编解码 芯片的VPORT接口驱动程序以及供应用程序调用的FVID API函数3。系统的视频驱动模型 如图3所示。图3 系统的视频驱动模型FVID 的核心函数如下:FVID_alloc驱动程序将帧缓冲区交给应用程序并进行相应处理FVID_free应用程序将帧缓冲区交还给驱动程序FVID_exchange应用程序与驱动程序交换帧缓冲区,相当于 FVID_alloc 和 FVID_free函数的组合FVID 的使用主要按

7、照以下四个步骤进行。在视频采集部分,首先,FVID 初始化 3 个“自 己的”视频帧缓冲区:capChan=FVID_create (/VP2BCAPTURE/B/2, IOM_INPUT,&status, (Ptr)&DM642_vCapParamsChan, NULL);其中,DM642_vCapParamsChan 包含了视频采集的初始化参数,如图像大小、同步方式等。第二,对采集芯片 TVP5150 进行配置:FVID_control ( capChan, VPORT_CMD_EDC_BASE+EDC_CONFIG, (Ptr)&DM642_vCapParamsTVP5150);其中,D

8、M642_vCapParamsTVP5150 包含了 TVP5150 的配置参数,如视频模式(PAL或 NTSC)、输入方式(复合视频或超级视频)等。第三,应用程序调用 FVID_alloc()函数从驱动程序获得视频帧缓冲区 1,代码如下:FVID_alloc(capChan, &capFrameBuf);第四,应用程序调用 FVID_exchange()来与驱动程序的视频帧缓冲区 2 进行交换。若视 频帧 2 未就绪,则应用程序调用 FVID_exchange()来与驱动程序的视频帧缓冲区 3 进行交换。 代码如下:FVID_exchange(capChan, &capFrameBuf);视

9、频显示部分的驱动程序编写与采集部分类似,在这里就不详述了。3.3 视频处理模块该模块的主要作用是把采集到的视频数据进行 H.264 编码,然后输出码流。H.264 的编 码过程如图 4 所示。其过程如下:(1) 将图像分成子图像块,以子图像块作为编码单元;(2) 当采用帧内编码时,对图像快进行变换,量化和熵编码(或者是变长编码),消除图像空间的冗余。H.264在这部分增加了帧内预测,大大提高了压缩率;(3) 当采用帧间编码时,对帧间图像采用运动估计和补偿的方法,只对图像序列中的变 化部分编码,从而去除时间冗余。Dn XT QnuF DnT -1Q -1图 4 H.264 编码算法流程图目前常见

10、的 H.264 开源软件编码器有 JM、X264 和 T264 三种。在比较了这三种编码器 特点后,最后选择了 X264 来实现 H.264 的编码功能。X264采用了H.264标准的大部分核心技术,主要有4:(1) 帧内预测和帧间预测的模式灵活多变,例如帧内亮度预测可采用44或1616模式, 其中44有9种子模式,1616有4种子模式;(2) 亮度和色度的运动矢量的精度可分别达到1/4和1/8像素;(3) 对图像或预测残差采用了44整数离散余弦变换,避免了以往标准中使用的通用88离散余弦变换、逆变换经常出现的失配问题;(4) 自适应去块滤波器去除了块效应,提高图像主观质量;(5) 可选的熵编

11、码模式:基于上下文的二进制算术编码CABAC和基于上下文的自适应 可变长编码CAVLC;(6) 基于Lagrangian优化算法的码率控制模型,编码性能相比以往的标准有重大提高。X264编码器的核心代码如下: x264_param_default(¶m);/设置默认参数 x264_encoder_open(¶m);/初始化x264_t中各个结构体和变量 x264_encoder_encode(h, &nal, &i_nal, &pic, &pic_out);/编码核心函数 x264_nal_encode(data, &i_data, 1, &nali);/NAL单元打包3.4

12、网络传输模块在本系统中,采用 TI 公司推出的 NDK(Network Developers Kit)开发包实现网络传输的 功能。NDK 采用紧凑的设计方法,仅用 200250KB 程序空间和 95KB 数据空间即可支持 常规的 TCP/IP 服务,包括应用层的 telnet,DHCP,HTTP 等。TCP/IP 协议栈流程图如图 5 所示,其中的箭头表示各模块之间的调用关系。图 5 TCP/IP 协议栈流程图组成NDK的五个功能模块对应的函数库分别为OS.LIB、HAL.LIB、STACK.LIB、 NETOOL.LIB和NETCTRL.LIB。在TMS320C6000系列DSP上可以按照以

13、下步骤通过NDK完 成网络环境的设置及网络应用程序的开发5:(1) 添加NDK提供的网络功能库以及对应的头文件,除了图5所示的5个库,还需要 hal_eth_dm642.1ib、hal_timer.lib、hal_userled.lib和hal_ser_ stub.lib,这都是以太网的硬件抽 象库,是必须的。(2) CMD文件中必须添加网络堆栈需要的三个段:PACKETMEM,MMBUFFER和OBJMEM。(3) 在DSP/BIOS静态创建PRD对象,在PRD对象中必须调用llTimerTick()函数,周期配 置为100ms。(4) 在DSP/BIOS静态创建HOOK对象,在HOOK对象

14、中必须调用NDK_hookInit()和NDK_hookCreate()函数。(5) 在工程编译选项(build options)中包含头文件和库文件路径,默认的路径为C:tic6000ndkinc和C:tic6000NDKlibc6400。(6) 在“网络初始化线程”中进行用户需要的一些网络参数的设定,比如网络主机名、IP 地址和子网掩码、默认路由器IP地址、需要执行的服务(如HTTP,DHCP,DNS等)、域名服 务器的IP地址以及协议栈的参数(IP路由、协议栈缓冲区大小等)。(7) 完成以上步骤后,通过DSP/BIOS静态或使用API函数动态地创建需要的网络任务, 在其中通过socket

15、编程完成系统网络功能。根据系统实时性的要求,选用UDP协议来传输编码后的视频数据。其主要实现代码如下:fdOpenSession( TaskSelf() );/给任务分配文件环境,这一步是进行 NDK socket 编程 必须的sudp = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);/创建 socketif ( bind( sudp, (PSA) &sin1, sizeof(sin1) ) 0 )/绑定 socket goto leave;for(;)/接受从处理线程发送来的消息,其中包括处理好的数据缓冲区 dataSCOM_getMsg(fromPro

16、ctoNet, data);/向 sin2 发送数据,每次发送 1024 字节,若大于 1024 字节,可分多次发送sendto ( sudp, data, 1024, 0, (PSA) &sin2, sizeof( sin2 ) ); TaskSleep(2);/线程挂起 2ms,可有效防止丢包 SCOM_putMsg(fromNettoIn, NULL);/发送消息给视频采集4. 实验结果在局域网内实验,对 TVP5150 采集的视频数据(帧率为 25fps,CIF 格式)进行测试, 实验结果如表 1 所示。由实验结果可知,基于 DM642 的网络视频服务器对视频图像的压缩编码效果良好,通

17、 过上位机客户端解码恢复的视频图像清晰、流畅,没有抖动现象。这表明本系统的设计思想 是正确的,硬件设计和软件优化是有成效的。目前正在进行软件部分的继续优化,以得到更 好的结果。表 1 实验结果帧率图像大小传输延迟压缩比编码后的码率25fps3522881s 以内19.74156.8Kbit/s5. 结束语本文介绍了一种基于 DM642 的网络视频服务器的设计,并在此基础上实现了 CIF 格式 的网络视频服务器功能,满足实时视频监控的要求。系统的特点是采用了专门针对多媒体应 用的 DM642 和目前最新的编码压缩标准 H.264。通过对系统的扩展,还能实现云台控制和 红外测温等功能。本研究内容具

18、有显著的工程应用意义和良好的发展前景。参考文献1 管黛.中国视频监控市场:模拟萎缩 数字扩张EB/OL.=6697&RecID=0,2008.06.24.2 Texas Instruments,TMS320DM642 Video/Imaging Fixed-Point Digital Signal ProcessorZ.2007.1. 3 Texas Instruments.The TMS320DM642 Video Port Mini-DriverZ.2003.8.4 毕厚杰.新一代视频压缩编码标准H.264/AVCM.北京:人民邮电出版社,2005.5.5 Texas Instrument

19、s.TMS320C6000 TCP/IP Network Developers KitZ.2004.7.6 李方慧,王 飞,何佩琨.TMS320C6000系列DSPs的原理与应用(第2版)M.北京:电子工业出版社,2005.6.7 谭超,王库,傅颖.基于 DM642 的 X264 开源代码实现的研究J.微计算机信息,2007,第 23 卷第 12-2 期.Design and implementation of network video server based on DM642Li Weiyong, Wang Ku, Fu Ying, Sun QingDept. of Electronic

20、s and Information, College of Information and Electrical Engineering, ChinaAgricultural University, Beijing (100083)AbstractA design of network video server based on DM642 is proposed in this paper.DM642 is utilized as thekernel to implement the video capture, local display, compression and network

21、transferring. The hardware structure and the software design of the system are presented. The programming of each module is described in detail. The experimental results show that the system can meet the requirements of real time and stability of network video server. There is a powerful demonstration for its future application.Key words: video surveillance; DM642; H.264; DSP/BIOS; NDK

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号