JP2022135207A - コンピュータプログラム、および、画像処理装置 - Google Patents
コンピュータプログラム、および、画像処理装置 Download PDFInfo
- Publication number
- JP2022135207A JP2022135207A JP2021034855A JP2021034855A JP2022135207A JP 2022135207 A JP2022135207 A JP 2022135207A JP 2021034855 A JP2021034855 A JP 2021034855A JP 2021034855 A JP2021034855 A JP 2021034855A JP 2022135207 A JP2022135207 A JP 2022135207A
- Authority
- JP
- Japan
- Prior art keywords
- data
- processing
- image data
- instruction
- 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.)
- Pending
Links
- 238000004590 computer program Methods 0.000 title claims abstract description 29
- 238000012545 processing Methods 0.000 title claims description 340
- 238000000034 method Methods 0.000 claims description 201
- 230000008569 process Effects 0.000 claims description 139
- 238000007639 printing Methods 0.000 abstract description 53
- 238000007726 management method Methods 0.000 description 54
- 230000008859 change Effects 0.000 description 27
- 239000013256 coordination polymer Substances 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 238000011144 upstream manufacturing Methods 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 11
- 230000004048 modification Effects 0.000 description 11
- 238000012986 modification Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000012546 transfer Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 3
- 239000000976 ink Substances 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1801—Input data handling means
- G06K15/181—Receiving print data characterized by its formatting, e.g. particular page description languages
- G06K15/1814—Receiving print data characterized by its formatting, e.g. particular page description languages including print-ready data, i.e. data already matched to the printing process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1206—Improving or facilitating administration, e.g. print management resulting in increased flexibility in input data format or job format or job type
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1211—Improving printing performance
- G06F3/1212—Improving printing performance achieving reduced delay between job submission and print start
- G06F3/1213—Improving printing performance achieving reduced delay between job submission and print start at an intermediate node or at the final node
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1244—Job translation or job parsing, e.g. page banding
- G06F3/1247—Job translation or job parsing, e.g. page banding by conversion to printer ready format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1253—Configuration of print job parameters, e.g. using UI at the client
- G06F3/1256—User feedback, e.g. print preview, test print, proofing, pre-flight checks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1285—Remote printer device, e.g. being remote from client or server
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1801—Input data handling means
- G06K15/181—Receiving print data characterized by its formatting, e.g. particular page description languages
- G06K15/1815—Receiving print data in mixed format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1204—Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
Abstract
【課題】印刷指示の入力から印刷が行われるまでの時間が長くなることを抑制する。
【解決手段】コンピュータプログラムは、ユーザによって入力されるデータ選択指示を取得し、データ選択指示と対応する印刷指示であってデータ選択指示の入力後にユーザによって入力される印刷指示を取得する指示取得機能と、データ選択指示に基づいて選択された対象画像データを用いて印刷データを生成する生成機能と、印刷データを印刷実行部に供給する供給機能と、をコンピュータに実現させる。生成機能は、データ選択指示が取得された後、かつ、印刷指示が取得される前に、印刷データの生成を開始する。供給機能は、印刷指示が取得される前に、印刷データの生成が完了した場合であっても、印刷データの供給を開始せず、印刷指示が取得された後に、印刷データの供給を開始する。
【選択図】 図9
Description
本明細書は、印刷データを生成し、印刷実行部に供給する技術に関する。
特許文献1に開示されたプリンタのコントローラは、ユーザが画像ファイルと印刷設定(用紙のサイズやレイアウトなど)とを選択した後に印刷ボタンを押下したときに、JPEG処理、リサイズ処理、画質補正処理などを実行して、展開画像データを生成する。コントローラは、展開画像データから印刷機構が印刷可能な印刷データを生成し、該印刷データに基づいて印刷機構を制御する。これによって、画像の印刷が実現される。
印刷データの生成には処理時間が必要であるために、印刷指示の入力(例えば、印刷ボタンの押下)から印刷が行われるまでの時間が長くなる場合があった。
本明細書は、印刷指示の入力から印刷が行われるまでの時間が長くなることを抑制できる技術を開示する。
本明細書に開示された技術は、以下の適用例として実現することが可能である。
[適用例1]コンピュータプログラムであって、ユーザによって入力されるデータ選択指示を取得し、前記データ選択指示と対応する印刷指示であって前記データ選択指示の入力後にユーザによって入力される前記印刷指示を取得する指示取得機能と、前記データ選択指示に基づいて選択された対象画像データを用いて印刷データを生成する生成機能と、前記印刷データを印刷実行部に供給する供給機能と、をコンピュータに実現させ、前記生成機能は、前記データ選択指示が取得された後、かつ、前記印刷指示が取得される前に、前記印刷データの生成を開始し、前記供給機能は、前記印刷指示が取得される前に、前記印刷データの生成が完了した場合であっても、前記印刷データの供給を開始せず、前記印刷指示が取得された後に、前記印刷データの供給を開始する、コンピュータプログラム。
上記構成によれば、データ選択指示が取得された後、かつ、印刷指示が取得される前に、印刷データの生成を開始し、印刷指示が取得された後に、印刷データの供給を開始する。この結果、印刷指示の入力から印刷が行われるまでの時間が長くなることを抑制できる。さらに、印刷指示が取得される前に、印刷データの生成処理が完了した場合であっても、印刷データの供給を開始しないので、ユーザの意図しない画像が印刷されることを抑制できる。
なお、本明細書に開示の技術は、種々の態様で実現することが可能であり、例えば、画像処理方法および画像処理装置、印刷方法および印刷装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体(例えば、一時的ではない記録媒体)、等の形態で実現することができる。
A.実施例:
A-1: 印刷システム1000の構成
次に、実施の形態を実施例に基づき説明する。図1は、実施例の印刷システム1000の構成を示すブロック図である。
A-1: 印刷システム1000の構成
次に、実施の形態を実施例に基づき説明する。図1は、実施例の印刷システム1000の構成を示すブロック図である。
印刷システム1000は、プリンタ200と、本実施例の画像処理装置としての端末装置300と、を含んでいる。プリンタ200と、端末装置300と、は、ネットワークNWを介して、通信可能に接続されている。本実施例では、ネットワークNWは、Wi-fi規格に準拠した無線通信が行われる無線ネットワークである。
端末装置300は、プリンタ200のユーザが使用する計算機であり、例えば、スマートフォンである。端末装置300は、端末装置300のコントローラとしてのCPU310と、ハードディスクドライブやSSD(Solid State Drive)などの不揮発性記憶装置320と、RAMなどの揮発性記憶装置330と、ユーザによる操作を取得するためのボタンやタッチパネルなどの操作部360と、液晶ディスプレイなどの表示部370と、通信部380と、を備えている。通信部380は、ネットワークNWに接続するためのインタフェース(本実施例では無線インタフェース)を含む。
揮発性記憶装置330は、CPU310のためのバッファ領域331を提供する。不揮発性記憶装置320には、複数個のコンピュータプログラム、具体的には、アプリケーションプログラムAPと、OSプログラムOPと、が格納されている。
アプリケーションプログラムAPは、プリンタ200に画像を印刷させる機能をCPU310に実現させるプログラムである。CPU310がアプリケーションプログラムAPを実行することによって実現される具体的な処理については後述する。アプリケーションプログラムAPは、例えば、サーバからダウンロードされる形態にて、プリンタ200の製造者によって提供される。
OSプログラムOPは、オペレーティングシステム(OS)としての機能をCPU310に実現させるプログラムである。OSプログラムOPは、Android(登録商標)、iOS(登録商標)、Windows(登録商標)などの公知のプログラムである。
プリンタ200は、例えば、印刷実行部としての印刷機構250と、印刷機構250のための制御装置としてのCPU210と、ハードディスクやフラッシュメモリなどの不揮発性記憶装置220と、RAMなどの揮発性記憶装置230と、ユーザによる操作を取得するためのボタンやタッチパネルなどの操作部260と、液晶ディスプレイなどの表示部270と、通信部280と、を備えている。プリンタ200は、通信部280を介して、外部装置、例えば、ユーザの端末装置(図示省略)と通信可能に接続される。
揮発性記憶装置230は、CPU210が処理を行う際に生成される種々の中間画像データを一時的に格納するバッファ領域231を提供する。不揮発性記憶装置220には、コンピュータプログラムPGが格納されている。コンピュータプログラムPGは、本実施例では、プリンタ200を制御するための制御プログラムである。コンピュータプログラムPGは、プリンタ200の出荷時に不揮発性記憶装置220に格納されて提供され得る。これに代えて、コンピュータプログラムPGは、サーバからダウンロードされる形態で提供されても良いし、DVD-ROMなどに格納される形態で提供されてもよい。
印刷機構250は、複数種類のインク、例えば、シアン(C)、マゼンタ(M)、イエロ(Y)、ブラック(K)の各インクを吐出して用紙などの印刷媒体に印刷を行うインクジェット方式の印刷機構である。これに代えて、印刷機構250は、複数種類のトナーを用いて、印刷媒体に印刷を行う電子写真方式の印刷機構であっても良い。
A-2.印刷アプリケーションの概要
上述したアプリケーションプログラムAPを実行することによってCPU310が実現する機能を「印刷アプリケーションPA」とも呼ぶ。印刷アプリケーションPAは、元画像データを用いて、印刷データを生成し、該印刷データを用いてプリンタ200に印刷を実行させる。本実施例の元画像データは、例えば、不揮発性記憶装置320に格納されたユーザの画像データである。これらの画像データは、JPEG(Joint Photographic Experts Group)、PDF(Portable Document Format)、XPS(XML Paper Specification)などの様々な形式の画像ファイルとし保存されている。
上述したアプリケーションプログラムAPを実行することによってCPU310が実現する機能を「印刷アプリケーションPA」とも呼ぶ。印刷アプリケーションPAは、元画像データを用いて、印刷データを生成し、該印刷データを用いてプリンタ200に印刷を実行させる。本実施例の元画像データは、例えば、不揮発性記憶装置320に格納されたユーザの画像データである。これらの画像データは、JPEG(Joint Photographic Experts Group)、PDF(Portable Document Format)、XPS(XML Paper Specification)などの様々な形式の画像ファイルとし保存されている。
図2は、印刷アプリケーションPAの機能的な構成を示すブロック図である。印刷アプリケーションPAは、ユーザインタフェース(UI)処理部UPと、複数個の画像処理部IP1、IP2と、複数個の画像処理部を制御する画像処理制御部CPと、を備えている。画像処理部の個数(図2では2個)は、後述する所定の上限値Nmax以下の数である。
UI処理部UPは、ユーザインタフェース(UI)画面を表示部270に表示する。図3は、UI画面の一例を示す図である。図3(A)のUI画面は、メイン画面WI1である。UI処理部UPは、例えば、印刷アプリケーションが起動されたときにメイン画面WI1を表示部370に表示する。メイン画面WI1は、プレビュー画像表示領域PWと、ボタンBT1~BT3、SB1、SB2と、を含む。
プレビュー画像表示領域PWは、ユーザによって選択された元画像データによって示される元画像を含む印刷画像をユーザが確認するための画像(プレビュー画像PIとも呼ぶ)が表示される領域である。ユーザによって元画像データが選択されていない場合には、プレビュー画像表示領域PWには、プレビュー画像は表示されない。切替ボタンSB1、SB2は、複数個の元画像データが選択されている場合に、複数個の元画像データに対応する複数個のプレビュー画像PIのうち、プレビュー画像表示領域PWに表示されるプレビュー画像PIを切り替えるためのボタンである。
メイン画面WI1において画像選択ボタンBT1が押下されると、UI処理部UPは、メイン画面WI1に代えて、図3(B)の画像選択画面WI2を表示部270に表示する。画像選択画面WI2は、複数個の画像ファイルのリストSLと、リストSLの中から1以上の画像ファイルを選択するためのチェックボックスCBと、ボタンBT4、BT5と、を含む。本実施例では、図3(B)に示すように、1個の画像を示す画像データを含む画像ファイル、例えば、JPEG形式やPNG形式の画像ファイルが選択される場合には、複数個の画像ファイルを選択することが許容される。この場合には、各画像ファイルに含まれる各画像データが元画像データとして選択される。
また、複数個のページ画像データを含む画像ファイル、例えば、PDF形式の画像ファイルが選択される場合には、1個の画像ファイルのみが選択可能である。そして、1個の画像ファイルに含まれる複数個のページ画像データの中から複数個のページ画像データを選択することが許容される。この場合には、選択された各ページ画像データが元画像データとして選択される。PDF形式の画像ファイル、および、当該ファイル内のページ画像データを選択するためのUI画面の図示は省略する。
画像選択画面WI2において決定ボタンBT5が押下されると、UI処理部UPは、その時点で画像選択画面WI2にて選択されている画像ファイルに含まれる画像データを元画像データとして決定し、画像選択画面WI2に代えて、メイン画面WI1を表示部270に表示する。すなわち、画像選択画面WI2を介して、UI処理部UPは、ユーザから元画像データを選択するデータ選択指示を取得する。画像選択画面WI2においてリターンボタンBT4が押下されると、UI処理部UPは、元画像データを決定することなく、画像選択画面WI2に代えて、メイン画面WI1を表示部270に表示する。
データ選択指示が取得された後に、メイン画面WI1において印刷指示ボタンBT3が押下されると、UI処理部UPは、データ選択指示に対応する印刷指示を取得する。以下では、データ選択指示に対応する印刷指示は、該データ選択指示によって選択された元画像データを用いて生成される印刷ジョブを用いた印刷をプリンタ200に実行させるための指示を意味する。該印刷指示が取得された後に、印刷ジョブがプリンタ200に送信される。
データ選択指示が入力された後に、印刷指示が取得される前に、ユーザは画像選択画面WI2において別の元画像データを選択して決定ボタンBT5を押下することによって、データ変更指示を入力することができる。データ変更指示は、印刷に用いられるべき元画像データを変更する指示である。
メイン画面WI1において印刷設定ボタンBT2が押下されると、UI処理部UPは、メイン画面WI1に代えて、図3(C)の印刷設定画面WI3を表示部270に表示する。印刷設定画面WI3は、複数個の設定項目について、印刷設定を入力するための入力要素を含む。図3(C)の例では、印刷のカラーモード、用紙サイズ、印刷品質について、印刷設定を入力するためのプルダウンメニューPM1~PM3が図示されている。プルダウンメニューPM1を介して、カラーモードは、複数個の選択肢(例えば、モノクロモードとカラーモード)のいずれかに設定される。プルダウンメニューPM2を介して、用紙サイズは、複数個の選択肢(例えば、A3、A4、A5)のいずれかに設定される。プルダウンメニューPM3を介して、印刷品質は、複数個の選択肢(例えば、高画質(低速)、低画質(高速))のいずれかに設定される。図示は省略するが、印刷設定画面WI3を介して設定される設定項目は、他の様々な設定項目、具体的には、余白の設定、印刷部数、1個の印刷画像に含まれる元画像の個数(割付数とも呼ぶ、例えば、1in1,2in1,4in1)、両面印刷/片面印刷の指定、トレイ設定(使用する用紙が収容される給紙トレイ、印刷済みの用紙が排出される排出トレイ)の指定等を含む。
印刷設定画面WI3において決定ボタンBT7が押下されると、UI処理部UPは、その時点で印刷設定画面WI3にて設定されている印刷設定に現在の印刷設定を更新し、印刷設定画面WI3に代えて、メイン画面WI1を表示部270に表示する。すなわち、印刷設定画面WI3を介して、UI処理部UPは、ユーザから印刷設定変更指示を取得する。印刷設定画面WI3においてリターンボタンBT6が押下されると、UI処理部UPは、印刷設定を更新することなく、印刷設定画面WI3に代えて、メイン画面WI1を表示部270に表示する。なお、印刷設定変更指示が取得されるまでは、印刷設定は、デフォルトの設定とされている。
メイン画面WI1において、印刷指示ボタンBT3は、元画像データが選択されている状態で有効である。印刷指示ボタンBT3が押下されると、UI処理部UPは、その時点で取得済みのデータ選択指示に対応する印刷指示を取得する。
画像処理部IP1は、管理部CLと、複数個の処理部PS1~PS5と、複数個の受渡リストIL1~IL5と、を含んでいる。複数個の処理部PS1~PS4は、協働して、ユーザによって選択された元画像データを用いて印刷データを生成する。供給部PS5は、ユーザから取得される印刷指示に応じて、生成された印刷データを含む印刷ジョブをプリンタ200に供給する。この結果、プリンタ200に印刷を実行させることができる。
ラスタライズ部PS1は、元画像データを用いてラスタライズ処理を実行して、元画像を示すビットマップデータを生成する。ビットマップデータは、例えば、RGB値を画素ごとに含むRGB画像データである。RGB値は、例えば、赤と緑と青との3個の成分値を含むRGB表色系の色値である。ラスタライズ部PS1は、生成されたビットマップデータを所定の形式、本実施例では、PNG形式で出力する。このように、ラスタライズ部PS1への入力画像データは、元画像データであり、ラスタライズ部PS1からの出力画像データは、PNG形式に変換された元画像データ(変換済画像データとも呼ぶ)である。元画像データがPNG形式である場合には、ラスタライズ処理は実行されず、ラスタライズ部PS1は、入力される元画像データをそのまま出力する。
レイアウト部PS2は、変換済画像データを用いてレイアウト処理を実行して、レイアウト画像データを生成する処理である。レイアウト画像データは、印刷設定に応じて元画像が配置された印刷画像を示す。例えば、印刷画像には、余白の設定に応じて、設定された幅を有する余白が付加されている。また、1個の印刷画像に2個の元画像を配置する設定(いわゆる2in1)が指示されている場合には、印刷画像には、2個の元画像が配置される。レイアウト部PS2は、レイアウト画像データを所定の形式、本実施例では、PNG形式で出力する。このように、レイアウト部PS2への入力画像データは、変換済画像データであり、レイアウト部PS2からの出力画像データは、レイアウト画像データである。
プレビュー部PS3は、レイアウト画像データを用いてプレビュー処理を実行して、プレビュー用画像データを生成する処理である。プレビュー用画像データは、プレビュー画像PIを示す画像データである。プレビュー用画像データは、上述したメイン画面WI1のプレビュー画像表示領域PWにプレビュー画像PIを表示するために用いられる。プレビュー処理は、例えば、印刷設定に応じて、プレビュー画像PIを調整する各種の処理を含む。例えば、カラーモードがモノクロモードに設定される場合には、プレビュー画像PIもモノクロの画像であることが好ましいので、プレビュー処理は、レイアウト画像データをモノクロ画像データに変換する処理を含む。プレビュー処理は、例えば、表示部270の特性に応じて、画素数や色数を調整する処理を含んでも良い。このように、プレビュー部PS3への入力画像データは、レイアウト画像データであり、プレビュー部PS3からの出力画像データは、プレビュー用画像データである。
プレビュー部PS3が、プレビュー用画像データを生成すると、UI処理部UPは、プレビュー用画像データを用いて、直ちに、メイン画面WI1のプレビュー画像表示領域PWにプレビュー画像PIを表示する。すなわち、メイン画面WI1には、データ選択指示が取得された後、かつ、印刷指示が取得される前に、プレビュー画像PIが表示される。
ビルド部PS4は、レイアウト画像データを用いてビルド処理を実行して、印刷データを生成する処理である。ビルド処理は、レイアウト画像データを、プリンタ200が解釈可能なデータ形式に変換する処理である。印刷データは、プリンタ200が解釈可能なデータ形式、例えば、PostScript(登録商標)やPrinter Control Language(登録商標)などのページ記述言語で記述された画像データである。ビルド処理は、各種の印刷設定、例えば、印刷解像度や両面印刷/片面印刷のいずれであるか等に応じて異なる処理を含む。このように、ビルド部PS4への入力画像データは、レイアウト画像データであり、ビルド部PS4からの出力画像データは、印刷データである。
供給部PS5は、印刷データを用いて供給処理を実行する。供給処理は、印刷データに対して印刷コマンドを付加して印刷ジョブを生成し、該印刷ジョブをプリンタ200に供給する処理である。印刷ジョブの供給は、通信部380を介してプリンタ200に印刷ジョブを送信することによって行われる。付加される印刷コマンドは、印刷設定に応じて設定項目、具体的には、印刷部数、印刷品質、使用する用紙が収容されるトレイ、印刷済みの用紙を出力するトレイなどの指定を行うコマンドを含む。このように、供給部PS5への入力画像データは、印刷データであり、供給部PS5からの出力画像データは、印刷ジョブである。
受渡リストILn(nは1~5の整数)は、処理部PSnへの入力画像データのパスが記述されるリストである。以下では、リスト(受渡リストILnまたは管理リストOLn)に画像データのパスが記述されることを、リストに画像データが登録されると表現する。受渡リストIL1に登録される画像データは、元画像データであり、管理部CLによって登録される。受渡リストILn(nは2~5の整数)に登録される画像データは、処理部PS(n-1)からの出力画像データであり、処理部PS(n-1)によって登録される。処理部PSn(nは1~5の整数)は、受渡リストILnに登録された入力画像データを取得し、該入力画像データを用いて、自身の処理を実行する。処理部PSn(nは1~5の整数)は、受渡リストILnに登録された順序で、入力画像データを1つずつ取得する。すなわち、受渡リストILnは、FIFO(first in first out)キューとして機能する。
管理リストOLn(nは1~5の整数)は、各処理部PSnに対応付けられたリストである。管理リストOLnは、対応する処理部PSnが生成した出力画像データが登録されるリストである。各処理部PSnは、入力画像データを用いて所定の処理を行って出力画像データを生成した場合に、該出力画像データを入力画像データとの対応が解るように管理リストOLnに登録する。このために、管理リストOLnを参照すれば、特定の入力画像データに対応する出力画像データが生成済みであるか否かを認識できる。受渡リストILnと管理リストOLnとを用いた各処理部PSnの処理の詳細は後述する。
A-3.印刷アプリケーションの動作
A-3-1.制御処理
図4は、制御処理のフローチャートである。図4の制御処理は、印刷アプリケーションが起動されてUI処理部UPによってUI画面WI1~WI2のいずれかが表示されている間に、画像処理制御部CPによって実行される。
A-3-1.制御処理
図4は、制御処理のフローチャートである。図4の制御処理は、印刷アプリケーションが起動されてUI処理部UPによってUI画面WI1~WI2のいずれかが表示されている間に、画像処理制御部CPによって実行される。
S1では、画像処理制御部CPは、並列に処理可能な印刷処理の上限値Nmaxをメモリ残量Mrに基づいて設定する。具体的には、画像処理制御部CPは、現在使用可能なメモリ残量Mr(揮発性記憶装置230のバッファ領域231の残量)を取得する。メモリ残量Mrは、例えば、OSから取得できる。画像処理制御部CPは、メモリ残量Mrが閾値THm未満である場合には、上限値Nmaxを1に設定し、メモリ残量Mrが閾値THm以上である場合には、上限値Nmaxを2に設定する。上限値Nmaxが取り得る最大値は、2に限らず、3以上の値であっても良い。
S2では、画像処理制御部CPは、取得済み、かつ、未処理のデータ選択指示があるか否かを判断する。例えば、UI処理部UPが画像選択画面WI2を介して取得済みのデータ選択指示のうち、対応する印刷処理が開始されていないデータ選択指示がある場合には、取得済み、かつ、未処理のデータ選択指示があると判断される。取得済み、かつ、未処理のデータ選択指示がない場合には(S2:NO)、画像処理制御部CPは、UI処理部UPが新たなデータ選択指示を取得するまで待機する。
取得済み、かつ、未処理のデータ選択指示がある場合には(S2:YES)、S3にて、画像処理制御部CPは、実行中の印刷処理の個数が上限値Nmaxに達しているか否かを判断する。印刷処理は、印刷ジョブを生成し、該印刷ジョブをプリンタ200に供給する処理である(詳細は後述)。データ選択指示が取得された後に印刷指示が取得されると、UI処理部UPは、新たなデータ選択指示を取得可能である。先に取得されたデータ選択指示に対応する印刷処理が終了する前に、新たなデータ選択指示が取得されると、2個の印刷処理が並列に実行される。このように、本実施例では、上限値Nmax以下の複数個の印刷処理が並列に実行される場合がある。
実行中の印刷処理の個数が上限値Nmaxに達している場合には(S3:YES)、画像処理制御部CPは、実行中の印刷処理のうちの一つが終了して、実行中の印刷処理の個数が上限値Nmax未満になるまで待機する。
実行中の印刷処理の個数が上限値Nmax未満である場合には(S3:NO:YES)、画像処理制御部CPは、未処理のデータ選択指示に対応する印刷処理を開始させる。画像処理制御部CPは、例えば、画像処理部IP1、IP2のいずれかに、データ選択指示によって選択された元画像データのパスを通知して、該元画像データを用いた印刷処理の開始を指示する。画像処理制御部CPは、印刷処理を開始させると、S2に処理を戻す。
A-3-2.印刷処理
図5、図6は、印刷処理のフローチャートである。印刷処理は、画像処理制御部CPからの開始指示に応じて、画像処理部(IP1またはIP2)の管理部CL(図2)によって実行される。印刷処理は、データ選択指示および印刷指示に対応している。すなわち、印刷処理は、対応するデータ選択指示によって選択された元画像データを用いて、印刷データおよび該印刷データを含む印刷ジョブを生成し、対応する印刷指示に応じて該印刷ジョブをプリンタ200に供給する。
図5、図6は、印刷処理のフローチャートである。印刷処理は、画像処理制御部CPからの開始指示に応じて、画像処理部(IP1またはIP2)の管理部CL(図2)によって実行される。印刷処理は、データ選択指示および印刷指示に対応している。すなわち、印刷処理は、対応するデータ選択指示によって選択された元画像データを用いて、印刷データおよび該印刷データを含む印刷ジョブを生成し、対応する印刷指示に応じて該印刷ジョブをプリンタ200に供給する。
図5のS10では、管理部CLは、OSプログラムOPのバージョンを示すOSバージョン情報と、印刷に用いるべき用紙のサイズを示す用紙サイズ情報と、印刷画像のサイズ(画素数)を示す画像サイズ情報と、を取得する。例えば、OSバージョン情報は、OSから取得される。用紙サイズ情報は、印刷設定によって指定される。印刷画像のサイズは、印刷設定によって指定される用紙のサイズと印刷解像度とに基づいて算出される。
S13では、管理部CLは、OSバージョン情報と用紙サイズ情報と画像サイズ情報とに基づいて、印刷データの生成処理(後述)の実行方式を、シーケンシャル方式とパラレル方式とのいずれかに決定する。シーケンシャル方式は、印刷データを生成するための上述した処理部PS1~PS4の処理を順次に実行し、並列には実行しない方式である。パラレル方式は、処理部PS1~PS4の処理の少なくとも一部の処理を並列に実行する方式である。
本実施例では、以下の条件(1)~(3)を全て満たす場合には、実行方式は、パラレル方式に決定され、条件(1)~(3)の少なくとも1つが満たされない場合には、実行方式は、シーケンシャル方式に決定される。
条件(1):OSのバージョンが基準以上である
条件(2):用紙サイズが基準(本実施例ではA3)未満である
条件(3):画像サイズが基準(本実施例ではA4サイズ600dpi相当の画素数)以下である
条件(1):OSのバージョンが基準以上である
条件(2):用紙サイズが基準(本実施例ではA3)未満である
条件(3):画像サイズが基準(本実施例ではA4サイズ600dpi相当の画素数)以下である
OSのバージョンを基準とするのは、OSのバージョンが古い場合には、並列処理の安定性や処理速度が十分に高くない場合があるためである。用紙サイズおよび画像サイズを基準とするのは、用紙サイズや画像サイズが過度に大きい場合には、並列処理の処理負荷が過度に大きくなる可能性があるためである。これらの場合には、並列処理の安定性が低下する場合や並列処理の処理速度が低下する場合があり、パラレル方式を採用する利点である処理の高速化を実現できない可能性があるので、シーケンシャル方式を採用することが好ましいためである。
S15では、管理部CLは、ラスタライズ部PS1への受渡リストIL1に、印刷処理に対応するデータ選択指示によって選択された元画像データを登録する。S17では、管理部CLは、印刷設定に応じたパラメータを処理部PS1~PS4について決定し、該パラメータを処理部PS1~PS4に供給する。
S20では、管理部CLは、処理部PS1~PS4に処理を開始させる。各処理部PS1~PS4の処理については後述するが、この後に各処理部PS1~PS4が実際に処理を実行するタイミングは、パラレル方式とシーケンシャル方式とで異なるが、これについては後述する。
S25では、管理部CLは、印刷条件変更指示が取得されたか否かを判断する。印刷条件変更指示は、画像選択画面WI2を介して取得されるデータ変更指示と、印刷設定画面WI3を介して取得する印刷設定変更指示と、を含む。
印刷条件変更指示が取得されない場合には(S25:NO)、管理部CLは、S70に処理を進める。印刷条件変更指示が取得された場合には(S25:YES)、管理部CLは、S30に処理を進める。
S30では、管理部CLは、印刷条件変更指示に基づいて、S13にて決定された実行方式を変更するか否かを判断する。具体的には、管理部CLは、印刷条件変更指示によって用紙サイズまたは画像サイズが変更された場合には、実行方式をパラレル方式とシーケンシャル方式とのいずれかに再度決定する。管理部CLは、再度決定した実行方式がS13にて決定された実行方式とは異なる場合には、実行方式を変更すると判断する。管理部CLは、用紙サイズまたは画像サイズが変更されない場合、および、再度決定した実行方式がS13にて決定された実行方式と同じである場合には、実行方式を変更しないと判断する。
実行方式を変更する場合には(S30:YES)、S35にて、管理部CLは、印刷データの生成処理の実行方式を、印刷条件変更指示に基づいて再度決定された実行方式に変更する。実行方式を変更しない場合には(S30:NO)、管理部CLは、S35をスキップする。
図6のS40では、管理部CLは、処理部PS1~PS4に処理を停止させる。S45では、管理部CLは、処理部PS1~PS5への受渡リストIL1~IL5をクリアする。S50では、管理部CLは、処理部PS1~PS5の管理リストOL1~OL5をクリアする。これによって、受渡リストIL1~IL5および管理リストOL1~OL5には、いずれの画像データも登録されていない状態になる。
S55では、管理部CLは、ラスタライズ部PS1への受渡リストIL1に、印刷処理に対応するデータ選択指示によって選択された元画像データを登録する。データ変更指示が取得されている場合には、変更後の元画像データが登録される。S60では、管理部CLは、印刷設定に応じたパラメータを処理部PS1~PS4について決定し、該パラメータを処理部PS1~PS4に供給する。印刷設定変更指示が取得されている場合には、印刷設定の変更後のパラメータが処理部PS1~PS4に供給される。
S65では、管理部CLは、処理部PS1~PS4に処理を再開させる。処理部PS1~PS4は、後述する各処理部の処理を再度始めから実行する。
S70では、管理部CLは、上述したメイン画面WI1を介して印刷指示が取得されたか否かを判断する。印刷指示が取得されない場合には(S70:NO)、管理部CLは、図5のS25に処理を戻す。印刷指示が取得された場合には(S70:YES)、S75にて、管理部CLは、供給部PS5に処理を開始させる。この時点から、処理部PS1~PS4によって生成済みの印刷データを含む印刷ジョブがプリンタ200に送信される。供給部PS5に処理を開始させると、管理部CLは、印刷処理を終了する。
以上の説明から解るように、データ選択指示が取得されてから、対応する印刷指示が取得されるまでは、該データ選択指示に基づく印刷について印刷条件変更指示の入力が許容されるが、印刷指示が取得された後は、印刷条件変更指示の入力は許容されない。換言すれば、印刷指示の入力が行われることによって、対応するデータ選択指示に基づく印刷について印刷条件が確定する。
A-3-3.処理部PS1~PS5の処理
管理部CLの制御に従って動作する処理部PS1~PS5の処理について説明する。図7は、処理部PS1~PS5の処理のフローチャートである。処理部PS1~PS5の処理は、共通する部分が多いために、互いに異なる部分を適宜に指摘しつつ、まとめて説明する。処理部への入力画像データが登録される受渡リストを該処理部の上流側の受渡リストとも呼び、処理部からの出力画像データが登録される受渡リストを該処理部の下流側の受渡リストとも呼ぶ。例えば、ラスタライズ部PS1の上流側の受渡リストは、受渡リストIL1であり、ラスタライズ部PS1の下流側の受渡リストは、受渡リストIL2である。プレビュー部PS3、供給部PS5の上流側の受渡リストIL3、IL5は存在するが、プレビュー部PS3、供給部PS5の下流側の受渡リストは存在しない。
管理部CLの制御に従って動作する処理部PS1~PS5の処理について説明する。図7は、処理部PS1~PS5の処理のフローチャートである。処理部PS1~PS5の処理は、共通する部分が多いために、互いに異なる部分を適宜に指摘しつつ、まとめて説明する。処理部への入力画像データが登録される受渡リストを該処理部の上流側の受渡リストとも呼び、処理部からの出力画像データが登録される受渡リストを該処理部の下流側の受渡リストとも呼ぶ。例えば、ラスタライズ部PS1の上流側の受渡リストは、受渡リストIL1であり、ラスタライズ部PS1の下流側の受渡リストは、受渡リストIL2である。プレビュー部PS3、供給部PS5の上流側の受渡リストIL3、IL5は存在するが、プレビュー部PS3、供給部PS5の下流側の受渡リストは存在しない。
図7の処理は、管理部CLからの開始指示に応じて開始される。S100では、処理部(処理部PS1~PS5のいずれか)は、上流側の受渡リストに自身への入力画像データが登録されているか否かを判断する。
図8は、処理部の処理の説明図である。図8には、処理中の複数の時点における受渡リストIL1~IL4と、管理リストOL1、OL2の状態が図示されている。図8では、3個の元画像データD1_org、D2_org、D3_orgが選択された場合が例示されている。図8(A)には、処理の開始時の状態が示されている。図8(A)の状態では、受渡リストIL1に、3個の元画像データD1_org、D2_org、D3_orgが登録されている。受渡リストIL1への元画像データD1_org、D2_org、D3_orgの登録は、管理部CLによって行われる(図5のS15、図6のS55)。他のリストIL2~IL4、OL1、OL2には、画像データは登録されていない。この状態では、ラスタライズ部PS1は、上流側の受渡リストIL1に入力画像データが登録されていると判断する。レイアウト部PS2は、上流側の受渡リストIL2に入力画像データが登録されていないと判断する。
上流側の受渡リストに自身への入力画像データが登録されている場合には(S100:YES)、処理部は、S105に処理を進める。上流側の受渡リストに自身への入力画像データが登録されていない場合には(S100:NO)、処理部は、受渡リストに自身への入力画像データが登録されるまで待機する。
S105では、処理部は、上流側の受渡リストIL1に登録された入力画像データの中から、登録順が最も先である画像データを注目画像データとし、該注目画像データの登録を上流側の受渡リストから削除する。例えば、図8(A)の例では、ラスタライズ部PS1は、元画像データD1_orgを注目画像データとし、元画像データD1_orgの登録を受渡リストIL1から削除する。
S110では、処理部は、注目画像データに対応する出力画像データが自身の管理リストに登録されているか否かを判断する。注目画像データに対応する出力画像データは、注目画像データに対して該処理部が実行すべき処理を実行することによって生成される画像データである。図8(A)の例では、元画像データD1_orgに対応する変換済画像データD1_convが管理リストOL1に登録されていないので、ラスタライズ部PS1は、注目画像データに対応する出力画像データが自身の管理リストOL1に登録されていないと判断する。
注目画像データに対応する出力画像データが自身の管理リストに登録されていない場合には(S110:NO)、S115にて、処理部は、注目画像データを用いて自身が実行すべき処理を実行して、出力画像データを生成する。生成された出力画像データは、画像ファイルに格納されて保存される。
S120では、処理部は、S115にて生成された出力画像データを自身の管理リストに登録する。すなわち、出力画像データを含む画像ファイルのパスを自身の管理リストに記述する。
注目画像データに対応する出力画像データが自身の管理リストに登録されている場合には(S110:YES)、S115、S120をスキップして、S125に処理を進める。
S125では、処理部は、S115にて生成された出力画像データを下流側の受渡リストに登録する。S125の後に、処理部は、S110に戻る。
処理部がレイアウト部PS2である場合には、下流側の受渡リストとして、プレビュー部PS3への受渡リストIL3と、ビルド部PS4への受渡リストIL4と、が存在する。S125では、レイアウト部PS2は、両方の受渡リストIL3、IL4に出力画像データを登録する。その際に、レイアウト部PS2は、ビルド部PS4への受渡リストIL4よりも先に、プレビュー部PS3への受渡リストIL3に出力画像データを登録する。これは、ユーザはプレビュー画像PIを確認した後に印刷指示を入力すると考えられるために、プレビュー用画像データの生成を、印刷データの生成よりも優先すべきであるためである。
処理部がプレビュー部PS3または供給部PS5である場合には、下流側の受渡リストは、存在しないので、S125は実行されない。
図8(B)には、元画像データD1_orgを用いたラスタライズ処理が実行された後、すなわち、ラスタライズ部PS1が元画像データD1_orgを注目画像データとして、図7のS105~S125を実行した後の状態が示されている。この時点では、ラスタライズ部PS1への受渡リストIL1から元画像データD1_orgの登録が削除されている(S105)。ラスタライズ部PS1の管理リストOL1には、元画像データD1_orgに対応する出力画像データである変換済画像データD1_convが登録されている(S120)。ラスタライズ部PS1の下流側の受渡リストIL2(レイアウト部PS2の上流側の受渡リストIL2)にも、変換済画像データD1_convが登録されている。レイアウト部PS2の上流側の受渡リストIL2に、変換済画像データD1_convが登録されたことにより、この時点からレイアウト部PS2は、変換済画像データD1_convを注目画像データとして、図7のS105~S125を実行することができる状態になる。
A-3-4.印刷データの生成処理の実行方式
印刷データの生成処理の実行方式であるパラレル方式とシーケンシャル方式とについてそれぞれ説明する。図9は、パラレル方式の説明図である。図10は、シーケンシャル方式の説明図である。図9、図10において、縦方向の軸線は、時間tである。時間tの軸線に沿って並ぶ数字は、処理が実行される期間に付された識別子であり、識別子の数字は、時系列順に付されている。図9、図10において、各処理部PS1~PS5の名称の下方に並んだ矩形は、各処理部PS1~PS5が実行する処理の内容と、当該処理が実行される期間と、を示している。例えば、図9において、期間1に対応する縦方向の位置には、ラスタライズ部PS1に対応する矩形が示され、該矩形内には、「D1_conv」と記載されている。これは、期間1には、ラスタライズ部PS1によって変換済画像データD1_convを生成するラスタライズ処理が実行されることを意味している。
印刷データの生成処理の実行方式であるパラレル方式とシーケンシャル方式とについてそれぞれ説明する。図9は、パラレル方式の説明図である。図10は、シーケンシャル方式の説明図である。図9、図10において、縦方向の軸線は、時間tである。時間tの軸線に沿って並ぶ数字は、処理が実行される期間に付された識別子であり、識別子の数字は、時系列順に付されている。図9、図10において、各処理部PS1~PS5の名称の下方に並んだ矩形は、各処理部PS1~PS5が実行する処理の内容と、当該処理が実行される期間と、を示している。例えば、図9において、期間1に対応する縦方向の位置には、ラスタライズ部PS1に対応する矩形が示され、該矩形内には、「D1_conv」と記載されている。これは、期間1には、ラスタライズ部PS1によって変換済画像データD1_convを生成するラスタライズ処理が実行されることを意味している。
ここで、変換済画像データD1_conv、レイアウト画像データD1_lay、プレビュー用画像データD1_pre、印刷データD1_bld、印刷ジョブD1_jobは、いずれも元画像データD1_orgを用いて生成される画像データである。このために、これらの画像データD1_conv、D1_lay、D1_pre、D1_bld、D1_jobは、いずれも元画像データD1_orgに対応する画像データと言うことができる。また、変換済画像データD1_conv、レイアウト画像データD1_layは、いずれもプレビュー用画像データD1_pre、印刷データD1_bldを生成する過程で一時的に生成されるデータであるので、中間画像データとも呼ぶ。
A-3-4-1.パラレル方式
パラレル方式では、図5のS20、S65、S75にて管理部CLによって処理部PS1~PS5の処理が開始された後は、処理部PS1~PS5は、互いに非同期で動作する。例えば、処理部PS1~PS5は、いわゆるマルチスレッド処理において互いに異なるスレッドとして実行される。このために、処理部PS1~PS5は、それぞれ、自身への受渡リストに入力画像データが登録されると、直ちに該入力画像データを用いた処理を実行する。パラレル方式では、処理部PS1~PS4の処理の少なくとも一部が、少なくとも一部の期間において、並列に実行される。
パラレル方式では、図5のS20、S65、S75にて管理部CLによって処理部PS1~PS5の処理が開始された後は、処理部PS1~PS5は、互いに非同期で動作する。例えば、処理部PS1~PS5は、いわゆるマルチスレッド処理において互いに異なるスレッドとして実行される。このために、処理部PS1~PS5は、それぞれ、自身への受渡リストに入力画像データが登録されると、直ちに該入力画像データを用いた処理を実行する。パラレル方式では、処理部PS1~PS4の処理の少なくとも一部が、少なくとも一部の期間において、並列に実行される。
元画像データD1_org、D2_org、D3_orgを選択するデータ選択指示が入力されると、供給部PS5を除く4個の処理部PS1~PS4の処理が開始される(図5のS20)。図9の期間1の開始時点では、上述した図8(A)に示すように、受渡リストIL1にのみ入力画像データが登録されているので、ラスタライズ部PS1のみが処理を実行できる。このために、図9の期間1では、変換済画像データD1_convを生成するラスタライズ処理のみが実行される。
図9の期間1が終了した時点で、上述した図8(B)に示すように、変換済画像データD1_convが生成されて受渡リストIL2に登録されるので、期間2には、ラスタライズ部PS1とレイアウト部PS2とが並列に処理を行うことができる。例えば、図9の期間2には、ラスタライズ部PS1によって変換済画像データD2_convを生成するラスタライズ処理と、レイアウト部PS2によってレイアウト画像データD1_layを生成するレイアウト処理と、が並列に実行される。
図8(C)には、図9の期間2が終了した時点、すなわち、変換済画像データD2_convを生成するラスタライズ処理と、レイアウト画像データD1_layを生成するレイアウト処理と、が終了した時点の状態が示されている。この時点では、元画像データD3_orgが受渡リストIL1に登録され、変換済画像データD2_convが受渡リストIL2に登録され、レイアウト画像データD1_layが受渡リストIL3、IL4に登録されている。このために、この時点で、処理部PS1~PS4が並列に処理を行える状態にある。このために、図9の期間3には、変換済画像データD3_convを生成するラスタライズ処理と、レイアウト画像データD2_layを生成するレイアウト処理と、プレビュー用画像データD1_preを生成するプレビュー処理と、印刷データD1_bldを生成するビルド処理と、が並列に実行される。
さらに、図9の期間4には、レイアウト画像データD3_layを生成するレイアウト処理と、プレビュー用画像データD2_preを生成するプレビュー処理と、印刷データD2_bldを生成するビルド処理と、が並列に実行される。図9の期間5には、プレビュー用画像データD3_preを生成するプレビュー処理と、印刷データD3_bldを生成するビルド処理と、が並列に実行され、期間5の終了時点で全ての元画像データD1_org、D2_org、D3_orgに対応する印刷データD1_bld、D2_bld、D3_bldの生成が完了する。このように、パラレル処理では、3個の元画像データを用いて印刷データを生成するために要する期間の数は、5である。
供給部PS5による供給処理は、処理部PS1~PS4の処理とは異なり、印刷指示が取得された時点から開始される(図6のS75)。供給部PS5の処理は、処理部PS1~PS4の処理とは異なるスレッドとして、処理部PS1~PS4の処理とは非同期で実行される。このために、供給部PS5の処理は、処理部PS1~PS4の処理と並列に実行され得る。
図9には、期間4の終了時(期間5の開始時)に印刷指示が取得される例が示されている。この時点で、2個の印刷データD1_bld、D2_bldが生成済みであるので、供給部PS5は、供給処理を直ちに開始することができる。図9の例では、期間5、6、7において、印刷ジョブD1_job、D2_job、D3_jobを供給する供給処理が実行される。このために、期間5には、プレビュー用画像データD3_preを生成するプレビュー処理および印刷データD3_bldを生成するビルド処理と並列に、印刷ジョブD1_jobを供給する供給処理が実行される。
A-3-4-2.シーケンシャル方式
シーケンシャル方式では、図5のS20、S65、S75にて管理部CLによって各処理部PS1~PS5の処理が開始された後は、各処理部PS1~PS5は、管理部CLの制御に従って順次に動作する。例えば、処理部PS1~PS5の全ての処理は、1つのスレッドとして実行される。このために、1つの処理部(例えば、PS1)の処理と、他の処理部(例えば、PS2~PS5)の処理と、が並列に実行されることは許容されない。
シーケンシャル方式では、図5のS20、S65、S75にて管理部CLによって各処理部PS1~PS5の処理が開始された後は、各処理部PS1~PS5は、管理部CLの制御に従って順次に動作する。例えば、処理部PS1~PS5の全ての処理は、1つのスレッドとして実行される。このために、1つの処理部(例えば、PS1)の処理と、他の処理部(例えば、PS2~PS5)の処理と、が並列に実行されることは許容されない。
例えば、図10の期間1が終了した時点で、上述した図8(B)に示すように、変換済画像データD1_convが生成されて受渡リストIL2に登録されるので、期間2には、レイアウト部PS2は処理を開始できる状態にある。この状態であっても、本実施例のシーケンシャル方式では、レイアウト部PS2は、ラスタライズ部PS1が全ての変換済画像データD1_conv、D2_conv、D3_convの生成を完了するまでレイアウト処理を開始しない。レイアウト部PS2は、全ての変換済画像データD1_conv、D2_conv、D3_convが生成された後に、レイアウト処理を開始する。
図8(D)には、図10の期間3が終了した時点、すなわち、全ての変換済画像データD1_conv、D2_conv、D3_convが生成された時点の状態が示されている。図8(D)の例では、変換済画像データD1_conv、D2_conv、D3_convが生成され、受渡リストIL2に登録されているが、レイアウト部PS2は、レイアウト処理を実行していないことが解る。シーケンシャル方式では、期間4、5、6にて、レイアウト画像データD1_lay、D2_lay、D3_layを生成するレイアウト処理が順次に実行される(図10)。
全てのレイアウト画像データD1_lay、D2_lay、D3_layが生成された後には、プレビュー処理とビルド処理とのいずれも実行可能であるが、本実施例では、プレビュー処理がビルド処理よりも優先される。上述したように、ユーザは、プレビュー画像PIを確認してから印刷指示を入力する場合が多いと考えられるために、プレビュー画像PIの表示を速やかに行うことが好ましいためである。このために、図10に示すように、全てのレイアウト画像データD1_lay、D2_lay、D3_layが生成された後の期間7、8、9にて、プレビュー用画像データD1_pre、D2_pre、D3_preを生成するプレビュー処理が順次に実行される。全てのプレビュー用画像データD1_pre、D2_pre、D3_preが生成された後の期間10、11、12にて、印刷データD1_bld、D2_bld、D3_bldを生成するビルド処理が順次に実行される。
供給部PS5による供給処理は、本実施例では、全ての印刷データが生成された後、かつ、印刷指示が取得された後に開始される。例えば、印刷指示が取得され、管理部CLから供給処理の開始指示があった場合(図6のS75)であっても、その時点で全ての印刷データが生成されていない場合には、供給部PS5は、全ての印刷データが生成された後に、供給処理を開始する。
図10には、期間7の終了時(期間8の開始時)に印刷指示が取得される例が示されている。この時点では、供給処理は開始されず、全ての印刷データD1_bld、D2_bld、D3_bldが生成された後の期間13、14、15において、印刷ジョブD1_job、D2_job、D3_jobを供給する供給処理が実行される。
パラレル方式は、例えば、使用できるリソース(例えば、メモリ容量)が、処理負荷(例えば、処理すべき画像データのサイズ)に対して十分に大きく、並列処理を効率良く実行できる場合に、シーケンシャル方式よりも高速に印刷ジョブの生成と供給とを実行できる。シーケンシャル方式は、例えば、使用できるリソースが処理負荷に対して十分ではなく、並列処理を効率良く実行できない場合であっても、安定して印刷ジョブの生成と供給とを実行できる。
なお、データ選択指示が取得される後、かつ、印刷指示が取得される前に、印刷条件変更指示が取得される場合には(図5のS25:YES)、処理部PS1~PS4の処理が停止され(図6のS40)、受渡リストIL1~IL5および管理リストOL1~OL5がクリアされたうえで(図5のS45、S55)、再度、印刷条件変更指示に応じた処理部PS1~PS4による印刷データの生成が実行される(図5のS60、65)。この場合には、図9、図10に示す印刷データの生成処理が、再度、初めからやり直される。
以上説明した本実施例によれば、UI処理部UPは、ユーザによって入力されるデータ選択指示を取得し、データ選択指示と対応する印刷指示であってデータ選択指示の入力後にユーザによって入力される印刷指示を取得する(図3(B))。処理部PS1、PS2、PS4は、データ選択指示に基づいて選択された元画像データD1_org、D2_org、D3_orgを用いて印刷データD1_bld、D2_bld、D3_bldを生成する(図5のS15~S20、図7、図9、図10)。供給部PS5は、印刷データD1_bld、D2_bld、D3_bldをプリンタ200に供給する(図6のS75、図7、図9、図10)。処理部PS1~PS4は、データ選択指示が取得された後、かつ、印刷指示が取得される前に、印刷データD1_bld、D2_bld、D3_bldの生成を開始する(図4のS2~S4、図9、図10)。供給部PS5は、印刷指示が取得される前に、印刷データD1_bld、D2_bld、D3_bldの生成が完了した場合であっても、印刷データD1_bld、D2_bld、D3_bldの供給を開始せず、印刷指示が取得された後に、印刷データD1_bld、D2_bld、D3_bldの供給を開始する(図6のS70、S75、図9、図10)。この結果、印刷指示の入力から印刷が行われるまでの時間が長くなることを抑制できる。例えば、ユーザがプレビュー画像PIの表示を確認している間にも印刷データD1_bld、D2_bld、D3_bldの生成処理を進めることができる。このために、印刷指示が取得された後に、印刷データの生成を開始する場合よりも速やかにプリンタ200に印刷データD1_bld、D2_bld、D3_bldを供給できるので、プリンタ200に速やかに印刷を開始させることができる。さらに、印刷指示が取得される前に、印刷データD1_bld、D2_bld、D3_bldの生成処理が完了した場合であっても、印刷データD1_bld、D2_bld、D3_bldの供給を開始しないので、ユーザの意図しない画像が印刷されることを抑制できる。
さらに、本実施例によれば、処理部PS1~PS3は、データ選択指示に基づいて選択された元画像データD1_org、D2_org、D3_orgを用いてプレビュー用画像データD1_pre、D2_pre、D3_preを生成する(図9、図10)。UI処理部UPは、データ選択指示が取得された後、かつ、印刷指示が取得される前に、プレビュー用画像データD1_pre、D2_pre、D3_preを用いて、プレビュー画像PIを表示部370に表示する(図3(A))。プレビュー用画像データD1_pre、D2_pre、D3_preの生成は、印刷データD1_bld、D2_bld、D3_bldの生成よりも優先して実行される。例えば、シーケンシャル方式では、図10に示すように、プレビュー用画像データD1_pre、D2_pre、D3_preの生成は、印刷データD1_bld、D2_bld、D3_bldの生成よりも先に実行される。また、レイアウト部PS2は、プレビュー部PS3の受渡リストIL3へのレイアウト画像データD1_pre、D2_pre、D3_preの登録を、ビルド部PS4の受渡リストIL4へのレイアウト画像データの登録よりも先に行う(図7)。この結果、パラレル方式においてもプレビュー用画像データの生成は、印刷データの生成よりも優先して実行される。この結果、データ選択指示が取得された後、かつ、印刷指示が取得される前に、プレビュー画像PIを速やかに表示することができる。したがって、例えば、ユーザは、印刷指示を入力する前に、プレビュー画像PIを見て、印刷画像を事前に速やかに確認できる。
さらに、本実施例では、上限値Nmax以下の複数個の画像処理部IP1、IP2は、並列に図5の印刷処理を実行することができる。すなわち、第1のデータ選択指示と、第1のデータ選択指示と対応する第1の印刷指示と、に応じてプリンタ200に印刷を実行させる印刷処理と、第2のデータ選択指示と、第2のデータ選択指示と対応する第2の印刷指示と、に応じてプリンタ200に印刷を実行させる印刷処理と、が並列に実行できる(図4のS2~S4)。具体的には、画像処理部IP1は、第1のデータ選択指示が取得された後、かつ、第1の印刷指示が取得される前に、第1の印刷データの生成を開始する。画像処理部IP2は、第2のデータ選択指示が取得された後、かつ、第2の印刷指示が取得される前に、第2の印刷データの生成を開始する。第1の印刷データの生成が完了する前に、第2のデータ選択指示が取得される場合には、第1の印刷データの生成処理と第2の印刷データの生成処理とが並列に実行される。この結果、第2の印刷指示の入力から印刷が行われるまでの時間が長くなることを抑制できる。
さらに、本実施例では、管理部CLは、並列に実行される印刷データの生成処理の個数の上限値Nmaxを設定する(図4のS1)。管理部CLは、生成処理のために使用可能なリソースに関する情報、具体的には、メモリ残量Mrに基づいて、上限値Nmaxを設定する。この結果、上限値Nmaxを適切に設定できるので、複数個の印刷処理を並列に実行することで、複数個の印刷処理に要する合計時間を短縮できるとともに、過度に多くの印刷処理を並列に実行することに起因する不具合(例えば、印刷処理の停止)が発生することを抑制できる。
ここで、3個の元画像データD1_org、D2_org、D3_orgの全体を対象画像データとし、対象画像データのうちの1個の元画像データD1_orgを第1部分データとし、残りの2個の元画像データD2_org、D3_orgを第2部分データとする。本実施例の印刷データの生成処理は、対象画像データに対応するレイアウト画像データD1_lay、D2_lay、D3_layを生成するレイアウト処理と、レイアウト画像データD1_lay、D2_lay、D3_layを用いて印刷データD1_bld、D2_bld、D3_bldを生成するビルド処理と、を含む。
図9のパラレル方式では、第1部分データに対応するレイアウト処理が実行され(図9の期間2)、その後に、第2部分データに対応するレイアウト処理が実行される(図9の期間3、4)。第1部分データに対応するビルド処理(図9の期間3)は、第2部分データに対応するレイアウト処理(図9の期間3、4)と並列に実行される。供給部PS5は、第2部分データに対応するビルド処理(図9の期間4、5)が完了する前に印刷指示が取得される場合に、第1部分データに対応する印刷データD1_bldを含む印刷ジョブD1_jobの供給(図9の期間5)を、第2部分データに対するビルド処理(図9の期間4、5)と並列に実行する。この結果、印刷データの生成が部分データごとに並列に実行されるとともに、印刷指示に応じて、部分データごとに印刷データの生成と印刷データの供給とが並列に実行される。この結果、印刷データの生成と供給とを効率的に実行できる。
図10のシーケンシャル方式では、第1部分データに対応するレイアウト処理とビルド処理と、第2部分データに対するレイアウト処理とビルド処理と、を含む印刷データの生成処理が順次に実行される(図10の期間1~12)。印刷データの生成処理が完了する前に印刷指示が取得される場合に、供給部PS5は、印刷データの生成処理の完了後に、印刷データを含む印刷ジョブD1_job、D2_job、D3_jobのプリンタ200への供給を実行する(図10の期間13~15)。この結果、印刷データの生成処理は部分データごとに順次に実行され、印刷データの生成が完了した後に、印刷データを含む印刷ジョブの供給が実行されるので、印刷データの生成と供給のための処理負荷が過度に大きくなることを抑制できる。
さらに、データ選択指示が取得された後、かつ、印刷指示が取得される前に、印刷条件変更指示が取得される場合には(図5のS25:YES)、印刷データD1_bld、D2_bld、D3_bldの生成が印刷条件変更指示に応じてやり直される(図6のS40~5~S65)。この結果、データ選択指示が取得された後、かつ、印刷指示が取得される前に、ユーザが印刷条件を変更することが許容され、ユーザが印刷条件を変更した場合であっても印刷条件に応じた適切な印刷データを生成することができる。
B.変形例
(1)図11は、変形例のシーケンシャル方式の第1の説明図である。図11の変形例では、図10の実施例のシーケンシャル方式と同様に、印刷データを生成する処理部PS1~PS4の各処理は、並列に実行されることが許容されない。図11の変形例では、図10の実施例のシーケンシャル方式とは異なり、供給部PS5の処理は、処理部PS1~PS4の処理と並列に実行されることが許容される。供給部PS5の供給処理は、印刷コマンドを付加して印刷ジョブを生成し、該印刷ジョブをプリンタ200に送信することであり、比較的複雑な画像処理を含み得る処理部PS1~PS4の処理と比較して処理負荷が低い。このために、供給部PS5の供給処理は、処理部PS1~PS4の処理と並列に実行されても、全体の処理負荷が過度に高くなる可能性は低い。
(1)図11は、変形例のシーケンシャル方式の第1の説明図である。図11の変形例では、図10の実施例のシーケンシャル方式と同様に、印刷データを生成する処理部PS1~PS4の各処理は、並列に実行されることが許容されない。図11の変形例では、図10の実施例のシーケンシャル方式とは異なり、供給部PS5の処理は、処理部PS1~PS4の処理と並列に実行されることが許容される。供給部PS5の供給処理は、印刷コマンドを付加して印刷ジョブを生成し、該印刷ジョブをプリンタ200に送信することであり、比較的複雑な画像処理を含み得る処理部PS1~PS4の処理と比較して処理負荷が低い。このために、供給部PS5の供給処理は、処理部PS1~PS4の処理と並列に実行されても、全体の処理負荷が過度に高くなる可能性は低い。
例えば、図11には、全ての印刷データD1_bld、D2_bld、D3_bldの生成が完了する前に、印刷指示が取得される場合が例示されている。この場合には、供給部PS5は、元画像データD1_orgに対応する印刷データD1_bldが生成された後に、印刷データD2_bldを生成するビルド処理と並列に、印刷データD1_bldを含む印刷ジョブD1_jobの供給処理を実行する(図11の期間11)。そして、元画像データD2_orgに対応する印刷データD2_bldが生成された後に、印刷データD3_bldを生成するビルド処理と並列に、印刷データD2_bldを含む印刷ジョブD2_jobの供給処理を実行する(図11の期間12)。
以上説明した本変形例によれば、印刷データの生成処理が完了する前に印刷指示が取得される場合に、印刷データの生成処理と並列に、生成済みの一部の印刷データがプリンタ200に供給されるので、実施例のシーケンシャル処理よりも速やかに印刷ジョブの供給を開始できる。この結果、プリンタ200は速やかに印刷を開始できる。
(2)図12は、変形例のシーケンシャル方式の第2の説明図である。図12の変形例では、図11の変形例と同様に、印刷データを生成する処理部PS1~PS4の各処理は、並列に実行されることが許容されないが、供給部PS5の処理は、処理部PS1~PS4の処理と並列に実行されることが許容される。
図12の変形例では、図11の変形例および図10の実施例のシーケンシャル方式とは、処理部PS1~PS4の処理順序が異なる。図12の変形例では、元画像データD1_orgに対応する処理部PS1~PS4の処理が実行された後に、元画像データD2_orgに対応する処理部PS1~PS4の処理が実行される。そして、元画像データD2_orgに対応する処理部PS1~PS4の処理が実行された後に、元画像データD3_orgに対応する処理部PS1~PS4の処理が実行される。
すなわち、図12に示すように、変換済画像データD1_convを生成するラスタライズ処理(図12の期間1)と、レイアウト画像データD1_layを生成するレイアウト処理(図12の期間2)と、プレビュー用画像データD1_preを生成するプレビュー処理(図12の期間3)と、印刷データD1_bldを生成するビルド処理(図12の期間4)と、が実行される。次に、変換済画像データD2_convを生成するラスタライズ処理(図12の期間5)と、レイアウト画像データD2_layを生成するレイアウト処理(図12の期間6)と、プレビュー用画像データD2_preを生成するプレビュー処理(図12の期間7)と、印刷データD2_bldを生成するビルド処理(図12の期間8)と、が実行される。最後に、変換済画像データD3_convを生成するラスタライズ処理(図12の期間9)と、レイアウト画像データD3_layを生成するレイアウト処理(図12の期間10)と、プレビュー用画像データD3_preを生成するプレビュー処理(図12の期間11)と、印刷データD3_bldを生成するビルド処理(図12の期間12)と、が実行される。
図12には、元画像データD1_org、D2_orgに対応する処理部PS1~PS4の処理が完了した後、かつ、元画像データD3_orgに対応する処理部PS1~PS4の処理が完了する前に、印刷指示が取得される場合が例示されている。この場合には、供給部PS5は、元画像データD3_orgに対応する処理部PS1~PS4の処理と並列に、印刷データD1_bld、D2_bldを含む印刷ジョブD1_job、D2_jobの供給処理を実行する。図12の例では、印刷ジョブD1_jobの供給処理は、レイアウト画像データD3_layを生成するレイアウト処理と並列に実行され(図12の期間10)、印刷ジョブD2_jobの供給処理は、プレビュー用画像データD3_preを生成するプレビュー処理と並列に実行される(図12の期間11)。そして、元画像データD3_orgに対応する印刷データD3_bldの生成が完了すると、供給部PS5は、印刷データD3_bldを含む印刷ジョブD3_jobの供給処理を実行する(図12の期間13)。
図12の変形例によれば、実施例および図11の変形例のシーケンシャル方式と比較して、印刷データD1_bldの生成が早く完了するので、印刷指示に応じて印刷データD1_bldを含む印刷ジョブD1_jobを速やかにプリンタ200に供給できる。この結果、プリンタ200は、印刷ジョブD1_jobに基づく印刷を速やかに開始できる。端末装置300は、プリンタ200が印刷ジョブD1_jobに基づく印刷を実行している間に、残りの印刷データD1_bldの生成処理を進めることができる。この結果、全体として、印刷指示が取得されてからプリンタ200による印刷が完了するまでに要する時間を短縮できる。
(3)図13は、変形例のシーケンシャル方式の第3の説明図である。図13の変形例では、図10の実施例のシーケンシャル方式と同様に、印刷データを生成する処理部PS1~PS4の各処理は並列に実行されることが許容されず、供給部PS5の処理も処理部PS1~PS4の処理と並列に実行されることが許容されない。図13の変形例では、図12の変形例のシーケンシャル方式と同様に、元画像データD1_orgに対応する処理部PS1~PS4の処理が実行された後に、元画像データD2_orgに対応する処理部PS1~PS4の処理が実行される。そして、元画像データD2_orgに対応する処理部PS1~PS4の処理が実行された後に、元画像データD3_orgに対応する処理部PS1~PS4の処理が実行される。
図13には、元画像データD1_org、D2_orgに対応する処理部PS1~PS4の処理が完了した後、かつ、元画像データD3_orgに対応する処理部PS1~PS4の処理が完了する前に、印刷指示が取得される場合が例示されている。この場合には、図12の変形例のシーケンシャル方式とは異なり、処理部PS1~PS4は、元画像データD3_orgに対応する処理を中断する(図13)。そして、供給部PS5は、この時点で生成済みの印刷データD1_bld、D2_bldを含む印刷ジョブD1_job、D2_jobの供給処理が実行する(図13の期間10、11)。印刷ジョブD1_job、D2_jobの供給処理が終了すると、処理部PS1~PS4は、元画像データD3_orgに対応する処理を再開する(図13)。元画像データD3_orgに対応する印刷データD3_bldの生成が完了すると、供給部PS5は、印刷データD3_bldを含む印刷ジョブD3_jobの供給処理を実行する(図13の期間15)。
このように、図13の変形例によれば、印刷データの生成処理が完了する前に印刷指示が取得される場合に、印刷データの生成処理が中断され、印刷データの生成処理の中断後に、生成済みの一部の印刷データをプリンタ200に供給され、該一部の印刷データの供給の完了後に、印刷データの生成処理が再開される。この結果、印刷データの生成と供給のための処理負荷が過度に大きくなることを抑制できるとともに、印刷データD1_bldを含む印刷ジョブD1_jobを速やかにプリンタ200に供給できる。この結果、図12の変形例と同様に、プリンタ200は、印刷ジョブD1_jobに基づく印刷を速やかに開始できる。
(4)上記実施例の印刷処理では、シーケンシャル方式とパラレル方式とを使い分けているがこれに限られない。常にシーケンシャル方式が採用されても良いし、常にパラレル方式が採用されても良い。
(5)上記実施例の印刷処理において、印刷データの生成を実行する処理部PS1~PS5の構成は一例であり、適宜に変更されて良い。例えば、プレビュー部PS3およびプレビュー処理は省略されても良い。この場合には、例えば、プレビュー画像PIの表示は、省略されても良いし、レイアウト部PS2によって生成されるレイアウト画像データを用いてプレビュー画像PIの表示が行われても良い。
ラスタライズ処理とレイアウト処理とは1個の処理部によって実行されても良い。供給部PS5が実行する供給処理のうち、印刷データに印刷コマンドを付加して印刷ジョブを生成する処理は、ビルド部PS4によって実行されても良い。
ビルド部PS4によって生成される印刷データは、所定のページ記述言語で記述された画像データである。これに限らず、ビルド部PS4は、レイアウト画像データに対して、色変換処理やハーフトーン処理を実行して、画素ごと、かつ、印刷に用いられる色材(例えば、CMYKのインク)ごとに、ドットの形成状態を示すドットデータを印刷データとして生成しても良い。ドットの形成状態は、例えば、「ドット無し」と「ドット有り」の2種類の状態であっても良いし、「ドット無し」「小」「中」「大」の4種類の状態であっても良い。
上記実施例では、対象画像データは、複数個の元画像データD1_org、D2_org、D3_orgを含み、処理部PS1~PS4の処理は、元画像データごとに実行されている。これに代えて、例えば、処理部PS1~PS5の処理は、1個の元画像データに含まれる一部のデータごとに実行されても良い。例えば、インクジェット方式のプリンタは、印刷ヘッドの主走査を行いつつ、ドットを形成する部分印刷(パスとも呼ばれる)を複数回に亘って繰り返すことで印刷を行うが、1回の部分印刷分のデータごとに、処理部PS1~PS5の処理が実行されても良い。
(6)上記実施例では、管理部CLは、メモリ残量Mrに基づいて、並列に処理可能な印刷処理の上限値Nmaxを決定している(図4のS1)。メモリ残量Mrに代えて、あるいは、メモリ残量Mrとともに、生成処理のために使用可能なリソースに関する別の情報に基づいて、上限値Nmaxが決定されても良い。例えば、メモリ残量Mrとは別のリソースに関する情報は、CPU310の負荷に関する情報、例えば、印刷アプリケーションと並列に起動されているアプリケーションの個数やCPU310の使用率であっても良い。また、使用可能なリソースに関する情報に代えて、あるいは、使用可能なリソースに関する情報とともに、印刷データの生成処理の負荷に関する情報に基づいて、上限値Nmaxが決定されても良い。印刷データの生成処理の負荷に関する情報は、例えば、プリンタ200にて使用可能な用紙の最大サイズやプリンタ200が印刷可能な最大の印刷解像度を示す情報であっても良い。
(7)並列に処理可能な印刷処理の上限値Nmaxは、常に同じ固定値(例えば、1、2、3)であっても良い。また、並列に処理可能な印刷処理の上限値Nmaxは、印刷データの生成処理の実行中においても、CPU310の使用率や他のアプリケーションによるメモリの使用状況に応じて動的に変更されても良い。例えば、印刷アプリケーションが、OSから使用可能なメモリ残量Mrが基準値以下であることの警告を取得した場合には、直ちに、上限値Nmaxを1にしても良い。
(8)上記各実施例では、図3~図7の印刷処理を実行する装置は、端末装置300のCPU310である。これに代えて、図3~図7の処理を実行する装置は、プリンタ200のCPU210であっても良い。この場合には、プリンタ200のCPU210は、印刷実行部としての印刷機構250に印刷ジョブを供給することで印刷機構250に印刷を実行させる。あるいは、図3~図7の処理を実行する装置は、例えば、端末装置300から画像データを取得して該画像データを用いて印刷ジョブを生成するサーバであっても良い。このようなサーバは、ネットワークを介して互いに通信可能な複数個の計算機であっても良い。また、端末装置300は、図3~図7の処理のうちの一部の処理、例えば、特定種類の画像データに対するラスタライズ処理をサーバに実行させても良い。
(9)上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、処理部PS1~PS4の処理のうちの一部の処理は、例えば、CPU310の指示に従って動作する専用のハードウェア回路(例えば、ASIC)によって実現されてもよい。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
1000…印刷システム,200…プリンタ,210…CPU,220…不揮発性記憶装置,230…揮発性記憶装置,231…バッファ領域,250…印刷機構,260…操作部,270…表示部,280…通信部,300…端末装置,310…CPU,320…不揮発性記憶装置,330…揮発性記憶装置,331…バッファ領域,360…操作部,370…表示部,380…通信部,AP…アプリケーションプログラム,CL…管理部,CP…画像処理制御部,IL1~IL5…受渡リスト,IP1,IP2…画像処理部,OL1~OL5…管理リスト,OP…OSプログラム,PA…印刷アプリケーション,PG…コンピュータプログラム,PS1…ラスタライズ部,PS2…レイアウト部,PS3…プレビュー部,PS4…ビルド部,PS5…供給部,UP…UI処理部,WI1…メイン画面,WI2…画像選択画面,WI3…印刷設定画面
Claims (9)
- コンピュータプログラムであって、
ユーザによって入力されるデータ選択指示を取得し、前記データ選択指示と対応する印刷指示であって前記データ選択指示の入力後にユーザによって入力される前記印刷指示を取得する指示取得機能と、
前記データ選択指示に基づいて選択された対象画像データを用いて印刷データを生成する生成機能と、
前記印刷データを印刷実行部に供給する供給機能と、
をコンピュータに実現させ、
前記生成機能は、前記データ選択指示が取得された後、かつ、前記印刷指示が取得される前に、前記印刷データの生成を開始し、
前記供給機能は、
前記印刷指示が取得される前に、前記印刷データの生成が完了した場合であっても、前記印刷データの供給を開始せず、
前記印刷指示が取得された後に、前記印刷データの供給を開始する、コンピュータプログラム。 - 請求項1に記載のコンピュータプログラムであって、
前記生成機能は、さらに、前記データ選択指示に基づいて選択された前記対象画像データを用いてプレピュー用の画像データを生成し、
前記コンピュータプログラムは、さらに、
前記データ選択指示が取得された後、かつ、前記印刷指示が取得される前に、前記プレビュー用の画像データを用いて、プレビュー用の画像を表示部に表示する表示機能をコンピュータに実現させ、
前記生成機能は、前記プレビュー用の画像データの生成を、前記印刷データの生成よりも優先して実行する、コンピュータプログラム。 - 請求項1または2に記載のコンピュータプログラムであって、
前記データ選択指示は、第1のデータ選択指示と、第2のデータ選択指示と、を含み、
前記印刷指示は、前記第1のデータ選択指示と対応する第1の印刷指示と、前記第2のデータ選択指示と対応する第2の印刷指示と、を含み、
前記印刷データは、前記第1のデータ選択指示に基づいて選択された第1の対象画像データを用いて生成される第1の印刷データと、前記第2のデータ選択指示に基づいて選択された第2の対象画像データを用いて生成される第2の印刷データと、を含み、
前記生成機能は、
前記第1のデータ選択指示が取得された後、かつ、前記第1の印刷指示が取得される前に、前記第1の印刷データの生成を開始し、
前記第2のデータ選択指示が取得された後、かつ、前記第2の印刷指示が取得される前に、前記第2の印刷データの生成を開始し、
前記第1の印刷データの生成が完了する前に、前記第2のデータ選択指示が取得される場合には、前記第1の印刷データの生成処理と前記第2の印刷データの生成処理とを並列に実行する、コンピュータプログラム。 - 請求項3に記載のコンピュータプログラムであって、さらに、
並列に実行される前記印刷データの生成処理の個数の上限値を設定する設定機能をコンピュータに実現させ、
前記設定機能は、前記生成処理のために使用可能なリソースに関する情報と、前記生成処理の負荷に関する情報と、のうちの少なくとも1つに基づいて、前記上限値を設定する、コンピュータプログラム。 - 請求項1~4のいずれかに記載のコンピュータプログラムであって、
前記印刷データの生成処理は、前記対象画像データに対応する第1のデータ形式の中間画像データを生成する第1処理と、前記中間画像データを用いて第2のデータ形式の前記印刷データを生成する第2処理であって前記第2のデータ形式は前記印刷実行部が解釈可能なデータ形式である前記第2処理と、を含み、
前記生成機能は、
前記対象画像データのうちの第1部分データに対応する前記第1処理を実行し、
前記第1部分データに対応する前記第1処理の後に、前記対象画像データのうちの第2部分データに対応する前記第1処理と、前記第1部分データに対応する前記第2処理と、を並列に実行し、
前記第2部分データに対応する前記第2処理を実行し、
前記供給機能は、前記第2部分データに対応する前記第2処理が完了する前に前記印刷指示が取得される場合に、前記第1部分データに対応する前記印刷データの前記印刷実行部への供給を、前記第2部分データに対応する前記第2処理と並列に実行する、コンピュータプログラム。 - 請求項1~4のいずれかに記載のコンピュータプログラムであって、
前記印刷データの生成処理は、前記対象画像データに対応する第1のデータ形式の中間画像データを生成する第1処理と、前記中間画像データを用いて第2のデータ形式の前記印刷データを生成する第2処理であって前記第2のデータ形式は前記印刷実行部が解釈可能なデータ形式である前記第2処理と、を含み、
前記生成機能は、
前記対象画像データのうちの第1部分データに対応する前記第1処理と前記第2処理と、前記対象画像データのうちの第2部分データに対応する前記第1処理と前記第2処理と、を含む前記印刷データの生成処理を順次に実行し、
前記印刷データの生成処理が完了する前に前記印刷指示が取得される場合に、前記供給機能は、前記印刷データの生成処理の完了後に、前記印刷データの前記印刷実行部への供給を実行する、コンピュータプログラム。 - 請求項1~4のいずれかに記載のコンピュータプログラムであって、
前記印刷データの生成処理は、前記対象画像データに対応する第1のデータ形式の中間画像データを生成する第1処理と、前記中間画像データを用いて第2のデータ形式の前記印刷データを生成する第2処理であって前記第2のデータ形式は前記印刷実行部が解釈可能なデータ形式である前記第2処理と、を含み、
前記生成機能は、
前記対象画像データのうちの第1部分データに対応する前記第1処理と前記第2処理と、前記対象画像データのうちの第2部分データに対応する前記第1処理と前記第2処理と、を含む前記印刷データの生成処理を順次に実行し、
前記印刷データの生成処理が完了する前に前記印刷指示が取得される場合に、
前記生成機能は、前記印刷データの生成処理を中断し、
前記供給機能は、前記印刷データの生成処理の中断後に、生成済みの一部の前記印刷データを前記印刷実行部に供給し、
前記生成機能は、前記一部の印刷データの前記印刷実行部への供給の完了後に、前記印刷データの生成処理を再開する、コンピュータプログラム。 - 請求項1~4のいずれかに記載のコンピュータプログラムであって、
前記印刷データの生成処理は、前記対象画像データに対応する第1のデータ形式の中間画像データを生成する第1処理と、前記中間画像データを用いて第2のデータ形式の前記印刷データを生成する第2処理であって前記第2のデータ形式は前記印刷実行部が解釈可能なデータ形式である前記第2処理と、を含み、
前記生成機能は、
前記対象画像データのうちの第1部分データに対応する前記第1処理と前記第2処理と、前記対象画像データのうちの第2部分データに対応する前記第1処理と前記第2処理と、を含む前記印刷データの生成処理を順次に実行し、
前記印刷データの生成処理が完了する前に前記印刷指示が取得される場合に、前記供給機能は、前記印刷データの生成処理と並列に、生成済みの一部の前記印刷データを前記印刷実行部に供給する、コンピュータプログラム。 - 画像処理装置であって、
ユーザによって入力されるデータ選択指示を取得し、前記データ選択指示と対応する印刷指示であって前記データ選択指示の入力後にユーザによって入力される前記印刷指示を取得する指示取得部と、
前記データ選択指示に基づいて選択された対象画像データを用いて印刷データを生成する生成部と、
前記印刷データを印刷実行部に供給する供給部と、
を備え、
前記生成部は、前記データ選択指示が取得された後、かつ、前記印刷指示が取得される前に、前記印刷データの生成を開始し、
前記供給部は、
前記印刷指示が取得される前に、前記印刷データの生成が完了した場合であっても、前記印刷データの供給を開始せず、
前記印刷指示が取得された後に、前記印刷データの供給を開始する、画像処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021034855A JP2022135207A (ja) | 2021-03-04 | 2021-03-04 | コンピュータプログラム、および、画像処理装置 |
US17/651,244 US11720768B2 (en) | 2021-03-04 | 2022-02-16 | Computer-readable medium, image processing device, and method for reducing time taken from input of print instruction until start of printing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021034855A JP2022135207A (ja) | 2021-03-04 | 2021-03-04 | コンピュータプログラム、および、画像処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022135207A true JP2022135207A (ja) | 2022-09-15 |
Family
ID=83117260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021034855A Pending JP2022135207A (ja) | 2021-03-04 | 2021-03-04 | コンピュータプログラム、および、画像処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11720768B2 (ja) |
JP (1) | JP2022135207A (ja) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7382405B2 (en) * | 2001-12-03 | 2008-06-03 | Nikon Corporation | Electronic apparatus having a user identification function and user identification method |
JP2008213406A (ja) | 2007-03-07 | 2008-09-18 | Seiko Epson Corp | 印刷処理装置、印刷処理方法及びそのプログラム |
JP5202587B2 (ja) * | 2010-08-03 | 2013-06-05 | シャープ株式会社 | データ処理装置、画像表示方法、コンピュータプログラム、及び記録媒体 |
-
2021
- 2021-03-04 JP JP2021034855A patent/JP2022135207A/ja active Pending
-
2022
- 2022-02-16 US US17/651,244 patent/US11720768B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11720768B2 (en) | 2023-08-08 |
US20220284248A1 (en) | 2022-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6459236B2 (ja) | 画像形成装置 | |
JP2013140554A (ja) | 印刷制御システム、印刷制御方法、プログラムおよびコンピュータ | |
US20130070271A1 (en) | Print control device and non-transitory computer readable medium | |
US20230043962A1 (en) | Non-transitory computer-readable recording medium storing computer-executable instructions for information processing device, and method of controlling information processing device | |
EP2639644A2 (en) | Image forming apparatus capable of issuing instruction to skip error and control method therefor | |
JP2022135207A (ja) | コンピュータプログラム、および、画像処理装置 | |
JP2022135208A (ja) | コンピュータプログラム、および、画像処理装置 | |
US11556294B1 (en) | Methods and printing system for peer-to-peer output management | |
JP2022135209A (ja) | コンピュータプログラム、および、画像処理装置 | |
JP3821147B2 (ja) | 画像形成装置及び画像形成システム | |
US9418324B2 (en) | Control device for controlling printing based on a first and second period | |
US9213505B2 (en) | Information processing apparatus, information processing method, and computer program product | |
JP6185745B2 (ja) | 印刷制御装置、印刷制御方法、およびプログラム | |
JP2008293313A (ja) | 印刷制御装置および画像形成システム | |
JP5358519B2 (ja) | 画像形成システム | |
US9851934B2 (en) | Printing apparatus for managing execution order of newly generated print job and plurality of print jobs, control method therefor, and storage medium | |
US10860270B2 (en) | Apparatus including printing function, its control method, and storage medium | |
JP2015225535A (ja) | 情報処理装置、及びこれを用いる認証プリントシステム | |
US11954390B2 (en) | Printing system for peer-to-peer output management | |
US11954391B2 (en) | Methods and printing system for peer-to-peer output management | |
US11983585B1 (en) | Methods and printing system using raster image processors configured for processing a job | |
JP2003271334A (ja) | 印刷装置、印刷制御方法、印刷制御プログラムを記録した媒体および印刷制御プログラム | |
JP2014221542A (ja) | 画像処理装置、画像処理方法及びプログラム。 | |
US20120224192A1 (en) | Printing apparatus, printing control method, and storage medium | |
JP2010284810A (ja) | 印刷装置、プリンタードライバー、および印刷システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240213 |