国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      群集的調(diào)色板壓縮的制作方法

      文檔序號:11519553閱讀:235來源:國知局
      群集的調(diào)色板壓縮的制造方法與工藝



      背景技術(shù):

      在計算機系統(tǒng)中,往和來于存儲器的業(yè)務是大功率消耗方。因而,開發(fā)減少存儲器業(yè)務的技術(shù)是極重要的。

      用于減少來自存儲器業(yè)務的功率消耗的一種方法是使用高速緩存體系,以及另一種是采用正被傳輸?shù)臄?shù)據(jù)的不同類型的壓縮。

      附圖說明

      一些實施例相對于以下附圖被描述:

      圖1是根據(jù)一個實施例的調(diào)色板壓縮的描繪;

      圖2是根據(jù)一個實施例的帶有群集化(clustering)的調(diào)色板壓縮的描繪;

      圖3是對于一個實施例的流程圖;

      圖4是根據(jù)一個實施例的群集化算法的描繪;

      圖5是一個假設示例中的紅和綠通道的圖;

      圖6是根據(jù)一個實施例的處理系統(tǒng)的框圖;

      圖7是根據(jù)一個實施例的處理器的框圖;

      圖8是根據(jù)一個實施例的圖形處理器的框圖;

      圖9是根據(jù)一個實施例的圖形處理引擎的框圖;

      圖10是圖形處理器的另一實施例的框圖;

      圖11是根據(jù)一個實施例的描繪線程執(zhí)行邏輯;

      圖12是根據(jù)一些實施例的圖形處理器指令格式的框圖;

      圖13是圖形處理器的另一實施例的框圖;

      圖14a是根據(jù)一些實施例的圖形處理器命令格式的框圖;

      圖14b是框圖,其示出根據(jù)一些實施例的圖形處理器命令序列;

      圖15是根據(jù)一些實施例的示范性圖形軟件架構(gòu)的描繪;

      圖16是框圖,其示出根據(jù)一些實施例的ip核開發(fā)系統(tǒng);以及

      圖17是框圖,其示出根據(jù)一些實施例的示范性芯片上系統(tǒng)集成電路。

      具體實施方式

      對于渲染的圖像的某些范圍,壓縮-解壓縮(編解碼器)的最佳選擇是使用基于調(diào)色板的編解碼器?;谡{(diào)色板的壓縮可基于群集化,其使實際調(diào)色板大大變小以存儲,進而改善壓縮成功率。

      調(diào)色板本身是基于調(diào)色板的編解碼器中的整個被壓縮表示的一大部分。使用群集的手段和通過跳過對恒定的顏色通道進行編碼兩者,調(diào)色板可被壓縮。

      在手頭的任務是要:(i)收集片(tile)中的所有各種顏色并在調(diào)色板中存儲這些顏色,以及(ii)為每個樣本/像素值指派索引到此調(diào)色板。在圖1中所描繪的所收集的數(shù)據(jù)涉及轉(zhuǎn)化所述顏色(在這種情況中,這些顏色是僅3種顏色)的每個、通過代碼或索引(在此示例中是0、1或2)來標識每種顏色、以及創(chuàng)建調(diào)色板,其示出可用顏色(在這種情況中,有4種)的調(diào)色板的哪些顏色(有3種)實際上正被使用。

      在這個過程的結(jié)尾,用于存儲調(diào)色板連同調(diào)色板索引的所需要的比特的總數(shù)量被計數(shù)。隨后檢查確定比特的這個數(shù)量是否適配被壓縮單元的比特預算。此檢查可涉及確定所提議的壓縮是否比原格式導致更少數(shù)量的高速緩存行(line)。如果是這樣,則壓縮被取得。

      調(diào)色板本身比完整表示占用更少字節(jié)來存儲,因此,在一些情況中這將使壓縮成功率更高。在一些實施例中,這將進而減少存儲器業(yè)務并將增加能源效率。

      給定基于調(diào)色板的編解碼器,由n種顏色組成的調(diào)色板被存儲,并且隨后每個像素/樣本需要個索引比特來“指”進顏色調(diào)色板。調(diào)色板中的顏色被壓縮,所以它們占據(jù)較少空間。

      例如,對于8x4像素片,其中每個顏色占用32比特(rgba),未被壓縮的片使用32*4=128字節(jié)。假定壓縮到64字節(jié),即,512比特被要求。每個像素需要k字節(jié)以用于索引,即,32*k比特總體上被需要。調(diào)色板中的每種顏色使用32比特(與片中的原始數(shù)據(jù)相同),并且存在n種調(diào)色板顏色??傮w上,這共計32*k+32*n,其少于或等于512。

      在此情況中,這意味著k+n小于或等于16,并且因此,使用k=4比特是合理的,其理論上使在調(diào)色板中使用至多或16種不同顏色成為可能。那么,對于顏色調(diào)色板存在剩余的512-4*32或384比特,并且這意味著在調(diào)色板中n是384/32或12種顏色。

      然而,如果我們能夠在調(diào)色板中存儲16種顏色,則我們能壓縮更多片,并且通過使用調(diào)色板中顏色的壓縮,這個目的能被取得。備選地,我們能使用k=5比特,其在調(diào)色板中給出(512-32*5)/32或11種顏色。由于存在每索引5比特,我們能潛在使用帶有多至32種顏色的調(diào)色板。然而,這只有在調(diào)色板被壓縮時才能被做出。

      作為第一簡單技術(shù),每顏色通道一比特被用于指示顏色通道的一個顏色通道中顏色是否是恒定的。作為示例,如果比特是1,則片中的所有像素對于那個通道具有相同值。例如,所有紅色值可以是23。在這種情況中,恒定值、即23也被存儲。

      作為示例,使用rgba顏色空間,阿爾法(a)分量經(jīng)常在片上都是0,或在片上都是255。如果一個顏色通道被跳過,則8比特被存儲以用于恒定通道,因為對于rgba這些是32比特或每通道8比特乘4的值。跳過比特還被存儲以用于四個通道的每個通道來指出該通道是否被跳過。所以,總體上,在具有一個恒定顏色的示例中額外12比特被存儲,因此調(diào)色板中的每種顏色現(xiàn)在僅是24(3*8)比特。

      在帶有在k=5比特的情況中,相比于之前的11種顏色,調(diào)色板中n等于(512-12-32*5)/24=14.167種顏色,或向下取整,14種顏色。

      此壓縮技術(shù)能被稱為跳過比特技術(shù)。多于一個通道可以是恒定的。如果兩個通道是恒定的,則4個跳過比特和因而8+8比特被存儲以用于恒定通道,等等。

      另外,我們能存儲調(diào)色板中的所有顏色的最小顏色值,并隨后編碼調(diào)色板中的顏色和這個最小顏色之間的不同。這些不同經(jīng)常能用更少的比特而被編碼完。

      然而,在很多情況中,調(diào)色板編碼方法勝過其它編碼方法。這些情況經(jīng)常包含其中存在調(diào)色板中的顏色的截然不同組的片。

      例如,假定非常暗的灰背景(其中帶有一點噪聲),并且隨后兩個白像素突然出現(xiàn)。來自最小顏色(其將是最暗的灰)與白像素的不同是巨大的,并且所有不同將用與對于白和最暗的灰像素之間的不同所需要的比特一樣多的比特來編碼。作為結(jié)果,沒有壓縮能被獲取。在這種情況中,僅存在過破壞了壓縮的可能性的兩個像素。然而,例如,這些情境經(jīng)常發(fā)生在用戶接口中,并且如果它們是非??蓧嚎s的是有益處的。

      使用群集化,調(diào)色板可被壓縮。群集化涉及尋找兩個或更多最小(最低顏色值)顏色,并隨后壓縮與這些最小顏色中的一個最小顏色有關(guān)的調(diào)色板中的每種顏色。在以上示例中,最小暗灰色可以是一個最小顏色,并且白色是一個最小顏色。所有暗灰色(稱為群集1)相對最小暗灰色被編碼,并且所述兩個白色(稱為群集2)與最小白色有關(guān)地被編碼。

      隨后跳過比特能被用于每個群集。這實際上同樣能更多地減少數(shù)據(jù)。

      除了顏色(現(xiàn)在是群集)索引之外,還按樣本/像素來使用余量(residual)比特的一個實施例的群集化的示例被示出在圖2中。在圖2中,僅存在兩種赤(redish)色(交叉影線的和雙交叉影線的)和一種藍色(沒有影線)(使用索引0(對于藍色)和1(對于所述兩種赤色))。余量比特編碼所述兩個赤色值的一個赤色值與最小顏色值的不同。這個示例中的調(diào)色板僅具有兩種顏色,帶有經(jīng)由余量比特所指出的變體紅色的一種。

      存在用于尋找群集的若干方法。假定我們想要尋找僅兩個群集。在這種情況中,能擔當“均值”的兩種顏色被尋找。對于均值這些猜測越好,所述方法將收斂越快。

      在一個實施例中,通過尋找例如rgb或rgba、或者rga(如果b恒定并因此被跳過)的其余顏色通道的空間中顏色周圍的最小限定框,均值能被尋找。接下來,假定最小限定框在每個顏色維度中在中間被拆分,這導致許多子框。接下來,與這個最小限定框的每個角落最接近的顏色被尋找。這些“角落顏色”的兩個被挑出,其各自在它的子框中具有最大顏色。這些顏色就是用于初始化k-均值群集化算法的兩個均值。

      接下來,應用k-均值群集化的一個或更多步驟。第一步驟是簡單地將每種顏色與其最接近于的均值關(guān)聯(lián)(例如,在rgb空間中)。當這已被做出時,調(diào)色板中的每種顏色已被指派到一個均值(其是來自調(diào)色板的顏色)。第二步驟將每個均值更新為被指派到那個群集的所有顏色的平均值。隨后如果需要,則我們可再多進行幾次步驟一和二。

      但另一變體是更迭代的。想法是從調(diào)色板取一種顏色,并且只要所添加的顏色充分接近就在那種顏色周圍建立群集。如果與當前群集太遠離的顏色被遇到,則新群集顏色被分配。對余下的顏色繼續(xù)進行操作,并嘗試將它們合并到當前兩個群集的任一個。隨后第三群集能被添加,等等。為能夠?qū)崿F(xiàn)這,每樣本/像素一比特被用于用信號通知余量比特是否被存儲。

      因此,參考圖4,序列40可被實現(xiàn)在軟件、固件和/或硬件中。在軟件和固件實施例中,它可由執(zhí)行指令的計算機來實現(xiàn),所述指令存儲在諸如磁、光、或半導體存儲器的一個或更多非暫態(tài)計算機可讀介質(zhì)中。

      如框42中所指出的,該序列通過在片中的所有樣本或像素上循環(huán)來開始。隨后,如框44中所指出的,給定顏色和已經(jīng)在調(diào)色板中的顏色之間的不同被檢查。如果如菱形46中所確定的,所述不同是小的因為它比閾值更小,則如框48中所指出的,存儲余量比特并標記該樣本。余量比特在50處被指示。

      在另一方面,如果該不同不是小的,則在菱形52的檢查確定該顏色是否已經(jīng)在調(diào)色板中。如果不在,則如框54中所指出的,該顏色被存儲在調(diào)色板中。隨后如在56處所指出的,調(diào)色板被更新,并且流程迭代回到框44.

      如菱形52中所確定的,如果該顏色已經(jīng)在調(diào)色板中,則如框48中所指示的,調(diào)色板條目標識符(id)被記錄。隨后如在60處所指示的,該樣本或像素在調(diào)色板條目列表中被提供。

      在菱形62的檢查確定是否存在剩余的任何樣本或像素。如果是這樣,流程迭代回到框44,并且否則流程結(jié)束。

      針對現(xiàn)有顏色,存儲新調(diào)色板條目或余量比特之間的選擇是任意的(arbitrary)。在一般情況中,只要每條目余量比特加每樣本一比特的數(shù)量低于調(diào)色板中的完整顏色,所存儲比特的數(shù)量中的增益就能被取得。

      例如,假定我們具有帶有n個顏色的片(帶有rgb)。不存在任何東西將此技術(shù)約束于任何具體顏色空間。

      在圖5中,僅顯現(xiàn)(visualize)紅和綠(r和g)通道的示例被給出。在左邊,紅(r)和綠(g)軸被貼上標簽。在此存在8個像素顏色。綠像素或樣本通過空心圓來指示,并且紅像素或樣本通過實心圓來指示。在中間,所述像素顏色周圍的最小框被尋找。圓d在左下角落,因此這是這8個像素顏色的最小顏色。在中間,將該最小框拆分成四個2x2小區(qū)(cell)(以虛線來指示)。在右邊,最小框b1和b2對于每個小區(qū)被計算,其創(chuàng)建了兩個組。暗圓d1和d2示出對于這兩個組的最小顏色。

      在一個群集化算法中,用最小顏色(圖4中的暗圓d1和d2)來簡單編碼每個非空小區(qū),并隨后添加那個框內(nèi)部的余量的某個編碼。這可用標準方法來做出。

      這個示例是在二個維度中的,但是通常存在三個(rgb)或四個(rgba)維度。由于組的最小顏色的編碼是相當昂貴的(expensive),有時將兩個組來合并成一個是合理的。我們可還選定將顏色變換到另一顏色空間中,使得ycogg,以便于減少每個框的量,因而減少余量比特的數(shù)量。

      在迭代方案中,最少增加結(jié)果合并組(框)的總量的一對組(框)被合并。在rgb-空間中,通過按維度來拆分一次,8個小區(qū)被獲得。每個組在x、y或z中僅具有一個直接近鄰。存在用于在此使用的若干試探法(heuristic),其包含以下示例:

      1)將最小框合并于給出最小量的近鄰。迭代地進行此操作,直到成本對于成功壓縮降到低于比特閾值為止。

      2)將最小框合并于給出最大量的近鄰。迭代地進行此操作,直到成本對于成功壓縮降到低于比特閾值為止。

      合并僅需要繼續(xù),直到目標比特閾值被達到(或更少)為止。還存在按維度來拆分多于一次的可能性。這創(chuàng)建了最小框必須被合并的更多小區(qū)。在這個情況中,每個小區(qū)可得到更多直接近鄰。

      在兩個或更多群集已被生成后,每個群集的最小顏色被存儲。另外,如以上所提及的,4個跳過比特可按群集來存儲,并且如果通道在群集內(nèi)恒定,則那個通道不需要編碼余量。在這種情況中,3個大小比特每通道來存儲以指示按通道多少余量比特被需要。例如,如果對于紅通道的最大不同在群集內(nèi)是13,則4比特被需要來存儲此類不同,并因此在這種情況中3大小比特將隨后被設置成4。

      如圖3中所示出的,對于使用群集化的壓縮的序列34可被實現(xiàn)在軟件、固件和/或硬件中。在軟件和固件實施例中,它可由執(zhí)行指令的計算機來實現(xiàn),所述指令存儲在諸如磁、光、或半導體存儲器的一個或更多非暫態(tài)計算機可讀介質(zhì)中。在一些情況中,所述序列可例如由圖形處理單元來實現(xiàn)。

      序列34通過在片上循環(huán)(框12)開始。片簡單是含有樣本或像素的圖像部分。如框14中所指示的,首先,任何恒定顏色通道被尋找。隨后群集在框16中被尋找,在框18中被編碼并被添加到調(diào)色板24。具有恒定顏色的任何群集可還被跳過但被同樣編碼。我們可還按群集來使用分離的跳過比特,其可能在一些情況中有幫助。在框20中,流程在片中的所有樣本或像素上循環(huán)。在框22中,群集或調(diào)色板條目被選擇。

      如框26中所指示的,調(diào)色板條目標識和余量被編碼。樣本或像素余量值30被存儲。該樣本或像素被存儲在調(diào)色板條目列表28中。

      在菱形32的檢查指示是否存在剩余的更多樣本或像素要處理,并且如果是這樣,流程迭代回到在片上循環(huán)。否則,流程結(jié)束。

      隨著所描述的不同在每個群集中編碼,調(diào)色板的更好壓縮可被獲得,并且這將使對于壓縮的成功率大體上更高,并且對于顏色緩沖器的壓縮硬件將更經(jīng)常成功,并且作為結(jié)果,在一些實施例中,功率使用將被減少。

      圖6是根據(jù)一實施例的處理系統(tǒng)100的框圖。在各種實施例中,系統(tǒng)100包含一個或更多處理器102和一個或更多圖形處理器108,并且可以是單個處理器桌上型系統(tǒng)、多處理器工作站系統(tǒng)、或具有大量處理器102或處理器核107的服務器系統(tǒng)。在一個實施例中,系統(tǒng)100是用于移動、手持、或嵌入式裝置中的使用的芯片上系統(tǒng)(soc)集成電路內(nèi)所合并的處理平臺。

      系統(tǒng)100的一實施例能包含,或被合并在包含游戲和媒體控制臺、移動游戲控制臺、手持游戲控制臺、或線上游戲控制臺的游戲控制臺和基于服務器的游戲平臺內(nèi)。在一些實施例中,系統(tǒng)100是移動電話、智能電話、平板計算裝置或移動因特網(wǎng)裝置。數(shù)據(jù)處理系統(tǒng)100能還包含、耦合于或被集成在可穿戴裝置內(nèi),諸如智能手表可穿戴裝置、智能眼部可穿戴裝置,增強現(xiàn)實裝置、或虛擬現(xiàn)實裝置。在一些實施例中,數(shù)據(jù)處理系統(tǒng)100是具有一個或更多處理器102和由一個或更多圖形處理器108所生成的圖形接口的機頂盒裝置或電視。

      在一些實施例中,所述一個或更多處理器102各自包含用于處理當被執(zhí)行時執(zhí)行對于系統(tǒng)和用戶軟件的操作的指令的一個或更多處理器核107執(zhí)行。在一些實施例中,所述一個或更多處理器核107中的每個處理器核107配置成處理特定指令集109。在一些實施例中,指令集109可促進復雜指令集計算(cisc)、精簡指令集計算(risc)、或經(jīng)由超長指令字(vliw)的計算。多個處理器核107可各自處理不同指令集109,其可包含用于促進其它指令集的仿真的指令。處理器核107可還包含其它處理裝置,諸如數(shù)字信號處理器(dsp)。

      在一些實施例中,處理器102包含高速緩存存儲器104。取決于架構(gòu),處理器102能具有單個內(nèi)部高速緩存或多個級別的內(nèi)部高速緩存。在一些實施例中,高速緩存存儲器在處理器102的各種組件之中被共享。在一些實施例中,處理器102還使用外部高速緩存(例如,級別-3(l3)高速緩存或最后級別高速緩存(llc))(未示出),其可使用已知高速緩存一致技術(shù)在處理器核107之中被共享。寄存器堆106被另外包含在處理器102中,其可包含用于存儲不同類型的數(shù)據(jù)的不同類型的寄存器(例如,整數(shù)寄存器、浮點寄存器、狀態(tài)寄存器、以及指令指針寄存器)。一些寄存器可以是通用寄存器,而其它寄存器可特定于處理器102的設計。

      在一些實施例中,處理器102被耦合到處理器總線110以傳送系統(tǒng)100中處理器102和其它組件之間的通信信號,諸如地址、數(shù)據(jù)、或控制信號。在一個實施例中,系統(tǒng)100使用示范性“集線器”系統(tǒng)架構(gòu),包含存儲器控制器集線器116和輸入輸出(i/o)控制器集線器130。存儲器控制器集線器116促進系統(tǒng)100的存儲器裝置和其它組件之間的通信,而i/o控制器集線器(ich)130提供經(jīng)由本地i/o總線到i/o裝置的連接。在一個實施例中,存儲器控制器集線器116的邏輯被集成在處理器內(nèi)。

      存儲器裝置120能是動態(tài)隨機訪問存儲器(dram)裝置,靜態(tài)隨機訪問存儲器(sram)裝置,閃速存儲器裝置,相變存儲器裝置,或具有適合性能以充當處理存儲器的某一其它存儲器裝置。在一個實施例中,存儲器裝置120能作為系統(tǒng)100的系統(tǒng)存儲器來操作,以存儲用于當所述一個或更多處理器102執(zhí)行應用或處理時的使用的指令121和數(shù)據(jù)122。存儲器控制器集線器116還與可選外部圖形處理器112耦合,其可與用于執(zhí)行圖形和媒體操作的處理器102中的所述一個或更多圖形處理器108通信。

      在一些實施例中,ich130使得外圍設備能夠經(jīng)由高速i/o總線來連接到存儲器裝置120和處理器102。i/o外圍設備包含但不限于,音頻控制器146、固件接口128、無線收發(fā)器126(例如,wi-fi、藍牙)、數(shù)據(jù)存儲裝置124(例如,硬盤驅(qū)動器、閃速存儲器、等等)、和用于將遺留(例如,個人系統(tǒng)2(ps/2))裝置耦合到所述系統(tǒng)的遺留i/o控制器140。一個或更多通用串行總線(usb)控制器142連接輸入裝置,諸如鍵盤和鼠標144組合。網(wǎng)絡控制器134可還耦合到ich130。在一些實施例中,高性能網(wǎng)絡控制器(未示出)耦合到處理器總線110。將被理解的是,所示出的系統(tǒng)110是示范性的而不是限制性的,因為被不同配置的其它類型的數(shù)據(jù)處理系統(tǒng)也可被使用。例如,i/o控制器集線器130可被集成在所述一個或更多處理器102內(nèi),或存儲器控制器集線器116和i/o控制器集線器130可被集成到謹慎的(discreet)外部圖形處理器中,諸如外部圖形處理器112。

      圖7是具有一個或更多處理器核202a-202n、集成存儲器控制器214、和集成圖形處理器208的處理器200的一實施例的框圖。具有與本文中任一其它圖的元件相同的引用標號(或名稱)的圖7的那些元件能以與本文別處所描述的那種方式類似的任一方式來操作或起作用,但不限于此。處理器200能包含直到并包含由虛線框所表示的另外核202n的另外核。處理器核202a-202n的每個包含一個或更多內(nèi)部高速緩存單元204a-204n。在一些實施例中,每個處理器核還具有到一個或更多共享高速緩存單元206的訪問。

      內(nèi)部高速緩存單元204a-204n和共享高速緩存單元206表示處理器200內(nèi)的高速緩存存儲器層級。所述高速緩存存儲器層級可包含每個處理器核內(nèi)的至少一個級別的數(shù)據(jù)高速緩存和指令以及一個或更多級別的共享中間級別高速緩存,諸如級別2(l2)、級別3(l3)、級別4(l4)、或其它級別的高速緩存,其中外部存儲器之前最高級別的高速緩存被分類為llc。在一些實施例中,高速緩存一致邏輯維持各種高速緩存單元206和204a-204n之間的一致。

      在一些實施例中,處理器200可還包含系統(tǒng)代理核210和一個或更多總線控制器單元216的集合。所述一個或更多總線控制器單元216管理外圍設備總線的集合,諸如一個或更多外圍設備組件互連總線(例如,pci、pci高速)。系統(tǒng)代理核210為各種處理器組件提供管理功能性。在一些實施例中,系統(tǒng)代理核210包含用于管理到各種外部存儲器裝置(未示出)的訪問的一個或更多集成存儲器控制器214。

      在一些實施例中,處理器核202a-202n的一個或更多包含對于同時發(fā)生的多線程的支持。在此類實施例中,系統(tǒng)代理核210包含用于在多線程的處理期間協(xié)調(diào)并操作核202a-202n的組件。系統(tǒng)代理核210可另外包含功率控制單元(pcu),其包含用于調(diào)整圖形處理器208和處理器核202a-202n的功率狀態(tài)的組件和邏輯。

      在一些實施例中,處理器200另外包含用于執(zhí)行圖形處理操作的圖形處理器208。在一些實施例中,圖形處理器208與包含所述一個或更多集成存儲器控制器214的系統(tǒng)代理核210和共享高速緩存單元206的集合耦合。在一些實施例中,顯示器控制器211與圖形處理器208被耦合以驅(qū)動到一個或更多耦合的顯示器的圖形處理器輸出。在一些實施例中,顯示器控制器211可以是經(jīng)由至少一個互連與所述圖形處理器耦合的分離模塊,或可被集成在圖形處理器208或系統(tǒng)代理核210內(nèi)。

      在一些實施例中,基于環(huán)的互連單元212被用于耦合處理器200的內(nèi)部組件。然而,備選互連單元可被使用,諸如點到點互連、交換式(switched)互連、或其它技術(shù),包含本領(lǐng)域內(nèi)公知的技術(shù)。在一些實施例中,圖形處理器208經(jīng)由i/o鏈接213與環(huán)互連212耦合。

      示范性i/o鏈接213表示i/o互連的多個種類的至少一個種類,包含封裝上i/o互連,其促進各種處理器組件和諸如edram模塊的高性能嵌入式存儲器模塊218之間的通信。在一些實施例中,處理器核202-202n的每個處理器核和圖形處理器208使用嵌入式存儲器模塊218作為共享最后級別高速緩存。

      在一些實施例中,處理器核202a-202n是執(zhí)行相同指令集架構(gòu)的同質(zhì)核。在另一實施例中,處理器核202a-202n按照指令集架構(gòu)(isa)是異質(zhì)的,其中處理器核202a-n的一個或更多處理器核執(zhí)行第一指令集,而另一些核的至少一個核執(zhí)行不同指令集或第一指令集的子集。在一個實施例中,處理器核202a-202n按照微架構(gòu)是異質(zhì)的,其中具有相對更高功率消耗的一個或更多核與具有更低功率消耗的一個或更多功率核耦合。另外,處理器200能被實現(xiàn)在一個或更多芯片上或被實現(xiàn)為除了其它組件之外還具有所示出組件的soc集成電路。

      圖8是圖形處理器300的框圖,其可以是離散圖形處理單元,或者可以是與多個處理核集成的圖形處理器。在一些實施例中,圖形處理器經(jīng)由在圖形處理器上將i/o接口映射到寄存器的存儲器、并用放置到處理器存儲器中的命令進行通信。在一些實施例中,圖形處理器300包含用于訪問存儲器的存儲器接口314。存儲器接口314能是到本地存儲器、一個或更多內(nèi)部高速緩存、一個或更多共享外部高速緩存、和/或到系統(tǒng)存儲器的接口。

      在一些實施例中,圖形處理器300還包含用于將顯示器輸出數(shù)據(jù)驅(qū)動到顯示器裝置320的顯示器控制器302。顯示器控制器302包含對于用于顯示器和用戶接口元素或視頻的多個層的復合的一個或更多疊加平面的硬件。在一些實施例中,圖形處理器300包含用于將媒體編碼、解碼、或轉(zhuǎn)碼到、自、或于一個或更多媒體編碼格式之間的視頻編解碼器引擎306,所述一個或更多媒體編碼格式包含但不限于諸如mpeg-2的運動圖像專家組(mpeg)格式、諸如h.264/mpeg-4avc的高級視頻編碼(avc)格式、以及諸如jpeg和運動jpeg(mjpeg)格式的聯(lián)合圖像專家組(jpeg)格式、和電影&電視工程師協(xié)會(smpte)421m/vc-1。

      在一些實施例中,圖形處理器300包含用于執(zhí)行包含例如比特邊界塊轉(zhuǎn)移的二維(2d)光柵化器(rasterizer)操作的塊圖像轉(zhuǎn)移(blit)引擎304。然而,在一個實施例中,使用圖形處理引擎(gpe)310的一個或更多組件,2d圖形操作被執(zhí)行。在一些實施例中,圖形處理引擎310是用于執(zhí)行包含三維(3d)圖形操作和媒體操作的圖形操作的計算引擎。

      在一些實施例中,gpe310包含用于執(zhí)行3d操作的3d管線312,所述3d操作諸如使用在3d原始形狀(例如,方形、三角形、等等)上行動的處理功能來渲染三維圖像和景物。3d管線312包含可編程和固定功能元件,其執(zhí)行所述元件內(nèi)的各種任務和/或?qū)?zhí)行線程產(chǎn)出(spawn)到3d/媒體子系統(tǒng)315。雖然3d管線312能被用于執(zhí)行媒體操作,gpe310的一實施例還包含被特定用于執(zhí)行諸如視頻后處理和圖像增強的媒體操作的媒體管線316。

      在一些實施例中,媒體管線316包含用于執(zhí)行一個或更多專門的媒體操作的可編程邏輯單元或固定功能,所述一個或更多專門的媒體操作諸如代替、或代表視頻編解碼器引擎306的視頻解碼加速、視頻去除交織(de-interlacing)、和視頻編碼加速。在一些實施例中,媒體管線316另外包含用于產(chǎn)出用于3d/媒體子系統(tǒng)315上的執(zhí)行的線程之線程產(chǎn)出單元。所產(chǎn)出的線程執(zhí)行對于包含在3d/媒體子系統(tǒng)315中的一個或更多圖形執(zhí)行單元上的媒體操作的計算。

      在一些實施例中,3d/媒體子系統(tǒng)315包含用于執(zhí)行由3d管線312和媒體管線316所產(chǎn)出的線程的邏輯。在一個實施例中,所述管線將線程執(zhí)行請求發(fā)送到3d/媒體子系統(tǒng)315,其包含用于將各種請求仲裁并分派到可用線程執(zhí)行資源的線程分派邏輯。所述執(zhí)行資源包含用于處理3d和媒體線程的圖形執(zhí)行單元的陣列。在一些實施例中,3d/媒體子系統(tǒng)315包含對于線程指令和數(shù)據(jù)的一個或更多內(nèi)部高速緩存。在一些實施例中,所述子系統(tǒng)還包含用于在線程之間共享數(shù)據(jù)和用于存儲輸出數(shù)據(jù)的共享存儲器,其包含寄存器和可尋址存儲器。

      圖9是依照一些實施例的圖形處理器的圖形處理引擎410的框圖。在一個實施例中,gpe410是圖8中所示出的gpe310的版本。具有與本文中任一其它圖的元件相同的引用標號(或名稱)的圖9的那些元件能以與本文別處所描述的那種方式類似的任一方式來操作或起作用,但不限于此。

      在一些實施例中,gpe410與命令流傳送器(streamer)403耦合,其將命令流提供給gpe3d和媒體管線412、416。在一些實施例中,命令流傳送器403被耦合到存儲器,其能是系統(tǒng)存儲器、或共享和內(nèi)部高速緩存存儲器的一個或更多高速緩存存儲器。在一些實施例中,命令流傳送器403從所述存儲器接收命令并將所述命令發(fā)送到3d管線412和/或媒體管線416。所述命令是從環(huán)緩沖器提取的指示,所述環(huán)緩沖器存儲對于3d和媒體管線412、416的命令。在一個實施例中,所述環(huán)緩沖器能另外包含存儲成批的多個命令的批命令緩沖器。3d和媒體管線412、416通過經(jīng)由相應管線內(nèi)的邏輯來執(zhí)行操作或通過將一個或更多執(zhí)行線程分派到執(zhí)行單元陣列414來處理所述命令。在一些實施例中,執(zhí)行單元陣列414是可縮放的,使得所述陣列包含基于gpe410的目標功率和性能級別的可變數(shù)量的執(zhí)行單元。

      在一些實施例中,采樣引擎430與存儲器(例如,高速緩存存儲器或系統(tǒng)存儲器)和執(zhí)行單元陣列414耦合。在一些實施例中,采樣引擎430為執(zhí)行單元陣列414提供存儲器訪問機制,其允許執(zhí)行陣列414從存儲器讀圖形和媒體數(shù)據(jù)。在一些實施例中,采樣引擎430包含用于對于媒體執(zhí)行專門的圖像采樣操作的邏輯。

      在一些實施例中,采樣引擎430中的專門的媒體采樣邏輯包含去除噪聲/去除交織模塊432、運動估計模塊434、以及圖像縮放和過濾模塊436。在一些實施例中,去除噪聲/去除交織模塊432包含用于執(zhí)行所解碼視頻數(shù)據(jù)上的去除噪聲或去除交織算法的一個或更多算法的邏輯。所述去除交織邏輯將交織的視頻內(nèi)容的交替字段組合到視頻的單個幀中。所述去除噪聲邏輯減少或移除來自視頻和圖像數(shù)據(jù)的數(shù)據(jù)噪聲。在一些實施例中,所述去除噪聲邏輯和去除交織邏輯是運動適應的并基于視頻數(shù)據(jù)中所檢測運動的數(shù)量來使用空間或時間過濾。在一些實施例中,去除噪聲/去除交織模塊432包含專用運動檢測邏輯(例如,在運動估計引擎434內(nèi))。

      在一些實施例中,運動估計引擎434通過執(zhí)行諸如關(guān)于視頻數(shù)據(jù)的運動向量估計和預測的視頻加速功能來為視頻操作提供硬件加速。所述運動估計引擎確定描述連續(xù)視頻幀之間的圖像數(shù)據(jù)的變換的運動向量。在一些實施例中,圖形處理器媒體編解碼器使用視頻運動估計引擎434來執(zhí)行在宏塊級別處關(guān)于視頻的操作,否則這可能在計算上太密集以至于不能用通用處理器來執(zhí)行。在一些實施例中,運動估計引擎434一般對圖形處理器組件是可用的,以用于輔助對視頻數(shù)據(jù)內(nèi)運動的方向或量值(magnitude)敏感或適應的視頻解碼和處理功能。

      在一些實施例中,圖像縮放和過濾模塊436執(zhí)行圖像處理操作以增強所產(chǎn)生圖像和視頻的視覺質(zhì)量。在一些實施例中,縮放和過濾模塊436在將所述數(shù)據(jù)提供給執(zhí)行單元陣列414之前所述采樣操作期間處理圖像和視頻數(shù)據(jù)。

      在一些實施例中,gpe410包含數(shù)據(jù)端口444,其為圖形子系統(tǒng)提供另外機制以訪問存儲器。在一些實施例中,數(shù)據(jù)端口444促進存儲器訪問以用于包含渲染目標寫、恒定緩沖器讀、暫時(scratch)存儲器空間讀/寫、和媒體表面訪問的操作。在一些實施例中,數(shù)據(jù)端口444包含用于到存儲器的高速緩存訪問的高速緩存存儲器空間。高速緩存存儲器能夠是單個數(shù)據(jù)高速緩存或被分離成多個高速緩存以用于經(jīng)由數(shù)據(jù)端口來訪問存儲器的所述多個子系統(tǒng)(例如,渲染緩沖器高速緩存、恒定緩沖器高速緩存,等等)。在一些實施例中,在執(zhí)行單元陣列414中執(zhí)行單元上執(zhí)行的線程通過經(jīng)由耦合gpe410的子系統(tǒng)的每個的數(shù)據(jù)分布互連來交換信息而與數(shù)據(jù)端口通信。

      圖10是圖形處理器500的另一實施例的框圖。具有與本文中任一其它圖的元件相同的引用標號(或名稱)的圖10的元件能以與本文別處所描述的那種方式類似的任一方式來操作或起作用,但不限于此。

      在一些實施例中,圖形處理器500包含環(huán)互連502、管線前端504、媒體引擎537、和圖形核580a-580n。在一些實施例中,環(huán)互連502將圖形處理器耦合到其它處理單元,其包含其它圖形處理器或一個或更多通用處理器核。在一些實施例中,圖形處理器是集成在多核處理系統(tǒng)內(nèi)的許多處理器的一個。

      在一些實施例中,圖形處理器500經(jīng)由環(huán)互連502來接收成多批命令。進入的命令由管線前端504中的命令流傳送器503來解譯。在一些實施例中,圖形處理器500包含用于經(jīng)由圖形核580a-580n來執(zhí)行3d幾何處理和媒體處理的可縮放執(zhí)行邏輯。對于3d幾何處理命令,命令流傳送器503將命令供應給幾何管線536。對于至少一些媒體處理命令,命令流傳送器503將所述命令供應給視頻前端534,其與媒體引擎537耦合。在一些實施例中,媒體引擎537包含用于視頻和圖像后處理的視頻質(zhì)量引擎(vqe)530和用于提供硬件加速的媒體數(shù)據(jù)編碼和解碼的多格式編碼/解碼(mfx)533引擎。在一些實施例中,幾何管線536和媒體引擎537各自對于由至少一個圖形核580a所提供的線程執(zhí)行資源來生成執(zhí)行線程。

      在一些實施例中,圖形處理器500包含可縮放線程執(zhí)行資源,其以各自具有多個子核550a-550n、560a-560n(有時被稱為核子切片(sub-slice))的模塊化的核580a-580n(有時被稱為核切片)為特征。在一些實施例中,圖形處理器500能具有任何數(shù)量的圖形核580a到580n。在一些實施例中,圖形處理器500包含具有至少第一子核550a和第二核子核560a的圖形核580a。在其它實施例中,圖形處理器是帶有單個子核(例如,550a)的低功率處理器。在一些實施例中,圖形處理器500包含多個圖形核580a-580n,其每個包含第一子核550a-550n的集合和第二子核560a-560n的集合。第一子核550a-550n的集合中的每個子核至少包含媒體/紋理采樣器554a-554n和執(zhí)行單元552a-552n的第一集合。第二子核560a-560n的集合中的每個子核至少包含執(zhí)行單元562a-562n和采樣器564a-564n的第二集合。在一些實施例中,每個子核550a-550n、560a-560n共享被共享資源570a-570n的集合。在一些實施例中,所述被共享資源包含共享高速緩存存儲器和像素操作邏輯。其它被共享資源可還被包含在圖形處理器的各種實施例中。

      圖11示出包含gpe的一些實施例中所采用的處理元件之陣列的線程執(zhí)行邏輯600。具有與本文中任一其它圖的元件相同的引用標號(或名稱)的圖11的元件能以與本文別處所描述的那種方式類似的任一方式來操作或起作用,但不限于此。

      在一些實施例中,線程執(zhí)行邏輯600包含像素著色器(shader)602、線程分派器604、指令高速緩存606、包含多個執(zhí)行單元608a-608n的可縮放執(zhí)行單元陣列、采樣器610、數(shù)據(jù)高速緩存612、和數(shù)據(jù)端口614。在一個實施例中,所包含的組件經(jīng)由鏈接到所述組件的每個組件的互連構(gòu)造來互連。在一些實施例中,線程執(zhí)行邏輯600包含通過數(shù)據(jù)端口614、采樣器610、執(zhí)行單元陣列608a-608n、和指令高速緩存606的一個或更多到存儲器(諸如系統(tǒng)存儲器或高速緩存存儲器)的一個或更多連接。在一些實施例中,每個執(zhí)行單元(例如,608a)是能執(zhí)行多個同時發(fā)生的線程并對于每個線程并行處理多個數(shù)據(jù)元素的單獨向量處理器。在一些實施例中,執(zhí)行單元陣列608a-608n包含任何數(shù)量單獨處理單元。

      在一些實施例中,執(zhí)行單元陣列608a-608n首要被用于執(zhí)行“著色器”程序。在一些實施例中,陣列608a-608n中的執(zhí)行單元執(zhí)行指令集,其包含對于許多標準3d圖形著色器指令的原生支持,使得來自圖形庫(例如,direct3d和opengl)的著色器程序用最小轉(zhuǎn)換來執(zhí)行。執(zhí)行單元支持頂點和幾何處理(例如,頂點程序、幾何程序、頂點著色器)、像素處理(例如,像素著色器、片段著色器)和通用處理(例如,計算和媒體著色器)。

      執(zhí)行單元陣列608a-608n中的每個執(zhí)行單元在數(shù)據(jù)元素的陣列上操作。數(shù)據(jù)元素的數(shù)量是“執(zhí)行大小”,或?qū)τ谥噶畹耐ǖ赖臄?shù)量。執(zhí)行通道是對于指令內(nèi)流控制、數(shù)據(jù)元素訪問、和掩蔽(masking)的執(zhí)行的邏輯單元。通道的數(shù)量可獨立于對于具體圖形處理器的浮點單元(fpu)或物理算數(shù)邏輯單元(alu)的數(shù)量。在一些實施例中,執(zhí)行單元608a-608n支持整數(shù)和浮點數(shù)據(jù)類型。

      執(zhí)行單元指令集包含單指令多數(shù)據(jù)(simd)指令。所述各種數(shù)據(jù)元素能在寄存器中被存儲為打包的(packed)數(shù)據(jù)類型,并且執(zhí)行單元將基于所述元素的數(shù)據(jù)大小來處理所述各種元素。例如,當在256-比特寬向量上操作時,該向量的256比特被存儲在寄存器中,并且執(zhí)行單元在作為四個分離的64-比特打包的數(shù)據(jù)元素(四倍長字(qw)大小數(shù)據(jù)元素)、八個分離的32-比特打包的數(shù)據(jù)元素(雙倍長字(dw)大小數(shù)據(jù)元素)、十六個分離的16-比特打包的數(shù)據(jù)元素(字(w)大小數(shù)據(jù)元素)、或三十二個分離的8-比特數(shù)據(jù)元素(字節(jié)(b)大小數(shù)據(jù)元素)的向量上操作。然而,不同向量寬度和寄存器大小是可能的。

      一個或更多內(nèi)部指令高速緩存(例如,606)被包含在線程執(zhí)行邏輯600中以對于執(zhí)行單元來高速緩存線程指令。在一些實施例中,一個或更多數(shù)據(jù)高速緩存(例如,612)被包含以在線程執(zhí)行期間高速緩存線程數(shù)據(jù)。在一些實施例中,采樣器610被包含以為3d操作提供紋理采樣并為媒體操作提供媒體采樣。在一些實施例中,采樣器610包含用于在將所采樣的數(shù)據(jù)提供給執(zhí)行單元之前采樣過程期間處理紋理或媒體數(shù)據(jù)的專門的紋理或媒體采樣功能性。

      在執(zhí)行期間,圖形和媒體管線經(jīng)由線程產(chǎn)出和分派邏輯將線程啟動請求發(fā)送到線程執(zhí)行邏輯600。在一些實施例中,線程執(zhí)行邏輯600包含本地線程分派器604,其仲裁來自圖形和媒體管線的線程啟動請求,并在一個或更多執(zhí)行單元608a-608n上例示所請求的線程。例如,幾何管線(例如,圖10的536)將頂點處理、曲面細分(tessellation)、或幾何處理線程分派到線程執(zhí)行邏輯600(圖11)。在一些實施例中,線程分派器604能還處理來自執(zhí)行的著色器程序的運行時間線程產(chǎn)出請求。

      一旦幾何對象的組已被處理并光柵化為像素數(shù)據(jù),像素著色器602被調(diào)用以進一步計算輸出信息,并促使結(jié)果被寫到輸出表面(例如,顏色緩沖器、深度緩沖器、模板緩沖器、等等)。在一些實施例中,像素著色器602演算(calculate)要跨所光柵化的對象被內(nèi)插(interpolated)的各種頂點屬性的值。在一些實施例中,像素著色器602隨后執(zhí)行應用編程接口(api)供應的像素著色器程序。為執(zhí)行所述像素著色器程序,像素著色器602經(jīng)由線程分派器604將線程分派到執(zhí)行單元(例如,608a)。在一些實施例中,像素著色器602使用采樣器610中的紋理采樣邏輯來訪問存儲器中所存儲的紋理映射中的紋理數(shù)據(jù)。輸入幾何數(shù)據(jù)和所述紋理數(shù)據(jù)上的算術(shù)操作從進一步處理中丟棄一個或更多像素,或?qū)τ诿總€幾何片段來計算像素顏色數(shù)據(jù)。

      在一些實施例中,數(shù)據(jù)端口614為線程執(zhí)行邏輯600提供存儲器訪問機制,線程執(zhí)行邏輯600將處理的數(shù)據(jù)輸出到存儲器以用于在圖形處理器輸出管線上處理。在一些實施例中,數(shù)據(jù)端口614包含或耦合到一個或更多高速緩存存儲器(例如,數(shù)據(jù)高速緩存612)以對于經(jīng)由數(shù)據(jù)端口的存儲器訪問來緩存數(shù)據(jù)。

      圖12是框圖,其示出根據(jù)一些實施例的圖形處理器指令格式700。在一個或更多實施例中,圖形處理器執(zhí)行單元支持具有多種格式的指令的指令集。實線框示出一般被包含在執(zhí)行單元指令中的組件,而虛線包含可選或僅被包含在所述指令的子集中的組件。在一些實施例中,所描述和所示出的指令格式700是宏指令,因為他們是被供應給執(zhí)行單元的指令,如相對于一旦指令被處理則因指令解碼而產(chǎn)生的微操作。

      在一些實施例中,圖形處理器執(zhí)行單元原生支持128-比特格式710的指令。64-比特緊致指令格式730對于基于所選擇的指令、指令選項、和操作數(shù)的數(shù)量的一些指令可用。原生128-比特格式710提供給所有指令選項的訪問,而一些選項和操作被約束在64-比特格式730中。64-比特格式730中可用的原生指令依實施例而改變。在一些實施例中,使用索引字段713中索引值的集合,使指令部分緊致。執(zhí)行單元硬件基于所述索引值來引用緊致表的集合,并使用緊致表輸出來重構(gòu)128-比特格式710中的原生指令。

      對于每種格式,指令操作碼712定義執(zhí)行單元要執(zhí)行的操作。執(zhí)行單元跨每個操作數(shù)的多個數(shù)據(jù)元素來并行執(zhí)行每個指令。例如,響應于添加指令,執(zhí)行單元跨表示紋理元素或圖片元素的每個顏色通道來執(zhí)行同時發(fā)生的添加操作。默認地,執(zhí)行單元跨所述操作數(shù)的所有數(shù)據(jù)通道來執(zhí)行每個指令。在一些實施例中,指令控制字段714能夠?qū)崿F(xiàn)某些執(zhí)行選項(諸如通道選擇(例如,預測)和數(shù)據(jù)通道順序(例如,打亂(swizzle)))上的控制。對于128-比特指令710,執(zhí)行大?。╡xec-size)字段716限制將被并行執(zhí)行的數(shù)據(jù)通道的數(shù)量。在一些實施例中,執(zhí)行大小字段716對于64-比特緊致指令格式730中的使用不是可用的。

      一些執(zhí)行單元指令具有多至三個的操作數(shù),其包含兩個源操作數(shù)src0722、src1722和一個目的地718。在一些實施例中,執(zhí)行單元支持雙目的地指令,其中所述目的地的一個被暗示。數(shù)據(jù)操縱指令能具有第三源操作數(shù)(例如,src2724),其中指令操作碼712確定源操作數(shù)的數(shù)量。指令的最后源操作數(shù)能是用該指令來傳遞的立即(immediate)(例如,硬編碼的)值。

      在一些實施例中,128-比特指令格式710包含訪問/地址模式信息726,其指定例如是直接寄存器尋址模式還是間接寄存器尋址模式被使用。當直接寄存器尋址模式被使用時,一個或更多操作數(shù)的寄存器地址由指令710中的比特來直接提供。

      在一些實施例中,128-比特指令格式710包含訪問/地址模式字段726,其指定對于該指令的地址模式和/或訪問模式。在一個實施例中,訪問模式要定義對于指令的數(shù)據(jù)訪問對齊。一些實施例支持包含16-字節(jié)對齊訪問模式和1-字節(jié)對齊訪問模式的訪問模式,其中訪問模式的字節(jié)對齊確定指令操作數(shù)的訪問對齊。例如,當在第一模式中時,指令710可對于源和目的地操作數(shù)使用字節(jié)對齊尋址,并且當在第二模式中時,指令710可對于所有源和目的地操作數(shù)使用16-字節(jié)對齊尋址。

      在一個實施例中,訪問/地址模式字段726的地址模式部分確定指令要使用直接還是間接尋址。當直接寄存器尋址模式被使用時,指令710中的比特直接提供一個或更多操作數(shù)的寄存器地址。當間接寄存器尋址模式被使用時,一個或更多操作數(shù)的寄存器地址可基于指令中的地址立即字段和地址寄存器值而被計算。

      在一些實施例中,指令基于操作碼712比特-字段而被分組以簡化操作碼解碼740。對于8-比特操作碼,比特4、5、和6允許執(zhí)行單元確定操作碼的類型。所示出的精確操作碼分組只是示例。在一些實施例中,移動和邏輯操作碼組742包含數(shù)據(jù)移動和邏輯指令(例如,移動(mov)、比較(cmp))。在一些實施例中,移動和邏輯組742共享五個最高有效位(msb),其中移動(mov)指令是0000xxxxb的形式,并且邏輯指令是0001xxxxb的形式。流控制指令組744(例如,呼叫、跳(jmp))包含0010xxxxb的形式(例如,0x20)的指令?;祀s指令組746包含指令的混合,其包含0011xxxxb的形式(例如,0x30)的同步指令(例如,等待、發(fā)送)。并行數(shù)學指令組748包含0100xxxxb的形式(例如,0x40)的分量式(component-wise)算數(shù)指令(例如,加、乘(mul))。并行數(shù)學組748跨數(shù)據(jù)通道來并行執(zhí)行算數(shù)操作。向量數(shù)學組750包含0101xxxxb的形式(例如,0x50)的算數(shù)指令(例如,dp4)。向量數(shù)學組執(zhí)行諸如對向量操作數(shù)的點積演算的算數(shù)。

      圖13是圖形處理器800的另一實施例的框圖。具有與本文中任一其它圖的元件相同的引用標號(或名稱)的圖13的元件能以與本文別處所描述的那種方式類似的任一方式來操作或起作用,但不限于此。

      在一些實施例中,圖形處理器800包含圖形管線820、媒體管線830、顯示器引擎840、線程執(zhí)行邏輯850、和渲染輸出管線870。在一些實施例中,圖形處理器800是包含一個或更多通用處理核的多核處理系統(tǒng)內(nèi)的圖形處理器。圖形處理器通過寄存器寫到一個或更多控制寄存器(未示出)或經(jīng)由發(fā)布(經(jīng)由環(huán)互連802)給圖形處理器800的命令來控制。在一些實施例中,環(huán)互連802將圖形處理器800耦合到其它處理組件,諸如其它圖形處理器或通用處理器。來自環(huán)互連802的命令由命令流傳送器803來解譯,其將指令供應給媒體管線830或圖形管線820的各個組件。

      在一些實施例中,命令流傳送器803指引頂點提取器(fetcher)805的操作,頂點提取器805從存儲器讀頂點數(shù)據(jù)并執(zhí)行由命令流傳送器803所提供的頂點處理命令。在一些實施例中,頂點提取器805將頂點數(shù)據(jù)提供給頂點著色器807,其執(zhí)行到每個頂點的點亮(lighting)操作和協(xié)調(diào)空間變換。在一些實施例中,頂點提取器805和頂點著色器807通過經(jīng)由線程分派器831將執(zhí)行線程分派到執(zhí)行單元852a、852b來執(zhí)行頂點處理指令。

      在一些實施例中,執(zhí)行單元852a、852b是具有用于執(zhí)行圖形和媒體操作的指令集的向量處理器的陣列。在一些實施例中,執(zhí)行單元825a、825b具有特定于每個陣列或在陣列間共享的附連l1高速緩存851。所述高速緩存能配置為數(shù)據(jù)高速緩存、指令高速緩存、或被分區(qū)以含有不同分區(qū)中的指令和數(shù)據(jù)的單個高速緩存。

      在一些實施例中,圖形管線820包含用于執(zhí)行3d對象的硬件加速曲面細分的曲面細分組件。在一些實施例中,可編程的外殼(hull)著色器811配置曲面細分操作。可編程域著色器817提供曲面細分輸出的后端評估。曲面細分器813在外殼著色器811的方向操作,并含有用于基于被提供為到圖形管線820的輸入的粗略幾何模型來生成詳細幾何對象的集合的專用邏輯。在一些實施例中,如果曲面細分未被使用,則曲面細分組件811、813、817能被繞過。

      在一些實施例中,完全幾何對象能經(jīng)由被分派到執(zhí)行單元852a、852b的一個或更多線程由幾何著色器819來處理,或能直接繼續(xù)進行到剪輯器(clipper)829。在一些實施例中,幾何著色器在整個幾何對象上操作,而不是如圖形管線的先前階段一樣在頂點或頂點的補片(patch/)上。如果曲面細分被禁用,則幾何著色器819從頂點著色器807接收輸入。在一些實施例中,如果曲面細分單元被禁用,則幾何著色器819是由幾何著色器程序可編程的以執(zhí)行幾何曲面細分。

      在光柵化之前,剪輯器829處理頂點數(shù)據(jù)。剪輯器829可以是固定功能剪輯器或具有剪輯和幾何著色器功能的可編程剪輯器。在一些實施例中,渲染輸出管線870中的光柵化器/深度873分派像素著色器以將幾何對象轉(zhuǎn)化成它們按像素的表示。在一些實施例中,像素著色器邏輯被包含在線程執(zhí)行邏輯850中。在一些實施例中,應用能繞過光柵化器873并經(jīng)由流傳送出單元823來訪問未光柵化的頂點數(shù)據(jù)。

      圖形處理器800具有互連總線、互連構(gòu)造、或允許在處理器的主要組件之中傳遞的數(shù)據(jù)和消息的某一其它互連機制。在一些實施例中,執(zhí)行單元852a、852b和關(guān)聯(lián)高速緩存851、紋理和媒體采樣器854、以及紋理/采樣器高速緩存858經(jīng)由數(shù)據(jù)端口856來互連以執(zhí)行存儲器訪問并與處理器的渲染輸出管線組件通信。在一些實施例中,采樣器854、高速緩存851、858和執(zhí)行單元852a、852b各自具有分離的存儲器訪問路徑。

      在一些實施例中,渲染輸出管線870含有將基于頂點的對象轉(zhuǎn)化成關(guān)聯(lián)的、基于像素的表示的光柵化器和深度測試組件873。在一些實施例中,光柵化器邏輯包含用于執(zhí)行固定功能三角和線光柵化的窗口器/掩蔽器單元。在一些實施例中,關(guān)聯(lián)的渲染高速緩存878和深度高速緩存879也是可用的。像素操作組件877對所述數(shù)據(jù)執(zhí)行基于像素的操作,盡管在一些實例中,與2d操作(例如,比特塊圖像隨混合轉(zhuǎn)移)關(guān)聯(lián)的像素操作由2d引擎841來執(zhí)行,或者由顯示器控制器843使用疊加顯示平面在顯示時間替代。在一些實施例中,共享l3高速緩存875對所有圖形組件可用,這允許數(shù)據(jù)的共享而沒有主系統(tǒng)存儲器的使用。

      在一些實施例中,圖形處理器媒體管線830包含媒體引擎837和視頻前端834。在一些實施例中,視頻前端834從命令流傳送器803接收管線命令。在一些實施例中,媒體管線830包含分離的命令流傳送器。在一些實施例中,視頻前端834在將命令發(fā)送到媒體引擎837之前處理媒體命令。在一些實施例中,媒體引擎337包含用于經(jīng)由線程分派器831來產(chǎn)出線程以用于到線程執(zhí)行邏輯850的分派的線程產(chǎn)出功能性。

      在一些實施例中,圖形處理器800包含顯示器引擎840。在一些實施例中,顯示器引擎840對處理器800是外部的并經(jīng)由環(huán)互連802、或某一其它互連總線或構(gòu)造與圖形處理器耦合。在一些實施例中,顯示器引擎840包含2d引擎841和顯示器控制器843。在一些實施例中,顯示器引擎840含有能獨立于3d管線來操作的專用邏輯。在一些實施例中,顯示器控制器843耦合于顯示器裝置(未示出),其可以是系統(tǒng)集成的顯示器裝置,如在膝上型計算機中那樣,或經(jīng)由顯示器裝置連接器來附連的外部顯示器裝置。

      在一些實施例中,圖形管線820和媒體管線830可配置以基于多個圖形和媒體編程接口來執(zhí)行操作,并不特定于任何一種應用編程接口(api)。在一些實施例中,對于圖形處理器的驅(qū)動器軟件將特定于具體圖形或媒體庫的api呼叫轉(zhuǎn)換成能由圖形處理器來處理的命令。在一些實施例中,對于來自khronosgroup的開放式圖形庫(opengl)和開放式計算語言(opencl)、來自微軟公司的direct3d庫,支持被提供;或者支持殼被提供給opengl和d3d兩者。對于開源計算機視覺庫(opencv),支持也可被提供。如果從未來api的管線到圖形處理器的管線的映射能被制作,則帶有兼容3d管線的未來api也將被支持。

      圖14a是框圖,其示出根據(jù)一些實施例的圖形處理器命令格式900。圖14b是框圖,其示出根據(jù)一實施例的圖形處理器命令序列910。圖14a中的實線框示出一般被包含在圖形命令中的組件,而虛線框包含可選的組件或僅被包含在所述圖形命令的子集中的組件。圖14a的示范性圖形處理器命令格式900包含用于標識命令的目標客戶端902、命令操作代碼(操作碼)904、和對于命令的相應數(shù)據(jù)906的數(shù)據(jù)字段。子操作碼905和命令大小908也被包含在一些命令中。

      在一些實施例中,客戶端902指定處理命令數(shù)據(jù)的圖形裝置的客戶端單元。在一些實施例中,圖形處理器命令解析器(parser)檢驗每個命令的客戶端字段以調(diào)節(jié)命令的進一步處理,并將命令數(shù)據(jù)路由到適當客戶端單元。在一些實施例中,圖形處理器客戶端單元包含存儲器接口單元、渲染單元、2d單元、3d單元、和媒體單元。每個客戶端單元具有處理命令的相應處理管線。一旦命令由客戶端單元所接收,客戶端單元就讀操作碼904,以及如果出現(xiàn)的話,則子操作碼905確定要執(zhí)行的操作。使用數(shù)據(jù)字段906中的信息,客戶端單元執(zhí)行命令。對于一些命令,顯式命令大小908被期望以指定命令的大小。在一些實施例中,命令解析器基于命令操作碼來自動確定命令的至少一些命令的大小。在一些實施例中,命令經(jīng)由多個雙倍長字來對齊。

      圖14b中的流程圖示出示范性圖形處理器命令序列910。在一些實施例中,以圖形處理器的一實施例為特征的數(shù)據(jù)處理系統(tǒng)的軟件或固件使用所示出的命令序列的版本來設立、執(zhí)行、和終止圖形操作的集合。樣本命令序列僅為示例的用途而被示出和描述,因為實施例不限于這些特定命令或于這個命令序列。此外,命令可作為命令序列中命令的批被發(fā)布,使得圖形處理器將至少部分并發(fā)地處理命令的序列。

      在一些實施例中,圖形處理器命令序列910可用管線沖刷(flush)命令912來開始以促使任何活動圖形管線完成對于管線的當前未決命令。在一些實施例中,3d管線922和媒體管線924不并發(fā)操作。管線沖刷被執(zhí)行以促使活動圖形管線完成任何未決命令。響應于管線沖刷,對于圖形處理器的命令解析器將暫停命令處理直到活動繪圖引擎完成未決操作為止,并且相應讀高速緩存被無效。可選地,渲染高速緩存中被標記為“臟”的任何數(shù)據(jù)能被沖刷到存儲器。在一些實施例中,管線沖刷命令912能被用于管線同步或在將圖形處理器放入低功率狀態(tài)。

      在一些實施例中,當命令序列要求圖形處理器在管線之間顯式交換時,管線選擇命令913被使用。在一些實施例中,管線選擇命令913在發(fā)布管線命令之前在執(zhí)行上下文內(nèi)僅被要求一次,除非上下文是要對于雙方管線發(fā)布命令。在一些實施例中,管線沖刷命令912經(jīng)由管線選擇命令913在管線交換之前立刻被要求。

      在一些實施例中,管線控制命令914對于操作配置圖形管線,并被用于編程3d管線922和媒體管線924。在一些實施例中,管線控制命令914對于活動管線配置管線狀態(tài)。在一個實施例中,管線控制命令914被用于管線同步和在處理一批命令之前從活動管線內(nèi)的一個或更多高速緩存存儲器清理數(shù)據(jù)。

      在一些實施例中,返回緩沖器狀態(tài)命令916被用于對于相應管線配置返回緩沖器的集合以寫數(shù)據(jù)。一些管線操作要求一個或更多返回緩沖器的分配、選擇或配置,在處理期間所述操作寫中間數(shù)據(jù)到其中。在一些實施例中,圖形處理器也使用一個或更多返回緩沖器來存儲輸出數(shù)據(jù)和來執(zhí)行交叉線程通信。在一些實施例中,返回緩沖器狀態(tài)916包含選擇返回緩沖器的大小和數(shù)量以用于管線操作的集合。

      命令序列中剩余的命令基于活動管線而對于操作不同?;诠芫€確定920,命令序列被特制(tailor)以用于用3d管線狀態(tài)930開始的3d管線922或在媒體管線狀態(tài)940開始的媒體管線924。

      對于3d管線狀態(tài)930的命令包含對于頂點緩沖器狀態(tài)、頂點元件狀態(tài)、恒定顏色狀態(tài)、深度緩沖器狀態(tài)、和在3d基元(primitive)命令被處理之前要被配置的其它狀態(tài)變量的3d狀態(tài)設置命令。這些命令的值至少部分基于在用的具體3dapi而被確定。在一些實施例中,3d管線狀態(tài)930命令還能夠選擇性禁用或繞開某些管線元件(如果那些元件將不被使用)。

      在一些實施例中,3d基元932命令被用于提交要由3d管線來處理的3d基元。經(jīng)由3d基元932命令被傳遞到圖形處理器的命令和所關(guān)聯(lián)參數(shù)被轉(zhuǎn)發(fā)到圖形管線中的頂點提取功能。頂點提取功能使用3d基元932命令數(shù)據(jù)來生成頂點數(shù)據(jù)結(jié)構(gòu)。頂點數(shù)據(jù)結(jié)構(gòu)被存儲在一個或更多返回緩沖器中。在一些實施例中,3d基元932命令被用于經(jīng)由頂點著色器來執(zhí)行3d基元上的頂點操作。為處理頂點著色器,3d管線922將著色器執(zhí)行線程分派到圖形處理器執(zhí)行單元。

      在一些實施例中,3d管線922經(jīng)由執(zhí)行934命令或事件而被觸發(fā)。在一些實施例中,寄存器寫觸發(fā)命令執(zhí)行。在一些實施例中,執(zhí)行經(jīng)由命令序列中的‘go’或‘kick’命令而被觸發(fā)。在一個實施例中,使用管線同步命令,命令執(zhí)行被觸發(fā)以通過圖形管線來沖刷命令序列。3d管線將對于3d基元來執(zhí)行幾何處理。一旦操作被完成,結(jié)果幾何對象就被光柵化,并且像素引擎就染色結(jié)果像素。用于控制像素著色和像素后端操作的另外的命令也可對于那些操作被包含。

      在一些實施例中,當執(zhí)行媒體操作時,圖形處理器命令序列910跟隨媒體管線924路徑。通常,對于媒體管線924的編程的方式和特定使用取決于要被執(zhí)行的媒體或計算操作。在媒體解碼期間,特定媒體解碼操作可被卸載(offload)到媒體管線。在一些實施例中,媒體管線能還被繞過,并且使用由一個或更多通用處理核所提供的資源,媒體解碼能被整體或部分執(zhí)行。在一個實施例中,媒體管線還包含對于通用圖形處理器單元(gpgpu)操作的元件,其中使用未顯式涉及圖形基元的渲染的計算著色器程序,圖形處理器被用于執(zhí)行simd向量操作。

      在一些實施例中,媒體管線924以與3d管線922類似的方式被配置。媒體管線狀態(tài)命令940的集合被分派或放置到命令隊列中媒體對象命令942之前。在一些實施例中,媒體管線狀態(tài)命令940包含用于配置將被用于處理媒體對象的媒體管線元件的數(shù)據(jù)。這包含用于配置媒體管線內(nèi)的視頻解碼和視頻編碼邏輯的數(shù)據(jù),諸如編碼或解碼格式。在一些實施例中,媒體管線狀態(tài)命令940還支持到含有一批狀態(tài)設置的“間接”狀態(tài)元素的一個或更多指針的使用。

      在一些實施例中,媒體對象命令942將指針供應給媒體對象以用于由媒體管線來處理。媒體對象包含含有要被處理的視頻數(shù)據(jù)的存儲器緩沖器。在一些實施例中,所有媒體管線狀態(tài)必須在發(fā)布媒體對象命令942之前是有效的。一旦管線狀態(tài)被配置并且媒體對象命令942被排隊,媒體管線924就經(jīng)由執(zhí)行命令944或等效執(zhí)行事件(例如,寄存器寫)而被觸發(fā)。來自媒體管線924的輸出可隨后被由3d管線922或媒體管線924所提供的操作后處理。在一些實施例中,gpgpu操作以與媒體操作類似的方式來配置并執(zhí)行。

      圖15示出根據(jù)一些實施例對數(shù)據(jù)處理系統(tǒng)1000的示范性圖形軟件架構(gòu)。在一些實施例中,軟件架構(gòu)包含3d圖形應用1010、操作系統(tǒng)1020、和至少一個處理器1030。在一些實施例中,處理器1030包含圖形處理器1032和一個或更多通用處理器核1034。圖形應用1010和操作系統(tǒng)1020各自在數(shù)據(jù)處理系統(tǒng)的系統(tǒng)存儲器1050中執(zhí)行。

      在一些實施例中,3d圖形應用1010含有包含著色器指令1012的一個或更多著色器程序。著色器語言指令可用高級別著色器語言,諸如高級別著色器語言(hlsl)或opengl著色器語言(glsl)。所述應用還包含適合于由通用處理器核1034來執(zhí)行的用機器語言的可執(zhí)行指令1014。所述應用還包含由頂點數(shù)據(jù)所定義的圖形對象1016。

      在一些實施例中,操作系統(tǒng)1020是來自微軟公司的microsoft?windows?操作系統(tǒng)、由所有權(quán)的類unix操作系統(tǒng)、或使用linux內(nèi)核的變體之開源的類unix操作系統(tǒng)。當direct3dapi在使用中時,操作系統(tǒng)1020使用前端著色器編譯器1024以將hlsl中的任何著色器指令1012編譯成低級別著色器語言。編譯可以是能執(zhí)行著色器預編譯的應用或剛好及時(just-in-time)(jit)編譯。在一些實施例中,高級別著色器在3d圖形應用1010的編譯期間被編譯成低級別著色器。

      在一些實施例中,用戶模式圖形驅(qū)動器1026含有用于將著色器指令1012轉(zhuǎn)化成硬件特定表示的后端著色器編譯器1027。當openglapi在使用中時,用glsl高級別語言的著色器指令1012被傳遞到用戶模式圖形驅(qū)動器1026以用于編譯。在一些實施例中,用戶模式圖形驅(qū)動器1026使用操作系統(tǒng)內(nèi)核模式功能1028以與內(nèi)核模式圖形驅(qū)動器1029通信。在一些實施例中,內(nèi)核模式圖形驅(qū)動器1029與圖形處理器1032通信以分派命令和指令。

      至少一個實施例的一個或更多方面可通過存儲在機器可讀介質(zhì)上的表示性代碼來實現(xiàn),所述表示性代碼表示和/或定義諸如處理器的集成電路內(nèi)的邏輯。例如,所述機器可讀介質(zhì)可包含表示該處理器內(nèi)各種邏輯的指令。當由機器來讀時,所述指令可促使所述機器構(gòu)建邏輯來執(zhí)行本文中所描述的技術(shù)。已知為“ip核”的此類表示對于集成電路是邏輯的可再使用單元,其可作為描述所述集成電路的結(jié)構(gòu)的硬件模型被存儲在有形的、機器可讀介質(zhì)上。所述硬件模型可被供應給各種用戶或制造設施,其在制造所述集成電路的構(gòu)建機器上加載所述硬件模型。所述集成電路可被構(gòu)建使得所述電路執(zhí)行與本文中所描述的任何實施例關(guān)聯(lián)描述的操作。

      圖16是框圖,其示出根據(jù)一實施例的可被用于制造用于執(zhí)行操作的集成電路的ip核開發(fā)系統(tǒng)1100。ip核開發(fā)系統(tǒng)1100可被用于生成能被合并到更大設計中或被用于構(gòu)筑整個集成電路(例如,soc集成電路)的模塊化的、可再使用的設計。設計設施1130能生成用高級別編程語言(例如,c/c++)的ip核設計的軟件仿真1110。軟件仿真1110能被用于設計、測試、和驗證該ip核的行為。寄存器轉(zhuǎn)移等級(rtl)設計能隨后從仿真模型1100被創(chuàng)建或被合成。rtl設計1115是集成電路的行為的抽象(abstraction),其對硬件寄存器之間的數(shù)字信號的流進行建模,包含使用建模的數(shù)字信號來執(zhí)行的關(guān)聯(lián)邏輯。除rtl設計1115之外,在邏輯級別或晶體管級別處的較低級別設計也可被創(chuàng)建、被設計、或合成。因此,初始設計和仿真的具體細節(jié)可變化。

      rtl設計1115或等效物可由設計設施進一步合成到硬件模型1120中,其可用硬件描述語言(hdl)、或物理設計數(shù)據(jù)的某一其它表示。hdl可被進一步仿真或測試以驗證ip核設計。使用非易失性存儲器1140(例如,硬盤、閃速存儲器、或任何非易失性存儲介質(zhì)),ip核設計能被存儲以用于到第三方構(gòu)建設施1165的運送。備選地,ip核設計可在有線連接1150或無線連接1160上被傳送(例如,經(jīng)由因特網(wǎng))。構(gòu)建設施1165可隨后構(gòu)造至少部分基于ip核設計的集成電路。所構(gòu)造的集成電路能被配置以執(zhí)行依照本文中所描述的至少一個實施例操作。

      圖17是框圖,其示出根據(jù)一實施例使用一個或更多ip核可被構(gòu)建的示范性芯片上系統(tǒng)集成電路1200。所述示范性集成電路包含一個或更多應用處理器1205(例如,cpu)、至少一個圖形處理器1210、并可另外包含圖像處理器1215和/或視頻處理器1220,其的任何一個可以是來自相同或多個不同設計設施的模塊化ip核。所述集成電路包含外圍設備或總線邏輯,包含usb控制器1225、uart控制器1230、spi/sdio控制器1235、和控制器1240。另外,所述集成電路能包含顯示器裝置1245,其被耦合到移動行業(yè)處理器接口(mipi)顯示器接口1255和高清多媒體接口(hdmi)控制器1250的一個或更多。存儲器可由包含閃速存儲器和閃速存儲器控制器的閃速存儲器子系統(tǒng)1260來提供。存儲器接口可經(jīng)由用于到sdram或sram存儲器裝置的訪問的存儲器控制器1265來提供。一些集成電路另外包含嵌入式安全引擎1270。

      另外,其它邏輯和電路可被包含在集成電路1200的處理器中,包含另外圖形處理器/核、外圍設備接口控制器、或通用處理器核。

      以下條款(clause)和/或示例屬于進一步實施例:

      一個示例實施例可以是一種方法,包括:使用基于調(diào)色板的編碼器來壓縮顏色值、尋找顏色值的群集并相對于具有預定義特性的顏色值來編碼群集內(nèi)的顏色值、以及編碼具有帶有恒定顏色值的像素或樣本的群集。所述方法可還包含其中所述預定義特性是帶有群集內(nèi)最小顏色值的樣本或像素。所述方法可還包含編碼顏色通道恒定的事實。所述方法可還包含最小化成本的相對帶有群集的所述預定義特性的樣本或像素來編碼余量。所述方法可還包含避免對帶有恒定顏色的群集來編碼余量。所述方法可還包含對每個通道使用一比特來編碼它是否是恒定顏色。所述方法可還包含按顏色通道來提供比特的組以指示每通道需要多少余量比特。所述方法可還包含其中尋找群集包含使用k-均值群集化算法。所述方法可還包含尋找顏色周圍的最小限定框。所述方法可還包含從調(diào)色板取第一顏色;在所述第一顏色周圍建設群集;并隨后如果第二顏色依據(jù)閾值而與所述第一顏色不同,則形成包含所述第二顏色的第二群集;以及適配確保顏色到所述第一和第二群集中。

      在另一示例中,實施例可以是一個或更多存儲指令的非暫態(tài)計算機可讀介質(zhì),所述指令由處理器所執(zhí)行以執(zhí)行包括以下操作的序列:使用基于調(diào)色板的編碼器來壓縮顏色值、尋找顏色值的群集并相對于具有預定義特性的顏色值來編碼群集內(nèi)的顏色值、以及編碼具有帶有恒定顏色值的像素或樣本的群集。所述介質(zhì)可進一步存儲指令,其中所述預定義特性是帶有群集內(nèi)最小顏色值的樣本或像素。所述介質(zhì)可進一步存儲指令以執(zhí)行包含以下操作的序列:編碼顏色通道是恒定的事實。所述介質(zhì)可進一步存儲指令以執(zhí)行包含以下操作的序列:最小化成本的相對帶有群集的所述預定義特性的樣本或像素來編碼余量。所述介質(zhì)可進一步存儲指令以執(zhí)行包含以下操作的序列:避免對帶有恒定顏色的群集來編碼余量。所述介質(zhì)可進一步存儲指令以執(zhí)行包含以下操作的序列:對每個通道使用一比特來編碼它是否是恒定顏色。所述介質(zhì)可進一步存儲指令以執(zhí)行包含以下操作的序列:按顏色通道來提供比特的組以指示每通道需要多少余量比特。所述介質(zhì)可進一步存儲指令,其中尋找群集包含使用k-均值群集化算法。所述介質(zhì)可進一步存儲指令以執(zhí)行包含以下操作的序列:尋找顏色周圍的最小限定框。所述介質(zhì)可進一步存儲指令以執(zhí)行包含以下操作的序列:從調(diào)色板取第一顏色;在所述第一顏色周圍建設群集;并隨后如果第二顏色依據(jù)閾值而與所述第一顏色不同,則形成包含所述第二顏色的第二群集;以及適配確保顏色到所述第一和第二群集中。

      另一示例實施例可以是一種設備,包括:處理器,用于使用基于調(diào)色板的編碼器來壓縮顏色值、尋找顏色值的群集并相對于具有預定義特性的顏色值來編碼群集內(nèi)的顏色值、以及編碼具有帶有恒定顏色值的像素或樣本的群集;以及存儲裝置,其被耦合到所述處理器。所述設備可包含其中所述預定義特性是帶有群集內(nèi)最小顏色值的樣本或像素。所述設備可包含所述處理器,用于編碼顏色通道是恒定的事實。所述設備可包含所述處理器,用于最小化成本的相對帶有群集的所述預定義特性的樣本或像素來編碼余量。所述設備可包含所述處理器,用于避免對帶有恒定顏色的群集來編碼余量。所述設備可包含所述處理器,用于對每個通道使用一比特來編碼它是否是恒定顏色。所述設備可包含所述處理器,用于按顏色通道來提供比特的組以指示每通道需要多少余量比特。所述設備可包含所述處理器,用于使用k-均值群集化算法來尋找群集。所述設備可包含所述處理器,用于尋找顏色周圍的最小限定框。所述設備還包含所述處理器,用于從調(diào)色板取第一顏色;在所述第一顏色周圍建設群集;并隨后如果第二顏色依據(jù)閾值而與所述第一顏色不同,則形成包含所述第二顏色的第二群集;以及適配確保顏色到所述第一和第二群集中。

      本文中所描述的圖形處理技術(shù)可被實現(xiàn)在各種硬件架構(gòu)中。例如,圖形功能性可被集成在芯片集內(nèi)。備選地,離散圖形處理器可被使用。還如另一實施例,圖形功能可由包含多核處理器的通用處理器來實現(xiàn)。

      貫穿本說明書參考“一個實施例”或“一實施例”意味著連同該實施例所描述的具體特征、結(jié)構(gòu)、或特性被包含在涵蓋在本公開內(nèi)的至少一個實現(xiàn)中。因此,短語“一個實施例”或“在一實施例中”的出現(xiàn)不必要指的是相同實施例。此外,所述具體特征、結(jié)構(gòu)、或特性可以不同于所示出的具體實施例的其它適合形式來制定(institute),并且所有此類形式可被涵蓋在本應用的權(quán)利要求之內(nèi)。

      雖然有限數(shù)量的實施例已被描述,但本領(lǐng)域那些技術(shù)人員將理解來自其的眾多修改和變型。隨附的權(quán)利要求旨在覆蓋如落入本公開的真正精神和范疇之內(nèi)的所有此類修改和變型。

      當前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1