一种全景视频中投放资源的方法及显示设备与流程

文档序号:28922975发布日期:2022-02-16 13:39阅读:35来源:国知局
一种全景视频中投放资源的方法及显示设备与流程

1.本技术涉及全景视频技术领域,尤其涉及一种全景视频中投放资源的方法及显示设备。


背景技术:

2.全景视频是基于360度全景图像而发展的一种新型的多媒体形式,通过将一系列静态的全景图像连续播放而转化成动态的全景视频。全景视频一般由软件将全景摄像机采集的各个方位的视频图像拼合而成的,并使用专门的播放器进行播放,将平面视频投影为360 度全景模式,呈现给观赏者水平方向360度、垂直方向180度的全包围空间视域。观赏者可以通过头部动作、眼球运动、遥控器控制等方式控制全景视频的播放,从而体会身临其境的感受。作为一种新型异构多媒体业务,全景视频业务流含有音频、视频、文本、交互、控制指令等多种数据类型,具有多样化的服务质量(quality of service,qos)需求。
3.目前,在全景视频中投放广告、商标等资源时,通常直接对全景视频进行处理,在全景视频的相关位置处嵌入广告、商标等资源,这样,在更新投放的资源或者改变资源的嵌入位置时,需要重新对全景视频进行处理,操作较为繁琐,资源投放的灵活性较差;并且,直接对全景视频进行处理,容易损坏原始的全景视频片源。


技术实现要素:

