A. 請問有關\"手機中的圖像壓縮技術\"這個題目,誰有資料可以告訴我一下么謝謝!
近年來,隨著新型感測技術的發展,遙感影像的時間、空間和光譜解析度不斷提高,隨著航天遙感技術的迅速發展,相應的數據規模呈幾何級數增長。遙感數據量日益龐大,有限的信道容量與傳輸大量遙感數據的需求之間的矛盾日益突出給數據的傳輸和存儲帶來了極大的困難。數據壓縮技術作為解決這一問題的有效途徑,在遙感領域越來越受到重視,尤其對於遙感圖象數據來說。一般說來,圖象解析度越高,相鄰采樣點的相關性越高,數據水分也越大。對遙感數據進行壓縮,有利於節省通信信道,提高信息的傳輸速率;數據壓縮之後有利於實現保密通訊,提高系統的整體可靠性。
一般地,圖像壓縮技術可分為兩大類:無損壓縮技術和有損(率失真)壓縮技術。無損壓縮利用數據的統計冗餘進行壓縮,可完全恢復原始數據而不引入任何失真,但壓縮率受到數據統計冗餘度的理論限制,一般為2:1到5:1。這類方法廣泛用於文本數據、程序和特殊應用場合的圖像數據(如指紋圖像、醫學圖像等)的壓縮。由於壓縮比的限制,僅使用無損壓縮方法不可能解決圖像和數字視頻的存儲和傳輸問題。有損壓縮方法利用了人類視覺對圖像中的某些頻率成分不敏感的特性,允許壓縮過程中損失一定的信息;雖然不能完全恢復原始數據,但是所損失的部分對理解原始圖像的影響較小,卻換來了大得多的壓縮比。有損壓縮廣泛應用於語音、圖像和視頻數據的壓縮。在多媒體應用中常用的壓縮方法有;PCM(脈沖編碼調制)、預測編碼、變換編碼(主成分變換或K-L變換、離散餘弦變換MT等)、插值和外推法(空域亞采樣、時域亞采樣、自適應)、統計編碼(Huffman編碼、算術編碼、Shannon-Fano編碼、行程編碼等)、矢量量化和子帶編碼等;混合編碼是近年來廣泛採用的方法。新一代的數據壓縮方法,如基於模型的壓縮方法、分形壓縮和小波變換方法等也己經接近實用化水平。
在遙感信息處理領域,根據信息處理的階段性,遙感圖像壓縮又可分為星上無損壓縮、星上有損壓縮和地面遙感數據壓縮。為了最大限度地保持遙感感測器所獲取的目標信息,星上壓縮一般採用無損壓縮方法。但當信息量大到無損壓縮難以滿足要求時,也考慮失真量較小的有損壓縮,即高保真壓縮方法。同時,為了適應遙感數據采樣率較高的特點,星上壓縮的實時性要求較高,因而要求壓縮方法計算簡單,硬體復雜度低。
二.目前數據壓縮方法標准概述
經常使用的無損壓縮方法有Shannon-Fano編碼法、Huffman編碼法、遊程(Run-length)編碼法、LZW編碼法(Lempel-Ziv-Welch)和算術編碼法等。
數據壓縮研究中應注意的問題是,首先,編碼方法必須能用計算機或VLSI硬體電路高速實現;其次,要符合當前的國際標准。
下面介紹三種流行的數據壓縮國際標准。
1、JPEG-靜止圖像壓縮標准
這是一個適用於彩色和單色多灰度或連續色調靜止數字圖像的壓縮標准。它包括基於DPCM(差分脈沖編碼調制、DCT(離散餘弦變換)和Huffman編碼的有損壓縮演算法兩個部分。前者不會產生失真,但壓縮此很小;後一種演算法進行圖像壓縮是信息雖有損失但壓縮比可以很大。 JPEG標准實際上有三個范疇:
1)基本順序過程Baseline Sequential processes) 實現有損圖像壓縮,重建圖像質量達到人眼難以觀察出來的要求。採用的是8x8像素自適應DCT演算法、量化及Huffman型的墒編碼器。
2)基於DCT的擴展過程(Extended DCT Based Process) 使用累進工作方式,採用自適應算術編碼過程。
3)無失真過程(Losslesss Process)採用預測編碼及Huffman編碼(或算術編碼),可保證重建圖像數據與原始圖像數據完全相同。
其中JPEG有以下五種方法:
(l)JPEG演算法
基本JPEG演算法操作可分成以下三個步驟:通過離散餘弦變換(DCT)去除數據冗餘;使用量化表對以DCT系數進行量化,量化表是根據人類視覺系統和壓縮圖像類型的特點進行優化的量化系數矩陣;對量化後的DCT系數進行編碼使其熵達到最小,熵編碼採用Huffman可變字長編碼。(2)離散餘弦變換(3)量 化
(4)遊程編碼(5)熵編碼
2、MPEG-運動圖像壓縮編碼
MPEG(Moving Pictures Experts Group)標准分成兩個階段:第一個階段(MPEG-I)是針對傳輸速率為 lMb/s到l.5Mb/s的普通電視質量的視頻信號的壓縮;第二個階段(MPEG-2)目標則是對每秒30幀的720x572解析度的視頻信號進行壓縮;在擴展模式下,MPEG-2可以對解析度達1440Xl152高清晰度電視(HDTV)的信號進行壓縮。但是MPEG壓縮演算法復雜、計算量大,其實現一般要專門的硬體支持。
MPEG視頻壓縮演算法中包含兩種基本技術:一種是基於l6x16子塊的運動補償技術,用來減少幀序列的時域冗餘;另一種是基於DCT的壓縮,用於減少幀序列的空域冗餘,在幀內壓縮及幀間預測中均使用了DCT變換。運動補償演算法是當前視頻圖像壓縮技術中使用最普遍的方法之一。
3、 H.261-視頻通信編碼標准
電視電話/會議電視的建議標准H.261常稱為Px64K標准,其中P是取值為 1到30的可變參數;P=l或2時支持四分之一中間格式(QCIF:Quarter Cmmon Intermedia Format)的幀率較低的視頻電話傳輸;P>=6時支持通用中間格式(CIF:Common Intermediate Format)的幀率較高的電視會議數據傳輸。Px64K視頻壓縮演算法也是一種混合編碼方案。
三.遙感影像數據壓縮的有效方法――小波壓縮
1.針對高解析度遙感影像,採用先進的圖象壓縮技術,實現對遙感影像的高保真快速壓縮,以解決大規模影像的傳輸和存儲問題。近年來,隨著新型感測技術的發展,遙感影像的時間、空間和光譜解析度不斷提高,相應的數據規模呈幾何級數增長,給數據的傳輸和存儲帶來了極大的困難。一般說來,圖象解析度越高,相鄰采樣點的相關性越高,數據水分也越大。對遙感數據進行壓縮,有利於節省通信信道,提高信息的傳輸速率;數據壓縮之後有利於實現保密通訊,提高系統的整體可靠性隨著INTERNET連到千家萬戶,遙感圖象正在逐漸成為信息傳遞的重要媒介。目前大多使用小波壓縮處理遙感圖像數據。
2 小波分析基本理論及其在圖像壓縮中的應用
與傅里葉變換相似,小波變換是一種同時具有時—頻二維解析度的變換。其優於傅氏變換之處在於它具有時域和頻域「變焦距」特性,十分有利於信號的精細分析。第一個正交小波基是Harr於1910年構造的;但Harr小波基是不連續的。到80年代,Meyer, Daubechies等人從尺度函數的角度出發構造出了連續正交小波基。1989年,Mallat等人在前人大量工作的基礎上提出多尺度分析的概念和基於多尺度分析的小波基構造方法,將小波正交基的構造納入統一的框架之中,使小波分析成為一種實用的信號分析工具。
該方法先對遙感圖像進行小波分解,然後以紋理復雜程度作為區域重要性度量,通過對紋理復雜的重要區域進行標量編碼來保證恢復圖像的質量,通過對平坦區(即不重要區)進行矢量編碼來提高壓縮比。實驗結果表明該方法具有壓縮率較高,圖像恢復質量好,速度快等優點,十分適合遙感數據的高保真壓縮。
小波變換在壓縮中提供了如下優點:(1) 多尺度分解提供了不同尺度下圖像的信息,並且變換後的能量大部分集中在低頻部分,方便了我們對不同尺度下的小波系數分別設計量化編碼方案,在提高圖像壓縮比的情況下保持好的視覺效果和較高的PSNR。(2) 小波分解和重構演算法是循環使用的,易於硬體實現.
JPEG的8×8分塊壓縮方法壓縮紋理復雜的塊時恢復誤差較大,具有比較明顯的方塊效應,而基於小波變換的圖像壓縮方法較好地克服了方塊效應的影響。通過對不同區域採用不同編碼方法,可以較好地保持原圖的紋理信息,並達到較高的壓縮比.
3. 自適應標量、矢量混合量化編碼方案
基於小波分解的圖像壓縮方法的一個重要因素是量化方案的選擇。一般說來,量化方法分為標量量化和矢量量化兩種。近年來,人們開始研究將標量、矢量量化相結合的方法,以同時獲取較高的壓縮比、恢復質量和時間性能,這是圖像壓縮技術的一個重要發展方向。
標量量化的關鍵是去相關和編碼。目前主要的去相關技術是預測方法,如DPCM預測;而編碼仍以熵編碼為主。標量量化的特點是可保持較高的圖像恢復質量,但壓縮率一般較低。目前最有效的基於小波分解的矢量量化方法有法國M. Barlaud等人提出的PLVQ塔式格型矢量量化方法和美國J. M. Shapiro提出的EZW方法。這兩種方法編碼效率較高,但計算非常復雜,不能適用於實時性要求較高的場合。
本文提出的編碼方案對圖像小波細節子圖劃分為4×4的塊,採用塊內的方差作為塊的紋理復雜度和重要性度量,對紋理復雜的重要塊用較多的位進行編碼,而對於較平坦的區域用較少的位進行編碼。這實際上相當於將各塊的元素組成一個矢量,對不重要的子塊採用矢量編碼方案,而對重要子塊採用標量編碼,使得各子塊的恢復誤差大致平衡。
本壓縮方法的具體步驟如下。
(1) 對圖像進行3層小波分解,對LL3子圖進行熵編碼,對HH1不編碼(解碼時以0填充)。
(2) 把小波分解圖的其它各細節子圖按4×4塊劃分,設定閾值0<T0<T1<T2。將方差小於T0的塊劃分為平坦區;方差大於T0小於T1的塊劃分為次平坦區;方差大於T1小於T2的塊劃分為次紋理區;方差大於T2的塊劃分為紋理區。
(3) 按各塊在圖中的位置進行塊的類別編碼。由於塊的類別數為4,採用兩位編碼。對不同類別的塊採用下述編碼方案:
● 對於平坦區,假設其均值為0,可認為塊中所有元素均為0;
● 對於次平坦區,用1位表示整個塊的均值,對於塊中每個元素再各用1位進行編碼,即塊中大於均值的元素對應碼號為1,否則對應碼號為0;
● 對於次紋理區,用2位表示整個塊的均值,對於塊中每個元素再各用2位進行編碼,把塊中各元素值對應到0—3這4個碼號上去;
● 對於紋理區,用6位表示整個塊的均值,用6位表示塊內方差,對塊中每個元素再各用5位進行編碼,把塊中各元素值對應到0—31這32個碼號上去。
(4) 對上述結果進行算術編碼。
上述演算法對於原圖4×4塊的128位數據,平坦區只用2位編碼,次平坦區用19位編碼,次紋理區用36位編碼,紋理區用2+16×5+6+6=94位編碼。
四. 演算法關鍵問題
4.1 小波基的選取
多尺度分析中小波基的選擇注意5個方面的因素。我們選擇了4組小波基對應的二次鏡面濾波器(QMF)研究它們的性質: (1) Battle和Lemarie的27-系數濾波器(簡稱B-L小波);(2) I. Daubechies的4-系數濾波器(簡稱D-4小波);(3) I. Daubechies的20-系數濾波器(簡稱D-20小波);(4) Antonini的一組雙正交小波基對應的濾波器。
(1) 正交性。用正交小波基由多尺度分解得到的各子帶數據分別落在相互正交的L2(R2)的子空間中,使各子帶數據相關性減小。但能准確重建的、正交的、線性相位、有限沖擊響應濾波器組是不存在的,此時一般放寬正交性條件為雙正交。
(2) 支撐集。為了得到有限長度的濾波器組h(n),g(n);避免濾波過程中的截斷誤差,要求小波基是緊支集的。
(3) 對稱性。對稱濾波器組具有兩個優點:(1)人類的視覺系統對邊緣附近對稱的量化誤差較非對稱誤差更不敏感;(2)對稱濾波器組具有線性相位特性,對圖像邊緣作對稱邊界擴展時,重構圖像邊緣部分失真較小,有利於復雜特性的分析(如序列目標檢測和分類)〔9〕。
(4) 規則性(Regularity)。
(5) 消失矩階數。
可見,本系統採用的雙正交小波基具有良好的性能。
4.2 閾值的選取
本方法的一個關鍵因素是3個閾值T0,T1和T2的選取。直觀地說,3個閾值越大,壓縮比越高,而圖像恢復質量越差。另外,根據人類的視覺生理、心理特點以及實驗結果,不同級別的小波分解系數所含的能量是不同的,因而在圖像重構時其重要性也有差異,應區別對待。級別越高,小波系數所含能量越大,量化應越精細。在矢量編碼方案中,一般採取級別高的小波子圖矢量維數低就是這個道理。通過對不同級別的子圖採用不同的閾值可以實現對不同級別子圖的區別對待,即級別越高,閾值越小。
進一步,上述3個閾值的選取有兩條途徑: 一是由用戶根據需要交互地給出,而由系統給出一個較優的預設值。通過對圖遙感圖像進行實驗可以獲得各閾值與壓縮系統性能指標PSNR和CR(峰值信噪比和壓縮比)的關系。
另一種方法是通過對小波分解子圖進行統計分析後自適應獲得,由前面的討論我們認為這是不必要的,理由有二: (1) 不同閾值的選取以及同一設定對不同圖像造成的壓縮性能影響不太大;(2) 自適應選取方法時間性能大大降低,不適合於實時性要求較高的場合。
4.3 演算法的實時性問題
目前小波分解已經有快速演算法,並可用硬體實現,使研製基於小波分解的實時圖像壓縮技術成為可能,這對於星上數據壓縮具有十分重要的意義。為了提高編碼過程的速度,我們沒有採用一般用於度量數據能量的方差指標,而代之以4×4子塊的塊內數據變化范圍(即最大最小值之差),從而減少了一次對塊中所有元素的掃描,且避免了求方差時的乘法運算,只需作16次浮點數比較(即減法)操作,縮短了編碼時間,而圖像恢復質量基本沒有下降。
另外,對於多波段遙感數據,我們先對它們進行K-L變換,然後對各K-L變換子圖使用上述方法進行壓縮,效果良好。
4.4 實驗結果分析
以上方法在保持較高的保真度情況下壓縮比遠高於無損壓縮,而壓縮比和PSNR值均優於JPEG方法。顯然,在性能基本不變的情況下,使用變化范圍的方法速度要快約40%。該方法在多波段遙感數據的高保真壓縮方面也具有良好的效果。
五.圖象壓縮方法比較:
與現有的彩色序列圖象壓縮與解壓演算法相比,我們的演算法有了很大的改進。根據遙感圖像局部相關性較弱、紋理復雜豐富的特點,提出了基於小波分析理論的自適應標量、矢量混合量化壓縮方法。該方法根據遙感圖像小波變換後高頻子圖的局部塊紋理強弱將這些塊劃分為4類,對平坦塊進行高倍壓縮,對紋理塊進行高保真壓縮,使各塊的恢復誤差大致平衡。其主要特點是避免了矢量編碼過程中的碼書訓練和碼書搜索,因而時間性能好,並且對單幅圖像的壓縮比和峰值信噪比(PSNR)優於JPEG方法。此方法與K-L變換去波段相關技術相結合,應用於多波段遙感圖像壓縮領域,收到了良好的效果。
B. 算術編碼的介紹
算術編碼,是圖像壓縮的主要演算法之一。 是一種無損數據壓縮方法,也是一種熵編碼的方法。和其它熵編碼方法不同的地方在於,其他的熵編碼方法通常是把輸入的消息分割為符號,然後對每個符號進行編碼,而算術編碼是直接把整個輸入的消息編碼為一個數,一個滿足(0.0 ≤ n < 1.0)的小數n。
C. 圖像壓縮編碼方法有哪幾類
總的來說可以分為:有損編碼、無損編碼或者分為變換編碼、統計編碼。
有損編碼
有損編碼又稱為不可逆編碼,是指對圖像進行有損壓縮,致使解碼重新構造的圖像與原始圖像存在一定的失真,即丟失了了部分信息。由於允許一定的失真,這類方法能夠達到較高的壓縮比。有損壓縮多用於數字電視、靜止圖像通信等領域。
無損編碼
無損壓縮又稱可逆編碼,是指解壓後的還原圖像與原始圖像完全相同,沒有任何信息的損失。這類方法能夠獲得較高的圖像質量,但所能達到的壓縮比不高,常用於工業檢測、醫學圖像、存檔圖像等領域的圖像壓縮中[15]。
預測編碼
預測編碼是利用圖像信號在局部空間和時間范圍內的高度相關性,以已經傳出的近鄰像素值作為參考,預測當前像素值,然後量化、編碼預測誤差。預測編碼廣泛應用於運動圖像、視頻編碼如數字電視、視頻電話中[ ]。
變換編碼
變換編碼是將空域中描述的圖像數據經過某種正交變換(如離散傅里葉變換DFT、離散餘弦變換DCT、離散小波變換DWT等)轉換到另一個變換域(頻率域)中進行描述,變換後的結果是一批變換系數,然後對這些變換系數進行編碼處理,從而達到壓縮圖像數據的目的。
統計編碼
統計編碼也稱為熵編碼,它是一類根據信息熵原理進行的信息保持型變字長編碼。編碼時對出現概率高的事件(被編碼的符號)用短碼表示,對出現概率低的事件用長碼表示。在目前圖像編碼國際標准中,常見的熵編碼方法有哈夫曼(Huffman)編碼和算術編碼。
D. 3級計算機網路問題,高手進
解析度1024*768的真彩色圖像,像素解析度為32bit,如果以每秒25幀動態顯示,則需要的通信帶寬約為()
A.1.544Mbps B.2.048Mbps C.630Mbps D.184Mbps
本題答案:C.630Mbps
這是計算機常識,不需要高手解決的
講解及分析: 只要計算下每秒傳輸數據量即可,假設為K
則 K = (1024 x 768 x 25 x 32)/(2的20次方)
= (768 x 25 x 32) /1024
= 600Mb (注意單位是Mb,若單位為MB,則需用600除以8)
這樣的數據傳輸要求是非常高的,對存儲和傳輸介質都提出了相當大的挑戰,在實際傳輸中我們一般對數據進行壓縮,消除數據冗餘。
例如,存數一副中等解析度(640x480)的真彩色(224色)圖像大約需0.9MB(640x480x24/8)存儲空間,若要達到每秒25幀的全動態顯示,每秒所需存儲容量約為22.5MB,一張600MB的光碟也只能存放約27秒的圖像數據,這就要求必須對圖像數據進行壓縮。所謂圖像壓縮,就是以一定的圖像失真為代價,按照某種方法從給定的圖像信息中推出簡化的數據表達的過程,從而達到減少數據量的目的。由於原始圖像信息存在很大冗餘度,而一定范圍內的圖像失真人的眼睛是覺察不出的,這就是的圖像數據能夠得以壓縮。常見的圖像壓縮演算法有預測編碼、哈夫曼(Huffman)編碼、算術編碼、遊程編碼、Lempel-Zev編碼、離散餘弦變換編碼、離散K-L變換編碼、小波變換編碼等。現行圖像壓縮標准,如H.261、JPEG、MPEG一般都是多種方法的混合使用,壓縮比可達幾倍、幾十倍乃至幾百倍,為了得到更高的壓縮比,除了繼續發掘一些經典方法的潛力外,人們也在研究新一代壓縮方法,如分析-合成編碼ASC(Analysis-Synthesis Coding)、分形編碼(Fractal Coding)等。
我國浙江大學和清華大學在該領域的科研實力不錯,有興趣的同學可以報考該方面的研究生,為我國計算機事業多做貢獻;
吳文俊院士、孫家廣院士、石青雲院士、鮑虎軍研究員等都是國內從事該方面研究的頂級專家
E. 什麼是信源在允許一定失真的條件下,信源熵所能壓縮的極限
1.統計編碼原理──信息量和信息熵
根據香農資訊理論的原理,最佳的數據壓縮方法的理論極限是信息熵。如果要求在編碼過程中不丟失信息量,即要求保存信息熵,這種信息保持的編碼又叫熵保存編碼,或叫熵編碼。熵編碼是無失真壓縮。當然在考慮人眼失真不易察覺的生理特性時,有些圖像編碼不嚴格要求熵保存,信息允許通過部分損失來換取高的數據壓縮比。這種編碼屬於有失真數據壓縮。
信息是用不確定性的量度定義的,也就是說信息被假設為由一系列的隨機變數所代表,它們往往用隨機出現的符號來表示。我們稱輸出這些符號的源為「信源」。也就是要進行研究與壓縮的對象。 信息量
信息量指從N個相等可能事件中選出一個事件所需要的信息度量或含量,也可以說是辨別N個事件中特定事件過程中所需提問「是」或「否」的最小次數。
例如:從64個數(1~64的整數)中選定某一個數(採用折半查找演算法),提問:「是否大於32?」,則不論回答是與否,都消去半數的可能事件,如此下去,只要問6次這類問題,就可以從64個數中選定一個數,則所需的信息量是 =6(bit)。 我們現在可以換一種方式定義信息量,也就是資訊理論中信息量的定義。
設從N中選定任一個數X的概率為P(x),假定任選一個數的概率都相等,即P(x)=1/N,則信息量I (x)可定義為:
上式可隨對數所用「底」的不同而取不同的值,因而其單位也就不同。設底取大於1的整數α,考慮一般物理器件的二態性,通常α取2,相應的信息量單位為比特(bit);當α=e,相應的信息量單位為奈特(Nat);當α=10,相應的信息量單位為哈特(Hart)。顯然,當隨機事件x發生的先驗概率P(x)大時,算出的I(x)小,那麼這個事件發生的可能性大,不確定性小,事件一旦發生後提供的信息量也少。必然事件的P(x)等於1, I(x)等於0,所以必然事件的消息報導,不含任何信息量;但是一件人們都沒有估計到的事件(P(x)極小),一旦發生後,I(x)大,包含的信息量很大。所以隨機事件的先驗概率,與事件發生後所產生的信息量,有密切關系。I(x)稱x發生後的自信息量,它也是一個隨機變數。
P(x)大時,算出的I(x)小 必然事件的P(x)等於1, I(x)等於0。
P(x)小時,算出的I(x)大 必然事件的P(x)等於0, I(x)等於1。
I(x)稱x發生後的自信息量,它也是一個隨機變數。
信息熵
現在可以給「熵」下個定義了。信息量計算的是一個信源的某一個事件(X)的自信息量,而一個信源若由n個隨機事件組成,n個隨機事件的平均信息量就定義為熵(Entropy)。
熵的准確定義是:信源X發出的xj(j=1,2,……n), 共n個隨機事件的自信息統計平均(求數學期望),即
H(X)在資訊理論中稱為信源X的「熵 (Entropy)」 ,它的含義是信源X發出任意一個隨機變數的平均信息量。
更詳細的說,一般在解釋和理解信息熵有4種樣式
(1) 當處於事件發生之前,H(X)是不確定性的度量;
(2) 當處於事件發生之時,是一種驚奇性的度量;
(3) 當處於事件發生之後,是獲得信息的度量;
(4) 還可以理解為是事件隨機性的度量. 下面為了掌握信息熵的概念,我們來做一道計算題。
例如:以信源X中有8個隨機事件,即n=8。每一個隨機事件的概率都相等,即P(x1)=P(x2)=P(x3)……P(x8)=1/8 ,計算信源X的熵。
應用「熵」的定義可得其平均信息量為3比特
再例: 信源X中有17個隨機事件,即n=17。每一個隨機事件的概率分別為:
計算信源X的熵。
信息熵的計算公式:
信源X的熵:
定長碼與變長碼
定長碼(fixed-length code)即採用相同的位數(bit)對數據進行編碼。大多數存儲數字信息的編碼系統都採用定長碼。如我們常用的ASCII碼就是定長碼,其碼長為1位元組(Byte)。漢字國標碼也是定長碼,其碼長為2位元組(Byte)。變長碼(variable-length code)即採用不相同的位數(bit)對數據進行編碼,以節省存儲空間。例如,不同的字元或漢字出現的概率是不同的,有的字元出現的概率非常高,有的則非常低。根據統計,英文字母中「E」的使用概率約為13%,而字母「Z」的使用概率則為0.08%。又如大多數圖像常含有單色的大面積圖塊,而且某些顏色比其他顏色出現更頻繁。為了節省空間,在對數據進行編碼時,就有可能對那些經常出現的數據指定較少的位數表示,而那些不常出現的數據指定較多的位數表示。這樣從總的效果看還是節省了存儲空間。用這種方法得到的代碼,其碼的位數,也即碼長就是不固定的,故稱為變長碼。香農-范諾編碼,以及霍夫曼編碼,都是變長碼。
2.赫夫曼(Huffman)編碼基本原理:按信源符號出現的概率大小進行排序,出現概率大的分配短碼,出現概率小的則分配長碼。(定長碼採用相同的碼長對數據進行編碼,如ASCII碼是定長碼,其碼長為1位元組。)
定理:在變長碼中,對於出現概率在的信息符號編以短字長的碼,對於出現概率小的信息符號以長字長的碼,如果碼字長度嚴格按照符號概率的大小的相反順序排列,則平均碼字長度一定小於按任何其他符號順序排列方式得到的碼字長度。
定理證明
設最佳排列方式的碼字平均長度為 ,則有:
式中 為信源符號 出現的概率, 是符號 的編碼長度。規定 , 。如果將 的碼字與 的碼字互換,其餘碼字不變,經過這樣的互換以後,平均碼字長度變成 ,即
因為 ,所以 ,也就是說 最短。證畢。
Huffman編碼的編碼步驟
① 概率統計(如對一幅圖像,或m幅同種類型圖像作灰度信號統計),得到n個不同概率的信息符號。
② 將n個信源信息符號的n個概率,按概率大小排序。
③ 將n個概率中,最後兩個小概率相加,這時概率個數減為n-1個。
④ 將n-1個概率,按大小重新排序。
⑤ 重復③,將新排序後的最後兩個小概率再相加,相加和與其餘概率再排序。
⑥ 如此反復重復n-2次,得到只剩兩個概率序列。
⑦ 以二進制碼元(0.1)賦值,構成霍夫曼碼字。編碼結束。
利用Huffman編碼方式對信源進行編碼
已知信源:
編碼結果:平均碼長: =(0.35+0.20)×2+(0.15+0.10+0.10)×3+(0.06+0.04)×4=2.55(bit)(對於等長碼則需要3比特)。
Huffman編碼的特點
(1)平均碼長 (熵);
(2)平均碼長 bits(等長碼需要的比特數);
(3)保證解碼的唯一性,短碼字不構成長碼字的前綴;
(4)在接收端需保存一個與發送端相同的赫夫曼碼表。 Huffman不足方面:(1)構造出的碼不唯一,其原因是:一是在給兩個分支賦值時,可以是左支(或上支)為0,也可以是右支(或下支)為0,造成編碼的不唯一;二是當兩個消息的概率相等時,誰前誰後也是隨機的,構造出來的碼字也不唯一。
(2)編碼碼字字長參差不齊,因此硬體實現起來不大方便。
(3)編碼對不同信編碼效率是不同的。在概率頒很不均勻時,Huffman編碼才會有顯著的效果,在信源頒均勻的情況下,一般不使用Huffman編碼。
3.算術編碼(Arithmetic Coding)算術編碼方法也是利用信源概率分布特性、能夠趨近熵極限的編碼的方法。算術編碼不按符號編碼,即不是用一個特定的碼字與輸入符號之間建立一一對應的關系,而是從整個符號序列出發,採用遞推形式進行連續編碼,用一個單獨的浮點數來表示一串輸入符號。算術編碼是將被編碼的信息表示成實數0和1之間的一個間隔。信息越長編碼表示它的間隙就越小,表示這一間隙所須二進位就越多,大概率符號出現的概率越大對應於區間愈寬,可用長度較短的碼字表示;小概率符號出現概率越小層間愈窄,需要較長碼字表示。它的編碼方法比Huffman編碼方式要復雜,但它不需要傳送像Huffman編碼中的Huffman碼表,同時算術編碼還有自適應的優點,所以算術編碼是實現高效壓縮數據中很有前途的編碼方法。特點:方法比較復雜,具有自適應能力(隨著編碼符號流中01出現的概率的變化將自適應的改變)。在信源符號概率接近時,算術編碼比Huffman編碼效率要高。 算術編碼與解碼舉例
假設信源符號為{00, 01, 10, 11},這些符號的概率分別為{ 0.1, 0.4, 0.2, 0.3 },根據這些概率可把間隔[0,1)分成4個子間隔:[0, 0.1), [0.1, 0.5), [0.5, 0.7), [0.7, 1),其中[x,y)表示半開放間隔,即包含x不包含y。上面的信息可綜合在下表中。 表 信源符號,概率和初始編碼間隔 符號00011011概率0.10.40.20.3初始編碼間隔[0,0.1)[0.1,0.5)[0.5,0.7)[0.7,1)
如果二進制消息序列的輸入為:10 00 11 00 10 11 01。編碼時首先輸入的符號是10,找到它的編碼范圍是[0.5, 0.7)。由於消息中第二個符號00的編碼范圍是[0, 0.1),因此它的間隔就取[0.5, 0.7)的第一個十分之一作為新間隔[0.5, 0.52)。依此類推,編碼第3個符號11時取新間隔為[0.514, 0.52),編碼第4個符號00時,取新間隔為[0.514, 0.5146),… 。消息的編碼輸出可以是最後一個間隔中的任意數。整個編碼過程如下圖示:
表: 編碼過程步驟 輸入符號編碼間隔 編碼判決110[0.5, 0.7)符號的間隔范圍[0.5, 0.7) 200[0.5, 0.52)[0.5, 0.7)間隔的第一個1/10311[0.514, 0.52)[0.5, 0.52)間隔的最後三個1/10400[0.514, 0.5146)[0.514, 0.52)間隔的第一個1/10510[0.5143, 0.51442)[0.514, 0.5146)間隔的第六個1/10開始的兩個1/10611[0.514384, 0.51442)[0.5143, 0.51442)間隔的最後三個1/10701[0.5143836, 0.514402)[0.514384, 0.51442)間隔的從第二個1/10開始的四個1/108從[0.5143876, 0.514402中選擇一個數作為輸出:0.51439
表:解碼過程步驟間隔解碼符號 解碼判決 1[0.5, 0.7)100.51439在間隔 [0, 1) 第六個1/102[0.5, 0.52)000.51439在間隔 [0.5, 0.7)的第一個1/103[0.514, 0.52)110.51439在間隔[0.5, 0.52)的第八個1/104[0.514, 0.5146)000.51439在間隔[0.514, 0.52)的第一個1/105[0.5143, 0.51442)100.51439在間隔[0.514, 0.5146)的第七個1/106[0.514384, 0.51442)110.51439在間隔[0.5143, 0.51442)的第八個1/107[0.5143876, 0.514402)010.51439在間隔[0.5143876, 0.514402)的第二個1/108解碼的消息:10 00 11 00 10 11 01解碼器的解碼過程應無限制地運行下去。在解碼器中需要添加一個專門的終止符,當解碼器看到終止符時就停止解碼。在算術編碼中需要注意的幾個問題:
①由於實際的計算機的精度不可能無限長,運算中出現溢出是一個明顯的問題,但多數機器都有16位、32位或者64位的精度,因此這個問題可使用比例縮放方法解決。
②算術編碼器對整個消息只產生一個碼字,這個碼字是在間隔[0, 1)中的一個實數,因此解碼器在接受到表示這個實數的所有位之前不能進行解碼。
③算術編碼也是一種對錯誤很敏感的編碼方法,如果有一位發生錯誤就會導致整個消息譯錯。
算術編碼可以是靜態的或者自適應的。在靜態算術編碼中,信源符號的概率是固定的。在自適應算術編碼中,信源符號的概率根據編碼時符號出現的頻繁程度動態地進行修改,在編碼期間估算信源符號概率的過程叫做建模。需要開發自適應算術編碼的原因是因為事先知道精確的信源概率是很難的,而且是不切實際的。當壓縮消息時,不能期待一個算術編碼器獲得最大的效率,所能做的最有效的方法是在編碼過程中估算概率。因此動態建模就成為確定編碼器壓縮效率的關鍵。
算術編碼的實現相應地比Huffman編碼復雜,但當與信號源符號的出現概率接近時,算術編碼的效率高於Huffman編碼。在圖像測試中表明,算術編碼效率比Huffman效率高5%左右。
F. 多媒體數據壓縮算術研究 論文筆記
多媒體圖像壓縮技術
姓名:Vencent Lee
摘要:多媒體數據壓縮技術是現代網路發展的關鍵性技術之一。由於圖像和聲音信號中存在各種各樣的冗餘,為數據壓縮提供了可能。數據壓縮技術有無損壓和有損壓縮兩大類,這些壓縮技術又各有不同的標准。
一、多媒體數據壓縮技術
仙農(C.E.Shannon)在創立資訊理論時,提出把數據看作是信息和冗餘度的組合。早期的數據壓縮之所以成為資訊理論的一部分是因為它涉及冗餘度問題。而數據之所以能夠被壓縮是因為其中存在各種各樣的冗餘;其中有時間冗餘性、空間冗餘性、信息熵冗餘、先驗知識冗餘、其它冗餘等。時間冗餘是語音和序列圖像中常見的冗餘,運動圖像中前後兩幀間就存在很強的相關性,利用幀間運動補興就可以將圖像數據的速率大大壓縮。語音也是這樣。尤其是濁音段,在相當長的時間內(幾到幾十毫秒)語音信號都表現出很強的周期性,可以利用線性預測的方法得到較高的壓縮比。空間冗餘是用來表示圖像數據中存在的某種空間上的規則性,如大面積的均勻背景中就有很大的空間冗餘性。信息熵冗餘是指在信源的符號表示過程中由於未遵循資訊理論意義下最優編碼而造成的冗餘性,這種冗餘性可以通過熵編碼來進行壓縮,經常使用的如Huff-man編碼。先驗知識冗餘是指數據的理解與先驗知識有相當大的關系,如當收信方知道一個單詞的前幾個字母為administrato時,立刻就可以猜到最後一個字母為r,那麼在這種情況下,最後一個字母就不帶任何信息量了,這就是一種先驗知識冗餘。其它冗餘是指那些主觀無法感受到的信息等帶來的冗餘。
通常數據壓縮技術可分為無損壓縮(又叫冗餘壓縮)和有損壓縮(又叫熵壓縮)兩大類。無損壓縮就是把數據中的冗餘去掉或減少,但這些冗餘量是可以重新插入到數據中的,因而不會產生失真。該方法一般用於文本數據的壓縮,它可以保證完全地恢復原始數據;其缺點是壓縮比小(其壓縮比一般為2:1至5:1)。有損壓縮是對熵進行壓縮,因而存在一定程度的失真;它主要用於對聲音、圖像、動態視頻等數據進行壓縮,壓縮比較高(其壓縮比一般高達20:1以上。最新被稱為「E—igen—ID」的壓縮技術可將基因數據壓縮1.5億倍)。對於多媒體圖像採用的有損壓縮的標准有靜態圖像壓縮標准(JPEG標准,即『JointPhotographicExpertGroup』標准)和動態圖像壓縮標准(MPEG標准,即『MovingPictureExpertGroup』標准)。
JPEG利用了人眼的心理和生理特徵及其局限性來對彩色的、單色的和多灰度連續色調的、靜態圖像的、數字圖像的壓縮,因此它非常適合不太復雜的以及一般來源於真
實景物的圖像。它定義了兩種基本的壓縮演算法:一種是基於有失真的壓縮演算法,另一種是基於空間線性預測技術(DPCM)無失真的壓縮演算法。為了滿足各種需要,它制定了四種工作模式:無失真壓縮、基於DCT的順序工作方式、累進工作方式和分層工作方式。
MPEG用於活動影像的壓縮。MPEG標准具體包三部分內容:(1)MPEG視頻、(2)MPEG音頻、(3)MP系統(視頻和音頻的同步)。MPEG視頻是標準的核心分,它採用了幀內和幀間相結合的壓縮方法,以離散余變換(DCT)和運動補償兩項技術為基礎,在圖像質量基不變的情況下,MPEG可把圖像壓縮至1/100或更MPEG音頻壓縮演算法則是根據人耳屏蔽濾波功能。利用音響心理學的基本原理,即「某些頻率的音響在重放其頻率的音頻時聽不到」這樣一個特性,將那些人耳完全不到或基本上聽到的多餘音頻信號壓縮掉,最後使音頻號的壓縮比達到8:1或更高,音質逼真,與CD唱片可媲美。按照MPEG標准,MPEG數據流包含系統層和壓層數據。系統層含有定時信號,圖像和聲音的同步、多
分配等信息。壓縮層包含經壓縮後的實際的圖像和聲數據,該數據流將視頻、音頻信號復合及同步後,其數據輸率為1.5MB/s。其中壓縮圖像數據傳輸率為1.2M壓縮聲音傳輸率為0.2MB/s。
MPEG標準的發展經歷了MPEG—I,MPEG一2、MPEG一4、MPEG-7、MPEG一21等不同層次。在MPEG的不同標准中,每—個標准都是建立在前面的標准之上的,並與前面的標准向後的兼容。目前在圖像壓縮中,應用得較多的是MPEG一4標准,MPEG-是在MPEG-2基礎上作了很大的擴充,主要目標是多媒體應用。在MPEG一2標准中,我們的觀念是單幅圖像,而且包含了一幅圖像的全部元素。在MPEG一4標准下,我們的觀念變為多圖像元素,其中的每—個多圖像元素都是獨立編碼處理的。該標准包含了為接收器所用的指令,告訴接收器如何構成最終的圖像。
上圖既表示了MPEG一4解碼器的概念,又比較清楚地描繪了每個部件的用途。這里不是使用單一的視頻或音頻解碼器,而是使用若干個解碼器,其中的每一個解碼器只接收某個特定的圖像(或聲音)元素,並完成解碼操作。每個解碼緩沖器只接收屬於它自己的靈敏據流,並轉送給解碼器。復合存儲器完成圖像元素的存儲,並將它們送到顯示器的恰當位置。音頻的情況也是這樣,但顯然不同點是要求同時提供所有的元素。數據上的時間標記保證這些元素在時間上能正確同步。MPEG一4標准對自然元素(實物圖像)和合成元素進行區分和規定,計算機生成的動畫是合成元素的一個例子。比如,一幅完整的圖像可以包含一幅實際的背景圖,並在前面有一幅動畫或者有另外一幅自然圖像。這樣的每一幅圖像都可以作最佳壓縮,並互相獨立地傳送到接收器,接收器知道如何把這些元素組合在一起。在MPEG一2標准中,圖像被看作一個整體來壓縮;而在MPEG一4標准下,對圖像中的每一個元素進行優化壓縮。靜止的背景不必壓縮到以後的I幀之中去,否則會使帶寬的使用變得很緊張。而如果這個背景圖像靜止10秒鍾,就只要傳送一次(假設我們不必擔心有人在該時間內切人此頻道),需要不斷傳送的僅是前台的比較小的圖像元素。對有些節目類型,這樣做會節省大量的帶寬。MPEG一4標准對音頻的處理也是相同的。例如,有一位獨唱演員,伴隨有電子合成器,在MPEG一2標准下,我們必須先把獨唱和合成器作混合,然後再對合成的音頻信號進行壓縮與傳送。在MPEG一4標准下,我們可以對獨唱作單獨壓縮,然後再傳送樂器數字介面的聲軌信號,就可以使接收器重建伴音。當然,接收器必須能支持MIDI放音。與傳送合成的信號相比,分別傳送獨唱信號和MIDI數據要節省大量的帶寬。其它的節目類型同樣可以作類似的規定。MPEG一7標准又叫多媒體內容描述介面標准。圖像可以用色彩、紋理、形狀、運動等參數來描述,MPEG一7標準是依靠眾多的參數對圖像與聲音實現分類,並對它們的資料庫實現查詢。
二、多媒體數據壓縮技術的實現方法
目前多媒體壓縮技術的實現方法已有近百種,其中基於信源理論編碼的壓縮方法、離散餘弦變換(DCT)和小波分解技術壓縮演算法的研究更具有代表性。小波技術突破了傳統壓縮方法的局限性,引入了局部和全局相關去冗餘的新思想,具有較大的潛力,因此近幾年來吸引了眾多的研究者。在小波壓縮技術中,一幅圖像可以被分解為若干個叫做「小片」的區域;在每個小片中,圖像經濾波後被分解成若干個低頻與高頻分量。低頻分量可以用不同的解析度進行量化,即圖像的低頻部分需要許多的二進制位,以改善圖像重構時的信噪比。低頻元素採用精細量化,高頻分量可以量化得比較粗糙,因為你不太容易看到變化區域的雜訊與誤差。此外,碎片技術已經作為一種壓縮方法被提出,這種技術依靠實際圖形的重復特性。用碎片技術壓縮圖像時需要佔用大量的計算機資源,但可以獲得很好的結果。藉助於從DNA序列研究中發展出來的模式識別技術,能減少通過WAN鏈路的流量,最多時的壓縮比率能達到90%,從而為網路傳送圖像和聲音提供更大的壓縮比,減輕風絡負荷,更好地實現網路信息傳播。
三、壓縮原理
由於圖像數據之間存在著一定的冗餘,所以使得數據的壓縮成為可能。資訊理論的創始人Shannon提出把數據看作是信息和冗餘度(rendancy)的組合。所謂冗餘度,是由於一副圖像的各像素之間存在著很大的相關性,可利用一些編碼的方法刪去它們,從而達到減少冗餘壓縮數據的目的。為了去掉數據中的冗餘,常常要考慮信號源的統計特性,或建立信號源的統計模型。圖像的冗餘包括以下幾種:
(1) 空間冗餘:像素點之間的相關性。
(2) 時間冗餘:活動圖像的兩個連續幀之間的冗餘。
(3) 信息熵冗餘:單位信息量大於其熵。
(4) 結構冗餘:圖像的區域上存在非常強的紋理結構。
(5) 知識冗餘:有固定的結構,如人的頭像。
(6) 視覺冗餘:某些圖像的失真是人眼不易覺察的。
對數字圖像進行壓縮通常利用兩個基本原理:
(1) 數字圖像的相關性。在圖像的同一行相鄰像素之間、活動圖像的相鄰幀的對應像素之間往往存在很強的相關性,去除或減少這些相關性,也就去除或減少圖像信息中的冗餘度,即實現了對數字圖像的壓縮。
(2) 人的視覺心理特徵。人的視覺對於邊緣急劇變化不敏感(視覺掩蓋效應),對顏色分辨力弱,利用這些特徵可以在相應部分適當降低編碼精度,而使人從視覺上並不感覺到圖像質量的下降,從而達到對數字圖像壓縮的目的。
編碼壓縮方法有許多種,從不同的角度出發有不同的分類方法,比如從資訊理論角度出發可分 為兩大類:
(1)冗餘度壓縮方法,也稱無損壓縮,信息保持編碼或熵編碼。具體講就是解碼圖像和壓縮 編碼前的圖像嚴格相同,沒有失真,從數學上講是一種可逆運算。
(2)信息量壓縮方法,也稱有損壓縮,失真度編碼或熵壓縮編碼。也就是講解碼圖像和原始圖像是有差別的,允許有一定的失真。
應用在多媒體中的圖像壓縮編碼方法,從壓縮編碼演算法原理上可以分類為:
(1)無損壓縮編碼種類 •哈夫曼編碼 •算術編碼 •行程編碼 •Lempel zev編碼
(2)有損壓縮編碼種類 •預測編碼:DPCM,運動補償 •頻率域方法:正文變換編碼(如DCT),子帶編碼 •空間域方法:統計分塊編碼 •模型方法:分形編碼,模型基編碼 •基於重要性:濾波,子采樣,比特分配,矢量量化
(3)混合編碼 •JBIG,H261,JPEG,MPEG等技術標准
衡量一個壓縮編碼方法優劣的重要指標
(1)壓縮比要高,有幾倍、幾十倍,也有幾百乃至幾千倍;
(2)壓縮與解壓縮要快,演算法要簡單,硬體實現容易;
(3)解壓縮的圖像質量要好。
四、JPEG圖像壓縮演算法
1..JPEG壓縮過程
JPEG壓縮分四個步驟實現:
1.顏色模式轉換及采樣;
2.DCT變換;
3.量化;
4.編碼。
2.1.顏色模式轉換及采樣
RGB色彩系統是我們最常用的表示顏色的方式。JPEG採用的是YCbCr色彩系統。想要用JPEG基本壓縮法處理全彩色圖像,得先把RGB顏色模式圖像數據,轉換為YCbCr顏色模式的數據。Y代表亮度,Cb和Cr則代表色度、飽和度。通過下列計算公式可完成數據轉換。
Y=0.2990R+0.5870G+0.1140B
Cb=-0.1687R-0.3313G+0.5000B+128
Cr=0.5000R-0.4187G-0.0813B+128
人類的眼晴對低頻的數據比對高頻的數據具有更高的敏感度,事實上,人類
的眼睛對亮度的改變也比對色彩的改變要敏感得多,也就是說Y成份的數據是比較重要的。既然Cb成份和Cr成份的數據比較相對不重要,就可以只取部分數據來處理。以增加壓縮的比例。JPEG通常有兩種采樣方式:YUV411和YUV422,它們所代表的意義是Y、Cb和Cr三個成份的資料取樣比例。
2.2.DCT變換
DCT變換的全稱是離散餘弦變換(Discrete Cosine Transform),是指將一組光強數據轉換成頻率數據,以便得知強度變化的情形。若對高頻的數據做些修飾,再轉回原來形式的數據時,顯然與原始數據有些差異,但是人類的眼睛卻是不容易辨認出來。
壓縮時,將原始圖像數據分成8*8數據單元矩陣,例如亮度值的第一個矩陣內容如下:
JPEG將整個亮度矩陣與色度Cb矩陣,飽和度Cr矩陣,視為一個基本單元稱作MCU。每個MCU所包含的矩陣數量不得超過10個。例如,行和列采樣的比例皆為4:2:2,則每個MCU將包含四個亮度矩陣,一個色度矩陣及一個飽和度矩陣。
當圖像數據分成一個8*8矩陣後,還必須將每個數值減去128,然後一一代入DCT變換公式中,即可達到DCT變換的目的。圖像數據值必須減去128,是因為DCT轉換公式所接受的數字范圍是在-128到+127之間。
DCT變換公式:
x,y代表圖像數據矩陣內某個數值的坐標位置
f(x,y)代表圖像數據矩陣內的數個數值
u,v代表DCT變換後矩陣內某個數值的坐標位置
F(u,v)代表DCT變換後矩陣內的某個數值
u=0 且 v=0 c(u)c(v)=1/1.414
u>0 或 v>0 c(u)c(v)=1
經過DCT變換後的矩陣數據自然數為頻率系數,這些系數以F(0,0)的值最大,稱為DC,其餘的63個頻率系數則多半是一些接近於0的正負浮點數,一概稱之為AC。
3.3、量化
圖像數據轉換為頻率系數後,還得接受一項量化程序,才能進入編碼階段。
量化階段需要兩個8*8矩陣數據,一個是專門處理亮度的頻率系數,另一個則是
針對色度的頻率系數,將頻率系數除以量化矩陣的值,取得與商數最近的整數,
即完成量化。
當頻率系數經過量化後,將頻率系數由浮點數轉變為整數,這才便於執行最
後的編碼。不過,經過量化階段後,所有數據只保留整數近似值,也就再度損失
了一些數據內容,JPEG提供的量化表如下:
2.4、編碼
Huffman編碼無專利權問題,成為JPEG最常用的編碼方式,Huffman編碼通常是以完整的MCU來進行的。
編碼時,每個矩陣數據的DC值與63個AC值,將分別使用不同的Huffman編碼表,而亮度與色度也需要不同的Huffman編碼表,所以一共需要四個編碼表,才能順利地完成JPEG編碼工作。
DC編碼
DC是彩採用差值脈沖編碼調制的差值編碼法,也就是在同一個圖像分量中取得每個DC值與前一個DC值的差值來編碼。DC採用差值脈沖編碼的主要原因是由於在連續色調的圖像中,其差值多半比原值小,對差值進行編碼所需的位數,會比對原值進行編碼所需的位數少許多。例如差值為5,它的二進製表示值為101,如果差值為-5,則先改為正整數5,再將其二進制轉換成1的補碼即可。所謂1的補碼,就是將每個Bit若值為0,便改成1;Bit為1,則變成0。差值5應保留的位數為3,下表即列出差值所應保留的Bit數與差值內容的對照。
在差值前端另外加入一些差值的霍夫曼碼值,例如亮度差值為5(101)的位數為3,則霍夫曼碼值應該是100,兩者連接在一起即為100101。下列兩份表格分別是亮度和色度DC差值的編碼表。根據這兩份表格內容,即可為DC差值加上霍夫曼碼值,完成DC的編碼工作。
AC編碼
AC編碼方式與DC略有不同,在AC編碼之前,首先得將63個AC值按Zig-zag排序,即按照下圖箭頭所指示的順序串聯起來。
63個AC值排列好的,將AC系數轉換成中間符號,中間符號表示為RRRR/SSSS,RRRR是指第非零的AC之前,其值為0的AC個數,SSSS是指AC值所需的位數,AC系數的范圍與SSSS的對應關系與DC差值Bits數與差值內容對照表相似。
如果連續為0的AC個數大於15,則用15/0來表示連續的16個0,15/0稱為ZRL(Zero Rum Length),而(0/0)稱為EOB(Enel of Block)用來表示其後所
剩餘的AC系數皆等於0,以中間符號值作為索引值,從相應的AC編碼表中找出適當的霍夫曼碼值,再與AC值相連即可。
例如某一組亮度的中間符為5/3,AC值為4,首先以5/3為索引值,從亮度AC的Huffman編碼表中找到1111111110011110霍夫曼碼值,於是加上原來100(4)即是用來取[5,4]的Huffman編碼1111111110011110100,[5,4]表示AC值為4的前面有5個零。
由於亮度AC,色度AC霍夫曼編碼表比較長,在此省略去,有興趣者可參閱相關書籍。
實現上述四個步驟,即完成一幅圖像的JPEG壓縮。
G. 實現視頻圖像數據壓縮的主要理論依據是什麼
實現視頻圖像數據壓縮的主要理論依據是香農提出的資訊理論。
隨著計算機技術和網路通信技術的飛速發展,實時可視化通信、多媒體通信、網路電視、視頻監控等業務越來越受到大家的關注。這樣,圖像壓縮技術就成為急需解決的問題。
數字圖像需要大量數據來表示,因此必須對其進行數據壓縮,但在壓縮的過程中,也會對傳輸介質、傳輸方法和存儲介質等提出較高要求。常用的圖像數據壓縮方法主要有哈夫曼編碼、行程編碼、算術編碼、離散餘弦變換編碼以及混合編碼等。
圖像壓縮是圖像存儲、處理和傳輸的基礎,它是用盡可能少的數據來進行圖像的存儲和傳輸。圖像數據是可以被壓縮的,支持這一理論的依據,允許圖像編碼有一定的失真;圖像數據的冗餘性。
大多數情況下,並不要求經壓縮後的圖像和原圖完全相同,而允許有少量失真,只要這些失真不被人眼察覺就可以接受。這給壓縮比的提高提供了有利的條件,可允許的失真愈多,可實現的壓縮效率就愈高。
因為圖像數據具有可壓縮性,有大量的所謂統計性質的多餘度,從而產生生理視覺上的多餘度,去掉這部分圖像數據並不影響視覺上的圖像質量,甚至去掉一些圖像細節對於實際圖像的質量也無致命的影響。
H. 下列不屬於無失真圖像壓縮編碼方法的是:
前三個肯定無失真,卡爾曼編碼沒聽過,只能選它了。
I. 數字圖像處理及算術編碼(或DCT壓縮編碼)模擬實現
這些都是很簡單的功能,為什麼不自己編程試試呢?
風之風信子會幫你解決這一次的問題,誰幫你引導以後的路呢?
%Date: 2011年9月26日20:25:53
%Function: 3*3均值濾波平滑
%Written by 風之風信子
clc;
clear;
clear all;
I=imread('peppers.png');
%這里改成你的路徑,
%切記圖像不能放在漢字文件夾。
%路徑例子:d:\matlab\moon_light_shadow.jpg
J=rgb2gray(I);
%彩色變黑白
imshow(J);
h=(1/9)*[1 1 1;1 1 1;1 1 1];
I2=imfilter(J,h);
%濾波(就是求平均的過程)
figure,imshow(I2);
%%%%直方圖均衡化 matlab實現:
clc;
clear all;
I = imread('d:\Image\hill_histogram.jpg');
I=rgb2gray(I);
J = histeq(I);
subplot(221);imshow(I);
subplot(222); imshow(J);
subplot(223); imhist(I,64)
subplot(224); imhist(J,64)
%%%%DCT編碼 matlab實現:
R=imread('d:\Image\car.jpg'); %裝入原始圖像
I=rgb2gray(R); %轉換成灰度圖像
J=dct2(I); %
colormap(jet(256));
J(abs(J)<100)=0; %將DCT變換值小於10的元素設為0
K=idct2(J);
figure; subplot(121);imshow(I,[0,255]);
title(' original'); %顯示原圖像
subplot(122);imshow(K,[0,255]);
title('IDCT ');%顯示反變