The Tips for Developers > BITMAPへのデータ埋め込み(入門)

BITMAPへのデータ埋め込み(入門)(最終更新日 2004/05/05)

データ埋め込みの必要性
画像にデータを埋め込むことにより、以下のような応用が考えられる。
@ 画像の不正利用防止 特定のデータを埋め込むことで署名の代用とすることができ、不正利用を防止できる
A データ授受の隠蔽 画像のやり取りのように見せかけて、内部に重要データを埋め込んでおくことができる

このようなデータ埋め込みの技術は、「電子透かし技術(Digital Watermark)」として、積極的に研究されている。

実際にデータを埋め込んだ画像と、埋め込み前のデータを比較してみよう。
埋め込み後の画像には、この PDF ファイルが埋め込んである。
ここで注目すべきなのは、人間の目で見たとき、双方の画像の相違はわからないし、ファイルサイズの変更もないのに、バイナリコンペアすると、明確な差異が出てくるという点である。

ここでは特に、24BIT の BITMAP へのデータ埋め込みに関して記載する。

なお、この記事に掲載している画像は BITMAP を表示の都合上、 JPEG に変換したものである。
BITMAPファイルの特徴
BITMAPを表示する」でも記載しているが、24BIT BITMAP は 1 ピクセル当たり、2^24 色で構成される。
これは、色の三原色である RED 8 BIT、GREEN 8 BIT、BLUE 8 BIT の組み合わせである。
すなわち、2^8×2^8×2^8 = 2^24 色となる。

ちなみに先ほどの画像に関して、青色の要素を取り出した場合、以下のようになる。

ビットマップの各点の色は、各色の各ビットの ON/OFF によって決定されている。ビットマップから、特定のビットのみを取り出したものをビットプレーンと呼ぶ。

たとえば、前述の画像のBLUE の 8 BIT 、5 BIT、1 BIT 目を取り出したビットプレーンはこのようになる。
ただし、わかりやすさのため、ビットが ON になっている位置を白色で強調表示してある。

8 BIT目


5 BIT目


1 BIT目

8 BIT 目のビットプレーンは元の画像のイメージが残っているのに対し、1 BIT 目のビットプレーンでは、単なるノイズになっており、元の画像が不明である。

さて、人間の視覚でもはやノイズでしかないビットプレーンに対してどのような加工を施しても、元の画像に対する視覚的な影響は少ないと考えられる。

画像に対するデータ埋め込みは、このような人間の視覚の錯覚を利用し、元の画像に影響が及ばないようにデータを埋め込んでいく。