作 者:中兴通讯:夏宏飞 吕晓鹏 刘峰
随着现代网络和多媒体业务的发展,人们已经不再满足于在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与重传相结合。