流媒体QoS控制研究及实现
来源:岁月联盟
时间:2010-08-30
1 引言
随着的和人们需求的增加,单纯依靠传统“尽力而为”(best-effort)的网络服务越来越不能满足部分新兴业务,如:VOD、远程、视频会议、实时监控等实时性较高的需求,而流媒体传输采用流式技术,通过改变传统传输需要将整个文件完全下载完毕后才能进行观看等不足,只需在启动时花费几秒或几十秒的等待时间,以后即可进行连续观看,并在前台进行播放的同时,后台继续将文件剩余部分从服务器上源源不断地下载到本地,保证了本地观看的连续性。所谓流媒体是指将现场采集的音视频或已录制好的音视频数据编码后通过网络实时地发送、传输、接收、解码并播放的过程(其系统传输框架如图1所示)。其基本流程是:通过将原始视音频文件或现场采集的实时音视频编码成适合网络传输的流格式,储存在流媒体服务器上,等待客户的请示,或直接由流媒体服务器进行现场直播。当流媒体数据通过传输协议传输到客户端后进行解码并播放。目前流媒体技术已广泛应用于新闻发布、在线直播、网络广告、信息插播、互动游戏、视频点播、远程教育、网络电视、实时视频会议等领域。
2 改善流媒体传输质量
2.1 影响流媒体传输质量的因素
影响流媒体传输质量的因素主要包含以下几个: 端到端的延迟:包括传输时延、传播时延、排队时延。它是影响流媒体质量最重要的因素之一。必须根据网络的负载情况,控制在一个合理的范围之内。 时延抖动:是两个相邻分组的数据在网络传输过程中由于经过不同的网络延迟产生的。由于网络传输的不确定性,时延抖动是没法避免的,解决的方法通常是在接收端设置缓冲区,在数据流到达后,并不立即播放,而是保存在缓冲区,等到规定播放时间到来才进行播放。 丢包率:是指网络拥塞时,数据流没有及时到达接收端。这时丢失的数据包将直接影响到接收播放的质量,一般情况下,丢包率不得超过1%。 数据包的失序:每个数据帧都有一个序列号,以标记在流中正确的序号。在网络传输过程中,由于数据包经过不同的线路或丢包等原因,致使数据的顺序发生变化。解决的方法也是在接收端设置缓冲区,将接收到的数据进行重新组合,恢复原来的顺序。2.2 改善流媒体传输质量的途径
改善流媒体传输质量的关键就是要使系统保证有较好的QoS。因此,提高流媒体质量可以从提高流媒体QoS控制上考虑。根据功能的不同,提高流媒体QoS控制大体上可以从拥塞控制、错误控制和缓存机制几个方面入手。 (1)拥塞控制:主要是通过某种速度控制机制,在网络拥塞时,降低数据传输时延和丢包率。目前主要有速率控制和速率整形两种方式。 基于速率控制机制主要包括基于源码率的、基于接收者码率的以及混合码率控制。基于源码率的控制机制主要是通过收集视频传输反馈信息,动态改变数据流的发送速率。基于接收者码率的控制机制主要是通过接收到的数据流的情况,向应用层反映相应的统计信息,动态改变接收信道和播放效果。混合码率控制结合二者的特点,动态改变数据流的发送速率及数据接收信道,再达到最佳播放效果。 基于速率整形机制主要是将码流压缩以适应网络带宽的要求。目前主要有编解码滤波器、弃帧滤波器、弃层滤波器、频率滤波器和再量化滤波器等几种方式。具体请[1]。 (2)错误控制:如前面所述,丢包、延时等问题在网络传输过程中是无法避免的,那么在这种已发生的情况下,如何更好地、更高质量地来控制错误,保证音视频文件的顺序播放?错误控制,其主要解决在丢包、延时等情况下,对流媒体数据的纠错,达到最佳播放效果。错误控制机制包括向前纠错机制、重发机制、错误恢复编码机制和错误隐藏机制。具体请参考文献[2]。 (3)缓存机制:主要有在服务器端设置缓存和在客户端设置缓存两种方式。在服务器端设置缓存,可以在整个网络对所有客户端的请求作优化处理,是一种调度策略,可以使服务器处理能力达到最佳。在客户端设置缓存,能够消除由于网络传输带来的延时抖动、数据包的失序等因素,保证播放的质量。3 视频监控系统中QoS控制的实现
以笔者工作中的一个项目为例,该项目为重庆某集团重大危险源监控系统的第二代产品,系统集现场视频采集、储存、传输、视频检索、远程控制、数据分析、预案启动、应急指挥于一体,实现对重大危险源的“三级监控”(即现场监控、监控和集团监控),形成了一个完整的系统的重大危险源监控和事故应急处置的综合信息平台和高效可靠的监控指挥系统。在该系统中,我们基于现有网络,通过控制端系统,尽可能是提高系统的QoS控制。该系统体系结构如图2所示。
