顏色緩沖和深度緩沖壓縮的制作方法
【專利摘要】在實(shí)例中,本發(fā)明提供一種譯碼包括多個(gè)像素的圖形數(shù)據(jù)的方法,所述方法包含:通過(guò)圖形處理單元GPU執(zhí)行多樣本抗混疊以產(chǎn)生所述多個(gè)像素中的每一像素的一或多個(gè)樣本值。所述方法還可包含確定像素是否包括邊緣像素,其中所述確定包括對(duì)于每一像素識(shí)別不同樣本值。所述方法還可包含基于所述邊緣像素確定編碼所述像素。
【專利說(shuō)明】顏色緩沖和深度緩沖壓縮
[0001]本申請(qǐng)案主張2012年5月I日申請(qǐng)的第61/641,257號(hào)美國(guó)臨時(shí)申請(qǐng)案的權(quán)利,所述申請(qǐng)案的全部?jī)?nèi)容借此以引用的方式并入本文中。
【技術(shù)領(lǐng)域】
[0002]本發(fā)明涉及顯現(xiàn)計(jì)算機(jī)圖形。
【背景技術(shù)】
[0003]提供用于視覺(jué)呈現(xiàn)的內(nèi)容的裝置一般包含圖形處理單元(GPU)。GPU將表示內(nèi)容的像素顯現(xiàn)在顯示器上。GPU產(chǎn)生顯示器上的每一像素的一或多個(gè)像素值且對(duì)顯示器上的每一像素的像素值執(zhí)行圖形處理以顯現(xiàn)每一像素以用于呈現(xiàn)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的方面一般來(lái)說(shuō)涉及壓縮圖形數(shù)據(jù),壓縮圖形數(shù)據(jù)可被稱作譯碼圖形數(shù)據(jù)。舉例來(lái)說(shuō),圖形數(shù)據(jù)的像素可由一或多個(gè)樣本(例如,一或多個(gè)顏色樣本、一或多個(gè)深度樣本,及其類似者)構(gòu)成,其中每一樣本對(duì)像素值有貢獻(xiàn)。本發(fā)明的方面一般來(lái)說(shuō)涉及壓縮與像素相關(guān)聯(lián)的樣本值以減少表示像素值所需的數(shù)據(jù)的量。本發(fā)明的方面還可涉及識(shí)別位于目標(biāo)邊緣處的像素,所述像素可具有不同樣本值。在一些實(shí)例中,可在壓縮與邊緣像素相關(guān)聯(lián)的樣本時(shí)相對(duì)于基準(zhǔn)值產(chǎn)生樣本增量。
[0005]在實(shí)例中,一種編碼包括多個(gè)像素的圖形數(shù)據(jù)的方法包含:通過(guò)圖形處理單元(GPU)確定所述多個(gè)像素中的每一像素的一或多個(gè)樣本值;確定每一像素是否包括邊緣像素,其中所述確定包括對(duì)于每一像素識(shí)別所述相應(yīng)像素的所述一或多個(gè)樣本值中的不同樣本值;及基于所述邊緣像素確定編碼所述像素。
[0006]在另一實(shí)例中,一種用于編碼包括多個(gè)像素的圖形數(shù)據(jù)的設(shè)備包含一或多個(gè)處理器,所述一或多個(gè)處理器經(jīng)配置以:確定所述多個(gè)像素中的每一像素的一或多個(gè)樣本值;確定每一像素是否包括邊緣像素,其中所述確定包括對(duì)于每一像素識(shí)別所述相應(yīng)像素的所述一或多個(gè)樣本值中的不同樣本值;及基于所述邊緣像素確定編碼所述像素。
[0007]在另一實(shí)例中,一種用于編碼包括多個(gè)像素的圖形數(shù)據(jù)的設(shè)備包含:用于確定所述多個(gè)像素中的每一像素的一或多個(gè)樣本值的裝置;用于確定每一像素是否包括邊緣像素的裝置,其中所述確定包括對(duì)于每一像素識(shí)別所述相應(yīng)像素的所述一或多個(gè)樣本值中的不同樣本值;及用于基于所述邊緣像素確定編碼所述像素的裝置。
[0008]在另一實(shí)例中,一種非暫時(shí)性計(jì)算機(jī)可讀媒體,其具有存儲(chǔ)在其上的指令,所述指令在被執(zhí)行時(shí)致使一或多個(gè)處理器進(jìn)行以下操作:確定所述多個(gè)像素中的每一像素的一或多個(gè)樣本值;確定每一像素是否包括邊緣像素,其中所述確定包括對(duì)于每一像素識(shí)別所述相應(yīng)像素的所述一或多個(gè)樣本值中的不同樣本值;及基于所述邊緣像素確定編碼所述像素。
[0009]在附圖和下文描述中闡述本發(fā)明的一或多個(gè)實(shí)例的細(xì)節(jié)。其它特征、目標(biāo)和優(yōu)點(diǎn)將從所述描述和圖式以及權(quán)利要求書(shū)而顯而易見(jiàn)。
【專利附圖】
【附圖說(shuō)明】
[0010]圖1為說(shuō)明可經(jīng)配置以實(shí)施本發(fā)明的方面的計(jì)算裝置的框圖。
[0011]圖2為說(shuō)明圖形處理管線的概念圖。
[0012]圖3A為說(shuō)明實(shí)例2X2像素塊的概念圖,其中每一像素具有四個(gè)相關(guān)聯(lián)的樣本。
[0013]圖3B為說(shuō)明根據(jù)本發(fā)明的方面的增量樣本值的概念圖。
[0014]圖3C為說(shuō)明根據(jù)本發(fā)明的方面的增量位置掩碼的概念圖。
[0015]圖4為說(shuō)明根據(jù)本發(fā)明的方面的用于編碼圖形數(shù)據(jù)的實(shí)例過(guò)程的流程圖。
[0016]圖5為說(shuō)明根據(jù)本發(fā)明的方面的用于編碼顏色和/或深度值的實(shí)例過(guò)程的流程圖。
[0017]圖6為說(shuō)明根據(jù)本發(fā)明的方面的用于解碼圖形數(shù)據(jù)的實(shí)例過(guò)程的流程圖。
[0018]圖7為說(shuō)明根據(jù)本發(fā)明的方面的用于解碼顏色和/或深度值的實(shí)例過(guò)程的流程圖。
【具體實(shí)施方式】
[0019]本發(fā)明的方面一般來(lái)說(shuō)涉及壓縮圖形數(shù)據(jù),壓縮圖形數(shù)據(jù)可被稱作譯碼圖形數(shù)據(jù)。舉例來(lái)說(shuō),圖形數(shù)據(jù)的像素可由一或多個(gè)樣本(例如,一或多個(gè)顏色樣本、一或多個(gè)深度樣本,及其類似者)構(gòu)成,其中每一樣本對(duì)像素值有貢獻(xiàn)。本發(fā)明的方面一般來(lái)說(shuō)涉及壓縮與像素相關(guān)聯(lián)的樣本值以減少表示像素值所需的數(shù)據(jù)的量。本發(fā)明的方面還可涉及識(shí)別位于目標(biāo)邊緣處的像素,所述像素可具有不同樣本值。在一些實(shí)例中,可在壓縮與邊緣像素相關(guān)聯(lián)的樣本時(shí)相對(duì)于基準(zhǔn)值產(chǎn)生樣本增量。
[0020]圖1為說(shuō)明可實(shí)施本發(fā)明的用于譯碼圖形數(shù)據(jù)的技術(shù)的計(jì)算裝置30的框圖。計(jì)算裝置30的實(shí)例包含(但不限于)無(wú)線裝置、移動(dòng)或蜂窩電話(包含所謂的智能電話)、個(gè)人數(shù)字助理(PDA)、視頻游戲控制臺(tái)(包含視頻顯示器、移動(dòng)視頻游戲裝置、移動(dòng)視頻會(huì)議單元)、膝上型計(jì)算機(jī)、桌上型計(jì)算機(jī)、電視機(jī)頂盒、平板計(jì)算裝置、電子圖書(shū)閱讀器、固定或移動(dòng)媒體播放器,及其類似者。
[0021 ] 在圖1的實(shí)例中,計(jì)算裝置30包含:中央處理單元(CPU) 32,其具有CPU存儲(chǔ)器34 ;圖形處理單元(GPU) 36,其具有GPU存儲(chǔ)器38和譯碼單元60 ;顯示單元42 ;顯示緩沖器單元44 ;用戶接口單元46 ;及存儲(chǔ)單元48。另外,存儲(chǔ)單元48可存儲(chǔ)具有編譯程序54的GPU驅(qū)動(dòng)程序50、GPU程序52和本地編譯的GPU程序56。
[0022]CPU 32的實(shí)例包含(但不限于)數(shù)字信號(hào)處理器(DSP)、通用微處理器、專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程邏輯陣列(FPGA)或其它等效集成或離散邏輯電路。盡管在圖1的實(shí)例中將CPU 32和GPU 36說(shuō)明為分離單元,但在一些實(shí)例中,CPU 32和GPU 36可集成到單個(gè)單元中。CPU 32可執(zhí)行一或多個(gè)應(yīng)用程序。應(yīng)用程序的實(shí)例可包含網(wǎng)絡(luò)瀏覽器、電子郵件應(yīng)用程序、電子數(shù)據(jù)表、視頻游戲、音頻和/或視頻俘獲、播放或編輯應(yīng)用程序,或起始待經(jīng)由顯示單元42呈現(xiàn)的圖像數(shù)據(jù)的產(chǎn)生的其它應(yīng)用程序。
[0023]在圖1中展示的實(shí)例中,CPU 32包含CPU存儲(chǔ)器34。CPU存儲(chǔ)器34可表示在執(zhí)行機(jī)器或目標(biāo)代碼中使用的芯片上存儲(chǔ)裝置或存儲(chǔ)器。CPU存儲(chǔ)器34可各自包括能夠存儲(chǔ)固定數(shù)目個(gè)數(shù)字位的硬件存儲(chǔ)器寄存器。與從存儲(chǔ)單元48讀取值或?qū)⒅祵?xiě)入到存儲(chǔ)單元48相比較,CPU 32可能能夠更迅速地從本地CPU存儲(chǔ)器34讀取值或?qū)⒅祵?xiě)入到本地CPU存儲(chǔ)器34,存儲(chǔ)單元48可為(例如)通過(guò)系統(tǒng)總線存取的系統(tǒng)存儲(chǔ)器。
[0024]GPU 36表示用于執(zhí)行圖形操作的一或多個(gè)專用處理器。也就是說(shuō),例如,GPU 36可為專用硬件單元,其具有用于顯現(xiàn)圖形及執(zhí)行GPU應(yīng)用程序的固定功能和可編程組件。GPU 36還可包含DSP、通用微處理器、ASIC、FPGA,或其它等效集成或離散邏輯電路。
[0025]GPU 36還包含GPU存儲(chǔ)器38,其可表示在執(zhí)行機(jī)器或目標(biāo)代碼中使用的芯片上存儲(chǔ)裝置或存儲(chǔ)器。GPU存儲(chǔ)器38可包括能夠存儲(chǔ)固定數(shù)目個(gè)數(shù)字位的一或多個(gè)硬件存儲(chǔ)器寄存器。與從存儲(chǔ)單元48讀取值或?qū)⒅祵?xiě)入到存儲(chǔ)單元48相比較,GPU 36可能能夠更迅速地從本地GPU存儲(chǔ)器38讀取值或?qū)⒅祵?xiě)入到本地GPU存儲(chǔ)器38,存儲(chǔ)單元48可(例如)通過(guò)系統(tǒng)總線存取。
[0026]顯示單元42表示能夠顯示視頻數(shù)據(jù)、圖像、文本或任何其它類型的數(shù)據(jù)以供查看器消耗的單元。顯示單元42可包含液晶顯示器(LCD)、發(fā)光二極管(LED)顯示器、有機(jī)LED (OLED)、主動(dòng)矩陣OLED (AMOLED)顯示器,或其類似者。
[0027]顯示緩沖器單元44表示專用于存儲(chǔ)供顯示單元42呈現(xiàn)影像(例如,照片或視頻幀)的數(shù)據(jù)的存儲(chǔ)器或存儲(chǔ)裝置。顯示緩沖器單元44可表示包含多個(gè)存儲(chǔ)位置的二維緩沖器。顯示緩沖器單元44內(nèi)的存儲(chǔ)位置的數(shù)目可實(shí)質(zhì)上類似于待顯示在顯示單元42上的像素的數(shù)目。舉例來(lái)說(shuō),如果顯示單元42經(jīng)配置以包含640X480個(gè)像素,那么顯示緩沖器單元44可包含640 X 480個(gè)存儲(chǔ)位置。顯示緩沖器單元44可存儲(chǔ)由GPU 36處理的像素中的每一者的最終像素值。顯示單元42可從顯示緩沖器單元44檢索最終像素值,且基于存儲(chǔ)在顯示緩沖器單元44中的像素值顯示最終圖像。
[0028]用戶接口單元46表示用戶可用來(lái)交互或以其它方式介接以與計(jì)算裝置30的其它單元(例如,CPU 32)通信的單元。用戶接口單元46的實(shí)例包含(但不限于)軌跡球、鼠標(biāo)、鍵盤(pán)及其它類型的輸入裝置。用戶接口單元46還可為觸摸屏且可作為顯示單元42的一部分而并入。
[0029]存儲(chǔ)單元48可包括一或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)媒體。存儲(chǔ)單元48的實(shí)例包含(但不限于):隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、CD-ROM或其它光盤(pán)存儲(chǔ)裝置、磁盤(pán)存儲(chǔ)裝置或其它磁性存儲(chǔ)裝置、快閃存儲(chǔ)器,或可用以存儲(chǔ)呈指令或數(shù)據(jù)結(jié)構(gòu)形式的所要程序代碼且可通過(guò)計(jì)算機(jī)或處理器存取的任何其它媒體。
[0030]在一些實(shí)例實(shí)施方案中,存儲(chǔ)單元48可包含致使CPU 32和/或GPU 36執(zhí)行本發(fā)明中歸于CPU 32和GPU 36的功能的指令。在一些實(shí)例中,存儲(chǔ)單元48可被視為非暫時(shí)性存儲(chǔ)媒體。術(shù)語(yǔ)“非暫時(shí)性”可指示存儲(chǔ)媒體不體現(xiàn)于載波或傳播信號(hào)中。然而,術(shù)語(yǔ)“非暫時(shí)性”應(yīng)被解釋為意味著存儲(chǔ)單元48為不可移動(dòng)的。作為一個(gè)實(shí)例,可將存儲(chǔ)單元48從計(jì)算裝置30中去除,且將其移動(dòng)到另一裝置。作為另一實(shí)例,可將實(shí)質(zhì)上類似于存儲(chǔ)單元48的存儲(chǔ)單元插入到計(jì)算裝置30中。在某些實(shí)例中,非暫時(shí)性存儲(chǔ)媒體可存儲(chǔ)可隨時(shí)間而改變(例如,在RAM中)的數(shù)據(jù)。
[0031 ] 存儲(chǔ)單元48存儲(chǔ)GPU驅(qū)動(dòng)程序50和編譯程序54、GPU程序52及本地編譯的GPU程序56。GPU驅(qū)動(dòng)程序50表示提供接口以供存取GPU 36的計(jì)算機(jī)程序或可執(zhí)行碼。CPU32執(zhí)行GPU驅(qū)動(dòng)程序50或其部分以與GPU 36介接且,出于此原因,在圖1的實(shí)例中將GPU驅(qū)動(dòng)程序50展示為經(jīng)標(biāo)記為CPU 32內(nèi)的“GPU驅(qū)動(dòng)程序50”的短劃線框。由CPU 32執(zhí)行的程序或其它可執(zhí)行碼(包含GPU程序52)可存取GPU驅(qū)動(dòng)程序50。
[0032]GPU程序52可包含以高級(jí)(HL)編程語(yǔ)言撰寫(xiě)(例如,使用應(yīng)用程序編程接口(API))的代碼。API的實(shí)例包含開(kāi)放計(jì)算語(yǔ)言(“OpenCL”)、開(kāi)放圖形庫(kù)(“OpenGL”)和DirectX,如由Microsoft公司開(kāi)發(fā)的。一般來(lái)說(shuō),API包含由相關(guān)聯(lián)硬件執(zhí)行的一組預(yù)定的標(biāo)準(zhǔn)化命令。API命令允許用戶發(fā)指令給GPU的硬件組件以執(zhí)行命令而無(wú)需用戶了解所述硬件組件的詳情。
[0033]GPU程序52可調(diào)用或以其它方式包含通過(guò)GPU驅(qū)動(dòng)程序50提供的一或多個(gè)函數(shù)。CPU 32 一般執(zhí)行其中嵌有GPU程序52的程序且,在遇到GPU程序52后將GPU程序52傳遞到GPU驅(qū)動(dòng)程序50 (例如,呈命令流的形式)。在此上下文中,CPU 32執(zhí)行GPU驅(qū)動(dòng)程序50以處理GPU程序52。也就是說(shuō),例如,GPU驅(qū)動(dòng)程序50可通過(guò)將GPU程序52編譯成可通過(guò)GPU 36執(zhí)行的目標(biāo)或機(jī)器代碼來(lái)處理GPU程序52。在圖1的實(shí)例中將此目標(biāo)代碼展示為本地編譯的GPU程序56。
[0034]在一些實(shí)例中,編譯程序54可在執(zhí)行其中嵌有GPU程序52的程序期間實(shí)時(shí)地或接近實(shí)時(shí)地操作以編譯GPU程序52。舉例來(lái)說(shuō),編譯程序54 —般表示將根據(jù)HL編程語(yǔ)言定義的HL指令精簡(jiǎn)到低級(jí)(LL)編程語(yǔ)言的LL指令的模塊。在編譯之后,這些LL指令能夠通過(guò)特定類型的處理器或其它類型的硬件來(lái)執(zhí)行,其它類型的硬件例如FPGA、ASIC及其類似者(包含(例如)CPU 32和GPU 36)。
[0035]根據(jù)處理器或其它類型的硬件的指令集架構(gòu),在提供較低抽象或較低等級(jí)抽象的意義上,LL編程語(yǔ)目被視為低級(jí)。LL語(yǔ)目一般是指匯編語(yǔ)目和/或機(jī)器語(yǔ)目。匯編語(yǔ)目為比機(jī)器語(yǔ)言稍微高級(jí)的LL語(yǔ)言,但一般可在不使用編譯程序或其它轉(zhuǎn)譯模塊的情況下將匯編語(yǔ)言轉(zhuǎn)換成機(jī)器語(yǔ)言。作為一個(gè)實(shí)例,機(jī)器語(yǔ)言表示定義與通過(guò)底層硬件(例如,處理器)原生地執(zhí)行的指令(例如,x86機(jī)器代碼(其中x86是指由因特爾公司開(kāi)發(fā)的x86處理器的指令集架構(gòu)))類似(如果不相同的話)的指令的任何語(yǔ)言。
[0036]在任何情況下,編譯程序54可將根據(jù)HL編程語(yǔ)言定義的HL指令轉(zhuǎn)譯成底層硬件所支持的LL指令。編譯程序54去除與HL編程語(yǔ)言(和API)相關(guān)聯(lián)的抽象,使得根據(jù)這些HL編程語(yǔ)言定義的軟件能夠更直接地通過(guò)實(shí)際底層硬件來(lái)執(zhí)行。
[0037]在圖1的實(shí)例中,當(dāng)執(zhí)行包含GPU程序52的HL代碼時(shí),編譯程序54可從CPU 32接收GPU程序52。編譯程序54可編譯GPU程序52以產(chǎn)生符合LL編程語(yǔ)言的本地編譯的GPU程序56。編譯程序54接著輸出包含LL指令的本地編譯的GPU程序56。
[0038]GPU 36 一般接收本地編譯的GPU程序56 (如通過(guò)經(jīng)標(biāo)記為GPU 36內(nèi)的“本地編譯的GPU程序56”的短劃線框展示),于是,在一些情況下,GPU 36顯現(xiàn)圖形且將圖像的經(jīng)顯現(xiàn)部分輸出到顯示緩沖器單元44。舉例來(lái)說(shuō),GPU 36可產(chǎn)生待顯示在顯示單元42處的數(shù)個(gè)圖元。圖元可包含以下各者中的一或多者:線(包含曲線、樣條線等)、點(diǎn)、圓、橢圓、多邊形(其中通常多邊形被定義為一或多個(gè)三角形的集合)或任何其它二維(2D)圖元。術(shù)語(yǔ)“圖元”還可指三維(3D)圖元,例如立方體、圓柱體、球體、錐體、角錐、環(huán)面或其類似者。一般來(lái)說(shuō),術(shù)語(yǔ)“圖元”是指能夠通過(guò)GPU 36顯現(xiàn)以用于經(jīng)由顯示單元42顯示為圖像(或在視頻數(shù)據(jù)的上下文中為巾貞)的任何基本幾何形狀或元素。
[0039]GPU 36可通過(guò)應(yīng)用一或多個(gè)模型變換(其還可在狀態(tài)數(shù)據(jù)中加以指定)將圖元和圖元的其它狀態(tài)數(shù)據(jù)(例如,定義顏色、紋理、照明、攝像機(jī)配置或其它方面的狀態(tài)數(shù)據(jù))變換成所謂的“世界空間”。一旦進(jìn)行了變換,GPU 36便可對(duì)作用中攝像機(jī)應(yīng)用視圖變換(再次地,其還可在定義攝像機(jī)的狀態(tài)數(shù)據(jù)中加以指定)以將圖元和光的坐標(biāo)變換到攝像機(jī)或視覺(jué)空間中。GPU 36還可執(zhí)行頂點(diǎn)著色以鑒于任何作用中光來(lái)顯現(xiàn)圖元的外觀。GPU 36可在上述模型、世界空間或視點(diǎn)空間中的一或多者中執(zhí)行頂點(diǎn)著色(但其通常在世界空間中執(zhí)行)。
[0040]一旦圖元經(jīng)著色,GPU 36便可執(zhí)行投影以將圖像投影到具有極點(diǎn)的單位立方體中,作為一個(gè)實(shí)例,在(-1,-1,-1)和(1,1,1)處。此單位立方體通常被稱作正規(guī)化可視空間。在將模型從視覺(jué)空間變換到正規(guī)化可視空間之后,GPU 36可執(zhí)行截割以去除至少部分地不會(huì)駐留在可視空間內(nèi)的任何圖元。換句話說(shuō),GPU 36可去除不在攝像機(jī)的幀內(nèi)的任何圖元。GPU 36可接著將圖元的坐標(biāo)從可視空間映射到屏幕空間,從而有效地將圖元的3D坐標(biāo)縮減到屏幕的2D坐標(biāo)。
[0041]在給出定義圖元的經(jīng)變換及經(jīng)投影的頂點(diǎn)和其相關(guān)聯(lián)的著色數(shù)據(jù)的情況下,GPU36可接著將圖元光柵化。舉例來(lái)說(shuō),GPU 36可計(jì)算及設(shè)置被圖元覆蓋的屏幕的像素的顏色。在光柵化期間,GPU 36可應(yīng)用與圖元相關(guān)聯(lián)的任何紋理(其中紋理可包含狀態(tài)數(shù)據(jù))。GPU 36還可在光柵化期間執(zhí)行Z-緩沖算法(還被稱作深度測(cè)試),以確定圖元和/或目標(biāo)中的任一者是否被任何其它目標(biāo)遮擋。Z-緩沖算法根據(jù)圖元的深度將圖元排序,使得GPU36知道將每一圖元繪制到屏幕的次序。GPU 36將經(jīng)顯現(xiàn)的像素輸出到顯示緩沖器單元44。
[0042]在一些實(shí)例中,發(fā)生混疊,這是因?yàn)檎鎸?shí)世界的目標(biāo)具有連續(xù)的平滑曲線和線,而典型顯示器可經(jīng)配置以輸出光的離散點(diǎn)(即,像素)。像素經(jīng)均勻地染色且始終具有相同形狀,此情形可導(dǎo)致經(jīng)顯現(xiàn)的圖像的線在外觀上變?yōu)殇忼X狀。通過(guò)MSAA,可對(duì)單個(gè)像素產(chǎn)生多個(gè)樣本??山又M合(例如,平均化)所述樣本以確定最終像素值。
[0043]因此,GPU 36可按比所顯示的分辨率高的分辨率顯現(xiàn)圖像。GPU 36可接著在顯示之前將圖像向下采樣到適當(dāng)大小??墒菇Y(jié)果沿著目標(biāo)的邊緣從一行像素到另一行像素較平滑地轉(zhuǎn)變??墒褂靡蜃?、8、16或其它值來(lái)執(zhí)行MSAA。
[0044]如本文所描述,“像素”可指圖像中可見(jiàn)的單個(gè)片段?!皹颖尽笨芍笇?duì)像素有貢獻(xiàn)的單個(gè)值。舉例來(lái)說(shuō),樣本可包含對(duì)最終圖像中的一個(gè)像素有貢獻(xiàn)的顏色值(例如,單個(gè)RGBA值)。在四樣本MSAA模式中,紅色、綠色、藍(lán)色、a (RGBA)四個(gè)樣本可對(duì)每一像素有貢獻(xiàn)。在其它實(shí)例中,樣本可包含深度值(例如,Z-值)。另外,“邊緣”可指圖像的一或多個(gè)點(diǎn)(例如,一或多個(gè)像素),所述點(diǎn)在對(duì)點(diǎn)有貢獻(xiàn)的樣本值之間具有亮度、顏色或深度不連續(xù)性。舉例來(lái)說(shuō),在四樣本MSAA模式中,如果所有四個(gè)樣本不相等,那么可將對(duì)應(yīng)像素分類為邊緣像素。
[0045]“塊”可指NXN像素群組?!皦K高速緩沖存儲(chǔ)器”可指存儲(chǔ)一組未經(jīng)壓縮塊的GPU存儲(chǔ)器(例如,芯片上存儲(chǔ)裝置)。當(dāng)將塊從高速緩沖存儲(chǔ)器寫(xiě)入到系統(tǒng)存儲(chǔ)器時(shí),可計(jì)算塊編碼。當(dāng)將經(jīng)壓縮塊從系統(tǒng)存儲(chǔ)器讀取到高速緩沖存儲(chǔ)器時(shí),可計(jì)算塊解碼。在一些實(shí)例中,紅藍(lán)(RB)(或紅綠藍(lán)(RGB))寫(xiě)入可去往塊高速緩沖存儲(chǔ)器,且RB色讀取(或RGB)可來(lái)自塊高速緩沖存儲(chǔ)器。
[0046]如果像素被單個(gè)圖元覆蓋,那么所述像素內(nèi)部的所有樣本(例如,MSAA樣本)可共享相同顏色和/或深度信息。因此,可能存在樣本等級(jí)的4x重復(fù)信息。還有可能來(lái)自多個(gè)圖元的四個(gè)樣本共享相同顏色和/或深度數(shù)據(jù)。舉例來(lái)說(shuō),在相對(duì)較小的塊(例如,4X4像素塊)內(nèi)部,像素可具有類似顏色和/或深度。本發(fā)明的方面涉及壓縮此類顏色和深度數(shù)據(jù)。
[0047]顯示緩沖器單元44可臨時(shí)存儲(chǔ)經(jīng)顯現(xiàn)的圖像的經(jīng)顯現(xiàn)的像素,直到顯現(xiàn)整個(gè)圖像為止。在此上下文中,顯示緩沖器單元44可被視為圖像幀緩沖器。顯示緩沖器單元44可接著發(fā)射經(jīng)顯現(xiàn)的圖像以顯示在顯示單元42上。顯示緩沖器單元44可包含用于多種數(shù)據(jù)的存儲(chǔ)裝置,多種數(shù)據(jù)包含顏色數(shù)據(jù)(例如,紅色、綠色、藍(lán)色、a (RGBA)或任何其它顏色空間中的數(shù)據(jù))和深度數(shù)據(jù)(例如,指示相對(duì)于其它圖元的像素的像素深度的Z-值)。
[0048]在任何情況下,如上文所提到的,當(dāng)顯現(xiàn)像素?cái)?shù)據(jù)時(shí),GPU 36可從GPU 36外部的存儲(chǔ)器(例如,顯示緩沖器單元44和/或存儲(chǔ)單元48,一般被稱作“系統(tǒng)存儲(chǔ)器”)讀取數(shù)據(jù)及將數(shù)據(jù)寫(xiě)入到GPU 36外部的存儲(chǔ)器。在顯現(xiàn)單個(gè)圖像期間需要在系統(tǒng)存儲(chǔ)器與GPU36之間傳送的數(shù)據(jù)的量可為相當(dāng)大的且可限制顯現(xiàn)性能。舉例來(lái)說(shuō),關(guān)于模式顯現(xiàn)(立即模式和/或保留模式顯現(xiàn)),GPU 36可多次顯現(xiàn)最終圖像的單個(gè)像素。當(dāng)GPU 36使用多樣本抗混疊(MSAA)技術(shù)時(shí),可進(jìn)一步拉緊本地GPU存儲(chǔ)器38與系統(tǒng)存儲(chǔ)器之間的帶寬(歸因于與MSAA相關(guān)聯(lián)的額外樣本)。因此,當(dāng)使用繪制調(diào)用將像素直接顯現(xiàn)給系統(tǒng)存儲(chǔ)器時(shí),足夠的存儲(chǔ)器帶寬可能無(wú)法用以在系統(tǒng)存儲(chǔ)器與本地GPU存儲(chǔ)器38之間傳送顏色和深度數(shù)據(jù)。
[0049]另外,典型視頻和/或圖像壓縮算法無(wú)法進(jìn)行優(yōu)化以執(zhí)行3D顏色緩沖顯現(xiàn)的壓縮,這是因?yàn)榇鎯?chǔ)器存取模式可為隨機(jī)的,單元存取大小可能較小,且用于圖形顯現(xiàn)的壓縮可能需要為無(wú)損的。另外,典型視頻和/或圖像壓縮技術(shù)無(wú)法適用于計(jì)算機(jī)產(chǎn)生的圖形,這是因?yàn)镸SAA的概念一般不適用于視頻/圖像域。
[0050]本發(fā)明的方面一般涉及壓縮圖形數(shù)據(jù),所述壓縮可減少需要在GPU存儲(chǔ)器38與系統(tǒng)存儲(chǔ)器(即,顯示單元緩沖器44和/或存儲(chǔ)單元48)之間傳送的數(shù)據(jù)的量。舉例來(lái)說(shuō),根據(jù)本發(fā)明的方面,GPU 36可壓縮與像素相關(guān)聯(lián)的樣本值以減少表示像素值所需的數(shù)據(jù)的量。
[0051]在圖1中所展示的實(shí)例中,譯碼單元60可負(fù)責(zé)譯碼圖形數(shù)據(jù)。舉例來(lái)說(shuō),當(dāng)將圖形數(shù)據(jù)作為應(yīng)譯碼數(shù)據(jù)62寫(xiě)入到顯示單元緩沖器44和/或存儲(chǔ)單元48時(shí),譯碼單元60可編碼經(jīng)顯現(xiàn)的圖形數(shù)據(jù)。同樣地,當(dāng)從顯示單元緩沖器44和/或存儲(chǔ)單元48讀取經(jīng)譯碼數(shù)據(jù)62時(shí),譯碼單元60可解碼經(jīng)譯碼數(shù)據(jù)62。雖然在圖1的實(shí)例中將譯碼單元60展示為包含在GPU 36中,但在其它實(shí)例中,譯碼單元60可并入到計(jì)算裝置30的任何其它組件中。
[0052]在一些實(shí)例中,譯碼單元60可以不同于非邊緣像素的方式譯碼(壓縮)邊緣像素。舉例來(lái)說(shuō),如上文所提到的,用于非邊緣像素的樣本可共享相同顏色、深度和/或其它樣本。因此,GPU 36可用相同的單個(gè)樣本值表示所有樣本。然而,如上文所提到的,邊緣像素并不具有相等的樣本值。選擇用于所有樣本的代表性樣本值可導(dǎo)致有損壓縮。
[0053]根據(jù)本發(fā)明的方面,譯碼單元60可通過(guò)組合用于像素的所有樣本值來(lái)譯碼非邊緣像素。舉例來(lái)說(shuō),使用四樣本MSAA方案采樣的非邊緣像素可具有四個(gè)相等的顏色樣本。因此,譯碼單元60可將樣本組合成單個(gè)樣本值。
[0054]譯碼單元60可通過(guò)識(shí)別與具有不同值(例如,不等于與像素的其它樣本相關(guān)聯(lián)的其它樣本的至少一個(gè)顏色、亮度和/或深度值)的像素相關(guān)聯(lián)的樣本來(lái)刪除邊緣像素。譯碼單元60可從光柵器或顯現(xiàn)后端(如下文圖2中所展示)檢測(cè)邊緣像素。在檢測(cè)到邊緣像素之后,譯碼單元60可確定用于邊緣像素的基準(zhǔn)值且可僅存儲(chǔ)用于樣本的不同于基準(zhǔn)值的位,所述操作可被稱作基于位平面的壓縮。以此方式,譯碼單元60可保留樣本的所有信息,同時(shí)仍壓縮表示像素所需的數(shù)據(jù)的量。
[0055]出于解釋的目的,假設(shè):譯碼單元60經(jīng)配置以在將4X4像素塊從GPU存儲(chǔ)器38寫(xiě)入到顯示單元緩沖器44和/或存儲(chǔ)單元38時(shí)譯碼此類塊。還假設(shè):使用四樣本MSAA方案來(lái)采樣每一像素。在檢測(cè)到邊緣像素之后,譯碼單元60可產(chǎn)生用于塊的識(shí)別邊緣像素的位置的邊緣掩碼。舉例來(lái)說(shuō),譯碼單元60可產(chǎn)生識(shí)別4X4塊中的邊緣像素的位置的16位邊緣掩碼(例如,I位每像素,其中O表示非邊緣像素且I表示邊緣像素,或反過(guò)來(lái)也是一樣)。
[0056]當(dāng)譯碼顏色數(shù)據(jù)時(shí),譯碼單元60還可確定塊的基準(zhǔn)顏色。在其中使用RGBA8888格式用于顏色樣本的實(shí)例中,可使用一個(gè)32位值來(lái)表示基準(zhǔn)顏色。譯碼單元60可通過(guò)組合顏色樣本來(lái)確定塊的基準(zhǔn)顏色。舉例來(lái)說(shuō),譯碼單元60可執(zhí)行“與”運(yùn)算以組合樣本,或確定算術(shù)平均值、平均數(shù)、中值或其類似者。
[0057]譯碼單元60可接著確定塊中的每一像素的增量值,其中增量值表示實(shí)際樣本顏色與基準(zhǔn)顏色之間的差。舉例來(lái)說(shuō),譯碼單元60可確定用于每一非邊緣像素的一個(gè)增量,所述增量等于基準(zhǔn)顏色與樣本的顏色(對(duì)于非邊緣像素來(lái)說(shuō),顏色相同)之間的差。另外,譯碼單元60可確定用于與邊緣像素相關(guān)聯(lián)的每一樣本值的增量值。因此,在4x MSAA方案中,譯碼單元60可確定用于每一邊緣像素的四個(gè)增量值。
[0058]譯碼單元60可接著確定塊的掩碼,所述掩碼指示不等于基準(zhǔn)顏色的塊的每一樣本的位置(對(duì)于所述樣本,存在大于零的增量)。因此,對(duì)于上文所論述的4x MSAA情況下的4X 4塊,譯碼單元60可產(chǎn)生32-位值,所述32-位值包含對(duì)于具有不同于基準(zhǔn)顏色的顏色的每一樣本經(jīng)設(shè)置為一的位,和對(duì)于具有與基準(zhǔn)顏色相同的顏色的每一樣本經(jīng)設(shè)置為零的位(或反過(guò)來(lái)也是一樣)。
[0059]關(guān)于解碼,當(dāng)從顯示單元緩沖器44和/或存儲(chǔ)單元48讀取塊時(shí),譯碼單元60可解碼塊。根據(jù)本發(fā)明的方面,譯碼單元60可通過(guò)以邊緣掩碼次序掃描像素來(lái)解碼經(jīng)譯碼塊。如果像素為邊緣像素,那么四個(gè)隨后樣本增量可對(duì)應(yīng)于當(dāng)前像素(例如,對(duì)于每個(gè)增量顏色通道)。如果像素并非邊緣像素,那么譯碼單元60可使用一個(gè)增量來(lái)復(fù)制像素的所有四個(gè)樣本的顏色。增量可根據(jù)顏色通道,且對(duì)于像素的所有顏色通道,邊緣掩碼可相同。因此,對(duì)于每個(gè)樣本,所得顏色為基準(zhǔn)顏色與增量的組合。每顏色通道的增量位計(jì)數(shù)可根據(jù)顏色掩碼來(lái)計(jì)算。每一增量位位置還可從顏色掩碼讀取。
[0060]根據(jù)本發(fā)明的方面,可將上文所描述的相同壓縮技術(shù)應(yīng)用于顏色和深度數(shù)據(jù),借此提供硬件成本減少(例如,計(jì)算負(fù)荷和/或存儲(chǔ)器總線要求的減少)。舉例來(lái)說(shuō),除譯碼顏色數(shù)據(jù)之外,譯碼單元60還可編碼/解碼深度數(shù)據(jù)(例如,例如Z-值)。也就是說(shuō),譯碼單元60可通過(guò)組合像素的所有深度樣本值來(lái)譯碼非邊緣像素。對(duì)于邊緣像素,譯碼單元60可確定基準(zhǔn)深度值且可僅存儲(chǔ)用于樣本的不同于基準(zhǔn)值的位,如上文關(guān)于顏色壓縮實(shí)例所描述。
[0061]在一些實(shí)例中,RGBA通道可具有塊等級(jí)下的不同特性。因此,用于RGBA通道的適應(yīng)性存儲(chǔ)器覆蓋面積可為有益的。舉例來(lái)說(shuō),對(duì)于具有RGBA8888顏色格式的4X4塊和4x MSAA,塊大小可為4X4X4X32位=2048位。在此實(shí)例中,根據(jù)本發(fā)明的技術(shù)產(chǎn)生的512-位經(jīng)壓縮塊為原始存儲(chǔ)器覆蓋面積的四分之一??墒褂靡唤M固定的預(yù)定塊大小??蓪?shí)施本發(fā)明的方面以壓縮大量塊大小。
[0062]可將本發(fā)明的方面應(yīng)用于浮點(diǎn)和/或整數(shù)顯現(xiàn)目標(biāo)和深度緩沖器。如上文所注釋,本發(fā)明的技術(shù)一般可為無(wú)損的,且可在各種MSAA方案(例如,lx、2x、4x、8x、16x及其類似者)中加以應(yīng)用。在一些實(shí)例中,本發(fā)明的技術(shù)可將存儲(chǔ)器消耗速率減小為二分之一,且在一些應(yīng)用中,高達(dá)六分之一或六分之一以下。保存存儲(chǔ)器帶寬還可減少功率消耗,這歸因于來(lái)自負(fù)責(zé)數(shù)據(jù)傳送的組件的功率節(jié)省。
[0063]應(yīng)理解,僅僅作為實(shí)例而提供計(jì)算裝置30,且可以不同方式來(lái)布置執(zhí)行本發(fā)明的技術(shù)的其它計(jì)算裝置30。舉例來(lái)說(shuō),雖然將顯示緩沖器單元44與存儲(chǔ)單元48分離來(lái)展示及描述,但在其它實(shí)例中,顯示單元緩沖器44和存儲(chǔ)單元48可并入到相同組件中。
[0064]此外,應(yīng)理解,計(jì)算裝置30可包含圖1中為了清晰起見(jiàn)而未展示的額外模塊或單元。舉例來(lái)說(shuō),計(jì)算裝置30可包含用于發(fā)射及接收數(shù)據(jù)的收發(fā)器模塊,且可包含允許計(jì)算裝置30與另一裝置或網(wǎng)絡(luò)之間的無(wú)線或有線通信的電路。計(jì)算裝置30還可包含揚(yáng)聲器和麥克風(fēng)(所述兩者在圖1中均未展示),以在其中計(jì)算裝置30為移動(dòng)無(wú)線電話(例如,智能電話)的實(shí)例中實(shí)現(xiàn)電話通信,或在其中計(jì)算裝置30為媒體播放器或平板計(jì)算機(jī)的實(shí)例中實(shí)現(xiàn)揚(yáng)聲器。在一些情況下,在其中計(jì)算裝置30為桌上型計(jì)算機(jī)或經(jīng)裝備以與外部用戶接口或顯示器介接的其它裝置的實(shí)例中,用戶接口單元46和顯示單元42可在計(jì)算裝置30的外部。
[0065]圖2為說(shuō)明示范性圖形處理管線80的框圖。實(shí)例管線80包含輸入?yún)R編程序級(jí)82、頂點(diǎn)著色器級(jí)84、外殼著色器級(jí)86、鑲嵌器級(jí)88、域著色器級(jí)90、幾何著色器級(jí)92、光柵器級(jí)94、像素著色器級(jí)96,和輸出合并器級(jí)98。在一些實(shí)例中,例如DirectX IlAPI等API可經(jīng)配置以使用圖3中所展示的所述級(jí)中的每一者。下文將圖形處理管線80描述為使用GPU 36來(lái)執(zhí)行,但可由多種其它圖形處理器來(lái)執(zhí)行。
[0066]圖形處理管線80 —般包含可編程級(jí)(例如,圖2中通過(guò)具有圓角的框加以說(shuō)明)和固定功能級(jí)(例如,圖2中通過(guò)具有方角的框加以說(shuō)明)。舉例來(lái)說(shuō),與圖形顯現(xiàn)管線80的某些級(jí)相關(guān)聯(lián)的圖形顯現(xiàn)操作一般通過(guò)可編程著色器處理器來(lái)執(zhí)行,而與圖形顯現(xiàn)管線80的其它級(jí)相關(guān)聯(lián)的其它圖形顯現(xiàn)操作一般通過(guò)與GPU 36相關(guān)聯(lián)的非可編程、固定功能硬件單元來(lái)執(zhí)行。由著色單元40執(zhí)行的圖形顯現(xiàn)級(jí)一般可被稱作“可編程”級(jí),而通過(guò)固定功能單元執(zhí)行的級(jí)一般可被稱作固定功能級(jí)。
[0067]在圖2的實(shí)例中將輸入?yún)R編程序級(jí)82展示為固定功能級(jí)且其一般負(fù)責(zé)將圖形數(shù)據(jù)(三角形、線和點(diǎn))供應(yīng)到圖形處理管線80。舉例來(lái)說(shuō),輸入?yún)R編程序級(jí)82可收集高階表面、圖元及其類似者的頂點(diǎn)數(shù)據(jù),且將頂點(diǎn)數(shù)據(jù)和屬性輸出到頂點(diǎn)著色器級(jí)84。因此,輸入?yún)R編程序級(jí)80可使用固定功能操作從片外存儲(chǔ)器(例如,存儲(chǔ)單元48)讀取頂點(diǎn)。輸入?yún)R編程序級(jí)80可接著根據(jù)這些頂點(diǎn)創(chuàng)建管線工作項(xiàng),同時(shí)還產(chǎn)生頂點(diǎn)識(shí)別符(“VertexIDs”)、實(shí)例識(shí)別符(“InstancelDs”,其可供頂點(diǎn)著色器使用)和圖元識(shí)別符(“PrimitivelDs”,其可供幾何著色器和像素著色器使用)。在讀取頂點(diǎn)時(shí),輸入?yún)R編程序級(jí) 80 可自動(dòng)地產(chǎn)生 VertexIDs、InstanceIDs 和 PrimitivelDs。
[0068]頂點(diǎn)著色器級(jí)84可處理所接收的頂點(diǎn)數(shù)據(jù)和屬性。舉例來(lái)說(shuō),頂點(diǎn)著色器級(jí)84可執(zhí)行每頂點(diǎn)處理,例如,變換、剝皮、頂點(diǎn)移位及計(jì)算每頂點(diǎn)材料屬性。在一些實(shí)例中,頂點(diǎn)著色器級(jí)84可產(chǎn)生紋理坐標(biāo)、頂點(diǎn)顏色、頂點(diǎn)照明、霧效因子及其類似者。頂點(diǎn)著色器級(jí)84 一般采用單個(gè)輸入頂點(diǎn)且輸出單個(gè)經(jīng)處理的輸出頂點(diǎn)。
[0069]外殼著色器級(jí)86接收來(lái)自頂點(diǎn)著色器級(jí)84的圖元且負(fù)責(zé)執(zhí)行至少兩個(gè)動(dòng)作。第一,外殼著色器級(jí)86通常負(fù)責(zé)確定一組鑲嵌因子。外殼著色器級(jí)86可每圖元產(chǎn)生一次鑲嵌因子。鑲嵌因子可供鑲嵌器級(jí)88使用以確定鑲嵌給定圖元的精細(xì)程度(例如,將圖元分裂成較小部分)。外殼著色器級(jí)86還負(fù)責(zé)產(chǎn)生稍后將供域著色器級(jí)90使用的控制點(diǎn)。也就是說(shuō),例如,外殼著色器級(jí)86負(fù)責(zé)產(chǎn)生將供域著色器級(jí)90使用以創(chuàng)建最終在顯現(xiàn)中使用的實(shí)際的經(jīng)鑲嵌的頂點(diǎn)的控制點(diǎn)。
[0070]當(dāng)鑲嵌器級(jí)88接收到來(lái)自外殼著色器級(jí)86的數(shù)據(jù)時(shí),鑲嵌器級(jí)88使用若干算法中的一者來(lái)確定用于當(dāng)前圖元類型的適當(dāng)采樣模式。舉例來(lái)說(shuō),一般來(lái)說(shuō),鑲嵌器級(jí)88將所請(qǐng)求的鑲嵌的量(如通過(guò)外殼著色器級(jí)86確定)轉(zhuǎn)換成當(dāng)前“域”內(nèi)的一群組坐標(biāo)點(diǎn)。也就是說(shuō),取決于來(lái)自外殼著色器級(jí)86的鑲嵌因子,以及鑲嵌器級(jí)88的特定配置,鑲嵌器級(jí)88確定需要對(duì)當(dāng)前圖元中的哪些點(diǎn)進(jìn)行采樣以便將輸入圖元鑲嵌到較小部分中。鑲嵌器級(jí)的輸出可為一組域點(diǎn),其可包含重心坐標(biāo)。
[0071]除由外殼著色器級(jí)86產(chǎn)生的控制點(diǎn)之外,域著色器級(jí)90還采用域點(diǎn),且使用域點(diǎn)來(lái)創(chuàng)建新頂點(diǎn)。域著色器級(jí)90可使用針對(duì)當(dāng)前圖元、紋理、程序算法或任何其它內(nèi)容產(chǎn)生的控制點(diǎn)的完整列表將每一經(jīng)鑲嵌的點(diǎn)的重心“位置”轉(zhuǎn)換成傳遞到管線中的下一級(jí)的輸出幾何。
[0072]幾何著色器級(jí)92可接收通過(guò)頂點(diǎn)數(shù)據(jù)定義的圖元(例如,三個(gè)頂點(diǎn)用于三角形,兩個(gè)頂點(diǎn)用于線,或單個(gè)頂點(diǎn)用于點(diǎn))且進(jìn)一步處理所述圖元。舉例來(lái)說(shuō),幾何著色器級(jí)82可執(zhí)行每圖元處理,例如,輪廓-邊緣檢測(cè)和陰影體擠出,以及其它可能的處理操作。因此,幾何著色器級(jí)92可接收一個(gè)圖元作為輸入(其可包含一或多個(gè)頂點(diǎn))且輸出零個(gè)、一個(gè)或多個(gè)圖元(其再次可包含一或多個(gè)頂點(diǎn))。輸出圖元可含有量比無(wú)幾何著色器級(jí)92情況下可能有可能的數(shù)據(jù)量多的數(shù)據(jù)。輸出數(shù)據(jù)的總量可等于頂點(diǎn)大小乘以頂點(diǎn)計(jì)數(shù)的所得值,且可根據(jù)調(diào)用來(lái)限制。來(lái)自幾何著色器級(jí)92的流輸出可允許將到達(dá)此級(jí)的圖元存儲(chǔ)到芯片外存儲(chǔ)器,例如,存儲(chǔ)單元48 (圖1)。通常將流輸出系結(jié)到幾何著色器級(jí)92,且可將流輸出與幾何著色器級(jí)92 —起編程(例如,使用API)。
[0073]光柵器級(jí)94通常為固定功能級(jí),其負(fù)責(zé)截割圖元及準(zhǔn)備將圖元用于像素著色器級(jí)96。舉例來(lái)說(shuō),光柵器級(jí)94可執(zhí)行截割(包含定制的截割邊界)、透視分割、觀察口 /剪刀選擇及實(shí)施方案、顯現(xiàn)目標(biāo)選擇及圖元設(shè)置。以此方式,光柵器級(jí)94可產(chǎn)生供像素著色器級(jí)96著色的數(shù)個(gè)片段。
[0074]像素著色器級(jí)96接收來(lái)自光柵器級(jí)94的片段且產(chǎn)生每像素?cái)?shù)據(jù),例如顏色。像素著色器級(jí)96還可執(zhí)行每像素處理,例如紋理?yè)胶霞罢彰髂P陀?jì)算。因此,像素著色器級(jí)96可接收一個(gè)像素作為輸入且可在相同的相對(duì)位置處輸出一個(gè)像素(或?qū)τ谙袼?,為零?。
[0075]輸出合并器級(jí)98 —般負(fù)責(zé)組合各種類型的輸出數(shù)據(jù)(例如,像素著色器值、深度和模板信息)以產(chǎn)生最終結(jié)果。舉例來(lái)說(shuō),輸出合并器級(jí)98可對(duì)顯現(xiàn)目標(biāo)(像素位置)執(zhí)行固定功能摻合、深度和/或模板操作。
[0076]在一些實(shí)例中,根據(jù)本發(fā)明的方面,GPU 36可壓縮來(lái)自流輸出(例如,在幾何著色器級(jí)92之后)或輸出合并器級(jí)98的經(jīng)著色像素。舉例來(lái)說(shuō),GPU 36可將經(jīng)著色像素從輸出合并器級(jí)98寫(xiě)入到芯片上存儲(chǔ)器高速緩沖存儲(chǔ)器(例如,GPU存儲(chǔ)器38)。GPU 36可執(zhí)行本發(fā)明的技術(shù)以在將像素?cái)?shù)據(jù)從芯片上存儲(chǔ)器傳送到GPU 36外部的存儲(chǔ)器時(shí)壓縮經(jīng)著色像素?cái)?shù)據(jù)。在一些實(shí)例中,GPU 36可逐個(gè)塊地執(zhí)行壓縮(例如,4X4塊、8X8塊、16X16塊及其類似者)。
[0077]圖3A到3C為說(shuō)明編碼實(shí)例2X2像素塊120的概念圖。在圖3A到3C中所展示的實(shí)例中,每一像素122A到122D具有四個(gè)相關(guān)聯(lián)的樣本(在像素122中展示為方框),此情形表示4x MSAA方案。雖然將關(guān)于圖3A到3C所描述的技術(shù)描述為由GPU 36執(zhí)行,但所述技術(shù)可由多種其它處理單元來(lái)執(zhí)行。
[0078]在圖3A中所展示的實(shí)例中,像素122AU22C和122D為具有樣本值7(0000111)(僅出于說(shuō)明的目的展示的值)的非邊緣像素。然而,像素122B為具有具值7(0000111)的一個(gè)樣本和具值5(00000101)(再次,僅出于說(shuō)明的目的而展示的值)的三個(gè)樣本的邊緣像素。
[0079]因此,如圖3B中所展示,GPU 36可識(shí)別像素122A、122C和122D為非邊緣像素且可將樣本值壓縮為單個(gè)樣本值(7)。歸因于不同樣本值,GPU 36可確定像素122B為邊緣像素,且可能不將樣本值壓縮為單個(gè)值。
[0080]GPU 36可產(chǎn)生邊緣掩碼以指示哪些像素為邊緣像素。在圖3A到3C中所展示的實(shí)例中,邊緣掩碼可為0100(例如,呈光柵次序,其中I指示122B為邊緣像素)。如上文關(guān)于圖1所提到的,GPU 36還可產(chǎn)生基準(zhǔn)值。舉例來(lái)說(shuō),GPU 36可使用逐位“與”運(yùn)算產(chǎn)生基準(zhǔn)值,所述逐位“與”運(yùn)算可等于(7)&(5&5&7&5)&(7)&(7) = 5(00000101)。在其它實(shí)例中,GPU 36可使用替代方法(例如,算術(shù)平均值、平均數(shù)、中值及其類似者)產(chǎn)生基準(zhǔn)值。
[0081]在一些實(shí)例中,GPU 36可使用差掩碼指示增量值。舉例來(lái)說(shuō),在圖3A到3C中所展示的實(shí)例中,GPU 36可執(zhí)行逐位異或運(yùn)算,所述逐位異或運(yùn)算可等于
(7)~(5~5~7~5Γ(7Γ(7) = 2(00000010)。GPU 36還可產(chǎn)生位置掩碼以指示實(shí)際樣本值不同于基準(zhǔn)值的樣本中的每一者的位置。在一些實(shí)例中,GPU 36可設(shè)置用于每一非邊緣像素的一個(gè)位置位(因?yàn)樗袠颖鞠嗤?和用于每一邊緣像素的四個(gè)位置位(每一樣本一個(gè)位)。因此,在圖3Α到3C中所展示的實(shí)例中,位置掩碼可等于產(chǎn)生1001011(光柵次序)的(I) (O O I O) (I) (I)。也就是說(shuō),關(guān)于圖3C,(I)涉及像素122A,(O O I O)涉及像素122B,
(I)涉及像素I22C,且(I)涉及像素122D。
[0082]根據(jù)本發(fā)明的方面,不是對(duì)于單個(gè)顏色存儲(chǔ)8位每像素(bpp)(例如,4樣本X4樣本X8位顏色=128b),而是經(jīng)壓縮塊存儲(chǔ)器覆蓋面積可為大約1.7bpp(例如,8位基準(zhǔn)顏色+8位差掩碼+4位邊緣掩碼+7位位置掩碼(增量=1+4*1+1+1) = 27位每2X2像素塊)。因此,27位每塊除以16MSAA樣本等于大約1.68bpp。
[0083]關(guān)于上文所展示的實(shí)例,假設(shè)格式為RGBA8888格式且使用4x MSAA。根據(jù)此實(shí)例,經(jīng)壓縮塊存儲(chǔ)32b基準(zhǔn)顏色(Sb每通道)、32b差掩碼(Sb每通道)、16b邊緣掩碼(Ib每像素)和變化大小的位置掩碼每經(jīng)編碼樣本(例如,O到Sb每樣本,其中每一顏色通道一不同位)。因此,經(jīng)壓縮塊存儲(chǔ)器覆蓋面積粗略地為96位加增量位。增量存儲(chǔ)器覆蓋面積可取決于塊內(nèi)容。雖然關(guān)于特定格式和混疊方案描述上文所描述的實(shí)例,但應(yīng)理解,本發(fā)明的技術(shù)可適用于其它格式和其它抗混疊技術(shù)。
[0084]另外,雖然關(guān)于顏色值描述圖3A到3C中所展示的實(shí)例,但可針對(duì)深度值執(zhí)行相同技術(shù)。舉例來(lái)說(shuō),關(guān)于Z-值,每一像素122可具有四個(gè)相關(guān)聯(lián)的Z-值。GPU 36可以與上文所描述的顏色壓縮相同的方式執(zhí)行深度壓縮。也就是說(shuō),GPU 36可產(chǎn)生基準(zhǔn)深度、邊緣掩碼(例如,指示哪些像素為邊緣像素)、差掩碼(例如,指示基準(zhǔn)深度與實(shí)際深度之間的差),及位置掩碼(例如,指示具有非零增量值的樣本的位置)。
[0085]圖4為說(shuō)明根據(jù)本發(fā)明的方面的用于編碼圖形數(shù)據(jù)的實(shí)例過(guò)程的流程圖。雖然將圖4中所展示的過(guò)程描述為由GPU 36(圖1)執(zhí)行,但所述技術(shù)可由多種其它處理單元來(lái)實(shí)施。
[0086]在圖4的實(shí)例中,GPU 36將像素值顯現(xiàn)給高速緩沖存儲(chǔ)器(140)。高速緩沖存儲(chǔ)器可包含在(例如)GPU存儲(chǔ)器38中,使得高速緩沖存儲(chǔ)器為芯片上存儲(chǔ)器。GPU 36可確定高速緩沖存儲(chǔ)器是否為滿的,或另外準(zhǔn)備將寫(xiě)入到高速緩沖存儲(chǔ)器的數(shù)據(jù)從芯片上存儲(chǔ)器中寫(xiě)出(142)。
[0087]如果高速緩沖存儲(chǔ)器為滿的(步驟142的“是”分支),那么GPU 36可編碼高速緩沖存儲(chǔ)器中的像素的顏色值(144)。舉例來(lái)說(shuō),對(duì)于非邊緣像素,GPU 36可壓縮樣本值以產(chǎn)生用于所有樣本的單個(gè)值。對(duì)于邊緣像素,GPU 36可能并不壓縮樣本值。在任何情況下,GPU 36可確定樣本的基準(zhǔn)值,且確定基準(zhǔn)值與實(shí)際樣本值之間的差。
[0088]另外,GPU 36可編碼高速緩沖存儲(chǔ)器中的像素的深度值(146)。舉例來(lái)說(shuō),如上文所描述,GPU 36可以與顏色值相同的方式編碼深度值。也就是說(shuō),對(duì)于非邊緣像素,GPU 36可壓縮樣本值以產(chǎn)生用于所有樣本的單個(gè)值。對(duì)于邊緣像素,GPU 36可能并不壓縮樣本值。在任何情況下,GPU 36可確定樣本的基準(zhǔn)深度值,且確定基準(zhǔn)深度值與實(shí)際樣本值之間的差。
[0089]在譯碼顏色和深度值之后,GPU 36可將經(jīng)編碼圖形數(shù)據(jù)從高速緩沖存儲(chǔ)器寫(xiě)入到系統(tǒng)存儲(chǔ)器(148)。舉例來(lái)說(shuō),GPU 36可將經(jīng)編碼圖形數(shù)據(jù)從高速緩沖存儲(chǔ)器寫(xiě)入到顯示單元緩沖器44和/或存儲(chǔ)單元48。應(yīng)理解,圖4中所展示的步驟僅作為一個(gè)實(shí)例提供。也就是說(shuō),圖4中所展示的步驟未必需要按所展示的次序來(lái)執(zhí)行,且可執(zhí)行較少、額外或替代步驟。
[0090]圖5為說(shuō)明根據(jù)本發(fā)明的方面的用于編碼顏色和/或深度值的實(shí)例過(guò)程的流程圖。雖然將圖5中所展示的過(guò)程描述為由GPU 36(圖1)執(zhí)行,但所述技術(shù)可由多種其它處理單元來(lái)實(shí)施。在一些實(shí)例中,可在執(zhí)行圖4的步驟144和/或146時(shí)執(zhí)行圖5的實(shí)例中所展示的過(guò)程。
[0091]在圖5中所展示的實(shí)例中,GPU 36可確定像素是否為邊緣像素(160)。舉例來(lái)說(shuō),關(guān)于編碼顏色,GPU 36可通過(guò)識(shí)別像素的不同顏色樣本來(lái)確定像素是否為邊緣像素。關(guān)于深度,GPU 36可通過(guò)識(shí)別像素的不同深度樣本來(lái)確定像素是否為邊緣像素。在任何情況下,對(duì)于4x MSAA,如果像素的所有四個(gè)樣本值相同,那么GPU 36可識(shí)別像素為非邊緣像素?;蛘撸绻袼氐臉颖局抵械囊换蚨嗾卟煌?,那么GPU 36可識(shí)別像素為邊緣像素。
[0092]GPU 36可產(chǎn)生邊緣掩碼以指示像素塊中的邊緣像素的位置(162)。舉例來(lái)說(shuō),GPU 36可產(chǎn)生指示像素塊中的每一邊緣像素的位置的位串。GPU 36還可產(chǎn)生塊的基準(zhǔn)值
(164)。也就是說(shuō),當(dāng)編碼顏色時(shí),GPU 36可產(chǎn)生塊的基準(zhǔn)顏色。當(dāng)編碼深度信息時(shí),GPU 36可產(chǎn)生基準(zhǔn)深度值。
[0093]在產(chǎn)生基準(zhǔn)值之后,GPU 36可產(chǎn)生指示基準(zhǔn)值與塊中的樣本中的每一者的實(shí)際值之間的差的增量值(166)。在一些實(shí)例中,GPU 36可產(chǎn)生非邊緣像素的單個(gè)增量值,所述增量值表示基準(zhǔn)值與組合樣本值之間的差(因?yàn)樗袠颖镜闹迪嗟?。GPU 36可產(chǎn)生邊緣像素的每一樣本的增量值,所述增量值還表示基準(zhǔn)值與樣本值之間的差。
[0094]GPU 36還可產(chǎn)生位置掩碼以指示哪些樣本值與所產(chǎn)生的增量相關(guān)聯(lián)(168)。舉例來(lái)說(shuō),GPU 36可產(chǎn)生指示不同于基準(zhǔn)值的每一樣本值的位置的位串。在一些實(shí)例中,非邊緣像素可用單個(gè)值來(lái)表示,而不管與像素相關(guān)聯(lián)的樣本的數(shù)目,如上文所描述。
[0095]應(yīng)理解,圖5中所展示的步驟僅作為一個(gè)實(shí)例提供。也就是說(shuō),圖5中所展示的步驟未必需要按所展示的次序來(lái)執(zhí)行,且可執(zhí)行較少、額外或替代步驟。
[0096]圖6為說(shuō)明根據(jù)本發(fā)明的方面的用于解碼圖形數(shù)據(jù)的實(shí)例過(guò)程的流程圖。雖然將圖6中所展示的過(guò)程描述為由GPU 36(圖1)執(zhí)行,但所述技術(shù)可由多種其它處理單元來(lái)實(shí)施。
[0097]GPU 36可從系統(tǒng)存儲(chǔ)器檢索像素值(180)。舉例來(lái)說(shuō),GPU 36可從顯示單元緩沖器44和/或存儲(chǔ)單元48讀取像素值。GPU 36還可確定經(jīng)讀取的像素值是否為經(jīng)編碼值
(182)。也就是說(shuō),在一些實(shí)例中,GPU 36可經(jīng)預(yù)先配置以在任何時(shí)候在本地GPU存儲(chǔ)器(例如,GPU存儲(chǔ)器38)與系統(tǒng)存儲(chǔ)器(例如,顯示單元緩沖器44和/或存儲(chǔ)單元48)之間傳送此類數(shù)據(jù)時(shí),執(zhí)行圖形數(shù)據(jù)的編碼及解碼。在此類實(shí)例中,可能并不執(zhí)行確定步驟182。然而,在其它實(shí)例中,GPU 36可為可配置的,且可能并非始終執(zhí)行編碼/解碼功能(例如,取決于系統(tǒng)資源)。在此類實(shí)例中,GPU 36可確定從系統(tǒng)存儲(chǔ)器讀取的數(shù)據(jù)是否先前經(jīng)編碼。
[0098]在任何情況下,如果像素值經(jīng)編碼(步驟182的“是”分支),那么GPU 36可解碼像素的顏色值(184)。舉例來(lái)說(shuō),GPU 36可確定基準(zhǔn)值,確定哪些樣本不同于基準(zhǔn)值,及組合所接收增量值與基準(zhǔn)值以產(chǎn)生經(jīng)解碼像素值。如上文所提到的,可將基準(zhǔn)值、邊緣掩碼(指示不同于基準(zhǔn)值的樣本)和增量掩碼與經(jīng)譯碼數(shù)據(jù)一起提供。GPU 36還可以相同方式解碼像素的深度值(186)。在解碼顏色和/或深度值之后,GPU 36可將像素值寫(xiě)入到高速緩沖存儲(chǔ)器,例如GPU存儲(chǔ)器38 (188)。
[0099]應(yīng)理解,圖6中所展示的步驟僅作為一個(gè)實(shí)例提供。也就是說(shuō),圖6中所展示的步驟未必需要按所展示的次序來(lái)執(zhí)行,且可執(zhí)行較少、額外或替代步驟。舉例來(lái)說(shuō),雖然圖6說(shuō)明解碼顏色和深度值兩者,但在一些實(shí)例中,可能僅解碼顏色或深度值。
[0100]圖7為說(shuō)明根據(jù)本發(fā)明的方面的用于解碼顏色和/或深度值的實(shí)例過(guò)程的流程圖。雖然將圖7中所展示的過(guò)程描述為由GPU 36(圖1)執(zhí)行,但所述技術(shù)可由多種其它處理單元來(lái)實(shí)施。在一些實(shí)例中,可在執(zhí)行圖6的步驟184和/或186時(shí)執(zhí)行圖7中所展示的過(guò)程。
[0101]在圖7的實(shí)例中,GPU 36可確定像素塊的基準(zhǔn)值(200)。在一些實(shí)例中,GPU 36可接收基準(zhǔn)值的指示。舉例來(lái)說(shuō),如上文關(guān)于圖5所提到的,36可在編碼時(shí)確定基準(zhǔn)值。因此,可將基準(zhǔn)值與經(jīng)檢索數(shù)據(jù)包含在一起。GPU 36還可確定塊的像素的增量值(202)。以與基準(zhǔn)值相同的方式,可將塊的增量值與經(jīng)檢索數(shù)據(jù)包含在一起。
[0102]組合所接收基準(zhǔn)值與所接收增量值的方式可取決于像素是邊緣像素還是非邊緣像素。因此,GPU 36可(例如)使用所接收邊緣掩碼確定像素是邊緣像素還是非邊緣像素(204)。
[0103]GPU 36可按邊緣掩碼次序掃描像素。對(duì)于邊緣像素(步驟204的“是”分支),GPU36可組合隨后的四個(gè)(對(duì)于4x MSAA)增量值與基準(zhǔn)值以產(chǎn)生像素的實(shí)際的單獨(dú)樣本值(例如,4個(gè)實(shí)際樣本值)(206)。如果像素并非邊緣像素(步驟204的“否”分支),那么GPU可組合隨后的單個(gè)增量值與基準(zhǔn)值以產(chǎn)生像素的組合樣本值(208)。
[0104]可執(zhí)行關(guān)于圖7所描述的步驟以用于解碼顏色和/或深度值。應(yīng)理解,圖7中所展示的步驟僅作為一個(gè)實(shí)例提供。也就是說(shuō),圖7中所展示的步驟未必需要按所展示的次序來(lái)執(zhí)行,且可執(zhí)行較少、額外或替代步驟。
[0105]還應(yīng)理解,取決于實(shí)例,本文中所描述的方法中的任一者的某些動(dòng)作或事件可以用不同順序執(zhí)行、可以添加、合并或全部省略(例如,實(shí)踐所述方法并不需要所有所描述動(dòng)作或事件)。此外,在某些實(shí)例中,可(例如)通過(guò)多線程處理、中斷處理或多個(gè)處理器同時(shí)而非順序地執(zhí)行動(dòng)作或事件。
[0106]在一或多個(gè)實(shí)例中,所描述功能可以硬件、軟件、固件或其任何組合來(lái)實(shí)施。如果以軟件來(lái)實(shí)施,那么功能可作為一或多個(gè)指令或代碼存儲(chǔ)在包括非暫時(shí)性計(jì)算機(jī)可讀媒體的制造物品上。計(jì)算機(jī)可讀媒體可包含計(jì)算機(jī)數(shù)據(jù)存儲(chǔ)媒體。數(shù)據(jù)存儲(chǔ)媒體可以是可由一或多個(gè)計(jì)算機(jī)或一或多個(gè)處理器存取以檢索用于實(shí)施本發(fā)明中描述的技術(shù)的指令、代碼和/或數(shù)據(jù)結(jié)構(gòu)的任何可用媒體。以實(shí)例說(shuō)明而非限制,此類計(jì)算機(jī)可讀媒體可包括RAM、ROM、EEPROM、CD-ROM或其它光盤(pán)存儲(chǔ)裝置、磁盤(pán)存儲(chǔ)裝置或其它磁性存儲(chǔ)裝置、快閃存儲(chǔ)器,或可用以攜載或存儲(chǔ)呈指令或數(shù)據(jù)結(jié)構(gòu)形式且可由計(jì)算機(jī)存取的所要程序代碼的任何其它媒體。如本文中所使用,磁盤(pán)和光盤(pán)包含壓縮光盤(pán)(CD)、激光光盤(pán)、光學(xué)光盤(pán)、數(shù)字影音光盤(pán)(DVD)、軟性磁盤(pán)和藍(lán)光光盤(pán),其中磁盤(pán)通常以磁性方式再現(xiàn)數(shù)據(jù),而光盤(pán)利用激光以光學(xué)方式再現(xiàn)數(shù)據(jù)。上述各者的組合也應(yīng)包含在計(jì)算機(jī)可讀媒體的范圍內(nèi)。
[0107]代碼可由一或多個(gè)處理器執(zhí)行,所述一或多個(gè)處理器例如一或多個(gè)DSP、通用微處理器、ASIC、FPGA,或其它等效集成或離散邏輯電路。另外,在一些方面中,可在專用硬件和/或軟件模塊內(nèi)提供本文中所描述的功能性。并且,可將所述技術(shù)完全實(shí)施于一或多個(gè)電路或邏輯元件中。
[0108]本發(fā)明的技術(shù)可以在廣泛多種裝置或設(shè)備中實(shí)施,包含無(wú)線手持機(jī)、集成電路(IC)或一組IC(例如,芯片組)。本發(fā)明中描述各種組件、模塊或單元是為了強(qiáng)調(diào)經(jīng)配置以執(zhí)行所揭示技術(shù)的裝置的功能方面,但未必需要通過(guò)不同硬件單元實(shí)現(xiàn)。確切地說(shuō),如上文所描述,各種單元可以結(jié)合合適的軟件和/或固件組合在編碼解碼器硬件單元中,或者通過(guò)互操作硬件單元的集合來(lái)提供,所述硬件單元包含如上文所描述的一或多個(gè)處理器。
[0109]已描述各種實(shí)例。這些及其它實(shí)例在所附權(quán)利要求書(shū)的范圍內(nèi)。
【權(quán)利要求】
1.一種編碼包括多個(gè)像素的圖形數(shù)據(jù)的方法,所述方法包括: 通過(guò)圖形處理單元GPU確定所述多個(gè)像素中的每一像素的一或多個(gè)樣本值; 確定每一像素是否包括邊緣像素,其中所述確定包括對(duì)于每一像素識(shí)別所述相應(yīng)像素的所述一或多個(gè)樣本值中的不同樣本值;以及基于所述邊緣像素確定編碼所述像素。
2.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括將所述經(jīng)編碼像素?cái)?shù)據(jù)存儲(chǔ)到所述GPU外部的緩沖器。
3.根據(jù)權(quán)利要求2所述的方法,其進(jìn)一步包括將所述經(jīng)編碼像素?cái)?shù)據(jù)存儲(chǔ)到塊高速緩沖存儲(chǔ)器,且其中存儲(chǔ)所述經(jīng)編碼像素?cái)?shù)據(jù)包括將所述塊高速緩沖存儲(chǔ)器的內(nèi)容寫(xiě)出到所述緩沖器。
4.根據(jù)權(quán)利要求1所述的方法,其中確定所述一或多個(gè)樣本值包括執(zhí)行多樣本抗混疊以產(chǎn)生所述多個(gè)像素中的每一像素的所述一或多個(gè)樣本值。
5.根據(jù)權(quán)利要求1所述的方法,其中所述一或多個(gè)樣本值包括顏色值且其中確定像素是否包括邊緣像素包括對(duì)于每一像素識(shí)別所述像素的所述樣本值是否包含不同顏色值。
6.根據(jù)權(quán)利要求5所述的方法,其中編碼所述像素進(jìn)一步包括: 產(chǎn)生識(shí)別像素塊中的邊緣像素的邊緣掩碼; 產(chǎn)生所述像素塊的基準(zhǔn)顏色值;以及 產(chǎn)生所述像素塊的每一像素的顏色樣本值與所述像素塊的所述基準(zhǔn)顏色之間的增量值。
7.根據(jù)權(quán)利要求1所述的方法,其中所述一或多個(gè)樣本值包括深度值且其中確定像素是否包括邊緣像素包括對(duì)于每一像素識(shí)別所述像素的所述樣本值是否包含不同深度值。
8.根據(jù)權(quán)利要求7所述的方法,其中編碼所述像素進(jìn)一步包括: 產(chǎn)生識(shí)別像素塊中的邊緣像素的邊緣掩碼; 產(chǎn)生所述像素塊的基準(zhǔn)深度值;以及 產(chǎn)生所述像素塊的每一像素的深度樣本值與所述像素塊的所述基準(zhǔn)深度值之間的增量值。
9.一種用于編碼包括多個(gè)像素的圖形數(shù)據(jù)的設(shè)備,所述設(shè)備包括一或多個(gè)處理器,所述一或多個(gè)處理器經(jīng)配置以: 確定所述多個(gè)像素中的每一像素的一或多個(gè)樣本值; 確定每一像素是否包括邊緣像素,其中所述確定包括對(duì)于每一像素識(shí)別所述相應(yīng)像素的所述一或多個(gè)樣本值中的不同樣本值;以及基于所述邊緣像素確定編碼所述像素。
10.根據(jù)權(quán)利要求9所述的設(shè)備,其中所述一或多個(gè)處理器經(jīng)進(jìn)一步配置以將所述經(jīng)編碼像素?cái)?shù)據(jù)存儲(chǔ)到GPU外部的緩沖器。
11.根據(jù)權(quán)利要求10所述的設(shè)備,其中所述一或多個(gè)處理器經(jīng)進(jìn)一步配置以將所述經(jīng)編碼像素?cái)?shù)據(jù)存儲(chǔ)到塊高速緩沖存儲(chǔ)器,且其中存儲(chǔ)所述經(jīng)編碼像素?cái)?shù)據(jù)包括將所述塊高速緩沖存儲(chǔ)器的內(nèi)容寫(xiě)出到所述緩沖器。
12.根據(jù)權(quán)利要求9所述的設(shè)備,其中為了確定所述一或多個(gè)樣本值,所述一或多個(gè)處理器經(jīng)配置以執(zhí)行多樣本抗混疊以產(chǎn)生所述多個(gè)像素中的每一像素的所述一或多個(gè)樣本值。
13.根據(jù)權(quán)利要求9所述的設(shè)備,其中所述一或多個(gè)樣本值包括顏色值且其中為了確定像素是否包括邊緣像素,所述一或多個(gè)處理器經(jīng)配置以對(duì)于每一像素識(shí)別所述像素的所述樣本值是否包含不同顏色值。
14.根據(jù)權(quán)利要求13所述的設(shè)備,其中為了編碼所述像素,所述一或多個(gè)處理器經(jīng)配置以: 產(chǎn)生識(shí)別像素塊中的邊緣像素的邊緣掩碼; 產(chǎn)生所述像素塊的基準(zhǔn)顏色值;以及 產(chǎn)生所述像素塊的每一像素的顏色樣本值與所述像素塊的所述基準(zhǔn)顏色之間的增量值。
15.根據(jù)權(quán)利要求9所述的設(shè)備,其中所述一或多個(gè)樣本值包括深度值且其中為了確定像素是否包括邊緣像素,所述一或多個(gè)處理器經(jīng)配置以對(duì)于每一像素識(shí)別所述像素的所述樣本值是否包含不同深度值。
16.根據(jù)權(quán)利要求15所述的設(shè)備,其中為了編碼所述像素,所述一或多個(gè)處理器經(jīng)配置以: 產(chǎn)生識(shí)別像素塊中的邊緣像素的邊緣掩碼; 產(chǎn)生所述像素塊的基準(zhǔn)深度值;以及 產(chǎn)生所述像素塊的每一像素的深度樣本值與所述像素塊的所述基準(zhǔn)深度值之間的增量值。
17.一種用于編碼包括多個(gè)像素的圖形數(shù)據(jù)的設(shè)備,所述設(shè)備包括: 用于確定所述多個(gè)像素中的每一像素的一或多個(gè)樣本值的裝置; 用于確定每一像素是否包括邊緣像素的裝置,其中所述確定包括對(duì)于每一像素識(shí)別所述相應(yīng)像素的所述一或多個(gè)樣本值中的不同樣本值;以及用于基于所述邊緣像素確定編碼所述像素的裝置。
18.根據(jù)權(quán)利要求17所述的設(shè)備,其進(jìn)一步包括用于將所述經(jīng)編碼像素?cái)?shù)據(jù)存儲(chǔ)到GPU外部的緩沖器的裝置。
19.根據(jù)權(quán)利要求18所述的設(shè)備,其進(jìn)一步包括用于將所述經(jīng)編碼像素?cái)?shù)據(jù)存儲(chǔ)到塊高速緩沖存儲(chǔ)器的裝置,且其中用于存儲(chǔ)所述經(jīng)編碼像素?cái)?shù)據(jù)的所述裝置包括用于將所述塊高速緩沖存儲(chǔ)器的內(nèi)容寫(xiě)出到所述緩沖器的裝置。
20.根據(jù)權(quán)利要求17所述的設(shè)備,其中所述用于確定所述一或多個(gè)樣本值的裝置包括用于執(zhí)行多樣本抗混疊以產(chǎn)生所述多個(gè)像素中的每一像素的所述一或多個(gè)樣本值的裝置。
21.根據(jù)權(quán)利要求17所述的設(shè)備,其中所述一或多個(gè)樣本值包括顏色值且其中所述用于確定像素是否包括邊緣像素的裝置包括用于對(duì)于每一像素識(shí)別所述像素的所述樣本值是否包含不同顏色值的裝置。
22.根據(jù)權(quán)利要求21所述的設(shè)備,其中用于編碼所述像素的所述裝置進(jìn)一步包括: 用于產(chǎn)生識(shí)別像素塊中的邊緣像素的邊緣掩碼的裝置; 用于產(chǎn)生所述像素塊的基準(zhǔn)顏色值的裝置;以及 用于產(chǎn)生所述像素塊的每一像素的顏色樣本值與所述像素塊的所述基準(zhǔn)顏色之間的增量值的裝置。
23.根據(jù)權(quán)利要求17所述的設(shè)備,其中所述一或多個(gè)樣本值包括深度值且其中所述用于確定像素是否包括邊緣像素的裝置包括用于對(duì)于每一像素識(shí)別所述像素的所述樣本值是否包含不同深度值的裝置。
24.根據(jù)權(quán)利要求23所述的設(shè)備,其中用于編碼所述像素的所述裝置進(jìn)一步包括: 用于產(chǎn)生識(shí)別像素塊中的邊緣像素的邊緣掩碼的裝置; 用于產(chǎn)生所述像素塊的基準(zhǔn)深度值的裝置;以及 用于產(chǎn)生所述像素塊的每一像素的深度樣本值與所述像素塊的所述基準(zhǔn)深度值之間的增量值的裝置。
25.一種非暫時(shí)性計(jì)算機(jī)可讀媒體,其具有存儲(chǔ)在其上的指令,所述指令在被執(zhí)行時(shí)致使一或多個(gè)處理器進(jìn)行以下操作: 確定所述多個(gè)像素中的每一像素的一或多個(gè)樣本值; 確定每一像素是否包括邊緣像素,其中所述確定包括對(duì)于每一像素識(shí)別所述相應(yīng)像素的所述一或多個(gè)樣本值中的不同樣本值;以及 基于所述邊緣像素確定編碼所述像素。
26.根據(jù)權(quán)利要求25所述的非暫時(shí)性計(jì)算機(jī)可讀媒體,其中所述指令致使所述一或多個(gè)處理器將所述經(jīng)編碼像素?cái)?shù)據(jù)存儲(chǔ)到GPU外部的緩沖器。
27.根據(jù)權(quán)利要求26所述的非暫時(shí)性計(jì)算機(jī)可讀媒體,其中所述指令致使所述一或多個(gè)處理器將所述經(jīng)編碼像素?cái)?shù)據(jù)存儲(chǔ)到塊高速緩沖存儲(chǔ)器,且其中存儲(chǔ)所述經(jīng)編碼像素?cái)?shù)據(jù)包括將所述塊高速緩沖存儲(chǔ)器的內(nèi)容寫(xiě)出到所述緩沖器。
28.根據(jù)權(quán)利要求25所述的非暫時(shí)性計(jì)算機(jī)可讀媒體,其中為了確定所述一或多個(gè)樣本值,所述指令致使所述一或多個(gè)處理器執(zhí)行多樣本抗混疊以產(chǎn)生所述多個(gè)像素中的每一像素的所述一或多個(gè)樣本值。
29.根據(jù)權(quán)利要求25所述的非暫時(shí)性計(jì)算機(jī)可讀媒體,其中所述一或多個(gè)樣本值包括顏色值且其中為了確定像素是否包括邊緣像素,所述指令致使所述一或多個(gè)處理器對(duì)于每一像素識(shí)別所述像素的所述樣本值是否包含不同顏色值。
30.根據(jù)權(quán)利要求29所述的非暫時(shí)性計(jì)算機(jī)可讀媒體,其中為了編碼所述像素,所述指令致使所述一或多個(gè)處理器進(jìn)行以下操作: 產(chǎn)生識(shí)別像素塊中的邊緣像素的邊緣掩碼; 產(chǎn)生所述像素塊的基準(zhǔn)顏色值;以及 產(chǎn)生所述像素塊的每一像素的顏色樣本值與所述像素塊的所述基準(zhǔn)顏色之間的增量值。
31.根據(jù)權(quán)利要求25所述的非暫時(shí)性計(jì)算機(jī)可讀媒體,其中所述一或多個(gè)樣本值包括深度值且其中為了確定像素是否包括邊緣像素,所述指令致使所述一或多個(gè)處理器對(duì)于每一像素識(shí)別所述像素的所述樣本值是否包含不同深度值。
32.根據(jù)權(quán)利要求31所述的非暫時(shí)性計(jì)算機(jī)可讀媒體,其中為了編碼所述像素,所述指令致使所述一或多個(gè)處理器進(jìn)行以下操作: 產(chǎn)生識(shí)別像素塊中的邊緣像素的邊緣掩碼; 產(chǎn)生所述像素塊的基準(zhǔn)深度值;以及 產(chǎn)生所述像素塊的每一像素的深度樣本值與所述像素塊的所述基準(zhǔn)深度值之間的增O TTI
【文檔編號(hào)】G06T9/00GK104272740SQ201380022746
【公開(kāi)日】2015年1月7日 申請(qǐng)日期:2013年5月1日 優(yōu)先權(quán)日:2012年5月1日
【發(fā)明者】尤卡-佩卡·阿爾沃 申請(qǐng)人:高通股份有限公司