TWI609350B - 分群調色板壓縮技術 - Google Patents

分群調色板壓縮技術 Download PDF

Info

Publication number
TWI609350B
TWI609350B TW105103305A TW105103305A TWI609350B TW I609350 B TWI609350 B TW I609350B TW 105103305 A TW105103305 A TW 105103305A TW 105103305 A TW105103305 A TW 105103305A TW I609350 B TWI609350 B TW I609350B
Authority
TW
Taiwan
Prior art keywords
color
cluster
processor
pixel
channel
Prior art date
Application number
TW105103305A
Other languages
English (en)
Other versions
TW201702984A (zh
Inventor
穆勒 托瑪斯G 亞肯尼
吉姆K 尼爾森
Original Assignee
英特爾公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 英特爾公司 filed Critical 英特爾公司
Publication of TW201702984A publication Critical patent/TW201702984A/zh
Application granted granted Critical
Publication of TWI609350B publication Critical patent/TWI609350B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/56Extraction of image or video features relating to colour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/64Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/94Vector quantisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box

Description

分群調色板壓縮技術
本發明係有關於分群調色板壓縮技術。
發明背景
往來於記憶體之流量為電腦系統中的最大功率消耗者。因此,極為重要的是開發減少記憶體業務量之技術。
減少因記憶體業務量之功率消耗的一種方式為使用快取記憶體階層,而另一種方式為使用所傳送資料的不同類型之壓縮。
依據本發明之一實施例,係特地提出一種方法,其包含:使用一基於調色板之編碼器壓縮色值;找出色值之群集且相於具有一預定特性之一色值編碼該群集內之色值;以及編碼具有帶恆定色值之像素或樣本之群集。
B1、B2‧‧‧最小框
D1、D2‧‧‧暗色圓圈
12~22、26、42、44、48、54、58‧‧‧方塊
24‧‧‧調色板
28‧‧‧調色板條目清單
30‧‧‧樣本或像素殘餘值
32、46、50、52、56、60、62‧‧‧菱形塊
34、40‧‧‧序列
100‧‧‧處理系統/系統/資料處理系統
102、200、1030‧‧‧處理器
104‧‧‧快取記憶體
106‧‧‧暫存器檔案
107‧‧‧處理器核心
108、300、500、800、1032、1210‧‧‧圖形處理器
109‧‧‧指令集
110‧‧‧處理器匯流排
112‧‧‧外部圖形處理器
116‧‧‧記憶體控制器集線器
120‧‧‧記憶體裝置
121‧‧‧指令
122、906‧‧‧資料
124‧‧‧資料儲存裝置
126‧‧‧無線收發器
128‧‧‧韌體介面
130‧‧‧輸入輸出(I/O)控制器集線器/I/O控制器集線器 (ICH)/ICH
134‧‧‧網路控制器
140‧‧‧舊式I/O控制器
142‧‧‧通用串列匯流排(USB)控制
144‧‧‧鍵盤及滑鼠
146‧‧‧音訊控制器
202A~202N‧‧‧處理器核心
204A~204N‧‧‧內部快取記憶體單元
206‧‧‧共用快取記憶體單元
208‧‧‧整合式圖形處理器
210‧‧‧系統代理器核心/圖形處理器
211、302、843‧‧‧顯示控制器
212‧‧‧環基互連單元/環互連
213‧‧‧I/O鏈路
214‧‧‧整合式記憶體控制器
216‧‧‧匯流排控制器單元
218‧‧‧嵌入式記憶體模組
304‧‧‧區塊影像傳送(BLIT)引擎
306‧‧‧視訊編解碼器引擎
310‧‧‧圖形處理引擎(GPE)/GPE
312、922‧‧‧3D管線
314‧‧‧記憶體介面
315‧‧‧3D/媒體子系統
316、416、924‧‧‧媒體管線
320、1245‧‧‧顯示裝置
403、503、803‧‧‧命令流轉化器
410‧‧‧圖形處理引擎/GPE
412‧‧‧GPE 3D管線
414‧‧‧執行單元陣列
430‧‧‧取樣引擎
432‧‧‧解雜訊/解交錯模組
434‧‧‧運動估計模組
436‧‧‧影像縮放及濾波模組/縮放及濾波模組
444、614、856‧‧‧資料埠
502、802‧‧‧環互連
504‧‧‧管線前端
530‧‧‧視訊品質引擎(VQE)
533‧‧‧多格式編碼/解碼(MFX)
534、834‧‧‧視訊前端
536‧‧‧幾何管線
537、837‧‧‧媒體引擎
550A‧‧‧子核心/第一子核心
550N、560N‧‧‧子核心
552A~552N‧‧‧第一組執行單元
554A~554N‧‧‧媒體/紋理取樣器
560A‧‧‧子核心/第二核心子核心
562A~562N‧‧‧第二組執行單元
564A~564N、610‧‧‧取樣器
570A~570N‧‧‧共用資源
580A~580N‧‧‧圖形核心/模組化核心
600、850‧‧‧執行緒執行邏輯
602‧‧‧像素著色器
604、831‧‧‧執行緒調度器
606‧‧‧指令快取記憶體/內部指令快取記憶體
608A~608D、608N、608N-1‧‧‧執行單元/執行單元陣列
612‧‧‧資料快取記憶體
700‧‧‧指令格式
710‧‧‧128位元格式/本機128位元格式
712‧‧‧指令運算碼
713‧‧‧索引欄位
714‧‧‧指令控制欄位
716‧‧‧執行大小欄位
718‧‧‧目的地
720‧‧‧src0
722‧‧‧src1
724‧‧‧SRC2
726‧‧‧存取/位址模式資訊
730‧‧‧64位元緊密指令格式/64位元格式
740‧‧‧運算碼解碼
742‧‧‧移動及邏輯運算碼群組/移動及邏輯群組
744‧‧‧流量控制指令群組
746‧‧‧雜項指令群組
748‧‧‧並行數學指令群組/並行數學群組
750‧‧‧向量數學群組
805‧‧‧頂點擷取器
807‧‧‧頂點著色器
811‧‧‧可規劃外殼著色器/鑲嵌組件
813‧‧‧鑲嵌器/鑲嵌組件
817‧‧‧可規劃域著色器/鑲嵌組件
819‧‧‧幾何著色器
820‧‧‧圖形管線
823‧‧‧串流輸出單元
829‧‧‧裁剪器
830‧‧‧媒體管線/圖形處理器媒體管線
840‧‧‧顯示引擎
841‧‧‧2D引擎
851‧‧‧L1快取記憶體/快取記憶體
852A、852B‧‧‧執行單元
854‧‧‧紋理及媒體取樣器/取樣器
858‧‧‧紋理/取樣器快取記憶體/快取記憶體
870‧‧‧渲染器輸出管線
873‧‧‧光柵化器/深度/光柵化器及深度測試組件
875‧‧‧共用L3快取記憶體
877‧‧‧像素操作組件
878‧‧‧渲染器快取記憶體
879‧‧‧深度快取記憶體
900‧‧‧圖形處理器命令格式
902‧‧‧目標用戶端
904‧‧‧命令操作碼
905‧‧‧子運算碼
908‧‧‧命令大小
910‧‧‧圖形處理器命令序列
912‧‧‧管線排清命令
913‧‧‧管線選擇命令
914‧‧‧管線控制命令
916‧‧‧回覆緩衝區狀態命令
920‧‧‧管線判定
930‧‧‧3D管線狀態
932‧‧‧3D基元
934、944‧‧‧執行
940‧‧‧媒體管線狀態/媒體管線狀態命令
942‧‧‧媒體物件命令
1000‧‧‧資料處理系統
1010‧‧‧3D圖形應用程式/圖形應用程式
1012‧‧‧著色器指令
1014‧‧‧可執行指令
1016‧‧‧圖形物件
1020‧‧‧作業系統
1024‧‧‧前端著色器編譯器
1026‧‧‧使用者模式圖形驅動器
1027‧‧‧後端著色器編譯器
1028‧‧‧作業系統內核模式功能
1029‧‧‧內核模式圖形驅動器
1034‧‧‧通用處理器核心
1050‧‧‧系統記憶體
1100‧‧‧IP核心開發系統
1110‧‧‧軟體模擬
1115‧‧‧RTL設計
1120‧‧‧硬體模型
1130‧‧‧設計設施
1140‧‧‧非依電性記憶體
1150‧‧‧有線連接
1160‧‧‧無線連接
1165‧‧‧第三方製造設施/製造設施
1200‧‧‧系統單晶片積體電路
1205‧‧‧應用程式處理器
1215‧‧‧影像處理器
1220‧‧‧視訊處理器
1225‧‧‧USB控制器
1230‧‧‧UART控制器
1235‧‧‧SPI/SDIO控制器
1240‧‧‧I2S/I2C控制器
1250‧‧‧高清晰度多媒體介面(HDMI)控制器
1255‧‧‧行動工業處理器介面(MIPI)顯示介面
1260‧‧‧快閃記憶體子系統
1265‧‧‧記憶體控制器
1270‧‧‧嵌入式保全引擎
關於以下圖式來描述一些實施例:圖1為根據一個實施例的調色板壓縮之繪圖; 圖2為根據一個實施例的利用分群的調色板壓縮之繪圖;圖3為用於一個實施例之流程圖;圖4為根據一個實施例的分群演算法之繪圖;圖5為一個假想實例中的紅色通道及綠色通道之圖表;圖6為根據一個實施例的處理系統之方塊圖;圖7為根據一個實施例的處理器之方塊圖;圖8為根據一個實施例的圖形處理器之方塊圖;圖9為根據一個實施例的圖形處理引擎之方塊圖;圖10為圖形處理器之另一實施例之方塊圖;圖11為根據一個實施例的執行緒執行之繪圖;圖12為根據一些實施例的圖形處理器指令格式之方塊圖;圖13為圖形處理器之另一實施例之方塊圖;圖14A為根據一些實施例的圖形處理器命令格式之方塊圖;圖14B為例示根據一些實施例的圖形處理器命令序列之方塊圖;圖15為根據一些實施例的示範性圖形軟體架構之繪圖;圖16為例示根據一些實施例的IP核心開發系統之方塊圖;以及圖17為展示根據一些實施例的示範性單晶片系統積體電路之方塊圖。
較佳實施例之詳細說明
對於所渲染影像之某些區域而言,壓縮-解壓縮 (編碼解碼器)之最佳選擇係使用基於調色板之編碼解碼器。基於調色板之壓縮可基於分群,此分群使得實際調色板小得多以便儲存,繼而改良壓縮成功率。
調色板本身為基於調色板之編碼解碼器中整個壓縮表示之較大部分。調色板可使用分群方法並藉由跳過編碼恆定的色彩通道兩者來壓縮。
手下的任務為:(i)收集圖塊中之所有單個色彩且將此等色彩儲存在調色板中,且(ii)對此調色板之每一樣本/像素指定索引。圖1中描繪的所收集資料涉及轉換色彩中之每一者(在此狀況下此等色彩僅為三種色彩),藉由代碼或索引(在此實例中,為0、1或2)來識別每一色彩,且產生調色板,該調色板展示具有可利用色彩(在此狀況下4種)之調色板的哪些色彩(3種)實際上正在使用。
在此處理結束時,將儲存調色板所需的位元之總數連同調色板索引一起計數。隨後,檢查判定此數目之位元是否符合壓縮單元之位元預算。此檢查可涉及判定所建議壓縮是否比原始格式產生更少數目之快取列。若是,則達成壓縮。
調色板自身儲存佔用比完全表示更少的位元組,且因此在一些狀況下此將使得壓縮成功率更高。此舉繼而將減少記憶體業務量並在一些實施例中將增加能量效率。
給定由N種色彩組成的基於調色板之編碼解碼器的情況下,儲存調色板且隨後每一像素/樣本需要k=ceil(log2N)個索引位元來「指向」調色板中。調色板中之 色彩經壓縮,因此此等色彩佔用更少空間。
例如,對8x4像素圖塊而言,其中每一色彩佔用32個位元(RGBA),未壓縮圖塊使用32*4=128個位元組。假定壓縮成64個位元組,亦即,需要512個位元。每一像素需要k個位元用於索引,亦即,總計需要32*k個位元。調色板中之每一色彩使用32個位元(與圖塊中之原始資料相同),且存在N種調色板色彩。總體而言,此總和為32*k+32*N,其小於或等於512。
在此狀況下,此意指k+N小於或等於16,及由此其意義在於使用k=4個位元,此在理論上使得可能在調色板中使用至多24種或16種不同的色彩。隨後,對調色板而言留下512-4*32或384個位元,且此意指N為調色板中之384/32或12種色彩。
然而,若能夠在調色板儲存16種色彩則可壓縮更多圖塊,且藉由使用調色板中色彩之壓縮,可達成此目標。或者,可使用k=5個位元,從而在調色板中得到(512-32*5)/32或11種色彩。因為每索引存在5個位元,所以可潛在使用具有至多32種色彩之調色板。然而,此僅可在調色板經壓縮的情況下進行。
作為第一種簡單技術,使用每個色彩通道一個位元來指示色彩在色彩通道之一者中是否恆定。若位元為1,則例如圖塊中之所有像素具有針對該通道之相同值。例如,所有紅色值可為23。在此狀況下,亦儲存恆定值,亦即,23。
例如,使用RGBA色空間,α(A)分量遍及圖塊常常為0,或遍及圖塊常常為255。若跳過單色通道,則針對恆定通道儲存8個位元,因為此等為針對RGBA之32個位元每個通道8個位元乘以4之值。針對四個通道中之每一者亦儲存跳過位元以指示該通道是否遭跳過。因此,總體而言,將額外12個位元儲存於具有一個恆定色彩之實例中,且因此調色板中之每一色彩現僅為24(3*8)個位元。
在k=5個位元之狀況下,相較於之前的11種色彩而言,調色板中N等於(512-12-32*5)/24=14.167種色彩,或捨去為14種色彩。
此種壓縮技術可稱為跳過位元技術。多於一個通道可為恆定的。若兩個通道為恆定的,則針對恆定通道儲存4個跳過位元及8+8個位元等等。
另外,可儲存調色板中之所有色彩之最小色值,且隨後編碼調色板中之色彩與此最小值色彩之間的差異。此等差異可常常利用較少位元來進行編碼。
然而,在許多狀況下,調色板編碼方法勝過其他編碼方法。此等狀況常常包括其中調色板中存在相異群組之色彩的圖塊。
例如,假定其中極暗灰色背景具有一位元之雜訊,則突然出現兩個白色像素。與最小值色彩(其將為暗灰色)及白色像素之差異為巨大的,且所有差異將利用白色像素與暗灰色像素之間的差異所需的同樣多的位元來編碼。因此,無壓縮可獲得。在此狀況下,僅存在破壞壓縮之可能 性的兩個像素。然而,此等情況例如常常在使用者介面中出現,且在此等像素為極可壓縮的情況下為有利的。
調色板可使用分群來壓縮。分群涉及找出兩種或兩種以上最小值(最低色值)色彩,且隨後相對於此等最小值色彩中之一者壓縮調色板中之每一色彩。在以上實例中,最小值暗灰色色彩可為一種最小值色彩,且白色色彩為一種最小值色彩。所有暗灰色色彩(稱為群集1)相對最小值暗灰色色彩來編碼,且兩種白色色彩(稱為群集2)相對於最小值白色色彩來編碼。
隨後跳過位元可用於每一群集。此亦可實際上更多地減少資料。
圖2中展示除色彩(現為群集)索引之外每樣本/像素使用殘餘位元之一個實施例的分群之實例。在圖2中,僅存在兩種紅色色彩(交叉影線及雙交叉影線)及一種藍色色彩(無影線)(使用索引0(針對藍色色彩)及1(針對兩個紅色色彩))。殘餘位元編碼兩個紅色色值中的一個與最小值色值之差異。在此實例中之調色板僅具有兩個色彩,其中變體紅色色彩之一經由殘餘位元指示。
存在找出群集之若干方式。假定僅想要找出兩個群集。在此狀況下,找出可充當「平均數」之兩種色彩。針對平均數的此等猜測愈好,方法將愈快地收斂。
在一個實施例中,可藉由找出剩餘色彩通道(例如,RGB或RGBA或RGA(若B恆定,則據此予以跳過))的空間中圍繞色彩之最小定界框來找出平均數。接著,假定最 小定界框在每一色彩維度上一分為二,則此產生許多個子框。接著,找出最接近於此最小定界框之每一拐角的色彩。挑選此等「拐角色彩」中之兩者,每一者在其子框中具有最多色彩。此等色彩為起始k平均數分群演算法之兩個平均數。
接著,應用k平均數分群之一或多個步驟。第一步驟係簡單地將每一色彩與其最接近(例如在RGB空間中最接近)的平均數相關聯。當此步驟已經進行時,調色板中之每一色彩已指定至一個平均數(其為來自調色板之色彩)。第二步驟將每一平均數更新為指定至該群集之所有色彩的平均值。隨後,若需要,則可多進行幾次步驟一及步驟二。
又一變體更具迭代性。此觀念係自調色板取出一種顏色,且圍繞該色彩建立群集,只要所增加的色彩足夠接近即可。若遇到遠離當前群集太遠的色彩,則分配新的群集色彩。利用其餘色彩繼續,且試圖將其合併至當前兩個群集中之任一者。隨後,可增加第三群集,等等。為允許此方法,每樣本/像素使用一個位元來發出是否儲存殘餘位元之信號。
因此,參考圖4,序列40可於軟體、韌體及/或硬體中實行。在軟體及韌體實施例中,其可由儲存於一或多個非暫時性電腦可讀媒體(諸如磁性、光學或半導體儲存器)中之電腦執行指令來實行。
序列以巡迴圖塊中之所有樣本或像素而開始,如方塊42中所示。隨後,檢查給定色彩與已在調色板中之色 彩之間的差異,如方塊44中所指示。若差異因為小於閾值而較小,如菱形塊46中所判定,隨後儲存殘餘位元並標記樣本,如方塊48中所指示。在50處指示殘餘位元。
另一方面,若差異並不小,則檢查在菱形框52處判定色彩是否已在調色板中。若否,則色彩儲存於調色板中,如方塊54中所指示。隨後,更新調色板,如在56處所指示,且流程迭代回方塊44。
若色彩已在調色板中,如在菱形塊52中所判定,則記錄調色板條目識別符(ID),如在方塊48中所指示。隨後,在調色板條目清單中提供樣本或像素,如在60處所指示。
在菱形塊62處之檢查判定是否留下任何樣本或像素。若是,流程迭代回方塊44,且另外,流程結束。
儲存新調色板條目或針對現存色彩之殘餘位元之間的選擇為任意的。在一般狀況下,可達成儲存位元之數目的增益,只要每條目的殘餘位元之數目加每樣本的一個位元低於調色板中全部色彩即可。
假定吾等具有帶N種色彩之圖塊,例如帶RGB之圖塊。不存在使此技術限制於任何特定色空間之事物。
在圖5中,給出僅視覺呈現紅色通道及綠色通道(R及G)之實例。在左側,標記紅色(R)軸及綠色(G)軸。此處存在8種像素色彩。藉由空心圓圈指示綠色像素或樣本,而藉由實心圓圈指示紅色像素或樣本。在中間,找出圍繞像素色彩之最小框。圓圈D處於左下拐角,且因此為此等8種像素色彩之最小值色彩。在中間,將最小框分成四個2x2 單元(以虛線指示)。在右側,針對每一單元計算最小框B1及B2,從而產生兩個群組。暗色圓圈D1及D2展示用於此等兩個群組之最小色彩。
在一個分群演算法中,以最小值色彩簡單地編碼每一非空單元(圖4中之暗色圓圈D1及D2),且隨後在該框內增加對殘值之一些編碼。此舉可用標準方法來進行。
此實例為二維的,但通常存在三個(RGB)或四個RGBA維度。因為對群組的最小色彩之編碼相當昂貴,所以有時有意義的是將兩個群組合二為一。亦可選擇將色彩轉變成另一色空間(諸如YCoGg),以便減少每一框之體積,因此減少殘餘位元之數目。
在迭代方案中,最少合併增大所得合併群組(框)之總體積的一對群組(框)。在RGB空間中,8個單元係藉由每個維度分割一次來獲得。每一群組在x、y或z中僅具有一個直接鄰接群組。存在在此處使用的若干試探法,包括以下實例:
1)將最小框與鄰接者合併,從而得到最小體積。將此迭代地進行直至成本降至低於達成成功壓縮之位元閾值。
2)將最小框與鄰接者合併,從而得到最大體積。將此迭代地進行直至成本降至低於達成成功壓縮之位元閾值。
合併僅需要繼續直至達到目標位元閾值(或此閾值以下)。亦存在每個維度分割多於一次之可能性。此產生更多單元,此等單元之最小框必須加以合併。每一單元可在此狀況下可獲得更多直接鄰接者。
在已產生兩個或兩個以上群集之後,儲存每一群集之最小值色彩。另外,如上文所提及,每個群集可儲存4個跳過位元,且若群集內之通道恆定,則該通道無需編碼殘餘位元。在此狀況下,每個通道儲存3個大小位元以指示每個通道需要多少殘餘位元。例如,若群集內針對紅色通道之最大值差異為13,則需要4個位元以儲存此等差異,且因此在此狀況下隨後將3個大小位元設定至4。
如圖3所示,壓縮使用分群之壓縮的序列34可於軟體、韌體及/或硬體中實行。在軟體及韌體實施例中,其可由儲存於一或多個非暫時性電腦可讀媒體(諸如,磁性、光學或半導體儲存器)中之電腦執行指令來實行。在一些狀況下,序列可例如藉由圖形處理單元來實行。
序列34以巡迴整個圖塊而開始(方塊12)。圖塊簡單地為含有樣本或像素之影像部分。找出第一任何恆定色彩通道,如方塊14中所指示。隨後在方塊16中找出群集,在方塊18中編碼且增加至調色板24。亦可跳過具有恆定色彩之任何群集但亦加以編碼。亦可每個群集使用單獨跳過位元,從而可在一些狀況下為有用的。在方塊20中,流程巡迴圖塊中之所有樣本或像素。在方塊22中選擇群集或調色板條目。
編碼調色板條目識別符及殘值,如方塊26中所指示。儲存樣本或像素殘餘值30。將樣本或像素儲存於調色板條目清單28中。
在菱形塊32處之檢查指示是否留下更多樣本或 像素以做處理,且若是,流程迭代回以巡迴整個圖塊。否則,流程結束。
利用所描述的每一群集中之差異編碼,可獲得調色板之較好壓縮,且此舉將使得壓縮成功率實質上更高,且用於色彩緩衝區之壓縮硬體將更常成功,且因此,將在一些實施例中減少功率使用。
圖6為根據實施例的處理系統100之方塊圖。在各種實施例中,系統100包括一或多個處理器102及一或多個圖形處理器108,且可為單處理器桌上型系統、多處理器工作站系統,或具有大量處理器102或處理器核心107之伺服器系統。在一個實施例中,系統100為處理平台,該處理平台併入於適用於行動裝置、手持式裝置或嵌入式裝置的單晶片系統(SoC)積體電路。
系統100之實施例可包括基於伺服器之遊戲平台、遊戲控制台或併入於其內,該遊戲控制台包括遊戲及媒體控制台、行動遊戲控制台、手持式遊戲控制台或線上遊戲控制台。在一些實施例中,系統100為行動電話、智慧型電話、平板計算裝置或行動網際網路裝置。資料處理系統100亦可包括可佩戴裝置、與其耦接或整合於其內,諸如智慧型腕表可佩戴裝置、智慧型眼鏡裝置、強化實境裝置或虛擬實境裝置。在一些實施例中,資料處理系統100為具有一或多個處理器102及藉由一或多個圖形處理器108所產生之圖形介面的電視或機上盒裝置。
在一些實施例中,一或多個處理器102各自包括 一或多個處理器核心107以處理指令,該等指令在執行時進行用於系統及使用者軟體之操作。在一些實施例中,一或多個處理器核心107中之每一者經組配來處理特定指令集109。在一些實施例中,指令集109可促進複雜指令集電腦(CISC)、精簡指令集計算(RISC)或經由極長指令字(VLIW)來計算。多個處理器核心107可各自處理不同指令集109,該指令集109可包括指令以促進其他指令集之模擬。處理器核心107亦可包括其他處理裝置,諸如數位信號處理器(DSP)。
在一些實施例中,處理器102包括快取記憶體104。取決於架構,處理器102可具有單一內部快取記憶體或多個層級之內部快取記憶體。在一些實施例中,快取記憶體在處理器102之各種組件當中共用。在一些實施例中,處理器102亦使用外部快取記憶體(例如,3級(L3)快取記憶體或末級快取記憶體(LLC))(未圖示),該外部快取記憶體可使用已知的快取一致性技術在處理器核心107當中共用。暫存器檔案106另外包括於處理器102中,其可包括用於儲存不同類型之資料的不同類型之暫存器(例如,整數暫存器、浮點暫存器、狀態暫存器及指令指標暫存器)。一些暫存器可為通用暫存器,而其他暫存器對處理器102之設計可為特定的。
在一些實施例中,處理器102係耦接至處理器匯流排110以在處理器102與系統100中之其他組件之間傳輸諸如位址、資料或控制信號之通訊信號。在一個實施例中,系統100使用示範性『集線器』系統架構,包括記憶體控制 器集線器116及輸入輸出(I/O)控制器集線器130。記憶體控制集線器116促進記憶體裝置與系統100之其他組件之間的通訊,而I/O控制器集線器(ICH)130提供經由局部I/O匯流排至I/O裝置之連接。在一個實施例中,記憶體控制集線器116之邏輯係整合於處理器內。
記憶體裝置120可為動態隨機存取記憶體(DRAM)裝置、靜態隨機存取記憶體(SRAM)裝置、快閃記憶體裝置、相變記憶體裝置或具有合適效能以充當處理程序記憶體的某種其他記憶體裝置。在一個實施例中,記憶體裝置120可作為用於系統100之系統記憶體來操作,以在一或多個處理器102執行應用程式或處理程序時儲存用於使用的資料122及指令121。記憶體控制器集線器116亦與任擇外部圖形處理器112耦接,該外部圖形處理器可與處理器102中之一或多個圖形處理器108通訊以進行圖形及媒體操作。
在一些實施例中,ICH 130允許周邊設備經由高速I/O匯流排連接至記憶體裝置120及處理器102。I/O周邊設備包括但不限於音訊控制器146、韌體介面128、無線收發器126(例如,Wi-Fi、藍牙)、資料儲存裝置124(例如,硬碟驅動機、快閃記憶體等)及用於將舊式(例如,個人系統2(PS/2))裝置耦接至系統的舊式I/O控制器140。一或多個通用串列匯流排(USB)控制器142連接輸入裝置,諸如鍵盤及滑鼠144組合。網路控制器134亦可耦接至ICH 130。在一些實施例中,高效能網路控制器(未圖示)耦接至處理器匯流排 110。應瞭解,所展示系統100為示範性的且為不限制,因為亦可使用經不同組配的其他類型之資料處理系統。例如,I/O控制器集線器130可整合於一或多個處理器102內,或記憶體控制集線器116及I/O控制器集線器130可整合至諸如外部圖形處理器112之分立外部圖形處理器中。
圖7為具有一或多個處理器核心202A-202N、整合式記憶體控制器214及整合式圖形處理器208之處理器200之實施例的方塊圖。圖7中與本文中任何其他圖式之元件具有相同元件符號(或名稱)之彼等元件可按類似於本文其他處所述之任何方式進行操作或發揮功用,但並不受限於此方式。處理器200可包括達至且包括藉由虛線框所表示之另外核心202N的另外核心。處理器核心202A-202N中之每一者包括一或多個內部快取記憶體單元204A-204N。在一些實施例中,每一處理器核心亦具有對一或多個共用快取記憶體單元206之存取權。
內部快取記憶體單元204A-204N及共用快取記憶體單元206表示處理器200內之快取記憶體階層。快取記憶體階層可包括每一核心內之至少一層級之指令及資料快取記憶體及一或多個層級之共用中間層級快取記憶體,諸如2級(L2)、3級(L3)、4級(L4)或其他層級之快取記憶體,其中在外部記憶體前之最高層級分類為LLC。在一些實施例中,快取一致性邏輯維持各種快取記憶體單元206與204A-204N之間的一致性。
在一些實施例中,處理器200亦可包括一組一或 多個匯流排控制器單元216及系統代理器核心210。一或多個匯流排控制器單元216管理一組周邊匯流排,諸如一或多個周邊組件互連匯流排(例如,PCI、PCI快速週邊組件互連(PCI Express))。系統代理器核心210針對各種處理器組件提供管理功能性。在一些實施例中,系統代理器核心210包括一或多個整合式記憶體控制器214以管理對各種外部記憶體裝置(未圖示)之存取。
在一些實施例中,核心202A-202N中之一或多者包括針對同時多執行緒處理的支援。在此等實施例中,系統代理器核心210包括用於在多執行緒處理期間協調及操作核心202A-202N之組件。系統代理器核心210可另外包括功率控制單元(PCU),該功率控制單元包括調節處理器核心202A-202N及圖形處理器208之功率狀態的邏輯及組件。
在一些實施例中,處理器200另外包括圖形處理器208以執行圖形處理操作。在一些實施例中,圖形處理器208與該組共用快取記憶體單元206,及包括一或多個整合式記憶體控制器214之系統代理器核心210耦接。在一些實施例中,顯示控制器211與圖形處理器208耦接以驅動對一或多個經耦接顯示器之圖形處理器輸出。在一些實施例中,顯示控制器211可為經由至少一互連與圖形處理器耦接之單獨模組,或可整合於圖形處理器208或系統代理器核心210內。
在一些實施例中,環基互連單元212係用於耦接處理器200之內部組件。然而,可使用替代互連單元,諸如 點對點互連、交換式互連或其他技術,包括此項技術中熟知的技術。在一些實施例中,圖形處理器208經由I/O鏈路213與環互連212耦接。
示範性I/O鏈路213表示多種I/O互連中之至少一者,包括促進各種處理器組件與諸如eDRAM模組之高效能嵌入式記憶體模組218之間的通訊之封裝上I/O互連。在一些實施例中,處理器核心202-202N中之每一者及圖形處理器208使用嵌入式記憶體模組218作為共用末級快取記憶體。
在一些實施例中,處理器核心202A-202N為執行同一指令集架構之同質核心。在另一實施例中,處理器核心202A-202N就指令集架構(ISA)而言為異質的,其中處理器核心202A-N中之一或多者執行第一指令集,而其他核心中之至少一者執行第一指令集的子集或不同指令集。在一個實施例中,處理器核心202A-202N就微架構而言而異質的,其中具有相對高功率消耗之一或多個核心與具有低功率消耗之一或多個功率核心耦接。另外,處理器200可實行於一或多個晶片上或作為除了其他組件之外亦具有所例示組件的SoC積體電路。
圖8為可為分立圖形處理單元或可為與多個處理核心整合之圖形處理器的圖形處理器300之方塊圖。在一些實施例中,圖形處理器經由對圖形處理器上之暫存器的記憶體對映I/O介面及經由置放至處理器記憶體中之命令來進行通訊。在一些實施例中,圖形處理器300包括記憶體介 面314來存取記憶體。記憶體介面314可為對局部記憶體、一或多個內部快取記憶體、一或多個共用外部快取記憶體,及/或對系統記憶體之介面。
在一些實施例中,圖形處理器300亦包括顯示控制器302來將顯示輸出資料驅動至顯示裝置320。顯示控制器302包括用於顯示器之一或多個上覆平面的硬體,及視訊或使用者介面元件之多個層的複合物。在一些實施例中,圖形處理器300包括視訊編解碼器引擎306來自一或多個媒體編碼格式或在一或多個媒體編碼格式之間編碼、解碼或轉碼媒體,該一或多個媒體編碼格式包括但不限於諸如動畫專家群(MPEG)-2之MPEG格式、諸如H.264/MPEG-4進階視訊寫碼之AVC格式,以及電影與電視工程師協會(SMPTE)421M/VC-1,及諸如聯合照相專家群(JPEG)之JPEG格式,及運動JPEG(MJPEG)格式。
在一些實施例中,圖形處理器300包括區塊影像傳送(BLIT)引擎304來執行二維(2D)光柵化操作,包括例如位元邊界區塊傳送。然而,在一個實施例中,2D圖形操作係使用圖形處理引擎(GPE)310之一或多個組件來進行。在一些實施例中,圖形處理引擎310為用於進行圖形操作之計算引擎,該等操作包括三維(3D)圖形操作及媒體操作。
在一些實施例中,GPE 310包括用於進行3D操作之3D管線312,諸如使用作用於3D基元形狀(例如,矩形、三角形等)之處理功能渲染三維影像及場景。3D管線312包括可規劃及固定功能元件,該等元件進行元件內之各種任 務及/或對3D/媒體子系統315引發執行緒。儘管3D管線312可用以進行媒體操作,但GPE 310之實施例亦包括特定地用以進行媒體操作的媒體管線316,該等媒體操作諸如視訊後處理及影像增強。
在一些實施例中,媒體管線316包括固定功能或可規劃邏輯單元來替代於或代表視訊編解碼器引擎306進行一或多個專門的媒體操作,諸如視訊解碼加速、視訊解交錯及視訊編碼加速。在一些實施例中,媒體管線316另外包括執行緒引發單元以引發執行緒以供在3D/媒體子系統315上執行。經引發執行緒針對包括於3D/媒體子系統315中之一或多個圖形執行單元上的媒體操作進行計算。
在一些實施例中,3D/媒體子系統315包括用於執行藉由3D管線312及媒體管線316所引發之執行緒的邏輯。在一個實施例中,管線將執行緒執行請求發送至3D/媒體子系統315,該3D/媒體子系統包括用於仲裁及調度對可利用之執行緒執行資源之各種請求的執行緒調度邏輯。執行資源包括圖形執行單元之陣列來處理3D及媒體執行緒。在一些實施例中,3D/媒體子系統315包括用於執行緒指令及資料之一或多個內部快取記憶體。在一些實施例中,子系統亦包括共用記憶體來在執行緒之間共用資料且儲存輸出資料,該共用記憶體包括暫存器及可定址記憶體。
圖9為根據一些實施例的圖形處理器之圖形處理引擎410之方塊圖。在一個實施例中,GPE 410為圖8中所示之GPE 310的一版本。圖9中與本文中任何其他圖式之元件 具有相同元件符號(或名稱)之彼等元件可按類似於本文其他處所述之任何方式進行操作或發揮功用,但並不受限於此方式。
在一些實施例中,GPE 410與命令流轉化器403耦接,該命令流轉化器將命令串流提供至GPE 3D管線412及媒體管線416。在一些實施例中,命令流轉化器403耦接至記憶體,該記憶體可為系統記憶體,或內部快取記憶體及共用快取記憶體中之一或多者。在一些實施例中,命令流轉化器403自記憶體接收命令且將命令發送至3D管線412及/或媒體管線416。命令為自環緩衝區擷取的指示令(directive),其儲存用於3D管線412及媒體管線416之命令。在一個實施例中,環緩衝區可另外包括儲存成批多個命令之分批命令緩衝區。3D管線412及媒體管線416藉由經由個別管線內之邏輯進行操作或藉由將一或多個執行緒調度至執行單元陣列414而處理命令。在一些實施例中,執行單元陣列414為可縮放的,使得陣列基於GPE 410之目標功率及效能位準包括可變數目個執行單元。
在一些實施例中,取樣引擎430與記憶體(例如,快取記憶體或系統記憶體)及執行單元陣列414耦接。在一些實施例中,取樣引擎430提供允許執行陣列414自記憶體讀取圖形及媒體資料的用於執行單元陣列414之記憶體存取機制。在一些實施例中,取樣引擎430包括針對媒體進行專門的影像取樣操作之邏輯。
在一些實施例中,取樣引擎430中之專門的媒體 取樣邏輯包括解雜訊/解交錯模組432、運動估計模組434及影像縮放及濾波模組436。在一些實施例中,解雜訊/解交錯模組432包括對經解碼視訊資料進行解雜訊或解交錯演算法中之一或多者的邏輯。解交錯邏輯將交錯視訊內容之交替欄位組合為單一視訊圖框。解雜訊邏輯自視訊及影像資料降低或移除資料雜訊。在一些實施例中,解雜訊邏輯及解交錯邏輯為運動適應性的,且基於視訊資料中偵測到之運動的量使用空間或時間濾波。在一些實施例中,解雜訊/解交錯模組432包括專用運動偵測邏輯(例如,在運動估計引擎434內)。
在一些實施例中,運動估計引擎434藉由對視訊資料進行諸如運動向量估計及預測之視訊加速功能而針對視訊操作提供硬體加速。運動估計引擎判定運動向量,該等運動向量描述影像資料在接連之視訊圖框之間的變換。在一些實施例中,圖形處理器媒體編解碼器使用視訊運動估計引擎434來在巨集區塊層級處對視訊進行操作,該巨集區塊層級可另外為計算密集的以使用通用處理器來進行。在一些實施例中,運動估計引擎434對圖形處理器組件為大體可利用的以輔助視訊解碼及處理功能,該等功能對視訊資料內之運動的方向或量值為敏感的或適應性的。
在一些實施例中,影像縮放及濾波模組436執行影像處理操作以增強所產生影像及視訊之視覺品質。在一些實施例中,縮放及濾波模組436在將資料提供至執行單元陣列414之前在取樣操作期間處理影像及視訊資料。
在一些實施例中,GPE 410包括資料埠444,該資料埠提供用於圖形子系統之另一機制以存取記憶體。在一些實施例中,資料埠444促進針對操作之記憶體存取,該等操作包括渲染器目標寫入、恆定緩衝區讀取、暫用記憶體空間讀取/寫入及媒體表面存取。在一些實施例中,資料埠444包括快取記憶體空間以快取存取記憶體。快取記憶體可為單一資料快取記憶體或針對經由資料埠存取記憶體之多個子系統分為多個快取記憶體(例如,渲染器緩衝區快取記憶體、恆定緩衝區快取記憶體等)。在一些實施例中,在執行單元陣列414中之執行單元上執行的執行緒藉由經由資料分佈互連交換訊息而與資料埠通訊,該互連耦接GPE 410之子系統中的每一者。
圖10為圖形處理器500之另一實施例的方塊圖。圖10中與本文中任何其他圖式之元件具有相同元件符號(或名稱)之彼等元件可按類似於本文其他處所述之任何方式進行操作或發揮功用,但並不受限於此方式。
在一些實施例中,圖形處理器500包括環互連502、管線前端504、媒體引擎537及圖形核心580A-580N。在一些實施例中,環互連502將圖形處理器耦接至其他處理單元,包括其他圖形處理器或一或多個通用處理器核心。在一些實施例中,圖形處理器為整合於多核心處理系統內之許多處理器中的一者。
在一些實施例中,圖形處理器500經由環互連502接收成批命令。傳入命令藉由管線前端504中之命令流轉化 器503解譯。在一些實施例中,圖形處理器500包括可縮放執行邏輯以經由圖形核心580A-580N進行3D幾何處理及媒體處理。針對3D幾何處理命令,命令流轉化器503將命令供應至幾何管線536。針對至少一些媒體處理命令,命令流轉化器503將命令供應至與媒體引擎537耦接的視訊前端534。在一些實施例中,媒體引擎537包括用於視訊及影像後處理之視訊品質引擎(VQE)530,及多格式編碼/解碼(MFX)533引擎以提供經硬體加速之媒體資料編碼及解碼。在一些實施例中,幾何管線536及媒體引擎537各自針對藉由至少一圖形核心580A所提供之執行緒執行資源產生執行緒。
在一些實施例中,圖形處理器500包括表徵模組化核心580A-580N(有時被稱為核心片段)之可縮放執行緒執行資源,該等模組化核心各自具有多個子核心550A-550N、560A-560N(有時被稱為核心子片段)。在一些實施例中,圖形處理器500可具有任何數目之圖形核心580A至580N。在一些實施例中,圖形處理器500包括至少具有第一子核心550A及第二核心子核心560A之圖形核心580A。在其他實施例中,圖形處理器為具有單一子核心(例如,550A)之低功率處理器。在一些實施例中,圖形處理器500包括多個圖形核心580A-580N,該等圖形核心各自包括一組第一子核心550A-550N及一組第二子核心560A-560N。該組第一子核心550A-550N中之每一子核心至少包括第一組執行單元552A-552N及媒體/紋理取樣器554A-554N。該組第二子核心560A-560N中之每一子核心至少包括第二組執行單元 562A-562N及取樣器564A-564N。在一些實施例中,每一子核心550A-550N、560A-560N共用一組共用資源570A-570N。在一些實施例中,共用資源包括共用快取記憶體及像素操作邏輯。其他共用資源亦可包括於圖形處理器之各種實施例中。
圖11例示包括在GPE之一些實施例中所使用的處理元件之陣列的執行緒執行邏輯600。圖11中與本文中任何其他圖式之元件具有相同元件符號(或名稱)之彼等元件可按類似於本文其他處所述之任何方式進行操作或發揮功用,但並不受限於此方式。
在一些實施例中,執行緒執行邏輯600包括像素著色器602、執行緒調度器604、指令快取記憶體606、包括多個執行單元608A-608N之可縮放執行單元陣列、取樣器610、資料快取記憶體612及資料埠614。在一個實施例中,所包括組件經由連結至組件中之每一者的互連組構得以互連。在一些實施例中,執行緒執行邏輯600包括經由指令快取記憶體606、資料埠614、取樣器610及執行單元陣列608A-608N中之一或多者對記憶體之一或多個連接,該記憶體諸如系統記憶體或快取記憶體。在一些實施例中,每一執行單元(例如,608A)為能夠執行多個同時執行緒且針對每一執行緒並行地處理多個資料元件的個別向量處理器。在一些實施例中,執行單元陣列608A-608N包括任何數目之個別執行單元。
在一些實施例中,執行單元陣列608A-608N主要 用以執行「著色器」程式。在一些實施例中,陣列608A-608N中之執行單元執行包括針對許多標準3D圖形著色器指令之本機支援的指令集,使得來自圖形程式庫之著色器程式(例如,Direct 3D及OpenGL)藉由最小轉譯來執行。執行單元支援頂點及幾何處理(例如,頂點程式、幾何程式、頂點著色器)、像素處理(例如,像素著色器、碎片著色器)及通用處理(例如,計算及媒體著色器)。
執行單元陣列608A-608N中之每一執行單元對資料元件之陣列進行操作。資料元件之數目為「執行大小」或用於指令之通道的數目。執行通道為用於資料元件存取、遮蔽及指令內之流量控制的邏輯執行單元。通道之數目可獨立於用於特定圖形處理器之實體算術邏輯單元(ALU)或浮點單元(FPU)的數目。在一些實施例中,執行單元608A-608N支援整數及浮點資料類型。
執行單元指令集包括單指令多資料(SIMD)指令。各種資料元件可作為經包裝資料類型儲存於暫存器中,且執行單元將基於元件之資料大小處理各種元件。舉例而言,當對256位元寬向量進行操作時,向量之256個位元儲存於暫存器中,且執行單元對作為四個單獨的64位元經包裝資料元件(四字(QW)大小資料元件)、八個單獨的32位元經包裝資料元件(雙字(DW)大小資料元件)、十六個單獨的16位元經包裝資料元件(字(W)大小資料元件)或三十二個單獨的8位元資料元件(位元組(B)大小資料元件)之向量進行操作。然而,不同的向量寬度及暫存器大小係可能的。
一或多個內部指令快取記憶體(例如,606)包括於執行緒執行邏輯600中以快取用於執行單元之執行緒指令。在一些實施例中,一或多個資料快取記憶體(例如,612)得以包括以在執行緒執行期間快取執行緒資料。在一些實施例中,取樣器610得以包括以針對3D操作提供紋理取樣且針對媒體操作提供媒體取樣。在一些實施例中,取樣器610包括專門的紋理或媒體取樣功能性,以在將經取樣資料提供至執行單元之前在取樣處理程序期間處理紋理或媒體資料。
在執行期間,圖形管線及媒體管線經由執行緒引發及調度邏輯將執行緒起始請求發送至執行緒執行邏輯600。在一些實施例中,執行緒執行邏輯600包括局部執行緒調度器604,該執行緒調度器仲裁來自圖形管線及媒體管線之執行緒起始請求且執行個體化一或多個執行單元608A-608N上的所請求執行緒。舉例而言,幾何管線(例如,圖10之536)將頂點處理、鑲嵌或幾何處理執行緒調度至執行緒執行邏輯600(圖11)。在一些實施例中,執行緒調度器604亦可處理來自執行著色器程式之運行時間執行緒引發請求。
一旦一群組之幾何物件已受處理且光柵化為像素資料,則像素著色器602經調用以進一步計算輸出資訊且使結果寫入至輸出表面(例如,色彩緩衝區、深度緩衝區、模板緩衝區等)。在一些實施例中,像素著色器602計算將跨於經光柵化物件上內插的各種頂點屬性之值。在一些實 施例中,像素著色器602隨後執行應用程式設計介面(API)供應的像素著色器程式。為執行像素著色器程式,像素著色器602經由執行緒調度器604將執行緒調度至執行單元(例如,608A)。在一些實施例中,像素著色器602使用取樣器610中之紋理取樣邏輯來存取儲存於記憶體中之紋理圖中的紋理資料。對紋理資料及輸入幾何資料之算術運算針對每一幾何碎片計算像素色彩資料,或自進一步處理捨棄一或多個像素。
在一些實施例中,資料埠614提供記憶體存取機制,該機制供執行緒執行邏輯600將經處理資料輸出至記憶體以供在圖形處理器輸出管線上處理。在一些實施例中,資料埠614包括或耦接至一或多個快取記憶體(例如,資料快取記憶體612)以經由資料埠快取用於記憶體存取之資料。
圖12為例示根據一些實施例的圖形處理器指令格式700之方塊圖。在一或多個實施例,圖形處理器執行單元支援具有呈多個格式之指令的指令集。實線框例示一般包括於執行單元指令中之分量,而虛線包括任擇的或僅包括於指令之子集中的分量。在一些實施例中,所描述及例示之指令格式700為巨集指令,因為其為供應至執行單元之指令,如與一旦指令受處理而得自指令解碼的微操作相對。
在一些實施例中,圖形處理器執行單元在本機支援呈128位元格式710之指令。64位元緊密指令格式730基於 所選擇之指令、指令選項及運算元之數目針對一些指令為可利用的。本機128位元格式710提供對所有指令選項之存取,而一些選項及操作在64位元格式730中受限制。在64位元格式730中可利用之本機指令藉由實施例而變化。在一些實施例中,指令使用索引欄位713中之一組索引值部分地變緊密。執行單元硬體基於索引值參考一組壓實度表,且使用壓實度表輸出來以128位元格式710重建構本機指令。
針對每一格式,指令運算碼712定義執行單元將進行之操作。執行單元跨於每一運算元之多個資料元件上而並行地執行每一指令。舉例而言,回應於加法指令,執行單元跨於表示紋理元件或圖像元件之每一色彩通道上而進行同時加法運算。藉由預設,執行單元跨於運算元之所有資料通道上而進行每一指令。在一些實施例中,指令控制欄位714實現對某些執行選項之控制,諸如通道選擇(例如,預測)及資料通道次序(例如,拌和)。針對128位元指令710,執行大小欄位716限制將並行執行之資料通道的數目。在一些實施例中,執行大小欄位716不可利用於在64位元緊密指令格式730中使用。
一些執行單元指令具有達至三個運算元,包括兩個源運算元src0 722、src1 722,及一個目的地718。在一些實施例中,執行單元支援雙目的地指令,其中暗示目的地中之一者。資料操縱指令可具有第三源運算元(例如,SRC2 724),其中指令運算碼712判定源運算元之數目。指令之最後源運算元可為與指令一起傳遞之立即(例如,硬寫碼)值。
在一些實施例中,128位元指令格式710包括存取/位址模式資訊726,其指定例如是否使用直接暫存器定址模式或間接暫存器定址模式。當使用直接暫存器定址模式時,一或多個運算元之暫存器位址藉由指令710中之位元直接提供。
在一些實施例中,128位元指令格式710包括存取/位址模式欄位726,其指定用於指令之位址模式及/或存取模式。在一個實施例中,存取模式定義用於指令之資料存取對準。一些實施例支援包括16位元組對準存取模式及1位元組對準存取模式之存取模式,其中存取模式之位元組對準判定指令運算元之存取對準。例如,當在第一模式中,指令710可使用用於源運算元及目的地運算元之位元組對準定址,且當在第二模式中時,指令710可使用用於所有源運算元及目的地運算元之16位元組對準定址。
在一個實施例中,存取/位址模式欄位726之位址模式部分判定指令是否將使用直接或間接定址。當使用直接暫存器定址模式中,指令710中之位元直接地提供一或多個運算元之暫存器位址。當使用間接暫存器定址模式中,一或多個運算元之暫存器位址可基於指令中之位址暫存器值及位址立即欄位來計算。
在一些實施例中,指令基於運算碼712位元欄位而分組以簡化運算碼解碼740。針對8位元運算碼,位元4、5及6允許執行單元判定運算碼之類型。所示的精確運算碼分組僅僅為實例。在一些實施例中,移動及邏輯運算碼群 組742包括資料移動及邏輯指令(例如,移動(mov)、比較(cmp))。在一些實施例中,移動及邏輯群組742共用五個最高有效位元(MSB),其中移動(mov)指令呈0000xxxxb形式且邏輯指令呈0001xxxxb形式。流量控制指令群組744(例如,呼叫、跳躍(jmp))包括呈0010xxxxb形式(例如,0x20)之指令。雜項指令群組746包括指令之混合,包括呈0011xxxxb形式(例如,0x30)之同步指令(例如,等待、發送)。並行數學指令群組748包括呈0100xxxxb形式(例如,0x40)之逐分量算術指令(例如,加、乘(mul))。並行數學群組748跨於資料通道上並行地進行算術運算。向量數學群組750包括呈0101xxxxb形式(例如,0x50)之算術指令(例如,dp4)。向量數學群組對向量運算元進行諸如點積計算之算術運算。
圖13為圖形處理器800之另一實施例的方塊圖。圖13中與本文中任何其他圖式之元件具有相同元件符號(或名稱)之彼等元件可按類似於本文其他處所述之任何方式進行操作或發揮功用,但並不受限於此方式。
在一些實施例中,圖形處理器800包括圖形管線820、媒體管線830、顯示引擎840、執行緒執行邏輯850及渲染器輸出管線870。在一些實施例中,圖形處理器800為包括一或多個通用處理核心之多核心處理系統內的圖形處理器。圖形處理器藉由對一或多個控制暫存器(未圖示)之暫存器寫入或經由發出至圖形處理器800之命令而控制,該命令發出係經由環互連802達成。在一些實施例中,環互連802將圖形處理器800耦接至其他處理組件,諸如其他圖形處理 器或通用處理器。來自環互連802之命令藉由命令流轉化器803來解譯,該命令流轉化器將指令供應至圖形管線820或媒體管線830之個別組件。
在一些實施例中,命令流轉化器803指導頂點擷取器805之操作,該頂點擷取器自記憶體讀取頂點資料且執行藉由命令流轉化器803所提供之頂點處理命令。在一些實施例中,頂點擷取器805將頂點資料提供至頂點著色器807,該頂點著色器進行對每一頂點之協調空間變換及照明操作。在一些實施例中,頂點擷取器805及頂點著色器807藉由經由執行緒調度器831將執行緒調度至執行單元852A、852B而執行頂點處理指令。
在一些實施例中,執行單元852A、852B為具有用於進行圖形及媒體操作之指令集的向量處理器之陣列。在一些實施例中,執行單元852A、852B具有針對每一陣列為特定的或在陣列之間共用的附加之L1快取記憶體851。快取記憶體可經組配為資料快取記憶體、指令快取記憶體,或經劃分以在不同的劃分區中含有資料及指令的單一快取記憶體。
在一些實施例中,圖形管線820包括鑲嵌組件來進行3D物件之經硬體加速鑲嵌。在一些實施例中,可規劃外殼著色器811組配鑲嵌操作。可規劃域著色器817提供鑲嵌輸出之後端評估。鑲嵌器813在外殼著色器811之指導下操作,且含有專用邏輯以基於粗略幾何模型產生一組詳細幾何物件,該粗略幾何模型作為輸入提供至圖形管線820。 在一些實施例中,若鑲嵌未經使用,則鑲嵌組件811、813、817可被繞過。
在一些實施例中,完整的幾何物件可藉由幾何著色器819經由調度至執行單元852A、852B之一或多個執行緒處理,或可直接進行至裁剪器829。在一些實施例中,幾何著色器對全部幾何物件進行操作,而非如在圖形管線之先前階段中對頂點或頂點之修補程式進行操作。若鑲嵌被停用,則幾何著色器819自頂點著色器807接收輸入。在一些實施例中,幾何著色器819可藉由幾何著色器程式規劃,以在鑲嵌單元經停用的情況下進行幾何鑲嵌。
光柵化之前,裁剪器829處理頂點資料。裁剪器829可為固定功能裁剪器或具有裁剪及幾何著色器功能之可規劃裁剪器。在一些實施例中,渲染器輸出管線870中之光柵化器/深度873調度像素著色器以將幾何物件轉換為其每像素表示。在一些實施例中,像素著色器邏輯包括於執行緒執行邏輯850中。在一些實施例中,應用程式可繞過光柵化器873並經由串流輸出單元823存取未光柵化頂點資料。
圖形處理器800具有允許資料及訊息在處理器之主要組件當中傳遞的互連匯流排、互連組構或某種其他互連機制。在一些實施例中,執行單元852A、852B及相關聯快取記憶體851、紋理及媒體取樣器854及紋理/取樣器快取記憶體858經由資料埠856互連,以進行記憶體存取且與處理器之渲染器輸出管線組件通訊。在一些實施例中,取樣 器854、快取記憶體851、858及執行單元852A、852B各自具有單獨的記憶體存取路徑。
在一些實施例中,渲染器輸出管線870含有光柵化器及深度測試組件873,該組件將基於頂點之物件轉換為相關聯的基於像素之表示。在一些實施例中,光柵化器邏輯包括分窗器(windower)/遮蔽器(masker)單元以進行固定功能三角形及線光柵化。在一些實施例中,亦可利用相關聯的渲染器快取記憶體878及深度快取記憶體879。像素操作組件877對資料進行基於像素之操作,但在一些情況下,與2D操作相關聯之像素操作(例如,利用摻合之位元區塊影像傳送)藉由2D引擎841進行,或藉由顯示控制器843使用上覆顯示平面在顯示時間替換。在一些實施例中,共用L3快取記憶體875對所有圖形組件為可利用的,從而允許資料在不使用主系統記憶體之情況下的共用。
在一些實施例中,圖形處理器媒體管線830包括媒體引擎837及視訊前端834。在一些實施例中,視訊前端834自命令流轉化器803接收管線命令。在一些實施例中,媒體管線830包括單獨命令流轉化器。在一些實施例中,視訊前端834在將媒體命令發送至媒體引擎837之前處理該等命令。在一些實施例中,媒體引擎337包括執行緒引發功能性以引發執行緒以供經由執行緒調度器831調度至執行緒執行邏輯850。
在一些實施例中,圖形處理器800包括顯示引擎840。在一些實施例中,顯示引擎840在處理器800外部,且 經由環互連802或某種其他互連匯流排或組構與圖形處理器耦接。在一些實施例中,顯示引擎840包括2D引擎841及顯示控制器843。在一些實施例中,顯示引擎840含有能夠獨立於3D管線進行操作之專用邏輯。在一些實施例中,顯示控制器843與顯示裝置(未圖示)耦接,該顯示裝置可如在膝上型電腦中為系統整合式顯示裝置或為經由顯示裝置連接器所附接的外部顯示裝置。
在一些實施例中,圖形管線820及媒體管線830可組配以基於多個圖形及媒體程式設計介面進行操作,且對任一應用程式設計介面(API)並非特定的。在一些實施例中,用於圖形處理器之驅動器軟體將對特定圖形或媒體程式庫為特定的API呼叫轉譯為可藉由圖形處理器處理的命令。在一些實施例中,支援係針對藉由科納斯組織所支援之開放圖形程式庫(OpenGL)及開放計算語言(OpenCL)、來自微軟公司之Direct3D程式庫,或可針對OpenGL及D3D兩者提供支援。支援亦可針對開放源電腦視覺程式庫(OpenCV)而提供。具有相容3D管線之未來API亦將在對映可自未來API之管線進行至圖形處理器的管線之情況下得以支援。
圖14A為例示根據一些實施例的圖形處理器命令格式900之方塊圖。圖14B為例示根據一實施例的圖形處理器命令序列910之方塊圖。圖14A中之實線框例示一般包括於圖形命令中之分量,而虛線包括任擇的或僅包括於圖形命令之子集中的分量。圖14A之示範性圖形處理器命令格 式900包括資料欄位來識別命令之目標用戶端902、命令操作碼(運算碼)904及用於命令之相關資料906。子運算碼905及命令大小908亦包括於一些命令中。
在一些實施例中,用戶端902指定圖形裝置的處理命令資料之用戶端單元。在一些實施例中,圖形處理器命令剖析器檢驗每一命令之用戶端欄位以調節命令之進一步處理且將命令資料依路由傳遞至適當的用戶端單元。在一些實施例中,圖形處理器用戶端單元包括記憶體介面單元、渲染器單元、2D單元、3D單元及媒體單元。每一用戶端單元具有處理命令之對應的處理管線。一旦命令藉由用戶端單元接收,則用戶端單元讀取運算碼904及若存在則讀取子運算碼905以判定將進行的操作。用戶端單元使用資料欄位906中之資訊進行命令。針對一些命令,預期將顯式命令大小908指定命令之大小。在一些實施例中,命令剖析器基於命令運算碼自動地判定命令中之至少一些的大小。在一些實施例中,命令經由雙字之倍數來對準。
圖14B中之流程圖展示示範性圖形處理器命令序列910。在一些實施例中,表徵圖形處理器之實施例的資料處理系統之軟體或韌體使用所示之命令序列的一版本來設立、執行及終止一組圖形操作。樣本命令序列為示範性目的得以展示及描述,因為實施例不限於此等特定命令或此命令序列。此外,命令可作為命令序列中之成批命令而發出,使得圖形處理器將以至少部分地同時的方式處理命令之序列。
在一些實施例中,圖形處理器命令序列910可以管線排清命令912開始,以使任何活動圖形管線針對管線完成當前未決的命令。在一些實施例中,3D管線922及媒體管線924並未同時操作。管線排清經進行以使活動圖形管線完成任何未決之命令。回應於管線排清,用於圖形處理器之命令剖析器將暫停命令處理直至活動製圖引擎完成未決的操作為止,且相關之讀取快取記憶體為無效的。任擇地,渲染器快取記憶體中標記為「髒」之任何資料可排清至記憶體。在一些實施例中,管線排清命令912可用於管線同步或在將圖形處理器置於低功率狀態之前得以使用。
在一些實施例中,當命令序列要求圖形處理器在管線之間顯式切換時,管線選擇命令913得以使用。在一些實施例中,管線選擇命令913在發出管線命令之前在執行上下文內僅被需要一次,除非上下文將針對兩個管線發出命令。在一些實施例中,緊接在經由管線選擇命令913之管線切換之前需要管線排清命令912。
在一些實施例中,管線控制命令914組配圖形管線以供操作,且用以規劃3D管線922及媒體管線924。在一些實施例中,管線控制命令914組配用於活動管線之管線狀態。在一個實施例中,管線控制命令914用於管線同步,且在處理一批命令之前自活動管線內的一或多個快取記憶體清除資料。
在一些實施例中,回覆緩衝區狀態命令916用以組配一組回覆緩衝區以供個別管線寫入資料。一些管線操 作需要一或多個回覆緩衝區之分配、選擇或組配,操作在處理期間將中間資料寫入至該等緩衝區中。在一些實施例中,圖形處理器亦使用一或多個回覆緩衝區來儲存輸出資料且進行跨執行緒通訊。在一些實施例中,回覆緩衝區狀態916包括選擇將針對一組管線操作使用的回覆緩衝區之大小及數目。
命令序列中之剩餘命令基於用於操作之活動管線而不同。基於管線判定920,命令序列對於3D管線922定製為以3D管線狀態930開始,或對於媒體管線924定製為在媒體管線狀態940處開始。
用於3D管線狀態930之命令包括用於頂點緩衝區狀態、頂點元件狀態、恆定色彩狀態、深度緩衝區狀態,及將在3D基元命令經處理之前組配的其他狀態變數的3D狀態設定命令。此等命令之值至少部分地基於使用中之特定3D API來判定。在一些實施例中,3D管線狀態930命令亦能夠在將不使用某些管線元件的情況下選擇性地停用或繞過該等元件。
在一些實施例中,3D基元932命令用以提交3D基元以藉由3D管線處理。經由3D基元932命令傳遞至圖形處理器之命令及相關聯參數轉遞至圖形管線中的頂點擷取功能。頂點擷取功能使用3D基元932命令資料來產生頂點資料結構。頂點資料結構儲存於一或多個回覆緩衝區中。在一些實施例中,3D基元932命令用以經由頂點著色器對3D基元進行頂點操作。為處理頂點著色器,3D管線922將著色器 執行緒調度至圖形處理器執行單元。
在一些實施例中,3D管線922係經由執行934命令或事件來觸發。在一些實施例中,暫存器寫入觸發命令執行。在一些實施例中,執行係經由命令序列中之『前進(go)』或『啟動(kick)』命令來觸發。在一個實施例中,命令執行係使用管線同步命令來經由圖形管線排清命令序列而觸發。3D管線將針對3D基元進行幾何處理。一旦操作完成,則所得的幾何物件經光柵化且像素引擎對所得像素上色。控制像素著色及像素後端操作之另外命令亦可得以包括以用於該等操作。
在一些實施例中,圖形處理器命令序列910在進行媒體操作時遵循媒體管線924。一般而言,用於媒體管線924之程式設計的特定用途及方式取決於將要進行之媒體或計算操作。特定媒體解碼操作可在媒體解碼期間卸載至媒體管線。在一些實施例中,媒體管線亦可得以繞過,且媒體解碼可使用藉由一或多個通用處理核心所提供之資源整體或部分地進行。在一個實施例中,媒體管線亦包括用於通用圖形處理器單元(GPGPU)操作之元件,其中圖形處理器用以使用並非與圖形基元之渲染顯式相關的計算著色器程式進行SIMD向量操作。
在一些實施例中,媒體管線924以與3D管線922類似之方式組配。一組媒體管線狀態命令940在媒體物件命令942之前調度或置放至命令佇列中。在一些實施例中,媒體管線狀態命令940包括資料來組配將用以處理媒體物件 之媒體管線元件。此包括資料來組配媒體管線內之視訊解碼及視訊編碼邏輯,諸如編碼或解碼格式。在一些實施例中,媒體管線狀態命令940亦支援一或多個指標對含有一批狀態設定之『間接』狀態元件的使用。
在一些實施例中,媒體物件命令942將指標供應至媒體物件以供媒體管線處理。媒體物件包括含有將要處理之視訊資料的記憶體緩衝區。在一些實施例中,在發出媒體物件命令942之前,所有媒體管線狀態必須為有效的。一旦管線狀態經組配且媒體物件命令942經排佇列,則媒體管線924經由執行944命令或等效執行事件(例如,暫存器寫入)來觸發。來自媒體管線924之輸出可接著藉由3D管線922或媒體管線924所提供之操作進行後處理。在一些實施例中,GPGPU操作以與媒體操作類似之方式來組配及執行。
圖15例示根據一些實施例的用於資料處理系統1000之示範性圖形軟體架構。在一些實施例中,軟體架構包括3D圖形應用程式1010、作業系統1020及至少一處理器1030。在一些實施例中,處理器1030包括圖形處理器1032及一或多個通用處理器核心1034。圖形應用程式1010及作業系統1020各自在資料處理系統之系統記憶體1050中執行。
在一些實施例中,3D圖形應用程式1010含有包括著色器指令1012之一或多個著色器程式。著色器語言指令可呈高階著色器語言,諸如高階著色器語言(HLSL)或OpenGL著色器語言(GLSL)。應用程式亦包括可執行指令 1014,該可執行指令呈適於藉由通用處理器核心1034執行之機器語言。應用程式亦包括藉由頂點資料所界定之圖形物件1016。
在一些實施例中,作業系統1020可為來自微軟公司之Microsoft® Windows®作業系統、專屬的類UNIX作業系統,或使用Linux內核之變體的開放源類UNIX作業系統。當Direct3D API在使用中時,作業系統1020使用前端著色器編譯器1024來將呈HLSL之任何著色器指令1012編譯為較低階著色器語言。編譯可為及時(JIT)編譯或應用程式可進行著色器預編譯。在一些實施例中,高階著色器在3D圖形應用程式1010之編譯期間編譯為低階著色器。
在一些實施例中,使用者模式圖形驅動器1026可含有後端著色器編譯器1027以將著色器指令1012轉換為特定硬體表示。當OpenGL API在使用中時,呈GLSL高階語言之著色器指令1012傳遞至使用者模式圖形驅動器1026以供編譯。在一些實施例中,使用者模式圖形驅動器1026使用作業系統內核模式功能1028來與內核模式圖形驅動器1029通訊。在一些實施例中,內核模式圖形驅動器1029與圖形處理器1032通訊以調度命令及指令。
至少一實施例之一或多個態樣可藉由儲存於機器可讀媒體上之代表性代碼來實行,該機器可讀媒體表示及/或定義諸如處理器之積體電路內的邏輯。例如,機器可讀媒體可包括表示處理器內之各種邏輯的指令。當藉由機器讀取時,指令可引起機器製造出進行本文所述的技術之 邏輯。稱為「IP核心」之此等表示為積體電路之邏輯的可重複使用單元,其可儲存於有形、機器可讀媒體上,該機器可讀媒體如描述積體電路之結構的硬體模型。硬體模型可供應至各種客戶或製造設施,該等客戶或製造設施將硬體模型載入於製造積體電路之製造機器上。積體電路可經製造以使得電路進行與本文所述的任何實施例相關聯描述的操作。
圖16為例示IP核心開發系統1100之方塊圖,該IP核心開發系統可用於製造積體電路以進行根據一實施例的操作。IP核心開發系統1100可用於產生模組化、可重複使用設計,其可併入大型設計中或用於構建整個積體電路(例如,SOC積體電路)。設計設施1130可以高階程式設計語言(例如,C/C++)產生IP核心設計之軟體模擬1110。軟體模擬1110可用於設計、測試及驗證IP核心之行為。暫存器轉移層級(RTL)設計可隨後自模擬模型1100產生或合成。RTL設計1115為積體電路之行為之抽象化,其將硬體暫存器之間的數位信號流動模型化,該等硬體暫存器包括使用模型化數位信號進行的相關聯邏輯。除RTL設計1115之外,亦可產生、設計或合成在邏輯層級或電晶體層級處之低階設計。因此,初始設計及模擬之特定細節可有所變化。
RTL設計1115或等效物可進一步藉由設計設施進一步合成至硬體模型1120中,該硬體模型可呈硬體描述語言(HDL),或為實體設計資料之一些其他表示。HDL可進一步經模擬或測試以驗證IP核心設計。IP核心設計者可經 儲存以供使用非依電性記憶體1140(例如,硬碟、快閃記憶體或任何非依電性儲存器媒體)遞送至第三方製造設施1165。或者,IP核心設計可經由有線連接1150或無線連接1160(例如,經由網際網路)傳輸。製造設施1165可隨後製造至少部分地基於IP核心設計的積體電路。所製造的積體電路可經組配來進行根據本文所述的至少一實施例之操作。
圖17為例示示範性系統單晶片積體電路1200之方塊圖,該示範性系統單晶片積體電路可根據一實施例使用一或多個IP核心來製造。示範性積體電路包括一或多個應用程式處理器1205(例如,CPU)、至少一圖形處理器1210,且可另外包括影像處理器1215及/或視訊處理器1220,其中任何者可來自相同或多個不同設計設施之模組化IP核心。積體電路包括周邊或匯流排邏輯,其包括USB控制器1225、UART控制器1230、SPI/SDIO控制器1235及I2S/I2C控制器1240。另外,積體電路可包括耦接至高清晰度多媒體介面(HDMI)控制器1250及行動工業處理器介面(MIPI)顯示介面1255中之一或多者的顯示裝置1245。可藉由包括快閃記憶體及快閃記憶體控制器之快閃記憶體子系統1260來提供儲存。記憶體介面可經由記憶體控制器1265提供以供對SDRAM或SRAM記憶體裝置之存取。一些積體電路另外包括嵌入式保全引擎1270。
另外,其他邏輯及電路可包括於積體電路1200之處理器中,包括另外的圖形處理器/核心、周邊介面控制器或通用處理器核心。
以下分句及/或實例係關於其他實施例: 一個示例性實施例可為一種方法,其包含使用基於調色板之編碼器壓縮色值,找出色值之群集且相對於具有預定特性之色值編碼該群集內之色值,以及編碼具有帶恆定色值之像素或樣本之群集。該方法亦可包括其中該預定義特性為該群集內帶該最小色值之樣本或像素。該方法亦可包括針對色彩通道為恆定之事實進行編碼。該方法亦可包括相對於該群集之帶該最小化成本之預定特性的樣本或像素編碼殘值。該方法亦可包括制止對帶恆定色彩之群集編碼殘值。該方法亦可包括對每一通道使用一位元來編碼該通道是否為恆定色彩。該方法亦可包括每個色彩通道提供一組位元以指示每個通道需要多少殘餘位元。該方法亦可包括其中找出群集包括使用K平均數分群演算法。該方法亦可包括找出圍繞色彩之最小定界框。該方法亦可包括自調色板取出第一色彩,圍繞該第一色彩建立群集,且隨後若第二色彩與第一色彩相差閾值,則形成包括該第二色彩之第二群集,以及將確保之色彩配適至該第一群集及該第二群集中。
在另一示例性實施例中,可為一或多種非暫時性電腦可讀媒體,其儲存藉由處理器執行以進行包含以下操作之序列的指令:使用基於調色板之編碼器壓縮色值,找出色值之群集且相對於具有預定特性之色值編碼該群集內之色值,以及編碼具有帶恆定色值之像素或樣本之群集。該媒體可進一步儲存指令,其中該預定義特性為該群集內 帶該最小值色值之樣本或像素。該媒體可進一步儲存指令以進行包括以下操作之序列:針對色彩通道為恆定之事實進行編碼。該媒體可進一步儲存指令以進行包括以下操作之序列:相對於該群集之帶有最小化成本之預定特性的樣本或像素編碼殘值。該媒體可進一步儲存指令以進行包括以下操作之序列:制止對帶恆定色彩之群集編碼殘值。該媒體可進一步儲存指令以進行包括以下操作之序列:對每一通道使用一位元來編碼該通道是否為恆定色彩。該媒體可進一步儲存指令以進行包括以下操作之序列:每個色彩通道提供一組位元以指示每個通道需要多少殘餘位元。該媒體可進一步儲存指令,其中找出群集包括使用K平均數分群演算法。該媒體可進一步儲存指令以進行包括以下操作之序列:找出圍繞色彩之最小定界框。該媒體可進一步儲存指令以進行包括以下操作之序列:自調色板取出第一色彩,圍繞該第一色彩建立群集,且隨後若第二色彩與第一色彩相差閾值,則形成包括該第二色彩之第二群集,以及將確保之色彩配適至該第一群集及該第二群集中。
另一示例性實施例可為一種設備,其包含處理器,其用於使用基於調色板之編碼器壓縮色值,找出色值之群集且相對於具有預定特性之色值編碼該群集內之色值,以及編碼具有帶恆定色值之像素或樣本之群集;以及儲存器,其耦接至該處理器。該設備可包括其中該預定義特性為該群集內帶該最小色值之樣本或像素。該設備可包括該處理器以針對色彩通道為恆定之事實進行編碼。該設備可包括 該處理器以相對於該群集之帶該最小化成本之預定特性的樣本或像素編碼殘值。該設備可包括該處理器制止對帶恆定色彩之群集編碼殘值。該設備可包括該處理器以針對每一通道使用一位元來編碼該通道是否為恆定色彩。該設備可包括該處理器以每個色彩通道提供一組位元以指示每個通道需要多少殘餘位元。該設備可包括該處理器以使用K平均數分群演算法找出群集。該設備可包括該處理器以找出圍繞色彩之最小定界框。該設備可包括該處理器以自調色板取出第一色彩,圍繞該第一色彩建立群集,且隨後若第二色彩與第一色彩相差閾值,則形成包括該第二色彩之第二群集,以及將確保之色彩配適至該第一群集及該第二群集中。
本文所述的圖形處理技術可以各種硬體架構來實行。舉例而言,可將圖形功能性整合於晶片組內。或者,可使用分立圖形處理器。作為另一實施例,圖形功能可由包括多核心處理器之通用處理器實行。
貫穿本說明書中對「一個實施例」或「一實施例」之提及意指結合該實施例描述的一特定特徵、結構及/或特性包括於本揭示內容內涵蓋的至少一個實行方案。因此,片語「一個實施例」或「在一實施例中」之出現未必指同一實施例。此外,特定特徵、結構或特性可以除所說明的實施例之外的其他適合形式建立,且所有此類形式可包含於本申請案之申請專利範圍內。
雖然已就有限數目個實施例描述了實施例,但熟 習此項技術者將從中瞭解眾多修改及變體。所附申請專利範圍意欲涵蓋落入本揭示內容之真實精神及範疇內的所有此類修改及變體。