4.本技术实施例提供了一种全景视频中投放资源的方法及显示设备,用以提高在全景视频中投放资源的灵活性。
5.第一方面,本技术实施例提供一种全景视频中投放资源的方法,包括:
6.响应于全景视频播放请求,获取目标全景视频;
7.响应于资源投放请求,根据投放信息,获取目标资源并确定所述目标资源的目标投放类型;
8.分别创建与所述目标投放类型相匹配的第一部分网格和第二部分网格,所述第一部分网格作为所述目标全景视频的渲染载体,所述第二部分网格作为所述目标资源的渲染载体,所述第一部分网格和第二部分网格组成一个完整的球面网格;
9.计算所述第一部分网格和所述第二部分网格上各个顶点的uv坐标;
10.对所述第一部分网格进行光栅化,生成各个第一片元,以及对所述第二部分网格进行光栅化,生成各个第二片元;
11.根据各个第一片元的uv坐标,从所述目标全景视频中获取相应的颜色值,以及根据各个第二片元的uv坐标,从所述目标资源中获取相应的颜色值,所述各个第一片元的uv坐标是对所述第一部分网格上的各个顶点的uv坐标插值得到的,所述各个第二片元的uv坐标是对所述第二部分网格上的各个顶点的uv坐标插值得到的;
12.根据各个第一片元的颜色值渲染第一部分网格,根据各个第二片元的颜色值渲染第二部分网格,同时显示渲染后的全景视频和目标资源。
13.第二方面,本技术实施例提供一种显示设备,包括显示器、存储器、处理器和至少一个外部通信接口,所述外部通信接口、所述显示器和所述存储器与所述处理器通过总线连接:
14.所述存储器中存储有计算机程序,所述处理器通过执行所述计算机程序实现以下操作:
15.响应于全景视频播放请求,通过所述至少一个外部通信接口获取目标全景视频;
16.响应于资源投放请求,根据投放信息,通过所述至少一个外部通信接口获取目标资源,并确定所述目标资源的目标投放类型;
17.分别创建与所述目标投放类型相匹配的第一部分网格和第二部分网格,所述第一部分网格作为所述目标全景视频的渲染载体,所述第二部分网格作为所述目标资源的渲染载体,所述第一部分网格和第二部分网格组成一个完整的球面网格;
18.计算所述第一部分网格和所述第二部分网格上各个顶点的uv坐标;
19.对所述第一部分网格进行光栅化,生成各个第一片元,以及对所述第二部分网格进行光栅化,生成各个第二片元;
20.根据各个第一片元的uv坐标,从所述目标全景视频中获取相应的颜色值,以及根据各个第二片元的uv坐标,从所述目标资源中获取相应的颜色值,所述各个第一片元的uv坐标是对所述第一部分网格上的各个顶点的uv坐标插值得到的,所述各个第二片元的uv坐标是对所述第二部分网格上的各个顶点的uv坐标插值得到的;
21.根据各个第一片元的颜色值渲染第一部分网格,根据各个第二片元的颜色值渲染第二部分网格,由所述显示器同时显示渲染后的全景视频和目标资源。
22.第三方面,本技术实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使计算机执行全景视频中投放资源的方法。
23.本技术的上述实施例中,播放目标全景视频的过程中,当接收到资源投放请求,根据投放信息,获取目标资源并确定目标资源的目标投放类型,分别创建与目标投放类型相匹配的第一部分网格和第二部分网格,并计算第一部分网格和第二部分网格上各个顶点的uv 坐标,经光栅化,得到各个第一片元和各个第二片元,并根据各个第一片元的uv坐标,从目标全景视频中获取相应的颜色值以渲染显示第一部分网格,以及根据各个第二片元的uv 坐标,从目标资源中获取相应的颜色值以渲染显示第二部分网格,从而实现在全景视频中投放目标资源,由于第一部分网格和第二部分网格为独立的两个网格,因此,可对目标全景视频和目标资源进行独立的显示,无需破坏原始的目标全景视频,且通过独立的两个网格进行渲染显示,充分利用了gpu的并行处理能力,减少了逻辑判断过程,提高了渲染效率;并且,根据不同的投放信息灵活的创建网格,提高了资源投放的灵活性。
附图说明
24.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
25.图1示例性示出了本技术实施例提供的球面网格的示意图;
26.图2示例性示出了本技术实施例提供的球面网格的坐标系示意图;
27.图3示例性示出了本技术实施例提供的图像标系示意图;
28.图4示例性示出了本技术实施例提供的第一投放类型的示意图;
29.图5示例性示出了本技术实施例提供的第二投放类型的示意图;
30.图6示例性示出了本技术实施例提供的全景视频中投放资源的方法流程图;
31.图7示例性示出了本技术实施例提供的创建的两个渲染网格示意图;
32.图8示例性示出了本技术实施例提供的另一创建的两个渲染网格示意图;
33.图9示例性示出了本技术实施例提供的完整的全景视频中投放资源的方法流程图;
34.图10示例性示出了本技术实施例提供的显示设备的结构图。
具体实施方式
35.为使本技术的目的、实施方式和优点更加清楚,下面将结合本技术示例性实施例中的附图,对本技术示例性实施方式进行清楚、完整地描述,显然,所描述的示例性实施例仅是本技术一部分实施例,而不是全部的实施例。
36.基于本技术描述的示例性实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术所附权利要求保护的范围。此外,虽然本技术中公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整实施方式。
37.需要说明的是,本技术中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本技术的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
38.本技术中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明 (unless otherwise indicated)。应该理解这样使用的用语在适当情况下可以互换,例如能够根据本技术实施例图示或描述中给出那些以外的顺序实施。
39.此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
40.本技术中使用的术语“模块”,是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
41.本技术实施例提供一种全景视频中投放资源的方法及显示设备。所述显示设备可以是头戴式显示设备、智能手机、平板电脑、计算机、笔记本电脑、智能电视等具有全景视频播放功能和交互功能的设备。
42.目前,具有全景视频播放功能和交互功能的显示设备大多支持等矩柱投影 (equi-rectangular projection,erp)格式的全景视频。这种投影方式把球面的经线映射成间距相等的垂直线,把纬线映射为间隔相等的水平线,则可生成一副纵横比为2∶1的二维矩形图像。其中,球面可作为全景视频播放的载体。
43.在播放全景视频时,需要将二维矩形图像重新映射到立体球面上进行显示。常规的方法是:在渲染引擎中按照某种规则绘制一个包含多个网格的球体,经光栅化生成各个片元,在进行全景视频渲染时,针对每一erp格式的全景视频帧,根据各个片元的uv坐标,从全景视频帧中获取相应的颜色值,根据各个片元的颜色值,渲染球面网格,并显示渲染后的全景视频帧。
44.图1示例性示出了本技术实施例提供的球面网格的示意图,如图1示出的,一个球面包含多个网格,每个网格由两个三角形组成,每个三角形包含三个顶点,每两个三角形组成一个四边形面片(piece)。假设整个球面由n行m列的piece组成(m和n为大于1的整数),由于球面上纬度方向跨度为180
°
,经度方向上跨度为360
°
,因此,m=2
×
n,每个piece的经度跨度(angle_lon)和纬度跨度(angle_lat)分别为360/m和180/n。
45.一个网格的描述信息包括顶点三维坐标、顶点uv坐标、顶点索引、顶点法线等,在渲染采样时,主要利用了顶点的三维坐标和顶点uv坐标。下面结合图2和图3分别描述球面网格上各顶点的三维坐标和uv坐标。
46.图2示例性示出了本技术实施例提供的球面网格的坐标系示意图,其中,o为坐标系的原点,以一个顶点为例,p为球面上第i向第j列piece的左上角顶点(i<n,j<m,行列号均从0开始),p的三维坐标为(p.x,p.y,p.z),点p在xz面的垂点为p1,p1在x轴上的垂点为p2,p在y轴上的垂点为p3,p1在z轴上的垂点为p4,则顶点p的坐标也可表示为(p2o,p3o,p4o)。球面网格的纬度范围为0
°
~180
°
,经度范围为0
°
~360
°
,则顶点p 在经度方向上的角度α=j*angle_lon,在纬度方向上的角度β=i*angle_lat。假设球体的半径为r,则顶点p的三维坐标可表示为(-r*sin(β)*sin(α),r*cos(β),-r*sin(β) *cos(α))。
47.图3示例性示出了本技术实施例提供的图像标系示意图,全景视频帧包含n行m列个分块,每个分块对应一个piece。整个全景视频帧的u坐标和v坐标的取值范围均为0~1,即全景视频帧的左上角、左下角、右上角、右下角四个顶点的uv坐标分为(0,1),(0,0), (1,0),(1,1),根据erp格式的映射关系,第i行第j列piece的左上角、左下角、右上角、右下角四个顶点的uv坐标分别为(j/m,1.0-i/n)、(j/m,1-(i+1)/n)、((j+1)/m, 1-i/n)、((j+1)/m,1-(i+1)/n),其中,i和j从0开始,i<n,j<m。
48.需要说明的是,图4仅是一种示例,四个顶点的坐标与选取的图像坐标系的原点和u、 v轴的正方向有关,当选取的图像坐标系原点不同时,uv坐标的表示方式不同。
49.通过上述方式,可以计算得到每个piece四个顶点的三维坐标和uv坐标,完成球面网格的创建,即球面网格的创建过程,可理解为计算网格顶点坐标的过程,进而基于创建的球面网格,实现全景视频中投放资源的方法。
50.根据全景视频的特点,在全景视频中投放资源的方式主要有两种类型,一是在全景视频的顶部或底部投放资源,记为第一投放类型。二是在全景视频的纬度方向的中间区域投放资源,记为第二投放类型。
51.以在全景视频的底部投放资源为例,图4示例性示出了第一投放类型的示意图,浅色区域501为全景视频的显示区域,深色区域502为资源的投放区域,投放区域以球体的极点为中心,按照固定的纬度跨度进行显示。
52.第一投放类型不会影响用户的主要视觉区域,适合于小广告或logo等资源的显示。
53.图5示例性示出了第二投放类型的示意图,浅色区域601为全景视频的显示区域,深色区域602为资源的投放区域,投放区域以球体上的

