JP2017072958A - 画像処理装置および画像に多重化された情報の復号方法およびプログラム - Google Patents

画像処理装置および画像に多重化された情報の復号方法およびプログラム Download PDF

Info

Publication number
JP2017072958A
JP2017072958A JP2015198928A JP2015198928A JP2017072958A JP 2017072958 A JP2017072958 A JP 2017072958A JP 2015198928 A JP2015198928 A JP 2015198928A JP 2015198928 A JP2015198928 A JP 2015198928A JP 2017072958 A JP2017072958 A JP 2017072958A
Authority
JP
Japan
Prior art keywords
information
image
decoding
additional information
multiplexed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015198928A
Other languages
English (en)
Inventor
井口 良介
Ryosuke Iguchi
良介 井口
三宅 信孝
Nobutaka Miyake
信孝 三宅
祐樹 石田
Yuki Ishida
祐樹 石田
火韋 宋
Huowei Song
火韋 宋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2015198928A priority Critical patent/JP2017072958A/ja
Priority to US15/270,268 priority patent/US9961231B2/en
Publication of JP2017072958A publication Critical patent/JP2017072958A/ja
Priority to US15/933,645 priority patent/US10469701B2/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Editing Of Facsimile Originals (AREA)
  • Image Processing (AREA)

Abstract

【課題】画像データに情報を埋め込む多重化方式として複数の方式を利用可能な場合に、ユーザが煩わしい設定をすることなく、埋め込まれた情報を取得することが可能な画像処理装置、および画像に多重化された情報の復号方法およびプログラムを提供する。
【解決手段】カメラ付携帯端末の多重化デコード用アプリを立ち上げる。このデコード用アプリは、印刷物を撮影する撮影機能S1401と、複数の異なる多重化パターンをデコードする多重化デコード機能S1402と、デコードして取得した情報をそれぞれ複数の異なるメモリ領域に格納する情報格納機能S1403と、カメラ付携帯端末のディスプレイに表示するコンテンツ再生機能S1404を持っている。
【選択図】図14

Description

