一种用于柱面立体全景视频网络播放的码流缓存机制的制作方法

文档序号:10691518阅读:276来源:国知局
一种用于柱面立体全景视频网络播放的码流缓存机制的制作方法
【专利摘要】本发明公开了一种用于柱面立体全景视频网络播放的码流缓存机制,涉及计算机视觉领域。本发明针对柱面立体全景视频数据量大,在网络播放中难以实现实时观看的现状,提出将柱面立体全景视频划分为多个块,并对这些块进行独立编码,网络传输时只传送用户选择视角以及其左右两侧视角的数据块;在客户端建立三个缓冲区,分别存放观看视角方向数据块的码流和观看视角左右两边数据块的码流,让用户在改变观看视角时仍然能够实时观看视频。本发明方法能够大大减少柱面立体全景视频在网络传输中的数据量,并能有效解决柱面立体全景视频网络播放的延时和卡顿问题,提高用户体验。
【专利说明】
一种用于柱面立体全景视频网络播放的码流缓存机制
技术领域
[0001]本发明涉及计算机视觉领域,特指一种用于柱面立体全景视频网络播放的码流缓存机制。
【背景技术】
[0002]立体视频是一种能够提供立体感的视频技术,通常所说的立体视频是双目立体视频,这种视频包含有左视频和右视频。双目立体视觉是模仿人眼的视差原理,利用成像设备从不同的位置获取被测物体的两幅图像,然后通过特殊的设备,让我们的眼睛分别只能看到一个视角的图像,然后通过大脑对两幅视差图像的分析与融合,产生具有立体感的图像。
[0003]全景视频是一种具有开阔视野的视频。柱面全景视频是由水平面360度范围的空间信息构成的图像序列组成的。柱面全景视频可以在水平面360度的范围内选择任意角度观看动态视频,并可以实时调整观看的角度。
[0004]柱面立体全景视频是把立体视频技术与柱面全景视频技术融合在一起形成的一种新形态的视频。柱面立体全景视频由两幅具有视差且时间同步的柱面全景图像组成。通过柱面立体全景视频播放器以及特定的头戴设备,我们就可以观看到柱面立体全景视频画面效果。
[0005]柱面立体全景视频在很多领域均有广泛运用,如虚拟校园、虚拟旅游、网上商业产品展示、军事仿真等。与传统视频相比较,柱面立体全景视频在提供大视野的同时,网络传输成了一道难题。普通的平面视频只给用户提供一个视角范围的信息,而全景视频的视野范围是普通视频视野范围的5?6倍,加之又是立体视屏,如果要给用户提供和普通视频一样的视觉质量,那柱面立体全景视频的数据量是普通视频的10?12倍,这个数量是惊人的。按照传统的视频传输方案,柱面立体全景视频要在网络环境下使用变得几乎不可能,客户体验会非常差。
[0006]由于在同一时刻,用户只能看到柱面立体全景视频的某一部分信息,我们在传输的时候也可以先只传输需要观看的这一部分信息,利用这一特点,我们可以通过分块编码与码流缓存机制来提高柱面立体全景视频的传输效率,提高用户体验。

【发明内容】

