CN107004292A - 使用高速缓存的纹理空间模糊的运动模糊 - Google Patents

使用高速缓存的纹理空间模糊的运动模糊 Download PDF

Info

Publication number
CN107004292A
CN107004292A CN201580063015.5A CN201580063015A CN107004292A CN 107004292 A CN107004292 A CN 107004292A CN 201580063015 A CN201580063015 A CN 201580063015A CN 107004292 A CN107004292 A CN 107004292A
Authority
CN
China
Prior art keywords
obfuscation
texture space
displacement
space data
pel
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.)
Granted
Application number
CN201580063015.5A
Other languages
English (en)
Other versions
CN107004292B (zh
Inventor
C.劳巴歇尔
K.伦纳
D.德里弗
C.威廉森
J.罗德里格兹
J.阿尔诺德
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN107004292A publication Critical patent/CN107004292A/zh
Application granted granted Critical
Publication of CN107004292B publication Critical patent/CN107004292B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/73Deblurring; Sharpening

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本文讨论的技术促进了图元(304)的实际的实时运动模糊。本文讨论的技术可以计算图元的第一移动,基于第一移动来模糊化纹理空间数据(312(1)),高速缓存经模糊化的纹理空间数据,并且在稍后的时间计算出的图元的稍后的移动被发现相似于第一移动时再使用经模糊化的纹理空间数据。如果稍后的移动与第一移动相差阈值量,则本文讨论的技术可以重新模糊化纹理空间数据以生成第二经模糊化的纹理空间数据(312(2)),存储第二经模糊化的纹理空间数据,并且使用第二经模糊化的纹理空间数据来生成模糊图元。

Description

使用高速缓存的纹理空间模糊的运动模糊
背景技术
运动模糊是存在于图像中的条纹状伪像(artifact),其中正被拍摄的对象的移动导致相机的胶片或传感器的多个位置的曝光。这个伪像的实时计算机化近似的成本非常昂贵,并且用于实时重现运动模糊的现有方法是不令人满意的,因为它们既没有在所有情境中实现符合实际的结果,也由于它们的处理成本而无法实时计算它们。例如,以前的技术产生低劣结果,比如高得无法由具有较少处理能力的设备实现的处理成本,不切实际的结果,比如对于累积缓冲器和抖动图元而言共同的“戳记(stamping)”、伪像或基于对象或“相机”的速度变化的模糊变化的缺失。
发明内容
本文讨论的技术促进了图元的符合实际的实时运动模糊。在至少一个示例中,图元可以在动画中处于运动中。在一些示例中,图元可以是图像中的对象。本文讨论的技术可以计算图元的第一移动,基于第一移动而模糊化纹理空间数据,高速缓存经模糊化的纹理空间数据,以及当确定图元的后来(多个)移动与第一移动相似时,再使用经模糊化的纹理空间数据。在至少一个示例中,图元可以包括任意形状,并且本文所讨论的技术可以至少部分地基于任意形状的第一移动来模糊化任意形状,并且至少部分地基于与第一移动相似的任意形状的第二移动来再使用经模糊化的任意形状。如果后来移动与第一移动相差阈值量,则本文讨论的技术可以重新模糊化纹理空间数据并且存储经模糊化的第二纹理空间数据。
提供本发明内容以便以简化的形式介绍以下将在具体实施方式中进一步描述的概念的选择。本发明内容旨在用于帮助确定所要求保护的主题的范围。例如,术语“技术”可以指(多个)系统、(多个)方法、计算机可读介质/指令、(多个)模块、算法、硬件逻辑(例如现场可编程门阵列(FPGA)、专用集成电路(ASIC),专用标准产品(ASSP)、片上系统式系统(SOC)、复杂可编程逻辑器件(CPLD))和/或贯穿整个文档的由以上描述的上文许可的(多个)技术。
附图说明
具体实施方式参照附图进行描述。在图中,附图标记的最左边的(多个)数字标识出该附图标记首次出现在其中的图。不同图中相同的附图标记指示相似或相同的项目。
图1是描绘示例环境的图,其中用于经由高速缓存的纹理空间数据生成运动模糊的框架的示例可以操作。
图2是描绘可以使用高速缓存的纹理空间数据生成运动模糊的示例设备的框图。
图3是描绘用于生成运动模糊图元的说明性过程的框图。
图4是图示出用于使用高速缓存的纹理空间模糊的运动模糊的各种示例过程之间的示例关系的流程图。
图5是图示出绘制针对当前帧中的场景元素的运动模糊的示例过程的流程图。
图6是图示出模糊化纹理空间数据的示例过程的流程图。
图7是图示出绘制针对当前帧中的场景元素的运动模糊的示例过程的流程图。
图8是图示出这样的示例过程的流程图,其用于确定是否可以将经模糊化的纹理空间数据和未经模糊化的纹理空间数据的插值用于绘制运动模糊图元,并且如果是,则使用经模糊化的纹理空间数据和未经模糊化的纹理空间数据的插值来绘制运动模糊图元。
图9是图示出这样的示例过程的流程图,其用于确定是否可以将经模糊化的纹理空间数据和未经模糊化的纹理空间数据的插值用于绘制运动模糊图元,并且如果否,则模糊化纹理空间数据,存储经模糊化的纹理空间数据,并使用经模糊化的纹理空间数据来绘制运动模糊图元。
具体实施方式
概述
为了简单起见,“移动的”对象或图元是随着时间相对于相机或视点(POV)所指向的方向移动的对象或图元,并且“不动的”对象或图元是随着时间相对于相机或POV所指向的方向保持相同或相似的位置的对象或图元。换句话说,在各种示例中,相机或POV可以在曝光期间平移,并且就是该运动可能导致运动模糊。相似地,相机或POV可以保持基本上静止,而在空间中移动的对象可能导致运动模糊。在一些示例中,“相似的位置”引起一些运动,但运动不足以导致明显得被粗略检查或人类感知的运动模糊。此外,由于本文所描述的技术模拟摄影的伪像,所以术语“相机”在本文中用于指代摄影装备,而POV在本文中用于指代在场景的表示中显而易见的场景的视图。在一些示例中,POV可以是对于观看场景的图像或动画的用户显而易见的视点。
本文描述的示例提供以低处理成本生成运动模糊而不牺牲运动模糊质量的技术。运动模糊具有被这些技术复现而以前的技术没有全部或部分复现的某些特性。例如,当一个对象在图像中运动模糊时,其他不动的对象保持清晰,包括经模糊化的对象后面的对象和经模糊化的对象前面的对象,并且运动模糊显现得就像连续条纹。以前的技术产生低劣结果,比如高得无法由具有较少处理能力的设备实现的处理成本,不切实际的结果,比如对于累积缓冲器和抖动图元而言共同的“戳记”,比如不适当遮挡或示出运动模糊对象的伪像,或者基于对象或相机的速度变化的模糊变化的缺失。
在至少一个示例中,技术可以计算当前帧或图像中图元的位移,根据计算出的位移来模糊化图元的纹理空间数据,存储经模糊化的纹理空间数据,并且至少部分地基于经模糊化的纹理空间数据生成经模糊化的图元。在至少一个示例中,技术可以通过在图像空间或纹理空间中生成包含任何任意形状的图像,来模糊化该任意形状。在一些示例中,如果在图像空间中生成包含该任意形状的图像,则技术可以将包含该任意形状的图像映射到场景空间,以便至少部分地基于位移数据来模糊化所得到的纹理空间数据。在至少一个示例中,然后可以存储所得到的经模糊化的纹理空间数据,并将其用于生成经模糊化的图元,经模糊化的图元包括该任意形状的经模糊化的版本。在一些示例中,如果在纹理空间中生成包含任意形状的图像,则技术可以模糊化并且存储纹理空间数据,而不用首先将图像映射到纹理空间。此外,在至少一个示例中,技术可以计算第二帧中的图元的第二位移,确定第二位移与所述位移相似,并且至少部分地基于先前存储的经模糊化的纹理空间数据来生成经模糊化的图元。在再一个示例中,技术可以计算第二帧中的图元的第二位移,确定第二位移与所述位移不够相似,模糊化纹理空间数据以生成经模糊化的第二纹理空间数据,并且至少部分地基于经模糊化的第二纹理空间数据生成经模糊化的图元。
这些技术可以减少生成在场景中的运动模糊对象所需的处理器周期数。因此,具有较大处理能力的高端设备和具有最小处理能力的低端设备都能够在没有预处理的情况下再现运动模糊。这允许设备将更多的处理能力分配给其他功能,从而提供更好的用户体验。通过不需要通过预处理生成运动模糊,图元可以被动态模糊化。换句话说,不同的或不可预测的类型的以及采取不可预见的路径的图元可以被运动模糊化,而不必预测什么样的图元将移动以及在实时显示图元之前它们会采取什么样的路径。此外,在本发明之前的该技术领域中,对于没有足够处理能力的设备,如所描述的符合实际的动态的运动模糊是不可能的。
本文描述的技术和系统可以以多种方式来实现。下面参考以下图来提供示例实现。可以组合这里描述的实现、示例和图示。
说明性环境
图1是描绘其中本文描述的示例可以操作的示例环境100的框图。在一些示例中,环境100的各种设备和/或组件包括可以经由一个或多个网络104彼此通信以及与外部设备(比如云服务106)通信的用户设备102。
例如,(多个)网络104可以包括比如因特网之类的公共网络,比如机构和/或个人内联网之类的私有网络,或私有和公共网络的某种组合。(多个)网络104还可以包括任何类型的有线和/或无线网络,包括但不限于局域网(LAN)、广域网(WAN)、卫星网络、电缆网络、Wi-Fi网络、WiMax网络、移动通信网络(例如,3G,4G等)或其任何组合。(多个)网络104可以利用通信协议,包括基于分组的和/或基于数据报的协议,比如因特网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)或其他类型的协议。此外,(多个)网络104还可以包括促进网络通信和/或形成用于网络的硬件基础的许多设备,诸如交换机、路由器、网关、接入点、防火墙、基站、中继器、骨干设备等。
在一些示例中,(多个)网络104还可以包括使能连接到无线网络的设备,比如无线接入点(WAP)。示例支持通过在各种电磁频率(例如无线电频率)上发送和接收数据的WAP的连接性,包括支持电气和电子工程师协会(IEEE)1302.11标准(例如,1302.11g,1302.11n等)和其他标准的WAP。
在各种示例中,用户设备102包括比如设备102(1)-102(N)之类的计算设备。示例支持这样的情境,其中,(多个)设备102可以包括在群集或其他分组配置中操作以共享资源、平衡负载、改善性能、提供失效转移(fail-over)支持或冗余性或用于其他目的的一个或多个计算设备。(多个)设备102可以包括各种各样的设备类型,并且不限于任何特定类型的设备。相似地,(多个)设备102可以在不共享资源或依赖于(多个)其他设备102的情况下操作。此外,(多个)设备102可以在通信上不链接的情况下操作。
在一些示例中,(多个)设备102可以通过(多个)网络104连接到云服务106。云服务106可以包括一个或多个计算设备。在各种示例中,云服务106可以具有存储在其上的指令,以使用本文所描述的技术来生成运动模糊图元。例如,云服务106可以模糊化纹理空间数据。
在至少一个示例中,(多个)设备102可以包括显示器108,(多个)设备102在其上绘制图元110。(多个)设备102可以具有存储在其上的指令来利用运动模糊绘制图元110的移动。作为示例,图1将图元110描绘为在其上具有圆圈和两个点的矩形。在至少一个示例中,可以存在多于一个的图元,并且存储在(多个)设备102上的指令可以进一步包括使得图元作为动画的一部分来改变位置的指令。在图1中所示的示例中,图元从用户设备显示器108的左下方的位置移动到右上方的位置,同时大小增大。
说明性设备和模块
图2描绘了说明性设备200,如图所示,其可以表示(多个)用户设备102和/或云服务设备106。(多个)说明性设备可以包括具有一个或多个处理单元202的任何类型的计算设备,所述一个或多个处理单元202可操作地连接到计算机可读介质208。连接可以经由总线或经由另一个可操作的连接,在一些实例中,总线可以包括以下项中的一项或多项:系统总线、数据总线、地址总线、PCI总线、Mini-PCI总线和任何各种局部、外围和/或独立总线。
(多个)说明性设备可以包括具有可操作地连接到计算机可读介质208、(多个)I/O接口204和(多个)网络接口206的一个或多个处理单元202的任何类型的计算设备。计算机可读介质208可以具有存储在其上的移动模块210、纹理空间模糊化模块212,高速缓存模块214和绘图模块216。
计算机可读介质208可以包括至少两种类型的计算机可读介质,即计算机存储介质和通信介质。计算机存储介质可以包括以任何方法或技术实现的用于存储信息(压缩或未压缩形式)以执行本文描述的过程或方法的易失性和非易失性、非暂时性的机器可读、可移动和不可移动介质,所述信息比如计算机(或其他电子设备)可读指令、数据结构、程序模块或其他数据。计算机可读介质112和计算机可读介质122是计算机存储介质的示例。计算机存储介质包括但不限于硬驱动器、软盘、光盘、CD-ROM、DVD、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、闪存、磁或光卡、固态存储器设备或适合于存储电子指令的其它类型的媒体/机器可读介质。
相比之下,通信介质可以在比如载波或其他传输机制之类的经调制的数据信号中体现计算机可读指令、数据结构、程序模块或其他数据。如本文所定义的,计算机存储介质不包括通信介质。
(多个)说明性设备可以包括但不限于台式计算机、服务器计算机、web服务器计算机、个人计算机、移动计算机、膝上型计算机、平板计算机、可穿戴计算机、植入的计算设备、电信设备、汽车计算机、启用网络的电视、瘦客户端、终端、个人数据助理(PDA)、游戏控制台、游戏设备、工作站、媒体播放器、个人视频录制器(PVR)、机顶盒、相机、包括在计算设备、器具、或任何其他种类的计算设备中的集成组件,比如一个或多个单独的处理器设备,比如CPU型处理器(例如,微处理器)、GPU或(多个)加速器设备。
在一些示例中,如关于(多个)说明性设备所示,计算机可读介质208可以存储可由(多个)处理单元202执行的指令,(多个)处理单元202可以表示并入(多个)说明性设备中的CPU。计算机可读介质204还可以存储可由外部CPU型处理器执行的指令,可由GPU执行的指令,和/或可由比如FPGA型加速器、DSP型加速器或任何内部或外部加速器之类的加速器执行的指令。
存储在计算机可读介质208上的可执行指令可以包括例如可由(多个)处理单元202加载和执行的操作系统和其他模块、程序或应用。可替换地或附加地,可以至少部分地由比如加速器之类的一个或多个硬件逻辑组件来执行本文描述的功能。例如但不限于,可以使用的说明性类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统式系统(SOC)、复杂可编程逻辑器件(CPLD)等。例如,加速器222(N)可以表示混合设备,比如来自包括嵌入在FPGA构造中的CPU内核的ZYLEX或ALTERA的混合设备。
(多个)说明性设备还可以包括一个或多个输入/输出(I / O)接口204,以允许(多个)说明性设备与输入/输出设备通信,输入/输出设备比如包括外围输入设备的用户输入设备(例如,键盘、鼠标、笔、游戏控制器、语音输入设备、触摸输入设备、手势输入设备等)和/或包括外围输出设备的输出设备(例如,显示器、打印机、音频扬声器、触觉输出等)。(多个)说明性设备还可以包括一个或多个网络接口206,以使能通过(多个)网络104在(多个)说明性设备与比如其他设备200之类的其他联网设备之间的通信。这样的(多个)网络接口206可以包括一个或多个网络接口控制器(NIC)或其他类型的收发器设备以通过网络发送和接收通信。
此外,移动模块210、纹理空间模糊化模块212、高速缓存模块214和绘图模块216构成说明性运动模糊化框架,其可以分发地或单独地存储在任何一个或多个说明性设备200上。也就是说,一些或所有模块可以可用于云服务设备106和/或(多个)用户设备102,可从云服务设备106和/或(多个)用户设备102访问或存储在云服务设备106和/或(多个)用户设备102上。在一些示例中,可以采用任何数量的模块并且在各种示例中,本文所描述的由一个模块所采用的技术可以由任何(多个)其他模块采用。
在至少一个示例中,移动模块210可以计算(多个)图元通过场景的位移。如本文所定义的位移是随着时间或帧之间的位置的变化。换句话说,位移可以是速度,或者更一般地,“移动”。在一些示例中,所计算的位移包括矢量。在至少一个示例中,移动模块210可以计算图元110的一个或多个顶点的位移。在至少一个示例中,移动模块210可以计算要绘制的每个帧的图元的顶点的位移。在各种示例中,移动模块210可以标识图元的位置并计算位置的位移。移动模块210可以使用纹理检测来选择该位置。在一些示例中,移动模块210可以计算自所计算的最后一帧起在指定数量的帧处的图元顶点的位移。在一些示例中,移动模块210可以存储或与高速缓存模块214协调以存储位移信息。在至少一个示例中,移动模块210可以计算在纹理空间中的位移和差量。在一些示例中,移动模块可以计算出在场景空间中的位移和差量。
在至少一个示例中,移动模块210还可以计算一个位移和另一个位移之间的差量。例如,移动模块210可以计算第一帧中的图元的顶点的位移与第二帧中同一个或另一个图元的同一个或另一个顶点的位移之间的差量。在各种示例中,移动模块210还可以计算一个图元的多个顶点的位移之间的差量。在至少一个示例中,所计算的位移可以是矢量。在一些示例中,所计算出的差量也可以是矢量。在各种示例中,所计算出的差量可以是两个矢量之间的矢量差的绝对值。
在至少一个示例中,移动模块210还可以比较位移以确认位移是否相似,或者等价地“足够接近”,以使用来自先前帧的经模糊化的纹理空间数据。在一些示例中,移动模块210可以通过计算当前帧中的图元的位移与先前帧中的图元的接收位移之间的差量,来比较当前帧中的图元(在至少一个示例中,图元的至少一个顶点)相对于最后一次生成经模糊化的纹理空间数据时的帧(或者在还没有生成经模糊化的纹理空间数据的情况下,最后一帧)(“先前帧”)中的图元的位移。在至少一个示例中,移动模块210可以确定差量是大于还是小于阈值差量,以便确定位移是否相似。在一些示例中,除了其它合适的阈值之外,阈值差量可以包括多个纹理元素(texel)、角度或两者的组合。例如,阈值差量可以是40个纹理元素。在另一示例中,阈值差量可以是40个纹理元素和2o。在各种示例中,可以附加地或代替纹理空间而在场景空间中测量阈值差量。
在接收或计算当前帧中的图元的位移和在先前帧中的图元的位移之后,移动模块210可以计算当前帧中的图元的位移与在先前帧中的图元的位移之间的差量。在至少一个示例中,这个差量是绝对的差量。在一些示例中,该差量可以是矢量。移动模块210然后可以确定该差量是超过还是没有超过阈值。
在至少一个示例中,取决于确定的结果,纹理空间模糊化模块212可以重新模糊化纹理空间数据以生成要用于生成经模糊化的图元的新的经模糊化的纹理空间数据,或者纹理空间模糊化模块212可以使用为先前帧生成的经模糊化的纹理空间数据来生成经模糊化的图元。在至少一个示例中,如果差量不小于阈值差量,则纹理空间模糊化模块212可以重新模糊化纹理空间数据。在这样的示例中,可以有动机来生成经新模糊化的纹理空间数据以对应于当前帧中的图元的增大的位移。换句话说,纹理空间模糊化模块212可以实现该方法,以便基于增大的位移来增加模糊量。在至少一个示例中,纹理空间模糊化模块212可以通过检索(原始)纹理空间数据并且至少部分地基于当前位移模糊化纹理空间数据,来重新模糊化纹理空间数据。
在至少一个示例中,如果差量不大于阈值差量,则纹理空间模糊化模块212可以使用为先前帧生成的经模糊化的纹理空间数据。换句话说,在这样的示例中,如果当前帧中的位移与为其生成了经模糊化的纹理空间数据的帧的位移相似,则纹理空间模糊化模块212可以使用先前生成并存储的经模糊化的纹理空间数据。更简单地说,如果当前帧中的图元与为其生成并存储了经高速缓存的经模糊化的纹理空间数据的先前帧中的图元的位移相似地进行位移,则纹理空间模糊化模块212使用经高速缓存的经模糊化的纹理空间数据。在该示例中,可以将相似定义为不大于阈值差量的差量。在一些示例中,如果差量等于阈值差量,则纹理空间模糊化模块212可以重新模糊化纹理空间数据。在各种示例中,纹理空间模糊化模块212可以在阈值被超过之前模糊化纹理空间数据或者阈值可以被减小以防止模糊中的“突变的”过渡(transition)。
在至少一个示例中,纹理空间模糊化模块212生成经模糊化的纹理空间数据。在至少一个示例中,纹理空间数据中包括场景空间数据(比如例如图元110三维模型或图像)到纹理空间的映射。在一些示例中,纹理空间数据可以包括任意形状。在各种示例中,可以利用图像包含任意形状,所述图像被生成以涵盖该任意形状。可以使用用于读取、修改或变换任意形状的数据的任何合适的方法。在至少一个示例中,图元可以包括任意形状。在该示例中,(多个)着色器可以将场景空间数据映射到纹理空间数据,并修改纹理空间数据或场景空间数据以实现投影、缩放、裁剪、复制或其他操作。可以映射到纹理空间的文件类型的示例包括但不限于.rla和.rlb、.pic、.alias、.rgb、.jpg、.png、.exr、.GIF、.iff、.picture、.hdr、.ppm、.tga、.lwi、.bmp、.dds、.qnt、.ct、.st、.vt和.wt、.zt、.nt和.mt、.tt、.bit、.map等。在一些示例中,纹理空间数据包括由着色器计算的过程性纹理(proceduraltexture)。在至少一个示例中,纹理空间模糊化模块可以至少部分地基于图元的顶点的位移来模糊化纹理空间数据,其中纹理空间数据对应于场景空间中的图元的纹理。在一些示例中,可以从运动模块210或者在各种示例中从比如云服务106之类的某个其它源计算和接收位移。纹理空间模糊化模块212可以使用任何模糊化技术。在一些示例中,纹理空间模糊化模块212可以使用几何挤压(geometry extrusion)或高斯模糊。
在至少一个示例中,纹理空间模糊化模块212接收纹理空间数据和对应于纹理空间数据的图元的至少一个顶点的位移矢量,并且构造具有尺寸(dimension)的新几何体。在至少一个示例中,通过沿着位移矢量和该位移矢量的负值对纹理空间数据进行位移并且记录纹理空间数据在沿着每个方向被位移时到达的坐标,来计算新几何体的尺寸。换句话说,纹理空间模糊化模块212可以通过在纹理空间中从纹理空间数据的初始位置沿着位移矢量向前和向后对纹理空间数据进行位移并且记录通过对纹理空间数据进行位移而到达的场景空间中的坐标,来确定对于经模糊化的纹理空间数据而言将需要多少空间。在至少一个示例中,纹理空间模糊化模块212然后可以形成涵盖这些坐标的矩形。在一些示例中,可以使用任何适当的形状来涵盖所述坐标并且正确地映射到场景空间中的图元(例如,几何图元,几何图元到纹理空间的映射的形状、三角形、圆形、椭圆形等)。在该示例中,如果所接收的位移矢量包括场景空间中的矢量,则纹理空间模糊化模块212可以在对纹理空间数据进行位移之前将位移矢量转换为纹理空间位移矢量,以导出新几何体的尺寸。
在至少一个示例中,纹理空间模糊化模块212可以通过沿着源自每个纹理元素的位置的位移矢量的负值和位移矢量行经(walk)纹理空间数据的每个纹理元素,来再现新几何体(“经模糊化的纹理空间数据”)的内容。对于其中图元包括矩形并且对应的纹理空间数据也因此是矩形的一个示例,这导致(在纹理空间中)一个图像,其看起来像一个矩形,针对位移矢量的方向和幅度,该矩形是“加条纹的”或“模糊的”。在一些示例中,纹理空间模糊化模块212可以沿着位移矢量行经纹理空间数据的所有纹理元素的子集。在各种示例中,纹理空间模糊化模块212可以动态地确定纹理空间数据的哪些部分要模糊化。
在一些示例中,纹理空间模糊化模块212可以在沿着位移矢量行经纹理元素时改变纹理元素的强度或不透明度。在各种示例中,纹理元素的不透明度可以作为位置的函数而改变。在一些示例中,纹理元素的不透明度可以作为图元的亮度(luminosity)的函数而改变。例如,纹理空间模糊化模块212可以确定图元或纹理空间数据的部分是更亮还是更不亮,并且因此至少部分地基于该部分是更亮还是更不亮,来缩放该部分的不透明度。例如,如果图元包括朝向POV的光和被场景中的光源遮挡的非反射部分,则构成纹理空间中的光的纹理元素将被给予更大的不透明度,并且构成非反射的被遮挡部分的纹理元素将被给予更小的不透明度。在各种示例中,用户可以选择不透明度将增加或减少的量。
在各种示例中,纹理空间模糊化模块212可以接收场景中的图元的至少一个动画曲线,并且在实时之前模糊化纹理空间数据。在该示例中,纹理空间模糊化模块212可以基于关于动画曲线的信息来选择模糊量。在各种示例中,纹理空间模糊化模块212可以至少部分地基于图元沿动画曲线的最大位移来模糊化纹理空间数据。在该示例中,绘图模块216然后可以使用针对该最大位移的经模糊化的纹理空间数据,以使用未经模糊化的纹理空间数据来对经中间模糊化的图元进行插值。在各种示例中,纹理空间模糊化模块212可以针对沿着动画曲线的具有不同位移矢量的点生成经模糊化的纹理空间数据的多个实例。在其它各种示例中,纹理空间模糊化模块212可以完成模糊化过程的一部分,并且绘制模块216可以在绘制调用时完成模糊化过程。在一些示例中,通过做出从图形引擎到图形应用编程接口(API)的调用,绘制调用完成各种任务。除了别的以外,这些任务可以包括在显示器上再现图元,再现图元的变换,再现图元的阴影,以及纹理混叠(texture aliasing)。在一些示例中,绘图调用可以批量化,这意味着可以组合多个绘图调用,使得图形引擎需要进行仅仅一个批量化的绘制调用,来完成在单独进行每个绘图调用的情况下将完成的所有任务。
在至少一个示例中,高速缓存模块214可以存储为任何图像或帧接收、计算或生成的数据。在至少一个示例中,高速缓存模块214可以存储一个或多个图元的经计算和经模糊化的纹理空间数据和(多个)位移矢量。在至少一个示例中,高速缓存模块214还可以存储纹理空间数据(原始未经模糊化的纹理空间数据)。在至少一个示例中,高速缓存模块214将数据存储在高速缓存器中。在一些示例中,除了别的以外,高速缓存器可以包括中央处理单元高速缓存器、存储器高速缓存器、图形处理单元高速缓存器、转换后备缓冲器(translationlookaside buffer)、盘高速缓存器或Web高速缓存器。快速提供数据的任何高速缓存器都可以是合适的。在各种示例中,高速缓存模块214可以附加地或可替换地将数据存储在其他形式的存储器中。
在至少一个示例中,高速缓存模块214提供在最后一个经模糊化的纹理空间数据被生成时的帧的(多个)位移矢量。在一些示例中,高速缓存模块214还可以存储图元、动画路径和元数据。
在至少一个示例中,高速缓存模块214存储用于种子帧的(多个)位移矢量和经模糊化的纹理空间数据,其中种子帧是这样的帧,高速缓存模块214存储了与针对该帧计算和生成的(多个)位移矢量和经模糊化的纹理空间数据至少部分对应的针对该帧的(多个)位移矢量和经模糊化的纹理空间数据。在存储了针对种子帧的(多个)位移矢量和经模糊化的纹理空间数据之后,高速缓存模块214将种子帧的(多个)位移矢量提供给移动模块210,使得移动模块210可以将种子帧的(多个)位移矢量与当前帧的(多个)位移矢量相比较。在至少一个示例中,高速缓存模块214将继续提供相同的(多个)位移矢量,直到运动模块210确定当前帧的位移矢量与种子帧的(多个)位移矢量不相似为止,在这种情况下,高速缓存模块214将当前帧的(多个)位移矢量存储为新种子帧的(多个)位移矢量,并存储当前帧的经模糊化的纹理空间数据。
在各种示例中,在当前帧的位移矢量与种子帧的(多个)位移矢量不相似时,高速缓存模块214可以决定不存储用于当前帧的(多个)位移矢量或经模糊化的纹理空间数据。在这些示例中,绘图模块216可以在先前存储的经模糊化的纹理空间数据和未经模糊化的纹理空间数据之间插值,或者纹理空间模糊化模块212可以生成新的经模糊化的纹理空间数据,高速缓存模块214没有利用高速缓存器中的经模糊化的纹理空间数据代替该新的经模糊化的纹理空间数据。在一些示例中,高速缓存模块214可以存储用于多个帧的(多个)位移矢量和经模糊化的纹理空间数据。
在至少一个示例中,绘图模块216将纹理空间数据(无论是经模糊化的还是未经模糊化的)映射到场景空间。在至少一个示例中,绘图模块216还可以绘制场景的几何体、视点、纹理、照明和阴影信息。在至少一个示例中,如果移动模块210确定当前帧中的图元的位移相似于为其生成了经模糊化的纹理空间数据的帧(在本文中称为“种子帧”)中的图元的位移,则绘图模块216映射为先前帧生成的并由高速缓存模块214存储的经模糊化的纹理空间数据,以在当前帧中绘制图元。
在一些示例中,绘图模块216可以将经模糊化的纹理空间数据与未经模糊化的纹理空间数据组合以生成具有中间等级的模糊的图元。在一些示例中,绘图模块216可以根据特定当前帧,从经模糊化的纹理空间数据“拉取”更多或更少,以及从未经模糊化的纹理空间数据“拉取”更多或更少。在至少一个示例中,绘图模块216可以至少部分地基于当前帧中的图元的位移以及当前帧中的图元的位移与为其模糊化并存储了经模糊化的纹理空间数据的帧中的图元的位移的关系,在经模糊化的纹理空间数据和未经模糊化的纹理空间数据之间插值。例如,如果移动模块210确定当前帧的位移与种子帧的位移在相同方向但其幅度小于种子帧的位移的幅度,则绘图模块216可以使用用于种子帧的未经模糊化的纹理空间数据和经模糊化的纹理空间数据以生成当前帧的经模糊化的图元。在一些示例中,绘图模块216可以至少部分地基于当前帧中的图元的位移的幅度来缩放使用经模糊化的纹理空间数据的量和使用未经模糊化的纹理空间数据的量。
说明性操作
图3-9是使用存储在高速缓存器中的经模糊化的纹理空间数据来实时地再现运动模糊图元的说明性过程的图。这些过程被图示为逻辑流程图中的块的集合,其表示可以在硬件、软件或其组合中实现的操作序列。在软件的上下文中,块表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,当由一个或多个处理器执行时,所述计算机可执行指令执行所述操作。计算机可执行指令可以包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序不旨在被解释为限制,并且任何数量的所描述的块可以以任何顺序和/或并行组合以实现所图示出的过程。本文所述的一个或多个过程可以以任何顺序独立地或关联地发生,而无论是串行还是并行。
图3是描绘用于生成运动模糊图元的说明性过程的框图。图3描绘了动画的四个连续帧(302(1) - (4))。在一些示例中,本文描述的技术可以用在图像上,并且可以从关于场景的信息计算位移。该动画的帧包括示例性图元304,其从要在其上再现帧302(1) - (4)的显示器108中的左下方位置移动到右上角位置,同时大小增大(参见帧302(1)和302(4))。在一些示例中,尽管图3描绘了矩形图元,但是图元可以是几何图元、矩形、三角形、任何其他多边形或任何其他形状。示例图元304包括圆圈和两个点,因此作为图元304的纹理的源的纹理空间数据306包括圆圈和两个点。
在帧302(1)中,图元304还没有移动,所以运动模糊不是必需的,过程300然后可以做出绘图调用,将纹理空间数据306映射到图元308( 1)的位置处的场景空间。在一些示例中,过程300可以替代地通过假设图元304的位移来产生运动模糊。为了精确地这样做,过程300将需要具有对图元304的未来路径的知识或估计。在一些示例中,过程304可以从特定的使用环境(例如,程序、操作系统、内核、用户输入、设备类型等)或最近的位移推断所估计的位移。在至少一个示例中,纹理空间数据306存储在高速缓存器中。这里使用的纹理空间数据是图元的源纹理。为了导出纹理空间数据,将图元的像素从场景空间(例如,以x,y和z坐标描述)映射到纹理空间(例如,以u和v坐标描述)。
对于帧302(2),图元从位置308(1)移动到位置308(2)。为了生成图元304的运动模糊,过程300计算图元304的第一位移310(1)。在至少一个示例中,过程300可以通过找出图元304的顶点312的位置的改变来计算图元304的位移310(1)。在至少一个示例中,位置的这种改变可以包括矢量310(1)。在一些例子中,位置的改变或位移可以是幅度。在一些示例中,可以通过从最终位置矢量减去初始位置或从最终位置矢量减去初始位置矢量来计算位移,这取决于可用的数据。在一些示例中,过程300可以附加地考虑自最后计算位移起的帧的数目。
在计算第一位移310(1)之后,过程300至少部分地基于第一位移310(1)来模糊化纹理空间数据以接收经模糊化的纹理空间数据312(1)。出现在图3中的经模糊化的纹理空间数据312(1)上的斜条(hash mark)表示由模糊化导致的条纹。过程300可以增大纹理空间数据306的部分或全部的不透明度。在至少一个示例中,第一位移包括作为参数录入到模糊化方法中的幅度和方向。过程300可以在高速缓存器中存储经模糊化的纹理空间数据312(1)和第一位移。存储在高速缓存器中的经模糊化的纹理空间数据和位移信息在本文中被称为种子经模糊化的纹理空间数据和种子位移。在至少一个示例中,过程300不替换纹理空间数据306,而是在高速缓存器或其他存储装置中保持其可用。过程300可以做出绘制调用,将经模糊化的纹理空间数据312(1)映射到场景空间以生成运动模糊图元304。
在帧302(3)处,图元从位置308(2)移动到308(3)。过程300可以计算第二位移310(2),并将第二位移与第一位移进行比较。在至少一个示例中,比较可以是位移之间的矢量差量。在一些示例中,比较可以是位移之间的绝对差量。在至少一个示例中,如图3中在帧302(3)处所描绘的,如果过程300确定第一位移相似于第二位移,则过程300可以重用存储在高速缓存器中的经模糊化的纹理空间数据312(1),以在帧302(3)中绘制出运动模糊图元304。开发者可以选择一个阈值来定义什么是相似的,什么不是相似的。例如,开发者可以选择40个纹理元素的值,并根据结果的质量来改变该阈值(如果模糊过于突变,则应该向下调整该值,从而导致更频繁地超出阈值,进而必需更频繁地重新模糊化)。
在帧302(4)处,图元从位置308(3)移动到308(4)。过程300可以计算第三位移310(3)并将第三位移310(3)与种子位移310(1)进行比较。在一些示例中,过程300可以将第三位移310(3)与计算出的不超过阈值或者不然被确定为相似于种子位移的最后一个位移进行比较。在至少一个示例中,并且如图3中在帧302(4)处所描绘的,过程300确定第三位移310(3)不相似于种子位移310(1)。由于过程300确定第三位移310(3)与种子位移310(1)不相似,所以经模糊化的纹理空间数据312(1)将不适于生成无缝逼真的运动模糊。因此,过程300可以至少部分地基于第三位移310(3)重新模糊化纹理空间数据306以生成第二经模糊化的纹理空间数据312(2)。过程300可以将第二经模糊化的纹理空间数据312(2)和第三位移310(3)存储在高速缓存器中,作为新的种子数据,并且可以至少部分地基于第二经模糊化的纹理空间数据312(2)来绘制运动模糊图元。过程300可以使用第三位移312(2)作为种子位移以与针对后来帧的后来位移进行比较,并且第二经模糊化的纹理空间数据312(2)将被用于生成运动模糊图元304,直到后来位移不相似为止,此时,纹理空间数据将被重新模糊化,该后来模糊化的纹理空间数据和后来位移将被存储,并且该后来模糊化的纹理空间数据将用于生成运动模糊图元。
图4是用于生成运动模糊图元的说明性过程400的流程图。图4图示出了可以如何组合各种示例过程(例如,过程500、600、700、800和900)以使用高速缓存的纹理空间数据来生成运动模糊图元的至少一个示例。具体地,图4展示出各种示例过程(例如,过程500、600、700、800和900)可以如何通过确定(例如,402对应于504和702以及404对应于802和902)而相关。在至少一个示例中,过程500和700可以通过第一确定402而相关,在第一确定402中,(多个)设备102确定当前帧中的图元的位移与先前帧中的图元的以前的位移之间的差量是否大于阈值(402)。在至少一个示例中,可以根据该确定(402)的结果执行不同的过程(例如,500和700的部分)。在至少一个示例中,步骤506可以由过程600完成(例如,步骤602-606)。
在一些示例中,过程400可以包括与第一确定402同时,在其之前,在其之后或代替第一确定402而发生的第二确定404。在一些示例中,(多个)设备102可以进行第二确定404,其中,(多个)设备(2)102确定当前移动和先前移动之间的插值是否可能。根据该确定404的结果,可以执行不同的过程(例如,800和900的部分)。在至少一个示例中,过程700和800各自的步骤704和步骤804实质上可以是相似的或相同的,如等号标记所指示的。
在一些示例中,例如,可以通过省略404、802、804、806和902而根据所描述的技术来生成运动模糊图元。
图5是当图元的当前移动与图元的先前移动之间的差量不相似时或者当没有先前的移动数据时,基于存储在高速缓存器中的经模糊化的纹理空间数据生成运动模糊图元的说明性过程500的流程图。过程500参考说明性环境100来描述,并且可以由(多个)设备102、106、200或任何其他设备或其组合来执行。当然,可以在其他环境中和/或由其他设备执行过程500(和本文所描述的其他过程)。
在至少一个示例中,在502处,(多个)设备102计算图元的当前移动和图元的先前移动之间的差量,先前移动之前被存储在(多个)设备102可访问的高速缓存器中。在至少一个示例中,当前移动包括图元的顶点在先前帧和当前帧之间的位移,并且先前移动是图元在giant先前帧和该先前帧之前的帧之间的位移。在至少一个示例中,当前移动包括图元的多个顶点在先前帧和当前帧之间的位移。在这些示例中,当前移动和先前移动都是矢量,并且差量是矢量差量。在至少一个示例中,帧可以是动画的帧。在一些示例中,帧可以是顺序图像。
在一些示例中,过程500可以包括在452和504之间的附加步骤。在该步骤处,(多个)设备102可以将移动或差量映射到源空间。在一些示例中,(多个)设备102可以将移动或差量映射到源空间,以便正确地对纹理空间中的模糊的特征进行建模,因为对于人眼而言,纹理空间并不总是看起来与对象空间中的模糊相同。在至少一个示例中,可以通过将笛卡尔坐标中的值转换为u,v纹理空间坐标中的值来完成映射。
在至少一个示例中,在404处,(多个)设备102可以确定所述差量大于或小于阈值的量(即,确定“相似性”)。在至少一个示例中,阈值可以是幅度(例如,纹理元素的数目,像素的数目等)。在一些示例中,阈值可以是矢量。
在至少一个示例中,在506处,(多个)设备102至少部分地基于当前帧中的图元的移动来模糊纹理空间数据,以生成经模糊化的纹理空间数据。可替换地,如果不存在先前帧,或者如果不存在图元的先前移动,则(多个)设备102可以至少基于当前帧中的图元的移动来模糊化图元而不完成504。
在至少一个示例中,在508处,(多个)设备102将经模糊化的纹理空间数据和当前移动存储在高速缓存器中。在至少一个示例中,可以再使用经模糊化的纹理空间数据以生成运动模糊图元,直到(多个)设备102确定后来的移动与当前移动不相似。
在至少一个示例中,在510处,(多个)设备102至少部分地基于将存储在高速缓存器中的经模糊化的纹理空间数据映射到场景空间来绘制运动模糊图元。
图6是至少部分地基于位移矢量来模糊化纹理空间数据的说明性过程506的流程图。
在至少一个示例中,在602处,(多个)设备102构造具有尺寸的新几何体。在至少一个示例中,通过沿着表示当前帧中的图元的移动的位移矢量和该位移矢量的负值对纹理空间数据进行位移来确定新几何体的尺寸。所得到的新几何体涵盖纹理空间数据的向前和向后的位移。在该示例中,如果接收的位移矢量包括场景空间中的矢量,则在对纹理空间数据进行位移以导出新几何的尺寸之前,计算机资源可以将位移矢量转换为纹理空间位移矢量。
在至少一个示例中,在604处,(多个)设备102可以通过使用位于构成纹理空间数据的纹理元素的(多个)位移矢量的负和正的幅度和方向来形成路径。换句话说,(多个)设备102通过与场景空间中的图元的移动相对应的纹理空间数据的纹理元素来计算路径。
在至少一个示例中,在606处,(多个)设备102沿着路径绘制新几何体中的纹理元素。这导致看起来有条纹的纹理空间数据。
图7是当图元的当前移动和图元的先前移动之间的差量相似时,基于存储在高速缓存器中的经模糊化的纹理空间数据来生成运动模糊图元的说明性过程700的流程图。
在至少一个示例中,在502处,(多个)设备102计算图元的当前移动和图元的先前移动之间的差量,该先前移动之前被存储在(多个)设备102可访问的高速缓存器中。在至少一个示例中,当前移动和先前移动都是矢量,并且差量包括矢量差量。
在至少一个示例中,在702处,(多个)设备102确定该差量不大于阈值(即,确定“相似”)。在一些示例中,(多个)设备102可以确定该差量小于阈值。在至少一个示例中,阈值可以是幅度(例如,纹理元素的数目,40个纹理元素,像素数目等)。在一些示例中,阈值可以是矢量。
在至少一个示例中,在704处,(多个)设备102从高速缓存器中取出经模糊化的纹理空间数据。在至少一个示例中,在之前,在至少部分地基于与当前帧中的图元的移动相似的图元的移动来模糊化纹理空间数据之后,(多个)设备102存储经模糊化的纹理空间数据。在一些示例中,(多个)设备102可以可替换地从云服务106接收经模糊化的纹理空间数据。
在至少一个示例中,在706处,(多个)设备102至少部分地基于经模糊化的纹理空间数据绘制用于当前帧的运动模糊图元。在至少一个示例中,绘制运动模糊图元包括将经模糊化的纹理空间数据映射到场景空间。
图8是当可能在当前移动和先前移动之间进行插值时,基于存储在高速缓存器中的经模糊化的纹理空间数据来生成运动模糊图元的说明性过程800的流程图。
在至少一个示例中,在502处,(多个)设备102计算图元的当前移动和图元的先前移动之间的差量,先前移动之前存储在(多个)设备102可访问的高速缓存器中。在至少一个示例中,当前移动和先前移动都是矢量,并且差量包括矢量差量。
在至少一个示例中,在802处,(多个)设备102确定,用于实现当前移动的在先前移动和零之间的插值是可能的。在一些示例中,(多个)设备102通过确定当前移动包括与先前移动的角度相似的角度(小于阈值角度差量——例如,2°,取决于应用)的矢量并且具有小于先前移动的幅度,来做出该确定。在各种示例中,(多个)设备102可以使用其他方法来确定在矢量和零之间的插值何时是合适的。
在至少一个示例中,在804处,(多个)设备102从高速缓存器中取回经模糊化的纹理空间数据。在至少一个示例中,在之前,在至少部分地基于与当前帧中的图元的移动相似的图元的移动来模糊化纹理空间数据之后,(多个)设备102存储经模糊化的纹理空间数据。在一些示例中,(多个)设备102可以可替换地从云服务106接收经模糊化的纹理空间数据。
在至少一个示例中,在806处,(多个)设备102使用未经模糊化的纹理空间数据和经模糊化的纹理空间数据的插值来绘制运动模糊图元。在至少一个示例中,(多个)设备102在做出绘制调用时进行此操作。(多个)设备102可以根据是应该更多还是更少地模糊化图元而从未经模糊化的纹理空间数据或经模糊化的纹理空间数据中拉取更多的数据。
图9是当不可能在当前移动和先前移动之间进行插值时,基于存储在高速缓存器中的经模糊化的纹理空间数据来生成运动模糊图元的说明性过程900的流程图。
在至少一个示例中,在502处,(多个)设备102计算图元的当前移动和图元的先前移动之间的差量,先前移动之前被存储在(多个)设备102可访问的高速缓存器中。在至少一个示例中,当前移动和先前移动都是矢量,并且差量是矢量差量。
在至少一个示例中,在902处,(多个)设备102确定,用于实现当前移动的在先前移动和零之间的插值是不可能的。在一些示例中,(多个)设备102通过确定当前移动不包括与先前移动的角度相似的角度(大于阈值角度差量——例如2°,取决于应用)的矢量或者当前移动具有大于先前移动的幅度。在各种示例中,(多个)设备102可以使用其他方法来确定矢量和零之间的插值何时是不合适的。
在至少一个示例中,在406处,(多个)设备102至少部分地基于当前帧中的图元的移动来模糊化纹理空间数据,以生成经模糊化的纹理空间数据。可替换地,如果不存在先前帧,或者如果不存在图元的先前移动,则(多个)设备102可以至少基于当前帧中的图元的移动来模糊化图元而不完成404。
在至少一个示例中,在408处,(多个)设备102将经模糊化的纹理空间数据和当前移动存储在高速缓存器中。在至少一个示例中,经模糊化的纹理空间数据将被再用于生成运动模糊图元,直到(多个)设备102确定后来移动与当前移动不相似为止。
在至少一个示例中,在410处,(多个)设备102至少部分地基于将存储在高速缓存器中的经模糊化的纹理空间数据映射到场景空间来绘制运动模糊图元。
示例条款
A.一种方法,包括:再现场景元素(400)的运动模糊,所述再现包括:计算当前帧(302(3))中的场景元素(304)的移动(310(2))和先前帧(302(2))中的场景元素的先前移动(310(1))之间的差量;确定差量不大于阈值差量(702);取回经模糊化的纹理空间数据(704);以及至少部分地基于经模糊化的纹理空间数据(706)来绘制当前帧中的运动模糊场景元素。
B.如段落A所述的方法,其中经模糊化的纹理空间数据是至少部分地基于先前移动而模糊化的纹理空间数据。
C.如段落A所述的方法,其中场景元素是矩形。
D.如段落A或B所述的方法,其中绘制运动模糊场景元素包括:识别要由场景元素占据的区域和当前帧中的场景元素的模糊;以及将经模糊化的纹理空间数据映射到该区域。
E.如段落A或B所述的方法,其中所述移动包括第一位移矢量,第一位移矢量记录场景元素的顶点在第一个两帧之间的位移,并且所述先前移动包括第二位移矢量,第二位移矢量记录所述场景元素的顶点在第二个两帧之间的位移。
F.如段落A,B或D中任一项所述的方法,其中,纹理空间数据是映射到纹理空间的场景元素的图像。
G.一种方法,包括:接收第一位移矢量(310(2))和第二位移矢量(310(3)),所述第一位移矢量至少部分地表示在先前帧(302(3))中的图元(304)的顶点(312)的位移,第二矢量至少部分地表示当前帧(302(4))中的图元(304)的顶点(312)的位移(310(3));确定所述第一位移矢量和所述第二位移矢量之间的差量不小于阈值(504);模糊化纹理空间数据以生成经模糊化的纹理空间数据(312(2)),其中所述纹理空间是所述图元到纹理空间(306)的映射;存储经模糊化的纹理空间数据和第二位移矢量(508);以及至少部分地基于第二经模糊化的纹理空间数据(510),再现在当前帧中的运动模糊图元。
H.如段落G所述的方法,其中模糊化纹理空间数据包括:计算纹理空间中的新几何体的尺寸,其中新几何体的尺寸至少部分地基于沿第二位移矢量和第二位移矢量的负值对纹理空间数据进行位移;沿着纹理空间数据的第二位移矢量和第二位移矢量的负值绘制纹理空间数据的一个或多个纹理元素;以及至少部分地基于沿着第二位移矢量和第二位移矢量的负值的相应纹理元素的位置来计算纹理元素强度。
I.如段落H所述的方法,其中根据高斯分布计算纹理元素强度。
J.存储计算机可执行指令(210-216)的一个或多个计算机可读介质(208),当在一个或多个处理单元(202)上执行时,所述计算机可执行指令(210-216)配置计算机执行动作,包括:计算当前帧(302(3))中的场景元素的顶点的当前位移矢量;接收先前位移矢量(310(1))和经模糊化的纹理空间数据(312(1)),所述经模糊化的纹理空间数据包括至少部分地基于先前位移矢量(310(1))而模糊化的纹理空间数据;计算当前位移矢量与先前位移矢量(502)之间的不相似度的量度;如果不相似度的量度不大于阈值(702),则通过将经模糊化的纹理空间数据映射到场景空间来绘制场景元素(704和706);以及如果不相似度的量度不小于阈值(504):至少部分地基于当前位移矢量来模糊化纹理空间数据以生成第二经模糊化的纹理空间数据(506);存储第二经模糊化的纹理空间数据和当前位移矢量(508);以及通过将所述第二经模糊化的纹理空间数据映射到场景空间来绘制所述场景元素(510)。
K.如段落J所述的一个或多个计算机可读介质,其中纹理空间数据是场景空间中的场景元素的像素到纹理空间中的纹理元素的映射。
L.如段落J所述的一个或多个计算机可读介质,其中计算当前位移矢量包括,计算当前帧之前的帧中的场景元素的顶点的第一位置和当前帧中的场景元素的顶点的第二位置之间的差量。
M. 如段落J或L所述的一个或多个计算机可读介质,其中不相似度的量度包括绝对差量。
N. 一种系统,包括:一个或多个处理单元(202);以及一个或多个具有存储在其上的计算机可执行指令的计算机可读介质(208),当由所述一个或多个处理单元执行时,所述计算机可执行指令配置所述一个或多个处理器以执行动作,包括:计算图元的顶点在第一帧和先前帧(310(1))之间的第一位移;至少部分地基于第一位移来模糊化纹理空间数据以生成经模糊化的纹理空间数据(310(1)和506);存储经模糊化的纹理空间数据和第一位移(508);使用所述经模糊化的纹理空间数据生成在所述第一帧(302(2))中的运动模糊图元(510);计算所述图元(304)的顶点(310(2))在所述第一帧之后的帧与所述第一帧或所述第一帧(302(3))之后的第二帧之间的第二位移;以及计算所述第一位移和所述第二位移之间的差量(502)。
O.如段落N所述的系统进一步包括存储在一个或多个计算机可读介质上的计算机可执行指令,当由一个或多个处理单元执行时,所述计算机可执行指令配置一个或多个处理器以执行动作,包括:如果第一位移和第二位移之间的差量小于阈值,则使用经模糊化的纹理空间数据生成在第二帧中的第二运动模糊图元;以及如果所述第一移动和所述第二移动之间的差量大于阈值,则至少部分地基于所述第二位移来模糊化所述纹理空间数据,以生成第二经模糊化的纹理空间数据。
P.如段落N或O所述的系统进一步包括存储在一个或多个计算机可读介质上的计算机可执行指令,当由一个或多个处理单元执行时,所述计算机可执行指令配置一个或多个处理器执行动作,包括:如果第一移动和第二移动之间的差量大于阈值,则使用第二经模糊化的纹理空间数据生成在第二帧中的第二运动模糊图元。
Q.如段落N,O或P中的任何一个所述的系统进一步包括存储在一个或多个计算机可读介质上的计算机可执行指令,当被一个或多个处理单元执行时,所述计算机可执行指令配置一个或更多的处理器来执行动作,包括:如果第二位移在第一位移和零之间,则通过将经模糊化的纹理空间数据和纹理空间数据的插值映射到第二帧的场景空间来生成第二帧中的第二运动模糊图元。
R.如段落S所述的系统,其中所述插值包括,对经模糊化的纹理空间数据和纹理空间数据进行加权,所述加权至少部分地基于所述第二位移的幅度。
S.如段落N所述的系统,其中计算第一位移和第二位移包括计算场景空间的二维中的位移矢量。
T.如段落N所述的系统,所述存储包括,将经模糊化的纹理空间数据和第一位移存储在高速缓存器存储装置中。
U.一种系统,包括用于以下操作的装置:计算当前帧(302(3))中的场景元素的顶点的当前位移矢量的装置;接收先前位移矢量 (310(1))和经模糊化的纹理空间数据(312(1)),所述经模糊化的纹理空间数据包括至少部分地基于先前位移矢量(310(1))而模糊化的纹理空间数据;计算当前位移矢量与先前位移矢量(502)之间的不相似度的量度;如果不相似度的量度不大于阈值(702),则通过将经模糊化的纹理空间数据映射到场景空间来绘制场景元素(704和706);以及如果不相似度的量度不小于阈值(504),则至少部分地基于当前位移矢量来模糊化纹理空间数据以生成第二经模糊化的纹理空间数据(506);存储第二经模糊化的纹理空间数据和当前位移矢量(508);以及通过将所述第二经模糊化的纹理空间数据映射到场景空间来绘制所述场景元素(510)。
V.如段落U所述​​的系统,其中纹理空间数据是场景空间中的场景元素的像素到纹理空间中的纹理元素的映射。
W.如段落U所述​​的系统,其中计算当前位移矢量包括,计算当前帧之前的帧中的场景元素的顶点的第一位置与当前帧中的场景元素的顶点的第二位置之间的差量。
X.如段落V或W所述的系统,其中不相似度的量度包括绝对差量。
结论
尽管主题已经以特定于结构特征和/或方法动作的语言进行了描述,但是应当理解,所附权利要求中限定的主题不一定限于所描述的特定特征或动作。相反,所述特定特征和步骤被公开为实现权利要求的示例形式。
以上描述的所有方法和过程可以具体体现在由一个或多个通用计算机或处理器执行的软件代码模块中并且通过其被完全自动化。代码模块可以存储在任何类型的计算机可读存储介质或其他计算机存储设备中。部分或全部方法可以可替换地具体体现在专用的计算机硬件中。
条件语言,除了别的之外诸如“可以”,“可能”,“可以”或“可以”,除非另有特别说明,在上下文中被理解为表明某些示例包括,而其他示例不包括,某些特征、元件和/或步骤。因此,这种条件语言一般不旨在暗示某些特征、元件和/或步骤以任何方式对于一个或多个示例是必需的,或者一个或多个示例必需包括这样的逻辑,其在有或者没有用户输入或提示的情况下决定是否包括或者在任何特定示例中执行某些特征、元件和/或步骤。
除非另有特别说明,否则诸如短语“X,Y或Z中的至少一个”的连接语言应被理解为表明,项目、术语等可以是X,Y或Z,或其组合。
在本文描述和/或附图中描绘的流程图中的任何例程描述、元件或块应当理解为,潜在地表示包括用于实现例程中的特定逻辑功能或元素的一个或多个可执行指令的模块,分段或代码部分。可替换的实施方式被包括在本文描述的示例的范围内,其中元素或功能可以被删除,或者以所显示或讨论的顺序不同的顺序执行,包括基本上同步或相反的顺序,这取决于所涉及的功能,如本领域技术人员应理解的那样。
应当强调,可以对以上描述的示例进行许多变动和修改,以上描述的示例的元素将被理解为在其他可接受的示例之中。所有这些修改和变动旨在在本文中被包括在本公开的范围内并由所附权利要求保护。

