(57)【特許請求の範囲】
【請求項１】
レンダリング方法であって、  
アクセラレータでレンダリングが可能な描画コマンドに関する情報を記憶した記憶部より、アクセラレータでレンダリングが可能な描画コマンドに関する情報を読み出す情報読み出し工程と、  
読み取った描画コマンドに関する情報に基づいて、描画コマンドについてソフトウエア処理でレンダリングするかアクセラレータでレンダリングするかを決定する決定工程と、  
レンダリングの対象となる描画コマンドに関する情報が、キャッシュメモリに記憶されたイメージデータに対応付けられた描画コマンドに関する情報と一致する場合に、前記キャッシュメモリから対応するイメージデータを読み出すイメージデータ読み出し工程と、を有し、
前記決定工程と前記イメージ読み出し工程とは、並行して行われることを特徴とすることを特徴とするレンダリング方法。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レンダリング方法に関する。
【背景技術】
【０００２】
プリンタ、コピー、ファックス等の機能を備えた複合機（ＭＦＰ）が知られている。複合機は、複数のコンピュータにネットワーク接続されている。各コンピュータの使用者は、コンピュータで作成した書面等のデータ（ページ記述言語）をネットワーク回線により複合機に送信する。ページ記述言語を受信した複合機は、そのページ記述言語を解析して描画コマンドを作成し、描画コマンドに基づいてレンダリング（描画処理）を行い、形成された画像を紙等の記録媒体に定着させて出力する。
【０００３】
レンダリングは、複合機のハードウェアでもソフトウェアでも行うことができる。例えば、ハードウェアにより描画を行う描画部とソフトウェアにより描画を行う描画部をそれぞれ複数備えた印刷装置において、描画部による描画処理を並列的に行い、処理速度を早めることができるものが知られている。
【０００４】
ここで、ソフトウェアによるレンダリング処理にするか、ハードウェアによるレンダリング処理にするかなど、描画コマンドをどのように振り分けるかは様々であり、高速処理可能なハードウェアでの処理を優先させ、ハードウェア処理がひっ迫している場合は、ソフトウェアに処理を振り分ける方法や、高品質（ＣＭＹＫ）なオブジェクトはハードウェアで処理し、低品質（ＲＧＢ）または複雑なオブジェクトはでソフトウェアで処理するように振り分ける方法などがある（例えば、下記特許文献１および下記特許文献２参照）。
【０００５】
一方、バリアブル印刷等では、複数ページからなるジョブ中の描画コマンドに同種のオブジェクトが含まれていた場合、当該オブジェクトとそのイメージデータを登録し、ページ展開処理時に登録情報と次に展開するオブジェクトを比較して、展開済みイメージを再利用している。このように再利用することで、各ページ共通のオブジェクトについては１回のレンダリング処理で済み、描画コマンドが複雑化しても、イメージ展開処理効率を向上することができる（例えば、下記特許文献３参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−２６９１７９号公報
【特許文献２】特開平０７−１３７３５３号公報
【特許文献３】特開２００４−１９２３９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１や特許文献２等のレンダリング処理の高速化技術において、負荷状況に応じて処理をソフトウェアかハードウェアかに振り分ける方法（通常、ハードウェアの方が高速）では、ソフトウェアとハードウェアとが同じオブジェクトを処理できる構成としなければならず、全てのオブジェクトに対応させるためにはハードウェアの回路規模・コストが増大するという問題がある。さらに、ハードウェアで処理するオブジェクト、ソフトウェアで処理するオブジェクトをあらかじめ決定しておく必要があるため、ハードウェアを容易に変更できないことや、ソフトウェアを接続されるハードウェアごとに修正しなければならないことなどが問題である。
【０００８】
更に、特許文献３等のイメージ再利用法は、あるジョブ中の描画コマンドしか対象としておらず、再利用可能な範囲はジョブ中に限られ、汎用性が低いという問題がある。異なるユーザが同一の書類を印刷する場合や、間違ってもう一度同じ書類を印刷してしまった場合など、異なるジョブ間で同一オブジェクトが処理されることもある。このような場合、特許文献３等のイメージ再利用法では、初めからレンダリング処理を行わなければならず、イメージ展開処理効率が低下するという問題がある。
【０００９】
そこで、本発明の目的は、上記課題を解決するためになされたものであり、ハードウェアの回路規模の拡大を抑え、ハードウェアの変更に応じてソフトウェアを変更する必要がなく、柔軟性の高いレンダリング方法を提供することにある。又、本発明の目的は、ジョブ単位かジョブ単位ではないに係らず過去に描画したことがある描画コマンドについてはイメージデータを再利用することで汎用性を高め、初めて処理する描画コマンドについてはソフトウェア処理かアクセラレータ処理のどちらか最適な方を選択し処理することで、イメージ展開処理効率の向上を図えるレンダリング方法を提供すること、及びアクセラレータにアクセラレータ自身が処理を得意とするオブジェクト情報を保持させ、その情報を取得することでソフトウェアの処理を決定し、アクセラレータを変更する度にソフトウェアを修正する必要がなくなると共に、アクセラレータを容易に変更可能にするレンダリング方法を提供することにある。
【課題を解決するための手段】
【００１４】
尚、「描画コマンド」は、イメージデータの形や大きさや描画位置を指定する情報を含み、イメージデータ自体を含んでいても良い。
【００２６】
請求項１に記載のレンダリング方法は、
アクセラレータでレンダリングが可能な描画コマンドに関する情報を記憶した記憶部より、アクセラレータでレンダリングが可能な描画コマンドに関する情報を読み出す情報読み出し工程と、  
読み取った描画コマンドに関する情報に基づいて、描画コマンドについてソフトウエア処理でレンダリングするかアクセラレータでレンダリングするかを決定する決定工程と、  
レンダリングの対象となる描画コマンドに関する情報が、キャッシュメモリに記憶されたイメージデータに対応付けられた描画コマンドに関する情報と一致する場合に、前記キャッシュメモリから対応するイメージデータを読み出すイメージデータ読み出し工程と、を有し、
前記決定工程と前記イメージ読み出し工程とは、並行して行われることを特徴とする。 
【００２７】
本発明によれば、同一ジョブか異なるジョブか否かに関わらずレンダリングの対象となる描画コマンドについて、レンダリングの対象となる描画コマンドに関する情報が、前記キャッシュメモリに記憶されたイメージデータに対応付けられた描画コマンドに関する情報と一致する場合に、レンダリングを行うことなく、前記メキャッシュメモリから対応するイメージデータを読み出して用いることにより、過去に描画したことがある描画コマンドについては、イメージデータ即ちイメージデータを再利用することで同じレンダリング処理の重複をなくし、初めて処理する描画コマンドについてはソフトウェアでのレンダリング処理かアクセラレータでのレンダリング処理のどちらか最適な方を選択し処理することができるので、描画処理の高速化・高効率化を図ることが可能となる。
【発明の効果】
【００３０】
本発明によれば、ハードウェアの回路規模の拡大を抑え、ハードウェアの変更に応じてソフトウェアを変更する必要がなく、柔軟性の高いレンダリング装置及びレンダリング方法を提供することができる。又、本発明によれば、ジョブ単位かジョブ単位ではないに係らず過去に描画したことがある描画コマンドについてはイメージデータを再利用することで汎用性を高め、初めて処理する描画コマンドについてはソフトウェア処理かアクセラレータ処理のどちらか最適な方を選択し処理することで、イメージ展開処理効率の向上を図えるレンダリング装置及びレンダリング方法を提供することができ、アクセラレータにアクセラレータ自身が処理を得意とするオブジェクト情報を保持させ、その情報を取得することでソフトウェアの処理を決定し、アクセラレータを変更する度にソフトウェアを修正する必要がなくなると共に、アクセラレータを容易に変更可能にするレンダリング装置及びレンダリング方法を提供するができる。
【図面の簡単な説明】
【００３１】
【図１】レンダリング装置の概略構成を示すブロック図である。
【図２】登録テーブルの内容を示す図である。
【図３】ＣＰＵの概略構成を示すブロック図である。
【図４】レンダリング装置によるレンダリング処理を示すフローチャートである。
【図５】アクセラレータ４の概略構成を示すブロック図である。
【発明を実施するための形態】
【００３２】
以下、図面を参照して、本実施の形態にかかるレンダリング装置、及びレンダリング方法について説明する。図１に示すレンダリング装置１１は、例えばスキャナ機能、コピー機能、プリンタ機能を備えた複合機に適用され、ホストコンピュータ１から印刷データ（レンダリングのためのページ記述言語）を受信し、受信した印刷データから解析した描画コマンドに基づいてレンダリング（描画処理）することによりイメージデータ（例えばビットマップデータ）を作成して、プリンタ１０に出力する機能を有する。尚、ホストコンピュータ１は、ネットワークに接続されていて良い。
【００３３】
より具体的に、レンダリング装置１１を説明する。レンダリング装置１１は、ホストコンピュータ１から送信された印刷データを一時的に保存する入力バッファ２と、レンダリング装置１１内の処理を制御するＣＰＵ（中央演算処理装置）３と、自身が処理できるオブジェクトの情報と処理内容（アクセラレータ４でレンダリングが可能な描画コマンドに関する情報）を内部のＲＯＭ４ａに保持しているアクセラレータ４（ハードウェアを想定）と、印刷データを描画コマンドに変換する描画コマンド変換プログラム、一度レンダリング処理をした描画コマンドと処理結果のイメージデータを対応付ける登録テーブル、後述する処理手順（ソフトウェア）などを格納するプログラムＲＯＭ５と、変換された描画コマンドや、処理手段判別情報等が格納されているソフトウェアのための管理領域のＲＡＭ６と、以前レンダリング処理したイメージデータを、レンダリング前の描画コマンドに関する情報と対応づけて格納するキャッシュメモリ７と、描画コマンドをレンダリング処理して得られたイメージデータを格納するページバッファ８と、ページバッファ８の内容をプリンタ１０側の水平・垂直同期信号に同期して、プリンタ１０にビデオ情報を転送するプリンタＩＦ９と、を有する。
【００３４】
アクセラレータ４は、図５に示すように、記憶部としてのＲＯＭ４ａの他に、描画部４ｂ、圧縮部４ｃと、処理部４ｄと、通信部４ｅとを備えている。描画部４ｂは、変換された描画コマンドをハードウェア処理手段によりレンダリングする機能を有する。圧縮部４ｃは、レンダリングされた画像データを制御部に送信する際に、画像データを圧縮する機能を有する。圧縮方法は、非可逆圧縮、可逆圧縮、二値化等があり、画像データの容量や再レンダリングの有無に応じて最適な圧縮方法が選択される。ＲＯＭ４ａは、アクセラレータ４の描画部４ｂでレンダリングが可能な描画コマンドに関する情報が記憶されている。このように、ＲＯＭ４ａには、アクセラレータ４の描画部４ｂでレンダリングが可能な描画コマンドに関する情報が記憶されているので、ＲＯＭ４ａに記憶されていない描画コマンドは全てソフトウェアでレンダリングされることとなる。処理部４ｅは、アクセラレータ４の各部の動作制御を行う。通信部４ｄは、描画コマンドを受信すると共に、描画部４ｂによりレンダリングした画像データを送信する機能を有する。
【００３５】
管理用ＲＡＭ６内には、図２に示すような登録テーブルが記憶されている。登録テーブルには、レンダリング前の描画コマンドに関する情報としての描画コマンドＩＤ（登録順）、描画コマンド内容、対応するイメージデータのアドレス、利用頻度などがテキストデータで記録されている。よって、記憶容量は低くて足りる。
【００３６】
又、図３に示すように、ＣＰＵ３は、レンダリング装置１１の起動時にアクセラレータ用ＲＯＭ４ａから処理可能なオブジェクトの種類の情報を読み出して、読み取ったオブジェクトの種類の情報に基づいて、描画コマンドについてソフトウェア（イメージ呼び出しおよびレンダリング処理制御部１３）でレンダリングするかハードウェア（アクセラレータ）でレンダリングするかを判定するレンダリング処理手段判別情報生成部１２と、ＣＰＵ３もしくはアクセラレータ４にレンダリング処理させたり、キャッシュメモリ７に保存されたイメージデータを呼び出すイメージ呼び出しおよびレンダリング処理制御部１３と、入力バッファ２に入力された印刷データを描画コマンドに変換する描画コマンド変換部１４と、ＣＰＵ３内での（ソフトウェアでの）レンダリング処理をする論理演算部１５と、プログラムＲＯＭ内の登録テーブルを参照する登録テーブル参照部１６と、を有している。
【００３７】
レンダリング処理手段判別情報生成部１２は、読み取った描画コマンドに関する情報に基づいて、描画コマンドをＣＰＵ３もしくはアクセラレータ４のいずれでレンダリングするかの判定情報を作成する。すなわち、レンダリング処理手段判別情報生成部１２は、判定情報作成手段として機能する。レンダリング処理手段判別情報生成部１２は、作成した判定情報を、レンダリング対象となる描画コマンドに付加する。判定情報の例としては、ＣＰＵ３で処理する描画コマンドに「０」のフラグを立て、アクセラレータ４で処理する描画コマンドに「１」のフラグを立てる。このように、描画コマンドに判定情報を付加することで、判定情報としてのフラグに基づいて、レンダリング処理制御部１３は、描画コマンドをＣＰＵ３もしくはアクセラレータ４のいずれによって処理すればよいのかを容易に判定することができる。
【００３８】
尚、ここで、描画コマンドは、画像データに展開するために必要な情報であり、例えば、オブジェクトの種類（画像、文字、図形、グラデーション等）、大きさ、色、形状、位置座標、処理の複雑さ（演算を何回繰り返すか等）、画像処理の種類（上書き処理、ＲＯＰ処理、透過処理等）、レンダリングの単位（例えば、ページ単位、バンド単位、各描画コマンド単位等）等である。一方、描画コマンドに関する情報としては、アクセレレータ４が処理可能なオブジェクトの種類、可能な処理の種類の他、アクセラレータ４の処理能力に関する情報（高速処理、低速処理等）も含んでいてよい。アクセラレータ４の処理能力に関する情報は、どの描画コマンドをアクセラレータ４でレンダリングさせるかを判定する際の指標となる。
【００３９】
レンダリング装置１１内部で、ＣＰＵ３は、入力バッファ２、プログラムＲＯＭ５、管理用ＲＡＭ６、キャッシュメモリ７、ページバッファ８、アクセラレータ４とアクセラレータ用ＲＯＭ４ａに通信可能に接続されており、各部を制御する機能を司る。
【００４０】
本実施の形態においては、論理演算部１５が、第１のレンダリング手段を構成し、ＲＯＭ４ａを含むアクセラレータ４が、第２のレンダリング手段を構成し、レンダリング処理手段判別情報生成部１２が読取手段及び判定手段を構成し、イメージ呼び出しおよびレンダリング処理制御部１３が制御手段を構成し、管理用ＲＡＭ６とキャッシュメモリ７がメモリ手段を構成する。
【００４１】
アクセラレータ用ＲＯＭ４ａ内には、そのアクセラレータ４が処理できるオブジェクトの種類に関する情報が保持されている。オブジェクトの種類には、「文字」、「グラフィック（図形）」、「画像」、「グラデーション」などがある。また処理の種類として、「上書き処理」、「ＲＯＰ処理」、「透過処理」などがある。
【００４２】
次に、図３のブロック図と、図４のフローチャートを参照して、レンダリング装置１１の動作を説明する。ここで、例えば、アクセラレータ４で処理可能なオブジェクトの種類が「文字」、「グラフィック（図形）」、可能な処理の種類が「画像」の「上書き処理」、「ＲＯＰ処理」であったとする。その場合、前処理としてアクセラレータ４のＲＯＭ４ａ内に、予め「文字」、「グラフィック（図形）」、「画像」の「上書き処理」、「ＲＯＰ処理」が処理可能であることを示す情報が保持される。
【００４３】
まず、レンダリング装置１１を含むＭＦＰのメインスイッチをオン操作すると、図４のフローがスタートし、まずステップＳ１０１（情報読み出し工程）で、ＣＰＵ３のレンダリング処理手段判別情報生成部12は、アクセラレータ用ＲＯＭ４ａから処理可能なオブジェクトの種類の情報を読み出して、続くステップＳ１０２で、その情報を基にレンダリング処理手段判別情報を生成し、管理用ＲＡＭ６に判別情報を格納する。
【００４４】
このとき、レンダリング処理手段判別情報生成部12は、プログラムＲＯＭ内に保持しておいた描画コマンド変換プログラムを用いて、入力バッファ２内の印刷データを描画コマンドに変換し、管理用ＲＡＭ６の登録に格納する。その際、描画コマンドには先の判定情報が付加され、ＣＰＵ３は、どのオブジェクトをアクセラレータで処理するか決定する（決定工程）。
【００４５】
この場合、「文字」、「グラフィック（図形）」、及び「画像」の「上書き処理」、「ＲＯＰ処理」はアクセラレータ４で処理し、それ以外のデータ処理はソフトウェアで処理すると決定する。
【００４６】
ステップＳ１０３で、ホストコンピュータ１から印刷データが入力されるのを待つ。印刷データが入力されると、ステップＳ１０４へと進み、ＣＰＵ３は描画コマンドへの変換を行う。このとき、例えば、「文字」、「グラフィック（図形）」、「画像」はアクセラレータ４で処理し、「グラデーション」はソフトウェアで処理するとの情報を描画コマンドに付加する。
【００４７】
印刷データの最初から順に処理を行うようにして、ステップＳ１０５で、未レンダリングの描画コマンドに進み、更にステップＳ１０６で、登録テーブル参照部１６が、現在処理しようとしている描画コマンドと、自身の登録テーブル中に書かれている描画コマンドの内容を比較し、両者の内容が一致したら、その描画コマンドは以前にレンダリング処理したものと判断できる。このとき、登録テーブル中で利用頻度が多い描画コマンドから優先的に検索するのが、処理を高速化する為に好ましい。
【００４８】
ここで、現在処理しようとしている描画コマンドが以前にレンダリング処理したものであると判断された場合、ステップＳ１１２で、イメージ呼び出しおよびレンダリング処理制御部１３は、管理ＲＯＭ６内の登録テーブルを参照して、その描画コマンドのＩＤから、対応するイメージデータの格納アドレスを取得し、イメージデータが格納されているキャッシュメモリ７の当該格納場所からイメージデータを読み出す（イメージデータ読み出し工程）。
【００４９】
読み出されたイメージデータはページバッファ８に送られ、ステップＳ１１３で、登録テーブル中に書かれている利用頻度の値が１増加される。これにより、レンダリング処理の高速化が図れる。
【００５０】
一方、ステップＳ１０６で、現在処理しようとしている描画コマンドが、以前登録されたものではないと判断された場合、ステップＳ１０７へと進み、管理ＲＯＭ６内の登録テーブルに、新たな描画コマンドのＩＤを登録する。
【００５１】
その後、ステップＳ１０８で、イメージ呼び出しおよびレンダリング処理制御部１３は、生成された描画コマンドの情報（オブジェクトの種類や処理内容）を読み出し、その情報を元に、アクセラレータＲＯＭ４ａ内の情報を参照して、ソフトウェアで処理するかアクセラレータ４で処理するかを判定する。尚、ステップＳ１０６とＳ１０８は、並行して実行されても良い。
【００５２】
ここで、「文字」、「グラフィック（図形）」、「画像」の「上書き処理」、「ＲＯＰ処理」は、アクセラレータ４で処理できるので、これらのオブジェクト及び処理であれば、アクセラレータ４で処理するものと判定され、ステップＳ１０９で、アクセラレータ４が描画処理（レンダリング）する。
【００５３】
尚、アクセラレータ４をどのオブジェクトに対応させるかは、アクセラレータ４の回路規模等を勘案して決定することができる。例えば「画像」オブジェクトのような演算を含まない単純な画素単位の描画処理は、ハードウェア設計も容易であり、回路規模を小さく低コストで実現でき、ハードウェア向きの処理と言える。一方、透過処理などの演算を多数含む処理はハードウェアの回路規模が大きくなり、コストが増加するため、ソフトウェア向きの処理と言える。
【００５４】
よって、コスト重視のアクセラレータでは、「画像」オブジェクトのみに対応し、機能重視のアクセラレータでは「透過処理」などの演算を多く含む処理にも対応する、といった具合にアクセラレータの構成を決定することができる。
【００５５】
一般的にハードウェアで処理させた方が高速に処理できるため、処理速度を求める機種では、高機能なアクセラレータを実装し、コストを求める機種では低機能なアクセラレータを実装するという、目的に応じた選択ができる。
【００５６】
一方、それら以外のオブジェクト及び処理であれば、ソフトウェアで処理するものと判定され、ステップＳ１１０で、論理演算部１５が描画処理（レンダリング）する。
【００５７】
このようにして生成されたイメージデータは、ステップＳ１１１で、ページバッファ８に保存される。
【００５８】
更に、ステップＳ１１４で、次ページ分の描画コマンドが入力されているか否かを判別し、次ページ分の描画コマンドが入力されているときは、ステップＳ１０５に戻って以降のフローを実行する。一方、次ページ分の描画コマンドが入力されていないときは、ステップＳ１１５にて、全ページ分のイメージデータが集まったものとして、プリンタ１０にビデオ転送する。尚、描画コマンドの一例としては、x=45,y=160,width=62,height=53,type=character、color=red、draw”ABC”などの情報が記載されており、これによりどのような文字や図形がどの位置に描画されるかを指示することができる。
【００５９】
その際、レンダリング処理後のイメージデータをキャッシュメモリ７に保存すると共に、管理用ＲＯＭ６内の登録テーブル中における、その描画コマンドに対応づけて、イメージデータの格納アドレスを記憶する。これにより、以降、同じ描画コマンドが入力された場合、改めてレンダリングすることなく、同じイメージデータを読み出すことができる。以上でレンダリング処理制御フローを終了する。
【００６０】
尚、イメージデータのキャッシュメモリ７への保存は、レンダリング処理時を避けるタイミングであれば、いつ行ってもよく、例えば登録テーブルの検索中などでも良い。又、描画コマンドを印刷装置が印刷可能なイメージデータヘレンダリングする画像処理装置は、印刷装置（システム）の中にあってもよい。更に、一定期間経過後においても、利用頻度が１以下のイメージデータについては、キャッシュメモリ７から削除すると共に、その描画コマンドのデータを登録テーブルから削除すると好ましい。
【００６１】
例えば、アクセラレータを高機能のものに交換した場合には、全ての描画コマンドのレンダリングをアクセラレータで行うことも可能となる。
【００６２】
また、上記実施形態においては、描画コマンドに関する情報に基づいて、いずれのレンダリング処理手段によってレンダリングを行うかを判定していたが、いずれの描画部によりレンダリングするかをページ単位又はバンド（一定の領域）単位で判定してもよい。ページ単位又はバンド単位で判定する場合には、そのページ又はバンドに含まれる描画コマンドのうち、処理が多い方の描画部を用いてレンダリングすることも可能である。これにより、レンダリングの際の判定を行う数を減らすことができるので、レンダリングの処理を早めることができる。
【００６３】
また、上記実施形態においては、アクセラレータ４でレンダリングを行う描画コマンドに関する情報をＲＯＭ４ａに記憶させていたが、ＲＯＭ４ａにアクセラレータ４の性能（高機能、標準、コスト低減等）を記憶させておき、各アクセラレータ４で対応できる描画コマンドを制御部に記憶させておいてもよい。この場合、アクセラレータ４にアクセスしてアクセラレータ４の性能を判定した後、対応する描画コマンドを制御部から読み取り、それぞれの描画部に分けてレンダリングさせることになる。
【符号の説明】
【００６４】
１ ホストコンピュータ
２ 入力バッファ
３ ＣＰＵ
４ アクセラレータ
４ａ ＲＯＭ
５ プログラムＲＯＭ
６ 管理用ＲＡＭ
７ キャッシュメモリ
８ ページバッファ
９ プリンタＩＦ
１０ プリンタ
１１ レンダリング装置
１２ レンダリング処理手段判別情報生成部
１３ レンダリング処理制御部
１４ 描画コマンド変換部
１５ 論理演算部
１６ 登録テーブル参照部
【図１】
0005800217.tif 000002
【図２】
0005800217.tif 000003
【図３】
0005800217.tif 000004
【図４】
0005800217.tif 000005
【図５】
0005800217.tif 000006