新四季網

圖形處理系統中對表面創建的多格式支持的製作方法

2023-06-10 06:52:51

專利名稱:圖形處理系統中對表面創建的多格式支持的製作方法
技術領域:
本申請案涉及在圖形處理系統內渲染和顯示表面。
背景技術:
對於各種應用(例如,視頻遊戲、圖形程序、計算機輔助設計(CAD)應用、模擬與可 視化工具以及成像)來說,圖形處理器廣泛用以渲染二維(2D)和三維(3D)圖像。顯示處 理器可接著用以經由顯示裝置顯示圖形處理器的經渲染的輸出以供呈現給用戶。用於這些應用中的圖形處理器、顯示處理器或多媒體處理器可經配置以執行數據 的並行和/或向量處理。具有或不具有SIMD (單指令多數據)擴展的通用CPU (中央處理單 元)也可經配置以處理數據。在SIMD向量處理中,單個指令同時對多個數據項進行操作。OpenGL (開放圖形庫)是界定API (應用編程接口)的標準規範,當編寫產生2D 和3D圖形的應用程式時可使用API。(例如爪哇(Java)等其它語言可經由其自己的標準 過程來界定對OpenGLAPI的聯編)。接口包括可用以從簡單圖元繪製場景的多個函數調用。 圖形處理器、多媒體處理器和甚至通用CPU可接著執行使用OpenGL函數調用編寫的應用程 序。OpenGL ES(嵌入式系統)為OpenGL的針對嵌入式裝置(例如,移動無線電話、數字多 媒體播放器、個人數字助理(PDA)或視頻遊戲控制臺)而設計的變體。OpenVG (開放向量 圖形)為主要針對經硬體加速的2D向量圖形而設計的另一標準API。EGL (嵌入式圖形庫)為多媒體客戶端API (例如,OpenGL ES、OpenVG以及若干 其它標準多媒體API)與基礎平臺多媒體設施之間的平臺接口層。EGL可處置圖形上下文管 理、渲染表面創建和渲染同步,且啟用高性能、經硬體加速且混合模式的2D和3D渲染。對 於渲染表面創建,EGL提供用於創建客戶端API (例如,用戶應用程式API)可繪製並共享到 其上的表面的機制。目前,EGL僅提供對線性和sRGB(標準紅綠藍)表面的支持。

發明內容
一般來說,本發明描述用於使用例如EGL等平臺接口層來創建表面的各種技術, 其中此些表面可具有針對各種不同色空間(例如,RGB (紅色、綠色、藍色)或YCbCH亮度、 藍色色度差、紅色色度差,其中Cb和Cr信號為形成Y信號的增量))的不同格式(或填充) 布局。在某些情況下,YCbCr EGL表面可與OpenGL和OpenVG表面一起使用,且可組合在表 面重疊堆疊內,以供最終顯示在例如IXD(液晶顯示器)或電視(TV)顯示裝置等顯示裝置 上。以此方式,不同色空間中的各種2D、3D和/或視頻表面可最終組合以顯示在顯示 裝置上。在某些情況下,可將此功能性和支持提供為例如EGL擴展等平臺接口層擴展的一部分。所述擴展可進一步提供轉化信息以幫助將YCbCr表面(例如,JPEG(聯合照相專家 組)表面或MPEG4(移動圖片專家組版本4)表面)轉化到可用於顯示此些表面的RGB色空 間中。在一個方面中,一種方法包括經由位於客戶端渲染應用程式接口(API)與本機平 臺渲染API之間的平臺接口層創建圖形表面。所述方法進一步包括使用平臺接口層來指定 與表面相關聯的數據在色空間內的格式布局,其中所述格式布局指示與表面相關聯的數據 的一個或一個以上色彩分量在色空間內的布局。在另一方面中,一種裝置包括存儲裝置,其經配置以存儲表面信息;以及一個或 一個以上處理器,其經配置以經由平臺接口層創建圖形表面。平臺接口層位於客戶端渲染 API與本機平臺渲染API之間。所述一個或一個以上處理器進一步經配置以使用平臺接 口層指定與表面相關聯的數據在色空間內的格式布局,且將所述格式布局存儲在存儲裝置 的表面信息內。格式布局指示與表面相關聯的數據的一個或一個以上色彩分量在色空間內 的布局。在一個方面中,一種計算機可讀媒體包括用於致使一個或一個以上可編程處理器 進行以下操作的指令經由位於客戶端渲染API與本機平臺渲染API之間的平臺接口層創 建圖形表面;以及使用平臺接口層來指定與表面相關聯的數據在色空間內的格式布局。所 述格式布局指示與表面相關聯的數據的一個或一個以上色彩分量在色空間內的布局。附圖和以下描述中陳述本發明的一個或一個以上方面的細節。將從所述描述和圖 式且從權利要求書明白其它特徵、目標和優點。


