(57)【特許請求の範囲】
【請求項１】
ｘｙ２次元座標平面に配置された画素データの集合である２次元画像に、電子透かしとしてビットデータを埋め込む透かし情報埋込装置であって、
前記２次元画像を取得する画像取得手段と、
ビットデータを取得するビットデータ取得手段と、
取得された前記２次元画像中の複数の位置それぞれに対応して、当該位置における画素データの値についてのｘ方向の空間的勾配をｘ成分としｙ方向の空間的勾配をｙ成分とする２次元ベクトルを作成する２次元ベクトル群作成手段と、
作成された各２次元ベクトルを、ｘｙ２次元座標平面上での特定方向と当該２次元ベクトルの示す方向とのなす角度が複数の角度範囲区分のいずれに含まれるかによって当該複数の角度範囲区分のいずれかと対応付け、
前記複数の角度範囲区分のうち対応する２次元ベクトルの数が閾値Ｔ（Ｔ＞０）以上である角度範囲区分について、当該角度範囲区分に対応する２次元ベクトルで大きさが閾値Ｓ（Ｓ＞０）以上のものの大きさ又は方向を前記ビットデータを表すために変更することにより、２次元ベクトル群にビットデータを埋め込む埋込手段と、
前記埋込手段によりビットデータが埋め込まれた２次元ベクトル群に基づき、前記２次元ベクトル群作成手段が２次元画像から２次元ベクトル群を作成する際に用いた演算の逆演算を施すことにより、２次元画像を生成して出力する画像出力手段とを備える
ことを特徴とする透かし情報埋込装置。
【請求項２】
前記２次元ベクトル群作成手段は、前記２次元画像にハール基底を用いた２次元直交ウェーブレット変換を施すことにより、ｘ方向のＭＲＲ（Ｍｕｌｔｉ  Ｒｅｓｏｌｕｔｉｏｎ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）成分を前記ｘ成分とし、ｙ方向のＭＲＲ成分を前記ｙ成分として前記２次元ベクトルを作成する
ことを特徴とする請求項１記載の透かし情報埋込装置。
【請求項３】
前記ビットデータは、ビット列からなり、
前記埋込手段は、前記複数の角度範囲区分のうち対応する２次元ベクトルの数が閾値Ｔ以上である全ての角度範囲区分に角度の小さいものから大きいものへと順序を付け、当該順序に従って各角度範囲区分に前記ビットデータの先頭ビットから順に１ビットを割り当て、１ビットを割り当てた各角度範囲区分について、当該角度範囲区分に対応する２次元ベクトルで大きさが閾値Ｓ以上の全ての２次元ベクトルの大きさを、当該角度範囲区分に割り当てた１ビットの値が０であれば所定値Ｒ０に変更し、当該角度範囲区分に割り当てた１ビットの値が１であれば所定値Ｒ１に変更する
ことを特徴とする請求項１又は２記載の透かし情報埋込装置。
【請求項４】
前記埋込手段は、前記２次元ベクトル群作成手段により作成された２次元ベクトルのうち大きさが最大のものの方向を前記特定方向とする
ことを特徴とする請求項３記載の透かし情報埋込装置。
【請求項５】
ｘｙ２次元座標平面に配置された画素データの集合であり電子透かしとしてビットデータが埋め込まれた２次元画像から当該ビットデータを抽出する透かし情報抽出装置であって、
前記２次元画像を取得する画像取得手段と、
取得された前記２次元画像中の複数の位置それぞれに対応して、当該位置における画素データの値についてのｘ方向の空間的勾配をｘ成分としｙ方向の空間的勾配をｙ成分とする２次元ベクトルを作成する２次元ベクトル群作成手段と、
作成された各２次元ベクトルを、ｘｙ２次元座標平面上での特定方向と当該２次元ベクトルの示す方向とのなす角度が複数の角度範囲区分のいずれに含まれるかによって当該複数の角度範囲区分のいずれかと対応付け、前記複数の角度範囲区分のうち対応する２次元ベクトルの数が閾値Ｔ（Ｔ＞０）以上である角度範囲区分について、当該角度範囲区分に対応する２次元ベクトルで大きさが閾値Ｓ（Ｓ＞０）以上のものの大きさ又は方向に基づいてビットデータを抽出する抽出手段とを備える
ことを特徴とする透かし情報抽出装置。
【請求項６】
前記２次元ベクトル群作成手段は、前記２次元画像にハール基底を用いた２次元直交ウェーブレット変換を施すことにより、ｘ方向のＭＲＲ（Ｍｕｌｔｉ  Ｒｅｓｏｌｕｔｉｏｎ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）成分を前記ｘ成分とし、ｙ方向のＭＲＲ成分を前記ｙ成分として前記２次元ベクトルを作成する
ことを特徴とする請求項５記載の透かし情報抽出装置。
【請求項７】
抽出対象である前記ビットデータは、ビット列からなり、
前記抽出手段は、前記複数の角度範囲区分のうち対応する２次元ベクトルの数が閾値Ｔ以上である全ての角度範囲区分に角度の小さいものから大きいものへと順序を付け、当該順序に従って各角度範囲区分から１ビットずつの値を特定して蓄積することにより前記ビットデータを抽出し、
前記各角度範囲区分からの１ビットずつの値の特定は、当該角度範囲区分に対応する２次元ベクトルであって大きさが閾値Ｓ以上のＴ個以上の２次元ベクトルの大きさが所定値Ｒ０であれば当該１ビットの値を０と判定し、当該２次元ベクトルの大きさが所定値Ｒ０以外であれば当該１ビットの値を１と判定することにより行われる
ことを特徴とする請求項５又は６記載の透かし情報抽出装置。
【請求項８】
前記抽出手段は、前記２次元ベクトル群作成手段により作成された２次元ベクトルのうち大きさが最大のものの方向を前記特定方向とする
ことを特徴とする請求項７記載の透かし情報抽出装置。
【請求項９】
ｘｙ２次元座標平面に配置された画素データの集合である２次元画像に、電子透かしとしてビットデータを埋め込む透かし情報埋込処理をコンピュータに実行させるための制御プログラムを記録した記録媒体であって、
前記透かし情報埋込処理は、
前記２次元画像を取得する画像取得ステップと、
ビットデータを取得するビットデータ取得ステップと、
取得された前記２次元画像中の複数の位置それぞれに対応して、当該位置における画素データの値についてのｘ方向の空間的勾配をｘ成分としｙ方向の空間的勾配をｙ成分とする２次元ベクトルを作成する２次元ベクトル群作成ステップと、
作成された各２次元ベクトルを、ｘｙ２次元座標平面上での特定方向と当該２次元ベクトルの示す方向とのなす角度が複数の角度範囲区分のいずれに含まれるかによって当該複数の角度範囲区分のいずれかと対応付け、
前記複数の角度範囲区分のうち対応する２次元ベクトルの数が閾値Ｔ（Ｔ＞０）以上である角度範囲区分について、当該角度範囲区分に対応する２次元ベクトルで大きさが閾値Ｓ（Ｓ＞０）以上のものの大きさ又は方向を前記ビットデータを表すために変更することにより、２次元ベクトル群にビットデータを埋め込む埋込ステップと、
前記埋込ステップによりビットデータが埋め込まれた２次元ベクトル群に基づき、前記２次元ベクトル群作成手段が２次元画像から２次元ベクトル群を作成する際に用いた演算の逆演算を施すことにより、２次元画像を生成して出力する画像出力ステップとを含む
ことを特徴とする記録媒体。
【請求項１０】
ｘｙ２次元座標平面に配置された画素データの集合であり電子透かしとしてビットデータが埋め込まれた２次元画像から当該ビットデータを抽出する透かし情報抽出処理をコンピュータに実行させるための制御プログラムを記録した記録媒体であって、
前記透かし情報抽出処理は、
前記２次元画像を取得する画像取得ステップと、
取得された前記２次元画像中の複数の位置それぞれに対応して、当該位置における画素データの値についてのｘ方向の空間的勾配をｘ成分としｙ方向の空間的勾配をｙ成分とする２次元ベクトルを作成する２次元ベクトル群作成ステップと、
作成された各２次元ベクトルを、ｘｙ２次元座標平面上での特定方向と当該２次元ベクトルの示す方向とのなす角度が複数の角度範囲区分のいずれに含まれるかによって当該複数の角度範囲区分のいずれかと対応付け、前記複数の角度範囲区分のうち対応する２次元ベクトルの数が閾値Ｔ（Ｔ＞０）以上である角度範囲区分について、当該角度範囲区分に対応する２次元ベクトルで大きさが閾値Ｓ（Ｓ＞０）以上のものの大きさ又は方向に基づいてビットデータを抽出する抽出ステップとを含む
ことを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、いわゆる電子透かし技術に関し、特に、デジタル画像に他の情報を電子透かしとして埋め込む技術及びデジタル画像に埋め込まれた透かし情報を抽出する技術に関する。
【０００２】
【従来の技術】
近年、コンピュータのハードウェア及びソフトウェアの著しい発展を背景とし、誰でも自ら作成したデジタル画像をインターネット等を介して全世界へと容易に発信することができるようになってきた。
デジタル画像は流通過程において容易に複製することができること等から画像に関する著作権保護技術の発展が望まれており、著作権保護技術の１つとして、わからないように画像に著作者名等を埋め込む電子透かし技術が注目されている。
【０００３】
従来の電子透かし技術として主流なものには、デジタル画像を構成する各画素データの最下位ビット（ＬＳＢ：Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）を変化させることにより別の情報を埋め込む方法や、デジタル画像信号を水平方向或いは垂直方向に周波数分解して画像信号の一部の周波数成分に別の情報を埋め込む方法等がある。
【０００４】
【発明が解決しようとする課題】
これらの主流な方法には、電子透かしとして情報が埋め込まれた画像の流通過程で画像編集用ソフトウェア等が用いられてその画像に回転が加えられた場合に、回転したままの状態ではその画像から埋め込まれた情報を抽出できないという問題がある。
【０００５】
画像編集用ソフトウェアがある程度普及している現在においては、画像に対して回転、拡大或いは縮小といった加工が施される場合も多々あり、このため、画像の回転、拡大及び縮小に耐える度合いの高い電子透かし技術の開発が求められる。
そこで、本発明は、画像に対する回転等に耐える度合いを高めた電子透かし技術を用いて、画像に情報を埋め込む透かし情報埋込装置を提供することと、画像に埋め込まれた情報を抽出する透かし情報抽出装置を提供することとを目的とする。
【０００６】
【課題を解決するための手段】
上記課題を解決するために、本発明に係る透かし情報埋込装置は、ｘｙ２次元座標平面に配置された画素データの集合である２次元画像に、電子透かしとしてビットデータを埋め込む透かし情報埋込装置であって、前記２次元画像を取得する画像取得手段と、ビットデータを取得するビットデータ取得手段と、取得された前記２次元画像中の複数の位置それぞれに対応して、当該位置における画素データの値についてのｘ方向の空間的勾配をｘ成分としｙ方向の空間的勾配をｙ成分とする２次元ベクトルを作成する２次元ベクトル群作成手段と、作成された各２次元ベクトルを、ｘｙ２次元座標平面上での特定方向と当該２次元ベクトルの示す方向とのなす角度が複数の角度範囲区分のいずれに含まれるかによって当該複数の角度範囲区分のいずれかと対応付け、前記複数の角度範囲区分のうち対応する２次元ベクトルの数が閾値Ｔ（Ｔ＞０）以上である角度範囲区分について、当該角度範囲区分に対応する２次元ベクトルで大きさが閾値Ｓ（Ｓ＞０）以上のものの大きさ又は方向を前記ビットデータを表すために変更することにより、２次元ベクトル群にビットデータを埋め込む埋込手段と、前記埋込手段によりビットデータが埋め込まれた２次元ベクトル群に基づき、前記２次元ベクトル群作成手段が２次元画像から２次元ベクトル群を作成する際に用いた演算の逆演算を施すことにより、２次元画像を生成して出力する画像出力手段とを備えることを特徴とする。
【０００７】
上記構成により、画像の空間的勾配から作成される２次元ベクトル群にビットデータ即ち透かし情報が埋め込まれ、画像が回転しても各２次元ベクトルの大きさは変化することなく、２次元ベクトル全体において各２次元ベクトル相互間の方向は変化しないものであるため、こうして埋め込まれた透かし情報は、画像が回転している場合であっても正しく抽出することができることになる。即ち、回転に強い電子透かしが実現できる。
【０００８】
また、本発明に係る透かし情報抽出装置は、ｘｙ２次元座標平面に配置された画素データの集合であり電子透かしとしてビットデータが埋め込まれた２次元画像から当該ビットデータを抽出する透かし情報抽出装置であって、前記２次元画像を取得する画像取得手段と、取得された前記２次元画像中の複数の位置それぞれに対応して、当該位置における画素データの値についてのｘ方向の空間的勾配をｘ成分としｙ方向の空間的勾配をｙ成分とする２次元ベクトルを作成する２次元ベクトル群作成手段と、作成された各２次元ベクトルを、ｘｙ２次元座標平面上での特定方向と当該２次元ベクトルの示す方向とのなす角度が複数の角度範囲区分のいずれに含まれるかによって当該複数の角度範囲区分のいずれかと対応付け、前記複数の角度範囲区分のうち対応する２次元ベクトルの数が閾値Ｔ（Ｔ＞０）以上である角度範囲区分について、当該角度範囲区分に対応する２次元ベクトルで大きさが閾値Ｓ（Ｓ＞０）以上のものの大きさ又は方向に基づいてビットデータを抽出する抽出手段とを備えることを特徴とする。
【０００９】
上記構成により、上述の透かし情報埋込装置によって画像の空間的勾配から作成される２次元ベクトル群にビットデータ即ち透かし情報が埋め込まれたところの画像から、適正に透かし情報を抽出することができる。
【００１０】
【発明の実施の形態】
以下、本発明の実施の形態に係る透かし情報埋込装置について説明する。
＜透かし情報埋込装置の構成＞
図１は、本発明の実施の形態に係る透かし情報埋込装置１００の機能ブロック図である。
【００１１】
透かし情報埋込装置１００は、デジタル画像に電子透かしとして情報を埋め込むための装置であり、ハードウェア的にはＣＰＵ、メモリ、ハードディスク、キーボード等を備えるコンピュータで構成され、機能的には同図に示すように画像取得部１０１、画像格納部１０２、ウェーブレット変換部１０３、２次元ベクトル作成部１０４、２次元ベクトル格納部１０５、埋込対象ベクトル特定部１０６、透かし情報取得部１０７、埋込部１０８、ウェーブレット逆変換部１０９及び画像出力部１１０を有する。
【００１２】
ここで、画像取得部１０１は、デジタルカメラ、スキャナ等の画像入力機器や、ＣＤ−ＲＯＭ、ハードディスク等の記録媒体、或いは外部ネットワークから、電子透かしとして情報を埋め込む対象となる画像を取得して画像格納部１０２に格納し、ウェーブレット変換部１０３にその画像の格納を通知する機能を有する。ここでは、画像取得部１０１により取得される画像は平面画像であり、その実体は各画素について輝度を表す数値データからなる配列データである。各画素を表す数値データのビット数や画素数は予め定められており、例えば、取得される画像は水平方向に２５６、垂直方向に２５６個の白黒２５６階調で表される画素データからなる。
【００１３】
なお、本明細書中では「画像」の語により、画面に投影された画像自体のみならず画像の実体、即ち画像を表示するために用いられる画像データであって２次元平面上の位置とその位置における輝度等を表す数値データとが対応付けられたものをも表すこととする。更に画像データに対して２次元直交ウェーブレット変換が施された結果として得られるデータをも「画像」と表現することとする。
【００１４】
画像格納部１０２は、画像を格納するためのメモリの一領域である。
ウェーブレット変換部１０３は、画像格納部１０２に格納された画像に対して、ハール基底（図２参照）で２次元直交ウェーブレット変換を予め定められた回数であるＮ回だけ施す機能を有する。なお、この２次元直交ウェーブレット変換については後に詳しく説明する。
【００１５】
２次元ベクトル作成部１０４は、ウェーブレット変換部１０３により画像に２次元直交ウェーブレット変換が施された結果として得られた画像に基づいて、その画像の特徴を表す複数の２次元ベクトルデータを作成し２次元ベクトル格納部１０５に格納する機能を有する。なお、２次元ベクトルデータは空間的位置と２次元ベクトルとの組であり、この２次元ベクトルデータの作成については後に詳しく説明する。以下、２次元ベクトルデータについての大きさという表現で、２次元ベクトルデータにおける２次元ベクトルの大きさを表現する。
【００１６】
２次元ベクトル格納部１０５は、画像の特徴を表す２次元ベクトルを格納するためのメモリの一領域である。
埋込対象ベクトル特定部１０６は、２次元ベクトル作成部１０４により２次元ベクトル格納部１０５に格納された複数の２次元ベクトルデータのうち、透かし情報の埋め込み対象となる複数の２次元ベクトルデータを特定する機能を有する。ここで、透かし情報とは電子透かしとして画像に埋め込まれる情報をいう。
【００１７】
透かし情報取得部１０７は、ユーザにより入力され或いはハードディスクその他の記録媒体に既に記録されている透かし情報を取得して埋込部１０８に伝える機能を有する。
埋込部１０８は、２次元ベクトル格納部１０５に格納された複数の２次元ベクトルデータのうち透かし情報の埋め込み対象として特定された複数の２次元ベクトルデータの大きさを透かし情報に応じて特定の値に変更し、その２次元ベクトルデータに対する変更を、画像格納部１０２内の２次元直交ウェーブレット変換が施された結果の画像に反映すべく、その画像を変更する機能を有する。
【００１８】
ウェーブレット逆変換部１０９は、埋込部１０８により変更された画像格納部１０２内の画像に対して、ウェーブレット変換部１０３により施される２次元直交ウェーブレット変換の逆変換（以下、「２次元直交ウェーブレット逆変換」という。）を施す機能を有する。なお、ウェーブレット逆変換部１０９により２次元直交ウェーブレット逆変換が施される回数は、ウェーブレット変換部１０３により２次元直交ウェーブレット変換が施される回数と同じＮ回である。
【００１９】
また、画像出力部１１０は、ウェーブレット逆変換部１０９により２次元直交ウェーブレット逆変換が施された画像を出力する機能を有する。その出力先は、記録媒体或いは外部ネットワークである。
なお、画像取得部１０１、ウェーブレット変換部１０３、２次元ベクトル作成部１０４、埋込対象ベクトル特定部１０６、透かし情報取得部１０７、埋込部１０８、ウェーブレット逆変換部１０９及び画像出力部１１０は、メモリに格納された制御用プログラムがＣＰＵにより実行されることによりその機能が実現されるものである。
＜２次元直交ウェーブレット変換＞
以下、ウェーブレット変換部１０３により画像に施される２次元直交ウェーブレット変換について説明する。
【００２０】
図２は、ウェーブレット変換部１０３による２次元直交ウェーブレット変換に利用するハール（Ｈａａｒ）基底を示す図である。
ウェーブレット変換部１０３による２次元直交ウェーブレット変換は、同図に示すスケーリング関数とマザーウェーブレット関数とで表されるハール基底を利用した演算により行われる。
【００２１】
図３は、ウェーブレット変換部１０３により２次元直交ウェーブレット変換が施される前の画像の様子を表した図であり、図４は、ウェーブレット変換部１０３により２次元直交ウェーブレット変換が１回施された後の画像の様子を表した図である。
図３及び図４は、２次元直交ウェーブレット変換の対象となる画像が２ｎ×２ｎ個の画素データからなるものとして示し、図中のＡ1,1、Ａ1,2等は画素データの値である輝度値を示す。また、図４中の値は、実際には１／４を掛けたものであるが図４中では１／４という係数を省略して示している。
【００２２】
２次元直交ウェーブレット変換によって、画像は、多重解像度近似（ＭＲＡ：Ｍｕｌｔｉ  Ｒｅｓｏｌｕｔｉｏｎ  Ａｐｐｒｏｘｉｍａｔｉｏｎ）と呼ばれる低周波成分と、多重解像度表現（ＭＲＲ：Ｍｕｌｔｉ  Ｒｅｓｏｌｕｔｉｏｎ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）と呼ばれる高周波成分に分解される。
以下、図３に示す画像を図４に示すものに分解する２次元直交ウェーブレット変換について、更に詳細に説明する。
【００２３】
２ｎ×２ｎ個の画素データは水平、垂直方向とも０〜１の間で等間隔に割り付けられるとして、任意の１行、例えば図３のｖ行目の画素データはスケーリング関数φ（ｔ）を利用すると以下のように表現できる。
［数２］ｆn（ｘ）＝ΣＡv,uφ（２nｘ−ｕ）
但し、０≦ｕ≦（２n−１）の整数で総和をとる。
【００２４】
数２をウェーブレット変換すると、以下に示すｆn-1（ｘ）とｇn-1（ｘ）に分かれる。
［数３］ｆn（ｘ）＝ｆn-1（ｘ）＋ｇn-1（ｘ）
但し、ｆn-1（ｘ）及びｇn-1（ｘ）は数４及び数５で、さらにその中の係数Ｃv,u及びＤv,uは数６及び数７で表される。
［数４］ｆn-1（ｘ）＝ΣＣv,uφ（２n-1ｘ−ｕ）  ［０≦ｕ≦（２n-1−１）］
［数５］ｇn-1（ｘ）＝ΣＤv,uψ（２n-1ｘ−ｕ）  ［０≦ｕ≦（２n-1−１）］
［数６］Ｃv,u＝（Ａv,u＋Ａv,u+1）／２
［数７］Ｄv,u＝（Ａv,u−Ａv,u+1）／２
上記のウェーブレット変換は行方向（垂直方向）についてであるが、列方向（水平方向）についても同様であり、ｕ列目の中の水平座標ｘにおけるｖ行目で垂直座標ｙのデータはスケーリング関数φ（ｔ）を利用すると以下のように表現できる。
［数８］ｆn（ｘ，ｙ）＝ｆn（ｘ）vφ(２nｙ−ｖ）
但し、座標ｙはｖ行目座標の範囲内とする。
【００２５】
これを、さらに一般化すると数９で表される。
［数９］ｆn（ｘ，ｙ）＝Σｆn（ｘ）vφ(２nｙ−ｖ)
但し、０≦ｖ≦（２n−１)の整数で総和をとる。
数９をウェーブレット変換すると、上記同様以下に示すｆn-1（ｘ，ｙ）とｇn-1（ｘ，ｙ）に分かれる。
［数１０］ｆn（ｘ，ｙ）＝ｆn-1（ｘ，ｙ）＋ｇn-1（ｘ，ｙ）
但し、ｆn-1（ｘ，ｙ）及びｇn-1（ｘ，y)は数１１及び数１２で、さらにその中の係数ＣＣv,u及びＤＤv,uは数１３及び数１４で表される。
［数１１］ｆn-1（ｘ，ｙ）＝ΣＣＣv,uφ(２n-1ｙ−ｖ)  ［０≦ｖ≦（２n-1−１）］
［数１２］ｇn-1（ｘ，ｙ）＝ΣＤＤv,uψ（２n-1ｙ−ｖ）  ［０≦ｖ≦（２n-1−１）］
［数１３］ＣＣv,u＝（ｆn（ｘ）v＋ｆn（ｘ）v+1）／２
［数１４］ＤＤv,u＝（ｆn（ｘ）v−ｆn（ｘ）v+1）／２
数１３及び数１４は、数３、数４及び数５により以下に示す数１５〜数２０のように記述できる。
【００２６】
数１５〜数２０ではｖ行、ｕ列が既知であれば総和する必要がないので、Σは不要である。
［数１５］ＣＣv,u＝（ｆn-1（ｘ）v＋ｇn-1（ｘ）v＋ｆn-1（ｘ）v+1＋ｇn-1（ｘ）v+1）／２
さらに数１５は、以下のようにまとめられる。
［数１６］ＣＣv,u＝（Ｃv,uφ（２n-1ｘ−ｕ）＋Ｄv,uψ（２n-1ｘ−ｕ）＋Ｃv+1,uφ（２n-1ｘ−ｕ）＋Ｄv+1,uψ（２n-1ｘ−ｕ））／２
［数１７］ＣＣv,u＝｛（Ｃv,u＋Ｃv+1,u）φ（２n-1ｘ−ｕ）＋（Ｄv,u＋Ｄv+1,u）ψ（２n-1ｘ−ｕ）｝／２
ＤＤv,uについても同様である。
［数１８］ＤＤv,u＝（ｆn-1（ｘ）v＋ｇn-1（ｘ）v−ｆn-1（ｘ）v+1−ｇn-1（ｘ）v+1）／２
［数１９］ＤＤv,u＝（Ｃv,uφ（２n-1ｘ−ｕ）＋Ｄv,uψ（２n-1ｘ−ｕ）−Ｃv+1,uφ（２n-1ｘ−ｕ）−Ｄv+1,uψ(２n-1ｘ−ｕ））／２
［数２０］ＤＤv,u＝｛（Ｃv,u−Ｃv+1,u）φ（２n-1ｘ−ｕ）＋（Ｄv,u−Ｄv+1,u）ψ(２n-1ｘ−ｕ）｝／２
結局、数１０は、ｖ行、ｕ列が任意とすれば、数１１、数１２、数１７、数２０を利用することにより数２１で表される。
［数２１］ｆn（ｘ，ｙ）＝ΣΣ｛（Ｃv,u＋Ｃv+1,u）φxφy＋（Ｄv,u＋Ｄv+1,u）ψxφy＋（Ｃv,u−Ｃv+1,u）φxψy＋（Ｄv,u−Ｄv+1,u）ψxψy｝／２
但し、φxφy、ψxφy、φxψy、ψxψyは数２２〜数２５で表される。
［数２２］φxφy＝φ（２n-1ｘ−ｕ）φ（２n-1ｙ−ｖ）
［数２３］ψxφy＝ψ（２n-1ｘ−ｕ）φ（２n-1ｙ−ｖ）
［数２４］φxψy＝φ（２n-1ｘ−ｕ）ψ（２n-1ｙ−ｖ）
［数２５］ψxψy＝ψ（２n-1ｘ−ｕ）ψ（２n-1ｙ−ｖ）
さらに数２１をまとめると数２６となり、その中の係数ｋ11〜ｋ22は、数２７〜数３０で表される。
［数２６］ｆn（ｘ，ｙ）＝ΣΣ（ｋ11φxφy＋ｋ12ψxφy＋ｋ21φxψy＋ｋ22ψxψy）
［数２７］ｋ11＝（Ａv,u＋Ａv,u+1＋Ａv+1,u＋Ａv+1,u+1）／４
［数２８］ｋ12＝（Ａv,u−Ａv,u+1＋Ａv+1,u−Ａv+1,u+1）／４
［数２９］ｋ21＝（Ａv,u＋Ａv,u+1−Ａv+1,u−Ａv+1,u+1）／４
［数３０］ｋ22＝（Ａv,u−Ａv,u+1−Ａv+1,u＋Ａv+1,u+1）／４
数２７に示すｋ11は４画素の画像データの大きさの平均値であり言わば画像信号に水平、垂直方向にローパスフィルタをかけることに相当し、数２８に示すｋ12、数２９に示すｋ21は、水平あるいは垂直方向の差分をとっているため、それぞれ画像データの大きさの水平方向、垂直方向の空間的勾配を意味し、数３０に示すｋ22は４画素の画像データの大きさに関する歪みのようなものを表わしている。
【００２７】
即ち、図４は、図３の４画素単位ごとに２次元直交ウェーブレット変換後のＭＲＡ成分と、水平方向のＭＲＲ成分（空間的勾配）と、垂直方向のＭＲＲ成分（空間的勾配）と、斜め方向のＭＲＲ成分とを求めたものを、それぞれの成分ごとにまとめて示したものである。
なお、ウェーブレット変換部１０３は画像に２次元直交ウェーブレット変換をＮ回施すのであり、Ｎが２以上である場合において即ち２元直交ウェーブレット変換を複数回施す場合においては、２回目以後は、前回の２次元直交ウェーブレット変換を施した結果のＭＲＡ成分を対象として２次元直交ウェーブレット変換を施す。
【００２８】
例えば、Ｎが２であれば、元の画像に対して１回目の２次元直交ウェーブレット変換が施され、変換結果としてＭＲＡ成分である画像（画像ａ）と、水平方向のＭＲＲ成分である画像（画像ｂ）と垂直方向のＭＲＲ成分である画像（画像ｃ）と斜め方向のＭＲＲ成分である画像（画像ｄ）とが得られ、そのＭＲＡ成分である画像ａに対して２回目の２次元直交ウェーブレット変換が施され、変換結果としてＭＲＡ成分である画像（画像ａａ）と水平方向のＭＲＲ成分である画像（画像ａｂ）と垂直方向のＭＲＲ成分である画像（画像ａｃ）と斜め方向のＭＲＲ成分である画像（画像ａｄ）とが得られる。。
【００２９】
なお、こうして得られた画像群に対し、２次元直交ウェーブレット逆変換を２回施すと、元の画像が得られる。即ち、１回目の２次元直交ウェーブレット逆変換により画像ａａ、画像ａｂ、画像ａｃ及び画像ａｄから画像ａが得られ、こうして得られた画像ａと、画像ｂ、画像ｃ及び画像ｄとに対して２回目の２次元直交ウェーブレット逆変換を施すことにより元の画像が得られる。
＜透かし情報埋込装置の動作＞
以下、透かし情報埋込装置１００の動作について説明する。
【００３０】
図５は、透かし情報埋込装置１００の動作を示すフローチャートである。
以下、同図に示した動作を順を追って説明する。
まず、透かし情報埋込装置１００の画像取得部１０１は、透かし情報を埋め込むべき画像を外部より取得して画像格納部１０２に格納する（ステップＳ５０１）。
【００３１】
透かし情報を埋め込むべき画像が画像格納部１０２に格納されると、ウェーブレット変換部１０３は、その画像に対して２次元直交ウェーブレット変換をＮ回施す（ステップＳ５０２）。
ウェーブレット変換部１０３により画像にＮ回目の２次元直交ウェーブレット変換が施された後の水平方向及び垂直方向のＭＲＲ成分の画像に基づいて、２次元ベクトル作成部１０４は、２次元ベクトルデータを作成して２次元ベクトル格納部１０５に格納する（ステップＳ５０３）。
【００３２】
ここで、２次元ベクトルデータの作成について詳しく説明する。
図６は、ある空間的位置Ｐ（ｘ，ｙ）についての水平方向のＭＲＲ成分と垂直方向のＭＲＲ成分とを示す概念図である。
２次元ベクトル作成部１０４は、Ｎ回目の２次元直交ウェーブレット変換が施された後の画像から、空間的位置毎に、その空間的位置Ｐ（ｘ，ｙ）についての水平方向のＭＲＲ成分（ｋ12）と垂直方向のＭＲＲ成分（ｋ21）とを構成成分とする２次元ベクトルＶ（ｋ12，ｋ21）を作成して、その作成した２次元ベクトルＶと空間的位置Ｐとの組を２次元ベクトル格納部１０５に格納する。なお、２次元ベクトルデータとは、この空間的位置Ｐと２次元ベクトルＶとの組のことをいう。従って、２次元ベクトル格納部１０５には、２次元ベクトルデータの集合が格納されることになる。
【００３３】
例えば、図３に示した２ｎ×２ｎ個の画素データからなる画像に対して２次元直交ウェーブレット変換を施す回数Ｎが１であれば、図４に示すようにｎ×ｎ個の位置についての、水平方向のＭＲＲ成分及び垂直方向のＭＲＲ成分を成分とするｎ×ｎ個の２次元ベクトルＶが作成されることになる。
図７は、「Ｅ」の字の形を表した画像の一部についての空間的勾配を示した図である。
【００３４】
同図に示す画像４０１は「Ｅ」の字を背景に対して高輝度で表した画像である。また、拡大部分４０２において矢印で示すものが、ある閾値より成分の値が大きい２次元ベクトルＶであり、２次元ベクトルＶそれぞれを、対応する空間的位置Ｐ（ｘ，ｙ）に配置して示している。同図に示すように、文字「Ｅ」の輪郭上に、ある閾値より成分の値が大きい２次元ベクトルＶが現れる。
【００３５】
つまり２次元ベクトルＶは、図７に示すように画像の空間的勾配を示すベクトルである。
２次元ベクトル作成部１０４により２次元ベクトルデータ群が２次元ベクトル格納部１０５に格納された後（ステップＳ５０３）、埋込対象ベクトル特定部１０６は、２次元ベクトルデータ群から２次元ベクトルの大きさが最大のものを抽出して、その２次元ベクトルの方向を基準方向と定め（ステップＳ５０４）、各２次元ベクトルデータについて、基準方向と２次元ベクトルの方向とのなす角度に着目して０以上１０度未満、１０度以上２０度未満、２０度以上３０度未満、・・・、３５０度以上３６０度未満というように１０度毎の３６区分に分類する（ステップＳ５０５）。
【００３６】
続いて埋込対象ベクトル特定部１０６は、ステップＳ５０５で分類した各区分のうち、その区分に属する２次元ベクトルデータであって大きさが閾値Ｓ以上のもの（以下、「埋込対象ベクトルデータ」という。）の数が閾値Ｔ以上存在する区分を、透かし情報の埋込対象となる埋込対象区分として特定する（ステップＳ５０６）。なお、基準方向を定めるために用いたものであり、大きさが最大の２次元ベクトルデータについては特別に扱い、埋込対象ベクトルデータに含めないものとする。
【００３７】
埋込対象ベクトル特定部１０６が埋込対象区分を特定した後、透かし情報取得部１０７は透かし情報を取得する（ステップＳ５０７）。
透かし情報が取得された後、埋込部１０８はその透かし情報を埋込対象区分の埋込対象ベクトルデータに埋め込むことを内容とする埋込処理を行う（ステップＳ５０８）。
【００３８】
ここで、図８を用いて埋込処理について説明する。
図８は、埋込部１０８の行う埋込処理を示すフローチャートである。
埋込部１０８は、値０を埋め込んだ結果となる２次元ベクトルデータの大きさＲ０と、値１を埋め込んだ結果となる２次元ベクトルデータの大きさＲ１とを定める（ステップＳ５２１、Ｓ５２２）。
【００３９】
続いて埋込部１０８は、基準方向となす角度の小さい埋込対象区分から順に、埋込対象区分に対して透かし情報の先頭から１ビットずつを割り当て、各埋込対象区分中の全ての埋込対象ベクトルデータの大きさを割り当てたビットの値即ち０か１かに応じて変更する（ステップＳ５２３）。つまり、埋込部１０８は、埋込対象ベクトルデータの大きさをＲ０或いはＲ１に変更することにより、埋込対象ベクトルデータに透かし情報を埋め込む。
【００４０】
例えば、透かし情報が文字「Ｅ」を表す１バイトのコード（０ｘ４５）であるものとし、この透かし情報を埋込対象区分の埋込対象ベクトルデータに埋め込む例を図９を用いて説明する。なお、閾値Ｓは２０であるとし、値０に対応する大きさＲ０を２０、値１に対応する大きさＲ１を２５として説明する。
図９は、透かし情報を埋込対象区分の埋込対象ベクトルデータに埋め込んだ結果を例示する図である。
【００４１】
同図は、埋込対象区分における埋込対象ベクトルデータのみについて、２次元ベクトルの大きさを縦軸に、基準方向となす角度を横軸に概略的に表したグラフである。従って、埋込対象ベクトルデータが閾値Ｔ以上存在しない区分に属する埋込対象ベクトルデータは同図には示していない。また、透かし情報が８ビットなので角度の小さい方から８つまでの埋込対象区分に属する埋込対象ベクトルデータのみについて同図に示している。なお、同図中、ベクトルの大きさを表す各線分の本数は正確なものではない。
【００４２】
つまり、同図の例は、基準方向となす角度が、（１）０度以上１０度未満の区分、（２）１０度以上２０度未満の区分、（３）３０度以上４０度未満の区分、（４）４０度以上５０度未満の区分、（５）５０度以上６０度未満の区分、（６）７０度以上８０度未満の区分、（７）８０度以上９０度未満の区分、（８）１００度以上１１０度未満の区分においては、大きさが閾値Ｓ以上の２次元ベクトルデータが閾値Ｔ以上存在し、逆に２０度以上３０度未満の区分と６０度以上７０度未満の区分と９０度以上１００度未満の区分においては、大きさが閾値Ｓ以上の２次元ベクトルデータが閾値Ｔより少ない場合を表している。この場合に、文字「Ｅ」を表す透かし情報は、ビット列としては「０１０００１０１」で表せるため、埋込部１０８は、（１）の区分に属する埋込対象ベクトルデータの大きさを値０を示す２０に変更し、（２）の区分に属する埋込対象ベクトルデータの大きさを値１を示す２５に変更し、同様に（３）〜（５）の区分については埋込対象ベクトルデータの大きさを値０を示す２０に変更し、（６）の区分については埋込対象ベクトルデータの大きさを値１を示す２５に変更し、（７）の区分については埋込対象ベクトルデータの大きさを値０を示す２０に変更し、（８）の区分については埋込対象ベクトルデータの大きさを値１を示す２５に変更することになる。なお、埋込対象ベクトルデータにおける２次元ベクトルの方向については変更しない。
【００４３】
このようにしてステップＳ５０８の埋込処理を終えた後、埋込部１０８は埋込処理による２次元ベクトルデータの変更を画像格納部１０２内の２次元直交ウェーブレット変換後の画像に反映する（ステップＳ５０９）。例えばある空間的位置Ｐ（ｘ，ｙ）の２次元ベクトルＶ（ｋ12，ｋ21）の元の大きさがＲであり、それをＲ０に変更したのであれば、２次元ベクトルの水平方向のＭＲＲ成分（ｋ12）及び垂直方向のＭＲＲ成分（Ｋ21）のそれぞれをＲ０／Ｒ倍する。なお、このステップＳ５０９による反映後の画像に対して仮にステップＳ５０３の処理を行ったならば埋込処理の結果の２次元ベクトルデータが得られるようにその反映のための演算は定義されている。
【００４４】
ステップＳ５０９に続いて、ウェーブレット逆変換部１０９は、画像格納部１０２に格納されている埋込処理の反映後の画像に対して２次元直交ウェーブレット逆変換をＮ回施すことにより透かし情報が埋め込まれた画像を画像格納部１０２内に生成する（ステップＳ５１０）。このステップＳ５１０により生成された画像を、画像出力部１１０は、透かし情報埋込装置１００の外部に出力する（ステップＳ５１１）。こうして出力された透かし情報の埋め込み後の画像をディスプレイ画面に表示した場合には、閾値Ｓ、Ｒ０、Ｒ１が適切に選ばれていれば、その画像は透かし情報の埋め込み前の画像とは人が一見して区別できない程度に似たものとなる。
【００４５】
以上説明した透かし情報埋込装置１００は、画像に基づき算出される２次元ベクトルが基準方向となす角度に関して３６０度を１０度毎の３６区分に分類することとし、１つの区分内に１ビットの情報を埋め込むこととしたため、最大で３６ビットの透かし情報を画像中に埋め込むことができる。なお、例えば、より小さい角度毎に３６区分よりも多くの区分に分類することや、Ｒ０及びＲ１のみならず３つ以上の大きさを表す値を用いて１区分で３値以上を表すこととすれば、さらに多くのビット列からなる透かし情報を画像中に埋め込むことが可能になる。
【００４６】
このように、透かし情報埋込装置は、画像に対してその画像の著作権者を明示或いは暗示する文字コード列等のビット列からなる透かし情報を埋め込むことができる。なお、透かし情報の内容は限定されるものではなく、著作権保護に利用するための情報でなくても差し支えない。
以下、本発明の実施の形態に係る透かし情報抽出装置について説明する。
＜透かし情報抽出装置の構成＞
図１０は、本発明の実施の形態に係る透かし情報抽出装置２００の機能ブロック図である。
【００４７】
透かし情報抽出装置２００は、上述の透かし情報埋込装置１００によって電子透かしとして透かし情報が埋め込まれたデジタル画像から、透かし情報を抽出するための装置であり、ハードウェア的にはＣＰＵ、メモリ、ハードディスク、キーボード等を備えるコンピュータで構成され、機能的には同図に示すように画像取得部２０１、画像格納部２０２、ウェーブレット変換部２０３、２次元ベクトル作成部２０４、２次元ベクトル格納部２０５、抽出対象ベクトル特定部２０６、抽出部２０７及び透かし情報出力部２０８を有する。
【００４８】
ここで、画像取得部２０１は、記録媒体、或いは外部ネットワークから、透かし情報が埋め込むまれた画像を取得して画像格納部２０２に格納し、ウェーブレット変換部２０３にその画像の格納を通知する機能を有する。なお、画像取得部２０１により取得される画像は、透かし情報埋込装置１００に出力され、様々な流通経路を通過し、場合によっては流通過程において回転等の加工がなされたものである。
【００４９】
画像格納部２０２は、画像を格納するためのメモリの一領域である。
ウェーブレット変換部２０３は、透かし情報埋込装置１００のウェーブレット変換部１０３と基本的に同じであり、画像格納部２０２に格納された画像に対して、ハール基底（図２参照）で２次元直交ウェーブレット変換を予め定められた回数であるＮ回だけ施す機能を有する。
【００５０】
２次元ベクトル作成部２０４は、透かし情報埋込装置１００の２次元ベクトル作成部１０４と基本的に同じであり、ウェーブレット変換部２０３により画像に２次元直交ウェーブレット変換が施された結果として得られた画像に基づいて、その画像の特徴を表す複数の２次元ベクトルデータを作成し２次元ベクトル格納部２０５に格納する機能を有する。
【００５１】
２次元ベクトル格納部２０５は、画像の特徴を表す２次元ベクトルを格納するためのメモリの一領域である。
抽出対象ベクトル特定部２０６は、２次元ベクトル作成部２０４により２次元ベクトル格納部２０５に格納された複数の２次元ベクトルデータのうち、透かし情報が埋め込まれている複数の２次元ベクトルデータ、即ち透かし情報の抽出対象となる複数の２次元ベクトルデータを特定する機能を有する。
【００５２】
抽出部２０７は、２次元ベクトル格納部２０５に格納された複数の２次元ベクトルデータのうち透かし情報の抽出対象として特定された複数の２次元ベクトルデータの大きさを参照することにより、透かし情報を抽出して透かし情報出力部２０８に渡す機能を有する。
透かし情報出力部２０８は、抽出部２０７から渡された透かし情報を出力する機能を有する。その出力先は、ディスプレイ、記録媒体或いは外部ネットワークである。
【００５３】
なお、画像取得部２０１、ウェーブレット変換部２０３、２次元ベクトル作成部２０４、抽出対象ベクトル特定部２０６、抽出部２０７及び透かし情報出力部２０８は、メモリに格納された制御用プログラムがＣＰＵにより実行されることによりその機能が実現されるものである。
＜透かし情報抽出装置の動作＞
以下、透かし情報抽出装置２００の動作について説明する。
【００５４】
図１１は、透かし情報抽出装置２００の動作を示すフローチャートである。
以下、同図に示した動作を順を追って説明する。
まず、透かし情報抽出装置２００の画像取得部２０１は、透かし情報が埋め込まれている画像を外部より取得して画像格納部２０２に格納する（ステップＳ６０１）。
【００５５】
透かし情報が埋め込まれている画像が画像格納部２０２に格納されると、ウェーブレット変換部２０３は、その画像に対して２次元直交ウェーブレット変換をＮ回施す（ステップＳ６０２）。
ウェーブレット変換部２０３により画像にＮ回目の２次元直交ウェーブレット変換が施された後の水平方向及び垂直方向のＭＲＲ成分の画像に基づいて、２次元ベクトル作成部２０４は、２次元ベクトルデータを作成して２次元ベクトル格納部２０５に格納する（ステップＳ６０３）。
【００５６】
２次元ベクトル作成部２０４により２次元ベクトルデータ群が２次元ベクトル格納部２０５に格納された後、抽出対象ベクトル特定部２０６は、２次元ベクトルデータ群から２次元ベクトルの大きさが最大のものを抽出して、その２次元ベクトルの方向を基準方向と定め（ステップＳ６０４）、各２次元ベクトルデータについて、基準方向と２次元ベクトルの方向とのなす角度に着目して０以上１０度未満、１０度以上２０度未満、２０度以上３０度未満、・・・、３５０度以上３６０度未満というように１０度毎の３６区分に分類する（ステップＳ６０５）。
【００５７】
続いて抽出対象ベクトル特定部２０６は、ステップＳ６０５で分類した各区分のうち、その区分に属する２次元ベクトルデータで、大きさが閾値Ｓ以上のもの（以下、「抽出対象ベクトルデータ」という。）の数が閾値Ｔ以上存在する区分を、透かし情報の抽出対象となる抽出対象区分として特定する（ステップＳ６０６）。なお、基準方向を定めるために用いたものであり大きさが最大の２次元ベクトルデータについては特別に扱い、抽出対象ベクトルデータに含めないものとする。
【００５８】
抽出対象ベクトル特定部２０６が抽出対象区分を特定した後、抽出部２０７は抽出対象区分の抽出対象ベクトルデータを参照することにより透かし情報を抽出する。即ち、抽出部２０７は、基準方向からの角度の小さい抽出対象区分から順に区分内の抽出対象ベクトルデータの大きさを参照し、その大きさがＲ０とＲ１のいずれであるかを判定し、Ｒ０であれば値０、Ｒ１であれば値１であるとしてその値を区分毎に順次ビット列を形成するものとして蓄積して、最終的にはそのビット列を透かし情報として透かし情報出力部２０８に渡す（ステップＳ６０７）。なお、ある抽出対象区分内の抽出対象ベクトルデータの大きさがＲ０とＲ１のいずれであるかを判定するに際しては、その抽出対象区分内のＴ個の抽出対象ベクトルデータの平均値がＲ０とＲ１のいずれに近いかによって、その近い方にあたるＲ０又はＲ１であると判定する。
【００５９】
例えば、透かし情報が埋め込まれた画像に関する抽出対象区分の抽出対象ベクトルデータの大きさが図９に表したグラフのように分布していれば、ステップＳ６０７によって「０１０００１０１・・・」というビット列が抽出できる。なお、透かし情報のサイズが例えば８ビット等と予め定められている場合には、抽出部２０７は、抽出したビット列の先頭からその定められているビット数分だけを透かし情報として透かし情報出力部２０８に渡す。
【００６０】
抽出部２０７により透かし情報が渡されると、透かし情報出力部２０８はその透かし情報を透かし情報抽出装置２００の外部に出力する（ステップＳ６０８）。これにより例えばディスプレイ等に透かし情報が出力されることになる。
なお、透かし情報抽出装置２００は、透かし情報が埋め込まれた画像が回転されていても、画像に基づき作成する２次元ベクトルデータが回転の影響を受けないものであるため、画像から透かし情報を正しく抽出することができる。
＜補足＞
以上、本発明に係る透かし情報埋込装置及び透かし情報抽出装置について、実施の形態に基づいて説明したが、本発明はこの実施の形態に限られないことは勿論である。即ち、
（１）本実施の形態では、透かし情報が埋め込まれる画像は水平方向に２５６、垂直方向に２５６個の白黒２５６階調で表される画素データであることとしたが、画像を構成する画素数や画素データのビット数等がこれに限定されるものではない。また、本実施の形態では、ウェーブレット変換部１０３等により画像に２次元ウェーブレット変換が施される回数Ｎが予め定められているものとしたが、画像を構成する画素数等の画像のサイズを表す情報に応じて、サイズが大きければＮを大きくするように、回数Ｎを決定することにしてもよい。また、透かし情報抽出装置２００において２次元ウェーブレット変換を施す回数が透かし情報埋込装置１００において画像に２次元ウェーブレット変換が施された回数と異なるようにしてもよく、この場合には透かし情報抽出装置２００においてステップＳ６０６で用いる閾値Ｔを他の値のものとしてもよい。
（２）本実施の形態で、透かし情報埋込装置１００の埋込部１０８が定めるＲ０及びＲ１は予め固定的に定まっていることとしてもよいし、２次元ベクトルデータ群の大きさの分布に応じてＲ０及びＲ１を定めることとしてもよい。例えば、大きさが閾値Ｓ以上の２次元ベクトルデータについて、その大きさの平均値がＭであれば、Ｒ０とＲ１とをＭより少し上の値と少し下の値と定めることとしてもよい。また、予め固定的にＲ０及びＲ１を定めておく場合には、透かし情報を埋め込む対象となる画像が内容的に風景画像であるか、人の内部器官をスキャンして得られた画像であるか等に応じて、事前にＲ０及びＲ１を変化させて複数枚の対象の画像に対して透かし情報の埋め込みを実験的に行い、その実験を通じて埋め込みを適切に行えるＲ０及びＲ１を定めておくこととしてもよい。また、閾値Ｓ、閾値Ｔ及び回数Ｎについても同様に実験を通じて好適なものを予め定めておくこととしてもよい。但し、０＜閾値Ｔ、０＜閾値Ｓ≦Ｒ０＜Ｒ１の関係を満たすようにする必要がある。
（３）本実施の形態で示した透かし情報埋込装置１００の埋込部１０８は、埋込対象区分が埋め込むべき透かし情報のビット数より多い場合には、順次埋め込みを行って余った埋込対象区分については一律に埋込対象ベクトルデータの大きさをＲ０にすることとしてもよい。
（４）本実施の形態で示した透かし情報抽出装置２００の抽出部２０７は、抽出対象区分内のＴ個の抽出対象ベクトルデータについての大きさの平均値に基づいて、Ｒ０かＲ１かの判定を行うこととし、このＴは透かし情報埋込装置１００において埋込対象区分であると判定するために用いた閾値であることとしたが、Ｔ個の平均値に限定されることはなく、Ｔ以外の個数の抽出対象ベクトルの平均値を算出してＲ０とＲ１のいずれに近いかによって判定することとしてもよい。また、抽出対象区分内の全ての抽出対象ベクトルデータについての大きさの平均値に基づいてＲ０かＲ１かの判定を行うこととしてもよい。なお、この平均値を算出するための抽出対象ベクトルデータの個数はある程度多い方が、最終的に抽出される透かし情報の精度が高まる。
（５）本実施の形態で示した透かし情報抽出装置２００の抽出部２０７は、Ｒ０、Ｒ１の値を予め記憶していてこれを用いて、抽出対象ベクトルデータから０或いは１というビット値を抽出することとしてもよいが、Ｒ０やＲ１を予め記憶せずに透かし情報を抽出する構成とすることもできる。そのためには、例えば埋め込む透かし情報に前提条件を課し、透かし情報のビット列に少なくとも１つの０の値のビットと少なくとも１つの１の値のビットとが含まれていることとしておけば、抽出部２０７は、各抽出対象区分の抽出対象ベクトルデータの大きさが概ね２つの値のいずれかとなるため、２つの値のうち小さい方を０、大きい方を１というように判定する構成としてもよい。
（６）本実施の形態では、透かし情報抽出装置２００はステップＳ６０４において２次元ベクトルデータ群から大きさが最大なものを抽出してその２次元ベクトルの方向を基準方向として定めることとしたが、任意の方向を仮に基準方向と定めて、大きさが閾値Ｓ以上の全ての２次元ベクトルデータについて２次元ベクトルの基準方向となす角度に対する２次元ベクトルの大きさの分布を検査することにより、基準方向を微調整して透かし情報の抽出を行うこととしてもよい。この場合には、大きさが最大の２次元ベクトルデータも埋込対象ベクトルデータ及び抽出対象ベクトルデータに含める。
【００６１】
例えば、任意の方向を基準方向として仮に定めてステップＳ６０５及びＳ６０６を行い各抽出対象区分内における抽出対象ベクトルデータの大きさについての分散値を計算し、次に基準方向を元の基準方向より１度大きく更新して同様に分散値を計算するという手順を９回繰り返して、その結果得られる１０個の分散値のうち最も小さいものの算出の基礎となった基準方向を最終的に採用してステップＳ６０５以後の処理を行うこととしてもよい。この場合には、抽出された透かし情報であるビット列は先頭と最後のビットを繋いでリング状になっているものと扱い、透かし情報の意味内容や予め透かし情報に定められた前提条件に従ってその内容を読み取る必要がある。なお、透かし情報は、任意ビット列を予め固定パターンの開始ビット列及び終了ビット列で挟んであることとしてもよい。
（７）本実施の形態では、画像から算出される２次元ベクトルデータのうち埋込対象ベクトルデータについて埋込対象区分毎に、大きさをＲ０或いはＲ１に変更することにより画像に透かし情報を埋め込む方法を示したが、この他に、埋込対象区分毎に埋込対象ベクトルデータにおける２次元ベクトルの方向を、その埋込対象区分に対応する角度範囲から相対的な２つの角度Ｑ0及びＱ1のいずれかに変更すること、或いは１度単位の角度値において偶数及び奇数のいずれかに変更すること等により画像に透かし情報を埋め込むこととしてもよい。
（８）本実施の形態における透かし情報埋込装置或いは透かし情報抽出装置の処理手順（図５、図８、図１１に示した手順等）を、汎用のコンピュータ等に実行させるためのコンピュータプログラムを、記録媒体に記録し又は各種通信路等を介して、流通させ頒布することもできる。このような記録媒体には、ＩＣカード、光ディスク、フレキシブルディスク、ＲＯＭ等がある。流通、頒布されたコンピュータプログラムは、コンピュータ等にインストールされることにより利用に供され、コンピュータ等は、当該コンピュータプログラムを実行して、本実施の形態で示したような透かし情報埋込装置或いは透かし情報抽出装置を実現する。
【００６２】
【発明の効果】
以上説明したように本発明に係る透かし情報埋込装置は、ｘｙ２次元座標平面に配置された画素データの集合である２次元画像に、電子透かしとしてビットデータを埋め込む透かし情報埋込装置であって、前記２次元画像を取得する画像取得手段と、ビットデータを取得するビットデータ取得手段と、取得された前記２次元画像中の複数の位置それぞれに対応して、当該位置における画素データの値についてのｘ方向の空間的勾配をｘ成分としｙ方向の空間的勾配をｙ成分とする２次元ベクトルを作成する２次元ベクトル群作成手段と、作成された各２次元ベクトルを、ｘｙ２次元座標平面上での特定方向と当該２次元ベクトルの示す方向とのなす角度が複数の角度範囲区分のいずれに含まれるかによって当該複数の角度範囲区分のいずれかと対応付け、前記複数の角度範囲区分のうち対応する２次元ベクトルの数が閾値Ｔ（Ｔ＞０）以上である角度範囲区分について、当該角度範囲区分に対応する２次元ベクトルで大きさが閾値Ｓ（Ｓ＞０）以上のものの大きさ又は方向を前記ビットデータを表すために変更することにより、２次元ベクトル群にビットデータを埋め込む埋込手段と、前記埋込手段によりビットデータが埋め込まれた２次元ベクトル群に基づき、前記２次元ベクトル群作成手段が２次元画像から２次元ベクトル群を作成する際に用いた演算の逆演算を施すことにより、２次元画像を生成して出力する画像出力手段とを備えることを特徴とする。
【００６３】
これにより、画像の空間的勾配から作成される２次元ベクトル群にビットデータ即ち透かし情報が埋め込まれ、画像が回転しても各２次元ベクトルの大きさは変化することなく、２次元ベクトル全体において各２次元ベクトル相互間の方向は変化しないものであるため、こうして埋め込まれた透かし情報は、画像が回転している場合であっても正しく抽出することができることになる。即ち、回転に強い電子透かしが実現できる。
【００６４】
ここで、前記２次元ベクトル群作成手段は、前記２次元画像にハール基底を用いた２次元直交ウェーブレット変換を施すことにより、ｘ方向のＭＲＲ（Ｍｕｌｔｉ  Ｒｅｓｏｌｕｔｉｏｎ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）成分を前記ｘ成分とし、ｙ方向のＭＲＲ成分を前記ｙ成分として前記２次元ベクトルを作成することとしてもよい。
【００６５】
これにより、２次元直交ウェーブレット変換を用いるため、簡易に画像の空間的勾配を示す２次元ベクトルを求めて透かし情報を埋め込むことができる。
また、前記ビットデータは、ビット列からなり、前記埋込手段は、前記複数の角度範囲区分のうち対応する２次元ベクトルの数が閾値Ｔ以上である全ての角度範囲区分に角度の小さいものから大きいものへと順序を付け、当該順序に従って各角度範囲区分に前記ビットデータの先頭ビットから順に１ビットを割り当て、１ビットを割り当てた各角度範囲区分について、当該角度範囲区分に対応する２次元ベクトルで大きさが閾値Ｓ以上の全ての２次元ベクトルの大きさを、当該角度範囲区分に割り当てた１ビットの値が０であれば所定値Ｒ０に変更し、当該角度範囲区分に割り当てた１ビットの値が１であれば所定値Ｒ１に変更することとしてもよい。
【００６６】
これにより、２次元ベクトルの大きさを２種類の値として０又は１を表すことによりビット情報を埋め込むため、埋め込まれた情報の抽出が容易となる。またビット情報が埋め込まれた結果の画像が拡大又は縮小されていても、２次元ベクトルの大きさが２種類であるので大きいか小さいかの判定により容易にビット情報を抽出することができるようになる。
【００６７】
また、前記埋込手段は、前記２次元ベクトル群作成手段により作成された２次元ベクトルのうち大きさが最大のものの方向を前記特定方向とすることとしてもよい。
これにより、特定方向を定めるための基準を最大の２次元ベクトルとするため、この透かし情報埋込装置により透かし情報が埋め込まれた後の画像に回転が加えられても、特定方向の抽出が容易となり、このため透かし情報であるビットデータのビット列は順序通りに正しく抽出できるようになる。
【００６８】
また、本発明に係る透かし情報抽出装置は、ｘｙ２次元座標平面に配置された画素データの集合であり電子透かしとしてビットデータが埋め込まれた２次元画像から当該ビットデータを抽出する透かし情報抽出装置であって、前記２次元画像を取得する画像取得手段と、取得された前記２次元画像中の複数の位置それぞれに対応して、当該位置における画素データの値についてのｘ方向の空間的勾配をｘ成分としｙ方向の空間的勾配をｙ成分とする２次元ベクトルを作成する２次元ベクトル群作成手段と、作成された各２次元ベクトルを、ｘｙ２次元座標平面上での特定方向と当該２次元ベクトルの示す方向とのなす角度が複数の角度範囲区分のいずれに含まれるかによって当該複数の角度範囲区分のいずれかと対応付け、前記複数の角度範囲区分のうち対応する２次元ベクトルの数が閾値Ｔ（Ｔ＞０）以上である角度範囲区分について、当該角度範囲区分に対応する２次元ベクトルで大きさが閾値Ｓ（Ｓ＞０）以上のものの大きさ又は方向に基づいてビットデータを抽出する抽出手段とを備えることを特徴とする。
【００６９】
これにより、上述の透かし情報埋込装置によって画像の空間的勾配から作成される２次元ベクトル群にビットデータ即ち透かし情報が埋め込まれたところの画像から、適正に透かし情報を抽出することができる。
ここで、前記２次元ベクトル群作成手段は、前記２次元画像にハール基底を用いた２次元直交ウェーブレット変換を施すことにより、ｘ方向のＭＲＲ（Ｍｕｌｔｉ  Ｒｅｓｏｌｕｔｉｏｎ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）成分を前記ｘ成分とし、ｙ方向のＭＲＲ成分を前記ｙ成分として前記２次元ベクトルを作成することとしてもよい。
【００７０】
これにより、２次元直交ウェーブレット変換を用いて画像から２次元ベクトルを求めてその２次元ベクトルの変更によりビットデータ即ち透かし情報が画像に埋め込まれている場合に、画像から透かし情報を抽出することができるようになる。
また、抽出対象である前記ビットデータは、ビット列からなり、前記抽出手段は、前記複数の角度範囲区分のうち対応する２次元ベクトルの数が閾値Ｔ以上である全ての角度範囲区分に角度の小さいものから大きいものへと順序を付け、当該順序に従って各角度範囲区分から１ビットずつの値を特定して蓄積することにより前記ビットデータを抽出し、前記各角度範囲区分からの１ビットずつの値の特定は、当該角度範囲区分に対応する２次元ベクトルであって大きさが閾値Ｓ以上のＴ個以上の２次元ベクトルの大きさが所定値Ｒ０であれば当該１ビットの値を０と判定し、当該２次元ベクトルの大きさが所定値Ｒ０以外であれば当該１ビットの値を１と判定することにより行われることとしてもよい。
【００７１】
これにより、２次元ベクトルの大きさを２種類の値として０又は１を表すようにビット情報が埋め込まれた画像から、埋め込まれたビット情報を抽出することができるようになる。またビット情報が埋め込まれた結果の画像が拡大又は縮小されていても、２次元ベクトルの大きさが２種類であるので大きいか小さいかの判定により容易にビット情報を抽出することができるようになる。
【００７２】
また、前記抽出手段は、前記２次元ベクトル群作成手段により作成された２次元ベクトルのうち大きさが最大のものの方向を前記特定方向とすることとしてもよい。
これにより、画像から求まる２次元ベクトルのうち最大のものの方向を特定方向として特定方向と２次元ベクトルの方向とのなす角度によって２次元ベクトル群を分類して、分類に従って透かし情報を埋め込むような上述の透かし情報埋込装置によって出力された画像から、画像が回転していても適切に特定方向を特定できるので、的確に透かし情報を抽出することが可能になる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係る透かし情報埋込装置１００の機能ブロック図である。
【図２】ウェーブレット変換部１０３による２次元直交ウェーブレット変換に利用するハール（Ｈａａｒ）基底を示す図である。
【図３】ウェーブレット変換部１０３により２次元直交ウェーブレット変換が施される前の画像の様子を表した図である。
【図４】ウェーブレット変換部１０３により２次元直交ウェーブレット変換が１回施された後の画像の様子を表した図である。
【図５】透かし情報埋込装置１００の動作を示すフローチャートである。
【図６】ある空間的位置Ｐ（ｘ，ｙ）についての水平方向のＭＲＲ成分と垂直方向のＭＲＲ成分とを示す概念図である。
【図７】「Ｅ」の字の形を表した画像の一部についての空間的勾配を示した図である。
【図８】埋込部１０８の行う埋込処理を示すフローチャートである。
【図９】透かし情報を埋込対象区分の埋込対象ベクトルデータに埋め込んだ結果を例示する図である。
【図１０】本発明の実施の形態に係る透かし情報抽出装置２００の機能ブロック図である。
【図１１】透かし情報抽出装置２００の動作を示すフローチャートである。
【符号の説明】
１００    透かし情報埋込装置
１０１    画像取得部
１０２    画像格納部
１０３    ウェーブレット変換部
１０４    ２次元ベクトル作成部
１０５    ２次元ベクトル格納部
１０６    埋込対象ベクトル特定部
１０７    透かし情報取得部
１０８    埋込部
１０９    ウェーブレット逆変換部
１１０    画像出力部
２００    透かし情報抽出装置
２０１    画像取得部
２０２    画像格納部
２０３    ウェーブレット変換部
２０４    ２次元ベクトル作成部
２０５    ２次元ベクトル格納部
２０６    抽出対象ベクトル特定部
２０７    抽出部
２０８    透かし情報出力部
【図１】
0003737702.tif 000002
【図２】
0003737702.tif 000003
【図３】
0003737702.tif 000004
【図４】
0003737702.tif 000005
【図５】
0003737702.tif 000006
【図６】
0003737702.tif 000007
【図７】
0003737702.tif 000008
【図８】
0003737702.tif 000009
【図９】
0003737702.tif 000010
【図１０】
0003737702.tif 000011
【図１１】
0003737702.tif 000012