Claims (30)

  1. 一種方法,其包含:使用一基於調色板之編碼器來壓縮色值;找出色值之群集且相對於具有一預定特性之一色值而編碼該群集內之色值;以及編碼具有帶恆定色值之像素或樣本之群集。
  2. 如請求項1之方法,其中該預定特性為該群集內帶最小色值之該樣本或像素。
  3. 如請求項1之方法,其包括編碼一色彩通道為恆定。
  4. 如請求項1之方法,其包括相對於該群集之帶有最小化成本之該預定特性的一樣本或像素而編碼殘值,其中殘值將在相對於具有該預定特性之該色值的一樣本或像素的色彩之間的差異編碼。
  5. 如請求項4之方法,其包括制止對帶一恆定色彩之一群集編碼殘值。
  6. 如請求項3之方法,其包括對每一通道使用一位元來編碼關於是否該通道為恆定色彩之資訊。
  7. 如請求項4之方法,其包括提供每一色彩通道一組位元以指示每一通道需要多少殘餘位元。
  8. 如請求項1之方法,其中找出群集包括使用一K平均數分群演算法。
  9. 如請求項8之方法,其包括找出圍繞一色彩之一最小定界框。
  10. 如請求項1之方法,其包括自一調色板取一第一色彩,建立一圍繞該第一色彩之群集,且接著若一第二色彩與該第一色彩相差一閾值,則形成包括該第二色彩之一第二群集,以及將接著發生之色彩配適至該第一群集及該第二群集中。
  11. 一種儲存指令的一或多個非暫時性電腦可讀媒體,該等指令藉由一處理器執行以完成包含下述之一序列:使用一基於調色板之編碼器來壓縮色值;找出色值之群集且相對於具有一預定特性之一色值而編碼該群集內之色值;以及編碼具有帶恆定色值之像素或樣本之群集。
  12. 如請求項11之媒體,其中該預定特性為該群集內帶最小色值之該樣本或像素。
  13. 如請求項11之媒體,該序列包括編碼一色彩通道為恆定。
  14. 如請求項11之媒體,該序列包括相對於該群集之帶有該最小化成本之預定特性的一樣本或像素編碼殘值,其中殘值將在相對於具有該預定特性之該色值的一樣本或像素的色彩之間的差異編碼。
  15. 如請求項14之媒體,該序列包括制止對帶一恆定色彩之一群集編碼殘值。
  16. 如請求項13之媒體,該序列包括對每一通道使用一位元來編碼關於是否該通道為恆定色彩之資訊。
  17. 如請求項14之媒體,該序列包括提供每一色彩通道一 組位元以指示每一通道需要多少殘餘位元。
  18. 如請求項11之媒體,其中找出群集包括使用一K平均數分群演算法。
  19. 如請求項18之媒體,該序列包括找出圍繞一色彩之一最小定界框。
  20. 如請求項11之媒體,該序列包括自一調色板取一第一色彩,建立一圍繞該第一色彩之群集,且接著若一第二色彩與該第一色彩相差一閾值,則形成包括該第二色彩之一第二群集,以及將接著發生之色彩配適至該第一群集及該第二群集中。
  21. 一種設備,其包含:一處理器,其使用一基於調色板之編碼器來壓縮色值,找出色值之群集且相對於具有一預定特性之一色值而編碼該群集內之色值,及編碼具有帶恆定色值之像素或樣本之群集;以及一儲存器,其耦接至該處理器。
  22. 如請求項21之設備,其中該預定特性為該群集內帶最小色值之該樣本或像素。
  23. 如請求項21之設備,該處理器編碼一色彩通道為恆定。
  24. 如請求項21之設備,該處理器相對於該群集之帶有最小化成本之該預定特性的一樣本或像素編碼殘值,其中殘值將在相對於具有該預定特性之該色值的一樣本或像素的色彩之間的差異編碼。
  25. 如請求項24之設備,該處理器制止對帶一恆定色彩之 一群集編碼殘值。
  26. 如請求項23之設備,該處理器對每一通道使用一位元來編碼關於是否該通道為恆定色彩之資訊。
  27. 如請求項24之設備,該處理器提供每一色彩通道一組位元以指示每一通道需要多少殘餘位元。
  28. 如請求項21之設備,該處理器使用一K平均數分群演算法找出群集。
  29. 如請求項28之設備,該處理器找出圍繞一色彩之一最小定界框。
  30. 如請求項21之設備,該處理器自一調色板取一第一色彩,建立一圍繞該第一色彩之群集,且接著若一第二色彩與該第一色彩相差一閾值,則形成包括該第二色彩之一第二群集,以及將接著發生之色彩配適至該第一群集及該第二群集中。
TW105103305A 2015-03-24 2016-02-02 分群調色板壓縮技術 TWI609350B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/666,452 US9460365B1 (en) 2015-03-24 2015-03-24 Clustered palette compression

Publications (2)

Publication Number Publication Date
TW201702984A TW201702984A (zh) 2017-01-16
TWI609350B true TWI609350B (zh) 2017-12-21

Family

ID=56976538

Family Applications (2)

Application Number Title Priority Date Filing Date
TW106133193A TWI633518B (zh) 2015-03-24 2016-02-02 分群調色板壓縮技術(二)
TW105103305A TWI609350B (zh) 2015-03-24 2016-02-02 分群調色板壓縮技術

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW106133193A TWI633518B (zh) 2015-03-24 2016-02-02 分群調色板壓縮技術(二)

Country Status (5)

Country Link
US (2) US9460365B1 (zh)
EP (1) EP3275185A4 (zh)
CN (1) CN107257989A (zh)
TW (2) TWI633518B (zh)
WO (1) WO2016153686A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9460365B1 (en) * 2015-03-24 2016-10-04 Intel Corporation Clustered palette compression
US10062143B2 (en) * 2016-09-12 2018-08-28 Advanced Micro Devices, Inc. Method and apparatus for compressing randomly accessed data
WO2019075702A1 (en) * 2017-10-19 2019-04-25 Tencent Technology (Shenzhen) Company Limited METHODS AND SYSTEMS FOR PROCESSING GRAPHICS
CN108776982A (zh) * 2018-05-31 2018-11-09 苏州蜗牛数字科技股份有限公司 一种基于调色板压缩图片的显示方法
CN108898180B (zh) * 2018-06-28 2020-09-01 中国人民解放军国防科技大学 一种面向单颗粒冷冻电镜图像的深度聚类方法
CN111462257B (zh) * 2020-03-31 2023-06-23 格兰菲智能科技有限公司 基于调色板的图像处理方法
CN113408573B (zh) * 2021-05-11 2023-02-21 广东工业大学 基于机器学习的瓷砖色号自动分类归类的方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201008250A (en) * 2008-08-14 2010-02-16 Univ Nat Pingtung Sci & Tech Method of color quantization
US20120301022A1 (en) * 2004-04-21 2012-11-29 Slipstream Data Inc. Method, System and Software Product for Color Image Encoding
CN103703779A (zh) * 2011-11-03 2014-04-02 谷歌公司 使用次分辨率图像的图像压缩

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4965845A (en) * 1985-09-05 1990-10-23 Harris Corporation Compression and reconstruction of color aeronautical chart images
JP2864492B2 (ja) * 1987-07-29 1999-03-03 ソニー株式会社 ディジタル信号の記録装置
US5883633A (en) * 1997-04-15 1999-03-16 Microsoft Corporation Method and system of variable run length image encoding using sub-palette
US6385337B1 (en) * 1998-12-21 2002-05-07 Xerox Corporation Method of selecting colors for pixels within blocks for block truncation encoding
GB0104939D0 (en) * 2001-02-28 2001-04-18 Ccc Network Systems Group Ltd Method and system for improved image processing
GB0128888D0 (en) * 2001-12-03 2002-01-23 Imagination Tech Ltd Method and apparatus for compressing data and decompressing compressed data
US7110596B2 (en) * 2002-04-25 2006-09-19 Microsoft Corporation System and method facilitating document image compression utilizing a mask
JP4071701B2 (ja) * 2003-11-11 2008-04-02 富士通株式会社 カラー画像の圧縮方法及びカラー画像圧縮装置
WO2006038611A1 (ja) * 2004-10-05 2006-04-13 Kissei Pharmaceutical Co., Ltd. 下部尿路閉塞疾患に伴う蓄尿障害の予防及び/又は治療剤
US20060204086A1 (en) * 2005-03-10 2006-09-14 Ullas Gargi Compression of palettized images
CN101189875B (zh) * 2005-04-13 2010-11-17 汤姆逊许可公司 利用公共预测器的亮度和色度编码
CN101170487B (zh) * 2006-10-25 2010-05-12 华为技术有限公司 数据流复用中的压缩方法和压缩系统以及压缩设备
CN101663896A (zh) * 2007-04-23 2010-03-03 汤姆森许可贸易公司 用于对视频数据进行编码的方法和设备、用于对编码的视频数据和编码的视频信号进行解码的方法和设备
EP2081155B1 (en) * 2008-01-21 2011-11-16 Telefonaktiebolaget LM Ericsson (publ) Prediction-based image processing
US8335385B2 (en) * 2008-01-21 2012-12-18 Telefonaktiebolaget Lm Ericsson (Publ) Pixel block processing
ATE524927T1 (de) * 2008-01-21 2011-09-15 Ericsson Telefon Ab L M Auf prädiktion basierende bildverarbeitung
EP2107812A1 (en) * 2008-04-03 2009-10-07 STMicroelectronics (Grenoble) SAS Compression/decompression of digital images
EP2128822B1 (en) * 2008-05-27 2012-01-04 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Index-based pixel block processing
US9232226B2 (en) * 2008-08-19 2016-01-05 Marvell World Trade Ltd. Systems and methods for perceptually lossless video compression
US9313526B2 (en) * 2010-02-19 2016-04-12 Skype Data compression for video
JP2012085029A (ja) * 2010-10-08 2012-04-26 Fujitsu Semiconductor Ltd 画像処理装置
AU2010257408B2 (en) * 2010-12-23 2013-10-03 Canon Kabushiki Kaisha Colour encoding clustering
US8655086B1 (en) * 2011-11-01 2014-02-18 Zynga, Inc. Image compression with alpha channel data
US8805069B2 (en) * 2012-06-12 2014-08-12 Kyocera Document Solutions Inc. Cell-based compression of digital images
CN104244007B (zh) * 2013-06-13 2020-09-01 上海天荷电子信息有限公司 一种图像编码方法和装置及解码方法和装置
US9558567B2 (en) * 2013-07-12 2017-01-31 Qualcomm Incorporated Palette prediction in palette-based video coding
EP3090559A2 (en) * 2014-01-02 2016-11-09 VID SCALE, Inc. Two-dimensional palette coding for screen content coding
US10045029B2 (en) 2014-05-06 2018-08-07 Intel Corporation Clustering and encoding for color compression
US9460365B1 (en) * 2015-03-24 2016-10-04 Intel Corporation Clustered palette compression

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120301022A1 (en) * 2004-04-21 2012-11-29 Slipstream Data Inc. Method, System and Software Product for Color Image Encoding
TW201008250A (en) * 2008-08-14 2010-02-16 Univ Nat Pingtung Sci & Tech Method of color quantization
CN103703779A (zh) * 2011-11-03 2014-04-02 谷歌公司 使用次分辨率图像的图像压缩

Also Published As

Publication number Publication date
US10121264B2 (en) 2018-11-06
TW201702984A (zh) 2017-01-16
CN107257989A (zh) 2017-10-17
US9460365B1 (en) 2016-10-04
US20170011532A1 (en) 2017-01-12
WO2016153686A1 (en) 2016-09-29
EP3275185A1 (en) 2018-01-31
EP3275185A4 (en) 2018-09-12
US20160283825A1 (en) 2016-09-29
TW201812694A (zh) 2018-04-01
TWI633518B (zh) 2018-08-21

Similar Documents

Publication Publication Date Title
EP3384465B1 (en) Merging fragments for coarse pixel shading using a weighted average of the attributes of triangles
TWI609350B (zh) 分群調色板壓縮技術
US9916682B2 (en) Variable precision shading
US10565775B2 (en) Method and apparatus for load balancing in a ray tracing architecture
TWI632524B (zh) 以邊緣爲基礎之覆蓋遮罩壓縮技術
US9705526B1 (en) Entropy encoding and decoding of media applications
US20170178594A1 (en) Method and apparatus for color buffer compression
TWI601096B (zh) 用於細分表面的直接和互動式射線追蹤之方法及設備
US20160379400A1 (en) Three-Dimensional Renderer
US20180165799A1 (en) Screen matrix rendering in head mounted displays
TW201724010A (zh) 對於具有較寬單指令多資料(simd)執行寬度之3d管線增加執行緒酬載的技術
US11800083B2 (en) Barreling and compositing of images
US9940734B2 (en) Color transformation using one or multi-dimensional hierarchical lookup table
WO2017049583A1 (en) Gpu-cpu two-path memory copy
WO2018005110A1 (en) Method and apparatus for frame buffer compression