IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許7458766情報処理装置、情報処理装置の制御方法、プログラムおよび記憶媒体
<>
  • 特許-情報処理装置、情報処理装置の制御方法、プログラムおよび記憶媒体 図1
  • 特許-情報処理装置、情報処理装置の制御方法、プログラムおよび記憶媒体 図2
  • 特許-情報処理装置、情報処理装置の制御方法、プログラムおよび記憶媒体 図3
  • 特許-情報処理装置、情報処理装置の制御方法、プログラムおよび記憶媒体 図4
  • 特許-情報処理装置、情報処理装置の制御方法、プログラムおよび記憶媒体 図5
  • 特許-情報処理装置、情報処理装置の制御方法、プログラムおよび記憶媒体 図6
  • 特許-情報処理装置、情報処理装置の制御方法、プログラムおよび記憶媒体 図7
  • 特許-情報処理装置、情報処理装置の制御方法、プログラムおよび記憶媒体 図8
  • 特許-情報処理装置、情報処理装置の制御方法、プログラムおよび記憶媒体 図9
  • 特許-情報処理装置、情報処理装置の制御方法、プログラムおよび記憶媒体 図10
  • 特許-情報処理装置、情報処理装置の制御方法、プログラムおよび記憶媒体 図11
  • 特許-情報処理装置、情報処理装置の制御方法、プログラムおよび記憶媒体 図12
  • 特許-情報処理装置、情報処理装置の制御方法、プログラムおよび記憶媒体 図13
  • 特許-情報処理装置、情報処理装置の制御方法、プログラムおよび記憶媒体 図14
  • 特許-情報処理装置、情報処理装置の制御方法、プログラムおよび記憶媒体 図15
  • 特許-情報処理装置、情報処理装置の制御方法、プログラムおよび記憶媒体 図16
  • 特許-情報処理装置、情報処理装置の制御方法、プログラムおよび記憶媒体 図17
  • 特許-情報処理装置、情報処理装置の制御方法、プログラムおよび記憶媒体 図18
  • 特許-情報処理装置、情報処理装置の制御方法、プログラムおよび記憶媒体 図19
  • 特許-情報処理装置、情報処理装置の制御方法、プログラムおよび記憶媒体 図20
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-22
(45)【発行日】2024-04-01
(54)【発明の名称】情報処理装置、情報処理装置の制御方法、プログラムおよび記憶媒体
(51)【国際特許分類】
   H04N 1/32 20060101AFI20240325BHJP
   H04N 1/405 20060101ALI20240325BHJP
   G06T 1/00 20060101ALI20240325BHJP
