(57)【特許請求の範囲】
【請求項１】
複数の画素からなる画像に含まれる所定の画素が有する画素値を変更して，前記画像に情報を挿入するための画像処理方法であって，
（１）前記所定の画素と当該所定の画素を通る一つの方向に沿った複数の画素との画素値の変化を求める処理を，前記所定の画素を通る複数の方向について行い，最小の画素値変化を与える方向を求めるステップ，
（２）前記求めた方向に沿った画像処理を行い，前記所定の画素について，前記画像処理後の画素値を求めるステップ，
（３）前記所定の画素について，前記画像処理前の画素値と前記画像処理後の画素値との差を求め，前記情報を挿入する際の画素値変更可能量とするステップ，
を備える画像処理方法。
【請求項２】
請求項１記載の画像処理方法であって，
（４）前記所定の画素を複数設定するステップ，
（５）設定した前記所定の画素各々について，前記ステップ（１）から（３）を実行するステップ，
（６）前記ステップ（５）によって得られた，前記所定の画素各々についての，前記画素値変更可能量と，予め設定した値とに基づいて，前記各所定の画素の画素値の変更量を定めるステップ，
を備える画像処理方法。
【請求項３】
請求項２記載の画像処理方法であって，前記所定の画素について，
前記ステップ（２）の画像処理として，平滑化処理を行うステップ，
前記ステップ（６）の前記変更量を，前記予め設定した値として設定した上限値より小さくなるように決定するステップ，
の少なくとも一つを備える画像処理方法。
【請求項４】
請求項２記載の画像処理方法であって，さらに，
前記ステップ（６）によって定めた前記所定の画素各々への前記変更量に基づいて演算を行い，演算結果が，予め設定した，挿入する前記情報を表現する値となるように，所定の画素の変更量を再度決定するステップ，
を備える画像処理方法。
【請求項５】
請求項４に記載の画像処理方法であって，前記演算は加算である画像処理方法
【請求項６】
請求項１ないし５いずれか一に記載の画像処理方法であって，画素値は輝度値である画像処理方法。
【請求項７】
請求項２記載の画像処理方法であって，さらに，
（７）複数ビットからなる前記挿入する情報を構成する１ビット毎に，前記ステップ（４）から（６）を実行するステップ，
（８）定めた変更値に基づいて画素値を変更するステップ，
（９）画素値を変更した前記画像を出力するステップ，
を備える画像処理方法。
【請求項８】
複数の画素からなる画像に含まれる所定の画素が有する画素値を変更して，前記画像に情報を挿入するための画像処理を電子計算機に実行させるプログラムが記憶された記憶媒体であって，
（１）前記所定の画素と当該所定の画素を通る一つの方向に沿った複数の画素との画素値の変化を求める処理を，前記所定の画素を通る複数の方向について行い，最小の画素値変化を与える方向を求める処理，
（２）前記求めた方向に沿った画像処理を行い，前記所定の画素について，前記画像処理後の画素値を求める処理，
（３）前記所定の画素について，前記画像処理前の画素値と前記画像処理後の画素値との差を求め，前記情報を挿入する際の画素値変更可能量とする処理，
を電子計算機に実行させるプログラムが記憶された記憶媒体。
【請求項９】
請求項８記載のプログラムが記憶された記憶媒体であって，
（４）前記所定の画素を複数設定する処理，
（５）設定した前記所定の画素各々について，前記処理（１）から（３）を実行する処理，
（６）前記処理（５）によって得られた，前記所定の画素各々についての，前記画素値変更可能量と，予め設定した値とに基づいて，前記各所定の画素の画素値の変更量を定める処理，
を電子計算機に実行させるプログラムが記憶された記憶媒体。
【請求項１０】
請求項９記載のプログラムが記憶された記憶媒体であって，前記所定の画素について，
前記処理（２）の画像処理として，平滑化処理を行う処理，
前記処理（６）の前記変更量を，前記予め設定した値として設定した上限値より小さくなるように決定する処理，
の少なくとも一つの処理を電子計算機に実行させるプログラムが記憶された記憶媒体。
【請求項１１】
請求項９記載のプログラムが記憶された記憶媒体であって，さらに，
前記処理（６）によって定めた前記所定の画素各々への前記変更量に基づいて演算を行い，演算結果が，予め設定した，挿入する前記情報を表現する値となるように，所定の画素の変更量を再度決定する処理，
を電子計算機に実行させるプログラムが記憶された記憶媒体。
【請求項１２】
請求項１１に記載のプログラムが記憶された記憶媒体であって，
前記演算として加算を行わせる，電子計算機に実行させるプログラムが記憶された記憶媒体。
【請求項１３】
請求項８ないし１２いずれか一に記載のプログラムが記憶された記憶媒体であって，
前記画素値として輝度値を用いらせる，電子計算機に実行させるプログラムが記憶された記憶媒体。
【請求項１４】
請求項９記載のプログラムが記憶された記憶媒体であって，
（７）複数ビットからなる前記挿入する情報を構成する１ビット毎に，前記処理（４）から（６）を実行する処理，
（８）定めた変更値に基づいて画素値を変更する処理，
（９）画素値を変更した前記画像を出力する処理，
を電子計算機に実行させるプログラムが記憶された記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は任意の情報を、コンテンツに埋め込むに際して、特にそのコンテンツを劣化させない情報埋め込み方法に係わる。
【０００２】
【従来の技術】
コンテンツへの情報埋込み技術は画像、音声、テキスト、図面など様々なコンテンツ（すなわち、ディジタル化されたデータ）について開発されているが、ここでは、代表例として、画像への情報埋込みを取り上げる。一般に、画像への情報埋込みは、たとえば、ＩＢＭ  Ｓｙｓｔｅｍ  Ｊｏｕｒｎａｌ，  ３５巻、３＆４号、３１３〜３３６頁、１９９６年に記されているように画素の輝度などの値に微かな変更を加えることにより、情報を埋め込むものである。
【０００３】
この値変更に関して、実用面から以下の要求がある。
【０００４】
（１）値を変更が人間の視覚では検知できない。（あるいは、検知できたとしても人間の画像参照の妨害にならない）
（２）情報を埋め込んだ画像にＪＰＥＧ圧縮等の処理を施しても、埋め込んだ情報が消失しない。
【０００５】
従来の情報埋込み技術では、上記文献に述べられているように、この要求を満たすために、変更の対象となる値の種類に関して工夫していた。すなわち、変更が目立ちにくく、かつ、消失しにくいよう値に対して変更を加えていた。例えば、画像を周波数表現し、その中域成分の係数に対して変更を加えていた。
【０００６】
【発明が解決しようとする課題】
画像の値の変更と視覚上の変化の関係は、画像毎さらには画像中の領域によって異なる。例えば、平坦な領域ではわずかな値変更でも目立つ一方、森林写真のような雑然とした領域では大きな値の変更でも目立たない。
【０００７】
ところが、上記従来の技術では、画像の性質に依存して値変更の大きさを最適化するという点については不充分であった。そのため、視覚的変化の防止を優先する場合には、平坦な画像の場合を想定して値変更を小さくする必要があり、画像処理への耐性が小さかった。一方、画像処理への耐性を優先する場合には、値変更を大きくする必要があり、平坦な画像において視覚的変化が生じていた。すなわち、従来方式では、視覚的変化の防止と画像処理への耐性を両立することが困難であった。
【０００８】
本発明の目的は、コンテンツへの情報埋込みにおいて、視覚的変化の防止と画像処理への耐性の両立を可能とする方法、それを実現するプログラム、あるいはその方法やプログラムを実行する装置を提供することである。
【０００９】
【課題を解決するための手段】
医用画像処理の分野では、Ｘ線やＭＲＩを用いて撮影した人体の写真に対して、医師の診断を容易にするためのフィルターが研究されている。最も進んだ医用フィルターでは、電子情報通信学会論文誌、Ｄ−２、第Ｊ７９−Ｄ−２巻、第８号、１３４７頁から１３５３頁に示されるように、以下の性質を持つ。
【００１０】
（１）平滑化処理により、ノイズを除去する。
（２）人間の視覚にとって重要なエッジ情報、すなわち物体の輪郭や面の性質の変化する部分、および色や明るさが周囲に比べて特に違う点（孤立点）については、形状を保存する。
見方を変えると、上記医用フィルターは、以下の性質を持つと考えることができる。
（１）画像の値は変化する。
（２）画像は視覚的に変化しない。あるいは変化したとしても人間の参照の妨げにはならない。
【００１１】
上記の医用フィルターの性質を利用して、上記の課題を解決することを着想した。すなわち、上記の課題は、コンテンツを入力する手段と、コンテンツに情報を埋め込む手段を有する情報処理システムにおいて、上記の医用フィルターを用いて、人間には知覚できない、あるいは、人間のコンテンツ参照の妨害にならないコンテンツの値変更を行い、変更前の値と変更後の値の間を情報埋込みにおける値の変更可能範囲とし、この変更可能範囲内でコンテンツの値を変更することにより情報を埋め込むことで解決できる。
【００１２】
【発明の実施の形態】
以下、図１、２を用いて、本発明の第１の実施例を説明する。この実施例では、静止画と対象とし、画素の輝度を変更することで情報を埋め込むものとする。
【００１３】
図１は、本発明の機能構成図である。矩形で示した要素すなわち入出力１０１、変更可能範囲算出１０３、情報埋込み１０５は処理であり、計算機のＣＰＵで実現される。楕円で示した要素すなわち画像１０２、変更可能範囲１０４、透かし入り画像１０６はデータであり、計算機の記憶装置で実現される。
なお、以下では、情報を、人間が検知できない何らかのパターンに対応づけたものを透かしと呼び、情報が埋め込まれた画像を透かし入り画像という。
【００１４】
入出力処理１０１は、画像を入力し、これを記憶装置に格納する。変更可能範囲算出処理１０３は、まず、前述の医用フィルターあるいはそれと同様の画像処理を画像データ１０２に適用する。その結果、画像データ１０２と輝度が異なり、視覚的には変わらない画像を得る。次に、変更可能範囲算出処理１０３は、各画素毎に、画像処理適用前の輝度と適用後の輝度を記憶する。これが変更可能範囲データ１０４である。
【００１５】
情報埋込み処理１０５は、まず、画像データ１０２の画素のうち輝度を変更する画素を選択する。次に、選択した各画素について、輝度を特定値に変更することで情報を埋め込む。その結果、情報挿入画像データ１０６を得る。この情報挿入画像データ１０６は、入出力処理１０１を介して外部に出力される。
【００１６】
上述の医用フィルターの概要は以下の通りである。
（１）画像内の各画素について、（２）〜（３）の処理を実施する。
なお、画素とは、画像を構成する最小の部分画像であり、一般に、輝度と２種類の色差、あるいは３種類の色（３原色）により表現される。ここでは、画素が輝度と色差から構成されるものとする。
（２）当該画素及び周囲の画素の輝度を分析し、当該画素における輝度の法線ベクトルを求める。このベクトルは輝度の変化が最大となる方向を表す。このベクトルに直交し、当該画素を通るベクトルは、輝度の変化が最小となる方向すなわち当該画素を通るエッジを表す。
（３）上記エッジに沿って１次元の平滑化処理を実施。
上記の処理により、上記医用フィルターは上述の性質を有するものとなる。
変更可能範囲算出処理１０３は、画像データ１０２と輝度が異なり、視覚的には変わらない画像を得る。
【００１７】
次に、図２を用いて、情報埋込み処理１０５における輝度の変更方法を説明する。ここでは、一つの画素の輝度の値は０〜２５５までであるとする。図２は、画素の輝度値を数直線で表したものである。本実施例では、この数直線上の白い円すなわち値が１６の倍数である点は埋込み情報０に対応し、黒い点すなわち値が（１６の倍数＋８）の点は埋込み情報１に対応するものとする。
【００１８】
情報埋込み処理１０５は、画像データ１０２の画素の輝度を、最近傍の白または黒の円に変更することにより情報を挿入する。すなわち、その画素に埋め込みたい情報が０の場合には白円に変更し、１の場合には黒円に変更する。例えば、画素の輝度が図中の△すなわち３０で、埋め込みたい情報が０の場合には、その画素の輝度を３２に変更し、埋め込みたい情報が１の場合には、その輝度を２４に変更する。
【００１９】
次に、変更可能範囲データ１０４の利用について説明する。上記の基本動作では、画素の輝度の変更が大きすぎて画像が視覚的に変化する場合がある。これを防止するために、画素の値の変更を変更可能範囲データ１０４の範囲内で行う。例えば、画素の輝度が△すなわち３０で、その画素の輝度の変更可能範囲が２６〜３３であるとする。この場合、埋め込みたい情報が０の場合には、上記の基本動作通りに、その画素の輝度を３２に変更する。しかし、埋め込みたい情報が１の場合には、変更先の輝度２４が変更可能範囲に含まれていないので、２４に最も近い値２６に変更する。
【００２０】
最後に、透かし挿入画像データ１０６からの情報の抽出について説明する。最初に、値を参照すべき画素を選択する。この画素の選択においては、情報埋込み処理１０５における画素選択と同じ規則を用いる。従って、輝度を変更した画素が選択される。
【００２１】
次に、選択した各画素について、その輝度を取り出し、その値が、１６の倍数か（１６の倍数＋８）のいずれに近いかで、埋め込まれた情報が０か１かを判定する。
【００２２】
上述のように、情報埋込み処理１０５では、変更可能範囲データ１０４の中で輝度を変更するので、輝度を１６の倍数または（１６の倍数＋８）に正確に変更できない場合がある。そのため、情報の抽出において、一定の確率で誤りが生じる。この問題は、同じ情報を複数の画素に重複して埋め込み、抽出において多数決を行うことで解決できる。
【００２３】
以上のように、本実施例によれば、画像に情報を埋込み、埋め込んだ情報を抽出することができる。この情報埋込みにおいては、画像の視覚的劣化のないことが保証された範囲すなわち変更可能範囲内でのみ、画像の値を変更することができる。また、上記変更可能範囲を画素毎に算出するので、画素毎に可能な限り大きな値変更を行うことで、画像処理への耐性を強化することができる。
【００２４】
この実施例によれば、輝度値の変更により静止画に情報を埋め込むシステムにおいて、画素毎に視覚的劣化のない輝度値変更範囲を求め、その範囲内で輝度値を変更することができる。その結果、一律に輝度を大きく変更する場合のように、画像の視覚的劣化を生じることがなく、一方、一律に輝度を小さく変更する場合のように、挿入情報が除去されやすいこともなく、画質劣化の防止と埋込み情報の耐性の両立が可能となる。
【００２５】
次に、図３から図５を用いて、本発明の第２の実施例を説明する。
【００２６】
本発明は、画像の値を変更して情報を挿入する場合の、値の変更量を最適化するものである。画像の種類、変更する画像値の種類、挿入する情報の種類、画像における挿入情報の表現方法には依存せず、任意の画像、画像値、情報種類、表現方法と組み合わせることができる。ここでは、一例として、以下の場合を考える。
【００２７】
（１）画像の種類
ここでは、動画データを考える。この動画データは、１秒間３０枚の静止画から成る。個々の静止画は、７２０×４８０画素である。本実施例では、動画データから一つずつ静止画を取り出し、これに、情報を挿入する。情報挿入処理は、静止画毎に完結する。
（２）変更する画像の値
静止画の画素毎の輝度値を変更する。
（３）挿入する情報
６ビットの情報、すなわち０〜６３までの６４種類の数字である。
（４）静止画における情報の表現
（ａ）ブロックの選択
静止画を８×８画素のブロック単位に分割する。コンテンツでよく用いられる７２０×４８０画素の静止画の場合、９０×６０（＝５４００）ブロックに分割する。６４種類（６ビット）の挿入情報おのおのについて、上記５４００個のブロックのうちどのブロック（少なくともひとつ）の値を変更するかという対応関係（これは予め決めておき、たとえばテーブルに保存されている）に基づいて、ブロックを選択する。選択したブロック内の画素の輝度を変更する。
【００２８】
（ｂ）ブロック内の輝度の変更
上記選択したブロック内の６４個の画素の輝度の和が、最も近い整数Ａのｎ倍数になるように各画素の輝度を変更する。Ａはこの実施例の利用者が指定する値であるが、ここでは、５１２を用いる。
なお、情報の抽出時には、情報の挿入された動画から１枚ずつ静止画を取り出し、個々の静止画から情報を抽出する。
上述の方法で、情報を埋め込んだ後で、圧縮等の画像処理を行うと、輝度が変化し、抽出時に、正数Ａのｎ倍数ちょうどにならないことがある。そこで、静止画からの情報抽出では、５４００個の各ブロックについて、輝度がＡのｎ倍数またはその近傍になっているかを判定する。
なお、近傍の定義としては、（Ａ×ｎ−Ａ／４）以上かつ、（Ａ×ｎ＋Ａ／４）以下とする。この定義は一例であって、他の定義も可能である。
もし、情報が埋め込まれた画像に対して、圧縮等の画像処理を行わず、輝度変化が生じない場合は、近傍を定義しなくてもよい。
Ａのｎ倍数またはその近傍の場合には、そのブロックの輝度が変更されていると判断する。５４００個のブロックのうちどのブロックの輝度が変更されているかという情報と、前述の対応関係とを用いて、挿入した６４種類の情報の一つを特定する。
【００２９】
上記の抽出において、輝度を変更していないのに、ブロックの輝度の和が偶然Ａのｎ倍数になっている場合は誤検出の原因となる。これを防止するためには、輝度変更ブロックを複数とし、多数決論理をもちいて、そのうち、ブロック輝度の和がＡのｎ倍数または近傍となっているブロックが所定の値（たとえば半数）以上の場合に、透かしが埋め込まれていると判定する。
以上の情報表現、挿入、抽出の方法については、特願平０９−２３８０３０号の方法を用いる。以下では、上記の情報表現、挿入、抽出の方法を前提として、輝度変更量の最適化方法を述べる。
図１１は、この実施例のハードウエア構成図である。入出力装置１１０１は、計算機のＩ／Ｏ装置等により実現される。動画および埋め込みたい情報を外部に入力し、演算装置１１０２を介して記憶装置１１０３に格納する。また、情報を埋め込んだ動画を演算装置１１０２から受け取って、これを外部に出力する。演算装置１１０２は計算機のＣＰＵで実現され、記憶装置１１０３に格納された動画および挿入したい情報を読みだし、動画に情報を挿入して、結果の動画を入出力装置１１０１に出力する。このとき、先に説明したフィルターを用いて、画像の視覚的劣化がないように情報を埋め込む。記憶装置１１０３は、半導体、ハードディスクや光ディスクなどで実現され、動画及び挿入したい情報を記憶する。
【００３０】
図３は、第２の実施例の機能構成図である。
ブロック３０１〜３０６は演算装置１１０２が行う処理であり、計算機のＣＰＵがプログラムを実行することにより実現される。ブロック３０７〜３１３はデータであり、計算機のメモリすなわち記憶装置１１０３に記憶される。
このプログラムは、記憶媒体に記録された状態で配付することや、ネットワーク経由でサーバから配付することが可能である。また、このプログラムは、パーソナルコンピュータのオペレーティングシステムの元で動作するように構成することが可能なものである。
【００３１】
入出力３０１は、動画データ３０７を入力し、メモリに格納する。この動画データは、複数の連続した静止画の列である。各静止画は７２０×４８０画素である。
また、入出力３０１は、画像に挿入したい情報３１０を入力し、メモリに格納する。挿入したい情報は６ビット情報である。すなわち、挿入したい情報は、２の６乗＝６４種類である。
さらに、入出力３０１は、入出力装置１１０１から、画像に情報を挿入するときの基準となる値（上述の整数Ａ）３１２を入力し、メモリに格納する。この整数Ａの値を、ここでは、５１２とする。この正数Ａのｎ倍数を、以下、吸着値と呼ぶ。
一方、入出力３０１は、透かし情報の挿入された動画３１３をメモリから読み出して、入出力装置１１０１から外部に出力する。
【００３２】
制御３０２は、動画３０７中の各静止画毎に、フィルター３０３、差分算出３０４、挿入個所決定３０５、挿入３０６を起動して、挿入情報３１０を埋め込む。
フィルター３０３は、先に説明した実施例における医用フィルターである。動画３０７中の静止画を一枚づつ読み出し、これに前述のフィルター処理を適用し、その結果のフィルター画像３０８をメモリに格納する。
差分算出３０４は、動画３０７中の１枚の静止画とそれから求めたフィルター画像３０８との輝度の差分を、画素毎に求め、結果を変更可能範囲３０９としてメモリに格納する。変更可能範囲３０９は、動画３０７中の１枚の静止画の各画素について、輝度をどれだけ変更してよいかの範囲を表す。
挿入個所決定３０５は、７２０×４８０画素の静止画を、８×８画素のブロックに分割する。その結果、９０×６０＝５４００個のブロックを得る。上述の方法で、挿入情報３１０に対応して値を変更するブロックを選択し、挿入ブロック３１１とする。
挿入３０６は、挿入ブロック３１１の各ブロックについて、輝度の和を吸着値３１２（正数Ａのｎ倍数）になるように変更する。その結果、情報を挿入した静止画１枚を求め、これを透かし入り動画３１３に追加する。
【００３３】
図４は挿入３０６の動作のフローチャートである。最初にステップ４０１で対象となる８×８画素ブロック３１１の輝度の和を算出する。次に、ステップ４０２においてステップ４０１で算出した輝度の和の最近傍にある５１２のｎ倍数を吸着値とする。
ステップ４０３以降は実際の挿入処理である。まずステップ４０３で変更可能範囲３０９内で対象ブロック内の各画素の輝度を変更し、輝度の和も同時に変更する。ステップ４０４は変更後の輝度の和が吸着値に一致するか判定し、一致するなら挿入の動作を終了し、一致しないならブロックの輝度値を変更前に戻した後（すなわちそのブロックには透かしを挿入しない。）挿入の動作を終了する。
【００３４】
図５は挿入処理の詳細のフローチャートである。但しここでは，簡単のために変更前の輝度値の和が吸着値より小さい場合を考える。また、各ブロック内の画素は１から６４までの画素番号で表わされているとする。
まずステップ５０１で画素番号Ｉを１に設定する。ステップ５０２は画素番号Ｉ＝６４の判定処理であり。これについては後述する。ステップ５０３は画素Ｉの変更可能範囲３０９をＲ（Ｉ）としたときＲ（Ｉ）が正であるか判定する。すなわち画素Ｉの輝度値に加算できるか判定する。加算できなければステップ５０７でＩをインクリメントしてステップ５０２の判定処理に移り、加算できればステップ５０４以降に進む。
【００３５】
ステップ５０４では画素Ｉの輝度値を１だけ加算し、ステップ５０５で画素Ｉが属する対象ブロックの輝度値の和を１だけ加算する。ステップ５０６では画素Ｉの加算によって変更可能範囲Ｒ（Ｉ）の値を１減らす。
ステップ４０４は前述した判定処理で、輝度値の和が吸着値と等しければ対象ブロックに透かし挿入として処理を終了し、等しくなければ画素番号Ｉの値をインクリメントしてステップ５０２に進む。
ステップ５０２は画素番号Ｉ＝６４の判定処理であり、Ｉ＝６４と判定されるのは以下の２通りの場合がある。
（１）対象ブロック内の６４個の画素のうち，変更可能である画素について１回加算処理をおこなったが、いくつかの画素でまだ輝度値変更可能である場合。
この場合は、ステップ５０８においていくつかの画素でＲ（Ｉ）が０でないのでステップ５０１に進み再び輝度値の加算処理を行う。
（２）対象ブロック内の６４個の画素のうち、変更可能である画素について複数加算処理をおこなった。その結果、輝度値の和が吸着値に届く前に全ての画素で輝度値変更可能でなくなった。
この場合は、ステップ５０８において全ての画素でＲ（Ｉ）  ＝  ０なので、ステップ４０５へ進み各画素の輝度値を変更前に戻し、透かし挿入をおこなわず処理を終了する。
この実施例によれば、輝度の変更により動画に情報を埋め込むシステムにおいて、上記実施例と同様の理由により、画質劣化の防止と埋込み情報の耐性の両立が可能となる。
【００３６】
次に、図６と図７を用いて、本発明の第３の実施例を説明する。
本実施例は、透かしの挿入時により詳細なパラメータを用いる方法である。画像の種類や挿入情報の種類などについては，すでに説明した第２の実施例と同様の表現方法を用いる。
図６は、第３の実施例の機能構成図である。以下では、図３の機能構成図と異なる、情報挿入時のパラメータであるデータ６０１〜６０３と、挿入処理６０４について説明する。
上限値６０１は、変更可能範囲３０９の上限を決定するパラメータであり、挿入３０６において、上限値以上の輝度値の変更を許さないようにする。この上限値６０１は、たとえば、フィルタ３０３が出力した変更可能範囲３０９とのＡｎｄ条件で用いるもので、変更可能範囲の上限を、他の条件で指定したい場合に用いる。
オフセット値６０２は、輝度値の変更可能な上限値を設定するもので、フィルタ３０３が出力した変更可能範囲３０９を越えて変更したい場合の上限値を表わす。
挿入可否判定基準６０３は、上記以外の挿入時に用いる判定基準を表わす。例えばブロックの輝度の分散値をみることで、そのブロックの平坦さの度合を判定することができ、挿入３０６において画像的に平坦すぎる箇所には透かしを挿入しないといった処理が可能になる。
【００３７】
図７は本実施例での挿入６０４の動作のフローチャートである．ステップ７０１〜７０４以外の処理は図４の処理と同様なので説明を省く。
ステップ７０１では、挿入可否判定基準として当該ブロックの輝度の分散が基準値以上か判定し、基準値以下であれば処理を終了する。基準値以上であればステップ４０１と４０２を経てステップ７０２へ進む。
ステップ７０２では、対象ブロック内の画素の輝度値をフィルターの許容する範囲内で変更する。但し、上限値６０１以上の変更を許さないようにする。ステップ４０４で輝度和が吸着値に到達しない場合、ステップ７０３でオフセット値６０２の範囲内で再度画素の輝度を変更し、ステップ７０４へ進む。
ステップ７０４では、変更された輝度値の和が吸着値または吸着値の近傍（吸着値±６４）に到達しているか判定し、到達していれば透かし挿入を完了して処理を終了する。到達していなければステップ４０５へ進み、透かし挿入を行わず（画素の輝度値を変更前に戻して）処理を終了する。
図６、図７に示した方法によれば、上記実施例における画質劣化のない輝度変更方法をさらに精密化できるので、画質劣化の防止効果が大きくなる。
【００３８】
さて、動画などでは、吸着値（５１２のｎ倍数）との差にかかわらず選択したブロックの輝度和を吸着値に一致させると、動画をリアルタイムで再生する場合などで、輝度値の急激な変化などにより画面にちらつきが生じたり、透かし位置が視覚的に目立ってしまう場合がある。
そこで、次に、図８を用いて、挿入情報をさらに目立ちにくくする方法を説明する。
【００３９】
図８は図４、図７のフローチャートにおいて、ステップ４０１と４０２の間に行われるステップ８０１を示すものである。ステップ８０１以外の処理は図４と図７の処理と同様なので説明を省く。
ステップ８０１は、予め設けた、ブロックの変更前の輝度和と吸着値との差の第２の上限値（図示せず）にしたがって、ブロックを判定し、透かしを挿入するかどうかを判定する。ここでは、第２の上限値を３２としたとき、輝度和が以下の範囲にないブロックを実際に透かし挿入の対象とする。つまり、輝度和が以下の範囲にあるときは、透かしを挿入すると元の輝度和との差が大きくなり、透かし挿入が目立つので、透かし挿入を行わない、という考え方である。
５１２のｎ倍数＋２５６−３２＜  輝度和  ＜５１２のｎ倍数＋２５６＋３２
この式において、５１２は上述の正数Ａであり、２５６はＡ／２を表わす。また、第２の上限値は、入出力装置１１０１から設定して、記憶装置１１０３へ保存しておく。
上記範囲にあるブロックは、透かし挿入を行わず処理を終了する。
この方法によれば、輝度和と吸着値との差が大きいブロックについては、透かし挿入を行わないので、動画をリアルタイム再生する場合に、さらに挿入情報を目立ちにくくすることができる。したがって、画質劣化の防止効果がさらに大きくなる。
【００４０】
以下では、図９と図１０を用いて、本発明の第５の実施例を説明する。
図９は、本実施例の方式を用いた透かし挿入ブロックの模式図である。透かし挿入ブロック９１は、透かし挿入により輝度値が変化しているので、画像の平坦な箇所などではブロックが目立ってしまう場合がある。図９が示すように透かし挿入ブロックの周囲に、４つの領域９２〜９５を作成し、ブロック９１の輝度変化に合わせて４つの領域の輝度値を段階的に変化させれば、透かしブロックを目立たなくさせることが可能になる。
【００４１】
図１０は、領域９２〜９５の輝度値の変更処理のフローチャートである。簡単のために、図９に示した４つの８×２部分領域（Ａ１，Ａ２，Ａ３，Ａ４）９２〜９５の輝度値変更を考える。
ステップ１００１では、透かし挿入ブロック９１の右隣のブロックに着目し、その部分の輝度値の変更量を求める。ステップ１００２では、ステップ１００１で算出された輝度値変更量を０．８倍してＡ１領域９２の輝度値に加算する。ステップ１００３では、同様に輝度値変更量を０．６倍してＡ２領域９３の輝度値に加算する。ステップ１００４では、同様に輝度値変更量を０．４倍してＡ３領域９４の輝度値に加算する。ステップ１００５では、輝度値変更量を０．２倍してＡ４領域９５の輝度値に加算し、輝度値の変更処理を終了する。
この例では、透かし挿入ブロック９１の周囲に設ける領域を、ひとつのブロックを４つに分割することによって生成しているが、これに限定されず、より多くのブロックをより多く分割してより滑らかに輝度値を変更するなど、さまざまな変形が可能である。
【００４２】
また、上述の各実施例では、情報の埋め込み方法として画素の輝度を変更したが、これに限定されない。各画素を構成する、３原色のいずれかあるいは任意の組み合わせ、または輝度と色差のいずれかあるいは任意の組み合わせの持つ値を変更することで実現できるものである。
また、本発明は画像以外、たとえば、音楽にも適用は可能である。たとえば、音の大きさ、音色などの変更可能範囲を求め、その範囲内で変更する。また、小節単位で音の大きさ、音色などを変化させて情報を埋め込み、当該小節前後も値を少しずつ変化させて、目立たせないようにすることが可能である。
なお、上述の方法によって埋め込まれた情報は、その埋め込み方法（位置、パターン）、あるいは検出、除去のための情報を知るもの以外には除去できない。逆に埋め込み方法、検出除去のための情報を知るものは、本発明に従って埋め込まれた情報を取り出すことができるので、本発明はコンテンツの著作権情報などを管理するのに適している。
【００４３】
【発明の効果】
本発明によれば、コンテンツへの情報埋込みにおいて、コンテンツが劣化しない範囲内でコンテンツを可能な限り大きく変更することができるので、劣化の防止と埋込み情報の耐性の両立が可能となる。
【図面の簡単な説明】
【図１】本発明の第１の実施例の機能構成図。
【図２】本発明の第１の実施例における画素の輝度値の変更方法を示す図。
【図３】本発明の第２の実施例の機能構成図。
【図４】本発明の第２の実施例における透かし挿入処理のフローチャート。
【図５】本発明の第２の実施例における透かし挿入処理の詳細のフローチャート。
【図６】本発明の第３の実施例の機能構成図。
【図７】本発明の第３の実施例における透かし挿入処理のフローチャート。
【図８】本発明の第４の実施例における透かし挿入処理のフローチャート。
【図９】本発明の第５の実施例における透かし挿入ブロックの模式図。
【図１０】本発明の第５の実施例における輝度値の変更のフローチャート。
【図１１】本発明の第２の実施例におけるハードウェア構成図。
【符号の説明】
１０１…入出力処理、１０２…画像データ、１０３…変更可能範囲算出処理、１０４…変更可能範囲データ、１０５…情報埋め込み処理、１０６…情報挿入画像データ。
【図１】
0003570236.tif 000002
【図２】
0003570236.tif 000003
【図３】
0003570236.tif 000004
【図４】
0003570236.tif 000005
【図５】
0003570236.tif 000006
【図６】
0003570236.tif 000007
【図７】
0003570236.tif 000008
【図８】
0003570236.tif 000009
【図９】
0003570236.tif 000010
【図１０】
0003570236.tif 000011
【図１１】
0003570236.tif 000012