赤道

对应的纬度为中心上下对称。
54.第二投放类型一般配合用户视角进行显示,在某些场景下,视频运营人员根据用户视角指定某些区域作为重点区域向用户显示全景视频,对于其他区域则显示广告或者logo资源。这种投放类型可以根据实际需求灵活设置重点区域。
55.例如,对演唱会现场进行全景直播时,对于用户来说,舞台区域作为用户重点观看的区域,而观众席区域并不是用户关注的重点,此时,可将舞台区域的经纬度跨度范围设置为全景视频的显示区域,将观众席区域的经纬度跨度范围设置为广告或logo等资源的投放区域,以减小投放的资源对全景视频的影响。
56.需要说明的是,图4和图5仅是一种示例,并非严格的投放区域设置方式。例如,采用第二投放类型时,可以在球面上的任意区域投放资源,不一定以0纬度为中心上下对称,可以偏上也可以偏下。
57.针对上述投放类型,图6示例性示出了本技术实施例提供的全景视频中投放资源的方法流程图,该流程可由具有全景视频播放功能和交互功能的显示设备执行,主要包括以下几步:
58.s701:响应于全景视频播放请求,获取目标全景视频。
59.执行s701时,一种可选的实施方式为,启动显示设备中的播放程序,用户选择需要播放的目标全景视频后,发送全景视频播放请求,该请求携带目标全景视频的统一资源定位符(uniform resource locator,url),显示设备根据全景视频播放请求中的url获取目标全景视频。
60.在一些实施例中,用户也可以选择显示设备本地存储的目标全景视频,基于选择的目标全景视频的标识(如:名称,id号等),从本地获取目标全景视频。
61.s702:响应于资源投放请求,根据投放信息,获取目标资源并确定目标资源的目标投放类型。
62.执行s702时,一种可选的实施方式为,在满足资源投放的预设条件时,触发资源投放请求,资源投放请求中携带需要投放的目标资源的投放信息,投放信息中包含目标资源的目标投放类型(type)以及目标资源的标识(如:url、名称、id号等),显示设备根据目标资源的标识获取目标资源,并确定目标投放类型。
63.在本技术的实施例中,目标资源的投放类型包含第一投放类型(记为a)和第二投放类型(记为b),其中,第一投放类型为在球面网格的顶部或底部投放目标资源,如图4所示,第二投放类型为结合用户视角确定目标资源在球面网格上的投放区域,如图5所示。
64.需要说明的是,资源投放的预设条件可由运营人员根据实际需求进行预先设置,例如,设置按固定的时间间隔播放目标资源,或者将目标资源与全景视频帧进行关联,当播放关联的全景视频帧时,播放目标资源。
65.s703:分别创建与目标投放类型相匹配的第一部分网格和第二部分网格。
66.其中,第一部分网格作为目标全景视频的渲染载体,第二部分网格作为目标资源的渲染载体,第一部分网格和第二部分网格为两个独立的网格,可组成一个完整的球面网格,并且,第一部分网格上的各个第一网格和第二部分网格上的各个第二网格的经纬度跨度相同。
67.本技术的实施例中,目标资源的投放类型包含两种投放类型,为区别描述,分别记为第一投放类型和第二投放类型。
68.当目标投放类型为第一投放类型(type=a)时,继续对投放信息进行解析,可以得到目标资源的投放纬度跨度adsize和投放中心点loc1,则投放信息可表示为(type,adsize, loc,url),其中,0
°
《adsize《180
°
,loc1为球面网格的极点,取值为0或1,0表示在球面网格的顶部投放目标资源,1表示在球面网格的底部投放目标资源。
69.当目标投放类型为第二投放类型(type=b)时,继续对投放信息进行解析,可以得到目标资源的投放纬度跨度adsize1,投放经度跨度adsize2和目标全景视频的中心经度loc2,则投放信息可表示为(type,adsize1,adsize2,loc2,url),其中,0
°
《adsize1<180
°
,0
°
《adsize 2<360
°
,目标全景视频在纬度方向上的中心纬度恒为90
°
,因此,可仅表示目标全景视频的中心经度loc2,0
°
《loc2<360
°

