(57)【特許請求の範囲】
【請求項１】
複数の画素からなる画像データへ電子透かし情報ｂｉｔ１〜ｂｉｔｎ（１≦ｎ）を挿入する方法にあって、
一つ以上の前記画素を用いて、埋め込みブロックｂを構成し、
一つ以上の前記埋め込みブロックｂ１〜ｂｋ（１≦ｎ＜ｋ）を用いて、画像ブロックＢを構成し、
前記画像データを、複数の前記画像ブロックＢ１〜Ｂｐ（２≦ｑ≦ｐ）に分割し、
各々の前記画像ブロックＢｑにおいて、
前記埋め込みブロックｂ１〜ｂｎを前記電子透かし情報ｂｉｔ１〜ｂｉｔｎに各々対応付け，
各埋め込みブロックｂｊ（１≦ｊ≦ｎ）を構成する前記画素の一つ以上の画素値を、前記ビット値ｂｉｔｊに従って変更し，
前記埋め込みブロックｂｎ＋１〜ｂｋを構成する前記画素の画素値を変更せずに維持する
ことを特徴とする電子透かし情報挿入方法。
【請求項２】
複数の画素からなる情報挿入前画像データに電子透かし情報ｂｉｔ１〜ｂｉｔｎ（１≦ｎ）を挿入した情報挿入済み画像データを作成し、
前記情報挿入済み画像データの位置をシフトした、情報検出対象画像データから、前記電子透かし情報ｂｉｔ１〜ｂｉｔｎを抽出する方法であって、
前記情報挿入済み画像データは、
一つ以上の前記画素を用いて、埋め込みブロックｂを構成し、
一つ以上の前記埋め込みブロックｂ１〜ｂｋ（１≦ｎ＜ｋ）を用いて、画像ブロックＢを構成し、
前記画像データを、複数の前記画像ブロックＢ１〜Ｂｐ（２≦ｑ≦ｐ）に分割し、
各々の前記画像ブロックＢｑにおいて、
前記埋め込みブロックｂ１〜ｂｎを前記電子透かし情報ｂｉｔ１〜ｂｉｔｎに各々対応付け，
各埋め込みブロックｂｊ（１≦ｊ≦ｎ）内の所定の位置にある、一つ以上の前記画素の画素値を、前記ビット値ｂｉｔｊに従って変更し，
前記埋め込みブロックｂｎ＋１〜ｂｋを構成する前記画素の画素値を変更せずに維持することにより作成されたものであり、
前記情報検出対象画像データを、前記画像ブロックＢと同じ大きさの画像ブロックＢＢに分割し、
各々の前記画像ブロックＢＢにおいて、
各々の前記画像ブロックＢＢを、ｋ個の、前記埋め込みブロックｂと同じ大きさの埋め込みブロックｂｂに分割し、
各々の前記埋め込みブロックｂｂ内の、前記所定の位置にある前記画素の画素値を調べ、
前記情報検出対象画像データの、前記情報挿入済み画像データに対する前記画素単位のシフト量を特定し、
前記特定したシフト量に基づいて、ｋ個の前記埋め込みブロックｂｂの分割位置を補正し、
補正したｋ個の前記埋め込みブロックｂｂのうち、前記画素の画素値が、前記情報挿入前画像データから維持されていると判断するブロックを、前記埋め込みブロックｂｎ＋１〜ｂｋであると特定して、前記埋め込みブロック単位のシフト量を特定し、
前記埋め込みブロック単位のシフト量に基づき、前記電子透かし情報ｂｉｔ１〜ｂｉｔｎが挿入されている前記埋め込みブロックｂ１〜ｂｎを特定する
ことを特徴とする電子透かし情報抽出方法。
【請求項３】
請求項２に記載の電子透かし情報抽出方法において、
前記画素単位のシフト量は、
前記画素を単位とする、異なる量をシフトした前記埋め込みブロックｂｂを複数求め、
前記複数の前記埋め込みブロックｂｂ各々について、前記所定の位置にある前記画素の画素値と、前記所定の位置の周囲の前記画素の画素値とに基づき統計値を算出し、
シフト量の異なる複数の前記埋め込みブロックｂｂ各々の前記統計値を比較する、
ことにより求める
ことを特徴とする電子透かし情報抽出方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マルチメディアデータ（コンテンツ）へ各種情報を埋め込みコンテンツに種々の処理を施しても、高い信頼性で情報を検出できる情報挿入及び検出方法に関する。
【０００２】
【従来の技術】
マルチメディアデータの一つである画像コンテンツへの情報埋め込み（透かし埋め込み）は、一般に画素の輝度などの値に微小な変更を加えることによりおこなう。この値変更に関して、実用面から以下の要求がある。
【０００３】
（１）値の変更が人間の視覚では検知できない。（あるいは、検知できたとしても人間の画像参照の妨害にはならない。）
（２）情報を埋め込んだ画像に位置シフト、圧縮、拡大・縮小、各種フィルターなどの画像処理を施しても、埋め込んだ情報が消失しない。
【０００４】
従来の情報検出（透かし検出）技術では、たとえば米国特許 5,636,292に記されているように画像処理後の画像コンテンツから、情報ビットの読み取り順序を決定するために、情報ビット表現用の透かしとは独立に、読み取り位置決定用の透かしを埋め込んでいた。
【０００５】
具体的には、図３に示すように、画像１０１内に画像ブロック１０２単位で情報を埋め込む場合、図に示すように一定間隔にキャリブレーション用透かし埋め込み箇所(以下、キャリブレーション箇所という)３０１を設定し、その箇所の輝度値を一意に変更していた。そのため、透かし埋込み画像に位置シフトなどの画像処理を施しても、情報検出時の前処理として最初にキャリブレーション箇所３０１を検出することで、検出された情報ビットを正しい順序で読み取ることが可能であった。
【０００６】
【発明が解決しようとする課題】
しかし、従来の方法では、情報ビットによる画素値変更のほかに、キャリブレーション箇所の画素値の変更をしなければならず、画素値の変更箇所が増えることによる画質の劣化が問題になっていた。また、埋込み時には、情報ビット埋込みのほかにキャリブレーション箇所の輝度値変更、検出時には、情報ビット検出のほかにキャリブレーション用の箇所を検出しなければならず、埋込み・検出処理全体の処理時間の増加が問題となっていた。
【０００７】
本発明は、上記事情に鑑みてなされたものであり、本発明の目的は、キャリブレーション用電子透かしを用いることなく、幾何学的変形が加えられた画像データから電子透かし情報が埋め込まれている位置を特定することが可能な電子透かし技術を提供することにある。
【０００８】
すなわち本発明の目的は、画素値の変更増大による画質劣化、および埋込み・検出の処理時間増加を防止しながら、情報ビットの読み取り位置および順序を決定するための技術、すなわち、透かし埋め込み方法と透かし検出方法、さらに、それらを用いた装置、プログラムを提供することである。
【０００９】
【課題を解決するための手段】
上記目的を達成するために本発明は、透かし埋め込み処理において、キャリブレーション箇所へは透かしを埋め込まないことを特徴とする。また、透かし検出処理におけるキャリブレーション時において、上記透かしが埋め込まれていない箇所をキャリブレーション箇所とする。
【００１０】
さらに、本発明は、この上記キャリブレーション箇所を検出して読み取り位置および順序を決定することを特徴とする。
【００１１】
これにより、画素値が変更された画素は、情報ビット表現用の透かしが埋め込まれた箇所のみになり、画素値の変更増大による画質劣化を防止できる。また、キャリブレーション箇所に対する画素値変更が必要ないので、埋込み・検出の処理が簡易化され、処理時間の増加を防止できる。
【００１２】
【発明の実施の形態】
以下、図を用いて、本発明の実施例を述べる。この実施例では、静止画(以下、画像という)と対象とし、画素の輝度を変更することで情報を埋め込むものとする。動画は静止画の連続と見なすことができるので、同様な方法で実現できる。
【００１３】
図１は、画像に透かしを埋め込む方式の一例を示した図である。画像１０１に一例として１６ビットの情報ビット(b1,b2,...,bi,...,b16：各biは０または１)を埋め込む。最初に、画像１０１をp個の画像ブロック(B1,...,Bp)１０２に分割する。各画像ブロック内をさらに一例として１６個のビット埋め込みブロック１０３に分割し、それぞれにb1からb16までの16個の情報ビットを割り当てる。（図では、一例として左上から順にb1からb16を割り当てている）次に、分割した各ビット埋め込みブロックに対しbi=１の場合、ビット埋め込みブロック内部の少なくとも1画素から成る部分ブロック(以下、画素値変更ブロックという)の画素値(例えばYUV系における輝度または色差、RGB系における階調または強度を指す。以下の説明では輝度を用いる)をＣだけ増加し、bi=0の場合、Ｃだけ輝度値を減少する。以上の輝度値の増減をp個の画像ブロックに対し同様に行う。
【００１４】
なお、ブロックとは、１画素以上の集合を意味する。
【００１５】
透かし検出時には、各画像ブロック内の左上のビット埋め込みブロックから順に統計操作を施すことで、統計値の大小によりb1からb16の情報ビットを決定する。具体的には、以下の式を用いた処理を行い、i番目のビット値biに対応する統計値Viを算出する。
【００１６】
【数１】
0003671723.tif 000002
【００１７】
ビット情報が埋め込まれていない（透かし無し）場合、画素値変更ブロックの画素値はその周囲(近傍)の画素値の平均値に等しいか近いことが多く、Viは0を中心とした正規分布に近づく。また、bi=1の場合、ViはCを中心とした正規分布、bi=0の場合、−Cを中心とした正規分布にそれぞれ近づく。その特性を利用してビット値biを以下条件に従って決定する。
【００１８】
・Vi＞Ｔならbi=1
・−Ｔ＜Vi＜Ｔなら輝度値は未変更（透かし無し）と推定しbiを決定しない
・−Ｔ＞Viならbi=0
ここでＴはしきい値であって、要求される誤り率によって決定され、設定されるものである。
【００１９】
このように、Viを算出するには、あらかじめ各情報ビットの割り当てられた位置を知ることで、正しい順序で情報ビットを検出する。
【００２０】
図２は、画像処理の一例として、位置がシフトされた画像(以下、シフト画像という)からの検出を示した図である。シフト画像２０１は、図１の透かし画像に位置シフト（図では縦横ビット埋め込みブロック単位で1ブロック分シフトした）を施したものである。シフト画像から画像ブロックを取り出すと、ビット埋め込みブロックの順序が図のように変更される。この順序の変更はp個の画像ブロック全て同様である。図１と同様な検出を行うと、各画像ブロック内の左上のビット埋め込みブロックから順に統計操作を施すので、検出された情報は(b6,b7,...,b1)となり、情報ビットの順序の誤りにより正しい情報が検出されない。
【００２１】
図３は、読み取り位置決定用の透かしを埋め込む従来方法を示した図である。
【００２２】
従来方法では、図２のビット順序の問題を解決するために、各画像ブロック内にビット埋め込みブロック単位でキャリブレーション箇所３０１を設定し、その箇所の輝度値を一意に変更している。検出時には、透かし埋込み画像に位置シフトなどの画像処理を施しても、最初にキャリブレーション用輝度値変更箇所を検出することで、画像ブロック内の情報ビットが割り当てられたビット埋め込みブロックを推定し、正しい順序で情報ビットを検出する。しかし、従来方式は、ビット情報の埋め込みによる輝度値変更以外に、キャリブレーション箇所で輝度値を変更するので、輝度値の変更増大による画質の劣化が問題になっていた。また、埋込み・検出時には、前処理として、キャリブレーション箇所の埋込み・検出をしなければならず、埋込み・検出処理全体の処理時間の増加が問題となっていた。
【００２３】
図４は、本発明の模式図を示した図であり、キャリブレーション箇所の画素値は変更されておらず、本来の画素値を維持していることを示している。本発明により、輝度値の変更分は、情報ビット表現用の透かし分のみになり、画素値の変更増大による画質劣化を防止できる。また、透かし埋込み時には、キャリブレーション箇所の輝度値の変更をする必要がなく、検出時には、統計処理により輝度値未変更部分からキャリブレーション箇所を推定する処理のみなので、埋込み・検出の処理が簡易化され、処理時間の増加を防止できる。
【００２４】
図５は、本発明の透かし埋め込み方法の機能構成を示す図である。
【００２５】
図中の矩形で示した要素すなわち入出力５０１、情報ビット埋め込み５０３は処理であり、計算機のＣＰＵが実行するプログラムまたは、専用のハードウェアで実現される。楕円で示した要素すなわち画像５０２、透かし画像５０４はデータであり、計算機のCPU，半導体メモリ等の一次記憶装置、ハードディスクなどの2次記憶装置に格納される。
【００２６】
入出力５０１は、画像を入力し、これを記憶装置に格納する。情報ビット埋め込み５０３は、画像５０２に、前述した埋め込み方法により透かしを埋め込む。その結果、透かし画像５０４を得る。この透かし画像５０４は、入出力５０１を介して外部に出力される。
【００２７】
このように、透かし埋め込み時は、情報ビットの埋め込み処理だけ行えばよく、キャリブレーション箇所の輝度値変更は必要ないので、埋め込み処理の高速化が実現できる。
【００２８】
図６は、本発明による透かし検出方法のフローチャートを示す図である。
【００２９】
ステップ７０１では、入力画像に対して前述した検出方法に基づいて、その統計値Ｖを算出する。ステップ７０２では、算出した統計値Ｖから前述した条件に従って−Ｔ＜Vi＜Ｔに当てはまるビット埋め込みブロックを探索することで、輝度値の未変更箇所を探索する。ステップ７０３は判定処理であり、上記探索に基づいてキャリブレーション箇所の有無を判定する。キャリブレーション箇所が有ると判定されれば、ステップ７０５で情報ビットの検出を行い、無ければ、ステップ７０４で情報ビットの検出を行わないで、透かし無しの判定をする。
【００３０】
上記透かし検出方法について、ピクセル単位でシフトされたシフト画像が上記透かし検出処理の入力となる場合は、以下の処理によって輝度値の未変更箇所からキャリブレーション箇所の有無を判定する。
【００３１】
ステップ701では、シフト画像をそのまま画像ブロックに分割すると、シフト前の画像ブロックとシフト後の画像ブロックとの間に、縦横数ピクセルのずれが生じる場合があるので、シフト画像をそのまま分割して統計値Vを算出するのに加えて、考えうる画像ブロックのずれの分だけ、前記シフト画像を縦横それぞれピクセル単位でずらして分割した画像を生成する。
何種類かのずらし方にしたがって分割した画像ブロックから統計値Vを算出する。すなわち、シフトしないで算出した統計値系列V(0,0)=(V1,V2,...,V16)以外に、縦1、横０シフトして算出した統計値系列をV(0,1)=(V1,V2,...,V16)、以下同様にV(1,0),V(1,1),...のように計算し、その中の少なくとも一つの系列がシフト前の画像ブロックの統計値系列を含むように算出する系列数を決定する。系列数は、ビット埋め込みブロックのピクセルサイズに依存する。
【００３２】
ステップ７０２：算出した複数の統計値系列から、もっとも統計値V1,...,V16の変動が激しい系列を選択する。または変動の激しい順から複数選択する。上記系列をV(x,y)とする。（シフト画像を縦ｘピクセル、横yピクセルずらして分割した画像ブロックがシフト前の画像ブロックと一致する可能性が高い）
上記統計値系列V(x,y) =(V1,V2,...,V16)の各ビット埋め込みブロックの統計値に対し、前述した条件に従って−Ｔ＜Vi＜Ｔに当てはまるビット埋め込みブロックを輝度値未変更のビット埋め込みブロックと判定する。
【００３３】
ステップ703：上記で判定された輝度値未変更のビット埋め込みブロックのパターンをキャリブレーション箇所のパターンと比較し、キャリブレーション箇所の有無を判定する（複数選択した場合は、それぞれについて比較して上で有無を判定する)。
【００３４】
ステップ704：上記判定でキャリブレーション箇所無しと判定されれば、透かしを挿入していないと判断し、情報ビットの検出は行わない。
【００３５】
ステップ705：上記判定でキャリブレーション箇所有りと判定されれば、キャリブレーション箇所のパターンから想定されるビットブロック単位の縦横のシフト量を算出し、そのシフト量に応じて、情報ビットの順序を決定する。前記順序に従って情報ビットを並び替えて各ビット埋め込みブロックのビット値を検出する。
【００３６】
このように、検出処理においても、輝度値の未変更箇所を探索するだけでキャリブレーションの有無を判定できるので、検出処理の高速化が実現できる。
【００３７】
【発明の効果】
本発明により、画素値の変更は、情報ビット表現用の透かしのみになり、画素値の変更増大による画質劣化を防止できる。また、キャリブレーション箇所の画素値が変更されていないので、透かし埋込み時・透かし検出時、それぞれの処理が簡単になり、キャリブレーションによる処理時間の増加を防止できる。
【図面の簡単な説明】
【図１】画像に透かしを埋め込む方式の一例を示した図である。
【図２】位置シフト画像からの透かし検出の一例を示した図である。
【図３】位置シフト画像からの透かし検出の従来例を示した図である。
【図４】位置シフト画像からの透かし検出の本発明の模式図を示した図である。
【図５】本発明の透かし埋め込み方式の機能構成を示した図である。
【図６】本発明の透かし検出方式のフローチャートを示した図である。
【符号の説明】
１０１…画像、１０２…画像ブロック、１０３…ビット埋込みブロック、２０１…シフト画像、３０１…キャリブレーション箇所。
【図１】
0003671723.tif 000003
【図２】
0003671723.tif 000004
【図３】
0003671723.tif 000005
【図４】
0003671723.tif 000006
【図５】
0003671723.tif 000007
【図６】
0003671723.tif 000008