自适应多故事支线VR视频的分发方法与流程

文档序号:36647598发布日期:2024-01-06 23:31阅读:19来源:国知局
自适应多故事支线VR视频的分发方法与流程

本发明属于多故事支线视频,具体涉及一种自适应多故事支线vr视频的分发方法。


背景技术:

1、常见的vr(virtual reality)视频内容形式有3d效果视频、360°全景视频、互动视频、多故事支线视频等。其中,作为目前主流的360°全景视频虽然可以给使用者提供广角视觉效果,但因其缺失与使用者的互动性,从而无法达到人们对虚拟现实视频内容互动的要求,互动视频和多故事支线视频是两种新型vr视频内容模式,代表着vr内容的发展方向。其中在多故事支线vr视频内容模式下,使用者可自主选择剧中任意人物的视角发展故事,从而给人们提供使用者与视频内容的互动操作。由于这种多模式内容并行的视频模式设置,多故事支线的vr视频码流的数据量将急剧攀升;另一方面当此类视频码流需在网络直播或在线观看而分发时,同一时刻存在大量的冗余数据。若不加区分,将所有数据采用目前常规视频码流的分发模式,必将加剧网络拥堵及带宽浪费的问题,视频频繁陷入缓冲,影响使用者的观看效果。

2、目前常规的h264、hevc等视频编码标准,不涉及故事内容参数,致使采用常规码流标准压缩多故事支线vr视频时,分发端仅依靠码流分析不采用图像处理技术无法识别不同的故事线。同时,使用者频繁切换故事线多发生在观看初期对不同故事线筛选时,而使用者们对不同类型片源及故事线、主演往往具有一定的喜好偏向,若不加区分采用统一的推送模式,也会影响数据分发的有效性。


技术实现思路

1、为了解决现有技术中的上述问题,即为了解决现有分发方法无法满足用户在不同故事线间任意切换的需求以及现有的分发方法分发效率较低的问题,本发明第一方面,提出了一种自适应多故事支线vr视频的分发方法,该方法包括:

2、步骤s10,获取待分发的合并数据包并确认用户从当前多故事支线vr视频中自行选定的故事线编号αprev;基于所述αprev,按定位参数集求取视频码流数据的第一待分发数据包序列ω,并更新码流数据分发列表;所述合并数据包为将视频码流数据、预构建的辅助信息码流数据编码后合并的数据包;所述定位参数集为包含故事线编号和定位序号的参数集;

3、步骤s20,根据所述更新后的码流数据分发列表,分发所述ω中的数据包,直至分发完毕或者接收到用户自选故事线更新参数αnext,更新已分发数据包对应当前视频播放时长t;

4、步骤s30,判断所述t是否小于等于预设的分阶段分发模式阈值,若是,则跳转步骤s40;否则,跳转步骤s50;

5、步骤s40,基于所述αnext,更新定位参数集,并求取视频码流数据的待分发数据包序列ωnext,分发所述ωnext中的数据包,直至分发完毕或者接收到所述αnext,更新t,跳转步骤s30;

6、步骤s50,求取所述ωnext并添加到所述ω的尾部,然后进行数据包分发,当所述ωnext分发完毕,跳转步骤s70,若接收到所述αnext,则跳转步骤s60;

7、步骤s60,若数据包分发量大于设定的偏好统计量countall,获取记录最长播放故事线类型编号jk,将所述ω中的数据包对应帧的播放序号poctemp大于poctemp+tconst*fps的帧从所述ω中删除,跳转步骤s50;tconst表示设定的网络延时时长,fps表示帧率;

8、步骤s70,判断数据包分发量是否大于所述countall,若是,则求取记录最长播放故事线类型编号jk,根据所述jk更新全网用户对当前视频片源类型下所有故事线类型喜好顺序列表、用户对当前视频片源类型下所有故事线类型喜好顺序列表listtypev,all,listtypev,cur,结束分发;否则直接更新listtypev,all,listtypev,cur,结束分发。

