天天看點

圖像處理複習3———圖像編碼和顔色模型圖像處理複習

圖像處理複習

CH6 圖像編碼

6.1 編碼與備援

圖像編碼,就是對圖像源資料按一定的規則進行變換群組合,進而達到以盡可能少的代碼來表示盡可能多的資料的目的

編碼實作了壓縮,是以又稱之為壓縮編碼

圖像能夠壓縮是因為為壓縮圖像中存在資訊的備援,一般将備援分成三類:

  • 編碼備援:自然編碼将所有灰階值等長編碼,出現頻率高的灰階值全局相對碼字長度較大
  • 像素相關性備援:幀内像素資訊備援、幀間像素資訊備援
  • 視覺備援:人眼對不同視覺資訊有不同敏感度,并且人眼分辨率有限

6.2 資訊熵和編碼性能參數

(1)熵

設圖像灰階集集合 d=d1,d2,...,dm , dk 出現頻率為 p(dk) ,那麼有該圖像的熵為:

H(d)=−∑i=1mp(di)log2p(di)

(2)無失真編碼定理

無失真編碼定理:在無幹擾條件下,存在一種無失真的編碼方法,使編碼的平均碼長與信源的熵 H(d) 無限接近

推論:

  1. 若目前編碼平均碼長大于 H(d) 則一定可以設計出平均碼長更短的無失真編碼方法
  2. 平均碼長小于 H(d) 的無失真編碼不存在

(3)編碼性能參數

  • 平均碼長: L=∑mi=1p(di)l(di) ,其中 l(di) 是灰階級為 di 的碼長,機關是比特每像素
  • 編碼效率: η=H(d)L
  • 備援度: Rd=1−η
  • 壓縮比: C=nnd

6.3 簡單編碼

(1)Huffman編碼

每次選兩個機率最小的節點構造一個新節點(新節點機率為兩節點機率之和),直到構造出一棵二叉樹(根節點機率為1),然後左0右1标記樹枝,最後從根節點到葉節點路徑上的标号串連起來既是該節點的Huffman編碼

Huffman編碼是最優編碼,編碼效率很高,但是計算量較大,并且有一個緻命問題:

  • 當各灰階機率接近時編碼(都比較小)長度會較長,可能會超過自然編碼長度,導緻不壓縮反而資料量增大

解決:分子塊獨立Huffman編碼

(2)其他亞最優編碼

以下編碼均是變長的亞最優編碼

  1. B2 編碼:兩位資訊位編碼,一位标志位,按機率從大到小依次安排較短編碼
  2. 二進制平移碼:3位資訊位作為一段,按機率從大到小依次安排段數較小的碼,并且保證隻有最後一段不是111(其餘均是)
  3. 截斷Huffman編碼:隻對最可能出現的M個符号進行哈夫曼編碼,而對其它的碼都用在1個合适的定長碼前加1個字首碼來表示
  4. Huffman平移碼:分塊,所有塊内字尾和第一塊的huffman編碼相同,各塊再增加字首區分

截斷Huffman編碼具體步驟是:

  1. 重新排列信源符号使它們的機率單減
  2. 選取一個合适的M
  3. 将後N-M個節點機率合并看成一個節點A
  4. 對M+1個節點進行huffman編碼
  5. 前M個節點編碼就是配置設定的huffman碼
  6. 後N-M個節點字首為節點A的huffman碼,并配置設定最小長度的定長碼作為字尾

平移Huffman編碼的具體步驟是:

  1. 重新排列信源符号使它們的機率單減
  2. 将符号總數分成相同大小的符号塊
  3. 對第一塊中節點和剩餘節點的合并節點A進行huffman編碼
  4. 第一塊節點編碼就是配置設定的huffman碼
  5. 剩餘每塊的字尾按同樣位序取第一塊中配置設定的huffman碼
  6. A的huffman碼作為字首,循環串連作為後面塊的字首:如A的huffman碼是00,那麼第二塊字首取00,第三塊字首取0000

注,ppt中表述的太含蓄沒看懂,是參考這個連結弄懂的:http://netclass.csu.edu.cn/NCourse/hep042/005/li6.html

(3)編碼舉例

圖像處理複習3———圖像編碼和顔色模型圖像處理複習

說明:

  • 二進制碼即自然碼
  • 二進制平移碼的構造方法之前說的不是很詳細,可以參考Huffman平移碼了解平移的概念
  • Huffman和 B2 比較易懂
  • 截斷huffman碼取M=12,把後N-M=9個節點看成一個節點做Huffman編碼
  • 二進制平移碼和Huffman平移碼均取塊大小為7,那麼就按照前7個節點和合并的節點的編碼确定各塊的字首和字尾

6.4 變換編碼

圖像資料經過正交變換後絕大部分資訊集中在少數變換系數上,通過對這些系數的量化實作圖像壓縮,最常用的正交變換是DCT

正交變換圖像編碼的一般步驟為:

  • 壓縮:輸入 → 構造子圖像 → 正交變換 → 量化 → 編碼
  • 解壓:解碼 → 反正交變換 → 合并子圖像 → 輸出

(1)DCT變換編碼

DCT圖像編碼的一般步驟為:

  • 壓縮:輸入 → 構造子圖像 → DCT變換 → 除以量化矩陣 → 取整 → 編碼
  • 解壓:解碼 → 乘以量化矩陣 → DCT逆變換 → 取整 → 合并子圖像 → 輸出

核心思路是對DCT變換後的圖像(集中)再進行編碼,如Huffman編碼此時效率更高

CH7 彩色圖像處理

7.1 彩色模型

(1)RGB

光的三基色為R、G、B,那麼所有顔色可表示為C=rR+gG+bB,三元組(1,b,c)就是RGB顔色模型中顔色表示

(2)HIS

字母的含義為:

  • H:亮度
  • I:色度/色相,0度為紅色、120度為綠色、240度為藍色
  • S:飽和度,色環中用原點到彩色點的半徑表示飽和度(越靠近中心飽和度越低)

RGB到HIS轉換:

I=13‾‾√(R+G+B)S=1−3min(R,G,B)R+G+BH=⎧⎩⎨⎪⎪θ,G≥B2π−θ,G<B其中θ=arccos(R−G)+(R−B)2(R−G)2+(R−B)(G−B)‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾√

(3)YUV

Y是亮度,U和V是色差:

Y=0.299R+0.587G+0.114BU=B−YV=R−Y

(4)YCbCr

Y是亮度,Cb和Cr是色差:

Y=0.299R+0.587G+0.114BCb=2(1−0.114)(B−Y)Cr=2(1−0.299)(R−Y)

繼續閱讀