以下に、添付図面を参照して、本発明の好適な実施の形態を例示的に詳しく説明する。ただし、以下の実施形態に記載されている構成要素はあくまで例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
なお、本明細書において、「記録」(「プリント」という場合もある)とは、文字、図形等有意の情報を形成するのみならず、有意無意を問わずに情報を形成することを表すものである。さらに人間が視覚で知覚し得るように顕在化したものであるか否かも問わず、広く記録媒体上に画像、模様、パターン等を形成する、または媒体の加工を行う場合も表すものとする。
また、「記録媒体」とは、一般的な記録装置で用いられる紙のみならず、布、プラスチック・フィルム、金属板、ガラス、セラミックス、木材、皮革等のようにインクを受容可能なものを広く表すものとする。
また、「付加情報」とは、これから印刷物に埋め込まれる情報、あるいは既に印刷物に埋め込まれた情報のことである。付加情報は、視覚的に目立たないように印刷物に埋め込まれている(付加されている、あるいは多重化されている、という場合もある)。付加情報のことを透かし情報ともいう。
また、「多重化印刷物」とは、付加情報が埋め込まれた(多重化された)印刷物のことである。
<<実施形態1>>
<システム構成>
本実施形態の画像処理システムは、付加情報を印刷物に埋め込む付加情報多重化装置と、その付加情報を印刷物から分離(抽出)する付加情報分離装置とを備えている。付加情報多重化装置としては、プリンタエンジンへ出力すべき画像データを生成するコンピュータ、およびスマートフォンなどの多機能端末装置などが挙げられる。これらの装置内部に実装されているプリンタドライバソフト、またはアプリケーションソフトが実行されることで、付加情報多重化装置として機能する。あるいは、付加情報多重化装置は、複写機、ファクシミリ、プリンタ本体等でもよい。そして、これらの装置に実装されているハードウエア、及びソフトウエアによって、これらの装置が、付加情報多重化装置として機能してもよい。付加情報分離装置としては、カメラ付携帯電話、カメラ付スマートフォンやタブレットPCなどの多機能端末装置が挙げられる。以下では撮像機能が搭載されたデバイスをカメラ付携帯端末という。以下の実施形態では、付加情報分離装置は、このようなカメラ付携帯端末を例に挙げて説明するが、これに限られるものではない。撮像された画像を扱う画像処理装置であればよく、撮像機能を備えていなくてもよい。例えば、デジタルスチールカメラで撮像された画像を取得し、その画像から付加情報を分離するアプリケーションソフトを備えているコンピュータなどの装置を付加情報分離装置として用いてもよい。
図1は、本実施形態の画像処理システムの構成を示すブロック図である。画像処理システムは、付加情報多重化装置102、プリンタ103、およびカメラ付携帯端末104(付加情報分離装置)を備えている。以下、画像処理システムの概要を説明する。
付加情報多重化装置102には、入力端子100から多階調の画像データが入力される。また、付加情報多重化装置102には、入力端子101から付加情報が入力される。付加情報は、入力端子100から入力された画像データで表される画像に埋め込むべき情報である。付加情報は、入力端子100から入力された画像データが示す画像とは別個の情報である。付加情報は、どのような種別の情報であってもよい。例えば、音声情報、動画情報、テキスト文書情報、入力端子100にて入力される画像に関する著作権、撮像日時、撮像場所、撮像者等の諸情報、または全く別の画像等が挙げられる。また、これらの情報が格納されているネットワーク上のサーバー等を特定するためのURL等の格納場所情報でもよい。
付加情報多重化装置102は、視覚的に判別され難いように、画像に付加情報を埋め込む(多重化する)装置である。本実施形態において付加情報多重化装置102は、多階調の画像データの量子化処理を行う際に、付加情報を多重化する処理を併せて行う。詳細については後述する。
プリンタ103は、付加情報多重化装置102からの印刷指示に従って、付加情報が埋め込まれた画像が印刷された印刷物を出力する。プリンタ103は、疑似階調処理を用いることにより階調表現を実現するプリンタ(例えばインクジェットプリンタ、レーザープリンタ等)を用いることができる。印刷物に埋め込まれた付加情報は、カメラ付携帯端末104(付加情報分離装置)で分離される。
カメラ付携帯端末104は、撮像部105、付加情報分離部106、分離情報積算部107、第一の判定部108、撮像条件設定部109、スピーカー111、ディスプレイ112、および第二撮像センサ113を備える。
カメラ付携帯端末104は、撮像部105によって印刷物を撮像することで得られた画像を取得する。撮像部105は、オートフォーカスやシャッタースピード等の撮像条件を設定することができる。また、撮像部105は、公知のカメラ信号処理部を含む。カメラ信号処理部では、CCDやCMOSセンサ等の撮像素子から得られたデジタル信号のデモザイギング、ノイズ除去、顔等の画像認識、JPEGやMPEG−4 AVC/H.264等の圧縮処理などが行われる。
付加情報分離部106は、撮像部105による撮像で得られた画像から付加情報を分離する処理を行う。本実施形態では、付加情報は、複数のビットから構成されているものとする。また、個々のビット(0か1を示す情報)は、画像の中の所定領域にそれぞれ埋め込まれているものとする。以下では、画像から分離されることで得られる情報であり、このような埋め込まれたビットのそれぞれのことを分離情報という。つまり、分離情報は、付加情報を構成する要素ともいえる。
分離情報積算部107は、画像の中の複数の個所において分離に成功した分離情報の数(ビットの数)を積算する。本実施形態では、撮像した画像を切り替えながら付加情報の分離を繰り返す。分離情報積算部107は、このような繰り返しの分離処理において分離に成功した分離情報の数を積算する。詳細は後述する。
第一の判定部108は、分離情報積算部107で積算された分離情報の数に基づいて、撮像条件の設定を変更すべきか否かを判定する。すなわち、第一の判定部108は、分離情報積算部107で積算された分離情報が、どの程度分離に成功して、どの程度分離に失敗しているかの指標となる評価値(分離効率)を算出する。そして、その分離効率に基づいて、このままの撮像条件での設定を継続するか否かを判定する。詳細については後述する。
撮像条件設定部109は、第一の判定部108の判定結果に基づいて、撮像部105の撮像条件を制御する。例えば、分離効率が高くないような場合には、撮像条件設定部109は、撮像部105の撮像条件を、第一の撮像条件から第二の撮像条件に変更する。詳細については後述する。
分離情報積算部107は、所望の情報量の分離情報が得られた場合、その所望の情報量の分離情報で構成されている付加情報を出力端子110に出力する。出力端子110は、取得した付加情報を出力するインターフェイスであり、例えば付加情報が音声情報であれば、カメラ付携帯端末104のスピーカー111へ音声を出力する。付加情報が画像情報であれば、ディスプレイ112へ画像を出力する。出力端子110は、外部デバイスへデータを出力するインターフェイスでも構わない。また、カメラ付携帯端末104に複数の撮像センサがある場合、印刷物の撮像は、第二撮像センサ113で行ってもよい。
カメラ付携帯端末104の付加情報分離部106、分離情報積算部107、第一の判定部108、および撮像条件設定部109は、不図示のCPUが、不図示のメモリなどに格納されたプログラムを実行することによって実現することができる。
本実施形態では、付加情報分離装置としてカメラ付携帯端末104(画像処理装置)を用いている。一般に、付加情報を分離する装置として、複合機などに備えられているスキャナ(イメージスキャナ)を用いる形態もあるが、カメラ付携帯端末104は可搬性に富んでいるので、使用者が手軽に付加情報を得ることができる。また、多重化印刷物が例えば写真アルバムのような厚みを有する形状の場合にも、カメラ付携帯端末104を用いると、アルバムに折り目などが生じさせることなく付加情報を得ることができる。ただし、カメラ付携帯端末104は、スキャナと異なり、多重化印刷物とカメラとの相対的な位置関係(以下、「カメラ姿勢」という)が、固定的ではない。例えば、多重化印刷物とカメラとの相対的な距離、あおり、または回転が、固定的にはならない。このため、カメラ姿勢によっては多重化印刷物から付加情報を抽出するに適していない画像が撮像される場合がある。例えば、多重化印刷物を近距離で接写撮像した場合には一度の撮像での有効面積は小さくなる一方で、印刷物を表す画像の解像度は高くなる。逆に、距離を離して撮像した場合には、有効面積は大きくなる一方で印刷物を表す画像の解像度は低下する。適切なカメラ姿勢でない場合には、使用者にとっては付加情報の抽出に時間を要してしまったり、同じ撮像条件での画像を元に付加情報を抽出する処理が繰り返されることになどにより、付加情報の抽出ができない状態が継続されてしまったりする場合がある。特に、付加情報の情報量が多い場合には、このような傾向が顕著となる。また、多重化印刷物とカメラとの距離に限らず、例えば相対的な回転方向のずれが生じた場合でも、同じ撮像条件での画像からでは、付加情報が抽出できない状態が継続されてしまう可能性がある。
そこで、本実施形態では、カメラ付携帯端末104の撮像条件を、多重化印刷物を撮像して得られた画像からの分離効率に応じて切り替える処理を行う。カメラ付携帯端末104の撮像条件の制御の詳細については後述する。以下では、まず付加情報の多重化処理と、付加情報の分離処理の説明を行う。その後に、撮像条件の制御について説明する。なお、本実施形態では、画像処理装置の一例として、カメラ付携帯端末104を例に挙げて説明するが、撮像装置において撮像された画像を取得して処理し、かつ撮像装置の撮像条件を設定する情報を撮像装置に送信する画像処理装置であってもよい。
<付加情報多重化装置の説明>
図2は、付加情報多重化装置102の構成を示すブロック図である。付加情報多重化装置102は、誤差拡散部200、ブロック化部201、量子化条件制御部202、および制御部210を備える。
誤差拡散部200は、入力端子100より入力された画像データに対して誤差拡散法を用いた疑似階調処理(誤差拡散処理)を行う。誤差拡散処理によって、入力階調数よりも少ない量子化レベルに画像データが変換される。複数画素の量子化値によって面積的に階調性が表現される。誤差拡散部200は、量子化条件制御部202で制御される量子化条件に従った誤差拡散処理を行う。詳細は後述する。
ブロック化部201は、入力された画像データを所定の領域単位にブロック化する(区分する)。ブロック化部201は、矩形の領域にブロック化してもよいし、矩形以外の領域にブロック化してもよい。本実施形態では、1つのブロックに対して1つの単位情報(ビット)が埋め込まれる。
量子化条件制御部202は、入力端子101で入力された付加情報に基づき、ブロック単位で量子化条件を変更する制御を行う。本実施形態では、量子化条件を変更しながら量子化処理を行うことで、付加情報が埋め込まれることになる。
制御部210は、CPU211、ROM212、RAM213などから構成される制御部である。CPU211は、ROM212に保持された制御プログラムに従って、上述した各構成の動作及び処理を制御する。RAM213は、CPU211の作業領域として使用される。
図3は、誤差拡散部200の詳細を示すブロック図である。本実施形態では、多値の階調値が2値に量子化される誤差拡散処理を例にして説明する。加算器300では、入力された画像データの注目画素値と、既に2値化されている周辺画素から分配された量子化誤差とが加算される。
比較部301は、量子化条件制御部202から得られる量子化閾値と、誤差が加算された加算結果と、を比較する。比較部301は、加算結果が量子化閾値よりも大きい場合には"1"を、それ以外では"0"を量子化値として出力する。例えば、8ビットの精度で画素の階調を表現する場合には、最大値である"255"と最小値である"0"で表現するのが一般的である。本実施形態では、量子化値が"1"の場合に、紙上にドット(インク、トナー等)が印刷されるものとする。
減算器302は、量子化結果と前述した加算結果との誤差を算出する。誤差配分演算部303は、誤差に基づいて、今後の量子化処理が施される周辺画素に誤差を配分する。誤差の配分割合は注目画素との相対的な距離に基づいて実験的に設定された誤差の配分テーブル304を予め用意しておき、配分テーブルに記された配分割合に基づいて誤差を分配する。図3の配分テーブル304は、注目画素の周囲4画素分の配分テーブルを示しているが、これに限るものではない。
図4は、量子化条件制御部202の処理を含む付加情報多重化装置102全体の処理の一例を示すフローチャートである。量子化値は2値である場合を例に説明する。
ステップS401において量子化条件制御部202は、変数iの初期化を行なう。変数iは垂直方向のアドレスをカウントする変数である。ステップS402において量子化条件制御部202は、変数jの初期化を行なう。変数jは水平方向のアドレスをカウントする変数である。
ステップS403において量子化条件制御部202は、i、jのアドレス値が示す座標が、多重化処理(付加情報の埋め込み処理)を実行すべき領域(以下、「多重化領域」という)内か否かを判定する。図5を用いて多重化領域について説明する。
図5(a)は、水平画素数がWIDTH、垂直画素数がHEIGHTから成る、1つの画像を示している。この1つの画像全体に対して1つの付加情報を多重化すると想定する。図5(a)の画像の左上を原点とし、横N画素、縦M画素でブロック化をする。本実施形態では、原点を基準点としてブロック化を行うが、原点から離れた点を基準点として設定しても良い。この画像に対して最大限の情報を多重化する場合、N×Mのブロックを基準点から配置していく。すなわち、水平方向に配置可能なブロック数をW、垂直方向に配置可能なブロック数をHとすると、以下の関係になる。
W = INT(WIDTH / N) …式1
H = INT(HEIGHT / M) …式2
但し、INT( )は( )内の整数部分を示す。
式1、式2において割り切れない剰余画素数が、N×Mのブロックを複数配置した時の端部に相当し、これらのアドレス値が示す座標が多重化領域ではない領域(多重化領域外)となる。
ステップS403にて、現在処理している注目画素が多重化領域外である判定された場合に、ステップS404に進み、量子化条件制御部202は、量子化条件Cを設定する。その後、ステップS409に進む。量子化条件Cについては後述する。一方、ステップS403において現在処理している注目画素が多重化領域内であると判定された場合には、ステップS405に進む。
ステップS405において量子化条件制御部202は、多重化すべき付加情報に基づいて、現在処理している注目画素が含まれるブロックに割り振る変数bitを決定する。説明を容易にする為に、付加情報をcode[ ]という配列を用いて、各1ビットずつ表現するものとする。例えば付加情報を48ビット分の情報と仮定すると、配列code[ ]はcode[0]からcode[47]まで、各1ビットずつが格納されていることになる。
ステップS405において、変数bitには、以下のように配列code[ ]内の情報が代入される。
bit = code[INT(i / M)×W + INT(j / N)] …式3
具体例として、以下の条件を適用した場合を例に挙げる。
WIDTH = 70
HEIGHT = 120
N = 8
M = 11
式1より、W= INT(70/8) = 8
式2より、H = INT(120/11) = 10
となる。このため、式3が参照する配列code[ ]は、図5(b)に示すように設定されることになる。例えば(i,j)=(11, 5)の座標の注目画素に対する変数bitには、code[8]に格納されているビットが代入されることになる。
ステップS406において量子化条件制御部202は、ステップS405で決定された変数bitが"1"か否かを判定する。前述したように、配列code[ ]内の情報は各1ビットずつ格納されているので、変数bitの値も"0"か"1"かの何れかを示すことになる。
ステップS406において"0"と判定された場合には、ステップS407に進み、量子化条件制御部202は、量子化条件Aを設定する。一方、"1"と判定された場合には、S408に進み、量子化条件制御部202は、量子化条件Bを設定する。量子化条件については後述する。
ステップS409において誤差拡散部200は、ステップS404、ステップS407、またはステップS408のいずれかで設定された量子化条件に基づいて、量子化処理(誤差拡散処理)を行う。
ステップS410において量子化条件制御部202は、水平方向変数jをカウントアップする。ステップS411に量子化条件制御部202は、水平方向変数jが画像の水平画素数であるWIDTH未満か否かを判定し、処理画素数がWIDTHになるまで前述の処理を繰り返す。また、水平方向の処理がWIDTH画素数分終了すると、ステップS412に進み、量子化条件制御部202は、垂直方向変数iをカウントアップする。そして、ステップS413にて量子化条件制御部202は、画像の垂直画素数であるHEIGHT未満か否かを判定し、処理画素数がHEIGHTになるまで前述の処理を繰り返す。以上の動作手順により、N×M画素よりなるブロック単位で、量子化条件を変更することが可能になる。
続いて、量子化条件A、B、Cの例について説明する。誤差拡散法における量子化条件は様々な因子があるが、本実施形態では量子化条件は、量子化閾値とする。量子化条件Cは、多重化領域外の画素に適用される条件であるので、量子化閾値は何でもよい。前述したように、1画素が8ビットによる階調表現で、量子化レベルが2値の場合には、最大値である"255"、及び、最小値である"0"が量子化代表値となる。一般に量子化閾値としては、その中間値となる"128"を設定することが多い。このため、本実施形態では、量子化条件Cでは、量子化閾値を"128"に固定とする条件であるものとする。
一方、量子化条件Aおよび量子化条件Bは、多重化領域内の画素に適用される条件である。このため、付加情報を表すために、量子化条件の違いによる画質の違いを生じさせることが求められる。但し、画質の違いは視覚的には判別しにくいように表現し、かつ、紙上から容易に識別できることが好ましい。
図6は、量子化条件Aおよび量子化条件Bを表した図である。図6(a)は、量子化条件Aにおける量子化閾値の変化の周期を示す図である。図6(a)において、1つのマスを1画素分と想定し、白いマスは固定閾値、ハッチングされたマスを変動閾値とする。すなわち、図6(a)の例では、横8画素、縦4画素のマトリクスを組む。そして、ハッチングされたマスの閾値を、突出した値の閾値として設定する。
図6(b)は、図6(a)と同様に、量子化条件Bにおける量子化閾値の変化の周期を示す図である。図6(b)の例では、図6(a)とは異なり、横4画素、縦8画素のマトリクスを組み、ハッチングされたマスの閾値のみ突出した値を閾値として設定する。
具体的な例としては、1画素が8ビットの階調値の場合に、固定閾値として"128"を設定し、突出した閾値として"10"を設定する。量子化閾値が低くなると、注目画素の量子化値が"1"(量子化代表値"255")になりやすくなる。すなわち、図6(a)、(b)ともに、ハッチングされたマスの並びで量子化値"1"が並びやすくなる。言い換えると、N×M画素のブロック毎に、図6(a)のハッチングされたマスの並びでドットが発生するブロックと、図6(b)のハッチングされたマスの並びでドットが発生するブロックとが混在することになる。
誤差拡散法における量子化閾値の多少の変更は、画質的には大きな影響を及ぼさない。誤差拡散法では、量子化閾値が変化した場合でも、あくまでも信号値と量子化値との差分となる誤差は周囲画素に拡散される。従って、入力された信号値はマクロ的に保存されることになるからである。すなわち、誤差拡散法においてはドットの並び、およびテクスチャの発生に関しては冗長性が大きい。
なお、上述した例では、誤差拡散法の量子化閾値に、付加情報の符号(ビット)を表す所定の周期性を重畳することにより多重化を実現する形態を説明したが、これに限られるものではない。例えば、以下の方式を採用してもよい。
・RGBの輝度情報に周期性を重畳する方式
・RGBの輝度情報を輝度‐色差情報(例えばY, Cr, Cb信号)に分離して周期性を多重化する方式
・RGBの輝度情報をインク色(例えばCMYK信号)に分離して周期性を多重化する方式
つまり、量子化閾値ではなく、画像データに直接周期性を多重化してもよい。すなわち、所定の周期の画素をプラスα(あるいはマイナスα)し、他の画素をマイナスα(あるいはプラスα)するような形態でもよい。
また、上記の例では、1枚の画像の全体を使って1つの付加情報を埋め込む形態を例に挙げて説明したが、この例に限られるものではない。例えば、1枚の画像の中で、1つの付加情報を複数の箇所に埋め込む形態であってもよい。この場合、上述したWITDH, HEIGHTを画像全体のサイズではなく、付加情報を埋め込む単位として用いればよい。例えば、100bitから構成されている付加情報を多重化する場合、ブロック毎に1bit表現できるのであれば、10x10ブロックで100bitが表現できる。1ブロックが図6に示すように、4x8もしくは8x4(この双方を表現するには8x8画素)と想定すると、800x800画素で100bit表現が可能である。仮に600dpiプリンタで多重化印刷物が出力されるとすると、100bitを表現するには、33mmx33mmが必要になる。例えばL版写真のサイズは、89mmx127mmであるので、同じ付加情報を少なくとも6箇所に多重化することができる。
また、上述した例では、量子化後の情報をプリンタ103に送信する形態を説明しているが、多重化処理及び量子化処理をプリンタ103本体内部で処理する構成でも構わない。
<付加情報分離部の説明>
次に、図1の画像処理システムにおける付加情報分離部106について説明する。
図7は、付加情報分離部106の構成を示すブロック図である。説明を容易にするため、付加情報多重化装置102と同様に、分割したブロック内に各1ビットずつの付加情報が多重化されている印刷物から付加情報を分離する例を説明する。多重化装置における1ブロックあたりの付加情報量と、分離装置における1ブロックあたりの分離情報量は等しくなる。
入力端子700からは、撮像部105で撮像して得られた画像データが入力される。カメラ付携帯端末104の撮像部105に含まれる撮像センサの解像度は、印刷物を作成するプリンタ解像度と同等以上が好ましい。正確に印刷物のドットの点在情報を読み込む為には、サンプリング定理により、撮像センサ側はプリンタ側よりも2倍以上の解像度が必要になる。しかし、同等以上であれば、正確でなくとも、ある程度ドットが点在しているのを判別することは可能である。本実施形態では、説明を容易にするためにプリンタ解像度と撮像センサの解像度とは、同一解像度と想定する。
幾何学的ずれ検出部701は、入力端子700から入力された画像の幾何学的ずれを検出する。入力端子700から入力された画像は、プリンタ103でプリント出力された印刷物をカメラ付携帯端末104で撮像した画像である。このため、入力端子700から入力された画像データによって表される画像は、プリンタ103で出力される前の画像とは幾何学的に大きくずれている場合がある。そこで、幾何学的ずれ検出部701では、印刷物と印刷物以外の境界線をエッジ検出にて検出する。
図8は、撮像画像を示す図である。プリンタ解像度と撮像センサ解像度とが同一解像度であれば、プリンタ103でのプリント時の斜行、及び、カメラ付携帯端末104を印刷物にかざす時のずれ等により生じる画像の回転方向(傾き)が、補正すべき大きな要因となる。そのため、この印刷物の境界線を検出することにより、どの程度回転方向でずれが生じているかを特定できる。後段の処理では、この幾何学的ずれを考慮してブロックを設定し、付加情報を分離することになる。
ブロック化部702は、入力端子700から入力された画像を、横P画素、縦Q画素単位にブロック化をする。このブロックは、幾何学的ずれを補正する際に他のブロックの領域に重複しないように、電子透かしの重畳時にブロック化したN×M画素よりも小さくする。すなわち、
P≦N、かつ Q≦M ・・・式4
の関係が成り立つ。また、P×Q画素単位のブロック化は、ある一定間隔毎スキップしてブロック化を行う。すなわち、多重化時のN×M画素よりなるブロックと想定される領域内に、P×Q画素単位のブロックがひとつ内包されようにブロック化する(図8参照)。スキップする画素数は、水平N画素分、垂直M画素分が基本となるが、幾何学的ずれ検出部701によって検出したずれ量をブロック数で割り出し、1ブロックあたりのずれ量を演算して、スキップする画素数に加算して補正するとよい。ブロック化されたP×Q画素単位のブロックは、特徴量算出部740に順次送られる。
<特徴量算出部の説明>
特徴量算出部740は、空間フィルタA703、空間フィルタB704、フィルタリング部705、間引き部A706、間引き部B707、変換値加算部708、および分散値算出部709を有する。なお、図7の例では、空間フィルタが2種類備えられており、間引き部も同様に2種類備えられており、これらに対応してフィルタリング部705、変換値加算部708、および分散値算出部709が2系統備えられている例を示している。しかしながら、この例に限られず、処理系統が1系統であってよく、使用する空間フィルタや間引き処理を切り替える形態でもよい。
空間フィルタA703および空間フィルタB704は、それぞれ特性の異なる空間フィルタを示す。フィルタリング部705は、周辺画素との積和を演算するディジタルフィルタリング部を示している。各フィルタリング部705は、空間フィルタA703または空間フィルタB704を用いたフィルタリング処理を行う。空間フィルタの各係数は、多重化時の量子化条件の変動閾値の周期に適応して作成されている。
図9は、図6(a)および図6(b)に示す周期性を有する量子化条件を用いて多重化された付加情報を、付加情報分離部106で分離する際に使用する空間フィルタの例を示している。図9(a)は、空間フィルタA703の例を示す。図9(b)は、空間フィルタB704の例を示す。図9においては、5×5画素の中央部が注目画素に対応する。それ以外の24画素分が周辺画素に対応する。図9において、空白部の画素は、フィルタ係数が"0"であることを表している。空白部以外の画素は、標記している値がフィルタ係数となる。図9から明らかなように、図9(a)および(b)はエッジ強調のフィルタである。さらに、その強調するエッジの方向性と多重化した時の変動閾値の方向性とが一致している。つまり、図9(a)の空間フィルタA703は図6(a)に一致するように作成されている。図9(b)の空間フィルタB704は、図6(b)に一致するように作成されている。フィルタリング部705では、P×Q画素単位の各ブロックに対して、それぞれ空間フィルタA703、空間フィルタB704を用いてフィルタリング処理を行う。
間引き部A706および間引き部B707は、P×Q画素より成るブロック内のフィルタリング後の信号(以下、変換値と称す)を、ある規則性に基づいてそれぞれ間引き処理する。本実施形態では、この間引きの規則性を、周期性と位相とに分離して処理する。すなわち、間引き部A706及び間引き部B707では、間引きの周期性が異なっている。そして各間引き部では、位相を変化させた複数の間引き処理をそれぞれ実行する。間引き方法については後述する。
変換値加算部708は、間引き部A706及び間引き部B707にて間引きした変換値を、位相毎にそれぞれ加算する。この間引き処理、及び、変換値の加算処理は、空間フィルタで強調した所定周波数ベクトルの電力を抽出することに相当する。
分散値算出部709は、位相毎に加算した複数の加算値の分散を、それぞれの周期性において算出する。
第二の判定部710は、分散値算出部709で算出されたそれぞれの周期性における分散値に基づいて、多重化された符号(すなわち、“0”か“1”)を判定する。以下、具体的に説明する。
図10は、二次元の周波数領域を示す図である。横軸は水平方向の周波数、縦軸は垂直方向の周波数を示している。中心となる原点は直流成分を示し、原点から遠ざかるにつれて、高周波域となる。図10の円は、誤差拡散によるカットオフ周波数を示している。誤差拡散法のフィルタ特性は、低周波域がカットオフされたHPF(ハイパスフィルタ)の特性を示し、そのカットオフされる周波数は、対象画像の濃度に応じて変化する。
本実施形態では、付加情報を付加する際に量子化条件(量子化閾値)を切り替える制御を行うことにより、量子化後に発生する周波数特性が変化する。図6(a)に示す量子化条件を用いた場合、図10に示す周波数ベクトルA上に大きなパワースペクトルが生じる。また、図6(b)に示す量子化条件を用いた場合、図10に示す周波数ベクトルB上に大きなパワースペクトルが生じる。付加情報を分離する場合には、この大きなパワースペクトルが発生する周波数ベクトルを検出することで多重化信号の判定が行われる。本実施形態では、各々の周波数ベクトルを個別に強調し、抽出する処理が行われる。
図9(a)および図9(b)は、特定の周波数ベクトルの方向性を有するHPFに相当する。すなわち、図9(a)の空間フィルタでは、図10の直線A上の周波数ベクトルを強調することが可能になる。また、図9(b)の空間フィルタでは、図10の直線B上の周波数ベクトルを強調することが可能になる。
例えば、図6(a)に示す量子化条件を用いて量子化処理(誤差拡散処理)が行なわれることによって、図10の直線Aの周波数ベクトル上に大きなパワースペクトルが発生したと想定する。この場合、図9(a)の空間フィルタではパワースペクトルの変化量が増幅するが、図9(b)の空間フィルタでは、パワースペクトルの変化量はほとんど増幅されない。すなわち、複数の空間フィルタを並列にフィルタリングした場合には、周波数ベクトルが一致した空間フィルタ時のみパワースペクトルが増幅し、それ以外のフィルタでは増幅がほとんど無い。このため、いかなる周波数ベクトル上に大きなパワースペクトルが発生しているかを容易に特定することができる。
図11は、図7の間引き部A706、間引き部B707、変換値加算部708、分散値算出部709、および第二の判定部710の理想状態時の動作手順を示すフローチャートである。なお、ここで、理想状態時とは、カメラ姿勢が理想状態の場合を示している。例えば、解像度変換が不要であり、回転やあおりがない状態を示している。理想状態でない場合には、図示していないが、画像を回転・変形させる等して、分離処理を試行する処理が行われる。図11は、各ブロックごとの処理を示している。
図11においてステップS1101およびステップS1102は、変数の初期化を示す。具体的には、本フローで用いる変数i、jの値を0に初期化する処理が行われる。まず、図11を用いて全体の処理を説明した後に、図12および図13において具体例を示しながら説明をすることにする。
ステップS1103において、間引き部A706および間引き部B707による間引き処理の規則性の因子が決定される。すなわち、"周期性"、及び"位相"の2因子が決定される。本フローでは、周期性に関する変数をi、位相に関する変数をjとする。この周期性、及び位相の条件は、番号(ナンバー)により管理されている。ステップS1103では、この時点における周期性ナンバー(以下No.と略す)がiであり、かつ位相No.がjである間引き処理の規則性の因子が設定される。そして、設定された規則性の因子に従って、間引き処理が行われる。
ステップS1104において変換値加算部708は、間引きすることで得られたブロック内の変換値を加算する。加算した加算値は、変数の配列TOTAL[i][j]に格納される。
ステップS1105にて変数jをカウントアップして、ステップS1106にて変数jと固定値Jとが比較される。固定値Jは、位相を変化させて間引き処理をする回数が格納されている。変数jが固定値J未満であれば、ステップS1103に戻り、カウントアップ後のjによる新たな位相No.により、間引き処理、及び、間引き画素の加算処理が繰り返される。
位相をずらした間引き処理及び加算処理が、設定回数(固定値Jの回数)終了した場合には、ステップS1107に進み、分散値算出部709は、加算結果TOTAL[i][j]の分散値を算出する。すなわち、各加算結果が、位相の差により、どの程度ばらついているかを評価する。このステップS1107では、周期性の因子iを固定し、J個のTOTAL[i][j]の分散値を求める。つまり、TOTAL[i][0]、TOTAL[i][1]、・・・TOTAL[i][J]の分散値を求める。分散値はB[i]に格納する。
ステップS1108にて変数iをカウントアップして、ステップS1109にて変数iと固定値Iとが比較される。固定値Iは、周期性を変化させて間引き処理をする回数が格納されている。変数iが固定値I未満であれば、ステップS1102に戻り、カウントアップ後のiによる新たな周期性No.の条件を用いて、再び、間引き処理、及び、変換値の加算処理が繰り返される。
ステップS1109にてiが設定回数(固定値Iの回数)終了したと判断されると、分散値B[i]は、I個算出されて格納されていることになる。
ステップS1110に第二の判定部710は、I個の分散値の集合から、分散値の最大値を検出する。また、第二の判定部710は、検出したiの値を変数imaxに代入する。
ステップS1111で第二の判定部710は、多重化された符号(分離情報)を判定する。すなわち、周期性No.がimaxである符号を、多重化された符号(分離情報)であると判定し、処理を終了する。次に、具体例を用いて説明する。
図12および図13は、間引き方法の具体例を示す図である。ここでは、周期性の数を2(I=2)とし、位相の数を4(J=4)とした場合の例を示す。図12および図13は、ブロックサイズをP=Q=16とした時の間引き方法を、テーブル形式にて示している。それぞれの図において、ブロック内のひとマスが1画素分に対応している。図12および図13では、ブロック形状をP=Qの正方としているが、正方には限らないし、矩形以外でも良い。
図12は、周期性No.=0の場合における間引き方法(図7の間引き部A706に相当)を示している。図13は、周期性No.=1の場合における間引き方法(図7の間引き部B707に相当)を示している。各図のブロック内の各画素に示している値は、位相No.であるjの間引き画素を示している。例えば"0"と表示している画素は、j=0の時の間引き画素に対応する。すなわち、図12、図13ともに、位相は4種であり、位相No.jが0〜3の時の間引き方法に相当する。
図12は、図6(a)の周期性に一致している。図13は、図6(b)の周期性に一致している。前述のように、図6(a)および図6(b)のハッチングのマスの並びで量子化値“1”(但し、“0”、“1”の2値の場合)が並びやすくなる。その為、例えば、多重化時に量子化条件Aであったブロックの場合には、図6(a)の周期性で量子化値“1”が並びやすくなり、適合した空間フィルタ時には更にその周波数成分が増幅される。そして、図12に示す周期性で変換値を間引きして加算すると、その加算結果の分散は大きくなる。
一方、量子化条件Aであったブロックを、適合しない空間フィルタを用いてフィルタリングし、なおかつ、図13の周期性により間引きをした場合には、変換値の加算結果の分散値は小さくなる。すなわち、量子化値の周期性と間引きの周期性が異なる為、間引きの位相の違いによる変換値の加算値は平均的になり、ばらつきは小さくなるからである。反対に、多重化時に量子化条件Bであったブロックでは、図12の間引きでは、分散値は小さくなり、図13の間引きでは分散値は大きくなる。
図4に示したフローチャートの例を適用すると、bit=0を量子化条件A、bit=1を量子化条件Bに設定している。その為、周期性No.=0の分散値が大きいときにはbit=0、逆に周期性No.=1の分散値が大きいときには bit=1と判定することができる。
すなわち、量子化条件と、空間フィルタ特性および間引き条件の周期性とを関連づけることで、付加情報を容易に多重化し、かつ付加情報を容易に分離することを実現できる。本実施形態では、周期性No.は、0と1の2種であり、ブロック内の多重化符号は1ビットであったが、多重化符号はこれ以上でも良いのは勿論である。当然、量子化条件の種類と、空間フィルタの種類および間引き条件の周期性No.の種類(Iの値)とは一致することになる。従って、付加情報分離部106では、付加情報多重化装置102が行なった多重化の設定(量子化条件の種類や量子化閾値など)に対応する空間フィルタや間引き条件が設定されることになる。これらの設定は、使用者の操作に応じて設定がされてもよいし、対応するアプリケーションソフトウェアを通じて設定がされてもよい。
以上説明した形態では、直交変換による量子化条件の規則性に対応した周波数の電力値の比較をしなくても、容易に符号を分離できる。しかも、実空間領域の処理の為、非常に高速に分離処理が実現できる。
量子化条件A、B、空間フィルタA、B、および間引き手段A,Bは一例であり、これに限るものではない。他の周期性を持たせても良いし、空間フィルタのタップ数、および間引きのブロックサイズ等は前述した例よりも大きくても小さくても構わない。
また、図11の処理では、周期性No.である変数i、及び、位相No.である変数jの繰り返し処理にて説明している。しかし、実際には、P×Q画素よりなるブロック内の画素アドレスによる繰り返し処理の方が、実現が容易である。すなわち、図12および図13に示したように、ブロック内の各画素アドレスに対して周期性No.及び位相No.の2種の情報をテーブルとして予め格納しておき、対応した周期性No.及び位相No.の各々の変数に対して変換値を加算する処理でもよい。この処理方法では、P×Q画素分を処理するだけで、並列に、周期性No.及び位相No.の各集合の加算値を算出することができる。
また、図11の動作手順では、空間フィルタ後の間引きした変換値の加算結果の分散を算出して、分散値の大小比較により、符号を判定していたが、これに限るものではない。分散値を用いない評価関数の比較による方法も考えられる。間引きした変換値の加算結果の偏りは、位相をずらした際に、ひとつの位相の時だけ値が突出しやすいため、"ばらつき度合い"が評価できれば良い。
例えば、ばらつき度合いを評価するには、分散値以外に次の評価関数が考えられる。
1.間引きした変換値を加算した加算値の最大値と最小値の差分
2.間引きした変換値を加算した加算値の最大値と2番目に大きな値との差分、もしくは、最小値と2番目に小さな値との差分のどちらか
3.間引きした変換値を加算した加算値によるヒストグラムを作成した時の、前後の順番の差分の最大値
また、上記1、2、3の評価関数は絶対的な差分値であるが、これらの差分値と変換値、もしくは画素値や変換値の総和等との相対的な比率も評価関数として用いることができる。また、量子化値は2値化を例にして説明したが、これには限らない。
ここまで、付加情報の多重化方法と付加情報の分離方法について説明した。以下では、本実施形態において行なわれる撮像条件の制御について説明する。
<撮像条件の制御について>
図14は、本実施形態におけるカメラ付携帯端末104(付加情報分離装置)における処理手順の一例を示すフローチャートである。本実施形態におけるカメラ付携帯端末104は、撮像時に動画撮像または静止画撮像が選択可能であるものとする。図14に示す処理は、カメラ付携帯端末104のRAMなどに格納されている所定のアプリケーションプログラムを、カメラ付携帯端末104のCPUが実行することによって実現される。この所定のアプリケーションプログラムは、例えば付加情報を分離する処理を規定したプログラムとすることができる。
ステップS1401において撮像条件設定部109は、撮像部105における撮像条件を設定する。具体的にステップS1401では、撮像条件設定部109は、多重化印刷物から付加情報を抽出するための撮像条件として、動画撮像モードを設定する。本実施形態において初期の動画撮像モードでは、例えば解像度が1920画素×1080画素(フルHD映像信号)に設定され、フレームレートが30fpsに設定される。
ステップS1402において撮像部105は、ステップS1401で設定された撮像条件に従って多重化印刷物を撮像して、画像を得る。
ステップS1403において付加情報分離部106は、ステップS1402の撮像によって得られた画像を入力画像として用いて、付加情報分離処理を行う。具体的には、図7で説明した各部での処理を行うことで付加情報の分離が行なわれる。前述したように、付加情報を構成する各要素(ビット)の情報がブロック単位で多重化されている。ステップS1403の付加情報分離処理では、この各要素(ビット)の情報が、各ブロック単位で分離される。ブロック単位で分離することで得られる付加情報の一部の要素のことを分離情報ともいう。
ステップS1404において分離情報積算部107は、ステップS1403で分離された分離情報の数を積算する。すなわち、分離に成功したビット数を積算する。分離に成功したビット数が、埋め込まれた付加情報のビット数と同じであれば、付加情報の抽出が成功することになる。
ステップS1405において第一の判定部108は、どの程度分離に成功して、どの程度分離に失敗しているかの指標となる評価値(分離効率)を算出する。本実施形態では、各ブロックあたり1ビットの情報(分離情報)を得ることができる。このため、一度の撮像で得られた画像内のブロック数の中で何ビット分離ができたか(何ブロック分離に成功したか)によって分離効率を算出できる。本実施形態において分離効率は、分離可能性を表す指標になる。図15〜図17を用いて分離効率について説明する。
図15(a)は、写真である多重化印刷物の一例を示している。この印刷物には、図2を用いて説明した方法で、微小なブロック毎に1ビットの情報が多重化されている。図15(b)は、この多重化印刷物の一部分を動画撮像モードにて接写した一枚の画像を示している。印刷物とカメラ付携帯端末104との距離が離れると、印刷物に多重化されている所定の周波数を識別することが可能な解像度が望めなくなる。つまり、印刷物とカメラ付携帯端末104との距離が離れるほど、分離に失敗する可能性は高くなる。そのために使用者は、できる限りの接写で多重化印刷物を撮像することになる。ここで、本実施形態では、図15(b)に示す画像全体で1つの付加情報が多重化されているものとする。なお、付加情報は、図15(a)の多重化印刷物の中の、図15(b)に示す領域とは別の複数の領域に、同様に多重化されていてもよい。
図16(a)は、図15(b)の画像に対し、図8で説明したようなブロックの格子を当てはめた例を示している。実際には距離が不明なためにブロックの格子を適応させるには画像の拡大縮小を繰り返す複数回の試行が必要であるが、説明を容易にするために、図15(b)の画像を、横10ブロック、縦5ブロック分の50ブロックに分割したと想定する。この各ブロックに1ビットずつ情報が埋め込まれているために、全てのブロックにおいて分離に成功すると、50ビットの復号が可能となる。つまり、図15(a)の多重化印刷物に多重化されている付加情報は、50ビットの情報であり、図16(a)に示す50ブロックの全てのブロックで分離が成功した場合、付加情報の分離に成功したことになる。
図16(b)は、50ブロックの中で分離に成功したブロックの分布を示している。図16(b)において斜線で示したブロックが分離に成功したブロックである。図16(b)では50ブロック中の5ブロック成功しているので、分離効率は10%(5/50)となる。なお、ブロックの分離に成功したかは、分離して得られた符号(分離情報)の真偽を判定することで行なわれる。例えば、誤り訂正符号等を用いて各ブロックの分離が成功したかを判定できる。
図14のフローチャートの説明に戻る。上述したような処理によって、ステップS1405では分離効率が算出される。
ステップS1406において第一の判定部108は、分離効率が予め設定された閾値以上か否かを判定する。この判定処理は、このままの撮像モードで撮像を続けた場合に付加情報が十分に抽出できるか否かを判定する処理でもある。すなわち、撮像条件の設定を継続して撮像を続けるのか、あるいは撮像条件の設定を変更して撮像を続けるのかを判定する。閾値未満であれば、このまま使用者がカメラをかざしていたとしても効率的ではないと判定し、ステップS1407に進み、撮像条件設定部109は、撮像条件を静止画撮像モードに設定する。すなわち、撮像条件設定部109は、第一の撮像条件(動画撮像モード)から第二の撮像条件(静止画撮像モード)に設定を変更する。第二の撮像条件は、第一の撮像条件よりも高画質の画像が得られる撮像条件である。静止画は、動画に比べ処理負荷の観点から一枚当たりの解像度を高くすることが可能である。ステップS1407では、静止画解像度を3820画素×2160画素、シャッタースピードを1/250秒に設定する。静止画撮像モードに設定した後は、再度ステップS1402に戻り、撮像及び分離処理が繰り返される。
なお、ステップS1406の閾値は、判定の回数に応じて変動される変動閾値とすることができる。本実施形態では1回目の撮像及び分離で成功した情報は、2回目の撮像及び分離の処理に引き継がれることになる。このため、後続の判定処理で用いられる閾値を、先行する判定処理で用いられる閾値よりも値が高くなるように設定することで、より効率的な撮像条件の切り替えが可能となる。
一方、分離効率が予め設定された閾値以上である場合、ステップS1408に進む。ステップS1408において第一の判定部108は、積算された分離情報の情報量が所望の情報量に達したか否かを判定する。積算された分離情報の情報量が所望の情報量に達していない場合、ステップS1402に戻り、撮像及び分離処理を繰り返す。この場合、撮像条件の設定は切り替えずに、引き続き撮像及び分離処理が行われる。なお、ステップS1408の所望の情報量は、付加情報多重化装置102と付加情報分離装置(カメラ付携帯端末104)とのアプリケーションにおいて、予め決めておくとよい。例えば、付加情報多重化装置102側で50バイトの付加情報を多重化する場合には、付加情報分離装置側では50バイトの分離情報(符号)の復号が終了した時点で所望情報量に到達したことになる。また別の方法として、所望の情報量自体を付加情報として、多重化する方法も考えられる。この場合には可変長の情報量を埋め込むことが可能である。分離装置側では、予め埋め込まれた情報量に関する信号を復号し、その信号に基づいて所望情報量を知ることができる。例えば、最大50バイトの情報量を多重化できる装置において、30バイトしか多重化しなかった場合には、分離装置側では、30バイトの復号が完了した時点で終了することができる。
図17は、分離効率と撮像条件の設定の制御とを説明する図である。図17(a)は、図16(a)の画像に対して、1度目の分離処理で分離に成功した分離情報の分布及び分離効率を示している。図17(a)においては、図16(b)と同様に、斜線で示したブロックが分離に成功したブロックである。図17(a)の例では、50ブロック中、36ブロック成功しているので、分離効率は72%である。ここで、ステップS1406で用いる閾値が50%に設定されている場合には、再度、同じ撮像モードで画像を撮像して分離処理が行われることになる。図17(b)は、2度目の分離結果を一度目の分離結果に積算した結果を示している。つまり、1度目に分離に成功しているブロックに関しては2度目以降では分離処理をする必要はない。図17(b)では、更に10ブロック分、分離に成功したので、累積ブロック数は46ブロックになる。つまり、2度目終了時点で50ブロック中46ブロック成功しているので、累積の分離効率は92%になる。2度目の分離処理における閾値が70%に設定されている場合には、まだ閾値以上であるので、設定を継続したまま三度目の画像の撮像および分離処理が行われる。
なお、取得したブロックの位置やデータの開始位置を管理するために、所定ブロック単位に基準ブロックを設定して、アンカーの機能を持たせることができる。これにより、複数回の撮像で取得される画像がそれぞれ異なっていても、分離情報を累積することが可能となる。
図17(c)では、3度目の分離処理で全てのブロックの分離が成功したことを示している。これにより、一連の処理が終了する。
一方、図17(d)は、1度目の分離処理の分離効率が閾値まで達成しなかった例を示している。図17(d)は、5ブロックしか成功していないために、分離効率は10%である。このまま同じ設定で撮像を繰り返しても無駄になると判定し、静止画撮像モードに設定を切り替える処理が行われる。図17(e)は、静止画撮像モードに切り替えた後の二度目の(静止画撮像モードでは一度目の)画像の撮像及び分離処理によって分離に成功した分離情報の分布及び分離効率を示している。静止画撮像モードでは解像度を高く設定しているので、図17(e)では累積80%まで分離効率が向上する。図17(f)では、3度目の分離処理で全てのブロックの分離が成功し、処理が終了する。
このように、第一の撮像条件と第二の撮像条件では、解像度が異なる。この場合、ステップS1403の付加情報分離処理では、画像の拡大縮小処理を行うことで、多重化された画像と画素数を合わせる処理が行われる。拡大縮小処理は、複数段階に分けて行ってよい。そして、上述した分離処理が行われる。
なお、図17(d)で示したように分離効率が低いような場合、使用者がカメラ姿勢を変えることで分離効率が向上するような場合も有り得る。しかしながら、分離効率が低い場合に、どのようなカメラ姿勢にすれば分離効率が向上するかを使用者が判断することは一般的に難しい。そこで、本実施形態では、分離効率が低い場合には、撮像条件の設定を切り替えて、画像の撮像及び分離処理を行うことで、付加情報を好適に抽出することができる。
なお、本実施形態では説明を容易にするために、一枚の画像毎の分離処理で分離効率を評価する形態を例に挙げて説明した。しかしながら、同じ撮像条件の設定で複数回の分離処理を繰り返し行い、ステップS1406の判定処理は複数回に一度行なう形態でもよい。判定処理を複数回に一度行う形態の方が効率的である。
また、ステップS1406で用いる閾値は、分離処理の回数に応じて増加する形態を例に挙げて説明したが、回数ではなく処理時間に応じて閾値が増加する形態でもよい。すなわち、所定時間までにどの程度分離が成功しているのが効率的かの閾値を実験的に求め、最適値を設定してもよい。処理時間に応じた閾値を設定することは、ユーザーインターフェース的にも有効である。
また本実施形態の処理は、処理時間の観点からも有用である。静止画と動画とでは画像の取得時間が異なる。動画の方が短時間で複数枚の画像を取得することができる。このため、本実施形態では、解像度の低い動画で短時間に複数毎画像を取得し分離処理する。このような処理によれば、距離が適正である大多数のケースでは、短時間で処理を終えることができる。一方、距離を離してカメラを構えているような少数のケースにおいては、分離効率が低くなる。そこで、分離効率が低い場合には、適正なカメラ姿勢ではない(例えば距離が離れている)と判定し、距離に応じた撮像条件の設定に修正する処理が行われる。
なお、当初から高解像度の静止画を取得するような形態も考えられる。しかしながら、この場合には、動画ほど短時間で複数毎画像を取得することは困難である。このため、適正なカメラ姿勢である大多数の場合には、分離から成功までに処理時間を要してしまうので効率的ではない。
以上説明したように、本実施形態では、第一の撮像条件を動画撮像モードとし、第二の撮像条件を静止画撮像モードとする例を述べた。しかしながら他の方法でもよい。例えば、シャッタースピードを変化させる方法も考えられる。手持ちにてカメラを保持した場合には、シャッタースピードが速い方が手振れの影響の少ない鮮明な画像取得が可能になる。そのため、第一の撮像条件をシャッタースピードの遅い設定とし、第二の撮像条件をシャッタースピードが第一の撮像条件よりも速い設定に切り替える形態でもよい。
このように、本実施形態によれば、カメラ付携帯端末などのように、スキャナと異なり非接触で多重化印刷物の画像から付加情報を抽出する際に、好適に付加情報を抽出することができる。
<<実施形態2>>
実施形態1では、動画撮像モードと静止画撮像モードとの間で撮像条件の設定を切り替える形態を例に挙げて説明した。本実施形態では、JPEG撮像モードと、RAW画像撮像モードとの間で撮像条件の設定を切り替える形態を説明する。
図18は、本実施形態のフローチャートの一例を示す図である。図18では、図14の処理手順と同一工程には同一符号を付し、異なる点のみ説明する。すなわち、図18では、動画撮像モードと静止画撮像モードとの切り替えではなく、静止画撮像モード内の撮像条件の切り替えになっている。
ステップS1801において撮像条件設定部109は、初期設定となる撮像モードをJPEG圧縮による撮像モードに設定する。また、分離効率が悪い(閾値以上ではない)と判定された場合には、ステップS1802において撮像条件設定部109は、撮像モードをRAW画像撮像モードに設定する。すなわち、第一の撮像条件よりも圧縮率が低い画像(圧縮していない画像を含む)が得られる第二の撮像条件に変更して撮像が行なわれる。RAW画像撮像モードでは、情報量が多くメモリを大量に使用するために、JPEG撮像モードに比べて処理時間が長くなる。このため、JPEG画像に比べて時間あたりの画像の取得枚数は大幅に減少する。しかし、例えば視覚的に感度の低い色差成分(YUV色空間におけるUV成分)を利用して付加情報が多重化されている場合には、JPEGによる色差成分のサブサンプルが原因で分離効率が上がらないことが想定される。このような場合、撮像および分離処理を既に実施している途中からでもRAW画像撮像モードに変更し、画質の良い画像から分離処理をした方が、結果的には効率が良くなる。
なお、ここでは、JPEG撮像モードとRAW画像撮像モードとの間で撮像条件を切り替える形態を例に挙げて説明した。しかしながら、撮像する画像データのビット深度の条件を切り替える形態でもよい。
<<実施形態3>>
実施形態1では、分離効率が閾値以上であるか否かに応じて自動的に撮像条件を切り替える形態を説明した。本実施形態では、使用者の指示に基づいて撮像条件の切り替えを行なう例を説明する。
図19は、本実施形態のフローチャートの一例を示す図である。図19では、図14の処理手順と同一工程には同一符号を付し、異なる点のみ説明する。
ステップS1406において分離効率が閾値未満であると判定されると、ステップS1901に進む。ステップS1901においてカメラ付携帯端末104は、撮像条件の設定の変更を推奨する画面を表示する。ステップS1902においてカメラ付携帯端末104は、使用者からの設定変更に関する入力を受け付ける。ステップS1903においてカメラ付携帯端末104は、設定変更をする指示が入力されたと判定した場合、ステップS1904に進む。ステップS1904において撮像条件設定部109は、静止画撮像モードに撮像条件を設定変更して撮像を繰り返す。設定変更をしない指示が入力されたと判定した場合、ステップS1408に進み、同一の撮像条件での処理を繰り返す。
図20は、本実施形態におけるカメラ付携帯端末104の表示画面2000の例を示す。表示画面2000には、動画撮像モードボタン2001および静止画撮像モードボタン2002が配置されている。分離開始時の操作では、自動的に動画撮像モードが起動され、動画撮像モードボタン2001は、起動していることを明示するために、ボタンの色がグレイに表示されている。また、動画撮像モード時は、静止画撮像モードボタン2002は押下できないように構成されている。図19のステップS1406において閾値未満と判定された場合、表示画面2000上に、切り替えを推奨する説明文表示2003が表示される。また、静止画撮像モードボタン2002が入力可能になる。つまり、使用者は、動画撮像モードを継続するか、静止画撮像モードに切り替えるかが選択可能になる。使用者が押印したボタンは色がグレイに変わり、どのモードで撮像を実行しているかを使用者が確認することができる。
本実施形態では、使用者が撮像条件を明示的に切り替えることになる。このため、使用者は、現在どのような撮像条件での撮像が行なわれているのかを知ることができるので、使い勝手が向上する。
<<実施形態4>>
実施形態1から3では、付加情報の分離効率が所定の閾値以上か否かに応じて撮像条件を切り替える形態を例に挙げて説明した。本実施形態では、撮像部で撮像された撮像画像の特徴量を評価値として用い、特徴量に基づいて撮像条件を切り替えるか否かを判定する処理が行われる。
図21は、本実施形態における画像処理システムの一例を示す図である。図1と同様の構成については同一の符号を付し、説明を省略する。
図21のカメラ付携帯端末104は、第三の判定部2101を有する。第三の判定部2101は、図1で説明した第一の判定部108と異なり、撮像部105で撮像された画像に基づく判定を行なう。また、図21のカメラ付携帯端末104は、図1の付加情報分離部106および分離情報積算部107の機能を備えた付加情報分離部2102を備えている。
図22は、本実施形態における第三の判定部2101の処理を含むフローチャートを示す図である。図22において、図14と同一工程には同一符号を付し、異なる点のみ説明する。
ステップS2201において第三の判定部2101は、ステップS1402の撮像で得られた画像の鮮鋭度を検出する。鮮鋭度検出は公知の二次微分型のエッジ検出フィルタを用いることができる。ステップS2202において第三の判定部2101は、ステップS2201で検出した局所的な鮮鋭度を累積した画像全体の総合鮮鋭度を算出する。この総合鮮鋭度は、撮像した画像が適切なシャッタースピードで撮像されたか否かを検出する評価関数になっている。すなわち、シャッタースピードが遅い場合、カメラを手持ちしていることが原因で手振れの影響により取得された画像はぼけてしまう。本実施形態では、鮮鋭度を評価することで、シャッタースピード設定の良し悪しを評価することが可能となる。ステップS2203において第三の判定部2101は、総合鮮鋭度と予め設定していた閾値とを比較して、このままこの設定で継続して良いかを判定する。閾値未満であれば、ステップS1407に進み、撮像条件設定部109は、シャッタースピードを速くした静止画撮像モードに設定し、撮像を繰り返す。
本実施形態では、分離処理をすることなしに撮像条件の切り替えを判定することが可能であるので、高速に最適な処理が実現できる。なお、他の実施形態で説明した分離効率の判定処理も併用して行なってもよい。
<<その他の実施形態>>
以上説明した各実施形態では、撮像条件は2種類あり、所定の条件に応じて撮像条件を切り替える形態を説明した。しかしながら、撮像条件を3種以上保持して切り替える形態でもよい。また、実施形態4では、撮像画像の特徴量として鮮鋭度の例を述べたが、他の特徴量で有効である。例えば、図18の例で示したJPEG画像とRAW画像との設定の切り替えの際には、撮像画像のジャギー(エッジのがたつき度合)の発生度合を評価関数にすることも考えられる。また、前述した実施形態1から実施形態4までを各々組み合わせた形態を採用してもよい。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。