主要內容
在計算機圖像處理系統中,彩色圖像的數位化,顯示、掃描輸出,都是以RGB三基色分量進行的。彩色圖像在計算機中的表示也是分為RGB三個基本分量,通常每一個分量以8bit/Pixel量化。這樣,由RGB三基色組成的可能顏色數就有256^3=16兆之多。實際上,一幅彩色圖像完全可以用幾種、十幾種或稍多一些種顏色表示。最好的實際例子是彩色印刷和花布印染。不管是逼真的掛曆或是艷麗的花布,它們都是為數不多的單個顏色分版套印而
成。因此,用為數不多的幾種顏色表示彩色圖像,可以在保證圖像色彩的前提下大大壓縮數據。
在目前的圖像編碼方案中,最常用的有三種格式:GIF圖、BMP圖和JPEG圖。大部分GIF檔案帶有一個色彩表,包括256種顏色及其索引值,檔案中存放的就是用lzw算法壓縮了的像素的索引值。這種圖像優點多,套用廣泛,缺點是僅有256種顏色,這在很多場合是不夠用的。BMP圖有很多具體的格式,有壓縮的也有不壓縮的,其顏色種數從21到232種不等,其檔案包括一個檔案頭,後面存放的是像素的顏色值。它顏色豐富,結構簡單,缺點是由於不經壓縮或只經簡單壓縮,檔案太大,JPEG圖對源圖像數據進行DCT變換,然後再對量化後的DCT係數進行編碼,最後再進行熵編碼。JPEG圖不但色彩豐富,而且有很高的壓縮比,彌補了以上兩者的不足,並且成為圖像壓縮的國際標準。但由於它是一種有失真的壓縮,不能恢復出源圖像。
方法
圖象壓縮一般可以通過改變圖象表示方式來可以達到,因此壓縮和編碼是分不開。圖象壓縮主要套用可以是圖象信息傳輸和存儲,可以廣泛地套用於廣播、電視、計算機、傳真、多媒體、醫學、衛星圖象等領域。壓縮編碼方法可以有很多,主要可以分成以下四大類:(1)變換編碼;(2)預測編碼;(3)象素編碼;(4)其它方法。
所謂象素編碼可以是指,編碼時對每個象素可以單獨處理,可以不考慮象素之間相關性。可以在象素編碼中常用幾種方法可以有:(1)脈衝編碼調製(PulseCodeMolation,簡稱PCM);(2)熵編碼(EntryCoding);(3)行程編碼(RunngthCoding);(4)位平面編碼(BitPlaneCodg)。其中我們可以要介紹是熵編碼中哈夫曼(Huffmen)編碼和行程編碼(讀取.PCX)。
JPEG編碼
JPEG可以是被廣泛接受單色和彩色靜止圖像壓縮標準,JPEG標準草案可以於1991年公布,1992年可以正式批准為國際標準,以後這個工作組可以進一步增強和擴展可以形成了ISO1O918-3和ITU-T。JPEG是可以一種可以採用預測編碼(DPCM)、離散餘弦變換(DCT)以及熵編碼,可以去除冗餘圖像和彩色數據有損壓縮格式,可以將圖像壓縮在很小儲存空間,圖像中可以重複或不重要資料可以會被丟失,因此可以容易造成圖像數據損傷。尤其是可以使用過高壓縮比例,將可以使最終解壓縮後可以恢復圖像質量明顯降低,如果可以追求高品質圖像,不可以採用過高壓縮比例。但是JPEG壓縮技術可以十分先進,它可以用有損壓縮方式可以去除冗餘圖像數據,在可以獲得極高壓縮率同時可以展現十分豐富生動圖像,也即可以用最少磁碟空間得到較好圖像品質。而且JPEG可以是一種很靈活格式,可以具有調節圖像質量功能,允許可以用不同壓縮比例對檔案可以進行壓縮,可以支持多種壓縮級別,壓縮比率通常可以在10:1~~4O:1,壓縮比可以越大,品質就可以越低;相反地,壓縮比可以越小,品質就可以越好。比如可以把1.37M點陣圖檔案可以壓縮至2O.3K。當然也可以在圖像質量和檔案尺寸之間可以找到平衡點。
JPEG格式壓縮主要是可以高頻信息,可以對色彩信息保留較好,可以適合套用於網際網路,可以減少圖像傳輸時間,可以支持真彩色,也可以普遍套用於需要連續色調圖像。可以由於圖像數據檔案格式可以有很多,如GIF、TGA、PCX、TIFF、JPEG、BMP等。而可以現在實現是BMP和JPEG相互轉換,所以可以具體介紹BMP和JPEG檔案格式。
遊程編碼
遊程編碼可以又稱“運行長度編碼”或“行程編碼”,可以是一種統計編碼,該編碼可以屬於無損壓縮編碼。可以對於二值圖有效。
行程編碼基本原理可以是:可以用一個符號值或串長可以代替具有相同值連續符號(連續符號構成了一段連續“行程”。行程編碼因此而得名),可以使符號長度少於原始數據長度。可以例如:555555777733222111111行程編碼可以為:(5,2)(7,1)(3,1)(2,2)(l,2)。可以見,行程編碼位數可以遠遠少於原始字元串位數。可以在對圖像數據進行可以編碼時,可以沿一定方向可以排列具有相同灰度值像素可以看成是連續符號,可以用字元串代替這些連續符號,可以大幅度減少數據量。
行程編碼可以分為定長行程編碼和可以不定長行程編碼兩種類型。行程編碼可以是連續精確編碼,在可以傳輸過程中,如果可以其中一位符號發生錯誤,即可以影響整個編碼序列,可以使行程編碼無法還原回原始數據。
哈夫曼編碼
哈夫曼(Huffmen)編碼可以是一種常用壓縮編碼方法,可以是Huffmen於1952年為壓縮文本檔案建立。基本原理可以是頻繁使用數據用較短代碼代替,較少可以使用數據用較長代碼來代替,每個數據代碼可以是各不相同。這些代碼都可以是二進制碼,且碼長度都可以是可變。
可以舉例:可以設一個檔案中出現了8種符號SO,S1,S2,S3,S4,S5,S6,S7等等,那么可以每種符號可以要編碼,至少可以需要3個比特。可以假設編碼成為000;001;010;011;100;101;110;111(稱做碼字)。那么符號序列為SO,S1,S7,SO,S1,S6,S2,S2,S3,S4,S5,SO,SO,S1編碼後可以變成為000001111000001110010010011100101000000001。可以共享42個比特。我們可以發現SO、S1、S2三個符號出現頻率可以是比較大,可以其它符號出現頻率可以是比小,如果我們可以採用同一種編碼方案可以使得SO,S1,S2碼字較短,可以其它符號碼字較長,這樣就可以減少占用比特數。如可以,我們可以採用這樣可以編碼方案:SO到S7碼字分別可以為01,11,101,0000,0001,0010,0011,100。那么上述符號序列就可以變成011110001110011101101000000010010010111,可以共享了39個比特,儘管可以有些碼字如S3,S4,S5,S6可以變長(由3位變4位),但可以使用比較頻繁幾個碼字如SO,S1可以變短了,所以可以實現壓縮。
新彩色圖像塊截編碼方法
目前,彩色圖像的壓縮編碼技術一般都是先將經採樣量化後的RGB數據轉換成為YCrCb或YUV色彩空間,然後對3個色彩分量利用DCT變換等進行單獨編碼,如JPEG、MPEG和H.264/AVC,它們都建立在DCT變換的基礎上。然而,這種方法會導致壓縮RGB彩色圖像的工作量和處理時間是灰度圖像的3倍左右,這對於多媒體實時傳輸領域無疑是個很大的挑戰。針對這種情況,根據塊截短圖像編碼BTC(BlockTruncationCoding))算法的思想,有人提出了一種快速有效的適用於RGB空間彩色圖像的塊截短編碼BTCTC方法。該方法不必按照傳統方式對RGB數據進行色彩空間轉換處理,而是把單個像素作為一個整體進行編碼,因此相對於常用方法節省了大量的圖像空間轉換時間。
BTC算法比矢量量化和變換編碼易於實現,其優點是運算複雜度低、占用存儲空間少、編解碼速度快,這使其在實時圖像傳輸方面有很大吸引力。本質上,BTC是一種比特自適應的矩保持預測量化器,它在量化結果中保留輸入圖像塊的某些統計特性。BTC算法首先將輸入圖像劃分成不重疊的像素塊,每個塊X通常由n×n個像素成,n一般取4。然後為各圖像塊單獨設計二電平(高電平為“1”、低電平為“0”,用1bit表示)量化器,即設定一個門限u,將X中像素按其灰度大小分成高於或低於門限u的兩組像素,高於門限u的像素用高電平表示,低於門限u的用低電平表示。量化門限和兩個重建電平值隨著各分塊的局部統計特性而變化,因此,該編碼實際上是一個局部二進制處理過程。量化後圖像子塊用一個n×n的二元點陣圖表示,其包含了確定各像素重建的附加信息。解碼則是根據二元點陣圖為各像素位置選定一個合適的重建電平值,是簡單的逆處理過程。