1. 程式人生 > 其它 >基於小波變換的影象壓縮

基於小波變換的影象壓縮

技術標籤:程式設計其他

基於小波變換的影象壓縮
是指對影象應用小波變換演算法來進行多解析度分解,通過對小波係數進行編碼來實現影象壓縮。

處理流程為

   1,對影象進行多級小波分解,得到相應的小波係數;

   2,對每層小波係數進行量化,得到量化係數物件;

   3,對量化後的係數物件進行編碼,得到壓縮結果。

在這裡插入圖片描述

   影象矩陣是二維矩陣,假設影象矩陣大小為N*N,且n=2^n,那麼經過一層小波變換後,原始影象便分解為4個解析度為原來尺寸1/2的子帶區域(LL,HL,LH,HH),分別包含了相應頻帶的小波係數。這一過程相當於在水平、垂直方向上進行隔點取樣。下一步是進一步進行的2級小波分解。

LL頻帶保持了原始影象的內容資訊,影象的能量集中於次頻帶。對於影象水平、垂直方向均進行低通濾波得到;

HL頻帶保持了影象水平方向上的高頻邊緣資訊。對影象水平方向高通濾波和垂直方向低通濾波得到;

LH頻帶保持了影象垂直方向上的高頻邊緣資訊。對影象水平方向低通濾波和垂直方向高通濾波得到;

HH頻帶保持了影象在對角線方向上的高頻資訊。對影象水平、垂直方向均進行高通濾波得到。

一個影象經過小波分解後,可以得到一系列不同解析度的子影象,不同解析度的子影象對應的頻率也不同。高解析度(即高頻)子影象上大部分點的數值都接近於0,解析度越高,這種現象越明顯。要注意的是,在N級二維小波分解中,分解級別越高的子影象,頻率越低。子影象HL2、LH2、HH2的頻率要比子影象HL1、LH1、HH1的頻率低,相應地解析度也較低。根據不同解析度下小波變換系數的這種層次模型,我們可以得到以下三種簡單的影象壓縮方案。

方案一:舍高頻,取低頻
一幅影象最主要的表現部分是低頻部分,因此我們可以在小波重構時,只保留小波分解得到的低頻部分,而高頻部分系數作置0處理。這種方法得到的影象能量損失大,影象模糊,很少採用。
另外,也可以對高頻部分的區域性區域係數置0,這樣重構的影象就會有區域性模糊、其餘清晰的效果。
方案二:閾值法
對影象進行多級小波分解後,保留低頻係數不變,然後選取一個全域性閾值來處理各級高頻係數;或者不同級別的高頻係數用不同的閾值處理。絕對值低於閾值的高頻係數置0,否則保留。用保留的非零小波係數進行重構。Matlab中用函式ddencmp()可獲取壓縮過程中的預設閾值,用函式wdencmp()能對一維、二維訊號進行小波壓縮。

方案三:擷取法
將小波分解得到的全部係數按照絕對值大小排序,只保留最大的x %的係數,剩餘的係數置0。不過這種方法的壓縮比並不一定高。因為對於保留的係數,其位置資訊也要和係數值一起儲存下來,才能重構影象。並且,和原影象的畫素值相比,小波係數的變化範圍更大,因而也需要更多的空間來儲存。

以上內容是對所看到資料的總結
http://blog.sina.com.cn/s/blog_abd811ec0102yn9i.html
https://blog.csdn.net/chenyusiyuan/article/details/1881231