一种用于720度全景视频网络播放的码流缓存机制的制作方法

文档序号:10572697阅读:549来源:国知局
一种用于720度全景视频网络播放的码流缓存机制的制作方法
【专利摘要】本发明公开了一种用于720度全景视频网络播放的码流缓存机制,其涉及视频全景图像处理技术领域,主要将全景视频流媒体进行分段处理,处理之后的数据块分别存储于缓存区域的静态缓存区和动态缓存区。静态缓存区主要存放主视角视频帧数据,负责提供主视角目标区域的视频流数据块,避免由于网络不稳定而造成客户端观看视频发生抖动和停顿的现象;动态缓存区主要为客户端提供及时响应,第一区段存放辅助视角数据包,当观看视角发生变化时,根据当前主视角目标区域的位置,动态地更新并存储相应扩展区域内邻域视角的视频流数据块,第二区段根据用户的操作习惯和特征,记录全景视频中感兴趣的片段,提供快速响应。
【专利说明】
一种用于720度全景视频网络播放的码流缓存机制
技术领域
[0001] 本发明涉及视频全景图像处理技术领域,具体一种用于720度全景视频网络播放 的码流缓存机制。
【背景技术】
[0002] 随着网络时代图像信息技术的发展,使得全景视频实现网络交互式播放成为可 能。全景视频是指通过多个摄像头或全景摄像机在不同时刻采集的全景图序列,承载着丰 富的信息量,可以将变化的场景进行实时播放。其中,720度全景视频是指用户可以通过鼠 标或头盔,在水平360度和垂直360度方向任意选择观看角度,对全景视频中感兴趣的场景 进行浏览,如同身临其境。由于全景视频数据量巨大、实时性强、对同步要求较高,使其在网 络上的应用受到很大的限制。
[0003] 为了解决这一问题,利用流媒体技术将视频信息通过网络传输到客户端。但在传 输过程中一个实时的视频或音频文件可能被分解为多个数据包,动态变化的网络环境下, 选择不同路由的数据包,到达客户端的时间延迟不等,可能出现先发出的数据包反而滞后 到达客户端。因此,流式传输的实现需要使用缓存机制来弥补延迟和抖动的影响,确保数据 包顺序的正确,使媒体数据能够连续输出,不因网络的暂时拥堵而出现播放停顿现象。缓存 机制是在客户端建立的缓冲区,将用户频繁请求的数据块存储于该缓冲区中,有选择性的 丢弃已经播放过的数据,有目的性的预存未来要播放的数据,并通过相应的策略保证本节 点和邻居节点能够流畅平稳的播放。缓存机制能有效地降低网络堵塞,缓解带宽瓶颈,减少 抖动,减轻服务器负载,从而得到快速响应和平稳的视频数据。经典的缓存机制有:FIF0、 LRU、LFU,另外还有基于概率的缓存机制、基于流行度的缓存机制、基于分组的缓存机制等。 FIF0(First In First Out)是先入先出算法,最符合人们惯性思维的经典算法,该方法原 理简单,较适合顺序播放的视频;LRU(Least Recently Used)最少最近使用方法与LFU (Least Frequently Used)最少频繁使用算法都是广泛使用的缓存替换算法,当缓存空间 不足时LRU删除最近访问次数最少的数据块,LFU删除访问频率最小的数据,这两种经典算 法简单、易于实现,但存在效率低,命中率低的问题;基于概率的缓存机制主要思想是通过 计算每个片段在下一时间被播放的概率,缓存高概率片段,替换低概率片段,这种算法对预 播片段起到很好的预测作用,但替换太频繁,容易影响邻居节点播放的流畅度;基于流行度 的缓存机制是按照片段流行度优先级的高低进行缓存,该算法相对简单,但对单一视频的 优化效果不明显;基于分组的缓存机制是将所有节点分组,每组缓存不同的节目片段,并设 置代理节点响应本组内节点的请求,算法的优势在于降低了服务器的负载,确保系统的稳 定性,但每个代理节点都只有本组的冗余信息,而无法确定整个系统的冗余度。

【发明内容】

