CN116918321A - 减少移动等待时间的视差遮挡渲染 - Google Patents
减少移动等待时间的视差遮挡渲染 Download PDFInfo
- Publication number
- CN116918321A CN116918321A CN202180095033.7A CN202180095033A CN116918321A CN 116918321 A CN116918321 A CN 116918321A CN 202180095033 A CN202180095033 A CN 202180095033A CN 116918321 A CN116918321 A CN 116918321A
- Authority
- CN
- China
- Prior art keywords
- camera view
- map
- image
- disparity
- pixel map
- 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.)
- Pending
Links
- 238000009877 rendering Methods 0.000 title claims description 12
- 230000033001 locomotion Effects 0.000 title description 7
- 238000000034 method Methods 0.000 claims description 37
- 230000008859 change Effects 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 16
- 230000008901 benefit Effects 0.000 description 8
- 238000013519 translation Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 239000003550 marker Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000002730 additional effect Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 201000003152 motion sickness Diseases 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/128—Adjusting depth or disparity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/761—Proximity, similarity or dissimilarity measures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/111—Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
- H04N13/117—Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation the virtual viewpoint locations being selected by the viewers or determined by viewer tracking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
服务器(102)提供图像数据(122)和高度图(124),图像数据(122)包括来自最后已知的相机方位和位置(“第一相机视图”)(110)的场景中的一个或多个对象(905、910)的详细几何形状和阴影信息,高度图(124)指示从第一相机视图到图像的每个像素的距离。图像数据和高度图统称为“视差像素图”(120)。客户端设备(130)从服务器接收视差像素图,并基于当前相机方位和位置(“当前相机视图”)(140)更新视差像素图。客户端设备基于当前相机视图将更新的视差像素图(142)投影到场景的图像上,以生成当前显示帧(150)。然后,客户端设备提供当前显示帧以供显示。
Description
背景技术
交互式视频流式传输系统通过网络将视频帧从服务器流式传输到客户端设备,同时允许用户与由流式传输的视频表示的虚拟环境交互。例如,游戏流式传输系统流式传输表示游戏环境的视频帧,同时允许用户经由头戴式显示器(HMD)、游戏控制器或其他输入设备与游戏环境交互。用户操纵输入设备来以期望的方式与游戏环境交互,并且客户端设备通过网络向服务器传输表示交互的信令,诸如相机视角的改变。作为响应,服务器改变对应于游戏环境的游戏状态,并且基于新的游戏状态经由网络将表示游戏环境的视频帧传输到客户端设备。
到服务器已经渲染帧并将其传输到客户端设备以供显示时,客户端设备处的相机视角可能已经改变,从而导致显示不对应于当前相机视角的帧。在输入设备是HMD的情况下,当前相机视角与所显示帧的相机视角之间的差的对应性或等待时间可能对用户体验具有很大影响,甚至导致晕动病。即使当能够在服务器处实现低等待时间时,网络性能也可能导致等待时间的尖峰,这导致差的用户体验。
一些游戏流式传输系统尝试经由预测性流式传输来解决等待时间,其中,服务器预测预期的用户输入,基于预测来更新游戏状态,并且在客户端设备处接收到实际用户输入之前将所得的视频帧流式传输到客户端设备,使得客户端设备能够响应于实际用户输入而快速显示所得的视频帧。然而,预测流式传输具有有限的精度,并且通常在诸如相机移动的动作上不足,特别是不容易预测的相机移动,诸如不精确地向前、向后、向左或向右的移动。虚拟现实(VR)游戏中的移动特别难以预测,因为用户不倾向于以精确的直线移动。即使相对小的预测错误可能导致流式传输的视频帧中的可感知错误,诸如表示游戏环境的与用户预期的不同部分的视频帧。
此外,VR游戏的帧速率和响应性要求是计算密集型的,并且通常导致图形的复杂性和细节降低。此外,性能问题有时导致帧丢失和等待时间增加,从而导致差的用户体验。
本公开的目的是提供一种基于当前相机视图在客户端设备处更新渲染内容的方法,该方法消除或减轻了与已知方法相关联的一个或多个问题,无论是在本文中还是以其他方式识别的。
发明内容
所提出的解决方案具体涉及用于通过在显示修改的内容之前基于客户端设备处的当前相机视图修改渲染的内容来减少游戏流式传输系统中的等待时间的技术。通过在客户端设备处修改渲染的内容,游戏流式传输系统能够快速响应于指定的输入,诸如相机视角的改变。此外,因为修改是针对已经在游戏流式传输系统的服务器处渲染的内容,所以本文描述的技术能够用具有相对小的渲染或计算能力的客户端设备来实现。也就是说,游戏流式传输系统能够以相对较少的等待时间响应客户端设备处的用户输入,同时仍然采用服务器的强大渲染资源,从而为用户提供沉浸式且令人满意的游戏体验。
根据一般方面,服务器渲染来自最后已知的相机方位和位置(称为“第一相机视图”)的场景的图像。图像包括场景中的一个或多个对象的详细几何形状和阴影信息。另外,服务器生成指示从第一相机视图到图像的每个像素的距离的高度图。图像和高度图统称为“视差像素图(parallax pixel map)”。客户端设备从服务器接收视差像素图,并基于当前相机方位和位置的视角(称为“当前相机视图”)更新视差像素图。客户端设备基于当前相机视图将更新的视差像素图投影到场景的图像上以生成当前显示帧。然后,客户端设备提供当前显示帧以供显示。
根据第一方面,提供了一种方法,包括客户端设备接收视差像素图,视差像素图包括场景的第一图像和高度图,其中,第一图像包括来自第一相机视图的视角的多个像素,并且其中,高度图指示图像的每个像素距第一相机视图的距离。方法进一步包括基于客户端设备处的第一当前相机视图更新视差像素图,以生成包括更新的第一图像和更新的高度图中的至少一个的更新的视差像素图;基于更新的视差像素图渲染当前显示帧;以及提供当前显示帧以供显示。
生成当前显示帧可以包括将更新的视差像素图的多个像素投影到帧缓冲器处的图像的对应像素上。
方法可以进一步包括基于在客户端设备处从第一当前相机视图可见的场景的一部分来识别视差像素图的一部分,以及投影视差像素图可以包括将视差像素图的部分投影到图像上以生成当前显示帧。
更新视差像素图可以包括基于第一图像的每个像素距客户端设备处的第一当前相机视图的距离来更新高度图。
更新视差像素图可以基于从第一相机视图到第一当前相机视图的旋转或位置的改变。
方法可以进一步包括识别第一图像中没有更新的视差像素图的对应像素的空白像素;以及向空白像素分配值。分配给空白像素的值可以基于以下之一:与空白像素相邻的像素的值;或者基于第一相机视图和第一当前相机视图之间的角度的体素。
视差像素图可以包括用于渲染从第一相机视图的视角不可见的像素的信息。
方法可以进一步包括基于客户端设备处的第二当前相机视图更新视差像素图;基于更新的视差像素图生成第二当前显示帧;以及提供第二当前显示帧以在客户端设备处显示。
根据第二方面,提供一种方法,包括:客户端设备接收视差像素图和高度图,视差像素图包括来自包括多个像素的第一相机视图的场景的图像,高度图指示图像的每个像素距第一相机视图的距离。方法进一步包括识别视差像素图的从当前相机视图可见的部分;将视差像素图的部分投影到帧缓冲器处的图像的对应像素上,以从当前相机视图生成当前显示帧;以及提供当前显示帧以在客户端设备处显示。
方法可以进一步包括在客户端设备处基于当前相机视图更新视差像素图。更新可以包括基于场景的图像的每个像素距当前相机视图的距离来更新高度图。更新可以基于从第一相机视图到当前相机视图的旋转或位置的改变。
方法可以进一步包括识别图像中没有更新的视差像素图的对应像素的空白像素;以及向空白像素分配值。分配给空白像素的值可以基于以下之一:与空白像素相邻的像素的值;或者基于第一相机视图和当前相机视图之间的角度的体素。
方法可以进一步包括从已经基于第一相机视图渲染图像的服务器接收视差像素图。视差像素图可以是流式传输到客户端设备的渲染游戏内容的一部分。
根据第三方面,提供一种客户端设备,包括:中央处理单元,其用于接收视差像素图和高度图,视差像素图包括场景的图像,场景包括来自第一相机视图的多个像素,高度图指示图像的每个像素距第一相机视图的距离。客户端设备进一步包括图形处理单元GPU,其用于基于当前相机视图更新视差像素图;将更新的视差像素图投影到图像的对应像素上以生成当前显示帧;以及提供当前显示帧以供显示。
GPU可以通过基于场景的图像的每个像素距当前相机视图的距离更新高度图来更新视差像素图。GPU可以基于从第一相机视图到当前相机视图的旋转或位置的改变来更新视差像素图。
GPU可以识别图像中不具有更新的视差像素图的对应像素的空白像素;以及为空白像素分配值。GPU可以基于以下之一向空白像素分配值:与空白像素相邻的像素的值;或者基于第一相机视图和当前相机视图之间的角度的体素。
附图说明
通过参考附图,可以更好地理解本公开,并且使其许多特征和优点对于本领域技术人员显而易见。在不同附图中使用相同的附图标记表示相似或相同的项。
图1是根据一些实施例的游戏流式传输系统的框图,该游戏流式传输系统基于用于显示的当前相机视图来更新客户端设备处的渲染内容。
图2是图示根据一些实施例的图1的游戏流式传输系统处的更新的渲染内容的示例的图。
图3是图示根据一些实施例的基于最后已知的相机视图在客户端设备处接收的高度图的示例的图。
图4是图示根据一些实施例的基于当前相机视图在客户端设备处生成的更新的高度图的示例的图。
图5是图示根据一些实施例的将更新的视差图投影到帧缓冲器上的图1的客户端设备的示例的框图。
图6是图示根据一些实施例的基于最后已知的相机视图的具有空白像素的高度图的示例的图。
图7是图示根据一些实施例的图1的客户端设备基于当前相机视图将值分配给图6的空白像素的示例的图。
图8是图示根据一些实施例的图1的客户端设备基于当前相机视图将值分配给空白像素的示例的框图。
图9是图示根据一些实施例的包括基于在图1的客户端设备处接收的最后已知的相机视图的场景的图像的渲染内容的示例的图。
图10是图示根据一些实施例的基于当前相机视图更新图9的渲染内容的图1的客户端设备的示例的图。
图11是根据一些实施例的基于用于显示的当前相机视图在客户端设备处更新渲染的内容的方法的流程图。
具体实施方式
图1至图11图示了用于通过在显示内容之前基于当前相机视图在客户端设备处更新渲染的内容——诸如用于显示的视频帧的一部分——来减少游戏流式传输系统中的等待时间的技术。
图1图示了游戏流式传输系统100,其通常被配置为将渲染的游戏内容从服务器102流式传输到客户端设备130并且基于当前相机视图140在客户端设备130处调整渲染的游戏内容。在所描绘的示例中,服务器102经由网络114连接到客户端设备130,其中,网络114是分组交换或其他网络,其通常被配置为经由一个或多个路由器、服务器、通信塔(例如,蜂窝通信塔)等或其任何组合来传送数据,包括视频数据。因此,在各种实施例中,网络114能够是广域网(例如,互联网)、局域网等,或其任何组合。
服务器102和客户端130通常被配置为经由网络114传送数据,以便共同实现流式传输的游戏会话,其中,交互式游戏内容从服务器102流式传输到客户端设备130。因此,服务器102能够是实现本文进一步描述的功能的任何类型的计算机设备,诸如机架式服务器、集群服务器(即,在服务器设备集群中实现的服务器设备)、移动服务器设备等,或其组合。客户端设备130能够是能够向用户显示视频帧并且能够接收用户输入的任何计算机设备,并且因此能够是头戴式显示器(HMD)、台式或膝上型计算机、数字媒体播放器、游戏控制台、智能电话、平板电脑等。
为了支持在流式传输的游戏会话期间将游戏内容流式传输到客户端设备,服务器102包括多个处理单元,诸如中央处理单元(CPU)104、图形处理单元(GPU)106和存储器108。CPU 104是通常被配置为执行以计算机程序的形式组织的通用指令集以代表服务器102执行任务的处理单元。这种计算机程序的示例包括操作系统、虚拟机、数据安全程序(例如,数据加密/解密程序)、网页、数据库程序等。
GPU 106是通常被配置为基于从CPU 104接收的命令来执行与图形和向量处理相关联的操作的处理单元。例如,在执行一个或多个通用程序的过程中,CPU 104生成命令以生成和操纵用于显示的图形模型,并将命令提供给GPU 106。作为响应,GPU 106通过执行一个或多个对应的图形操作来执行命令,从而操纵图形模型以生成用于显示的一个或多个帧。在一些实施例中,由GPU 106生成的帧是包括用于场景中的一个或多个对象的详细几何形状和阴影信息的渲染帧。如本文所使用的,渲染帧是基于图形模型共同形成用于在显示设备处显示的图像的像素集合。
存储器108包括代表CPU 104、GPU 106或其组合存储数据的一个或多个存储器模块。因此,存储器108能够包括随机存取存储器(RAM)模块——诸如动态随机存取存储器(DRAM)模块、非易失性存储器模块——诸如闪存模块或硬盘驱动器(HDD)等或其任何组合中的一个或多个。
为了支持流式传输的游戏内容的接收和显示,客户端设备130包括CPU 134、GPU136和帧缓冲器132。这些模块中的每一个类似于服务器102的对应模块。因此,例如,CPU134通常被配置为代表客户端设备130执行通用指令,诸如执行操作系统、web浏览器等中的一个或多个。将意识到,在一些实施例中,CPU 134和GPU 136通常相对于服务器102的CPU104和GPU 106具有相对小的计算能力。因此,游戏流式传输系统100利用服务器102的计算能力来将具有比能够单独由客户端130生成的质量更高的游戏内容流式传输到客户端130。
在操作中,游戏流式传输系统100通过在CPU 104处执行游戏程序112来流式传输游戏内容。游戏程序112是指令集合,其共同实现相关联的游戏的规则,包括管理与游戏相关联的游戏环境、用户输入如何改变游戏环境、如何显示游戏环境等的规则。该指令集合的执行导致CPU 104维护包括指定为第一相机视图110的最后已知的相机视图的数据集合,其表示在渲染当前帧时从最后已知的相机方位和位置的视角的游戏场景的图像。
基于第一相机视图110和游戏程序112的指令,CPU 104向GPU 106发送命令以从第一相机视图110的视角生成和渲染图像帧,诸如描绘游戏环境、游戏对象、玩家和非玩家角色等的图像帧。在一些实施例中,图像帧是图像数据(被称为图像122),其包括用于从第一相机视图的视角的包括多个像素的场景中的一个或多个对象的详细几何形状和阴影信息。例如,在一些实施例中,图像122包括用于距第一相机视图不同距离的多个层中的二维对象的详细几何形状和阴影信息。另外,GPU 106生成指示图像的每个像素距第一相机视图的距离的高度图124。图像122和高度图124一起被称为视差像素图120。GPU 106经由网络114向客户端设备130提供视差像素图120。在一些实施例中,GPU 106将视差像素图120作为元数据提供给客户端设备130。客户端设备130将图像122存储在帧缓冲器132处。
通过采用视差像素图和高度图,视差像素图包括具有用于来自最后已知相机视图的场景的详细几何形状和阴影的图像,高度图指示图像的每个像素距最后已知相机视图的距离,游戏流式传输系统100能够支持基于例如指示相机方位和/或位置的改变的用户输入来对客户端设备130处的显示帧的调整,从而减少响应于用户输入的等待时间。例如,CPU134能够接收指示当前相机视图140的用户输入。在一些情况下,当前相机视图140指示相机视图已经在与游戏程序112相关联的虚拟世界中相对于第一相机视图110转动、移动或以其他方式改变位置。响应于当前相机视图140,CPU 134生成更新的视差像素图142,其反映基于图像122的每个像素距当前相机视图140的距离的高度图124的改变和/或从当前相机视图140可见的图像122的量的改变。
更新的视差像素图142能够指示平移、旋转视差像素图120的一部分(子集)或其他调整,或其任何组合。例如,当前相机视图140能够指示游戏角色的视点的改变,其能够被表示为+X、+Y和+Z的三维平移。CPU 134生成更新的视差像素图142以反映该三维平移。在其他情况下,当前相机视图140能够指示游戏角色的视点的三维旋转改变,其被表示为+P、+Q、+R度的旋转平移,并且CPU 134生成更新的视差像素图142以反映该旋转改变。
基于更新的视差像素图142,GPU 136改变所显示的图像122的外观(即,视点的位置和角度)。例如,如果当前相机视图140是从第一相机视图110的+X、+Y和+Z的平移,则GPU136使用常规投影技术将平移投影到与存储图像122相关联的二维参考帧上以渲染显示帧150。客户端设备130将显示帧150提供给显示设备(未示出),诸如显示面板或屏幕,以显示给用户。
在一些实施例中,客户端设备130通过选择从当前相机视图140的视角可见的图像122的像素子集来识别视差像素图120的一部分以用于更新的视差像素图142。图2图示了根据一些实施例的示例。在所描绘的示例中,GPU 136将用于当前相机视图140的四个角的光线206投射到视差像素图120上,以识别视差像素图120的图像122的从当前相机视图140的视角可见的部分210。GPU 136基于像素的面积和每个像素距当前相机视图140的距离,将视差像素图的部分210的每个像素投影到存储在帧缓冲器132处的图像122上。
基于从服务器GPU 106渲染图像122并基于第一相机视图110生成视差像素图120的高度图124的第一时间到客户端设备130接收视差像素图120的第二时间的相机方位和位置的改变,每个像素距相机视图的距离发生改变。图3图示了根据一些实施例的基于最后已知的相机视图(被称为“第一相机视图”)110,在客户端设备130处接收的高度图310的示例。在一些实施例中,高度图310包括诸如像素302的多个像素和用于每个像素的像素距第一相机视图110的距离的指示,在图3中被图示为每个像素的高度。在其他实施例中,高度图310包括与图像122的像素相关联的距离参数值。从第一相机视图110到当前相机视图的方位和位置的改变导致从每个像素到当前相机视图的距离的相应改变,如图4所示。图4图示了根据一些实施例的基于当前相机视图在客户端设备130处生成的更新的高度图410的示例。更新的高度图410包括与高度图310的像素302对应的多个像素402。然而,像素的高度被调整以指示从每个像素到当前相机视图140的更新距离。
图5是图示根据一些实施例的将更新的视差像素图142投影到图像122上的图1的客户端设备130的示例500的框图。GPU 136包括投影模块510,投影模块510被配置为将更新的视差图142投影到存储在帧缓冲器132处的图像122上以生成当前显示帧150。客户端设备130接收包括从第一相机视图110的视角的图像122和高度图124的视差像素图120,并将图像122存储在帧缓冲器132处。GPU 136基于当前相机视图140更新视差像素图120,以生成更新的视差像素图142。例如,如果当前相机视图140的四个角的光线指示可从当前相机视图140观看的区域小于图像122的区域,则更新的视差像素图142仅包括从当前相机视图140可见的视差像素图120的部分512。此外,如果如在高度图124中指示的图像122的任何像素到第一相机视图110的距离不同于图像122的任何像素到当前相机视图140的距离,则GPU 136更新高度图124以指示图像122的每个像素到当前相机视图140的距离,从而生成更新的高度图514。更新的视差像素图142包括部分512和更新的高度图514。投影模块510将更新的视差像素图142投影到帧缓冲器132处的图像122上以生成显示帧150。
在一些情况下,视差像素图120不包括从当前相机视图140的视角可见的每个像素的信息。例如,靠近第一相机视图110的对象可能阻碍该对象后面的对象的视图。随着相机视图移位,被第一相机视图110遮挡的对象可能进入视野。图6是图示根据一些实施例的基于最后已知的相机视图(第一相机视图110)的具有空白像素604的高度图610的示例的图。在所示示例中,一组像素604从第一相机视图110的视角被像素602阻挡。GPU 136识别不具有更新的视差像素图的对应像素的空白像素604,并将值分配给空白像素。
在一些实施例中,GPU 136基于与空白像素相邻的像素的值,将值分配给空白像素。图7图示了根据一些实施例的图1的客户端设备130基于当前相机视图140将值704分配给图6的空白像素604以生成更新的高度图710的示例。例如,在一些实施例中,GPU 136将作为最近相邻像素的值的平均值的值分配给空白像素。在其他实施例中,GPU 136将每个视差像素图像素视为体素,使得当投影视差像素图时,基于体素能够填充存储在帧缓冲器132处的图像122的多个像素的高度,将每个像素投影为线。因为体素能够重叠,所以在一些实施例中,GPU 136基于第一相机视图和当前相机视图之间的角度来选择渲染显示帧150的方向(例如,从左到右、从上到下、从右到左、从下到上)。在一些实施例中,GPU 136将显示帧150划分为多个分区,并选择渲染显示帧150的每个分区的方向。
图8是图示根据一些实施例的图1的客户端设备130基于当前相机视图将值分配给空白像素的示例800的框图。GPU 136包括被配置为将更新的视差像素图142与图像122进行比较的比较器810。比较器810确定图像122的任何像素是否不具有更新的视差像素图142中的对应像素。比较器810识别空白像素815并如上通过将空白像素815与其相邻像素混合或者通过将每个视差像素图像素视为基于高度被投影为线的体素来向空白像素815分配值(被称为空白像素值分配820)。
在一些实例中,更新的视差像素图142到图像122上的投影能够导致从更新的视差像素图142的相同像素绘制图像122的多个像素。这能够例如从大的相机旋转移动或者从利用单个更新的视差像素图142渲染两个虚拟现实视口(每只眼睛一个)而发生。为了减少从相同的更新的视差像素图142像素绘制的多个图像122像素的细节损失,在一些实施方式中,服务器102发送由于其方位而从第一相机视图110不可见的附加“标记”像素825的信息。GPU 136通过对多个可能的当前相机视图140执行体素投影来确定在何处渲染标记像素825。GPU 136识别重复更新的视差像素图像素的区域,并从不同的当前相机视图140渲染所识别的区域中的标记像素825。
在流式传输的VR应用的一些实施例中,服务器102将两个视频流(每只眼睛一个)组合成单个视差像素图。例如,在一些实施例中,服务器102利用用于每只眼睛的视角的平均值渲染场景,并且然后添加用于每个视角的附加标记像素825的信息。以这种方式,服务器102提高了性能、减少了用于流式传输视差像素图所需的带宽,并且最小化了诸如客户端的数据高速缓存和DRAM的系统要求。
为了处理诸如镜子(未示出)的平面反射,在一些实施例中,服务器102提供第二视差像素图(未示出)。GPU 136使用如上的当前相机视图140将第二视差像素图投影到镜子上。在一些实施例中,GPU 136使用纹理化平面或球形子表面来投射反射。对于来自非平坦表面的反射,GPU 136将来自每个像素的光线投射在表面上以找到像素的颜色。
图9是图示根据一些实施例的基于在图1的客户端设备处接收的最后已知的相机视图110的场景的图像122的示例的图。在所示的示例中,图像122包括两个对象905和910的详细几何形状和阴影信息。图像122进一步包括平坦背景图像,诸如天空盒915,其出现在距第一相机视图110足够大的距离处,使得它也将看起来在距任何更新的相机视图140的大距离处。服务器将基于第一相机视图110的图像122和高度图发送到客户端设备130。
图10是图示根据一些实施例的图1的客户端设备130基于当前相机视图140渲染图9的图像122的示例的图。客户端设备130接收包括图像122和高度图124的视差像素图120。客户端设备130通过投射光线206以识别从当前相机视图140可见的视差像素图120的部分210并且通过基于当前相机视图140更新高度图124来基于当前相机视图140更新视差像素图120。在一些实施例中,GPU 136识别空白像素815并生成空白像素值分配820以填充不具有投影的视差像素图像素的像素。投影模块510将更新的视差像素图142投影到帧缓冲器132处的图像122上以生成显示帧150。
显示帧150包括天空盒915,其在一些实施例中与图像122中的天空盒915相同,因为天空盒915处于与第一相机视图110和当前相机视图140两者相距足够的距离处,使得天空盒915看起来不改变。在所示示例中,图像122的对象905、910被渲染为显示帧150中的对象1005、1010。由于从第一相机视图110到当前相机视图140的相机方位和位置的改变,对象1005、1010的附加特征1006、1011从当前相机视图140可见。GPU 136基于更新的视差像素图142渲染附加特征1006、1011。
图11是根据一些实施例的基于当前相机视图140在客户端设备130处更新渲染的内容以显示的方法1100的流程图。在框1102处,客户端设备130从服务器102接收包括图像122和高度图124的视差像素图120。在框1104处,客户端设备130包括图像122和高度图124。在框1104处,客户端设备130基于用户输入确定当前相机视图140。在框1106处,GPU 136基于从当前相机视图140可见的视差像素图120中的场景的区域来选择视差像素图120的部分210。在一些实施例中,GPU 136从当前相机视图140的四个角投射光线206,以识别视差像素图120的可见部分210。在框1108处,GPU 136通过更新高度图124来基于当前相机视图140更新视差像素图120,以反映视差像素图120的每个像素距当前相机视图140的更新的距离。
在框1110处,比较器810识别在更新的视差像素图142中不具有对应像素的空白像素815,并且GPU 136将值820分配给空白像素815。在一些实施例中,GPU 136通过将空白像素815与其相邻像素混合来将值820分配给空白像素815。在一些实施例中,GPU 136通过将每个视差像素图像素视为基于高度被投影为线的体素来将值820分配给空白像素815。另外,在一些实施例中,GPU 136从服务器102接收用于标记像素825的信息,以用于由于其方位而从第一相机视图110不可见的像素。
在框1112处,投影模块510将更新的视差像素图142投影到存储在帧缓冲器132处的图像122上,以生成当前显示帧150。当前显示帧150包括用于从服务器102接收的场景中的对象的计算密集型详细几何形状和阴影以及基于当前相机视图140的更新的视角,因此使得具有相对小的计算能力的相对客户端设备130能够以比在服务器102处渲染当前显示帧150的情况下可能的等待时间更低的等待时间从当前相机视图140渲染详细的高质量图像。在框1114处,客户端设备130提供当前显示帧150以供显示。
在一些实施例中,上述技术的某些方面可以由执行软件的处理系统的一个或多个处理器实现。软件包括被存储或以其他方式有形地体现在非暂时性计算机可读存储介质上的一个或多个可执行指令集合。软件能够包括指令和某些数据,这些指令和某些数据当被一个或多个处理器执行时,操纵一个或多个处理器执行上述技术的一个或多个方面。非暂时性计算机可读存储介质能够包括例如磁或光盘存储设备、诸如闪存的固态存储设备、高速缓存、随机存取存储器(RAM)或一个或多个其他非易失性存储器设备等。在非暂时性计算机可读存储介质上存储的可执行指令可以是由一个或多个处理器解释或以其他方式可执行的源代码、汇编语言代码、目标代码或其他指令格式。
计算机可读存储介质可以包括可由计算机系统在使用期间访问以向计算机系统提供指令和/或数据的任何存储介质或存储介质的组合。这样的存储介质能够包括但不限于光学介质(例如,紧致盘(CD)、数字通用盘(DVD)、蓝光盘)、磁介质(例如,软盘、磁带或磁硬驱动器)、易失性存储器(例如,随机存取存储器(RAM)或高速缓存)、非易失性存储器(例如,只读存储器(ROM)或闪存)、或基于微机电系统(MEMS)的存储介质。计算机可读存储介质可以被嵌入在计算系统(例如,系统RAM或ROM)中、固定地附接到计算系统(例如,磁硬驱动器)、可移动地附接到计算系统(例如,光盘或基于通用串行总线(USB)的闪存),或者经由有线或无线网络被耦合到计算机系统(例如,网络可访问存储(NAS))。
注意,并非上面在一般描述中描述的所有活动或要素都是必需的,特定活动或设备的一部分不是必需的,并且除了所描述的那些活动外,还执行一个或多个另外的活动,或者包括一个或多个另外的元素。更进一步,活动被列举的次序不一定是它们被执行的次序。另外,已经参考特定实施例描述了概念。然而,本领域普通技术人员意识到,在不脱离如下面在权利要求中阐述的本公开的范围的情况下,能够做出各种修改和改变。因此,说明书和图将在说明性而非限制性意义上被考虑,并且所有这样的修改都旨在被包括在本公开的范围内。
已经在上面参考特定实施例描述了益处、其他优点和问题的解决方案。然而,益处、优点、问题的解决方案以及可以使任何益处、优点或解决方案发生或者变得更明显的任何特征不应被解释为任何或所有权利要求的关键、必需或必要的特征。此外,以上公开的具体实施例仅是说明性的,因为可以以对于受益于本文教导的本领域技术人员显而易见的不同但等效方式修改并实践所公开的主题。除了如下面在权利要求中描述的那些以外,不旨在对本文示出的构造或设计的细节进行限制。因此显然的是,可以更改或者修改以上公开的具体实施例,并且所有这样的改变都被认为在所公开的主题的范围内。因此,本文寻求的保护如下面在权利要求中所阐述。
Claims (23)
1.一种方法,包括:
在客户端设备(130)处接收视差像素图(120),所述视差像素图(120)包括场景的第一图像(122)和高度图(124、310),其中,所述第一图像包括来自第一相机视图(110)的视角的多个像素,并且其中,所述高度图指示所述第一图像的每个像素距所述第一相机视图的距离;
基于来自所述客户端设备的当前视角的所述场景的第一当前相机视图(140)更新所述视差像素图,以生成包括更新的第一图像和更新的高度图中的至少一个的更新的视差像素图;
基于所述更新的视差像素图(142)渲染当前显示帧(150);以及
提供所述当前显示帧以供显示。
2.根据权利要求1所述的方法,其中,生成所述当前显示帧包括将所述更新的视差像素图的所述多个像素投影到帧缓冲器(132)处的所述第一图像的对应像素上。
3.根据权利要求2所述的方法,进一步包括:
基于在所述客户端设备处从所述第一当前相机视图可见的所述场景的一部分来识别所述视差像素图的一部分(210);以及
其中,投影所述视差像素图包括将所述视差像素图的所述一部分投影到所述第一图像上以生成所述当前显示帧。
4.根据前述权利要求中的任一项所述的方法,其中,更新所述视差像素图包括基于所述客户端设备处的所述第一图像的每个像素距所述第一当前相机视图的距离来更新所述高度图。
5.根据前述权利要求中的任一项所述的方法,其中,更新所述视差像素图基于从所述第一相机视图到所述第一当前相机视图的旋转或位置的改变。
6.根据前述权利要求中的任一项所述的方法,进一步包括:
识别所述第一图像中没有所述更新的视差像素图的对应像素的空白像素(815);以及
向所述空白像素分配值(820)。
7.根据权利要求6所述的方法,其中,分配给所述空白像素的所述值基于以下之一:
与所述空白像素相邻的像素的值;或者
基于所述第一相机视图和所述第一当前相机视图之间的角度的体素。
8.根据前述权利要求中的任一项所述的方法,其中,所述视差像素图包括用于渲染从所述第一相机视图的视角不可见的像素的信息(825)。
9.根据前述权利要求中的任一项所述的方法,进一步包括:
基于所述客户端设备处的第二当前相机视图更新所述视差像素图;
基于所述更新的视差像素图生成第二当前显示帧;以及
提供所述第二当前显示帧以在所述客户端设备处显示。
10.一种方法,包括:
在客户端设备(130)处接收视差像素图(120)和高度图(124),所述视差像素图(120)包括来自包括多个像素的第一相机视图(110)的场景的图像(122),所述高度图(124)指示所述图像的每个像素距所述第一相机视图的距离;
识别所述视差像素图的所述图像的从当前相机视图(140)可见的部分(210);
将所述视差像素图的所述部分的所述多个像素投影到帧缓冲器(132)处的所述图像的对应像素上,以从所述当前相机视图渲染当前显示帧(150);以及
提供所述当前显示帧以供显示。
11.根据权利要求10所述的方法,进一步包括在所述客户端设备处基于所述当前相机视图更新所述视差像素图,以生成更新的视差像素图(142)。
12.根据权利要求10或11所述的方法,其中,更新所述视差像素图包括基于所述场景的所述图像的每个像素距所述当前相机视图的距离来更新所述高度图。
13.根据权利要求11或12所述的方法,其中,更新所述视差像素图基于从所述第一相机视图到所述当前相机视图的旋转或位置的改变。
14.根据权利要求11至13中的任一项所述的方法,进一步包括:
识别所述图像中没有所述更新的视差像素图的对应像素的空白像素(815);以及
向所述空白像素分配值(820)。
15.根据权利要求14所述的方法,其中,分配给所述空白像素的所述值基于以下之一:
与所述空白像素相邻的像素的值;或者
基于所述第一相机视图和所述当前相机视图之间的角度的体素。
16.根据权利要求1至15中的任一项所述的方法,其中,从已经基于所述第一相机视图渲染所述图像(122)的服务器(102)接收所述视差像素图(120)。
17.根据权利要求1至16中的任一项所述的方法,其中,所述视差像素图(120)是流式传输到所述客户端设备(130)的渲染游戏内容的一部分。
18.一种客户端设备,包括:
中央处理单元(CPU)(134),所述中央处理单元(CPU)用于接收视差像素图(120)和高度图(124),所述视差像素图(120)包括场景的图像(122),所述场景包括来自第一相机视图(110)的多个像素,所述高度图(124)指示所述图像的每个像素距所述第一相机视图的距离;以及
图形处理单元(GPU)(136),所述图形处理单元(GPU)用于:
基于来自所述客户端设备的当前视角的当前相机视图(140)更新所述视差像素图,以生成更新的视差像素图(142);
将所述更新的视差像素图投影到所述图像的对应像素上以生成当前显示帧(150);以及
提供所述当前显示帧以供显示。
19.根据权利要求18所述的客户端设备,其中,所述GPU用于:
通过基于所述场景的所述图像的每个像素距所述当前相机视图的距离更新所述高度图来更新所述视差像素图。
20.根据权利要求18或19所述的客户端设备,其中,所述GPU用于:
基于从所述第一相机视图到所述当前相机视图的旋转或位置的改变来更新所述视差像素图。
21.根据权利要求18至20中的任一项所述的客户端设备,其中,所述GPU用于:
识别所述图像中不具有所述更新的视差像素图的对应像素的空白像素(815);以及
为所述空白像素分配值(820)。
22.根据权利要求21所述的客户端设备,其中,所述GPU基于以下之一向所述空白像素分配值:
与所述空白像素相邻的像素的值;或者
基于所述第一相机视图和所述当前相机视图之间的角度的体素。
23.一种流式传输系统,包括根据权利要求18至22中的任一项所述的客户端设备(130),以及用于将包括所述视差像素图的渲染的游戏内容流式传输到所述客户端设备(130)的服务器(102)。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2021/022122 WO2022191854A1 (en) | 2021-03-12 | 2021-03-12 | Parallax occlusion rendering to reduce movement latency |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116918321A true CN116918321A (zh) | 2023-10-20 |
Family
ID=75396870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180095033.7A Pending CN116918321A (zh) | 2021-03-12 | 2021-03-12 | 减少移动等待时间的视差遮挡渲染 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240152306A1 (zh) |
EP (1) | EP4278602A1 (zh) |
CN (1) | CN116918321A (zh) |
WO (1) | WO2022191854A1 (zh) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019120575A1 (en) * | 2017-12-22 | 2019-06-27 | Huawei Technologies Co., Ltd. | Vr 360 video for remote end users |
-
2021
- 2021-03-12 EP EP21716898.8A patent/EP4278602A1/en active Pending
- 2021-03-12 US US18/281,630 patent/US20240152306A1/en active Pending
- 2021-03-12 CN CN202180095033.7A patent/CN116918321A/zh active Pending
- 2021-03-12 WO PCT/US2021/022122 patent/WO2022191854A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022191854A1 (en) | 2022-09-15 |
US20240152306A1 (en) | 2024-05-09 |
EP4278602A1 (en) | 2023-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10083538B2 (en) | Variable resolution virtual reality display system | |
US10089790B2 (en) | Predictive virtual reality display system with post rendering correction | |
US10733789B2 (en) | Reduced artifacts in graphics processing systems | |
EP3760287B1 (en) | Method and device for generating video frames | |
US11115644B2 (en) | Video generation method and apparatus using mesh and texture data | |
KR20170007102A (ko) | 3차원 지도 생성 및 표시 장치 및 방법 | |
US10460505B2 (en) | Systems and methods for lightfield reconstruction utilizing contribution regions | |
US20170374344A1 (en) | Discontinuity-aware reprojection | |
US10540918B2 (en) | Multi-window smart content rendering and optimizing method and projection method based on cave system | |
CN110832442A (zh) | 注视点渲染系统中的优化的阴影和自适应网状蒙皮 | |
US11880499B2 (en) | Systems and methods for providing observation scenes corresponding to extended reality (XR) content | |
US20210274145A1 (en) | Methods, systems, and media for generating and rendering immersive video content | |
JP2023504609A (ja) | ハイブリッドストリーミング | |
US10708597B2 (en) | Techniques for extrapolating image frames | |
US6828962B1 (en) | Method and system for altering object views in three dimensions | |
EP3542877A1 (en) | Optimized content sharing interaction using a mixed reality environment | |
US20220406003A1 (en) | Viewpoint path stabilization | |
CN108986228B (zh) | 用于虚拟现实中界面显示的方法及装置 | |
US20240152306A1 (en) | Parallax occlusion rendering to reduce movement latency | |
US20240278121A1 (en) | Data processing apparatus and method | |
WO2021221612A1 (en) | Adjusting rendered content for display at a client | |
KR102179810B1 (ko) | 가상현실영상 재생방법 및 이를 이용한 프로그램 | |
CN118115693A (zh) | 生成并排三维影像的方法及电脑装置 | |
Flack et al. | Optimizing 3D image quality and performance for stereoscopic gaming | |
JP2002024847A (ja) | 画像生成装置、画像生成方法及び記録媒体 |
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 |