70.由于第一部分网格和第二部分网格可组成一个如图1示出的完整的球面网格,且每个网格的经纬度跨度相同,因此,可将第一部分网格上的网格和第二部分网格上的网格视为连续的网格,此时,独立的两部分网格上各个网格的顶点三维坐标的计算方式,可按一个完整的球面网格计算,具体参见图2部分的描述。
71.若目标投放类型为第一投放类型,则在执行s703时,计算以投放信息中目标资源的投放中心点的对侧极点为中心,纬线方向上沿着第一纬度跨度确定的区域内(如图4的501 所示的区域),各个第一网格的顶点三维坐标,并根据各个第一网格的顶点三维坐标,生产第一部分网格,其中,第一纬度跨度等于180
°
减去目标资源的投放纬度跨度,以及,计算以投放信息中目标资源的投放中心点(南极点或北极点)为中心,纬线方向上沿着投放纬度跨度确定的区域内(如图4的502所示的区域),各个第二网格的顶点三维坐标,并根据各个第二网格的顶点三维坐标,生成第二部分网格。
72.例如,图7示例性示出了第一投放类型时创建的第一部分网格和第二部分网格,其中, loc1=1,第二部分网格为球面网格的底部,和第一部分网格恰好组成一个完整的球面网格。
73.若目标投放类型为第二投放类型,则在执行s703时,计算经度方向上以目标全景视频的中心经度为中心纬度方向上以90
°
纬度为中心确定的区域内(如图5中601所示的区域),各个第一网格的顶点三维坐标,并根据各个第一网格的顶点三维坐标,生成第一部分网格,以及,计算纬线方向上沿着目标资源的投放纬度跨度,经线方向沿着目标资源的投放经度跨度确定的区域内(如图5中602所示的区域),各个第二网格的顶点三维坐标,并根据各个第二网格的顶点三维坐标,生成第二部分网格。并且,在生成第一部分网格的过程中,根据第一部分网格的中心经度和中心纬度,调整用户视点的朝向,使用户视点的朝向在第一部分网格上的投影点为中心经度与中心纬度的交点(loc2,90
°
)。
74.例如,图8示例性示出了第二投放类型时创建的第一部分网格和第二部分网格,第一部分网格以

