(57)【要約】【課題】複数のプロセッサエレメントを用いて画像処理する場合に、有効にＣＰＵ資源を活用できるようにする。【解決手段】入力手段から受信した印刷データを画像処理し、印刷イメージを生成して出力する印刷装置であって、前記印刷データを解釈しページを複数の部分領域に分割した中間データを生成する印刷データ解釈部２０１と、前記中間データをそれぞれ並列に画像処理する第１の部分データ処理部２０３、第２の部分データ処理部２０４、第３の部分データ処理部２０５、第４の部分データ処理部２０６とを備え、第１の部分データ処理部２０３〜第４の部分データ処理部２０６と印刷データ解釈部２０１とを、動作状態に応じて制御する。【選択図】図２
2011136425.tif 000002
【特許請求の範囲】
【請求項１】
入力手段から受信した印刷データを画像処理し、印刷イメージを生成して出力する印刷装置であって、
前記印刷データを解釈しページを複数の部分領域に分割した中間データを生成する解釈手段と、
前記中間データをそれぞれ並列に画像処理する複数の画像処理手段と、
前記複数の画像処理手段と前記解釈手段とを、動作状態に応じて制御する制御手段とを備えたことを特徴とする印刷装置。
【請求項２】
前記制御手段は、前記複数の画像処理手段による画像処理が終了した状態で前記解釈手段の動作を復帰させることを特徴とする請求項１記載の印刷装置。
【請求項３】
前記制御手段は、前記解釈手段の動作が稼動可能な状態になったときに前記複数の画像処理手段の画像処理を中断させることを特徴とする請求項１記載の印刷装置。
【請求項４】
入力手段から受信した印刷データを複数の画像処理手段にて並列に画像処理して印刷イメージを生成して出力する印刷方法であって、
前記印刷データを解釈しページを複数の部分領域に分割した中間データを生成する解釈工程と、
前記複数の画像処理手段を用いて画像処理を行う画像処理工程と、
前記画像処理工程と前記解釈工程とにおける処理を、動作状態に応じて制御する制御工程とを備えたことを特徴とする印刷方法。
【請求項５】
請求項４記載の印刷方法の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は印刷装置、印刷方法及びプログラムに関し、特に、複数のプロセッサエレメントを用いて画像処理するために用いて好適な技術に関する。
【背景技術】
【０００２】
近年、印刷結果をさらに高品位化、高画質化する要求に応じて、印刷装置の高解像度化が進んでいる。このような高解像度化に伴い、印刷装置が処理すべきデータの量も飛躍的に大きくなってきている。処理すべきデータ量が増大することに対する対策としては、処理を行うＣＰＵを高速化したり、利用できるメモリを高速化したりすることなどがあげられる。特に、ＣＰＵの高速化については、単にＣＰＵの駆動周波数を上げるだけでない。複数のＣＰＵを利用する、あるいは単一ＣＰＵであってもＣＰＵ内に複数のプロセッサエレメント（ＰＥ）を持つＣＰＵを利用するなど、同時に複数の処理を実行することができる仕組みを持つ印刷装置も提案されている（例えば、特許文献１参照）。
【０００３】
複数のＰＥを利用可能な印刷装置においては、例えば、ＰＥ０、ＰＥ１、ＰＥ２、ＰＥ３という４つのプロセッサエレメントが利用可能な場合、ＰＥ０にジョブの管理と印刷データの解釈系とを配置する。そして、ＰＥ０、ＰＥ１、ＰＥ２、ＰＥ３にレンダリングなどを行う画像生成系や色補正、色変換、ハーフ−ン処理などを行う画像処理系を配置するような構成が考えられる。
【０００４】
ＰＥ０で稼動する解釈系は、ネットワークを介して受信された所定のＰＤＬ（Page Description Language）で記述された印刷データを解釈し、ディスプレイリストと呼ばれる、よりプリミティブな描画命令からなるデータ構造を生成する。ＰＥ０、ＰＥ１、ＰＥ２、ＰＥ３に配置された画像生成系は、ＰＥ０から受け取ったディスプレイリスト解釈し、担当する領域内を描画する描画命令に従って、ＲＧＢ画素からなるラスター画像を生成する。この場合、ＰＥ０、ＰＥ１、ＰＥ２、ＰＥ３の処理を、ページ内の異なる小領域（バンド）に対して割り当てることにより並列的に処理を進めることができる。
【０００５】
並列処理の様子について、図４を参照しながら説明する。図４に示す例では、３ページの文書を処理する例を示している。まず、ネットワーク等所定の入力手段を介して印刷データを受け取った印刷データ解釈系は、Ｉ１において１ページ目の解釈処理を実行し、１ページ目のディスプレイリストを生成する。この例では、１ページのバンド数は、簡単化のために８とするが、バンド数は任意でよい。実際は、メモリの消費量を抑えるために数十バンドに分割することが多い。この例では、画像生成手段がＰＥ０〜３に配置されているため、Ｒ１−１〜Ｒ１−８に示すように、同時に最大４バンドの処理が可能である。各々のＰＥに配置された画像生成手段は、印刷データ解釈手段が生成したディスプレイリストに基き、割り当てられたバンドの処理を行う。全てのバンドの画像生成が終了すると、Ｉ２において２ページ目の印刷データ解釈処理を実行する。以降、同様に２ページ目、３ページ分の処理を行う。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−２８７４１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
図４に示すような構成で並列処理を進めることで、１ページの文書についてはバンド生成の並列性を利用して、高速に処理を進めることができる。しかしながら、図４に示すように、複数ページの文書を印刷する場合には、各ページの解釈処理の間（Ｉ１、Ｉ２・・）、ＰＥ１〜３が解釈処理待ち状態になり、プロセッサを有効に活用できていない。以下、このような処理待ちの時間を遊休時間と呼ぶ。並列処理で高い効果を発揮するためには、可能な限りＰＥの遊休時間を削減することが求められる。
【０００８】
図４に示した例では、解釈系と画像生成系とを同期して動作させていることにより遊休時間が増大している。この問題を緩和させるためには、解釈系と画像生成系とを非同期に動作させることが考えられる。例えば、図５（ａ）に示すように、印刷するジョブの全ページの解釈処理が終わるまで画像生成手段をＰＥ１〜３のみで稼動させることが考えられる。この方法では、全ページの解釈処理が終了した段階で、ＰＥ０の画像生成手段を稼動させることにより、ディスプレイリストの生成待ちによるＣＰＵの遊休時間を抑制することができる。さらに、図５（ｂ）に示すように、解釈系の終了後にＰＥ０においても画像生成系を稼動させれば、さらに全体の処理時間を短縮することができる。
【０００９】
この方法によれば、解釈系及び画像生成系の処理が非同期であるために、比較的解釈系の処理が少ない文書に対しては、解釈系が画像生成系より処理を早く進めることができる。このため、画像生成待ちになるディスプレイリストを格納するメモリ資源が確保できる限り、解釈系が画像生成系に先んじてディスプレイリストを生成することになる。
【００１０】
しかしながら、印刷装置などの組込みシステムでは、解釈系がディスプレイリストを作成するために使用できるメモリ資源の制約が大きい。このため、解釈系は要求したメモリを確保できずに、メモリ資源の解放待ち状態になる。メモリ資源の解放待ちになれば、他のページのディスプレイリストがレンダラによって処理され、メモリが確保されるまで、インタプリタは解釈処理を継続することができない。このため、図１２に示すようにＣＰＵに遊休時間を発生させることになり、有効にＣＰＵ資源を活用できない場合もあった。
【００１１】
本発明は前述の問題点に鑑み、複数のプロセッサエレメントを用いて画像処理する場合に、有効にＣＰＵ資源を活用できるようにすることを目的としている。
【課題を解決するための手段】
【００１２】
本発明の印刷装置は、入力手段から受信した印刷データを画像処理し、印刷イメージを生成して出力する印刷装置であって、前記印刷データを解釈しページを複数の部分領域に分割した中間データを生成する解釈手段と、前記中間データをそれぞれ並列に画像処理する複数の画像処理手段と、前記複数の画像処理手段と前記解釈手段とを、動作状態に応じて制御する制御手段とを備えたことを特徴とする。
【発明の効果】
【００１３】
本発明によれば、印刷装置における画像処理などの並列化において、最適なプロセッサエレメントの割り当てが可能になり、高速な印刷データ処理ができる。
【図面の簡単な説明】
【００１４】
【図１】印刷装置を含むシステムの全体構成例を示すブロック図である。
【図２】実施形態に係るコントローラ部の構成例を示すブロック図である。
【図３】複数のＰＥ及び高速メモリの構成例を示すブロック図である。
【図４】従来の３ページの文書を処理する例を示す図である。
【図５】従来の３ページの文書を処理する例を示す図である。
【図６】イメージを複数の領域に分割した様子を表した図である。
【図７】画素データの構成要素を示す図である。
【図８】プロセッサを決定する処理手順の一例を示すフローチャートである。
【図９】プロセッサを決定する具体的な処理手順例を示すフローチャートである。
【図１０】部分データ処理部による処理手順の一例を示すフローチャートである。
【図１１】バンドデータのデータ構造例を示す図である。
【図１２】ＣＰＵに遊休時間が発生した状態を示す図である。
【図１３】実施形態における文書を処理する状態を示す図である。
【発明を実施するための形態】
【００１５】
（第１の実施形態）
以下、本発明の第１の実施形態について、図面を参照しながら説明する。
図１は、本実施形態に係る印刷装置を含むシステムの全体構成例を示すブロック図である。
図１に示すように、本実施形態に係る印刷装置を含むシステムは、外部装置１０１及び印刷装置１０２から構成されている。さらに、印刷装置１０２はコントローラ部１０３、エンジン部１０４を備える構成となっている。外部装置１０１は、パーソナルコンピュータ（ＰＣ）やワークステーション（ＷＳ）として構成されており、印刷装置１０２に対してページ記述言語で記述された印刷データを送出する。
【００１６】
印刷装置１０２のコントローラ部１０３はエンジン部１０４に接続されており、外部装置１０１から送られるページ記述言語で記述された印刷データを受け取る。そして、これらのデータを解釈して中間データを生成する。さらにこの中間データを複数の部分領域に分割して複数の処理部にて並列処理する。これにより、Ｃ、Ｍ、Ｙ、Ｋ各色のドットデータからなる画像データを生成し、エンジン部１０４に対して順次ドットデータを印刷イメージとして送信する。コントローラ部１０３は、これら処理部及び前記解釈手段を、これらの動作状態に応じて制御する。
【００１７】
印刷装置１０２のエンジン部１０４は、Ｃ、Ｍ、Ｙ、Ｋ各色のドットデータ毎に実際に感光ドラムに潜像を形成することによって用紙にＣ、Ｍ、Ｙ、Ｋの４色を重ね合わせ、熱定着させることによって印刷を行う。印刷装置１０２のコントローラ部１０３及びエンジン部１０４は所定のビデオインターフェースによって接続されている。
【００１８】
図３は、本実施形態における印刷装置を動作させる複数のプロセッサエレメント（処理部）、及び各プロセッサエレメントの高速メモリの構成例を示すブロック図である。本実施形態においては、高速メモリはＳＲＡＭで実現される。
図３に示すように、３０１、３０２、３０３、３０４はそれぞれ、第１のプロセッサエレメント、第２のプロセッサエレメント、第３のプロセッサエレメント、第４のプロセッサエレメントである。そして、第１のプロセッサエレメント３０１から第４のプロセッサエレメント３０４はそれぞれ、高速小容量のメモリ３０５、３０６、３０７、３０８を備える。各プロセッサエレメントは自身の持つ高速小容量のメモリに対しては、高速にｒｅａｄ／ｗｒｉｔｅが可能である。また、他のプロセッサエレメントが持つ高速小容量のメモリに対しても、自身の持つ高速小容量のメモリアクセスのアクセスレイテンシは長くなるが、高速メモリバス３１０を利用することによりアクセスが可能である。メモリ３０９は、自他高速小容量のメモリアクセスのレイテンシよりは長くなるが、大容量のメモリであり、メモリバス３１１を利用して各プロセッサエレメントから利用することができる。
【００１９】
図２は、本実施形態に係るコントローラ部１０３の構成例を示すブロック図である。
本実施形態では、第１のプロセッサエレメント３０１〜第４のプロセッサエレメント３０４はそれぞれ、部分データ処理手段を有している。図２に示すように、それぞれ第１の部分データ処理部２０３、第２の部分データ処理部２０４、第３の部分データ処理部２０５、及び第４の部分データ処理部２０６が備えられている。なお、印刷データ解釈部２０１は、第１のプロセッサエレメント３０１において動作する。
【００２０】
図６は、印刷する１ページ分の画像データのイメージを複数の部分（バンド）領域に分割した様子を表した図である。
図６において、６０１は、１ページ分の画像データのイメージであり、５つのバンドから構成されている。本実施形態では簡単化のためバンド数を５としているが、より多くのバンドで構成することが可能なことは言うまでもない。ここで、１ページ分の画像データのイメージ６０１は、印刷データ解釈部２０１によりバンド１で示されるバンド６０２、バンド２で示されるバンド６０３が分割処理される。同様に、バンド３で示されるバンド６０４、バンド４で示されるバンド６０５、バンド５で示されるバンド６０６の各バンド領域に分割され処理される。
【００２１】
図７は、画素データの構成要素を示す図である。
図７において、バンド領域中の１ライン７０１は、画素７０７の集合を構成するためのものである。また、７０８は画素７０７の構成要素である。画素７０７は、Ｒ（赤）色の情報を格納する領域７０２、Ｇ（緑）色の情報を格納する領域７０３、Ｂ（青）色を格納する領域７０４、画素の透明度情報（Ａ）を格納する領域７０５から構成されている。各領域は１バイトの容量を持ち、本実施形態においては、Ａを格納する領域７０５の下位４Ｂｉｔを使用し、画素が表す画像オブジェクトを指定するオブジェクト識別子７０６とする。オブジェクト識別子７０６は、上位ビットから順にベクトルオブジェクト、フォントオブジェクト、ラスターオブジェクトの何れかを示す。
【００２２】
次に、本実施形態に係るコントローラ部１０３の処理手順について、図２を参照しながら説明する。
ＰＤＬ（Page Description Language）によって記述された印刷データは、入力部２００を介して印刷データ解釈部２０１に送信される。印刷データ解釈部２０１は、入力部２００から送られた印刷データを解析し、所定サイズのバンドを構成するディスプレイリストを生成する。入力される印刷データは特に種類を問わず、プリンタの用途に合わせて任意のＰＤＬでよい。このとき、ディスプレイリストの保存に必要とされるメモリ資源が確保できない場合は、後述する部分データ処理分配部２０２、印刷データ解釈部２０１がメモリ確保待ちであることを通知する。
【００２３】
印刷データ解釈部２０１は、ページ単位でディスプレイリストを生成するが、各部分データ処理部での並列処理が容易になるよう、互い重なり合わないバンド単位のディスプレイリストを内包するようにすることが望ましい。印刷データ解釈部２０１は、各バンドに対して、図１１に示すように、ページ識別子１１０１、バンド番号１１０２、及びページディスプレイリストの識別子１１０３を含んだバンドデータ１１００を作成する。印刷データ解釈部２０１は、該当するページに属する全てのバンドデータを部分データ処理分配部２０２に通知する。さらに次ページの処理が必要な場合は、直ちに、次ページに対する解釈処理を開始する。処理したページが最終ページである場合は、印刷データ解釈処理終了フラグを真とする。
【００２４】
図８は、本実施形態における部分データ処理分配部２０２によるバンドデータを処理するプロセッサを決定する処理手順の一例を示すフローチャートである。部分データ処理分配部２０２は、図８に示すフローチャートに従ってバンドデータを処理するプロセッサを決定する。
まず、ステップＳ８０１において処理を開始すると、ステップＳ８０２において、部分データ処理分配部２０２は、該当するバンドデータを処理するプロセッサを決定する。続いてステップＳ８０３において、ステップＳ８０２で決定したプロセッサで稼動可能な部分データ処理部に対してバンドデータを送信し、バンドデータの分配処理を終了する。
【００２５】
図９は、図８のステップＳ８０２におけるプロセッサを決定する処理手順の一例を示すフローチャートである。
まず、ステップＳ９０１において処理を開始すると、ステップＳ９０２において、それぞれの部分データ処理部から、データ送信要求を受信する。ここで、データ送信要求には、要求を送信したプロセッサ番号などが記述されているものとする。そして、ステップＳ９０３において、受信したプロセッサ番号をそれぞれの部分データ処理分配部に返す。
【００２６】
図１０は、部分データ処理部による処理手順の一例を示すフローチャートである。第１の部分データ処理部２０３、第２の部分データ処理部２０４、第３の部分データ処理部２０５、及び第４の部分データ処理部２０６は、並列に動作するために別々のプロセッサエレメント（ＰＥ）に配置される。本実施形態では、それぞれ第１のプロセッサエレメント３０１〜第４のプロセッサエレメント３０４に配置される。以下、代表して第１の部分データ処理部２０３による処理について説明する。
【００２７】
まず、ステップＳ１００１において、第１の部分データ処理部２０３は、どのプロセッサエレメント（ＰＥ）が起動されているかを確認する。本実施形態では、ＣＰＵに実装されている機能により、ＰＥ番号を取得できるものとする。ここで、ＰＥ番号が０以外の場合、即ち、印刷データ解釈部２０１と異なるＰＥで実行されている場合には、ステップＳ１００２において、部分データ処理分配部２０２にデータ転送要求を送信する。一方、部分データ処理部を実行しているＰＥ番号が０、即ち印刷データ解釈部２０１と同じである場合は、ステップＳ１００３に進む。そして、ステップＳ１００３において、印刷データ解釈部２０１が全てのページの解釈を終了しているか、または、解釈系がメモリ確保待ちである場合のみにステップＳ１００２に進み、それ以外の場合は処理を中断して待ち状態に入る（ステップＳ１００３）。
【００２８】
印刷データ解釈部２０１の処理が終了したかどうかは、前述した印刷データ解釈処理終了フラグを参照して判断可能する。印刷データ解釈部２０１がメモリ待ちであるか否かは前述した部分データ処理分配部２０２に印刷データ解釈部からメモリ待ちを表す通知があったか否かで可能である。その後、ステップＳ１００４において、第１の部分データ処理部２０３は、部分データ処理分配部２０２から、バンドデータを受信する。
【００２９】
さらに、ステップＳ１００５において、第１の部分データ処理部２０３は、受信したバンドデータに対して所定の画像処理を実行する。画像処理は、部分データ処理分配部２０２から通知されたバンドデータ内のディスプレイリストからラスターデータを生成するレンダラ、色補正／色変換を行う色処理、ハーフトーン処理、処理後のデータを圧縮保存する圧縮モジュールであるものとする。ただし、画像処理の種類は上記に限られるものではなく、指定されたバンドに対する処理であれば何でもよい。
【００３０】
そして、ステップＳ１００６において、第１の部分データ処理部２０３は、１つのバンドの処理が終了する度にイメージ生成部２０７に対してバンドデータを処理結果として送信する。さらに、次のバンドデータを受け取るために、ステップＳ１００１に戻る。イメージ生成部２０７は、受信したバンドデータを収集して、１ページ分のイメージを生成する。ここで、それぞれの部分データ処理部は並列に処理を実行するため、イメージ生成部２０７は、必ずしもバンド番号順にバンドデータを受信するとは限らない。イメージ生成部２０７は、受信したバンドデータで指定されるページ識別子１１０１およびバンド番号１１０２に基づいて、正しい順番でイメージを連結するものとする。
【００３１】
出力部２０８は、イメージ生成部２０７が生成した１ページ分のイメージを、プリンタエンジンからの印刷要求に応じてプリンタエンジンに転送するためのものである。これにより、プリンタエンジンによって所望の画像が形成される。また、出力部２０８は処理を終えると、印刷データ解釈部２０１に該当するページのメモリ解放要求を行う。メモリ解放要求を受け取り、稼動可能な状態になった印刷データ解釈部２０１は該当するページのメモリを解放する。さらに、メモリ待ちにより、印刷データ解釈部２０１の機能を停止していた場合には、解釈処理を復帰する。
【００３２】
以上のように本実施形態により、図１３に示すように効率よくプロセッサを利用することができる。このように、印刷装置における画像処理などの並列化において、印刷データ解釈系、および各種画像処理に対して最適なプロセッサエレメントの割り当てが可能になり、高速な印刷データ処理ができる。
【００３３】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００３４】
２０１  印刷データ解釈部、２０３  第１の部分データ処理部、２０４  第２の部分データ処理部、２０５  第３の部分データ処理部、２０６  第４の部分データ処理部
【図１】
2011136425.tif 000003
【図２】
2011136425.tif 000004
【図３】
2011136425.tif 000005
【図４】
2011136425.tif 000006
【図５】
2011136425.tif 000007
【図６】
2011136425.tif 000008
【図７】
2011136425.tif 000009
【図８】
2011136425.tif 000010
【図９】
2011136425.tif 000011
【図１０】
2011136425.tif 000012
【図１１】
2011136425.tif 000013
【図１２】
2011136425.tif 000014
【図１３】
2011136425.tif 000015