(57)【要約】【課題】制御装置から印刷装置に送信するデータのデータ量を減少させ、データ量の減少に伴う印刷装置の処理負荷の増大を抑制する。【解決手段】ホストコンピューター１は、処理対象の画像データである処理対象画像データを区分して形成されるブロックと、比較用の画像データである比較画像データを区分して形成されるブロックと、を比較し、データの内容が異なる処理対象画像データのブロックを差分ブロックとして特定し、１又は複数の差分ブロックを含む矩形の差分矩形を生成し、生成した差分矩形を送信する一方、差分矩形の生成に際し、差分矩形の数、及び、差分矩形の合計面積に基づいて、差分矩形の生成方法を決定するホスト制御部４５を有する。【選択図】図３
2016038707.tif 000002
【特許請求の範囲】
【請求項１】
印刷装置と通信可能な制御装置であって、
処理対象の画像データである処理対象画像データを区分して形成されるブロックと、比較用の画像データである比較画像データを区分して形成されるブロックと、を比較し、データの内容が異なる前記処理対象画像データのブロックを差分ブロックとして特定し、
１又は複数の前記差分ブロックを含む矩形の差分矩形を生成し、生成した前記差分矩形を前記印刷装置に送信する制御部を備え、
前記制御部は、
前記差分矩形の生成に際し、前記差分矩形の数、及び、前記差分矩形の合計面積に基づいて、前記差分矩形の生成方法を決定することを特徴とする制御装置。
【請求項２】
前記制御部は、
前記差分矩形の生成に際し、前記差分矩形の数、前記差分矩形の合計面積、及び、前記印刷装置の処理特性に基づいて、前記差分矩形の生成方法を決定することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記制御部は、
前記差分矩形を圧縮して、前記印刷装置に送信することを特徴とする請求項１又は２に記載の制御装置。
【請求項４】
処理対象の画像データである処理対象画像データを区分して形成されるブロックと、比較用の画像データである比較画像データを区分して形成されるブロックと、を比較し、データの内容が異なる前記処理対象画像データのブロックを差分ブロックとして特定し、１又は複数の前記差分ブロックを含む矩形の差分矩形を生成し、生成した前記差分矩形を送信する一方、前記差分矩形の生成に際し、前記差分矩形の数、及び、前記差分矩形の合計面積に基づいて、前記差分矩形の生成方法を決定する制御部を有する制御装置と、
印刷を行う印刷部、前記比較画像データを記憶する装置記憶部、及び、前記装置記憶部が記憶する前記比較画像データと前記制御装置から受信した前記差分矩形とに基づいて前記印刷部に印刷させる装置制御部を有する印刷装置と、
を備えることを特徴とする印刷システム。
【請求項５】
前記制御装置の前記制御部は、
前記差分矩形の数、前記差分矩形の合計面積、及び、前記印刷装置の処理特性に基づいて、前記差分矩形の生成方法を決定することを特徴とする請求項４に記載の印刷システム。
【請求項６】
前記制御装置の前記制御部は、
前記差分矩形を圧縮して、前記印刷装置に送信し、
前記印刷装置の前記装置制御部は、
前記差分矩形を解凍することを特徴とする請求項４又は５に記載の印刷システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置を制御する制御装置、及び、印刷装置と制御装置とを含む印刷システムに関する。
【背景技術】
【０００２】
従来、制御装置と、印刷装置とが通信するシステムが知られている。一般に、制御装置は、印刷装置を制御する場合、画像データを印刷装置に送信する。印刷装置は、制御装置から受信した画像データに基づいて処理を実行する。ここで、画像データについて、他の画像データとの差分を抽出して所定の処理を行う技術について、特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−０４４４７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述したシステムのように、制御装置から印刷装置にデータを送信するものでは、画像データのデータ量を減少させて、通信効率を向上しつつ、かつ、データ量の減少に起因した印刷装置の処理負荷の増大を抑制したいとするニーズがある。特許文献１に記載された技術を利用して画像データを圧縮する場合、印刷装置の処理負荷の抑制が実現できず、その点に課題があった。
本発明は、上述した事情に鑑みてなされたものであり、制御装置から印刷装置に送信するデータのデータ量を減少させ、データ量の減少に伴う印刷装置の処理負荷の増大を抑制することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明は、印刷装置と通信可能な制御装置であって、処理対象の画像データである処理対象画像データを区分して形成されるブロックと、比較用の画像データである比較画像データを区分して形成されるブロックと、を比較し、データの内容が異なる前記処理対象画像データのブロックを差分ブロックとして特定し、１又は複数の前記差分ブロックを含む矩形の差分矩形を生成し、生成した前記差分矩形を前記印刷装置に送信する制御部を備え、前記制御部は、前記差分矩形の生成に際し、前記差分矩形の数、及び、前記差分矩形の合計面積に基づいて、前記差分矩形の生成方法を決定することを特徴とする。
本発明の構成によれば、制御装置から印刷装置に送信するデータのデータ量を減少させ、データ量の減少に伴う印刷装置の処理負荷の増大を抑制できる。
【０００６】
また、本発明は、前記制御部は、前記差分矩形の生成に際し、前記差分矩形の数、前記差分矩形の合計面積、及び、前記印刷装置の処理特性に基づいて、前記差分矩形の生成方法を決定することを特徴とする。
本発明の構成によれば、より効果的にデータ量の減少に伴う印刷装置の処理負荷の増大を抑制できる。
【０００７】
また、本発明は、前記制御部は、前記差分矩形を圧縮して、前記印刷装置に送信することを特徴とする。
本発明の構成によれば、より効果的にデータ量の減少を実現できる。
【０００８】
また、上記目的を達成するために、本発明の印刷システムは、処理対象の画像データである処理対象画像データを区分して形成されるブロックと、比較用の画像データである比較画像データを区分して形成されるブロックと、を比較し、データの内容が異なる前記処理対象画像データのブロックを差分ブロックとして特定し、１又は複数の前記差分ブロックを含む矩形の差分矩形を生成し、生成した前記差分矩形を送信する一方、前記差分矩形の生成に際し、前記差分矩形の数、及び、前記差分矩形の合計面積に基づいて、前記差分矩形の生成方法を決定する制御部を有する制御装置と、印刷を行う印刷部、前記比較画像データを記憶する装置記憶部、及び、前記装置記憶部が記憶する前記比較画像データと前記制御装置から受信した前記差分矩形とに基づいて前記印刷部に印刷させる装置制御部を有する印刷装置と、を備えることを特徴とする。
本発明の構成によれば、制御装置から印刷装置に送信するデータのデータ量を減少させ、データ量の減少に伴う印刷装置の処理負荷の増大を抑制できる。
【０００９】
また、本発明は、前記制御装置の前記制御部は、前記差分矩形の数、前記差分矩形の合計面積、及び、前記印刷装置の処理特性に基づいて、前記差分矩形の生成方法を決定することを特徴とする。
本発明の構成によれば、より効果的にデータ量の減少に伴う印刷装置の処理負荷の増大を抑制できる。
【００１０】
また、本発明は、前記制御装置の前記制御部は、前記差分矩形を圧縮して、前記印刷装置に送信し、前記印刷装置の前記装置制御部は、前記差分矩形を解凍することを特徴とする。
本発明の構成によれば、より効果的にデータ量の減少を実現できる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に係るインクジェットプリンターの構成を示す図。
【図２】インクジェットプリンターにセット可能なラベル用紙を示す図。
【図３】印刷システムの機能的構成を示すブロック図。
【図４】ラベル部に印刷される画像を示す図。
【図５】ホストコンピューター、インクジェットプリンターの動作を示すフローチャート。
【図６】ブロックを示す図。
【図７】ハッシュ値比較処理の説明に利用する図。
【図８】ブロック圧縮処理の詳細を示すフローチャート。
【図９】ブロック圧縮処理の説明に利用する図。
【図１０】ブロック圧縮処理の説明に利用する図。
【図１１】結合処理候補の説明に利用する図。
【図１２】結合処理候補の説明に利用する図。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施形態について説明する。
図１は、本実施形態に係るインクジェットプリンター５（印刷装置）の構成を模式的に示す図である。
インクジェットプリンター５は、ライン型のインクジェット式プリンターである。インクジェットプリンター５は、搬送ローラー１０によってラベル用紙１４を搬送正方向ＹＪ１に搬送し、ラインインクジェットヘッド１２からラベル用紙１４に対してインクを吐出して、ラベル用紙１４に画像を印刷する。
インクジェットプリンター５には、以下で説明するラベル用紙１４以外の記録媒体もセット可能である。
【００１３】
図２は、インクジェットプリンター５にセット可能なラベル用紙１４を模式的に示す図である。
図２に示すように、ラベル用紙１４は、帯状のシートであり、印刷面１５において、剥離紙に、所定間隔をあけて複数のラベル部Ｓが貼付される。ラベル部Ｓの裏面はシールとなっており、剥離紙から取り剥がすことができる。ラベル部Ｓの長手方向の形状は一定であり、各ラベル部Ｓの間隔も一定である。後述するように、インクジェットプリンター５は、ラベル用紙１４に形成された複数のラベル部Ｓに、連続して画像を印刷できる。インクジェットプリンター５によってラベル用紙１４への印刷が行われる場合は、ラベル用紙１４の長手方向と、搬送正方向ＹＪ１とが対応するように、ラベル用紙１４がインクジェットプリンター５にセットされる。
図２に示すように、ラベル用紙１４の裏面には、ラベル部Ｓのそれぞれに対応して、ブラックマークＢＭが形成される。図１における図示は省略したが、インクジェットプリンター５において、ラベル用紙１４の搬送路上の所定の位置には、搬送されるラベル用紙１４に形成されたブラックマークＢＭを光学的に検出するブラックマークセンサー４２（図３）が設けられる。インクジェットプリンター５のプリンター制御部２７（後述）は、ブラックマークセンサー４２の検出値に基づいて、当該センサーに対応する位置にブラックマークＢＭが位置していることを検出する。プリンター制御部２７は、検出結果に基づいて、ラベル用紙１４の搬送量の調整や、ラベル用紙１４の位置の調整等を実行する。
【００１４】
図１に示すように、インクジェットプリンター５は、上流ヘッドユニット１７と、下流ヘッドユニット１８とを備える。
上流ヘッドユニット１７には、上流側トップ印刷ヘッド１７Ｔ、上流側左印刷ヘッド１７Ｌ、及び、上流側右印刷ヘッド１７Ｒの３つの印刷ヘッドが配置される。下流ヘッドユニット１８には、下流側トップ印刷ヘッド１８Ｔ、下流側左印刷ヘッド１８Ｌ、及び、下流側右印刷ヘッド１８Ｒの３つの印刷ヘッドが配置される。
【００１５】
上流側トップ印刷ヘッド１７Ｔには、ブラックノズル列２０と、このブラックノズル列２０の下流に配置されたシアンノズル列２１が設けられる。
ブラックノズル列２０は、インクを微細なインク粒として吐出するノズル孔（不図示）が、搬送正方向ＹＪ１と交わる方向であるノズル列方向ＹＪ２に延在して形成されたノズル列である。ブラックノズル列２０には、ブラック（Ｋ）のインクカートリッジ（不図示）から、インクが供給される。上流側トップ印刷ヘッド１７Ｔは、例えばピエゾ素子を用いて構成されるアクチュエーターによって、ブラック（Ｋ）のインクカートリッジから供給されるインクをラベル用紙１４へ向かって押し出して、所定のノズル孔から微細なインク粒を吐出する。
シアンノズル列２１は、ブラックノズル列２０と同様、ノズル孔がノズル列方向に延在して形成されたノズル列であり、シアン（Ｃ）のインクカートリッジ（不図示）からインクが供給される。
上流側右印刷ヘッド１７Ｒ、及び、上流側左印刷ヘッド１７Ｌは、上流側トップ印刷ヘッド１７Ｔと同様の構成であり、それぞれ、ブラックノズル列２０、及び、このブラックノズル列２０の下流に配置されたシアンノズル列２１を備える。
【００１６】
下流側トップ印刷ヘッド１８Ｔには、マゼンタノズル列２２と、このマゼンタノズル列２２の下流に配置されたイエローノズル列２３が設けられる。
マゼンタノズル列２２は、ブラックノズル列２０と同様、ノズル孔がノズル列方向に延在して形成されたノズル列であり、マゼンタ（Ｍ）のインクカートリッジ（不図示）からインクが供給される。
イエローノズル列２３は、ブラックノズル列２０と同様、ノズル孔がノズル列方向に延在して形成されたノズル列であり、イエロー（Ｙ）のインクカートリッジ（不図示）からインクが供給される。
下流側右印刷ヘッド１８Ｒ、及び、下流側左印刷ヘッド１８Ｌは、下流側トップ印刷ヘッド１８Ｔと同様の構成であり、それぞれ、マゼンタノズル列２２、及び、このマゼンタノズル列２２の下流に配置されたイエローノズル列２３を備える。
なお、図１では、説明の便宜のため、各印刷ヘッド、及び、印刷ヘッドが備えるノズル列を明示しているが、実際は、ノズル列を構成するノズル孔から鉛直下方へ向かってインクが吐出される構成となっており、当該構成を実現するように各部材が配置される。
【００１７】
インクジェットプリンター５は、ラベル用紙１４にインクを吐出してドットを形成し、ドットの組み合わせにより、画像を印刷する。以下、ラベル用紙１４に、ある１つのドットを形成する場合の基本的な動作について図１を用いて説明する。
ラベル用紙１４が図１に示す位置に存在しており、このラベル用紙１４上の位置Ｐ１に所定の色のドットを形成する場合を例にして説明する。所定の色は、ブラック（Ｋ）、シアン（Ｃ）、マゼンタ（Ｍ）、及び、イエロー（Ｙ）のインクがそれぞれ所定量ずつ吐出されることによって表現される色である。図１中、位置Ｐ２は、上流側トップ印刷ヘッド１７Ｔに形成されたブラックノズル列２０において、搬送される記録媒体の位置Ｐ１が通過する位置である。位置Ｐ３、位置Ｐ４、及び、位置Ｐ５についてもそれぞれ同様である。
インクジェットプリンター５は、ラベル用紙１４にドットを形成している間、ラベル用紙１４を、略一定の速さで搬送正方向ＹＪ１へ向かって搬送する。そして、図１に示す状態からラベル用紙１４の搬送正方向ＹＪ１への搬送が進行し、ラベル用紙１４上の位置Ｐ１が位置Ｐ２に対応する位置に至ったタイミングで、位置Ｐ２に対応するノズルから所定量のブラック（Ｋ）のインクを吐出する。同様にして、ラベル用紙１４上の位置Ｐ１が位置Ｐ３に至ったタイミングで、位置Ｐ３に対応するノズルから所定量のシアン（Ｃ）のインクを吐出し、ラベル用紙１４上の位置Ｐ１が位置Ｐ４に至ったタイミングで、位置Ｐ４に対応するノズルから所定量のマゼンタ（Ｍ）のインクを吐出し、ラベル用紙１４上の位置Ｐ１が位置Ｐ５に至ったタイミングで、位置Ｐ５に対応するノズルから所定量のイエロー（Ｙ）のインクを吐出する。
このようにして、ラベル用紙１４上の位置Ｐ１に、ブラック（Ｋ）、シアン（Ｃ）、マゼンタ（Ｍ）、及び、イエロー（Ｙ）のインクがそれぞれ所定量ずつ吐出され、位置Ｐ１に所定の色のドットが形成される。
つまり、本実施形態に係るインクジェットプリンター５では、画像の印刷に係る処理中は、ラインインクジェットヘッド１２はその位置が固定された状態であり、この固定されたラインインクジェットヘッド１２に対してラベル用紙１４が相対的に一定速度で移動しつつ、ラインインクジェットヘッド１２から適宜インクが吐出されてドットが形成され、画像が印刷される。
【００１８】
図３は、本実施形態に係る印刷システム８の機能的構成を示すブロック図である。
図３に示すように、印刷システム８は、インクジェットプリンター５と、このインクジェットプリンター５と通信可能であり、インクジェットプリンター５を制御するホストコンピューター１（制御装置）と、を備える。
【００１９】
図３に示すように、インクジェットプリンター５は、プリンター制御部２７（装置制御部）と、ラインインクジェットヘッド１２（印刷部）と、紙送りモーター３６と、ブラックマークセンサー４２と、プリンター表示部３９と、プリンター入力部４０と、プリンター記憶部５０（装置記憶部）と、インターフェース（Ｉ／Ｆ）４１と、を備える。
プリンター制御部２７は、演算実行部としてのＣＰＵや、ＣＰＵによって実行可能なファームウェアやファームウェアに係るデータを不揮発的に記憶するＲＯＭ、ＣＰＵが使用するワークエリアが形成されるＲＡＭ、その他の周辺回路等を備える。プリンター制御部２７は、例えば、ファームウェアを読み出して実行することにより、インクジェットプリンター５を制御する。
ラインインクジェットヘッド１２は、プリンター制御部２７の制御で、印刷を実行する。プリンター制御部２７は、ラインインクジェットヘッド１２の各インクジェットヘッドが備えるアクチュエーターを駆動し、各ノズルから必要量のインクを吐出してラベル用紙１４にドットを形成し画像を印刷する。
【００２０】
紙送りモーター３６は、搬送ローラー１０に接続され、搬送ローラー１０を回転させて、ラベル用紙１４を、所定量、搬送する。プリンター制御部２７は、紙送りモーター３６を駆動して、ラベル用紙１４を、所定量、搬送する。本実施形態では、紙送りモーター３６は、ステッピングモーターで構成されており、プリンター制御部２７は、ステップ数によりラベル用紙１４の搬送量を管理する。
ブラックマークセンサー４２は、プリンター制御部２７に検出値を出力する。ブラックマークセンサー４２による検出位置にブラックマークＢＭが位置している場合と、位置していない場合とでは、ブラックマークセンサー４２の検出値が異なる。プリンター制御部２７は、ラベル用紙１４の搬送中、ブラックマークセンサー４２の検出値に基づいて、ブラックマークセンサー４２による検出位置にブラックマークＢＭが位置していることを検出する。
プリンター制御部２７は、ラベル用紙１４の搬送中、紙送りモーター３６のステップ数によってラベル用紙１４の搬送量を管理し、ブラックマークセンサー４２の検出値に基づいて、ラベル用紙１４の位置を管理する。プリンター制御部２７は、管理する紙送りモーター３６のステップ数、及び、ラベル用紙１４の位置に基づいて、ラベル用紙１４の搬送量の調整や、ラベル用紙１４の位置の調整等を行う。
【００２１】
プリンター表示部３９は、複数のＬＥＤを備え、プリンター制御部２７の制御で、ＬＥＤを所定の態様で点灯／消滅させ、インクジェットプリンター５の状態を報知したり、エラーの発生の有無を報知したりする。
プリンター入力部４０はインクジェットプリンター５に設けられた各種操作スイッチに接続され、各種操作スイッチに対する操作を検出し、プリンター制御部２７に出力する。
プリンター記憶部５０は、ＥＥＰＲＯＭや、ハードディスク等の不揮発性メモリーを備え、データを記憶する。プリンター記憶部５０が記憶する各種データについては後述する。
インターフェース４１は、プリンター制御部２７の制御で、ホストコンピューター１と所定のプロトコルで通信する。
【００２２】
図３に示すように、ホストコンピューター１は、ホストコンピューター１を制御するホスト制御部４５（制御部）を備える。ホスト制御部４５は、機能ブロックとして、アプリケーション実行部４５ａと、プリンタードライバー実行部４５ｂと、を備えるが、これらについては後述する。
また、ホストコンピューター１は、各種情報を表示するホスト表示部４６と、接続された入力デバイスに対する操作を検出するホスト入力部４７と、各種データを記憶するホスト記憶部４８と、インクジェットプリンター５との間で所定のプロトコルで通信するインターフェース（Ｉ／Ｆ）４９とを備える。
【００２３】
次に、ラベル用紙１４の複数のラベル部Ｓに連続して画像を印刷するときのホストコンピューター１、及び、インクジェットプリンター５の基本的な動作について説明する。
以下の説明では、ラベル用紙１４は、少なくとも、ラベル部Ｓとして、搬送方向下流から上流へ向かって、第１ラベル部Ｓ１、第２ラベル部Ｓ２、及び、第３ラベル部Ｓ３を有する。そして以下では、インクジェットプリンター５により、第１ラベル部Ｓ１、第２ラベル部Ｓ２、第３ラベル部Ｓ３の順に画像を連続して印刷する場合を例にして、画像を連続印刷するときの各装置の動作を説明する。以下の説明では、第１ラベル部Ｓ１に印刷される画像を「第１画像ＧＱ１」と表現し、第２ラベル部Ｓ２に印刷される画像を「第２画像ＧＱ２」と表現し、第３ラベル部Ｓ３に印刷される画像を「第３画像ＧＱ３」と表現する。
ここで、アプリケーション実行部４５ａ、及び、プリンタードライバー実行部４５ｂについて説明する。
アプリケーション実行部４５ａは、ホストコンピューター１にインストールされたアプリケーション、及び、付随するプログラムを読み出して実行することにより処理を実行する機能ブロックである。アプリケーションは、少なくとも、ラベル部Ｓに印刷する画像の画像データをプリンタードライバーに出力する機能を有するソフトウェアである。
プリンタードライバー実行部４５ｂは、ホストコンピューター１にインストールされたプリンタードライバー、及び、付随するプログラムを読み出して実行することにより処理を実行する機能ブロックである。プリンタードライバーは、インクジェットプリンター５が対応するコマンド体系に従ったデータを生成し、出力する機能を有する。
【００２４】
複数のラベル部Ｓに画像を連続して印刷する場合、ホストコンピューター１のホスト制御部４５のアプリケーション実行部４５ａは、以下の処理を実行する。アプリケーション実行部４５ａは、第１画像ＧＱ１の画像データ（以下、「第１画像データＤ１」と表現する。）、第２画像ＧＱ２の画像データ（以下、「第２画像データＤ２」と表現する。）、及び、第３画像ＧＱ３の画像データ「以下、「第３画像データＤ３」と表現する。」を生成する。
本実施形態では、画像データは、ドットマトリクス状に配置されるドットについて、ドットごとに、色に関する情報を保持するデータである。色に関する情報とは、例えば、赤（Ｒ）、青（Ｂ）、及び、緑（Ｇ）のそれぞれの色成分を２５６階調の階調値として有する情報である。
次いで、アプリケーション実行部４５ａは、第１画像データＤ１、第２画像データＤ２、及び、第３画像データＤ３を、順次、プリンタードライバー実行部４５ｂに出力する。１の画像データの出力に係る処理と、他の画像データの生成に係る処理は並行して行われてもよい。
【００２５】
プリンタードライバー実行部４５ｂは、入力された第１画像データＤ１に基づいて、第１画像ＧＱ１の印刷を指示する制御データ（以下、「第１制御データＣ１」と表現する。）を生成し、インターフェース４９を制御して、インクジェットプリンター５に送信する。同様にして、プリンタードライバー実行部４５ｂは、入力された第２画像データＤ２に基づく制御データ（以下、「第２制御データＣ２」と表現する。）、及び、第３画像データＤ３に基づく制御データ（以下、「第３制御データＣ３」と表現する。）を、順次、インクジェットプリンター５に送信する。制御データの内容は後に詳述する。
インクジェットプリンター５がインターフェース４１を介して受信する制御データは、図示しない受信バッファーに、順次、格納される。
インクジェットプリンター５のプリンター制御部２７は、受信バッファーに格納された制御データを、順次、読み出す。
プリンター制御部２７は、制御データの読み出しに応じて、ラベル用紙１４の搬送正方向ＹＪ１への搬送を開始する。プリンター制御部２７は、複数のラベル部Ｓへの画像の連続印刷の実行中、ラベル用紙１４を所定の速度で搬送正方向ＹＪ１へ搬送した状態を維持する。上述したように、ラベル用紙１４の搬送中、プリンター制御部２７は、ブラックマークセンサー４２の検出値に基づいて、ラベル用紙１４の位置を管理する。
プリンター制御部２７は、第１制御データＣ１に基づいて、図示しない画像バッファーに第１画像ＧＱ１の画像データを展開する。当該処理については後に詳述する。プリンター制御部２７は、画像バッファーに展開した画像データに基づいて、適切なタイミングで適切な態様でラインインクジェットヘッド１２を制御して、第１ラベル部Ｓ１に第１画像ＧＱ１を印刷する。同様に、プリンター制御部２７は、第２制御データＣ２に基づいて、図示しない画像バッファーに第２画像ＧＱ２の画像データを展開し、展開した画像データに基づいて、第２ラベル部Ｓ２に第２画像ＧＱ２を印刷する。また、プリンター制御部２７は、第３制御データＣ３に基づいて、図示しない画像バッファーに第３画像ＧＱ３の画像データを展開し、展開した画像データに基づいて、第３ラベル部Ｓ３に第３画像ＧＱ３を印刷する。
【００２６】
図４は、本実施形態に係る印刷システム８によってラベル用紙１４のラベル部Ｓに印刷される画像の一例を示す図である。図４の例では、ラベル部Ｓは、画像の印刷後、剥離紙から取り剥がされ、ラベルとして所定の製品や、製品の包装に貼付される。
図４に示すように、ラベル部Ｓのそれぞれには、ラベル画像Ｇ１が印刷される。各ラベル画像Ｇ１は、ラベル画像Ｇ１ごとに態様を異ならせることが可能な可変画像Ｇ２と、ラベル画像Ｇ１ごとに態様が同じ固定画像Ｇ３とを含んで構成される。
図４の例では、固定画像Ｇ３は、ラベル部Ｓの外縁に沿って形成された赤色の枠状の画像である。固定画像Ｇ３において、ラベル部Ｓの外縁の上辺に対応する部位には、「ＡＡＡＣｏｍｐａｎｙ」という製品を製造するメーカーの名称が記されている。図４に例示するように、各ラベル部Ｓに印刷される固定画像Ｇ３の態様は、同一である。
可変画像Ｇ２は、枠状の固定画像Ｇ３に囲まれた領域に印刷される画像である。可変画像Ｇ２は、製品の機種名を示す文字列（図４の例では、「ＸＸ−ＹＹＹＹ」。）と、製品ごとに一意に割り振られたコードを示すバーコードと、製品ごとに一意に付与されるシリアル番号を示す文字列と、を含んで構成される。
【００２７】
ここで、ラベル画像Ｇ１は、固定画像Ｇ３を有するため、連続して印刷される複数のラベル画像Ｇ１のうち、１のラベル画像Ｇ１と、他のラベル画像Ｇ１とは、所定の領域で画像が共通する、という特徴がある。
本実施形態に係るホストコンピューター１は、上記特徴に基づいて、インクジェットプリンター５に、複数のラベル部Ｓに画像を連続して印刷させる場合に、インクジェットプリンター５に送信するデータのデータ量を低減する。送信するデータのデータ量を低減することによって、通信効率の向上等を図ることが可能である。
以下、ラベル用紙１４の複数のラベル部Ｓに画像を連続して印刷するときのホストコンピューター１、及び、インクジェットプリンター５の動作について詳細に説明する。
【００２８】
図５（Ａ）はホストコンピューター１の動作を示すフローチャートであり、（Ｂ）はインクジェットプリンター５の動作を示すフローチャートである。
以下では、ラベル用紙１４の搬送については詳述しないが、プリンター制御部２７は、ラベル部Ｓへの画像の印刷に対応したラベル用紙１４の搬送、搬送時のラベル用紙１４の位置の管理、ラベル用紙１４の搬送量の調整、位置の調整を実行する。
【００２９】
図５に示すように、アプリケーション実行部４５ａは、連続印刷を実行するのに必要な情報の入力や、画像の印刷の開始を指示可能なユーザーインターフェースをユーザーに提供する。連続印刷を実行するのに必要な情報とは、固定画像Ｇ３のファイルの場所や、可変画像Ｇ２の変化の規則に関する情報等である。ユーザーは、当該ユーザーインターフェースに対して、必要な情報を入力し、画像の印刷の開始を指示する（ステップＳＸ１）。
アプリケーション実行部４５ａは、ユーザーによる画像の印刷の開始の指示に応じて、以下の処理を実行する。アプリケーション実行部４５ａは、複数のラベル部Ｓに連続して印刷する画像のそれぞれの画像データを生成する（ステップＳＡ１）。
以下、ステップＳＡ１でアプリケーション実行部４５ａが生成した画像データを「印刷画像データ」という。つまり、印刷画像データは、ラベル部Ｓに印刷する画像の画像データである。
次いで、アプリケーション実行部４５ａは、生成した印刷画像データを、順次、プリンタードライバー実行部４５ｂに出力する（ステップＳＡ２）。
【００３０】
次いで、プリンタードライバー実行部４５ｂは、アプリケーション実行部４５ａから入力された印刷画像データのうち、１の印刷画像データを取得する（ステップＳＡ３）。ステップＳＡ３で、プリンタードライバー実行部４５ｂは、アプリケーション実行部４５ａから入力された複数の印刷画像データについて、入力された順番で（＝印刷させる順番で）、１つずつ、印刷画像データを取得する。以下、ステップＳＡ２でプリンタードライバー実行部４５ｂが取得した１の印刷画像データを「処理対象画像データＧＤ１」と表現する。
次いで、プリンタードライバー実行部４５ｂは、所定の記憶領域（記憶部）に、１つ以上の比較画像データハッシュ値情報Ｊ１（後述）が記憶されているか否かを判別する（ステップＳＡ４）。後に明らかになるとおり、プリンタードライバー実行部４５ｂは、処理対象画像データＧＤ１に基づく処理の実行に応じて、処理対象画像データＧＤ１に基づいて生成される比較画像データハッシュ値情報Ｊ１を所定の記憶領域に記憶する。従って、処理対象画像データＧＤ１が、アプリケーション実行部４５ａから入力された複数の印刷画像データのうちの１つ目の印刷画像データである場合、所定の記憶領域に比較画像データハッシュ値情報Ｊ１が記憶されていない状態である。この場合、ステップＳＡ４で、プリンタードライバー実行部４５ｂは、所定の記憶領域に比較画像データハッシュ値情報Ｊ１が１つも記憶されていないと判別する（ステップＳＡ４：ＮＯ）。一方、処理対象画像データＧＤ１が、アプリケーション実行部４５ａから入力された複数の印刷画像データのうちの２つ目以降の印刷画像データである場合、所定の記憶領域に比較画像データハッシュ値情報Ｊ１が記憶された状態である。この場合、ステップＳＡ４で、プリンタードライバー実行部４５ｂは、所定の記憶領域に１つ以上の比較画像データハッシュ値情報Ｊ１が記憶されていると判別する（ステップＳＡ４：ＹＥＳ）。
【００３１】
ステップＳＡ４で、所定の記憶領域に比較画像データハッシュ値情報Ｊ１が１つも記憶されていないと判別した場合（ステップＳＡ４：ＮＯ）、プリンタードライバー実行部４５ｂは、以下の処理を実行する。
プリンタードライバー実行部４５ｂは、処理対象画像データＧＤ１を一意に識別する識別情報である画像データ識別情報ＤＣを生成する（ステップＳＡ５）。
次いで、プリンタードライバー実行部４５ｂは、処理対象画像データＧＤ１を、所定の圧縮形式で、圧縮する（ステップＳＡ６）。
次いで、プリンタードライバー実行部４５ｂは、以下の処理を実行する（ステップＳＡ７）。プリンタードライバー実行部４５ｂは、ステップＳＡ５で生成した画像データ識別情報ＤＣ、及び、ステップＳＡ６で圧縮した処理対象画像データＧＤ１を含み、処理対象画像データＧＤ１に基づく印刷を指示する制御データを生成する。
次いで、プリンタードライバー実行部４５ｂは、インターフェース４９を制御して、生成した制御データを、インクジェットプリンター５に送信する（ステップＳＡ８）。
以下、ステップＳＡ８で送信した制御データに含まれる画像データ識別情報ＤＣを、「印刷画像データ識別情報ＤＣ１」と表現し、後に説明する「選択画像データ識別情報ＤＣ２」と区別する。
【００３２】
次いで、プリンタードライバー実行部４５ｂは、処理対象画像データＧＤ１の各ブロックのハッシュ値（算出値）を算出する（ステップＳＡ９）。
以下、ブロック、及び、ハッシュ値を説明する。
図６は、処理対象画像データＧＤ１（印刷画像データ）上に、処理対象画像データＧＤ１に形成されるブロックを模式的に示す図である。
本例では、処理対象画像データＧＤ１は、縦２４００ドット×横１４０００ドットのデータであり、ドットごとに赤（Ｒ）、緑（Ｇ）、及び、青（Ｂ）の色成分を２５６階調の階調値として保持する。
ブロックは、図６に示すように、処理対象画像データＧＤ１を格子状に区分して形成される領域である。詳述すると、図６に示すように、ブロックは、処理対象画像データＧＤ１の図中左上の頂点Ｏを基点として、処理対象画像データＧＤ１を縦６４ドット、横６４ドットで格子状に区分することによって形成された領域である。このため、ブロックの基本的なサイズは、縦６４ドット×横６４ドットである。ただし、処理対象画像データＧＤ１の縦の長さは２４００ドットであるが、「２４００」が「６４」で割り切れないため、処理対象画像データＧＤ１の下辺に接する各ブロックの縦の長さは３２ドットである。また、処理対象画像データＧＤ１の横の長さは１４０００ドットであるが、「１４０００」が「６４」で割り切れないため、処理対象画像データＧＤ１の右辺に接する各ブロックの横の長さは４８ドットである。
ステップＳＡ９で、プリンタードライバー実行部４５ｂは、所定のハッシュ関数（所定の計算式）で、処理対象画像データＧＤ１の各ブロックのハッシュ値（算出値）を求める。
なお、各ブロックには、処理対象画像データＧＤ１における位置を示す位置情報が割り振られており、当該位置情報により、各ブロックの画像データにおける位置を特定できる。
本実施形態では、位置情報は、処理対象画像データＧＤ１を、頂点Ｏを原点とする直交座標系に展開した場合の、ブロックの画像データの基点（本例では、図６中左上の頂点）の座標を示す情報である。
【００３３】
以下、１のブロックのハッシュ値の算出方法の一例を示す。
１のブロックは、ドットを、ｎ個有する。例えば、縦６４ドット×横６４ドットのブロックについては、ｎ＝４０９６（６４×６４）である。
プリンタードライバー実行部４５ｂは、ｎ個の各ドットのドット値を以下の式によって算出する。「（式）ドット値＝（赤（Ｒ）の色成分の階調値）＋（（緑（Ｇ）の色成分の階調値）×２５６」）＋（（青（Ｂ）の色成分の階調値）×６５５３６）」。
以下、ｎ個のドットのそれぞれのドット値をｐ［ｉ］（０≦ｉ≦ｎ−１）とする。
次いで、プリンタードライバー実行部４５ｂは、変数ｈ［ｉ］（０≦ｉ≦ｎ−１）を定義し、以下の計算式により、ｈ［ｎ−１］を求める。
まず、プリンタードライバー実行部４５ｂは、ｈ［０］に、ｐ［０］の値を代入する。
次いで、プリンタードライバー実行部４５ｂは、「ｈ［ｉ］←３×ｈ［ｉ−１］＋ｐ［ｉ］」として、「ｉ＝１」から「ｉ＝ｎ−１」となるまで、順次、「ｉ」の値をインクリメントし、ｈ［ｎ−１］の値を求める。
プリンタードライバー実行部４５ｂは、ｈ［ｎ−１］の値を、ハッシュ値とする。なお、ｈ［ｎ−１］に格納可能な値の範囲を考慮して、ｈ［ｎ−１］の値が、値Ｔ１を上回る場合は、ｈ［ｎ−１］を値Ｔ２（値Ｔ１と同一の値であってもよい）で割ったときの余りをハッシュ値とする等してもよい。
なお、例示したハッシュ値の算出方法は一例であり、他の方法でハッシュ値を求めてもよい。
【００３４】
ステップＳＡ９で、処理対象画像データＧＤ１の各ブロックのハッシュ値を算出した後、プリンタードライバー実行部４５ｂは、比較画像データハッシュ値情報Ｊ１を生成する（ステップＳＡ１０）。比較画像データハッシュ値情報Ｊ１は、ステップＳＡ５で生成した処理対象画像データＧＤ１の画像データ識別情報ＤＣと、処理対象画像データＧＤ１と、ステップＳＡ９で算出した処理対象画像データＧＤ１の各ブロックのハッシュ値と各ブロックの位置情報との組み合わせと、を対応付けた情報である。
以下、比較画像データハッシュ値情報Ｊ１に含まれる処理対象画像データＧＤ１のことを、「比較画像データＧＤ２」と表現する。後に明らかとなるとおり、比較画像データＧＤ２は、アプリケーション実行部４５ａが出力した印刷画像データのうち、過去に処理対象画像データＧＤ１となった印刷画像データを意味する。
比較画像データハッシュ値情報Ｊ１は、比較画像データＧＤ２の画像データ識別情報ＤＣと、比較画像データＧＤ２と、比較画像データＧＤ２の各ブロックのハッシュ値と各ブロックの位置情報との組み合わせと、を含む情報である。
次いで、プリンタードライバー実行部４５ｂは、ステップＳＡ１０で生成した比較画像データハッシュ値情報Ｊ１を所定の記憶領域（記憶部）に記憶する（ステップＳＡ１１）。所定の記憶領域（記憶部）は、ホスト記憶部４８に形成された記憶領域であってもよく、ＲＡＭのワークエリア等のホスト記憶部４８以外の記憶媒体に形成された記憶領域であってもよい。次いで、プリンタードライバー実行部４５ｂは、処理手順をステップＳＡ３に戻す。
【００３５】
図５（Ｂ）に示すように、インクジェットプリンター５のプリンター制御部２７は、ホストコンピューター１から制御データを受信したか否かを監視する（ステップＳＢ１）。
受信した場合（ステップＳＢ１：ＹＥＳ）、プリンター制御部２７は、受信バッファーに格納された１の制御データを読み出す（ステップＳＢ２）。ステップＳＢ２で、プリンター制御部２７は、受信バッファーに格納された制御データを、順番に、読み出す。
次いで、プリンター制御部２７は、制御データに、選択画像データ識別情報ＤＣ２（後述）が含まれているか否かを判別する（ステップＳＢ３）。
上述したように、ステップＳＡ８でホストコンピューター１が送信する制御データ（１つ目の印刷画像データに基づく制御データ）には、選択画像データ識別情報ＤＣ２は含まれない。一方、後述するように、ステップＳＡ１９でホストコンピューター１が送信する制御データ（２つ目以降の印刷画像データに基づく制御データ）には、選択画像データ識別情報ＤＣ２が含まれる。
【００３６】
制御データに選択画像データ識別情報ＤＣ２が含まれていない場合（ステップＳＢ３：ＮＯ）、プリンター制御部２７は、制御データに含まれる圧縮された処理対象画像データＧＤ１を、所定の圧縮形式に対応する解凍方式で解凍する（ステップＳＢ４）。
次いで、プリンター制御部２７は、解凍した処理対象画像データＧＤ１を、画像バッファーに展開する（ステップＳＢ５）。
次いで、プリンター制御部２７は、画像バッファーに展開した画像データに基づいて、適切なタイミングで、適切な態様でラインインクジェットヘッド１２を制御し、対応するラベル部Ｓに画像を印刷する（ステップＳＢ６）。
次いで、プリンター制御部２７は、制御データに含まれる印刷画像データ識別情報ＤＣ１（画像データ識別情報ＤＣ）を取得する（ステップＳＢ７）。
次いで、プリンター制御部２７は、後述する記憶画像データテーブルＴＢ１においてステップＳＢ７で取得した印刷画像データ識別情報ＤＣ１と、画像バッファーに展開した画像データとを対応付けて記憶する（ステップＳＢ８）。以下、記憶した画像データを、記憶画像データＧＤ３と表現する。記憶画像データＧＤ３は、「比較画像データ」に該当する。
次いで、プリンター制御部２７は、処理手順をステップＳＢ２に戻し、受信バッファーから次の制御データを読み出す。
【００３７】
図５（Ａ）に示すように、ステップＳＡ４で、所定の記憶領域（記憶部）に、比較画像データハッシュ値情報Ｊ１が記憶されていると判別した場合（ステップＳＡ４：ＹＥＳ）、プリンタードライバー実行部４５ｂは、以下の処理を実行する。なお、所定の記憶領域に、比較画像データハッシュ値情報Ｊ１が記憶されている場合とは、ステップＳＡ３で取得する処理対象画像データが、アプリケーション実行部４５ａが出力する印刷画像データのうち、２つ目以降の印刷画像データである場合である。
プリンタードライバー実行部４５ｂは、処理対象画像データＧＤ１の各ブロックのハッシュ値を算出する（ステップＳＡ１２）。
次いで、プリンタードライバー実行部４５ｂは、ハッシュ値比較処理を実行する（ステップＳＡ１３）。
以下、ハッシュ値比較処理について詳述する。
【００３８】
図７は、ステップＳＡ１３のハッシュ値比較処理の説明に用いる図である。
ハッシュ値比較処理は、所定の記憶領域に記憶された１又は複数の比較画像データハッシュ値情報Ｊ１に含まれる比較画像データＧＤ２の各ブロックのハッシュ値と、処理対象画像データＧＤ１の各ブロックのハッシュ値とを比較し、ハッシュ値の異なるブロックの少ない比較画像データＧＤ２を含む比較画像データハッシュ値情報Ｊ１を選択する処理である。
また、ステップＳＡ１３の時点では、所定の記憶領域に、１又は複数の比較画像データハッシュ値情報Ｊ１が記憶されている。図７（Ａ）では、所定の記憶領域に、複数の比較画像データハッシュ値情報Ｊ１が記憶された状態を示す。
【００３９】
ハッシュ値比較処理について詳述すると、プリンタードライバー実行部４５ｂは、１又は複数の比較画像データハッシュ値情報Ｊ１のそれぞれについて、以下の処理を実行する。
すなわち、プリンタードライバー実行部４５ｂは、処理対象画像データＧＤ１の各ブロックのハッシュ値と、１の比較画像データハッシュ値情報Ｊ１に含まれる比較画像データＧＤ２の各ブロックのハッシュ値とを比較し、ハッシュ値が異なるブロックの数を計測する。
各ブロックのハッシュ値の比較は、処理対象画像データＧＤ１のそれぞれのブロックについて、各ブロックのハッシュ値と、比較画像データＧＤ２の対応する位置に配置されたブロックのハッシュ値と比較することによって行われる。図７（Ｂ）は、左側に比較画像データＧＤ２のブロックを示し、右側に処理対象画像データＧＤ１のブロックを示す。例えば、比較画像データＧＤ２のブロックのうち、位置Ｘ１に対応する位置に配置されたブロックＢＰ１と、処理対象画像データＧＤ１のブロックのうち、位置Ｘ１に対応する位置に配置されたブロックＢＱ１とが、対応するブロックである。従って、プリンタードライバー実行部４５ｂは、ブロックＢＰ１のハッシュ値と、ブロックＢＱ１のハッシュ値とを比較する。プリンタードライバー実行部４５ｂは、処理対象画像データＧＤ１が有する全てのブロックについて、対応するブロックのハッシュ値と、ハッシュ値が一致するか異なるかを判別し、ハッシュ値が異なるブロックの数を計測する。プリンタードライバー実行部４５ｂは、以上のようなハッシュ値が異なるブロックの数の計測を、記憶する全ての比較画像データＧＤ２との比較に基づいて実行する。次いで、プリンタードライバー実行部４５ｂは、１又は複数の比較画像データハッシュ値情報Ｊ１のうち、ハッシュ値が異なるブロックの数が最も少ない比較画像データＧＤ２に係る比較画像データハッシュ値情報Ｊ１を選択する。
【００４０】
ここで、比較画像データＧＤ２のうち、処理対象画像データＧＤ１の各ブロックとハッシュ値が異なるブロックの数が最も少ない比較画像データＧＤ２は、処理対象画像データＧＤ１と近似する画像データである。
なお、複数の比較画像データＧＤ２から、処理対象画像データＧＤ１に近似するものを選択する処理として、以下の処理を実行することも可能である。すなわち、比較画像データＧＤ２と、処理対象画像データＧＤ１との対応するドットを比較して一致／不一致を判別し、不一致のドットが最も少ない比較画像データＧＤ２を選択することも可能である。一方で、本実施形態に係るハッシュ値比較処理では、プリンタードライバー実行部４５ｂは、予め比較画像データＧＤ２（過去にインクジェットプリンター５に印刷させた画像の画像データ）の各ブロックのハッシュ値を算出して記憶する。プリンタードライバー実行部４５ｂは、処理対象画像データＧＤ１の各ブロックのハッシュ値を算出し、処理対象画像データＧＤ１の各ブロックのハッシュ値と、記憶した比較画像データＧＤ２の各ブロックのハッシュ値との比較に基づいて、近似する比較画像データＧＤ２を選択する。このため、処理対象画像データＧＤ１と近似する比較画像データＧＤ２を選択する処理について、処理負荷が小さく、また、選択までに要する時間が短い。
【００４１】
図５（Ａ）に示すように、ステップＳＡ１３でハッシュ値比較処理を実行した後、プリンタードライバー実行部４５ｂは、処理対象画像データＧＤ１を一意に識別する識別情報である画像データ識別情報ＤＣを生成する（ステップＳＡ１４）。
次いで、プリンタードライバー実行部４５ｂは、ステップＳＡ１３のハッシュ値比較処理で選択した比較画像データハッシュ値情報Ｊ１に含まれる画像データ識別情報ＤＣ（比較画像データＧＤ２の識別情報）を取得する（ステップＳＡ１５）。
次いで、プリンタードライバー実行部４５ｂは、画像データ比較処理を実行する（ステップＳＡ１６）。
以下、ステップＳＡ１６の画像データ比較処理について詳述する。
【００４２】
画像データ比較処理は、処理対象画像データＧＤ１のブロックのうち、ステップＳＡ１３のハッシュ値比較処理で選択した比較画像データハッシュ値情報Ｊ１に含まれる比較画像データＧＤ２のブロックとハッシュ値が一致すると判別されたものについて、各ブロックに属する画像データ（以下、「ブロック画像データ」という。）の各ドットを比較する。そして、ハッシュ値が一致する一方、ブロック画像データが異なるブロックを特定する処理である。
例えば、図７（Ｂ）を参照し、ハッシュ値比較処理において、比較画像データＧＤ２の位置Ｘ１に配置されたブロックＢＰ１のハッシュ値と、処理対象画像データＧＤ１の位置Ｘ１に配置されたブロックＢＱ１のハッシュ値とが一致すると判別されたとする。この場合、画像データ比較処理において、プリンタードライバー実行部４５ｂは、ブロックＢＰ１に属する画像データ（ブロック画像データ）と、ブロックＢＱ１に属する画像データ（ブロック画像データ）との各ドットを比較し、一致／不一致を判別する。プリンタードライバー実行部４５ｂは、当該判別を、ハッシュ値が一致すると判別したブロックのそれぞれについて実行し、ハッシュ値が一致する一方、ブロック画像データが異なるブロックを特定する。
画像データ比較処理は、以下を目的とする処理である。すなわち、処理対象画像データＧＤ１と比較画像データＧＤ２の対応するブロックについて、対応するブロック画像データが異なる場合であっても、ハッシュ値が一致する可能性がある。そして、画像データ比較処理は、処理対象画像データＧＤ１のブロックのうち、対応するブロックとハッシュ値が一致する一方、対応するブロックのブロック画像データが異なるブロックを特定することを目的とする。
【００４３】
次いで、プリンタードライバー実行部４５ｂは、ブロック圧縮処理を実行する（ステップＳＡ１７）。
以下、ブロック圧縮処理について説明する。
なお、ブロック圧縮処理では、画像データを所定の圧縮方式で圧縮する。この所定の圧縮方式は、矩形の画像データについて圧縮可能であり、また、圧縮対象の画像データのサイズが大きければ大きいほど、圧縮の効率がよい。
図８は、ブロック圧縮処理の詳細を示すフローチャートである。
図９は、ブロック圧縮処理の説明に利用する図である。図９（Ａ）は、処理対象画像データＧＤ１のデータ上にブロックを示す図である。図９（Ａ）に示す処理対象画像データＧＤ１は、説明の明確化のため、縦に１０個、横に１０個、合計１００個のブロックを有する。１００個のブロックのそれぞれには、「Ｒ１」〜「Ｒ１００」の識別用の番号（以下、「ブロック番号」という。）が割り振られる。なお、以下、図中、縦方向のブロック番号が小さい側を上方向、大きい側を下方向、また、縦方向のブロック番号が小さい側を左方向、大きい側を右方向という。
図８に示すように、プリンタードライバー実行部４５ｂは、処理対象画像データＧＤ１のブロックのうち、ステップＳＡ１３のハッシュ値比較処理において比較画像データＧＤ２の対応するブロックとハッシュ値が異なると判別したブロックを特定する（ステップＳＣ１）。次いで、プリンタードライバー実行部４５ｂは、処理対象画像データＧＤ１のブロックのうち、ステップＳＡ１６の画像データ比較処理において比較画像データＧＤ２の対応するブロックとハッシュ値が一致する一方、ブロック画像データが異なると判別したブロックを特定する（ステップＳＣ２）。
【００４４】
以下、ステップＳＣ１、及び、ステップＳＣ２で特定したブロックを、「差分ブロック」と表現する。
【００４５】
図９（Ａ）では、差分ブロックを、斜線で表す。すなわち、ブロック番号がＲ１２、Ｒ１３、Ｒ１５、Ｒ１７、Ｒ１９、Ｒ２０、Ｒ２５、Ｒ２７、Ｒ３０、Ｒ３９、Ｒ４３、Ｒ４４、Ｒ５０、Ｒ５３、Ｒ５４、Ｒ５６、Ｒ５７、Ｒ５８、Ｒ６０、Ｒ７４、Ｒ７５、Ｒ７７、Ｒ８０、Ｒ８２、Ｒ８３、Ｒ８４、Ｒ９２、Ｒ９３、Ｒ９６、Ｒ９８、Ｒ９９のブロックが、差分ブロックである。
次いで、プリンタードライバー実行部４５ｂは、隣接する差分ブロックを結合して、差分矩形を生成し、差分矩形のそれぞれに、識別用の番号（以下、「差分矩形番号」という。）を割り振る（ステップＳＣ３）。隣接する差分ブロックがない場合は、１つの差分ブロックが、差分矩形となる。
図９（Ｂ）は、図９（Ａ）に例示した差分ブロックに基づいて、ステップＳＣ３の処理により差分矩形を生成した様子を示す。
図９（Ｂ）の例では、１６個の差分矩形が生成され、各差分矩形に、差分矩形番号「Ｓ１」〜差分矩形番号「Ｓ１６」がそれぞれ割り振られる。
【００４６】
次いで、プリンタードライバー実行部４５ｂは、差分矩形に属さないブロック（以下、「非差分ブロック」という。）のそれぞれについて、上方向に最も近い差分矩形の差分矩形番号を検出し、検出した差分矩形番号を非差分ブロックのブロック番号と対応付けて記憶する（ステップＳＣ４）。非差分ブロックは、図９（Ａ）の例では、斜線が記されていないブロックである。
図９（Ｃ）は、図９（Ａ）に例示した非差分ブロックについて、ステップＳＣ４の処理により、上方向に最も近い差分矩形の差分矩形番号を検出したときの様子を、説明に適した態様で示す図である。図９（Ｃ）では、非差分ブロックを表す矩形の中に、ステップＳＣ４で検出される差分矩形番号を表示する。
図９（Ｃ）に示すように、ブロック番号「Ｒ２２」の非差分ブロックについて、上方向に最も近い差分矩形の差分矩形番号として、「Ｓ１」が検出される。また、ブロック番号「Ｒ２３」の非差分ブロックについて、上方向に最も近い差分矩形の差分矩形番号として、「Ｓ１」が検出される。また、ブロック番号「Ｒ５５」の非差分ブロックについて、上方向に最も近い差分矩形の差分矩形番号として、「Ｓ２」が検出される。
図９（Ｃ）に示すように、上方向に、差分矩形が存在しない場合、上方向に最も近い差分矩形の差分矩形番号は検出されない。
【００４７】
次いで、プリンタードライバー実行部４５ｂは、非差分ブロックのそれぞれについて、下方向に最も近い差分矩形の差分矩形番号を検出し、検出した差分矩形番号を非差分ブロックのブロック番号と対応付けて記憶する（ステップＳＣ５）。
図１０（Ａ）は、図９（Ａ）に例示した非差分ブロックについて、ステップＳＣ５の処理により、下方向に最も近い差分矩形の差分矩形番号を検出したときの様子を、説明に適した態様で示す。
【００４８】
次いで、プリンタードライバー実行部４５ｂは、非差分ブロックのそれぞれについて、左方向に最も近い差分矩形の差分矩形番号を検出し、検出した差分矩形番号を非差分ブロックのブロック番号と対応付けて記憶する（ステップＳＣ６）。
図１０（Ｂ）は、図９（Ａ）に例示した非差分ブロックについて、ステップＳＣ６の処理により、左方向に最も近い差分矩形の差分矩形番号を検出したときの様子を、説明に適した態様で示す。
【００４９】
次いで、プリンタードライバー実行部４５ｂは、非差分ブロックのそれぞれについて、右方向に最も近い差分矩形の差分矩形番号を検出し、検出した差分矩形番号を非差分ブロックのブロック番号と対応付けて記憶する（ステップＳＣ７）。
図１０（Ｃ）は、図９（Ａ）に例示した非差分ブロックについて、ステップＳＣ７の処理により、左方向に最も近い差分矩形の差分矩形番号を検出したときの様子を、説明に適した態様で示す。
【００５０】
次いで、プリンタードライバー実行部４５ｂは、ステップＳＣ４〜ステップＳＣ８の処理結果に基づいて、結合処理候補抽出処理を実行する（ステップＳＣ８）。
以下、結合処理候補抽出処理について詳述する。
結合処理候補抽出処理において、プリンタードライバー実行部４５ｂは、非差分ブロックに基づいて、後述する結合処理の対象となり得る２つの差分矩形の差分矩形番号の組み合わせ（以下、「結合処理候補」という。）を抽出する。
【００５１】
以下の説明では、各非差分ブロックについて、ステップＳＣ４の処理で検出された差分矩形番号を、「上方向番号」という。また、各非差分ブロックについて、ステップＳＣ５の処理で検出された差分矩形番号を、「下方向番号」という。また、各非差分ブロックについて、ステップＳＣ６の処理で検出された差分矩形番号を、「左方向番号」という。また、各非差分ブロックについて、ステップＳＣ７の処理で検出された差分矩形番号を、「右方向番号」という。また、上方向番号、下方向番号、左方向番号、及び、右方向番号を総称して、「近接差分矩形番号」という。
【００５２】
結合処理候補抽出処理において、プリンタードライバー実行部４５ｂは、非差分ブロックのうち、近接差分矩形番号が２つ以上検出されたものについて、順に、１つずつ処理対象としていく。
例えば、ブロック番号「Ｒ１００」の非差分ブロックが処理対象の場合、プリンタードライバー実行部４５ｂは、以下の処理を実行する。プリンタードライバー実行部４５ｂは、ブロック番号「Ｒ１００」の非差分ブロックについて、検出された近接差分矩形番号の全てを取得する。図９（Ｃ）、図１０（Ａ）〜図１０（Ｃ）に示すように、ブロック番号「Ｒ１００」の非差分ブロックについては、上方向番号として「Ｓ１２」が検出され、左方向番号として「Ｓ１６」が検出される。従って、プリンタードライバー実行部４５ｂは、「Ｓ１２」と、「Ｓ１６」とを取得する。
次いで、プリンタードライバー実行部４５ｂは、取得した２つの近接差分矩形番号の組み合わせを、結合処理候補として抽出する。ここで、抽出した結合処理候補は、結合処理によって、新たな差分矩形として、結合することが可能な２つの差分矩形の組み合わせを示す。結合処理とは、２つの差分矩形を含んだ、最小の矩形の画像データ（新たな差分矩形）を生成する処理をいう。具体的には、図９（Ｂ）に示すように、差分矩形番号「Ｓ１２」の差分矩形と、差分矩形番号「Ｓ１６」の差分矩形とは、結合処理により、ブロック番号がＲ７８、Ｒ７９、Ｒ８０、Ｒ８８、Ｒ８９、Ｒ９０、Ｒ９８、Ｒ９９、Ｒ１００のブロックからなる新たな差分矩形ＧＧ１として、結合が可能である。
このように、検出された近接差分矩形番号が２つの非差分ブロックについては、１つの結合処理候補が抽出される。
【００５３】
また例えば、ブロック番号「Ｒ２２」の非差分ブロックが処理対象の場合、プリンタードライバー実行部４５ｂは、以下の処理を実行する。プリンタードライバー実行部４５ｂは、ブロック番号「Ｒ２２」の非差分ブロックについて、検出された近接差分矩形番号の全てを取得する。図９（Ｃ）、図１０（Ａ）〜図１０（Ｃ）に示すように、ブロック番号「Ｒ２２」の非差分ブロックについては、上方向番号として「Ｓ１」が検出され、下方向番号として「Ｓ１３」が検出され、右方向番号として「Ｓ２」が検出される。従って、プリンタードライバー実行部４５ｂは、「Ｓ１」と、「Ｓ２」と、「Ｓ１３」とを取得する。
次いで、プリンタードライバー実行部４５ｂは、取得した３つの近接差分矩形番号に基づいて、「Ｓ１」と「Ｓ２」との組み合わせ、「Ｓ１」と「Ｓ１３」との組み合わせ、及び、「Ｓ２」と「Ｓ１３」との組み合わせの、３つ（3Ｃ2＝３）の組み合わせを、結合処理候補として抽出する。ここで、抽出した結合処理候補は、後述する結合処理によって、新たな差分矩形として、結合することが可能な２つの差分矩形の組み合わせを示す。
このように、検出された近接差分矩形番号が３つの非差分ブロックについては、３つの結合処理候補が抽出される。
【００５４】
また例えば、ブロック番号「Ｒ５５」の非差分ブロックが処理対象の場合、プリンタードライバー実行部４５ｂは、以下の処理を実行する。プリンタードライバー実行部４５ｂは、ブロック番号「Ｒ５５」の非差分ブロックについて、検出された近接差分矩形番号の全てを取得する。図９（Ｃ）、図１０（Ａ）〜図１０（Ｃ）に示すように、ブロック番号「Ｒ５５」の非差分ブロックについては、上方向番号として「Ｓ２」が検出され、下方向番号として「Ｓ１０」が検出され、右方向番号として「Ｓ７」が検出され、右方向番号として「Ｓ９」が検出される。従って、プリンタードライバー実行部４５ｂは、「Ｓ２」と、「Ｓ７」と、「Ｓ９」と、「Ｓ１０」とを取得する。
次いで、プリンタードライバー実行部４５ｂは、取得した４つの近接差分矩形番号に基づいて、「Ｓ２」と「Ｓ７」との組み合わせ、「Ｓ２」と「Ｓ９」との組み合わせ、「Ｓ２」と「Ｓ１０」との組み合わせ、「Ｓ７」と「Ｓ９」との組み合わせ、「Ｓ７」と「Ｓ１０」との組み合わせ、「Ｓ９」と「Ｓ１０」との組み合わせの、６つ（4Ｃ2＝６）の組み合わせを、結合処理候補として抽出する。ここで、抽出した結合処理候補は、後述する結合処理によって、新たな差分矩形として、結合することが可能な２つの差分矩形の組み合わせを示す。
このように、検出された近接差分矩形番号が４つの非差分ブロックについては、６つの結合処理候補が抽出される。
【００５５】
以上のようにしてプリンタードライバー実行部４５ｂは、非差分ブロックのうち、近接差分矩形番号が２つ以上検出されたものについて、順に、１つずつ処理対象とし、各非差分ブロックの結合処理候補を抽出する。なお、同一の差分矩形番号の組み合わせに係る結合処理候補が、複数、抽出される場合があるが、この場合は、１つの結合処理候補とする。
この結果、結合処理候補抽出処理により、１又は複数の結合処理候補が抽出される。
【００５６】
次いで、プリンタードライバー実行部４５ｂは、基準処理時間値を算出する（ステップＳＣ９）。
基準処理時間値とは、後述する結合処理を実行せずに、差分矩形をインクジェットプリンター５に送信した場合のプリンター処理時間値である。
プリンター処理時間値とは、インクジェットプリンター５が、ホストコンピューター１から受信した差分矩形に基づく印刷に係る処理（後述）を実行するときの、処理に要する時間の長さの度合いを示す値である。プリンター処理時間値の値が大きいほど、処理に要する時間が長い。
プリンター処理時間値は、以下の計算式により求められる。「プリンター処理時間値＝（係数Ｋ１×（差分矩形の数））＋（係数Ｋ２×（差分矩形の合計面積））」。なお、差分矩形の合計面積は、全ての差分矩形を構成するブロックの数である。
【００５７】
ここで、後に詳述するように、インクジェットプリンター５のプリンター制御部２７は、記憶画像データＧＤ３に、差分矩形を画像バッファーに重ねて展開し、画像バッファーに展開したデータに基づいて印刷を行なう。この処理は、差分矩形の数によって、また、差分矩形の合計面積によって、処理に要する時間が変動する。そして、プリンター処理時間値を、上述した計算式により求めることによって、プリンター処理時間値の値を、差分矩形の数、及び、差分矩形の合計面積を反映した値とすることができる。なお、係数Ｋ１、及び、係数Ｋ２は、インクジェットプリンター５のＣＰＵやメモリー等の処理資源のスペックや、処理の方法、装置の個体差等の処理特性に基づいて、プリンター処理時間値に、差分矩形の数、及び、差分矩形の合計面積が適切に反映されるよう、事前のテストやシミュレーションに基づいて設定される。
【００５８】
上述したように、図９（Ｂ）は、結合処理が行なわれる前の、差分矩形の状態の一例を示す。この場合、プリンタードライバー実行部４５ｂは、図９（Ｂ）に示す差分矩形の状態に基づいて、基準処理時間値を求める。ここで、図９（Ｂ）の場合、差分矩形の数は「１６」であり、差分矩形の面積は、「３１」である。「係数Ｋ１＝２」であり、「係数Ｋ２＝１」であるとすると、基準処理時間値は、「２（係数Ｋ１）×１６（差分矩形の数）＋１（係数Ｋ２）×３１（差分矩形の面積）＝６３」である。
【００５９】
図８に示すように、基準処理時間値の算出後、プリンタードライバー実行部４５ｂは、ステップＳＣ８で抽出した結合処理候補のそれぞれについて、結合処理を行なった場合のプリンター処理時間値を算出し、さらに、プリンター処理時間値から基準処理時間値を引いた値（以下、「基準差」という。）を算出する（ステップＳＣ１０）。
図１１は、ステップＳＣ１０の処理の説明に利用する図である。
図１１では、図９（Ｂ）に示す処理対象画像データＧＤ１に基づいて抽出された結合処理候補と、各結合処理候補のプリンター処理時間値と、基準差との関係を示す。
以下の図１１を用いた説明では、「係数Ｋ１＝２」、「係数Ｋ２＝１」である。
図１１に示すように、本例では、結合処理候補が、複数、抽出される。図１１に示す第１候補は、差分矩形番号「Ｓ４」と、差分矩形番号「Ｓ６」との組み合わせを示す結合処理候補である。差分矩形番号「Ｓ４」の差分矩形と、差分矩形番号「Ｓ６」の差分矩形とを結合処理により結合した場合、図９（Ｂ）に示すように、新たな差分矩形ＧＧ２となる。そして、図９（Ｂ）に示すように、差分矩形を結合して新たな差分矩形ＧＧ２とした後の、差分矩形の数の合計は、「１４」（新たな差分矩形ＧＧ２の数＝１、既存の差分矩形の数＝１３）である。また、差分矩形の合計面積は、「３３」である。以上を踏まえ、プリンタードライバー実行部４５ｂは、第１候補について、以下の計算により、プリンター処理時間値として、「６１」を算出する。「２（係数Ｋ１）×１４（差分矩形の数）＋１（係数Ｋ２）×３３（差分矩形の面積）＝６１（プリンター処理時間値）」。
また、プリンタードライバー実行部４５ｂは、第１候補について、基準差として、「−２」（プリンター処理時間値「６１」−基準処理時間値「６３」＝「−２」）を算出する。
【００６０】
以上のようにして、ステップＳＣ１０で、プリンタードライバー実行部４５ｂは、ステップＳＣ８で抽出した結合処理候補のそれぞれについて、結合処理を行なって新たな差分矩形を生成した場合のプリンター処理時間値と基準差とを算出する。
【００６１】
次いで、プリンタードライバー実行部４５ｂは、基準差がマイナス（プリンター処理時間値の方が基準処理時間値よりも小さい）の結合処理候補について、基準差が小さいものから順に、以下の手順で、結合処理を実行する（ステップＳＣ１１）。
図１１の例では、基準差がマイナスの第１候補〜第９候補が、結合処理の対象となる。一方、基準差がマイナスでない第１０候補以降の結合処理候補については、結合処理の対象とならない。
基準差がマイナスの結合処理候補を、結合処理の対象とする理由は以下である。すなわち、ある１の結合処理候補について、基準差がマイナスということは、当該１の結合処理候補に基づく結合処理を実行することによって、しない場合と比較して、インクジェットプリンター５の処理時間を低減できるからである。
【００６２】
図１１の例では、ステップＳＣ１１で、まず、プリンタードライバー実行部４５ｂは、第１候補の結合処理候補に基づいて結合処理を実行する。
図１２（Ａ）は、第１候補の結合処理候補に基づく結合処理の実行後の処理対象画像データＧＤ１を示す図である。図１２（Ａ）に示すように、プリンタードライバー実行部４５ｂは、差分矩形番号「Ｓ４」の差分矩形と、差分矩形番号「Ｓ６」の差分矩形とを結合処理により結合して、ブロック番号がＲ１９、Ｒ２０、Ｒ２９、Ｒ３０、Ｒ３９、Ｒ４０のブロックからなる新たな差分矩形を生成する。上述したように、結合処理は、２つの差分矩形を含み、最小の矩形の画像データである新たな差分矩形を生成する処理である。
次いで、プリンタードライバー実行部４５ｂは、生成した新たな差分矩形に、一意な差分矩形番号を割り振る。図１２（Ａ）の例では、新たな差分矩形に、差分矩形番号として「Ｓ１７」が割り振られる。
【００６３】
第１候補に基づく以上の処理の結果、図１２（Ａ）に示すように、差分矩形番号が「Ｓ４」、「Ｓ５」、「Ｓ６」の差分矩形が無くなる。これを踏まえ、プリンタードライバー実行部４５ｂは、未処理の結合処理候補のうち、差分矩形番号が「Ｓ４」、「Ｓ５」、「Ｓ６」の差分矩形の結合を伴う結合処理候補については、処理対象から除外する。図１１の例では、プリンタードライバー実行部４５ｂは、第２候補、第３候補、第４候補、及び、第５候補を、処理対象から除外する。
次いで、プリンタードライバー実行部４５ｂは、処理対象から除外されなかった第６候補に基づく結合処理を実行する。
以上のようにして、プリンタードライバー実行部４５ｂは、基準差がマイナス（プリンター処理時間値の方が基準処理時間値よりも小さい）の結合処理候補について、基準差が小さいものから順に、結合処理を実行する。
【００６４】
図１２（Ｂ）は、図１１に示す結合処理候補に基づく結合処理を完了した後の処理対象画像データＧＤ１の様子を示す図である。
図１１に示すように、図１１に示す結合処理候補に基づく結合処理の結果、新たに、差分矩形番号が「Ｓ１７」、「Ｓ１８」、「Ｓ１９」、「Ｓ２０」、「Ｓ２１」の差分矩形が生成される。
【００６５】
ステップＳＣ１１の結合処理の実行後、プリンタードライバー実行部４５ｂは、結合処理の実行後の差分矩形に基づいて、ステップＳＣ４〜ステップＳＣ８で説明した手順で、結合処理候補を抽出する（ステップＳＣ１２）。本例では、プリンタードライバー実行部４５ｂは、図１２（Ｂ）に示す差分矩形に基づいて、結合処理候補を算出する。
【００６６】
次いで、プリンタードライバー実行部４５ｂは、ステップＳＣ９で説明した手順で、基準処理時間値を算出する（ステップＳＣ１３）。
【００６７】
次いで、プリンタードライバー実行部４５ｂは、ステップＳＣ１０で説明した手順で、抽出した結合処理候補のそれぞれについて、プリンター処理時間値、及び、基準差を算出する（ステップＳＣ１４）。
【００６８】
次いで、プリンタードライバー実行部４５ｂは、基準差がマイナスの結合処理候補があるか否かを判別する（ステップＳＣ１５）。
【００６９】
基準差がマイナスの結合処理候補がある場合（ステップＳＣ１５：ＹＥＳ）、プリンタードライバー実行部４５ｂは、処理手順をステップＳＣ１１へ戻し、対応する結合処理候補に基づく結合処理を実行する。
このように、プリンタードライバー実行部４５ｂは、結合処理候補の検出→基準差がマイナスの結合処理候補に基づく結合処理を、基準差がマイナスの結合処理候補が検出されなくなるまで、繰り返し、実行する。
【００７０】
基準差がマイナスの結合処理候補が無い場合（ステップＳＣ１５：ＮＯ）、結合処理を行なっても、インクジェットプリンター５の処理時間を減らすことはできないため、プリンタードライバー実行部４５ｂは、処理手順をステップＳＣ１６に移行する。
【００７１】
ステップＳＣ１６において、プリンタードライバー実行部４５ｂは、最終的に生成された差分矩形のそれぞれについて、所定の圧縮方式で圧縮し、圧縮した差分矩形を、差分矩形の位置を示す位置情報と対応付けて所定の記憶領域に記憶する（ステップＳＣ１６）。
以上により、ブロック圧縮処理が完了する。
【００７２】
図５（Ａ）に示すように、ステップＳＡ１７でブロック圧縮処理を実行した後、プリンタードライバー実行部４５ｂは、制御データを生成する（ステップＳＡ１８）。
ステップＳＡ１８で生成される制御データは、ステップＳＡ１４で生成した画像データ識別情報ＤＣ（処理対象画像データＧＤ１の識別情報）を含む。制御データに含まれる処理対象画像データＧＤ１の識別情報を示す画像データ識別情報ＤＣは、「印刷画像データ識別情報ＤＣ１」である。
また、ステップＳＡ１８で生成される制御データは、ステップＳＡ１３のハッシュ値比較処理で選択した比較画像データハッシュ値情報Ｊ１に含まれる画像データ識別情報ＤＣ（比較画像データＧＤ２の識別情報）を含む。以下、制御データに含まれる比較画像データＧＤ２の識別情報を示す画像データ識別情報ＤＣを、「選択画像データ識別情報ＤＣ２」と表現し、印刷画像データ識別情報ＤＣ１と区別する。
また、ステップＳＡ１８で生成される制御データは、ステップＳＡ１７のブロック圧縮処理で圧縮された差分矩形と、各差分矩形の位置を示す位置情報との組合せを含む。
図１２（Ｂ）が最終的な差分矩形の状態の場合、プリンタードライバー実行部４５ｂは、差分矩形番号が「Ｓ１」、「Ｓ２」、「Ｓ３」、「Ｓ７」、「Ｓ９」、「Ｓ１７」、「Ｓ１８」、「Ｓ１９」、「Ｓ２０」、「Ｓ２１」の差分矩形のそれぞれについて、圧縮したデータと、各差分矩形の位置を示す位置情報との組合せを、制御データに含める。
【００７３】
次いで、プリンタードライバー実行部４５ｂは、インターフェース４９を制御して、制御データを送信する（ステップＳＡ１９）。
このように、本実施形態では、制御データに、処理対象画像データＧＤ１の全てが含まれるのではなく、比較画像データＧＤ２とハッシュ値が相違し、また、ハッシュ値が一致してブロック画像データが相違するブロックの画像データが含まれる。このため、制御データのデータ量を低減することができる。
【００７４】
次いで、プリンタードライバー実行部４５ｂは、アプリケーション実行部４５ａが出力した全ての印刷画像データに基づく制御データの送信が完了したか否かを判別する（ステップＳＡ２０）。完了した場合（ステップＳＡ２０：ＹＥＳ）、プリンタードライバー実行部４５ｂは、処理を終了する。完了していない場合（ステップＳＡ２０：ＮＯ）、プリンタードライバー実行部４５ｂは、処理対象画像データＧＤ１に基づく比較画像データハッシュ値情報Ｊ１を生成し、所定の記憶領域（記憶部）に記憶する（ステップＳＡ２１）。
ステップＳＡ２１で生成され、記憶される比較画像データハッシュ値情報Ｊ１は、ステップＳＡ１４で生成した処理対象画像データＧＤ１の画像データ識別情報ＤＣと、比較画像データＧＤ２としての処理対象画像データＧＤ１と、ステップＳＡ１２で算出した比較画像としての処理対象画像データＧＤ１の各ブロックのハッシュ値とを対応付けた情報である。
次いで、プリンタードライバー実行部４５ｂは、処理手順をステップＳＡ３に戻す。
【００７５】
図５（Ｂ）に示すように、インクジェットプリンター５のプリンター制御部２７は、ホストコンピューター１から制御データを受信したか否かを監視する（ステップＳＢ１）。
受信した場合（ステップＳＢ１）、プリンター制御部２７は、受信バッファーに格納された１の制御データを読み出す（ステップＳＢ２）。
次いで、プリンター制御部２７は、制御データに、選択画像データ識別情報ＤＣ２が含まれているか否かを判別する（ステップＳＢ３）。
上述したように、ステップＳＡ１９でホストコンピューター１が送信する制御データ（２つ目以降の印刷画像データに基づく制御データ）には、選択画像データ識別情報ＤＣ２が含まれる。
【００７６】
制御データに選択画像データ識別情報ＤＣ２が含まれている場合（ステップＳＢ３：ＹＥＳ）、プリンター制御部２７は、プリンター記憶部５０が記憶する記憶画像データテーブルＴＢ１を参照する（ステップＳＢ９）。記憶画像データテーブルＴＢ１は、後述する記憶画像データＧＤ３（比較画像データ）と、記憶画像データＧＤ３の画像データ識別情報ＤＣと、を対応付けて記憶するテーブルである。記憶画像データテーブルＴＢ１の各レコードの生成方法については、後述する。本実施形態では、記憶画像データＧＤ３は、装置記憶部としてのプリンター記憶部５０に記憶されるが、他の記憶媒体に記憶される構成であってもよい。この場合、他の記憶媒体が装置記憶部に該当する。
次いで、プリンター制御部２７は、制御データに含まれる選択画像データ識別情報ＤＣ２を取得する（ステップＳＢ１０）。
次いで、プリンター制御部２７は、ステップＳＢ１０で取得した選択画像データ識別情報ＤＣ２をキーとして、プリンター記憶部５０が記憶する記憶画像データテーブルＴＢ１で、当該識別情報と対応付けられた記憶画像データＧＤ３を取得する（ステップＳＢ１１）。
後に明らかとなるとおり、ステップＳＢ１１で取得した記憶画像データＧＤ３は、ホストコンピューター１が、ステップＳＡ１３のハッシュ値比較処理で、選択した比較画像データハッシュ値情報Ｊ１に含まれる比較画像データＧＤ２と同一の画像データである。
次いで、プリンター制御部２７は、ステップＳＢ１１で取得した記憶画像データＧＤ３を、画像バッファーに展開する（ステップＳＢ１２）。
次いで、プリンター制御部２７は、制御データに含まれる圧縮された差分矩形のそれぞれを解凍する（ステップＳＢ１３）。
次いで、プリンター制御部２７は、画像バッファーに展開された記憶画像データＧＤ３に対して、解凍後の差分矩形のそれぞれを、各差分矩形に対応する位置情報が示す位置に重畳する（ステップＳＢ１４）。
【００７７】
解凍後の各差分矩形を重畳した後の記憶画像データＧＤ３（以下、「重畳後画像データＧＤ４」という。）は、ステップＳＡ２で読み出した制御データの生成元となった処理対象画像データＧＤ１と同一の画像データである。理由は以下である。上述したように、ホストコンピューター１は、記憶した比較画像データＧＤ２のうち、処理対象画像データＧＤ１と最も近似する比較画像データＧＤ２を選択し、ハッシュ値が異なるブロック、又は、ハッシュ値が一致してブロック画像データが異なるブロックを特定し、特定したブロックに基づく矩形画像を送信する。インクジェットプリンター５は、記憶する複数の記憶画像データＧＤ３（比較画像データ）から、識別情報をキーとして、ホストコンピューター１が選択した比較画像データＧＤ２と同一の記憶画像データＧＤ３（比較画像データ）を選択する。インクジェットプリンター５は、選択した記憶画像データＧＤ３に対して、受信した差分矩形を対応する位置に重畳して重畳後画像データＧＤ４を生成する。このため、重畳後画像データＧＤ４は、比較画像データＧＤ２に対して、比較画像データＧＤ２と処理対象画像データＧＤ１との相違部分が重畳された画像データとなり、処理対象画像データＧＤ１と同一の画像データとなる。
【００７８】
次いで、プリンター制御部２７は、画像バッファーに展開された重畳後画像データＧＤ４に基づいて、対応するラベル部Ｓに画像を印刷する（ステップＳＢ１５）。ステップＳＢ１５でラベル部Ｓに印刷される画像は、アプリケーション実行部４５ａが出力した対応する印刷画像データが示す画像である。
次いで、プリンター制御部２７は、制御データに含まれる印刷画像データ識別情報ＤＣ１を取得する（ステップＳＢ１６）。
次いで、プリンター制御部２７は、プリンター記憶部５０が記憶する記憶画像データテーブルＴＢ１に１件のレコードを生成し、当該レコードにおいて、ステップＳＢ１６で取得した印刷画像データ識別情報ＤＣ１と、重畳後画像データＧＤ４とを対応付けて記憶する（ステップＳＢ１７）。ステップＳＢ１７で記憶された重畳後画像データＧＤ４は、「記憶画像データＧＤ３」に該当する。
ここで、ホストコンピューター１がステップＳＡ２１で記憶した比較画像データハッシュ値情報Ｊ１に含まれる画像データ識別情報ＤＣ及び処理対象画像データＧＤ１の組合せと、記憶画像データテーブルＴＢ１で対応付けられる印刷画像データ識別情報ＤＣ１及び重畳後画像データＧＤ４の組合せとは、一致する。
次いで、プリンター制御部２７は、全ての制御データに基づく印刷が完了したか否かを判別する（ステップＳＢ１８）。完了した場合（ステップＳＢ１８：ＹＥＳ）、プリンター制御部２７は、処理を終了する。完了していない場合（ステップＳＢ１８：ＮＯ）、プリンター制御部２７は、処理手順をステップＳＢ２に戻す。
【００７９】
以上説明したように、本実施形態に係る印刷システム８は、ホストコンピューター１（制御装置）と、インクジェットプリンター５（印刷装置）と、を備える。
ホストコンピューター１は、処理対象の画像データである処理対象画像データを区分して形成されるブロックと、比較用の画像データである比較画像データを区分して形成されるブロックと、を比較し、データの内容が異なる処理対象画像データのブロックを差分ブロックとして特定し、１又は複数の差分ブロックを含む矩形の差分矩形を生成し、生成した差分矩形を送信する一方、差分矩形の生成に際し、差分矩形の数、及び、差分矩形の合計面積に基づいて、差分矩形の生成方法を決定するホスト制御部４５を有する。
インクジェットプリンター５は、ラインインクジェットヘッド１２（印刷部）、比較画像データを記憶するプリンター記憶部５０（装置記憶部）、及び、プリンター記憶部５０が記憶する比較画像データとホストコンピューター１から受信した差分矩形とに基づいてラインインクジェットヘッド１２に印刷させるプリンター制御部２７（装置制御部）を有する。
この構成によれば、ホストコンピューター１からインクジェットプリンター５に対して、差分矩形が送信されるため、送信されるデータのデータ量を減少させることができる。また、差分矩形を生成する際に、インクジェットプリンター５の処理時間に影響を与える差分矩形の数、及び、差分矩形の合計面積に基づく生成方法で、差分矩形が生成されるため、データ量の減少に伴うインクジェットプリンター５の処理負荷の増大を抑制できる。
【００８０】
また、本実施形態では、ホストコンピューター１のホスト制御部４５は、差分矩形の数、差分矩形の合計面積、及び、インクジェットプリンター５の処理特性に基づいて、差分矩形の生成方法を決定する。
この構成によれば、インクジェットプリンター５の処理時間に影響を与えるインクジェットプリンター５の処理特性に基づく生成方法で、差分矩形が生成されるため、より効果的に、データ量の減少に伴うインクジェットプリンター５の処理負荷の増大を抑制できる。
【００８１】
また、本実施形態では、ホストコンピューター１のホスト制御部４５は、差分矩形を圧縮して、インクジェットプリンター５に送信する。インクジェットプリンター５のプリンター制御部２７は、前記差分矩形を解凍する。
この構成によれば、差分矩形が圧縮されて送信されるため、より効果的に、ホストコンピューター１が送信するデータのデータ量を減少できる。
【００８２】
なお、上述した実施の形態は、あくまでも本発明の一態様を示すものであり、本発明の範囲内で任意に変形および応用が可能である。
上述した実施形態では、ホストコンピューター１、及び、インクジェットプリンター５は、複数のラベル部Ｓに連続して印刷する画像の画像データに基づく印刷画像データを累積的に記憶する構成であった。一方、事前に、各装置が、所定の画像データを比較画像データとして記憶する構成であってもよい。
また、上述した実施形態では、インクジェットプリンター５が比較画像データとして、重畳後画像データＧＤ４を記憶する構成であった。一方で、インクジェットプリンター５が制御データに含まれるブロックの画像データを、比較画像データとして記憶する構成であってもよい。
また、上述した実施形態では、アプリケーション実行部４５ａが印刷画像データを生成する構成であったが、プリンタードライバー実行部４５ｂが印刷画像データを生成する構成であってもよい。
また、上述した実施形態で説明した処理を特定の動作モードの場合に実行する構成であってもよい。
【符号の説明】
【００８３】
１…ホストコンピューター（制御装置）、５…インクジェットプリンター（印刷装置）、８…印刷システム、１２…ラインインクジェットヘッド（印刷部）、２７…プリンター制御部（装置制御部）、４５…ホスト制御部（制御部）、５０…プリンター記憶部（装置記憶部）。
【図１】
2016038707.tif 000003
【図２】
2016038707.tif 000004
【図３】
2016038707.tif 000005
【図４】
2016038707.tif 000006
【図５】
2016038707.tif 000007
【図６】
2016038707.tif 000008
【図７】
2016038707.tif 000009
【図８】
2016038707.tif 000010
【図９】
2016038707.tif 000011
【図１０】
2016038707.tif 000012
【図１１】
2016038707.tif 000013
【図１２】
2016038707.tif 000014