自適應係數掃描次序的製作方法
2023-06-01 09:02:21 4
專利名稱:自適應係數掃描次序的製作方法
技術領域:
本發明大致涉及基於塊變換的數字媒體(例如,視頻和圖像)壓縮。
背景技術:
基於塊變換的編碼概述轉換編碼是在許多音頻、圖像和視頻壓縮系統中使用的壓縮技術。通常未經壓縮的數字圖像和視頻被描繪或捕捉為以二維(2D)柵格排列的圖像或視頻幀內的位置的圖形元素或顏色的樣本。這就稱之為圖像或視頻的空間域表示。例如,圖像的典型格式包括以柵格形式排列的24比特彩色圖形的樣本流。每個樣本都是在諸如RGB、YIQ之類的彩色空間內以柵格形式在像素單元處的多個代表彩色的分量。各類圖像和視頻系統可以使用各種不同的彩色、空間和時間解析度進行樣本。類似地,數字音頻通常被代表作為時間樣本的音頻信號。例如,典型的音頻格式包括以一定的時間間隔所獲的音頻信號的16比特振幅樣本流。
未經壓縮的數字音頻、圖像和視頻信號會佔據大量的存儲和傳輸能力。變換編碼通過將信號的空間域表示變換成頻率域表示,隨後減少變換域表示的某些通常不易感知的頻率成分的解析度,從而縮減了數字音頻、圖像和視頻的大小。這與在空間域內降低圖像或視頻的顏色或空間解析度或者在時域內降低音頻解析度相比,通常產生數位訊號的更加不易察覺劣化。
更具體地,圖1中示出的典型基於塊變換的編碼/解碼器100將未經壓縮的數字圖像像素分為固定大小的二維塊(X1,...,Xn),每個塊都可與其他的塊交疊。將進行空間-頻率分析的線性變換120-121應用到每個塊上,將塊內的空間樣本轉換成通常代表了塊間隔上對應於頻帶中數位訊號強度的一組頻率(或變換)係數。為了進行壓縮,變換係數可被選擇性地量化130(即通過諸如捨去係數值的最低有效比特或者將高解析度數組的值映射到低解析度之類的方法降低解析度),並且可信息熵編碼或可變長度編碼130為壓縮數據流。解碼時,變換係數將被逆變換170-171以近似地重建原始的顏色/空間樣本的圖像/視頻信號(重建塊 )。
可以將塊變換120-121定義成大小為N的矢量x上的數學操作。最通常情況下,該操作是線性乘法,產生變換域輸出y=Mx,其中M是變換矩陣。當輸入數據是任意長度時,它就被分割為大小為N的多個矢量並且將塊變換應用到每個分段上。為了數據壓縮,選擇可逆的塊變換。換句話說,矩陣M是可逆的。在乘法維度上(例如對圖像和視頻),通常以分開的操作實現塊變換。沿著數據的每個維度(即行和列)分別應用矩陣乘法。
為了壓縮,變換係數(矢量y的分量)將被選擇性地量化(即通過諸如忽略係數值的最低有效比特或者將高解析度數組的值映射到低解析度之類的方法降低解析度),並且還被信息熵編碼或可變長度編碼成壓縮數據流。
在解碼器150內的解碼時,將如圖1所示將這些操作的逆操作(解量化/信息熵解碼160以及逆塊變換170-171)應用到解碼器150側。當重建所述數據時,將逆矩陣M-1(逆變換170-171)作為乘子應用到變換域數據上。當被應用到變換域數據時,所述逆變換近似地重建原始的時域或空間域數字媒體。
使用的變換可能是簡單的DPCM型預測器/校正器,或者是諸如小波或DCT(離散餘弦變換)之類的更為複雜的結構。通常採用的標準JPEG/MPEG2/MPEG4、JPEG2000以及Window Media Video(WMV)分別使用DCT、小波和集成化的DCT。此外,WMV使用對內部塊和內部幀提供有益於可視化和速率失真以利於的交疊平滑運算符。所述交疊平滑運算符連同塊變換,試圖模仿由H.S.Malvar所著、在ArtechHouse Boston,Ma,1992發表的《Signal Processing with Lapped Transforms》中描述類型的交疊變換。
係數掃描模式包括JPEG、MPEG2、MPEG4以及WMV的許多基於塊變換的編碼解碼器使用遊程長度碼技術編碼對響應於特定塊的量化係數(參見例如在Van NostrandReinhold,New York,1993上發表的由W.B.Rennebaker和J.L.Mitchell所著的《JPEGStill Image Compression Standard》)。按照預定模式通過掃描量化變換係數塊來實現遊程長度碼。一個相關實例是如圖3中示出的連續「Z字形」掃描模式。雖然類似的連續Z字形掃描模式在JPEG和MPEF2/4中廣泛使用,對掃描模式的連續性沒有內在的要求。
遊程長度碼技術使用基本變換的統計信息。通常更大的係數指向「DC」值(通常在左上角表示)出現,而更為少見或更小的係數在遠離DC處出現。例如,通常變換塊的大多數變換係數量化後的值為零。許多掃描模式對更可能具有非零值的係數給予更高的優先級。換句話說,在掃描模式中會更早地掃描這些係數。這樣,非零值的係數就更可能被聚集在一起,其後跟隨著一長串或多長串零值係數。這樣尤其會導致更有效的遊程/級別/末尾編碼,但是其他信息熵編碼的其他形式也可從此重新排序中獲益。
在Lin等人於2004年11月15日提交的美國專利號No.10/989,844的《ScanPatterns For Interlaced Video Content》以及Liang等人也於2004年11月15日提交的美國專利號10/989,594,的《Scan Patterns For Progressive Video Content》中描述了在根據塊大小的一組受限的預定或靜態掃描模式以及所述圖像是隔行掃描的還是逐行掃描格式之間選擇的視頻壓縮系統。
發明內容
現存編碼/解碼器中預定係數掃描模式所遇到的難題我們已經認識到在變換塊內相似係數的模式示出了某種本地數據的相關性。例如在水平和垂直維度上橫跨多個塊的圖像網狀組織區域中,係數如期望出現。但是在具有強烈垂直或水平特性的圖像區域中,沿著相應的軸的係數更可能相似。因此,對網狀組織區域的理想掃描模式(要考慮到減少使用比特數的情況)不總是帶線性特徵的區域的理想模式。
此外,使用交疊變換還會影響掃描模式的優化。當交疊變換作為塊變換之前的預濾波被實現時,該預濾波會加強原始圖像中的不連續性。因此變換係數就示出更大的變化,而且最高的頻率會以更大的強度出現。實際上,通常觀察到最高的2D頻率(該頻率是位於多次變換係數塊右下角處的變換係數)不再具有最低可能。
對圖像塊範圍的給定掃描次序缺乏優化還存在第三個原因。所示原因是基於「DCAC預測」的變換效率。DCAC預測是用於將「DCAC」係數的出現和幅值最小化的編碼工具,而「DCAC」係數在X維度或Y維度上是DC而在另一個維度上是AC。這些是沿著軸分布的係數。對強烈的線性區域,對DCAC係數預測的置信度要高於隨機的網狀組織化的區域。因此,最佳掃描次序不僅依賴於基本數據,它還受到所述基本數據能在多麼好的用DCAC係數預測其影響。
自適應係數掃描次序這些難題將由在此描述的自適應係數掃描排序技術解決,該技術有效地將塊係數的掃描次序和圖像的本地統計信息相匹配。對該技術的描述實現是非常具有計算效率的並且具有最小的等待時間,這對注重速度的圖像和視頻編碼/解碼器來講是一個巨大的優勢。此外,描述的自適應係數掃描次序實現「學習」來自編碼器和解碼器遇到的統計信息;因此在壓縮比特流中不存在附加信令或比特使用以發送從屬信息給解碼器。
在隨後對參考附圖進行的實施例的詳盡描述中,本發明另外的特性和優點將會變得顯而易見。
圖1用現有技術內傳統的基於塊變換的編碼/解碼器的框圖。
圖2也是用現有技術作為結合了圖1中基於塊變換的編碼/解碼器的前處理和後處理操作而實現的空間域交疊變換的框圖。
圖3是示出了用現有技術使用連續Z字形掃描模式的係數掃描次序的示意圖。
圖4是基於利用了可逆交疊運算符的交疊變換的編碼器流程圖。
圖5是基於所述交疊變換的解碼器流程圖。
圖6是用於在圖4中編碼器和圖5中解碼器的係數掃描次序自適應的過程的流程圖。
圖7是示出了用於圖6的自適應係數掃描次序過程的水平係數的原始掃描次序的示意圖。
圖8是示出了用於圖6的自適應係數掃描次序過程的垂直係數原始掃描次序的示意圖。
圖9是示出了在圖6的自適應係數掃描次序程序中使用的,為了跟蹤係數的非零值發生以及相應掃描次序的初始化次序和總的數組的實例示意圖。
圖10是示出了由圖6的過程交換的圖9中數組元素用以重新安排係數的掃描次序的情況實例的示意圖。
圖11是示出了如圖10顯示的元素交換操作之後數組元素的安排結果的示意圖。
圖12是示出了在如圖10顯示的元素交換操作之後,對應於對圖9中數組元素進行如圖11示出的安排的掃描次序結果的示意圖。
圖13是用於以圖4和圖5的改進的空間域交疊變換來實現基於塊變換的編碼/解碼器的合適計算環境的框圖。
具體實施例方式
隨後的描述涉及利用自適應係數掃描次序技術的數字媒體壓縮系統或編碼/解碼器。為了說明的目的,結合了自適應係數掃描次序技術的壓縮系統的一個實施例是一個圖像或視頻壓縮系統。另外,可逆的交疊運算符也可以加入到壓縮系統或編碼/解碼器用於其他的數字媒體或2D數據。自適應係數掃描次序技術不要求數字媒體壓縮系統以特定的編碼格式編碼壓縮的數字媒體。
1.編碼器/解碼器圖4和圖5是基於交疊變換並且使用將在如下進行更全面描述的自適應係數掃描次序,在典型的2維(2D)數據編碼器400和解碼器500中使用的進程的歸納圖。該示意圖代表了在結合了2D數據編碼器和解碼器的壓縮系統內部對此自適應係數掃描次序技術的使用的歸納性或簡化圖示。在結合有自適應係數掃描次序技術的另外編碼器中,可以使用比在典型編碼器和解碼器中示出的更多或更少的進程來進行2D數據的壓縮。例如,某些編碼器/解碼器還可包括顏色轉換、顏色格式、可縮放的編碼、無損編碼、宏模塊模型等等。壓縮系統(編碼器和解碼器)依賴於基於從無損到有損變化的量化參數的量化,可提供2D數據的無損和/或有損編碼。
2D數據編碼器400生成壓縮的比特流420,該比特流是作為編碼器輸入的2D數據410的更緊密表示。例如,所述2D數據輸入可以是圖像、視頻序列的一幀或其他二維數據。所述2D數據編碼器將輸入數據平鋪430為在此典型編碼器中大小為16×16像素的宏模塊。該2D數據編碼器還將每個宏模塊平鋪成4×4的塊432。把「正向交疊」運算符440應用在各塊之間的邊緣處之後使用塊變換450對每個4×4的塊進行變換。塊變換450可以是由Srinivasan於2004年12月17號提交的美國專利《Improved Reversible Transform For Lossy And Lossless 2-D DataCompression》中所描述的可逆的,與比例無關的2D變換,該專利的內容通過引用加入這裡。所述交疊運算符可以是由Tu等人於2004年12月17號提交的美國專利《Reversible Overlap Operator For Efficient Lossless Data Compression》中所描述的可逆交疊運算符,所有在此合併為參考。另外,可以使用離散餘弦變換或其他的塊變換、交疊變換或交疊運算符。變換之後,每個4×4變換塊的DC係數460經歷相似的處理過程(平鋪、正向交疊、隨後是4×4塊變換)。得到的DC變換係數和AC變換係數被量化470、信息熵化編碼的480以及打包490。
解碼器執行相反的過程。在解碼器側,從各自的信息包中通過這些係數自行解碼520和解量化530提取510變換係數比特。通過應用逆變換重新生成DC係數540,並且使用穿過DC塊邊緣的合適平滑運算符使得DC係數的平面被「逆向交疊」。隨後,通過將4×4逆變換550應用到從所述比特流中解碼的DC係數和AC係數542來重新生成完整數據。最終,在得到的圖像平面內的塊邊緣被逆交疊過濾560。這樣就產生了重建的2D數據輸出。
2.自適應係數掃描次序示出的數字媒體壓縮系統的編碼器400(圖4)和解碼器500(圖5)在信息熵化編碼所述變換係數時,利用了一種自適應係數掃描次序技術來進一步增強壓縮效率。所述自適應係數掃描次序根據數字媒體數據的本地統計信息有效地調整塊係數的掃描次序,使得可以通過信息熵編碼480(圖4)更有效的編碼該係數。示出的自適應係數掃描次序技術的實現通過在編碼器和解碼器側都使用相同的確定進程以學習來自在編碼器和解碼器處理媒體數據時遇到的本地統計信息,從而避免了用於發送附帶信息給解碼器的附加的信令或比特使用。此外,該技術示出的實現是非常有計算效率的,這在編碼/解碼數字媒體流時收到最小等待時間的效果(這對實時通信以及相似的應用是有益的)。
該自適應係數掃描次序技術隨後示出的實現具有如下的屬性1.該掃描次序允許越過數字媒體數據(如圖像)變化,其約束條件是,該掃描次序僅在塊內部對其的使用之後才進行改變或更新。
2.用於掃描次序自適應的算法是基於有條件的交換步驟,由此兩個連續的掃描索引在某些條件下翻轉。
圖6示出了根據所述自適應係數掃描次序技術在編碼器400和解碼器500內的一次實現的過程600。過程600在操作610處開始,將係數掃描次序(或者在對例如水平的或垂直係數的多個掃描次序進行自適應變換的情況下的次序)初始化成期望能夠充分執行跨越典型的數據範圍的已知次序。在所述自適應係數掃描次序技術的某些實現下,該原始排序在不同的掃描次序背景下是不同的,諸如用於宏模塊的係數掃描次序示出了主導的「水平」定向相對於「垂直定向」。在某些自適應係數掃描次序的過程的實現中,可將所述定向或掃描的背景從編碼器直接發信號給解碼器。在其他實施例中,可以從先於AC係數發送的DC子帶的定向推斷出所述定向。例如,圖7顯示了用於具有水平定向的4×4塊的原始掃描次序700的實例。圖8顯示了用於具有垂直定向的4×4塊的原始掃描次序800的實例。在此實例中,水平掃描次序700是原始掃描次序也用於無特定定向的塊。
如圖9所示,示出的過程600使用兩個一維數組次序數組910和總值數組920來跟蹤塊係數的本地統計信息。每個掃描次序背景都保有分別的數組集。在所示實現中,該數組(標記為「次序」)包含反向掃描作為其條目,即在上升的掃描次序內係數的索引。過程600在初始化操作610中將該數組初始化到原始掃描過程。圖9示出了存儲在次序數組910內的值,用於圖8中示出的原始垂直定向掃描次序800在初始化時的實例。在此示意圖中,DC係數先於AC係數發送,因此未出現在該數組中。
對每次反向掃描次序數組910,次序600也保持在此示意圖中以「總值」標記的數組,其中過程600計數各自係數出現的發生率。在下一操作620處,過程600將總值數組初始化為任意遞減值。例如,該數組對某個值k用值{k*N,k*(N-1),k*(N-1),...,k}填充。這在圖9表格的下一行中示出。在此實例中的值k被選擇為小的整數,通常在2到4之間。在自適應係數掃描次序過程的某些實現中,對k的選擇可基於在量化470(圖4)中使用的量化參數。
在編碼進程中,過程600根據在次序數組910的元素反映出的掃描次序遍歷當前塊的係數(如示出的「for」循環630、680)。在此遍歷中,該過程更新在總值數組920中反映的係數出現的統計發生率。更具體地,在此圖實現中過程610還根據用於各自係數的非零值的發生率更新所述總值數組。如果此掃描的第n個元素是非零值(即索引次序[n]的變換係數是非零值),那麼隨後如操作640和650所示,過程600將總值的第n個元素加1(即Totals[n]=Totals[n]+1)。
如果在增加之後發現總值[n]>總值[n-1],則意味著當前係數的非零值以比之前係數更高頻率出現。在這一事件中(操作660),過程將交換(exchange)操作670應用到掃描次序上。在交換操作670期間,所述掃描次序和相應的n和n-1的總值如下偽碼所示地進行交換Temp=Order[n]Order[n]=Order[n-1]Order[n-1]=TempTemp=Totals[n]Totals[n]=Totals[n-1]Totals[n-1]=Temp作為交換操作670的結果,由次序[n]索引的係數(先於交換)現在就先於由次序[n-1]索引的係數(先於交換)進行掃描。這是基於為此係數非零值出現的發生率的有效冒泡法。
例如,圖10示出了總值[n]>總值[n-1]的情形。箭頭示出了需要被交換的元素。圖11示出了緊接著該交換的次序和總值數組,而圖12示出了在4×4的塊上相應掃描次序的索引。
在典型的自適應係數掃描次序過程600中,不存在對總值[n-1]和總值[n-2]等等的條件交換。這意味著在掃描次序數組中最多有一個轉移用於每個非零值係數,因此示出的過程600在多個非零值係數中具有複雜的線性次序。對於循環630-680內部的每次塊遍歷,一個係數在所述掃描次序中最多可以移動一個位置。
雖然示出的過程600不能保證每一步驟的優化,但是長時間運行來看基於排序算法邏輯掃描數組接近對固定分配的全局優化。
因為自適應進程僅僅涉及了當前係數(在循環630-680內)和之前掃描元素(可以是也可以不是非零值),並且還因為有條件的切換發生從變換矩陣中編碼係數或係數解碼到變換矩陣之後,所以所述自適應是具有因果關係的。等效地,整個塊可以使用當前掃描次序編碼,隨後可以基於編碼的非零值係數和總值數組修改所述掃描次序。因此,在編碼和解碼的過程中未引入附加的等待時間。
在遍歷了當前塊內所有係數之後,所述過程600檢查是否還存在數字媒體數據塊(例如擬被編碼的圖像)擬在操作690處被編碼/解碼。過程600在經歷了所有塊之後結束。
過程600以周期的時間間隔復位總值數組至初始狀態以便防止算術溢出,同時有利於自適應。在圖像原始編碼解碼器內的一個自適應係數掃描次序過程的實現中,總值數組在8個宏模塊的每個信息塊開始處被復位(宏模塊是輝度像素的16×16數組並且包括相應的色度像素)。總值數組的任何元素的最大值被限制在8(宏模塊)×16(一個宏模塊中特定頻率的係數)×3(在宏模塊中的顏色平面)=384+最大初始化值,它可安全地小於511。對此情況下的總值數組,9比特是足夠的。其他的復位時間間隔可被選擇用於更塊或更慢的自適應,並且復位時間間隔可以是依賴量化參數的。因此,在由操作692示出的總值數組復位時間間隔處,過程600在行進到下一個係數塊之前循環回到初始化總值數組的操作620。
總值和次序數組都以其他(更低頻率)周期間隔被復位到初始化狀態以便於在這些位置的隨機訪問。如操作693所示,過程在每個時間間隔處循環回到總值和次序數組的初始化操作610。例如根據編碼/解碼器實現,所述過程可以在至圖像比特流獨立的編碼部分的每個入口點,或者在視頻序列每副圖像的開始處等等復位到初始化狀態。
3.與冒泡法的比較冒泡法是一種用於數據數組進行排序的傳統計算機過程。冒泡法程序可如下描述。令用X代表N(在不失一般性的情況下假設為數字)。X[i]是第I個元素,其中索引i的範圍從1到N。
冒泡法程序進行N-1次數組遍歷,每次遍歷都由N-1次有條件的交換操作組成。用於升序排列次序的有條件的交換操作如下定義如果i在2和N之間,且若X[i-1]>X[i],就交換數組元素X[i-1]和X[i]在每次遍歷期間,有條件交換操作被應用到從2開始按順序運行到N的索引i上。
在N-1次遍歷的末尾,數組X被排序。也用最少的修改使用相同的過程以降序、按字母順序排序、或者生成排列次序索引。實際上因為其不佳的運行時間,冒泡法不是很常用。
在此描述的自適應係數掃描次序過程600是基於相似的有條件交換操作,即有條件交換操作660和670。自適應係數掃描次序過程600的圖示的實現與冒泡法的不同在於圖示的過程600遵循寬鬆的更新時間進度。特別地,與冒泡法的兩點不同包括1.每個編碼/解碼塊的只有一次數組的遍歷,以及2.在每次遍歷期間,只將有條件的交換操作應用到對應於非零係數的數組元素上。
這些不同幫助確保了過程600的計算複雜度被限定在任何圖像/視頻編碼解碼器的能力範圍內的。與此同時,有條件的交換操作660和670(如同在冒泡法中)在過程600中的使用在統計信息(如在總量數組中反映的)穩定時具有在漸進的意義上保持最優化的優勢。
已經發現示出的自適應係數掃描次序程序600與使用固定掃描表格的信息熵編碼方案相比,其比特率的節省高出2%。另外,該技術可以結合其他複雜的背景模型使用以在若干自適應表格中的一個中選擇,並且還可以結合赫夫曼(Huffman)、比特平面或用於數據遊程長度碼的算術編碼技術一起使用。例如,可連同高通或低通頻帶使用不同的自適應掃描模型。
可使用自適應係數掃描次序技術來編碼更大的變換尺寸,也與多個變換形狀進行編碼(例如在4×8和8×4大小的塊上等等)。類似地,能夠以任何預定的方法橫跨圖像對塊或宏模塊進行掃描。有條件的交換步驟可以使用滯後現象或者用於性能效益的不同規則或者劣化/混亂數據用於權利管理的目的。
4.計算環境以上描述的利用了自適應係數掃描次序技術的編碼/解碼器能在任何可以實現數據媒體信號處理的各種設備上使用,包括計算機、圖像和視頻記錄裝置、發送和接收設備、便攜視頻播放器、視頻會議等等。數字媒體編碼技術可在硬體電路、以及在計算機或其他諸如圖13所示的計算環境內執行的數字媒體處理軟體內實現。
圖13示出了可在其中可實現上述實施例的合適計算環境(1300)的歸納實例。計算環境(1300)並非要對本發明的使用或功能提出任何限制,因為本發明可以在各種通用或專用的計算環境中實現。
參見圖13,計算環境(1300)包括了至少一個處理單元(1310)和存儲器(1320)。在圖13中,最基本的配置(1330)包含在虛線內。處理單元(1310)執行計算機可執行指令並且可以是真實的或虛擬的處理器。在多處理系統中,多個處理單元執行計算機可執行指令以增加處理能力。存儲器(1320)可以是易失性存儲器(例如寄存器、高速緩存、RAM)、非易失性存儲器(例如ROM、EEPROM、快閃記憶體等等)或兩者的組合。存儲器(1320)存儲實現上述編碼器/解碼器和自適應係數掃描次序過程的軟體(1380)。
計算環境還可具有附加特性。例如,計算環境(1300)可包括存儲裝置(1340)、一個或多個輸入設備(1350)、一個或多個輸出設備(1360)以及一個或多個通信連接(1370)。諸如總線、控制器或網絡的互連機制(未示出)互連了計算環境(1300)的各個組件。典型地,作業系統軟體(未示出)提供了用於其他軟體在計算環境(1300)中執行的操作環境,並協調計算機環境(1300)的各組件的活動。
存儲裝置(1340)可以是可移動或不可移動的,並且包括磁碟、磁帶或磁帶盒、CD-ROM、CD-RW、DVD或者其他任何能夠存儲信息並可在計算環境(1300)中被訪問的介質。存儲裝置(1340)存儲用於實現編碼/解碼器和自適應係數掃描次序過程的軟體(1380)的指令。
輸入設備(1350)可以是諸如鍵盤、滑鼠、輸入筆、跟蹤球的觸摸輸入設備或語音輸入設備、掃描設備或其他提供輸入給計算環境(1300)的設備。對於音頻,輸入設備(1350)可以是音效卡或者類似的以模擬或數字形式接受音頻輸入的設備,或者是為計算環境提供音頻採樣的CD-ROM讀取器。輸出設備(1360)可以是顯示器、印表機、揚聲器、CD寫入器或其他提供來自計算環境(1300)輸出的設備。
通信連接(1370)能夠經由通信媒介與其他計算實體進行通信。通信媒介傳送諸如計算機可執行指令、壓縮的音頻或視頻信息或者其他在已調製數據信號內的數據。已調製數據信號是具有一個或更多以在信號內對信息編碼的方式設置或變化其特徵的信號。作為例子而非限制,通信媒介包括諸如由電的、光的、聲的、RF、紅外線、音頻或其他載體實現的有線或無線技術。
此處的數字媒體處理技術可結合計算機可讀介質的上下文進行描述。計算機可讀介質是任何可在計算環境內被訪問的可用介質。作為實例而非限制,在計算環境(1300)中,計算機可讀介質包括存儲器(1320)、存儲裝置(1340)、通信媒介以及上述的任意組合。
此處的數字媒體處理技術可結合計算機可執行指令的的上下文進行描述,諸如包括在過程模塊內並在計算環境內真實或虛擬的目標處理器上執行的那些指令。通常過程模塊包括執行特定任務或實現特定抽象數據類型的例程、過程、庫、對象、類、組件、數據結構等等。如各個實施例期望的那樣可在程序模塊之間合併和拆分過程模塊功能。用於過程模塊的計算機可執行指令可在本地或分布式計算環境中執行。
為了表述的原因,詳盡描述使用了諸如「確定」、「生成」、「調整」和「應用」之類的術語描述在計算環境中的計算機操作。這些術語是用於由計算機執行操作的高度抽象,並且不應與人類執行的動作相混淆。對應於這些術語的實際的計算機操作依據實現情況而變化。
考慮到可應用本發明原理的許多可能的實施例,我們聲明本發明的所有實施例都落於所附權利要求及其等效物的範圍和精神之內。
權利要求
1.一種基於塊變換的編碼和解碼數字媒體數據的方法,所述方法包括分析在塊排列的各位置處係數值出現的統計發生率;根據所述統計信息自適應所述係數的掃描次序;以及按所述自適應的掃描次序對所述係數進行信息熵編碼/解碼。
2.如權利要求1所述的方法,其特徵在於,所述方法還包括在決定論的因果基礎上對編碼和解碼數字媒體數據執行所述自適應掃描次序,由此避免了在已編碼數字媒體數據內係數掃描次序的明確的信令。
3.如權利要求1所述的方法,其特徵在於,自適應掃描次序還包括根據在所述塊排列內各位置處係數值出現的統計發生率排序所述位置;以及根據所述排序重新排列掃描次序。
4.如權利要求1所述的方法,其特徵在於,所述方法還包括將係數的掃描次序初始化為原始次序;對所述數字媒體數據的當前塊內的係數,更新代表了所述塊排列內各位置處係數值出現的統計發生率的一組值;以及在根據掃描次序對各位置的遍歷中,基於對代表了在所述位置處係數值出現的統計發生率的值的比較,有條件地交換次序上相鄰的位置的次序。
5.如權利要求4所述的方法,其特徵在於,所述方法還包括對每個數字媒體數據塊執行一次遍歷。
6.如權利要求1所述的方法,其特徵在於,所述方法還包括在編碼和解碼數字媒體數據塊期間周期性地復位各位置處係數值出現的發生率的統計。
7.如權利要求1所述的方法,其特徵在於,本方法還包括將所述掃描次序初始化為原始次序;以及周期性地將所述掃描次序重新初始化為原始次序。
8.如權利要求1所述的方法,其特徵在於,所述分析是對塊排列上各位置處非零值係數出現的統計發生率進行的。
9.一種數字媒體編碼器和/或解碼器,包括存儲器,其中含有代表了在變換係數的塊排列內位置的掃描次序的掃描次序表示數據結構以及代表了各位置處係數值出現的統計發生率的統計表示數據結構;處理器編程用於初始化擬代表原始掃描次序的所述掃描次序表示數據結構;初始化所述統計表示數據結構;對在數字媒體數據的這些塊序列內的交換係數的當前塊,更新用於所述當前塊內係數的所述統計表示數據結構;基於所述更新的統計表示數據結構自適應位置的掃描次序;以及更新掃描次序表示數據結構用於表示自適應的掃描次序。
10.如權利要求9所述的數字媒體編碼器和/或解碼器,其特徵在於,自適應所述掃描次序的處理器包括經編程以根據由更新的統計表示數據結構所代表的出現的統計發生率對各位置進行排序的處理器。
11.如權利要求10所述的數字媒體編碼器和/或解碼器,其特徵在於,自適應所述掃描次序的處理器包括經編程以比較以所述掃描次序在相鄰次序位置處所述係數值出現的統計發生率,並且基於所述比較以所述掃描次序有條件地交換相鄰次序的位置的處理器。
12.如權利要求11所述的數字媒體編碼器和/或解碼器,其特徵在於,自適應所述掃描次序的處理器包括經編程作為對每個數字媒體數據的變換係數塊的所述掃描次序進行單次遍歷,以所述掃描次序為各位置執行所述比較和有條件的交換的處理器。
13.如權利要求10所述的數字媒體編碼器和/或解碼器,其特徵在於,所述統計表示數據結構代表在各位置處非零係數出現的統計發生率。
14.至少一個計算機可讀記錄介質,其上帶有計算機可執行數字媒體處理程序用於執行基於塊交換的編碼和解碼數字媒體數據的方法,所述方法包括分析在塊排列的各位置處係數值出現的統計發生率;根據所述統計信息自適應所述係數的掃描次序;以及以所述自適應的掃描次序對所述係數進行信息熵編碼/解碼。
15.如權利要求14所述的至少一個計算機可讀記錄介質,其特徵在於,所述方法還包括在決定論的因果基礎上對編碼和解碼數字媒體數據執行自適應的所述掃描次序,由此避免了在已編碼數字媒體數據內係數掃描次序的明確的信令。
16.如權利要求14所述的至少一個計算機可讀記錄介質,其特徵在於,所述方法還包括根據在所述塊排列內各位置處係數值出現的統計發生率排序各所述位置;以及根據所述排序重新排列掃描次序。
17.如權利要求14所述的至少一個計算機可讀記錄介質,其特徵在於,所述方法還包括將係數的掃描次序初始化為原始次序;對所述數字媒體數據的當前塊內的係數,更新代表了所述塊排列內各位置處係數值出現的統計發生率的一組值;以及在根據掃描次序對各位置的遍歷中,基於對代表了在所述位置處係數值出現的統計發生率的值的比較,有條件地交換次序上相鄰的位置的次序。
18.如權利要求17所述的至少一個計算機可讀記錄介質,其特徵在於,所述方法還包括對每個數字媒體數據塊執行一次遍歷。
19.如權利要求14所述的至少一個計算機可讀記錄介質,其特徵在於,所述方法還包括在編碼和解碼數字媒體數據塊期間周期性地復位各位置處係數值出現的發生率的統計。
20.如權利要求14所述的至少一個計算機可讀記錄介質,其特徵在於,所述方法還包括將所述掃描次序初始化為原始次序;以及周期性地將所述掃描次序重新初始化為原始次序。
全文摘要
數字媒體編碼/解碼器根據所述數字媒體的本地統計信息自適應地重新排列變換係數的係數掃描次序,使得可以使用信息熵編碼對所述係數進行更有效的編碼。所述自適應掃描次序被因果地應用到編碼和解碼上用來避免在所述壓縮數字媒體流中將所述掃描次序明確地發信號給所述解碼器。為了計算效率,自適應掃描次序通過經由對每次統計分析更新的所述掃描次序進行的單次遍歷,在相鄰排序的係數位置上應用有條件的交換操作從而重新排列掃描次序。
文檔編號H04N7/30GK1798341SQ20051012873
公開日2006年7月5日 申請日期2005年11月30日 優先權日2004年12月31日
發明者S·斯裡尼瓦杉 申請人:微軟公司