(57)【要約】【課題】描画処理の高速化を図る。【解決手段】印刷データを受信する受信手段と、受信した印刷データを解析するデータ解析手段と、データ解析手段による印刷データの解析結果に基づいて、中間データであるディスプレイリストを作成して、内部に蓄積するディスプレイリスト作成手段と、メインプロセッサを用いて、レンダリング処理を行う第１のレンダリング手段と、サブプロセッサを用いて、レンダリング処理を行う第２のレンダリング手段と、メインプロセッサの処理状況を検出し、メインプロセッサが待ち状態である場合に、ディスプレイリスト作成手段により作成されて蓄積されているディスプレイリストに対するレンダリング処理の実行を第１のレンダリング手段に対して指示し、メインプロセッサが待ち状態でない場合に、レンダリング処理の実行を第２のレンダリング手段に対して指示するレンダー実行指示手段とを備える。【選択図】図１
2007196468.tif 000002
【特許請求の範囲】
【請求項１】
印刷データを受信する受信手段と、
受信した前記印刷データを解析するデータ解析手段と、
前記データ解析手段による印刷データの解析結果に基づいて、中間データであるディスプレイリストを作成して、内部に蓄積するディスプレイリスト作成手段と、
メインプロセッサを用いて、前記ディスプレイリスト作成手段により作成されたディスプレイリストからビットマップデータへ変換して、ＶＲＡＭに書き込みを行う第１のレンダリング手段と、
サブプロセッサを用いて、前記ディスプレイリスト作成手段により作成されたディスプレイリストからビットマップデータへ変換して、ＶＲＡＭに書き込みを行う第２のレンダリング手段と、
前記メインプロセッサの処理状況を検出し、前記メインプロセッサが待ち状態である場合に、前記ディスプレイリスト作成手段により作成されて蓄積されているディスプレイリストに対するレンダリング処理の実行を前記第１のレンダリング手段に対して指示し、前記メインプロセッサが待ち状態でない場合に、前記ディスプレイリスト作成手段により作成されて蓄積されているディスプレイリストに対するレンダリング処理の実行を前記第２のレンダリング手段に対して指示するレンダー実行指示手段と
を備えたことを特徴とする画像形成装置。
【請求項２】
前記第２のレンダリング手段は、前記ディスプレイリスト作成手段により作成されて蓄積されているディスプレイリストからビットマップデータへ変換する場合に、処理を実行するべきディスプレイリストを選択して、レンダリング処理を実行することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
メインプロセッサを用いて、前記ディスプレイリスト作成手段により作成されたディスプレイリストからビットマップデータへ変換して、ＶＲＡＭに書き込みを行う第１のレンダリング手段と、サブプロセッサを用いて、前記ディスプレイリスト作成手段により作成されたディスプレイリストからビットマップデータへ変換して、ＶＲＡＭに書き込みを行う第２のレンダリング手段とを備えた画像形成装置における制御プログラムであって、
印刷データを受信する受信処理と、
受信した前記印刷データを解析するデータ解析処理と、
前記データ解析処理による印刷データの解析結果に基づいて、中間データであるディスプレイリストを作成して、内部に蓄積するディスプレイリスト作成処理と、
前記メインプロセッサの処理状況を検出し、前記メインプロセッサが待ち状態である場合に、前記ディスプレイリスト作成処理により作成されて蓄積されているディスプレイリストに対するレンダリング処理の実行を前記第１のレンダリング手段に対して指示し、前記メインプロセッサが待ち状態でない場合に、前記ディスプレイリスト作成手段により作成されて蓄積されているディスプレイリストに対するレンダリング処理の実行を前記第２のレンダリング手段に対して指示するレンダー実行指示出力処理と
をコンピュータに行わせることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、描画処理の高速化を図ることができる画像形成装置及び制御プログラムに関する。
【背景技術】
【０００２】
従来から、入力データに応じた最適処理構成を構築してプリントエンジンの性能を最大限に発揮するために、入力描画データの処理において、プリントエンジンの出力速度に同期した処理ステージを複数組み合わせたパイプライン処理構成を構築して処理を実行し、ページを領域分割したバンド領域毎に文字、図形を処理するパイプライン構造と、画像を処理するパイプライン構造とを描画要素に必要な処理に応じて構築する印刷処理方法が知られている。この印刷処理方法によれば、それぞれの処理ステージの処理時間はプリントエンジンの出力速度に応じたものとすることになり、最適な処理構成を実現することができる（例えば、特許文献１参照）。
【特許文献１】特開２０００−２５５１１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１に示す印刷処理方法にあっては、ページ毎に中間データを生成する方法であるため、最初の１ページ分のデータが全て揃うまでは変換処理から先の処理は動作せず、処理効率が悪いという問題がある。また途中のページであっても、前のページの処理が軽い場合は、中間データ生成処理は動作していても、変換処理から先は動作していないという場合が発生し、描画処理を高速にすることができない。
【０００４】
本発明は、このような事情に鑑みてなされたもので、描画するための画像処理を効率よく実行し、描画処理を高速で実行することが可能な画像形成装置及び制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、印刷データを受信する受信手段と、受信した前記印刷データを解析するデータ解析手段と、前記データ解析手段による印刷データの解析結果に基づいて、中間データであるディスプレイリストを作成して、内部に蓄積するディスプレイリスト作成手段と、メインプロセッサを用いて、前記ディスプレイリスト作成手段により作成されたディスプレイリストからビットマップデータへ変換して、ＶＲＡＭに書き込みを行う第１のレンダリング手段と、サブプロセッサを用いて、前記ディスプレイリスト作成手段により作成されたディスプレイリストからビットマップデータへ変換して、ＶＲＡＭに書き込みを行う第２のレンダリング手段と、前記メインプロセッサの処理状況を検出し、前記メインプロセッサが待ち状態である場合に、前記ディスプレイリスト作成手段により作成されて蓄積されているディスプレイリストに対するレンダリング処理の実行を前記第１のレンダリング手段に対して指示し、前記メインプロセッサが待ち状態でない場合に、前記ディスプレイリスト作成手段により作成されて蓄積されているディスプレイリストに対するレンダリング処理の実行を前記第２のレンダリング手段に対して指示するレンダー実行指示手段とを備えたことを特徴とする。
【０００６】
本発明は、前記第２のレンダリング手段は、前記ディスプレイリスト作成手段により作成されて蓄積されているディスプレイリストからビットマップデータへ変換する場合に、処理を実行するべきディスプレイリストを選択して、レンダリング処理を実行することを特徴とする。
【０００７】
本発明は、メインプロセッサを用いて、前記ディスプレイリスト作成手段により作成されたディスプレイリストからビットマップデータへ変換して、ＶＲＡＭに書き込みを行う第１のレンダリング手段と、サブプロセッサを用いて、前記ディスプレイリスト作成手段により作成されたディスプレイリストからビットマップデータへ変換して、ＶＲＡＭに書き込みを行う第２のレンダリング手段とを備えた画像形成装置における制御プログラムであって、印刷データを受信する受信処理と、受信した前記印刷データを解析するデータ解析処理と、前記データ解析処理による印刷データの解析結果に基づいて、中間データであるディスプレイリストを作成して、内部に蓄積するディスプレイリスト作成処理と、前記メインプロセッサの処理状況を検出し、前記メインプロセッサが待ち状態である場合に、前記ディスプレイリスト作成処理により作成されて蓄積されているディスプレイリストに対するレンダリング処理の実行を前記第１のレンダリング手段に対して指示し、前記メインプロセッサが待ち状態でない場合に、前記ディスプレイリスト作成手段により作成されて蓄積されているディスプレイリストに対するレンダリング処理の実行を前記第２のレンダリング手段に対して指示するレンダー実行指示出力処理とをコンピュータに行わせることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、メインプロセッサの処理実行状況に応じて、サブプロセッサを活用して、並列処理の実行を最適化するようにしたため、画像形成装置における描画処理の処理効率を最大限に活用することが可能になるという効果が得られる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の一実施形態による画像形成装置を図面を参照して説明する。図１は同実施形態の構成を示すブロック図である。この図において、符号１は、ホストコンピュータであるパソコンから送信される印刷データを受信する印刷データ受信部である。符号２は、受信した印刷データの内容を解析して解析結果を出力する印刷データ解析部である。符号３は、印刷データ中の描画データを処理する描画データ処理部である。符号３１は、拡大縮小の設定行列や現在有効なスクリーン等の描画に関係する設定情報を管理する描画環境管理部である。符号３２は、描画対象の図形を簡単な描画プリミティブに加工する描画処理部である。符号３３は、描画処理部３２において処理された情報を基にディスプレイリスト（中間データ）を作成するディスプレイリスト作成部である。符号３４は、ディスプレイリスト作成部３３において作成されたディスプレイリストを集めてレンダー要求を作成するレンダー要求作成部である。
【００１０】
符号４は、画像形成装置内のメモリを管理するメモリ管理部である。符号５は、画像形成装置の共通情報を管理し、画像形成装置の処理動作の制御を行なうシステム制御部である。符号６は、レンダー要求作成部３４から要求されたレンダー要求を待ち行列として保持するレンダー待ちキューである。符号７は、レンダー待ちキュー６からレンダー要求を取り出し、どのディスプレイリストをどのように処理するかを制御するレンダースケジューラである。符号８は、レンダースケジューラ７からの指示に基づき、レンダー待ちキュー６からレンダー要求を取り出し、ディスプレイリスト作成部３３において作成されたディスプレイリストからビットマップデータへ変換して、ＶＲＡＭに書き込みを行うページレンダラである。ページレンダラ８は、メインプロセッサを使ってビットマップを作成するＳｏｆｔＲＩＰ部８１と、サブプロセッサを使ってビットマップを作成するＨａｒｄＲＩＰ部８２を備えている。符号９は、ＶＲＡＭに書き込まれたビットマップデータに基づいて、印刷するべき画像を印刷媒体に転写を行なう出力部である。
【００１１】
次に、図１を参照して、印刷データ受信部１において印刷データを受信してからレンダー待ちキュー６にレンダー要求を格納するまでの動作を説明する。まず、印刷データ受信部１は、ホストコンピュータから送信される印刷データを受信する。印刷データ解析部２は、受信した印刷データを解析し、解析結果を描画データ処理部３へ出力する。これを受けて、描画環境管理部３１と描画処理部３２は複雑な図形を簡単な描画プリミティブに加工する処理を行う。例えば円を塗り潰す描画命令が印刷データにの解析結果に基づいて指定された場合は、円を台形に分割して各台形のパラメータを求める処理を行う。この場合の台形等の簡単な描画プリミティブはページレンダラ７が処理可能な描画機能になる。
【００１２】
次に、ディスプレイリスト作成部３３は、描画処理部３２から出力される描画プリミティブの情報を基にディスプレイリストを作成して、内部に蓄積する。続いて、レンダー要求作成部３４は、予め決められている条件に従ってレンダー要求を作成すべきか否かを判定する。この判定条件は、例えば、所定数のディスプレイリストが蓄積された場合等である。続いて、レンダー要求作成部３４は、所定の条件を満たしていれば、蓄積していた複数のディスプレイリストを基にレンダー要求を作成し、作成したレンダー要求をレンダー待ちキュー６に格納する。そして、印刷データ解析部２は、印刷データが終了するまで処理を繰り返し実行する。これにより、レンダー待ちキュー６には複数のレンダー要求が格納されることになる。
【００１３】
次に、図２を参照して、レンダースケジューラ７とページレンダラ８の処理動作を説明する。まず、レンダースケジューラ７は、レンダー待ちキュー６に格納されているレンダー要求を取得する（ステップＳ１）。そして、レンダースケジューラ７は、レンダー要求が終了した（最後のレンダー要求が処理済み）場合処理を終了する（ステップＳ２）。
【００１４】
一方、レンダー要求が終了でなければ、レンダースケジューラ７は、現時点でメインプロセッサが、待ちの状態であるか否かを判定する（ステップＳ３）。この判定の結果、メインプロセッサが待ちの状態でない（メインプロセッサが処理実行中である）場合、レンダースケジューラ７は、レンダー待ちキュー６にから取得したレンダー要求をＨａｒｄＲＩＰ８２に対して受け渡し、レンダリング処理の実行を指示する。これを受けて、サブプロセッサによるＨａｒｄＲＩＰ８２は、受け渡されたレンダー要求に基づいて、中間データ（ディスプレイリスト）を解釈してビットマップデータへ変換する処理を実行する（ステップＳ４）。そして、ページレンダラ８は、１ページ分のディスプレイリストをＳｏｆｔＲＩＰ８１またはＨａｒｄＲＩＰ８２により変換することにより得られたビットマップデータをＶＲＡＭへ書き込む。出力部９は、ＶＲＡＭに書き込まれたビットマップデータを読み出して、このビットマップデータに基づく画像を印刷媒体に転写する。これにより、印刷媒体に画像が印刷されることになる。
【００１５】
一方、メインプロセッサが待ちの状態であれば、レンダースケジューラ７は、現在の画像処理進行状況から、どのディスプレイリストに対して処理を実行するべきであるかを判断して、処理対象のディスプレイリストを選択する（ステップＳ５）。このディスプレイリスト選択は、例えば、以下に示す（１）〜（３）のいずれか方法によって対象ディスプレイリストを選択する。
（１）現時点で処理中のページに関連しているディスプレイリストのうち、レンダー待ちキュー６に格納されているキューの後ろから逆の順番で選択して処理する。
（２）現時点で処理中のページに関連している未処理ディスプレイリストのうち、処理の負荷が高いものから順に選択して処理する。
（３）現時点で処理中のページの次ページに関連しているディスプレイリストのうち、レンダー待ちキュー６に格納されている順に選択して処理する。
【００１６】
処理対象のディスプレイリストが選択されると、レンダースケジューラ７は、レンダー待ちキュー６にから取得したレンダー要求をＳｏｆｔＲＩＰ８１対して受け渡し、レンダリング処理の実行を指示する。これを受けて、メインプロセッサによるＳｏｆｔＲＩＰ８１は、受け渡されたレンダー要求に基づいて、中間データ（ディスプレイリスト）を解釈してビットマップデータへ変換する処理を実行する（ステップＳ６）。そして、ページレンダラ８は、１ページ分のディスプレイリストをＳｏｆｔＲＩＰ８１またはＨａｒｄＲＩＰ８２により変換することにより得られたビットマップデータをＶＲＡＭへ書き込む。出力部９は、ＶＲＡＭに書き込まれたビットマップデータを読み出して、このビットマップデータに基づく画像を印刷媒体に転写する。これにより、印刷媒体に画像が印刷されることになる。
【００１７】
このように、メインプロセッサの処理実行状況に応じて、サブプロセッサを活用して、並列処理の実行を最適化するようにしたため、画像形成装置における描画処理の処理効率を最大限に活用することが可能となる。
【００１８】
ここで、図３〜図５を参照して、図１に示すページレンダラ８の処理動作について説明する。印刷データを印刷するためのビットマップデータに変換する処理は、以下の（ａ）、（ｂ）に示す２つのプロセスに分けることができる。
（ａ）入力される印刷データ（ページ記述言語で記述されたデータ）を解釈し、中間データ（ディスプレイリスト）へ変換してレンダー待ちキュー６へ蓄積する。
（ｂ）レンダー待ちキュー６に蓄積されたレンダー要求に応じて、中間データ（ディスプレイリスト）を解釈してビットマップデータへ変換する。
【００１９】
図１に示すページレンダラ８は、汎用的な処理全般を受け持つメインプロセッサ（ＳｏｆｔＲＩＰ８１）による処理と、特定用途のために最適化されたサブプロセッサ（ＨａｒｄＲＩＰ８２）による処理を実行することが可能である。メインプロセッサで上記（ａ）の処理及び（ｂ）の処理の一部を受け持ち、一方サブプロセッサでは上記（ｂ）の処理におけるビットマップデータへの変換部分のみを受け持つ。サブプロセッサはメインプロセッサよりトータルの処理速度は遅いが、ディスプレイリストのビットマップ変換という部分に特化したコマンドセットを高速に処理できるプロセッサであるという特徴と有している。
【００２０】
図３に示すように、メインプロセッサのみによって、印刷データからディスプレイリストへ変換する処理（ＰＤＬ−ＤＬ）と、ディスプレイリストからビットマップデータへ変換する処理（ＤＬ−Ｂｉｔｍａｐ）とを交互に順に実行するより、メインプロセッサは、印刷データからディスプレイリストへ変換する処理（ＰＤＬ−ＤＬ）のみを実行し、サブプロセッサは、ディスプレイリストからビットマップデータへ変換する処理（ＤＬ−Ｂｉｔｍａｐ）のみを実行することにより、並列処理が可能となり、処理時間の短縮を図ることが可能となる。
【００２１】
一方、印刷データを処理する際、プロセッサ間での処理時間はばらつくため、メインプロセッサあるいはサブプロセッサのいずれかが待ちの状態になる場合がある。例えば、図４に示すように、メインプロセッサで（ａ）の処理を実行し、中間データであるディスプレイリストを生成しレンダー待ちキュー６へ格納していくが、サブプロセッサでレンダー待ちキュー６のディスプレイリストをビットマップデータへ変換する処理が間に合わない場合は、実装されているメモリの制限からこれ以上レンダー待ちキュー６にディスプレイリストを生成することができずメインプロセッサは待ち状態になってしまう場合がある。また、図５に示すように、複数ページの印刷データの最終ページにおいて、メインプロセッサは最終ページのディスプレイリストを生成してしまうと処理すべきデータが存在しないため待ち状態が発生してしまう場合がある。
【００２２】
しかし、図２に示すように、メインプロセッサの処理実行状況に応じて、サブプロセッサを活用して、並列処理の実行を最適化するようにしたため、画像形成装置における描画処理の処理効率を最大限に活用することが可能となる。
【００２３】
なお、図１における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより画像描画処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００２４】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【図面の簡単な説明】
【００２５】
【図１】本発明の一実施形態の構成を示すブロック図である。
【図２】図１に示す装置の動作を示すフローチャートである。
【図３】ページレンダラ８の処理動作を説明するための説明図である。
【図４】ページレンダラ８の処理動作を説明するための説明図である。
【図５】ページレンダラ８の処理動作を説明するための説明図である。
【符号の説明】
【００２６】
１・・・印刷データ受信部、２・・・印刷データ解析部、３・・・描画データ処理部、３１・・・描画環境管理部、３２・・・描画処理部、３３・・・ディスプレイリスト作成部、３４・・・レンダー要求作成部、４・・・メモリ管理部、５・・・システム制御部、６・・・レンダー待ちキュー、７・・・レンダースケジューラ、８・・・ページレンダラ、８１・・・ＳｏｆｔＲＩＰ、８２・・・ＨａｒｄＲＩＰ、９・・・出力部
【図１】
2007196468.tif 000003
【図２】
2007196468.tif 000004
【図３】
2007196468.tif 000005
【図４】
2007196468.tif 000006
【図５】
2007196468.tif 000007