在线工博会

实时视频网络传输系统实现技术
西安电子科技大学 杨志伟 冯宗哲 郭宝龙
为节省流量,手机版未显示文章中的图片,请点击此处浏览网页版
摘要:实时视频网络传输技术的研究对开展视频应用具有重大意义。本文给出了一个实时视频网络传输系统的实现框图,并结合该原理框图,分析了实时视频网络传输系统的关键技术:视频采集、视频编码/解码和网络传输控制协议。其中特别强调了发送端的面向通信的视频编码、接收端的错误隐藏和差错恢复和提供视频应用服务质量保护(QoS)的网络传输控制协议,同时给出具体的实现方式。最后与嵌入式系统开发相结合,搭建了一个用户终端开发平台。
关键词:视频采集;视频通信;视频编码;嵌入式操作系统
Implementation of a Real-time Video Stream Transmission System
YANG Zhi-wei, FENG Zong-zhe, GUO Bao-long
(School of Mechanic Electronic Engineering, Xidian University, Xi'an 710071,China)
Abstract:Research on the implementation methods of real-time video stream transmission systems is important for video application. In this paper,the block diagram of a real-time video network transmission system is provided.On this base,a detailed analysis of the key technology is made,which indudes video capturing, encoding and decoding system, network transmission control protocol (TCP).Especially, the emphasis is laid on video encoding technology for communication at the sending terminal, error concealment and error resilience at the receiving terminal, network transmission control protocol for providing QoS(Quality of Service). And then the embedded video transmission platform is designed by integrating the embedded operating system for providing a powerful, flexible and robust real-time video application.
Keywords:Video capturing;Video communication;Video encoding;Embedded operating system
一、引言
视频技术和网络通信技术的发展使得视频流媒体应用日益广泛。在提供流媒体服务的系统中需要考虑两个主要问题:如何获取数字视频信息?怎样对获取的视频信息进行有效、可靠传输?针对信息的获取,随着各种高性能视频采集芯片的出现,如SAA7111、SAA7114、TVP5145等,使得视频采集系统的性能越来越稳定、可靠且能够提供更为满意的视频采集质量;对于后者的关键性发展,则体现为各种视频编码标准的制订(如H.26X[1,2]系列、JPEGE[3]和MPEG[4]系列)和网络传输技术的发展(包括网络交换技术和网络传输控制协议的发展)。
流媒体应用潜在地需要确定的收发同步、较宽的传输带宽、低的质量抖动、确知的传输延时、对误码不是非常敏感但对错误重传延时非常敏感等,而目前基于TCP/IP的数据传输网络在本质上是尽力而为的网络,是为传统数据业务提供传输服务的网络,传输带宽的波动是不可避免的,传输延时也是随机的[5]。因此如何在TCP/IP网络上公平地提供流媒体服务与传统数据业务是网络传输控制协议需要考虑的核心问题。
本文在分析实时视频网络传输系统的系统构成和传输协议的基础上,给出了实时视频网络传输系统的组成框图。结合该框图,分析了发送模块的3个核心子模块:视频采集子模块,主要功能在于完成模拟视频到数字视频的转换;视频编码子模块,对获取的原始数字视频进行编码,生成符合一定标准的,适应网络传输的面向通信的视频流;视频网络传输控制子模块,提供编码视频的实时、稳健的网络应用。相应地用接收模块是发送模块的逆。最后与嵌入式系统开发相结合,搭建了一个完整的实时视频传输系统用户终端开发平台。
二、实时视频网络传输系统实现框图
一个完整的实时视频网络传输系统包括视频采集、视频编码、传输控制协议处理、通信网络、视频解码。其功能为:在具有随机时延特性和丢包特性的基于TCP/IP的通信网络上提供视频应用服务。原理框图如图1所示。

(图片)

在图1所示的系统中,整个视频流的处理、传输流程如下:在视频发送端,对模拟视频进行采样,获得数字视频并进行视频编码,或者直接对输入的数字视频进行编码,生成适应于网络传输的面向网络通信的视频码流;根据反馈信息,估计网络的可用传输带宽,自适应地调整编码器的编码输出速率(包括信源码率的调整与信道码率的调整),使得视频码流能够满足当前网络传输可用带宽的限制;在接收端,对接收的视频流进行解码、重构视频信号、计算当前网络传输参数(如传输中的丢包率等)并发送反馈控制信息。
三、视频采集模块
视频采集模块主要由视频A/D、视频D/A、同步逻辑控制、视频处理、数据存储器构成。视频采集系统的基本构成框图如图2所示。

(图片)

A/D部分是将各种标准的模拟视频信号转换成数字视频信号,作为视频处理子单元的输入数据;逻辑产生单元通常选用FPGA或CPLD来完成各种同步逻辑控制,保证采集的实时性;对视频数据进行分析和处理,是整个采集模块的灵魂,但所需运算量常常较大,为了保证视频处理的实时性,常采用视频处理专用芯片、高速DSP、FPGA和DSP等来完成视频处理。
视频采样芯片可选用TI公司的数字视频解码器TVP5145,它能将NTSC、PAL、SECAM制式的模拟视频转换为数字复合视频。在本文所搭建的系统中,视频A/D部分采用Philips公司的可编程视频输入处理芯片SAA7111,该器件采用CMOS工艺,包含四路模拟视频输入通道,通过I2C总线,主机可以方便地对该器件进行初始化。同时SAA7111内部可以实现模拟通道选择并可对输入视频进行抗混叠滤波,并包含两个8位的A/D转换器。芯片还实现了自动钳位、自动增益控制(AGC)、时钟产生、多制式解码,另外对亮度、色度和饱和度也是在片内进行控制的。芯片的最大特点在于仅需一个24.576 MHz的晶振就可满足所有视频标准的应用,且在片内实现制式的自动检测,因此使得视频桌面系统、数字电视系统、视频电话、图像处理等的开发极为方便。
四、视频编码/解码模块
视频编码模块将数字视频信号压缩为满足一定视觉质量要求并且符合一定标准的数据流。在视频流的网络通信应用中,特别强调编码器所生成的视频流应该对网络传输带宽的随机波动具有自适应性。目前常采用可伸缩的视频编码器对视频信号进行编码。可伸缩的视频编码可以在时域、空域或正交变换域进行,基本思想是将码流分成基本层和增强层。其中基本层码流是必须传输的,包括提供最低质量等级保证的视频码率和视频序列的运动矢量;增加层是可选择传输的,并且是可以根据网络的传输条件进行任意截断的。在理想状况下,视频流的质量将随着接收增强层码流的增加而改善。
以TCP/IP为基础的计算机通信网络是一个提供尽力而为(Best-effort)服务的网络,无服务质量(QoS)保证,并且数据包传输的时延是随机的,网络丢包和网络传输带宽的波动是它固有的,因此为了能够提供稳定、平滑的流媒体服务,必须要在对网络传输带宽做出实时估计的前提下对视频编码器的编码速率进行调整(包括信源码流调整和信道码率调整)和进行有选择性的帧丢弃。适应于视频网络传输要求的编码端数据流处理的原理框图如图3所示。

(图片)

对照图3,反馈控制模块根据网络的反馈信息,调整编码器的编码速率(信源码率调整)和信道差错控制(信道码率调整)。调整的目标是在总输出码率受限的条件下(≤Rmax),使得信源码率与信道码率达到最佳分配,理论基础是率失真函数(RD函数)。非均匀纠错保护就是对基本层采用具有最大纠删能力的RS码(该码为极大最小距离可分码,即MDS码。用于纠删时,能够在n=k+r个数据包中任意接收到个数据包而恢复原始信息)或者具有很强信息保护能力的Turbo码进行信道编码,对增强层进行一般错误保护能力的编码。并且为了降低信道突发误码对视频码流的影响,常对视频数据包进行交织处理,以降低临近数据包同时发生误码的概率,便于接收端的错误隐藏和恢复。
用户终端解码模块的功能是编码模块的补。在视频流的网络传输中,丢包是不可避免的(特别是在无线网络传输环境中)。为了保证完全正确的数据包传输,可以采用重传的策略,但对于视频流应用,因为对时延的敏感更胜于对丢包的敏感,所以在接收端,不需要强调完全正确的数据包传输。在正确接收的数据包基础上如何提供最大满意程度的视频质量则为接收端解码模块的中心问题。该问题等价于如何利用接收数据包的冗余信息,提供更为满意的解码视频流输出。解决的办法就是在接收端的错误隐藏和误差恢复[6]。
错误隐藏的主要方法有:①基于空间相关性的错误隐藏:利用错误块在同一帧内相邻块的正确数据作内插来重构错误块的数据,以此来达到错误隐藏的目的。这种方能够对相似或者很多细节的区域进行很有效的恢复;②基于时间相关性的错误隐藏:这种方法是利用时间上相邻的帧具有很强的相关性来进行错误隐藏。
在上面所述的传统方法基础上,错误隐藏的一个新的发展是采用自适应的方法进行改进,即根据图像的特点和误码的类型来选择相应的恢复方法或者是这几种方法的结合。自适应的一种准则是恢复图像的峰值信噪比(PSNR)最大化,结合的方式有线性加权合并、最大信噪比合并等。同时随着MPEG-4基于对象编码技术的完善,可以采用基于主元分析的错误隐藏。具体实现为:在基于模型的图像编码上对每一个对象找出其特征模型,然后在特征模型上进行投影,得到投影系数;再由这些投影系数重建图像,作为恢复的最终结果。投影过程可以是循环的。
在本文所构建的传输用户终端平台上,编码模块采用Analog公司的实时视频压缩解压芯片ADV611和DSP芯片ADSP2185,用以完成视频的编码。ADV611是AD公司基于小波变换的视频编解码芯片ADV6XX系列的一款,该系列芯片还包括ADV601、ADV601LC、ADV612等,它的最大特性就是具有质量窗特性,可以使得每场视频图像中的一部分较其它的部分得到更高的图像解压效果。质量窗的原理是:用户定义一个任意尺度和位置的方框,在这个方框内部图像按照原来的压缩比进行压缩,对于方框外的图像按照用户设定的高压缩比值C进行压缩。如此则可以在解压缩时使得方框内的图像得到更大的对比度(相对于方框外的图像而言)。

(图片)

图4给出了ADV611的内部功能框图。
原始的数字视频经过I/O接口后,在质量窗的控制下进行小波变换和帧抽取、量化、游程编码、熵编码,产生压缩后的编码视频数据流,送入片内的FIFO。在FIFO中的数据达到主机在寄存器中的设定值时,发出中断请求,从主机接口发送数据流到主机。当ADV611用于解码时,数据流的方向与此相反。
从上面可以看出在编码或者解码的过程中各种压缩、解压参数是要依赖主机从主机接口传输给ADV611的。也就是说需要主机给ADV611提供各种编码参数。因此采用一片AD公司的ADSP2185完成对ADV611所需的各种参数的计算和传输,同时对ADV611编码后的裸压缩数据流进行网络传输编码,生成适应网络传输的视频流。
五、传输控制、协议处理模块
视频流传输与传统的TCP/IP网络的数据传输有明显的区别,主要表现在:传统的数据传输对传输延时和传输抖动没有严格的要求,但是有严格的差错控制和错误重传机制。而视频流要求传输具有实时性,对同步要求较高,并且对传输延时和抖动非常敏感,但在一定的情况下可以允许分组丢失,即可以接受一定程度的传输误码。并且流媒体服务需要满足广播和多播应用,同时应具有根据网络的实时可用传输带宽自适应地调整视频的传输质量的能力。
基于上述显著的不同网络应用要求,若要在Internet上面提供流媒体数据服务,则需要使用RTP/RTCP(Real-time Transport Protocol/Real-time Transport Control Protocol)协议。RTP协议在一对一或者一对多的传输情况下面工作,提供数据包传输过程中的时间信息和实现流数据同步;RTCP协议与RTP协议一起工作,提供网络传输中的流量控制和拥塞控制。
网络拥塞控制是传输控制协议提供流媒体服务时需要处理的核心问题。解决的基本思路是:估计网络的可用带宽,然后根据网络当前的吞吐量调整终端的数据输出速率,使得终端的码率能自适应地随着网络传输条件的变化而变化。估计网络可用带宽主要基于RTT(网络传输往返时间)和丢包率进行估计[7];对速率的调整,常采用AIMD(Additive Incresae,Multiplication Decrease)算法(加法增,乘法减)[8]算法进行拥塞控制。

(图片)

图5给出了视频网络传输中所使用的传输控制协议。
其中,对应用程序生成流媒体数据进行打包处理,并进行RTP协议数据封装;将RTP协议数据封装在UDP的消息字段,然后进行IP数据封装;经过传输网络完成数据包的发送。RTP协议数据包的包头部分含有数据包的载荷类型(Payload Type)、序列号(Sequence Number)、时间戳(Timestamp)和同步标识符(Synchronization Source Identifier)等。利用RTP包头的信息,采取适当缓存的工作方式,可以做到视频流的正确解码播放与回放。RTCP数据包对流媒体数据不进行封装,它只封装发送端或者接收端的发送、接收统计信息(比如传输延时、传输丢包率等)。利用RTCP的反馈信息,在发送端能够估计出网络的传输带宽,实时地根据网络的传输条件自适应地调整编码器的编码速率,使得在网络传输带宽波动的情况下可以提供稳定的视频流服务。
在需要提供流媒体的点对点或者一对多、多对多的通信业务时,还需要使用与具体的通信网络环境相对应的传输控制协议。如在ISDN环境下提供视频会议的H.320协议,在PSTN环境下提供视频会议的H.324协议,在局域网环境下提供视频会议的H.323。支持的速率有64k、192k、384k、768k等。
在我们搭建的视频网络传输平台上面,传输控制、协议处理模块的硬件平台以MPC860为核心,结合嵌入式的LINUX系统开发,在用户程序平面设计基于RTP/RTCP的应用程序,通过操作系统提供的传输层UDP协议,利用LINUX的Socket网络编程接口[9],实现实时视频的网络传输。
六、结论
随着视频编解码器在速度和性能上的不断提高,视频处理终端的速度将更快,体积将更小。日益增强的用户需要,使得视频的实时传输和网络服务不可避免。同时嵌入式系统基于计算机技术,更加强调体积、功耗、成本、便携化等等综合因素。所以将两者结合在一起而构成的视频传输系统用户终端将具有不可比拟的优越性。对于本文实现的系统而言,具体体现在:前端快速高效的图像处理(可以自适应地处理各种标准视频和高效的图像压缩)、灵活的编码方式选择(DSP中的编码程序可以灵活地更改)、强大的网络处理能力和系统控制能力(可以在MPC860上实现非常丰富的网络功能,比如从简单的点到点传输到复杂的视频会议,同时还可以方便灵活地扩展各种应用),因此完全有理由相信在嵌入式系统基础上搭建的视频传输系统平台具有广阔的市场前景。当然在以应用为主的开发过程中,同时也必然推动了对嵌入式操作系统本身的研究和视频处理算法以及芯片的研究开发。
在本文所构建的用户终端传输平台上,如何提供更为满意的网络流量控制和平滑的视频流传输应用服务将是以后进一步研究的方向。
参考文献
[1]ITU-T Recommendation H.263,Video Coding for Low Bit Rate Communication[S].
[2]Document JVT-C167,Joint Video Team (JVT) of ISO/IEC MPEG and ITU-T VCEG. Draft ITU-T Recommendation H.264(a.k.a"H.26L")[S].
[3]ISO/IEC JTC 1/SC 29/WG 1 N1803:2000,JPEG2000 requirements and profiles version6.3[S].
[4]ISO/IEC/JTC1/SC29/WG11 N2687,MPEG-4 Video Verification Model Version 13.0[S].
[5]Busse I, Deffner B,et al. Dynamic QoS control of multimedia applications based on RTP[J]. Computer Communications, 1996, 19(1):49~58.
[6]Wang Yao,Zhu Qin-Fan.Error control and concealment for video communication:A review[J].Proceedings of the IEEE,1998,86(5):974~997.
[7]Padhye J, Firoiu V, Towsley D, et al. Modeling TCP throughput: A simple model and its empirical validation[A].ACM SIGCOMM 98[C]. Vancouver, 1998.
[8]Chiu D, Jani R. Analysis of the increase and decrease algorithms for congestion avoidance in computer networks[J]. Computer Networks and ISDN Systems, 1989, 9(1):2~13.
[9]Pomerantz Ori.The Linux Kernel Module Programming Guide(Version 1.0)[Z].Linux Documentation Project,1999. 11/12/2005


电脑版 客户端 关于我们
佳工机电网 - 机电行业首选网站