JP7238457B2 - プリンタ - Google Patents

プリンタ Download PDF

Info

Publication number
JP7238457B2
JP7238457B2 JP2019030438A JP2019030438A JP7238457B2 JP 7238457 B2 JP7238457 B2 JP 7238457B2 JP 2019030438 A JP2019030438 A JP 2019030438A JP 2019030438 A JP2019030438 A JP 2019030438A JP 7238457 B2 JP7238457 B2 JP 7238457B2
Authority
JP
Japan
Prior art keywords
data
module
page
conversion
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019030438A
Other languages
English (en)
Other versions
JP2020135611A (ja
Inventor
渉 長谷川
浩一 次村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2019030438A priority Critical patent/JP7238457B2/ja
Priority to US16/797,203 priority patent/US11029904B2/en
Publication of JP2020135611A publication Critical patent/JP2020135611A/ja
Application granted granted Critical
Publication of JP7238457B2 publication Critical patent/JP7238457B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1265Printing by reference, e.g. retrieving document/image data for a job from a source mentioned in the job
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1206Improving or facilitating administration, e.g. print management resulting in increased flexibility in input data format or job format or job type
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1248Job translation or job parsing, e.g. page banding by printer language recognition, e.g. PDL, PCL, PDF
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1297Printer code translation, conversion, emulation, compression; Configuration of printer parameters
    • G06F3/1298Printer language recognition, e.g. programme control language, page description language
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Record Information Processing For Printing (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Image Processing (AREA)

Description

本発明は、画像データを印刷データに変換して印刷を行うプリンタに関する。
パーソナルコンピュータなどの端末装置にインストールされたプリンタドライバから、PDL(Page Description Languageの略)などで記述された印刷データを受信し、受信した印刷データをシートに印刷するプリンタがある(例えば、特許文献1参照)。
パーソナルコンピュータなどの端末装置にインストールされたプリンタドライバは、端末装置のメモリのRAMを用いて、印刷が指示された画像データを、プリンタが印刷を実行可能な形式の印刷データに変換して出力する。
特開2017-134718号公報
近年は、プリンタドライバを介さずに、端末装置から画像データを受信して印刷するプリンタが望まれつつある。すなわち、端末装置から画像データを受信し、受信した画像データを印刷データに変換して印刷を行えるプリンタが望まれつつある。
本発明は、画像データを印刷データに変換するのに要する時間を短くすることを目的とする。
本明細書では様々な開示を行う。開示例のプリンタは、メモリと、コントローラと、を備える。前記コントローラは、コンピュータと、前記コンピュータによって実行される複数のモジュールを含むプログラムと、入力されたデータを変換して出力する第1電子回路と、入力されたデータを変換して出力する電子回路であって、前記第1電子回路とは異なる変換を行い、かつ、前記第1電子回路と接続線によって接続された第2電子回路と、を有する。前記複数のモジュールは、画像データ及び印刷設定の入力を受け付ける受付処理を前記コンピュータに実行させる受付モジュールと、前記画像データ及び前記印刷設定に基づくジョブをジョブ管理モジュールに登録するジョブ登録処理を前記コンピュータに実行させる登録モジュールと、登録された前記ジョブが示す前記画像データを変換して印刷データを生成して出力し、登録された前記ジョブを処理するジョブ処理を前記コンピュータに実行させる前記ジョブ管理モジュールと、である。前記ジョブ管理モジュールは、前記画像データに応じた変換対象データを前記第1電子回路を用いて第1変換データに変換する第1変換処理を前記コンピュータに実行させる第1サブモジュールと、前記第1変換データを第2変換データに変換する第2変換処理を前記コンピュータに実行させる第2サブモジュールと、前記第2変換データを前記第2電子回路を用いて前記印刷データに変換する第3変換処理を前記コンピュータに実行させる第3サブモジュールと、前記印刷データを出力する出力処理を前記コンピュータに実行させる第4サブモジュールと、を有する。前記ジョブ管理モジュールは、前記第2サブモジュールに前記第2変換処理を実行させるか否かを、登録された前記ジョブが示す前記印刷設定と、前記メモリに記憶された設定情報との少なくとも一方に基づいて判断する判断処理と、前記第2変換処理を実行すると判断したことに応じて、前記第1変換処理を実行して前記第1変換データを前記メモリに記憶させる第1指示を前記第1サブモジュールに入力し、前記第2変換処理を実行し、前記第2変換データを前記メモリに記憶させる第2指示を前記第2サブモジュールに入力し、前記第3変換処理を実行して前記印刷データを出力させる第3指示を前記第3サブモジュールに入力する非連動指示処理と、前記第2変換処理を実行しないと判断したことに応じて、前記第1変換処理を実行し、前記第1変換データを前記接続線を通じて前記第2電子回路に入力させる第1連動指示を前記第1サブモジュールに入力し、前記第2電子回路が変換した後のデータに基づく前記印刷データを出力させる第2連動指示を前記第3サブモジュールに入力する連動指示処理と、を前記コンピュータに実行させる。
ジョブ管理モジュールは、印刷設定と設定情報との少なくとも一方に基づいて、第2変換処理を実行するか否かを判断する。第2変換処理は、例えば、画像データが示す画像の向きを変更する処理や、画像に余白を付加したり、余白を削除したり、或いは、余白の幅を変更したりする処理や、印刷を実行する日時などを追加したりする処理などであって、印刷設定や設定情報によって実行の要否が変わる処理である。ジョブ管理モジュールは、第2変換処理を実行すると判断すると、第1サブモジュール、第2サブモジュール、及び第3サブモジュールにそれぞれ指示を入力し、第1変換処理、第2変換処理、及び第3変換処理を実行させて画像データを印刷データ変換させる。一方、ジョブ管理モジュールは、第2変換処理を実行しないと判断すると、第1連動指示を第1サブモジュールに入力し、第2連動指示を第3サブモジュールに入力する。第1連動指示を入力された第1サブモジュールは、変換した第1変換データを接続線を通じて第2電子回路に入力する。第2電子回路は、第1変換データを変換して出力する。第3サブモジュールは、第2電子回路が出力するデータに基づく印刷データを出力する。したがって、第2変換処理が必要でない場合には、印刷データの生成に要する時間が短くなる。詳しく説明すると、第2変換処理が必要でない場合において、第1変換処理によって変換された第1変換データがメモリに記憶され、第3サブモジュールが第1変換データをメモリから読み出して第2変換データに変換すると、メモリへの第1変換データの書き込み、及び、第1変換データのメモリからの読み出しに時間を要する。開示例のプリンタでは、第1変換データは第1電子回路から第2電子回路に直接入力される。したがって、開示例のプリンタでは、メモリへの第1変換データの書き込み、及び、第1変換データのメモリからの読み出しに要する時間の分だけ、印刷データの生成に要する時間を短縮することができる。
図1(A)は、プリンタ10の構成を示す図であり、図1(B)は、制御プログラム27の構成を示す図である。 図2は、受け付けた圧縮画像データを印刷データに変換して出力するまでに登録モジュール33及びジョブ管理モジュール34が実行する処理を示す図である。 図3は、解析処理を示すフローチャートである。 図4は、ページジョブ処理を説明する図である。 図5は、画像における画素を示す図である。 図6は、部分圧縮データを説明する説明図である。 図7は、部分圧縮データを分割部分圧縮データに分割する処理を説明する説明図である。
以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明される実施形態は開示例にすぎず、本発明の要旨を変更しない範囲で適宜変更できることは言うまでもない。例えば、後述する各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更することができる。
本実施形態では、図1に示されるプリンタ10を説明する。プリンタ10は、パーソナルコンピュータなどの情報処理装置に実装されたプリンタドライバが生成した印刷データを受け付けて印刷を実行可能なだけでなく、圧縮された画像データである圧縮画像データを受け付けて印刷を実行可能なプリンタである。すなわち、プリンタ10は、プリンタドライバが実装された情報処理装置だけでなく、プリンタドライバが実装されていない情報処理装置からも、印刷の実行指示を受け付けることができるプリンタである。
プリンタ10は、インク滴をシートに吐出してシートに印刷を行う、いわゆるインクジェットプリンタであってもよいし、ドラムに付着させたトナーをシートに押圧して印刷を行う、いわゆるレーザプリンタであってもよいし、フィルムインクを用いてシートに印刷を行う、いわゆるサーマルプリンタであってもよい。すなわち、プリンタ10がシートに対して印刷を行う方式は、どのような方式であってもよい。以下では、プリンタ10が、いわゆるインクジェットプリンタである例を説明する。
プリンタ10は、コントローラ11と、通信I/F12と、ディスプレイ13と、操作スイッチ14と、印刷エンジン15と、を備える。「I/F」は、インタフェースを意味する。
通信I/F12は、不図示の通信回線と接続されている。通信回線は、情報処理装置を接続されている。すなわち、通信I/F12は、通信回線を通じて情報処理装置と接続されている。通信回線は、USBケーブルや、有線LANや、無線LANや、WANや、インターネットなどである。すなわち、通信回線は、情報処理装置からプリンタ10に圧縮画像データを送信可能であれば、どのような種類の通信回線であってもよい。なお、USBメモリなどの可搬記憶媒体をプリンタ10に装着して圧縮画像データをプリンタ10に入力可能であれば、プリンタ10は、通信回線に接続されていなくてもよい。
ディスプレイ13は、文字や図形などを表示する表示パネルと、表示パネルに重畳された透明な膜状のタッチセンサと、を有する。すなわち、ディスプレイ13は、いわゆるタッチパネルである。なお、ディスプレイ13は、表示パネルのみを有していてもよい。
操作スイッチ14は、ユーザの操作入力を受け付けるスイッチである。なお、プリンタ10は、操作スイッチ14と、ディスプレイ13のタッチセンサとの一方のみを有していてもよい。
印刷エンジン15は、給紙トレイと、給送ローラと、搬送ローラと、ヘッド16と、排出ローラと、排紙トレイと、駆動装置17と、を有する。駆動装置17は、例えば一乃至複数のモータを有しており、給送ローラ及び搬送ローラを回転駆動させる。給紙トレイに載置されたシートは、回転駆動された給送ローラによって給紙トレイから給送され、次いで、回転駆動された搬送ローラによって搬送される。シートは、搬送ローラによって搬送されつつ、ヘッド16からインク滴を吐出され、画像を印刷される。すなわち、印刷エンジン15は、シートを搬送し、搬送するシートに印刷を行い、印刷を行ったシートを排紙トレイに排出する。
ヘッド16は、インク滴を吐出する駆動素子18を有する。駆動素子18は、例えば、圧電素子やヒータである。圧電素子は、直流電圧を印加されることによって変形し、変形することによってインク滴を吐出する。ヒータは、直流電圧を印加されることによってインクを加熱して突沸させ、インク滴を吐出させる。そして、印刷エンジン15は、駆動素子18に直流電圧を印加して駆動させるドライブ回路19を有する。ドライブ回路19は、入力された印刷データに応じたタイミング及び電圧値で駆動素子18に直流電圧を印加する。
コントローラ11は、中央演算処理装置であるCPU21と、プログラムや情報やデータを記憶するメモリ22と、通信バス23と、種々のICとを備える。CPU21は、コンピュータの一例である。
コントローラ11は、例えば、パターン回路基板と、パターン回路基板に実装されたマイクロコンピュータや種々のICやコンデンサやダイオードなどの種々の電子部品によって実現される。種々のICは、図1(B)に示される解凍IC41及び変換IC42を含む。解凍IC41及び変換IC42については後述する。
CPU21及びメモリ22は、通信バス23と接続されている。CPU21は、メモリ22に記憶された後述のOS26及び制御プログラム27を実行する。CPU21によって実行されるOS26や制御プログラム27は、データや情報をメモリ22から読み出し、或いはメモリ22に書き込む。詳しくは後述される。
また、通信バス23は、上述の通信I/F12、ディスプレイ13、操作スイッチ14、印刷エンジン15の駆動装置17、及びドライブ回路19と接続されている。すなわち、後述のOS26及び制御プログラム27を実行するCPU21は、通信I/F12を通じて情報やデータを情報処理装置から受信可能であり、ディスプレイ13に文字や画像を表示可能であり、ディスプレイ13のタッチセンサや操作スイッチ14を通じてユーザの指示を受付可能であり、印刷エンジン15の駆動装置17やドライブ回路19に情報やデータを入力可能である。
メモリ22は、ROM24及びRAM25を有している。ただし、メモリ22は、ROM24及びRAM25の他、EEPROM、HDD、USBメモリ等の可搬記憶媒体、CPU21が備えるバッファ等を有していてもよい。
メモリ22は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、non-transitoryな媒体である。non-transitoryな媒体には、上記の例の他に、CD-ROM、DVD-ROM等の記録媒体も含まれる。また、non-transitoryな媒体は、tangibleな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、non-transitoryなコンピュータが読み取り可能なストレージ媒体には含まれない。
ROM24は、オペレーティングシステムであるOS26及び制御プログラム27を記憶している。制御プログラム27は、プログラムの一例である。
また、ROM24は、プリンタ10の仕様を示すモデル情報28を記憶する。モデル情報28は、例えば、プリンタ10のモデル名や、プリンタ10が印刷を実行可能なシートのサイズを示す情報や、カラー印刷を実行可能であることを示す情報や、両面印刷を実行可能であることを示す情報や、搬送するシートの向きを示す情報などの情報を含む。搬送するシートの向きを示す情報とは、例えば、A4サイズのシートを搬送する場合、シートの長手方向が搬送向きに沿う縦給紙を行うことを示す情報や、シートの短手方向が搬送向きに沿う横給紙を行うことを示す情報などである。モデル情報28は、例えば、MIB(Management Information Baseの略)情報としてROM24に記憶される。なお、モデル情報28は、EEPROMに記憶されていてもよい。モデル情報28は、メモリに記憶された設定情報の一例である。
RAM25は、OS26や制御プログラム27の実行に用いられ、また、圧縮画像データから印刷データを生成するための処理の実行に用いられる。詳しくは後述する。
制御プログラム27は、圧縮された画像データである圧縮画像データを受け付け、受け付けた圧縮画像データを印刷データに変換し、印刷データを上述のドライブ回路19に出力して印刷エンジン15に印刷を実行させるプログラムである。
制御プログラム27は、図1(B)に示されるように、複数のモジュールと、複数のモジュールの上位に位置するプロトコル階層であるアプリケーション31と、を有する。複数のモジュールは、受付モジュール32、登録モジュール33、ジョブ管理モジュール34である。ジョブ管理モジュール34の下位には、分割モジュール35、解凍モジュール36、回転モジュール37、変換モジュール38、及び印刷制御モジュール39が設けられている。以下では、受付モジュール32、登録モジュール33、ジョブ管理モジュール34、分割モジュール35、解凍モジュール36、回転モジュール37、変換モジュール38、及び印刷制御モジュール39を、受付モジュール32等と記載して説明することがある。また、分割モジュール35、解凍モジュール36、回転モジュール37、変換モジュール38、及び印刷制御モジュール39を分割モジュール35等と記載して説明することがある。解凍モジュール36は、第1サブモジュールの一例である。回転モジュール37は、第2サブモジュールの一例である。変換モジュール38は、第3サブモジュールの一例である。印刷制御モジュール39は、第4サブモジュールの一例である。分割モジュール35は、第5サブモジュールの一例である。
アプリケーション31及び受付モジュール32等は、疑似的に並行して実行される。すなわち、アプリケーション31及び受付モジュール32等は、いわゆるマルチタスク処理によって実行される。
受付モジュール32は、画像データを圧縮したデータである圧縮画像データ(図6)を受け付ける受付処理を実行するモジュールである。受付モジュール32は、通信I/F12を通じて情報処理装置から圧縮画像データを受け付け、或いは、プリンタ10に装着されたUSBメモリ等から入力された圧縮画像データを受け付ける。受付モジュール32は、受け付けた圧縮画像データを、RAM25の、アプリケーション31が指定する所定の記憶領域に記憶させる。
登録モジュール33は、受付モジュール32がメモリ22に記憶させた圧縮画像データを解析して印刷ジョブ登録及びページジョブ登録を行うモジュールである。登録モジュール33は、受付モジュール32が圧縮画像データを受け付けたことに応じて、印刷ジョブを後述のジョブ管理モジュール34に登録する。そして、登録モジュール33は、圧縮画像データを解凍することなく、圧縮画像データに含まれるページを見つけ出す解析処理(図3)を実行する。登録モジュール33は、ページを発見したことに応じて、ジョブ管理モジュール34にページジョブを登録する。詳しくは後述する。
ジョブ管理モジュール34は、下位の分割モジュール35等に後述の処理を実行させて、印刷エンジン15のドライブ回路19に印刷データ入力する処理を実行する。すなわち、ジョブ管理モジュール34は、登録された印刷ジョブ及びページジョブを管理及び処理するモジュールである。
分割モジュール35は、圧縮画像データに基づいて、圧縮画像データを解凍することなく、1ページ分の画像データを圧縮した圧縮データを含む複数の部分圧縮データを生成するモジュールである。詳しく説明すると、複数のページを含む圧縮画像データを解凍して得られる画像データは、画像データが示す画像の解像度によっては、メモリ22が有するRAM25の容量では処理できないことが考えられる。分割モジュール35は、圧縮画像データの全てを後述の解凍モジュール36が解凍しないように、圧縮画像データから1ページ分の部分圧縮画像を生成する。そして、分割モジュール35は、圧縮画像データから1ページ分の部分圧縮データを生成する処理を繰り返して、圧縮画像データに含まれる全てのページの部分圧縮データを生成する。詳しくは後述する。
解凍モジュール36は、分割モジュール35が生成した部分圧縮データを解凍するモジュールである。詳しく説明すると、解凍モジュール36は、メモリ22のRAM25に記憶された部分圧縮データを解凍IC41に入力し、解凍IC41が出力したデータをRAM25に記憶させる処理を実行する。
解凍IC41は、画像データの圧縮方法に対応して設計された変換回路を有する。解凍IC41は、入力された部分圧縮データを変換回路で処理することにより、解凍する。解凍IC41は、解凍した解凍ページデータを出力する。ICを用いて解凍を行う場合、プログラムで解凍を行うよりも、高速で解凍を行うことができる。解凍IC41が有する変換回路は、第1電子回路の一例である。解凍ページデータは、解凍部分データの一例である。
なお、複数種類の解凍IC41がコントローラ11に設けられていてもよい。一の種類の解凍IC41は、一の圧縮方法に対応する。すなわち、コントローラ11は、複数種類の圧縮方法で圧縮された圧縮画像データに基づいて印刷データを生成可能であってもよい。
回転モジュール37は、解凍モジュール36がメモリ22に記憶させた解凍ページデータが示す画像を回転させるモジュールである。詳しく説明すると、上述のモデル情報28が示すシートの搬送向きが横向きである場合、解凍ページデータが示す画像を印刷エンジン15がシートに印刷するためには、当該画像を90°回転させる必要がある。また、両面印刷が可能である情報が上述のモデル情報28に含まれている場合であって、印刷設定が両面印刷を示す場合、解凍ページデータが示す画像を印刷エンジン15がシートに印刷するためには、シートの裏面に印刷される画像を180°回転させる必要がある。回転モジュール37は、回転が必要な解凍ページデータを変換して、当該解凍ページデータが示す画像を回転させる。なお、回転モジュール37は、上述の解凍モジュール36とは異なり、ICを用いずに、プログラムの処理として、画像を回転させる処理を行う。
変換モジュール38は、解凍モジュール36が生成した解凍ページデータ、或いは、回転モジュール37が変換した後の解凍ページデータを印刷データに変換するモジュールである。変換は、例えば、色変換、誤差拡散、5値化などである。
色変換は、解凍ページデータが有するRGBの色データを、印刷エンジン15が印刷を実行可能なBMCYの色データに変換することを意味する。BMCYとは、ブラック、マゼンタ、シアン、イエローを意味する。
誤差拡散は、2値化手法の1つであって、画質を高めるために実行される変換である。
5値化は、解凍ページデータから、駆動素子18に印加する直流電圧の電圧値を決定する変換である。電圧値は、例えば、「小」「中」「大」「特大」「ゼロ」である。
変換モジュール38は、解凍ページデータを変換IC42に入力し、変換IC42が出力した変換後のデータである印刷データをメモリ22のRAM25に記憶させる。
変換IC42は、入力された解凍ページデータを変換する演算を行う変換回路を有する。変換IC42は、入力された解凍ページデータを変換回路で処理することにより、上述の色変換や誤差拡散や5値化を行う。変換IC42が有する変換回路は、第2電子回路の一例である。
変換IC42は、上述の解凍IC41と、接続線43によって接続されている。すなわち、変換IC42は、解凍IC41から解凍ページデータを直接入力されることも可能であり、かつ、変換モジュール38によって、回転された後の解凍ページデータを入力されることもできる。接続線43は、例えば、上述のパターン回路基板が有するパターンである。
なお、変換IC42は、色変換を行うIC、誤差拡散を行うIC、及び5値化を行うICの複数のICによって構成されていてもよい。この場合、各ICは、接続線によって接続される。
印刷制御モジュール39は、印刷データをドライブ回路19に対して出力し、また、駆動信号を駆動装置17が有するモータの駆動回路に出力して、印刷エンジン15に印刷を実行させるモジュールである。
以下、図2から図6を参照して、制御プログラム27が圧縮画像データから印刷データを生成して出力する処理について説明する。なお、受付モジュール32、登録モジュール33、及びジョブ管理モジュール34は、アプリケーション31からの指示を受けて以下に説明する各処理を実行する。
本明細書では、基本的に、制御プログラム27に記述された命令に従ったCPU21の処理を説明する。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「取得」、「受付」、「制御」、「設定」等の処理は、CPU21の処理を表している。CPU21による処理は、OS26などのコントローラを介したハードウェア制御も含む。なお、「取得」は要求を必須とはしない概念で用いる。すなわち、CPU21が要求することなくデータを受信するという処理も、「CPU21がデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。「命令」「応答」「要求」等の処理は、「命令」「応答」「要求」等を示す情報を通信することにより行われる。また、「命令」「応答」「要求」等の文言を、「命令」「応答」「要求」等を示す情報そのものという意味で記載してもよい。
また、制御プログラム27に記述された命令に従ったCPU21の処理を、省略した文言で記載することがある。例えば、「CPU21が行う」「コントローラ11が行う」「制御プログラム27が行う」のように記載することがある。
また、CPU21による、情報Aは事柄Bであることを示しているか否かを判断する処理を、「情報Aから、事柄Bであるか否かを判断する」のように概念的に記載することがある。CPU21による、情報Aが事柄Bであることを示しているか、事柄Cであるかを示しているかを判断する処理を、「情報Aから、事柄Bであるか事柄Cであるかを判断する」のように概念的に記載することがある。
また、本明細書中の「データ」と「情報」とは、コンピュータによって取り扱い可能なビット或いはビット列である点において共通する。「データ」とは、各ビットが示す意味内容をコンピュータが考慮することなく取り扱えるものを指す。これに対して、「情報」とは、各ビットが示す意味内容によってコンピュータの動作が分岐するものを指す。さらに、「指示」は、送信先の装置に対して次の動作を促すための制御信号であって、情報を含んでいることもあるし、それ自体が情報としての性質を有していることもある。
また、「データ」及び「情報」は、形式(例えば、テキスト形式、バイナリ形式、フラグ形式等)がコンピュータ毎に変更されたとしても、同一の意味内容と認識される限り、同一のデータ及び情報として取り扱われる。例えば、「2つ」であることを示す情報が、あるコンピュータではASCIIコードで”0x32”というテキスト形式の情報として保持され、別のコンピュータでは二進数表記で”10”というバイナリ形式の情報として保持されてもよい。
但し、上記の「データ」及び「情報」の区別は厳密なものではなく、例外的な取り扱いも許容される。例えば、データが一時的に情報として扱われてもよいし、情報が一時的にデータとして扱われてもよい。また、ある装置ではデータとして扱われるものが、他の装置では情報として扱われてもよい。さらには、データの中から情報が取り出されてもよいし、情報の中からデータが取り出されてもよい。
また、本明細書中の「に応じて」は、当該文字列の前に記載された条件が満たされた場合に、当該文字列の後に記載された処理が実行されることを示す。なお、処理が実行されるタイミングは、条件が満たされた後であればよく、当該条件が満たされた直後である必要は必ずしもない。
受付モジュール32は、図2に示されるように、情報処理装置から、ドキュメント情報、ページヘッダ情報、及び各ページの画像を示す画像データ、を圧縮した圧縮画像データ(図6)の入力を受け付ける(S11)。ステップS11の処理は、受付処理の一例である。
圧縮データ、ドキュメント情報、及びページヘッダ情報は、1つのまとまったデータである。図6に示される例では、圧縮画像データは、ドキュメント情報、第1ページヘッダ情報、第1ページ画像の圧縮データ、第2ページヘッダ情報、第2ページ画像の圧縮データ、第3ページヘッダ情報、及び第3ページ画像の圧縮データを有する。
ドキュメント情報は、データの種類を判定するためのコマンドなどである。ページヘッダ情報は、印刷設定や解像度を含む情報である。印刷設定は、A4やA5などのシートのサイズを示す情報や、普通紙や光沢紙などのシートの種類を示す情報や、片面印刷や両面印刷などの印刷面を示す情報や、モノクロ印刷やカラー印刷などの印刷色を示す情報などである。解像度は、ページの縦方向における画素数及び横方向における画素数を示す情報である。解像度は、例えば、400(横)×400(縦)や、600(横)×600(縦)である。
受付モジュール32は、図2に示されるように、受け付けた圧縮画像データをメモリ22のRAM25に記憶させる(S12)。
登録モジュール33は、圧縮画像データがRAM25に記憶されたか否かを判断する(S13)。登録モジュール33は、例えば、圧縮画像データが記憶されるRAM25の所定の領域を監視することにより(S13:No)、圧縮画像データがRAM25に記憶されたか否かを判断する。
登録モジュール33は、圧縮画像データがRAM25に記憶されたと判断すると(S13:Yes)、印刷ジョブをジョブ管理モジュール34に登録する(S14)。ステップS14の処理は、ジョブ登録処理の一例である。
登録モジュール33は、印刷ジョブをジョブ管理モジュール34に登録した後、圧縮画像データに含まれるドキュメント情報を読み込んで取得する(S15)。登録モジュール33は、取得したドキュメント情報に含まれる印刷設定を含むジョブ情報をジョブ管理モジュール34に通知する(S16)。
次に、登録モジュール33は、圧縮画像データに含まれるページの情報(以下、ページ情報と記載する)を取得する解析処理を実行する(S17)。ページ情報は、ジョブ管理モジュール34にページジョブを登録するために必要である。
ページ情報とは、圧縮画像データに含まれる第1ページや第2ページや第3ページなどを特定する情報である。ページ情報は、例えば、圧縮画像データが有する複数の単位データにおいて、各ページの最後の画素を示す単位データを特定する情報である。例えば、圧縮画像データにおける1バイトから300バイトまでが第1ページを示し、301バイトから500バイトまでが第2ページを示し、501バイトから800バイトまでが第3ページを示す場合、例えば「300」、「500」、「800」がページ情報となる。なお、ページ情報は、圧縮画像データにおける「300」や「500」や「800」などのデータサイズに限定されるものではなく、各ページを特定可能であれば、他の情報やデータであってもよい。1バイトは、単位データの一例である。
なお、圧縮画像データに含まれるページの総数や、上述のページ情報は、圧縮画像データのドキュメント情報には含まれていない。また、解析モジュール53は、解析処理において、圧縮画像データの全体の解凍によって生成される画像データ全てを保持する必要なく、ページ情報を取得する。すなわち、圧縮画像データの全体の解凍で得られる画像データすべてを記憶可能なほど大容量のRAMを必要としない。以下、図3を参照して、解析処理について詳しく説明する。
以下では、図5に示す画像を有するページの圧縮画像データを解析する場合を例にして、解析処理を説明する。画像の解像度は、8(横)×10(縦)である。すなわち、横方向における画素数が「8」で、縦方向における画素数が「10」である。横方向に並ぶ8個の画素で1つの列が構成され、縦方向に10個の列が並んでいる。各列を、上から順に第1列、第2列、第3列、第4列、第5列、第6列、第7列、第8列、第9列、第10列と記載して説明する。
また、以下では、画像データが、packbitsの圧縮方法で圧縮された圧縮画像データである場合について説明する。
図3に示されるように、登録モジュール33は、解析データサイズKを初期値のゼロにする(S31)。解析データサイズKは、読み込んで解析が終了した単位データの数を示す。
次に、登録モジュール33は、取得したドキュメント情報に含まれる解像度に基づいて、縦値B及び横値Cを決定する(S32)。縦値Bは、解像度が示す縦方向の画素数であり、横値Cは、解像度が示す横方向の画素数である。図5に示す例では、縦値Bは「10」であり、横値Cは「8」である。
次に、登録モジュール33は、解析高さDを初期値のゼロにする(S33)。解析高さDは、解析が終了した解析データサイズKが示す総画素数が示す縦方向における画素の数を示す。すなわち、解析高さDは、ページの第何列目まで解析しているかを示す。解析が終了した解析データサイズKが示す総画素は、カウント値の一例である。
登録モジュール33は、解析高さDが縦値B未満か否かを判断する(S34)。図5に示す例では、登録モジュール33は、解析高さDが縦値B=10に達して、第10列まで解析が終了したか否かを判断する。すなわち、ステップS34では、1ページ分の解析が終了したか否かが判断される。
登録モジュール33は、解析高さDが縦値B未満であると判断したことに応じて(S34:Yes)、すなわち、1ページ分の解析が終了していないと判断したことに応じて、次の列以降の解析を開始する。
具体的には、登録モジュール33は、未だ解析していない単位データを読み込む(S35)。そして、読み込んだ単位データから、連続ライン数Eを決定する(S36)。図5に示す例では、第4列と第5列と第6列とが同内容の画素で構成されおり、第8列と第9列とが同内容の画素で構成されている。登録モジュール33は、連続ライン数E=1やE=2やE=3を決定する。
登録モジュール33は、決定したライン数Eを解析高さDに加算する(S37)。例えば、連続ライン数E=3である場合、解析高さDに「3」を加える。また、登録モジュール33は、単位データを読み込んだことに応じて、解析データサイズKに「1」を加える(S38)。
次に、登録モジュール33は、解析幅Fを初期値のゼロにする(S39)。解析幅Fは、解析する単位データが示す横方向における画素数を示す。登録モジュール33は、解析幅Fが横値C未満であるか否かを判断する(S40)。すなわち、ステップS40では、解析する単位データが示す画素が図5における右端の画素まで到達したか否かが判断される。
登録モジュール33は、解析幅Fが横値C以上であると判断すると(S40:No)、ステップS34以降の処理を実行する。登録モジュール33は、解析幅Fが横値C未満であると判断すると(S40:Yes)、単位データを読み込んで、読み込んだ単位データのデータ長を取得する(S41)。データ長は、同じ色の画素が続くこと、及び、異なる色の画素が続くことを示す。また、登録モジュール33は、単位データを読み込んだことに応じて、解析データサイズKに「1」を加える(S42)。
登録モジュール33は、ステップS41で取得したデータ長が閾値未満であるか否かを判断する(S43)。すなわち、ステップS43では、同じ色の画素が続くか、異なる色の画素が続くかが判断される。具体的には、登録モジュール33は、単位データが8ビットである場合、データ長が閾値である128未満であるか否かを判断する。閾値は、メモリ22のROM24やEEPROMに固定値として予め記憶される。
登録モジュール33は、ステップS41で取得したデータ長が閾値未満であって、同じ色の画素が続くと判断すると(S43:Yes)、ステップS41で取得したデータ長が示す同じ色の画素の数に応じた数だけ単位データを読み込む(S44)。そして、登録モジュール33は、読み込んだ単位データの数だけ解析データサイズKを加算する(S45)。また、登録モジュール33は、ステップS41で取得したデータ長が示す同じ色の画素の数だけ解析幅Fを加算する(S46)。
一方、登録モジュール33は、ステップS41で取得したデータ長が閾値以上であって、異なる色の画素が続くと判断すると(S43:No)、ステップS41で取得したデータ長が示す異なる色の画素の数に応じた数だけ単位データを読み込む(S47)。そして、登録モジュール33は、読み込んだ単位データの数だけ解析データサイズKを加算する(S48)。また、登録モジュール33は、ステップS41で取得したデータ長が示す異なる色の画素の数だけ解析幅Fを加算する(S49)。
登録モジュール33は、ステップS46、S49の処理の実行後、ステップS40以降の処理を再度実行する。
登録モジュール33は、ステップS34において、解析高さDが縦値B以上であって、読み込んだ単位データが示す総画素数が1ページ分の画素数に到達したと判断すると(S34:No)、読み込んだ単位データの総数を示す解析データサイズKをメモリ22のRAM25或いはEEPROMに保存する(S50)。図6に示す例では、登録モジュール33は、第1ページの最後の画素を示す単位データまでの第1解析データサイズKと、第2ページの最後の画素を示す単位データまでの第2解析データサイズKと、第3ページの最後の画素を示す単位データまでの第3解析データサイズKと、をメモリ22に記憶させる。ステップS50の処理は、決定処理の一例である。
次に、登録モジュール33は、圧縮画像データが、未だ読み込んでいない単位データを有するか否かを判断する(S51)。すなわち、ステップS51では、圧縮画像データが次のページを有するか否かが判断される。
登録モジュール33は、次のページがあると判断すると(S51:Yes)、ステップS32以降の処理を再度実行する。登録モジュール33は、次のページがないと判断すると(S51:No)、解析処理を終了する。
登録モジュール33は、図2に示されるように、解析処理(S17)の終了後、発見したページの数だけページジョブをジョブ管理モジュール34に登録する(S18)。なお、登録モジュール33は、解析処理において、ページを発見するごとに、ページジョブをジョブ管理モジュール34に登録してもよい。
登録モジュール33は、登録したページジョブのページ情報をジョブ管理モジュール34に通知する(S19)。ページ情報は、解析処理のステップS50で保存した解析データサイズKを含む。
フローチャートには示されていないが、ジョブ管理モジュール34は、登録モジュール33によってページジョブが登録されたことに応じて、メモリ22のRAM25に印刷キューを記憶させる。すなわち、ジョブ管理モジュール34は、印刷キューを生成する。詳しくは、ジョブ管理モジュール34は、ページジョブの登録順に、印刷キューを生成する。例えば、ジョブ管理モジュール34は、第1ページのページジョブ、第2ページのページジョブ、第3ページのページジョブの順にページジョブが登録されたことに応じて、第1ページの印刷キュー、第2ページの印刷キュー、第3ページの印刷キューの順に、印刷キューをRAM25に記憶させる。そして、ジョブ管理モジュール34は、登録された順に印刷キューを処理する。すなわち、ページジョブを処理する。以下、詳しく説明する。
ジョブ管理モジュール34は、通知されたページ情報を用いて、登録されたページジョブを処理するページジョブ処理を実行する(S20)。具体的には、ジョブ管理モジュール34は、圧縮画像データを、ページごとの複数の部分圧縮データに分割し、部分圧縮データを解凍して解凍ページデータを生成し、生成した解凍ページデータを変換して印刷データを生成し、生成した印刷データを印刷エンジン15に出力する。ジョブ管理モジュール34は、印刷データの生成に要する時間を短縮するために、画像を回転させる変換が必要であるか否かによって、解凍モジュール36及び変換モジュール38に入力するコマンドを選択して決定する。図4を参照して、ページジョブ処理について詳しく説明する。解凍ページデータは、解凍部分データの一例である。ステップS20の処理は、ジョブ処理の一例である。
以下では、第1ページ(図6)に対するページジョブ処理について説明する。ジョブ管理モジュール34は、上述のモデル情報28をメモリ22から読み出して取得する(S61)。そして、ジョブ管理モジュール34は、取得したモデル情報28と、ステップS16(図2)で通知されたジョブ情報とに基づいて、圧縮画像データが示す画像を回転する変換を実行するか否かを判断する(S62)。例えば、ジョブ情報がA4サイズのシートへの印刷を示しており、モデル情報28が上述の横給紙を示す場合、ジョブ管理モジュール34は、画像を90°回転させる変換を実行すると判断する。或いは、ジョブ情報が両面印刷を示し、モデル情報28が縦給紙を示す場合、ジョブ管理モジュール34は、シートの裏面に印刷するページの画像について、180°回転させる変換を実行すると判断する(S62)。ステップS62の処理は、判断処理の一例である。
ジョブ管理モジュール34は、画像を回転させると判断すると(S62:Yes)、分割指示コマンドを分割モジュール35に入力する(S63)。分割指示コマンドは、メモリ22のRAM25に記憶された圧縮画像データを分割して第1ページの部分圧縮データを生成し、生成した第1ページの部分圧縮データをRAM25に記憶させることを指示するコマンドである。分割指示コマンドは、ステップS19で登録モジュール33から通知されたページ情報に含まれる上述の第1解析データサイズKと、RAM25の記憶領域を指定する領域指定情報とを付帯する。
分割モジュール35は、分割指示コマンドを受け付けると(S63)、分割処理を実行する(S64)。詳しく説明すると、分割モジュール35は、圧縮画像データをメモリ22のRAM25から読み出す。そして、分割モジュール35は、第1解析データサイズKを用いて、図6に示されるように、第1ページ画像の圧縮データと第2ページヘッダ情報との間で圧縮画像データを分割し、第1ページの部分圧縮データと、その余のデータとを生成する。そして、分割モジュール35は、生成した第1ページの部分圧縮データを、分割指示コマンドに指定されたRAM25の記憶領域に記憶させる。その余のデータは、メモリ22に記憶されることなく、破棄される。
なお、ジョブ管理モジュール34は、第2ページに対するページジョブ処理を実行する場合、例えば、第1解析データサイズK及び第2解析データサイズKと、RAM25の記憶領域を指定する領域指定情報とを付帯する分割指示コマンドを分割モジュール35に入力する。分割モジュール35は、第1解析データサイズK及び第2解析データサイズKを用いて、図6に示されるように、第1ページ画像の圧縮データと第2ページヘッダ情報との間、及び、第2ページ画像の圧縮データと第3ページヘッダ情報との間で圧縮画像データを分割し、さらに、ドキュメント情報を付加して、第2ページの部分圧縮データと、その余のデータとを生成する。その余のデータは、メモリ22に記憶されることなく、破棄される。
ジョブ管理モジュール34は、第3ページに対するページジョブ処理を実行する場合、例えば、第2解析データサイズK及び第3解析データサイズKと、RAM25の記憶領域を指定する領域指定情報とを付帯する分割指示コマンドを分割モジュール35に入力する。分割モジュール35は、第2解析データサイズK及び第3解析データサイズKを用いて、図6に示されるように、第2ページ画像の圧縮データと第3ページヘッダ情報との間で圧縮画像データを分割し、さらに、ドキュメント情報を付加して、第3ページの部分圧縮データと、その余のデータとを生成する。その余のデータは、メモリ22に記憶されることなく、破棄される。
ジョブ管理モジュール34は、分割指示コマンドを分割モジュール35に入力した後、分割モジュール35が分割処理を実行したか否かを判断する。例えば、ジョブ管理モジュール34は、分割指示コマンドで指示したRAM25の記憶領域をポーリングなどを用いて監視し、当該記憶領域に部分圧縮データが記憶されたことにより、分割処理が実行されたと判断する。或いは、ジョブ管理モジュール34は、分割処理を実行した分割モジュール35から、分割指示コマンドに対する応答を受け付けたことにより、分割処理が実行されたと判断する。
ジョブ管理モジュール34は、分割処理が実行されたと判断すると、解凍を行うことを指示する解凍指示コマンドを解凍モジュール36に入力する(S65)。解凍指示コマンドは、部分圧縮データが記憶されたRAM25の記憶領域と、解凍後の解凍ページデータを記憶するRAM25の記憶領域と、を示す領域指定情報を付帯する。解凍指示コマンドは、第1指示の一例である。
解凍モジュール36は、解凍指示コマンドを受け付けると(S65)、解凍処理を実行する(S66)。詳しく説明すると、解凍モジュール36は、部分圧縮データをメモリ22のRAM25から読み出す。そして、解凍モジュール36は、RAM25から読み出した部分圧縮データを、解凍IC41(図1)に入力する。解凍IC41は、入力された部分圧縮データを解凍する変換を行う。そして、解凍IC41は、解凍によって得られた解凍ページデータを出力する。解凍モジュール36は、解凍IC41が出力した解凍ページデータを、解凍指示コマンドが指定するRAM25の記憶領域に記憶させる。部分圧縮データは、変換対象データの一例である。解凍ページデータは、第1変換データの一例である。ステップS66の処理は、第1変換処理の一例である。
なお、ジョブ管理モジュール34は、分割処理が実行されたか否かを判断することなく解凍指示コマンドを出力してもよい。その場合、解凍指示コマンドを受け付けた解凍モジュール36は、ポーリングなどによって、メモリ22のRAM25に部分圧縮データが記憶されたか否かを監視し、部分圧縮データがRAM25に記憶されたことに応じて、解凍処理(S66)を実行する。
ジョブ管理モジュール34は、解凍指示コマンドを解凍モジュール36に入力した後、解凍モジュール36が解凍処理を実行したか否かを判断する。例えば、ジョブ管理モジュール34は、解凍指示コマンドで指示したRAM25の記憶領域をポーリングなどを用いて監視し、当該記憶領域に解凍ページデータが記憶されたことにより、解凍処理が実行されたと判断する。或いは、ジョブ管理モジュール34は、解凍処理を実行した解凍モジュール36から、解凍指示コマンドに対する応答を受け付けたことにより、解凍処理が実行されたと判断する。
ジョブ管理モジュール34は、解凍処理が実行されたと判断すると、回転を行うことを指示する回転指示コマンドを回転モジュール37に入力する(S67)。回転指示コマンドは、解凍ページデータが記憶されたRAM25の記憶領域と、回転後の解凍ページデータを記憶するRAM25の記憶領域と、を示す領域指定情報を付帯する。回転指示コマンドは、第2指示の一例である。
回転モジュール37は、回転指示コマンドを受け付けると(S67)、回転処理を実行する(S68)。詳しく説明すると、回転モジュール37は、解凍ページデータをメモリ22のRAM25から読み出す。そして、回転モジュール37は、RAM25から読み出した解凍ページデータに対して所定の演算処理を実行して、解凍ページデータが示す画像を回転させる変換処理を行う。所定の演算処理は、回転モジュール37に予め実装される。回転モジュール37は、回転させた後の解凍ページデータを、回転指示コマンドが指定するRAM25の記憶領域に記憶させる。回転させた後の解凍ページデータは、第2変換データの一例である。ステップS68の処理は、第2変換処理の一例である。
なお、ジョブ管理モジュール34は、解凍処理が実行されたか否かを判断することなく回転指示コマンド(S67)を出力してもよい。その場合、回転指示コマンドを受け付けた回転モジュール37は、ポーリングなどによって、メモリ22のRAM25に解凍ページデータが記憶されたか否かを監視し、解凍ページデータがRAM25に記憶されたことに応じて、回転処理を実行する。
ジョブ管理モジュール34は、回転指示コマンドを回転モジュール37に入力した後、回転モジュール37が回転処理を実行したか否かを判断する。例えば、ジョブ管理モジュール34は、回転指示コマンドで指示したRAM25の記憶領域をポーリングなどを用いて監視し、当該記憶領域に回転後の解凍ページデータが記憶されたことにより、回転処理が実行されたと判断する。或いは、ジョブ管理モジュール34は、回転処理を実行した回転モジュール37から、回転指示コマンドに対する応答を受け付けたことにより、回転処理が実行されたと判断する。
ジョブ管理モジュール34は、回転処理が実行されたと判断すると、変換指示コマンドを変換モジュール38に入力する(S69)。変換指示コマンドは、回転後の解凍ページデータが記憶されたRAM25の記憶領域と、変換後の印刷データを記憶するRAM25の記憶領域と、を示す領域指定情報を付帯する。変換指示コマンドは、第3指示の一例である。ステップS63、S65、S67の処理は、非連動指示処理の一例である。
変換モジュール38は、変換指示コマンドを受け付けると(S69)、変換処理を実行する(S70)。詳しく説明すると、変換モジュール38は、回転後の解凍ページデータをメモリ22のRAM25から読み出す。そして、変換モジュール38は、RAM25から読み出した回転後の解凍ページデータを、変換IC42(図1)に入力する。変換IC42は、入力された回転後の解凍ページデータを印刷データに変換する。そして、変換IC42は、印刷データを出力する。変換モジュール38は、変換IC42が出力した印刷データを、変換指示コマンドが指定するRAM25の記憶領域に記憶させる。ステップS70の処理は、第3変換処理の一例である。
なお、ジョブ管理モジュール34は、回転処理が実行されたか否かを判断することなく変換指示コマンドを出力してもよい。その場合、変換指示コマンドを受け付けた変換モジュール38は、ポーリングなどによって、メモリ22のRAM25に回転後の解凍ページデータが記憶されているか否かを監視し、回転後の解凍ページデータがRAM25に記憶されたことに応じて、変換処理を実行する。
ジョブ管理モジュール34は、変換指示コマンドを変換モジュール38に入力した後、変換モジュール38が変換処理を実行したか否かを判断する。例えば、ジョブ管理モジュール34は、変換指示コマンドで指示したRAM25の記憶領域をポーリングなどを用いて監視し、当該記憶領域に印刷データが記憶されたことにより、変換処理が実行されたと判断する。或いは、ジョブ管理モジュール34は、変換処理を実行した変換モジュール38から、変換指示コマンドに対する応答を受け付けたことにより、変換処理が実行されたと判断する。
ジョブ管理モジュール34は、変換処理が実行されたと判断すると、出力指示コマンドを印刷制御モジュール39に入力する(S71)。出力指示コマンドは、印刷データが記憶されたRAM25の記憶領域を示す領域指定情報を付帯する。
印刷制御モジュール39は、出力指示コマンドを受け付けると(S71)、出力処理を実行する(S72)。詳しく説明すると、印刷制御モジュール39は、印刷データをメモリ22のRAM25から読み出す。そして、印刷制御モジュール39は、RAM25から読み出した印刷データを、駆動素子18のドライブ回路19に対して出力する。
なお、ジョブ管理モジュール34は、変換処理が実行されたか否かを判断することなく出力指示コマンドを出力してもよい。その場合、出力指示コマンドを受け付けた印刷制御モジュール39は、ポーリングなどによって、メモリ22のRAM25に印刷データが記憶されているか否かを監視し、印刷データがRAM25に記憶されたことに応じて、出力処理を実行する。
ジョブ管理モジュール34は、ステップS62において、画像を回転させないと判断すると(S62:No)、上述のステップS63の処理を実行し、分割モジュール35に分割指示コマンドを入力する(S64)。ジョブ管理モジュール34は、分割モジュール35が上述の分割処理を実行したと判断すると、連動解凍指示コマンドを解凍モジュール36に入力し(S73)、かつ、連動変換指示コマンドを変換モジュール38に入力する(S74)。連動解凍指示コマンドは、第1連動指示の一例である。連動変換指示コマンドは、第2連動指示の一例である。ステップS73、S74の処理は、連動指示処理の一例である。
連動解凍指示コマンドは、部分圧縮データが記憶されたメモリ22のRAM25の領域を示す情報を付帯する。また、連動変換指示コマンドは、印刷データを記憶するメモリ22のRAM25の領域を示す情報を付帯する。
解凍モジュール36は、連動解凍指示コマンドを受け付けたことに応じて(S73)、解凍出力処理を実行する(S75)。詳しく説明すると、まず、解凍モジュール36は、連動解凍指示コマンドが指定するRAM25の記憶領域から、部分圧縮データを読み出す。そして、ジョブ管理モジュール34は、読み出した部分圧縮データを解凍IC41(図1)に入力する。解凍IC41は、入力された部分圧縮データを解凍する変換を行って、解凍後の部分圧縮データである解凍ページデータを出力する。出力された解凍ページデータは、接続線43(図1(B))を通じて変換IC42に入力される。変換IC42は、入力された解凍ページデータを印刷データに変換して出力する。
変換モジュール38は、連動変換指示コマンドを受け付けたことに応じて(S74)、連動変換処理を実行する(S76)。詳しく説明すると、変換モジュール38は、変換IC42が出力する印刷データを、連動変換指示コマンドが指定するRAM25の記憶領域に記憶させる。
ジョブ管理モジュール34は、ポーリングなどによって、印刷データが記憶されるRAM25の領域を監視する。そして、ジョブ管理モジュール34は、ドライブ回路19に出力可能なだけの量の印刷データがRAM25に記憶されたことに応じて、印刷制御モジュール39に出力指示コマンドを入力する(S77)。出力指示コマンドは、印刷データが記憶されるRAM25の記憶領域を示す情報を付帯する。ドライブ回路19に出力可能なだけの量の印刷データとは、例えば、1ページ分の印刷データであってもよいし、1ページ未満の印刷データであってもよい。ドライブ回路19に出力可能なだけの量の印刷データは、プリンタ10の仕様によって変わる。
印刷制御モジュール39は、出力指示コマンドを受け付けたことに応じて(S77)、印刷データをドライブ回路19に出力する出力処理を実行する(S72)。
ジョブ管理モジュール34は、図2に示すように、ページジョブ処理(S20)の実行後、ページジョブを終了させる(S21)。具体的には、ジョブ管理モジュール34は、出力した印刷データに対する印刷の実行を印刷エンジン15が終了したことを確認した後、メモリ22のRAM25に記憶された印刷キューを削除する。ステップS20の処理は、ページジョブ終了処理の一例である。
ジョブ管理モジュール34は、メモリ22のRAM25に記憶された印刷キューが全て削除されたことに応じて、すなわち、全てのページの印刷が終了したことに応じて、印刷ジョブを終了させる(S22)。
[実施形態の作用効果]
本実施形態では、回転処理が不要である場合には、解凍IC41が解凍して出力する解凍ページデータが、メモリ22に記憶されることなく変換IC42に入力される。したがって、回転処理が不要である場合において、印刷データの生成に要する時間が短くなる。詳しく説明すると、回転処理が不要である場合において、解凍IC41が出力した解凍ページデータがメモリ22に記憶され、変換モジュール38が解凍ページデータをメモリ22から読み出して変換IC42に入力すると、メモリ22への解凍ページデータの書き込み、及び、解凍ページデータのメモリ22からの読み出しに時間を要する。本実施形態では、解凍IC41が解凍して出力する解凍ページデータが、メモリ22に記憶されることなく変換IC42に直接入力される。したがって、メモリ22への解凍ページデータの書き込み及び読み出しに要する時間の分だけ、印刷データの生成に要する時間が短縮する。
本実施形態では、制御プログラム27は、圧縮画像データを分割し、分割によって得られた部分圧縮データを解凍して印刷データを生成する。すなわち、圧縮画像データから印刷データを生成して印刷可能なプリンタにおいて、印刷データの生成に要する時間が短縮する。
本実施形態では、ジョブ管理モジュール34の下位の分割モジュール35において、圧縮画像データを分割して部分圧縮データを生成する。そして、1ページ分の部分圧縮データが順次生成され、1ページ分ずつ、部分圧縮データが解凍されて印刷データに変換される。したがって、全てのページの部分圧縮データがメモリ22に一度に記憶されることがなく、全てのページの部分圧縮データがメモリ22に一度に記憶される場合に比べ、コントローラ11は、メモリ22のRAM25の容量を低減することができる。或いは、メモリ22のRAM25の容量が、全てのページの部分圧縮データを記憶できない程度の容量であっても、コントローラ11は、入力された圧縮データを印刷データに変換して印刷を行うことができる。
本実施形態では、ジョブ管理モジュール34は、ポーリングなどによって、印刷データが記憶されるRAM25の領域を監視し、ドライブ回路19に出力可能なだけの量の印刷データがRAM25に記憶されたことに応じて、印刷制御モジュール39に出力指示コマンドを入力する(S77)。したがって、コントローラ11は、回転処理(S68)が不要な場合に(S62:No)、解凍IC41から変換IC42に解凍ページデータを直接入力しても、ドライブ回路19に出力可能なだけの量の印刷データを確実に出力することができる。詳しく説明すると、変換モジュール38は、メモリ22から解凍ページデータを読み出して変換する場合、生成した印刷データの量を把握することができる。しかしながら、解凍IC41から変換IC42に解凍ページデータが直接入力されると、変換モジュール38は、生成された印刷データの量を把握できない。本実施形態では、ジョブ管理モジュール34は、ポーリングなどによって印刷データを監視し、印刷制御モジュール39に出力指示を行う(S77)。その結果、ジョブ管理モジュール34は、ドライブ回路19に出力可能なだけの量の印刷データを確実に出力することができる。
[変形例]
上述の実施形態では、圧縮画像データが、ジョブ管理モジュール34の分割モジュール35において分割される例を説明した。しかしながら、圧縮画像データは、登録モジュール33において分割されてもよい。この場合、分割モジュール35は、ジョブ管理モジュール34に設けられない。登録モジュール33は、ステップS17(図2)の解析処理の実行後、ステップS64の分割処理(図4)を実行し、第1ページの部分圧縮データ、第2ページの部分圧縮データ、及び第3ページの部分圧縮データをメモリ22のRAM25に記憶させる。この場合、第1ページの部分圧縮データ、第2ページの部分圧縮データ、及び第3ページの部分圧縮データを記憶するだけの容量のRAM25が必要になる。すなわち、第1ページの部分圧縮データ、第2ページの部分圧縮データ、及び第3ページの部分圧縮データを個々に記憶するだけの容量のRAM25が必要な上述の実施形態に比べ、大きな容量のRAM25が必要になる。しかしながら、上述の実施形態では、第1ページの部分圧縮データを生成するための分割処理、第2ページの部分圧縮データを生成するための分割処理、及び第3ページの部分圧縮データを生成するための分割処理の3回の分割処理の実行が必要であるのに対し、圧縮画像データを登録モジュール33において分割する場合、1回の分割処理で全てのページの部分圧縮データが生成される。すなわち、圧縮画像データを登録モジュール33において分割する場合、実施形態に比べ大きな容量のRAM25が必要になるが、印刷データの生成に要する時間がさらに短くなる。
上述の実施形態では、第2変換処理の一例として、回転処理(S68)を説明した。しかしながら、第2変換処理は、他の処理であってもよい。他の処理とは、例えば、ページヘッダやフッタに印刷時刻などを示すテキストデータを追加する処理や、ページに余白を追加する処理や、ページの余白の大きさを変更する処理などである。
上述の実施形態では、複数のページを含む圧縮画像データがプリンタ10に入力される例を説明した。しかしながら、1ページ分の圧縮画像データを含む複数の圧縮画像データがプリンタ10に順次入力されてもよい。その場合、解析処理(S17)や分割処理(S64)が実行されることなく、印刷データが生成される。
上述の実施形態では、複数のページを含む圧縮画像データが、1ページずつの部分圧縮データに分割され、1ページ分ずつ印刷データが生成される例を説明した。しかしながら、図7に示されるように、1ページ分の部分圧縮データが、さらに、複数の分割部分圧縮データに分割されてもよい。各分割部分圧縮データは、1ページの画像を分割した分割画像をそれぞれ示す。図7に示す例では、1ページの画像は、第1分割画像、第2分割画像、及び第3分割画像に分割される。そして、登録モジュール33は、解析処理(S17)において、分割位置となる単位データを示すデータサイズKをメモリ22にさらに記憶させる。分割モジュール35は、分割処理(S64)によって1ページ分の部分圧縮データを生成した後、メモリ22に記憶されたデータサイズKが示す単位データを用いて部分圧縮データをさらに分割し、複数の分割部分圧縮データを生成する。各分割部分圧縮データは、実施形態と同様にして、解凍処理(S66)や、回転処理(S68)や、変換処理(S70)を実行されて印刷データに変換され、出力される。
上述の実施形態では、解析処理において、解析高さDが縦値B未満か否かにより(S34)、1ページの解析が終了したか否かを判断する例を説明した。しかしながら、解析した単位データが示す総画素数が、解像度が示す1ページ分の総画素数に到達したか否かにより、1ページの解析が終了したか否かが判断されてもよい。解像度が示す1ページ分の総画素数は、例えば、解像度が600×600である場合、360000である。
10・・・プリンタ
11・・・コントローラ
21・・・CPU
22・・・メモリ
27・・・制御プログラム
32・・・受付モジュール
33・・・登録モジュール
34・・・ジョブ管理モジュール
36・・・解凍モジュール
37・・・回転モジュール
38・・・変換モジュール
39・・・印刷制御モジュール
41・・・解凍IC
42・・・変換IC

Claims (6)

  1. コントローラを備えており、
    前記コントローラは、
    メモリと、
    コンピュータと、
    前記コンピュータによって実行される複数のモジュールを含むプログラムと、
    入力されたデータを変換して出力する第1電子回路と、
    入力されたデータを変換して出力する電子回路であって、前記第1電子回路とは異なる変換を行い、かつ、前記第1電子回路と接続線によって接続された第2電子回路と、を有しており、
    前記複数のモジュールは、
    画像データ及び印刷設定の入力を受け付ける受付処理を前記コンピュータに実行させる受付モジュールと、
    前記画像データ及び前記印刷設定に基づくジョブをジョブ管理モジュールに登録するジョブ登録処理を前記コンピュータに実行させる登録モジュールと、
    登録された前記ジョブが示す前記画像データを変換して印刷データを生成して出力し、登録された前記ジョブを処理するジョブ処理を前記コンピュータに実行させる前記ジョブ管理モジュールと、であり、
    前記ジョブ管理モジュールは、
    前記画像データに応じた変換対象データを前記第1電子回路を用いて第1変換データに変換する第1変換処理を前記コンピュータに実行させる第1サブモジュールと、
    前記第1変換データを第2変換データに変換する第2変換処理を前記コンピュータに実行させる第2サブモジュールと、
    前記第2変換データを前記第2電子回路を用いて前記印刷データに変換する第3変換処理を前記コンピュータに実行させる第3サブモジュールと、
    前記印刷データを出力する出力処理を前記コンピュータに実行させる第4サブモジュールと、を有しており、
    前記ジョブ管理モジュールは、
    前記第2サブモジュールに前記第2変換処理を実行させるか否かを、登録された前記ジョブが示す前記印刷設定と、前記メモリに記憶された設定情報との少なくとも一方に基づいて判断する判断処理と、
    前記第2変換処理を実行すると判断したことに応じて、前記第1変換処理を実行して前記第1変換データを前記メモリに記憶させる第1指示を前記第1サブモジュールに入力し、前記第2変換処理を実行し、前記第2変換データを前記メモリに記憶させる第2指示を前記第2サブモジュールに入力し、前記第3変換処理を実行して前記印刷データを出力させる第3指示を前記第3サブモジュールに入力する非連動指示処理と、
    前記第2変換処理を実行しないと判断したことに応じて、前記第1変換処理を実行し、前記第1変換データを前記接続線を通じて前記第2電子回路に入力させる第1連動指示を前記第1サブモジュールに入力し、前記第2電子回路が変換した後のデータに基づく前記印刷データを出力させる第2連動指示を前記第3サブモジュールに入力する連動指示処理と、を前記コンピュータに実行させるプリンタ。
  2. 前記受付モジュールは、前記受付処理において、圧縮された前記画像データである圧縮画像データの入力を受け付け、
    前記第1サブモジュールは、前記第1変換処理において、前記圧縮画像データを分割して得られる部分圧縮データを解凍して解凍部分データを出力する変換を前記第1電子回路に実行させ、前記部分圧縮データは、前記変換対象データであり、前記解凍部分データは、前記第1変換データである請求項1に記載のプリンタ。
  3. 前記登録モジュールは、
    前記圧縮画像データが有する複数の単位データがそれぞれ示す画素数をカウントし、カウント値に基づいて、複数の前記部分圧縮データ間の区切りとなる前記単位データを決定する決定処理を前記コンピュータに実行させ、
    前記ジョブ管理モジュールは、
    前記決定処理で決定した前記単位データに基づいて、前記圧縮画像データを複数の前記部分圧縮データに分割し、分割した複数の前記部分圧縮データのうちの一の前記部分圧縮データを前記メモリの指定領域に記憶させる分割処理を、前記コンピュータに繰り返して実行させる第5サブモジュールをさらに有する請求項2に記載のプリンタ。
  4. 前記登録モジュールは、
    前記圧縮画像データが有する複数の単位データがそれぞれ示す画素数をカウントし、カウント値に基づいて、複数の前記部分圧縮データ間の区切りとなる前記単位データを決定する決定処理と、
    前記決定処理で決定した前記単位データに基づいて、前記圧縮画像データを複数の前記部分圧縮データに分割し、分割した複数の前記部分圧縮データを前記メモリの指定領域に記憶させる分割処理と、を前記コンピュータに実行させる請求項2に記載のプリンタ。
  5. 前記登録モジュールは、前記ジョブ登録処理において、前記画像データに含まれるページに基づくページジョブを前記ジョブ管理モジュールにさらに登録し、
    前記ジョブ管理モジュールは、
    前記印刷設定に基づいて、1ページ分のデータサイズを取得し、前記第2連動指示を入力した前記第3サブモジュールが出力する前記印刷データが、1ページ分のデータサイズになったことに応じて、登録された前記ページジョブを終了させるページジョブ終了処理を前記コンピュータに実行させる請求項1から4のいずれかに記載のプリンタ。
  6. 前記第2変換処理は、前記部分圧縮データが示す画像の向きを変更する処理である請求項2からのいずれかに記載のプリンタ。
JP2019030438A 2019-02-22 2019-02-22 プリンタ Active JP7238457B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019030438A JP7238457B2 (ja) 2019-02-22 2019-02-22 プリンタ
US16/797,203 US11029904B2 (en) 2019-02-22 2020-02-21 Printing apparatus capable of converting image data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019030438A JP7238457B2 (ja) 2019-02-22 2019-02-22 プリンタ

Publications (2)

Publication Number Publication Date
JP2020135611A JP2020135611A (ja) 2020-08-31
JP7238457B2 true JP7238457B2 (ja) 2023-03-14

Family

ID=72142903

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019030438A Active JP7238457B2 (ja) 2019-02-22 2019-02-22 プリンタ

Country Status (2)

Country Link
US (1) US11029904B2 (ja)
JP (1) JP7238457B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008213406A (ja) 2007-03-07 2008-09-18 Seiko Epson Corp 印刷処理装置、印刷処理方法及びそのプログラム
JP2009166451A (ja) 2008-01-21 2009-07-30 Seiko Epson Corp プリンタ、および、印刷システム
JP2012171110A (ja) 2011-02-17 2012-09-10 Seiko Epson Corp 画像データ処理装置、記録装置及び画像データ処理方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4817994B2 (ja) * 2006-07-03 2011-11-16 キヤノン株式会社 データ管理システム
JP4825170B2 (ja) * 2007-05-31 2011-11-30 株式会社リコー 画像形成装置
JP6157282B2 (ja) * 2013-08-29 2017-07-05 キヤノン株式会社 画像処理装置、情報処理方法及びプログラム
JP6631278B2 (ja) 2016-01-29 2020-01-15 ブラザー工業株式会社 ドライバプログラム、及びドライバプログラムとプリンタとのセット
JP6638498B2 (ja) * 2016-03-18 2020-01-29 株式会社リコー 情報処理装置、プログラム及び印刷システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008213406A (ja) 2007-03-07 2008-09-18 Seiko Epson Corp 印刷処理装置、印刷処理方法及びそのプログラム
JP2009166451A (ja) 2008-01-21 2009-07-30 Seiko Epson Corp プリンタ、および、印刷システム
JP2012171110A (ja) 2011-02-17 2012-09-10 Seiko Epson Corp 画像データ処理装置、記録装置及び画像データ処理方法

Also Published As

Publication number Publication date
JP2020135611A (ja) 2020-08-31
US11029904B2 (en) 2021-06-08
US20200272390A1 (en) 2020-08-27

Similar Documents

Publication Publication Date Title
TW396320B (en) Method and apparatus for compacting swath data for printers
JP4458176B2 (ja) 印刷制御装置、印刷装置およびプログラム
US8179558B2 (en) Image processing apparatus, image processing method, program and storage medium constructed to generate print data including a bitmap image and attribute data of each pixel of the bitmap image
EP2575024B1 (en) Print data processing apparatus, a print data processing method, a printing system and program, a page data creating apparatus, and a rasterization processing apparatus
JP7251205B2 (ja) プリンタ及びモジュール
JP7259396B2 (ja) プリンタ及びモジュール
US7079272B2 (en) Printing system, controller used in printing system, and printing apparatus
JP7238457B2 (ja) プリンタ
CN102693097A (zh) 图像处理***和图像处理方法
JP7263830B2 (ja) プリンタ及びモジュール
JP5915091B2 (ja) 画像形成装置、画像形成システム、出力用画像データ処理方法、プログラム及び記録媒体
JP4641459B2 (ja) 情報処理装置及びプリンタドライバ
US20040070784A1 (en) Methods, computer media and devices for processing compressed data intended for printing
JP4706884B2 (ja) 画像処理装置、画像処理プログラムおよび印刷装置
JP2015219683A (ja) 印刷装置及び印刷装置の制御方法
US9444968B2 (en) Image forming apparatus that continues without halt to perform print job including sign where glyph is invalid data, and recording medium
JP5786394B2 (ja) 印刷装置、印刷システム、印刷方法およびプログラム
JP7077838B2 (ja) プログラム、情報処理装置
JP2010181999A (ja) 印刷システム、印刷装置、印刷制御プログラム、
JP2010231621A (ja) 印刷制御プログラム,印刷データ出力装置,および印刷システム
JP2017087672A (ja) 画像形成システム
JP3606985B2 (ja) ページプリンタにおけるデータ圧縮・伸長方法及びページプリンタ
US9367525B2 (en) Data processing apparatus for page ordering, data processing method, and nontransitory storage medium for same
JP2002123378A (ja) 文書印刷処理システム及びそのプログラムを記録した記録媒体
JP2005258960A (ja) 印刷制御装置及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221121

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230131

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230213

R150 Certificate of patent or registration of utility model

Ref document number: 7238457

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150