當前位置:首頁 » 操作系統 » 圖像壓縮編碼演算法

圖像壓縮編碼演算法

發布時間: 2025-03-10 20:48:23

Ⅰ JPEG是矢量圖像壓縮編碼標准

JPEG(Joint Photographic Experts Group) 是一個由 ISO和IEC兩個組織機構聯合組成的一個專家組,負責制定靜態的數字圖像數據壓縮編碼標准,這個專家組開發的演算法稱為JPEG演算法,並且成為國際上通用的標准,因此又稱為JPEG標准。JPEG是一個適用范圍很廣的靜態圖像數據壓縮標准,既可用於灰度圖像又可用於彩色圖像。

JPEG專家組開發了兩種基本的壓縮演算法,一種是採用以離散餘弦變換(Discrete Cosine Transform,DCT)為基礎的有損壓縮演算法,另一種是採用以預測技術為基礎的無損壓縮演算法。使用有損壓縮演算法時,在壓縮比為25:1的情況下,壓縮後還原得到的圖像與原始圖像相比較,非圖像專家難於找出它們之間的區別,因此得到了廣泛的應用。例如,在V-CD和DVD-Video電視圖像壓縮技術中,就使用JPEG的有損壓縮演算法來取消空間方向上的冗餘數據。為了在保證圖像質量的前提下進一步提高壓縮比,近年來JPEG專家組正在制定JPEG 2000(簡稱JP 2000)標准,這個標准中將採用小波變換(wavelet)演算法。

JPEG壓縮是有損壓縮,它利用了人的視角系統的特性,使用量化和無損壓縮編碼相結合來去掉視角的冗餘信息和數據本身的冗餘信息。壓縮編碼大致分成三個步驟:

1.使用正向離散餘弦變換(forward discrete cosine transform,FDCT)把空間域表示的圖變換成頻率域表示的圖。

2.使用加權函數對DCT系數進行量化,這個加權函數對於人的視覺系統是最佳的。

3.使用霍夫曼可變字長編碼器對量化系數進行編碼。

解碼或者叫做解壓縮的過程與壓縮編碼過程正好相反。

JPEG演算法與彩色空間無關,因此「RGB到YUV變換」和「YUV到RGB變換」不包含在JPEG演算法中。JPEG演算法處理的彩色圖像是單獨的彩色分量圖像,因此它可以壓縮來自不同彩色空間的數據,如RGB, YCbCr和CMYK。

JPEG壓縮編碼演算法的主要計算步驟如下:

1.正向離散餘弦變換(FDCT)。

2.量化(quantization)。

3.Z字形編碼(zigzag scan)。

4.使用差分脈沖編碼調制(differential pulse code molation,DPCM)對直流系數(DC)進行編碼。

5.使用行程長度編碼(run-length encoding,RLE)對交流系數(AC)進行編碼。

6.熵編碼(entropy coding)。

2. 量化

量化是對經過FDCT變換後的頻率系數進行量化。量化的目的是減小非「0」系數的幅度以及增加「0」值系數的數目。量化是圖像質量下降的最主要原因。

對於有損壓縮演算法,JPEG演算法使用均勻量化器進行量化,量化步距是按照系數所在的位置和每種顏色分量的色調值來確定。因為人眼對亮度信號比對色差信號更敏感,因此使用了兩種量化表:亮度量化值和色差量化值。此外,由於人眼對低頻分量的圖像比對高頻分量的圖像更敏感,因此圖中的左上角的量化步距要比右下角的量化步距小。

3. Z字形編排

量化後的系數要重新編排,目的是為了增加連續的「0」系數的個數,就是「0」的遊程長度,方法是按照Z字形的式樣編排,如圖5-17所示。這樣就把一個8 ? 8的矩陣變成一個1 ? 64的矢量,頻率較低的系數放在矢量的頂部。

4. 直流系數的編碼

8 ? 8圖像塊經過DCT變換之後得到的DC直流系數有兩個特點,一是系數的數值比較大,二是相鄰8 ? 8圖像塊的DC系數值變化不大。根據這個特點,JPEG演算法使用了差分脈沖調制編碼(DPCM)技術,對相鄰圖像塊之間量化DC系數的差值(Delta)進行編碼,

Delta=DC(0, 0)k-DC(0, 0)k-1 ........ (5-5)

5. 交流系數的編碼

量化AC系數的特點是1 ? 64矢量中包含有許多「0」系數,並且許多「0」是連續的,因此使用非常簡單和直觀的遊程長度編碼(RLE)對它們進行編碼。

JPEG使用了1個位元組的高4位來表示連續「0」的個數,而使用它的低4位來表示編碼下一個非「0」系數所需要的位數,跟在它後面的是量化AC系數的數值。

6. 熵編碼

使用熵編碼還可以對DPCM編碼後的直流DC系數和RLE編碼後的交流AC系數作進一步的壓縮。

在JPEG有損壓縮演算法中,使用霍夫曼編碼器來減少熵。使用霍夫曼編碼器的理由是可以使用很簡單的查表(lookup table)方法進行編碼。壓縮數據符號時,霍夫曼編碼器對出現頻度比較高的符號分配比較短的代碼,而對出現頻度較低的符號分配比較長的代碼。這種可變長度的霍夫曼碼表可以事先進行定義。

熱點內容
網址批量訪問 發布:2025-03-11 00:40:38 瀏覽:749
粉紅視頻腳本 發布:2025-03-11 00:39:56 瀏覽:444
伺服器名稱或ip從哪裡看 發布:2025-03-11 00:35:44 瀏覽:491
日本細菌戰資料庫 發布:2025-03-11 00:29:34 瀏覽:423
釣魚直播用什麼配置 發布:2025-03-11 00:28:39 瀏覽:415
高配置伺服器搭建虛擬機集群 發布:2025-03-11 00:27:18 瀏覽:369
在線印刷源碼 發布:2025-03-11 00:25:06 瀏覽:718
python矩陣轉置函數 發布:2025-03-11 00:22:53 瀏覽:547
java緩存策略 發布:2025-03-11 00:18:26 瀏覽:897
cc怎麼上傳視頻 發布:2025-03-11 00:17:51 瀏覽:805