本発明は、画像処理装置および画像に多重化された情報の復号方法およびプログラムに関し、特に、画像情報中に、該画像情報とは別の情報、例えば音声情報やテキスト文書情報、画像に関する諸情報など全く別の画像情報を付加情報として、視覚的に目立たぬように埋め込まれた印刷物から、該付加情報を撮像媒体で読み出す画像処理に関する。
従来、画像情報中に、画像に関連のある他の情報を多重化する研究が盛んに行われている。近年では、電子透かし技術と称し、写真、絵画等の画像情報中に、その著作者名や、使用許可の可否等の付加情報を視覚的に判別しづらい様に多重化して、インターネット等のネットワークを通じて流通する技術が標準化されつつある。また、他の応用分野としては、複写機、プリンタ等の画像出力装置の高画質化に伴い、紙幣、印紙、有価証券等の不正な偽造を防止する目的で、紙上に出力された画像から出力機器、及び、その機体番号を特定する為に、画像中に付加情報を埋め込む技術がある。例えば、特許文献1では、印刷物に電子透かしを埋め込む際に、任意の一種類の電子透かし方式において、印刷物の種類や特性に応じて色や輝度を変更したパターンを埋め込むことで、そのパターンを目立たなくさせるという技術を提案している。
特許第3959890号明細書
しかしながら、特許文献1では、複数の異なる情報付加方式があり、そのうちのいずれかの方式で印刷物にパターンが埋め込まれる。その場合、特に電子透かし技術のようなユーザに不可視な多重化方式では、印刷物から該情報を取得する際にどのデコード方式で処理すべきか分からず、ユーザは一つ一つ試していく手間が発生してしまうという問題点がある。こ
本発明は上記従来例に鑑みて成されたもので、画像データに情報を埋め込む多重化方式として複数の方式を利用可能な場合に、ユーザが煩わしい設定をすることなく、埋め込まれた情報を取得することが可能な画像処理装置、および画像に多重化された情報の復号方法およびプログラムを提供することを目的とする。
上記目的を達成するために本発明は以下の構成を有する。
複数の異なる多重化方法のうちの少なくとも一つによって付加情報が多重化された印刷物を撮影した画像情報から前記付加情報を取得する画像処理装置であって、
前記複数の異なる多重化方法に対応した複数の異なる復号方法により前記画像情報から前記付加情報の復号を試みる復号処理手段と、
前記復号処理手段により復号が成功した前記付加情報を出力する出力手段と
を有することを特徴とする画像処理装置。
本発明によれば、画像データに複数の異なる方式で情報が埋め込まれていても、ユーザが煩わしい設定をせずに、印刷物から埋め込まれた情報を取得することが可能となる。
実施形態の付加情報多重化装置と付加情報分離装置の全体外観図である。 図1の付加情報多重化装置を示す要部ブロック図である。 量子化手段の詳細を示すブロック図である。 印刷物作成の動作手順を示すフローチャートである。 紙面上の電子透かし重畳領域を説明した図である。 量子化閾値の変化の周期を説明した図である。 RGBの輝度情報に周期性を加算した付加情報多重化装置を示す要部ブロック図である。 撮影された画像内での画像の傾きの説明する図である。 空間フィルタの例を示す図である。 周波数領域を説明した図である。 電子透かし復号の動作手順を示すフローチャート図である。 画素画素特定方法の例を示す図である。 画素画素特定方法の例を示す図である。 撮影した画像からコンテンツ再生するまでのフローチャートである。 図14の多重化デコード機能に格納された複数の異なるデコード処理を示す図である。 一種類の付加情報が埋め込まれた印刷物を撮影した画像を示す図である。 二種類の付加情報が埋め込まれた印刷物を撮影した画像を示す図である。 付加情報とQRコード(登録商標)が付加された印刷物を読み取った画像を示す図である。 付加情報とQRコード(登録商標)が付加された印刷物を読み取った画像を示す図である。 読み取った画像から情報判定するまでのフローチャートである。
以下、図面を参照して本発明に係る好適な実施形態を詳細に説明する。尚、実施形態における画像処理装置は、付加情報を印刷物に埋め込む付加情報多重化装置と、該付加情報を印刷物から読み取る付加情報分離装置がある。付加情報多重化装置として、プリンタエンジンへ出力すべき画像情報を作成するコンピュータ内のプリンタドライバソフト、もしくは、アプリケーションソフトとして内蔵することが効率的であるが、複写機、ファクシミリ、プリンタ本体等にハードウエア、及びソフトウエアとして内蔵することも効果がある。付加情報分離装置として、カメラ付携帯電話、カメラ付スマートフォンやタブレットPCなどが挙げられる。以下、こうした撮像デバイスをカメラ付携帯端末と呼ぶ。一方、付加情報分離装置として例えば、デジタルスチールカメラで撮影した画像をコンピュータ内のアプリケーションソフトで付加情報を分離する一連の装置でもよい。端末はコンピュータ等の情報処理装置であり、したがって実施形態で説明する手順は情報処理装置によって実行される画像処理方法あるいは情報処理方法である。カメラ付携帯電話のカメラは外付けのカメラであってもよい。なお実施形態等で用語「印刷」あるいは「印刷物」を用いているが、印刷されたオブジェクトが文字のみとは限らない。写真や線画などの他のオブジェクトも含めて「印刷」あるいは「印刷物」と称しており、「出力」や「出力物」と言い替えることもできる。
(第1の実施形態)
図1は、第1の実施形態の画像処理システムの構成を示すブロック図である。
入力端子100からは多階調の画像情報が、入力端子101からは、画像情報の中に埋め込むべき必要な付加情報が入力される。この付加情報は、入力端子100にて入力される画像情報とは別の情報、例えば音声情報や動画情報、テキスト文書情報、入力端子100にて入力される画像に関する著作権、撮影日時、撮影場所、撮影者等の諸情報、また、全く別の画像情報等、様々な応用が考えられる。
付加情報多重化装置102は、視覚的に判別しづらいように、画像情報中に付加情報を埋め込ませる装置である。この付加情報多重化装置102は、付加情報の多重化とともに、入力した多階調の画像情報の量子化をも司る。
プリンタ103は、付加情報多重化装置で作成された情報をプリンタエンジンにて媒体上に可視化し、印刷物として出力する。プリンタ103は、インクジェットプリンタ、レーザープリンタ等、疑似階調処理を用いることにより階調表現を実現するプリンタを想定する。
出力された印刷物上の画像は、カメラ付携帯端末104の撮像センサ105を用いて読みとり、付加情報分離装置106によって、印刷物に印刷された画像中に埋め込まれた付加情報を分離し、出力端子107に出力する。この出力端子107は、取得した付加情報を出力するインターフェイスであり、例えば音声情報であればカメラ付携帯端末104のスピーカー108への出力となり、画像情報であればディスプレイ109への出力となる。また、出力端子107は外部デバイスへデータを出力するインターフェイスでも構わない。また、カメラ付携帯端末104に複数の撮像センサがある場合、印刷物の撮影は第二撮像センサ111で行ってもよい。
<付加情報多重化装置102の構成>
図2は、図1の付加情報多重化装置102の構成を示すブロック図である。
誤差拡散部200は、入力端子100より入力された画像情報を誤差拡散法を用いた疑似階調処理することによって、入力階調数よりも少ない量子化レベルに変換し、複数画素の量子化値によって面積的に階調性を表現する。誤差拡散処理についての詳細は後述する。
ブロック化部201は、入力された画像情報を所定領域単位に区分する。このブロック化部201により行われるブロック化は矩形でも良いし、矩形以外の領域に区分しても良い。
量子化条件制御部202は、ブロック化部201にてブロック化した領域単位で量子化条件を変更し、制御する。量子化条件制御部202は、入力端子101から入力された付加情報に基づき、ブロック単位で量子化条件を制御する。量子化条件制御部202により制御され、出力される量子化条件には例えば量子化閾値を含む。2値化の場合には量子化閾値は1つであるが、多値化の場合には、量子化後の階調数に応じた数の閾値が出力される。また、階調数を量子化条件に含めてもよい。
制御部210は、CPU211、ROM212、RAM213などを含む。CPU211は、ROM212に保持された制御プログラムを実行して、上述した各構成たとえば誤差拡散部200、量子化条件制御部202の動作、及び処理を制御する。RAM213は、CPU211の作業領域として使用される。また上述したブロックは制御部210により制御されるハードウエアであってもよいが、制御部210によるプログラムの実行で実現される論理的な機能ブロックであってもよい。
<誤差拡散処理部200の構成>
図3は、誤差拡散処理部200の詳細を表すブロック図である。いま、量子化値が2値である誤差拡散処理を例にして説明する。
加算器300は、入力された画像情報の注目画素値と既に2値化された周辺画素の分配された量子化誤差とを加算する。量子化条件制御部202からの量子化閾値と、加算器300によって誤差が加算された画素値とを比較部301にて比較し、量子化閾値よりも大きい場合には"1"を、それ以外では"0"を出力する。例えば、8ビットの精度で画素の階調を表現する場合には、最大値である"255"と最小値である"0"で表現するのが一般的である。
いま、量子化値が"1"(すなわち255)の時に、紙上にドット(インク、トナー等)が印刷されると仮定する。減算器302は、量子化結果と、前述した注目画素値と分配された誤差との加算結果との誤差すなわち量子化誤差を算出し、誤差配分演算部303に基づいて、今後の量子化処理が施される周辺画素に誤差を配分する。誤差の配分割合は注目画素とその周辺画素との相対的な距離に基づいて実験的に設定された誤差の配分テーブル304を予め所有している。誤差配分演算部303は、配分テーブル304に記された配分割合に基づいて、減算器302により得られた量子化誤差を分配する。図3の配分テーブル304は、注目画素の周囲8画素のうち、量子化されていない4画素分の配分テーブルを示しているが、これに限るものではない。
<量子化条件制御部および誤差拡散部による処理手順>
次に量子化条件制御部202を含む全体の動作手順について、図4のフローチャートを基に説明する。いま、量子化値は2値である例について述べる。
S401では、制御部210が変数iの初期化を行う。変数iは処理対象の画素すなわち注目画素の垂直方向のアドレスをカウントする変数である。
S402では、制御部210が変数jの初期化を行う。変数jは注目画素の水平方向のアドレスをカウントする変数である。
続いてS403は、i、jのアドレス値による判定工程であり、制御部210が、現在の注目画素のアドレスである座標(i、j)が、多重化処理を実行すべき領域に属しているか否かを判定している。
図5を基に多重化領域について説明する。図5は、水平画素数がWIDTH、垂直画素数がHEIGHTから成る、ひとつの画像を示している。いま、この画像中に付加情報を多重化すると仮定する。画像の左上を原点とし、横N画素、縦M画素のブロックで画像をブロック化する。本実施形態では、原点を基準点としてブロック化を行うが、原点から離れた点を基準点として設定しても良い。この画像中に最大限の情報を多重化する場合に、N×Mのブロックを基準点から配置していく。すなわち、水平方向に配置可能なブロック数をW、垂直方向に配置可能なブロック数をHとすると、以下の関係になる。
W = INT(WIDTH / N) ...式1
H = INT(HEIGHT / M) ...式2
但し、INT( )は( )内の値の整数部分を示す。
式1、式2において割り切れない剰余画素数が、N×Mのブロックを画像中に複数配置した時の端部に相当し、付加情報を多重化する領域の外、すなわち符号多重化領域外となる。図4のS403においては、注目画素が、原点を基準にして水平方向にW x N、垂直方向にH x Mの矩形領域内にあれば符号多重化領域内と判定され、そうでなければ符号多重化領域外と判定される。ここでN,Mはブロック化部201によるブロックのサイズであり、WIDTH,HEIGHTは処理対象の画像データのサイズである。
図4中、S403にて、現在処理している注目画素が多重化領域外と判定された場合には、制御部210はS404にて量子化条件Cを設定する。一方、多重化領域内と判定された場合には、制御部210は多重化すべき付加情報をS405で読み込む。いま、説明を容易にする為に、付加情報をcode[ ]という配列を用いて、各1ビットずつ表現するものとする。例えば付加情報を48ビット分の情報と仮定すると、配列code[ ]はcode[0]からcode[47]まで、各1ビットずつが格納されていることになる。S405において、変数bitに、以下のように配列code[ ]内の情報を代入する。
bit = code[INT(i / M)×W + INT(j / N)] ...式3
ここで式3の右辺のインデックスは、ブロックをラスタ順に配置したときの順番を示している。式3により、処理対象の画像データの各ブロックに付加情報の各ビットが対応付けられる。このことから、付加情報codeのビット数は、W×H以下であり、望ましくはW×Hと等しい。例えば図5ではブロック数は4×6=24であるが、codeが48ビットであるなら、例えば8×6=48ブロックにブロック化することが望ましい。
続いて、制御部210は、S406にて、S405で代入した変数bitが"1"か否かを判定する。前述したように、配列code[ ]内の情報は配列要素ごとに1ビットずつ格納されている為、変数bitの値も"0"か"1"かの何れかを示すことになる。
制御部210は、S406にて"0"と判定した場合には、S407にて量子化条件Aを設定し、"1"と判定した場合には、S408にて量子化条件Bを設定する。
続いてS409では、設定した量子化条件に基づいて制御部210が量子化処理を行う。誤差拡散部200が行ってもよい。この量子化処理は、図3にて説明している誤差拡散法に相当する。
続いて、S410では水平方向変数jを1カウントアップし、S411にて画像の水平画素数であるWIDTH未満か否かを判定し、処理画素数がWIDTHになるまで前述の処理を繰り返す。また、水平方向の処理がWIDTH画素数分終了すると、S412にて垂直方向変数iを1カウントアップし、S413にて画像の垂直画素数であるHEIGHT未満か否かを判定し、処理画素数がHEIGHTになるまで前述の処理を繰り返す。
以上の動作手順により、N×M画素よりなるブロック単位で、付加情報に応じて量子化条件を変更することが可能になる。
<量子化条件>
続いて、量子化条件A、B、Cの例について説明する。誤差拡散法における量子化条件は様々な因子があるが、第1の実施形態では、量子化条件は量子化閾値とする。量子化条件Cが選択される場合は、注目画素は多重化領域外である為に、量子化閾値は何でも良い。前述したように、1画素が8ビットによる階調表現で、量子化レベルが2値の場合には、最大値である"255"、及び、最小値である"0"が量子化代表値となるが、その中間値となる"128"を量子化閾値として設定することが多い。すなわち、量子化条件Cでは、量子化閾値を"128"固定とする条件にする。量子化条件A、量子化条件Bを使用する場合は、注目画素が多重化領域内のブロックに属する為、量子化条件の違いによる画質の違いを生じさせなければならない。但し、画質の違いは視覚的には判別しにくいように表現し、かつ、紙上から容易に識別できなくてはならない。
図6は、量子化条件A、Bを表した例である。図6(a)は、量子化条件Aにおける量子化閾値の変化の周期を示した図である。図中、ひとつのマスを1画素とし、白いマスは固定閾値、灰色のマスを変動閾値とする。すなわち、図6(a)の例では、横8画素、縦4画素のマトリクスを組み、灰色のマスの閾値のみ突出した値を閾値として設定する。図6(b)は、同様に、量子化条件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の輝度情報を輝度‐色差情報(例えばYCrCb信号)に分離して周期性を多重化する方式
・RGBの輝度情報をインク色(例えばCMYK信号)に分離して周期性を多重化する方式
周期性の多重化は上述のように量子化閾値を用いてもよい。
<付加情報分離装置の構成>
次に、図1の画像処理システムにおける付加情報分離装置106について説明する。図7は、付加情報分離装置106の構成を示すブロック図である。説明を容易にする為に、前述した情報付加多重化装置102の例と同様、分割したブロック内に各1ビットずつの付加情報が多重化されている印刷物から分離する例について説明する。当然、多重化装置における1ブロックあたりの付加情報量と、分離装置における1ブロックあたりの分離情報量は等しくなる。
入力端子700には、カメラ付携帯端末104で読み込まれた画像情報が入力される。使用するカメラ付携帯端末104の撮像センサの解像度は、印刷物を作成するプリンタ解像度と同等以上が好ましい。当然、正確に印刷物のドットの点在情報を読み込む為には、サンプリング定理により、撮像センサ側はプリンタ側よりも2倍以上の解像度が必要になる。しかし、同等以上であれば、正確でなくとも、ある程度ドットが点在しているのを判別することは可能である。第1の実施形態では、説明を容易にするためにプリンタ解像度と撮像センサの解像度が同一解像度と想定する。
幾何学的ずれ検出部701は、カメラ付携帯端末104で撮影した画像の幾何学的ずれを検出する。処理対象の画像は、プリンタ出力、カメラ付携帯端末104撮影を経ている為に、入力端子700から入力される画像情報は、プリンタ出力以前の画像情報とは幾何学的に大きくずれている場合がある。そこで、幾何学的ずれ検出部701では、印刷物と印刷物以外との境界線をエッジ検出にて検出する。
図8は、入力端子700から入力される撮影画像を示した図である。いま、プリンタ解像度と撮像センサ解像度とが同一解像度であれば、プリンタの紙上記録時の斜行、及び、カメラ付携帯端末104を印刷物にかざす時のずれ等により、画像の回転方向(傾き)が補正すべき大きな要因となる。そのため、この印刷物の境界線を検出することにより、どの程度回転方向でずれが生じているかが判断できる。このずれ量は、たとえば水平方向の所定の画素数に対して垂直方向にずれた画素数などで表すことができる。
ブロック化部702は、横方向にP画素、縦方向にQ画素単位にブロック化をする。このブロックは、電子透かしの重畳時にブロック化したN×M画素よりも小さくなければならない。すなわち、
P≦N、かつ Q≦M ... 式4
の関係が成り立つ。
また、P×Q画素単位のブロック化は、一定間隔で行う。すなわち、多重化時のN×M画素よりなるブロックと想定される領域内に、P×Q画素単位のブロックがひとつ内包するようにブロック化する。つまりブロックのピッチは、水平方向についてN画素、垂直方向についてM画素が基本となり、この場合、ブロック間の間隙は、水平方向にN−P画素、垂直方向にM−Q画素となる。ただし、上述したように原画像とキャプチャ画像との間にはずれがあり、幾何学的ずれ検出部701により検出したずれ量を1ブロックあたりのずれ量に換算して、スキップ画素数に加算して補正する必要がある。たとえば或るP×Qブロックの右横のP×Qブロックを決定する際に、単に水平方向のピッチがN画素となるようにP×Qブロックを決めるのではなく、右方向にN画素移動した場合の垂直方向のずれを検出したずれ量から求め、その画素数だけ垂直方向にずらした位置を基準としてP×Qブロックを確保する。
空間フィルタ703、704は、それぞれ特性の異なっており、フィルタリング部705は、周辺画素との積和を演算するディジタルフィルタリングを行う。この空間フィルタ703,704の各係数は、多重化時の量子化条件の変動閾値の周期に適応して作成する。いま、多重化装置102において、付加情報の値に応じて図6(a)、(b)の2種の量子化閾値を用いることにより付加情報を画像データ多重化したとする。その時の分離装置106で使用する空間フィルタA703、空間フィルタB704の例を、図9(a)、(b)に示す。図中、5×5画素の中央部が注目画素になり、それ以外の24画素分が周辺画素になる。図中、空白部の画素は、フィルタ係数が"0"であることを表している。図から明らかな様に、図9(a)、(b)はエッジ強調のフィルタになっている。しかも、その強調するエッジの方向性と多重化で用いた変動閾値の方向性(具体的には黒画素が並び易い方向性)とが一致している。つまり、図9(a)は図6(a)に、また、図9(b)は図6(b)に一致するように作成する。
画素特定部706、707は、P×Q画素より成るブロック内のフィルタリング後の信号(以下、変換値と称す)を、ある規則性に基づいて画素位置の特定処理をする。第1の実施形態では、この特定する画素位置の規則性を周期性と位相とに分離して処理する。すなわち、画素特定部706、及び707では特定する画素位置の周期性が異なっていて、各々、位相を変化させた複数の画素位置特定処理を実行する。画素位置特定方法については後述する。
変換値加算部708は、画素特定部706、及び707にて特定した画素位置の変換値を、位相毎にそれぞれ加算する。この画素位置特定処理、及び、変換値の加算処理は、空間フィルタ703,704で強調した所定周波数ベクトルの電力を抽出することに相当する。周波数ベクトルとは、ここでは画像の水平方向と垂直方向それぞれの周波数成分の組であり、画像の二次元的な周波数特性を示す。
分散値算出部709は、位相毎に加算した複数の加算値の分散を、それぞれの周期性において算出する。
判定部710は、それぞれの周期性における分散値に基づいて、多重化された符号を判定する。
図10は、二次元の周波数領域で第1の実施形態の概略を示した図である。横軸は水平方向の周波数、縦軸は垂直方向の周波数を示している。中心となる原点は直流成分を示し、原点から遠ざかるにつれて、高周波域となる。図中の円は、誤差拡散によるカットオフ周波数を示している。誤差拡散法のフィルタ特性は、低周波域がカットオフされたHPF(ハイパスフィルタ)の特性を示し、そのカットオフされる周波数は、対象画像の濃度に応じて変化する。今回、量子化閾値の変更により、量子化後に発生する周波数特性が変化するが、図6(a)に示した量子化閾値を用いて量子化された画像では、図10の直線A上の周波数ベクトルに、また、図6(b)に示した量子化閾値を用いて量子化された画像では、図10の直線B上の周波数ベクトルに大きなパワースペクトルが生じる。すなわち、図6(a)の閾値マトリクスの白い部分を128、黒い部分を10とすると、黒い部分が黒画素となり易いことから、この閾値マトリクスを用いて量子化した画像では、垂直方向に4画素の整数倍の周期の、水平方向に8画素の整数倍の周期の成分すなわちその逆数の周波数特性が現れやすいと考えられる。つまり図6(a)の閾値マトリクスを用いて量子化した画像からは、垂直方向の周波数が水平方向の周波数のほぼ倍となる周波数ベクトルのパワースペクトルが検出される。図6(b)では、水平方向と垂直方向とが図6(a)の場合と入れ替わることとなる。付加情報の分離時には、この大きなパワースペクトルが発生する周波数ベクトルを検出することが多重化信号の判定につながる。そこで、各々の周波数ベクトルを個別に強調、抽出することが必要になる。
図9(a)、(b)は、特定の周波数ベクトルの方向性を有するHPFに相当する。すなわち、図9(a)の空間フィルタでは、直線A上の周波数ベクトルを強調することが可能になり、また、図9(b)の空間フィルタでは、直線B上の周波数ベクトルを強調することが可能になる。例えば、今、図6(a)による量子化条件の適用により、図10の直線Aの周波数ベクトル上に大きなパワースペクトルが発生したと仮定する。その時に、図9(a)の空間フィルタでは直線A上のパワースペクトルが増幅されるが、図9(b)の空間フィルタでは、ほとんど増幅されない。すなわち、複数の空間フィルタを並列にフィルタリングした場合には、周波数ベクトルが一致した空間フィルタ時のみ増幅し、それ以外のフィルタでは増幅がほとんど無い為、いかなる周波数ベクトル上に大きなパワースペクトルが発生しているかが容易にわかる。
<付加情報分離装置106による処理手順>
図11は、図7の画素特定部706、及び画素特定部707、変換値加算部708、分散値算出部709、判定部710の動作手順を示すフローチャートである。図11の手順は、図11に示した各構成要素で実行される。具体的には、S1103を画素特定部で、S1104を変換値加算部で、S1107を分散値部で、S1110,S1111を判定部710で実行する。その間にあるパラメータの設定処理や判定処理は例えば不図示の制御部などで行ってもよい。また、図11で言及する周期性No.の値は画素特定部から分散値部に至る処理ブロックのシーケンスに対応しており、図7では周期性No.の数は0,1の2つである。すなわち図11では周期性No.iの値を変えて直列的に処理されているが、図7のようにハードウエアで実現する場合には、異なる周期性No.に対応する処理は並列に実行される。このため図7の構成で図11の手順を実行する際には、パラメータiに関するS1108及びS1109は行われない。なお図11の処理は、不図示のCPU等のプロセッサーあるいは制御部により図11の手順全体を実現するためのプログラムを実行することで行われてもよい。以下の説明では、付加情報分離装置106が動作の主体であるとする。
図11中、S1101、及びS1102では、変数の初期化を行い、本フローで用いる変数i、jの値を0に初期化する。
S1103では、画素特定部706、707による特定する画素位置の規則性の因子、すなわち、"周期性"及び"位相"の2因子を決定する工程である。本フローでは、周期性に関する変数をi、位相に関する変数をjとする。この周期性及び位相の条件は、番号(ナンバー)により管理されていて、いま、周期性ナンバー(以下No.と略す)がi、位相No.がjである画素位置特定方法の因子を設定する。この例については図12、図13を参照して説明する。この因子により処理対象の変換値の画像データ中における位置が特定される。なおi,jはそれぞれ周期性と位相とを示すインデックスであるが、以下では周期性i、位相jと呼ぶこともある。
続いてS1104は、ブロック内で特定された位置の変換値を加算する工程である。加算した加算値を変数の配列TOTAL[i][j]として記憶する。パラメータi,jに応じて通常は複数の画素(変換値)が特定されるため、S1104では特定された位置の変換値の合計値を求めてTOTAL[i][j]に記憶する。
S1105にて変数jをカウントアップして、S1106にて固定値Jと比較する。Jは、位相を変化させて画素位置特定処理をする所定の回数が格納されている。もし、変数jがJ未満であればS1103に戻り、カウントアップ後のjによる新たな位相No.により、画素位置特定処理、及び、特定された位置の画素(すなわち変換値)の加算処理が繰り返される。インデックスjの値が異なれば、特定される画素の位置も異なる。
位相をずらした画素位置特定処理、及び加算処理が設定回数終了した場合には、S1107にて、加算結果TOTAL[i][j]の分散値B[i]を算出する。すなわち、各加算結果が、位相の差により、どの程度ばらついているかを評価する。ここでは、iを固定して、インデックスjについて0からJ−1までのJ個のTOTAL[i][j]の分散値を求める。分散値はB[i]とおく。
S1108にて変数iをカウントアップして、S1109にて固定値Iと比較する。Iは、周期性を変化させて画素位置特定処理をする回数が格納されている。もし、変数iがI未満であればS1102に戻り、カウントアップ後のiによる新たな周期性No.の条件を用いて、再び、画素位置特定処理、及び、変換値の加算処理及び分散の算出が繰り返される。分散値は、特定の位相インデックスに対応する画素への値"1"(あるいは255等の画素の最大値)の平均値からのばらつきを示しており、ばらつきが小さいほど値は小さく、ばらついているほど値は大きくなる。
S1109にてiが設定回数終了したと判断されると、分散値B[i]はI個算出できたことになる。S1110にて、I個の分散値の集合から分散値の最大値を検出し、その時のiの値を変数imaxに代入する。
S1111では、符号の判定の工程であり、周期性No.がimaxである符号を多重化された符号であると判定して終了する。ただし、ブロック内の画像に対するフィルタ処理によってパワースペクトルが表れない場合には、現在行っている復号処理は、多重化方法に対応した復号処理ではなく、復号は失敗したものと判定して処理を終了するのが望ましい。逆にパワースペクトルが表れるなら復号は成功したと判断できる。この判定は例えばB[imax]が所定の条件を満たしていないことを判定して実現できる。所定の条件としては例えばB[imax]が所定の閾値以上であることを採用できるが、分散Bは正規化された値ではなく、固定的な閾値が適当ではない場合もある。そこで、S1111では、たとえば考え得る最大の分散値Bmaxを求め、B[imax]/Bmaxを所定の閾値と比較して、閾値より小さければ復号は失敗したものと判定して処理を終了する。また一つのブロックで判断せず、所定数の連続したブロックで前記条件を満たさない場合に、復号が失敗したものと判定してもよい。なお分散値Bmaxはたとえば以下の手順で求めることができよう。すなわち、特定の位相No.に対応する位置の画素値(変換値)を"1"(あるいは255など、画素値の最大値)に、他の画素値を0とした画像について、図11の手順で分散を求め、その値をBmaxとする。そして、その値を量子化閾値マトリクスごとに関連づけて格納し、用意しておく。このようにすることでB[imax]/Bmaxは0と1との間の値をとるよう正規化され、固定的な閾値と比較することができる。なおこの閾値は実験的に決定しておけばよい。
いま、I=2、J=4の例を示す。図12、図13は、ブロックサイズをP=Q=16とした時の画素位置の特定方法をテーブル形式にて示している。図中、ブロック内のひとマスが1画素に相当する。図ではブロック形状をP=Qの正方としているが、正方には限らないし、矩形以外でも良い。
図12は、周期性No. = 0のときの画素位置特定方法(図7の画素特定部A706に相当)、図13は、周期性No. = 1のときの画素位置特定方法(図7の画素特定部B707に相当)を示している。図中、ブロック内の各画素に示している値は、位相No. jに対応する画素を示している。パラメータjは位相を示しているが、周期性と位相とにより画素ブロック中の画素位置が特定されることから、図11、図12では、特定される位置の画素に位相No.jの値をマークして示した。例えば"0"と表示している画素は、j= 0のときに特定される位置の画素に対応する。すなわち、図12、図13ともに、位相は4種であり、位相No.jが0〜3の時の画素の特定方法に相当する。すなわち、周期性No.の値に応じて図12や図13に示したマトリクスが特定され、特定されたマトリクスにおける画素の位置が位相No.の値に応じて特定される。
図12、図13に示した、同じ位相インデックス(位相No.)に対応する画素位置の周期性は、図6(a)の周期性と、図6(b)の周期性とにそれぞれ一致している。前述したように、図6(a)、(b)ともに図中の灰色のマスの並びで量子化値"1"(但し、"0"、"1"の2値の場合)が並びやすくなる。その為、例えば、多重化時に量子化条件Aであったブロックの場合には、図6(a)の周期性で量子化値"1"が並びやすくなり、その周期性に適合した空間フィルタによりフィルタリングすると更にその周波数成分が増幅される。そのため、特定の位相インデックスに対応する位置の画素に量子化値"1"が集中し、図12の周期性で変換値を特定して加算すると、その加算結果の分散は大きくなる。
それに比べて、量子化条件Aであったブロックを、適合しない空間フィルタを用いてフィルタリングし、なおかつ、図13の周期性により画素位置を特定した場合には、変換値の加算結果の分散値は小さくなる。すなわち、量子化値の周期性と特定される画素位置の周期性とが異なる為、特定する画素位置の位相の違いによる変換値の加算値は平均的になり、ばらつきは小さくなる。反対に、多重化時に量子化条件Bであったブロックでは、図12では、分散値は小さくなり、図13では分散値は大きくなる。
図4に示したフローチャートの例を当てはめると、bit = 0を量子化条件A、bit = 1を量子化条件Bに設定している為、周期性No. = 0の分散値が大きいとき(すなわちimax=0のとき)にはbit = 0、逆に周期性No. = 1の分散値が大きいとき(すなわちimax=1のとき)には bit = 1と判断できる。すなわち、量子化条件と、空間フィルタ特性、及び、画素位置を特定する条件の周期性とを関連づけることで、容易に画像と符号との多重化および分離(あるいは逆多重化)が実現できる。本実施形態では、周期性No.は0と1の2種であり、ブロック内の多重化符号は1ビットであったが、多重化符号はこれ以上でも良いのは勿論である。当然、量子化条件の種類と、空間フィルタの種類、画素位置特定条件の周期性No.の種類(Iの値)とは一致する。
以上の説明から明らかなとおり、図11の手順における所定の値Jは、画像データに多重化されている可能性のある符号情報の種類の数を示す。また所定の値Iは、1周期の間にとり得る位相の数を示す。本例では、位相は画素単位の離散的な値であるので、1周期の画素数をIの値としてもよい。
図11の手順は図5に示したブロックごとに適用されて、ブロックごとの量子化条件に対応する符号が判定される。そしてその例えばW×H個の符号を、ブロックの順序で配列することで、埋め込まれた符号情報を再生する。本例では、例えば量子化条件Aは"0"に、量子化条件Bは"1"に相当するので、これをブロックの順序で並べて元の符号情報が再生される。なお相異なる2n+1個の量子化条件(すなわち量子化閾値のパターン)を用意し、そのうちの2n個の量子化条件をnビットの符号語にそれぞれ対応付けることで、1ブロックあたりnビットの符号情報を多重化できる。
また図11の手順は、一方の方向について図11の手順を行うことで多重化した符号を特定できるのであれば、画像の一方の方向についてのみ実行すればよい。たとえば図6に示した量子化条件(すなわち符号パターン)は、一方の方向について図11を実行することで区別できる。しかし、一方の方向だけでは多重化された符号をひとつに絞れない場合には、水平方向および垂直方向それぞれについて実行し、各方向について独立してimaxの値を決定した後に、それらを総合して最終的なimaxを決定してもよい。例えば一方の方向について複数の分散値B[i]がほぼ同じ値となった場合、たとえば分散値の最大値との差分が所定値以内の分散値を最大値の候補とし、それら候補の分散値の周期性インデックスiを、imaxの候補として残しておく。そして水平および垂直の両方向についてimaxの候補を決定し、両方向に共通する周期性インデックスiの値を最終的なimaxとして決定する。そしてそのインデックス値imaxに関連付けられた符号を、画像に多重化された符号であると判定する。
また図11の手順は、画像情報と付加情報の画素パターンとの相関を求める手順と言い替えることもできる。すなわち、付加情報が多重化された画像情報と、多重化された付加情報の各ビットあるいはビット群に対応する画素パターン(量子化閾値に相当するパターン)との相関度を求める。そして、相関が所定程度より低ければ復号は失敗したものと判断し、所定程度以上の相関があれば、相関する画素パターンに対応するビットあるいはビット群が多重化されているものと判断する。このことは、図11の手順に限らず、上記相関の程度を求める手順を実行することで、多重化した付加情報を復号できることを意味している。あるいは、付加情報を多重化した画像のブロックごとに、当該ブロックに含まれる画像情報の空間周波数と量子化閾値マトリクスのパターンの空間周波数との一致の程度を判定し、一致の程度が所定の程度以上であれば、その量子化閾値マトリクスに対応した符号を復号する復号方法ということもできる。
第1の実施形態では、直交変換による量子化条件の規則性に対応した周波数の電力値の比較をしなくても、容易に符号を分離できる。しかも、実空間領域の処理の為、非常に高速に分離処理が実現できる。
以上、第1の実施形態を説明してきたが、量子化条件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値化を例にして説明したが、これには限らない。
このように第1の実施形態によれば、画像をM×N画素よりなるブロック単位で量子化条件を変更し、該量子化条件に従って画像を量子化することにより画像に対して所定の情報を埋め込むことができるので、従来における情報埋め込み方法、例えば直交変換をして情報を埋め込む方法に比べて、画質劣化を抑制し、かつ高速に、かつ埋め込まれた情報が精度よく抽出できるように画像に対して情報を埋め込むことができる。
[符号多重化の具体例]
以下に、カメラ付携帯端末104にて、符号情報が多重化された画像情報を可視化した多重化印刷物を撮影し、撮影により得た画像情報をデコードして得られた符号情報をコンテンツ表示するフローについて、その詳細を図14、図15を用いて説明する。ここで、本実施形態では、写真や広告チラシやチケットといった様々な印刷物を想定する。また、埋め込まれる情報は、写真の被写体の詳細情報や、撮影時の音声データや動画データ、商品の生産者やメーカーや消費期限、チケットの座席情報などを想定する。なお、以下の説明では、画像情報に埋め込まれた付加情報を多重化情報と呼ぶこともある。
ユーザはまず、カメラ付携帯端末104の多重化デコード用アプリを立ち上げる。このデコード用アプリは、図14に示すように、印刷物を撮影する撮影機能S1401と、複数の異なる多重化パターンをデコードする多重化デコード機能S1402と、デコードして取得した情報をそれぞれ複数の異なるメモリ領域に格納する情報格納機能S1403と、カメラ付携帯端末104のディスプレイ109に表示するコンテンツ再生機能S1404を持っている。各機能は、カメラ付携帯端末104の不図示のプロセッサーにより実行されるプログラムで、あるいはそれによって制御されるハードウエアデバイスで、あるいはその組み合わせによって実現される。
ユーザはカメラ付携帯端末104を印刷物にかざし、多重化パターンが読み取れる位置に調整する。その状態で撮影機能S1401によって印刷物を撮影して、その画像を保存する。
次に、多重化デコード機能S1402によって、撮影された画像に対して、複数の異なるデコード処理を行う。本実施形態では、三種類の異なる多重化情報A、B、Cが存在するケースを扱う。そして、印刷物にはそのうちのいずれか一種類が埋め込まれていることを前提とする。多重化デコード機能S1402は、上記三種類の異なる多重化情報A、B、Cにそれぞれ対応した、三種類の異なるデコード処理A'、B'、C'が備えられている。これを図15に示す。すなわち、多重化情報Aはデコード処理A'を、多重化情報Bはデコード処理B'を、多重化情報Cはデコード処理C'をかけることで、埋め込まれた情報を取得できるものとする。デコード処理の詳細は、図7および図11で説明したのでここでは割愛する。なお多重化情報(すなわち多重化された付加情報)Aは、図4の手順で多重化され、図11の手順で逆多重化される付加情報である。多重化情報B,Cは、この方法と同一の方法で異なる量子化条件により多重化した情報であってもよい。また、異なる方法で多重化された付加情報であってもよい。その多重化の方法としてはたとえば、ランダムノイズを埋め込む方法で多重化する手法や、人の目に視認しにくい赤外線インクや黄色インクを用いて画像に情報をオーバーレイする手法などがある。もちろんこれら多重化情報は、多重化の方法に応じた復号方法でデコードする必要があり、一定のレベルの信号を復号できない場合には、いずれの方法も復号が失敗したものと判断され、そこで復号処理を停止することができる。
それぞれのデコード処理によって画像情報に埋め込まれた符号情報がデコードされた結果、取得された情報は情報格納機能S1403によって多重化デコード用アプリのメモリ領域に保存される。この取得された所定の情報とは、例えば、写真の撮影日時や人物の情報、撮影された時の音声、撮影位置の情報が記載されたホームページのURLであったり、スーパーの広告チラシに印刷された商品の情報、旅行雑誌に印刷された観光地情報などである。
最後に、コンテンツ再生機能S1404で、取得された所定の情報を表示または再生する。例えば、写真に写っている人物の名前やプロフィール、撮影された時の音声を再生、URL先にアクセスして、ホームページを表示するといった例が挙げられる。または、スーパーの商品のコンテンツ取得現在の価格や、観光地の現在の天気などでもよい。
ここから、多重化デコード用アプリが単一のデコード処理を必要に応じて切り替えながら行う処理(以下、シングルスレッドと呼ぶ)によって、複数の多重化デコード処理を略同時に行うシステムを説明する。撮影された画像は多重化デコード用アプリのメモリ領域に保存される。
デコード処理を始める前は、ユーザは印刷物のどこにどの種類の多重化情報が埋め込まれているか分からない。そこで、図16に示すように、撮影された画像の先頭アドレスからデコード処理A'、B'、C'をシングルスレッド上で順次かけていく。例えば、多重化情報Aが10画素×10画素を1ブロックとして多重化されているなら、10画素×10画素を1ブロックとする符号多重化画像をデコードするためのデコード処理A'を、撮影された画像中の先頭のブロックに施す。先頭のブロックは、たとえば図8で説明した要領でブロック分けしたブロックのうち、ラスタ走査順で先頭となるブロックである。復号した付加情報が取得できればその情報をデコード処理A'用に確保されたメモリ領域に格納する。次に、多重化情報Bが例えば20画素×20画素を1ブロックとして多重化されているなら、20画素×20画素を1ブロックとする符号多重化画像をデコードするためのデコード処理B'を上述した要領で1つのブロックに適用する。この場合も上記同様に、復号した付加情報が取得できればその情報をデコード処理B'用に確保されたメモリ領域に格納する。多重化情報Cについても同様にデコード処理C'を施す。こうして、複数の異なるデコード処理を切り替えながら、撮影された画像から順にデコード処理をかけ、情報が取得できれば、各々のメモリ領域に格納していく。
ここで、複数の異なるデコード処理A'、B'、C'をシングルスレッド上で各々のブロック別に切り替えながら処理していったが、印刷物の中に一種類の多重化方法でしか付加情報が埋め込まれていないことが予め分かっていれば、最初に付加情報が検出された多重化方法に限定して、その後のデコード処理をその多重化方法に対応した手順を行えばよい。つまり、撮影された画像を先頭アドレスからデコード処理A'、B'、C'をかけていき、最初にデコード処理A'にて情報が取得されたなら、その後は画像の最後端までデコード処理A'のみをかける。こうすることで、デコード処理B'、C'をかける負荷が省けて、処理速度の短縮化を図ることができる。
一方、シングルスレッドにおいて、別の処理方法も提案する。撮影された画像全面すなわち画像情報全体にまずはデコード処理A'をかけ、それが終了すると再度画像の先頭アドレスに戻り、次に画像全面にデコード処理B'をかけ、それが終了すると今度は画像全面にデコード処理C'をかけるという方法である。埋め込まれた情報が例えば動画であり、全てをデコードし終わるのに時間がかかり、さらには全てをデコードし終えないと再生できない場合は、このように画像全面を一つのデコード処理で行う方法が、ユーザに早くコンテンツ再生できるので望ましい。
続いて、多重化デコード用アプリが複数のデコード処理を並行して行う処理(以下、マルチスレッドと呼ぶ)によって、複数の多重化デコード処理を略同時に行うシステムを説明する。この方法は、デコード処理の数に応じてスレッドを立てて、それぞれのスレッドで異なるデコード処理を行う。シングルスレッドの例と同様に、撮影された画像は多重化デコード用アプリのメモリ領域に格納され、各スレッドからアクセスできるものとする。マルチスレッドによる処理方法は、デコード処理を三つ並行して行えるので、シングルスレッドと比べて処理速度の短縮化を図ることができる。多重化デコード用アプリのメモリ領域に、情報格納機能S1403によって各デコード処理の結果を格納し、デコード処理A'で多重化情報がデコードできた場合、その結果を表すフラグを立てておく。こうすれば、印刷物に多重化情報Aが存在していることがわかるので、他のスレッドからデコード処理A'のフラグを参照すれば、デコード処理B'とデコード処理C'をその時点で終了すれことができる。このようにフラグを参照して不要なスレッドを中止することで、スレッドの数を減らし、多重化デコード用アプリの処理負荷を低減することができる。
ところで、撮影機能S1401でピンボケや手ぶれなどで印刷物がうまく撮影できていないと、多重化デコード機能S1402で多重化情報が正しく読み取れないことも考えられる。その場合は、カメラ付携帯端末104のディスプレイ109に再度撮影を行うようエラーメッセージを表示してもよい。
(第2の実施形態)
本実施形態では、図17に示すように、印刷物に三つの異なる多重化情報A、B、Cのうち少なくとも二つが埋め込まれていることを前提とする。ここでも、シングルスレッドとマルチスレッドのそれぞれについて説明する。
まず、シングルスレッドでデコード処理を行う場合は、第1の実施形態と同様に、撮影された画像の先頭アドレスからデコード処理A'、B'、C'をそれぞれのブロック毎に順に切り替えながらかけていく。この方法によると、最初に多重化情報Aがデコードされる(図17参照)。その間、デコード処理B'、C'は中断すればよい。その後、多重化情報Aの領域の復号処理が終了すると、再度デコード処理A'、B'、C'を順次切り替えながら、画像にかけていく。なお多重化情報Aの領域の復号処理の終了は、あるブロックに対するデコード処理A'による復号が失敗したことをきっかけとするので、当該ブロック以降の領域については、デコード処理A'を除いたレコード処理B'、C'を順次切り替えて復号を試みてもよい。デコードが完了した多重化情報Aについては、完了した時点でコンテンツ再生機能S1404にて情報を表示すればよい。こうすることで、次のデコード処理を待たずに、ユーザにコンテンツを表示することができる。さらに、デコード処理を続けると、図17に示すように、今度は多重化情報Bがデコードされる。ここでも、多重化情報Bがデコードし終わるまでは、デコード処理A'、C'を中止にすればよい。そうすることで、処理速度の短縮化を図ることができる。
図17の多重化情報Aに、多重化情報Bが画像の中のどの位置にあるかといった情報を埋め込んでおいてもよい。つまり、多重化情報Aをデコードしたのちに、多重化情報Bが埋め込まれた画像領域までアドレスを移動し、そこからデコード処理B'のみを行う。つまり、次の、或いは次以降の多重化情報の位置を埋め込んでおくことで、処理速度の短縮化を図ることができる。
ところで、第1の実施形態で、シングルスレッドにて画像全面にデコード処理A'をかけ、次に再び画像全面にデコード処理B'をかけ、その次に再び画像全面にデコード処理C'をかけた。本実施形態でも同様の処理方法を行ってもよい。この場合、デコード処理A'でデコードされた画像領域がどこかといった位置情報を、情報格納機能S1403で保存しておく。その画像領域には多重化情報B、Cは埋め込まれていないので、デコード処理B'とC'を行う際に、その位置情報を参照することで、デコード処理B'とC'を省略することができる。
次に、マルチスレッドにてデコード処理を行う方法を説明する。第1の実施形態と同様に、三つのスレッドによって、撮影された画像の先頭アドレスからデコード処理を行う。図17で先に説明したように、デコード処理A'にて多重化情報Aの結果が、デコード処理B'にて多重化情報Bの結果が取得され、その情報は情報格納機能S1403で格納される。通常は、先にデコードされた多重化情報Aをコンテンツ再生機能S1404にて再生すればよい。ところが、多重化情報Aが例えばホームページのURLであって、現在のネットワーク環境が接続されにくい場合、本来次に表示すべきだった多重化情報Bが、ネットワークが接続されるまで表示されないことになる。このような場合には、二番目に取得された多重化情報Bを先に表示するといった、コンテンツ表示の順番を入れ替える。例えば、コンテンツ再生機能S1404の中で、コンテンツ再生の待機時間を設けておき、その時間内に表示できない情報に関しては、表示順を最後に移動させる。そして、次に表示する予定だったコンテンツを先に再生する。これにより、ユーザは複数の情報を待ち時間を減らして取得することができる。
また、第1の実施形態と同様、デコード処理A'でデコードできた場合に、情報格納機能S1403にてそのフラグを立てておく。こうすれば、図17に示す印刷物の左上の領域に多重化情報Aが存在していることがわかり、他のスレッドであるデコード処理B'とC'の処理を、その画像領域においては処理を終了すればよい。また、多重化情報Aの最後に、埋め込んだ情報の終了個所を示す信号を入れておけば、それをデコードした時点で多重化情報Aの終了を識別できる。終了が識別できた画像領域を情報格納機能S1403にてフラグを立てておけば、他のスレッドのデコード処理が参照して、該画像領域のデコード処理は行わないようにしておく。こうして、多重化デコード用アプリの処理負荷を低減することができる。
これまでは、一つの印刷物を撮影してデコード処理するケースについて述べてきたが、例えばアルバムのように、複数の写真が並べられた1ページを撮影するケースも本発明が適用できる。アルバムの1ページ内に2枚の写真が並べられ、一つ目の写真に多重化情報Aが、二つ目の写真には多重化情報Bが埋め込まれていると、その1ページを撮影した画像は図17に他ならない。上記で説明したように、この撮影画像を複数の異なるデコード処理を行うことで、二つの写真からそれぞれ所定の情報を取得することができる。
本実施形態では、図17では二つの多重化情報AとBが印刷物上で重ならないことを想定したが、これら多重化情報が重なって印刷される場合もある。図7でも説明したように、本実施形態の多重化情報は周期性を制御して埋め込んでいるため、複数の多重化情報が印刷物上で重なった場合は、デコードできない可能性がある。そのため、複数の異なるデコード処理を行う際に、多重化情報が埋め込まれた領域が重なっていることが分かれば、多重化デコード用アプリで、その旨を示す警告などを表示すればよい。
(第3の実施形態)
上記二つの実施形態は、ユーザに不可視の不可視情報を印刷物に埋め込む例について述べた。第3の実施形態として、ユーザに不可視の多重化情報とバーコードやQRコード(登録商標)に代表されるユーザに可視の可視情報が混在する印刷物について説明する。
ユーザに不可視の多重化情報は、前述したように、写真や図柄など元々印刷物に印刷されているものに対して、印刷物のデザインを崩すことなく、情報を埋め込むことができる。その反面、ユーザは印刷物のどこに情報が埋め込まれているのか、識別できないという欠点がある。一方、バーコードやQRコード(登録商標)のようにユーザに可視の情報は、ユーザが印刷物のどこに情報が記載されているかを把握することができる。その反面、印刷物の空白部分に印刷しないといけないので、自由なデザインレイアウトを阻害することがある。
こうした利点や欠点を踏まえて、ユーザに存在を知らせたい重要な情報は、QRコード(登録商標)にして誰でも識別しやすくすればよい。例えば、広告チラシの印刷物において、詳細な情報を得るためにネットワークに接続させるなら、そのURLをQRコード(登録商標)にして印刷物に入れることで、ユーザの利便性を高めることができる。一方で、印刷物のデザインを崩してまで入れる必要がない付属的な情報や、限られたユーザのみに情報を提供したい場合などは、多重化情報として印刷物の元々のデザインに埋め込めばよい。
コンサートのチケットや航空券のチケットを例に、図18を用いて説明する。これまで述べてきた撮影デバイスは、カメラ付携帯端末104であったが、ここでは入場ゲートにある読み取りセンサとする。図18の画像が、チケットを読み取りセンサで読み取った画像である。コンサート会場や空港では、入場ゲートで読み取りセンサにQRコード(登録商標)をかざして入場するケースがある。チケットのQRコード(登録商標)には、購入者情報や座席情報などが埋め込まれている。ところが、バーコードやQRコード(登録商標)のように広く知られた仕様では、その中身の情報を改ざんされる恐れがある。そうした場合に、不可視の多重化情報をQRコード(登録商標)の付近に埋め込んでおくことが有効である。QRコード(登録商標)と同じ情報または改ざんされてはいけない情報のみを、多重化情報AとしてQRコード(登録商標)の付近に配置しておく。入場ゲートシステムにおけるデコード処理フローは、図20のようになる。入場ゲートの読み取りセンサにかざされたチケットは、読み取り機能S2001によって撮像される。デコード機能S2002には、QRコード(登録商標)をデコードする処理部と多重化情報Aをデコードする処理部があり、マルチスレッドにて撮影画像からそれぞれデコードを行う。デコードによって取得された情報は、情報格納機能S2003に格納される。次に、情報判定機能S2004で、QRコード(登録商標)から取得された情報と、多重化情報Aから取得された情報とを照合し、真偽を判定する。もしQRコード(登録商標)が改ざんされていて、多重化情報Aと不整合が発生した場合、入場ゲートを開けない、もしくは偽物であることを入場ゲートのディスプレイに表示する、もしくは入場ゲートから電子音を出して警告するといった機能を備えればよい。こうして、ユーザに識別しやすいようにチケットにQRコード(登録商標)を印刷して、その内容を管理し、一方で多重化情報を埋め込んで改ざん防止を行う。コンサート会場や空港では、短時間で大勢の客の入場に対応しなければならない。本実施形態では、マルチスレッドによる複数の異なるデコード処理によって、この課題を解決できる。
次に、図18、19に本実施形態の印刷物の一例を示す。図18は印刷物内に占めるQRコード(登録商標)の面積より多重化情報Aの面積の方が大きい。逆に、図19は印刷物内に占める多重化情報Aの面積よりQRコード(登録商標)の面積の方が大きい。広告チラシの印刷物で、ユーザに明示的に知らせたい情報が少ない場合は、図18のようにQRコード(登録商標)を少なくして、その他の付属情報を広告チラシの写真領域に埋め込む。これにより、写真領域を減らすことなく、必要な情報を広告チラシ一枚に埋め込められる。一方で、例えば広告チラシに掲載する商品の数が多く、それぞれにユーザに明示的に知らせたい情報がある場合は、写真領域を減らしてその分QRコード(登録商標)の数を増やし、空白領域にQRコード(登録商標)を印刷する。その中で、写真領域に多重化情報を埋め込む。このように、ユーザに明示したい情報量と、広告チラシのデザインレイアウトを考慮し、QRコード(登録商標)の量と多重化情報の量を決定するのが望ましい。その際に、先に記したようにデコード機能S2002でQRコードと多重化情報Aをデコードし、S2003でそれぞれ取得した情報を格納する。こうすることで、広告チラシに埋め込まれた情報を、ユーザがデコード方法を切り替えることなく、取得することができる。
ところで、QRコード(登録商標)やバーコードと多重化情報の二つの方法で、印刷物に同じ情報を埋め込む利点が、上記以外にもある。一般的にQRコード(登録商標)やバーコードは視認性を高めるために、黒で印刷されることが多い。すなわちインクジェットプリンタでは黒インクのみで印刷されることが多い。一方で、多重化情報は写真や図柄に埋め込むため、黒インク以外にも一般的にカラーインク(シアン、マゼンタ、イエローなど)で印刷されることが多い。ここで、印刷途中に黒インクがなくなったり、インクジェットプリンタのノズルが詰まって黒インクが出なくなった場合、QRコードは印刷できない。その際、カラーインクによって多重化情報が印刷物に埋め込まれていれば、多重化情報をデコードすることで所定の情報を取得することができる。
(その他の実施形態)
上記実施形態において、シングルスレッドで複数の異なるデコード処理を行う場合、デコード処理A'、B'、C'の順番に処理を行ってきた。しかし、デコード処理の順番はこれに限らない。例えば、前回の撮影画像にて、デコード処理C'で所定の情報が取得できたなら、今回のデコード処理もC'から行ってもよい。
また、ユーザが使用するデコード処理が決まっているなら、多重化デコード用アプリのUI上で使用するデコード処理を予め選択すればよい。こうすることで、使用しないデコード処理を省き、処理負荷を軽減することができる。
また、複数の異なる多重化情報から、複数の異なる所定の情報を取得した場合、コンテンツ再生機能S1404で表示する順番を予め定めておいてもよい。例えば、一つの撮影画像の中に複数の写真がレイアウトされていて、それぞれの写真から撮影日時、撮影時の音声、撮影場所などが取得できた場合、写真が撮影された時系列順に音声ファイルを再生させるといったことが考えられる。または、多重化情報が埋め込まれた位置の順に一つのリストを作成し、それを一括表示してもよい。
その他、撮像デバイスとして、第1〜第2の実施形態ではカメラ付携帯端末104を、第3の実施形態では入場ゲートの読み取りセンサを例に挙げた。本発明は情報が埋め込まれた印刷物が撮影できれば、そのデバイス形態は問わない。例えば、通信機能がついたデジタルスチールカメラ、パソコンに接続されているデジタルスチールカメラ、スキャナでもよい。さらには、眼鏡に内蔵されたウェアラブルカメラや車載カメラなどで、屋外に飾られた広告看板を撮影し、そこに埋め込まれた多重化情報から所定の情報を取得するといったケースも、全て本実施形態が適用できる。
また本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
100 画像情報、101 付加情報、102 付加情報多重化装置、103 プリンタ、104 カメラ付携帯端末、105 撮像センサ、106 付加情報分離装置

