[演習6-7]電子透かしの仕組み

[演習6-7]電子透かしの仕組み
10D7103001 高木祐輔
10D7103002 岩村優
10D7103003 李強
10D7103004 佐藤理恩
①
電子透かしの仕組み
② 電子透かしに求められていることとは??
③ 電子透かしはどのような応用がきくのか?
IPEx-d70123-Ex5-1-v1.doc
②+③
たとえば、デジタルデータ(画像・音楽・動画・音声ファイル)は著作権付きのブロッ
クがかかっていても簡単に複製することができる。従来だと、データの保護ができてい
なかったのに対して
箇条書きで今ある、電子透かしの製法を書きいちばん有名または一般的なのを
説明する程度!
-1.置換法
-2.周波数領域変換法
-3.拡散法
-4.統計的方法
-5.ベクトル量子化法
-6.その他
以下の埋め込み法については
小野束
:電子透かしとコンテンツ保護、(株)オーム社(2001)を参照しました。
個別に簡単に説明します。
1)置換法
画像はピクセル(画素)と呼ぶ点の並びで構成され、通常は 8 ビットで階調表現します。
したがって明るさは 0~255 のレベルを取ります。
ここで、例えば画像の一部が次のような 3×6 の画素数で構成されていたとします。
122
122 123
123 124
125
122
122 123
123 124
125
122
122 123
123 124
125
自然画像は値が緩やかに変化します。
ここで埋め込む情報が次の 3 ビットで構成されていたとしましょう。
埋め込み情報(Wi):110
埋め込み情報 Wi を先頭から 1 ビットずつ取り出しながらつぎのように変更します。
Wi は i 番目のビット、Cj は j 番目の画素を示します。
if Wi = 1 then Cj →ODD
if Wi = 0 then Cj →EVEN
画素の先頭から Wi を埋め込むと Cj は次のようになります。このような操作を施して
も画像上は何も変化が無かったように見えることでしょう。
視覚がだまされているのですね。
123
123 122
123 124
125
122
122 123
123 124
125
122
122 123
123 124
125
透かし情報を取り出すときは簡単です。
if Cj = ODD then 1
else 0
となります。
音楽の CD は 16 ビットで量子化されているのに対し画像は 8 ビットです。これは耳の
ほうがダイナミックレンジが広いためなのです。細かい相違に対する感度も目は鈍感で
す。ですから同じ手法を音楽に利用するときは注意が必要です。ただし、CT や MRI
のような医療画像は 10 ビット以上でディジタル化されるので上記のような方法ではノ
イズを付加する結果となり危険です。
またこの方法はこのままではあまり実用的とは言えません。理由は階調を変化させてみ
ればわかります。お考えください。
2)周波数領域変換法
JPEG 圧縮の処理手順を考慮するととこの方法は理解しやすです。
JPEG 圧縮を超簡単にすると下記となります。
原画像→離散コサイン変換→量子化テーブルによる量子化→符号化
この過程で離散コサイン変換(DCT)が行われます。DCT により 2 次元画像が 2 次元の
周波数成分に変換されます。そこで電子透かし埋め込みに DCT を用いる方式であれば
圧縮過程の一部を埋め込みに利用できることになります。
JPEG では演算の高速性を考慮して通常 8×8 画素単位で計算します。下記は画素の一
部であるとしましょう。
113 77 40 25
73 59 48 48
34 36 41 49
25 20 13 14
DCT 計算後は
475 177 112 48
-156 -80 -32 -27
84 6 -14 0
23 116 102 22
となります。この計算は機械的に行うだけです。だから周波数領域などと意識する必要
もないとおもいます。
次にこの値を Q テーブルの対応した係数で割ります。
Q テーブルも 8×8 ですが下記はその一部で上記の画素位置に対応しています。
16 11 10 16
12 12 14 19
14 13 16 24
14 17 22 29
割った結果は下記となります。
30 16 11 3
-13 -7 -2 -1
6
1 -1
2
7
0
5
1
要するに随分小さな値になっちゃうのですね。すると符号化するときに短い符号を割り
当てることができます。符号化にはハフマン符号というのが用いられるが、これは区切
りがなくても語の切れ目がわかる用に作られています。そして出現頻度の高いデータに
短い符号を割り当てます。だから周波数領域に変換された時点で既に係数 0 のところが
出現して圧縮されている(0だから)のが、Q テーブルで割ることにより係数がさらに
小さくなり、符号化の効率でさらにデータとしては短くなる、というわけです。
以上が JPEG 圧縮のイントロです。
ここから本論です。
電子透かしの埋め込みは周波数領域の係数に対して行います。先ほどとおなじような埋
め込みルールで考えていけば良いはずです。
ただし、左上角の成分は DC 成分といって平均的な明るさを示しますのでここは操作対
象から除外します。一方、係数の右下は周波数が高い成分を示しています。画像の周波
数成分の高いところは係数値が少々変化しても視覚的には大きな違和感を与えません。
そこでこの特徴を利用して係数を操作しよう、ということになります。このサンプルで
は、とりあえず、4×4 のうち右下角の 2×2 あたりということになります。
ですから
-1 0
51
あたりを埋め込み対象とすればいいわけです。実際にはこの領域は画像によって異なる
ためもう少し複雑な手順を踏んで決めていく必要があります。
ここまでくれば後は 1)の方法と同様な埋め込み操作で実現できます。ただし操作対象は
周波数係数です。
埋め込み情報(Wi):110
埋め込み情報 W をビットに分解し 1 ビットずつ取り出しながらつぎのように変更する。
Wi は i 番目のビット、K(m,n)は(m,n)番目の画像の周波数係数を示します。
if Wi = 1 then K(m,n) →ODD
if Wi = 0 then K(m,n) →EVEN
あとはまた逆順の操作を行えば透かしの埋め込まれた画像 j が完成します。
簡単ですか?この方法では周波数係数を変更しましたので結果は画像全域(分割ブロッ
ク内の)同じ周波数成分のところすべてにあまねく反映されていきます。そのため特定
の画素の階調変化だけで透かしが消えることはありません。でもこのままでは実用性は
あまり高くないのです。例えば画像は階調変化だけでなく歪ませたり切り取ったりしま
す。それらに対して耐性を持たせるにはかなり工夫が必要なのです。なぜ?考えてみて
ください。
3)拡散法
拡散法は基本的には前記 2)の方式の秘匿性および耐性を向上させるために考案されま
した。
拡散の電子透かしにおける利用法には二種類あります。
・埋め込み位置を拡散する方式:歴史のところで登場した Cox らの方法です。
・埋め込み情報を拡散して透かし埋め込み操作を行う方法:こちらは周波数拡散
(Spread Spectrum)で、多数の方法が発表されています。また二種類の拡散方式が利
用されています。
・直接拡散方式(DS)
・周波数ホッピング方式(FH)
直接拡散とは埋め込み信号を信号レベルとして拡散操作を行う方式、周波数ホッピング
とは埋め込み位置を周波数スペクトルに展開させる方式です。
一例を下記に示します。この例は Wavelet 変換されたブロックについて適用していま
す。
画像のブロックあたりの平均電力を計算→画素ごとに直接拡散を行う→透かし情報を
加える→逆拡散を行う
周波数ホッピング方式で拡散する場合は下記です。例は音楽です。
MDCT 変換を行う→埋め込み周波数を鍵により決定→該当周波数を操作→逆 MDCT に
より戻す
拡散させるメリットですが、電子透かしとは何らかの形でノイズを加えることに他なら
ないので、なるべく広く拡散させておいたほうが目立たず、また耐性も上がるという考
え方に基づきます。
事実、うまく使った方式においては相当の耐性向上が実現できます。ただし、オーディ
オ透かしなどで直接拡散を用いる場合は拡散ノイズが聞こえる人がいますので要注意
です。したがってよりレベルを下げて埋め込みを行う必要性があり、積算してはじめて
透かし信号として意味をなうようなことを行います。
4)統計的方法
統計的方法として知られているものにパッチワ-ク法があります。
画像の任意の差分ペアを全画素について求めます。
si=ai-bi
次にこの総和を求めます。
Sn=Σ(ai-bi)
ただし、総和は i=1 から i=n まで。
次にそれぞれのペアを下記のようにδだけ変化させます。
ai+δ、bi-δ
同様に差分をとりその総和を求めると次式となります。
Sn'=Σ{(ai-bi)+2δ}
すなわち2δの統計的なシフトが生じます。これが透かし情報となるのです。
この方法を多ビットに展開するにはブロック分割する必要があります。
また、Wavelet 変換の LL 成分に利用した方法などがあります。
5)ベクトル量子化法
ベクトル量子化とは JPEG、MPEG、MP3 などで用いられる圧縮符号化法に対してベ
クトルコードブックを用いる方法のことを指します。音声では ITU-TG.728 が代表例と
して知られています。ベクトル符号化の特徴は高圧縮率にあります。画像では複数のメ
ーカが独自の方式を発表しています。その中には 256×256×8 の画像を 64 ビットで表
現(圧縮)することもできるとするものもあります。
ここでは G.728 について説明しましょう。画像で類似のことを行っている例もありま
す。
G.728 ベクトル符号化では 128 個の波形ベクトルを持つコードブックがあります。
コードブックを ODD 番号グループ(A 群とする)と EVEN 番号グループ(B 群とす
る)に分割します。そして次の操作を行います。
if Wi = 0 then A 群より探索 else B 群より探索
かくして得られたコードから信号を再構成します。
G.728 はもともと低い伝送レートを想定していますから高音質のものではありません。
そうではあっても透かしを埋め込んで聴感上違和感があってはだめです。この方式では
透かし情報 j の有無による差異にはきづきません。ではフィルタなどを通すと透かしは
どうなるのでしょうか?考えてみてください。
6)その他(歴史的には古い方法です)
ア)FAX への透かし
小史で述べた方法です。FAX 画像は一種のニ値のスキャナ画像です。ランレングスと
ハフマン符号化が利用されています。
例えば用紙に縦棒一本引かれているときは下記のようなデータとなっています。0 ある
いは1は一画素を示し 0.12mm/画素です。1の個数または 0 の個数をラン長といいま
す。
00000111110000
00000111110000
00000111110000
00000111110000
00001111000000
00011100000000
ここで埋め込みを行うときはこのラン長を制御します。
j列目のラン長を Rj で示すとき以下の埋め込み規則を適用する。
if Wi = 1 then Rj →ODD
if Wi = 0 then Rj →EVEN
ただし、端部やラン長が短い、あるいは操作により隣のランと衝突する場合などの場合
は除外します。
このようにするとハフマン符号化するときラン長の制御結果が符号ビット長に直接反
映されない場合が多数生まれてきます。この結果データ長を変えずに情報を埋め込むこ
とが実現できるのです。
FAX には MH 方式とさらに圧縮率を高めた MR 方式とがあります。上記は MH 方式に
ついての考え方です。MR 方式では垂直方向の情報も利用し圧縮率を稼ぐようになって
います。電子透かしにおいても同様にそれぞれに対応して巧妙に埋め込みます。
イ)濃度パターン法(例はここを参照してください)
レベル 0:0000
レベル 1:0001
レベル 2:0011
・
・
・
レベル 15:1111
このように濃度パターンでは 0(白レベル示す)
、1(黒レベルを示す)の個数で明るさ
レベルを表しています。
ここで注意であるが画像の場合はそれぞれ正方に配列されておりこのように並んでい
るわけではない。
要するに、0 と 1 の数の比がレベルを表すと考えてよいのです。したがって中間のレベ
ルの表し方には幾つかのバリエーションがあることになります。例えばレベル 1 では 1
の位置はどこであってもよいわけです。このことを利用し埋め込み情報によって配列を
変化させることにより明るさは変化させず情報を埋め込むことが可能となります。
ウ)符号化の量子化歪を利用する方法
適応差分 PCM 方式(ADPCM)などで発生する量子化誤差を利用した方法などが知ら
れています。
エ)色信号を利用する方法
色信号を利用して埋め込む方法も多数発表されています。この方式の中には大変面白い
方法もあります。が致命的なことは色信号を取り除くと電子透かしが無くなってしまう
事です。