JP7251205B2 - プリンタ及びモジュール - Google Patents

プリンタ及びモジュール Download PDF

Info

Publication number
JP7251205B2
JP7251205B2 JP2019030422A JP2019030422A JP7251205B2 JP 7251205 B2 JP7251205 B2 JP 7251205B2 JP 2019030422 A JP2019030422 A JP 2019030422A JP 2019030422 A JP2019030422 A JP 2019030422A JP 7251205 B2 JP7251205 B2 JP 7251205B2
Authority
JP
Japan
Prior art keywords
data
compressed
image data
compressed image
memory
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
JP2019030422A
Other languages
English (en)
Other versions
JP2020131619A (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 JP2019030422A priority Critical patent/JP7251205B2/ja
Priority to US16/796,316 priority patent/US11093194B2/en
Publication of JP2020131619A publication Critical patent/JP2020131619A/ja
Application granted granted Critical
Publication of JP7251205B2 publication Critical patent/JP7251205B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1856Generation of the printable image characterized by its workflow
    • G06K15/1861Generation of the printable image characterized by its workflow taking account of a limited available memory space or rasterization time
    • G06K15/1865Generation of the printable image characterized by its workflow taking account of a limited available memory space or rasterization time by compressing the rasterized print data
    • 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
    • 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/124Parallel printing or parallel ripping
    • 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/1247Job translation or job parsing, e.g. page banding by conversion to printer ready format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/10Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers by matrix printers
    • G06K15/102Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers by matrix printers using ink jet print heads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/1817Buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1856Generation of the printable image characterized by its workflow
    • G06K15/1857Generation of the printable image characterized by its workflow involving parallel processing in the same printing apparatus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/15Indexing scheme related to printer interfaces for computers, indexing schema related to group G06F3/12
    • G06F2206/1514Sub-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/1218Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
    • G06F3/122Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to computing resources, e.g. memory, CPU

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Record Information Processing For Printing (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Facsimiles In General (AREA)
  • Editing Of Facsimile Originals (AREA)

Description

本発明は、圧縮された画像データを解凍して印刷を行うプリンタに関する。
パーソナルコンピュータなどの端末装置にインストールされたプリンタドライバから、PDL(Page Description Languageの略)などで記述された印刷データを受信し、受信した印刷データをシートに印刷するプリンタがある(例えば、特許文献1参照)。
パーソナルコンピュータなどの端末装置にインストールされたプリンタドライバは、端末装置のメモリのRAMを用いて、印刷が指示された画像データを、プリンタが印刷を実行可能な形式の印刷データに変換して出力する。
特開2017-134718号公報
近年は、プリンタドライバを介さずに、端末装置から画像データを受信して印刷するプリンタが望まれつつある。すなわち、端末装置から画像データを受信し、受信した画像データを印刷データに変換して印刷を行えるプリンタが望まれつつある。
しかしながら、データの変換に用いられるRAMは高価であるため、プリンタに実装されるメモリのRAMの容量は、パーソナルコンピュータなどの端末装置のメモリのRAMの容量に比べて小さいことが一般的である。RAMの容量が小さいと、1ページの画像データのデータ量が大きい場合に、印刷データに変換することができなくなる。例えば、画像データの解像度が大きい場合に、1ページの画像データのデータ量が大きくなる。
本発明は、入力された画像データの印刷を可能なプリンタを提供することを目的とする。
本明細書では様々な開示を行う。開示例のプリンタは、メモリと、コントローラと、を備える。前記コントローラは、圧縮された画像データである圧縮画像データの入力を受け付ける受付処理と、前記圧縮画像データを前記メモリに記憶させる第1記憶処理と、前記メモリに記憶された1ページ分の前記圧縮画像データを解析することで、当該圧縮画像データが示す画像を複数の分割画像に分割した場合における当該各分割画像をそれぞれ示す複数の部分圧縮データが、当該圧縮画像データのどの部分であるかを特定する特定処理と、前記部分圧縮データ、或いは当該部分圧縮データを示す情報を前記メモリに記憶させる第2記憶処理と、前記メモリに記憶された複数の前記部分圧縮データのうち、一の前記部分圧縮データを解凍し、解凍によって得られた部分解凍データに基づいて、印刷データを生成する第1生成処理と、前記印刷データを出力する第1出力処理と、を実行する。前記コントローラは、前記第1生成処理及び前記第1出力処理を、前記部分圧縮データの数に応じた回数だけ繰り返して実行し、前記第1出力処理によって出力された前記印刷データに基づいて印刷を実行する。
コントローラは、圧縮画像データから複数の部分圧縮データを特定し、特定した部分圧縮データを解凍して部分解凍データを取得する。コントローラは、取得した部分解凍データに基づいて印刷データを生成し、生成した印刷データを出力する。そして、コントローラは、印刷データの生成と出力とを繰り返して、1ページ分の印刷データを出力する。したがって、解凍された1ページ分の画像データ全体を処理することができるだけの容量を有さないメモリを備えたプリンタであっても、1ページの圧縮画像データの印刷を行うことができる。
図1(A)は、プリンタ10の構成を示す図であり、図1(B)は、制御プログラム27の構成を示す図である。 図2は、圧縮画像データを受け付けて印刷エンジン15に印刷を実行させる制御プログラム27の処理を示す図である。 図3は、解析処理の一部を示すフローチャートである。 図4(A)は、解析処理の残りを示すフローチャートであり、図4(B)は、リプリント処理のフローチャートである。 図5は、ジョブ管理モジュール54の処理を示す図である。 図6は、画像における画素を示す図である。 図7は、部分圧縮データを説明する説明図である。 図8は、他の分割位置で分割された部分圧縮データを説明する説明図である。 図9(A)は、圧縮画像データの構成を示す図であり、図9(B)は、部分圧縮データのデータ構造を示す図である。
以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明される実施形態は開示例にすぎず、本発明の要旨を変更しない範囲で適宜変更できることは言うまでもない。例えば、後述する各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更することができる。
本実施形態では、図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のタッチセンサとの一方のみを有していてもよい。操作スイッチ14及びディスプレイ13のタッチセンサは、ユーザインタフェースの一例である。
印刷エンジン15は、給紙トレイと、ヘッド31と、給送ローラ32と、搬送ローラ33と、排紙ローラ34と、排紙トレイと、駆動回路35と、駆動モータ36と、を有する。駆動モータ36は、給送ローラ32、搬送ローラ33、及び排紙ローラ34を回転駆動させる。給紙トレイに載置されたシートは、回転駆動された給送ローラ32によって給紙トレイから給送され、次いで、回転駆動された搬送ローラ33によって搬送される。シートは、搬送ローラ33によって搬送されつつ、ヘッド31からインク滴を吐出され、画像を印刷される。すなわち、印刷エンジン15は、シートを搬送し、搬送するシートに印刷を行い、印刷を行ったシートを排紙トレイに排出する。
ヘッド31は、インク滴を吐出する駆動素子37を有する。駆動素子37は、例えば、圧電素子やヒータである。圧電素子は、直流電圧を印加されることによって変形し、変形することによってインク滴を吐出する。ヒータは、直流電圧を印加されることによってインクを加熱して突沸させ、インク滴を吐出させる。
駆動回路35は、駆動素子37を駆動させる回路である。駆動回路35は、入力された印刷データに応じたタイミング及び電圧値で駆動素子37に直流電圧を印加する。印刷データは、コントローラ11によって、駆動回路35に入力される。
コントローラ11は、中央演算処理装置であるCPU21と、プログラムや情報やデータを記憶するメモリ22と、通信バス23と、を備える。CPU21は、コンピュータの一例である。
コントローラ11は、例えば、パターン回路基板と、パターン回路基板に実装されたマイクロコンピュータや種々のICやコンデンサやダイオードなどの種々の電子部品によって実現される。
CPU21及びメモリ22は、通信バス23と接続されている。CPU21は、メモリ22に記憶された後述のOS26及び制御プログラム27を実行する。CPU21によって実行されるOS26や制御プログラム27は、データや情報をメモリ22から読み出し、或いはメモリ22に書き込む。詳しくは後述される。
また、通信バス23は、上述の通信I/F12、ディスプレイ13、操作スイッチ14、印刷エンジン15の駆動モータ36、及び駆動回路35と接続されている。すなわち、後述のOS26及び制御プログラム27を実行するCPU21は、通信I/F12を通じて情報やデータを情報処理装置から受信可能であり、ディスプレイ13に文字や画像を表示可能であり、ディスプレイ13のタッチセンサや操作スイッチ14を通じてユーザの指示を受付可能であり、印刷エンジン15の駆動モータ36や駆動回路35に情報やデータを入力可能である。
メモリ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を記憶している。
また、ROM24は、プリンタ10の仕様を示すモデル情報28を記憶する。モデル情報28は、例えば、プリンタ10のモデル名や、プリンタ10が印刷を実行可能なシートのサイズを示す情報や、カラー印刷を実行可能であることを示す情報や、両面印刷を実行可能であることを示す情報や、搬送するシートの向きを示す情報などの情報を含む。搬送するシートの向きを示す情報とは、例えば、A4サイズのシートを搬送する場合、シートの長手方向が搬送向きに沿う縦給紙を行うことを示す情報や、シートの短手方向が搬送向きに沿う横給紙を行うことを示す情報などである。モデル情報28は、例えば、MIB(Management Information Baseの略)情報としてROM24に記憶される。なお、モデル情報28は、EEPROMに記憶されていてもよい。
また、ROM24は、分割情報を記憶する。分割情報は、図7に示すように、印刷する画像を4分割することを示す情報や、図8に示すように、3分割することを示す情報である。詳しくは後述する。
RAM25は、OS26や制御プログラム27の実行に用いられ、また、圧縮画像データから印刷データを生成するための処理の実行に用いられる。詳しくは後述する。
制御プログラム27は、圧縮された画像データである圧縮画像データを受け付け、受け付けた圧縮画像データを印刷データに変換し、印刷データを上述の駆動回路35及び駆動モータ36に出力して、印刷エンジン15に印刷を実行させるプログラムである。
制御プログラム27は、図1(B)に示されるように、複数のモジュールと、複数のモジュールの上位に位置するプロトコル階層であるアプリケーション51と、を有する。複数のモジュールは、受付モジュール52、解析モジュール53、ジョブ管理モジュール54である。ジョブ管理モジュール54の下位には、分割モジュール55、解凍モジュール56、変換モジュール57、及び印刷制御モジュール58が設けられている。以下では、受付モジュール52、解析モジュール53、ジョブ管理モジュール54、分割モジュール55、解凍モジュール56、変換モジュール57、及び印刷制御モジュール58を、受付モジュール52等と記載して説明することがある。また、分割モジュール55、解凍モジュール56、変換モジュール57、及び印刷制御モジュール58を分割モジュール55等と記載して説明することがある。
アプリケーション51及び受付モジュール52等は、疑似的に並行して実行される。すなわち、アプリケーション51及び受付モジュール52等は、いわゆるマルチタスク処理によって実行される。
受付モジュール52は、画像データを圧縮したデータである圧縮画像データを受け付ける受付処理を実行するモジュールである。受付モジュール52は、通信I/F12を通じて情報処理装置から圧縮画像データを受け付け、或いは、プリンタ10に装着されたUSBメモリ等から入力された圧縮画像データを受け付ける。受付モジュール52は、受け付けた圧縮画像データを、RAM25の、アプリケーション51が指定する所定の記憶領域に記憶させる。
解析モジュール53は、受付モジュール52がメモリ22に記憶させた圧縮画像データを解析して印刷ジョブ登録を行うモジュールである。解析モジュール53は、受付モジュール52が圧縮画像データを受け付けたことに応じて、印刷ジョブを後述のジョブ管理モジュール54に登録する。そして、解析モジュール53は、圧縮画像データを解凍することなく、圧縮画像データにおける分割位置を見つけ出す解析処理(図3)を実行する。詳しくは後述する。解析モジュール53は、モジュールの一例である。
ジョブ管理モジュール54は、下位の分割モジュール55等に後述の処理を実行させて、印刷エンジン15の駆動回路35及び駆動モータ36に印刷データを入力する処理を実行する。すなわち、ジョブ管理モジュール54は、登録された印刷ジョブを管理及び処理するモジュールである。
分割モジュール55は、圧縮画像データに基づいて、圧縮画像データを分割した部分圧縮データを生成するモジュールである。詳しく説明すると、圧縮画像データを解凍して得られる画像データは、画像の解像度によっては、メモリ22が有するRAM25の容量では処理できないことが考えられる。分割モジュール55は、圧縮画像データの全てを後述の解凍モジュール56が解凍しないように、圧縮画像データを分割した複数の部分圧縮データを生成する。
図7を参照して具体的に説明する。部分圧縮データは、圧縮画像データが示す1ページの画像を2つや3つや4つなどに分割した分割画像を示す。図7に示す例では、圧縮画像データが示す画像は、第1分割画像、第2分割画像、第3分割画像、及び第4分割画像の4つの分割画像に分割されている。第1分割画像は、部分圧縮データである第1部分圧縮データによって示される。第2分割画像は、部分圧縮データである第2部分圧縮データによって示される。第3分割画像は、部分圧縮データである第3部分圧縮データによって示される。第4分割画像は、部分圧縮データである第4部分圧縮データによって示される。圧縮画像データは、分割モジュール55によって、第1部分圧縮データ、第2部分圧縮データ、第3部分圧縮データ、及び第4部分圧縮データの4つの部分圧縮データに分割される。
解凍モジュール56は、分割モジュール55が生成した部分圧縮データを解凍して部分解凍データを生成するモジュールである。
変換モジュール57は、解凍モジュール56が生成した部分解凍データを印刷データに変換するモジュールである。変換は、例えば、回転変換、色変換、誤差拡散、5値化などである。
回転変換は、部分解凍データが示す分割画像を90°や180°や270°(-90°でもよい)の回転角度で回転させる変換である。例えば、上述のモデル情報28が、上述の横給紙を示す場合に、90°の回転角度で部分解凍データが示す分割画像を回転させる回転変換が実行される。
色変換は、解凍ページデータが有するRGBの色データを、印刷エンジン15が印刷を実行可能なBMCYの色データに変換することを意味する。BMCYとは、ブラック、マゼンタ、シアン、イエローを意味する。
誤差拡散は、2値化手法の1つであって、画質を高めるために実行される変換である。
5値化は、解凍ページデータから、駆動素子37に印加する直流電圧の電圧値を決定する変換である。電圧値は、例えば、「小」「中」「大」「特大」「ゼロ」である。
印刷制御モジュール58は、印刷データを駆動回路35及び駆動モータ36に対して出力して、印刷エンジン15に印刷を実行させるモジュールである。
以下、図2から図9を参照して、制御プログラム27が圧縮画像データから印刷データを生成して出力する処理について説明する。なお、受付モジュール52、解析モジュール53、及びジョブ管理モジュール54は、アプリケーション51からの指示を受けて以下に説明する各処理を実行する。
本明細書では、基本的に、制御プログラム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”というバイナリ形式の情報として保持されてもよい。
但し、上記の「データ」及び「情報」の区別は厳密なものではなく、例外的な取り扱いも許容される。例えば、データが一時的に情報として扱われてもよいし、情報が一時的にデータとして扱われてもよい。また、ある装置ではデータとして扱われるものが、他の装置では情報として扱われてもよい。さらには、データの中から情報が取り出されてもよいし、情報の中からデータが取り出されてもよい。
また、本明細書中の「に応じて」は、当該文字列の前に記載された条件が満たされた場合に、当該文字列の後に記載された処理が実行されることを示す。なお、処理が実行されるタイミングは、条件が満たされた後であればよく、当該条件が満たされた直後である必要は必ずしもない。
受付モジュール52は、図2に示されるように、情報処理装置から、ドキュメント情報、ページヘッダ情報、及び圧縮データを含む圧縮画像データ(図9(A))の入力を受け付ける(S10)。ステップS10の処理は、受付処理の一例である。
ドキュメント情報、ページヘッダ情報、及び圧縮データは、1つのまとまったデータである。ドキュメント情報は、データの種類を判定するためのコマンドなどである。ページヘッダ情報は、印刷設定や解像度を含む情報である。印刷設定は、A4やA5などのシートのサイズを示す情報や、普通紙や光沢紙などのシートの種類を示す情報や、片面印刷や両面印刷などの印刷面を示す情報や、モノクロ印刷やカラー印刷などの印刷色を示す情報などである。解像度は、ページの縦方向における画素数及び横方向における画素数を示す情報である。解像度は、例えば、400(横)×400(縦)や、600(横)×600(縦)である。
受付モジュール52は、図2に示されるように、受け付けた圧縮画像データをメモリ22のRAM25に記憶させる(S11)。ステップS11の処理は、第1記憶処理の一例である。
解析モジュール53は、圧縮画像データがRAM25に記憶されたか否かを判断する(S12)。解析モジュール53は、例えば、圧縮画像データが記憶されるRAM25の所定の領域を監視することにより(S12:No)、圧縮画像データがRAM25に記憶されたか否かを判断する。
解析モジュール53は、圧縮画像データがRAM25に記憶されたと判断すると(S12:Yes)、印刷ジョブをジョブ管理モジュール54に登録する(S13)。そして、解析モジュール53は、圧縮画像データに含まれるドキュメント情報を読み込んで取得する。解析モジュール53は、取得したドキュメント情報に含まれる印刷設定を含むジョブ情報をジョブ管理モジュール54に通知する(S14)。
次に、解析モジュール53は、圧縮画像データに含まれるページの情報(以下、ページ情報と記載する)を取得する解析処理を実行する(S15)。ページ情報は、ジョブ管理モジュール54にページジョブを登録するために必要である。ステップS15の解析処理は、特定処理の一例である。以下、図3を参照して、解析処理について説明する。
以下では、メモリ22に記憶された上述の分割情報が4分割を示しており、図6に示す画像を、一点鎖線が示す直線で4分割する場合を例にして解析処理を説明する。画像の解像度は、8(横)×10(縦)である。すなわち、横方向における画素数が「8」で、縦方向における画素数が「10」である。横方向に並ぶ8個の画素で1つの列が構成され、縦方向に10個の列が並んでいる。各列を、上から順に第1列、第2列、第3列、第4列、第5列、第6列、第7列、第8列、第9列、第10列と記載して説明する。
また、以下では、画像データが、packbitsの圧縮方法で圧縮された圧縮画像データである場合について説明する。なお、図3において破線で示されたステップS31、S32については、変形例2において説明する。
図3に示されるように、解析モジュール53は、解析データサイズKを初期値のゼロにする(S33)。解析データサイズKは、読み込んで解析が終了した単位データの数を示す。単位データは、例えば、1バイトのデータである。
次に、解析モジュール53は、ドキュメント情報に含まれる解像度を取得する(S34)。そして、解析モジュール53は、取得した解像度に基づいて、縦値B及び横値Cを決定する(S35)。縦値Bは、解像度が示す縦方向の画素数であり、横値Cは、解像度が示す横方向の画素数である。図6に示す例では、縦値Bは「10」であり、横値Cは「8」である。
次に、解析モジュール53は、縦値B及び縦方向の分割数に基づいて、分割縦閾値Gを決定し、横値C及び横方向の分割数に基づいて、分割横閾値Hを決定する(S36)。図6に示すように、圧縮画像データが示す画像を縦横に4分割する場合、縦方向の分割数は「2」であり、横方向の分割数は「2」である。そして、解析モジュール53は、縦値Bを「2」で除した値であるB/2=5を分割縦閾値Gとし、縦値Cを「2」で除した値であるC/2=4を分割横閾値Hとして決定する。分割数は、上述の分割情報としてメモリ22に予め記憶される。なお、画像を縦方向のみ、或いは、横方向にのみ分割する場合は、分割縦閾値Gのみ、或いは、分割横閾値Hのみが決定される。
次に、解析モジュール53は、解析高さDを初期値のゼロにする(S37)。解析高さDは、解析が終了した解析データサイズKが示す総画素数が示す縦方向における画素の数を示す。すなわち、解析高さDは、画像における第何列目までの画素の解析が終了しているかを示す。解析が終了した解析データサイズKが示す総画素は、画素カウント値の一例である。
解析モジュール53は、解析高さDが分割縦閾値G=5に到達したか否かを判断する(S38)。解析モジュール53は、解析高さDが分割縦閾値G=5に到達したと判断すると(S38:Yes)、読み込んだ単位データの個数を示す解析データサイズKをメモリ22に記憶させて保存する(S39)。すなわち、ステップS39では、縦方向における分割位置を示す単位データを特定する解析データサイズKがメモリ22に記憶される。縦方向における分割位置を示す単位データは、分割位置単位データの一例である。
解析モジュール53は、解析高さDが分割縦閾値G=5に到達していない、或いは、解析高さDが分割閾値F=5に既に到達した後であると判断したことに応じて(S38:No)、ステップS39の処理をスキップし、解析高さDが縦値Bに到達したか否かを判断する(S40)。すなわち、ステップS40では、画像の解析が終了したか否かが判断される。
解析モジュール53は、解析高さDが縦値Bに到達したと判断すると(S40:Yes)、画像の解析が終了したと判断し、解析処理を終了する。一方、解析モジュール53は、解析高さDが縦値Bに到達していないと判断すると(S40:No)、未だ解析していない単位データを新たに読み込む(S41)。そして、読み込んだ単位データから、連続ライン数Eを決定する(S42)。図6に示す例では、第4列と第5列と第6列とが同内容の画素で構成されおり、第8列と第9列とが同内容の画素で構成されている。解析モジュール53は、連続ライン数E=1やE=2やE=3を決定する。
解析モジュール53は、決定したライン数Eを解析高さDに加算する(S43)。例えば、解析モジュール53は、連続ライン数E=3である場合、連続ライン数Eに「3」を加える。また、解析モジュール53は、単位データを読み込んだことに応じて、解析データサイズKに「1」を加える(S44)。
次に、解析モジュール53は、解析幅Fを初期値のゼロにする(S45)。解析幅Fは、解析する単位データが示す横方向における画素数を示す。解析モジュール53は、解析幅Fが分割横閾値H=4に到達したか否かを判断する(S46)。
解析モジュール53は、解析幅Fが分割横閾値H=4に到達したと判断すると(S46:Yes)、解析データサイズKをメモリ22に記憶させて保存する(S47)。すなわち、ステップS47では、横方向における分割位置を示す単位データを特定する解析データサイズKがメモリ22に記憶される。横方向における分割位置を示す単位データは、分割位置単位データの一例である。
解析モジュール53は、解析幅Fが分割横閾値H=4に到達した、或いは、解析幅Fが分割横閾値H=4に既に到達した後であると判断すると(S46:No)、ステップS47の処理をスキップし、解析幅Fが横値Cに到達したか否かを判断する(S48)。すなわち、ステップS48では、画像の右端まで解析が終了したか否かが判断される。
解析モジュール53は、解析幅Fが横値Cに到達したと判断すると(S48:Yes)、解析データサイズKをメモリ22に記憶させて保存し(S49)、ステップS38以降の処理を再度実行する。すなわち、ステップS49では、横方向における分割位置を示す単位データを特定する解析データサイズKがメモリ22に記憶される。横方向における分割位置を示す単位データは、分割位置単位データの一例である。
解析モジュール53は、解析幅Fが横値Cに到達していないと判断すると(S48:No)、図4(A)に示されるように、未だ解析していない単位データを新たに読み込む(S50)。解析モジュール53は、単位データを読み込んだことに応じて、解析データサイズKに「1」を加える(S51)。
解析モジュール53は、ステップS50で読み込んだ単位データのデータ長が指定値未満であるか否かを判断する(S52)。すなわち、ステップS52では、同じ色の画素が続くか、異なる色の画素が続くかが判断される。具体的には、解析モジュール53は、単位データが8ビットである場合、データ長が指定値である128未満であるか否かを判断する。指定値は、メモリ22のROM24やEEPROMに予め記憶される。
解析モジュール53は、データ長が指定値未満であって、同じ色の画素が続くと判断すると(S52:Yes)、取得したデータ長が示す同じ色の画素の数に応じた数だけ単位データを読み込む(S53)。そして、解析モジュール53は、読み込んだ単位データの数だけ解析データサイズKを加算する(S54)。また、解析モジュール53は、取得したデータ長が示す同じ色の画素の数だけ解析幅Fを加算する(S55)。
一方、解析モジュール53は、取得したデータ長が指定値以上であって、異なる色の画素が続くと判断すると(S52:No)、取得したデータ長が示す異なる色の画素の数に応じた数だけ単位データを読み込む(S56)。そして、解析モジュール53は、読み込んだ単位データの数だけ解析データサイズKを加算する(S57)。また、解析モジュール53は、取得したデータ長が示す異なる色の画素の数だけ解析幅Fを加算する(S58)。
解析モジュール53は、ステップS55、S58の処理の実行後、図3に示されるように、ステップS46以降の処理を再度実行する。
解析モジュール53は、図2に示されるように、解析処理(S15)の終了後、解析処理のステップS39、S47、S49(図3)においてメモリ22に記憶させた解析データサイズKを、分割位置情報として、ジョブ管理モジュール54に通知する(S16)。分割位置情報は、部分圧縮データを示す情報の一例である。解析データサイズKをメモリ22に記憶させるステップS39、S47、S49の処理は、第2記憶処理の一例である。
ジョブ管理モジュール54は、メモリ22に記憶されたモデル情報28及び分割情報に基づいて、複数の分割画像の印刷順を決定する印刷順決定処理を実行する(S17)。詳しく説明すると、ヘッド31(図1)は、図7に示す走査方向においてシートを走査してシートに画像を印刷する。そして、走査方向における印刷が終了すると、搬送方向にシートを所定距離だけ搬送する改行処理が実行された後、走査方向においてシートを再び走査し、シートに画像を印刷する。ジョブ管理モジュール54は、圧縮画像データが回転された後において、搬送方向における流に位置する分割画像を上位にして、印刷順を決定する。図7に示す例では、第1分割画像、第2分割画像、第3分割画像、第4分割画像の順で印刷順が決定される。なお、印刷エンジン15は、ヘッド31がキャリッジに搭載された、いわゆるオンキャリッジのプリンタであってもよいし、ヘッド31が固定された、いわゆるラインプリンタであってもよい。
ジョブ管理モジュール54は、図2に示されるように、ステップS16で通知された分割位置情報及びステップS17で決定した印刷順に基づいて、圧縮画像データから印刷データを生成する印刷データ生成処理を実行する(S18)。図5を参照して、印刷データ生成処理について説明する。ステップS18の印刷データ生成処理は、第1生成処理の一例である。
ジョブ管理モジュール54は、分割指示コマンドを分割モジュール55に入力する(S61)。分割指示コマンドは、メモリ22のRAM25に記憶された圧縮画像データを分割して第1分割画像を示す部分圧縮データである第1部分圧縮データを生成し、生成した第1部分圧縮データをRAM25に記憶させることを指示するコマンドである。分割指示コマンドは、ステップS14で解析モジュール53から通知されたページ情報に含まれる上述の解析データサイズKと、RAM25の記憶領域を指定する領域指定情報とを付帯する。
分割モジュール55は、分割指示コマンドを受け付けると(S61)、分割処理を実行する(S62)。詳しく説明すると、分割モジュール55は、圧縮画像データをメモリ22のRAM25から読み出す。そして、分割モジュール55は、解析データサイズKを用いて、第1部分圧縮データと、その余のデータとに圧縮画像データを分割する。そして、その余のデータを破棄し、第1部分圧縮データをメモリ22のRAM25に記憶させる(S63)。ステップS63の処理は、第2記憶処理の一例である。
さらに詳しく説明する。図9(C)に示されるグレー表示の単位データは、解析データサイズKが示す単位データである。当該単位データは、複数の画素を示す。この複数の画素間の分割位置で第1分割画像と第2分割画像とに画像が分割される。分割位置は、図における一点鎖線で示されている。
分割モジュール55は、解析データサイズKが示す単位データが示す複数の画素であって、分割位置よりも図における左方の複数の画素からなる第1画素列と、分割位置よりも図における右方の複数の画素からなる第2画素列とのうち、いずれの画素列が第1分割画像に含まれるかを判断する。そして、第1分割画像に含まれる方の画素列を、圧縮画像データと同じ圧縮方法で圧縮して第1単位データを生成する。そして、分割モジュール55は、生成した第1単位データを、解析データサイズKが示すグレー表示の単位データと置き換える。分割モジュール55は、図9(B)に示されるように、第1単位データまでの複数の単位データである分割データ1Aや分割データ1B、或いは、第1単位データ以降の複数の単位データである分割データ1Aや分割データ1Bを、第1部分圧縮データに含める。なお、第2部分圧縮データが生成される場合、図9(C)に示されるように、第1単位データと同様にして、第2単位データが生成される。第2単位データは、第2分割画像や第3分割画像など第1分割画像以外の分割画像に含められる単位データである。分割モジュール55が、解析データサイズKが示す単位データが示す複数の画素の間において第1分割画像とその他の分割画像とに画像が分割されるか否かを判断する処理は、境界判断処理の一例である。
分割モジュール55は、解析データサイズKが示す単位データにおいて第1分割画像とその他の分割画像とに画像が分割されると判断すると、第1単位データや第2単位データを生成することなく、解析データサイズKが示す単位データまでの単位データを第1部分圧縮データに含め、或いは、解析データサイズKが示す単位データ以降の単位データを第1部分圧縮データに含める。
なお、第1単位データや第2単位データを生成する方法は一例であり、他の方法によって第1単位データ及び第2単位データが生成されてもよい。
分割モジュール55は、分割位置情報に含まれる複数の解析データサイズKが示す複数の分割位置について、それぞれ上述の処理を実行し、第1部分圧縮データと、その余のデータとに圧縮画像データを分割する。
また、分割モジュール55は、図9(B)に示されるように、テキストデータで記述されたヘッダ情報から分割ヘッダを生成する。そして、生成した分割ヘッダを示す情報を第1部分圧縮データに含ませる。
ジョブ管理モジュール54は、分割指示コマンドを分割モジュール55に入力した後、分割モジュール55が分割処理及び記憶処理(S63)を実行したか否かを判断する。例えば、ジョブ管理モジュール54は、分割指示コマンドで指示したRAM25の記憶領域をポーリングなどを用いて監視し、当該記憶領域に第1部分圧縮データが記憶されたことにより、分割処理及び記憶処理が実行されたと判断する。或いは、ジョブ管理モジュール54は、分割処理を実行した分割モジュール55から、分割指示コマンドに対する応答を受け付けたことにより、分割処理及び記憶処理が実行されたと判断する。
ジョブ管理モジュール54は、分割処理及び記憶処理が実行されたと判断すると、解凍を行うことを指示する解凍指示コマンドを解凍モジュール56に入力する(S64)。解凍指示コマンドは、分割部分圧縮データが記憶されたRAM25の記憶領域と、解凍後の第1部分解凍データを記憶するRAM25の記憶領域と、を示す領域指定情報を付帯する。
解凍モジュール56は、解凍指示コマンドを受け付けると(S64)、解凍処理を実行する(S65)。詳しく説明すると、解凍モジュール56は、第1部分圧縮データをメモリ22のRAM25から読み出す。そして、解凍モジュール56は、RAM25から読み出した第1部分圧縮データを解凍して第1部分解凍データを生成する。解凍モジュール56は、第1部分解凍データを、ジョブ管理モジュール54に指定されたRAM25の記憶領域に記憶させる(S66)。
なお、ジョブ管理モジュール54は、分割処理が実行されたか否かを判断することなく解凍指示コマンドを出力してもよい。その場合、解凍指示コマンドを受け付けた解凍モジュール56は、ポーリングなどによって、メモリ22のRAM25に第1部分圧縮データが記憶されたか否かを監視し、第1部分圧縮データがRAM25に記憶されたことに応じて、解凍処理(S65)を実行する。
ジョブ管理モジュール54は、解凍指示コマンドを解凍モジュール56に入力した後、解凍モジュール56が解凍処理及び記憶処理(S66)を実行したか否かを判断する。例えば、ジョブ管理モジュール54は、解凍指示コマンドで指示したRAM25の記憶領域をポーリングなどを用いて監視し、当該記憶領域に第1部分解凍データが記憶されたことにより、解凍処理及び記憶処理が実行されたと判断する。或いは、ジョブ管理モジュール54は、解凍処理を実行した解凍モジュール56から、解凍指示コマンドに対する応答を受け付けたことにより、解凍処理及び記憶処理が実行されたと判断する。
ジョブ管理モジュール54は、解凍処理及び記憶処理が実行されたと判断すると、変換指示コマンドを変換モジュール57に入力する(S67)。変換指示コマンドは、部分解凍データが記憶されたRAM25の記憶領域と、第1部分印刷データを記憶するRAM25の記憶領域と、を示す領域指定情報を付帯する。
変換指示コマンドには、第1部分圧縮データが示す第1分割画像を回転させるか否かの指示が含まれる。ジョブ管理モジュール54は、モデル情報28に基づいて、第1分割画像を回転させるか否か、及び、第1分割画像を回転させる場合の回転角度を決定し、当該決定を変換指示に含ませる。図7に示す例では、変換モジュール57は、第1分割画像を90°回転させる変換を行う。ジョブ管理モジュール54が画像を回転させるか否かをモデル情報28に基づいて判断する処理は、回転判断処理の一例である。モデル情報28が示す条件は、回転させる条件の一例である。ジョブ管理モジュール54が画像の回転角度を決定する処理は、回転決定処理の一例である。
変換モジュール57は、変換指示コマンドを受け付けると(S67)、変換処理を実行する(S68)。詳しく説明すると、変換モジュール57は、部分解凍データをメモリ22のRAM25から読み出す。そして、変換モジュール57は、RAM25から読み出した部分解凍データに、回転や色変換や誤差拡散や5値化の変換を行って、第1部分印刷データを生成する。そして、変換モジュール57は、生成した第1部分印刷データを、ジョブ管理モジュール54に指定されたRAM25の記憶領域に記憶させる(S69)。
なお、ジョブ管理モジュール54は、解凍処理が実行されたか否かを判断することなく変換指示コマンドを出力してもよい。その場合、変換指示コマンドを受け付けた変換モジュール57は、ポーリングなどによって、メモリ22のRAM25に部分解凍データが記憶されているか否かを監視し、部分解凍データがRAM25に記憶されたことに応じて、変換処理(S68)を実行する。
ジョブ管理モジュール54は、変換指示コマンドを変換モジュール57に入力した後、変換モジュール57が変換処理及び記憶処理(S69)を実行したか否かを判断する。例えば、ジョブ管理モジュール54は、変換指示コマンドで指示したRAM25の記憶領域をポーリングなどを用いて監視し、当該記憶領域に第1部分印刷データが記憶されたことにより、変換処理及び記憶処理が実行されたと判断する。或いは、ジョブ管理モジュール54は、変換処理及び記憶処理を実行した変換モジュール57から、変換指示コマンドに対する応答を受け付けたことにより、変換処理及び記憶処理が実行されたと判断する。
ジョブ管理モジュール54は、変換処理及び記憶処理が実行されたと判断すると、印刷データを出力するために変換が必要な部分圧縮データがあるか否かを判断する(S70)。詳しく説明すると、ヘッド31(図1)は、図7に示す走査方向においてシートを走査してシートに画像を印刷する。したがって、ヘッド31がシートに画像を印刷するためには、第1部分印刷データだけなく、第2分割画像を示す部分印刷データである第2部分印刷データが必要となる。ジョブ管理モジュール54は、モデル情報及び分割情報に基づいて、印刷データを出力するために変換が必要な部分圧縮データがあるか否かを判断する(S70)。
ジョブ管理モジュール54は、印刷データを出力するために変換が必要な部分圧縮データがあると判断すると(S70:Yes)、印刷データを出力するために変換が必要な部分圧縮データを生成するための分割指示コマンドを分割モジュール55に入力する(S61)。図7に示す例では、圧縮画像データを分割して第2分割画像を示す第2部分圧縮データを生成することを示す分割指示コマンドが分割モジュール55に入力される。
分割モジュール55は、上述と同様にして、第2分割画像を示す第2部分圧縮データと、その余のデータとに圧縮画像データを分割し(S62)、その余のデータを破棄して、第2部分圧縮データのみをメモリ22のRAM25の所定の記憶領域に記憶させる(S63)。RAM25の所定の記憶領域に第2部分圧縮データを記憶させるステップS63の処理は、第2記憶処理の一例である。
ジョブ管理モジュール54は、上述と同様にして、変換指示コマンドを変換モジュール57に入力し、第2部分解凍データを変換モジュール57に変換させて、変換モジュール57に第2部分印刷データを生成させる。
ジョブ管理モジュール54は、ステップS70において、印刷データを出力するために変換が必要な部分圧縮データがないと判断すると、図2に示されるステップS18の印刷データ生成処理を終了する。そして、ジョブ管理モジュール54は、生成した第1部分印刷データ及び第2部分印刷データを印刷エンジン15の駆動回路35及び駆動モータ36に出力する(S19)。印刷データを出力するステップS19の処理は、第1出力処理の一例である。
具体的には、ジョブ管理モジュール54は、出力指示コマンドを印刷制御モジュール58に入力する。出力指示コマンドは、第1部分印刷データ及び第2部分印刷データが記憶されたRAM25の記憶領域を示す領域指定情報を付帯する。
印刷制御モジュール58は、出力指示コマンドを受け付けると、第1部分印刷データ及び第2部分印刷データをメモリ22のRAM25から読み出す。そして、印刷制御モジュール58は、RAM25から読み出した第1部分印刷データ及び第2部分印刷データを、駆動回路35及び駆動モータ36に対して出力する。
印刷エンジン15は、駆動回路35及び駆動モータ36に入力された第1部分印刷データ及び第2部分印刷データに基づいて、シートに画像を印刷する(S20)。図7に示す例では、第1分割画像及び第2分割画像がシートに印刷される。
次に、ジョブ管理モジュール54は、印刷データに変換していない分割画像を示す部分圧縮画像データが有るか否かを判断する(S21)。ジョブ管理モジュール54は、印刷データに変換していない分割画像を示す部分圧縮画像データがあると判断すると(S21:Yes)、ステップS18、S19の処理を再度実行する。図7に示す例では、第3分割画像及び第4分割画像を示す第3部分印刷データ及び第4部分印刷データが上述と同様にして生成され(S18)、印刷エンジン15の駆動回路35及び駆動モータ36に出力される(S19)。
印刷エンジン15は、駆動回路35及び駆動モータ36に入力された部分印刷データに基づいて、シートに画像を印刷する(S20)。図7に示す例では、第3分割画像及び第4分割画像がシートに印刷される。
ジョブ管理モジュール54は、印刷データに変換していない分割画像を示す部分圧縮画像データがないと判断すると(S21:No)、印刷ジョブを終了し(S22)、処理を終了する。
なお、ジョブ管理モジュール54は、第1部分印刷データから第4部分印刷データまでの全ての部分印刷データを生成した後、印刷データとして印刷エンジン15に出力してもよい。
[実施形態の作用効果]
コントローラ11は、圧縮画像データを分割して部分圧縮データを生成し(S62)、生成した部分圧縮データを解凍して部分解凍データを取得する(S65)。そして、制御プログラム27は、取得した部分解凍データを変換して部分印刷データを生成し(S68)、生成した部分印刷データを出力する(S19)。そして、制御プログラム27は、部分印刷データの生成と出力とを繰り返して(S20:Yes)、全ての部分印刷データを出力する。したがって、解凍された1ページ分の画像データ全体を印刷データに変換することができるだけの容量を有さないメモリを備えたプリンタ10であっても、圧縮画像データの印刷を行うことができる。或いは、プリンタ10が備えるメモリ22のRAM25の容量を低減することができる。
コントローラ11は、ステップS17で決定した印刷順で部分印刷データを生成するので、他の部分印刷データの生成を待たずに、生成した部分印刷データを出力して印刷エンジン15に印刷させることができる。図7に示す例では、印刷エンジン15は、第3部分印刷データ及び第4部分印刷データの入力を待たずに、第1部分印刷データ及び第2部分印刷データの印刷を行うことができる。したがって、本実施形態では、印刷順を決定しない場合に比べ、印刷に要する時間を短くすることができる。
コントローラ11は、回転変換を実行する前の画像データに対して印刷順を決定せずに、回転変換を実行した後の画像データに対して印刷順を決定する。したがって、回転変換を実行する場合であっても、印刷順を決定しない場合に比べ、印刷に要する時間を短くすることができる。
コントローラ11は、解析データサイズKが示す単位データが示す複数の画素の間において第1分割画像とその他の分割画像とに分割されると判断すると、解析データサイズKが示す単位データに基づいて、第1分割画像に含まれる画素を示す第1単位データを生成する。そして、分割モジュール55は、解析データサイズが示す単位データを、生成した第1単位データに置き換え、置き換えた第1単位データまでの単位データを、或いは、置き換えた第1単位データ以降のデータを第1部分圧縮データに含ませる。一方、分割モジュール55は、解析データサイズKが示す単位データで画像が分割されると判断すると、解析データサイズKが示す単位データまでの単位データ、或いは解析データサイズKが示す単位データ以降の単位データを第1部分圧縮データに含ませる。したがって、コントローラ11は、解析データサイズKが示す単位データが示す複数の画素の間において画像が複数の分割画像に分割される場合であっても、解析データサイズKが示す単位データで画像が複数の分割画像に分割される場合であっても、圧縮画像データを複数の部分圧縮データに分割することができる。
[変形例1]
上述の実施形態では、圧縮画像データが、ジョブ管理モジュール54の分割モジュール55によって分割される例を説明した。しかしながら、圧縮画像データは、解析モジュール53において分割されてもよい。この場合、分割モジュール55は、ジョブ管理モジュール54に設けられない。解析モジュール53は、ステップS15(図2)の解析処理の実行後、ステップS62の分割処理(図4)を実行し、第1部分圧縮データ、第2部分圧縮データ、第3部分圧縮データ、及び第4部分圧縮データをメモリ22のRAM25に記憶させる。具体的には、解析モジュール53は、アプリケーション51がRAM25に確保した第1記憶領域に第1部分圧縮データを記憶させ、アプリケーション51がRAM25に確保した第2記憶領域に第2部分圧縮データを記憶させ、アプリケーション51がRAM25に確保した第3記憶領域に第3部分圧縮データを記憶させ、アプリケーション51がRAM25に確保した第4記憶領域に第4部分圧縮データを記憶させる。ジョブ管理モジュール54は、第1記憶領域に記憶された部分圧縮データを第1部分圧縮データとして取り扱い、第2記憶領域に記憶された部分圧縮データを第2部分圧縮データとして取り扱い、第3記憶領域に記憶された部分圧縮データを第3部分圧縮データとして取り扱い、第4記憶領域に記憶された部分圧縮データを第4部分圧縮データとして取り扱う。すなわち、ジョブ管理モジュール54は、部分圧縮データが記憶されている記憶領域によって、部分圧縮データがいずれの分割画像を示す部分圧縮データであるかを判断する。解析モジュール53が、第1部分圧縮データを第1記憶領域に記憶させ、第2部分圧縮データを第2記憶領域に記憶させ、第3部分圧縮データを第3記憶領域に記憶させ、第4部分圧縮データを第4記憶領域に記憶させる処理は、第2記憶処理の一例である。
このように、解析モジュール53において圧縮画像データを複数の部分圧縮データに分割する場合、第1部分圧縮データ、第2部分圧縮データ、第3部分圧縮データ、及び第34部分圧縮データを記憶するだけの容量のRAM25が必要になる。すなわち、第1部分圧縮データ、第2部分圧縮データ、第3部分圧縮データ、及び第4部分圧縮データを個々に記憶するだけの容量のRAM25があればよい上述の実施形態に比べ、大きな容量のRAM25が必要になる。しかしながら、上述の実施形態では、第1部分圧縮データを生成するための分割処理、第2部分圧縮データを生成するための分割処理、第3部分圧縮データを生成するための分割処理、及び第4部分圧縮データを生成するための分割処理の4回の分割処理の実行が必要であるのに対し、圧縮画像データを解析モジュール53において分割する場合、1回の分割処理で全ての部分圧縮データを生成することができる。すなわち、圧縮画像データを解析モジュール53において分割する場合、実施形態に比べ大きな容量のRAM25が必要になるが、印刷データの生成に要する時間をさらに短くすることができる。
[変形例2]
図3に示されるように、解析モジュール53は、圧縮画像データのデータサイズが、メモリ22に記憶された基準値未満であるか否かを判断する(S31)。基準値は、例えば、圧縮画像データを分割して部分圧縮データを生成しても、生成した部分圧縮画像データから印刷データを生成する処理を実行できないほど、部分圧縮データのデータサイズが大きいか否かを判断する値であって、メモリ22のRAM25の容量に応じて、メモリ22のROM24やEEPROMに予め記憶される値である。基準値は、メモリ閾値の一例である。ステップS31の処理は、データ量判断処理の一例である。
解析モジュール53は、圧縮画像データのデータサイズが、基準値未満であると判断すると(S31:Yes)、ステップS33以降の処理を実行する。
解析モジュール53は、圧縮画像データのデータサイズが、基準値未満でないと判断すると(S31:No)、圧縮画像データを解凍しつつ、圧縮画像データが示す画像を縮小し、解凍及び縮小した解凍縮小データをメモリ22のRAM25に記憶させ(S32)、解析処理を終了する。圧縮画像データの縮小は、例えば、画像を示す画素を間引くことによって行われる。縮小率は、例えば、予め決められてメモリ22に記憶され、或いは、圧縮画像データのデータサイズによって、解析モジュール53が決定する。ステップS32の処理は、縮小ページデータ取得処理の一例である。解凍縮小データは、縮小ページデータの一例である。
図2のフローチャートには示されていないが、ジョブ管理モジュール54は、ステップS32の処理を実行した場合、ステップS17の処理をスキップし、ステップS18において、縮小した画像データを、変換モジュール57を用いて回転変換や色変換や誤差拡散や5値化を行った後、拡大させて、印刷データを生成する。そして、生成した印刷データを印刷エンジン15に対して出力する(S19)。ジョブ管理モジュール54が、縮小した画像データに変換及び拡大を行って印刷データを生成する処理は、第2生成処理の一例である。第2生成処理で生成した印刷データを出力するステップS19の処理は、第2出力処理の一例である。
本変形例では、圧縮画像データのデータサイズが、圧縮画像データを分割して部分圧縮データを生成しても、生成した部分圧縮画像データから印刷データを生成する処理を実行できないほど大きい場合であっても、圧縮画像データが示す画像をシートに印刷することができる。
なお、ステップS31の処理は、ジョブ管理モジュール54が実行してもよい。ジョブ管理モジュール54は、圧縮画像データのデータ量が基準値未満でないと判断すると、分割指示(S61)に代えて、ステップS32の処理の実行の指示を分割モジュール55に対して行う。分割モジュール55は、ジョブ管理モジュール54からの指示にしたがって、ステップS32の処理を実行して解凍縮小データを生成し、生成した解凍縮小データをメモリ22に記憶させる。
[変形例3]
上述の変形例2では、圧縮画像データのデータサイズが、メモリ22に記憶された基準値未満である場合に、ステップS32の処理が実行されて解凍縮小データが生成される例を説明した。しかしながら、上述の実施形態或いは変形例2において、圧縮画像データから部分圧縮データを生成し、生成した部分圧縮データから印刷データを生成できない場合に、ステップS32の処理が実行されてもよい。印刷データを生成できない場合とは、例えば、部分圧縮データのデータ量が大きすぎてメモリ22のRAM25の容量では解凍処理や変換処理が実行できない場合などである。
[変形例4]
上述の実施形態では、図7に示されるように、画像を縦方向及び横方向に沿って分割する例を説明した。本変形例では、図8に示されるように、画像を、走査方向に沿って分割する例を説明する。すなわち、上述の実施形態では、第1分割画像を示す第1部分印刷データを生成した後、第2分割画像を示す第2部分印刷データを生成し、第1部分印刷データ及び第2部分印刷データをまとめて出力する例を説明した。本変形例では、部分印刷データを、生成した順で、順に出力する例を説明する。
解析モジュール53は、解析処理(S15)を実行する前に、圧縮画像データに含まれるドキュメント情報と、メモリ22に記憶されたモデル情報と、に基づいて、画像を回転させるか否かを判断する。解析モジュール53は、画像を回転させると判断すると、回転させた後の画像に対する分割方向を決定する。解析モジュール53は、画像を回転さないと判断すると、回転させない画像に対する分割方向を決定する。分割方向は、走査方向に沿う方向である。図8に示す例では、分割方向は、シートの長手方向に沿う方向である。
解析モジュール53は、解析処理(S15)において、決定した分割方向と、メモリ22に記憶された分割数とに基づいて、分割縦閾値G及び分割横閾値Hを決定する。図8に示す例では、解析モジュール53は、分割縦閾値G=なし、分割横閾値H=C/3、2C/3に決定する。解析モジュール53は、決定した分割縦閾値G及び分割横閾値Hを用いて解析処理(S15)を実行する。
ジョブ管理モジュール54は、分割指示を分割モジュール55に入力し(S61)、解凍指示を解凍モジュール56に入力し(S64)、変換指示を変換モジュール57に入力し(S67)、第1分割画像を示す第1部分印刷データを生成する。そして、ジョブ管理モジュール54は、図8に示されるように、第1分割画像を示す第1部分印刷データを印刷エンジン15に対して出力する。
また、ジョブ管理モジュール54は、分割指示を分割モジュール55に入力し(S61)、解凍指示を解凍モジュール56に入力し(S64)、変換指示を変換モジュール57に入力し(S67)、第2分割画像を示す第2部分印刷データを生成する。そして、ジョブ管理モジュール54は、第2分割画像を示す第2部分印刷データを印刷エンジン15に対して出力する。
さらにまた、ジョブ管理モジュール54は、分割指示を分割モジュール55に入力し(S61)、解凍指示を解凍モジュール56に入力し(S64)、変換指示を変換モジュール57に入力し(S67)、第3分割画像を示す第3部分印刷データを生成する。そして、ジョブ管理モジュール54は、第3分割画像を示す第3部分印刷データを印刷エンジン15に対して出力する。
本実施形態では、走査方向に沿った方向が分割方向に決定される。したがって、実施形態のように、ジョブ管理モジュール54は、第2部分印刷データが生成されるまで第1部分印刷データの出力を待つ必要がなく、生成した部分印刷データを生成順で、順に出力することができる。その結果、他の部分印刷データの生成を待って部分印刷データを出力する場合に比べ、印刷に要する時間が短くなる。
[変形例5]
本変形例では、画像の印刷に認証情報の入力が必要な、いわゆるセキュアプリントについて説明する。
ステップS11で受付モジュール52が取得する圧縮画像データは、認証情報、及び認証情報の入力が必要であるか否かを示す確認情報を含む。アプリケーション51は、確認情報に基づいて、受付モジュール52が取得した圧縮画像データが、認証情報の入力が必要な圧縮画像データであるか否かを判断する。アプリケーション51は、受付モジュール52が取得した圧縮画像データが、認証情報の入力が必要な圧縮画像データでないと判断すると、実施形態と同様にしてジョブ管理モジュール54に印刷データを生成させ、生成された印刷データを印刷エンジン15に出力してシートに画像を印刷させる。
アプリケーション51は、受付モジュール52が取得した圧縮画像データが、認証情報の入力が必要な圧縮画像データであると判断すると、実施形態と同様にしてジョブ管理モジュール54に印刷データを生成させる。そして、アプリケーション51は、生成された印刷データをメモリ22に記憶させて、認証情報の入力を待つ。認証情報は、出力指示の一例である。アプリケーション51が、生成された印刷データをメモリ22に記憶させて、認証情報の入力を待つ処理は、待機処理の一例である。
認証情報は、例えば、ユーザによって設定されたPINである。認証情報は、例えば、情報処理装置からプリンタ10に入力される。或いは、認証情報は、ディスプレイ13に設けられたタッチセンサや、操作スイッチ14によって、プリンタ10に直接入力される。
アプリケーション51は、認証情報が入力されると、入力された認証情報である入力認証情報と、圧縮画像データに含まれる認証情報とが一致するか否かを判断する。アプリケーション51は、入力認証情報と、圧縮画像データに含まれる認証情報とが一致しないと判断すると、一致しない旨を示す画像をディスプレイ13に表示させ、或いは、一致しない旨を示す画像を、通信I/F12を通じて情報処理装置に送信する。
アプリケーション51は、入力認証情報と、圧縮画像データに含まれる認証情報とが一致すると判断すると、ジョブ管理モジュール54に指示を入力し、メモリ22に記憶された印刷データを印刷エンジン15に対して出力させる。
本変形例のプリンタ10は、いわゆるセキュアプリントにおいても、圧縮画像データが示す画像をシートに印刷することができる。
なお、本変形例では、いわゆるセキュアプリントを、蓄積印刷の例として説明した。しかしながら、蓄積印刷は、認証情報などの出力指示の入力を必要とする印刷であれば、他の印刷であってもよい。
[変形例6]
本変形例では、制御プログラム27が、図4(B)に示されるリプリント処理を実行する例を説明する。リプリント処理は、印刷エンジン15において、シートの詰まりなどが生じた場合に、制御プログラム27が印刷データを印刷エンジン15に対して再度出力して、詰まりが生じたシートに印刷される予定であった画像を、新たなシートに印刷させる処理である。
ジョブ管理モジュール54は、ステップS19(図2)において、印刷データを印刷エンジン15に対して出力した後、出力した印刷データが示す画像がシートに印刷されたか否かを判断する(S71)。例えば、ジョブ管理モジュール54は、搬送ローラ33に設けられたロータリエンコーダから入力された検出信号によって、搬送ローラ33の回転量を算出し、算出した搬送ローラ33の回転量が示すシートの搬送量が、印刷データが示す画像の搬送方向における長さに到達したことに応じて、出力した印刷データが示す画像がシートに印刷されたと判断する(S71:Yes)。なお、出力した印刷データが示す画像がシートに印刷されたか否かを判断可能であれば、ジョブ管理モジュール54は、どのような方法を用いて判断してもよい。ステップS71の処理は、終了判断処理の一例である。
ジョブ管理モジュール54は、出力した印刷データが示す画像がシートに印刷されたと判断すると(S71:Yes)、出力した印刷データであって、メモリ22に記憶された印刷データの上書きを許可し(S76)、リプリント処理を終了する。
一方、ジョブ管理モジュール54は、出力した印刷データが示す画像を印刷エンジン15が印刷中であると判断すると(S71:No)、出力した印刷データであって、メモリ22に記憶された印刷データの上書きを禁止する(S72)。すなわち、印刷エンジン15に対して出力された印刷データは、印刷データが示す画像がシートに印刷されるまでは、メモリ22において上書きされない。
次に、ジョブ管理モジュール54は、エラーが発生したか否かを判断する(S73)。例えば、ジョブ管理モジュール54は、算出した搬送ローラ33の回転量が示すシートの搬送量が、印刷データが示す予定の搬送量と一致しないことに応じて、シートの詰まりを示すエラーが発生したと判断する。或いは、ジョブ管理モジュール54は、センサから所定の検出信号が入力したことに応じて、エラーが発生したと判断する。センサは、例えば、印刷エンジン15を覆うカバーの開閉を検出する開閉センサや、給紙トレイの着脱を検出する着脱センサや、搬送されるシートを検出するシートセンサなどである。開閉センサが出力する信号の値は、カバーの開閉に応じて変化する。着脱センサが出力する信号の値は、給紙トレイがプリンタ10に装着されている場合と、給紙トレイがプリンタ10から外されている場合とで、変化する。シートセンサが出力する信号の値は、シートが搬送されている場合と、シートが搬送されていない場合とで、変化する。ジョブ管理モジュール54は、センサから入力した信号の変化により、閉じられていたカバーが開かれたと判断すると、或いは、装着されていた給紙トレイがプリンタ10から外されたと判断すると、さらに或いは、給紙トレイにシートがなく、シートが搬送されていないと判断すると、印刷を続行できないエラーが発生したと判断する。なお、エラーの例は、上述の例に限られない。印刷を続行できないようなエラーであれば、どのようなエラーであってもよい。
ジョブ管理モジュール54は、印刷エンジン15が印刷データに対する印刷を実行中である間(S71:No)、エラーの発生を監視する(S73:No)。
ジョブ管理モジュール54は、エラーが発生したと判断すると(S73:Yes)、エラーが解消したか否かを判断する(S74)。例えば、ジョブ管理モジュール54は、ユーザが上述のカバーを開いて、詰まったシートを印刷エンジン15から除去した後、カバーを閉じたことにより、エラーが解消したと判断する。具体的には、ジョブ管理モジュール54は、上述の開閉センサが出力する信号の変化により、カバーが開かれたことを検出した後、開閉センサが出力する信号の変化により、カバーが閉じられたことを検出すると、エラーが解消したと判断する(S74:Yes)。
或いは、ジョブ管理モジュール54は、給紙トレイがプリンタ10から外されて、ユーザによって給紙トレイに新たなシートが追加された後、給紙トレイがプリンタ10に装着されたことにより、エラーが解消したと判断する。具体的には、ジョブ管理モジュール54は、上述の着脱センサが出力する信号の変化により、給紙トレイがプリンタから外されたことを検出した後、着脱センサが出力する信号の変化により、給紙トレイがプリンタ10に装着されたことを検出すると、エラーが解消したと判断する(S74:Yes)。
或いは、ジョブ管理モジュール54は、ディスプレイ13のタッチセンサや、操作スイッチ14によって、印刷再開を示す指示の入力を受け付けたことに応じて、エラーが解消したと判断する(S74:Yes)。エラーが解消したことを示すセンサからの信号や、印刷再開を示す指示は、再開可能入力の一例である。エラーが解消したことを示すセンサからの信号や、印刷再開を示す指示を受け付けるステップS74の処理は、再開可能入力受付処理の一例である。
ジョブ管理モジュール54は、エラーが解消するまで、ステップS74の処理を実行する(S74:No)。ジョブ管理モジュール54は、エラーが解消したと判断すると(S74:Yes)、再出力処理を実行する(S75)。再出力処理は、メモリ22に記憶された印刷データを印刷エンジン15に再度出力する処理である。
ジョブ管理モジュール54は、再出力処理(S75)の実行後、ステップS71以降の処理を再度実行する。
なお、ジョブ管理モジュール54は、ステップS72において、1ページ分の全ての部分印刷データの上書きを禁止してもよいし、印刷が終了していない部分印刷データのみの上書きを禁止してもよい。ジョブ管理モジュール54は、再出力処理(S75)において、印刷が終了していない部分印刷データの前に出力した部分印刷データについては、分割処理、解凍処理、変換処理を再度実行し、当該部分印刷データを生成する。
本変形例では、シートの詰まりやシートが無くなって印刷ができない等のエラーが発生した場合、少なくとも、1つの部分印刷データを、分割処理、解凍処理、変換処理を再度実行することなく、再出力処理において、印刷エンジン15に対して出力することができる。したがって、再出力処理において、全ての部分印刷データが再度生成される場合に比べ、印刷に要する時間が短くなる。
[その他の変形例]
上述の実施形態では、1ページ分の圧縮画像データがプリンタ10に入力される例を説明した。しかしながら、複数ページ分の圧縮画像データがプリンタ10に入力されてもよい。その場合、解析モジュール53は、解析処理(S15)において、分割位置を示す単位データを特定する解析データサイズKに加え、ページの最後を示す単位データを特定する解析データサイズKをメモリ22に記憶させて保存する。分割モジュール55は、分割処理を実行するまでに、圧縮画像データを、ページごとの圧縮データであるページ部分圧縮データに分割する。そして、分割モジュール55は、ページ部分圧縮データに対して、上述の分割処理を実行する。したがって、コントローラ11は、複数ページを含む圧縮画像データが入力されたとしても、入力された圧縮画像データに基づいて印刷データを生成し、印刷エンジン15に画像を印刷させることができる。
上述の実施形において、圧縮画像データから部分圧縮データを生成し、生成した部分圧縮データから印刷データを生成できない場合において、分割数を増やす処理が実行されてもよい。例えば、図8に示されるように、3分割で印刷データを生成できない場合、4分割や5分割に分割数が変更される。したがって、例えば3分割では、メモリ22のRAM25の容量が足りず、部分圧縮データを解凍及び変換して部分印刷データを生成できない場合であっても、分割数を増やすことにより、印刷データを生成して印刷を行うことができる。
10・・・プリンタ
11・・・コントローラ
21・・・CPU
22・・・メモリ
27・・・制御プログラム
51・・・アプリケーション
52・・・受付モジュール
53・・・解析モジュール
54・・・ジョブ管理モジュール

Claims (15)

  1. メモリと、コントローラと、を備えており、
    前記コントローラは、
    圧縮された画像データである圧縮画像データの入力を受け付ける受付処理と、
    前記圧縮画像データを前記メモリに記憶させる第1記憶処理と、
    前記メモリに記憶された1ページ分の前記圧縮画像データを解析することで、当該圧縮画像データが示す画像を複数の分割画像に分割した場合における当該各分割画像をそれぞれ示す複数の部分圧縮データが、当該圧縮画像データのどの部分であるかを特定する特定処理と、
    前記部分圧縮データ、或いは当該部分圧縮データを示す情報を前記メモリに記憶させる第2記憶処理と、
    前記メモリに記憶された複数の前記部分圧縮データのうち、一の前記部分圧縮データを解凍し、解凍によって得られた部分解凍データに基づいて、印刷データを生成する第1生成処理と、
    前記印刷データを出力する第1出力処理と、を実行し、
    前記コントローラは、前記第1生成処理及び前記第1出力処理を、前記部分圧縮データの数に応じた回数だけ繰り返して実行し、
    前記第1出力処理によって出力された前記印刷データに基づいて印刷を実行し、
    前記圧縮画像データは、複数の単位データを有しており、
    前記単位データは、一乃至複数の画素を示し、
    前記コントローラは、
    前記圧縮画像データが示す画像の縦方向の画素数を示す縦値と、横方向の画素数を示す横値と、を当該圧縮画像データから取得する取得処理と、
    取得した前記縦値に基づいて、前記圧縮画像データが示す画像の縦方向における分割位置を示す分割縦閾値と、取得した前記横値に基づいて、前記圧縮画像データが示す画像の横方向における分割位置を示す分割横閾値と、の少なくとも一方の閾値を決定する閾値決定処理と、をさらに実行し、
    前記コントローラは、前記特定処理において、前記圧縮画像データが有する複数の前記単位データがそれぞれ示す画素数をカウントし、得られた画素カウント値が示す横幅が前記分割横閾値に到達したときの前記単位データ、或いは、当該画素カウント値が示す高さが前記分割縦閾値に到達したときの前記単位データ、を分割位置単位データとして特定し、特定した当該分割位置単位データより前の前記単位データを一の前記部分圧縮データに属する単位データとし、当該分割位置単位データより後の前記単位データを他の一の前記部分圧縮データに属する単位データとするプリンタ。
  2. 前記コントローラは、
    前記取得処理において、前記圧縮画像データに含まれるドキュメント情報を取得し、取得した当該ドキュメント情報に基づいて、前記縦値及び前記横値を決定して取得し、
    前記閾値決定処理において、縦方向の分割数及び横方向の分割数を決定し、決定した分割数で前記縦値を除して前記分割縦閾値を決定し、決定した分割数で前記横値を除して前記分割横閾値を決定する請求項に記載のプリンタ。
  3. 前記コントローラは、
    前記分割位置単位データが示す複数の画素間で前記圧縮画像データが示す画像を分割するか否かを判断する境界判断処理をさらに実行し、
    前記コントローラは、前記特定処理において、
    前記分割位置単位データが示す複数の画素間で前記圧縮画像データが示す画像を分割しないと判断したことに応じて、前記分割位置単位データを前記一の部分圧縮データに属する単位データとし、
    前記分割位置単位データが示す複数の画素間で前記圧縮画像データが示す画像を分割すると判断したことに応じて、分割される一方の画素列を示す第1単位データと、分割される他方の画素列を示す第2単位データとを生成し、生成した当該第1単位データを前記一の部分圧縮データに属する単位データとし、生成した当該第2単位データを前記他の一の部分圧縮データに属する単位データとする請求項またはに記載のプリンタ。
  4. メモリと、コントローラと、を備えており、
    前記コントローラは、
    圧縮された画像データである圧縮画像データの入力を受け付ける受付処理と、
    前記圧縮画像データを前記メモリに記憶させる第1記憶処理と、
    前記圧縮画像データが示す画像の縦方向の画素数を示す縦値と、横方向の画素数を示す横値と、を当該圧縮画像データから取得する取得処理と、
    前記縦値に基づいて、前記圧縮画像データが示す画像の縦方向における分割位置を示す分割縦閾値と、前記横値に基づいて、前記圧縮画像データが示す画像の横方向における分割位置を示す分割横閾値と、の少なくとも一方の閾値を決定する閾値決定処理と、
    前記メモリに記憶された1ページ分の前記圧縮画像データを前記分割縦閾値と前記分割横閾値との少なくとも一方の閾値を用いて解析することで、当該圧縮画像データが示す画像を複数の分割画像に分割した場合における当該各分割画像をそれぞれ示す複数の部分圧縮データが、当該圧縮画像データのどの部分であるかを特定する特定処理と、
    前記部分圧縮データ、或いは当該部分圧縮データを示す情報を前記メモリに記憶させる第2記憶処理と、
    前記メモリに記憶された複数の前記部分圧縮データのうち、一の前記部分圧縮データを解凍し、解凍によって得られた部分解凍データに基づいて、印刷データを生成する第1生成処理と、
    前記印刷データを出力する第1出力処理と、を実行し、
    前記コントローラは、前記第1生成処理及び前記第1出力処理を、前記部分圧縮データの数に応じた回数だけ繰り返して実行し、
    前記第1出力処理によって出力された前記印刷データに基づいて印刷を実行するプリンタ。
  5. シートを搬送し、搬送するシートの搬送向きの流から流に向かって画像を印刷する印刷エンジンを備えており、
    前記コントローラは、前記第1生成処理において、シートの搬送向きの流から流に向かって順番に印刷される前記分割画像の印刷順を決定し、決定した印刷順で前記部分圧縮データを解凍する請求項1から4のいずれかに記載のプリンタ。
  6. 前記コントローラは、
    前記圧縮画像データが示す画像を回転させる条件が成立するか否かを判断する回転判断処理と、
    前記圧縮画像データが示す画像を回転させる条件が成立すると判断したことに応じて、回転角度を決定する回転決定処理と、を実行し、
    前記第1生成処理において、決定した前記回転角度で前記圧縮画像データが示す画像を回転させた場合における前記印刷順を決定し、当該印刷順で前記部分圧縮データを解凍する請求項に記載のプリンタ。
  7. 前記コントローラは、
    前記特定処理において、シートの搬送向きに直交する方向に沿って前記圧縮画像データが示す画像を分割した複数の前記分割画像をそれぞれ示す複数の前記部分圧縮データを特定し、
    前記印刷順は、前記搬送向きの流から流に向かって前記分割画像が並ぶ順であり、
    前記コントローラは、
    前記第1生成処理において前記印刷順で前記部分圧縮データを解凍する請求項またはに記載のプリンタ。
  8. 前記コントローラは、分割して生成する前記部分圧縮データの数だけ前記メモリに複数の記憶領域を生成し、一の前記記憶領域に一の前記部分圧縮データを記憶させ、
    前記記憶領域は、前記圧縮画像データが示す画像の位置と対応付けられて生成される請求項1から7のいずれかに記載のプリンタ。
  9. 前記コントローラは、
    前記特定処理で前記部分圧縮データを特定できたことに応じて、前記第2記憶処理、前記第1生成処理、及び前記第1出力処理を実行し、
    前記特定処理で前記部分圧縮データを特定できなかったことに応じて、
    前記圧縮画像データを解凍しつつ縮小し、縮小された1ページの画像データである縮小ページデータを取得する縮小ページデータ取得処理と、
    前記縮小ページデータに基づいて、印刷データを生成する第2生成処理と、
    前記第2生成処理で生成した前記印刷データを出力する第2出力処理と、を実行する請求項1から8のいずれかに記載のプリンタ。
  10. 前記コントローラは、
    前記圧縮画像データのデータ量が、前記第1記憶処理、前記特定処理、前記第2記憶処理、前記第1生成処理、及び前記第1出力処理の実行条件として前記メモリに記憶されたメモリ閾値を超えるか否かを判断するデータ量判断処理をさらに実行し、
    前記データ量が前記メモリ閾値を超えないと判断したことに応じて、前記第1記憶処理、前記特定処理、前記第2記憶処理、前記第1生成処理、及び前記第1出力処理を実行し、
    前記データ量が前記メモリ閾値を超えると判断したことに応じて、前記圧縮画像データを解凍しつつ縮小し、縮小された1ページの画像データである縮小ページデータを取得する縮小ページデータ取得処理と、
    前記縮小ページデータに基づいて、前記印刷データを生成する第2生成処理と、
    前記第2生成処理で生成した前記印刷データを出力する第2出力処理と、を実行する請求項1から9のいずれかに記載のプリンタ。
  11. ディスプレイ及びユーザインタフェースをさらに備えており、
    前記コントローラは、
    前記圧縮画像データが、出力指示の入力を必要とする蓄積印刷の圧縮画像データであると判断したことに応じて、前記第1生成処理で生成した前記印刷データを、前記出力指示を待機するために前記メモリに記憶させる待機処理と、
    前記ユーザインタフェースを通じて前記出力指示の入力を受け付けたことに応じて、前記出力指示を待機するために前記メモリに記憶された前記印刷データを出力する前記第1出力処理と、を実行する請求項1から10のいずれかに記載のプリンタ。
  12. 前記コントローラは、
    前記第1出力処理で出力した前記印刷データに対する印刷が終了したか否かを判断する終了判断処理と、
    印刷再開を可能にする再開可能入力を受け付ける再開可能入力受付処理と、をさらに実行し、
    前記第1出力処理で出力した一の前記印刷データに対する印刷が終了していないと前記終了判断処理で判断したことに応じて、当該一の印刷データを前記メモリにおいて維持し、前記再開可能入力を受け付けたことに応じて、前記第1出力処理を再度実行する請求項1から11のいずれかに記載のプリンタ。
  13. 前記コントローラは、
    コンピュータと、
    前記コンピュータによって実行されるアプリケーション、受付モジュール、解析モジュール、及びジョブ管理モジュールと、を備え、
    前記受付モジュールは、
    前記アプリケーションからの指示を受け付けて、前記圧縮画像データを受け付ける前記受付処理と、
    受け付けた当該圧縮画像データを、前記アプリケーションが指示する前記メモリの記憶領域に記憶させる前記第1記憶処理と、を前記コンピュータに実行させ、
    前記解析モジュールは、
    前記アプリケーションからの指示を受け付けて、当該アプリケーションが指示する前記メモリの記憶領域に記憶された1ページ分の前記圧縮画像データを読み込んで解析することで、前記部分圧縮データを特定する前記特定処理を前記コンピュータに実行させ、
    前記解析モジュール或いは前記ジョブ管理モジュールは、
    前記アプリケーションからの指示を受け付けて、1ページ分の前記圧縮画像データを複数の前記部分圧縮データに分割し、当該部分圧縮データを、前記アプリケーションが指示する前記メモリの記憶領域に記憶させる前記第2記憶処理を前記コンピュータに実行させ、
    前記ジョブ管理モジュールは、
    前記アプリケーションからの指示を受け付けて、前記メモリから前記部分圧縮データを読み出し、読み出した当該部分圧縮データを解凍して印刷データを生成する前記第1生成処理と前記第1出力処理とを、前記部分圧縮データの数に応じた回数だけ繰り返して前記コンピュータに実行させる請求項1から12のいずれかに記載のプリンタ。
  14. メモリ及びコントローラを備えるプリンタの当該コントローラに実装されるモジュールであって、
    前記コントローラは、
    圧縮された画像データである圧縮画像データの入力を受け付ける受付処理と、
    前記圧縮画像データを前記メモリに記憶させる第1記憶処理と、
    前記メモリに記憶された1ページ分の前記圧縮画像データを解析することで、当該圧縮画像データが示す画像を複数の分割画像に分割した場合における当該各分割画像をそれぞれ示す複数の部分圧縮データが、当該圧縮画像データのどの部分であるかを特定する特定処理と、
    前記部分圧縮データ、或いは当該部分圧縮データを示す情報を前記メモリに記憶させる第2記憶処理と、
    前記メモリに記憶された複数の前記部分圧縮データのうち、一の前記部分圧縮データを解凍し、解凍によって得られた部分解凍データに基づいて、印刷データを生成する生成処理と、
    前記印刷データを出力する出力処理と、を実行し、
    前記コントローラは、前記生成処理及び前記出力処理を、前記部分圧縮データの数に応じた回数だけ繰り返して実行し、
    前記圧縮画像データは、複数の単位データを有しており、
    前記単位データは、一乃至複数の画素を示し、
    前記コントローラは、
    前記圧縮画像データが示す画像の縦方向の画素数を示す縦値と、横方向の画素数を示す横値と、を当該圧縮画像データから取得する取得処理と、
    取得した前記縦値に基づいて、前記圧縮画像データが示す画像の縦方向における分割位置を示す分割縦閾値と、取得した前記横値に基づいて、前記圧縮画像データが示す画像の横方向における分割位置を示す分割横閾値と、の少なくとも一方の閾値を決定する閾値決定処理と、をさらに実行し、
    前記コントローラは、前記特定処理において、前記圧縮画像データが有する複数の前記単位データがそれぞれ示す画素数をカウントし、得られた画素カウント値が示す横幅が前記分割横閾値に到達したときの前記単位データ、或いは、当該画素カウント値が示す高さが前記分割縦閾値に到達したときの前記単位データ、を分割位置単位データとして特定し、特定した当該分割位置単位データより前の前記単位データを一の前記部分圧縮データに属する単位データとし、当該分割位置単位データより後の前記単位データを他の一の前記部分圧縮データに属する単位データとする場合において、
    前記コントローラに前記特定処理を実行させるモジュール。
  15. メモリ及びコントローラを備えるプリンタの当該コントローラに実装されるモジュールであって、
    前記コントローラは、
    圧縮された画像データである圧縮画像データの入力を受け付ける受付処理と、
    前記圧縮画像データを前記メモリに記憶させる第1記憶処理と、
    前記圧縮画像データが示す画像の縦方向の画素数を示す縦値と、横方向の画素数を示す横値と、を当該圧縮画像データから取得する取得処理と、
    前記縦値に基づいて、前記圧縮画像データが示す画像の縦方向における分割位置を示す分割縦閾値と、前記横値に基づいて、前記圧縮画像データが示す画像の横方向における分割位置を示す分割横閾値と、の少なくとも一方の閾値を決定する閾値決定処理と、
    前記メモリに記憶された1ページ分の前記圧縮画像データを前記分割縦閾値と前記分割横閾値との少なくとも一方の閾値を用いて解析することで、当該圧縮画像データが示す画像を複数の分割画像に分割した場合における当該各分割画像をそれぞれ示す複数の部分圧縮データが、当該圧縮画像データのどの部分であるかを特定する特定処理と、
    前記部分圧縮データ、或いは当該部分圧縮データを示す情報を前記メモリに記憶させる第2記憶処理と、
    前記メモリに記憶された複数の前記部分圧縮データのうち、一の前記部分圧縮データを解凍し、解凍によって得られた部分解凍データに基づいて、印刷データを生成する生成処理と、
    前記印刷データを出力する出力処理と、を実行し、
    前記コントローラは、前記生成処理及び前記出力処理を、前記部分圧縮データの数に応じた回数だけ繰り返して実行する場合において、
    前記コントローラに前記特定処理を実行させるモジュール。
JP2019030422A 2019-02-22 2019-02-22 プリンタ及びモジュール Active JP7251205B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019030422A JP7251205B2 (ja) 2019-02-22 2019-02-22 プリンタ及びモジュール
US16/796,316 US11093194B2 (en) 2019-02-22 2020-02-20 Printing apparatus and module

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019030422A JP7251205B2 (ja) 2019-02-22 2019-02-22 プリンタ及びモジュール

Publications (2)

Publication Number Publication Date
JP2020131619A JP2020131619A (ja) 2020-08-31
JP7251205B2 true JP7251205B2 (ja) 2023-04-04

Family

ID=72142920

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019030422A Active JP7251205B2 (ja) 2019-02-22 2019-02-22 プリンタ及びモジュール

Country Status (2)

Country Link
US (1) US11093194B2 (ja)
JP (1) JP7251205B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020088694A (ja) * 2018-11-28 2020-06-04 キヤノン株式会社 画像処理装置、画像処理方法
JP2021164046A (ja) * 2020-03-31 2021-10-11 キヤノン株式会社 画像処理装置、記録装置、画像処理方法、およびプログラム

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005238465A (ja) 2004-02-24 2005-09-08 Seiko Epson Corp 高濃度と高光沢を両立させるインク使用量の決定
JP2006231627A (ja) 2005-02-23 2006-09-07 Ricoh Co Ltd 画像形成装置
JP2007251423A (ja) 2006-03-14 2007-09-27 Fujifilm Corp 画像処理装置及び方法
JP2008113189A (ja) 2006-10-30 2008-05-15 Sharp Corp 画像データ処理装置、およびそれを備えた画像形成装置、画像データ処理プログラム、画像データ処理方法
US20130088731A1 (en) 2011-10-07 2013-04-11 Bradley R. Larson Processing image data strips
JP2015066784A (ja) 2013-09-27 2015-04-13 ブラザー工業株式会社 印刷装置
JP2017144697A (ja) 2016-02-19 2017-08-24 コニカミノルタ株式会社 画像形成装置、画像処理方法及びプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07195757A (ja) * 1993-12-29 1995-08-01 Nec Corp ページプリンタ
US6778291B1 (en) * 2000-06-12 2004-08-17 Hewlett-Packard Development Company, L.P. Fast page analyzer for proper selection of compression engine for rendered data
JP4906469B2 (ja) * 2005-11-14 2012-03-28 キヤノン株式会社 印刷システム、ジョブ処理方法、記憶媒体、プログラム
JP6128753B2 (ja) * 2012-05-21 2017-05-17 キヤノン株式会社 印刷装置、印刷装置の制御方法、及びプログラム
JP6631278B2 (ja) 2016-01-29 2020-01-15 ブラザー工業株式会社 ドライバプログラム、及びドライバプログラムとプリンタとのセット
JP7068860B2 (ja) * 2018-02-28 2022-05-17 理想科学工業株式会社 印刷装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005238465A (ja) 2004-02-24 2005-09-08 Seiko Epson Corp 高濃度と高光沢を両立させるインク使用量の決定
JP2006231627A (ja) 2005-02-23 2006-09-07 Ricoh Co Ltd 画像形成装置
JP2007251423A (ja) 2006-03-14 2007-09-27 Fujifilm Corp 画像処理装置及び方法
JP2008113189A (ja) 2006-10-30 2008-05-15 Sharp Corp 画像データ処理装置、およびそれを備えた画像形成装置、画像データ処理プログラム、画像データ処理方法
US20130088731A1 (en) 2011-10-07 2013-04-11 Bradley R. Larson Processing image data strips
JP2015066784A (ja) 2013-09-27 2015-04-13 ブラザー工業株式会社 印刷装置
JP2017144697A (ja) 2016-02-19 2017-08-24 コニカミノルタ株式会社 画像形成装置、画像処理方法及びプログラム

Also Published As

Publication number Publication date
JP2020131619A (ja) 2020-08-31
US11093194B2 (en) 2021-08-17
US20200272396A1 (en) 2020-08-27

Similar Documents

Publication Publication Date Title
US8107097B2 (en) Printing method
US20110075165A1 (en) Image processing system, image processing method and computer readable medium
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
JP7251205B2 (ja) プリンタ及びモジュール
US8441670B2 (en) In-line system for the validation of a page description language within a print data stream
US7835027B2 (en) Reducing the resolution of a rendered image for printing
JP7259396B2 (ja) プリンタ及びモジュール
US8705088B2 (en) Image processing apparatus including an input section and a generating section for printing image data, printing system, and computer readable medium
US10817761B2 (en) Printing apparatus and computer-readable storage medium
JP2019098580A (ja) 画像形成装置
JP7238457B2 (ja) プリンタ
JP7263830B2 (ja) プリンタ及びモジュール
JP5586656B2 (ja) 印刷処理システム、画像処理装置、印刷検証装置及びプログラム
JP2009202436A (ja) 印刷制御装置、印刷制御方法および印刷制御プログラム
US9106862B2 (en) Print control device, inkjet recording apparatus, print control method, and printing system
JP7006372B2 (ja) 画像処理システム、画像処理装置、画像処理方法、及びプログラム
JP5730646B2 (ja) プリント検査装置、プリンタシステム
JP2008077158A (ja) プリンタ・ドライバ・プログラム
JP2017087672A (ja) 画像形成システム
JP2004261994A (ja) 印刷制御装置、印刷制御方法および印刷制御プログラム
JP2010109596A (ja) 画像形成装置
JP2002123378A (ja) 文書印刷処理システム及びそのプログラムを記録した記録媒体
US20150212777A1 (en) Data processing apparatus, data processing method, and nontransitory storage medium
JP2004122622A (ja) インクジェット記録制御方法
JP2006192618A (ja) 印刷開始時間を短縮させた画像形成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230116

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: 20230221

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230306

R150 Certificate of patent or registration of utility model

Ref document number: 7251205

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150