專利名稱:基于simd重疊變換的數(shù)字媒體編碼/解碼的制作方法
基于SIMD重疊變換的數(shù)字媒體編碼/解碼版權(quán)授權(quán)本專利文獻的公開內(nèi)容的一部分包含受到版權(quán)保護的材料。版權(quán)所有者不反 對任何人如其出現(xiàn)在(美國)專利商標局專利文件或記錄中那樣對該專利文獻或?qū)?利公開的復制,但是無論如何保留所有版權(quán)。逃旦 冃豕基于塊變換的編碼變換編碼是在許多音頻、圖像和視頻壓縮系統(tǒng)中使用的一種壓縮技術(shù)。未壓 縮數(shù)字圖像和視頻通常被表示或捕捉為以二維(2D)網(wǎng)格排列的圖像或視頻幀中 各位置處的圖元或色彩的樣本。這被稱為圖像或視頻的空間域表示。例如,用于圖 像的典型格式由被排列為網(wǎng)格的24位彩色圖元流構(gòu)成。每一樣本是表示諸如RGB 或YIQ等色彩空間內(nèi)該網(wǎng)格中的一個像素位置處的色彩分量的數(shù)字。各種圖像和 視頻系統(tǒng)可使用各種不同的色彩、空間和時間分辨率的采樣。類似地,數(shù)字音頻通 常被表示為時間采樣的音頻信號流。例如,典型的音頻格式由在有規(guī)律的時間間隔 處所取的16位音頻信號幅度樣本流構(gòu)成。未壓縮數(shù)字音頻、圖像和視頻信號可消耗大量的存儲和傳輸能力。變換編碼 通過將信號的空間域表示變換成頻域(或其它類似的變換域)表示,然后降低該變 換域表示的某些一般較不可感知的頻率分量的分辨率,減小了數(shù)字音頻、圖像和視 頻的大小。這一般與降低空間域中的圖像或視頻或時域中的音頻的色彩或空間分辨 率相比,產(chǎn)生了較不可感知的數(shù)字信號劣化。更具體而言,
圖1所示的典型的基于塊變換的編解碼器100將未壓縮的數(shù)字 圖像的像素劃分成固定大小的二維塊(Xh ... Xn),每一塊可能與其它塊重疊。對每 一塊應(yīng)用進行空間-頻率分析的線性變換120-121,這將塊內(nèi)彼此隔開的樣本轉(zhuǎn)換成 一般表示塊間隔上相應(yīng)的頻帶內(nèi)的數(shù)字信號的強度的一組頻率(或變換)系數(shù)。作 為比較,變換系數(shù)可被選擇性地量化130 (即,諸如通過丟棄系數(shù)值的最低有效位 或?qū)⑤^高分辨率數(shù)字集中的值映射到較低分辨率來降低分辨率),并且還被熵或可變長度編碼130成壓縮的數(shù)據(jù)流。在解碼時,變換系數(shù)進行反變換170-171以便幾乎重構(gòu)原始的色彩/空間釆樣圖像/視頻信號(重構(gòu)塊&,...:^)。塊變換120-121可被定義為對大小為N的向量x的數(shù)學運算。最通常的是, 該運算是線性乘法,從而產(chǎn)生變換域輸出;;=Mx, M是變換矩陣。當輸入數(shù)據(jù)是 任意長時,它被分段成大小為iV的向量,并且向每一段應(yīng)用塊變換。出于數(shù)據(jù)壓 縮的目的,選擇可逆塊變換。換言之,矩陣M是可逆的。在多個維度中(例如, 對于圖像和視頻),塊變換通常被實現(xiàn)為可分操作。沿數(shù)據(jù)的每一維(即,行和列) 可分地應(yīng)用矩陣乘法。對于壓縮,變換系數(shù)(向量y的分量)可被選擇性地量化(即,諸如通過丟 棄系數(shù)值的最低有效位或?qū)⑤^高分辨率數(shù)字集中的值映射到較低分辨率來降低分 辨率),并還可被熵或可變長度編碼為壓縮的數(shù)據(jù)流。在解碼器150中解碼時,如圖1所示,在解碼器150側(cè)應(yīng)用這些操作的反過 程(反量化/熵解碼160和反塊變換170-171)。在重構(gòu)數(shù)據(jù)時,將逆矩陣M1 (反 變換170-171)作為乘數(shù)應(yīng)用于變換域數(shù)據(jù)。當應(yīng)用于變換域數(shù)據(jù)時,反變換幾乎 重構(gòu)原始時域或空間域數(shù)字媒體。在許多基于塊變換達到編碼應(yīng)用中,變換理想地是可逆的以取決于量化因子 同時支持有損和無損壓縮兩者。如果例如沒有量化(一般被表示為量化因子1), 則利用可逆變換的編解碼器可在解碼時精確地再現(xiàn)輸入數(shù)據(jù)。然而,這些應(yīng)用中的 可逆性的要求約束了對用于設(shè)計編解碼器的變換的選擇。諸如MPEG和Windows Media等許多圖像和視頻壓縮系統(tǒng)利用基于離散余弦 變換(DCT)的變換。已知DCT具有得到近乎最優(yōu)的數(shù)據(jù)壓縮的良好能量壓縮特 性。在這些壓縮系統(tǒng)中,在壓縮系統(tǒng)的編碼器和解碼器兩者中的重構(gòu)環(huán)路中采用了 反DCT (IDCT)來重構(gòu)各個圖像塊。重疊變換在上述基于塊變換的編碼系統(tǒng)中,塊變換是連續(xù)地應(yīng)用于輸入信號或圖像的 不重疊相鄰塊的有限長度(通常是諸如4或8等較短的長度)變換。因此,跨塊邊 界的信號分量不會影響跨邊界的塊的變換。由于用于數(shù)據(jù)壓縮的高頻率分量的量 化,對塊變換的使用可能會在塊邊界處引入可察覺到的偽像,即炎猶觀, (blockiness)。塊狀現(xiàn)象在高度壓縮的JPEG圖像中是明顯的,并且作為圖像中的 方塊或階梯形而出現(xiàn)。在音頻中,塊狀現(xiàn)象導致周期性的爆音噪聲。這些都不是可容許的偽像。(圖2所示的LT210)是不會遭受劇烈塊狀現(xiàn)象的表示信號或圖像 的替換手段。在重疊變換中,影響每一變換系數(shù)集的輸入信號分量大于變換輸出塊 的大小。例如,在1D情況下,8個連續(xù)的信號分量可能會影響4點變換。同樣, 對于圖像,8X8的區(qū)域可能會影響4X4的變換塊。重疊變換可用兩種方式之一來公式化。重疊變換的一種經(jīng)典的公式化是一系 列塊變換后跟一系列混頻器。塊變換與N點的規(guī)則網(wǎng)格(N是變換大小)對齊, 而混頻器跨塊邊界對稱地間隔開。 一種替換的公式化跨塊邊緣執(zhí)行預濾波操作,之 后是塊變換。重疊變換的反變換(例如,圖2的ILT220)的計算和實現(xiàn)一般是直截了當?shù)摹?反轉(zhuǎn)信號流圖,且對每一元素操作求反。反重疊變換的一種經(jīng)典的公式化是一系列 混頻器后跟一系列塊變換。一種替換的公式化包括一系列塊變換后跟跨塊邊界應(yīng)用 的后濾波操作。在重疊變換的任一公式化中,關(guān)鍵組成部分是(i)塊變換,以及(ii)跨塊的算子, 這可以是混頻器、預或后濾波器。這些算子(ii)被統(tǒng)稱為重疊濾波器。重疊iE^變換(LOT)是重疊變換的一個子類。它們具有前向和反向變換可 置換的性質(zhì)。從壓縮觀點來看,子類重疊^ i ^^換更令人感興趣,因為它們可實 現(xiàn)比LOT更好的PSNR。雙正交性指的是分析和合成基函數(shù)是雙正交的(即,互 相正交)。概述此處描述的數(shù)字媒體編碼和解碼技術(shù)以及該技術(shù)在數(shù)字媒體編解碼器中的實 現(xiàn)獲得了對用于編碼和解碼的變換的加速。該技術(shù)將重疊(或其它)變換重新公式 化為大部分是單指令、多數(shù)據(jù)(SIMD)友好的一組運算。這是通過重新映射重疊 變換的輸入和輸出采樣網(wǎng)格來實現(xiàn)的。通過這一重新映射,輸入數(shù)據(jù)可被分組成"矢 量"或并行單元。采用這一重新排列,許多重疊變換步驟可作為矢量運算來執(zhí)行。不可矢量化的極少剩余運算以串行的方式對矢量分量執(zhí)行。提供本概述以用簡化的形式介紹將在以下詳細描述中進一步描述的一些概 念。本概述并不旨在標識出所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在用 于幫助確定所要求保護的主題的范圍。附圖簡述圖1是現(xiàn)有技術(shù)中常規(guī)的基于塊變換的編解碼器的框圖。 圖2是示出重疊變換的一個示例的流程圖。圖3是包含了寬范圍系數(shù)自適應(yīng)編碼的代表性編碼器的流程圖。圖4是包含了自適應(yīng)編碼的寬范圍系數(shù)的解碼的解碼器的流程圖。圖5是示出作為預濾波器(或重疊算子)和塊變換的一個示例重疊變換公式化的流程圖,其中預濾波器跨塊變換的輸入邊界或塊邊緣來應(yīng)用。圖6是具有圖5的預濾波器和塊變換公式化的代表性重疊變換的信號流圖。 圖7是具有圖6的預濾波器和塊變換公式化的代表性重疊雙正交變換的并行化SIMD形式的信號流圖。圖8是示出將一維數(shù)據(jù)分組成在圖7的一維重疊雙正交變換的并行化SIMD形式中使用的2分量矢量的圖示。圖9是圖7的一維重疊雙正交變換的矢量信號流圖。圖10是示出將二維數(shù)據(jù)分組成在二維重疊雙正交變換的并行化SIMD形式中 使用的4分量矢量的圖示。圖11是示出用于按照圖IO所示的分組成矢量的二維數(shù)據(jù)的矢量表示法。圖12是示出對其應(yīng)用二維重疊雙正交變換的重疊算子(預濾波器)部分并對 其應(yīng)用重疊算子的2X2哈達瑪(Hadamard)算子部分的二維數(shù)據(jù)和相應(yīng)的并行化 分量矢量中的像素分量的圖示。圖13是示出對其應(yīng)用二維重疊雙正交變換的塊變換部分并對其應(yīng)用塊變換部 分的2X2哈達瑪算子部分的二維數(shù)據(jù)和相應(yīng)的并行化分量矢量中的像素分量的 圖示。圖14是示出二維重疊雙正交變換的重疊算子的圖示。 圖15是示出實現(xiàn)并行化二維重疊雙正交變換的重疊算子的過程的流程圖。 圖16是示出實現(xiàn)并行化二維重疊雙正交變換的塊變換的過程的流程圖。 圖17是用于實現(xiàn)圖3和4的代表性編碼器/解碼器的并行化SIMD形式的合適 的計算環(huán)境的框圖。詳細描述以下描述涉及提供重疊變換的更快實現(xiàn)作為并行化或SIMD運算的編碼和解 碼技術(shù)[以下稱為"變換并行化技術(shù)"]。以下描述在數(shù)字媒體壓縮系統(tǒng)或編解碼器的上下文中描述了該技術(shù)的一個示例實現(xiàn)。該數(shù)字媒體系統(tǒng)以壓縮形式對數(shù)字媒體 數(shù)據(jù)進行編碼以便傳輸或存儲,并解碼該數(shù)據(jù)以供回放或其它處理。出于說明的目 的,包含這一變換并行化技術(shù)的該示例性壓縮系統(tǒng)是圖像或視頻壓縮系統(tǒng)。或者, 該技術(shù)也可被結(jié)合到用于其它2D數(shù)據(jù)的壓縮系統(tǒng)或編解碼器中。變換并行化技術(shù) 不要求數(shù)字媒體壓縮系統(tǒng)以特定的編碼格式來編碼壓縮的數(shù)字媒體數(shù)據(jù)。1.編碼器/解碼器圖3和4是在代表性2維(2D)數(shù)據(jù)編碼器300和解碼器400中采用的過程 的一般化圖示。該圖呈現(xiàn)了結(jié)合了實現(xiàn)變換并行化技術(shù)的2D數(shù)據(jù)編碼器和解碼器 的壓縮系統(tǒng)的一般化或簡化的圖示。在使用變換并行化技術(shù)的替換壓縮系統(tǒng)中,可 使用比本代表性編碼器和解碼器中所示的更多或更少的過程來進行2D數(shù)據(jù)壓縮。 例如,某些編碼器/解碼器還可包括色彩轉(zhuǎn)換、色彩格式、可縮放編碼、無損編碼、 宏塊模式等等。取決于量化,壓縮系統(tǒng)(編碼器和解碼器)可提供2D數(shù)據(jù)的無損 和/或有損壓縮,量化可基于從無損到有損變化的量化參數(shù)。2D數(shù)據(jù)編碼器300產(chǎn)生壓縮比特流320,它是作為輸入提供給編碼器的2D 數(shù)據(jù)310的更緊湊表示(對于典型輸入)。例如,2D數(shù)據(jù)輸入可以是圖像、視頻 序列的一幀、或具有兩個維度的其它數(shù)據(jù)。2D數(shù)據(jù)編碼器將輸入數(shù)據(jù)塊化(tile) 330成宏塊,在本代表性編碼器中,宏塊的大小為16X16像素。2D數(shù)據(jù)編碼器還 將每一宏塊塊化為4X4的塊。對塊之間的每一邊緣應(yīng)用"前向重疊"算子340, 之后使用塊變換350來變換每一 4X4的塊。該塊變換350可以是由Srinivasan在 2004年12月17日提交的題為"Reversible Transform For Lossy And Lossless 2-D Data Compression"(用于有損和無損2D數(shù)據(jù)壓縮的可逆變換)的美國專利申請 第11/015,707號中所描述的可逆的、無縮放的2D變換,該專利申請的公開內(nèi)容通 過引用結(jié)合于此。重疊算子340可以是其公開內(nèi)容通過引用結(jié)合于此的、由Tu等 人在2004年12月17日提交的題為"Reversible Overlap Operator for Efficient Lossless Data Compression"(用于高效無損數(shù)據(jù)壓縮的可逆重疊算子)的美國專 利申請第11/015,148號;以及其公開內(nèi)容通過引用結(jié)合于此的、Tu等人在2005年 1 月 14 日提交的題為"Reversible 2-Dimensional PreVPost-Filter for Lapped Biorthogonal Transform"(用于重疊雙正交變換的可逆2維預/后濾波器)的美國專 利申請第11/035,991號中描述的可逆重疊算子。重疊算子和變換共同實現(xiàn)重疊雙正 交變換?;蛘撸墒褂秒x散余弦變換或其它塊變換和重疊算子。在變換之后,令每一4X4的變換塊的DC系數(shù)360經(jīng)受一類似的處理鏈(塊化、前向重疊、之后是 4X4的塊變換)。所得的DC變換系數(shù)和AC變換系數(shù)被量化370、熵編碼380和 分組化390。解碼器執(zhí)行反過程。在解碼器側(cè),從其各自的分組中提取410變換系數(shù)位, 從中系數(shù)本身被解碼420和解量化430。 DC系數(shù)440通過應(yīng)用反變換來重新生成, 并且DC系數(shù)的平面使用跨DC塊邊緣應(yīng)用的合適的平滑算子來"反重疊"。隨后, 通過向DC系數(shù)應(yīng)用4X4的反變換450來重新生成整個數(shù)據(jù),并從比特流中解碼 AC系數(shù)442。最后,對所得圖像平面中的塊邊緣進行反重疊濾波460。這產(chǎn)生經(jīng) 重構(gòu)的2D數(shù)據(jù)輸出。在一個示例性實現(xiàn)中,編碼器300 (圖3)將輸入圖像壓縮成壓縮比特流320 (例如,文件),而解碼器400 (圖4)基于是釆用無損還是有損編碼來重構(gòu)原始 輸入或其近似。編碼過程涉及應(yīng)用以下所討論的前向重疊變換(LT),這是用同 樣在以下更全面描述的可逆2維預/后濾波來實現(xiàn)的。解碼過程涉及應(yīng)用使用可逆2 維預/后濾波的反重疊變換(ILT)。所示的LT和ILT在確切的意義上是彼此的反過程,并且因此可被統(tǒng)稱為可逆 重疊變換。作為一種可逆變換,LT/ILT對可用于無損圖像壓縮。由所示的編碼器300/解碼器400壓縮的輸入數(shù)據(jù)310可以是各種色彩格式(例 如,RGB/YUV 4:4:4、 YUV 4:2:2或YUV 4:2:0彩色圖像格式)的圖像。通常,輸 入圖像總是具有亮度(Y)分量。如果它是RGB/YUV 4:4:4、 YUV 4:2:2或YUV 4:2:0 圖像,則該圖像還具有色度分量,諸如U分量和V分量。圖像的這些單獨的色彩 平面或分量可具有不同的空間分辨率。在例如YUV 4:2:0色彩格式的輸入圖像的情 況下,U和V分量具有Y分量一半的寬度和高度。如上所述,編碼器300將輸入圖像或圖片塊化成宏塊。在一個示例性實現(xiàn)中, 編碼器300將輸入圖像塊化成Y通道中的16X16的宏塊(取決于色彩格式,可以 是U和V通道中的16X16、 16X8或8X8區(qū)域)。每一宏塊色彩平面被塊化成4 X4的區(qū)域或塊。因此,宏塊按以下對于本示例性編碼器實現(xiàn)的方式由各種色彩格 式組成1. 對于灰度圖像,每一宏塊包含16個4X4的亮度(Y)塊。2. 對于YUV 4:2:0格式彩色圖像,每一宏塊包含16個4X4的Y塊,并 且4個各自為4X4的色度(U和V)塊。3. 對于YUV 4:2:2格式彩色圖像,每一宏塊包含16個4X4的Y塊,以及8個各自為4X4的色度(U和V)塊。 4.對于RGB或YUV 4:4:4彩色圖像,每一宏塊包含對Y、 U和V通道 中的每一個包含16個塊。2.快速SIMD重疊雙正交變換概述上述代表性編碼器300 (圖3)和解碼器400 (圖4)中的計算上更復雜的運 算之一是重疊雙正交變換。該運算的復雜度影響編碼器和解碼器兩者的性能。在專利申請(Srinivasan于2004年12月17日提交的題為"Reversible Transform For Lossy And Lossless 2-D Data Compression"的美國專利申請第11/015,707號; Tu等人于2004年12月17日提交的題為"Reversible Overlap Operator for Efficient Lossless Data Compression"的美國專利申請第11/015,148號;以及Tu等人于2005 年1月14日提交的題為"Reversible 2-Dimensional Pre-/Post-Filtering For Lapped Biorthogonal Transform"的美國專利申請第11/035,991號)中描述的重疊雙正交變 換的實現(xiàn)被設(shè)計成最小化復雜度。然而,此處所描述的變換并行化通過以SIMD(單 指令、多數(shù)據(jù))或并行指令友好的方式公式化重疊變換運算來實現(xiàn)進一步的加速。 SIMD運算可用于并行地計算多個指令。這一 SIMD指令在各種處理器上都得到支 持,包括來自英特爾的奔騰⑧系列處理器、來自AMD的各種x86兼容處理器、 PowerPC⑧和各種其它DSP (數(shù)字信號處理器)。此處所描述的變換并行化技術(shù)將重疊(或其它)變換重新公式化為大部分是 SIMD友好的一組運算。這是通過重新映射重疊變換的輸入和輸出采樣網(wǎng)格來實現(xiàn) 的。通過這一重新映射,輸入數(shù)據(jù)可被分組成"矢量"或并行單元。采用這一重新 排列,許多重疊變換步驟可作為矢量運算來執(zhí)行。不可矢量化的極少其余運算以串 行的方式在矢量分量上執(zhí)行。盡管該技術(shù)一般可應(yīng)用于重疊變換,但是以下出于說明的目的討論了該技術(shù) 對于代表性編碼器和解碼器的重疊雙正交變換(即,在以上列出的專利申請中詳細 描述的重疊雙正交變換)的一種具體應(yīng)用。該變換并行化技術(shù)重新映射并分組代表 性重疊雙正交變換的輸入采樣網(wǎng)格或點陣,使得每一組數(shù)據(jù)樣本可作為用于實現(xiàn)重 疊變換的許多操作的矢量來對待。在這一特定的重疊雙正交變換示例中,該技術(shù)被 用于公式化4點重疊算子和4點塊變換的SIMD友好形式,但是該技術(shù)也可被推廣 到其它變換長度。此外,該技術(shù)或者可被用于創(chuàng)建其它重疊變換實現(xiàn)的SIMD或并 行指令形式。以下小節(jié)詳細描述了代表性重疊雙正交變換的一維和二維SIMD友好實現(xiàn)。 在一維情況下,兩個元素可被分組在一起成一矢量,并且許多1D重疊變換運算可使用矢量運算來執(zhí)行。在二維情況下,兩個或四個元素可被分組在一起成一矢量, 并且許多重疊變換運算可使用矢量運算來執(zhí)行。這些矢量化技術(shù)同樣適用于前向和反向變換(分別由編碼器和解碼器使用)。2.1—維重疊雙正交變換的SIMD實現(xiàn)參考圖5,考慮被公式化為預濾波器(重疊算子)510和塊變換520的重疊變 換500的一般情況。在所示的示例情況中,塊變換520具有塊大小4,而預濾波器 510也具有重疊大小4。重疊大小被定義為預/后濾波器長度。由此,如果數(shù)據(jù)序列 被標號為xQ, xb x2, x3等,則重疊變換500如下進行-1. 將預濾波器510應(yīng)用于每一輸入數(shù)據(jù)集[X4i+2, X4i+3, x4i+4, X4i+5J;以及2. 將塊變換520應(yīng)用于每一集合[X4i,X4i+i,X4i+2,x4i+3J o在替換實現(xiàn)中,重疊變換可用其它不同的塊變換大小和重疊大小來定義。圖6示出了具有如圖5所示的預濾波器和塊變換公式化的重疊雙正交變換600 的一個更具體示例。重疊雙正交變換600如上所述在代表性編碼器300 (圖3)和 解碼器400 (圖4)中使用,其實現(xiàn)在以下專利申請中更具體地詳述Srinivasan 于2004年12月17日提交的題為"Reversible Transform For Lossy And Lossless 2-D Data Compression"的美國專利申請第11/015,707號;Tu等人于2004年12月17 日提交的題為"Reversible Overlap Operator for Efficient Lossless Data Compression" 的美國專利申請第11/015,148號;以及Tu等人于2005年1月14日提交的題為 "Reversible 2-Dimensional Pre陽/Post-Filtering For Lapped Biorthogonal Transform" 的美國專利申請第11/035,991號。為簡明起見,編碼器300的預濾波器和塊變換在 圖6中描述。用于解碼器的反重疊變換的后濾波器和反塊變換是前向重疊變換600 的反過程。如圖6所示,預濾波器具有作為一組蝴蝶或提升步運算的實現(xiàn),這些運 算被組織為第一蝴蝶級610、旋轉(zhuǎn)/縮放620、以及第二蝴蝶級630。塊變換具有作 為第三蝴蝶級640和旋轉(zhuǎn)650的實現(xiàn)。并行化用于使用SIMD指令的實現(xiàn)的運算的一種方式是通過簡單地將跨塊的 相同索引的信號分量分組在一起。換言之,對某一j,形式為x4i+j的分量被分組在 一起。對于此處所考慮的具體重疊雙正交變換600,2分量的矢量可以為[xw x18]、[xI5 x19]、 [x16 x20]、和[xn x21〗。這一分組對于預濾波器能起很好的作用。然而,對于塊變換,矢量[x" x18〗和[X,6 X2。]跨越了三個而不是兩個塊。這意味著這一分組不能用于實現(xiàn)對重疊變 換的整體加速。在變換級,所需的分組是不同的[X16 X2()]、 [X17 X21]、 [X18 X22] 和[Xl9 X23]。比較用于預濾波器和塊變換的所需分組,可以看到有兩個矢量對兩個分組是共同的(即,[x16 X20]和[xn x21])。然而,其余兩個矢量在各分組之間不同,這將必須在預濾波器和塊變換之間對矢量進行重新分組。這并不是合乎需要的解決 方案。另一方面,該變換并行化技術(shù)提出了一種并行化1D重疊變換的替換方式。采用該替換技術(shù),在重疊變換之前或之后在某些分量之間添加了一置換,使得將分量分組成SIMD指令矢量對于預濾波器和塊變換級兩者是共同的。圖7示出了圖6的重疊雙正交變換的經(jīng)修改的實現(xiàn)700,它是根據(jù)此處所描述 的變換并行化技術(shù)來并行化的。該經(jīng)修改的重疊變換實現(xiàn)700在功能上等同于圖6 的重疊雙正交變換實現(xiàn)600,但是包括第一級中的分量的扭轉(zhuǎn)或置換710,以及略 微不同的蝴蝶網(wǎng)絡(luò)720、 740和750。這些蝴蝶級可與2分量矢量并行地實現(xiàn),因 為對于這些級,奇分量僅與奇分量相互作用,而偶分量僅與偶分量相互作用。此外, 用于奇分量和偶分量的運算在這些級中是相同的。由此,對相鄰的奇和偶分量的分 組實現(xiàn)了并行實現(xiàn)。盡管如此,該重疊雙正交變換的SIMD實現(xiàn)700的某些級仍是不可并行化的。 預濾波器中的旋轉(zhuǎn)/縮放步730和塊變換中的旋轉(zhuǎn)步760被串行地實現(xiàn)。圖9描繪了使用如圖8所示的數(shù)據(jù)變?yōu)?分量矢量的排列的重疊雙正交變換700 (圖7)的一個實現(xiàn)900。在圖9中,數(shù)據(jù)路徑的值為2分量矢量,并且加粗箭頭是矢量內(nèi)運算(即,同一矢量的分量之間的運算)。圖8所示的矢量分組用于輸入,這基于以下分量一矢量映射規(guī)則 v2i = [x4i x4i+1]v2i+l = [X4i+3 X4i+2]該映射將原始信號分組成2分量矢量,對于許多重疊變換步驟向這些矢量應(yīng) 用SIMD算術(shù),而對于其余的步驟應(yīng)用串行處理。二維重疊雙正交變換(2DLBT)可使用剛才描述的一維重疊雙正交變換(ID LBT)來實現(xiàn)。在這一實現(xiàn)中,將1DLBT應(yīng)用于圖像的每一行,接著將ID LBT 應(yīng)用于每一列(或相反)。在這一情況下,可使用兩種矢量化技術(shù)1. 在第一種矢量化中,可對水平和垂直變換使用1DLBT中使用的相同 的分組(如在以上2.1節(jié)中描述的)。2. 在第二種矢量化中,可通過將多行的相同索引的分量分組在一起同時 沿行實現(xiàn)1DLBT,并將多列的相同索引的分量分組在一起同時沿列 實現(xiàn)1DLBT來形成矢量。在這兩種技術(shù)中,矢量化在行和列變換之間改變。這導致在變換計算期間從 一種矢量化格式到另一種的重新映射的附加成本,這可能是昂貴的。不涉及變換級 之間的重新打亂的一種替換矢量化技術(shù)將在下文描述。此外,以上列出的專利申請(即,Srinivasan于2004年12月17日提交的題 為"Reversible Transform For Lossy And Lossless 2-D Data Compression"的美國專 利申請第11/015,707號;以及Tu等人于2005年1月14日提交的題為"Reversible 2-DimensionaI Pre-/Post-Filtering For Lapped Biorthogonal Transform"的美國專禾ll申 請第11/035,991號)中描述的2DLBT在兩個維度中直接實現(xiàn)LBT。該變換不能被 分割成兩個1D運算。對于這一直接2D LBT實現(xiàn)(以及對于可分割的2D實現(xiàn))的并行化SIMB形 式,首先如圖10所示地應(yīng)用雙向扭轉(zhuǎn)重新映射1000-1001。區(qū)域1010內(nèi)的每一4 X4像素塊被映射1000-1001到區(qū)域1020內(nèi)的四個4分量矢量,使得每一矢量包 含來自4X4塊的2X2子塊的像素。矢量內(nèi)的分量的排序遵循以上描述的ID重新 映射(圖7所示的置換710)的二維擴展。圖11示出了用于所得的區(qū)域1020中的 一組4分量矢量的矢量表示法1100。如此形成的4分量矢量具有以下性質(zhì)在直接2D LBT的重疊算子級或塊變換 級中向其應(yīng)用哈達瑪變換的4個像素的組在矢量內(nèi)的同一位置中對齊。這對于重疊 算子在圖12中示出,而對于光子核變換在圖13中示出,并在下文中詳細解釋。2.2.1 二維重疊雙正交變換的SIMD實現(xiàn)中重疊算子的并行實現(xiàn) 再次參考圖5,跨塊邊界來應(yīng)用重疊變換中的重疊算子(預濾波器510)。這 可在塊變換520之前或之后完成。在以上列出的專利申請(即,Srinivasan于2004年12月17日提交的題為"Reversible Transform For Lossy And Lossless 2-D Data Compression"的美國專禾ll 申請第11/015,707號;以及Tu等人于2005年1月14日提交的題為"Reversible 2-Dimensional Pre-/Post-Filtering For Lapped Biorthogonal Transform"的美國專禾ll申 請第11/035,991號)中描述的2DLBT實現(xiàn)的情況下,在編碼器側(cè)在塊變換之前應(yīng) 用重疊算子。同樣,在解碼器側(cè)在反塊變換之后應(yīng)用重疊算子。不考慮圖像的邊界 處的特殊情況,重疊算子被應(yīng)用于跨4個4X4的塊的4X4區(qū)域。參考圖14,該2DLBT實現(xiàn)的重疊算子1400由應(yīng)用于對稱地位于網(wǎng)格中的像 素象限的兩個2X2哈達瑪變換1410、之后的旋轉(zhuǎn)和縮放級1420和1430、之后的 應(yīng)用于同一像素象限的另一 2X2哈達瑪變換1440構(gòu)成。運算細節(jié)由Tu等人于 2005年1月14日提交的題為"Reversible 2-Dimensional PreVPost-Filtering For Lapped Biorthogonal Transform"的美國專利申請第11/035,991號來提供??扇绫緦?利申請中所描述地在2DLBT公式化中使用進一步的簡化,其中縮放級和2X2哈 達瑪級之一略去某些運算。對于該重疊算子的并行化SIMD形式,首先應(yīng)用如上在2.2節(jié)中描述并在圖 10和11中示出的相同矢量化過程。參考圖15,基于該矢量化數(shù)據(jù)的重疊算子的并 行化SIMD形式根據(jù)以下過程1500來實現(xiàn)1. 如在動作1510處所指示的,將圖像或其它二維數(shù)據(jù)工作區(qū)域矢量化成如 圖10和11所示的4分量矢量。2. 對整個圖像上跨4個4X4的塊1200的每一 4X4的重疊區(qū)域執(zhí)行動作 1520-1570中的重疊運算,如圖12所示。對于此運算,使用利用圖ll所示的矢量 表示法標識為[V3 v6 v9 V,2]的矢量。對所有這些區(qū)域重復這些步驟。3. 首先,在動作1530處在這4個矢量之中執(zhí)行2X2哈達瑪運算。4. 對于下一動作1540,在矢量V3和vu之間執(zhí)行縮放運算(在以下專利申請 中詳細描述Tu等人于2004年12月17日提交的題為"Reversible Overlap Operator for Efficient Lossless Data Compression"的美國專利申請第11/015,148號;以及Tu 等人于2005年1月14日提交的題為"Reversible 2-Dimensional Pre-/Post-Filtering For Lapped Biorthogonal Transform"的美國專利申請第11/035,991號)。5. 在矢量V6、 V9和、2的分量內(nèi)執(zhí)行旋轉(zhuǎn)1550。這些大多是大部分沒有利用數(shù)據(jù)并行性的串行運算。6. 最后,在動作1560處在重疊區(qū)域的四個矢量[V3 v6 v9 v,2]之中再次執(zhí)行2 X2哈達瑪運算。在過程1500中,以上運算是對所指示的矢量原地執(zhí)行的。此外,在實踐中,可取消以上步驟3和4之間的某些,這導致進一步的簡化,如在以下專利申請中詳 細描述的Tu等人于2004年12月17日提交的題為"Reversible Overl叩Operator for Efficient Lossless Data Compression"的美國專利申請第11/015,148號;以及Tu等 人于2005年1月14日提交的題為"Reversible 2-DimensionalPre-/Post-Filtering For Lapped Biorthogonal Transform"的美國專利申請第11/035,991號。2.2.2 二維重疊雙正交變換的SIMD實現(xiàn)中塊變換的并行實現(xiàn) 在向塊內(nèi)的所有2X2子塊應(yīng)用重疊算子之后,4X4的塊1300 (圖13)準備好進行塊變換。塊變換運算保持相同的矢量化一因此不必在重疊和塊變換運算之間打亂數(shù)據(jù)。參考圖16,根據(jù)以下過程1600執(zhí)行塊變換的并行實現(xiàn)。該過程以仍由用對于 圖10和11中所示的重疊算子的動作1510 (圖16)矢量化的圖像或工作區(qū)域開始。 另一方面,在向2D數(shù)據(jù)單獨應(yīng)用塊變換而沒有首先應(yīng)用重疊算子過程1500的情 況下,過程1600改為通過執(zhí)行動作1510來提供相同的矢量化而開始。1. 在動作1610-1640的循環(huán)中,向圖像的每一4X4的塊1300應(yīng)用變換。例如,圖13所示的矢量[V()V, V2V3訴于左上塊。對所有塊重復這些步驟。2. 在第一動作1620處,在這4個矢量之中執(zhí)行2X2哈達瑪運算。3. 在下一動作1630處,在矢量Vo,V!,V2和V3的分量內(nèi)執(zhí)行旋轉(zhuǎn)。這些大多是大部分沒有利用數(shù)據(jù)并行性的串行運算。所執(zhí)行的旋轉(zhuǎn)如在以 下專利申請中詳細描述的Srinivasan于2004年12月17日提交的題 為 "Reversible Transform For Lossy And Lossless 2-D Data Compression"的美國專利申請第11/015,707號;以及Tu等人于2005 年1月14日提交的題為"Reversible 2-Dimensional Pre-/Post-Filtering For Lapped Biorthogonal Transform"的美國專利申請第11/035,991號。 在SIMD重疊變換的替換實現(xiàn)中,應(yīng)用于塊的矢量的變換運算可以是其它類 似DCT的變換的那些變換運算(而非以上列出的專利申請中所描述的可逆變換)。2.3 擴展對于重疊算子1500和變換1600過程兩者,四路的2X2哈達瑪變換是基本且重復的運算。釆用由如圖10和ll所示的矢量化來排序的數(shù)據(jù)分量,該2X2哈達瑪作為對這些矢量操作的SIMD指令來容易地執(zhí)行。此外,對于重疊算子,縮放運 算同樣可作為對這些矢量操作的SIMD指令來執(zhí)行。旋轉(zhuǎn)(動作1550、 1630)是 可部分并行化的。這是因為所涉及的某些旋轉(zhuǎn)是對4分量矢量內(nèi)的兩對數(shù)據(jù)點執(zhí)行 的相同的1D運算。這些旋轉(zhuǎn)也可用乘法和位移運算來并行化。由于矢量中的數(shù)據(jù)分量的重排,變換的最終輸出也被重排。這通常不是問題, 因為掃描變換以在壓縮比特流中將系數(shù)重排為用于編碼器的輸出的列表。在并行實 現(xiàn)中,掃描數(shù)組考慮了重排,并且對于算法復雜度沒有負面影響。同樣的并行化技術(shù)也適用于反重疊雙正交變換,除了塊變換和重疊算子的順 序被反轉(zhuǎn)之外,并且相應(yīng)過程中的動作1530-1560和1620-1630的順序被反轉(zhuǎn)。重 排的掃描模式用于填充輸入數(shù)據(jù)數(shù)組,并且之后輸出以與圖IO所示的映射相反的 方式來重新映射。該并行化技術(shù)還適用于使用其它形式的重疊正交/雙正交變換的替換實現(xiàn)。如 在塊變換過程1600的討論中所指出的,并行化也可用于塊變換本身(即,沒有重 疊算子)。除4之外的其它變換和重疊大小以及大于2的維度也用并行化邏輯的直 接擴展來適應(yīng)。矢量化的成本通過在色彩轉(zhuǎn)換級期間在編碼器上對扭轉(zhuǎn)點陣執(zhí)行重新映射, 并在解碼器上從扭轉(zhuǎn)點陣重新映射來最小化。解碼器中的色彩轉(zhuǎn)換一般是串行實現(xiàn) 的,這是由于以下若干原因(i)多種色彩格式,(ii)由于許多色彩格式的24位像素 邊界而導致的缺少字對齊,(iii)在解碼器側(cè)上執(zhí)行限幅的需求等等。在色彩轉(zhuǎn)換上 以及其上方進行重新映射的附加成本是最小的,并便于使用該并行化技術(shù)來獲得總 體性能改善。此外,當在旋轉(zhuǎn)和/或橫向翻轉(zhuǎn)方向上呈現(xiàn)輸入圖像或當在旋轉(zhuǎn)和/或 橫向翻轉(zhuǎn)方向上期望輸出圖像時,這可在對總體計算復雜度幾乎沒有任何增加的情 況下實現(xiàn)。3.計算環(huán)境上述包含了使用變換并行化技術(shù)實現(xiàn)的重疊雙正交變換的代表性編碼器300 (圖3)和解碼器400 (圖4)可以在其中執(zhí)行數(shù)字媒體信號處理的各種設(shè)備中的 任一種上執(zhí)行,這些設(shè)備包括計算機;圖像和視頻記錄、傳輸和接收設(shè)備;便攜式 視頻播放器;視頻會議;以及其它示例。數(shù)字媒體編碼技術(shù)可以用硬件電路以及諸 如在圖17所示的計算機或其它計算環(huán)境中執(zhí)行的數(shù)字媒體處理軟件來實現(xiàn)。圖17示出了其中可實現(xiàn)所描述的實施例的合適的計算環(huán)境(1700)的一般化 的示例。計算環(huán)境(1700)并不對本發(fā)明使用范圍或功能提出任何局限,因為本發(fā) 明可在不同的通用或?qū)S糜嬎悱h(huán)境中實現(xiàn)。參考圖17,計算環(huán)境(1700)包括至少一個處理單元(1710)和存儲器(1720)。 在圖17中,這一最基本的配置(1730)被包括在虛線內(nèi)。處理單元(1710)執(zhí)行 計算機可執(zhí)行指令,并且可以是真實或虛擬處理器。在多處理系統(tǒng)中,多個處理單 元執(zhí)行計算機可執(zhí)行指令以提高處理能力。存儲器(1720)可以是易失性存儲器(例 如,寄存器、高速緩存、RAM)、非易失性存儲器(例如,ROM、 EEPROM、閃 存等)或兩者的某種組合。存儲器(1720)儲存實現(xiàn)所描述的數(shù)字媒體編碼/解碼 和變換并行化技術(shù)的軟件(1780)。計算環(huán)境可具有附加特征。例如,計算環(huán)境(1700)包括存儲(1740)、 一 個或多個輸入設(shè)備(1750)、 一個或多個輸出設(shè)備(1760)以及一個或多個通信連 接(1770)。諸如總線、控制器或網(wǎng)絡(luò)等互連機制(未示出)將計算環(huán)境(1700) 的各組件互連。通常,操作系統(tǒng)軟件(未示出)為在計算環(huán)境(1700)中執(zhí)行的其 它軟件提供了操作環(huán)境,并協(xié)調(diào)計算環(huán)境(1700)的各組件的活動。存儲(1740)可以是可移動或不可移動的,并包括磁盤、磁帶或磁帶盒、 CD-ROM、 CD-RW、 DVD或可用于儲存信息并可在計算環(huán)境(1700)內(nèi)訪問的任 何其它介質(zhì)。存儲(1740)儲存用于實現(xiàn)所描述的使用變換并行化技術(shù)的編碼器/ 解碼器的軟件(1780)的指令。輸入設(shè)備(1750)可以是諸如鍵盤、鼠標、筆或跟蹤球等觸摸輸入設(shè)備、語 音輸入設(shè)備、掃描設(shè)備或向計算環(huán)境(1700)提供輸入的另一設(shè)備。對于音頻,輸 入設(shè)備(1750)可以是聲卡或接受模擬或數(shù)字形式的音頻輸入的類似設(shè)備、或?qū)⒁?頻樣本提供給計算環(huán)境的CD-ROM讀取器。輸出設(shè)備(1760)可以是顯示器、打 印機、CD刻錄機或提供來自計算環(huán)境(1700)的輸出的另一設(shè)備。通信連接(1770)允許通過通信介質(zhì)與另一計算實體的通信。通信介質(zhì)在己 調(diào)制數(shù)據(jù)信號中傳達諸如計算機可執(zhí)行指令、壓縮的音頻或視頻信息、或其它數(shù)據(jù) 等信息。已調(diào)制數(shù)據(jù)信號是其一個或多個特性以對信號中的信息編碼的方式來設(shè)定 或更改的信號。作為示例而非局限,通信介質(zhì)包括用電、光、RF、紅外、聲學或 其它載體實現(xiàn)的有線或無線技術(shù)。此處的數(shù)字媒體處理技術(shù)可在計算機可讀介質(zhì)的一般上下文中描述。計算機 可讀介質(zhì)可以是可在計算環(huán)境內(nèi)訪問的任何可用介質(zhì)。作為示例而非局限,對于計算環(huán)境(1700),計算機可讀介質(zhì)包括存儲器(1720)、存儲(1740)、通信介質(zhì) 和以上任一種的組合。此處的數(shù)字媒體處理技術(shù)可在諸如程序模塊中所包括的、在目標真實或虛擬 處理器上的計算環(huán)境中執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述。 一般而言, 程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、庫、類、組件、 數(shù)據(jù)結(jié)構(gòu)等。程序模塊的功能可如各種實施例中所需地被組合或在程序模塊之間拆 分。用于程序模塊的計算機可執(zhí)行指令可在本地或分布式計算環(huán)境中執(zhí)行。出于表示的目的,詳細描述使用了如"確定"、"生成"、"調(diào)整"和"應(yīng) 用"等術(shù)語來描述計算環(huán)境中的計算機操作。這些術(shù)語是對由計算機執(zhí)行的操作的 高級抽象,并且不應(yīng)與人類執(zhí)行的動作混淆。對應(yīng)于這些術(shù)語的實際計算機操作可 取決于實現(xiàn)而變化。鑒于此處描述的主題的許多可能的變型,要求保護落入所附權(quán)利要求書及其 等效技術(shù)范圍內(nèi)的所有這些實施例作為本發(fā)明。
權(quán)利要求
1.一種編碼數(shù)字媒體數(shù)據(jù)的方法,所述方法包括將輸入數(shù)字媒體數(shù)據(jù)(1010)的塊的分量重新映射(710、1000、1001)成一組矢量(1020、800),對所述矢量,可在單指令、多數(shù)據(jù)的基礎(chǔ)上跨塊的分量應(yīng)用一變換的各運算(720、730、740、750、760、1410、1420、1430、1440);向所述數(shù)字媒體數(shù)據(jù)的塊應(yīng)用所述變換(350),以產(chǎn)生用于相應(yīng)塊的一組變換系數(shù)(360、362),其中應(yīng)用所述變換包括在單指令、多數(shù)據(jù)的基礎(chǔ)上對塊的分量的矢量執(zhí)行至少一個運算;以及在壓縮比特流中編碼(380)所述變換系數(shù)。
2. 如權(quán)利要求l所述的方法,其特征在于,所述變換是包括重疊濾波器和塊 變換的重疊雙正交變換,所述塊變換被應(yīng)用于所述輸入數(shù)字媒體數(shù)據(jù)的塊,而所述 重疊濾波器被應(yīng)用于與相鄰塊重疊的重疊區(qū)域;并且其中所述重新映射將分量分組成矢量,對所述矢量,可在單指令、多數(shù)據(jù)的 基礎(chǔ)上跨分量應(yīng)用所述重疊濾波器的至少一個運算以及所述塊變換的至少一個運 算;以及其中所述應(yīng)用所述變換包括在單指令、多數(shù)據(jù)的基礎(chǔ)上對所述矢量應(yīng)用所述 重疊濾波器的所述至少一個運算和所述塊變換的所述至少一個運算。
3. 如權(quán)利要求2所述的方法,其特征在于,所述重疊濾波器的至少一個運算 和所述塊變換的至少一個運算各自包括2X2的哈達瑪變換。
4. 如權(quán)利要求2所述的方法,其特征在于,所述重疊濾波器和所述塊變換各 自包括在串行指令基礎(chǔ)上應(yīng)用于所述分量的旋轉(zhuǎn)運算。
5. 如權(quán)利要求2所述的方法,其特征在于,所述矢量是4分量矢量。
6. 如權(quán)利要求1所述的方法,其特征在于,所述變換是包括重疊濾波器和塊 變換的一維重疊變換,所述塊變換被應(yīng)用于所述輸入數(shù)字媒體數(shù)據(jù)的塊,而所述重 疊濾波器被應(yīng)用于與相鄰塊重疊的重疊區(qū)域;并且其中所述重新映射將分量分組成矢量,對所述矢量,可在單指令、多數(shù)據(jù)的 基礎(chǔ)上跨所述分量應(yīng)用所述重疊濾波器的至少一個運算和所述塊變換的至少一個 運算;以及其中所述應(yīng)用變換包括在單指令、多數(shù)據(jù)的基礎(chǔ)上對所述矢量應(yīng)用所述重疊濾波器的所述至少一個運算和所述塊變換的所述至少一個運算。
7. 如權(quán)利要求6所述的方法,其特征在于,所述重疊濾波器的至少一個運算和所述塊變換的至少一個運算各自包括一蝴蝶級。
8. 如權(quán)利要求6所述的方法,其特征在于,所述重疊濾波器和所述塊變換各 自包括在串行指令的基礎(chǔ)上應(yīng)用于所述分量的旋轉(zhuǎn)運算。
9. 如權(quán)利要求6所述的方法,其特征在于,所述矢量是2分量矢量。
10. 如權(quán)利要求6所述的方法,其特征在于,所述數(shù)字媒體數(shù)據(jù)是二維數(shù)據(jù), 并且所述變換是一維變換,所述方法還包括對所述二維媒體數(shù)據(jù)的各行執(zhí)行所述重新映射并應(yīng)用所述變換;以及對所述二維媒體數(shù)據(jù)的各列執(zhí)行所述重新映射并應(yīng)用所述變換。
11. 一種解碼根據(jù)如權(quán)利要求1所述的方法編碼的數(shù)字媒體數(shù)據(jù)的方法,所述解碼方法還包括解碼來自所述壓縮比特流的變換系數(shù);將所解碼的變換系數(shù)排序為一矢量排列,對所述矢量,可在單指令、多數(shù)據(jù)的基礎(chǔ)上跨所述變換系數(shù)應(yīng)用所述變換的反過程的運算;向所解碼的變換系數(shù)的塊應(yīng)用所述變換的反過程以重構(gòu)所述數(shù)字媒體數(shù)據(jù)按 塊的表示,其中應(yīng)用所述變換包括在單指令、多數(shù)據(jù)的基礎(chǔ)上對所述變換系數(shù)的矢 量執(zhí)行至少一個運算;以及將所述矢量的分量重新映射到所述數(shù)字媒體數(shù)據(jù)的初始排列。
12. 至少一種承載根據(jù)如權(quán)利要求1所述的方法編碼的壓縮比特流的計算機 可讀記錄介質(zhì)。
13. —種數(shù)字媒體編碼器和/或解碼器,包括用于儲存要被編碼和/或解碼的數(shù)字媒體數(shù)據(jù)(310、 320)的數(shù)據(jù)存儲緩沖器; 處理器(1710),它被編程為將所述數(shù)字媒體數(shù)據(jù)的塊(1010)的元素排序為一組矢量/從一組矢量排 序所述數(shù)字媒體數(shù)據(jù)的塊的元素(800、 1020),對所述矢量,可在單指令、 多數(shù)據(jù)的基礎(chǔ)上跨所述塊的分量應(yīng)用一變換的至少某些運算(720、 730、 740、 750、 760、 1410、 1420、 1430、 1440);以及向所述數(shù)字媒體數(shù)據(jù)的塊應(yīng)用所述變換(350),其中應(yīng)用所述變換包括 在單指令、多數(shù)據(jù)的基礎(chǔ)上對所述塊的矢量執(zhí)行所述至少某些運算;以及將所述數(shù)字媒體數(shù)據(jù)編碼(380)到壓縮比特流/從壓縮比特流解碼(420)所述數(shù)字媒體數(shù)據(jù)。
14. 如權(quán)利要求13所述的數(shù)字媒體編碼器和/或解碼器,其特征在于,所述變換是具有應(yīng)用于所述數(shù)字媒體數(shù)據(jù)的相鄰塊的塊變換以及應(yīng)用于跨所述相鄰塊的重疊區(qū)域的重疊濾波器的重疊雙正交變換,其中所述處理器將所述塊的元素排序成 矢量,對所述矢量,可在單指令、多數(shù)據(jù)的基礎(chǔ)上應(yīng)用所述重疊濾波器和所述變換 兩者的至少某些運算。
15. 如權(quán)利要求14所述的數(shù)字媒體編碼器和/或解碼器,其中所述重疊雙正交 變換是一維的,并且其中所述重疊濾波器和所述塊變換各自包括其運算在單指令、 多數(shù)據(jù)的基礎(chǔ)上被應(yīng)用于所述矢量的蝴蝶級。
16. 如權(quán)利要求14所述的數(shù)字媒體編碼器和/或解碼器,其特征在于,所述重 疊雙正交變換是二維的,并且其中所述重疊濾波器和所述塊變換各自包括其運算在 單指令、多數(shù)據(jù)的基礎(chǔ)上被應(yīng)用于所述矢量的2X2的哈達瑪變換。
17. 如權(quán)利要求14所述的數(shù)字媒體編碼器和/或解碼器,其特征在于,所述處 理器還被編程為在所述數(shù)字媒體數(shù)據(jù)在各色彩格式之間的色彩轉(zhuǎn)換的階段期間執(zhí) 行所述元素排序。
18. 至少一種其上承載用于執(zhí)行一種處理數(shù)字媒體數(shù)據(jù)的方法的計算機可執(zhí) 行數(shù)字媒體處理程序的計算機可讀記錄介質(zhì),所述方法包括將數(shù)字媒體數(shù)據(jù)(1010)的塊的分量重新映射(710、 1000、 1001)成一組矢 量(1020、 800),對所述矢量,可在單指令、多數(shù)據(jù)的基礎(chǔ)上跨塊的分量應(yīng)用一 變換的各運算(720、 730、 740、 750、 760、 1410、 1420、 1430、 1440);向所述數(shù)字媒體數(shù)據(jù)的塊應(yīng)用所述變換(350),以產(chǎn)生用于相應(yīng)塊的一組變 換系數(shù)(360、 362),其中應(yīng)用所述變換包括在單指令、多數(shù)據(jù)的基礎(chǔ)上對塊的分 量的矢量執(zhí)行至少某些運算;以及將所述數(shù)字媒體數(shù)據(jù)編碼(380)到壓縮比特流/從壓縮比特流解碼(420)所 述數(shù)字媒體數(shù)據(jù)。
19. 如權(quán)利要求18所述的至少一種計算機可讀記錄介質(zhì),其特征在于,所述 變換是包括重疊濾波器和塊變換的重疊雙正交變換,并且所述應(yīng)用變換包括在單指 令、多數(shù)據(jù)的基礎(chǔ)上對所述矢量執(zhí)行所述重疊濾波器和所述塊變換兩者的至少某些運算。
20. 如權(quán)利要求19所述的至少一種計算機可讀記錄介質(zhì),其特征在于,所述 應(yīng)用變換包括在串行的基礎(chǔ)上執(zhí)行所述重疊濾波器和塊變換兩者的至少某些旋轉(zhuǎn)運算
全文摘要
一種基于塊變換的數(shù)字媒體編解碼器通過將數(shù)字媒體數(shù)據(jù)的分量重新映射成可對其在并行或單指令、多數(shù)據(jù)(SIMD)的基礎(chǔ)上執(zhí)行變換的許多運算的矢量或并行單元來實現(xiàn)更快的性能。在一維重疊雙正交變換的情況下,數(shù)字媒體數(shù)據(jù)分量被重新映射成可對其在SIMD基礎(chǔ)上執(zhí)行重疊預/后濾波器和塊變換部分兩者的蝴蝶級的矢量。在二維重疊雙正交變換的情況下,數(shù)字媒體數(shù)據(jù)分量被重新映射成可對其在SIMD的基礎(chǔ)上執(zhí)行重疊預/后濾波器和塊變換兩者的哈達瑪算子的矢量。
文檔編號G06K9/36GK101243460SQ200680029306
公開日2008年8月13日 申請日期2006年8月3日 優(yōu)先權(quán)日2005年8月12日
發(fā)明者C·涂, P·肖, S·斯里尼瓦杉 申請人:微軟公司