用于3D图形中0相运动矢量的方法和系统技术方案

技术编号:38719129 阅读:8 留言:0更新日期:2023-09-08 23:15
提供用于在3D计算机生成图像的上下文中生成运动矢量的各种方法。在一个实例中,一种方法包括:针对当前帧中要渲染的一个或多个对象的每个像素生成1相运动矢量(MV1)和0相运动矢量(MV0),每个MV1和MV0具有相关联的深度值,从而形成MV1纹理和MV0纹理,每个MV0是基于相机MV0和对象MV0确定的;将所述MV1纹理转换为一组MV1像素块,并且将所述MV0纹理转换为一组MV0像素块;以及输出所述一组MV1像素块和所述一组MV0像素块以用于图像处理。一组MV0像素块以用于图像处理。一组MV0像素块以用于图像处理。

【技术实现步骤摘要】
用于3D图形中0相运动矢量的方法和系统


[0001]本文公开的主题的实施方案涉及三维(3D)计算机图形领域,并且更具体地涉及如何改进内插帧在3D环境内的渲染。

技术介绍

[0002]多年来,计算机处理能力的提高已使(例如视频游戏或某些动画的)实时视频渲染变得越来越复杂。例如,早期视频游戏的特征为像素化精灵在固定背景上移动,而当代视频游戏的特征为充满人物的逼真三维场景。同时,处理部件的小型化已使移动装置(诸如手持式视频游戏装置和智能手机)能够有效地支持高帧速率、高分辨率视频的实时渲染。
[0003]3D图形视频可以多种不同的帧速率和屏幕分辨率输出。可能期望将具有3D图形的视频从一个帧速率(和/或分辨率)转换至另一个帧速率(和/或分辨率)。为了节省算计能力同时仍然提高帧速率,可使用内插帧而不是渲染视频内的所有帧。内插帧可通过使用运动矢量(在本文中也称为MV)有效地生成,运动矢量跟踪对象在当前帧(CF)与先前帧(PF)之间的位置差异。

技术实现思路

[0004]本文公开用于在3D计算机图形的上下文中计算和传输运动矢量的实施方案。在一个实例中,一种方法包括:针对当前帧中要渲染的一个或多个对象的每个像素,生成1相运动矢量(MV1)和0相运动矢量(MV0),每个MV1和MV0具有相关联的深度值,从而形成MV1纹理和MV0纹理,每个MV0基于相机MV0和对象MV0确定;将所述MV1纹理转换为一组MV1像素块,并且将所述MV0纹理转换为一组MV0像素块;以及输出所述一组MV1像素块和所述一组MV0像素块以用于图像处理。
附图说明
[0005]图1示出算计系统的示例性图。
[0006]图2是示意性地示出用于传输和使用运动矢量数据的管线的示例性框图。
[0007]图3示出示例性3D坐标系和3D空间中的两个点。
[0008]图4示出示例性2D坐标系和2D空间中的两个点。
[0009]图5示出说明用于创建2.5D块MV0和2.5D块MV1并将其输出到图像处理模块的示例性方法的流程图。
[0010]图6A示出示例性渲染管线、其内部空间以及空间之间的变换的流程图。
[0011]图6B示出包括近剪辑的3D数字场景内的视锥体的实例。
[0012]图6C示出图6B的近剪辑的放大图。
[0013]图7A和图7B分别示出用于生成MV1和MV0的示例性方法。
[0014]图8示出用于在给定多个MV0值作为输入的情况下确定正确MV0的示例性方法。
[0015]图9A示出使用投影MV从CF到PF的示例性投影的示例性图。
[0016]图9B示出从PF到CF的投影MV的示例性图。
[0017]图9C示出用于将投影从PF内插到CF的示例性方法。
[0018]图10示出确定像素是双重确认还是非双重确认的示例性方法的流程图。
[0019]图11示出用于调整非双重确认区域中的MV的示例性方法的流程图。
[0020]图12A至图12B示出在双重确认区域中寻找最近像素的实例。
[0021]图13示出说明用于采用逐像素运动矢量作为输入来计算块运动矢量的示例性方法的流程图。
[0022]图14示意性地示出逐像素MV转换成块MV的实例。
具体实施方式
[0023]本文描述用于计算运动矢量以用于在帧内插、帧速率转换或其他动作中使用的系统和方法。如先前所解释,可生成跟踪对象在当前帧(CF)与先前帧(PF)之间的位置差异的运动矢量。如本文所解释,可利用两种类型的运动矢量(1相MV(MV1)和0相MV(MV0))来对帧进行内插。MV0代表从PF到CF的运动,并且MV1代表从CF到PF的运动。生成屏幕上的每个像素(或像素组)的MV,从而形成屏幕上的像素的纹理或MV的集合。如本文所用,纹理被定义为从帧中的像素的集合到一个或多个数字(例如,矢量的分量或单个数字)的集合的映射。
[0024]如果在帧速率转换过程中使用运动矢量,则典型的渲染引擎仅输出二维的MV1纹理。因此,纹理不含有深度内容,并且仅包括有关如在虚拟相机的参考系中查看到的相对屏幕位置变化的信息。利用逐像素运动矢量的深度可告知如何算计块运动矢量的2D分量。块运动矢量可表示像素块(例如,五乘五的像素块)的运动矢量的平均值,并且可用于帧内插或其他图像处理任务以便例如减少处理需求。特定深度范围内的场景区域称为前景(靠近相机)、背景(远离相机)或中间范围(介于前景与背景之间)。在图像处理中可能期望确定以下哪个深度范围支配每个像素块:前景、背景或中间范围。
[0025]作为一个实例,两个对象可定位在距(虚拟)相机或视点的不同距离处。如果两个对象在相同方向上以相等的世界空间距离移动,则较远的对象可在眼睛空间中看起来移动较小距离,从而产生视差效应,其中更远离视点的对象看起来比更靠近视点的对象移动得少。
[0026]在块中的大多数像素在背景中的情况下,大多数像素将具有小MV,因为MV是从相机/视点的角度评估的。如果块中的少量像素例如位于前景中,则前景像素将具有幅值较大的运动矢量。如果要对块内的所有运动矢量求平均,则前景的(相对较少的)MV将支配平均MV。这可能歪曲背景像素的相对小的明显运动,反而有利于前景像素的MV。
[0027]通过在像素MV中包括深度信息,可解析每个块的主导深度范围:前景、背景或中间范围。然后可忽视块内未落入主导范围的运动矢量值以利于评估仅主导范围内的像素的平均值。在块由背景像素支配的情况下,所得的运动矢量可更紧密地匹配帧内发生的运动。
[0028]所添加的深度信息还可为图像处理模块提供另外的灵活性。MV的深度分量可例如用作加权函数的输入,所述加权函数进而可用于对不同深度的区域应用不同水平的图像校正。
[0029]因此,根据本文描述的实施方案,可将深度纹理附加到MV1,这通过考虑深度变化而允许更准确的帧内插。此外,可类似地生成具有深度的MV0纹理。MV0和MV1两者可用作帧
速率转换算法的输入,这有助于内插步骤。
[0030]此外,每一帧可由两种对象组成:具有运动矢量的对象和不具有运动矢量的对象。以运动矢量为特征的对象可包括移动的人物或其他对象、用户的视图以及游戏中地图的部分。不具有运动矢量的对象可包括例如烟雾效应、全屏或局部屏幕场景转变(例如淡入淡出和擦除)、和/或粒子效应。通过将具有运动矢量的对象与不具有运动矢量的对象分离,可执行改进的图像处理。传统上,算法可尝试排除以不具有运动矢量的对象为特征的屏幕区域。然而,这种方法并不完美并且可能在帧速率转换的过程期间导致附近对象的混合。因此,在传输到图像处理器之前分离具有运动矢量和不具有运动矢量的对象可减少由传统已知的排除方法引起的伪影。
[0031]传统上,运动矢量也是在逐个像素的基础上采样的,这样的屏幕上的每个像素具有相关联的MV0和MV1。然而,运动矢量的采样分辨率可动态地降低或提高。降低分辨率也可能降低MV计算所需的算计能力。由于许多装置(例如智能手机本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种方法,其包括:针对当前帧中要渲染的一个或多个对象的每个像素生成1相运动矢量(MV1)和0相运动矢量(MV0),每个MV1和MV0具有相关联的深度值,从而形成MV1纹理和MV0纹理,每个MV0是基于相机MV0和对象MV0确定的;将所述MV1纹理转换为一组MV1像素块,并且将所述MV0纹理转换为一组MV0像素块;以及输出所述一组MV1像素块和所述一组MV0像素块以用于图像处理。2.如权利要求1所述的方法,其中每个MV1表示所述像素处的顶点从当前帧到先前帧的位置变化,其中每个MV0表示所述像素处的所述顶点从所述先前帧到所述当前帧的位置变化,其中所述相机MV0表示由于虚拟相机的位置或取向的变化所致的所述像素处的所述顶点从所述先前帧到所述当前帧的位置变化,并且其中所述对象MV0表示由于所述对象在世界空间中的位置变化所致的所述像素处的所述顶点从所述先前帧到所述当前帧的位置变化。3.如权利要求2所述的方法,其还包括:针对所选择像素,基于所选择像素的对应顶点在所述先前帧中的世界空间位置确定所选择像素的所述相机MV0。4.如权利要求3所述的方法,其中基于所选择像素的对应顶点在所述先前帧中的所述世界空间位置确定所选择像素的所述相机MV0包括:基于所选择顶点在所述先前帧中的深度和从所述虚拟相机指向齐次剪辑空间的近剪辑上的所选择顶点的射线确定所述顶点的眼睛空间位置,并且将来自所述先前帧的逆视图矩阵应用于所述眼睛空间位置以确定所述世界空间位置;将所述当前帧的第一视图矩阵应用于所述世界空间位置以生成所选择顶点在所述齐次剪辑空间中的位置;将所述先前帧的第二视图矩阵应用于所述世界空间位置以生成所选择顶点在所述齐次剪辑空间中的先前位置;以及将所述相机MV0计算为所述位置与所述先前位置之间在竖直轴、水平轴和深度轴中的每一个上的差。5.如权利要求2所述的方法,其还包括:针对所选择像素,基于与所选择像素对应的所选择顶点在所述先前帧中的眼睛空间位置确定所选择像素的对象MV0。6.如权利要求5所述的方法,其中基于所选择顶点在所述先前帧中的所述眼睛空间位置确定所选择像素的对象MV0包括:计算所选择顶点在所述先前帧中的所述眼睛空间位置并且计算所选择顶点在所述当前帧中的所述眼睛空间位置,它们各自是基于对应的模型矩阵和视图投影矩阵;将所述先前帧中的所述眼睛空间位置和所述当前帧中的所述眼睛空间位置内插到齐次剪辑空间中以分别生成输入位置和输入先前位置;将所述对象MV0计算为所述输入位置与所述输入先前位置之间在竖直轴、水平轴和深度轴中的每一个上的差;以及基于所选择顶点的屏幕上位置将所述对象MV0分派给所选择像素。7.如权利要求2所述的方法,其中将所述MV1纹理转换为所述一组MV1像素块包括:针对所述MV1纹理的多个像素块中的每个像素块识别所述像素块中的像素类型分布,并且基于
每个像素块的所述像素类型分布将所述MV1纹理转换为所述一组MV1像素块。8.如权利要求7所述的方法,其中基于每个像素块的所述像素类型分布将所述MV1纹理转换为所述一组MV1像素块包括:如果所选择像素块的分布是双峰的,使得所选择像素块中存在至少一个背景像素和至少一个前景像素,则仅对所选择像素块中的前景像素计算平均MV1,否则仅对所选择像素块中的中等范围像素计算所述平均MV1。9.如权利要求2所述的方法,其中将所述MV0纹理转换为所述一组MV0像素块包括:针对所述MV0纹理的多个像素块中的每个像素块识别所述像素块中的像素类型分布,并且基于每个像素块的所述像素类型分布将所述MV0纹理转换为所述一组MV0像素块。10.如权利要求9所述的方法,其中基于每个像素块的所述像素类型分布将所述MV0纹理转换为所述一组MV0像素块包括:如果所选择像素块的分布是双峰的,使得所选择像素块中存在至少一个背景像素和至少一个前...

【专利技术属性】
技术研发人员:张洪敏司马苗韩宗明刘贡献陈军华程国华刘宝辰N
申请(专利权)人:逐点半导体上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1