赤道

为中心纬度上下对称,和第一部分网格恰好组成一个完整的球面网格。
75.需要说明的是,目标投放类型为第二投放类型时,在创建第一部分网格时,调整用户视点的朝向是为方便用户了解观看全景视频的最佳视角,在网格创建完成后进行资源投放时,用户可随意选择转动用户视角,从而观看目标全景视频的同时观看投放的目标资源。
76.s704:计算第一部分网格和第二部分网格上各个顶点的uv坐标。
77.执行s704时,由于第一部分网格显示的图像是一个完整的全景视频帧,无论第一部分网格显示的全景视频帧的分辨率多大,全景视频帧都是纬度为0-180
°
,经度为0-360
°
的完整球面图像,因此,第一部分网格上各个网格的顶点uv坐标,与图3的计算方式相同。对于第二部分网格,显示的目标资源的经纬度跨度只是整个球面网格的一部分,因此,第二部分网格上各个网格的顶点uv坐标需采用新的计算方式计算。
78.假设第一部分网格和第二部分网格共n*m个网格,即第一部分网格和第二部分网格组成的球面网格为n行m列。由上述分析可知,m=2n,n为大于0的正整数。其中,第一部分网格和第二部分网格上各个网格的行列号是按照完整的球面网格进行命名的。
79.下面以第一部分网格和第二部分网格上的第i行第j列网格为例,描述该网格4个顶点的vu坐标的计算过程,其中,i和j为按照整个完整的球面网格命名的行列号,i和j从0 开始,i<n,j<m,具体实施时:
80.针对第一部分网格上第i行第j列网格的左上角、左下角、右上角、右下角四个顶点,其uv坐标分别为(j/m,1-i/n)、(j/m,1-(i+1)/n)、((j+1)/m,1-i/n)、((j+1)/m, 1-(i+1)/n),具体分析过程参见图2和图3的描述,再次不再重复。
81.针对第二部分网格上第i行第j列网格的左上角、左下角、右上角、右下角四个顶点,分别根据目标投放类型以及投放信息,确定相应顶点的uv坐标。
82.由于目标投放类型不同,投放信息的内容也不同,因此,第二部分网格上顶点的uv 坐标的计算方式不同,下面分情况进行介绍。
83.情况一
84.目标投放类型为第一投放类型,且投放信息中目标资源的投放中心点为北极点,则左上角、左下角、右上角、右下角四个顶点的uv坐标,分别为(j

/m

,1-i

/n

)、(j

/m

, 1-(i

+1)/n

)、((j

+1)/m

,1-i

/n

)、((j

+1)/m

,1-(i

+1)/n

):
85.其中,n

=adsize/angle_lat,angle_lat=180
°
/n,j

=j,m

=m,i

=i,adsize为投放信息中目标资源的投放纬度跨度,angle_lat为相应顶点所在网格的纬度跨度,i

表示相应顶点所在的网格在第二部分网格上的行号,n

表示第二部分网格的总行数,j

表示相应顶点所在的网格在第二部分网格上的列号。
86.情况二
87.目标投放类型为第一投放类型,且投放信息中目标资源的投放中心点为南极点,则左上角、左下角、右上角、右下角四个顶点的uv坐标,分别为(j

/m

,1-i

/n

)、(j

/m

, 1-(i

+1)/n

)、((j

+1)/m

,1-i

/n

)、((j

+1)/m

,1-(i

+1)/n

):
88.其中,n