Claims (15)

1.一种方法,包括:
再现场景元素的运动模糊,该再现包括:
计算当前帧中的场景元素的移动与先前帧中的场景元素的先前移动之间的差量;
确定所述差量不大于阈值差量;
取回经模糊化的纹理空间数据;以及
至少部分地基于经模糊化的纹理空间数据,绘制在当前帧中的运动模糊场景元素。
2.根据权利要求1所述的方法,其中所述经模糊化的纹理空间数据包括至少部分地基于所述先前移动而模糊化的纹理空间数据。
3.根据权利要求1或2所述的方法,其中绘制所述运动模糊场景元素包括:
识别要由场景元素占据的区域和当前帧中的场景元素的模糊;以及
将经模糊化的纹理空间数据映射到该区域。
4.根据权利要求1或2所述的方法,其中所述移动包括第一位移矢量,第一位移矢量记录所述场景元素的顶点在第一个两帧之间的位移,并且所述先前移动包括第二位移矢量,第二位移矢量记录所述场景元素的顶点在第二个两帧之间的位移。
5.根据权利要求1, 2或3中任一项所述的方法,其中所述纹理空间数据是映射到纹理空间的场景元素的图像。
6.一种方法,包括:
接收第一位移矢量和第二位移矢量,所述第一位移矢量至少部分地表示在先前帧中的图元的顶点的位移,所述第二矢量至少部分地表示在当前帧中的图元的顶点的位移;
确定所述第一位移矢量和所述第二位移矢量之间的差量不小于阈值;
模糊化纹理空间数据以生成经模糊化的纹理空间数据,其中纹理空间是图元到纹理空间的映射;
存储经模糊化的纹理空间数据和第二位移矢量;以及
至少部分地基于第二经模糊化的纹理空间数据,再现在当前帧中的运动模糊图元。
7.根据权利要求6所述的方法,其中模糊化纹理空间数据包括:
计算纹理空间中的新几何体的尺寸,其中新几何体的尺寸至少部分地基于沿着第二位移矢量和第二位移矢量的负值对纹理空间数据进行位移;
沿着纹理空间数据的第二位移矢量和第二位移矢量的负值绘制纹理空间数据的一个或多个纹理元素;以及
至少部分地基于沿着第二位移矢量和第二位移矢量的负值的相应纹理元素的位置来计算纹理元素强度。
8.一种系统,包括:
一个或多个处理单元;以及
具有存储在其上的计算机可执行指令的一个或多个计算机可读介质,当由所述一个或多个处理单元执行时,所述计算机可执行指令配置所述一个或多个处理器以执行动作,包括:
计算图元的顶点在第一帧和先前帧之间的第一位移;
至少部分地基于第一位移来模糊化纹理空间数据以生成经模糊化的纹理空间数据;
存储经模糊化的纹理空间数据和第一位移;
使用经模糊化的纹理空间数据生成在第一帧中的运动模糊图元;
计算所述图元的顶点在所述第一帧之后的帧与第一帧或所述第一帧之后的第二帧之间的第二位移;以及
计算第一位移和第二位移之间的差量。
9.根据权利要求8所述的系统,进一步包括存储在所述一个或多个计算机可读介质上的计算机可执行指令,所述计算机可执行指令在由所述一个或多个处理单元执行时配置所述一个或多个处理器以执行动作,包括:
如果第一位移和第二位移之间的差量不大于阈值,则使用经模糊化的纹理空间数据生成在第二帧中的第二运动模糊图元。
10.根据权利要求8或9所述的系统,进一步包括存储在所述一个或多个计算机可读介质上的计算机可执行指令,所述计算机可执行指令在由所述一个或多个处理单元执行时配置所述一个或多个处理器以执行动作,包括:
如果第一移动和第二移动之间的差量不小于阈值,则至少部分地基于第二位移来模糊化纹理空间数据以生成第二经模糊化的纹理空间数据;以及
如果第一移动和第二移动之间的差量不小于阈值,则存储第二经模糊化的纹理空间数据和第二位移。
11.根据权利要求8, 9或10中任一项所述的系统,进一步包括存储在所述一个或多个计算机可读介质上的计算机可执行指令,所述计算机可执行指令在由所述一个或多个处理单元执行时配置所述一个或多个处理器执行动作,包括:
如果第一移动和第二移动之间的差量不小于阈值,则使用第二经模糊化的纹理空间数据生成在第二帧中的第二运动模糊图元。
12.根据权利要求8所述的系统,进一步包括存储在所述一个或多个计算机可读介质上的计算机可执行指令,所述计算机可执行指令在由所述一个或多个处理单元执行时配置所述一个或多个处理器以执行动作,包括:
如果第二位移在第一位移和零之间,则通过将经模糊化的纹理空间数据和纹理空间数据的插值映射到第二帧的场景空间来生成第二帧中的第二运动模糊图元。
13.根据权利要求12所述的系统,其中所述插值包括对所述经模糊化的纹理空间数据和所述纹理空间数据进行加权,所述加权至少部分地基于所述第二位移的幅度。
14.根据权利要求8所述的系统,进一步包括高速缓存器,所述经模糊化的纹理空间数据和所述第一位移被存储在所述高速缓存器中。
15.根据权利要求8, 9, 10, 11, 12, 13或14中任一项所述的系统,其中所述纹理空间数据是场景空间中的场景元素的像素到纹理空间中的纹理元素的映射。
CN201580063015.5A 2014-11-21 2015-11-12 使用高速缓存的纹理空间模糊的运动模糊 Active CN107004292B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/550762 2014-11-21
US14/550,762 US9704272B2 (en) 2014-11-21 2014-11-21 Motion blur using cached texture space blur
PCT/US2015/060244 WO2016081257A1 (en) 2014-11-21 2015-11-12 Motion blur using cached texture space blur

