论文部分内容阅读
摘要:流媒体是指采用流式传输的方式在Internet播放的媒体格式。本文主要对流媒体技术的演进过程进行了详细介绍。
关键词:流媒体技术 演进
什么是流媒体?
如今我们可以很方便地从因特网上获取视频信息,不管是实时的还是VOD。有一些专门的网站,如土豆、优酷等,不仅资源丰富,其画面质量和速度也都差强人意。但是我们的需求永无止境,对连接速度和质量的要求越来越高。
在网络上传输音/视频等多媒体信息,目前主要有下载和流式传输两种方案。流媒体是指采用流式传输的方式在Internet播放的媒体格式。A/V文件一般都较大,所以需要的存储容量也较大;同时由于网络带宽的限制,下载常常要花数分钟甚至数小时,所以这种处理方法延迟也很大。流式传输时,声音、影像或动画等时基媒体由音视频服务器向用户计算机的连续、实时传送,用户不必等到整个文件全部下载完毕,而只需经过几秒或十数秒的启动延时即可进行观看。当声音等时基媒体在客户机上播放时,文件的剩余部分将在后台从服务器内继续下载。流式不仅使启动延时成十倍、百倍地缩短,而且不需要太大的缓存容量。流式传输避免了用户必须等待整个文件全部从Internet上下载才能观看的缺点。
当今,流媒体发展得很迅猛,当然离不开流媒体软件中运用的各种各样的核心技术的充分发展的支持,特别是视频编码技术。通过阅读所提供的参考文献,对流媒体的发展以及支持其发展的视频编码技术有了一定认识。下面详细介绍了流媒体技术的演进过程。
1 基于HTTP的顺序流
早期的流媒体项目,基于标准Web服务器传输多媒体编码信息,所有的HTTP服务器和客户端的对话都通过使用有保障的传送协议来实现,因此设计简单。例如,VivoActive就将标准H.263音频和G.723视频编解码器结合起来,使用一个简单的复用协议将音频和视频流整合在同一个文件中。为了实现这样一个系统,使用桌面视频会议的编码器,只需在算法上做很小的改动(大多是有关速率控制的)。
然而,HTTP协议最初是基于静态文件设计的,并不是特别适合实时流媒体的传输。比如,不能控制Web服务器把数据放在网上的速率,TCP协议导致编码信息帧传输时间的大量起伏。这也是为什么VivoActive播放器使用预滚动缓存,通常是5-20秒的时间,来补偿传输过程中的突发性的快速传输。尽管如此,当某种原因使得下一帧数据的传输延时超过了既定的预滚动时间,播放器不得不中止播放,直到缓存被装满。这就是所谓的rebuffering过程,用户的减少也往往因为这个原因。
对于流媒体的实时播放和定位、快进、回放、点播等播放控制,基于HTTP的顺序流也有很大的局限性。
2 最早的服务器和协议
完整的流媒体同时包括服务器和客户端成分的产品是在1995年3月份引进的RealAudio 1.0。RealAudio服务器和播放器之间的通信基于一系列TCP、UDP的网络协议,被称作Progressive Networks Architecture (PNA)。在这种方式下,大量的压缩音频数据包是通过低开销、单向的UDP传输来完成,而减少TCP的使用,仅将其用于基本的话路控制。
虽然UDP传输可以更有效地利用现有网络带宽,其传输过程相对于TCP也更连续,但是它也引入一些问题,比如信息丢失,时延,错序等。为了解决这些问题,RealAudio使用了两种机制,ARQ和帧交织。
3 最早的视频编解码器
如前文所述,VivoActive和其他一些早期项目中的视频编码是直接从ITU-T H.261或者H.263标准直接发展来的。这些编解码器最初是为低延时、位传输、基于老式电话服务(Plain Old Telephone Service ,POTS)的桌面视频会议而设计的。然而,为了解决UDP流传输特有的问题,RealVideo编码器需要特别的设计。其中最成问题的是需要产生压缩的数据,使之可以在固定的比特率下传输。通常,动态视频有一些比较难编码的片段,比如在基本静态或者低运动的场景中的场景变化和过渡等。这些都是可以被有效压缩的。如果它们使用同一个失真度来编码,就会导致帧间不均等的比特分布。
为了保持恒定的比特率,编码器可以在帧编码时产生不等的失真,可以放弃一些帧的编码(这样会加大失真,除非视频是静态的),也可以二者结合起来。这看起来是一个有趣的优化问题。最近已经找到了解决这个问题的基于编程的动态算法,但这种解决方案还是会给重建的信号带来可观的失真。
幸运的是,预滚动缓冲器的存在大大减弱了对恒定比特率的要求。因此,我们只需要维持一个平均比特率,在缓冲器提供的可用空间的限定下允许每帧中实际的比特数有一定的浮动。Real Video编解码器的可变比特率控制算法就是基于这些考虑的。该技术的变种,带宽平滑目前正在研究中。
另一个需要是在压缩文件中对视频帧的随机访问,也就是允许使用者连接直播节目,或者在点播视频中回放、定位和快进。为了解决这一问题,Real Video的编解码器定期的插入I帧编码,并修改速率控制机制,原则是最小化编码后帧的质量的浮动。
在信道中,Real Video编解码器需要进行包格式化和处理分组丢失。由于视频帧都是非常大的,简单的损失分布技术像交织不能被直接应用。Real Video编解码器使用了前向纠错编码来保护压缩比特流中最敏感的部分,并结合不同的内部错误隐蔽机制。这种技术的结合一般被认为是不等错误保护度编码。
4 自适应流的需要
先前的流媒体项目都只考虑了在固定比特率(14或28 kbits/s)下传输媒体内容,这仅仅适用于有同一网络连接速度的用户。那些更快速度的用户从额外的带宽得不到任何好处,而较低速度的用户则根本无法观看媒体内容!
初步的解决方案是针对同一内容,为不同的用户提供不同的版本。例如,出版商需要创建不同的流媒体版本去适应28K和56K调制解调器用户和ISDN链路的用户等。
但是,这个方案的确存在许多很明显的问题。首先,这种解决方案是基于一个假设的,它假设实际的服务器和客户端之间的信道带宽仅仅是由最后的连接所限定的,(也就是说,客户端跟ISP的连接),但是这个假设一般是不成立的。并且,它没有考虑信道带宽动态变化和数据丢失的情况。为了维持带宽变化时连接,以前的流媒体服务器都启用一种被称作流稀释的机制。当服务器被通知分组传送到客户端用时低于实时时间时,它就开始丢弃一些分组的传输。当然,这种技术带来了数据的丢失,但是却足以避免用户rebuffering或者连接中断。
5 视频编码和下一代媒体传输系统
总的来说,今天的分布式流媒体的核心是音频和视频信息先通过一系列中间服务器的传输才到达订阅客户端。在这个过程中的最后一个阶段,服务器-客户端传输,长期以来一直是流媒体系统的核心问题。然而,随着互联网基础设施建设的增多和流媒体传输网络部署的愈加密集,重点正转向如何优化整体这种传输系统所提供的服务质量。这种优化有一些限制因素,比如网络的拓扑结构,带宽和内部信道的维修费用,服务器的存储容量等等。
在某些限制下,如使用无损信道或只利用中间服务器来复制进来的数据等,对这种网络中流量的分析可以被视为一个众所周知的图形组合问题。
为了更全面地解决这一问题,需要研究这种网络中的信息流。例如,在这一理论上最近的一些成果解释说,为了实现最佳的带宽使用率,简单的组播路由是不够的。另一方面,如果在每一个节点(路由器)对信息进行变换编码,可能是优化的。
所有这些因素都突出一些新的视频编码方法可用于下一代流媒体传输系统。寻找相应编码问题的有效解决方法将日益成为这一领域取得进展的重要内容。
6 结语
技术在进步,用户的需求也在日益增长。我们一方面要在这个领域不断寻求自己的兴趣点,开发可以进步的空间,另一方面也期待着下一代媒体传输系统带给我们更多的享受!
关键词:流媒体技术 演进
什么是流媒体?
如今我们可以很方便地从因特网上获取视频信息,不管是实时的还是VOD。有一些专门的网站,如土豆、优酷等,不仅资源丰富,其画面质量和速度也都差强人意。但是我们的需求永无止境,对连接速度和质量的要求越来越高。
在网络上传输音/视频等多媒体信息,目前主要有下载和流式传输两种方案。流媒体是指采用流式传输的方式在Internet播放的媒体格式。A/V文件一般都较大,所以需要的存储容量也较大;同时由于网络带宽的限制,下载常常要花数分钟甚至数小时,所以这种处理方法延迟也很大。流式传输时,声音、影像或动画等时基媒体由音视频服务器向用户计算机的连续、实时传送,用户不必等到整个文件全部下载完毕,而只需经过几秒或十数秒的启动延时即可进行观看。当声音等时基媒体在客户机上播放时,文件的剩余部分将在后台从服务器内继续下载。流式不仅使启动延时成十倍、百倍地缩短,而且不需要太大的缓存容量。流式传输避免了用户必须等待整个文件全部从Internet上下载才能观看的缺点。
当今,流媒体发展得很迅猛,当然离不开流媒体软件中运用的各种各样的核心技术的充分发展的支持,特别是视频编码技术。通过阅读所提供的参考文献,对流媒体的发展以及支持其发展的视频编码技术有了一定认识。下面详细介绍了流媒体技术的演进过程。
1 基于HTTP的顺序流
早期的流媒体项目,基于标准Web服务器传输多媒体编码信息,所有的HTTP服务器和客户端的对话都通过使用有保障的传送协议来实现,因此设计简单。例如,VivoActive就将标准H.263音频和G.723视频编解码器结合起来,使用一个简单的复用协议将音频和视频流整合在同一个文件中。为了实现这样一个系统,使用桌面视频会议的编码器,只需在算法上做很小的改动(大多是有关速率控制的)。
然而,HTTP协议最初是基于静态文件设计的,并不是特别适合实时流媒体的传输。比如,不能控制Web服务器把数据放在网上的速率,TCP协议导致编码信息帧传输时间的大量起伏。这也是为什么VivoActive播放器使用预滚动缓存,通常是5-20秒的时间,来补偿传输过程中的突发性的快速传输。尽管如此,当某种原因使得下一帧数据的传输延时超过了既定的预滚动时间,播放器不得不中止播放,直到缓存被装满。这就是所谓的rebuffering过程,用户的减少也往往因为这个原因。
对于流媒体的实时播放和定位、快进、回放、点播等播放控制,基于HTTP的顺序流也有很大的局限性。
2 最早的服务器和协议
完整的流媒体同时包括服务器和客户端成分的产品是在1995年3月份引进的RealAudio 1.0。RealAudio服务器和播放器之间的通信基于一系列TCP、UDP的网络协议,被称作Progressive Networks Architecture (PNA)。在这种方式下,大量的压缩音频数据包是通过低开销、单向的UDP传输来完成,而减少TCP的使用,仅将其用于基本的话路控制。
虽然UDP传输可以更有效地利用现有网络带宽,其传输过程相对于TCP也更连续,但是它也引入一些问题,比如信息丢失,时延,错序等。为了解决这些问题,RealAudio使用了两种机制,ARQ和帧交织。
3 最早的视频编解码器
如前文所述,VivoActive和其他一些早期项目中的视频编码是直接从ITU-T H.261或者H.263标准直接发展来的。这些编解码器最初是为低延时、位传输、基于老式电话服务(Plain Old Telephone Service ,POTS)的桌面视频会议而设计的。然而,为了解决UDP流传输特有的问题,RealVideo编码器需要特别的设计。其中最成问题的是需要产生压缩的数据,使之可以在固定的比特率下传输。通常,动态视频有一些比较难编码的片段,比如在基本静态或者低运动的场景中的场景变化和过渡等。这些都是可以被有效压缩的。如果它们使用同一个失真度来编码,就会导致帧间不均等的比特分布。
为了保持恒定的比特率,编码器可以在帧编码时产生不等的失真,可以放弃一些帧的编码(这样会加大失真,除非视频是静态的),也可以二者结合起来。这看起来是一个有趣的优化问题。最近已经找到了解决这个问题的基于编程的动态算法,但这种解决方案还是会给重建的信号带来可观的失真。
幸运的是,预滚动缓冲器的存在大大减弱了对恒定比特率的要求。因此,我们只需要维持一个平均比特率,在缓冲器提供的可用空间的限定下允许每帧中实际的比特数有一定的浮动。Real Video编解码器的可变比特率控制算法就是基于这些考虑的。该技术的变种,带宽平滑目前正在研究中。
另一个需要是在压缩文件中对视频帧的随机访问,也就是允许使用者连接直播节目,或者在点播视频中回放、定位和快进。为了解决这一问题,Real Video的编解码器定期的插入I帧编码,并修改速率控制机制,原则是最小化编码后帧的质量的浮动。
在信道中,Real Video编解码器需要进行包格式化和处理分组丢失。由于视频帧都是非常大的,简单的损失分布技术像交织不能被直接应用。Real Video编解码器使用了前向纠错编码来保护压缩比特流中最敏感的部分,并结合不同的内部错误隐蔽机制。这种技术的结合一般被认为是不等错误保护度编码。
4 自适应流的需要
先前的流媒体项目都只考虑了在固定比特率(14或28 kbits/s)下传输媒体内容,这仅仅适用于有同一网络连接速度的用户。那些更快速度的用户从额外的带宽得不到任何好处,而较低速度的用户则根本无法观看媒体内容!
初步的解决方案是针对同一内容,为不同的用户提供不同的版本。例如,出版商需要创建不同的流媒体版本去适应28K和56K调制解调器用户和ISDN链路的用户等。
但是,这个方案的确存在许多很明显的问题。首先,这种解决方案是基于一个假设的,它假设实际的服务器和客户端之间的信道带宽仅仅是由最后的连接所限定的,(也就是说,客户端跟ISP的连接),但是这个假设一般是不成立的。并且,它没有考虑信道带宽动态变化和数据丢失的情况。为了维持带宽变化时连接,以前的流媒体服务器都启用一种被称作流稀释的机制。当服务器被通知分组传送到客户端用时低于实时时间时,它就开始丢弃一些分组的传输。当然,这种技术带来了数据的丢失,但是却足以避免用户rebuffering或者连接中断。
5 视频编码和下一代媒体传输系统
总的来说,今天的分布式流媒体的核心是音频和视频信息先通过一系列中间服务器的传输才到达订阅客户端。在这个过程中的最后一个阶段,服务器-客户端传输,长期以来一直是流媒体系统的核心问题。然而,随着互联网基础设施建设的增多和流媒体传输网络部署的愈加密集,重点正转向如何优化整体这种传输系统所提供的服务质量。这种优化有一些限制因素,比如网络的拓扑结构,带宽和内部信道的维修费用,服务器的存储容量等等。
在某些限制下,如使用无损信道或只利用中间服务器来复制进来的数据等,对这种网络中流量的分析可以被视为一个众所周知的图形组合问题。
为了更全面地解决这一问题,需要研究这种网络中的信息流。例如,在这一理论上最近的一些成果解释说,为了实现最佳的带宽使用率,简单的组播路由是不够的。另一方面,如果在每一个节点(路由器)对信息进行变换编码,可能是优化的。
所有这些因素都突出一些新的视频编码方法可用于下一代流媒体传输系统。寻找相应编码问题的有效解决方法将日益成为这一领域取得进展的重要内容。
6 结语
技术在进步,用户的需求也在日益增长。我们一方面要在这个领域不断寻求自己的兴趣点,开发可以进步的空间,另一方面也期待着下一代媒体传输系统带给我们更多的享受!