ウェーブレット変換
ウェーブレット圧縮は、画像圧縮(時にはビデオ圧縮やオーディオ圧縮)に適したデータ圧縮の一形態です。 注目すべき実装は、JPEG2000、静止画用のDjVuおよびECW、CineForm、およびBBCのDiracです。 目標は、画像データをファイル内の可能な限り少ないスペースに格納することです。 ウェーブレット圧縮は、可逆圧縮または非可逆圧縮のいずれかにすることができます。 ウェーブレット符号化は、dctのブロックベースのアルゴリズムの代わりにウェーブレットを使用する離散コサイン変換(DCT)符号化の変種である。
ウェーブレット変換を使用すると、オーディオの打楽器音や、夜空の星の画像などの二次元画像の高周波成分などのトランジェントを表現するのに適しています。 これは、データ信号の過渡要素が、より広範な離散コサイン変換などの他の変換が使用された場合の場合よりも少ない量の情報で表すことができるこ
離散ウェーブレット変換が正常に心電図(ECG)信号の圧縮に適用されていますこの作品では、連続した心周期の信号の対応するウェーブレット係数との間の高相関が線形予測を用いて利用されています。
ウェーブレット圧縮は、すべての種類のデータに適していません:過渡信号特性は良好なウェーブレット圧縮を意味し、滑らかで周期的な信号は、他の方法、特に伝統的な高調波圧縮(フーリエ変換などの周波数領域)によってより良好に圧縮されます。
ビデオ圧縮にウェーブレットを使用する現在の方法の実用的な問題については、x264開発者の日記:ウェーブレットの問題(2010)を参照してください。
Method Edit
最初にウェーブレット変換が適用されます。 これにより、画像にピクセルがあるのと同じ数の係数が生成されます(つまり、変換のみであるため、まだ圧縮はありません)。 これらの係数は、情報が統計的に少数の係数に集中しているため、より簡単に圧縮できます。 この原理は変換符号化と呼ばれます。 その後、係数は量子化され、量子化された値はエントロピー符号化および/またはラン長符号化される。
ウェーブレット圧縮のいくつかの1Dおよび2Dアプリケーションは、”ウェーブレット足跡”と呼ばれる技術を使用しています。
評価編集
画像圧縮の要件編集
ほとんどの自然な画像では、低い周波数のスペクトル密度が高くなります。 その結果、低周波信号(参照信号)の情報は一般的に保存され、詳細信号の情報は破棄される。 画像圧縮と再構成の観点から、ウェーブレットは画像圧縮を実行する際に次の基準を満たす必要があります:
- より多くの元の画像を参照信号に変換することができます。
- 基準信号に基づく最高忠実度の再構成。
- は、参照信号のみから再構成された画像にアーティファクトをもたらすべきではありません。
シフト分散とリンギング動作の要件edit
ウェーブレット画像圧縮システムは、フィルタと間引きを含むので、線形シフト変形システムと記述することができます。 一般的なウェーブレット変換図を以下に示します:
変換系には2つの解析フィルタ(ローパスフィルタh0(n){\displaystyle h_{0}(n)})が含まれる。)}
とハイパスフィルタh1(n){\displaystyle h_{1}(n)}
)、間引き処理、内挿処理、および2つの合成フィルタ(g0(n){\displaystyle g_{0}(n)}){\displaystyle h_{1}(n)}
))}
およびg1(n){\displaystyle g_{1}(n)})}
). 圧縮および再構成システムは一般に低周波成分を含み、これは解析フィルタh0(n){\displaystyle h_{0}(n)}である。)}
画像圧縮と合成フィルタg0(n){\displaystyle g_{0}(n)})}
再構成のために。 このような系を評価するために、インパルスδ(n−n i){\displaystyle\delta(n−n_{i})}を入力することができる。})}
そしてその再構成h(n−n i){\displaystyle h(n−n_{i})}を観察する})}
; 最適ウェーブレットは、最小シフト分散とサイドローブをh(n−n i){\displaystyle h(n−n_{i})}にもたらすものである。})}
. 厳密なシフト分散を持つウェーブレットは現実的ではありませんが、わずかなシフト分散のみを持つウェーブレットを選択することができます。 例えば、2つのフィルターのシフト分散を比較することができます:
長さ | フィルター係数 | 規則性 | ||
---|---|---|---|---|
ウェーブレットフィルター1 | H0 | 9 | .852699, .377402, -.110624, -.023849, .037828 | 1.068 |
G0 | 7 | .788486, .418092, -.040689, -.064539 | 1.701 | |
ウェーブレットフィルター2 | H0 | 6 | .788486, .047699, -.129078 | 0.701 |
G0 | 10 | .615051, .133389, -.067237, .006989, .018914 | 2.068 |
二つのフィルタのインパルス応答を観察することにより、第二のフィルタは入力位置に対してあまり敏感ではない(すなわち、シフト変形が少ない)と結論づけることができる。
画像の圧縮と再構成のもう一つの重要な問題は、システムの振動的挙動であり、再構成された画像に重大な望ましくないアーチファクトが生じる可能性がある。 これを実現するには、ウェーブレットフィルタのピークとサイドローブの比率が大きくなる必要があります。
これまで、画像圧縮システムの一次元変換について説明してきました。 この問題は二次元に拡張することができるが,より一般的な項であるシフト可能なマルチスケール変換を提案した。
インパルス応答の導出編集
先に述べたように、インパルス応答は、画像圧縮/再構成システムを評価するために使用することができます。
入力列x(n)=δ(n−n i){\displaystyle x(n)=\delta(n−n_{i})}
, 基準信号r1(n){\displaystyle r_{1}(n)})}
分解の1つのレベルの後にx(n)≤h0(n){\displaystyle x(n)*h_{0}(n)})}
は2倍の間引きを行い、h0(n){\displaystyle h_{0}(n)}{\displaystyle h_{0}(n)}{\displaystyle h_{0}(n)}{\displaystyle h_{0}(n)}は2倍の間引きを行う。)}
はローパスフィルタである。 同様に、次の基準信号r2(n){\displaystyle r_{2}(n)}も同様である。)}
はr1(n)∈h0(n){\displaystyle r_{1}(n)*h_{0}(n)}によって得られる。)}
は2倍の間引きを行います。 Lレベルの分解(および間引き)の後、解析応答は2つのL{\displaystyle2^{L}}のうち1つを保持することによって得られる。}}
サンプル: h A(L)(n,n i)=f h0(L)(n−n i/2L){\displaystyle h_{A}^{(L)}(n,n_{i})=f_{h0}^{(L)}(n−n_{i}/2^{L}){{(L)}{{(L)}/{(l)}/{(l)}/{(l)}/{(l)}/{(l)}/{(l)}/{(l)}/{(l)}/{(l)}/{(l)}/{(l})}
.
一方、信号x(n)を再構成するためには、基準信号r L(n)=δ(n−n j){\displaystyle r_{L}(n)=\delta(n−n_{j)}を考えることができる。})}
. 詳細信号がd i(n){\displaystyle d_{i}(n)}であれば)}
に対してd_{i}(n)}”>がゼロに等しい場合、前段(L−1{\displaystyle L-1}
stage)の基準信号はrである。l−1(n)=g0(n−2n j){\displaystyle R_{l−1}(n)=G_{0}(n−2n_{j)}{\displaystyle R_{l−1}(n)}=G_{0}(n-2n_{j}){\displaystyle R_{l-1}(n)}})}
, これはr L(n){\displaystyle r_{L}(n)}を補間することによって得られる。)}
とg0(n){\displaystyle g_{0}(n)}と畳み込む)}
。 同様に、この手順を繰り返して、ステージL−2,L−3,で基準信号r(n)
を得る。 . . . ,1{\displaystyle L-2,L-3,….,1}
. L回の反復の後、合成インパルス応答が計算されます: h s(L)(n,n i)=f g0(L)(n/2l−n j){\displaystyle h_{s}^{(L)}(n,n_{i})=f_{g0}}{(L)}(n/2^{L}-n_{j})}
, これは基準信号r L(n){\displaystyle r_{L}(n)}を関連させるものである。)}
と再構成された信号。
全体的なLレベルの分析/合成システムを得るために、分析応答と合成応答を以下のように組み合わせます:
hとS(L)(n,n)=water k f h0(L)(k−n/2L)f g0(L)(n/2l−k){\displaystyle h_{MP}^{(L)}(n,n_{i})=\sum_{k}f_{h0}^{(L)}(k−n_{i}/2^{L})f_{g0}^{(L)}(n/2L){\displaystyle h_{MP}^{(L)}(n,n_{i}){\displaystyle h_{MP}f{(L)}(n,n_{i}){\displaystyle h_{MP}f{(L)}(n,n_{i}){\displaystyle h_{MP}f{(l)}(n,n_{i}){\displaystyle h_{MP}f{(l)}(n,n_{i}){\displaystyle2^{l}−k)}