説明

印刷のための制御装置

【課題】 複数個のプロセッサが、適切な手法を利用して、中間コードデータを生成するための技術を提供すること。
【解決手段】 プロセッサPR1は、3ページ目のPDLデータを利用して、3ページ目の中間コードデータを生成すべき際に、プロセッサPR2によって生成された2ページ目までの設定データを用いて、3ページ目のPDLデータに含まれる描画コマンド及び設定コマンドの両方を実行する((P3)両方コマンド処理)。プロセッサPR2は、6ページ目のPDLデータを利用して、6ページ目の中間コードデータを生成すべき際に、プロセッサPR1によって生成された5ページ目までの設定データを用いて、6ページ目のPDLデータに含まれる描画コマンド及び設定コマンドの両方を実行する((P6)両方コマンド処理)。

【発明の詳細な説明】
【技術分野】
【0001】
本明細書によって開示される技術は、印刷のための制御装置に関する。特に、複数個のプロセッサを備える制御装置に関する。
【背景技術】
【0002】
特許文献1には、印刷装置が開示されている。印刷装置は、第1のCPUと第2のCPUとを備える。第1のCPU及び第2のCPUのそれぞれは、印刷データを中間段階のデータに変換する処理と、中間段階のデータをビットマップデータに変換する処理と、の両方を実行可能である。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−251867号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本明細書では、複数個のプロセッサが、適切な手法を利用して、中間コードデータを生成するための技術を提供する。
【課題を解決するための手段】
【0005】
本明細書によって開示される技術は、印刷のための制御装置である。制御装置は、複数ページ分のPDLデータのうちの1ページ目のPDLデータから昇順に、それぞれが異なる1ページ分のPDLデータを利用して1ページ分の中間コードデータを生成するための中間コード生成処理を、並列的に実行可能なL個(Lは2以上の整数)のプロセッサを備える。L個のプロセッサのそれぞれは、当該プロセッサによって実行される中間コード生成処理の処理対象であるMページ目(前記Mは2以上の整数)のPDLデータを利用して、Mページ目の中間コード生成処理を実行すべき際に、Mページ目の中間コード生成処理に含まれる以下の各処理、即ち、(A)L個のプロセッサのうちの少なくとも1個のプロセッサが、1ページ目のPDLデータからM−1ページ目のPDLデータまでのM−1ページ分のPDLデータに含まれる各設定コマンドを実行した結果として、M−1ページ目までの設定データが生成済みであるのか否かを判断する判断処理と、(B)判断処理において、M−1ページ目までの設定データが生成済みでないと判断する第1の場合に、設定コマンドが未だに実行されていない最小ページであるNページ目(Nは1以上M−1以下の整数)のPDLデータに含まれる描画コマンドを実行せずに、Nページ目のPDLデータに含まれる設定コマンドを実行して、Nページ目までの設定データを生成する第1の生成処理と、(C)判断処理において、M−1ページ目までの設定データが生成済みであると判断する第2の場合に、Nページ目のPDLデータを利用した第1の生成処理を実行せずに、M−1ページ目までの設定データを用いて、Mページ目のPDLデータに含まれる設定コマンド及び描画コマンドを実行して、Mページ目までの設定データと、Mページ目の中間コードデータと、を生成する第2の生成処理と、を実行する。
【0006】
上記の制御装置では、M−1ページ目までの設定データが生成済みでない場合に、Nページ目のPDLデータに含まれる描画コマンドが実行されない。従って、制御装置は、Nページ目のPDLデータに含まれる設定コマンドを迅速に実行して、Nページ目までの設定データを迅速に生成し得る。さらに、M−1ページ目までの設定データが生成済みである場合に、Nページ目のPDLデータを利用した第1の生成処理が実行されない。従って、例えば、第1のプロセッサが、Nページ目のPDLデータに含まれる設定コマンドを実行した後に、第1のプロセッサとは異なる第2のプロセッサが、Nページ目のPDLデータに含まれる設定コマンドを再び実行することを抑制し得る。上記の技術によると、制御装置は、適切な手法を利用して、中間コードデータを生成し得る。
【0007】
なお、上記の制御装置のための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記録媒体も、新規で有用である。
【図面の簡単な説明】
【0008】
【図1】通信システムの構成の一例を示す。
【図2】複数ページ分のPDLデータの一例を示す。
【図3】PDL処理のフローチャートを示す。
【図4】設定コマンド処理のフローチャートを示す。
【図5】両方コマンド処理のフローチャートを示す。
【図6】比較例の各処理と第1実施例の各処理との一例を示す。
【図7】比較例の各処理と第2実施例の各処理との一例を示す。
【図8】第2実施例の各処理の別の例を示す。
【発明を実施するための形態】
【0009】
(第1実施例)
(システムの構成)
図1に示されるように、通信システム2は、PC(プリンタ10の周辺装置)6と、プリンタ10と、を備える。PC6及びプリンタ10は、LAN4を介して、相互に通信可能である。
【0010】
(プリンタ10の構成)
プリンタ10は、操作部12と、表示部14と、印刷実行部16と、ネットワークインターフェイス18と、制御装置20と、を備える。上記の各部12〜20は、バス線(符号省略)に接続されている。操作部12は、複数のキーによって構成される。ユーザは、操作部12を操作することによって、様々な指示をプリンタ10に与えることができる。表示部14は、様々な情報を表示するためのディスプレイである。印刷実行部16は、インクジェット方式、レーザ方式等の印刷機構を備え、制御装置20からの指示に従って印刷を実行する。ネットワークインターフェイス18は、LAN4に接続されている。
【0011】
制御装置20は、複数個のプロセッサPR1,PR2と、メモリ30と、を備える。本実施例では、制御装置20は、2個のプロセッサPR1,PR2を備える。後述の第2実施例では、制御装置20は、3個のプロセッサPR1,PR2,PR3を備える。プロセッサPR1等の各プロセッサは、メモリ30に格納されているプログラム48に従って、様々な処理を実行する。各プロセッサは、並列的(同時的)に処理を実行可能である。
【0012】
メモリ30は、ROM、RAM、ハードディスク等によって構成される。メモリ30は、PR1用メモリ領域41と、PR2用メモリ領域42と、記憶領域46と、共用メモリ領域50と、を備える。PR1用メモリ領域41は、第1のプロセッサPR1のみによって利用されるメモリ領域である。PR2用メモリ領域42は、第2のプロセッサPR2のみによって利用されるメモリ領域である。なお、PR3用メモリ領域43は、後述の第2実施例の第3のプロセッサPR3のみによって利用されるメモリ領域である。記憶領域46は、プロセッサPR1等の各プロセッサによって実行されるプログラム48を格納している。
【0013】
共用メモリ領域50は、プロセッサPR1等の各プロセッサによって共用されるメモリ領域である。共用メモリ領域50は、共通処理ページカウンタ60(以下では「CPC(Common Process page Counter)60」と呼ぶ)と、共通設定データカウンタ62(以下では「CSC(Common Setting data Counter)62」と呼ぶ)と、設定コマンド処理フラグ64(以下では「SPF(Setting command Process Flag)64」と呼ぶ)と、設定データ52と、を格納している。
【0014】
CPC60は、図3のPDL(Page Description Language;ページ記述言語)処理の処理対象のページを示すカウンタである。CSC62は、どのページまでの設定データ(詳しくは後述する)が生成済みであるのかを示すカウンタである。SPF64は、いずれかのプロセッサPR1等が図4の設定コマンド処理を実行しているのか否かを示すフラグである。設定データ52は、プロセッサPR1等が後述の設定コマンドを実行することによって生成されるデータである。
【0015】
(PDLデータの構造)
PDLは、ページという概念を利用してデータを記述するためのあらゆる言語を含む概念である。PDLの例として、例えば、PDF(Portable Document Format)、PS(Post Script)等を挙げることができる。また、ワープロソフト、表計算ソフト、描画ソフト等で利用されている言語のうち、ページという概念を利用してデータを記述する言語も、PDLの一例である。
【0016】
ユーザは、PC6に格納されているアプリケーションを利用して、PDLデータを生成することができる。そして、ユーザは、PDLデータによって表わされる画像の印刷を望む場合に、PDLデータをプリンタ10に送信するための操作をPC6の操作部に加えることができる。この場合、PC6は、PDLデータをプリンタ10に送信する。
【0017】
図2には、複数ページ分のPDLデータの一例が示されている。1ページ目のPDLデータは、アルファベット「A」〜「E」を示す5行分のテキストデータを含む。1ページ目のPDLデータに含まれる1行目のテキストデータは、テキスト「A」を示す描画コマンドと、文字サイズ「10pt」を示す設定コマンドと、を含む。従って、プリンタ10は、1行目のテキストデータを読み込むことによって、文字サイズ「10pt」でテキスト「A」を記述すべきことを知ることができる。
【0018】
1ページ目のPDLデータに含まれる2行目のテキストデータは、テキスト「B」を示す描画コマンドを含む。ただし、2行目のテキストデータは、文字サイズを示す設定コマンドを含まない。この場合、プリンタ10は、直前の行(本例では1行目)と同じ文字サイズ「10pt」でテキスト「B」を記述すべきことを知ることができる。同様に、1ページ目のPDLデータに含まれる3行目のテキストデータは、テキスト「C」を示す描画コマンドを含むが、文字サイズを示す設定コマンドを含まない。この場合、プリンタ10は、文字サイズ「10pt」でテキスト「C」を記述すべきことを知ることができる。このように、同じ文字サイズが2行以上に亘って継続して利用される場合には、後ろの行には、文字サイズを示す設定コマンドが記述されないことがあり得る。
【0019】
同様に、プリンタ10は、1ページ目のPDLデータに含まれる4行目及び5行目のテキストデータを読み込むことによって、文字サイズ「20pt」でテキスト「D」、「E」を記述すべきことを知ることができる。
【0020】
2ページ目のPDLデータは、アルファベット「F」〜「G」を示す3行分のテキストデータを含む。2ページ目のPDLデータに含まれる1行目のテキストデータは、テキスト「F」を示す描画コマンドを含むが、文字サイズを示す設定コマンドを含まない。この場合、プリンタ10は、直前のページ(即ち1ページ目)のPDLデータの最後の行(即ち「E」)と同じ文字サイズ「20Pt」でテキスト「F」を記述すべきことを知ることができる。このように、同じ文字サイズが2ページ以上に亘って継続して利用される場合には、後ろのページには、文字サイズを示す設定コマンドが記述されないことがあり得る。
【0021】
同様に、プリンタ10は、2ページ目のPDLデータに含まれる2行目及び3行目のテキストデータを読み込むことによって、文字サイズ「20pt」でテキスト「G」を記述すべきこと、及び、文字サイズ「30pt」でテキスト「H」を記述すべきこと、を知ることができる。
【0022】
なお、描画コマンドは、テキスト形式のデータに限られず、ベクトル形式のデータであってもよいし、画像形式のデータ(即ち、JPEG等のビットマップデータ)であってもよい。また、設定コマンドは、文字サイズに限られず、文字の書体(即ち、Times New Roman等)であってもよいし、文字の装飾(即ち、太字、網掛け等)であってもよいし、文字の色であってもよいし、ページのサイズ(即ち、A4、B4等の印刷媒体のサイズ)であってもよい。
【0023】
また、後で詳しく説明するが、例えば、プロセッサPR1は、1ページ目のPDLデータを利用して、1ページ目の中間コードデータを生成し、次いで、1ページ目の中間コードデータを利用して、1ページ目のビットマップデータを生成する。そして、プロセッサPR1は、1ページ目のビットマップデータを印刷実行部16に供給する。これにより、印刷実行部16は、1ページ目のビットマップデータに基づいて、印刷を実行する。同様に、例えば、プロセッサPR2は、2ページ目のPDLデータから、2ページ目の中間コードデータを経て、2ページ目のビットマップデータを生成して、印刷実行部16に供給する。
【0024】
上述したように、本実施例では、プリンタ10は、PDLデータから、中間コードデータを経て、ビットマップデータを生成する。中間コードデータは、プリンタ10のベンダによって予め決められている中間言語で記述されたデータである。中間言語は、例えば、プリンタ10のベンダによって独自に開発された言語であってもよいし、公知の言語であってもよい。
【0025】
中間コードデータを利用せずに、PDLデータからビットマップデータを直接的に生成する手法(以下では「直接的な手法」と呼ぶ)が考えられる。直接的な手法では、複数種類のPDLデータ(例えば、PS(Post Script)、PDF(Portable Document Format等)に従った印刷を実現するためには、複数種類のPDLデータのそれぞれについて、当該種類のPDLデータからビットマップデータを直接的に生成するためのプログラムが必要である。この場合、多くのプログラムを格納可能な大容量のメモリをプリンタに搭載しなければならない。
【0026】
一方において、中間コードデータを利用する本実施例の構成では、複数種類のPDLデータのそれぞれについて、当該1種類のPDLデータから、共通の中間言語で記述された中間コードデータを生成するためのプログラムが必要である。そして、中間コードデータからビットマップデータを生成するためのプログラムが必要である。この構成によると、複数種類のPDLデータについて、中間コードデータからビットマップデータを生成するためのプログラムを共通化することができる。従って、複数種類のPDLデータからビットマップデータを生成するためのトータルのプログラム量は、直接的な手法と比べて、少なくて済む。
【0027】
(PDL処理;図3)
続いて、図3を参照しながら、各プロセッサPR1,PR2が実行するPDL処理について説明する。各プロセッサPR1,PR2は、PC6からPDLデータ(図2参照)を受信すると、PDL処理を並列的に実行する。即ち、プロセッサPR1がPDL処理を実行している間に、プロセッサPR2もPDL処理を実行可能である。以下では、プロセッサPR1を主体として各処理の内容を説明するが、プロセッサPR2も同様に処理を実行する。
【0028】
S10において、プロセッサPR1は、共用メモリ領域50からCPC60(共通処理ページカウンタ(図1参照))の値を読み込み、CPC60の値を処理ページ番号として決定する。なお、CPC60の初期値は「1」である。例えば、プロセッサPR1が「M」を処理ページ番号として決定するということは、プロセッサPR1がMページ目のPDLデータをS14〜S24の処理対象として決定することを意味する。
【0029】
次いで、S12において、プロセッサPR1は、S10で読み込まれたCPC60の値に「1」を加算して、新たなCPC60の値(例えば「2」)を算出する。そして、プロセッサPR1は、上記の新たなCPC60の値を共用メモリ領域50に書き込む。この結果、例えば、他のプロセッサPR2がS10の処理を実行する際に、上記の新たなCPC60の値(例えば「2」)を処理ページ番号として決定する。この例では、プロセッサPR2は、2ページ目のPDLデータをS14〜S24の処理対象として決定する。この説明から明らかなように、各プロセッサPR1,PR2は、複数ページ分のPDLデータのうちの1ページ目のPDLデータから昇順に、異なる1ページ分のPDLデータを利用して、S14〜S24の各処理を実行する。
【0030】
次いで、S14において、プロセッサPR1は、共用メモリ領域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ページ目までの設定データ)が生成済みであることを意味する。
【0031】
S16では、プロセッサPR1は、共用メモリ領域50からSPF64(設定コマンド処理フラグ(図1参照))の値を読み込み、SPF64の値が「1」であるのか否かを判断する。SPF64の値が「1」である場合(S16でYESの場合)には、S14に進み、SPF64の値が「0」である場合(S16でNOの場合)には、S18に進む。
【0032】
SPF64の値が「1」である場合(S16でYESの場合)には、他のプロセッサPR2が、S18の設定コマンド処理を実行している。このような状況では、プロセッサPR1は、S18の設定コマンド処理を実行せずにS14に戻り、この結果、他のプロセッサPR2の設定コマンド処理が終了するまで待機する。
【0033】
一方において、SPF64の値が「0」である場合(S16でNOの場合)には、他のプロセッサPR2が、S18の設定コマンド処理を実行していない。このような状況では、プロセッサPR1は、S18の設定コマンド処理を実行する。
【0034】
(設定コマンド処理;図4)
設定コマンド処理では、S40において、プロセッサPR1は、共用メモリ領域50内のSPF64の値を「0」から「1」に変更する。次いで、S42において、プロセッサPR1は、共用メモリ領域50からCSC62の値を読み込み、CSC62の値(例えば「1」)を自己設定データカウンタ(以下では「OSC(Own Setting data Counter)」と呼ぶ)の値として決定する。さらに、プロセッサPR1は、OSCの値(例えば「1」)をPR1用メモリ領域41内に書き込む。OSCは、現在の設定コマンド処理の処理対象のページ番号(例えば「1」)を示すカウンタである。
【0035】
次いで、S44において、プロセッサPR1は、共用メモリ領域50から設定データ52を読み込むことによって、設定データ52を取得する。後で説明するが、図4のS60又は図5のS98では、共用メモリ領域50に設定データ52が書き込まれる。例えば、S42で決定されたOSCの値が「N」である場合には、通常、共用メモリ領域50にN−1ページ目までの設定データ52が書き込まれている。従って、S44では、プロセッサPR1は、共用メモリ領域50からN−1ページ目までの設定データ52(例えば、文字サイズ「20pt」、文字の装飾「太字」、文字の色「黒」)を取得して、当該設定データ52をPR1用メモリ領域41に書き込む。なお、OSCの値(即ち「N」)が「1」である場合には、共用メモリ領域50に未だに設定データが書き込まれていない。この場合、プロセッサPR1は、S44をスキップする。
【0036】
次いで、S46において、プロセッサPR1は、S42で決定されたOSCの値が示す1ページ分のPDLデータを読み込む。プロセッサPR1は、1ページ分のPDLデータを読み込む過程で、1個のコマンドを読み込む毎に、S48以降の処理を実行する。なお、以下では、S48以降の処理の処理対象の1個のコマンドのことを「特定のコマンド」と呼ぶ。例えば、S46で読み込まれるPDLデータが、図2の1ページ目のPDLデータである場合には、プロセッサPR1は、まず、1行目のテキストデータに含まれる描画コマンドであるテキスト「A」を特定のコマンドとして、S48以降の処理を実行する。その後、プロセッサPR1は、1行目のテキストデータに含まれる設定コマンドである文字サイズ「10pt」を特定のコマンドとして、S48以降の処理を実行する。
【0037】
S48では、プロセッサPR1は、特定のコマンドがページの終了を示すコマンドであるのか否かを判断する。特定のコマンドがページの終了を示すコマンドである場合(S48でYESの場合)には、S58に進み、特定のコマンドがページの終了を示すコマンドでない場合(S48でNOの場合)には、S50に進む。
【0038】
S50では、プロセッサPR1は、特定のコマンドが設定コマンドであるのか否かを判断する。特定のコマンドが設定コマンドである場合(S50でYESの場合)には、S52に進む。特定のコマンドが設定コマンドでない場合(S50でNOの場合)には、S54に進む。
【0039】
S52では、プロセッサPR1は、設定コマンド(即ち特定のコマンド)を実行して、設定データを生成する。例えば、PC6から受信されたPDLデータが、特定の種類(例えばPS)のPDLで記述されたPDLデータである場合には、プロセッサPR1は、まず、当該特定の種類のPDLデータから中間コードデータを生成するためのプログラムを利用して、設定コマンドを記述しているプログラムコードを解析して、設定コマンドの内容(例えば文字サイズ「30pt」)を解釈する。次いで、プロセッサPR1は、解釈済みの内容に対応する設定データを、PR1用メモリ領域41内に生成する。
【0040】
例えば、図2の1ページ目のPDLデータが設定コマンド処理の処理対象である場合には、プロセッサPR1は、S46において、1行目のテキストデータに含まれる設定コマンド(文字サイズ「10pt」)を読み込むと、S52において、文字サイズ「10pt」に対応する設定データを、PR1用メモリ領域41内に生成する。その後、プロセッサPR1は、S46において、4行目のテキストデータに含まれる設定コマンド(文字サイズ「20pt」)を読み込むと、S52において、文字サイズ「10pt」に対応する設定データに代えて、文字サイズ「20pt」に対応する設定データを、PR1用メモリ領域41内に生成する。即ち、プロセッサPR1は、S52において、特定の設定の種類(上記の例では「文字サイズ」)に対応する新たな設定データを生成する際に、上記の特定の設定の種類に対応する古い設定データがPR1用メモリ領域41内に既に記憶されている場合には、古い設定データを消去して、新たな設定データをPR1用メモリ領域41内に記憶させる。ただし、この場合、プロセッサPR1は、PR1用メモリ領域41内の他の設定の種類に対応する設定データ(例えば、文字の装飾「太字」、文字の色「黒」)を変更しない。
【0041】
また、例えば、図2の2ページ目のPDLデータが設定コマンド処理の処理対象である場合には、プロセッサPR1は、S46において、3行目のテキストデータに含まれる設定コマンド(文字サイズ「30pt」)を読み込むと、S52において、文字サイズ「20pt」に対応する設定データに代えて、文字サイズ「30pt」に対応する設定データを、PR1用メモリ領域41内に生成する。このように、プロセッサPR1は、N−1ページ目までの設定データ(文字サイズ「20pt」)を用いて、Nページ目のPDLデータに含まれる設定コマンドを実行することができる。
【0042】
設定コマンドから設定データが生成されると、プロセッサ(PR1及び/又はPR2)は、後の処理において、設定コマンドの内容を利用すべき際に、設定コマンドを再び実行する必要がなく、設定データを読み出せば足りる。上述したように、プロセッサは、設定コマンドの内容を解釈するためには、特定の種類のPDLデータから中間コードデータを生成するためのプログラムを利用して、設定コマンドを記述しているプログラムコードを解析する必要があり、比較的に長時間を要する。これに対し、本実施例のように設定データを生成しておけば、プロセッサは、プログラムコードを解析する必要がなく、設定データを読み出せば、設定コマンドの内容を知ることができる。即ち、プロセッサは、後の処理において、設定コマンドの内容を比較的に短時間で取得することができる。
【0043】
一方において、S54では、プロセッサPR1は、特定のコマンドが描画コマンドであるのか否かを判断する。特定のコマンドが描画コマンドである場合(S54でYESの場合)には、S46に戻る。即ち、プロセッサPR1は、描画コマンドを実行しない。一方において、特定のコマンドが描画コマンドでない場合(S54でNOの場合)には、S56に進み、プロセッサPR1は、コマンドに応じた処理を実行する。S56を終えると、S46に戻る。
【0044】
また、S58では、プロセッサPR1は、共用メモリ領域50からCSC62の値を読み込む。そして、プロセッサPR1は、S42で決定されたOSCの値がCSC62の値以上であるのか否かを判断する。上述したように、S42では、OSCの値=CSC62の値と決定される。従って、S58では、通常、OSCの値がCSC62の値以上である(S58でYES)と判断され、S60に進む。ただし、プロセッサPR1がS46〜S56の処理を実行している過程で、他のプロセッサPR2が後述の図5のS100の処理を実行して、CSC62の値がインクリメントされる可能性がある。この場合、OSCの値がCSC62の値より小さい(S58でNO)と判断され、S60及びS62をスキップしてS64に進む。
【0045】
S60では、プロセッサPR1は、PR1用メモリ領域41内の設定データを、共用メモリ領域50に書き込む。例えば、文字サイズ「20Pt」に対応する設定データが共用メモリ領域50内に記憶されており、文字サイズ「30Pt」に対応する設定データがPR1用メモリ領域41内に記憶されている場合には、S60において、プロセッサPR1は、文字サイズ「20Pt」に対応する設定データに代えて、文字サイズ「30Pt」に対応する設定データを、共用メモリ領域50内に記憶させる。これにより、共用メモリ領域50内には、図4の設定コマンド処理の処理対象のページ(即ちCSC62の値が示すページ)までの設定データが記憶される。
【0046】
次いで、S62において、プロセッサPR1は、CSC62の値に「1」を加算して、新たなCSC62の値(例えば「2」)を算出する。そして、プロセッサPR1は、上記の新たなCSC62の値を共用メモリ領域50に書き込む。S62を終えると、S64において、プロセッサPR1は、共用メモリ領域50内のSPF64の値を「1」から「0」に変更する。これにより、設定コマンド処理が終了して、図3のS14に戻る。
【0047】
図3のS14において、処理ページ番号「M」がCSC62の値に等しい(S14でNO)、即ち、処理ページ番号「M」が示すページの1ページ前までの設定データ(即ちM−1ページ目までの設定データ)が生成済みである、と判断される場合には、S20において、プロセッサPR1は、両方コマンド処理を実行する。
【0048】
(両方コマンド処理;図5)
両方コマンド処理では、S80において、プロセッサPR1は、共用メモリ領域50から設定データを読み込むことによって、設定データを取得する。これにより、プロセッサPR1は、処理ページ番号「M」が示すページの1ページ前までの設定データ(即ちM−1ページ目までの設定データ)を取得することができる。例えば、処理ページ番号が「2」である場合には、プロセッサPR1は、図2の1ページ目のPDLデータまでの設定データ(即ち、文字サイズ「20Pt」)を取得することができる。プロセッサPR1は、共用メモリ領域50からM−1ページ目までの設定データを取得して、当該設定データをPR1用メモリ領域41に書き込む。これにより、プロセッサPR1は、PR1用メモリ領域41内のM−1ページ目までの設定データを用いて、両方コマンド処理(特に、S84〜S94の処理)を実行することができる。なお、処理ページ番号が「1」である場合には、共用メモリ領域50に未だに設定データが書き込まれていない。この場合、プロセッサPR1は、S80をスキップする。
【0049】
次いで、S82において、プロセッサPR1は、図3のS10で決定された処理ページ番号「M」が示す1ページ分のPDLデータを読み込む。プロセッサPR1は、1ページ分のPDLデータを読み込む過程で、1個のコマンドを読み込む毎に、S84以降の処理を実行する。S84〜S94の処理は、図4のS48〜S56の処理とほぼ同様である。ただし、上述したように、図4の設定コマンド処理では、特定のコマンドが描画コマンドである場合(図4のS54でYESの場合)には、プロセッサPR1は、描画コマンドを実行しない。これに対し、両方コマンド処理では、特定のコマンドが描画コマンドである場合(図5のS90でYESの場合)には、S92において、プロセッサPR1は、描画コマンドを実行して中間コードデータを生成する。なお、本実施例では、中間コードデータは、ベクタ形式のデータである。
【0050】
S92では、例えば、PC6から受信されたPDLデータが、特定の種類(例えばPS)の中間言語で記述されたPDLデータである場合には、プロセッサPR1は、まず、当該特定の種類のPDLデータから中間コードデータを生成するためのプログラムを利用して、描画コマンドを記述しているプログラムコードを解析して、描画コマンドの内容(例えば、テキスト「A」)を解釈する。次いで、プロセッサPR1は、PR1用メモリ領域41内のM−1ページ目までの設定データに従って、解釈済みの内容に対応する中間コードデータを、PR1用メモリ領域41内に生成する。
【0051】
例えば、図2の2ページ目のPDLデータが両方コマンド処理の処理対象である場合には、プロセッサPR1は、S82において、1行目のテキストデータに含まれる描画コマンド(テキスト「F」)を読み込むと、S92において、PR1用メモリ領域41内のM−1ページ目までの設定データ(文字サイズ「20pt」)に従って、文字サイズ「20pt」のテキスト「A」を示す中間コードデータを生成する。S92を終えると、S82に戻る。
【0052】
また、S84において、特定のコマンドがページの終了を示すコマンドである場合(S84でYESの場合)には、S96において、プロセッサPR1は、共用メモリ領域50からCSC62の値を読み込む。そして、プロセッサPR1は、図3のS10で決定された処理ページ番号「M」がCSC62の値以上であるのか否かを判断する。上述したように、図3のS14では、処理ページ番号「M」=CSC62の値と判断される(S14でNOと判断される)。従って、図5のS96では、通常、処理ページ番号「M」がCSC62の値以上である(S96でYES)と判断され、S98に進む。S98及びS100の処理は、図4のS62及びS64の処理と同様である。
【0053】
ただし、プロセッサPR1がS82〜S94の処理を実行している過程で、他のプロセッサPR2が図4のS62の処理を実行して、CSC62の値がインクリメントされる可能性がある。この場合、処理ページ番号がCSC62の値より小さい(S96でNO)と判断され、S98〜S100をスキップして両方コマンド処理を終了する。両方コマンド処理が終了すると、1ページ分の中間コードデータが完成する。この場合、図3のS22に進む。
【0054】
図3のS22では、プロセッサPR1は、中間コードデータからビットマップデータを生成するためのプログラムを利用して、S20の両方コマンド処理で生成されたベクタ形式の1ページ分の中間コードデータから、多階調(例えば256階調)の1ページ分のビットマップデータを生成する。
【0055】
S22では、プロセッサPR1は、さらに、1ページ分のビットマップデータを印刷実行部16に供給する。これにより、印刷実行部16は、1ページ分のビットマップデータに従って、1枚の印刷媒体に画像を印刷する。
【0056】
次いで、S24において、プロセッサPR1は、PC6から受信されたPDLデータに含まれる全てのページについて、S22の処理が終了したのか否かを判断する。ここでNOの場合にはS10に戻り、YESの場合にはPDL処理を終了する。
【0057】
上述したように、本実施例では、プロセッサPR1,PR2は、PDL処理を並列的に実行する過程で、共用メモリ領域50に記憶されている設定データ52を共用する。従って、例えば、プロセッサPR1は、プロセッサPR2によって生成された設定データを用いて、S18の設定コマンド処理及び/又はS20の両方コマンド処理を実行し得るし、プロセッサPR2は、プロセッサPR1によって生成された設定データを用いて、S18の設定コマンド処理及び/又はS20の両方コマンド処理を実行し得る。
【0058】
(比較例;図6の左側の図)
ところで、上記の本実施例の構成とは異なり、2個以上のプロセッサが設定データを共用しない構成(以下では「比較例の構成」と呼ぶ)が考えられる。図6の左側の図は、比較例の構成のプロセッサ101,102が実行する各処理の一例を示す。(P1)、(P2)等は、ページ番号を意味する。例えば、「(P1)設定コマンド処理」は、1ページ目のPDLデータを利用して、設定コマンド処理(図3のS18)を実行することを意味し、「(P1)両方コマンド処理」は、1ページ目のPDLデータを利用して、両方コマンド処理(図3のS20)を実行することを意味する。また、例えば、「(P1)BMP処理」は、1ページ目の中間コードデータから1ページ目のビットマップデータを生成して、印刷実行部16に供給するためのBMP処理(図3のS22)を実行することを意味する。
【0059】
なお、図6では、どの処理で生成された設定データをどの処理で利用するのかを破線の矢印で示す。例えば、図6の比較例の構成では、プロセッサ101は、(P1)両方コマンド処理を実行し、次いで、(P1)BMP処理を実行し、次いで、(P1)両方コマンド処理で生成された1ページ目までの設定データを用いて、(P2)設定コマンド処理を実行する。従って、(P1)両方コマンド処理から(P2)設定コマンド処理に向けて、破線の矢印が示されている。図6の比較例の構成から明らかなように、プロセッサ101は、プロセッサ102によって生成された設定データを利用せずに、プロセッサ101自身が生成した設定データを利用する。プロセッサ102も同様である。即ち、プロセッサ101,102は、設定データを共用しない。
【0060】
(本実施例;図6の右側の図)
図6の右側の図は、本実施例のプロセッサPR1,PR2が実行する各処理(図3のPDL処理)の一例を示す。なお、図6の右側の本実施例のおける個々の処理の所要時間(即ち図6の縦方向の長さ)は、図6の左側の比較例のおける対応する処理の所要時間に等しい。
【0061】
プロセッサPR1は、まず、図3のS10で処理ページ番号「M」として「1」を決定する。この場合、M=1及びCSC62の値=1(初期値)であるために、プロセッサPR1は、図3のS14でNOと判断する。従って、プロセッサPR1は、(P1)両方コマンド処理を実行し、次いで、(P1)BMP処理を実行する。
【0062】
プロセッサPR1が(P1)両方コマンド処理を実行している間に、プロセッサPR2は、図3のS10で処理ページ番号「M」として「2」を決定する。この場合、M=1及びCSC62の値=2であるために、プロセッサPR2は、図3のS14でYESと判断する。そして、プロセッサPR2は、設定コマンドが未だに実行されていない最小ページである1ページ目のPDLデータを用いて、(P1)設定コマンド処理を実行する。プロセッサPR2の(P1)設定コマンド処理は、描画コマンドが実行されないために、プロセッサPR1の(P1)両方コマンド処理よりも短時間で終了する。従って、プロセッサPR2は、(P1)設定コマンド処理の図4のS60において、1ページ目のPDLデータまでの設定データを、共用メモリ領域50に記憶させる。
【0063】
さらに、プロセッサPR2は、(P1)設定コマンド処理の図4のS62において、CSC62の値を「1」から「2」にインクリメントする。従って、(P1)設定コマンド処理を終えると、M=2及びCSC62の値=2であるために、プロセッサPR2は、図3のS14でNOと判断し、(P2)両方コマンド処理を実行する。この構成によると、プロセッサPR2は、2ページ目のPDLデータを利用した両方コマンド処理を実行する際に、プロセッサPR2自身によって生成された1ページ目までの設定データを利用することができる(図5のS80)。この場合、プロセッサPR2は、(P2)両方コマンド処理において、2ページ目のPDLデータまでの設定データを、共用メモリ領域50に記憶させる(図5のS98)。そして、プロセッサPR2は、(P2)両方コマンド処理の図5のS100において、CSC62の値を「2」から「3」にインクリメントする。
【0064】
プロセッサPR2が(P2)BMP処理を実行している間に、プロセッサPR1は、図3のS10で処理ページ番号「M」として「3」を決定する。この段階では、共用メモリ領域50には、(P2)までの設定データが記憶されており、CSC62の値=「3」である。従って、プロセッサPR1は、図3のS14でNOと判断し、(P3)両方コマンド処理を実行する。この際に、プロセッサPR1は、プロセッサPR2の(P2)両方コマンド処理で生成された2ページ目までの設定データを利用することができる(図5のS80)。従って、比較例の構成と比較すると、プロセッサPR1は、(P2)設定コマンド処理を実行せずに済む。
【0065】
同様に、プロセッサPR2は、(P6)両方コマンド処理を実行する際に、プロセッサPR1の(P5)設定コマンド処理で生成された5ページ目までの設定データを利用することができる(図5のS80)。従って、比較例の構成と比較すると、プロセッサPR2は、(P5)設定コマンド処理を実行せずに済む。
【0066】
(本実施例の効果)
本実施例では、各プロセッサPR1,PR2は、Mページ目のPDLデータを利用して、Mページ目の中間コードデータを生成すべき際に、以下の各処理を実行する。即ち、各プロセッサPR1,PR2は、M−1ページ目までの設定データが生成済みであるのか否かを判断する(図3のS14)。各プロセッサPR1,PR2は、M−1ページ目までの設定データが生成済みでないと判断する場合(S14でYESの場合)に、設定コマンドが未だに実行されていない最小ページであるNページ目(Nは1以上M−1以下の整数)のPDLデータを利用して、設定コマンド処理(図3のS18、図4参照)を実行する。設定コマンド処理では、描画コマンドが実行されないために、各プロセッサPR1,PR2は、Nページ目のPDLデータに含まれる設定コマンドを迅速に実行して、Nページ目までの設定データを迅速に生成することができる。
【0067】
一方において、各プロセッサPR1,PR2は、M−1ページ目までの設定データが生成済みであると判断する場合(S14でNOの場合)に、Nページ目のPDLデータを利用した設定コマンド処理を実行せずに、Mページ目のPDLデータを利用して、両方コマンド処理(図3のS20、図5参照)を実行する。Nページ目のPDLデータを利用した設定コマンド処理が実行されないために、プロセッサPR1,PR2のうちの一方が、Nページ目のPDLデータに含まれる設定コマンド処理を実行した後に、プロセッサPR1,PR2のうちの他方が、Nページ目のPDLデータに含まれる設定コマンドを再び実行することを抑制することができる。
【0068】
例えば、図6の右側の本実施例における図の例では、プロセッサPR1は、(P3)両方コマンド処理を実行する際に、プロセッサPR2の(P2)両方コマンド処理で生成された設定データを利用することができる。プロセッサPR2によって実行済みである設定コマンドを、プロセッサPR1が再び実行することを抑制することができる。なお、このケースでは、M=3であり、プロセッサPR1、プロセッサPR2が、それぞれ、「第1のプロセッサ」、「第2のプロセッサ」の一例である。
【0069】
また、例えば、プロセッサPR2は、(P6)両方コマンド処理を実行する際に、プロセッサPR1の(P5)両方コマンド処理で生成された設定データを利用することができる。プロセッサPR1によって実行済みである設定コマンドを、プロセッサPR2が再び実行することを抑制することができる。このケースでは、M=6であり、プロセッサPR2、プロセッサPR1が、それぞれ、「第1のプロセッサ」、「第2のプロセッサ」の一例である。
【0070】
また、例えば、プロセッサPR1は、(P4)設定コマンド処理を実行する際に、プロセッサPR2の(P3)設定コマンド処理で生成された設定データを利用することができる。このケースでは、N=4であり、プロセッサPR1、プロセッサPR2が、それぞれ、「第1のプロセッサ」、「第2のプロセッサ」の一例である。
【0071】
本実施例では、比較例の構成と比べて、各プロセッサPR1,PR2の処理負荷を低減することができる。さらに、比較例の構成と比べて、各プロセッサPR1,PR2は、PDL処理を迅速に実行して、ビットマップデータを印刷実行部16に迅速に供給することができる。この結果、印刷実行部16が印刷を迅速に実行することができるために、印刷済みの印刷媒体をユーザに迅速に提供することができる。
【0072】
(対応関係)
図3のPDL処理のS14〜S20が、「中間コード生成処理」の一例である。図3のS14の判断処理、図3のS18の設定コマンド処理、図3のS20の両方コマンド処理が、それぞれ、「判断処理」、「第1の生成処理」、「第2の生成処理」の一例である。また、図3のS14でYESの場合、NOの場合が、それぞれ、「第1の場合」、「第2の場合」の一例である。
【0073】
(第2実施例)
本実施例では、プロセッサPR1,PR2に加えて、プロセッサPR3が利用される点が、第1実施例とは異なる。メモリ30には、PR3用メモリ領域43がさらに設けられている。本実施例では、3個のプロセッサPR1,PR2,PR3が図3のPDL処理を並列的に実行する。PDL処理の内容は、第1実施例と同様である。
【0074】
(比較例及び本実施例の処理(ケースA)の一例)
図7の左側の図は、比較例の構成のプロセッサ201,202,203が実行する各処理の一例を示す。図7の右側の図は、本実施例のプロセッサPR1,PR2,PR3が実行する各処理(ケースA)の一例を示す。図7の符号((P1)、(P2)等)及び破線(さらには後述の図8の符号及び破線)は、図6の場合と同様である。なお、図7の右側の本実施例における各処理の所要時間(即ち図7の縦方向の長さ)は、図7の左側の比較例における対応する処理の所要時間に等しい。
【0075】
比較例の構成では、プロセッサ201,202,203が設定データを共用しない。従って、例えば、プロセッサ203が、3ページ目のPDLデータを利用して、中間コードデータを生成すべき際に、プロセッサ203は、(P1)設定コマンド処理及び(P2)設定コマンド処理を実行した後に、(P3)両方コマンド処理を実行する。
【0076】
これに対し、本実施例の構成では、プロセッサPR3が、3ページ目のPDLデータを利用して、中間コードデータを生成すべき際に、プロセッサPR2が、(P1)設定コマンド処理を実行しているために、SPF64の値が「1」に設定されている(図4のS40参照)。従って、プロセッサPR3は、図3のS16でYESと判断して、(P1)設定コマンド処理を実行せずに、プロセッサPR2の(P1)設定コマンド処理が終了するまで待機する。このために、プロセッサPR2及びプロセッサPR3が同じ設定コマンド処理を実行するのを抑制することができる。プロセッサPR3が(P1)設定コマンド処理を実行しないために、比較例の構成と比べて、プロセッサPR3の処理負荷を低減させることができる。なお、プロセッサPR3は、プロセッサPR2の(P1)設定コマンド処理が終了するまで待機している間に、例えば、PDL処理以外の処理を実行し得る。
【0077】
プロセッサPR2の(P1)設定コマンド処理において、プロセッサPR2は、1ページ目までの設定データを共用メモリ領域50に書き込み(図4のS60)、CSC62の値を「1」から「2」に変更し(S62)、SPF64の値を「1」から「0」に変更する(S64)。
【0078】
これを契機に、プロセッサPR3は、図3のS16でNOと判断して、(P2)設定コマンド処理を実行する。この際に、プロセッサPR3は、プロセッサPR2の(P1)設定コマンド処理で生成された1ページ目までの設定データを利用することができる(図4のS44)。プロセッサPR3の(P2)設定コマンド処理において、プロセッサPR3は、2ページ目までの設定データを共用メモリ領域50に書き込み(図4のS60)、CSC62の値を「2」から「3」に変更する(S62)。なお、このケースでは、N=2であり、プロセッサPR3、プロセッサPR2が、それぞれ、「第1のプロセッサ」、「第2のプロセッサ」の一例である。
【0079】
また、比較例の構成では、第1のプロセッサが、4ページ目のPDLデータを利用して、中間コードデータを生成すべき際に、第1のプロセッサは、(P2)設定コマンド処理及び(P3)設定コマンド処理を実行した後に、(P4)両方コマンド処理を実行する。
【0080】
これに対し、本実施例の構成では、プロセッサPR1が、4ページ目のPDLデータを利用して、中間コードデータを生成すべき際に、プロセッサPR3の(P2)設定コマンド処理で2ページ目までの設定データが生成済みであり、CSC62の値が「3」である。従って、プロセッサPR1は、(P2)設定コマンド処理を実行しない。プロセッサPR3によって実行済みである設定コマンドを、プロセッサPR1が再び実行することを抑制することができる。そして、プロセッサPR1は、(P3)設定コマンド処理を実行する。この際に、プロセッサPR1は、プロセッサPR3の(P2)設定コマンド処理で生成された2ページ目までの設定データを利用することができる(図4のS44)。なお、このケースでは、N=3であり、プロセッサPR1、プロセッサPR3が、それぞれ、「第1のプロセッサ」、「第2のプロセッサ」の一例である。
【0081】
同様に、本実施例の構成では、プロセッサPR2は、(P3)設定コマンド処理を実行せずに、プロセッサPR1の(P3)設定コマンド処理が終了するまで待機する。このために、プロセッサPR1及びプロセッサPR2が同じ設定コマンド処理を実行するのを抑制することができる。そして、プロセッサPR2は、(P4)設定コマンド処理を実行する。この際に、プロセッサPR2は、プロセッサPR1の(P3)設定コマンド処理で生成された3ページ目までの設定データを利用することができる(図4のS44)。なお、このケースでは、N=4であり、プロセッサPR2、プロセッサPR1が、それぞれ、「第1のプロセッサ」、「第2のプロセッサ」の一例である。
【0082】
同様に、本実施例の構成では、プロセッサPR3は、(P4)設定コマンド処理を実行せずに、プロセッサPR2の(P4)設定コマンド処理が終了するまで待機する。このために、プロセッサPR2及びプロセッサPR3が同じ設定コマンド処理を実行するのを抑制することができる。そして、プロセッサPR3は、(P5)設定コマンド処理を実行する。この際に、プロセッサPR3は、プロセッサPR2の(P4)設定コマンド処理で生成された4ページ目までの設定データを利用することができる(図4のS44)。なお、このケースでは、N=5であり、プロセッサPR3、プロセッサPR2が、それぞれ、「第1のプロセッサ」、「第2のプロセッサ」の一例である。
【0083】
(本実施例の処理(ケースB)の一例)
図8は、本実施例のプロセッサPR1,PR2,PR3が実行する各処理(ケースB)の一例を示す。ケースBでは、プロセッサPR1は、(P4)両方コマンド処理を実行する際に、プロセッサPR3の(P3)両方コマンド処理で生成された3ページ目までの設定データを利用することができる(図5のS80)。なお、このケースでは、プロセッサPR1、プロセッサPR3が、それぞれ、「第1のプロセッサ」、「第2のプロセッサ」の一例である。
【0084】
また、プロセッサPR2は、(P4)設定コマンド処理を実行する際に、プロセッサPR3の(P3)両方コマンド処理で生成された3ページ目までの設定データを利用することができる(図4のS44)。なお、このケースでは、N=4であり、プロセッサPR2、プロセッサPR3が、それぞれ、「第1のプロセッサ」、「第2のプロセッサ」の一例である。
【0085】
なお、図8のケースBでは、プロセッサPR2の(P2)両方コマンド処理において、2ページ目までの設定データが生成され、プロセッサPR3の(P2)設定コマンド処理において、同じ2ページ目までの設定データが生成される。この場合、プロセッサPR1は、前者の設定データと後者の設定データとのうち、先に生成された後者の設定データを用いて得られる3ページまでの設定データ(即ち、後者の設定データを利用したプロセッサPR1の(P3)設定コマンド処理で生成される3ページまでの設定データ)を用いて、(P4)両方コマンド処理を実行する。即ち、プロセッサPR2の両方コマンド処理において、Kページ目(Kは1以上M−1以下の整数;ケースBの例ではK=2)までの設定データが生成され、プロセッサPR3の設定コマンド処理において、Kページ目までの設定データが生成される場合には、プロセッサPR1は、先に生成されたKページ目までの設定データを用いて得られるM−1ページ目(ケースBの例ではM=4)までの設定データを用いて、両方コマンド処理を実行する。この構成によると、プロセッサPR2は、(P4)両方コマンド処理を実行する際に、プロセッサPR2又はプロセッサPR3によって生成された2ページ目までの設定データを用いて得られる3ページまでの設定データを利用することができる。なお、プロセッサPR1、プロセッサPR2、プロセッサPR3が、それぞれ、「第1のプロセッサ」、「第2のプロセッサ」、「第3のプロセッサ」の一例である。
【0086】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【0087】
(変形例1)上記の第1実施例では、プロセッサの数が2であり(即ちL=2であり)、上記の第2実施例では、プロセッサの数が3である(即ちL=3である)。これに代えて、プロセッサの数が4以上であってもよい。即ち、Lは、2以上の整数であればよい。
【0088】
(変形例2)上記の各実施例では、制御装置20は、プリンタ10に搭載されているが、FAXデータの印刷を実行するFAX装置に搭載されていてもよいし、印刷機能を備える多機能機に搭載されていてもよい。一般的に言うと、制御装置20は、印刷のための制御装置であればよい。
【0089】
(変形例3)上記の各実施例では、プリンタ10が、複数個のプロセッサPR1,PR2,PR3を備えており、各プロセッサPR1,PR2,PR3が、図3のPDL処理を並列的に実行する。これに代えて、PC6が、複数個のプロセッサを備えており、各プロセッサが、図3のPDL処理を並列的に実行してもよい。この場合、各プロセッサは、図3のS22の処理を実行する際に、ビットマップデータをプリンタ10に供給してもよい。本変形例では、PC6、プリンタ10が、それぞれ、「制御装置」、「印刷実行部」の一例である。
【0090】
(変形例4)上記の各実施例では、例えば、プロセッサPR1は、1ページ分の中間コードデータを生成した後に、当該1ページ分の中間コードデータから1ページ分のビットマップデータを生成して、当該1ページ分のビットマップデータを印刷実行部16に供給する(図3のS22)。即ち、中間コードデータを生成したプロセッサが、ビットマップデータを生成する生成処理と、ビットマップデータを印刷実行部16に供給する供給処理と、を実行する。これに代えて、中間コードデータを生成したプロセッサとは異なるプロセッサが、上記の生成処理及び/又は上記の供給処理を実行してもよい。
【0091】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【0092】
2:通信システム、10:プリンタ、20:制御装置、30:メモリ、50:共用メモリ領域、60:共通処理ページカウンタ(CPC)、62:共通設定データカウンタ(CSC)、64:設定コマンド処理フラグ(SPF)、PR1,PR2,PR3:プロセッサ

