一些站点:
http://www.vchelp.net/cndevforum/subject_list.aspforum_id=28&order=view_num
http://www.voip99.com/old/index_ku_00021.htm
http://www.vchelp.net/cndevforum/subject_view.asp?subject_id=64672&forum_id=28
http://www.1000bbs.com/dispbbs.asp?boardID=83&ID=35534&page=1
http://www.1000bbs.com/dispbbs.asp?boardID=83&ID=119137&page=9
http://www.cer.net/article/20040726/3111127.shtml
http://www.vchelp.net/cndevforum/subject_view.asp?subject_id=42847&forum_id=28
http://www.liumeiti.com/art/product/2002122150940192.htm
1、前言随着Internet带宽的不断增长,基于流媒体(stream media)传输的视频应用得到了迅速的发展。在Internet上传输视频的相关技术也成为Internet节研究和开发的热点。目前,许多实验性的高速宽带网络都把视频传输的技术和应用作为研究的重点课题。美国的Internet 2(I2)研究计划中成立了数字视频研究组(Digital Video Initiative)作为I2应用开发的重要部分。I2的应用开发组认为数字视频是带来最广泛的利益和最广泛的利用I2能力的应用,它可以覆盖从点播到远程的资源控制的应用。中国的3Tnet研究计划中也明确提出要开发高速网络中的流媒体相关技术,实现HDTV等视频应用。
在Internet上传输视频有许多困难,其根本的原因在于Internet的无连接每包转发机制主要为突发性的数据传输设计,不适用于对连续媒体流的传输。为了在Internet上有效的、高质量的传输视频流,需要多种技术的支持。本文主要介绍了Internet视频传输中的一些关键技术,包括视频的压缩、编码技术,应用层质量控制技术,连续媒体分布服务技术,媒体同步技术和数字版权管理技术等。
2、视频压缩、编码技术
通常的视频压缩可以分为可扩展(scalable)的压缩和不可扩展(unscalable)的压缩。其中不可扩展的压缩是指只生成一个位流(bit-stream),而可扩展的压缩生成多个子位流(substream),其中一个位流是基本位流,它可以独立解码,输出粗糙质量的视频序列。其他的子位流则起质量增强的作用。所有的子位流一起还原出最好质量的视频序列。相应的,仅有部分的子位流(必须包含基本子位流)则输出的视频在图像的质量,或者大小或者帧速率上较差。这三个方面构成了压缩在质量信噪比(SNR),空间和时间上的扩展性编码。具体的可扩展压缩选择其中的某一种或几种实现扩展性。为了提供更好的灵活性,满足不同的延迟要求,一种新的被称为细粒度扩展性(FGS)的压缩机制被提交给MPEG-4。FGS压缩把视频压缩成两个位流:基本层位流和增强层位流。与SNR扩展性的编码不同,FGS采用bitplane编码。它可以实现连续的增强层速率控制。一个FGS编码的变体是PFGS(Progressive FGS)编码,除了具有FGS的基本优点外,PFGS可以实现超过两个位流层,具有更好的预测和错误恢复能力。
在实际系统中已经开发了多种编码的格式,主要包括rm,wma,asf,divx等。其中Windows Mediaz最新发布的windows media encoding utility v8.0 beta包含了windows media audio 8(音频)和windows media video 8(视频)两部分压缩编码系统。windows media video 8采用了的MPEG-4视频压缩技术,实现了在500kbps传送速率下提供接近于dvd质量(near-DVD quality)的画面(分辨率640×480,每秒24帧)。 windows media video 8为电影在线下载观看做了优化,支持true-vbr(真正动态变量速率编码)。Real Networks公司最新发布的real producer 8.5在制作rm文件上采用自己开发的real g2 codec,它具有很多先进的设计,例如,svt(scalable video technology),双向编码(two-encoding)。双向编码类似于vbr,它可通过预先扫描整个影片,根据带宽的限制选择最优化压缩码率。
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技术,该技术可以避免速率使用机制不能对每个速率进行优化的缺点。具体的方法是:首先在一个文件中同时存储用不同速率编码的媒体流,其次,通过在服务器和客户之间监测带宽的变化来动态的决定使用那个速率的流。这个技术的主要缺点在于不能适应速率的连续控制。
4、连续媒体分布服务
传统的视频传输基于单一的流媒体服务器。但是单一的服务器在性能上是不可扩展的,而且传输的质量受底层网络传输质量的限制。为了提高传输的性能,有一些技术来改进流传输的质量。连续媒体分布服务(continous media distribution services)的目的是在Internet 尽力服务(Best-effort)的基础上提供服务质量和高效的媒体传输。典型的方法包括:
网络过滤(Network Filtering),网络过滤的基本方法是在流的发送端和接受端之间的某个网络设备上插入一个网络过滤器,该过滤器根据网络的拥塞状态实现速率的整形。和发送端的速率整形不同的是,网络过滤在流媒体传输的路径上执行,因此,速率整形可以在拥塞点进行,这样可以提高速率控制的效率和拥塞控制的响应时间。而且可以在网络中放置多个过滤设备实现更好的控制。网络过滤通常采用丢帧过滤器(frame-dropping filter)。
应用层组播(Application-Level Multicast):基于IP层的组播技术尽管经过了多年的研究,但是在实施上还有困难。主要的问题包括扩展性,网络管理,实施和高层应用的支持。应用层的组播的目标是在Internet上层构建组播服务。它允许建立独立的媒体组播网络。媒体组播网络可以利用内容分布网络的互连,通过在不同种类的服务提供者之间的应用层的对等关系来构建。在媒体组播网络中,每个具有组播能力的节点(称为媒体桥:MediaBridge)执行应用层的路由。另外,每个媒体桥和一个或多个邻居媒体桥通过明确的配置互连,这个互连建立了应用层重叠拓扑。媒体桥在媒体组播网络中执行一个分布的应用层组播路由算法来确定一条优化的虚拟组播路径。应用层组播的优点是打破了IP组播的一些障碍。可以以更灵活的方式实现组播控制。
内容传递网络(CDN):CDN可以在总流量增加的情况下提高网络传输的性能和服务质量,并且在一个快速变化的环境下可以为用户保持最新的内容。内容传递网络还可以支持灵活的分布式应用。由于这些特性,内容传递网络可以用来传递流媒体内容。一个内容传递网络主要包括以下一个部分:Caching和内容传递,内容的分布和管理,请求路由,记账和计费。Caching服务器存储经常请求的对象为用户提供更快和更容易的传递。Caching和内容传递是CDN的主要功能。共有三种内容的Caching服务器:转发代理(Forward Proxy),透明转发(Transparent Forward),反向代理(Reverse Proxy)。内容的分布和管理技术把内容从源服务器分布到CDN的cache,即内容可以通过一定的策略提前传送或者推送到CDN节点。内容分布策略对CDN的优化起关键的作用。请求路由技术包括全局范围内的内容重定向,同一个CDN网络中的Cache服务器的负载均衡。有三种典型的技术实现请求路由,包括:使用动态DNS的全局请求路由,在传输层的全局请求路由,在应用层的全局请求路由。
目前,Real Networks和Microsoft都提供了基于Caching/Proxy的解决方案,例如Real Networks的RealSystem Proxy。RealSystem Proxy通过一个和服务器的向后的通道(back channel)保持caching内容的完整性。
5、媒体同步控制
在某些流媒体应用中,视频流和其它形式的媒体流需要以同步的方式来集成到一起。例如远程学习中,描述学习内容的幻灯片需要和教师授课的音频或视频流同步。通常有三种类型的同步控制:流内(intra-stream)同步,流间(inter-stream)同步,对象间(inter-object)同步。媒体同步机制的核心是在媒体内或者媒体间说明时间关系。说明时间关系的方法包括基于间隔的方法,基于轴的方法,基于控制流的方法和基于时间的方法。常用的说明连续媒体的说明方法是轴的说明或时间戳。对与终端系统而言,同步机制包括阻止(preventive)机制和纠正(corrective)机制。前者是主要通过减小延迟和抖动来减少同步错误,而后者主要是在发生同步错误之后恢复同步。考虑到Internet传输的延迟随机性,同步错误是不可避免的。因此,在接受方的错误补偿是必须的。一个纠正的机制是采用流同步协议(Stream synchronization protocol),该协议使用期望延迟(Intentional delay)的概念在不同的媒体流之间调整表述时间以恢复网络延迟的变化。
同步多媒体集成语言(SMIL:Synchronized Multimedia Integration Language)是由3W(World Wide Web Consortium)组织规定的多媒体操纵语言。可以实现多个流和文本信息在播放时的时间同步控制和空间位置布置。通过SMIL还可以实现一定的用户交互功能。
6、数字版权管理(DRM)
DRM是保护多媒体内容免受未经授权的播放和复制的一种方法。它为内容提供者保护他们的私有音乐或其他数据免受非法复制和使用提供了一种手段。DRM技术通过对数字内容进行加密和附加使用规则对数字内容进行保护,其中,使用规则可以断定用户是否符合播放数字内容的条件。使用规则一般可以防止内容被复制或者限制内容的播放次数。操作系统和多媒体中间件负责强制实行这些规则。
目前,Microsoft提供了完整的DRM的解决方案,包括实现DRM的体系结构和实现二次开发的SDK。微软的DRM方案中采用软件加密,速度可以达到10M/s,采用采用RC4, DES, 3DES对称加密算法加密数字内容,采用非对称算法RSA、ECC进行身份验证和加密内容加密密钥。
7.结束语
目前,基于Internet视频传输的流媒体应用和业务在国内得到了迅速的发展。各种应用,包括视频会议、视频点播、Internet电视、远程教学等都在逐步推广。在Internet中传输视频的各项技术也得到了越来越多的应用,并不断发展。可以预计,基于视频传输的宽带流媒体应用必将成为未来的Internet的主流应用之一。