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

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

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

特開2022-189089情報処理装置、方法およびプログラム、並びにシステム
<>
  • 特開-情報処理装置、方法およびプログラム、並びにシステム 図1
  • 特開-情報処理装置、方法およびプログラム、並びにシステム 図2
  • 特開-情報処理装置、方法およびプログラム、並びにシステム 図3
  • 特開-情報処理装置、方法およびプログラム、並びにシステム 図4
  • 特開-情報処理装置、方法およびプログラム、並びにシステム 図5
  • 特開-情報処理装置、方法およびプログラム、並びにシステム 図6
  • 特開-情報処理装置、方法およびプログラム、並びにシステム 図7
  • 特開-情報処理装置、方法およびプログラム、並びにシステム 図8
  • 特開-情報処理装置、方法およびプログラム、並びにシステム 図9
  • 特開-情報処理装置、方法およびプログラム、並びにシステム 図10
  • 特開-情報処理装置、方法およびプログラム、並びにシステム 図11
  • 特開-情報処理装置、方法およびプログラム、並びにシステム 図12
  • 特開-情報処理装置、方法およびプログラム、並びにシステム 図13
  • 特開-情報処理装置、方法およびプログラム、並びにシステム 図14
  • 特開-情報処理装置、方法およびプログラム、並びにシステム 図15
  • 特開-情報処理装置、方法およびプログラム、並びにシステム 図16
  • 特開-情報処理装置、方法およびプログラム、並びにシステム 図17
  • 特開-情報処理装置、方法およびプログラム、並びにシステム 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022189089
(43)【公開日】2022-12-22
(54)【発明の名称】情報処理装置、方法およびプログラム、並びにシステム
(51)【国際特許分類】
   H04N 1/32 20060101AFI20221215BHJP
【FI】
H04N1/32 144
【審査請求】未請求
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2021097465
(22)【出願日】2021-06-10
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
2.JAVASCRIPT
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】鈴木 智博
(57)【要約】
【課題】印刷処理による多重化された付加情報の欠落を防ぐ情報処理装置を提供する。
【解決手段】情報処理装置は、入力画像データに基づく印刷の設定として、モノクロモードであることと、印刷対象の画像に対して付加情報を多重化することとが設定されていることを条件として、モノクロモードに代えてカラーモードを設定する。そして、入力画像データに基づいて、印刷対象の画像をモノクロ化した色を色信号の値によって示されるカラーモードの印刷に対応したカラー画像データを生成し、印刷対象の画像に付加情報を多重化するための処理をカラー画像データに対して行う。そして、カラーモードで、付加情報が多重化された多重化画像を印刷装置に印刷させる。
【選択図】図16
【特許請求の範囲】
【請求項1】
印刷対象の画像を示す入力画像データを取得する取得手段と、
前記入力画像データに基づく印刷の設定として、モノクロモードであることと、前記印刷対象の画像に対して付加情報を多重化することとが設定されていることを条件として、モノクロモードに代えてカラーモードを設定する設定手段と、
前記入力画像データに基づいて、前記印刷対象の画像をモノクロ化した色を色信号の値によって示されるカラーモードの印刷に対応したカラー画像データを生成する生成手段と、
前記印刷対象の画像に付加情報を多重化するための処理を前記生成手段により生成された前記カラー画像データに対して行う多重化手段と、
前記設定手段によって設定されたカラーモードで、前記多重化手段により処理が行われたカラー画像データに基づいて前記付加情報が多重化された多重化画像を印刷装置に印刷させる制御手段と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記入力画像データが複数チャネルの画像データである場合、前記入力画像データを単一チャネルの画像データに変換する第1変換手段、をさらに備え、
前記生成手段は、前記第1変換手段により変換された前記単一チャネルの画像データに基づいて、前記カラー画像データを生成する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記単一チャネルの画像データを複数チャネルのカラー画像データに変換する第2変換手段、をさらに備え、
前記多重化手段の対象となる前記カラー画像データは、前記複数チャネルのカラー画像データである、
ことを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記多重化手段は、色成分を変動させることにより前記付加情報を多重化することを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記設定手段によるカラーモードの設定を実行するか否かを判定する第1判定手段、をさらに備え、
前記第1判定手段により前記設定手段によるカラーモードの設定を実行すると判定された場合、前記設定手段は、モノクロモードに代えてカラーモードを設定する、
ことを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
【請求項6】
前記第1判定手段は、前記印刷装置においてモノクロモードに対応する処理が実行されることに基づいて、前記設定手段によるカラーモードの設定を実行すると判定することを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記第1判定手段は、ユーザによる設定がモノクロモードを含む場合、前記設定手段によるカラーモードの設定を実行すると判定することを特徴とする請求項6に記載の情報処理装置。
【請求項8】
前記第1判定手段は、前記印刷装置から取得した情報に基づいて前記印刷装置において前記モノクロモードに対応する処理が実行されると判定した場合、前記設定手段による前記カラーモードの設定を実行すると判定することを特徴とする請求項6に記載の情報処理装置。
【請求項9】
前記第1判定手段は、前記印刷装置から取得した情報とブラックリストに基づいて、前記印刷装置において前記モノクロモードに対応する処理が実行されるか否かを判定することを特徴とする請求項8に記載の情報処理装置。
【請求項10】
前記入力画像データに基づく印刷が実行される記録媒体のサイズに応じて前記カラー画像データのリサイズを実行するか否かを判定する第2判定手段、をさらに備え、
前記第2判定手段により前記カラー画像データのリサイズを実行すると判定された場合、前記多重化手段による前記付加情報の多重化の前に、前記カラー画像データのリサイズが実行されることを特徴とする請求項1乃至9のいずれか1項に記載の情報処理装置。
【請求項11】
前記入力画像データに基づく印刷の設定としてカラーモードが設定されている場合、前記設定手段によるカラーモードの設定が行われることなく、前記入力画像データに対して付加情報が多重化されることを特徴とする請求項1乃至10のいずれか1項に記載の情報処理装置。
【請求項12】
ユーザインタフェース画面を表示する表示手段、をさらに備え、
前記取得手段により取得された前記入力画像データは、前記ユーザインタフェース画面においてユーザにより選択された画像データである、
ことを特徴とする請求項1乃至11のいずれか1項に記載の情報処理装置。
【請求項13】
前記付加情報は、前記ユーザインタフェース画面においてユーザにより入力された情報であることを特徴とする請求項12に記載の情報処理装置。
【請求項14】
前記印刷装置をさらに備えることを特徴とする請求項1乃至13のいずれか1項に記載の情報処理装置。
【請求項15】
情報処理装置において実行される方法であって、
印刷対象の画像を示す入力画像データを取得する取得工程と、
前記入力画像データに基づく印刷の設定として、モノクロモードであることと、前記印刷対象の画像に対して付加情報を多重化することとが設定されていることを条件として、モノクロモードに代えてカラーモードを設定する設定工程と、
前記入力画像データに基づいて、前記印刷対象の画像をモノクロ化した色を色信号の値によって示されるカラーモードの印刷に対応したカラー画像データを生成する生成工程と、
前記印刷対象の画像に付加情報を多重化するための処理を前記生成工程において生成された前記カラー画像データに対して行う多重化工程と、
前記設定工程において設定されたカラーモードで、前記多重化工程において処理が行われたカラー画像データに基づいて前記付加情報が多重化された多重化画像を印刷装置に印刷させる制御工程と、
を有することを特徴とする方法。
【請求項16】
請求項1乃至14のいずれか1項に記載の情報処理装置の各手段としてコンピュータを機能させるためのプログラム。
【請求項17】
情報処理装置と印刷装置とを含むシステムであって、
前記情報処理装置は、
印刷対象の画像を示す入力画像データを取得する取得手段と、
前記入力画像データに基づく印刷の設定として、モノクロモードであることと、前記印刷対象の画像に対して付加情報を多重化することとが設定されていることを条件として、モノクロモードに代えてカラーモードを設定する設定手段と、
前記入力画像データに基づいて、前記印刷対象の画像をモノクロ化した色を色信号の値によって示されるカラーモードの印刷に対応したカラー画像データを生成する生成手段と、
前記印刷対象の画像に付加情報を多重化するための処理を前記生成手段により生成された前記カラー画像データに対して行う多重化手段と、
前記設定手段によって設定されたカラーモードで、前記多重化手段により処理が行われたカラー画像データに基づいて前記付加情報が多重化された画像データを前記印刷装置に送信する送信手段と、
を備え、
前記印刷装置は、
前記送信手段により送信された画像データに基づいて前記付加情報が多重化された多重化画像をカラーモードで印刷する、
ことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、付加情報を画像データに多重化する情報処理装置、方法およびプログラム、並びにシステムに関する。
【背景技術】
【0002】
従来より、電子透かし技術と称し、印刷物に対して付加情報を視覚的に判別しづらいように多重化する技術が知られている(特許文献1)。ステガノグラフィ、ウォーターマークなど、データに対して別の意味合いを持つデータを重畳させること、もしくはその技術分野を総称して「多重化」という。多重化には、紙幣、印紙、有価証券などの不正な偽造を防止する識別情報の多重化や、写真に対する音声情報の多重化がある。多重化された情報を例えばスマートフォンなどで読み取ることで、ユーザに対して様々な付加価値を提供することができる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003-174556号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
色成分を変化させることで付加情報の多重化が行われている画像データをモノクロ印刷するように印刷設定がされている場合、プリンタにおけるモノクロ印刷の処理によって付加情報が欠落してしまう。
【0005】
本発明は、印刷処理による多重化された付加情報の欠落を防ぐ情報処理装置、方法およびプログラム、並びにシステムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するため、本発明に係る情報処理装置は、印刷対象の画像を示す入力画像データを取得する取得手段と、前記入力画像データに基づく印刷の設定として、モノクロモードであることと、前記印刷対象の画像に対して付加情報を多重化することとが設定されていることを条件として、モノクロモードに代えてカラーモードを設定する設定手段と、前記入力画像データに基づいて、前記印刷対象の画像をモノクロ化した色を色信号の値によって示されるカラーモードの印刷に対応したカラー画像データを生成する生成手段と、前記印刷対象の画像に付加情報を多重化するための処理を前記生成手段により生成された前記カラー画像データに対して行う多重化手段と、前記設定手段によって設定されたカラーモードで、前記多重化手段により処理が行われたカラー画像データに基づいて前記付加情報が多重化された多重化画像を印刷装置に印刷させる制御手段とを備えることを特徴とする。
【発明の効果】
【0007】
本発明によれば、印刷処理による多重化された付加情報の欠落を防ぐことができる。
【図面の簡単な説明】
【0008】
図1】情報処理装置を含むシステム構成を示す図である。
図2】情報処理装置のハードウェア構成を示す図である。
図3】画像処理装置のハードウェア構成の一例を示す図である。
図4】マスクを示す図である。
図5】マスクによって画像に与えられるパターンを視覚的に示す図である。
図6】グレースケール画像を示す図である。
図7】多重化を実行した結果を示す図である。
図8】多重化を実行した結果を示す図である。
図9】FFTを適応した結果を示す図である。
図10】FFTを適応した結果を示す図である。
図11】FFTを適応した結果を示す図である。
図12】FFTを適応した結果を示す図である。
図13】開始位置判定用のパターンを示す図である。
図14】情報処理装置において実行される処理を示すフローチャートである。
図15】ユーザインタフェース画面を示す図である。
図16】印刷処理が開始されるまでの処理を示すフローチャートである。
図17】網点画像を示す図である。
図18】色変換処理を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0010】
図1は、本実施形態における情報処理装置101及び103を含むシステム構成の一例を示す図である。情報処理装置101及び103はスマートフォンやPC等の携帯端末であり、情報処理装置101及び103は共通の構成を有するものとして説明する。しかしながら、情報処理装置101と情報処理装置103の各構成は異なっていても良い。
【0011】
システムにおいて、ユーザは撮像デバイスにより撮影した画像データを内部に保存しておくことができる。システムにおいて、ルータ104と画像処理装置102の間と、ルータ104と情報処理装置103の間は、LANケーブル等の有線通信により相互に通信可能に接続される。また、情報処理装置101とルータ104の間は、Wifi等の無線通信により相互に通信可能に接続される。なお、ルータ104と画像処理装置102もしくは情報処理装置103の間は、無線通信により接続されるようにしても良い。また、無線通信は、Wifiの他、Bluetooth、NFC等であっても良い。
【0012】
本実施形態では、図1に示すようなシステムにおいて、ユーザは、情報処理装置101上のアプリケーションにより、印刷対象の画像データを選択し、ウォーターマーク等の任意の付加情報を画像データに多重化することが可能である。即ち、情報処理装置101は、画像データに付加情報を多重化する付加情報多重化装置として動作することが可能である。また、ユーザは、そのような付加情報が多重化された画像データを画像処理装置102で印刷することが可能である。本実施形態では、付加情報の一例としてテキスト情報を説明するが、他の種類の情報であっても良く、例えば、音声情報でも良い。そして、他のユーザが情報処理装置101でその印刷物を撮像することで、多重化された付加情報が抽出される。即ち、情報処理装置101は、付加情報抽出装置として動作することが可能である。例えば印刷物を撮像することで音声が再生されるといった動作が実現される。
【0013】
図2は、情報処理装置101のハードウェア構成の一例を示す図である。CPU201は、中央演算装置であり、例えば、付加情報を多重化する処理をプログラムに従って実行する。ROM202は、CPU201により実行されるプログラムを記憶する。RAM203は、CPU201によるプログラムの実行時に、各種情報を一時的に記憶するためのメモリを提供する。2次記憶装置204は、画像ファイルや、多重化する付加情報などを保存するための記憶媒体である。表示部205は、ユーザインタフェース画面や処理内容等を表示する。表示部205は、タッチパネル機能を有しても良く、タッチパネルのユーザ操作で処理の指示や設定、文字入力等を受け付ける。スピーカ206は、音声を出力する。例えば、スピーカ206は、復号化して抽出した付加情報が音声データの場合に音声を出力する。
【0014】
ネットワークインタフェース(IF)207は、例えばLAN(Local Area Network)等のネットワーク220に接続されている。ネットワーク220は、インターネットを含んでも良い。例えば、CPU201は、ネットワークインタフェース207により、インターネットに接続されたサーバ212が提供するサイトにアクセスして表示部205にサイトの画面を表示させる。内部撮像デバイス209は、撮影機能を有するデバイスであり、例えば内蔵カメラである。また、外部撮像デバイス210は、デバイスインタフェース(IF)208を介して情報処理装置101に接続された撮影機能を有する外部のデバイスであり、例えば、デジタルカメラやビデオカメラである。
【0015】
本実施形態では、付加情報多重化装置としての情報処理装置101を説明する。しかしながら、情報処理装置101が付加情報多重化装置として動作しても良い。
【0016】
図3は、画像処理装置102のハードウェア構成の一例を示す図である。本実施形態では、画像処理装置102はMFP(MultiFunctionalPeripheral)として説明するが、印刷機能を有する印刷装置(プリンタ)であれば、MFPの構成でなくても良い。制御部301は、画像入力デバイスであるスキャナ部311や画像出力デバイスであるプリンタ部312と接続されており、各デバイスとの間での画像情報の入出力を制御する。また、制御部301は、ネットワークI/F306を介して情報処理装置101、ルータ104、情報処理装置103との通信が可能である。例えば、制御部301は、情報処理装置101や情報処理装置103から印刷ジョブや画像データを受信することが可能である。
【0017】
CPU302は、画像処理装置102の動作を統括的に制御し、例えば、RAM303に記憶されたプログラムに基づいて動作する。ROM304は、例えば、ブートROMであり、システムのブートプログラムが格納されている。記憶部305には、システムソフトウェア、画像データ、画像処理装置102の動作を制御するためのプログラム等が記憶されている。CPU302は、記憶部305に記憶されたプログラムをRAM303にロードし、そのプログラムに基づいて画像処理装置102の各部を制御する。
【0018】
ネットワークI/F306は、制御部301をネットワーク220に接続し、ネットワーク220上の装置と通信を行い、各種情報の入出力を行う。デバイスI/F307は、画像入出力デバイスであるスキャナ部311及びプリンタ部312と制御部301とを接続し、画像データの同期系/非同期系の変換を行う。操作部I/F308は、操作部313と制御部301とを接続するインタフェースであり、操作部313に表示するためのデータを操作部313に出力する。操作部313は、パネルとハードウェアキーを含み、ユーザからの指示や設定の操作を受付可能である。また、操作部I/F308は、操作部313からユーザが入力した情報をCPU302に伝達する。
【0019】
画像処理部309は、ネットワーク経由で受信した印刷対象の画像データに対して、例えば、設定や入出力デバイスの特性に応じた補正、補間、変換等の画像処理を行う。また、画像処理部309は、デバイスI/F307へ入力もしくはデバイスI/F307から出力される画像データに対して画像処理を行う。画像メモリ310は、画像処理部309によって処理される画像データを一時的に展開するためのメモリである。
【0020】
以下、情報処理装置101において行われる多重化埋め込み処理(多重化エンコード処理)について説明する。ここでは、一例として、入力された画像に対して「hello」という情報を多重化する方法について説明する。
【0021】
PCのような情報処理装置で情報を扱うというのはバイナリデータを扱うことである。バイナリデータとは「0」もしくは「1」の情報であり、この「0」もしくは「1」の情報が連続でつながることにより、特定の意味を持つようになる。それぞれの文字には、対応するバイナリデータが決められている。どのバイナリデータに対してどの文字が対応しているかは、「文字コード」と呼ばれるもので定義されている。例えば、文字コードの中の一つである「シフトJIS」では、「h」は、バイナリデータの「01101000」に対応している。同様に「e」は「01100101」、「l」は「01101100」、「o」は「01101111」というバイナリデータに対応している。
【0022】
つまり、「hello」という文字は、バイナリデータで「0110100001100101011011000110110001101111」と表現することができる。逆に、「0110100001100101011011000110110001101111」というバイナリデータを取得できれば、「hello」という文字を取得することができる。つまり、多重化は、「0」もしくは「1」を判定可能なようにデータを埋め込むことで実現可能である。多重化する際、入力されるデータは「hello」であるが、実際に埋め込むデータは「0110100001100101011011000110110001101111」である。本実施形態では、これら二つを区別するため、「hello」を付加情報(多重化情報)と呼び、埋め込み用に変換された「0110100001100101011011000110110001101111」を埋め込みデータと呼ぶ。
【0023】
次に、画像に対して「0」、「1」の情報を多重化する方法を説明する。本実施形態では、「0」「1」を示すデータの埋め込みを説明するが、多重化方法を「0」「1」の埋め込みに限定しているわけではなく、エンコード側とデコード側でデータを一意に対応づけることが可能であれば、「0」「1」の埋め込みに限られない。
【0024】
多重化される画像のサイズは、縦幅640ピクセル(px)、横幅480ピクセル(px)として説明する。ここで、「0」、「1」を生成するために、図4(a)、図4(b)の二つのマスクを用意する。
【0025】
図4(a)、図4(b)は、8px×8pxで構成されたマスクであり、画像に対してマスクの値を加算することで、画像内の8px×8pxの領域に対して周期性を持ったパターンを与えることができる。図5(a)及び図5(b)は、マスクによって画像にどのようなパターンが与えられのかを視覚的に示している。図5は、図4(a)及び図4(b)のマスクにおける「10」の位置を黒、「0」の位置を灰色、「-10」の位置を白で表現しており、画像には、図5(a)及び図5(b)に示すような斜め線が現れることとなる。
【0026】
図4(a)及び図4(b)のマスクを画像全体に対して交互に適応する疑似コードを以下に示す。

01: int i, j, k, l;
02: int width = 640, height=480;
03: unsigned char *data = 画像データ;
04: int **maskA = マスクデータ;
05: bool isMaskA = true;
06: for(j = 0; j < height; j+=8){
07: for(i = 0; i < width; i+=8){
08: for(k = 0; k < 8; k++){
09: for(l = 0; l < 8; l++){
10: if(isMaskA == true){
11: data[(i+k)+(j+l)*width] += maskA[k][l];
12: }
13: }
14: }
15: }
16: }

3行目の画像データは、グレースケール画像を想定している。ここでは、図6に示すようなグレースケール画像を想定している。図6のグレースケール画像に対して、8px×8pxの図4(a)及び図4(b)のマスクによる多重化を実行した例を図7に示す。図7に示すように、画像には、斜め線(「0」と「1」に対応)が交互に入る。
【0027】
単純な「0」「1」の繰り返しではなく、「hello」のデータである「0110100001100101011011000110110001101111」を適応した例が図8である。「hello」自体は、8px×8pxのブロックが40個あれば良いため、320px×8pxの領域があれば良いが、図8では「hello」を繰り返し多重化している。このように、繰り返して同じデータを多重化することで、写真の傷や汚れなどによってパターンが消えてしまうことへの耐性を増すことができる。また、同じデータが複数あることで、復号時に探索しやすくなる。
【0028】
本例では、画像サイズが640px×480pxであるので、総画素数は307,200画素である。また、「hello」を多重化するのに必要な画素数は、上記のように320px×8px=2,560画素である。つまり、「hello」は、307,200÷2560=120回繰り返されることになる。
【0029】
付加情報の多重化においては、上記のようにデータの埋め込みが行われる。一般的には、人間の目が反応しづらい領域に付加情報が多重化される。例えば、画像をLab成分に分解した後のab成分やYUV成分に分解した後のUV成分、YCbCrのCbCr成分を変動させることによって付加情報が多重化される。また、例えばYUV成分では、U成分単独で変動させても良いし、UV成分両方を変動させても良い。
【0030】
単独で変動させる場合には、複数の成分を変動させる場合よりアルゴリズムが簡単になる。結果として、プログラムサイズが小さくなるのでアプリケーションのダウンロードの高速化や、回路面積が小さくなることからの製造コストの低減などが実現される。
【0031】
また、複数の成分を変動させる場合、データが埋め込めないことによる影響を低減することができる。例えばデジタル画像が1色8bitで表現される場合、0から255までのいずれかの値が割り当てられる。この範囲外の値は画像データとしては用いることができないため、画素値の計算結果が0未満の場合や、256以上の値になった場合、一般的には0もしくは255を割り振ることで有効範囲内に収めている。図4(a)、図4(b)のマスクでは画素値に±10の変化を与えているが、例えばマスク領域におけるYUV成分のU成分が全て255の値である場合には、その領域の値は245~265の範囲ではなく245~255の範囲となる。その場合、結果として、所定よりも小さな変動しか与えられず、ノイズに弱く復号しづらい多重化となってしまう。しかしながら、YUV成分のU成分が255であっても、V成分が128である場合など、±10の値の変化でも有効範囲に収まる場合には、V成分を用いることでノイズ耐性を維持することができる。このように、UV成分両方を用いることで多重化のロバスト性(デコードの堅牢性)を高めることが可能となる。画像をRGBフォーマットに変換して利用する場合、YUV成分をRGB成分に変換した後のRGB成分も0~255の範囲に収まるかを確認しながら、UV成分を変化させる場合がある。
【0032】
上記のように、周期的な変動を与えることでバイナリ情報を重畳させることで、データの埋め込み(多重化エンコード)を実現する。
【0033】
本実施形態では、情報処理装置101が付加情報抽出装置として動作する場合もある。その場合における埋め込んだデータを復号化する処理(デコード)について説明する。
【0034】
図4(a)に示すマスクは周期的なパターンをもっており、この特徴を抽出するために、図8のグレースケール画像に対してFFT(Fast Fourier Transform)を適応する。図9は、周期的なパターンを持つデータが埋め込まれた画像に対してFFTを適応した結果の一例を示している。一方、図10は、データの埋込みが行われていない図6のグレースケール画像に対してFFTを適応した結果の一例を示している。図10に比べると、図9では、特定の位置にスペクトル(白い点)が出現していることが分かる。図11は、図6のグレースケール画像に対して「0」のみを多重化してFFTを適応した結果の一例を示す図である。また、図12は、図6のグレースケール画像に対して「1」のみを多重化してFFTを適応した結果の一例を示す図である。FFTは画像の周波数解析するために用いられる手法であり、マスクの周期的なパターンの変動は、画像の周波数を変化させるものである。そのため、FFTを適応することで特定の位置にスペクトルが出現するようになる。従って、その状態を読み取ることで埋め込まれたデータを認識して復号化することが可能となる。
【0035】
図9に示すように「0」と「1」の両方の性質が入っていても、認識を可能とする必要がある。そのため、「0」もしくは「1」のいずれかを判定するために、FFT解析のサイズを多重化のブロックと同じ8px×8pxのサイズで行い、埋め込み時と解析時のサイズを一致させる。この範囲に限定してFFTを実行することで、スペクトルは片方しか出現しないことになり、「0」もしくは「1」のいずれかを判定可能となる。
【0036】
デコード側では、データを復号する際に、どの位置からデータが始まるのかを特定するようにしても良い。その場合、例えば、「0」「1」のパターンとは異なる「開始位置判定用のパターン」を用意することで、データの開始判定を可能にする。図13は、開始位置判定用のパターンの一例を示す図である。図13に示すように、開始位置判定用のパターンは、図5(a)及び図5(b)と異なるマスクパターンである。図13のマスクパターンでは、画像の上下をy軸、左右をx軸とした場合、画像の中心からx軸の方向にスペクトルのピークが出現する。開始位置判定用のパターンが2ヶ所検出されれば、その間の「0」「1」のデコードにより、付加情報を抽出することができる。
【0037】
さらに、デコード側では、FFT解析を可能とするための処理が行われる場合がある。付加情報が多重化された印刷物に対して、撮像センサ(例えばカメラ)を通して画像を取得した場合、常に正しい向きで取得されるとは限らない。例えば、撮像センサと印刷物の距離が近い場合や遠い場合などが考えられ、必ずしも取得した画像を8px×8pxのブロック単位でFFT解析してもデータが複号化できるとは限らない。上述の、多重化では特定の周波数に対して強くスペクトルが出るように画像を変化させており、どこにスペクトルが発現すべきかが既知である。そのことに基づいてデコード側では、FFT解析の前に、撮像センサから取得した画像から得られるスペクトルと既知のスペクトルが近づくように画像変換が行われる場合がある。
【0038】
以下、本実施形態における情報処理装置101の動作について説明する。
【0039】
ユーザは、情報処理装置101において、画像処理装置102での印刷について各種印刷設定を行うことが可能であり、例えば、「モノクロ印刷」や「カラー印刷」を設定することが可能である。
【0040】
付加情報の多重化を行う場合には、上述のように、画像の色成分に対して変動を与えることが行われる。一方、ユーザにより印刷設定として「モノクロ印刷」が設定されている場合には、画像処理装置102内でモノクロ2階調での処理(モノクロ変換)が行われる。つまり、付加情報の多重化が行われても、画像処理装置102内のモノクロ2階調での処理により、多重化が行われている色成分が欠落してしまう。その結果、多重化画像に多重化されている付加情報の復号化ができなくなってしまう。そこで、本実施形態では、付加情報の多重化を行う際、ユーザにより「モノクロ印刷」が設定されている場合には、印刷対象の画像データがカラー画像データであればグレースケール変換し、さらに、「モノクロ印刷」から「カラー印刷」への設定変更を行う。そのような構成により、ユーザが所望するモノクロ印刷の色味に近い画質を維持するとともに、画像処理装置102内でモノクロ2階調の処理が行われることによる色成分の欠落を防ぐことができる。
【0041】
図14は、情報処理装置101において実行される、印刷対象の画像データの印刷を実行するまでの処理を示すフローチャートである。図14の処理は、例えば、CPU201がROM202に記憶されたプログラムをRAM203に読み出して実行することにより実現される。図14の処理を実行するプログラムは、例えば、印刷アプリケーションとして情報処理装置101にインストールされている。図14の処理は、例えば、ユーザが情報処理装置101上で印刷アプリケーションを起動したときに開始される。
【0042】
S1401において、CPU201は、ユーザから選択された画像データ(入力画像データ)を取得する。図15(a)は、印刷アプリケーション上で表示されるメイン画面1501の一例を示す図である。図15(a)に示すように、メイン画面1501上にはボタン1502が表示されている。ユーザによりボタン1502が押下されると、不図示の画像選択画面が表示され、ユーザは、任意の画像データを選択することが可能である。画像の取得方法としては、情報処理装置101内の画像データを取得しても良いし、ネットワークを介してサーバ(不図示)から画像データを取得しても良い。また、印刷アプリケーション内に予め用意された画像データから取得しても良い。本実施形態では、画像データを説明するが、画像データに限られず、PDFなどのドキュメント系データでも良く、二次元のRGBデータに変換可能なデータであれば良い。ユーザが印刷対象として選択した画像データが付加情報の多重化対象の画像データとなる。CPU201は、選択された画像データを多重化対象データとして取得し、印刷アプリケーション内で再利用可能なようにRAM203に一時的に保存する。
【0043】
また、メイン画面1501内の表示領域1504には、ユーザにより選択された画像データの画像が表示される。なお、情報処理装置101内のRAM203の記憶領域が不足している場合には、2次記録装置204にファイルとして保存し、印刷アプリケーションの画面上に、指定した画像を縮小した縮小画像(サムネイル画像)を表示するようにしても良い。
【0044】
S1402において、CPU201は、S1401でユーザにより選択された画像データに多重化する付加情報を取得する。図15(a)に示すように、メイン画面1501内には、チェックボックス1503及び入力領域1505が設けられている。ユーザは、チェックボックス1503をチェックすることにより、選択した画像データへの多重化を行うことを指示することができる。また、ユーザは、入力領域1505において任意のテキスト情報を入力することができる。CPU201は、入力領域1505で入力されたテキスト情報を、画像データに多重化する付加情報として取得する。
【0045】
本実施形態では、多重化情報としてテキスト情報を説明するが、音声、写真、動画など、バイナリデータとして扱える情報であれば、他の種類の情報であっても良い。CPU201は、ユーザによって入力されたテキスト情報を、印刷アプリケーション内で再利用可能なようにRAM203に、もしくはファイルとして2次記録装置204に保存する。
【0046】
S1403において、CPU201は、画像処理装置102の検索を実行する。図15(a)に示すように、メイン画面1501内には、ボタン1506が表示されている。ユーザによりボタン1506が押下されると、CPU201は、ネットワーク220に対して、プリンタ検索のブロードキャストを送信する。ブロードキャストにより、同じネットワークを共有する全ホストに対して情報が発信される。画像処理装置102がブロードキャストの発信元である情報処理装置101に対して返信を行うことで、情報処理装置101は、画像処理装置102のIPアドレスを把握することができ、以降1対1の通信が可能となる。本実施形態では、応答があったプリンタの識別情報は自動的に印刷アプリケーションに登録され、本例では、ネットワーク220内のプリンタは説明上、画像処理装置102の一台とする。印刷アプリケーションに登録される情報は、例えば、プリンタ名、プリンタのIPアドレスであり、プリンタ名は、メイン画面1501上にプリンタ名1507として表示される。
【0047】
S1404において、CPU201は、S1403で検索された画像処理装置102から印刷設定に関する情報を取得し、ユーザからの印刷設定を受け付ける。通常、プリンタは、プリンタ自身が対応しているメディア(記録媒体)やサイズ、印刷設定などを取得可能である。
【0048】
本実施形態では、情報処理装置101の印刷アプリケーションと画像処理装置102との間の通信をXML(Extensible Markup Language)で行う。XMLは、情報を表現する方法の一つであるが、データの送受信はこれに限定されず、他のプロトコルや通信方法が用いられても良い。以下、画像処理装置102に対して印刷設定に関する情報の取得を依頼するXMLの一例を示す。

001:<?xml version=”1.0” encoding=”UTF-8”?>
002:<cmd>
003:<operation>getInformation</operation>
004:</cmd>

1行目は、XMLがバージョン1.0であり、文字符号化方式はUTF-8ということを表している。2行目の<cmd>は、プリンタが受け取るコマンドの開始を意味しており、4行目の</cmd>でコマンドの終了を示している。cmdタグの中にタグを追加して、印刷アプリケーションにより画像処理装置102に送信されることで、画像処理装置102がタグの内容に応じた動作を実行する。例えば、3行目のoperationにはプリンタの動作タイプが記述されており、getInformationは、取得した情報を依頼元のアプリへ返却するという動作を示している。以下、画像処理装置102が印刷アプリケーションに返却するXMLの一例を示す。

001:<?xml version=”1.0” encoding=”UTF-8”?>
002:<res>
003:<name>printer001</name>
004:<medialist>
005: <media>
006: <name>A4</name>
007: <width>2000</width>
008: <height>3000</height>
009: </media>
010: <media>
011: <name>L</name>
012: <width>1000</width>
013: <height>1500</height>
014: </media>
015: <media>
016: <name>Hagaki</name>
017: <width>1500</width>
018: <height>2250</height>
019: </media>
020: </medialist>
021: <colormode>
022: <mode>color</mode>
023: <mode>mono</mode>
024: </colormode>
025: </res>

2行目のresは、プリンタからの応答ということを意味する。本実施形態では、印刷アプリケーションからプリンタへの情報は<cmd>から始まり、プリンタから印刷アプリケーションへの情報は<res>から始まるコマンドを用いているが、それに限定されない。3行目のnameは、プリンタ名を示す。4行目から20行目は、対応する用紙サイズのリストであり、<medialist>タグ中にプリンタが対応可能なメディアが列挙されている。ここで、<media>タグにはname、width、heightのタグが存在しており、それぞれが用紙の名前、画像の縦幅(ピクセル)、画像の横幅(ピクセル)となっている。それらの情報から、例えばA4サイズ(縦210mm、横297mm)であれば横幅2,000px、縦幅3,000pxの画像サイズが必要であることが分かる。一般的に、そのような画像サイズは、プリンタのdpi(dots per inch)に依存する。dpiとは、どれだけ細かくインクを配置できるかの単位であり、高dpiであるほど精細な表現、いわゆる高解像度の印刷が可能である。即ち、同じA4サイズであっても高dpiであるほど印刷に必要となる画像データの画素数も増える。一方、印刷アプリケーションが指定する画像データが必ずしもプリンタに必要な画素数であるとは限らない。その場合には、プリンタ内部もしくはプリンタドライバで拡大や縮小、またはトリミングなどを行うことで、入力された画像をプリンタに必要なサイズへ修正し、その後、印刷が行われる。例えば、画像処理装置102で縦幅4,000px、横幅6,000pxの画像をA4サイズで印刷しようとすると、A4サイズに必要な画素数以上のデータであるので、そのままでは印刷処理が実行できない。そこで、プリンタ内部もしくはプリンタドライバにより画像データが例えば縦幅2,000px、横幅3,000pxに変換され、その後、印刷が行われる。
【0049】
21行目から24行目には、選択可能な印刷色設定モードが列挙されている。本実施形態では、カラーモードである「color」とモノクロモードである「mono」の2種類が選択可能である。カラーモードとは、プリンタのインクを複数色用いて印刷する印刷モードである。プリンタは、通常、減法混色によって色を表現している。通常、減法混色ではC(シアン)、M(マゼンタ)、Y(イエロー)の3色があれば全ての色を表現でき、画像処理装置102は、C、M、Yの3色のインクを備えている。なお、インクの種類はこれに限られず、特色インクであるグレーインクやRGBインクなどCMY以外のインク色を備えていても良い。
【0050】
一方、モノクロモードとは、入力画像のカラー情報をグレー情報に置き換えて印刷する印刷モードである。モノクロモードは、例えば使用インク量の削減や印刷速度の向上を目的として行われる場合がある。モノクロモードでは、ブラックインク(K)1色や複数の無彩色インクが用いられる。また、CMYKでプロセスブラックを形成する場合もある。なお、本実施形態では、セピアモードやグレースケールモード等、モノトーンの色調を実現するモードであれば、モノクロモードに含まれるとする。
【0051】
本実施形態では、ブラックインクをのみを使用するモノクロモードがユーザにより設定された場合において付加情報を多重化する場合には、「モノクロモード」から「カラーモード」に印刷設定が変更される。その結果、画像処理装置102内ではカラーインクが用いられてカラー印刷が行われる。「カラーモード」に印刷設定が変更されても、モノクロモードに期待される画質の観点で、出力物の色味はグレイに近い色味で出力される。即ち、黒で印刷されるドットの粗密で階調が表現される画像として出力される。
【0052】
図15(b)は、印刷アプリケーション上で表示される印刷設定画面1510の一例を示す図である。印刷設定画面1510は、メイン画面1501の印刷設定ボタン1508が押下されると表示される。印刷設定画面1510は、画像処理装置102から取得した印刷設定に関する情報に基づいて表示される。図15(b)に示すように、印刷設定画面1510上には、用紙サイズ1511と印刷色モード1513の項目の選択を受付可能なように表示されている。
【0053】
ここでは、ユーザは、多重化処理を実行するためのチェックボックス1503をオン、選択ボタン1512で示される用紙サイズ「A4」、選択ボタン1513で示される印刷色モード「モノクロ」を設定したとする。ユーザからの決定ボタン1514の押下を受け付けると、CPU201は、ユーザが印刷設定画面1510で設定した項目をRAM203等の記憶領域に一時的に保存し、後から参照可能な状態にしておく。決定ボタン1514が押下されると、メイン画面1501の表示に戻る。ユーザから、メイン画面1501上の印刷ボタン1509の押下を受け付けた後、画像処理装置102での印刷処理が開始される。
【0054】
図16は、画像処理装置102での印刷処理が開始されるまでの処理を示すフローチャートである。図16の処理は、例えば、CPU201がROM202に記憶されたプログラムをRAM203に読み出して実行することにより実現される。また、図16の処理は、上記のようなチェックボックス1503および選択ボタン1513の設定を条件とし、メイン画面1501上の印刷ボタン1509が押下されると開始される。
【0055】
S1601において、CPU201は、メイン画面1501上でユーザが選択した印刷対象の画像データをRAM203から取得する。S1602において、CPU201は、メイン画面1501上でユーザが入力した付加情報、例えばテキストデータを取得する。S1603において、CPU201は、ユーザが設定した印刷設定を取得する。
【0056】
S1604において、CPU201は、S1603で取得した印刷設定に基づいて、モノクロモードが設定されているか否かを判定する。モノクロモードが設定されていると判定された場合、S1605において、CPU201は、印刷設定を「モノクロモード」から「カラーモード」に変更する。上述したように、印刷設定としてモノクロモードが設定される場合には、プリンタ内部もしくはプリンタドライバにおいてモノクロ変換が実行される。例えば、プリンタ内部でモノクロ変換が実行される場合、多重化を実行した画像データを画像処理装置102へ送信した後に、プリンタ内部でモノクロ変換が実行されることになる。ここで、モノクロ変換とは画像内で基準となる1色を設定し、その色の濃淡変化だけで画像を表現するための変換であり、画像データとしてはある領域におけるデータの粗密として表現される。つまり、Labのa,bや、YUVのU,Vといった、いわゆる輝度成分以外の変化がなくなり、輝度以外の成分に変動を与えて多重化を実行する手法の場合、付加情報が欠落して復号化ができなくなってしまう。そのため、本実施形態では、ユーザによりモノクロモードが設定されている場合は、プリンタ内部もしくはプリンタドライバでモノクロ変換が実行されないように、印刷設定をカラーモードに変更する。その際、カラーモードでも、ユーザ所望のモノクロモードに相当する色味を出力可能なように、所定の色変換処理を実行する。そのような構成により、ユーザからは、設定した印刷モードの通りに動作しているように見え、かつ、付加情報の多重化処理も可能となる。本実施形態では、ブラックインクを用いたモノクロ変換に代替えする色変換処理として、グレースケール変換を上記の所定の色変換処理として実行する。
【0057】
S1604以降の処理の分岐においては、例えば、以下のような構成を用いても良い。例えば、ブラックリストを二次記録装置204、もしくはプログラム内に予め保有しておき、そのブラックリストと画像処理装置102から取得した印刷設定に関する情報とを比較するようにしても良い。ブラックリストとは、利用してはいけないサービスやソフトウェアの名前を記述したリストのことであり、例えばブラックリストには「mono」という文字列がテキストファイルとして記述されている。印刷設定がブラックリストの記述に該当すれば、S1606に進む。なお、ブラックリストに複数の情報を保持したい場合や、ブラックリストに該当した場合に実行する色変換処理を記述する場合には、CSV(comma-separated values)や、一般的なデータベースなどが用いられても良い。
【0058】
また、印刷アプリケーションがネットワーク上のサーバから情報を取得するようにしても良い。印刷アプリケーションは、画像処理装置102と通信することで、プリンタ名を取得することが可能である。このプリンタ名を用いてサーバに問い合わせを行い、S1604以降の処理の分岐が行われても良い。この場合、サーバにはプリンタ名と印刷設定、および、それらの組み合わせについてモノクロ変換が行われるか否かの情報を保持されている。即ち、ネットワーク側にブラックリストを持つ構成である。
【0059】
また、画像処理装置102から取得した情報を用いても良い。先述のプリンタ情報を含むXMLのcolormodeに、多重化が可能か否かの情報を付与しておくようにしても良い。例えば、以下のようなXMLとなる。

001:<?xml version=”1.0” encoding=”UTF-8”?>
002:<res>
003:~ 一部省略 ~
004:<colormode>
005: <mode>
006: <modename>color</modename>
007: <steganography>true</ steganography >
008: </mode>
009: <mode>
010: <modename>mono</modename>
011: <steganography>false</ steganography >
012: <alternate>grayscaletransform</alternate>
013: <colormode>color</colormode>
014: </mode>
015:</colormode>
016:</res>

上記のXMLでは、先述のXMLと比べて、<colormode>の<mode>に新たな情報が加わっている。まず、11行目の<steganography>は、カラーモード設定により、多重化する付加情報が欠落するかしないかの情報が含まれている。このタグがfalseの場合は多重化する付加情報が欠落するということを意味する。12行目の<alternate>タグには、付加情報の欠落を防ぐための代理の方法が記述されており、13行目の<colormode>には代理の方法を用いた後の印刷設定が記述されている。上記の表記は、「モノクロモードでは直接多重化はできないが、代わりにグレースケール変換を画像に対して適応し、印刷色モードをカラーにすれば良い」という情報を表している。例えば、画像処理装置102から取得した情報が上記の情報を表していれば、S1605以降の処理が行われる。<alternate>タグの中身のgrayscaletransformでは印刷アプリケーション側で対応する処理を把握しておく。一方、その処理内容そのものを記述しておいても良い。例えば、以下のように画像変換のためのプログラムを直接XMLに書き込んでおき、印刷アプリケーション側でそれを解釈して実行するようにしても良い。

~省略~
001: <alternate>
002: function transform(r, g, b){
003: var gray = 0.299*r + 0.587*g + 0.114*b;
004: return {r: gray, g:gray, b:gray};
005: }
006: </alternate>
~省略~

2行目から5行目はJavaScript表記に倣った関数である。R(Red)、G(Green)、B(Blue)の画素データを引数として与えることで、変更後のR,G,Bが返却される関数であり、3行目がR,G,Bをグレースケール変換する処理に対応する。この関数をアプリケーションで取得し、CPU201上で動作するインタプリタで解釈した結果をアプリケーションから実行させることで動的なプログラム実行が可能となる。例えば、JavaScirptで提供されるeval関数を用いることで上記の関数はプログラムとして解釈され、アプリケーションから実行可能な状態にすることが可能である。また、他のスクリプト言語を用いても良いし、処理内容を解釈して実行するインタプリタを独自で用意しても良い。上記のような表記にしておくことで、多重化した付加情報が欠落してしまうモノクロ変換以外の印刷設定が画像処理装置102に追加されても、随時対応することが可能となる。
【0060】
本実施形態では、一例として、印刷アプリケーション内部にブラックリストを保持し、かつ、モノクロ印刷設定のみに対応する場合を説明する。ブラックリストは、印刷アプリケーション内に組み込んでおく(2次記憶装置204に保存しておく)でも良いし、プログラムとして直接記述されても良い。
【0061】
S1605で印刷設定が「モノクロモード」から「カラーモード」に変更されると、S1606において、CPU201は、多重化対象の画像データに対して、グレースケール変換を実行する。モノクロ変換では、通常1色のインクを用いた印刷で、その階調を濃淡で表現するが、本実施形態では、ブラックインクのモノクロ変換をグレースケール変換で代替する。即ち、後段のS1609で実行される多重化処理は、グレースケール変換された画像データに基づいて行われる。例えば、後段のS1609で実行される多重化処理は、グレースケール変換された0~255のグレー階調を持つ画像データに対して行われても良いし、画像の画素値が255(白)、0(黒)の2値の粗密だけで表現されたハーフトーン画像に対して行われても良い。但し、本実施形態では、グレースケール変換された画像データ、2値の粗密だけで表現された画像データは、RGB等の複数チャネルの画像データに変換されており、その結果、色成分の変動による多重化が可能となっている。
【0062】
図17は、2値の粗密で画像を表現した画像1701の一例を示す図である。画像1703は、画像1701の一部1702を拡大したものであり、領域によって黒と白の粗密が違うことが分かる。ここでは、例えば、4px×4pxのマスク1704が用いられる。マスク1704を図6の画像領域に重複がないように配置してゆき、マスク1704の値と図6の画像の画素値とを比較し、画素値がマスク1704の値よりも小さい場合には画素値0(黒)、大きい場合には画素値255(白)の値に変換する。なお、画像データ上では画素値255は白色として表現されるが、画像処理装置102では、記録媒体が白色であれば、画素値255の領域にはインクは吐出されない。
【0063】
図18は、S1606の処理の一例を示すフローチャートである。S1801において、CPU201は、S1606の処理に入力された画像データが複数チャネルの形式、例えばRGBやYCbCrなどの複数チャネルで構成される画像データであるか否かを判定する。ここで、複数チャネルで構成される画像データであると判定された場合は、S1802において、CPU201は、単一チャネルで構成される画像データに変換する(グレースケール変換)。S1802では、例えば、RGB画像データから、モノクロ化やYCbCrのYで表されるグレースケールの画像データへの変換が行われる。そして、S1803において、CPU201は、ディザ法や誤差拡散法等によりハーフトーン処理を実行する。一方、S1801で画像データが単一チャネルで構成される画像データであると判定された場合には、その後、S1803のハーフトーン処理が実行される。
【0064】
S1803の後、CPU201は、S1803で生成された画像データを色信号の値で示される複数チャネルのデータとする。例えば、S1803で生成された画像データを、黒(画素値「0」)と白(画素値「255」)に対応するRGB画像データとする。このように、複数チャネルの画像データとすることにより、後段で実行される、色成分を変動させることによる付加情報の多重化が可能となる。S1804の後、図18の処理を終了する。
【0065】
図18の処理を行うことで、入力された画像データを2値(黒と白)の粗密だけで表現された画像データとすることができる。画像処理装置102で印刷されるインクドットのサイズは人間の目の分解能に比べて十分に小さい。そのため、実際の印刷物は画像1703のような点の粗密ではなく、黒色と白色の濃淡として人間の目に認識される。
【0066】
S1606の後、S1607に進む。また、S1604で「カラーモード」と判定された場合にも、S1607の処理が実行される。S1607において、CPU201は、画像データの画像サイズが、印刷に必要なサイズ(例えばA4)と一致しているか否かを判定する。画像サイズが印刷に必要なサイズと一致していないと判定された場合、S1608において、CPU201は、リサイズ処理を実行し、印刷に必要なサイズへとリサイズを行う。これは、プリンタドライバやプリンタ内部で画像のリサイズが行われると、多重化埋め込みで意図しているスペクトルの周期が変化してしまい、復号化に影響を与えてしまうためである。特にリサイズで縮小が実行された場合、画素が間引かれるため多重化する付加情報の欠落が発生する可能性がある。本実施形態では、多重化処理の前に画像のリサイズを行うことにより、画像のリサイズによって多重化した付加情報が欠落してしまうことを防ぐことができる。リサイズとしては、ニアレストネイバー、バイリニア、バイキュービックなどの線形補間が用いられても良い。また、本実施形態では、グレースケール変換を実行してからリサイズを行っているが、それらの処理は、逆の順序で行われても良い。S1608の後、もしくはS1607で画像サイズが印刷に必要なサイズと一致していると判定された場合には、S1609に進む。
【0067】
S1609において、CPU201は、S1603で取得された付加情報、例えばテキストデータをS1607もしくはS1608まで処理された画像データに対して多重化する。多重化処理は、先述したように色成分、例えば、RGBからYCbCrに変換後のCbCr成分に対して実行される。図16の処理により多重化処理を実行することで、ユーザが意図した印刷設定を担保しつつ、画像処理装置102で復号化可能な状態で印刷することが可能となる。
【0068】
S1610において、CPU201は、画像処理装置102に対して印刷実行の指示を送信する。印刷実行を指示するXMLの一例を以下に示す。

001: <?xml version=”1.0” encoding=”UTF-8”?>
002: <cmd>
003: <operation>print</operation>
004: <data> jpegのbase64データ</data >
005: </cmd>

3行目の<operation>タグのprintは、印刷実行を示している。4行目の<data>タグには画像データが記述されている。ここでは、一例として、base64形式のjpeg画像を送ると記述されている。
【0069】
S1610の後、図16の処理を終了する。図16の処理の終了後、送信された情報を受信した画像処理装置102は印刷を開始する。
【0070】
以上のように、本実施形態では、多重化する付加情報が欠落する可能性のある印刷設定の場合、印刷設定で行われる処理の代替えとなる処理を行い、その後、付加情報の多重化を実行する。これにより、多重化する付加情報の欠落を防ぎ、ユーザが所望する画質を保ちつつ、復号化可能な状態での印刷が可能となる。
【0071】
また、本実施形態では、図14及び図16の処理を情報処理装置101において実行するものとして説明したが、画像処理装置102において実行するようにしても良い。その場合、例えば、スマートフォン等の情報処理装置101で撮像された画像データを、印刷対象及び多重化対象の画像データとして取得する。
【0072】
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0073】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0074】
101 情報処理装置: 102 画像処理装置: 201 CPU: 202 ROM: 203 RAM
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18