【FI】
H04N1/32 144
H04N1/405 510A
G06T1/00 500B
【請求項の数】 9
(21)【出願番号】P 2019225521
(22)【出願日】2019-12-13
(65)【公開番号】P2021097270
(43)【公開日】2021-06-24
【審査請求日】2022-12-06
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】後藤 文孝
(72)【発明者】
【氏名】山口 裕充
(72)【発明者】
【氏名】土井 司
(72)【発明者】
【氏名】溝口 慶範
【審査官】花田 尚樹
(56)【参考文献】
【文献】特開2006-094108(JP,A)
【文献】特開2009-017554(JP,A)
【文献】特開平10-290204(JP,A)
【文献】特開2017-073653(JP,A)
【文献】特開2001-103284(JP,A)
【文献】特開2003-087551(JP,A)
【文献】特開2019-009743(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 1/32 - 1/36
1/42 - 1/44
H04N 1/40 - 1/409
G06T 1/00 - 1/40
3/00 - 5/50
(57)【特許請求の範囲】
【請求項1】
特定の周波数特性を有するパターンを画像に埋め込むことによって、前記画像に付加情報を付加するための情報処理装置であって、
前記画像に付加すべき第1の付加情報と第2の付加情報とを取得する取得手段と、
前記画像の処理対象画素が、
前記第1の付加情報について2値のうちの第1の値を表すべき画素であり、かつ、前記第2の付加情報について2値のうちの第1の値を表すべき画素である場合には、第1の多重化パターンを用いて量子化を行い、
前記第1の付加情報について2値のうちの第2の値を表すべき画素であり、かつ、前記第2の付加情報について2値のうちの第1の値を表すべき画素である場合には、第2の多重化パターンを用いて量子化を行い、
前記第1の付加情報について2値のうちの第1の値を表すべき画素であり、かつ、前記第2の付加情報について2値のうちの第2の値を表すべき画素である場合には、第3の多重化パターンを用いて量子化を行い、
前記第1の付加情報について2値のうちの第2の値を表すべき画素であり、かつ、前記第2の付加情報について2値のうちの第2の値を表すべき画素である場合には、第4の多重化パターンを用いて量子化を行う
ように処理する処理手段と、
前記処理手段によって量子化された結果に基づいて、前記第1の付加情報と前記第2の付加情報とが前記画像に付加された処理済画像を出力する出力手段と、
を備え、
前記第1乃至第4の多重化パターンはそれぞれ、第1の周波数帯域の周波数特性を有するパターンと前記第1の周波数帯域よりも高い第2の周波数帯域の周波数特性を有するパターンとを合成したパターンであることを特徴とする情報処理装置。
【請求項2】
前記第1の周波数帯域を有する周波数特性を有するパターンには、第1のパターンと第2のパターンとが含まれ、
前記第2の周波数帯域を有する周波数特性を有するパターンには、第3のパターンと第4のパターンとが含まれ、
前記第1の多重化パターンは前記第1のパターンと前記第3のパターンとを合成したパターンであり、
前記第2の多重化パターンは前記第2のパターンと前記第3のパターンとを合成したパターンであり、
前記第3の多重化パターンは前記第1のパターンと前記第4のパターンとを合成したパターンであり、
前記第4の多重化パターンは前記第2のパターンと前記第4のパターンとを合成したパターンである
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記第1のパターンと前記第2のパターンとは、互いに異なる方向に前記第1の周波数帯域を有するパターンであり、
前記第3のパターンと前記第4のパターンとは、互いに異なる方向に前記第2の周波数帯域を有するパターンである
ことを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記第1の付加情報と前記第2の付加情報のそれぞれについて1つの値を表すのに、縦横それぞれ複数の画素を含む1つのブロックを用いることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
【請求項5】
前記処理済画像がカメラを用いて撮像されることで、前記第1の付加情報と前記第2の付加情報とがそれぞれ復元可能であることを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
【請求項6】
前記量子化は、誤差拡散法を用いた処理であることを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
【請求項7】
少なくとも1つのコンピュータを、請求項1乃至のいずれか1項に記載された情報処理装置の各手段とし機能させるためのプログラム。
【請求項8】
少なくとも1つのコンピュータを、請求項1乃至6のいずれか1項に記載された情報処理装置の各手段として機能させるためのプログラムを格納したコンピュータが読み取り可能な記憶媒体。
【請求項9】
特定の周波数特性を有するパターンを画像に埋め込むことによって、前記画像に付加情報を付加するための情報処理装置の制御方法であって、
前記画像に付加すべき第1の付加情報と第2の付加情報とを取得する取得工程と、
前記画像の処理対象画素が、
前記第1の付加情報について2値のうちの第1の値を表すべき画素であり、かつ、前記第2の付加情報について2値のうちの第1の値を表すべき画素である場合には、第1の多重化パターンを用いて量子化を行い、
前記第1の付加情報について2値のうちの第2の値を表すべき画素であり、かつ、前記第2の付加情報について2値のうちの第1の値を表すべき画素である場合には、第2の多重化パターンを用いて量子化を行い、
前記第1の付加情報について2値のうちの第1の値を表すべき画素であり、かつ、
前記第2の付加情報について2値のうちの第2の値を表すべき画素である場合には、第3の多重化パターンを用いて量子化を行い、
前記第1の付加情報について2値のうちの第2の値を表すべき画素であり、かつ、前記第2の付加情報について2値のうちの第2の値を表すべき画素である場合には、第4の多重化パターンを用いて量子化を行う
ように処理する処理工程と、
前記処理工程によって量子化された結果に基づいて、前記第1の付加情報と前記第2の付加情報とが前記画像に付加された処理済画像を出力する出力工程と、
を備え、
前記第1乃至第4の多重化パターンはそれぞれ、第1の周波数帯域の周波数特性を有するパターンと、前記第1の周波数帯域よりも高い第2の周波数帯域の周波数特性を有するパターン合成したパターンであることを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像情報に付加情報を埋め込む情報処理装置、情報処理装置の制御方法プログラムおよび記憶媒体に関する。
【背景技術】
【0002】
画像情報に対して、画像とは別の情報を多重化して印刷する電子透かし技術が知られている。電子透かし技術では、写真、絵画等の画像データに、その画像の著作者名や、使用許可の可否情報が付加情報として多重化され、当該付加情報が視覚的に認識しづらい状態で印刷される。例えば、複写機やプリンタ等の画像出力装置の高画質化が進む近年においては、画像を印刷する際にその印刷装置の機体番号を付加情報として多重化することにより、紙幣、印紙、有価証券等の偽造を抑制することができる。
【0003】
特許文献1には、印刷物を撮像して得られた画像データの中から補正マーカーを検出し、補正マーカーの変形度合いに基づいて幾何変換を行い、付加情報を取得する電子透かし検出方法が開示されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2005-026797号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
付加情報が多重化された印刷物においては、解像性能が異なる様々な撮像デバイスによって撮像されることが想定される。この際、同じ印刷物を撮像しても、解像性能が高い撮像デバイスでは付加情報を復元することができるが、解像性能が低い撮像デバイスでは付加情報を復元することができないことがある。解像性能が低い撮像デバイスを使用した場合、撮像デバイスが本来備える解像度以上で印刷物の画像を取得することはできないため、付加情報を復元することは困難な場合が考えられる。
【0006】
本発明は上記問題点を解消するためのものである。よってその目的とするところは、画像情報に多重化された付加情報を、異なる解像性能を有する撮像デバイスにおいて、それぞれ適切に復元させることが可能な情報処理装置を提供することである。
【課題を解決するための手段】
【0007】
そのために本発明は、特定の周波数特性を有するパターンを画像に埋め込むことによって、前記画像に付加情報を付加するための情報処理装置であって、前記画像に付加すべき第1の付加情報と第2の付加情報とを取得する取得手段と、前記画像の処理対象画素が、前記第1の付加情報について2値のうちの第1の値を表すべき画素であり、かつ、前記第2の付加情報について2値のうちの第1の値を表すべき画素である場合には、第1の多重化パターンを用いて量子化を行い、前記第1の付加情報について2値のうちの第2の値を表すべき画素であり、かつ、前記第2の付加情報について2値のうちの第1の値を表すべき画素である場合には、第2の多重化パターンを用いて量子化を行い、前記第1の付加情報について2値のうちの第1の値を表すべき画素であり、かつ、前記第2の付加情報について2値のうちの第2の値を表すべき画素である場合には、第3の多重化パターンを用いて量子化を行い、前記第1の付加情報について2値のうちの第2の値を表すべき画素であり、かつ、前記第2の付加情報について2値のうちの第2の値を表すべき画素である場合には、第4の多重化パターンを用いて量子化を行うように処理する処理手段と、前記処理手段によって量子化された結果に基づいて、前記第1の付加情報と前記第2の付加情報とが前記画像に付加された処理済画像を出力する出力手段と、を備え、前記第1乃至第4の多重化パターンはそれぞれ、第1の周波数帯域の周波数特性を有するパターンと前記第1の周波数帯域よりも高い第2の周波数帯域の周波数特性を有するパターンとを合成したパターンであることを特徴とする。
【発明の効果】
【0008】
本発明によれば、画像情報に多重化された付加情報を、異なる解像性能を有する撮像デバイスにおいて、それぞれ適切に復元させることが可能となる。
【図面の簡単な説明】
【0009】
図1】画像処理システムの構成を示すブロック図
図2】画像処理装置とカメラ付携帯端末のブロック構成を示す図
図3】付加情報多重化部に含まれる埋込みを行う構成を示すブロック図
図4】ブロックの分割方法を示す図
図5】量子化条件制御部が行う処理を説明するためのフローチャート
図6】量子化処理部が参照する閾値マトリクス
図7】2次元の周波数領域を示す図
図8】付加情報分離部に含まれる機能構成を示すブロック図
図9】空間フィルタを示す図
図10】付加情報分離部が行う処理を説明するためのフローチャート
図11】基準閾値マトリクスを示す図
図12】4種類の閾値マトリクスを示す図
図13】画像領域の構成を説明するための模式図
図14】単位ブロックの構成を示す図
図15】実施例1のcodeと閾値マトリクスの対応関係を示す図
図16】量子化条件制御部が行う処理を説明するためのフローチャート
図17】実施例2のcodeと閾値マトリクスの対応関係を示す図
図18】2つのパターンを合成した例を示す図
図19】低周波パターンに高周波パターンを合成した例を示す図
図20】複数の周波帯域に付加情報が埋め込まれた状態を説明する図
【発明を実施するための形態】
【0010】
以下、添付図面を参照して本発明の実施形態を説明する。以下の説明において、画像情報に付加する情報は「付加情報」、画像情報に対しデータ上の処理として付加情報を付加することを「多重化する」または「埋め込む」と表現する。
【0011】
[画像処理システムの構成]
図1は、本実施形態に採用可能な情報処理システムの構成を示すブロック図である。本実施形態における情報処理システムは、本実施形態の情報処理装置となる画像処理装置100とカメラ付携帯端末101とを含む。画像処理装置100は、印刷機能を有する印刷装置であり、例えば、MFP(多機能型周辺装置)とすることができる。カメラ付携帯端末101は、例えば、カメラ付携帯電話、カメラ付スマートフォンやタブレットPCとすることができる。
【0012】
画像処理装置100は、付加情報が多重化された印刷物104を出力する。そして、カメラ付携帯端末101は、撮像センサ107(カメラ)を用いて、印刷物104を撮像する。そのため、本実施形態では、画像処理装置100とカメラ付携帯端末101との間は、有線ネットワークや無線ネットワークで相互に通信可能であっても良いし、ネットワーク等を介して通信可能に接続されていなくても良い。
【0013】
画像処理装置100は、画像情報に付加情報を多重化する付加情報多重化部105を含み、カメラ付携帯端末101は、多重化された付加情報を撮像情報から読み出す付加情報分離部108を含む。付加情報多重化部105は、例えば、プリント部106(プリンタエンジン)へ出力すべき画像データを作成するプリンタドライバソフトウエア、もしくは、アプリケーションソフトウエアとして実現される。また、複写機、ファクシミリ、プリンタ本体等にハードウエアやソフトウエアとして内蔵される形態で実現されても良い。
【0014】
一方、付加情報分離部108は、例えば、デジタルスチールカメラで撮像して得られた撮像画像から付加情報を分離する内部のアプリケーションソフトウエアやハードウエアで実現されても良い。なお、本実施形態では、付加情報多重化部105とプリント部106が画像処理装置100に含まれるものとして説明するが、付加情報多重化部105とプリント部106が、別々の装置に分けられても良い。例えば、PCやスマートフォン等の情報処理装置が付加情報多重化部105を含み、前記情報処理装置とは異なる画像処理装置がプリント部106を含む形態でも良い。
【0015】
画像処理装置100において、入力端子102は、例えば、ネットワークI/F204から入力される構成を示し、また、入力端子103は、例えば、ネットワークI/F204や操作部206から入力される構成を示す。
【0016】
[付加情報を埋め込むための構成]
入力端子102から多階調の画像情報が入力され、入力端子103から画像情報に付加すべき付加情報が入力される。この付加情報は、画像情報とは別の情報、例えば音声情報や動画情報、文字情報、画像に関する著作権、撮像日時、撮像場所、撮像者の諸情報、若しくは、入力された画像とは別の画像情報等、である。さらに、付加情報は、画像ファイルとして構成された画像情報の一部として内包されていても良い。
【0017】
付加情報多重化部105は、視覚的に判別しづらいように、画像情報中に付加情報を埋め込む(多重化する)。プリント部106は、付加情報多重化部105で作成された情報に基づいて印刷処理を実行する。
【0018】
プリント部106は、例えば、インクジェットプリンタ、レーザプリンタ等、疑似階調処理を用いることにより階調表現を印刷物104上に実現するプリンタである。
【0019】
図2(a)は、画像処理装置100のブロック構成を示す図である。CPU200は、画像処理装置100の内部を統括的に制御するプロセッサである。図1の付加情報多重化部105は、例えば、CPU200により実現される。ROM201やHDD203は、画像処理装置100の基本プログラムや制御プログラム、各種アプリケーションやデータ等を記憶する。CPU200は、ROM201に記憶されたプログラムをRAM202に読み出して実行することにより、各実施形態の動作を実現する。RAM202は、CPU200のワーキングメモリとしても用いられる。
【0020】
ネットワークインタフェース(NW I/F)204は、例えば、有線や無線等、ネットワークの形態に応じた構成を有する。また、通信範囲が異なる複数種類の無線ネットワークにも対応可能であり、例えば、通信距離が数cmといった近距離無線通信(NFC:Near Field Communication)により、カメラ付携帯端末101と通信することが可能である。
【0021】
ディスプレイ205は、ユーザーに各設定画面やプレビュー画面等を表示する。操作部206は、キーボードやタッチパネル等を有し、ユーザーからの操作指示を受付可能である。
【0022】
デバイスI/F207は、プリント部106(プリントエンジン)と、システムバス209とを接続する。図2(a)では、プリント部106が示されているが、デバイスI/F207には、画像処理装置100の実行可能な機能に応じて、スキャナ、FAX等、他のブロック機能が接続されても良い。
【0023】
画像処理部208は、外部から取得した画像データに対して、用途に応じた画像処理を実行する。例えば、画像処理部208は、プリント部106の記録方式に応じた色空間変換や二値化処理、画像の拡大/縮小/回転、といった処理を実行する。
【0024】
図2(a)に示す各ブロックは、システムバス209を介して相互に通信可能に接続される。本実施形態の画像処理装置100は、図2(a)に示す以外の構成であっても良く、例えば、システムバス209とイメージデータバスとがバスブリッジを介して接続された形態であってもよい。その場合には、例えば、デバイスI/F207がイメージデータバスに接続される。
【0025】
[付加情報の読取りのための構成]
再度図1を参照する。カメラ付携帯端末101上で実行される読取アプリケーションは、撮像センサ107を用いて印刷物104を撮像する。撮像センサ107は、AF(Auto Forcus)、AE(Auto Exposure)、AWB(Auto White Balance)の下で撮像処理を行い、取得した撮像画像を付加情報分離部108に送信する。読取アプリケーションは、付加情報分離部108によって、多重化された付加情報を撮像画像から分離し、付加情報チェック部109によって分離された付加情報のチェックを行い、チェック後の付加情報を出力端子112より出力する。出力端子112は、取得した付加情報を出力するインタフェースである。例えば付加情報や文字情報であれば、ディスプレイ110へ出力し、URLなどのリンク情報であれば、ディスプレイ110上でブラウザを起動してリンク先を表示する。また、外部デバイスへデータを出力するインタフェースに出力しても良い。また、スピーカー111は、操作に関する情報や、判定の結果等を音声情報として出力する。
【0026】
図2(b)は、カメラ付携帯端末101のブロック構成を示す図である。カメラ付携帯端末101は、CPUやROMやRAMといった、汎用的な情報処理装置の構成を含む。CPU210は、カメラ付携帯端末101の内部を統括的に制御するプロセッサである。図1の付加情報分離部108は、例えば、CPU210により実現される。ROM211は、カメラ付携帯端末101の基本プログラムや制御プログラム、各種アプリケーションやデータ等を記憶する。CPU210は、ROM211に記憶されたプログラムをRAM212に読み出して実行することにより、各実施形態の動作を実現する。RAM212は、CPU210のワーキングメモリとしても用いられる。
【0027】
ネットワークI/F(NW I/F)213は、有線や無線等、ネットワークの形態に応じた構成を有する。また、通信範囲が異なる複数種類の無線ネットワークにも対応可能であり、例えば、通信距離が数cmといった近距離無線通信(NFC:Near Field Communication)により、画像処理装置100と通信することが可能である。
【0028】
ディスプレイ110は、ユーザーに各設定画面やプレビュー画面等を表示する。操作部214は、ハードキー等を有し、ユーザーからの操作指示を受付可能である。スピーカー111は、ユーザーに操作に関する情報や、判定の結果等を音声情報として出力する。図2(b)に示す各ブロックは、システムバス215を介して相互に通信可能に接続されている。
【0029】
[付加情報の基本的な埋込み処理]
ここで、本実施形態の特徴的な埋め込み処理を説明する前に、図3図6を用いて、本実施形態の前提となる基本的な埋込み処理について説明する。
【0030】
図3は、図1の付加情報多重化部105に含まれる機能構成を示すブロック図である。入力端子102に入力される画像情報は、印刷すべき画像領域に含まれる複数の画素の集合体である。個々の画素は多値の(例えば256値)の階調値を有している。量子化処理部300は、一般的な誤差拡散法を用い、個々の画素が有する階調値をより少ないレベル(例えば2値)の階調値に変換する。そして、変換後の画像情報をプリント部106へ出力する。プリント部106は、入力された画像情報に基づいて、各画素についてドットの記録または非記録、或いはドットの大きさを制御して階調を表現する。以下の説明では、量子化処理部300が多値の画素値をドットの記録(1)または非記録(0)を示す2値に量子化するものとする。
【0031】
ブロック化部301は、入力端子102に入力された画像情報を複数のブロックに分割する。
【0032】
図4は、ブロックの分割方法を示す図である。ここでは、画像領域1000の横方向(X方向)の画素数をWIDTH、縦方向(Y方向)の画素数をHIGHTとして示している。
【0033】
例えば、1つの符号を示すためにN画素×M画素が要されるとすると、画像領域1000に埋め込むことができる符号の数は、画像領域1000をN画素×M画素で分割した際に形成可能なブロック数の最大値に相当する。図4において、画像領域1000に含むことのできるX方向のブロック数をH、Y方向のブロック数をWとすると、WとHは、式(1)、式(2)から求めることができる。
W = INT(WIDTH/N) ・・・(1)
H = INT(HEIGHT/M) ・・・(2)
なお、式(1)、式(2)において、INT()はカッコ内の整数部分を示す。
【0034】
式(1)、式(2)において、カッコ内の除算の剰余は、画像領域1000において付加情報を埋め込むことのできないX方向、Y方向の画素数に相当する。一方、それ以外の領域は付加情報を埋め込むことが可能な多重化領域1001となる。すなわち、多重化領域1001は画像領域1000の一部である。図4の例では、W=4、H=6となり、画像領域1000に4×6=24個の符号を埋めることができる。
【0035】
なお、図4では、画像領域1000と多重化領域1001とが左上の原点Oで一致している例を示しているが、多重化領域1001は、画像領域1000の一部であればどの位置に配されてもよい。また、ここでは画像領域1000を矩形のブロックに分割したが、ブロックは矩形以外の形状であってもよい。
【0036】
図3の説明に戻る。量子化条件制御部302は、入力端子103より入力された付加情報に基づいて、ブロック化部301で生成された各ブロックの量子化条件を設定し、量子化処理部300に指示する。量子化処理部300は、指示された量子化条件に従って、個々の画素の量子化処理を行う。
【0037】
図5は、量子化条件制御部302が行う処理を説明するためのフローチャートである。本処理は、例えば、画像処理装置100のCPU200がROM201に記憶されているプログラムをRAM202に読み出して実行することにより実現される。
【0038】
本処理が開始されると、CPU200はS401において変数iを0に初期化する。変数iは、画像領域1000におけるY方向の画素位置をカウントする変数であり、RAM202で管理される。
【0039】
S402において、CPU200は、変数jを0に初期化する。変数jは、画像領域におけるX方向の画素位置をカウントする変数であり、変数iと同様、RAM202で管理される。
【0040】
S403において、CPU200は、処理対象画素(j,i)が多重化領域1001(図5参照)に属しているか否かを判定する。多重化領域1001に属していないと判定した場合、CPU200はS404に進み、処理対象画素(j,i)に対し量子化条件Xを設定する。一方、多重化領域1001に属していると判定した場合、CPU200はS405に進む。
【0041】
S405において、CPU200は処理対象画素(j,i)に対応するbit情報(1又は0)を取得する。ここで、bit情報について説明する。
【0042】
本基本例において、付加情報は、それぞれが1bit情報を有するcode[n]の配列によって表現される。例えば、付加情報が図4のブロック数と同じ24ビット分の情報の場合、code[n]は、code[0]~code[23]まで存在し、それぞれが1bit情報を有している。ここで、code[n]とは、画像領域1000内のn番目のブロックのコードを示す。なお、n番目のブロックとは、図5におけるW×H=24個のブロックのうち、左上から右方向にカウントして行き、右端に到達したら1つ下方向に移動するというカウント方法における、n番目のブロックである。以上のことより、処理対象画素(j,i)に対応付するbit情報は、式(3)によって表わすことができる。
bit = code[INT(i/M)×W+INT(j/N)]・・・(3)
【0043】
S406において、CPU200は、処理対象画素(j,i)に対応するbit情報が「1」であるか否かを判定する。bit=0の場合、CPU200はS407に進み、処理対象画素(j,i)に対し量子化条件Aを設定する。一方、bit=1の場合、CPU200はS408に進み、処理対象画素(j,i)に対し量子化条件Bを設定する。
【0044】
S409において、CPU200は処理対象画素(j,i)に対する量子化処理を行う。すなわち、S404、S407或いはS408で設定された量子化条件に基づいて、処理対象画素(i,j)に対する量子化処理を行い、記録(1)又は非記録(0)を表す量子価値を決定する。量子化処理の詳細については後に詳しく説明する。
【0045】
S410において、CPU200は変数jをカウントアップし、S411において変数jがWIDTH未満か否かを判定する。変数jがWIDTH未満である場合、CPU200はS403に戻り、次の処理対象画素についての処理を行う。一方、変数jがWIDTH未満でないと判定した場合、CPU200はS412に進み、変数iをカウントアップする。
【0046】
S413において、CPU200は、変数iがHEIGHT未満か否かを判定する。変数iがHEIGHT未満である場合、CPU200はS402に戻り、次の処理対象画素についての処理を行う。一方、変数iがHEIGHT未満でないと判定した場合、本処理を終了する。
【0047】
ここで、S409で行う量子化処理について説明する。本実施形態において、量子化処理は誤差拡散処理によって行われる。この際、量子化処理部300(CPU200)は、誤差拡散処理で用いる量子化閾値を、量子化条件によって異ならせる。以下、入力画素が256階調の階調値を有する場合を例に、具体的に説明する。
【0048】
誤差拡散処理において、量子化処理部300は、処理対象画素の画素値Inに周辺画素の量子化処理によって生成された誤差Eを加算し、得られた値In´を量子化閾値Hと比較する。そして、式(4)に従って処理対象画素の量子化値Outを決定する。
In´>H のとき Out=1
In´≦H のとき Out=0・・・(4)
【0049】
ここで、Out=1は処理対象画素にドットを記録することを意味する。また、Out=0は処理対象画素にドットを記録しないことを意味する。そして、本実施形態では、このような誤差拡散処理を行う際に用いる量子化閾値Hを、量子化条件に応じて異ならせる。
【0050】
具体的には、量子化条件Xが設定されたとき、量子化処理部300は、量子化閾値Hを画素位置によらず、一律の量子化閾値H(H=128)を設定する。一方、量子化条件A又は量子化条件Bが設定されたとき、量子化処理部300は、画素位置に応じて量子化閾値を異ならせる。
【0051】
図6(a)及び(b)は、量子化条件A又は量子化条件Bが設定されたときに量子化処理部300が参照する閾値マトリクスを示す図である。両図において、各マスは1画素に相当する。すなわち、図6(a)は横12画素×縦8画素の画素領域に対応する閾値マトリクスであり、同図(b)はX方向8画素、Y方向12画素の画素領域に対応する閾値マトリクスである。これら閾値マトリクスにおいて、白画素は量子化閾値Hとして固定閾値(H=128)が設定される画素、斜線画素は固定閾値よりも低い変動閾値(ここではH=10)が設定される画素を示している。なお、ここでは示していないが、量子化条件Xの場合は、全ての画素が白画素の閾値マトリクスを使用することとなる。
【0052】
以下、量子化条件Aが設定された場合に使用される図6(a)に示す閾値マトリクスを第1の閾値マトリクス、量子化条件Bが設定された場合に使用する図6(b)に示す閾値マトリクスを第2の閾値マトリクスと称する。第1の閾値マトリクスと第2の閾値マトリクスを比べると、変動閾値が設定される画素(斜線画素)の並びが異なっていることがわる。
【0053】
式(4)に基づいた量子化処理を行う場合、変動閾値(H=10)が設定される画素は、固定閾値(H=128)が設定される画素に比べ、量子価値Outが1になりやすく、ドットが配置されやすくなる。このため、第1の閾値マトリクスの下で量子化した領域においては図6(a)の斜線に沿ったラインが周期的に出現し、第2の閾値マトリクスの下で量子化した領域においては、図6(b)の斜線に沿ったラインが周期的に出現する。
【0054】
量子化条件制御部302は、ブロック化部301が生成した複数のブロックのそれぞれに対し、第1の閾値マトリクスまたは第2の閾値マトリクスのいずれかを、code[0]~code[23]のbit情報に基づいて設定する。これにより、画像領域1000においては、誤差拡散処理で使用する閾値マトリクスがブロックごとに定められ、特徴の異なるパターンがブロックごとに埋め込まれる。このような特定の周波数特性を有するパターンは、プリント部106によって印刷された画像においては視覚的には確認され難いが、その印刷物を記録解像度以上の解像度で撮像した場合は、画像を解析することによって抽出することができる。
【0055】
図6(c)及び(d)は、閾値マトリクスの別形態を示す図である。これら閾値マトリクスにおいて、白画素は量子化閾値Hとして固定閾値(H=128)が設定される画素、ドットを付した画素は固定閾値よりも低い変動閾値(ここではH=10)が設定される画素を示している。
【0056】
図6(c)及び(d)の閾値マトリクスと図6(a)及び(b)の閾値マトリクスとの違いは、変動閾値の配列方向と配列周期である。図6(a)及び(b)の閾値マトリクスにおいて、変動閾値のラインはY方向またはX方向に6画素周期に現れるが、図6(c)及び(d)の閾値マトリクスでは、上記の半分の周期すなわちY方向またはX方向に3画素周期に現れる。図6(c)及び(d)のような閾値マトリクスを用いた場合でも、code[n]のbit情報に対応付けられるパターンを各ブロックに埋め込むことができる。
【0057】
ところで、以上説明したような閾値マトリクスの中に変動閾値を所定の方向に配列させる構成は、組織的ディザ法によるディザ処理を採用した場合にも実現することはできる。しかしながら、全ての画素の閾値が予め定められている組織的ディザ法において、所定の変動閾値を決まった位置に配置させることは、画像の階調性を崩すおそれがある。これに対し、本例のような誤差拡散処理を採用すれば、変動閾値で発生した誤差は周囲の画素に拡散されるため、変動閾値に対応する画素の入力階調値がマクロ的に保存され、階調性の崩れを抑えることができる。
【0058】
図7(a)および(b)は、図6(a)~(d)の閾値マトリクスを用いて、画像処理装置100が出力した印刷物におけるドットの空間周波数を、2次元の周波数領域で示す図である。横軸はX方向の周波数、縦軸はY方向の周波数を示している。原点は直流成分を示し、原点から離れるにつれて周波数は高くなる。
【0059】
図6(a)に示す第1の閾値マトリクスが使用されたブロックでは、直線Aで示す周波数ベクトル上の点Pa、点Pa´に、大きなパワースペクトルが現れる。図6(b)に示す第2の閾値マトリクスが使用されたブロックでは、直線Bで示す周波数ベクトル上の点Pb、点Pb´に、大きなパワースペクトルが現れる。点Pa、点Pa´、点Pb、点Pb´は原点からの距離が等しく、円で示される同一周波数帯域に乗っている。
【0060】
一方、図6(c)に示す閾値マトリクスが使用されたブロックでは、直線Cで示す周波数ベクトル上の点Pc、点Pc´に、大きなパワースペクトルが現れる。図6(d)に示す閾値マトリクスが使用されたブロックでは、直線Dで示す周波数ベクトル上の点Pd、点Pd´に、大きなパワースペクトルが現れる。点Pc、点Pc´、点Pd、点Pd´の原点からの距離は、点Pa、点Pa´、点Pb、点Pb´の原点からの距離の2倍であり、円で示される同一周波数帯域上に乗っている。
【0061】
このように、局所的に強いパワースペクトルが存在する座標は、印刷物の撮像画像を解析することによって取得することができる。図1の付加情報分離部108においては、図7(a)および(b)の点Pa~Pdのうち、どの点でパワースペクトルが強まっているかを判定することにより、そのブロックで使用された閾値マトリクス即ち付加された符号を判別することができる。
【0062】
[付加情報の読取り処理]
図8(a)は、図1の付加情報分離部108に含まれる機能構成を示すブロック図である。入力端子700に入力される撮像画像は、画像処理装置100より出力された印刷物を撮像センサ107が読み取り、所定の処理を施したものである。撮像センサ107の撮像解像度は、画像処理装置100のプリント部の印刷解像度以上であることが好ましいが、ここでは説明を簡易にするため、撮像解像度も印刷解像度も同等であるとする。個々の画素は多値の(例えば256値)の階調値を有している。
【0063】
ブロック化部701は、入力端子700に入力された撮像画像を分割し複数のブロックを生成する。この際生成するP画素×Q画素のブロックは、付加情報多重化部105のブロック化部301が生成するN画素×M画素のブロックよりも小さいサイズとする。すなわち、以下の関係が成り立つ。
P≦N、かつ Q≦M
【0064】
更に、ブロック化部701は、これらP画素×Q画素のブロックを、XY方向に一定の間隔をおきながら生成し、付加情報多重化部105で生成されたN画素×M画素のブロックにP画素×Q画素のブロックが1つずつ含まれるようにする。
【0065】
ブロック化部701で生成された複数のブロックの撮像画像は、フィルタリング部704に送信される。フィルタリング部704は、受信した撮像画像に対し、空間フィルタA702を用いたフィルタリング処理と、空間フィルタB703を用いたフィルタリング処理とを並列に行い、得られた結果を間引き部A705と間引き部Bにそれぞれ送信する。
【0066】
図9(a)および(b)は、空間フィルタAと空間フィルタBの例を示す図である。個々のマスが1つの画素を示し、中心の画素が処理対象画素となる。フィルタリング部704は、このようなハイパスフィルタを用いた積和演算を行って、処理対象画素の階調値を変換する。
【0067】
ここで、図9(a)に示す空間フィルタAにおける係数「2」の配列は、図6(a)で示した第1の閾値マトリクスの変動閾値の配列と等しく、図7(a)の直線A上の周波数ベクトルと同調する。このため、第1の閾値マトリクスが用いられた領域に現れる図6(a)のパターンは、空間フィルタAを用いたフィルタリング処理によって強調される。この際、同じ領域に図8(b)~(d)の空間フィルタを用いたフィルタリング処理を行っても、上記パターンは強調されない。
【0068】
一方、図9(b)に示す空間フィルタBにおける係数「2」の配列は、図6(b)で示した第2の閾値マトリクスの変動閾値の配列と等しく、図7(a)の直線B上の周波数ベクトルと同調する。このため、第2の閾値マトリクスが用いられた領域に現れる図6(b)のパターンは、空間フィルタBを用いたフィルタリング処理によって強調される。この際、同じ領域に図8(a)(c)(d)の空間フィルタを用いたフィルタリング処理を行っても、上記パターンは強調されない。このように、付加情報分離部108では、画像処理装置100の付加情報多重化部105で使用する閾値マトリクスと同調可能な空間フィルタを、個々の閾値マトリクスに対応付けて予め用意している。
【0069】
図9(c)および(d)は、付加情報多重化部105において図6(c)および(d)で示した閾値マトリクスが使用される場合に用意する空間フィルタを示す。図9(c)の空間フィルタは、図7(b)の直線C上の周波数ベクトルと同調し、図6(c)の閾値マトリクスを用いた領域で図6(c)のパターンを強調させる。図9(d)の空間フィルタは、図7(b)の直線D上の周波数ベクトルと同調し、図6(d)の閾値マトリクスを用いた領域で、図6(d)のパターンを強調させる。
【0070】
図9(e)および(f)は、付加情報多重化部105において図6(c)および(d)で示した閾値マトリクスが使用される場合に、対応可能な空間フィルタの別例を示す。図9(e)および(f)の空間フィルタも、図7(b)の直線Cの周波数ベクトル及び直線Dの周波数ベクトルとそれぞれ同調するが、図9(c)および(d)の空間フィルタよりもサイズが大いため、より多くの周辺画素の情報が取り入れられる。つまり、図7(b)で示した2次元の周波数領域における、点Pc,Pdのパワーを更に強調させることができる。
【0071】
図8の説明に戻る。間引き部A705および間引き部B706は、空間フィルタAを用いたフィルタリング処理後の変換値と、空間フィルタBを用いたフィルタリング処理後の変換値のそれぞれに対し、所定の間引き処理を行う。具体的には、間引き部A705では、ブロック内に配列する画素から、図6(a)のパターンに基づいて斜線画素を間引き出す処理を、複数の位相について行う。また、間引き部B706では、ブロック内に配列する画素から、図6(b)のパターンに基づいて斜線画素を間引き出す処理を、複数の位相について行う。
【0072】
変換値加算部707は、間引き部A705および間引き部Bのそれぞれより間引き出された画素の変換値の総和を、位相ごとに求める。この際、間引き出された画素が、各バターンの斜線画素すなわち変動閾値が用いられた画素と一致するような位相では、上記総和が他の位相の総和よりも突出して大きくなる。
【0073】
分散値算出部708は、上記複数の位相それぞれに対応する複数の総和の分散値を、空間フィルタA、Bについて求める。このとき、ブロック内に出現するパターンと同調しない空間フィルタが用いられた場合は、分散値は比較的小さくなる。一方、ブロック内に出現するパターンと同調する空間フィルタが用いられた場合は、突出して大きな総和となる位相が存在するため、分散値は大きくなる。
【0074】
また、上記説明した複数の位相に対する間引き、変換値加算、分散値算出の一連の処理を、複数の周期に対して実施する。
【0075】
判定部709は、それぞれの分散値算出部708より得られた複数の周期分の分散値を比較し、分散値が最大となる周期に対応する空間フィルタに対応付けられた符号を判定する。
【0076】
図10は、付加情報分離部108が行う処理を説明するためのフローチャートである。本処理は、図2(b)に示すカメラ付携帯端末101のCPU210が、ROM211に記憶されているプログラムをRAM212に読み出して実行することにより実現される。
【0077】
本処理が開始されると、CPU210はS1101において変数iを初期化する。本フローチャートにおいて、変数iは、周期の種類を切り替えるための変数である。例えば、図9(a)と図9(b)の空間フィルタがブロック化部701で生成したブロック内を移動していく際のスキップ画素数が変数iに相当する。
【0078】
S1102において、CPU210は、変数jを初期化する。本フローチャートにおいて、変数jは、位相を切り替えるための変数である。例えば、図9(a)と図9(b)の空間フィルタがブロック化部701で生成したブロック内を移動していく際の各ブロックにおけるXとY方向のスタート位置が変数jに相当する。
【0079】
S1103において、CPU210は、設定された周期iと位相jの組み合わせに基づいた間引き処理を行う。具体的には、処理対象となるブロックの中から、iとjの組み合わせによって定められる規則(パターン)に基づいて複数の画素を間引きだす。S1103で行う処理が、図7の間引き部A705または間引き部B706で行う処理に相当する。
【0080】
S1104において、CPU210は、間引き出された複数の画素の変換値(フィルタ処理後の階調値)の総和を算出し、TOTAL[i][j]として記憶する。S1104で行う処理が、図7の変換値加算部707で行う処理に相当する。
【0081】
S1105において、CPU210は、位相を示す変数jをカウントアップし、S1106において、変数jがJ未満か否かを判定する。変数jがJ未満である場合、CPU210はS1103に戻り、次の位相についての処理を繰り返す。一方、変数jがJ未満でない場合、CPU210はS1107に進む。
【0082】
S1107において、CPU210は、変数iが固定された下での、位相(j=0~J)それぞれに対応する総和の分散値を求め、得られた分散値をB[i]として保存する。S1107で行う処理が、図7の分散値算出部708で行う処理に相当する。
【0083】
S1108において、CPU210は、周期を示す変数iをカウントアップし、S1109において、変数iがI未満か否かを判定する。変数iがI未満である場合、CPU210はS1102に戻り、再び位相jを初期化した上で、次の周期についての処理を繰り返す。一方、変数iがI未満でない場合、CPU210はS1110に進む。
【0084】
S1110において、CPU210は、I個の分散値B[0]~B[I-1]の中から最大値を選出し、その最大値の周期iをImaxとして保存する。このように、複数の周期の中から分散値の高い周期iを特定することが、図7(a)および(b)に示す点Pa~Pdの中から、強いパワースペクトルを有する周波数ベクトルを特定することに相当する。
【0085】
S1111において、CPU210は、特定された周期Imaxに対応する符号を、処理対象のブロックの符号として決定する。S1110及びS1111で行う処理が、図7の判定部709で行う処理に相当する。以上で本処理が終了する。
【0086】
なお、図10で説明したフローチャートは、処理対象のブロックについて行う処理を示すものである。同様の工程は、図8(a)のブロック化部701によって生成された複数のブロックの全てについて行われる。すなわち、複数のブロックのそれぞれについて符号(0又は1)が決定され、付加情報多重化部105で付加した全てのcode[n]のbit情報が読み出され、付加情報が復元される。
【0087】
ここで、再度図1を参照する。付加情報分離部108で復元された付加情報は、付加情報チェック部109でその正確性がチェックされる。そして、誤りがある場合はエラーとなり、復元された付加情報は出力端子112には出力されない。付加情報チェック部で採用するチェック方法は、CRC(Cyclic Redundancy Check)のような公知の技術を用いればよく、本発明の特徴とするところではないため、ここではその詳細な説明を省略する。
【0088】
以上説明したように、付加情報を多重化させる際に使用する閾値マトリクスと、付加情報を分離する際に使用する空間フィルタ及び間引き処理の規則性とを互いに関連付けておくことにより、多重化された付加情報を復元することができる。
【0089】
図8(b)は、図1の付加情報分離部108に含まれる機能構成の別例を示すブロック図である。入力端子710から入力される撮影画像およびブロック化部711の機能は図7(a)と同様である。
【0090】
直交変換部712は、ブロック化したP×Q画素を直交変換する。2次元の直交変換を行う場合、P=Qとする。直交変換の方法として、DFT(離散フーリエ変換)、DCT(離散コサイン変換)、ウェーブレット変換等がある。また、DFTには、FFT(高速フーリエ変換)と呼ばれる手法があり、高速にDFTを実施することができる。ただし、FFT実施の場合は、PとQは2のべき乗とする。
【0091】
ベクトル分類部713は、直交変換した結果をベクトルに分類する。図6(a)に示す第1の閾値マトリクスが使用されたブロックでは、図7(a)の直線Aで示す周波数ベクトル上の点Paに、大きなパワースペクトルが現れる。図6(b)に示す第2の閾値マトリクスが使用されたブロックでは、図7(a)直線Bで示す周波数ベクトル上の点Pbに、大きなパワースペクトルが現れる。ベクトル分類部713は、このような2次元の周波数領域において大きなパワースペクトルが発生する周波数ベクトルを検出する。
【0092】
変換値加算部714は、ベクトル分類部713が分類したベクトル毎に電力の総和を算出する。判定部715は、変換値加算部714が算出したベクトル毎の電力総和を比較して、最大値のベクトルに相当する多重化信号を多重化された符号と判定する。以上のような機能構成を用いても、多重化された付加情報を復元することができる。
【0093】
[撮像デバイスにおける複数画像の取得]
図1の付加情報チェック部109においてエラーと判定された場合、これらブロック機能を制御する読取アプリケーションは、復元された付加情報を出力端子112には出力せず、撮像と上記一連の処理を再度繰り返す。これは、撮像時の姿勢が不安定である場合などをカバーする為である。この際、読取アプリケーションは、継続的に動画撮像を行い、得られた動画から複数の静止画を切り出して、繰り返し静止画を取得してもよい。また同様に、AF、AE、AWBではなく、フォーカス位置、露出、シャッタースピード、ホワイトバランスおよび、その他の撮像条件を任意の設定に変更しながら撮像しても良い。
【0094】
[本実施形態の付加情報]
上述した基本的な埋込み処理では、各ブロックに1種類の付加情報を含ませる構成とした。これに対し本実施形態では、各ブロックに2種類の情報を含ませる構成とする。
【0095】
図11(a)~(d)は、本実施形態で使用する基準閾値マトリクスを示す。これらマトリクスは、いずれも、図6(a)~(d)のうちの1つをX方向又はY方向に並べたものであり、12画素×12画素の領域を有している。
【0096】
ここで、図11(a)及び(b)は、図7(a)の点Pa,Pbに示すように、同一の周波数帯域(以下、第1の周波数帯域と称す)に大きなパワースペクトルを有する。そして、これら1組で、1つの情報(0又は1)が表現可能である。また、図11(c)及び(d)は、図7(b)の点Pc,Pdに示すように、点Pa,Pbよりも高い同一周波数帯域(以下、第2の周波数帯域と称す)に、大きなパワースペクトルを有する。そして、これら1組で、上記とは別の情報(1又は0)が表現可能である。
【0097】
本実施形態では、これら2組の基準マトリクスを組み合わせることにより、同じブロックで2種類の情報を表現するための、4種類の閾値マトリクスを生成する。
【0098】
図12(a)~(d)は、本実施形態で使用する4種類の閾値マトリクスを示す。図12(a)は、図11(a)と図11(c)の基準閾値マトリクスを合成させた閾値マトリクスである。図12(b)は、図11(b)と図11(c)の基準閾値マトリクスを合成させた閾値マトリクスである。図12(c)は、図11(a)と図11(d)の基準閾値マトリクスを合成させた閾値マトリクスである。図12(d)は、図11(b)と図11(d)の基準閾値マトリクスを合成させた閾値マトリクスである。
【0099】
いずれの閾値マトリクスも、第1の周波数帯域に大きなパワースペクトルを有する基準閾値マトリクスと、第2の周波数帯域に大きなパワースペクトルを有する基準閾値マトリクスとを、1つずつ組み合わせて合成されたものとなっている。この際、図12(a)~(d)のように、パターンの方向が互いに異なる閾値マトリクス同士を組み合わせるようにすれば、後に情報を復元する際の情報の分離性を高めることができる。
【0100】
[印刷画像におけるレイアウト]
図13は、本実施形態における画像領域1000の構成を説明するための模式図である。ここではL版(約5inch×約3.5inch(127mm×89mm))の印刷物104を示している。本実施形態において、印刷物104の画像領域1000は、まず複数の単位ブロック1200に分割される。単位ブロック1200は、図4で説明したブロックそのものではなく、図4で説明した複数のブロックを含むものである。
【0101】
ここで印刷物104における記録解像度を600dpiとすると、印刷物104の画像領域1000は、およそ3000画素×2100画素を含むことになる。一方、単位ブロック1200は480画素×480画素で構成され、L版の印刷物104には、6×4個の単位ブロックが配置される。
【0102】
図14は、1つの単位ブロック1200の構成を示す図である。単位ブロック1200の左上には、48画素×48画素で構成されるアンカー部1201が配されている。アンカー部1201は、単位ブロック120の向きを示し、読み出し処理を行う際の原点として利用される。アンカー部1201の内部は、空白もしくはアンカー部であることを表す情報が埋め込まれている。
【0103】
単位ブロック1200において、アンカー部1201以外の領域は、複数のブロック1203が敷き詰められたデータ領域1202である。個々のブロック1203は、12画素×12画素のサイズを有しており、このサイズは図11(a)~(d)で示した閾値マトリクスのサイズに相当する。
【0104】
以上の構成の下、1つの単位ブロック1200には、1584個のブロック1203が配される。そして、図12(a)~(d)で示した閾値マトリックスで多重化した個々のブロックは2bitの情報を表現可能であるため、単位ブロック全体では、4×1584の符号を表現することができる。更に、図13で説明したL版の印刷物の場合は、上記単位ブロックが6×4個配されているため、印刷物104全体では、4×1584×24の符号を表現することができる。
【0105】
[撮像デバイスに起因する課題]
印刷物を撮像する際の撮像解像度は、撮像デバイスの解像性能すなわち画素数に依存する。このため、同じ付加情報が埋め込まれた印刷物であっても、撮像デバイスによっては、例えば第1の周波数帯域の付加情報を解析することができても、これよりも高い第2の周波数帯域の付加情報を解析することができないことがある。以下、具体的に説明する。
【0106】
図11(c)または(d)のパターンが600dpiで埋め込まれている場合、埋め込みの周波数帯域は、約150cycle/inchとなる。一般的に、所定の信号を標本化する場合、これをサンプリングするための周波数は、当該所定の信号の周波数の2倍が必要であるというナイキストの定理が知られている。よって、埋め込み周波数帯域が150cycle/inchの場合、撮像デバイスにおいては、300cycle/inch以上のサンプリング周波数すなわち撮像解像度が得られることが望ましい。しかしながら、図13で説明したL判全体を、例えば2K(1920×1080pixel)で撮影した場合、撮像解像度は、約150cycle/inchとなり上記条件は満たされない。つまり、図11(a)または(b)のパターンに対応する付加情報は復元可能であるが、図11(c)または(d)のパターンに対応する付加情報を復元することができない。
【0107】
これに対し、図13で説明したL判全体を、例えば4K(3840×2160pixel)で撮影した場合、サンプリング周波数は約300cycle/inchとなり上記条件は満足される。つまり、図11(a)または(b)のパターンに対応する付加情報に加え、図11(c)または(d)のパターンに対応する付加情報を復元することができる。
【0108】
以下、本実施形態の埋め込み処理を利用した例を、いくつかの実施例を挙げて説明する。
【0109】
(実施例1)
実施例1では、写真画像に、当該写真を撮影した際の様々な情報を付加情報として埋め込む場合について説明する。ここで、具体的な付加情報としては、撮影日時、画素数、メーカ名、モデル名、フラッシュ、シャッター速度、絞り、ISO感度などが挙げられる。本実施例では、これら複数の付加情報を、基本情報と詳細情報とに分類し、基本情報は第1の周波数領域を利用して埋め込み、詳細情報は第2の周波数領域を利用して埋め込ようにする。基本情報には、撮影日時、画素数、メーカ名、モデル名などを含むこととする。詳細情報にはフラッシュ、シャッター速度、絞り、ISO感度などを含むこととする。
【0110】
図15は、本実施例におけるcodeと閾値マトリクスの対応関係を示す。本実施例の場合、n番目のブロックに設定されるcode[n]は、詳細情報を示す上位bitと、基本情報を示す下位bitから成る2bit情報を有している。すなわち、code[n]は、00、01、10、11の4種類を取りうる。code[n]=00のとき、図12(a)の閾値マトリクスが使用される。code[n]=01のとき、図12(b)の閾値マトリクスが使用される。code[n]=10のとき、図12(c)の閾値マトリクスが使用される。code[n]=11のとき、図12(d)の閾値マトリクスが使用される。図3の量子化条件制御部302は、処理対象画素が含まれるブロックnに埋め込むべきcode[n]の内容に応じて、図12(a)~(d)の閾値マトリクスの中の1つを設定し、量子化処理部300に指示する。
【0111】
図16は、本実施形態の量子化条件制御部302が行う処理を説明するためのフローチャートである。本処理は、例えば、画像処理装置100のCPU200がROM201に記憶されているプログラムをRAM202に読み出して実行することにより実現される。
【0112】
本処理が開始されると、CPU200はS1601及びS1602において変数i及びjを初期化する。また、S1603において、処理対象画素(j,i)が多重化領域1001(図5参照)に属しているか否かを判定する。上記S1601~S1603の処理は図4で説明したフローチャートのS401~S403と同等であるため、ここでの説明は割愛する。
【0113】
S1605において、CPU200は処理対象画素(j,i)に対応するbit情報を取得する。ここで取得されるbit情報は、00、01、10、11のいずれかとなる。S1606~S1608において、CPU200は、S1605で取得したbit情報に基づいて分岐する。そして、bit=00の場合はS1609に進み、処理対象画素(j,i)に対し量子化条件Aを設定する。bit=01の場合はS1610に進み、処理対象画素(j,i)に対し量子化条件Bを設定する。bit=10の場合はS1611に進み、処理対象画素(j,i)に対し量子化条件Cを設定する。更に、bit=11の場合はS1612に進み、処理対象画素(j,i)に対し量子化条件Dを設定する。なお、S1603において多重化領域1001に属していないと判定した場合は、S1604に進み、処理対象画素(j,i)に対し量子化条件Xを設定する。
【0114】
S1613において、CPU200は、S1604、S1609~S1612のいずれかで設定された量子化条件に基づいて、処理対象画素(j,i)に対する量子化処理を行い、記録(1)又は非記録(0)を表す量子価値を決定する。この際、量子化条件Aが設定されている場合は図14(a)の閾値マトリクスを用い、量子化条件Bが設定されている場合は図14(b)の閾値マトリクスを用いる。また、量子化条件Cが設定されている場合は図14(c)の閾値マトリクスを用い、量子化条件Dが設定されている場合は図14(d)の閾値マトリクスを用いる。量子化条件Xが設定されている場合は全ての画素位置に対し、一律の量子化閾値Hを用いる。
【0115】
S1615以下の処理は、図4で説明したフローチャートと同様であるため、説明は割愛する。
【0116】
以上説明した本実施例の埋め込み処理によれば、各ブロックに基本情報と詳細情報を重畳させた状態で埋め込むことができる。そして、付加情報が埋め込まれた印刷物を、例えばスマートフォンのような、読み取り解像度が印刷物の記録解像度よりも低いカメラを用いて撮像した場合、アプリケーションは基本情報のみを復元する。一方、4Kカメラのような、読み取り解像度が印刷物の記録解像度よりも十分に高いデバイスを用いて撮像した場合、アプリケーションは基本情報と詳細情報の両方を復元することができる。
【0117】
以上説明したように、本実施例によれば、基本的な情報については、相対的に低い第1の周波数帯域で表現することにより、解像性能が低いカメラで撮像した場合であっても復元できるようにしている。一方、詳細情報については、相対的に高い周波数帯域で表現することにより、解像性能が高いカメラで撮像した場合に復元できるようにしている。すなわち、本実施例によれば、異なる解像性能を有する撮像デバイスにおいて、それぞれに相応する付加情報を復元することができる。
【0118】
なお、以上では、写真画像に、当該写真を撮影した際の様々な情報を付加情報として埋め込ませる場合について説明したが、無論本実施例の方法は他の分野にも応用することができる。例えば、店舗の広告画像に、当該店舗の店舗名、営業時間、住所、電話番号などを基本情報とし、当該店舗のコンセプト、おすすめ品、イベントなどを詳細情報として、付加情報を埋め込んでもよい。
【0119】
(実施例2)
実施例2では、印刷画像に、低品質情報と高品質情報を付加情報として埋め込ませる場合について説明する。低品質情報とは、例えばビットレートの低い音声などである。高品質情報とは、例えばビットレートの高い音声などである。そして、低品質情報は第1の周波数領域を利用して埋め込み、高品質情報は第2の周波数領域を利用して埋め込むようにする。
【0120】
図17は、本実施例におけるcode[n]の内容と閾値マトリクスの対応関係を示す。本実施例の場合、低品質情報は1bitで示され、高品質情報は低品質情報の上位に1bitを追加した2bitで示される。つまり、配列する低品質情報の間に、さらに1bit情報を追加することで高品質化されるようになっている。code[n]は、高品質情報と同じ2bitである。
【0121】
例えば、低品質情報として「0」、高品質情報として「10」を埋め込む場合は、code=10となり、図14(c)の閾値マトリクスを用いることになる。それぞれのcode[n]の内容と閾値マトリクスとの対応関係は、実施例1で説明した図14と同じである。
【0122】
なお、本実施例においても、量子化条件制御部302が行う処理フローは、実施例1で説明した図16を用いることができる。
【0123】
本実施例によれば、低品質情報は、比較的解像性能が低い例えば2Kのカメラでも復元することができる。一方、高品質情報は、2Kカメラでは復元できないが、これよりも解像性能が高い例えば4Kカメラを用いれば復元することができる。
【0124】
以上では音声情報を付加情報として埋め込ませる場合について説明したが、無論本実施例の方法は他の分野にも応用することができる。例えば、付加情報自体を画像とし、解像性能が高い撮像デバイスを用いれば、解像性能が低い撮像デバイスを用いた場合よりも高画質な付加画像を復元できるようにしてもよい。
【0125】
[その他の実施形態]
以上では、例えば第1の周波数帯を利用した付加情報において、直線Aの方向にパワーを持つか直線Bの方向にパワーを持つかによって、付加情報の内容を判定した。しかしながら、付加情報の内容は、複数の方向のパワー組み合わせによって判定することもできる。
【0126】
図18(a)~(d)は、第1の周波数帯上であって、互いに異なる方向の周波数ベクトルにパワーを持つ2つのパターン(閾値マトリクス)を合成した例を示す。例えば、図18(a)は、図11(a)のパターンと、これを左右反転したパターンを合成したものである。また、図18(b)は、図11(a)のパターンと、図11(b)のパターンを左右反転したパターンを合成したものである。図18(a)~(d)のような4種類のパターン(閾値マトリクス)を用意することにより、同一の周波数帯を利用する1つの付加情報について、4種類(4値)の内容を表現することができる。
【0127】
図18(a)~(d)のパターンに対し、同じ方向の第2の周波数帯のパターンを重ねた場合、解像性能が低い撮像デバイスでは第2の周波数帯だけでなく第1の周波数帯の情報も復元が困難になるおそれがある。これは、MTF(Modulation Transfer Function)が原因である。例えば、図19は、図18(c)の低周波パターンに、同じ方向の高周波パターンを合成した状態を示している。この場合、図9(a)の直線A上にパワーを持つ点が複数現れ、点Paの復元が困難になるおそれが生じる。
【0128】
このような場合には、低周波のパターンで設定する変動閾値と、低周波のパターンの間に割り込ませた高周波のパターンで設定する変動閾値とを、異ならせることが有効である。図19において、斜線画素は低周波パターンの変動閾値を設定する画素を示し、ドットを付した画素は低周波の間に割り込ませた高周波パターンの変動閾値を設定する画素を示している。これら2つの変動閾値を、MTFを考慮しながら調整することにより、低周波のパターンのパワーと高周波のパターンのパワーとを異ならせ、低周波のパターンを読み取りやすくすることができる。
【0129】
以上では、第1の周波数帯と第2の周波数帯の2つの周波数帯を用い、2種類の情報を表現する場合について説明した。しかしながら、本実施形態は、3つ以上の周波数帯を用いて3種類以上の情報を表現することもできる。例えば、2K用、4K用、8K用のための3種類の周波数帯域を用意し、それぞれに付加情報を埋め込み、8K用のデバイスだけが全ての付加情報を読み出せるようにしてもよい。
【0130】
図20は、3つの周波数帯を用いる場合に使用可能なパワースペクトルの例を示す図である。図中の複数の点は、いずれも固有の符号を示すことができる。そして、ある円上の点に相当するパターンと、別の円上の点に相当するパターンとを合成して得られる閾値マトリクスを用意すれば、解像性能が異なる撮像デバイスのための付加情報を、同じ領域に重畳させることができる。
【0131】
なお、解像性能が低い撮像デバイスにおいては、復元可能な周波数帯域に限定したフィルタ処理や間引き処理を行うことにより、処理の負荷を軽減することができる。例えば、撮像デバイスが4Kカメラである場合、読み取りアプリケーションは、4K用の空間フィルタを用いたフィルタ処理と4K用の間引き処理を行えばよく、8K用の空間フィルタを用いた処理を行う必要はない。
【0132】
撮像デバイスの解像性能については、以下のツールを用いて予め取得することができる。例えば、カメラ付携帯端末101がスマートフォンであって、使用するOS(Operating System)がAndroidの場合は、以下が好適に利用可能である。
Camera2 API
Camera2 API
StreamConfigurationMapクラス
getOutputSizesメソッド。
【0133】
また、OSがiOSである場合、
AVCaptureSession インスタンス
AVCaptureSessionPreset シンボル
(4K例:AVCaptureSessionPreset3840x2160)
が好適に利用可能である。
【0134】
以上では、解像性能が異なる複数のデバイスのために、複数の周波数帯域を用意する内容で説明した。しかしながら、このような複数の周波数帯域は、所定の解像性能を有する撮像デバイスを対象としながら、印刷物の限られた領域の中により多くの情報を埋め込むために利用してもよい。すなわち、付加情報を埋め込む際には、復元時に使用が想定される撮像デバイスの解像性能よりも低い解像度(周波数)の周波数領域を複数に分割し、それぞれの周波数領域で異なる付加情報を埋め込めばよい。このようにすれば、限られた画像領域に多種類の付加情報を高密度に埋め込むことが可能となる。
【0135】
以上では、図12(a)~(d)のような特的なパターンを画像情報に埋め込むために、量子化処理を行う際に使用する閾値マトリクスを利用した。しかしながら、本発明はこのような形態に限定されない。上記特的なパターンは、他の方法によっても画像情報に埋め込むことは可能である。多重化処理は、量子化処理を行う前の多値の階調値に対して、所定の周期性を重畳する形態としてもよい。また、階調値(濃度値)に変換する前の輝度値(RGB)に、周期性を重畳しても良い。更に、RGBの値を、輝度-色差情報など、他の色空間情報(例えばCIE L*a*b*、YCrCb信号)に分離して周期性を重畳する方式により多重化を実現しても良い。いずれにせよ、複数の周波数領域のそれぞれにおいて、異なる内容の付加情報を埋め込むことができれば、上記実施形態で説明した効果を得ることはできる。
【0136】
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0137】
100 画像処理装置(情報処理装置)
105 付加情報多重化部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20