JP5966805B2 - Control device for printing - Google Patents
Control device for printing Download PDFInfo
- Publication number
- JP5966805B2 JP5966805B2 JP2012207957A JP2012207957A JP5966805B2 JP 5966805 B2 JP5966805 B2 JP 5966805B2 JP 2012207957 A JP2012207957 A JP 2012207957A JP 2012207957 A JP2012207957 A JP 2012207957A JP 5966805 B2 JP5966805 B2 JP 5966805B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- processor
- intermediate code
- page
- cpu
- 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
Links
Images
Description
本明細書によって開示される技術は、印刷のための制御装置に関する。特に、複数個のプロセッサを備える制御装置に関する。 The technology disclosed in this specification relates to a control device for printing. In particular, the present invention relates to a control device including a plurality of processors.
特許文献1には、印刷装置が開示されている。印刷装置は、第1のCPUと第2のCPUとを備える。第1のCPUと第2のCPUとのそれぞれは、印刷データを中間段階のデータに変換する処理と、中間段階のデータをビットマップデータに変換する処理と、の両方を実行可能である。
本明細書では、複数個のプロセッサによってビットマップデータが生成される際に利用されるメモリの容量を低減するための技術を提供する。 The present specification provides a technique for reducing the capacity of a memory used when bitmap data is generated by a plurality of processors.
本明細書によって開示される技術は、印刷のための制御装置である。制御装置は、第1のプロセッサと第2のプロセッサとを備える。第1のプロセッサと第2のプロセッサとのそれぞれは、複数ページ分のPDLデータのうちの1ページ分のPDLデータを利用して、1ページ分の中間コードデータを生成する中間コード生成処理と、生成済みの中間コードデータを利用して、ビットマップデータを生成するビットマップ生成処理と、を、複数ページ分のPDLデータを用いて、複数ページ分のビットマップデータが生成されるまで実行する。第1のプロセッサと第2のプロセッサとのそれぞれは、当該プロセッサと異なる他のプロセッサがビットマップ生成処理を実行している第1の場合に、複数ページ分のPDLデータのうち、中間コード生成処理により中間コードデータの生成が未だ完了していない1ページ分のPDLデータを利用して、中間コード生成処理を実行する。第1のプロセッサと第2のプロセッサとのそれぞれは、他のプロセッサがビットマップ生成処理を実行していない第2の場合に、生成済みの中間コードデータのうち、ビットマップ生成処理によるビットマップデータの生成が未だ完了していない中間コードデータを利用して、ビットマップ生成処理を実行する。 The technology disclosed by this specification is a control device for printing. The control device includes a first processor and a second processor. Each of the first processor and the second processor uses one page of PDL data among a plurality of pages of PDL data to generate intermediate code data for one page; A bitmap generation process for generating bitmap data using the generated intermediate code data is executed using a plurality of pages of PDL data until bitmap data for a plurality of pages is generated. Each of the first processor and the second processor performs intermediate code generation processing among PDL data for a plurality of pages in the first case where another processor different from the processor executes the bitmap generation processing. Thus, intermediate code generation processing is executed using PDL data for one page for which generation of intermediate code data has not yet been completed. Each of the first processor and the second processor, in the second case where the other processor is not executing the bitmap generation processing, among the generated intermediate code data, bitmap data by the bitmap generation processing Bitmap generation processing is executed using intermediate code data that has not yet been generated.
プロセッサがビットマップ生成処理を実行している間に利用されるメモリの容量は、プロセッサが中間コード生成処理を実行している間に利用されるメモリの容量よりも多い可能性が高い。上記の制御装置では、一方のプロセッサがビットマップ処理を実行している場合、他方のプロセッサは、中間コード生成処理を実行する。このため、第1のプロセッサと第2のプロセッサとが、同時にビットマップ処理を実行する状況を回避することができる。この構成によれば、第1のプロセッサと第2のプロセッサによって、PDLデータからビットマップデータが生成される際に利用されるメモリ容量を低減し得る。 There is a high possibility that the amount of memory used while the processor executes the bitmap generation processing is larger than the amount of memory used while the processor executes the intermediate code generation processing. In the above control device, when one processor is executing the bitmap processing, the other processor executes the intermediate code generation processing. For this reason, it is possible to avoid a situation in which the first processor and the second processor execute bitmap processing at the same time. According to this configuration, the memory capacity used when the first processor and the second processor generate bitmap data from PDL data can be reduced.
なお、上記の制御装置のための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記録媒体も、新規で有用である。 Note that a control method, a computer program, and a computer-readable recording medium storing the computer program for the control device are also novel and useful.
(第1実施例)
(システムの構成)
図1に示されるように、通信システム2は、PC(プリンタ10の周辺装置)6と、プリンタ10と、を備える。PC6及びプリンタ10は、LAN4を介して、相互に通信可能である。
(First embodiment)
(System configuration)
As shown in FIG. 1, the communication system 2 includes a PC (peripheral device of the printer 10) 6 and a
(プリンタ10の構成)
プリンタ10は、操作部12と、表示部14と、印刷実行部16と、ネットワークインターフェイス18と、制御部20と、を備える。上記の各部12〜20は、バス線(符号省略)に接続されている。操作部12は、複数のキーによって構成される。ユーザは、操作部12を操作することによって、様々な指示をプリンタ10に与えることができる。表示部14は、様々な情報を表示するためのディスプレイである。印刷実行部16は、インクジェット方式、レーザ方式等の印刷機構を備え、制御装置20からの指示に従って印刷を実行する。ネットワークインターフェイス18は、LAN4に接続されている。
(Configuration of Printer 10)
The
制御部20は、IC(Integrated Circuitの略)22と、メモリ30と、を備える。IC22は、2個のCPU24,26と、キャッシュメモリ28と、を備える。各CPU24,26は、メモリ30に格納されているプログラム48に従って、様々な処理を実行する。各CPU24,26は、並列的(同時的)に処理を実行可能である。
The
キャッシュメモリ28は、各CPU24,26が処理を実行する際に利用されるデータを、一時的に格納するためのメモリである。キャッシュメモリ28のメモリ容量(例えば32kByte)は、メモリ30のメモリ容量(例えば20MByte)と比較して、ごく小さい。一方で、各CPU24,26が、単位時間当りにキャッシュメモリ28に書き込み可能なデータサイズは、各CPU24,26が、単位時間当りにメモリ30に書き込み可能なデータサイズと比較して、極めて大きい。各CPU24,26が、単位時間当りに読み出し可能なデータサイズについても、同様である。即ち、各CPU24,26がキャッシュメモリ28のみを利用して処理を実行する場合、キャッシュメモリ28とメモリ30とを利用して処理を実行する場合と比較して、各CPU24,26の処理速度は高い。2個のCPU24,26が並列的に処理を実行する場合、2個のCPU24,26は、1個のキャッシュメモリ28を共同で利用する。
The
メモリ30は、ROM、RAM、ハードディスク等によって構成される。メモリ30は、プログラム記憶領域46と、共用メモリ領域50と、各種データの格納領域70〜74と、を備える。プログラム記憶領域46は、CPU24,26によって実行されるプログラム48を格納している。
The
共用メモリ領域50は、CPU24,26によって共用されるメモリ領域である。共用メモリ領域50は、共通処理ページカウンタ60(以下では「CPC(Common Process page Counterの略)60」と呼ぶ)と、共通設定データカウンタ62(以下では「CSC(Common Setting data Counterの略)62」と呼ぶ)と、設定コマンド処理フラグ64(以下では「SPF(Setting command Process Flagの略)64」と呼ぶ)と、ビットマップ生成処理フラグ66(以下では「BPF(Bitmap generating Process Flagの略)66」と呼ぶ)と、設定データ52と、中間コードデータテーブル54と、を格納している。
The shared
CPC60は、図3のPDL(Page Description Languageの略;ページ記述言語)処理の処理対象のページを示すカウンタである。CSC62は、どのページまでの設定データ(詳しくは後述する)が生成済みであるのかを示すカウンタである。SPF64は、いずれかのCPU24等が図4の設定コマンド処理を実行しているのか否かを示すフラグである。BPF66は、いずれかのCPU24等が図6のBMP(Bit Mapの略)処理を実行しているのか否かを示すフラグである。設定データ52は、CPU24等が後述の設定コマンドを実行することによって生成されるデータである。中間コードデータテーブル54は、中間コードデータを識別するためのデータ名を登録するためのテーブルである。
The
PDLデータ格納領域70には、PC6等から受信されるPDLデータを格納するための記憶領域である。中間コードデータ格納領域72は、中間コードデータを格納するための記憶領域である。中間コードデータは、CPU24等が図5の両方コマンド処理を実行することによって生成されるデータである。BMPデータ格納領域74は、ビットマップデータを格納するための記憶領域である。ビットマップデータは、CPU24等が図6のBMP処理を実行することによって生成されるデータである。
The PDL
(PDLデータの構造)
PDLは、ページという概念を利用してデータを記述するためのあらゆる言語を含む概念である。PDLの例として、例えば、PDF(Portable Document Format)、PS(Post Script)等を挙げることができる。また、ワープロソフト、表計算ソフト、描画ソフト等で利用されている言語のうち、ページという概念を利用してデータを記述する言語も、PDLの一例である。
(PDL data structure)
PDL is a concept that includes all languages for describing data using the concept of pages. Examples of PDL include PDF (Portable Document Format) and PS (Post Script). Of the languages used in word processing software, spreadsheet software, drawing software, etc., a language for describing data using the concept of pages is also an example of PDL.
ユーザは、PC6に格納されているアプリケーションを利用して、PDLデータを生成することができる。そして、ユーザは、PDLデータによって表わされる画像の印刷を望む場合に、PDLデータをプリンタ10に送信するための操作をPC6の操作部に加えることができる。この場合、PC6は、PDLデータをプリンタ10に送信する。
The user can generate PDL data by using an application stored in the
図2には、複数ページ分のPDLデータの一例が示されている。1ページ目のPDLデータは、アルファベット「A」〜「E」を示す5行分のテキストデータを含む。1ページ目のPDLデータに含まれる1行目のテキストデータは、テキスト「A」を示す描画コマンドと、文字サイズ「10pt」を示す設定コマンドと、を含む。従って、プリンタ10は、1行目のテキストデータを読み込むことによって、文字サイズ「10pt」でテキスト「A」を記述すべきことを知ることができる。
FIG. 2 shows an example of PDL data for a plurality of pages. The PDL data for the first page includes five lines of text data indicating alphabets “A” to “E”. The text data of the first line included in the PDL data of the first page includes a drawing command indicating the text “A” and a setting command indicating the character size “10 pt”. Accordingly, the
1ページ目のPDLデータに含まれる2行目のテキストデータは、テキスト「B」を示す描画コマンドを含む。ただし、2行目のテキストデータは、文字サイズを示す設定コマンドを含まない。この場合、プリンタ10は、直前の行(本例では1行目)と同じ文字サイズ「10pt」でテキスト「B」を記述すべきことを知ることができる。同様に、1ページ目のPDLデータに含まれる3行目のテキストデータは、テキスト「C」を示す描画コマンドを含むが、文字サイズを示す設定コマンドを含まない。この場合、プリンタ10は、文字サイズ「10pt」でテキスト「C」を記述すべきことを知ることができる。このように、同じ文字サイズが2行以上に亘って継続して利用される場合には、後ろの行には、文字サイズを示す設定コマンドが記述されないことがあり得る。
The text data of the second line included in the PDL data of the first page includes a drawing command indicating the text “B”. However, the text data on the second line does not include a setting command indicating the character size. In this case, the
同様に、プリンタ10は、1ページ目のPDLデータに含まれる4行目及び5行目のテキストデータを読み込むことによって、文字サイズ「20pt」でテキスト「D」、「E」を記述すべきことを知ることができる。
Similarly, the
2ページ目のPDLデータは、アルファベット「F」〜「G」を示す3行分のテキストデータを含む。2ページ目のPDLデータに含まれる1行目のテキストデータは、テキスト「F」を示す描画コマンドを含むが、文字サイズを示す設定コマンドを含まない。この場合、プリンタ10は、直前のページ(即ち1ページ目)のPDLデータの最後の行(即ち「E」)と同じ文字サイズ「20Pt」でテキスト「F」を記述すべきことを知ることができる。このように、同じ文字サイズが2ページ以上に亘って継続して利用される場合には、後ろのページには、文字サイズを示す設定コマンドが記述されないことがあり得る。
The PDL data on the second page includes three lines of text data indicating alphabets “F” to “G”. The text data of the first line included in the PDL data of the second page includes a drawing command indicating the text “F”, but does not include a setting command indicating the character size. In this case, the
同様に、プリンタ10は、2ページ目のPDLデータに含まれる2行目及び3行目のテキストデータを読み込むことによって、文字サイズ「20pt」でテキスト「G」を記述すべきこと、及び、文字サイズ「30pt」でテキスト「H」を記述すべきこと、を知ることができる。
Similarly, the
なお、描画コマンドは、テキスト形式のデータに限られず、ベクトル形式のデータであってもよいし、画像形式のデータ(即ち、JPEG等のビットマップデータ)であってもよい。また、設定コマンドは、文字サイズに限られず、文字の書体(即ち、Times New Roman等)であってもよいし、文字の装飾(即ち、太字、網掛け等)であってもよいし、文字の色であってもよいし、ページのサイズ(即ち、A4、B4等の印刷媒体のサイズ)であってもよい。 The drawing command is not limited to text format data, and may be vector format data or image format data (that is, bitmap data such as JPEG). The setting command is not limited to the character size, and may be a character font (ie, Times New Roman, etc.), a character decoration (ie, bold, shaded, etc.) Or the size of a page (that is, the size of a print medium such as A4 or B4).
また、後で詳しく説明するが、例えば、CPU24は、1ページ目のPDLデータを利用して、1ページ目の中間コードデータを生成し、次いで、1ページ目の中間コードデータを利用して、1ページ目のビットマップデータを生成する。そして、CPU24は、1ページ目のビットマップデータを印刷実行部16に供給する。これにより、印刷実行部16は、1ページ目のビットマップデータに基づいて、印刷を実行する。同様に、例えば、CPU26は、4ページ目のPDLデータを利用して、4ページ目の中間コードデータを生成し、次いで、4ページ目の中間コードデータを利用して、4ページ目のビットマップデータを生成する。そして、CPU26は、4ページ目のビットマップデータを印刷実行部16に供給する。
As will be described in detail later, for example, the
上述したように、本実施例では、プリンタ10は、PDLデータから、中間コードデータを経て、ビットマップデータを生成する。中間コードデータは、プリンタ10のベンダによって予め決められている中間言語で記述されたデータである。中間言語は、例えば、プリンタ10のベンダによって独自に開発された言語であってもよいし、公知の言語であってもよい。
As described above, in this embodiment, the
中間コードデータを利用せずに、PDLデータからビットマップデータを直接的に生成する手法(以下では「直接的な手法」と呼ぶ)が考えられる。直接的な手法では、複数種類のPDLデータ(例えば、PS(Post Script)、PDF(Portable Document Format等)に従った印刷を実現するためには、複数種類のPDLデータのそれぞれについて、当該種類のPDLデータからビットマップデータを直接的に生成するためのプログラムが必要である。この場合、多くのプログラムを格納可能な大容量のメモリをプリンタに搭載しなければならない。 A method of generating bitmap data directly from PDL data without using intermediate code data (hereinafter referred to as “direct method”) is conceivable. In the direct method, in order to realize printing according to a plurality of types of PDL data (for example, PS (Post Script), PDF (Portable Document Format, etc.)), for each of a plurality of types of PDL data, A program for directly generating bitmap data from PDL data is required, and in this case, a large-capacity memory capable of storing many programs must be installed in the printer.
一方において、中間コードデータを利用する本実施例の構成では、複数種類のPDLデータのそれぞれについて、当該種類のPDLデータから、共通の中間言語で記述された中間コードデータを生成するためのプログラムが必要である。そして、中間コードデータからビットマップデータを生成するためのプログラムが必要である。この構成によると、複数種類のPDLデータについて、中間コードデータからビットマップデータを生成するためのプログラムを共通化することができる。従って、複数種類のPDLデータからビットマップデータを生成するためのトータルのプログラム量は、直接的な手法と比べて、少なくて済む。 On the other hand, in the configuration of the present embodiment using intermediate code data, for each of a plurality of types of PDL data, there is a program for generating intermediate code data described in a common intermediate language from the types of PDL data. is necessary. A program for generating bitmap data from the intermediate code data is required. According to this configuration, it is possible to share a program for generating bitmap data from intermediate code data for a plurality of types of PDL data. Therefore, the total program amount for generating bitmap data from a plurality of types of PDL data can be smaller than that of a direct method.
(PDL処理;図3)
続いて、図3を参照しながら、各CPU24,26が実行するPDL処理について説明する。各CPU24,26は、PC6からPDLデータ(図2参照)を受信すると、PDL処理を並列的に実行する。即ち、CPU24がPDL処理を実行している間に、CPU26もPDL処理を実行可能である。以下では、CPU24を主体として各処理の内容を説明するが、CPU26も同様に処理を実行する。
(PDL processing; Fig. 3)
Next, the PDL process executed by each of the
S10において、CPU24は、共用メモリ領域50からCPC60(共通処理ページカウンタ(図1参照))の値を読み込み、CPC60の値を処理ページ番号として決定する。なお、CPC60の初期値は「1」である。例えば、CPU24が「M」を処理ページ番号として決定するということは、CPU24がMページ目のPDLデータをS14〜S26の処理対象として決定することを意味する。
In S10, the
次いで、S12において、CPU24は、S10で読み込まれたCPC60の値に「1」を加算して、新たなCPC60の値(例えば「2」)を算出する。そして、CPU24は、上記の新たなCPC60の値を共用メモリ領域50に書き込む。この結果、例えば、他のCPU26がS10の処理を実行する際に、上記の新たなCPC60の値(例えば「2」)を処理ページ番号として決定する。この例では、CPU26は、2ページ目のPDLデータをS14〜S26の処理対象として決定する。この説明から明らかなように、各CPU24,26は、複数ページ分のPDLデータのうちの1ページ目のPDLデータから昇順に、異なる1ページ分のPDLデータを利用して、S14〜S26の各処理を実行する。
Next, in S12, the
次いで、S14において、CPU24は、共用メモリ領域50からCSC62(共通設定データカウンタ(図1参照))の値を読み込み、S10で決定された処理ページ番号「M」がCSC62の値より大きいのか否かを判断する。なお、CSC62の初期値は「1」である。処理ページ番号「M」がCSC62の値より大きい場合(S14でYESの場合)には、S16に進み、処理ページ番号「M」がCSC62の値に等しい場合(S14でNOの場合)には、S20に進む。なお、処理ページ番号「M」がCSC62の値より大きい場合(S14でYESの場合)は、処理ページ番号「M」が示すページの1ページ前までの設定データ(即ちM−1ページ目までの設定データ)が生成済みでないことを意味し、処理ページ番号「M」がCSC62の値に等しい場合(S14でNOの場合)は、処理ページ番号「M」が示すページの1ページ前までの設定データ(即ちM−1ページ目までの設定データ)が生成済みであることを意味する。
Next, in S14, the
S16では、CPU24は、共用メモリ領域50からSPF64(設定コマンド処理フラグ(図1参照))の値を読み込み、SPF64の値が「1」であるのか否かを判断する。SPF64の値が「1」である場合(S16でYESの場合)には、S14に進み、SPF64の値が「0」である場合(S16でNOの場合)には、S18に進む。
In S16, the
SPF64の値が「1」である場合(S16でYESの場合)には、他のCPU26が、S18の設定コマンド処理を実行している。このような状況では、CPU24は、S18の設定コマンド処理を実行せずにS14に戻り、この結果、他のCPU26の設定コマンド処理が終了するまで待機する。
When the value of the SPF 64 is “1” (YES in S16), the
一方において、SPF64の値が「0」である場合(S16でNOの場合)には、他のCPU26が、S18の設定コマンド処理を実行していない。このような状況では、CPU24は、S18の設定コマンド処理を実行する。
On the other hand, when the value of the SPF 64 is “0” (NO in S16), the
(設定コマンド処理;図4)
設定コマンド処理では、S40において、CPU24は、共用メモリ領域50内のSPF64の値を「0」から「1」に変更する。次いで、S42において、CPU24は、共用メモリ領域50からCSC62の値を読み込み、CSC62の値(例えば「1」)を自己設定データカウンタ(以下では「OSC(Own Setting data Counter)」と呼ぶ)の値として決定する。さらに、CPU24は、OSCの値(例えば「1」)を、キャッシュメモリ28内に書き込む。OSCは、現在の設定コマンド処理の処理対象のページ番号(例えば「1」)を示すカウンタである。
(Setting command processing; FIG. 4)
In the setting command process, in S40, the
次いで、S44において、CPU24は、共用メモリ領域50から設定データ52を読み込むことによって、設定データ52を取得する。後で説明するが、図4のS60又は図5のS98では、共用メモリ領域50に設定データ52が書き込まれる。例えば、S42で決定されたOSCの値が「N」である場合には、通常、共用メモリ領域50にN−1ページ目までの設定データ52が書き込まれている。従って、S44では、CPU24は、共用メモリ領域50からN−1ページ目までの設定データ52(例えば、文字サイズ「20pt」、文字の装飾「太字」、文字の色「黒」)を取得して、当該設定データ52をキャッシュメモリ28に書き込む。なお、OSCの値(即ち「N」)が「1」である場合には、共用メモリ領域50に未だに設定データが書き込まれていない。この場合、CPU24は、S44をスキップする。
Next, in S <b> 44, the
次いで、S46において、CPU24は、S42で決定されたOSCの値が示す1ページ分のPDLデータを、PDLデータ格納領域70から読み込む。CPU24は、1ページ分のPDLデータを読み込む過程で、1個のコマンドを読み込む毎に、S48以降の処理を実行する。なお、以下では、S48以降の処理の処理対象の1個のコマンドのことを「特定のコマンド」と呼ぶ。例えば、S46で読み込まれるPDLデータが、図2の1ページ目のPDLデータである場合には、CPU24は、まず、1行目のテキストデータに含まれる描画コマンドであるテキスト「A」を特定のコマンドとして、S48以降の処理を実行する。その後、CPU24は、1行目のテキストデータに含まれる設定コマンドである文字サイズ「10pt」を特定のコマンドとして、S48以降の処理を実行する。
Next, in S <b> 46, the
S48では、CPU24は、特定のコマンドがページの終了を示すコマンドであるのか否かを判断する。特定のコマンドがページの終了を示すコマンドである場合(S48でYESの場合)には、S58に進み、特定のコマンドがページの終了を示すコマンドでない場合(S48でNOの場合)には、S50に進む。
In S48, the
S50では、CPU24は、特定のコマンドが設定コマンドであるのか否かを判断する。特定のコマンドが設定コマンドである場合(S50でYESの場合)には、S52に進む。特定のコマンドが設定コマンドでない場合(S50でNOの場合)には、S54に進む。
In S50, the
S52では、CPU24は、設定コマンド(即ち特定のコマンド)を実行して、設定データを生成する。例えば、PC6から受信されたPDLデータが、特定の種類(例えばPS)のPDLで記述されたPDLデータである場合には、CPU24は、まず、当該特定の種類のPDLデータから中間コードデータを生成するためのプログラムを利用して、設定コマンドを記述しているプログラムコードを解析して、設定コマンドの内容(例えば文字サイズ「30pt」)を解釈する。次いで、CPU24は、解釈済みの内容に対応する設定データを、キャッシュメモリ28内に生成する。
In S52, the
例えば、図2の1ページ目のPDLデータが設定コマンド処理の処理対象である場合には、CPU24は、S46において、1行目のテキストデータに含まれる設定コマンド(文字サイズ「10pt」)を読み込むと、S52において、文字サイズ「10pt」に対応する設定データを、キャッシュメモリ28内に生成する。その後、CPU24は、S46において、4行目のテキストデータに含まれる設定コマンド(文字サイズ「20pt」)を読み込むと、S52において、文字サイズ「10pt」に対応する設定データに代えて、文字サイズ「20pt」に対応する設定データを、キャッシュメモリ28内に生成する。即ち、CPU24は、S52において、特定の設定の種類(上記の例では「文字サイズ」)に対応する新たな設定データを生成する際に、上記の特定の設定の種類に対応する古い設定データがキャッシュメモリ28内に既に記憶されている場合には、古い設定データを消去して、新たな設定データをキャッシュメモリ28内に記憶させる。但し、この場合、CPU24は、キャッシュメモリ28内の他の設定の種類に対応する設定データ(例えば、文字の装飾「太字」、文字の色「黒」)を変更しない。
For example, when the PDL data of the first page in FIG. 2 is the processing target of the setting command process, the
また、例えば、図2の2ページ目のPDLデータが設定コマンド処理の処理対象である場合には、CPU24は、S46において、3行目のテキストデータに含まれる設定コマンド(文字サイズ「30pt」)を読み込むと、S52において、文字サイズ「20pt」に対応する設定データに代えて、文字サイズ「30pt」に対応する設定データを、キャッシュメモリ28内に生成する。
Further, for example, when the PDL data on the second page in FIG. 2 is the processing target of the setting command process, the
設定コマンドから設定データが生成されると、CPU24,26は、後の処理において、設定コマンドの内容を利用すべき際に、設定コマンドを再び実行する必要がなく、設定データを読み出せば足りる。上述したように、CPU24,26は、設定コマンドの内容を解釈するためには、特定の種類のPDLデータから中間コードデータを生成するためのプログラムを利用して、設定コマンドを記述しているプログラムコードを解析する必要があり、比較的に長時間を要する。これに対し、本実施例のように設定データを生成しておけば、CPUは、プログラムコードを解析する必要がなく、設定データを読み出せば、設定コマンドの内容を知ることができる。即ち、CPUは、後の処理において、設定コマンドの内容を比較的に短時間で取得することができる。
When the setting data is generated from the setting command, the
一方において、S54では、CPU24は、特定のコマンドが描画コマンドであるのか否かを判断する。特定のコマンドが描画コマンドである場合(S54でYESの場合)には、S46に戻る。即ち、CPU24は、描画コマンドを実行しない。一方において、特定のコマンドが描画コマンドでない場合(S54でNOの場合)には、S56に進み、CPU24は、コマンドに応じた処理を実行する。S56を終えると、S46に戻る。
On the other hand, in S54, the
また、S58では、CPU24は、共用メモリ領域50からCSC62の値を読み込む。そして、CPU24は、S42で決定されたOSCの値がCSC62の値以上であるのか否かを判断する。上述したように、S42では、OSCの値=CSC62の値と決定される。従って、S58では、通常、OSCの値とCSC62の値とが同じであるため、OSCの値がCSC62の値以上である(S58でYES)と判断され、S60に進む。但し、CPU24がS46〜S56の処理を実行している過程で、他のCPU26が後述の図5のS100の処理を実行して、CSC62の値がインクリメントされる可能性がある。この場合、OSCの値がCSC62の値より小さい(S58でNO)と判断され、S60及びS62をスキップしてS64に進む。
In S <b> 58, the
S60では、CPU24は、キャッシュメモリ28内の設定データを、共用メモリ領域50に書き込む。例えば、文字サイズ「20Pt」に対応する設定データが共用メモリ領域50内に記憶されており、文字サイズ「30Pt」に対応する設定データがキャッシュメモリ28内に記憶されている場合には、S60において、CPU24は、文字サイズ「20Pt」に対応する設定データに代えて、文字サイズ「30Pt」に対応する設定データを、共用メモリ領域50内に記憶させる。これにより、共用メモリ領域50内には、図4の設定コマンド処理の処理対象のページ(即ちCSC62の値が示すページ)までの設定データが記憶される。
In S <b> 60, the
次いで、S62において、CPU24は、OSCの値に「1」を加算して、新たなCSC62の値(例えば「2」)を算出する。そして、CPU24は、上記の新たなCSC62の値を共用メモリ領域50に書き込む。S62を終えると、S64において、CPU24は、共用メモリ領域50内のSPF64の値を「1」から「0」に変更する。これにより、設定コマンド処理が終了して、図3のS14に戻る。
Next, in S62, the
図3のS14において、処理ページ番号「M」がCSC62の値に等しい(S14でNO)、即ち、処理ページ番号「M」が示すページの1ページ前までの設定データ(即ちM−1ページ目までの設定データ)が生成済みである、と判断される場合(S14でNOの場合)には、S20において、CPU24は、両方コマンド処理を実行する。
In S14 of FIG. 3, the processing page number “M” is equal to the value of the CSC 62 (NO in S14), that is, setting data up to one page before the page indicated by the processing page number “M” (that is, the M−1th page). When it is determined that the setting data up to (the setting data) has been generated (NO in S14), in S20, the
(両方コマンド処理;図5)
両方コマンド処理では、S80において、CPU24は、共用メモリ領域50から設定データを読み込むことによって、設定データを取得する。これにより、CPU24は、処理ページ番号「M」が示すページの1ページ前までの設定データ(即ちM−1ページ目までの設定データ)を取得することができる。例えば、処理ページ番号が「2」である場合には、CPU24は、図2の1ページ目のPDLデータまでの設定データ(即ち、文字サイズ「20Pt」)を取得することができる。CPU24は、共用メモリ領域50からM−1ページ目までの設定データを取得して、当該設定データをキャッシュメモリ28に書き込む。これにより、CPU24は、キャッシュメモリ28内のM−1ページ目までの設定データを用いて、両方コマンド処理(特に、S84〜S94の処理)を実行することができる。なお、処理ページ番号が「1」である場合には、共用メモリ領域50に未だに設定データが書き込まれていない。この場合、CPU24は、S80をスキップする。
(Both command processing; Fig. 5)
In both command processing, the
次いで、S82において、CPU24は、図3のS10で決定された処理ページ番号「M」が示す1ページ分のPDLデータを、PDLデータ格納領域70から読み込む。CPU24は、1ページ分のPDLデータを読み込む過程で、1個のコマンドを読み込む毎に、S84以降の処理を実行する。S84〜S94の処理は、図4のS48〜S56の処理とほぼ同様である。但し、上述したように、図4の設定コマンド処理では、特定のコマンドが描画コマンドである場合(図4のS54でYESの場合)には、CPU24は、描画コマンドを実行しない。これに対し、両方コマンド処理では、特定のコマンドが描画コマンドである場合(図5のS90でYESの場合)には、S92において、CPU24は、描画コマンドを実行して中間コードデータを生成する。なお、本実施例では、中間コードデータは、ベクタ形式のデータである。
Next, in S <b> 82, the
S92では、例えば、PC6から受信されたPDLデータが、特定の種類(例えばPS)の言語で記述されたPDLデータである場合には、CPU24は、まず、当該特定の種類のPDLデータから中間コードデータを生成するためのプログラムを利用して、描画コマンドを記述しているプログラムコードを解析して、描画コマンドの内容(例えば、テキスト「A」)を解釈する。次いで、CPU24は、キャッシュメモリ28内のM−1ページ目までの設定データに従って、解釈済みの内容に対応する中間コードデータを、キャッシュメモリ28内に生成する。
In S92, for example, when the PDL data received from the
例えば、図2の2ページ目のPDLデータが両方コマンド処理の処理対象である場合には、CPU24は、S82において、1行目のテキストデータに含まれる描画コマンド(テキスト「F」)を読み込むと、S92において、キャッシュメモリ28内のM−1ページ目までの設定データ(文字サイズ「20pt」)に従って、文字サイズ「20pt」のテキスト「A」を示す中間コードデータを生成する。S92を終えると、S82に戻る。
For example, if the PDL data on the second page in FIG. 2 is both subject to command processing, the
また、S84において、特定のコマンドがページの終了を示すコマンドである場合(S84でYESの場合)には、S96において、CPU24は、共用メモリ領域50からCSC62の値を読み込む。そして、CPU24は、図3のS10で決定された処理ページ番号「M」がCSC62の値以上であるのか否かを判断する。上述したように、図3のS14では、処理ページ番号「M」=CSC62の値と判断される(S14でNOと判断される)。従って、図5のS96では、通常、処理ページ番号「M」とCSC62の値とが同じであるため、処理ページ番号「M」がCSC62の値以上である(S96でYES)と判断され、S98に進む。S98の処理は、図4のS60の処理と同様である。次いで、S100では、CPU24は、処理ページ番号「M」に「1」を加算して、新たなCSC62の値(例えば「3」)を算出して、S102に進む。
If the specific command is a command indicating the end of the page in S84 (YES in S84), the
但し、CPU24がS82〜S94の処理を実行している過程で、他のCPU26が図4のS62の処理を実行して、CSC62の値がインクリメントされる可能性がある。この場合、処理ページ番号がCSC62の値より小さい(S96でNO)と判断され、S98〜S100をスキップして、S102に進む。S102では、CPU24は、キャッシュメモリ28内に生成された1ページ分の中間コードデータのデータ名(例えば「P2」)を決定し、決定済みのデータ名を、中間コードデータテーブル54に登録する。CPU24は、中間コードデータテーブル54に既に登録されているデータ名の1つ下に、決定済みのデータ名を登録する。なお、中間コードデータテーブル54にデータ名が登録されていない場合、CPU24は、中間コードデータテーブル54の最上位置に、決定済みのデータ名を登録する。次いで、S104では、CPU24は、生成された1ページ分の中間コードデータを、中間コードデータ格納領域72に格納させて、両方コマンド処理を終了する。この場合、図3のS22に進む。
However, while the
図3のS22では、CPU24は、共用メモリ領域50からBPF66(ビットマップ生成処理フラグ(図1参照))の値を読み込み、BPF66の値が「1」であるのか否かを判断する。BPF66の値が「1」である場合(S22でYESの場合)には、S27に進み、BPF66の値が「0」である場合(S22でNOの場合)には、S23に進む。S23では、CPU24は、共用メモリ領域50内のBPF66の値を「0」から「1」に変更する。次いで、S24のビットマップ生成処理(以下では「BMP処理」と呼ぶ)に進む。
In S22 of FIG. 3, the
(BMP処理;図6)
BMP処理では、CPU24は、中間コードデータからビットマップデータを生成するためのプログラムを利用して、S20の両方コマンド処理で生成されたベクタ形式の1ページ分の中間コードデータから、多階調(例えば256階調)の1ページ分のビットマップデータを生成する。
(BMP processing; FIG. 6)
In the BMP process, the
最初に、S112において、CPU24は、中間コードデータ格納領域72から、中間コードデータテーブル54の最上位置に登録されているデータ名で特定される中間コードデータを、キャッシュメモリ28に読み込むことによって、中間コードデータを取得する。次いで、S114では、CPU24は、バンドエンドカウント値WEを、キャッシュメモリ28内に格納する。バンドエンドカウント値WEは、両方コマンド処理において、中間コードデータが生成される際に、特定されていてもよい。次いで、S116では、CPU24は、キャッシュメモリ28内に、バンドカウント値Wの値「0」を設定する。
First, in S112, the
次いで、S118では、CPU24は、バンドカウント値Wに対応する中間コードデータから、バンドカウント値Wに対応する中間コードデータによって表される画像をビットマップ形式で表すデータ(以下では「部分ビットマップデータ」と呼ぶ)を生成する。部分ビットマップデータは、キャッシュメモリ28に格納される。次いで、S120では、CPU24は、S112で取得された中間コードデータにおいて、S118の処理に利用されていない中間コードデータが残っているのか否かを判断する。具体的には、CPU24は、バンドカウント値Wが、バンドエンドカウント値WE未満であるのか否かを判断する。CPU24は、バンドカウント値Wがバンドエンドカウント値WE未満である場合、S118の処理に利用されていない中間コードデータが残っていると判断し(S120でYES)、S122に進む。S122では、CPU24は、バンドカウント値Wに「1」を加算して、新たなバンドカウント値Wを算出して、S118に戻る。
Next, in S118, the
一方、CPU24は、バンドカウント値Wが、バンドエンドカウント値WEと等しい場合、S118の処理に利用されていない中間コードデータが残っていないと判断し(S120でNO)、S124に進む。S124では、CPU24は、S118〜S122の処理の繰り返しによって生成された複数個の部分ビットマップデータによって形成される1ページ分(印刷用紙1枚分(1個))のビットマップデータを、印刷実行部16に供給する。詳細には、CPU24は、ビットマップデータを、キャッシュメモリ28から読み出して、BMPデータ格納領域74に書き込む。印刷実行部16は、BMPデータ格納領域74に格納されているビットマップデータを用いて、当該ビットマップデータによって表される画像を、印刷用紙に印刷する。なお、CPU24は、S112で取得した中間コードデータのデータ名を、中間コードデータテーブル54から消去する。これにより、BMP処理が終了して、図3のS25に戻る。
On the other hand, if the band count value W is equal to the band end count value WE, the
S25では、CPU24は、BMP処理に利用されるべき中間コードデータが、中間コードデータ格納領域72に格納されているのか否かを判断する。CPU24は、中間コードデータテーブル54にデータ名が登録されている場合に、BMP処理に利用されるべき中間コードデータが、中間コードデータ格納領域72に格納されていると判断し(S25でYES)、S112に戻る。一方、CPU24は、中間コードデータテーブル54にデータ名が登録されていない場合に、BMP処理に利用されるべき中間コードデータが、中間コードデータ格納領域72に格納されていないと判断し(S25でNO)、S26に進む。S26では、CPU24は、共用メモリ領域50内のBPF66の値を、「1」から「0」に変更する。
In S <b> 25, the
次いで、S27では、CPU24は、PC6から受信されたPDLデータに含まれるデータのうち、S20の処理が実行されていないデータが残っているのか否かを判断する。ここでYESの場合にはS10に戻り、NOの場合にはS28に進む。
Next, in S <b> 27, the
S28では、CPU24は、共用メモリ領域50内のBPF66の値が「1」であるのか否かを判断する。BPF66の値が「0」である場合(S28でNO)、PDL処理を終了する。S28において、BPF66の値が「0」である場合とは、CPU24がBMP処理において利用すべき中間コードデータが、中間コードデータ格納領域72に格納されておらず、CPU24が両方コマンド処理において利用すべきPDLデータが、PDLデータ格納領域70に格納されておらず、かつ、他のCPU26がBMP処理を実行していない場合である。この場合、CPU24は、PDL処理を終了する。
In S <b> 28, the
一方、BPF66の値が「1」である場合、S30に進む。S30では、CPU24は、BMP補助処理を実行する。具体的には、CPU24は、S30において、キャッシュメモリ28内の補助可能フラグ(図示省略)を、「0」から「1」に変更する。BMP処理を実行中である他のCPU26は、補助可能フラグが「0」から「1」に変更されると、図6のS112で取得された中間コードデータのうち、S118の処理が終了していない中間コードデータを、2分割する。
On the other hand, when the value of BPF 66 is “1”, the process proceeds to S30. In S30, the
具体的には、まず、CPU26は、バンドエンドカウント値WE(例えば2000)から現在のバンドカウント値W(例えば200)を減算する(例えばWE−W=1800)。次いで、CPU26は、(WE−W)の値を2で除算して、各CPU24,26が処理すべき処理バンド数(例えば(WE−W)÷2=900)を算出する。そして、CPU26は、現在のバンドカウント値W(例えば200)に、処理バンド数(例えば900)を加算して、新たなバンドエンドカウント値WE´(1100)を算出する。次いで、CPU26は、新たなバンドエンドカウント値WE´に「1」を加算して、CPU24がBMP補助処理で利用すべきバンドカウント値W´(例えば1101)を算出する。さらに、CPU26は、CPU24がBMP補助処理で利用すべきバンドエンドカウント値として、元のバンドエンドカウント値WE(例えば2000)を決定する。
Specifically, first, the
CPU24は、CPU24がBMP補助処理で利用すべきバンドカウント値W´(例えば1101)と、バンドエンドカウント値WE(例えば2000)と、が決定されると、キャッシュメモリ28を利用して、BMP補助処理を実行する。BMP補助処理では、CPU24は、最初に、キャッシュメモリ28内に、補助処理終了フラグ(図示省略)として、「0」を設定し、図6のS118〜S122の処理を実行する。S120でNOの場合、即ち、バンドカウント値W´とバンドエンドカウント値WEとが等しい場合、キャッシュメモリ28内の補助処理終了フラグを「0」から「1」に変更する。
When the band count value W ′ (for example, 1101) and the band end count value WE (for example, 2000) that the
CPU26は、CPU24のBMP補助処理と並行して、BMP処理を実行する。このとき、S120でNOの場合、CPU26は、キャッシュメモリ28内に、補助処理終了フラグが設定されている場合、補助処理終了フラグが「1」に変更されるまで待機する。CPU26は、キャッシュメモリ28内の補助処理終了フラグが「1」に変更されると、S124に進む。なお、CPU26は、キャッシュメモリ28内に、補助処理終了フラグが設定されていない場合には、待機せずに、S124に進む。
The
上述したように、本実施例では、CPU24,26は、キャッシュメモリ28を利用して、図3のPDL処理を実行する。上述したように、CPU24,26がキャッシュメモリ28のみを利用して処理を実行する場合、メモリ30を利用して処理を実行する場合と比較して、CPU24,26の処理速度は、高い。この結果、CPU24,26は、PDL処理を比較的に早く終了し得る。
As described above, in the present embodiment, the
(CPUが並列に実行する処理)
図7を参照して、7ページ分のPDLデータを利用して、CPU24,26が並列してPDL処理を実行する様子を説明する。図7では、下方に進むほど、時間が経過している。(P1)、(P2)等は、ページ番号を意味する。例えば、「(P1)設定コマンド処理」は、1ページ目のPDLデータを利用して、設定コマンド処理(図3のS18)を実行することを意味し、「(P1)両方コマンド処理」は、1ページ目のPDLデータを利用して、両方コマンド処理(図3のS20)を実行することを意味する。また、例えば、「(P1)BMP処理」は、1ページ目の中間コードデータを利用して、BMP処理(図3のS24)を実行することを意味する。
(Processes executed by CPU in parallel)
With reference to FIG. 7, a description will be given of how the
なお、図7では、どの処理で生成されたデータをどの処理で利用するのかを破線の矢印で示す。例えば、CPU24は、(P1)両方コマンド処理を実行し、次いで、(P1)両方コマンド処理で生成された中間コードデータを利用して、(P1)BMP処理を実行する。また、CPU24は、CPU26の(P2)両方コマンド処理によって生成された中間コードデータを利用して、(P2)BMP処理を実行する。
In FIG. 7, which process uses data generated by which process is indicated by a dashed arrow. For example, the
CPU24は、まず、図3のS10でCPU24の処理ページ番号「M1」として「1」を決定する。この場合、M1=1及びCSC62の値=1(初期値)であるために、CPU24は、図3のS14でNOと判断する。従って、CPU24は、キャッシュメモリ28を利用して、(P1)両方コマンド処理を実行する。
First, the
CPU24が(P1)両方コマンド処理を実行している間に、CPU26は、図3のS10でCPU26の処理ページ番号「M2」として「2」を決定する。この構成では、CPU26は、両方コマンド処理により中間コードデータの生成に未だ利用されていない1ページ分のPDLデータのうち、最もページ数の小さいPDLデータを利用して、両方コマンド処理を実行する。この場合、M2=2及びCSC62の値=1であるために、CPU26は、図3のS14でYESと判断する。そして、CPU26は、設定コマンドが未だに実行されていない最小ページである1ページ目のPDLデータを用いて、キャッシュメモリ28を利用して、(P1)設定コマンド処理を実行する。CPU26の(P1)設定コマンド処理は、描画コマンドが実行されないために、CPU24の(P1)両方コマンド処理よりも短時間で終了する。従って、CPU26は、(P1)設定コマンド処理の図4のS60において、1ページ目のPDLデータまでの設定データを、キャッシュメモリ28から共用メモリ領域50に記憶させる。
While the
さらに、CPU26は、(P1)設定コマンド処理の図4のS62において、CSC62の値を「1」から「2」にインクリメントする。従って、(P1)設定コマンド処理を終えると、M2=2及びCSC62の値=2であるために、CPU26は、図3のS14でNOと判断し、キャッシュメモリ28を利用して、(P2)両方コマンド処理を実行する。この構成によると、CPU26は、2ページ目のPDLデータを利用した両方コマンド処理を実行する際に、CPU26自身によって生成された1ページ目までの設定データを利用することができる(図5のS80)。また、この構成によれば、CPU24が、1ページ目の設定データを生成していない場合に、CPU26は、1ページ目の設定データが、CPU24によって生成されるまで、(P2)両方コマンド処理の実行を待機せずに済む。
Further, the
この場合、CPU26は、(P2)両方コマンド処理において、2ページ目のPDLデータまでの設定データを、共用メモリ領域50に記憶させる(図5のS98)。そして、CPU26は、(P2)両方コマンド処理の図5のS100において、CSC62の値を「2」から「3」にインクリメントする。
In this case, the
CPU24が(P1)両方コマンド処理を終了した段階で、CPU26は、(P2)両方コマンド処理を実行中であり、BPFは「0」である(図3のS22でNO)。この場合、CPU24は、(P1)両方コマンド処理に続いて、キャッシュメモリ28を利用して、(P1)BMP処理を実行する。
When the
CPU26が(P2)両方コマンド処理を終了した段階で、CPU24は、(P1)BMP処理を実行している(図3のS22でYES)。このため、CPU26は、(P2)BMP処理を実行しない。CPU26は、図3のS10でCPU26の処理ページ番号「M2」として「3」を決定する。この段階では、共用メモリ領域50には、(P2)までの設定データが記憶されており、CSC62の値=「3」である。従って、CPU26は、図3のS14でNOと判断し、BMP処理を実行せずに、(P2)両方コマンド処理に続いて、(P3)両方コマンド処理を実行する。この構成によれば、CPU26は、CPU24がBMP処理を実行している間に、CPU24と同時的にBMP処理を実行する状況を回避することができる。また、CPU24がBMP処理を実行している間に、CPU26が両方コマンド処理を実行することによって、効率よく、PDLデータから中間コードデータを生成することができる。この結果、効率よく、PDLデータから中間コードデータを経て、ビットマップデータを生成することができる。なお、CPU26は、(P3)両方コマンド処理において生成された3ページ目のPDLデータの設定データを、共用メモリ領域50に記憶させる(図5のS98)。
At the stage when the
CPU24が(P1)BMP処理を終了した段階で、CPU26は、(P3)両方コマンド処理を実行している。そして、中間コードデータテーブル54には、CPU26の(P2)両方コマンド処理によって、「P2」が登録されている(図5のS102、図3のS25でYES)。従って、CPU24は、(P1)BMP処理に続いて、両方コマンド処理を実行せずに、(P2)BMP処理を実行する。この構成によれば、CPU24は、生成済みの中間コードデータを利用して、比較的に早期にビットマップデータを生成することができる。この結果、CPU24は、ビットマップデータを、早期に印刷実行部16に供給することができる。このため、ユーザは、印刷結果を早期に取得することができる。
At the stage when the
同様に、CPU24は、(P2)BMP処理に続いて、両方コマンド処理を実行せずに、(P3)BMP処理を実行する。CPU26は、(P3)両方コマンド処理に続いて、(P4)両方コマンド処理を実行する。
Similarly, following (P2) BMP processing, the
CPU24が(P3)BMP処理を終了した段階で、CPU26は、(P4)両方コマンド処理を実行している。この段階では、BMP処理において利用すべき中間コードデータが中間コードデータ格納領域72に格納されていない。そのため、CPU24は、図3のS25でNOと判断する。CPU24は、図3のS26で、BPFを「1」から「0」に変更して、BMP処理を終了して、図3のS10に戻る。CPU24は、CSC62の値=「4」であり、CPU24の処理ページ番号「M1」=「5」であることから、図3のS14でYESと判断して、(P4)設定コマンド処理を実行する。
At the stage when the
CPU26は、(P4)両方コマンド処理において、CPU26の処理ページ番号「M2」=「4」であり、CSC62の値=「4」であるため、の図5のS96でYESと判断される。このため、CPU26は、4ページ目のPDLデータまでの設定データを、キャッシュメモリ28から共用メモリ領域50に記憶させる(図5のS98)。さらに、CPU26は、CSC62の値をインクリメントし、(P4)BMP処理を開始する。
In (P4) both command processing, the
CPU26は、CPU24が(P4)設定コマンド処理の実行中に、CSC62の値をインクリメントする。このため、CPU24は、4ページ目のPDLデータまでの設定データを、キャッシュメモリ28から共用メモリ領域50に記憶させずに、(P4)設定コマンド処理を終了する。次いで、CPU24は、(P5)両方コマンド処理を実行する。このとき、CPU24は、CPU26によって生成済みの4ページ目のPDLデータまでの設定データを、共用メモリ領域50から読み込んで、キャッシュメモリ28に書き込む。CPU24は、キャッシュメモリ28内の設定データを利用して、(P5)両方コマンド処理を実行する。なお、変形例では、CPU24は、(P4)設定コマンド処理によってキャッシュメモリ28内に生成した設定データを利用して、(P5)両方コマンド処理を実行してもよい。
The
この構成では、CPU24が、5ページ目のPDLデータを利用して、両方コマンド処理を開始すべきであり、かつ、CPU26が、1〜4ページ目のPDLデータを利用した両方コマンド処理を完了している場合に、CPU24は、CPU26によって生成された1〜4ページ目の設定データを利用して、5ページ目の両方コマンド処理を実行する。この構成によれば、CPU24は、5ページ目のPDLデータを利用して、両方コマンド生成処理を実行する際に、1ページ目から4ページ目までのPDLデータのそれぞれを利用した設定コマンド処理を実行しなくて済む。但し、CPU24,26の処理のタイミングによっては、CPU24は、4ページ目の設定データを生成する場合があり得る。
In this configuration, the
その後、上記と同様に、CPU24は、(P5)BMP処理と、(P6)設定コマンド処理と、(P7)両方コマンド処理と、を実行する。一方、CPU26は、(P4)BMP処理の終了後、(P5)設定コマンド処理と、(P6)両方コマンド処理と、(P6)BMP処理と、を実行する。
Thereafter, similarly to the above, the
CPU24が、(P7)両方コマンド処理を終了したタイミングでは、CPU26は、(P6)BMP処理を実行している。この段階では、7ページ分のPDLデータの全てについて、両方コマンド処理が終了している(図3のS27でNO)。また、BPFは「1」である(図3のS28でYES)。この結果、CPU24は、(P6)BMP補助処理(図3のS30、図6のS118〜S122)を実行する。
At the timing when the
CPU26が、(P6)BMP処理を終了した段階で、CPU24による(P7)両方コマンド処理で生成された中間コードデータが中間コードデータ格納領域72に格納されている。このため、CPU26は、図3のS25でYESと判断し、(P6)BMP処理に続いて、(P7)BMP処理を実行する。一方、CPU24は、(P6)BMP補助処理が終了すると、CPU26が(P7)BMP処理を実行するため(即ちBPF=1)に、図3のS28でYESと判断し、(P7)BMP補助処理を実行する。この構成では、CPU24は、CPU26が実行しているBMP処理において利用されている中間コードデータを利用して、CPU26と共に、ビットマップデータを生成する処理を実行する。この構成によれば、CPU26が単独で、(P6)BMP処理と(P7)BMP処理とを実行する場合と比較して、早期に、(P6)BMP処理と(P7)BMP処理とを完了することができる。
When the
(本実施例の効果)
各CPU24,26がBMP処理を実行している間に利用されるメモリの容量は、各CPU24,26が設定コマンド処理を実行している間に利用されるメモリ容量よりも多く、両方コマンド処理を実行している間に利用されるメモリの容量よりも多い可能性が高い。上述したように、キャッシュメモリ28の容量は、比較的に小さい。仮に、CPU24,26が同時的に、別の中間コードデータを利用して、個別にBMP処理を実行する特定の状況では、BMP処理を実行している間に利用されるメモリの容量が、キャッシュメモリ28のメモリ容量を超える可能性がある。この状況では、メモリ30のメモリ領域を利用して、BMP処理が実行される。上述したように、各CPU24,26がキャッシュメモリ28のみを利用して処理を実行する場合、キャッシュメモリ28とメモリ30とを利用して処理を実行する場合と比較して、CPU24,26の処理速度は高い。このため、上記の特定の状況では、BMP処理が遅くなる可能性が高くなる。
(Effect of this embodiment)
The memory capacity used while each
本実施例では、一方のCPU(例えばCPU24)がBMP処理を実行している場合、他方のCPU(例えばCPU26)は、設定コマンド処理及び両方コマンド処理のどちらかの処理を実行する。このため、各CPU24,26は、CPU24,26のうちの一方が、Mページ目の中間コードデータを利用して、BMP処理を実行している場合、CPU24,26のうちの他方は、Mページ目の中間コードデータ以外の中間コードデータを利用して、BMP処理を実行しない。この構成によれば、CPU24,26によって、PDLデータからビットマップデータが生成される際に利用されるメモリ容量を低減し得る。このため、CPU24とCPU26とが、共に、キャッシュメモリ28を利用して処理を実行する構成において、CPU24とCPU26との処理中に、キャッシュメモリ28の容量を超えて、メモリ30が利用される状況を回避することができる。
In this embodiment, when one CPU (for example, CPU 24) is executing the BMP process, the other CPU (for example, CPU 26) executes either the setting command process or the both command process. For this reason, when one of the
(対応関係)
本実施例のプリンタ10が「制御装置」の一例であり、CPU24とCPU26とがそれぞれ、「第1のプロセッサ」と「第2のプロセッサ」との一例である。両方コマンド処理が、「中間コード生成処理」の一例であり、BMP処理が、「ビットマップ生成処理」の一例である。図3のS22でYESの場合が、「第1の場合」の一例であり、NOの場合が、「第2の場合」の一例である。
(Correspondence)
The
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。 Specific examples of the present invention have been described in detail above, but these are merely examples and do not limit the scope of the claims. The technology described in the claims includes various modifications and changes of the specific examples illustrated above. The modifications of the above embodiment are listed below.
(変形例1)上記の実施例では、CPUは2個であるが、CPUの個数に制限はない。即ち、プリンタ10は、3個以上(即ち複数個)のCPUを備えていてもよい。
(Modification 1) In the above embodiment, there are two CPUs, but the number of CPUs is not limited. That is, the
(変形例2)上記の各実施例では、「制御装置」は、プリンタ10であるが、FAXデータの印刷を実行するFAX装置であってもよいし、印刷機能を備える多機能機であってもよい。
(Modification 2) In each of the above embodiments, the “control device” is the
(変形例3)上記の各実施例では、プリンタ10が、複数個のCPU24,26を備えており、各CPU24,26が、図3のPDL処理を並列的に実行する。これに代えて、PC6が、複数個のプロセッサを備えており、各プロセッサが、図3のPDL処理を並列的に実行してもよい。この場合、各プロセッサは、図3のS24の処理を実行する際に、ビットマップデータをプリンタ10に供給してもよい。本変形例では、PC6が、それぞれ、「制御装置」の一例である。即ち、「制御装置」は、印刷実行部16を備えていなくてもよい。一般的に言うと、「制御装置」は、印刷のための制御装置であればよい。PDLデータを利用して、ビットマップデータを生成する装置であればよい。
(Modification 3) In each of the above embodiments, the
(変形例4)上記の実施例では、1ページ分のPDLデータから、1ページ分の中間コードデータが生成され、1ページ分の中間コードデータから、1個のビットマップデータ(即ち印刷用紙1枚の片面のビットマップデータ)が生成される。しかしながら、複数ページ分の中間コードデータから、1個のビットマップデータが生成されてもよい。例えば、ユーザが、複数ページ分のPDLデータによって表される画像を、1枚の印刷用紙に印刷させるように、印刷設定を選択する場合、CPU24,26は、複数ページ分の中間コードデータから、1個のビットマップデータを生成してもよい。本変形例では、図3のS24のBMP処理を開始する前に、CPU24,26は、BMP生成処理によるビットマップデータの生成が未だ完了していない複数ページ分の中間コードデータが、中間コードデータ格納領域72に格納されているのか否かを判断してもよい。CPU24,26は、複数ページ分以上の中間コードデータが、中間コードデータ格納領域72に格納されている場合に、S24に進み、複数ページ分未満の中間コードデータしか、中間コードデータ格納領域72に格納されていない場合、S27に進んでもよい。
(Modification 4) In the above embodiment, one page of intermediate code data is generated from one page of PDL data, and one bit map data (that is, printing paper 1) is generated from one page of intermediate code data. Single-sided bitmap data) is generated. However, one piece of bitmap data may be generated from intermediate code data for a plurality of pages. For example, when the user selects a print setting so that an image represented by PDL data for a plurality of pages is printed on a single sheet of printing paper, the
(変形例5)上記の実施例では、CPU24,26は、設定コマンド処理を実行する。しかしながら、CPU24,26は、設定コマンド処理を実行しなくてもよい。例えば、図7において、CPU24が(P1)両方コマンド処理を実行している間、CPU26は、待機していてもよい。CPU26は、CPU24によって、1ページ目の設定データが、共通メモリ領域に格納されると、(P2)両方コマンド処理を開始してもよい。
(Modification 5) In the above embodiment, the
(変形例6)上記の実施例では、CPU24,26は、BMP補助処理を実行する。しかしながら、CPU24,26は、BMP補助処理を実行しなくてもよい。例えば、図7において、CPU24は、(P7)両方コマンド処理を終了した場合、PDL処理を終了してもよい。
(Modification 6) In the above embodiment, the
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。 The technical elements described in this specification or the drawings exhibit technical usefulness alone or in various combinations, and are not limited to the combinations described in the claims at the time of filing. In addition, the technology illustrated in the present specification or the drawings achieves a plurality of objects at the same time, and has technical utility by achieving one of the objects.
2:通信システム、10:プリンタ、16:印刷実行部、20:制御部、24,26:CPU、28:キャッシュメモリ、50:共用メモリ領域、70:PDLデータ格納領域、72:中間コードデータ格納領域、74:BMPデータ格納領域 2: communication system, 10: printer, 16: print execution unit, 20: control unit, 24, 26: CPU, 28: cache memory, 50: shared memory region, 70: PDL data storage region, 72: intermediate code data storage Area, 74: BMP data storage area
Claims (9)
第1のプロセッサと第2のプロセッサとを備え、
前記第1のプロセッサと前記第2のプロセッサとのそれぞれは、
前記複数ページ分の前記PDLデータのうちの1ページ分の前記PDLデータを利用して、1ページ分の中間コードデータを生成する中間コード生成処理と、
生成済みの前記中間コードデータを利用して、ビットマップデータを生成するビットマップ生成処理と、
を、前記複数ページ分の前記PDLデータを用いて、前記複数ページ分の前記ビットマップデータが生成されるまで実行し、
前記第1のプロセッサと前記第2のプロセッサとのそれぞれは、
当該プロセッサと異なる他のプロセッサが前記ビットマップ生成処理を実行している第1の場合に、前記複数ページ分の前記PDLデータのうち、前記中間コード生成処理により前記中間コードデータの生成が未だ完了していない1ページ分の前記PDLデータを利用して、前記中間コード生成処理を実行し、
前記他のプロセッサが前記ビットマップ生成処理を実行していない第2の場合に、前記生成済みの前記中間コードデータのうち、前記ビットマップ生成処理による前記ビットマップデータの生成が未だ完了していない前記中間コードデータを利用して、前記ビットマップ生成処理を実行する、制御装置。 A control device for printing,
A first processor and a second processor;
Each of the first processor and the second processor is:
Intermediate code generation processing for generating intermediate code data for one page using the PDL data for one page of the PDL data for the plurality of pages;
A bitmap generation process for generating bitmap data using the generated intermediate code data;
And using the PDL data for the plurality of pages until the bitmap data for the plurality of pages is generated,
Each of the first processor and the second processor is:
In the first case where another processor different from the processor is executing the bitmap generation process, generation of the intermediate code data is still completed by the intermediate code generation process among the PDL data for the plurality of pages. The intermediate code generation process is executed using the PDL data for one page that has not been executed,
In the second case where the other processor is not executing the bitmap generation process, the generation of the bitmap data by the bitmap generation process among the generated intermediate code data is not yet completed. A control device that executes the bitmap generation process using the intermediate code data.
前記第1のプロセッサと前記第2のプロセッサとのそれぞれは、
当該プロセッサが、前記ビットマップ生成処理を終了した際に、前記第2の場合であって、かつ、前記ビットマップ生成処理による前記ビットマップデータの生成が未だ完了していない前記中間コードデータが、前記メモリに格納されている場合に、前記メモリに格納されている前記中間コードデータを利用して、前記ビットマップ生成処理を実行する、請求項1に記載の制御装置。 A memory for storing the intermediate code data generated by the intermediate code generation processing of each of the first processor and the second processor;
Each of the first processor and the second processor is:
When the processor finishes the bitmap generation process, the intermediate code data in the second case and the generation of the bitmap data by the bitmap generation process is not yet completed. The control device according to claim 1, wherein the bitmap generation process is executed using the intermediate code data stored in the memory when stored in the memory.
当該プロセッサが、前記中間コード生成処理を終了した際に、前記第1の場合に、前記複数ページ分の前記PDLデータのうち、前記中間コード生成処理により前記中間コードデータの生成が未だ完了していない1ページ分の前記PDLデータを利用して、前記中間コード生成処理を実行する、請求項1又は2に記載の制御装置。 Each of the first processor and the second processor is:
When the processor finishes the intermediate code generation process, in the first case, generation of the intermediate code data among the PDL data for the plurality of pages is still completed by the intermediate code generation process. The control device according to claim 1, wherein the intermediate code generation process is executed using the PDL data for one page that is not present.
前記複数ページの前記PDLデータのうちの処理対象である対象ページの前記PDLデータに含まれる設定コマンドを実行して、前記対象ページの設定データを生成し、
前記対象ページ目までの前記PDLデータに含まれる前記設定コマンドを実行した結果として生成される前記対象ページ目までの前記設定データと、前記対象ページの前記PDLデータと、を利用して、前記中間コードデータを生成し、
前記第1のプロセッサと前記第2のプロセッサとのそれぞれは、
前記他のプロセッサが、前記複数ページの前記PDLデータのうちのN(Nは、1以上の整数)ページ目の前記PDLデータを利用して、前記中間コード生成処理を開始しており、かつ、前記ビットマップ生成処理において利用すべき前記中間コードデータが生成されていない場合に、
前記Nページ目の前記PDLデータに含まれる前記設定コマンドを実行して、前記Nページ目の前記設定データを生成する設定データ生成処理を実行し、
生成済みの前記Nページ目までの前記設定データと、前記複数ページの前記PDLデータのうちのN+1ページ目の前記PDLデータと、を利用して、前記中間コード生成処理を実行する、請求項1から3のいずれか一項に記載の制御装置。 Each of the first processor and the second processor in the intermediate code generation process,
Executing a setting command included in the PDL data of the target page to be processed among the PDL data of the plurality of pages to generate setting data of the target page;
Using the setting data up to the target page generated as a result of executing the setting command included in the PDL data up to the target page and the PDL data of the target page, the intermediate data Generate code data,
Each of the first processor and the second processor is:
The other processor starts the intermediate code generation process using the PDL data of N (N is an integer of 1 or more) of the PDL data of the plurality of pages, and When the intermediate code data to be used in the bitmap generation process is not generated,
Executing the setting command included in the PDL data of the N page to execute setting data generation processing for generating the setting data of the N page;
The intermediate code generation process is executed using the setting data up to the Nth page that has already been generated and the PDL data on the (N + 1) th page among the PDL data of the plurality of pages. 4. The control device according to any one of items 1 to 3.
前記複数ページの前記PDLデータのうちの処理対象である対象ページの前記PDLデータに含まれる設定コマンドを実行して、前記対象ページの設定データを生成し、
前記対象ページ目までの前記PDLデータに含まれる前記設定コマンドを実行した結果として生成される前記対象ページ目までの前記設定データと、前記対象ページの前記PDLデータと、を利用して、前記中間コードデータを生成し、
前記第1のプロセッサと前記第2のプロセッサとのそれぞれは、
M(Mは、2以上の整数)ページ目の前記PDLデータを利用して、前記中間コード生成処理を開始すべきであり、かつ、前記他のプロセッサが、L(Lは、1以上M未満の整数)ページ目の前記PDLデータを利用した前記中間コード生成処理を完了している場合に、
前記他のプロセッサによって生成された前記Lページ目の前記設定データを利用して、前記Mページ目の前記中間コード生成処理を実行する、請求項1から4のいずれか一項に記載の制御装置。 Each of the first processor and the second processor in the intermediate code generation process,
Executing a setting command included in the PDL data of the target page to be processed among the PDL data of the plurality of pages to generate setting data of the target page;
Using the setting data up to the target page generated as a result of executing the setting command included in the PDL data up to the target page and the PDL data of the target page, the intermediate data Generate code data,
Each of the first processor and the second processor is:
The intermediate code generation process should be started using the PDL data of the M (M is an integer of 2 or more) page, and the other processor is L (L is 1 or more and less than M) Integer) when the intermediate code generation process using the PDL data of the page has been completed,
5. The control apparatus according to claim 1, wherein the intermediate code generation process of the M page is executed using the setting data of the L page generated by the other processor. 6. .
前記第1のプロセッサと前記第2のプロセッサとのそれぞれは、
前記他のプロセッサが実行している前記ビットマップ生成処理において利用されている前記中間コードデータを利用して、前記他のプロセッサと共に、前記ビットマップ処理を実行する、請求項1から5のいずれか一項に記載の制御装置。 In the first case, and when the intermediate code generation processing has been completed for all of the PDL data for the plurality of pages,
Each of the first processor and the second processor is:
6. The bitmap processing is executed together with the other processor using the intermediate code data used in the bitmap generation processing executed by the other processor. The control device according to one item.
前記中間コード生成処理により前記中間コードデータの生成に未だ利用されていない1ページ分の前記PDLデータのうち、最もページ数の小さい前記PDLデータを利用して、前記中間コード生成処理を実行する、請求項1から6のいずれか一項に記載の制御装置。 Each of the first processor and the second processor is:
Executing the intermediate code generation process using the PDL data having the smallest number of pages among the PDL data for one page not yet used for generating the intermediate code data by the intermediate code generation process; The control device according to any one of claims 1 to 6.
前記制御装置は、第1のプロセッサと第2のプロセッサとを備え、
前記コンピュータプログラムは、前記第1のプロセッサと前記第2のプロセッサとのそれぞれに、
前記複数ページ分の前記PDLデータのうちの1ページ分の前記PDLデータを利用して、1ページ分の中間コードデータを生成する中間コード生成処理と、
生成済みの前記中間コードデータを利用して、ビットマップデータを生成するビットマップ生成処理と、
を、前記複数ページ分の前記PDLデータを用いて、前記複数ページ分の前記ビットマップデータが生成されるまで実行させ、
前記コンピュータプログラムは、前記第1のプロセッサと前記第2のプロセッサとのそれぞれに、
当該プロセッサと異なる他のプロセッサが前記ビットマップ生成処理を実行している第1の場合に、前記複数ページ分の前記PDLデータのうち、前記中間コード生成処理により前記中間コードデータの生成が未だ完了していない1ページ分の前記PDLデータを利用して、前記中間コード生成処理を実行させ、
前記他のプロセッサが前記ビットマップ生成処理を実行していない第2の場合に、前記生成済みの前記中間コードデータのうち、前記ビットマップ生成処理による前記ビットマップデータの生成が未だ完了していない前記中間コードデータを利用して、前記ビットマップ生成処理を実行させる、コンピュータプログラム。 A computer program for a control device for printing,
The control device includes a first processor and a second processor,
The computer program is stored in each of the first processor and the second processor.
Intermediate code generation processing for generating intermediate code data for one page using the PDL data for one page of the PDL data for the plurality of pages;
A bitmap generation process for generating bitmap data using the generated intermediate code data;
Using the PDL data for the plurality of pages until the bitmap data for the plurality of pages is generated,
The computer program is stored in each of the first processor and the second processor.
In the first case where another processor different from the processor is executing the bitmap generation process, generation of the intermediate code data is still completed by the intermediate code generation process among the PDL data for the plurality of pages. The intermediate code generation process is executed using the PDL data for one page that has not been performed,
In the second case where the other processor is not executing the bitmap generation process, the generation of the bitmap data by the bitmap generation process among the generated intermediate code data is not yet completed. A computer program for executing the bitmap generation processing using the intermediate code data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012207957A JP5966805B2 (en) | 2012-09-21 | 2012-09-21 | Control device for printing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012207957A JP5966805B2 (en) | 2012-09-21 | 2012-09-21 | Control device for printing |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014061648A JP2014061648A (en) | 2014-04-10 |
JP5966805B2 true JP5966805B2 (en) | 2016-08-10 |
Family
ID=50617370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012207957A Active JP5966805B2 (en) | 2012-09-21 | 2012-09-21 | Control device for printing |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5966805B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112395018B (en) * | 2020-12-07 | 2021-04-13 | 湖北芯擎科技有限公司 | Direction control application starting method and device, electronic equipment and storage medium |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2937945B2 (en) * | 1997-06-02 | 1999-08-23 | 日本電気データ機器株式会社 | Printer device |
JP5183443B2 (en) * | 2008-11-27 | 2013-04-17 | 京セラドキュメントソリューションズ株式会社 | Image forming apparatus |
JP5310273B2 (en) * | 2009-06-03 | 2013-10-09 | ブラザー工業株式会社 | Print control apparatus and computer program |
JP5392153B2 (en) * | 2010-03-11 | 2014-01-22 | コニカミノルタ株式会社 | Image processing apparatus, image processing method, and program |
JP5488912B2 (en) * | 2010-07-06 | 2014-05-14 | ブラザー工業株式会社 | Control device, printing device, and computer program |
-
2012
- 2012-09-21 JP JP2012207957A patent/JP5966805B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2014061648A (en) | 2014-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5333259B2 (en) | Image forming apparatus, program, and image forming method | |
JP5552855B2 (en) | Image processing apparatus, image forming system, and image processing program | |
US8767247B2 (en) | Print data generation device, print data generation method and computer-readable medium for controlling rasterization processing | |
US8253962B2 (en) | Image forming apparatus, computer readable storage medium and image formation processing method | |
KR102529343B1 (en) | Methods and systems for handling printing of large-size objects | |
US9164706B2 (en) | Information processing apparatus, recording medium, and control method | |
JP5966805B2 (en) | Control device for printing | |
US9165225B2 (en) | Program and information processing apparatus | |
JP2004188865A (en) | Image forming device and program | |
JP4877331B2 (en) | Image processing apparatus, program, and data processing method | |
US9965709B2 (en) | Non-transitory computer readable recording medium that records a program for causing a computer of an information processing apparatus to generate printable data utilizing cached commands, and information processing apparatus that generates printable data | |
JP5853537B2 (en) | Control device for printing | |
JP2010218325A (en) | Printing controller and printing system | |
JP6015478B2 (en) | Control device, control method, and printer driver program | |
JP2004062431A (en) | Information processing device and method, and print control program | |
US20200401071A1 (en) | Image forming apparatus, control method therefor, and program | |
JP2007299380A (en) | Print support device, print support program, storage medium and print support method | |
JP5393590B2 (en) | Image forming system and image forming apparatus | |
JP5310538B2 (en) | Print control program and information processing apparatus | |
JP6186926B2 (en) | Program and information processing apparatus | |
JP6123356B2 (en) | Information processing apparatus, program, and log data generation method | |
JP5304422B2 (en) | Image processing apparatus, image processing method, and image processing program | |
JP2011194851A (en) | Image processor, image forming system, and image processing program | |
JP5701234B2 (en) | Image forming apparatus and character drawing program | |
JP2014130430A (en) | Information processing apparatus, printing system, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150803 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160531 |
|
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: 20160607 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160620 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Ref document number: 5966805 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |