随着现代网络和多媒体业务的发展,人们已经不再满足于在IP网络上进行传统的网页浏览、视频下载、邮件发送等,开始关注并利用IP网络提供交互式电视业务,即网络电视(IPTV)业务。
IPTV这类视频流业务具有信息量大,实时性强等特点。由于传统的IP网络更多考虑的是不保证实时传输的数据通信,而如今要在IP网络上进行实时多媒体业务的传输,面临着许多问题[1]。
目前的解决方案主要从网络和终端两方面进行研究[2]。根本的解决方案是从网络本身入手,但基于网络的解决策略对网络的体系结构有较为严格的要求,在实际应用中存在较多困难。而以终端为中心的实现方案通过在接收终端以及信源编码中加入一定的控制策略如拥塞控制策略、差错控制策略,可以较好地改善图像质量。这种不改变IP网络结构体系,针对IP网络中拥塞产生码流数据包丢包或者传输错误造成的图像质量下降问题,选择基于应用层的差错控制技术来提高IPTV业务的服务质量(QoS)成为研究热点。应用层差错控制技术主要分为编码端的前向纠错编码、解码端的后处理差错隐藏、编码端和解码端的交互差错控制等[3]。
1 应用层差错控制技术
1.1 编码端的前向纠错编码
编码端的前向纠错编码是指在进行信源编码及信道编码时,采取某种措施使编码码流具备一定的差错复原能力,即纠错编码。主要有分层编码(LC)、多描述编码(MDC)以及结合两者的分层多描述或多描述分层编码策略等。
(1)分层编码
分层编码(LC)是指将视频信息编码成一个基本层(BL)和一个或多个增强层(EL)。其中,BL提供较低但是可接受的视频质量,每个EL在BL的基础上逐渐提高视频质量。在BL中包含了视频信息中最重要的内容,如运动矢量信息等,一旦BL信息丢失,那么EL信息就是无效的。分层编码使得具有不同带宽或解码能力的接收者能访问同一个视频源,获得不同的服务质量。分层编码的可分级形式很多,通常包括空域可分级、时域可分级、信噪比可分级以及这些分级选项的组合等。
(2)多描述编码
多描述编码(MDC)是解决多媒体信息实时传输问题的一种有效方法。在这种系统中,一个原始视频序列将被编码成两个或者更多的数据流(我们将这样的数据流称为对视频源的描述),且每一个数据流都可以被独立地解码出来。多描述编码有几个主要的属性:(a)多描述编码产生的每一个描述都是独立的,都可以重构一定质量的视频。(b)每个描述符之间都存在着互补的信息,收到的描述符数量越多,重构的视频质量越高。(c)多描述适合于丢包的环境,例如网络传输,因为对同一视频的多个描述被封装在不同的数据包里,这样当某些数据包丢失时,解码端就可以根据己接收到的数据包来获得一个较差质量的图像,而当接收到的数据包越多时,解码端的重建图像质量越好。多描述编码实现的方法很多,主要多描述量化、多描述变换编码、多描述运动补偿以及多描述亚采样等。
(3)分层多描述或多描述分层编码
基于分层编码与多描述编码的特点,可以将多描述编码与分层编码技术相结合,发挥两者各自的优势,在保证系统性能的前提下,实现对多终端用户的实时传输。根据结合方式的不同可分为具有多描述性的可分级编码和具有可分级性的多描述编码两种。
1.2 解码端的后处理差错隐藏
在编码端,通过利用码流中的冗余信息来对抗差错。而解码端的后处理差错隐藏是一种可以独立于编码的处理技术,它本身并不改变由于网络传输而引起的差错,而是充分利用已接收到的视频序列在时域和空域的相关性,采取某些后处理技术,尽可能掩盖出现的差错,使图像的视觉效果接近于不发生差错时的效果。换句话说,差错隐藏技术不对编码器作任何要求,不需要增加编码冗余度,即不增加通信的传输负担,这种方法属于视频信息的后处理方法,原则上对任何图像编解码格式和标准都适用,因此其应用范围很广,是一类较为有效的提高视频质量方法。差错隐藏主要分为空域差错隐藏、无运动补偿的时域差错隐藏和基于运动补偿的时域差错隐藏等三大类。
1.3 编码端和解码端的交互差错控制
除了在编码端的前向纠错编码和解码端的后处理差错隐藏外,还可以利用解码端的反馈信息来控制编码,以进行差错控制。另一类交互手段就是普通数据传输中常用的重传机制。
1.4 存在的问题
上述几种差错控制技术,确实可以在一定程度上提高视频传输的鲁棒性。但同时也存在着一些明显的缺点,降低了它们的实用价值。
在第一类编码端的前向纠错编码方法中,都是通过增加冗余信息来实现的。由于信道的时变特性,在进行差错控制时,都是依据信道的最坏情形来添加冗余信息,缺乏灵活性,浪费有限的带宽资源。而且添加的冗余信息改变了原来的码流结构,不利于编解码的进行。
第二类解码端的后处理差错隐藏技术既不会降低编码效率,又不会破坏码流结构和兼容性。但是它的差错控制能力有限,只能针对误码率较低的情况,一旦信道误码率较高时,图像受损的部分过多,仅仅靠后处理的方法很难获取可接受的图象质量。
第三类编码端和解码端的交互差错控制需要通过反馈信息来实现,如果是少数丢包情况出现的话,此方法比较适用;但出现丢包较多时,只可能导致网络状况的进一步恶化。
IPTV业务中规定的视频质量要求至少达到广播电视的视频质量[4],从分辨率来讲,标清电视(SDTV)的分辨率为720×576,而高清电视(HDTV)的分辨率可以为1 920×1 080。针对这样的视频质量要求,将分层编码或者多描述编码技术应用于IPTV中,实际上是以降低视频质量为代价来达到可以观看的效果,对于要实现真正IPTV的视频质量是不可能的。而且多描述编码在低丢包率情况下的效果反而不如单描述编码。换句话说,通过分层编码或者多描述编码技术无法从根本上解决IPTV中的问题。但对于开展与IPTV业务相似的其他业务时,这些技术是可利用的。比如采用P2P技术的Joost、PPlive、Sopcast等(因为它们对视频质量没有具体要求)。而差错隐藏作为一种后处理技术,抵抗差错的能力有限,但在解码端的后处理差错隐藏中提到的特点决定了可以将此技术应用于IPTV业务中。编解码端的交互差错控制在IPTV业务中被广泛用到,通过重传来解决小部分的丢包问题是切实可行的。总的来说,这些技术无法从根本上保障IPTV业务的顺利开展。
2 应用层前向纠错
基于以上这些缺点,使用这几种差错控制技术并不能保证IPTV业务的视频传输质量,但如果在IP网络上采用端到端的应用层可靠性解决方案,则能很好的提供IPTV业务[5]。事实上应用层前向纠错(AL-FEC)技术就提供了这样一种简单而强有力的方法来解决网络丢包问题,从而保证了端到端的可靠性。与链路层和物理层FEC(主要是实现纠错功能)相比,AL-FEC透明地工作在IP层之上的应用层,它应用在诸如IPTV流之类的特殊的端到端应用流。一种典型的应用情况是,AL-FEC发送端在IPTV服务器处对所有或选择的一组IPTV流进行处理,然后相应的AL-FEC接收端在终端设备处进行处理。AL-FEC的价值在于IPTV流在即使有丢包的情况下,终端用户的观看质量可以和原始视频流一样高。IPTV中的AL-FEC大致可分为3种[6]:Raptor编码、Pro-MPEG CoP3编码以及FEC与重传相结合。
AL-FEC的基本思想在于纠删码的使用。在AL-FEC发送端,对IPTV流进行分割,分成大小相同的数据包,通过纠删码编码器对这些数据包编码产生修复数据包,将修复数据包和原始数据包一同发往接收端。在AL-FEC接收端,纠删码译码器通过修复数据包和原始数据包来恢复所有的原始IPTV流。理想的情况是:接收端只要接收到N 个编码数据包中的任意K 个数据包就能完全恢复所有数据,整个过程如图1所示。
2.1 Raptor编码
从整个AL-FEC机制来看,操作比较简单,不需要对原有的网络协议栈进行大的改动。但是纠删码的种类很多,选择何种纠删码成为AL-FEC成败的一个关键因素。喷泉码作为一类新兴的具有创新性的纠删码可被用于任何概率的删除信道。第一种有效和实用的喷泉码即LT码。并在此基础上,扩展LT码后形成了Raptor码。Raptor码拥有很低的接收开销和系统码等特性。将Raptor码应用于IPTV业务中成为一种很具吸引力的选择。数字视频广播(DVB)的IPTV应用和3GPP的多媒体广播组播业务(MBMS)都选择了Raptor码作为其AL-FEC规范[7-8]。
数字喷泉码[9]的编码器就像喷泉喷涌,能够源源不断的产生无穷多个编码数据包。假设源文件的大小为Kl比特,编码器每次输出的码元大小为l 比特,而接收端接收过程可以形象地比喻成拿水桶到喷泉下接水一样,当接收的码元数目比K 稍大一点时,就能恢复源文件。
喷泉码是码率无关的,由源文件经过编码产生的码元数目不受限制,可以产生无限多的码元,这样一种与码率无关的编码方式决定了它具有很重要的实际应用价值,它不需要像传统的纠删码那样对信道的删除情况有个预判,灵活性大大增强。
Michael Luby[10]找到了一种具有线形编译码复杂度的数字喷泉码编码方式,称为LT码。LT码编码和译码的代价仅为k logek(其中k 是文件大小),而Raptor码是一种比LT码编译码复杂度更低的喷泉码,它通过预编码技术可以允许在无损误码性能的条件下,进一步降低LT码度分布概率(用来形成编码生成矩阵)的复杂度,实现大数据包条件下,编码复杂度与k无关,译码复杂度与k 呈线形关系。换句话说,因为有了预编码这一过程,通过LT码译码只需恢复一部分间接数据包,再用传统纠删码来恢复所有的数据包。图2为Raptor码编码过程[11]。
通过使用AL-FEC(Raptor),提供了应用层端到端的可靠性[12]。
AL-FEC(Raptor)的优势:
AL-FEC(Raptor)的劣势:
2.2 Pro-MPEG CoP3编码
Pro-MPEG CoP3[13]编码其实就是一种简单的奇偶检验码,它可以分为CoP3 1D(对行或列进行编码)和CoP3 2D(对行与列都编码)。图3为编码过程:分别对一行或一列数据包进行异或产生一个编码数据包。
当仅使用CoP3 1D时,生成的编码数据包为图3中最下面一行或者最右面一列,它只能保护一行或一列中出现一个数据包丢失的情况,如果原始数据包序列中出现连续两个数据包被丢失(比如数据包0和数据包1或者数据包0和数据包L ),则丢失的两个数据包将无法恢复。但当使用CoP3 2D时,这种情况将不会出现。
如果使用CoP3 2D,一般需要20%的冗余。它最大的优点就是操作简单,但由于它以极大的消耗网络带宽为代价换取传输的成功率,使得它的利用率很低。
2.3 FEC与重传相结合
当使用这种解决方案时,先通过FEC恢复绝大部分的丢失数据,然后剩余的小部分未被恢复的数据通过重传来获取。由于网络状况的不同,选择何种FEC技术成为此方案好坏的一个关键。
在通过不对称数字用户线(ADSL)来开展的IPTV业务中已经使用到了这样的技术[14],其中绝大多数选择使用Pro-MPEG CoP3编码作为FEC技术(编解码过程简单)。它的优点就是增大了恢复丢失数据的概率以及减轻了原来重传服务器的负担。它的缺点是没有一个快速的频道切换方案,当使用Pro-MPEG CoP3编码时,应对随机丢包情况时保护程度不够。
3 结束语
随着IPTV业务的深入开展,如何保证视频质量成为IPTV业务成败的关键。无论是编码端的前向纠错编码、解码端的后处理差错隐藏或者编码端和解码端的交互差错控制技术,虽然能够在一定程度上提高视频传输的鲁棒性,但它们自身存在的缺点使得它们不可能成为解决IPTV业务问题的完美方案。近几年,标准化组织已经对AL-FEC进行了评估并由于它的极佳性能而采用了这种技术。而且随着Raptor码的研究深入,使得AL-FEC技术由理论开始转向实用。
4 参考文献
[1] 石峻. IP网络视频通信若干问题研究[D]. 上海:上海交通大学, 2001.
[2] WU D, HOU T, YAO J, et al. Transmission of real-time video over the Internet: A big picture[C]// Proceedings of the IEEE Networld+Interop, May 7-12, 2000, Las Vegas, NV,USA. Piscataway, NJ,USA: IEEE, 2000:10-11.
[3] 马然. Internet视频传输中差错控制的若干关键技术研究[D]. 上海:上海大学, 2007.
[4] BEGEN A C. Error control for IPTV over xDSL networks[C]// Proceedings of the 5th IEEE Consumer Communications and Networking Conference (CCNC’08), Jan 10-12,2008, Las Vegas, NV, USA. Piscataway, NJ,USA: IEEE, 2008: 632-637.
[5] LUBY M, STOCKHAMMER T, WATSON M. IPTV systems, standards and architectures: Part II - Application layer FEC in IPTV services[J]. IEEE Communications Magazine, 2008, 46(5): 94-101.
[6] MILLER J, MIMNAUGH A. Quality - The number one obstacle to IPTV adoption[R]. Fremont, CA USA: Digital Fountain Inc, 2008.
[7] 3GPP TS 26.346 V7.4.0.Multimedia Broadcast/Multicast Service(MBMS); Protocols and Codecs[S]. 2007.
[8] ETSI TS 102 472 V1.1.1. Digital Video Broadcasting (DVB); IP datacast over DVB-H: Content delivery protocols[S]. 2005.
[9] MACKAY D J C. Fountain codes[R]. Cambridge, UK: Cavendish Laboratory, University of Cambridge, 1998.
[10] LUBY M. LT Codes[C]//Proceedings of the 43rd Annual IEEE Symposium on Foundations of Computer Science (FOCS'02),Nov 16-19,2002, Vancouver, Canada. Los Alamitos, CA, USA:IEEE Computer Society, 2002: 271-280.
[11] SHOKROLLAHI A. Raptor codes[J]. IEEE Transactions on Information Theory,2006, 52(6): 2551-2567.
[12] LUBY M G, MILLER J W, PORTER K M. Benefits of AL-FEC for mobile file broadcast: More bandwidth, more range, more ARPU[R]. Fremont,CA USA: Digital Fountain Inc, 2007.
[13] SMPTE specification 2022-1. Forward error correction for real-time video/audio transport over IP networks[S]. 2007.
[14] LI Zhi, ZHU Xiaoqing, BEGEN A C, et al. Forward and retransmitted systematic lossy of error protection for IPTV video multicast[C]//Proceedings of the 17th International Packet Video Workshop (PV’09), May,11-12,2009, Seattle, WA,USA. Piscataway, NJ,USA: IEEE, 2009: 9.
收稿日期:2009-05-25
[摘要] 在IP网络上提供网络电视(IPTV)业务要面对传输带宽、传输延时和抖动、丢包等困难。以终端为中心的实现方案通过在接收终端以及信源编码中加入一定的控制策略如拥塞控制策略、差错控制策略,可以较好地改善图像质量。在IP网络上采用端到端的应用层可靠性解决方案,能很好的提供IPTV业务。应用层前向纠错(AL-FEC)技术解决网络丢包问题,从而保证端到端的可靠性。
[关键词] IP网络;网络电视;应用层差错控制;应用层前向纠错
[Abstract] IP networks will face such difficulties as transmission bandwidth, delay, jitter and packet loss when they provide IPTV services. A terminal-centric implementation solution can better improve the image quality by add certain control policies like congestion control and error control to both the receiving terminal and source code. An end-to-end application layer reliability method is often required to satisfy the IPTV requirements in the IP network. The Application Layer Forward Error Correction (AL-FEC) technology solves the problem of packet loss, therefore, it can ensure the end-to-end reliability for IPTV services.
[Keywords] IP networks; IPTV; application layer error control; AL-FEC