專利名稱:對有損及無損的2-d數(shù)據(jù)壓縮的可逆轉(zhuǎn)換的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及基于塊轉(zhuǎn)換的數(shù)字媒體(如視頻和圖像)壓縮。
背景技術(shù):
基于塊轉(zhuǎn)換的編碼轉(zhuǎn)換編碼是用于許多音頻、圖像和視頻壓縮系統(tǒng)中的壓縮技術(shù)。未壓縮的數(shù)字圖像和視頻通常表示成在安排成二維(2-D)網(wǎng)格中的圖像或視頻幀的位置處的圖形元素的或顏色的樣本,并按此形式捕捉。這稱為圖像或視頻的空間域表示。例如,圖像的通常格式包括安排成網(wǎng)格的24比特的彩色圖形元素樣本的流。每個樣本是一個數(shù),表示在如RGB、或YIQ等顏色空間內(nèi)網(wǎng)格中象素位置處的顏色成分。各種圖像和視頻系統(tǒng)可使用采樣的各種不同的顏色、空間和時間分辨率。類似地,數(shù)字音頻通常表示成按時間采樣的音頻信號流。例如,通常的音頻格式包括以規(guī)則的時間間隔采集的音頻信號的16比特幅值樣本的流。
未壓縮的數(shù)字音頻、圖像和視頻信號會消耗大量的存儲和傳輸容量。轉(zhuǎn)換編碼通過將信號的空間域表示轉(zhuǎn)換成頻率域(或其他類似的轉(zhuǎn)換域)表示,并隨后降低該轉(zhuǎn)換域表示的某些通常較少可感知的頻率分量從而減少了數(shù)字音頻、圖像和視頻的大小。與減少圖像或視頻在空間域中顏色或空間分辨率或減少音域在時間域的分辨率相比,這通常產(chǎn)生數(shù)字信號少得多的可感知的質(zhì)量降低。
更具體說,圖1中示出的典型的基于塊轉(zhuǎn)換的編解碼器100將未壓縮的數(shù)字圖像的象素劃分成固定大小的二維塊(X1…Xn),每塊可能與其他塊交疊。進(jìn)行空間一頻率分析的線性轉(zhuǎn)換120-121被應(yīng)用到每一塊,將塊中的空間樣本轉(zhuǎn)換成通常表示在該塊間隔上對應(yīng)頻帶內(nèi)數(shù)字信號的強度的一組頻率(或轉(zhuǎn)換)系數(shù)。為了壓縮,轉(zhuǎn)換系數(shù)可以有選擇地量化130(即如通過丟棄系數(shù)值的低有效位比特或?qū)⑤^高分辨率數(shù)據(jù)集的值設(shè)成低分辨率來降低分辨率),并熵編碼(entropy)或變長度編碼130成壓縮的數(shù)據(jù)流。在解碼時,轉(zhuǎn)換系統(tǒng)逆向地轉(zhuǎn)換170-171,以近似地重建原始的顏色/空間采樣的圖像/視頻信號(重建塊 塊轉(zhuǎn)換120-121可定義成在大小為N的矢量x上的數(shù)學(xué)運算。最常用的運算是線性乘法,產(chǎn)生轉(zhuǎn)換域輸出y=Mx,M是轉(zhuǎn)換矩陣。當(dāng)輸入數(shù)據(jù)任意長時,它被分段成N大小的矢量,且對每一段應(yīng)用塊轉(zhuǎn)換。為了數(shù)據(jù)壓縮的目的,選擇可逆的塊轉(zhuǎn)換。換言之,矩陣M是可逆的。在多維情況(如圖像和視頻),塊轉(zhuǎn)換通常作為可分離的操作實現(xiàn)。沿著數(shù)據(jù)的每個維度(即行或列)可分別地應(yīng)用矩陣乘法。
為了壓縮,轉(zhuǎn)換系數(shù)(矢量y的分量)可以有選擇地量化(即如通過丟棄系數(shù)值的低有效位比特或?qū)⑤^高分辨率數(shù)據(jù)集中的值映射成低分辨率來降低分辨率),并還熵編碼或變長度編碼成壓縮的數(shù)據(jù)流。
在解碼器150中的解碼時,如圖1所示在解碼器150方應(yīng)用這些操作的逆(解量化/熵解碼160和逆塊轉(zhuǎn)換170-171)。在重建數(shù)據(jù)時,應(yīng)用逆矩陣M-1(逆轉(zhuǎn)換170-171),作為轉(zhuǎn)換域數(shù)據(jù)的乘子。在應(yīng)用到轉(zhuǎn)換域數(shù)據(jù)時,逆轉(zhuǎn)換近似地重建原始的時間域或空間域數(shù)字媒體。
在許多基于塊轉(zhuǎn)換的編碼應(yīng)用中,轉(zhuǎn)換希望是可逆的,以根據(jù)量化因子同時支持有損和無損壓縮。例如,對于無量的情況(通常表示成量化因子為1),利用可逆轉(zhuǎn)換的編解碼器能在解碼時精確地再現(xiàn)輸入數(shù)據(jù)。然而在這些應(yīng)用中的可逆性要求限制了在設(shè)計編解碼器方面的轉(zhuǎn)換的挑選。
諸如MPEG和Windows Media等的許多圖像和視頻壓縮系統(tǒng)使用基于離散余弦轉(zhuǎn)換(DCT)的轉(zhuǎn)換。眾所周知,DCT具有導(dǎo)致幾乎最優(yōu)數(shù)據(jù)壓縮的令人滿意的能量緊致特性。在這些壓縮系統(tǒng)中,在壓縮系統(tǒng)的編碼器和解碼器內(nèi)的重建環(huán)路中采用逆DCT(IDCT)來重建各個圖像塊。DCT由N.Ahmed,T.Nalarajan和K.R.Rao,“Discrete Cosine Transforme”,IEEE Transaction on Computers,C-23(January 1974),pp 90-93描述。在“IEEE Standard Specification forthe Implementations of 8×8 Inverse Discrete osine Trnform”,IEEEStd,1180-1990,December 6,1990中描述IDCT的示例實施。
用于實現(xiàn)可逆2D數(shù)據(jù)壓縮器的傳統(tǒng)數(shù)據(jù)轉(zhuǎn)換通常受到一個或多個下列主要缺點的困擾,1.在需要復(fù)雜的熵編碼方案的各轉(zhuǎn)換系數(shù)之間不相等的范數(shù);2.對如DCT那樣最優(yōu)轉(zhuǎn)換的不良近似;和3.高計算復(fù)雜性。
2D轉(zhuǎn)換的常規(guī)實現(xiàn)可分離的2D轉(zhuǎn)換通常通過對數(shù)據(jù)的各行完成1D轉(zhuǎn)換,隨后對數(shù)據(jù)的列的1D轉(zhuǎn)換來實現(xiàn)(反之亦然)。見A.K.Jain,F(xiàn)undamentals of Digital ImagePrecessing,Prentice Hall,1989。在矩陣表示中,令T表示轉(zhuǎn)換矩陣而X是2D數(shù)據(jù)。用T的可分離2D轉(zhuǎn)換由下式中的Y定義Y=TXT’ (1)確實,行方向和列方向轉(zhuǎn)換可以是不同的,例如,數(shù)據(jù)矩陣可以是非方形的(如大小為4×8),或行方向和列方向轉(zhuǎn)換可分別是DCT和離散的正弦(DCT)轉(zhuǎn)換。在此情況,前乘子和后乘子是不同的(T1和T2),且轉(zhuǎn)換由下式給出。
Y=T1×T’2(2)例如圖2示出以兩階段實現(xiàn)的2D 4×4DCT。第一階段中,使用4點1D DCT轉(zhuǎn)換數(shù)據(jù)矩陣的諸列。在第二階段,沿著行應(yīng)用4點1D DCT。帶著無限的算術(shù)精度,此次序可交換而不改變輸出。
4點1D DCT能作為在4個輸入數(shù)據(jù)值上的乘法和加法運算的序列實現(xiàn),如圖3所示的信號流圖表示。在此示意圖中的值c和s分別是π/8的余弦和正弦。對有損編解碼器此可分離的轉(zhuǎn)換方法效果很好。無損編解碼器更難以實現(xiàn)。即使用單位量化,上述結(jié)合其可分離的逆DCT或IDCT描述的可分離的2D DCT也不保證產(chǎn)生與原始輸入的精確到比特的匹配。這是由于圖3中的除數(shù)引起在編碼器和解碼器之間不能抵消的舍入誤差。
提升為了用基于塊轉(zhuǎn)換的編解碼器實現(xiàn)無損壓縮,必須用無損轉(zhuǎn)換代替上述4×42D DCT。僅當(dāng)每個1D轉(zhuǎn)換是無損或可逆的,才可使用可分離的轉(zhuǎn)換。雖然對可逆1D轉(zhuǎn)換存在多種選擇,但基于“提升(lifting)”的選擇是最希望的。提升是使用逐次“剪切(share)”進(jìn)行矩陣-矢量乘法的過程。剪切定義成操作數(shù)向量與矩陣的乘法,該矩陣是一個單位矩陣加上一個非零的非對角元素。在此過程期間的任何處可發(fā)生一個或多個矢量系統(tǒng)的符號逆轉(zhuǎn)而不失一般性。
過去,提升通過階梯或格柵過濾器結(jié)構(gòu)實現(xiàn)。提升或基于逐次剪切的技術(shù)已在圖解法中使用。見A.Tanaka,M.Kameyame,S.Kazama,和O.Watanabe,“Arotation method for raster image using skew tramformation”,Proc.IEEEConf.On Computer Vision和Pattern Recognition,pages 272-277,June 1986;和A.W.Paeth,“A fast algorithm for general raster rotation,”Proceedings of Graphics Interface’86,pages 77-81,May 1986。事實上可認(rèn)為Gauss-Jordan消元法是提升的表現(xiàn)形式。
一個簡單的2點運算是由轉(zhuǎn)換矩陣TH=12111-1]]>給出的Hadamard轉(zhuǎn)換。為實現(xiàn)基于提升(可逆的)1D Hadamard轉(zhuǎn)換通常采用兩種方法。第一個是如圖4所示在提升步驟中實現(xiàn)歸一化的或與比例無關(guān)的Hadamard轉(zhuǎn)換。第二方法是如圖5所示允許比例在兩個轉(zhuǎn)換系數(shù)之間不同。
使用提升的問題提升不是沒有問題。在圖4所示的第一Hadamard轉(zhuǎn)換方法中,兩個轉(zhuǎn)換系數(shù)被歸一化。對實現(xiàn)諸如4或8點DCT的多級轉(zhuǎn)換這是希望的。然而,此實現(xiàn)方法受到兩個主要缺點的困擾一首先,每個2點Hadamard轉(zhuǎn)換需要三個非一般的(即大計算量的)提升步驟,而其次,在諸提升步驟的舍入誤差會導(dǎo)致低通能量“泄漏”到高頻項,引起壓縮效率的降低。在此第一方法中,使用近似tan(π8)≈38]]>和cos(π4)≈34]]>導(dǎo)致AC基本函數(shù)
。雖然與要求的
的差異看來不是過分大,幅值64的DC信號產(chǎn)生泄漏到編碼更花費時間的高頻帶的2單位的AC響應(yīng)。
第二方法(圖5)使用普通的提升步驟。然而,低通項用 因子放大,而高通項用 因子縮小(或相反)。兩個系數(shù)的分辨率有1比特的不同。在兩維中,與低-低項相比高-高項在分辨率中低2比特。串聯(lián)的轉(zhuǎn)換階段只會增加差異。由于系數(shù)的不同范圍熵編碼更難以實現(xiàn)。
總之,用基于提升的無損轉(zhuǎn)換的問題是1.在各轉(zhuǎn)換系數(shù)之間可能的不相等比例,使得熵編碼機制更復(fù)雜。
2.對希望的轉(zhuǎn)換基本函數(shù)的不良近似,這會引起如DC泄漏到AC帶的不希望的效果。
3.潛在的高計算復(fù)雜性,尤其是若基于提升的實現(xiàn)設(shè)計成很好近似于希望的轉(zhuǎn)換。
發(fā)明內(nèi)容
數(shù)字媒體編碼/解碼系統(tǒng)基于可分離的2D塊轉(zhuǎn)換,它具有涉及現(xiàn)有技術(shù)轉(zhuǎn)換的所述問題和缺陷的在此描述的各種實現(xiàn)。尤其是,可分離的2D轉(zhuǎn)換及其逆的對的所述實現(xiàn)具有一系列為減少計算的復(fù)雜度(即減少非一般的運算的數(shù)目)安排的提升步驟。此轉(zhuǎn)換對具有類似于DCT的能量緊致特性,并還是無損及與比例無關(guān)的。術(shù)語“無損”意為對轉(zhuǎn)換的原始整個輸入能被恢復(fù)而若假設(shè)無量化因素沒有由于從其整體轉(zhuǎn)換系數(shù)的逆轉(zhuǎn)換產(chǎn)生的誤差?!芭c比例無關(guān)”指的是轉(zhuǎn)換對的基本函數(shù)被相等地確定比例,它也意味著最終的轉(zhuǎn)換矩陣是正交的。
此轉(zhuǎn)換對的一個所述實現(xiàn)是4×4轉(zhuǎn)換,但也能擴展到其他大小(如8×8)。此外,可使用轉(zhuǎn)換對的串聯(lián)來實現(xiàn)分級的金字塔結(jié)構(gòu)和更大的轉(zhuǎn)換。例如,一個所述實現(xiàn)使用轉(zhuǎn)換的兩級串聯(lián)。在第二轉(zhuǎn)換階段,轉(zhuǎn)換被應(yīng)用到在宏功能塊中產(chǎn)生的16個DC系數(shù)。因為轉(zhuǎn)換類似于DCT,它可用于實現(xiàn)帶有極好的速率一失真性能和壓縮效率的無損到有損的數(shù)字媒體編解碼器(即其量化參數(shù)能從無損設(shè)置到有損設(shè)置變化的編解碼器)。
本發(fā)明的另外特征和優(yōu)點將從下面參考附圖進(jìn)行的實施例的詳細(xì)描述明白。
圖1是現(xiàn)有技術(shù)傳統(tǒng)的基于塊轉(zhuǎn)換的編解碼器的方框圖。
圖2是現(xiàn)有技術(shù)中在兩階段實現(xiàn)的2D 4×4 DCT的方框圖。
圖3是現(xiàn)有技術(shù)中ID 4×4 DCT的信號流圖。
圖4是現(xiàn)有技術(shù)中使用提升的歸一化的2-點Hadamard轉(zhuǎn)換的信號流圖。
圖5是現(xiàn)有技術(shù)中普通的2-點Hadamard轉(zhuǎn)換轉(zhuǎn)換的信號流圖。
圖6是基于改善的可逆2D轉(zhuǎn)換的編碼器的流程圖。
圖7是基于改善的可逆2D轉(zhuǎn)換的解碼器的流程圖。
圖8是可逆2×2Hadamard轉(zhuǎn)換的歸一化的基于提升的實現(xiàn)的信號流圖。
圖9是以C編程語言寫的用于實現(xiàn)圖8的歸一化的可逆2×2Hadamard轉(zhuǎn)換的程序表。
圖10是圖8的歸一化可逆2×2Hadamard轉(zhuǎn)換之逆的信號流圖。
圖11是Jodd轉(zhuǎn)換的歸一化的基于提升的實現(xiàn)的信號流圖。
圖12是用于實現(xiàn)圖11的歸一化Jodd轉(zhuǎn)換的以C編程語言寫的程序表。
圖13是圖11的Jodd轉(zhuǎn)換之逆的歸一化的基于提升的版本的信號流圖。
圖14是Jodd-odd轉(zhuǎn)換的歸一化的基于提升的實現(xiàn)的信號流圖。
圖15是用于實現(xiàn)圖14的歸一化Jodd-odd轉(zhuǎn)換的以C編程語言寫的程序表。
圖16是圖14的Jodd-odd之逆的歸一化的基于提升的版本的信號流圖。
圖17是示出轉(zhuǎn)換和逆轉(zhuǎn)換運算的圖中2×2數(shù)據(jù)的排序的示意圖。
圖18是示出當(dāng)1D垂直DCT和1D水平DCT分別應(yīng)用到4×4數(shù)據(jù)輸入的列和行時分別實現(xiàn)的2D DCT的信號流圖。
圖19是示出通過在兩個階段交替水平和垂直轉(zhuǎn)換操作實現(xiàn)的可逆的與比例無關(guān)的2D轉(zhuǎn)換的信號流圖。
圖20是示出在圖6的編碼器中實現(xiàn)改善的可逆2D轉(zhuǎn)換的第一階段中對其應(yīng)用圖8的2×2Hadamard轉(zhuǎn)換的4×4的數(shù)據(jù)塊的點的示意圖。
圖21是示出在圖6的編碼器中實現(xiàn)改善的可逆2D轉(zhuǎn)換的第二階段中對其應(yīng)用圖8的2×2Hadamard轉(zhuǎn)換、圖11的Jodd轉(zhuǎn)換、和圖14的Jodd-odd轉(zhuǎn)換的4×4轉(zhuǎn)換系數(shù)塊的點的示意圖。
圖22是示出在圖7的解碼器中實現(xiàn)逆2D轉(zhuǎn)換的第一階段中對其應(yīng)用圖8的2×2Hadamard轉(zhuǎn)換、圖11的Jodd轉(zhuǎn)換、和圖14的Jodd-odd轉(zhuǎn)換的4×4轉(zhuǎn)換系數(shù)塊的點的示意圖。
圖23是示出用于圖6的編碼器和圖7的解碼器中的正和逆2D轉(zhuǎn)換的轉(zhuǎn)換系數(shù)的排序的示意圖。
圖24是用于實現(xiàn)帶有圖6和圖7的改善的空間—域交疊的轉(zhuǎn)換的基于塊轉(zhuǎn)換的編解碼器的合適計算環(huán)境的方框圖。
圖25是用于圖11和14中示出的可逆2×2轉(zhuǎn)換的歸一化基于提升的實現(xiàn)的結(jié)構(gòu)的信號流圖。
具體實施例方式
下面描述涉及到利用改善的可逆的與比例無關(guān)的2D轉(zhuǎn)換的數(shù)字媒體壓縮系統(tǒng)或編解碼器。為說明起見,結(jié)合改善的轉(zhuǎn)換的壓縮系統(tǒng)的實施例是圖像或視頻壓縮系統(tǒng)。另外,改善的轉(zhuǎn)換也能加入到其他2D數(shù)據(jù)的壓縮系統(tǒng)或編解碼器,轉(zhuǎn)換不要求數(shù)字媒體壓縮系統(tǒng)以特定編碼格式編碼經(jīng)壓縮的數(shù)字媒體數(shù)據(jù)。
1.編碼器/解碼器圖6和7是在基于下面詳述的改善的可逆的與比例無關(guān)的2D轉(zhuǎn)換650的代表性2維(2D)數(shù)據(jù)編碼器600和解碼器700中采用的過程的普遍的示圖。該圖給出在加入2D數(shù)據(jù)編碼器和解碼器的壓縮系統(tǒng)中使用和應(yīng)用此轉(zhuǎn)換的普通的和簡化的圖示。在基于此轉(zhuǎn)換的可選編碼器中,對2D數(shù)據(jù)壓縮可使用比在此代表性編碼器的解碼器中示出的過程有附加的或更少的過程。例如,某些編碼器/解碼器也可包括顏色轉(zhuǎn)換、顏色格式、比例編碼、無損編碼、宏功能塊模式等。改善的2D轉(zhuǎn)換允許壓縮系統(tǒng)(編碼器和解碼器)根據(jù)基于量化參數(shù)從無損到有損變化的量化提供2D數(shù)據(jù)的有損和/無損的壓縮。
2D數(shù)據(jù)編碼器600產(chǎn)生壓縮的比特流620,它是作為該編碼器的輸入給出的2D數(shù)據(jù)610的更緊致表示(對典型輸入而言)。例如,2D數(shù)據(jù)輸入可以是圖像、視頻序列的幀,或其他具有二維的數(shù)據(jù)。2D數(shù)據(jù)編碼器將輸入數(shù)據(jù)鋪墊(630)成宏塊,在此代表性編碼器中它們是16×16象素大小。2D數(shù)據(jù)編碼器還將每一宏塊鋪墊成4×4塊(632)。“正向交疊”操作符(640)被應(yīng)用到在塊之間的每條邊界,此后使用可逆的與比例無關(guān)的轉(zhuǎn)換(650)轉(zhuǎn)換每個4×4的塊。接著每個4×4轉(zhuǎn)換塊的DC系數(shù)660經(jīng)過類似的處理鏈(鋪墊、正向交疊、隨后4×4的塊轉(zhuǎn)換)。最終的DC轉(zhuǎn)換系數(shù)和AC轉(zhuǎn)換系數(shù)被量化(670)、熵編碼(680)并包裝化(690)。
解碼器執(zhí)行逆過程。在解碼器方,從它們的相應(yīng)包提取(710)轉(zhuǎn)換系數(shù)比特,從中系數(shù)本身被解碼(720)和解量化(730)。通過應(yīng)用逆轉(zhuǎn)換重新生成DC系數(shù)(740),而DC系數(shù)的平面(plane)使用穿過DC塊邊界應(yīng)用的合適的平滑算符被“逆交疊”。接著,通過將4×4逆轉(zhuǎn)換(750)應(yīng)用到從該比特流解碼的DC系數(shù)和AC系數(shù)(742)重新生成整個數(shù)據(jù)。最后,在最終圖像平面中的塊邊界是經(jīng)過濾的逆向交疊(760)。這就產(chǎn)生重新構(gòu)造的2D數(shù)據(jù)輸出。
2.改善的可逆的與比例無關(guān)轉(zhuǎn)換的實現(xiàn)如由A.K.Jain,F(xiàn)undamentals of Digital Image Processing,PrenticeHall.1989中所述,可分離的2D轉(zhuǎn)換可作為在1D中排序的數(shù)據(jù)上操作的1D轉(zhuǎn)換實現(xiàn),產(chǎn)生類似的排序的矢量結(jié)果。由在可分離情況中使用的前乘子和后乘子的Kronecker乘積產(chǎn)生等價的轉(zhuǎn)換矩陣。若x和y標(biāo)記從在(2)中的它們的2D表示重新排離的數(shù)據(jù)和轉(zhuǎn)換向量,它們的關(guān)系由下式給出y=Jx (3)其中J=Kron(T1,T2)。
雖然等式(2)中示出的2D轉(zhuǎn)換的可分離實現(xiàn)在計算上比等式(3)中的更有效(在漸近的意義上)存在某些情況,后者的表示導(dǎo)出希望的特性。例如,由于單級矩陣乘法(它本意上是在若干數(shù)字信號處理器(DSD)上支持的操作)基于等式(3)的實現(xiàn)比等式(2)具有較低的等待時間。對于這里描述的改善的可逆的與比例無關(guān)的轉(zhuǎn)換,2×2步驟的1D表示導(dǎo)致與比例無關(guān)的可逆結(jié)構(gòu)。
此外,可分離的2D轉(zhuǎn)換能作為較簡單的1D轉(zhuǎn)換的串聯(lián)實現(xiàn)。假設(shè)轉(zhuǎn)換矩陣T1和T2能如下分解T1=T1AT1B(4)T2=T2AT2B矩陣乘法運算的關(guān)聯(lián)性可如下用于重新排序2D轉(zhuǎn)換(2)Y=T1×T2′=(T1AT1B)×(T2B′ T2A′)=T1A(T1B×T2B′)T2A′(5)導(dǎo)致串聯(lián)的1D實現(xiàn)。
y=Kron(T1A,T2A)·Kron(T1B,T2B)·x (6)諸如DCT的轉(zhuǎn)換可被公式化成基本的2點轉(zhuǎn)動運算的串聯(lián)。能使用(6)的結(jié)構(gòu)公式化2D DCT,使具有某些希望的特性,這將在下面詳述。
A.2D Hadamard轉(zhuǎn)換作為1D運算實現(xiàn)的2D Hadamard轉(zhuǎn)換通過Kronecker乘積產(chǎn)生,JH=Kron(TH,TH)=1211111-11-111-1-11-1-11---(7)]]>有趣的是可能只使用普通的提升步驟實現(xiàn)對應(yīng)等式(7)的與比例無關(guān)的可逆轉(zhuǎn)換。此方式的實現(xiàn)示作在圖8中的信號流圖800。在圖9中示出消除某些多余運算的相應(yīng)C++代碼。在此代碼表900中,“swap(x,y)”是交換其自變量值的函數(shù)。
從上述可見,能只使用普通的提升步驟公式化歸一的可逆2D Hadamard轉(zhuǎn)換,雖然對可爭議的“更簡單的”1D Hadamard情況這是不可能的!雖然轉(zhuǎn)換矩陣本身是對合的(好JH是其本身的逆),無損重建要求提升步驟被小心地求逆使能精確地再現(xiàn)任何舍入影響。在圖10中給出圖8中結(jié)構(gòu)800的逆1000-在此情況結(jié)構(gòu)1000等同于正轉(zhuǎn)換。注意,轉(zhuǎn)換系數(shù)B和C在信號流圖中被置換。
在圖6的編碼器600中的可逆的與比例無關(guān)的2D轉(zhuǎn)換650使用對4×4DCT的近似。下面描述證明了轉(zhuǎn)換650的整個轉(zhuǎn)換過程能作為三個基本2×2轉(zhuǎn)換運算的串聯(lián)實現(xiàn),它們是2×2Hadamard轉(zhuǎn)換和Odd rotateY=TR×TH′Odd-odd rotateY=TR×TR′ (8)其中二點旋轉(zhuǎn)矩陣TR如下給出TR=14+221+211-(1+2)---(9)]]>通過計算前轉(zhuǎn)換和后轉(zhuǎn)換矩陣的Kronecker乘積(近似到4位小數(shù))獲得等式(8)的1D實現(xiàn)J^odd=Kron(TR,TH)=0.65330.65330.27060.27060.6533-0.65330.2706-0.27060.27060.2706-0.6533-0.65330.2706-02706-0.65330.6533---(10)]]>和J^odd-odd=Kron(TR,TR)=0.85360.35360.35360.14640.3536-0.85360.1464-0.35360.35360.1464-0.8536-0.35360.1464-0.3536-0.35360.8536---(11)]]>記號^表示希望的轉(zhuǎn)換矩陣。從實際實現(xiàn)得出的近似不帶此記號。對2×2Hadamard轉(zhuǎn)換,希望的轉(zhuǎn)換矩陣和它的近似是等同的。因而,JH用于標(biāo)記在1D中實現(xiàn)的2×2Hadamard轉(zhuǎn)換而沒有任何二義性。接著,我們注意Jodd和Jodd-odd的提升實現(xiàn)。
B.Jodd的實現(xiàn)Jodd轉(zhuǎn)換1100的與比例無關(guān)的基于提升的實現(xiàn)示作圖11中的信號流圖和圖12中的C++代碼程序表1200??梢钥吹?,第一和最后的提升階段等同于Hadamard轉(zhuǎn)換情況,除了普通的剪切處,在中間階段應(yīng)用兩個非一般的提升旋轉(zhuǎn)。每個非一般的旋轉(zhuǎn)以三個步驟實現(xiàn),乘3和移位3或4個比特。因而通過使用6個非一般的提升步驟,Jodd能以可逆的與比例無關(guān)的方式實現(xiàn)。
得出的ID轉(zhuǎn)換矩陣Jodd示于下面等式(12),它與(10)中 的原始公式近似一致??梢钥吹降玫降木仃嚨牡诙偷谒男兄蜑榱悖@意味著沒有DC泄漏到AC帶。雖然需要的2D旋轉(zhuǎn)只是在結(jié)構(gòu)中的近似,但達(dá)到了希望的特性。
Jodd=0.64580.64580.28390.28390.6523-0.65230.2773-0.27730.27730.2773-0.6523-0.65230.2839-0.2839-0.64580.6458---(12)]]>雖然旋轉(zhuǎn)矩陣Jodd是對合的(即它是本身的逆),在信號流圖或代碼的兩次順序的應(yīng)用中舍入誤差不會消除。在信號流圖或C++代碼中通過提升步驟求逆導(dǎo)出Jodd的無損逆,以復(fù)制正轉(zhuǎn)換方面的舍入誤差。在圖13中示出Jodd的逆1300的信號流圖一代碼能類似地導(dǎo)出。
C.Jodd-odd的實現(xiàn)Jodd-odd轉(zhuǎn)換1400是兩次旋轉(zhuǎn)構(gòu)成的,它們均不是Hadamard轉(zhuǎn)換。有趣的是Jodd-odd能用比Jodd更少的非一般提升步驟實現(xiàn)。這是由于TR與其本身的Kronecker乘積的對稱屬性。在圖14和15中分別示出Jodd-odd轉(zhuǎn)換1400的信號流圖及其C++代碼的程序表1500。
可以看到,為實現(xiàn)Jodd-odd只借助三個非一般提升步驟實現(xiàn)的一個非一般的旋轉(zhuǎn)是需要的。此旋轉(zhuǎn)對應(yīng)于與比例無關(guān)的lD 2一點Hadamard轉(zhuǎn)換。
Jodd-odd=0.85940.32230.32230.14060.3750-0.85940.1406-0.37500.37500.1406-0.8594-0.37500.1406-0.3223-0.32230.8594---(13)]]>關(guān)于這里考慮的其他轉(zhuǎn)換,在等式(13)中表示的Jodd-odd是對合的,雖然不是其本身的精確到比特的逆。如圖16所示,通過對用于正轉(zhuǎn)換的信號流圖的求逆獲得Jodd-odd的無損的逆1600。
D.上述2×2轉(zhuǎn)換實現(xiàn)的標(biāo)記法和推導(dǎo)在這里使用這些三個可逆的與比例無關(guān)的轉(zhuǎn)換的可逆的與比例無關(guān)的2D轉(zhuǎn)換的描述中應(yīng)用下列要點。首先,在圖17中示出導(dǎo)致上面信號流圖和C++代碼的2×2數(shù)據(jù)的排序1700。在左邊示出空間域點,在右邊示出對應(yīng)的頻率域點。這里引入使用4個灰度級表示4個數(shù)據(jù)點的顏色編碼,以便于下面對可逆的與比例無關(guān)的2D轉(zhuǎn)換的描述。
2點轉(zhuǎn)換或旋轉(zhuǎn)常常定義成下述運算y=cosθsinθ-sinθcosθx---(14)]]>而不是對合形式y(tǒng)=cosθsinθsinθ-cosθx---(15)]]>這兩個公式基本上等同,因為它們僅在第二轉(zhuǎn)換系數(shù)的符號上有差別。這里使用后一個表示(15),雖然本文檔中的整個推導(dǎo)同樣可應(yīng)用到前一公式(14)。
上面定義的基本2×2轉(zhuǎn)換JH、Jodd和Jodd-odd的結(jié)構(gòu)通過注意到每個2點轉(zhuǎn)換是旋轉(zhuǎn)而被構(gòu)造。此外,二個2點旋轉(zhuǎn)的Kronecker乘積如下給出T=Kroncosαsinα-sinαcosα,cosβsinβ-sinβcosβ---(16)]]>然后我們定義算符H如下H=1000010001/210-1/2001·100101-1000100001---(17)]]>H代表非歸一化雙蝶形運算,并能使用提升有效地實現(xiàn)。
下面的分解有H·Kroncosαsinα-sinαcosα·cosβsinβ-sinβcosβ·H-1=cos(α-β)-sin(α-β)00sin(α-β)cos(α-β)0000cos(α+β)sin(α+β)00-sin(α+β)cos(α+β)]]>基于此,類型T的Kronecker乘積能作為3個階段的串聯(lián)實現(xiàn)
A.通過使用提升步驟的H定義的雙蝶形運算。
B.在第一對組件之間及在第二對組件之間的2點旋轉(zhuǎn),和C.在步驟A中執(zhí)行的雙蝶運算的逆。
對專門的情況JH,甚至存在更簡單的分解,它在圖8中示作信號流圖800,并如上描述。對其他情況(如Jodd和Jodd-odd),最終結(jié)構(gòu)能歸納為如圖25所示的流圖2500。
注意上述轉(zhuǎn)換(還有它們的逆)的信號流圖,觀察在它們結(jié)構(gòu)中的基本相似性。轉(zhuǎn)換的第一階段是在a-d和b-c系數(shù)之間的提升運算。類似地,最后階段是逆提升過程(忽視符號和系數(shù)交換)。相應(yīng)地,逆轉(zhuǎn)換的第一階段是在A和D之間和在B和C之間的提升運算,在最后階段是逆運算。在對角元素之間的提升步驟是這里給出的組合的2D 2×2轉(zhuǎn)換的顯著特征。
下一節(jié)討論近似4×4DCT/IDCT的無損的與比例無關(guān)的轉(zhuǎn)換的結(jié)構(gòu)。雖然在此詳細(xì)的技術(shù)討論中給出轉(zhuǎn)換的一個示例實施例,使能用帶有其他2×2的基本可逆的基于提升的轉(zhuǎn)換的附加定義的同樣過程,以產(chǎn)生帶有希望特性的更高難數(shù)的可逆轉(zhuǎn)換的實施例。
E.無損的,與比例無關(guān)的轉(zhuǎn)換如圖3的信號流圖中所示,4點DCT能縮減成4個蝶形運算的序列。第一階段包括在輸入數(shù)據(jù)上執(zhí)行2點Hadamard運算(即輸入數(shù)據(jù)索引號0和3的一個2點Hadamard運算;和輸入索引號1和2的第二個Hadamard運算)的兩個蝶形運算。第二階段包括產(chǎn)生偶數(shù)頻率分量(索引號0和2)的第一階段的低通結(jié)果的一個2點Hadamard運算和產(chǎn)生奇數(shù)頻率分量(索引號1和3)的一個2點旋轉(zhuǎn)π/8。
在兩個維度中,DCT能分別地實現(xiàn)每個4×4輸入數(shù)據(jù)的列的垂直1D 4點DCT;隨后是各行的水平1D 4點DCT(或相反)。在圖18中這畫成可分離的DCT實現(xiàn)1800。另外,如圖19的交叉DCT實現(xiàn)1900所示,使用等式(5)的原理,上述兩個1D DCT階段可在水平和垂直方向之間交替。
此外,在遵循上述方法時可進(jìn)一步組合相應(yīng)的垂直和水平階段。例如,第一階段是在“內(nèi)部”和“外部”輸入元素上的2點Hadamard轉(zhuǎn)換。水平和垂直階段能合并成在16個輸入數(shù)據(jù)元素上的4次應(yīng)用2×2 2D Hadamard轉(zhuǎn)換,每次轉(zhuǎn)換被應(yīng)用到輸入點的對稱組。同樣地,第二階段的水平和垂直步驟可合并成一個2×2Hadamard轉(zhuǎn)換和三個2×2轉(zhuǎn)換,其中兩個是移項。應(yīng)看到,后三個2×2轉(zhuǎn)換實際上是以前定義的Jodd和Jodd-odd轉(zhuǎn)換的2D再映射。
更具體說,通過重新安排各轉(zhuǎn)換運算成2×2Hadamard、Jodd和Jodd-odd轉(zhuǎn)換的排列實現(xiàn)可逆的與比例無關(guān)的2D轉(zhuǎn)換650(圖6)。此轉(zhuǎn)換650的兩個階段分別如圖20和圖21中所示那樣完成。每個階段包括4個2×2轉(zhuǎn)換,它們可在階段中以任何次序、或同時執(zhí)行。
對逆2D轉(zhuǎn)換750(圖7),諸階段次序上相反,且在每個轉(zhuǎn)換階段內(nèi)的步驟使用在正轉(zhuǎn)換過程中的步驟的逆。如前指出,可逆2×2Hadamard轉(zhuǎn)換JH在精確到比特或無損的意義上是其自己的逆。因而,逆光子(Photon)轉(zhuǎn)換的第二階段僅是正光子轉(zhuǎn)換的第一階段,如圖20所示。在圖22中畫出逆光子轉(zhuǎn)換的第一階段2200。在此階段的4個步驟(對于正轉(zhuǎn)換情況,這能以任意次序或同時執(zhí)行)應(yīng)用如前定義的JH、Jodd和Jodd-odd的逆,并重映射回到2D 2×2空間。
在遵循圖20和圖21中示出的改善的正2D轉(zhuǎn)換的步驟之后,得到的轉(zhuǎn)換系數(shù)如圖23所示那樣排序。在那個次序中,對于使用圖22和20中的步驟逆轉(zhuǎn)換的系數(shù)采取同樣的排序2300。
正2D轉(zhuǎn)換650的上述改善實現(xiàn)包括對每個4×4塊的JH的5次應(yīng)用、Jodd的2次應(yīng)用和Jodd-odd的1次應(yīng)用。在逆2D轉(zhuǎn)換750的實現(xiàn)中包括這些轉(zhuǎn)換同樣數(shù)目的應(yīng)用。因此,對每一塊非一般提升步驟步驟的總數(shù)是5×0+2×6+1×3=15,以實現(xiàn)無損的正或逆2D轉(zhuǎn)換。這是約每個象素1個非一般步驟。非一般步驟是公式(3×x+r)>>k的運算,其中x是運算數(shù),r和k是確定舍入和比特移位的常數(shù)。k是2、3或4。類似地,每個塊存在17個單位置的右移位(即x>>1)。加、減和非操作不計在此總計之中。
在比較中,考慮在圖18中示出的2D DCT的可分離的實現(xiàn)1800。假設(shè),每個4點DCT使用3個如圖3所示的2點歸一化Hadamard運算實現(xiàn),且使用3個非一般提升步驟實現(xiàn)旋轉(zhuǎn)π/8。對正或逆轉(zhuǎn)換每個4×4塊的非一般提升運算的總數(shù)是2×4×3=24。單個位置右移的總數(shù)也是24。這些數(shù)目比改善的正轉(zhuǎn)換650和逆轉(zhuǎn)換750的實現(xiàn)高約50%,不考慮最終的轉(zhuǎn)換產(chǎn)生帶范圍在1/4到2的(或若避免無理數(shù)范圍的基本函數(shù),到4)范數(shù)的基本函數(shù)的事實。相反,改善的轉(zhuǎn)換650的所有基本函數(shù)是單位范數(shù)。
F.對4:2:0顏色空間的改善的轉(zhuǎn)換在編碼器600(圖6)和解碼器700(圖7)的一個示例實施例中,使用YUV4:2:0顏色空間來表示在圖像(或視頻幀)中象素的顏色。在此示例的編解碼器中,在YUV 4:2:0顏色空間中的宏功能塊被定義成亮度(Y)通道中象素的16×16鋪墊塊,和在色度(U和V)通道中的8×8鋪墊塊。這些被進(jìn)一步分成4×4塊,它們使用上述轉(zhuǎn)換650被編碼轉(zhuǎn)換。4×4轉(zhuǎn)換650被應(yīng)用到亮度通道的DC系數(shù)。然而,在一個宏功能塊中只可得到2×2色度樣本。然后,示例的編解碼器將JH應(yīng)用于每個宏功能塊中DC色度值應(yīng)用,如上所述,JH是可逆的與比例無關(guān)的2×2Hadamard轉(zhuǎn)換。因此,保持示例編解碼器格式的宏功能塊結(jié)構(gòu),且為了處理4:2:0格式在編解碼器中無需引入另外的轉(zhuǎn)換。
G.最小化舍入誤差在包括右比特移位的JH、Jodd和Jodd-odd轉(zhuǎn)換的提升步驟中引入舍入誤差。這些舍入誤差具有已知的偏差,并能在轉(zhuǎn)換過程中建立。例如,已知,公式x+=(y>>1)的步驟與其數(shù)學(xué)等價x=x+y/2相比導(dǎo)致x的值中-1/4的偏差。這是因為(y>>1)是下舍入的除以2,若y是偶數(shù)它是精確的,若y是奇數(shù)差1/2。因而概率上看,它偏差-1/4。在包括提升的整數(shù)到整數(shù)轉(zhuǎn)換中舍入誤差是不可避免的,但希望在整個系統(tǒng)中使偏差極小化。
前面示作C++編碼片斷的JH、Jodd和Jodd-odd的公式對被除或右比特移位的操作數(shù)增加了變化的因素。選擇這些因素使偏差最小化。尤其是,在使用圖9中C++代碼表900的JH的(到無偏差輸入的)第一階段運算之后在4個轉(zhuǎn)換系數(shù)中的偏差可示作[1/4-1/4-1/4-1/4]。在改善的2D轉(zhuǎn)換650(圖6)中的JH的第二階段在第一階段的DC值上運算,即在已經(jīng)偏差1/4的系數(shù)上運算。第二階段運算的結(jié)果產(chǎn)生[3/4-1/4-1/4-1/4]的偏差。因為第一系數(shù)是DC的DC,可預(yù)期是大的,且3/4的相對較高的偏差不影響編碼性能。
為了最小化轉(zhuǎn)換偏差,在Jodd和Jodd-odd中的非一般提升步驟提供選擇舍入因素的自由度。對Jodd-odd的C++編碼表1500(圖15)示出,有時候偏離中心的舍入規(guī)則(如a+=(3b+5)>>3)導(dǎo)致更小的整體偏差,尤其是當(dāng)輸入數(shù)據(jù)本身偏差時。對改善的2D轉(zhuǎn)換步驟Jodd和Jodd-odd,所有輸入偏差到-1/4。
通常,編解碼器的定義限于位流解碼器的定義。此規(guī)則的一個例外是對無損編解碼器作出的,因為為了無損重建的輸入數(shù)據(jù)編碼器和解碼器必須完全匹配。在有損到無損的編解碼器的情況中,這在編碼器和解碼器雙方定義。然而,當(dāng)編碼器以純有損方式操作時,某些截斷或增強是可能的,它給出比在編解碼技術(shù)規(guī)范中定義的基線性能更好的性能(在速率一失真,或計算周期計算方面)。
改善編碼器性能的一個方法關(guān)系到轉(zhuǎn)換系數(shù)偏差。在編碼器600/解碼器700的某些實施例中通過對每個4×4的塊完成下列過程有可能減少偏差的影響1.通過乘m=2k(通常m=4效果很好)放大4×4塊。
2.在該塊上完成改善的2D轉(zhuǎn)換650。
3.使用量化器量化該塊,量化器是最初希望的量化參數(shù)的m倍(例如若在步驟1希望的QP是8且m=4,則使用量化因子(QP)32)。
在解碼器700方?jīng)]有改變,在同一比特速率下可能有更好的PSNR數(shù)。當(dāng)然,對無損編碼它不能用。
3.計算環(huán)境上述帶有改善的可逆的與比例無關(guān)的2D轉(zhuǎn)換的編解碼器可以在各種執(zhí)行數(shù)字媒體信號處理的設(shè)備的任一個上執(zhí)行,包括計算機;圖像和視頻記錄、傳輸和接收設(shè)備;便攜式視頻播放器;視頻會議等。數(shù)字媒體編碼技術(shù)能在硬件線路中和在如圖24所示的計算機或其他計算環(huán)境中執(zhí)行的數(shù)字媒體處理軟件中實現(xiàn)。
圖24示出在其中實現(xiàn)描述的實施例的合適的計算環(huán)境2400的一般例子。計算環(huán)境(2400)對本發(fā)明的使用或功能范圍不試圖提出任何限制,因為本發(fā)明能在各種通用或?qū)S糜嬎阒袑崿F(xiàn)。
參考圖24,計算環(huán)境(2400)至少包括一個處理單元(2410)和存儲器(2420)。在圖24中,此大部分基本配置(2430)包括在虛線內(nèi)。處理單元(2410)執(zhí)行計算機可執(zhí)行指令并可以是真實的或虛擬的處理器。在多處理系統(tǒng)中,多處理單元執(zhí)行計算機可執(zhí)行指令以增加處理能力。存儲器(2420)可以是易失存儲器(如寄存器、高速緩沖器、RAM)、非易失存儲器(如ROM、EEPROM、閃存等)或兩者的某種組合。存儲器(2420)存儲實現(xiàn)所述編碼器/解碼器和轉(zhuǎn)換的軟件(2480)。
計算機環(huán)境可具有另外特征。例如,計算環(huán)境(2400)包括存儲裝置(2440)、一個或多個輸入設(shè)備(2450)、一個或多個輸出設(shè)備(2460)、和一個或多個通信連接(2470)。諸如總線、控制器、或網(wǎng)絡(luò)的互連機制(未示出)互連計算環(huán)境(2400)的諸組件。通常,操作系統(tǒng)軟件(未示出)為其他在計算環(huán)境(2400)中執(zhí)行的軟件提供操作環(huán)境,并協(xié)調(diào)計算環(huán)境(2400)的諸組件的活動。
存儲裝置(2440)能是可移除的或不可移除的,并包括磁盤、磁帶或盒式磁帶、CD-ROM、CD-RW、DVD、或任何其他介質(zhì),它們有用于存儲信息并能在計算環(huán)境(2400)中被訪問。存儲裝置(2440)存儲用改善的SDLT實現(xiàn)編解碼器的軟件(2480)指令。
輸入設(shè)備(2450)能是接觸輸入設(shè)備,如鍵盤、鼠標(biāo)、輸入筆或軌跡球;語音輸入設(shè)備;掃描設(shè)備;或其他提供輸入到計算環(huán)境(2400)的設(shè)備。對聲頻,輸入設(shè)備(2450)可以是聲卡或以模擬或數(shù)字方式接收音頻輸入的類似設(shè)備、或提供音頻樣本給計算環(huán)境的CD-ROM閱讀器。輸出設(shè)備(2460)能是顯示器、打印機、擴音器、CD-寫入器或從計算設(shè)備(2400)提供輸出的其他設(shè)備。
通信連接(2470)使能通過通信媒體通信到另外計算實體。通信媒體傳遞諸如計算機可執(zhí)行指令、存儲的音頻或視頻信息、或其他調(diào)制數(shù)據(jù)信號的數(shù)據(jù)等信息。調(diào)制數(shù)字信號是具有以在信號中編碼信息的方式設(shè)置或改變的一個或多個特征的信號。例如且不作限止,通信媒體包括用電、光、RF、紅外、聲音、或其它載體實現(xiàn)的有線或無線技術(shù)。
這里的數(shù)字介質(zhì)處理技術(shù)能在計算機可讀介質(zhì)的一般情況中描述。計算機可讀介質(zhì)是在計算環(huán)境中能被訪問的任何可用介質(zhì)。例如而非限止,對計算環(huán)境(2400),計算機可讀介質(zhì)包括存儲器(2420)、存儲裝置(2440)、通信媒體、和上述的任何組合。
這里的數(shù)字介質(zhì)處理技術(shù)能以諸如包括在程序模塊中在真實或虛擬的目標(biāo)處理器上的計算環(huán)境中執(zhí)行的計算機可執(zhí)行指令的一般環(huán)境中描述。通常,程序模塊包括例程、程序、庫、對象、類、組件、數(shù)據(jù)結(jié)構(gòu)等,它們執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。如在各種實施例希望那樣,程序模塊的功能可在程序模塊之間組合或分割。程序模塊的計算機可執(zhí)行指令可在本地或分布式計算環(huán)境中執(zhí)行。
為表示的原因,詳細(xì)描述使用如“確定”、“生成”、“調(diào)節(jié)”、和“應(yīng)用”等術(shù)語以描述在計算環(huán)境中的計算機操作。這些術(shù)語是對由計算機執(zhí)行的操作的高級抽象,且不應(yīng)與人類執(zhí)行的動作混淆。對應(yīng)這些術(shù)語的實際計算機操作按其實現(xiàn)而改變。
考慮可應(yīng)用本發(fā)明原理的許多可能的實施例,我們要求,可能落入下面權(quán)利要求及其等價物的范圍和精神的所有那些實施例為我們的發(fā)明。
權(quán)利要求
1.一種完成可逆的與比例無關(guān)的2維塊轉(zhuǎn)換的方法,所述轉(zhuǎn)換被定義成在數(shù)字媒體數(shù)據(jù)的2維塊上水平和垂直地應(yīng)用的1維轉(zhuǎn)換,所述方法包括在二個或更多階段從水平和垂直的1維轉(zhuǎn)換的交替操作的每一個中,將在重新安排成一組作為提升步驟實現(xiàn)的基本轉(zhuǎn)換的相應(yīng)階段中的操作應(yīng)用到在2維塊中值的獨立子集。
2.如權(quán)利要求1所述的方法,其特征在于,所述第一階段中還包括將2×2Hadamard轉(zhuǎn)換應(yīng)用到在值的2維塊中的獨立4值子集。
3.如權(quán)利要求2所述的方法,其特征在于,所述4值子集包括在2維塊的諸角處的4值的組;在2維塊的中心的4值的組;在2維塊的水平邊中心的4值的組;和在2維塊的垂直邊中心的4值的組。
4.如權(quán)利要求1所述的方法,其特征在于,在所述第二階段中還包括將一組轉(zhuǎn)換應(yīng)用到在值的2維塊中的獨立4值子集,所述轉(zhuǎn)換組中的至少一個以3階段的串聯(lián)形式實現(xiàn),所述3階段包括由使用提升步驟的運算符H定義的雙蝶形運算,其中H=1000010001/210-1/2001·100101-1000100001;]]>在第1對組件值之間和第二對組件值之間分別的2點旋轉(zhuǎn);和所述雙蝶形運算之逆。
5.如權(quán)利要求1所述的方法,其特征在于還在第二階段中包括將一組轉(zhuǎn)換應(yīng)用到值的2維塊中的獨立4值子集,所述轉(zhuǎn)換組包括2×2Hadamard轉(zhuǎn)換、作為2點Hadamard轉(zhuǎn)換和2點旋轉(zhuǎn)矩陣的Kronecher乘積導(dǎo)出的2×2odd旋轉(zhuǎn)轉(zhuǎn)換、和作為諸2點旋轉(zhuǎn)矩陣的Kronecher乘積導(dǎo)出的2×2odd-odd旋轉(zhuǎn)轉(zhuǎn)換。
6.帶有減少舍入誤差偏差的權(quán)利要求1的方法,其特征在于,所述方法還包括對包括除法或右比特移位的蝶形運算,在相應(yīng)的蝶形運算之前添加變化因素到被除的或被右比特移位的操作數(shù)。
7.對有損壓縮帶有減少舍入誤差偏差的權(quán)利要求1的方法,其特征在于,所述方法還包括在轉(zhuǎn)換前通過乘一因子縮放2維塊;執(zhí)行所述轉(zhuǎn)換;和通過一量化器量化得到的轉(zhuǎn)換系數(shù),所述量化器等于希望的量化器乘以所述因子。
8.執(zhí)行權(quán)利要求1的2維轉(zhuǎn)換之逆的方法,執(zhí)行所述逆的方法包括在2個或更多階段從水平和垂直的1維轉(zhuǎn)換的交替操作的每一個中,將在重新安排成作為提升步驟實現(xiàn)的一組基本轉(zhuǎn)換的相應(yīng)階段中的操作應(yīng)用到在2維塊中值的諸獨立子集。
9.如權(quán)利要求8所述的方法,其特征在于,在所述第一階段還包括將一組轉(zhuǎn)換應(yīng)用到值的2維塊中的獨立4值子集,所述轉(zhuǎn)換組包括2×2Hadamard轉(zhuǎn)換、作為2點Hadamard轉(zhuǎn)換和2點旋轉(zhuǎn)矩陣的Kronecher乘積導(dǎo)出的2×2odd旋轉(zhuǎn)轉(zhuǎn)換、作為各2點旋轉(zhuǎn)矩陣的Kronecher乘積導(dǎo)出的2×2odd-odd旋轉(zhuǎn)轉(zhuǎn)換。
10.如權(quán)利要求9所述的方法,其特征在于,所述4值子集包括2維塊的左上、右上、左下、右下處的4個值的組。
11.如權(quán)利要求9所述的方法,其特征在于,通過下列精確到4位小數(shù)的等式給出2×2Hadamard轉(zhuǎn)換、2×2odd旋轉(zhuǎn)轉(zhuǎn)換、和2×2odd-odd旋轉(zhuǎn)轉(zhuǎn)換 和
12.如權(quán)利要求8所述的方法,其特征在于,還包括在所述第二階段將2×2Hadamard轉(zhuǎn)換應(yīng)用到在值的2維塊中的獨立4值子集。
13.一個用基于塊轉(zhuǎn)換編碼執(zhí)行2維數(shù)字媒體數(shù)據(jù)的有損/無損壓縮的有損/無損壓縮系統(tǒng)的編碼器,所述編碼器使用定義成垂直和水平地應(yīng)用到數(shù)字媒體數(shù)據(jù)的2維塊的4點轉(zhuǎn)換的可逆的與比例無關(guān)的2維轉(zhuǎn)換,所述編碼器包括用于緩存要編碼的2維數(shù)字媒體數(shù)據(jù)的緩存存儲器;用于通過在兩個或更多階段的從水平和垂直的1維4點轉(zhuǎn)換的交替操作的每一個中,將在相應(yīng)階段中重新安排成作為提升步驟實現(xiàn)的一組基本的2×2轉(zhuǎn)換的操作應(yīng)用到在2維塊中獨立的4值子集,將所述轉(zhuǎn)換應(yīng)用到數(shù)字媒體數(shù)據(jù)的2維塊的處理器。
14.如權(quán)利要求13所述的編碼器,其特征在于,所述基本轉(zhuǎn)換包括2×2Hadamard轉(zhuǎn)換、作為2點Hadamard轉(zhuǎn)換和2點旋轉(zhuǎn)矩陣的Kronecher乘積導(dǎo)出的2×2odd旋轉(zhuǎn)轉(zhuǎn)換、作為各2點旋轉(zhuǎn)矩陣的Kronecher乘積導(dǎo)出的2×2odd-odd旋轉(zhuǎn)轉(zhuǎn)換。
15.如權(quán)利要求13所述的編碼器,其特征在于,所述處理器在第一階段將2×2Hadamard轉(zhuǎn)換應(yīng)用到包括在數(shù)字媒體塊的角、中心、頂/底邊和左—右邊處的4值組的相應(yīng)數(shù)字媒體塊的4值子集。
16.如權(quán)利要求13所述的編碼器,其特征在于,所述處理器在第二階段將2×2Hadamard轉(zhuǎn)換應(yīng)用到在所述相應(yīng)數(shù)字媒體塊的左上方的4值子集;將2×2Hadamard轉(zhuǎn)換、作為2×2Hadamard轉(zhuǎn)換和2點旋轉(zhuǎn)矩陣的Kronecher乘積導(dǎo)出的2×2odd旋轉(zhuǎn)轉(zhuǎn)換應(yīng)用到在所述相應(yīng)數(shù)字媒體塊的右上方及左下方的4值子集;和將作為所述2點旋轉(zhuǎn)矩陣與其本身的Kronecher乘積導(dǎo)出的2×2odd-odd旋轉(zhuǎn)轉(zhuǎn)換應(yīng)用到在所述相應(yīng)數(shù)字媒體塊的右下方的4值子集。
17.一個用基于塊轉(zhuǎn)換解碼執(zhí)行壓縮的2維數(shù)字媒體數(shù)據(jù)的有損/無損解壓縮的權(quán)利要求13的有損/無損壓縮系統(tǒng)的解碼器,所述解碼器使用所述可逆的與比例無關(guān)的2維轉(zhuǎn)換的逆,所述解碼器包括用于緩存所述壓縮的2維數(shù)字媒體數(shù)據(jù)的塊的轉(zhuǎn)換系數(shù)的緩存存儲器;用于通過在兩個或更多階段的從水平和垂直的1維4點逆轉(zhuǎn)換的交替操作中的每一個,將在相應(yīng)階段中重新安排成作為提升步驟實現(xiàn)的一組基本的2×2轉(zhuǎn)換的操作應(yīng)用到在2維塊中獨立的4值子集,將所述逆轉(zhuǎn)換應(yīng)用到數(shù)字媒體數(shù)據(jù)的2維塊的處理器。
18.如權(quán)利要求17所述的解碼器,其特征在于,所述基本轉(zhuǎn)換包括2×2Hadamard轉(zhuǎn)換、作為2點Hadamard轉(zhuǎn)換和2點旋轉(zhuǎn)矩陣的Kronecher乘積導(dǎo)出的2×2odd旋轉(zhuǎn)轉(zhuǎn)換、作為各2點旋轉(zhuǎn)矩陣的Kronecher乘積導(dǎo)出的2×2odd-odd旋轉(zhuǎn)轉(zhuǎn)換。
19.如權(quán)利要求18所述的解碼器,其特征在于,所述處理器在第一階段將2×2Hadamard轉(zhuǎn)換應(yīng)用到在所述相應(yīng)數(shù)字媒體塊的左上方的4值子集;將2×2Hadamard轉(zhuǎn)換、作為2點Hadamard轉(zhuǎn)換和2點旋轉(zhuǎn)矩陣的Kronecher乘積導(dǎo)出的2×2odd旋轉(zhuǎn)轉(zhuǎn)換應(yīng)用到在所述相應(yīng)數(shù)字媒體塊的右上方及左下方的4值子集;和將作為諸所述各2點旋轉(zhuǎn)矩陣的Kronecher乘積導(dǎo)出的2×2odd-odd旋轉(zhuǎn)轉(zhuǎn)換應(yīng)用到所述相應(yīng)數(shù)字媒體塊的右下方的4值子集。
20.如權(quán)利要求18所述的解碼器,其特征在于,所述處理器在第二階段將2×2Hadamard轉(zhuǎn)換應(yīng)用到包括在數(shù)字媒體塊的角、中心、頂/底邊和左—右邊處的4值組的相應(yīng)數(shù)字媒體塊的4值子集。
全文摘要
2D轉(zhuǎn)換及其逆具有作為一系列為了減少計算復(fù)雜性(即減少非一般操作的數(shù)目)安排的提升步驟的實現(xiàn)。此轉(zhuǎn)換對具有類似于離散余弦轉(zhuǎn)換(DCT)的能量緊致特性,且還是無損和與比例無關(guān)的。與作為分別應(yīng)用到2D數(shù)據(jù)塊的行和列的1D DCT轉(zhuǎn)換實現(xiàn)的可分離的DCT轉(zhuǎn)換相比較,該轉(zhuǎn)換操作被重新安排成包括2×2Hadamard轉(zhuǎn)換和加入提升旋轉(zhuǎn)的2×2轉(zhuǎn)換的基本轉(zhuǎn)換的串聯(lián)。這些基本轉(zhuǎn)換具有作為提升操作的序列的實現(xiàn)。
文檔編號H04N7/30GK1791222SQ20051012713
公開日2006年6月21日 申請日期2005年11月17日 優(yōu)先權(quán)日2004年12月17日
發(fā)明者S·斯里尼瓦杉 申請人:微軟公司