(57)【要約】      （修正有）【課題】付加情報を読み取る場合に、読み取ることが可能な付加情報の量が少なくならない画像処理装置、システム、方法及びプログラムを提供する。【解決手段】プログラムは、コンピュータを、画像のデータを取得する第１の取得手段、付加情報を取得する第２の取得手段、第１の取得手段により取得したデータに基づく画像が印刷される印刷メディアにおける印刷可能領域に関する情報を取得する第３の取得手段、第３の取得手段が取得した情報に基づいて、第２の取得手段により取得した付加情報を画像に埋め込む位置を決定する決定手段、および、決定手段により決定した位置を基準に付加情報を埋め込む埋め込み手段として機能させる。【選択図】図４
2019009746.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
画像のデータを取得する第１の取得手段、
付加情報を取得する第２の取得手段、
前記第１の取得手段により取得したデータに基づく前記画像が印刷される印刷メディアにおける印刷可能領域に関する情報を取得する第３の取得手段、
前記第３の取得手段が取得した前記情報に基づいて、前記第２の取得手段により取得した付加情報を前記画像に埋め込む位置を決定する決定手段、および、
前記決定手段により決定した前記位置を基準に前記付加情報を埋め込む埋め込み手段として機能させることを特徴とするプログラム。
【請求項２】
前記決定手段は、前記画像における前記印刷可能領域への印刷対象となる部分に埋め込まれる前記付加情報の数が所定の値よりも多くなるように、前記位置を決定することを特徴とする請求項１に記載のプログラム。
【請求項３】
前記決定手段は、前記画像における前記印刷可能領域への印刷対象となる前記部分に埋め込まれる前記付加情報の数が最大となるように、前記位置を決定することを特徴とする請求項２に記載のプログラム。
【請求項４】
前記埋め込み手段は、前記画像の全面に前記付加情報を埋め込むことを特徴とする請求項１から３のいずれか一項に記載のプログラム。
【請求項５】
前記埋め込み手段は、前記画像のデータを構成する画素の値を、所定の周期性を有するパターンに従って変えることで前記付加情報を埋め込むことを特徴とする請求項１から４のいずれか一項に記載のプログラム。
【請求項６】
前記第３の取得手段は、前記画像が印刷される場合の印刷設定を示す印刷設定情報を取得し、
前記決定手段は、前記付加情報を埋め込む位置として、前記第３の取得手段が取得する前記印刷設定情報に応じて異なる位置を決定することを特徴とする請求項１から５のいずれか一項に記載のプログラム。
【請求項７】
前記印刷設定情報は、用紙サイズと印刷設定に対応したマージンの情報とを含むことを特徴とする請求項６に記載のプログラム。
【請求項８】
前記印刷設定情報は、印刷時のフチあり、または、フチなしの設定を示すことを特徴とする請求項７に記載のプログラム。
【請求項９】
前記第３の取得手段は、前記印刷設定情報を取得し、さらに取得された前記印刷設定情報が示す印刷設定に応じた印刷可能領域を示す領域情報を取得し、
前記決定手段は、前記付加情報を埋め込む位置として、前記第３の取得手段が取得する前記領域情報が示す印刷可能領域に応じて異なる位置を決定することを特徴とする請求項８に記載のプログラム。
【請求項１０】
前記領域情報は、用紙の先端、後端を除く印刷安定領域の情報を含むことを特徴とする請求項９に記載のプログラム。
【請求項１１】
前記領域情報は、印刷可能領域を表すマスク画像であることを特徴とする請求項９または１０に記載のプログラム。
【請求項１２】
前記決定手段は、前記位置として、１つの付加情報を埋め込む単位となる単位領域を配置する起点の位置を決定することを特徴とする請求項１から１１のいずれか一項に記載のプログラム。
【請求項１３】
前記決定手段は、前記画像の前記印刷可能領域に印刷される部分において前記単位領域を配置できる数が最大となるように前記起点の位置を決定することを特徴とする請求項１２に記載のプログラム。
【請求項１４】
前記単位領域は、マーカー部とデータ部とを含むことを特徴とする請求項１２または１３に記載のプログラム。
【請求項１５】
前記決定手段は、前記画像の前記印刷可能領域に印刷される部分において前記マーカー部を配置できる数が最大となるように前記起点の位置を決定することを特徴とする請求項１４に記載のプログラム。
【請求項１６】
画像を取得する第１の取得手段と、
付加情報を取得する第２の取得手段と、
前記第１の取得手段により取得したデータに基づく前記画像が印刷される印刷メディアにおける印刷可能領域に関する情報を取得する第３の取得手段と、
前記第３の取得手段が取得した前記情報に基づいて、前記第２の取得手段により取得した付加情報を前記画像に埋め込む位置を決定する決定手段と、
前記決定手段により決定した前記位置を基準に前記付加情報を埋め込む埋め込み手段と、
前記埋め込み手段により前記付加情報が埋め込まれた前記画像を印刷する印刷手段と
を備える画像処理システム。
【請求項１７】
画像のデータを取得するステップと、
付加情報を取得するステップと、
前記データに基づく前記画像が印刷される印刷メディアにおける印刷可能領域に関する情報を取得するステップと、
取得した前記情報に基づいて、前記付加情報を前記画像に埋め込む位置を決定するステップと、
決定した前記位置を基準に前記付加情報を前記埋め込むステップと、
を備えることを特徴とする画像処理方法。
【請求項１８】
画像のデータを取得する第１の取得手段と、
付加情報を取得する第２の取得手段と、
前記第１の取得手段により取得したデータに基づく前記画像が印刷される印刷メディアにおける印刷可能領域に関する情報を取得する第３の取得手段と、
前記第３の取得手段が取得した前記情報に基づいて、前記第２の取得手段により取得した付加情報を前記画像に埋め込む位置を決定する決定手段と、
前記決定手段により決定した前記位置を基準に前記付加情報を埋め込む埋め込み手段と、
を備えることを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、付加情報を画像に埋め込む技術に関する。
【背景技術】
【０００２】
電子透かしと呼ばれる技術がある。近年では、画像内に付加情報を、視覚的に判別し難いように埋め込む技術がある。この付加情報が埋め込まれた画像は、インターネット等のネットワークを通じて流通される。付加情報が埋め込まれた画像から付加情報を抽出することも行われている。また、付加情報が埋め込まれた画像が複写機及びプリンタ等の画像出力装置において紙上に印刷され、この印刷物から付加情報を抽出することも行われている。
【０００３】
特許文献１には、付加情報を読み出す際に付加情報の位置を検出するためのマーカーに関する技術が記載されている。特許文献１では、画像内の矩形の領域の４隅だけでなく、この領域を構成する辺の途中にも位置検出用のマーカーを配置する技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１９３３０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１では、付加情報が埋め込まれた画像をプリンタで印刷する際の印刷設定に関して考慮がされていない。例えば印刷に用いる画像の全体に付加情報を埋め込んでフチなし印刷を行う場合、印刷時の画像端部のトリミングによって画像の一部が切りとられてしまう可能性がある。付加情報の位置検出用のマーカーがこの切り取られた画像部分に含まれていた場合、そのマーカーを用いた付加情報の抽出ができなくなる。したがって、読み取ることが可能な付加情報の量が少なくなってしまう。
【０００６】
本発明は、上記課題に鑑み、付加情報を読み取る場合に、読み取ることが可能な付加情報の量を増やすことを可能にする画像処理装置、画像処理方法、画像処理システム、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様に係るプログラムは、コンピュータを、画像のデータを取得する第１の取得手段、付加情報を取得する第２の取得手段、前記第１の取得手段により取得したデータに基づく前記画像が印刷される印刷メディアにおける印刷可能領域に関する情報を取得する第３の取得手段、前記第３の取得手段が取得した前記情報に基づいて、前記第２の取得手段により取得した付加情報を前記画像に埋め込む位置を決定する決定手段、および、前記決定手段により決定した前記位置を基準に前記付加情報を埋め込む埋め込み手段として機能させることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、付加情報を読み取る場合に、読み取ることが可能な付加情報の量を増やすことができる。
【図面の簡単な説明】
【０００９】
【図１】画像処理システムのハードウェア構成例を示す図である。
【図２】プリンタの記録ヘッドの模式図である。
【図３】プリンタの制御回路部の構成例を示す図である。
【図４】システムの構成例を示すブロック図である。
【図５】アプリケーションの画面構成例を示す図である。
【図６】アプリケーションの埋め込み情報入力ダイアログ例である。
【図７】アプリケーションの印刷設定ダイアログ例である。
【図８】ＳＶＧの記述例を示す図である。
【図９】印刷データ生成処理のフローチャートである。
【図１０】印刷可能領域情報の例を示す図である。
【図１１】プリントコマンドの例を示す図である。
【図１２】付加情報の埋め込み処理のフローチャートである。
【図１３】埋め込みパターンを示す図である。
【図１４】単位ブロックの構成例を示す図である。
【図１５】印刷物への単位ブロック埋め込み例を示す図である。
【図１６】フチなし印刷時の印刷物への単位ブロック埋め込み例を示す図である。
【図１７】付加情報読み取り処理部を含むブロック図である。
【図１８】埋め込みパターンの周波数特性を示すブロック図である。
【図１９】印刷物への単位ブロック埋め込み例を示す図である。
【図２０】印刷可能領域のマスク画像例を示す図である。
【図２１】基準座標の決定処理のフローチャートである。
【図２２】ブロック配置画像の例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、添付図面を参照して、本発明の好適な実施の形態を例示的に詳しく説明する。ただし、以下の実施形態に記載されている構成要素はあくまで例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
【００１１】
＜＜実施形態１＞＞
＜画像処理システムの概要＞
本実施形態においては、画像処理装置（情報処理装置）が、付加情報の埋め込みと読み取りとを実行可能なアプリケーションを備えている。このアプリケーションが、付加情報が埋め込まれたコンテンツ（画像データ）を作成する。画像処理装置は、作成したコンテンツから印刷データを生成し、プリンタに送信する。プリンタは、印刷データを用いて印刷を行い、付加情報が埋め込まれた印刷物が出力される。
【００１２】
本実施形態において「付加情報」とは、印刷物に埋め込まれる情報のことである。付加情報は、視覚的に目立たないように印刷物に埋め込まれる（付加される、あるいは多重化される、という場合もある）。付加情報のことを多重化情報、透かし情報、または埋め込み情報と呼ぶこともある。
【００１３】
以下では、各装置の構成を説明し、その後、付加情報が埋め込まれた印刷データを用いた印刷が実行される手順を説明する。
【００１４】
＜画像処理装置のハードウェア構成＞
図１は、本実施形態に係る画像処理システムの構成例を示す図である。本実施形態に係る画像処理システムにおいては、ネットワークを介して、画像処理装置１００（情報処理装置）とプリンタ１１４とが接続される。図１では、さらにサーバ１１６がネットワークを介して接続されているが、サーバ１１６は必ずしも接続されていなくてもよい。
【００１５】
画像処理装置１００は、例えば、スマートフォン、タブレットＰＣ、およびノート型ＰＣ等の携帯型の情報端末や、非携帯型のデスクトップＰＣ等が該当する。以下、本実施形態では、画像処理装置１００として、タッチディスプレイを備えたスマートフォンを使用するものとする。画像処理装置１００は、ＣＰＵ（Central Processing Unit）１０２、ＲＯＭ（Read Only Memory）１０３、ＲＡＭ（Random Access Memory）１０４を備えている。さらに、２次記憶装置１０５、ディスプレイ１０６、マウス１０７、キーボード１０８、ＩＦ（InterFace）１０９、ＩＦ１１０、ＩＦ１１１、および内部撮像デバイス１１２を備えている。
【００１６】
ＣＰＵ（プロセッサー）１０２は、以下で説明する各種処理をプログラムに従って実行する。図１において１つのＣＰＵ１０２が示されているが、複数のＣＰＵあるいはＣＰＵコアによって構成されていてもよい。ＲＯＭ１０３は、ＣＰＵ１０２により実行されるプログラムを記憶している。ＲＡＭ１０４は、ＣＰＵ１０２によるプログラムの実行時に、各種情報を一時的に記憶するためのメモリである。
【００１７】
２次記憶装置１０５は、ハードディスクまたはフラッシュメモリ等の記憶媒体である。２次記憶装置１０５は、ファイルおよび画像解析等の処理結果を保持するデータベース等のデータならびに各種プログラムを記憶する。ディスプレイ１０６は、各種処理を実現するための操作を受け付けるためのＵＩ（ユーザーインターフェース）を表示したり、実行された処理の結果等の各種情報を表示したりする。ディスプレイ１０６は、不図示のタッチセンサを備えてもよい。ユーザはタッチ、スワイプ、ピンチ等のタッチ動作により、操作を入力するものとする。なお、ＵＩとして、マウスや文字等を入力するキーボードを備えてもよい。
【００１８】
内部撮像デバイス１１２は、撮像を行う。撮像によって得られた画像データは、所定の画像処理を経た後、２次記憶装置１０５に保存される。また、画像データは、ＩＦ１１０を介して接続された外部撮像デバイス１１３から取得され、２次記憶装置１０５に保存されてもよい。
【００１９】
ＩＦ１１１は、インターネット１１５等のネットワークを介して外部装置（例えばプリンタ１１４やサーバ１１６）と通信を行うことができる。
【００２０】
ＩＦ１０９〜１１１は、有線通信または無線通信の少なくともいずれかの通信形態を有するインタフェースであり、利用する通信形態に応じて外部装置との通信を行う。画像処理装置１００は、ＩＦ１０９〜１１１を介して、インターネット１１５に接続されたサーバ１１６または外部撮像デバイス１１３から画像データを取得したり、プリンタ１１４に対して画像データ（印刷データ）等を出力したりすることができる。有線通信には、例えば、ＵＳＢ、イーサネット（登録商標）等がある。無線通信には、無線ＬＡＮ、ＮＦＣ（Near Field Communication）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、赤外線通信等がある。
【００２１】
画像処理装置１００が備える各種構成要素は、内部バス１０１を介して相互に接続され、ＣＰＵ１０２は、内部バス１０１を介して、各種構成要素を制御する。なお、本実施形態では、画像処理装置１００が、ＣＰＵ１０２（制御部）によって実行されるプログラム等のソフトウェアの実行場所（ソフトウェア実行環境）となる。
【００２２】
なお、図１の形態では、外部装置の一例としてプリンタ１１４を例に挙げて説明するが、これに限定するものでは無く、複合機（ＭＦＰ）など他の画像形成装置やＦＡＸ等の通信装置であってもよい。
【００２３】
＜プリンタのハードウェア構成＞
図２は、プリンタ１１４のハードウェア構成の一部を示す図である。本実施形態では、インクジェット方式のプリンタ１１４を例に挙げて説明するが、これに限られるものではなく、電子写真方式のプリンタであってもよい。
【００２４】
図２に、本実施形態に係るプリンタ１１４の記録ヘッドの模式図を示す。記録ヘッド２０１は、インクを充填したインク部２０２を搭載する。図２においてインク部２０２は、４色である形態を示しているが、何色でも良い。制御回路部２０３は、記録ヘッド２０１を駆動するために必要な記憶部、演算部及び通信部を含む。記録ヘッド２０１は、制御回路部２０３から記録信号と制御信号とを受信し、制御信号に従って記録信号に基づいたインクの吐出を行う。記録媒体である印刷メディア２０４は、不図示の搬送ローラによって搬送され、印刷メディア２０４上に画像が形成される。
【００２５】
図３は、制御回路部２０３の構成を示すブロック図である。制御回路部２０３は、入力インタフェース３０１、ＣＰＵ３０２、出力インタフェース３０３、ＲＯＭ３０４、ＲＡＭ３０５を含む。入力インタフェース（ＩＦ）３０１は、プリンタ１１４の外部の画像処理装置等から、画像データと記録ヘッド２０１を駆動するための制御信号との入力を受け付ける。入力インタフェース３０１は、入力を受け付けた画像データと制御信号とをＲＡＭ３０５およびＣＰＵ３０２に送る。ＣＰＵ３０２は、不揮発性メモリであるＲＯＭ３０４に記憶されている制御プログラムを実行して、画像データに信号処理を行う。信号処理された画像データは記録データとして制御信号とともに、出力インタフェース３０３から出力される。出力された記録データと制御信号とにより記録ヘッド２０１が駆動され、印刷メディア２０４に画像が印刷される。
【００２６】
＜システム構成＞
図４は、画像処理装置１００で動作するアプリケーション４００と、プリンタ１１４とを含む画像処理システムの構成例を示す図である。アプリケーション４００は、表示処理部４０１、画像取得部４０２、付加情報取得部４０３、印刷設定部４０４、印刷データ生成部４０５、データ送受信部４０６、および付加情報読み取り部４０７を備えている。アプリケーション４００は、これ以外の各部を備えていてもよい。アプリケーション４００は、図１におけるＲＯＭ１０３または２次記憶装置１０５にプログラムとして格納されており、ＣＰＵ１０２により実行されることにより実現される。すなわち、ＣＰＵ１０２がＲＯＭ１０３または２次記憶装置１０５に格納されているプログラムを実行することにより、ＣＰＵ１０２がアプリケーション４００の各部として機能する。アプリケーション４００は、印刷対象の画像データと、入力された付加情報とに基づいて付加情報が埋め込まれた画像データを生成する機能を備えている。そしてアプリケーション４００は、生成した画像データを印刷するための印刷データをプリンタ１１４に送信する機能を備えている。
【００２７】
プリンタ１１４は、印刷処理部４０８、データ送受信部４０９、および印刷可能領域情報格納部４１０を備えている。印刷処理部４０８およびデータ送受信部４０９は、ＣＰＵ３０２がＲＯＭ３０４に格納されたプログラムを実行することによって実現される。印刷可能領域情報格納部４１０は、ＲＯＭ３０４またはＲＡＭ３０５によって実現される。
【００２８】
図５は、画像処理装置１００上で動作するアプリケーション４００の画面の一例を示す図である。以下、図４の各ブロックで行われる処理を、図５に示す画面例を参照しながら説明する。
【００２９】
表示処理部４０１は、付加情報として埋め込む文字情報および印刷処理に利用する画像などを画像処理装置１００のディスプレイ１０６に表示する処理を行う。表示処理部４０１は、画像および文字等を選択するボタンならびに印刷設定のリスト等、ユーザーインターフェイス（ＵＩ）に関わる情報を表示する機能も有している。
【００３０】
図５では、画像処理装置１００のディスプレイ１０６に、画像選択ボタン５０１、埋め込み情報設定ボタン５０２、印刷設定ボタン５０３が表示されている。コンテンツ編集エリア５００には、編集中のコンテンツ（画像）が表示されている。
【００３１】
画像取得部４０２は、付加情報が埋め込まれる対象となる画像を取得する。例えば図５の画像選択ボタン５０１が選択されると、画像選択ダイアログが立ち上がり、画像処理装置１００において利用可能な画像をユーザが選択することができる。なお、本実施形態では、画像選択ダイアログからの画像選択を行うが、別途、内部撮像デバイス１１２を起動して、撮像した画像を利用する形態でも良い。画像取得部４０２が取得した画像は、コンテンツ編集エリア５００に表示され、タッチ、スワイプ、ピンチ操作により、拡大・縮小・回転や移動をすることができる。その他、任意の編集が行われてよい。
【００３２】
図６は、埋め込み情報設定のダイアログ６００の一例を示す図である。図５の埋め込み情報設定ボタン５０２が選択されると、ディスプレイ１０６には、図６に示す埋め込み情報設定のダイアログ６００が表示される。付加情報取得部４０３は、例えば図６に示すような埋め込み情報設定のダイアログ６００を通じて編集された情報を、付加情報として取得する。図６のエリア６０１をユーザがタップすると、埋め込みたい情報（付加情報）の編集をユーザが行うことができる。例として「ｈｅｌｌｏ」という文字列を付加情報として埋め込むこととする。なお、本実施形態では、テキスト入力を例にしているが、画像に関する著作権、撮像日時、撮像場所、撮像者等の諸情報を付加情報として埋め込んでもよい。ＵＲＬ（Uniform Resource Locator）などのように、リンク先の情報を付加情報として埋め込んでもよい。音声や動画等のように、テキスト以外の情報を付加情報として埋め込んでもよい。共通のデータテーブルがある場合、そのデータテーブルのデータを識別する識別情報を付加情報として埋め込んでもよい。ユーザは、入力を完了した場合は、決定ボタン６０２を押下し、キャンセルする場合はキャンセルボタン６０３を押下する。なお、図６で説明したようにユーザが埋め込みたい付加情報を意識的に入力する形態でもよいし、ユーザが意識しない形で付加情報をアプリケーション４００が入力する形態でもよい。
【００３３】
図７は、印刷設定ダイアログ７００の一例を示す図である。図５の印刷設定ボタン５０３が選択されると、ディスプレイ１０６には、図７に示す印刷設定ダイアログ７００が表示される。ユーザは、印刷設定ダイアログ７００を通じて、プリンタの選択、用紙種別の選択、用紙サイズの選択、フチあり／なし印刷の設定を行う。プリンタ選択リスト７０１をタップすると、使用可能なプリンタのリストが表示され、ユーザは任意のプリンタを選択することができる。同様に、用紙種別リスト７０２をタップすると、使用可能な用紙種別のリストが表示され、ユーザは任意の用紙種別を選択することができる。用紙種別としては、例えば、光沢紙、マット紙、普通紙等が挙げられる。用紙サイズ選択リスト７０３をタップすると、用紙種別リスト７０２で選択されている用紙種別で使用可能な用紙サイズのリストが表示され、ユーザは任意の用紙サイズを選択することができる。印刷フチ設定７０４では、印刷時のフチ設定（フチあり／フチなし）を行う。フチあり印刷とは、印刷物の四辺に余白ができる印刷方法であり、フチなし印刷とは、用紙に余白が生じないように印刷する印刷方法のことである。
【００３４】
印刷ボタン７０５が押下されると、印刷設定部４０４は、印刷設定を印刷データ生成部４０５に送信し、印刷工程に移行する。キャンセルボタン７０６が押下されると、印刷を実行せずに前画面に戻る。
【００３５】
なお、図７の印刷設定ダイアログ７００に表示されるプリンタの印刷設定に関する情報は、予め情報処理装置に保持しておいてもよいし、ネットワークを通じてサーバ１１６やプリンタ１１４から適宜ダウンロードしてもよい。
【００３６】
印刷データ生成部４０５は、コンテンツのレンダリング、付加情報の埋め込み処理、およびプリンタ１１４で印刷するために必要なデータの生成処理を行う。レンダリング処理では、画像取得部４０２で取得され、図５のコンテンツ編集エリア５００に表示されているコンテンツから印刷に用いる画像データを生成する。付加情報の埋め込み処理では、レンダリングで生成された画像データに、付加情報取得部４０３で取得した付加情報を埋め込む処理が行われる。
【００３７】
本実施形態では、印刷データの生成に使用するコンテンツは、ウェブ標準言語（ＨＴＭＬ（Hyper Text Markup Language）、ＣＳＳ、ＪａｖａＳｃｒｉｐｔ（登録商標）等）を用いて記述される。本実施形態ではＨＴＭＬにおけるグラフィック表記手法の一つであるＳＶＧ（Scalable Vector Graphics）を用いて、印刷に使用するコンテンツを記述した例を用いて説明を行う。しかしこれに限定するものではなく、例えば、ＨＴＭＬでグラフィックを記述するのに使用されるＣａｎｖａｓを用いてもよい。
【００３８】
図８は、本実施形態において印刷に使用するコンテンツを記述した例を示す図である。本実施形態では、画像を１枚のみ配置したコンテンツを例に説明する。この場合のＳＶＧの記述例を図８（ａ）に示す。図８（ａ）のＳＶＧの記述例は、概略を説明するためのものであり、細かい設定の記述は省略している。図８の左端の数字は、行数を示している。
【００３９】
図８（ａ）における１行目は、コンテンツがＳＶＧによって記述されていること、および、ＳＶＧのサイズを記述している。２行目はコンテンツに追加された画像に関する記述である。本実施形態では、アプリケーション４００は、画像１枚のみのコンテンツを作成する形態であるものとして説明するが、これにテキストやスタンプを追加する形態でもよい。その場合は、追加したテキストやスタンプの情報がＳＶＧによって記述される。
【００４０】
次に、印刷データ生成部４０５が、ＳＶＧコンテンツのレンダリングを実行し、付加情報の埋め込み処理（多重化処理ともいう）を施して印刷データの生成を行うまでの処理を、図９を用いて詳細に説明する。
【００４１】
図９は、印刷データ生成部４０５で行われる印刷データ生成処理の一例を示すフローチャートである。
【００４２】
ステップＳ９０１において印刷データ生成部４０５は、まず、印刷可能領域情報の取得を行う。印刷可能領域情報（領域情報という場合もある）とは、印刷に使用される印刷メディア（用紙やディスクメディア等）において印刷可能な領域を規定する情報である。
【００４３】
図１０は、印刷可能領域情報の一例を示す図である。図１０に示す印刷可能領域情報は、例えば使用対象のプリンタ１１４の印刷可能領域情報格納部４１０に予め格納されている情報である。図１０に示すように、印刷可能領域情報１０００は、所定の印刷設定により所定の解像度（図１０では３００ｄｐｉ）で印刷されたときの画素数により、印刷メディアにおける印刷可能領域を示す。図１０に示すように、印刷設定に応じて印刷可能領域情報は異なる。フチあり／フチなしの印刷設定毎に、幅（Ｗ）・高さ（Ｈ）のピクセル値と、マージンのピクセル値とを含んでいる。図１０の例では、３００ｄｐｉで印刷する場合の情報が記載されている。マージンはフチ部分の余白サイズを表しており、フチなしのマイナスの符号は、画像の端部分が印刷時には切り取られることを意味している。ここで、印刷設定がフチありのときは、図１０が示す「印刷画像サイズ」が印刷可能領域となる。一方、印刷設定がフチなしのときは、図１０が示す「用紙サイズ」が印刷可能領域となる。印刷可能領域情報の詳細については後述する。
【００４４】
図１０に示す印刷可能領域情報は、データ送受信部４０６、４０９を介してプリンタ１１４から画像処理装置１００に送受信が可能な形式で送信される。なお、本実施形態では印刷可能領域情報はプリンタ１１４の印刷可能領域情報格納部４１０で格納されており、この格納されている情報が画像処理装置１００に送信される形態を説明したが、これに限られない。印刷可能領域情報は、アプリケーション４００内で予め保持されていてもよい。インターネット１１５経由で、アプリケーション４００がサーバ１１６からダウンロードする形態でもよい。また、印刷可能領域がプリンタの機種毎に異なっていてもよい。即ち、同一の印刷設定、同一の印刷メディアであっても、該印刷メディアにおいて印刷が可能な領域が異なっていてもよい。この場合、アプリケーション４００は、次の方法で印刷可能領域情報を取得してもよい。アプリケーション４００は、プリンタの機種毎の印刷可能領域情報を予め保持しておく。そして、印刷に使用するプリンタの情報に基づいて、対応する印刷可能領域情報を取得してもよい。すなわち、アプリケーション４００は、印刷設定ダイアログ７００のプリンタ選択リスト７０１でユーザが選択したプリンタ種類に対応した印刷可能領域情報を取得してもよい。
【００４５】
次に、ステップＳ９０２において印刷データ生成部４０５は、用紙設定に応じた印刷可能領域情報から、レンダリングサイズ（図１０の「印刷画像サイズ」）を決定する。用紙設定がＬ版、フチありで印刷解像度が３００ｄｐｉであった場合、図１０に示すように、レンダリングサイズは９５０ｐｘ（ピクセル）×１４００ｐｘとなる。なお、印刷設定として３００ｄｐｉ以外の印刷解像度が設定可能である場合、他の印刷解像度に対応する印刷可能領域情報が、印刷可能領域情報格納部４１０に格納される。そして、ステップＳ９０２では、印刷解像度に応じた印刷可能領域が参照される。或いは、３００ｄｐｉ以外の印刷解像度が印刷設定として設定された場合、図１０に示した印刷可能領域情報から、３００ｄｐｉ以外の印刷解像度に応じたレンダリングサイズが算出されてもよい。例えば、上述のように用紙設定がＬ版、フチありで、印刷解像度が６００ｄｐｉの場合、図１０に示す印刷可能領域情報が参照されることで、レンダリングサイズとして１９００ｐｘ×２８００ｐｘが算出される。  ステップＳ９０３において印刷データ生成部４０５は、コンテンツであるＳＶＧの一部を、印刷のために書き換える。ここでは、ステップＳ９０２で決定されたレンダリングサイズに合わせて、ＳＶＧの横幅および縦幅を、プリンタへ送信する画像サイズに合わせて変更する。具体的には、図８（ａ）のＳＶＧの２行目と３行目のｗｉｄｔｈが「９５０」に、ｈｅｉｇｈｔが「１４００」に、２行目のｖｉｅｗＢｏｘが「０  ０  ９５０  １４００」に変更される。書き換えられたＳＶＧの例を図８（ｂ）に示す。
【００４６】
次に、ステップＳ９０４において印刷データ生成部４０５は、画像処理装置１００の不図示のＯＳ（Operating System）に対して画面生成を要求する。ここでは、ステップＳ９０３において書き換えられたＳＶＧを参照して、９５０ｐｘ×１４００ｐｘの領域の情報が取得される。そして、ＯＳによって、ＳＶＧ用の画面生成（９５０ｐｘ×１４００ｐｘ）が実行される。ＳＶＧのサイズに関する情報は、ＳＶＧ自体ではなく、アプリケーションが保持してもよい。また、ＯＳが生成する画面は、オフスクリーン画面として生成される。オフスクリーン画面とは、ＵＩには表示されない画面のことである。
【００４７】
ステップＳ９０５において印刷データ生成部４０５は、ステップＳ９０４で生成された画面にＳＶＧを描画するようにＯＳに対して要求する。ＯＳは、ＳＶＧの情報をロードする。ＳＶＧの情報がロードできたタイミングで、アプリケーション４００はＯＳからロード完了の通知を受け取る。この通知はＯＳに標準的に備わっている機能を利用すればよい。例えばｉＯＳアプリケーションの作成で利用するＯｂｊｅｃｔｉｖｅ−Ｃ言語であればｗｅｂＶｉｅｗＤｉｄＦｉｎｉｓｈＬｏａｄ関数などがロード完了通知に該当する。また、Ａｎｄｒｏｉｄアプリケーションの作成で利用するＪａｖａ言語であればｏｎＰａｇｅＦＩｎｉｓｈｅｄ関数などがロード完了通知に該当する。アプリケーション４００は、ロード完了通知を受け取ると、ＳＶＧの描画が完了したと判定し、次のステップに進む。
【００４８】
ステップＳ９０６において印刷データ生成部４０５は、ＯＳに対しコンテンツの画像データを要求する。ここでの画像データとは、オフスクリーン画面に表示されているコンテンツのＲＧＢＡデータのことである。端的にいえば、画面キャプチャを実行するということである。ＯＳは、アプリケーション４００からの要求に応じて、コンテンツが描画されたオフスクリーン画面の画面キャプチャを実行し、取得したＲＧＢＡデータをアプリケーション４００へ送信する。
【００４９】
ステップＳ９０７において印刷データ生成部４０５は、取得したＲＧＢＡデータに対して付加情報を埋め込む処理を行う。付加情報は、視覚的に判別しづらいように画像中に埋め込まれる。付加情報の埋め込み処理では、付加情報取得部４０３で取得した付加情報と、ステップＳ９０１で取得した印刷可能領域情報１０００とを使用する。詳細については後述する。ステップＳ９０６にてＯＳから取得したＲＧＢＡデータにはＡ（透過度）の情報が含まれている。本実施形態では、この透過度の情報は印刷には用いないので、削除してＲＧＢデータとして付加情報の埋め込み処理が行われる。
【００５０】
ステップＳ９０８において印刷データ生成部４０５は、付加情報の埋め込み処理後のＲＧＢデータをＪＰＥＧ画像データへ変換する。なお、本実施形態では、画像データをＪＰＥＧに変換する例を説明するが、公知であるＰＤＦ（Portable Document Format）の技術を用いて、ＰＤＦのフォーマットに変換したデータを画像データとしてもよい。
【００５１】
ステップＳ９０９において印刷データ生成部４０５は、プリンタ１１４に送信するためのプリントコマンドを、ステップＳ９０８で生成したＪＰＥＧ画像データに付加する。ここで、ＪＰＥＧ画像データに付加するデータは、印刷設定の情報を基に生成される。また、必要であれば、プリンタ１１４を制御するためのコマンドを付加してもよい。
【００５２】
図１１は、印刷データのプリントコマンドの例を示す図である。ここでは、プリントコマンドとして、ＸＭＬ形式で記述されたコマンドを使用する。図１１の例えば３から５行目では、「Ｌ版サイズの光沢紙に対して標準モードで印刷する」というプリンタ用の設定が記述されている。また、７から９行目で、印刷データは「横幅９５０、縦幅１４００のＪＰＥＧデータ」ということが記述され、１０行目に、ステップＳ９０９で変換されたＪＰＥＧデータが挿入される。
【００５３】
プリンタ１１４は、画像データ（ＪＰＥＧデータ）と共に上述のようなプリントコマンドを受け取ることで印刷を実行する。以上のステップにより、印刷データ生成部４０５で行われるレンダリング処理、付加情報の埋め込み処理、および印刷データの生成処理が終了する。
【００５４】
図４の説明に戻る。画像処理装置１００側のデータ送受信部４０６は、印刷データをプリンタ１１４に送信する。アプリケーション４００は、ＯＳに対して印刷データの送信を要求し、ＯＳはアプリケーションから受け取ったデータをプリンタ１１４へ送信する。データの送信は、例えば画像処理装置１００とプリンタ１１４とを無線の電波で接続する公知の無線ＷｉＦｉ技術を用いて行われる。データの送信方法に関しては、その他公知の方法を用いても構わない。例えば、画像処理装置１００とプリンタとをＵＳＢポートで接続する。画像処理装置１００側では、プリンタドライバにより、プリンタで印刷可能なラスターデータに変換する。この印刷可能なラスターデータをＵＳＢポートでプリンタに送信してもよい。プリンタ側は、受け取ったラスターデータを、印刷可能なデータに変換し、印刷を行う形態でもよい。
【００５５】
次に、プリンタ１１４側の処理について説明をする。プリンタ１１４側のデータ送受信部４０９は、画像処理装置１００から送信される印刷データを受信する。データ送受信部４０９は、受信した印刷データに含まれるプリントコマンドを解析し、解析した用紙サイズおよび用紙の種類などの印刷設定情報を印刷処理部４０８に送る。また、データ送受信部４０９は、印刷データに含まれるＪＰＥＧファイルを復号化処理して画像データに変換し、変換後の画像データを印刷処理部４０８に送る。ここで、通常の印刷時には、印刷設定情報に補正処理情報が含まれている場合は、画像データに対して画像補正処理を実行することがある。画像補正処理としては、明度調整や、コントラスト調整、カラーバランスの調整のほか、写真印刷を想定した逆光補正や赤目補正など、様々なものが挙げられる。しかし、付加情報が埋め込まれた画像を印刷する場合においては、画像処理によって、埋め込まれた情報が消失あるいは信号が弱くなる恐れがあるため、画像補正処理は実行しないものとする。上述した画像補正処理を実行したい場合は、アプリケーション４００で印刷データを生成する前に（つまり、付加情報を埋め込む前に）実行することが望ましい。
【００５６】
印刷処理部４０８は、データ送受信部４０９から受け取った画像データを、プリンタで出力させる際に好適な色となるように色分解し、インク色データに変換する。インク色データに変換する方法は、画面表示に利用する画像フォーマット（ＲＧＢ）から、印刷用のインク色（ＣＭＹＫ）に変換する公知の色変換処理であれば、いずれの方法であってもよい。
【００５７】
例えば、プリンタ１１４のインク色として、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）、ブラック（Ｋ）の４色を想定する。印刷処理部４０８は、入力されたレッド（Ｒ）、グリーン（Ｇ）、ブルー（Ｂ）の３色から成るデータを、Ｃ，Ｍ，Ｙ，Ｋの４色のインク色データに変換する。変換を行う場合は、色分解テーブルを用いる。色分解テーブルは、Ｒ，Ｇ，Ｂの３つの値を入力すると、Ｃ，Ｍ，Ｙ，Ｋのインク色の値に変換できる３次元のルックアップテーブルである。印刷処理部４０８は、入力された画像データの画素毎に、色分解テーブルを利用して、Ｒ，Ｇ，Ｂの値をＣ，Ｍ，Ｙ，Ｋのインク色の値に変換する。
【００５８】
印刷処理部４０８ではさらに、出力階調補正やハーフトーニングといった画像処理をルックアップテーブルなどの画像処理パラメータを用いて行い、インク色データを印刷出力用データに変換する。
【００５９】
変換された印刷出力用データは、図２の制御回路部２０３に送られる。制御回路部２０３は、印刷出力用データに従って印刷メディア２０４にインクを吐出し、画像を形成する。このように形成された印刷物には、付加情報が埋め込まれている。以上のステップにより、印刷データの印刷処理が終了する。
【００６０】
アプリケーション４００の付加情報読み取り部４０７は、付加情報が埋め込まれた印刷物から、付加情報を読み出して抽出する処理を行う機能を持つ。付加情報の抽出処理の詳細については後述する。なお、図４の例では、アプリケーション４００が付加情報の埋め込みと読み出しとの両方を行う形態を示したが、付加情報の埋め込みと読み出しとが別々のアプリケーションで行なわれてもよい。
【００６１】
＜付加情報の埋め込み処理＞
以下では、アプリケーション４００で行われる、レンダリング後の画像データに対して付加情報を埋め込む処理を説明する。図１２は、付加情報の埋め込み処理を説明するフローチャートであり、図９のステップＳ９０７の詳細を説明する図である。図１２に示す処理は、アプリケーションの印刷データ生成部４０５で行われる。
【００６２】
ステップＳ１２０１において印刷データ生成部４０５は、付加情報をバイナリデータに変換する。ここでは、付加情報として、「ｈｅｌｌｏ」という文字列が入力された場合を例に挙げて説明する。バイナリデータとは、「０」または「１」の情報であり、これらが連続でつながることにより、特定の意味を持つようになる。バイナリデータと文字との対応は、「文字コード」と呼ばれるもので定義されている。例えば、文字コードの一つである「シフトＪＩＳ」を例にとると、「ｈ」はバイナリデータの「０１１０１０００」に対応している。同様に「ｅ」は「０１１００１０１」、「ｌ」は「０１１０１１００」、「ｏ」は「０１１０１１１１」というバイナリデータに対応している。
【００６３】
つまり「ｈｅｌｌｏ」という文字はバイナリデータで「０１１０１００００１１００１０１０１１０１１０００１１０１１０００１１０１１１１」と表現できる。逆に「０１１０１００００１１００１０１０１１０１１０００１１０１１０００１１０１１１１」というバイナリデータを取得できれば「ｈｅｌｌｏ」という文字を取得することができる。つまり、「０」または「１」を判定できるようにデータを埋め込むことで付加情報の埋め込みが実現可能である。
【００６４】
図１３は、画像に対して「０」または「１」の情報を埋め込む方法を説明する図である。ここでは、「０」、「１」を生成するために図１３（ａ）および（ｂ）の二つのパターンを考える。例えば図１３（ａ）のパターンが「０」を表し、図１３（ｂ）のパターンが「１」を表すものとする。図１３（ａ）および（ｂ）のパターンは、８ｐｘ×８ｐｘで構成されている。各パターン内の一つの矩形が１ｐｘを表している。印刷データ生成部４０５は、これらのパターンに従って「０」および「１」のバイナリデータで構成されている付加情報を画像に埋め込む。これにより、画像内の８ｐｘ×８ｐｘの領域に対して周期性を持ったパターンを与えることができる。
【００６５】
画像へのパターンの埋め込み方法としては、例えば、直接ＲＧＢの値（輝度情報）に、周期性を重畳する方式が考えられる。他の方法としては、ＲＧＢの値を、輝度−色差情報など、他の色空間情報（例えばＣＩＥ  Ｌ＊ａ＊ｂ＊、ＹＣｒＣｂ信号）に分離して周期性を重畳する方式により埋め込みを実現してもよい。または、ＲＧＢの値をインク色（例えばＣＭＹＫ信号）に分離して周期性を重畳する方式により埋め込みを実現しても良い。本実施形態では、簡単のため、ＲＧＢ成分のＢ成分に周期性を重畳する方法を例に挙げる。図１３（ａ）および（ｂ）のハッチングされたピクセル（ｐｘ）部分に対して、Ｂ成分を３０減算するものとする。より好ましくは、減算だけでなく、加算する部分もあったほうがよい。減算と加算が等量あるパターンにすることで、画像への付加情報を埋め込んだ後の違和感が軽減される。図１３（ｃ）および（ｄ）に、減算と加算を含むパターンを示す。薄いハッチング部分が、加算部分である。このように、付加情報が埋め込まれる対象の画像のＲＧＢデータのうち、所定のパターンに沿って所定の成分の値を加工することで付加情報の埋め込みが行われる。
【００６６】
図１４は、本実施形態で使用する付加情報の単位ブロック（多重化ブロック）を表す図である。ブロック１４００が１つの単位ブロックを表しており、この単位ブロック内の全情報を読み取ることで埋め込まれた付加情報を取り出すことができる。単位ブロック１４００はマーカー部１４０１とデータ部１４０２とで構成されている。マーカー部１４０１は付加情報の読み取りの際に単位ブロック１４００の位置を特定するために利用される８０×８０ｐｉｘｅｌのブロックで、マーカー部を表す情報が埋め込まれている。マーカー部１４０１を表す情報として、例えば図１３（ａ）および（ｂ）の両方の組み合わせから成る特定のパターンを付加し、このパターンを読み取りの際に検出することでマーカー部１４０１の検出を行うことができる。他の方法としては、図１３（ａ）および（ｂ）とは異なる周期性や周期の方向を持つパターンでマーカー部１４０１を構成することも考えられる。
【００６７】
データ部１４０２は、図１３（ａ）または図１３（ｂ）であるパターン１４０３（すなわち、「０」か「１」を表すパターン）が敷き詰められている。本実施形態の単位ブロック１４００は２４０×２４０ｐｉｘｅｌで構成されており、データ部１４０２にはパターン１４０３が８００個入っている。パターン１４０３が１つで１ビットの情報を表すことができるため、ブロック１４００全体では８００ビットの情報量があることになる。
【００６８】
なお、本実施形態では、単位ブロック内のマーカー部１４０１は、ブロック１４００の左上に配置しているが、右上や真ん中等、それ以外の位置に配置してもよい。また、マーカー部１４０１は、矩形以外の形状でもよいし、単位ブロック内に分散して配置されていてもよい。
【００６９】
図１５（ａ）は、印刷メディア２０４に単位ブロック１４００が繰り返し埋め込まれている様子を表した図である。つまり、同じ付加情報を表す単位ブロック１４００が、印刷メディア２０４の全面に繰り返し埋め込まれている様子を示している。図１５（ａ）の印刷設定は、Ｌ版、３００ｄｐｉ印刷、フチあり印刷とする。Ｓ９０２における処理により、この場合の印刷画像サイズは、図１０を参照すると、横幅９５０ｐｘ、縦幅１４００ｐｘとなる。印刷画像サイズが９５０×１４００なので、２４０×２４０の単位ブロック１４００を、３×５＝１５ブロック敷き詰めることが可能である。印刷メディア２０４に埋め込まれた付加情報を読み出すには、この繰り返し埋め込まれた複数の単位ブロック１４００のうち、１つ分のデータ部の読み出しが出来れば良い。なお、同じ情報（単位ブロック１４００）を印刷メディア２０４の全面に多く埋め込むことで、読み取り時のロバスト性を高めることができる。ある単位ブロック１４００では、付加情報を読み出すことができないものの、他の単位ブロック１４００を参照することで、付加情報を読み出すことが可能になる場合があるからである。なお、ここでは同じ情報（単位ブロック１４００）を繰り返し埋め込む場合を例に挙げているが、これに限られない。異なる情報（異なる内容のブロック）を、画像の全面に埋め込む場合でもよい。図１５（ａ）では、印刷メディアの右部分と下部分にはブロックサイズが足りないエリアが存在するが、このエリアにもブロックの一部が埋め込まれている。
【００７０】
図１５（ｂ）は、印刷設定が、Ｌ版、３００ｄｐｉ、フチなし印刷の場合の埋め込みを表している。フチなし印刷では、印刷画像サイズをフチあり時より大きい状態でレンダリングし、画像のフチ部分を用紙からはみ出した状態で印刷する。従って、印刷画像サイズがフチありより大きいことから、単位ブロック１４００を、フチありの場合より多い４×６＝２４ブロック敷き詰めることが可能である。
【００７１】
ここで、図１０の印刷可能領域情報に含まれている用紙サイズ、印刷画像サイズ、マージンの関係について言及する。用紙サイズは、印刷される用紙（印刷メディア）のサイズを表している。印刷画像サイズは、用紙サイズから上下左右のマージンをそれぞれ差し引いた数値となっている。マージンはフチ部分の余白サイズを表しており、フチなしのマイナスの符号は、画像の端部分が印刷時には切り取られることを意味している。すなわち、Ｌ版、フチありの場合、印刷画像サイズの幅＝１０５０−（５０×２）＝９５０、印刷画像サイズの高さ＝１５００−（５０×２）＝１４００となる。同様に、フチなしの場合、印刷画像サイズの幅＝１０５０−（−２５×２）＝１１００、印刷画像サイズの高さ＝１５００−（−２５×２）＝１５５０となる。図１５（ａ）および（ｂ）に示すように、印刷画像サイズは、フチなしの場合の方が大きくなり、フチありの場合よりも多くの付加情報（同種の情報でも異なる種類の情報でもよい）を印刷画像に埋め込むことができる。
【００７２】
このように、フチなしの場合には、フチありの場合よりも印刷画像サイズが大きくなるので、本来的には多くの付加情報を印刷メディア２０４に埋め込めることが期待できる。しかしながら、フチなしの場合には、印刷画像の端部が印刷時に切り取られる。このため、付加情報の埋め込み方によっては印刷メディア２０４に埋め込める付加情報の量が増えない場合がある。そこで、本実施形態では、付加情報を画像に埋め込む位置を適切に決定して、付加情報を埋め込むことで、画像内に埋め込むことができる付加情報の情報量を増やすことを可能にする。
【００７３】
図１２の付加情報の埋め込み処理のフローチャートの説明に戻る。付加情報（文字列）のバイナリ化が終了するとステップＳ１２０２に進む。ステップＳ１２０２において印刷データ生成部４０５は、基準座標を決定する。基準座標とは、印刷画像サイズの印刷画像に対して付加情報を埋め込む起点となる位置のことである。具体的には、単位ブロック１４００を配置する起点となる座標（Ｘ，Ｙ）のことである。印刷画像の左上を原点とする座標で表す。Ｘの値は原点から右に行くほど大きくなり、Ｙの値は原点から下に行くほど大きくなる。
【００７４】
Ｓ１２０２では、その基準座標として、印刷対象の画像のうちの印刷可能領域に印刷される部分の左上の座標が決定される。上述したように、印刷設定がフチありのときは、図１０が示す「印刷画像サイズ」が印刷可能領域となる。一方、印刷設定がフチなしのときは、図１０が示す「用紙サイズ」が印刷可能領域となる。図１５（ａ）および図１５（ｂ）では、基準座標が（Ｘ，Ｙ）＝（０，０）の場合を示している。基準座標が（０，０）の場合、図１５（ａ）に示すフチあり印刷では問題ないが、図１５（ｂ）に示すフチなし印刷の場合に問題が生じる。
【００７５】
図１６（ａ）は、図１５（ｂ）に示すフチなし印刷時の印刷可能領域を表す図である。図１６（ａ）の点線で示している領域が、印刷画像のうちの、印刷メディア２０４の印刷可能領域（ここでは印刷用紙の全面）への印刷対象となる部分である。である。点線で示す領域は、印刷画像サイズにマージンを加えたサイズに一致している。フチなしの場合には、前述したように、マージンはマイナスの値である。このため、図１６（ａ）の点線で示す領域は、印刷画像サイズに、マイナスのマージンを加えたサイズに一致している。つまり、点線で示す領域は、用紙サイズに一致している。フチなし印刷では、印刷時に画像端部が切り取られてしまう。通常の画像の印刷であれば、端部が切り取られても問題は生じない。しかしながら、付加情報の埋め込みを行った画像で端部の切り取りが発生すると、図１６（ａ）の領域１６０１で示す濃いハッチングで示すマーカー部のように、画像端部の切り取りによって一部が欠損してしまうマーカー部が存在してしまう。欠損したマーカー部を含むブロックでは、読み取り時にマーカー部の検出ができないため、データ部の読み取りもできなくなってしまう。そのため、読み取り可能なブロック数が少なくなってしまう。つまり、読み取ることが可能な付加情報の量が少なくなってしまう。結果として読み取りロバストを低下させてしまう。
【００７６】
そのため、本実施形態では、フチなし印刷の場合は、ブロック（マーカー部）の欠損ができるだけ生じないように、基準座標を決定する。そのためＳ１２０２では、印刷可能領域情報のうち、フチなしのマージン値（−２５）の符号を反転させた２５を基準座標のＸＹ値とする。つまり、（Ｘ，Ｙ）＝（２５，２５）を基準座標の値とする。このようにしてステップＳ１２０２において基準座標が決定される。
【００７７】
次に、ステップＳ１２０３において印刷データ生成部４０５は、単位ブロックの配置を決定する。印刷データ生成部４０５は、ステップＳ１２０２で決定した基準座標を起点に、単位ブロックを敷き詰める。図１６（ｂ）は、基準座標１６０２（Ｘ，Ｙ）＝（２５，２５）を起点として単位ブロックを配置した例を示している。マーカーの欠損を防止するようにブロックを配置しているため、読み取り可能なブロックが図１６（ａ）と比べて多くなっていることがわかる。基準座標をずらした影響で下端の５つのマーカー部が欠損しているが、そもそもこれらのブロックはデータ部の大部分が欠損しているため、これらが読み取りできなくなっても、読み取りへの影響は小さい。
【００７８】
ステップＳ１２０４において印刷データ生成部４０５は、決定した基準座標とブロック配置とを用いて画像に付加情報の埋め込みを行う。付加情報の埋め込みは、対象の画像と図１６（ｂ）のブロック配置とを対応付けながら、各画素に対して図１３のパターンを重畳することにより行う。具体的には、図１６（ｂ）の各ブロック内のデータ部は、図１３（ａ）のパターンまたは図１３（ｂ）のパターンから成っているため、各パターンのハッチング部に対応する画素のＲＧＢのＢ値を３０減算する。Ｂ値が０を下回る場合は、０とする。これを画像全体に適用することにより、画像への付加情報の埋め込みが完了する。
【００７９】
以上、ブロック図に従って、画像に付加情報を埋め込んでプリンタで印刷するまでの処理を説明した。次に、付加情報が埋め込まれた印刷物を読み取る処理について説明する。
【００８０】
＜付加情報の読み取り処理＞
本実施形態の特徴は埋め込み処理にあるため、読み取り処理については詳細な説明は割愛し、概要の説明にとどめる。付加情報の読み取り処理は、図４におけるアプリケーション４００の付加情報読み取り部４０７によって実施されるが、埋め込みを行ったデバイスとは別のデバイスのアプリケーションで読み取りを実施してもよい。
【００８１】
図１７は、付加情報の読み取り処理に関連するブロック図を示す。画像処理装置１００のアプリケーション４００に含まれる付加情報読み取り部４１１は、埋め込み位置検出部１７０１、付加情報抽出部１７０２、および付加情報解析部１７０３を備えている。
【００８２】
まず、アプリケーション４００は、内部撮像デバイス１１２を制御して、付加情報が埋め込まれた印刷物の撮像を行う。撮像によって得られた画像データは、静止画のデータでもよいし、動画から各フレームを抜き出した静止画像のデータを使用してもよい。撮像によって得られた画像データは、埋め込み位置検出部１７０１に送られる。画像データは、ＲＧＢ形式の８ビットデータとして得られるものとする。
【００８３】
埋め込み位置検出部１７０１は、画像データから付加情報が埋め込まれている位置の検出を行う。具体的には、画像データの空間周波数特性を解析することにより埋め込み位置の検出を行う。
【００８４】
図１８は、埋め込みに用いたパターンの空間周波数の特性を表す図である。横軸が水平方向の周波数、縦軸が垂直方向の周波数を表し、原点から遠ざかるにつれて高周波域となる。本実施形態では、図１３に示すように、２つのパターンを画像に埋め込んでいる。埋め込み例ではＲＧＢのＢ成分に３０の減算を行っている。これにより、図１３（ａ）のパターンはライン１８０１に大きなパワースペクトルを発生させる。同様に、図１３（ｂ）のパターンはライン１８０２に大きなパワースペクトルを発生させる。埋め込み位置検出部１７０１は、このパワースペクトルを検出することにより、「０」か「１」のデータ抽出を行う。なお、検出の前処理として、エッジ検出を行うことにより、パワースペクトルの強調をすることも可能である。
【００８５】
周波数解析によるデータの抽出では、画像データからの解析エリアの正確な切り出しが必要となる。特に、スマートフォンによる撮像の場合、撮像距離が一定でないことから、距離を補正して図１３の８ｘ８のパターンを正確に切り出す処理が行われる。例えば、図１８の範囲１８０３が、図１３の８ｘ８パターンによるピーク出現周波数とすると、撮像画像の一部を拡大あるいは縮小して、この周波数部分で最もピークが強くなる拡縮率を求めることで、撮像距離の補正が可能となる。例えば、撮像画像の全体を拡大あるいは縮小したり、撮像する画像の解像度を変えたりすることで撮像距離の補正が行われる。次に、座標位置のずれを補正する処理が行われる。例えば、画像内からの８ｐｘ×８ｐｘの切り出しと周波数解析とを１ｐｘずつずらしながら縦横に繰り返し、横８ｐｘ×縦８ｐｘの計６４回繰り返し、最もスペクトルが強くなる箇所を切り出しの基準位置とする方法がある。
【００８６】
埋め込み位置検出部１７０１での位置検出が完了したら、付加情報抽出部１７０２は、付加情報の抽出（分離）を行う。図１４の例で説明すると、付加情報の抽出は、まず特定のバイナリパターンから成る単位ブロック１４００のマーカー部１４０１を検出した後、マーカー部１４０１の位置を基準としてデータ部１４０２からのデータ読み出しを行う。読み出し時には、１つのブロックでは一部分しか読み取りが出来ない場合があるが、その場合は読み取りができなかった部分のデータを、他のブロックのデータで補ってデータを完成させてもよい。すなわち、付加情報の抽出は、第１のブロックで第１の部分のデータを抽出し、第１のブロックとは別の第２のブロックで、第１の部分以外の第２の部分のデータを抽出することで行なわれてもよい。図１４の例では、データが完成すると、８００ビット分の「０」「１」数列が得られる。
【００８７】
付加情報解析部１７０３は、付加情報抽出部１７０２で付加情報として抽出した数値列に対して、データを解析し、埋め込んだ付加情報の形式に変換する処理を行う。例えば、あらかじめ埋め込む対象の付加情報を、テキスト文書データとして、文字コードを「シフトＪＩＳ」で数値化した値としておく。
【００８８】
シフトＪＩＳの１バイトコード（半角文字）では、上位４ビットと下位４ビットの組み合わせで、数値及び文字に対応した変換を行える。例えば、上位４ビットが「０１００」で、下位４ビットが「０００１」の場合、文字列として、「Ａ」と判定される。このように、変換マップを予め保持しておき、数値列を対応させることで、文字へと変換することができる。
【００８９】
付加情報として抽出した数値列は、図１のＲＡＭ１０４に一時的に保持しておき、２次記憶装置１０５に予め保持していた「シフトＪＩＳ」変換マップを参照できるようにしておく。
【００９０】
仮に、付加情報抽出部１７０２で抽出した付加情報の数値列が、「０１１０１００００１１００１０１０１１０１１０００１１０１１０００１１０１１１１」とする。この場合、変換マップに対応させると以下のようになる。
・上位４ビット「０１１０」、下位４ビット「１０００」で、文字「ｈ」
・上位４ビット「０１１０」、下位４ビット「０１０１」で、文字「ｅ」
・上位４ビット「０１１０」、下位４ビット「１１００」で、文字「ｌ」
・上位４ビット「０１１０」、下位４ビット「１１００」で、文字「ｌ」
・上位４ビット「０１１０」、下位４ビット「１１１１」で、文字「ｏ」
【００９１】
従って、文字列の「ｈｅｌｌｏ」となる。抽出された文字列は、例えば図４の表示処理部４０１でディスプレイに表示される。また、抽出された文字列が、ＵＲＬなら、ネットワークに接続し、ブラウザを利用してディスプレイに、ＵＲＬ先の画面を表示する。また、そのＵＲＬが動画サイトであった場合、ディスプレイで動画を表示して、不図示のスピーカーで、音声を流すこともできる。以上で、付加情報の読み取り処理を終了する。
【００９２】
本実施形態では、印刷時の印刷可能領域情報に基づいて付加情報を埋め込む基準位置を決定する形態を説明した。このため、埋め込むことが可能な（読み取ることが可能な）付加情報の量を増やすことができる。また、印刷可能領域情報に基づいて決定した基準位置を基準に単位ブロック配置を決定する形態を説明した。このため、印刷可能領域端部のブロックの欠損を低減して印刷することができ、読み取り時のロバスト低下を防止することができる。
【００９３】
なお、以上の実施形態では、図９のＳ９０１、Ｓ９０２により、印刷設定に応じたレンダリングサイズが決定された。そして、図１２のＳ１２０２において、決定されたレンダリングサイズと、印刷設定としてのフチあり／フチなしにより、印刷画像において付加情報が埋め込まれる基準位置が決定されていた。しかしこれに限らず、例えば印刷設定の組み合わせ（用紙サイズ、フチあり／フチなしの組み合わせ）の全パターンに応じた基準位置を示すテーブルが、印刷可能領域情報格納部４１０に格納されてもよい。この場合、Ｓ９０１、Ｓ９０２の処理が行われなくても、Ｓ１２０２において印刷設定の組み合わせに応じた基準位置を上記テーブルで参照することで、印刷設定に応じた適切な基準位置を基準として、付加情報を印刷画像に埋め込むことができる。
【００９４】
＜＜実施形態２＞＞
実施形態１では、印刷される領域が矩形でフチなし印刷を行う例を挙げたが、フチあり印刷の場合でも、マーカー部の欠損が生じる場合がある。例えばディスクレーベル印刷のように、矩形以外の印刷可能領域に付加情報を埋め込む場合においても、基準位置を適切に決定することが望ましいことがある。本実施形態では、複雑な形状の印刷可能領域に対して基準座標を決定する方法を説明する。本実施形態の構成については、実施形態１で説明したものと同様であるので、説明を省略する。本実施形態は、図１２のステップＳ２０２の基準座標の決定の処理が、実施形態１と異なる。
【００９５】
本実施形態では、単位ブロックのマーカー部の欠損ができるだけ少なくなるように、基準座標を決定する処理が行われる。換言すると、単位ブロックのマーカー部が最大数、印刷可能領域に入るように、基準座標を決定する。以下、図１９を用いて説明する。
【００９６】
図１９（ａ）は、ディスクレーベル（内径小）の印刷可能領域を表す図である。図１９（ｂ）は、ディスクレーベル（内径大）の印刷可能領域を表す図である。点線で示されている外側の円と内側の円との間の領域が、印刷可能領域である。濃いハッチングで表しているマーカー部１９０１は印刷可能領域外にあるので、マーカー部を含む単位ブロックの読み取りはできない。一方、白色で表しているマーカー部１９０２は、印刷可能領域内にあるので、マーカー部を含む単位ブロックの読み取りが可能である。
【００９７】
図１９（ａ）では、白色のマーカー部１９０２は２１個存在する。この数が最大になるように、基準座標を決定すればよい。例えば、印刷可能領域情報として、図２０に示すよう印刷可能領域を表すマスク画像を用意し、マーカー部がマスク部２００２内に存在するか判定すればよい。そして、基準座標の位置をずらしながらマーカー部がマスク部２００２内に存在する数をカウントし、最大となる位置を、基準座標の位置として決定すればよい。
【００９８】
図２１は、本実施形態における基準座標の決定処理のフローチャートの一例を示す図である。図２１に示す処理は、アプリケーション４００の印刷データ生成部４０５で行われる。
【００９９】
ステップＳ２１０１において印刷データ生成部４０５は、マーカー部の数の最大値カウンタＭｍａｘと横基準座標用カウンタｉとを０で初期化する。ステップＳ２１０２では、同様に縦基準座標用カウンタｊを０で初期化する。
【０１００】
ステップＳ２１０３において印刷データ生成部４０５は、印刷可能領域内に含まれるマーカー部の個数Ｍを算出する。まず、基準座標が（０，０）の状態のブロック配置画像を生成する。これは、マーカー部のサイズ８０ｐｘ×８０ｐｘが２４０ｐｘ間隔で並んだ、図２２のような画像である。図２２のハッチングされた部分がマーカー部を表している。この図２２のような画像に対して、図２０のマスク画像を重畳させて、マーカーが全てマスク部２００２の領域に含まれる数Ｍを算出する。
【０１０１】
ステップＳ２１０４において印刷データ生成部４０５は、最大値カウンタＭｍａｘの更新を行う。最大値カウンタＭｍａｘとステップＳ２１０３で算出された数Ｍとを比較し、数Ｍの方が大きければ最大値カウンタＭｍａｘに数Ｍを代入する。また、この時に、座標用カウンタｉとｊとの値をＩｍａｘとＪｍａｘとに記憶する。
【０１０２】
ステップＳ２１０５において印刷データ生成部４０５は、カウンタｉが単位ブロックサイズの２４０未満であればカウンタｉをインクリメントしてステップＳ２１０３に戻る。続くステップＳ２１０３で印刷データ生成部４０５は、基準座標が（１，０）の状態のブロック配置画像を生成し、同様の処理を行う。カウンタｉが単位ブロックサイズの２４０以上であれば、ステップＳ２１０６に移行する。
【０１０３】
Ｓ２１０６では、カウンタｊが単位ブロックサイズの２４０未満であればカウンタｊをインクリメントしてステップＳ２１０２に戻る。カウンタｊが単位ブロックサイズの２４０以上であれば、処理を終了する。
【０１０４】
以上の処理を行うことで、基準座標（０，０）から（２３９，２３９）の中で印刷可能領域に含まれるマーカー数が最大となる基準座標（Ｉｍａｘ，Ｊｍａｘ）を算出できる。本実施形態の処理フローでは、マーカー数が最大となる基準座標が複数見つかる場合には、最初に見つかった基準座標を採用することになるが、マーカー数が最大となる基準座標であれば、何れか選択するような処理にしてもよい。
【０１０５】
なお、本実施形態の方法は、矩形ではない単位ブロックの形状にも適用可能である。例えば、丸型、ひし形、三角形、六角形など、印刷可能領域内に配置できる形状のブロックであればどのような形状でもよい。また、本実施形態では、印刷可能領域が矩形ではない形態を例に挙げて説明したが、実施形態１のような矩形の印刷可能領域にも適用可能である。
【０１０６】
本実施形態では、印刷可能領域内に含まれるマーカー部の数が最大になるように基準座標を算出したが、印刷可能領域に含まれる単位ブロックの数が最大数になるように基準座標を算出する方法も考えられる。その場合は、図２２のブロック配置画像のマーカー部を単位ブロックにしたものを用意して、マーカー部を使用する場合と同様にマスク画像を重畳させてブロック数のカウントを行えばよい。また、マーカー部の数を最大化する方法と単位ブロックの数を最大化する方法とを組み合わせ、両方が最大になる基準座標があればその座標を採用するようにしてもよい。
【０１０７】
以上説明した本実施形態の処理によれば、マーカー部の数が最大になるように基準座標を決定したり、印刷可能領域に含まれる単位ブロックの数が最大になるように基準座標を決定したりすることができる。したがって、埋め込むことが可能な付加情報の量を増やすことができる。
【０１０８】
＜＜実施形態３＞＞
実施形態１では、印刷可能領域情報のうち、印刷設定のフチなし、フチあり時のマージン情報を使用して基準座標を決定して単位ブロックを配置する例を説明した。単位ブロックの欠損が生じ得るケースであれば、印刷設定のフチなし、フチあり時のマージン情報以外の情報を使用してもよい。例えば、印刷安定領域を印刷可能領域として扱う場合が考えられる。用紙の先端と後端のように、中央の定常領域とは異なる紙送りと印刷処理とを行うエリアでは、印刷精度が悪く、読み取り時の十分な精度を確保できない場合がある。この場合、そのエリアを除外した印刷安定領域に基準座標を設定する。この場合も、実施形態１と同様に、印刷安定領域の情報を含む印刷可能領域情報をプリンタ内に保持しておき、それを参照する方法で実現可能である。また、実施形態２と同様に、印刷安定領域をマスク部に持つマスク画像を用いて実施形態２と同様の処理を行ってもよい。
【０１０９】
＜＜その他の実施形態＞＞
前述した実施形態では、付加情報を埋め込む基準位置を決定する際に、付加情報が最も多く埋め込まれる位置を決定する形態を例に挙げて説明したが、これに限られるものではない。付加情報が所定の値よりも多く埋め込まれる位置を決定する形態でもよい。ここで、所定の値とは、例えば本実施形態で説明するような基準位置を決定しない場合に埋め込むことが可能な付加情報の数としてよい。つまり、基準位置を調整しない場合に埋め込むことが可能な付加情報よりも多くの付加情報を埋め込めればよく、最も多く付加情報を埋め込める位置でなくてもよい。なお、基準位置を調整しないで付加情報を埋め込む場合とは、典型的には、印刷画像の原点（通常は左上）から連続して付加情報を埋め込む場合が例として挙げられる。
【０１１０】
また、前述した実施形態では、印刷画像の全面の各単位ブロックに、同じ付加情報が繰り返し埋め込まれる形態を例に挙げて説明したが、これに限られるものではない。各単位ブロックには、それぞれ別個の情報が埋め込まれても良い。あるいは、単位ブロックを複数のグループに分類してもよい。この場合、第１のグループの単位ブロックには、同じ第１の付加情報がそれぞれ埋め込まれており、第２のグループの単位ブロックには、第１の付加情報とは異なる第２の付加情報がそれぞれ埋め込まれても良い。第１のグループおよび第２のグループは、印刷画像の中において所定の領域に偏って配置されてもよい。あるいは、第１のグループと第２のグループは、分散して配置されてもよい。このようなグループは、３つ以上あってもよい。
【０１１１】
また、前述した実施形態では、付加情報が埋め込まれる領域は、所定のサイズのブロックである形態を説明したが、これに限られるものではない。ブロックのような矩形でなくてもよく、任意の形状の単位領域を用いて付加情報が埋め込まれてもよい。
【０１１２】
また、付加情報が可変長の情報であり、付加情報が埋め込まれている領域の情報が、単位ブロックのデータ部の所定の場所（例えば、最初の部分）に埋め込まれていてもよい。例えば、８００ビットの場合、冒頭の一部のビット（例えば８０ビット）が、その単位ブロック内に付加情報が埋め込まれている範囲を示すものでもよい。
【０１１３】
また、付加情報の埋め込み方のルールをアプリケーション４００が予め複数規定しておき、付加情報の例えば冒頭のヘッダ部分にルールを識別する情報を埋め込んでおき、識別されたルールに従って、付加情報の抽出が行なわれてもよい。
【０１１４】
前述した実施形態では、画像処理装置１００とプリンタ１１４とがネットワークで接続されており、画像処理装置１００が生成した印刷データがプリンタ１１４で印刷される形態を説明したが、これに限られない。プリンタ１１４がアプリケーション４００を備えてもよく、プリンタ１１４が、自身が生成した印刷データに基づいて付加情報が埋め込まれた印刷物を出力する形態でもよい。つまり、プリンタ１１４がアプリケーション４００の機能を兼ね備えてもよい。
【０１１５】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１１６】
４００……アプリケーション、４０２……画像取得部、４０３……付加情報取得部、４０４……印刷設定部、４０５……印刷データ生成部４０５
【図１】
2019009746.tif 000003
【図２】
2019009746.tif 000004
【図３】
2019009746.tif 000005
【図４】
2019009746.tif 000006
【図５】
2019009746.tif 000007
【図６】
2019009746.tif 000008
【図７】
2019009746.tif 000009
【図８】
2019009746.tif 000010
【図９】
2019009746.tif 000011
【図１０】
2019009746.tif 000012
【図１１】
2019009746.tif 000013
【図１２】
2019009746.tif 000014
【図１３】
2019009746.tif 000015
【図１４】
2019009746.tif 000016
【図１５】
2019009746.tif 000017
【図１６】
2019009746.tif 000018
【図１７】
2019009746.tif 000019
【図１８】
2019009746.tif 000020
【図１９】
2019009746.tif 000021
【図２０】
2019009746.tif 000022
【図２１】
2019009746.tif 000023
【図２２】
2019009746.tif 000024