CN108027958A - 通过预取进行高效显示处理 - Google Patents
通过预取进行高效显示处理 Download PDFInfo
- Publication number
- CN108027958A CN108027958A CN201680053996.XA CN201680053996A CN108027958A CN 108027958 A CN108027958 A CN 108027958A CN 201680053996 A CN201680053996 A CN 201680053996A CN 108027958 A CN108027958 A CN 108027958A
- Authority
- CN
- China
- Prior art keywords
- data
- tile data
- prospect
- background
- segment
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G3/00—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
- G09G3/20—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control 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/39—Control of the bit-mapped memory
- G09G5/399—Control of the bit-mapped memory using two or more bit-mapped memories, the operations of which are switched in time, e.g. ping-pong buffers
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2350/00—Solving problems of bandwidth in display systems
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/122—Tiling
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/18—Use of a frame buffer in a display terminal, inclusive of the display panel
Abstract
在一实例中,一种用于通过显示处理器进行基于图块的处理的方法可包含从第一存储器空间读取前景图像的第一前景图块数据。所述方法可包含将所述读取的第一前景图块数据存储到第二存储器空间中。所述方法可包含从所述第一存储器空间读取背景图像的第一背景图块数据。所述方法可包含将所述读取的第一背景图块数据存储到第三存储器空间中。所述方法可包含从所述第二存储器空间读取所述第一前景图块数据的数据子集。所述方法可包含从所述第三存储器空间读取所述第一背景图块数据的数据子集。
Description
技术领域
本发明涉及显示处理器的显示处理。
背景技术
用于显示的视觉内容(例如用于图形用户界面和视频游戏的内容)可由图形处理单元(GPU)产生。举例来说,显示器可通信耦合到处理由GPU输出的图形数据(例如,像素表示)的显示处理器以用于在显示器上呈现经处理图形数据。
显示处理器通常利用基于图块的显示架构,这归因于与所述显示架构相关联的面积处理效率。然而,可改进当前显示处理器的图块提取方案和/或图块处理序列。
发明内容
本发明的技术涉及显示处理器的显示处理。可通过中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、视频处理单元、相机处理单元、图像处理单元、像素处理单元和/或另一源产生或处理视觉内容。显示处理器可被配置成从任何源接收视觉内容。本发明的某些方面可例如针对于减少显示处理器的带宽/处理消耗和/或减少显示处理器对外部存储器(例如,系统存储器)的存储器请求的数目。本发明的某些方面可针对于增加显示处理器的处理量。本发明的某些方面可针对于增加伪平面格式图像的存储器效率。
在一个实例中,本发明描述一种用于通过显示处理器进行基于图块的处理的方法,所述方法包括:通过所述显示处理器的预取处理单元从第一存储器空间读取前景图像的第一前景图块数据;通过所述显示处理器的所述预取处理单元将所述读取的第一前景图块数据存储到第二存储器空间中;通过所述显示处理器的所述预取处理单元从所述第一存储器空间读取背景图像的第一背景图块数据;通过所述显示处理器的所述预取处理单元将所述读取的第一背景图块数据存储到第三存储器空间中;通过所述显示处理器的提取处理单元从所述第二存储器空间读取所述第一前景图块数据的数据子集;以及通过所述显示处理器的所述提取处理单元从所述第三存储器空间读取所述第一背景图块数据的数据子集。在一些实例中,所述第一存储器空间可为帧缓冲器,所述第二存储器空间可为前景乒乓缓冲器,且所述第三存储器空间可为背景乒乓缓冲器。
在另一实例中,本发明描述一种计算装置,所述计算装置包括:第一存储器空间;第二存储器空间,其用于存储前景图像的前景图块数据;第三存储器空间,其用于存储背景图像的背景图块数据;以及显示处理器,其包含预取处理单元和提取处理单元。所述预取处理单元可被配置成从所述第一存储器空间读取所述前景图像的第一前景图块数据,将所述读取的第一前景图块数据存储到所述第二存储器空间中,从所述第一存储器空间读取所述背景图像的第一背景图块数据,以及将所述读取的第一背景图块数据存储到所述第三存储器空间中。所述提取处理单元可被配置成从所述第二存储器空间读取所述第一前景图块数据的数据子集,以及从所述第三存储器空间读取所述第一背景图块数据的数据子集。在一些实例中,所述第一存储器空间可为帧缓冲器,所述第二存储器空间可为前景乒乓缓冲器,且所述第三存储器空间可为背景乒乓缓冲器。
在另一实例中,本发明描述一种设备,所述设备包括:用于从第一存储器空间读取前景图像的第一前景图块数据的装置;用于将所述读取的第一前景图块数据存储到第二存储器空间中的装置;用于从所述第一存储器空间读取背景图像的第一背景图块数据的装置;用于将所述读取的第一背景图块数据存储到第三存储器空间中的装置;用于从所述第二存储器空间读取所述第一前景图块数据的数据子集的装置;以及用于从所述第三存储器空间读取所述第一背景图块数据的数据子集的装置。在一些实例中,所述第一存储器空间可为帧缓冲器,所述第二存储器空间可为前景乒乓缓冲器,且所述第三存储器空间可为背景乒乓缓冲器。
在另一实例中,本发明描述一种上面存储有指令的非暂时性计算机可读存储媒体,所述指令在被执行时,致使计算装置的一或多个处理器:从第一存储器空间读取前景图像的第一前景图块数据;将所述读取的第一前景图块数据存储到第二存储器空间中;从所述第一存储器空间读取背景图像的第一背景图块数据;将所述读取的第一背景图块数据存储到第三存储器空间中;从所述第二存储器空间读取所述第一前景图块数据的数据子集;以及从所述第三存储器空间读取所述第一背景图块数据的数据子集。在一些实例中,所述第一存储器空间可为帧缓冲器,所述第二存储器空间可为前景乒乓缓冲器,且所述第三存储器空间可为背景乒乓缓冲器。
在附图和以下描述中阐述本发明的一或多个方面的细节。本发明的其它特征、目标和优势将从所述描述和图式以及从权利要求书中显而易见。
附图说明
图1是说明可被配置成实施本发明的一或多个方面的实例计算装置的框图。
图2是说明本发明中所描述的显示处理器的实例的框图。
图3A是说明本发明中所描述的将数据写入到乒乓缓冲器的实例的概念图。
图3B是说明本发明中所描述的从乒乓缓冲器读取数据的实例的概念图。
图3C是说明本发明中所描述的将数据写入到乒乓缓冲器的一个实例的实例的概念图。
图3D是说明本发明中所描述的从乒乓缓冲器的一个实例读取数据的实例的概念图。
图4A是说明处理前景和背景图块的并行化的实例的概念图。
图4B是说明处理前景和背景图块的并行化的实例的概念图。
图5A说明用于乒乓缓冲空间的存储器分配的实例。
图5B说明用于乒乓缓冲空间的存储器分配的实例。
图6是说明根据本文中所描述的技术的前景、背景和写回乒乓缓存器的框图。
图7A是说明与用于本发明的显示处理的技术一致的实例过程的流程图。
图7B是说明与用于本发明的显示处理的技术一致的实例过程的流程图。
图8是说明本发明中所描述的显示处理器的基于图块的处理的实例的概念图。
具体实施方式
一般来说,本发明的方面是针对在显示视觉内容(例如图像帧集合(例如,图形动画、视频、视频游戏等等)或单个图像帧(例如,静态图像))时改进计算系统的性能。视觉内容可由CPU、GPU、DSP、视频处理单元、相机处理单元、图像处理单元、像素处理单元和/或另一来源产生。被配置成执行本发明的一或多种技术的显示处理器可被配置成从任何来源接收视觉内容。举例来说,被配置成执行本发明的一或多种技术的显示处理器可通信耦合(有线、无线、或其一组合)到可产生或处理视觉内容的任何来源。作为另一实例,被配置成执行本发明的一或多种技术的显示处理器可通信耦合(有线、无线、或其一组合)到被配置成存储视觉内容的任何存储器。在此实例中,被配置成执行本发明的一或多种技术的显示处理器可被配置成从存储视觉内容的任何存储器接收视觉内容。
在本发明的一个实例中,显示处理器可被配置成从存储器(例如,帧缓冲器)预取前景和背景图块数据,并且将预取的图块数据分别存储到前景乒乓缓冲器和背景乒乓缓冲器中。从存储器预取图块数据可通过与典型的请求相比在例如较大块中请求存储器来减少对存储器的存储器请求的数目。作为另一实例,本发明的某些方面可针对于增加显示处理器的处理量。作为另一实例,本发明的某些方面可针对于增加伪平面格式帧的存储器效率。举例来说,根据本发明的一或多种技术的显示处理器可预取作为独立图块的色度和明度,而无需在预取过程期间在每一行色度和明度图块之间交替。
图1是说明可被配置成实施本发明的一或多个方面的实例计算装置的框图。如图1中所示出,计算装置2可为包含(但不限于)以下各项的计算装置:视频装置、媒体播放器、机顶盒、无线手持机(例如移动电话和所谓的智能电话)、个人数字助理(PDA)、可穿戴计算装置、台式计算机、手提式计算机、游戏控制台、视频会议单元、平板计算器件等等。在一些实例中,计算装置2可为移动通信装置。在图1的实例中,计算装置2可包含中央处理单元(CPU)6、系统存储器10以及GPU 12。计算装置2还可包含数字信号处理器(DSP)11、显示处理器14、收发器3、用户接口4、视频编解码器7以及显示装置8。在一些实例中,视频编解码器7可为软件应用程序,例如被配置成由CPU 6处理的软件应用程序18。在其它实例中,视频编解码器7可为不同于CPU 6的硬件组件、在不同于CPU 6的组件上运行的软件应用程序,或硬件与软件的组合。
图1中的显示处理器14的配置是示范性的。在其它实例中,显示处理器14可被配置成从任何来源接收视觉内容,所述来源例如任何CPU(例如,CPU 6)、任何GPU(例如,GPU12)、任何DSP、任何视频处理单元、任何相机处理单元、任何图像处理单元、任何像素处理单元、存储视觉内容的任何存储器,或任何其它来源。作为一个实例,显示处理器14可被配置成从另一装置(例如,另一计算装置2、服务器,或计算装置2可被配置成永久地或临时地通信耦合到的不同于计算装置2的任何装置)接收视觉内容数据。在此实例中,计算装置2可在收发器3处接收视觉内容。显示处理器14可被配置成处理由收发器3接收的视觉内容。在一些实例中,显示处理器14可直接从收发器3接收视觉内容。在其它实例中,显示处理器14可从CPU 6、GPU 12或计算装置2的任何其它处理单元接收由收发器3接收的视觉内容。在此类实例中,显示处理器14可接收如由收发器3接收或由例如CPU 6、GPU 12或计算装置2的任何其它处理单元进一步处理的视觉内容的视觉内容。
如本文中所使用,术语“视觉内容”包含(但不限于)任何图形数据、图解数据、视频数据、图像数据、像素数据、图形内容、图解内容、视频内容、图像内容和/或像素内容。
鉴于显示处理器14的不同配置,显示处理器14可被配置成执行本文中关于视觉内容的任何来源(例如,任何处理单元或存储视觉内容的任何存储器)所描述的任何功能。举例来说,虽然图1描述为显示处理器14被配置成从GPU将图形数据输出到的存储器(例如帧缓冲器)预取和/或提取视觉内容(例如,一或多个图像层),但显示处理器14可被配置成从被配置成处理视觉内容的任何处理单元和/或被配置成存储视觉内容的任何存储器(例如,被配置成处理视觉内容的任何处理单元的任何片上存储器、被配置成处理视觉内容的任何处理单元外部的任何存储器,或任何其它存储器)预取和/或提取视觉内容。
显示处理器14可利用基于图块的架构。在其它实例中,显示处理器14可利用基于行的架构。在此类实例中,显示处理器14可被配置成实施本发明的用于基于行的显示处理以及基于图块的显示处理的一或多种技术。
在一些实例中,图块是包括高度和宽度的像素面积表示,其中高度是一或多个像素,且宽度是一或多个像素。在此类实例中,图块可在本质上是长方形或正方形。在其它实例中,图块可为不同于正方形或矩形的形状。显示处理器14可从存储器(例如,GPU将图形数据以像素表示的形式输出到的帧缓冲器和/或其它存储器)预取或提取多个图像层(例如,前景和背景)。显示处理器14可处理来自多个层的像素。显示处理器14可执行的实例处理可包含增加取样、减少取样、缩放、旋转以及其它像素处理。举例来说,显示处理器14可处理与前景图像层和/或背景图象层相关联的像素。显示处理器14可混合来自多个层的像素,并且将混合的像素以图块格式写回到存储器中。随后,从存储器以光栅格式读取混合的像素并且发送到显示器8以用于呈现。
视频编解码器7可接收经编码的视频数据。计算装置2可从源装置(例如,对数据进行编码或以其它方式将经编码的视频数据传输到计算装置2的装置,例如服务器)接收经编码的视频数据。在其它实例中,计算装置2本身可产生经编码的视频数据。举例来说,计算装置2可包含用于捕获静态图像或视频的相机。经捕获数据(例如,视频数据)可由视频编解码器7进行编码。经编码的视频数据可包含由视频编码器产生的供视频解码器(例如视频编解码器7)在解码视频数据时使用的各种语法要素。虽然视频编解码器7在本文中描述为视频编码器和视频解码器,但应理解,视频编解码器7在其它实例中可为无编码功能的视频解码器。由视频编解码器7解码的视频数据可直接发送到显示处理器14,可直接发送到显示器8,或可发送到显示处理器14或GPU 12可接取的存储器(例如系统存储器10、输出缓冲器16或输出缓冲器17)。在示出的实例中,视频编解码器7连接到显示处理器14,这意指经解码视频数据直接发送到显示处理器14和/或存储在显示处理器14可存取的存储器中。在此实例中,显示处理器14可以用与当发出一或多个存储器请求以从与GPU 12相关联的存储器(例如,输出缓冲器16)获得图形(静态图像或视频)数据时类似的方式,发出一或多个存储器请求以从存储器获得经解码视频数据。
收发器3、视频编解码器7以及显示处理器14可以是与CPU 6和/或GPU 12相同的积体电路(IC)的部分,可在包含CPU 6和/或GPU 12的IC外部,或可形成于在包含CPU 6和/或GPU 12的IC外部的IC中。举例来说,视频编解码器7可被实施为各种合适的编码器电路中的任一个,例如一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件、或其任何组合。
显示处理器14可从至少一个存储器(例如,CPU 6的片上存储器、视频编解码器7的片上存储器、GPU 12的片上存储器、DSP 11的片上存储器、输出缓冲器16、输出缓冲器17、系统存储器10、任何其它存储器、或其任何组合)提取/预取多个图像层(例如,前景和背景层)。所述多个图像层可包含前景层和背景层。如本文中所使用,术语“图像”并不意欲仅指静态图像。实际上,图像或图像层可与静态图像(例如,图像或当混合时可为图像的图像层)或视频(例如,图像或当混合时可为图像序列中的单个图像,其当依序观察时形成移动的图片或视频)相关联。
前景图像层(或简单地前景图像)和背景图象层(或简单地背景图象)可以是任何视觉内容。举例来说,前景图像可构成视频数据且背景图象可构成图形数据。在此实例中,前景图像可由GPU 12产生或由视频编解码器7产生(例如,通过解码经编码的视频数据或经编码的图像数据)。背景图象可例如由GPU 12产生。在其它实例中,背景图象可由视频编解码器7(例如,通过解码经编码的视频数据或经编码的图像数据)产生。在一些实例中,从帧缓冲器(例如,输出缓冲器16)读取由显示处理器14处理的前景图像和背景图像。在其它实例中前景图像可构成图形数据且背景图象可构成图形数据。
在一些实例中,前景图像层可支持视频数据和/或图形数据。在此类实例中,前景图像层可符合视频数据的YUV色彩格式(例如,YCbCr色彩格式、YUV420伪平面色彩格式、YUV422伪平面色彩格式、YUV444平面色彩格式、YUYV交错色彩格式以及YUV色彩格式。前景图像层可符合图形数据的红色、绿色、蓝色(RGB)色彩格式(例如,ARGB8888、RGB888、RGB444、RGB565,以及其它RGB或RGBA色彩格式)。
每一像素的红色、绿色、蓝色、阿尔法(RGBA)分量,其中“RGB”分量对应于色彩值且“A”分量对应于目的地阿尔法值。作为另一实例,输出缓冲器16和/或输出缓冲器17可根据YCbCr色彩格式、YUV色彩格式、RGB色彩格式,或根据任何其它色彩格式存储像素数据。
计算装置2可包含出于清楚起见图1中未示出的额外模块或处理单元。举例来说,计算装置2可包含扬声器和麦克风(均未在图1中示出)以在其中计算装置2是移动无线电话的实例中实现电话通信,或在计算装置2是媒体播放器的情况下包含扬声器。计算装置2还可包含相机。此外,计算装置2中所示出的各个模块和单元在计算装置2的每一实例中可能不是必需的。举例来说,在其中计算装置2为台式计算机或装备成与外部用户接口或显示器接口连接的其它装置的实例中,用户接口4和显示装置8可处于计算装置2的外部。
用户接口4的实例包含(但不限于)跟踪球、鼠标、键盘和其它类型的输入装置。用户接口4还可为触摸屏幕且可作为显示装置8的部分并入。收发器3可包含允许在计算装置2与另一装置或网路之间进行无线或有线通信的电路。收发器3可包含调制器、解调器、放大器以及其它用于有线或无线通信的此类电路。在一些实例中,收发器3可与CPU 6集成。
CPU 6可为微处理器,例如被配置成处理计算机程序的指令以用于执行的中央处理单元(CPU)。CPU 6可包括控制计算装置2的操作的通用或专用处理器。用户可将输入提供到计算装置2以使得CPU 6执行一或多个软件应用程序,例如软件应用程序18。在CPU 6上执行的软件应用程序(例如,软件应用程序18)可包含(例如)操作系统、文字处理器应用程序、电子邮件应用程序、电子表格应用程序、媒体播放器应用程序、视频游戏应用程序、图形用户界面应用程序、或使用2D或3D图形的图形数据的另一类型的软件应用程序。此外,CPU 6可执行GPU驱动程序22以用于控制GPU 12的操作。用户可经由一或多个输入装置(未示出)(例如键盘、鼠标、麦克风、触摸垫或经由用户接口4耦合到计算装置2的另一输入装置)将输入提供到计算装置2。
在CPU 6上执行的软件应用程序18可以包含指示CPU 6以使得图形数据显现到显示装置8的一或多个图形显现指令。所述指令可以包含处理3D图形的指令以及处理2D图形的指令。在一些实例中,所述软件指令可符合图形应用程序编程界面(API),例如开放图形库API、开放图形库嵌入系统(OpenGL ES)API、Direct3D API、X3D API、RenderMan API、WebGL API、开放计算语言(OpenCLTM)或任何其它公共或专有标准GPU计算API。为了处理在CPU 6上执行的软件应用程序18的图形显现指令,CPU 6在执行软件应用程序18期间可将一或多个图形显现命令发到GPU 12(例如,通过GPU驱动程序22)以使得GPU12执行显现图形数据中的一些或全部。在一些实例中,待显现的图形数据可以包含例如点、线、三角形、四边形、三角带等图形图元的列表。
软件应用程序18可包含指示GPU 12显现图形用户界面(GUI)、图形场景、图形数据或其它图形相关数据的一或多个绘图指令。举例来说,绘图指令可包含定义将由GPU 12显现的一或多个图形图元的集合的指令。在一些实例中,绘图指令可共同地定义用于GUI中的多个开窗表面的全部或部分。在额外实例中,绘图指令可共同地定义包含由应用程序界定的模型空间或全局空间内的一或多个图形对象的图形场景的全部或部分。
GPU 12可被配置成执行图形操作以将一或多个图形图元显现给显示装置8。因此,当在CPU 6上执行的软件应用程序18要求图形处理时,CPU 6可将图形显现命令以及图形数据提供到GPU 12以用于再现给显示装置8。图形数据可包含例如绘图命令、状态信息、图元信息、纹理信息等。在一些例子中,GPU 12可内置有高度并行的结构,其与CPU 6相比提供对复杂图形相关操作的更高效处理。举例来说,GPU 12可包含被配置成以并行方式对多个顶点或像素进行操作的多个处理元件,例如着色器单元。在一些例子中,与使用CPU 6将场景直接绘制到显示装置8相比,GPU 12的高度并行性质可允许GPU 12更快速地将图形图像(例如,GUI和二维(2D)和/或三维(3D)图形场景)绘制到显示装置8上。
软件应用程序18可调用GPU驱动程序22以将一或多个命令发到GPU 12以用于将一或多个图形图元显现到可显示的图形图像(例如,可显示的图形数据)中。举例来说,软件应用程序18可调用GPU驱动程序22以将图元定义提供到GPU 12。在一些例子中,图元定义可以例如三角形、矩形、三角扇、三角带等绘制图元的列表的形式提供到GPU 12。图元定义可包含指定与待显现的图元相关的一或多个顶点的顶点规格。顶点规格可包含每一顶点的位置坐标以及在一些例子中,与顶点相关联的其它属性,例如色彩坐标、法向量以及纹理坐标。图元定义还可包含图元类型信息(例如,三角形、矩形、三角扇、三角带等)、缩放信息、旋转信息等等。
基于由软件应用程序18发到GPU驱动程序22的指令,GPU驱动程序22可调配指定供GPU 12执行的一或多个操作以便显现图元的一或多个命令。当GPU 12从CPU 6接收命令时,图形处理管线可在GPU 12的着色器处理器上执行,以解码所述命令且配置图形处理管线以执行所述命令中所指定的操作。举例来说,图形处理管线中的输入汇编程序可读取图元数据,且将数据汇编成供图形处理管线中的其它图形管线级使用的图元。在执行指定操作之后,图形处理管线将所显现数据输出到显示处理器14可存取的输出缓冲器16。在一些实例中,图形处理管线可包含固定功能逻辑和/或在可编程着色器核心上执行。
输出缓冲器16存储GPU 12的目的地像素。每一目的地像素可与唯一屏幕像素位置相关联。类似地,输出缓冲器17可视实例而存储用于视频编解码器7的目的地像素。输出缓冲器17可视为与视频编解码器7相关联的帧缓冲器。在一些实例中,输出缓冲器16和/或输出缓冲器17可存储每一目的地像素的色彩分量以及目的地阿尔法值。举例来说,输出缓冲器16和/或输出缓冲器17可根据任何格式存储像素数据。举例来说,输出缓冲器16和/或输出缓冲器17可存储每一像素的红色、绿色、蓝色、阿尔法(RGBA)分量,其中“RGB”分量对应于色彩值且“A”分量对应于目的地阿尔法值。作为另一实例,输出缓冲器16和/或输出缓冲器17可根据YCbCr色彩格式、YUV色彩格式、RGB色彩格式或根据任何其它色彩格式存储像素数据。尽管输出缓冲器16和系统存储器10示出为单独存储器单元,但在其它实例中,输出缓冲器16可以是系统存储器10的部分。举例来说,输出缓冲器16可在系统存储器10中被分配存储器空间。输出缓冲器16可构成帧缓冲器。另外,如上文所论述,输出缓冲器16还可能能够存储不同于像素的任何合适的数据。
类似地,尽管输出缓冲器17和系统存储器10示出为单独存储器单元,但在其它实例中,输出缓冲器17可以是系统存储器10的部分。举例来说,输出缓冲器17可在系统存储器10中被分配存储器空间。输出缓冲器17可构成视频编解码器缓冲器或帧缓冲器。此外,如上文所论述,输出缓冲器17还可能能够存储除像素之外的任何合适的数据。在一些实例中,尽管输出缓冲器16和输出缓冲器17示出为单独存储器单元,但输出缓冲器16和输出缓冲器17可为同一缓冲器或同一缓冲器的不同部分。
在一些例子中,GPU 12可以集成到计算装置2的母板中。在其它例子中,GPU 12可以存在于计算装置2的母板端口中安装的图形卡上,或可以其它方式并入到被配置成与计算装置2交互操作的外围装置内。在一些实例中,GPU 12可以与CPU 6位于芯片上,例如在片上系统(SOC)中,GPU 12可以包含一或多个处理器(例如一或多个微处理器)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它等效的集成或离散逻辑电路。GPU 12还可包含一或多个处理器核心,使得GPU 12可被称作多核心处理器。
在一些实例中,图形存储器20可以是GPU 12的部分。举例来说,图形存储器20可为片上存储器或以物理方式集成到GPU 12的集成电路芯片中的存储器。如果图形存储器20在芯片上,那么与经由系统总线从系统存储器10读取值或将值写入到系统存储器10相比,GPU12可能能够更快速地从图形存储器20读取值或将值写入到图形存储器20。因此,GPU 12可从图形存储器20读取数据并且将将数据写入到图形存储器20而不使用总线。换句话说,GPU12可使用本地存储装置而非片外存储器以本地处理数据。此类图形存储器20可被称为片上存储器。这允许GPU 12通过消除对GPU 12经由总线读取和写入数据的需要来以更高效方式操作,经由总线读取和写入数据可能经历繁重的总线业务以及相关联的对带宽的争用。然而,在一些例子中,GPU 12可能不包含单独的存储器,而是经由总线利用系统存储器10。图形存储器20可包含一或多个易失性或非易失性存储器或存储装置,例如随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、磁性数据媒体或光学存储媒体。
在一些实例中,GPU 12可将完全形成的图像存储于系统存储器10中。显示处理器14可从系统存储器10和/或输出缓冲器16检索图像并且输出致使显示装置8的像素照亮的值以显示图像。在一些实例中,显示处理器14可被配置成对待显示的数据执行2D操作,包括缩放、旋转、混合以及合成。显示装置8可以是显示由GPU 12产生的图像内容的计算装置2的显示器。显示装置8可以是液晶显示器(LCD)、有机发光二极管显示器(OLED)、阴极射线管(CRT)显示器、等离子显示器或另一类型的显示装置。在一些实例中,显示器8可集成在计算装置2内。举例来说,显示器8可为移动电话的屏幕。在其它实例中,显示器8可为经由有线或无线通信链路耦合到计算装置2的单独装置。举例来说,显示器8可为经由电缆或无线链路连接到计算装置(例如,个人计算机、移动计算机、平板计算机、移动电话等)的计算机监视器或平板显示器。
CPU 6处理用于在计算装置2内执行的指令。CPU 6可使用驱动程序(例如,可在由CPU 6执行的软件中实施的GPU驱动程序22)产生命令流以用于由GPU 12执行。也就是说,CPU 6可产生定义由GPU 12执行的操作集的命令流。
CPU 6可产生待由GPU 12执行以致使可视内容在显示器8上显示的命令流。举例来说,CPU 6可产生为GPU 12提供显现可存储在输出缓冲器16中的图形数据以供在显示器8处显示的指令的命令流。在此实例中,CPU 6可产生由图形显现管道执行的命令流。
另外或替代地,CPU 6可产生将由GPU 12执行以致使GPU 12执行其它操作的命令流。举例来说,在一些例子中,CPU 6可为产生命令流以供GPU 12用作通用图形处理单元(GPGPU)的主机处理器。以此方式,GPU 12可充当CPU 6的次处理器。举例来说,GPU 12可执行传统由CPU 6执行的各种通用计算功能。实例包含各种图像处理功能,包含视频解码和后处理(例如,解块、噪声减少、色彩校正等等),以及其它应用程序特定的图像处理功能(例如,面部检测/辨识、图案辨识、小波变换等等)。在一些实例中,GPU 12可与CPU 6合作来执行此类GPGPU应用程序。举例来说,CPU 6可通过为GPU 12提供用于由GPU 12执行的命令流来分担GPU 12的某些功能。在此实例中,CPU 6可为主机处理器,且GPU 12可为次处理器。
GPU驱动程序22可之可由GPU 12的着色器单元执行的一或多个命令流传送到GPU12。GPU 12可包含可从GPU驱动程序22接收一或多个命令流的命令处理器24。命令处理器24可以是被配置成接收并处理一或多个命令流的硬件与软件的任何组合。由此,命令处理器24是流处理器。在一些实例中,代替命令处理器24,可使用任何其它合适的流处理器,代替命令处理器24来接收并处理一或多个命令流且执行本文中所揭示的技术。在一个实例中,命令处理器24可为硬件处理器。在图1中示出的实例中,命令处理器24可包含在GPU 12中。在其它实例中,命令处理器24可为与CPU 6和GPU 12分离的单元。命令处理器24还可称为流处理器、命令/流处理器等等,以指示其可以是被配置成接收命令和/或操作流的任何处理器。
命令处理器24可处理包含排程操作的一或多个命令流,其包含在用于由GPU 12执行的一或多个命令流中。具体地说,命令处理器24可处理一或多个命令流并且排程一或多个命令流中的用于由着色器单元46执行的操作。在操作中,GPU驱动程序22可将包含将由GPU 12执行的一系列操作的命令流发送到命令处理器24。命令处理器24可接收包括命令流的操作流并且可基于命令流中的操作次序依序处理命令流的操作,且可排程命令流中的用于由GPU 12的着色器单元的着色器处理器执行的操作。
显示处理器14可实施本文中所描述的不同技术以例如减少或去除带宽浪费,减少显示处理器14做出的初始地获取图块数据的存储器请求的数目,以及/或实现前景和背景图块的并行提取以增加处理量。还可从本文中所描述的不同技术得出各种其它益处。
图2是说明与本发明的技术一致的显示处理器14的概念图。显示处理器14包含与总线接口102通信的预取处理单元100。在一些实例中,预取处理单元100是具有地址产生器逻辑以产生对外部存储器(例如,片外存储器,例如系统存储器10、输出缓冲器16及/或输出缓冲器17)的存储器地址请求的固定功能电路。预取处理单元100从存储在产生的存储器地址处的外部存储器预取前景和背景层像素数据。
在一些实例中,总线接口102可为根据先进可扩展接口(AXI)协议与系统组件通信的AXI接口。举例来说,总线接口102可构成AXI主接口且与其通信的组件可构成AXI从属装置。在其它实例中,总线接口102可为不同于AXI接口的总线接口。总线接口102可使显示处理器14能够与其它系统组件(例如GPU 12、输出缓冲器16、视频编解码器7和/或系统存储器10)通信。预取处理单元100与共享存储器104通信。在一些实例中,共享存储器104可为系统存储器10中的存储器空间。在其它实例中,共享存储器104可为不同于系统存储器10的外部存储器中的存储器空间。在其它实例中,共享存储器104可为显示处理器14上的存储器(例如,片上存储器)中的存储器空间。显示处理器14的组件(例如预取处理单元100、提取处理单元110、像素处理单元130和/或混合处理单元140)可取决于实例而视需要利用总线接口存取共享存储器104。
显示处理器14可包含提取处理单元110,其包含用于提取背景图块数据的BG读取数据打包器112以及用于提取前景图块数据的FG读取数据打包器114。提取处理单元110还包含BG图块地址产生器116和FG图块地址产生器118。
在一些实例中,FG读取数据打包器114和BG读取数据打包器112可为充当FG读取数据打包器114和BG读取数据打包器112的相同物理模块。在其它实例中,FG读取数据打包器114和BG读取数据打包器112可为两次示例化的相同物理模块:一个示例化用于FG读取数据打包器114且一个示例化用于BG读取数据打包器112。在此类实例中,每一示例化是具有相同固定功能电路的单独物理模块。
在一些实例中,FG图块地址产生器118和BG图块地址产生器116可为充当FG图块地址产生器118和BG图块地址产生器116的相同物理模块。在其它实例中,FG图块地址产生器118和BG图块地址产生器116可为两次示例化的相同物理模块:一个示例化用于FG图块地址产生器118且一个示例化用于BG图块地址产生器116。在此类实例中,每一示例化是具有相同固定功能电路的单独物理模块。
在一些实例中,共享存储器104由预取处理单元100以64像素×高度(H)像素的固定模式填充或以其它方式写入。提取处理单元110可从共享存储器104读取图块数据以打包来自共享存储器104的每一行前景图块数据以用于下游处理。下游处理可包含(例如)由像素处理单元130和/或混合处理单元140执行的任何处理。FG图块地址产生器118可产生用于提取具有宽度(W)×高度(H)像素尺寸的前景图块的存储器地址,其中W可小于、等于或大于64像素。使用由FG图块地址产生器118产生的地址,FG读取数据打包器114从共享存储器104读取前景图块数据并且可打包每一行前景图块数据。一旦被打包,FG读取数据打包器114可将每一经打包的行发送到下游以供处理。
类似于FG图块地址产生器118,BG图块地址产生器116可产生用于提取具有16像素×16像素尺寸的背景图块的存储器地址。在其它实例中,BG图块地址产生器116可产生用于提取具有宽度(W)×高度(H)像素尺寸的背景图块的存储器地址。
在一些实例中,共享存储器104的读取和写入接口是64位,这意指每次可将64位前景图块数据写入到共享存储器104以及/或每次从共享存储器104读取64位前景图块数据。预取处理单元100可在64位块中从外部存储器(例如,片外存储器,例如系统存储器10、输出缓冲器16和/或输出缓冲器17)读取数据。预取处理单元100将64位碎块的像素数据存储在共享存储器104中。单64位行的像素数据中的每一位可或可不对应于一行实际前景图块数据。此类非对应关系可例如在64位行含有大于一个前景图块的像素数据的情况下出现。FG读取数据打包器114和BG读取数据打包器112各自使用分别由FG图块地址产生器118和BG图块地址产生器116产生的地址从共享存储器104读取图块的所需像素数据。FG读取数据打包器114和BG读取数据打包器112各自分别形成大小为W×H的前景图块和大小为W×H的背景图块。在一些实例中,由BG读取数据打包器112形成的背景图块的大小固定在16像素×16像素处。
BG读取数据打包器112、FG读取数据打包器114、BG图块地址产生器116以及FG图块地址产生器118各自与提取顺序控制器120通信。提取顺序控制器120可将指令发到BG读取数据打包器112、FG读取数据打包器114、BG图块地址产生器116以及FG图块地址产生器118或对来自BG读取数据打包器112、FG读取数据打包器114、BG图块地址产生器116的指令作出响应。类似地,BG读取数据打包器112、FG读取数据打包器114、BG图块地址产生器116以及FG图块地址产生器118中的每一个可将指令发到提取顺序控制器120或对来自提取顺序控制器120的指令作出响应。
在一些实例中,提取顺序控制器120控制对应于图形数据帧的每一平面的提取顺序。举例来说,YUV格式化图像帧可作为单个平面(被称作交错格式)、两个平面(被称作伪平面格式)或三个平面(被称作平面格式)存储在DDR中。在此类实例中,取决于所述格式,可存在与每一帧相关联的三个平面。举例来说,在前景图块的情况下,可提取一或多个平面的数据。提取顺序控制器120可确保从每一前景和背景图块的共享存储器104提取一或多个平面中的每一个。取决于色彩格式,提取顺序控制器120可被配置成在提取期间在一或多个平面中使一或多个色彩通道插交错。在一些实例中,可对每一像素而非每一像素的分量执行任何下游处理(例如,由像素处理单元130执行的下游处理)。为了这样做,提取顺序控制器120可控制提取对应于每一图块的每一平面的方式。举例来说,提取顺序控制器120可控制对应于每一图块的每一平面的依序提取。作为另一实例,提取顺序控制器可控制两个或更多个平面的交错提取。在此实例中,提取顺序控制器120可在提取每一行Cb与Cr平面之间交替。作为另一实例,提取顺序控制器120可提取其中不同色彩通道交错的RGB色彩格式化图块的单个平面。作为另一实例,提取顺序控制器120可被配置成在符合YUV色彩格式或YUV加阿尔法色彩格式的图块的情况下提取三个平面。
除了控制图块数据的提取顺序之外,提取顺序控制器120还可产生针对每一平面待提取的输入图块大小。作为一实例,提取顺序控制器可基于缩放比和格式产生针对Y、Cb和Cr平面待提取的输入图块大小。提取顺序控制器120还可更新FG图块地址产生器118和BG图块地址产生器116在产生地址时使用的存储器指针,FG读取数据打包器114和BG读取数据打包器112依据所述地址从共享存储器104读取图块数据。
提取处理单元110可被配置成控制存储在共享存储器104中的预取的前景图块数据和预取的背景图块数据的提取。贯穿本发明提供关于提取处理单元110的额外细节。
虽然共享存储器104示出为定位在预取处理单元100与提取处理单元110之间,但应理解,图2是概念图。因此,在一些实例中,就此可存在共享存储器104的此类置放。然而,在其它实例中,共享存储器104可或可不如图2中所示地安置。然而,所有实例中的一个共同点是预取处理单元100和提取处理单元110与共享存储器104直接或间接(例如,通过另一组件间接地)通信。
显示处理器14可包含被配置成执行像素处理(例如,放大(upscaling)、缩小(downscaling)以及其它像素处理)的像素处理单元130。显示处理器14可包含混合处理单元140。混合处理单元140可被配置成使前景图块数据与背景图块数据混合以产生经混合图块数据以在显示器(例如显示器8)上呈现。举例来说,前景图块数据和背景图块数据可分别被视为前景图像层和背景图象层的部分。混合处理单元140可将前景图像层和背景图象层的图块混合在一起以产生经混合的图像层。经混合的图像层可形成帧以供显示。
预取处理单元100可被配置成从至少一个存储器(例如,视频编解码器7的片上存储器、GPU 12的片上存储器、输出缓冲器16和/或系统存储器10)预取前景和/或背景图块数据。作为一实例,预取处理单元100可被配置成从片外存储器(例如DDR存储器)预取图块数据。作为另一实例,预取处理单元100可被配置成从片外存储器(例如视频编解码器7的片上存储器或GPU 12的片上存储器)预取图块数据,但这要求在视频编解码器7和/或GPU 12的此类片上存储器中至少为至少一个帧分配足够的存储器,这比简单地从外部存储器预取到不仅显示处理器14并且还有视频编解码器7和GPU 12更昂贵。预取处理单元100可被配置成将预取的数据存储在存储器空间(例如,共享存储器104)中。提取处理单元110可被配置成从预取处理单元100利用的存储器空间提取预取的前景图块数据和背景图块数据。在一些实例中,提取处理单元110利用的存储器可仅为显示处理器14可存取。作为一个实例,提取处理单元110利用的存储器可为显示处理器14的片上存储器。作为另一实例,提取处理单元110利用的存储器可为显示处理器14外部的存储器(例如,系统存储器10),但被分配使得仅允许显示处理器14存取指定的存储器空间。换句话说,虽然系统存储器10可广泛地可被计算装置2的多个组件存取,但在一些实例中,可结合存取权利分割系统存储器10的存储器空间。
像素处理单元130可对从提取处理单元110接收的图块数据(例如,前景图块数据)执行像素处理。像素处理的一些实例包含增加取样、减少取样、缩放、色彩转换、旋转以及其它像素处理技术。增加取样的两个实例包含将符合YUV420或YUV422格式的输入格式转换成YUV444。像素处理单元130执行的任何缩放可对完全增加取样的像素执行。色彩转换的一个实例包含将符合YUV色彩格式的输入格式转换成RGB色彩格式。色彩转换的另一实例包含将符合RGB色彩格式的输入格式转换成YUV色彩格式。旋转像素处理的实例可包含使图像旋转90、180或270度。像素处理单元130可将经处理的图块数据存储于存储器(例如,随机存取存储器(RAM))中。
关于缩放,前景图块到像素处理单元130的缩放引擎的输入大小取决于与前景图块相关联的缩放比而变化。在这点上,前景图块可具有变化的大小。然而,通过使用预取处理单元100使前景图块大小与外部存储器请求解除联系,这可降低带宽浪费。举例来说,代替提取处理单元110从外部存储器请求变化大小的每一前景图块,预取处理单元100以与任何缩放比无关的固定增量(例如64像素增量)从外部存储器读取前景图块数据并且将预取的数据存储于共享存储器空间104中。继而,提取处理单元110可基于任何缩放比从共享存储器空间104读取前景图块数据,这意指读取请求大小由于取决于缩放比而不固定,这不同于与任何缩放比无关的预取处理单元100的读取请求大小。如在其它处陈述以及在本文中所描述,预取处理单元100通过利用预取乒乓缓冲器弥补带宽浪费。
在对提取的前景图块数据执行像素处理之后,像素处理单元130可将经处理的前景图块输出对混合处理单元140。混合处理单元140可请求像素处理单元130将经处理的图块数据传输到混合处理单元140(例如,混合处理单元140可向像素处理单元130请求分发经处理的图块数据)。像素处理单元130可将经处理的图块数据传输到混合处理单元140而无需从混合处理单元140接收需要如此做的请求(例如,像素处理单元130可将经处理的图块数据主动分发到混合处理单元140)。
混合处理单元140可混合像素处理单元130可能已经或可能尚未处理的提取的背景图块数据(例如,一或多个图块)与提取的前景图块数据(例如,一或多个图块)以产生经混合的图块(例如,一或多个经混合的图块)。举例来说,如果一个背景图块与一个前景图块混合,那么混合处理单元140产生经混合的图块。作为另一实例,如果两个相邻前景图块与两个相邻背景图块混合,那么由混合处理单元140产生的经混合图块数据将为两个相邻的经混合图块。在一些实例中,不需由像素处理单元130进行处理的前景图块数据可绕过像素处理单元130并且替代地直接发送到混合处理单元140。在此类实例中,提取顺序控制器120或前景读取数据打包器114可做出此确定,从而导致前景读取数据打包器114将此类前景图块数据传输到混合处理140而非像素处理单元130。在一些实例中,经混合图块数据写回(在框150处描绘)到存储器(例如,共享存储器104)。在此类实例中,此存储器空间通常被称作写回存储器。显示处理器14以光栅次序从此存储器空间(例如,系统存储器中的写回存储器)读取经混合图块的像素并且发送到显示器8以用于呈现。举例来说,显示处理器14可包含从写回存储器读取经混合帧(即,包括经混合像素的帧)的直接存储器存取(DMA)控制器。DMA控制器可将经混合帧传输到显示器8,或DMA可在将经混合帧传输到显示器8之前进一步处理经混合帧。举例来说,DMA可执行色域映射或色彩校正。在一些实例中,显示处理器14可在将经混合帧传输到显示器8之前对经混合帧执行额外处理。举例来说,显示处理器14可在将经混合帧传输到显示器8之前对经混合帧执行色彩调整和/或其它校正。
如本文中所使用,术语数据取决于上下文可指像素数据。举例来说,术语图块数据是指像素数据。作为另一实例,术语前景图块数据是指前景像素数据。此外,术语图块数据可被称为像素表示或图块化像素表示。像素数据可符合一或多个位的色彩格式。举例来说,图块数据中的每一像素可取决于色彩格式由一或多个位表示。
如本文中所描述,预取处理单元100可被配置成将预取的数据存储于存储器空间(例如共享存储器104)中。在一些实例中,此类存储器空间可为乒乓缓冲器或乒乓循环缓冲器。乒乓缓冲器可为共享存储器104中的存储器空间。共享存储器104中的乒乓缓冲器可构成根据一些实例的乒乓循环缓冲器。如本文中所使用,术语“乒乓缓冲器”可包含非环形(例如,不为虚拟环)或环形(例如,虚拟环)缓冲器。在一些实例中,术语“乒乓缓冲器”可指被配置成执行本文中所描述的一或多种技术的页翻转缓冲器或双重缓冲缓冲器。在其它实例中,术语“乒乓缓冲器”可指被配置成执行本文中所描述的一或多种技术的三重缓冲缓冲器或四重缓冲缓冲器。在一些实例中,术语“乒乓缓冲器”可指双重缓冲器(例如,乒(ping)缓冲器和乓(pong)缓冲器)。乒缓冲器和乓缓冲器可处理为非环形缓冲器和/或环形。如何处理乒缓冲器和乓缓冲器可取决于数据是写入到缓冲器还是从缓冲器读取。在一些实例中,术语“乒乓缓冲器”可指其中数据可写入到缓存器中的一个(例如,乒缓冲器)同时正在从另一缓冲器(例如,乓缓冲器)读取数据的双重缓冲器(例如,乒缓冲器和乓缓冲器)。如果数据正在写入到乓缓冲器,那么可从乒缓冲器读取数据。在其它实例中,术语“乒乓缓冲器”可指其中数据可以一次一个的方式写入到缓存器中的一个(例如,乒缓冲器或乓缓冲器)的双重缓冲器(例如,乒缓冲器和乓缓冲器)。然而,在读取期间,乒缓冲器和乓缓冲器可为几乎连续的存储器空间,使得在数据写入到缓存器中的仅一个的同时,可从两个缓存器读取数据。
在其中乒乓缓冲器为非环形的实例中,乒缓冲器可为独立循环缓冲器且乓缓冲器可为独立循环缓冲器。乒乓缓冲器的大小可取决于实例而变化。显示处理器14可包含用于前景图块数据的乒乓缓冲器、用于背景图块数据的乒乓缓冲器和/或对于写回图块数据(例如,由混合处理单元140输出的图块数据)的乒乓缓冲器。
举例来说,前景乒乓缓冲器可为128像素宽且64像素高。在此实例中,前景乒缓冲空间可为64×64像素,且前景乓缓冲空间也可为64×64像素。前景乒缓冲空间和前景乓缓冲空间的大小可基于像素处理单元130可被配置成对前景图块数据执行的最大缩小比以及图块的高度和/或宽度。乒缓冲器和乓缓冲器的高度和宽度为64像素是其中由于64像素四分之一缩小是16像素(其为背景图块的固定像素宽度)而使最大缩小比为四分之一(1/4)的实例。所属领域的技术人员因此将了解,前景乒乓缓冲器可基于像素处理单元130对前景数据执行的任何缩放。
参考其中前景乒缓冲空间为64×64像素且前景乓缓冲空间为64×64像素的实例,如图3A中所示,预取处理单元100可提取高达64像素的64×图块高度像素的前景图块数据。如图3A中所示出,当预取处理单元100将预取的图块数据存储(例如,写入)到前景乒乓缓冲器时,其中预取一个图块(64像素×图块高度像素)并写入于前景乒缓冲空间中,且预取另一图块(64像素×图块高度像素)并写入于前景乓缓冲空间中。图3A因而示出将预取的图块数据写入到前景乒乓缓冲器的一个实例。图3A中所示的缩放补偿图块提取实例固定为64像素。如本文中所描述,将提取固定在64像素处可确保对最小存取长度(MAL)的遵从性。
图3B示出从前景乒乓缓冲器读取(例如,提取)预取的前景图块数据的一个实例。如图3B中所示出,前景乒乓缓冲器可被配置为循环缓冲器。下文描述的图3D说明当乒乓缓冲器被配置成循环缓冲器时从前景乒乓缓冲器读取像素数据的过程。图块具有基于缩放算法计算的图块宽度像素×图块高度像素的大小。提取处理单元110从前景乒乓缓冲器而非例如帧缓冲器或除共享存储器104之外的存储器提取图块。虽然所述实例示出为呈虚拟圆周的128位,但其它实例可包含用于优化的较少位。举例来说,在一个实例中,前景乒乓缓冲器可为96位宽(并且呈虚拟圆周),同时仍可每次提取64像素。
图3C说明将像素数据写入到前景乒乓缓冲器中的过程。如图3C中所示出,预取处理单元100可被配置成预取多个相邻图块并且将图块存储在乒乓缓冲器中。提取处理单元110从乒乓缓冲器读取图块(在图3D中示出)。继续前景乓乓缓冲器的乒缓存器和乓缓存器的64像素宽实例,在操作中,预取处理单元100每次一行地将像素数据写入于乒缓冲器中。在此写入过程期间,预取处理单元100可能不了解每一64像素宽行是否包含一或多个图块。一旦乒缓冲器被填充,预取处理单元100切换到乓缓冲器以重复所述过程。同样地,当乓缓冲器被填充时,预取处理单元100返回到乒缓冲器以重复所述过程。在预取处理单元100将数据写入到乒乓缓冲器的同时,提取处理单元110可正在从乒乓缓冲器读取像素数据。举例来说,在预取处理单元100写入到乓缓冲器的同时,提取处理单元110可正在从乒缓冲器进行读取。同样地,在预取处理单元100写入到乒缓冲器的同时,提取处理单元110可正在从乓缓冲器进行读取。
图3D说明从前景乒乓缓冲器读取像素数据的过程。图3D还说明预取处理单元100可不了解正在写入到乒缓冲器和乓缓冲器的每一64像素宽行中的图块的数目或图块的完整性。图3D还说明其中图块数据可存在于乒缓冲器和乒缓冲器中(例如,图块3)的实例。在示出的实例中,当提取处理单元110从乒缓冲器读取时,其读取与三个图块相关联的像素数据。在此时间戳处,当提取处理单元110读取乓缓冲器以获取图块1、图块2以及图块3的像素数据时,显示图块1和3的像素数据不完整,这是因为并不从乒缓冲器读取所述图块中的每一个的整个宽度。然而,提取处理单元110此前在乓缓冲器对每一各别行的每一最后一次读取期间读取图块1的每一行的“丢失”像素。因为此是循环缓冲器,实际上在概念上并不存在如图3D中所描绘的“部分”图块,这是因为乒缓存器和乓缓存器可为连续存储器空间或经处理的连续存储器空间。图块3说明其中乓缓冲器含有图块3的每一行的剩余像素的此实例。举例来说,对于图块3,提取处理单元110开始于乓缓冲器中的最顶部像素行并且读取所述行。然而,由提取处理单元110发布的读取指令是基于图块宽度读取像素数目(例如,对应于图块宽度的像素数目)。因此,提取处理单元110继续到乓缓冲器中以提取图块3的剩余像素。举例来说,提取处理单元110将提取行1中的具有宽度“a”的像素,接着继续进行到提取乓缓冲器中的行1中的具有宽度“b”的像素。区段“a”和“b”一起构成图块3的整个行。针对图块1发生类似过程,不同之处在于对于图块1,每一行的开头开始于乓缓冲器末端的存储器空间中,并且在被图块5和图块6数据覆写之前被读取。图块4和5从乓缓冲器整体获得,且图块6从乓缓冲器部分地获得,剩余部分从乒缓冲器获得。应注意,图块6的剩余部分将由于乒乓缓冲器的环形(例如,环)方面而覆写在图块1上。
在其它实例中,预取处理单元100可以32像素宽度增量、64像素宽度增量或128像素宽度增量提取前景图块数据。此类预取可包含一或多个或两个或更多个前景图块。举例来说,预取处理单元100可以高达32像素的32×图块高度像素提取前景图块数据。在此实例中,乒乓缓冲器可为64像素宽且32像素高。作为另一实例,预取处理单元100可以高达128像素的128×图块高度像素提取前景图块数据。在此实例中,乒乓缓冲器可为256像素宽且128像素高。
通过预取前景和/或背景图块数据,预取处理单元100使外部存储器(例如,与GPU12相关联的帧缓冲器)和内部处理请求与显示处理器14(例如,提取处理单元110的处理请求)解除联系。举例来说,代替从视频编解码器7、GPU 12的片上存储器和/或输出缓冲器16的片上存储器提取,提取处理单元110从由预取处理单元100存储在乒乓缓冲器中的图块数据提取前景和背景图块。
另外,因为待显示的图像的图块可使用不同图块尺寸、像素位深度和/或色彩表示存储在乒乓缓存器中,所以显示处理器14的提取处理单元110可被配置成以灵活方式(例如,对应于图块和/或色彩分量的格式)从乒乓缓冲器读取图块数据。为了处置不同图块格式,预取处理单元100可如上文所阐述每次将64像素写入到乒乓缓冲器中,并且可包含另外确定乒乓缓冲器的特定区域是否对应于特定色彩平面(例如,YCbCr、RGBA等)的逻辑。在图3C中说明将像素数据读取到乒乓缓冲器中并且将乒乓缓存器分隔成图块的一个示范性过程。
如上文所识别,显示处理器14可包含背景乒乓缓冲器。预取处理单元100可预取背景图块数据,这意指预取处理单元100从除共享存储器104(例如,帧缓冲器)之外的存储器空间读取背景图块数据并且随后将预取的背景图块数据写入到背景乒乓缓冲器。背景乒乓缓冲器可为64像素宽并且16像素高。在此实例中,背景乒缓冲器可为32像素宽并且16像素高,且背景乓缓冲器可为32像素宽并且16像素高。由于背景图块固定在16像素宽到16像素高的大小下,因此使用32×16乒缓冲器和32×16乓缓冲器引起最大突发大小为16。换句话说,预取处理单元100可预取当前背景图块和相邻水平图块以解决带宽浪费问题并且使片外存储器的突发长度最大为高达16。在一些实例中,为了使突发长度最大为高达16,可需要预取至少32像素。如本文中所描述,减少对外部存储器的存储器请求的数目,预取处理单元100可通过以下中的一或多个减少带宽浪费:增加存储器突发的长度,独立于任何缩放比而预取前景图块数据(例如,根据例如64像素宽的固定大小预取前景图块数据而与任何缩放比无关),归因于水平重叠而移除过度提取,和/或使垂直重叠请求减少一半。
类似地,显示处理器14可包含写回乒乓缓冲器。显示处理器14可将由混合处理单元140输出的经混合图块数据写回(在图2中的框150处所示)到写回缓冲器。写回乒乓缓冲器可为64像素宽并且16像素高。在此实例中,写回乒缓冲器可为32像素宽并且16像素高,且写回乓缓冲器可为32像素宽并且16像素高。
在一些实例中,预取处理单元100可被配置成并行地预取(例如,读取)前景图块数据和背景图块数据。在其它实例中,预取处理单元100可被配置成依序或以其它非并行的方式预取前景图块数据和背景图块数据。归因于预取处理单元100执行的预取引起的乒乓缓冲空间(或任何缓冲空间)中的前景图块和背景图块的可用性可实现提取处理单元110从存储器(例如,乒乓存储器空间)的前景和背景图块的并行读取。
图4A描绘其中前景像素和背景像素可用于单时钟循环中的混合的实例。在示出的实例中,每行32像素。然而,在其它实例中,可为每行16像素、每行64像素或每行任何其它数目的像素。图4B描绘其中前景图块像素(例如,明度和色度格式化像素)和背景像素(例如,ARGB格式化像素)可用于单时钟循环中的混合的实例。在示出的实例中,每行32像素。然而,在其它实例中,可为每行16像素、每行64像素或每行任何其它数目的像素。
提取处理单元110可被配置成并行地提取第一前景图块和第一背景图块,并且在显示处理器对提取的第一前景图块进行像素处理的同时并行地提取第二前景图块和第二背景图块。显示处理器14的预取处理单元100因而可减少或消除原本因为缺少预取处理单元100而存在的低效处理。举例来说,预取处理单元100可使提取处理单元110能够并行地执行更多动作,由此节省处理资源。
作为另一实例,预取处理单元100的使用可减少显示处理器14做出的获得图块数据的初始存储器请求的数目。在此实例中,可减少存储器请求是因为与提取处理单元110被配置成请求的内容相比,预取处理单元100可获得每个请求较大量的图块数据。在一个实例中,预取处理单元100可在单存储器请求中读取对应于大于一个图块的图块数据,而提取处理单元110可被配置成读取对应于单个图块的图块数据。换句话说,预取处理单元100向除共享存储器104之外的存储器做出较少微调存储器请求,而提取处理单元110向共享存储器104做出较多微调存储器请求。通过这样做,预取处理单元100可减少显示处理器14向除共享存储器104之外的存储器做出(例如,传输)的存储器请求的数目。
在一些实例中,预取处理单元100串行(例如,轮循调度方式)执行前景和背景图块(或图块数据)预取。在其它实例中,预取处理单元100使用优先权仲裁技术执行前景和背景图块(或图块数据)预取。贯穿本发明提供关于预取处理单元100的额外细节。
前景、背景和写回乒乓缓存器可为存储器(例如,共享存储器104)中的单独或连续存储器空间。显示处理器14可基于待显示图像的旋转和缩小值动态分配存储器(例如,共享存储器104)中的用于前景、背景和写回乒乓缓存器的存储器空间。举例来说,图5A示出其中显示处理器14已分配用于前景乒乓缓冲器的四个64×32像素区域,用于背景乒乓缓冲器的一个16×16像素区域以及用于写回乒乓缓冲器的一个16×16像素区域的实例。在一些实例中,显示处理器14可当待显示的图像需要缩小小于三分之一(1/3)并且不被旋转时,或当待显示的图像需要缩小小于三分之二(2/3)并且将被旋转时,认为此类分配是恰当的。图5A中所示的存储器的不同区域可连续或可不连续。
图5B描绘乒乓缓存器的存储器分配的另一实例。在此实例中,显示处理器14已分配用于前景乒乓缓冲器的两个64×32像素区域和两个64×16像素区域,用于背景乒乓缓冲器的两个32×16像素区域以及用于写回乒乓缓冲器的两个32×16像素区域。在一些实例中,显示处理器14可当待显示的图像需要缩小三分之一(1/3)或更大比并且不被旋转时,或当待显示的图像需要缩小三分之二(2/3)或更大比并且将被旋转时,认为此类分配是恰当的。图5B中所示的存储器的不同区域可连续或可不连续。
图5A和5B是概念性的;然而,其描绘显示处理器14可当缩放比增加时通过乒乓缓存器减少存储器空间消耗。举例来说,在图5B中分配用于乒乓缓存器的存储器具有小于在图5A中分配用于乒乓缓存器的存储器的32×32像素。如本文中所描述,乒乓缓冲器存储器可基于将应用于前景图块数据的缩放因数等进行分配。举例来说,分配用于前景数据的乒乓缓冲器存储器的存储器可等同于:(1)乒乓缓冲器宽度=16除以缩放因数并且(2)乒乓缓冲器高度=16除以缩放因数。举例来说,缩小因数1/4将等同于具有64×64像素大小的乒乓缓冲器,而缩小因数1/2将等同于具有32×32大小的乒乓缓冲器。
在一些实例中,显示处理器14可归因于缩放而减少或消除像素的过度提取,这是因为此类像素已经处于保存超过仅单个图块的图块数据的前景乒乓缓冲器中。在一些实例中,预取处理单元100可归因于垂直图块重叠而减少或消除像素行再提取。在一些实例中,显示处理器14可通过使用预取处理单元100来减少片外存储器请求的数目。
图6是说明根据本文中所描述的技术的前景、背景和写回乒乓缓存器的概念图。在一些实例中,乒乓缓冲器可被配置成虚拟分成多个区域,其中每一区域对应于像素类型的伪平面格式(例如,明度、色度和/或阿尔法)。
在伪平面格式的情况下,一个图块包含来自明度和色度图块的交错行。在此格式中,提取处理单元110以z字形图案的交替方式从共享存储器104提取每一行的图块图块和色度图块以产生明度-色度图块,之后将此类图块发送到像素处理单元130或混合处理单元140。举例来说,提取处理单元110可从明度图块的最左上像素开始并且继续进行到借助于预取处理单元100进行的预取提取存储在共享存储器104中的第一行的明度图块上的所有像素。随后,提取处理单元110从色度图块的最左上像素开始并且提取第一行的色度图块上的所有像素。随后,提取处理单元110移动到第二行的明度图块并且从最左边像素开始以提取第二行的明度图块上的所有像素。随后,提取处理单元110移动到第二行的色度图块并且从最左边像素开始以提取第二行的色度图块上的所有像素。此过程继续进行直到提取处理单元110到达明度和色度图块中的最右下像素为止。
在一些实例中,预取处理单元100相反地单独预取(例如,读取)明度和色度图块而无需使行在提取期间交替(或在使平面交替之前至少提取两个或更多个行)。在涉及DDR存储器空间的一实例中,由于平面数据(例如,明度图块数据和色度图块数据)单独地存储在连续存储器位置(例如,帧缓冲器或除共享存储器104以外的其它存储器)中,因此在每个行之后在平面之间连续切换造成打开较高数目的DDR页。可实施本发明的技术以通过在提取过程期间在每个行之后不在平面之间切换来改进DDR存储器效率的效率(或预取处理单元100将存储器请求发到的任何其它存储器)。换句话说,预取处理单元100可当从存储器(例如,DDR存储器)读取明度和色度图块数据时,不在读取每一行明度和色度图块之间交替。以此方式,预取处理单元100当将存储器请求传送到存储器时不在不同平面(例如,明度和色度)之间切换,进而改进从存储器读取数据的效率,这是因为涉及较小通信负担(例如,在交替方式中,当以交替方式读取明度和色度行时,每一行需要单独存储器请求;而在非交替方式中,一个存储器请求可包含包括多于一行的图块的存储器空间的跨距)。换句话说,预取处理单元100可通过在交替方式中不从明度和色度图块预取行来减少读取请求的数目。较少平面切换造成较少存储器请求,这还节省带宽(例如,减少带宽消耗)和存储器工作负荷。
如上文所识别,预取处理单元100还可通过以交替方式一次预取两个或更多个行的明度和色度来减少存储器请求的数目。然而,此实例中的存储器请求减少小于其中没有平面切换的存储器减少实例。
虽然上文的实例涉及预取处理单元100不以交错/交替方式提取明度和色度行,但应理解,预取处理单元100可对其它此类图块执行类似处理。举例来说,可类似地预取含有来自三个图块(例如,明度、色度和阿尔法)的三个交错式行的图块,使得预取每一行的第一块,接着预取每一行的第二块,并且接着预取每一行的第三块。在一些实例中,预取处理单元100可并行地执行每一行的第一、第二和第三块中的每一个的预取。如本文中所描述,预取处理单元100可通过将交错式图块的构建留给提取处理单元110来减少存储器请求。
在一些实例中,当预取(例如,读取)或写入非对准图块时可造成带宽浪费,这是因为当存取片外存储器(例如,双数据速率(DDR)存储器)或除共享存储器104以外的任何存储器位置时,此类图块违反最小获取长度(MAL)要求。违反MAL要求可导致显示处理器14必须填充位(例如,浪费位以及因此带宽)以便遵从MAL要求(例如,在当前DDR存储器中为32、64或128位)。在其它实例中,显示处理器可不填充未用位,但仍可能会造成带宽浪费。举例来说,在DDR-3中,最小DRAM突发长度可为8。在此实例中,假设LPDDR3数据宽度为32位,那么DRAM每次存取提取32×8=256位(或32字节)的数据。这又花费8DRAM一半的循环(即,4循环)来在显示处理器和DRAM之间传送数据。换句话说,以4循环边界的最小值来存取DRAM。如果请求小于32字节,那么将引入空闲循环以覆盖四个循环。因此,如果例如在此实例中的所有突发是16字节长,那么可使用仅50%的可用DRAM带宽。可实施本发明的技术以通过例如去除或减小任何位填充,或去除或减小未使用的存储器循环的量,来减少或去除此带宽浪费。举例来说,预取处理单元100可以64像素固定增量预取每一行的前景图块数据。在此类实例中,可对准预取处理单元100的所有存储器请求以具有64、128、196或256的最小存取长度(MAL),而不必填充任何位以遵从MAL。
作为另一实例,图块大小可基于归因于缩放算法涉及的缩放比、水平重叠和/或垂直重叠而变化行的图块数据可等于(图块宽度+水平重叠)×BPP(位/像素),其中BPP取决于输入格式。此计算可不为32字节的倍数。然而,DDR最小存取长度或粒度可为例如32、64、128和256。在此实例中,每当一行数据不是MAL的倍数,可造成带宽浪费。显示处理器14可被配置成根据本发明的一或多种技术以MAL对准方式从存储器(例如,任何类型的DDR存储器)预取数据。举例来说,显示处理器14可被配置成在MAL是用于存储器的32字节的情况下以32字节增量从存储器预取数据。作为另一实例,显示处理器14可被配置成在MAL是用于存储器的64字节的情况下以64字节增量从存储器预取数据。作为另一实例,显示处理器14可被配置成在MAL是用于存储器的128字节的情况下以128字节增量从存储器预取数据。取决于预取的数据的大小(例如,32字节、64字节等),可调整本文中所描述的一或多个乒乓缓存器的大小。
图7A是说明与用于本发明的显示处理的技术一致的实例过程的流程图。举例来说,图7A是图2中描绘的显示处理器14的操作的一个实例。图7A的过程通常出于说明的目的被描述为由显示处理器14执行,不过多种其它处理器还可执行图7A中示出的过程。在一些实例中,预取处理单元100和/或提取处理单元110可图7A中示出的一或多个过程。
在图7A的实例中,显示处理器14可从第一存储器空间读取(200)前景图像的第一前景图块数据。在一些实例中,显示处理器14可将读取的第一前景图块数据存储(202)到第二存储器空间中。显示处理器14可从第一存储器空间读取(204)背景图像的第一背景图块数据。显示处理器14可将读取的第一背景图块数据存储(206)到第三存储器空间中。显示处理器14可从第二存储器空间读取(208)第一前景图块数据的数据子集。显示处理器14可从第三存储器空间读取(210)第一背景图块数据的数据子集。显示处理器14可处理第一前景图块数据的数据子集的像素。显示处理器14可使第一前景图块数据的数据子集的经处理像素与第一背景图块数据的数据子集的像素混合以产生经混合的图块数据。显示处理器14可将经混合的图块数据存储到第四存储器空间中。在一些实例中,第一存储器空间可为帧缓冲器,第二存储器空间可为前景乒乓缓冲器,第三存储器空间可为背景乒乓缓冲器,且/或第四存储器空间可为写回乒乓缓冲器。
图7B是说明与用于本发明的显示处理的技术一致的另一实例过程的流程图。举例来说,图7B是图2中描绘的显示处理器14的操作的一个实例。图7B的过程通常出于说明的目的被描述为由显示处理器14执行,不过多种其它处理器还可执行图7B中示出的过程。在一些实例中,预取处理单元100和/或提取处理单元110可图7B中示出的一或多个过程。
在图7B的实例中,显示处理器14可从帧缓冲器读取(220)前景图像的第一前景图块数据。显示处理器14可将读取的第一前景图块数据存储(222)到前景乒乓缓冲器中。显示处理器14可从帧缓冲器读取(224)背景图像的第一背景图块数据。显示处理器14可将读取的第一背景图块数据存储(226)到背景乒乓缓冲器中。显示处理器14可从前景乒乓缓冲器读取(228)第一前景图块数据的数据子集。显示处理器14可从背景乒乓缓冲器读取(230)第一背景图块数据的数据子集。
图8说明示出显示处理器14的基于图块的处理的一个实例并且更具体地说当显示处理器14使前景层图像数据相对于背景层图像数据旋转时的实例的概念图。图8示出前景图像180、背景图像182和经混合的图像184。前景图像180和背景图像182可由GPU 12输出并且存储在帧缓冲器(例如,输出缓冲器16)中。在此实例中,前景图像180包含图块0-15且背景图像182包含图块a-p。写回图像184包含如描绘的经混合的图块。图8中所示的实例出于描述显示处理器可如何执行前景图像(或其图块)的旋转以与旋转的背景图像(或其图块)混合的目的示出。
预取处理单元100执行前景预取186和背景预取188。前景预取186和背景预取188可或可不并行地进行。前景预取186将预取的前景图块数据(在此实例中为图块0-7)存储到显示处理器14可存取的前景乒乓缓冲器中。背景预取188将预取的背景图块数据(在此实例中为图块c和d)存储到显示处理器14可存取的背景乒乓缓冲器中。
提取处理单元110执行前景提取190和背景提取192。前景提取190和背景提取192可或可不并行地进行。前景提取190可读取一或多个图块(或来自前景乒乓缓冲器的两个或更多个图块)。在此实例中,提取处理单元110从前景乒乓缓冲器读取(例如,提取)前景数据的两个图块(图块0和4)。背景提取192可读取一或多个图块(或来自前景乒乓缓冲器的两个或更多个图块)。在此实例中,提取处理单元110从背景乒乓缓冲器读取(例如,提取)背景数据的两个图块(图块c和d)。
像素处理单元130可旋转(描绘为图8中的旋转194)提取的前景图块数据(在此实例中为垂直取向的图块0和4)以与旋转的背景图像182一致。在此实例中,提取的前景图块数据逆时针旋转90度,使得图块0和4以与提取的背景图块数据类似地水平取向。在一些实例中,可在提取处理单元110执行背景提取192的同时,执行示出的提取的前景数据的旋转。在其它实例中,可在执行前景提取190和背景提取192之后执行示出的提取的前景数据的旋转。
显示处理器14的混合处理单元140可使旋转的提取的前景图块数据(例如,图块0和4)与提取的背景图块数据(例如,图块c和d)混合(描绘为图8中的混合96)以产生经混合的图块数据(例如,图块4/c和0/d)。经混合的图块数据可写回(描绘为图8中的写回198)到写回乒乓缓冲器。
在图8中示出的实例中,不描绘整个处理顺序。在一些实例中,可在此段落中描述处理顺序。在其它实例中,处理顺序可不同于此段落中描述的处理顺序。预取处理单元100可被配置成按照以下次序预取图块0-15:0、4、1、5、2、6、3、7、8、12、9、13、10、14、11、15。在一些实例中,可第一预取图块0-7,且可第二预取图块8-15。在其它实例中,可预取一或多个图块0-15。图块0-15的任何预取可或可不与图块a-p的任何预取并行地进行预取。预取处理单元100可被配置成按照以下次序预取图块a-p:d、c、h、g、l、k、p、o、b、a、f、e、j、i、n、m。在一些实例中,可第一预取图块d和c,且可第二预取图块h和g,可第三次预取图块l和k,可第四预取图块p和o,可第五预取图块b和a,可第六预取图块f和e,可第七预取图块j和i,且可第八预取图块n和m。在其它实例中,可预取一或多个图块a-p。图块a-p的任何预取可或可不与图块0-15的预取并行地进行预取。在一些实例中,显示处理器14可被配置成根据以下顺序将经混合的图块回写到存储器:0/d、4/c、1/h、5/g、2/l、6/k、3/p、7/o、8/b、12/a、9/f、13/e、10/j、14/i、11,/n、15/m。在一些实例中,显示处理器14可被配置成根据上文两个或更多个图块的群组的顺序回写经混合的图块。举例来说,显示处理器14可被配置成第一回写图块0/d和4/c,接着显示处理器14可被配置成回写图块1/h和5/g等等。在一些实例中,显示处理器14可被配置成通过根据以上的处理顺序增加存储器请求的突发长度。举例来说,显示处理器14可被配置成通过预取水平上邻近的背景图块增加存储器请求的突发长度。
根据本发明,在上下文并无其它指示的情况下,可将术语“或”推断为“和/或”。另外,虽然例如“一或多个”或“至少一个”等短语可能已用于本文所揭示的一些特征而不是其它特征;但在上下文并无其它指示的情况下,未针对其使用此类语言的特征可解释为暗含此类含义。
在一或多个实例中,所描述功能可以硬件、软件、固件或其任何组合来实施。举例来说,虽然已贯穿本发明使用术语“处理单元”,但应理解,此类处理单元可以硬件、软件、固件或其任何组合来实施。如果本文中所描述的任何功能、处理单元、技术或其它模块以软件实施,那么本文中所描述的所述功能、处理单元、技术或其它模块可存储于计算机可读媒体上或作为计算机可读媒体上的一或多个指令或代码传输。计算机可读媒体可包含计算机数据存储媒体或通信媒体,所述通信媒体包含促进计算机程序从一处传递到另一处的任何媒体。以此方式,计算机可读媒体通常可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如信号或载波。数据存储媒体可以是可由一或多个计算机或者一或多个处理器存取以检索用于实施本发明中描述的技术的指令、代码和/或数据结构的任何可用媒体。借助于实例而非限制,这些计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。计算机程序产品可包含计算机可读媒体。
代码可以由一或多个处理器执行,所述一或多个处理器例如是一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”可指代上述结构或适用于实施本文中所描述的技术的任何其它结构中的任一个。另外,在一些方面中,本文中所描述的功能性可在被配置成用于编码和解码的专用硬件和/或软件模块内提供,或并入在组合的编解码器中。并且,所述技术可完全实施于一或多个电路或逻辑元件中。
本发明的技术可实施于多种装置或设备中,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本发明中描述各种组件、模块或单元是为了强调被配置成执行所揭示的技术的装置的功能方面,但未必需要通过不同硬件单元实现。确切地,如上文所描述,各种单元可结合合适的软件和/或固件组合在编解码器硬件单元中,或由互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。
已经描述了本发明的各个方面。这些和其它方面在所附权利要求书的范围内。
Claims (30)
1.一种用于通过显示处理器进行基于图块的处理的方法,所述方法包括:
通过所述显示处理器的预取处理单元从第一存储器空间读取前景图像的第一前景图块数据;
通过所述显示处理器的所述预取处理单元将所述读取的第一前景图块数据存储到第二存储器空间中;
通过所述显示处理器的所述预取处理单元从所述第一存储器空间读取背景图像的第一背景图块数据;
通过所述显示处理器的所述预取处理单元将所述读取的第一背景图块数据存储到第三存储器空间中;
通过所述显示处理器的提取处理单元从所述第二存储器空间读取所述第一前景图块数据的数据子集;以及
通过所述显示处理器的所述提取处理单元从所述第三存储器空间读取所述第一背景图块数据的数据子集。
2.根据权利要求1所述的方法,其进一步包括处理所述第一前景图块数据的所述数据子集的像素。
3.根据权利要求2所述的方法,其进一步包括通过使所述第一前景图块数据的所述数据子集的所述经处理像素与所述第一背景图块数据的所述数据子集的像素混合以产生经混合的图块数据。
4.根据权利要求3所述的方法,其进一步包括将所述经混合的图块数据存储到第四存储器空间中。
5.根据权利要求4所述的方法,其中所述第一存储器空间是帧缓冲器,其中所述第二存储器空间是前景乒乓缓冲器,其中所述第三存储器空间是背景乒乓缓冲器,且其中所述第四存储器空间是写回乒乓缓冲器。
6.根据权利要求1所述的方法,其中所述第一前景图块数据包括所述前景图像的至少一个图块,且其中所述第一背景图块数据包括所述背景图像的至少一个图块。
7.根据权利要求1所述的方法,其中所述第一前景图块数据包括所述前景图像的至少两个图块,且其中所述第一背景图块数据包括所述背景图像的至少两个图块。
8.根据权利要求1所述的方法,其中所述第一前景图块数据的所述数据子集包括所述前景图像的至少一个图块,且其中所述第一背景图块数据的所述数据子集包括所述背景图像的至少一个图块。
9.根据权利要求1所述的方法,其中所述第一前景图块数据的所述数据子集包括所述前景图像的至少两个图块,且其中所述第一背景图块数据的所述数据子集包括所述背景图像的至少两个图块。
10.根据权利要求1所述的方法,其中读取和存储所述前景图块数据是在读取和存储所述背景图块数据之前发生。
11.根据权利要求1所述的方法,其中读取和存储所述前景图块数据与读取和存储所述背景图块数据并行地发生。
12.根据权利要求1所述的方法,其进一步包括基于前景图块数据缩放信息或背景图块数据旋转信息确定所述第二存储器空间或所述第三存储器空间中的至少一个的大小。
13.根据权利要求12所述的方法,其进一步包括基于所述大小分配用于所述第二存储器空间或所述第三存储器空间中的至少一个的存储器。
14.一种计算装置,其包括:
第一存储器空间;
第二存储器空间,其用于存储前景图像的前景图块数据;
第三存储器空间,其用于存储背景图像的背景图块数据;以及
显示处理器,其包含预取处理单元和提取处理单元,
其中所述预取处理单元被配置成从所述第一存储器空间读取所述前景图像的第一前景图块数据,将所述读取的第一前景图块数据存储到所述第二存储器空间中,从所述第一存储器空间读取所述背景图像的第一背景图块数据,以及将所述读取的第一背景图块数据存储到所述第三存储器空间中,且
其中所述提取处理单元被配置成从所述第二存储器空间读取所述第一前景图块数据的数据子集,以及从所述第三存储器空间读取所述第一背景图块数据的数据子集。
15.根据权利要求14所述的计算装置,其中所述计算装置进一步包括像素处理单元,所述像素处理单元被配置成处理所述第一前景图块数据的所述数据子集的像素。
16.根据权利要求15所述的计算装置,其中所述计算装置进一步包括混合处理单元,所述混合处理单元被配置成使所述第一前景图块数据的所述数据子集的经处理像素与所述第一背景图块数据的所述数据子集的像素混合以产生经混合的图块数据。
17.根据权利要求16所述的计算装置,其中所述显示处理器进一步被配置成将所述经混合的图块数据存储到第四存储器空间中。
18.根据权利要求17所述的计算装置,其中所述第一存储器空间是帧缓冲器,其中所述第二存储器空间是前景乒乓缓冲器,其中所述第三存储器空间是背景乒乓缓冲器,且其中所述第四存储器空间是写回乒乓缓冲器。
19.根据权利要求14所述的计算装置,其中所述第一前景图块数据包括所述前景图像的至少一个图块,且其中所述第一背景图块数据包括所述背景图像的至少一个图块。
20.根据权利要求14所述的计算装置,其中所述第一前景图块数据包括所述前景图像的至少两个图块,且其中所述第一背景图块数据包括所述背景图像的至少两个图块。
21.根据权利要求14所述的计算装置,其中所述第一前景图块数据的所述数据子集包括所述前景图像的至少一个图块,且其中所述第一背景图块数据的所述数据子集包括所述背景图像的至少一个图块。
22.根据权利要求14所述的计算装置,其中所述第一前景图块数据的所述数据子集包括所述前景图像的至少两个图块,且其中所述第一背景图块数据的所述数据子集包括所述背景图像的至少两个图块。
23.根据权利要求14所述的计算装置,其中所述预取处理单元被配置成在读取和存储所述背景图块数据之前读取和存储所述前景图块数据。
24.根据权利要求14所述的计算装置,其中所述预取处理单元被配置成与读取和存储所述背景图块数据并行地读取和存储所述前景图块数据。
25.根据权利要求14所述的计算装置,其中所述预取处理单元被配置成基于前景图块数据缩放信息或背景图块数据旋转信息确定所述第二存储器空间或所述第三存储器空间中的至少一个的大小。
26.根据权利要求25所述的计算装置,其中所述预取处理单元被配置成基于所述大小分配用于所述第二存储器空间或所述第三存储器空间中的至少一个的存储器。
27.一种设备,其包括:
用于从第一存储器空间读取前景图像的第一前景图块数据的装置;
用于将所述读取的第一前景图块数据存储到第二存储器空间中的装置;
用于从所述第一存储器空间读取背景图像的第一背景图块数据的装置;
用于将所述读取的第一背景图块数据存储到第三存储器空间中的装置;
用于从所述第二存储器空间读取所述第一前景图块数据的数据子集的装置;以及用于从所述第三存储器空间读取所述第一背景图块数据的数据子集的装置。
28.根据权利要求27所述的设备,其进一步包括:
用于处理所述第一前景图块数据的所述数据子集的像素的装置;
用于使所述第一前景图块数据的所述数据子集的所述经处理像素与所述第一背景图块数据的所述数据子集的像素混合以产生经混合的图块数据的装置;以及
用于将所述经混合的图块数据存储到第四存储器空间中的装置,其中所述第一存储器空间是帧缓冲器,其中所述第二存储器空间是前景乒乓缓冲器,其中所述第三存储器空间是背景乒乓缓冲器,且其中所述第四存储器空间是写回乒乓缓冲器。
29.一种上面存储有指令的非暂时性计算机可读存储媒体,所述指令在被执行时,致使计算装置的一或多个处理器:
从第一存储器空间读取前景图像的第一前景图块数据;
将所述读取的第一前景图块数据存储到第二存储器空间中;
从所述第一存储器空间读取背景图像的第一背景图块数据;
将所述读取的第一背景图块数据存储到第三存储器空间中;
从所述第二存储器空间读取所述第一前景图块数据的数据子集;以及
从所述第三存储器空间读取所述第一背景图块数据的数据子集。
30.根据权利要求29所述的非暂时性计算机可读存储媒体,其中所述指令在被执行时致使计算装置的一或多个处理器:
处理所述第一前景图块数据的所述数据子集的像素;
使所述第一前景图块数据的所述数据子集的所述经处理像素与所述第一背景图块数据的所述数据子集的像素混合以产生经混合的图块数据;以及
将所述经混合的图块数据存储到第四存储器空间中,其中所述第一存储器空间是帧缓冲器,其中所述第二存储器空间是前景乒乓缓冲器,其中所述第三存储器空间是背景乒乓缓冲器,且其中所述第四存储器空间是写回乒乓缓冲器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/860,225 | 2015-09-21 | ||
US14/860,225 US9990690B2 (en) | 2015-09-21 | 2015-09-21 | Efficient display processing with pre-fetching |
PCT/US2016/044979 WO2017052781A1 (en) | 2015-09-21 | 2016-08-01 | Efficient display processing with pre-fetching |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108027958A true CN108027958A (zh) | 2018-05-11 |
Family
ID=56853799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680053996.XA Pending CN108027958A (zh) | 2015-09-21 | 2016-08-01 | 通过预取进行高效显示处理 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9990690B2 (zh) |
EP (1) | EP3353737A1 (zh) |
JP (1) | JP2018534607A (zh) |
KR (1) | KR20180054797A (zh) |
CN (1) | CN108027958A (zh) |
BR (1) | BR112018007224A2 (zh) |
WO (1) | WO2017052781A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109461113A (zh) * | 2018-10-11 | 2019-03-12 | 中国人民解放军国防科技大学 | 一种面向数据结构的图形处理器数据预取方法及装置 |
CN110737321A (zh) * | 2019-09-03 | 2020-01-31 | 珠海亿智电子科技有限公司 | 一种低功耗显示背景图像的图像显示装置及其方法 |
CN112997245A (zh) * | 2018-11-14 | 2021-06-18 | 韦斯特尔电子工业和贸易有限责任公司 | 用于生成图像的方法、计算机程序和装置 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150228106A1 (en) * | 2014-02-13 | 2015-08-13 | Vixs Systems Inc. | Low latency video texture mapping via tight integration of codec engine with 3d graphics engine |
USD772889S1 (en) | 2014-10-06 | 2016-11-29 | National Comprehensive Cancer Network | Display screen or portion thereof with graphical user interface for clinical practice guidelines |
USD770468S1 (en) | 2014-10-06 | 2016-11-01 | National Comprehensive Cancer Network | Display screen or portion thereof with graphical user interface for clinical practice guidelines |
KR102583929B1 (ko) * | 2017-02-24 | 2023-10-04 | 삼성전자주식회사 | 디스플레이 장치 및 그 제어 방법 |
KR102554419B1 (ko) * | 2017-12-26 | 2023-07-11 | 삼성전자주식회사 | 프리페칭된 그래픽스 데이터를 이용하여 타일 기반 렌더링을 수행하는 방법 및 장치 |
US10257487B1 (en) | 2018-01-16 | 2019-04-09 | Qualcomm Incorporated | Power efficient video playback based on display hardware feedback |
US10798510B2 (en) * | 2018-04-18 | 2020-10-06 | Philip Scott Lyren | Method that expedites playing sound of a talking emoji |
GB2575030B (en) * | 2018-06-22 | 2020-10-21 | Advanced Risc Mach Ltd | Data processing systems |
US10950305B1 (en) * | 2018-11-02 | 2021-03-16 | Facebook Technologies, Llc | Selective pixel output |
CN114168505B (zh) * | 2021-11-30 | 2023-12-01 | 中国电子科技集团公司第四十七研究所 | 图像dma控制器及其实现方法 |
CN114666289B (zh) * | 2022-03-18 | 2024-01-16 | 安方高科电磁安全技术(北京)有限公司 | 一种基于电磁屏蔽体的数据传输方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101226504A (zh) * | 2008-01-25 | 2008-07-23 | 炬力集成电路设计有限公司 | 一种防止存储器读损的方法及装置 |
CN101958103A (zh) * | 2009-07-16 | 2011-01-26 | Nec液晶技术株式会社 | 图像显示设备及其驱动方法 |
US20120268465A1 (en) * | 2009-10-26 | 2012-10-25 | Sony Computer Entertainment Inc. | Image file generation device, image processing device, image file generation method, image processing method, and data structure for image files |
CN103310422A (zh) * | 2013-06-28 | 2013-09-18 | 新晨易捷(北京)科技有限公司 | 获取图像的方法及装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4540753B2 (ja) * | 1995-08-04 | 2010-09-08 | マイクロソフト コーポレーション | グラフィックオブジェクトを画像チャンクにレンダリングして、画像層を表示画像に組み合わせる方法及びシステム |
US6002407A (en) | 1997-12-16 | 1999-12-14 | Oak Technology, Inc. | Cache memory and method for use in generating computer graphics texture |
JP3956843B2 (ja) * | 2002-12-18 | 2007-08-08 | 株式会社デンソー | 移動物体検出装置及びプログラム |
US7433494B2 (en) * | 2002-09-19 | 2008-10-07 | Denso Corporation | Moving body detecting apparatus |
US6911983B2 (en) * | 2003-03-12 | 2005-06-28 | Nvidia Corporation | Double-buffering of pixel data using copy-on-write semantics |
JP4725741B2 (ja) * | 2005-01-04 | 2011-07-13 | 新世代株式会社 | 描画装置及び描画方法 |
TWI397899B (zh) | 2007-04-30 | 2013-06-01 | Mstar Semiconductor Inc | 多視窗顯示控制器及相關方法 |
JP5202281B2 (ja) * | 2008-12-19 | 2013-06-05 | キヤノン株式会社 | 画像処理装置及び画像処理方法 |
GB2470611B (en) * | 2009-06-25 | 2011-06-29 | Tv One Ltd | Apparatus and method for processing data |
US8988443B2 (en) | 2009-09-25 | 2015-03-24 | Arm Limited | Methods of and apparatus for controlling the reading of arrays of data from memory |
US8405668B2 (en) * | 2010-11-19 | 2013-03-26 | Apple Inc. | Streaming translation in display pipe |
JP2013047747A (ja) * | 2011-08-29 | 2013-03-07 | Daito Giken:Kk | 遊技台 |
US8803920B2 (en) | 2011-12-12 | 2014-08-12 | Google Inc. | Pre-fetching map tile data along a route |
US9645934B2 (en) | 2013-09-13 | 2017-05-09 | Samsung Electronics Co., Ltd. | System-on-chip and address translation method thereof using a translation lookaside buffer and a prefetch buffer |
-
2015
- 2015-09-21 US US14/860,225 patent/US9990690B2/en not_active Expired - Fee Related
-
2016
- 2016-08-01 WO PCT/US2016/044979 patent/WO2017052781A1/en active Application Filing
- 2016-08-01 BR BR112018007224A patent/BR112018007224A2/pt not_active Application Discontinuation
- 2016-08-01 CN CN201680053996.XA patent/CN108027958A/zh active Pending
- 2016-08-01 EP EP16760228.3A patent/EP3353737A1/en not_active Withdrawn
- 2016-08-01 KR KR1020187011134A patent/KR20180054797A/ko not_active Application Discontinuation
- 2016-08-01 JP JP2018514348A patent/JP2018534607A/ja not_active Ceased
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101226504A (zh) * | 2008-01-25 | 2008-07-23 | 炬力集成电路设计有限公司 | 一种防止存储器读损的方法及装置 |
CN101958103A (zh) * | 2009-07-16 | 2011-01-26 | Nec液晶技术株式会社 | 图像显示设备及其驱动方法 |
US20120268465A1 (en) * | 2009-10-26 | 2012-10-25 | Sony Computer Entertainment Inc. | Image file generation device, image processing device, image file generation method, image processing method, and data structure for image files |
CN103310422A (zh) * | 2013-06-28 | 2013-09-18 | 新晨易捷(北京)科技有限公司 | 获取图像的方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109461113A (zh) * | 2018-10-11 | 2019-03-12 | 中国人民解放军国防科技大学 | 一种面向数据结构的图形处理器数据预取方法及装置 |
CN109461113B (zh) * | 2018-10-11 | 2021-07-16 | 中国人民解放军国防科技大学 | 一种面向数据结构的图形处理器数据预取方法及装置 |
CN112997245A (zh) * | 2018-11-14 | 2021-06-18 | 韦斯特尔电子工业和贸易有限责任公司 | 用于生成图像的方法、计算机程序和装置 |
CN110737321A (zh) * | 2019-09-03 | 2020-01-31 | 珠海亿智电子科技有限公司 | 一种低功耗显示背景图像的图像显示装置及其方法 |
CN110737321B (zh) * | 2019-09-03 | 2024-04-02 | 珠海亿智电子科技有限公司 | 一种低功耗显示背景图像的图像显示装置及其方法 |
Also Published As
Publication number | Publication date |
---|---|
US20170083999A1 (en) | 2017-03-23 |
EP3353737A1 (en) | 2018-08-01 |
KR20180054797A (ko) | 2018-05-24 |
JP2018534607A (ja) | 2018-11-22 |
US9990690B2 (en) | 2018-06-05 |
WO2017052781A1 (en) | 2017-03-30 |
BR112018007224A2 (pt) | 2018-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108027958A (zh) | 通过预取进行高效显示处理 | |
ES2929749T3 (es) | Selector de calidad basado en vecinos 360, ajustador de rango, gestor de ventanilla y estimador de movimiento para gráficos | |
EP2330587B1 (en) | Image processing device and image processing method | |
EP3350766B1 (en) | Storing bandwidth-compressed graphics data | |
US20180144538A1 (en) | Method and apparatus for performing tile-based rendering | |
EP3289560B1 (en) | Adaptive memory address scanning based on surface format for graphics processing | |
CN107408311A (zh) | 混合2d/3d图形呈现 | |
CN107251133A (zh) | 用于使用低质量块来减少存储器带宽的系统和方法 | |
US20170372452A1 (en) | Image rotation method and apparatus | |
TWI786233B (zh) | 關於以微磚為基礎之低解析度深度儲存之方法、器件與非暫時性電腦可讀儲存媒體 | |
KR20070083459A (ko) | 명령 전송 제어 장치 및 명령 전송 제어 방법 | |
TW201810179A (zh) | 用於虛擬實境和多視角系統之交錯光柵化和像素著色的架構 | |
US20200380744A1 (en) | Variable Rasterization Rate | |
US20200051214A1 (en) | Dynamic rendering for foveated rendering | |
US20200051213A1 (en) | Dynamic rendering for foveated rendering | |
US20220058872A1 (en) | Compressed geometry rendering and streaming | |
WO2014099352A1 (en) | Color buffer caching | |
CN112740278B (zh) | 用于图形处理的方法及设备 | |
WO2021178222A1 (en) | Methods and apparatus for efficient multi-view rasterization | |
EP3251081B1 (en) | Graphics processing unit with bayer mapping | |
TW202236205A (zh) | 計算工作負載的光柵化 | |
US11622113B2 (en) | Image-space function transmission | |
US20230237730A1 (en) | Memory structures to support changing view direction | |
JP2004133956A (ja) | 描画装置及び描画方法 |
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 | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20191108 |
|
AD01 | Patent right deemed abandoned |