朱式幸福

關於部落格
親子旅遊記錄
加一點點的心得感想
  • 63111

    累積人氣

  • 40

    今日人氣

    0

    訂閱人氣

AMBTC using Matlab

 BTC 的改良版
Absolute Moment Block Truncation Coding : AMBTC
 在 BTC 壓縮演算法中,需利用各區塊的標準差(standard deviation)來計算解壓縮後的還原值。由於標準差需要較複雜的計算,因此AMBTC改由平均值來取代標準差,可以減少複雜的運算,並可提升影像品質。

AMBTC 的演算法
1.將影像切成4x4的區塊,每一區塊有16個像素 f(x1), f(x2), ..., f(x16),每一區塊的作法完全相同。
2.計算區塊的平均值

3.計算區塊中,亮區塊(影像值大於等於平均值的像素)的平均值H, 與暗區塊( 影像值小於平均值的像素)的平均值L

 其中K代表亮區塊的像素個數, 16-K就是暗區塊的像素個數

4. 每一區塊壓縮後的值 g(x1)...g(x16),分別為


所以每一區塊經AMBTC壓縮後,得到一個4X4的二元影像及兩個數值 H 和 L。
壓縮後每個像素需要


壓縮比就是 8 /2 = 4倍。

解壓縮的方法與 BTC 完全相同,也就是壓縮影像中像素值為1的,其解壓縮後的像素值為 H, 其它就是 L, 也就是



現在用matlab寫程式吧!

第12行:萬一區塊內像素值都一樣(檔k=16),避免除數為零,所以增加了一個 if 條件。
第15行:為了真實反應解壓縮後的像素值仍為八位元,所以H跟L要先四捨五入後再儲存。

實際執行一個例子吧!



可以自己拿計算機算算看數字對不對?

接下來show一下結果的侷部圖
其指令為:



左邊為原圖、右邊為解壓縮後的圖

--- end ---

 


相簿設定
標籤設定
相簿狀態