9、在一些优选的实施方式中,基于所述αprev,按定位参数集求取视频码流数据的第一待分发数据包序列ω,并更新码流数据分发列表,其方法为:

10、步骤s11,若t<ts-tconst时,则在接收到所述αprev后,继续分发当前视频片头码流数据包中未分发数据,并令所述定位参数集的故事线编号参数为αprev,按所述定位参数集求取所述ω,将所述ω依序添加到当前视频片头码流包未发送数据的尾部,然后跳转步骤s20;否则,跳转步骤s12;其中,ts表示当前视频片头码流数据包对应的片头时长;

11、步骤s12,将αprev=αconst,令所述定位参数集的故事线编号参数为αprev,接着按所述定位参数集求取所述ω,将所述ω依序添加到当前视频片头码流数据包的尾部,然后跳转步骤20;其中,αconst表示当前视频推荐的故事线编号。

12、在一些优选的实施方式中,所述当前视频推荐的故事线编号,其获取方法为:

13、

14、其中,αconst,αconst1,αconst0分别表示当前视频推荐的故事线编号、依据listtype,vcur推荐的当前视频故事线编号、依据当前视频全网喜好顺序列表推荐的故事线编号,αconst1=φcur(ii),φcur={n|type(n)=listtypev,cur{1}(1)},ii∈[1,num(φcur)],αconst0=φall(jj),φall={n|type(n)=listtypev,all{1}(1)},jj∈[1,num(φall)];type(n)、listtypev,cur{1}(1)、listtypev,all{1}(1)分别表示求第n个故事线在当前视频片源类型下所属的故事线类型编号、listtypev,cur第一元素的第一个分量值、listtypev,all第一元素的第一个分量值,表示的数量,表示的数量。

15、在一些优选的实施方式中,按所述定位参数集求取ω,其方法为:

16、将所述定位参数集的故事线编号参数对应的当前视频故事线所有未发送数据包中对应帧播放序号属于[pocprev,pocprev+fps*t0-1]的数据包选为ω的集合元素;将其按数据包对应帧的编码或解码的序号从小到大排列即为ω;其中,pocprev表示定位序号,用于标识视频码流分发数据包对应起始帧的播放序号,t0表示初始分发时长阈值。

17、在一些优选的实施方式中,基于所述αnext,更新定位参数集,并求取视频码流数据的待分发数据包序列ωnext,分发所述ωnext中的数据包,直至分发完毕或者接收到所述αnext,更新t,跳转步骤s30,其方法为:

18、步骤s41,根据所述αnext,更新定位参数集,并采用不同模式按定位参数集求取ωnext:

19、步骤s411,若tcur<t0-tconst时,接收到所述αnext,则在继续发送ω中未发送数据的同时,更新所述定位参数集,将所述定位参数集的故事线编号参数更新为αnext,并采用第二模式按定位参数集求取所述ωnext,将所述ωnext依序添加到所述ω未发送数据的尾部,然后跳转步骤s43;否则,预判为所述ω播放完毕仍然接收不到αnext,则跳转步骤s412;其中,tcur表示ω中已发送数据包播放时长;

20、步骤s412,更新定位参数集,保持所述定位参数集的故事线编号参数不变,并采用第一模式按定位参数集求取ωnext,将所述ωnext依序添加到所述ω的尾部,然后跳转步骤s42;

21、步骤s42,令pocprev+=fps*t0,ω=ωnext,进行当前视频数据分发,直至所述ωnext分发完毕或者接收到所述αnext,更新t,跳转步骤s30;

22、步骤s43,令pocprev=tempnext+fps*t0,ω=ωnext,αprev=αnext,进行当前视频数据分发,直至ωnext分发完毕或者分发端接收到αnext,更新t,跳转步骤s30;其中,tempnext表示切换帧在αnext所在故事线的播放序号;

23、其中,采用第一模式按定位参数集求取ωnext为:基于更新定位参数集,通过求取的ω的方法获取待分发数据包序列,作为ωnext;

24、采用第二模式按定位参数集求取ωnext为:

25、步骤s4111,按所述αprev和所述αnext,在当前视频未分发且不属于步骤s41中需继续发送的数据包中,找到两个参数同时并存且具有最小播放序号的i帧数据包,将该数据包对应帧作为切换帧,并记temppr,evtemnpex分别为该切换帧在αprev和αnext所在故事线的播放序号;

26、步骤s4112,划定ωnext,该ωnext包含第二待分发数据包序列和第三待分发数据包序列:

27、将所述αprev对应当前视频故事线所有未发送数据包中对应帧播放序号属于[pocprev,tempprev-1]的数据包,选为ωnext集合的第二待分发数据包集合,并按数据包集合对应帧的编码或解码的序号从小到大排列即为ωnext第二待分发数据包序列;继续将所述αnext对应当前视频故事线所有未发送数据包中对应帧播放序号属于[tempnext,tempnext+fps*t0-1]的数据包,选为ωnext集合的第三待分发数据包集合;并按数据包集合对应帧的编码或解码序号从小到大排列即为ωnext第三待分发数据包序列。

28、在一些优选的实施方式中,步骤s50中,求取所述ωnext并添加到所述ω的尾部,然后进行数据包分发,其方法为:

29、若接收到所述αnext,在继续发送所述ω中未发送数据的同时,更新所述定位参数集,并将所述定位参数集的故事线编号参数更新为αnext,接着采用第三模式按定位参数集求取ωnext,将所述ωnext依序添加到所述ω未发送数据的尾部,进行数据包分发;否则,则更新定位参数集,保持所述定位参数集的故事线编号参数不变,接着采用第四模式按定位参数集求取ωnext,将所述ωnext依序添加到所述ω的尾部,然后进行数据包分发;

30、其中,采用第三模式按定位参数集求取ωnext为:

31、步骤s51,在当前视频未分发且不属于所述ω中需继续发送的数据包中,找到两个参数αprev、αnext同时并存且具有最小播放序号的i帧数据包,将该数据包对应帧作为切换帧,并记tempprev,tempnext,tempprev,tempnext分别为该切换帧在αprev和αnext所在故事线的播放序号;

32、步骤s52:划定ωnext,该ωnext包含第二待分发数据包序列和第三待分发数据包序列,具体获取方法为:

33、将αprev对应当前视频故事线所有未发送数据包中对应帧播放序号属于[pocprev,tempprev-1]的数据包,选为αnext所确定的对应当前视频码流待分发数据包集合的第二待分发数据包集合,并按数据包集合对应帧的编码或解码序号从小到大排列即为ωnext第二待分发数据包序列,然后进行数据包分发;

34、继续将所述αnext对应当前视频故事线所有未发送数据包中对应帧播放序号大于等于tempnext的数据包,选为ωnext集合的第三待分发数据包集合;并按数据包集合对应帧的编码或解码序号从小到大排列即为ωnext第三待分发数据包序列,然后进行数据包分发;

35、其中,采用第四模式按定位参数集求取ωnext为:

36、将所述αprev对应的当前视频故事线所有未发送数据包中对应帧播放序号大于等于pocprev的数据包选为ωnext的集合元素;然后将其按数据包对应帧的编码或解码序号从小到大排列即为ωnext,然后进行数据包分发。

37、在一些优选的实施方式中,根据所述jk更新全网用户对当前视频片源类型下所有故事线类型喜好顺序列表、用户对当前视频片源类型下所有故事线类型喜好顺序列表listtypev,all,listtypev,cur,其方法为:

38、首先在listtype,vcur中找到所述jk对应的偏好统计值,接着令偏好统计值增加1,然后listtypev,cur依据更新的第二列的偏好统计值,按从大到小的顺序重新排列;

39、listtypev,all的更新方法与listtypev,cur相同,只需将上述方法中的listtypev,cur替换为listtypev,all即可。

40、在一些优选的实施方式中,步骤s10前还包括编码步骤:

41、获取视频集合,编码端根据不同的故事线编号,将所述视频集合划分为独立故事支线图像子序列集及共有故事支线图像子序列集;其中,独立故事支线图像子序列集为仅含一个故事支线的图像序列集合;共有故事支线图像子序列集为至少包含两个故事支线的图像序列集合;

42、根据各图像子序列集对应的视频信息参数,构建辅助信息码流数据;

43、对所述独立故事支线图像子序列集、所述共有故事支线图像子序列集进行并行编码,获取视频码流数据;将所述视频码流数据、所述辅助信息码流数据合并,得到合并数据包;

44、其中,所述辅助信息码流数据{α,β}为:

45、α={num_lines_in_seq,type_of_video,line}

46、β={β(1),β(2)}

47、β(1)={typejj|1≤jj≤num2}

48、β(2)={type_of_lines_id(i))|1≤i≤num_lines_in_seq}

49、其中,type_of_video表示图像子序列集对应的视频所属类型,num_lines_in_seq表示图像子序列集包含故事线数量,line为默认故事线,即系统随机初始化设置的故事线,num2表示共有故事支线图像子序列集的数量,typejj表示时间序号为jj的共有故事支线图像子序列集对应的所有故事支线编号的集合,type_of_lines_id(i)为编号为i的故事支线所属类型。

50、在一些优选的实施方式中,步骤s70后还包括解码步骤:

51、解码端解析分发的合并数据包中的辅助信息码流数据,获取所述视频码流数据中各编码的图像子序列集对应的故事线数量;基于预设的故事线数量与解码方法的映射关系,对获取的故事线数量进行匹配,得到各编码的图像子序列集对应的解码方法,进而进行解码:

52、步骤s81,若所述故事线数量小于设定数量阈值,跳转步骤s82,否则令i=para,并将该故事线对应的时间序号大于最后已解码数据的所有未解码的视频码流数据,按时间序号依次解码,直至收到故事线切换参数,跳转步骤s83,否则结束解码;

53、步骤s82,按常规视频解码技术将该故事线对应的视频码流数据进行解码;所述常规视频解码技术包括h264、hevc;

54、步骤s83,解析所述辅助信息码流数据得到新旧故事线交接码流数据包,并解码该数据包,然后令para=paranew,跳转步骤s81;

55、其中,para表示当前解码故事线编号,paranew表示新故事线编号。

56、在一些优选的实施方式中,所述新旧故事线交接码流数据包其获取方法为:

57、ll=min(arc(typejj)|para∈typejj且paranew∈typejj且jj>tnew)。

58、其中,ll表示新旧故事线交接码流数据包的下标,min(变量|条件)表示对满足条件的变量求最小值,arc(typejj)表示求typejj对应的时间序号,tnew表示正在解码的数据包对应的时间序号。

59、本发明的有益效果:

60、本发明实现用户在不同故事线间任意切换的需求,并提升了视频分发效率。

61、1)本发明首先结合故事线高频切换的时间特性,分阶段设立多故事支线vr视频的分发策略;接着,结合视频源的统计特点和用户喜好特性,排列备选故事线的码流,提供故事线跳转时码流切换的优先级。最后,结合故事线的不同选择,进行用户喜好特性分析,设置本地喜好顺序列表,为分发端推送参数优化提供更新依据。本方法一方面结合故事线高频切换的时间特性,设计了分阶段视频分发策略,提升了多故事支线vr视频数据的分发时效性;另一方面结合用户喜好特性进行推荐,进一步提高了分发效率。

62、2)本发明通过添加多故事支线码流连接信息数据,将编码端已知的多故事支线跳转逻辑关系,传递至解码端。使解码端在兼容现行编码标准的同时,依据多故事支线码流连接信息数据,可获取各故事支线间的可行跳转关系,从而满足用户在不同故事线间任意切换的需求。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1