Claims (17)

  1. 複数の異なる多重化方法のうちの少なくとも一つによって付加情報が多重化された印刷物を撮影した画像情報から前記付加情報を取得する画像処理装置であって、
    前記複数の異なる多重化方法に対応した複数の異なる復号方法により前記画像情報から前記付加情報の復号を試みる復号処理手段と、
    前記復号処理手段により復号が成功した前記付加情報を出力する出力手段と
    を有することを特徴とする画像処理装置。
  2. 前記画像情報を分割したブロックを単位として前記付加情報は多重化されており、前記復号処理手段は、前記ブロックごとに、前記複数の異なる復号方法それぞれにより前記付加情報の復号を試み、成功した前記復号方法で前記画像情報の残りの部分について復号することを特徴とする請求項1に記載の画像処理装置。
  3. 前記復号処理手段は、前記画像情報の全体について、前記複数の異なる復号方法それぞれにより前記付加情報の復号を試みることを特徴とする請求項1に記載の画像処理装置。
  4. 前記復号処理手段は、前記画像情報に含まれる領域ごとに、前記複数の異なる復号方法それぞれによる前記付加情報の復号を試みることを特徴とする請求項1に記載の画像処理装置。
  5. 前記復号処理手段は、前記画像情報に含まれる領域から復号した前記付加情報により、前記付加情報が多重化された領域および当該領域の復号方法を特定し、特定した前記領域に多重化された付加情報を、特定した前記復号方法により復号することを特徴とする請求項4に記載の画像処理装置。
  6. 前記複数の異なる多重化方法のうちのひとつとして、前記画像情報を分割したブロックを単位として、前記ブロックに前記付加情報の符号に対応した量子化閾値マトリクスにより前記ブロックを量子化することで前記付加情報を多重化する第1の多重化方法を含み、
    前記復号処理手段は、前記ブロックごとに、当該ブロックに含まれる画像情報の空間周波数と前記量子化閾値マトリクスのパターンの空間周波数との一致の程度を判定し、一致の程度が所定値を超えていれば前記量子化閾値マトリクスに対応した符号を復号することを特徴とする請求項1乃至5のいずれか一項に記載の画像処理装置。
  7. 前記第1の多重化方法における前記付加情報の符号と前記量子化閾値マトリクスとの対応付けを変えることで前記複数の異なる多重化方法とすることを特徴とする請求項6に記載の画像処理装置。
  8. 前記第1の多重化方法と、前記第1の多重化方法とは異なる多重化方法を前記複数の異なる多重化方法とすることを特徴とする請求項6に記載の画像処理装置。
  9. 前記復号処理手段は、前記複数の異なる復号方法それぞれを並行して行うことで、前記画像情報から前記付加情報の復号を試みることを特徴とする請求項1乃至8のいずれか一項に記載の画像処理装置。
  10. 前記復号処理手段は、前記複数の異なる復号方法を切り替えながら行うことで、前記画像情報から前記付加情報の復号を試みることを特徴とする請求項1乃至8のいずれか一項に記載の画像処理装置。
  11. 前記付加情報は、不可視情報であることを特徴とする請求項1乃至10のいずれか一項に記載の画像処理装置。
  12. 前記付加情報は、可視情報と不可視情報とが混在していることを特徴とする請求項1乃至10のいずれか一項に記載の画像処理装置。
  13. 前記可視情報と前記不可視情報が混在している画像において、前記復号処理手段は、前記可視情報から取得した付加情報と、前記不可視情報から取得した付加情報とを照合し、一致を判定することを特徴とする請求項12に記載の画像処理装置。
  14. 印刷物を撮影して画像情報を得る撮影手段を更に有することを特徴とする請求項1乃至13のいずれか一項に記載の画像処理装置。
  15. 前記出力手段は、前記付加情報を再生する再生手段を含むことを特徴とする請求項1乃至14のいずれか一項に記載の画像処理装置。
  16. 複数の異なる多重化方法のうちの少なくとも一つによって付加情報が多重化された印刷物を撮影した画像情報から前記付加情報を取得する、画像に多重化された情報の復号方法であって、
    前記複数の異なる多重化方法に対応した複数の異なる復号方法により前記画像情報から前記付加情報の復号を試み、
    復号が成功した前記付加情報を出力する
    ことを特徴とする復号方法。
  17. 請求項1乃至15のいずれか1項に記載の画像処理装置の各手段としてコンピュータを機能させるためのプログラム。