Publications (2)

Publication Number Publication Date
CN107004292A true CN107004292A (zh) 2017-08-01
CN107004292B CN107004292B (zh) 2021-02-12

Family

ID=54782808

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580063015.5A Active CN107004292B (zh) 2014-11-21 2015-11-12 使用高速缓存的纹理空间模糊的运动模糊

Country Status (5)

Country Link
US (2) US9704272B2 (zh)
EP (1) EP3221849A1 (zh)
KR (1) KR20170086591A (zh)
CN (1) CN107004292B (zh)
WO (1) WO2016081257A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110084765A (zh) * 2019-05-05 2019-08-02 Oppo广东移动通信有限公司 一种图像处理方法、图像处理装置及终端设备

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019003041B4 (de) 2019-04-26 2020-11-12 e.solutions GmbH Verfahren und Vorrichtung zum Anzeigen eines Zeigers in einer Instrumententafel und Fahrzeug mit einer Anzeigevorrichtung
CN114529485A (zh) * 2020-11-23 2022-05-24 华为技术有限公司 控件模糊方法、装置、终端设备及可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030234791A1 (en) * 2002-06-20 2003-12-25 Boyd Charles N. Systems and methods for providing controllable texture sampling
CN1465034A (zh) * 2001-06-05 2003-12-31 索尼公司 图像处理设备
CN1771518A (zh) * 2003-04-09 2006-05-10 皇家飞利浦电子股份有限公司 运动模糊的生成
CN1774725A (zh) * 2003-04-15 2006-05-17 皇家飞利浦电子股份有限公司 计算机图形处理器及生成计算机图形图像的方法
CN1856805A (zh) * 2003-09-25 2006-11-01 皇家飞利浦电子股份有限公司 运动模糊的生成
CN1913585A (zh) * 2005-06-13 2007-02-14 精工爱普生株式会社 数字视频中估算运动并补偿所感知运动模糊的方法及系统
CN101552868A (zh) * 2008-03-31 2009-10-07 索尼株式会社 用于减少视频信号中运动模糊的设备和方法
CN102651122A (zh) * 2011-02-24 2012-08-29 索尼公司 图像增强装置和方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809219A (en) 1996-04-15 1998-09-15 Silicon Graphics, Inc. Analytic motion blur coverage in the generation of computer graphics imagery
US6438275B1 (en) 1999-04-21 2002-08-20 Intel Corporation Method for motion compensated frame rate upsampling based on piecewise affine warping
TW512283B (en) 1999-06-30 2002-12-01 Ibm Quadrilaterals to achieve motion blur
US6396502B1 (en) 1999-10-15 2002-05-28 Hewlett-Packard Company System and method for implementing accumulation buffer operations in texture mapping hardware
US6956576B1 (en) 2000-05-16 2005-10-18 Sun Microsystems, Inc. Graphics system using sample masks for motion blur, depth of field, and transparency
US6925210B2 (en) 2001-07-09 2005-08-02 Michael Herf Method for blurring images in real-time
DE10204379B4 (de) 2002-02-02 2008-06-26 Völckers, Oliver Einrichtung zur Texteingabe durch eine Betätigung von Tasten eines nummerischen Tastenblocks für elektronische Geräte und Verfahren zur Verarbeitung von Eingabeimpulsen bei einer Texteingabe
US7616220B2 (en) 2003-12-23 2009-11-10 Intel Corporation Spatio-temporal generation of motion blur
US7348985B2 (en) 2004-05-12 2008-03-25 Pixar Variable motion blur
US8400454B2 (en) 2005-03-30 2013-03-19 Ati Technologies, Inc. System and method for creating motion blur
US9030525B2 (en) 2009-12-22 2015-05-12 Thomson Licensing Method and apparatus for optimal motion reproduction in stereoscopic digital cinema
JP5645450B2 (ja) 2010-04-16 2014-12-24 キヤノン株式会社 画像処理装置および方法
US9361703B2 (en) * 2012-04-03 2016-06-07 Sony Corporation Image processing device, control method of image processing device and program
WO2014000155A1 (en) 2012-06-26 2014-01-03 Intel Corporation System, device, and method for scrolling content with motion blur on an electronic display
US20140333669A1 (en) * 2013-05-08 2014-11-13 Nvidia Corporation System, method, and computer program product for implementing smooth user interface animation using motion blur

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1465034A (zh) * 2001-06-05 2003-12-31 索尼公司 图像处理设备
US20030234791A1 (en) * 2002-06-20 2003-12-25 Boyd Charles N. Systems and methods for providing controllable texture sampling
CN1771518A (zh) * 2003-04-09 2006-05-10 皇家飞利浦电子股份有限公司 运动模糊的生成
CN1774725A (zh) * 2003-04-15 2006-05-17 皇家飞利浦电子股份有限公司 计算机图形处理器及生成计算机图形图像的方法
CN1856805A (zh) * 2003-09-25 2006-11-01 皇家飞利浦电子股份有限公司 运动模糊的生成
CN1913585A (zh) * 2005-06-13 2007-02-14 精工爱普生株式会社 数字视频中估算运动并补偿所感知运动模糊的方法及系统
CN101552868A (zh) * 2008-03-31 2009-10-07 索尼株式会社 用于减少视频信号中运动模糊的设备和方法
CN102651122A (zh) * 2011-02-24 2012-08-29 索尼公司 图像增强装置和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
J.LOVISCACH: "Motion Blur for Textures by Means of Anisotropic Filtering", 《EUROGRAPHICS SYMPOSIUM ON RENDERING》 *
S.HARGREAVES: "Detail Texture Motion Blur", 《HTTPS://WEB.ARCHIVE.ORG/WEB/20131126231018/HTTP://SHAWNHARGREAVES.COM/DETAIL_BLUR/DETAIL_BLUR.HTML》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110084765A (zh) * 2019-05-05 2019-08-02 Oppo广东移动通信有限公司 一种图像处理方法、图像处理装置及终端设备