=adsize/angle_lat,angle_lat=180
°
/n,j

=j,m

=m,i

=i-(180
°‑
adsize) /angle_lat,adsize为投放信息中目标资源的投放纬度跨度,angle_lat为相应顶点所在网格的纬度跨度,i

表示相应顶点所在的网格在第二部分网格上的行号,n

表示第二部分网格的总行数,j

表示相应顶点所在的网格在第二部分网格上的列号。
89.情况三
90.目标投放类型为第二投放类型,该网格上的4个顶点未跨域0
°
经线和360
°
经线相接的区域,则左上角、左下角、右上角、右下角四个顶点的uv坐标,分别为(j

/m

,1-i

/n

)、 (j

/m

,1-(i

+1)/n

)、((j

+1)/m

,1-i

/n

)、((j

+1)/m

,1-(i

+1)/n

):
91.其中,n

=adsize1/angle_lat,m

=adsize2/angle_lon,angle_lat=180
°
/n,angle_lon=360
°ꢀ
/m,i

=i-(180
°‑
adsize1)/(2*angle_lat),j

=j-start/angle_lon,star=loc2+(360
°‑
adsize2) /2,adsize1为投放信息中目标资源的投放纬度跨度,adsize2为投放信息中目标资源的投放经度跨度,angle_lat为相应顶点所在网格的纬度跨度,angle_lon为相应顶点所在网格的经度跨度,start为第二部分网格的起始经度值,loc2为投放信息中目标全景视频的中心经度, i

表示相应顶点所在的网格在第二部分网格上的行号,n

表示第二部分网格的总行数,j

表示相应顶点所在的网格在第二部分网格上的列号,m

表示第二部分网格的总列数。
92.情况四
93.目标投放类型为第二投放类型,该网格上的4个顶点跨域了0
°
经线和360
°
经线相接的区域,且start/angle_lon≤j<m,表明4个顶点在0
°
经线的左侧,则左上角、左下角、右上角、右下角四个顶点的uv坐标,分别为(j

/m

,1-i

/n

)、(j

/m

,1-(i

+1)/n

)、((j

+1)/m

,1-i

/n

)、((j

+1)/m

,1-(i

+1)/n

):
94.其中,n

=adsize1/angle_lat,m

=adsize2/angle_lon,angle_lat=180
°
/n,angle_lon=360
°ꢀ
/m,i

=i-(180
°‑
adsize1)/(2*angle_lat),j

=j-start/angle_lon,star=loc2+(360
°‑
adsize2) /2,adsize1为投放信息中目标资源的投放纬度跨度,adsize2为投放信息中目标资源的投放经度跨度,angle_lat为相应顶点所在网格的纬度跨度,angle_lon为相应顶点所在网格的经度跨度,start为第二部分网格的起始经度值,loc2为投放信息中目标全景视频的中心经度, i

表示相应顶点所在的网格在第二部分网格上的行号,n

表示第二部分网格的总行数,j

表示相应顶点所在的网格在第二部分网格上的列号,m

表示第二部分网格的总列数。
95.情况五
96.目标投放类型为第二投放类型,该网格的4个顶点跨域了0
°
经线和360
°
经线相接的区域,且0
°
≤j<(end-360
°
)/angle_lon,表明4个顶点在0
°
经线的右侧,则左上角、左下角、右上角、右下角四个顶点的uv坐标,分别为(j

/m

,1-i

/n

)、(j

/m

,1-(i

+1)/n

)、 ((j

+1)/m

,1-i

/n

)、((j

+1)/m

,1-(i

+1)/n

):
97.其中,n

=adsize1/angle_lat,m

=adsize2/angle_lon,angle_lat=180
°
/n,angle_lon=360
°ꢀ
/m,i

=i-(180
°‑
adsize1)/(2*angle_lat),j

=(360
°‑
start)/angle_lon+j,star=loc2+ (360
°‑
adsize2)/2,end=loc2+(360
°
adsize2)/2+adsize2,adsize1为投放信息中目标资源的投放纬度跨度,adsize2为投放信息中目标资源的投放经度跨度,angle_lat为相应顶点所在网格的纬度跨度,angle_lon为相应顶点所在网格的经度跨度,start为第二部分网格的起始经度值,end为第二部分网格的结束经度值,loc2为投放信息中目标全景视频的中心经度,i

