CN116457830A - 基于区域不连续性的运动估计 - Google Patents

基于区域不连续性的运动估计 Download PDF

Info

Publication number
CN116457830A
CN116457830A CN202180072613.4A CN202180072613A CN116457830A CN 116457830 A CN116457830 A CN 116457830A CN 202180072613 A CN202180072613 A CN 202180072613A CN 116457830 A CN116457830 A CN 116457830A
Authority
CN
China
Prior art keywords
region
frame
discontinuity
motion estimation
frames
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
Application number
CN202180072613.4A
Other languages
English (en)
Inventor
J·维克斯
S·B·福尔摩斯
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN116457830A publication Critical patent/CN116457830A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/215Motion-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Image Analysis (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Image Generation (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

本公开涉及用于图像或帧处理的方法和设备,包括装置,例如GPU。在一些方面,该装置可以识别第一帧的至少一个第一区域和第二帧的至少一个第二区域之间的不连续性,该至少一个第一区域对应于该至少一个第二区域。该装置还可以确定至少一个第一区域和至少一个第二区域之间的不连续性是否大于或等于运动估计阈值。当至少一个第一区域和至少一个第二区域之间的不连续性大于或等于运动估计阈值时,该装置还可以跳过对至少一个第一区域和至少一个第二区域的运动估计。

Description

基于区域不连续性的运动估计
相关申请的交叉引用
本申请要求于2020年11月2日提交的题为“METHODS AND APPARATUS FOR MOTIONESTIMATION BASED ON REGION DISCONTINUITY”的美国专利申请第17/087,528号的权益,该申请的全部内容通过引用明确地合并于此。
技术领域
本公开一般地涉及处理系统,并且更具体地涉及用于图像或帧处理的一种或多种技术。
背景技术
计算设备通常利用图形处理单元(GPU)来加速用于显示的图形数据的渲染。这种计算设备可以包括例如计算机工作站、诸如所谓的智能电话之类的移动电话、嵌入式系统、个人计算机、平板计算机和视频游戏控制台。GPU执行包括一个或多个处理阶段的图形处理流水线,这些处理阶段一起操作以执行图形处理命令并输出帧。中央处理单元(CPU)可以通过向GPU发出一个或多个图形处理命令来控制GPU的操作。现代CPU通常能够同时执行多个应用,每个应用在执行期间可能需要利用GPU。在显示器上提供用于视觉呈现的内容的设备通常包括GPU。
通常,设备的GPU被配置为在图形处理流水线中执行处理。然而,随着无线通信和更小的手持设备的出现,对改进图形处理的需求不断增加。
发明内容
以下呈现了一个或多个方面的简化概述,以便提供对这样的方面的基本理解。该概述不是所有预期方面的广泛概述,并且既不旨在识别所有方面的关键元素,也不旨在描绘任何或所有方面的范围。其唯一目的是以简化形式呈现一个或多个方面的一些概念,作为稍后呈现的更详细描述的序言。
在本公开的一方面,提供了一种方法、计算机可读介质和装置。该装置可以是GPU、CPU、图像处理器、帧处理器、显示处理单元(DPU)和/或能够执行图像或帧处理的任何装置。该装置可以在接收到第一帧之后接收第二帧。该装置还可以将第一帧的至少一个第一区域与第二帧的至少一个第二区域进行比较。该装置还可以识别第一帧的至少一个第一区域和第二帧的至少一个第二区域之间的不连续性,至少一个第一区域对应于至少一个第二区域,第一帧包括多个第一区域,并且第二帧包括多个第二区域,第一帧和第二帧与多个帧相关联。另外,该装置可以确定至少一个第一区域和至少一个第二区域之间的不连续性是否大于或等于运动估计阈值。当至少一个第一区域和至少一个第二区域之间的不连续性大于或等于运动估计阈值时,该装置还可以跳过对至少一个第一区域和至少一个第二区域的运动估计。此外,当至少一个第一区域和至少一个第二区域之间的不连续性小于运动估计阈值时,该装置可以对至少一个第一区域和至少一个第二区域执行运动估计。该装置还可以基于所执行的运动估计来配置第三帧,其中所配置的第三帧可以与帧外推过程相关联。
本公开的一个或多个示例的细节在附图和以下描述中阐述。本公开的其他特征、目的和优点将从描述和附图以及从权利要求中变得显而易见。
附图说明
图1是示出了根据本公开的一种或多种技术的示例内容生成系统的框图。
图2示出了根据本公开的一种或多种技术的示例GPU。
图3示出了根据本公开的一种或多种技术的示例图像或表面。
图4A和4B示出了根据本公开的一种或多种技术的示例帧。
图5示出了根据本公开的一种或多种技术的图像处理的示例图。
图6示出了根据本公开的一种或多种技术的图像处理的示例图。
图7示出了根据本公开的一种或多种技术的图像处理组件的示例图。
图8示出了根据本公开的一种或多种技术的示例方法的示例流程图。
具体实施方式
扩展现实(XR)、增强现实(AR)或虚拟现实(VR)应用可以与某些设备(例如移动设备或智能手机)一起使用,这些设备可能受到功率和性能效率的严格限制。为了减轻这些限制,可以对先前渲染的内容执行运动估计和/或可以使用运动估计来外推帧。运动估计有时可能工作良好,然而,当在帧之间转换时,诸如在逐帧的基础上,内容可能是不连续的。在这些情况下,基于帧之间的不连续内容,执行运动估计可能导致不准确的数据,例如不准确或虚假的运动估计数据。这种不准确的数据可能导致基于运动估计的差的或不完整的帧外推。在一些情况下,在这些不连续帧上应用的运动估计和/或帧外推可能产生随机或不正确的运动向量。此外,从不连续帧产生的这些随机或不正确的运动向量可能导致外推帧或外推帧的某个部分中强烈的、非预期的失真。例如基于帧的内容或亮度,如果帧之间存在不连续性,则可能产生不准确的运动估计。本公开的各方面可以跳过或绕过对某些帧或帧区域执行运动估计,以避免不正确的运动向量和/或非预期的失真。例如,本公开的各方面可以识别某些帧或帧区域之间的不连续性或差异。此外,本公开的各方面可以确定某些帧或帧区域之间的不连续性或差异是否高于阈值,然后如果不连续性或差异高于阈值,则跳过或绕过执行运动估计。
下文将参考附图更全面地描述系统、装置、计算机程序产品和方法的各个方面。然而,本公开可以以许多不同的形式实施,并且不应被解释为限于贯穿本公开呈现的任何特定结构或功能。相反,提供这些方面是为了使本公开彻底和完整,并将本公开的范围完全传达给本领域技术人员。基于本文的教导,本领域技术人员应理解,本公开的范围旨在覆盖本文公开的本公开的系统、装置、计算机程序产品和方法的任何方面,无论是独立于本公开的其他方面还是与本公开的其他方面组合地实施。例如,可以使用本文阐述的任何数量的方面来实现装置或实践方法。另外,本公开的范围旨在覆盖这样的装置或方法,该装置或方法使用除本文阐述的本公开的各个方面以外或之外的其他结构、功能、或结构和功能来实践。本文公开的任何方面可以由权利要求的一个或多个元素来体现。
尽管本文描述了各个方面,但是这些方面的许多变化和置换都落入本公开的范围内。尽管提到了本公开各方面的一些潜在益处和优点,但是本公开的范围并不旨在局限于特定的益处、用途或目标。相反,本公开的各方面旨在广泛适用于不同的无线技术、系统配置、网络和传输协议,其中一些在附图和以下描述中以示例的方式示出。详细描述和附图仅仅是对本公开的说明而不是限制,本公开的范围由所附权利要求及其等同物限定。
参考各种装置和方法来呈现若干方面。这些装置和方法在以下详细描述中进行描述,并通过各种框、组件、电路、过程、算法和或类似物(统称为“元素”)在附图中图示。可以使用电子硬件、计算机软件或其任何组合实现这些元素。将这些元素实现为硬件还是软件取决于特定的应用和施加在整个系统上的设计约束。
举例来说,元素或元素的任何部分或元素的任何组合可以被实施为包含一个或多个处理器(也可以称为处理单元)的“处理系统”。处理器的示例包含微处理器、微控制器、图形处理单元(GPU)、通用GPU(GPGPU)、中央处理单元(CPU)、应用处理器、数字信号处理器(DSP)、精简指令集计算(RISC)处理器、片上系统(SoC)、基带处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门控逻辑、分立硬件电路以及被配置为执行贯穿本公开中描述的各种功能的其他合适的硬件。处理系统中的一个或多个处理器可以执行软件。软件可以广义地解释为指令、指令集、代码、代码段、程序代码、程序、子程序、软件组件、应用、软件应用、软件封装、例程、子例程、对象、可执行文件、执行线程、过程、函数等等,无论是否被称为软件、固件、中间件、微码、硬件描述语言或其他。术语应用可以指软件。如本文所述,一种或多种技术可以指被配置成执行一种或多种功能的应用,即软件。在这些示例中,应用可以存储在存储器上,例如处理器的片上存储器、系统存储器或任何其他存储器。本文描述的硬件(诸如处理器)可以被配置为执行应用。例如,应用可以被描述为包括代码,当由硬件执行时,该代码使硬件执行本文描述的一种或多种技术。作为示例,硬件可以访问来自存储器的代码并且执行从存储器访问的代码以执行本文描述的一种或多种技术。在一些示例中,标识了本公开中的组件。在这样的示例中,组件可以是硬件、软件或其组合。这些组件可以是单独的组件或单个组件的子组件。
因此,在本文描述的一个或多个示例中,可以以硬件、软件或其任何组合来实施所描述的功能。如果以软件来实现,则该功能可以被储存在计算机可读介质上或在计算机可读介质上被编码为一个或多个指令或代码。计算机可读介质包含计算机存储介质。存储介质可以是计算机可以访问的任何可用介质。作为示例而非限制,这种计算机可读介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、光盘存储、磁盘存储、其他磁存储设备、上述类型的计算机可读介质的组合、或者可以用于储存可由计算机访问的指令或数据结构形式的计算机可执行代码的任何其他介质。
总的来说,本公开描述了用于在单个设备或多个设备中具有图形处理流水线、改善图形内容的渲染和/或减少处理单元(即,被配置为执行本文描述的一种或多种技术的任何处理单元,诸如GPU)的负载的技术。例如,本公开描述了用于利用图形处理的任何设备中的图形处理的技术。本公开通篇描述了其他示例性益处。
如本文所使用的,术语“内容”的实例可以指“图形内容”、“图像”,反之亦然。不管这些术语是用作形容词、名词还是其他词类,都是如此。在一些示例中,如本文所使用的,术语“图形内容”可以指由图形处理流水线的一个或多个过程产生的内容。在一些示例中,如本文所使用的,术语“图形内容”可以指由被配置为执行图形处理的处理单元产生的内容。在一些示例中,如本文所使用的,术语“图形内容”可以指由图形处理单元产生的内容。
在一些示例中,如本文所使用的,术语“显示内容”可以指由被配置为执行显示处理的处理单元生成的内容。在一些示例中,如本文所使用的,术语“显示内容”可以指由显示处理单元生成的内容。图形内容可以被处理成为显示内容。例如,图形处理单元可以向缓冲器(其可以被称为帧缓冲器)输出图形内容,诸如帧。显示处理单元可以从缓冲器读取图形内容(诸如一个或多个帧),并在其上执行一种或多种显示处理技术以生成显示内容。例如,显示处理单元可以被配置为在一个或多个渲染层上执行合成以生成帧。作为另一示例,显示处理单元可以被配置为将两层或更多层合成、混合或以其他方式组合在一起成为单个帧。显示处理单元可以被配置为对帧执行缩放,例如,放大或缩小。在一些示例中,帧可以指层。在其他示例中,帧可以指已经混合在一起形成帧的两层或更多层,即帧包括两层或更多层,并且包括两层或更多层的帧可以随后被混合。
图1是示出了被配置为实施本公开的一种或多种技术的示例内容生成系统100的框图。内容生成系统100包括设备104。设备104可以包括用于执行本文描述的各种功能的一个或多个组件或电路。在一些示例中,设备104的一个或多个组件可以是SOC的组件。设备104可以包括被配置为执行本公开的一种或多种技术的一个或多个组件。在所示的示例中,设备104可以包括处理单元120、内容编码器/解码器122和系统存储器124。在一些方面,设备104可以包括多个可选组件,例如通信接口126、收发器132、接收器128、发送器130、显示处理器127以及一个或多个显示器131。对显示器131的引用可以指一个或多个显示器131。例如,显示器131可以包括单个显示器或多个显示器。显示器131可以包括第一显示器和第二显示器。第一显示器可以是左眼显示器,并且第二显示器可以是右眼显示器。在一些示例中,第一和第二显示器可以接收用于在其上呈现的不同的帧。在其他示例中,第一和第二显示器可以接收用于在其上呈现的相同的帧。在进一步的示例中,图形处理的结果可以不显示在设备上,例如,第一和第二显示器可以不接收用于在其上呈现的任何帧。相反,帧或图形处理结果可以被传送到另一设备。在某些方面,这可以称为分割渲染。
处理单元120可以包括内部存储器121。处理单元120可以被配置为(诸如在图形处理流水线107中)执行图形处理。内容编码器/解码器122可以包括内部存储器123。在一些示例中,设备104可以包括显示处理器(诸如显示处理器127),以在由一个或多个显示器131呈现之前对由处理单元120生成的一个或多个帧执行一种或多种显示处理技术。显示处理器127可以被配置为执行显示处理。例如,显示处理器127可以被配置为对处理单元120生成的一个或多个帧执行一种或多种显示处理技术。一个或多个显示器131可以被配置为显示或以其他方式呈现由显示处理器127处理的帧。在一些示例中,一个或多个显示器131可以包括以下一个或多个:液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器、投影显示设备、增强现实显示设备、虚拟现实显示设备、头戴式显示器或任何其他类型的显示设备。
处理单元120和内容编码器/解码器122可以访问处理单元120和内容编码器/解码器122外部的存储器(诸如系统存储器124)。例如,处理单元120和内容编码器/解码器122可以被配置为从外部存储器读取和/或写入外部存储器,诸如系统存储器124。处理单元120和内容编码器/解码器122可以通过总线通信耦合到系统存储器124。在一些示例中,处理单元120和内容编码器/解码器122可以通过总线或不同的连接彼此通信耦合。
内容编码器/解码器122可以被配置为从任何源(诸如系统存储器124和/或通信接口126)接收图形内容。系统存储器124可以被配置为存储接收到的经编码或经解码的图形内容。内容编码器/解码器122可以被配置为例如从系统存储器124和/或通信接口126以经编码的像素数据的形式接收经编码或经解码的图形内容。内容编码器/解码器122可以被配置为编码或解码任何图形内容。
内部存储器121或系统存储器124可以包括一个或多个易失性或非易失性存储器或存储设备。在一些示例中,内部存储器121或系统存储器124可以包括RAM、SRAM、DRAM、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、磁数据介质或光存储介质或任何其他类型的存储器。
根据一些示例,内部存储器121或系统存储器124可以是非暂时性存储介质。术语“非暂时性”可以表示存储介质没有体现在载波或传播信号中。然而,术语“非暂时性”不应被解释为意味着内部存储器121或系统存储器124是不可移动的或者其内容是静态的。作为一个示例,系统存储器124可以从设备104移除并移动到另一设备。作为另一示例,系统存储器124可以不从设备104移除。
处理单元120可以是中央处理单元(CPU)、图形处理单元(GPU)、通用GPU(GPGPU)或可以被配置为执行图形处理的任何其他处理单元。在一些示例中,处理单元120可以被集成到设备104的主板中。在一些示例中,处理单元120可以存在于安装在设备104的主板中的端口中的图形卡上,或者可以以其他方式结合在被配置为与设备104互操作的外围设备中。处理单元120可以包括一个或多个处理器,诸如一个或多个微处理器、GPU、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、算术逻辑单元(ALU)、数字信号处理器(DSP)、离散逻辑、软件、硬件、固件、其他等效的集成或离散逻辑电路、或其任何组合。如果这些技术部分地以软件实施,处理单元120可以将软件的指令存储在合适的非暂时性计算机可读存储介质(例如内部存储器121)中,并且可以使用一个或多个处理器在硬件中执行这些指令以执行本公开的技术。前述任何一种(包括硬件、软件、硬件和软件的组合等)可以被认为是一个或多个处理器。
内容编码器/解码器122可以是被配置为执行内容解码的任何处理单元。在一些示例中,内容编码器/解码器122可以被集成到设备104的主板中。内容编码器/解码器122可以包括一个或多个处理器,诸如一个或多个微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、算术逻辑单元(ALU)、数字信号处理器(DSP)、视频处理器、离散逻辑、软件、硬件、固件、其他等效的集成或离散逻辑电路、或其任何组合。如果这些技术部分地以软件实施,内容编码器/解码器122可以将软件的指令存储在合适的非暂时性计算机可读存储介质(例如内部存储器123)中,并且可以使用一个或多个处理器在硬件中执行这些指令以执行本公开的技术。前述任何一种(包括硬件、软件、硬件和软件的组合等)可以被认为是一个或多个处理器。
在一些方面,内容生成系统100可以包括可选的通信接口126。通信接口126可以包括接收器128和发送器130。接收器128可以被配置为执行本文针对设备104描述的任何接收功能。此外,接收器128可被配置成从另一设备接收信息,例如眼睛或头部位置信息、渲染命令或位置信息。发送器130可以被配置为执行本文针对设备104描述的任何发送功能。例如,发送器130可以被配置为向另一设备发送信息,该信息可以包括对内容的请求。接收器128和发送器130可以组合成收发器132。在这样的示例中,收发器132可以被配置为执行本文针对设备104描述的任何接收功能和/或发送功能。
再次参考图1,在某些方面,图形处理流水线107可以包括确定组件198,其被配置为在接收到第一帧之后接收第二帧。确定组件198还可以被配置为将第一帧的至少一个第一区域与第二帧的至少一个第二区域进行比较。确定组件198还可以被配置为识别第一帧的至少一个第一区域和第二帧的至少一个第二区域之间的不连续性,该至少一个第一区域对应于该至少一个第二区域,该第一帧包括多个第一区域,并且该第二帧包括多个第二区域,该第一帧和第二帧与多个帧相关联。确定组件198还可以被配置成确定至少一个第一区域和至少一个第二区域之间的不连续性是否大于或等于运动估计阈值。确定组件198还可以被配置为当至少一个第一区域和至少一个第二区域之间的不连续性大于或等于运动估计阈值时,跳过对至少一个第一区域和至少一个第二区域的运动估计。确定组件198还可以被配置为当至少一个第一区域和至少一个第二区域之间的不连续性小于运动估计阈值时,对至少一个第一区域和至少一个第二区域执行运动估计。确定组件198还可以被配置为基于所执行的运动估计来配置第三帧,其中所配置的第三帧可以与帧外推过程相关联。
如本文所述,诸如设备104的设备可以指被配置为执行本文所述的一种或多种技术的任何设备、装置或系统。例如,设备可以是服务器、基站、用户设备、客户端设备、站、接入点、计算机(例如个人计算机、台式计算机、膝上型计算机、平板计算机、计算机工作站或大型计算机)、终端产品、装置、电话、智能电话、服务器、视频游戏平台或控制台、手持设备(例如便携式视频游戏设备或个人数字助理(PDA))、可穿戴计算设备(例如,智能手表)、增强现实设备或虚拟现实设备、不可穿戴设备、显示器或显示设备、电视、电视机顶盒、中间网络设备、数字媒体播放器、视频流设备、内容流设备、车载计算机、任何移动设备、被配置为生成图形内容的任何设备、或者被配置为执行本文描述的一种或多种技术的任何设备。本文的过程可以被描述为由特定组件(例如,GPU)执行,但是在进一步的实施例中,可以使用与公开的实施例一致的其他组件(例如,CPU)来执行。
GPU可以在GPU流水线中处理多种类型的数据或数据分组。例如,在一些方面,GPU可以处理两种类型的数据或数据分组,例如上下文寄存器分组和绘制调用数据。上下文寄存器分组可以是一组全局状态信息,例如关于全局寄存器、着色程序或常数数据的信息,其可以规定图形上下文将如何被处理。例如,上下文寄存器分组可以包括关于颜色格式的信息。在上下文寄存器分组的一些方面,可以存在指示哪个工作负载属于上下文寄存器的比特。此外,可以有同时和/或并行运行的多个功能或程序。例如,功能或编程可以描述特定的操作,例如颜色模式或颜色格式。因此,上下文寄存器可以定义GPU的多个状态。
上下文状态可用于确定单个处理单元如何运行,例如顶点提取器(VFD)、顶点着色器(VS)、着色器处理器或几何处理器,和/或处理单元以何种模式运行。为此,GPU可以使用上下文寄存器和编程数据。在一些方面,GPU可以基于模式或状态的上下文寄存器定义在流水线中生成工作负载(例如,顶点或像素工作负载)。某些处理单元(例如VFD)可以使用这些状态来确定某些功能,例如如何组装顶点。由于这些模式或状态可能会发生变化,GPU可能需要改变相应的上下文。此外,对应于模式或状态的工作负载可能会遵循变化的模式或状态。
图2示出了根据本公开的一种或多种技术的示例GPU 200。如图2所示,GPU 200包括命令处理器(CP)210、绘制调用分组212、VFD 220、VS 222、顶点缓存(VPC)224、三角形设置引擎(TSE)226、光栅器(RAS)228、Z处理引擎(ZPE)230、像素插值器(PI)232、片段着色器(FS)234、渲染后端(RB)236、L2高速缓存(UCHE)238和系统存储器240。尽管图2显示GPU 200包括处理单元220-238,但是GPU 200可以包括多个附加的处理单元。此外,处理单元220-238仅是示例,并且根据本公开,处理单元的任何组合或顺序都可以由GPU使用。GPU 200还包括命令缓冲器250、上下文寄存器分组260和上下文状态261。
如图2所示,GPU可以利用CP(例如CP 210)或硬件加速器将命令缓冲区解析成上下文寄存器分组(例如上下文寄存器分组260)和/或绘制调用数据分组(例如绘制调用分组212)。CP 210然后可以通过单独的路径向GPU中的处理单元或块发送上下文寄存器分组260或绘制调用数据分组212。此外,命令缓冲器250可以交替不同状态的上下文寄存器和绘制调用。例如,命令缓冲器可以以下述方式构造:上下文N的上下文寄存器、上下文N的(多个)绘制调用、上下文N+1的上下文寄存器和上下文N+1的(多个)绘制调用。
GPU可以以各种不同的方式渲染图像。在一些情况下,GPU可以使用渲染或图块渲染(tiled rendering)来渲染图像。在图块渲染GPU中,图像可以被划分或分离成不同的部分或图块。在图像的划分之后,可以分别渲染每个部分或图块。图块渲染GPU可以将计算机图形图像划分成网格格式,使得网格的每个部分(即,图块)被单独渲染。在一些方面,在装箱道次(binning pass)中,图像可以被划分成不同的面元(bin)或图块。在一些方面,在装箱道次期间,在可以识别可见图元(primitive)或绘制调用的情况下,可以构建可见性流。
在一些方面,GPU可以将绘制或渲染过程应用于不同的面元或图块。例如,GPU可以渲染到一个面元,并为面元中的图元或像素执行所有绘制。在渲染到面元的过程中,渲染目标可以位于GMEM。在一些情况下,在渲染到一个面元之后,渲染目标的内容可以被移动到系统存储器,并且GMEM可以被释放用于渲染下一个面元。此外,GPU可以渲染到另一面元,并为该面元中的图元或像素执行绘制。因此,在一些方面,可能有覆盖一个表面中的所有绘制的少量的面元(例如四个面元)。此外,GPU可以在一个面元中循环所有的绘制,但是为可见的绘制调用(即包括可见几何图形的绘制调用)执行绘制。在一些方面,可以例如在装箱道次中生成可见性流,以确定图像或场景中每个图元的可见性信息。例如,这个可见性流可以识别某个图元是否可见。在一些方面,该信息可以用于移除例如在渲染道次中不可见的图元。此外,被识别为可见的图元中的至少一些可以在渲染道次中被渲染。
在图块渲染的一些方面,可能有多个处理阶段或道次。例如,渲染可以在两个道次中执行,例如,可见性或面元可见性道次和渲染或面元渲染道次。在可见性道次中,GPU可以输入渲染工作负载,记录图元或三角形的位置,然后确定哪些图元或三角形落入哪个面元或区域。在可见性道次的一些方面,GPU还可以标识或标记可见性流中每个图元或三角形的可见性。在渲染道次中,GPU可以输入可见性流,并一次处理一个面元或区域。在一些方面,可以分析可见性流以确定哪些图元或图元的顶点可见或不可见。这样,可以处理可见的图元或图元的顶点。这样,GPU可以减少处理或渲染不可见的图元或三角形的不必要工作负载。
在一些方面,在可见性道次期间,可以处理某些类型的图元几何形状,例如仅位置几何形状。此外,根据图元或三角形的位置或定位,图元可以被分类到不同的面元或区域中。在一些情况下,可以通过确定图元或三角形的可见性信息来执行将图元或三角形分类到不同的面元中。例如,GPU可以为每个面元或区域中(例如系统存储器中)的每个图元确定或写入可见性信息。该可见性信息可用于确定或生成可见性流。在渲染道次中,每个面元中的图元可以被单独渲染。在这些情况下,可以从用于丢弃对于该面元不可见的图元的存储器中获取可见性流。
GPU或GPU架构的一些方面可以提供多个不同的渲染选项,例如软件渲染和硬件渲染。在软件渲染中,驱动程序或CPU可以通过一次处理每个视图来复制整个帧几何图形。此外,一些不同的状态可能会根据视图而改变。这样,在软件渲染中,软件可以通过改变可用于针对图像中的每个视点渲染的一些状态来复制整个工作负载。在某些方面,由于GPU可能会为图像中的每个视点多次提交相同的工作负载,因此可能会增加开销量。在硬件渲染中,硬件或GPU可能负责复制或处理图像中每个视点的几何图形。因此,硬件可以管理图像中每个视点的图元或三角形的复制或处理。
图3示出了图像或表面300,包括分成多个面元的多个图元。如图3所示,图像或表面300包括区域302,区域302包括图元321、322、323和324。图元321、322、323和324被划分或放置到不同的面元,例如面元310、311、312、313、314和315。图3示出了使用图元321-324的多个视点的图块渲染的示例。例如,图元321-324位于第一视点350和第二视点351中。这样,处理或渲染包括区域302的图像或表面300的GPU可以利用多个视点或多视图渲染。
如本文所指出的,GPU或图形处理器单元可以使用图块渲染架构来降低功耗或节省存储器带宽。如上进一步所述,该渲染方法可以将场景划分为多个面元,以及包括识别每个面元中可见的三角形的可见性道次。因此,在图块渲染中,全屏可以被分成多个面元或图块。然后,该场景可以被渲染多次,例如,对于每个面元渲染一次或多次。
在图形渲染的方面,一些图形应用可以向单个目标(即渲染目标)渲染一次或多次。例如,在图形渲染中,系统存储器上的帧缓冲器可以被更新多次。帧缓冲器可以是存储器或随机存取存储器(RAM)的一部分,例如,包含比特图或存储器,以帮助存储GPU的显示数据。帧缓冲器也可以是包含数据的完整帧的存储缓冲器。此外,帧缓冲器可以是逻辑缓冲器。在一些方面,更新帧缓冲器可以在面元或图块渲染中执行,其中,如上所述,表面被分成多个面元或图块,然后每个面元或图块可以被单独渲染。此外,在图块渲染中,帧缓冲器可以被划分成多个面元或图块。
如本文所指示的,在一些方面,诸如在面元或图块渲染架构中,例如当从不同类型的存储器渲染时,帧缓冲器可以具有重复存储或向其写入的数据。这可以称为解析和不解析帧缓冲区或系统内存。例如,当存储或写入一个帧缓冲器,然后切换到另一帧缓冲器时,帧缓冲器上的数据或信息可以从GPU的GPU内部存储器(GMEM)解析到系统存储器,即双数据速率(DDR)RAM或动态RAM(DRAM)中的存储器。
在一些方面,系统存储器也可以是片上系统(SoC)存储器或另一基于芯片的存储器,以例如在设备或智能电话上存储数据或信息。系统存储器也可以是由CPU和/或GPU共享的物理数据存储。在一些方面,系统存储器可以是例如设备或智能电话上的DRAM芯片。因此,SoC存储器可以是基于芯片的方式来存储数据。
在某些方面,GMEM可以是GPU处的片上存储器,其可以由静态RAM(SRAM)实现。此外,GMEM可以存储在设备(例如智能电话)上。如本文所指示的,数据或信息可以在系统存储器或DRAM和GMEM之间传输,例如在设备处。在一些方面,系统存储器或DRAM可以在CPU或GPU上。此外,数据可以存储在DDR或DRAM。在一些方面,例如在面元或图块渲染中,存储器的一小部分可以存储在GPU中,例如在GMEM处。在一些情况下,与在帧缓冲器或系统存储器中存储数据相比,在GMEM存储数据可以利用更大的处理工作负载和/或消耗的功率。
图像或帧处理的一些方面可以与不同类型的应用(例如扩展现实(XR)、增强现实(AR)或虚拟现实(VR)应用)相关联。在一些方面,XR、AR或VR应用可以与某些设备(例如移动设备或智能手机)一起使用,这些设备可能受到功率和性能效率的严格限制。为了减轻这些限制,可以对先前渲染的内容执行运动估计和/或可以使用运动估计来外推帧。例如,可以使用先前渲染的帧来估计帧的运动,而不是渲染帧。反过来,运动估计可以允许渲染操作以降低的帧速率运行。帧外推也可以用于流式远程游戏渲染,诸如用于覆盖间歇性网络问题和/或带宽限制。
运动估计有时可能工作良好,然而,当在帧之间转换时,诸如在逐帧的基础上,内容可能是不连续的。例如,应用内的某些动作(例如当用户在游戏应用中传送(teleport)时)可能导致帧之间的内容不连续。在这些情况下,基于帧之间的不连续内容,执行运动估计可能导致不准确的数据,例如不准确或虚假的运动估计数据。这种不准确的数据可能导致基于运动估计的差的或不完整的帧外推。
某些类型的内容可能会导致帧之间的上述不连续性。例如,用户界面(UI)元素或菜单(诸如在单个帧中弹出打开或更改内容的那些UI元素或菜单)对于连续的帧可能是不连续的。此外,发生在单个帧中的某些相机转换(诸如常见的传送XR运动机制)可能是帧与帧之间不连续的。此外,在单个帧中大量旋转相机的突然转向对于连续帧来说可能是不连续的。添加即时透明覆盖或亮度变化的效果也可能是帧与帧之间不连续的。此外,对于连续帧,快速控制器移动可能是不连续的。
在一些情况下,在这些不连续帧上应用的运动估计和/或帧外推可能产生随机或不正确的运动向量。如前所述,所产生的内容不连续性可能跨越整个帧或在帧的某个区域内。此外,从不连续帧产生的这些随机或不正确的运动向量可能导致外推帧或外推帧的某个部分中强烈的、非预期的失真。
如上所述,运动估计可以指定帧或帧的某些区域之间的连续性。如果帧之间存在不连续,例如基于帧的内容或亮度,则可能产生不准确的运动估计。基于以上,跳过或绕过对某些帧或帧区域的运动估计以避免不正确的运动向量和/或非预期的失真可能是有益的。例如,如果识别出某些帧或帧区域之间的不连续性或差异,则跳过或绕过执行运动估计可能是有益的。
本公开的各方面可以跳过或绕过对某些帧或帧区域执行运动估计,以避免不正确的运动向量和/或非预期的失真。例如,本公开的各方面可以识别某些帧或帧区域之间的不连续性或差异。此外,本公开的各方面可以确定某些帧或帧区域之间的不连续性或差异是否高于阈值,然后如果不连续性或差异高于阈值,则跳过或绕过执行运动估计。
如上所述,即使当提供不连续的内容时,运动估计也可能产生多个估计的向量,这可能导致低质量估计的区域。本公开的一些方面可以利用某些组件,例如轻量级散列,以便执行分析来识别内容何时在帧或帧区域之间出现分歧。例如,帧可以被划分成区域,对帧的每个区域执行散列分析。本公开的轻量级散列可以比较每个帧区域的内容,以便确定或识别帧区域之间的不连续性。
在一些情况下,如果帧的区域之间有太多的变化或不连续,则可以触发阈值,这导致跳过或绕过对区域或帧的运动估计。因此,每个帧区域的结果可用于跳过向量生成或通知该特定区域的置信度度量。因此,本公开的各方面可以确定或识别可能不能处理运动估计的帧或帧区域之间的不连续性,然后跳过或绕过对这些帧或帧区域的运动估计。此外,本公开可以确定或识别可能能够处理运动估计的帧或帧区域之间的那些不连续性。此外,本公开的一些方面可以与某些类型的渲染一起使用,例如面元渲染或图块渲染。
图4A和4B分别示出了第一帧400和第二帧450。更具体地,图4A描绘了包括区域411-418的第一帧400,并且图4B描绘了包括区域451-458的第二帧450。如图4A和4B所示,第一帧400和第二帧450包括具有不同样式的多个区域。相应帧区域之间的相似样式表示相关或连续的内容。同样,相应帧区域之间的不同样式指示不相关或不连续的内容。例如,第一帧400中的区域411、412、415、417、418和第二帧450中的区域451、452、455、457、458均包括虚线样式。因此,相应的帧区域(例如区域411/451、412/452、415/455、417/457和418/458)包括相关或连续的内容。此外,第一帧400中的区域413、414、416包括水平样式,而第二帧450中的区域453、454、456包括垂直样式。这样,相应的帧区域(例如区域413/453、414/454和416/456)包括不相关或不连续的内容。
在本公开的一些方面,场景变化的检测和所得运动估计工作负载的修改可以与运动估计过程一起在线执行,即同时执行。在一些情况下,本公开的运动估计算法可以利用图像金字塔或部分图像金字塔。该图像金字塔可以是包括输入图像的一系列缩小版本的层次结构。与典型的运动估计相比,本公开的各方面可以将图像金字塔扩展到更低的分辨率级别。这样,本公开可以将图像金字塔扩展到某些分辨率,例如8×8像素,以便对每个帧区域执行前述散列分析。该散列分析可以产生用于某些不连续性或增量计算的散列值,该散列值可以与运动估计阈值进行比较。
如上所述,本公开的各方面可以使用图像散列函数来检测连续帧内容(即帧到帧内容)中的不连续性。本公开的该图像散列函数可以在较低分辨率的图像金字塔级别执行,该较低分辨率的图像金字塔级别可以被分割成帧区域。在一些方面,当检测到区域具有不连续性时,散列函数着色器道次可以修改控制表面的哪些区域可以应用运动估计的掩码。一旦本公开已经识别了要对其执行运动估计的帧区域,就可以利用掩码或掩蔽的运动估计来确定是否要在运动向量级别执行搜索。因此,一旦帧的区域被识别用于运动估计,该信息可以被提供给掩码或掩蔽的运动估计。如果这些区域的每个区域或一部分被识别或确定为包括不连续内容,则本公开可以绕过帧外推。
在一些方面,帧或帧区域的不连续内容的识别或确定可以由某些组件(例如GPU或CPU)来执行。例如,本公开的各方面可以由GPU在AR/XR/VR应用的帧渲染过程期间执行。例如,本公开的各方面可以由主机设备或客户端设备(诸如移动设备或智能电话)上的GPU或CPU来执行。
帧区域之间的上述不连续性可能与内容、亮度和/或噪声的差异相关联。另外,帧区域之间的前述不连续性可以对应于区域之间的透明覆盖。例如,用户可能正在查看对象并激活UI,这可能导致与前一帧相比,后一帧上的透明覆盖。在一些方面,当执行不连续性识别时,本公开可以考虑两个帧。在其他方面,当执行不连续性识别时,本公开可以考虑多于两个帧,例如三(3)、四(4)、八(8)、十六(16)帧等。
图5示出了根据本公开的图像或帧处理的图500。如图5所示,在502处,本公开的各方面可以接收多个输入帧。在504处,本公开的各方面可以将每个帧分成区域或子区域。对于帧的每个区域或子区域,本公开可以执行步骤512/514/522/524。在512处,本公开的各方面可以计算连续帧的区域或子区域之间的散列值。在514处,本公开的各方面可以将散列值与阈值(例如,运动估计阈值)进行比较。如果散列值未超过阈值,则在522处,本公开的各方面可以对帧的区域或子区域执行运动估计。如果散列值超过阈值,则在524处,本公开的各方面可以不对区域或子区域执行运动估计。
图6示出了根据本公开的图像或帧处理的图600。如图6所示,在602处,本公开的各方面可以利用高分辨率图像金字塔。在604处,本公开的各方面可以扩展高分辨率图像金字塔至低分辨率图像金字塔。在606处,本公开的各方面可以利用掩码,例如应用的运动估计掩码。基于604和606,在608处,本公开的各方面可以执行散列计算、阈值比较和/或掩码修改。基于在602和/或608处检测到的部分帧区域,在610处,本公开的各方面可以执行掩蔽的运动估计。另外,在612处,本公开的各方面可以执行帧外推。基于在602和/或608处检测到的完整帧,在614处,本公开的各方面可以跳过或绕过帧外推。
如前所述,在某些方面,例如,当用户传送不正确的运动估计时,缺少场景变化检测可能导致后续帧的高失真。相反,在包括场景变化检测的本公开的各方面中,可以识别和移除连续帧的低质量运动向量。这种低质量运动向量的移除可能导致干净的外推帧和/或提高的精度。
图7示出了图像、帧或图形处理组件的图700。如图7所示,图700包括中央处理单元(CPU)710、图形处理单元(GPU)720和包括显示处理单元(DPU)的显示器730。图700描绘了可由XR、AR或VR应用中的客户端设备或主机设备(例如,移动设备或智能电话)使用的多个组件。例如,可以利用CPU 710、GPU 720和显示器730来执行本文描述的跳过运动估计技术。
图4A-7示出了用于跳过运动估计的前述方法和过程的示例。如图4A-7所示,在本公开的各方面,本文的CPU和GPU(例如CPU 710和/或GPU 720)可以执行许多不同的步骤或过程来跳过运动估计,以便提高图像处理的精度。例如,当第一帧区域和第二帧区域之间的不连续性大于或等于运动估计阈值时,本文的CPU和GPU可以跳过对第一帧区域和第二帧区域的运动估计。
在接收到第一帧(例如第一帧400)之后,本文的GPU(例如GPU 720)可以接收第二帧(例如第二帧450),其中第一帧和第二帧可以与多个帧相关联。例如,该过程可以由图5中的步骤502来执行。第一帧(例如第一帧400)和第二帧((例如第二帧450)可以与增强现实(AR)、扩展现实(XR)或虚拟现实(VR)应用中的至少一个相关联。此外,与第一帧和第二帧相关联的多个帧可以对应于视频流。
本文的GPU(例如GPU 720)也可以将第一帧的至少一个第一区域,(例如区域413)与第二帧的至少一个第二区域(例如区域453)进行比较。
本文的GPU(例如GPU 720)还可以识别第一帧的至少一个第一区域(例如区域413)和第二帧的至少一个第二区域(例如区域453)之间的不连续性,该至少一个第一区域对应于该至少一个第二区域,该第一帧包括多个第一区域(例如区域411-418),并且该第二帧包括多个第二区域(例如区域451-458),该第一帧和第二帧与多个帧相关联。
在一些方面,至少一个第一区域(例如区域413)和至少一个第二区域(例如区域453)之间的不连续性可以对应于至少一个第一区域和至少一个第二区域之间的不连续内容。此外,不连续性可以与至少一个第一区域(例如区域413)和至少一个第二区域(例如区域453)之间的内容、亮度或噪声中的至少一个的差异相关联。至少一个第一区域(例如区域413)和至少一个第二区域(例如区域453)之间的不连续性也可以与多个运动向量相关联。此外,至少一个第一区域(例如区域413)和至少一个第二区域(例如区域453)之间的不连续性可以由图形处理单元(GPU)(例如GPU 720)来识别。
本文的GPU(例如,GPU 720)还可以确定至少一个第一区域(例如区域413)和至少一个第二区域(例如区域453)之间的不连续性是否大于或等于运动估计阈值。例如,该过程可以由图6中的步骤608来执行。
当至少一个第一区域和至少一个第二区域之间的不连续性大于或等于运动估计阈值时,本文的GPU(例如,GPU 720)也可以跳过对至少一个第一区域(例如区域413)和至少一个第二区域(例如区域413)的运动估计。例如,该过程可以由图5中的步骤524来执行。在一些情况下,跳过的运动估计或所识别的不连续性中的至少一个可以与掩码或掩蔽的运动估计中的至少一个相关联,诸如在图6中的步骤610。此外,跳过的运动估计或所识别的不连续性中的至少一个可以与图像金字塔(例如,在图6中的步骤602和604)或图像散列函数(例如,在图6中的步骤608)中的至少一个相关联。
当至少一个第一区域和至少一个第二区域之间的不连续性小于运动估计阈值时,本文的GPU(例如,GPU 720)也可以执行对至少一个第一区域(例如区域413)和至少一个第二区域(例如区域413)的运动估计。例如,该过程可以由图5中的步骤522来执行。在一些方面,所执行的运动估计可以对应于多个运动向量。
本文的GPU(例如GPU 720)也可以基于所执行的运动估计来配置第三帧,其中所配置的第三帧可以与帧外推过程相关联,诸如在图6中的步骤612。
图8示出了根据本公开的一种或多种技术的示例方法的流程图800。该方法可以由诸如GPU、CPU、图像处理器、帧处理器、显示处理单元(DPU)或用于图像、帧或图形处理的装置之类的装置来执行。
在802处,该装置可以在接收到第一帧之后接收第二帧,其中第一帧和第二帧可以与多个帧相关联,如结合图4A、4B、5、6和7中的示例所述。第一帧和第二帧可以与增强现实(AR)、扩展现实(XR)或虚拟现实(VR)应用中的至少一个相关联,如结合图4A、4B、5、6和7中的示例所述。此外,与第一帧和第二帧相关联的多个帧可以对应于视频流,如结合图4A、4B、5、6和7中的示例所述。
在804处,该装置可以将第一帧的至少一个第一区域与第二帧的至少一个第二区域进行比较,如结合图4A、4B、5、6和7中的示例所述。
在806处,该装置可以识别第一帧的至少一个第一区域和第二帧的至少一个第二区域之间的不连续性,该至少一个第一区域对应于该至少一个第二区域,该第一帧包括多个第一区域,并且该第二帧包括多个第二区域,该第一帧和第二帧与多个帧相关联,如结合图4A、4B、5、6和7中的示例所述。
在一些方面,至少一个第一区域和至少一个第二区域之间的不连续性可以对应于至少一个第一区域和至少一个第二区域之间的不连续内容,如结合图4A、4B、5、6和7中的示例所述。此外,不连续性可以与至少一个第一区域和至少一个第二区域之间的内容、亮度或噪声中的至少一个的差异相关联,如结合图4A、4B、5、6和7中的示例所述。至少一个第一区域和至少一个第二区域之间的不连续性也可以与多个运动向量相关联,如结合图4A、4B、5、6和7中的示例所述。此外,至少一个第一区域和至少一个第二区域之间的不连续性也可以由图形处理单元(GPU)识别,如结合图4A、4B、5、6和7中的示例所述。
在808处,该装置可以确定至少一个第一区域和至少一个第二区域之间的不连续性是否大于或等于运动估计阈值,如结合图4A、4B、5、6和7中的示例所述。
在810处,当至少一个第一区域和至少一个第二区域之间的不连续性大于或等于运动估计阈值时,该装置跳过对至少一个第一区域和至少一个第二区域的运动估计,如结合图4A、4B、5、6和7中的示例所述。在一些情况下,跳过的运动估计或所识别的不连续性中的至少一个可以与掩码或掩蔽的运动估计中的至少一个相关联,如结合图4A、4B、5、6和7中的示例所述。此外,跳过的运动估计或所识别的不连续性中的至少一个可以与图像金字塔或图像散列函数中的至少一个相关联,如结合图4A、4B、5、6和7中的示例所述。
在812处,当至少一个第一区域和至少一个第二区域之间的不连续性小于运动估计阈值时,该装置可以对至少一个第一区域和至少一个第二区域执行运动估计,如结合图4A、4B、5、6和7中的示例所述。在一些方面,所执行的运动估计可以对应于多个运动向量,如结合图4A、4B、5、6和7中的示例所述。
在814处,该装置可以基于所执行的运动估计来配置第三帧,其中所配置的第三帧可以与帧外推过程相关联,如结合图4A、4B、5、6和7中的示例所述。
在一种配置中,提供了一种用于图像、帧或图形处理的方法或装置。该装置可以是GPU、CPU、图像处理器、帧处理器、显示处理单元(DPU)或能够执行图像、帧或图形处理的一些其他处理器。在一个方面,该装置可以是设备104内的处理单元120,或者可以是设备104或另一设备内的一些其他硬件。该装置可以包括用于识别第一帧的至少一个第一区域和第二帧的至少一个第二区域之间的不连续性的部件,该至少一个第一区域对应于该至少一个第二区域,该第一帧包括多个第一区域,并且该第二帧包括多个第二区域,该第一帧和第二帧与多个帧相关联。该装置还可以包括用于确定至少一个第一区域和至少一个第二区域之间的不连续性是否大于或等于运动估计阈值的部件。该装置还可以包括用于当至少一个第一区域和至少一个第二区域之间的不连续性大于或等于运动估计阈值时,跳过对至少一个第一区域和至少一个第二区域的运动估计的部件。该装置还可以包括用于当至少一个第一区域和至少一个第二区域之间的不连续性小于运动估计阈值时,对至少一个第一区域和至少一个第二区域执行运动估计的部件。该装置还可以包括用于基于所执行的运动估计来配置第三帧的部件,其中所配置的第三帧与帧外推过程相关联。该装置还可以包括用于在接收到第一帧之后接收第二帧的部件。该装置还可以包括用于将第一帧的至少一个第一区域与第二帧的至少一个第二区域进行比较的部件。
本文描述的主题可以被实施以实现一个或多个益处或优点。例如,所描述的图像、帧或图形处理技术可以被GPU、、图像处理器、帧处理器、显示处理单元((DPU)或能够执行图像、帧或图形处理以实现本文描述的跳过运动估计技术的一些其他处理器使用。与其他图像、帧或图形处理技术相比,这也可以低成本完成。此外,本文的图像、帧或图形处理技术可以改进或加速帧处理或执行。此外,本文的图像、帧或图形处理技术可以改进资源或数据利用和/或资源效率。此外,本公开的各方面可以利用跳过运动估计技术,以便提高精度、节省功率、改善处理时间、减少等待时间和/或减少性能开销。
根据本公开,在上下文没有另外规定的情况下,术语“或”可以被解释为“和/或”。此外,虽然诸如“一个或多个”或“至少一个”等的短语可能已经用于本文公开的一些特征而不是其它特征,但是在上下文没有另外规定的情况下,没有对其使用这种语言的特征可以被解释为具有暗示的这种含义。
在一个或多个示例中,本文所描述的功能可以在硬件、软件、固件或其任何组合中实施。例如,尽管术语“处理单元”已经在本公开中使用,但是这种处理单元可以用硬件、软件、固件或其任何组合来实现。如果本文描述的任何功能、处理单元、技术或其他模块以软件实现,则本文描述的功能、处理单元、技术或其他模块可以作为一个或多个指令或代码存储在计算机可读介质上或通过其发送。计算机可读介质可以包括计算机数据存储介质或通信介质,通信介质包括促进将计算机程序从一个地方传送到另一地方的任何介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质,或者(2)诸如信号或载波的通信介质。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问以检索指令、代码和/或数据结构来实施本公开中描述的技术的任何可用介质。作为示例而非限制,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储器、磁盘存储器或其他磁存储设备。本文使用的光盘和磁盘包括致密光盘(CD)、激光盘、光学光盘、数字多功能盘(DVD)、软盘和蓝光光盘,其中磁盘通常磁性地再现数据,而光盘用激光光学地再现数据。以上的组合也应该包括在计算机可读介质的范围内。计算机程序产品可以包括计算机可读介质。
代码可以由一个或多个处理器执行,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、算术逻辑单元(ALU)、现场可编程逻辑阵列)(FPGA)或其他等效的集成或离散的逻辑电路系统。因此,本文使用的术语“处理器”可以指任何前述结构或者适合于实施本文描述的技术的任何其他结构。同样,这些技术可以完全在一个或多个电路或逻辑元件中实施。
本公开的技术可以在多种设备或装置中实施,包括无线手机、集成电路(IC)或IC的集合(例如芯片集)。在本公开中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但是不一定需要通过不同的硬件单元来实现。相反,如上所述,各种单元可以组合在任何硬件单元中,或者由包括如上所述的一个或多个处理器的互操作硬件单元的集合结合合适的软件和/或固件来提供。
已经描述了各种示例。这些和其他示例在所附权利要求的范围内。
以下方面仅是说明性的,并且可以与本文描述的其他方面或教导结合,而没有限制。
方面1是一种图像处理的方法。该方法包括识别第一帧的至少一个第一区域和第二帧的至少一个第二区域之间的不连续性,该至少一个第一区域对应于该至少一个第二区域,该第一帧包括多个第一区域,并且该第二帧包括多个第二区域,该第一帧和第二帧与多个帧相关联;确定至少一个第一区域和至少一个第二区域之间的不连续性是否大于或等于运动估计阈值;以及当至少一个第一区域和至少一个第二区域之间的不连续性大于或等于运动估计阈值时,跳过对至少一个第一区域和至少一个第二区域的运动估计。
方面2是方面1的方法,其中至少一个第一区域和至少一个第二区域之间的不连续性对应于至少一个第一区域和至少一个第二区域之间的不连续内容。
方面3是方面1和2中任一方面的方法,其中不连续性与至少一个第一区域和至少一个第二区域之间的内容、亮度或噪声中的至少一个的差异相关联。
方面4是方面1至3中任一方面的方法,其中跳过的运动估计或所识别的不连续性中的至少一个与掩码或掩蔽的运动估计中的至少一个相关联。
方面5是方面1至4中任一方面的方法,其中跳过的运动估计或所识别的不连续性中的至少一个与图像金字塔或图像散列函数中的至少一个相关联。
方面6是方面1至5中任一方面的方法,还包括当至少一个第一区域和至少一个第二区域之间的不连续性小于运动估计阈值时,对至少一个第一区域和至少一个第二区域执行运动估计。
方面7是方面1至6中任一方面的方法,还包括基于所执行的运动估计来配置第三帧,其中所配置的第三帧与帧外推过程相关联。
方面8是方面1至7中任一方面的方法,其中所执行的运动估计对应于多个运动向量。
方面9是方面1至8中任一方面的方法,还包括在接收到第一帧之后接收第二帧。
方面10是方面1至9中任一方面的方法,还包括将第一帧的至少一个第一区域与第二帧的至少一个第二区域进行比较。
方面11是方面1至10中任一方面的方法,其中至少一个第一区域和至少一个第二区域之间的不连续性与多个运动向量相关联。
方面12是方面1至11中任一方面的方法,其中第一帧和第二帧与增强现实(AR)、扩展现实(XR)或虚拟现实(VR)应用中的至少一个相关联。
方面13是方面1至12中任一方面的方法,其中至少一个第一区域和至少一个第二区域之间的不连续性由图形处理单元(GPU)识别。
方面14是方面1至13中任一方面的方法,其中与第一帧和第二帧相关联的多个帧对应于视频流。
方面15是一种用于图像处理的设备,包括用于实施如方面1至14中任一方面的方法的部件。
方面16是一种用于图像处理的装置,包括耦合到存储器并被配置为实施如方面1至14中任一方面的方法的至少一个处理器。
方面17是一种存储计算机可执行代码的计算机可读介质,其中该代码在被处理器执行时使得处理器实施如方面1至14中任一方面的方法。

Claims (43)

1.一种图像处理的方法,包括:
识别第一帧的至少一个第一区域和第二帧的至少一个第二区域之间的不连续性,所述至少一个第一区域对应于所述至少一个第二区域,所述第一帧包括多个第一区域,并且所述第二帧包括多个第二区域,所述第一帧和所述第二帧与多个帧相关联;
确定所述至少一个第一区域和所述至少一个第二区域之间的不连续性是否大于或等于运动估计阈值;以及
当所述至少一个第一区域和所述至少一个第二区域之间的不连续性大于或等于所述运动估计阈值时,跳过对所述至少一个第一区域和所述至少一个第二区域的运动估计。
2.根据权利要求1所述的方法,其中,所述至少一个第一区域和所述至少一个第二区域之间的不连续性对应于所述至少一个第一区域和所述至少一个第二区域之间的不连续内容。
3.根据权利要求1所述的方法,其中所述不连续性与所述至少一个第一区域和所述至少一个第二区域之间的内容、亮度或噪声中的至少一个的差异相关联。
4.根据权利要求1所述的方法,其中所跳过的运动估计或所识别的不连续性中的至少一个与掩码或掩蔽的运动估计中的至少一个相关联。
5.根据权利要求1所述的方法,其中所跳过的运动估计或所识别的不连续性中的至少一个与图像金字塔或图像散列函数中的至少一个相关联。
6.根据权利要求1所述的方法,还包括:
当所述至少一个第一区域和所述至少一个第二区域之间的不连续性小于所述运动估计阈值时,对所述至少一个第一区域和所述至少一个第二区域执行运动估计。
7.根据权利要求6所述的方法,还包括:
基于所执行的运动估计来配置第三帧,其中所配置的第三帧与帧外推过程相关联。
8.根据权利要求6所述的方法,其中所执行的运动估计对应于多个运动向量。
9.根据权利要求1所述的方法,还包括:
在接收到所述第一帧之后接收所述第二帧。
10.根据权利要求1所述的方法,还包括:
将所述第一帧的所述至少一个第一区域与所述第二帧的所述至少一个第二区域进行比较。
11.根据权利要求1所述的方法,其中,所述至少一个第一区域和所述至少一个第二区域之间的不连续性与多个运动向量相关联。
12.根据权利要求1所述的方法,其中,所述第一帧和所述第二帧与增强现实(AR)、扩展现实(XR)或虚拟现实(VR)应用中的至少一个相关联。
13.根据权利要求1所述的方法,其中,所述至少一个第一区域和所述至少一个第二区域之间的不连续性由图形处理单元(GPU)识别。
14.根据权利要求1所述的方法,其中,与所述第一帧和所述第二帧相关联的多个帧对应于视频流。
15.一种用于图像处理的装置,包括:
存储器;以及
至少一个处理器,其耦接到所述存储器并被配置为:
识别第一帧的至少一个第一区域和第二帧的至少一个第二区域之间的不连续性,所述至少一个第一区域对应于所述至少一个第二区域,所述第一帧包括多个第一区域,并且所述第二帧包括多个第二区域,所述第一帧和所述第二帧与多个帧相关联;
确定所述至少一个第一区域和所述至少一个第二区域之间的不连续性是否大于或等于运动估计阈值;以及
当所述至少一个第一区域和所述至少一个第二区域之间的不连续性大于或等于所述运动估计阈值时,跳过对所述至少一个第一区域和所述至少一个第二区域的运动估计。
16.根据权利要求15所述的装置,其中,所述至少一个第一区域和所述至少一个第二区域之间的不连续性对应于所述至少一个第一区域和所述至少一个第二区域之间的不连续内容。
17.根据权利要求15所述的装置,其中所述不连续性与所述至少一个第一区域和所述至少一个第二区域之间的内容、亮度或噪声中的至少一个的差异相关联。
18.根据权利要求15所述的装置,其中所跳过的运动估计或所识别的不连续性中的至少一个与掩码或掩蔽的运动估计中的至少一个相关联。
19.根据权利要求15所述的装置,其中所跳过的运动估计或所识别的不连续性中的至少一个与图像金字塔或图像散列函数中的至少一个相关联。
20.根据权利要求15所述的装置,其中所述至少一个处理器还被配置为:
当所述至少一个第一区域和所述至少一个第二区域之间的不连续性小于所述运动估计阈值时,对所述至少一个第一区域和所述至少一个第二区域执行运动估计。
21.根据权利要求20所述的装置,其中所述至少一个处理器还被配置为:
基于所执行的运动估计来配置第三帧,其中所配置的第三帧与帧外推过程相关联。
22.根据权利要求20所述的装置,其中所执行的运动估计对应于多个运动向量。
23.根据权利要求15所述的装置,其中所述至少一个处理器还被配置为:
在接收到所述第一帧之后接收所述第二帧。
24.根据权利要求15所述的装置,其中所述至少一个处理器还被配置为:
将所述第一帧的所述至少一个第一区域与所述第二帧的所述至少一个第二区域进行比较。
25.根据权利要求15所述的装置,其中,所述至少一个第一区域和所述至少一个第二区域之间的不连续性与多个运动向量相关联。
26.根据权利要求15所述的装置,其中,所述第一帧和所述第二帧与增强现实(AR)、扩展现实(XR)或虚拟现实(VR)应用中的至少一个相关联。
27.根据权利要求15所述的装置,其中,所述至少一个第一区域和所述至少一个第二区域之间的不连续性由图形处理单元(GPU)识别。
28.根据权利要求15所述的装置,其中,与所述第一帧和所述第二帧相关联的多个帧对应于视频流。
29.一种用于图像处理的装置,包括:
用于识别第一帧的至少一个第一区域和第二帧的至少一个第二区域之间的不连续性的部件,所述至少一个第一区域对应于所述至少一个第二区域,所述第一帧包括多个第一区域,并且所述第二帧包括多个第二区域,所述第一帧和所述第二帧与多个帧相关联;
用于确定所述至少一个第一区域和所述至少一个第二区域之间的不连续性是否大于或等于运动估计阈值的部件;以及
用于当所述至少一个第一区域和所述至少一个第二区域之间的不连续性大于或等于所述运动估计阈值时,跳过对所述至少一个第一区域和所述至少一个第二区域的运动估计的部件。
30.根据权利要求29所述的装置,其中,所述至少一个第一区域和所述至少一个第二区域之间的不连续性对应于所述至少一个第一区域和所述至少一个第二区域之间的不连续内容。
31.根据权利要求29所述的装置,其中所述不连续性与所述至少一个第一区域和所述至少一个第二区域之间的内容、亮度或噪声中的至少一个的差异相关联。
32.根据权利要求29所述的装置,其中所跳过的运动估计或所识别的不连续性中的至少一个与掩码或掩蔽的运动估计中的至少一个相关联。
33.根据权利要求29所述的装置,其中所跳过的运动估计或所识别的不连续性中的至少一个与图像金字塔或图像散列函数中的至少一个相关联。
34.根据权利要求29所述的装置,还包括:
用于当所述至少一个第一区域和所述至少一个第二区域之间的不连续性小于所述运动估计阈值时、对所述至少一个第一区域和所述至少一个第二区域执行运动估计的部件。
35.根据权利要求34所述的装置,还包括:
用于基于所执行的运动估计来配置第三帧的部件,其中所配置的第三帧与帧外推过程相关联。
36.根据权利要求34所述的装置,其中所执行的运动估计对应于多个运动向量。
37.根据权利要求29所述的装置,还包括:
用于在接收到所述第一帧之后接收所述第二帧的部件。
38.根据权利要求29所述的装置,还包括:
用于将所述第一帧的所述至少一个第一区域与所述第二帧的所述至少一个第二区域进行比较的部件。
39.根据权利要求29所述的装置,其中,所述至少一个第一区域和所述至少一个第二区域之间的不连续性与多个运动向量相关联。
40.根据权利要求29所述的装置,其中,所述第一帧和所述第二帧与增强现实(AR)、扩展现实(XR)或虚拟现实(VR)应用中的至少一个相关联。
41.根据权利要求29所述的装置,其中,所述至少一个第一区域和所述至少一个第二区域之间的不连续性由图形处理单元(GPU)识别。
42.根据权利要求29所述的装置,其中,与所述第一帧和所述第二帧相关联的多个帧对应于视频流。
43.一种存储用于图像处理的计算机可执行代码的计算机可读介质,所述代码在由处理器执行时使所述处理器:
识别第一帧的至少一个第一区域和第二帧的至少一个第二区域之间的不连续性,所述至少一个第一区域对应于所述至少一个第二区域,所述第一帧包括多个第一区域,并且所述第二帧包括多个第二区域,所述第一帧和所述第二帧与多个帧相关联;
确定所述至少一个第一区域和所述至少一个第二区域之间的不连续性是否大于或等于运动估计阈值;以及
当所述至少一个第一区域和所述至少一个第二区域之间的不连续性大于或等于所述运动估计阈值时,跳过对所述至少一个第一区域和所述至少一个第二区域的运动估计。
CN202180072613.4A 2020-11-02 2021-10-05 基于区域不连续性的运动估计 Pending CN116457830A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/087,528 2020-11-02
US17/087,528 US11615537B2 (en) 2020-11-02 2020-11-02 Methods and apparatus for motion estimation based on region discontinuity
PCT/US2021/053649 WO2022093502A1 (en) 2020-11-02 2021-10-05 Motion estimation based on region discontinuity

Publications (1)

Publication Number Publication Date
CN116457830A true CN116457830A (zh) 2023-07-18

Family

ID=78414767

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180072613.4A Pending CN116457830A (zh) 2020-11-02 2021-10-05 基于区域不连续性的运动估计

Country Status (7)

Country Link
US (1) US11615537B2 (zh)
EP (1) EP4238056A1 (zh)
JP (1) JP2023548084A (zh)
KR (1) KR20230101803A (zh)
CN (1) CN116457830A (zh)
TW (1) TW202223831A (zh)
WO (1) WO2022093502A1 (zh)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434196B1 (en) * 1998-04-03 2002-08-13 Sarnoff Corporation Method and apparatus for encoding video information
US8130277B2 (en) 2008-02-20 2012-03-06 Aricent Group Method and system for intelligent and efficient camera motion estimation for video stabilization
CN102123235B (zh) 2011-03-24 2013-07-17 杭州海康威视数字技术股份有限公司 视频插值帧的生成方法及其装置
JP6056766B2 (ja) * 2011-11-15 2017-01-11 日本電気株式会社 動きベクトル推定装置、動きベクトル推定方法及び動きベクトル推定用プログラム
WO2013097166A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Object detection using motion estimation
US9098919B2 (en) * 2012-10-04 2015-08-04 Honeywell International Inc. Detecting motion in a high resolution video
US10255683B1 (en) * 2017-10-31 2019-04-09 Amazon Technologies, Inc. Discontinuity detection in video data
US11388432B2 (en) 2018-12-10 2022-07-12 Qualcomm Incorporated Motion estimation through input perturbation
US20200380700A1 (en) * 2019-06-03 2020-12-03 Qualcomm Incorporated Methods and apparatus for detecting motion estimation

Also Published As

Publication number Publication date
WO2022093502A1 (en) 2022-05-05
EP4238056A1 (en) 2023-09-06
US20220138961A1 (en) 2022-05-05
US11615537B2 (en) 2023-03-28
JP2023548084A (ja) 2023-11-15
TW202223831A (zh) 2022-06-16
KR20230101803A (ko) 2023-07-06

Similar Documents

Publication Publication Date Title
US10297003B2 (en) Efficient saving and restoring of context information for context switches
US11373268B2 (en) Apparatus and method for graphics processing unit hybrid rendering
KR20230097004A (ko) 고속의 증분 공유된 상수
TW202141417A (zh) 用於高效多視圖光柵化的方法和裝置
CN116348904A (zh) 用simo方法优化gpu内核以用于利用gpu高速缓存进行缩小
TW202137141A (zh) 用於邊緣壓縮抗混疊的方法和裝置
US11615537B2 (en) Methods and apparatus for motion estimation based on region discontinuity
KR102634506B1 (ko) Gpu 하드웨어 기반 심도 버퍼 방향 추적
US11373267B2 (en) Methods and apparatus for reducing the transfer of rendering information
US11087431B2 (en) Methods and apparatus for reducing draw command information
US20240104684A1 (en) Visibility generation in tile based gpu architectures
WO2024055221A1 (en) Fast msaa techniques for graphics processing
US20220172695A1 (en) Methods and apparatus for plane planning for overlay composition
US20230092394A1 (en) Foveated binned rendering associated with sample spaces
CN117616446A (zh) 基于图块的架构中的深度和阴影通道渲染的优化
CN117616398A (zh) Gpu范围界定中的性能开销优化
EP4229603A1 (en) Configurable apron support for expanded-binning
CN117980956A (zh) 动态可变速率着色
CN116998145A (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