[0004] 针对上述技术问题,本发明提出了一种用于720度全景视频网络播放的码流缓存 机制,通过缓存区域划分的方式,合理设计动态和静态缓存区,保证视频播放的流畅度,对 全景视频中用户感兴趣的片段进行定期动态存储,降低服务器的负载。
[0005] 本发明的具体技术方案是:
[0006] 一种用于720度全景视频网络播放的码流缓存机制,将缓存区域划分为两个部分, 主要包括静态缓存区和动态缓存区。静态缓存区主要存放主视角视频帧数据,负责提供主 视角目标区域的视频流数据块,避免由于网络不稳定而造成客户端观看视频发生抖动和停 顿的现象;动态缓存区主要为客户端提供及时响应,动态缓存区包括第一区段和第二区段, 所述第一区段存放辅助视角数据包,当观看视角发生变化时,根据当前主视角目标区域的 位置,动态地更新并存储相应扩展区域内邻域视角的视频流数据块;所述第二区段根据用 户的操作习惯和特征,记录全景视频中感兴趣的片段,提供快速响应;通过码流缓存机制的 合理设计,以保证观众在客户端进行多方位、多角度浏览时,全景视频能够平稳流畅的播 放。
[0007] 进一步优选,所述静态缓存区工作流程包括如下步骤:
[0008] (1.1)以视角点和时间作为全景视频中某一帧图像对应关系的两个特征量,将流 媒体数据按照不同视角点分类,分为主视角数据包、辅助视角数据包和其他视角数据包;
[0009] (1.2)按照步骤(1.1)中各视角视频帧占用空间,在缓存区空间内对每个视频帧必 须保留部分冗余,估计视角码流中一个完整帧所占用的最大体积,求取各视角所对应的缓 存区体积,保证系统的稳定性;
[0010] (1.3)根据需求设定缓存区空间大小之后,基于多视角码流可分级编码的编码方 案,将全景视频的码流进行视角编号,并在TS包的头部PID字段进行标记,通过视角编号与 PID字段值的对应关系,各个视角的码流加以区分;
[0011] (1.4)根据步骤(1.3)完成了多视角码流的分离,将主视角码流按照时间先后顺序 存入静态缓存区,为客户端提供视频播放数据。
[0012] 进一步优选,所述动态缓存区主要负责客户端操作的紧急响应,并为播放区提前 准备播放数据,其工作流程包括以下步骤:
[0013] (2.1)将分离数据包中的辅助视角码流,即主视角所对应的四邻域视角方向上的 视频数据流,按照各自的视角编号存放在动态缓存区的第一区段;
[0014] (2.2)根据用户观看全景视频的操作习惯和特征,通过对主视角及相应辅助视角 中数据块的请求次数,判断视频片段中数据块是否流行,并计算各数据块的流行度;
[0015] (2.3)由步骤(2.2)得到流行度值,按照数据块流行度的高低进行排序,找出流行 度最高的数据块,将包含这些数据块的片段存储在动态缓存区第二区段,为客户端提供及 时响应数据。
[0016] 与现有技术相比,本发明的有益效果在于:
[0017] 本发明提出的一种720度全景视频网络播放的码流缓存机制,对缓存区域进行静 态和动态区域划分,通过码流缓存机制的合理设计,以保证观众在客户端进行多方位、多角 度浏览时,全景视频能够平稳流畅的播放。
【附图说明】
[0018] 图1全景视频网络播放总框图;
[0019] 图2码流缓存机制框图;
[0020] 图3不同视角视频流分离示意图。
【具体实施方式】
[0021] 以下将结合附图对本发明做进一步详细说明。
[0022] 将全景摄像机所采集的多媒体文件主要包括全景视频数据和音频数据两个部分, 发布者通过网络上对数据包进行压缩并传送到服务器端,当客户端发送播放请求时,服务 器对请求作出响应,以流媒体传输的形式将数据包发送至客户端。而流式传输的实现需要 使用缓存机制来弥补延迟和抖动的影响,确保数据包顺序的正确,使媒体数据能够连续输 出,不因网络的暂时拥堵而出现播放停顿现象。再通过多码流同步恢复技术和解码之后,将 数据包按照需求发送至客户端。为了保证客户端接收到的视频在用户交互式操作情况下, 仍然能够平稳顺畅地播放,对系统建立合理的缓存机制十分必要。
[0023] 将缓存区域划分为两个部分在客户端对码流数据包进行存储,主要包括静态缓存 区域和动态缓存区域。静态存储区域主要用来存放主视角数据包,保证主视角码流可以完 整独立地播放。动态缓存区域划分了子区域,图2中的第一区段存放辅助视角数据包,即主 视角四邻域方向上的视角数据包,作为主视角的辅助缓存区,根据用户的交互式操作,动态 地更替该区域内所存放的数据;第二区段根据用户的操作习惯和特征,记录用户对全景视 频感兴趣的片段,将这些片段序列进行缓存,当客户端再次发出请求时,不需要向服务器端 提取数据,缓存区域能够提供快速响应。
[0024] 建立以视角点和时间为表征量的直角坐标系,横坐标表示时间Time,纵坐标表示 视角点View,全景视频的每一帧图像与二者存在对应关系,即在某个视角点v上的t时刻对 应全景视频中的一帧图像。设全景视频的播放总时长ST_Sum,则在视角点v上,从0时刻开 始播放至1'_51 1111时刻,所对应的视频数据为方向视角v上的一个局部完整视频数据。同理,更 换视角点在视频播放时段内对应多个不同视角的局部完整视频数据,所有视角点在播放时 间内的数据总和构成了720度全景视频所需要存储的数据。根据视角点的不同将全景视频 数据分离为Μ个独立的视频流,按照客户端观看需求将全景视频按照视角点分为三大类:主 视角、辅助视角和其他视角。主视角是指所有视角中位于水平方向正中的视角,将其记作 V0;辅助视角中包含四个方向的数据块,以主视角视频帧为中心,将其相邻的四邻域(上、 下、左、右)方向上的视角视频数据存放在辅助视角区,将其记作VI;其他视角的视频数据划 分为一类,记作V2。全景视频在顺序播放时不同时刻对应不同的视频帧,如图3所示,表示在 Τ0时刻各个视角区所对应的视频帧,此时主视角V0区域对应视频帧Β1,辅助视角VI区域存 放着主视角的四邻域视频帧分别为上邻域视频帧Bl_up、下邻域视频帧Bl_down、左邻域视 频帧Bl_lef t、右邻域视频帧Bl_right,图3中除B1、Bl_up、Bl_down、Bl_lef t和Bl_right的 其他部分区域的视频帧数据则放置于其他视角V2区域。
[0025]视频数据按照视角分为三大类之后,对相应的缓存区域空间大小进行估算,设主 视角对应的视频帧总数为N,视频序列分辨率为w*h,采用YUV 4:2:0格式,编码压缩率设为 R,则主视角I帧压缩后的体积为VI = 12 ·?·!!/!?字节,要求实际存储区域设置略有冗余,以 保证缓存区域读取数据的稳定性。主视角静态缓存区域空间取
其中S为冗余控制量。利用公式估算视角码流中 '.~ , 一个完整帧所占用的最大体积,分别求取各视角所对应的缓存区体积。
[0026] 基于多视角码流可分级编码的编码方案,将全景视频的码流分离。根据系统层传 输流(Transport Stream,TS)可以根据不同的视角编号View_ID在TS包的头部PID字段进行 标记,设置两位数作为各视角编号,主视角编号为View_ID = 00,辅助视角设置为10、11、12、 13分别表示主视角相邻的上下左右四个方向的视频流,其他视角标号设置为View_ID = 20, 通过视角编号与PID字段值的对应关系,各个视角的码流加以区分。对全景视频传输流进行 多视角码流分离之后,将属于不同视角的数据包封装到不同的实时传输流数据包。封装规 则如下:为确保一个RTP包中只包含相同视角的连续TS包信息,即如果连续出现具有相同视 角编号的TS包数目超过7个,则每7个TS包封装一个RTP包。如果不到7个,则直接封装。如TS 流中第1个TS包标记的视角编号为00,即为主视角,从此开始计数,直到第7个包发现其视角 编号还是00。这时将前7个TS包作为主视角实时传输流的负载数据封装到一个RTP包。接着 计数器归零,第8个TS包的视角编号为00,若未到7就检测到视角编号变为1或者2开头,则以 此为段封装到辅助视角或其他视角实时传输流的一个RTP包中。接着计数器归零,依此类 推,按照封装规则将三大类视角码流分离之后,分别传输到对应的视角区域。
[0027] 至此完成了多视角码流的分离,将主视角码流按照时间先后顺序存入静态缓存 区,为客户端提供视频播放数据。将辅助视角码流存入动态缓存区第一区段内,负责客户端 改变观看视角对视频进行浏览时,动态存储区段能根据操作做出及时响应,提供更换视角 之后的全景视频码流,保证客户端视频顺畅播放。
[0028]动态缓存区第二区段根据用户对全景视频观看操作习惯和特征统计,判断感兴趣 的片段,将数据进行动态缓存,降低服务器的负荷。通过统计用户对视频片段中数据块的请 求和交互式操作的记录信息,计算视频片段中数据块的流行度,对流行度高的数据块缓存。 流行度是一个短时间效应的概念,即数据块只在某个短时间内流行度较高,它是动态变化 的。针对传统数据块流行度算法的不足,采用流行度分段叠加的方法计算和判断数据块流 行度的高低。设定数据统计周期为K,数据块d在第i个统计周期内被请求的次数为Di,第i个 周期内总的数据请求次数为Ni,则数据块d在统计周期内的流行度pop_dS:
[0029]
其中 j = l,2,3."K
[0030] 按照K个统计周期时间段内,数据块流行度值的高低进行排序,找出这段时间内数 据块流行度最高的视频片段,将包含这些数据块的视频片段存储于动态缓存区第二区段, 根据数据块在不同时间段内的流行度不同,缓存区存储的数据也随之动态变化,为客户端 对数据的请求提供快速响应,提升响应速度,降低服务器的请求负载。
[0031] 以上实施例仅起到解释本发明技术方案的作用,本发明所要求的保护范围并不局 限于上述实施例所述的实现系统和具体实施步骤。因此,仅对上述实施例中具体的公式及 算法进行简单替换,但其实质内容仍与本发明所述方法相一致的技术方案,均应属于本发 明的保护范围。
【主权项】
1. 一种用于720度全景视频网络播放的码流缓存机制,其特征在于,将全景视频流媒体 进行分段处理,处理之后的数据块分别存储于缓存区域的静态缓存区和动态缓存区;静态 缓存区主要存放主视角视频帧数据,负责提供主视角目标区域的视频流数据块;动态缓存 区主要为客户端提供及时响应,动态缓存区包括第一区段和第二区段,所述第一区段存放 辅助视角数据包,当观看视角发生变化时,根据当前主视角目标区域的位置,动态地更新并 存储相应扩展区域内邻域视角的视频流数据块;所述第二区段根据用户的操作习惯和特 征,记录全景视频中感兴趣的片段,提供快速响应。2. 根据权利要求1所述的用于720度全景视频网络播放的码流缓存机制,其特征在于, 所述静态缓存区工作流程包括如下步骤: (1.1) 以视角点和时间作为全景视频中某一帧图像对应关系的两个特征量,将流媒体 数据按照不同视角点分类,分为主视角数据包、辅助视角数据包和其他视角数据包; (1.2) 按照步骤(I. 1)中各视角视频帧占用空间,在缓存区空间内对每个视频帧必须保 留部分冗余,估算视角码流中一个完整帧所占用的最大体积,求取各视角所对应的缓存区 体积,保证系统的稳定性; (1.3) 根据需求设定缓存区空间大小之后,基于多视角码流可分级编码的编码方案,将 全景视频的码流进行视角编号,并在TS包的头部PID字段进行标记,通过视角编号与PID字 段值的对应关系,各个视角的码流加以区分; (1.4) 根据步骤(1.3)完成了多视角码流的分离,将主视角码流按照时间先后顺序存入 静态缓存区,为客户端提供视频播放数据。3. 根据权利要求2所述的用于720度全景视频网络播放的码流缓存机制,其特征在于, 所述码流动态缓存区主要负责客户端操作的紧急响应,并为播放区提前准备播放数据,所 述码流动态缓存区工作流程的主要步骤如下: (2.1) 将分离数据包中的辅助视角码流,即主视角所对应的四邻域视角方向上的视频 数据流,按照各自的视角编号存放在动态缓存区的第一区段; (2.2) 根据用户观看全景视频的操作习惯和特征,通过对主视角及相应辅助视角中数 据块的请求次数,判断视频片段中数据块是否流行,并计算各数据块的流行度; (2.3) 由步骤(2.2)得到流行度值,按照数据块流行度的高低进行排序,找出流行度最 高的数据块,将包含这些数据块的片段存储在动态缓存区第二区段,为客户端提供及时响 应数据。
【文档编号】H04L29/06GK105933343SQ201610488962
【公开日】2016年9月7日
【申请日】2016年6月29日
【发明人】罗文峰
【申请人】深圳市优象计算技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1