CN112203073B - 一种适用于vr实时渲染应用的异步帧外插管线方法和系统 - Google Patents

一种适用于vr实时渲染应用的异步帧外插管线方法和系统 Download PDF

Info

Publication number
CN112203073B
CN112203073B CN202011413250.XA CN202011413250A CN112203073B CN 112203073 B CN112203073 B CN 112203073B CN 202011413250 A CN202011413250 A CN 202011413250A CN 112203073 B CN112203073 B CN 112203073B
Authority
CN
China
Prior art keywords
motion
camera
image
motion vector
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011413250.XA
Other languages
English (en)
Other versions
CN112203073A (zh
Inventor
王西颖
傅锡豪
过洁
郭延文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Qiyuan Technology Co.,Ltd.
Original Assignee
Nanjing Iqiyi Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Iqiyi Intelligent Technology Co Ltd filed Critical Nanjing Iqiyi Intelligent Technology Co Ltd
Priority to CN202011413250.XA priority Critical patent/CN112203073B/zh
Publication of CN112203073A publication Critical patent/CN112203073A/zh
Application granted granted Critical
Publication of CN112203073B publication Critical patent/CN112203073B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/122Improving the 3D impression of stereoscopic images by modifying image signal contents, e.g. by filtering or adding monoscopic depth cues

Abstract

本发明实施例公开了一种适用于VR实时渲染应用的异步帧外插管线方法和系统,该方法包括:获取相机与图像参数信息,将画面运动拆分为相机平移运动、场景中物体运动和相机旋转运动;利用视差映射原理,对相机平移运动进行处理得到相机平移后的第一外插图像;利用相机平移运动修正算法,对场景中物体运动进行游戏引擎渲染的第一运动向量缓冲变换,得到第一外插图像对应的物体运动的第二运动向量缓冲,并利用不动点迭代方法进行帧外插得到第二外插图像;将第二外插图像进行相机旋转运动的平滑计算,得到最终目标外插图像。相对于现有技术而言,本发明的技术方案能够提高渲染画面的帧率,保证使用者的良好体验。

Description

一种适用于VR实时渲染应用的异步帧外插管线方法和系统
技术领域
本发明涉及图形渲染与虚拟现实技术领域,尤其涉及一种适用于VR实时渲染应用的异步帧外插管线方法和系统。
背景技术
随着科技的发展,头戴式VR设备逐步走近人们的生活,为了提供良好的用户体验,目前的头戴式VR设备往往拥有较高的屏幕刷新率和分辨率。然而为了能够在高分辨率下保持较高的刷新率,VR实时渲染应用对于硬件设备的要求也相对更高。如果硬件设备的渲染帧率达不到(或者跟不上)屏幕刷新率,便会导致画面延迟、抖动等问题。帧外插(frameextrapolation)是一种可以解决上述问题的技术,其考虑利用历史渲染信息来得到新的一帧,避免了复杂的着色计算来提升画面帧率。
目前,大部分VR实时渲染应用已经采用了异步时间扭曲(ATW)来减缓帧率不足对于用户带来的不良体验。ATW技术利用一个与渲染并行的线程,其在每次屏幕刷新前,从渲染缓冲队列中获取最新完成的渲染帧,并将其变换到当前相机的旋转角。使用这种技术可以很大程度减轻因为帧率不足而导致的头戴设备转动输入延迟。然而该方法并没有考虑相机的平移运动,因此当帧率不足时仍然可能感受到相机平移运动的输入延迟。
此外还有利用游戏引擎渲染的运动向量缓冲(motion vector buffer)进行帧外插的一些方法。其中以不动点迭代方法最为高效。其通过迭代的方法找到当前外插帧纹理坐标对应的前一帧中的运动向量和纹理坐标。但是该方法的效果受制于初始点的选取,如果没有选取准确的初始点,迭代可能无法收敛。
综上所述,当前现有技术中对于VR实时渲染应用,仍然缺乏一个完善的方案来通过帧外插全方位地维持用户的稳定体验,进而保障VR设备的使用效果是亟待解决的问题。
发明内容
有鉴于此,本发明实施例提出一种适用于VR实时渲染应用的异步帧外插管线方法和系统。
本发明的一实施例提出一种适用于VR实时渲染应用的异步帧外插管线方法,包括:
获取相机与图像参数信息,将画面运动拆分为相机平移运动、场景中物体运动和相机旋转运动;
利用视差映射原理,对所述相机平移运动进行处理得到相机平移后的第一外插图像;
利用相机平移运动修正算法,对所述场景中物体运动进行游戏引擎渲染的第一运动向量变换,得到所述第一外插图像对应的物体运动的第二运动向量,并利用不动点迭代方法进行帧外插得到第二外插图像;
将所述第二外插图像进行相机旋转运动的平滑计算,得到最终目标外插图像。
进一步地,在上述的一种适用于VR实时渲染应用的异步帧外插管线方法中,所述“利用视差映射原理,对所述相机平移运动进行处理得到相机平移后的第一外插图像”包括:
根据后处理着色器的第一纹理坐标计算上一时刻相机位置下的第二纹理坐标,其中,所述相机与图像参数信息包括颜色缓冲;
根据两步迭代的视差映射方法计算深度值和目标纹理坐标,并根据所述目标纹理坐标对上一帧的所述颜色缓冲进行采样生成相机平移新视点下的初步图像;
采用临近点采样的方法对所述初步图像的遮挡与边缘处进行修正,检测当前采样是否位于初步图像中物体的边界,并通过多次采样取平均值的方式对所述深度值进行修正得到第一修正深度值;
判断在所述物体边缘处是否出现采样错误,并在出现采样错误的情况下对深度值进行修正得到第二修正深度值;
利用所述第二修正深度值计算偏移量和对应修正后的目标纹理坐标,根据修正后目标纹理坐标重新进行采样以生成相机平移新视点下的第一外插图像。
进一步地,在上述的一种适用于VR实时渲染应用的异步帧外插管线方法中,所述“利用相机平移运动修正算法,对所述场景中物体运动进行游戏引擎渲染的第一运动向量变换,得到所述第一外插图像对应的物体运动的第二运动向量,并利用不动点迭代方法进行帧外插得到第二外插图像”包括:
对所述场景中物体运动进行游戏引擎渲染的第一运动向量变换,得到所述第一外插图像对应的物体运动的第二运动向量,并对所述第二运动向量进行去相机移动与头部移动修正;
利用不动点迭代方法,对修正后的第二运动向量进行物体运动平滑得到第二外插图像。
进一步地,在上述的一种适用于VR实时渲染应用的异步帧外插管线方法中,所述“对所述场景中物体运动进行游戏引擎渲染的第一运动向量变换,得到所述第一外插图像对应的物体运动的第二运动向量,并对所述第二运动向量进行去相机移动与头部移动修正”包括:
对每个顶点计算当前帧的纹理坐标与前一帧的纹理坐标之差,并生成所述第一运动向量;
将所述第一运动向量变换到合成帧的相机空间下,得到所述第二运动向量,其中,所述合成帧位于所述当前帧与所述前一帧之间;
对所述第一运动向量和所述第二运动向量进行去相机移动与头部移动修正。
进一步地,在上述的一种适用于VR实时渲染应用的异步帧外插管线方法中,所述“将所述第一运动向量变换到合成帧的相机空间下,得到所述第二运动向量”包括:
利用相机平移运动平滑的算法,计算像素着色器的每一个纹理坐标在当前帧的纹理坐标;
对所述第一运动向量进行采样;
令所述当前帧对应的纹理坐标与所述第一运动向量之差为所述当前帧的纹理坐标对应的顶点在前一帧的纹理坐标;
对前一帧的深度值进行采样,并生成当前帧的纹理坐标在当前帧的深度值;
设定固定误差常量,判断所述前一帧的深度值与所述当前帧的深度值之差是否大于所述固定误差常量;
若大于,则所述当前帧的纹理坐标对应的像素在前一帧是被遮挡的,并利用当前帧的深度值替代所述前一帧的深度值;
利用相机变换矩阵与相机投影矩阵,计算所述前一帧的纹理坐标对应的世界空间顶点变换到当前帧的下一帧所在相机位置下的纹理坐标;
根据所述下一帧所在相机位置下的纹理坐标计算所述第二运动向量,并将所述第二运动向量写入渲染缓冲区。
进一步地,在上述的一种适用于VR实时渲染应用的异步帧外插管线方法中,所述“利用不动点迭代方法,对修正后的第二运动向量进行物体运动平滑得到第二外插图像”包括:
利用深度加权的固定区间收缩法选取初始点;
将所述初始点代入物体运动平滑方程,并利用不动点迭代方法求解得到所述第二外插图像。
进一步地,在上述的一种适用于VR实时渲染应用的异步帧外插管线方法中,所述“利用深度加权的固定区间收缩法选取初始点”包括:
确定初始搜索区间;
在所述初始搜索区间内,对每个纹理坐标进行深度值采样;
根据采样得到的深度值计算区间矩阵,并利用迭代法计算所述区间矩阵对应的纹理坐标是否收敛,并根据收敛结果选取相应的初始点。
进一步地,在上述的一种适用于VR实时渲染应用的异步帧外插管线方法中,所述“根据收敛结果选取相应的初始点”包括:
若收敛,则返回收敛时的纹理坐标;
若不收敛,则将所述区间矩阵的高度和宽度进行缩小生成新的区间矩阵,并重复判断所述新的区间矩阵的纹理坐标是否收敛,并当所述区间矩阵的缩小次数超过预设阈值时,返回相应的纹理坐标。
进一步地,在上述的一种适用于VR实时渲染应用的异步帧外插管线方法中,所述“将所述第二外插图像进行相机旋转运动的平滑计算,得到最终目标外插图像”包括:
将所述第二外插图像作为输入传入VR运行框架中的ATM模块中,并利用相机旋转矩阵进行旋转运动平滑计算得到所述最终目标外插图像。
本发明的另一实施例提出一种适用于VR实时渲染应用的异步帧外插管线系统,包括:
图像拆分单元,用于获取相机与图像参数信息,将画面运动拆分为相机平移运动、场景中物体运动和相机旋转运动;
相机平移运动图像后处理单元,用于利用视差映射原理,对所述相机平移运动进行处理得到相机平移后的第一外插图像;
物体运动图像后处理单元,用于利用相机平移运动修正算法,对所述场景中物体运动进行游戏引擎渲染的第一运动向量变换,得到所述第一外插图像对应的物体运动的第二运动向量,并利用不动点迭代方法进行帧外插得到第二外插图像;
相机旋转运动图像后处理单元,用于将所述第二外插图像进行相机旋转运动的平滑计算,得到最终目标外插图像。
本发明实施例提出的方法针对VR实时渲染管线的特点,通过将画面运动分解成相机平移运动、物体运动与相机旋转运动,每部分使用不同的方法来进行帧外插,并将三个模块串联来最终实现完整的一帧图像生成。相对于现有技术而言,采用本发明实施例的方法由于单独考虑了相机的运动,因此在相机大幅度不规则运动时能够保证更准确的外插估计效果。并且,应用视差映射原理与坐标系变换关系,实现了将游戏引擎渲染的运动向量中相机运动的成分去除,并将运动向量变换到外插帧的相机位置下,进而防止画面伪影。本发明可以应用于VR实时渲染应用中以维持渲染帧率,在图形渲染管线中使用像素着色器高效地实现,保证良好的用户体验。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
图1示出了本发明实施例的异步插管线示意图;
图2示出了本发明实施例适用于VR实时渲染应用的异步帧外插管线方法第一流程示意图;
图3示出了本发明实施例步骤S102第二流程示意图;
图4示出了本发明实施例步骤S103第三流程示意图;
图5示出了本发明实施例步骤S301第四流程示意图;
图6示出了本发明实施例步骤S402第五流程示意图;
图7示出了本发明实施例适用于VR实时渲染应用的异步帧外插管线系统示意图。
主要元件符号说明:
10-图像拆分单元;20-相机平移运动图像后处理单元;30-物体运动图像后处理单元;40-相机旋转运动图像后处理单元。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
实施例1
请参照图1,本发明实施例针对VR实时渲染管线的特点,提出了一套平滑画面运动的帧外插管线,其可以保证当渲染应用的帧率低于屏幕刷新率时进行帧外插来保持帧率平稳,有效提高渲染画面的帧率,保证使用者的良好体验。本发明实施例中的帧外插管线是异步管线,且考虑在两帧中间插入一帧的情况。假设目前已有某个场景在历史时间第t-2时刻和t时刻各自的相机信息和渲染结果(包括第t-2帧的深度缓冲
Figure 156658DEST_PATH_IMAGE001
与颜色缓冲
Figure 886848DEST_PATH_IMAGE002
,和第t帧的深度
Figure 539022DEST_PATH_IMAGE003
、颜色
Figure 793286DEST_PATH_IMAGE004
和运动向量缓冲
Figure 155128DEST_PATH_IMAGE005
)以及第t+1帧的相机信息,根据上述信息合成出第t+1帧的结果。该管线的核心思想是将画面的运动拆解成:相机平移运动、场景中物体运动、相机旋转运动。三个部分分别用不同的模块进行外插,即相机平移运动图像后处理模块、物体运动图像后处理模块、相机旋转运动图像后处理模块,并且前一个模块的输出作为后一个模块的输入。例如:相机平移运动图像后处理模块将作为物体运动图像后处理模块的输入,并且得到的结果会作为相机旋转运动图像后处理模块的输入。颜色缓冲是指存储视口中每个像素的颜色;深度缓冲(也称为z缓冲、深度图等),深度缓冲是由各像素的像素值表示该像素中描绘的描绘物体与视点(相机)的直线距离(z 值:深度值)的二维图像。运动向量缓冲是指一张纹理贴图(或称图像)中其每一个像素存储了该像素点对应的运动向量。
如图2所示,下面对本发明实施例提供的一种适用于VR实时渲染应用的异步帧外插管线方法进行详细阐述。
步骤S101,获取相机与图像参数信息,将画面运动拆分为相机平移运动、场景中物体运动和相机旋转运动;
步骤S102,利用视差映射原理,对相机平移运动进行处理得到相机平移后的第一外插图像;
步骤S103,利用相机平移运动修正算法,对场景中物体运动进行游戏引擎渲染的第一运动向量缓冲变换,得到第一外插图像对应的物体运动的第二运动向量缓冲,并利用不动点迭代方法进行帧外插得到第二外插图像;
步骤S104,将第二外插图像进行相机旋转运动的平滑计算,得到最终目标外插图像。
具体地,本发明实施例提供的方法首先将把画面运动拆分成相机平移运动,场景中物体运动和相机旋转运动,分别对应三个图像后处理模块,且这三个模块是串联结构。对于前一帧的渲染图像,经过这三个串联的模块处理来得到新一帧的外插结果。对于相机平移运动使用视差映射原理实现,得到的结果记为图像A(第一外插图像);对于场景中物体运动利用相机平移运动修正的算法对游戏引擎渲染的运动向量缓冲记为B(第一运动向量缓冲)进行变换,得到了相机平移后图像A对应的物体运动的运动向量缓冲记为B’(第二运动向量缓冲),并利用不动点迭代方法进行帧外插,得到的结果记为缓冲C(第二外插图像);对于相机旋转运动,将缓冲C作为输入,传入VR运行框架中的ATW模块中进行相机旋转运动的平滑计算,得到最终目标外插图像D。
如图3所示,步骤S102包括如下子步骤:
子步骤S201,根据后处理着色器的第一纹理坐标计算上一时刻相机位置下的第二纹理坐标,其中,相机与图像参数信息包括颜色缓冲;
子步骤S202,根据两步迭代的视差映射方法计算深度值和目标纹理坐标,并根据目标纹理坐标对上一帧的颜色缓冲进行采样生成相机平移新视点下的初步图像;
子步骤S203,采用临近点采样的方法对初步图像的遮挡与边缘处进行修正,检测当前采样是否位于初步图像中物体的边界,并通过多次采样取平均值的方式对深度值进行修正得到第一修正深度值;
子步骤S204,判断在物体边缘处是否出现采样错误,并在出现采样错误的情况下对深度值进行修正得到第二修正深度值;
子步骤S205,利用第二修正深度值计算偏移量和对应修正后的目标纹理坐标,根据修正后目标纹理坐标重新进行采样以生成相机平移新视点下的第一外插图像。
具体地,对于给定的颜色纹理和高度图,视差映射通过估计每个纹理坐标
Figure 712011DEST_PATH_IMAGE006
对应的视线与高度图的交点处的深度值来计算偏移量
Figure 41361DEST_PATH_IMAGE007
,然后对
Figure 787732DEST_PATH_IMAGE006
进行偏移,如公式(1)所示,进而得到颜色纹理上对应的纹理坐标,并进行采样。
Figure 518927DEST_PATH_IMAGE008
(1)
其中,
Figure 122078DEST_PATH_IMAGE009
为纹理坐标,
Figure 938724DEST_PATH_IMAGE010
为偏移量,uv’为偏移后的纹理坐标。
该部分采用视差映射的原理,把t时刻相机渲染的深度缓冲
Figure 485856DEST_PATH_IMAGE011
作为高度图,颜色缓冲
Figure 805979DEST_PATH_IMAGE012
作为采样纹理,对平移后的相机位置与每个纹理坐标
Figure 970244DEST_PATH_IMAGE013
之间的视线使用视差映射来采样
Figure 556077DEST_PATH_IMAGE012
;记采样得到的颜色值为
Figure 893517DEST_PATH_IMAGE014
,估计的视线和
Figure 84459DEST_PATH_IMAGE015
交点的高度值为
Figure 154046DEST_PATH_IMAGE016
。把
Figure 679705DEST_PATH_IMAGE014
吸入缓冲区A,把
Figure 368306DEST_PATH_IMAGE017
写入缓冲区
Figure 928601DEST_PATH_IMAGE018
(作为合成帧相机下的深度缓冲近似)。
视差映射的核心在于估计视线与世界空间中高度图的相交点处的高度值,对此有许多不同的改进方法,包括视差遮蔽映射,光线步进等。在本发明实施例的实际实现时,可以在保证高计算效率的同时得到准确的运动修正结果。
如图4所示,步骤S103包括如下子步骤:
子步骤S301,对场景中物体运动进行游戏引擎渲染的第一运动向量变换,得到第一外插图像对应的物体运动的第二运动向量,并对第二运动向量进行去相机移动与头部移动修正;
具体地,如图5所示,子步骤S301又包括如下子步骤:
子步骤S401,对每个顶点计算当前帧的纹理坐标与前一帧的纹理坐标之差,并生成第一运动向量;需要说明的是,本发明实施例提及的“顶点”和“世界空间顶点”分别为纹理坐标系下的顶点和世界空间坐标系下的顶点,后续技术内容中涉及的“顶点”和“世界空间顶点”就不再解释了。
子步骤S402,将第一运动向量缓冲变换到合成帧的相机空间下,得到第二运动向量,其中,合成帧位于当前帧与前一帧之间;
子步骤S403,对第一运动向量和第二运动向量进行去相机移动与头部移动修正。
具体地,为了平滑场景中物体的运动,考虑使用游戏引擎渲染的运动向量缓冲区(motion vector),第一运动向量的计算方法如下:
Figure 169089DEST_PATH_IMAGE019
(2)
其中,mv为第一运动向量,View 1View 2分别为第t-2帧和第t帧的相机矩阵,Proj为投影矩阵,p为顶点的坐标,Model 1Model 2为第t-2帧和第t帧的模型投影矩阵。在上述公式(2)中,该括号内的
Figure 929847DEST_PATH_IMAGE020
计算结果为一个四维的向量(r,g,b,a);这里使用rg表示取值上述括号内该向量的前两个分量(r,g);即对于每个顶点
Figure 874670DEST_PATH_IMAGE021
,计算其在当前帧(对应下标2的变换矩阵)的屏幕空间坐标到前一帧(对应下标1的变换矩阵)的屏幕空间坐标的差。
从上述计算方式可以看出,运动向量同时考虑了物体的运动和相机的运动,考虑到相机的运动已经在前一步的处理操作进行平滑了,如果不将其从运动向量中去除,则会导致相机运动信息被平滑两次,从而造成屏幕画面伪影的问题。同时,由于使用相机平滑后的颜色缓冲作为输入,因此还需要把运动向量变换到新一帧的相机空间下,即需要计算如下的第二运动向量(1对应第t-2帧,2对应第t帧,3对应当前需要合成得到的帧):
Figure 774624DEST_PATH_IMAGE022
(3)
其中,mv’为第二运动向量,View 3为合成帧的相机矩阵,Proj为投影矩阵,p为顶点的坐标,Model 1Model 2为第t-2帧和第t帧的模型投影矩阵,对此不再赘述。上述公式3中该括号内的
Figure 576226DEST_PATH_IMAGE023
计算结果为一个四维的向量(r,g,b,a);这里使用rg表示取值上述括号内该向量的前两个分量(r,g)。
公式(2)与公式(3)的区别在于相机矩阵上。为了在相机平滑后的结果进行物体运动平滑,需要保证运动向量定义在当前需要合成得到的帧的相机空间下,因此需要把公式(2)中的相机矩阵
Figure 623948DEST_PATH_IMAGE024
Figure 123194DEST_PATH_IMAGE025
替换成当前需要合成帧的相机矩阵
Figure 687774DEST_PATH_IMAGE026
。将mv进行该变换得到mv’的方法,即子步骤S402又包括如下子步骤,如图6所示:
子步骤S501,利用相机平移运动平滑的算法,计算像素着色器的每一个纹理坐标在当前帧的纹理坐标;
具体地,对于像素着色器的每一个纹理坐标
Figure 597961DEST_PATH_IMAGE027
,利用相机平移运动平滑的算法(此时的采样纹理使用运动向量缓冲而非颜色缓冲)计算得到其在t时刻对应的纹理坐标
Figure 224989DEST_PATH_IMAGE028
子步骤S502,对第一运动向量进行采样;
具体地,采样运动向量
Figure 324663DEST_PATH_IMAGE029
。(
Figure 182898DEST_PATH_IMAGE030
指代运动向量缓冲,
Figure 74106DEST_PATH_IMAGE028
即上述纹理坐标利用相机平移运动平滑的算法计算得到其在t时刻对应的纹理坐标,sample为采样符号)
子步骤S503,令当前帧对应的纹理坐标与第一运动向量之差为当前帧的纹理坐标对应的顶点在前一帧的纹理坐标;
具体地,令
Figure 548950DEST_PATH_IMAGE031
Figure 124418DEST_PATH_IMAGE032
Figure 40422DEST_PATH_IMAGE028
对应的顶点在t-2帧中对应的屏幕空间坐标。
子步骤S504,对前一帧的深度值进行采样,并生成当前帧的纹理坐标在当前帧的深度值;
具体地,采样t-2时刻帧的深度缓冲,
Figure 292412DEST_PATH_IMAGE033
,同时令
Figure 739705DEST_PATH_IMAGE034
Figure 368132DEST_PATH_IMAGE035
代表当前的纹理坐标
Figure 279587DEST_PATH_IMAGE036
对应在第t-2帧的对应点的深度值,
Figure 436899DEST_PATH_IMAGE037
代表当前的纹理坐标
Figure 558439DEST_PATH_IMAGE036
对应在第t帧的对应点的深度值。
子步骤S505,设定固定误差常量,判断前一帧的深度值与当前帧的深度值之差是否大于固定误差常量;
子步骤S506,若大于,则当前帧的纹理坐标对应的像素在前一帧是被遮挡的,并利用当前帧的深度值替代前一帧的深度值;
具体地,如果满足
Figure 761798DEST_PATH_IMAGE038
(
Figure 449131DEST_PATH_IMAGE039
为预设的固定常量),说明t时刻对应的纹理坐标
Figure 652710DEST_PATH_IMAGE040
对应的像素在t-2帧是被遮挡的,此时用t时刻的深度值来近似第t-2时刻的深度值:
Figure 74596DEST_PATH_IMAGE041
;否则会因为t时刻对应的纹理坐标对应的像素在t-2帧被遮挡而导致
Figure 982509DEST_PATH_IMAGE032
Figure 55507DEST_PATH_IMAGE040
对应的不是同一个顶点而导致错误结果。
子步骤S507,利用相机变换矩阵与相机投影矩阵,计算前一帧的纹理坐标对应的世界空间顶点变换到当前帧的下一帧所在相机位置下的纹理坐标;
具体地,对于归一化顶点坐标
Figure 836512DEST_PATH_IMAGE042
,通过第t-2帧到t+1帧的相机变换矩阵(
Figure 729382DEST_PATH_IMAGE043
)以及相机的投影矩阵
Figure 47843DEST_PATH_IMAGE044
,计算t-2帧纹理坐标
Figure 709769DEST_PATH_IMAGE032
对应的世界空间的顶点变换到第t+1帧所在相机位置下的屏幕纹理坐标,如式(4)所示:
Figure 583047DEST_PATH_IMAGE045
(4)
上述公式(4)中该括号内的
Figure 713945DEST_PATH_IMAGE046
计算结果为一个四维的向量(r,g,b,a);这里使用rg表示取值上述括号内该向量的前两个分量(r,g);
Figure 822715DEST_PATH_IMAGE047
为t-2帧纹理坐标
Figure 355459DEST_PATH_IMAGE032
对应的世界空间的顶点变换到第t+1帧所在相机位置下的屏幕纹理坐标;
Figure 727534DEST_PATH_IMAGE048
为投影矩阵的逆矩阵;公式(4)中的其他各项参见前述说明。
子步骤S508,根据下一帧所在相机位置下的纹理坐标计算第二运动向量缓冲,并将第二运动向量缓冲写入渲染缓冲区。
具体地,令
Figure 611308DEST_PATH_IMAGE049
,此即为公式(3)描述的运动向量,将其写入渲染缓冲区。mv’为第二运动向量。
如图4所示的子步骤S302,在得到了上述的修正后的运动向量后,即可以使用不动点迭代方法,来进行物体运动的修正。
具体地,对于像素着色器的每个纹理坐标
Figure 399135DEST_PATH_IMAGE050
,考虑求解以下方程:
Figure 35653DEST_PATH_IMAGE051
(5)
其中,
Figure 326433DEST_PATH_IMAGE052
为需要求解的量,表示
Figure 477928DEST_PATH_IMAGE050
对应的前一帧颜色缓冲的纹理坐标,
Figure 882496DEST_PATH_IMAGE053
表示前一帧
Figure 311203DEST_PATH_IMAGE052
处的运动向量。由于该方程无法显示地提取出
Figure 25081DEST_PATH_IMAGE052
,因此需要考虑使用其他方法来求解该方程。对于这种方程一般采用迭代法来求解。在这里考虑使用不动点迭代方法,主要考虑到其在实际实验中一般2-3次迭代即可达到收敛,适用于实时渲染这种性能敏感的场景。
不动点迭代算法描述如下:第一步,选取初始点
Figure 883447DEST_PATH_IMAGE054
;第二步,进行迭代计算:
Figure 75394DEST_PATH_IMAGE055
直到满足:
Figure 233974DEST_PATH_IMAGE056
(
Figure 118753DEST_PATH_IMAGE039
为另一个预设的固定常量)。其中初始点的选取十分关键。为了简化计算量,本发明实施例采用深度加权的固定区间收缩的方法来确定初始点,添加了初始点选取的算法如下:
步骤S601:确定初始搜索区间范围
Figure 195906DEST_PATH_IMAGE057
步骤S602:在上述初始搜索区间内,对于每个纹理坐标
Figure 129227DEST_PATH_IMAGE006
进行深度值采样,采样深度值
Figure 594844DEST_PATH_IMAGE058
,其中,Depth 3为合成帧的深度缓冲;
步骤S603:根据采样得到的深度值计算区间矩阵,对于区间矩阵
Figure 401257DEST_PATH_IMAGE059
的四个顶点对应的纹理坐标,使用迭代法判断其(即区间矩阵对应的纹理坐标)是否在k步之内收敛
Figure 14641DEST_PATH_IMAGE030
步骤S604:如果判定收敛则返回收敛时的纹理坐标
Figure 564702DEST_PATH_IMAGE060
步骤S605:如果若不收敛,则将所述区间矩阵的高度和宽度进行缩小生成新的区间矩阵,并重复判断所述新的区间矩阵的纹理坐标是否收敛;
步骤S606:即当所述区间矩阵的缩小次数超过预设阈值时,返回相应的纹理坐标;举例说明,当区间矩阵缩小次数超过g次时,令
Figure 353666DEST_PATH_IMAGE061
步骤S607:令
Figure 393298DEST_PATH_IMAGE062
,即为采样得到的上一帧对应点的颜色值,将其写入缓冲区C。
在得到了考虑相机平移与物体运动外插的结果(缓冲区C)后,使用VR应用框架的ATW模块,将C作为输入纹理,同时提供第t帧到第t+1帧的相机旋转矩阵,即可以得到进行旋转运动平滑的结果,记为缓冲区D,即完成了最终的目标。
本实施例提出了一种有效的帧外插管线,其针对画面的不同的运动信息使用不同的方法进行外插处理,包括相机平移运动,场景中物体运动和相机旋转运动。相比于完全使用屏幕空间的运动向量进行外插来平滑所有运动,由于该方法单独考虑了相机的运动(即对应VR头戴设备的运动),因此在相机大幅度不规则运动时能够保证更准确的外插估计效果。在处理相机平移运动和物体运动的过程中,应用了视差映射原理与坐标系变换关系,实现了将游戏引擎渲染的运动向量中相机运动的成分去除并将运动向量变换到外插帧的相机位置下,以确保不会在进行物体运动外插时引入相机运动成分,进而防止画面伪影,保证了用户体验。
实施例2
请参照图7,基于上述实施例1的方法,本实施例提出一种适用于VR实时渲染应用的异步帧外插管线系统,包括:
图像拆分单元10,用于获取相机与图像参数信息,将画面运动拆分为相机平移运动、场景中物体运动和相机旋转运动;
相机平移运动图像后处理单元20,用于利用视差映射原理,对所述相机平移运动进行处理得到相机平移后的第一外插图像;
物体运动图像后处理单元30,用于利用相机平移运动修正算法,对所述场景中物体运动进行游戏引擎渲染的第一运动向量缓冲变换,得到所述第一外插图像对应的物体运动的第二运动向量缓冲,并利用不动点迭代方法进行帧外插得到第二外插图像;
相机旋转运动图像后处理单元40,用于将所述第二外插图像进行相机旋转运动的平滑计算,得到最终目标外插图像。
具体地,相机平移运动图像后处理单元20、物体运动图像后处理单元30和相机旋转运动图像后处理单元40通过串联来实现完整的一帧图像生成。
可以理解,上述的一种适用于VR实时渲染应用的异步帧外插管线系统对应于实施例1的一种适用于VR实时渲染应用的异步帧外插管线方法。实施例1中的任何可选项也适用于本实施例,这里不再详述。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。

Claims (7)

1.一种适用于VR实时渲染应用的异步帧外插管线方法,其特征在于,包括:
获取相机与图像参数信息,将画面运动拆分为相机平移运动、场景中物体运动和相机旋转运动;
利用视差映射原理,对所述相机平移运动进行处理得到相机平移后的第一外插图像;所述利用视差映射原理,对所述相机平移运动进行处理得到相机平移后的第一外插图像包括:根据后处理着色器的第一纹理坐标计算上一时刻相机位置下的第二纹理坐标,其中,所述相机与图像参数信息包括颜色缓冲;根据两步迭代的视差映射方法计算深度值和目标纹理坐标,并根据所述目标纹理坐标对上一帧的所述颜色缓冲进行采样生成相机平移新视点下的初步图像;采用临近点采样的方法对所述初步图像的遮挡与边缘处进行修正,检测当前采样是否位于初步图像中物体的边界,并通过多次采样取平均值的方式对所述深度值进行修正得到第一修正深度值;判断在所述物体边缘处是否出现采样错误,并在出现采样错误的情况下对深度值进行修正得到第二修正深度值;利用所述第二修正深度值计算偏移量和对应修正后的目标纹理坐标,并根据修正后目标纹理坐标重新进行采样以生成相机平移新视点下的第一外插图像;
利用相机平移运动修正算法,对所述场景中物体运动进行游戏引擎渲染的第一运动向量变换,得到所述第一外插图像对应的物体运动的第二运动向量,并利用不动点迭代方法进行帧外插得到第二外插图像;所述利用相机平移运动修正算法,对所述场景中物体运动进行游戏引擎渲染的第一运动向量变换,得到所述第一外插图像对应的物体运动的第二运动向量,并利用不动点迭代方法进行帧外插得到第二外插图像包括:对所述场景中物体运动进行游戏引擎渲染的第一运动向量变换,得到所述第一外插图像对应的物体运动的第二运动向量,并对所述第二运动向量进行去相机移动与头部移动修正;利用不动点迭代方法,对修正后的第二运动向量进行物体运动平滑得到第二外插图像;
对所述场景中物体运动进行游戏引擎渲染的第一运动向量变换,得到所述第一外插图像对应的物体运动的第二运动向量,并对所述第二运动向量进行去相机移动与头部移动修正包括:对每个顶点计算当前帧的纹理坐标与前一帧的纹理坐标之差,并生成所述第一运动向量;将所述第一运动向量变换到合成帧的相机空间下,得到所述第二运动向量,其中,所述合成帧位于所述当前帧与所述前一帧之间;对所述第一运动向量和所述第二运动向量进行去相机移动与头部移动修正;
将所述第二外插图像进行相机旋转运动的平滑计算,得到最终目标外插图像。
2.根据权利要求1所述的一种适用于VR实时渲染应用的异步帧外插管线方法,其特征在于,所述“将所述第一运动向量变换到合成帧的相机空间下,得到所述第二运动向量”包括:
利用相机平移运动平滑的算法,计算像素着色器的每一个纹理坐标在当前帧的纹理坐标;
对所述第一运动向量进行采样;
令所述当前帧对应的纹理坐标与所述第一运动向量之差为所述当前帧的纹理坐标对应的顶点在前一帧的纹理坐标;
对前一帧的深度值进行采样,并生成当前帧的纹理坐标在当前帧的深度值;
设定固定误差常量,判断所述前一帧的深度值与所述当前帧的深度值之差是否大于所述固定误差常量;
若大于,则所述当前帧的纹理坐标对应的像素在前一帧是被遮挡的,并利用当前帧的深度值替代所述前一帧的深度值;
利用相机变换矩阵与相机投影矩阵,计算所述前一帧的纹理坐标对应的世界空间顶点变换到当前帧的下一帧所在相机位置下的纹理坐标;
根据所述下一帧所在相机位置下的纹理坐标计算所述第二运动向量,并将所述第二运动向量写入渲染缓冲区。
3.根据权利要求2所述的一种适用于VR实时渲染应用的异步帧外插管线方法,其特征在于,所述利用不动点迭代方法,对修正后的第二运动向量进行物体运动平滑得到第二外插图像包括:
利用深度加权的固定区间收缩法选取初始点;
将所述初始点代入物体运动平滑方程,并利用不动点迭代方法求解得到所述第二外插图像。
4.根据权利要求3所述的一种适用于VR实时渲染应用的异步帧外插管线方法,其特征在于,所述利用深度加权的固定区间收缩法选取初始点包括:
确定初始搜索区间;
在所述初始搜索区间内,对每个纹理坐标进行深度值采样;
根据采样得到的深度值计算区间矩阵,并利用迭代法计算所述区间矩阵对应的纹理坐标是否收敛,并根据收敛结果选取相应的初始点。
5.根据权利要求4所述的一种适用于VR实时渲染应用的异步帧外插管线方法,其特征在于,所述根据收敛结果选取相应的初始点包括:
若收敛,则返回收敛时的纹理坐标;
若不收敛,则将所述区间矩阵的高度和宽度进行缩小生成新的区间矩阵,并重复判断所述新的区间矩阵的纹理坐标是否收敛,并当所述区间矩阵的缩小次数超过预设阈值时,返回相应的纹理坐标。
6.根据权利要求1所述的一种适用于VR实时渲染应用的异步帧外插管线方法,其特征在于,所述将所述第二外插图像进行相机旋转运动的平滑计算,得到最终目标外插图像包括:
将所述第二外插图像作为输入传入VR运行框架中的ATM模块中,并利用相机旋转矩阵进行旋转运动平滑计算得到所述最终目标外插图像。
7.一种适用于VR实时渲染应用的异步帧外插管线系统,其特征在于,包括:
图像拆分单元,用于获取相机与图像参数信息,将画面运动拆分为相机平移运动、场景中物体运动和相机旋转运动;
相机平移运动图像后处理单元,用于利用视差映射原理,对所述相机平移运动进行处理得到相机平移后的第一外插图像;所述利用视差映射原理,对所述相机平移运动进行处理得到相机平移后的第一外插图像具体用于:根据后处理着色器的第一纹理坐标计算上一时刻相机位置下的第二纹理坐标,其中,所述相机与图像参数信息包括颜色缓冲;根据两步迭代的视差映射方法计算深度值和目标纹理坐标,并根据所述目标纹理坐标对上一帧的所述颜色缓冲进行采样生成相机平移新视点下的初步图像;采用临近点采样的方法对所述初步图像的遮挡与边缘处进行修正,检测当前采样是否位于初步图像中物体的边界,并通过多次采样取平均值的方式对所述深度值进行修正得到第一修正深度值;判断在所述物体边缘处是否出现采样错误,并在出现采样错误的情况下对深度值进行修正得到第二修正深度值;利用所述第二修正深度值计算偏移量和对应修正后的目标纹理坐标,并根据修正后目标纹理坐标重新进行采样以生成相机平移新视点下的第一外插图像;
物体运动图像后处理单元,用于利用相机平移运动修正算法,对所述场景中物体运动进行游戏引擎渲染的第一运动向量变换,得到所述第一外插图像对应的物体运动的第二运动向量,并利用不动点迭代方法进行帧外插得到第二外插图像;所述利用相机平移运动修正算法,对所述场景中物体运动进行游戏引擎渲染的第一运动向量变换,得到所述第一外插图像对应的物体运动的第二运动向量,并利用不动点迭代方法进行帧外插得到第二外插图像具体用于:对所述场景中物体运动进行游戏引擎渲染的第一运动向量变换,得到所述第一外插图像对应的物体运动的第二运动向量,并对所述第二运动向量进行去相机移动与头部移动修正;利用不动点迭代方法,对修正后的第二运动向量进行物体运动平滑得到第二外插图像;
相机旋转运动图像后处理单元,用于将所述第二外插图像进行相机旋转运动的平滑计算,得到最终目标外插图像。
CN202011413250.XA 2020-12-07 2020-12-07 一种适用于vr实时渲染应用的异步帧外插管线方法和系统 Active CN112203073B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011413250.XA CN112203073B (zh) 2020-12-07 2020-12-07 一种适用于vr实时渲染应用的异步帧外插管线方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011413250.XA CN112203073B (zh) 2020-12-07 2020-12-07 一种适用于vr实时渲染应用的异步帧外插管线方法和系统

Publications (2)

Publication Number Publication Date
CN112203073A CN112203073A (zh) 2021-01-08
CN112203073B true CN112203073B (zh) 2021-03-05

Family

ID=74033796

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011413250.XA Active CN112203073B (zh) 2020-12-07 2020-12-07 一种适用于vr实时渲染应用的异步帧外插管线方法和系统

Country Status (1)

Country Link
CN (1) CN112203073B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101933335A (zh) * 2008-01-29 2010-12-29 汤姆森特许公司 将二维图像数据转换为立体图像数据的方法和系统
CN103220488A (zh) * 2013-04-18 2013-07-24 北京大学 一种视频帧率上转换装置及方法
CN111921201A (zh) * 2020-09-21 2020-11-13 成都完美天智游科技有限公司 生成帧数据的方法及装置、存储介质、计算机设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200137409A1 (en) * 2018-10-26 2020-04-30 Microsoft Technology Licensing, Llc Frame extrapolation via motion vectors

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101933335A (zh) * 2008-01-29 2010-12-29 汤姆森特许公司 将二维图像数据转换为立体图像数据的方法和系统
CN103220488A (zh) * 2013-04-18 2013-07-24 北京大学 一种视频帧率上转换装置及方法
CN111921201A (zh) * 2020-09-21 2020-11-13 成都完美天智游科技有限公司 生成帧数据的方法及装置、存储介质、计算机设备

Also Published As

Publication number Publication date
CN112203073A (zh) 2021-01-08

Similar Documents

Publication Publication Date Title
US8102428B2 (en) Content-aware video stabilization
WO2020001168A1 (zh) 三维重建方法、装置、设备和存储介质
US6438275B1 (en) Method for motion compensated frame rate upsampling based on piecewise affine warping
US10114454B2 (en) Velocity and depth aware reprojection
EP2164040B1 (en) System and method for high quality image and video upscaling
US20110206124A1 (en) Object tracking using graphics engine derived vectors in a motion estimation system
WO2017003769A1 (en) Low-latency virtual reality display system
KR20150018576A (ko) 연속적인 좌표 시스템을 레버리징하는 모션 보상 및 모션 추정
US20090207172A1 (en) Compression system, program and method
CA2726208A1 (en) System and method for depth extraction of images with forward and backward depth prediction
JPS60229594A (ja) 動物体の動き内挿装置
WO2018113224A1 (zh) 一种图像缩小方法及装置
WO2019166008A1 (en) Method for processing projection-based frame that includes projection faces packed in cube-based projection layout with padding
WO2022263923A1 (en) Techniques for generating light field data by combining multiple synthesized viewpoints
WO2014008329A1 (en) System and method to enhance and process a digital image
US7750907B2 (en) Method and apparatus for generating on-screen display using 3D graphics
CN112203073B (zh) 一种适用于vr实时渲染应用的异步帧外插管线方法和系统
CN113496506A (zh) 图像处理方法、装置、设备及存储介质
US20230245326A1 (en) Methods and systems for dual channel transfer of game
TW202320022A (zh) 合成器層外推
CN112203074B (zh) 一种基于两步迭代的相机平移新视点图像生成方法和系统
CN114463213A (zh) 视频处理方法、视频处理装置、终端及存储介质
Ihm et al. Low-cost depth camera pose tracking for mobile platforms
US11941744B2 (en) Methods and systems for motion vectors in 3D graphics
Gül et al. Latency compensation through image warping for remote rendering-based volumetric video streaming

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Room 1103, building C, Xingzhi science and Technology Park, Nanjing Economic and Technological Development Zone, Nanjing, Jiangsu Province 210038

Patentee after: Nanjing Qiyuan Technology Co.,Ltd.

Address before: Room 1103, building C, Xingzhi science and Technology Park, Nanjing Economic and Technological Development Zone, Nanjing, Jiangsu Province 210038

Patentee before: Nanjing iqiyi Intelligent Technology Co.,Ltd.