應用Golomb-Rice編碼法DCT壓縮法的製作方法
2023-04-29 02:02:26 1
專利名稱:應用Golomb-Rice編碼法DCT壓縮法的製作方法
背景技術:
I.發明領域本發明涉及圖形處理與壓縮,尤其涉及應用Golomb-Rice的DCT係數編碼法。
II.相關技術說明在數位訊號處理的一般規範內,數字圖片處理具有顯著的地位。在數字圖片處理技術與科學中,人的視覺的重要性頗引人關注。在視頻信號收發領域中,諸如投影電影,正對圖像壓縮技術進行各種改進。許多現有的和提議的視頻系統都利用了數字編碼技術,包括圖形編碼、圖像恢復與圖像特徵選擇。圖像編碼表示試圖以有效的方式發送數字通信信道的圖片,儘量用少的位以減小所需的帶寬,同時使畸變保持在一定極限之內。圖像恢復是復原目標的真實圖像。經通信信道發送的編碼圖像會被各種因素畸變,劣化源由從目標形成圖像而引起。特徵選擇指某些圖片屬性的選擇,這類屬性為在更廣泛範圍內的識別、分類與判斷所需。
數字電影等視頻的數字編碼,是一個得益於圖像壓縮技術改進的領域。數字圖像壓縮一般分為兩類無損法和有損法。無損圖像恢復時不損失任何信息。有損法涉及某些信息不可挽回的損失,具體視壓縮比、壓縮算法質量與算法實施情況而定。通常,為達到經濟的數字電影法所期望的壓縮比,就考慮有損壓縮法。為實現數字電影質量水平,壓縮法應提供目視無損水平的性能。因此,雖然壓縮處理存在數學上的信息損失,但在正常觀看條件下,觀眾應該看不出該損失造成的圖像畸變。
對其它應用即電視系統已開發出諸現有的數字圖像壓縮技術,這類技術對原來的應用雖然作出了設計上的折衷,但並未滿足電影放映所需的質量要求。
數字電影壓縮技術應提供看電影的人以前經歷過的觀看質量。數字電影的觀看質量最好要超過高質量的發行電影拷貝的質量,同時壓縮技術應具有可實踐的高編碼效率。按本文規定,編碼效率指壓縮圖像質量達到某一定性水平所需的位速率。而且,系統與編碼技術應具有適應不同格式的內在靈活性而且是經濟的,即小規模而有效的解碼器或編碼器處理。
現有的許多壓縮技術雖具有高的壓縮水平,但會造成視頻信號的質量劣化。通常,傳遞壓縮信息的技術要求壓縮信息以恆定位速率傳遞。
既能提供高壓縮水平又可對視頻信號保持期望質量水平的一種壓縮技術,應用了自適應定尺寸的編碼「離散餘弦變換(DCT)」係數數據塊與分塊,該技術下稱「自適應塊尺寸離散餘弦變換(ABSDCT)法。題為「Adaptive BlockSize Image Compression Method and System」的美國專利NO.5,021,891揭示了該技術。該專利已轉讓給本發明的受讓人,通過引用包括在這裡。題為「Adaptive Block Size Image Compression Method and System」的美國專利NO.5,107,345也揭示了DCT技術,該專利已轉讓給本發明受讓人,通過引用包括在這裡。另外,題為「Adaptive Block Size Image Compression Methodand System」的美國專利NO.5,452,104還討論了ABSDCT技術與「差分像限樹變換」技術的組合使用,該專利也已轉讓給本發明受讓人,通過引用包括在這裡。這些專利所揭示的系統應用了所謂的「幀內」編碼法,圖像數據的各幀編碼時與任何其它幀的內容無關。應用ABSDCT技術,可實現的數據率能從每秒15億位減到每秒0.5億位,看不出像質劣化。
ABSDCT技術可壓縮黑白或彩色圖像或者代表圖像的信號。彩色輸入信號可以是YIQ格式,Y是輝度或亮度樣本,I和Q位色度或彩色樣本,格式為4:4:4或另一種格式。也可應用其它已知的格式,如YUV、YCbCr或RGB格式。由於眼睛對彩色的空間靈敏度低下,大多數研究表明,沿水平與垂直方向把彩色分量的副樣本減小到1/4是合適的,因而視頻信號可用四個亮度分量和兩個色度分量表示。
應用ABSDCT,一般把視頻信號分成若干像素塊來處理。對每一塊,把亮度與色度分量傳到塊交織器,例如可把16×16(像素)塊送到塊交織器,後者排列或組織各16×16塊內的圖像樣本,產生數據塊和合成分塊以作離散餘弦變換(DCT)分析。DCT操作器是一種把時空取樣的信號轉換成用頻率表示的方法。轉換成頻率表示後,DCT技術已被證明適合極高的壓縮水平,因為設計的量化器可以利用圖像的頻率分布特性。在一實施例中,一個16×16DCT用於第一排序,四個8×8DCT用於第二排序,16個4×4DCT用於第三排序,62個2×2DCT用於第四排序。
DCT操作減少了視頻源固有的空間冗餘度。在DCT之後,大部分視頻信號能量易集中於少數DCT係數。為減少DCT係數間的冗餘度,可應用附加變換,即「差分像限樹變換(DQT)」。
對16×16塊和各分塊,分析DCT係數值和DQT值(若僅用DQT)確定塊或分塊編碼所需的位數,然後選用要求最少位數編碼的塊或分塊組合代表圖像段。例如,可選擇兩個8×8分塊、六個4×4分塊和八個2×2分塊代表該圖像段。
接著,正確地依次持選擇的塊或分塊組合排成16×16塊。然後,DCT/DQT係數值經歷頻率加權、量化和編碼(如可變長度編碼)、準備傳輸。上述ABSDCT技術雖然便於執行,但運算量很大,故實施該技術的硬體難以密集化。
可變長度編碼法一直以連續長度與尺寸的形式實施。其它壓縮法如「聯合照相專家組(JPEG)」或「活動圖片專家組(MPEG-2)」,都對整個處理的塊尺寸應用了普通的Z字形掃描法。但應用ABSDCT,則根據數據塊內的變化生成不同的塊尺寸。有些編碼法如Huffman碼,包括一連串零再接一非零係數。然而,當源碼元概率為2的負冪時,Huffman編碼更優。不過在連續長度/尺寸對情況下,碼元概率很少為2的負冪。
再者,Huffman編碼還要求存貯預計算碼字的碼簿,而碼簿的規模很大,最長的碼字很長,故對連續長度/尺寸對碼元用Huffman編碼,效率並不高。
發明內容
描述一種以無損方式碼量化DCT係數的連續長度與幅度以實現壓縮的設備與方法。具體地說,量化後用Golomb-Rice編碼法對DCT係數的零連續與非零幅度都編碼。發現利用數據指數分布的方法如Golomb-Rice編碼法,可實現比其它方法更高的編碼效率。
本發明是一種基於質量的圖像壓縮系統與方法,應用了離散餘弦變換係數數據自適應定尺寸的塊和分塊以及基於質量的量化穩定係數。像素數據塊被輸入編碼器,後者包括一塊尺寸指定(BSA)元件,把輸入的像素塊分割後作處理。塊尺寸指定基於輸入塊和再細分塊的變化。通常,將變化較大的區域細分成較小的塊,而變化較小的區域不再細分,使塊與分塊的平均值落入不同的預定範圍內。這樣,根據其平均值,首先按其標稱值修改塊的變化閾值,然後將塊的變化與閾值比較,若變化大於閾值,再細分該塊。
將塊尺寸指定供給變換元件,後者把像素數據換成頻域數據。只對通過塊尺寸指定選擇的塊和分塊變換,然後經量化與串行化對變換數據標定。變換數據的量化基於某個像素亮度,諸如調節反差、係數計數、速率畸變、塊尺寸指定密度的定標係數和/或過去的定標係數。Z字串行化基於對同一值建立可能的最長連續長度,然後用可變長度編碼器編碼數據流以供傳輸。應用了基於指數分布的編碼法,如Golomb-Rice編碼。具體而言,對表示零的數據確定零連續長度。Golovnb參數的函數,而餘數被編碼為零連續長度,Golomb參數和窗的函數。編碼的窗與餘數串接。對表示非零的數據,把非零數據編碼為非零數據值及其符號的函數。編碼的數據經傳輸信道送給解碼器,像素數據重建後供顯示。
因此,一實施例的一個方面不要求先驗碼生成。
一實施例的另一個方面不要求存貯使用的內容廣泛的碼簿。
一實施例的又一個方面減小了硬體實現所需的尺寸。
一實施例再一個方面實現了高編碼效率。
一實施例還有一個方面利用了DCT數據的指數分布。
附圖簡介通過下面結合附圖所作的詳述,本發明的諸特徵與優點就更清楚了,圖中用相同的標號標識對應的物件,其中
圖1是圖像壓縮與處理系統中編碼器部分的框圖;圖2是圖像壓縮與處理系統中解碼器部分的框圖;圖3是基於變化的塊尺寸指定涉及的處理步驟的流程圖;圖4a示出DCT係數矩陣中零連續長度Y分量的指數分布;圖4b示出DCT係數矩陣中零連續長度Cb分量的指數分布;圖4c示出DCT係數矩陣中零連續長度Cr分量的指數分布;圖5a示出DCT係數矩陣中幅度大小Y分量的指數分布;圖5b示出DCT係數矩陣中幅度大小Cb分量的指數分布;圖5c示出DCT係數矩陣中幅度大小Cr分量的指數分布;圖6示出Golomb-Rice編碼過程;和圖7示出Golomb-Rice編碼設備。
較佳實施例的詳細描述為利於數位訊號純屬並分享相應的好處,一般必須應用某種信號壓縮形式。為實現得到圖像的高度壓縮,保持圖像的高質量也很重要。再者,在許多場合中,密集的硬體實施還期望著運算效率。
在詳述本發明一實施例之前,應該理解,本發明的應用並不限於下面描述或圖示諸元件的結構與安排的細節,本發明具有其它諸實施例的功能並以各種方式實施。還應明白,本文使用的術語出於描述目的,不可視為限制。
一實施例一個方面應用的圖像壓縮,基於離散餘弦變換(DCT)技術,諸如在1999年11月8日提交的題為「Contrast Sensitive Variance Based AdaptiveBlock Size DCT Image Compression」的共同待批美國專利申請連續號09/436,085所揭示的技術,該申請已轉讓給本申請受讓人,通過引用包括在這裡。2000年1月28日提交的題為「Quality Based Image Compression」的共同待批美國專利申請09/494,192,描述了應用DCT的圖像壓縮與解縮系統,該申請已轉讓給本申請受讓人,通過引用包括在這裡。通常,準備以數字域處理的圖形,其像素數據被分成不重疊塊的陣列,尺寸為N×N,可對每一塊作二維DCT由下式定義X(k,l)=(k)(l)N*Mm=0N-1n=0N-1x(m,n)cos[(2m+1)k2N]cos[(2n+1)l2N],0k,lN-1]]>式中, 並且X(m,n)是N×M塊內位置(m,n)處的像素,而X(k,l)為相應的DCT係數。
因像素值非負數,故DCT分量X(0,0)總是正數,通常具有最大能量。其實對典型的圖像而言,大部分變換能量集中在分量X(0,0)周圍,這一能量壓縮特性使DCT技術成為如此受人關注的壓縮方法。
該圖像壓縮技術運用反差自適應編碼進一步減小位速率。據觀察,大多數自然的圖像由變化相對慢的平坦區和目標邊界域高反差結構等忙碌區組成。反差自適應編碼法利用這一因素,對忙碌區分配更多的位,對不忙碌區分配較少的位。
反差自適應方法應用幀內編碼(空間處理),不用幀間編碼(時空處理)。幀間編碼除了處理電路更複雜外,還要求多個幀緩衝器。在許多場合中,實際實施要求降低複雜性。幀內編碼還適合使時空編碼法效能低下的場合,如可將每秒24幀的影片歸入這一類,因為機械快門造成的積分時間相對短,引起更高度的時間混淆。對於不穩定的迅速移動,設想的幀間相關性被破壞。在涉及50HZ和60HZ兩種電力線頻率時,幀內編碼還更易標準化。目前電視信號以50HZ或60HZ發射,應用數字方式的幀內法能適應50HZ與60HZ兩種操作,通過平衡幀速率與空間解析度,甚至還適合每秒24幀的影片。
出於圖像處理目的,對分為不重疊塊陣列的像素數據作DCT操作。注意,雖然這裡討論的塊尺寸為N×N,但可以設想出使用各種塊尺寸,例如可使用N×M塊的尺寸,N與M均為整數,而且M大於或小於N。另一要點是可將塊分成至少一層分塊,如N/ixN/i、N/ixN/j、N/ixM/j等,i和j均為整數。再者,這裡討論的示例性塊尺寸是16×16像素塊,帶相應的DCT係數的塊與分塊。還可設想出各種其它整數,諸如使用奇偶整數值,例如9×9。
圖1和2示出的圖像處理系統100,結合了可配置串行化器的理念。該系統100包括壓縮接收視頻信號的編碼器104。壓縮信號用傳輸信道或物理媒體108發送,被解碼器112接收,後者把收到的編碼數據解碼成圖像樣本再顯示。
圖像一般被分成像素塊作處理。彩色信號用RGB/YC1C2轉換器116從RGB空間轉換到YC1C2空間,Y是輝度或亮度分量,C1與C2為色度或彩色分量。由於眼睛對彩色的空間靈敏度低下,故許多系統在水平與垂直方向把C1與C2分量的亞取樣減到1/4。但亞取樣並非必需。在某些場合如涉及「數字電影」的場合中,4:4:4格式的全解析度圖像極為有用或者是必需的。兩種可能的YC1C2表示法是YIQ和YUV表示法,二者為本領域熟悉。還可應用YUV表示法的變型,即YCbCr,這可進一步分為奇偶分量。因而在一實施例中,使用了表示法Y-偶、Y-奇、Cb-偶、Cb-奇、Cr-偶、Cr-奇。
在一較佳實施例中,處理每個奇偶y、Cb與Cr分量,不作亞取樣,因而向編碼器104輸入16×16像素塊的六個分量。為了說明,示出Y偶分量的編碼器104,對Y奇分量和奇偶C6與Cr分量同樣使用編碼器。編碼器104包括塊尺寸指定元件120,執行塊尺寸指定以供視頻壓縮,並根據塊中圖像的感性特徵決定對16×16塊的塊分解。根據16×16塊內的活動性,塊尺寸指定以象限樹方式把各16×16塊細分成更小的塊,如8×8、4×4和2×2。塊尺寸指定元件120生成稱為PQR數據的象限樹數據,長度為1~21位。因此,若塊尺寸指定決定要劃分一16×16塊,就設置PQR數據的R位,後接Q數據對應於四個劃分的8×8塊的四個附加位。若塊尺寸指定塊定細分任一8×8塊,則對各細分的8×8塊添加P數據的四個附加位。
現參照圖3,該流程圖詳細示出了塊尺寸指定元件120的操作。塊變化被用作決定的細分塊的量度。在步驟202開始,讀出像素的一個16×16塊。在步驟204,計算該塊的變化v16,算式如下var=1N2i=0N-1j=0N-1xi,j2-(1N2i=0N-1j=0N-1xi,j)2]]>式中N=16,Xi,j是N×N塊內第i行第j列的像素。在步驟206,若塊的平均值在兩預定值之間,就先修改變化閾值T16。得出新閾值T』16,再將塊變化與新閾值T』16比較。
若變化v16不大於閾值T16,則在步驟208把16×16塊的起始地址寫入暫存器,並將PQR數據的R位置0,表示不細分該16×16塊。於是算法讀像素下一個16×16塊。若變化v16大於閾值T16,則在步驟210把PQR數據的R位置1,表示要將該16×16塊細分成四個8×8塊。
如步驟212所示,四個8×8塊i=1∶4連續考慮再細分。在步驟214,算出各8×8塊的變化v8i。在步驟216,若塊的平均值在兩預定值之間,就先修改變化閾值T8,得出新閾值T』8,然後將塊變化與該新閾值比較。
若變化v8i不大於閾值T8,則在步驟218把8×8塊的起始地址寫入暫存器,相應的Q位Qi置0。然後,處理下一8×8塊。若變化v8i大於閾值T8,則在步驟220將相應的Q位Qi置1,表示要將該8×8塊細分成四個4×4塊。
如步驟222所示,考慮四個4×4塊ji=1∶4再細分。在步驟224,算出各4×4塊的變化v4ij。在步驟226,若該塊的平均值在兩預定值之間,先修改變化閾值T4,得出新閾值T』4,再將塊變化與該新閾值比較。
若變化V4ij不大於閾值T4,則在步驟228寫4×4塊的地址,相應的P位Pij置0,再處理下一4×4塊。若變化v4ij大於閾值T4,則在步驟230將相應的P位Pij置1,表示要把該4×4塊細分成四個2×2塊。此外,將四個2×2塊的地址寫入暫存器。
閾值T16、T8與T4為預定常數。這就是硬判斷。另外,可實行自適應或軟判斷,例如軟判斷根據2N×2N塊的平均像素值改變諸變化的閾值,其中N可以是8、4或2,從而把平均像素值的函數用作閾值。
為了說明,看下列實例。對16×16、8×8和4×4塊,分別設Y分量的預定變化閾值為50、1100和880,換言之,T16=50,T8=1100,T4=880。設平均值範圍為80和100。假定對16×16塊算出的變化為60。因60大於T16,而平均值90在80與100之間,故將16×16塊細分成四個8×8分塊。假定對8×8塊算出的變化為1180、935、980與1210,因兩個8×8塊的變化超出78,故將這兩塊再細分,得出總共八個4×4分塊。最後,假定八個4×4塊的變化為620、630、670、610、590、525、930與690,相應的平均值為90、120、110、115,因第一個4×4塊的平均值在(80,100)範圍內,其閾值應減小到T』4=200,這小於880,故除了第七4×4塊以外,也要細分該4×4塊。
注意,對亮度分量Y奇和色度分量Cb-偶、Cb-奇、Cr-偶與Cr-奇,可用類似方法指定塊尺寸。色度分量以水平、垂直兩種方法取1分之一。
另須注意,雖然把塊尺寸指定描述為自上而下的方式,其中首先評估最大的塊(本例為16×16),但可以換用自下而上的方式,即首先評估最小的塊(本例為2×2)。
再回看圖1,PQR數據與選擇塊的地址一起送到DCT元件124,後者用PQR數據對選擇的塊執行合適尺寸的離散餘弦變換,只是選擇的塊需作DCT處理。
圖像處理系統100還包括減少DCT諸DC係數之間冗餘度的DQT元件128。DC係數位於各DCT塊的左上角,一般比AC係數大,尺寸差異造成難以設計出有效率的可變長度編碼器,故減小DC係數之間的冗餘度是有利的。
DQT元件對DC係數執行二維DCT,一次取2×2。從4×4塊內的2×2塊開始,對四個DC係數作二維DCT,這種2×2DCT稱為差分像限樹變換,或四個DC係數的DQT。接著,用DQT係數與一8×8塊內三個鄰近DC係數一起計算下一層DQT。最後,用一16×16塊內四個8×8塊的DC係數計算DQT。這樣在16×16塊內,有一個真實的DC係數,其餘都是對應於DCT和DQT的AC係數。
對量化器設置變換係數(DCT與DQT兩種)作量化。在一實施例中,DCT係數利用頻率加權掩碼(FWM)和量化標定係數作量化。FWM是一張與輸入DCT係數塊同尺寸的頻率權重表,頻率加權對不同的DCT係數加不同的權重。加權設計成強調人的視覺或光學系統對其頻率分量更敏感的輸入樣本,不注重視覺或光學系統對其頻率分量不大敏感的樣本。加權法還可根據視距等因素來設計。
權重按經驗數據選擇。在國際標準組織於1994年發布的題為「DigitalCompression and encoding of continuous-tone still image-partlRequirements and guidelines」的ISO/IEC ITC1CD10918中,揭示了對8×8DCT係數設計加權掩碼的方法,通過引用包括在這裡。一般設計兩個FWM,一個用於亮度分量,一個用於色度分量。通過取1/10和對8×8塊內插16×16,得到塊尺寸2×2、4×4的FWM表,標定係數控制了量化係數的質量與位速率。
這樣,各DCT係數按下式量化DCTq(i,j)=[8*DCT(i,j)fwm(i,j)*q12]]]>式中DCT(i,j)是輸入DCT係數,fwm(i,j)是頻率加權掩碼,q為標定係數,DCTq(i,j)為量化的係數。注意,根據DCT係數的符號,大括號裡的第一項作四捨五入。DQT係數還用適當的加權掩碼量化,不過可對各Y、Cb與Cr分量應用多張表或掩碼。
然後,用量化器130或標定係數元件對像素數據和頻率加權掩碼塊標定。DCT係數量化將其大部分減為零而導致壓縮。在一實施例中,有32個對應於平均位速率的標定係數。與MPEG2等其它壓縮法不同,平均位速率的控制基於處理圖像的質量而不是目標位速率與緩衝器狀態。
為進一步提高壓縮,把量化的係數送到掃描串行化器134,後者掃描量化係數塊,產生串行化的量化係數流。可應用Z字形掃描、列掃描或行掃描。還可選用若干不同的Z字形掃描圖案及其圖案。一較佳技術對Z字形掃描應用8×8塊尺寸。量化係數的Z字形掃描改善了遇到零值連續大的機會,而這種零連續本身具有遞減的概率,可用Huffman碼有效地編碼。
串行化、量化的係數流被送到可變長度編碼器138。Z編碼器在零與非零係數之間分離量化係數,參照圖6作詳述。在一實施例中,應用了Golomb-Rice編碼法,有利於編碼指數分布的非負整數。應用Golomb碼對指數分布狀變量提供更短長度碼,對壓縮更佳。
在Golomb編碼連續長度中,Golomb碼被非負整數m參數化,如給出參數m,正整數n的Golomb編碼表示為一元碼的商n/m後接用修改二元碼表示的餘數,若該餘數小於2[log2m]-m,它為[log2m]位長,否則為[log2m]位長。Golomb-Rice編碼是Golomb編碼的特殊情況,參數m表示為m=2K。在此情況下,通過將參數n的二進位表示右移K位得到商n/m,而n/m的餘數用n的最低K位表示。因此,Golomb-Rice碼是兩者的串接。Golomb-Rice編碼法可對兩側幾何形狀(指數)分布的正負兩種整數編碼,公式如下Pα(x)=cα|x|(1)式(1)中,α是表徵X概率衰落的參數,C為歸一化常數。因pα(X)是單調的,故可看出,整數值序列應滿足
Pα(xi=0)≥Pα(xi=-1)≥Pα(xi=+1)≥Pα(xi=-2)≥…(2)如圖4a~4c和5a~5c所示,量化的DCT係數矩陣中的零連續與幅度都具有指數分布,圖中示出的分布基於來自實際圖像的數據。圖4a示出零連續長度與相對頻率的Y分量分布400,同樣地,圖4b和4c示出零連續長度與相對頻率410和420的Cb與Cr分量分布。圖5a示出幅度大小與相對頻率的Y分量分布,同樣地,圖5b和5c分別示出幅度大小與相對頻率510和520的Cb與Cr分量分布。注意,在圖5a~5c中,圖表示DCT係數大小的分布。每個大小代表一係數值範圍,例如四的大小值的範圍為{-15,-14,……-8,8,……14,15},共16個值。同樣地,+的大小值的範圍為{-1023,-1022,……,-512,512,……,1022,1023},共1024個值。從圖4a~4c和5a~5c可以看出,連續長度和幅度大小都具有指數分布。幅度的實際分布適合公式(3)p(Xk,l)=22exp{-2|Xk,l|},k,l0---(3)]]>式(3)中,XK,l代表沿垂直與水平維度分別對應於頻率K與l的DCT係數,而均值x=1/2,]]>變化x2=12.]]>因而在處理DCT中的數據時,以所述方式應用Golomb-Rice編碼法更佳。
雖然下面描述圖像數據壓縮,但諸實施例同樣適用於壓縮音頻數據的實施例。壓縮圖像數據時,圖像或視頻信號可以是例如RGB或YIQ或YUV或YCbCr分量,具有線性或對數編碼像素值。
圖6示出零與非零係數的編碼過程600。當掃描DCT矩陣時,零與非零係數被分別處理並分開(604)。對零數據,確定零連續長度(608)。注意,連續長度為正整數。例如,若求出連續長度為n,則確定Golomb參數m(612)。在一實施例中,Golomb參數定為連續長度的函數。在另一實施例中,由式(4)確定Golomb參數(m)m=[log2n](4)另一方法是用計數器或寄存器統計連續長度的長度和有關的Golomb參數(616)。為編碼零連續長度n,對商作編碼(620)。在一實施例中,商被定為零連續長度和Golomb參數的函數。在另一實施例中,商(Q)由式(5)確定Q=[n/2m] (5)
在一實施例中,商Q以一元碼編碼,要求Q+1位。接著,對餘數編碼(624)。在一實施例中,餘數被編碼為連續長度與商的函數。在另一實施例中,用式(6)確定餘數(R)R=n-2mQ (6)在一實施例中,餘數R以m位二進位碼編碼。之後確定商Q與餘數R,將Q與R的代碼串接起來(628),代表零連續長度n的總碼。
非零函數也用Golomb-Rice編碼。因係數幅度可正可負,故必須使用符號位並編碼給定幅度的絕對值。給出的非零函數的幅度為x,可把該幅度表示為幅度絕對值與符號的函數。因此,可用式(7)把幅度表示為y 相應地,非零係數值有選擇地用計數器或寄存器統計(632)。然後,判斷該幅度大於還是等於零(636),若是,把該值編碼為給出值的二倍(640);若不是,則把該值編碼為小於絕對值二倍的值(644)。還可應用其它映射方法,關鍵在於不要求區分值符號的額外位。
編碼公式(7)表示的幅度,造成x的正值為偶整數,負值變成奇整數。而且,該映射法把x的概率指定保留在式(2)中。式(7)所示的編碼法,其優點是可避免用符號位代表正負數。映射後,以對零連續同樣的方式對y編碼,操作一直連續到當前塊中掃描了所有的係數。
重要的是,雖然本發明諸實施例把係數值和連續長度定為式(1)~(7)的函數,但不一定應用精密的公式(1)~(7)。利用Golomb-Rice編碼和DCT係數的指數分布,可更有效地壓縮音像數據。
由於編碼後的零連續與非零幅度區分不出,故必需應用固定長度的專用前綴碼來標誌第一零連續的出現。在遇到一非零幅度後,通常在塊中會遇到全零,此時使用塊結束(EOB)碼而不用Golomb-Rice碼更有效。EOB碼仍可選為專用固定長度碼。
根據式(1)或(3),DCT係數矩陣中幅度或連續長度的概率分布用α或λ參數化,這意味著若出現不是一特定DCT係數塊的範圍,就可提高編碼效率,於是可使用一合適的Golomb-Rice參數編碼有關量。在一實施例中,對每個連續長度與幅度大小值用計數器或寄存器來計算各自累計值和相應的該值出現次數。例如,若存貯累計值與累計元件數的寄存器分別為Rrl與Nrl,則下面的式(6)可用作編碼連續長度的Rice-Golomb參數[log2RrlNrl]---(6)]]>對幅度可應用類似方法。
回過來再看圖1,編碼器104生成的壓縮圖像信號,可用緩衝器142暫存,然後用傳輸信道108發送給解碼器112。傳輸信道108可以是物理媒體,如磁學或光學存貯裝置,或是有線或無線傳輸處理或設備。含塊尺寸指定信息的PQR數據也送到解碼器112(圖2),後者包括緩衝器164和可變長度解碼器168,解碼器168對連續長度值和非零值解碼,其操作方式與圖6所述解碼器相似但相反。
可變長度解碼器168的輸出供給逆串行化器172,後者按採用的掃描法排列諸係數。例如,若應用混合的Z字形掃描、垂直掃描和水平掃描,逆串行化器172就根據應用的掃描類型正確地重排諸係數。逆串行化器172接收PQR數據,幫助將諸係數正確地排列成一合成係數塊。
由於使用了量化器標定係數和頻率加權掩碼,為使處理恢復原狀,把合成塊送給逆量化器174。
若應用了差分像限樹變換,則把係數塊送到IPQT元件186,後接IDCT元件190,否則直接送到IDCT元件190。IDQT和IDCT元件186與190對係數作逆變換,產生像素數據塊。然後該像素數據必須內插轉換成RGB形式,再存貯起來供將來顯示。
圖7示出一Golomb-Rice編碼設備700,該設備較佳地執行圖6所述的過程。確定器704確定連續長度(n)和Golomb參數(m)。或者對每個連續長度與幅度大小值用計數器或寄存器708計算各自的累計值和相應的該值出現的次數。編碼器712將商(Q)編碼為連續長度和Golomb參數的函數。在另一實施例中,編碼器712還把非零數據編碼為非零數據值及其符號的函數。Q值與R值用串接器716串接。
作為舉例,結合本文揭示的諸實施例描述的諸示例性邏輯塊、流程圖和步驟,可用硬軟體實現,包括專用集成電路(ASIC)、可編程邏輯裝置、分立門或電晶體邏輯、諸如寄存器與FIFD等分立硬體元件、執行固件指令組的處理器、任一普通可編程軟體與處理器或它們的任何組合。處理器以微處理器有利,但也可以是任一普通處理器、控制器、微控制器或狀態機。軟體可駐留於RM、閃光天存儲器、ROM、寄存器、硬碟、可卸盤、CD-ROM、DVD-ROM或本領域已知的任何其它形式的存貯媒體。
前述諸較佳實施例供本領域技術人員製作或應用本發明,對這些實施例的各種修正對他們是顯而易見的,本文限定的一般原理可應用於其它實施例而無須應用創造才智。因此,本發明並不限於本文所示的諸實施例,而是負荷本文揭示的原理與新特徵最廣泛的範圍。
本發明的其它特徵和優點在下面的權利要求中提出。
權利要求
1.一種對表示量化頻率的數據進行編碼的方法,所述數據包括表示零與非零的數據,其特徵在於,該方法包括確定零連續長度(n);把Golomb參數(m)定為零連續長度的函數;把商(Q)編碼為零連續長度和Golomb參數的函數;把餘數(R)編碼為零連續長度、Golomb參數和商的函數;和串接編碼的商與編碼的餘數;而且對於表示非零的數據,把非零數據編碼為非零數據值及非零數據值符號的函數。
2.如權利要求1所述的方法,其特徵在於,用公式m=[log2n]來確定Golomb參數(m)。
3.如權利要求1所述的方法,其特徵在於,用公式Q=[n/2m]來確定商(Q)。
4.如權利要求1所述的方法,其特徵在於,用公式R=n-2mQ來確定餘數(R)。
5.如權利要求1所述的方法,其特徵在於,用下式把所述非零數據的編碼定為y值 式中,x是準備編碼的非零數據的幅度。
6.一種在數字影院系統中壓縮數字圖像的方法,所述圖像包括被分離成彩色分量的像素數據,其特徵在於,該方法包括以下操作讀取像素數據的一組彩色分量;生成塊尺寸指定,將該組像素彩色分量分成像素數據分塊;把所述像素數據分塊變換成相應的頻域表述;和把頻域表述換算成數據流,其中的換算操作基於與像質相關的品質量度;把來自所述數據流的至少一組數據編成用一16×16塊表示的數據;把16×16數據組分成用四個8×8塊表示的組;對四個8×8數據塊的每一塊作串行化;和用指數分布對串行化數據作連續長度編碼。
7.如權利要求6所述的方法,其特徵在於,所述連續長度編碼是累計值和特定值相應出現次數的函數。
8.如權利要求6所述的方法,其特徵在於,用下式確定連續長度碼log2RrlNrl]]>式中,Rrl是諸元的累計值,Nrl是該特定值相應出現的次數。
9.如權利要求6所述的方法,其特徵在於,換算操作還包括向所述像素數據分塊提供頻率加權的掩碼,使頻率加權掩碼強調人的視覺系統更敏感的圖像部分,而不重視人的視覺系統不大敏感的圖像部分。
10.如權利要求6所述的方法,其特徵在於,變換操作執行離散餘弦變換。
11.如權利要求6所述的方法,其特徵在於,變換操作執行離散餘弦變換,然後是差分像限樹變換(Differential Quad-tree Transform)。
12.一種對表示量化頻率的數據進行編碼的設備,所述數據包括表示零與非零的數據,其特徵在於,該方法包括對於表示零的數據,確定零連續長度(n)的裝置;把Golomb參數(m)定為零連續長度的函數的裝置;把商(Q)編碼為零連續長度和Golomb參數的函數的裝置;把餘數(R)編碼為零連續長度、Golomb參數和商的函數的裝置;和串接編碼的商與編碼的餘數的裝置;而對於表示非零的數據,把非零數據編碼成該非零數據值及所述非零數據值符號的函數的裝置。
13.如權利要求12所述的設備,其特徵在於,用公式m=[log2n]確定所述Golomb參數(m)。
14.如權利要求12所述的設備,其特徵在於,用公式Q=[n/2m]來確定商(Q)。
15.如權利要求12所述的設備,其特徵在於,用公式R=n-2mQ來確定餘數(R)。
16.如權利要求12所述的設備,其特徵在於,用下式把非零數據的編碼確定為y值 式中,x為準備編碼的非零數據的幅度。
17.如權利要求12所述的設備,其特徵在於,還包括統計零連續長度和非零幅值及這些值相應出現次數的裝置。
18.一種在數字影院系統中壓縮數字圖像的設備,所述圖像包括像素數據,所述像素數據分離成諸彩色分量,其特徵在於,該設備包括以下操作讀取一組像素數據彩色分量的裝置;生成一塊尺寸指定以把該組像素的彩色分量分成像素數據分塊的裝置;把像素數據分塊變換成頻域表述的裝置;和把頻域表述換算成數據流的裝置,其中,換算操作基於與圖像質量相關的品質量度;把至少一組來自數據流的數據編成可用16×16塊表示的數據的裝置;把該組16×16數據分成可用四個8×8塊表示的組的裝置;使四個8×8數據塊的每一塊串行化的裝置;和用指數分布對串行化數據作連續長度編碼的裝置。
19.如權利要求18所述的設備,其特徵在於,所述連續長度編碼是累計值和特定值相應出現次數的函數。
20.如權利要求18所述的設備,其特徵在於,用下述公式來確定連續長度碼,log2RrlNrl]]>式中,Rrl是諸元的累計值,Nrl是該特定值相應出現的次數。
21.如權利要求18所述的設備,其特徵在於,換算裝置還包括向所述像素數據分塊提供頻率加權掩碼的裝置,使頻率加權掩碼強調人的視覺系統更敏感的圖像部分,而不重視人的視覺系統不大敏感的圖像部分。
22.如權利要求18所述的設備,其特徵在於,變換裝置配置成執行離散餘弦變換。
23.如權利要求18所述的設備,其特徵在於,變換操作執行離散餘弦變換接著作差分象限樹變換。
24.如權利要求18所述的設備,其特徵在於,還包括統計尺寸值和這些值在串行化數據中相應出現次數的裝置。
25.一種對表示量化頻率的數據進行編碼的設備,所述數據包括表示零與非零的數據,其特徵在於,該設備包括對於表示零的數據,第一確定器,配置成確定零連續長度(n);第二確定器,配置成把Golomb參數(m)定為零連續長度的函數;編碼器,配置成把商(Q)編碼為零連續長度和Golom參數的函數,並配置成把餘數(R)編碼為零連續長度、Golomb參數和商的函數,而對於表示非零的數據,則把非零數據編碼為該非零數據值及所述非零數據值的符號的函數;和串接器,配置成串接經編碼的商與經編碼的餘數。
26.如權利要求25所述的設備,其特徵在於,用公式m=[log2n]來確定Golomb參數(m)。
27.如權利要求25所述的設備,其特徵在於,用公式Q=[n/2m]來確定商(Q)。
28.如權利要求25所述的設備,其特徵在於,用公式R=n-2mQ來確定餘數(R)。
29.如權利要求25所述的設備,其特徵在於,用下式把非零數據的編碼定為y值 式中,x是準備編碼的非零數據的幅度。
30.如權利要求25所述的設備,其特徵在於,還包括一計數器,被配置成統計零連續長度和非零幅值及這些值相應出現的次數。
全文摘要
提出一種對量化頻率表示的數據編碼的設備與方法(600),所述數據包括零和表示非零的數據。對表示零的數據,確定零連續長度。把Golomb參數定為該零連續長度的函數,商編碼為零連續長度和Golomb參數的函數,餘數編碼為零連續長度、Golomb參數和商的函數。編碼的商與餘數串接。對表示非零的數據,把非零數據編碼為該非零數據值及其符號的函數。
文檔編號H04N7/30GK1550104SQ02816802
公開日2004年11月24日 申請日期2002年6月17日 優先權日2001年6月29日
發明者K·蒂亞加拉簡, K 蒂亞加拉簡 申請人:高通股份有限公司