一种基于用户特性的全景视频分发方法和***
技术领域
本发明涉及全景视频分发技术领域,尤其涉及一种基于用户特性的全景视频分发方法和***。
背景技术
全景视频在提供全方位的视觉信息的同时,能够提供动态的实时的视频信息,使得人们可以看到环绕在摄像机周围的整个动态景象。全景图一般都是大分辨率的图像,它的生成需要大量的计算工作。而全景视频相比全景图,增加了一个新的时间维度。因此,计算量和数据量都将会是数十倍于全景图,这对硬件***的处理能力和软件***的工作效率都是极大的挑战。而当全景视频的码流进行分发传输时,对网络的带宽将形成极大地压力,对带宽极其有限的移动网络,更是极大地挑战。
发明内容
本发明实施例的目的在于提出一种基于用户特性的全景视频分发方法,旨在解决现有技术当全景视频的码流进行分发传输时,网络带宽压力过大的问题。
本发明实施例是这样实现的,一种基于用户特性的全景视频分发方法,,所述方法包括:
步骤A:将全景视频多路拼接码流,按摄像机采集视角顺序排列,然后将排序以后的全景视频多路拼接码流序列记为{stream1,stream2,...,streamN-1,streamN},对应的摄像头采集视角序列记为{θ1,θ2,...,θN-1,θN};
步骤B:发送const秒全景视频多路码流streamn;
步骤C:在const秒时间窗内,发送该时间窗内的标志视角
步骤D:如果全景视频多路码流streamn第nt+1时间窗内的码流存在,则进入步骤E;否则,结束全景视频多路码流的分发;
步骤E:如果
存在,则进入步骤F;否则,则令nt=nt+1,确定const,
的值,重新进入步骤B;
步骤F:如果用户惯性参数signuse绝对值等于1,则不计算用户惯性参数signuse,直接进入步骤G;否则,则首先计算用户惯性参数signuse,然后进入步骤G;
步骤G:根据用户惯性参数signuse,自适应分发全景视频多路码流;
步骤H:令nt=nt+1,确定const,
的值,重新进入步骤C。
其中,streamn表示按摄像机采集视角顺序排列后的第n个拼接码流,N表示拼接码流的个数,n=1,2,...,N;θn表示streamn对应的摄像机采集视角;
const表示时间窗时长参数;nt表示时间窗标号;
称为第nt个时间窗标志视角,
称为第nt-1个时间窗标志视角;
分别表示第nt个时间窗的时间上限和时间下限。
本发明实施例的另一目的在于提出一种基于用户特性的全景视频分发***,所述***包括:
拼接码流排列模块,用于将全景视频多路拼接码流,按摄像机采集视角顺序排列,然后将排序以后的全景视频多路拼接码流序列记为
{stream1,stream2,...,streamN-1,streamN},对应的摄像头采集视角序列记为{θ1,θ2,...,θN-1,θN};
码流发送模块,用于发送const秒全景视频多路码流streamn;
标志视角发送模块,用于在const秒时间窗内,发送该时间窗内的标志视角
第一判断处理模块,用于判断如果全景视频多路码流streamn第nt+1时间窗内的码流存在,则进入第二判断处理模块;否则,结束全景视频多路码流的分发;
第二判断处理模块,用于判断如果
存在,则进入第三判断处理模块;否则,则进入令第一设置模块;
第一设置模块,用于设置nt=nt+1,确定const,
的值,重新进入码流发送模块;
第三判断处理模块,用于判断如果用户惯性参数signuse绝对值等于1,则直接进入码流自适应分发装置;否则进入用户惯性参数计算模块;
用户惯性参数计算模块,用于首先计算用户惯性参数signuse,然后进入码流自适应分发装置;
码流自适应分发装置,用于根据用户惯性参数signuse,自适应分发全景视频多路码流;
第二设置模块,用于令nt=nt+1,确定const,
的值,重新进入标志视角发送模块;
其中,streamn表示按摄像机采集视角顺序排列后的第n个拼接码流,N表示拼接码流的个数,n=1,2,...,N;θn表示streamn对应的摄像机采集视角;
const表示时间窗时长参数;nt表示时间窗标号;
称为第nt个时间窗标志视角,
称为第nt-1个时间窗标志视角;
分别表示第nt个时间窗的时间上限和时间下限。
本发明的有益效果
本发明提出一种基于用户特性的全景视频分发方法和***。本发明方法利用用户观看特性的连续性,对全景视频拼接的多路码流进行自适应分发。从而使得全景视频能在网络拥塞时按需分发码流,在不影响观众的观看效果,同时提升全景视频播放的流畅度。
附图说明
图1是本发明优选实施例一种基于用户特性的全景视频分发方法流程图;
图2是图1中Step6的详细方法流程图;
图3是本发明优选实施例一种基于用户特性的全景视频分发***机构图;
图4是图3中码流自适应分发装置详细结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明进行进一步详细说明,为了便于说明,仅示出了与本发明实施例相关的部分。应当理解,此处所描写的具体实施例,仅仅用于解释本发明,并不用以限制本发明。
本发明实施例提出一种基于用户特性的全景视频分发方法和***。本发明实施例方法利用用户观看特性的连续性,对全景视频拼接的多路码流进行自适应分发。从而使得全景视频能在网络拥塞时按需分发码流,在不影响观众的观看效果,同时提升全景视频播放的流畅度。
实施例一
图1是本发明优选实施例一种基于用户特性的全景视频分发方法流程图;所述方法包括以下步骤:
Step0:将全景视频多路拼接码流,按摄像机采集视角顺序排列,然后将排序以后的全景视频多路拼接码流序列记为
{stream1,stream2,...,streamN-1,streamN},对应的摄像头采集视角序列记为{θ1,θ2,...,θN-1,θN}。
其中,streamn表示按摄像机采集视角顺序排列后的第n个拼接码流,N表示拼接码流的个数,n=1,2,...,N;θn表示streamn对应的摄像机采集视角;“按摄像机采集视角顺序排列”可按升序排列,也可按降序排列,为方便表述,文中采用升序排列模式,即θ1<θ2<......<θN-1<θN。
Step1:发送const秒全景视频多路码流streamn,n=1,2,...,N。
其中,
const表示时间窗时长参数;t
0表示发送码流初始缓冲时长,一般可取3-6秒;t
c表示发送码流缓冲时长;nt表示时间窗标号,初始值为1。
Step2:在const秒时间窗内,发送该时间窗内的标志视角
其中,
称为第nt个时间窗标志视角,
表示第nt个时间窗的视觉角度上限和下限,
max(变量|条件)分别表示对求满足条件的变量求最小值、最大值;t表示时间变量;
分别表示第nt个时间窗的时间上限和时间下限,
Step3:如果全景视频多路码流streamn(n=1,2,...,N)第nt+1时间窗内的码流存在,则进入Step4;否则,结束全景视频多路码流的分发。
Step4:如果
存在,则进入Step5;否则,则令nt=nt+1,确定const,
的值,重新进入Step1。
Step5:如果用户惯性参数signuse绝对值等于1,则不计算用户惯性参数signuse,直接进入Step6;否则,则首先计算用户惯性参数signuse,然后进入Step6。
“计算用户惯性参数signuse”的方法如下:
步骤1:如果
且
则令tempu=tempu+1;否则如果
且
则令tempd=tempd+1;否则,直接进入步骤2;
其中,Thres1、Thres2分别表示第一、第二判定阈值;abs(变量)表示对变量求绝对值;tempu、tempd分别表示第一、第二角度变换统计量,初始值均为0;signuse表示用户惯性参数,初始值为0。
Step6:根据用户惯性参数signuse,自适应分发全景视频多路码流。
图2是图1中Step6的详细方法流程图;具体包括以下步骤:
Step62:首先计算dθminu=min(dθn|dθn>0,n=1,2,...,N),然后找到dθminu对应的摄像机采集角度,记为θnow,对应的码流记为streamnow;dθminu为临时变量;
Step63:将streamnow及streamnow之后的码流顺序放入右侧码流序列表,记为tableu={streamnow,streamnow+1,streamnow+2,...,streamN},然后将streamnow之前的码流倒序放入左侧码流序列表,记为tabled={streamnow-1,streamnow-2,streamnow-3,...,stream1}
Step64:如果signuse=1,则按第一方向构建全景视频多路码流分发序列表;否则,如果signuse=-1,则按第二方向构建全景视频多路码流分发序列表;否则,按第三方向构建全景视频多路码流分发序列表。
其中,“按第一方向构建全景视频多路码流分发序列表”方法如下:
按照先numu个tableu码流后numd个tabled码流的结构规律,构建全景视频多路码流分发序列表,其中要求numu>numd,举例说明:numu=2、numd=1
“按第二方向构建全景视频多路码流分发序列表”方法如下:
按照先numd个tabled码流后numu个tableu码流的结构规律,构建全景视频多路码流分发序列表,其中要求numd>numu,举例说明:numd=2、numu=1
“按第三方向构建全景视频多路码流分发序列表”方法如下:
按照先1个tabled码流后1个tableu码流的结构规律,构建全景视频多路码流分发序列表或者按照先1个tableu码流后1个tabled码流的结构规律,构建全景视频多路码流分发序列表;举例说明:
Step65:按全景视频多路码流分发序列表的顺序,依次发送全景视频多路码流对应nt+1时间窗内的码流。
Step7:令nt=nt+1,确定const,
的值,重新进入Step2。
实施例二
图3是本发明优选实施例一种基于用户特性的全景视频分发***机构图;所述***包括:
拼接码流排列模块,用于将全景视频多路拼接码流,按摄像机采集视角顺序排列,然后将排序以后的全景视频多路拼接码流序列记为
{stream1,stream2,...,streamN-1,streamN},对应的摄像头采集视角序列记为{θ1,θ2,...,θN-1,θN}。
其中,streamn表示按摄像机采集视角顺序排列后的第n个拼接码流,N表示拼接码流的个数,n=1,2,...,N;θn表示streamn对应的摄像机采集视角;“按摄像机采集视角顺序排列”可按升序排列,也可按降序排列,为方便表述,文中采用升序排列模式,即θ1<θ2<......<θN-1<θN。
码流发送模块,用于发送const秒全景视频多路码流streamn,n=1,2,...,N。
其中,
const表示时间窗时长参数;t
0表示发送码流初始缓冲时长,一般可取3-6秒;t
c表示发送码流缓冲时长;nt表示时间窗标号,初始值为1。
标志视角发送模块,用于在const秒时间窗内,发送该时间窗内的标志视
其中,
称为第nt个时间窗标志视角,
表示第nt个时间窗的视觉角度上限和下限,
max(变量|条件)分别表示对求满足条件的变量求最小值、最大值;t表示时间变量;
分别表示第nt个时间窗的时间上限和时间下限,
第一判断处理模块,用于判断如果全景视频多路码流streamn(n=1,2,...,N)第nt+1时间窗内的码流存在,则进入第二判断处理模块;否则,结束全景视频多路码流的分发。
第二判断处理模块,用于判断如果
存在,则进入第三判断处理模块;否则,则进入令第一设置模块;
第一设置模块,用于设置nt=nt+1,确定const,
的值,重新进入码流发送模块。
第三判断处理模块,用于判断如果用户惯性参数signuse绝对值等于1,则直接进入码流自适应分发装置;否则进入用户惯性参数计算模块;
用户惯性参数计算模块,用于首先计算用户惯性参数signuse,然后进入码流自适应分发装置。
“计算用户惯性参数signuse”的方法如下:
步骤1:如果
且
则令tempu=tempu+1;否则如果
且
则令tempd=tempd+1;否则,直接进入步骤2;
其中,Thres1、Thres2分别表示第一、第二判定阈值;abs(变量)表示对变量求绝对值;tempu、tempd分别表示第一、第二角度变换统计量,初始值均为0;signuse表示用户惯性参数,初始值为0。
码流自适应分发装置,用于根据用户惯性参数signuse,自适应分发全景视频多路码流。
第二设置模块,用于令nt=nt+1,确定const,
的值,重新进入标志视角发送模块。
进一步地,图4是图3中码流自适应分发装置详细结构图,所述码流自适应分发装置还包括:
角度差序列计算模块,用于计算角度差序列,记为
n=1,2,...,N;
临时摄像机采集角度及对应码流获取模块,用于首先计算dθminu=min(dθn|dθn>0,n=1,2,...,N),然后找到dθminu对应的摄像机采集角度,记为θnow,对应的码流记为streamnow;dθminu为临时变量;
码流序列表设置模块,用于将streamnow及streamnow之后的码流顺序放入右侧码流序列表,记为
tableu={streamnow,streamnow+1,streamnow+2,...,streamN},然后将streamnow之前的码流倒序放入左侧码流序列表,记为
tabled={streamnow-1,streamnow-2,streamnow-3,...,stream1}
码流分发序列表构建模块,用于如果signuse=1,则按第一方向构建全景视频多路码流分发序列表;否则,如果signuse=-1,则按第二方向构建全景视频多路码流分发序列表;否则,按第三方向构建全景视频多路码流分发序列表。
其中,“按第一方向构建全景视频多路码流分发序列表”方法如下:
按照先numu个tableu码流后numd个tabled码流的结构规律,构建全景视频多路码流分发序列表,其中要求numu>numd,举例说明:numu=2、numd=1
“按第二方向构建全景视频多路码流分发序列表”方法如下:
按照先numd个tabled码流后numu个tableu码流的结构规律,构建全景视频多路码流分发序列表,其中要求numd>numu,举例说明:numd=2、numu=1
“按第三方向构建全景视频多路码流分发序列表”方法如下:
按照先1个tabled码流后1个tableu码流的结构规律,构建全景视频多路码流分发序列表或者按照先1个tableu码流后1个tabled码流的结构规律,构建全景视频多路码流分发序列表;举例说明:
table={streamnow,streamnow-1,
streamnow+1,streamnow-2,
,...,}
码流发送模块,用于按全景视频多路码流分发序列表的顺序,依次发送全景视频多路码流对应nt+1时间窗内的码流。
本领域的普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序指令相关硬件来完成的,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质可以为ROM、RAM、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。