CN101911126A - 图形处理系统中对表面创建的多格式支持 - Google Patents
图形处理系统中对表面创建的多格式支持 Download PDFInfo
- Publication number
- CN101911126A CN101911126A CN2009801024195A CN200980102419A CN101911126A CN 101911126 A CN101911126 A CN 101911126A CN 2009801024195 A CN2009801024195 A CN 2009801024195A CN 200980102419 A CN200980102419 A CN 200980102419A CN 101911126 A CN101911126 A CN 101911126A
- Authority
- CN
- China
- Prior art keywords
- data
- color space
- layout
- color
- api
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/32—Image data format
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
- Color Image Communication Systems (AREA)
- Processing Or Creating Images (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
一般来说,本发明描述用于使用平台接口层来创建表面的各种技术,其中此些表面可具有针对例如YCbCr色空间等各种不同色空间的不同格式布局。一个实例装置包括经配置以含有表面信息的存储装置以及经配置以使用平台接口层在色空间内创建图形表面的一个或一个以上处理器。所述平台接口层位于客户端渲染应用程序接口(API)与基础本机平台渲染API之间。所述一个或一个以上处理器进一步经配置以:使用所述平台接口层来指定与所述表面相关联的数据在所述色空间内的格式布局,且将所述格式布局存储在所述存储装置内。所述格式布局指示与所述表面相关联的所述数据的一个或一个以上色彩分量在所述色空间内的布局。
Description
相关申请案
本申请案主张2008年1月18日申请的第61/022,193号美国临时申请案的权益,所述申请案的整体内容以引用的方式并入本文中。
技术领域
本申请案涉及在图形处理系统内渲染和显示表面。
背景技术
对于各种应用(例如,视频游戏、图形程序、计算机辅助设计(CAD)应用、模拟与可视化工具以及成像)来说,图形处理器广泛用以渲染二维(2D)和三维(3D)图像。显示处理器可接着用以经由显示装置显示图形处理器的经渲染的输出以供呈现给用户。
用于这些应用中的图形处理器、显示处理器或多媒体处理器可经配置以执行数据的并行和/或向量处理。具有或不具有SIMD(单指令多数据)扩展的通用CPU(中央处理单元)也可经配置以处理数据。在SIMD向量处理中,单个指令同时对多个数据项进行操作。
(开放图形库)是界定API(应用编程接口)的标准规范,当编写产生2D和3D图形的应用程序时可使用API。(例如爪哇(Java)等其它语言可经由其自己的标准过程来界定对OpenGLAPI的联编)。接口包括可用以从简单图元绘制场景的多个函数调用。图形处理器、多媒体处理器和甚至通用CPU可接着执行使用OpenGL函数调用编写的应用程序。OpenGL ES(嵌入式系统)为OpenGL的针对嵌入式装置(例如,移动无线电话、数字多媒体播放器、个人数字助理(PDA)或视频游戏控制台)而设计的变体。OpenVGTM(开放向量图形)为主要针对经硬件加速的2D向量图形而设计的另一标准API。
EGLTM(嵌入式图形库)为多媒体客户端API(例如,OpenGL ES、OpenVG以及若干其它标准多媒体API)与基础平台多媒体设施之间的平台接口层。EGL可处置图形上下文管理、渲染表面创建和渲染同步,且启用高性能、经硬件加速且混合模式的2D和3D渲染。对于渲染表面创建,EGL提供用于创建客户端API(例如,用户应用程序API)可绘制并共享到其上的表面的机制。目前,EGL仅提供对线性和sRGB(标准红绿蓝)表面的支持。
发明内容
一般来说,本发明描述用于使用例如EGL等平台接口层来创建表面的各种技术,其中此些表面可具有针对各种不同色空间(例如,RGB(红色、绿色、蓝色)或YCbCr(亮度、蓝色色度差、红色色度差,其中Cb和Cr信号为形成Y信号的增量))的不同格式(或填充)布局。在某些情况下,YCbCr EGL表面可与OpenGL和OpenVG表面一起使用,且可组合在表面重叠堆叠内,以供最终显示在例如LCD(液晶显示器)或电视(TV)显示装置等显示装置上。
以此方式,不同色空间中的各种2D、3D和/或视频表面可最终组合以显示在显示装置上。在某些情况下,可将此功能性和支持提供为例如EGL扩展等平台接口层扩展的一部分。所述扩展可进一步提供转化信息以帮助将YCbCr表面(例如,JPEG(联合照相专家组)表面或MPEG4(移动图片专家组版本4)表面)转化到可用于显示此些表面的RGB色空间中。
在一个方面中,一种方法包括经由位于客户端渲染应用程序接口(API)与本机平台渲染API之间的平台接口层创建图形表面。所述方法进一步包括使用平台接口层来指定与表面相关联的数据在色空间内的格式布局,其中所述格式布局指示与表面相关联的数据的一个或一个以上色彩分量在色空间内的布局。
在另一方面中,一种装置包括:存储装置,其经配置以存储表面信息;以及一个或一个以上处理器,其经配置以经由平台接口层创建图形表面。平台接口层位于客户端渲染API与本机平台渲染API之间。所述一个或一个以上处理器进一步经配置以:使用平台接口层指定与表面相关联的数据在色空间内的格式布局,且将所述格式布局存储在存储装置的表面信息内。格式布局指示与表面相关联的数据的一个或一个以上色彩分量在色空间内的布局。
在一个方面中,一种计算机可读媒体包括用于致使一个或一个以上可编程处理器进行以下操作的指令:经由位于客户端渲染API与本机平台渲染API之间的平台接口层创建图形表面;以及使用平台接口层来指定与表面相关联的数据在色空间内的格式布局。所述格式布局指示与表面相关联的数据的一个或一个以上色彩分量在色空间内的布局。
附图和以下描述中陈述本发明的一个或一个以上方面的细节。将从所述描述和图式且从权利要求书明白其它特征、目标和优点。
附图说明
图1A是根据本发明一个方面的说明可用以实施对表面创建的多格式支持的装置的框图。
图1B是根据本发明另一方面的说明可用以实施对表面创建的多格式支持的装置的框图。
图2A是根据本发明一个方面的说明可用以实施对YCbCr(亮度、蓝色色度差、红色色度差)色空间中的表面创建的多格式支持的装置的框图。
图2B是根据本发明一个方面的说明展示于图2A中的API库的进一步细节的框图。
图2C是根据本发明一个方面的说明展示于图2A中的驱动程序的进一步细节的框图。
图2D是根据本发明另一方面的说明可用以实施对YCbCr(亮度、蓝色色度差、红色色度差)色空间中的表面创建的多格式支持的装置的框图。
图3A是根据本发明一个方面的说明可包括一个或一个以上YCbCr表面的用于表面的表面信息的实例的框图。
图3B是根据本发明一个方面的说明与来自图3A的可显示在显示装置上的表面相关联的经重叠表面数据的实例的框图。
图4是根据本发明一个方面的可由展示于图1A、图1B、图2A或图2D的图形处理系统中的控制处理器、图形处理器和/或显示处理器中的一者或一者以上执行的方法的流程图。
图5是根据本发明一个方面的可由展示于图1A、图1B、图2A或图2D的图形处理系统中的控制处理器、图形处理器和/或显示处理器中的一者或一者以上执行的另一方法的流程图。
图6说明根据本发明一个方面的其中可使用YCbCr表面配置/取样信息来指示YCbCr表面的配置和取样信息的实例。
具体实施方式
图1A是根据一个方面的说明可用以实施对表面创建的多格式支持的装置100的框图。装置100可为独立装置,或可为较大系统的一部分。举例来说,装置100可包含无线通信装置(例如,无线移动手持机),或可为数字相机、数字多媒体播放器、个人数字助理(PDA)、视频游戏控制台或其它视频装置的一部分。装置100还可包含个人计算机(例如,超移动个人计算机)或膝上型装置。装置100还可包括在可用于上文所描述的装置中的一些装置或所有装置中的一个或一个以上集成电路或芯片中。
装置100能够执行各种不同应用程序,例如,图形应用程序、视频应用程序或其它多媒体应用程序。举例来说,装置100可用于图形应用程序、视频游戏应用程序、视频应用程序、数字相机应用程序、即时消息接发应用程序、视频电话会议应用程序、移动应用程序或视频流式传输应用程序。
装置100能够处理各种不同数据类型和格式。举例来说,如下文将更详细地描述,装置100可处理静态图像数据、移动图像(视频)数据或其它多媒体数据。图像数据可包括计算机产生的图形数据。装置100包括:图形处理系统102、存储器104和显示装置106。可编程处理器108、110和114在逻辑上包括于图形处理系统102内。可编程处理器108可为控制处理器或通用处理器。可编程处理器110为图形处理器,且可编程处理器114可为显示处理器。控制处理器108能够控制图形处理器110和显示处理器114两者。处理器108、110和114可为标量或向量处理器。在一个方面中,装置100可包括其它形式的多媒体处理器。
在装置100中,图形处理系统102耦合到存储器104且耦合到显示装置。存储器104可包括能够存储指令和/或数据的任何永久或易失性存储器。显示装置106可为能够显示3D图像数据、2D图像数据或用于显示目的的视频数据的任何装置,例如,LCD(液晶显示器)或等离子体显示器或其它电视(TV)显示装置。
图形处理器110可为用以渲染、操纵和显示计算机化的图形的专用图形渲染装置。图形处理器110可实施各种复杂的图形相关算法。举例来说,所述复杂算法可对应于二维或三维计算机化图形的表示。图形处理器110可实施若干所谓的“图元”图形操作(例如,形成点、线和三角形或其它多边形表面),以在例如显示装置106等显示器上创建复杂的三维图像。
在本发明中,术语“渲染”可大体上指代3D和/或2D渲染。作为实例,图形处理器110可利用OpenGL指令来渲染3D图形帧,或可利用OpenVG指令来渲染2D图形表面。然而,图形处理器110可利用用于渲染图形的多种其它标准、方法或技术中的任一者。
图形处理器110可实行存储在存储器104中的指令。存储器104能够存储用于应用程序(例如,图形或视频应用程序)的应用程序指令118、API库120以及驱动程序122。应用程序指令118可从存储器104加载到图形处理系统102中以供执行。举例来说,控制处理器108、图形处理器110和显示处理器114中的一者或一者以上可执行指令118中的一者或一者以上。
控制处理器108、图形处理器110和/或显示处理器114也可在应用程序指令118的执行期间加载并执行包含在API库120或驱动程序122中的指令。指令118可引用或以其它方式调用API库120或驱动程序122内的某些函数。因此,如下文将更详细地描述,当图形处理系统102执行指令118时,其还可执行API库120和/或驱动程序122内的所识别的指令。驱动程序122可包括特别针对控制处理器108、图形处理器110和显示处理器114中的一者或一者以上的功能性。在一个方面中,应用程序指令118、API库120和/或驱动程序122可从例如非易失性数据存储媒体等存储装置加载到存储器104中。在一个方面中,应用程序指令118、API库120和/或驱动程序122可包含以无线方式动态地下载到存储器104中的一个或一个以上可下载模块。
存储器104进一步包括表面信息124。表面信息124可包括关于在图形处理系统102内创建的表面的信息。举例来说,表面信息124可包括与给定表面相关联的表面数据、表面格式数据和/或表面转化数据。此表面可包含:2D表面、3D表面或视频表面。为了本发明的目的,2D表面为可由例如OpenVG等2D API创建的表面。3D表面为可由例如OpenGL等3D API创建的表面。视频表面为可由例如H.264或MPEG4(移动图片专家组版本4)等视频解码器创建的表面。
可将表面信息124加载到图形处理系统102的表面信息存储装置112中。表面信息存储装置112内的经更新的信息还可被往回提供以存储在存储器104的表面信息124内。在一个方面中,包含在表面信息存储装置112内的信息可直接包括在存储器104内。在此方面中,如展示于图1B中,包含在表面信息存储装置112内的信息可直接包括在表面信息124内。
图形处理系统102包括表面信息存储装置112。图形处理器110、控制处理器108和显示处理器114各自操作地耦合到表面信息存储装置112,使得这些处理器中的每一者可从存储装置112读出数据或将数据写入到存储装置112中。存储装置112还耦合到帧缓冲器160。帧缓冲器160可为图形处理系统102内的专用存储器。然而在一个方面中,如图1B中所示,帧缓冲器160可包含直接在存储器104内的系统RAM(随机存取存储器)。存储装置112可为能够存储数据的任何永久或易失性存储器,例如同步动态随机存取存储器(SDRAM)。
存储装置112可包括:一个或一个以上表面数据115A到115N(统称为115)、一个或一个以上表面格式数据116A到116N(统称为116),以及一个或一个以上表面转化数据117A到117N(统称为117)。在图形处理系统102内创建的每一表面具有在表面数据115、表面格式数据116和表面转化数据117内的用于所述表面的相关联信息。表面可为许多不同色空间(例如,RGB(红色、绿色、蓝色)色空间或YCbCr(亮度、蓝色色度差、红色色度差)色空间)中的一者内的表面。表面可由例如EGL(嵌入式图形库)等平台接口层创建。此平台接口层充当客户端渲染应用程序接口(API)与基础本机平台渲染API之间的接口,其可包括在API库120内。
表面数据115包括:(与色空间相关联的)一个或一个以上色彩分量;以及可(例如)由图形处理器110在表面渲染期间产生的其它渲染数据。在存储装置112内可以预定或另外的有序方式来格式化或填充表面数据115。举例来说,在表面数据115内可使用经交错的、平面的、伪平面的、平铺的、分层平铺的或其它填充格式来填充表面的色彩分量数据。如下文将更详细地描述,表面格式数据116包括指定包括在表面数据115内的数据的格式布局的信息。表面格式数据116可由例如EGL等平台接口层指定。在一个方面中,可以由表面格式数据116指定的布局来格式化或填充表面数据115。
表面转化数据117提供创建于图形处理系统102内的表面的转化信息。在某些情况下,表面可能需要被转化为不同格式。举例来说,YCbCr表面(即,创建于YCbCr色空间内的表面)可能需要在显示于显示装置106上之前转化为RGB格式。显示处理器114可能够直接处置此转化。为了在转化过程期间提供增加的灵活性,还提供表面转化数据117。图形处理系统102连同显示处理器114可经配置以使用表面转化数据117来使转化过程流线化,且可允许显示处理器114以较高帧速率且/或以较低功率消耗来处理帧缓冲器160内的信息帧。
根据一个方面,创建于图形处理系统102内的每一表面具有在表面数据115、表面格式数据116和表面转化数据117内的相关联信息。举例来说,首先创建的表面可具有相关联的表面数据115A、表面格式数据116A和表面转化数据117A。表面数据115A可以由(或根据)表面格式数据116A指定的布局来存储,且可根据表面转化数据117A转化为不同色空间的新表面数据。其次创建的表面可具有相关联的表面数据115N、表面格式数据116N和表面转化数据117N。因此,存储装置112能够存储与图形处理系统102内的许多不同表面相关联的表面信息。每一所创建的表面可具有不同格式和转化数据,从而提供被使用且最终显示在显示装置106上的表面的类型和格式的增加的灵活性。
在一个方面中,表面格式数据116A到116N可指定表面数据的格式布局。举例来说,表面格式数据116A可指定表面数据115A的格式布局。格式布局可指示表面数据115A的个别色彩分量在给定色空间内的次序。举例来说,如果表面数据115A包含RGB表面数据,那么表面格式数据116A可指定指示表面数据115A的R、G和B色彩分量的次序的格式布局。类似地,如果表面数据115A包含YCbCr表面数据,那么表面格式数据116A可指定指示表面数据115A的Y、Cb、Cr或甚至可能A(透明度)色彩分量的次序的格式布局。在YCbCr数据的情况下,取样信息也可提供于表面格式数据116A内。表面格式数据116A可因此提供表面数据115A内的色彩分量的各种不同存储或填充模式的模式信息,例如交错模式、平面模式、伪平面模式、平铺模式、分层平铺模式等。表面格式数据116A到116N可提供给显示处理器114,使得显示处理器114可处理表面数据115A到115N。
显示处理器114能够从存储装置112读取针对多个图形表面的输出数据。对于任何给定表面,显示处理器114可读取相关联的表面数据、表面格式数据和表面转化数据。举例来说,显示处理器114可读取与一个表面相关联的表面数据115A、表面格式数据116A和表面转化数据117A。显示处理器114可使用表面格式数据116A作为模式信息,以解译包含在表面数据115A(其可包括呈例如经交错、平面、伪平面或其它形式等填充形式的数据)内的信息的格式或模式。显示处理器114可进一步使用表面转化数据117A来确定如何将表面数据115A转化为例如RGB格式等另一格式。
如下文将更详细地描述,表面转化数据117A可包括与箝位、偏差和/或γ有关的信息或值,且还可包括色彩转化矩阵。用户可使用并配置各种不同的值。在某些情况下,可将对应于国际标准的值用作默认值。国际标准ITU 601和656为标准清晰度电视(TV)提供标准偏差值和色空间转化矩阵,以在RGB色空间与其它视频色空间(例如,YCbCr)之间进行转化。国内标准ITU 709为高清晰度TV提供标准偏差值和色空间转化矩阵,以在RGB色空间与其它视频色空间之间进行转化。
显示处理器114为可对表面的经渲染的图形帧执行后渲染功能以驱动显示装置106的处理器。后渲染功能可包括按比例缩放、旋转、混合、色彩键控和/或重叠。举例来说,显示处理器114可通过使用若干混合模式中的一者来组合表面,所述模式例如是具有恒定α混合的色彩键控、无恒定α混合的色彩键控、全表面恒定α混合或全表面每像素α混合。显示处理器114在执行此些后渲染功能时可使用表面数据115、表面格式数据116和/或表面转化数据117。
显示处理器114可接着将图形表面重叠到帧缓冲器160中的待显示在显示装置106上的图形帧上。每一图形表面被重叠的等级由针对所述图形表面界定的表面等级决定。此表面等级可由用户程序(例如)通过应用程序指令118来界定。表面等级可存储为与所渲染的表面相关联的参数。
在一个方面中,表面等级可界定为任何数字,其中数字越高,表面在所显示的图形帧上将显示得越高。即,在两个表面的部分叠加的情形下,将显示具有较高表面等级的表面的叠加部分,而非具有较低表面等级的任何表面的叠加部分。作为简单实例,用于桌上型计算机上的背景图像将具有比桌面上的图标的表面等级低的表面等级。表面等级在一些情况下可与透明度信息组合,使得叠加的两个表面可混合在一起。在这些情况下,可使用色彩键控。如果第一表面中的像素并不与基色匹配,那么在未启用α(透明度)混合的情况下,可将第一表面选择为输出像素。在启用α混合的情况下,可照常混合第一表面和第二表面的像素。如果第一表面的像素并不与基色匹配,那么选择第二表面的像素,且不执行α混合。
在一个方面中,控制处理器108可为高级RISC(精简指令集计算机)机(ARM)处理器,例如由加利福尼亚州圣地亚哥市的高通(Qualcomm)公司设计的嵌入移动台调制解调器中的ARM11处理器。在一个方面中,显示处理器114可为由高通公司设计的也嵌入移动台调制解调器中的移动显示处理器(MDP)。
图2A是根据一个方面的说明可用以实施YCbCr(亮度、蓝色色度差、红色色度差)色空间和/或RGB(红色、绿色、蓝色)色空间中对表面创建的多格式支持的装置200的框图。装置200还可支持具有透明度A的YCbCr表面的表面创建。在以下描述中,术语“YCbCr”将一般用以指代YCbCr色空间,其中YCbCr表面可或可不包括透明度数据。在此方面中,展示于图2A中的装置200是展示于图1A中的装置100的实例示例。装置200包括:图形处理系统202、存储器204和显示装置206。类似于展示于图1A中的存储器104,图2的存储器204包括用于应用程序指令218、API库220和驱动程序222的存储空间。存储器204还包括由图形处理系统202创建的YCbCr和/或RGB表面的YCbCr和/或RGB表面信息224。YCbCr/RGB表面信息224可加载到用于YCbCr/RGB表面信息的存储装置213中,且来自存储装置213的经更新的信息可存储在存储器204中的YCbCr/RGB表面信息224中。
类似于展示于图1A中的图形处理系统102,图2的图形处理系统202包括:处理器208、图形处理器210、显示处理器214、用于YCbCr/RGB表面信息的存储装置213以及帧缓冲器260。处理器208可为控制处理器或通用处理器。在一个方面中,处理器208可包含系统CPU(中央处理单元)。控制处理器208、图形处理器210和显示处理器214各自操作地耦合到存储装置213,且可各自将数据写入到存储装置213中或从存储装置213读取数据。帧缓冲器260也耦合到存储装置213。在一个方面中,存储装置213可包括于较大存储装置(例如,展示于图1A中的存储装置112)内。
在一个方面中,包含在表面信息存储装置213内的信息可直接包括在存储器204内。在此方面中,如展示于图2D中,包含在表面信息存储装置213内的信息可直接包括在表面信息224内。帧缓冲器260可为图形处理系统202内的专用存储器。然而,在一个方面中,如展示于图2D中,帧缓冲器260可包含直接在存储器204内的系统RAM(随机存取存储器)。
存储装置213包括:一个或一个以上YCbCr或RGB表面数据215A到215N(统称为215)、一个或一个以上YCbCr或RGB表面格式数据216A到216N(统称为216),以及一个或一个以上YCbCr或RGB表面转化数据217A到217N(统称为217)。创建于图形处理系统202内的每一YCbCr或RGB表面(即,YCbCr或RGB色空间中的表面)具有在表面数据215、表面格式数据216和表面转化数据217内的用于所述表面的相关联信息。YCbCr或RGB表面可由例如EGL(嵌入式图形库)等平台接口层创建。此平台接口层充当客户端渲染应用程序接口(API)与基础本机平台渲染API之间的接口,其可包括在API库220内。
表面数据215包括YCbCr和/或RGB色彩分量以及可(例如)由图形处理器210在表面渲染期间产生的其它渲染数据。类似于表面数据115(图1A),表面数据215可以预定或另外的有序方式在存储装置213内格式化或填充。如下文将更详细地描述,表面格式数据216包括指定包括在表面数据215内的数据的格式布局的信息。表面格式数据216可由例如EGL等平台接口层指定。
表面转化数据217为在图形处理系统202内创建的表面在显示于显示装置206上之前转化为另一格式提供转化信息。举例来说,表面转化数据217可用以将YCbCr表面转化为RGB格式,或可用以将RGB表面转化为YCbCr格式。为了提供转化过程期间的增加的灵活性,提供表面转化数据217。图形处理系统202连同显示处理器214可能够使用表面转化数据217使转化过程流线化,且可允许显示处理器214以较高帧速率和/或以较低功率消耗来处理帧缓冲器260内的信息帧。
图2B是根据一个方面的说明展示于图2A中的API库220的进一步细节的框图。如先前参看图2A所描述,API库220可存储在存储器204中,且在由图形处理器210、控制处理器208和/或显示处理器214进行的应用程序执行期间,由应用程序指令218链接或引用。图2C是根据一个方面的说明展示于图2A中的驱动程序222的进一步细节的框图。驱动程序222可存储在存储器204中,且在由图形处理器210、控制处理器208和/或显示处理器214进行的应用程序执行期间,由应用程序指令218和/或API库220链接或引用。
在图2B中,API库220包括:OpenGL ES渲染API 230、OpenVG渲染API 232、EGL API 234和基础本机平台渲染API 239。展示于图2C中的驱动程序222包括:OpenGLES渲染驱动程序240、OpenVG渲染驱动程序242、EGL驱动程序244和基础本机平台渲染驱动程序249。OpenGL ES渲染API 230是在由图形处理系统202进行的应用程序执行期间由应用程序指令218调用以提供由OpenGL ES支持的渲染功能(例如,2D和3D渲染功能)的API。OpenGL ES渲染驱动程序240在应用程序执行期间由应用程序指令218和/或OpenGL ES渲染API 230调用,以用于图形处理系统202中对OpenGL ES渲染功能的低等级驱动程序支持。
OpenVG渲染API 232是在应用程序执行期间由应用程序指令218调用以提供由OpenVG支持的例如2D向量图形渲染功能等渲染功能的API。OpenVG渲染驱动程序242在应用程序执行期间由应用程序指令218和/或OpenVG渲染API 232调用,以用于图形处理系统202中对OpenVG渲染功能的低等级驱动程序支持。
EGL API 234(图2B)和EGL驱动程序244(图2C)提供对图形处理系统202中的EGL功能的支持。在一个方面中,EGL扩展可并入EGLAPI 234和EGL驱动程序244内。在图2B到图2C的实例中,提供表面重叠和表面信息功能性(例如,YCbCr表面信息功能性)的EGL扩展。因此,对于EGL表面重叠扩展来说,表面重叠API 236包括于EGL API 234内,且表面重叠驱动程序246包括于EGL驱动程序244内。同样,对于EGL表面信息扩展来说,表面信息API 238(其可包括(例如)YCbCr表面信息API)包括在EGLAPI 234内,且表面信息驱动程序248包括在EGL驱动程序244内。
EGL表面重叠扩展提供显示在显示装置206上的多个图形表面(例如,2D表面、3D表面和/或视频表面)的重叠体的表面重叠堆叠。图形表面在堆叠内可各自具有相关联的表面等级。由此根据表面在堆叠内的重叠次序而实现表面的重叠。表面重叠的实例展示于图3B中,且将在下文更详细地论述。
在一个方面中,EGL表面信息扩展提供对图形处理系统202内的表面创建的多格式支持,且可特定提供对YCbCr表面的支持。如先前所描述,存储装置213含有表面数据215(其可包括YCbCr表面数据)、表面格式数据216(其可包括用于YCbCr表面的格式数据)以及表面转化数据217(其可包括用以将YCbCr表面转化为RGB格式的数据)。EGL表面信息扩展提供对到存储装置213中且离开存储装置213的数据流的支持,且提供控制处理器208、图形处理器210和/或显示处理器214中的一者或一者以上在表面渲染、数据转化(例如,YCbCr到RGB转化)和表面在图形处理系统202内的显示期间可能需要的信息。
如展示于图2B中,API库220还包括基础本机平台渲染API 239。API 239是由装置200在应用程序指令218的执行期间实施的基础本机平台提供的API。EGL API 234提供基础本机平台渲染API 239与OpenGL ES渲染API 230和OpenVG渲染API 232之间的平台接口层。如展示于图2C中,驱动程序222包括基础本机平台渲染驱动程序249。驱动程序249是由装置200在应用程序指令218和/或API库220的执行期间实施的基础本机平台提供的驱动程序。EGL驱动程序244可提供基础本机平台渲染驱动程序249与OpenGLES渲染驱动程序240和OpenVG渲染驱动程序242之间的平台接口层。
图3A是根据一个方面的说明可包括一个或一个以上YCbCr或RGB表面的用于表面的表面信息的实例的框图。在图3A中,表示表面300A到300N。举例来说,每一表面300A到300N是可由图形处理系统102处理且最终显示在展示于图1A或图1B中的显示装置106上的表面。这些表面300A到300N还可由展示于图2A或图2D中的图形处理系统202处理。然而,在图3A到图3B的以下描述中仅为了说明的目的,将假定表面300A到300N由图形处理系统102处理。
每一表面300A到300N可包含可在给定色空间(例如,RGB或YCbCr色空间)中表示的2D表面、3D表面或视频表面。在帧缓冲器160内捕捉且在显示装置106上显示的每一数据帧内,可根据重叠次序来重叠表面300A到300N。此情形的实例展示于图3B中。以此方式,包括RGB和YCbCr色空间的各种不同色空间中的2D表面、3D表面和/或视频表面可重叠于表面重叠堆叠中,且一起显示在显示装置106上。
每一表面300A到300N与对应的表面信息相关联。举例来说,在图3A中,表面300A与表面信息302A相关联,而表面300N与表面信息302N相关联。表面信息302A到302N可存储在存储装置112内。
表面信息302A包括:表面数据315A、表面格式数据316A和表面转化数据317A。类似地,表面信息302N包括:表面数据315N、表面格式数据316N和表面转化数据317N。在一个方面中,表面数据315A到315N类似于表面数据115A到115N,表面格式数据316A到316N类似于表面格式数据116A到116N,且表面转化数据317A到317N类似于表面转化数据117A到117N。因此,每一表面300A到300N具有相关联的表面数据(例如,可以填充格式存储的渲染数据)、用以指定表面数据的格式的表面格式数据以及用以指定(如果必要的话)表面数据(例如,YCbCr表面数据)转化为RGB格式的转化信息的表面转化数据,使得每一表面300A到300N可由显示处理器114处理且显示在显示装置106上。
图3B是根据一个方面的说明与可显示在显示装置106上的来自图3A的表面300A和300N相关联的经重叠表面数据的实例的框图。表面300A到300N中的一者或一者以上可包含YCbCr表面。表面300A具有相关联的表面信息302A,且表面300N具有相关联的表面信息302N。表面信息302A和302N可存储在存储装置112内。
在图3B的实例中,假定显示处理器114从存储装置112读出用于表面300A的表面信息302A。显示处理器114可接着获得表面数据315A,且使用表面格式数据316A和表面转化数据317A来处理此数据。显示处理器114在处理此数据时使用表面格式数据316A来解译表面数据315A的填充布局的格式。此外,显示处理器114使用表面转化数据317A来辅助将表面数据315A转化为RGB表面数据325A(即,转化为RGB格式)(如果必要的话),RGB表面数据325A可接着被写入到帧缓冲器160。(在此实例中,假定显示装置106为LCD装置。当然,在其它情境下,显示装置106可包含其它形式的显示装置,例如,TV装置)。
类似地,显示处理器114可读取用于表面300N的表面信息302N,且通过使用表面格式数据316N和表面转化数据317N来从表面数据315N产生RGB表面数据325N。显示处理器114可接着将RGB表面数据325N写入到帧缓冲器160中。以此方式,RGB表面数据325A和325N可包括在待显示于显示装置106上的一个数据帧内。
在一个方面中,RGB表面数据325A和325N可包括在表面重叠堆叠内。在此方面中,显示处理器114可使RGB表面数据325A和325N中的每一者与堆叠内的不同表面等级相关联,从而实施RGB表面数据325A和325N的重叠次序。RGB表面数据325A与用于表面300A的表面数据的一个帧相关联,且RGB表面数据325N与用于表面300N的表面数据的一个帧相关联。
在一个方面中,在表面重叠过程期间可考虑表面300A和300N的等级或表面300A和300N联编到特定等级的序列。在某些情况下,多个表面可联编到一特定层。可从后到前(最负到最正)地处理各层。在给定层内,以表面联编到层的序列来处理所述表面。
在图3B中,RGB表面数据325A和325N可在对于用户可见的屏幕区域330内显示在显示装置106上。RGB表面数据325A和325N可基于显示处理器114所使用的重叠次序作为经重叠表面显示于屏幕区域330内。RGB表面数据325A和325N可或可不以与包括于帧缓冲器160内的位置或关系相同的位置或关系来显示。显示处理器114可使用表面重叠堆叠来指派任何表面重叠等级,以用于将所述表面显示在显示装置106上。因此,图形处理系统102可能够提供可经重叠以在显示装置206上向用户显示的2D、3D和/或视频表面数据。举例来说,如果表面300A为图3B的实例中的RGB 3D表面,且表面300N为YCbCr视频表面,那么与这些表面相关联的3D和视频表面数据可显示在显示装置106上(其中YCbCr视频表面数据在显示之前转化为RGB格式)。在一些方面中,具有一个或一个以上色空间的任何所界定表面格式的2D、3D和/或视频表面数据的任意组合可重叠于显示装置106上。
图4是根据一个方面的可由展示于图1A或图1B的图形处理系统102中的控制处理器108、图形处理器110和/或显示处理器114中的一者或一者以上,或由展示于图2A或图2D的图形处理系统202中的控制处理器208、图形处理器210和/或显示处理器214中的一者或一者以上执行的方法的流程图。在以下描述中仅为了说明的目的,将假定展示于图4中的方法由图形处理系统102中的一个或一个以上处理器执行。
最初,控制处理器108、图形处理器110和/或显示处理器114中的一者或一者以上经由例如EGL等平台接口层创建图形表面(图4中的400)。所述平台接口层充当接口,且位于客户端渲染API(例如,OpenGL ES或OpenVG)与基础本机平台渲染API之间。如果色空间包含YCbCr色空间,那么表面可为YCbCr表面。如果色空间包含RGB色空间,那么表面可为RGB表面。
控制处理器108、图形处理器110和/或显示处理器114中的一者或一者以上可接着使用平台接口层来指定(图4中的402)与表面相关联的表面数据在色空间内的格式布局。格式布局指示表面数据的一个或一个以上色彩分量在色空间内的布局(例如,次序)。举例来说,如果表面为YCbCr表面,那么格式布局可指示表面数据的个别Y、Cb、Cr和可能A(透明度)色彩分量的次序。如果表面为RGB表面,那么格式布局可指示表面数据的个别R、G和B色彩分量的次序。表面数据和格式布局(格式数据)两者可存储在(例如)存储装置112中。还可为了将表面显示在例如显示装置106等显示装置上而将表面数据的格式布局提供为模式信息。
在一个方面中,格式布局可指示一个或一个以上色彩分量的第一群组在第一平面内的第一布局。格式布局可进一步指示一个或一个以上色彩分量的第二群组在不同于第一平面的第二平面内的第二布局。第一群组可包括一个或一个以上色彩分量中的多者,且第一布局可指示第一群组的色彩分量在第一平面内的次序。在各种不同情境下,可在任何数目的不同平面内指定任何数目的格式布局。
再次参看图4,在404处,处理器中的一者或一者以上可指定用于将与表面相关联的表面数据转化为不同色空间内的经转化数据的色彩转化信息。举例来说,如果色空间为YCbCr色空间,且不同色空间为RGB色空间,那么色彩转化信息可用以将YCbCr表面数据转化为RGB表面数据。
在406处,一个或一个以上处理器可执行表面的表面渲染以产生表面数据。可接着根据所指定的格式布局来存储此表面数据。
图5是根据一个方面的可由展示于图1A或图1B的图形处理系统102中的控制处理器108、图形处理器110和/或显示处理器114中的一者或一者以上,或由展示于图2A或图2D的图形处理系统202中的控制处理器208、图形处理器210和/或显示处理器214中的一者或一者以上执行的方法的流程图。在以下描述中仅为了说明的目的,将假定展示于图5中的方法由图形处理系统102中的一个或一个以上处理器执行。
最初,控制处理器108、图形处理器110和/或显示处理器114中的一者或一者以上创建具有第一格式布局的第一图形表面(500)和具有第二格式布局的第二图形表面(502)。第一表面和第二表面在一些情况下可各自包含2D表面、3D表面或视频表面。所述处理器中的一者或一者以上接着执行第一表面的表面渲染,且根据第一格式布局将相关联的表面数据存储在例如存储装置112等存储装置中(504)。在506处,执行第二表面的表面渲染,且根据第二格式布局来存储相关联的表面数据。在508处,处理器中的一者或一者以上基于重叠次序而重叠第一表面与第二表面。以此方式,与多个表面相关联的表面数据可由显示处理器114从存储装置112读出到表面重叠堆叠中,且经提供以根据重叠次序显示在显示装置106上。
如先前所论述,对表面创建和使用的多格式支持可由系统102和/或系统202(图2A)内的一个或一个以上处理器来实施。在一个方面中,用以实施对表面创建和使用(在由一个或一个以上处理器执行时)的多格式支持的功能性可包括在API库120和/或驱动程序122内,或包括在API库220和/或驱动程序222(图2A)内。举例来说,此功能性可包括在表面信息API 238(图2B)内和/或表面信息驱动程序248(图2C)内。在一个方面中,此功能性可被提供作为例如EGL扩展等平台接口层扩展的一部分。在以下描述中仅为了说明的目的,将假定此功能性被提供作为EGL扩展(即,对EGL规范的扩展)的一部分。
在一个方面中,提供EGL扩展以用于输出可支持各种形式的YCbCr格式的配置。如果所述表面稍后被加贴到显示装置106,那么除仅配置改变之外,扩展还可界定进一步指定YCbCr数据的格式布局以及到RGB的色彩格式转化所需的信息的机制。
在一些情况下,显示装置106可为TV显示装置而非LCD。在此情况下,当处理重叠堆叠内的表面时,可将RGB表面转化为YCbCr表面。
在此方面的EGL扩展内,额外YCbCr格式数据可适用于其中EGL的EGL_COLOR_BUFFER_TYPE字段被设置为EGL_LUMINANCE_BUFFER的配置。在此情况下,EGL_SAMPLES字段用以指示YCbCr表面的取样比率。
图6说明根据一个方面的其中将YCbCr表面取样配置信息600用以指示YCbCr表面的配置和取样信息的情况的实例。在此方面中,YCbCr表面取样配置信息600包含EGL_SAMPLES字段的信息。如图6中所示,最高有效字节(八个位)用于旗标。EGL_YCBCR_ENABLE,EGL_CBCR_COSITE和EGL_CBCR_OFFSITE为可使用的旗标或令牌。
下两个半字节(其中一个半字节包含四个位)分别界定水平子取样因子和垂直子取样因子。较低(即,最低有效)四个半字节分别界定亮度(Y)取样因子、蓝色色度差(Cb)取样因子、红色色度差(Cr)取样因子和α(A)透明度取样因子。在一个方面中,EGL_YCBCR_ENABLE旗标或令牌可用以区分YCbCr表面与经多重取样的亮度或亮度α表面。
在一个方面中,EGL扩展可提供与YCbCr表面格式和转化处理有关的四个新函数(包括“设置”和“获取”函数),下文将更详细地描述所述函数。下文展示这四个函数的实例函数说明:
EGLBoolean eglSurfaceYCbCrFormatQUALCOMM(EGLDisplay dpy,
EGLSurface surf,
const EGLYCbCrFormat*format);
EGLBoolean eglGetSurfaceYCbCrFormatQUALCOMM(EGLDisplay dpy,
EGLSurface surf,
EGLYCbCrFormat*format);
EGLBoolean eglSurfaceYCbCrConversionQUALCOMM(EGLDisplay dpy,
EGLSurface surf,
const EGLYCbCrConversion*conv
);
EGLBoolean eglGetSurfaceYCbCrConversionQUALCOMM(EGLDisplay dpy,
EGLSurface surf,
EGLYCbCrConversion*conv);
eglSurfaceYCbCrFormatQUALCOMM函数设置EGL YCbCr表面的YCbCr格式。eglGetSurfaceYCbCrFormatQUALCOMM函数获取或传回EGL YCbCr表面的YCbCr格式数据。eglSurfaceYCbCrConversionQUALCOMM函数设置可用以将EGL YCbCr表面转化到另一色空间(例如,转化到RGB色空间)的各种转化参数。eglGetSurfaceYCbCrConversionQUALCOMM函数获取或传回各种转化参数。下文更详细地描述这些函数的各种方面。
在一个方面中,EGL扩展提供额外的、新的数据类型结构。这些结构与YCbCr表面数据的格式以及转化信息有关。下文展示实例数据结构:
typedef struct
{
EGLint order[2];
void *offset;
}EGLYCbCrPlaneFormat;
typedef struct
{
EGLYCbCrPlaneFormat plane[4];
}EGLYCbCrFormat;
typedef EGLint EGLfixed;
typedef struct
{
EGLint clamp_min[3];
EGLint clamp_max[3];
EGLint bias[3];
EGLfixed csc_matrix[9];
EGLfixed gamma;
}EGLYCbCrConversion;
EGL EGLSurface数据结构可含有用于YCbCr表面的类型EGLYCbCrFormat和EGLYCbCrConversion的两个额外成员。如下文更详细地描述,EGLYCbCrFormat成员提供YCbCr表面的格式化信息,且EGLYCbCrConversion成员提供用于YCbCr表面的色彩转化信息。
在一个方面中,EGL扩展提供额外令牌。这些令牌在下文更详细地描述,且以十六进制形式来表示。这些新令牌如下:
EGL_CBCR_OFFSITE 0x00000000
EGL_CBCR_COSITE 0x01000000
EGL_YCBCR_ENABLE 0x80000000
EGL_Y_BIT 0x00000001
EGL_CR_BIT 0x00000002
EGL_CB_BIT 0x00000004
EGL_ALPHA_BIT 0x00000008
EGL_YCBCR_ENABLE旗标或令牌可用以区分YCbCr表面与经多重取样的亮度或亮度α表面。色度样本可与亮度样本同位点(位于同一位置),或经内插(异位点)。同位点令牌EGL_CBCR_COSITE 或异位点令牌EGL_CBCR_OFFSITE 可与EGL_YCBCR_ENABLE令牌和对于与所要格式匹配的EGL_SAMPLES的值为特定的其它半字节进行逻辑“或”运算。
为了设置用于新YCbCr表面的特定YCbCr格式,可用界定YCbCr数据的准确布局的EGLYCbCrFormat数据结构来调用函数eglSurfaceYCbCrFormatQUALCOMM。所述数据结构内的平面阵列的每一元素表示潜在交错的色彩分量的平面。EGLYCbCrPlaneFormat结构的order变量使每一半字节设置为EGL_Y_BIT、EGL_CR_BIT、EGL_CB_BIT或EGL_ALPHA_BIT以表示所述平面中分量的次序。(尽管order变量在实例结构中展示为可无正负号的两个EGLint的阵列,但可使用各种其它类型和阵列大小。)EGLYCbCrFormat结构界定四个不同平面,但可使用任何数目的平面。可从第零到第i个元素的最高有效半字节开始填入order变量。根据一个方面,一旦发现具有值零的半字节,就假定模式重复,且不检查其它半字节。如果实施方案不支持特定格式,那么可传回EGL_FALSE,而不设置错误。应用程序可调用eglGetSurfaceYCbCrFormatQUALCOMM以确定当前正用于表面的格式。
为了设置特定YCbCr色彩转化,可用EGLYCbCrConversion数据结构来调用函数eglSurfaceYCbCrConversionQUALCOMM,其界定在将表面加贴到显示装置时使用的箝位、偏差、色彩转化矩阵和γ值。应用程序可调用eglGetSurfaceYCbCrConversionQUALCOMM以确定当前正在使用的参数(例如,箝位、偏差、色彩转化矩阵和γ参数)。色空间转化矩阵可使用固定点格式,且可以列为主格式存储。(EGLfixed类型可为可解译为具有S15.16格式的32位EGLint)。在某些情况下,可将对应于国际标准的值用作默认值,且可使用为2.22的默认γ值。国际标准ITU 601和656提供标准偏差值和色空间转化矩阵,以在标准清晰度TV的RGB色空间与其它视频色空间(例如,YCbCr)之间进行转化。国内标准ITU 709提供标准偏差值和色空间转化矩阵,以在高清晰度TV的RGB色空间与其它视频色空间之间进行转化。然而,应用程序和应用程序开发者可具有充分的灵活性来利用箝位、偏差、色彩转化矩阵和γ参数的任何值,以定制YCbCr或其它色空间表面到RGB格式中的转化。
为了提供支持EGL YCbCr表面的多格式和转化能力的EGL扩展的实施方案的实例,提供以下样本代码,所述样本代码利用上文为了说明的目的而列出的函数、结构和令牌中的若干者:
//Construct a matching config for a YCbCr surface
const EGLint attribs[3]=
{
EGL_SAMPLES,EGL_YCBCR_ENABLE,
EGL_NONE
}
//Get list of all matching configs
eglChooseConfig(dpy,attribs,&configs,configs_size,&num_configs);
//Choose which YCbCr surface available matches our format
//This is done by querying each returned config for the EGL_SAMPLES
//field and looking for the correct signature.
//For 4:2:2:4(H2V1)cosite,the signature would be:0x81214224.
//For the sakeofthis example,assume a 4:2:2:4(H2V1)format
//was chosen and assigned to a variable′cfg′.
//Create a pixmap with this format
//be sure to check pix!=EGL_NO_SURFACE
//YCbCrASurface os the native pixmap surface/type handle
pix=eglCreatePixmapSurface(dpy,cfg,YCbCrASurface,NULL);
//Setup the format packing order;in this case an interleaved plane
//of YCbCr and a separate plane of Alpha.
const EGLYCbCrFormat fmt=
{
//Plane 0
{
{
EGL_Y_BIT<<28|EGL_CB_BIT<<24|
EGL_Y_BIT<<20|EGL_CR_BIT<<16,
0
},
YCbCrOffset
},
//Plane 1
{
{
EGL_ALPHA_BIT<<28,
0
},
AOffset
},
//Plane 2
{
{
0,
0
},
(void*)0
},
//Plane 3
{
{
0,
0
},
(void*)0
}
};
//Set the format.
//This will return EGL_FALSE if the format is not supported on the
//platform.
eglSurfaceYCbCrFormatQUALCOMM(dpy,pix,&fmt);
//Now the surface can be used like any other EGL surface;for
//example,using an external decoder to render video to the pixmap
//then using a surface overlay extension to composite
//the video frame into an EGL application
在以上样本代码中,首先使用EGL_YCBCR_ENABLE旗标与EGL_SAMPLES来设置属性列表。接着,获得所有匹配配置的列表。在实例代码中假定,选择与EGL_SAMPLES的格式设置匹配的可用YCbCr表面。这可通过查询EGL_SAMPLES字段的每一传回配置且寻找正确签名来进行。在样本代码中,假定4:2:2:4(H2V1)格式被选定,且被指派给变量cfg。对于此实例取样格式来说,EGL_SAMPLES的签名针对展示于图6中的格式可为十六进制的0x81214224。在此情况下,设置EGL_YCBCR_ENABLE和EGL_CBCR_COSITE位,Hss(水平子取样)等于二(即,在水平方向上每隔一个像素对色度进行取样),Vss(垂直子取样)等于一(即,在垂直方向上每像素都对色度进行取样),亮度取样等于四分之四,蓝色色度差取样等于四分之二,红色色度差取样等于四分之二,且α取样等于四分之四。
接下来,在样本代码中,以此格式创建像素映射(离屏)表面。像素映射表面是使用A或α(透明度)的YCbCr表面。当然,可创建其它形式的表面。
接下来,使用YCbCr数据的经交错平面和α的单独平面来设置用于表面数据的格式填充次序。为了这样做,初始化类型EGLYCbCrFormat的变量fmt。在此实例中,仅平面零和一填有格式数据。当然,在其它实例中,所述平面中的一者或一者以上可填有格式数据。此外,可在每一平面内界定色彩分量的任何类型的模式,例如交错模式、平面模式、伪平面模式、平铺模式、分层平铺模式或其它形式的填充模式。另外,在一些方面中,可使用类似于EGLYCbCrFormat的数据结构以类似方式来界定例如用于RGB表面数据的格式等其它色空间格式,以设置R、G和B色彩分量的格式填充次序。
再次参看样本代码,平面零包括Y、Cb和Cr分量的群组的格式数据。对于平面零中的此定义,在假定在此实例中使用4:2:2:4(H2V1)格式的情况下,使用order变量的EGL_Y_BIT、EGL_CB_BIT、EGL_Y_BIT和EGL_CR_BIT来界定Y、Cb和Cr分量的交错模式或次序。接着在order变量内提供零值以指示模式重复。假定平面可任意存储在存储器中,偏移指针YCbCrOffset用作直接指向平面零以供参考的偏移指针。通常,YCbCrOffset将为零,但并不一定是所述情况。
平面一包括用于α(透明度)的格式数据。仅将EGL_ALPHA_BIT用于设置在此平面中的格式。偏移指针AOffset用作直接指向平面一以供参考的偏移指针。通常,AOffset将不为零,但并不一定是所述情况。
最后,在样本代码中,通过调用eglSurfaceYCbCrFormatQUALCOMM函数来设置表面格式。在此点处,可类似于任何其它EGL表面来使用表面。所述表面可包含2D、3D或视频表面,且所述表面可与表面重叠堆叠内的一个或一个以上额外表面组合以组成例如帧缓冲器160(图1A或图1B)等帧缓冲器内的数据帧,以供显示在例如显示装置106等显示装置上。EGL可提供用以经由EGLConfig结构中的字段来表示针对特定表面支持哪一API的机制。
说明于图1到图5中的各种组件可由硬件和/或软件的任意合适组合来实现。在图1到图5中,将各种组件描绘为单独的单元或模块。然而,参看图1A到图5而描述的各种组件中的所有组件或若干组件可集成为共用硬件和/或软件内的组合式单元或模块。因此,将特征表示为组件、单元或模块意在为了易于说明而强调特定功能特征,而并不一定要求通过单独的硬件或软件组件来实现此些特征。在一些情况下,可将各种单元实施为由一个或一个以上处理器执行的可编程进程。
举例来说,本发明中所描述的技术的各种方面可实施于以下各项内:一个或一个以上通用微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它等效逻辑装置。因此,如本文中所使用的术语“处理器”或“控制器”可指代前述结构中的任一者或适合实施本文中所描述的技术的任何其它结构。
本文中所描述的组件和技术可以硬件、软件、固件或其任意组合来实施。描述为模块或组件的任何特征可一起实施于集成逻辑装置中或单独地实施为离散但可共同操作的逻辑装置。在各种方面中,此些组件可至少部分地形成为一个或一个以上集成电路装置,所述集成电路装置可统称为集成电路装置,例如集成电路芯片或芯片集。此类电路可提供于单个集成电路芯片装置中或多个可共同操作的集成电路芯片装置中,且可用于多种图像、显示、音频或其它多媒体应用和装置的任一者中。在一些方面中,例如,此些组件可形成例如无线通信装置手持机等移动装置的一部分。
如果以软件实施,那么所述技术可至少部分地由包含指令或代码的计算机可读媒体来实现,所述指令或代码在由一个或一个以上处理器执行时实施上文所描述的方法中的一者或一者以上。计算机可读媒体可形成可包括封装材料的计算机程序产品的一部分。计算机可读媒体可包含例如同步动态随机存取存储器(SDRAM)等随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、eDRAM(嵌入式动态随机存取存储器)、静态随机存取存储器(SRAM)、快闪存储器、磁性或光学数据存储媒体。
所述技术另外或替代地可至少部分地由计算机可读通信媒体来实现,所述计算机可读通信媒体携载或传送呈指令或数据结构形式的代码,且可由一个或一个以上处理器存取、读取和/或执行。严格地说,任何连接均可被称为计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL),或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输软件,那么同轴电缆、光纤电缆、双绞线、DSL,或例如红外线、无线电和微波等无线技术包括于媒体的定义中。上述各项的组合也应包括在计算机可读媒体的范围内。所利用的任何软件可由一个或一个以上处理器(例如,一个或一个以上DSP、通用微处理器、ASIC、FPGA或其它等效集成或离散逻辑电路)执行。
已描述了本发明的各种方面。这些和其它方面在所附权利要求书的范围内。
Claims (56)
1.一种方法,其包含:
经由位于客户端渲染应用程序接口(API)与本机平台渲染API之间的平台接口层来创建图形表面;以及
使用所述平台接口层来指定与所述表面相关联的数据在色空间内的格式布局,其中所述格式布局指示所述数据的一个或一个以上色彩分量在所述色空间内的布局。
2.根据权利要求1所述的方法,其中:
所述平台接口层包含嵌入式图形库(EGL)层;且
所述客户端渲染API包含开放图形库(OpenGL)API或开放向量图形(OpenVG)API。
3.根据权利要求1所述的方法,其中:
所述色空间包含亮度、蓝色色度差、红色色度差(YCbCr)色空间;
所述表面包含YCbCr表面;且
所述格式布局指示所述数据的个别Y分量、Cb分量和Cr分量的次序。
4.根据权利要求1所述的方法,其中所述格式布局指示所述一个或一个以上色彩分量的第一群组在第一平面内的第一布局,且其中所述格式布局进一步指示所述一个或一个以上色彩分量的第二群组在不同于所述第一平面的第二平面内的第二布局。
5.根据权利要求4所述的方法,其中所述第一群组包括所述一个或一个以上色彩分量中的多个色彩分量,且其中所述第一布局指示所述第一群组的所述多个色彩分量在所述第一平面内的次序。
6.根据权利要求1所述的方法,其进一步包含:
存储与所述表面相关联的所述数据;以及
将所述数据的所述格式布局存储为格式数据。
7.根据权利要求1所述的方法,其进一步包含:
为了将所述表面显示在显示装置上而将与所述表面相关联的所述数据的所述格式布局作为模式信息提供给处理器。
8.根据权利要求1所述的方法,其进一步包含:
指定色彩转化信息,所述色彩转化信息用于将与所述表面相关联的所述数据转化为不同色空间内的经转化数据。
9.根据权利要求8所述的方法,其中:
所述色空间包含亮度、蓝色色度差、红色色度差(YCbCr)色空间;
所述不同色空间包含红色、绿色、蓝色(RGB)色空间;且
所述经转化数据包含RGB表面数据。
10.根据权利要求1所述的方法,其进一步包含:
使用所述平台接口层在所述色空间内创建第二表面;
使用所述平台接口层来指定与所述色空间内的所述第二表面相关联的第二数据的第二格式布局,其中所述第二格式布局指示所述第二数据的一个或一个以上色彩分量在所述色空间内的第二布局;以及
基于重叠次序来重叠所述表面与所述第二表面。
11.根据权利要求10所述的方法,其中:
所述表面包含二维表面、三维表面或视频表面;且
所述第二表面包含二维表面、三维表面或视频表面。
12.根据权利要求1所述的方法,其中在所述色空间内创建所述表面包含提供针对与所述表面相关联的所述数据的取样配置信息。
13.根据权利要求1所述的方法,其进一步包含:
执行所述表面的表面渲染以产生与所述表面相关联的所述数据;以及
根据所述格式布局来存储所述数据。
14.根据权利要求1所述的方法,其中所述方法由一个或一个以上处理器执行,且其中所述一个或一个以上处理器中的每一者包含显示处理器、图形处理器或控制处理器。
15.一种包含指令的计算机可读媒体,所述指令用于致使一个或一个以上可编程处理器进行以下操作:
经由位于客户端渲染应用程序接口(API)与本机平台渲染API之间的平台接口层来创建图形表面;以及
使用所述平台接口层来指定与所述表面相关联的数据在色空间内的格式布局,其中所述格式布局指示与所述表面相关联的所述数据的一个或一个以上色彩分量在所述色空间内的布局。
16.根据权利要求15所述的计算机可读媒体,其中:
所述平台接口层包含嵌入式图形库(EGL)层;且
所述客户端渲染API包含开放图形库(OpenGL)API或开放向量图形(OpenVG)API。
17.根据权利要求15所述的计算机可读媒体,其中:
所述色空间包含亮度、蓝色色度差、红色色度差(YCbCr)色空间;
所述表面包含YCbCr表面;且
所述格式布局指示所述数据的个别Y分量、Cb分量和Cr分量的次序。
18.根据权利要求15所述的计算机可读媒体,其中所述格式布局指示所述一个或一个以上色彩分量的第一群组在第一平面内的第一布局,且其中所述格式布局进一步指示所述一个或一个以上色彩分量的第二群组在不同于所述第一平面的第二平面内的第二布局。
19.根据权利要求18所述的计算机可读媒体,其中所述第一群组包括所述一个或一个以上色彩分量中的多个色彩分量,且其中所述第一布局指示所述第一群组的所述多个色彩分量在所述第一平面内的次序。
20.根据权利要求15所述的计算机可读媒体,其进一步包含用于致使所述一个或一个以上处理器进行以下操作的指令:
存储与所述表面相关联的所述数据;以及
将所述数据的所述格式布局存储为格式数据。
21.根据权利要求15所述的计算机可读媒体,其进一步包含用于致使所述一个或一个以上处理器进行以下操作的指令:
为了将所述表面显示在显示装置上而将与所述表面相关联的所述数据的所述格式布局作为模式信息提供给处理器。
22.根据权利要求15所述的计算机可读媒体,其进一步包含用于致使所述一个或一个以上处理器进行以下操作的指令:
指定色彩转化信息,所述色彩转化信息用于将与所述表面相关联的所述数据转化为不同色空间内的经转化数据。
23.根据权利要求22所述的计算机可读媒体,其中:
所述色空间包含亮度、蓝色色度差、红色色度差(YCbCr)色空间;
所述不同色空间包含红色、绿色、蓝色(RGB)色空间;且
所述经转化数据包含RGB表面数据。
24.根据权利要求15所述的计算机可读媒体,其进一步包含用于致使所述一个或一个以上处理器进行以下操作的指令:
使用所述平台接口层在所述色空间内创建第二表面;
使用所述平台接口层来指定与所述第二表面相关联的第二数据在所述色空间内的第二格式布局,其中所述第二格式布局指示所述第二数据的一个或一个以上色彩分量在所述色空间内的第二布局;以及
基于重叠次序来重叠所述表面与所述第二表面。
25.根据权利要求24所述的计算机可读媒体,其中:
所述表面包含二维表面、三维表面或视频表面;且
所述第二表面包含二维表面、三维表面或视频表面。
26.根据权利要求15所述的计算机可读媒体,其中用于致使所述一个或一个以上处理器在所述色空间内创建所述表面的所述指令包含用于致使所述一个或一个以上处理器提供针对与所述表面相关联的所述数据的取样配置信息的指令。
27.根据权利要求15所述的计算机可读媒体,其进一步包含用于致使使所述一个或一个以上处理器进行以下操作的指令:
执行所述表面的表面渲染以产生与所述表面相关联的所述数据;以及
根据所述格式布局来存储所述数据。
28.一种装置,其包含:
存储装置,其经配置以存储表面信息;以及
一个或一个以上处理器,其经配置以经由位于客户端渲染应用程序接口(API)与本机平台渲染API之间的平台接口层来创建图形表面,
其中所述一个或一个以上处理器进一步经配置以:使用所述平台接口层来指定与所述表面相关联的数据在色空间内的格式布局,所述格式布局指示与所述表面相关联的所述数据的一个或一个以上色彩分量在所述色空间内的布局;且将所述格式布局存储在所述存储装置的所述表面信息内。
29.根据权利要求28所述的装置,其中:
所述平台接口层包含嵌入式图形库(EGL)层;且
所述客户端渲染API包含开放图形库(OpenGL)API或开放向量图形(OpenVG)API。
30.根据权利要求28所述的装置,其中:
所述色空间包含亮度、蓝色色度差、红色色度差(YCbCr)色空间;
所述表面包含YCbCr表面;且
所述格式布局指示与所述表面相关联的所述数据的个别Y分量、Cb分量和Cr分量的次序。
31.根据权利要求28所述的装置,其中所述格式布局指示所述一个或一个以上色彩分量的第一群组在第一平面内的第一布局,且其中所述格式布局进一步指示所述一个或一个以上色彩分量的第二群组在不同于所述第一平面的第二平面内的第二布局。
32.根据权利要求31所述的装置,其中所述第一群组包括所述一个或一个以上色彩分量中的多个色彩分量,且其中所述第一布局指示所述第一群组的所述多个色彩分量在所述第一平面内的次序。
33.根据权利要求28所述的装置,其中所述一个或一个以上处理器进一步经配置以将与所述表面相关联的所述数据存储在所述存储装置中,且将与所述表面相关联的所述数据的所述格式布局作为格式数据存储在所述存储装置中。
34.根据权利要求28所述的装置,其进一步包含显示装置,其中所述一个或一个以上处理器进一步经配置以为了将所述表面显示在所述显示装置上而提供与所述表面相关联的所述数据的所述格式布局作为模式信息。
35.根据权利要求28所述的装置,其中所述一个或一个以上处理器进一步经配置以指定色彩转化信息,所述色彩转化信息用于将与所述表面相关联的所述数据转化为不同色空间的经转化数据。
36.根据权利要求35所述的装置,其中:
所述色空间包含亮度、蓝色色度差、红色色度差(YCbCr)色空间;
所述不同色空间包含红色、绿色、蓝色(RGB)色空间;且
所述经转化数据包含RGB表面数据。
37.根据权利要求28所述的装置,其中所述一个或一个以上处理器进一步经配置以:使用所述平台接口层在所述色空间内创建第二表面,使用所述平台接口层来指定与所述第二表面相关联的第二数据在所述色空间内的第二格式布局,且基于重叠次序来重叠所述表面与所述第二表面,其中所述第二格式布局指示所述第二数据的一个或一个以上色彩分量在所述色空间内的第二布局。
38.根据权利要求37所述的装置,其中:
所述表面包含二维表面、三维表面或视频表面;且
所述第二表面包含二维表面、三维表面或视频表面。
39.根据权利要求28所述的装置,其中当所述一个或一个以上处理器经配置以在所述色空间内创建所述表面时,所述一个或一个以上处理器进一步经配置以提供针对与所述表面相关联的所述数据的取样配置信息。
40.根据权利要求28所述的装置,其中所述一个或一个以上处理器进一步经配置以:执行所述表面的表面渲染以产生与所述表面相关联的所述数据,且根据所述格式布局来存储所述数据。
41.根据权利要求28所述的装置,其中所述一个或一个以上处理器中的每一者包含显示处理器、图形处理器或控制处理器。
42.根据权利要求28所述的装置,其中所述装置包含无线通信装置手持机、个人计算机或膝上型装置。
43.根据权利要求28所述的装置,其中所述装置包含一个或一个以上集成电路装置。
44.一种装置,其包含:
用于经由位于客户端渲染应用程序接口(API)与本机平台渲染API之间的平台接口层来创建图形表面的装置;以及
用于使用所述平台接口层来指定与所述表面相关联的数据在色空间内的格式布局的装置,其中所述格式布局指示与所述表面相关联的所述数据的一个或一个以上色彩分量在所述色空间内的布局。
45.根据权利要求44所述的装置,其中:
所述平台接口层包含嵌入式图形库(EGL)层;且
所述客户端渲染API包含开放图形库(OpenGL)API或开放向量图形(OpenVG)API。
46.根据权利要求44所述的装置,其中:
所述色空间包含亮度、蓝色色度差、红色色度差(YCbCr)色空间;
所述表面包含YCbCr表面;且
所述格式布局指示所述数据的个别Y分量、Cb分量和Cr分量的次序。
47.根据权利要求44所述的装置,其中所述格式布局指示所述一个或一个以上色彩分量的第一群组在第一平面内的第一布局,且其中所述格式布局进一步指示所述一个或一个以上色彩分量的第二群组在不同于所述第一平面的第二平面内的第二布局。
48.根据权利要求47所述的装置,其中所述第一群组包括所述一个或一个以上色彩分量中的多个色彩分量,且其中所述第一布局指示所述第一群组的所述多个色彩分量在所述第一平面内的次序。
49.根据权利要求44所述的装置,其进一步包含:
用于存储与所述表面相关联的所述数据的装置;以及
用于将所述数据的所述格式布局存储为格式数据的装置。
50.根据权利要求44所述的装置,其进一步包含:
用于为了将所述表面显示在显示装置上而将与所述表面相关联的所述数据的所述格式布局作为模式信息提供给处理器的装置。
51.根据权利要求44所述的装置,其进一步包含:
用于指定色彩转化信息的装置,所述色彩转化信息用于将与所述表面相关联的所述数据转化为不同色空间内的经转化数据。
52.根据权利要求51所述的装置,其中:
所述色空间包含亮度、蓝色色度差、红色色度差(YCbCr)色空间;
所述不同色空间包含红色、绿色、蓝色(RGB)色空间;且
所述经转化数据包含RGB表面数据。
53.根据权利要求44所述的装置,其进一步包含:
用于使用所述平台接口层在所述色空间内创建第二表面的装置;
用于使用所述平台接口层来指定与所述第二表面相关联的第二数据在所述色空间内的第二格式布局的装置,其中所述第二格式布局指示所述第二数据的一个或一个以上色彩分量在所述色空间内的第二布局;以及
用于基于重叠次序来重叠所述表面与所述第二表面的装置。
54.根据权利要求53所述的装置,其中:
所述表面包含二维表面、三维表面或视频表面;且
所述第二表面包含二维表面、三维表面或视频表面。
55.根据权利要求44所述的装置,其中所述用于在所述色空间内创建所述表面的装置包含用于提供针对与所述表面相关联的所述数据的取样配置信息的装置。
56.根据权利要求44所述的装置,其进一步包含:
用于执行所述表面的表面渲染以产生与所述表面相关联的所述数据的装置;以及
用于根据所述格式布局来存储所述数据的装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US2219308P | 2008-01-18 | 2008-01-18 | |
US61/022,193 | 2008-01-18 | ||
US12/116,060 | 2008-05-06 | ||
US12/116,060 US20090184977A1 (en) | 2008-01-18 | 2008-05-06 | Multi-format support for surface creation in a graphics processing system |
PCT/US2009/031308 WO2009092020A1 (en) | 2008-01-18 | 2009-01-16 | Multi-format support for surface creation in a graphics processing system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101911126A true CN101911126A (zh) | 2010-12-08 |
Family
ID=40876127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009801024195A Pending CN101911126A (zh) | 2008-01-18 | 2009-01-16 | 图形处理系统中对表面创建的多格式支持 |
Country Status (10)
Country | Link |
---|---|
US (1) | US20090184977A1 (zh) |
EP (1) | EP2248107A1 (zh) |
JP (1) | JP2011510406A (zh) |
KR (1) | KR20100103703A (zh) |
CN (1) | CN101911126A (zh) |
BR (1) | BRPI0906950A2 (zh) |
CA (1) | CA2711586A1 (zh) |
RU (1) | RU2010134404A (zh) |
TW (1) | TW200943222A (zh) |
WO (1) | WO2009092020A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107077752A (zh) * | 2014-10-14 | 2017-08-18 | 微软技术许可有限责任公司 | 数据可视化可扩展架构 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101520067B1 (ko) * | 2008-10-02 | 2015-05-13 | 삼성전자 주식회사 | 윈도우 시스템을 구현한 그래픽 처리 방법 및 그 장치 |
US8754908B2 (en) | 2011-06-07 | 2014-06-17 | Microsoft Corporation | Optimized on-screen video composition for mobile device |
US9232177B2 (en) * | 2013-07-12 | 2016-01-05 | Intel Corporation | Video chat data processing |
US20150379679A1 (en) * | 2014-06-25 | 2015-12-31 | Changliang Wang | Single Read Composer with Outputs |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030206180A1 (en) * | 2001-10-05 | 2003-11-06 | Ehlers Richard L. | Color space rendering system and method |
US6919901B2 (en) * | 2002-01-15 | 2005-07-19 | International Business Machines Corporation | Graphics system register data generation |
US20040257305A1 (en) * | 2003-03-28 | 2004-12-23 | Jin-Wen Liao | Plasma display with changeable modules |
US7643675B2 (en) * | 2003-08-01 | 2010-01-05 | Microsoft Corporation | Strategies for processing image information using a color information data structure |
US7649539B2 (en) * | 2004-03-10 | 2010-01-19 | Microsoft Corporation | Image formats for video capture, processing and display |
US7312800B1 (en) * | 2005-04-25 | 2007-12-25 | Apple Inc. | Color correction of digital video images using a programmable graphics processing unit |
-
2008
- 2008-05-06 US US12/116,060 patent/US20090184977A1/en not_active Abandoned
-
2009
- 2009-01-16 JP JP2010543286A patent/JP2011510406A/ja not_active Ceased
- 2009-01-16 WO PCT/US2009/031308 patent/WO2009092020A1/en active Application Filing
- 2009-01-16 EP EP09701532A patent/EP2248107A1/en not_active Withdrawn
- 2009-01-16 RU RU2010134404/08A patent/RU2010134404A/ru unknown
- 2009-01-16 CA CA2711586A patent/CA2711586A1/en not_active Abandoned
- 2009-01-16 BR BRPI0906950-0A patent/BRPI0906950A2/pt not_active Application Discontinuation
- 2009-01-16 KR KR1020107018298A patent/KR20100103703A/ko not_active Application Discontinuation
- 2009-01-16 CN CN2009801024195A patent/CN101911126A/zh active Pending
- 2009-01-17 TW TW098101814A patent/TW200943222A/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107077752A (zh) * | 2014-10-14 | 2017-08-18 | 微软技术许可有限责任公司 | 数据可视化可扩展架构 |
US10810159B2 (en) | 2014-10-14 | 2020-10-20 | Microsoft Technology Licensing, Llc. | Modular updating of visualizations |
Also Published As
Publication number | Publication date |
---|---|
WO2009092020A1 (en) | 2009-07-23 |
RU2010134404A (ru) | 2012-02-27 |
TW200943222A (en) | 2009-10-16 |
US20090184977A1 (en) | 2009-07-23 |
CA2711586A1 (en) | 2009-07-23 |
EP2248107A1 (en) | 2010-11-10 |
BRPI0906950A2 (pt) | 2015-07-14 |
JP2011510406A (ja) | 2011-03-31 |
KR20100103703A (ko) | 2010-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101911125B (zh) | 图形处理系统中对离屏表面的多重缓冲支持 | |
US9077986B2 (en) | Electronic visual displays | |
US8917286B2 (en) | Image processing device, information processing device, image processing method, and information processing method | |
US8042094B2 (en) | Architecture for rendering graphics on output devices | |
CN105955687B (zh) | 图像处理的方法、装置和系统 | |
US9235911B2 (en) | Rendering an image on a display screen | |
CN101911126A (zh) | 图形处理系统中对表面创建的多格式支持 | |
US20210090330A1 (en) | Virtual exhibition space providing method for efficient data management | |
CN110392904A (zh) | 使用阿尔法混合的动态图像颜色重新映射的方法 | |
US7050071B2 (en) | Layered rotational graphics driver | |
WO2020140794A1 (zh) | 显示面板和装置、图像处理方法和装置、虚拟现实系统 | |
JP2010191026A (ja) | 外部表示装置に応じた画像データを出力する端末、プログラム及び方法 | |
JP7160495B2 (ja) | 画像前処理方法、装置、電子機器及び記憶媒体 | |
WO2023036089A1 (zh) | 阴影生成方法及装置、电子设备、存储介质 | |
WO2018214768A1 (zh) | 一种绘制方法及装置 | |
WO2018214779A1 (zh) | 一种绘制方法及装置 | |
US20140362097A1 (en) | Systems and methods for hardware-accelerated key color extraction | |
CN1520155B (zh) | 产生视频信号的电子装置和产生视频信号的方法 | |
US11622113B2 (en) | Image-space function transmission | |
CN101714072B (zh) | 用于处理表示可视信息的像素平面的方法和装置 | |
CN117453170A (zh) | 一种显示控制方法、装置及存储介质 | |
US20080117207A1 (en) | Copying and editing method in computer | |
US20140292791A1 (en) | Image drawing/displaying device | |
Whitehouse | Magick with images |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20101208 |