3、離散余弦變換 DCT
將圖像從色彩域轉換到頻率域,常用的變換方法有:
DCT變換的公式為:

f(i,j) 經 DCT 變換之后,F(0,0) 是直流系數,其他為交流系數。
還是舉例來說明一下。
8x8的原始圖像: 
推移128后,使其范圍變為 -128~127:
使用離散余弦變換,並四舍五入取最接近的整數:
上圖就是將取樣塊由時間域轉換為頻率域的 DCT 系數塊。
DCT 將原始圖像信息塊轉換成代表不同頻率分量的系數集,這有兩個優點:其一,信號常將其能量的大部分集中於頻率域的一個小范圍內,這樣一來,描述不重要的分量 只需要很少的比特數;其二,頻率域分解映射了人類視覺系統的處理過程,並允許后繼的量化過程滿足其靈敏度的要求。
當u,v = 0 時,離散余弦正變換(DCT)后的系數若為F(0,0)=1,則離散余弦反變換(IDCT)后的重現函數 f(x,y)=1/8,是個常 數值,所以將 F(0,0) 稱為直流(DC)系數;當 u,v≠0 時,正變換后的系數為 F(u,v)=0,則反變換后的重現函數 f(x,y) 不是常數,此時 正變換后的系數 F(u,v) 為交流(AC)系數。
DCT 后的64個 DCT 頻率系數與 DCT 前的64個像素塊相對應,DCT 過程的前后都是64個點,說明這個過程只是一個沒有壓縮作用的無損變換過程。
單獨一個圖像的全部 DCT 系數塊的頻譜幾乎都集中在最左上角的系數塊中。
DCT 輸出的頻率系數矩陣最左上角的直流 (DC)系數幅度最大,圖中為-415;以 DC 系數為出發點向下、向右的其它 DCT 系數,離 DC 分量越遠,頻率越高,幅度值越小,圖中最右下角為2,即圖像信息的大部分集中於直流系數及其附近的低頻頻譜上,離 DC 系數越來越遠的高頻頻譜幾乎不含圖像信息,甚至於只含雜波。
DCT 本身雖然沒有壓縮作用,卻為以后壓縮時的"取"、"舍" 奠定了必不可少的基礎。
4、量化
量化過程實際上就是對 DCT 系數的一個優化過程。它是利用了人眼對高頻部分不敏感的特性來實現數據的大幅簡化。
量化過程實際上是簡單地把頻率領域上每個成份,除以一個對於該成份的常數,且接着四舍五入取最接近的整數。
這是整個過程中的主要有損運算。
以這個結果來說,經常會把很多高頻率的成份四舍五入而接近0,且剩下很多會變成小的正或負數。
整個量化的目的是減小非“0”系數的幅度以及增加“0”值系數的數目。
量化是圖像質量下降的最主要原因。
因為人眼對亮度信號比對色差信號更敏感,因此使用了兩種量化表:亮度量化值和色差量化值。
使用這個量化矩陣與前面所得到的 DCT 系數矩陣:
如,使用?415(DC系數)且四舍五入得到最接近的整數
總體上來說,DCT 變換實際是空間域的低通濾波器。對 Y 分量采用細量化,對 UV 采用粗量化。
量化表是控制 JPEG 壓縮比的關鍵,這個步驟除掉了一些高頻量;另一個重要原因是所有圖片的點與點之間會有一個色彩過渡的過程,大量的圖像信息被包含在低頻率中,經過量化處理后,在高頻率段,將出現大量連續的零。
5、“Z”字形編排
量化后的數據,有一個很大的特點,就是直流分量相對於交流分量來說要大,而且交流分量中含有大量的0。這樣,對這個量化后的數據如何來進行簡化,從而再更大程度地進行壓縮呢。
這就出現了“Z”字形編排,如圖:
對於前面量化的系數所作的 “Z”字形編排結果就是:
底部 ?26,?3,0,?3,?3,?6,2,?4,1 ?4,1,1,5,1,2,?1,1,?1,2,0,0,0,0,0,?1,?1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 頂部
這樣做的特點就是會連續出現多個0,這樣很有利於使用簡單而直觀的行程編碼(RLE:Run Length Coding)對它們進行編碼。
8×8圖像塊經過 DCT 變換之后得到的 DC 直流系數有兩個特點,一是系數的數值比較大,二是相鄰8×8圖像塊的 DC 系數值變化不大。根據這個特點,JPEG 算法使用了差分脈沖調制編碼(DPCM)技術,對相鄰圖像塊之間量化 DC 系數的差值(Delta)進行編碼。即充分利用相鄰兩圖像塊的特性,來再次簡化數據。
即上面的 DC 分量-26,需要單獨處理。
而對於其他63個元素采用zig-zag(“Z”字形)行程編碼,以增加行程中連續0的個數。
