摘 要: 本文提出了基于多描述编码的Peer to Peer方式视频流直播方案,并对该方案中P2P方式视频发布与接收策略进行了介绍。
关键词: MDC Peer to Peer 视频流
随着通信技术、数字视频技术的发展和网络基础设施建设的日益完善,传统的、基于文本和图片浏览的Internet服务已逐渐被以音视频为主体的网络多 媒体服务所取代。以音视频为主的多媒体服务对网络带宽的占用,以及对网络服务质量和传输实时性的要求是传统Internet服务业务所不可比拟的。如何在 现有的Internet环境下有效地发送音视频数据,提供用户满意的网络多媒体服务是现今网络研究的一个热门领域。本文讨论了一种结合多描述编码的方法, 用P2P方式进行视频流发送的方案。
1 P2P技术介绍
P2P技术是一种用于不同PC用户之间共享计算机资源的技术。位于网络上的每个用户都是一个对等实体(Peer),他们彼此独立又可以互相协作,既是服务的提供者又是享用者。早期的P2P网络已在分布式计算、即时通信和文件共享等领域取得了显著成就。
这里特别值得一提的是近几年兴起的、采用P2P方式的BT(bit torrent)文件下载。它的基本思想是将一个大的文件分成许多小的片断,下载用户非顺序地从网络中其他用户处下载文件的各个分片。当用户下载完某个完 整的分片后,又可将该分片共享,供其他用户下载。与传统的C/S方式文件下载相比,这种P2P下载方式的特点是用户越多下载速度越快,可以最大限度地发挥 网络传输能力。
但这种文件下载方式不能直接用于视频流的发送,特别是对视频流直播方式不太适合。对于直播视频流来说,它的数据流是实时产生的(不同于文件方式,待发 送的数据已经存放于本地存储内),同时视频直播流的接收和观看必须是实时和顺序进行的。现在基于P2P的视频直播多采用基于应用层的组播方式,视频流发送 是通过构建组播树方式进行的。每个用户(组播树上的一个节点)从自己的父节点处获取完整的视频流进行收看,同时向下游的儿子节点转发视频数据。在这种方式 下,对组播树中的每个Peer节点的网络I/O带宽都有较高要求(在某些用户接入方式下工作不太理想。如ADSL用户,上下行通道不对称,上行带宽很 窄)。并且当组播树的某个节点,特别是位于上层的节点发生故障时,组播树的恢复存在一定难度和时延。
2 多描述编码
多描述编码MDC(Multiple Description Coding)假设在信源和信道之间有多个信道,各个信道同时出错的概率非常低。通过生成多个同等重要、可独立解码的关于编码的描述,保证在其中一些描述 丢失时,仍可以得到可接受的信号。因此,多描述编码在基于包的网络、无有效保护机制的Internet、分集通信系统(多天线的无线信道)、语音编码、图 像编码、视频编码、多分布的存储系统中有很好的应用前景。
针对视频的多描述编码构造方法很多,最简单直观的方法是针对空间分辨率、时间分辨率进行亚抽样,编码成多路描述码流。此外,还有多描述量化、多描述变换编码及基于FEC的多描述编码。
3 基于MDC的P2P视频直播方案
通过对MDC和P2P技术的分析可知,这两项技术在网络多媒体数据传输中有显著的优势和特点。但将这两项技术结合起来进行视频直 播,且能发挥其各自技术优势的方案还未见到。本文提出的视频直播方案,对原始视频采用多描述编码,形成多路码流;对编码后的多路描述流采用P2P方式,使 多点(即多个Peer)相互协作,实现多径传输。具体方案如下。
3.1 MDC编解码模型
如图1所示,对原始图像帧进行空间亚抽样,形成低分辨率的视频子流。按2n (n可以取1,2,3,……)进行水平和垂直方向的亚抽样。这样一路原始视频流经空间亚抽样后可形成4路、16路等22n 路视频子流。具体的抽样间隔根据实际应用情况进行选择。对每路视频子流进行单独编码,可得到22n 路 编码描述子流。编码后的描述子流通过不同的信道发往接收者(实际上在P2P的发送方式下,不同的描述子流是由不同的Peer发往接收者)。接收者对每路描 述子流进行单独的接收和解码,并将解码后的视频流合成为原始视频流。如果只接收到部分视频子流,也可以通过相应的插值算法恢复出原始视频图像。
3.2 P2P发布网络模型
与目前大多采用的树状P2P发布网络模型不同(该发布模型是自上而下分层,一对多的数据分发模式),本文采用的是自上而下的分层网状发布模型,如图2所示。
3.3 P2P方式视频发送与接收
每路描述子流发送采用RTP打包,在包头中要包含以下私有字段:原始流惟一标识、子流标识、时间戳(或帧同步标识)。
(1)发布网络的初始化
最先进入网络的用户向发布服务器发出视频传送请求,由于此时用户数较少,用户采用传统的C/S方式直接从种子服务器(种子服务器为视频流的“发源地”)获取数据。
(2)新的Peer请求加入过程
第一步:从发布服务器获取直播流信息,直播流信息主要字段包括:直播流标识和流描述信息。
第二步:用户选择自己感兴趣的流,向发布服务器发送“流申请”(可选项:与此同时用户可以向本地局域网广播申请)。
第三步:发布服务器返回应答信息(也可是本地Peer用户返回应答信息)。应答信息主要内容如图3所示。
第四步:子流转发服务器的选择:①优先从本地网络Peer中选取转发描述子流。②不同的子流尽量从不同的Peer上接收。选择了转发服务器后,向选择的Peer发送请求,要求其传送各自的描述子流数据。
(3)接收过程
对不同的描述子流分别启动单独的线程进行接收和解码。解码后的多路视频帧置于合成处理缓冲区中。对每帧数据的处理设置一个最大容忍时间。当容忍时间到 达时,应根据处理缓冲区中收到的解码后的子帧编号,选择相应的原始帧恢复算法对图像进行恢复并显示。如果一路视频流的所有描述子流都及时收到并解码,则可 完全恢复原始视频图像,否则要经过插值处理来得到原始图像。
在整个接收过程中,用户同时对正确接收到的描述子流进行统计。对时延和丢包大的子流,用户可以启动搜索线程,寻找新的Peer来获取该路描述子流。对 于接收状态良好的子流,用户可以生成报告信息发往发布服务器进行“登记”。“告诉”发布服务器,“自己”可以对该路视频流的哪些“子流”进行转发。
(4)连接丢失处理
如果用户的某路连接丢失(可能是由于网络故障,或是作为该路流下载服务器的Peer关机或离开),则接收者向发布服务器(或本地用户)发出该路子流的下载请求,以寻找新的下载服务器(Peer)。与此同时,该用户仍然可以根据其他可接收到的子流正常收看视频节目。
4 实验模型介绍
初步的仿真实验在实验室内通过路由器连接两个局域网构成的小型网络环境下进行。模拟实验共使用15台PC机。PC均为PⅢ 800,内存128MB以上配置,并配备100MB快速以太网卡。其中一台PC作为种子视频服务器和内容发布服务器,其他分布在两个局域网内的主机作为客 户机。播出的视频流以H.263标准编码模型为基础,对CIF格式原始视频流进行空间亚抽样分成4路QCIF格式的子流。对这4路流单独进行编码,形成4 路单独的描述子流,然后进行RTP打包发送给用户。客户端的接入、peer搜索、视频数据的接收和转发算法按照上一章介绍的算法实现。同时在客户端转发数 据时通过随机丢包和延时传送方式,模拟网络的丢包和传输延时。仿真实验采用主观评价方式。实验表明,在实验室环境下建立的基于MDC编码的P2P视频流发 布系统模型可以进行较理想的视频发布和接收。用户可以收看到清晰流畅的视频图像,同时对网络丢包和连接丢失有一定容错性。
5 总 结
本文提出的方案能更好地发挥P2P方式下多用户协作特性,充分利用网络带宽进行视频流发送。同时由于编码采用MDC方式,该方案 能更好地适应网络带宽变化,同时对网络传输的丢包和延时有较好的适应性和容错性。当然该方案还处于一个较为简单的模型阶段,今后还将从以下几个方面进行研 究:(1)进一步完善P2P播出算法。(2)找到效率更高的MDC编码算法。(3)完善系统实现,在更大范围的真实环境中对系统进行测试。
参考文献
1 Tran D A,Hua K A,Do T T.Zigzag:An efficient peer-to-peer scheme for media streaming.In:IEEE INFOCOM,San Francisco CA,USA,2003
2 赵谊虹,余松煜,程国华.多描述编码的研究现状及其展望. 通信学报,2005;(1)
3 谢勇均.P2P模式的流媒体服务技术.现代电视技术,2004;(7)
http://wenku.baidu.com/view/c1a59380d4d8d15abe234ea2.html
http://www.doc88.com/p-91667718706.html
http://www.docin.com/p-34501902.html
http://www.kinghav.com/cpinfo.asp?id=84
http://www.mscto.com/SoftEngin/SOA/2009022146488.html
http://www.dzsc.com/data/html/2008-1-29/60310.html