表示相应顶点所在的网格在第二部分网格上的行号,n

表示第二部分网格的总行数,j

表示相应顶点所在的网格在第二部分网格上的列号,m

表示第二部分网格的总列数。
98.s705:对第一部分网格进行光栅化,生成各个第一片元,以及对第二部分网格进行光栅化,生成各个第二片元。
99.执行s705时,在显示设备的渲染管线中,分别对第一部分网格和第二部分网格进行光栅化,第一部分网格上的各个顶点经光栅化后生成各个第一片元,光栅化过程中,对第
一部分网格上的各个顶点的uv坐标进行插值,得到各个第一片元的uv坐标;第二部分网格上的各个顶点经光栅化后生成各个第二片元,光栅化过程中,对第二部分网格上的各个顶点的uv坐标进行插值,得到各个第二片元的uv坐标,每个片元对应二维显示屏幕上一个待渲染的像素点。
100.s706:根据各个第一片元的uv坐标,从目标全景视频中获取相应的颜色值,以及根据各个第二片元的uv坐标,从目标资源中获取相应的颜色值。
101.在s706中,针对需要投放目标资源的全景视频帧,根据各个第一片元的uv坐标,从全景视频中获取相应位置像素点的第一颜色值,将获取的第一颜色值作为相应第一片元的颜色值,根据各个第二片元的uv坐标,从目标资源的图像中获取相应位置像素点的第二颜色值,将获取的第二颜色值作为相应第二片元的颜色值。
102.s707:根据各个第一片元的颜色值渲染第一部分网格,根据各个第二片元的颜色值渲染第二部分网格,同时显示渲染后的全景视频和目标资源。
103.执行s707时,由于接收到资源投放请求后分别创建了两个独立的第一部分网格和第二部分网格,因此,可对第一部分网格和第二部分网格单独渲染,具体的,在第一部分网格对应的渲染管线着色器中,根据各个第一片元的颜色值渲染第一部分网格,在第二部分网格对应的渲染管线着色器中,根据各个第二片元的颜色值渲染第二部分网格,同时显示渲染后的全景视频帧和目标资源的图像,从而实现在全景视频中投放资源的方法。
104.上述实施例中,一方面,目标资源与全景视频独立显示,无需破坏全景视频的原始片源,另一方面,着色器在图像处理器(graphics processing unit,gpu)中执行,gpu的优势在于其可以进行批量并行计算,而劣势在于不善于进行逻辑判断,大量的逻辑判断会破坏gpu的并行性,造成渲染性能的下降,本技术实施例中两个网格相互独立,减少了各自的渲染管线着色器中逻辑判断的数量,避免由于逻辑判断导致的渲染性能下降的问题,提高了渲染效率;再一方面,根据不同的投放信息灵活的创建相应的渲染网格,提高了资源投放的灵活性。
105.需要说明的是,本技术对着色器(包括像素着色器)使用的编程语言不做限制性要求,可以包括开放图形库的着色器语言(open graphics library shading language,glsl)、微软directx的着色器语言(high level shader language,hlsl)、由微软和英伟达共同提出的着色器语言(c for graphics,cg)、unity 3d的着色器语言(unity 3d shader language)。
106.基于上述全景视频帧投放资源的方法,图9示例性示出了本技术实施例提供的完整的投放方法流程图,如图9所示,该流程主要包括以下几步:
107.s1001:响应于全景视频播放请求,获取目标全景视频,并进行视频解码。
108.s1002:响应于资源投放请求,获取投放信息。
109.在一些实施例中,投放信息包含目标资源的目标投放类型、投放纬度跨度、投放中心点和url,在另一些实施例中,投放信息包含目标资源的目标投放类型、投放纬度跨度、投放经度跨度、url和目标全景视频的中心经度。
110.s1003~s1004:根据投放信息,获取目标资源,并确定目标资源的目标投放类型。
111.由前述实施例可知,渲染载体的创建过程即为计算各个网格的顶点坐标的过程,下面 s1005至s1020分别描述两种目标投放类型对应的第一部分网格个第二部分网格的创
建过程。
112.s1005:若目标类型为第一投放类型,则根据投放信息,分别计算第一部分网格上各个网格顶点的三维坐标,以及第二部分网格上各个网格的顶点三维坐标。
113.其中,第一部分网格作为目标全景视频的渲染载体,第二部分网格作为目标资源的渲染载体,第一部分网格和第二部分网格组成一个完整球面网格。该部分的描述参见前述实施例,在此不再重复。
114.s1006:计算第一部分网格上各个顶点的uv坐标。
115.该步骤的描述具体参见s704,在此不再重复。
116.s1007:计算第二部分网格上各个顶点的u坐标。
117.该步骤的描述具体参见s704,在此不再重复。
118.s1008~s1010:确定投放信息中投放中心点的取值,若取值为0,则按第一方式计算第二部分网格上各个顶点的v坐标,若取值为1,则按第二方式计算第二部分网格上各个顶点的v坐标。
119.该步骤中,第一方式为情况一中的计算方式,第二方式为情况二中的计算方式。
120.s1011:若目标类型为第二投放类型,则根据投放信息,旋转用户视点。
121.在s1011中,旋转用户视点,是用户视点在第一部分网格上的投影点为(loc2,90
°
),以保证用户保持最佳的视频观看角度。
122.s1012:根据投放信息,分别计算目标全景视频的渲染载体上各个网格顶点的三维坐标,以及目标资源的渲染载体上各个网格的顶点三维坐标。
123.s1013:计算第一部分网格上各个顶点的uv坐标。
124.该步骤的描述具体参见s704,在此不再重复。
125.s1014:计算第二部分网格上各个顶点的v坐标。
126.该步骤的描述具体参见s704,在此不再重复。
127.s1015确定当前网格顶点是否跨越了0
°
经线和360
°
经线相接的区域,若是,执行s1016,否则执行s1017。
128.s1016:按第三方式计算第二部分网格上各个顶点的u坐标。
129.该步骤中,第三方式为情况三中的计算方式。
130.s1017~s1019:确定当前网格顶点是否在0
°
经线的左侧,若是,按第四方式计算第二部分网格上各个顶点的u坐标,否则,按第五方式计算第二部分网格上各个顶点的u坐标。
131.该步骤中,第四方式为情况四中的计算方式,第五方式为情况五中的计算方式。
132.得到各个网格顶点的三维坐标和uv坐标后,即完成了第一部分网格和第二部分网格的创建,基于创建的网格,s1020至s1022描述了目标全景视频和目标资源的显示过程。
133.s1020:对第一部分网格进行光栅化,得到各个第一片元的uv坐标,对第二部分网格进行光栅化,得打各个第二片元的uv坐标。
134.该步骤的具体描述参见s705,在此不再重复。
135.s1021:针对每一目标全景视频帧,根据各个第一片元的uv坐标,从目标全景视频帧中获取相应的颜色值,以及根据各个第二片元的uv坐标,从目标全景视频帧关联的目标资源的图像中获取相应的颜色值。
136.s1022:根据各个第一片元的颜色值渲染第一部分网格,根据各个第二片元的颜色
值渲染第二部分网格,同时显示渲染后的全景视频帧和目标资源图像。
137.基于相同的技术构思,本技术实施例提供一种显示设备,该显示设备可执本技术实施例提供的在全景视频中投放资源的方法流程,并能达到同样的技术效果,在此不再重复。
138.参见图10,该显示设备包括显示器1101、存储器1102、处理器1103和至少一个外部通信接口1104,至少一个外部通信接口1104、显示器1103和存储器1102与处理器1101通过总线1105连接;至少一个外部通信接口1104被配置为获取目标全景视频和目标资源,显示器1103被配置为同时显示目标全景视频和目标资源,存储器1102中存储有计算机程序,处理器1101通过执行计算机程序实现前述实施例中全景视频帧投放资源的方法。
139.本技术实施例还提供一种计算机可读存储介质,用于存储一些指令,这些指令被执行时,可以完成前述实施例的方法。
140.本技术实施例还提供一种计算机程序产品,用于存储计算机程序,该计算机程序用于执行前述实施例的方法。
141.最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
142.为了方便解释,已经结合具体的实施方式进行了上述说明。但是,上述示例性的讨论不是意图穷尽或者将实施方式限定到上述公开的具体形式。根据上述的教导,可以得到多种修改和变形。上述实施方式的选择和描述是为了更好的解释原理以及实际的应用,从而使得本领域技术人员更好的使用所述实施方式以及适于具体使用考虑的各种不同的变形的实施方式。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1