数据处理系统的制作方法

文档序号:9597602阅读:347来源:国知局
数据处理系统的制作方法
【技术领域】
[0001]本发明涉及数据处理系统,并且具体地涉及在图形处理系统中处理压缩数据。
【背景技术】
[0002]如本领域中已知的,在图形处理系统中对帧进行渲染和光栅化之后,帧通常被压缩以减小存储器带宽并且被写入帧缓冲器中。压缩的帧然后由执行进一步图像处理(例如图像缩放、操纵和/或增强)的显示控制器或图像处理器解压缩并读取,而结果被直接发送给显示器(输出的图像未被写回到存储器或帧缓冲器)。结果,必须按照帧刷新速率以一次操作(pass)执行此图像处理,所述帧刷新速率通常是每秒60帧。
[0003]因为典型的平板当前具有2048X1536个像素的显示分辨率,并且采用每像素32个比特的数据大小,所以这导致必须每秒处理720MB的数据。预期移动装置的显示分辨率继续增加,预期在2015年出现4K(3840X2160个像素)平板,并且预期在这样的移动装置中执行的图像处理将变得日益复杂并因此更加计算密集,以便在一系列条件下提供改善的图像质量。
[0004]申请人认为数据处理系统中的处理数据(例如在帧缓冲器与显示器之间的图像中)仍然有改进的空间。

【发明内容】

