(57)【要約】【課題】画像データを印刷データに変換するのに要する時間を短くすることを課題とする。【解決手段】ジョブ管理モジュール３４は、印刷設定及びモデル情報に基づいて、画像データが示す画像を回転させるか否かを判断する（Ｓ５２）。ジョブ管理モジュール３４は、画像を回転させないと判断すると（Ｓ５２：Ｎｏ）、解凍ＩＣから変換ＩＣに接続線を通じて解凍ページデータを直接入力させる連動解凍指示（Ｓ６３）を解凍モジュール３６に入力する。また、ジョブ管理モジュール３４は、変換ＩＣが出力した印刷データを、変換モジュール３８に出力させる。したがって、解凍ページデータをメモリに書き込む時間、及びメモリから解凍ページデータを読み出す時間の分だけ印刷データの生成に要する時間を短くすることができる。【選択図】図４
2020135611.tif 000002
【特許請求の範囲】
【請求項１】
コントローラを備えており、
前記コントローラは、
メモリと、
コンピュータと、
前記コンピュータによって実行される複数のモジュールを含むプログラムと、
入力されたデータを変換して出力する第１電子回路と、
入力されたデータを変換して出力する電子回路であって、前記第１電子回路とは異なる変換を行い、かつ、前記第１電子回路と接続線によって接続された第２電子回路と、を有しており、
前記複数のモジュールは、
画像データ及び印刷設定の入力を受け付ける受付処理を前記コンピュータに実行させる受付モジュールと、
前記画像データ及び前記印刷設定に基づくジョブをジョブ管理モジュールに登録するジョブ登録処理を前記コンピュータに実行させる登録モジュールと、
登録された前記ジョブが示す前記画像データを変換して印刷データを生成して出力し、登録された前記ジョブを処理するジョブ処理を前記コンピュータに実行させる前記ジョブ管理モジュールと、であり、
前記ジョブ管理モジュールは、
前記画像データに応じた変換対象データを前記第１電子回路を用いて第１変換データに変換する第１変換処理を前記コンピュータに実行させる第１サブモジュールと、
前記第１変換データを第２変換データに変換する第２変換処理を前記コンピュータに実行させる第２サブモジュールと、
前記第２変換データを前記第２電子回路を用いて前記印刷データに変換する第３変換処理を前記コンピュータに実行させる第３サブモジュールと、
前記印刷データを出力する出力処理を前記コンピュータに実行させる第４サブモジュールと、を有しており、
前記ジョブ管理モジュールは、
前記第２サブモジュールに前記第２変換処理を実行させるか否かを、登録された前記ジョブが示す前記印刷設定と、前記メモリに記憶された設定情報との少なくとも一方に基づいて判断する判断処理と、
前記第２変換処理を実行すると判断したことに応じて、前記第１変換処理を実行して前記第１変換データを前記メモリに記憶させる第１指示を前記第１サブモジュールに入力し、前記第２変換処理を実行し、前記第２変換データを前記メモリに記憶させる第２指示を前記第２サブモジュールに入力し、前記第３変換処理を実行して前記印刷データを出力させる第３指示を前記第３サブモジュールに入力する非連動指示処理と、
前記第２変換処理を実行しないと判断したことに応じて、前記第１変換処理を実行し、前記第１変換データを前記接続線を通じて前記第２電子回路に入力させる第１連動指示を前記第１サブモジュールに入力し、前記第２電子回路が変換した後のデータに基づく前記印刷データを出力させる第２連動指示を前記第３サブモジュールに入力する連動指示処理と、を前記コンピュータに実行させるプリンタ。
【請求項２】
前記受付モジュールは、前記受付処理において、圧縮された前記画像データである圧縮画像データの入力を受け付け、
前記第１サブモジュールは、前記第１変換処理において、前記圧縮画像データを分割して得られる部分圧縮データを解凍して解凍部分データを出力する変換を前記第１電子回路に実行させ、前記部分圧縮データは、前記変換対象データであり、前記解凍部分データは、前記第１変換データである請求項１に記載のプリンタ。
【請求項３】
前記登録モジュールは、
前記圧縮画像データが有する複数の単位データがそれぞれ示す画素数をカウントし、カウント値に基づいて、複数の前記部分圧縮データ間の区切りとなる前記単位データを決定する決定処理を前記コンピュータに実行させ、
前記ジョブ管理モジュールは、
前記決定処理で決定した前記単位データに基づいて、前記圧縮画像データを複数の前記部分圧縮データに分割し、分割した複数の前記部分圧縮データのうちの一の前記部分圧縮データを前記メモリの指定領域に記憶させる分割処理を、前記コンピュータに繰り返して実行させる第５サブモジュールをさらに有する請求項２に記載のプリンタ。
【請求項４】
前記登録モジュールは、
前記圧縮画像データが有する複数の単位データがそれぞれ示す画素数をカウントし、カウント値に基づいて、複数の前記部分圧縮データ間の区切りとなる前記単位データを決定する決定処理と、
前記決定処理で決定した前記単位データに基づいて、前記圧縮画像データを複数の前記部分圧縮データに分割し、分割した複数の前記部分圧縮データを前記メモリの指定領域に記憶させる分割処理と、を前記コンピュータに実行させる請求項２に記載のプリンタ。
【請求項５】
前記登録モジュールは、前記ジョブ登録処理において、前記画像データに含まれるページに基づくページジョブを前記ジョブ管理モジュールにさらに登録し、
前記ジョブ管理モジュールは、
前記印刷設定に基づいて、１ページ分のデータサイズを取得し、前記第２連動指示を入力した前記第３サブモジュールが出力する前記印刷データが、１ページ分のデータサイズになったことに応じて、登録された前記ページジョブを終了させるページジョブ終了処理を前記コンピュータに実行させる請求項１から４のいずれかに記載のプリンタ。
【請求項６】
前記第２変換処理は、前記部分圧縮データが示す画像の向きを変更する処理である請求項２から５のいずれかに記載のプリンタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを印刷データに変換して印刷を行うプリンタに関する。
【背景技術】
【０００２】
パーソナルコンピュータなどの端末装置にインストールされたプリンタドライバから、ＰＤＬ（Page Description Languageの略）などで記述された印刷データを受信し、受信した印刷データをシートに印刷するプリンタがある（例えば、特許文献１参照）。
【０００３】
パーソナルコンピュータなどの端末装置にインストールされたプリンタドライバは、端末装置のメモリのＲＡＭを用いて、印刷が指示された画像データを、プリンタが印刷を実行可能な形式の印刷データに変換して出力する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−１３４７１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年は、プリンタドライバを介さずに、端末装置から画像データを受信して印刷するプリンタが望まれつつある。すなわち、端末装置から画像データを受信し、受信した画像データを印刷データに変換して印刷を行えるプリンタが望まれつつある。
【０００６】
本発明は、画像データを印刷データに変換するのに要する時間を短くすることを目的とする。
【課題を解決するための手段】
【０００７】
本明細書では様々な開示を行う。開示例のプリンタは、メモリと、コントローラと、を備える。前記コントローラは、コンピュータと、前記コンピュータによって実行される複数のモジュールを含むプログラムと、入力されたデータを変換して出力する第１電子回路と、入力されたデータを変換して出力する電子回路であって、前記第１電子回路とは異なる変換を行い、かつ、前記第１電子回路と接続線によって接続された第２電子回路と、を有する。前記複数のモジュールは、画像データ及び印刷設定の入力を受け付ける受付処理を前記コンピュータに実行させる受付モジュールと、前記画像データ及び前記印刷設定に基づくジョブをジョブ管理モジュールに登録するジョブ登録処理を前記コンピュータに実行させる登録モジュールと、登録された前記ジョブが示す前記画像データを変換して印刷データを生成して出力し、登録された前記ジョブを処理するジョブ処理を前記コンピュータに実行させる前記ジョブ管理モジュールと、である。前記ジョブ管理モジュールは、前記画像データに応じた変換対象データを前記第１電子回路を用いて第１変換データに変換する第１変換処理を前記コンピュータに実行させる第１サブモジュールと、前記第１変換データを第２変換データに変換する第２変換処理を前記コンピュータに実行させる第２サブモジュールと、前記第２変換データを前記第２電子回路を用いて前記印刷データに変換する第３変換処理を前記コンピュータに実行させる第３サブモジュールと、前記印刷データを出力する出力処理を前記コンピュータに実行させる第４サブモジュールと、を有する。前記ジョブ管理モジュールは、前記第２サブモジュールに前記第２変換処理を実行させるか否かを、登録された前記ジョブが示す前記印刷設定と、前記メモリに記憶された設定情報との少なくとも一方に基づいて判断する判断処理と、前記第２変換処理を実行すると判断したことに応じて、前記第１変換処理を実行して前記第１変換データを前記メモリに記憶させる第１指示を前記第１サブモジュールに入力し、前記第２変換処理を実行し、前記第２変換データを前記メモリに記憶させる第２指示を前記第２サブモジュールに入力し、前記第３変換処理を実行して前記印刷データを出力させる第３指示を前記第３サブモジュールに入力する非連動指示処理と、前記第２変換処理を実行しないと判断したことに応じて、前記第１変換処理を実行し、前記第１変換データを前記接続線を通じて前記第２電子回路に入力させる第１連動指示を前記第１サブモジュールに入力し、前記第２電子回路が変換した後のデータに基づく前記印刷データを出力させる第２連動指示を前記第３サブモジュールに入力する連動指示処理と、を前記コンピュータに実行させる。
【０００８】
ジョブ管理モジュールは、印刷設定と設定情報との少なくとも一方に基づいて、第２変換処理を実行するか否かを判断する。第２変換処理は、例えば、画像データが示す画像の向きを変更する処理や、画像に余白を付加したり、余白を削除したり、或いは、余白の幅を変更したりする処理や、印刷を実行する日時などを追加したりする処理などであって、印刷設定や設定情報によって実行の要否が変わる処理である。ジョブ管理モジュールは、第２変換処理を実行すると判断すると、第１サブモジュール、第２サブモジュール、及び第３サブモジュールにそれぞれ指示を入力し、第１変換処理、第２変換処理、及び第３変換処理を実行させて画像データを印刷データ変換させる。一方、ジョブ管理モジュールは、第２変換処理を実行しないと判断すると、第１連動指示を第１サブモジュールに入力し、第２連動指示を第３サブモジュールに入力する。第１連動指示を入力された第１サブモジュールは、変換した第１変換データを接続線を通じて第２電子回路に入力する。第２電子回路は、第１変換データを変換して出力する。第３サブモジュールは、第２電子回路が出力するデータに基づく印刷データを出力する。したがって、第２変換処理が必要でない場合には、印刷データの生成に要する時間が短くなる。詳しく説明すると、第２変換処理が必要でない場合において、第１変換処理によって変換された第１変換データがメモリに記憶され、第３サブモジュールが第１変換データをメモリから読み出して第２変換データに変換すると、メモリへの第１変換データの書き込み、及び、第１変換データのメモリからの読み出しに時間を要する。開示例のプリンタでは、第１変換データは第１電子回路から第２電子回路に直接入力される。したがって、開示例のプリンタでは、メモリへの第１変換データの書き込み、及び、第１変換データのメモリからの読み出しに要する時間の分だけ、印刷データの生成に要する時間を短縮することができる。
【図面の簡単な説明】
【０００９】
【図１】図１（Ａ）は、プリンタ１０の構成を示す図であり、図１（Ｂ）は、制御プログラム２７の構成を示す図である。
【図２】図２は、受け付けた圧縮画像データを印刷データに変換して出力するまでに登録モジュール３３及びジョブ管理モジュール３４が実行する処理を示す図である。
【図３】図３は、解析処理を示すフローチャートである。
【図４】図４は、ページジョブ処理を説明する図である。
【図５】図５は、画像における画素を示す図である。
【図６】図６は、部分圧縮データを説明する説明図である。
【図７】図７は、部分圧縮データを分割部分圧縮データに分割する処理を説明する説明図である。
【発明を実施するための形態】
【００１０】
以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明される実施形態は開示例にすぎず、本発明の要旨を変更しない範囲で適宜変更できることは言うまでもない。例えば、後述する各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更することができる。
【００１１】
本実施形態では、図１に示されるプリンタ１０を説明する。プリンタ１０は、パーソナルコンピュータなどの情報処理装置に実装されたプリンタドライバが生成した印刷データを受け付けて印刷を実行可能なだけでなく、圧縮された画像データである圧縮画像データを受け付けて印刷を実行可能なプリンタである。すなわち、プリンタ１０は、プリンタドライバが実装された情報処理装置だけでなく、プリンタドライバが実装されていない情報処理装置からも、印刷の実行指示を受け付けることができるプリンタである。
【００１２】
プリンタ１０は、インク滴をシートに吐出してシートに印刷を行う、いわゆるインクジェットプリンタであってもよいし、ドラムに付着させたトナーをシートに押圧して印刷を行う、いわゆるレーザプリンタであってもよいし、フィルムインクを用いてシートに印刷を行う、いわゆるサーマルプリンタであってもよい。すなわち、プリンタ１０がシートに対して印刷を行う方式は、どのような方式であってもよい。以下では、プリンタ１０が、いわゆるインクジェットプリンタである例を説明する。
【００１３】
プリンタ１０は、コントローラ１１と、通信Ｉ／Ｆ１２と、ディスプレイ１３と、操作スイッチ１４と、印刷エンジン１５と、を備える。「Ｉ／Ｆ」は、インタフェースを意味する。
【００１４】
通信Ｉ／Ｆ１２は、不図示の通信回線と接続されている。通信回線は、情報処理装置を接続されている。すなわち、通信Ｉ／Ｆ１２は、通信回線を通じて情報処理装置と接続されている。通信回線は、ＵＳＢケーブルや、有線ＬＡＮや、無線ＬＡＮや、ＷＡＮや、インターネットなどである。すなわち、通信回線は、情報処理装置からプリンタ１０に圧縮画像データを送信可能であれば、どのような種類の通信回線であってもよい。なお、ＵＳＢメモリなどの可搬記憶媒体をプリンタ１０に装着して圧縮画像データをプリンタ１０に入力可能であれば、プリンタ１０は、通信回線に接続されていなくてもよい。
【００１５】
ディスプレイ１３は、文字や図形などを表示する表示パネルと、表示パネルに重畳された透明な膜状のタッチセンサと、を有する。すなわち、ディスプレイ１３は、いわゆるタッチパネルである。なお、ディスプレイ１３は、表示パネルのみを有していてもよい。
【００１６】
操作スイッチ１４は、ユーザの操作入力を受け付けるスイッチである。なお、プリンタ１０は、操作スイッチ１４と、ディスプレイ１３のタッチセンサとの一方のみを有していてもよい。
【００１７】
印刷エンジン１５は、給紙トレイと、給送ローラと、搬送ローラと、ヘッド１６と、排出ローラと、排紙トレイと、駆動装置１７と、を有する。駆動装置１７は、例えば一乃至複数のモータを有しており、給送ローラ及び搬送ローラを回転駆動させる。給紙トレイに載置されたシートは、回転駆動された給送ローラによって給紙トレイから給送され、次いで、回転駆動された搬送ローラによって搬送される。シートは、搬送ローラによって搬送されつつ、ヘッド１６からインク滴を吐出され、画像を印刷される。すなわち、印刷エンジン１５は、シートを搬送し、搬送するシートに印刷を行い、印刷を行ったシートを排紙トレイに排出する。
【００１８】
ヘッド１６は、インク滴を吐出する駆動素子１８を有する。駆動素子１８は、例えば、圧電素子やヒータである。圧電素子は、直流電圧を印加されることによって変形し、変形することによってインク滴を吐出する。ヒータは、直流電圧を印加されることによってインクを加熱して突沸させ、インク滴を吐出させる。そして、印刷エンジン１５は、駆動素子１８に直流電圧を印加して駆動させるドライブ回路１９を有する。ドライブ回路１９は、入力された印刷データに応じたタイミング及び電圧値で駆動素子１８に直流電圧を印加する。
【００１９】
コントローラ１１は、中央演算処理装置であるＣＰＵ２１と、プログラムや情報やデータを記憶するメモリ２２と、通信バス２３と、種々のＩＣとを備える。ＣＰＵ２１は、コンピュータの一例である。
【００２０】
コントローラ１１は、例えば、パターン回路基板と、パターン回路基板に実装されたマイクロコンピュータや種々のＩＣやコンデンサやダイオードなどの種々の電子部品によって実現される。種々のＩＣは、図１（Ｂ）に示される解凍ＩＣ４１及び変換ＩＣ４２を含む。解凍ＩＣ４１及び変換ＩＣ４２については後述する。
【００２１】
ＣＰＵ２１及びメモリ２２は、通信バス２３と接続されている。ＣＰＵ２１は、メモリ２２に記憶された後述のＯＳ２６及び制御プログラム２７を実行する。ＣＰＵ２１によって実行されるＯＳ２６や制御プログラム２７は、データや情報をメモリ２２から読み出し、或いはメモリ２２に書き込む。詳しくは後述される。
【００２２】
また、通信バス２３は、上述の通信Ｉ／Ｆ１２、ディスプレイ１３、操作スイッチ１４、印刷エンジン１５の駆動装置１７、及びドライブ回路１９と接続されている。すなわち、後述のＯＳ２６及び制御プログラム２７を実行するＣＰＵ２１は、通信Ｉ／Ｆ１２を通じて情報やデータを情報処理装置から受信可能であり、ディスプレイ１３に文字や画像を表示可能であり、ディスプレイ１３のタッチセンサや操作スイッチ１４を通じてユーザの指示を受付可能であり、印刷エンジン１５の駆動装置１７やドライブ回路１９に情報やデータを入力可能である。
【００２３】
メモリ２２は、ＲＯＭ２４及びＲＡＭ２５を有している。ただし、メモリ２２は、ＲＯＭ２４及びＲＡＭ２５の他、ＥＥＰＲＯＭ、ＨＤＤ、ＵＳＢメモリ等の可搬記憶媒体、ＣＰＵ２１が備えるバッファ等を有していてもよい。
【００２４】
メモリ２２は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体である。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体には、上記の例の他に、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の記録媒体も含まれる。また、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体は、ｔａｎｇｉｂｌｅな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙなコンピュータが読み取り可能なストレージ媒体には含まれない。
【００２５】
ＲＯＭ２４は、オペレーティングシステムであるＯＳ２６及び制御プログラム２７を記憶している。制御プログラム２７は、プログラムの一例である。
【００２６】
また、ＲＯＭ２４は、プリンタ１０の仕様を示すモデル情報２８を記憶する。モデル情報２８は、例えば、プリンタ１０のモデル名や、プリンタ１０が印刷を実行可能なシートのサイズを示す情報や、カラー印刷を実行可能であることを示す情報や、両面印刷を実行可能であることを示す情報や、搬送するシートの向きを示す情報などの情報を含む。搬送するシートの向きを示す情報とは、例えば、Ａ４サイズのシートを搬送する場合、シートの長手方向が搬送向きに沿う縦給紙を行うことを示す情報や、シートの短手方向が搬送向きに沿う横給紙を行うことを示す情報などである。モデル情報２８は、例えば、ＭＩＢ（Management Information Baseの略）情報としてＲＯＭ２４に記憶される。なお、モデル情報２８は、ＥＥＰＲＯＭに記憶されていてもよい。モデル情報２８は、メモリに記憶された設定情報の一例である。
【００２７】
ＲＡＭ２５は、ＯＳ２６や制御プログラム２７の実行に用いられ、また、圧縮画像データから印刷データを生成するための処理の実行に用いられる。詳しくは後述する。
【００２８】
制御プログラム２７は、圧縮された画像データである圧縮画像データを受け付け、受け付けた圧縮画像データを印刷データに変換し、印刷データを上述のドライブ回路１９に出力して印刷エンジン１５に印刷を実行させるプログラムである。
【００２９】
制御プログラム２７は、図１（Ｂ）に示されるように、複数のモジュールと、複数のモジュールの上位に位置するプロトコル階層であるアプリケーション３１と、を有する。複数のモジュールは、受付モジュール３２、登録モジュール３３、ジョブ管理モジュール３４である。ジョブ管理モジュール３４の下位には、分割モジュール３５、解凍モジュール３６、回転モジュール３７、変換モジュール３８、及び印刷制御モジュール３９が設けられている。以下では、受付モジュール３２、登録モジュール３３、ジョブ管理モジュール３４、分割モジュール３５、解凍モジュール３６、回転モジュール３７、変換モジュール３８、及び印刷制御モジュール３９を、受付モジュール３２等と記載して説明することがある。また、分割モジュール３５、解凍モジュール３６、回転モジュール３７、変換モジュール３８、及び印刷制御モジュール３９を分割モジュール３５等と記載して説明することがある。解凍モジュール３６は、第１サブモジュールの一例である。回転モジュール３７は、第２サブモジュールの一例である。変換モジュール３８は、第３サブモジュールの一例である。印刷制御モジュール３９は、第４サブモジュールの一例である。分割モジュール３５は、第５サブモジュールの一例である。
【００３０】
アプリケーション３１及び受付モジュール３２等は、疑似的に並行して実行される。すなわち、アプリケーション３１及び受付モジュール３２等は、いわゆるマルチタスク処理によって実行される。
【００３１】
受付モジュール３２は、画像データを圧縮したデータである圧縮画像データ（図６）を受け付ける受付処理を実行するモジュールである。受付モジュール３２は、通信Ｉ／Ｆ１２を通じて情報処理装置から圧縮画像データを受け付け、或いは、プリンタ１０に装着されたＵＳＢメモリ等から入力された圧縮画像データを受け付ける。受付モジュール３２は、受け付けた圧縮画像データを、ＲＡＭ２５の、アプリケーション３１が指定する所定の記憶領域に記憶させる。
【００３２】
登録モジュール３３は、受付モジュール３２がメモリ２２に記憶させた圧縮画像データを解析して印刷ジョブ登録及びページジョブ登録を行うモジュールである。登録モジュール３３は、受付モジュール３２が圧縮画像データを受け付けたことに応じて、印刷ジョブを後述のジョブ管理モジュール３４に登録する。そして、登録モジュール３３は、圧縮画像データを解凍することなく、圧縮画像データに含まれるページを見つけ出す解析処理（図３）を実行する。登録モジュール３３は、ページを発見したことに応じて、ジョブ管理モジュール３４にページジョブを登録する。詳しくは後述する。
【００３３】
ジョブ管理モジュール３４は、下位の分割モジュール３５等に後述の処理を実行させて、印刷エンジン１５のドライブ回路１９に印刷データ入力する処理を実行する。すなわち、ジョブ管理モジュール３４は、登録された印刷ジョブ及びページジョブを管理及び処理するモジュールである。
【００３４】
分割モジュール３５は、圧縮画像データに基づいて、圧縮画像データを解凍することなく、１ページ分の画像データを圧縮した圧縮データを含む複数の部分圧縮データを生成するモジュールである。詳しく説明すると、複数のページを含む圧縮画像データを解凍して得られる画像データは、画像データが示す画像の解像度によっては、メモリ２２が有するＲＡＭ２５の容量では処理できないことが考えられる。分割モジュール３５は、圧縮画像データの全てを後述の解凍モジュール３６が解凍しないように、圧縮画像データから１ページ分の部分圧縮画像を生成する。そして、分割モジュール３５は、圧縮画像データから１ページ分の部分圧縮データを生成する処理を繰り返して、圧縮画像データに含まれる全てのページの部分圧縮データを生成する。詳しくは後述する。
【００３５】
解凍モジュール３６は、分割モジュール３５が生成した部分圧縮データを解凍するモジュールである。詳しく説明すると、解凍モジュール３６は、メモリ２２のＲＡＭ２５に記憶された部分圧縮データを解凍ＩＣ４１に入力し、解凍ＩＣ４１が出力したデータをＲＡＭ２５に記憶させる処理を実行する。
【００３６】
解凍ＩＣ４１は、画像データの圧縮方法に対応して設計された変換回路を有する。解凍ＩＣ４１は、入力された部分圧縮データを変換回路で処理することにより、解凍する。解凍ＩＣ４１は、解凍した解凍ページデータを出力する。ＩＣを用いて解凍を行う場合、プログラムで解凍を行うよりも、高速で解凍を行うことができる。解凍ＩＣ４１が有する変換回路は、第１電子回路の一例である。解凍ページデータは、解凍部分データの一例である。
【００３７】
なお、複数種類の解凍ＩＣ４１がコントローラ１１に設けられていてもよい。一の種類の解凍ＩＣ４１は、一の圧縮方法に対応する。すなわち、コントローラ１１は、複数種類の圧縮方法で圧縮された圧縮画像データに基づいて印刷データを生成可能であってもよい。
【００３８】
回転モジュール３７は、解凍モジュール３６がメモリ２２に記憶させた解凍ページデータが示す画像を回転させるモジュールである。詳しく説明すると、上述のモデル情報２８が示すシートの搬送向きが横向きである場合、解凍ページデータが示す画像を印刷エンジン１５がシートに印刷するためには、当該画像を９０°回転させる必要がある。また、両面印刷が可能である情報が上述のモデル情報２８に含まれている場合であって、印刷設定が両面印刷を示す場合、解凍ページデータが示す画像を印刷エンジン１５がシートに印刷するためには、シートの裏面に印刷される画像を１８０°回転させる必要がある。回転モジュール３７は、回転が必要な解凍ページデータを変換して、当該解凍ページデータが示す画像を回転させる。なお、回転モジュール３７は、上述の解凍モジュール３６とは異なり、ＩＣを用いずに、プログラムの処理として、画像を回転させる処理を行う。
【００３９】
変換モジュール３８は、解凍モジュール３６が生成した解凍ページデータ、或いは、回転モジュール３７が変換した後の解凍ページデータを印刷データに変換するモジュールである。変換は、例えば、色変換、誤差拡散、５値化などである。
【００４０】
色変換は、解凍ページデータが有するＲＧＢの色データを、印刷エンジン１５が印刷を実行可能なＢＭＣＹの色データに変換することを意味する。ＢＭＣＹとは、ブラック、マゼンタ、シアン、イエローを意味する。
【００４１】
誤差拡散は、２値化手法の１つであって、画質を高めるために実行される変換である。
【００４２】
５値化は、解凍ページデータから、駆動素子１８に印加する直流電圧の電圧値を決定する変換である。電圧値は、例えば、「小」「中」「大」「特大」「ゼロ」である。
【００４３】
変換モジュール３８は、解凍ページデータを変換ＩＣ４２に入力し、変換ＩＣ４２が出力した変換後のデータである印刷データをメモリ２２のＲＡＭ２５に記憶させる。
【００４４】
変換ＩＣ４２は、入力された解凍ページデータを変換する演算を行う変換回路を有する。変換ＩＣ４２は、入力された解凍ページデータを変換回路で処理することにより、上述の色変換や誤差拡散や５値化を行う。変換ＩＣ４２が有する変換回路は、第２電子回路の一例である。
【００４５】
変換ＩＣ４２は、上述の解凍ＩＣ４１と、接続線４３によって接続されている。すなわち、変換ＩＣ４２は、解凍ＩＣ４１から解凍ページデータを直接入力されることも可能であり、かつ、変換モジュール３８によって、回転された後の解凍ページデータを入力されることもできる。接続線４３は、例えば、上述のパターン回路基板が有するパターンである。
【００４６】
なお、変換ＩＣ４２は、色変換を行うＩＣ、誤差拡散を行うＩＣ、及び５値化を行うＩＣの複数のＩＣによって構成されていてもよい。この場合、各ＩＣは、接続線によって接続される。
【００４７】
印刷制御モジュール３９は、印刷データをドライブ回路１９に対して出力し、また、駆動信号を駆動装置１７が有するモータの駆動回路に出力して、印刷エンジン１５に印刷を実行させるモジュールである。
【００４８】
以下、図２から図６を参照して、制御プログラム２７が圧縮画像データから印刷データを生成して出力する処理について説明する。なお、受付モジュール３２、登録モジュール３３、及びジョブ管理モジュール３４は、アプリケーション３１からの指示を受けて以下に説明する各処理を実行する。
【００４９】
本明細書では、基本的に、制御プログラム２７に記述された命令に従ったＣＰＵ２１の処理を説明する。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「取得」、「受付」、「制御」、「設定」等の処理は、ＣＰＵ２１の処理を表している。ＣＰＵ２１による処理は、ＯＳ２６などのコントローラを介したハードウェア制御も含む。なお、「取得」は要求を必須とはしない概念で用いる。すなわち、ＣＰＵ２１が要求することなくデータを受信するという処理も、「ＣＰＵ２１がデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。「命令」「応答」「要求」等の処理は、「命令」「応答」「要求」等を示す情報を通信することにより行われる。また、「命令」「応答」「要求」等の文言を、「命令」「応答」「要求」等を示す情報そのものという意味で記載してもよい。
【００５０】
また、制御プログラム２７に記述された命令に従ったＣＰＵ２１の処理を、省略した文言で記載することがある。例えば、「ＣＰＵ２１が行う」「コントローラ１１が行う」「制御プログラム２７が行う」のように記載することがある。
【００５１】
また、ＣＰＵ２１による、情報Ａは事柄Ｂであることを示しているか否かを判断する処理を、「情報Ａから、事柄Ｂであるか否かを判断する」のように概念的に記載することがある。ＣＰＵ２１による、情報Ａが事柄Ｂであることを示しているか、事柄Ｃであるかを示しているかを判断する処理を、「情報Ａから、事柄Ｂであるか事柄Ｃであるかを判断する」のように概念的に記載することがある。
【００５２】
また、本明細書中の「データ」と「情報」とは、コンピュータによって取り扱い可能なビット或いはビット列である点において共通する。「データ」とは、各ビットが示す意味内容をコンピュータが考慮することなく取り扱えるものを指す。これに対して、「情報」とは、各ビットが示す意味内容によってコンピュータの動作が分岐するものを指す。さらに、「指示」は、送信先の装置に対して次の動作を促すための制御信号であって、情報を含んでいることもあるし、それ自体が情報としての性質を有していることもある。
【００５３】
また、「データ」及び「情報」は、形式（例えば、テキスト形式、バイナリ形式、フラグ形式等）がコンピュータ毎に変更されたとしても、同一の意味内容と認識される限り、同一のデータ及び情報として取り扱われる。例えば、「２つ」であることを示す情報が、あるコンピュータではＡＳＣＩＩコードで”０ｘ３２”というテキスト形式の情報として保持され、別のコンピュータでは二進数表記で”１０”というバイナリ形式の情報として保持されてもよい。
【００５４】
但し、上記の「データ」及び「情報」の区別は厳密なものではなく、例外的な取り扱いも許容される。例えば、データが一時的に情報として扱われてもよいし、情報が一時的にデータとして扱われてもよい。また、ある装置ではデータとして扱われるものが、他の装置では情報として扱われてもよい。さらには、データの中から情報が取り出されてもよいし、情報の中からデータが取り出されてもよい。
【００５５】
また、本明細書中の「に応じて」は、当該文字列の前に記載された条件が満たされた場合に、当該文字列の後に記載された処理が実行されることを示す。なお、処理が実行されるタイミングは、条件が満たされた後であればよく、当該条件が満たされた直後である必要は必ずしもない。
【００５６】
受付モジュール３２は、図２に示されるように、情報処理装置から、ドキュメント情報、ページヘッダ情報、及び各ページの画像を示す画像データ、を圧縮した圧縮画像データ（図６）の入力を受け付ける（Ｓ１１）。ステップＳ１１の処理は、受付処理の一例である。
【００５７】
圧縮データ、ドキュメント情報、及びページヘッダ情報は、１つのまとまったデータである。図６に示される例では、圧縮画像データは、ドキュメント情報、第１ページヘッダ情報、第１ページ画像の圧縮データ、第２ページヘッダ情報、第２ページ画像の圧縮データ、第３ページヘッダ情報、及び第３ページ画像の圧縮データを有する。
【００５８】
ドキュメント情報は、データの種類を判定するためのコマンドなどである。ページヘッダ情報は、印刷設定や解像度を含む情報である。印刷設定は、Ａ４やＡ５などのシートのサイズを示す情報や、普通紙や光沢紙などのシートの種類を示す情報や、片面印刷や両面印刷などの印刷面を示す情報や、モノクロ印刷やカラー印刷などの印刷色を示す情報などである。解像度は、ページの縦方向における画素数及び横方向における画素数を示す情報である。解像度は、例えば、４００（横）×４００（縦）や、６００（横）×６００（縦）である。
【００５９】
受付モジュール３２は、図２に示されるように、受け付けた圧縮画像データをメモリ２２のＲＡＭ２５に記憶させる（Ｓ１２）。
【００６０】
登録モジュール３３は、圧縮画像データがＲＡＭ２５に記憶されたか否かを判断する（Ｓ１３）。登録モジュール３３は、例えば、圧縮画像データが記憶されるＲＡＭ２５の所定の領域を監視することにより（Ｓ１３：Ｎｏ）、圧縮画像データがＲＡＭ２５に記憶されたか否かを判断する。
【００６１】
登録モジュール３３は、圧縮画像データがＲＡＭ２５に記憶されたと判断すると（Ｓ１３：Ｙｅｓ）、印刷ジョブをジョブ管理モジュール３４に登録する（Ｓ１４）。ステップＳ１４の処理は、ジョブ登録処理の一例である。
【００６２】
登録モジュール３３は、印刷ジョブをジョブ管理モジュール３４に登録した後、圧縮画像データに含まれるドキュメント情報を読み込んで取得する（Ｓ１５）。登録モジュール３３は、取得したドキュメント情報に含まれる印刷設定を含むジョブ情報をジョブ管理モジュール３４に通知する（Ｓ１６）。
【００６３】
次に、登録モジュール３３は、圧縮画像データに含まれるページの情報（以下、ページ情報と記載する）を取得する解析処理を実行する（Ｓ１７）。ページ情報は、ジョブ管理モジュール３４にページジョブを登録するために必要である。
【００６４】
ページ情報とは、圧縮画像データに含まれる第１ページや第２ページや第３ページなどを特定する情報である。ページ情報は、例えば、圧縮画像データが有する複数の単位データにおいて、各ページの最後の画素を示す単位データを特定する情報である。例えば、圧縮画像データにおける１バイトから３００バイトまでが第１ページを示し、３０１バイトから５００バイトまでが第２ページを示し、５０１バイトから８００バイトまでが第３ページを示す場合、例えば「３００」、「５００」、「８００」がページ情報となる。なお、ページ情報は、圧縮画像データにおける「３００」や「５００」や「８００」などのデータサイズに限定されるものではなく、各ページを特定可能であれば、他の情報やデータであってもよい。１バイトは、単位データの一例である。
【００６５】
なお、圧縮画像データに含まれるページの総数や、上述のページ情報は、圧縮画像データのドキュメント情報には含まれていない。また、解析モジュール５３は、解析処理において、圧縮画像データの全体の解凍によって生成される画像データ全てを保持する必要なく、ページ情報を取得する。すなわち、圧縮画像データの全体の解凍で得られる画像データすべてを記憶可能なほど大容量のＲＡＭを必要としない。以下、図３を参照して、解析処理について詳しく説明する。
【００６６】
以下では、図５に示す画像を有するページの圧縮画像データを解析する場合を例にして、解析処理を説明する。画像の解像度は、８（横）×１０（縦）である。すなわち、横方向における画素数が「８」で、縦方向における画素数が「１０」である。横方向に並ぶ８個の画素で１つの列が構成され、縦方向に１０個の列が並んでいる。各列を、上から順に第１列、第２列、第３列、第４列、第５列、第６列、第７列、第８列、第９列、第１０列と記載して説明する。
【００６７】
また、以下では、画像データが、packbitsの圧縮方法で圧縮された圧縮画像データである場合について説明する。
【００６８】
図３に示されるように、登録モジュール３３は、解析データサイズＫを初期値のゼロにする（Ｓ３１）。解析データサイズＫは、読み込んで解析が終了した単位データの数を示す。
【００６９】
次に、登録モジュール３３は、取得したドキュメント情報に含まれる解像度に基づいて、縦値Ｂ及び横値Ｃを決定する（Ｓ３２）。縦値Ｂは、解像度が示す縦方向の画素数であり、横値Ｃは、解像度が示す横方向の画素数である。図５に示す例では、縦値Ｂは「１０」であり、横値Ｃは「８」である。
【００７０】
次に、登録モジュール３３は、解析高さＤを初期値のゼロにする（Ｓ３３）。解析高さＤは、解析が終了した解析データサイズＫが示す総画素数が示す縦方向における画素の数を示す。すなわち、解析高さＤは、ページの第何列目まで解析しているかを示す。解析が終了した解析データサイズＫが示す総画素は、カウント値の一例である。
【００７１】
登録モジュール３３は、解析高さＤが縦値Ｂ未満か否かを判断する（Ｓ３４）。図５に示す例では、登録モジュール３３は、解析高さＤが縦値Ｂ＝１０に達して、第１０列まで解析が終了したか否かを判断する。すなわち、ステップＳ３４では、１ページ分の解析が終了したか否かが判断される。
【００７２】
登録モジュール３３は、解析高さＤが縦値Ｂ未満であると判断したことに応じて（Ｓ３４：Ｙｅｓ）、すなわち、１ページ分の解析が終了していないと判断したことに応じて、次の列以降の解析を開始する。
【００７３】
具体的には、登録モジュール３３は、未だ解析していない単位データを読み込む（Ｓ３５）。そして、読み込んだ単位データから、連続ライン数Ｅを決定する（Ｓ３６）。図５に示す例では、第４列と第５列と第６列とが同内容の画素で構成されおり、第８列と第９列とが同内容の画素で構成されている。登録モジュール３３は、連続ライン数Ｅ＝１やＥ＝２やＥ＝３を決定する。
【００７４】
登録モジュール３３は、決定したライン数Ｅを解析高さＤに加算する（Ｓ３７）。例えば、連続ライン数Ｅ＝３である場合、解析高さＤに「３」を加える。また、登録モジュール３３は、単位データを読み込んだことに応じて、解析データサイズＫに「１」を加える（Ｓ３８）。
【００７５】
次に、登録モジュール３３は、解析幅Ｆを初期値のゼロにする（Ｓ３９）。解析幅Ｆは、解析する単位データが示す横方向における画素数を示す。登録モジュール３３は、解析幅Ｆが横値Ｃ未満であるか否かを判断する（Ｓ４０）。すなわち、ステップＳ４０では、解析する単位データが示す画素が図５における右端の画素まで到達したか否かが判断される。
【００７６】
登録モジュール３３は、解析幅Ｆが横値Ｃ以上であると判断すると（Ｓ４０：Ｎｏ）、ステップＳ３４以降の処理を実行する。登録モジュール３３は、解析幅Ｆが横値Ｃ未満であると判断すると（Ｓ４０：Ｙｅｓ）、単位データを読み込んで、読み込んだ単位データのデータ長を取得する（Ｓ４１）。データ長は、同じ色の画素が続くこと、及び、異なる色の画素が続くことを示す。また、登録モジュール３３は、単位データを読み込んだことに応じて、解析データサイズＫに「１」を加える（Ｓ４２）。
【００７７】
登録モジュール３３は、ステップＳ４１で取得したデータ長が閾値未満であるか否かを判断する（Ｓ４３）。すなわち、ステップＳ４３では、同じ色の画素が続くか、異なる色の画素が続くかが判断される。具体的には、登録モジュール３３は、単位データが８ビットである場合、データ長が閾値である１２８未満であるか否かを判断する。閾値は、メモリ２２のＲＯＭ２４やＥＥＰＲＯＭに固定値として予め記憶される。
【００７８】
登録モジュール３３は、ステップＳ４１で取得したデータ長が閾値未満であって、同じ色の画素が続くと判断すると（Ｓ４３：Ｙｅｓ）、ステップＳ４１で取得したデータ長が示す同じ色の画素の数に応じた数だけ単位データを読み込む（Ｓ４４）。そして、登録モジュール３３は、読み込んだ単位データの数だけ解析データサイズＫを加算する（Ｓ４５）。また、登録モジュール３３は、ステップＳ４１で取得したデータ長が示す同じ色の画素の数だけ解析幅Ｆを加算する（Ｓ４６）。
【００７９】
一方、登録モジュール３３は、ステップＳ４１で取得したデータ長が閾値以上であって、異なる色の画素が続くと判断すると（Ｓ４３：Ｎｏ）、ステップＳ４１で取得したデータ長が示す異なる色の画素の数に応じた数だけ単位データを読み込む（Ｓ４７）。そして、登録モジュール３３は、読み込んだ単位データの数だけ解析データサイズＫを加算する（Ｓ４８）。また、登録モジュール３３は、ステップＳ４１で取得したデータ長が示す異なる色の画素の数だけ解析幅Ｆを加算する（Ｓ４９）。
【００８０】
登録モジュール３３は、ステップＳ４６、Ｓ４９の処理の実行後、ステップＳ４０以降の処理を再度実行する。
【００８１】
登録モジュール３３は、ステップＳ３４において、解析高さＤが縦値Ｂ以上であって、読み込んだ単位データが示す総画素数が１ページ分の画素数に到達したと判断すると（Ｓ３４：Ｎｏ）、読み込んだ単位データの総数を示す解析データサイズＫをメモリ２２のＲＡＭ２５或いはＥＥＰＲＯＭに保存する（Ｓ５０）。図６に示す例では、登録モジュール３３は、第１ページの最後の画素を示す単位データまでの第１解析データサイズＫと、第２ページの最後の画素を示す単位データまでの第２解析データサイズＫと、第３ページの最後の画素を示す単位データまでの第３解析データサイズＫと、をメモリ２２に記憶させる。ステップＳ５０の処理は、決定処理の一例である。
【００８２】
次に、登録モジュール３３は、圧縮画像データが、未だ読み込んでいない単位データを有するか否かを判断する（Ｓ５１）。すなわち、ステップＳ５１では、圧縮画像データが次のページを有するか否かが判断される。
【００８３】
登録モジュール３３は、次のページがあると判断すると（Ｓ５１：Ｙｅｓ）、ステップＳ３２以降の処理を再度実行する。登録モジュール３３は、次のページがないと判断すると（Ｓ５１：Ｎｏ）、解析処理を終了する。
【００８４】
登録モジュール３３は、図２に示されるように、解析処理（Ｓ１７）の終了後、発見したページの数だけページジョブをジョブ管理モジュール３４に登録する（Ｓ１８）。なお、登録モジュール３３は、解析処理において、ページを発見するごとに、ページジョブをジョブ管理モジュール３４に登録してもよい。
【００８５】
登録モジュール３３は、登録したページジョブのページ情報をジョブ管理モジュール３４に通知する（Ｓ１９）。ページ情報は、解析処理のステップＳ５０で保存した解析データサイズＫを含む。
【００８６】
フローチャートには示されていないが、ジョブ管理モジュール３４は、登録モジュール３３によってページジョブが登録されたことに応じて、メモリ２２のＲＡＭ２５に印刷キューを記憶させる。すなわち、ジョブ管理モジュール３４は、印刷キューを生成する。詳しくは、ジョブ管理モジュール３４は、ページジョブの登録順に、印刷キューを生成する。例えば、ジョブ管理モジュール３４は、第１ページのページジョブ、第２ページのページジョブ、第３ページのページジョブの順にページジョブが登録されたことに応じて、第１ページの印刷キュー、第２ページの印刷キュー、第３ページの印刷キューの順に、印刷キューをＲＡＭ２５に記憶させる。そして、ジョブ管理モジュール３４は、登録された順に印刷キューを処理する。すなわち、ページジョブを処理する。以下、詳しく説明する。
【００８７】
ジョブ管理モジュール３４は、通知されたページ情報を用いて、登録されたページジョブを処理するページジョブ処理を実行する（Ｓ２０）。具体的には、ジョブ管理モジュール３４は、圧縮画像データを、ページごとの複数の部分圧縮データに分割し、部分圧縮データを解凍して解凍ページデータを生成し、生成した解凍ページデータを変換して印刷データを生成し、生成した印刷データを印刷エンジン１５に出力する。ジョブ管理モジュール３４は、印刷データの生成に要する時間を短縮するために、画像を回転させる変換が必要であるか否かによって、解凍モジュール３６及び変換モジュール３８に入力するコマンドを選択して決定する。図４を参照して、ページジョブ処理について詳しく説明する。解凍ページデータは、解凍部分データの一例である。ステップＳ２０の処理は、ジョブ処理の一例である。
【００８８】
以下では、第１ページ（図６）に対するページジョブ処理について説明する。ジョブ管理モジュール３４は、上述のモデル情報２８をメモリ２２から読み出して取得する（Ｓ６１）。そして、ジョブ管理モジュール３４は、取得したモデル情報２８と、ステップＳ１６（図２）で通知されたジョブ情報とに基づいて、圧縮画像データが示す画像を回転する変換を実行するか否かを判断する（Ｓ６２）。例えば、ジョブ情報がＡ４サイズのシートへの印刷を示しており、モデル情報２８が上述の横給紙を示す場合、ジョブ管理モジュール３４は、画像を９０°回転させる変換を実行すると判断する。或いは、ジョブ情報が両面印刷を示し、モデル情報２８が縦給紙を示す場合、ジョブ管理モジュール３４は、シートの裏面に印刷するページの画像について、１８０°回転させる変換を実行すると判断する（Ｓ６２）。ステップＳ６２の処理は、判断処理の一例である。
【００８９】
ジョブ管理モジュール３４は、画像を回転させると判断すると（Ｓ６２：Ｙｅｓ）、分割指示コマンドを分割モジュール３５に入力する（Ｓ６３）。分割指示コマンドは、メモリ２２のＲＡＭ２５に記憶された圧縮画像データを分割して第１ページの部分圧縮データを生成し、生成した第１ページの部分圧縮データをＲＡＭ２５に記憶させることを指示するコマンドである。分割指示コマンドは、ステップＳ１９で登録モジュール３３から通知されたページ情報に含まれる上述の第１解析データサイズＫと、ＲＡＭ２５の記憶領域を指定する領域指定情報とを付帯する。
【００９０】
分割モジュール３５は、分割指示コマンドを受け付けると（Ｓ６３）、分割処理を実行する（Ｓ６４）。詳しく説明すると、分割モジュール３５は、圧縮画像データをメモリ２２のＲＡＭ２５から読み出す。そして、分割モジュール３５は、第１解析データサイズＫを用いて、図６に示されるように、第１ページ画像の圧縮データと第２ページヘッダ情報との間で圧縮画像データを分割し、第１ページの部分圧縮データと、その余のデータとを生成する。そして、分割モジュール３５は、生成した第１ページの部分圧縮データを、分割指示コマンドに指定されたＲＡＭ２５の記憶領域に記憶させる。その余のデータは、メモリ２２に記憶されることなく、破棄される。
【００９１】
なお、ジョブ管理モジュール３４は、第２ページに対するページジョブ処理を実行する場合、例えば、第１解析データサイズＫ及び第２解析データサイズＫと、ＲＡＭ２５の記憶領域を指定する領域指定情報とを付帯する分割指示コマンドを分割モジュール３５に入力する。分割モジュール３５は、第１解析データサイズＫ及び第２解析データサイズＫを用いて、図６に示されるように、第１ページ画像の圧縮データと第２ページヘッダ情報との間、及び、第２ページ画像の圧縮データと第３ページヘッダ情報との間で圧縮画像データを分割し、さらに、ドキュメント情報を付加して、第２ページの部分圧縮データと、その余のデータとを生成する。その余のデータは、メモリ２２に記憶されることなく、破棄される。
【００９２】
ジョブ管理モジュール３４は、第３ページに対するページジョブ処理を実行する場合、例えば、第２解析データサイズＫ及び第３解析データサイズＫと、ＲＡＭ２５の記憶領域を指定する領域指定情報とを付帯する分割指示コマンドを分割モジュール３５に入力する。分割モジュール３５は、第２解析データサイズＫ及び第３解析データサイズＫを用いて、図６に示されるように、第２ページ画像の圧縮データと第３ページヘッダ情報との間で圧縮画像データを分割し、さらに、ドキュメント情報を付加して、第３ページの部分圧縮データと、その余のデータとを生成する。その余のデータは、メモリ２２に記憶されることなく、破棄される。
【００９３】
ジョブ管理モジュール３４は、分割指示コマンドを分割モジュール３５に入力した後、分割モジュール３５が分割処理を実行したか否かを判断する。例えば、ジョブ管理モジュール３４は、分割指示コマンドで指示したＲＡＭ２５の記憶領域をポーリングなどを用いて監視し、当該記憶領域に部分圧縮データが記憶されたことにより、分割処理が実行されたと判断する。或いは、ジョブ管理モジュール３４は、分割処理を実行した分割モジュール３５から、分割指示コマンドに対する応答を受け付けたことにより、分割処理が実行されたと判断する。
【００９４】
ジョブ管理モジュール３４は、分割処理が実行されたと判断すると、解凍を行うことを指示する解凍指示コマンドを解凍モジュール３６に入力する（Ｓ６５）。解凍指示コマンドは、部分圧縮データが記憶されたＲＡＭ２５の記憶領域と、解凍後の解凍ページデータを記憶するＲＡＭ２５の記憶領域と、を示す領域指定情報を付帯する。解凍指示コマンドは、第１指示の一例である。
【００９５】
解凍モジュール３６は、解凍指示コマンドを受け付けると（Ｓ６５）、解凍処理を実行する（Ｓ６６）。詳しく説明すると、解凍モジュール３６は、部分圧縮データをメモリ２２のＲＡＭ２５から読み出す。そして、解凍モジュール３６は、ＲＡＭ２５から読み出した部分圧縮データを、解凍ＩＣ４１（図１）に入力する。解凍ＩＣ４１は、入力された部分圧縮データを解凍する変換を行う。そして、解凍ＩＣ４１は、解凍によって得られた解凍ページデータを出力する。解凍モジュール３６は、解凍ＩＣ４１が出力した解凍ページデータを、解凍指示コマンドが指定するＲＡＭ２５の記憶領域に記憶させる。部分圧縮データは、変換対象データの一例である。解凍ページデータは、第１変換データの一例である。ステップＳ６６の処理は、第１変換処理の一例である。
【００９６】
なお、ジョブ管理モジュール３４は、分割処理が実行されたか否かを判断することなく解凍指示コマンドを出力してもよい。その場合、解凍指示コマンドを受け付けた解凍モジュール３６は、ポーリングなどによって、メモリ２２のＲＡＭ２５に部分圧縮データが記憶されたか否かを監視し、部分圧縮データがＲＡＭ２５に記憶されたことに応じて、解凍処理（Ｓ６６）を実行する。
【００９７】
ジョブ管理モジュール３４は、解凍指示コマンドを解凍モジュール３６に入力した後、解凍モジュール３６が解凍処理を実行したか否かを判断する。例えば、ジョブ管理モジュール３４は、解凍指示コマンドで指示したＲＡＭ２５の記憶領域をポーリングなどを用いて監視し、当該記憶領域に解凍ページデータが記憶されたことにより、解凍処理が実行されたと判断する。或いは、ジョブ管理モジュール３４は、解凍処理を実行した解凍モジュール３６から、解凍指示コマンドに対する応答を受け付けたことにより、解凍処理が実行されたと判断する。
【００９８】
ジョブ管理モジュール３４は、解凍処理が実行されたと判断すると、回転を行うことを指示する回転指示コマンドを回転モジュール３７に入力する（Ｓ６７）。回転指示コマンドは、解凍ページデータが記憶されたＲＡＭ２５の記憶領域と、回転後の解凍ページデータを記憶するＲＡＭ２５の記憶領域と、を示す領域指定情報を付帯する。回転指示コマンドは、第２指示の一例である。
【００９９】
回転モジュール３７は、回転指示コマンドを受け付けると（Ｓ６７）、回転処理を実行する（Ｓ６８）。詳しく説明すると、回転モジュール３７は、解凍ページデータをメモリ２２のＲＡＭ２５から読み出す。そして、回転モジュール３７は、ＲＡＭ２５から読み出した解凍ページデータに対して所定の演算処理を実行して、解凍ページデータが示す画像を回転させる変換処理を行う。所定の演算処理は、回転モジュール３７に予め実装される。回転モジュール３７は、回転させた後の解凍ページデータを、回転指示コマンドが指定するＲＡＭ２５の記憶領域に記憶させる。回転させた後の解凍ページデータは、第２変換データの一例である。ステップＳ６８の処理は、第２変換処理の一例である。
【０１００】
なお、ジョブ管理モジュール３４は、解凍処理が実行されたか否かを判断することなく回転指示コマンド（Ｓ６７）を出力してもよい。その場合、回転指示コマンドを受け付けた回転モジュール３７は、ポーリングなどによって、メモリ２２のＲＡＭ２５に解凍ページデータが記憶されたか否かを監視し、解凍ページデータがＲＡＭ２５に記憶されたことに応じて、回転処理を実行する。
【０１０１】
ジョブ管理モジュール３４は、回転指示コマンドを回転モジュール３７に入力した後、回転モジュール３７が回転処理を実行したか否かを判断する。例えば、ジョブ管理モジュール３４は、回転指示コマンドで指示したＲＡＭ２５の記憶領域をポーリングなどを用いて監視し、当該記憶領域に回転後の解凍ページデータが記憶されたことにより、回転処理が実行されたと判断する。或いは、ジョブ管理モジュール３４は、回転処理を実行した回転モジュール３７から、回転指示コマンドに対する応答を受け付けたことにより、回転処理が実行されたと判断する。
【０１０２】
ジョブ管理モジュール３４は、回転処理が実行されたと判断すると、変換指示コマンドを変換モジュール３８に入力する（Ｓ６９）。変換指示コマンドは、回転後の解凍ページデータが記憶されたＲＡＭ２５の記憶領域と、変換後の印刷データを記憶するＲＡＭ２５の記憶領域と、を示す領域指定情報を付帯する。変換指示コマンドは、第３指示の一例である。ステップＳ６３、Ｓ６５、Ｓ６７の処理は、非連動指示処理の一例である。
【０１０３】
変換モジュール３８は、変換指示コマンドを受け付けると（Ｓ６９）、変換処理を実行する（Ｓ７０）。詳しく説明すると、変換モジュール３８は、回転後の解凍ページデータをメモリ２２のＲＡＭ２５から読み出す。そして、変換モジュール３８は、ＲＡＭ２５から読み出した回転後の解凍ページデータを、変換ＩＣ４２（図１）に入力する。変換ＩＣ４２は、入力された回転後の解凍ページデータを印刷データに変換する。そして、変換ＩＣ４２は、印刷データを出力する。変換モジュール３８は、変換ＩＣ４２が出力した印刷データを、変換指示コマンドが指定するＲＡＭ２５の記憶領域に記憶させる。ステップＳ７０の処理は、第３変換処理の一例である。
【０１０４】
なお、ジョブ管理モジュール３４は、回転処理が実行されたか否かを判断することなく変換指示コマンドを出力してもよい。その場合、変換指示コマンドを受け付けた変換モジュール３８は、ポーリングなどによって、メモリ２２のＲＡＭ２５に回転後の解凍ページデータが記憶されているか否かを監視し、回転後の解凍ページデータがＲＡＭ２５に記憶されたことに応じて、変換処理を実行する。
【０１０５】
ジョブ管理モジュール３４は、変換指示コマンドを変換モジュール３８に入力した後、変換モジュール３８が変換処理を実行したか否かを判断する。例えば、ジョブ管理モジュール３４は、変換指示コマンドで指示したＲＡＭ２５の記憶領域をポーリングなどを用いて監視し、当該記憶領域に印刷データが記憶されたことにより、変換処理が実行されたと判断する。或いは、ジョブ管理モジュール３４は、変換処理を実行した変換モジュール３８から、変換指示コマンドに対する応答を受け付けたことにより、変換処理が実行されたと判断する。
【０１０６】
ジョブ管理モジュール３４は、変換処理が実行されたと判断すると、出力指示コマンドを印刷制御モジュール３９に入力する（Ｓ７１）。出力指示コマンドは、印刷データが記憶されたＲＡＭ２５の記憶領域を示す領域指定情報を付帯する。
【０１０７】
印刷制御モジュール３９は、出力指示コマンドを受け付けると（Ｓ７１）、出力処理を実行する（Ｓ７２）。詳しく説明すると、印刷制御モジュール３９は、印刷データをメモリ２２のＲＡＭ２５から読み出す。そして、印刷制御モジュール３９は、ＲＡＭ２５から読み出した印刷データを、駆動素子１８のドライブ回路１９に対して出力する。
【０１０８】
なお、ジョブ管理モジュール３４は、変換処理が実行されたか否かを判断することなく出力指示コマンドを出力してもよい。その場合、出力指示コマンドを受け付けた印刷制御モジュール３９は、ポーリングなどによって、メモリ２２のＲＡＭ２５に印刷データが記憶されているか否かを監視し、印刷データがＲＡＭ２５に記憶されたことに応じて、出力処理を実行する。
【０１０９】
ジョブ管理モジュール３４は、ステップＳ６２において、画像を回転させないと判断すると（Ｓ６２：Ｎｏ）、上述のステップＳ６３の処理を実行し、分割モジュール３５に分割指示コマンドを入力する（Ｓ６４）。ジョブ管理モジュール３４は、分割モジュール３５が上述の分割処理を実行したと判断すると、連動解凍指示コマンドを解凍モジュール３６に入力し（Ｓ７３）、かつ、連動変換指示コマンドを変換モジュール３８に入力する（Ｓ７４）。連動解凍指示コマンドは、第１連動指示の一例である。連動変換指示コマンドは、第２連動指示の一例である。ステップＳ７３、Ｓ７４の処理は、連動指示処理の一例である。
【０１１０】
連動解凍指示コマンドは、部分圧縮データが記憶されたメモリ２２のＲＡＭ２５の領域を示す情報を付帯する。また、連動変換指示コマンドは、印刷データを記憶するメモリ２２のＲＡＭ２５の領域を示す情報を付帯する。
【０１１１】
解凍モジュール３６は、連動解凍指示コマンドを受け付けたことに応じて（Ｓ７３）、解凍出力処理を実行する（Ｓ７５）。詳しく説明すると、まず、解凍モジュール３６は、連動解凍指示コマンドが指定するＲＡＭ２５の記憶領域から、部分圧縮データを読み出す。そして、ジョブ管理モジュール３４は、読み出した部分圧縮データを解凍ＩＣ４１（図１）に入力する。解凍ＩＣ４１は、入力された部分圧縮データを解凍する変換を行って、解凍後の部分圧縮データである解凍ページデータを出力する。出力された解凍ページデータは、接続線４３（図１（Ｂ））を通じて変換ＩＣ４２に入力される。変換ＩＣ４２は、入力された解凍ページデータを印刷データに変換して出力する。
【０１１２】
変換モジュール３８は、連動変換指示コマンドを受け付けたことに応じて（Ｓ７４）、連動変換処理を実行する（Ｓ７６）。詳しく説明すると、変換モジュール３８は、変換ＩＣ４２が出力する印刷データを、連動変換指示コマンドが指定するＲＡＭ２５の記憶領域に記憶させる。
【０１１３】
ジョブ管理モジュール３４は、ポーリングなどによって、印刷データが記憶されるＲＡＭ２５の領域を監視する。そして、ジョブ管理モジュール３４は、ドライブ回路１９に出力可能なだけの量の印刷データがＲＡＭ２５に記憶されたことに応じて、印刷制御モジュール３９に出力指示コマンドを入力する（Ｓ７７）。出力指示コマンドは、印刷データが記憶されるＲＡＭ２５の記憶領域を示す情報を付帯する。ドライブ回路１９に出力可能なだけの量の印刷データとは、例えば、１ページ分の印刷データであってもよいし、１ページ未満の印刷データであってもよい。ドライブ回路１９に出力可能なだけの量の印刷データは、プリンタ１０の仕様によって変わる。
【０１１４】
印刷制御モジュール３９は、出力指示コマンドを受け付けたことに応じて（Ｓ７７）、印刷データをドライブ回路１９に出力する出力処理を実行する（Ｓ７２）。
【０１１５】
ジョブ管理モジュール３４は、図２に示すように、ページジョブ処理（Ｓ２０）の実行後、ページジョブを終了させる（Ｓ２１）。具体的には、ジョブ管理モジュール３４は、出力した印刷データに対する印刷の実行を印刷エンジン１５が終了したことを確認した後、メモリ２２のＲＡＭ２５に記憶された印刷キューを削除する。ステップＳ２０の処理は、ページジョブ終了処理の一例である。
【０１１６】
ジョブ管理モジュール３４は、メモリ２２のＲＡＭ２５に記憶された印刷キューが全て削除されたことに応じて、すなわち、全てのページの印刷が終了したことに応じて、印刷ジョブを終了させる（Ｓ２２）。
【０１１７】
[実施形態の作用効果]
本実施形態では、回転処理が不要である場合には、解凍ＩＣ４１が解凍して出力する解凍ページデータが、メモリ２２に記憶されることなく変換ＩＣ４２に入力される。したがって、回転処理が不要である場合において、印刷データの生成に要する時間が短くなる。詳しく説明すると、回転処理が不要である場合において、解凍ＩＣ４１が出力した解凍ページデータがメモリ２２に記憶され、変換モジュール３８が解凍ページデータをメモリ２２から読み出して変換ＩＣ４２に入力すると、メモリ２２への解凍ページデータの書き込み、及び、解凍ページデータのメモリ２２からの読み出しに時間を要する。本実施形態では、解凍ＩＣ４１が解凍して出力する解凍ページデータが、メモリ２２に記憶されることなく変換ＩＣ４２に直接入力される。したがって、メモリ２２への解凍ページデータの書き込み及び読み出しに要する時間の分だけ、印刷データの生成に要する時間が短縮する。
【０１１８】
本実施形態では、制御プログラム２７は、圧縮画像データを分割し、分割によって得られた部分圧縮データを解凍して印刷データを生成する。すなわち、圧縮画像データから印刷データを生成して印刷可能なプリンタにおいて、印刷データの生成に要する時間が短縮する。
【０１１９】
本実施形態では、ジョブ管理モジュール３４の下位の分割モジュール３５において、圧縮画像データを分割して部分圧縮データを生成する。そして、１ページ分の部分圧縮データが順次生成され、１ページ分ずつ、部分圧縮データが解凍されて印刷データに変換される。したがって、全てのページの部分圧縮データがメモリ２２に一度に記憶されることがなく、全てのページの部分圧縮データがメモリ２２に一度に記憶される場合に比べ、コントローラ１１は、メモリ２２のＲＡＭ２５の容量を低減することができる。或いは、メモリ２２のＲＡＭ２５の容量が、全てのページの部分圧縮データを記憶できない程度の容量であっても、コントローラ１１は、入力された圧縮データを印刷データに変換して印刷を行うことができる。
【０１２０】
本実施形態では、ジョブ管理モジュール３４は、ポーリングなどによって、印刷データが記憶されるＲＡＭ２５の領域を監視し、ドライブ回路１９に出力可能なだけの量の印刷データがＲＡＭ２５に記憶されたことに応じて、印刷制御モジュール３９に出力指示コマンドを入力する（Ｓ７７）。したがって、コントローラ１１は、回転処理（Ｓ６８）が不要な場合に（Ｓ６２：Ｎｏ）、解凍ＩＣ４１から変換ＩＣ４２に解凍ページデータを直接入力しても、ドライブ回路１９に出力可能なだけの量の印刷データを確実に出力することができる。詳しく説明すると、変換モジュール３８は、メモリ２２から解凍ページデータを読み出して変換する場合、生成した印刷データの量を把握することができる。しかしながら、解凍ＩＣ４１から変換ＩＣ４２に解凍ページデータが直接入力されると、変換モジュール３８は、生成された印刷データの量を把握できない。本実施形態では、ジョブ管理モジュール３４は、ポーリングなどによって印刷データを監視し、印刷制御モジュール３９に出力指示を行う（Ｓ７７）。その結果、ジョブ管理モジュール３４は、ドライブ回路１９に出力可能なだけの量の印刷データを確実に出力することができる。
【０１２１】
[変形例]
上述の実施形態では、圧縮画像データが、ジョブ管理モジュール３４の分割モジュール３５において分割される例を説明した。しかしながら、圧縮画像データは、登録モジュール３３において分割されてもよい。この場合、分割モジュール３５は、ジョブ管理モジュール３４に設けられない。登録モジュール３３は、ステップＳ１７（図２）の解析処理の実行後、ステップＳ６４の分割処理（図４）を実行し、第１ページの部分圧縮データ、第２ページの部分圧縮データ、及び第３ページの部分圧縮データをメモリ２２のＲＡＭ２５に記憶させる。この場合、第１ページの部分圧縮データ、第２ページの部分圧縮データ、及び第３ページの部分圧縮データを記憶するだけの容量のＲＡＭ２５が必要になる。すなわち、第１ページの部分圧縮データ、第２ページの部分圧縮データ、及び第３ページの部分圧縮データを個々に記憶するだけの容量のＲＡＭ２５が必要な上述の実施形態に比べ、大きな容量のＲＡＭ２５が必要になる。しかしながら、上述の実施形態では、第１ページの部分圧縮データを生成するための分割処理、第２ページの部分圧縮データを生成するための分割処理、及び第３ページの部分圧縮データを生成するための分割処理の３回の分割処理の実行が必要であるのに対し、圧縮画像データを登録モジュール３３において分割する場合、１回の分割処理で全てのページの部分圧縮データが生成される。すなわち、圧縮画像データを登録モジュール３３において分割する場合、実施形態に比べ大きな容量のＲＡＭ２５が必要になるが、印刷データの生成に要する時間がさらに短くなる。
【０１２２】
上述の実施形態では、第２変換処理の一例として、回転処理（Ｓ６８）を説明した。しかしながら、第２変換処理は、他の処理であってもよい。他の処理とは、例えば、ページヘッダやフッタに印刷時刻などを示すテキストデータを追加する処理や、ページに余白を追加する処理や、ページの余白の大きさを変更する処理などである。
【０１２３】
上述の実施形態では、複数のページを含む圧縮画像データがプリンタ１０に入力される例を説明した。しかしながら、１ページ分の圧縮画像データを含む複数の圧縮画像データがプリンタ１０に順次入力されてもよい。その場合、解析処理（Ｓ１７）や分割処理（Ｓ６４）が実行されることなく、印刷データが生成される。
【０１２４】
上述の実施形態では、複数のページを含む圧縮画像データが、１ページずつの部分圧縮データに分割され、１ページ分ずつ印刷データが生成される例を説明した。しかしながら、図７に示されるように、１ページ分の部分圧縮データが、さらに、複数の分割部分圧縮データに分割されてもよい。各分割部分圧縮データは、１ページの画像を分割した分割画像をそれぞれ示す。図７に示す例では、１ページの画像は、第１分割画像、第２分割画像、及び第３分割画像に分割される。そして、登録モジュール３３は、解析処理（Ｓ１７）において、分割位置となる単位データを示すデータサイズＫをメモリ２２にさらに記憶させる。分割モジュール３５は、分割処理（Ｓ６４）によって１ページ分の部分圧縮データを生成した後、メモリ２２に記憶されたデータサイズＫが示す単位データを用いて部分圧縮データをさらに分割し、複数の分割部分圧縮データを生成する。各分割部分圧縮データは、実施形態と同様にして、解凍処理（Ｓ６６）や、回転処理（Ｓ６８）や、変換処理（Ｓ７０）を実行されて印刷データに変換され、出力される。
【０１２５】
上述の実施形態では、解析処理において、解析高さＤが縦値Ｂ未満か否かにより（Ｓ３４）、１ページの解析が終了したか否かを判断する例を説明した。しかしながら、解析した単位データが示す総画素数が、解像度が示す１ページ分の総画素数に到達したか否かにより、１ページの解析が終了したか否かが判断されてもよい。解像度が示す１ページ分の総画素数は、例えば、解像度が６００×６００である場合、３６００００である。
【符号の説明】
【０１２６】
１０・・・プリンタ
１１・・・コントローラ
２１・・・ＣＰＵ
２２・・・メモリ
２７・・・制御プログラム
３２・・・受付モジュール
３３・・・登録モジュール
３４・・・ジョブ管理モジュール
３６・・・解凍モジュール
３７・・・回転モジュール
３８・・・変換モジュール
３９・・・印刷制御モジュール
４１・・・解凍ＩＣ
４２・・・変換ＩＣ
【図１】
2020135611.tif 000003
【図２】
2020135611.tif 000004
【図３】
2020135611.tif 000005
【図４】
2020135611.tif 000006
【図５】
2020135611.tif 000007
【図６】
2020135611.tif 000008
【図７】
2020135611.tif 000009