JP2015198928A 2015-10-06 2015-10-06 画像処理装置および画像に多重化された情報の復号方法およびプログラム Pending JP2017072958A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2015198928A JP2017072958A (ja) 2015-10-06 2015-10-06 画像処理装置および画像に多重化された情報の復号方法およびプログラム
US15/270,268 US9961231B2 (en) 2015-10-06 2016-09-20 Image processing method that attempts decoding of additional information using a plurality of decoding methods, and apparatus therefor
US15/933,645 US10469701B2 (en) 2015-10-06 2018-03-23 Image processing method that obtains special data from an external apparatus based on information multiplexed in image data and apparatus therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015198928A JP2017072958A (ja) 2015-10-06 2015-10-06 画像処理装置および画像に多重化された情報の復号方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2017072958A true JP2017072958A (ja) 2017-04-13

Family

ID=58537779

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015198928A Pending JP2017072958A (ja) 2015-10-06 2015-10-06 画像処理装置および画像に多重化された情報の復号方法およびプログラム

Country Status (1)

Country Link
JP (1) JP2017072958A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019008745A (ja) * 2017-06-28 2019-01-17 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
JP2020005087A (ja) * 2018-06-27 2020-01-09 凸版印刷株式会社 情報処理システム及び印刷媒体

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019008745A (ja) * 2017-06-28 2019-01-17 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
US11463602B2 (en) 2017-06-28 2022-10-04 Canon Kabushiki Kaisha Image processing method, image processing apparatus, and storage medium that extract first information and second information from acquired image data and that process the first information on the basis of the second
JP2020005087A (ja) * 2018-06-27 2020-01-09 凸版印刷株式会社 情報処理システム及び印刷媒体
JP7070152B2 (ja) 2018-06-27 2022-05-18 凸版印刷株式会社 情報処理システム及び印刷媒体

