メインコンテンツ

ウェーブレットによるデータ圧縮

あるウェーブレット基底が与えられたとき、その基底の圧縮特性は、主に信号のウェーブレット領域表現の相対的なスパース性に関連しています。圧縮の概念は、(適切に選択されたレベルにおける) 少数の Approximation 係数、およびいくつかの Detail 係数を使用して、通常の信号成分を正確に近似できるという考えに基づいています。

ノイズ除去と同様に、圧縮は次の 3 つの手順で行います。

  1. 分解

    ウェーブレットを選択し、レベル N を選択します。レベル N における信号 s のウェーブレット分解を計算します。

  2. Detail 係数のしきい値処理

    1 から N までの各レベルについて、しきい値を選択して Detail 係数にハードなしきい値処理を適用します。

  3. 再構成

    レベル N の元の Approximation 係数と、レベル 1 から N までの変更済みの Detail 係数を使用して、ウェーブレットの再構成を計算します。

ノイズ除去手順との違いは、手順 2 にあります。利用可能な圧縮方法は 2 つあります。最初のアプローチでは、信号のウェーブレット拡張を利用し、最大の絶対値係数を維持します。この場合、グローバルしきい値、圧縮性能または相対的な二乗ノルムの回復性能を設定します。

したがって、1 つのパラメーターのみを選択する必要があります。2 番目のアプローチでは、決定済みのレベルに依存するしきい値を視覚的に適用します。

最適化されていないウェーブレットが与えられたときに、グローバルしきい値を使用して圧縮を行い、信号 (信号の圧縮を参照) とイメージ (イメージの圧縮を参照) に対してほぼ完全な二乗ノルム復元結果を生成する実際の 2 つの例について見てみましょう。

% Load electrical signal and select a part. 
load leleccum; indx = 2600:3100; 
x = leleccum(indx);
% Perform wavelet decomposition of the signal. 
n = 3; w = 'db3'; 
[c,l] = wavedec(x,n,w);
% Compress using a fixed threshold. 
thr = 35; 
keepapp = 1;
[xd,cxd,lxd,perf0,perfl2] = ...
   wdencmp('gbl',c,l,w,n,thr,'h',keepapp);

信号の圧縮

結果は、ノルムの復元基準だけでなく、視認性の観点からも非常に満足のいくものとなっています。再構成では係数の 15% のみが使用されています。

% Load original image. 
load woman; x = X(100:200,100:200); 
nbc = size(map,1);

% Wavelet decomposition of x. 
n = 5; w = 'sym2'; [c,l] = wavedec2(x,n,w);

% Wavelet coefficients thresholding. 
thr = 20; 
keepapp = 1;
[xd,cxd,lxd,perf0,perfl2] = ...
                 wdencmp('gbl',c,l,w,n,thr,'h',keepapp);

イメージの圧縮

ウェーブレット表現が密すぎる場合は、ウェーブレット パケットのフレームワークで同様の手法を使用することで、よりスパースな表現を取得できます。次に、目的 (ノイズ除去または圧縮) に応じてエントロピーと同様の基準を適切に選択することで、その基準に関して最適な分解を決定することができます。

圧縮スコア

直交ウェーブレットを使用して圧縮する場合、"残りのエネルギー" (%) は次のように定義されます。

100*(vector-norm(coeffs of the current decomposition,2))2(vector-norm(original signal,2))2

双直交ウェーブレットを使用して圧縮する場合、上記の定義はあまり便利ではありません。代わりに、次のように定義される "エネルギー比" (%) を使用します。

100*(vector-norm(compressed signal,2))2(vector-norm(original signal,2))2

また、調整パラメーターとして、次のように定義される "ノルム係数の復元" を使用します。

100*(vector-norm(coeffs of the current decomposition,2))2(vector-norm(coeffs of the original decomposition,2))2

"0 の数" (%) は次のように定義されます。

100*(number of zeros of the current decomposition)(number of coefficients)