论文部分内容阅读
可伸缩视频编码(SVC, Scalable Video Coding)是一种新型的视频编解码技术,经该技术编码的视频可以选择不同的视频质量进行播放。图像质量可以从分辨率、帧率和图像细节三个维度上进行选择,抽取出相应质量的视频数据便可播放该质量的视频。在移动互联网的飞速发展中,移动设备在互联网中占的比例越来越大。随着IPTV的发展,高清电视机也作为终端加入到了网络中,当前的网络呈现出异构网络的形态。异构网络中各种终端受其处理器性能、显示屏大小等硬件条件和网络带宽限制,对流媒体视频的质量要求有很大差距。选择可伸缩视频编码可以满足在异构网络中不同终端的视频观看需求。P2P对等网络传输日渐成熟,有着成本低等优势,能够提高终端带宽的利用率。本文研究在P2P流媒体系统中应用SVC编解码的方法,主要针对进行P2P传输时的分片算法设计以及播放时的封装方法设计进行研究。为了让保留SVC视频质量可伸缩的特性,在进行P2P传输时需要将SVC视频的数据按质量的不同分开来存放。这样的方法可能会造成不同质量的数据在播放时不能同步获得。第二章中通过对大量视频进行数据分析,并通过抽样仿真实验量化了不同步情况的严重性。在分片算法的设计中需要考虑解决数据的不同步问题。解决该问题的关键是需要让每一个分片都承载上它所在的播放时间的信息。本文在此基础上设计了两个分片算法,并通过分片传输的仿真实验和播放时间重定位处理的性能分析实验,分析了两个分片算法各自的优势和劣势。在视频的封装上,为了满足视频能在尽量多数的平台上观看,选择了MP4媒体封装格式。由于在ISO标准中SVC的封装方法十分复杂,且会添加很大数量的元数据,同时也无法满足P2P传输的要求,本文设计了一种新的封装方法。该封装方法与本文的分片算法相匹配,实现不是很复杂,在播放时需要进行数据调度,需要处理器进行一些额外的运算。