Similar Documents

Publication Publication Date Title
US10469701B2 (en) Image processing method that obtains special data from an external apparatus based on information multiplexed in image data and apparatus therefor
US9569831B2 (en) Image processing apparatus, image processing method, and non-transitory computer-readable storage medium for extracting information embedded in a printed material
US9769380B2 (en) Image processing apparatus, method, and storage medium for obtaining watermark information
JP4296126B2 (ja) スクリーン作成装置
WO2005093653A1 (ja) 画像補正装置と方法、画像補正データベース作成方法、情報データ提供装置、画像処理装置、情報端末、および情報データベース装置
JP6512706B2 (ja) 透かし入り二次元コード、認証システム、認証方法、及びプログラム
US9648198B2 (en) Image processing apparatus, image processing method, and non-transitory computer-readable storage medium that embed additional information in an image having a plurality of pixels and image information
US10992837B2 (en) Information processing apparatus, control method thereof, and storage medium
US10424039B2 (en) Digital watermarks
JP6635741B2 (ja) 画像処理装置及び制御方法
CN109166193B (zh) 基于时间、位置、随机数和条形码的拍照打卡或取证方法
CN114265567A (zh) 一种水印打印方法、打印设备及储存介质
JP2017072958A (ja) 画像処理装置および画像に多重化された情報の復号方法およびプログラム
CN106327416B (zh) 一种基于印刷品的网点水印方法
US10033904B2 (en) Information processing apparatus for multiplexing information in an image, information processing method, and storage medium storing program
JP4469301B2 (ja) 情報埋め込み装置、印刷用媒体、および、情報読み取り装置
JP7451159B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP4881141B2 (ja) 画像処理装置および画像処理装置の制御方法
JP3478781B2 (ja) 画像処理装置、画像処理方法、及び記憶媒体
JP6952499B2 (ja) 情報処理装置及びプログラム
JP6051675B2 (ja) 画像処理装置、画像処理方法、プログラムおよび記録媒体
JP2017073649A (ja) 情報処理装置、情報処理方法、及びコンピュータプログラム
JP6296319B1 (ja) 情報処理装置、表示方法、読取方法、およびコンピュータ読み取り可能な非一時的記憶媒体
JP4337745B2 (ja) 画像処理装置及び方法
JP3535791B2 (ja) 画像処理装置、画像処理方法及び記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181009

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190809

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191008

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200221