3、应用层质量控制技术
应用层质量控制技术的主要目的是保证在视频传输过程改善质量。主要包括拥塞控制和差错控制等几方面。采用质量控制的原因很多,一个主要的原因是目前的Internet只提供Best-effort的服务,没有质量保证。因此,需要通过应用层的机制来实现质量的控制。拥塞控制的目的是避免因为网络拥塞导致包丢失而造成的质量下降。对于视频流,拥塞控制的主要方法是速率控制。速率控制的目的是基于预测的网络带宽决定发送的速率。有两种基本的速率控制手段,基于发送端的速率控制和基于接受端的速率控制。前者主要基于反馈信息进行速率调节。可以适用于单播的方式或组播的方式。对于单播的方式,有两种速率控制方法,基于探测的方法(probe-based)和基于模型的方法(model-based)。基于探测的方法通过不断调整速率使得包的丢失率低于一个固定的概率值。基于模型的方法直接利用TCP的吞吐率模型计算速率。因此,模型法也被称为TCP友好的速率控制方法。对于单通道的组播,只能采用基于探测的方法。在基于接受方的速率控制中,发送方不参与速率控制,而由接受方通过增加和减少通道的数量来进行速率的调整。通常,这种方法用于采用可扩展编码的组播的情况,组播的视频流分为多层,每个层对应组播树的一个通道。接受方通过增加减少通道获得不同的质量。基于接受方的速率控制也可以分为基于探测的方法和基于模型的方法。除了基于发送方的速率控制和基于接受方的速率控制方法以外,还有一个称为混合性速率控制的方法,兼有二者的特点,即接受方增加减少通道,而发送方同时根据反馈调整各个通道的速率。混合速率控制方法的一个例子是目标集分组的方法。
当基于发送方的速率控制决定了发送的速率之后,一个必须的操作是调节原始的压缩流的速率以满足目标速率的要求,这通过速率整形来实现。典型的速率调节方法根据编码的扩展性方法来实现。包括:a) 帧丢弃过滤,它可以区分不同的帧,如MPEG编码的I帧,B帧,P帧。根据帧的重要性丢弃帧(先B帧,在P帧,最后I帧)。b) 分层丢弃过滤;c)频率过滤。
拥塞控制的目的是减少包的丢失,但是无法避免包的丢失。在这种情况下,可能需要一定的差错控制机制。差错控制机制包括:a) FEC,FEC的目的是通过增加冗余信息使得包丢失后能够通过其他包恢复出正确的信息。b)延迟约束的重传。通常流的播放有时间限制,因此,仅有当重传的时间小于正常的播放时间时,重传才是有价值的。c)错误弹性编码(Error-Resilient Encoding):在编码中通过适当的控制使得发生数据的丢失后能够最大限度的减少对质量的影响。在Internet环境下,最典型的方法是多描述编码(MDC)。MDC把原始的视频序列压缩成多位流,每个流对应一种描述,都可以提供可接受的视觉质量。多个描述结合起来提供更好的质量。该方法的优点是实现了对数据丢失的健壮性和增强的质量。其缺点是相比单描述编码(SDC),它在压缩的效率上受到影响。而且由于在多描述之间必须加入一定的相关性信息,这进一步降低了压缩的效率。D)错误的取消(cancealment):错误的取消是指当错误已经发生后,接受端通过一定的方法尽量削弱对人的视觉影响。主要的方法是时间和空间的插值(Interpolation)。近年来的研究还包括最大平滑恢复,运动补偿时间预测等。
在目前的商用流媒体系统中,Real Networks采用了大量的应用层质量控制技术来提高流传输的质量。在RealVideo采用了抗损坏(damage-resistant)的编码来减少包丢失的影响,当帧的速率很小的时候,还采用了FEC技术。RealVideo支持两种编码:RealVideo standard和RealVideo fractal。前者可以支持从10k到500k的编码速率,而且特别为28.8k和56k进行了优化。为了适应网络速率的变化,Real Networks采用了Sure Stream技术,该技术可以避免速率使用机制不能对每个速率进行优化的缺点。具体的方法是:首先在一个文件中同时存储用不同速率编码的媒体流,其次,通过在服务器和客户之间监测带宽的变化来动态的决定使用那个速率的流。这个技术的主要缺点在于不能适应速率的连续控制。