CN105374005B - 数据处理系统及其操作方法、计算机可读存储介质 - Google Patents

数据处理系统及其操作方法、计算机可读存储介质 Download PDF

Info

Publication number
CN105374005B
CN105374005B CN201510490159.0A CN201510490159A CN105374005B CN 105374005 B CN105374005 B CN 105374005B CN 201510490159 A CN201510490159 A CN 201510490159A CN 105374005 B CN105374005 B CN 105374005B
Authority
CN
China
Prior art keywords
image
graphics data
compressed
block
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510490159.0A
Other languages
English (en)
Other versions
CN105374005A (zh
Inventor
D·克罗克斯福德
B·詹姆斯
S·埃利斯
E·C·普洛曼
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.)
ARM Ltd
Original Assignee
ARM Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ARM Ltd filed Critical ARM Ltd
Publication of CN105374005A publication Critical patent/CN105374005A/zh
Application granted granted Critical
Publication of CN105374005B publication Critical patent/CN105374005B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/52Parallel processing
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/08Power processing, i.e. workload management for processors involved in display operations, such as CPUs or GPUs
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/122Tiling

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Library & Information Science (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

数据处理系统及其操作方法、计算机可读存储介质。一种数据处理系统包括:被布置成生成数据以形成输出数据阵列的处理电路;被布置成通过将表示所述输出数据阵列的特定区域的压缩数据块写入所述输出缓冲器从而将生成的数据存储在输出缓冲器中的处理电路;被布置成从所述输出缓冲器读取表示所述数据阵列的特定区域的压缩数据块的处理电路;被布置成从所述压缩数据块获取元数据的处理电路;以及被布置成对所述数据块进行处理的处理电路。所获取的元数据被用于影响对所述数据块的处理。

Description

数据处理系统及其操作方法、计算机可读存储介质
技术领域
本发明涉及数据处理系统,并且具体地涉及在图形处理系统中处理压缩数据。
背景技术
如本领域中已知的,在图形处理系统中对帧进行渲染和光栅化之后,帧通常被压缩以减小存储器带宽并且被写入帧缓冲器中。压缩的帧然后由执行进一步图像处理(例如图像缩放、操纵和/或增强)的显示控制器或图像处理器解压缩并读取,而结果被直接发送给显示器(输出的图像未被写回到存储器或帧缓冲器)。结果,必须按照帧刷新速率以一次操作(pass)执行此图像处理,所述帧刷新速率通常是每秒60帧。
因为典型的平板当前具有2048×1536个像素的显示分辨率,并且采用每像素32个比特的数据大小,所以这导致必须每秒处理720MB的数据。预期移动装置的显示分辨率继续增加,预期在2015年出现4K(3840×2160个像素)平板,并且预期在这样的移动装置中执行的图像处理将变得日益复杂并因此更加计算密集,以便在一系列条件下提供改善的图像质量。
申请人认为数据处理系统中的处理数据(例如在帧缓冲器与显示器之间的图像中)仍然有改进的空间。
发明内容
当从第一方面看时,本发明提供了一种数量处理方法,该方法包括以下步骤:
通过将表示输出数据阵列的特定区域的压缩数据块写入输出缓冲器,将数据存储在所述输出缓冲器中;
从所述输出缓冲器读取表示所述输出数据阵列的特定区域的压缩数据块;
从所述压缩数据块获取元数据;以及
对所述数据块进行处理,
其中,所述元数据用于影响所述数据块的处理。
当从第二方面看时,本发明提供了一种数据处理系统,该数据处理系统包括:
被布置成生成数据以形成输出数据阵列的处理电路;
被布置成通过将表示所述输出数据阵列的特定区域的压缩数据块写入输出缓冲器从而将所生成的数据存储在所述输出缓冲器中的处理电路;
被布置成从所述输出缓冲器读取表示所述数据阵列的特定区域的压缩数据块的处理电路;
被布置成从所述压缩数据块获取元数据的处理电路;以及
被布置成对所述数据块进行处理的处理电路,
其中,所述元数据被用于影响所述数据块的处理。
本发明涉及数据处理系统,例如,用于对输出数据阵列进行处理,并被实现为该数据处理系统,并且本发明涉及一种方法,例如,操作数据处理系统的方法,其中,由所述数据处理系统生成的数据被用于在输出缓冲器中形成输出数据阵列,其中,通过将表示所述输出数据阵列的特定区域的数据块写入输出缓冲器中,输出数据阵列(在一个优选实施方式中,例如可能是要显示的帧)被存储在输出缓冲器(在一个优选实施方式中,例如可以是帧缓冲器)中。各个数据块表示所述输出数据阵列的特定区域,并且因此优选地各个数据块表示由所述数据处理系统生成的渲染拼贴(tile),例如,一起形成要显示的帧。
随后,例如由显示控制器在显示之前从所述输出缓冲器读取并处理形成被写入所述输出缓冲器的所述输出数据阵列的所述数据块。
所述数据块被以压缩的形式存储在所述输出缓冲器中。因此,在优选实施方式中,所述方法包括压缩所述数据块并将压缩的数据块写入所述输出缓冲器的步骤。
优选地,数据块被个别地压缩,即,逐块压缩,使得各个压缩数据块都是它相关的相应数据块的压缩表示(由于所述拼贴被优选地单独地渲染并写出到所述输出缓冲器的事实)。因此,在优选实施方式中,各个压缩数据块是特定渲染拼贴的压缩表示。
当数据(例如图像)被压缩时,元数据常常被创建为压缩处理的一部分,或者所述数据被按照可从已压缩数据中提取元数据的这样的方式压缩。所述元数据中的至少一些可包含表示原始数据被压缩之前的特性的信息。所述元数据因此可包含例如由于有损压缩而不再存在于压缩数据中和/或能够被用于更高效地对所述数据进行处理的信息(例如,因为将必须进一步分析所述数据以获得此信息)。
因此,通过在所述数据块的后续处理期间使用元数据来影响所述数据块的处理,减小了所需图像处理的量进而减小了所消耗的电力,或者另选地相同量的电力能够执行更复杂级别的处理。此外,本发明减少了需要被传送的数据的量,这是因为元数据能够被用于推导关于原始数据块(即,在数据块被压缩之前)的信息,因此避免了使用原始数据块的需要并因此能够使用压缩数据块。
能够按照任何期望且适合的方式从所述压缩数据块获取所述元数据。这可取决于所述数据块被压缩的方式,即,取决于压缩方案。在一些压缩方案中,元数据例如在所述数据的压缩期间自动地生成,并且例如可形成压缩数据的一部分,从而使得能够简单地连同所述数据块一起读取所述元数据。在其它压缩方案中,可能需要根据压缩数据确定(例如,生成或计算)所述元数据,在此情况下,所述方法可包括对所述压缩数据块进行处理以获取所述元数据的另一步骤。在任一种情况下,例如通过仅读取或确定后续处理所必需的所述元数据,可仅获取影响所述数据块的后续处理所需的所述元数据。
所述数据块的处理可在所述压缩数据块上进行,即,无需先解压缩所述数据。例如,所述元数据和所述压缩数据块的组合可能是足够的,无需解压缩所述数据,如将在下面更详细地讨论的。然而在一个实施方式中,所述压缩数据块被解压缩并且解压缩的数据块被处理,其中,所述元数据被用于影响解压缩的数据块的处理。
如将在下面所讨论的,可按照任何适合且期望的方式使用所述元数据来影响所述数据块的处理,例如,在取出或使用压缩图像数据的任何时候。然而,在优选实施方式中,对所述数据块进行处理的步骤包括以下步骤:例如使用任何适合且期望的图像处理算法对所述数据块执行图像修改(例如,显示修改),其中,所述元数据被用于影响解压缩的数据块的处理。(所述数据块可不必须被立即发送给显示器,而是相反被存储用于将来显示,但是仍然可能经历图像修改。)
在一个实施方式中,对所述数据块执行图像(显示)修改的步骤包括以下步骤:缩放所述数据块和/或对所述数据块执行图像增强,其中,所述元数据被用于影响所述数据块的缩放和/或所述数据块的所述图像增强。如还将在下面所讨论的,优选地,所述图像(显示)修改由显示控制器或图像处理器执行。
因此,所述方法优选地包括以下步骤:显示经处理的数据块,即,利用显示控制器。因此,用于读取所述压缩数据块的所述处理电路可包括所述显示控制器。另选地,单独的组件(例如,图像处理器)可用于读取所述压缩数据块。所述图像处理器然后可使用所述元数据来处理所述数据块,并且所述显示控制器可显示经处理的数据块。
缩放的处理涉及将所述数据阵列(例如帧)的大小从(压缩)数据阵列的大小放大或减小为所述输出数据阵列的大小,例如以用于显示。当所述显示器的大小与所生成的帧的大小不同时,此处理频繁地发生。
图像增强(使用所述元数据)的处理涉及修改例如已被输出到帧缓冲器中的图像数据,以便针对显示而优化所述图像。这通常将涉及修改(例如,增加)所述图像的对比度或修改所述图像的亮度。图像增强通常涉及向原始帧缓冲器数据应用变换功能,以便相对于高阈值和低阈值重新映射像素或子像素的亮度。用于图像增强(例如,修改对比度)的技术包括对比度增强、直方图均衡和直方图拉伸。为了方便起见,将在本文中使用术语图像增强,但应当理解,这旨在包括并包含所有等效的术语和技术。
可针对各种不同的用途执行图像增强的处理。例如,如果将在暗的环境条件下(例如,在变暗的房间内)显示图像,则可增加图像的亮度并且可减小背光功率以减小显示器的总体功耗。如果例如要在亮的环境条件下(例如,室外阳光下)显示图像,则可以增加亮度,或另选地使用色调映射以使图像变得更易于观看。
可使用的其它图像增强技术(即,使用元数据执行图像增强)包括自动聚焦、自动白平衡和自动曝光以及创造性图像处理,例如使图像看起来像是用老式相机拍摄的。
使用元数据的图像增强的处理可能不导致图像的立即显示,但是可被执行以使得图像可被用于例如显示之前的进一步处理。在一个实施方式中,元数据被用于从所述数据块(例如,图像)检测或提取特征。这可用于例如出于自动聚焦的目的而确定图像中是否存在面部,或为了字符识别或计算机视觉而检测图像中的边缘。
又一个图像处理技术包括将数据块转码为另一格式,例如以将使用如US-A1-2013/0034309中描述的ARM帧缓冲压缩(AFBC)方案压缩的图像转换为MPEG H.264。
本发明可例如作为图形处理流水线的一部分被实现在数据处理系统内的任何适合且期望的位置,并且适合于每当压缩图像数据被取出或使用时(例如,在GPU对压缩图像数据执行图像处理的任何时候)被使用,因此图像(显示)修改不是必须由图像处理器或显示控制器执行,而是由系统中的任何适合的组件执行。
然而在优选实施方式中,压缩数据块(例如,所述数据阵列)被保持在帧缓冲器中,压缩数据块可由显示控制器从帧缓冲器读出以用于处理和显示,或者由图像处理器读出以用于处理,即,以提供输出帧以用于显示。因此,优选地,所述方法包括使用所述显示控制器或所述图像处理器来处理所述数据块的步骤。这个步骤后优选地跟随有使用所述显示控制器来显示所述数据块的步骤。
如果适用的话,显示数据块的装置可不必须存在于包含数据处理系统并且例如包含图形处理流水线、图像处理器或显示处理器的同一个物理设备中。例如,经处理的数据块例如可使用WiDi(无线显示)或Miracast无线地发送到显示器,或者经处理的图像可通过网络发送并且然后显示。
因此,优选地,所述方法还包括以下步骤中的一个或更多个步骤:生成所述数据块,例如优选地生成所述数据阵列(包括多个数据块);将所述数据块存储在输出(帧)缓冲器中,例如优选地将所述数据阵列存储在帧缓冲器中;以及从帧缓冲器读取所述数据块以用于处理。
在这些实施方式中,即,在将所述数据阵列存储在帧缓冲器中的实施方式中,数据阵列(要显示的帧)可例如通过被适当地渲染和存储到帧缓冲器中并且通过整个数据处理系统的任何适当的组件(帧生成器)视需要而定生成。在优选实施方式中,要显示的帧是由图形处理器生成的帧、由视频处理器(视频引擎)生成的帧或由组合引擎(或组合器)提供的帧。
因此,帧生成级优选地包括图形处理器、视频处理器(视频引擎)或组合引擎(或组合器)。如果需要,可能存在超过一个帧生成器,并且一个或超过一个(或全部)帧生成器可按照本发明的方式操作。如果需要,所述帧生成级还可包括其它组件,诸如压缩级(压缩引擎)(并且在优选实施方式中是这种情况)。
可以按照许多不同的方式使用元数据来影响数据块的处理。在一个实施方式中,元数据被用于例如通过确定使用多个处理中的哪一个处理数据块来影响数据块的处理。因此,优选地,所述方法包括使用所述元数据在用于处理所述数据块的多个处理之间选择一个的步骤。因为元数据包含表示原始数据被压缩之前的特性的信息,所以元数据例如可被用于确定所述数据块所需的处理的级别,例如以用于显示。
例如,元数据可包含涉及在数据块中(即,在遍及所述数据块的不同点处)的数据(例如,颜色)的变化,其中,根据由所述元数据指示的所述数据块中的数据(例如颜色)的变化的级别在不同的处理之间进行选择以使用。因此,优选地,如果数据(颜色)对于数据块中的全部是相同的,则使用第一处理,如果数据块在数据值(颜色)方面具有小变化,则使用第二处理,并且如果在整个数据块的数据值(颜色)方面存在大变化(例如,颜色值中的边缘),则使用第三处理。
在另一个不必相互排斥的实施方式中,元数据在数据块本身的处理中被使用以影响所述处理,即,用于数据块的处理的处理细节取决于作为该处理的输入的元数据,例如,元数据被用作所述处理中的变量。在此实施方式中,可使用自适应算法来基于元数据对数据块进行处理。
例如,元数据可包含涉及数据块中的数据(例如,颜色)的变化的信息,并且可分析所述变化以例如确定要在数据块中执行的平滑的量和/或数据块中的边缘的位置和强度(数据值的急剧改变)。如上所述,可以在取决于元数据选择要用于处理数据块的特定处理之后使用元数据在自适应算法中的这种用途。
如上所述,优选地,元数据包括表示数据块中的数据(例如,颜色)的变化的信息。如现在将描述的,在缩放图像时并且在执行图像增强时,所述信息是特别有用的。除了分析元数据以确定数据块中的数据值(颜色)的变化之外,可分析(压缩)数据块本身中的数据,以及这与使用元数据确定数据块中的数据值(颜色)的变化的组合。
例如,如果元数据指示在数据块中不存在数据(例如,颜色)的变化,即,数据(颜色)全部相同,则在缩放和/或显示数据块时,相同的数据(颜色)可被用于整个数据块的各个点(例如,像素)。因此,优选地,所述方法包括使用所述元数据来确定所述数据(颜色)是否在整个所述数据块中全部相同的步骤。在这样的情况下,可无需解压缩数据块,即,如果已知数据块的所有点(像素)具有相同的数据值,则无需解压缩数据块来确定各个点处的数据值(颜色)。此外,可无需对数据块中的所有点执行缩放,因为在与所述数据块对应的最终显示中,对于很多点(像素)而言,可以在要显示的所述块上简单地重复所述数据值(颜色)。因此,减小了显示或缩放数据块所需的处理的量。
在另一示例中,元数据可指示在数据块中存在数据值(颜色)的大变化,例如,存在“边缘”,在“边缘”处,数据块中的邻近点(像素)之间存在数据值(颜色)的明显变化,即,所述方法包括使用所述元数据来确定所述数据块中是否存在边缘的步骤。在这种情况下,特别是在缩放数据块时,重要的是例如使用边缘或对比度增强算法来仔细地处理所述边缘,使得当显示所述数据块时所述边缘被保持。
除了在数据块内检测到边缘之外,在数据阵列(其将下面更详细地描述)中存在多个数据块的实施方式中,各个数据块的边缘处的点(像素)将与在相邻数据块的边缘处的点相邻。因此,优选地,例如除了对个别的数据块内的点(像素)执行边缘检测处理之外,还对各个数据块的边缘处的点执行边缘检测处理,使得可以检测到数据块之间的边缘。
为了检测数据块之间的边缘,优选地分析数据阵列中的相邻数据块的元数据,并且对在所述数据块周边的点执行适当的边缘增强算法。
在另一个示例中,元数据可指示数据块中仅存在数据值(颜色)的小变化,即,并不全部是相同的数据值(颜色)但是不存在边缘。在这种情况下,平滑算法可用于处理所述数据块(例如,在缩放期间),不必要执行边缘检测和增强。
因此可以看到,元数据包含有关所述数据块的特性的有用信息,并且因此例如在缩放、图像增强和/或显示期间可用于选择数据块经历什么类型的处理。因此,当需要时,例如当元数据指示数据块中存在边缘时可以使用更复杂的处理,或当更简单的处理适用于由元数据指示的数据块中的数据的类型时(例如,当数据值(颜色)在数据块中全部相同时)可使用更简单的处理。
使用元数据来处理数据块的步骤可包括生成直方图(即,从所述元数据生成),以确定所述数据块的处理信息(参数,例如图像(显示)修改信息(参数))。
如上所述,本发明被优选地实现在一种图形处理系统中,其中,要显示的压缩帧被写出到帧缓冲器中并且然后由显示控制器在显示之前处理。例如,情况将是这样的,并且如将由本领域技术人员所了解的,在基于拼贴的数据处理系统中,在此情况下按照本发明的方式处理的各个数据块可以(并且在一个优选实施方式中)对应于图形处理器的渲染处理产生的“拼贴(tile)”(尽管如将在下面进一步地讨论的,但是这不是必须的)。
如本领域中已知的,在基于拼贴的渲染中,渲染处理的二维数据阵列或帧(“渲染目标”)(例如,并且通常,其将被显示来显示被渲染的场景)被细分或分割成通常被称为“拼贴”的多个较小区域以用于渲染处理。拼贴(子区域)都被单独地(通常一个接一个地)渲染。然后,经渲染的拼贴(子区域)被重新组合以提供完整的输出阵列(帧)(渲染目标)以例如用于显示。
通常被用于“拼贴”和“基于拼贴的”渲染的其它术语包括“组块(chunking)”渲染(子区域被称为“块”)和“段(bucket)”渲染。为了方便起见,将在本文中使用术语“拼贴”,但是应该理解,这些术语旨在包含所有另选和等效的术语和技术。
由数据处理系统生成的数据正被用于形成的输出数据阵列可以是例如图形处理器可被用于生成的任何适合且期望的这种数据阵列。在一个特别优选的实施方式中,它包括用于显示的输出帧,但是它还可以或替代地包括图形处理器的其它输出,诸如图形纹理(其中,例如,渲染“目标”是图形处理器正被用于(例如在“渲染到纹理”操作中)生成的纹理或所述数据处理系统的输出将被写入的其它表面)。
类似地,数据要被写入的输出缓冲器可包括任何适合的这种缓冲器,并且可在存储器中按照任何适合且期望的方式加以配置。例如,所述输出缓冲器可以是片上缓冲器或者可以是外部缓冲器(并且,实际上,更可能是外部缓冲器(存储器),如将在下面所讨论的)。类似地,所述输出缓冲器可以是用于此目的的专用存储器或者也可以是用于其它数据的存储器的一部分。如以上所讨论的,在优选实施方式中,所述输出缓冲器是用于数据处理器系统和/或用于将被提供数据处理系统的输出的显示器的帧缓冲器。
数据块可以各自表示整个数据阵列的任何适合且期望的区域,包括最多整个数据阵列,即,可能仅存在单个块。然而,优选地,所述数据阵列包括多个数据块,即,所述数据块小于整个数据阵列。在此实施方式中,能够视需要而定完成所述数据阵列变成数据块的细分。
各个生成的数据块优选地表示整个阵列的不同部分(子区域)(但如果需要,这些块可重叠)。各个块应表示数据阵列的适当部分(区域),诸如阵列内的多个数据位置。适合的数据块大小将例如是输出数据阵列中的8×8、16×16或32×32个数据位置。
在一个特别优选的实施方式中,数据阵列被划分成大小和形状规则的区域(数据块),优选地为正方形或矩形的形式。然而,这不是必须的并且可需要使用其它布置。
在一个特别优选的实施方式中,各个数据块对应于图形处理器产生作为其渲染输出的渲染拼贴。这是实现本发明的特别直接的方式,因为图形处理器将直接生成渲染拼贴,并且因此将不存在对于“产生”将按照本发明的方式处理的数据块的任何进一步处理的需要。
可以压缩数据阵列中的数据块,并且按照任何适合且期望的方式产生元数据。然而,现在将描述可使用申请人设想到的许多方案。
在第一对示例中,诸如本申请人的如GB-A-2491687中所描述的自适应可缩放纹理压缩(ASTC)方案或如US-A1-2013/0034309中所描述的ARM帧缓冲压缩(AFBC)方案的特定数据编码方案按照这样的方式压缩数据,即,可从编码的数据本身识别数据的数据值(颜色)的变化,即,指示原始数据的特性的元数据可直接从这些编码方案得到。
因此,在优选实施方式中,数据块被按照这样的方式压缩,即,可从压缩数据块本身(例如并且优选地,使用本申请人的ASTC编码方案或AFBC编码方案中的一个)来识别压缩数据块的数据值(颜色)的变化,并且然后从压缩数据块确定元数据。
在AFBC编码方案中,数据块被压缩,使得针对各个数据块提供最小数据(颜色)值,并且与该最小值的差(增量)被一起提供,所述差可用于确定例如块中的像素的实际数据值(颜色)。大的增量宽度(即,数据块中的增量的范围)例如指示数据块中的数据值(颜色)的大变化,并且反之小的增量宽度例如指示数据块中的数据值(颜色)的小变化。因此,可以分析包括最小数据(颜色)值和增量宽度的元数据以确定数据块中的数据值(颜色)的范围,例如确定数据块中是否存在边缘,并因此确定应该对数据块使用什么类型的缩放算法。
具体地,如果增量宽度等于零,则指示数据值(颜色)在整个数据块上是相同的,并且可通过针对各个数据点(像素)复制数据值(颜色)来简单地(缩放,必要时并且)显示数据块。
如果数据块的增量宽度小,即,在数据块内的增量值存在小变化,则指示数据块中不存在边缘,所以可以使用平滑算法来(缩放并且)显示数据块。
如果增量宽度大,即,在数据块内的增量值存在大变化,则指示在数据块内存在边缘。在这种情况下,可以分析个别的增量值以确定边缘位于数据块内的什么地方。一旦完成分析,例如可对所述边缘使用对比度/边缘增强算法,并且平滑算法可用于数据块的其余部分。
在一些压缩方案(例如,AFBC方案)中,所述压缩是分层的。因此,取决于对元数据的分析,例如,如果它用于边缘检测或平滑,则可获取更大或更小级别的元数据,即,因为更高级别的元数据包含关于压缩数据的更大程度的信息。还可取决于所述输出数据阵列的大小(例如,显示所需要的图像的大小)使用元数据的相同的选择性获取。例如,如果正在缩减图像,则可能仅需要获取较低级别的元数据。
此外,如果已经使用这样的分层压缩方案对数据阵列进行了编码,则取决于所获取的元数据的前一级的分析,可在多个级中获取元数据。例如,如果正在分析数据块的数据(颜色)的变化,则可以首先获取最低级别的元数据以确定数据块的数据(颜色)中是否存在某些变化或者整个数据块的数据(颜色)是否统一。如果存在某些变化,则可获取下一个级别的元数据以确定在数据块中的数据值(颜色)中存在多大变化,例如以用作平滑算法的输入。可获取下一个级别的元数据以确定数据块内的任何边缘的位置。
在ASTC编码方案中,数据块被压缩,使得为各个数据块提供数据值(颜色)端点。因此,可以分析包括数据值(颜色)端点的元数据以确定数据块中的数据值(颜色)的范围,例如以确定数据块中是否存在边缘并因此确定应该对所述数据块使用什么类型的缩放算法,如以上参照AFBC编码方案已经说明的。
ASTC编码方案还允许提供“空闲范围块(void extent block)”,“空闲范围块”规定了数据(颜色)具有恒定值的区域,即,使得不必指定块中的各个点(像素)处的数据值(颜色)。当增量宽度等于零时,此元数据因此可按照与针对所述AFBC方案相同的方式使用,即,它指示在显示器的整个必要区域简单地复制数据块内的这些点(像素)的数据值(颜色)。
在一个实施方式中,可使用行程长度编码来压缩数据块中的一个或更多个,其中从此压缩获得的元数据指示在数据块内的多个点(像素)全部是相同的数据值(颜色)。当增量宽度等于零时,此元数据因此可按照与针对AFBC方案相同的方式使用,即,它指示可在显示器的整个必要区域简单地复制数据块内的这些点(像素)的数据值(颜色)。
在一个实施方式中可使用例如用于对视频进行编码的离散余弦变换来压缩数据块中的一个或更多个。这将数据(颜色)变化分离成频率分量和各个分量的关联权重,使得如果高频分量(数据值(颜色)的大变化)的权重小,则指示所述数据块中不存在锐利的边缘,并且反之亦然。
一旦已经根据本发明的方法处理了要处理的数据阵列(例如,帧)中的数据块(例如,拼贴)中的每一个,可针对要处理(显示)的下一数据阵列(帧)重复本发明的处理。(如本领域技术人员将了解的,通常并且优选地针对要显示的一系列帧并且优选地针对要显示的一系列帧中的各个帧实现本发明。)
本发明可用可操作为生成数据阵列(例如,用于在电子显示器上显示的帧)的任何期望且适合的数据处理系统加以实现。所述系统优选地包括显示器,该显示器优选地是LCD显示器或OLED显示器的形式。
在优选实施方式中,本发明以作为用于在显示器上显示窗口(例如,用于图形用户界面)的系统的数据处理系统以及优选组合窗口系统来实现。
实现本发明的数据处理系统可包含任何期望并适当且适合的元件和组件。因此它可以并且优选地确实包含下列中的一个或更多个,并且优选下列中的全部:CPU、GPU、视频处理器、显示控制器、显示器以及用于存储各种数据阵列(帧)和所需要的其它数据的适当存储器。
所生成的数据阵列(要显示的帧)和输出的数据阵列(例如,用于显示的帧(和任何其它源表面(帧))可按照任何适合且期望的方式存储在存储器中。它们优选地被存储在适当的缓冲器中。例如,输出的数据阵列(帧)优选地被存储在输出(帧)缓冲器中。
输出(帧)缓冲器可以是片上缓冲器,或者可以是外部缓冲器(并且,实际上,也许更可能为外部缓冲器(存储器),如将在下面所讨论的)。类似地,输出(帧)缓冲器可以是用于此目的的专用存储器或者也可以是用于其它数据的存储器的一部分。在一些实施方式中,输出(帧)缓冲器是用于正在生成帧的数据处理系统和/或用于将显示所述帧的显示器的帧缓冲器。
类似地,在生成的数据阵列(帧)被生成(渲染)时首先写入的缓冲器可包括任何适合的这种缓冲器,并且在存储器中按照任何适合且期望的方式配置。例如,它们可以是一个或多个片上缓冲器或者可以是一个或多个外部缓冲器。类似地,它们可以是用于此目的的专用存储器或者也可以是用于其它数据的存储器的一部分。输入(帧)缓冲器可以例如具有应用所需要的任何格式,并且例如可被存储在系统存储器中(例如,在统一的存储器架构中)或图形存储器中(例如,非统一的存储器架构中)。
如以上所讨论的,在本发明中,通过将表示输出的数据阵列的特定区域的压缩数据块写入输出缓冲器,将数据存储在输出缓冲器中,从输出缓冲器读取表示输出的数据阵列的特定区域的压缩数据块,从压缩数据块获取元数据,并且对数据块进行处理,其中,元数据被用于影响数据块的处理。如以上所讨论的,在一个特别优选的实施方式中,输出的数据阵列是要显示的帧,输出缓冲器是帧缓冲器,并且表示所述帧的特定区域的数据块从帧缓冲器读取并且由显示控制器在显示之前处理。
此外,申请人已经认识到,本发明适用于并且可用于许多其它布置。
这是因为,一般而言,当处理相对较大的数据阵列时,情况常常是“熵”的量将在整个阵列上发生大的变化,即,使得所述阵列的不同区域所需要的处理的程度或类型可极大地改变。例如,当对包括图像数据(例如,来自相机)、视频流数据、纹理图、图形数据和其它(中间)图形缓冲数据的数据阵列进行处理时,就可能是这种情况。
通常,使用“蛮干(brute force)”方法对这些数据阵列进行处理,例如通过向所述阵列的数据元素的组(例如,对所述阵列的元素的2×2个组或更大组)应用函数或内核,其中,所述函数或内核针对各个元素在锁定步骤中执行。在一组元素中的一个或更多个数据元素需要附加处理(例如,代码中的特征发散行为(例如,循环或分支))的情况下,这些元素的评估可迅速地变得序列化,从而减小吞吐量。因此,这些函数或内核通常具有“始终执行”配置文件,这例如对于“熵”低的阵列的那些区域可能导致冗余计算被执行。
还可通过对阵列进行预处理来确定这些数据阵列的“熵”,但是这以附加处理循环以及因此附加资源为代价。
如以上所讨论的,本发明可使用从表示输出的数据阵列的特定区域的压缩数据块获取的元数据来影响所述数据块的处理,例如以便从而减小所需处理的量、存储器带宽和由所述数据处理系统消耗的电力,或者针对相同量的处理、带宽和/或功耗允许执行相对更复杂级别的处理。这例如在具有更多有限资源的数据处理系统(诸如移动或低功率数据处理系统)中可能是特别有用的。因此,一般而言,当对数据阵列进行处理时本发明可以是有用的。
因此,本发明的输出数据阵列更一般地可包括任何适合且期望的输出数据阵列,诸如图像数据(包括但不限于RGB图像数据、RGBA图像数据、sRGBA图像数据、YUV图像数据等)的阵列或一个或更多个其它形式的数据的阵列,诸如(中间)图形数据(包括但不限于深度值数据、表面法线向量数据、地形图数据、亮度数据、切空间数据、距离场数据等)的阵列。图像数据的阵列可包括例如来自(数码)相机的图像数据的阵列、视频流数据的阵列、纹理图,或诸如渲染帧(如上所述)的图形数据或其它(中间)图形数据的阵列。
例如并且优选地如上所述,(压缩)数据块可以各自表示整个数据阵列的任何适合且期望的区域。在一个特别优选的实施方式中,各个数据块对应于所讨论的数据处理器作为其输出而产生的数据块。这是实现本发明的特别直接的方式,因为数据处理器将直接生成所述数据块,所以将不存在用于“产生”将按照本发明的方式处理的所述数据块的任何进一步处理的需要。
本发明的输出缓冲器可包括任何适合且期望的输出缓冲器,诸如用于所讨论的数据处理操作的“最终”输出缓冲器或初始或中间输出缓冲器。输出缓冲器可包括例如图像缓冲器(例如,(数码)相机的)、视频缓冲器(例如,视频处理器(引擎)的或用于视频处理器(引擎)的)、纹理缓冲器、图形缓冲器(例如,“G-buffer”)或帧缓冲器(例如,如以上所描述的)等。类似地,输出缓冲器可在存储器中按照任何适合且期望的方式加以配置,例如并且优选地如以上所描述的那样。
可通过所述数据处理系统的任何适合且期望的组件将压缩数据块写入输出缓冲器。压缩数据块优选地由生成和/或压缩所述压缩数据块的所述数据处理系统的同一组件写入输出缓冲器(但是情况不必是这样的,并且在一个实施方式中情况不是这样的)。因此,可通过(例如(数码)相机的)图像信号处理器(ISP)、CPU、显示控制器或可接收并压缩未压缩数据块以生成压缩数据块的(例如独立)压缩器以及通过(例如如上所述)图形处理器(GPU)、视频处理器(引擎)或组合引擎(组合器)等(生成和/或压缩并且)将压缩数据块写入输出缓冲器。
用于压缩所述压缩数据块的压缩方案可包括例如并优选地如以上所描述的任何适合且期望的压缩方案,诸如AFBC压缩方案或ASTC压缩方案(如以上所描述的)。
压缩数据块可由数据处理系统的任何适合且期望的组件从输出缓冲器读取。压缩数据块可由数据处理系统的将压缩数据块写入输出缓冲器的同一组件或者由另一(不同的)组件从输出缓冲器读取。
例如并且优选地如上所述,可按照任何适合且期望的方式从压缩数据块获取元数据。这可由数据处理系统的任何适合且期望的组件(诸如数据处理系统的读取数据块的组件)或者由另一(不同的)组件完成。
然后,数据块可由数据处理系统的任何适合且期望的组件(诸如读取数据块的组件)或者由例如数据块被传递给的另一(不同的)组件处理(使用元数据来影响处理)。
因此,压缩数据块可从输出缓冲器读取和/或(使用所述元数据)处理,和/或元数据可通过(例如(数码)相机的)图像信号处理器(ISP)、CPU、显示控制器、(例如独立)图像处理器、图形处理器(GPU)、视频处理器(引擎)或组合引擎(组合器)等从压缩数据块获取。
从压缩数据块获取的元数据可包括任何适合且期望的这种元数据。如以上所讨论的,在优选实施方式中,元数据包括优选地作为压缩操作的一部分生成的、表示数据块中的数据(例如,数据的频率分量)的变化的信息。
可按照任何适合且期望的方式处理数据块,并且元数据可用于按照任何适合且期望的方式影响数据块的处理。
如以上所讨论的,在特别优选的实施方式中,所述方法包括以下步骤:使用所述元数据选择(并且所述数据处理系统包括被布置成进行所述选择的处理电路)要用于处理所述数据块的多个处理间的一个处理。例如,在不同类型的处理之间选择以处理数据块、在处理数据块时执行一个或更多个“标准”处理步骤、在处理数据块时省略一个或更多个处理步骤、在处理数据块时包括一个或更多个(附加的)处理步骤、在处理数据块时执行“正常”或中间级别的处理、在处理数据块时执行不太详细(例如,较低精度)级别的处理、和/或在处理数据块时(例如,在适当情况下)执行更详细(例如更高精度)级别的处理将变得可能。
在优选实施方式中,在元数据包括表示数据块中的数据(例如,数据的频率分量)的变化的信息的情况下,则所述方法包括以下步骤:取决于表示数据块中的数据的变化的信息来选择(并且所述数据处理系统包括被布置成进行所述选择的处理电路)要用于处理数据块的多个处理间的一个处理。
例如,在元数据指示数据块中的数据的变化相对较小(例如,数据块包括相对较低的频率分量或仅“DC”分量)的情况下,在处理数据块时可省略一个或更多个处理步骤,和/或可使用不太详细(例如,较低精度)级别的处理来处理数据块。相应地,在元数据指示数据块中的数据的变化相对较大(例如,数据块包括相对较高的频率分量)的情况下,在处理数据块时可包括一个或更多个(附加的)处理步骤,和/或可使用更详细(例如,更高精度)级别的处理来处理数据块。在元数据指示数据块中的数据的变化具有“正常”值或中间值的情况下,在处理数据块时可执行一个或更多个“标准”处理步骤,和/或可使用“正常”或中间级别的处理来处理数据块。
在优选实施方式中,在要用于处理数据块的多个处理之间的选择可使用一个或更多个阈值来做出,优选地通过将表示数据块中的数据的变化的信息(例如,由该信息指示的变化的程度)与一个或更多个阈值进行比较来做出所述选择。
可存在单个阈值,例如使得在数据块中的数据的变化大于(或等于)阈值的情况下,可将数据块中的数据的变化视为“正常”或相对较大(例如如上所述),和/或在数据块中的数据的变化小于(或等于)阈值的情况下,可将数据块中的数据的变化视为“正常”或相对较小(例如如上所述)。另选地,可存在多个阈值,例如使得可定义和使用数据块中的数据的变化方面的相对较大级别、相对较小级别以及一个或更多个中间级别(例如如上所述)。
在这些实施方式中,可视需要而定选择和定义一个或更多个阈值级别中的级别。
还可以将数据块的处理(完全)省略(例如在适当情况下)。
因此,在优选实施方式中,所述方法包括以下步骤:使用所述元数据(例如并且优选地基于表示数据的变化的信息)来确定(并且所述数据处理系统包括被配置成进行所述确定的处理电路)是否应该处理数据块。例如,在元数据指示数据块中的数据的变化(例如,相对于阈值)相对较小(例如,数据块包括相对较低的频率分量或仅“DC”分量)的情况下,可以(不)处理数据块。
人们认为,基于从压缩数据块获取的元数据来确定是否应对数据块进行处理的构思本身可能是新的和有利的。
因此,当从另一个方面看时,本发明提供了一种数据处理方法,该方法包括以下步骤:
通过将表示输出数据阵列的特定区域的压缩数据块写入输出缓冲器,将数据存储在所述输出缓冲器中;
从所述输出缓冲器读取表示所述输出数据阵列的特定区域的压缩数据块;
从所述压缩数据块获得元数据;以及
使用所述元数据来确定是否应对所述数据块进行处理。
当从另一个方面看时,本发明提供了一种数据处理系统,该数据处理系统包括:
被布置成生成数据以形成输出数据阵列的处理电路;
被布置成通过将表示所述输出数据阵列的特定区域的压缩数据块写入输出缓冲器从而将所生成的数据存储在所述输出缓冲器中的处理电路;
被布置成从所述输出缓冲器读取表示所述数据阵列的特定区域的压缩数据块的处理电路;
被布置成从所述压缩数据块获取元数据的处理电路;以及
被布置成使用所述元数据来确定是否应对所述数据块进行处理的处理电路。
如本领域技术人员将了解的,本发明的这些方面和实施方式可以并优选地包括本文所描述的本发明的优选和可选特征中的任一个或更多个或全部。
因此,例如,用于压缩所述压缩数据块的压缩方案优选地包括例如并且优选地如以上所描述的AFBC压缩方案或ASTC压缩方案。同样,例如并且优选地如上所述,从压缩数据块获取的元数据包括表示数据块中的数据(例如,数据的频率分量)的变化的信息。
例如并且优选地如上所述,在(如果)确定了应处理数据块的情况下,优选地处理数据块,可选地使用元数据来影响数据块的处理。例如并且优选地如上所述,在(如果)确定了应(不)处理数据块的情况下,优选地(不)处理数据块。
在优选实施方式中,在处理数据块时省略一个或更多个处理步骤的情况下、在处理数据块时执行不太详细(例如,较低精度)级别的处理的情况下和/或在将数据块的处理(完全)省略的情况下,以这种方式节省的处理和/或带宽至少部分地在别处使用,例如增强(例如,所述数据阵列的或另一(不同的)数据阵列的)一个或更多个其它数据块的处理。因此,例如,当处理另一数据块时可包括一个或更多个(附加的)处理步骤,在处理另一数据块时可执行更详细(例如,更高精度)级别的处理,和/或可处理例如将不被处理的另一数据块。
因此,应当了解,在优选实施方式中,例如在处理一个或更多个数据阵列时,可以使用元数据来选择性地“再平衡”或分发处理资源和/或去除冗余。也就是说,可使用元数据来选择性地绕过、消除或减少所述数据块的处理,和/或增强一个或更多个其它(不同的)数据块的处理。
如以上所讨论的,在特别优选的实施方式中,处理数据块的步骤包括以下步骤:检测(提取)数据块的特征信息(例如,检测数据块中的边缘),其中,元数据用于影响数据块的特征检测。在一个优选的这种实施方式中,数据阵列包括由例如图像处理系统或机器视觉系统的图像信号处理器(ISP)获取(并且优选地压缩)的图像数据的阵列。
在优选的这种实施方式中,在元数据指示数据块中的数据(例如,颜色或亮度)的变化相对较小(例如,数据块包括相对较低的频率分量或仅“DC”数据)的情况下,可省略特征检测中的一个或更多个处理步骤,可对数据块执行不太详细(例如,较低精度)级别的特征检测,和/或可将数据块的特征检测处理(完全)省略。
在优选实施方式中,输出数据阵列包括体积数据。在这些实施方式中,各个数据块可表示3D体积形式的特定区域(而不是2D图像的特定区域)。
在一个这种实施方式中,体积数据包括体积图形数据,并且处理操作包括使用体积图形数据的图形处理操作(诸如涉及光线投射、粒子效果等的图形处理操作)。在另一这种实施方式中,所述体积数据包括图像数据的3D计算机视觉重建,并且所述处理操作包括使用所述3D重建的计算机视觉处理操作。
优选地,在体积数据的数据块的元数据指示数据的变化相对较小的情况下,可省略处理中的一个或更多个处理步骤,可对数据块执行不太详细(例如,较低精度)级别的处理,和/或可将数据块的处理(例如,如以上所描述的)(完全)省略。如本领域技术人员将了解的,体积数据常常可以包括具有相对稀疏的数据(即,低“熵”)的相对较大的区域,因此本发明的技术在处理体积数据的情形下可能是特别有用的。
在各种优选实施方式中,处理数据块的步骤包括以下步骤:使用数据块生成第二(例如,最终)输出数据阵列。
在这些实施方式中,使用元数据来确定是否应对数据块进行处理的步骤可包括以下步骤:使用所述元数据来确定是否应使用所述数据块来生成所述第二(最终)输出数据阵列。同样,使用所述元数据来影响所述数据块的处理的步骤可包括以下步骤:当生成所述第二(最终)输出数据阵列时,使用所述元数据来影响所述数据块的处理。
可按照任何适合且期望的方式使用所述数据块来生成所述第二(最终)输出数据阵列。所述数据块被优选地用于与一个或更多个其它数据块一起生成所述第二(最终)输出数据阵列,例如通过按照某种方式组合所述数据块。所述一个或更多个其它数据块可来自与所述数据块相同的输出数据阵列和/或来自一个或更多个其它(不同的)输出数据阵列。
在优选实施方式中,(原始)数据阵列可包括(中间)图形数据(诸如“渲染到纹理”输出)的阵列,例如用于生成第二(最终)输出数据阵列(例如,用于显示的帧)时使用。例如,在所述数据处理系统被布置成执行延期着色的情况下,就可以是这种情况。在这些实施方式中,输出缓冲器将优选地包括所谓的“G-buffer”,该“G-buffer”存储多个渲染目标以用于生成所述第二(最终)输出数据阵列(例如,用于显示的帧)。
如本领域中已知的,在延期着色中,针对给定输出(例如,用于显示的帧)生成了(例如,颜色数据、深度数据、表面法线、光源遮罩、阻光度排序数据、其它属性等的)多个渲染目标。最终的输出数据阵列(例如,用于显示的帧)是使用所述多个渲染目标生成的,例如通过在所称的“解决循环”中按照某种方式组合多个渲染目标。
因此,在一个实施方式中,使用所述数据块来生成第二(最终)输出数据阵列的步骤可包括以下步骤:执行(延期着色)解决循环来生成所述第二(最终)输出数据阵列。
在优选的这种实施方式中,在所述元数据指示所述数据块中的数据的变化相对较小(例如,所述数据块包括相对较低的频率分量或仅“DC”数据)的情况下,可省略所述解决循环中的一个或更多个处理步骤,可在所述解决循环中对所述数据块执行不太详细(例如较低精度)级别的处理,和/或可将针对所述数据块的解决循环处理((完全))省略(即可从所述解决循环的处理中省略所述数据块)。另外或另选地,在所述元数据指示所述数据块中的数据的变化相对较大(例如,所述数据块包括相对较高的频率分量)的情况下,在处理所述数据块时可包括所述解决循环中的一个或更多个(附加的)处理步骤,和/或可在所述解决循环中对所述数据块执行更详细(例如,更高精度)级别的处理。
在优选实施方式中,使用所述元数据来影响所述数据块的处理可包括以下步骤:将所述数据块的元数据与一个或更多个其它(不同)数据块的元数据进行比较,并且可基于所述比较来影响所述数据块的处理。
相应地,在优选实施方式中,使用所述元数据来确定是否应对所述数据块进行处理的步骤可包括以下步骤:将所述数据块的元数据与一个或更多个其它(不同的)数据块的元数据进行比较,然后基于所述比较来确定是否应对所述数据块进行处理。
另外或另选地,在另一优选实施方式中,可使用所述元数据来确定是否应对一个或更多个其它(不同的)数据块进行处理和/或影响一个或更多个其它(不同的)数据块的处理。
人们认为,基于从压缩数据块获取的元数据来确定是否应对一个或更多个其它(不同的)数据块进行处理和/或影响一个或更多个其它(不同的)数据块的处理的构思本身可能是新的和有利的。
因此,当从另一个方面看时,本发明提供了一种数量处理方法,该方法包括以下步骤:
通过将表示输出数据阵列的特定区域的压缩数据块写入输出缓冲器,将数据存储在所述输出缓冲器中;
从所述输出缓冲器读取表示所述输出数据阵列的特定区域的压缩数据块;
从所述压缩数据块获取元数据;以及
使用所述元数据来确定是否应对一个或更多个其它数据块进行处理。
当从另一个方面看时,本发明提供了一种数据处理系统,该数据处理系统包括:
被布置成生成数据以形成输出数据阵列的处理电路;
被布置成通过将表示所述输出数据阵列的特定区域的压缩数据块写入输出缓冲器从而将所生成的数据存储在所述输出缓冲器中的处理电路;
被布置成从所述输出缓冲器读取表示所述数据阵列的特定区域的压缩数据块的处理电路;
被布置成从所述压缩数据块获取元数据的处理电路;以及
被布置成使用所述元数据来确定是否应对一个或更多个其它数据块进行处理的处理电路。
例如且优选地如上所述,在(如果)确定应对一个或更多个其它(不同的)数据块进行处理的情况下,优选地对所述一个或更多个其它(不同的)数据块进行处理,可选地使用所述元数据来影响所述一个或更多个其它(不同的)数据块的处理。例如且优选地如上所述,在(如果)确定应(不)对一个或更多个其它(不同的)数据块进行处理的情况下,优选地(不)对所述一个或更多个其它(不同的)数据块进行处理。例如且优选地如上所述,在(不)对所述一个或更多个其它(不同的)数据块进行处理的情况下,按照这种方式节省的处理和/或带宽可至少部分地在别处使用。
当从另一个方面看时,本发明提供了一种方法,该方法包括以下步骤:
通过将表示输出数据阵列的特定区域的压缩数据块写入输出缓冲器,将数据存储在所述输出缓冲器中;
从所述输出缓冲器读取表示所述输出数据阵列的特定区域的压缩数据块;
从所述压缩数据块获取元数据;以及
对一个或更多个其它数据块进行处理;
其中,所述元数据被用于影响所述一个或更多个其它数据块的处理。
当从另一方面看时,本发明提供了一种数据处理系统,该数据处理系统包括:
被布置成生成数据以形成输出数据阵列的处理电路;
被布置成通过将表示所述输出数据阵列的特定区域的压缩数据块写入输出缓冲器从而将所生成的数据存储在所述输出缓冲器中的处理电路;
被布置成从所述输出缓冲器读取表示所述数据阵列的特定区域的压缩数据块的处理电路;
被布置成从所述压缩数据块获取元数据的处理电路;以及
被布置成对一个或更多个其它数据块进行处理的处理电路;
其中,所述元数据被用于影响所述一个或更多个其它数据块的处理。
如本领域技术人员将了解的,本发明的这些方面和实施方式可以并且优选地包括本文所描述的本发明的优选和可选特征中的任何一个或更多个或全部。
因此,例如,用于压缩所述压缩数据块的所述压缩方案优选地包括例如且优选地如以上所描述的AFBC压缩方案或ASTC压缩方案。同样,例如且优选地如上所述,从所述压缩数据块获取的所述元数据优选地包括表示所述数据块中的数据(例如数据的频率分量)的变化的信息。
在这些方面和实施方式中,所述一个或更多个其它(不同的)数据块可来自相同的输出数据阵列(例如被存储在所述输出缓冲器中)和/或来自一个或更多个其它输出(不同的)数据阵列(例如可被存储在所述输出缓冲器中和/或在一个或更多个其它输出缓冲器中)。所述一个或更多个其它(不同的)数据块优选地包括优选地使用与所述压缩数据块相同的压缩方案压缩(但是这是不必要的)的一个或更多个压缩数据块。在实施方式中,对所述一个或更多个其它(不同的)数据块进行处理可包括以下步骤:解压缩被压缩的一个或更多个其它数据块,并且对解压缩的所述一个或更多个其它数据块进行处理,其中,所述元数据被优选地用于影响解压缩的所述一个或更多个其它数据块的处理。
例如在从多个2D图像立体重建3D图像中,可使用这些方面和实施方式。在一个这种实施方式中,输出数据阵列可包括2D图像数据,并且对所述数据块进行处理的步骤可包括以下步骤:使用所述数据块(以及来自一个或更多个其它(不同的)2D图像数据阵列的一个或更多个其它(不同的)(优选地对应的)数据块)生成3D图像。在此情况下,在两个数据块具有相同或足够类似的元数据(即,使得它们在所述数据块的数据中具有相同或足够类似的变化)的情况下,可将这些数据块确定为(不)可用于立体重建处理。因此,可省略或减少对这些数据块的处理(例如,如上所述)。
在优选实施方式中,使用所述元数据来影响所述数据块的(和/或一个或更多个其它(不同的)数据块的)处理包括以下步骤:使用所述元数据来确定处理所讨论的数据块(和/或一个或更多个其它数据块)的细节或精度的级别。
在一个这种实施方式中,可使用所述元数据来确定对所述数据块(和/或一个或更多个其它数据块)中的数据进行采样的速率或样本计数(即,细节或精度的级别),例如以用于生成所述第二(最终)输出数据阵列。
如本领域中已知的,当从一个或更多个(中间)数据阵列生成第二(最终)输出数据阵列时,必须对所述一个或更多个(中间)数据阵列进行采样。通常(例如在所述一个或更多个(中间)数据阵列具有与所述第二(最终)输出数据阵列相同的大小的情况下),可使用1:1采样完成采样,也就是说,对于所述第二(最终)输出数据阵列中的各个数据元素(例如片段),(单个)对应的数据元素或区域被从所述一个或更多个(中间)数据阵列采样,并且被用于生成该元素的数据值。
然而,针对所述第二(最终)输出数据阵列中的各个数据元素(片段)对所述一个或更多个(中间)数据阵列进行采样多次(即,可对所述一个或更多个(中间)数据阵列进行“超级采样”或“多重采样”)也是可能的。相反,针对所述第二(最终)输出数据阵列中的多个数据元素(片段)使用所述一个或更多个(中间)数据阵列的单个样本也是可能的,即,使用更粗(稀疏)采样。
此外,例如在“可变速率片段评估”技术中,可以在这些布置之间选择,例如以在这些布置之间动态地切换。这可以减少生成所述第二(最终)输出数据阵列所需要的资源(例如,在处理、存储器带宽和电力方面),或者可以例如通过与具有相对较低“熵”的阵列的区域相比对具有相对更高“熵”的阵列的区域进行更详细的处理来使得可以被有效率地使用资源。
根据优选实施方式,从所述数据块中获取的所述元数据可以用于(动态地)确定应对所述数据块(和/或一个或更多个其它(不同的)数据块)中的数据进行采样的速率或样本计数以在生成其它(最终)输出数据阵列时使用。也就是说,在实施方式中,所述元数据可在可变速率片段评估技术中优选地用于选择采样速率或样本计数。
例如,所述元数据可用于在1:1采样(即,其中针对所述第二(最终)输出数据阵列中的各个数据元素(片段),(单个)对应的数据元素或区域被从所述一个或更多个(中间)数据阵列采样)、一个或更多个超级采样或多重采样速率或样本计数(即,其中针对所述第二(最终)输出数据阵列中的各个数据元素(片段)对所述一个或更多个(中间)数据阵列多次采样)和/或一个或更多个粗(稀疏)采样速率或样本计数(即,其中针对所述第二(最终)输出数据阵列中的多个数据元素(片段)使用了所述一个或更多个(中间)数据阵列的单个样本)之间选择。
在优选的这种实施方式中,在所述元数据指示所述数据块中的数据的变化相对较小(例如,所述数据块包括相对较低频率分量或仅“DC”数据)的情况下,可使用相对较粗(稀疏)的采样对所述数据块中的数据进行采样。在所述元数据指示所述数据块中的数据的变化相对较大(例如,所述数据块包括相对更高频率分量)的情况下,可优选地使用相对更精细(详细)的采样(超级采样或多重采样)对所述数据块中的数据进行采样。在所述元数据指示所述数据块中的数据的变化有某个中间值的情况下,可优选地使用中间采样速率或样本计数对所述数据块中的数据进行采样。
使用所述元数据来(动态地)在不同的超级采样或多重采样速率或样本计数和/或粗(稀疏)采样速率或样本计数之间选择(并且在一个优选实施方式中完成了这个)也将使可能的。例如,所述元数据可用于在一个或更多个相对较粗(稀疏)超级采样或多重采样速率或样本计数(例如,2×2或4×4超级采样或多重采样)和/或一个或更多个相对更精细的超级采样或多重采样速率或样本计数(例如,8×8或16×16超级采样或多重采样)之间选择。
例如,这些实施方式(还)可用于解决具有基于着色器的混叠的问题。当经采样的数据阵列(纹理)是欠采样的或在两个样本之间的边界条件上时,可能发生着色器混叠(即,主要由对比的相邻像素在量子化状态之间切换(例如,从帧到帧)时的高量子化引起的视觉干扰)。
因此,在优选实施方式中,通过使用所述元数据来选择子样本的数量(超级采样或多重采样速率或样本计数),例如以增加其中所述数据块中的数据的变化相对更高的子样本的数量,可以使从帧到帧的过渡平滑。这代表了例如在不必实现“完全”超级采样或时间抗混叠方案(相对较昂贵(例如,在所需处理方面),因此例如对于移动装置来说不合需要)的情况下解决着色器混叠的方便且高效的方式。
人们认为,基于从压缩数据块获取的元数据来确定要在对所述数据块进行处理时使用的采样速率或样本计数的构思本身可能是新的和有利的。
因此,当从另一个方面看时,本发明提供了一种数量处理方法,该方法包括以下步骤:
通过将表示第一输出数据阵列的特定区域的压缩数据块写入输出缓冲器,将数据存储在所述输出缓冲器中;
从所述输出缓冲器读取表示所述第一输出数据阵列的特定区域的压缩数据块;
从所述压缩数据块获取元数据;以及
使用所述数据块生成第二输出数据阵列,
其中,所述元数据被用于确定生成所述第二输出数据阵列时对所述数据块中的数据进行采样的速率或样本计数。
当从另一个方面看时,本发明提供了一种数据处理系统,该数据处理系统包括:
被布置成生成数据以形成第一输出数据阵列的处理电路;
被布置成通过将表示所述第一输出数据阵列的特定区域的压缩数据块写入输出缓冲器从而将所生成的数据存储在所述输出缓冲器中的处理电路;
被布置成从所述输出缓冲器读取表示所述第一数据阵列的特定区域的压缩数据块的处理电路;
被布置成从所述压缩数据块获取元数据的处理电路;以及
使用所述数据块生成第二输出数据阵列的处理电路,
其中,所述元数据被用于确定生成所述第二输出数据阵列时对所述数据块中的数据进行采样的速率或样本计数。
如本领域技术人员将了解的,本发明的这些方面和实施方式可以并且优选地包括本文所描述的本发明的优选和可选特征中的任何一个或更多个或全部。
因此,例如,被用于压缩所述压缩数据块的所述压缩方案优选地包括例如并且优选地如以上所描述的AFBC压缩方案或ASTC压缩方案。
同样,例如且优选地如上所述,从所述压缩数据块中获取的所述元数据包括表示所述数据块中的数据(例如,数据的频率分量)的变化的信息。根据优选的这种实施方式,例如且优选地如上所述,表示所述数据块中的数据的变化的所述信息被用于确定生成所述第二输出数据阵列时对所述数据块中的数据进行采样的速率或样本计数。
在优选实施方式中,所述第一数据阵列的多个数据块被用于生成所述第二输出数据阵列。在这些实施方式中,可针对各个数据块确定速率或样本计数,并且各个数据块可以使用它自己的经确定的速率或样本计数(例如,基于如以上或另外描述的元数据确定的)加以采样。另选地,(单个)速率或样本计数可被用于所述第一数据阵列的多个或全部数据块。所述(单个)速率或样本计数例如可以是针对所述多个数据块中的每一个确定的多个速率或样本计数的平均值(中值、模式(mode)、均值等)或确定的最高速率或样本计数。在一个实施方式中,当对所述第一数据阵列(的其它数据块)中的一些或全部进行采样时,可使用在所讨论的所述数据块方面所确定的速率或样本计数。
在优选实施方式中,当生成所述第二输出数据阵列时,多个数据阵列(例如,纹理)被采样和使用。在这些实施方式中,可在各个数据阵列方面确定一个或更多个速率或样本计数,并且各个采样的数据阵列可使用它自己的经确定的采样率或样本计数(例如,基于如以上或另外所描述的元数据确定的)加以采样。另选地,(单个)速率或样本计数或一组速率或样本计数可被用于多个或全部经采样的阵列。所述(单个)速率或样本计数例如可以是针对所述多个采样的阵列中的每一个确定的多个(组)速率或样本计数的平均值(中值、模式、均值等)或确定的最高速率或样本计数。在一个实施方式中,当对其它数据阵列中的一些或全部进行采样时,可使用在所述第一数据阵列方面确定的速率或样本计数。
在生成所述第二输出数据阵列时使用不同的速率或样本计数对数据块和/或数据阵列进行采样也将是可能的。例如,针对在生成所述第二输出数据阵列时执行的多个不同的处理操作,可以使用多个不同的速率或样本计数对给定数据块或数据阵列进行采样。在这些实施方式中,取决于特定处理操作(的属性)(例如,基于处理操作对所述数据块中的数据的变化的“灵敏度”)来选择采样速率或样本计数。
在优选实施方式中,所述数据块和/或一个或更多个其它数据块被用于生成多个第二输出数据阵列。在这些实施方式中,可在各个第二输出数据阵列方面确定和使用速率或样本计数或一组速率或样本计数。另选地,(单个)速率或样本计数或一组速率或样本计数可被用于多个或全部所述第二输出数据阵列。所述(单个)速率或样本计数例如可以是在所述多个第二输出数据阵列中的每一个方面确定的多个(组)速率或样本计数的平均值(中值、模式、均值等),或确定的最高(最大)速率或样本计数。在一个实施方式中,可在一些或全部其它第二输出数据阵列方面使用在所讨论的所述第二输出数据阵列方面确定的速率或样本计数。
在一个这种实施方式中,多个第二输出数据阵列包括一对或更多对立体图像(即,其中每对图像包括根据与图像的视点有关的变换而不同的一个右眼图像和一个左眼图像)。在这些实施方式中,优选地,针对立体图像对的两个图像使用相同的速率或样本计数(或同一组速率或样本计数),例如以便减少或避免如果在生成立体图像对的各个图像时使用不同的采样速率或样本计数可能发生的图像之间的可能差异(例如,混叠中)。
优选地,在立体图像对的各个对应片段对方面使用了相同的速率或样本计数。优选地,速率或样本计数是在各个对应片段对中的各个片段方面(独立地)确定的,并且在对应片段对方面使用了确定的最大速率或样本计数或两个确定的速率或样本计数的平均值(中值、模式、均值等)。
在优选实施方式中,其它信息可与所述元数据一起使用来确定生成所述第二输出数据阵列时对所述数据块中的数据进行采样的速率或样本计数。例如,可例如根据变换修改所生成的第二输出数据阵列,并且与所述修改有关的信息可与所述元数据一起使用来确定生成所述第二输出数据阵列时对所述数据块中的数据进行采样的速率或样本计数。
在一个这种实施方式中,所述第二输出数据阵列包括用于在包括透镜(例如,用于增加虚拟现实显示装置的视场)的虚拟现实显示装置上显示的图像数据阵列,并且所述图像数据阵列在经由所述透镜显示之前根据描述所述透镜的曲率的变换来修改。此修改可具有“拉伸”图像的效果,并且可在被拉伸的图像的区域中引起可见混叠。
因此,在实施方式中,与所述变换有关的信息被与所述元数据一起用于确定生成所述第二输出数据阵列时对所述数据块中的数据进行采样的速率或样本计数。优选地,相对较高的速率或样本计数被用于(要被)拉伸的所述第二输出数据阵列的区域(并且反之亦然)。这被优选地完成,使得如通过所述透镜呈现给用户的最终图像在整个图像上有恒定或接近恒定的像素大小。这将具有在图像中减少或避免可见混叠的效果,而不用例如在整个图像增加采样速率或样本计数(这例如在计算能力、带宽和功耗方面可能是昂贵的)。
在这些实施方式中,在第二输出数据阵列被生成(渲染)和写入缓冲器(例如,帧缓冲器)后修改所生成的第二输出数据阵列将是可能的。另选地,所述修改可以与生成(渲染)集成在一起,例如使得然后将无需在修改未经修改的图像或发送经修改的图像以用于显示之前将未经修改的图像写入缓冲器。如本领域技术人员将了解的,这然后可以进一步降低系统的功率和带宽要求。
在一个这种实施方式中,所述输出缓冲器包括G-buffer,并且所述数据块在(延期着色)解决循环中被用于生成所述第二输出数据阵列。在修改所述第二输出数据阵列(例如,根据如以上所描述的变换)并且然后向前传递以用于显示之前将第二输出数据阵列写入缓冲器(例如帧缓冲器)是可能的。然而,更优选地,(延期着色)解决循环和所述修改被集成在一起,例如使得无需在修改未经修改的图像并且发送经修改的图像以用于显示之前将未经修改的图像写入所述缓冲器。
尽管已经在对单个数据块进行处理方面描述了上述方面和实施方式,但是应当了解,它们能被(并且优选地被)应用于例如所述数据阵列的多个数据块(优选地,在逐块的基础上)。一旦处理了要处理的数据阵列中的每一个数据块,就可针对要处理的下一个数据阵列等重复本发明的处理。
本发明可以用任何适合的系统来实现,诸如适当地配置的基于微处理器的系统。在一些实施方式中,本发明用计算机和/或基于微处理器的系统实现。
可以按照任何期望且适合的方式执行本发明的各种功能。例如,视需要而定,本发明的功能可以用硬件或软件实现。因此,例如,本发明的各种功能元件和“装置”可包括可操作来执行各种功能等的一个或多个适合的处理器、控制器、功能单元、电路、处理逻辑、微处理器布置等,诸如适当地专用的硬件元件(处理电路)和/或可以被编程来按照所期望的方式操作的可编程硬件元件(处理电路)。类似地,要显示窗口的显示器可以是任何适合的显示器,诸如电子装置的显示屏、计算机的监视器等。
这里还应该注意,如本领域技术人员将了解的,可在给定处理器上并行地复制和/或执行本发明的各种功能等。同样,如果需要,各种处理级可共享处理电路等。
本发明优选地用便携式装置实现,诸如并且优选地为移动电话或平板。
本发明适用于任何适合形式或配置的图形处理器和渲染器,诸如具有“流水线式”渲染布置的处理器(在此情况下,渲染器将是渲染流水线的形式)。它特别适用于基于拼贴的图形处理器、数据处理系统、组合引擎和组合显示控制器。
本领域技术人员还应当了解,本发明所描述的全部实施方式可以恰当地包括本文所描述的本发明的优选和可选特征中的任一个或更多个或全部。
可至少部分地使用软件(例如,计算机程序)来实现根据本发明的方法。因此将看到,当从另外的实施方式看时,本发明提供了特别适于当被安装在数据处理装置上时执行本文描述的方法的计算机软件、包括用于当程序元素在数据处理装置上运行时执行本文描述的方法的计算机软件代码部分的计算机程序元素、以及包括适于当程序在数据处理系统上运行时执行本文描述的一个或多个方法的所有步骤的代码装置的计算机程序。所述数据处理系统可以是微处理器系统、可编程FPGA(现场可编程门阵列)等。
本发明还扩展到包括这种软件的计算机软件载体,所述软件在被用于操作包括数据处理装置的图形处理器、渲染器或其它系统时,与所述数据处理装置相结合地使所述处理器、渲染器或系统执行本发明的方法的步骤。这样的计算机软件载体可以是诸如ROM芯片、CD ROM、RAM、闪速存储器或磁盘的物理存储介质,或者可能是诸如电线上的电信号、光学信号或诸如到卫星的无线电信号等的信号。
还应当了解,并非本发明的方法的所有步骤需要由计算机软件执行,并且因此根据更广泛的实施方式,本发明提供计算机软件和安装在计算机软件载体上以用于执行本文所详述的方法的步骤中的至少一个的这种软件。
本发明可因此适当地作为计算机程序产品被具体实现以用于与计算机系统一起使用。这样的实施方式可包括固定在有形非瞬时介质上的一系列计算机可读指令,所述有形非瞬时介质诸如计算机可读介质,例如,磁碟、CD ROM、ROM、RAM、闪速存储器或硬盘。它还可以包括经由调制解调器或其它接口装置、通过有形介质(包括但不限于光学或模拟通信线路)或者无形地使用无线技术(包括但不限于微波、红外线或其它传输技术)可传送到计算机系统的一系列计算机可读指令。该系列计算机可读指令具体实现本文先前描述的功能性中的全部或一部分。
本领域技术人员应当了解,这样的计算机可读指令可以用与许多计算机架构或操作系统一起使用的许多编程语言编写。此外,这样的指令可使用目前或将来的包括但不限于半导体、磁或光学的任何存储器技术存储,或者使用目前或将来的包括但不限于光学、红外线或微波的任何通信技术发送。设想这样的计算机程序产品可作为可移动介质随着所附的打印或电子文档(例如,收缩包装软件)分发,例如随着计算机系统预先加载在系统ROM或固定磁盘上,或者通过网络(例如,因特网或万维网)从服务器或电子布告板分发。
附图说明
现在将仅通过示例并且参照附图描述本发明的许多优选实施方式,附图中:
图1示意性地示出了可以根据本发明所描述的实施方式操作的示例性数据处理系统;
图2示意性地示出了可以根据本发明所描述的实施方式操作的示例性显示控制器;
图3A和图3B示出了例示根据本发明的实施方式的数据处理系统的操作的流程图;
图4和图5示出了可以根据本发明所描述的实施方式操作的针对拼贴的边缘检测的处理;
图6示意性地示出了可以根据本发明所描述的实施方式操作的另一个示例性数据处理系统;以及
图7示出了例示根据本发明实施方式的图形处理流水线的操作的流程图。
具体实施方式
图1示意性地示出了可执行本发明的基本操作的示例性数据处理系统1。
如图1所示,数据处理系统1包括片上系统(SoC)2,SoC 2包括CPU 3、GPU 4、视频处理引擎(视频引擎)5、显示控制器6和存储器控制器7,它们经由互连8通信并且全部可以访问片外存储器9。在此实施方式中,显示控制器6本身是可以且操作执行图像处理的显示控制器。显示器10本身与SoC 2和片外存储器9分离。
在图1所示的实施方式中,GPU 4和视频引擎5分别包括压缩器(压缩引擎)(以及对应的解压缩器)11和12,用于对要以压缩形式存储在存储器中的数据(例如帧)进行编码(压缩)。因此,显示控制器6包括用于对数据(例如,要显示的帧)进行解压缩的解压缩器13。
(如果需要,可通过其它方式提供生成的帧的压缩和解压缩。例如,代替GPU 4和视频引擎5等(包括压缩引擎),可以在系统中提供从帧生成器接收帧并且在将它们写入存储器之前对它们进行压缩以及从存储器相应地读取帧并且在将它们提供给例如显示控制器之前对它们进行解压缩的单独的压缩和解压缩引擎。)
根据本实施方式,要显示的帧是通过例如由GPU 4或视频引擎5适当地渲染而按照需要生成的。生成的帧然后以压缩的形式存储在片外存储器9内的帧缓冲器中。
图2示意性示出可根据本发明描述的实施方式操作的示例性数据显示控制器6。
如图2所示,显示控制器6包括总线接口14,压缩帧(的拼贴)被从帧缓冲器读入总线接口14中。压缩拼贴缓冲器15从总线接口14接收压缩帧(的拼贴)。元数据提取器16被布置成从压缩拼贴缓冲器15中的压缩帧(的拼贴)提取元数据并且将该信息传递给状态机17。解压缩器18(例如,图1所示的解压缩器13)还与压缩拼贴缓冲器15进行数据通信并且从压缩拼贴缓冲器15接收压缩帧(的拼贴)。
未压缩拼贴缓冲器19然后从解压缩器18接收经解压缩的压缩帧(的拼贴)。边缘检测处理20被布置成检测拼贴之间的边缘并且将检测结果传递给状态机17。取决于系统,状态机17可以根据正被处理的像素是否在拼贴的周边上或根据元数据的值来选择性地启用或禁用边缘检测逻辑。
图像处理器21从未压缩拼贴缓冲器19接收未压缩帧(的拼贴),并且从状态机17接收元数据和边缘检测的结果。锐化处理22、平滑处理23和复制处理24被布置成对来自未压缩拼贴缓冲器19的未压缩帧(的拼贴)起作用,同时图像处理器21还从状态机17接收信息。未压缩帧(的拼贴)一旦通过图像处理器21就由已处理拼贴缓冲器25接收。
然后,像素输出格式化器26接收已处理的帧(的拼贴)并且输出显示像素,所述显示像素从显示控制器6连同来自显示定时模块27的显示定时一起输出。
图3A和图3B示出了例示根据本发明实施方式的数据处理系统的操作的流程图。
现在将参照图3A和图3B的流程图描述图1和图2所示的实施方式的操作。
对于已被生成并且正被保持在片外存储器9内的帧缓冲器中的要显示的帧(数据阵列)中的各个压缩拼贴(数据块),首先通过显示控制器6经由总线接口12将拼贴从帧缓冲器取出(读取)到显示控制器6内的压缩拼贴缓冲器15中(步骤101,图3A)。一旦压缩的拼贴被存储在压缩拼贴缓冲器15中,就可以通过元数据提取器16从压缩的拼贴提取元数据(步骤201,图3B)。如将在下面所描述的,此元数据被传递给状态机17以在稍后的拼贴处理中使用。
使用来自压缩拼贴缓冲器14的压缩的拼贴,解压缩器17将该拼贴解压缩(步骤102,图3A)并且将它写入未压缩拼贴缓冲器19。边缘检测处理20然后从未压缩拼贴缓冲器19读取未压缩的拼贴并且例如使用存储在状态机17中的元数据来检测该拼贴和任何邻近拼贴的周边处的像素之间的颜色边缘(步骤103,图3A),监测结果被传递给状态机17以在处理拼贴的边缘像素时使用。
图4示出了例如可根据本发明实施方式处理的多个邻近拼贴,这些拼贴现在将用于描述边缘检测处理20。
图4示出了形成用于显示的帧的一部分的拼贴28,并且拼贴28被标记有表示它在该帧内的位置的索引(x,y)。围绕拼贴28的是四个相邻的拼贴29、30、31、32,分别被标记为索引(x-1,y)、(x,y-1)、(x+1,y)、(x,y+1)。各个拼贴28、29、30、31、32是八乘八的正方形,使得对于每对相邻的拼贴,中央拼贴28周边处的八个像素(例如,标记为33)与拼贴29、30、31、32周边处的相邻的八个像素(例如,标记为34)相邻。(拼贴的此形状和尺寸是仅为了例示的目的给出的;对于本发明的实施方式来说,拼贴的其它形状和尺寸是可能的。例如,在优选实施方式中,拼贴是正方形并且具有十六乘十六个像素的大小)。
因此,在图4中的中央拼贴28的周边的每一侧的八个像素与四个相邻的拼贴29、30、31、32中的每一个的八个像素之间执行边缘检测。对于拼贴中的给定像素来说,如果被检测为边缘(步骤104,图3A),则执行边缘增强操作(步骤105,图3A)。如果未检测到边缘,则执行平滑操作(步骤106,图3A),例如以便如果拼贴正被缩放则在颜色的小变化之间调和。
针对拼贴28的周边处的每一个像素重复相同的处理(步骤107,图3A),直到已经分析了所有边缘像素为止(步骤108,图3A)。
未压缩的拼贴也被从未压缩拼贴缓冲器19读取到图像处理器21中。使用由元数据提取器16从状态机17中提取的元数据,图像处理器21确定拼贴中的所有像素是否是相同的颜色(步骤202,图3B)。如果拼贴中的像素是相同的颜色,则图像处理器中的复制处理24用于例如根据最终输出显示所必需的缩放来跨越整个拼贴复制这种颜色(步骤203,图3B)。
如果元数据指示拼贴中的像素并不全部是相同的颜色,则图像处理器21确定拼贴中是否存在一个或更多个边缘(步骤204,图3B)。如果拼贴中不存在边缘,则通过图像处理器21的平滑处理23对拼贴中的像素执行平滑操作(步骤205,图3B)。(注意,对于这样的拼贴已经确定了像素并不全部是相同的颜色(步骤202,图3B)。因此,拼贴具有像素的颜色的某种变化(尽管不足以构成边缘),例如如果正在缩放拼贴,则在输出拼贴以显示之前对所述变化执行平滑操作。)
如果元数据指示拼贴内存在边缘(即,已经分析了拼贴的边缘像素以确定它们是否构成边缘(步骤103,图3A)),则分析元数据和/或内部像素本身(例如,使用二乘二边缘检测操作)来检测边缘(即,这个影响的拼贴的内部像素)的位置(步骤206,图3B)。
图5示出了示例的八乘八拼贴35。参照图5,内部像素是拼贴35中的三十六个中央像素,其中,边缘可存在于这些像素中的一个与任何其它邻近的内部像素或围绕该拼贴的周边的像素中的一个之间,例如如图4所示。针对被确定为对边缘作出贡献的各个像素(步骤207,图3B),通过图像处理器21的锐化处理22对拼贴中的这些像素执行边缘增强操作(步骤208,图3B)。
针对拼贴的所有其它内部像素(即,不对边缘作出贡献的那些像素),通过图像处理器21的平滑处理23对拼贴中的这些像素执行平滑操作(步骤209,图3B)。必要时对于拼贴中的各个内部像素重复平滑和边缘增强的处理(步骤210,图3B),直到已经分析了拼贴中的所有内部像素为止(步骤211,图3B)。
然后对帧中的下一个拼贴执行以上参照图3A和图3B描述的所有步骤(步骤212,图3B),直到已经处理了所有拼贴(步骤213,图3B)以使得完成了所述帧(步骤214,图3B)为止。经处理的拼贴被写入已处理拼贴缓冲器25,从那里像素输出格式化器26通过修改用于显示的输出来对经处理的拼贴的像素进行格式化。例如,在内部数据可具有24位RGB格式,然而显示器仅可以按照6位RGB格式操作。然后,格式化的像素连同由显示定时模块27生成的显示定时信息一起从显示控制器6输出。显示定时信息包括显示器所需要的定时脉冲并且控制何时从显示控制器输出像素。
然后,针对要显示的后续帧重复这个整个过程(因此显示控制器6将取出要显示的新的帧并对要显示的新帧执行显示修改以提供新的数据帧以用于显示等)。
本发明的实施方式可以用提供帧以用于显示的任何期望形式的数据处理系统实现。因此它们例如可以被用在其中使用了集中式压缩器和/或解压缩器的系统中(并且作为SoC 2的组件与片外存储器9之间的媒介)。这与每个帧生成器都包括单独的压缩器和/或解压缩器(11、12和13)的布置相反。
另外,应当理解,尽管图1的布置示出了仅两个帧生成器(GPU 4和视频引擎5),但是本发明的数据处理系统可以恰当地包括任意数量(和类型)的帧生成器。
图6示意性地示出了与图1所示的数据处理系统类似的示例性数据处理系统51,该数据处理系统51也可以执行本发明的基本操作。
除包括片上系统52上的全部可访问片外存储器58并且经由互连58通信的CPU53、GUP 54、视频处理引擎(视频引擎)55、显示控制器56和存储器控制器57之外,图6所示的数据处理系统51与图1所示的数据处理系统1的不同之处在于:数据处理系统51包括与显示控制器56分开的图像处理器60。如在图1的数据处理系统1中一样,对于图6的数据处理系统51,显示器61本身与SoC 52和片外存储器59分开。
在图6所示的实施方式中,与图1所示的实施方式类似,GPU 54、视频引擎55和图像处理器59分别包括压缩器(压缩引擎)(与对应的解压缩器)62、63和64,以对要以压缩形式存储在存储器中的数据(例如帧)进行编码(压缩)。因此,显示控制器56包括用于对数据(例如,要显示的帧)进行解压缩的解压缩器65。
至于图1所示的实施方式,根据本实施方式,要显示的帧是视需要而定通过例如GPU 54或视频引擎55适当地渲染而生成的。所生成的帧然后被以压缩形式存储在片外存储器59内的帧缓冲器中。
对于图1实施方式来说,图6所示的实施方式的操作与以上参照图3A、图3B、图4和图5所描述的操作非常类似。唯一差别是单独的图像处理器60,图像处理器60从帧缓冲器读取帧的压缩的拼贴并且使用元数据执行以上所描述的边缘检测、重复和平滑处理。因此,将此实施方式与图2所示的组件相比,该图像处理器尤其包括解压缩器18(例如,图6所示的解压缩器64)、状态机17、图像处理器21、边缘检测处理20、压缩拼贴缓冲器15和未压缩拼贴缓冲器19以及关联的图像处理器逻辑。
经处理的拼贴然后被写入处理拼贴缓冲器,从那里它们由显示控制器56读取。在此实施方式中,显示控制器56因此依靠图像处理器60执行图像处理,而不是自己执行处理。
显示控制器56包括像素输出格式化器,像素输出格式化器对经处理的拼贴的像素进行格式化并且将格式化的像素连同来自显示定时模块的显示定时信息一起从显示控制器56输出。
如以上所讨论的,在优选实施方式中,通过将表示要显示的帧的特定区域的压缩数据块写入输出缓冲器从而将数据存储在输出缓冲器中,从输出缓冲器读取表示要显示的帧的特定区域的压缩数据块,从压缩数据块获取元数据,并且对数据块进行处理,其中,元数据被用于影响数据块的处理。
申请人还认识到,本发明适用于和可用于许多其它布置。
这是因为当处理较大的这种数据阵列(诸如来自相机、视频流、纹理图、图形缓冲器和帧缓冲器等的图像)(例如,包括图像数据(包括但不限于RGB、RGBA、sRGBA、YUV等),或其它形式的抽象数据(包括但不限于深度值、表面法线向量、地形图元素、亮度值、切空间数据或距离场数据等))时,情况常常是“熵”(即,感兴趣区域)的量跨越阵列大大地变化。
许多图形、GPU计算或高性能计算问题终归为函数或内核在这种数据阵列上的应用。通常,当对数据阵列进行处理时,将函数或内核应用于阵列内的所有数据元素,其中,仅最低限度地关注数据所展现的属性,而不是在数学上对于数据的所有可能值来说都可行的函数或内核。
这种蛮干方法已受到如果函数或内核变得发散(即如果它包含循环或分支)则台式GPU的性能迅速地衰减的事实启发,因为阵列的数据元素通常按照2×2(或更多)个元素(“四边形”)的子阵列进行处理,其中针对子阵列的各个数据元素在锁定步骤中执行针对各个2×2子阵列的内核实例。在子阵列的一个或更多个数据元素以代码中的发散行为为特征的情形下,发散数据元素的评估变得序列化,从而迅速地减少吞吐量。因此,内核或函数具有“始终执行”配置文件是常见的。然而,这导致冗余计算被执行。
对数据阵列进行“预处理”以发现熵将是可能的,但是这将需要附加循环和附加资源(例如在计算、内存占用和带宽方面)。此外,这些循环的成本随着阵列大小增加而增加。
尤其对于移动或低电力系统来说和/或在阵列数据可包含具有高度可变的“熵”的区域的情形下,这些方法是效率低的(例如,在计算、存储器占用和带宽方面)。
代替必须对数据阵列的所有元素进行处理,本发明的优选实施方式可便于包含低熵或无熵的区域的早期拒绝,从而能减少计算和带宽并且因此改进性能、减少电力并且总体上增加系统级效率。
如以上所讨论的,AFBC编码处理和ASTC编码处理的“副作用”之一是产生了与包含在数据块内的“频带”有关的元数据。能利用此信息以便使得对数据阵列进行处理的系统它可以消除具有低熵或无熵的阵列的区域的处理。能使用相同的机制和/或基于特定处理操作(的属性)动态地确定用于消除这种处理的熵阈值。
因此,本发明的优选实施方式利用AFBC压缩方案和ASTC压缩方案的作为编码处理的副作用的特征,并且如此自动地发生并且无需阵列的附加处理。
如以上所讨论的,本发明能被应用于许多布置。
例如,本发明能被应用于图像处理或机器视觉布置,例如用于特征或边缘提取。
在一个这种实施方式中,在机器视觉/图像处理系统中,由图像信号处理(ISP)子系统捕获和准备传入的图像,并且对表示图像的阵列进行例行的(AFBC)编码以在呈现给系统的其余部分之前减少内部系统带宽和外部系统带宽。一旦被编码为AFBC表示,对图像进行处理以便提取特征信息的系统就可以在逐块的基础上查询数据阵列是否包含感兴趣的频带。例如,对于边缘检测,系统可以寻找高级别的高频数据。可以绕过仅包含低频或DC数据分量的区域,从而避免处理将导致无利益并且将有效地浪费计算资源、功率和带宽的图像阵列。
本发明可应用于其它图像处理或机器视觉布置,诸如3D图像从多个2D图像的立体重建。
在一个这种实施方式中,可以使用指示数据块中的数据的变化的元数据来确定该数据块和/或一个或更多个其它数据块是否可用于立体重建。例如,可以将来自第一2D图像数据阵列的数据块的元数据与来自另一个2D图像数据阵列的另一(对应的)数据块的元数据进行比较。如果两个数据块的元数据相同或足够相似,则可确定两个数据块都不可用于3D图像的立体重建,所以可省略或减少这些数据块的处理。
还可以在图形布置中(诸如在自适应G-buffer“解决”循环评估中)应用本发明。
在所谓的“延期着色”中,3D图形序列的渲染中的复杂处理被延迟,直到已经解决了所有可见性、照明/阴影贡献之后为止。这避免了对部分地或完全地遮挡的对象的冗余处理。中间数据通常被存储在被称为多个渲染目标(MRT)的两个或更多个(例如,至少深度和中间数据)数据阵列中,其中各个阵列表示数据(深度、光源遮罩、表面法线、暗度排序等)的子集并且统称为G-buffer。解决循环通过消耗(使用)G-buffer中的一个或更多个子阵列或渲染目标来生成最终图像,例如用于呈现给显示子系统。
在优选实施方式中,本发明被应用于解决循环以便通过针对解决循环中的处理步骤中的一个或更多个来对元数据进行评估以确定给定区域是否包含低熵或无熵而绕过G-buffer的特定部分的处理。
还可以对体积数据的自适应评估应用本发明。
在图形渲染中,对体积形式的渲染可能是昂贵的并且因此常常被避免或限制。然而,针对特定类型的处理(诸如光线投射、粒子效果等),在体积空间中表示数据可能是非常有用的。
本发明的技术可应用于体积数据以便提高处理这种体积形式的效率。在此情况下,各个数据块将表示体积形式的区域(而不是二维图像的区域),诸如立方体等。个别的体积形式可被组合在一起以形成更大体积或层次的体积形式,诸如超立方体等。
这种体积形式或层次体积形式常常可包括数据的相对稀疏区域。因此,根据实施方式,通过利用在对体积形式的区域进行编码时创建的元数据,可迅速地消除不需要处理的体积形式的区域。此外,通过分层次地应用同一技术,可迅速消除层次体积形式的整个区域。
这些技术还适用于计算机视觉系统,其中,一个或更多个图像的体积表示导致体积数据或分层次体积数据。这些系统可包括一个或更多个深度扫描和/或可见或不可见光图像传感器。所收集的深度或图像数据被组合以产生这些图像的体积表示。可以在体积数据被用作另一处理级的输入的情况下应用本发明的技术,例如以减少对体积数据的相对稀疏区域进行处理所需要的资源。
本发明还能被用于通过动态可变速率片段评估的自适应G-buffer创建。根据优选的这种实施方式,例如出于避免过处理的目的,可使用本发明的元数据来驱动动态可变速率片段评估。
可变速率片段评估是避免基于与下层渲染目标的1:1:关系或通过使用流行的图形API中的抗混叠速率控件设置的目标缓冲器的子像素样本定义控制的1:N关系按照固定速率对片段进行评估的正常实践的技术,而是手动控制对应用的评估或着色器。通常,定义了三个离散级别,即“粗着色器”、“片段”和“子片段”评估,分别表示N×N个片段、单个片段以及然后N×N个子片段的固定区域。这些通常是在发出各个绘图调用之前在运行时定义的。
G-buffer内容通常是从例如描述场景中的对象的表面细节或材料成分的不同方面的数据阵列(纹理)构建的。被用于表示G-buffer中的基本对象信息的这些阵列然后被着色器程序采样。各个对象可具有与它相关联的多个阵列并且可以可变频率(速率或样本计数)进行采样,所述可变频率(速率或样本计数)可能取决于运行时条件(例如,对象在场景中多大、应用的效果等)。
根据优选实施方式,这些阵列中的元数据(例如,在用ASTC格式编码时)可以被利用于动态地驱动“粗”评估、“片段”评估和“子片段”评估的速率。可将三个静态速率评估折叠(collapse)成包括速率控制部分以及适当的粗部分、片段部分和子片段部分的单个着色器。通过对将由粗补片覆盖的样本区域的元数据进行评估,速率控制着色器可基于元数据的频带来确定应评估多少其它片段和子样本代码段的迭代。
例如,如果区域对包含表面法线(表面法线仅包含低频信息(即,正常数据的变化非常小))的源阵列进行采样,则特定类型的处理可被绕过并且仅在存在高频数据的情况下被触发。这使得计算资源要花费在G-buffer目标内的附加熵的生成上,而不是花费在遍及粗样本区域将主要决定相同或不变值的冗余计算上。
还可以取决于源阵列样本区域中的频率信息来扩展此布置以包括按照不同速率评估的多个子段。
如果在生成输出阵列时对来自具有关联的元数据的多个下层数据阵列的多个数据源进行采样,可针对各个源单独地设定采样率以及因此评估速率。如果在生成输出阵列时对多个数据阵列(纹理)进行采样,各个采样的数据阵列可使用它自己的确定的速率或样本计数加以采样,或者单个速率或样本计数可被用于多个或全部经采样的纹理。该(单个)速率或样本计数例如可以是针对多个采样的阵列中的每一个确定的速率或样本计数的平均值(中值、模式、均值等),或确定的最高速率或样本计数。
此外,可根据着色器的来自下层阵列的输入针对着色器中的各个处理步骤来选择采样率或计数(例如,粗采样、片段采样或子片段采样)。在两个不同的处理步骤出于不同的目的访问同一数据阵列的情况下,它们可使用不同的采样速率或样本计数,例如在处理步骤对于频率元数据具有不同的灵敏度的情况下。
本发明还可以应用于动态自适应抗混叠。
根据一个这种实施方式,可利用相同的机制来避免基于着色器的混叠问题。着色器混叠(即,主要由随着对比的邻近像素从帧到帧在量子化状态之间切换时对比邻近像素的高量子化引起的视觉扰动)通常在下层采样的纹理阵列欠采样或在两个样本之间的边界条件上时发生。可能在经采样的区域中的小改变能在输出结果中给出大改变的情形下(诸如当渲染镜面高光时)发生着色器混叠。
根据实施方式,可在速率控制着色器中使用元数据,使得如果存在高级别的高频信息,则拒绝更多的子样本迭代。结果可被组合以使从帧到帧的过渡平滑。这可减轻不能容易地由一般的抗混叠系统(MSAA)解决的与在片段着色器程序内用于混叠的多个原点相关联的问题,而不引起系统的高昂成本,诸如对于移动装置不可取的超级采样或时间抗混叠。
此实施方式还允许所使用的子样本的数量的动态自适应。例如,一些情形可能仅需要2×2网格或子样本,一些情形可能需要多达16×16的子样本网格,而一些情形根本没有子样本。这使得高水平的图像质量可以被以最小开销高效地维持。
本发明的技术还可以应用于立体抗混叠。
在立体渲染中,渲染两个图像,一个用于左眼并且一个用于右眼。针对左眼图像和右眼图像的渲染根据与视点有关的变换而不同。所述变换描述如由各个眼睛相对于它在头骨内的位置所看见的图像。由各个眼睛看见的两个图像之间的差异由大脑处理以创建深度感。这种立体渲染(即,旨在被视为立体对的两个单独图像的产生)当连同本发明的技术一起使用时,可产生进一步混叠问题,因为变换可能引入对于左图像和右图像将做出不同的自适应混叠判定的可能性。
因此,根据实施方式,各个立体渲染目标片段的渲染被评估为立体对。也就是说,左图像和右图像的对应片段被一起评估。使用元数据的可变速率片段评估技术被用于消除如上所述的混叠赝像。然而,在这种情况下,通过在立体对之间对齐采样速率或样本计数确定来补偿跨越立体对的元数据中的任何差异,所述差异将导致不同的动态子像素评估(从而引起混叠赝像)。也就是说,针对各个立体对的各个片段使用相同的采样速率或样本计数。在这些实施方式中,可以使用确定的最大采样速率或样本计数,或者可使用平均值(例如均值、中值、模式等)。
本发明还可以应用于图像数据的自适应处理应用以用于虚拟现实显示。
当渲染用于在包括凸透镜(用于增加视场和用户的沉浸感)的虚拟现实显示装置上显示的图像时,图像通常像正常那样被渲染,例如用于显示在标准的二维图像显示装置上,并且然后对经渲染的图像应用附加步骤以对透镜负责。通常,在图像被输出之前向图像应用变换以便将图像有效地投射到描述虚拟现实显示装置中的透镜的曲率的半球上。此投射在原始图像与最终显示装置图像中的渲染的像素之间创建了非线性关系。这可能使图像看来被“拉伸”,并且可在通过透镜查看时例如在图像周边引起关联的条带(banding)问题(由于超过诸如线性内插等的标准纹理滤波技术的能力的投射而导致)。这还能在用户的习惯于感觉运动的视觉的部分中引起视觉像差或混叠效果。即使当所显示的图像正在相对缓慢地移动时,这些像差的组合效果也能增加用户感受晕动病的机会。
这些问题例如可通过增加原始图像的分辨率来解决。然而,此技术在计算和功耗方面的成本相对较高。
根据本发明的实施方式,在可变速率片段评估技术中将投射与元数据一起考虑在内。例如,可自适应地增加片段评估、子片段评估和粗片段评估以消除混叠效果。相对高的速率或样本计数可用于图像的将被拉伸的区域(并且反之亦然),例如使得通过透镜呈现给用户的最终图像在整个图像上具有恒定或接近恒定的像素大小。这将具有减少或避免图像中的可见混叠的效果,而不必在整个图像上增加采样速率或样本计数,并且可按照更高效的方式减少或避免上述问题。
对于在图像被渲染并写入缓冲器(例如帧缓冲器)之后将变换应用于图像,并且然后将变换的图像传递给显示器以用于显示来说将是可能的。另选地,所述变换可以与渲染步骤或G-buffer解决循环集成,例如使得在修改未经修改的图像并且发送经修改的图像以用于显示之前不必在那时将未经修改的图像写入缓冲器。如本领域技术人员将了解的,这可以进一步降低系统的功率和带宽要求。
图7示出了例示根据各种实施方式的图形处理流水线的操作的流程图,其中实现了使用元数据的可变速率片段评估技术。
图7示出了针对图形处理输出(例如要显示的帧)的给定绘图调用的一系列操作,并且因此相应地在开始下一个绘图调用的处理的点处开始(步骤300)。
对于各个绘图调用,定义了相应的一组顶点数据301,所述顶点数据定义要用于绘图调用的顶点。在本实施方式中,要处理的各个对象由各自表示所讨论的对象的区域的一个或更多个“补片(patch)”表示,其中,相应的补片各自被定义并且具有与之相关联的绘图调用的相应的一组顶点(例如定义相应补片的角部)。补片通常是诸如三角形或四边形的简单多边形的形式。
用于绘图调用的顶点数据301由顶点着色器处理,以将顶点的虚拟三维位置变换为它们在屏幕空间中的二维位置(步骤302)。一旦对顶点进行了处理,就将经过处理的顶点数据303组合成表示要显示的对象的区域的补片(步骤304)。
一旦完成顶点处理,然后就确定是否已为绘图调用启用了镶嵌(步骤305)。如果尚未启用镶嵌,则处理直接进行到图元装配(primitive assembly)级(步骤311)。
如果已经启用了镶嵌,则处理中的下一级是在外壳着色器中执行镶嵌控制/外壳着色(步骤306)。此镶嵌控制/外壳着色级的输入是指示要针对绘图调用处理的对象的补片的补片数据304,可选地与经由元数据读取器308的位移图元数据307一起。外壳着色器可使用元数据307来确定是否在各个补片内镶嵌附加的顶点和图元并且把附加顶点和图元镶嵌在各个补片内到什么程度,即,是否在补片内创建附加的多边形顶点(步骤306)。
一旦生成了任何附加的多边形顶点,就将它们传递给评估着色器。评估着色器可以可选地移动原始多边形顶点和附加多边形顶点二者的位置(步骤309)以生成后镶嵌顶点数据310。
后镶嵌顶点数据310(即,可选地与被移动到它们新的位置的附加多边形顶点)然后被传递给图形处理流水线的下一级以便渲染对象以输出。
接下来,使用后镶嵌顶点数据310和后顶点着色顶点数据303来装配将组成所讨论的对象的区域并且针对所讨论的对象的区域被处理的图元(步骤311)。然后存储“装配的”图元数据312。
如果启用了几何着色(步骤313),则几何着色器取得图元数据312并且必要时创建新的几何(图元)(步骤314)。
如果几何着色器创建附加图元,则它们被重新装配(步骤315),所有得到的图元(例如,如果未使用几何着色器则没有附加的图元)被传递给光栅化器以光栅化(316)。
光栅化处理确定应该被用于图元的样本位置(即,要用于表示输出(例如,要显示的帧)中的图元的样本点的(x,y)位置)。
图形处理流水线的光栅化级操作以将组成渲染输出(例如要显示的帧)的图元光栅化成个别的图形片段以处理。为此,光栅化器接收图形图元以渲染,将图元光栅化为采样点并生成具有适当的位置(表示适当的采样位置)的图形片段以渲染图元。
由光栅化器生成的片段然后被向前发送给片段着色器以渲染(着色)(步骤317)。片段着色器操作以确定各个片段的适当的数据值(例如颜色),即,以便生成一个或更多个输出数据阵列328(例如用于显示的帧等)。
在片段着色器中,一个或更多个压缩数据阵列318可被采样并且在为各个片段确定适当的数据值(例如颜色)时使用。一个或更多个压缩数据阵列318可包括例如图像数据、纹理数据、G-buffer数据等(如上所述)。如图7所示,一个或更多个压缩数据阵列318可例如由图像信号处理器319、视频处理单元(VPU)320或图像传感器321生成,但是其它布置也将是可能的(如上所述)。
在本实施方式中,指示数据的变化的元数据由元数据读取器322从各个采样的压缩数据阵列318提取(如上所述)。元数据然后用于确定当为各个片段确定适当的数据值(例如颜色)时应该对压缩数据阵列318进行采样的采样速率或样本计数(步骤323)。
在本实施方式中,可取决于元数据选择子片段采样速率324(即,在针对各个片段对数据阵列进行多次采样的超级采样或多重采样速率)、片段(1:1)采样速率325(即,在针对各个片段从数据阵列对单个对应的数据元素或区域进行采样的情况下)和/或粗片段采样速率326(即,针对多个片段对数据阵列的单个样本进行采样的情况下)。例如,在元数据指示要采样的数据中的变化相对较小(例如,要采样的数据包括相对较低频率分量或仅“DC”数据)的情况下,可使用粗采样326来对数据进行采样。在元数据指示要采样的数据中的变化相对较大(例如,要采样的数据包括相对更高频率分量)的情况下,可使用子片段采样324(超级采样或多重采样)来对数据进行采样。在元数据指示要采样的数据中的变化有某个中间值的情况下,可使用片段(1:1)采样325来对数据进行采样。
如上所述,这个使用指示经采样的数据阵列中的变化的元数据的布置代表了驱动可变速率片段评估技术的特别方便且高效的机制。
来自片段着色级的经渲染的片段然后可以可选地由像素处理器处理,以例如对经渲染的片段进行下采样以为将实际上被输出(例如显示)的像素提供渲染的像素数据(步骤327)。像素数据然后可例如在被发送以用于经由显示管道显示(步骤329)之前作为一个或更多个输出数据阵列328输出到主存储器(例如帧缓冲器)以显示。
如图7所示,在输出数据阵列本身被压缩的情况下,来自输出数据阵列328的元数据可以可选地由元数据读取器330读取并反馈给片段着色器317。
例如,在使用多个渲染循环(诸如在如以上所描述的延期着色中)生成“最终”输出数据阵列的情况下,一个或更多个“中间”输出数据阵列328(例如,G-Buffer)可通过第一渲染循环来生成,并且然后在后续渲染循环中用作数据源。在这种情况下,来自一个或更多个“中间”输出数据阵列328的元数据可被用于影响一个或更多个“中间”输出数据阵列328的处理(如上所述)。
在基于拼贴的系统中,还将可以在正在生成输出数据阵列328时读回一个或更多个输出数据阵列328的内容(例如,完成的拼贴)。在这些情况下,可以实时地生成元数据,或者可以在输出阵列更新阶段之间完成元数据的生成。
同样如图7所示,由元数据读取器330读取的来自输出数据阵列328的元数据还可以或另选地用于影响显示管道329。例如,在抗混叠被集成到例如以上所描述的虚拟现实显示器和立体抗混叠实施方式中的显示硬件中的情况下,将会是这种情况。当在显示管道中应用固定函数过滤器或类似处理时还可以或另选地使用这个。
可从上文看到,至少在优选实施方式中,从压缩的数据块提取的元数据可以用于帮助数据块的处理,例如以使它们准备好显示。通过在数据块的后续处理期间使用元数据,所需的图像处理量以及所消耗的功率被减小,或者另选地相同的电量可执行更复杂级别的处理。此外,本发明减小了需要被传送的数据的量,因为元数据可以被用于推理关于原始数据块(即在它们被压缩之前)的信息,因此避免了使用原始数据块的需要并且因此可以使用压缩数据块。

Claims (87)

1.一种操作数据处理系统的方法,该方法包括由所述数据处理系统执行的以下步骤:
形成图像或图形数据的输出阵列;
对表示图像或图形数据的所述输出阵列的特定区域的图像或图形数据块进行压缩,以产生压缩的图像或图形数据块,其中,作为所述对表示图像或图形数据的所述输出阵列的特定区域的图像或图形数据块进行压缩的步骤的一部分,创建元数据,或者其中,所述图像或图形数据是按照能够从所述压缩的图像或图形数据块提取出元数据的方式压缩的,并且其中,所述元数据包括表示图像或图形数据块中的图像或图形数据值的变化的信息;
通过将表示图像或图形数据的所述输出阵列的特定区域的所述压缩的图像或图形数据块写入所述数据处理系统的输出缓冲器,将图像或图形数据存储在所述输出缓冲器中;
从所述输出缓冲器读取表示图像或图形数据的所述输出阵列的特定区域的压缩的图像或图形数据块;
从所述压缩的图像或图形数据块获取元数据,其中,所述元数据形成压缩的图像或图形数据的一部分,或者其中,所述元数据是根据压缩的图像或图形数据确定的;以及
使用从所述压缩的图像或图形数据块获得的所述元数据来确定是否应对所述图像或图形数据块进行处理,
所述方法还包括:
当使用从所述压缩的图像或图形数据块获得的所述元数据确定应对所述图像或图形数据块进行处理时,所述数据处理系统通过对所述图像或图形数据块执行图像修改,对所述图像或图形数据块进行处理。
2.根据权利要求1所述的方法,其中,从所述压缩的图像或图形数据块获得的所述元数据被用于影响针对所述图像或图形数据块的所述图像修改。
3.根据权利要求1或2所述的方法,该方法还包括以下步骤:使用从所述压缩的图像或图形数据块获得的所述元数据来确定是否应对一个或更多个其它图像或图形数据块进行处理,
所述方法还包括:
当使用从所述压缩的图像或图形数据块获得的所述元数据确定应对所述一个或更多个其它图像或图形数据块进行处理时,所述数据处理系统通过对所述一个或更多个其它图像或图形数据块执行图像修改,对所述一个或更多个其它图像或图形数据块进行处理。
4.根据权利要求1或2所述的方法,该方法还包括以下步骤:
对所述压缩的图像或图形数据块解压缩,并且通过对解压缩的图像或图形数据块执行图像修改,对所述解压缩的图像或图形数据块进行处理,
其中,从所述压缩的图像或图形数据块获得的所述元数据被用于影响针对所述解压缩的图像或图形数据块的所述图像修改。
5.根据权利要求1或2所述的方法,其中,对所述图像或图形数据块进行处理包括以下步骤:使用所述图像或图形数据块来生成图像或图形数据的第二输出阵列。
6.根据权利要求1或2所述的方法,其中,从所述压缩的图像或图形数据块获得的所述元数据被用于确定对所述图像或图形数据块执行的所述图像修改的类型或程度。
7.根据权利要求1或2所述的方法,其中,对所述图像或图形数据块的所述图像修改包括:缩放所述图像或图形数据块和/或对所述图像或图形数据块进行图像增强,
其中,从所述压缩的图像或图形数据块获得的所述元数据被用于影响所述图像或图形数据块的所述缩放和/或对所述图像或图形数据块的所述图像增强。
8.根据权利要求1或2所述的方法,该方法还包括以下步骤:显示经过处理的图像或图形数据块。
9.根据权利要求1或2所述的方法,其中,所述输出缓冲器包括帧缓冲器,并且图像或图形数据的所述输出阵列包括要显示的帧。
10.根据权利要求1或2所述的方法,该方法还包括以下步骤:生成所述图像或图形数据块并将所述图像或图形数据块存储在所述输出缓冲器中。
11.根据权利要求1或2所述的方法,该方法包括以下步骤:
使用从所述压缩的图像或图形数据块获得的所述元数据在多个图像修改处理中选择一个图像修改处理以用于对所述图像或图形数据块进行图像修改。
12.根据权利要求1或2所述的方法,其中,从所述压缩的图像或图形数据块获得的所述元数据被用于确定对所述图像或图形数据块执行图像修改时对所述图像或图形数据块中的图像或图形数据进行采样的速率或样本计数。
13.一种操作数据处理系统的方法,该方法包括由所述数据处理系统执行的以下步骤:
形成图像或图形数据的输出阵列;
对表示图像或图形数据的所述输出阵列的特定区域的图像或图形数据块进行压缩,以产生压缩的图像或图形数据块,其中,作为所述对表示图像或图形数据的所述输出阵列的特定区域的图像或图形数据块进行压缩的步骤的一部分,创建元数据,或者其中,所述图像或图形数据是按照能够从所述压缩的图像或图形数据块提取出元数据的方式压缩的,并且其中,所述元数据包括表示图像或图形数据块中的图像或图形数据值的变化的信息;
通过将表示图像或图形数据的所述输出阵列的特定区域的所述压缩的图像或图形数据块写入所述数据处理系统的输出缓冲器,将图像或图形数据存储在所述输出缓冲器中;
从所述输出缓冲器读取表示图像或图形数据的所述输出阵列的特定区域的压缩的图像或图形数据块;
从所述压缩的图像或图形数据块获取元数据,其中,所述元数据形成压缩的图像或图形数据的一部分,或者其中,所述元数据是根据压缩的图像或图形数据确定的;以及
通过对所述图像或图形数据块执行图像修改,对所述图像或图形数据块进行处理,
其中,从所述压缩的图像或图形数据块获得的所述元数据被用于影响针对所述图像或图形数据块的所述图像修改。
14.根据权利要求13所述的方法,该方法还包括以下步骤:使用从所述压缩的图像或图形数据块获得的所述元数据来确定是否应对一个或更多个其它图像或图形数据块进行处理,
所述方法还包括:
当使用从所述压缩的图像或图形数据块获得的所述元数据确定应对所述一个或更多个其它图像或图形数据块进行处理时,所述数据处理系统通过对所述一个或更多个其它图像或图形数据块执行图像修改,对所述一个或更多个其它图像或图形数据块进行处理。
15.根据权利要求13所述的方法,该方法还包括以下步骤:
对所述压缩的图像或图形数据块解压缩,并且通过对解压缩的图像或图形数据块执行图像修改,对所述解压缩的图像或图形数据块进行处理,
其中,从所述压缩的图像或图形数据块获得的所述元数据被用于影响针对所述解压缩的图像或图形数据块的所述图像修改。
16.根据权利要求13所述的方法,其中,对所述图像或图形数据块进行处理包括以下步骤:使用所述图像或图形数据块来生成图像或图形数据的第二输出阵列。
17.根据权利要求13所述的方法,其中,从所述压缩的图像或图形数据块获得的所述元数据被用于确定对所述图像或图形数据块执行的所述图像修改的类型或程度。
18.根据权利要求13所述的方法,其中,对所述图像或图形数据块的所述图像修改包括:缩放所述图像或图形数据块和/或对所述图像或图形数据块进行图像增强,
其中,从所述压缩的图像或图形数据块获得的所述元数据被用于影响所述图像或图形数据块的所述缩放和/或对所述图像或图形数据块的所述图像增强。
19.根据权利要求13所述的方法,该方法还包括以下步骤:显示经过处理的图像或图形数据块。
20.根据权利要求13所述的方法,其中,所述输出缓冲器包括帧缓冲器,并且图像或图形数据的所述输出阵列包括要显示的帧。
21.根据权利要求13所述的方法,该方法还包括以下步骤:生成所述图像或图形数据块并将所述图像或图形数据块存储在所述输出缓冲器中。
22.根据权利要求13所述的方法,该方法包括以下步骤:
使用从所述压缩的图像或图形数据块获得的所述元数据在多个图像修改处理中选择一个图像修改处理以用于对所述图像或图形数据块执行图像修改。
23.根据权利要求13所述的方法,其中,从所述压缩的图像或图形数据块获得的所述元数据被用于确定对所述图像或图形数据块进行图像修改时对所述图像或图形数据块中的图像或图形数据进行采样的速率或样本计数。
24.一种操作数据处理系统的方法,该方法包括由所述数据处理系统执行的以下步骤:
形成图像或图形数据的输出阵列;
对表示图像或图形数据的所述输出阵列的特定区域的图像或图形数据块进行压缩,以产生压缩的图像或图形数据块,其中,作为所述对表示图像或图形数据的所述输出阵列的特定区域的图像或图形数据块进行压缩的步骤的一部分,创建元数据,或者其中,所述图像或图形数据是按照能够从所述压缩的图像或图形数据块提取出元数据的方式压缩的,并且其中,所述元数据包括表示图像或图形数据块中的图像或图形数据值的变化的信息;
通过将表示图像或图形数据的所述输出阵列的特定区域的所述压缩的图像或图形数据块写入所述数据处理系统的输出缓冲器,将图像或图形数据存储在所述输出缓冲器中;
从所述输出缓冲器读取表示图像或图形数据的所述输出阵列的特定区域的压缩的图像或图形数据块;
从所述压缩的图像或图形数据块获取元数据,其中,所述元数据形成压缩的图像或图形数据的一部分,或者其中,所述元数据是根据压缩的图像或图形数据确定的;以及
使用从所述压缩的图像或图形数据块获得的所述元数据来确定是否应对一个或更多个其它图像或图形数据块进行处理,
所述方法还包括:
当使用从所述压缩的图像或图形数据块获得的所述元数据确定应对所述一个或更多个其它图像或图形数据块进行处理时,所述数据处理系统通过对所述一个或更多个其它图像或图形数据块执行图像修改,对所述一个或更多个其它图像或图形数据块进行处理。
25.根据权利要求24所述的方法,
其中,从所述压缩的图像或图形数据块获得的所述元数据被用于影响针对所述一个或更多个其它图像或图形数据块的所述图像修改。
26.根据权利要求24所述的方法,该方法还包括以下步骤:
对所述压缩的图像或图形数据块解压缩,并且通过对解压缩的图像或图形数据块执行图像修改,对所述解压缩的图像或图形数据块进行处理,
其中,从所述压缩的图像或图形数据块获得的所述元数据被用于影响针对所述解压缩的图像或图形数据块的所述图像修改。
27.根据权利要求24所述的方法,其中,对所述图像或图形数据块进行处理包括以下步骤:使用所述图像或图形数据块来生成图像或图形数据的第二输出阵列。
28.根据权利要求24所述的方法,其中,从所述压缩的图像或图形数据块获得的所述元数据被用于确定对所述图像或图形数据块执行的所述图像修改的类型或程度。
29.根据权利要求24所述的方法,其中,对所述图像或图形数据块的所述图像修改包括:缩放所述图像或图形数据块和/或对所述图像或图形数据块进行图像增强,
其中,从所述压缩的图像或图形数据块获得的所述元数据被用于影响所述图像或图形数据块的所述缩放和/或对所述图像或图形数据块的所述图像增强。
30.根据权利要求24所述的方法,该方法还包括以下步骤:显示经过处理的图像或图形数据块。
31.根据权利要求24所述的方法,其中,所述输出缓冲器包括帧缓冲器,并且图像或图形数据的所述输出阵列包括要显示的帧。
32.根据权利要求24所述的方法,该方法还包括以下步骤:生成所述图像或图形数据块并将所述图像或图形数据块存储在所述输出缓冲器中。
33.根据权利要求24所述的方法,该方法包括以下步骤:
使用从所述压缩的图像或图形数据块获得的所述元数据在多个图像修改处理中选择一个图像修改处理以用于对所述图像或图形数据块执行图像修改。
34.根据权利要求24所述的方法,其中,从所述压缩的图像或图形数据块获得的所述元数据被用于确定对所述图像或图形数据块执行图像修改时对所述图像或图形数据块中的图像或图形数据进行采样的速率或样本计数。
35.一种操作数据处理系统的方法,该方法包括由所述数据处理系统执行的以下步骤:
形成图像或图形数据的输出阵列;
对表示图像或图形数据的所述输出阵列的特定区域的图像或图形数据块进行压缩,以产生压缩的图像或图形数据块,其中,作为所述对表示图像或图形数据的所述输出阵列的特定区域的图像或图形数据块进行压缩的步骤的一部分,创建元数据,或者其中,所述图像或图形数据是按照能够从所述压缩的图像或图形数据块提取出元数据的方式压缩的,并且其中,所述元数据包括表示图像或图形数据块中的图像或图形数据值的变化的信息;
通过将表示图像或图形数据的所述输出阵列的特定区域的所述压缩的图像或图形数据块写入所述数据处理系统的输出缓冲器,将图像或图形数据存储在所述输出缓冲器中;
从所述输出缓冲器读取表示图像或图形数据的所述输出阵列的特定区域的压缩的图像或图形数据块;
从所述压缩的图像或图形数据块获取元数据,其中,所述元数据形成压缩的图像或图形数据的一部分,或者其中,所述元数据是根据压缩的图像或图形数据确定的;以及
通过对一个或更多个其它图像或图形数据块执行图像修改,对所述一个或更多个其它图像或图形数据块进行处理,
其中,从所述压缩的图像或图形数据块获得的所述元数据被用于影响针对所述一个或更多个其它图像或图形数据块的所述图像修改。
36.根据权利要求35所述的方法,该方法还包括以下步骤:
对所述压缩的图像或图形数据块解压缩,并且通过对解压缩的图像或图形数据块执行图像修改,对所述解压缩的图像或图形数据块进行处理,
其中,从所述压缩的图像或图形数据块获得的所述元数据被用于影响针对所述解压缩的图像或图形数据块的所述图像修改。
37.根据权利要求35所述的方法,其中,对所述图像或图形数据块进行处理包括以下步骤:使用所述图像或图形数据块来生成图像或图形数据的第二输出阵列。
38.根据权利要求35所述的方法,其中,从所述压缩的图像或图形数据块获得的所述元数据被用于确定对所述图像或图形数据块执行的所述图像修改的类型或程度。
39.根据权利要求35所述的方法,其中,对所述图像或图形数据块的所述图像修改包括:缩放所述图像或图形数据块和/或对所述图像或图形数据块进行图像增强,
其中,从所述压缩的图像或图形数据块获得的所述元数据被用于影响所述图像或图形数据块的所述缩放和/或对所述图像或图形数据块的所述图像增强。
40.根据权利要求35所述的方法,该方法还包括以下步骤:显示经过处理的图像或图形数据块。
41.根据权利要求35所述的方法,其中,所述输出缓冲器包括帧缓冲器,并且图像或图形数据的所述输出阵列包括要显示的帧。
42.根据权利要求35所述的方法,该方法还包括以下步骤:生成所述图像或图形数据块并将所述图像或图形数据块存储在所述输出缓冲器中。
43.根据权利要求35所述的方法,该方法包括以下步骤:
使用从所述压缩的图像或图形数据块获得的所述元数据在多个图像修改处理中选择一个图像修改处理以用于对所述图像或图形数据块执行图像修改。
44.根据权利要求35所述的方法,其中,从所述压缩的图像或图形数据块获得的所述元数据被用于确定对所述图像或图形数据块执行图像修改时对所述图像或图形数据块中的图像或图形数据进行采样的速率或样本计数。
45.一种数据处理方法,该方法包括以下步骤:
通过将表示第一输出数据阵列的特定区域的压缩数据块写入输出缓冲器,将数据存储在所述输出缓冲器中;
从所述输出缓冲器读取表示所述第一输出数据阵列的特定区域的压缩数据块;
从所述压缩数据块获取元数据;以及
使用所述数据块来生成第二输出数据阵列,
其中,所述元数据被用于确定生成所述第二输出数据阵列时对所述数据块中的数据进行采样的速率或样本计数。
46.一种数据处理系统,该数据处理系统包括:
输出缓冲器;
被布置成生成图像或图形数据以形成图像或图形数据的输出阵列的处理电路;
被布置成对表示图像或图形数据的所述输出阵列的特定区域的图像或图形数据块进行压缩以产生压缩的图像或图形数据块的处理电路,其中,作为对表示图像或图形数据的所述输出阵列的特定区域的图像或图形数据块进行压缩的一部分,创建元数据,或者其中,所述图像或图形数据是按照能够从所述压缩的图像或图形数据块提取出元数据的方式压缩的,并且其中,所述元数据包括表示图像或图形数据块中的图像或图形数据值的变化的信息;
被布置成通过将表示图像或图形数据的所述输出阵列的特定区域的所述压缩的图像或图形数据块写入所述输出缓冲器从而将所生成的图像或图形数据存储在所述输出缓冲器中的处理电路;
被布置成从所述输出缓冲器读取表示图像或图形数据的所述输出阵列的特定区域的压缩的图像或图形数据块的处理电路;
被布置成从所述压缩的图像或图形数据块获取元数据的处理电路,其中,所述元数据形成压缩的图像或图形数据的一部分,或者其中,所述元数据是根据压缩的图像或图形数据确定的;
被布置成使用从所述压缩的图像或图形数据块获得的所述元数据来确定是否应对所述图像或图形数据块进行处理的处理电路;以及
被布置成当使用从所述压缩的图像或图形数据块获得的所述元数据确定应对所述图像或图形数据块进行处理时,通过对所述图像或图形数据块执行图像修改,对所述图像或图形数据块进行处理的处理电路。
47.根据权利要求46所述的数据处理系统,其中,从所述压缩的图像或图形数据块获得的所述元数据被用于影响针对所述图像或图形数据块的所述图像修改。
48.根据权利要求46或47所述的数据处理系统,该数据处理系统包括:
被布置成使用从所述压缩的图像或图形数据块获得的所述元数据来确定是否应对一个或更多个其它图像或图形数据块进行处理的处理电路;以及
被布置成当使用从所述压缩的图像或图形数据块获得的所述元数据确定应对所述一个或更多个其它图像或图形数据块进行处理时,通过对所述一个或更多个其它图像或图形数据块执行图像修改,对所述一个或更多个其它图像或图形数据块进行处理的处理电路。
49.根据权利要求46或47所述的数据处理系统,该数据处理系统包括:
被布置成对所述压缩的图像或图形数据块解压缩的处理电路;以及
被布置成通过对解压缩的图像或图形数据块执行图像修改,对所述解压缩的图像或图形数据块进行处理的处理电路,
其中,从所述压缩的图像或图形数据块获得的所述元数据被用于影响针对所述解压缩的图像或图形数据块的所述图像修改。
50.根据权利要求46或47所述的数据处理系统,其中,所述被布置成对所述图像或图形数据块进行处理的处理电路被布置成使用所述图像或图形数据块来生成图像或图形数据的第二输出阵列。
51.根据权利要求46或47所述的数据处理系统,其中,从所述压缩的图像或图形数据块获得的所述元数据被用于确定对所述图像或图形数据块执行的所述图像修改的类型或程度。
52.根据权利要求46或47所述的数据处理系统,其中,所述图像修改包括缩放所述图像或图形数据块和/或对所述图像或图形数据块进行图像增强,
其中,从所述压缩的图像或图形数据块获得的所述元数据被用于影响所述图像或图形数据块的所述缩放和/或对所述图像或图形数据块的所述图像增强。
53.根据权利要求46或47所述的数据处理系统,该数据处理系统包括被布置成显示经过处理的图像或图形数据块的处理电路。
54.根据权利要求46或47所述的数据处理系统,其中,所述输出缓冲器包括帧缓冲器,并且图像或图形数据的所述输出阵列包括要显示的帧。
55.根据权利要求46或47所述的数据处理系统,该数据处理系统包括:被布置成使用从所述压缩的图像或图形数据块获得的所述元数据在多个图像修改处理中选择一个图像修改处理以用于对所述图像或图形数据块执行图像修改的处理电路。
56.根据权利要求46或47所述的数据处理系统,该数据处理系统包括:被布置成使用从所述压缩的图像或图形数据块获得的所述元数据来确定对所述图像或图形数据块执行图像修改时对所述图像或图形数据块中的图像或图形数据进行采样的速率或样本计数的处理电路。
57.一种数据处理系统,该数据处理系统包括:
输出缓冲器;
被布置成生成图像或图形数据以形成图像或图形数据的输出阵列的处理电路;
被布置成对表示图像或图形数据的所述输出阵列的特定区域的图像或图形数据块进行压缩以产生压缩的图像或图形数据块的处理电路,其中,作为对表示图像或图形数据的所述输出阵列的特定区域的图像或图形数据块进行压缩的一部分,创建元数据,或者其中,所述图像或图形数据是按照能够从所述压缩的图像或图形数据块提取出元数据的方式压缩的,并且其中,所述元数据包括表示图像或图形数据块中的图像或图形数据值的变化的信息;
被布置成通过将表示图像或图形数据的所述输出阵列的特定区域的所述压缩的图像或图形数据块写入所述输出缓冲器从而将所生成的图像或图形数据存储在所述输出缓冲器中的处理电路;
被布置成从所述输出缓冲器读取表示图像或图形数据的所述输出阵列的特定区域的压缩的图像或图形数据块的处理电路;
被布置成从所述压缩的图像或图形数据块获取元数据的处理电路,其中,所述元数据形成压缩的图像或图形数据的一部分,或者其中,所述元数据是根据压缩的图像或图形数据确定的;以及
被布置成通过对所述图像或图形数据块执行图像修改,对所述图像或图形数据块进行处理的处理电路,
其中,从所述压缩的图像或图形数据块获得的所述元数据被用于影响针对所述图像或图形数据块的所述图像修改。
58.根据权利要求57所述的数据处理系统,该数据处理系统包括:
被布置成使用从所述压缩的图像或图形数据块获得的所述元数据来确定是否应对一个或更多个其它图像或图形数据块进行处理的处理电路;以及
被布置成当使用从所述压缩的图像或图形数据块获得的所述元数据确定应对所述一个或更多个其它图像或图形数据块进行处理时,通过对所述一个或更多个其它图像或图形数据块执行图像修改,对所述一个或更多个其它图像或图形数据块进行处理的处理电路。
59.根据权利要求57所述的数据处理系统,该数据处理系统包括:
被布置成对所述压缩的图像或图形数据块解压缩的处理电路;以及
被布置成通过对解压缩的图像或图形数据块执行图像修改,对所述解压缩的图像或图形数据块进行处理的处理电路,
其中,从所述压缩的图像或图形数据块获得的所述元数据被用于影响针对所述解压缩的图像或图形数据块的所述图像修改。
60.根据权利要求57所述的数据处理系统,其中,所述被布置成对所述图像或图形数据块进行处理的处理电路被布置成使用所述图像或图形数据块来生成图像或图形数据的第二输出阵列。
61.根据权利要求57所述的数据处理系统,其中,从所述压缩的图像或图形数据块获得的所述元数据被用于确定对所述图像或图形数据块执行的所述图像修改的类型或程度。
62.根据权利要求57所述的数据处理系统,其中,所述图像修改包括缩放所述图像或图形数据块和/或对所述图像或图形数据块进行图像增强,
其中,从所述压缩的图像或图形数据块获得的所述元数据被用于影响所述图像或图形数据块的所述缩放和/或对所述图像或图形数据块的所述图像增强。
63.根据权利要求57所述的数据处理系统,该数据处理系统包括被布置成显示经过处理的图像或图形数据块的处理电路。
64.根据权利要求57所述的数据处理系统,其中,所述输出缓冲器包括帧缓冲器,并且图像或图形数据的所述输出阵列包括要显示的帧。
65.根据权利要求57所述的数据处理系统,该数据处理系统包括:被布置成使用从所述压缩的图像或图形数据块获得的所述元数据在多个图像修改处理中选择一个图像修改处理以用于对所述图像或图形数据块进行图像修改的处理电路。
66.根据权利要求57所述的数据处理系统,该数据处理系统包括:被布置成使用从所述压缩的图像或图形数据块获得的所述元数据来确定对所述图像或图形数据块执行图像修改时对所述图像或图形数据块中的图像或图形数据进行采样的速率或样本计数的处理电路。
67.一种数据处理系统,该数据处理系统包括:
输出缓冲器;
被布置成生成图像或图形数据以形成图像或图形数据的输出阵列的处理电路;
被布置成对表示图像或图形数据的所述输出阵列的特定区域的图像或图形数据块进行压缩以产生压缩的图像或图形数据块的处理电路,其中,作为对表示图像或图形数据的所述输出阵列的特定区域的图像或图形数据块进行压缩的一部分,创建元数据,或者其中,所述图像或图形数据是按照能够从所述压缩的图像或图形数据块提取出元数据的方式压缩的,并且其中,所述元数据包括表示图像或图形数据块中的图像或图形数据值的变化的信息;
被布置成通过将表示图像或图形数据的所述输出阵列的特定区域的所述压缩的图像或图形数据块写入所述输出缓冲器从而将所生成的图像或图形数据存储在所述输出缓冲器中的处理电路;
被布置成从所述输出缓冲器读取表示图像或图形数据的所述输出阵列的特定区域的压缩的图像或图形数据块的处理电路;
被布置成从所述压缩的图像或图形数据块获取元数据的处理电路,其中,所述元数据形成压缩的图像或图形数据的一部分,或者其中,所述元数据是根据压缩的图像或图形数据确定的;
被布置成使用从所述压缩的图像或图形数据块获得的所述元数据来确定是否应对一个和更多个其它图像或图形数据块进行处理的处理电路;以及
被布置成当使用从所述压缩的图像或图形数据块获得的所述元数据确定应对所述一个或更多个其它图像或图形数据块进行处理时,通过对所述一个或更多个其它图像或图形数据块执行图像修改,对所述一个或更多个其它图像或图形数据块进行处理的处理电路。
68.根据权利要求67所述的数据处理系统,
其中,从所述压缩的图像或图形数据块获得的所述元数据被用于影响针对所述一个或更多个其它图像或图形数据块的所述图像修改。
69.根据权利要求67所述的数据处理系统,该数据处理系统包括:
被布置成对所述压缩的图像或图形数据块解压缩的处理电路;以及
被布置成通过对解压缩的图像或图形数据块执行图像修改,对所述解压缩的图像或图形数据块进行处理的处理电路,
其中,从所述压缩的图像或图形数据块获得的所述元数据被用于影响针对所述解压缩的图像或图形数据块的所述图像修改。
70.根据权利要求67所述的数据处理系统,其中,所述被布置成对所述图像或图形数据块进行处理的处理电路被布置成使用所述图像或图形数据块来生成图像或图形数据的第二输出阵列。
71.根据权利要求67所述的数据处理系统,其中,从所述压缩的图像或图形数据块获得的所述元数据被用于确定对所述图像或图形数据块执行的所述图像修改的类型或程度。
72.根据权利要求67所述的数据处理系统,其中,所述图像修改包括缩放所述图像或图形数据块和/或对所述图像或图形数据块进行图像增强,
其中,从所述压缩的图像或图形数据块获得的所述元数据被用于影响所述图像或图形数据块的所述缩放和/或对所述图像或图形数据块的所述图像增强。
73.根据权利要求67所述的数据处理系统,该数据处理系统包括被布置成显示经过处理的图像或图形数据块的处理电路。
74.根据权利要求67所述的数据处理系统,其中,所述输出缓冲器包括帧缓冲器,并且图像或图形数据的所述输出阵列包括要显示的帧。
75.根据权利要求67所述的数据处理系统,该数据处理系统包括:被布置成使用从所述压缩的图像或图形数据块获得的所述元数据在多个图像修改处理中选择一个图像修改处理以用于对所述图像或图形数据块执行图像修改的处理电路。
76.根据权利要求67所述的数据处理系统,该数据处理系统包括:被布置成使用从所述压缩的图像或图形数据块获得的所述元数据来确定对所述图像或图形数据块执行图像修改时对所述图像或图形数据块中的图像或图形数据进行采样的速率或样本计数的处理电路。
77.一种数据处理系统,该数据处理系统包括:
输出缓冲器;
被布置成生成图像或图形数据以形成图像或图形数据的输出阵列的处理电路;
被布置成对表示图像或图形数据的所述输出阵列的特定区域的图像或图形数据块进行压缩以产生压缩的图像或图形数据块的处理电路,其中,作为对表示图像或图形数据的所述输出阵列的特定区域的图像或图形数据块进行压缩的一部分,创建元数据,或者其中,所述图像或图形数据是按照能够从所述压缩的图像或图形数据块提取出元数据的方式压缩的,并且其中,所述元数据包括表示图像或图形数据块中的图像或图形数据值的变化的信息;
被布置成通过将表示图像或图形数据的所述输出阵列的特定区域的所述压缩的图像或图形数据块写入所述输出缓冲器从而将所生成的图像或图形数据存储在所述输出缓冲器中的处理电路;
被布置成从所述输出缓冲器读取表示图像或图形数据的所述输出阵列的特定区域的压缩的图像或图形数据块的处理电路;
被布置成从所述压缩的图像或图形数据块获取元数据的处理电路,其中,所述元数据形成压缩的图像或图形数据的一部分,或者其中,所述元数据是根据压缩的图像或图形数据确定的;以及
被布置成通过对一个或更多个其它图像或图形数据块执行图像修改,对所述一个或更多个其它图像或图形数据块进行处理的处理电路,
其中,从所述压缩的图像或图形数据块获得的所述元数据被用于影响针对所述一个或更多个其它图像或图形数据块的所述图像修改。
78.根据权利要求77所述的数据处理系统,该数据处理系统包括:
被布置成对所述压缩的图像或图形数据块解压缩的处理电路;以及
被布置成通过对解压缩的图像或图形数据块执行图像修改,对所述解压缩的图像或图形数据块进行处理的处理电路,
其中,从所述压缩的图像或图形数据块获得的所述元数据被用于影响针对所述解压缩的图像或图形数据块的所述图像修改。
79.根据权利要求77所述的数据处理系统,其中,所述被布置成对所述图像或图形数据块进行处理的处理电路被布置成使用所述图像或图形数据块来生成图像或图形数据的第二输出阵列。
80.根据权利要求77所述的数据处理系统,其中,从所述压缩的图像或图形数据块获得的所述元数据被用于确定对所述图像或图形数据块执行的所述图像修改的类型或程度。
81.根据权利要求77所述的数据处理系统,其中,所述图像修改包括缩放所述图像或图形数据块和/或对所述图像或图形数据块进行图像增强,
其中,从所述压缩的图像或图形数据块获得的所述元数据被用于影响所述图像或图形数据块的所述缩放和/或对所述图像或图形数据块的所述图像增强。
82.根据权利要求77所述的数据处理系统,该数据处理系统包括被布置成显示经过处理的图像或图形数据块的处理电路。
83.根据权利要求77所述的数据处理系统,其中,所述输出缓冲器包括帧缓冲器,并且图像或图形数据的所述输出阵列包括要显示的帧。
84.根据权利要求77所述的数据处理系统,该数据处理系统包括:被布置成使用从所述压缩的图像或图形数据块获得的所述元数据在多个图像修改处理中选择一个图像修改处理以用于对所述图像或图形数据块进行图像修改的处理电路。
85.根据权利要求77所述的数据处理系统,该数据处理系统包括:被布置成使用从所述压缩的图像或图形数据块获得的所述元数据来确定对所述图像或图形数据块执行图像修改时对所述图像或图形数据块中的图像或图形数据进行采样的速率或样本计数的处理电路。
86.一种数据处理系统,该数据处理系统包括:
被布置成生成数据以形成第一输出数据阵列的处理电路;
被布置成通过将表示所述第一输出数据阵列的特定区域的压缩数据块写入输出缓冲器从而将所生成的数据存储在所述输出缓冲器中的处理电路;
被布置成从所述输出缓冲器读取表示所述第一输出数据阵列的特定区域的压缩数据块的处理电路;
被布置成从所述压缩数据块获取元数据的处理电路;以及
被布置成使用所述数据块来生成第二输出数据阵列的处理电路,
其中,所述元数据被用于确定生成所述第二输出数据阵列时对所述数据块中的数据进行采样的速率或样本计数。
87.一种计算机可读存储介质,该计算机可读存储介质存储有计算机软件代码,当所述计算机软件代码在处理器上被执行时,所述计算机软件代码执行根据权利要求1、2、13、24、35或45所述的方法。
CN201510490159.0A 2014-08-11 2015-08-11 数据处理系统及其操作方法、计算机可读存储介质 Active CN105374005B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB1414204.6A GB201414204D0 (en) 2014-08-11 2014-08-11 Data processing systems
GB1414204.6 2014-08-11

Publications (2)

Publication Number Publication Date
CN105374005A CN105374005A (zh) 2016-03-02
CN105374005B true CN105374005B (zh) 2020-10-23

Family

ID=51629604

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510490159.0A Active CN105374005B (zh) 2014-08-11 2015-08-11 数据处理系统及其操作方法、计算机可读存储介质

Country Status (4)

Country Link
US (1) US10825128B2 (zh)
KR (1) KR102269905B1 (zh)
CN (1) CN105374005B (zh)
GB (2) GB201414204D0 (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107153617B (zh) * 2016-03-04 2023-04-07 三星电子株式会社 用于利用缓冲器高效访问纹理数据的高速缓存体系结构
GB2548852B (en) * 2016-03-30 2020-10-28 Advanced Risc Mach Ltd Method of operating a graphics processing pipeline by compressing a block of sampling positions having the same data value
US9946956B2 (en) 2016-06-15 2018-04-17 Qualcomm Incorporated Differential image processing
US10535186B2 (en) * 2016-08-30 2020-01-14 Intel Corporation Multi-resolution deferred shading using texel shaders in computing environments
US20180098041A1 (en) * 2016-09-30 2018-04-05 Sean J. Lawrence Adaptive chroma subsampling based on display brightness
US10445902B2 (en) * 2016-12-13 2019-10-15 Qualcomm Incorporated Fetch reduction for fixed color and pattern sub-frames
GB2561557B (en) * 2017-04-13 2020-08-12 Advanced Risc Mach Ltd Graphics processing method and apparatus in which modified edge positions are used in rasterisation
WO2019046323A1 (en) * 2017-08-28 2019-03-07 Oxide Interactive, LLC LAMINATE, SPACE, PROGRAMMABLE AND ASYNCHRONOUS SURFACE GENERATION SYSTEM
WO2020081126A1 (en) * 2018-10-19 2020-04-23 Gopro, Inc. Tone mapping and tone control integrations for image processing
KR102589969B1 (ko) 2018-11-05 2023-10-16 삼성전자주식회사 지연 쉐이딩에서 보간을 수행하는 그래픽스 처리 장치, 그래픽스 처리 시스템 및 그래픽스 처리 방법
CN109474784B (zh) * 2018-11-21 2020-07-17 维沃移动通信有限公司 一种预览图像处理方法及终端设备
US10963437B2 (en) 2019-05-03 2021-03-30 EMC IP Holding Company, LLC System and method for data deduplication
US10990565B2 (en) * 2019-05-03 2021-04-27 EMC IP Holding Company, LLC System and method for average entropy calculation
US10817475B1 (en) 2019-05-03 2020-10-27 EMC IP Holding Company, LLC System and method for encoding-based deduplication
US10733158B1 (en) 2019-05-03 2020-08-04 EMC IP Holding Company LLC System and method for hash-based entropy calculation
US11138154B2 (en) 2019-05-03 2021-10-05 EMC IP Holding Company, LLC System and method for offset-based deduplication
US11600002B2 (en) * 2020-06-03 2023-03-07 Qualcomm Incorporated Bin filtering
US11586554B2 (en) * 2020-07-23 2023-02-21 Arm Limited Cache arrangements for data processing systems
CN112817881A (zh) * 2021-02-26 2021-05-18 上海阵量智能科技有限公司 信息处理方法、装置、设备及存储介质
CN113286057A (zh) * 2021-04-07 2021-08-20 海南芯云科技股份有限公司 一种高清环通视频处理方法及系统
CN113298712A (zh) * 2021-05-21 2021-08-24 安谋科技(中国)有限公司 图像处理方法、电子设备及其可读介质
CN115841803B (zh) * 2022-12-23 2024-01-09 长沙惠科光电有限公司 驱动控制方法、驱动电路、显示装置和显示系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1823336A (zh) * 2003-05-07 2006-08-23 Dvip多媒体股份有限公司 消除传感器电平图像失真的方法和装置
CN102411786A (zh) * 2010-09-29 2012-04-11 微软公司 用于基于dwt的系统的运动补偿的低复杂度方法
US8553997B1 (en) * 2011-08-16 2013-10-08 Google Inc. Depthmap compression
CN103947206A (zh) * 2011-10-14 2014-07-23 超威半导体公司 基于区域的图像压缩

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5293481A (en) * 1987-02-18 1994-03-08 Canon Kabushiki Kaisha Data parallel processing apparatus
US6115496A (en) 1995-03-02 2000-09-05 Apple Computer, Inc. Method and apparatus for accelerating image data compression
KR100844816B1 (ko) 2000-03-13 2008-07-09 소니 가부시끼 가이샤 간결한 트랜스코딩 힌트 메타데이터를 생성하는 방법 및장치
AU2002213491A1 (en) 2000-10-13 2002-04-22 Bokhour, Edward Method of and system for low-bandwidth transmission of color video
US7057627B2 (en) * 2001-03-05 2006-06-06 Broadcom Corporation Video and graphics system with square graphics pixels
US7121469B2 (en) * 2002-11-26 2006-10-17 International Business Machines Corporation System and method for selective processing of digital images
US20050057670A1 (en) * 2003-04-14 2005-03-17 Tull Damon L. Method and device for extracting and utilizing additional scene and image formation data for digital image and video processing
US7548657B2 (en) * 2005-06-25 2009-06-16 General Electric Company Adaptive video compression of graphical user interfaces using application metadata
KR100664945B1 (ko) * 2005-06-28 2007-01-04 삼성전자주식회사 고속 핸드오버를 수행하기 위한 장치 및 방법
WO2007037726A1 (en) 2005-09-28 2007-04-05 Telefonaktiebolaget Lm Ericsson (Publ) Media content management
US20080181298A1 (en) 2007-01-26 2008-07-31 Apple Computer, Inc. Hybrid scalable coding
JP5306358B2 (ja) 2007-09-28 2013-10-02 ドルビー ラボラトリーズ ライセンシング コーポレイション 追加情報能力を持つマルチメディア符号化及び復号
US9042670B2 (en) 2010-09-17 2015-05-26 Beamr Imaging Ltd Downsizing an encoded image
AU2012201684A1 (en) 2012-03-21 2013-10-10 Canon Kabushiki Kaisha Image compression
US10043234B2 (en) * 2012-12-31 2018-08-07 Nvidia Corporation System and method for frame buffer decompression and/or compression

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1823336A (zh) * 2003-05-07 2006-08-23 Dvip多媒体股份有限公司 消除传感器电平图像失真的方法和装置
CN102411786A (zh) * 2010-09-29 2012-04-11 微软公司 用于基于dwt的系统的运动补偿的低复杂度方法
US8553997B1 (en) * 2011-08-16 2013-10-08 Google Inc. Depthmap compression
CN103947206A (zh) * 2011-10-14 2014-07-23 超威半导体公司 基于区域的图像压缩

Also Published As

Publication number Publication date
GB2531402B (en) 2019-03-27
CN105374005A (zh) 2016-03-02
GB201514125D0 (en) 2015-09-23
KR102269905B1 (ko) 2021-06-28
US10825128B2 (en) 2020-11-03
GB2531402A (en) 2016-04-20
GB201414204D0 (en) 2014-09-24
KR20160019387A (ko) 2016-02-19
US20160042491A1 (en) 2016-02-11

Similar Documents

Publication Publication Date Title
CN105374005B (zh) 数据处理系统及其操作方法、计算机可读存储介质
US10878527B2 (en) Variable resolution graphics processing
US9786091B2 (en) Gradient adjustment for texture mapping to non-orthonormal grid
CN107392989B (zh) 图形处理器和操作方法、图形处理系统和操作方法
US9129443B2 (en) Cache-efficient processor and method of rendering indirect illumination using interleaving and sub-image blur
US10242493B2 (en) Method and apparatus for filtered coarse pixel shading
US10354432B2 (en) Texture space shading and reconstruction for ray tracing
KR102164847B1 (ko) 데이터를 인코딩 및 디코딩하는 방법 및 장치
US10068353B2 (en) Method and apparatus for processing compressed texture
US10388033B2 (en) Texture processing apparatus and method
CN106030652B (zh) 提供输出面的方法、系统和合成显示控制器及计算机介质
CN108305314B (zh) 用于处理图形数据的计算系统、方法和集成电路制造系统
US10089782B2 (en) Generating polygon vertices using surface relief information
WO2020015381A1 (en) Variable resolution rendering
US11978234B2 (en) Method and apparatus of data compression
KR102669956B1 (ko) 그래픽 처리
TWI839352B (zh) 圖形處理器、數據處理器、及其等的操作方法
US20230186523A1 (en) Method and system for integrating compression
CA2961719A1 (en) System and method for restoration of dynamic range of images and video

Legal Events

Date Code Title Description
C06 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