论文部分内容阅读
为了将视频数据有效地分发到各个不同的终端,过去二十多年提出了很多支持实时流媒体传输的技术,但是低成本、大规模的视频直播系统仍然面对着巨大的挑战。传统的基于服务器/客户端架构的流媒体技术,受限于服务器的带宽、计算能力等资源,整个系统的可扩展性较差。为了解决这个问题,上个世纪八十年代,提出了IP组播技术,IP组播可以实现一对多的视频传输,但是由于各种技术和管理上的原因,IP组播并没有得到广泛地应用。随后在上个世纪九十年代末,出现了基于内容分发网络(CDN)的流媒体技术解决方案。CDN技术就是在网络各处放置大量节点服务器,构成在现有互联网之上的一层网络,并实时的根据网络流量和各服务节点的连接、负载状况以及到用户的距离响应时间等综合信息将用户的请求重新导向到合适的服务器上。CDN技术原理决定了CDN的实现需要昂贵的硬件投入和设备维护,限制了这种技术的大规模应用。最近,基于P2P的流媒体系统依靠其低成本、易于部署和可扩展性高等优点,得到了广泛的应用,比如已经实现商业化运营的PPLive、PPStream、UUSee和CCTVbox等。按照拓扑结构的不同,目前存在的P2P流媒体系统可以分为两类:基于树的P2P流媒体系统和基于网的P2P流媒体系统。本文以开源的PeerCast系统和iGM系统为例子,分别分析了基于树的P2P流媒体系统和基于网的P2P流媒体系统的原理和运行机制。在此基础上,使用NS-3网络仿真工具对基于树的P2P流媒体系统的拓扑结构的性能进行了仿真分析;选取视频质量和数据分发延迟为度量目标,对基于网的P2P流媒体系统进行了数据建模分析和仿真分析,指出在缓冲区足够大的情况下,增大邻居数对视频质量的提升非常小,但是可以有效地减小数据分发延迟。本论文对可伸缩视频编码在网络带宽受限环境中应用的必要性也进行了讨论。论文设计并实现了一个嵌入式的P2P流媒体系统。基于STi7109平台为P2P流媒体系统设计了一个视频源,视频源通过有线电视接入数字电视信号,实时的采集有线数字电视节目的TS流,通过网络发送给P2P流媒体系统,为整个基于P2P的流媒体系统提供视频源。STi7109平台上的操作系统OS21没有集成TCP/IP网络协议栈,为此本文移植了一个开源的LwIP网络协议栈。基于Davinci平台设计了一个P2P客户端,Davinci技术的处理器采用ARM和DSP的双核架构,ARM负责控制整个硬件资源,主要的应用程序在ARM端运行,DSP作为协处理器负责处理音视频的编解码。P2P客户端的主要功能在ARM端实现,实时的从P2P网络中下载需要的视频数据,然后将得到的数据发送给播放器。播放器通过DMAI接口调用DSP端的程序解码音视频数据,然后控制相应的硬件实现播放解码后的数据。P2P客户端播放器的设计基于开源的Gstreamer多媒体架构,为了充分利用DSP的解码能力,播放器使用了TI公司开源的基于DMAI的Gstreamer插件。