Also Published As

Publication number Publication date
US20170278276A1 (en) 2017-09-28
WO2016081257A1 (en) 2016-05-26
EP3221849A1 (en) 2017-09-27
CN107004292B (zh) 2021-02-12
US10417789B2 (en) 2019-09-17
US20160148394A1 (en) 2016-05-26
US9704272B2 (en) 2017-07-11
KR20170086591A (ko) 2017-07-26

Similar Documents

Publication Publication Date Title
JP7392227B2 (ja) 映像フレーム補間のための特徴ピラミッドワーピング
US11315321B2 (en) View dependent 3D reconstruction mechanism
McCormac et al. Scenenet rgb-d: Can 5m synthetic images beat generic imagenet pre-training on indoor segmentation?
CN108351864B (zh) 成凹几何密铺
US10284816B2 (en) Facilitating true three-dimensional virtual representation of real objects using dynamic three-dimensional shapes
CN106575445B (zh) 毛皮虚拟化身动画
US11711563B2 (en) Methods and systems for graphics rendering assistance by a multi-access server
KR102555214B1 (ko) 혼합 현실에서 동적 가상 콘텐츠들을 생성하기 위한 디바이스 및 방법
JP2014519640A (ja) グラフィックスハードウェアにおけるテクスチャリング
JP7432005B2 (ja) 二次元画像の三次元化方法、装置、機器及びコンピュータプログラム
US20170213394A1 (en) Environmentally mapped virtualization mechanism
US11748913B2 (en) Modeling objects from monocular camera outputs
CN107004292A (zh) 使用高速缓存的纹理空间模糊的运动模糊
Zhao et al. LITAR: Visually coherent lighting for mobile augmented reality
CN105051788A (zh) 使用多个图元进行图形处理
EP2992512B1 (en) Anti-aliasing for geometries
US20220012860A1 (en) Methods and apparatus to synthesize six degree-of-freedom views from sparse rgb-depth inputs
US9230508B2 (en) Efficient feedback-based illumination and scatter culling
US10134199B2 (en) Rigging for non-rigid structures
CN115512038A (zh) 自由视点合成的实时绘制方法、电子设备及可读存储介质
US20240015263A1 (en) Methods and apparatus to provide remote telepresence communication
KR20220094003A (ko) 전자 장치 및 전자 장치의 제어 방법
CN117252974A (zh) 三维图像的贴图方法和装置、电子设备及存储介质
JP5898109B2 (ja) 画像合成装置、画像合成方法及び画像合成プログラム
CN115767091A (zh) 使用神经网络进行基于熵的预滤波用于流式传输应用

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