圖IA是根據本發明一個方面的說明可用以實施對表面創建的多格式支持的裝置 的框圖。圖IB是根據本發明另一方面的說明可用以實施對表面創建的多格式支持的裝置 的框圖。圖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表面的配置和取樣信息的實例。
具體實施例方式圖IA是根據一個方面的說明可用以實施對表面創建的多格式支持的裝置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渲染。作為實例,圖形處理 器Iio可利用OpenGL指令來渲染3D圖形幀,或可利用OpenVG指令來渲染2D圖形表面。然 而,圖形處理器110可利用用於渲染圖形的多種其它標準、方法或技術中的任一者。圖形處理器110可實行存儲在存儲器104中的指令。存儲器104能夠存儲用於應
10用程序(例如,圖形或視頻應用程式)的應用程式指令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內。在 此方面中,如展示於圖IB中,包含在表面信息存儲裝置112內的信息可直接包括在表面信 息124內。圖形處理系統102包括表面信息存儲裝置112。圖形處理器110、控制處理器108 和顯示處理器114各自操作地耦合到表面信息存儲裝置112,使得這些處理器中的每一者 可從存儲裝置112讀出數據或將數據寫入到存儲裝置112中。存儲裝置112還耦合到幀緩 衝器160。幀緩衝器160可為圖形處理系統102內的專用存儲器。然而在一個方面中,如 圖IB中所示,幀緩衝器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格式等另一格式。
12
如下文將更詳細地描述,表面轉化數據117A可包括與箝位、偏差和/或Y有關的 信息或值,且還可包括色彩轉化矩陣。用戶可使用並配置各種不同的值。在某些情況下,可 將對應於國際標準的值用作默認值。國際標準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是展示於圖IA中的裝置100的實例示例。裝置200包括圖形處 理系統202、存儲器204和顯示裝置206。類似於展示於圖IA中的存儲器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中。類似於展示於圖IA中的圖形處理系統102,圖2的圖形處理系統202包括處理器
13208、圖形處理器210、顯示處理器214、用於YCbCr/RGB表面信息的存儲裝置213以及幀緩 衝器260。處理器208可為控制處理器或通用處理器。在一個方面中,處理器208可包含系 統CPU(中央處理單元)。控制處理器208、圖形處理器210和顯示處理器214各自操作地 耦合到存儲裝置213,且可各自將數據寫入到存儲裝置213中或從存儲裝置213讀取數據。 幀緩衝器260也耦合到存儲裝置213。在一個方面中,存儲裝置213可包括於較大存儲裝置 (例如,展示於圖IA中的存儲裝置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表面(S卩,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 包括0penGL ES 渲染 API 230、OpenVG 渲染 API 232、EGL API 234和基礎本機平臺渲染API 239。展示於圖2C中的驅動程序222包括0penGLES渲 染驅動程序240、OpenVG渲染驅動程序242、EGL驅動程序244和基礎本機平臺渲染驅動程 序249。OpenGL ES渲染API 230是在由圖形處理系統202進行的應用程式執行期間由應
14用程序指令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處理且最終顯示在展示於圖IA或圖IB中的顯示裝置106 上的表面。這些表面300A到300N還可由展示於圖2A或圖2D中的圖形處理系統202處理。 然而,在圖3A到圖3B的以下描述中僅為了說明的目的,將假定表面300A到300N由圖形處 理系統102處理。
15
每一表面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為IXD 裝置。當然,在其它情境下,顯示裝置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聯編到特定等級的序列。在某些情況下,多個表面可聯編到一特定層。可從後到前 (最負到最正)地處理各層。在給定層內,以表面聯編到層的序列來處理所述表面。
16
在圖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是根據一個方面的可由展示於圖IA或圖IB的圖形處理系統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處,一個或一個以上處理器可執行表面的表面渲染以產生表面數據。可接 著根據所指定的格式布局來存儲此表面數據。
17
圖5是根據一個方面的可由展示於圖IA或圖IB的圖形處理系統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顯示裝置而非IXD。在此情況下,當處理重疊 堆疊內的表面時,可將RGB表面轉化為YCbCr表面。在此方面的EGL擴展內,額外YCbCr格式數據可適用於其中EGL的EGL_C0L0R_ 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表面格式和轉化處理有關的四個新函數 (包括「設置」和「獲取」函數),下文將更詳細地描述所述函數。下文展示這四個函數的實
18例函數說明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 函數設置 EGL YCbCr 表面的 YCbCr 格式。
eglGetSurfaceYCbCrFormatQUALCOMM 函數獲取或傳回 EGL YCbCr 表面的 YCbCr 格式數據。 eglSurfaceYCbCrConversionQUALCOMM函數設置可用以將EGL YCbCr表面轉化到另一色空 間(例如,轉化到RGB色空間)的各種轉化參數。eglGetSurfaceYCbCrConversionQUALCOM M函數獲取或傳回各種轉化參數。下文更詳細地描述這些函數的各種方面。
在一個方面中,EGL擴展提供額外的、新的數據類型結構。這些結構與YCbCr表面 數據的格式以及轉化信息有關。下文展示實例數據結構
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數據結構可含有用於YCbCr表面的類型EGLYCbCrFormat和 EGLYCbCrConversion的兩個額外成員。如下文更詳細地描述,EGLYCbCrFormat成員提供 YCbCr表面的格式化信息,且EGLYCbCrConversion成員提供用於YCbCr表面的色彩轉化信
肩、ο在一個方面中,EGL擴展提供額外令牌。這些令牌在下文更詳細地描述,且以十六 進位形式來表示。這些新令牌如下EGL_CBCR_0FFSITE0x00000000
EGL_CBCR_C0SITE0x01000000
EGL_YCBCR_ENABLE0x80000000
EGL_Y_BIT0x00000001
EGL_CR_BIT0x00000002
EGL_CB_BIT0x00000004
EGL_ALPHA_BIT0x00000008
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數據結構來調用函數e glSurfaceYCbCrConversionQUALCOMM,其界定在將表面加貼到顯示裝置時使用的箝位、偏 差、色彩轉化矩陣和Y值。應用程式可調用eglGetSurfaceYCbCrConversionQUALCOMM以確 定當前正在使用的參數(例如,箝位、偏差、色彩轉化矩陣和Y參數)。色空間轉化矩陣可 使用固定點格式,且可以列為主格式存儲。(EGLfixed類型可為可解譯為具有S15. 16格式 的32位EGLint)。在某些情況下,可將對應於國際標準的值用作默認值,且可使用為2. 22 的默認Y值。國際標準ITU 601和656提供標準偏差值和色空間轉化矩陣,以在標準清晰 度TV的RGB色空間與其它視頻色空間(例如,YCbCr)之間進行轉化。國內標準ITU 709提 供標準偏差值和色空間轉化矩陣,以在高清晰度TV的RGB色空間與其它視頻色空間之間進 行轉化。然而,應用程式和應用程式開發者可具有充分的靈活性來利用箝位、偏差、色彩轉 化矩陣和Y參數的任何值,以定製YCbCr或其它色空間表面到RGB格式中的轉化。為了提供支持EGL YCbCr表面的多格式和轉化能力的EGL擴展的實施方案的實
20例,提供以下樣本代碼,所述樣本代碼利用上文為了說明的目的而列出的函數、結構和令牌 中的若干者
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旗標與EGL_SAMPLES來設置屬 性列表。接著,獲得所有匹配配置的列表。在實例代碼中假定,選擇與EGL_SAMPLES的格 式設置匹配的可用YCbCr表面。這可通過查詢EGL_SAMPLES欄位的每一傳回配置且尋找 正確籤名來進行。在樣本代碼中,假定4:2:2:4(H2V1)格式被選定,且被指派給變量cfg。 對於此實例取樣格式來說,EGL_SAMPLES的籤名針對展示於圖6中的格式可為十六進位的 0x81214224。在此情況下,設置 EGL_YCBCR_ENABLE 和 EGL_CBCR_C0SITE 位,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 (圖IA或圖1B)等幀緩衝器內的數據幀,以供顯示在例如顯示裝置106等顯示裝 置上。EGL可提供用以經由EGLConfig結構中的欄位來表示針對特定表面支持哪一 API的 機制。說明於圖1到圖5中的各種組件可由硬體和/或軟體的任意合適組合來實現。在 圖1到圖5中,將各種組件描繪為單獨的單元或模塊。然而,參看圖IA到圖5而描述的各 種組件中的所有組件或若干組件可集成為共用硬體和/或軟體內的組合式單元或模塊。因 此,將特徵表示為組件、單元或模塊意在為了易於說明而強調特定功能特徵,而並不一定要 求通過單獨的硬體或軟體組件來實現此些特徵。在一些情況下,可將各種單元實施為由一 個或一個以上處理器執行的可編程進程。舉例來說,本發明中所描述的技術的各種方面可實施於以下各項內一個或一 個以上通用微處理器、數位訊號處理器(DSP)、專用集成電路(ASIC)、現場可編程門陣列 (FPGA)或其它等效邏輯裝置。因此,如本文中所使用的術語「處理器」或「控制器」可指代 前述結構中的任一者或適合實施本文中所描述的技術的任何其它結構。本文中所描述的組件和技術可以硬體、軟體、固件或其任意組合來實施。描述為模 塊或組件的任何特徵可一起實施於集成邏輯裝置中或單獨地實施為離散但可共同操作的 邏輯裝置。在各種方面中,此些組件可至少部分地形成為一個或一個以上集成電路裝置,所 述集成電路裝置可統稱為集成電路裝置,例如集成電路晶片或晶片集。此類電路可提供於 單個集成電路晶片裝置中或多個可共同操作的集成電路晶片裝置中,且可用於多種圖像、 顯示、音頻或其它多媒體應用和裝置的任一者中。在一些方面中,例如,此些組件可形成例 如無線通信裝置手持機等移動裝置的一部分。如果以軟體實施,那麼所述技術可至少部分地由包含指令或代碼的計算機可讀
23媒體來實現,所述指令或代碼在由一個或一個以上處理器執行時實施上文所描述的方法 中的一者或一者以上。計算機可讀媒體可形成可包括封裝材料的電腦程式產品的一部 分。計算機可讀媒體可包含例如同步動態隨機存取存儲器(SDRAM)等隨機存取存儲器 (RAM)、只讀存儲器(ROM)、非易失性隨機存取存儲器(NVRAM)、電可擦除可編程只讀存儲器 (EEPROM)、eDRAM(嵌入式動態隨機存取存儲器)、靜態隨機存取存儲器(SRAM)、快快閃記憶體儲 器、磁性或光學數據存儲媒體。所述技術另外或替代地可至少部分地由計算機可讀通信媒體來實現,所述計算機 可讀通信媒體攜載或傳送呈指令或數據結構形式的代碼,且可由一個或一個以上處理器存 取、讀取和/或執行。嚴格地說,任何連接均可被稱為計算機可讀媒體。舉例來說,如果使 用同軸電纜、光纖電纜、雙絞線、數字訂戶線(DSL),或例如紅外線、無線電和微波等無線技 術從網站、伺服器或其它遠程源傳輸軟體,那麼同軸電纜、光纖電纜、雙絞線、DSL,或例如紅 外線、無線電和微波等無線技術包括於媒體的定義中。上述各項的組合也應包括在計算機 可讀媒體的範圍內。所利用的任何軟體可由一個或一個以上處理器(例如,一個或一個以 上DSP、通用微處理器、ASIC、FPGA或其它等效集成或離散邏輯電路)執行。已描述了本發明的各種方面。這些和其它方面在所附權利要求書的範圍內。
2權利要求
一種方法,其包含經由位於客戶端渲染應用程式接口(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所述的裝置,其進一步包含用於執行所述表面的表面渲染以產生與所述表面相關聯的所述數據的裝置;以及 用於根據所述格式布局來存儲所述數據的裝置。
全文摘要
一般來說,本發明描述用於使用平臺接口層來創建表面的各種技術,其中此些表面可具有針對例如YCbCr色空間等各種不同色空間的不同格式布局。一個實例裝置包括經配置以含有表面信息的存儲裝置以及經配置以使用平臺接口層在色空間內創建圖形表面的一個或一個以上處理器。所述平臺接口層位於客戶端渲染應用程式接口(API)與基礎本機平臺渲染API之間。所述一個或一個以上處理器進一步經配置以使用所述平臺接口層來指定與所述表面相關聯的數據在所述色空間內的格式布局,且將所述格式布局存儲在所述存儲裝置內。所述格式布局指示與所述表面相關聯的所述數據的一個或一個以上色彩分量在所述色空間內的布局。
文檔編號G06T15/00GK101911126SQ200980102419
公開日2010年12月8日 申請日期2009年1月16日 優先權日2008年1月18日
發明者布萊恩·埃利斯, 斯蒂文·託德·韋布魯 申請人:高通股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