[0005]当从第一方面看时,本发明提供了一种数量处理方法,该方法包括以下步骤:
[0006]通过将表示输出数据阵列的特定区域的压缩数据块写入输出缓冲器,将数据存储在所述输出缓冲器中;
[0007]从所述输出缓冲器读取表示所述输出数据阵列的特定区域的压缩数据块;
[0008]从所述压缩数据块获取元数据;以及
[0009]对所述数据块进行处理,
[0010]其中,所述元数据用于影响所述数据块的处理。
[0011]当从第二方面看时,本发明提供了一种数据处理系统,该数据处理系统包括:
[0012]被布置成生成数据以形成输出数据阵列的处理电路;
[0013]被布置成通过将表示所述输出数据阵列的特定区域的压缩数据块写入输出缓冲器从而将所生成的数据存储在所述输出缓冲器中的处理电路;
[0014]被布置成从所述输出缓冲器读取表示所述数据阵列的特定区域的压缩数据块的处理电路;
[0015]被布置成从所述压缩数据块获取元数据的处理电路;以及
[0016]被布置成对所述数据块进行处理的处理电路,
[0017]其中,所述元数据被用于影响所述数据块的处理。
[0018]本发明涉及数据处理系统,例如,用于对输出数据阵列进行处理,并被实现为该数据处理系统,并且本发明涉及一种方法,例如,操作数据处理系统的方法,其中,由所述数据处理系统生成的数据被用于在输出缓冲器中形成输出数据阵列,其中,通过将表示所述输出数据阵列的特定区域的数据块写入输出缓冲器中,输出数据阵列(在一个优选实施方式中,例如可能是要显示的帧)被存储在输出缓冲器(在一个优选实施方式中,例如可以是帧缓冲器)中。各个数据块表示所述输出数据阵列的特定区域,并且因此优选地各个数据块表示由所述数据处理系统生成的渲染拼贴(tile),例如,一起形成要显示的帧。
[0019]随后,例如由显示控制器在显示之前从所述输出缓冲器读取并处理形成被写入所述输出缓冲器的所述输出数据阵列的所述数据块。
[0020]所述数据块被以压缩的形式存储在所述输出缓冲器中。因此,在优选实施方式中,所述方法包括压缩所述数据块并将压缩的数据块写入所述输出缓冲器的步骤。
[0021]优选地,数据块被个别地压缩,即,逐块压缩,使得各个压缩数据块都是它相关的相应数据块的压缩表示(由于所述拼贴被优选地单独地渲染并写出到所述输出缓冲器的事实)。因此,在优选实施方式中,各个压缩数据块是特定渲染拼贴的压缩表示。
[0022]当数据(例如图像)被压缩时,元数据常常被创建为压缩处理的一部分,或者所述数据被按照可从已压缩数据中提取元数据的这样的方式压缩。所述元数据中的至少一些可包含表示原始数据被压缩之前的特性的信息。所述元数据因此可包含例如由于有损压缩而不再存在于压缩数据中和/或能够被用于更高效地对所述数据进行处理的信息(例如,因为将必须进一步分析所述数据以获得此信息)。
[0023]因此,通过在所述数据块的后续处理期间使用元数据来影响所述数据块的处理,减小了所需图像处理的量进而减小了所消耗的电力,或者另选地相同量的电力能够执行更复杂级别的处理。此外,本发明减少了需要被传送的数据的量,这是因为元数据能够被用于推导关于原始数据块(即,在数据块被压缩之前)的信息,因此避免了使用原始数据块的需要并因此能够使用压缩数据块。
[0024]能够按照任何期望且适合的方式从所述压缩数据块获取所述元数据。这可取决于所述数据块被压缩的方式,即,取决于压缩方案。在一些压缩方案中,元数据例如在所述数据的压缩期间自动地生成,并且例如可形成压缩数据的一部分,从而使得能够简单地连同所述数据块一起读取所述元数据。在其它压缩方案中,可能需要根据压缩数据确定(例如,生成或计算)所述元数据,在此情况下,所述方法可包括对所述压缩数据块进行处理以获取所述元数据的另一步骤。在任一种情况下,例如通过仅读取或确定后续处理所必需的所述元数据,可仅获取影响所述数据块的后续处理所需的所述元数据。
[0025]所述数据块的处理可在所述压缩数据块上进行,即,无需先解压缩所述数据。例如,所述元数据和所述压缩数据块的组合可能是足够的,无需解压缩所述数据,如将在下面更详细地讨论的。然而在一个实施方式中,所述压缩数据块被解压缩并且解压缩的数据块被处理,其中,所述元数据被用于影响解压缩的数据块的处理。
[0026]如将在下面所讨论的,可按照任何适合且期望的方式使用所述元数据来影响所述数据块的处理,例如,在取出或使用压缩图像数据的任何时候。然而,在优选实施方式中,对所述数据块进行处理的步骤包括以下步骤:例如使用任何适合且期望的图像处理算法对所述数据块执行图像修改(例如,显示修改),其中,所述元数据被用于影响解压缩的数据块的处理。(所述数据块可不必须被立即发送给显示器,而是相反被存储用于将来显示,但是仍然可能经历图像修改。)
[0027]在一个实施方式中,对所述数据块执行图像(显示)修改的步骤包括以下步骤:缩放所述数据块和/或对所述数据块执行图像增强,其中,所述元数据被用于影响所述数据块的缩放和/或所述数据块的所述图像增强。如还将在下面所讨论的,优选地,所述图像(显示)修改由显示控制器或图像处理器执行。
[0028]因此,所述方法优选地包括以下步骤:显示经处理的数据块,即,利用显示控制器。因此,用于读取所述压缩数据块的所述处理电路可包括所述显示控制器。另选地,单独的组件(例如,图像处理器)可用于读取所述压缩数据块。所述图像处理器然后可使用所述元数据来处理所述数据块,并且所述显示控制器可显示经处理的数据块。
[0029]缩放的处理涉及将所述数据阵列(例如帧)的大小从(压缩)数据阵列的大小放大或减小为所述输出数据阵列的大小,例如以用于显示。当所述显示器的大小与所生成的帧的大小不同时,此处理频繁地发生。
[0030]图像增强(使用所述元数据)的处理涉及修改例如已被输出到帧缓冲器中的图像数据,以便针对显示而优化所述图像。这通常将涉及修改(例如,增加)所述图像的对比度或修改所述图像的亮度。图像增强通常涉及向原始帧缓冲器数据应用变换功能,以便相对于高阈值和低阈值重新映射像素或子像素的亮度。用于图像增强(例如,修改对比度)的技术包括对比度增强、直方图均衡和直方图拉伸。为了方便起见,将在本文中使用术语图像增强,但应当理解,这旨在包括并包含所有等效的术语和技术。
[0031]可针对各种不同的用途执行图像增强的处理。例如,如果将在暗的环境条件下(例如,在变暗的房间内)显示图像,则可增加图像的亮度并且可减小背光功率以减小显示器的总体功耗。如果例如要在亮的环境条件下(例如,室外阳光下)显示图像,则可以增加亮度,或另选地使用色调映射以使图像变得更易于观看。
[0032]可使用的其它图像增强技术(即,使用元数据执行图像增强)包括自动聚焦、自动白平衡和自动曝光以及创造性图像处理,例如使图像看起来像是用老式相机拍摄的。
[0033]使用元数据的图像增强的处理可能不导致图像的立即显示,但是可被执行以使得图像可被用于例如显示之前的进一步处理。在一个实施方式中,元数据被用于从所述数据块(例如,图像)检测或提取特征。这可用于例如出于自动聚焦的目的而确定图像中是否存在面部,或为了字符识别或计算机视觉而检测图像中的边缘。
[0034]又一个图像处理技术包括将数据块转码为另一格式,例如以将使用如US-A1-2013/0034309中描述的ARM帧缓冲压缩(AFBC)方案压缩的图像转换为MPEG Η.264。
[0035]本发明可例如作为图形处理流水线的一部分被实现在数据处理系统内的任何适合且期望的位置,并且适合于每当压缩图像数据被取出或使用时(例如,在GPU对压缩图像数据执行图像处理的任何时候)被使用,因此图像(显示)修改不是必须由图像处理器或显示控制器执行,而是由系统中的任何适合的组件执行。
[0036]然而在优选实施方式中,压缩数据块(例如,所述数据阵列)被保持在帧缓冲器中,压缩数据块可由显示控制器从帧缓冲器读出以用于处理和显示,或者由图像处理器读出以用于处理,即,以提供输出帧以用于显示。因此,优选地,所述方法包括使用所述显示控制器或所述图像处理器来处理所述数据块的步骤。这个步骤后优选地跟随有使用所述显示控制器来显示所述数据块的步骤。
[0037]如果适用的话,显示数据块的装置可不必须存在于包含数据处理系统并且例如包含图形处理流水线、图像处理器或显示处理器的同一个物理设备中。例如,经处理的数据块例如可使用WiDi (无线显示)或Miracast无线地发送到显示器,或者经处理的图像可通过网络发送并且然后显示。
[0038]因此,优选地,所述方法还包括以下步骤中的一个或更多个步骤:生成所述数据块,例如优选地生成所述数据阵列(包括多个数据块);将所述数据块存储在输出(帧)缓冲器中,例如优选地将所述数据阵列存储在帧缓冲器中;以及从帧缓冲器读取所述数据块以用于处理。
[0039]在这些实施方式中,S卩,在将所述数据阵列存储在帧缓冲器中的实施方式中,数据阵列(要显示的帧)可例如通过被适当地渲染和存储到帧缓冲器中并且通过整个数据处理系统的任何适当的组件(帧生成器)视需要而定生成。在优选实施方式中,要显示的帧是由图形处理器生成的帧、由视频处理器(视频引擎)生成的帧或由组合引擎(或组合器)提供的帧。
[0040]因此,帧生成级优选地包括图形处理器、视频处理器(视频引擎)或组合引擎(或组合器)。如果需要,可能存在超过一个帧生成器,并且一个或超过一个(或全部)帧生成器可按照本发明的方式操作。如果需要,所述帧生成级还可包括其它组件,诸如压缩级(压缩引擎)(并且在优选实施方式中是这种情况)。
[0041]可以按照许多不同的方式使用元数据来影响数据块的处理。在一个实施方式中,元数据被用于例如通过确定使用多个处理中的哪一个处理数据块来影响数据块的处理。因此,优选地,所述方法包括使用所述元数据在用于处理所述数据块的多个处理之间选择一个的步骤。因为元数据包含表示原始数据被压缩之前的特性的信息,所以元数据例如可被用于确定所述数据块所需的处理的级别,例如以用于显示。
[0042]例如,元数据可包含涉及在数据块中(即,在遍及所述数据块的不同点处)的数据(例如,颜色)的变化,其中,根据由所述元数据指示的所述数据块中的数据(例如颜色)的变化的级别在不同的处理之间进行选择以使用。因此,优选地,如果数据(颜色)对于数据块中的全部是相同的,则使用第一处理,如果数据块在数据值(颜色)方面具有小变化,则使用第二处理,并且如果在整个数据块的数据值(颜色)方面存在大变化(例如,颜色值中的边缘),则使用第三处理。
[0043]在另一个不必相互排斥的实施方式中,元数据在数据块本身的处理中被使用以影响所述处理,即,用于数据块的处理的处理细节取决于作为该处理的输入的元数据,例如,元数据被用作所述处理中的变量。在此实施方式中,可使用自适应算法来基于元数据对数据块进行处理。
[0044]例如,元数据可包含涉及数据块中的数据(例如,颜色)的变化的信息,并且可分析所述变化以例如确定要在数据块中执行的平滑的量和/或数据块中的边缘的位置和强度(数据值的急剧改变)。如上所述,可以在取决于元数据选择要用于处理数据块的特定处理之后使用元数据在自适应算法中的这种用途。
[0045]如上所述,优选地,元数据包括表示数据块中的数据(例如,颜色)的变化的信息。如现在将描述的,在缩放图像时并且在执行图像增强时,所述信息是特别有用的。除了分析元数据以确定数据块中的数据值(颜色)的变化之外,可分析(压缩)数据块本身中的数据,以及这与使用元数据确定数据块中的数据值(颜色)的变化的组合。
[0046]例如,如果元数据指示在数据块中不存在数据(例如,颜色)的变化,即,数据(颜色)全部相同,则在缩放和/或显示数据块时,相同的数据(颜色)可被用于整个数据块的各个点(例如,像素)。因此,优选地,所述方法包括使用所述元数据来确定所述数据(颜色)是否在整个所述数据块中全部相同的步骤。在这样的情况下,可无需解压缩数据块,即,如果已知数据块的所有点(像素)具有相同的数据值,则无需解压缩数据块来确定各个点处的数据值(颜色)。此外,可无需对数据块中的所有点执行缩放,因为在与所述数据块对应的最终显示中,对于很多点(像素)而言,可以在要显示的所述块上简单地重复所述数据值(颜色)。因此,减小了显示或缩放数据块所需的处理的量。
[0047]在另一示例中,元数据可指示在数据块中存在数据值(颜色)的大变化,例如,存在“边缘”,在“边缘”处,数据块中的邻近点(像素)之间存在数据值(颜色)的明显变化,即,所述方法包括使用所述元数据来确定所述数据块中是否存在边缘的步骤。在这种情况下,特别是在缩放数据块时,重要的是例如使用边缘或对比度增强算法来仔细地处理所述边缘,使得当显示所述数据块时所述边缘被保持。
[0048]除了在数据块内检测到边缘之外,在数据阵列(其将下面更详细地描述)中存在多个数据块的实施方式中,各个数据块的边缘处的点(像素)将与在相邻数据块的边缘处的点相邻。因此,优选地,例如除了对个别的数据块内的点(像素)执行边缘检测处理之外,还对各个数据块的边缘处的点执行边缘检测处理,使得可以检测到数据块之间的边缘。
[0049]为了检测数据块之间的边缘,优选地分析数据阵列中的相邻数据块的元数据,并且对在所述数据块周边的点执行适当的边缘增强算法。
[0050]在另一个示例中,元数据可指示数据块中仅存在数据值(颜色)的小变化,即,并不全部是相同的数据值(颜色)但是不存在边缘。在这种情况下,平滑算法可用于处理所述数据块(例如,在缩放期间),不必要执行边缘检测和增强。
[0051]因此可以看到,元数据包含有关所述数据块的特性的有用信息,并且因此例如在缩放、图像增强和/或显示期间可用于选择数据块经历什么类型的处理。因此,当需要时,例如当元数据指示数据块中存在边缘时可以使用更复杂的处理,或当更简单的处理适用于由元数据指示的数据块中的数据的类型时(例如,当数据值(颜色)在数据块中全部相同时)可使用更简单的处理。
[0052]使用元数据来处理数据块的步骤可包括生成直方图(即,从所述元数据生成),以确定所述数据块的处理信息(参数,例如图像(显示)修改信息(参数))。
[0053]如上所述,本发明被优选地实现在一种图形处理系统中,其中,要显示的压缩帧被写出到帧缓冲器中并且然后由显示控制器在显示之前处理。例如,情况将是这样的,并且如将由本领域技术人员所了解的,在基于拼贴的数据处理系统中,在此情况下按照本发明的方式处理的各个数据块可以(并且在一个优选实施方式中)对应于图形处理器的渲染处理产生的“拼贴(tile)”(尽管如将在下面进一步地讨论的,但是这不是必须的)。
[0054]如本领域中已知的,在基于拼贴的渲染中,渲染处理的二维数据阵列或帧(“渲染目标(例如,并且通常,其将被显示来显示被渲染的场景)被细分或分割成通常被称为“拼贴”的多个较小区域以用于渲染处理。拼贴(子区域)都被单独地(通常一个接一个地)渲染。然后,经渲染的拼贴(子区域)被重新组合以提供完整的输出阵列(帧)(渲染目标)以例如用于显示。
[0055]通常被用于“拼贴”和“基于拼贴的”渲染的其它术语包括“组块(chunking) ”渲染(子区域被称为“块”)和“段(bucket)”渲染。为了方便起见,将在本文中使用术语“拼贴”,但是应该理解,这些术语旨在包含所有另选和等效的术语和技术。
[0056]由数据处理系统生成的数据正被用于形成的输出数据阵列可以是例如图形处理器可被用于生成的任何适合且期望的这种数据阵列。在一个特别优选的实施方式中,它包括用于显示的输出帧,但是它还可以或替代地包括图形处理器的其它输出,诸如图形纹理(其中,例如,渲染“目标”是图形处理器正被用于(例如在“渲染到纹理”操作中)生成的纹理或所述数据处理系统的输出将被写入的其它表面)。
[0057]类似地,数据要被写入的输出缓冲器可包括任何适合的这种缓冲器,并且可在存储器中按照任何适合且期望的方式加以配置。例如,所述输出缓冲器可以是片上缓冲器或者可以是外部缓冲器(并且,实际上,更可能是外部缓冲器(存储器),如将在下面所讨论的)。类似地,所述输出缓冲器可以是用于此目的的专用存储器或者也可以是用于其它数据的存储器的一部分。如以上所讨论的,在优选实施方式中,所述输出缓冲器是用于数据处理器系统和/或用于将被提供数据处理系统的输出的显示器的帧缓冲器。
[0058]数据块可以各自表示整个数据阵列的任何适合且期望的区域,包括最多整个数据阵列,即,可能仅存在单个块。然而,优选地,所述数据阵列包括多个数据块,即,所述数据块小于整个数据阵列。在此实施方式中,能够视需要而定完成所述数据阵列变成数据块的细分。
[0059]各个生成的数据块优选地表示整个阵列的不同部分(子区
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1