專利名稱:圖形處理系統(tǒng)中對表面創(chuàng)建的多格式支持的制作方法
技術(shù)領(lǐng)域:
本申請案涉及在圖形處理系統(tǒng)內(nèi)渲染和顯示表面。
背景技術(shù):
對于各種應(yīng)用(例如,視頻游戲、圖形程序、計(jì)算機(jī)輔助設(shè)計(jì)(CAD)應(yīng)用、模擬與可 視化工具以及成像)來說,圖形處理器廣泛用以渲染二維(2D)和三維(3D)圖像。顯示處 理器可接著用以經(jīng)由顯示裝置顯示圖形處理器的經(jīng)渲染的輸出以供呈現(xiàn)給用戶。用于這些應(yīng)用中的圖形處理器、顯示處理器或多媒體處理器可經(jīng)配置以執(zhí)行數(shù)據(jù) 的并行和/或向量處理。具有或不具有SIMD (單指令多數(shù)據(jù))擴(kuò)展的通用CPU (中央處理單 元)也可經(jīng)配置以處理數(shù)據(jù)。在SIMD向量處理中,單個(gè)指令同時(shí)對多個(gè)數(shù)據(jù)項(xiàng)進(jìn)行操作。OpenGL (開放圖形庫)是界定API (應(yīng)用編程接口)的標(biāo)準(zhǔn)規(guī)范,當(dāng)編寫產(chǎn)生2D 和3D圖形的應(yīng)用程序時(shí)可使用API。(例如爪哇(Java)等其它語言可經(jīng)由其自己的標(biāo)準(zhǔn) 過程來界定對OpenGLAPI的聯(lián)編)。接口包括可用以從簡單圖元繪制場景的多個(gè)函數(shù)調(diào)用。 圖形處理器、多媒體處理器和甚至通用CPU可接著執(zhí)行使用OpenGL函數(shù)調(diào)用編寫的應(yīng)用程 序。OpenGL ES(嵌入式系統(tǒng))為OpenGL的針對嵌入式裝置(例如,移動(dòng)無線電話、數(shù)字多 媒體播放器、個(gè)人數(shù)字助理(PDA)或視頻游戲控制臺(tái))而設(shè)計(jì)的變體。OpenVG (開放向量 圖形)為主要針對經(jīng)硬件加速的2D向量圖形而設(shè)計(jì)的另一標(biāo)準(zhǔn)API。EGL (嵌入式圖形庫)為多媒體客戶端API (例如,OpenGL ES、OpenVG以及若干 其它標(biāo)準(zhǔn)多媒體API)與基礎(chǔ)平臺(tái)多媒體設(shè)施之間的平臺(tái)接口層。EGL可處置圖形上下文管 理、渲染表面創(chuàng)建和渲染同步,且啟用高性能、經(jīng)硬件加速且混合模式的2D和3D渲染。對 于渲染表面創(chuàng)建,EGL提供用于創(chuàng)建客戶端API (例如,用戶應(yīng)用程序API)可繪制并共享到 其上的表面的機(jī)制。目前,EGL僅提供對線性和sRGB(標(biāo)準(zhǔn)紅綠藍(lán))表面的支持。
發(fā)明內(nèi)容
一般來說,本發(fā)明描述用于使用例如EGL等平臺(tái)接口層來創(chuàng)建表面的各種技術(shù), 其中此些表面可具有針對各種不同色空間(例如,RGB (紅色、綠色、藍(lán)色)或YCbCH亮度、 藍(lán)色色度差、紅色色度差,其中Cb和Cr信號(hào)為形成Y信號(hào)的增量))的不同格式(或填充) 布局。在某些情況下,YCbCr EGL表面可與OpenGL和OpenVG表面一起使用,且可組合在表 面重疊堆疊內(nèi),以供最終顯示在例如IXD(液晶顯示器)或電視(TV)顯示裝置等顯示裝置 上。以此方式,不同色空間中的各種2D、3D和/或視頻表面可最終組合以顯示在顯示 裝置上。在某些情況下,可將此功能性和支持提供為例如EGL擴(kuò)展等平臺(tái)接口層擴(kuò)展的一部分。所述擴(kuò)展可進(jìn)一步提供轉(zhuǎn)化信息以幫助將YCbCr表面(例如,JPEG(聯(lián)合照相專家 組)表面或MPEG4(移動(dòng)圖片專家組版本4)表面)轉(zhuǎn)化到可用于顯示此些表面的RGB色空 間中。在一個(gè)方面中,一種方法包括經(jīng)由位于客戶端渲染應(yīng)用程序接口(API)與本機(jī)平 臺(tái)渲染API之間的平臺(tái)接口層創(chuàng)建圖形表面。所述方法進(jìn)一步包括使用平臺(tái)接口層來指定 與表面相關(guān)聯(lián)的數(shù)據(jù)在色空間內(nèi)的格式布局,其中所述格式布局指示與表面相關(guān)聯(lián)的數(shù)據(jù) 的一個(gè)或一個(gè)以上色彩分量在色空間內(nèi)的布局。在另一方面中,一種裝置包括存儲(chǔ)裝置,其經(jīng)配置以存儲(chǔ)表面信息;以及一個(gè)或 一個(gè)以上處理器,其經(jīng)配置以經(jīng)由平臺(tái)接口層創(chuàng)建圖形表面。平臺(tái)接口層位于客戶端渲染 API與本機(jī)平臺(tái)渲染API之間。所述一個(gè)或一個(gè)以上處理器進(jìn)一步經(jīng)配置以使用平臺(tái)接 口層指定與表面相關(guān)聯(lián)的數(shù)據(jù)在色空間內(nèi)的格式布局,且將所述格式布局存儲(chǔ)在存儲(chǔ)裝置 的表面信息內(nèi)。格式布局指示與表面相關(guān)聯(lián)的數(shù)據(jù)的一個(gè)或一個(gè)以上色彩分量在色空間內(nèi) 的布局。在一個(gè)方面中,一種計(jì)算機(jī)可讀媒體包括用于致使一個(gè)或一個(gè)以上可編程處理器 進(jìn)行以下操作的指令經(jīng)由位于客戶端渲染API與本機(jī)平臺(tái)渲染API之間的平臺(tái)接口層創(chuàng) 建圖形表面;以及使用平臺(tái)接口層來指定與表面相關(guān)聯(lián)的數(shù)據(jù)在色空間內(nèi)的格式布局。所 述格式布局指示與表面相關(guān)聯(lián)的數(shù)據(jù)的一個(gè)或一個(gè)以上色彩分量在色空間內(nèi)的布局。附圖和以下描述中陳述本發(fā)明的一個(gè)或一個(gè)以上方面的細(xì)節(jié)。將從所述描述和圖 式且從權(quán)利要求書明白其它特征、目標(biāo)和優(yōu)點(diǎn)。
圖IA是根據(jù)本發(fā)明一個(gè)方面的說明可用以實(shí)施對表面創(chuàng)建的多格式支持的裝置 的框圖。圖IB是根據(jù)本發(fā)明另一方面的說明可用以實(shí)施對表面創(chuàng)建的多格式支持的裝置 的框圖。圖2A是根據(jù)本發(fā)明一個(gè)方面的說明可用以實(shí)施對YCbCr (亮度、藍(lán)色色度差、紅色 色度差)色空間中的表面創(chuàng)建的多格式支持的裝置的框圖。圖2B是根據(jù)本發(fā)明一個(gè)方面的說明展示于圖2A中的API庫的進(jìn)一步細(xì)節(jié)的框 圖。圖2C是根據(jù)本發(fā)明一個(gè)方面的說明展示于圖2A中的驅(qū)動(dòng)程序的進(jìn)一步細(xì)節(jié)的框 圖。圖2D是根據(jù)本發(fā)明另一方面的說明可用以實(shí)施對YCbCr (亮度、藍(lán)色色度差、紅色 色度差)色空間中的表面創(chuàng)建的多格式支持的裝置的框圖。圖3A是根據(jù)本發(fā)明一個(gè)方面的說明可包括一個(gè)或一個(gè)以上YCbCr表面的用于表 面的表面信息的實(shí)例的框圖。圖3B是根據(jù)本發(fā)明一個(gè)方面的說明與來自圖3A的可顯示在顯示裝置上的表面相 關(guān)聯(lián)的經(jīng)重疊表面數(shù)據(jù)的實(shí)例的框圖。圖4是根據(jù)本發(fā)明一個(gè)方面的可由展示于圖1A、圖1B、圖2A或圖2D的圖形處理 系統(tǒng)中的控制處理器、圖形處理器和/或顯示處理器中的一者或一者以上執(zhí)行的方法的流程圖。圖5是根據(jù)本發(fā)明一個(gè)方面的可由展示于圖1A、圖1B、圖2A或圖2D的圖形處理 系統(tǒng)中的控制處理器、圖形處理器和/或顯示處理器中的一者或一者以上執(zhí)行的另一方法 的流程圖。圖6說明根據(jù)本發(fā)明一個(gè)方面的其中可使用YCbCr表面配置/取樣信息來指示 YCbCr表面的配置和取樣信息的實(shí)例。
具體實(shí)施例方式圖IA是根據(jù)一個(gè)方面的說明可用以實(shí)施對表面創(chuàng)建的多格式支持的裝置100的 框圖。裝置100可為獨(dú)立裝置,或可為較大系統(tǒng)的一部分。舉例來說,裝置100可包含無 線通信裝置(例如,無線移動(dòng)手持機(jī)),或可為數(shù)字相機(jī)、數(shù)字多媒體播放器、個(gè)人數(shù)字助理 (PDA)、視頻游戲控制臺(tái)或其它視頻裝置的一部分。裝置100還可包含個(gè)人計(jì)算機(jī)(例如, 超移動(dòng)個(gè)人計(jì)算機(jī))或膝上型裝置。裝置100還可包括在可用于上文所描述的裝置中的一 些裝置或所有裝置中的一個(gè)或一個(gè)以上集成電路或芯片中。裝置100能夠執(zhí)行各種不同應(yīng)用程序,例如,圖形應(yīng)用程序、視頻應(yīng)用程序或其它 多媒體應(yīng)用程序。舉例來說,裝置100可用于圖形應(yīng)用程序、視頻游戲應(yīng)用程序、視頻應(yīng)用 程序、數(shù)字相機(jī)應(yīng)用程序、即時(shí)消息接發(fā)應(yīng)用程序、視頻電話會(huì)議應(yīng)用程序、移動(dòng)應(yīng)用程序 或視頻流式傳輸應(yīng)用程序。裝置100能夠處理各種不同數(shù)據(jù)類型和格式。舉例來說,如下文將更詳細(xì)地描述, 裝置100可處理靜態(tài)圖像數(shù)據(jù)、移動(dòng)圖像(視頻)數(shù)據(jù)或其它多媒體數(shù)據(jù)。圖像數(shù)據(jù)可包 括計(jì)算機(jī)產(chǎn)生的圖形數(shù)據(jù)。裝置100包括圖形處理系統(tǒng)102、存儲(chǔ)器104和顯示裝置106。 可編程處理器108、110和114在邏輯上包括于圖形處理系統(tǒng)102內(nèi)??删幊烫幚砥?08可 為控制處理器或通用處理器??删幊烫幚砥?10為圖形處理器,且可編程處理器114可為顯 示處理器??刂铺幚砥?08能夠控制圖形處理器110和顯示處理器114兩者。處理器108、 110和114可為標(biāo)量或向量處理器。在一個(gè)方面中,裝置100可包括其它形式的多媒體處理
ο在裝置100中,圖形處理系統(tǒng)102耦合到存儲(chǔ)器104且耦合到顯示裝置。存儲(chǔ)器 104可包括能夠存儲(chǔ)指令和/或數(shù)據(jù)的任何永久或易失性存儲(chǔ)器。顯示裝置106可為能夠 顯示3D圖像數(shù)據(jù)、2D圖像數(shù)據(jù)或用于顯示目的的視頻數(shù)據(jù)的任何裝置,例如,LCD (液晶顯 示器)或等離子體顯示器或其它電視(TV)顯示裝置。圖形處理器110可為用以渲染、操縱和顯示計(jì)算機(jī)化的圖形的專用圖形渲染裝 置。圖形處理器110可實(shí)施各種復(fù)雜的圖形相關(guān)算法。舉例來說,所述復(fù)雜算法可對應(yīng)于 二維或三維計(jì)算機(jī)化圖形的表示。圖形處理器110可實(shí)施若干所謂的“圖元”圖形操作(例 如,形成點(diǎn)、線和三角形或其它多邊形表面),以在例如顯示裝置106等顯示器上創(chuàng)建復(fù)雜 的三維圖像。在本發(fā)明中,術(shù)語“渲染”可大體上指代3D和/或2D渲染。作為實(shí)例,圖形處理 器Iio可利用OpenGL指令來渲染3D圖形幀,或可利用OpenVG指令來渲染2D圖形表面。然 而,圖形處理器110可利用用于渲染圖形的多種其它標(biāo)準(zhǔn)、方法或技術(shù)中的任一者。圖形處理器110可實(shí)行存儲(chǔ)在存儲(chǔ)器104中的指令。存儲(chǔ)器104能夠存儲(chǔ)用于應(yīng)
10用程序(例如,圖形或視頻應(yīng)用程序)的應(yīng)用程序指令118、API庫120以及驅(qū)動(dòng)程序122。 應(yīng)用程序指令118可從存儲(chǔ)器104加載到圖形處理系統(tǒng)102中以供執(zhí)行。舉例來說,控制 處理器108、圖形處理器110和顯示處理器114中的一者或一者以上可執(zhí)行指令118中的一
者或一者以上??刂铺幚砥?08、圖形處理器110和/或顯示處理器114也可在應(yīng)用程序指令118 的執(zhí)行期間加載并執(zhí)行包含在API庫120或驅(qū)動(dòng)程序122中的指令。指令118可引用或以 其它方式調(diào)用API庫120或驅(qū)動(dòng)程序122內(nèi)的某些函數(shù)。因此,如下文將更詳細(xì)地描述,當(dāng) 圖形處理系統(tǒng)102執(zhí)行指令118時(shí),其還可執(zhí)行API庫120和/或驅(qū)動(dòng)程序122內(nèi)的所識(shí) 別的指令。驅(qū)動(dòng)程序122可包括特別針對控制處理器108、圖形處理器110和顯示處理器 114中的一者或一者以上的功能性。在一個(gè)方面中,應(yīng)用程序指令118、API庫120和/或 驅(qū)動(dòng)程序122可從例如非易失性數(shù)據(jù)存儲(chǔ)媒體等存儲(chǔ)裝置加載到存儲(chǔ)器104中。在一個(gè)方 面中,應(yīng)用程序指令118、API庫120和/或驅(qū)動(dòng)程序122可包含以無線方式動(dòng)態(tài)地下載到 存儲(chǔ)器104中的一個(gè)或一個(gè)以上可下載模塊。存儲(chǔ)器104進(jìn)一步包括表面信息124。表面信息124可包括關(guān)于在圖形處理系統(tǒng) 102內(nèi)創(chuàng)建的表面的信息。舉例來說,表面信息124可包括與給定表面相關(guān)聯(lián)的表面數(shù)據(jù)、 表面格式數(shù)據(jù)和/或表面轉(zhuǎn)化數(shù)據(jù)。此表面可包含2D表面、3D表面或視頻表面。為了本 發(fā)明的目的,2D表面為可由例如OpenVG等2D API創(chuàng)建的表面。3D表面為可由例如OpenGL 等3D API創(chuàng)建的表面。視頻表面為可由例如H. 264或MPEG4(移動(dòng)圖片專家組版本4)等 視頻解碼器創(chuàng)建的表面??蓪⒈砻嫘畔?24加載到圖形處理系統(tǒng)102的表面信息存儲(chǔ)裝置112中。表面 信息存儲(chǔ)裝置112內(nèi)的經(jīng)更新的信息還可被往回提供以存儲(chǔ)在存儲(chǔ)器104的表面信息124 內(nèi)。在一個(gè)方面中,包含在表面信息存儲(chǔ)裝置112內(nèi)的信息可直接包括在存儲(chǔ)器104內(nèi)。在 此方面中,如展示于圖IB中,包含在表面信息存儲(chǔ)裝置112內(nèi)的信息可直接包括在表面信 息124內(nèi)。圖形處理系統(tǒng)102包括表面信息存儲(chǔ)裝置112。圖形處理器110、控制處理器108 和顯示處理器114各自操作地耦合到表面信息存儲(chǔ)裝置112,使得這些處理器中的每一者 可從存儲(chǔ)裝置112讀出數(shù)據(jù)或?qū)?shù)據(jù)寫入到存儲(chǔ)裝置112中。存儲(chǔ)裝置112還耦合到幀緩 沖器160。幀緩沖器160可為圖形處理系統(tǒng)102內(nèi)的專用存儲(chǔ)器。然而在一個(gè)方面中,如 圖IB中所示,幀緩沖器160可包含直接在存儲(chǔ)器104內(nèi)的系統(tǒng)RAM(隨機(jī)存取存儲(chǔ)器)。存 儲(chǔ)裝置112可為能夠存儲(chǔ)數(shù)據(jù)的任何永久或易失性存儲(chǔ)器,例如同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器 (SDRAM)。存儲(chǔ)裝置112可包括一個(gè)或一個(gè)以上表面數(shù)據(jù)115A到115N(統(tǒng)稱為115)、一個(gè) 或一個(gè)以上表面格式數(shù)據(jù)116A到116N(統(tǒng)稱為116),以及一個(gè)或一個(gè)以上表面轉(zhuǎn)化數(shù)據(jù) 117A到117N(統(tǒng)稱為117)。在圖形處理系統(tǒng)102內(nèi)創(chuàng)建的每一表面具有在表面數(shù)據(jù)115、 表面格式數(shù)據(jù)116和表面轉(zhuǎn)化數(shù)據(jù)117內(nèi)的用于所述表面的相關(guān)聯(lián)信息。表面可為許多不 同色空間(例如,RGB (紅色、綠色、藍(lán)色)色空間或YCbCr (亮度、藍(lán)色色度差、紅色色度差) 色空間)中的一者內(nèi)的表面。表面可由例如EGL(嵌入式圖形庫)等平臺(tái)接口層創(chuàng)建。此 平臺(tái)接口層充當(dāng)客戶端渲染應(yīng)用程序接口(API)與基礎(chǔ)本機(jī)平臺(tái)渲染API之間的接口,其 可包括在API庫120內(nèi)。
表面數(shù)據(jù)115包括(與色空間相關(guān)聯(lián)的)一個(gè)或一個(gè)以上色彩分量;以及可(例 如)由圖形處理器110在表面渲染期間產(chǎn)生的其它渲染數(shù)據(jù)。在存儲(chǔ)裝置112內(nèi)可以預(yù)定 或另外的有序方式來格式化或填充表面數(shù)據(jù)115。舉例來說,在表面數(shù)據(jù)115內(nèi)可使用經(jīng)交 錯(cuò)的、平面的、偽平面的、平鋪的、分層平鋪的或其它填充格式來填充表面的色彩分量數(shù)據(jù)。 如下文將更詳細(xì)地描述,表面格式數(shù)據(jù)116包括指定包括在表面數(shù)據(jù)115內(nèi)的數(shù)據(jù)的格式 布局的信息。表面格式數(shù)據(jù)116可由例如EGL等平臺(tái)接口層指定。在一個(gè)方面中,可以由 表面格式數(shù)據(jù)116指定的布局來格式化或填充表面數(shù)據(jù)115。表面轉(zhuǎn)化數(shù)據(jù)117提供創(chuàng)建于圖形處理系統(tǒng)102內(nèi)的表面的轉(zhuǎn)化信息。在某些情 況下,表面可能需要被轉(zhuǎn)化為不同格式。舉例來說,YCbCr表面(即,創(chuàng)建于YCbCr色空間 內(nèi)的表面)可能需要在顯示于顯示裝置106上之前轉(zhuǎn)化為RGB格式。顯示處理器114可能 夠直接處置此轉(zhuǎn)化。為了在轉(zhuǎn)化過程期間提供增加的靈活性,還提供表面轉(zhuǎn)化數(shù)據(jù)117。圖 形處理系統(tǒng)102連同顯示處理器114可經(jīng)配置以使用表面轉(zhuǎn)化數(shù)據(jù)117來使轉(zhuǎn)化過程流線 化,且可允許顯示處理器114以較高幀速率且/或以較低功率消耗來處理幀緩沖器160內(nèi) 的信息幀。根據(jù)一個(gè)方面,創(chuàng)建于圖形處理系統(tǒng)102內(nèi)的每一表面具有在表面數(shù)據(jù)115、表面 格式數(shù)據(jù)116和表面轉(zhuǎn)化數(shù)據(jù)117內(nèi)的相關(guān)聯(lián)信息。舉例來說,首先創(chuàng)建的表面可具有相關(guān) 聯(lián)的表面數(shù)據(jù)115A、表面格式數(shù)據(jù)116A和表面轉(zhuǎn)化數(shù)據(jù)117A。表面數(shù)據(jù)115A可以由(或 根據(jù))表面格式數(shù)據(jù)116A指定的布局來存儲(chǔ),且可根據(jù)表面轉(zhuǎn)化數(shù)據(jù)117A轉(zhuǎn)化為不同色 空間的新表面數(shù)據(jù)。其次創(chuàng)建的表面可具有相關(guān)聯(lián)的表面數(shù)據(jù)115N、表面格式數(shù)據(jù)116N和 表面轉(zhuǎn)化數(shù)據(jù)117N。因此,存儲(chǔ)裝置112能夠存儲(chǔ)與圖形處理系統(tǒng)102內(nèi)的許多不同表面 相關(guān)聯(lián)的表面信息。每一所創(chuàng)建的表面可具有不同格式和轉(zhuǎn)化數(shù)據(jù),從而提供被使用且最 終顯示在顯示裝置106上的表面的類型和格式的增加的靈活性。在一個(gè)方面中,表面格式數(shù)據(jù)116A到116N可指定表面數(shù)據(jù)的格式布局。舉例來 說,表面格式數(shù)據(jù)116A可指定表面數(shù)據(jù)115A的格式布局。格式布局可指示表面數(shù)據(jù)115A 的個(gè)別色彩分量在給定色空間內(nèi)的次序。舉例來說,如果表面數(shù)據(jù)115A包含RGB表面數(shù)據(jù), 那么表面格式數(shù)據(jù)116A可指定指示表面數(shù)據(jù)115A的R、G和B色彩分量的次序的格式布 局。類似地,如果表面數(shù)據(jù)115A包含YCbCr表面數(shù)據(jù),那么表面格式數(shù)據(jù)116A可指定指示 表面數(shù)據(jù)115A的Y、Cb、Cr或甚至可能A(透明度)色彩分量的次序的格式布局。在YCbCr 數(shù)據(jù)的情況下,取樣信息也可提供于表面格式數(shù)據(jù)116A內(nèi)。表面格式數(shù)據(jù)116A可因此提 供表面數(shù)據(jù)115A內(nèi)的色彩分量的各種不同存儲(chǔ)或填充模式的模式信息,例如交錯(cuò)模式、平 面模式、偽平面模式、平鋪模式、分層平鋪模式等。表面格式數(shù)據(jù)116A到116N可提供給顯 示處理器114,使得顯示處理器114可處理表面數(shù)據(jù)115A到115N。顯示處理器114能夠從存儲(chǔ)裝置112讀取針對多個(gè)圖形表面的輸出數(shù)據(jù)。對于任 何給定表面,顯示處理器114可讀取相關(guān)聯(lián)的表面數(shù)據(jù)、表面格式數(shù)據(jù)和表面轉(zhuǎn)化數(shù)據(jù)。舉 例來說,顯示處理器114可讀取與一個(gè)表面相關(guān)聯(lián)的表面數(shù)據(jù)115A、表面格式數(shù)據(jù)116A和 表面轉(zhuǎn)化數(shù)據(jù)117A。顯示處理器114可使用表面格式數(shù)據(jù)116A作為模式信息,以解譯包含 在表面數(shù)據(jù)115A(其可包括呈例如經(jīng)交錯(cuò)、平面、偽平面或其它形式等填充形式的數(shù)據(jù))內(nèi) 的信息的格式或模式。顯示處理器114可進(jìn)一步使用表面轉(zhuǎn)化數(shù)據(jù)117A來確定如何將表 面數(shù)據(jù)115A轉(zhuǎn)化為例如RGB格式等另一格式。
12
如下文將更詳細(xì)地描述,表面轉(zhuǎn)化數(shù)據(jù)117A可包括與箝位、偏差和/或Y有關(guān)的 信息或值,且還可包括色彩轉(zhuǎn)化矩陣。用戶可使用并配置各種不同的值。在某些情況下,可 將對應(yīng)于國際標(biāo)準(zhǔn)的值用作默認(rèn)值。國際標(biāo)準(zhǔn)ITU 601和656為標(biāo)準(zhǔn)清晰度電視(TV)提 供標(biāo)準(zhǔn)偏差值和色空間轉(zhuǎn)化矩陣,以在RGB色空間與其它視頻色空間(例如,YCbCr)之間 進(jìn)行轉(zhuǎn)化。國內(nèi)標(biāo)準(zhǔn)ITU 709為高清晰度TV提供標(biāo)準(zhǔn)偏差值和色空間轉(zhuǎn)化矩陣,以在RGB 色空間與其它視頻色空間之間進(jìn)行轉(zhuǎn)化。顯示處理器114為可對表面的經(jīng)渲染的圖形幀執(zhí)行后渲染功能以驅(qū)動(dòng)顯示裝置 106的處理器。后渲染功能可包括按比例縮放、旋轉(zhuǎn)、混合、色彩鍵控和/或重疊。舉例來說, 顯示處理器114可通過使用若干混合模式中的一者來組合表面,所述模式例如是具有恒定 α混合的色彩鍵控、無恒定α混合的色彩鍵控、全表面恒定α混合或全表面每像素α混 合。顯示處理器114在執(zhí)行此些后渲染功能時(shí)可使用表面數(shù)據(jù)115、表面格式數(shù)據(jù)116和/ 或表面轉(zhuǎn)化數(shù)據(jù)117。顯示處理器114可接著將圖形表面重疊到幀緩沖器160中的待顯示在顯示裝置 106上的圖形幀上。每一圖形表面被重疊的等級(jí)由針對所述圖形表面界定的表面等級(jí)決定。 此表面等級(jí)可由用戶程序(例如)通過應(yīng)用程序指令118來界定。表面等級(jí)可存儲(chǔ)為與所 渲染的表面相關(guān)聯(lián)的參數(shù)。在一個(gè)方面中,表面等級(jí)可界定為任何數(shù)字,其中數(shù)字越高,表面在所顯示的圖形 幀上將顯示得越高。即,在兩個(gè)表面的部分疊加的情形下,將顯示具有較高表面等級(jí)的表面 的疊加部分,而非具有較低表面等級(jí)的任何表面的疊加部分。作為簡單實(shí)例,用于桌上型計(jì) 算機(jī)上的背景圖像將具有比桌面上的圖標(biāo)的表面等級(jí)低的表面等級(jí)。表面等級(jí)在一些情況 下可與透明度信息組合,使得疊加的兩個(gè)表面可混合在一起。在這些情況下,可使用色彩鍵 控。如果第一表面中的像素并不與基色匹配,那么在未啟用α (透明度)混合的情況下,可 將第一表面選擇為輸出像素。在啟用α混合的情況下,可照?;旌系谝槐砻婧偷诙砻娴?像素。如果第一表面的像素并不與基色匹配,那么選擇第二表面的像素,且不執(zhí)行α混合。在一個(gè)方面中,控制處理器108可為高級(jí)RISC(精簡指令集計(jì)算機(jī))機(jī)(ARM)處 理器,例如由加利福尼亞州圣地亞哥市的高通(Qualcomm)公司設(shè)計(jì)的嵌入移動(dòng)臺(tái)調(diào)制解 調(diào)器中的ARM11處理器。在一個(gè)方面中,顯示處理器114可為由高通公司設(shè)計(jì)的也嵌入移動(dòng) 臺(tái)調(diào)制解調(diào)器中的移動(dòng)顯示處理器(MDP)。圖2A是根據(jù)一個(gè)方面的說明可用以實(shí)施YCbCr (亮度、藍(lán)色色度差、紅色色度差) 色空間和/或RGB(紅色、綠色、藍(lán)色)色空間中對表面創(chuàng)建的多格式支持的裝置200的框 圖。裝置200還可支持具有透明度A的YCbCr表面的表面創(chuàng)建。在以下描述中,術(shù)語“YCbCr” 將一般用以指代YCbCr色空間,其中YCbCr表面可或可不包括透明度數(shù)據(jù)。在此方面中,展 示于圖2A中的裝置200是展示于圖IA中的裝置100的實(shí)例示例。裝置200包括圖形處 理系統(tǒng)202、存儲(chǔ)器204和顯示裝置206。類似于展示于圖IA中的存儲(chǔ)器104,圖2的存儲(chǔ) 器204包括用于應(yīng)用程序指令218、API庫220和驅(qū)動(dòng)程序222的存儲(chǔ)空間。存儲(chǔ)器204還 包括由圖形處理系統(tǒng)202創(chuàng)建的YCbCr和/或RGB表面的YCbCr和/或RGB表面信息224。 YCbCr/RGB表面信息224可加載到用于YCbCr/RGB表面信息的存儲(chǔ)裝置213中,且來自存儲(chǔ) 裝置213的經(jīng)更新的信息可存儲(chǔ)在存儲(chǔ)器204中的YCbCr/RGB表面信息224中。類似于展示于圖IA中的圖形處理系統(tǒng)102,圖2的圖形處理系統(tǒng)202包括處理器
13208、圖形處理器210、顯示處理器214、用于YCbCr/RGB表面信息的存儲(chǔ)裝置213以及幀緩 沖器260。處理器208可為控制處理器或通用處理器。在一個(gè)方面中,處理器208可包含系 統(tǒng)CPU(中央處理單元)??刂铺幚砥?08、圖形處理器210和顯示處理器214各自操作地 耦合到存儲(chǔ)裝置213,且可各自將數(shù)據(jù)寫入到存儲(chǔ)裝置213中或從存儲(chǔ)裝置213讀取數(shù)據(jù)。 幀緩沖器260也耦合到存儲(chǔ)裝置213。在一個(gè)方面中,存儲(chǔ)裝置213可包括于較大存儲(chǔ)裝置 (例如,展示于圖IA中的存儲(chǔ)裝置112)內(nèi)。在一個(gè)方面中,包含在表面信息存儲(chǔ)裝置213內(nèi)的信息可直接包括在存儲(chǔ)器204 內(nèi)。在此方面中,如展示于圖2D中,包含在表面信息存儲(chǔ)裝置213內(nèi)的信息可直接包括在 表面信息224內(nèi)。幀緩沖器260可為圖形處理系統(tǒng)202內(nèi)的專用存儲(chǔ)器。然而,在一個(gè)方 面中,如展示于圖2D中,幀緩沖器260可包含直接在存儲(chǔ)器204內(nèi)的系統(tǒng)RAM(隨機(jī)存取存 儲(chǔ)器)。存儲(chǔ)裝置213包括一個(gè)或一個(gè)以上YCbCr或RGB表面數(shù)據(jù)215A到215N(統(tǒng)稱為 215)、一個(gè)或一個(gè)以上YCbCr或RGB表面格式數(shù)據(jù)216A到216N(統(tǒng)稱為216),以及一個(gè)或 一個(gè)以上YCbCr或RGB表面轉(zhuǎn)化數(shù)據(jù)217A到217N(統(tǒng)稱為217)。創(chuàng)建于圖形處理系統(tǒng)202 內(nèi)的每一 YCbCr或RGB表面(S卩,YCbCr或RGB色空間中的表面)具有在表面數(shù)據(jù)215、表 面格式數(shù)據(jù)216和表面轉(zhuǎn)化數(shù)據(jù)217內(nèi)的用于所述表面的相關(guān)聯(lián)信息。YCbCr或RGB表面 可由例如EGL(嵌入式圖形庫)等平臺(tái)接口層創(chuàng)建。此平臺(tái)接口層充當(dāng)客戶端渲染應(yīng)用程 序接口(API)與基礎(chǔ)本機(jī)平臺(tái)渲染API之間的接口,其可包括在API庫220內(nèi)。表面數(shù)據(jù)215包括YCbCr和/或RGB色彩分量以及可(例如)由圖形處理器210 在表面渲染期間產(chǎn)生的其它渲染數(shù)據(jù)。類似于表面數(shù)據(jù)115(圖1A),表面數(shù)據(jù)215可以預(yù) 定或另外的有序方式在存儲(chǔ)裝置213內(nèi)格式化或填充。如下文將更詳細(xì)地描述,表面格式 數(shù)據(jù)216包括指定包括在表面數(shù)據(jù)215內(nèi)的數(shù)據(jù)的格式布局的信息。表面格式數(shù)據(jù)216可 由例如EGL等平臺(tái)接口層指定。表面轉(zhuǎn)化數(shù)據(jù)217為在圖形處理系統(tǒng)202內(nèi)創(chuàng)建的表面在顯示于顯示裝置206上 之前轉(zhuǎn)化為另一格式提供轉(zhuǎn)化信息。舉例來說,表面轉(zhuǎn)化數(shù)據(jù)217可用以將YCbCr表面轉(zhuǎn) 化為RGB格式,或可用以將RGB表面轉(zhuǎn)化為YCbCr格式。為了提供轉(zhuǎn)化過程期間的增加的 靈活性,提供表面轉(zhuǎn)化數(shù)據(jù)217。圖形處理系統(tǒng)202連同顯示處理器214可能夠使用表面轉(zhuǎn) 化數(shù)據(jù)217使轉(zhuǎn)化過程流線化,且可允許顯示處理器214以較高幀速率和/或以較低功率 消耗來處理幀緩沖器260內(nèi)的信息幀。圖2B是根據(jù)一個(gè)方面的說明展示于圖2A中的API庫220的進(jìn)一步細(xì)節(jié)的框圖。 如先前參看圖2A所描述,API庫220可存儲(chǔ)在存儲(chǔ)器204中,且在由圖形處理器210、控制 處理器208和/或顯示處理器214進(jìn)行的應(yīng)用程序執(zhí)行期間,由應(yīng)用程序指令218鏈接或 引用。圖2C是根據(jù)一個(gè)方面的說明展示于圖2A中的驅(qū)動(dòng)程序222的進(jìn)一步細(xì)節(jié)的框圖。 驅(qū)動(dòng)程序222可存儲(chǔ)在存儲(chǔ)器204中,且在由圖形處理器210、控制處理器208和/或顯示 處理器214進(jìn)行的應(yīng)用程序執(zhí)行期間,由應(yīng)用程序指令218和/或API庫220鏈接或引用。在圖2B 中,API 庫 220 包括0penGL ES 渲染 API 230、OpenVG 渲染 API 232、EGL API 234和基礎(chǔ)本機(jī)平臺(tái)渲染API 239。展示于圖2C中的驅(qū)動(dòng)程序222包括0penGLES渲 染驅(qū)動(dòng)程序240、OpenVG渲染驅(qū)動(dòng)程序242、EGL驅(qū)動(dòng)程序244和基礎(chǔ)本機(jī)平臺(tái)渲染驅(qū)動(dòng)程 序249。OpenGL ES渲染API 230是在由圖形處理系統(tǒng)202進(jìn)行的應(yīng)用程序執(zhí)行期間由應(yīng)
14用程序指令218調(diào)用以提供由OpenGL ES支持的渲染功能(例如,2D和3D渲染功能)的 API。OpenGL ES渲染驅(qū)動(dòng)程序240在應(yīng)用程序執(zhí)行期間由應(yīng)用程序指令218和/或OpenGL ES渲染API 230調(diào)用,以用于圖形處理系統(tǒng)202中對OpenGL ES渲染功能的低等級(jí)驅(qū)動(dòng)程
序支持。OpenVG渲染API 232是在應(yīng)用程序執(zhí)行期間由應(yīng)用程序指令218調(diào)用以提供由 OpenVG支持的例如2D向量圖形渲染功能等渲染功能的API。OpenVG渲染驅(qū)動(dòng)程序242在 應(yīng)用程序執(zhí)行期間由應(yīng)用程序指令218和/或OpenVG渲染API 232調(diào)用,以用于圖形處理 系統(tǒng)202中對OpenVG渲染功能的低等級(jí)驅(qū)動(dòng)程序支持。EGL API 234 (圖2B)和EGL驅(qū)動(dòng)程序244 (圖2C)提供對圖形處理系統(tǒng)202中的 EGL功能的支持。在一個(gè)方面中,EGL擴(kuò)展可并入EGLAPI 234和EGL驅(qū)動(dòng)程序244內(nèi)。在 圖2B到圖2C的實(shí)例中,提供表面重疊和表面信息功能性(例如,YCbCr表面信息功能性) 的EGL擴(kuò)展。因此,對于EGL表面重疊擴(kuò)展來說,表面重疊API 236包括于EGL API 234內(nèi), 且表面重疊驅(qū)動(dòng)程序246包括于EGL驅(qū)動(dòng)程序244內(nèi)。同樣,對于EGL表面信息擴(kuò)展來說, 表面信息API 238 (其可包括(例如)YCbCr表面信息API)包括在EGLAPI 234內(nèi),且表面 信息驅(qū)動(dòng)程序248包括在EGL驅(qū)動(dòng)程序244內(nèi)。EGL表面重疊擴(kuò)展提供顯示在顯示裝置206上的多個(gè)圖形表面(例如,2D表面、3D 表面和/或視頻表面)的重疊體的表面重疊堆疊。圖形表面在堆疊內(nèi)可各自具有相關(guān)聯(lián)的 表面等級(jí)。由此根據(jù)表面在堆疊內(nèi)的重疊次序而實(shí)現(xiàn)表面的重疊。表面重疊的實(shí)例展示于 圖3B中,且將在下文更詳細(xì)地論述。在一個(gè)方面中,EGL表面信息擴(kuò)展提供對圖形處理系統(tǒng)202內(nèi)的表面創(chuàng)建的多格 式支持,且可特定提供對YCbCr表面的支持。如先前所描述,存儲(chǔ)裝置213含有表面數(shù)據(jù) 215 (其可包括YCbCr表面數(shù)據(jù))、表面格式數(shù)據(jù)216 (其可包括用于YCbCr表面的格式數(shù) 據(jù))以及表面轉(zhuǎn)化數(shù)據(jù)217 (其可包括用以將YCbCr表面轉(zhuǎn)化為RGB格式的數(shù)據(jù))。EGL表 面信息擴(kuò)展提供對到存儲(chǔ)裝置213中且離開存儲(chǔ)裝置213的數(shù)據(jù)流的支持,且提供控制處 理器208、圖形處理器210和/或顯示處理器214中的一者或一者以上在表面渲染、數(shù)據(jù)轉(zhuǎn) 化(例如,YCbCr到RGB轉(zhuǎn)化)和表面在圖形處理系統(tǒng)202內(nèi)的顯示期間可能需要的信息。如展示于圖2B中,API庫220還包括基礎(chǔ)本機(jī)平臺(tái)渲染API 239。API 239是由裝 置200在應(yīng)用程序指令218的執(zhí)行期間實(shí)施的基礎(chǔ)本機(jī)平臺(tái)提供的API。EGL API 234提供 基礎(chǔ)本機(jī)平臺(tái)渲染API 239與OpenGL ES渲染API 230和OpenVG渲染API 232之間的平 臺(tái)接口層。如展示于圖2C中,驅(qū)動(dòng)程序222包括基礎(chǔ)本機(jī)平臺(tái)渲染驅(qū)動(dòng)程序249。驅(qū)動(dòng)程 序249是由裝置200在應(yīng)用程序指令218和/或API庫220的執(zhí)行期間實(shí)施的基礎(chǔ)本機(jī)平 臺(tái)提供的驅(qū)動(dòng)程序。EGL驅(qū)動(dòng)程序244可提供基礎(chǔ)本機(jī)平臺(tái)渲染驅(qū)動(dòng)程序249與OpenGLES 渲染驅(qū)動(dòng)程序240和OpenVG渲染驅(qū)動(dòng)程序242之間的平臺(tái)接口層。圖3A是根據(jù)一個(gè)方面的說明可包括一個(gè)或一個(gè)以上YCbCr或RGB表面的用于表 面的表面信息的實(shí)例的框圖。在圖3A中,表示表面300A到300N。舉例來說,每一表面300A 到300N是可由圖形處理系統(tǒng)102處理且最終顯示在展示于圖IA或圖IB中的顯示裝置106 上的表面。這些表面300A到300N還可由展示于圖2A或圖2D中的圖形處理系統(tǒng)202處理。 然而,在圖3A到圖3B的以下描述中僅為了說明的目的,將假定表面300A到300N由圖形處 理系統(tǒng)102處理。
15
每一表面300A到300N可包含可在給定色空間(例如,RGB或YCbCr色空間)中 表示的2D表面、3D表面或視頻表面。在幀緩沖器160內(nèi)捕捉且在顯示裝置106上顯示的每 一數(shù)據(jù)幀內(nèi),可根據(jù)重疊次序來重疊表面300A到300N。此情形的實(shí)例展示于圖3B中。以 此方式,包括RGB和YCbCr色空間的各種不同色空間中的2D表面、3D表面和/或視頻表面
可重疊于表面重疊堆疊中,且一起顯示在顯示裝置106上。每一表面300A到300N與對應(yīng)的表面信息相關(guān)聯(lián)。舉例來說,在圖3A中,表面300A 與表面信息302A相關(guān)聯(lián),而表面300N與表面信息302N相關(guān)聯(lián)。表面信息302A到302N可 存儲(chǔ)在存儲(chǔ)裝置112內(nèi)。表面信息302A包括表面數(shù)據(jù)315A、表面格式數(shù)據(jù)316A和表面轉(zhuǎn)化數(shù)據(jù)317A。 類似地,表面信息302N包括表面數(shù)據(jù)315N、表面格式數(shù)據(jù)316N和表面轉(zhuǎn)化數(shù)據(jù)317N。在 一個(gè)方面中,表面數(shù)據(jù)315A到315N類似于表面數(shù)據(jù)115A到115N,表面格式數(shù)據(jù)316A到 316N類似于表面格式數(shù)據(jù)116A到116N,且表面轉(zhuǎn)化數(shù)據(jù)317A到317N類似于表面轉(zhuǎn)化數(shù) 據(jù)117A到117N。因此,每一表面300A到300N具有相關(guān)聯(lián)的表面數(shù)據(jù)(例如,可以填充格 式存儲(chǔ)的渲染數(shù)據(jù))、用以指定表面數(shù)據(jù)的格式的表面格式數(shù)據(jù)以及用以指定(如果必要 的話)表面數(shù)據(jù)(例如,YCbCr表面數(shù)據(jù))轉(zhuǎn)化為RGB格式的轉(zhuǎn)化信息的表面轉(zhuǎn)化數(shù)據(jù),使 得每一表面300A到300N可由顯示處理器114處理且顯示在顯示裝置106上。圖3B是根據(jù)一個(gè)方面的說明與可顯示在顯示裝置106上的來自圖3A的表面300A 和300N相關(guān)聯(lián)的經(jīng)重疊表面數(shù)據(jù)的實(shí)例的框圖。表面300A到300N中的一者或一者以上 可包含YCbCr表面。表面300A具有相關(guān)聯(lián)的表面信息302A,且表面300N具有相關(guān)聯(lián)的表 面信息302N。表面信息302A和302N可存儲(chǔ)在存儲(chǔ)裝置112內(nèi)。在圖3B的實(shí)例中,假定顯示處理器114從存儲(chǔ)裝置112讀出用于表面300A的表 面信息302A。顯示處理器114可接著獲得表面數(shù)據(jù)315A,且使用表面格式數(shù)據(jù)316A和表 面轉(zhuǎn)化數(shù)據(jù)317A來處理此數(shù)據(jù)。顯示處理器114在處理此數(shù)據(jù)時(shí)使用表面格式數(shù)據(jù)316A 來解譯表面數(shù)據(jù)315A的填充布局的格式。此外,顯示處理器114使用表面轉(zhuǎn)化數(shù)據(jù)317A來 輔助將表面數(shù)據(jù)315A轉(zhuǎn)化為RGB表面數(shù)據(jù)325A(即,轉(zhuǎn)化為RGB格式)(如果必要的話), RGB表面數(shù)據(jù)325A可接著被寫入到幀緩沖器160。(在此實(shí)例中,假定顯示裝置106為IXD 裝置。當(dāng)然,在其它情境下,顯示裝置106可包含其它形式的顯示裝置,例如,TV裝置)。類似地,顯示處理器114可讀取用于表面300N的表面信息302N,且通過使用表面 格式數(shù)據(jù)316N和表面轉(zhuǎn)化數(shù)據(jù)317N來從表面數(shù)據(jù)315N產(chǎn)生RGB表面數(shù)據(jù)325N。顯示處 理器114可接著將RGB表面數(shù)據(jù)325N寫入到幀緩沖器160中。以此方式,RGB表面數(shù)據(jù) 325A和325N可包括在待顯示于顯示裝置106上的一個(gè)數(shù)據(jù)幀內(nèi)。在一個(gè)方面中,RGB表面數(shù)據(jù)325A和325N可包括在表面重疊堆疊內(nèi)。在此方面 中,顯示處理器114可使RGB表面數(shù)據(jù)325A和325N中的每一者與堆疊內(nèi)的不同表面等級(jí) 相關(guān)聯(lián),從而實(shí)施RGB表面數(shù)據(jù)325A和325N的重疊次序。RGB表面數(shù)據(jù)325A與用于表面 300A的表面數(shù)據(jù)的一個(gè)幀相關(guān)聯(lián),且RGB表面數(shù)據(jù)325N與用于表面300N的表面數(shù)據(jù)的一 個(gè)幀相關(guān)聯(lián)。在一個(gè)方面中,在表面重疊過程期間可考慮表面300A和300N的等級(jí)或表面300A 和300N聯(lián)編到特定等級(jí)的序列。在某些情況下,多個(gè)表面可聯(lián)編到一特定層。可從后到前 (最負(fù)到最正)地處理各層。在給定層內(nèi),以表面聯(lián)編到層的序列來處理所述表面。
16
在圖3B中,RGB表面數(shù)據(jù)325A和325N可在對于用戶可見的屏幕區(qū)域330內(nèi)顯示 在顯示裝置106上。RGB表面數(shù)據(jù)325A和325N可基于顯示處理器114所使用的重疊次序 作為經(jīng)重疊表面顯示于屏幕區(qū)域330內(nèi)。RGB表面數(shù)據(jù)325A和325N可或可不以與包括于 幀緩沖器160內(nèi)的位置或關(guān)系相同的位置或關(guān)系來顯示。顯示處理器114可使用表面重疊 堆疊來指派任何表面重疊等級(jí),以用于將所述表面顯示在顯示裝置106上。因此,圖形處理 系統(tǒng)102可能夠提供可經(jīng)重疊以在顯示裝置206上向用戶顯示的2D、3D和/或視頻表面數(shù) 據(jù)。舉例來說,如果表面300A為圖3B的實(shí)例中的RGB 3D表面,且表面300N為YCbCr視頻 表面,那么與這些表面相關(guān)聯(lián)的3D和視頻表面數(shù)據(jù)可顯示在顯示裝置106上(其中YCbCr 視頻表面數(shù)據(jù)在顯示之前轉(zhuǎn)化為RGB格式)。在一些方面中,具有一個(gè)或一個(gè)以上色空間的 任何所界定表面格式的2D、3D和/或視頻表面數(shù)據(jù)的任意組合可重疊于顯示裝置106上。圖4是根據(jù)一個(gè)方面的可由展示于圖IA或圖IB的圖形處理系統(tǒng)102中的控制處 理器108、圖形處理器110和/或顯示處理器114中的一者或一者以上,或由展示于圖2A或 圖2D的圖形處理系統(tǒng)202中的控制處理器208、圖形處理器210和/或顯示處理器214中 的一者或一者以上執(zhí)行的方法的流程圖。在以下描述中僅為了說明的目的,將假定展示于 圖4中的方法由圖形處理系統(tǒng)102中的一個(gè)或一個(gè)以上處理器執(zhí)行。最初,控制處理器108、圖形處理器110和/或顯示處理器114中的一者或一者以 上經(jīng)由例如EGL等平臺(tái)接口層創(chuàng)建圖形表面(圖4中的400)。所述平臺(tái)接口層充當(dāng)接口, 且位于客戶端渲染API (例如,OpenGL ES或OpenVG)與基礎(chǔ)本機(jī)平臺(tái)渲染API之間。如果 色空間包含YCbCr色空間,那么表面可為YCbCr表面。如果色空間包含RGB色空間,那么表 面可為RGB表面??刂铺幚砥?08、圖形處理器110和/或顯示處理器114中的一者或一者以上可接 著使用平臺(tái)接口層來指定(圖4中的402)與表面相關(guān)聯(lián)的表面數(shù)據(jù)在色空間內(nèi)的格式布 局。格式布局指示表面數(shù)據(jù)的一個(gè)或一個(gè)以上色彩分量在色空間內(nèi)的布局(例如,次序)。 舉例來說,如果表面為YCbCr表面,那么格式布局可指示表面數(shù)據(jù)的個(gè)別Y、Cb、Cr和可能 A(透明度)色彩分量的次序。如果表面為RGB表面,那么格式布局可指示表面數(shù)據(jù)的個(gè)別 R、G和B色彩分量的次序。表面數(shù)據(jù)和格式布局(格式數(shù)據(jù))兩者可存儲(chǔ)在(例如)存儲(chǔ) 裝置112中。還可為了將表面顯示在例如顯示裝置106等顯示裝置上而將表面數(shù)據(jù)的格式 布局提供為模式信息。在一個(gè)方面中,格式布局可指示一個(gè)或一個(gè)以上色彩分量的第一群組在第一平面 內(nèi)的第一布局。格式布局可進(jìn)一步指示一個(gè)或一個(gè)以上色彩分量的第二群組在不同于第一 平面的第二平面內(nèi)的第二布局。第一群組可包括一個(gè)或一個(gè)以上色彩分量中的多者,且第 一布局可指示第一群組的色彩分量在第一平面內(nèi)的次序。在各種不同情境下,可在任何數(shù) 目的不同平面內(nèi)指定任何數(shù)目的格式布局。再次參看圖4,在404處,處理器中的一者或一者以上可指定用于將與表面相關(guān)聯(lián) 的表面數(shù)據(jù)轉(zhuǎn)化為不同色空間內(nèi)的經(jīng)轉(zhuǎn)化數(shù)據(jù)的色彩轉(zhuǎn)化信息。舉例來說,如果色空間為 YCbCr色空間,且不同色空間為RGB色空間,那么色彩轉(zhuǎn)化信息可用以將YCbCr表面數(shù)據(jù)轉(zhuǎn) 化為RGB表面數(shù)據(jù)。在406處,一個(gè)或一個(gè)以上處理器可執(zhí)行表面的表面渲染以產(chǎn)生表面數(shù)據(jù)??山?著根據(jù)所指定的格式布局來存儲(chǔ)此表面數(shù)據(jù)。
17
圖5是根據(jù)一個(gè)方面的可由展示于圖IA或圖IB的圖形處理系統(tǒng)102中的控制處 理器108、圖形處理器110和/或顯示處理器114中的一者或一者以上,或由展示于圖2A或 圖2D的圖形處理系統(tǒng)202中的控制處理器208、圖形處理器210和/或顯示處理器214中 的一者或一者以上執(zhí)行的方法的流程圖。在以下描述中僅為了說明的目的,將假定展示于 圖5中的方法由圖形處理系統(tǒng)102中的一個(gè)或一個(gè)以上處理器執(zhí)行。最初,控制處理器108、圖形處理器110和/或顯示處理器114中的一者或一者 以上創(chuàng)建具有第一格式布局的第一圖形表面(500)和具有第二格式布局的第二圖形表面 (502)。第一表面和第二表面在一些情況下可各自包含2D表面、3D表面或視頻表面。所述 處理器中的一者或一者以上接著執(zhí)行第一表面的表面渲染,且根據(jù)第一格式布局將相關(guān)聯(lián) 的表面數(shù)據(jù)存儲(chǔ)在例如存儲(chǔ)裝置112等存儲(chǔ)裝置中(504)。在506處,執(zhí)行第二表面的表面 渲染,且根據(jù)第二格式布局來存儲(chǔ)相關(guān)聯(lián)的表面數(shù)據(jù)。在508處,處理器中的一者或一者以 上基于重疊次序而重疊第一表面與第二表面。以此方式,與多個(gè)表面相關(guān)聯(lián)的表面數(shù)據(jù)可 由顯示處理器114從存儲(chǔ)裝置112讀出到表面重疊堆疊中,且經(jīng)提供以根據(jù)重疊次序顯示 在顯示裝置106上。如先前所論述,對表面創(chuàng)建和使用的多格式支持可由系統(tǒng)102和/或系統(tǒng)202 (圖 2A)內(nèi)的一個(gè)或一個(gè)以上處理器來實(shí)施。在一個(gè)方面中,用以實(shí)施對表面創(chuàng)建和使用(在 由一個(gè)或一個(gè)以上處理器執(zhí)行時(shí))的多格式支持的功能性可包括在API庫120和/或驅(qū)動(dòng) 程序122內(nèi),或包括在API庫220和/或驅(qū)動(dòng)程序222 (圖2A)內(nèi)。舉例來說,此功能性可 包括在表面信息API 238(圖2B)內(nèi)和/或表面信息驅(qū)動(dòng)程序248 (圖2C)內(nèi)。在一個(gè)方面 中,此功能性可被提供作為例如EGL擴(kuò)展等平臺(tái)接口層擴(kuò)展的一部分。在以下描述中僅為 了說明的目的,將假定此功能性被提供作為EGL擴(kuò)展(即,對EGL規(guī)范的擴(kuò)展)的一部分。在一個(gè)方面中,提供EGL擴(kuò)展以用于輸出可支持各種形式的YCbCr格式的配置。如 果所述表面稍后被加貼到顯示裝置106,那么除僅配置改變之外,擴(kuò)展還可界定進(jìn)一步指定 YCbCr數(shù)據(jù)的格式布局以及到RGB的色彩格式轉(zhuǎn)化所需的信息的機(jī)制。在一些情況下,顯示裝置106可為TV顯示裝置而非IXD。在此情況下,當(dāng)處理重疊 堆疊內(nèi)的表面時(shí),可將RGB表面轉(zhuǎn)化為YCbCr表面。在此方面的EGL擴(kuò)展內(nèi),額外YCbCr格式數(shù)據(jù)可適用于其中EGL的EGL_C0L0R_ BUFFER_TYPE字段被設(shè)置為EGL_LUMINANCE_BUFFER的配置。在此情況下,EGL_SAMPLES字 段用以指示YCbCr表面的取樣比率。圖6說明根據(jù)一個(gè)方面的其中將YCbCr表面取樣配置信息600用以指示YCbCr表 面的配置和取樣信息的情況的實(shí)例。在此方面中,YCbCr表面取樣配置信息600包含EGL_ SAMPLES字段的信息。如圖6中所示,最高有效字節(jié)(八個(gè)位)用于旗標(biāo)。EGL_YCBCR_ ENABLE, EGL_CBCR_COSITE 和 EGL_CBCR_OFFSITE 為可使用的旗標(biāo)或令牌。下兩個(gè)半字節(jié)(其中一個(gè)半字節(jié)包含四個(gè)位)分別界定水平子取樣因子和垂直子 取樣因子。較低(即,最低有效)四個(gè)半字節(jié)分別界定亮度(Y)取樣因子、藍(lán)色色度差(Cb) 取樣因子、紅色色度差(Cr)取樣因子和α (A)透明度取樣因子。在一個(gè)方面中,EGL_YCBCR_ ENABLE旗標(biāo)或令牌可用以區(qū)分YCbCr表面與經(jīng)多重取樣的亮度或亮度α表面。在一個(gè)方面中,EGL擴(kuò)展可提供與YCbCr表面格式和轉(zhuǎn)化處理有關(guān)的四個(gè)新函數(shù) (包括“設(shè)置”和“獲取”函數(shù)),下文將更詳細(xì)地描述所述函數(shù)。下文展示這四個(gè)函數(shù)的實(shí)
18例函數(shù)說明EGLBoolean eglSurfaceYCbCrFormatQUALCOMM(EGLDisplay dpy,EGLSurface surf,const EGLYCbCrFormat氺format);EGLBoolean eg1GetSurfaceYCbCrFormatQUALCOMM(EGLDisp1ay dpy,EGLSurface surf,EGLYCbCrFormat氺format);EGLBoolean eglSurfaceYCbCrConversionQUALCOMM(EGLDisplay dpy,EGLSurface surf,const EGLYCbCrConversion氺conv);EGLBoolean eglGetSurfaceYCbCrConversionQUALCOMM(EGLDisplay dpy,EGLSurface surf,EGLYCbCrConversion氺conv);eglSurfaceYCbCrFormatQUALCOMM 函數(shù)設(shè)置 EGL YCbCr 表面的 YCbCr 格式。
eglGetSurfaceYCbCrFormatQUALCOMM 函數(shù)獲取或傳回 EGL YCbCr 表面的 YCbCr 格式數(shù)據(jù)。 eglSurfaceYCbCrConversionQUALCOMM函數(shù)設(shè)置可用以將EGL YCbCr表面轉(zhuǎn)化到另一色空 間(例如,轉(zhuǎn)化到RGB色空間)的各種轉(zhuǎn)化參數(shù)。eglGetSurfaceYCbCrConversionQUALCOM M函數(shù)獲取或傳回各種轉(zhuǎn)化參數(shù)。下文更詳細(xì)地描述這些函數(shù)的各種方面。
在一個(gè)方面中,EGL擴(kuò)展提供額外的、新的數(shù)據(jù)類型結(jié)構(gòu)。這些結(jié)構(gòu)與YCbCr表面 數(shù)據(jù)的格式以及轉(zhuǎn)化信息有關(guān)。下文展示實(shí)例數(shù)據(jù)結(jié)構(gòu)
0100]typedefstruct0101]{0102]EGLintorder[2];0103]void氺offset ;0104]}EGLYCbCrPlaneFormat ;0105]typedefstruct0106]{0107]EGLYCbCrPlaneFormat plan0108]}EGLYCbCrFormat ;0109]typedefEGLint EGLfixed ;0110]typedefstruct0111]{0112]EGLintclamp—min[3];0113]EGLintclamp—max[3];0114]EGLintbias[3];0115]EGLfixedcsc—matrix[9];0116]EGLfixedgamma ;0117]}EGLYCbCrConversion ;
EGL EGLSurface數(shù)據(jù)結(jié)構(gòu)可含有用于YCbCr表面的類型EGLYCbCrFormat和 EGLYCbCrConversion的兩個(gè)額外成員。如下文更詳細(xì)地描述,EGLYCbCrFormat成員提供 YCbCr表面的格式化信息,且EGLYCbCrConversion成員提供用于YCbCr表面的色彩轉(zhuǎn)化信
肩、ο在一個(gè)方面中,EGL擴(kuò)展提供額外令牌。這些令牌在下文更詳細(xì)地描述,且以十六 進(jìn)制形式來表示。這些新令牌如下EGL_CBCR_0FFSITE0x00000000
EGL_CBCR_C0SITE0x01000000
EGL_YCBCR_ENABLE0x80000000
EGL_Y_BIT0x00000001
EGL_CR_BIT0x00000002
EGL_CB_BIT0x00000004
EGL_ALPHA_BIT0x00000008
EGL_YCBCR_ENABLE旗標(biāo)或令牌可用以區(qū)分YCbCr表面與經(jīng)多重取樣的亮度或亮
度α表面。色度樣本可與亮度樣本同位點(diǎn)(位于同一位置),或經(jīng)內(nèi)插(異位點(diǎn))。同位 點(diǎn)令牌 EGL_CBCR_COSITE 或異位點(diǎn)令牌 EGL_CBCR_OFFSITE 可與 EGL_YCBCR_ENABLE 令 牌和對于與所要格式匹配的EGL_SAMPLES的值為特定的其它半字節(jié)進(jìn)行邏輯“或”運(yùn)算。為了設(shè)置用于新YCbCr表面的特定YCbCr格式,可用界定YCbCr數(shù)據(jù)的準(zhǔn)確布局 的EGLYCbCrFormat數(shù)據(jù)結(jié)構(gòu)來調(diào)用函數(shù)eglSurfaceYCbCrFormatQUALCOMM。所述數(shù)據(jù)結(jié) 構(gòu)內(nèi)的平面陣列的每一元素表示潛在交錯(cuò)的色彩分量的平面。EGLYCbCrPlaneFormat結(jié)構(gòu) 的 order 變量使每一半字節(jié)設(shè)置為 EGL_Y_BIT、EGL_CR_BIT、EGL_CB_BIT 或 EGL_ALPHA_BIT 以表示所述平面中分量的次序。(盡管order變量在實(shí)例結(jié)構(gòu)中展示為可無正負(fù)號(hào)的兩個(gè) EGLint的陣列,但可使用各種其它類型和陣列大小。)EGLYCbCrFormat結(jié)構(gòu)界定四個(gè)不同 平面,但可使用任何數(shù)目的平面??蓮牡诹愕降趇個(gè)元素的最高有效半字節(jié)開始填入order 變量。根據(jù)一個(gè)方面,一旦發(fā)現(xiàn)具有值零的半字節(jié),就假定模式重復(fù),且不檢查其它半字節(jié)。 如果實(shí)施方案不支持特定格式,那么可傳回EGL_FALSE,而不設(shè)置錯(cuò)誤。應(yīng)用程序可調(diào)用 eglGetSurfaceYCbCrFormatQUALCOMM以確定當(dāng)前正用于表面的格式。為了設(shè)置特定YCbCr色彩轉(zhuǎn)化,可用EGLYCbCrConversion數(shù)據(jù)結(jié)構(gòu)來調(diào)用函數(shù)e glSurfaceYCbCrConversionQUALCOMM,其界定在將表面加貼到顯示裝置時(shí)使用的箝位、偏 差、色彩轉(zhuǎn)化矩陣和Y值。應(yīng)用程序可調(diào)用eglGetSurfaceYCbCrConversionQUALCOMM以確 定當(dāng)前正在使用的參數(shù)(例如,箝位、偏差、色彩轉(zhuǎn)化矩陣和Y參數(shù))。色空間轉(zhuǎn)化矩陣可 使用固定點(diǎn)格式,且可以列為主格式存儲(chǔ)。(EGLfixed類型可為可解譯為具有S15. 16格式 的32位EGLint)。在某些情況下,可將對應(yīng)于國際標(biāo)準(zhǔn)的值用作默認(rèn)值,且可使用為2. 22 的默認(rèn)Y值。國際標(biāo)準(zhǔn)ITU 601和656提供標(biāo)準(zhǔn)偏差值和色空間轉(zhuǎn)化矩陣,以在標(biāo)準(zhǔn)清晰 度TV的RGB色空間與其它視頻色空間(例如,YCbCr)之間進(jìn)行轉(zhuǎn)化。國內(nèi)標(biāo)準(zhǔn)ITU 709提 供標(biāo)準(zhǔn)偏差值和色空間轉(zhuǎn)化矩陣,以在高清晰度TV的RGB色空間與其它視頻色空間之間進(jìn) 行轉(zhuǎn)化。然而,應(yīng)用程序和應(yīng)用程序開發(fā)者可具有充分的靈活性來利用箝位、偏差、色彩轉(zhuǎn) 化矩陣和Y參數(shù)的任何值,以定制YCbCr或其它色空間表面到RGB格式中的轉(zhuǎn)化。為了提供支持EGL YCbCr表面的多格式和轉(zhuǎn)化能力的EGL擴(kuò)展的實(shí)施方案的實(shí)
20例,提供以下樣本代碼,所述樣本代碼利用上文為了說明的目的而列出的函數(shù)、結(jié)構(gòu)和令牌 中的若干者
0131]//Construct a matching config for a YCbCr surface
0132]const EGLint attribs[3]=
0133]{
0134]EGL_SAMPLES,EGL_YCBCR_ENABLE,
0135]EGL_N0NE
0136]}
0137]//Get list of all matching configs
0138]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_N0_SURFACE//YCbCrASurface os the native pixmap surface/type handlepix = 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 ={
0153]//Plane 0
0154]{
0155]{
0156]EGL_Y_BIT <<28 | EGL_CB_BIT <<24
0157]EGL_Y_BIT << 20 |EGL_CR_BIT <<16,
0158]0
0159]},
0160]YCbCrOffset
0161]},
0162]//Plane 1
0163]{
0164]{
0165]EGL_ALPHA_BIT <<28,
0166]0 0167] },
210168]AOffset
0169]},
0170]//Plane 2
0171]{
0172]{
0173]0,
0174]0
0175]},
0176](void*)0
0177]},
0178]//Plane 3
0179]{
0180]{ 0181] 0, 0182] 0
0183]},
0184](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旗標(biāo)與EGL_SAMPLES來設(shè)置屬 性列表。接著,獲得所有匹配配置的列表。在實(shí)例代碼中假定,選擇與EGL_SAMPLES的格 式設(shè)置匹配的可用YCbCr表面。這可通過查詢EGL_SAMPLES字段的每一傳回配置且尋找 正確簽名來進(jìn)行。在樣本代碼中,假定4:2:2:4(H2V1)格式被選定,且被指派給變量cfg。 對于此實(shí)例取樣格式來說,EGL_SAMPLES的簽名針對展示于圖6中的格式可為十六進(jìn)制的 0x81214224。在此情況下,設(shè)置 EGL_YCBCR_ENABLE 和 EGL_CBCR_C0SITE 位,Hss (水平子取 樣)等于二(即,在水平方向上每隔一個(gè)像素對色度進(jìn)行取樣),Vss(垂直子取樣)等于 一(即,在垂直方向上每像素都對色度進(jìn)行取樣),亮度取樣等于四分之四,藍(lán)色色度差取 樣等于四分之二,紅色色度差取樣等于四分之二,且α取樣等于四分之四。接下來,在樣本代碼中,以此格式創(chuàng)建像素映射(離屏)表面。像素映射表面是使 用A或α (透明度)的YCbCr表面。當(dāng)然,可創(chuàng)建其它形式的表面。接下來,使用YCbCr數(shù)據(jù)的經(jīng)交錯(cuò)平面和α的單獨(dú)平面來設(shè)置用于表面數(shù)據(jù)的格式填充次序。為了這樣做,初始化類型EGLYCbCrFormat的變量fmt。在此實(shí)例中,僅平面 零和一填有格式數(shù)據(jù)。當(dāng)然,在其它實(shí)例中,所述平面中的一者或一者以上可填有格式數(shù) 據(jù)。此外,可在每一平面內(nèi)界定色彩分量的任何類型的模式,例如交錯(cuò)模式、平面模式、偽平 面模式、平鋪模式、分層平鋪模式或其它形式的填充模式。另外,在一些方面中,可使用類似 于EGLYCbCrFormat的數(shù)據(jù)結(jié)構(gòu)以類似方式來界定例如用于RGB表面數(shù)據(jù)的格式等其它色 空間格式,以設(shè)置R、G和B色彩分量的格式填充次序。再次參看樣本代碼,平面零包括Y、Cb和Cr分量的群組的格式數(shù)據(jù)。對于平面零 中的此定義,在假定在此實(shí)例中使用4:2:2:4 (H2V1)格式的情況下,使用order變量的EGL_ Y_BIT、EGL_CB_BIT、EGL_Y_BIT和EGL_CR_BIT來界定Y、Cb和Cr分量的交錯(cuò)模式或次序。 接著在order變量內(nèi)提供零值以指示模式重復(fù)。假定平面可任意存儲(chǔ)在存儲(chǔ)器中,偏移指 針YCbCrOffset用作直接指向平面零以供參考的偏移指針。通常,YCbCrOffset將為零,但 并不一定是所述情況。平面一包括用于α (透明度)的格式數(shù)據(jù)。僅將EGL_ALPHA_BIT用于設(shè)置在此平 面中的格式。偏移指針AOffset用作直接指向平面一以供參考的偏移指針。通常,AOffset 將不為零,但并不一定是所述情況。最后,在樣本代碼中,通過調(diào)用eglSurfaceYCbCrFormatQUALCOMM函數(shù)來設(shè)置表 面格式。在此點(diǎn)處,可類似于任何其它EGL表面來使用表面。所述表面可包含2D、3D或視 頻表面,且所述表面可與表面重疊堆疊內(nèi)的一個(gè)或一個(gè)以上額外表面組合以組成例如幀緩 沖器160 (圖IA或圖1B)等幀緩沖器內(nèi)的數(shù)據(jù)幀,以供顯示在例如顯示裝置106等顯示裝 置上。EGL可提供用以經(jīng)由EGLConfig結(jié)構(gòu)中的字段來表示針對特定表面支持哪一 API的 機(jī)制。說明于圖1到圖5中的各種組件可由硬件和/或軟件的任意合適組合來實(shí)現(xiàn)。在 圖1到圖5中,將各種組件描繪為單獨(dú)的單元或模塊。然而,參看圖IA到圖5而描述的各 種組件中的所有組件或若干組件可集成為共用硬件和/或軟件內(nèi)的組合式單元或模塊。因 此,將特征表示為組件、單元或模塊意在為了易于說明而強(qiáng)調(diào)特定功能特征,而并不一定要 求通過單獨(dú)的硬件或軟件組件來實(shí)現(xiàn)此些特征。在一些情況下,可將各種單元實(shí)施為由一 個(gè)或一個(gè)以上處理器執(zhí)行的可編程進(jìn)程。舉例來說,本發(fā)明中所描述的技術(shù)的各種方面可實(shí)施于以下各項(xiàng)內(nèi)一個(gè)或一 個(gè)以上通用微處理器、數(shù)字信號(hào)處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列 (FPGA)或其它等效邏輯裝置。因此,如本文中所使用的術(shù)語“處理器”或“控制器”可指代 前述結(jié)構(gòu)中的任一者或適合實(shí)施本文中所描述的技術(shù)的任何其它結(jié)構(gòu)。本文中所描述的組件和技術(shù)可以硬件、軟件、固件或其任意組合來實(shí)施。描述為模 塊或組件的任何特征可一起實(shí)施于集成邏輯裝置中或單獨(dú)地實(shí)施為離散但可共同操作的 邏輯裝置。在各種方面中,此些組件可至少部分地形成為一個(gè)或一個(gè)以上集成電路裝置,所 述集成電路裝置可統(tǒng)稱為集成電路裝置,例如集成電路芯片或芯片集。此類電路可提供于 單個(gè)集成電路芯片裝置中或多個(gè)可共同操作的集成電路芯片裝置中,且可用于多種圖像、 顯示、音頻或其它多媒體應(yīng)用和裝置的任一者中。在一些方面中,例如,此些組件可形成例 如無線通信裝置手持機(jī)等移動(dòng)裝置的一部分。如果以軟件實(shí)施,那么所述技術(shù)可至少部分地由包含指令或代碼的計(jì)算機(jī)可讀
23媒體來實(shí)現(xiàn),所述指令或代碼在由一個(gè)或一個(gè)以上處理器執(zhí)行時(shí)實(shí)施上文所描述的方法 中的一者或一者以上。計(jì)算機(jī)可讀媒體可形成可包括封裝材料的計(jì)算機(jī)程序產(chǎn)品的一部 分。計(jì)算機(jī)可讀媒體可包含例如同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM)等隨機(jī)存取存儲(chǔ)器 (RAM)、只讀存儲(chǔ)器(ROM)、非易失性隨機(jī)存取存儲(chǔ)器(NVRAM)、電可擦除可編程只讀存儲(chǔ)器 (EEPROM)、eDRAM(嵌入式動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、快閃存儲(chǔ) 器、磁性或光學(xué)數(shù)據(jù)存儲(chǔ)媒體。所述技術(shù)另外或替代地可至少部分地由計(jì)算機(jī)可讀通信媒體來實(shí)現(xiàn),所述計(jì)算機(jī) 可讀通信媒體攜載或傳送呈指令或數(shù)據(jù)結(jié)構(gòu)形式的代碼,且可由一個(gè)或一個(gè)以上處理器存 取、讀取和/或執(zhí)行。嚴(yán)格地說,任何連接均可被稱為計(jì)算機(jī)可讀媒體。舉例來說,如果使 用同軸電纜、光纖電纜、雙絞線、數(shù)字訂戶線(DSL),或例如紅外線、無線電和微波等無線技 術(shù)從網(wǎng)站、服務(wù)器或其它遠(yuǎn)程源傳輸軟件,那么同軸電纜、光纖電纜、雙絞線、DSL,或例如紅 外線、無線電和微波等無線技術(shù)包括于媒體的定義中。上述各項(xiàng)的組合也應(yīng)包括在計(jì)算機(jī) 可讀媒體的范圍內(nèi)。所利用的任何軟件可由一個(gè)或一個(gè)以上處理器(例如,一個(gè)或一個(gè)以 上DSP、通用微處理器、ASIC、FPGA或其它等效集成或離散邏輯電路)執(zhí)行。已描述了本發(fā)明的各種方面。這些和其它方面在所附權(quán)利要求書的范圍內(nèi)。
2權(quán)利要求
一種方法,其包含經(jīng)由位于客戶端渲染應(yīng)用程序接口(API)與本機(jī)平臺(tái)渲染API之間的平臺(tái)接口層來創(chuàng)建圖形表面;以及使用所述平臺(tái)接口層來指定與所述表面相關(guān)聯(lián)的數(shù)據(jù)在色空間內(nèi)的格式布局,其中所述格式布局指示所述數(shù)據(jù)的一個(gè)或一個(gè)以上色彩分量在所述色空間內(nèi)的布局。
2.根據(jù)權(quán)利要求1所述的方法,其中 所述平臺(tái)接口層包含嵌入式圖形庫(EGL)層;且所述客戶端渲染API包含開放圖形庫(OpenGL)API或開放向量圖形(OpenVG)API。
3.根據(jù)權(quán)利要求1所述的方法,其中所述色空間包含亮度、藍(lán)色色度差、紅色色度差(YCbCr)色空間; 所述表面包含YCbCr表面;且所述格式布局指示所述數(shù)據(jù)的個(gè)別Y分量、Cb分量和Cr分量的次序。
4.根據(jù)權(quán)利要求1所述的方法,其中所述格式布局指示所述一個(gè)或一個(gè)以上色彩分量 的第一群組在第一平面內(nèi)的第一布局,且其中所述格式布局進(jìn)一步指示所述一個(gè)或一個(gè)以 上色彩分量的第二群組在不同于所述第一平面的第二平面內(nèi)的第二布局。
5.根據(jù)權(quán)利要求4所述的方法,其中所述第一群組包括所述一個(gè)或一個(gè)以上色彩分量 中的多個(gè)色彩分量,且其中所述第一布局指示所述第一群組的所述多個(gè)色彩分量在所述第 一平面內(nèi)的次序。
6.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含 存儲(chǔ)與所述表面相關(guān)聯(lián)的所述數(shù)據(jù);以及 將所述數(shù)據(jù)的所述格式布局存儲(chǔ)為格式數(shù)據(jù)。
7.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含為了將所述表面顯示在顯示裝置上而將與所述表面相關(guān)聯(lián)的所述數(shù)據(jù)的所述格式布 局作為模式信息提供給處理器。
8.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含指定色彩轉(zhuǎn)化信息,所述色彩轉(zhuǎn)化信息用于將與所述表面相關(guān)聯(lián)的所述數(shù)據(jù)轉(zhuǎn)化為不 同色空間內(nèi)的經(jīng)轉(zhuǎn)化數(shù)據(jù)。
9.根據(jù)權(quán)利要求8所述的方法,其中所述色空間包含亮度、藍(lán)色色度差、紅色色度差(YCbCr)色空間; 所述不同色空間包含紅色、綠色、藍(lán)色(RGB)色空間;且 所述經(jīng)轉(zhuǎn)化數(shù)據(jù)包含RGB表面數(shù)據(jù)。
10.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含使用所述平臺(tái)接口層在所述色空間內(nèi)創(chuàng)建第二表面;使用所述平臺(tái)接口層來指定與所述色空間內(nèi)的所述第二表面相關(guān)聯(lián)的第二數(shù)據(jù)的第 二格式布局,其中所述第二格式布局指示所述第二數(shù)據(jù)的一個(gè)或一個(gè)以上色彩分量在所述 色空間內(nèi)的第二布局;以及基于重疊次序來重疊所述表面與所述第二表面。
11.根據(jù)權(quán)利要求10所述的方法,其中所述表面包含二維表面、三維表面或視頻表面;且所述第二表面包含二維表面、三維表面或視頻表面。
12.根據(jù)權(quán)利要求1所述的方法,其中在所述色空間內(nèi)創(chuàng)建所述表面包含提供針對與 所述表面相關(guān)聯(lián)的所述數(shù)據(jù)的取樣配置信息。
13.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包含執(zhí)行所述表面的表面渲染以產(chǎn)生與所述表面相關(guān)聯(lián)的所述數(shù)據(jù);以及根據(jù)所述格式布局來存儲(chǔ)所述數(shù)據(jù)。
14.根據(jù)權(quán)利要求1所述的方法,其中所述方法由一個(gè)或一個(gè)以上處理器執(zhí)行,且其中 所述一個(gè)或一個(gè)以上處理器中的每一者包含顯示處理器、圖形處理器或控制處理器。
15.一種包含指令的計(jì)算機(jī)可讀媒體,所述指令用于致使一個(gè)或一個(gè)以上可編程處理 器進(jìn)行以下操作經(jīng)由位于客戶端渲染應(yīng)用程序接口(API)與本機(jī)平臺(tái)渲染API之間的平臺(tái)接口層來創(chuàng) 建圖形表面;以及使用所述平臺(tái)接口層來指定與所述表面相關(guān)聯(lián)的數(shù)據(jù)在色空間內(nèi)的格式布局,其中所 述格式布局指示與所述表面相關(guān)聯(lián)的所述數(shù)據(jù)的一個(gè)或一個(gè)以上色彩分量在所述色空間 內(nèi)的布局。
16.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)可讀媒體,其中所述平臺(tái)接口層包含嵌入式圖形庫(EGL)層;且所述客戶端渲染API包含開放圖形庫(OpenGL)API或開放向量圖形(OpenVG)API。
17.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)可讀媒體,其中所述色空間包含亮度、藍(lán)色色度差、紅色色度差(YCbCr)色空間;所述表面包含YCbCr表面;且所述格式布局指示所述數(shù)據(jù)的個(gè)別Y分量、Cb分量和Cr分量的次序。
18.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)可讀媒體,其中所述格式布局指示所述一個(gè)或一個(gè) 以上色彩分量的第一群組在第一平面內(nèi)的第一布局,且其中所述格式布局進(jìn)一步指示所述 一個(gè)或一個(gè)以上色彩分量的第二群組在不同于所述第一平面的第二平面內(nèi)的第二布局。
19.根據(jù)權(quán)利要求18所述的計(jì)算機(jī)可讀媒體,其中所述第一群組包括所述一個(gè)或一個(gè) 以上色彩分量中的多個(gè)色彩分量,且其中所述第一布局指示所述第一群組的所述多個(gè)色彩 分量在所述第一平面內(nèi)的次序。
20.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)可讀媒體,其進(jìn)一步包含用于致使所述一個(gè)或一個(gè) 以上處理器進(jìn)行以下操作的指令存儲(chǔ)與所述表面相關(guān)聯(lián)的所述數(shù)據(jù);以及將所述數(shù)據(jù)的所述格式布局存儲(chǔ)為格式數(shù)據(jù)。
21.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)可讀媒體,其進(jìn)一步包含用于致使所述一個(gè)或一個(gè) 以上處理器進(jìn)行以下操作的指令為了將所述表面顯示在顯示裝置上而將與所述表面相關(guān)聯(lián)的所述數(shù)據(jù)的所述格式布 局作為模式信息提供給處理器。
22.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)可讀媒體,其進(jìn)一步包含用于致使所述一個(gè)或一個(gè) 以上處理器進(jìn)行以下操作的指令指定色彩轉(zhuǎn)化信息,所述色彩轉(zhuǎn)化信息用于將與所述表面相關(guān)聯(lián)的所述數(shù)據(jù)轉(zhuǎn)化為不同色空間內(nèi)的經(jīng)轉(zhuǎn)化數(shù)據(jù)。
23.根據(jù)權(quán)利要求22所述的計(jì)算機(jī)可讀媒體,其中所述色空間包含亮度、藍(lán)色色度差、紅色色度差(YCbCr)色空間; 所述不同色空間包含紅色、綠色、藍(lán)色(RGB)色空間;且 所述經(jīng)轉(zhuǎn)化數(shù)據(jù)包含RGB表面數(shù)據(jù)。
24.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)可讀媒體,其進(jìn)一步包含用于致使所述一個(gè)或一個(gè) 以上處理器進(jìn)行以下操作的指令使用所述平臺(tái)接口層在所述色空間內(nèi)創(chuàng)建第二表面;使用所述平臺(tái)接口層來指定與所述第二表面相關(guān)聯(lián)的第二數(shù)據(jù)在所述色空間內(nèi)的第 二格式布局,其中所述第二格式布局指示所述第二數(shù)據(jù)的一個(gè)或一個(gè)以上色彩分量在所述 色空間內(nèi)的第二布局;以及基于重疊次序來重疊所述表面與所述第二表面。
25.根據(jù)權(quán)利要求24所述的計(jì)算機(jī)可讀媒體,其中 所述表面包含二維表面、三維表面或視頻表面;且 所述第二表面包含二維表面、三維表面或視頻表面。
26.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)可讀媒體,其中用于致使所述一個(gè)或一個(gè)以上處理 器在所述色空間內(nèi)創(chuàng)建所述表面的所述指令包含用于致使所述一個(gè)或一個(gè)以上處理器提 供針對與所述表面相關(guān)聯(lián)的所述數(shù)據(jù)的取樣配置信息的指令。
27.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)可讀媒體,其進(jìn)一步包含用于致使使所述一個(gè)或一 個(gè)以上處理器進(jìn)行以下操作的指令執(zhí)行所述表面的表面渲染以產(chǎn)生與所述表面相關(guān)聯(lián)的所述數(shù)據(jù);以及 根據(jù)所述格式布局來存儲(chǔ)所述數(shù)據(jù)。
28. 一種裝置,其包含存儲(chǔ)裝置,其經(jīng)配置以存儲(chǔ)表面信息;以及一個(gè)或一個(gè)以上處理器,其經(jīng)配置以經(jīng)由位于客戶端渲染應(yīng)用程序接口(API)與本機(jī) 平臺(tái)渲染API之間的平臺(tái)接口層來創(chuàng)建圖形表面,其中所述一個(gè)或一個(gè)以上處理器進(jìn)一步經(jīng)配置以使用所述平臺(tái)接口層來指定與所述 表面相關(guān)聯(lián)的數(shù)據(jù)在色空間內(nèi)的格式布局,所述格式布局指示與所述表面相關(guān)聯(lián)的所述數(shù) 據(jù)的一個(gè)或一個(gè)以上色彩分量在所述色空間內(nèi)的布局;且將所述格式布局存儲(chǔ)在所述存儲(chǔ) 裝置的所述表面信息內(nèi)。
29.根據(jù)權(quán)利要求28所述的裝置,其中 所述平臺(tái)接口層包含嵌入式圖形庫(EGL)層;且所述客戶端渲染API包含開放圖形庫(OpenGL)API或開放向量圖形(OpenVG)API。
30.根據(jù)權(quán)利要求28所述的裝置,其中所述色空間包含亮度、藍(lán)色色度差、紅色色度差(YCbCr)色空間; 所述表面包含YCbCr表面;且所述格式布局指示與所述表面相關(guān)聯(lián)的所述數(shù)據(jù)的個(gè)別Y分量、Cb分量和Cr分量的 次序。
31.根據(jù)權(quán)利要求28所述的裝置,其中所述格式布局指示所述一個(gè)或一個(gè)以上色彩分量的第一群組在第一平面內(nèi)的第一布局,且其中所述格式布局進(jìn)一步指示所述一個(gè)或一個(gè) 以上色彩分量的第二群組在不同于所述第一平面的第二平面內(nèi)的第二布局。
32.根據(jù)權(quán)利要求31所述的裝置,其中所述第一群組包括所述一個(gè)或一個(gè)以上色彩分 量中的多個(gè)色彩分量,且其中所述第一布局指示所述第一群組的所述多個(gè)色彩分量在所述 第一平面內(nèi)的次序。
33.根據(jù)權(quán)利要求28所述的裝置,其中所述一個(gè)或一個(gè)以上處理器進(jìn)一步經(jīng)配置以將 與所述表面相關(guān)聯(lián)的所述數(shù)據(jù)存儲(chǔ)在所述存儲(chǔ)裝置中,且將與所述表面相關(guān)聯(lián)的所述數(shù)據(jù) 的所述格式布局作為格式數(shù)據(jù)存儲(chǔ)在所述存儲(chǔ)裝置中。
34.根據(jù)權(quán)利要求28所述的裝置,其進(jìn)一步包含顯示裝置,其中所述一個(gè)或一個(gè)以上 處理器進(jìn)一步經(jīng)配置以為了將所述表面顯示在所述顯示裝置上而提供與所述表面相關(guān)聯(lián) 的所述數(shù)據(jù)的所述格式布局作為模式信息。
35.根據(jù)權(quán)利要求28所述的裝置,其中所述一個(gè)或一個(gè)以上處理器進(jìn)一步經(jīng)配置以指 定色彩轉(zhuǎn)化信息,所述色彩轉(zhuǎn)化信息用于將與所述表面相關(guān)聯(lián)的所述數(shù)據(jù)轉(zhuǎn)化為不同色空 間的經(jīng)轉(zhuǎn)化數(shù)據(jù)。
36.根據(jù)權(quán)利要求35所述的裝置,其中所述色空間包含亮度、藍(lán)色色度差、紅色色度差(YCbCr)色空間;所述不同色空間包含紅色、綠色、藍(lán)色(RGB)色空間;且所述經(jīng)轉(zhuǎn)化數(shù)據(jù)包含RGB表面數(shù)據(jù)。
37.根據(jù)權(quán)利要求28所述的裝置,其中所述一個(gè)或一個(gè)以上處理器進(jìn)一步經(jīng)配置以 使用所述平臺(tái)接口層在所述色空間內(nèi)創(chuàng)建第二表面,使用所述平臺(tái)接口層來指定與所述第 二表面相關(guān)聯(lián)的第二數(shù)據(jù)在所述色空間內(nèi)的第二格式布局,且基于重疊次序來重疊所述表 面與所述第二表面,其中所述第二格式布局指示所述第二數(shù)據(jù)的一個(gè)或一個(gè)以上色彩分量 在所述色空間內(nèi)的第二布局。
38.根據(jù)權(quán)利要求37所述的裝置,其中所述表面包含二維表面、三維表面或視頻表面;且所述第二表面包含二維表面、三維表面或視頻表面。
39.根據(jù)權(quán)利要求28所述的裝置,其中當(dāng)所述一個(gè)或一個(gè)以上處理器經(jīng)配置以在所述 色空間內(nèi)創(chuàng)建所述表面時(shí),所述一個(gè)或一個(gè)以上處理器進(jìn)一步經(jīng)配置以提供針對與所述表 面相關(guān)聯(lián)的所述數(shù)據(jù)的取樣配置信息。
40.根據(jù)權(quán)利要求28所述的裝置,其中所述一個(gè)或一個(gè)以上處理器進(jìn)一步經(jīng)配置以 執(zhí)行所述表面的表面渲染以產(chǎn)生與所述表面相關(guān)聯(lián)的所述數(shù)據(jù),且根據(jù)所述格式布局來存 儲(chǔ)所述數(shù)據(jù)。
41.根據(jù)權(quán)利要求28所述的裝置,其中所述一個(gè)或一個(gè)以上處理器中的每一者包含顯 示處理器、圖形處理器或控制處理器。
42.根據(jù)權(quán)利要求28所述的裝置,其中所述裝置包含無線通信裝置手持機(jī)、個(gè)人計(jì)算 機(jī)或膝上型裝置。
43.根據(jù)權(quán)利要求28所述的裝置,其中所述裝置包含一個(gè)或一個(gè)以上集成電路裝置。
44.一種裝置,其包含用于經(jīng)由位于客戶端渲染應(yīng)用程序接口(API)與本機(jī)平臺(tái)渲染API之間的平臺(tái)接口層來創(chuàng)建圖形表面的裝置;以及用于使用所述平臺(tái)接口層來指定與所述表面相關(guān)聯(lián)的數(shù)據(jù)在色空間內(nèi)的格式布局的 裝置,其中所述格式布局指示與所述表面相關(guān)聯(lián)的所述數(shù)據(jù)的一個(gè)或一個(gè)以上色彩分量在 所述色空間內(nèi)的布局。
45.根據(jù)權(quán)利要求44所述的裝置,其中 所述平臺(tái)接口層包含嵌入式圖形庫(EGL)層;且所述客戶端渲染API包含開放圖形庫(OpenGL)API或開放向量圖形(OpenVG)API。
46.根據(jù)權(quán)利要求44所述的裝置,其中所述色空間包含亮度、藍(lán)色色度差、紅色色度差(YCbCr)色空間; 所述表面包含YCbCr表面;且所述格式布局指示所述數(shù)據(jù)的個(gè)別Y分量、Cb分量和Cr分量的次序。
47.根據(jù)權(quán)利要求44所述的裝置,其中所述格式布局指示所述一個(gè)或一個(gè)以上色彩分 量的第一群組在第一平面內(nèi)的第一布局,且其中所述格式布局進(jìn)一步指示所述一個(gè)或一個(gè) 以上色彩分量的第二群組在不同于所述第一平面的第二平面內(nèi)的第二布局。
48.根據(jù)權(quán)利要求47所述的裝置,其中所述第一群組包括所述一個(gè)或一個(gè)以上色彩分 量中的多個(gè)色彩分量,且其中所述第一布局指示所述第一群組的所述多個(gè)色彩分量在所述 第一平面內(nèi)的次序。
49.根據(jù)權(quán)利要求44所述的裝置,其進(jìn)一步包含 用于存儲(chǔ)與所述表面相關(guān)聯(lián)的所述數(shù)據(jù)的裝置;以及用于將所述數(shù)據(jù)的所述格式布局存儲(chǔ)為格式數(shù)據(jù)的裝置。
50.根據(jù)權(quán)利要求44所述的裝置,其進(jìn)一步包含用于為了將所述表面顯示在顯示裝置上而將與所述表面相關(guān)聯(lián)的所述數(shù)據(jù)的所述格 式布局作為模式信息提供給處理器的裝置。
51.根據(jù)權(quán)利要求44所述的裝置,其進(jìn)一步包含用于指定色彩轉(zhuǎn)化信息的裝置,所述色彩轉(zhuǎn)化信息用于將與所述表面相關(guān)聯(lián)的所述數(shù) 據(jù)轉(zhuǎn)化為不同色空間內(nèi)的經(jīng)轉(zhuǎn)化數(shù)據(jù)。
52.根據(jù)權(quán)利要求51所述的裝置,其中所述色空間包含亮度、藍(lán)色色度差、紅色色度差(YCbCr)色空間; 所述不同色空間包含紅色、綠色、藍(lán)色(RGB)色空間;且 所述經(jīng)轉(zhuǎn)化數(shù)據(jù)包含RGB表面數(shù)據(jù)。
53.根據(jù)權(quán)利要求44所述的裝置,其進(jìn)一步包含用于使用所述平臺(tái)接口層在所述色空間內(nèi)創(chuàng)建第二表面的裝置; 用于使用所述平臺(tái)接口層來指定與所述第二表面相關(guān)聯(lián)的第二數(shù)據(jù)在所述色空間內(nèi) 的第二格式布局的裝置,其中所述第二格式布局指示所述第二數(shù)據(jù)的一個(gè)或一個(gè)以上色彩 分量在所述色空間內(nèi)的第二布局;以及用于基于重疊次序來重疊所述表面與所述第二表面的裝置。
54.根據(jù)權(quán)利要求53所述的裝置,其中所述表面包含二維表面、三維表面或視頻表面;且 所述第二表面包含二維表面、三維表面或視頻表面。
55.根據(jù)權(quán)利要求44所述的裝置,其中所述用于在所述色空間內(nèi)創(chuàng)建所述表面的裝置 包含用于提供針對與所述表面相關(guān)聯(lián)的所述數(shù)據(jù)的取樣配置信息的裝置。
56.根據(jù)權(quán)利要求44所述的裝置,其進(jìn)一步包含用于執(zhí)行所述表面的表面渲染以產(chǎn)生與所述表面相關(guān)聯(lián)的所述數(shù)據(jù)的裝置;以及 用于根據(jù)所述格式布局來存儲(chǔ)所述數(shù)據(jù)的裝置。
全文摘要
一般來說,本發(fā)明描述用于使用平臺(tái)接口層來創(chuàng)建表面的各種技術(shù),其中此些表面可具有針對例如YCbCr色空間等各種不同色空間的不同格式布局。一個(gè)實(shí)例裝置包括經(jīng)配置以含有表面信息的存儲(chǔ)裝置以及經(jīng)配置以使用平臺(tái)接口層在色空間內(nèi)創(chuàng)建圖形表面的一個(gè)或一個(gè)以上處理器。所述平臺(tái)接口層位于客戶端渲染應(yīng)用程序接口(API)與基礎(chǔ)本機(jī)平臺(tái)渲染API之間。所述一個(gè)或一個(gè)以上處理器進(jìn)一步經(jīng)配置以使用所述平臺(tái)接口層來指定與所述表面相關(guān)聯(lián)的數(shù)據(jù)在所述色空間內(nèi)的格式布局,且將所述格式布局存儲(chǔ)在所述存儲(chǔ)裝置內(nèi)。所述格式布局指示與所述表面相關(guān)聯(lián)的所述數(shù)據(jù)的一個(gè)或一個(gè)以上色彩分量在所述色空間內(nèi)的布局。
文檔編號(hào)G06T15/00GK101911126SQ200980102419
公開日2010年12月8日 申請日期2009年1月16日 優(yōu)先權(quán)日2008年1月18日
發(fā)明者布萊恩·埃利斯, 斯蒂文·托德·韋布魯 申請人:高通股份有限公司