【特許請求の範囲】
【請求項1】
印刷のための制御装置であって、
複数ページ分のPDLデータのうちの1ページ目のPDLデータから昇順に、それぞれが異なる1ページ分のPDLデータを利用して1ページ分の中間コードデータを生成するための中間コード生成処理を、並列的に実行可能なL個(前記Lは2以上の整数)のプロセッサを備え、
前記L個のプロセッサのそれぞれは、
当該プロセッサによって実行される前記中間コード生成処理の処理対象であるMページ目(前記Mは2以上の整数)のPDLデータを利用して、前記Mページ目の前記中間コード生成処理を実行すべき際に、前記Mページ目の前記中間コード生成処理に含まれる以下の各処理、即ち、
前記L個のプロセッサのうちの少なくとも1個のプロセッサが、1ページ目のPDLデータからM−1ページ目のPDLデータまでのM−1ページ分のPDLデータに含まれる各設定コマンドを実行した結果として、前記M−1ページ目までの設定データが生成済みであるのか否かを判断する判断処理と、
前記判断処理において、前記M−1ページ目までの前記設定データが生成済みでないと判断する第1の場合に、設定コマンドが未だに実行されていない最小ページであるNページ目(前記Nは1以上前記M−1以下の整数)のPDLデータに含まれる描画コマンドを実行せずに、前記Nページ目の前記PDLデータに含まれる設定コマンドを実行して、前記Nページ目までの前記設定データを生成する第1の生成処理と、
前記判断処理において、前記M−1ページ目までの前記設定データが生成済みであると判断する第2の場合に、前記Nページ目の前記PDLデータを利用した前記第1の生成処理を実行せずに、前記M−1ページ目までの前記設定データを用いて、前記Mページ目の前記PDLデータに含まれる設定コマンド及び描画コマンドを実行して、前記Mページ目までの設定データと、前記Mページ目の中間コードデータと、を生成する第2の生成処理と、
を実行する制御装置。
【請求項2】
前記L個のプロセッサのうちの第1のプロセッサは、前記第2の場合に、前記L個のプロセッサのうちの第2のプロセッサであって、前記第1のプロセッサとは異なる前記第2のプロセッサが、前記M−1ページ目のPDLデータを利用した前記第2の生成処理を実行して生成した前記M−1ページ目までの前記設定データを用いて、前記Mページ目の前記PDLデータを利用した前記第2の生成処理を実行する、請求項1に記載の制御装置。
【請求項3】
前記Nは、2以上前記M−1以下の整数であり、
前記L個のプロセッサのうちの第1のプロセッサは、前記第1の場合に、前記L個のプロセッサのうちの第2のプロセッサであって、前記第1のプロセッサとは異なる前記第2のプロセッサが、N−1ページ目のPDLデータを利用した前記第1の生成処理を実行して生成した前記N−1ページ目までの設定データを用いて、前記Nページ目の前記PDLデータを利用した前記第1の生成処理を実行する、請求項1又は2に記載の制御装置。
【請求項4】
前記Nは、2以上前記M−1以下の整数であり、
前記L個のプロセッサのうちの第1のプロセッサは、前記第1の場合に、前記L個のプロセッサのうちの第2のプロセッサであって、前記第1のプロセッサとは異なる前記第2のプロセッサが、N−1ページ目のPDLデータを利用した前記第2の生成処理を実行して生成した前記N−1ページ目までの設定データを用いて、前記Nページ目の前記PDLデータを利用した前記第1の生成処理を実行する、請求項1又は2に記載の制御装置。
【請求項5】
前記L個のプロセッサのうちの第1のプロセッサは、前記第1の場合に、前記Nページ目の前記PDLデータを利用した前記第1の生成処理を実行した後に、当該第1の生成処理で生成された前記Nページ目までの前記設定データを用いて得られる前記M−1ページ目までの前記設定データを用いて、前記Mページ目の前記PDLデータを利用した前記第2の生成処理を実行する、請求項1から4のいずれか一項に記載の制御装置。
【請求項6】
前記L個のプロセッサのうちの第1のプロセッサは、前記第1の場合において、
前記L個のプロセッサのうち、前記第1のプロセッサ以外のL−1個のプロセッサのいずれも、前記Nページ目の前記PDLデータを利用した前記第1の生成処理を実行していない場合に、前記Nページ目の前記PDLデータを利用した前記第1の生成処理を実行し、
前記L−1個のプロセッサのうちの第2のプロセッサが、前記Nページ目の前記PDLデータを利用した前記第1の生成処理を実行している場合に、前記Nページ目の前記PDLデータを利用した前記第1の生成処理を実行せずに、前記第2のプロセッサによって生成された前記Nページ目までの前記設定データを用いて得られる前記M−1ページ目までの前記設定データを用いて、前記Mページ目の前記PDLデータを利用した前記第2の生成処理を実行する、請求項1から5のいずれか一項に記載の制御装置。
【請求項7】
前記制御装置は、さらに、前記L個のプロセッサによって共用されるメモリを備え、
前記L個のプロセッサのそれぞれは、
前記第1の場合において、前記第1の生成処理を実行して前記Nページ目までの前記設定データを生成した際に、前記Nページ目までの前記設定データが前記メモリに記憶されていない場合に、前記Nページ目までの前記設定データを前記メモリに記憶させ、
前記第2の場合において、前記第2の生成処理を実行して前記Mページ目までの前記設定データを生成した際に、前記Mページ目までの前記設定データが前記メモリに記憶されていない場合に、前記Mページ目までの前記設定データを前記メモリに記憶させ、
前記L個のプロセッサのそれぞれは、前記判断処理において、
前記M−1ページ目までの前記設定データが前記メモリに記憶されている場合に、前記M−1ページ目までの前記設定データが生成済みであると判断し、
前記M−1ページ目までの前記設定データが前記メモリに記憶されていない場合に、前記M−1ページ目までの前記設定データが生成済みでないと判断する、請求項1から6のいずれか一項に記載の制御装置。
【請求項8】
前記Lは、3以上の整数であり、
前記L個のプロセッサのうちの第1のプロセッサは、前記第2の場合に、
前記L個のプロセッサのうちの第2のプロセッサであって、前記第1のプロセッサとは異なる前記第2のプロセッサが、Kページ目(前記Kは1以上前記M−1以下の整数)のPDLデータを利用した前記第2の生成処理を実行して生成した前記Kページ目までの設定データと、
前記L個のプロセッサのうちの第3のプロセッサであって、前記第1及び第2のプロセッサとは異なる前記第3のプロセッサが、前記Kページ目のPDLデータを利用した前記第1の生成処理を実行して生成した前記Kページ目までの前記設定データと、
のうち、先に生成された前記Kページ目までの前記設定データを用いて得られる前記M−1ページ目までの前記設定データを用いて、前記Mページ目の前記PDLデータを利用した前記第2の生成処理を実行する、請求項1から7のいずれか一項に記載の制御装置。
【請求項9】
前記描画コマンドは、前記中間コードデータに記述されるべきテキストを指示するコマンドを含み、
前記設定コマンドは、前記テキストの文字サイズを指示するコマンドを含む、請求項1から8のいずれか一項に記載の制御装置。
【請求項10】
印刷のための制御装置のためのコンピュータプログラムであって、
前記制御装置は、L個(前記Lは2以上の整数)のプロセッサを備え、
前記コンピュータプログラムは、前記L個のプロセッサに、
複数ページ分のPDLデータのうちの1ページ目のPDLデータから昇順に、それぞれが異なる1ページ分のPDLデータを利用して1ページ分の中間コードデータを生成するための中間コード生成処理を、並列的に実行させ、
前記コンピュータプログラムは、さらに、前記L個のプロセッサのそれぞれに、
当該プロセッサによって実行される前記中間コード生成処理の処理対象であるMページ目(前記Mは2以上の整数)のPDLデータを利用して、前記Mページ目の前記中間コード生成処理を実行すべき際に、前記Mページ目の前記中間コード生成処理に含まれる以下の各処理、即ち、
前記L個のプロセッサのうちの少なくとも1個のプロセッサが、1ページ目のPDLデータからM−1ページ目のPDLデータまでのM−1ページ分のPDLデータに含まれる各設定コマンドを実行した結果として、前記M−1ページ目までの設定データが生成済みであるのか否かを判断する判断処理と、
前記判断処理において、前記M−1ページ目までの前記設定データが生成済みでないと判断する第1の場合に、設定コマンドが未だに実行されていない最小ページであるNページ目(前記Nは1以上前記M−1以下の整数)のPDLデータに含まれる描画コマンドを実行せずに、前記Nページ目の前記PDLデータに含まれる設定コマンドを実行して、前記Nページ目までの前記設定データを生成する第1の生成処理と、
前記判断処理において、前記M−1ページ目までの前記設定データが生成済みであると判断する第2の場合に、前記Nページ目の前記PDLデータを利用した前記第1の生成処理を実行せずに、前記M−1ページ目までの前記設定データを用いて、前記Mページ目の前記PDLデータに含まれる設定コマンド及び描画コマンドを実行して、前記Mページ目までの設定データと、前記Mページ目の中間コードデータと、を生成する第2の生成処理と、
を実行させる、コンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2013−71275(P2013−71275A)
【公開日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願番号】特願2011−210312(P2011−210312)
【出願日】平成23年9月27日(2011.9.27)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】