ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ...

43
ウェーブレット変換と 画像圧縮 Akira Kubo http://micelle.org

Upload: others

Post on 26-Mar-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

ウェーブレット変換と画像圧縮

Akira Kubo http://micelle.org

Page 2: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

変換 量子化画像

変換で偏りを作る量子化で削る

Page 3: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

変換 量子化画像

変換で偏りを作る量子化で削る

フーリエ変換 重み付きQ行列

Page 4: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

• フーリエ変換• 離散コサイン変換• ウェーブレット変換• ...

変換

Page 5: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

フーリエ ウェーブレット

変換方法 FFT WDT(Daubechies)

重み行列分割

低/中/高均等

LL2/HL2,HH2,LH2,HH2/

HL,HH,LH

圧縮重み付量子化

閾値+重み付量子化

※WDTにはRice Wavelet Toolbox を使用

Page 6: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

LL2 HL2HL

LH2 HH2

LH HH

Page 7: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

Sample2: 圧縮率

Page 8: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

Sample2: 圧縮率

Page 9: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

Sample2: MSE

Page 10: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

Sample2: MSE

Page 11: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

Lenna: 圧縮率

Page 12: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

Lenna: 圧縮率

Page 13: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

Lenna: MSE

Page 14: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

Lenna: MSE

Page 15: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

離散フーリエ変換

F (u, v) =1!XY

X!1!

x=0

Y!1!

y=0

f(x, y)e!j2!(uxX + vy

Y )

Page 16: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

離散フーリエ変換

無限に長い

F (u, v) =1!XY

X!1!

x=0

Y!1!

y=0

f(x, y)e!j2!(uxX + vy

Y )

Page 17: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

f

局所的な分析が苦手

Page 18: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

持続時間の短い波(さざ波)とマッチングをとる

0

1

-1

Haarウェーブレット

1

Page 19: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

ウェーブレットを拡大縮小、移動して相関をとる

拡大・縮小

0 0

移動

Page 20: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

!(t)1

1Haarスケーリング関数

0

Page 21: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

fj(t) =!

k

s(j)k !j,k(t)

!(t)1

1Haarスケーリング関数

0

Page 22: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

fj(t) =!

k

s(j)k !j,k(t)

s(j)k =

! +!

"!f(t)!j,k(t! k)dt

スケーリング係数

!j,k(t) = 2!j2 (2!jt! k)

!(t)の平行移動・拡大/縮小

!(t)1

1Haarスケーリング関数

0

Page 23: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

fj(t) =!

k

s(j)k !j,k(t)

s(j)k =

! +!

"!f(t)!j,k(t! k)dt

スケーリング係数

!j,k(t) = 2!j2 (2!jt! k)

!(t)の平行移動・拡大/縮小

スケーリング関数による近似関数

f(t) ! f0(t) =!

k

s(0)k !0,k(t)

!(t)1

1Haarスケーリング関数

0

Page 24: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

fj(t) =!

k

s(j)k !j,k(t)

Page 25: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

fj(t) =!

k

s(j)k !j,k(t)

f0(t) = f1(t) + g1(t)f1(t) = f2(t) + g2(t)

←欠落分

Page 26: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

fj(t) =!

k

s(j)k !j,k(t)

...

f0(t) = f1(t) + g1(t)f1(t) = f2(t) + g2(t)

←欠落分

Page 27: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

fj(t) =!

k

s(j)k !j,k(t)

...

f0(t) = f1(t) + g1(t)f1(t) = f2(t) + g2(t)

←欠落分

=J!

j=1

gj(t) + fJ(t)

1~JレベルのJ個の解像度で表現

f0(t) = g1(t) + g2(t) + ... + gJ(t) + fJ(t)

Page 28: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

f0(t) =J!

j=1

gj(t) + fJ(t)

0

1

-1

Haarウェーブレット

1

Page 29: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

f0(t) =J!

j=1

gj(t) + fJ(t)

0

1

-1

Haarウェーブレット

1 gj(t) =!

k

!(j)k "1,k(t)

Page 30: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

f0(t) =J!

j=1

gj(t) + fJ(t)

0

1

-1

Haarウェーブレット

1 gj(t) =!

k

!(j)k "1,k(t)

!(j)k =

! +!

"!f(t)"j,k(t)dt

!j,k(t) = 2!j2 !(2!jt! k)

Page 31: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

f0(t) =J!

j=1

gj(t) + fJ(t)

0

1

-1

Haarウェーブレット

1 gj(t) =!

k

!(j)k "1,k(t)

!(j)k =

! +!

"!f(t)"j,k(t)dt

!j,k(t) = 2!j2 !(2!jt! k)

f0(t) =J!

j=1

!

k

!(j)k "j,k(t) + fJ(t)

Page 32: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2
Page 33: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

L H

Page 34: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

LL HL

LH HH

垂直方向高周波成分

水平方向高周波成分

対角方向高周波成分

原画像(S0)平均化低周波成分

Page 35: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

LL2 HL2HL

LH2 HH2

LH HH

垂直方向高周波成分

水平方向高周波成分

対角方向高周波成分

Page 36: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2
Page 37: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

LL2 HL2HL

LH2 HH2

LH HH

Page 38: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

Courtesy NASA/JPL-Caltech/Harvard-Smithsonian CfA

6020x2905

Page 39: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

Courtesy NASA/JPL-Caltech/Harvard-Smithsonian CfA

414x414

6020x2905

Page 40: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

元画像

Page 41: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

元画像

(上)JPEG 280KB

(下)JPEG 2000 248KB

Page 42: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

三谷政昭:やり直しのための通信数学, CQ出版社, 2008

中野宏毅・山本鎭男・吉田靖夫: ウェーブレットによる信号処理と画像

処理, 共立出版, 1999

参考文献

Page 43: ウェーブレット変換とmicelle.org/trash/wavelet/wavelet.pdfフーリエ ウェーブレット 変換方法 FFT WDT (Daubechies) 重み行列 分割 低/中/高 均等 LL2

This work licensed under a Creative Commons License

http://creativecommons.org/licenses/by-sa/2.1/jp/