TWI466066B - 區塊壓縮系統、區塊解壓縮系統及其相關方法 - Google Patents
區塊壓縮系統、區塊解壓縮系統及其相關方法 Download PDFInfo
- Publication number
- TWI466066B TWI466066B TW097148286A TW97148286A TWI466066B TW I466066 B TWI466066 B TW I466066B TW 097148286 A TW097148286 A TW 097148286A TW 97148286 A TW97148286 A TW 97148286A TW I466066 B TWI466066 B TW I466066B
- Authority
- TW
- Taiwan
- Prior art keywords
- pixel
- depth value
- pixels
- plane
- block
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
本發明一般係關於影像處理,而特定言之係關於影像區塊之以預測為基礎的壓縮及解壓縮。
為增加針對圖形處理單元(GPU)之效能,運用記憶體頻寬減小技術。用於減小頻寬要求之一此類方法係實行所謂緩衝器壓縮。一圖形系統一般使用兩個緩衝器:一色彩緩衝器,其中繪製該等像素之色彩;以及一深度緩衝器,其中儲存每一像素之深度。在呈現期間,讀取此等緩衝器並向其寫入,而且常常針對兩個緩衝器而將相同的像素存取數次。此等讀取與寫入存取耗能甚巨,而因此應當係保持為一最小程度,尤其對於具有有限電源供應之使用者終端機(例如行動器件)而言。
緩衝器壓縮表示將數個區塊的緩衝器資料以壓縮形式儲存於記憶體中。由於該解壓縮與壓縮可能針對一特定的像素及區塊發生數次,因此重要的係該壓縮無損失,即不受破壞。
文獻[1]與[2]分別對先前技術之色彩緩衝器壓縮及深度緩衝器壓縮作較佳的概述。
仍需要高效率的深度緩衝器壓縮/解壓縮演算法,而特定言之係可有效地用來處置具有屬於不同深度值平面的深度緩衝器值之像素區塊之該些演算法。
本發明克服先前技術配置之此等及其他缺點。
本發明之一般目的係用於提供像素區塊之一高效率的壓縮及解壓縮。
本發明之另一目的係提供一種經調適用於深度緩衝器值之壓縮及解壓縮。
此等及其他目的係藉由如隨附專利申請專利範圍所定義之本發明來達到。
簡而言之,本發明涉及具有相關聯的深度緩衝器值之像素區塊之壓縮及解壓縮。該壓縮涉及選擇針對該像素區塊之一開始深度值,較佳的係選擇為在該區塊中處於一預定義位置之一像素的深度值。該開始深度值係視為包括於一開始深度值平面內。存在於一重新開始深度值平面內之一重新開始深度值係選擇用於該像素區塊,較佳的係選擇為在該區塊中之一所識別像素之深度值。
此外,產生針對在該區塊中的像素之個別平面表示,在此情況下可將此等表示視為指示該等像素屬於該等開始與重新開始平面之哪一平面。該等平面表示係用於針對一欲壓縮的像素選擇包含在該區塊中的至少一另一像素之一像素集合。該集合較佳的係包含在該區塊中在一或多個預測方向上之一或多個先前像素。在該像素集合中的該至少一像素之深度值係用於決定該當前像素之深度值之一預測。
接著基於所決定之預測及該像素之深度值來計算一預測誤差,較佳的係將其計算為其之間的一差。將該預測編碼以獲得一經編碼的預測誤差。該像素區塊之經壓縮的表示包含與該等開始及重新開始值之表示而較佳的係平面表示在一起之此等經編碼的預測誤差。
在解壓縮期間,基於包括於該經壓縮區塊中的開始值表示而針對該像素區塊提供一開始深度值。此開始深度值係指派為在該區塊中處於預定義位置之像素之深度值。基於包括於該經壓縮區塊中的資訊來對應地提供一重新開始深度值,並將其指派為針對在該區塊中所識別之一像素的深度值。
將與一像素相關聯並包括於該經壓縮區塊中之一經編碼的預測誤差表示解碼以獲得針對該像素之預測誤差。擷取在該區塊中而較佳的係包括於該經壓縮區塊中的像素之平面表示,並運用其來選擇在該區塊中的至少一另一像素以構成針對該像素之一像素集合。基於在該像素集合中的至少一像素之深度值來決定針對該像素之預測。
該像素係藉由依據所決定的預測及經解碼的預測誤差計算其深度值來解碼。
本發明還係關於一種壓縮系統及解壓縮系統。
本發明防止預測在平面邊界上的深度值而因此對在該區塊中的像素提供良好預測候選者而因此提供高效率的像素壓縮及解壓縮。
在閱讀下面關於本發明之具體實施例的說明後即會明白本發明所提供之其他優點。
在各圖式中,相同的參考字符將用於對應或類似的元件。
本發明一般係關於像素參數值之一無損失的壓縮及解壓縮,而特定言之係適用於深度緩衝器壓縮及解壓縮之此一壓縮及解壓縮。
本發明經較佳調適用於三維(3D)圖形,例如遊戲、3D映射及場景、3D訊息(例如,動畫訊息、螢幕保護程式、人機介面(MMI)等),但不限於此。因此,亦可運用本發明來編碼其他類型的影像或圖形(例如,一維(1D)、二維(2D)或3D影像)。
在本發明中,該壓縮及解壓縮共同處置複數個像素,一般係以像素之一區塊或一瓦片為形式。在本發明之一較佳具體實施例中,一像素區塊具有M×N個像素之尺寸,其中M、N係整數數字而條件係M與N並非同時為一。較佳的係,M=2m
而N=2n
,其中m、n係零或整數,而條件係m與n並非同時為零。在一典型的實施方案中M=N,而較佳的係此類區塊具體實施例可能係4×4個像素、8×8個像素或16×16個像素。
辭令像素或"影像元件"表示在一區塊中之一元件或一區塊之經編碼的表示。此區塊進而對應於一影像、構造或緩衝器之一部分。因此,依據本發明,一影像元件可以係一(1D、2D、3D)構造之一構造像素(構造元件)、一(1D或2D)影像之一像素或一3D影像之一立體像素(體積元件)。一般地,藉由一相關聯的像素參數值或特徵來表示一像素之特性。在本發明之一較佳具體實施例中,該像素參數值係一深度值或所謂的Z值。此特徵表示針對特定像素至眼睛的深度或距離,並控制在呈現期間實際上將顯示哪些像素。
該壓縮及解壓縮係調適用於處置共線性像素參數值,即位於一平面內之參數值。因此,欲壓縮之一區塊之像素參數值皆處於一參數空間中之一單一平面內或處於多個平面(一般係兩個平面)之一集合之一平面內。此要求暗示可能可以使用比該等像素參數值的原始表示之原始數字位元更少的位元來實現該像素區塊之一無損失的壓縮。
此外,下面,術語"影像"係用於表示可藉由本發明來編碼及解碼之任何1D、2D或3D影像或構造,包括但不限於凸塊映射、正規映射、照片、遊戲類型構造、文本、繪圖、高動態範圍影像及構造等。
圖1係解說依據本發明之一壓縮一像素區塊的方法之一流程圖。該方法在步驟S1中藉由選擇針對欲壓縮區塊之一開始深度值而開始。此開始深度值Z start
較佳的係設定為等於在該區塊中的像素之一像素而較佳的係在該區塊中佔據一預定義位置之一像素的深度值。此一預定義位置之一較佳實施方案係使用該區塊之第一(即佔據左上角的)像素,Z start
=Z 11
。可能的開始像素位置之其他範例可以係其他區塊邊角之任何邊角。實際上可將在該區塊中的任何預定義位置用作開始位置,但一邊角位置而特定言之係該左上角像素令該區塊之壓縮明顯簡化。
該選定開始深度值係視為屬於該區塊之一第一深度值平面。該開始值(例如,若該選定的深度值包含P
個位元,則係一P
位元開始值)之一表示係包括於該區塊之經壓縮表示中。
下一步驟S2選擇針對該區塊之一所謂的重新開始深度值。此值係視為屬於一第二深度值平面,即與該開始值不同之一平面。該重新開始深度值Z restart
較佳的係選擇為等於在該區塊中之一所識別像素的深度值,即,Z restart
=Z ij
,其中i
,j
=1,2,...,N
,而條件係若在位置(1,1)處的像素係用於提供該開始深度值則(i
,j
)≠(1,1),而N
表示每一列與行之像素數目。
經壓縮的區塊包含該選定重新開始值之一表示,較佳的係若該選定深度值包含P
個位元則以一P
位元重新開始值為形式。
步驟S3產生針對一像素之一平面表示。此平面表示係指示該像素屬於該第一(開始)平面與該第二(重新開始)平面之哪一平面。該表示較佳的係一1位元字,其中0bin
(或1bin
)之一值指示該第一平面而1bin
(或0bin
)表示該第二平面。
步驟S3較佳的係針對在該區塊中的多個像素之至少一部分實行,其係由線L1來示意性解說。更佳的係,步驟S3係針對在該區塊中的每一像素而實行,可以不包括該開始像素(與開始深度值相關聯之像素)。其視需要可能還可以不包括該重新開始像素(與該重新開始深度值相關聯之像素)。因此可將此等多個平面表示視為判別每一像素屬於哪一平面之一位元映射。該位元映射(平面表示)較佳的係包括於經壓縮的區塊表示中。
在一替代性具體實施例中,該等步驟S2與S3之順序係互換。此意味著繼步驟S1之開始深度值的選擇之後,針對在該區塊中的其餘像素產生平面表示。在此一情況下,將具有不同於與該開始深度值相關聯的(開始)平面表示之所產生平面表示的在該區塊中按橫越順序之第一像素視為該重新開始像素。在此情況下將該像素之深度值用作針對該區塊之重新開始深度值。
針對在該區塊中的多個像素之每一欲編碼的像素實行以下步驟S4至S7。步驟S4針對該像素選擇在該區塊中包含至少一另一像素之一像素集合。基於當前像素及在該集合中的該等像素之個別的平面表示而實行該集合選擇。在一較佳實施方案中,該集合之該(等)選定像素具有與當前像素相同的平面表示,即屬於與該像素相同的平面。
在該選定集合中的該(等)像素之深度值係在步驟S5中用於提供當前像素之深度值Z ij
之一預測。換言之,該像素之深度值預測係基於該像素集合之至少一深度值來計算或決定。
下一步驟S6基於該像素之深度值及在步驟S5中提供的預測來估計該像素之一預測誤差。該預測誤差較佳的係計算為該像素的原始深度值與該預測之間的一差,。
在步驟S7中決定計算出的預測誤差之一經編碼的表示。因此該區塊之經壓縮或經編碼的表示包含此經編碼的表示。
較佳的係針對在該區塊中的多個像素重複該程序,此係由線L2示意性解說。在此一情況下,經壓縮的區塊包含針對此等像素的每一像素之一個別的經編碼預測誤差表示(當然,與該開始值相關聯的像素及與該重新開始值相關聯的像素除外)。經壓縮的區塊較佳的係還包含該開始深度值、重新開始深度值之表示,而較佳的係還包含平面表示之位元映射。
圖2係多個像素310至318之一區塊300之一示意性解說。如此項技術中所熟知,在一深度緩衝器中的像素之原始深度值成分常常係24位元的整數。Lapidous及Jaio[3]提出使用浮動點值來編碼深度緩衝器之一替代方式,其係稱為"互補Z表示"。在使用此表示之情況下,可以使用fp16、fp24、fp32等。Lapidous及Jaio所使用的fp16格式具有3個位元的指數、13個位元的尾數而不具有符號位元。fp16之算術值係2(exp onent -4)
×(1.mantissa)。
但是,浮動點數字之浮動點性質產生問題。由於浮動點數字之密度不均勻,因此兩個浮動點數字之間的差可能無法表示。圖3解說此概念。圖3之上部部分指示浮動表示。當該密度增加得較接近零時,可清楚地看見數字密度之不均勻性。為解說具有以浮動點數字為形式的色彩成分表示之問題,假定一第一深度值為7.5而一第二深度值為1.875。此等兩個數字皆可藉由使用fp16來表示。但是,由於在fp16中,無法表示該兩個數字之間的差7.5-1.875=5.625。與之明顯對照的係,最接近的表示係5.5。但是,如先前技術段落中所提及,深度緩衝器壓縮需為無損失。因此,無法無損失地壓縮需要計算上面提到的浮動數字之間的一差之區塊,因為無法以fp16來正確地表示該差。
本發明可藉由將每一浮動點數字映射至一個別的整數表示(如圖3所解說)來解決此浮動點數字問題。此基本上對應於將一唯一整數數字指派給每一浮動點數字。因此,從浮動點至整數域之映射涉及將較高的整數數字指派給較高的浮動點數字。此意味著,會將整數表示0指派給0.0,將1指派給下一最小正浮動點數字,將2指派給下一第二最小浮動點數字,依此類推。
上面給定的範例會對應於將差16與整數數字15相加以獲得31或7.5(在解譯為一浮動之前提下)之結果。本發明之一較佳實施方案因此涉及依據該浮動點域與該整數域之間的一對一映射將該浮動點深度值解譯為整數。在該整數域中實行該等計算及算術亦避免高成本的浮動點運算。此外,由於該壓縮係無損失的,因此亦獲得對NaN(非一數字)、Inf(無限)及反常值(反常數字)之一正確處置。在此一情況下,在壓縮期間該等浮動點數字係依據上面所述且在圖3中解說之映射而解譯為整數。繼解壓縮之後,接著將該等整數數字重新解譯回成浮動點數字。
本發明可以係結合整數深度值及浮動點深度值來使用,後者較佳的係透過整數與浮動點數目之間的上述一對一關係。
可依據不同具體實施例來識別該重新開始像素位置。在一第一方法中,壓縮該區塊而根本不使用任何重新開始值。接著針對每一可能的重新開始位置,即除先前所述之開始像素位置外的所有像素位置,將同一區塊壓縮一次。在一4×4區塊之情況下,此意味著決定1+15個不同的經壓縮區塊候選者。若不使用任何重新開始值而壓縮之區塊引起一最小的經壓縮尺寸,則針對當前區塊不運用任何重新開始值。但是,若引起最小經壓縮尺寸之經壓縮的區塊候選者係使用一重新開始值的15個候選者之一,則將該重新開始像素之位置識別為在具有最小經壓縮尺寸的區塊候選者中使用之一重新開始值。
下面將結合圖4來說明計算起來更有效之一替代方法,圖4解說圖1之選擇步驟S2之一具體實施例。該方法從圖1之步驟S1繼續。下一步驟S10識別與該開始深度值相差最大之在該區塊中的深度值。首先針對在該區塊中的所有其餘像素計算與該開始值之開始值差,|Z start
-Z ij
|,其中(i
,j
)≠(1,1)。識別具有產生最大絕對值差的深度值之像素。在此將此深度值表示為Z diff
。然後,針對該等像素計算在一像素的深度值與該開始值之間的一第一絕對值差|Z ij
-Z start
|以及在該深度值與Z diff
之間的一第二絕對值差|Z ij
-Z diff
|。若該第一絕對值差小於該第二絕對值差,則將該像素視為屬於該開始深度平面而係對該開始值之預測,否則將其分類為屬於該重新開始平面而係對該重新開始值之預測。可將0bin
(或1bin
)之一暫時分類索引指派給屬於該開始平面之一像素,而將1bin
(或0bin
)之暫時分類索引指派給該等重新開始預測像素。在此情況下,將該重新開始像素識別為具有大於該第一差的第二絕對值差之該區塊之按橫越順序的第一像素。因此,將在從該上部列開始而朝下行進來逐列橫越時具有1bin
的暫時分類索引之在該區塊中的第一像素視為該重新開始像素。在步驟S12中將所識別的重新開始像素之深度值選擇為重新開始深度值。該方法接著繼續到圖1之步驟S3。
在另一方法中,依據針對該等像素的至少一部分(較佳的係在該區塊中的每一像素,不包括該開始像素)產生之平面表示來識別該重新開始深度值。在此一情況下,將在具有與該開始深度值所屬於的第一平面不相關聯的平面表示之區塊中按橫越順序之第一像素視為該重新開始深度像素。接著將此像素之深度值用作針對該區塊之重新開始值。
圖5係解說圖1之平面表示產生步驟之一具體實施例的一流程圖。該方法從圖1之步驟S2繼續。下一步驟S20計算在該像素的深度值與該開始深度值之間的一第一差。還計算在該深度值與該重新開始深度值之間的一第二差。在一替代方法中,尤其係在尚未決定該重新開始深度值之情況下,計算在該深度值與上面提到的Z diff
之間的第二差。若該第一差之絕對值小於該第二差之絕對值,|Z ij
-Z start
|<|Z ij
-Z restart
|或|Z ij
-Z start
|<|Z ij
-Z diff
|,則該方法繼續到步驟S21。
步驟S21產生一第一平面表示,例如0bin
(或1bin
),其指示該第一深度值平面。此平面表示係指派給當前像素且係作為該位元映射之一部分包括於經壓縮的區塊中。
但是,若該像素之深度值與該開始值相比更接近該重新開始值,則該方法替代地繼續到步驟S22。此步驟S22產生一第二平面表示,例如1bin
(或0bin
),其指示該第二深度值平面。此平面表示係指派給該像素且係包括於經壓縮的區塊中。
本發明預期在該重新開始像素之識別期間決定的暫時分類位元實際上還可能用於提供該等平面表示。在此一情況下,不需要任何專用的平面表示提供程序,而替代地結合該重新開始值選擇程序而提供該等表示。
產生該等平面表示之另一具體實施例(儘管其計算成本較昂貴)測試平面表示之所有215
個可能組合而選擇計算效率最高(即產生最小經壓縮區塊尺寸)之一者。
另一具體實施例係使用Haselgren與Akenine-Mller[2]所說明之程序。簡言之,允許該開始平面從該開始深度值生長直至該預測誤差變得過大。相應地允許該開始平面從在該區域中在對角線上相反的位置生長直至該誤差變得過大。一旦該兩個個別平面一起涵蓋所有區塊,便獲得該等平面表示。
本發明還涵蓋另一具體實施例。在此情況下,測試在15個可能位置(在一4×4區塊之情況下)之間的一重新開始位置。基於此位置,決定平面表示之"最佳"集合或位元映射。在此一程序中,將在與候選重新開始位置相對的該區塊之按橫越順序之先前位置處的所有像素視為具有指示該第一/開始平面之平面表示。針對在該區塊中按橫越順序繼該重新開始位置之後的每一像素,測試該像素是否屬於該第一/開始或第二/重新開始平面。可依據不同標準來實行此測試。一第一標準可以係選擇產生最小預測誤差之平面表示。但是,針對該像素產生最小預測誤差之平面表示不一定引起對該區塊之最高效率的編碼。如本文結合Golomb-Rice編碼所作之進一步說明,該等預測誤差係除以一值2 l
,其中l
係等於一所決定值k
或係k
之一函數,此係取決於用於計算針對當前像素的預測之相鄰深度值之數目。取決於l
=k
還係l
=f
(k
),若(例如)該平面表示具有導致l
=f
(k
)而非l
=k
之一值,則一較大的預測誤差實質上可能導致較短的所得經壓縮區塊。
接著可針對所有可能的重新開始位置及所有可能的平面表示來測試該程序。
圖6係解說圖1之決定該預測誤差的經編碼表示之步驟之一具體實施例的一流程圖。該方法從圖1之步驟S6繼續。下一步驟S30修改該預測誤差以獲得一正預測誤差。此修改較佳的係涉及將函數n
(x
)=-2x
應用於負預測誤差(包括零)而將函數p
(x
)=2x-1
應用於正預測誤差(不包括零)。此將產生作為{0,1,-1,2,-2,3,-3,...}的預測誤差之一新配置,其意味著較小量值之數字將具有較小值。接著較佳的係對每一經修改的預測誤差進行Golomb-Rice編碼以獲得經編碼的表示。
該Golomb-Rice編碼涉及在步驟S31中搜尋一指數數字k
。此數字k
較佳的係用於在該區塊中的至少一像素之一集合。例如,在該區塊中之一2×2群組中的四個像素或實際上一4×4群組的所有像素可共享同一k
。在k
的可用值之間(例如在0與15之間)的一徹底搜尋可用於找到針對該群組之最佳k
。
下一可選步驟S32基於所搜尋的k
計算一指數值l
,即l
=f
(k
)。在一較佳具體實施例中,若在步驟S4中針對當前像素所選擇的像素集合包含一像素則該函數f
(k
)等於w
×k
+h
或,否則該函數等於k
。因此,若一像素之深度值預測係基於在該區塊中的單一其他像素之一單一深度值來決定且包括於預測集合l
=w
×k
+h
中,其中w
係預定義的權重而h
係一預定義的常數,例如w
=0.5而h
=10。可透過一最佳化程序來決定該權重及常數之最佳值,其涉及壓縮多個深度緩衝器並測試不同的權重及常數值。找到引起最佳壓縮(即,壓縮盡可能多的測試深度緩衝器且此外產生就位元數目而言盡可能短的經壓縮緩衝器)之值並可使用該等值。已實施此一最佳化程序以獲得w
=0.5而h
=10。但是,可依據此項技術中熟知的程序來將此等值進一步最佳化。
若一當前像素之像素集合包含在該區塊中的多個其他像素,即該像素之深度值係基於在該區塊中的此等其他像素之深度值來預測,則l
=k
。
由於數個像素可共享同一k
值,因此所有此等像素可能可以具有相同的l
值或不同的l
值,此係取決於針對該等像素選擇的個別像素集合中之像素數目。
下一步驟S33將該群組之每一預測誤差除以21
,以形成一個別的商及一餘數。在下一步驟S34中對該等商進行一元編碼。此一元編碼較佳的係依據下表1來實行。
從表1可明顯看出,一元編碼將較長的碼指派給較大的值。一般地,大於31的值係藉由使用後面跟隨該值的16個位元之0×ffffhex
來編碼。
該預測誤差之經編碼的表示包含一元碼與該餘數的l
個位元。此外,針對該像素群組而儲存該值k
。此程序係針對在該區塊中的每一像素來實行,但該開始像素及該重新開始像素除外。如上面所提到,針對此等像素之原始深度值係分別儲存為開始及重新開始成分值。
但是,本發明不限於該Golomb-Rice編碼演算法。與之明顯對照的係,可替代地使用其他編碼演算法,例如霍夫曼(Huffman)演算法。
圖7A及7B解說圖1的像素集合選擇步驟及預測提供步驟之一較佳具體實施例。進一步參考圖2來說明此較佳具體實施例,其中欲壓縮在該像素區塊300中表示為D
之一像素318。該方法從圖1之步驟S4繼續。下一步驟S40調查相對於該像素318在該區塊中存在於一第一預測方向上之一表示為A
的第一相鄰像素317、存在於一第二預測方向上之一表示為B
的第二相鄰像素315及存在於一第三預測方向上之一在圖2中表示為C
的第三相鄰像素314是否皆屬於與該像素318相同的深度值平面。
該第一相鄰像素317較佳的係存在於與當前像素318相同的列中之前一像素。相應地,該第二相鄰像素315係位於在該區塊300中的相同行中之前一像素位置。最後,該第三相鄰像素314較佳的係相對於該像素318在對角線上位於左上方(即,在前一列與前一行中)之在對角線上的前一像素。
將此等三個相鄰像素314、315、317之平面表示(如圖1之步驟S3中所決定)與欲編碼的像素318之對應的平面表示相比較。若其皆相等,即,將所有像素314、315、317、318視為存在於同一深度值平面內,則該方法繼續到步驟S41。步驟S41基於該三個相鄰像素314、315、317的預測值計算針對該像素318的深度值之預測。在一較佳具體實施例中,該預測係計算為該等第一317與第二315相鄰像素的深度值之和減去該第三相鄰像素314之深度值,。
但是,若此等相鄰像素314、315、317之平面表示並非皆等於該像素318之平面表示,則該方法從步驟S40繼續到步驟S42。步驟S42調查在該第一預測方向上的第一相鄰像素317與存在於該第一預測方向上之一在圖2中表示為E的第二像素316是否屬於與該當前像素318相同的深度值平面。
該第二像素316較佳的係存在於與該當前像素318(及該第一相鄰像素317)相同的列中之一第二先前像素316。若所有此等三個像素316、317及318之平面預測皆相等,則該方法繼續到步驟S43。步驟S43基於經選擇為包括於該像素集合中的兩個先前像素316、317之預測值來計算針對該像素318的深度值之預測。在一較佳具體實施例中,該深度值預測係計算為等於該第一相鄰像素的深度值之兩倍減去該第二像素的深度值,即。
但是,若此等三個像素316、317、318之平面表示不相等,則該方法從步驟S42繼續到步驟S44。步驟S44調查該第二相鄰像素315與存在於該第二預測方向上之一在圖2中表示為F
的第三像素312是否屬於與該當前像素318相同的深度值平面。
該第三像素312較佳的係存在於與該當前像素318(及該第二相鄰像素315)相同的行中之一第二先前像素312。若所有此等三個像素312、315及318之平面預測皆相等,則該方法繼續到步驟S45。步驟S45基於經選擇為包括於該像素集合中的兩個先前像素312、315之預測值來計算針對該像素318的深度值之預測。在一較佳具體實施例中,該深度值預測係計算為等於該第二相鄰像素的深度值之兩倍減去該第三像素的深度值,即。
在圖7A之一替代性具體實施例中,改變步驟S40、S42及S44之順序。但是,若在步驟S40中該等相鄰像素314、315、317之平面表示並非皆等於該像素318之平面表示,則該方法從步驟S40繼續到步驟S44。然後,若像素316、317並非皆具有與該當前像素318相同的平面表示,則該方法從步驟S44繼續到步驟S42。
此外,圖7A之程序可替代地以步驟S42之檢查開始行進至步驟S40而接著係步驟S44,以S42開始行進至步驟S44而接著係步驟S40。相應地,該程序可以步驟S44之調查開始繼續到步驟S40而接著係S42,或以步驟S44開始接著係S42而最終係步驟S40。
因此,此等三個步驟S40、S42、S44之順序可以係任何預定義的順序。針對欲壓縮的區塊而選擇之特定順序不影響本發明之編碼品質。
若不滿足任何上述條件,則該方法繼續到圖7B之步驟S46。此步驟S46使用個別的平面表示來調查該等第一317及第二315相鄰像素是否屬於與該像素318相同的深度值平面。若其皆屬於相同平面,則下一步驟S48(步驟S47係在解壓縮而非壓縮期間實行)選擇該兩個相鄰像素315、317的深度值之一者作為針對當前像素之深度值預測。在一較佳具體實施例中,選擇與該像素318的深度值最接近之深度值。換言之,若|Z i ( j -1)
-Z ij
|<|Z ( i -1) j
-Z ij
|,則,否則。在一替代方法中,該預測係依據該選定深度值來計算,即或。
下一步驟S49提供與該第一相鄰像素317及第二相鄰像素315的選定像素相關聯之一導引位元以用作針對該當前像素318之預測基礎。由於該選擇係介於兩個相鄰像素315、317之間,因此該導引位元可以(顧名思義)係一1位元的選擇字。
在一替代性具體實施例中,該方法不直接從步驟S46繼續到步驟S48。此具體實施例涉及實行另一檢查以調查該兩個相鄰像素315、317是否具有實質上相同的深度值。因此,可計算該等深度值之間的絕對值差,而若該差小於一預定義臨限值|Z i ( j -1)
-Z ( i -1) j
|<T
,則計算該兩個值之平均值並將其用作預測,即。若僅需要整數預測,則可將該平均值四捨五入或將其輸入至一地板(或頂)函數,例如。在此情況下,不需要額外的導引位元。
若絕對值差超過該臨限值,則該方法繼續到步驟S48,而將該等相鄰像素315、317之一者用作用於當前像素318之預測基礎。
若該等第一相鄰像素317與第二相鄰像素315兩者皆不屬於與當前像素318相同之深度值平面,則該方法從步驟S46進行至步驟S50。步驟S50調查該第一相鄰像素317是否存在於與該像素318相同之深度平面內。在此一情況下,步驟S51基於該第一相鄰像素之深度值定義該深度值預測,較佳的係將該預測設定成等於相鄰深度值,。
若該第一相鄰像素317不屬於與該當前像素318相同之深度值平面,則該方法從步驟S50繼續到步驟S52。此步驟S52係以與步驟S50類似之一方式實行,但替代地調查第二相鄰像素315是否屬於與該像素318相同之深度平面。若如基於其個別平面表示之一比較所決定,此係真實情況,則該方法繼續到步驟S53,在此步驟中針對該像素318之預測係基於該第二相鄰像素315之深度值來決定而較佳的係。
若該等第一相鄰像素317或第二相鄰像素315之任一者皆不屬於與該像素318相同之深度平面,則該方法繼續到步驟S54。步驟S54將該像素318之預測選擇為基於該開始深度值與該重新開始深度值之一者。該預測係基於該像素318屬於何平面來選擇。若其屬於與該開始值相同之平面,則使用,否則使用。在一替代方法中,該預測係依據該選定深度值來計算,即或。
然後,一旦已在步驟S41、S43、S45、S48、S51、S53或S54之任一步驟中提供一深度值,則該方法繼續到圖1之步驟S6,在此步驟中基於所提供的深度值預測來估計該預測誤差。
在上述說明中,已將該第一相鄰像素揭示為在該像素區塊之與欲編碼的當前像素相同之列中存在之前一像素。但是,此僅係一可行實施方案之一解說性範例。在一替代性具體實施例中,該第一相鄰像素可以係在該像素區塊中與當前像素相同的行中存在之前一像素。在此一情況下,該第二相鄰像素較佳地可以係在該區塊中與當前像素相同的列中存在之前一像素。
若在圖7A至7B中揭示的程序中表示為A至F的像素之任一像素實際上係存在於該區塊之外側,則將該像素作為不屬於與欲編碼像素相同之深度值平面來處理。例如,假定應編碼圖2之像素317。此外,在此範例中,該第三相鄰像素313屬於與該像素317不同之一平面。因此未達到圖7A之步驟S40之條件,而該方法繼續到步驟S42。但是,在此情況下,在該第一預測方向上之第二像素將係定位於該等區塊邊界之外側。因此,可將此像素視為具有不同於像素317之一平面表示。因此該方法從步驟S42繼續到S44。
此意味著對於存在於該第一列或第一行中的像素311、312、313、316,該深度值預測將等於在該第一列或第一行中的相鄰前一像素之深度值或係依據在該第一列或第一行中的最先前像素之深度值計算出,即,或而Z 11
=Z start
。
圖8係依據本發明而壓縮之一像素區塊之一經壓縮表示400的一示意性圖解。在呈現之前,所有區塊較佳的係全部清空而僅包含Z far
值。甚至在一區塊中的呈現已開始後,一般亦會有許多設定為Z far
值之像素。因此,許多開始值將等於Z far
值。因此,有利的係有一特殊情況來標誌此點。因此,經壓縮的區塊400較佳的係包含一位元410來標誌該當前區塊是否具有等於Zfar
之一開始深度值。該開始值之一表示420係包括於經壓縮的區塊400中或者在設定該清除位元410之情況下係省略。經壓縮的區塊400還包括該重新開始值之一表示430。還將平面表示440之位元映射包括於該區塊400中,正如所決定的k值450。在一典型的具體實施例中,該位元映射440包含15個平面表示,而針對每一像素(不包括該開始像素)皆有一此類表示。但是,存在編碼此類平面表示之其他效率更高的方式,其在此項技術中已為人習知並可應用於本發明。可包括額外的導引位元460,此係取決於針對該等像素選擇哪些預測。該經壓縮區塊400亦包含來自該Golomb-Rice編碼的商及餘數之一元碼,其係表示為圖中的經編碼誤差表示470。
該經壓縮區塊400之所包括成分之實際順序可能不同於圖8所解說者。
圖9係顯示依據本發明解壓縮或解碼一經壓縮或經編碼像素區塊之一方法的一流程圖之一圖解。該方法開始於步驟S60,該步驟提供針對該區塊之一開始深度值。此開始值係基於在經壓縮的像素區塊中包含之一開始值表示來提供。在一較佳具體實施例中,該開始深度值係以未經壓縮的形式提供於該經壓縮區塊中而因此可以係直接指派為該開始像素之深度值。此像素如先前所述在該區塊中具有一預定義的位置,較佳的係在(i,j)=(1,1)。或者,一位元可指示該開始深度值是否等於Zfar
值,而在該些情況下避免明確儲存該開始值。
下一步驟S61提供針對該經壓縮區塊之一重新開始深度值。此值係基於在經壓縮的像素區塊中包含之一重新開始值表示來提供。此表示包含該重新開始值,較佳的係採用未經壓縮形式。該重新開始像素之位置一般係從該平面表示獲得。不具有與該開始深度值相同的平面表示之在該橫越方向上的第一像素係該重新開始值之位置。步驟S61涉及依據該平面表示來識別在該區塊中之重新開始像素並將該重新開始值指派為針對此所識別像素之深度值如前面所提到,該等開始及重新開始值係視為屬於不同的深度值平面。
針對在該區塊中每一欲解碼的像素而實行接下來的步驟S62至S65之循環。步驟S62基於與該像素相關聯且包括於該經壓縮區塊中的經編碼誤差表示來決定針對該像素之預測誤差。
較佳的係藉由Golomb-Rice解碼該預測誤差之經編碼表示來實行該預測誤差。在此一情況下,該預測誤差較佳的係包含一經一元編碼的商、一餘數及一指數值k。可使用上表1從經一元編碼的資料獲得該商。然後,該商與餘數形成一值,該值係乘以21
以形成該預測誤差,其中該值l等於k或k之一函數,此係取決於該當前像素之像素集合包含一個還係多個其他像素。
下一步驟S63針對該像素選擇在該區塊中包含至少一另一像素之像素集合。此選擇係基於與該等像素相關聯的個別平面表示來實行。如前面所述,一平面表示係指示一像素屬於該等開始與重新開始深度平面之哪一平面。
在步驟S64中提供該像素之深度值之一預測。此步驟S64較佳的係涉及基於在該選定像素集合中的至少一像素之深度值來提供該預測。因此,該像素集合中的至少一深度值係用於提供或計算該深度值預測。
最後,步驟S65基於在步驟S62中決定之預測誤差及在步驟S64中提供之深度值預測來計算該像素的深度值之一表示。此計算較佳的係藉由將所決定的預測誤差與該預測相加以獲得該經解碼像素的深度值來實施。
較佳的係針對在該區塊中欲解碼的每一像素重複圖9之解壓縮方法,此係藉由線L3來示意性地解說。此意味著,可針對一給定的經壓縮區塊將該方法實行一次或多次,例如針對在該區塊中的每一像素實行一次。
圖10係解說該解壓縮方法之一額外步驟的一流程圖。該方法從圖9之步驟S60繼續。下一步驟S70提供與包含於經壓縮區塊中的像素相關聯之個別平面表示。接著在圖10之步驟S61中使用所擷取的平面表示來識別該重新開始像素,而接著在步驟S63中用來識別針對該像素之正確的像素集合而由此識別針對該像素之正確的深度值預測。
圖7A及7B中解說圖9之像素集合選擇步驟及預測提供步驟之一較佳具體實施例。接著如先前所述實行該程序以基於所提供的平面表示在步驟S40、S42、S44、S46、S50或S52中逐步識別正確的預測集合。一旦已識別正確的像素集合,便依據該等步驟S41、S43、S45、S48、S51、S53或S54之一步驟基於該像素集合之深度值來決定該深度值預測。
與在壓縮期間實行的程序相比此具體實施例之差異在於,若在步驟S46中得出結論,該等第一與第二相鄰像素皆屬於與欲解碼的當前像素相同之平面,則該方法繼續到步驟S47。步驟S47提供與當前像素相關聯且係包括於該經壓縮區塊中之一導引位元。該導引位元指示該等第一與第二相鄰像素之哪一像素欲用作用於該像素之預測基礎。因此基於相關聯的導引位元實行步驟S48中的深度值預測之選擇。下一步驟S49並非在解壓縮期間實施而僅係與壓縮結合實行。
如前面所提到,可能在與當前像素相同的列或行之兩個先前像素分別具有相等或接近相等的深度值之情況下省略導引位元之使用。在此一情況下,依據該兩個相鄰深度值之平均值來決定該預測。
在以下範例中,假定如圖2所解說之一區塊尺寸及如圖8所解說之一經壓縮區塊佈局。
Zfar
位元:0bin
開始值:010011101001101011010001bin
重新開始值:000000101001101011010001bin
平面表示000100011111111bin
k值:X1
X2
...Xn
,其中Xi
=0/1bin
,i=1...n
導引位元:無
經編碼的表示:Y1
Y2
...Ym
,其中Yi=0/1bin
,i=1...m
該Zfar
位元並非針對當前區塊而設定,此暗示不應將該開始值設定為該Zfar
值。替代的係,應直接從該等開始值位元獲得該開始值。從該等平面表示獲得該重新開始像素之位置。在該平面表示位元向量中的第一非零位元係處於位置4,而因此該重新開始像素之位置係4,此在(1,1)具有位置編號0之情況下對應於(2,1),而(1,2)具有位置編號1並按橫越順序依此類推。該重新開始值係000000101001101011010001bin
=170705。因此,Z(2,1)
=Zrestart
=170705。該開始像素係處於位置(1,1),而該開始值係010011101001101011010001bin
=5151441。因此,Z(1,1
)=Zstαrt
=5151441。經部分解碼的區塊現在看似:
然後以該第一列開始按橫越順序來解碼該區塊。該第一列的所有其餘像素皆具有設定為0bin
(指示其屬於與該開始深度值相同之深度值平面)之平面表示。該等像素之平面表示係依據下表:
繼圖7A至7B之解壓縮具體實施例後,可看出處於位置(1,2)的下一像素應具有包含依據步驟S50的第一相鄰像素之預測集合,因為不存在第二或第三先前相鄰像素。此意味著。
在以下範例中,透過Golomb-Rice解碼來決定該等預測誤差,本文未揭示此點。因此,假定針對該區塊之經解碼的預測誤差係如下表所述:
因此可將該第二像素之深度值計算為。在該第一列中的下一像素達到步驟S42之要求而因此具有。在該第一列中的第三像素之對應深度值係。針對在該第一列中的第四及最後像素重複該程序以給定以下經部分解碼的區塊:
然後,將在該第二列中的其餘像素解碼。在該第二列中的第二像素達到步驟S52之要求而因此具有之一深度值。該第二列之第三像素達到步驟S40之標準而係解碼為:
針對該第二列之最後像素實行相同程序以獲得以下經部分解碼的區塊:
針對其餘兩列而重複該解碼程序,從而產生以下經最終解碼的區塊:
接著,可視需要將依據上表之計算出的深度值重新映射至如上面結合圖3所述之浮動點數字。
圖11係可應用本發明之教導內容的一深度緩衝器架構1之一示意性概述。該架構包含用於儲存包含深度值等的像素區塊之一隨機存取記憶體(RAM)50。一深度單元10包含依據本發明之一解壓縮系統200用於解壓縮從該RAM50擷取之經壓縮的區塊。經壓縮或經解碼的區塊係暫時儲存於該深度單元10之一相關聯的瓦片快取記憶體14中。依據本發明之一壓縮系統100亦係提供於該深度單元10中,用於壓縮存在於該快取記憶體14中的像素區塊以儲存於該RAM 50中。
在一較佳具體實施例中,該深度單元10亦包含一瓦片表快取記憶體12。此表快取記憶體12儲存與該等像素區塊相關聯但係與該深度緩衝器資料保持分離之標頭資訊。磚塊表項目一般包含標誌相關聯的像素區塊係以未經壓縮形式還係以一經壓縮形式儲存於RAM 50中之旗標。在後一情況下,該旗標較佳的係還標誌該經壓縮區塊之尺寸,因為不同的經壓縮區塊可具有不同的總位元長度。例如,一2位元旗標可用於標誌未經壓縮的區塊、經75%原始尺寸之壓縮、經50%原始尺寸之壓縮或經快速Z清除之壓縮。
一光柵處理器20係連接至該深度單元10而實行像素之實際的光柵化。該光柵處理器20係連接至一或多個像素管線30,該(等)像素管線30係用於計算一像素之深度及色彩。每一像素管線30係藉由先前所繪的幾何而連接至用於捨棄閉塞(即具有一較大深度值)的像素之一深度測試單元40。在某些具體實施例中,該等像素管線30與該等深度測試40之順序可互換。
圖12係依據本發明之一壓縮器或壓縮系統100之一示意性方塊圖。該系統100包含為選擇針對欲壓縮區塊之一開始深度值而實施之一開始選擇器110。該選擇器110較佳的係將該開始值選擇為等於在該區塊中處於一預定義像素位置之一像素(例如處於該區塊的左上角之像素)的深度值。此開始深度值係視為屬於一第一(開始)深度平面,而在該經壓縮區塊中包括該開始深度值之一表示。
一重新開始選擇器120係配置用於選擇針對該區塊之一重新開始深度值。此重新開始選擇器120較佳的係將該重新開始值選擇為等於在該區塊中識別之一像素的深度值。該重新開始值係視為屬於一第二(重新開始)深度平面,而該重新開始值之一表示係包括於該經壓縮區塊中。
該壓縮系統100還包含一用於產生一像素之一平面表示的平面表示產生器130。該表示係指示該像素屬於該等開始與重新開始平面之哪一平面。該平面產生器較佳的係針對在該區塊中的多個像素之至少一部分而更佳的係針對可能不包括該開始像素之每一像素產生平面表示。在此一情況下,該重新開始選擇器120可使用該等平面表示來識別正確的重新開始像素,如先前所述。此意味著,亦可將該等平面表示視為在該區塊中之重新開始像素之位置的一表示。
提供一集合選擇器140來針對一欲編碼的像素選擇在該區塊中的至少一像素之一像素集合。此外,基於藉由該表示產生器130決定的像素之平面表示來實行此集合選擇。該集合可包括如先前所述在該區塊中存在於不同預測方向上之一個或多個(例如兩個或三個)像素。
藉由該預測提供器150來決定一像素之深度值之一預測。在此一情況下,該提供器150基於在來自該集合選擇器140的像素集合中包括的像素之深度值來產生該深度預測。
所提供的深度預測係供一誤差估計器160用來估計或計算針對該像素之一預測誤差。該誤差較佳的係計算為在由該預測提供器150決定的預測與該像素的原始深度值之間的一差。
在該壓縮系統100中實施一表示決定器170,以決定來自該誤差估計器160的預測誤差之一經編碼的表示。此誤差表示係指派給該像素且係包括於經壓縮的像素區塊中。
該壓縮系統100可視需要包含實施用以提供一導引位元之一導引位元提供器180,該導引位元係用於標誌兩個可用相鄰像素之哪一像素欲用作針對該當前像素之預測基礎。在此一情況下,此等兩個相鄰像素皆屬於與該像素相同之深度值平面,而該導引位元係用於在該兩個像素的深度值之間加以區分。
該壓縮系統100之單元110至180可以係提供作為軟體、硬體或其一組合。該等單元110至180可以係一起實施於該壓縮系統100中。或者,一分佈式實施方案亦可行而將該等單元之某些單元提供於該深度緩衝器架構中的其他地方。
可實施該重新開始選擇器120來透過測試在該區塊中的每一可用位元位置(不包括該開始像素之位置)之一徹底搜尋來識別該重新開始像素。接著選擇產生效率最高的經壓縮區塊(即,該經壓縮區塊表示的最短位元長度)之重新開始位置及重新開始值。圖13解說該重新開始選擇器120之一替代性實施方案。
該重新開始選擇器120包含一數值識別器122,其係配置用於識別具有與來自該開始選擇器的開始深度值相差最大之一深度值的在該區塊中之像素。一差計算器124係實施用以計算(較佳的係針對每一像素)介於該深度值與該開始值之間的一第一差Z ij
-Z start
以及介於該深度值與相差最大的值之間的一第二差Z ij
-Z diff
。若第一差之絕對值針對一像素係最小,則將該像素視為屬於該開始深度平面。但是,若|Z ij -Z diff
|<|Z ij
-Z start
|,則該像素替代地屬於該重新開始深度平面。
一數值選擇器126調查視為屬於該重新開始平面之所有該些像素,而將該重新開始像素識別為屬於該重新開始值平面之按橫越順序(在一4×4像素區塊之情況下係(1,1)→(1,4),(2,1)→(2,4),(3,1)→(3,4),(4,1)→(4,4))的第一像素。因此,經壓縮的區塊表示較佳的係包含該重新開始值之一表示,即所識別的重新開始像素之深度值。
該重新開始選擇器120之單元122至126可以係提供作為軟體、硬體或其一組合。該等單元122至126可以係一起實施於該重新開始選擇器120中。或者,一分佈式實施方案亦可行而將該等單元之某些單元提供於該壓縮系統中的其他地方。
該重新開始選擇器120可替代地依據在本文獻中先前所述之其他任何具體實施例來操作。例如,該重新開始選擇器120可使用來自該平面表示產生器130之資訊來將該重新開始像素識別為按橫越順序之第一像素,該第一像素係視為屬於不同於該開始深度值平面之一平面。
圖14係該平面表示產生器130之一具體實施例之一示意性方塊圖。該產生器130包含實施用以決定在一像素之一深度值與該開始深度值之間的一第一差之一差決定器132。該產生器130還計算該深度值與該重新開始深度值或與該開始值相差最大之在該區塊中的值之間的一第二差,即Z diff
。
一表示產生器134係包括於該平面產生器130中,用於在該第一差的絕對值小於該第二差的絕對值之情況下產生欲指示該開始深度值平面的該像素之平面表示。否則該產生器134提供指示該重新開始平面之一平面表示。
該平面表示產生器130之單元132及134可以係提供作為軟體、硬體或其一組合。該等單元132及134可以係一起實施於該產生器130中。或者,一分佈式實施方案亦可行而將該等單元之某些單元提供於該壓縮系統中的其他地方。
在一較佳具體實施例中,該集合選擇器140調查欲藉由在該區塊中存在於不同預測方向上的三個先前相鄰像素之平面表示來編碼之一像素的平面表示。若所有此等四個像素皆屬於相同平面,則圖15所解說的預測提供器150之一預測計算器152基於該三個相鄰像素之深度值來計算針對該像素之深度值預測。在一較佳實施方案中,該計算器152將該預測計算為。
若該三個相鄰像素並非皆屬於與該像素相同之平面,則該集合選擇器較佳的係調查該第一相鄰像素及一第二像素是否存在於與該第一相鄰像素及該當前像素相同的列(或行)上。在此一情況下,該計算器152基於此等兩個像素值之深度值來決定該預測,較佳的係決定為。
若該第一相鄰像素與該第二像素並非皆屬於與該當前像素相同之平面,則該集合選擇器檢查該第二相鄰像素及一第三像素是否存在於與該第二相鄰像素及該當前像素相同之行(或列)中。若達到此條件,則該預測計算器152基於此等兩個像素值之深度值來決定該預測,較佳的係決定為。
或者,如前面所述,上面提到的檢查之順序可能不同。
但是,若不滿足該等條件中的任何條件,則該集合選擇器調查該等第一與第二相鄰像素是否皆屬於與本發明相同之深度值平面。在此一情況下,藉由該預測提供器150來選擇與該當前像素的深度值最接近(即,產生最小絕對值差)之此等兩個像素之深度值作為針對該像素之預測。此外,該壓縮系統之導引位元提供器將一導引位元指派給該像素,其中此導引位元指示該等第一及第二相鄰像素之選定像素。
或者,將此等兩個像素之深度值相比較以弄清其是否彼此相差甚多。若否,則該預測提供器150將該預測決定為基於該兩個深度值之平均值(可能係在四捨五入後)。若該兩個值(儘管)彼此相差超過一預定義的臨限值,則如上所述選擇其中任一者。
若該等第一與第二相鄰像素兩者並非皆屬於與該當前像素相同之平面,則該集合選擇器檢查該第一相鄰像素是否屬於相同平面而接著若此並非真實情況則調查該第二相鄰像素是否屬於與欲編碼的像素相同之平面。該預測提供器150將該深度值預測設定為等於屬於與該像素相同的平面之第一與第二相鄰像素之一者的深度值。
最後,若如基於該等平面表示所決定,該等第一與第二相鄰像素皆不屬於與該像素相同之平面,則該集合選擇器將該集合決定為包含該開始像素或該重新開始像素。可基於該當前像素之平面表示來決定欲從此兩個像素選擇之像素。因此,若該表示指示該重新開始平面,則該集合包含該重新開始像素,否則其包含該開始像素。此意味著該預測提供器將該深度值預測選擇為該等開始與重新開始深度值之一者。
該預測提供器150之單元152可以係提供作為軟體、硬體或其一組合。該單元152可以係一起實施於該預測提供器150中。或者,一分佈式實施方案亦可行而將該等單元之某些單元提供於該壓縮系統中的其他地方。
圖16係更詳細解說圖12之表示決定器170之一較佳實施方案的一方塊圖。該決定器170包含一誤差修改器172。此修改器172處理計算出的預測誤差以獲得如先前所述之一正預測誤差,即針對負預測誤差(包括零)將該預測誤差x輸入進該函數n
(x
)=-2x
而針對正預測誤差(不包括零)輸入進函數p
(x
)=2x
-1。較佳的係藉由Golomb-Rice編碼器174來編碼所得經修改的預測誤差。此編碼器174基於對來自該誤差修改器172的正誤差之一編碼而輸出經編碼的預測誤差表示。
一般地,該編碼器174包含用於搜尋一值k
之一數值搜尋器。較佳的係針對在該區塊中之一像素群組而決定該值k
以使得此等像素共享同一值k
。與針對在該區塊中的每一像素具有一專用值k
相比,此節省最終經壓縮區塊表示之位元數目。該數值搜尋器171可在所有可用值k
之間(例如)實行一徹底的搜尋。接著,選擇產生效率最高的編碼(即,最短的經壓縮區塊表示)之值k
並將其用於該像素群組。
一數字提供器173基於所決定的值k
提供一指數數字l
。在一較佳具體實施例中,若藉由該集合選擇器選擇之像素集合包含多個像素,則藉由該提供器173將此數字l
決定為等於k
。否則l
=w
×k
+h
或,其中w
係一權重值,較佳的係w
=0.5,而h
係一常數,較佳的係h
=10。
一除法器175使用所決定的值l
並將在該當前群組中的像素之預測誤差除以21
以獲得一商及一l
位元的餘數。一一元編碼器177係提供用於依據熟知的程序對該商進行一元編碼。因此,一像素之經編碼的預測誤差表示包含經一元編碼的商、該餘數及該值k
。
該表示決定器170之單元171至177可以係提供作為軟體、硬體或其一組合。該等單元171至177可以係一起實施於該表示決定器170中。或者,一分佈式實施方案亦可行而將該等單元之某些單元提供於該壓縮系統中的其他地方。
圖17係依據本發明之一解壓縮器或解壓縮系統200之一示意性方塊圖。該系統200包含一用於提供該像素區塊之一開始深度值的開始提供器210。該提供器210基於包含於經壓縮像素區塊中之一開始值表示來提供此開始值。此開始值較佳的係指派為在該像素區塊中具有一預定義位置之一像素之深度值。
一重新開始提供器220對應地基於在該經壓縮區塊中的資訊提供一重新開始深度值。此資訊包含實際重新開始值之一表示。此外,經壓縮的區塊亦包含允許識別在該區塊中的特定重新開始位置之資訊。此位置資訊可以係平面表示之位元映射,或者儘管不及較佳,但係一專用的重新開始位置字。因此,將該重新開始值作為深度值指派給所識別的像素(重新開始像素)。
該系統200還包含一誤差決定器230用於決定針對在該區塊中的至少一像素之一預測誤差。此預測誤差係基於與該像素相關聯且包括於該區塊中之一經編碼的誤差表示來決定。
一集合選擇器240基於與該等像素相關聯之平面表示來選擇包含在該區塊中的至少另一先前經解碼像素之一像素集合。較佳的係藉由一平面提供器270從經壓縮的像素區塊擷取此等平面表示。該集合選擇器240之操作類似於結合圖12之壓縮系統並進一步結合圖7A及7B來說明之集合選擇器240。
一預測提供器250接著基於包括於該選定像素集合中的像素之深度值提供該欲解碼像素的深度值之一預測。
一表示計算器260將來自該預測提供器250的預測與來自該誤差決定器230的預測誤差一起使用以計算該像素的深度值之一表示並由此產生一經解碼的像素。
該解壓縮系統200之單元210至270可以係提供作為軟體、硬體或其一組合。該等單元210至270可以係一起實施於該解壓縮系統200中。或者,一分佈式實施方案亦可行而將該等單元之某些單元提供於該深度緩衝器架構中的其他地方。
圖18係該誤差決定器230之一具體實施例之一示意性方塊圖。該決定器230包含對在該經壓縮區塊中之經編碼的預測誤差表示進行操作之一Golomb-Rice解碼器232。特定言之,該解碼器232使用一像素之一經一元編碼的商、一l位元的餘數及一值k
來計算如先前所述之預測誤差。
該誤差決定器230之單元232可以係提供作為軟體、硬體或其一組合。該單元232可以係一起實施於該誤差決定器230中。或者,一分佈式實施方案亦可行而將該等單元之某些單元提供於該解壓縮系統中的其他地方。
圖19係圖17之預測提供器250之一可行實施方案。該提供器包含配置用以基於包括於藉由該集合選擇器選擇的像素集合中的多個像素之深度值來計算該深度值預測之一預測計算器252。該計算器252如上面結合圖7A之步驟S41、S43或S45(此係取決於選擇哪一特定像素集合)所述來計算該預測。否則,該預測提供器250提供該深度值預測,如圖7B之步驟S48、S51、S53或S54中所揭示。
該預測提供器250之單元252可以係提供作為軟體、硬體或其一組合。該單元252可以係一起實施於該預測提供器250中。或者,一分佈式實施方案亦可行而將該等單元之某些單元提供於該解壓縮系統中的其他地方。
在一特定具體實施例中,該壓縮或解壓縮系統之集合選擇器係配置用以:將該像素集合選擇為包含相對於欲壓縮或解壓縮的至少一像素在該區塊中存在於一第一預測方向上之一第一相鄰像素、相對於該至少一像素在該區塊中存在於一第二預測方向上之一第二相鄰像素及相對於該至少一像素在該區塊中存在於一第三預測方向上之一第三相鄰像素,前提係該等第一、第二及第三相鄰像素屬於與該至少一像素相同之一深度平面,如基於該等平面表示所決定。
在此一情況下,該壓縮或解壓縮系統之預測提供器包含一用於將該預測計算為等於該等第一與第二相鄰像素的深度值之一和減去該第三相鄰像素之一深度值的預測計算器。
在另一特定具體實施例中,該集合選擇器係配置用於將該像素集合選擇為包含相對於該至少一像素在該區塊中存在於一第一預測方向上之一第一相鄰像素與在該第一預測方向上之一第二像素,前提係該第一相鄰像素及該第二像素屬於與該至少一像素相同之一深度值平面,如基於該等平面表示所決定。
在此一情況下,該預測提供器包含一用於將該預測計算為等於該第一相鄰像素值之一深度值的兩倍減去該第二像素之一深度值的預測計算器。
在另一特定具體實施例中,該集合選擇器係配置用於將該像素集合選擇為包含相對於該至少一像素在該區塊中存在於一第二預測方向上之一第二相鄰像素與在該第二預測方向上之一第三像素,前提係該第二相鄰像素及該第三像素屬於與該至少一像素相同之一深度值平面,如基於該等平面表示所決定。
在此一情況下,該預測提供器包含一用於將該預測計算為等於該第二相鄰像素值之一深度值的兩倍減去該第三像素之一深度值的預測計算器。
該集合選擇器較佳的係配置用於將該像素集合選擇為包含該第一相鄰像素與該第二相鄰像素之一者,前提係該等第一、第二及第三相鄰像素並非皆屬於與該至少一像素相同之一深度值平面,且該第一相鄰像素及該第二像素並非皆屬於與該至少一像素相同之一深度值平面,且該第二相鄰像素及該第三像素並非皆屬於與該至少一像素相同之一深度值平面,但該等第一及第二相鄰像素屬於與該至少一像素相同之一深度值平面,如基於該等平面表示所決定。該壓縮系統進一步包含一用於提供與該等第一及第二相鄰像素的選定像素相關聯之一導引位元的導引提供器,其中該區塊之經壓縮的表示包含該導引位元。
該解壓縮系統之集合選擇器較佳的係配置用於基於欲指派給該至少一像素且包含於該經壓縮像素區塊中之一導引位元將該像素集合選擇為包含該第一相鄰像素與該第二相鄰像素之一者,前提係該等第一、第二及第三相鄰像素並非皆屬於與該至少一像素相同之一深度值平面,且該第一相鄰像素及該第二像素並非皆屬於與該至少一像素相同之一深度值平面,且該第二相鄰像素及該第三像素並非皆屬於與該至少一像素相同之一深度值平面,但該等第一及第二相鄰像素屬於與該至少一像素相同之一深度值平面,如基於該等平面表示所決定。
此外,該集合選擇器較佳的係配置用於將該像素集合選擇為包含該第一相鄰像素,前提係該等第一、第二及第三相鄰像素並非皆屬於與該至少一像素相同之一深度值平面,且該第一相鄰像素及該第二像素並非皆屬於與該至少一像素相同之一深度值平面,且所有該第二相鄰像素及該第三像素並非皆屬於與該至少一像素相同之一深度值平面,且該第二相鄰像素並非屬於與該至少一像素相同之一深度值平面但該第一相鄰像素屬於與該至少一像素相同之一深度值平面,如基於該等平面表示所決定。
該集合選擇器較佳的還係配置用於將該像素集合選擇為包含與該深度值或該重新開始深度值相關聯之一像素,前提係該等第一、第二及第三相鄰像素並非皆屬於與該至少一像素相同之一深度值平面,且該第一相鄰像素及該第二像素並非皆屬於與該至少一像素相同之一深度值平面,且該第二相鄰像素及該第三像素並非皆屬於與該至少一像素相同之一深度值平面,且該第一相鄰像素並非屬於與該至少一像素相同之一深度值平面,且該第二相鄰像素並非屬於與該至少一像素相同之一深度值平面,如基於該等平面表示所決定。
圖20係解說針對用於不同解析度的"陰影"場景之壓縮效能之一圖式,其中100%表示原始頻寬。陰影線對應於由Hasselgren及Akenine-Mller[2]提出的深度緩衝器壓縮方案,而連續線表示本發明之深度緩衝器壓縮。應注意,針對所有解析度(但最高解析度除外),本發明之效能優於當前最新技術。
已在若干解析度中使用相同的場景以便測試針對不同尺寸之三角形效能。低解析度表示該等三角形與該等像素相比較小,即一"高複雜性"類型的場景。高解析度表示該等三角形與該等像素相比較大,表示一"低複雜性"類型的場景。熟習此項技術者會瞭解,可對本發明作各種修改及變更,而不脫離其由隨附申請專利範圍定義之範疇。
[1]Rasmusson、Hasselgren與Akenine-Mller的"精密且對誤差四捨五入之近似色彩緩衝器壓縮與解壓縮",圖形硬體2007年第41至48頁。
[2]Haselgren與Akenine-Mller的"高效率深度緩衝器壓縮",圖形硬體2006年第103至110頁。
[3]Lapidous與Jiao的"用於低成本圖形硬體之最佳深度緩衝器",圖形硬體1999年第67至73頁。
1...深度緩衝器架構
10...深度單元
14...地磚快取記憶體
20...光柵處理器
30...像素管線
40...深度測試單元
50...隨機存取記憶體(RAM)
100...壓縮器或壓縮系統
110...開始選擇器
120...重新開始選擇器
122...數值識別器
124...差計算器
126...數值選擇器
130...平面表示產生器
132...差決定器
134...表示產生器
140...集合選擇器
150...預測提供器
152...預測計算器
160...誤差估計器
170...表示決定器
171...數值搜尋器
172...誤差修改器
173...數字提供器
174...Golomb-Rice編碼器
175...除法器
177...一元編碼器
180...導引位元提供器
200...解壓縮器或解壓縮系統
210...開始提供器
220...重新開始提供器
230...誤差決定器
232...Golomb-Rice解碼器
240...集合選擇器
250...預測提供器
252...預測計算器
260...表示計算器
270...平面提供器
300...像素區塊
310至318...像素
400...經壓縮的像素區塊
410...位元
420...開始值表示
430...個別平面表示/重新開始值表示
440...平面表示/位元映射
460...經編碼的預測誤差/額外的導引位元
470...經編碼誤差表示
可藉由參考結合附圖所作的以上說明來更好地理解本發明與本發明之其他目的及優點,圖中:
圖1係依據本發明之一區塊壓縮方法之一具體實施例的一流程圖;
圖2係可用於本發明之一像素區塊之一範例的一圖解;
圖3示意性解說作為浮動點數字的表示之整數數字之使用;
圖4係解說圖1中的壓縮方法之額外步驟的一流程圖;
圖5係解說依據本發明之一具體實施例之平面表示產生步驟的一流程圖;
圖6係更詳細解說圖6的決定經編碼誤差表示之步驟之一具體實施例的一流程圖;
圖7A及7B係更詳細解說圖1或9之集合選擇及預測提供步驟之一具體實施例的流程圖;
圖8係一像素區塊之經壓縮表示之一範例的一圖解;
圖9係依據本發明之一區塊解壓縮方法之一具體實施例的一流程圖;
圖10係解說圖9的解壓縮方法之一額外步驟的一流程圖;
圖11係可應用本發明之教導內容的一深度緩衝器架構之一示意性方塊圖;
圖12係依據本發明之一具體實施例的一壓縮系統之一示意性方塊圖;
圖13係依據本發明之一具體實施例之圖12中的重新開始選擇器之一示意性方塊圖;
圖14係依據本發明之一具體實施例之圖12中的平面產生器決定器之一示意性方塊圖;
圖15係依據本發明之一具體實施例之圖12中的預測提供器之一示意性方塊圖;
圖16係依據本發明之一具體實施例之圖12中的表示決定器之一示意性方塊圖;
圖17係依據本發明之一具體實施例的一解壓縮系統之一示意性方塊圖;
圖18係依據本發明之一具體實施例之圖17中的誤差決定器之一示意性方塊圖;
圖19係依據本發明之一具體實施例之圖17中的預測提供擇器之一示意性方塊圖;及
圖20係將本發明之壓縮效能與一先前技術之壓縮方案相比較之一圖式。
(無元件符號說明)
Claims (32)
- 一種壓縮多個像素之一區塊的方法,該等多個像素之每一者包含一各別深度值(depth value),該方法包含以下步驟:- 選擇在該區塊中之該等多個深度值之一開始深度值,該開始深度值屬於一第一深度值平面;- 選擇在該區塊中之該等多個深度值之一重新開始深度值,該重新開始深度值屬於一第二深度值平面;- 針對該等多個像素之至少一部分,產生指示該等多個像素之該至少一部分屬於該等第一與第二深度值平面之哪一平面的一個別平面表示;- 針對在該區塊中的至少一像素,選擇在該區塊中的至少另一像素之一像素集合(set),此係基於該至少一像素及該像素集合之平面表示;- 基於該選定像素集合之該至少一深度值來提供該至少一像素之一深度值之一預測;- 基於該至少一像素之該深度值及該預測來估計一預測誤差;以及- 決定該預測誤差之一經編碼的表示(encoded representation),其中該區塊之一經壓縮的表示包含該開始深度值之一表示、該重新開始值之一表示及該預測誤差之該經編碼的表示。
- 如請求項1之方法,其中選擇該重新開始深度值之該步驟包含以下步驟: - 識別與該開始深度值相差最大之在該區塊中的該等多個深度值之一深度值;- 針對該等多個像素之至少一部分決定在一像素之一深度值與該開始深度值之間的一個別第一差;- 針對該等多個像素之該至少一部分決定在該像素之該深度值與該所識別深度值之間的一個別第二差;以及- 基於該等所決定的第一及第二差來選擇該重新開始深度值。
- 如請求項1或2之方法,其中該產生步驟包含以下步驟:- 決定在一像素之一深度值與該開始深度值之間的一第一差;- 決定在該像素之該深度值與同該開始深度值相差最大的該區塊之一深度值之間的一第二差;以及- 若該第一差之一絕對值小於該第二差之一絕對值,由將該平面表示產生為指示該第一深度值平面,而否則將該平面表示產生為指示該第二深度值平面。
- 如請求項1或2之方法,其中該決定步驟包含以下步驟:- 修改該預測誤差以獲得一正預測誤差;以及- 對該正預測誤差進行Golomb-Rice編碼以藉由以下操作獲得該預測誤差之該經編碼的表示:- 搜尋一值k ,其中k 係零或一正整數;- 提供一數字l ,若該選定像素集合包含多個像素則等於k ,而否則係基於w ×k +h ,其中h 係一預定義常數而w 係一預定義權重; - 將該正預測誤差除以21 以形成一商及一餘數;以及- 對該商進行一元編碼,其中該預測誤差之該經編碼的表示包含該餘數及該經一元編碼的商之一表示,而該區塊之該經壓縮的表示包含k 之一表示。
- 如請求項1或2之方法,其中選擇該像素集合之該步驟包含將該像素集合選擇為包含相對於該至少一像素在該區塊(300)中存在於一第一預測方向上之一第一相鄰像素、相對於該至少一像素在該區塊中存在於一第二預測方向上之一第二相鄰像素以及相對於該至少一像素在該區塊中存在於一第三預測方向上之一第三相鄰像素,前提係該等第一、第二及第三相鄰像素屬於與該至少一像素相同之一深度值平面,如基於該等平面表示所決定。
- 如請求項5之方法,其中提供該預測之該步驟包含將該預測計算為等於該等第一與第二相鄰像素的該等深度值之一和減去該第三相鄰像素之一深度值。
- 如請求項1或2之方法,其中選擇該像素集合之該步驟包含將該像素集合選擇為包含相對於該至少一像素在該區塊中存在於一第一預測方向上之一第一相鄰像素以及在該第一預測方向上之一第二像素,前提係該第一相鄰像素及該第二像素屬於與該至少一像素相同之一深度值平面,如基於該等平面表示所決定。
- 如請求項7之方法,其中提供該預測之該步驟包含將該預測計算為等於該第一相鄰像素之一深度值之兩倍減去 該第二像素之一深度值。
- 如請求項1或2之方法,其中選擇該像素集合之該步驟包含將該像素集合選擇為包含相對於該至少一像素在該區塊中存在於一第二預測方向上之一第二相鄰像素以及在該第二預測方向上之一第三像素,前提係該第二相鄰像素及該第三像素屬於與該至少一像素相同之一深度值平面,如基於該等平面表示所決定。
- 如請求項9之方法,其中提供該預測之該步驟包含將該預測計算為等於該第二相鄰像素之一深度值之兩倍減去該第三像素之一深度值。
- 如請求項5之方法,其中選擇該像素集合之該步驟包含以下步驟:- 將該像素集合選擇為包含該第一相鄰像素與該第二相鄰像素之一者,前提係該等第一、第二及第三相鄰像素並非皆屬於與該至少一像素相同之一深度值平面,且該第一相鄰像素及該第二像素並非皆屬於與該至少一像素相同之一深度值平面,且該第二相鄰像素及該第三像素並非皆屬於與該至少一像素相同之一深度值平面,但該等第一及第二相鄰像素屬於與該至少一像素相同之一深度值平面,如基於該等平面表示所決定;以及- 提供與該等第一及第二相鄰像素的該選定像素相關聯之一導引位元,其中該區塊之該經壓縮的表示包含該導引位元。
- 如請求項5之方法,其中選擇該像素集合之該步驟包 含:基於指派給該像素且包含於該經壓縮像素區塊中之一導引位元將該像素集合選擇為包含該第一相鄰像素與該第二相鄰像素之一者,前提係該等第一、第二及第三相鄰像素並非皆屬於與該至少一像素相同之一深度值平面,且該第一相鄰像素及該第二像素並非皆屬於與該至少一像素相同之一深度值平面,且該第二相鄰像素及該第三像素並非皆屬於與該至少一像素相同之一深度值平面,但該等第一及第二相鄰像素屬於與該至少一像素相同之一深度值平面,如基於該等平面表示所決定。
- 如請求項11之方法,其中選擇該像素集合之該步驟包含將該像素集合選擇為包含該第一相鄰像素,前提係該等第一、第二及第三相鄰像素並非皆屬於與該至少一像素相同之一深度值平面,且該第一相鄰像素及該第二像素並非皆屬於與該至少一像素相同之一深度值平面,且該第二相鄰像素及該第三像素並非皆屬於與該至少一像素相同之一深度值平面,且該第二相鄰像素並非屬於與該至少一像素相同之一深度值平面但該第一相鄰像素屬於與該至少一像素相同之一深度值平面,如基於該等平面表示所決定。
- 如請求項13之方法,其中選擇該像素集合之該步驟包含將該像素集合選擇為包含與該開始深度值或該重新開始深度值相關聯之一像素,前提係該等第一、第二及第三相鄰像素並非皆屬於與該至少一像素相同之一深度值平面,且該第一相鄰像素及該第二像素並非皆屬於與該至 少一像素相同之一深度值平面,且該第二相鄰像素及該第三像素並非皆屬於與該至少一像素相同之一深度值平面,且該第一相鄰像素並非屬於與該至少一像素相同之一深度值平面,且該第二相鄰像素並非屬於與該至少一像素相同之一深度值平面,如基於該等平面表示所決定。
- 一種解壓縮一經壓縮的像素區塊之方法,該方法包含以下步驟:-基於包含於該經壓縮像素區塊中之一開始值表示來提供一開始深度值,該開始深度值屬於一第一深度值平面;-基於包含於該經壓縮像素區塊中之一重新開始值表示來提供一重新開始深度值,該重新開始深度值屬於一第二深度值平面;-針對該區塊之至少一像素,基於與該至少一像素相關聯且包含於該經壓縮像素區塊中之一編碼誤差表示來決定一預測誤差;-針對該至少一像素,選擇包含在該區塊中的至少另一像素之一像素集合,此係基於與該至少一像素及該像素集合相關聯之平面表示,一平面表示係指示一像素屬於該等第一與第二深度值平面之哪一平面;-基於該選定像素集合之該至少一深度值來提供該至少一像素之一深度值之一預測;及-基於該預測誤差及該預測來計算該至少一像素之該深 度值之一表示。
- 如請求項15之方法,其進一步包含針對該等多個像素之至少一部分提供來自該經壓縮像素區塊之一個別平面表示。
- 如請求項15或16之方法,其中選擇該像素集合之該步驟包含將該像素集合選擇為包含相對於該至少一像素在該區塊(300)中存在於一第一預測方向上之一第一相鄰像素、相對於該至少一像素在該區塊中存在於一第二預測方向上之一第二相鄰像素以及相對於該至少一像素在該區塊中存在於一第三預測方向上之一第三相鄰像素,前提係該等第一、第二及第三相鄰像素屬於與該至少一像素相同之一深度值平面,如基於該等平面表示所決定。
- 如請求項17之方法,其中提供該預測之該步驟包含將該預測計算為等於該等第一與第二相鄰像素的該等深度值之一和減去該第三相鄰像素之一深度值。
- 如請求項15或16之方法,其中選擇該像素集合之該步驟包含將該像素集合選擇為包含相對於該至少一像素在該區塊中存在於一第一預測方向上之一第一相鄰像素以及在該第一預測方向上之一第二像素,前提係該第一相鄰像素及該第二像素屬於與該至少一像素相同之一深度值平面,如基於該等平面表示所決定。
- 如請求項19之方法,其中提供該預測之該步驟包含將該預測計算為等於該第一相鄰像素之一深度值之兩倍減去該第二像素之一深度值。
- 如請求項15或16之方法,其中選擇該像素集合之該步驟包含將該像素集合選擇為包含相對於該至少一像素在該區塊中存在於一第二預測方向上之一第二相鄰像素以及在該第二預測方向上之一第三像素,前提係該第二相鄰像素及該第三像素屬於與該至少一像素相同之一深度值平面,如基於該等平面表示所決定。
- 如請求項21之方法,其中提供該預測之該步驟包含將該預測計算為等於該第二相鄰像素之一深度值之兩倍減去該第三像素之一深度值。
- 如請求項17之方法,其中選擇該像素集合之該步驟包含以下步驟:- 將該像素集合選擇為包含該第一相鄰像素與該第二相鄰像素之一者,前提係該等第一、第二及第三相鄰像素並非皆屬於與該至少一像素相同之一深度值平面,且該第一相鄰像素及該第二像素並非皆屬於與該至少一像素相同之一深度值平面,且該第二相鄰像素及該第三像素並非皆屬於與該至少一像素相同之一深度值平面,但該等第一及第二相鄰像素屬於與該至少一像素相同之一深度值平面,如基於該等平面表示所決定;以及- 提供與該等第一及第二相鄰像素的該選定像素相關聯之一導引位元,其中該區塊之該經壓縮的表示包含該導引位元。
- 如請求項17之方法,其中選擇該像素集合之該步驟包含:基於指派給該像素且包含於該經壓縮像素區塊中之 一導引位元將該像素集合選擇為包含該第一相鄰像素與該第二相鄰像素之一者,前提係該等第一、第二及第三相鄰像素並非皆屬於與該至少一像素相同之一深度值平面,且該第一相鄰像素及該第二像素並非皆屬於與該至少一像素相同之一深度值平面,且該第二相鄰像素及該第三像素並非皆屬於與該至少一像素相同之一深度值平面,但該等第一及第二相鄰像素屬於與該至少一像素相同之一深度值平面,如基於該等平面表示所決定。
- 如請求項23之方法,其中選擇該像素集合之該步驟包含將該像素集合選擇為包含該第一相鄰像素,前提係該等第一、第二及第三相鄰像素並非皆屬於與該至少一像素相同之一深度值平面,且該第一相鄰像素及該第二像素並非皆屬於與該至少一像素相同之一深度值平面,且該第二相鄰像素及該第三像素並非皆屬於與該至少一像素相同之一深度值平面,且該第二相鄰像素並非屬於與該至少一像素相同之一深度值平面但該第一相鄰像素屬於與該至少一像素相同之一深度值平面,如基於該等平面表示所決定。
- 如請求項25之方法,其中選擇該像素集合之該步驟包含將該像素集合選擇為包含與該開始深度值或該重新開始深度值相關聯之一像素,前提係該等第一、第二及第三相鄰像素並非皆屬於與該至少一像素相同之一深度值平面,且該第一相鄰像素及該第二像素並非皆屬於與該至少一像素相同之一深度值平面,且該第二相鄰像素及該 第三像素並非皆屬於與該至少一像素相同之一深度值平面,且該第一相鄰像素並非屬於與該至少一像素相同之一深度值平面,且該第二相鄰像素並非屬於與該至少一像素相同之一深度值平面,如基於該等平面表示所決定。
- 一種區塊壓縮系統,其用於壓縮各包含一深度值的多個像素之一區塊,該系統包含:- 一開始選擇器,其用於選擇在該區塊中之該多個深度值之一開始深度值,該開始深度值屬於一第一深度值平面;- 一重新開始選擇器,其用於選擇在該區塊中之該多個深度值之一重新開始深度值,該重新開始深度值屬於一第二深度值平面;- 一平面表示產生器,其用於針對該多個像素之至少一部分,產生指示該多個像素之該至少一部分屬於該等第一與第二深度值平面之哪一平面的一個別平面表示;- 一集合選擇器,其用於針對在該區塊中的至少一像素,選擇在該區塊中的至少另一像素之一像素集合,此係基於該至少一像素及該像素集合之平面表示;- 一預測提供器,其用於基於該選定像素集合之該至少一深度值來提供該至少一像素之一深度值之一預測;- 一誤差估計器,其用於基於該至少一像素之該深 度值及該預測來估計一預測誤差;以及- 一表示決定器,其用於決定該預測誤差之一經編碼的表示,其中該區塊之經壓縮的表示包含該開始深度值之一表示、該重新開始值之一表示及該預測誤差之該經編碼的表示。
- 如請求項27之系統,其中該重新開始選擇器包含:- 一數值識別器,其用於識別與該開始深度值相差最大之在該區塊中的該多個深度值之一深度值;- 一差計算器,其用於針對該多個像素之至少一部分決定在一像素之一深度值與該開始深度值之間的一個別第一差以及在該像素之該深度值與該所識別深度值之間的一個別第二差;以及- 一值選擇器,其用於基於該等所決定的第一及第二差來選擇該重新開始深度值。
- 如請求項27或28之系統,其中該平面表示產生器包含:- 一差決定器,其用於決定在一像素之該深度值與該開始深度值之間的一第一差,並決定在該像素之該深度值與同該開始深度值相差最大的該區塊之一深度值之間的一第二差;以及- 一表示產生器,其用於在該第一差小於該第二差之情況下將該平面表示產生為指示該第一深度值平面而否則將該平面表示產生為指示該第二深度值平面。
- 如請求項27或28之系統,其中該表示決定器包含:- 一誤差修改器,其用於修改該預測誤差以獲得一 正預測誤差;以及- 一Golomb-Rice編碼器,其進而包含:- 一數值搜尋器,其用於搜尋一值k ,其中k 係零或一正整數;- 一數字提供器,其用於提供一數字l ,若該選定像素集合包含多個像素則其等於k ,否則係基於w ×k +h ,其中h 係一預定義常數而w 係一預定義權重;- 一除法器,其用於將該正預測誤差除以21 以形成一商及一餘數;以及- 一一元編碼器,其用於對該商進行一元編碼,其中該預測誤差之該經編碼的表示包含該餘數及該經一元編碼的商之一表示,而該區塊之該經壓縮的表示包含k 之一表示。
- 一種區塊解壓縮系統,其用於解壓縮一經壓縮像素區塊,該系統包含:- 一開始提供器,其用於基於包含於該經壓縮像素區塊中之一開始值表示來提供一開始深度值,該開始深度值屬於一第一深度值平面;- 一重新開始提供器,其用於基於包含於該經壓縮像素區塊中之一重新開始值表示來提供一重新開始深度值,該重新開始深度值屬於一第二深度值平面;- 一誤差決定器,其用於針對該區塊之至少一像素,基於與該至少一像素相關聯且包含於該經壓縮像素區塊中之一經編碼的誤差表示來決定一預測誤差; - 一集合選擇器,其用於針對該至少一像素,選擇包含在該區塊中的至少另一像素之一像素集合,此係基於與該至少一像素及該像素集合相關聯之平面表示,一平面表示係指示一像素屬於該等第一與第二深度值平面之哪一平面;- 一預測提供器,其用於基於該選定像素集合之該至少一深度值來提供該至少一像素之一深度值之一預測;以及- 一表示計算器,其用於基於該預測誤差及該預測來計算該至少一像素之該深度值之一表示。
- 如請求項31之系統,其進一步包含針對該等多個像素之至少一部分提供來自該經壓縮像素區塊之一個別平面表示的平面提供器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US2239708P | 2008-01-21 | 2008-01-21 | |
PCT/EP2008/055519 WO2009092454A1 (en) | 2008-01-21 | 2008-05-06 | Prediction-based image processing |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200935359A TW200935359A (en) | 2009-08-16 |
TWI466066B true TWI466066B (zh) | 2014-12-21 |
Family
ID=40435061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097148286A TWI466066B (zh) | 2008-01-21 | 2008-12-11 | 區塊壓縮系統、區塊解壓縮系統及其相關方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8311353B2 (zh) |
EP (1) | EP2245596B1 (zh) |
JP (1) | JP5302336B2 (zh) |
CN (1) | CN101925925B (zh) |
TW (1) | TWI466066B (zh) |
WO (1) | WO2009092454A1 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI385592B (zh) * | 2009-09-14 | 2013-02-11 | Univ Nat Pingtung Sci & Tech | 編碼簿產生方法 |
KR102166519B1 (ko) | 2010-04-13 | 2020-10-16 | 지이 비디오 컴프레션, 엘엘씨 | 샘플 영역 병합 |
CN106231330B (zh) | 2010-04-13 | 2019-07-19 | Ge视频压缩有限责任公司 | 解码器、解码方法、编码器以及编码方法 |
BR112012026400B1 (pt) | 2010-04-13 | 2021-08-10 | Ge Video Compression, Ll | Predição inter-plano |
EP4407987A3 (en) | 2010-04-13 | 2024-10-23 | GE Video Compression, LLC | Inheritance in sample array multitree subdivision |
KR20120023431A (ko) * | 2010-09-03 | 2012-03-13 | 삼성전자주식회사 | 깊이 조정이 가능한 2차원/3차원 영상 변환 방법 및 그 장치 |
GB2487421A (en) * | 2011-01-21 | 2012-07-25 | Imagination Tech Ltd | Tile Based Depth Buffer Compression |
CA2827621C (en) | 2011-03-18 | 2019-02-26 | Sony Corporation | Image processing apparatus and image processing method |
EP2702562A4 (en) * | 2011-04-28 | 2014-11-19 | Intel Corp | DEEP BUFFER COMPRESSION FOR STOCHASTIC MOTION FENCING HOLDER |
CN103918255B (zh) * | 2011-08-09 | 2016-06-22 | 三星电子株式会社 | 对多视点视频数据的深度图进行编码的方法和装置以及对编码的深度图进行解码的方法和装置 |
RU2597256C2 (ru) | 2011-08-31 | 2016-09-10 | Сони Корпорейшн | Устройство кодирования, способ кодирования, устройство декодирования и способ декодирования |
WO2013031575A1 (ja) * | 2011-08-31 | 2013-03-07 | ソニー株式会社 | 画像処理装置および画像処理方法 |
BR122020007580B1 (pt) | 2012-01-20 | 2021-10-26 | Ge Video Compression, Llc | Decodificador, codificador e método para decodificação de um fluxo contínuo de dados |
CN104081780A (zh) * | 2012-01-31 | 2014-10-01 | 索尼公司 | 图像处理装置和图像处理方法 |
US20130265305A1 (en) * | 2012-04-04 | 2013-10-10 | Jon N. Hasselgren | Compressed Depth Cache |
CN104365099B (zh) | 2012-04-15 | 2017-10-27 | 三星电子株式会社 | 用于变换系数等级的熵编码和熵解码的参数更新方法以及使用该方法的变换系数等级的熵编码装置和熵解码装置 |
US8947274B2 (en) | 2012-06-21 | 2015-02-03 | Mitsubishi Electric Corporation | Encoding apparatus, decoding apparatus, encoding method, encoding program, decoding method, and decoding program |
TW201421972A (zh) * | 2012-11-23 | 2014-06-01 | Ind Tech Res Inst | 立體視訊的編碼方法及其系統 |
US10271034B2 (en) * | 2013-03-05 | 2019-04-23 | Qualcomm Incorporated | Simplified depth coding |
US9501864B2 (en) * | 2013-12-27 | 2016-11-22 | Intel Corporation | Adaptive depth offset compression |
CN104349165B (zh) * | 2014-09-16 | 2017-06-16 | 上海通途半导体科技有限公司 | 高性能变长编解码方法及装置 |
KR102434729B1 (ko) * | 2017-10-20 | 2022-08-19 | 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 | 처리방법 및 장치 |
US10657439B2 (en) * | 2017-10-24 | 2020-05-19 | Shanghai Cambricon Information Technology Co., Ltd | Processing method and device, operation method and device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6259431B1 (en) * | 1996-07-04 | 2001-07-10 | Kabushiki Kaisha Sega Enterprises | Image processor, game machine, image display method, and recording medium |
US6335997B1 (en) * | 1999-10-18 | 2002-01-01 | John T. S. Lee | Device and method for attenuating a low-level light source over a very wide dynamic range |
TW200715869A (en) * | 2005-07-25 | 2007-04-16 | Sony Corp | Image processing device, image processing method, and program |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9613039D0 (en) * | 1996-06-21 | 1996-08-28 | Philips Electronics Nv | Image data compression for interactive applications |
JPH10334270A (ja) * | 1997-05-28 | 1998-12-18 | Mitsubishi Electric Corp | 動作認識装置及び動作認識プログラムを記録した記録媒体 |
US6762758B2 (en) * | 2001-08-23 | 2004-07-13 | Ati Technologies Inc. | System, method, and apparatus for compression of video data using offset values |
CN1744719A (zh) * | 2002-04-09 | 2006-03-08 | Lg电子株式会社 | 块的预测方法 |
-
2008
- 2008-05-06 WO PCT/EP2008/055519 patent/WO2009092454A1/en active Application Filing
- 2008-05-06 US US12/863,762 patent/US8311353B2/en not_active Expired - Fee Related
- 2008-05-06 JP JP2010542538A patent/JP5302336B2/ja not_active Expired - Fee Related
- 2008-05-06 CN CN2008801252712A patent/CN101925925B/zh not_active Expired - Fee Related
- 2008-05-06 EP EP08750073.2A patent/EP2245596B1/en not_active Not-in-force
- 2008-12-11 TW TW097148286A patent/TWI466066B/zh not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6259431B1 (en) * | 1996-07-04 | 2001-07-10 | Kabushiki Kaisha Sega Enterprises | Image processor, game machine, image display method, and recording medium |
US6335997B1 (en) * | 1999-10-18 | 2002-01-01 | John T. S. Lee | Device and method for attenuating a low-level light source over a very wide dynamic range |
TW200715869A (en) * | 2005-07-25 | 2007-04-16 | Sony Corp | Image processing device, image processing method, and program |
Also Published As
Publication number | Publication date |
---|---|
US8311353B2 (en) | 2012-11-13 |
JP2011512067A (ja) | 2011-04-14 |
EP2245596A1 (en) | 2010-11-03 |
US20100296746A1 (en) | 2010-11-25 |
WO2009092454A1 (en) | 2009-07-30 |
CN101925925B (zh) | 2013-05-01 |
CN101925925A (zh) | 2010-12-22 |
EP2245596B1 (en) | 2017-07-12 |
JP5302336B2 (ja) | 2013-10-02 |
TW200935359A (en) | 2009-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI466066B (zh) | 區塊壓縮系統、區塊解壓縮系統及其相關方法 | |
JP5214742B2 (ja) | 予測に基づく画像処理 | |
EP1697899B1 (en) | Multi-mode alpha imag eprocessing | |
JP4805924B2 (ja) | マルチモード画像処理のための方法、システム、及びシステムを具備するユーザ端末 | |
US8396309B2 (en) | Index-based pixel block processing | |
CN117178297A (zh) | 微网格,用于计算机图形的结构化几何体 | |
KR20160001701A (ko) | 주파수 압축과 텍스처 파이프라인 | |
JP5934380B2 (ja) | 可変の深さ圧縮 | |
JP2006080793A (ja) | 画像符号化装置及び方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体 | |
CN117859330A (zh) | 几何点云编码中的属性编码 | |
CN118830235A (zh) | 几何点云编码 | |
JP2010541094A (ja) | 行傾きコードワード及び列傾きコードワードを使用する画素ブロック値の可逆圧縮のための方法、圧縮器、伸張器及び信号表現 | |
CN119278628A (zh) | 几何点云编码的系统及方法 | |
CN117813822A (zh) | 几何点云编解码中的属性编解码 | |
CN118369921A (zh) | 用于几何点云编码的自适应属性编码 | |
US9800876B2 (en) | Method of extracting error for peak signal to noise ratio (PSNR) computation in an adaptive scalable texture compression (ASTC) encoder | |
WO2023096978A1 (en) | Geometry point cloud coding | |
JP2024123792A (ja) | 画像処理装置、画像処理方法、エンコーダ、デコーダ、画像処理プログラム、及び画像処理システム | |
CN116472556A (zh) | 预测方法、编码器、解码器以及存储介质 | |
JP2008228229A (ja) | 画像符号化装置及びその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |