(57)【要約】【課題】  中間コードデータが過度に蓄積されるのを抑制すること。【解決手段】  第１処理部１２は、ＰＤＬデータに含まれる１ページ分のページデータ毎に、コード変換処理（Ｓ２〜Ｓ８，Ｓ１４，Ｓ１６）を実行することによって、１ページ分の中間コードデータを生成する。第２処理部１４は、１ページ分の中間コードデータ毎に、描画処理（Ｓ３２，Ｓ３４，Ｓ４０，Ｓ４２）を実行することによって、１ページ分の描画データを生成する。第１処理部１２及び第２処理部１４は、描画処理が未だ実行されていない処理待ち状態の中間コードデータのページ数ＢＣが「２」を超える場合に、処理待ち状態の３ページ目の中間コードデータに対する共同描画処理を実行する。【選択図】  図３
2010282336.tif 000002
【特許請求の範囲】
【請求項１】
印刷制御装置であって、
ページ記述言語で記述されたＰＤＬデータに含まれる１ページ分のページデータ毎に、コード変換処理を実行することによって、１ページ分の中間コードデータを生成する第１処理部と、
１ページ分の前記中間コードデータ毎に、描画処理を実行することによって、１ページ分の描画データを生成する第２処理部であって、前記コード変換処理を実行しない前記第２処理部と、
を備え、
前記描画処理が未だ実行されていない処理待ち状態の前記中間コードデータのページ数が所定数を超えない第１の場合には、
前記第１処理部は、前記コード変換処理が未だ実行されていない処理待ち状態の前記ページデータに対する前記コード変換処理を実行し、
前記第２処理部は、前記処理待ち状態の前記中間コードデータに対する前記描画処理を実行し、
前記処理待ち状態の前記中間コードデータの前記ページ数が前記所定数を超える第２の場合には、
前記第１処理部は、前記処理待ち状態の第１の特定ページの前記中間コードデータに対する前記描画処理の一部である第１の部分処理を実行し、
前記第２処理部は、前記処理待ち状態の前記第１の特定ページの前記中間コードデータに対する前記描画処理の一部である第２の部分処理を実行する、印刷制御装置。
【請求項２】
前記第１処理部が１ページ分の前記ページデータに対する前記コード変換処理を終了した結果、前記処理待ち状態の前記中間コードデータの前記ページ数が前記所定数を超えたときに、前記第２処理部が対象ページの前記中間コードデータに対する前記描画処理を実行している場合には、
前記第２処理部による前記対象ページの前記中間コードデータに対する前記描画処理が終了するまで、前記第１処理部は、前記第１の特定ページの前記中間コードデータに対する前記第１の部分処理を開始せず、
前記第２処理部による前記対象ページの前記中間コードデータに対する前記描画処理が終了した後に、前記第１処理部及び前記第２処理部は、前記第１の特定ページの前記中間コードデータに対する前記第１の部分処理及び前記第２の部分処理を開始する、請求項１に記載の印刷制御装置。
【請求項３】
前記第１処理部及び前記第２処理部は、前記第１の特定ページの前記中間コードデータに対する前記第１の部分処理及び前記第２の部分処理をほぼ同時に開始する、請求項１又は２に記載の印刷制御装置。
【請求項４】
前記第１処理部が前記ＰＤＬデータに含まれる最後のページの前記ページデータに対する前記コード変換処理を終了した後に、前記処理待ち状態の第２の特定ページの前記中間コードデータが存在する場合には、前記処理待ち状態の前記中間コードデータの前記ページ数が前記所定数を超えるのか否かに関わらず、前記第１処理部及び前記第２処理部は、前記第２の特定ページの前記中間コードデータに対する前記第１の部分処理及び前記第２の部分処理を実行する、請求項１から３のいずれか１項に記載の印刷制御装置。
【請求項５】
第１処理部と第２処理部とを備える印刷制御装置に処理を実行させるためのコンピュータプログラムであって、
前記第１処理部に、ページ記述言語で記述されたＰＤＬデータに含まれる１ページ分のページデータ毎に、コード変換処理を実行させることによって、１ページ分の中間コードデータを生成させ、
前記第２処理部に、前記コード変換処理を実行させずに、１ページ分の前記中間コードデータ毎に、描画処理を実行させることによって、１ページ分の描画データを生成させ、
前記描画処理が未だ実行されていない処理待ち状態の前記中間コードデータのページ数が所定数を超えない第１の場合には、
前記第１処理部に、前記コード変換処理が未だ実行されていない処理待ち状態の前記ページデータに対する前記コード変換処理を実行させ、
前記第２処理部に、前記処理待ち状態の前記中間コードデータに対する前記描画処理を実行させ、
前記処理待ち状態の前記中間コードデータの前記ページ数が前記所定数を超える第２の場合には、
前記第１処理部に、前記処理待ち状態の特定ページの前記中間コードデータに対する前記描画処理の一部である第１の部分処理を実行させ、
前記第２処理部に、前記処理待ち状態の前記特定ページの前記中間コードデータに対する前記描画処理の一部である第２の部分処理を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷に利用される描画データを生成する印刷制御装置に関する。
【背景技術】
【０００２】
例えば、特許文献１には、ＣＰＵを備える印刷制御装置が開示されている。ＣＰＵは、第１〜第４のプロセッサエレメントを有する。各プロセッサエレメントは、並列的（同時的）に処理を実行することができる。第１のプロセッサエレメントは、ページ記述言語（Page Description Language）で記述されたＰＤＬデータに含まれる１ページ分のページデータ毎に、コード変換処理を実行することによって、１ページ分の中間コードデータを生成する。第２〜第４のプロセッサエレメントは、１ページ分の中間コードデータ毎に、描画処理を共同して実行することによって、１ページ分の描画データを生成する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−８７１３７号公報
【特許文献２】特開２００７−１２５８５１号公報
【特許文献３】特開２００７−１５６６１３号公報
【特許文献４】特開２０００−２０３１０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の特許文献１の技術では、第２〜第４のプロセッサエレメントが実行する描画処理の進行状況に関わらず、第１のプロセッサエレメントは、処理待ち状態の各ページデータのコード変換処理を順次実行する。従って、第２〜第４のプロセッサエレメントによる描画処理に時間がかかると、処理待ち状態の多数のページの中間コードデータが蓄積され得る。しかしながら、従来では、描画処理の進行状況を考慮してコード変換処理を実行すること、換言すれば、処理待ち状態の中間コードデータが過度に蓄積されないように描画処理を実行することについて、充分に考慮されていなかった。
【０００５】
本明細書では、処理待ち状態の中間コードデータが過度に蓄積されないように適切に描画処理を実行する技術を開示する。
【課題を解決するための手段】
【０００６】
本明細書によって開示される印刷制御装置は、第１処理部と第２処理部とを備える。第１処理部は、ページ記述言語で記述されたＰＤＬデータに含まれる１ページ分のページデータ毎に、コード変換処理を実行することによって、１ページ分の中間コードデータを生成する。第２処理部は、１ページ分の中間コードデータ毎に、描画処理を実行することによって、１ページ分の描画データを生成する。第２処理部は、コード変換処理を実行しない。なお、上記の「ページ記述言語」という用語は、ページという概念を利用してデータを記述するためのあらゆる言語を含む概念である。ページ記述言語の例として、例えば、ＰＤＦ（Portable Document Format）、ＰＳ（Post Script）等を挙げることができる。また、ワープロソフト、表計算ソフト、描画ソフト等で利用されている言語のうち、ページという概念を利用してデータを記述する言語も、ページ記述言語と呼ぶことができる。上記の「中間コードデータ」は、例えば、中間言語で記述された中間コードデータと言い換えることができる。また、上記の「描画データ」は、例えば、ビットマップ形式の描画データと言い換えることができる。
【０００７】
描画処理が未だ実行されていない処理待ち状態の中間コードデータのページ数が所定数を超えない第１の場合には、第１処理部は、コード変換処理が未だ実行されていない処理待ち状態のページデータに対するコード変換処理を実行し、第２処理部は、処理待ち状態の中間コードデータに対する描画処理を実行する。なお、上記の「所定数」は、例えば、予め決められた数（例えば１以上の所定数）と言い換えてもよい。
【０００８】
処理待ち状態の中間コードデータのページ数が上記の所定数を超える第２の場合には、第１処理部は、処理待ち状態の第１の特定ページの中間コードデータに対する描画処理の一部である第１の部分処理を実行し、第２処理部は、処理待ち状態の上記の第１の特定ページの中間コードデータに対する描画処理の一部である第２の部分処理を実行する。なお、上記の「第２の場合には、第１処理部は、・・・第１の部分処理を実行し、第２処理部は、・・・第２の部分処理を実行する」という文章は、例えば、「第２の場合には、第１処理部と第２処理部とが共同して、処理待ち状態の第１の特定ページの中間コードデータに対する描画処理を実行する」と言い換えてもよい。また、上記の文章は、例えば、「第２の場合には、第１処理部は、処理待ち状態の中間コードデータのうちの第１部分に対する描画処理を実行し、第２処理部は、処理待ち状態の中間コードデータのうちの第１部分以外の第２部分に対する描画処理を実行する」と言い換えてもよい。
【０００９】
上記の印刷制御装置によると、処理待ち状態の中間コードデータのページ数が少ない上記の第１の場合には、第１処理部は、コード変換処理を実行する。一方において、処理待ち状態の中間コードデータのページ数が多い上記の第２の場合には、第１処理部は、コード変換処理を実行する代わりに、第２処理部と共同して描画処理を実行する。このために、処理待ち状態の中間コードデータが過度に蓄積されないように適切に描画処理を実行することができる。これにより、例えば、処理待ち状態の中間コードデータを記憶するためのメモリ容量を低減させることができる。
【００１０】
第１処理部が１ページ分のページデータに対するコード変換処理を終了した結果、処理待ち状態の中間コードデータのページ数が上記の所定数を超えたときに、第２処理部が対象ページの中間コードデータに対する描画処理を実行している場合（以下では特定の場合と呼ぶ）がある。上記の特定の場合に、第２処理部が対象ページの中間コードデータに対する描画処理を終了する前に、第１処理部は、上記の第１の特定ページの中間コードデータに対する第１の部分処理を開始してもよい。しかしながら、この構成の場合、第２処理部によって上記の対象ページの中間コードデータから生成される描画データと、第１処理部によって上記の対象ページと異なる第１の特定ページの中間コードデータから生成される描画データ（即ち第１の部分処理によって第１の特定ページの中間コードデータから生成される１ページ分の描画データの一部）と、を同時的に蓄積する必要があることから、多くのメモリ容量が必要になる。描画データを記憶するためのメモリ容量を低減させるために、以下の構成を採用してもよい。
【００１１】
即ち、上記の特定の場合に、第２処理部による上記の対象ページの中間コードデータに対する描画処理が終了するまで、第１処理部は、上記の第１の特定ページの中間コードデータに対する第１の部分処理を開始しなくてもよい。第２処理部による上記の対象ページの中間コードデータに対する描画処理が終了した後に、第１処理部及び第２処理部は、上記の第１の特定ページの中間コードデータに対する第１の部分処理及び第２の部分処理を開始してもよい。この構成によると、上記の対象ページの中間コードデータから生成される描画データと、上記の第１の特定ページの中間コードデータから生成される描画データと、を同時的に蓄積する必要がない。このために、描画データを記憶するためのメモリ容量を低減させることができる。
【００１２】
第１処理部及び第２処理部は、上記の第１の特定ページの中間コードデータに対する第１の部分処理及び第２の部分処理をほぼ同時に開始してもよい。一方において、第１処理部及び第２処理部は、上記の第１の特定ページの中間コードデータに対する第１の部分処理及び第２の部分処理を異なるタイミングで開始してもよい。
【００１３】
第１処理部がＰＤＬデータに含まれる最後のページのページデータに対するコード変換処理を終了した後に、処理待ち状態の第２の特定ページの中間コードデータが存在する場合には、処理待ち状態の中間コードデータのページ数が上記の所定数を超えるのか否かに関わらず、第１処理部及び第２処理部は、上記の第２の特定ページの中間コードデータに対する第１の部分処理及び第２の部分処理を実行してもよい。この構成によると、コード変換処理が実行されるべき処理待ち状態のページデータが存在しない場合に、第１処理部は、第２処理部と共同して、上記の第２の特定ページの中間コードデータに対する描画処理を実行することができる。第２処理部のみが上記の第２の特定ページの中間コードデータに対する描画処理を実行する構成と比べると、描画処理を高速で行なうことができる。
【００１４】
なお、上記の印刷制御装置を実現するための制御方法、及び、コンピュータプログラムも新規で有用である。
【図面の簡単な説明】
【００１５】
【図１】通信システムの構成の一例を示す。
【図２】データが変換される様子の一例を示す。
【図３】第１処理部と第２処理部とが実行する処理の一例のタイムチャートを示す。
【図４】第１処理部が実行する処理のフローチャートを示す。
【図５】図４の続きのフローチャートを示す。
【図６】第２処理部が実行する処理のフローチャートを示す。
【図７】図６の続きのフローチャートを示す。
【発明を実施するための形態】
【００１６】
ここでは、以下の実施例に記載の技術の一部を列挙しておく。
（形態１）印刷制御装置は、ＰＤＬデータを記憶する第１の記憶部をさらに備えていてもよい。第１処理部は、ＰＤＬデータに含まれる１ページ分のページデータに対するコード変換処理が終了する毎に、当該１ページ分のページデータを第１の記憶部から削除してもよい。
【００１７】
（形態２）印刷制御装置は、コード変換処理で生成される中間コードデータを記憶する第２の記憶部をさらに備えていてもよい。第２の記憶部は、複数ページ分の中間コードデータを記憶可能である。第２処理部は、１ページ分の中間コードデータに対する描画処理が終了する毎に、当該１ページ分の中間コードデータを第２の記憶部から削除してもよい。
【００１８】
（形態３）印刷制御装置は、描画処理で生成される多諧調（例えば２５６階調）のビットマップ形式の描画データを記憶する第３の記憶部と、少階調（例えば２階調）のビットマップ形式の印刷データを記憶するページメモリと、をさらに備えていてもよい。第２処理部は、第３の記憶部に記憶される１ページ分の描画データ毎に、当該描画データを利用して１ページ分の印刷データをページメモリに書き込む特定の処理を実行してもよい。第２処理部は、上記の特定の処理が終了する毎に、当該特定の処理で利用された描画データを第３の記憶部から削除してもよい。
【００１９】
（形態４）第１処理部による上記の第１の特定ページの中間コードデータに対する第１の部分処理が終了する第１のタイミングよりも、第２処理部による上記の第１の特定ページの中間コードデータに対する第２の部分処理が終了する第２のタイミングの方が早い場合に、第１処理部による上記の第１の特定ページの中間コードデータに対する第１の部分処理が終了するまで、第２処理部は、処理待ち状態の別のページの中間コードデータに対する描画処理を開始せずに待機してもよい。この場合、第２処理部は、第１処理部による上記の第１の特定ページの中間コードデータに対する第１の部分処理が終了した後に、上記の別のページの中間コードデータに対する描画処理を開始してもよい。この構成によると、上記の第１の特定ページの中間コードデータから生成される描画データと、上記の別のページの中間コードデータから生成される描画データと、を同時的に蓄積する必要がない。このために、描画データを記憶するためのメモリ容量を低減させることができる。
【００２０】
（形態５）上記の第２のタイミングよりも、上記の第１のタイミングの方が早い場合に、第２処理部による上記の第１の特定ページの中間コードデータに対する第２の部分処理が終了するのを待たずに、第１処理部は、処理待ち状態のページデータに対するコード変換処理を開始してもよい。この構成によると、第１処理部は、中間コードデータを迅速に生成することができる。
【実施例】
【００２１】
（システムの構成）
図面を参照して実施例を説明する。図１は、本実施例の通信システム２の概略図を示す。通信システム２は、プリンタ１０と外部装置７０とを備える。プリンタ１０と外部装置７０とは、相互に通信可能である。外部装置７０は、プリンタ１０と別体に構成されているデバイスであって、例えば、ＰＣ、ＰＤＡ、サーバ、テレビ、他のプリンタ等である。
【００２２】
（プリンタ１０の構成）
プリンタ１０の構成について詳しく説明する。プリンタ１０は、デュアルコアプロセッサ１１と、記憶部１６と、印刷部５０と、ネットワークインターフェイス６０と、を備える。デュアルコアプロセッサ１１は、第１処理部（第１プロセッサコア）１２と第２処理部（第２プロセッサコア）１４とを備える。ネットワークインターフェイス６０は、図示省略のＬＡＮに接続されている。プリンタ１０は、ネットワークインターフェイス６０とＬＡＮを介して、外部装置７０と通信可能である。第１処理部１２と第２処理部１４とは、並列的（同時的）に処理を実行することができる。図２を参照しながら、第１処理部１２及び第２処理部１４がＰＤＬデータから中間コードデータを経て描画データを生成する手法について、簡単に説明しておく。
【００２３】
外部装置７０からプリンタ１０にＰＤＬデータ２０（図１参照）が送信される。ＰＤＬデータ２０は、ページ記述言語（ＰＳ、ＰＤＦ等）で記述されたデータである。ＰＤＬデータ２０は、複数ページ分のページデータ２０−１〜２０−Ｎを含み得る。ただし、ＰＤＬデータ２０は、１ページ分のページデータのみによって構成されることもあり得る。第１処理部１２は、１ページ分のページデータ２０−１等毎に、当該ページデータに対するコード変換処理を実行することによって、１ページ分の中間コードデータ２４−１等を生成する。中間コードデータ２４−１等は、プリンタ１０のベンダによって採用された中間言語で記述されたデータである。なお、本実施例では、第２処理部１４がコード変換処理を実行することはない。
【００２４】
第２処理部１４は、１ページ分の中間コードデータ２４−１等毎に、当該１ページ分の中間コードデータに対する描画処理を実行することによって、１ページ分の描画データ２８−１等を生成する。描画データ２８−１等は、多諧調（例えば２５６階調）のビットマップ形式のデータである。第２処理部１４は、１ページ分の描画データ２８−１等を、後述するページメモリ２９に書き込む。この過程において、多諧調のビットマップ形式の描画データ２８−１等が、少階調（例えば２階調）のビットマップ形式の印刷データ２９（図２では図示省略しているが図１に示されている）に変換される。後述する印刷部５０は、１ページ分の描画データ２８−１等毎に、当該１ページ分の描画データ２８−１等から生成される印刷データ２９（図１参照）に従って印刷処理を実行することによって、当該１ページ分の描画データが表す画像が形成された１ページ分の印刷媒体８０−１等を生成する。
【００２５】
なお、本実施例では、後述する所定の条件を満たした場合に、第１処理部１２と第２処理部１４とが共同して、１ページ分の中間コードデータ２４−１等に対する描画処理を実行する。即ち、第１処理部１２が処理待ち状態の特定ページの中間コードデータに対する描画処理の一部を実行し、それと同時に、第２処理部１４が上記の特定ページの中間コードデータに対する描画処理の一部を実行する。以下では、第１処理部１２と第２処理部１４とが共同して実行する描画処理のことを「共同描画処理」と呼ぶ。これに対し、第２処理部１４が１ページ分の中間コードデータ２４−１等の全部に対して実行する描画処理のことを「通常描画処理」と呼ぶ。
【００２６】
上記の共同描画処理は、より具体的には、以下のように表現することができる。ここでは、上記の特定ページの中間コードデータから生成される１ページ分の描画データのことを「特定ページの描画データ」と呼ぶ。特定ページの描画データは、印刷部５０によって印刷される。印刷部５０は、印刷媒体を搬送しながら、その印刷媒体の搬送方向における前端から後端に向かう順で、特定ページの描画データに含まれる各部分を印刷する。印刷媒体の前端と後端との間の中間位置において、印刷媒体を前半部分と後半部分とに分けた場合に、特定ページの描画データのうち、印刷媒体の前半部分に印刷されるべき部分のことを、「特定ページの描画データの前半部分」と呼ぶ。また、特定ページの描画データのうち、印刷媒体の後半部分に印刷されるべき部分を、「特定ページの描画データの後半部分」と呼ぶ。また、特定ページの中間コードデータのうち、特定ページの描画データの前半部分を生成するために必要な部分のことを、「特定ページの中間コードデータの前半部分」と呼ぶ。また、特定ページの中間コードデータのうち、特定ページの描画データの後半部分を生成するために必要な部分のことを、「特定ページの中間コードデータの後半部分」と呼ぶ。共同描画処理では、第１処理部１２は、特定ページの中間コードデータの後半部分から、特定ページの描画データの後半部分を生成する。また、共同描画処理では、第２処理部１４は、特定ページの中間コードデータの前半部分から、特定ページの描画データの前半部分を生成する。
【００２７】
図１に示される記憶部１６は、バッファ領域１８と、中間コード記憶領域２２と、描画データ記憶領域２６と、プログラム記憶領域３０と、処理情報記憶領域３８と、その他の記憶領域４０と、を備える。バッファ領域１８は、ＰＤＬデータ２０を記憶する。上述したように、ＰＤＬデータ２０は、複数ページ分のページデータ２０−１〜２０−Ｎ（図２参照）を含む場合がある。この場合、バッファ領域１８は、複数ページ分のページデータ２０−１〜２０−Ｎを同時に記憶する。中間コード記憶領域２２は、ＰＤＬデータ２０に含まれる１ページ分のページデータ２０−１等から１ページ分の中間コードデータ２４−１等が生成された場合に、その１ページ分の中間コードデータ２４−１等を記憶する。中間コード記憶領域２２は、複数ページ分の中間コードデータ２４−１等を同時に記憶可能である。描画データ記憶領域２６は、１ページ分の中間コードデータ２４−１等から１ページ分の描画データ２８−１等が生成された場合に、その１ページ分の描画データ２８−１等を記憶する。描画データ記憶領域２６は、中間コード記憶領域２２と異なり、１ページ分の描画データ２８−１等のみを記憶可能である。
【００２８】
プログラム記憶領域３０は、第１処理部用メインプログラム３１と、第２処理部用メインプログラム３２と、コード変換処理用プログラム３３と、描画処理用プログラム３４と、その他のプログラム３５と、を記憶する。第１処理部用メインプログラム３１は、第１処理部１２が後述する図４及び図５に示される各処理を実行するためのプログラムである。第２処理部用メインプログラム３２は、第２処理部１４が後述する図６及び図７に示される各処理を実行するためのプログラムである。
【００２９】
コード変換処理用プログラム３３は、第１処理部１２がページデータ２０−１等から中間コードデータ２４−１等を生成するコード変換処理を実行するためのプログラムである。即ち、コード変換処理用プログラム３３は、第１処理部１２が図４のＳ１０４の処理を実行するためのプログラムである。コード変換処理用プログラム３３は、複数種類のＰＤＬ（例えばＰＳ、ＰＤＦ等）のそれぞれについて、当該種類のＰＤＬで記述されたページデータから、中間言語で記述された中間コードデータを生成するためのプログラムを含んでいる。コード変換処理用プログラム３３は、例えば、第１種類のＰＤＬであるＰ１で記述されたページデータから中間コードデータを生成するためのプログラムと、第２種類のＰＤＬであるＰ２で記述されたページデータから中間コードデータを生成するためのプログラムと、を含む。コード変換処理用プログラム３３を用いると、いずれの種類のＰＤＬで記述されたページデータであっても、同じ中間言語で記述された中間コードデータに変換することができる。
【００３０】
描画処理用プログラム３４は、第１処理部１２及び第２処理部１４が中間コードデータ２４−１等から描画データ２８−１等を生成する描画処理を実行するためのプログラムである。即ち、描画処理用プログラム３４は、第１処理部１２が図４のＳ１１６及び図５のＳ１３８の処理を実行するためのプログラムである。また、描画処理用プログラム３４は、第２処理部１４が図６のＳ２０４及びＳ２０８の処理を実行するためのプログラムである。プログラム３５は、上記の各プログラム３１〜３４以外のプログラムである。プログラム３５は、例えば、外部装置７０と通信するためのプログラム、印刷部５０を制御するためのプログラム等を含む。
【００３１】
処理情報記憶領域３８は、ＰＤＬデータ２０から中間コードデータ２４−１等を経て描画データ２８−１等を生成する過程で使用される様々な情報ＰＮ，ＣＮ，ＴＮ，ＢＣ，ＨＳＦ，ＨＥＦを記憶する。ＰＮは、ＰＤＬデータ２０の全ページ数である。即ち、ＰＮは、ＰＤＬデータ２０に含まれるページデータ２０−１〜２０−Ｎの個数である。ＣＮは、コード変換処理の処理対象のページデータ２０−１等のページ番号である。ＴＮは、描画処理（通常描画処理と共同描画処理の両方を含む）の処理対象の中間コードデータ２４−１等のページ番号である。ＢＣは、描画処理が実行されるべき処理待ち状態の中間コードデータ２４−１等のページ数である。即ち、ＢＣは、処理待ち状態の中間コードデータ２４−１等の個数である。例えば、１ページ目の中間コードデータ２４−１と２ページ目の中間コードデータ２４−２とが処理待ち状態である場合、ＢＣは「２」である。ＢＣは、ＣＮからＴＮを減算した値と言い換えることもできる。
【００３２】
ＨＳＦは、第１フラグであり、「１」と「０」のどちらかの値に設定される。第１フラグＨＳＦは、共同描画処理を実行すべきことを第１処理部１２が決定した場合に、そのように決定されたことを第２処理部１４に知らせるためのフラグである。また、第１フラグＨＳＦは、以下のように表現することもできる。即ち、第１フラグＨＳＦは、ＴＮで示されるページの中間コードデータに対する通常描画処理を第２処理部１４が実行している間に、ＴＮ＋１で示されるページの中間コードデータに対する共同描画処理を実行すべきことを第１処理部１２が決定した場合に、第２処理部１４が上記の通常描画処理を終了するまで、上記の共同描画処理を開始しないように、第１処理部１２を待機させるためのフラグである。
【００３３】
ＨＥＦは、第２フラグであり、「１」と「０」のどちらかの値に設定される。第２フラグＨＥＦは、第１処理部１２の共同描画処理が終了したことを第２処理部１４に知らせるためのフラグである。また、第２フラグＨＥＦは、以下のように表現することもできる。即ち、第２フラグＨＥＦは、ＴＮで示されるページの中間コードデータに対する共同描画処理を第１処理部１２と第２処理部１４とが実行し、第１処理部１２よりも先に第２処理部１４が上記の共同描画処理を終了した場合に、第１処理部１２が上記の共同描画処理を終了するまで、ＴＮ＋１で示されるページの中間コードデータに対する通常描画処理を開始しないように、第２処理部１４を待機させるためのフラグである。
【００３４】
印刷部５０は、ページメモリ５２と印刷機構５４とを備える。ページメモリ５２は、１ページ分の印刷データ２９を記憶するためのメモリである。印刷データ２９は、例えば２階調（ドットのＯＮ／ＯＦＦ）のような少階調のビットマップ形式のデータである。上記の通常描画処理又は共同描画処理によって生成された１ページ分の描画データ２８−１等（多諧調のビットマップ形式のデータ）は、まず、記憶部１６の描画データ記憶領域２６に記憶される。１ページ分の描画データ２８−１等は、描画データ記憶領域２６から印刷部５０に出力される。これにより、多諧調の１ページ分の描画データ２８−１等に対応する少階調の１ページ分の印刷データ２９が、ページメモリ５２に書き込まれる。印刷機構５４は、インクジェット方式又はレーザ方式の印刷機構である。本実施例では、印刷機構５４は、デュアルコアプロセッサ１１（第１処理部１２と第２処理部１４との少なくとも一方）によって制御される。ただし、印刷部５０がデュアルコアプロセッサ１１以外の独自のプロセッサを備えており、そのプロセッサが印刷機構５４を制御してもよい。
【００３５】
（第１処理部１２と第２処理部１４とが実行する処理の一例）
図３は、第１処理部１２と第２処理部１４とが実行する処理の一例のタイムチャートを示す。図３の例では、ＰＤＬデータ２０は、６ページ分のページデータ２０−１等を含んでいる。第１処理部１２は、１ページ目から６ページ目まで昇順にコード変換処理を実行する。コード変換処理の処理対象のページ番号を示すＣＮが「１」である場合、第１処理部１２は、１ページ目のページデータ２０−１に対するコード変換処理を開始する（Ｓ２）。これにより、１ページ目の中間コードデータ２４−１が生成される。Ｓ２のコード変換処理が終了すると、ＣＮが「２」になる。
【００３６】
ＣＮが「２」になると、第１処理部１２は、２ページ目のページデータ２０−２に対するコード変換処理を開始する（Ｓ４）。これにより、２ページ目の中間コードデータ２４−２が生成される。Ｓ４のコード変換処理が終了すると、ＣＮが「３」になり、第１処理部１２は、３ページ目のページデータに対するコード変換処理を開始する（Ｓ６）。Ｓ６のコード変換処理が終了すると、ＣＮが「４」になり、第１処理部１２は、４ページ目のページデータに対するコード変換処理を開始する（Ｓ８）。
【００３７】
第１処理部１２がＳ２の処理を実行している間は、描画処理が実行されるべき処理待ち状態の中間コードデータがまだ存在しない（即ちＢＣが「０」である）。従って、第２処理部１４は、描画処理の処理対象のページ番号を示すＴＮが「１」であっても、第１処理部１２がＳ２の処理を実行している間は、描画処理を開始せずに待機する（Ｓ３０）。第１処理部１２がＳ２のコード変換処理を終了すると、第２処理部１４は、１ページ目の中間コードデータ２４−１に対する通常描画処理を開始する（Ｓ３２）。これにより、１ページ目の描画データ２８−１が生成される。Ｓ３２の通常描画処理が終了すると、ＴＮが「２」になり、第２処理部１４は、２ページ目の中間コードデータ２４−２に対する通常描画処理を開始する（Ｓ３４）。これにより、２ページ目の描画データ２８−２が生成される。Ｓ３４の通常描画処理が終了すると、ＴＮが「３」になる。
【００３８】
第１処理部１２がＳ２のコード変換処理を実行している間（第２処理部１４がＳ３０で待機している間）は、処理待ち状態の中間コードデータのページ数を示すＢＣは、「０」である。ＢＣは、コード変換処理が終了する毎に増加する（「１」がプラスされる）。また、ＢＣは、通常描画処理又は共同描画処理が終了する毎に減少する（「１」がマイナスされる）。本実施例では、ＢＣが「２」を超えない値である場合（即ち「２」以下の値である場合）、第１処理部１２は、処理待ち状態のページデータ２０−１等に対するコード変換処理を実行する。また、ＢＣが「２」を超えない値である場合、第２処理部１４は、処理待ち状態の中間コードデータ２４−１等に対する通常描画処理を実行する。一方において、ＢＣが「２」を超える値になると（即ち「３」以上の値になると）、第１処理部１２と第２処理部１４とが共同描画処理を実行する。図３の例では、第１処理部１２がＳ８のコード変換処理を終了すると、ＢＣが「３」になる。この結果、第１処理部１２と第２処理部１４とが共同描画処理を実行する。この共同描画処理について、次に詳しく説明する。
【００３９】
第１処理部１２がＳ８のコード変換処理を終了したタイミングＴ１において、第２処理部１４は、Ｓ３４の通常描画処理を実行している。この場合、第１処理部１２は、コード変換処理を開始せずに待機する（Ｓ１０）。即ち、Ｓ８のコード変換処理が終了してＣＮが「５」になっても、第１処理部１２は、５ページ目のページデータに対するコード変換処理を実行しない。第１処理部１２は、第２処理部１４がＳ３４の通常描画処理を終了するまで待機する。なお、タイミングＴ１において、第１処理部１２は、第１フラグＨＳＦを「０」から「１」に変更する。後述するように、第２処理部１４は、Ｓ３４の通常描画処理を終了するタイミングＴ２において、第１フラグＨＳＦを「１」から「０」に変更する。第１処理部１２は、第１フラグＨＳＦが「１」から「０」になるまで待機する。
【００４０】
第２処理部１４は、Ｓ３４の通常描画処理を終了したタイミングＴ２において、第１フラグＨＳＦを「１」から「０」に変更する。タイミングＴ２では、さらに、ＴＮが「３」になり、ＢＣが「２」になる。タイミングＴ２において、第１処理部１２と第２処理部１４とは、３ページ目の中間コードデータに対する共同描画処理を開始する（Ｓ１２，Ｓ３６）。第１処理部１２と第２処理部１４とは、Ｓ１２とＳ３６の共同描画処理をほぼ同時に開始する。図３の例では、第１処理部１２がＳ１２の共同描画処理を終了するタイミングＴ４よりも、第２処理部１４がＳ３６の共同描画処理を終了するタイミングＴ３の方が早い。後述するように、第１処理部１２は、Ｓ１２の共同描画処理を終了するタイミングＴ４において、第２フラグＨＥＦを「０」から「１」に変更する。従って、タイミングＴ４よりも早いタイミングＴ３では、第２フラグＨＥＦが「０」に維持されている。第２フラグＨＥＦが「０」である場合、第２処理部１４は、Ｓ３６の共同描画処理を終了しても、次の第４ページの中間コードデータに対する通常描画処理を開始せずに待機する（Ｓ３８）。第２処理部１４は、第１処理部１２がＳ１２の共同描画処理を終了するまで待機する。即ち、第２処理部１４は、第２フラグＨＥＦが「０」から「１」になるまで待機する。
【００４１】
第１処理部１２は、Ｓ１２の共同描画処理を終了するタイミングＴ４において、第２フラグＨＥＦを「０」から「１」に変更する。第２処理部１４は、第２フラグＨＥＦが「１」であり（即ち第１処理部１２がＳ１２の共同描画処理を終了しており）、かつ、自身のＳ３６の共同描画処理が終了している場合に、第２フラグＨＥＦを「１」から「０」に変更する。タイミングＴ４では、さらに、ＴＮが「４」になり、ＢＣが「１」になる。第２処理部１４は、第４ページの中間コードデータに対する通常描画処理を開始する（Ｓ４０）。Ｓ４０の通常描画処理が終了すると、ＴＮが「５」になり、第２処理部１４は、５ページ目の中間コードデータに対する通常描画処理を開始する（Ｓ４２）。Ｓ４２の通常描画処理が終了すると、ＴＮが「６」になる。
【００４２】
一方において、第１処理部１２は、Ｓ１２の共同描画処理を終了すると、５ページ目のページデータに対するコード変換処理を実行する（Ｓ１４）。Ｓ１４のコード変換処理が終了すると、ＣＮが「６」になり、第１処理部１２は、６ページ目のページデータに対するコード変換処理を開始する（Ｓ１６）。Ｓ１６のコード変換処理が終了すると、ＣＮが「７」になるが、７ページ目のページデータが存在しないために、第１処理部１２は、さらなるコード変換処理を実行しない。コード変換処理の対象のページデータが存在しない場合、第１処理部１２は、ＢＣの値に関わらず、共同描画処理を実行する。この共同描画処理について、次に詳しく説明する。
【００４３】
第１処理部１２がＳ１６のコード変換処理を終了したタイミングＴ５において、第２処理部１４は、Ｓ４２の通常描画処理を実行している。第１処理部１２は、第２処理部１４がＳ４２の通常描画処理を終了するまで待機する（Ｓ１８）。なお、タイミングＴ５において、第１処理部１２は、第１フラグＨＳＦを「０」から「１」に変更する。後述するように、第２処理部１４は、Ｓ４２の通常描画処理を終了するタイミングＴ６において、第１フラグＨＳＦを「１」から「０」に変更する。第１処理部１２は、第１フラグＨＳＦが「１」から「０」になるまで待機する。
【００４４】
第２処理部１４は、Ｓ４２の通常描画処理を終了したタイミングＴ６において、第１フラグＨＳＦを「１」から「０」に変更する。タイミングＴ６では、さらに、ＴＮが「６」になり、ＢＣが「１」になる。タイミングＴ６において、第１処理部１２と第２処理部１４とは、６ページ目の中間コードデータに対する共同描画処理を開始する（Ｓ２０，Ｓ４４）。第１処理部１２と第２処理部１４とは、Ｓ２０とＳ４４の共同描画処理をほぼ同時に開始する。図３の例では、第１処理部１２がＳ２０の共同描画処理を終了するタイミングＴ７が、第２処理部１４がＳ４４の共同描画処理を終了するタイミングＴ８よりも早い。第１処理部１２は、Ｓ２０の共同描画処理を終了するタイミングＴ７において、第２フラグＨＥＦを「０」から「１」に変更する。第２処理部１４は、Ｓ４４の共同描画処理を終了するタイミングＴ８において、第２フラグＨＥＦを「１」から「０」に変更する。タイミングＴ８では、さらに、ＴＮが「７」になり、ＢＣが「０」になる。描画処理の対象の中間コードデータが存在しないために、第１処理部１２と第２処理部１４とは処理を終了する。
【００４５】
（第１処理部１２が実行する処理）
続いて、第１処理部１２が実行する処理について詳しく説明する。図４及び図５は、第１処理部１２が実行する処理のフローチャートを示す。図４及び図５の処理は、外部装置７０からＰＤＬデータ２０が受信され、そのＰＤＬデータ２０がバッファ領域１８（図１参照）に記憶されたことをトリガとして開始される。なお、ＰＤＬデータ２０がバッファ領域１８に記憶されると、ＰＤＬデータ２０の全ページ数ＰＮが、処理情報記憶領域３８に書き込まれる。
【００４６】
第１処理部１２は、処理情報記憶領域３８の各情報ＢＣ，ＨＳＦ，ＨＥＦを初期化し（即ち「０」を書き込み）、ＣＮ，ＴＮに「１」を書き込む（Ｓ１００）。次いで、第１処理部１２は、ＣＮがＰＮより大きいのか否かを判断する（Ｓ１０２）。ここでＮＯの場合、第１処理部１２は、ＰＤＬデータ２０のＣＮページ目のページデータ２０−１等（例えば１ページ目のページデータ２０−１）に対するコード変換処理を実行する（Ｓ１０４）。これにより、１ページ分の中間コードデータ２４−１等が生成される。第１処理部１２は、Ｓ１０４で生成された１ページ分の中間コードデータ２４−１等を中間コード記憶領域２２（図１参照）に書き込む。Ｓ１０４は、図３のＳ２〜Ｓ８及びＳ１４〜Ｓ１６のコード変換処理に対応する。次いで、第１処理部１２は、ＰＤＬデータ２０のＣＮページ目のページデータ２０−１等をバッファ領域１８から削除する（Ｓ１０６）。
【００４７】
続いて、第１処理部１２は、ＣＮに「１」を加算し、ＢＣに「１」を加算する（Ｓ１０８）。次いで、第１処理部１２は、ＢＣが２より大きいのか否かを判断する（Ｓ１１０）。ここでＮＯの場合、Ｓ１０２に戻る。一方において、Ｓ１１０でＹＥＳの場合、第１処理部１２は、第１フラグＨＳＦを「０」から「１」に変更する（Ｓ１１２）。Ｓ１１２は、図３のタイミングＴ１において、第１フラグＨＳＦを「０」から「１」に変更することに対応する。第１処理部１２は、第１フラグＨＳＦが「０」になるまで待機する（Ｓ１１４）。Ｓ１１４は、図３のＳ１０の待機処理に対応する。
【００４８】
第１フラグＨＳＦが「０」になると（Ｓ１１４でＮＯの場合）、第１処理部１２は、ＴＮページ目の中間コードデータ２４−１等の後半部分に対する描画処理を実行する（Ｓ１１６）。これにより、ＴＮページ目の描画データ２８−１等の後半部分が生成される。第１処理部１２は、ここで生成された描画データを描画データ記憶領域２６（図１参照）に書き込む。Ｓ１１６は、図３のＳ１２の共同描画処理に対応する。Ｓ１１６を終えると、第１処理部１２は、第２フラグＨＥＦを「０」から「１」に変更する（Ｓ１１８）。Ｓ１１８は、図３のタイミングＴ４において、第２フラグＨＥＦを「０」から「１」に変更することに対応する。Ｓ１１８を終えると、Ｓ１０２に戻る。
【００４９】
Ｓ１０２でＹＥＳの場合、図５のＳ１３０に進む。Ｓ１３０では、第１処理部１２は、ＢＣが「０」より大きいのか否かを判断する。ここでＮＯの場合（ＢＣが「０」である場合）、処理が終了する。一方において、Ｓ１３０でＹＥＳの場合（ＢＣが「０」より大きい場合）、第１処理部１２は、第１フラグＨＳＦを「０」から「１」に変更する（Ｓ１３２）。Ｓ１３２は、図３のタイミングＴ５において、第１フラグＨＳＦを「０」から「１」に変更することに対応する。第１処理部１２は、第１フラグＨＳＦが「０」になるまで待機する（Ｓ１３４）。Ｓ１３４は、図３のＳ１８の待機処理に対応する。
【００５０】
第１フラグＨＳＦが「０」になると（Ｓ１３４でＮＯの場合）、第１処理部１２は、ＢＣが「０」より大きいのか否かを判断する（Ｓ１３６）。ここでＮＯの場合（ＢＣが「０」である場合）、処理が終了する。一方において、Ｓ１３６でＹＥＳの場合（ＢＣが「０」より大きい場合）、第１処理部１２は、ＴＮページ目の中間コードデータ２４−１等の後半部分に対する描画処理を実行する（Ｓ１３８）。Ｓ１３８は、図４のＳ１１６と同様の処理である。Ｓ１３８は、図３のＳ２０の共同描画処理に対応する。Ｓ１３８を終えると、第１処理部１２は、第２フラグＨＥＦを「０」から「１」に変更する（Ｓ１４０）。Ｓ１４０は、図３のタイミングＴ７において、第２フラグＨＥＦを「０」から「１」に変更することに対応する。Ｓ１４０を終えると、処理が終了する。
【００５１】
なお、Ｓ１３０と同じ判断がＳ１３６で再び実行されるのは、以下の理由による。例えば、Ｓ１３０が実行される時点において、ＢＣが「１」であり、かつ、第２処理部１４が通常描画処理を実行している場合がある。このような場合では、Ｓ１３０ではＹＥＳと判断されるが、第２処理部１４が上記の通常描画処理を終了すると、ＢＣから「１」が減算され（図７のＳ２３６参照）、ＢＣが「０」になる。この場合、処理待ち状態の中間コードデータが存在せず、第１処理部１２は、Ｓ１３８の共同描画処理を実行する必要がない。即ち、Ｓ１３６は、第２処理部１４が通常描画処理を終了した後に、処理待ち状態の中間コードデータが存在するのか否かを判断するために行なわれる。
【００５２】
（第２処理部１４が実行する処理）
続いて、第２処理部１４が実行する処理について詳しく説明する。図６及び図７は、第２処理部１４が実行する処理のフローチャートを示す。図６及び図７の処理は、第１処理部１２の場合と同様に、ＰＤＬデータ２０がバッファ領域１８（図１参照）に記憶されたことをトリガとして開始される。
【００５３】
第２処理部１４は、ＢＣが「０」より大きくなるまで待機する（Ｓ２００）。Ｓ２００は、図３のＳ３０の待機処理に対応する。ＢＣが「０」より大きくなると、第２処理部１４は、第１フラグＨＳＦが「１」であるのか否かを判断する（Ｓ２０２）。ここでＮＯの場合、第２処理部１４は、ＴＮページ目の中間コードデータ２４−１等の全部分に対する描画処理を実行する（Ｓ２０４）。即ち、第２処理部１４は、ＴＮページ目の中間コードデータ２４−１等に対する通常描画処理を実行する。これにより、１ページ分の描画データ２８−１等が生成される。第２処理部１４は、Ｓ２０４で生成された１ページ分の描画データ２８−１等を描画データ記憶領域２６（図１参照）に書き込む。Ｓ２０４は、図３のＳ３２，Ｓ３４，Ｓ４０，Ｓ４２の通常描画処理に対応する。Ｓ２０４を終えると、図７のＳ２３０に進む。
【００５４】
一方において、Ｓ２０２でＹＥＳの場合（第１フラグＨＳＦが「１」である場合）、第２処理部１４は、第１フラグＨＳＦを「１」から「０」に変更する（Ｓ２０６）。Ｓ２０６は、図３のタイミングＴ２及びＴ６において、第１フラグＨＳＦを「１」から「０」に変更することに対応する。次いで、第２処理部１４は、ＴＮページ目の中間コードデータ２４−１等の前半部分に対する描画処理を実行する（Ｓ２０８）。これにより、ＴＮページ目の描画データ２８−１等の前半部分が生成される。第２処理部１４は、ここで生成された描画データを描画データ記憶領域２６（図１参照）に書き込む。Ｓ２０８は、図３のＳ３６及びＳ４４の共同描画処理に対応する。
【００５５】
Ｓ２０８を終えると、第２処理部１４は、第２フラグＨＥＦが「１」になるまで待機する（Ｓ２１０）。Ｓ２１０は、図３のＳ３８の待機処理に対応する。第２フラグＨＥＦが「１」になると、第２処理部１４は、第２フラグＨＥＦを「１」から「０」に変更する（Ｓ２１２）。Ｓ２１２は、図３のタイミングＴ４及びＴ８において、第２フラグＨＥＦを「１」から「０」に変更することに対応する。Ｓ２１２を終えると、図７のＳ２３０に進む。
【００５６】
図７のＳ２３０では、第２処理部１４は、ＴＮページ目の中間コードデータ２４−１等を中間コード記憶領域２２から削除する。続いて、第２処理部１４は、描画データ記憶領域２６に記憶されているＴＮページ目の描画データ２８−１等を印刷部５０に出力（送信）する（Ｓ２３２）。即ち、第２処理部１４は、ＴＮページ目の描画データ２８−１等を用いて印刷データ２９（図１参照）をページメモリ５２に書き込む。次いで、第２処理部１４は、ＴＮページ目の描画データ２８−１等を描画データ記憶領域２６から削除する（Ｓ２３４）。
【００５７】
なお、フローチャートには示していないが、印刷データ２９がページメモリ５２に書き込まれると、第１処理部１２及び／又は第２処理部１４は、印刷機構５４を駆動する。これにより、印刷データ２９が印刷媒体８０−１等（図２参照）に印刷される。第１処理部１２及び／又は第２処理部１４は、印刷データ２９の印刷が終了すると、その印刷データ２９をページメモリ５２から削除する。
【００５８】
Ｓ２３４を終えると、第２処理部１４は、ＢＣから「１」を減算する（Ｓ２３６）。さらに、第２処理部１４は、ＴＮに「１」を加算する（Ｓ２３８）。次いで、第２処理部１４は、ＴＮがＰＮより大きいのか否かを判断する（Ｓ２４０）。ここでＮＯの場合（ＴＮがＰＮ以下である場合）、図６のＳ２００に戻る。一方において、Ｓ２４０でＹＥＳの場合（ＴＮがＰＮより大きい場合）、第２処理部１４は、第１フラグＨＳＦが「１」であるのか否かを判断する（Ｓ２４２）。ここでＹＥＳの場合、第２処理部１４は、第１フラグＨＳＦを「１」から「０」に変更し（Ｓ２４４）、処理を終了する。一方において、Ｓ２４２でＮＯの場合、第２処理部１４は、Ｓ２４４をスキップして処理を終了する。
【００５９】
なお、Ｓ２４２とＳ２４４が実行されるのは、以下の理由による。第１処理部１２は、図５のＳ１３２において第１フラグＨＳＦを「０」から「１」に変更し、図５のＳ１３４において第１フラグＨＳＦが「１」になるまで待機する。仮に、図７のＳ２４２とＳ２４４が行なわれず、図７のＳ２４０でＹＥＳの場合に第２処理部１４が処理を終了するように構成すると、第１処理部１２が、図５のＳ１３４において待機し続けることになり、処理を終了することができない。このような状況が発生するのを避けるために、Ｓ２４２とＳ２４４が実行される。
【００６０】
本実施例の通信システム２について詳しく説明した。プリンタ１０は、複数種類のページ記述言語（Ｐ１，Ｐ２）のいずれの種類のページ記述言語で記述されたＰＤＬデータ２０であっても、同じ中間言語で記述された中間コードデータ２４−１等に変換し、次いで、ビットマップ形式の描画データ２８−１等を生成する。
【００６１】
本実施例では、処理待ち状態の中間コードデータ２４−１等のページ数ＢＣが２を超えると（３以上になると）、第１処理部１２は、コード変換処理を実行せずに、第２処理部１４と共同して共同描画処理（図３のＳ１２参照）を実行する。このために、処理待ち状態の中間コードデータ２４−１等が過度に蓄積されないように適切に描画処理を実行することができる。これにより、例えば、処理待ち状態の中間コードデータ２４−１等を記憶するためのメモリ容量（中間コード記憶領域２２の記憶量）を低減させることができる。
【００６２】
また、図３に示されるように、第１処理部１２は、Ｓ８のコード変換処理を終了した結果、ＢＣが２を超えても、第２処理部１４がＳ３４の通常描画処理を終了するまで、Ｓ１２の共同描画処理を開始せずに待機する（Ｓ１０参照）。この構成によると、Ｓ３４の通常描画処理で生成される描画データと、Ｓ１２の共同描画処理で生成される描画データと、を描画データ記憶領域２６（図１参照）に同時的に蓄積する必要がない。このために、描画データを記憶するためのメモリ容量（描画データ記憶領域２６の記憶量）を低減させることができる。
【００６３】
さらに、第２処理部１４は、Ｓ３６の共同描画処理を終了しても、第１処理部１２がＳ１２の共同描画処理を終了するまで、Ｓ４０の通常描画処理を開始せずに待機する（Ｓ３８参照）。この構成によると、Ｓ１２及びＳ３６の共同描画処理で生成される描画データと、Ｓ４０の通常描画処理で生成される描画データと、を描画データ記憶領域２６（図１参照）に同時的に蓄積する必要がない。このために、描画データを記憶するためのメモリ容量（描画データ記憶領域２６の記憶量）を低減させることができる。一方において、仮に、第２処理部１４によるＳ３６の共同描画処理が終了するタイミングＴ３よりも、第１処理部１２によるＳ１２の共同描画処理が終了するタイミングＴ４の方が早い場合には、第１処理部１２は、Ｓ３６の共同描画処理が終了するのを待たずに、ＣＮページ目のコード変換処理を開始する。このことは、図４のＳ１１６を終えた場合に、第１処理部１２が待機せずに、Ｓ１１８，Ｓ１０２を経て、Ｓ１０４に進むことから明らかである。この構成によると、第１処理部１２は、ＣＮページ目のコード変換処理を迅速に開始することができ、ＣＮページ目の中間コードデータを迅速に生成することができる。
【００６４】
また、図３の例では、第１処理部１２が最後のページのページデータ２０−Ｎ（図２参照）に対するコード変換処理（Ｓ１６）を終了した後に、ＢＣが２を超えるのか否かに関わらず、第１処理部１２及び第２処理部１４は、６ページ目の中間コードデータに対する共同描画処理（Ｓ２０及びＳ４４）を実行する。この構成によると、コード変換処理を実行すべき対象のページデータが存在しない場合に、第１処理部１２は、第２処理部１４と共同して、共同描画処理を実行することができる。第２処理部１４が６ページ目の中間コードデータに対する通常描画処理を実行する構成と比べると、描画処理を高速で行なうことができる。
【００６５】
以上の説明から明らかなように、本実施例のＢＣが、本発明の処理待ち状態の中間コードデータのページ数に対応し、図４のＳ１１０で閾値として用いられている「２」が本発明の所定数に対応する。また、図３のＳ１２の共同描画処理、図３のＳ３６の共同描画処理が、それぞれ、本発明の第１の部分処理、第２の部分処理に対応する。また、図３の例の場合、２ページ目の中間コードデータ、３ページ目の中間コードデータ、６ページ目の中間コードデータが、それぞれ、本発明の対象ページの中間コードデータ、第１の特定ページの中間コードデータ、第２の特定ページの中間コードデータに対応する。
【００６６】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【００６７】
（１）上記の実施例では、ＰＤＬデータ２０に含まれる複数のページデータ２０−１〜２０−Ｎのそれぞれに対するコード変換処理は、昇順で実行される（ページ番号の小さい方から順に実行される）。この結果、描画処理（通常描画処理及び共同描画処理）も、昇順で実行される。しかしながら、コード変換処理及び描画処理は、降順で実行されてもよい（ページ番号の大きい方から順に実行されてもよい）。
【００６８】
（２）上記の実施例では、第１処理部１２は、最後のページのページデータ２０−Ｎ（図２参照）に対するコード変換処理（Ｓ１６）が終了した後に、Ｓ２０の共同描画処理を実行する。しかしながら、第１処理部１２は、Ｓ１６が終了すると処理を終了し、Ｓ２０の共同描画処理を実行しなくてもよい。この場合、第２処理部１４は、最後のページのページデータ２０−Ｎ（図２参照）に対する通常描画処理を実行してもよい。
【００６９】
（３）上記の実施例では、第１処理部１２及び第２処理部１４は、図３のタイミングＴ２において、共同描画処理（Ｓ１２及びＳ３６）をほぼ同時に開始する。また、第１処理部１２及び第２処理部１４は、図３のタイミングＴ６において、共同描画処理（Ｓ２０及びＳ４４）をほぼ同時に開始する。しかしながら、第１処理部１２及び第２処理部１４は、それぞれの共同描画処理を異なるタイミングで開始してもよい。
【００７０】
（４）上記の実施例では、ＢＣが２を超える場合に、第１処理部１２及び第２処理部１４が共同描画処理を実行する。しかしながら、ＢＣが１を超える場合に、第１処理部１２及び第２処理部１４が共同描画処理を実行してもよい。また、ＢＣが３以上の所定値を超える場合に、第１処理部１２及び第２処理部１４が共同描画処理を実行してもよい。
【００７１】
（５）上記の実施例では、第１処理部１２と第２処理部１４とを備えるデュアルコアプロセッサを利用しているが、第１処理部１２を備えるプロセッサと第２処理部１４を備えるプロセッサとが独立して設けられている構成（２つのチップを備える構成）を採用してもよい。また、３つ以上の処理部を備える構成を採用してもよい。例えば、４つの処理部が利用される場合には、１つの処理部が中間コードデータを生成し、他の３つの処理部が並行して同じページの描画データを生成してもよい。
【００７２】
（６）上記の実施例では、ＰＤＬデータ２０から描画データ２８−１等を生成する主体がプリンタ１０である。しかしながら、プリンタ１０以外のデバイスにも、上記の実施例の技術を適用することができる。例えば、コピー機、ファクシミリ、多機能機、ＰＣ、サーバ等に適用することができる。
【００７３】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【００７４】
２：通信システム、１０：プリンタ、１１：デュアルコアプロセッサ、１２：第１処理部、１４：第２処理部、１６：記憶部、２０：ＰＤＬデータ、２０−１〜２０−Ｎ：ページデータ、２４−１〜２４−Ｎ：中間コードデータ、２８−１〜２８−Ｎ：描画データ、５０：印刷部、ＢＣ：処理待ち状態の中間コードデータのページ数
【図１】
2010282336.tif 000003
【図２】
2010282336.tif 000004
【図３】
2010282336.tif 000005
【図４】
2010282336.tif 000006
【図５】
2010282336.tif 000007
【図６】
2010282336.tif 000008
【図７】
2010282336.tif 000009