[0007]本发明针对柱面立体全景视频在网络播放中传输数据量大,难以实现实时观看的情况,提出了一种柱面立体全景视频码流缓存机制,实现柱面立体全景视频在网络播放中实时流畅的观看。
[0008]本发明的具体技术方案如下:一种用于柱面立体全景视频网络播放的码流缓存机制,所述码流缓存机制具体流程包括以下步骤:
[0009]1、将柱面立体全景视频的左视频和右视频分别以视角为O时作为起点,平均分成1块;
[0010]2、对每个块进行独立编码;
[0011]3、在客户端分配3个缓存区,一个主缓存区和两个次缓存区;
[0012]4、将用户选择观看视角的数据通过网络传输预存一段即将播放的数据存入所述主缓存区,并将观看视角两边的相邻数据块同步预存一段数据存入所述两个次缓存区;
[0013]5、当观看视角发生改变时,将需要观看的其中一个次缓存区作为主缓存区,同时将前一个主缓存区降为次缓存区,并用当前观看视角相邻没有被缓存的数据码流替换另一个次缓存区的数据码流。
[0014]与现有技术相比,本发明的有益效果在于:
[0015]通过对柱面立体全景视频进行分块编码,并创建3个缓存区分别缓存观看视角与观看视角相邻两边的数据块,使得用户不管是在选择视角还是转向左右两侧的相邻视角,网络都不会跟不上用户需要的观看数据,从而实现柱面立体全景视频在网络端的实时观看。
【附图说明】
[0016]图1是本发明柱面立体全景视频分块示意图;
[0017]图2是本发明柱面立体全景视频网络播放示意图。
【具体实施方式】
[0018]下面结合附图对本发明作进一步详细说明。
[0019]先确定柱面立体全景视频的分块划分。研究证明,人单眼的水平视角最大可以达至IJ156度,双眼的水平视角最大可达到188度,而两眼重合的视域为124度,人眼只有在124度视角范围内观看到的物体才会形成立体感。事实上,人眼在观看时并没有用到所有的视域范围,通常,人的视觉在10度是敏感区,10?20度可以正确识别信息,20?30度对动态东西比较敏感,当图像垂直方向视角为20度,水平方向的视角为36度时,就会有很好的视觉临场感,眼球也不会因为频繁转动而造成疲倦,是一个非常舒适的视角范围。基于此原理,本发明把36度视角范围作为柱面立体全景视频编码分块的基础,将左右视角的360度柱面全景视频分别对应分成10块,得到10组不同视角的立体视频。具体放方法为:对左右视角全景图像分别先确定视角为O度的边界,然后以O度边界为起点,每36度划分为一块,依次划分出10块,最后得到10组视角范围为36度的不同视角立体视频。图1为柱面立体全景视频的分块示意图。
[0020]根据上述的分块策略,对每个块进行独立编码,得到不同的数据块。由于用户观看的时候同一时间只需要观看一个视角范围信息,所以我们不用把整个的柱面立体全景信息全部进行传送,理论上只需要传送用户观看视角的信息即可,事实上,观看柱面立体全景视频的用户会随时的向左或是向右切换视角,如果用户切换视角之后不能及时的提供视频数据,那用户光看时就会出现卡顿现象,用户体验会非常差,根据这种现象,本发明在客户端设计了一种应对的码流缓存机制。
[0021]图2为本发明的柱面立体全景视频网络播放示意图,数据通过网络传输之后保存到了客户端的缓存区中,接下来讲述数据在缓存区的具体缓存机制。先在客户端开辟出三个缓存空间,一个为主缓存区,另外两个为次缓存区,主缓存区存放用户选择的视角范围数据块的码流,两个次缓存区分别存放与主缓存区同一时间的左右相邻数据块的码流。当用户选择视角不发生变化时,对三个缓存区的码流替换策略为:将缓存码流之后的部分码流替换已经播放的数据块的码流;当用户视角向左发生变化时,把缓存了这部分码流的次缓存区作为主缓存区,原来的主缓存区降为次缓存区,对于另外一个次缓存区,用当前视角左边的码流去替换原来存放的码流;当用户视角向右发生变化时,把缓存了需要视角码流的次缓存区作为主缓存区,原来的主缓存区降为次缓存区,并用当前视角右边的同步码流替换另一次缓存区的码流。
[0022]确定主缓存区后,将主缓存区存储视角的立体视频码流进行解码,得到待播放的左视频流的连续帧和右视频流的连续帧,通过投影变换将柱面视图变换为平面视图,并通过帧同步控制左视频和右视频同时播放。
[0023]本发明的柱面立体全景视频网络播放在客户端建立三个线程,分别为数据接收线程、解码显示线程和管理线程。数据接收线程负责接收来自网络的数据,并把接收数据放入相应的缓存区中,解码显示线程负责控制待播放码流的解码、投影变换和显示,管理线程负责完成客户端的资源管理,包括缓存数据替换管理和各线程间的同步管理。
[0024]以上实施例仅起到解释本发明技术方案的作用,本发明所要求的保护范围并不局限于上述实施例所述的实现系统和具体实施步骤。因此,仅对上述实施例中具体的公式及算法进行简单替换,但其实质内容仍与本发明所述方法相一致的技术方案,均应属于本发明的保护范围。
【主权项】
1.一种用于柱面立体全景视频网络播放的码流缓存机制,其特征在于,所述码流缓存机制具体流程包括如下步骤: (1)将柱面立体全景视频的左视频和右视频分别以视角为O时作为起点,平均分成10块; (2)对每个块进行独立编码; (3)在客户端分配3个缓存区,一个主缓存区和两个次缓存区; (4)将用户选择观看视角的数据通过网络传输预存一段即将播放的数据存入所述主缓存区,并将观看视角两边的相邻数据块同步预存一段数据存入所述两个次缓存区; (5)当观看视角发生改变时,将需要观看的其中一个次缓存区作为主缓存区,同时将前一个主缓存区降为次缓存区,并用当前观看视角相邻没有被缓存的数据码流替换另一个次缓存区的数据码流。
【文档编号】H04N21/6587GK106060513SQ201610496916
【公开日】2016年10月26日
【申请日】2016年6月29日
【发明人】罗文峰
【申请人】深圳市优象计算技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1