(57)【特許請求の範囲】
【請求項１】
画像処理装置であって、
付加情報が多重化された画像が複数の撮影条件で撮影されることによりそれぞれの画像データを取得する取得手段と、
前記複数の撮影条件それぞれの画像データから多重化された付加情報を抽出する抽出手段と、
前記複数の撮影条件それぞれの画像データから抽出された付加情報を評価する評価手段と、
前記評価手段による評価に基づいて、採用可能と判定された付加情報を採用する採用手段と、
前記採用手段により採用可能と判定されない付加情報が存在する場合、前記それぞれの画像データにおいて採用可能と判定されない付加情報が多重化されている領域に基づいて前記画像処理装置の移動方向と移動量を決定する決定手段と、
前記決定された移動方向と移動量に基づくメッセージを通知する通知手段とを有することを特徴とする画像処理装置。
【請求項２】
前記抽出手段は、前記画像を構成する複数の領域から、該領域に多重化された付加情報を抽出し、
前記評価手段は、前記領域ごとに前記付加情報を評価し、前記採用手段は、前記評価手段による評価に基づいて、前記複数の領域それぞれから抽出された閾値を超える評価の前記付加情報を採用することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記採用手段は、第１撮影条件で前記画像を撮影することで取得された第１画像データの第１領域の第１付加情報に対する評価値が閾値を超えており、かつ、前記第１撮影条件とは異なる第２撮影条件で前記画像を撮影することで取得された第２画像データの前記第１領域の第２付加情報に対する評価値が閾値を超えている場合、前記第１付加情報と前記第２付加情報の中でより高い評価値の付加情報を採用することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記複数の撮影条件を設定する設定手段を更に有することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記評価手段は、前記付加情報に追加された誤り検出符号に基づいて前記付加情報が正し抽出されたか判定することを特徴とする請求項１乃至４のいずれか一項に記載の画像処理装置。
【請求項６】
前記付加情報は、前記画像を構成するブロックごとに、多重化する情報に応じた閾値マトリクスを用いて量子化を行うことで前記情報が多重化されており、
前記抽出手段は、前記ブロックごとの画素値の分布と前記閾値マトリクスとの相関を判定して前記閾値マトリクスに対応する情報を抽出し、
前記評価手段は、前記抽出手段による情報の抽出の確度が高いほど高い評価とすることを特徴とする請求項１乃至５のいずれか一項に記載の画像処理装置。
【請求項７】
前記撮影条件には、前記画像処理装置の撮影手段の有する光学系の焦点位置と、撮影用のライトのオンまたはオフの設定との少なくとも一方を含むことを特徴とする請求項１乃至６のいずれか一項に記載の画像処理装置。
【請求項８】
前記取得手段は、前記複数の撮影条件を切り替えながら撮影された前記画像の画像データを取得することを特徴とする請求項１乃至７のいずれか一項に記載の画像処理装置。
【請求項９】
前記評価手段は、前記画像データとは異なる情報を用いて前記付加情報を評価することを特徴とする請求項１乃至８のいずれか一項に記載の画像処理装置。
【請求項１０】
前記画像処理装置の移動前に画像を撮影することで得られた移動前の画像データと、前記画像処理装置の移動後に画像を撮影することで得られた移動後の画像データとにおいて一致する部分を判定し、移動前の画像データと移動後の画像データの対応関係を特定する特定手段を更に有し、
前記採用手段は、移動前の画像データから取得された付加情報と、前記移動後の画像データから前記特定手段の特定結果に基づいて取得された付加情報を採用することを特徴とする請求項１乃至９のいずれか１項に記載の画像処理装置。
【請求項１１】
付加情報が多重化された画像が複数の撮影条件で撮影されることによりそれぞれの画像データを取得する取得手段と、
前記複数の撮影条件それぞれの画像データから多重化された付加情報を抽出する抽出手段と、
前記複数の撮影条件それぞれの画像データから抽出された付加情報を評価する評価手段と、
前記評価手段による評価に基づいて、採用可能と判定された付加情報を採用する採用手段と
を有し、
前記複数の撮影条件は、撮影用のライトがオン状態である第１撮影条件と、撮影用のライトがオフ状態である第２撮影条件とが含まれることを特徴とする画像処理装置。
【請求項１２】
請求項１乃至１１のいずれか一項に記載の画像処理装置としてコンピュータを機能させるためのプログラム。
【請求項１３】
画像処理装置の制御方法であって、
付加情報が多重化された画像が複数の撮影条件で撮影されることによりそれぞれの画像データを取得する取得工程と、
前記複数の撮影条件それぞれの画像データから多重化された付加情報を抽出する抽出工程と、
前記複数の撮影条件それぞれの画像データから抽出された付加情報を評価する評価工程と、
前記評価に基づいて、採用可能と判定された付加情報を採用する採用工程と、
前記採用工程により採用可能と判定されない付加情報が存在する場合、前記それぞれの画像データにおいて採用可能と判定されていない付加情報が多重化されている領域に基づいて前記画像処理装置の移動方向と移動量を決定する決定工程と、
前記決定された移動方向と移動量に基づくメッセージを通知する通知工程とを有することを特徴とする画像処理装置の制御方法。
【請求項１４】
付加情報が多重化された画像が複数の撮影条件で撮影されることによりそれぞれの画像データを取得する取得工程と、
前記複数の撮影条件それぞれの画像データから多重化された付加情報を抽出する抽出工程と、
前記複数の撮影条件それぞれの画像データから抽出された付加情報を評価する評価工程と、
前記評価工程による評価に基づいて、採用可能と判定された付加情報を採用する採用工程と
を有し、
前記複数の撮影条件は、撮影用のライトがオン状態である第１撮影条件と、撮影用のライトがオフ状態である第２撮影条件とが含まれることを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理方法に関する。特に、画像情報中に、該画像情報とは別の情報、例えば音声情報やテキスト文書情報、画像に関する諸情報など全く別の画像情報を付加情報として、視覚的に目立たぬように埋め込まれた印字物から、該付加情報を撮像媒体で読み出す画像処理に関する。
【背景技術】
【０００２】
近年では、付加情報を多重化した印刷物を携帯端末で複数回撮影する。そして、その複数枚の撮影画像の解析結果をマージすることにより携帯端末の手ぶれ等のランダムノイズの影響を抑え、最終的に印刷物の付加情報を正確に取得することが可能になりつつある（例えば特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−５００４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の手法では、手ぶれ等のランダムノイズは撮影画像毎にランダムに異なる場所に存在するため、複数枚の撮影画像の解析結果をマージすることにより、ランダムノイズの影響を抑えることは出来た。例えば、複数枚のいずれか一つからでも多重化された付加情報の一部を取得できれば、複数枚の画像から逆多重化して得た付加情報をマージして、付加情報全体を得ることができる。しかしながら、携帯端末のライトの写りこみやレンズ収差等に起因する定常的なノイズは撮影画像毎に場所が変わることなく存在し続ける。そのため、従来の複数枚の撮影画像のマージだけでは、結局マージ後の画像にも同じ位置にノイズが発生することになるため、ユーザの意図しない付加情報が取得されるおそれがあった。
【０００５】
本発明は上記課題に鑑みてなされたもので、定常的ノイズを考慮した画像処理装置、画像処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の画像処理装置は、画像処理装置であって、
付加情報が多重化された画像が複数の撮影条件で撮影されることによりそれぞれの画像データを取得する取得手段と、
前記複数の撮影条件それぞれの画像データから多重化された付加情報を抽出する抽出手段と、
前記複数の撮影条件それぞれの画像データから抽出された付加情報を評価する評価手段と、
前記評価手段による評価に基づいて、採用可能と判定された付加情報を採用する採用手段と、
前記採用手段により採用可能と判定されない付加情報が存在する場合、前記それぞれの画像データにおいて採用可能と判定されない付加情報が多重化されている領域に基づいて前記画像処理装置の移動方向と移動量を決定する決定手段と、
前記決定された移動方向と移動量に基づくメッセージを通知する通知手段とを有する。
【発明の効果】
【０００７】
本発明によれば、複数枚画像の解析結果をマージすることにより、正確な付加情報の取得ができる技術を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】実施形態の付加情報多重化装置と付加情報分離装置の全体外観図である。
【図２】図１の付加情報多重化装置を示す要部ブロック図である。
【図３】量子化手段の詳細を示すブロック図である。
【図４】印字物作成の動作手順を示すフローチャートである。
【図５】紙面上の電子透かし重畳領域を説明した図である。
【図６】量子化閾値の変化の周期を説明した図である。
【図７】付加情報多重化装置を示す要部ブロック図である。
【図８】撮影された画像内での画像の傾きの説明する図である。
【図９】空間フィルタの例を示す図である。
【図１０】周波数領域を説明した図である。
【図１１】電子透かし復号の動作手順を示すフローチャートである。
【図１２】画素特定方法の例を示す図である。
【図１３】画素特定方法の例を示す図である。
【図１４】カメラの撮影による定常的ノイズの例を示す図である。
【図１５】定常的ノイズを抑えることを示すフローチャートである。
【図１６】撮影条件を設定することにより、定常的ノイズを抑える具体例を示す図である。
【図１７】定常的ノイズを抑えることを示すフローチャートである。
【図１８】定常的ノイズを抑える具体例を示す図である。
【図１９】定常的ノイズを抑えることを示すフローチャートである。
【図２０】定常的ノイズを抑える具体例を示す図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して本発明に係る好適な実施形態を詳細に説明する。尚、実施形態における画像処理システムは、付加情報を印字物に埋め込む付加情報多重化装置１０２と、プリンタ１０３、該付加情報を印字物から読み取る付加情報分離装置を含むカメラ付携帯端末１０４で構成される。なお、本実施形態では、こうした撮像デバイスをカメラ付携帯端末と呼ぶ。なお実施形態等では用語「印字」あるいは「印字物」を用いているが、印刷されたオブジェクトが文字のみとは限らない。写真や線画などの他のオブジェクトも含めて「印字」あるいは「印字物」と称しており、それぞれを「印刷」や「印刷物」あるいは「出力」や「出力物」と言い替えることもできる。
【００１０】
（第１の実施形態）
図１は、第１の実施形態の画像処理システムの構成を示すブロック図である。入力端子１００からは多階調の画像情報が、入力端子１０１からは、画像情報の中に埋め込むべき付加情報が入力される。この付加情報は、画像情報とは別の情報であり、例えば音声情報や動画情報、テキスト文書情報などが挙げられる。付加情報多重化装置１０２は、視覚的に判別しづらいように、画像情報中に付加情報を埋め込む。この付加情報多重化装置１０２は、付加情報の多重化とともに、入力した多階調の画像情報の量子化も実行する。
プリンタ１０３は、付加情報多重化装置１０２で作成された情報をプリンタエンジンにて媒体上に可視化し、印字物として出力する。プリンタ１０３は、インクジェットプリンタ、レーザープリンタ等、疑似階調処理を用いることにより階調表現を実現するプリンタを想定する。
【００１１】
出力された印字物上の画像は、カメラ付携帯端末１０４の撮像センサ１０５を用いて読みとり、付加情報分離装置１０６によって、印字物に印刷された画像中に埋め込まれた付加情報（多重化データ）を分離し、出力端子１０７に出力する。この出力端子１０７は、取得した付加情報を出力するインターフェイスであり、例えば音声情報であればスピーカー１０８への出力となり、画像情報であればディスプレイ１０９への出力となる。また、出力端子１０７は外部デバイスへデータを出力するインターフェイスでも構わない。また、カメラ付携帯端末１０４に複数の撮像センサがある場合、印字物の撮影は第二撮像センサ１１１で行ってもよい。またカメラ付携帯端末１０４は制御部１２０を有する。制御部１２０は、たとえばカメラの光学系の焦点位置や撮影用のライトなどをユーザの操作に従って、あるいは予め与えられた設定に従って調整する。
【００１２】
＜付加情報多重化装置１０２の構成＞
図２は、図１の付加情報多重化装置１０２の構成を示すブロック図である。
誤差拡散部２００は、入力端子１００より入力された画像情報を、誤差拡散法を用いた疑似階調処理することによって、入力階調数よりも少ない量子化レベルに変換し、複数画素の量子化値によって面積的に階調性を表現する。誤差拡散処理についての詳細は後述する。
ブロック化部２０１は、入力された画像情報を所定領域単位に区分する。量子化条件制御部２０２は、ブロック化部２０１にてブロック化した領域単位で量子化条件を変更し、制御する。量子化条件制御部２０２は、入力端子１０１から入力された付加情報に基づき、ブロック単位で量子化条件を制御する。量子化条件制御部２０２により制御され、出力される量子化条件には例えば量子化閾値を含む。２値化の場合には量子化閾値は１つであるが、多値化の場合には、量子化後の階調数に応じた数の閾値が出力される。また、階調数を量子化条件に含めてもよい。
制御部２１０は、ＣＰＵ２１１、ＲＯＭ２１２、ＲＡＭ２１３などを含む。ＣＰＵ２１１は、ＲＯＭ２１２に保持された制御プログラムを実行して、上述した各構成たとえば誤差拡散部２００、量子化条件制御部２０２の動作、及び処理を制御する。ＲＡＭ２１３は、ＣＰＵ２１１の作業領域として使用される。また上述したブロックは制御部２１０により制御されるハードウエアであってもよいが、制御部２１０によるプログラムの実行で実現される論理的な機能ブロックであってもよい。
【００１３】
＜誤差拡散部２００の構成＞
図３は、誤差拡散部２００の詳細を表すブロック図である。本実施形態では、量子化値が２値である誤差拡散処理を例にして説明する。
加算器３００は、入力された画像情報の注目画素値と既に２値化された周辺画素の分配された量子化誤差とを加算する。量子化条件制御部２０２からの量子化閾値と、加算器３００によって誤差が加算された画素値とを比較部３０１にて比較し、量子化閾値よりも大きい場合には"１"を、それ以外では"０"を出力する。例えば、８ビットの精度で画素の階調を表現する場合には、最大値である"２５５"と最小値である"０"で表現するのが一般的である。
量子化値が"１"（すなわち２５５）の時に、紙上にドット（インク、トナー等）が印字されると仮定する。減算器３０２は、量子化結果と、前述した注目画素値と分配された誤差との加算結果との誤差すなわち量子化誤差を算出し、誤差配分演算部３０３に基づいて、今後の量子化処理が施される周辺画素に誤差を配分する。誤差の配分割合は注目画素とその周辺画素との相対的な距離に基づいて実験的に設定された誤差の配分テーブル３０４を予め所有している。誤差配分演算部３０３は、配分テーブル３０４に記された配分割合に基づいて、減算器３０２により得られた量子化誤差を分配する。図３の配分テーブル３０４は、注目画素の周囲８画素のうち、量子化されていない４画素分の配分テーブルを示しているが、これに限るものではない。
【００１４】
＜量子化条件制御部および誤差拡散部による処理手順＞
次に量子化条件制御部２０２を含む全体の動作手順について、図４のフローチャートを基に説明する。いま、量子化値は２値である例について述べる。なお、図４のフローチャートは、ＣＰＵ２１１が、フローチャートに関するプログラムを読み出して実行することで実現される。
Ｓ４０１では、制御部２１０が変数iの初期化を行う。変数iは処理対象の画素すなわち注目画素の垂直方向のアドレスをカウントする変数である。
Ｓ４０２では、制御部２１０が変数jの初期化を行う。変数jは注目画素の水平方向のアドレスをカウントする変数である。
続いてＳ４０３は、制御部２１０が、現在の注目画素のアドレスである座標（i、j）が、多重化処理を実行すべき領域に属しているか否かを判定している。
【００１５】
図５を基に多重化領域について説明する。図５は、水平画素数がWIDTH、垂直画素数がHEIGHTから成る、ひとつの画像を示している。画像の左上を原点とし、横Ｎ画素、縦Ｍ画素のブロックで画像をブロック化する。本実施形態では、原点を基準点としてブロック化を行うが、原点から離れた点を基準点として設定しても良い。この画像中に最大限の情報を多重化する場合に、Ｎ×Ｍのブロックを基準点から配置していく。すなわち、水平方向に配置可能なブロック数をＷ、垂直方向に配置可能なブロック数をＨとすると、以下の関係になる。
W = INT(WIDTH / N) ...式１
H = INT(HEIGHT / M) ...式２
但し、INT( )は( )内の値の整数部分を示す。
式１、式２において割り切れない剰余画素数が、Ｎ×Ｍのブロックを画像中に複数配置した時の端部に相当し、付加情報を多重化する領域の外、すなわち符号多重化領域外となる。図４のＳ４０３においては、注目画素が、原点を基準にして水平方向にＷ x Ｎ、垂直方向にＨ ｘ Ｍの矩形領域内にあれば符号多重化領域内と判定され、そうでなければ符号多重化領域外と判定される。ここでＮ，Ｍはブロック化部２０１によるブロックのサイズであり、ＷＩＤＴＨ，ＨＥＩＧＨＴは処理対象の画像データ（すなわち付加情報が多重化された画像データ）のサイズである。
【００１６】
Ｓ４０３にて、現在処理している注目画素が多重化領域外と判定された場合には、制御部２１０はＳ４０４にて量子化条件Ｃを設定する。一方、現在処理している注目画素が多重化領域内と判定された場合には、制御部２１０は多重化すべき付加情報をＳ４０５で読み込む。説明を容易にする為に、付加情報をcode[ ]という配列を用いて、各１ビットずつ表現するものとする。例えば付加情報を４８ビット分の情報と仮定すると、配列code[ ]はcode[0]からcode[47]まで、各１ビットずつが格納されていることになる。Ｓ４０５において、変数bitに、以下のように配列code[ ]内の情報を代入する。
bit = code[INT(i / M)×W + INT(j / N)] ...式３
ここで式３の右辺のインデックスは、ブロックをラスタ順に配置したときの順番を示している。式３により、処理対象の画像データの各ブロックに付加情報の各ビットが対応付けられる。このことから、付加情報codeのビット数は、Ｗ×Ｈ以下であり、望ましくはＷ×Ｈと等しい。例えば図５ではブロック数は４×６＝２４であるが、codeが４８ビットであるなら、例えば８×６＝４８ブロックにブロック化することが望ましい。
【００１７】
続いて、制御部２１０は、Ｓ４０６にて、Ｓ４０５で代入した変数bitが"１"か否かを判定する。前述したように、配列code[ ]内の情報は配列要素ごとに１ビットずつ格納されている為、変数bitの値も"０"か"１"かの何れかを示すことになる。
制御部２１０は、Ｓ４０６にて"０"と判定した場合には、Ｓ４０７にて量子化条件Ａを設定し、"１"と判定した場合には、Ｓ４０８にて量子化条件Ｂを設定する。
続いてＳ４０９では、設定した量子化条件に基づいて制御部２１０が量子化処理を行う。なお、誤差拡散部２００が、Ｓ４０９の処理を行ってもよい。この量子化処理は、図３にて説明している誤差拡散法に相当する。
続いて、Ｓ４１０では水平方向変数jを１カウントアップし、Ｓ４１１にて制御部２１０は、カウントアップされた後の注目画素が画像の水平画素数であるWIDTH未満か否かを判定し、処理画素数がWIDTHになるまで前述の処理を繰り返す。また、水平方向の処理がWIDTH画素数分終了すると、Ｓ４１２にて垂直方向変数iを１カウントアップする。そして、Ｓ４１３にて制御部２１０は、カウントアップされた後の注目画素が画像の垂直画素数であるHEIGHT未満か否かを判定し、処理画素数がHEIGHTになるまで前述の処理を繰り返す。
以上の動作手順により、Ｎ×Ｍ画素よりなるブロック単位で、付加情報に応じて量子化条件を変更することが可能になる。
【００１８】
＜量子化条件＞
続いて、量子化条件Ａ、Ｂ、Ｃの例について説明する。誤差拡散法における量子化条件は様々な因子があるが、第１の実施形態では、量子化条件は量子化閾値とする。量子化条件Ｃが選択される場合は、注目画素は多重化領域外である為に、量子化閾値は何でも良い。前述したように、１画素が８ビットによる階調表現で、量子化レベルが２値の場合には、最大値である"２５５"、及び、最小値である"０"が量子化代表値となるが、その中間値となる"１２８"を量子化閾値として設定することが多い。すなわち、量子化条件Ｃでは、量子化閾値を"１２８"固定とする条件にする。量子化条件Ａ、量子化条件Ｂを使用する場合は、注目画素が多重化領域内のブロックに属する為、量子化条件の違いによる画質の違いを生じさせなければならない。但し、画質の違いは視覚的には判別しにくいように表現し、かつ、紙上から容易に識別できなくてはならない。
【００１９】
図６は、量子化条件Ａ、Ｂを表した例である。図６（ａ）は、量子化条件Ａにおける量子化閾値の変化の周期を示した図である。図中、ひとつのマスを１画素とし、白いマスは固定閾値、灰色のマスを変動閾値とする。すなわち、図６（ａ）の例では、横８画素、縦４画素のマトリクスを組み、灰色のマスの閾値のみ突出した値を閾値として設定する。図６（ｂ）は、同様に、量子化条件Ｂにおける量子化閾値の変化の周期を示した図である。図６（ｂ）の例では、図６（ａ）とは異なり、横４画素、縦８画素のマトリクスを組み、灰色のマスの閾値のみ突出した値を閾値として設定する。
【００２０】
いま、前述したように１画素が８ビットの階調値で表される場合に、一例として、固定閾値として"１２８"、突出した閾値を"１０"と設定する。量子化閾値が低くなると、注目画素の量子化値が"１"（量子化代表値"２５５"）になりやすくなる。すなわち、図６（ａ）、（ｂ）ともに、図中の灰色のマスの並びで量子化値"１"が並びやすくなる。言い換えると、Ｎ×Ｍ画素のブロック毎に、図６（ａ）の灰色のマスの並びでドットが発生するブロックと、図６（ｂ）の灰色のマスの並びでドットが発生するブロックとが混在することになる。
【００２１】
誤差拡散法における量子化閾値の多少の変更は、画質的には大きな影響を及ぼさない。組織的ディザ法においては、使用するディザパターンによって、階調表現の画質が大きく左右される。しかし、前述したような、規則的に量子化閾値の変化を与えた誤差拡散法では、あくまでも画質を決定する階調表現は誤差拡散法である。そのため、ドットの並びが多少変化したり、テクスチャの発生が変化したりしても、階調表現の画質にはほとんど影響を与えないことになる。それは、量子化閾値が変化した場合でも、あくまでも信号値と量子化値との差分となる誤差は周囲画素に拡散される為、入力された信号値はマクロ的に保存されるためである。すなわち、誤差拡散法におけるドットの並び、テクスチャの発生に関しては冗長性が非常に大きいことになる。カラー画像データの場合には、各カラーコンポーネントについて上記の手順で量子化を行えばよい。
【００２２】
ところで、上記説明では、誤差拡散法の量子化閾値に符号を表す所定の周期性を重畳することにより多重化を実現してきたが、以下の方式も考えられる。
・直接RGBの輝度情報に周期性を重畳する方式
・RGBの輝度情報を輝度‐色差情報（例えばYCrCb信号）に分離して周期性を多重化する方式
・RGBの輝度情報をインク色（例えばCMYK信号）に分離して周期性を多重化する方式
周期性の多重化は上述のように量子化閾値を用いてもよい。
【００２３】
＜付加情報分離装置の構成＞
次に、図１の画像処理システムにおける付加情報分離装置１０６について説明する。図７は、付加情報分離装置１０６の構成を示すブロック図である。説明を容易にする為に、前述した付加情報多重化装置１０２の例と同様、分割したブロック内に各１ビットずつの付加情報が多重化されている印字物から分離する例について説明する。当然、多重化装置における１ブロックあたりの付加情報量と、分離装置における１ブロックあたりの分離情報量は等しくなる。
入力端子７００には、カメラ付携帯端末１０４で読み込まれた画像情報が入力される。使用するカメラ付携帯端末１０４の撮像センサの解像度は、印字物を作成するプリンタ解像度と同等以上が好ましい。当然、正確に印字物のドットの点在情報を読み込む為には、サンプリング定理により、撮像センサ側はプリンタ側よりも２倍以上の解像度が必要になる。しかし、同等以上であれば、正確でなくとも、ある程度ドットが点在しているのを判別することは可能である。第１の実施形態では、説明を容易にするためにプリンタ解像度と撮像センサの解像度が同一解像度と想定する。
幾何学的ずれ検出部７０１は、カメラ付携帯端末１０４で撮影した画像の幾何学的ずれを検出する。処理対象の画像は、プリンタにおける出力処理、カメラ付携帯端末１０４における撮影処理を経ている為に、入力端子７００から入力される画像情報は、プリンタ出力以前の画像情報とは幾何学的に大きくずれている場合がある。そこで、幾何学的ずれ検出部７０１では、印字物と印字物以外との境界線をエッジ検出にて検出する。
【００２４】
図８は、入力端子７００から入力される撮影画像を示した図である。いま、プリンタ解像度と撮像センサ解像度とが同一解像度であれば、プリンタの紙上記録時の斜行、及び、カメラ付携帯端末１０４を印字物にかざす時のずれ等により、画像の回転方向（傾き）が補正すべき大きな要因となる。そのため、この印字物の境界線を検出することにより、どの程度回転方向でずれが生じているかが判断できる。このずれ量は、たとえば水平方向の所定の画素数に対して垂直方向にずれた画素数などで表すことができる。
【００２５】
ブロック化部７０２は、横方向にＰ画素、縦方向にＱ画素単位にブロック化をする。このブロックは、電子透かしの重畳時にブロック化したＮ×Ｍ画素よりも小さくなければならない。すなわち、
Ｐ≦Ｎ、かつ  Ｑ≦Ｍ  ...  式４
の関係が成り立つ。
また、Ｐ×Ｑ画素単位のブロック化は、一定間隔で行う。すなわち、多重化時のＮ×Ｍ画素よりなるブロックと想定される領域内に、Ｐ×Ｑ画素単位のブロックがひとつ内包するようにブロック化する。つまりブロックのピッチは、水平方向についてＮ画素、垂直方向についてＭ画素が基本となり、この場合、ブロック間の間隙は、水平方向にＮ−Ｐ画素、垂直方向にＭ−Ｑ画素となる。ただし、上述したように原画像とキャプチャ画像との間にはずれがあり、幾何学的ずれ検出部７０１により検出したずれ量を１ブロックあたりのずれ量に換算して、スキップ画素数に加算して補正する必要がある。たとえば或るＰ×Ｑブロックの右横のＰ×Ｑブロックを決定する際に、単に水平方向のピッチがＮ画素となるようにＰ×Ｑブロックを決めるのではなく、右方向にＮ画素移動した場合の垂直方向のずれを検出したずれ量から求める。そして、その画素数だけ垂直方向にずらした位置を基準としてＰ×Ｑブロックを確保する。
【００２６】
空間フィルタ７０３、７０４は、それぞれ特性の異なっており、フィルタリング部７０５は、周辺画素との積和を演算するディジタルフィルタリングを行う。この空間フィルタ７０３，７０４の各係数は、多重化時の量子化条件の変動閾値の周期に適応して作成する。いま、多重化装置１０２において、付加情報の値に応じて図６（ａ）、（ｂ）の２種の量子化閾値を用いることにより付加情報を画像データ多重化したとする。その時の分離装置１０６で使用する空間フィルタＡ７０３、空間フィルタＢ７０４の例を、図９（ａ）、（ｂ）に示す。図中、５×５画素の中央部が注目画素になり、それ以外の２４画素分が周辺画素になる。図中、空白部の画素は、フィルタ係数が"０"であることを表している。図から明らかな様に、図９（ａ）、（ｂ）はエッジ強調のフィルタになっている。しかも、その強調するエッジの方向性と多重化で用いた変動閾値の方向性（具体的には黒画素が並び易い方向性）とが一致している。つまり、図９（ａ）は図６（ａ）に、また、図９（ｂ）は図６（ｂ）に一致するように作成する。
【００２７】
画素特定部７０６、７０７は、Ｐ×Ｑ画素より成るブロック内のフィルタリング後の信号（以下、変換値と称す）を、ある規則性に基づいて画素位置の特定処理をする。第１の実施形態では、この特定する画素位置の規則性を周期性と位相とに分離して処理する。すなわち、画素特定部７０６、及び７０７では特定する画素位置の周期性が異なっていて、各々、位相を変化させた複数の画素位置特定処理を実行する。画素位置特定方法については後述する。
変換値加算部７０８は、画素特定部７０６、及び７０７にて特定した画素位置の変換値を、位相毎にそれぞれ加算する。この画素位置特定処理、及び、変換値の加算処理は、空間フィルタ７０３，７０４で強調した所定周波数ベクトルの電力を抽出することに相当する。周波数ベクトルとは、ここでは画像の水平方向と垂直方向それぞれの周波数成分の組であり、画像の二次元的な周波数特性を示す。
分散値算出部７０９は、位相毎に加算した複数の加算値の分散を、それぞれの周期性において算出する。
判定部７１０は、それぞれの周期性における分散値に基づいて、多重化された符号を判定する。
【００２８】
図１０は、二次元の周波数領域で第１の実施形態の概略を示した図である。横軸は水平方向の周波数、縦軸は垂直方向の周波数を示している。中心となる原点は直流成分を示し、原点から遠ざかるにつれて、高周波域となる。図中の円は、誤差拡散によるカットオフ周波数を示している。誤差拡散法のフィルタ特性は、低周波域がカットオフされたＨＰＦ（ハイパスフィルタ）の特性を示し、そのカットオフされる周波数は、対象画像の濃度に応じて変化する。今回、量子化閾値の変更により、量子化後に発生する周波数特性が変化するが、図６（ａ）に示した量子化閾値を用いて量子化された画像では、図１０の直線Ａ上の周波数ベクトルに、また、図６（ｂ）に示した量子化閾値を用いて量子化された画像では、図１０の直線Ｂ上の周波数ベクトルに大きなパワースペクトルが生じる。すなわち、図６（ａ）の閾値マトリクスの白い部分を１２８、黒い部分を１０とすると、黒い部分が黒画素となり易くなる。そのため、この閾値マトリクスを用いて量子化した画像では、垂直方向に４画素の整数倍の周期の、水平方向に８画素の整数倍の周期の成分すなわちその逆数の周波数特性が現れやすいと考えられる。つまり図６（ａ）の閾値マトリクスを用いて量子化した画像からは、垂直方向の周波数が水平方向の周波数のほぼ倍となる周波数ベクトルのパワースペクトルが検出される。図６（ｂ）では、水平方向と垂直方向とが図６（ａ）の場合と入れ替わることとなる。付加情報の分離時には、この大きなパワースペクトルが発生する周波数ベクトルを検出することが多重化信号の判定につながる。そこで、各々の周波数ベクトルを個別に強調、抽出することが必要になる。
【００２９】
図９（ａ）、（ｂ）は、特定の周波数ベクトルの方向性を有するＨＰＦに相当する。すなわち、図９（ａ）の空間フィルタでは、直線Ａ上の周波数ベクトルを強調することが可能になり、また、図９（ｂ）の空間フィルタでは、直線Ｂ上の周波数ベクトルを強調することが可能になる。例えば、図６（ａ）による量子化条件の適用により、図１０の直線Ａの周波数ベクトル上に大きなパワースペクトルが発生したと仮定する。その時に、図９（ａ）の空間フィルタでは直線Ａ上のパワースペクトルが増幅されるが、図９（ｂ）の空間フィルタでは、ほとんど増幅されない。すなわち、複数の空間フィルタを並列にフィルタリングした場合には、周波数ベクトルが一致した空間フィルタ時のみ増幅し、それ以外のフィルタでは増幅がほとんど無い為、いかなる周波数ベクトル上に大きなパワースペクトルが発生しているかが容易にわかる。
【００３０】
＜付加情報分離装置１０６による処理手順＞
図１１は、図７の画素特定部７０６、及び画素特定部７０７、変換値加算部７０８、分散値算出部７０９、判定部７１０の動作手順を示すフローチャートである。図１１の手順は、図１１に示した各構成要素で実行される。具体的には、Ｓ１１０３を画素特定部で、Ｓ１１０４を変換値加算部で、Ｓ１１０７を分散値部で、Ｓ１１１０，Ｓ１１１１を判定部７１０で実行する。その間にあるパラメータの設定処理や判定処理は例えば不図示の制御部などで行ってもよい。また、図１１で言及する周期性No.の値は画素特定部から分散値部に至る処理ブロックのシーケンスに対応しており、図７では周期性No.の数は０，１の２つである。すなわち図１１では周期性No.iの値を変えて直列的に処理されているが、図７のようにハードウエアで実現する場合には、異なる周期性No.に対応する処理は並列に実行される。このため図７の構成で図１１の手順を実行する際には、パラメータｉに関するＳ１１０８及びＳ１１０９は行われない。なお図１１の処理は、不図示のＣＰＵ等のプロセッサーあるいは制御部により図１１の手順全体を実現するためのプログラムを実行することで行われてもよい。以下の説明では、付加情報分離装置１０６が動作の主体であるとする。
【００３１】
図１１中、Ｓ１１０１、及びＳ１１０２では、変数の初期化を行い、本フローで用いる変数i、jの値を０に初期化する。
Ｓ１１０３では、画素特定部７０６、７０７による特定する画素位置の規則性の因子、すなわち、"周期性"及び"位相"の２因子を決定する工程である。本フローでは、周期性に関する変数をi、位相に関する変数をjとする。
この周期性及び位相の条件は、番号（ナンバー）により管理されていて、いま、周期性ナンバー（以下No.と略す）がi、位相No.がjである画素位置特定方法の因子を設定する。この例については図１２、図１３を参照して説明する。この因子により処理対象の変換値の画像データ中における位置が特定される。なおｉ，ｊはそれぞれ周期性と位相とを示すインデックスであるが、以下では周期性ｉ、位相ｊと呼ぶこともある。
続いてＳ１１０４は、ブロック内で特定された位置の変換値を加算する工程である。加算した加算値を変数の配列TOTAL[i][j]として記憶する。パラメータｉ，ｊに応じて通常は複数の画素（変換値）が特定されるため、Ｓ１１０４では特定された位置の変換値の合計値を求めてTOTAL[i][j]に記憶する。
Ｓ１１０５にて変数jをカウントアップして、Ｓ１１０６にて固定値Jと比較する。Jは、位相を変化させて画素位置特定処理をする所定の回数が格納されている。もし、変数jがJ未満であればＳ１１０３に戻り、カウントアップ後のjによる新たな位相No.により、画素位置特定処理、及び、特定された位置の画素（すなわち変換値）の加算処理が繰り返される。インデックスｊの値が異なれば、特定される画素の位置も異なる。
【００３２】
位相をずらした画素位置特定処理、及び加算処理が設定回数終了した場合には、Ｓ１１０７にて、加算結果TOTAL[i][j]の分散値Ｂ[i]を算出する。すなわち、各加算結果が、位相の差により、どの程度ばらついているかを評価する。ここでは、iを固定して、インデックスｊについて０からＪ−１までのJ個のTOTAL[i][j]の分散値を求める。分散値はB[i]とおく。
【００３３】
Ｓ１１０８にて変数iをカウントアップして、Ｓ１１０９にて固定値Iと比較する。Iは、周期性を変化させて画素位置特定処理をする回数が格納されている。もし、変数iがI未満であればＳ１１０２に戻り、カウントアップ後のiによる新たな周期性No.の条件を用いて、再び、画素位置特定処理、及び、変換値の加算処理及び分散の算出が繰り返される。分散値は、特定の位相インデックスに対応する画素への値"１"（あるいは２５５等の画素の最大値）の平均値からのばらつきを示しており、ばらつきが小さいほど値は小さく、ばらついているほど値は大きくなる。
Ｓ１１０９にてiが設定回数終了したと判断されると、分散値B[i]はI個算出できたことになる。Ｓ１１１０にて、I個の分散値の集合から分散値の最大値を検出し、その時のiの値を変数imaxに代入する。
【００３４】
Ｓ１１１１では、符号の判定の工程であり、周期性No.がimaxである符号を多重化された符号であると判定して終了する。ただし、ブロック内の画像に対するフィルタ処理によってパワースペクトルが表れない場合には、現在行っている復号処理は、多重化方法に対応した復号処理ではなく、復号は失敗したものと判定して処理を終了するのが望ましい。逆にパワースペクトルが表れるなら復号は成功したと判断できる。この判定は例えばＢ[imax]が所定の条件を満たしていないことを判定して実現できる。所定の条件としては例えばＢ[imax]が所定の閾値以上であることを採用できるが、分散Ｂは正規化された値ではなく、固定的な閾値が適当ではない場合もある。そこで、Ｓ１１１１では、たとえば考え得る最大の分散値Ｂmaxを求め、Ｂ[imax]／Ｂmaxを所定の閾値と比較して、閾値より小さければ復号は失敗したものと判定して処理を終了する。また一つのブロックで判断せず、所定数の連続したブロックで前記条件を満たさない場合に、復号が失敗したものと判定してもよい。なお分散値Ｂmaxはたとえば以下の手順で求めることができよう。すなわち、特定の位相No.に対応する位置の画素値（変換値）を"１"（あるいは２５５など、画素値の最大値）に、他の画素値を０とした画像について、図１１の手順で分散を求め、その値をＢmaxとする。そして、その値を量子化閾値マトリクスごとに関連づけて格納し、用意しておく。このようにすることでＢ[imax]／Ｂmaxは０と１との間の値をとるよう正規化され、固定的な閾値と比較することができる。なおこの閾値は実験的に決定しておけばよい。
【００３５】
いま、I＝２、J＝４の例を示す。図１２、図１３は、ブロックサイズをＰ＝Ｑ＝１６とした時の画素位置の特定方法をテーブル形式にて示している。図中、ブロック内のひとマスが１画素に相当する。図ではブロック形状をＰ＝Ｑの正方としているが、正方には限らないし、矩形以外でも良い。
【００３６】
図１２は、周期性No. = 0のときの画素位置特定方法（図７の画素特定部Ａ７０６に相当）、図１３は、周期性No. = １のときの画素位置特定方法（図７の画素特定部Ｂ７０７に相当）を示している。図中、ブロック内の各画素に示している値は、位相No. jに対応する画素を示している。パラメータｊは位相を示しているが、周期性と位相とにより画素ブロック中の画素位置が特定されることから、図１１、図１２では、特定される位置の画素に位相No.ｊの値をマークして示した。例えば"０"と表示している画素は、j= 0のときに特定される位置の画素に対応する。すなわち、図１２、図１３ともに、位相は４種であり、位相No.jが０〜３の時の画素の特定方法に相当する。すなわち、周期性No.の値に応じて図１２や図１３に示したマトリクスが特定され、特定されたマトリクスにおける画素の位置が位相No.の値に応じて特定される。
【００３７】
図１２、図１３に示した、同じ位相インデックス（位相No.）に対応する画素位置の周期性は、図６（ａ）の周期性と、図６（ｂ）の周期性とにそれぞれ一致している。前述したように、図６（ａ）、（ｂ）ともに図中の灰色のマスの並びで量子化値"１"（但し、"０"、"１"の２値の場合）が並びやすくなる。その為、例えば、多重化時に量子化条件Ａであったブロックの場合には、図６（ａ）の周期性で量子化値"１"が並びやすくなり、その周期性に適合した空間フィルタによりフィルタリングすると更にその周波数成分が増幅される。そのため、特定の位相インデックスに対応する位置の画素に量子化値"１"が集中し、図１２の周期性で変換値を特定して加算すると、その加算結果の分散は大きくなる。
【００３８】
それに比べて、量子化条件Ａであったブロックを、適合しない空間フィルタを用いてフィルタリングし、なおかつ、図１３の周期性により画素位置を特定した場合には、変換値の加算結果の分散値は小さくなる。すなわち、量子化値の周期性と特定される画素位置の周期性とが異なる為、特定する画素位置の位相の違いによる変換値の加算値は平均的になり、ばらつきは小さくなる。反対に、多重化時に量子化条件Ｂであったブロックでは、図１２では、分散値は小さくなり、図１３では分散値は大きくなる。
【００３９】
図４に示したフローチャートの例を当てはめると、bit = ０を量子化条件Ａ、bit = １を量子化条件Ｂに設定している。その為、周期性No. = ０の分散値が大きいとき（すなわちｉｍａｘ＝０のとき）にはbit = ０、逆に周期性No. = １の分散値が大きいとき（すなわちｉｍａｘ＝１のとき）には bit = １と判断できる。すなわち、量子化条件と、空間フィルタ特性、及び、画素位置を特定する条件の周期性とを関連づけることで、容易に画像と符号との多重化および分離（あるいは逆多重化）が実現できる。本実施形態では、周期性No.は０と１の２種であり、ブロック内の多重化符号は１ビットであったが、多重化符号はこれ以上でも良いのは勿論である。当然、量子化条件の種類と、空間フィルタの種類、画素位置特定条件の周期性No.の種類（Ｉの値）とは一致する。
【００４０】
以上の説明から明らかなとおり、図１１の手順における所定の値Ｊは、画像データに多重化されている可能性のある符号情報の種類の数を示す。また所定の値Ｉは、１周期の間にとり得る位相の数を示す。本例では、位相は画素単位の離散的な値であるので、１周期の画素数をＩの値としてもよい。
【００４１】
図１１の手順は図５に示したブロックごとに適用されて、ブロックごとの量子化条件に対応する符号が判定される。そしてその例えばＷ×Ｈ個の符号を、ブロックの順序で配列することで、埋め込まれた符号情報を再生する。本例では、例えば量子化条件Ａは"０"に、量子化条件Ｂは"１"に相当するので、これをブロックの順序で並べて元の符号情報が再生される。なお相異なる２n＋１個の量子化条件（すなわち量子化閾値のパターン）を用意し、そのうちの２n個の量子化条件をｎビットの符号語にそれぞれ対応付けることで、１ブロックあたりｎビットの符号情報を多重化できる。
【００４２】
また図１１の手順は、一方の方向について図１１の手順を行うことで多重化した符号を特定できるのであれば、画像の一方の方向についてのみ実行すればよい。たとえば図６に示した量子化条件（すなわち符号パターン）は、一方の方向について図１１を実行することで区別できる。しかし、一方の方向だけでは多重化された符号をひとつに絞れない場合には、水平方向および垂直方向それぞれについて実行し、各方向について独立してｉｍａｘの値を決定した後に、それらを総合して最終的なｉｍａｘを決定してもよい。例えば一方の方向について複数の分散値Ｂ［ｉ］がほぼ同じ値となった場合、たとえば分散値の最大値との差分が所定値以内の分散値を最大値の候補とし、それら候補の分散値の周期性インデックスｉを、ｉｍａｘの候補として残しておく。そして水平および垂直の両方向についてｉｍａｘの候補を決定し、両方向に共通する周期性インデックスｉの値を最終的なｉｍａｘとして決定する。そしてそのインデックス値ｉｍａｘに関連付けられた符号を、画像に多重化された符号であると判定する。
【００４３】
また図１１の手順は、画像情報と付加情報の画素パターンとの相関を求める手順、あるいはブロックごとの画素値の分布と閾値マトリクスとの相関を判定して前記閾値マトリクスに対応する情報を抽出する手順と言い替えることもできる。すなわち、付加情報が多重化された画像情報と、多重化された付加情報の各ビットあるいはビット群に対応する画素パターン（量子化閾値に相当するパターン）との相関度を求める。そして、相関が所定程度より低ければ復号は失敗したものと判断し、所定程度以上の相関があれば、相関する画素パターンに対応するビットあるいはビット群が多重化されているものと判断する。このことは、図１１の手順に限らず、上記相関の程度を求める手順を実行することで、多重化した付加情報を復号できることを意味している。あるいは、付加情報を多重化した画像のブロックごとに、当該ブロックに含まれる画像情報の空間周波数と量子化閾値マトリクスのパターンの空間周波数との一致の程度を判定する。そして、一致の程度が所定の程度以上であれば、その量子化閾値マトリクスに対応した符号を復号する復号方法ということもできる。
【００４４】
第１の実施形態では、直交変換による量子化条件の規則性に対応した周波数の電力値の比較をしなくても、容易に符号を分離できる。しかも、実空間領域の処理の為、非常に高速に分離処理が実現できる。
【００４５】
以上、第１の実施形態を説明してきたが、量子化条件Ａ、Ｂ、及び、空間フィルタＡ、Ｂ、画素特定部Ａ，Ｂは一例であり、これに限るものではない。他の周期性を持たせても良いし、空間フィルタのタップ数、画素位置を特定するためのブロックサイズ等は前述した例よりも大きくても小さくても構わない。
【００４６】
また、図１１の動作手順では、本発明の思想を容易に説明するために、周期性No.である変数ｉ、及び、位相No.である変数ｊの繰り返し処理にて説明している。しかし、実際には、Ｐ×Ｑ画素よりなるブロック内の画素アドレスによる繰り返し処理の方が実現が容易である。すなわち、図１２、図１３に示したように、ブロック内の各画素アドレスに対して周期性No.、及び、位相No.の２種の情報をテーブルとして予め格納しておき、対応した周期性No.、及び、位相No.の各々の変数に対して変換値を加算していく方法である。この方法では、Ｐ×Ｑ画素分を処理するだけで、並列に、周期性No.、及び、位相No.の各集合の加算値を算出することができる。
【００４７】
また、図１１の動作手順では、空間フィルタ後の特定された位置の変換値の加算結果の分散を算出して、分散値の大小比較により、符号を判定していたが、これに限るものではない。分散値を用いない評価関数の比較による方法も考えられる。特定された位置の変換値の加算結果の偏りは、位相をずらした際に、ひとつの位相の時だけ値が突出しやすいため、"ばらつき度合い"が評価できれば良い。
【００４８】
例えば、ばらつき度合いを評価するには、分散値以外に次の評価関数が考えられる。
１．特定された位置の変換値を加算した加算値の最大値と最小値の差分
２．特定された位置の変換値を加算した加算値の最大値と２番目に大きな値との差分、もしくは、最小値と２番目に小さな値との差分のどちらか
３．特定された位置の変換値を加算した加算値によるヒストグラムを作成した時の、前後の順番の差分の最大値。
【００４９】
また、上記１、２、３の評価関数は絶対的な差分値であるが、これらの差分値と変換値、もしくは画素値や変換値の総和等との相対的な比率も評価関数として用いることができる。また、量子化値は２値化を例にして説明したが、これには限らない。
【００５０】
このように第１の実施形態によれば、画像をＭ×Ｎ画素よりなるブロック単位で量子化条件を変更し、該量子化条件に従って画像を量子化することにより画像に対して所定の情報を埋め込むことができる。その結果、従来における情報埋め込み方法、例えば直交変換をして情報を埋め込む方法に比べて、画質劣化を抑制し、かつ高速に、かつ埋め込まれた情報が精度よく抽出できるように画像に対して情報を埋め込むことができる。
【００５１】
［多重化印字物の連続撮影］
次に、カメラ付携帯端末１０４による、付加情報が多重化された印刷物（多重化印字物と呼ぶ。）の連続撮影について説明する。カメラ付携帯端末１０４は撮影時、その撮影条件により複数の定常的な劣化が生じる。なお定常的な劣化とは、例えば、一定の撮影条件の下で撮影した画像中の一定の位置に生じる劣化であり、劣化の原因や種類については必ずしも一定でなくともよい。ただし付加情報の復号を困難にする劣化が問題であるので、復号の失敗となる劣化の種類や原因は多重化の方法に応じて異なる可能性がある。図４等で説明した方法で付加情報が多重化された画像の場合には、ブロック内の輝度レベル（あるいは濃度レベル）や空間周波数特性が変えられるような劣化により付加情報の復号が困難となる。たとえば、ライトの写りこみにより局所的に輝度レベルが高くなったり、撮像素子やローパスフィルタに付着したごみなどにより局所的に輝度レベルが低下したりすることなどが、復号した付加情報の誤りの原因となり得る。
【００５２】
図１４（ａ）は、カメラのライトを付けて、印字物を撮影したときの撮影画像である。黒い丸の部分はカメラライトの写りこみであり、カメラライトが付いている限り写り込みは存在し続ける。図１４（ｂ）、図１４（ｃ）は、カメラで印字物を撮影した時、カメラレンズ収差による影響を説明したものである。図１４（ｂ）は、カメラの焦点（星印）を中心部に合わせて撮影した画像であり、カメラの収差の影響で周辺部にボケ（一点鎖線で囲んだ部分）が生じる。図１４（ｃ）は、カメラの焦点（星印）を周辺部に合わせた画像であり、周辺部のボケがある程度改善されるが、中心部の画像は逆にボケ（一点鎖線で囲んだ部分）で劣化する。
【００５３】
続いて、図１５を用いて、付加情報分離手法について詳しく説明する。図１５は本実施形態に係るカメラ付携帯端末１０４の機能的なブロックを示す。なお、図１５を機能ブロックとして説明するが、図１５はそれら機能による処理の流れを示すフローチャートともいえる。本例においては、各機能を制御部１２０によりデコード用アプリ（すなわちプログラム）を実行することで実現されるが、専用のハードウエアで実現することもできる。
【００５４】
ユーザはまず、カメラ付携帯端末１０４のデコード用アプリを立ち上げる。このデコード用アプリは、撮影条件を設定する撮影条件設定機能Ｓ１５０１と、撮影条件設定機能Ｓ１５０１に基づいて印字物を撮影する撮影機能Ｓ１５０２と、Ｓ１５０２より得られた画像に多重化された付加情報をデコードするデコード機能Ｓ１５０３を備える。そして、デコード用アプリは、Ｓ１５０３より得られた画像毎の多重化データ（すなわち画像に多重化された付加情報）を評価する多重化データ評価機能Ｓ１５０４と、Ｓ１５０４により評価された画像毎の多重化データをマージ（あるいは合成）し、最終的に正確な付加情報を取得する多重化データマージ機能Ｓ１５０５を備える。
【００５５】
図１６は、図１５の付加情報分離手法の一例を説明したものである。以下、図１５の各機能を、図１６を用いて詳しく説明する。
【００５６】
撮影条件設定機能Ｓ１５０１では、複数の撮影条件を設定することができる。例えば、周囲の光量不足を考慮したカメラ付携帯端末のライトON、ライトの写りこみによる影響を抑えるためのライトOFFなどが撮影条件の一例として挙げられる。その他にも、撮影時のカメラ付携帯端末の移動スピードを考慮した複数のシャッタースピードの設定、処理速度やメモリ容量を考慮した撮影解像度の指定などの撮影条件もある。これらの撮影条件以外の撮影条件が設定されても良い。
【００５７】
また、過去に設定した撮影条件によって、現在の撮影条件を動的に設定してもよい。例えば、まずはカメラの撮影条件設定をオートに設定して撮影した後、そのオート時の撮影条件により、次の撮影条件を決めてもよい。また、カメラ付携帯端末１０４のカメラの撮影条件が周囲環境により自動的に設定される場合、周囲環境を変化させることにより、間接的にカメラ付携帯端末の撮影情報を変更させてもよい。例えば、光量を大きくすることにより、自動的にシャッタースピードを速くするための撮影情報が設定されても良い。
【００５８】
撮影条件設定機能Ｓ１５０１は、図１６の撮影条件１６０１として、ライトON／OFFと焦点の位置により、4通りの撮影条件を設定している。たとえば図１４(b)、図１４(c)に示した２つの焦点位置と、図１４(a)に示したライトのオン／オフとを組み合わせて４通りの条件を設定できる。つまり、ユーザは、各撮影条件で撮影するため、４回の撮影をすることになる。
【００５９】
撮影機能Ｓ１５０２は、撮影条件設定機能Ｓ１５０１の設定に基づいて撮影を行う。撮影条件に応じた設定の変更は、カメラ付携帯端末１０４が撮影ごとに行うことが望ましい。撮影条件に応じた設定の変更は、制御部１２０の制御下で行われる。撮影は、複数の撮影条件を設定してから、連続撮影してもよい。また、一枚の撮影毎に撮影条件を設定し、繰り返し撮影してもよい。なお、この撮影は、静止画の連写モードで撮影してもよいし、動画モードで撮影したのち１コマずつ切り出して、画像データとして分割してもよい。また、カメラ付携帯端末１０４のカメラ機能ではなくデジタルスチールカメラで撮影する場合は、連続撮影した複数の画像をパソコンなどに取り込み、パソコンのＯＳ上でデコードアプリを立ち上げ、取りこんだ複数の画像を処理してもよい。図１６の撮影画像１６０２の(a)~(d)は、Ｓ１５０１で予め設定した４通りの撮影条件１６０１にて同じ被写体を撮影した結果である。また、撮影画像１６０２には、図１４のようにライトの写り込みとレンズ収差によるボケ部分が表示されている。
【００６０】
デコード機能Ｓ１５０３では、撮影機能Ｓ１５０２より得られた各画像に埋め込まれた多重化情報をデコードし多重化データを取得する。このデコード処理の詳細は、図７で上述したのでここでは割愛する。図１６の１枚デコード結果１６０３は、図１６の撮影画像(a)~(d)それぞれを対象として、デコード機能Ｓ１５０３によりデコードを行い得られた多重化データである。ここで、写り込みとボケ部分と多重化データの対応について説明する。例えば、対象となる画像は水平方向について５つの領域に分割され、各領域が更に複数のブロックに分割されてそれぞれの領域に付加情報が多重化されている。図１６の撮影画像（ａ）の各領域から得られた多重化データの例として、左端の領域からは多重化データｃ、左から２番目の領域からは多重化データＢが得られたことを示している。
図１６の撮影画像(a)、(c)において、ライトの写り込み部分は右から２番目の領域に含まれる。図１６の撮影画像（ａ）のデコード結果１６０３における多重化データのうち向かって右から２番目のデータは写り込み部分に対応する領域から復号された情報であり、多重化データＤが得られたことが示されている。一方、図１６の撮影画像（ｃ）のデコード結果１６０３における多重化データのうち向かって右から２番目のデータは写り込み部分に対応する領域から復号された情報であり、多重化データＣが得られたことが示されている。図１６の撮影画像(a)、(b)において、ボケ部分は両端の領域に含まれる。図１６のデコード結果１６０３における多重化データの右から１番目と５番目のデータは周辺部のボケ部分に対応する領域から復号された情報である。図１６の撮影画像(c)、(d)において、ボケ部分は中央の領域に含まれる。図１６のデコード結果１６０３における多重化データの右から３番目のデータは中心部のボケ部分に対応する領域から復号された情報である。
【００６１】
多重化データ評価機能Ｓ１５０４では、デコード機能Ｓ１５０３より得られたデータ（すなわち付加情報）に対応する評価値を算出する。評価は、デコードの単位とされた各領域を対象として行われる。評価値算出手法には、画像情報のみ用いて評価値を算出する手法と画像情報以外の情報も利用して評価値を算出方法の二つがある。まずは、画像情報による評価値算出手法について説明する。一番簡単な例として、図７の判定部７１０で用いられる判定値をそのまま評価値として利用してもよいし、その判定値から新たな評価値を算出してもよい。また、完全に新たに画像情報より評価値を算出してもよい。画像情報より得られた評価値であれば、これに限定されない。
【００６２】
新た評価値の一例として、誤り検出を用いた評価値算出方法をはじめいくつかの方法について説明する。まず、誤り検出を用いた方法では、図１の付加情報１０１の入力において付加情報に誤り検出符号を追加することにより、誤り検出機能を持たせることができる。誤り検出符号として、ＣＲＣ等複数の手法が提案されているので、ここでは詳しく述べない。データの誤りを検出するものであれば、これに限らない。本例では、図５に示したように、付加情報はブロックごとに多重化される。そのため、誤り検出符号もまた誤り検出符号のために確保したブロックに多重化される。たとえば図１６に示したデコードの単位と成る各領域には複数のブロックが含まれ、そのうちのいくつかのブロックが追加される誤り検出符号のために割り当てられる。誤り検出符号は上述したＣＲＣであってもよいが、符号長を短縮するためにパリティビットなどの単純なチェックサムであってもよい。
【００６３】
また判定部７１０による判定結果を利用して評価する方法では、評価対象となる領域は復号処理時のブロックであってよい。たとえば、図７の例ではブロックごとに得られた２つの分散値を評価し、閾値パターンがいずれか一方であることを顕著に示すほど高い評価値を与える。そのため例えばひとつのブロックについて得られた２つの分散値の差分の絶対値を評価値とすることが考えられる。この場合、差分が小さいほど当該ブロックに多重化された符号の判別が困難であり、デコードにより得られたデータの確度が低いと評価できる。
【００６４】
また画像情報とは異なる情報を用いて付加情報を評価することにより評価値を求めても良い。たとえば、画像情報以外の情報とは、撮影条件や、カメラ機種、カメラのセンサより得られた情報などがある。例えば、カメラのライトONの場合、ライトの写り込み部分の評価値を最低値にすることができる。また、カメラの焦点が周辺部の場合、周辺部の評価値を大きくすることができる。ライトがオンであることや焦点距離はカメラから取得できる。ただし、画像中のライトの写り込みや合焦していない部分（焦点が合っていない部分）を知るためには、評価対象の画像中のライトの像を認識し、また画像のぼけを評価するなど、画像分析を行う必要がある場合もある。また、カメラの機種によって、非圧縮撮影画像と圧縮撮影画像が取得できるものに分かれる。圧縮が主に彩度に対して行われていれば、彩度の多重化信号は失われる可能性がある。したがって、撮影した画像を圧縮するカメラでは、評価値算出の過程において、彩度の重要度を変更することにより、評価値を変更させるのが望ましい。例えば、撮影した画像を圧縮する機種では、彩度に付加情報を多重化している場合、別途得られた評価値にさらに所定の係数（例えば１以下の正の係数）を乗ずる。なお彩度に付加情報を多重化するためには、たとえば撮影したＲＧＢ等のカラー画像を輝度−色差表色系（たとえばＬ*ａ*ｂ*）に変換し、その色差成分を図４で説明した手順で量子化することで付加情報を多重化すればよい。
【００６５】
そして、デコード機能Ｓ１５０３よりデータを取得した後、データ評価機能であるＳ１５０４では、それらのデータに対して評価（例えば誤り検出を含む）を実施する。上述した例のように誤り検出符号を用いたなら、誤りが検出されなかった場合に評価値を最高値に設定し、誤りが検出された場合に評価値を最低値にすることができる。画像情報以外の情報を用いる場合にも上述した要領で評価値を得ることができる。図１６のデータの評価１６０４は、図１６のデコード結果１６０３の多重化データに対応する評価値の例である。この例では、より大きい数値がより高評価であることを示す。図１６のデータの評価１６０４の評価値は写り込みとボケ部分で低くなる特徴がある。例えば、図１６の撮影画像（ａ）の左端の領域に含まれる各ブロックを、図７を用いて判定した結果、３という評価値が算出されたことが示されている。同様に、図１６の撮影画像（ａ）の左から２番目の領域に含まれる各ブロックを、図７を用いて判定した結果、８という評価値が算出されたことが示されている。
【００６６】
多重化データマージ機能Ｓ１５０５では、多重化データ評価機能Ｓ１５０４より得られた評価値に基づいて多重化データを採用し、マージする。図１６のデータ１６０５は、図１６のデータの評価１６０４の評価値より、閾値を８として閾値以上の領域に多重化されていたデータを採用したものである。図１６のマージ結果１６０６は、図１６の採用データ１６０５をマージしたものであり、最終的に正確なデータを取得することができる。また、図１６の採用データ１６０５において、同じ領域から復号したデータが複数あり、それらデータが互いに異なる場合、評価値によって、例えば評価値が高いデータを優先的に採用して、マージしてもよい。
【００６７】
以上説明した構成及び手順により、例えばライトの写り込みや画像のぼけなど、定常的ノイズを含む画像から、当該画像に多重化された付加情報をデコード（あるいは復号あるいは逆多重化）する際にも、デコードした付加情報の誤りを抑制することができる。例えば、多重化データ「ＡＢＣＤＥ」が埋め込まれた画像の印字物を撮影することで撮影画像（ａ）が得られたとする。この撮影画像（ａ）だけから多重化データを取得した場合、ボケ部分等の影響で多重化データ「ＣＢＣＤＤ」が得られることになり、埋め込まれていた多重化データ「ＡＢＣＤＥ」を得ることができないおそれがあった。しかし、本実施形態では、複数の撮影条件で得られた複数の撮影画像から評価の高い多重化データをマージすることで、結果として多重化データ「ＡＢＣＤＥ」を得ることが可能となり、デコードした付加情報の誤りを抑制することができる。
【００６８】
なお本実施形態では、ノイズとして焦点のずれとカメラにより点灯するライトの写り込みとを例として説明した。しかし、他の定常的ノイズについても同様に異なる撮影条件で撮影した同一の画像から付加情報を復号し、それを評価した上でマージすることによって誤りを減少させることができる。ここで撮影条件は、定常的ノイズの発生に係る設定などであり、カメラにより制御可能な設定であることが望ましい。
【００６９】
（第２の実施形態）
第１の実施形態の撮影条件設定において、想定される撮影条件の組み合わせは無数にあり、そのすべての撮影条件で撮影し、復号を試み、復号した情報を評価するのは現実的ではない。第２の実施形態では、このような場合でも、付加情報の正確な分離が可能な構成について説明する。
【００７０】
図１７のフローチャートは、実施形態１の図１５に対し、Ｓ１７０１及びＳ１７０２を追加した構成となっている。そのため、ここでは図１５と同一ブロックについては、同一の参照番号を付加して、その説明を省略し、新たに追加したＳ１７０１及びＳ１７０２の詳細について説明する。なお図１５についてはブロック図として説明していたが、制御部１２０により実行される手順のフローチャートしてみてもよく、図１７はその観点で図１５を流用するものである。後述の図１９についても同様である。
【００７１】
図１８は、図１７の付加情報分離手法の例を説明したものである。全データ取得判定Ｓ１７０１では、マージ後全部のデータが取得出来たかを判定する。Ｓ１７０１の判定の結果、全部のデータが取得出来た場合（Ｓ１７０１でYES）には処理を終了する。一方、Ｓ１７０１の判定の結果、全部のデータが取得出来なかった場合（Ｓ１７０１でNO）には撮影条件算出機能Ｓ１７０２に移行する。
【００７２】
撮影条件算出機能Ｓ１７０２では、多重化データマージ機能Ｓ１５０５より得られたデータより、正確にデコードできない部分を特定し、その部分に適した撮影条件を設定することができる。例えば、デコードできない部分が集中していれば、その部分に適した撮影条件にすることが出来る。また、デコードできない部分が分散していれば、その中で複数の撮影条件にすることも出来る。
【００７３】
以下、図１８を用いて詳しく説明する。図１８の(a)、(b)は中心部が黒色の多重化印刷物を撮影した画像である。具体的には、或る撮影条件下で図１８の画像(a)を撮影した場合、Ｓ１５０３による画像(a)のデコード結果がＳ１５０４で評価される。その評価結果に基づいて、評価値が所定値より低い部分、すなわち正確にデコードできていない部分は、Ｓ１５０５におけるマージ処理では採用されない。Ｓ１７０１において全領域のデータが取得できていないと判定された場合には、Ｓ１７０２において、データが取得できていない領域を特定し、その部分に適した撮影条件を設定する。たとえば、画像(a)から復号した情報を評価して、白部分の評価値が閾値に達していないと判定される。その合焦していない部分（白部分）の距離が近すぎるのか遠すぎるのかわからなければ、Ｓ１７０２では画像(a)の撮影条件を基に、焦点距離を短くする設定と長くする設定の両方の撮影条件を決定する。また、焦点以外でも、合焦していない部分（白部分）に適したホワイトバランスやシャッタースピードなどの撮影条件を設定してもよい。Ｓ１５０１ではその撮影条件を設定し（あるいはＳ１７０２で設定されていれば何もしなくともよい）、Ｓ１５０２ではその撮影条件で画像(b)を撮影する。そして、画像(b)の白部分をデコードして得た情報の評価値が閾値に達していれば、Ｓ１５０５におけるマージにより、全データが得られたと判定される。このように、撮影条件を変更して撮影した画像(b)では、画像(a)で正確にデコードできない部分が正確にデコード出来るようになる。このように画像(a)では、撮影条件を中心部に合わせているため、撮影条件が黒色の部分に適しているので、白部分の多重化信号が劣化する可能性が高い。したがって、同じ撮影条件で撮影しても白部分の正確なデータは取得できない。画像(b)は、画像(a)の白部分の劣化した場所に適した撮影条件を設定し撮影した画像である。撮影条件が白部分に適しているので、画像(a)の白部分の劣化した場所のデータが正しくデコード出来るようになる。逆に、黒部分の多重化信号が劣化する。最終的に、画像(a)の結果と画像(b)の結果をマージすれば、正確な多重化データが得られる。
【００７４】
図２０の(c)、(d)は同じ付加情報を複数回異なる領域に多重化した印字物の一部が経年劣化により正しくデコード出来ない場合、正しくデコードする例を示したものである。具体的には、画像(c)のデコード結果より、正確にデコード出来ない部分が存在する場合、その候補となる場所に適した撮影条件で撮影し画像(d)を取得する。そして、画像(d)では、画像(c)で正確にデコードできない部分が正確にデコード出来るようになる。画像(c)では、経年劣化部分と同じデータが埋め込まれている候補部分は周辺部に存在する。しかし、画像(c)では撮影条件である焦点を中心部に合わせているため、周辺部では焦点が合わず、周辺部では正しいデータがデコード出来ない。したがって、同じ撮影条件で撮影しても正確なデータは取得できない。画像(d)では、撮影条件を経年劣化部分と同じデータが埋め込まれている候補部分に合わせているため、候補部分のデータが正しくデコード出来る。つまり、画像(c)の結果と画像(d)の結果をマージすれば、正確な多重化データが得られる。ただしこれは、同一の情報が複数の領域に多重化されていることを復号する際に知っていることが前提となる。同一の情報が複数の領域に多重化されていることを複合したデータの一部より知ってもよい。また本例は、光源が特定の部分に写り込んだ画像についても適用できる。
【００７５】
このように付加情報が冗長に多重化されている場合にも、デコードを良好に行えた部分から得た情報を復号された情報として採用する。こうすることで、たとえば焦点のずれや元画像の経年劣化という定常的ノイズを含む画像から、当該画像に多重化された付加情報を、誤りを抑制して抽出することができる。これらの手法以外でも、マージ後のデータより撮影条件を設定する手法であれば、これに限らない。
【００７６】
（第３の実施形態）
本実施形態では、第１の実施形態または第２の実施形態において、ユーザにカメラまたは印字物の移動を促し、カメラまたは印字物の移動により、定常的ノイズの影響を抑えることを説明する。
【００７７】
図２０を用いて、定常的ノイズの影響を抑える一例を説明する。図２０の撮影画像(a)、(b)は、撮影画像(a)を撮影した後、右にカメラを動かし撮影画像(b)を撮影したものである。印字物を基準に見る場合、カメラを右に動かすことにより、ライトの写り込みも印字物の右に動く。そして、撮影画像(a)では写り込みにより正確な付加情報が取得できなかった場所は、ライトの写り込みの位置が移動することにより、撮影画像(b)では正確な付加情報が取得可能な場所になる。そして、撮影画像(a)と撮影画像(b)の結果をマージすることにより、最終的に正確な付加情報の取得が可能になる。
【００７８】
図１９のフローチャートは、実施形態２の図１７のフローチャートに対し、Ｓ１９０１を追加した構成となっている。そのため、ここでは図１７のフローチャートと同一ステップについては、同一のステップ番号を付加して、その説明を省略し、新たに追加したＳ１９０１の詳細について説明する。
【００７９】
ユーザ移動通知機能Ｓ１９０１では、撮影機能Ｓ１５０２の後または全データ取得判定Ｓ１７０１の判定がＮＯの場合にユーザが移動することを通知する。通知する手法としては、音声、画面表示、振動など、ユーザに通知できる方法であれば、これに限らない。この通知には、少なくともカメラの移動を促すメッセージを含む。
【００８０】
また、撮影条件算出機能Ｓ１７０２での正確にデコードできない部分より、移動すべき方向を画面上に表示してもよい。さらに、移動量を示す情報が含まれていてもよい。この場合、Ｓ１９０１では、たとえば画像中に含まれる定常的なノイズ（例えばライトの写り込み）およびその位置を特定し、その領域を、ノイズが含まれないように撮影できるカメラの移動方向を決定する。さらに移動量を決定しても良い。そして決定した移動方向（および移動量）が表示される。
【００８１】
またカメラの移動を伴う場合には、Ｓ１５０５のデータのマージにおいて、画像間で一致する部分を判定し、画像間における領域の対応を決定する必要がある。これはたとえば画像間の相関を求めることで行えばよい。また最初に撮影する画像は、たとえば紙媒体等に記録された画像全体を含む、基準となる画像であることが望ましい。この場合には、基準画像を基にして、カメラを移動して撮影した画像との対応が決定され、デコードされた符号のマージがその対応関係に従って行われる。また、移動前後の画像のデコード結果の符号により、対応関係を決定し、符号のマージを行ってもよい。
【００８２】
以上説明した本実施形態においても、画像に発生する定常的なノイズの影響を軽減し、良好な付加情報の復号を実現できる。なお本実施形態は、第１の実施形態と組み合わせて実施することもできる。
【００８３】
なお上述した実施形態はすべてカメラ付携帯端末で説明したが、画像を撮影するカメラ機能を有さない情報処理装置であっても、撮影した画像を対象として各実施形態のデコードを行うことで、実施形態の発明の実現できる。この場合には、端末からカメラの撮影条件を設定し、カメラの設定を変更できる必要がある。さらにこの場合には、カメラの機能により実現できる撮影条件のみならず、端末装置に接続されたカメラ以外の機器により撮影条件を与えることやそれを変更することもできる。
【００８４】
［その他の実施例］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８５】
１０２：付加情報多重化装置、１０４：カメラ付携帯端末、１０６：付加情報分離装置、１２０：制御部、Ｓ１５０１：撮影条件設定機能、Ｓ１５０２：撮影機能、Ｓ１５０３：デコード機能、Ｓ１５０４：多重化データ評価機能、Ｓ１５０５：多重化データマージ機能
【図１】
0006635741.tif 000002
【図２】
0006635741.tif 000003
【図３】
0006635741.tif 000004
【図４】
0006635741.tif 000005
【図５】
0006635741.tif 000006
【図６】
0006635741.tif 000007
【図７】
0006635741.tif 000008
【図８】
0006635741.tif 000009
【図９】
0006635741.tif 000010
【図１０】
0006635741.tif 000011
【図１１】
0006635741.tif 000012
【図１２】
0006635741.tif 000013
【図１３】
0006635741.tif 000014
【図１４】
0006635741.tif 000015
【図１５】
0006635741.tif 000016
【図１６】
0006635741.tif 000017
【図１７】
0006635741.tif 000018
【図１８】
0006635741.tif 000019
【図１９】
0006635741.tif 000020
【図２０】
0006635741.tif 000021