(57)【要約】【課題】電子透かしにおいて読み取りエラーを低減する。【解決手段】エラーマップ生成部１４は、付加情報が埋め込まれる埋め込み対象画像に対し、ランダムに発生したテスト情報を埋め込んで電子透かし画像を生成し、その電子透かし画像からデータを復号して元のテスト情報と比較することにより、読み取りエラーの発生したビット位置を検出する。多くのテスト情報に対してこの検査を繰り返すことにより、統計的に読み取りエラーが発生しやすい位置を求める。エンコーダ１２は、エラーが発生しやすいビット位置は避けて付加情報を配列し直し、この結果得られたビット配列を埋め込み対象画像に埋め込んで電子透かし画像を生成する。デコーダ３４は、電子透かし画像からビット列を読み取り、そのビット列において、エラーが発生しやすい位置のビットを無視することで、付加情報を復元する。【選択図】図２
2006186509.tif 000002
【特許請求の範囲】
【請求項１】
情報埋め込み側装置と情報読み取り側装置とを備える電子透かしシステムであって、
前記情報埋め込み側装置は、
埋め込み対象画像に対して付加情報を埋め込んで電子透かし画像を生成するエンコード手段と、
前記付加情報のデータ配列において、電子透かし画像からそのデータ配列を抽出する際に誤認識されやすい部分を検出し、その部分を示すエラーマップ情報を生成するエラーマップ生成手段と、
を備え、
前記情報読み取り側装置は、
前記電子透かし画像に埋め込まれたデータ配列を抽出するデータ抽出手段と、
抽出されたデータ配列を前記エラーマップ情報に基づき処理することにより前記付加情報を求めるデコード手段と、
を備える、
ことを特徴とする電子透かしシステム。
【請求項２】
前記エラーマップ生成手段は、
テスト用データ配列をランダムに生成するテストデータ生成手段と、
前記テスト用データ配列を前記埋め込み対象画像に埋め込んでテスト用電子透かし画像を生成するエンコードシミュレーション手段と、
前記テスト用電子透かし画像に埋め込まれたデータ配列を抽出し、該データ配列を前記テスト用データ配列と比較することで、抽出時に誤認識が生じた部分を求めるデコードシミュレーション手段と、
を備え、ランダムに生成された各テスト用データ配列について、前記エンコードシミュレーション手段及び前記デコードシミュレーション手段に処理を行わせて前記誤認識が生じた部分を求めて記録し、前記誤認識が生じた部分として検出された回数が所定数を超える部分を前記誤認識されやすい部分として抽出することを特徴とする請求項１記載の電子透かしシステム。
【請求項３】
前記前記エラーマップ生成手段は、前記テストデータ生成手段が生成したテスト用データ配列の各ビットの値をそれぞれ反転したデータ配列についても、前記エンコードシミュレーション手段及び前記デコードシミュレーション手段に処理を行わせて前記誤認識が生じた部分を求めて記録する、ことを特徴とする請求項２記載の電子透かしシステム。
【請求項４】
前記情報埋め込み側装置のエンコード手段は、前記エラーマップ情報に基づき、前記誤認識されやすい部分を避けて前記付加情報のデータを再配列することで埋め込みデータ列を生成し、該埋め込みデータ列を前記埋め込み対象画像に埋め込み、
前記情報読み取り側装置のデコード手段は、前記電子透かし画像から抽出されたデータ配列に対し、前記エラーマップ情報を参照して前記エンコード手段とは逆のデータ配列変更処理を行うことで、前記付加情報を求める、
ことを特徴とする請求項１〜３のいずれか１項に記載の電子透かしシステム。
【請求項５】
前記エラーマップ生成手段は、前記エラーマップ情報として、前記誤認識されやすい部分が、０を１と誤認識されやすいのかその逆なのかを示すエラー極性情報を含んだエラーマップ情報を生成し、
前記エンコード手段は、前記埋め込みデータ列における前記誤認識されやすい部分には、誤認識の結果として認識されやすい値を、その部分に対応するエラー極性情報に基づき求めてセットする、
ことを特徴とする請求項４記載の電子透かしシステム。
【請求項６】
前記エンコード手段は、前記付加情報に対してエラー訂正符号を加えた埋め込み情報を前記埋め込み対象画像に埋め込み、
前記エラーマップ生成手段は、前記エラーマップ情報として、前記誤認識されやすい部分が、０を１と誤認識されやすいのかその逆なのかを示すエラー極性情報を含んだエラーマップ情報を生成し、
前記デコード手段は、前記電子透かし画像から抽出したデータ配列において、前記誤認識されやすい部分を前記エラーマップ情報から判別し、該部分の値が誤認識の結果として認識されやすい値か否かをエラー極性情報に基づき判定し、誤認識の結果として認識されやすい値であればその値をランダムに生成した値に置き換え、そうでなければ該部分の値を変更せずに採用することで埋め込み情報を再生し、再生した埋め込み情報に対してエラー訂正処理を行うことで前記付加情報を求める、
ことを特徴とする請求項１〜３のいずれか１項に記載の電子透かしシステム。
【請求項７】
埋め込み対象画像に対して付加情報を埋め込んで電子透かし画像を生成するエンコード手段と、
前記付加情報のデータ配列において、電子透かし画像からそのデータ配列を抽出する再に誤認識されやすい部分を検出し、その部分を示すエラーマップ情報を生成するエラーマップ生成手段と、
を備える情報埋め込み側装置。
【請求項８】
前記エラーマップ生成手段は、
テスト用データ配列をランダムに生成するテストデータ生成手段と、
前記テスト用データ配列を前記埋め込み対象画像に埋め込んでテスト用電子透かし画像を生成するエンコードシミュレーション手段と、
前記テスト用電子透かし画像に埋め込まれたデータ配列を抽出し、該データ配列を前記テスト用データ配列と比較することで、抽出時に誤認識が生じた部分を求めるデコードシミュレーション手段と、
を備え、ランダムに生成された各テスト用データ配列について、前記エンコードシミュレーション手段及び前記デコードシミュレーション手段に処理を行わせて前記誤認識が生じた部分を求めて記録し、前記誤認識が生じた部分として検出された回数が所定数を超える部分を前記誤認識されやすい部分として抽出することを特徴とする請求項７記載の情報埋め込み側装置。
【請求項９】
与えられた電子透かし画像に埋め込まれたデータ配列を抽出するデータ抽出手段と、
電子透かし画像からそのデータ配列を抽出する際に誤認識されやすい部分を示したエラーマップ情報を取得し、前記データ抽出手段で抽出されたデータ配列を前記エラーマップ情報に基づき処理することにより前記付加情報を求めるデコード手段と、
を備える情報読み取り側装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像に対して情報を埋め込む電子透かし技術において、電子透かし画像からの情報を読み出す際のエラーを低減するための技術に関する。
【背景技術】
【０００２】
従来、ディジタルデータを印刷記録する技術とし、バーコードやそれを進化させた２次元バーコードが広く知られ用いられている。これらのコードは明らかにデータが記録されている印刷部分が認知でき、見栄えが良くない。場合によってはディジタルデータが印刷されている部分を改竄する等の事も可能である。これらの技術に対して、一見、人間の目には認識できないような形式で付加する電子透かし技術がさかんに研究・開発されている。これらの技術の多くはディジタルデータを埋め込む対象画像をユーザーの目的や好みに応じて任意の写真や絵柄等にすることができる特徴がある。しかし、ディジタルデータを埋め込む場合、対象画像の画像の濃淡や色、急激な濃淡変化等、本来の対象画像とディジタルデータとの埋め込み印刷とが干渉しあい、ディジタルデータの記録再生過程においてエラーを発生する場合がある。
【０００３】
例えば、本出願人は、特許文献１においてディジタルデータの埋め込み方法を提案している。この手法では、埋め込むべきディジタルデータの「０」と「１」の各符号に対して互いに異なるパターン画像を割り当て、そのパターン画像を符号列とパターン画像の配列規則とに従って配列することにより埋め込み画像を形成し、この埋め込み画像を対象となる画像データに重畳することでデータを埋め込む。個々のパターン画像は、
（ａ）双方のパターン画像の対応する画素同士を加算した結果は、いずれも同じ所定値（例えば「０」）になる、
（ｂ）各々のパターン画像中の全画素を加算した結果は、いずれも同じ所定値（例えば「０」）になる、
（ｃ）各々のパターン画像は、画像の中心部を通り、その方向が異なる、画素値の不連続線（エッジと呼ぶ）を有する。エッジの方向は、例えば垂直線及び水平線に沿った方向とすることができる、
（ｄ）各々のパターン画像の持つ画素値の絶対値は中心でもっとも大きく、中心から離れるほど小さくなる、
という特徴を有している。
【０００４】
このような特徴を持った、エッジの方向を水平及び垂直としたパターン画像の一例を図１０に示す。図１０においては、例えばパターン（Ａ）が符号「０」、パターン（Ｂ）が符号「１」を示す。
【０００５】
このように面積を持ったパターンによって符号を表現することで各画質劣化要因に対する耐性を獲得する一方、合成後に画像の濃度が大きく変化することが防止され（（ａ），（ｂ）の特徴による）、パターン画像の検出が容易で復号処理が簡便となり（（ｂ），（ｃ）の特徴による）、かつパターン同士の間でのエッジの発生が防止されて（（ｄ）の特徴による）、その存在が視覚的に目立たないようになる。このエッジは、復号時のパターン周期の推定等に用いられる。
【０００６】
このパターン画像を合成した画像を、復号する際は、パターン画像内のエッジによって仕切られた各象限に相当する合成後の画素値の和（第１から第４象限についてＲ１からＲ４）を算出し、例えば、Ｒ１＞Ｒ２かつＲ１＞Ｒ４かつＲ３＞Ｒ２かつＲ３＞Ｒ４の場合に符号「１」であると判定する。すなわち、各象限ごとの画素値群の和の比較によって復号を行うことができる。
【０００７】
特許文献１のように、各符号のパターン画像内にエッジができ、このエッジを復号に用いるデータ埋め込み方式の場合、埋め込み対象の画像の濃淡変化が急激な部分に重なって印刷されたディジタルデータの情報は読み取りエラー（再生エラー）を起こしやすいという性質がある。例えばエッジの方向が水平及び垂直である図１０のようなパターン画像を用いる場合、パターン画像は対角線方向に沿った特徴を持つので、埋め込み対象画像の中に濃淡変化が斜め方向に顕著な部分がある場合、その部分重畳されたパターン画像は復号しづらくなる。
【０００８】
このようにディジタルデータを電子透かし技術により対象画像に埋め込むする場合、埋め込む対象画像とディジタルデータとが干渉し、読み取りエラーを招くことがあり、信頼性の高いディジタルデータの記録再生を行う装置を実現するためには、これらの読み取りエラーを排除する必要がある。
【０００９】
【特許文献１】特開２００４−１４０７６４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、電子透かしによる情報埋め込みにおいて、埋め込んだ情報の読み取りエラーの低減のための技術を提供する。
【課題を解決するための手段】
【００１１】
本発明に係る電子透かしシステムは、情報埋め込み側装置と情報読み取り側装置とを備える電子透かしシステムであって、前記情報埋め込み側装置は、埋め込み対象画像に対して付加情報を埋め込んで電子透かし画像を生成するエンコード手段と、前記付加情報のデータ配列において、電子透かし画像からそのデータ配列を抽出する際に誤認識されやすい部分を検出し、その部分を示すエラーマップ情報を生成するエラーマップ生成手段と、を備え、前記情報読み取り側装置は、前記電子透かし画像に埋め込まれたデータ配列を抽出するデータ抽出手段と、抽出されたデータ配列を前記エラーマップ情報に基づき処理することにより前記付加情報を求めるデコード手段とを備える。
【００１２】
なお、エラーマップ情報は、付加情報のデータ配列において、電子透かし画像からそのデータ配列を抽出する際に誤認識されやすい部分を示す情報であるが、これは誤認識されにくい部分を示す情報と原理的に等価である。
【００１３】
好適な態様では、前記エラーマップ生成手段は、テスト用データ配列をランダムに生成するテストデータ生成手段と、前記テスト用データ配列を前記埋め込み対象画像に埋め込んでテスト用電子透かし画像を生成するエンコードシミュレーション手段と、前記テスト用電子透かし画像に埋め込まれたデータ配列を抽出し、該データ配列を前記テスト用データ配列と比較することで、抽出時に誤認識が生じた部分を求めるデコードシミュレーション手段と、を備え、ランダムに生成された各テスト用データ配列について、前記エンコードシミュレーション手段及び前記デコードシミュレーション手段に処理を行わせて前記誤認識が生じた部分を求めて記録し、前記誤認識が生じた部分として検出された回数が所定数を超える部分を前記誤認識されやすい部分として抽出する。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して、本発明を実施するための最良の形態（以下「実施形態」と呼ぶ）について説明する。
【００１５】
電子透かしの方式には、画像の空間上でデータを埋め込む方式と、画像を周波数空間へと変換した上でデータを埋め込む方式とがある。
【００１６】
前者は、図１に示すように付加情報の埋め込み先となる埋め込み対象画像のプレーン１と、付加情報を表す付加画像のプレーン２との間で、画素ごと、或いはブロックごとに乗算、加算、あるいはその他の演算を行うことで、合成画像データ（情報埋め込み済みの画像）を得るものである。特許文献１に示した方式はこの一例である。この方式は、埋め込み対象画像プレーン１の性質によって付加画像プレーン２の特定の位置に誤りが発生しやすい性質がある。すなわち、埋め込み対象画像中には、埋め込むべき付加画像と干渉しやすい性質を持った場所が存在する場合があり、このような場所に埋め込まれた情報は、正しく読み取れない可能性が高い。
【００１７】
また、同様に周波数空間上で埋め込み対象画像プレーンと付加画像プレーンを重ねあわせる後者の方法においても、同様に埋め込み対象画像との干渉により、埋め込む情報の特定のビット位置に誤りが発生しやすい性質がある。
【００１８】
本実施形態では、このような性質に鑑み、予め読み取りエラーが発生しやすい位置（すなわち埋め込んだビット値とは違うビット値が読み取られる傾向が強い位置）を検出してエラー位置情報を生成し、これをエンコーダ側とデコーダ側で利用することにより、復号誤りの低減を図る。
【００１９】
図２は、このような考えに従った電子透かしシステムのシステム構成図である。図示のように、このシステムは、情報埋め込み側装置１０と、エラー情報管理装置２０と、情報読み取り側装置３０とから構成される。
【００２０】
情報埋め込み側装置１０は、埋め込み対象画像に対し付加情報を埋め込む処理を行う装置であり、エンコーダ１２、エラーマップ生成部１４及び画像出力部１６を備えている。
【００２１】
エンコーダ１２は、付加情報を符号化して埋め込み対象画像に埋め込む手段である。このエンコーダ１２としては、例えば特許文献１に示したようなものなど、従来の様々な電子透かし方式のエンコーダを用いることが出来る。なお、１つの好適な実施例では、エンコーダ１２は、従来公知のエンコーダが行うデータ埋め込み処理（基本処理と呼ぶ）に加え、更に、エラーマップ生成部１４が求めるエラーマップを利用して読み取りエラーが生じ難い場所に付加情報を埋め込むという追加処理を持つようにすることも出来る。この追加処理の詳細は後述する。なお、エンコーダ１２がエラーマップを利用することは必須のことではなく、エンコーダ１２がエラーマップを使用しない場合の処理方式の例についても後で説明する。
【００２２】
エラーマップ生成部１４は、埋め込み対象画像の中で、その画像に埋め込んだ付加情報の読み取りエラーが発生しやすい場所を検出するための手段である。一般に画像へのデータ埋め込みにおいては、埋め込み対象画像の各画素、或いはその画像を所定サイズの矩形領域に分割して出来た各ブロックに対し、ラスタ走査順序等のように、あらかじめ決まった順序で付加情報の各ビットを埋め込んでいく。したがって、エラーマップ生成部１４は、埋め込むべき付加情報のビット配列において、読み取りエラーが起こりやすいビット位置を検出する手段と捉えることも出来る。本実施形態のエラーマップ生成部１４は、テスト用の付加情報としてランダムなビット列を生成し、これを与えられた埋め込み対象画像に埋め込んで読み取るというシミュレーションを繰り返すことで、埋め込み対象画像における読み取りエラーを誘発しやすい位置、すなわち付加情報ビット配列において読み取りエラーが生じやすいビット位置を求め、これらエラーを生じやすい位置のマップ（エラーマップ情報）を生成する。このようにランダムなテストデータを多数用いて統計的にエラーの生じやすい位置を求めることにより、例えばチケットや役所が発行する証明書などのように、１枚ずつ異なる多くの識別番号や通し番号等を同じ絵柄（埋め込み対象画像）に埋め込む場合にうまく対応することが出来る。エラーマップ生成部１４の内部構成や詳細な処理内容は後述する。
【００２３】
エラー情報管理装置２０は、情報埋め込み側装置１０が生成したエラーマップ情報を保持管理し、情報読み取り側装置３０に対し提供する。エラー情報管理装置２０は、例えば、インターネットやイントラネットその他のデータ通信ネットワークを介して情報埋め込み側装置１０及び情報読み取り側装置３０と通信可能となっている。
【００２４】
情報埋め込み側装置１０のエラーマップ生成部１４は、作成したエラーマップ情報を、そのエラーマップの対象である埋め込み対象画像を一意に示す埋め込み対象画像ＩＤ（識別情報）と共に、エラー情報管理装置２０に登録する。エラー情報管理装置２０は、この埋め込み対象画像ＩＤとエラーマップ情報とを対応づけ、例えばこれらの組をテーブルに登録して管理する。エラー管理装置２０は、情報読み取り側装置３０からエラーマップ情報の要求を受け取ると、その要求の中で指定された埋め込み対象画像ＩＤを求め、その埋め込み対象画像ＩＤに対応するエラーマップ情報を返す。なお、埋め込み対象画像ＩＤは、エラーマップ生成部１４が付与するようにしてもよいし、エラー情報管理装置２０が付与し、エラーマップ生成部１４に通知するようにしてもよい。
【００２５】
また、エラーマップ生成部１４は、埋め込み対象画像ＩＤをエンコーダ１２に伝える。エンコーダ１２は、その埋め込み対象画像ＩＤを、付加情報と共に埋め込み対象画像中に埋め込んでもよいし、或いは埋め込み結果の画像に対して可視の数字或いは記号の列として組み込んでもよい。いずれにしても、情報読み取り側装置３０でその埋め込み対象画像ＩＤが読み取れる方式で、埋め込み対象画像ＩＤを画像中に組み込む。
【００２６】
画像出力部１６は、このようにしてエンコーダ１２が生成した情報埋め込み済み画像１００を出力する。ここでの画像出力の形式は、用紙等の媒体に印刷する場合もあれば、電子的な画像ファイルとして出力する場合もある。
【００２７】
このように生成された情報埋め込み済み画像１００を読み取る情報読み取り側装置３０では、画像入力部３２が、その情報埋め込み済み画像１００を読み取る。情報埋め込み済み画像１００が用紙に印刷されている場合は画像入力部３２はそれを光学的に読み取るスキャナであり、情報埋め込み済み画像１００がファイルとして入力される場合は画像入力部３２は画像ファイルを開くソフトウエアである。
【００２８】
デコーダ３４は、画像入力部３２から入力された情報埋め込み済み画像１００の画像データを受け取り、その画像データの中から付加情報を復号する。基本的な復号処理は、特許文献１に示されたものなどのように従来公知のものでよいが、本実施形態ではこれに加え、デコーダ３４が、その情報埋め込み済み画像１００から読み取った埋め込み対象画像ＩＤをエラー情報管理装置２０に渡してこれに対応するエラーマップ情報を取得し、そのエラーマップ情報を利用して、例えばエラーが生じやすい場所に該当する復号ビット値は無視するなどの追加処理を行うことで、読み取りエラー（付加情報の再生エラー）を低減する。すなわち、デコーダ３４は、まず従来公知の基本的な復号処理により、情報埋め込み済み画像１００から、そこに埋め込まれた生のデータビット列を再生する。そして、追加処理により、その生のデータビット列を、エラーマップ情報に従って解釈することにより、元の付加情報を復元する。追加処理の詳細については、後で説明する。
【００２９】
以上大略的に説明したが、このシステムでは、情報埋め込み側で、埋め込み対象画像においてデータの再生エラーを招きやすい箇所を検出し、その情報を情報読み取り側に伝達して利用することで、再生エラーを低減している。
【００３０】
なお、以上の例では、復号に必要なエラーマップ情報を特定するの埋め込み対象画像ＩＤを用いたが、これは必須ではない。例えば、チケット等の文書に表示される識別番号や通し番号と、その文書の復号のためのエラーマップ情報との関係をエラー情報管理装置２０に登録しておけば、埋め込み対象画像ＩＤを画像中に組み込まなくても、情報読み取り側装置３０は読み取った画像から検出したその文書の識別番号等をエラー情報管理装置２０に通知することで、付加情報を復号する際に必要なエラーマップ情報を得ることが出来る。
【００３１】
次に、エラーマップ生成部１４の細部について、図３を参照して説明する。図３に示すように、テスト情報発生器１２、エンコーダ１４４、デコーダ１４６、及びエラー検出器１４８を備える。
【００３２】
テスト情報発生器１４２は、テスト用付加情報としてランダムなビット列を発生する。このビット列は１と０が均等に含まれていることが望ましい。具体的なランダムビット列の発生手段としはＭ系列などの擬似ランダムなビット列を発生させる公知の手法を利用することができる。発生したテスト用付加情報のビット列は、エンコーダ１４２及びエラー検出器１４８に供給される。
【００３３】
エンコーダ１４４は、テスト情報発生器１４２が発生させたテスト用付加情報を、埋め込み対象画像に対して埋め込む。このエンコーダ１４２が行う処理は、情報埋め込み側装置１０のエンコーダ１２のデータ埋め込み処理の基本処理と同じものである。したがって、エンコーダ１４４として、エンコーダ１２の基本機能を用いてももちろんよい。なお、前述のエンコーダ１２で付加情報が埋め込まれた画像は画像出力部１６により印刷などの形で出力されたが、エラーマップ生成部１４におけるエンコーダ１４４から出力されるテスト用付加情報が埋め込まれた画像データは、データのままデコーダ１４６に渡される。
【００３４】
デコーダ１４６は、受け取った画像データから付加情報を復号する、このデコーダ１４６の行う復号処理は、情報読み取り側装置３０のデコーダ３４の基本的な復号処理と同じものである。この復号処理により、画像データに埋め込まれたテスト用付加情報のビット列が求められる。求められたビット列はエラー検出器１４８に入力される。
【００３５】
エラー検出器１４８は、デコーダ１４６から入力されるビット列（すなわち画像から読み取ることができたデータ）を、テスト情報発生器１４２から供給されたテスト用付加情報のビット列と、先頭ビットから順に比較し、誤りのあるビット位置を求めて記録する。
【００３６】
以上のような構成により、所定数のランダムなビット列を発生させて埋め込み対象画像に埋め込み、読み取りエラーのあるビット位置を求めて記録していく。この記録に基づき、統計的に読み取りエラーの発生しやすいビット位置（或いはその逆）を求め、エラーマップを作成する。
【００３７】
なお、エラー検出器１４８は、最も単純な実施例では、正しいテスト用付加情報と値が異なるビット位置を求めるものでよいが、別の実施例として、そのビット位置で生じた読み取りエラーの極性（方向性）、すなわち０を１と誤ったのかその逆なのかを求めて記録することも好適である。
【００３８】
次に、図４を参照して、エラーマップ生成部１４の処理動作を説明する。以下では、説明の便宜上、１つの埋め込み対象画像に埋め込む付加情報（ビット列）の大きさをＮ（ビット）とする。
【００３９】
この処理では、まず最初に、各種変数の初期化動作を行う（Ｓ１０）。この処理では、まずエラー検出のループ回数Ｔを設定する。エラーマップ生成では、一連のエラー検出動作は最低一回行えばよいが、エラー情報の精度を高めるために同様な操作を数回繰り返すことが望ましい。ループ回数Ｔはこの繰り返しの回数を設定する数値であり、最低１から設定することできるが、埋め込む付加情報のビット数Ｎや求めるエラー情報の精度あるいは処理時間等により決められることが望ましく、簡単な目安としては付加情報のビット数Ｎと等しいかこれに近い数値にしておけばよい。また、この初期化動作では、エラー検出動作の回数を示すループカウンタの値Ｃを０に初期化し、更に読み取りエラーのあったビット位置を記録するための配列であるビット列エラーマップＥの全要素を０に設定する。このビット列エラーマップＥは、Ｎビットの付加情報の各ビットにおける読み取りエラーの発生回数を記録するための配列であり、０〜Ｎ−１までのＮ個の要素を持つ。
【００４０】
次に、テスト情報発生器１４２によりテスト用付加情報のビット列Ｄt（ビット数はＮビット）を発生させる（Ｓ１２）。テスト情報発生器１４２は規則性がなく、作動するごとに異なったビット列を発生することが望ましい。テスト情報発生器１４２にＭ系列の擬似乱数を発生させるものを用いた場合は、その系列周期をＮ−１としておき、繰り返し回数Ｔ＝Ｎ−１とすると、各ループ回数において必ず異なった疑似ランダムのテスト用付加情報を発生することができるため、エラー検出の精度上望ましく、さらに発生機構が簡単である利点がある。
【００４１】
次に、エンコーダ１４４により、このテスト用付加情報を、与えられた埋め込み対象対象画像に埋め込み、エラー検出用電子画像Ｇを得る（Ｓ１４）。ここで、エンコーダ１４４においては、埋め込み対象画像からの干渉による付加情報の読み取りエラーを検出することを目的としてエンコードを行うため、実際に電子透かしのために付加情報を埋め込むエンコーダよりも、エラーが発生しやすいエンコードパラメータを用いることが望ましい。一例として、図１のように埋め込み対象画像プレーン１と付加情報プレーン２とをある種の演算処理、例えば埋め込み対象画像プレーン１の各画素値Ｐと付加情報プレーン２の画素値Ｑとから埋め込み処理後の画像の画素値Ｒを次に式（１）のように求める場合を考える。
【００４２】
Ｒ＝Ｐ＋ａ×Ｑ                         …（１）
【００４３】
この式（１）において、ａは埋め込み強度を示す正の係数であり、この値が大きくなるほど埋め込み処理後の画像において付加情報の画像が埋め込み対象画像より目立ちやすく、すなわち見方を変えれば復号がしやすくなる。したがって、この係数ａの値を実際に電子透かしを入れる際に用いる値より小さくすれば、相対的に後のデコード処理でエラーが発生しやすいエラー検出画像Ｇを得ることができる。
【００４４】
次に、このように電子的に求めたエラー検出画像Ｇをデコーダ１４６によりデコード（復号）する（Ｓ１６）。このデコード処理により求められるＮビットのビット列を、検出データビット列Ｄdと呼ぶことにする。
【００４５】
次に、エラー検出器１４８により、テスト用付加情報のビット列Ｄtと検出データビット列Ｄdとをビットごとに比較する（Ｓ１８）。この比較により、ビット列のあるビット位置で両者の不一致が検出されたら、ビット列エラーマップＥにおけるそのビットの位置ｉ（ｉは０〜Ｎ−１の整数）の値Ｅ(i)に１を足す。
【００４６】
また、エラーの極性を求める実施例の場合は、Ｄt(i)=０でありＤd(i)=１となったエラーについてはＥ(i)の値を１増やし、逆にＤt(i)=１でありＤd(i)=０となったエラーについてはＥ(i)の値を１減ずるようにすればよい。埋め込み対象画像との干渉による読み取りエラーは、埋め込み対象画像中のその場所の画像の特徴に起因するものであるため、０を１と読み取ってしまう極性のエラーか、１を０と読み取ってしまう極性のエラーか、そのどちらかが優勢となる傾向がある。このため、このようにエラーマップＥの各要素の値を増減することで、その要素に対応するビット位置のエラーの性質を示すことができる。なお、もちろんエラーマップとして、各極性のエラー発生回数をそれぞれ個別に積算するものを用い、それぞれ個別にカウントするようにしてももちろんよい。
【００４７】
いずれにしても、エラーマップは、付加情報のビット列上で発生するエラーの位置を示していることが第一の目的である。
【００４８】
次にＳ２０では、Ｓ１２で生成したテスト用付加情報の各ビットの値を反転（すなわち１は０に、０は１に変換）させて、その反転結果のビット列をエンコーダ１４４により埋め込み対象画像Ｄt*に埋め込んでエラー検出用電子画像Ｇを求める。そして、この電子画像Ｇをデコードし（Ｓ２２）、そのデコード結果をＳ２０で求めた反転ビット列と比較し、この比較の結果不一致となったビット位置をビット列エラーマップＥに記録する（Ｓ２４）。このようにビット列を反転させてエラー検出を行うのは、前述したようにエラーの出方には２種類の極性があり、ビットを反転させないとエラー検出ができない場合が有るからである。しかし、このビット列を反転してエラー検出を行うことは必須ではない。テスト用付加画像が十分にランダムに、十分な数だけ発生させてシミュレーションを行うのならば、反転しなくても同等の結果を得ることが出来る。従って、この反転処理は、エラー検出の精度と原理的にビット列を反転してのエラー検出の効果が上がる場合において用いればよい。
【００４９】
以上のＳ２４までの処理が終わると、次にループカウンタＣの値を１増加させ（Ｓ２６）、このループカウンタＣがＳ１０で設定された所定のループ回数Ｔの値に達していなければ（Ｓ２８）、Ｓ１２に戻って新たなテスト用付加情報Ｄtを発生させ、以上の処理を繰り返す。ループカウンタＣの値がＴに達した場合、一連の処理動作は終了する。
【００５０】
この処理の結果ビット列エラーマップＥは、与えられた一枚の埋め込み対象画像について、その画像に様々な付加情報を埋め込んでそれを復号したとき場合の、付加情報の各ビット位置でのエラーの発生分布を示している。エラー検出部１４は、このビット列エラーマップＥに基づき、付加情報において読み取りエラーが発生しやすいビット位置を判定する。この判定は、例えばエラー発生回数の閾値Ｈをあらかじめ定めておき、ビット列エラーマップＥにおける各ビット位置の要素のうちその閾値Ｈを超えるエラー発生回数を示すビット位置を、読み取りエラーが発生しやすいビット位置と判定すればよい。このようにして求めた読み取りエラーの発生しやすいビット位置の組がエラーマップ情報であり、これがエラー情報管理装置２０に提供される。
【００５１】
ここで、単にエラーが発生しやすいビット位置だけでなく、そのビット位置におけるエラーの極性も併せてエラーマップ情報に含めるようにすることも好適である。この場合のエラーマップ情報としては、例えばつぎのようなデータ構造のものを用いることができる。すなわち、このエラーマップ情報は、付加情報のビット数だけの要素を持つ配列であり、各要素はそれぞれ２ビットからなり、その２ビットのうち最初のビットはその要素に対応するビット位置が読み取りエラーの生じやすい位置か否かを示し、後のビットは生じやすい読み取りエラーの極性を示す。
【００５２】
なお閾値Ｈは、Ｅの要素が取り得る範囲について、電子透かしのアルゴリズム等による性質やエラーの出現頻度を考慮し、必要に応じシミュレーション等を行って決めればよい。
【００５３】
１つの好適な実施例では、このエラーマップ情報をエンコーダ１２に提供し、エンコーダ１２による付加情報の埋め込み処理を、読み取りエラーに対する耐性の高いものとする。すなわち、エンコーダ１２は、基本処理に対する追加処理として、例えば、埋め込むべき付加情報のビット列を、エラーマップ情報に示される読み取りエラーが発生しやすいビット位置を避けて再配列し直してから埋め込む処理を行う。これにより、エラーが発生しやすいビット位置のデータがなくても、付加情報を再生できることになる。以下、このようなエンコーダ１２の追加処理の例を説明する。
【００５４】
この処理を説明するため、具体例として、埋め込み対象画像に埋め込むビット列のビット数Ｎを６４、エラー検出時のループ回数ＴをＮ−１すなわち６３とし、テスト情報発生器１２はＮ−１の周期のＭ系列を発生させるものであり、図４の処理で求められたビット列エラーマップＥが図５に示すようなものであったとする。
【００５５】
図５中の各マス目の中の数字はビット列エラーマップＥの各要素の値を示している。ここで、この例では、ビット列エラーマップＥの各要素に対応するビット位置が読み取りエラーの発生箇所であるかどうかを決める閾値Ｈを仮に絶対値で１０とする。すなわち  ｜Ｅ(i)| ≦Ｈ としてＨ＝１０とするからＥ(i) の値がプラスマイナス１０以内であれば読み取りエラーと見なさないとした。図５のビット列エラーマップＥにおいて、この閾値Ｈとの比較により読み取りエラーの発生しやすいと判定されたマス目にはハッチングを施して他と区別した。これから、ビット位置ｉ＝１２，１８，２３，３６，４９，５５が、エラーの発生しやすい箇所と判定され、これらの箇所を示す情報がエラーマップ情報としてエンコーダ１２及びエラー情報管理装置２０に渡される。
【００５６】
このエラーマップ情報を受け取ったエンコーダ１２によるエンコード（付加情報の埋め込み）処理の一例を、図６を参照して説明する。この例では、埋め込み対象画像に埋め込む付加情報のサイズを４８ビットとし、付加情報をＹ(1,0,...,47)と表す。この例では埋め込めるビット列のビット数Ｎは６４ビットであるが、エラーが発生する箇所が１６カ所あった場合を見込んで、実際に埋め込む付加情報のサイズをその分少なく設定しておく。図５に例示したビットマップＥはエラーが発生しやすい箇所が６カ所あることを示しているため、この例では１０ビット分の余裕があることになる。埋め込む付加情報のビット数は、本来埋め込める情報のビット列の大きさＮよりも小さい値に設定するが、どの程度小さい値にするかに関しては電子透かしのアルゴリズム等に依存するエラーの出現頻度から適宜定める。
【００５７】
図６では、上段には埋め込むべき情報として与えられる４８ビットの付加情報Ｙ(1,0,....47)のビット列の一部を、下段にはその付加情報Ｙに対しエラー耐性を高める処理を加えることによりできる、実際に埋め込み対象画像に埋め込まれる埋め込みビット列Ｘ(0,1,....63)の対応部分を示す。この図に示すように、エラーが発生しやすいと判定されたビット位置以外のビット位置では、Ｙ(0)=Ｘ(0),Ｙ(1)=Ｘ(1),....といった具合に、付加情報Ｙの値をそのまま埋め込みビット列Ｘでの値として採用していく。Ｙ(11)まではこのようにして割当が出来る。次の１３番目のビット位置（すなわちＥ(12)）はエラーが発生しやすいビット位置であるため、付加情報のビット値Ｙ(12)はＸ(12)へ割り当てず、その後最初に現れるエラーが発生しにくいビット位置（すなわち「エラーが発生しやすい」と判定されなかったビット位置）へと繰り延べて割り当てる。この例では、１４番目(ｉ＝１３)がそれに該当するので、Ｘ(13)にＹ(12)の値を割り当てる。以降、次にエラーが発生しやすいビット位置に行き当たるまでは、付加情報Ｙの各ビットは、１つずつ後ろにずれて埋め込みビット列Ｘにセットされる。次にエラーが発生しやすいビット位置はｉ＝１８であるから、Ｙ(17)=Ｘ(18)の割り当ては行わず、Ｙ(17)はその次の（エラーが発生しやすいビット位置ではない）Ｘ(19)に割り当てる。
【００５８】
このように、図６に例示した方式では、付加情報Ｙの各ビットを先頭ビットから順に、エラーが発生しやすいと判定されたビット位置ｉを避けて順番に再配列することで、埋め込みビット列Ｘを生成する。図５に例示したエラーマップの例においては、付加情報のビット列の最後Ｙ(47)は埋め込みビット列のＸ(52)に割り振られる。埋め込みビット列Ｘ(53)からＸ(63)までは未割り当ての状態であるが、デコードに際して不必要であるのでダミーのビット情報を記録するなどしておく。
【００５９】
また、エラーマップ情報においてエラーが発生しやすい位置として記録されているビット位置の値Ｘ(12),Ｘ(18),Ｘ(23),Ｘ(36),Ｘ(49)については、復号（デコード）時には無視するので、基本的にはどのような値をセットしてもよい。ただし、より好適には、それら各値に、それぞれＥ(12),Ｅ(18),Ｅ(23),Ｅ(36),Ｅ(49)のマップ情報の極性（符号）に応じ、それぞれ読み取りエラーの結果として出やすいビット情報を記録するようにする。すなわちＸ(12)=０,Ｘ(18)=１,Ｘ(23)=０,Ｘ(36)=１,Ｘ(49)=０とする。これは以下のような理由からである。
【００６０】
すなわち、例えば特許文献１の情報埋め込みでは、０を１と読み誤る読み取りエラーを起こしやすい箇所においては、元々その箇所の埋め込み対象画像自体が、付加情報の「１」を表すパターン画像に近い画像特徴を持っている可能性が高い。したがって、そのような場所に「０」を示すパターン画像を埋め込んだのでは、元の埋め込み対象画像とは逆の特徴を持つパターン画像を重畳することになり、元の埋め込み対象画像の特徴が弱まることになる。これに対し、読み取りエラーとして出やすい「１」のパターン画像は、元の埋め込み対象画像と特徴が似ているので、埋め込みによる画像の変化が少ない。このように、エラーが発生しやすい箇所にそれぞれ読み取りエラーの結果として出やすいビット情報を割り当てることは、埋め込み前後での画像の見栄えの変化を少なくすることが出来るという点で好適である。
【００６１】
次に図７を参照して、エンコーダ１２によるエラーマップ情報を用いたエンコード処理の別の例を説明する。この図でも、上段には埋め込むべき４８ビットの付加情報Ｙ(1,0,....47)のビット列の一部を、下段にはその付加情報Ｙに対しエラー耐性を高める処理を加えた埋め込みビット列Ｘ(0,1,....63)の対応部分を示す。
【００６２】
図７の手法では、読み取りエラーが発生しやすいビット位置か否かに依らず、Ｙ(0)=Ｘ(0),Ｙ(1)=Ｘ(1),..Ｙ(47)=Ｘ(47)と、先頭ビットから順番に付加情報Ｙの値を埋め込みビット列に割り当てていく。そして、その後のＸ(48)以降の各ビットに、エラーの発生しやすいビット位置と判定されたｉ=１２，１８，．．．の各ビット位置の付加情報Ｙ(12),Ｙ(18)を順に割り当てていく。ここで、例えばＹ(18)はＸ(49)に割り当てられることになるが、ｉ=４９のビット位置はエラーが発生しやすい位置なので、Ｙ(18)は次のＸ(50)に割り当てられる。このように、エラーが発生しやすいと判定されたビット位置は避けて、値を順に割り当てる。
【００６３】
エンコーダ１２は、このようにして図６又は図７の手法で付加情報Ｙから埋め込みビット列Ｘを生成すると、この埋め込みビット列Ｘを埋め込み対象画像に対して埋め込む。例えば埋め込み方式として特許文献１の方式を用いた場合、その埋め込みビット列Ｘの各ビットの値をそれぞれ対応するパターン画像に置き換えて順に配列することで、付加情報プレーン２を生成する（図１参照）。そして、この付加情報プレーン２と埋め込み対象画像プレーン１とを合成することで、付加情報が埋め込まれた電子透かし画像を生成する。なお、これはあくまで一例であり、その他の電子透かし方式により埋め込みビット列Ｘを画像中に埋め込んでももちろんよい。
【００６４】
以上、エラーマップ情報を利用したデータ埋め込み方式の例を説明した。図６に示したデータ埋め込み方式をとった場合、情報読み取り側装置３０のデコーダ３４では、エラーマップ情報をエラー情報管理装置２０から取得し、情報埋め込み済み画像１００から読み取ったビット列を、先頭ビットから順に、そのエラーマップ情報にエラーが発生しやすいビット位置として示されたビットを無視しながら解釈することで、埋め込まれた付加情報を復元することが出来る。
【００６５】
一方、図７の方式を採用した場合は、情報読み取り側装置３０は、情報埋め込み済み画像１００から読み取ったビット列のうちエラーマップ情報においてエラーが発生しやすいと判定したビットに対し、そのビット列において付加情報のビット数以降の各ビット（但しエラーが発生しやすいと判定されたビットは除く）の値を順に当てはめていくことにより、元の付加情報を復元する。なお、図７の方式の場合、付加情報のビット数を何らかの方法で知る必要がある。これには、付加情報のビット数の情報を、例えばエラーマップ情報の一部に組み込んでおき、情報読み取り側装置３０に伝達するようにすればよい。
【００６６】
以上のように、エンコード時に付加情報ビット列Ｙを埋め込みビット列Ｘに割り当てた方法を、デコード側も共有していれば、容易に逆の過程を実行して、画像１００から読み取った生データビット列から誤りのない付加情報を復元できる。
【００６７】
以上は、エラーマップ情報をエンコーダ１２によるデータ埋め込み処理に適用した場合の例であった。これに対し、次に説明する図８の方式では、エンコーダ１２はエラーマップ情報を利用しない。但し、この方式では、付加情報にはエラー訂正符号（ECC)が含まれているものとする。すなわち、埋め込むべき生のデータが与えられた場合、エンコーダ１２はそのデータに対し周知の方法によりエラー訂正符号を付加して、付加情報を構成する。
【００６８】
この例では、エラーマップ情報は上述の例と同様とするが、エラー訂正符号が含まれることを考慮して、付加情報Ｙのビット数を６４ビットとする。
【００６９】
この方式では、エンコーダ１２は、エラー訂正符号を組み込んだ付加情報Ｙ(i)を、そのまま埋め込みビット列Ｘ(i)とする。すなわち、エンコーダ１２は、従来のものと同じでよく、何ら特別なことはしなくてよい。
【００７０】
これを受け取った情報読み取り側装置３０のデコーダ３４は、情報埋め込み済み画像１００から読み取ったビット列に対し、エラー情報管理装置２０から取得したエラーマップ情報を利用して調整を加えた上で、エラー訂正符号による誤り訂正を適用する。この実施例では、エラーマップ情報として、エラーが発生しやすいビット位置だけでなく、そのビット位置におけるエラーの極性の情報を含んだものを用いる。
【００７１】
このエラーマップ情報として、上述したデータ形式、すなわち各ビット位置ごとに、その位置がエラーの発生しやすい位置か否かを示すビットと、そのビットで生じやすいエラーの極性を示したビットとの２ビットを含むエラーマップ情報を用いる場合、それは図９に示すようなものとなる。これは、図５のビット列エラーマップに対応したものである。
【００７２】
このエラーマップ情報において、０を１に誤り易いビット位置については、画像から読み取ったそのビット位置のビットの値が０であればそのビットの値はそのまま０とし、１であればランダムビット発生器によりランダムに発生される１又は０の値をそのビットの値に置き換える。逆にエラーマップ情報の中で１を０に誤り易いと示されたビット位置については、その画像から読み取ったそのビットの値が１であればそのまま１とし、０であればランダムビット発生器の出力値に置き換える。すなわち、この方式では、エラーの極性により出現しやすい値とは逆のビット値が読み取られた場合には、そもそもエラーでは出現しにくい値が現れているので、読み取りエラーはないものとしてその値を信用するわけである。一方、エラーにより出現しやすい値が読み取られた場合には、その値は信用できないとしてランダムな値に置き換え、エラー訂正符号のエラー訂正能力による訂正にゆだねる。このような処理により、エラーが発生しやすいビット位置で誤りが発生する割合を減少することができ、エラー訂正の効率よく働かせることができる。また、エラーが発生しやすいビット位置が分かっている場合、消失誤り回復と呼ばれる手法を用いることによりエラー訂正を強化することが出来るので、正しいデータを復元できる可能性を高めることが出来る。
【００７３】
なお、図８の方式では、付加情報Ｙにはエラー訂正符号が含まれるため、同じビット数では表現できる情報量が少なくなる。例えば、６４ビットの付加情報Ｙが表現できる情報量は、数ビットからせいぜい２０ビットほどになってしまう。このようなデータの効率の面での不利はあるものの、この方式は、図６及び図７のように付加情報のビット列自体を変更してしまうことがないため、従来方式との互換性が高い。すなわち、本実施形態の手法に準拠していない従来のデコーダでも、読み取りエラーの影響はあるものの、いちおうの復号が可能である、という利点がある。
【００７４】
以上の例では、特許文献１と同じ埋め込み対象画像の空間内で付加情報を埋め込む場合を例に取ったが、周波数空間内で埋め込みを行う場合も同様でよい。すなわちこの場合、埋め込み対象画像を周波数成分に変換し、その各周波数成分の値に付加情報のビットを埋め込んでいくことになる。ここで、エラーマップ生成部１４は、この周波数成分に対してランダムビット列を埋め込んで逆変換することで電子透かし画像を生成し、これをデコードして読み取りエラーのあったビット位置を求める。これを繰り返し行うことで、統計的に読み取りエラーの発生しやすいビット位置を求め、これをエラーマップ情報として用いることで、上述の例と同様の処理が実現できる。
【００７５】
また、以上の例では、エラーマップ情報として、読み取りエラーが発生しやすいビット位置のマップを用いたが、この逆に読み取りエラーが発生しにくいビット位置のマップを作り、このようなビット位置にのみ付加情報のビットを割り当てるようにするようにしてももちろんよい。
【００７６】
また以上の例では、エラーマップ情報を生成するに当たりテスト用付加情報として、ランダムに生成したビット列を用いたが、これも一例である。例えば、埋め込み対象画像に対して埋め込まれる可能性のある付加情報があらかじめ定まっており、その数があまり多くない場合などには、それら付加情報自体をテスト用データとしてエラーマップを生成するようにしてももちろんよい。
【００７７】
また、以上の例では、エラーマップ情報を情報埋め込み側装置１０からネットワーク上のエラー情報管理装置２０に登録し、これを情報読み取り側装置３０が取得して利用する方式を採ったが、これも一例に過ぎない。埋め込み側から読み取り側へのエラーマップ情報の伝達は、例えば電子メールなどの通信手段によって行ってもよいし、コンピュータ読み取り可能な可搬型の記録媒体に記録し送付することにより行ってもよい。また、エラーマップ情報そのものを埋め込み対象画像に埋め込んだり、或いは可視情報として情報埋め込み済み画像１００に組み込んだりしてもよい。
【図面の簡単な説明】
【００７８】
【図１】画像へのデータの埋め込み方式の一例を示す図である。
【図２】本発明に係る電子透かしシステムのシステム構成図である。
【図３】エラーマップ生成部の内部構成を示す機能ブロック図である。
【図４】エラーマップ生成部の処理手順を示すフローチャートである。
【図５】図４の処理で生成されるビット列エラーマップの具体例を示す図である。
【図６】エラーマップ情報を利用した付加情報埋め込み処理の一例を説明するための図である。
【図７】エラーマップ情報を利用した付加情報埋め込み処理の別の例を説明するための図である。
【図８】付加情報埋め込み処理の別の例を説明するための図である。
【図９】エラーの極性の情報も含んだエラーマップ情報のデータ内容の一例を示す図である。
【図１０】各符号を表すパターン画像の例を示す図である。
【符号の説明】
【００７９】
１０  情報埋め込み側装置、１２  エンコーダ、１４  エラーマップ生成部、１６  画像出力部、２０  エラー情報管理装置、３０  情報読み取り側装置、３２  画像入力部、３４  デコーダ。
【図１】
2006186509.tif 000003
【図２】
2006186509.tif 000004
【図３】
2006186509.tif 000005
【図４】
2006186509.tif 000006
【図５】
2006186509.tif 000007
【図６】
2006186509.tif 000008
【図７】
2006186509.tif 000009
【図８】
2006186509.tif 000010
【図９】
2006186509.tif 000011
【図１０】
2006186509.tif 000012