2進数表現のための2種の符号系

(KIT ステガノグラフィ研究グループ)


 

PBC と CGC は以下のような排他的論理和演算(EOR)で相互変換ができます。

以下の2つのBMP画像は、同じ画像データを PBC と CGC で表現した場合の違いを示すものである。

 

PBC

CGC   

BPCS 方式では、Vessel Image をPBCコードからCGCコードに変換した後で、実際の埋込み処理をします。これはCGCの方がより良質の("ブロック状の形"が現れない) Stego Image が得られるからです。その理由は以下の通りです。

 

なお、以下の説明では各ビットプレーンを "下から n 番目のビットプレーン" で表わすことにします。これは "n 番目に重要度の低い" ビットプレーンという意味です。例えば、上に示している PBCb2 は、下から3番目のビットプレーンとなります。

 

ファイル中の或るブロック部分を "PBCの 下から n 番目のプレーンに埋め込む" と言うことは、そのブロック内の幾つかの画素の或る色の値を "常に 2n-1 だけ変化させる" ことに他なりません。この場合、変化したブロック部分の色が "まとまって" 変化してしまい、そこが不自然なブロックとして目立つことになります。

(例) 下から 3番目のプレーンでの埋込みで "0" --> "1" と置き換えられると、0 (=0000)-->4 (=0100),  1 (=0001)-->5 (=0101),  2(=0010) -->6 (=0110),  3 (=0011)-->7 (0111),  8 (=1000)-->12 (=1100) ... のように変化します。変化の大きさは一定で、 4 です。このような変化はブロック状となって現れます。

一方、CGC では、平均的な色の変化は 2n-1 ですが、一定ではなく、多様に変化します。

(例)  0 (=0000)-->7 (=0100),  1 (=0001)-->6 (=0101),  2 (=0011)-->5 (=0111),  3 (=0010)-->4 (=0110),  12 (=1010)-->11 (=1110) ... のようになります。従って、色の変化はあまりブロック状にはなりません。

 

Back to Home

(最終更新日: 2014,03,07  河口英二)