基于 DM642 的网络视频服务器设计与实现.doc
《基于 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) 可选的熵编
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 DM642 的网络视频服务器设计与实现 网络 视频服务器 设计 实现
链接地址:https://www.31ppt.com/p-5197201.html