(57)【特許請求の範囲】
【請求項１】
デジタル画像データを所定の大きさの矩形に分割し、分割された各矩形のデジタル画像データに対し、所定の情報を電子透かしとして埋め込むエンコード手段と、デジタル画像データに埋め込まれている電子透かし情報をデコードするデコード手段とを有しており、前記エンコード手段は、前記所定の情報として、埋め込まれるべき本来の情報とともに、デコード手段による電子透かし情報のデコードの際に矩形の位置を識別させるための矩形位置判定用情報を、電子透かしとして埋め込むようになっており、前記所定の情報の埋め込みは、分割された矩形内のデジタル画像データに対して、矩形内を所定の大きさのウインドウで走査し、ウインドウ内のパターンが所定のパターンとなるときに、ビット１またはビット０の情報を埋め込むことによってなされることを特徴とする画像処理装置。
【請求項２】
請求項１記載の画像処理装置において、デジタル画像データに対する矩形の分割は、原画像の内容に依存せずに、原画像全体にわたってなされることを特徴とする画像処理装置。
【請求項３】
請求項１記載の画像処理装置において、デジタル画像データに対する矩形の分割は、原画像全体のうち有効な画像データを有する画素を全く含まないか非常に少数しか含まない部分を除外してなされることを特徴とする画像処理装置。
【請求項４】
請求項１記載の画像処理装置において、前記ウインドウは、３×３画素の大きさであり、分割された矩形内のデジタル画像データに対して、該ウインドウを３画素ずつずらして走査するようになっていることを特徴とする画像処理装置。
【請求項５】
請求項１記載の画像処理装置において、前記エンコード手段は、デコードの際の成功率を高めるために、電子透かしとして埋め込まれるべき情報に誤り訂正符号を付加することを特徴とする画像処理装置。
【請求項６】
請求項１記載の画像処理装置において、前記エンコード手段は、デコードの際の成功率を高めるために、分割された全ての矩形に、同じ電子透かし情報を埋め込んでおき、前記デコード手段は、デコードの過程において、各々の矩形からそれぞれデコードされた情報が抽出された場合に、それらを統合することを特徴とする画像処理装置。
【請求項７】
デジタル画像データを矩形に分割し、分割された各矩形内のデジタル画像データに対して、所定の大きさのウインドウで走査し、ウインドウ内のパターンが所定のパターンとなるときに、所定の情報として、埋め込まれるべき本来の情報とともに、デコード手段による電子透かし情報のデコードの際に矩形の位置を識別させるための矩形位置判定用情報を、電子透かしとして埋め込むエンコード工程と、各矩形内に埋め込まれた電子透かし情報をデコードするデコード工程とを有しており、前記エンコード工程において、前記所定の情報の埋め込みは、分割された矩形内のデジタル画像データに対して、矩形内を所定の大きさのウインドウで走査し、ウインドウ内のパターンが所定のパターンとなるときに、ビット１またはビット０の情報を埋め込むことによってなされることを特徴とする画像処理方法。
【請求項８】
デジタル画像データを矩形に分割し、分割された各矩形内のデジタル画像データに対して、所定の大きさのウインドウで走査し、ウインドウ内のパターンが所定のパターンとなるときに、所定の情報として、埋め込まれるべき本来の情報とともに、デコード手段による電子透かし情報のデコードの際に矩形の位置を識別させるための矩形位置判定用情報を、電子透かしとして埋め込むエンコード工程と、各矩形内に埋め込まれた電子透かし情報をデコードするデコード工程とのうち少なくとも１つの工程を有しており、前記エンコード工程において、前記所定の情報の埋め込みは、分割された矩形内のデジタル画像データに対して、矩形内を所定の大きさのウインドウで走査し、ウインドウ内のパターンが所定のパターンとなるときに、ビット１またはビット０の情報を埋め込むことによってなされることを特徴とするプログラムを記録した情報記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置および画像処理方法および情報記録媒体に関する。
【０００２】
【従来の技術】
デジタル画像データは各種の媒体間でデジタルコピーすることが容易であり、特に近年、インターネットを始めとするネットワークインフラの整備や、電子図書館に代表される画像データベースの普及に伴なって、デジタル画像データがデジタルコピー等によって一旦第三者に渡ってしまうと、その後の広まる範囲は非常に大きく、著作権者がデジタル画像の著作権を主張することは非常に困難である。
【０００３】
また、有価証券等をデジタルコピー機やスキャナで取り込むことは法律で禁止されているが、現状では予め登録可能な紙幣等しか複写を防止する手立てはない。
【０００４】
上記のような問題を解決するため、デジタル画像データへの電子透かし技術が着目されている。例えば特開平９−１９１３９４号には、周波数変換（具体的にはフーリエ変換）によって原画像に情報を混入する電子透かし挿入方法が示されている。
【０００５】
【発明が解決しようとする課題】
しかしながら、上述した周波数変換処理は一般的に処理時間が大きく実用には困難である。また一部分を切り取った場合に、画像全体の周波数特性（主に低周波）が均一であると仮定すればデコードが可能であるが、実画像では、周波数特性（主に低周波）は部分毎に異なっており、デコードは不可能であるという問題があった。
【０００６】
本発明は、原画像に所定の情報を複雑な処理を必要とせずに埋め込むことができ、また、画像データに対して、その一部分が切り取られた場合でも、画像データに埋め込まれた情報を安定的に確実に抽出（デコード）できる画像処理装置および画像処理方法および情報記録媒体を提供することを目的としている。
【０００７】
【課題を解決するための手段】
上記目的を達成するために、請求項１記載の発明は、デジタル画像データを所定の大きさの矩形に分割し、分割された各矩形のデジタル画像データに対し、所定の情報を電子透かしとして埋め込むエンコード手段と、デジタル画像データに埋め込まれている電子透かし情報をデコードするデコード手段とを有しており、前記エンコード手段は、前記所定の情報として、埋め込まれるべき本来の情報とともに、デコード手段による電子透かし情報のデコードの際に矩形の位置を識別させるための矩形位置判定用情報を、電子透かしとして埋め込むようになっており、前記所定の情報の埋め込みは、分割された矩形内のデジタル画像データに対して、矩形内を所定の大きさのウインドウで走査し、ウインドウ内のパターンが所定のパターンとなるときに、ビット１またはビット０の情報を埋め込むことによってなされることを特徴としている。
【０００８】
また、請求項２記載の発明は、請求項１記載の画像処理装置において、デジタル画像データに対する矩形の分割は、原画像の内容に依存せずに、原画像全体にわたってなされることを特徴としている。
【０００９】
また、請求項３記載の発明は、請求項１記載の画像処理装置において、デジタル画像データに対する矩形の分割は、原画像全体のうち有効な画像データを有する画素を全く含まないか非常に少数しか含まない部分を除外してなされることを特徴としている。
【００１１】
また、請求項４記載の発明は、請求項１記載の画像処理装置において、前記ウインドウは、３×３画素の大きさであり、分割された矩形内のデジタル画像データに対して、該ウインドウを３画素ずつずらして走査するようになっていることを特徴としている。
【００１３】
また、請求項５記載の発明は、請求項１記載の画像処理装置において、前記エンコード手段は、デコードの際の成功率を高めるために、電子透かしとして埋め込まれるべき情報に誤り訂正符号を付加することを特徴としている。
【００１４】
また、請求項６記載の発明は、請求項１記載の画像処理装置において、前記エンコード手段は、デコードの際の成功率を高めるために、分割された全ての矩形に、同じ電子透かし情報を埋め込んでおき、前記デコード手段は、デコードの過程において、各々の矩形からそれぞれデコードされた情報が抽出された場合に、それらを統合することを特徴としている。
【００１５】
また、請求項７記載の発明は、デジタル画像データを矩形に分割し、分割された各矩形内のデジタル画像データに対して、所定の大きさのウインドウで走査し、ウインドウ内のパターンが所定のパターンとなるときに、所定の情報として、埋め込まれるべき本来の情報とともに、デコード手段による電子透かし情報のデコードの際に矩形の位置を識別させるための矩形位置判定用情報を、電子透かしとして埋め込むエンコード工程と、各矩形内に埋め込まれた電子透かし情報をデコードするデコード工程とを有しており、前記エンコード工程において、前記所定の情報の埋め込みは、分割された矩形内のデジタル画像データに対して、矩形内を所定の大きさのウインドウで走査し、ウインドウ内のパターンが所定のパターンとなるときに、ビット１またはビット０の情報を埋め込むことによってなされることを特徴としている。
【００１６】
また、請求項８記載の発明は、デジタル画像データを矩形に分割し、分割された各矩形内のデジタル画像データに対して、所定の大きさのウインドウで走査し、ウインドウ内のパターンが所定のパターンとなるときに、所定の情報として、埋め込まれるべき本来の情報とともに、デコード手段による電子透かし情報のデコードの際に矩形の位置を識別させるための矩形位置判定用情報を、電子透かしとして埋め込むエンコード工程と、各矩形内に埋め込まれた電子透かし情報をデコードするデコード工程とのうち少なくとも１つの工程を有しており、前記エンコード工程において、前記所定の情報の埋め込みは、分割された矩形内のデジタル画像データに対して、矩形内を所定の大きさのウインドウで走査し、ウインドウ内のパターンが所定のパターンとなるときに、ビット１またはビット０の情報を埋め込むことによってなされることを特徴としている。
【００１７】
【発明の実施の形態】
以下、本発明の実施形態を図面に基づいて説明する。図１は本発明に係る画像処理装置の構成例を示す図である。図１を参照すると、この画像処理装置は、電子的なデジタル画像データを原画像として取り込む画像入力部１と、埋め込まれるべき所定の情報を入力する情報入力部２と、原画像を矩形に分割する矩形分割部３と、原画像（デジタル画像データ）や埋め込まれるべき所定の情報などが記憶されるメモリ４と、原画像に所定の情報を電子透かしとして埋め込むエンコード処理を行なうエンコード部５と、デジタル画像データに埋め込まれている所定の情報を抽出するデコード処理を行なうデコード部６と、各種制御を行なう制御部７と、画像データなどを保存するデータ保存部８と、デコード結果などを出力する結果出力部９とを有している。
【００１８】
ここで、情報入力部２は、原画像に対して電子透かしとして埋め込まれるべき所定の情報（文字列，画像など）を入力させるようになっている。
【００１９】
また、矩形分割部３は、原画像を予め決められた大きさ（例えば、２５５画素×２５５画素の大きさ）の矩形（ブロック）に分割するようになっている。この際、矩形分割部３は、図２に示すように、縦，横ともそれぞれ予め決定した大きさの矩形で、原画像の内容に依存せず全体を分割することもできるし、あるいは、図３に示すように、縦，横ともそれぞれ予め決定した大きさの矩形で、原画像全体のうち有効な画像データを有する画素を全く含まないか非常に少数しか含まない部分を除外して、分割することもできる。本発明では、後述のように、原画像中の文字画像などの部分を利用して情報を埋め込むようにしており、文字画像などが存在しない矩形（ブロック）では情報の埋め込みはなされない。従って、情報などを効率良く埋め込むためには、図３のように、縦，横ともそれぞれ予め決定した大きさの矩形で、原画像全体のうち有効な画像データを有する画素を全く含まないか非常に少数しか含まない部分を除外して、分割する方が良い。なお、以下では、説明の便宜上、画像入力部１から取り込まれた原画像は、２値画像であるとする。
【００２０】
また、エンコード部５は、情報入力部２から入力された埋め込まれるべき所定の情報をビット列に変換して、分割された各矩形（各ブロック）のそれぞれについて、変換したビット列（埋め込み情報）の埋め込み処理を行なうようになっている。この埋め込み処理は、具体的には、次のようにして行なうようになっている。すなわち、埋め込み処理は、基本的には、埋め込みたい情報（ビット列とする）を３×３の大きさのウインドウの２次元パターンに対応させることによってなされる。
【００２１】
図４（ａ）には、ビット１を表わすパターン（４種類）が示され、また、図４（ｂ）には、ビット０を表わすパターン（４種類）が示されている。
【００２２】
ここで、エンコード処理は、分割された各矩形が、例えば、２５５×２５５画素の大きさをもつとき、２５５×２５５画素の大きさの各矩形（各ブロック）のそれぞれに対して同じ情報（ビット列）の埋め込みを行なうようになっている。そして、各矩形（各ブロック）のそれぞれについて、例えば、図５に示すように、３×３の大きさのウインドウを矩形の左上から右下に向けてラスタスキャン方向に３画素ずつずらしながら走査して埋め込み処理（エンコード処理）を行なうようになっている。すなわち、この例では、埋め込み周期は３画素であり、矩形（ブロック）の大きさは２５５×２５５画素であって、埋め込み周期（３画素）の整数倍となっている。これにより、矩形（ブロック）の大きさは、埋め込んだ位置の周期が矩形（ブロック）の境界のところで不連続になるのを防止できる。
【００２３】
図６（ａ）乃至（ｄ），図７（ａ）乃至（ｄ），図８（ａ）乃至（ｄ）は、埋め込み処理のルール（規則）を示す図である。埋め込み処理のルール（規則）は、次のようになっている。すなわち、原画像（２値画像）を３×３のウインドウで走査するときに、例えば、図６（ａ）乃至（ｄ）のパターンＰ０のいずれかが出現するとき、埋め込むべき情報がビット１のときには、パターンＰ０をパターンＰ１のように変換し、また、埋め込むべき情報がビット０のときには、パターンＰ０をパターンＰ２のように変更する。
【００２４】
また、原画像（２値画像）を３×３のウインドウで走査するときに、例えば、図７（ａ）乃至（ｄ）のパターンＰ０のいずれかが出現するとき、埋め込むべき情報がビット１のときには、パターンＰ０はパターンＰ１となっているので、パターンＰ０を変更せず、そのままにし、また、埋め込むべき情報がビット０のときには、パターンＰ０をパターンＰ２のように変更する。
【００２５】
また、原画像（２値画像）を３×３のウインドウで走査するときに、例えば、図８（ａ）乃至（ｄ）のパターンＰ０のいずれかが出現するとき、埋め込むべき情報がビット１のときには、パターンＰ０をパターンＰ１のように変更し、また、埋め込むべき情報がビット０のときには、パターンＰ０はパターンＰ２となっているので、パターンＰ０を変更せず、そのままにする。
【００２６】
このように、３×３のウインドウを図５に示したような仕方で走査していき、埋め込む対象となる特定のパターンＰ０が出現したときには、埋め込むべきビット値（ビット１またはビット０）に応じてこのパターンＰ０を変更することで、ビット１，ビット０の埋め込みを行なうことができる。この際、上記のルール（規則）では、原画像（２値画像）の主にエッジ部分に埋め込むことができ、２次元的なトポロジーが変換せず、見た目に気付かれにくくなっている。
【００２７】
図９には、埋め込み情報（電子透かし）としてのビット列，例えば”００１０１１１…”を各矩形（各ブロック）のそれぞれについて埋め込んだ状態の一例が示されている。ここで、各矩形（各ブロック）には、同じビット列”００１０１１１…”が埋め込まれるが、その埋め込まれ方は、各矩形（各ブロック）内の２値画像データの状態によって変わる。例えば、１つの矩形（ブロック）内に文字画像などが少ない場合には、ビット列”００１０１１１…”は、この矩形（ブロック）内でまばらに埋め込まれる。これに対し、１つの矩形（ブロック）内に文字画像などが多く存在する場合には、ビット列”００１０１１１…”は、この矩形（ブロック）内で密に埋め込まれる。なお、図９において、“１”，“０”が記されている箇所は、図６，図７，図８のパターンＰ０が存在したところを意味し、“１”，“０”が記されていない箇所は、パターンＰ０以外のパターンとなっているところ（“１”，“０”が埋め込まれない箇所）を意味している。
【００２８】
ところで、後述のデコード処理時に、各矩形ごとに埋め込まれた情報（ビット列）をデジタル画像データから取り出すためには、上述のように分割された各矩形（各ブロック）の先頭位置が正しく割り出される必要がある（デコードの際にオリジナルの矩形の位置が不明になるのを防ぐ必要がある）。すなわち、分割された少なくとも１つの矩形を包括するように画像の一部分が切り取られればデコードが可能となるが、一部分を切り取った際に、特に問題となるのは、画像をどの部分で矩形に分割したかが不明になることである。なお、画像データの場合、全体の中から欲しい一部分のみを切り取って利用することは日常的に行なわれることであるが、従来の電子透かし方法ではこのような画像処理に対しては無力であった。
【００２９】
この課題を解決するため、エンコード部５は、各矩形（各ブロック）の先頭位置を識別させるための情報（矩形位置判定用情報）、すなわちビット列として例えば”１１１１１１１１”を、埋め込まれるべき本来の情報（例えば”００１０１１１…”）に付加するようになっている（埋め込まれるべき本来の情報（例えば”００１０１１１…”）に先立って埋め込むようになっている）。
【００３０】
図１０には、矩形位置判定用情報として、ビット列”１１１１１１１１”が各矩形（各ブロック）に付加された状態の一例が示されている。なお、この場合も、前述したように、各矩形（各ブロック）には、同じビット列”１１１１１１１１００１０１１１…”が埋め込まれるが、その埋め込まれ方は、各矩形（各ブロック）内の２値画像の状態によって変わる。
【００３１】
さらに、エンコード部５は、デコードの際の成功率を高めるために、埋め込まれるべき所定の情報に誤り訂正符号を付加することができる。
【００３２】
また、デコード部６は、エンコード部５で上記のように原画像に埋め込まれた情報（電子透かし情報）を読み出すようになっている。すなわち、エンコード部５のエンコード処理に合わせて、３×３の大きさのウインドウをラスタスキャン方向に３画素ずつずらしながら走査して、図４（ａ）のいずれかのパターンが出現したとき、ビット１と判断し、図４（ｂ）のいずれかのパターンが出現したときに、ビット０と判断して、埋め込まれたビット列をデコードするようになっている。
【００３３】
この際、第三者が、例えば図１０に示したような画像に対し、図１１に示すように、符号Ｄの部分を切り取って無断で用いたとする。この場合、著作者は、第三者によって用いられている符号Ｄの部分に対してデコード部６でデコード処理して、この画像に所定の情報（電子透かし）が埋め込まれているか否かを調べるが、上記符号Ｄの部分は、一般には、矩形の区切りとは一致しておらず、このままでは、矩形（ブロック）内に埋め込まれたビット列を正しく読み出すことができない。
【００３４】
そこで、符号Ｄの部分に対してデコード処理を行なうとき、デコード部６は、矩形（ブロック）の先頭位置を先ず検出するようになっている。すなわち、エンコード部５では、前述のように、矩形（ブロック）の先頭位置を識別させるために、図１０に示したように、矩形位置判定用情報として、ビット列”１１１１１１１１”を各矩形（各ブロック）に付加しているので、デコード部６は、デコード対象となる画像をラスタスキャン方向に３×３の大きさのウインドウで順次に走査してデコードするとき、ビット列”１１１１１１１１”が得られるか否かを判断し、ある走査位置となったときにビット列”１１１１１１１１”が得られたときには、この位置を矩形（ブロック）の先頭位置として割り出すようになっている。
【００３５】
図１２には、この様子が示されている。すなわち、符号Ｄの部分に対してデコード処理を行なうとき、ウインドウが符号Ｅ１の位置となったときに、この位置Ｅ１を１つの矩形の先端位置として割り出し、さらに、ウインドウが符号Ｅ２の位置となったときに、この位置Ｅ２を次の矩形の先端位置として割り出すようになっている。
【００３６】
ところで、図１１のように符号Ｄの部分を切り取るとき、切り取られた符号Ｄの部分から３×３の大きさのウインドウで３画素ずつずらしたから順次に走査する場合、この３×３の大きさのウインドウが矩形（ブロック）の先頭の３×３の画素のところに合致するとは限らない。図１３には、符号Ｄの部分の切り取られ方の例（９種類の例）が示されている。図１３（ｉ）のように切り取られるときには、切り取られた符号Ｄの部分から３×３の大きさのウインドウで３画素ずつずらしたから順次に走査するとき、この３×３の大きさのウインドウが矩形（ブロック）の先頭の３×３の画素のところに合致し、従って、このときには正しいデコードを行なうことができる。しかしながら、図１３（ａ）乃至（ｈ）のように切り取られるときには、切り取られた符号Ｄの部分から３×３の大きさのウインドウで３画素ずつずらしたから順次に走査するとき、この３×３の大きさのウインドウが矩形（ブロック）の先頭の３×３の画素のところに合致せず、このときには正しいデコードを行なうことができない。
【００３７】
図１３（ａ）乃至（ｉ）のうちのどの仕方で切り取られるかは一般にわからないため、デコード部６は、図１１のように符号Ｄの部分が切り取られるとき、この符号Ｄの部分について３×３の大きさのウインドウの走査開始位置を図１４（ａ）乃至（ｉ）の９通りに設定し、９通りのそれぞれの場合についてデコード処理を試みる。そして、９通りのデコード処理において、切り取られた符号Ｄの部分から３×３の大きさのウインドウで３画素ずつずらしたから順次に走査するとき、この３×３の大きさのウインドウが矩形（ブロック）の先頭の３×３の画素のところに合致するときには、“１１１１１１１１…”が得られる筈であり、このときのデコード処理結果を採用することができる。例えば、図１３（ａ）に示すような切り取られ方がされた場合、図１４（ａ）乃至（ｉ）の９通りについてそれぞれデコード処理が試されるとき、図１４（ｉ）の場合に“１１１１１１１１…”が得られ、これがデコード処理結果として採用される。
【００３８】
また、デコード部６において、矩形（ブロック）の先頭位置を割り出す場合、矩形（ブロック）内に対するビット列”１１１１１１１１”の出現位置は、この矩形（ブロック）内の文字画像などの状態に応じて、一般に、矩形（ブロック）毎に異なったものとなり、従って、ある矩形（ブロック）ではその先頭位置を正しく割り出すことができるが、ある矩形（ブロック）ではその先頭位置を正しく割り出すことができない場合が生じる。そこで、デコード部６は、デコード対象となる画像部分Ｄが複数の矩形（ブロック）を含む大きさのものである場合、デコード処理を１つの矩形（ブロック）だけでなく、デコード対象となる画像部分Ｄに含まれている複数の矩形（ブロック）のそれぞれについて行ない、複数の矩形（ブロック）のそれぞれについてなされたデコード処理結果を統合して、最終的なデコード処理結果とするようになっている。
【００３９】
この統合処理としては、例えば、多数決処理を用いることができる。具体的に、例えば、ビット毎に多数決論理を用い、より信頼性の高い方のビット値を採用するようになっている。
【００４０】
次にこのような構成の画像処理装置の処理動作について説明する。図１５はエンコード部５におけるエンコード処理の概要を示すフローチャートである。図１５を参照すると、まず、ステップＳ１０１では、情報入力部２により、埋め込まれるべき所定の情報（文字列，画像など）をメモリ４に取り込む。次に、ステップＳ１０２では、メモリ４に取り込まれた所定の情報をビット列に変換する。次に、ステップＳ１０３では、ビット列に誤り訂正符号（誤り訂正用のビット）を付加する。次に、ステップＳ１０４では、ビット列にさらに矩形位置判定用のビットを付加する。
【００４１】
次に、ステップＳ１０５では、所定の情報を埋め込む対象の画像（原画像）を画像入力部１によりデジタル画像データとしてメモリ４に取り込む。次に、ステップＳ１０６では、ステップＳ１０５で取り込んだ原画像を矩形に分割する。より具体的には、図２に示すように、原画像全体を画像の内容に依らずに均一に分割するか、あるいは、図３に示すように、原画像全体のうち有効な画像データを有する画素を全く含まない部分，非常に少数しか含まない部分を除外して、分割する。ここで、分割された矩形数をＮｒとする。
【００４２】
次に、ステップＳ１０７では、矩形の数を計数するカウンターｉを０に初期設定する。次に、ステップＳ１０８では、カウンターｉを１だけインクリメントする。次に、ステップＳ１０９では、注目矩形内を３×３画素のウインドウで３画素ずつ走査し、注目矩形内の画像データに所定の情報を埋め込む。次に、ステップＳ１１０では、カウンターｉがＮｒよりも大きくなったかを判定し、カウンターｉがＮｒよりも大きくなければステップＳ１０８に戻り、次の矩形について同様の埋め込み処理を行なう。そして、ステップＳ１１０で、カウンターｉがＮｒとなったとき、エンコード処理を終了する。
【００４３】
また、図１６，図１７はデコード部６におけるデコード処理の概要を示すフローチャートである。図１６，図１７を参照すると、まず、ステップＳ２０１では、画像入力部１により、デコードする対象の画像をデジタル画像データとしてメモリ４に取り込む。次に、ステップＳ２０２では、ステップＳ２０１で取り込んだ画像全体から埋め込まれている所定の情報を抽出し、２次元のビット列を取り出す。
【００４４】
次に、ステップＳ２０３では、ステップＳ２０２で得られた２次元のビット列の始点に、エンコード時に用いたウインドウ（３×３画素の大きさのウインドウ）と同じ大きさのウインドウをセットする。次に、ステップＳ２０４では、エンコードした時と同じ順序でウインドウを走査し、ウインドウ内の２次元ビット列を取り出し、１次元のビット列に変換する。
【００４５】
なお、２次元ビット列を介さずに直接１次元のビット列を取り出すことが可能である。ただし、処理時間を考慮した場合、画像を一旦２次元のビット列に置き換えてから１次元ビット列を取り出したほうが有利になる。つまり、２次元のビット列を介さない場合、毎回画像を走査しながらビット値を取り出すことになる。それに対して、一旦２次元のビット列に置き換えると、そのサイズは画像サイズの１／３×１／３＝１／９になり、高速化が望める。
【００４６】
次に、ステップＳ２０５では、ステップＳ２０４で取り出した１次元のビット列がエンコード時に付加した矩形位置判定用のビットの条件を満たすか否かを判定する。この条件を満たす場合は、ステップＳ２０６へ進み、満たさない場合はステップＳ２０８へ進む。
【００４７】
ステップＳ２０６では、ステップＳ２０５においてステップＳ２０４で取り出した１次元のビット列がエンコード時に付加した矩形位置判定用のビットの条件を満たすと判定されたので、ステップＳ２０４で取り出した１次元のビット列を１つの候補（１つの矩形）として保存する。次に、ステップＳ２０７では、ビット列候補数（矩形数）をインクリメントして、ステップＳ２０８に進む。
【００４８】
ステップＳ２０８では、画像の終点までウインドウで走査したか否かを判定する。終点まで走査していない場合はステップＳ２０９へ進み、ステップＳ２０９では、２次元ビット列上のウインドウをラスター方向に移動してステップＳ２０４に戻り、同様の処理を繰り返し行なう。このようにして、ステップＳ２０８において、終点まで走査した場合はステップＳ２１０へ進む。
【００４９】
ステップＳ２１０では、１次元ビット列候補の数（矩形数）を判定する。この結果、候補数（矩形数）が１の場合はステップＳ２１２へ進み、また、候補数（矩形数）が２以上の場合はステップＳ２１１へ進む。ステップＳ２１１では、複数のビット列候補を１つにまとめる（統合する処理を行なう）。より具体的には、例えば、ビット毎に多数決論理を用い、より信頼性の高い方のビット値を採用する。図１８にはその一例が示されている。
【００５０】
ステップＳ２１２では、ビット列の誤り訂正符号を用いて誤り訂正を行なう。次に、ステップＳ２１３では、デコード結果を出力し、デコード処理を終了する。
【００５１】
このように、本発明によれば、予め画像データに著作権者の署名など任意のデータを元の画像データを損なうことなく埋め込んでおくことができ、コピーされた画像データに対してデコード処理を施すことで埋め込んだ署名などを取り出し、著作権を主張することができる。
【００５２】
より具体的に、本発明によれば、画像データに任意のデータ（例えば複写機の機番や日付など）をユーザに気付かれることなく埋め込んでおくことができるので、デジタルデータである限りは埋め込んだデータをもとに追跡が可能である。さらに画像データに秘密の情報を電子透かしとして埋め込んで通信するといった秘匿通信などの様々な利用法が考えられ、非常に重要かつ応用の広い技術に適用できる。
【００５３】
上述の例では、画像入力部１から入力される原画像は、２値画像であるとしたが、本発明は画像のデータの種類によらず適用が可能である。例えば、原画像が多値，カラーなどである場合にも適用可能である。図１９には、原画像が多値画像である場合の本発明の適用例が示されている。原画像が多値画像である場合、多値画像は、階調の数に応じたビット数分のビットプレーンとして表現される。図１９には、多値画像が２５６階調のものであり（１画素当り８ビットで表現されるものであり）、従って、８枚のビットプレーンＰ１〜Ｐ８によって表現される場合が示されている。この場合、各ビットプレーンＰ１〜Ｐ８は、それぞれ、２値画像であるので、８枚のビットプレーンのうちの１枚のビットプレーン（２値画像），例えばＰ１にエンコード部５により前述したような仕方で所定の情報を埋め込むことができる。そして、この場合には、デコード部６は、８枚のビットプレーンのうちの１枚のビットプレーン（２値画像），例えばＰ１に埋め込まれている所定の情報を、前述のような仕方で読み出すことができる。
【００５４】
また、上述の例では、ウインドウの大きさを３×３画素としたが、ウインドウの大きさは、任意のもの，例えば２×２画素，あるいは４×４画素のものにすることができる。しかしながら、図４，図６，図７，図８で説明したように、ビット“１”，“０”を表現するためのパターンとしては、２×２画素では情報量が少なすぎ、また、４×４画素では情報量が多すぎるので、３×３画素のものが最適なパターンと考えられる。従って、ウインドウの大きさは、３×３画素であるのが最も良い。
【００５５】
図２０は図１の画像処理装置のハードウェア構成例を示す図である。図２０を参照すると、この画像処理装置は、例えばパーソナルコンピュータ等で実現され、全体を制御するＣＰＵ２１と、ＣＰＵ２１の制御プログラム等が記憶されているＲＯＭ２２と、ＣＰＵ２１のワークエリア等として使用されるＲＡＭ２３と、原画像を読込むスキャナ２４と、所定の情報を入力する入力装置２５と、デコード結果などを出力する結果出力装置（例えば、ディスプレイやプリンタ）２６とを有している。
【００５６】
ここで、スキャナ２４，入力装置２５，結果出力装置２６は、図１の画像入力部１，情報入力部２，結果出力部６にそれぞれ対応している。また、ＣＰＵ２１は、図１の制御部７，矩形分割部３，エンコード部５，デコード部６の機能を有している。
【００５７】
なお、ＣＰＵ２１におけるこのような制御部７，矩形分割部３，エンコード部５，デコード部６等としての機能は、例えばソフトウェアパッケージ（具体的には、ＣＤ−ＲＯＭ等の情報記録媒体）の形で提供することができ、このため、図１６の例では、情報記録媒体３０がセットさせるとき、これを駆動する媒体駆動装置３１が設けられている。
【００５８】
換言すれば、本発明の画像処理装置は、イメージスキャナ，ディスプレイ等を備えた汎用の計算機システムにＣＤ−ＲＯＭ等の情報記録媒体に記録されたプログラムを読み込ませて、この汎用計算機システムのマイクロプロセッサにエンコード処理，デコード処理を実行させる装置構成においても実施することが可能である。この場合、本発明のエンコード処理，デコード処理を実行するためのプログラム（すなわち、ハードウェアシステムで用いられるプログラム）は、媒体に記録された状態で提供される。プログラムなどが記録される情報記録媒体としては、ＣＤ−ＲＯＭに限られるものではなく、ＲＯＭ，ＲＡＭ，フレキシブルディスク，メモリカード等が用いられても良い。媒体に記録されたプログラムは、ハードウェアシステムに組み込まれている記憶装置、例えばハードディスク装置にインストールされることにより、このプログラムを実行して、エンコード処理機能、デコード処理機能を実現することができる。
【００５９】
【発明の効果】
以上に説明したように、請求項１乃至請求項８の発明によれば、デジタル画像データを所定の大きさの矩形に分割し、分割された各矩形のデジタル画像データに対し、所定の情報を電子透かしとして埋め込むエンコード手段と、デジタル画像データに埋め込まれている電子透かし情報をデコードするデコード手段とを有しており、前記エンコード手段は、前記所定の情報として、埋め込まれるべき本来の情報とともに、デコード手段による電子透かし情報のデコードの際に矩形の位置を識別させるための矩形位置判定用情報を、電子透かしとして埋め込むようになっており、前記所定の情報の埋め込みは、分割された矩形内のデジタル画像データに対して、矩形内を所定の大きさのウインドウで走査し、ウインドウ内のパターンが所定のパターンとなるときに、ビット１またはビット０の情報を埋め込むことによってなされるので、原画像に所定の情報を複雑な処理を必要とせずに埋め込むことができ、また、デコードの際に２次元的に得られるビット列パターンから本来の埋め込んだ１次元のビット列パターンを得ることができる。すなわち、画像の一部分を切り取って再利用された場合にも埋め込んだ情報の復号(デコード)が可能となる。すなわち、画像データに対して、その一部分が切り取られた場合でも、画像データに埋め込まれた情報を安定的に確実に抽出(デコード)できる。
【００６０】
特に、請求項２の発明によれば、画像をその内容によらず全体を分割するので、処理が簡単で高速に処理することができる。
【００６１】
また、請求項３の発明によれば、スキャナで画像を取り込んだ場合に周囲に現れることが多い余白部分や、その他の画像中に現れる無用な余白部分を除いて矩形に分割することができる。すなわち、余白部分のみを切り取って再利用することは通常考えづらく、また情報を埋め込むにも非可視性の点から困難である。従って、余白部分を除外して情報を埋め込むことは無用な部分に情報を埋め込んで目立たせてしまうことを防止でき、無駄なエンコード処理を行なわずに済む。
【００６３】
また、請求項５の発明によれば、請求項１記載の画像処理装置において、前記エンコード手段は、デコードの際の成功率を高めるために、電子透かしとして埋め込まれるべき情報に誤り訂正符号を付加するので、仮にいくらかの埋め込み情報の欠落があっても確実にデコードすることができる。
【００６４】
また、請求項６の発明によれば、デコードの対象の画像が複数の矩形をまたがって切り取られた場合に、それぞれ矩形に対してデコードされた結果が得られるが、これらの複数のデコード結果を統合することによって、より正確に埋め込み情報のデコードができる。
【図面の簡単な説明】
【図１】本発明に係る画像処理装置の構成例を示す図である。
【図２】矩形分割部による矩形の分割の一例を示す図である。
【図３】矩形分割部による矩形の分割の一例を示す図である。
【図４】ビット１，ビット０を表わすパターンを示す図である。
【図５】埋め込み処理（エンコード処理）の仕方を説明するための図である。
【図６】埋め込み処理のルールを示す図である。
【図７】埋め込み処理のルールを示す図である。
【図８】埋め込み処理のルールを示す図である。
【図９】埋め込み情報（電子透かし）としてのビット列を各矩形（各ブロック）のそれぞれについて埋め込んだ状態の一例を示す図である。
【図１０】矩形位置判定用情報としてのビット列”１１１１１１１１”が各矩形（各ブロック）に付加された状態の一例を示す図である。
【図１１】図１０の画像に対して切り取られる部分Ｄを示す図である。
【図１２】矩形の先端位置の検出の仕方を説明するための図である。
【図１３】画像の切り取られ方の例を示す図である。
【図１４】９通りのデコード処理を説明するための図である。
【図１５】エンコード部におけるエンコード処理の概要を示すフローチャートである。
【図１６】デコード部におけるデコード処理の概要を示すフローチャートである。
【図１７】デコード部におけるデコード処理の概要を示すフローチャートである。
【図１８】デコード結果の統合処理の一例を示す図である。
【図１９】原画像が多値画像である場合の本発明の適用例を説明するための図である。
【図２０】図１の画像処理装置のハードウェア構成例を示す図である。
【符号の説明】
１          画像入力部
２          情報入力部
３          矩形分割部
４          メモリ
５          エンコード部
６          デコード部
７          制御部
８          データ保存部
９          結果出力部
２１        ＣＰＵ
２２        ＲＯＭ
２３        ＲＡＭ
２４        スキャナ
２５        入力装置
２６        結果出力装置
３０        情報記録媒体
３１        媒体駆動装置
【図１】
0003592545.tif 000002
【図２】
0003592545.tif 000003
【図３】
0003592545.tif 000004
【図４】
0003592545.tif 000005
【図５】
0003592545.tif 000006
【図６】
0003592545.tif 000007
【図７】
0003592545.tif 000008
【図８】
0003592545.tif 000009
【図９】
0003592545.tif 000010
【図１０】
0003592545.tif 000011
【図１１】
0003592545.tif 000012
【図１２】
0003592545.tif 000013
【図１３】
0003592545.tif 000014
【図１４】
0003592545.tif 000015
【図１５】
0003592545.tif 000016
【図１６】
0003592545.tif 000017
【図１７】
0003592545.tif 000018
【図１８】
0003592545.tif 000019
【図１９】
0003592545.tif 000020
【図２０】
0003592545.tif 000021