專利名稱:用于重疊雙正交變換的可逆二維前置/后置濾波的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及使用重疊變換的數(shù)字媒體(例如,視頻和圖像)壓縮。
背景技術(shù):
重疊變換重疊變換是一種用于數(shù)據(jù)壓縮的強大的信號處理技術(shù)。參見例如H.S.Malvar的Signal Processing with Lapped Transforms(使用重疊變換的信號處理),Boston,MAArtech House,1992。然而,至今為止,從未對無損(可逆)數(shù)據(jù)壓縮公式化或應(yīng)用具有線性相位的有效重疊變換。
如下文更詳細(xì)地討論的,已知重疊變換可以用公式表示為前置濾波器其后跟隨數(shù)據(jù)變換(其逆為數(shù)據(jù)逆變換其后跟隨后置濾波器)。見例如H.S.Malvar的“Apre-and post-filtering technique for the reduction of blocking efficets”(用于降低塊效應(yīng)的前置和后置濾波技術(shù)),Proc.Picture Coding Symposium,Stockholm,Sweden,(瑞典斯德哥爾摩圖像編碼研討會會刊)1987年6月;以及T.D.Tran、J.Liang和C.Tu的“Lapped Transform via Time-Domain Pre-and Post-Filtering”(通過時域前置和后置濾波的重疊變換),IEEE Trans.on Signal Processing(關(guān)于信號處理的IEEE論文集)第51卷,第6期,2003年6月。可在這一公式中使用無損數(shù)據(jù)變換以實現(xiàn)較佳的可逆性測量。迄今為止,相信僅可選擇某些受限的多種前置和后置濾波器用于可逆性。這一受限的集合在其壓縮(碼率與失真的關(guān)系,或R-D)性能方面是非常有限的。在近來的論文中(W.Dai和T.Tran的“Regularity-constrained pre-andpost-filtering for block DCT-based system”(用于基于塊DCT的系統(tǒng)的正則性受限的前置和后置濾波),IEEE Trans.on Signal Processing(關(guān)于信號處理的IEEE論文集)第51卷,第2568-2581頁,2003年10月),提出了一種構(gòu)造,其中大多數(shù)元素是可逆的,且具有良好的壓縮特性。
在音頻壓縮中,引入了若干用于可逆重疊變換的構(gòu)造。見例如R.Geiger、J,Herre、J.Koller和K.Brandenburg的“IntMDCT-A link between perceptual andlossless audio coding”(IntMDCT一感知和無損音頻編碼之間的連接),Proc.IEEEInt.Conf.on Acoustics,Speech,and Signal Processing(關(guān)于聲學(xué)、語音和信號處理的IEEE國際組織會議會刊),蒙特利爾,加拿大,2004年5月。然而,這些構(gòu)造僅適用于調(diào)制重疊變換(MLT),也稱為改進(jìn)的離散余弦變換(MDCT),其基函數(shù)是正交的,且不是對稱的(即,基函數(shù)不是線性相位的)。這些變換不適用于其中需要線性相位(對稱)函數(shù)的數(shù)據(jù)壓縮應(yīng)用,諸如在數(shù)字圖像壓縮中。
對于圖片(圖像)壓縮,在R-D性能方面的最佳性能的變換之一是重疊雙正交變換(LBT)。見H.S.Malvar的“Biorthogonal and Nonuniform Lapped TransformsFor Transform Coding With Reduced Blocking and Ringing Artifacts”(用于具有降低的塊效應(yīng)和振鈴效應(yīng)的變換編碼的雙正交且非均勻重疊變換),IEEE Trans.onSignal Processing(關(guān)于信號處理的IEEE論文集),第46卷,第1043-1053頁,1998年4月。與MLT不同,LBT基函數(shù)是對稱的,且不是完全正交的(在LBT中,解析基函數(shù)與綜合基函數(shù)是正交的,因此使用術(shù)語雙正交)。LBT已在圖像壓縮應(yīng)用中成功地使用,但是它們尚未用于無損圖像壓縮,因為整數(shù)可逆構(gòu)造是未知的。
基于塊變換的編碼的綜述變換編碼是一種在許多音頻、圖像和視頻壓縮系統(tǒng)中使用的壓縮技術(shù)。未壓縮的數(shù)字圖像和視頻通常被表示或捕捉為以二維(2D)網(wǎng)格排列的圖像或視頻幀中各位置處的像素或色彩的樣值。這被稱為圖像或視頻的空間域表示。例如,圖像的典型格式由排列成網(wǎng)格的24位的彩色像素樣值的流構(gòu)成。每一樣值是表示諸如RGB或YIQ等色彩空間內(nèi)網(wǎng)格中的像素位置處的色彩分量的數(shù)字。各種圖像和視頻系統(tǒng)可使用各種不同的色彩、空間和時間采樣分辨率。類似地,數(shù)字音頻通常被表示為時間采樣的音頻信號流。例如,典型的音頻格式由以規(guī)則的時間間隔獲得的音頻信號的16位振幅樣值的流。
未壓縮的數(shù)字音頻、圖像和視頻信號可能消耗可觀的存儲和傳輸容量。變換編碼通過將信號的空間域表示變換成頻域(或其它類似的變換域)表示,然后降低變換域表示的某些一般較不易感知的頻率分量的分辨率,而減小了數(shù)字音頻、圖像和視頻的大小。這一般產(chǎn)生與降低空間域中的圖像或視頻或時域中的音頻的色彩或空間分辨率相比數(shù)字信號的更不易感知的劣化。
更具體地,圖1所示的典型的基于塊變換的編解碼器100將未壓縮的數(shù)字圖像的像素劃分成固定大小的二維塊(X1,...,Xn),每一塊可能與其它塊重疊。完成空間一頻率分析的線性變換120-121被應(yīng)用于每一塊,它將塊內(nèi)彼此隔開的樣值轉(zhuǎn)換成一般表示在塊間隔上對應(yīng)的頻帶內(nèi)的數(shù)字信號的強度的一組頻率(或變換)系數(shù)。對于壓縮,變換系數(shù)可被選擇性地量化130(即,諸如通過丟棄系數(shù)值的低位或?qū)⒏叻直媛蕯?shù)字集合中的值映射到較低的分辨率而降低分辨率),并且也可被熵編碼或可變長度編碼130成壓縮的數(shù)據(jù)流。在解碼時,變換系數(shù)將逆變換170-171,以幾乎重建原始的色彩/空間采樣的圖像/視頻信號(重建的塊 塊變換120-121可被定義為對大小為N的矢量x的數(shù)學(xué)運算。大多數(shù)情況下,該運算是線性乘法,產(chǎn)生變換域輸出y=Mx,M是變換矩陣。當(dāng)輸入數(shù)據(jù)是任意長時,它被分段成大小為N的矢量,并向每一分段應(yīng)用塊變換。為數(shù)據(jù)壓縮的目的,選擇可逆塊變換。換言之,矩陣M是可逆的。在多維中(例如,對于圖像和視頻),塊變換通常被實現(xiàn)為可分離的運算。矩陣乘法沿數(shù)據(jù)的每一維度(即,行和列)單獨應(yīng)用。
對于壓縮,變換系數(shù)(矢量y的分量)可被選擇性地量化(即,諸如通過丟棄系數(shù)值的低位或?qū)⒏叻直媛蕯?shù)字集合中的值映射到較低的分辨率而降低分辨率),并也可被熵編碼或可變長度編碼成壓縮的數(shù)據(jù)流。
在解碼器150中的解碼處,這些運算的逆運算(反量化/熵解碼160和塊逆變換170-171)被應(yīng)用于解碼器150側(cè),如圖1所示。盡管重建了數(shù)據(jù),然而逆矩陣M1(逆變換170-171)作為乘子被應(yīng)用于變換域數(shù)據(jù)。當(dāng)被應(yīng)用于變換域數(shù)據(jù)時,逆變換幾乎重建了原始的時域或空間域數(shù)字媒體。
在許多基于塊變換的編碼應(yīng)用中,期望編碼是可逆的以取決于量化因子而支持有損和無損壓縮兩者。例如,如果沒有量化(一般表示為量化因子1),則利用可逆變換的編解碼器能夠在解碼時完全重現(xiàn)輸入數(shù)據(jù)。然而,這些應(yīng)用中的可逆性要求限制了可用于設(shè)計編解碼器的變換的選擇。
諸如MPEG和Windows Media等許多圖像和視頻壓縮系統(tǒng)利用基于離散余弦變換(DCT)的變換。已知DCT具有有利的能量壓縮性質(zhì),可得到幾乎最優(yōu)的數(shù)據(jù)壓縮。在這些壓縮系統(tǒng)中,逆DCT(IDCT)用于壓縮系統(tǒng)的編碼器和解碼器中的重建循環(huán),用于重建各個圖像塊。DCT由N.Ahmed、T.Natarajan和K.R.Rao的“Discrete Cosine Transform”(離散余弦變換),IEEE Transactions on Computers(關(guān)于計算機的IEEE學(xué)報),C-23(1974年1月),第90-93頁描述。IDCT的一個示例性實現(xiàn)在“IEEE Standard Specification for the Implementations of 8×8Inverse Discrete Cosine Transform”(用于8×8的離散余弦逆變換的實現(xiàn)的IEEE標(biāo)準(zhǔn)規(guī)范),IEEE標(biāo)準(zhǔn)1180-1990,1990年12月6日中有描述。
在壓縮靜止圖像(或視頻序列中的幀內(nèi)編碼幀)時,諸如MPEG-2、MPEG-4和Windows Media等最常見的標(biāo)準(zhǔn)將圖像劃分成正方形的小塊,并向每一圖像小塊應(yīng)用塊變換。給定分區(qū)(通常稱為塊)中的變換系數(shù)僅受塊內(nèi)的原始數(shù)據(jù)分量的影響。編碼器側(cè)諸如量化等不可逆或有損運算導(dǎo)致在解碼的圖像中出現(xiàn)人工效應(yīng)。這些人工效應(yīng)在各塊之間是不相關(guān)的,且產(chǎn)生了被稱為塊效應(yīng)的視覺上令人討厭的效應(yīng)。同樣對于音頻數(shù)據(jù),當(dāng)獨立地對非重疊的塊進(jìn)行變換編碼時,在解碼器處重建音頻信號時,量化誤差將產(chǎn)生塊邊界處信號中的不連續(xù)性。對于音頻,可聽到周期性的咔嗒聲的效應(yīng)。
使用了若干技術(shù)來對抗塊效應(yīng)一這些技術(shù)中最常用的是平滑塊間邊緣邊界的解塊濾波器以及對原始輸入數(shù)據(jù)和來自相鄰塊邊緣的預(yù)測之差進(jìn)行編碼的空間外推。這些技術(shù)并非沒有缺陷。例如,解塊濾波器方法是“開環(huán)的”,即前向變換過程不考慮解塊將在解碼器側(cè)的重建之前執(zhí)行的這一事實。除此之外,這兩種技術(shù)在計算上都是昂貴的。
為最小化塊效應(yīng),可利用塊間相關(guān)。實現(xiàn)塊間相關(guān)的一種方法是通過使用重疊變換,如H.Malvar的“Signal Processing with Lapped Transforms”(具有重疊變換的信號處理),Artech House,Norwood MA,1992中所描述的。重疊變換是其輸入除當(dāng)前塊中的數(shù)據(jù)元素之外跨越相鄰塊中的幾個相鄰元素的變換。同樣,在重建側(cè),逆變換影響當(dāng)前塊中的所有數(shù)據(jù)點以及相鄰塊中的若干數(shù)據(jù)點。
對于二維(2D)數(shù)據(jù)的情況,重疊2D變換是當(dāng)前塊以及左、上、右、下以及可能的左上、右上、左下和右下的塊的選擇元素的函數(shù)。相鄰塊中用于計算當(dāng)前變換的數(shù)據(jù)點的個數(shù)被稱為重疊。
空間域重疊變換的綜述重疊變換可以在變換域中實現(xiàn),作為在常規(guī)的塊變換之后合并變換域量的一個步驟。另外,它可以通過應(yīng)用于重疊范圍內(nèi)的像素的預(yù)處理級在空間域中實現(xiàn)。這兩種實現(xiàn)在數(shù)學(xué)上是相關(guān)且因此是等效的。
圖2示出了常規(guī)的空間域重疊變換的一個示例。在所示的示例中,重疊是2個像素,且每一個都來自所示的兩個相鄰塊的兩個像素在預(yù)處理級210中預(yù)處理。兩個預(yù)處理的輸出被發(fā)送到每一塊,用于圖1所示的編解碼器100的基于塊變換的編碼。預(yù)處理級的逆在解碼后被應(yīng)用于后處理級220。采用預(yù)處理和塊變換的審慎選擇,可實現(xiàn)較大范圍的重疊變換。
重疊變換的空間域?qū)崿F(xiàn)的一個關(guān)鍵優(yōu)點是現(xiàn)有的基于塊變換的編解碼器可用預(yù)處理和后處理級來更新,以得到重疊變換的益處,即使用現(xiàn)有編解碼器框架的降低的塊效應(yīng)和較好的壓縮。預(yù)處理210和后處理可被表示為如圖3所示的矩陣乘法。常規(guī)上,預(yù)處理和后處理矩陣彼此為逆,即,預(yù)處理矩陣(Pf)和逆或后處理矩陣(Pi)相乘在一起等于單位矩陣I。
定義一般而言,變換的長度N是某一變換塊中變換系數(shù)的個數(shù)。
變換的支撐K是影響變換塊的系數(shù)的輸入數(shù)據(jù)點的個數(shù)。同樣,它是受每一變換系數(shù),受逆變換的過程影響的輸出數(shù)據(jù)點的個數(shù)。
對于諸如離散余弦變換(DCT)等典型的塊變換,長度和支撐是相同的。然而,重疊變換(LT)是一類重要的變換,其支撐K大于長度N。記法K×N用于表示重疊變換的支撐和長度(其中K<N的變換是膨脹性的,因此不用于數(shù)據(jù)壓縮)。
作為一個示例300,圖3所示的6×4LT 310是具有6個輸入和4個輸出的變換。由于變換是可逆的,因此兩個輸入與相鄰的變換塊共享。重疊逆變換(ILT)320從其4個輸入產(chǎn)生6個輸出。塊邊界附近的輸出數(shù)據(jù)點(在這一情況下是在塊的每一端的一個點)通過將兩個相鄰逆變換塊的對應(yīng)響應(yīng)相加來重建。
對用于壓縮系統(tǒng)中的重疊變換的約束在數(shù)學(xué)意義上,當(dāng)考慮輸入和輸出信號以及中間計算結(jié)果為實數(shù)時,重疊變換是可逆結(jié)構(gòu)。如果可實現(xiàn)無限的精度,則輸入數(shù)據(jù)可完整地從其重疊變換系數(shù)中恢復(fù)。然而,無限的精度實際上是不可能的;對于無損數(shù)據(jù)壓縮,要求是設(shè)計一種對整數(shù)或固定精度的算術(shù)運算的變換,給定變換系數(shù)的整數(shù)表示,仍完整地重建了數(shù)據(jù)。這是比數(shù)學(xué)可逆性更強的條件,且這一變換此處被稱為“無損”變換。此外,要求無損變換對于數(shù)據(jù)壓縮(無損和有損)也都是有效的。該效率可以通過變換數(shù)據(jù)的熵來測量;熵越低,諸如基于上下文的算術(shù)編碼或自適應(yīng)行程長度編碼等標(biāo)準(zhǔn)熵編碼技術(shù)就能夠更大程度地壓縮變換數(shù)據(jù)。
發(fā)明內(nèi)容
本發(fā)明描述了整數(shù)算術(shù)中可逆,并可用作有效且無損數(shù)據(jù)壓縮/解壓系統(tǒng)的基礎(chǔ)的有效重疊變換的各種實現(xiàn)。
可以看到,大多數(shù)有效無損變換設(shè)計(即,具有最小的變換數(shù)據(jù)熵的設(shè)計)要求變換矩陣是單位行列式(即,變換矩陣的行列式是±1)。在以下描述中,假定變換可被表示為矩陣乘法,盡管可以認(rèn)識到,可以有諸如數(shù)據(jù)舍入等較小的非線性現(xiàn)象。由此,當(dāng)提及行列式時,不考慮截斷或舍入方面。
有效重疊變換是使用此處被稱為“重疊算子”的前置和后置濾波器來實現(xiàn)的。這一實現(xiàn)是可逆的,而在R-D方面仍是非常有效的。這些新重疊算子允許可逆LBT實現(xiàn)以及其它應(yīng)用,它們可用于無損圖像壓縮。前置和后置濾波器使用了可逆運算。此外,所描述的重疊算子包括對計算效率的簡化。
前置和后置濾波運算的一個實現(xiàn)使用了一維可逆重疊算子,它由單位行列式分量矩陣的構(gòu)成。更具體地,可逆重疊算子被實現(xiàn)為一連串的平面旋轉(zhuǎn)變換和單位行列式平面比例縮放變換。平面比例縮放變換可使用平面修剪或提升步驟來實現(xiàn)。此外,平面旋轉(zhuǎn)和平面修剪具有可逆/無損操作的實現(xiàn),從而給出了可逆的重疊算子作為結(jié)果。
一個示例性應(yīng)用是使用可逆重疊算子的計算上有效的逼近的8×4的一維重疊變換。
對于二維重疊變換,重疊算子的該一維實現(xiàn)可以單獨地應(yīng)用于數(shù)字媒體數(shù)據(jù)庫塊的水平行,隨后將一維算子應(yīng)用于該數(shù)據(jù)的垂直列。該方法具有若干缺陷,其中最嚴(yán)重的是1.獲取用于有效數(shù)據(jù)壓縮的歸一化前置/后置濾波器的難度/幾乎不可能,2.如果可實現(xiàn)這一逼近,其高度復(fù)雜性,以及3.由于當(dāng)實現(xiàn)這一逼近時多個濾波/提升步驟而引起的不準(zhǔn)確性。
此處所描述的二維重疊變換的替換實現(xiàn)達(dá)到了比單獨水平和垂直地應(yīng)用一維重疊算子的方法更好的計算效率。該替換實現(xiàn)將一維重疊算子分割成級,并散置重疊算子的水平和垂直應(yīng)用的級。在每一級內(nèi),在提升步驟中實現(xiàn)的歸一化比例縮放運算可通過在散置的二維結(jié)構(gòu)中記錄“交叉項”的抵消而被應(yīng)用于數(shù)據(jù)塊的有限子集(例如,4×4數(shù)據(jù)塊的2×2子集或信號對)。這可得到有效的無比例縮放可逆2D前置/后置濾波器。
2D前置/后置濾波器可與諸如有效的無比例縮放可逆2D塊變換等可逆變換相組合,后者由Srinivasan在2004年12月17日提交的名為“Reversible Transform ForLossy and Lossless 2-D Data Compression”(用于有損和無損2-D數(shù)據(jù)壓縮的可逆變換)的美國專利申請第11/015,707號中描述(該申請的公開內(nèi)容通過引用結(jié)合于此)。組合的前置/后置濾波器和變換形成了可用于無損和有損圖像和視頻的高效和計算有效壓縮的重疊變換。
當(dāng)參考附圖繼續(xù)以下實施例的詳細(xì)描述時,可清楚本發(fā)明的其它特征和優(yōu)點。
圖1是現(xiàn)有技術(shù)中常規(guī)的基于塊變換的編解碼器的框圖。
圖2是同樣在現(xiàn)有技術(shù)中被實現(xiàn)為與圖1的基于塊變換的編解碼器組合的預(yù)處理和后處理運算的空間域重疊變換的框圖。
圖3是示出一維數(shù)據(jù)上的重疊變換和重疊逆變換對的框圖。
圖4是基于使用可逆重疊算子的重疊變換的編碼器的流程圖。
圖5是基于重疊變換的解碼器的流程圖。
圖6是示出結(jié)合塊變換使用前置和后置濾波運算(或可逆重疊算子)對一維數(shù)據(jù)的重疊變換和重疊逆變換對的框圖。
圖7是示出用作圖6的重疊變換中的可逆重疊算子的線性相位前置(或后置)濾波器的結(jié)構(gòu)的信號流圖。
圖8是作為可逆重疊算子中使用的四個提升步驟的無損比例縮放的信號流圖。
圖9是作為可逆重疊算子中使用的五個提升步驟的無損比例縮放的信號流圖。
圖10是應(yīng)用于較大維數(shù)的矩陣以實現(xiàn)無損單位行列式比例縮放的2點比例縮放的級聯(lián)的信號流圖。
圖11是具有圖7所示的結(jié)構(gòu)并使用圖10的無損單位行列式比例縮放的可逆重疊算子(或前置/后置濾波器)的信號流圖。
圖12是圖11的可逆重疊算子的操作的流程圖。
圖13是示出使用圖11的可逆重疊算子的可逆重疊變換實現(xiàn)的一個示例的信號流圖。
圖14是圖13的示例重疊變換的DC系數(shù)的脈沖響應(yīng)圖。
圖15是示出用作用于4×4大小的塊的二維重疊算子的支撐的像素的圖示。
圖16是示出用作用于2×2大小的塊的二維重疊算子的支撐的像素的圖示。
圖17是由圖4的編碼器在編碼器側(cè)應(yīng)用的變換的流程圖。
圖18是由圖5的解碼器在解碼器側(cè)應(yīng)用的變換的流程圖。
圖19是提供圖11所示的一維可逆重疊算子的正則表示的信號流圖。
圖20是示出用于通過水平和垂直地單獨應(yīng)用圖19的一維可逆重疊算子而實現(xiàn)的重疊變換的二維前置和后置濾波器的信號流圖。
圖21是示出用于通過交錯各級中的二維濾波器的水平和垂直操作而實現(xiàn)的重疊變換的二維前置/后置濾波器的信號流圖。
圖22是用于實現(xiàn)形成圖21的二維前置/后置濾波器的一部分的歸一化2×2阿達(dá)馬(Hadamard)算子的C編程語言程序清單。
圖23是示出用2×2前置/后置濾波器處理的數(shù)據(jù)點之間的對應(yīng)性的圖示。
圖24是示出在圖21的4×4二維前置/后置濾波器的實現(xiàn)的第一級中向其應(yīng)用2×2的阿達(dá)馬算子的4×4數(shù)據(jù)塊的數(shù)據(jù)點的圖示。
圖25是用于實現(xiàn)形成圖21的二維前置濾波器的一部分的前向旋轉(zhuǎn)的C編程語言程序清單。
圖26是用于實現(xiàn)形成圖21的二維后置濾波器的一部分的反向旋轉(zhuǎn)的C編程語言程序清單。
圖27是用于實現(xiàn)形成圖21的二維前置濾波器的一部分的前向2點旋轉(zhuǎn)的C編程語言程序清單。
圖28是用于實現(xiàn)形成圖21的二維后置濾波器的一部分的反向2點旋轉(zhuǎn)的C編程語言程序清單。
圖29是示出在圖21的4×4二維前置/后置濾波器的實現(xiàn)的另一級中向其應(yīng)用圖25-28的旋轉(zhuǎn)的4×4數(shù)據(jù)塊的數(shù)據(jù)點的圖示。
圖30是示出在圖21的4×4二維前置/后置濾波器的實現(xiàn)的又一級中向其應(yīng)用2點比例縮放運算的4×4數(shù)據(jù)塊的數(shù)據(jù)點的圖示。
圖31是用于實現(xiàn)形成圖21的二維前置濾波器的一部分的前向比例縮放的C編程語言程序清單。
圖32是用于實現(xiàn)形成圖21的二維后置濾波器的一部分的反向比例縮放的C編程語言程序清單。
圖33是用于實現(xiàn)圖21的二維4×4前置濾波器的C編程語言程序清單。
圖34是用于實現(xiàn)圖21的二維4×4后置濾波器的C編程語言程序清單。
圖35是用于實現(xiàn)圖21的二維2×2前置濾波器的C編程語言程序清單。
圖36是用于實現(xiàn)圖21的二維2×2后置濾波器的C編程語言程序清單。
圖37是用于實現(xiàn)在具有不足數(shù)據(jù)點的圖像邊緣處應(yīng)用圖35的二維前置濾波器的一維2點前置濾波器的C編程語言程序清單。
圖38是用于實現(xiàn)在具有不足數(shù)據(jù)點的圖像邊緣處應(yīng)用圖36的二維前置濾波器的一維2點后置濾波器的C編程語言程序清單。
圖39是用于實現(xiàn)在具有不足數(shù)據(jù)點的圖像邊緣處應(yīng)用圖33的二維前置濾波器的一維4點前置濾波器的C編程語言程序清單。
圖40是用于實現(xiàn)在具有不足數(shù)據(jù)點的圖像邊緣處應(yīng)用圖35的二維前置濾波器的一維4點后置濾波器的C編程語言程序清單。
圖41是用于實現(xiàn)結(jié)合圖21的前置濾波器使用來實現(xiàn)圖4的編碼器中的重疊變換的前向變換的C編程語言程序清單。
圖42是用于實現(xiàn)形成圖41的前向變換的一部分的變換的C編程語言程序清單。
圖43是用于實現(xiàn)形成圖41的前向變換的一部分的另一變換的C編程語言程序清單。
圖44是用于實現(xiàn)結(jié)合圖21的后置濾波器使用來實現(xiàn)圖5的解碼器中的重疊逆變換的逆變換的C編程語言程序清單。
圖45是用于實現(xiàn)形成圖44的逆變換的一部分的變換的C編程語言程序清單。
圖46是用于實現(xiàn)形成圖44的逆變換的一部分的另一變換的C編程語言程序清單。
圖47是適用于實現(xiàn)具有圖4和5的改進(jìn)的空間域重疊變換的基于塊變換的編解碼器的計算環(huán)境的框圖。
具體實施例方式
以下描述涉及數(shù)字媒體壓縮系統(tǒng)或編解碼器,它使用了可逆二維前置/后置濾波器用于重疊變換。為說明起見,結(jié)合該二維前置/后置濾波的壓縮系統(tǒng)的一個實施例是圖像或視頻壓縮系統(tǒng)?;蛘?,可逆重疊算子也可被結(jié)合到用于其它2D數(shù)據(jù)的壓縮系統(tǒng)或編解碼器中??赡嬷丿B算子不要求數(shù)字媒體壓縮系統(tǒng)以特定的編碼格式對壓縮的數(shù)字媒體數(shù)據(jù)進(jìn)行編碼。
1.編碼器/解碼器圖4和5是基于使用可逆重疊算子的重疊變換的代表性二維(2D)數(shù)據(jù)編碼器400和解碼器500中使用的過程的概圖。這些圖表示了該可逆重疊算子在結(jié)合了2D數(shù)據(jù)編碼器和解碼器的壓縮系統(tǒng)中的使用和應(yīng)用的概括或簡化圖示。在基于該可逆重疊算子的替換編碼器中,可對2D數(shù)據(jù)壓縮使用比這一代表性編碼器和解碼器中所示的更多或更少的過程。例如,某些編碼器/解碼器也可包括色彩轉(zhuǎn)換、色彩格式、可伸縮編碼、無損編碼、宏塊模式等。壓縮系統(tǒng)(編碼器和解碼器)可提供2D數(shù)據(jù)的無損和/或有損壓縮,取決于可基于從無損到有損變化的量化參數(shù)的量化。
2D數(shù)據(jù)編碼器400產(chǎn)生壓縮的比特流420,它是作為對編碼器的輸入呈現(xiàn)的2D數(shù)據(jù)410的更緊湊表示(對于典型輸入)。例如,2D數(shù)據(jù)輸入可以是圖像、視頻序列的幀或具有兩個維度的其它數(shù)據(jù)。2D數(shù)據(jù)編碼器將輸入數(shù)據(jù)劃分(430)成宏塊,在該代表性編碼器中宏塊是16×16像素的大小。2D數(shù)據(jù)編碼器還將每一宏塊劃分成4×4的塊432?!扒跋蛑丿B”算子440被應(yīng)用于塊之間的每一邊緣,之后每一4×4的塊使用塊變換450來變換。該塊變換450可以是可逆的、無比例縮放的2D變換,如由Srinivasan在2004年12月17日提交的名為“Reversible TransformFor Lossy And Lossless 2-D Data Compression”(用于有損和無損2D數(shù)據(jù)壓縮的可逆變換)的美國專利申請第11/015,707號中描述的,該申請的公開內(nèi)容通過引用結(jié)合于此?;蛘撸膳c此處所描述的可逆重疊算子一起使用離散余弦變換或其它塊變換。在變換之后,每一4×4的變換塊的DC系數(shù)460經(jīng)受類似的處理鏈(劃分、前向重疊、之后是4×4的塊變換)。所得的DC變換系數(shù)和AC變換系數(shù)被量化470、熵編碼480并被分組化490。
解碼器執(zhí)行逆向過程。在解碼器側(cè),從其各自的分組中提取(510)變換系數(shù)比特,從中系數(shù)本身被解碼520和反量化530。通過應(yīng)用逆變換來再生DC系數(shù)540,并且使用跨DC塊邊緣應(yīng)用的合適的平滑算子來“逆重疊”DC系數(shù)的平面。隨后,通過向DC系數(shù)應(yīng)用4×4的逆變換550來再生整個數(shù)據(jù),且從該比特流中解碼AC系數(shù)542。最后,所得的圖像平面中的塊邊緣被逆重疊過濾560。這產(chǎn)生重建的2D數(shù)據(jù)輸出。
在一個示例性實現(xiàn)中,編碼器400(圖4)將輸入圖像壓縮成壓縮的比特流420(例如,文件),且解碼器500(圖5)基于是采用無損還是有損編碼來重建原始輸入或其近似。編碼的過程涉及下述前向重疊變換(LT)的應(yīng)用,這是用同樣在下文更完整描述的可逆二維前置/后置濾波來實現(xiàn)的。解碼過程涉及使用可逆二維前置/后置濾波的重疊逆變換(ILT)的應(yīng)用。
所示的LT和ILT在確切的意義上是彼此的逆,并且因此可被共同稱為可逆重疊變換。作為可逆變換,LT/ILT對可用于無損圖像壓縮。
由所示的編碼器400/解碼器500壓縮的輸入數(shù)據(jù)410可以是各種色彩格式(例如,RGB/YUV4:4:4或YUV4:2:0色彩圖像格式)的圖像。通常,輸入圖像總是具有亮度(Y)分量。如果它是RGB/YUV4:4:4或YUV4:2:0圖像,則該圖像也具有色度分量,諸如U分量和V分量。圖像的這些單獨的色彩平面或分量可具有不同的空間分辨率。在例如YUV4:2:0色彩格式的輸入圖像的情況下,U和V分量具有Y分量的寬度和高度的一半。
如上所述,編碼器400將輸入圖像或圖片劃分成宏塊。在一個示例性實現(xiàn)中,編碼器400將輸入圖像劃分成Y通道中的16×16的宏塊(它可以是U和V通道中的16×16或8×8區(qū)域,取決于色彩格式)。每一宏塊色彩平面被劃分成4×4的區(qū)域或塊。因此,宏塊按以下用于該示例性編碼器實現(xiàn)的方式對各種色彩格式組成1.對于灰度級圖像,每一宏塊包含16個4×4的亮度(Y)塊。
2.對于YUV4:2:0格式的色彩圖像,每一宏塊包含16個4×4的Y塊,以及4個每一個都是4×4的色度(U和V)塊。
3.對于RGB或YUV4:4:4色彩圖像,每一宏塊包含16個塊,其每一個都有Y、U和V通道。
2.使用重疊算子實現(xiàn)的重疊變換更一般地,編碼器400(圖4)的重疊算子440和塊變換450是一大類重疊變換600的示例,這類變換可被分解成前置濾波操作,其后是塊數(shù)據(jù)變換620,如圖6所示。圖6示出了這一分解的重疊變換的概括示例。在這一示出的情況下,圖3中所示的6×4重疊變換310被分解成前置濾波操作610和塊變換620級。前置濾波操作610和塊變換620在數(shù)據(jù)點上均勻地交錯。在這一所示的6×4的重疊變換600示例中,每一前置濾波器是跨越相鄰塊的長度為2的數(shù)據(jù)點變換。在解碼器側(cè),后置濾波器640跨塊邊界在塊逆變換630之后應(yīng)用。同樣,對于一般的K×N情況,前置濾波器被應(yīng)用于與塊邊界相鄰的每一塊的(K-N)/2個數(shù)據(jù)點。
為實現(xiàn)可逆性,前置濾波器610和后置濾波器640是彼此的逆。然而,為實現(xiàn)無損重疊變換,這一條件是不充分的。這除了以無損方式實現(xiàn)塊(核心)變換620之外,進(jìn)一步也將前置和后置濾波器610、640約束為無損變換。DCT可以使用基于階梯、點陣或提升的方法等用無損的方式來實現(xiàn)。見例如A.A.M.L.Bruekens和A.W.M.van den Enden的“New networks for perfect inversion and perfectreconstruction”(用于理想求逆和理想重建的新網(wǎng)絡(luò)),IEEE J.Selected AreasCommunications(選擇的區(qū)域通信IEEE期刊)第10卷第1期,1992年;以及I.Daubechies和W.Sweldens的“Factoring wavelet transform into lifting steps”(將小波變換分解成提升步驟),J.Fourier Anal.Appl.(J.傅立葉分析應(yīng)用)第4卷第247-269頁,1998??赡娴臒o比例縮放二維變換也由Scrinivasan在2004年12月17日提交的名為“Reversible Transform For Lossy And Lossless 2-D Data Compression”(用于有損和無損2-D數(shù)據(jù)壓縮的可逆變換)的美國專利申請第11/015,707號中描述,該申請通過引用結(jié)合于此。一維中對DCT的基于提升的可逆逼近也是已知的。見例如J.Liang和T.D.Tran的“Fast Multiplierless Approximations Of The DCTWith The Lifting Scheme”(具有提升模式的DCT快速無乘子逼近),IEEE Trans.Signal Processing(信號處理IEEE論文集),第49卷,第3032-3044頁,2001年12月。
有效的可逆性進(jìn)一步要求兩步驟,即前置/后置濾波和塊變換都是單位行列式。
3.可逆重疊算子用作編碼器400/解碼器500(圖4和5)作為基礎(chǔ)的無損重疊變換600的前置濾波器610(圖6)的有效可逆重疊算子可被實現(xiàn)為線性相位前置濾波器,它被分解成圖7所示的結(jié)構(gòu)700。該前置濾波器的逆(即,后置濾波器640)也具有相同的結(jié)構(gòu),但具有不同的系數(shù)。
該線性相位濾波器結(jié)構(gòu)700具有多個正交分量作為其輸入和輸出,包括交叉阿達(dá)馬網(wǎng)絡(luò)710。所示的阿達(dá)馬網(wǎng)絡(luò)710中的內(nèi)部箭頭表示該圖中的非。結(jié)構(gòu)700還包括正交矩陣U1、U2、V1和V2。這些分量可以通過使用基于點陣/提升的方法以無損的方式來實現(xiàn)。另外,結(jié)構(gòu)700具有非零比例縮放因子s1到sM。單位行列式約束隱含∏is1=±1.]]>當(dāng)所有的比例縮放因子都是±1時,前置/后置濾波器可被實現(xiàn)為一無損變換,其中分量矩陣U1、U2、V1和V2被實現(xiàn)為無損點陣/提升步驟。然而,當(dāng)比例縮放因子不都為±1時,無損實現(xiàn)保留了如下文更完整討論地解決的難題。
采用這一線性相位前置濾波器結(jié)構(gòu)700,實現(xiàn)無損前置/后置濾波器對的問題被精簡到以下三個步驟1.對于正交矩陣U1、U2、V1和V2,將過濾器F分解成以下形式 其中I是單位矩陣,且 2.導(dǎo)出對U1、U2、V1和V2的無損實現(xiàn);以及3.導(dǎo)出對比例縮放矩陣的無損實現(xiàn)。
對于步驟1,右邊的第一和最后一個矩陣定義了2點阿達(dá)馬變換,它們結(jié)合了某些項的因子,以使這些級是單位行列式。剩余部分被重新排列成具有兩個塊的塊行列式形式,其每一個是F的線性維數(shù)的一半。每一塊的奇異值分解,即SVD提供了正交矩陣U1、U2、V1和V2以及比例縮放。
分量矩陣的無損實現(xiàn)可使用標(biāo)準(zhǔn)的基于提升的技術(shù)在步驟2中導(dǎo)出,這些技術(shù)諸如由A.A.M.L.Bruekens和A.W.M.van den Enden的“New networks for perfectinversion and perfect reconstruction”(用于理想求逆和理想重建的新網(wǎng)絡(luò)),IEEEJ.Selected Areas Communications(選擇的區(qū)域通信IEEE期刊)第10卷第1期,1992年中所描述的技術(shù)。
步驟3中比例縮放矩陣的無損實現(xiàn)如下解決。為簡明起見,假定具有某一2輸入2輸出分量,它是(a)無損的,且(b)對第一分量實現(xiàn)按s(0<s<1)的比例縮放,對第二分量實現(xiàn)1/s的比例縮放(其它情況可通過還原一個或兩個輸出信號的符號來獲得)。換言之,具有由以下公式給出的輸入-輸出關(guān)系y=s001/sx---(2)]]>公式(2)中變換矩陣的行列式是s/s=1。該矩陣可在如圖8和9所示的四個提升步驟的過程800或五個提升步驟的過程900中實現(xiàn)。通常以y=(a.x+r)>>b的形式逼近所有的提升步驟,其中x是輸入,y是輸出,a、b和r是整數(shù),且r用于舍入誤差控制,以獲得無除法的整數(shù)實現(xiàn)。由公式(2)定義的變換此處被稱為單位行列式比例縮放變換,簡稱為比例縮放變換。
有趣的是,比例縮放變換與如下定義的修剪運算密切相關(guān)y=abbax---(3)]]>在約束a2-b2=1(a>0,b≥0)下,修剪運算具有單位行列式,且可用三個提升步驟來實現(xiàn)abba=1a-1a+10110b11a-1a+101,---(4)]]>因此,a+b00a-b=11/2-11/21/2001abba20011/2-1/211]]>=10-11112(a-1a+1+1)01102b1112(a-1a+1-1)011011---(5)]]>此處,夾住修剪矩陣的矩陣中的比例縮放因子和2被分布到修剪提升步驟,且第一個矩陣的最后一個提升步驟與第一個修剪提升步驟組合,而最后一個矩陣的第一個提升步驟與第一個修剪提升步驟組合。如圖9所示的比例縮放變換的過程900的五步驟實現(xiàn)基于公式(5)。對該結(jié)構(gòu)的簡化通過在可能時取消公式(1)中的三個組,即阿達(dá)馬網(wǎng)絡(luò)、正交矩陣和比例縮放運算(可進(jìn)而被分解成阿達(dá)馬和修剪運算)之間的逆運算是可能的。
更具體地,如過程800的無損比例縮放的四個提升步驟實現(xiàn)的有效變換矩陣是T=c-200c-2,]]>其中c2=1-s2。另一方面,過程900中五個提升步驟實現(xiàn)的有效變換矩陣是T=1+sc001-sc,]]>其中c2=1-s2。
盡管圖8所示的比例縮放過程比圖9的過程少了一個提升步驟,但是后一過程900與前一過程中的四個非平凡提升步驟相比只有三個非平凡提升步驟。為上文陳述的原因,圖9中的第一或最后一個平凡提升步驟在某些條件下(例如,當(dāng)U1、U2和V1是單位矩陣時)可與先前或隨后的變換步驟合并(例如,與圖7的任一端的阿達(dá)馬網(wǎng)絡(luò)710組合)。
比例縮放過程可被容易地擴展到更大的矩陣。這在圖10中示出,其中M個可能不同的比例縮放因子s1到sM被應(yīng)用于M個數(shù)據(jù)路徑,作為比例縮放變換的級聯(lián)1000。為以可逆的方式實現(xiàn)這一結(jié)果,一般需要M-1個可逆的比例縮放變換。
一個有用的特殊情況是M個比例縮放因子s1到sM可被組合成形式為(s,1/s)的M/2個組。在這一情況下,僅需要M/2個可逆的比例縮放變換。一個示例是S1=s2=...=sM/2=s且sM/2+1=sM/2+2=...=sM=1/s。一種較佳的組合方式是維持跨中心軸的對稱性,換言之,每一組按比例縮放系數(shù)si和sM+1-i。如果M是奇數(shù),則未組合的一個比例縮放因子是1,對應(yīng)于沿該軸的數(shù)據(jù)路徑。
在其中前置/后置濾波器需要擴展到信號之外的信號邊界上,一種解決方案是對稱地擴展信號,然后應(yīng)用前置/后置濾波器。由于比例縮放,這一般不是無損運算。另一種解決方案是在邊界上跳過前置/后置濾波器。在R-D性能以及感知質(zhì)量(例如,如果用于有損圖像/視頻壓縮)方面在兩種解決方案之間沒有顯著的區(qū)別。
現(xiàn)在轉(zhuǎn)向圖11,具有期望的R-D有效(即,單位行列式)屬性的可逆重疊算子然后被實現(xiàn)為線性相位前置濾波器結(jié)構(gòu)700(圖7),它包括可逆的單位行列式阿達(dá)馬網(wǎng)絡(luò)710、可逆的正交旋轉(zhuǎn)1110(對分量矩陣U1、U2、V1和V2)以及可逆的單位行列式比例縮放1120(例如,使用提升步驟過程800、900或級聯(lián)1100)。后置濾波器類似于前置濾波器,且是使用同一構(gòu)造來構(gòu)建的,但是在相反的順序上具有逆提升步驟。這在圖7中示出,其中塊中的數(shù)據(jù)值的個數(shù)M一般是任何自然數(shù)。盡管所示的是對于偶數(shù)值的M,但是通過注意中心數(shù)據(jù)值的“1點阿達(dá)馬”變換是其本身,奇數(shù)值也是可能的。該過程可被推廣到較高維數(shù)的數(shù)據(jù)。
總言之,可逆重疊算子的運算在圖12中示出。在第一個步驟1210,將輸入的二維數(shù)字媒體數(shù)據(jù)劃分成塊(也對圖4的編碼器400示出)??赡嬷丿B算子在步驟1220塊相鄰的小塊應(yīng)用阿達(dá)馬網(wǎng)絡(luò)710。該算子然后在步驟1230向和與差應(yīng)用可逆旋轉(zhuǎn),隨后在步驟1240應(yīng)用可逆比例縮放算子。之后是另一可逆塊旋轉(zhuǎn)(步驟1250)和可逆的逆阿達(dá)馬網(wǎng)絡(luò)(步驟1260)。
現(xiàn)在參考圖13,可逆塊旋轉(zhuǎn)和比例縮放算子的矩陣表示取決于例如使用公式(1)中所描述的運算的期望重疊算子。圖13示出了具有圖7和11所示的結(jié)構(gòu)700的后置濾波器的一個示例,它之前有一可逆塊變換(在此情況下是4點阿達(dá)馬變換)。后置濾波器的傳遞函數(shù)是
T=0.98850.1553-0.15530.2183-0.14990.98850.21830.14990.15020.21670.9884-0.15020.2167-0.15560.15560.9884---(6)]]>阿達(dá)馬過程的低通分量產(chǎn)生圖14的曲線圖中所示的脈沖響應(yīng)。
4.重疊變換模式在一個示例性實現(xiàn)中,編碼器400和解碼器500使用不同類型的變換(例如,此處所描述的重疊變換,以及其中省略了重疊過濾的模式)支持多種壓縮模式。在編碼過程中,由用戶提供內(nèi)部參數(shù)OverlapMode(重疊模式)。該參數(shù)確定了用于編碼的變換的類型,并通過比特流向解碼器發(fā)信號通知。在該示例性實現(xiàn)中,允許OverlapMode的三種選擇-“OL_NONE”、“OL_ONE”以及“OL_TWO”,并如下運作1.OL_NONE發(fā)信號通知使用塊變換用于壓縮圖像。
2.OL_ONE發(fā)信號通知使用重疊變換用于高通(細(xì)節(jié))圖像,并使用塊變換用于低通(DC)圖像分量。
3.OL_TWO發(fā)信號通知使用重疊變換用于圖像的高通和低通分量兩者。在其它編碼器/解碼器實現(xiàn)中,可支持更少或更多的變換模式。
在該示例性實現(xiàn)中,重疊變換被實現(xiàn)為編碼器側(cè)的4×4的前置濾波器(前向重疊440),其后是4×4的塊變換450,如圖17所示且在下文更完整描述的。在解碼器側(cè),重疊變換由4×4的塊逆變換550及其后的4×4后置濾波器(逆重疊560)來實現(xiàn),如圖18所示且在下文更完整描述的。當(dāng)僅使用塊變換時(例如,OL_NONE模式,以及對于OL_ONE模式壓縮的圖像的低通頻帶),省略前置和后置濾波器步驟。
對于YUV4:2:0格式的亮度低通色彩平面的特殊情況,濾波器和變換塊的大小是2×2。以下描述使用了術(shù)語“4×4”來指濾波器/變換大小,要理解2×2的塊將用于該特殊情況。
如圖15所示,該示例性編碼器實現(xiàn)中塊變換在自然的4×4網(wǎng)格,即4×4小塊中與宏塊邊界對齊的像素陣列上執(zhí)行。濾波過程在交錯的4×4網(wǎng)格,即4×4小塊中在水平和垂直方向上與宏塊邊界的偏移為2的像素陣列上執(zhí)行。在圖15的圖示1500中,所指示的四個塊1510-1513對應(yīng)于變換的自然網(wǎng)格,且中心的陰影(灰色)塊1520是在其上應(yīng)用前置/后置濾波器的區(qū)域。中心塊中的像素被稱為重疊算子的“支撐”。圖16示出了對于2×2的特殊情況的變換和重疊算子的對齊1600。
示例性實現(xiàn)中使用且應(yīng)用于4×4的塊中的每一個的塊變換此處被稱為“核心”變換。該核心變換實現(xiàn)了可逆的近似4×4DCT,由Srinivasan在2004年12月17日提交的名為“Reversible Transform For Lossy and Lossless 2-D Data Compression”(用于有損和無損2-D數(shù)據(jù)壓縮的可逆變換)的美國專利申請第11/015,707號中描述(該申請的公開內(nèi)容通過引用結(jié)合于此),且也在下文名為“核心變換”一節(jié)中討論。在核心變換之后,塊被映射到1個DC系數(shù)460和15個AC系數(shù)462(如圖4所示)的系數(shù)塊。
前置/后置濾波器(圖4的前向重疊440以及圖5的逆重疊560)結(jié)合核心變換共同實現(xiàn)了重疊變換,此處也稱為重疊算子。
在由編碼器400(圖4)應(yīng)用核心變換450之后,收集圖像的所有塊的DC系數(shù)460以形成DC子帶。該核心變換的第二級被應(yīng)用于該DC子帶。如果OverlapMode=OL_TWO,則第二級重疊算子也在第二級核心變換之前應(yīng)用。如果圖像是YUV_444圖像的Y分量或U或V分量,則DC子帶460被劃分成4×4的塊,且使用與第一級相同的4×4的PCT和4×4的PLO。然而,如果圖像是YUV4:2:0圖像的U或V分量,則DC子帶改為劃分成2×2的塊。因此,使用2×2的PCT和2×2的PLO。圖16示出了用于2×2的重疊算子的2×2支撐1620,它也跨越2×2的相鄰塊1610-1613。
參考圖15,在圖像的角上,重疊算子所跨越的4個塊中僅一個塊可用。這些是左上角的塊3、右上角的塊1、左下角的塊2和右下角的塊0。在這些情況下,跳過4×4或2×2的重疊算子。
在除4個角之外的圖像邊界上,重疊算子1520所跨越的4個塊中的2個塊可用。在這些區(qū)域中,只需一維算子。因此,4×4重疊的算子由1D4點重疊算子的兩個實例來替換(且對于2×2的重疊算子也是如此)。
具體地,有四種情況(參考圖15)·支撐1520、1620跨越頂部圖像邊界(塊0和2不可用,塊1和3可用)4點重疊算子被應(yīng)用于點(i,j,k,l)和點(m,n,o,p),或者2點重疊算子被應(yīng)用于點(c,d);·支撐1520、1602跨越底部圖像邊界(塊1和3不可用,塊0和2可用)
4點重疊算子被應(yīng)用于點(a,b,c,d)和點(e,f,g,h),或者2點重疊算子被應(yīng)用于點(a,b);·支撐1520、1620跨越左側(cè)圖像邊界(塊0和1不可用,塊2和3可用)4點重疊算子被應(yīng)用于點(c,g,k,o)和點(d,h,l,p),或者2點重疊算子被應(yīng)用于點(b,d);·支撐1520、1620跨越右側(cè)圖像邊界(塊2和3不可用,塊0和1可用)4點重疊算子被應(yīng)用于點(a,e,i,m)和點(b,f,j,n),或者2點重疊算子被應(yīng)用于點(a,c)。
因此,編碼器400(圖4)的示例性實現(xiàn)的編碼過程1700(圖17)中使用的重疊變換涉及2×2的核心變換、4×4的核心變換、2×2的重疊算子、4×4的重疊算子、2點重疊算子以及4點重疊算子。解碼器500(圖5)使用的解碼過程1800(圖18)無損地反轉(zhuǎn)了該過程。逆核心變換是編碼器的核心變換的理想逆運算,逆重疊算子是編碼器的重疊算子的理想逆運算。一維的4點重疊算子在上文名為“可逆重疊算子”一節(jié)中描述。接下來描述二維重疊算子。
5.二維前置/后置濾波在一種方法中,用于二維前置/后置濾波440(圖4)的4×4重疊算子可通過水平和垂直地向4×4的重疊算子支撐1520(圖15)單獨應(yīng)用圖19的4點重疊算子1900(也在上文名為“可逆重疊算子”一節(jié)中描述)來實現(xiàn)。4×4的重疊算子的這一可分離的方法實現(xiàn)2000在圖20中示出。更具體地,該方法向4×4的重疊算子支撐1520的垂直列(即,列a,e,i,m;列b,f,j,n;列c,g,k,o;以及列d,h,l,p)應(yīng)用一維4點重疊算子,之后向水平行(即,行a,b,c,d;行e,f,g,h;行i,j,k,l;以及行m,n,o,p)應(yīng)用一維4點重疊算子。然而,該方法2000具有若干缺點,如在下文“總結(jié)”一節(jié)中所描述的。
此處所描述的編碼器400/解碼器500的示例性實現(xiàn)使用了另一種方法來實現(xiàn)解決這些缺點的二維前置/后置濾波(前向重疊440和逆重疊560)。這一其它方法2100(圖21)在多個級中散置可分離方法的水平和垂直濾波器的操作。此外,操作被組合以形成具有歸一化的無比例縮放且可逆的“蝶形結(jié)構(gòu)”實現(xiàn)的2×2變換,如圖24、29和30所示。此外,在上文名為“可逆重疊算子”一節(jié)中描述的提升步驟中實現(xiàn)的歸一化的比例縮放運算可通過注意散置的二維結(jié)構(gòu)中“交叉項”的抵消而被應(yīng)用于一組更有限的信號對。這可得到有效的無比例縮放可逆二維前置/后置濾波器,它與有效的無比例縮放可逆二維塊變換結(jié)合提供了可在用于圖像和視頻的有效且計算上高效的無損和有損壓縮的編碼器/解碼器中使用的重疊變換。
如圖21所示,在一個所示的實現(xiàn)中,該第二種方法將前置/后置濾波器的垂直和水平操作散置到三級中。在每一級中,運算被重新排列成4×4的數(shù)據(jù)塊的單獨的4點組上的基本2×2的運算。
更具體地,前置/后置濾波器中的第一級以及最后一級被實現(xiàn)為歸一化的2點阿達(dá)馬蝶形結(jié)構(gòu)。該級中的垂直和水平運算被重新排列成在圖22所示的程序清單2200中定義的2×2的歸一化阿達(dá)馬運算(它是先前引用的Srinivasan在2004年12月17日提交的名為“Reversible Transform For Lossy and Lossless 2-D DataCompression”(用于有損和無損2-D數(shù)據(jù)壓縮的可逆變換)的美國專利申請第11/015,707號中描述的TH變換),它被單獨應(yīng)用于4×4的數(shù)據(jù)塊中的4點組。該2×2的歸一化阿達(dá)馬運算被應(yīng)用于圖23所示的2×2的輸入矩陣2300(點a、b、c和d)。在圖23中和該文檔的剩余部分中使用了陰影以表示數(shù)據(jù)點(等效的像素或矩陣元素)和處理步驟之間的對應(yīng)性。應(yīng)用于輸入矩陣[ab;cd]的基本2×2運算如圖23所示原地計算。
散置的方法2100(圖21)中的第1級和第3級運算然后可被重新排列為該2×2的歸一化阿達(dá)馬運算2200(圖22)對數(shù)據(jù)塊中的4個單獨的4點組2400(圖24)的應(yīng)用,即角2410上的4點、中心的4點2420、頂邊/底邊上的4點2430以及左邊/右邊上的4點2440。
另一方面,第2級運算包括兩個步驟-第一個是旋轉(zhuǎn)(圖21中所示),第二個是比例縮放(圖21中未示出)。這兩個步驟的順序不是重要的,盡管為一致性必須由所有的編解碼器維持相同的順序,并且其在重疊變換中的順序相對于重疊逆變換是相反的。
旋轉(zhuǎn)步驟通過再一次將運算重新排列成單獨的2×2變換來實現(xiàn)。由于低通項對于一維情況(圖19的4點重疊算子1900的點x0和x1)是通過的,因此二維中低-低點(即,兩個方向上都是低通的)再一次是通過的(即,在該級不被過濾)。這對應(yīng)于圖29中的左上角的2×2子塊2910。
高-高項2920(圖29)用有效的2×2歸一化可逆旋轉(zhuǎn)運算2500來實現(xiàn),它是先前引用的Srinivasan在2004年12月17日提交的名為“Reversible Transform ForLossy and Lossless 2-D Data Compression”(用于有損和無損2-D數(shù)據(jù)壓縮的可逆變換)的美國專利申請第11/015,707號中描述的Todd-odd變換。該Todd-odd變換可在圖25所示的C編程語言清單2500中實現(xiàn)。選擇非平凡提升步驟(即,涉及乘以3的那些步驟)中的偏移以最小化總偏差。用于后置濾波器的這一變換的逆變換可在圖26所示的C編程語言清單2600中實現(xiàn)。
高-低和低-高項2930(圖29)僅涉及一維濾波,因為其它維度的運算是通過。這些是用圖27所示的C編程語言清單2700中定義的2點旋轉(zhuǎn)來實現(xiàn)的。用于后置濾波器的逆運算在圖28所示的C編程語言清單2800中實現(xiàn)。這些2點旋轉(zhuǎn)是涉及2個計算上平凡的提升步驟的簡單逼近,它們在實踐中能起很好的作用。也可替換地使用其它逼近。該2點旋轉(zhuǎn)作為4組2點運算被應(yīng)用于高-低和低-高項2930,如由圖29中的陰影指示的。
對于第2級的比例縮放步驟,一維4點重疊算子1900(圖19)包括按[ff1/f1/f]比例縮放四個點。對于二維情況,比例縮放步驟實現(xiàn)[ff1/f1/f]與其自身的外積。所得的比例縮放矩陣是f2f211f2f21111f-2f-211f-2f-2]]>該矩陣項的一半是單位元素,因此這些點僅僅通過。剩余的項在圍繞矩陣中心的2點運算中配對(即,對3010、3020、3030和3040,如圖30中的陰影所示的)。對稱對于與散置的方法2100(圖21)的第1級和第3級匹配的最佳碼率-失真性能是必要的。應(yīng)用于每一對的2點比例縮放運算本身在圖31所示的C編程語言清單3100中實現(xiàn)。用于后置濾波器的2點比例縮放逆運算在圖32的清單3200中示出?;蛘撸渌平鼘τ?點比例縮放過程也是可能的。此外,比例縮放過程可與注意了其最終操作之間的抵消的第1級和第3級的2×2阿達(dá)馬運算組合。
圖33示出了使用圖21所示的散置方法2100的完整的4×4重疊算子的程序清單3300。如上對于圖17和18中所示的編碼器400/解碼器500的示例性實現(xiàn)所述的,如果OL_ONE為真,則4×4的重疊算子被應(yīng)用于圖像的非角和非邊界部分。如果OL_TWO為真,則如果它不是YUV4:2:0圖像的U或V分量,它也被應(yīng)用于圖像的DC子帶的非角和非邊界部分。具有不同的逼近或合并的步驟(尤其是比例縮放和阿達(dá)馬之間)的其它替換實現(xiàn)是可能的。
如上文圖15中所示的,4×4的重疊算子被應(yīng)用于重疊算子支撐,它可以被表示為輸入數(shù)據(jù)塊
abcdefghijklmnop]]>4×4的前向重疊算子然后在該程序清單中被定義為函數(shù)PLO4×4(a,b,c,d,e,f,g,h,i,j,l,l,m,n,o,p)。如上所述,該函數(shù)包括在三級中向圖24、29和30所示的輸入塊的點的子組應(yīng)用2×2的阿達(dá)馬運算2200(圖22)、前向比例縮放3100(圖31)、2點旋轉(zhuǎn)2700(圖27)、以及前向奇-奇變換2500(圖25)。
圖34示出了同樣使用散置的方法的4×4重疊逆算子的實現(xiàn)的程序清單3400。其中4×4重疊逆算子的輸入系數(shù)塊是塊abcdefghijklmnop]]>然后該算子在該程序清單中被定義為函數(shù)IPLO4×4(a,b,c,d,e,f,g,h,i,j,l,l,m,n,o,p)。4×4重疊逆算子包括再一次在三級中向圖24、29和30所示的系數(shù)塊的點的子組應(yīng)用2×2的阿達(dá)馬運算2200(圖22)(它是其自己的逆運算)、奇-奇逆變換2600(圖26)、2點逆旋轉(zhuǎn)2800(圖28)以及逆比例縮放3200(圖32)。
作為上述的一個特殊情況,圖17和18中所示的編碼器/解碼器的示例性實現(xiàn)也應(yīng)用2×2的前置/后置濾波運算。圖35示出了用于2×2的前置濾波的程序清單3500。2×2的前置/后置濾波類似于4×4的前置/后置濾波,不同之處在于在第2級中沒有旋轉(zhuǎn)。2×2的前置濾波因此可對上文所描述的4×4情況來實現(xiàn),消除了第2級的旋轉(zhuǎn)步驟。圖36示出了實現(xiàn)2×2的后置過濾的程序清單3600。
在圖17和18所示的編碼器/解碼器的示例性實現(xiàn)中,沿一維的濾波也必須沿圖像邊緣進(jìn)行,在邊緣中沒有足夠的像素用于2D濾波步驟。由于缺少對歸一化無損提升實現(xiàn)的簡化操作,因此1D濾波器可能比對應(yīng)的2D濾波器更復(fù)雜。1D前置/后置濾波器的實現(xiàn)在上文名為“可逆重疊算子”一節(jié)中討論。
圖37示出了一維2點重疊算子的程序清單3700(以C編程語言),它在圖17和18的編碼器/解碼器的示例性實現(xiàn)中在OL_TWO為真時應(yīng)用于YUV4:2:0圖像的U和V分量的DC子帶的邊界。圖38示出了一維2點重疊逆算子的程序清單3800。
圖17和18的編碼器/解碼器的示例性實現(xiàn)也在OL_ONE為真時向圖像的邊界應(yīng)用4點重疊算子。如果OL_TWO為真,則如果它不是YUV4:2:0圖像的U或V分量,4點重疊算子也被應(yīng)用于圖像的DC子帶的邊界。用于被排序為[abcd]的輸入數(shù)據(jù)的一維4點前向重疊算子然后在圖39所示的程序清單3900(以C編程語言)中被定義為函數(shù)PLO4(a,b,c,d)。圖40所示的程序清單4000包括函數(shù)IPLO(a,b,c,d),它定義了輸入系數(shù)[abcd]上的4點重疊逆算子。
6.核心變換如上所述,編碼器/解碼器的示例性實現(xiàn)實現(xiàn)了一種重疊變換,它是上述重疊算子與由上文引用的Srinivasan在2004年12月17日提交的名為“ReversibleTransform For Lossy and Lossless 2-D Data Compression”(用于有損和無損2-D數(shù)據(jù)壓縮的可逆變換)的美國專利申請第11/015,707號中描述的可逆近似4×4DCT的組合。如圖17中對于該示例性實現(xiàn)的編碼過程1700以及圖18中對于解碼過程1800所示,編碼器/解碼器使用2×2的核心變換、2×2的核心逆變換、4×4的核心變換和4×4的核心逆變換。這些變換的實現(xiàn)在圖41-46所示的程序清單(以C編程語言)中定義,如下所述。
2×2的輸入塊上的2×2的前向核心變換abcd]]>可以在2個步驟中實現(xiàn)1.應(yīng)用圖22的阿達(dá)馬2×2(a,b,c,d)函數(shù)2200;2.交換點b和c。
在某些實現(xiàn)中,步驟2可與量化或鋸齒形掃描相組合。
2×2的系數(shù)塊上的2×2核心逆變換abcd]]>可在兩個步驟中實現(xiàn)1.交換點b和c;2.應(yīng)用阿達(dá)馬2×2(a,b,c,d)函數(shù)2200(圖22)。在某些實現(xiàn)中,步驟1可以與反量化或反向鋸齒形掃描相組合。
在4×4輸入數(shù)據(jù)塊上應(yīng)用的4×4前向核心變換
abcdefghijklmnop]]>可在2個步驟中實現(xiàn)1.應(yīng)用圖41所示的函數(shù)4100PCT4×4(a,b,c,d,e,f,g,h,I,j,k,l,m,n,o,p)。類似于4×4的重疊算子,該函數(shù)使用了散置的方法,其中操作被進(jìn)一步排列成數(shù)據(jù)塊的點的子組上的2×2的運算。這些2×2的運算包括在圖42所示的函數(shù)4200中實現(xiàn)的奇變換,以及圖43所示的函數(shù)4300中實現(xiàn)的奇一奇變換?;诟嗷蚋偬嵘襟E來實現(xiàn)旋轉(zhuǎn)的其它逼近也是可能的。
2.將數(shù)據(jù)塊從aigeckmojdpnblhf]]>重新打亂成abcdefghijklmnop.]]>這可以與量化/鋸齒形掃描相組合。
4×4的輸入系數(shù)塊上的4×4的核心逆變換abcdefghijklmnop]]>可以在以下2個步驟中實現(xiàn)1.將系數(shù)塊從abcdefghijklmnop]]>重新打亂成aigeckmojdpnblhf.]]>這可以與反量化/反向鋸齒形掃描相組合。
2.應(yīng)用圖44所示的函數(shù)4400IPCT4×4(a,b,c,d,e,f,g,h,I,j,k,l,m,n,o,p),它是函數(shù)4100PCT4×4的逆運算。函數(shù)4400包括2×2的變換由圖45所示的函數(shù)4500實現(xiàn)的奇逆變換,以及由圖46所示的函數(shù)4600定義的奇-奇逆變換。
7.計算環(huán)境上述基于使用4×4前置/后置濾波的重疊變換的編解碼器可以在其中可執(zhí)行數(shù)字媒體信號處理的各種設(shè)備的任一個上執(zhí)行,包括計算機;圖像和視頻記錄、傳輸和接收設(shè)備;便攜式視頻播放器;視頻會議;等等以及其它實例。數(shù)字媒體編碼技術(shù)可以用硬件電路以及在如圖47所示的計算機或其它計算環(huán)境中執(zhí)行的數(shù)字媒體處理軟件來實現(xiàn)。
圖47示出了其中可實現(xiàn)所描述的實施例的合適的計算環(huán)境(4700)的一般化的示例。計算環(huán)境(4700)并非對本發(fā)明的使用范圍或功能提出任何局限,因為本發(fā)明可以在各種通用或?qū)S糜嬎悱h(huán)境中實現(xiàn)。
參考圖47,計算環(huán)境(4700)包括至少一個處理單元(4710)以及存儲器(4720)。在圖47中,這一最基本的配置(4730)包括在虛線內(nèi)。處理單元(4710)執(zhí)行計算機可執(zhí)行指令,并可以是真實或虛擬處理器。在多處理系統(tǒng)中,多個處理單元執(zhí)行計算機可執(zhí)行指令以提高處理能力。存儲器(4720)可以是易失性存儲器(例如,寄存器、高速緩存、RAM)、非易失性存儲器(例如,ROM、EEPROM、閃存等)或兩者的某一組合。存儲器(4720)儲存實現(xiàn)所描述的解碼器/編碼器和變換的軟件(4780)。
計算環(huán)境可具有附加特征。例如,計算環(huán)境(4700)包括存儲(4740)、一個或多個輸入設(shè)備(4750)、一個或多個輸出設(shè)備(4760)以及一個或多個通信連接(4770)。諸如總線、控制器或網(wǎng)絡(luò)等互連機制(未示出)將計算環(huán)境(4700)的組件互連。通常,操作系統(tǒng)軟件(未示出)為在計算環(huán)境(4700)中執(zhí)行的其它軟件提供了操作環(huán)境,并協(xié)調(diào)計算環(huán)境(4700)的組件的活動。
存儲(4740)可以是可移動或不可移動的,并包括磁盤、磁帶或磁帶盒、CD-ROM、CD-RW、DVD或可用于儲存信息并可在計算環(huán)境(4700)內(nèi)訪問的任何其它介質(zhì)。存儲(4740)儲存用于實現(xiàn)基于使用4×4的前置/后置濾波的重疊變換的編解碼器的軟件(4780)的指令。
輸入設(shè)備(4750)可以是諸如鍵盤、鼠標(biāo)、筆或跟蹤球等觸摸輸入設(shè)備、語音輸入設(shè)備、掃描設(shè)備或向計算環(huán)境(4700)提供輸入的另一設(shè)備。對于音頻,輸入設(shè)備(4750)可以是接受模擬或數(shù)字形式的音頻輸入的聲卡或類似的設(shè)備,或向計算環(huán)境提供音頻樣值的CD-ROM閱讀器。輸出設(shè)備(4760)可以是從計算環(huán)境(4700)提供輸出的顯示器、打印機、揚聲器、CD-刻錄機或另一設(shè)備。
通信連接(4770)允許通過通信介質(zhì)與另一計算實體進(jìn)行通信。通信介質(zhì)在已調(diào)制數(shù)據(jù)信號中傳達(dá)諸如計算機可執(zhí)行指令、壓縮的音頻或視頻信息或其它數(shù)據(jù)等信息。已調(diào)制數(shù)據(jù)信號是其一個或多個特征以對信號中的信息編碼的方式來設(shè)置或改變的信號。作為示例,而非局限,通信介質(zhì)可包括用電、光、RF、紅外、聲學(xué)或其它載波實現(xiàn)的有線或無線技術(shù)。
本發(fā)明的數(shù)字媒體處理技術(shù)可以在計算機可讀介質(zhì)的通用環(huán)境中描述。計算機可讀介質(zhì)可以是可在計算環(huán)境內(nèi)訪問的任何可用介質(zhì)。作為示例,而非局限,對于計算環(huán)境(4700),計算機可讀介質(zhì)包括存儲器(4720)、存儲(4740)、通信介質(zhì)以及上述的任一個的組合。
本發(fā)明的數(shù)字媒體處理技術(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)整”和“應(yīng)用”等術(shù)語來描述計算環(huán)境中的計算操作。這些術(shù)語是由計算機執(zhí)行的操作的高級抽象,并且不應(yīng)當(dāng)與人類執(zhí)行的動作混淆。對應(yīng)于這些術(shù)語的實際的計算機操作可取決于實現(xiàn)而改變。
4.可逆重疊算子的變體和擴展可以作出上述可逆重疊算子的各種修改和擴展。盡管上文提出的描述用于一維數(shù)據(jù),然而相同的過程可以分離或非分離地應(yīng)用于多個數(shù)據(jù)維度。
上述可逆重疊算子實現(xiàn)中描述的正交旋轉(zhuǎn)可以用其近似或可能不正交的其它變換來替換。
此外,盡管以上描述主要集中于輸入數(shù)據(jù)的無損恢復(fù),然而相同的變換也可以用于有損數(shù)據(jù)壓縮。在這一情況下,損失可以在量化過程中發(fā)生,或者由于前置或后置濾波器的有限精度/近似實現(xiàn)而發(fā)生,或者可由于其它不準(zhǔn)確性或多個因素的組合而發(fā)生。
此處所描述的可逆重疊算子可應(yīng)用于數(shù)據(jù)壓縮以外的領(lǐng)域。使用可逆重疊算子的重疊變換本身可以是膨脹性的。
可逆重疊算子可以用適當(dāng)修改的形式應(yīng)用來實現(xiàn)多速率濾波器組、小波、具有跨越2個以上塊寬度(K>2N)的支撐的重疊變換。
可逆重疊算子可以用空間上變化的方式來應(yīng)用,其中重疊濾波器的范圍和形狀可以跨數(shù)據(jù)的空間范圍而變化。
鑒于可應(yīng)用本發(fā)明的原理的許多可能的實現(xiàn),要求保護(hù)落入所附權(quán)利要求書及其等效技術(shù)方案的范圍和精神之內(nèi)的所有這樣的實施例作為本發(fā)明。
權(quán)利要求
1.一種根據(jù)重疊變換處理二維數(shù)字媒體數(shù)據(jù)的方法,所述方法包括在交錯網(wǎng)格的基礎(chǔ)上向第一組二維數(shù)字媒體數(shù)據(jù)塊應(yīng)用可逆二維重疊算子;以及在對齊網(wǎng)格的基礎(chǔ)上向第二組二維數(shù)字媒體數(shù)據(jù)塊應(yīng)用可逆二維塊變換,所述交錯網(wǎng)格基礎(chǔ)在空間上相對于所述對齊網(wǎng)格基礎(chǔ)交錯,所述應(yīng)用可逆二維重疊算子和可逆二維塊變換共同實現(xiàn)了所述二維數(shù)字媒體數(shù)據(jù)的重疊變換。
2.一種通過部分地使用如權(quán)利要求1所述的重疊變換的處理來編碼和解碼二維數(shù)字媒體數(shù)據(jù)的方法,其中,在解碼時應(yīng)用可逆二維重疊算子和應(yīng)用可逆二維塊變換的步驟是從在編碼二維數(shù)字媒體數(shù)據(jù)時應(yīng)用的重疊算子和塊變換求逆得到并與其順序相反,并且其中,作為解碼時的重疊變換的處理是在編碼時作為重疊變換的處理的無損逆處理,且與在編碼和解碼二維數(shù)字媒體數(shù)據(jù)時執(zhí)行的任何其它處理分離。
3.如權(quán)利要求1所述的方法,其特征在于,應(yīng)用可逆二維重疊算子包括對于交錯網(wǎng)格基礎(chǔ)上所述第一組二維塊中的塊向所述塊應(yīng)用與一維可逆重疊算子的可水平和垂直分離的級交錯的多級中的一系列運算,各個級中的運算被排列為一組作為提升步驟向所述塊中的點的子組實現(xiàn)的初等變換。
4.如權(quán)利要求3所述的方法,其特征在于,在初始和最后的級中應(yīng)用運算包括向所述塊的4點子集應(yīng)用歸一化的2×2阿達(dá)馬算子。
5.如權(quán)利要求4所述的方法,其特征在于,對于4×4點大小的塊的情況,所述4點子集包括所述塊的角上的一組四個點;所述塊的中心的一組四個點;所述塊的水平邊上居中的一組四個點;以及所述塊的垂直邊上居中的一組四個點。
6.如權(quán)利要求4所述的方法,其特征在于,在所述初始和最后的級之間的級中應(yīng)用運算包括向所述塊中的點的子集應(yīng)用旋轉(zhuǎn)變換。
7.如權(quán)利要求6所述的方法,其特征在于,對于4×4點大小的塊的情況,應(yīng)用旋轉(zhuǎn)變換包括使所述塊的2×2低通、低通子集中的點通過;向所述塊的2×2高通、高通子集中的點應(yīng)用2×2的旋轉(zhuǎn)變換;以及向所述塊的2×2高通、低通子集和2×2低通、高通子集的獨立的2點子組應(yīng)用2點旋轉(zhuǎn)變換。
8.如權(quán)利要求4所述的方法,其特征在于,在所述初始和最后的級之間的另一級中應(yīng)用運算包括對所述塊中的點的子集應(yīng)用比例縮放運算。
9.如權(quán)利要求8所述的方法,其特征在于,在所述其它級中向所述塊中的點的子集應(yīng)用比例縮放運算以及在所述初始和最后的級中應(yīng)用2×2的阿達(dá)馬算子相對于向所述塊的一維可逆重疊算子的水平和垂直可分離應(yīng)用省略了至少某些運算,其中,所述至少某些運算是與所述初始和最后級的2×2阿達(dá)馬算子的操作互相抵消的其它級的比例縮放運算。
10.如權(quán)利要求8所述的方法,其特征在于,在所述其它級中向所述塊中的點的子集應(yīng)用比例縮放運算相對于向所述塊的一維可逆重疊算子的水平和垂直可分離應(yīng)用省略了至少某些互相可抵消的比例縮放運算。
11.如權(quán)利要求8所述的方法,其特征在于,對于4×4點大小的塊的情況,應(yīng)用比例縮放運算包括使所述塊的2×2高通、低通子集和2×2的低通、高通子集中的點通過;向所述塊的2×2的高通、高通子集以及所述塊的2×2的低通、低通子集應(yīng)用比例縮放運算。
12.如權(quán)利要求11所述的方法,其特征在于,向所述塊的2×2的高通、高通子集和低通、低通子集應(yīng)用比例縮放運算包括向來自關(guān)于所述塊的中心對稱地定位的兩個子集的點對應(yīng)用2點比例縮放運算。
13.至少一種其上承載軟件程序的程序承載介質(zhì),所述軟件程序可在數(shù)字媒體處理器上執(zhí)行,以使所述處理器在二維數(shù)字媒體數(shù)據(jù)上執(zhí)行如權(quán)利要求3所述的方法。
14.至少一種其上承載軟件程序的程序承載介質(zhì),所述軟件程序可在數(shù)字媒體處理器上執(zhí)行,以使所述處理器在二維數(shù)字媒體數(shù)據(jù)上執(zhí)行如權(quán)利要求8所述的方法。
15.一種二維數(shù)字媒體處理器,包括數(shù)據(jù)存儲緩沖器,用于儲存要使用重疊變換來處理的二維數(shù)字媒體數(shù)據(jù);處理器,它被編程為在交錯網(wǎng)格的基礎(chǔ)上向第一組二維數(shù)字媒體數(shù)據(jù)塊應(yīng)用可逆二維重疊算子;以及在對齊網(wǎng)格的基礎(chǔ)上向第二組二維數(shù)字媒體數(shù)據(jù)塊應(yīng)用可逆二維塊變換,所述交錯網(wǎng)格基礎(chǔ)在空間上相對于所述對齊網(wǎng)格基礎(chǔ)交錯,所述應(yīng)用可逆二維重疊算子和可逆二維塊變換共同實現(xiàn)了所述二維數(shù)字媒體數(shù)據(jù)的重疊變換。
16.如權(quán)利要求15所述的二維數(shù)字媒體處理器,其特征在于,所述處理器還被編程為當(dāng)應(yīng)用可逆二維重疊算子時,且對于交錯網(wǎng)格基礎(chǔ)上所述第一組二維塊中的一個塊向所述塊應(yīng)用與一維可逆重疊算子的可水平和垂直分離的級交錯的多級中的一系列運算,各個級中的運算被排列為一組作為提升步驟向所述塊中的點的子組實現(xiàn)的初等變換。
17.如權(quán)利要求16所述的二維數(shù)字媒體處理器,其特征在于,所述處理器還被配置成當(dāng)應(yīng)用多級中的一系列運算時,在初始和最后的級中向所述塊的4點子集應(yīng)用歸一化的2×2阿達(dá)馬算子;在所述初始和最后的級之間的級中向所述塊中的點的子集應(yīng)用旋轉(zhuǎn)變換;以及在所述初始和最后的級之間的級中應(yīng)用比例縮放運算。
18.如權(quán)利要求17所述的二維數(shù)字媒體處理器,其特征在于,對于所述數(shù)字媒體數(shù)據(jù)的4×4點大小的塊的情況,所述4點子集包括所述塊的角上的一組四個點;所述塊的中心的一組四個點;所述塊的水平邊上居中的一組四個點;以及所述塊的垂直邊上居中的一組四個點。
19.如權(quán)利要求17所述的二維數(shù)字媒體處理器,其特征在于,對于所述數(shù)字媒體數(shù)據(jù)的4×4點大小的塊的情況,所述處理器還被編程為當(dāng)應(yīng)用旋轉(zhuǎn)變換時使所述塊的2×2低通、低通子集中的點通過;向所述塊的2×2高通、高通子集中的點應(yīng)用2×2的旋轉(zhuǎn)變換;以及向所述塊的2×2高通、低通子集和2×2低通、高通子集的獨立的2點子組應(yīng)用2點旋轉(zhuǎn)變換。
20.如權(quán)利要求17所述的二維數(shù)字媒體處理器,其特征在于,對于4×4點大小的塊的情況,所述處理器還被編程為當(dāng)應(yīng)用比例縮放運算時使所述塊的2×2高通、低通子集和2×2的低通、高通子集中的點通過;向來自關(guān)于所述塊的中心對稱地定位的兩個子集的點對應(yīng)用2點比例縮放運算,所述兩個子集是所述塊的2×2的高通、高通子集以及所述塊的2×2的低通、低通子集。
全文摘要
使用用于在相對于核心變換的交錯網(wǎng)格上應(yīng)用的前置/后置濾波的可逆二維重疊算子實現(xiàn)可在數(shù)字媒體編解碼器中使用的有效重疊變換。該二維重疊算子基于可分離地應(yīng)用的一維可逆重疊算子,它被重新排列為各個塊的點的子集上交錯的級中的一系列初等變換,并且為了計算效率也在提升步驟中實現(xiàn)。交錯的級包括在涉及歸一化2×2阿達(dá)馬變換的初始和最后的級之間應(yīng)用旋轉(zhuǎn)和比例縮放級。
文檔編號G10L19/02GK1805548SQ200510131668
公開日2006年7月19日 申請日期2005年12月14日 優(yōu)先權(quán)日2005年1月14日
發(fā)明者涂承杰, S·斯里尼瓦杉 申請人:微軟公司