TWI446289B - 無損耗像素處理 - Google Patents
無損耗像素處理 Download PDFInfo
- Publication number
- TWI446289B TWI446289B TW097135290A TW97135290A TWI446289B TW I446289 B TWI446289 B TW I446289B TW 097135290 A TW097135290 A TW 097135290A TW 97135290 A TW97135290 A TW 97135290A TW I446289 B TWI446289 B TW I446289B
- Authority
- TW
- Taiwan
- Prior art keywords
- slope
- column
- pixel
- row
- block
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
- G06T15/405—Hidden part removal using Z-buffer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Multimedia (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Generation (AREA)
Description
本發明一般係關於像素參數值之無損耗壓縮及解壓縮,特定言之係適用於深度緩衝器壓縮及解壓縮之此一壓縮及解壓縮。
三維圖形之即時呈現具有行動終端機上之若干有吸引力應用,包括遊戲、人機介面、訊息、行動商務。由於三維呈現在計算上係昂貴任務,通常必須建立專用硬體以達到充分效能。因此降低此硬體架構之複雜性及頻寬使用的新穎方式非常重要。主要瓶頸,特別係對於行動終端機,係記憶體頻寬。用於減小記憶體頻寬使用之常用技術係深度緩衝器壓縮。
原件,例如三角形,通常係按未分類順序繪製。為了確保僅寫入最接近眼睛之三角形,一般使用深度緩衝器。深度緩衝器針對各像素保持用於該特定像素之深度,即與眼睛之距離。在寫入新像素前,首先從深度緩衝器讀取對應深度。若新深度小於先前寫入之深度,僅寫入新像素。接著必須將新深度值寫入至深度緩衝器。深度值之此讀取及寫入將產生許多記憶體存取,其會限制效能。
深度緩衝器壓縮藉由將深度緩衝器劃分成像素塊(tile)或像素區塊(pixel block)並且以壓縮格式儲存像素塊起作用。當讀取深度緩衝器值時,讀取並且解壓縮整個深度像素塊。接著修改深度值,並且在再次將像素塊寫入至記憶體前將其壓縮。由於掃描場解析(rasterize)通常係根據每一像素塊來完成,一次性讀取或寫入整個像素塊而非根據每一像素讀取及寫入通常不成問題。
由於此解壓縮及壓縮對於特定像素塊可能發生數次,重要的係壓縮無損耗,即非破壞性。
深度緩衝器包含各像素之深度,並且由於景物係由平面三角形構成,起源於特定三角形之像素塊內的所有像素將係共線。特定言之,若像素塊內之所有像素來自相同三角形,像素塊內的所有像素將係共線。在此一情形中,藉由僅儲存所關注三角形的平面等式,而非儲存個別像素深度,可能獲得像素塊之無損耗表示。許多深度緩衝器演算法如此起作用。Hasselgren及Akenine-Mller在其論文[1]中提供熟知深度緩衝器壓縮之廣泛評論。
Hasselgren及Akenine-Mller亦在論文[1]中提出先前技術方案之改良,其使用差動微分脈衝碼調變(differential differential pulse code modulation;DDPCM)。其密鑰構成並非使用{-1,0,1}之修正值,而可在每一像素僅一位元下獲得。其發現係由於x方向上之斜率在兩個值間交替,始終可能使用較小斜率,然後為每像素之斜率使用1位元修正值。
與先前DDPCM方案相比,其中修正值係{-1,0,1}之一,並且因此為每像素使用兩個位元來編碼,Hasselgren及Akenine-Mller使用每像素一位元修正值,從而為每像素節省一位元。此轉變為4×4像素之像素塊內節省的13位元,或者為8×8像素塊節省的61位元。然而,即使採用此位元節省,Hasselgren及Akenine-Mller僅能夠以無損耗方式壓縮可能深度範圍之大約93%。若物件過於接近相機或觀察者,深度緩衝器壓縮演算法將失效,並且必須無壓縮地儲存深度像素塊。
因此需要能夠以更有效方式採用壓縮像素塊之位元,以便能夠增加可按無損耗方式壓縮的像素塊數目,其將導致記憶體頻寬降低。
本發明克服先前技術配置的該等及其他缺點。
本發明之一般目的係提供像素區塊之有效壓縮及解壓縮。
本發明之另一目的係提供調適用於深度緩衝器值之壓縮及解壓縮。
本發明如隨附申請專利範圍所定義滿足該等及其他目的。
簡言之,本發明涉及具有相關聯像素參數值之像素區塊的壓縮及解壓縮,例如深度緩衝器值。壓縮涉及決定參考碼字作為用於區塊之參考像素參數值之表示。決定一列斜率碼字作為用於區塊內之列的一基本參數斜率之一表示。對應地,壓縮涉及決定行斜率碼字作為用於行之基本參數斜率的表示。
根據列/行之像素參數值的至少一部分決定一表示,其指示斜率變化沿列/行之至少一部分發生的像素位置。此一表示係針對區塊內之多個列/行產生,較佳的係針對所有列/行。決定一模式碼字,其係一組多個斜率修正型樣之一表示。每一此類修正型樣係特定預定義表示,其指示可沿列/行應用之位置相依斜率修正項。根據產生之位置指示表示為列/行選擇個別型樣碼字。型樣碼字係來自由模式碼字定義之型樣組的斜率修正型樣之表示。
在壓縮區塊之解壓縮中,根據壓縮區塊內之參考碼字決定參考像素參數值。根據(列及/或行)斜率碼字產生基本參數斜率,例如列及/或行參數斜率。壓縮區塊內之模式碼字用於提供型樣組,其包含多個斜率修正型樣。包含欲解碼之像素的列/行具有相關聯型樣碼字。此型樣碼字用於識別提供之型樣組的斜率修正型樣之一。接著可使用參考參數值、基本參數斜率及斜率修正型樣計算像素之像素參數值。
本發明亦係關於分別用於壓縮像素區塊及解壓縮壓縮區塊之壓縮器及解壓縮器以及壓縮像素區塊之信號表示。
整個圖式中,相同參考字符用於對應或相似的元件。
本發明一般係關於像素參數值之無損耗壓縮及解壓縮,特定言之係適用於深度緩衝器壓縮及解壓縮之此一壓縮及解壓縮。
本發明明確適用於三維(3D)圖形,例如遊戲、3D地圖及景物、3D訊息,例如動畫訊息、螢幕保護程式、人機介面(man-machine interface;MMI)等,但不限於此。因此,本發明亦可用於編碼其他類型之影像或圖形,例如一維(1D)、二維(2D)或3D影像。
在本發明中,壓縮及解壓縮共同處置複數個像素,其通常係像素區塊或像素塊之形式。在本發明之一較佳具體實施例中,像素區塊具有M×N像素之大小,其中M、N係整數,且限制條件係M及N兩者非同時為一。較佳的係M=2m
且N=2n
,其中m、n係零或整數,且限制條件係n及n非同時為零。在典型實施方案中M=N,並且較佳的此類區塊具體實施例可係4×4像素、8×8像素或16×16像素。
表達像素或"影像元件"指區塊或區塊之編碼表示內的元件。此區塊依次對應於影像、紋理或緩衝器之一部分。因此,依據本發明,影像元件可係(1D、2D、3D)紋理之texel(紋理元件)、(1D或2D)影像之像素或3D影像之voxel(體積元件)。一般而言,像素之特性在於相關聯像素參數值或特徵。在本發明之較佳具體實施例中,像素參數值係深度值或所謂的Z值。此特徵表示特定像素至眼睛之深度或距離,並且控制在呈現期間實際顯示之像素。
即使本發明特定言之下係適用於壓縮及解壓縮像素區塊之此類深度值,本發明並不限於此,而可結合其他類型之像素參數值及特徵使用。其包括色彩成分值,例如紅色(R)、綠色(G)或藍色(B)色彩成分,或者某一其他色彩空間內之色彩成分,例如YUV或YCrCb。其他範例包括像素之透明度或α值。
然而,壓縮及解壓縮係調適用於處置共線像素參數值,即位於平面內之參數。因此,欲壓縮之區塊的像素參數值全部位於參數空間之單一平面內,或者位於一組多個平面之一內,通常係兩個平面。此要求意味著可使用少於像素參數值之最初數目位元的位元實現像素區塊之無損耗壓縮。
另外,在下文中,術語"影像"用於表示可藉由本發明編碼及解碼的任何1D、2D或3D影像或紋理,包括但不限於塊形映射、法線映射、照片、遊戲型紋理、文字、圖式、高動態範圍影像及紋理等。
圖1係解說依據本發明壓縮像素區塊之方法的流程圖。該方法在步驟S1內藉由決定參考碼字作為參考像素參數值之表示開始。此碼字較佳的係存在於欲壓縮之區塊內的像素參數值之一的表示。在第一具體實施例中,參考碼字可係參數值之非量化版本。例如,若特定參數值係230=00000000 1110 0110bin
(具有24位元解析度)並且參考碼字具有相同位元解析度,可直接使用值0000 0000 1110 0110bin
作為參考碼字。然而,在其他具體實施例中,最初像素參數值可具有比參考碼字可表示者更高之精度。在此一情形中,參考碼字可係最初像素參數值之量化或捨入版本的表示。例如,參考碼字0000 0000 1110 0110bin
可用作最初像素參數值229.8之表示。另外應注意,參考碼字可包含少於最初像素參數值之位元。例如,21位元碼字可用於表示24位元最初值,同時假定最前位元已知。
S1之碼字決定步驟較佳的係涉及擷取區塊內選定像素位置內的像素之像素參數值,並且視需要從其計算(量化)碼字或直接使用擷取值作為參考碼字。選定像素位置較佳的係區塊內之預定義位置,其意味著依據本發明相同像素位置在碼字決定步驟S1中用於所有欲壓縮之區塊。較佳位置係位於區塊角部之一內的一像素。通常,在本技術中的深度緩衝器值壓縮情形中使用左上角內之像素。然而,本發明並不限於該特定像素位置,並且可使用任何角部像素或區塊內之實際任何像素,儘管圖框像素(特定言之係角部像素)較佳。圖2A及2B解說欲編碼之像素330的4×4區塊300。在該等圖式中,採用實心圓,即左上角內之像素,標記用於決定參考碼字之像素位置。
下一步驟S2決定用於區塊之列斜率碼字,作為用於區塊之列的基本參數斜率之表示。在較佳實施方案中,區塊(之至少一部分)的像素參數值係共線,因此具有至少用於最初、非量化參數值之相同最初列斜率。例如,像素列可具有以下最初值[109.8,112.6,115.4,118.2]。此處,斜率係列內相鄰參數值之間的成對差異,118.2-115.4=115.4-112.6=112.6-109.8=2.8。只要參數值共線,相同列斜率對區塊之其他列亦有效。
列斜率碼字在以上範例內較佳的係最初列斜率之整數部分的表示,即2。若最初非量化參數值在壓縮中可用,步驟S2之碼字決定可計算區塊之任何列內的任何相鄰像素參數值對間之差異。接著決定列斜率碼字作為計算斜率之整數部分的表示(差異)。
若量化參數值,例如捨入至整數值,通常在步驟S2中採取另一方法。以上給出之參數值的捨入版本將係[110,113,115,118]。此處列內相鄰值間的成對差異將給出值2或3。在此一情形中,列斜率碼字被一致地決定為最小斜率值之表示或一致地決定為最大斜率值之表示。此處重要的係必須針對欲編碼之所有區塊取得最小或最大斜率值。簡言之,最小計算斜率值係一致地用作列斜率碼字決定步驟之基礎。此亦適用於負斜率之情形。例如,在最初值之情形中斜率可係-1.6,因此當使用捨入值時係-1或-2。在此一情形中,最小值-2較佳的係用作列斜率碼字決定之基礎。
下一步驟S3實行相似程序,但係用於區塊內之行。結果則係行斜率碼字,其係用於區塊之行的基本參數斜率之表示。此步驟S3係以與步驟S2相同之方式實行,但現在使用行內參數值替代列內參數值。
步驟S1至S3可按任何順序或實際上平行地實行。
現在可逐個列310(圖2A內示意性地解說)或逐個行320(圖2B內示意性地解說)地實行像素區塊300之壓縮。從品質觀點看,兩個可能性係等效的。在下文中,本發明主要係結合逐列壓縮(參見圖2A)來描述。然而,本發明之教導亦可應用於逐行壓縮。在後一情形下,以下描述中的表達"列"由"行"簡單地取代,反之亦然。
下一步驟S4產生指示其中斜率變化沿當前列(或者圖2B之情形中的行)之至少一部分發生的像素位置之表示。此步驟S4可藉由注釋斜率在哪些像素位置不同於區塊之基本列斜率(由在步驟S2內決定之列斜率碼字表示)來實施。因此,假定一列像素值[110,113,115,118]如上並且具有基本參數斜率2。相鄰參數值之間的斜率,即斜率,在此範例中係[-,3,2,3]。在此情形中,像素位置1及3具有不同於二之斜率,因此斜率變化發生於該兩個像素位置。然而,位於像素位置2之斜率等於基本列斜率,並且此處無斜率變化發生。若從以上列出之斜率減去基本列斜率值,則得到[-1,0,1]。結果,指示其中斜率變化沿當前列發生之像素位置的表示可係101之形式,其中1bin
標誌一斜率變化,而0bin
意味著在該位置相鄰參數值間的差異等於基本列斜率。
位置指示表示較佳的係根據列之像素參數值產生。然而,對於特定具體實施例,僅使用列內像素值之子集可足矣。該等表示可視為當沿列/行之至少一部分進行時指示參數值之相對分配。
步驟S4至少重複一次,其係由線L1示意性地解說。此意味著針對像素區塊之至少兩列決定位置指示表示。在一較佳具體實施例中,步驟S4卻係針對區塊之各列實行。
下一步驟S5決定用於區塊之模式碼字。此碼字係一組多個斜率修正型樣之表示。每一此類型樣係特定預定義表示,其指示可沿一列應用之位置相依斜率修正項。因此,此一型樣係具有在解壓縮期間可應用於基本列斜率以針對列內不同像素位置獲得正確斜率值之斜率修正項的位元序列。對於四像素列,型樣可從000bin
高至111bin
。較佳的係存在可用的多個不同型樣組,其中各組包含可用斜率修正型樣之不同子集。
在列斜率碼字係透過最初非量化像素參數值之使用可獲得的列斜率之整數部分的表示之情形中,型樣組可係調適用於處置列斜率之不同分數部分。例如,若最初列斜率之分數部分在間隔[0,k1
]內,則第一型樣組將用於區塊,若分數部分在間隔[k1
,k2
]內,則使用第二組,依此類推,直至最後型樣組,其係調適用於採取具有間隔[ki
,1]內之分數斜率的處置區塊。
因此,模式碼字決定步驟S5涉及從多個預定義組選擇一型樣組。若最初非量化參數值可用並且可能計算最初非量化列斜率,可根據已計算列斜率之特定分數部分選擇型樣組。然而,在其他應用中,僅量化參數值結合區塊壓縮可用。在此一情形中,使用之特定型樣組較佳的係根據產生於步驟S4內之位置指示表示選擇。接著,使用至少兩個或較佳的係全部位置指示表示,並且與可用於不同組之不同斜率修正型樣相比較。選擇包含對應於位置指示表示之型樣的該組。各型樣組較佳的係與組識別碼相關聯。與選定型樣組相關聯之此識別碼接著在步驟S5中用作模式碼字。例如,若存在高至四個不同可用組,可使用2位元模式碼字,3位元模式碼字可處置高至八個不同組,依此類推。
步驟S6從藉由已決定模式碼字表示之型樣組決定型樣碼字作為斜率修正型樣之一表示。此型樣碼字決定係根據針對步驟S4內之當前列產生的位置指示表示來實行。因此,步驟S6涉及從對應於針對列計算之位置指示表示的選定組選擇斜率修正型樣之一。型樣碼字經決定係選定斜率修正型樣之指示器。
步驟S6較佳的係針對區塊內之所有列或至少針對在步驟S4內已產生位置指示表示的該等列予以實行,其由線L2示意性地解說。因此每一此類列具有指派之型樣碼字,其與藉由已決定模式碼字表示之型樣組內的修正型樣之一相關聯。
該方法視需要但較佳的係包含當前進至下一列時可應用之斜率或像素修改項的決定。此一斜率修改項係單一修正項,其可在前進至下一列時應用於獲得正確行斜率。例如,假定第一行之量化像素參數值係[110,231,351,472]。基本行斜率在此情形中係兩個相鄰像素值之間的最小差異,即120。接著將斜率或像素修改項0bin
指派給斜率實際上係120的該等列(在此範例中係從列1至2),而修改項1bin
用於斜率係121而非120的該等列過渡。在此處之該範例中,斜率修改項將係101。若區塊包含N列,接著較佳的係決定N-1斜率修改項。
因此該方法較佳的係包含額外步驟,其針對區塊內之至少一列(或圖2B之情形中的行)決定可應用於行基本參數斜率的斜率修改項。修改項決定另外係根據行之像素參數值的至少一部分來實行。該方法即結束。
壓縮結果係最初像素區塊之壓縮表示。圖3解說此一壓縮區塊400。壓縮區塊400包含參考碼字410、列斜率碼字420、行斜率碼字430、模式碼字440及多個型樣碼字450,較佳的係區塊內之各列(或行)具有一此類碼字450。壓縮區塊400較佳的係亦包含如先前所描述用於行方向之像素或斜率修改項460。本發明預期包括壓縮區塊400之組件的實際順序可不同於圖式內所解說者。
圖4係詳細解說產生位置指示表示的具體實施例之流程圖。該方法自圖1之步驟S3繼續。下一步驟S10量化最初參數值,除非參數值已被量化。量化之典型範例係將值捨入至整數。一般而言,量化涉及將最初參數值寫入至具有定義有限位元大小之量化值內。量化值則較佳的係最初值之最佳Q位元表示,其中Q係量化值之位元大小。下一步驟S11實行一列(或行)內相鄰量化像素參數值及用於列(或行)之基本參數斜率的成對減法。因此,計算涉及決定Pi+1
-Pi
-R,其中Pi
係位於列內位置i之量化像素參數值,而R係用於列之基本參數斜率。該方法接著繼續至圖1之步驟S5或返回至步驟S10,其用於針對下一列決定位置指示表示。
圖5A至5C解說依據本發明決定位置指示表示背後的原理。例如,4像素列可具有以下最初參數值[109.8,112.6,115.4,118.2]。此將等效於繪製斜率為2.8之線,如圖5A中可看出。
在圖5A中,其中像素之中點線與已繪製線交叉的像素已被標記。標記之像素亦表示藉由量化最初值獲得的值,即[110,113,115,118]。
藉由從非量化參數值移除斜率2.8之整數部分,即2,得到以下值:[109.8,110.6,111.4,112.2]。此等效於圖5B之圖式,其中線之斜率現在必須小於1,因為僅分數斜率部分保留。在此情形中,分數斜率係2.8-2.0=0.8。
從圖5B之此圖式,可識別發生斜率變化的該等像素位置。此對應於當沿列進行時必須前進一步的該等位置。像素0係錨定或參考值,並無修正值。像素1係高於先前像素之一步階。此意味著列斜率變化發生於此位置,因此其得到值1bin
。像素2與先前值係相同高度,並且無斜率變化發生。因此像素得到值0bin
。最後,像素3得到修正值1bin
。圖5C解說最終位置指示表示101bin
,可看出該表示可視為不同片段長度之步階型樣。
此處本發明之關鍵在於,應注意,所有列將具有完全相同之分數斜率,此情形中係0.8。此意味著列間之唯一差異係線位置而非其斜率。則此將對應於具有不同步階長度之不同步階型樣。
圖6解說對一列四個像素可能的所有修正型樣,即位置指示表示。已將型樣組織成四個不同型樣組。第一型樣組具有指派模式碼字00bin
並且包括型樣000bin
、001bin
、010bin
及100bin
。該等型樣對應於長度3及4之片段。模式涵蓋從0至1/3之分數斜率。下一組具有模式碼字01bin
並且包括修正型樣101bin
、001bin
、010bin
及100bin
。此組包括具有2及3像素之片段長度的型樣並且涵蓋1/3與1/2之間的分數斜率。第三組具有模式碼字10bin
並且包含型樣101bin
、110bin
、010bin
及011bin
。型樣具有長度2像素之片段間的長度1像素之零或一片段。可採用此組處置間隔1/2及2/3內之分數斜率。最終組已被指派碼字11bin
並且包含修正型樣101bin
、110bin
、111bin
及011bin
。該等型樣具有長度2像素之片段間的長度1之一或兩個片段,並且涵蓋分數間隔2/3至1。
Hasselgren及Akenine-Mller[1]建議之先前技術DDPCM程序在其修正矩陣內為每4×4區塊花費15位元。本發明對於此區塊大小僅需要一個2位元模式碼字、四個2位元型樣碼字(每一列或行得到一個)以及三個1位元斜率修改項,共計13位元。此意味著與先前技術解決方案相比節省2位元。此2位元節省可用於減小壓縮區塊之總體大小的目的。或者,若與先前技術相同之總壓縮區塊大小有利,兩個自由位元可用於提升參考碼字及/或斜率碼字內之解析度。此一提升意味著以無損耗方式壓縮之區塊的百分比與先前技術之使用相比增加。
以下係用以解說本發明之行為的壓縮範例。假定量化輸入像素區塊具有以下參數值:
首先,選擇參考參數像素值並決定參考碼字。碼字可係左上角內之像素值的位元表示,即110。在此範例中,如圖2A內所解說逐列地壓縮區塊。基本列參數斜率係定義為當在列內前進一步時的最小斜率。在此範例中,不同列斜率係2及3,其意味著列斜率碼字係決定為二之位元表示。對應行斜率係120及121,其意味著行斜率碼字係決定為120之位元表示。之後,實行成對減法,其中從下一參數值減去相同列內之先前相鄰參數值。另外,從所得差異減去基本列參數斜率2,以獲得位置指示表示。用於第一列之結果係:
113-110-2=1
115-113-2=0
118-115-2=1
用於該列之位置指示表示係101bin
。對其他三列實行相同程序給出:
接著根據該四個位置指示表示選擇用於區塊之相關型樣組。藉由查詢圖6,可看出具有模式碼字11bin
之型樣組包含所有所需修正型樣。接著為列決定對應於位置指示表示之特定修正型樣。第一列具有表示101bin
。此對應於圖6內具有型樣碼字00bin
之修正型樣。剩餘列具有碼字11bin
、10bin
及01bin
。
最後,藉由第一行內之相鄰像素參數值之成對減法並且藉由減去基本行參數斜率決定用於行之斜率修改項。結果變為:
231-110-120=1
351-231-120=0
472-351-120=1
斜率修改項因此係101bin
。最終壓縮區塊因此包含:
i)110之位元表示-參考碼字
ii)2之位元表示-列斜率碼字
iii)120之位元表示-行斜率碼字
iv)11bin
-模式碼字
v)00bin
、11bin
、10bin
、01bin
-型樣碼字
vi)101bin
-斜率修改項
與文件[1]內之先前技術相比用於本發明內之增益對於4×4區塊係2位元。此僅可視為一較小優點。然而,應牢記,此2位元節省係在無任何壓縮品質降低的條件下取得。對於較大區塊大小,例如8×8區塊,增益與先前技術相比大幅增加。
與4×4區塊相比,8×8區塊需要更多型樣模式以允許更多分數斜率。其原因在於因為每一列現在具有八個像素而非四個,可獲得更精細之粒狀表示。
可能修正型樣之分析顯示八個型樣模式將涵蓋所有情形:
模式A:具有長度1或2之片段的修正型樣(四個或更多連續1)
模式B:具有長度1或2之片段的修正型樣(三個或四個連續1)
模式C:具有長度1或2之片段的修正型樣(兩個或三個連續1)
模式D:具有長度1或2之片段的修正型樣(一個或兩個連續1)
模式E:具有長度1或2之片段的修正型樣(零或一個連續1)
模式F:具有長度2或3之片段的修正型樣,
模式G:具有長度3、4或5之片段的修正型樣,
模式H:具有長度5、6、7或8之片段的修正型樣。
對於所有該等模式,編碼八個像素之整個列僅需要四個位元,參見附錄。因此,在8×8區塊中,模式碼字變為3位元,型樣碼字係4位元。此意味著除參考碼字、列及行斜率碼字外,壓縮8×8區塊包含3+8×4+7=42位元,其中最後7位元係用於第一行之七個1位元斜率修改項。此應與文件[1]內之先前技術解決方案相比較,其修正矩陣需要63位元。結果,每一壓縮區塊節省21位元,其可用於提升參考碼字、列斜率碼字及/或行斜率碼字之解析度。或者,可減小壓縮區塊之總大小。
雖然此解決方案在理論上較合理,從實施觀點看可能並非最佳。在16個7位元型樣(修正型樣)間選擇在表面積上可能變得較大。其次,在8×8情形中實際上不需要如此多額外位元。若採用完全解析度編碼所有參數,得到:
參考碼字:24位元
列及行斜率碼字:2×25位元
模式碼字:3位元
型樣碼字:8×4位元
斜率修改項:7位元
總共:116位元
此遠小於128,因此可對使用稍多低效率編碼以便減輕實施負擔較有意義。壓縮區塊之所需位元大小一般係由用於深度緩衝器架構內之匯流排頻寬定義。較佳的係在單一記憶體存取或在盡可能少之此類存取中擷取壓縮區塊。目前,用於深度緩衝器架構之匯流排頻寬通常係64或128位元。結果,與116位元相比,具有128位元或稍小之壓縮區塊大小可較佳,因為116位元與128位元區塊需要相同數目之記憶體存取。然而,若116位元版本關於矽面積之實施負擔顯著高於128位元版本,後者最可能符合需要。
一替代方案係將8像素列(7修正位元)編碼為兩個4像素列(3修正位元加1位元斜率修改項)。接著可使用與4×4情形中相同的編碼。依次每列需要5位元,因為每列需要兩個2位元型樣碼字加1位元斜率修改項。8×8區塊將使用下列內容來編碼:
參考碼字:24位元
列及行斜率碼字:2×25位元
模式碼字:2位元
型樣碼字:8×5位元
斜率修改項:7位元
總共:123位元
此仍在128位元之預算下,若視為較佳壓縮區塊大小。
在此一情形中,圖1之步驟S4涉及針對列/行並且根據列/行之像素參數值的第一部分產生第一位置指示表示。步驟S4亦包含根據列/行之像素參數的第二(剩餘)部分產生第二位置指示表示。步驟S6接著包含決定用於每一列/行之兩個像素位置之各者的型樣碼字。
在本發明之以上提出範例中,區塊之所有像素參數值已在一平面內。此涵蓋深度緩衝器內之許多不同區塊。然而,有時兩個或更多三角形可至少部分位於給定區塊內部。在此一情形中,區塊之像素參數值將屬於多個不同平面之一。若允許每區塊一個平面或每區塊兩個平面,便可處置絕大多數區塊。下文中,提出此一每區塊兩個平面之解決方案。該解決方案假定一線可用於提供兩個平面間的分割。使用線進行分割不會涵蓋所有情形,例如當三角形之尖端在區塊內部時,並且必須留下此類像素塊未壓縮。然而,使用此簡單分割,可處置大多數情形。如圖8內所解說,使用直線將像素劃分成兩個分區,其中第一像素分區位於第一平面內,另一分區位於第二平面內。應注意,本發明並不限於圖8內所解說之特定分割,而可處置具有可藉由區塊內線分離的兩個平面之任何區塊。
根據實際像素參數值,一般兩個平面不可能具有相同型樣模式。此係由於型樣模式取決於分數斜率之事實,其通常對於兩個平面不同。
線可使用左頂部像素(以實心圓標記)及右底部像素(以實心圓標記)作為參考參數值或錨定點,或者使用右頂部及左底部。在壓縮區塊內儲存一位元,其係表示為對角線位元,以在該兩個組態間選擇。分割較佳的係以如Hasselgren及Akenine-Mller[1]所教導之相同方式來編碼。簡言之,針對列或行之至少一部分計算位置指示表示。若列或行部分之兩個相鄰像素之捨入像素參數值間的差異超過基本列(行)參數斜率達一以上,則已到達斷點。接著儲存該像素之水平(垂直)座標。僅沿各列或行儲存第一此斷點。若在沿行而非列橫穿時發現斷點,則對所有剩餘列給出斷點座標零。
圖8中,以粗鋸齒線標記分割。因此,在該範例中,第一列完全屬於最左平面,而對於第二線,前7像素屬於最左平面,最後像素屬於最右平面,依此類推。
為了與僅儲存上述位元型樣相比節省位元,需要每列(若使用行式壓縮則係行)能夠儲存兩個片段,其長度總和為8。為此,吾人為3、5及6像素引入若干型樣模式。
圖9係可用於三位元之列片段的修正型樣組之解說。從圖式中可看出,存在兩個型樣模式,其各包含三個修正型樣:用於模式0bin
之00bin
、01bin
、10bin
及用於模式1bin
之11bin
、01bin
、10bin
。
由於各組內存在三個型樣,將需要一2位元型樣碼字。然而,如下文所進一步描述,在特定3像素列部分內可更有效地儲存模式碼字及型樣碼字。
圖10解說在5像素之列部分情形中可用的六個型樣組。各此類型樣組包含五個不同修正型樣,如圖式中所解說。三個位元之型樣碼字大小可用於表示不同修正型樣。然而,此處亦可採用更有效方式,如下文所進一步顯示。
圖11A至11C共同解說七個型樣組,且每組具有可用於六個像素之一列部分的六個斜率修正型樣。
觀察圖8,分割一列存在九種可能性。例如,第一列具有指派至最左平面之8像素,而未指派像素至最右平面。最後列具有指派至最左平面之一像素及指派至最右平面之七個像素。未顯示的最後(第九)組合係將所有八個像素指派至最右平面。
如圖12A內所見,當8個像素310位於邊界之左側時,將列310處理為6像素列部分312加上一3像素列部分314。因此,當前列需要一1位元斜率修改項、用於6像素列部分312之3位元第一型樣碼字及用於3像素部分314之2位元第二型樣碼字,從而給出總共六個位元。
此情況在圖12B中解說。同樣,吾人將一位元用於左斜率修改項(y成分)、將3位元型樣碼字用於6像素列部分312加上將單一斜率修改項用於邊界左邊的剩餘像素330。在邊界右邊,具有一單一斜率修改項(y成分)。左側總共具有1+3+1位元,右側1位元,共計產生6位元。
從圖12C內可看出,此處吾人將一位元用於左斜率修改項(y成分),並且將3位元型樣碼字用於邊界左邊的6像素列部分312。在右邊,具有斜率修改項(y成分)及用於單一像素330之1位元斜率修改項。因此,左邊係1+3位元,右邊係1+1,總共給出六個位元。
如圖12D內所解說,一直接解決方案係在邊界左邊使用5像素列部分310並且在右邊使用3像素片段312。
然而,此方案之一問題係5像素塊由五進制變數表示,若獨立儲存其需要三個位元。另外,3片段係三進制變數,需要兩個位元。算上兩個斜率修改項(y成分)位元,此即七位元。此較不方便,因為所有其他組合可僅用6位元來管理。然而,實際上可針對本情形減小此位元利用。
在此一情形中,五進制變數與三進制變數一起儲存。由於5×3=15<16,僅需要四個位元以儲存兩個片段。例如,可使用表I之編碼:
表I參考圖9及10內所解說之斜率修正型樣。
依此方式,斜率修正項(y成分)需要二位元,型樣碼字需要四位元,總共產生六位元。
此係一簡單情形,可如圖12E內所解說,將4像素型樣用於邊界任一側上的兩個像素列部分312、314。
因此,左側上具有用於斜率修改項(y成分)之1位於及用於型樣碼字之3位元,右側上同樣如此。總共六位元。
對於列邊界左側上具有3、2、1及零像素並且右側上具有5、6、7及8像素的該等情形,利用上文已描述之相同編碼,但兩個像素部分被交換。
另外應注意,即使可為不同列使用不同列片段長度,吾人可為所有列使用相同模式。然而,可發生一情況,其中列包含6像素列片段並且相同平面之另一列包含3像素列片段,以及6像素列片段需要模式110bin
。對於3像素列部分,僅具有兩個可選擇的模式0bin
及1bin
。因此在此一情形中,可依據以下表II實行模式(碼字)及型樣組之選擇。在表II中,針對塊長度列出之不同模式對應於圖6、9、10及11A至11C內解說的數字。
因此僅需要使用三個位元在每平面儲存一模式碼字。由於具有兩個平面,此意味著列碼字使用6位元。如上文所描述,總共每列需要六位元並且存在8列,從而給出用於型樣碼字及斜率修改項之8×6=48位元。然而,左頂部及右底部y座標(或右頂部及左底部)不需要斜率修改項,從而產生用於型樣碼字及斜率修改項之46位元。連同模式碼字,此共計46+6=52位元。此應與文件[1]內基於矩陣之解決方案相比較,其需要62位元。因此,與每區塊具有兩個平面之先前技術相比,本發明實現10位元之位元節省。
參考文件[1]內的2平面8×8系統的192位元版本,提出以下位元佈局:
對角線位元:1位元
錨定點:21+22=43位元
差值:4×15=60位元
分割位元:26位元
修正位元:62位元
總共:192位元
使用本發明,可使用52而非62位元編碼修正位元。若區塊需要相似總位元大小,則可能位元分配如下:
對角線位元:1位元
參考碼字:2×24=48位元
列斜率碼字:2×16=32位元
行斜率碼字:2×16=32位元
分割位元:26位元
修正位元:52位元
總共:191位元
修正位元表示模式碼字、型樣碼字及斜率修改項。
在此說明性範例中,花費於參考碼字及斜率碼字上之位元數目與文件[1]相比已增加。或者,可花費更多位元於斜率碼字上,而花費於參考碼字上之位元數目僅略微增加或無增加。在任何情形中,用於其他參數之增加數目之位元意味著本發明能夠在深度緩衝器內壓縮更高百分比之區塊,其意味著記憶體頻寬將降低。
與文件[1]內之4×4系統相比,本發明已改善具有兩個位元之一平面模式,或位元之3%。該兩個位元可用於延伸某些參數之範圍,使得壓縮更高百分比之像素塊變為可能,從而降低記憶體頻寬要求。與文件[1]內之8×8系統相比,本發明已改善具有14至20位元之一平面模式,或位元之11至16%。因此一平面模式現在可處置所有可能一平面區塊,從而增加可使用此模式壓縮之像素塊的百分比。二平面模式改善10位元或位元之8%。該等位元亦花費於改善參數範圍,以便可壓縮更高百分比之區塊。
因此,本發明能夠藉由決定參考碼字、列斜率碼字、行斜率碼字及修改項碼字壓縮M×N像素之區塊,其中修改項碼字係可用於基本列參數及基本行參數斜率之至少一個的多個斜率修改項或修正項之表示。此修改項碼字共同表示模式碼字、型樣碼字及斜率修改項。與先前技術清楚對比,本發明可決定此一修改項碼字以具有少於M×N-1位元之總長度。例如,Hasselgren及Akenine-Mller需要15位元以便採用4×4區塊表示其修正矩陣,而本發明僅需要13位元。相應地,先前技術對於採用8×8區塊之修正矩陣需要至少63位元,而本發明可採用43位元處理此一區塊。
簡言之,回到圖1。若區塊包含如上所描述之兩個平面,步驟S1包含為第一平面之像素決定第一參考碼字,並且為第二平面之像素決定第二參考碼字。兩個碼字較佳的係表示位於區塊之左頂部角部及右底部角部或右頂部角部或左底部角部的像素參數值。相應地,步驟S2及S3包含針對區塊內兩個平面之各者決定個別列及行斜率碼字。如先前所描述,但使用僅屬於區塊內個別平面之像素實行該等步驟。
步驟S4包含針對一列或行並且根據列/行之像素參數的第一部分產生第一表示,其指示斜率變化沿第一列/行部分發生的像素位置。步驟S4亦涉及針對列/行並且根據列/行之像素參數的第二部分產生第二表示,其指示斜率變化沿第二部分發生之像素位置。在此情形中,第一列/行部分屬於第一平面,而第二列/行部分屬於第二平面。S4較佳的係針對區塊內之所有列/行重複此步驟。應注意,對於列/行之一,所有像素可僅屬於平面之一。在此一情形中,接著針對該列/行產生單一位置指示表示。
步驟S5決定用於區塊內第一平面之第一模式碼字及用於第二平面之第二模式碼字。較佳的係根據針對屬於不同平面之列/行產生之位置指示表示,並且較佳的係根據上文列出之表II實行碼字決定。在大多數實際情形中,兩個模式碼字將具有不同位元值,因此表示不同型樣組。
步驟S6決定用於不同列/行部分之型樣碼字,作為選自用於區塊內各平面之型樣組的斜率修正型樣之表示。因此,第一平面一般可從第一型樣組選擇修正型樣,同時從第二組選擇斜率修正型樣,不同型樣組可用於第二平面之列/行部分。型樣碼字決定係根據針對不同列/行部分產生的位置指示表示來實行。應注意,整個區塊可在單一操作內編碼,以便將兩個型樣碼字一起產生。
最後,基本上藉由為每一平面實行一次前述程序決定用於兩個平面之斜率修改項。
圖1內所解說之方法亦涉及決定列/行之分區像素。接著可根據分區像素定義屬於第一平面之列/行之部分及屬於第二平面之列/行之部分。此一分區像素較佳的係針對區塊內之多個列/行來決定。
圖13解說一流程圖,其解說從壓縮像素區塊解壓縮像素之方法。該方法始於步驟S20,其中根據參考碼字產生參考像素參數值。在典型實施方案中,參考值與碼字間存在一對一關係,並且步驟S20僅涉及從壓縮區塊擷取對應於參考碼字之位元。然而,在其他應用中,例如,可藉由將參考碼字之X位元擴展至Y位元值獲得參考值,其中X≠Y,例如,藉由複製符號位元以得到Y位元值或藉由將預定義位元字(例如僅1bin
之字元)作為最高有效位元加至X位元碼字以得到Y位元值。
在步驟S21內決定一基本參數斜率。此步驟可涉及根據區塊內之列斜率碼字決定基本列參數斜率,根據行斜率碼字決定基本行參數斜率,但較佳的係涉及決定列及行參數斜率。此產生可如上文針對參考值所提及藉由簡單位元擷取程序或擴展程序來實行。
下一步驟S22根據壓縮區塊內之模式碼字提供一組修正型樣。區塊內之各列/行與步驟S23內用於在步驟S22內所提供的型樣組中選擇斜率修正型樣之一的型樣碼字相關聯。
步驟S20至S22可按任何順序或實際上平行地實行。
接著在步驟S24內根據來自步驟S20之參考像素參數值、來自步驟S21之基本參數斜率(即基本列參數斜率及/或基本行參數斜率)以及選定斜率修正型樣計算用於區塊內一像素的參數值。
視需要,並且根據區塊內像素之特定位置,可應用於基本行/斜率參數斜率之一或多個斜率修改項可用於步驟S24之值計算中。
該方法即結束。
在步驟S23內選擇之修正型樣包含多個斜率修正項。用於步驟S24之參數值計算內的特定斜率修正項取決於像素區塊之列或行內的像素位置。
以下等式1可用於表示在列式解壓縮之情形中步驟S24之像素參數值之計算,參見圖2A:
其中值(x,y)表示位於區塊內像素位置(x,y)之已計算參數值,x=0、1、…、M並且y=0、1、…、N(M、N係整數,且限制條件係M及N非一),R係參考參數值,Δx
係基本列參數斜率,Δy
係基本行參數斜率,係位於列內像素位置i並且從斜率修正型樣獲得之斜率修正項,係指派至列j之斜率修改項。在等式1中,=0且=0。在行式解壓縮情形中,參見圖2B,等式1經重寫並且變成:
其中係位於行內像素位置i並且從斜率修正型樣獲得之斜率修正項,係指派至行j之斜率修改項。在等式2中,=0且=0。
例如,假定以下壓縮區塊表示:
參考碼字:0000 0000 0010 0100 0110 1001
列斜率碼字:0 0000 0000 0000 0001 1011 0000
行斜率碼字:1 1111 1111 1111 1111 1001 0111
模式碼字:10
型樣碼字:00 01 11 01
斜率修改項:1 0 1
參考參數值則為:9321
基本列參數斜率:432
基本行參數斜率:-105
使用之特定型樣組係圖6內之型樣2(10bin
)。在第一列中,修正型樣應為101。第一列之參數值則為:
值(0,0)=9321
值(1,0)=9321+432+1=9754
值(2,0)=9754+432+0=10186
值(3,0)=10186+432+1=10619
用於第二列之修正型樣應係110,因為用於該列之型樣碼字係01bin
。第二列之參數值變為:
值(1,0)=9321-105+1=9217
值(1,1)=9217+432+1=9650
值(1,2)=9650+432+1=10083
值(1,3)=10083+432+0=10515
接著可為剩餘列進行相似程序。
圖14係可應用本發明之教導的深度緩衝器架構1之示意性概述。架構包含用於儲存像素區塊(其中包含深度值)之隨機存取記憶體(RAM)50。深度單元10包含依據本發明之解壓縮器200,其用於解壓縮從RAM 50擷取之壓縮區塊。將解壓縮或解碼區塊暫時儲存於深度單元10之相關聯像素塊快取記憶體14中。亦將依據本發明之壓縮器100提供於深度單元10中,其用於壓縮存在於快取記憶體14內之像素區塊以儲存於RAM 50中。
在較佳具體實施例中,深度單元10亦包含像素塊表快取記憶體12。此表快取記憶體12儲存與像素區塊相關聯但與深度緩衝器資料保持分離之標頭資訊。像素塊表項目通常包含旗標,其標誌相關聯像素區塊係以未壓縮形式還是以壓縮形式儲存於RAM 50中。在後一情形中,旗標較佳的係亦標誌壓縮區塊之大小,因為不同壓縮區塊可具有不同總位元長度。例如,2位元旗標可用於標誌未壓縮區塊,以最初大小之75%壓縮,以最初大小之50%壓縮或以最初大小之25%壓縮。
掃描場解析器(rasterizer)20係連接至深度單元10,並實行像素之實際掃描場解析。掃描場解析器20係連接至一或多個像素管線30,其用於計算像素之深度及色彩。各像素管線30係連接至深度測試單元40,其負責廢棄藉由先前繪製之幾何形狀所囚錮之像素,即具有較大深度值。
圖15係依據本發明之壓縮器100的示意性方塊圖。壓縮器100包含參考量化器110,其係配置成決定參考碼字作為用於欲壓縮之像素區塊的參考像素參數值之表示。列斜率量化器120決定用於區塊之列斜率碼字,作為如前所述用於區塊內列之基本參數斜率的表示。對應行斜率量化器130係配置成決定用於區塊行之基本參數斜率。
壓縮器100亦包含表示產生器140,其用於針對區塊之至少一部分內的各列/行(較佳的係區塊內之所有列/行)產生位置指示表示。產生器140較佳的係根據列/行(之部分)之像素參數值的至少一部分實行表示產生。在壓縮器100內提供一模式選擇器150,其用於決定模式碼字作為可沿列/行應用之特定預定義斜率修正項的一組多個斜率修正型樣之表示。模式選擇器150較佳的係根據藉由產生器140產生的位置指示表示從多個已定義型樣組實行此一組之選擇。一旦已選擇此一型樣組,模式選擇器150提供模式碼字作為選定型樣組之表示。
型樣管理器160係配置成連接至模式選擇器150,其用於針對至少一列/行,較佳的係區塊內之所有列/行,決定一型樣碼字作為藉由模式選擇器150選擇之型樣組內的斜率修正型樣之一的表示。管理器160亦係連接至表示產生器140並且為列/行使用特定位置指示表示,以決定將該組之哪些斜率修正型樣用於不同列/行。
儘管圖式中未解說,壓縮器100較佳的係亦包含修改項產生器,其用於在解壓縮期間產生可應用於基本行/列參數斜率之至少一斜率修改項。
如前文已描述,型樣管理器160實際上可為每一區塊列/行決定兩個型樣碼字,特定言之係在將8像素列/行作為兩個4像素塊管理的條件下。另外,在區塊內像素非共線而是屬於兩個平面之一的情形中,量化器110決定第一及第二參考碼字,即區塊內之平面各有一個。斜率量化器120、130同樣分別決定第一及第二列及行斜率碼字。根據個別列/行塊包含多少位元,表示產生器140將為區塊內之一些列/行決定兩個位置指示表示,而對於其他僅決定一此類表示。模式選擇器150為第一平面決定第一模式碼字,並為第二平面決定第二模式碼字。型樣管理器160接著選擇表示藉由用於存在於第一平面內之列/行塊之第一模式碼字定義的組之斜率修正型樣的型樣碼字,並且選擇表示藉由用於存在於第二平面內之列/行塊之第二模式碼字定義的組之斜率修正型樣的型樣碼字。
壓縮器100之單元110至160可提供為軟體、硬體或其組合。單元110至160可在壓縮器100內一起實施。或者,提供於深度緩衝器架構內其他處的某些單元亦可採用分散式實施。
圖16係表示產生器140之具體實施例的示意性方塊圖。此產生器140包含可選值量化器142,其係配置成將最初參數值量化(例如捨入)至量化值。若已經量化輸入參數值,可省略此單元142。將計算器144配置於產生器140內,其用於針對列/行之至少一部分內的各像素從當前像素之量化參數值減去列/行內之一先前像素的量化參數值或用於列/行之參考參數值及基本參數斜率。一旦為列/行(部分)內之所有像素實行此程序,便決定位置指示表示。
表示產生器140之單元142及144可提供為軟體、硬體或其組合。單元142及144可在表示產生器140內一起實施。或者,提供於壓縮器內其他處的某些單元亦可採用分散式實施。
圖17係依據本發明之解壓縮器200的示意性方塊圖。解壓縮器200包含一參考產生器210,其用於根據壓縮像素區塊內之參考碼字產生一參考像素參數值。產生器210可經組態用以簡單地擷取碼字之位元序列,其用於提供參考值,或者進一步處理位元序列,例如加以擴展,以得到目標值。在解壓縮器200內提供一斜率產生器220,其用於根據壓縮區塊之斜率碼字決定基本參數斜率。在第一具體實施例中,產生器220僅根據列斜率碼字決定基本列斜率。第二具體實施例涉及使用行斜率碼字決定基本行斜率。然而,在第三及較佳具體實施例中,斜率產生器220分別根據列及行斜率碼字決定基本列斜率及基本行斜率兩者。
解壓縮器200亦包含組提供器230,其用於根據壓縮區塊之模式碼字提供一組多個斜率修正型樣。提供器230較佳的係從包含多個不同此類型樣組之儲存位置(未解說)選擇該組。
將型樣選擇器240配置成根據與包含欲解碼像素之列/行相關聯之型樣碼字從已提供組選擇斜率修正型樣。將值決定器250連接至參考產生器210、斜率產生器220及型樣選擇器240。決定器250根據來自參考產生器210之參考參數值、來自斜率產生器220之基本(列及/或行)參數斜率及來自選擇器240之斜率修正型樣計算用於像素之像素參數值。可將決定器250實施成實行提供於以上等式1或2內的任何計算,以決定像素參數值。在替代計算中,決定器250簡單地將基本參數斜率及選自斜率修正型樣之斜率修正項加至藉由決定器250針對列/行內的先前相鄰像素決定之像素參數值或者加至參考像素參數值。在此一情形中,解壓縮器200可包含修改項選擇器260,其係配置成根據區塊內或區塊之列/行內當前像素之位置從型樣選擇特定斜率修正項。
根據區塊是否包含屬於不同平面之像素或是否將列/行作為兩個列/行塊處置,參考產生器210可決定兩個基本參考值(各平面得到一個),斜率產生器220產生兩個列及兩個行參數斜率(每一平面得到一列及行斜率),組提供器230提供兩個型樣組(各平面得到一個),型樣選擇器240為每一列/行(根據分區位置)選擇一或兩個斜率修正型樣。
解壓縮器200之單元210至260可提供為軟體、硬體或其組合。單元210至260可在解壓縮器200內一起實施。或者,提供於深度緩衝器架構內其他處的某些單元亦可採用分散式實施。
熟習技術人士應瞭解,可對本發明作出各種修改及變更而不背離其範疇,本發明之範疇由隨附申請專利範圍定義。
[1] Haselgren及Akenine-Mller,"有效深度緩衝器壓縮(Efficient Depth Buffer Compression)",Graphics Hardware2006年第103至110頁。
此附錄提供針對每列或行具有八個像素之區塊決定型樣碼字的資訊。先前已揭示,存在八個不同模式(模式A至H),其具有不同片段長度之修正型樣。
此模式係關於具有二像素長度之片段及一像素長度之片段的修正型樣,其中在長度二之片段間存在四個或四個以上長度一之片段。前3位元表示第一2像素片段沿列或行之位置。若無2像素片段,將使用位置7。最後位元告知在長度二之下一片段前是否存在四個長度一之片段("0bin
"),或者在長度二之下一片段前是否存在五個或五個以上長度一之片段("1bin
")。根據第一2片段之位置,可能不需要此位元。在此一情形中,可省略位元或設定為任意值。圖18A示意性地解說具有修正型樣1111011bin
的此情況。2像素片段發生於列內第五號像素位置。結果,可將型樣碼字之前三個位元設定為101bin
=5。可省略最後位元,並且將101bin
用作修正型樣1111011bin
之表示。或者,可加上任意位元,並且可將1010bin
或1011bin
用作修正型樣1111011bin
之表示。
另一範例係在圖18B內。此處,型樣碼字之前三個位元係010bin
,其指示第一2像素片段位於位置2。由於此二片段後是否跟隨四個或四個以上之一片段無關,可省略型樣碼字之最後位元或設定為任意值。
第三範例係圖18C內之型樣0111110bin
。此處,前三個位元係000bin
,以指示第一2像素片段位於位置0。最後位元係0,其指示下一二片段前存在四個1像素片段。因此,型樣碼字0000bin
可用於表示型樣011110bin
。此原理接著可延伸至此模式之第一2像素片段的其他像素位置。
該模式包含具有長度為一或二像素之片段並且具有三個或四個連續1像素片段的修正型樣。一4位元型樣碼字可用於表示此模式之不同修正型樣。同樣,四個位元中三個用於定義列或行內第一2像素片段之位置。對於圖18C,此係位置0,並且3位元位置表示因此係000bin
。單一位元用於區分第一2像素片段是否直接後跟三個或四個1像素片段。在圖18C中,存在四個此類片段,其意味著完整型樣碼字在此情形中將係0001bin
,其中最後1bin
指示存在四個1像素片段。或者,由於模式B中僅存在八個可能修正型樣,可使用3位元型樣碼字。
模式C係關於具有一或二像素之片段長度並且在2像素片段間具有兩個或三個連續1像素片段的修正型樣。4位元型樣碼字能夠表示可用於模式C內之修正型樣。四個位元中三個專用於表示列或行內第一2像素片段之位置。剩餘位元用於通知在列或行內之下一2像素片段前是否存在兩個或三個連續1像素片段。圖18D解說修正型樣0111011bin
。第一2像素片段之位置係第零號像素,並且此2像素片段在下一2像素片段前後跟兩個1像素片段。因此型樣碼字在此情形中可係0000bin
。此處應注意,不需要在第二2像素片段後指定一片段之數目,因為其不會影響修正型樣。或者,由於模式B中僅存在八個可能修正型樣,可使用3位元型樣碼字。
此模式指具有一或二像素之片段長度並且具有一或兩個連續1像素片段的修正型樣。4位元型樣碼字之兩個位元用於定義在列或行內先於第一2像素片段的連續1像素片段之數目(用於在零至三個1像素片段間區分的00bin
至11bin
)。下一位元通知第一2像素片段是否後跟一或兩個連續1像素片段,並且最終位元定義第二2像素片段是否後跟一或兩個連續1像素片段,參見圖18E。圖式解說修正型樣0110110bin
。第一2像素片段前存在零1像素片段,從而給出00bin
。第一及第二2像素片段後均存在單一1像素片段,從而產生(例如)0bin
及0bin
。因此,在此模式中,最終型樣碼字變為0000bin
。
模式具有長度為1或2像素片段之修正型樣,並且具有零或一個連續1像素片段。4位元型樣碼字之一位元定義列或行內之第一片段是否係1或2像素片段。剩餘位元之各者通知後續2像素片段前是否存在零或一個1像素片段。圖18F及18G解說依據此模式之兩個可能修正型樣。圖18F具有修正型樣0101010bin
,圖18G具有1101101bin
。在圖18G中,第一片段係2像素片段,在圖18F中,第一片段係1像素片段。因此型樣碼字之第一位元分別係1bin
及0bin
。圖18G內在任何2像素片段前無1像素片段,其可藉由0bin
、0bin
及0bin
表示。在圖18F中,所有2像素片段具有個別先前1像素片段,從而給出1bin
、1bin
及1bin
。因此用於圖18G之修正型樣的最終型樣碼字係1000bin
,對於圖18F係0111bin
。
模式F具有2或3像素之片段長度的修正型樣。型樣碼字之前兩個位元表示以下情況。若列或行內之第一片段係1像素片段,後跟2像素片段,則使用00bin
。01bin
表示1像素片段,後跟3像素片段。若第一片段係2像素片段,則使用位元組合10bin
,並且11bin
定義第一像素片段係3像素片段。型樣碼字內之第三位元定義藉由兩個第一位元定義之片段是否後跟2或3像素片段,並且第四位元通知此2或3像素片段後跟2或3像素片段。
圖18H至18K解說用於此模式之不同修正型樣。在圖18H中,第一片段依據上文係2像素片段,其給出10bin
。此2像素片段後跟兩個2像素片段,其給出0bin
及0bi
n。最終片段係2像素片段還是3像素片段無關,因為修正型樣將相同。因此,型樣0101010bin
由1000bin
表示。
圖18I具有1像素片段,其後跟2像素片段,從而產生00bin
。後續兩個片段均具有2像素長度(最後片段具有兩個還是三個像素無關,因為僅第一像素在列或行之8像素內)。因此型樣碼字係0000bin
。
圖18J具有1像素片段,然後係3像素片段。前兩個位元因此應係01bin
。該等片段後跟2像素片段。在此情形中,型樣碼字可僅具有三個位元,即010bin
,因為最後兩個位元屬於2像素片段還是3像素片段無關。因此,可省略第四位元或設定為任意值。
圖18K具有3像素片段(產生11bin
),其後跟兩個2像素片段(產生0bin
及0bin
)。最終像素屬於2還是3像素片段不相關。因此在此模式中修正型樣0010101bin
由碼字1100bin
表示。
此模式係關於具有3、4或5像素之片段長度的修正型樣。在此情形中,在以下表III之左行內可找到所有可能修正型樣:
從表III可看出,此模式中僅可有13個修正型樣。因此,四個位元足以指定該等修正型樣,例如其使用在表III之右行內提議的型樣碼字。
圖18L解說修正型樣1001001bin
。依據表III,型樣碼字在此情形中因此係0001bin
。圖18M解說修正型樣0001000bin
,依據表III其可由4位元碼字1000bin
表示。
模式H指具有5、6、7或8像素片段之修正型樣。在以下表IV中,左行內列出用於此模式的所有可能修正型樣:
可看出,僅可有十一個不同修正型樣,因此其可以四位元之型樣碼字表示,例如以表IV之右行內指定的位元型樣。圖18M解說修正型樣0001000bin
,其係由位元型樣0110bin
表示。
1...深度緩衝器架構
10...深度單元
12...像素塊表快取記憶體
14...快取記憶體
20...掃描場解析器
30...像素管線
40...深度測試單元
50...隨機存取記憶體
100...壓縮器
110...參考量化器
120...列斜率量化器
130...行斜率量化器
140...表示產生器
142...值量化器
144...單元
150...模式選擇器
160...型樣管理器
200...解壓縮器
210...參考產生器
220...斜率產生器
230...組提供器
240...型樣選擇器
250...值決定器
260...修改項選擇器
300...像素區塊
310...列
312...像素列部分/片段
314...像素列部分
320...行
330...像素
400...壓縮區塊
410...參考碼字
420...列/列斜率碼字
430...行/行斜率碼字
440...模式碼字
450...相關型樣碼字
460...像素或斜率修改項
結合附圖參考以上說明,可最佳地理解本發明及其其他目的與優點,其中:
圖1係依據本發明之一具體實施例之壓縮方法的流程圖;
圖2A及2B解說依據本發明在列式或行式壓縮中可使用之像素區塊;
圖3係依據本發明之具體實施例的像素區塊之壓縮表示的示意圖;
圖4係詳細解說圖1之產生步驟的具體實施例之流程圖;
圖5A至5C示意性地解說在本發明之壓縮方法中產生分配表示的具體實施例;
圖6解說依據本發明使用之預定義分配型樣的可用組;
圖7A解說依據本發明可使用之另一像素區塊;
圖7B示意性地解說在用於圖7A內所解說之像素區塊的本發明之壓縮方法內處理像素列的具體實施例;
圖8解說包含兩個平面之像素區塊;
圖9解說依據本發明使用之預定義分配型樣的其他可用組;
圖10解說依據本發明使用之預定義分配型樣的其他可用組;
圖11A至11C解說依據本發明使用之預定義分配型樣的其他可用組;
圖12A至12E示意性地解說在用於圖10內所解說之像素區塊的本發明之壓縮方法內處置像素列的具體實施例;
圖13係依據本發明之一具體實施例之解壓縮方法的流程圖;
圖14係可應用本發明之教導的深度緩衝器架構之示意性方塊圖;
圖15係依據本發明之一具體實施例之壓縮器的示意性方塊圖;
圖16係依據本發明之一具體實施例之表示產生器的示意性方塊圖;
圖17係依據本發明之一具體實施例之解壓縮器的示意性方塊圖;以及
圖18A至18M解說針對8像素列或行實施方案依據本發明使用之可能分配型樣的範例。
(無元件符號說明)
Claims (33)
- 一種壓縮具有相關聯像素參數值之一像素區塊的方法,該方法包含以下步驟:- 決定一參考碼字作為一參考像素參數值之一表示;- 決定一列斜率碼字作為用於該區塊之該等列的一基本參數斜率之一表示;- 決定一行斜率碼字作為用於該區塊之該等行的一基本參數斜率之一表示;- 針對該區塊內之一列或一行並且根據該列或該行之該等像素參數值的至少一部分產生一表示,其指示沿該列或該行之至少一部分發生一斜率變化的像素位置;- 針對該區塊內之該等列或該等行之至少一部分重複該產生步驟;- 決定一模式碼字作為一組多個斜率修正型樣之一表示,各斜率修正型樣係一特定預定義表示,其指示可沿一列或行應用之位置相依斜率修正項(slope correctors);以及- 針對該區塊內之該至少一列或行,根據針對該列或該行產生之該位置指示表示,決定一型樣碼字作為該組之一斜率修正型樣的一表示。
- 如請求項1之方法,其中至少部分根據該等產生之位置指示表示實行該模式碼字決定步驟。
- 如請求項1或2之方法,其中該產生步驟包含以下步驟:- 視需要量化該列或該行之該等參數值;以及 - 針對該列或該行之該至少一部分內的各像素,從該像素之一量化參數值減去該列或行內之一先前像素的量化參數值或用於該等列或該等行之該參考參數值及該基本參數斜率。
- 如請求項1或2之方法,其中該模式碼字決定步驟包含以下步驟:- 從多個預定義組中選擇一組,其中各組包含多個斜率修正型樣;以及- 根據該選定組決定該模式碼字。
- 如請求項1或2之方法,其中該列斜率碼字係用於該區塊之該等列之該參數斜率的一整數部分之一表示,並且該行斜率碼字係用於該區塊之該等行之該參數斜率的一整數部分之一表示,該多個預定義組之各組與用於該區塊之該等列或該等行之該參數斜率的分數部分之一範圍相關聯。
- 如請求項1或2之方法,其中該產生步驟包含以下步驟:- 針對該列或該行並且根據該列或該行之該等像素參數值之一第一部分產生一第一表示,其指示其中一斜率變化沿該列或該行之該第一部分發生的像素位置;以及- 針對該列或該行並且根據該列或該行之該等像素參數值之一第二部分產生一第二表示,其指示其中一斜率變化沿該列或該行之該第二部分發生的像素位置。
- 如請求項6之方法,其中該模式碼字決定步驟包含:根據該等產生之第一及第二位置指示表示,決定一模式碼 字作為一組多個斜率修正型樣之一表示。
- 如請求項6之方法,其中該型樣碼字決定步驟包含以下步驟:- 針對該區塊內之至少一列或行,根據針對該列或該行產生之該第一位置指示表示,決定一第一型樣碼字作為該組之一第一斜率修正型樣的一表示;以及- 針對該區塊內之該至少一列或行,根據針對該列或該行產生之該第二位置指示表示,決定一第二型樣碼字作為該組之一第二斜率修正型樣的一表示。
- 如請求項6之方法,其中該模式碼字決定步驟包含以下步驟:- 根據該等產生之第一位置指示表示,決定一第一模式碼字作為一第一組多個斜率修正型樣之一表示;以及- 根據該等產生之第二位置指示表示,決定一第二模式碼字作為一第二組多個斜率修正型樣之一表示。
- 如請求項9之方法,其中該型樣碼字決定步驟包含以下步驟:- 針對該區塊內之至少一列或行,根據針對該列或該行產生之該第一位置指示表示,決定一第一型樣碼字作為該第一組之一第一斜率修正型樣的一表示;以及- 針對該區塊內之該至少一列或行,根據針對該列或該行產生之該第二位置指示表示,決定一第二型樣碼字作為該第二組之一第二斜率修正型樣的一表示。
- 一種從一壓縮像素區塊解壓縮一像素之方法,該方法包 含以下步驟:- 根據該壓縮像素區塊之一參考碼字產生一參考像素參數值;- 根據該壓縮像素區塊之一斜率碼字產生一基本參數斜率;- 根據該壓縮像素區塊之一模式碼字提供一組多個斜率修正型樣,各斜率修正型樣係一特定預定義表示,其指示可沿一列或一行應用之位置相依斜率修正項;- 根據與該像素相關聯並且包括於該壓縮像素區塊內之一型樣碼字從已提供之組選擇一斜率修正型樣;以及- 根據該參考像素參數值、該基本參數斜率及該選定斜率修正型樣決定該像素之一像素參數值。
- 如請求項11之方法,其中該決定步驟包含:將該基本參數斜率、選自該斜率修正型樣之一斜率修正項加至針對該列或該行內之一先前像素決定的一像素參數值或加至該參考像素參數值。
- 如請求項12之方法,其進一步包含根據該列或該行內之該像素之一位置選擇該斜率修正項。
- 如請求項11至13中任一項之方法,其中該產生步驟包含以下步驟:- 根據該壓縮像素區塊之一列斜率碼字產生用於該像素區塊之該等列的一基本參數斜率;以及- 根據該壓縮像素區塊之一行斜率碼字產生用於該像素區塊之該等行的一基本參數斜率。
- 如請求項14之方法,其中該像素參數值決定步驟包含:根據該參考像素參數值、用於該等列之該基本參數斜率、用於該等行之該基本參數斜率、該選定斜率修正型樣及該壓縮像素區塊之至少一斜率修改項(slope modifier)決定該像素參數值。
- 如請求項15之方法,其中該決定步驟包含以下步驟:- 將用於該等行之該基本參數斜率及該至少一斜率修改項加至針對該行內之一先前像素決定之一像素參數值,以形成一中間值;以及- 將用於該等列之該基本參數斜率及選自該斜率修正型樣之一斜率修正項針對該列內之一先前像素決定之一像素參數值或加至該中間值。
- 如請求項15之方法,其中該決定步驟包含以下步驟:- 將用於該等列之該基本參數斜率及該至少一斜率修改項加至針對該列內之一先前像素決定之一像素參數值,以形成一中間值;以及- 將用於該等行之該基本參數斜率及選自該斜率修正型樣之一斜率修正項加至針對該行內之一先前像素決定之一像素參數值或加至該中間值。
- 如請求項11、12或13之方法,其中該提供步驟包含根據該模式碼字從多個預定義組之一集合提供該組。
- 一種用於壓縮具有相關聯像素參數值之一像素區塊的壓縮器,該壓縮器包含:- 一參考量化器,其用於決定一參考碼字作為一參考 像素參數值之一表示;- 一列斜率量化器,其用於決定一列斜率碼字作為用於該區塊之該等列的一基本參數斜率之一表示;- 一行斜率量化器,其用於決定一行斜率碼字作為用於該區塊之該等行的一基本參數斜率之一表示;- 一表示產生器,其用於針對該區塊之至少一部分內的各列或行並且根據該列或該行之該等像素參數值的至少一部分產生一表示,其指示一斜率變化在何處沿該列或該行之至少一部分發生;- 一模式選擇器,其用於決定一模式碼字作為一組多個斜率修正型樣之一表示,各斜率修正型樣係一特定預定義表示,其指示可沿一列或一行應用之位置相依斜率修正項;以及- 一型樣選擇器,其用於針對該區塊內之該至少一列或行,根據針對該列或該行產生之該位置指示表示,決定一型樣碼字作為該組之一斜率修正型樣的一表示。
- 如請求項19之壓縮器,其中該模式選擇器係配置成:至少部分根據該等產生之位置指示表示來決定該模式碼字。
- 如請求項19或20之壓縮器,其進一步包含:- 一值量化器,其用於量化該列或該行之該等參數值;以及- 一計算器,其用於針對該列或該行之該至少一部分內的各像素,從該像素之該量化參數值減去該列或行內 之一先前像素的量化參數值或用於該等列或該等行之該參考參數值及該基本參數斜率。
- 如請求項19或20之壓縮器,其中該表示產生器係配置成i)針對該列或該行並且根據該列或該行之該等像素參數值的一第一部分產生一第一表示,其指示其中一斜率變化沿該列或該行之該第一部分發生的像素位置;以及ii)針對該列或該行並且根據該列或該行之該等像素參數值的一第二部分產生一第二表示,其指示其中一斜率變化沿該列或該行之該第二部分發生的像素位置。
- 如請求項22之壓縮器,其中該模式碼字係配置成:根據該等產生之第一及第二位置指示表示,決定一模式碼字作為一組多個斜率修正型樣之一表示。
- 如請求項22之壓縮器,其中該型樣選擇器係配置成i)針對該區塊內之至少一列或行,根據針對該列或該行產生之該第一位置指示表示,決定一第一型樣碼字作為該組之一第一斜率修正型樣的一表示;以及ii)針對該區塊內之該至少一列或行,根據針對該列或該行產生之該第二位置指示表示,決定一第二型樣碼字作為該組之一第二斜率修正型樣的一表示。
- 如請求項24之壓縮器,其中該模式選擇器係配置成i)根據該等產生之第一位置指示表示,決定一第一模式碼字作為一第一組多個斜率修正型樣之一表示;以及ii)根據該等產生之第二位置指示表示,決定一第二模式碼字作為一第二組多個斜率修正型樣之一表示。
- 如請求項25之壓縮器,其中該型樣選擇器係配置成i)針對該區塊內之至少一列或行,根據針對該列或該行產生之該第一位置指示表示,決定一第一型樣碼字作為該第一組之一第一斜率修正型樣的一表示;以及ii)針對該區塊內之該至少一列或行,根據針對該列或該行產生之該第二位置指示表示,決定一第二型樣碼字作為該第二組之一第二斜率修正型樣的一表示。
- 一種用於從一壓縮像素區塊解壓縮一像素之解壓縮器,該解壓縮器包含:- 一參考產生器,其用於根據該壓縮像素區塊之一參考碼字產生一參考像素參數值;- 一斜率產生器,其用於根據該壓縮像素區塊之一斜率碼字產生一基本參數斜率;- 一組提供器,其用於根據該壓縮像素區塊之一模式碼字提供一組多個斜率修正型樣,各斜率修正型樣係一特定預定義表示,其指示可沿一列或一行應用之位置相依斜率修正項;- 一型樣選擇器,其用於根據與該像素相關聯並且包括於該壓縮像素區塊內之一型樣碼字,從已提供之組選擇一斜率修正型樣;以及- 一值決定器,其用於根據該參考像素參數值、該基本參數斜率及該選定斜率修正型樣,決定該像素之一像素參數值。
- 如請求項27之解壓縮器,其中該值決定器係配置成:將 該基本參數斜率、選自該斜率修正型樣之一斜率修正項加至針對該列或該行內之一先前像素決定的一像素參數值或加至該參考像素參數值。
- 如請求項28之解壓縮器,其進一步包含一修改項選擇器,該修改項選擇器用於根據該列或該行內之該像素之一位置選擇該斜率修正項。
- 如請求項27至28中任一項之解壓縮器,其中該斜率產生器係配置成i)根據該壓縮像素區塊之一列斜率碼字產生用於該像素區塊之該等列的一基本參數斜率;以及ii)根據該壓縮像素區塊之一行斜率碼字產生用於該像素區塊之該等行的一基本參數斜率。
- 如請求項30之解壓縮器,其中該值決定器係配置成根據該參考像素參數值、用於該等列之該基本參數斜率、用於該等行之該基本參數斜率、該選定斜率修正型樣及該壓縮像素區塊之至少一斜率修改項決定該像素參數值。
- 一種壓縮具有相關聯像素參數值之一M×N像素區塊的方法,該方法包含以下步驟:- 決定一參考碼字作為一參考像素參數值之一表示;- 決定一列斜率碼字作為用於該區塊之該等列的一基本參數斜率之一表示;- 決定一行斜率碼字作為用於該區塊之該等行的一基本參數斜率之一表示;以及- 決定一修改項碼字作為可應用於用於該等列之該基本參數斜率及用於該等行之該基本參數斜率的至少一者 之多個斜率修改項的一表示,其中該修改項碼字包含少於M×N-1之位元。
- 一種資料結構產品,其具有相關聯像素參數值之一像素區塊的信號表示,該信號表示包含:- 一參考碼字,其係作為一參考像素參數值之一表示;- 一列斜率碼字,其係作為用於該區塊之該等列的一基本參數斜率之一表示;- 一行斜率碼字,其係作為用於該區塊之該等行的一基本參數斜率之一表示;- 一模式碼字,其係作為一組多個斜率修正型樣之一表示,各斜率修正型樣係一特定預定義表示,其指示可沿一列或行應用之位置相依斜率修正項;以及- 一型樣碼字,其係用於該區塊之各列或行,作為該組之一斜率修正型樣的一表示。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/SE2007/050705 WO2009045133A1 (en) | 2007-10-03 | 2007-10-03 | Method, compressor, decompressor and signal representation for lossless compression of pixel block values using row and column slope codewords |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200931340A TW200931340A (en) | 2009-07-16 |
TWI446289B true TWI446289B (zh) | 2014-07-21 |
Family
ID=40526435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097135290A TWI446289B (zh) | 2007-10-03 | 2008-09-12 | 無損耗像素處理 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8515187B2 (zh) |
EP (1) | EP2201530B1 (zh) |
JP (1) | JP4995969B2 (zh) |
CN (1) | CN101816021B (zh) |
TW (1) | TWI446289B (zh) |
WO (1) | WO2009045133A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6066557B2 (ja) * | 2011-12-26 | 2017-01-25 | 株式会社メガチップス | データ記憶制御装置、データ記憶装置、データ記憶方法、圧縮回路、および圧縮方法 |
US8779950B2 (en) | 2012-03-05 | 2014-07-15 | Dcba, Llc | Command encoded data compression |
US9251731B2 (en) * | 2013-05-10 | 2016-02-02 | Intel Corporation | Multi-sampling anti-aliasing compression by use of unreachable bit combinations |
US10896523B2 (en) * | 2019-04-01 | 2021-01-19 | Microsoft Technology Licensing, Llc | Depth image compression |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2207840B (en) * | 1987-08-07 | 1991-09-25 | Philips Electronic Associated | Method of and apparatus for modifying data stored in a random access memory |
US4945500A (en) * | 1987-11-04 | 1990-07-31 | Schlumberger Technologies, Inc. | Triangle processor for 3-D graphics display system |
JPH0965338A (ja) * | 1995-08-28 | 1997-03-07 | Graphics Commun Lab:Kk | 画像符号化装置および画像復号化装置 |
US6188394B1 (en) * | 1998-08-28 | 2001-02-13 | Ati Technologies, Inc. | Method and apparatus for video graphics antialiasing |
US6476811B1 (en) * | 1999-09-01 | 2002-11-05 | Ati International, Srl | Method and apparatus for compressing parameter values for pixels in a display frame |
JP3701522B2 (ja) * | 1999-09-21 | 2005-09-28 | シャープ株式会社 | 画像符号化装置、画像符号化方法及びコンピュータ読み取り可能な記録媒体 |
US7030878B2 (en) * | 2004-03-19 | 2006-04-18 | Via Technologies, Inc. | Method and apparatus for generating a shadow effect using shadow volumes |
US7898550B2 (en) * | 2006-06-09 | 2011-03-01 | Via Technologies, Inc. | System and method for memory bandwidth compressor |
-
2007
- 2007-10-03 WO PCT/SE2007/050705 patent/WO2009045133A1/en active Application Filing
- 2007-10-03 US US12/681,191 patent/US8515187B2/en active Active
- 2007-10-03 JP JP2010527902A patent/JP4995969B2/ja not_active Expired - Fee Related
- 2007-10-03 EP EP07835290.3A patent/EP2201530B1/en not_active Not-in-force
- 2007-10-03 CN CN2007801009533A patent/CN101816021B/zh not_active Expired - Fee Related
-
2008
- 2008-09-12 TW TW097135290A patent/TWI446289B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
US20110268367A1 (en) | 2011-11-03 |
JP4995969B2 (ja) | 2012-08-08 |
JP2010541094A (ja) | 2010-12-24 |
WO2009045133A1 (en) | 2009-04-09 |
CN101816021B (zh) | 2012-08-29 |
EP2201530A1 (en) | 2010-06-30 |
TW200931340A (en) | 2009-07-16 |
EP2201530A4 (en) | 2017-09-13 |
US8515187B2 (en) | 2013-08-20 |
EP2201530B1 (en) | 2018-05-30 |
CN101816021A (zh) | 2010-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10291926B2 (en) | Method and apparatus for compressing and decompressing data | |
EP2204045B1 (en) | Method and apparatus for compressing and decompressing data | |
US8144981B2 (en) | Texture compression based on two hues with modified brightness | |
US9466125B2 (en) | Weight based image processing | |
EP2005393B1 (en) | High quality image processing | |
US8331664B2 (en) | Prediction-based image processing | |
KR100821762B1 (ko) | 알파 이미지 처리 방법 및 장치 | |
EP1081649A2 (en) | Apparatus and method for image compression | |
US20090046935A1 (en) | Image processing | |
WO2007123452A2 (en) | Image processing | |
US20100129000A1 (en) | Vector-based image processing | |
TWI446289B (zh) | 無損耗像素處理 | |
US20110176739A1 (en) | Pixel Block Processing | |
CA2683841A1 (en) | Vector-based image processing | |
US20130279822A1 (en) | Multi-Mode Processing of Texture blocks | |
CN102687175A (zh) | 对编码纹理元素块进行操作的解码系统和方法 | |
US20030156651A1 (en) | Method for reducing code artifacts in block coded video signals |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |