JP3772407B2 - 画像処理装置 - Google Patents
画像処理装置 Download PDFInfo
- Publication number
- JP3772407B2 JP3772407B2 JP23933796A JP23933796A JP3772407B2 JP 3772407 B2 JP3772407 B2 JP 3772407B2 JP 23933796 A JP23933796 A JP 23933796A JP 23933796 A JP23933796 A JP 23933796A JP 3772407 B2 JP3772407 B2 JP 3772407B2
- Authority
- JP
- Japan
- Prior art keywords
- band
- information
- color component
- image data
- zero
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【0001】
【発明の属する技術分野】
本発明は、例えば、PDL(ページ記述言語)によって記述されたコードデータを入力し、これを解釈してビットマップ形式の画像データに展開する処理の高速化を図った画像処理装置に関する。
【0002】
【従来の技術】
一般に、PDLで記述されたコード画像データを用いると、当該データで示される画像を異なった機種の端末において共通の出力装置で出力したり、同じ形式のデータを異なる出力装置において出力することが可能となる。このため、PDLは、最近では印刷のみならず、種々の出力を行なう場合に用いられる。
このようなコード画像データによって示される画像を出力する場合、当該コード画像データの内容を解釈して、出力装置に要求されるデータ形式に変換する処理を行なうとともに、出力装置の出力動作に同期して供給する必要がある。
例えば、カラーページプリンタなどに出力する場合には、コード画像データを、ビットマップ形式に展開して、その展開結果たるデータ(ラスターデータ)を一時的に記憶するとともに、当該プリンタの出力動作(主走査動作と副走査動作)に同期して、ラスターデータを供給する必要がある。
従来では、コード画像データの展開処理を1ページ分行なって、その1ページ分のラスターデータをバッファに格納した後に、格納されたデータを出力装置の動作に同期して読み出して、当該データに基づいた画像出力を行なうようになっていた。
【0003】
ただし、この方法では、バッファに少なくとも1ページ分の容量が要求される、といった欠点があった。
そこで、出力画像を1ページではなく、副走査方向に帯状に分割した画像(バンド画像)て取り扱うことが試みられるようになってきた。
この場合、バンド画像を格納するバンドバッファを複数用意し、ラスターデータを格納すべきバンドバッファを順次循環させる形で変更するとともに、格納が完了したならば、バンドバッファを格納した順番でデータを読み出して、出力装置に供給することにより、バンドバッファの総容量を1ページ分よりも少なく抑えようとするのである。
【0004】
【発明が解決しようとする課題】
ところで、近年、出力装置の動作を短時間に済ますことが要求されている。画像をバンド画像として扱う場合に、このような要求をかなえるには、コード画像データをラスターデータに展開した後、これをバンドバッファに格納するという一連の処理(レンダリング処理)を高速化するとともに、そのレンダリング処理に要する時間の正確な予測とが不可欠である。
なぜならば、レンダリング処理を高速にすれば、出力に要する時間の短縮に直接寄与するし、レンダリング処理に要する時間の正確な予測が可能であれば、レンダリング処理の進捗状況に対し、出力装置を適切なタイミングで起動させることができ、やはり、出力に要する時間の短縮に寄与するからである。
本発明は、上述した事情に鑑みてなされたものであり、その目的とするところは、レンダリング処理をバンド画像毎に行なうものにおいて、レンダリング処理の高速化と、そのレンダリング処理に要する時間の正確な予測とを図った画像処理装置を提供することにある。
【0005】
【課題を解決するための手段】
上記課題を解決するために、本発明にあっては、コード画像データの内容を解釈する解釈手段と、前記解釈手段による解釈結果に基づいて、出力すべき画像を分割したバンド画像に対応した中間コード画像データを、バンド画像毎に作成する中間コード作成手段と、前記解釈手段の解釈結果から、各バンド画像において各々の色成分の有無を当該色成分のランレングスの総数によって示したバンド情報であって、当該ランレングスの総数を色成分がゼロである場合と色成分がゼロでない場合とで分けて持たせたバンド情報を作成する識別手段と、前記バンド画像に対応する中間コード画像データを、要求される形式のデータに展開し、バンドバッファに書き込む展開書込手段と、前記展開書込手段に対し、前記バンド情報においてランレングスの総数によって色成分が無いことが示されているバンド画像については、その色成分での展開を行なわないように制御する制御手段と、前記バンド情報において、色成分がゼロである場合の前記ランレングスの総数と、色成分がゼロでない場合の前記ランレングスの総数とに基づいて、前記展開書込手段による書き込みに要する時間を予測する予測手段とを具備することを特徴としている。
【0006】
(作用)
本発明によれば、コード化されたコード画像データの内容が解釈され、その解釈結果に基づいて、バンド画像に対応した中間コード画像データがバンド画像毎に作成されるとともに、バンド画像の描画成分を識別したバンド情報がバンド画像毎に作成される。そして、中間コード画像データは、出力装置において要求される形式のデータに展開されるが、その際、バンド情報においてそのバンド画像の描画成分がゼロであるバンド画像については、その成分での展開は、行なわれない。
したがって、各描画成分に対して一律に展開を行なうのではなく、実質的に描画を行なう必要のない成分について展開をスキップさせるので、展開処理に要する時間をその分短縮することができ、総合的に見てレンダリング処理に要する時間も短縮することが可能となる。
ところで、バンド情報としては、その描画成分を一般的な色成分とすることが考えられる。この場合、各色成分をフラグやランレングスとして持たせれば良い。さらに、色成分をランレングスとして持たせるには、色成分がゼロのものとゼロでないものとに分けることや、描画オブジェクトの内容毎に分けることなど考えられる。ランレングスを用いた場合、展開処理に要する時間の予測が容易となるので、その分、レンダリング処理に要する時間の正確な予測に寄与することが可能となる。
また、レンダリング処理に要する時間をさらに正確に予測するためには、展開処理における他の要因や、展開処理以外の処理に要する時間を予測しなければならない。これには、例えば、バンドバッファのゼロクリア処理に要する時間を予測するための、バンド画像について展開されたデータサイズの情報や、バンドバッファへの書込処理に要する時間を予測するための、描画オブジェクトに重なりがあるかを示す情報、同じく書込処理に要する時間を予測するための、間引き処理が行なわれたか否かを示す情報、展開処理において伸張する場合に、その伸張処理に要する時間を予測するための、圧縮処理が行なわれたか否かを示す情報などが考えられる。また、バンドバッファへのゼロクリア処理をスキップするため、バンドバッファ毎にゼロクリアされているか否かの情報も考えられる。
【0007】
【発明の実施の形態】
<1:実施形態の構成>
以下、本発明による一実施形態について図面を参照して説明する。図1は、本実施形態にかかる画像処理装置の構成を示すブロック図である。この図に示す画像処理装置1は、ネットワークやスプールディスクなどから供給されたコード画像データを、CMYKの面順次型データにレンダリング処理して、出力装置に供給するものである。ここで、コード画像データは、PDLで記述されたものである。
【0008】
図において、コード画像データ解釈部2は、入力されたコード画像データの内容を解釈するものである。中間コード画像データ変換部3は、コード画像データの内容を解釈した結果、そのなかにオブジェクトの描画を指示するもの(描画オブジェクト)がある場合に、ラスタデータを作成するための中間コード画像データをバンド毎に作成するものである。なお、オブジェクトには、例えば、グラフィクスや、フォント、イメージなど種々のものがある。
保持ブロック4は、作成された中間コード画像データを保持するものであり、一般にシステムメモリの一部分が割り当てられる。展開部5は、中間コード画像データを出力装置において要求されるラスターデータに展開処理するものである。
バッファ6は、本実施形態にあっては4つバンドバッファからなるものであり、展開部5で処理されたラスターデータを、バンドバッファに格納した後、出力装置に供給するものである。
【0009】
さて、これらの構成において、画像処理装置1におけるレンダリング処理とは、主に、次の4つからなる一連の処理をいう。すなわち、レンダリング処理は、▲1▼バンドバッファをゼロにクリアするクリア処理、▲2▼中間コード画像データを保持ブロック4から読み出す読出処理、▲3▼読み出した中間コード画像データをラスターデータに展開する展開処理、および▲4▼ラスターデータをバンドバッファに書き込む書込処理に大別される。
【0010】
なお、本実施形態の出力装置としては、CMYKの面順次型データに基づいて、各色成分毎に順番に画像形成を行なうカラーページプリンタを想定している。そして、かかる出力装置は、Kのみの色成分により白黒の画像出力を行なう白黒モードと、CMYKのすべての色成分によりフルカラーの画像出力を行なうカラーモードとを切替可能なものとする。
また、このような出力装置の動作も含めて、画像処理装置1における各構成要素は、図示しない制御部により制御されるようになっている。
くわえて、一般にバンドバッファの数は、2個以上必要であるが、レンダリング処理の高速化を図るには、3個以上必要である。これは、次の理由による。すなわち、バンドバッファの個数が2個であると、一方のバンドバッファからラスターデータが読み出されて出力装置に供給されている期間、他方のバンドバッファには、展開されたラスターデータが格納されるが、前者の読出は、出力装置の出力動作に同期するので一定速度で行なわれるが、後者の展開は、そのバンドに存する描画オブジェクトの数および種類に依存して一定でない。ここで、1つのバンド画像をレンダリング処理するのに要する時間が、出力装置において1つのバンド画像を出力するのに要する時間よりも短い場合、レンダリング処理は、バンドバッファが解放されるまで、常に待機状態となり、非常に効率が悪い。そこで、レンダリング処理が待機状態となるのなるべく防ぐため、バンドバッファが3個以上必要となる。なお、本実施形態にかかる画像処理装置1においては、余裕を見越して4個のバンドバッファを備えることとした。
【0011】
<1−1:バンド情報>
次に、バンド情報について説明する。バンド情報とは、後述するステップS10においてセットされるものであり、基本的に、バンド画像における識別情報を色成分毎に持たせたものである。さらに、レンダリング処理に要する時間を正確に予測する場合には、そのバンドについてなされた処理情報などが付加される。このバンド情報には、画像処理装置1における各機能により、種々考えられるので、基本的なものから順に説明することとする。
【0012】
<1−1−1:フラグ>
このバンド情報は、そのバンドにおける識別情報をフラグとして持たせたものであり、例えば、図2に示すように、CMYKの各色成分毎に対応したフラグを有する。
この場合、各色成分に対応するフラグの初期値はすべてオフである(例えば、初期化動作で、その旨を示す値のゼロがセットされる)。そして、コード画像データ解釈部2がコード画像データを解釈して、それが描画オブジェクトである場合、中間コード画像データ変換部3が、その描画オブジェクトに対しCMYKの各色成分についてチェックし、色成分がゼロ以外であれば、当該色成分に対応するフラグをオンにする(例えば、その旨を示す値の「1」をセットする)。
【0013】
このバンド情報において、フラグがオフのままである場合、そのバンドにおいて当該色成分の描画が行なわれないことを意味する。したがって、その色成分についてレンダリング処理する際に、上記▲2▼読出処理、▲3▼展開処理、▲4▼書込処理については省略できるので、その分、レンダリング処理を高速化することが可能となる。例えば、あるバンドについてCMYの色成分に対応するフラグがすべてオフの場合、そのバンドについてはKの色成分についてのみレンダリング処理を行なえば良い。この場合、出力装置のモードを白黒モードにセットすることにより、出力装置における出力時間も短縮化することができる。
【0014】
<1−1−2:ランレングス>
このバンド情報は、そのバンドにおける識別情報をランレングスとして持たせたものであり、その最も簡単な例は、図3に示すように、CMYKの各色成分毎に対応したランレングスの情報を有する。
この場合、各色成分に対応するランレングス情報の初期値はすべてゼロである(例えば、初期化動作で、その旨を示す値のゼロがセットされる)。そして、コード画像データ解釈部2がコード画像データを解釈して、それが描画オブジェクトである場合、中間コード画像データ変換部3が、その描画オブジェクトに対しCMYKの各色成分についてチェックし、色成分がゼロ以外であれば、当該オブジェクトの総ランレングス数を、色成分に対応するランレングス情報に累算する。
ここで、本実施形態にあっては、CMYKの面順次型データを出力するものであるから、そのバンドにおける描画オブジェクトに重なりがなければ、ランレングス情報の値は、フルカラー(8ビット/色)の場合においてバンドバッファへの書込バイト数と等しくなる。
【0015】
このバンド情報において、ランレングス情報の値がゼロである場合、そのバンドにおいて当該色成分の描画が行なわれないことを意味する。したがって、識別情報としてフラグを用いた場合と同様に、その色成分についてのレンダリング処理の際に、上記▲2▼読出処理、▲3▼展開処理、▲4▼書込処理については省略することができるので、その分、レンダリング処理を高速化することが可能となる。
あるバンドについてCMYの色成分に対応するランレングス数がすべてゼロの場合も同様である。
さらに、後述するように、ランレングス数によって、レンダリング処理に要する時間を予測できる。
【0016】
このようにランレングスを識別情報を持つものは、次のように発展させて、レンダリング処理の時間を予測するための情報として活用することができる。
【0017】
<1−1−2−1:ゼロの場合とゼロでない場合とのランレングス数を持つ>
このバンド情報は、そのバンドにおける識別情報をランレングスとして持たせたものであって、図4に示すように、ゼロの場合のランレングス数とゼロでない場合のランレングス数とを各色成分毎に持たせたものである。
この場合、各色成分に対応する双方のランレングス数の初期値はすべてゼロである(例えば、初期化動作で、その旨を示す値のゼロがセットされる)。そして、コード画像データ解釈部2がコード画像データを解釈して、それが描画オブジェクトである場合、中間コード画像データ変換部3が、その描画オブジェクトに対しCMYKの各色成分について、その色成分がゼロのランレングス数と、その色成分がゼロでないランレングス数とをチェックし、当該色成分に対応するそれぞれのランレングス数に累算する。
なお、このバンド情報において、マージフラグとは、描画オブジェクトの重なりをなくしたマージ処理が実行されたことか否かを示すものであり、また、間引きフラグとは、間引き処理が実行されたか否かを示すものである。両者を参照することで、後述するように、レンダリング処理のうち▲4▼書込処理に要する時間をより正確に予測できる。
【0018】
このバンド情報において、色成分がゼロでないランレングス数がゼロである場合、そのバンドにおいて当該色成分の描画が行なわれないことを意味する。したがって、識別情報としてフラグを用いた場合と同様に、その色成分についてのレンダリング処理では、上記▲2▼読出処理、▲3▼展開処理、▲4▼書込処理について省略することができるので、その分、レンダリング処理を高速化することが可能となる。
また、そのバンドにおける描画オブジェクトに重なりがなければ、ゼロでないランレングス数は、フルカラー(8ビット/色)の場合においてバンドバッファへの書込バイト数と等しくなる。このため、▲4▼書込処理に要する時間の予測が行なうことができる。
このように、ランレングス数を、色成分がゼロのものと、そうでないものとに分けたことより、レンダリング処理の高速化とそれに要する時間の予測とに寄与することができる。
【0019】
<1−1−2−2:オブジェクトの内容毎にランレングス数を持つ>
このバンド情報は、図5に示すように、そのバンドにおける識別情報を、オブジェクト毎のランレングス数として持たせたものである。
この場合、各色成分に対応するランレングス数の初期値はすべてゼロである。このようにランレングス数をオブジェクト毎に分類したのは、オブジェクト毎に展開処理が異なるためである。例えば、オブジェクトがグラフィックの場合、中間コード画像データに基づいてラスターデータが作成されて図形が描画されるし、また、オブジェクトがフォントの場合であって、フォントキャッシュにヒットしたときは、フォントキャッシュ内にキャッシングされたビットマップデータがコピーされて当該フォントが描画される一方、フォントキャッシュにミスヒットしたときは、新たにアウトラインフォントデータから該当する文字のベクトルデータが読み出され、これを基にビットマップデータが展開されて、当該フォントが描画されるし、さらに、オブジェクトがイメージの場合、中間コード画像データとは別の領域に保持されているイメージデータをコピーすることにより、当該イメージが描画される。このように、オブジェクト毎に展開処理が異なるために、その処理に要する時間も、当然異なってくる。
したがって、レンダリング処理を高速化するとともに、その処理時間を予測するには、ランレングス数をオブジェクト毎に分けた方が都合が良い。
【0020】
なお、このバンド情報において、中間コード画像データの総バイト数は、レンダリング処理のうち▲2▼読出処理に要する時間を予測するためのものであり、コード画像データの解釈結果、それが描画オブジェクトである場合、その描画オブジェクトに対応する中間コード画像データのバイト数が順次累算されたものである。
また、バンドバッファゼロクリア時間は、レンダリング処理のうち▲1▼クリア処理に要する時間を予測するためのものであり、そのバンドの容量に係数を乗じたものである。
【0021】
<1−1−2−3:ゼロの場合とゼロでない場合とのランレングス数をオブジェクト毎に持つ>
このバンド情報は、図6に示すように、図4および図5の双方を組み合わせたものである。
この例では、描画オブジェクトの重なりを考慮するので、レンダリング処理の高速化に寄与し、また、展開処理に要する時間をオブジェクト毎に考慮するので、レンダリング処理に要する時間の正確な予測に寄与することできる。
なお、図6に示すバンド情報において、オブジェクトがイメージである場合のランレングス数を、ゼロのものとゼロでないものとに分けていない理由は、イメージデータについてその色成分がゼロか否かを1バイト毎に識別する処理の負荷が大きいためである。
また、圧縮フラグとは、後述するように圧縮処理が施されたか否かを示すものであり、このフラグを参照することにより、レンダリング処理のうち▲3▼展開処理に要する時間のうち、その伸張に要する時間も考慮するので、より正確に予測することができる。
【0022】
このように、バンド情報を、識別情報や、処理情報などを種々付加することで、レンダリング処理の高速や、その処理に要する時間を予測することができる。そこで、本実施形態にあっては、図6に示したバンド情報を用いることとする。
【0023】
<1−2:レンダリング情報>
次に、レンダリング情報について説明する。このレンダリング情報とは、レンダリング処理に要する時間を予測するのに必要な情報であって、この画像処理装置1に固有な情報である。すなわち、中間コード画像データには依存しない情報であるため、バンド情報とは別個に規定することとした。
その内容を図7に示す。図において、メモリ読出効率とは、保持ブロック4から中間コード画像データを単位時間あたりに読み出す転送レート(バイト/時間)の逆数(時間/バイト)であり、メモリ書込効率とは、ラスターデータをバンドバッファに単位時間あたりに書き込む転送レート(バイト/時間)の逆数(時間/バイト)である。
また、コピー効率とは、副走査方向の1ライン分のラスターデータをバンドバッファに複写する速度(バイト/時間)の逆数(時間/バイト)であり、伸張効率とは、圧縮されたデータの伸張速度(バイト/時間)の逆数である。
これらの情報は、固定値として保持されている。
さらに、バッファ(n)のゼロクリア情報とは(n:は1〜4の整数)、バッファ6を構成する4つのバンドバッファについて、ゼロクリア処理されたか否かをバンドバッファ毎に示す情報(例えばフラグ)であり、ゼロクリアされていれば、制御部によってオンとされるものである。
【0024】
<1−3:他>
次に、この画像処理装置1において、レンダリング処理において補足的に行なわれる処理について説明する。
マージ処理は、描画オブジェクトの重なりをなくす処理である。この処理は、一般に、その負荷が重いので、第1に、保持ブロック4の容量が不足した場合や、第2に、後述するレンダリング時間予測処理において、当該バンドにかかるレンダリング処理が、出力装置における1バンド画像の出力に要する時間よりも長くなると予想された場合に、そのバンドに対して行なわれる。そして、このマージ処理が実際に行なわれると、そのバンドに対応するバンド情報のマージフラグがオンにされる。
間引き処理は、展開時にラインを間引く処理である。この処理は、第1に、保持ブロック4の容量が不足した場合や、第2に、後述するレンダリング時間予測処理において、当該バンドにかかるレンダリング処理が、出力装置における1バンド画像の出力に要する時間よりも長くなると予想された場合に、そのバンドに対して行なわれる。そして、この間引き処理が実際に行なわれると、そのバンドに対応するバンド情報の間引きフラグがオンにされる。なお、この場合、識別情報のランレングス数は、間引かれていないライン数に対応するものとする。
圧縮処理は、第1に、システムメモリの容量不足のために、イメージデータをそのままの状態で保持できなくなった場合や、第2に、描画オブジェクトを中間コード画像データとして保持するよりもラスターデータとして保持する方が有利とみなされて、ラスターデータに展開されたものの、システムメモリの容量が不足したため、当該ラスターデータをそのままの状態で保持できなくなった場合などに、その描画オブジェクトあるいはそのバンドに対して実行される。そして、この圧縮処理が実際に行なわれると、そのバンドに対応するバンド情報の圧縮フラグがオンにされる。なお、この場合、識別情報のランレングス数は、圧縮された描画オブジェクトあるいはそのバンドに対応するものとする。
【0025】
<2:実施形態の動作>
次に、この画像処理装置1の動作について説明する。図8〜図12は、それぞれ画像処理装置1の動作を示すフローチャートである。まず、PDLで記述されたコード画像データがネットワークやスプールディスクなどから供給されると、図8に示す画像データ処理が起動される。
【0026】
はじめに、ステップS1において制御部は、コード画像データ解釈部2がコード画像データについてすべて解釈したか否かを判別する。制御部は、この判別結果が「Yes」ならば、処理手順を後述するステップS11に分岐させて、レンダリング時間予測処理を実行した後、実際にレンダリング処理を開始する一方、判別結果が「No」ならば、処理手順を次のステップS2として、当該コード画像データについての解釈をコード画像データ解釈部2に指示する。これにより、コード画像データの解釈が継続される。
次に、制御部は、ステップS3において、コード画像データ解釈部2による解釈の結果、それが描画オブジェクトであるか否かを判別する。制御部は、それが描画オブジェクトでなければ、引き続き当該コード画像データについての解釈を継続すべく処理手順をステップS1に戻す。一方、制御部は、それが描画オブジェクトであれば、次のステップS4において、その描画オブジェクトに対応する中間コード画像データを作成する旨を、中間コード画像データ変換部3に指示する。これにより当該描画オブジェクトに対応する中間コード画像データが作成される。
【0027】
中間コード画像データが作成されると、ステップS5において制御部は、システムメモリに中間コード画像データの保持するための領域が存在するか否かをチェックする。
もし、保持領域が存在しなければ、制御部は、ステップS6においてさらにメモリに未使用領域が存在するか否かをチェックする。未使用領域があれば、制御部は、ステップS7においてその領域を保持ブロックとして確保する。一方、未使用領域がなければ、制御部は、ステップS8において、当該中間コード画像データに対し間引き処理を実行するなどの保持ブロック獲得処理を実行する。これにより、当該中間コード画像データの容量は少なくされるので、より少ない容量で保持ブロックが確保される。作成(あるいは間引き)された中間コード画像データは、ステップS9において保持ブロック4にセットされる。
【0028】
次に、ステップS10において制御部は、当該描画オブジェクトが存在するバンドについて、その描画オブジェクトの各色成分毎のランレングス数や、各フラグを、そのバンドの識別情報としてセットする。具体的な、識別情報の内容について図6に示した通りである。
以降、制御部は、そのコード画像データに含まれる他の描画オブジェクトについても、同様な処理を実行すべく、処理手順をステップS1に戻す。そして、制御部は、そのコード画像データに含まれるすべての描画オブジェクトに対して処理を完了すると、処理手順を、図9におけるステップS11に分岐させる。
したがって、ステップS11に分岐した段階では、各ページを構成するバンド画像の各々に対しバンド情報が作成されることになる。
【0029】
ステップS11において制御部は、レンダリング時間予測処理を実行して、次のように、各バンド画像について、そのレンダリング処理に要する時間を予測する。
前述したように、レンダリング処理は、▲1▼バンドバッファをすべてゼロにクリアするクリア処理、▲2▼中間コード画像データをメモリから読み出す読出処理、▲3▼読み出した中間コード画像データをラスターデータに展開する展開処理、および▲4▼ラスターデータをバンドバッファに書き込む書込処理に大別される。そして、これら4つの処理に要する時間は、次のように算出することができる。
▲1▼クリア処理に要する時間は、バンドバッファの容量に依存した定数であるといえる。このため、本実施形態のように、すべてのバンドバッファサイズが固定値であるならば、特に情報を参照しなくても、クリア処理に要する時間を求めることはできる(ただし、説明の便宜上、図6に示すように、バンド情報にバンドバッファゼロクリア時間を設けた)。
▲2▼読出処理に要する時間は、読み出すべき中間コード画像データの総バイト数と読出効率(時間/バイト)との積により求めることができる。ここで、中間コード画像データの総バイト数については、1つの描画オブジェクトに対応するコード画像データのバイト数が、その変換の際に求められ(ステップS4)、そのバンドにおける総数が識別情報としてセットされている(ステップS10)ので、当該バンド情報を参照することで求められる。また、読出効率は、レンダリング情報(図7参照)を参照することで求められる。
結局、当該バンド情報とレンダリング情報とを参照して、演算することにより、▲2▼読出処理に要する時間が求められることとなる。
▲3▼展開処理に要する時間は、描画オブジェクトの種類および数に依存する。さらに、圧縮されている場合には、その伸張処理に要する時間も含まれる。ここで、描画オブジェクトの種類および数については、当該バンド情報において描画オブジェクト毎のランレングス数を参照することで求められる。また、圧縮された場合に、その伸張処理に要する時間は、レンダリング情報の伸張効率を参照することで求められる。結局、圧縮が行なわれていなければ当該バンド情報を参照することにより、また、圧縮が行なわれていればさらにレンダリング情報を参照することにより、▲3▼展開処理に要する時間が求められることとなる。
▲4▼書込処理に要する時間は、基本的に、CMYKの総ランレングス数と書込効率(時間/バイト)との積により求めることができる。ただし、マージ処理が行なわれた場合には、CMYKの総ランレングス数として、ゼロでないランレングス数を用いる。
ここで、CMYKの総ランレングス数あるいはゼロでないランレングス数は、バンド情報を参照することで求められる。また、書込効率は、レンダリング情報を参照することで求められる。
結局、基本的には、当該バンド情報とレンダリング情報とを参照して、演算することにより、▲4▼書込処理に要する時間が求められることとなる。
ただし、間引き処理が行なわれた場合、さらに、間引かれたラインの補間処理に要する時間を加算する必要がある。かかる補間処理は、後述するように、間引かれていない近傍のラインについてのラスターデータをコピーして当該バンドバッファに格納する処理であり、この処理に要する時間は、間引かれたライン数にかかるバイト量とレンダリング情報のコピー効率との積により求めれる。ここで、間引き処理が行なわれた場合、そのバンド情報に示されるランレングス数は、間引きされたライン数のバイト量を含まないものである。このため、間引かれたライン数のバイト量は、間引き処理の内容と、当該バンドのランレングス数から逆算して求めることができる。また、コピー効率は、レンダリング情報を参照することで求められる。
結局、間引き処理が行なわれた場合であっても、その補間処理に要する時間をも考慮して、▲4▼書込処理に要する時間が求められることとなる。
【0030】
このように、1つのバンドにおけるレンダリング処理に要する時間は、▲1▼〜▲4▼に求められる時間の和であり、いずれも、当該バンド情報とレンダリング情報とを参照することで求められる。
そして、このようにして求めた時間の和を、制御部は、当該バンドにおいてレンダリング処理に要する時間と予測する。
次に、この処理により予測された時間が、出力装置において1つのバンド画像の出力に要する時間よりも長くなるバンドが1つでも存在する場合、制御部は、中間コード画像データに対しマージ処理、間引き処理を順番に実行し、これら処理後に再度、レンダリング時間予測処理を実行する。そして、これら処理を実行したのにもかかわらず、いずれかのバンドについてレンダリング処理に要する時間が、出力装置における1バンド画像の出力時間よりも長いと予測すれば、制御部は、不良画像が出力される旨をユーザに知らせるなどのエラー処理を実行する。
一方、各バンドについての予測時間が、出力装置における1バンド画像の出力に要する時間より、すべて短ければ、制御部は、次に述べる以降の処理を実行して、実際にレンダリング処理を開始する。
【0031】
まず、制御部はステップS12において未処理となっている色が存在するか否かを判別する。ここで、色の処理順序については、CMYKの面順次型データを、白黒モード/カラーモードの切替が可能な出力装置に供給するものであるから、KYMCとする。
すべての色について処理していれば、当該コード画像データによって出力すべき全ページにおけるすべてのバンドについてレンダリング処理が完了したことになるから、当該レンダリング処理が終了する。一方、制御部は、未処理の色があれば、処理対象をその色に設定し、次のステップS13において、未処理のバンドが存在するか否かを判別する。
もし、未処理のバンドがあるならば、制御部は、処理対象をそのバンドに設定する。なお、バンドについての処理の順番は、画像の副走査方向となっている。
【0032】
次に、制御部は、ステップS14において、バンドバッファがゼロクリアにされているか否かを判定する。ここで、バンドバッファをゼロクリアするか否かの判定は、バンドにコード画像データが存在するか否かとは無関係なので、本実施形態においては、各バンドバッファに対応して設けられるゼロクリア情報により判定することとする。したがって、ゼロクリア情報は、各バンドについての色毎の識別情報とは全く無関係である。
これにより、制御部は、使用するバンドバッファに対応するゼロクリア情報をチェックして、当該バンドバッファがゼロクリアされていないと認識すれば、識別情報によって、当該バンドに描画オブジェクトが存在しなくても、ステップS15において当該バンドバッファのゼロクリア処理を実行する一方、当該バンドバッファがすでにゼロクリアされていると認識すれば、ステップS15におけるゼロクリア処理をスキップする。
【0033】
この後、制御部は、ステップS16において、処理対象となっているバンドについて処理対象となっている色成分がゼロか否かを判別する。この判別は、識別情報としてフラグが用いられる場合にあっては、当該色成分に対応するフラグがオフであるか否かを検出することで行なわれ、また、識別情報としてランレングスが用いられる場合にあっては、当該色成分に対応するランレングスがゼロであるか否かを検出することで行なわれる。
もし、色成分がゼロであれば、制御部は、当該色成分について、▲2▼読出処理、▲3▼展開処理、および▲4▼書込処理をスキップすべく、処理手順を後述するステップS34に移行させる一方、色成分がゼロでなければ、次のステップS17以降において中間コード画像データの解釈を行なわせる。
その前にステップS17においては、制御部は、当該バンドに対応するバンド情報のうちのマージフラグを参照して、当該バンドにおいてマージ処理が実行されたか否かを判別する。制御部は、マージ処理が実行されていれば、処理手順を後述するステップS26に分岐させる一方、マージ処理が実行されていなければ、処理手順を図9におけるステップS19に分岐させる。
【0034】
制御部は、ステップS19において、当該バンドにおける未処理の中間コード画像データが存在するか否かを判別し、あれば展開部5に対し、次のように指示する。すなわち、制御部は、展開部5に対し、ステップS20において当該中間コード画像データを保持ブロック4から読み出すように指示し、ステップS21において当該中間コード画像データを解釈するように指示し、ステップS22においてその解釈結果たるラスタデータを当該バンドバッファに書き込むように指示する。これにより、当該中間コード画像データが実際にラスターデータに展開されて、対応するバンドバッファに格納されることとなる。
そして、制御部は、ステップS22における指示後、処理手順を再びステップS19に戻す。これにより、当該バンドにおけるすべての中間コード画像データについて、▲2▼読出処理、▲3▼展開処理、および▲4▼書込処理が実行されることとなる。
【0035】
一方、制御部は、ステップS19において、当該バンドにおける未処理の中間コード画像データが存在しないと判別すれば、処理手順をステップS23に分岐させ、そこで、当該バンドに対応するバンド情報のうちの間引きフラグを参照して、当該バンドにおいて間引き処理が実行されたか否かを判別する。間引き処理が実行されていなければ、当該バンドについてのレンダリング処理が完了したことを意味するから、制御部は、処理手順を後述するステップS34に分岐させる。一方、間引き処理が実行されていれば、制御部は、次のステップS24において展開部5に対して、描画オブジェクトのうち、間引かれていないラインについては、そのラスターデータを当該バンドバッファに格納するとともに、間引かれたラインについては、間引かれていない近傍のラインについてのラスターデータをコピーして当該バンドバッファに格納するように指示する。これにより間引かれたラインは補間されたことになる。
次に、制御部は、ステップS25において、当該バンドにおいて、未処理状態の間引かれたラインが存在するか否かを判別する。あれば、当該ラインについてコピー処理を同様に実行すべく、制御部は処理手順をステップS24に戻す一方、なければ、それは当該バンドにおいて間引かれたすべてのラインが補間されたことを意味するから、制御部は、処理手順を後述するステップS34に移行させる。
【0036】
さて、制御部は、図9のステップS17において、当該バンドに対しマージ処理が実行されていないと判別すると、処理手順を図11におけるステップS26に分岐させる。
制御部は、ステップS26において、当該バンドにおける未処理の中間コード画像データが存在するか否かを判別し、あれば、さらにステップS27において、その未処理となっている中間コード画像データにおいて、処理対象となっている色成分がゼロであるか否かを判別する。ゼロでなければ、制御部は、展開部5に対し、次のように指示する。すなわち、制御部は、展開部5に対し、ステップS28において当該中間コード画像データを保持ブロック4から読み出すように指示し、ステップS29において当該中間コード画像データを解釈するように指示し、ステップS30においてその解釈結果たるラスタデータを当該バンドバッファに書き込むように指示する。これにより、当該中間コード画像データが実際にラスターデータに展開されて、対応するバンドバッファに格納されることとなる。
一方、ステップS27において、未処理となっている中間コード画像データにおいて、処理対象となっている色成分がゼロであれば、制御部は、ステップS28〜S30をスキップさせる。
そして、制御部は、ステップS30における指示後あるいはステップS28〜S30をスキップさせた後、処理手順を再びステップS26に戻す。これにより、当該バンドにおけるすべての中間コード画像データについて、同様な処理が実行されることとなる。
【0037】
一方、制御部は、ステップS26において、当該バンドにおける未処理の中間コード画像データが存在しないと判別すれば、上述のステップS23〜S25と同様なステップS31〜S33の処理を実行する。これにより、当該バンドにおいて間引かれたすべてのラインが補間されることなる。
【0038】
次に、ある1つのバンドについてのレンダリング処理が完了した場合、あるいは、ある1つのバンドについてその色成分がゼロである場合、処理手順は図12におけるステップS34に移行する。
まず、制御部は、ステップS34において、出力装置が起動しているか否かをチェックする。すでに起動していれば、以降のステップS35〜S38の処理を実行する必要がないので、制御部は、次のバンドを処理すべく、処理手順を図9におけるステップS13に戻す。一方、出力装置がいまだ起動していなければ、制御部は、現時点における各状態が出力装置の起動条件を満たしているか否かを判別する。
ここで、出力装置の起動条件とは、ラスターデータの格納が完了したバンドバッファの個数が、所定値となったことである。本実施形態にあっては、バンドバッファの個数を4としたので、ラスターデータの格納が完了したバンドバッファの個数が2個となった状態が、起動条件を満たすものとする。このように起動条件を設定したのは次の理由による。
まず、第1に、前述のステップS11におけるレンダリング時間予測処理において、各バンドについてレンダリング処理の予測時間が、出力装置における1バンド画像の出力に要する時間よりすべて短かいと判断したので、ラスターデータの格納が完了したバンドバッファの個数を1個としても、少なくともラスターデータのバンドバッファへの書込がバンドバッファからの読出に追いつかないという事態は発生しないと考えられるが、余裕をみて2個としたからである。第2に、空き状態となっているバンドバッファの個数が少なくとも2個ないと、レンダリング処理を、出力装置において出力にかかるバンドに応じて不必要に待機させなければならないので、レンダリング処理を高速に実行する目的からすれば適切でないからである。
【0039】
さて、ステップS35において起動条件が満たされない場合、ラスターデータの格納が済んだバンドバッファの個数を増やすべく、レンダリング処理を引き続き継続させるため、制御部は、処理手順を図9におけるステップS13に戻す。一方、起動条件が満たされる場合、制御部は、ステップS36において、この処理にかかるすべてのバンドについてCMYの識別情報をチェックし、これらの色成分がすべてゼロであるか否かを判別して、色成分がKのみか否かを判断する。この色成分の判別は、識別情報としてフラグが用いられる場合にあっては、当該色成分に対応するフラグがオフであるか否かを検出することで行なわれ、また、識別情報としてランレングスが用いられる場合にあっては、当該色成分に対応するランレングスがゼロであるか否かを検出することで行なわれる。
そして、制御部は、色成分がKのみであれば、ステップS37において出力装置を白黒モードで起動させる一方、それ以外であれば、ステップS38において出力装置をカラーモードで起動させる。
この後、制御部は、処理手順を図9におけるステップS13に戻す。
【0040】
さて、図9におけるステップS13に戻った場合、未処理のバンドがあれば、引き続き処理を継続する一方、なければ、処理手順をステップS18に分岐して、色成分がKのみか否かを判断する。この判断が「Yes」であれば、それは、すべてのバンドの色成分がKであって、すべてのバンドに対してKの色成分について処理が完了したことを意味する。このため、レンダリング処理が終了する。一方、この判断が「No」であれば、それは、すべてのバンドに対し、少なくともKの色成分については処理が完了したが、他のYMCについては未処理となっているものがあることを意味する。このため、制御部は、未処理となっている色成分についても同様な処理を実行すべく、処理手順をステップS12に戻す。
【0041】
したがって、以上述べた処理は、すべてのバンドの色成分がKのみであれば、すべてのバンドが処理された段階で終了し、すべてのバンドの色成分がKのみでなければ、KYMCの順番で、すべてのバンドが処理された段階で終了する。
そして、このような処理において、識別情報によっては、中間コード画像データに対して、行なう必要のない▲1▼クリア処理、▲2▼読出処理、▲3▼展開処理、および▲4▼書込処理がスキップされるので、レンダリング処理の高速化を図ることができる。
さらに、各バンドについての色成分毎の識別情報とレンダリング情報とから、当該バンドについてのレンダリング処理に要する時間をより正確に予測できるので、出力装置を適切なタイミングで起動させることができ、結局、出力に要する時間の短縮を図ることができる。
【0042】
【発明の効果】
以上説明したように、本発明によれば、レンダリング処理をバンド画像毎に行なうものにおいて、レンダリング処理の高速化と、そのレンダリング処理に要する時間の正確な予測とが可能となる。
【図面の簡単な説明】
【図1】 本発明の実施形態にかかる画像処理装置の構成を示すブロック図である。
【図2】 バンド情報の構成を示す一例を示す図である。
【図3】 バンド情報の構成を示す一例を示す図である。
【図4】 バンド情報の構成を示す一例を示す図である。
【図5】 バンド情報の構成を示す一例を示す図である。
【図6】 本実施形態にかかるバンド情報の構成を示す例である。
【図7】 本実施形態におけるレンダリング情報の構成を示す図である。
【図8】 本画像処理装置の動作を示すフローチャートである。
【図9】 本画像処理装置の動作を示すフローチャートである。
【図10】 本画像処理装置の動作を示すフローチャートである。
【図11】 本画像処理装置の動作を示すフローチャートである。
【図12】 本画像処理装置の動作を示すフローチャートである。
【符号の説明】
2……コード画像データ解釈部(解釈手段)、
3……中間コード画像データ変換部(中間コード作成手段)、
5……レンダリング部(展開手段)、
6……バッファ(バンドバッファ)
【発明の属する技術分野】
本発明は、例えば、PDL(ページ記述言語)によって記述されたコードデータを入力し、これを解釈してビットマップ形式の画像データに展開する処理の高速化を図った画像処理装置に関する。
【0002】
【従来の技術】
一般に、PDLで記述されたコード画像データを用いると、当該データで示される画像を異なった機種の端末において共通の出力装置で出力したり、同じ形式のデータを異なる出力装置において出力することが可能となる。このため、PDLは、最近では印刷のみならず、種々の出力を行なう場合に用いられる。
このようなコード画像データによって示される画像を出力する場合、当該コード画像データの内容を解釈して、出力装置に要求されるデータ形式に変換する処理を行なうとともに、出力装置の出力動作に同期して供給する必要がある。
例えば、カラーページプリンタなどに出力する場合には、コード画像データを、ビットマップ形式に展開して、その展開結果たるデータ(ラスターデータ)を一時的に記憶するとともに、当該プリンタの出力動作(主走査動作と副走査動作)に同期して、ラスターデータを供給する必要がある。
従来では、コード画像データの展開処理を1ページ分行なって、その1ページ分のラスターデータをバッファに格納した後に、格納されたデータを出力装置の動作に同期して読み出して、当該データに基づいた画像出力を行なうようになっていた。
【0003】
ただし、この方法では、バッファに少なくとも1ページ分の容量が要求される、といった欠点があった。
そこで、出力画像を1ページではなく、副走査方向に帯状に分割した画像(バンド画像)て取り扱うことが試みられるようになってきた。
この場合、バンド画像を格納するバンドバッファを複数用意し、ラスターデータを格納すべきバンドバッファを順次循環させる形で変更するとともに、格納が完了したならば、バンドバッファを格納した順番でデータを読み出して、出力装置に供給することにより、バンドバッファの総容量を1ページ分よりも少なく抑えようとするのである。
【0004】
【発明が解決しようとする課題】
ところで、近年、出力装置の動作を短時間に済ますことが要求されている。画像をバンド画像として扱う場合に、このような要求をかなえるには、コード画像データをラスターデータに展開した後、これをバンドバッファに格納するという一連の処理(レンダリング処理)を高速化するとともに、そのレンダリング処理に要する時間の正確な予測とが不可欠である。
なぜならば、レンダリング処理を高速にすれば、出力に要する時間の短縮に直接寄与するし、レンダリング処理に要する時間の正確な予測が可能であれば、レンダリング処理の進捗状況に対し、出力装置を適切なタイミングで起動させることができ、やはり、出力に要する時間の短縮に寄与するからである。
本発明は、上述した事情に鑑みてなされたものであり、その目的とするところは、レンダリング処理をバンド画像毎に行なうものにおいて、レンダリング処理の高速化と、そのレンダリング処理に要する時間の正確な予測とを図った画像処理装置を提供することにある。
【0005】
【課題を解決するための手段】
上記課題を解決するために、本発明にあっては、コード画像データの内容を解釈する解釈手段と、前記解釈手段による解釈結果に基づいて、出力すべき画像を分割したバンド画像に対応した中間コード画像データを、バンド画像毎に作成する中間コード作成手段と、前記解釈手段の解釈結果から、各バンド画像において各々の色成分の有無を当該色成分のランレングスの総数によって示したバンド情報であって、当該ランレングスの総数を色成分がゼロである場合と色成分がゼロでない場合とで分けて持たせたバンド情報を作成する識別手段と、前記バンド画像に対応する中間コード画像データを、要求される形式のデータに展開し、バンドバッファに書き込む展開書込手段と、前記展開書込手段に対し、前記バンド情報においてランレングスの総数によって色成分が無いことが示されているバンド画像については、その色成分での展開を行なわないように制御する制御手段と、前記バンド情報において、色成分がゼロである場合の前記ランレングスの総数と、色成分がゼロでない場合の前記ランレングスの総数とに基づいて、前記展開書込手段による書き込みに要する時間を予測する予測手段とを具備することを特徴としている。
【0006】
(作用)
本発明によれば、コード化されたコード画像データの内容が解釈され、その解釈結果に基づいて、バンド画像に対応した中間コード画像データがバンド画像毎に作成されるとともに、バンド画像の描画成分を識別したバンド情報がバンド画像毎に作成される。そして、中間コード画像データは、出力装置において要求される形式のデータに展開されるが、その際、バンド情報においてそのバンド画像の描画成分がゼロであるバンド画像については、その成分での展開は、行なわれない。
したがって、各描画成分に対して一律に展開を行なうのではなく、実質的に描画を行なう必要のない成分について展開をスキップさせるので、展開処理に要する時間をその分短縮することができ、総合的に見てレンダリング処理に要する時間も短縮することが可能となる。
ところで、バンド情報としては、その描画成分を一般的な色成分とすることが考えられる。この場合、各色成分をフラグやランレングスとして持たせれば良い。さらに、色成分をランレングスとして持たせるには、色成分がゼロのものとゼロでないものとに分けることや、描画オブジェクトの内容毎に分けることなど考えられる。ランレングスを用いた場合、展開処理に要する時間の予測が容易となるので、その分、レンダリング処理に要する時間の正確な予測に寄与することが可能となる。
また、レンダリング処理に要する時間をさらに正確に予測するためには、展開処理における他の要因や、展開処理以外の処理に要する時間を予測しなければならない。これには、例えば、バンドバッファのゼロクリア処理に要する時間を予測するための、バンド画像について展開されたデータサイズの情報や、バンドバッファへの書込処理に要する時間を予測するための、描画オブジェクトに重なりがあるかを示す情報、同じく書込処理に要する時間を予測するための、間引き処理が行なわれたか否かを示す情報、展開処理において伸張する場合に、その伸張処理に要する時間を予測するための、圧縮処理が行なわれたか否かを示す情報などが考えられる。また、バンドバッファへのゼロクリア処理をスキップするため、バンドバッファ毎にゼロクリアされているか否かの情報も考えられる。
【0007】
【発明の実施の形態】
<1:実施形態の構成>
以下、本発明による一実施形態について図面を参照して説明する。図1は、本実施形態にかかる画像処理装置の構成を示すブロック図である。この図に示す画像処理装置1は、ネットワークやスプールディスクなどから供給されたコード画像データを、CMYKの面順次型データにレンダリング処理して、出力装置に供給するものである。ここで、コード画像データは、PDLで記述されたものである。
【0008】
図において、コード画像データ解釈部2は、入力されたコード画像データの内容を解釈するものである。中間コード画像データ変換部3は、コード画像データの内容を解釈した結果、そのなかにオブジェクトの描画を指示するもの(描画オブジェクト)がある場合に、ラスタデータを作成するための中間コード画像データをバンド毎に作成するものである。なお、オブジェクトには、例えば、グラフィクスや、フォント、イメージなど種々のものがある。
保持ブロック4は、作成された中間コード画像データを保持するものであり、一般にシステムメモリの一部分が割り当てられる。展開部5は、中間コード画像データを出力装置において要求されるラスターデータに展開処理するものである。
バッファ6は、本実施形態にあっては4つバンドバッファからなるものであり、展開部5で処理されたラスターデータを、バンドバッファに格納した後、出力装置に供給するものである。
【0009】
さて、これらの構成において、画像処理装置1におけるレンダリング処理とは、主に、次の4つからなる一連の処理をいう。すなわち、レンダリング処理は、▲1▼バンドバッファをゼロにクリアするクリア処理、▲2▼中間コード画像データを保持ブロック4から読み出す読出処理、▲3▼読み出した中間コード画像データをラスターデータに展開する展開処理、および▲4▼ラスターデータをバンドバッファに書き込む書込処理に大別される。
【0010】
なお、本実施形態の出力装置としては、CMYKの面順次型データに基づいて、各色成分毎に順番に画像形成を行なうカラーページプリンタを想定している。そして、かかる出力装置は、Kのみの色成分により白黒の画像出力を行なう白黒モードと、CMYKのすべての色成分によりフルカラーの画像出力を行なうカラーモードとを切替可能なものとする。
また、このような出力装置の動作も含めて、画像処理装置1における各構成要素は、図示しない制御部により制御されるようになっている。
くわえて、一般にバンドバッファの数は、2個以上必要であるが、レンダリング処理の高速化を図るには、3個以上必要である。これは、次の理由による。すなわち、バンドバッファの個数が2個であると、一方のバンドバッファからラスターデータが読み出されて出力装置に供給されている期間、他方のバンドバッファには、展開されたラスターデータが格納されるが、前者の読出は、出力装置の出力動作に同期するので一定速度で行なわれるが、後者の展開は、そのバンドに存する描画オブジェクトの数および種類に依存して一定でない。ここで、1つのバンド画像をレンダリング処理するのに要する時間が、出力装置において1つのバンド画像を出力するのに要する時間よりも短い場合、レンダリング処理は、バンドバッファが解放されるまで、常に待機状態となり、非常に効率が悪い。そこで、レンダリング処理が待機状態となるのなるべく防ぐため、バンドバッファが3個以上必要となる。なお、本実施形態にかかる画像処理装置1においては、余裕を見越して4個のバンドバッファを備えることとした。
【0011】
<1−1:バンド情報>
次に、バンド情報について説明する。バンド情報とは、後述するステップS10においてセットされるものであり、基本的に、バンド画像における識別情報を色成分毎に持たせたものである。さらに、レンダリング処理に要する時間を正確に予測する場合には、そのバンドについてなされた処理情報などが付加される。このバンド情報には、画像処理装置1における各機能により、種々考えられるので、基本的なものから順に説明することとする。
【0012】
<1−1−1:フラグ>
このバンド情報は、そのバンドにおける識別情報をフラグとして持たせたものであり、例えば、図2に示すように、CMYKの各色成分毎に対応したフラグを有する。
この場合、各色成分に対応するフラグの初期値はすべてオフである(例えば、初期化動作で、その旨を示す値のゼロがセットされる)。そして、コード画像データ解釈部2がコード画像データを解釈して、それが描画オブジェクトである場合、中間コード画像データ変換部3が、その描画オブジェクトに対しCMYKの各色成分についてチェックし、色成分がゼロ以外であれば、当該色成分に対応するフラグをオンにする(例えば、その旨を示す値の「1」をセットする)。
【0013】
このバンド情報において、フラグがオフのままである場合、そのバンドにおいて当該色成分の描画が行なわれないことを意味する。したがって、その色成分についてレンダリング処理する際に、上記▲2▼読出処理、▲3▼展開処理、▲4▼書込処理については省略できるので、その分、レンダリング処理を高速化することが可能となる。例えば、あるバンドについてCMYの色成分に対応するフラグがすべてオフの場合、そのバンドについてはKの色成分についてのみレンダリング処理を行なえば良い。この場合、出力装置のモードを白黒モードにセットすることにより、出力装置における出力時間も短縮化することができる。
【0014】
<1−1−2:ランレングス>
このバンド情報は、そのバンドにおける識別情報をランレングスとして持たせたものであり、その最も簡単な例は、図3に示すように、CMYKの各色成分毎に対応したランレングスの情報を有する。
この場合、各色成分に対応するランレングス情報の初期値はすべてゼロである(例えば、初期化動作で、その旨を示す値のゼロがセットされる)。そして、コード画像データ解釈部2がコード画像データを解釈して、それが描画オブジェクトである場合、中間コード画像データ変換部3が、その描画オブジェクトに対しCMYKの各色成分についてチェックし、色成分がゼロ以外であれば、当該オブジェクトの総ランレングス数を、色成分に対応するランレングス情報に累算する。
ここで、本実施形態にあっては、CMYKの面順次型データを出力するものであるから、そのバンドにおける描画オブジェクトに重なりがなければ、ランレングス情報の値は、フルカラー(8ビット/色)の場合においてバンドバッファへの書込バイト数と等しくなる。
【0015】
このバンド情報において、ランレングス情報の値がゼロである場合、そのバンドにおいて当該色成分の描画が行なわれないことを意味する。したがって、識別情報としてフラグを用いた場合と同様に、その色成分についてのレンダリング処理の際に、上記▲2▼読出処理、▲3▼展開処理、▲4▼書込処理については省略することができるので、その分、レンダリング処理を高速化することが可能となる。
あるバンドについてCMYの色成分に対応するランレングス数がすべてゼロの場合も同様である。
さらに、後述するように、ランレングス数によって、レンダリング処理に要する時間を予測できる。
【0016】
このようにランレングスを識別情報を持つものは、次のように発展させて、レンダリング処理の時間を予測するための情報として活用することができる。
【0017】
<1−1−2−1:ゼロの場合とゼロでない場合とのランレングス数を持つ>
このバンド情報は、そのバンドにおける識別情報をランレングスとして持たせたものであって、図4に示すように、ゼロの場合のランレングス数とゼロでない場合のランレングス数とを各色成分毎に持たせたものである。
この場合、各色成分に対応する双方のランレングス数の初期値はすべてゼロである(例えば、初期化動作で、その旨を示す値のゼロがセットされる)。そして、コード画像データ解釈部2がコード画像データを解釈して、それが描画オブジェクトである場合、中間コード画像データ変換部3が、その描画オブジェクトに対しCMYKの各色成分について、その色成分がゼロのランレングス数と、その色成分がゼロでないランレングス数とをチェックし、当該色成分に対応するそれぞれのランレングス数に累算する。
なお、このバンド情報において、マージフラグとは、描画オブジェクトの重なりをなくしたマージ処理が実行されたことか否かを示すものであり、また、間引きフラグとは、間引き処理が実行されたか否かを示すものである。両者を参照することで、後述するように、レンダリング処理のうち▲4▼書込処理に要する時間をより正確に予測できる。
【0018】
このバンド情報において、色成分がゼロでないランレングス数がゼロである場合、そのバンドにおいて当該色成分の描画が行なわれないことを意味する。したがって、識別情報としてフラグを用いた場合と同様に、その色成分についてのレンダリング処理では、上記▲2▼読出処理、▲3▼展開処理、▲4▼書込処理について省略することができるので、その分、レンダリング処理を高速化することが可能となる。
また、そのバンドにおける描画オブジェクトに重なりがなければ、ゼロでないランレングス数は、フルカラー(8ビット/色)の場合においてバンドバッファへの書込バイト数と等しくなる。このため、▲4▼書込処理に要する時間の予測が行なうことができる。
このように、ランレングス数を、色成分がゼロのものと、そうでないものとに分けたことより、レンダリング処理の高速化とそれに要する時間の予測とに寄与することができる。
【0019】
<1−1−2−2:オブジェクトの内容毎にランレングス数を持つ>
このバンド情報は、図5に示すように、そのバンドにおける識別情報を、オブジェクト毎のランレングス数として持たせたものである。
この場合、各色成分に対応するランレングス数の初期値はすべてゼロである。このようにランレングス数をオブジェクト毎に分類したのは、オブジェクト毎に展開処理が異なるためである。例えば、オブジェクトがグラフィックの場合、中間コード画像データに基づいてラスターデータが作成されて図形が描画されるし、また、オブジェクトがフォントの場合であって、フォントキャッシュにヒットしたときは、フォントキャッシュ内にキャッシングされたビットマップデータがコピーされて当該フォントが描画される一方、フォントキャッシュにミスヒットしたときは、新たにアウトラインフォントデータから該当する文字のベクトルデータが読み出され、これを基にビットマップデータが展開されて、当該フォントが描画されるし、さらに、オブジェクトがイメージの場合、中間コード画像データとは別の領域に保持されているイメージデータをコピーすることにより、当該イメージが描画される。このように、オブジェクト毎に展開処理が異なるために、その処理に要する時間も、当然異なってくる。
したがって、レンダリング処理を高速化するとともに、その処理時間を予測するには、ランレングス数をオブジェクト毎に分けた方が都合が良い。
【0020】
なお、このバンド情報において、中間コード画像データの総バイト数は、レンダリング処理のうち▲2▼読出処理に要する時間を予測するためのものであり、コード画像データの解釈結果、それが描画オブジェクトである場合、その描画オブジェクトに対応する中間コード画像データのバイト数が順次累算されたものである。
また、バンドバッファゼロクリア時間は、レンダリング処理のうち▲1▼クリア処理に要する時間を予測するためのものであり、そのバンドの容量に係数を乗じたものである。
【0021】
<1−1−2−3:ゼロの場合とゼロでない場合とのランレングス数をオブジェクト毎に持つ>
このバンド情報は、図6に示すように、図4および図5の双方を組み合わせたものである。
この例では、描画オブジェクトの重なりを考慮するので、レンダリング処理の高速化に寄与し、また、展開処理に要する時間をオブジェクト毎に考慮するので、レンダリング処理に要する時間の正確な予測に寄与することできる。
なお、図6に示すバンド情報において、オブジェクトがイメージである場合のランレングス数を、ゼロのものとゼロでないものとに分けていない理由は、イメージデータについてその色成分がゼロか否かを1バイト毎に識別する処理の負荷が大きいためである。
また、圧縮フラグとは、後述するように圧縮処理が施されたか否かを示すものであり、このフラグを参照することにより、レンダリング処理のうち▲3▼展開処理に要する時間のうち、その伸張に要する時間も考慮するので、より正確に予測することができる。
【0022】
このように、バンド情報を、識別情報や、処理情報などを種々付加することで、レンダリング処理の高速や、その処理に要する時間を予測することができる。そこで、本実施形態にあっては、図6に示したバンド情報を用いることとする。
【0023】
<1−2:レンダリング情報>
次に、レンダリング情報について説明する。このレンダリング情報とは、レンダリング処理に要する時間を予測するのに必要な情報であって、この画像処理装置1に固有な情報である。すなわち、中間コード画像データには依存しない情報であるため、バンド情報とは別個に規定することとした。
その内容を図7に示す。図において、メモリ読出効率とは、保持ブロック4から中間コード画像データを単位時間あたりに読み出す転送レート(バイト/時間)の逆数(時間/バイト)であり、メモリ書込効率とは、ラスターデータをバンドバッファに単位時間あたりに書き込む転送レート(バイト/時間)の逆数(時間/バイト)である。
また、コピー効率とは、副走査方向の1ライン分のラスターデータをバンドバッファに複写する速度(バイト/時間)の逆数(時間/バイト)であり、伸張効率とは、圧縮されたデータの伸張速度(バイト/時間)の逆数である。
これらの情報は、固定値として保持されている。
さらに、バッファ(n)のゼロクリア情報とは(n:は1〜4の整数)、バッファ6を構成する4つのバンドバッファについて、ゼロクリア処理されたか否かをバンドバッファ毎に示す情報(例えばフラグ)であり、ゼロクリアされていれば、制御部によってオンとされるものである。
【0024】
<1−3:他>
次に、この画像処理装置1において、レンダリング処理において補足的に行なわれる処理について説明する。
マージ処理は、描画オブジェクトの重なりをなくす処理である。この処理は、一般に、その負荷が重いので、第1に、保持ブロック4の容量が不足した場合や、第2に、後述するレンダリング時間予測処理において、当該バンドにかかるレンダリング処理が、出力装置における1バンド画像の出力に要する時間よりも長くなると予想された場合に、そのバンドに対して行なわれる。そして、このマージ処理が実際に行なわれると、そのバンドに対応するバンド情報のマージフラグがオンにされる。
間引き処理は、展開時にラインを間引く処理である。この処理は、第1に、保持ブロック4の容量が不足した場合や、第2に、後述するレンダリング時間予測処理において、当該バンドにかかるレンダリング処理が、出力装置における1バンド画像の出力に要する時間よりも長くなると予想された場合に、そのバンドに対して行なわれる。そして、この間引き処理が実際に行なわれると、そのバンドに対応するバンド情報の間引きフラグがオンにされる。なお、この場合、識別情報のランレングス数は、間引かれていないライン数に対応するものとする。
圧縮処理は、第1に、システムメモリの容量不足のために、イメージデータをそのままの状態で保持できなくなった場合や、第2に、描画オブジェクトを中間コード画像データとして保持するよりもラスターデータとして保持する方が有利とみなされて、ラスターデータに展開されたものの、システムメモリの容量が不足したため、当該ラスターデータをそのままの状態で保持できなくなった場合などに、その描画オブジェクトあるいはそのバンドに対して実行される。そして、この圧縮処理が実際に行なわれると、そのバンドに対応するバンド情報の圧縮フラグがオンにされる。なお、この場合、識別情報のランレングス数は、圧縮された描画オブジェクトあるいはそのバンドに対応するものとする。
【0025】
<2:実施形態の動作>
次に、この画像処理装置1の動作について説明する。図8〜図12は、それぞれ画像処理装置1の動作を示すフローチャートである。まず、PDLで記述されたコード画像データがネットワークやスプールディスクなどから供給されると、図8に示す画像データ処理が起動される。
【0026】
はじめに、ステップS1において制御部は、コード画像データ解釈部2がコード画像データについてすべて解釈したか否かを判別する。制御部は、この判別結果が「Yes」ならば、処理手順を後述するステップS11に分岐させて、レンダリング時間予測処理を実行した後、実際にレンダリング処理を開始する一方、判別結果が「No」ならば、処理手順を次のステップS2として、当該コード画像データについての解釈をコード画像データ解釈部2に指示する。これにより、コード画像データの解釈が継続される。
次に、制御部は、ステップS3において、コード画像データ解釈部2による解釈の結果、それが描画オブジェクトであるか否かを判別する。制御部は、それが描画オブジェクトでなければ、引き続き当該コード画像データについての解釈を継続すべく処理手順をステップS1に戻す。一方、制御部は、それが描画オブジェクトであれば、次のステップS4において、その描画オブジェクトに対応する中間コード画像データを作成する旨を、中間コード画像データ変換部3に指示する。これにより当該描画オブジェクトに対応する中間コード画像データが作成される。
【0027】
中間コード画像データが作成されると、ステップS5において制御部は、システムメモリに中間コード画像データの保持するための領域が存在するか否かをチェックする。
もし、保持領域が存在しなければ、制御部は、ステップS6においてさらにメモリに未使用領域が存在するか否かをチェックする。未使用領域があれば、制御部は、ステップS7においてその領域を保持ブロックとして確保する。一方、未使用領域がなければ、制御部は、ステップS8において、当該中間コード画像データに対し間引き処理を実行するなどの保持ブロック獲得処理を実行する。これにより、当該中間コード画像データの容量は少なくされるので、より少ない容量で保持ブロックが確保される。作成(あるいは間引き)された中間コード画像データは、ステップS9において保持ブロック4にセットされる。
【0028】
次に、ステップS10において制御部は、当該描画オブジェクトが存在するバンドについて、その描画オブジェクトの各色成分毎のランレングス数や、各フラグを、そのバンドの識別情報としてセットする。具体的な、識別情報の内容について図6に示した通りである。
以降、制御部は、そのコード画像データに含まれる他の描画オブジェクトについても、同様な処理を実行すべく、処理手順をステップS1に戻す。そして、制御部は、そのコード画像データに含まれるすべての描画オブジェクトに対して処理を完了すると、処理手順を、図9におけるステップS11に分岐させる。
したがって、ステップS11に分岐した段階では、各ページを構成するバンド画像の各々に対しバンド情報が作成されることになる。
【0029】
ステップS11において制御部は、レンダリング時間予測処理を実行して、次のように、各バンド画像について、そのレンダリング処理に要する時間を予測する。
前述したように、レンダリング処理は、▲1▼バンドバッファをすべてゼロにクリアするクリア処理、▲2▼中間コード画像データをメモリから読み出す読出処理、▲3▼読み出した中間コード画像データをラスターデータに展開する展開処理、および▲4▼ラスターデータをバンドバッファに書き込む書込処理に大別される。そして、これら4つの処理に要する時間は、次のように算出することができる。
▲1▼クリア処理に要する時間は、バンドバッファの容量に依存した定数であるといえる。このため、本実施形態のように、すべてのバンドバッファサイズが固定値であるならば、特に情報を参照しなくても、クリア処理に要する時間を求めることはできる(ただし、説明の便宜上、図6に示すように、バンド情報にバンドバッファゼロクリア時間を設けた)。
▲2▼読出処理に要する時間は、読み出すべき中間コード画像データの総バイト数と読出効率(時間/バイト)との積により求めることができる。ここで、中間コード画像データの総バイト数については、1つの描画オブジェクトに対応するコード画像データのバイト数が、その変換の際に求められ(ステップS4)、そのバンドにおける総数が識別情報としてセットされている(ステップS10)ので、当該バンド情報を参照することで求められる。また、読出効率は、レンダリング情報(図7参照)を参照することで求められる。
結局、当該バンド情報とレンダリング情報とを参照して、演算することにより、▲2▼読出処理に要する時間が求められることとなる。
▲3▼展開処理に要する時間は、描画オブジェクトの種類および数に依存する。さらに、圧縮されている場合には、その伸張処理に要する時間も含まれる。ここで、描画オブジェクトの種類および数については、当該バンド情報において描画オブジェクト毎のランレングス数を参照することで求められる。また、圧縮された場合に、その伸張処理に要する時間は、レンダリング情報の伸張効率を参照することで求められる。結局、圧縮が行なわれていなければ当該バンド情報を参照することにより、また、圧縮が行なわれていればさらにレンダリング情報を参照することにより、▲3▼展開処理に要する時間が求められることとなる。
▲4▼書込処理に要する時間は、基本的に、CMYKの総ランレングス数と書込効率(時間/バイト)との積により求めることができる。ただし、マージ処理が行なわれた場合には、CMYKの総ランレングス数として、ゼロでないランレングス数を用いる。
ここで、CMYKの総ランレングス数あるいはゼロでないランレングス数は、バンド情報を参照することで求められる。また、書込効率は、レンダリング情報を参照することで求められる。
結局、基本的には、当該バンド情報とレンダリング情報とを参照して、演算することにより、▲4▼書込処理に要する時間が求められることとなる。
ただし、間引き処理が行なわれた場合、さらに、間引かれたラインの補間処理に要する時間を加算する必要がある。かかる補間処理は、後述するように、間引かれていない近傍のラインについてのラスターデータをコピーして当該バンドバッファに格納する処理であり、この処理に要する時間は、間引かれたライン数にかかるバイト量とレンダリング情報のコピー効率との積により求めれる。ここで、間引き処理が行なわれた場合、そのバンド情報に示されるランレングス数は、間引きされたライン数のバイト量を含まないものである。このため、間引かれたライン数のバイト量は、間引き処理の内容と、当該バンドのランレングス数から逆算して求めることができる。また、コピー効率は、レンダリング情報を参照することで求められる。
結局、間引き処理が行なわれた場合であっても、その補間処理に要する時間をも考慮して、▲4▼書込処理に要する時間が求められることとなる。
【0030】
このように、1つのバンドにおけるレンダリング処理に要する時間は、▲1▼〜▲4▼に求められる時間の和であり、いずれも、当該バンド情報とレンダリング情報とを参照することで求められる。
そして、このようにして求めた時間の和を、制御部は、当該バンドにおいてレンダリング処理に要する時間と予測する。
次に、この処理により予測された時間が、出力装置において1つのバンド画像の出力に要する時間よりも長くなるバンドが1つでも存在する場合、制御部は、中間コード画像データに対しマージ処理、間引き処理を順番に実行し、これら処理後に再度、レンダリング時間予測処理を実行する。そして、これら処理を実行したのにもかかわらず、いずれかのバンドについてレンダリング処理に要する時間が、出力装置における1バンド画像の出力時間よりも長いと予測すれば、制御部は、不良画像が出力される旨をユーザに知らせるなどのエラー処理を実行する。
一方、各バンドについての予測時間が、出力装置における1バンド画像の出力に要する時間より、すべて短ければ、制御部は、次に述べる以降の処理を実行して、実際にレンダリング処理を開始する。
【0031】
まず、制御部はステップS12において未処理となっている色が存在するか否かを判別する。ここで、色の処理順序については、CMYKの面順次型データを、白黒モード/カラーモードの切替が可能な出力装置に供給するものであるから、KYMCとする。
すべての色について処理していれば、当該コード画像データによって出力すべき全ページにおけるすべてのバンドについてレンダリング処理が完了したことになるから、当該レンダリング処理が終了する。一方、制御部は、未処理の色があれば、処理対象をその色に設定し、次のステップS13において、未処理のバンドが存在するか否かを判別する。
もし、未処理のバンドがあるならば、制御部は、処理対象をそのバンドに設定する。なお、バンドについての処理の順番は、画像の副走査方向となっている。
【0032】
次に、制御部は、ステップS14において、バンドバッファがゼロクリアにされているか否かを判定する。ここで、バンドバッファをゼロクリアするか否かの判定は、バンドにコード画像データが存在するか否かとは無関係なので、本実施形態においては、各バンドバッファに対応して設けられるゼロクリア情報により判定することとする。したがって、ゼロクリア情報は、各バンドについての色毎の識別情報とは全く無関係である。
これにより、制御部は、使用するバンドバッファに対応するゼロクリア情報をチェックして、当該バンドバッファがゼロクリアされていないと認識すれば、識別情報によって、当該バンドに描画オブジェクトが存在しなくても、ステップS15において当該バンドバッファのゼロクリア処理を実行する一方、当該バンドバッファがすでにゼロクリアされていると認識すれば、ステップS15におけるゼロクリア処理をスキップする。
【0033】
この後、制御部は、ステップS16において、処理対象となっているバンドについて処理対象となっている色成分がゼロか否かを判別する。この判別は、識別情報としてフラグが用いられる場合にあっては、当該色成分に対応するフラグがオフであるか否かを検出することで行なわれ、また、識別情報としてランレングスが用いられる場合にあっては、当該色成分に対応するランレングスがゼロであるか否かを検出することで行なわれる。
もし、色成分がゼロであれば、制御部は、当該色成分について、▲2▼読出処理、▲3▼展開処理、および▲4▼書込処理をスキップすべく、処理手順を後述するステップS34に移行させる一方、色成分がゼロでなければ、次のステップS17以降において中間コード画像データの解釈を行なわせる。
その前にステップS17においては、制御部は、当該バンドに対応するバンド情報のうちのマージフラグを参照して、当該バンドにおいてマージ処理が実行されたか否かを判別する。制御部は、マージ処理が実行されていれば、処理手順を後述するステップS26に分岐させる一方、マージ処理が実行されていなければ、処理手順を図9におけるステップS19に分岐させる。
【0034】
制御部は、ステップS19において、当該バンドにおける未処理の中間コード画像データが存在するか否かを判別し、あれば展開部5に対し、次のように指示する。すなわち、制御部は、展開部5に対し、ステップS20において当該中間コード画像データを保持ブロック4から読み出すように指示し、ステップS21において当該中間コード画像データを解釈するように指示し、ステップS22においてその解釈結果たるラスタデータを当該バンドバッファに書き込むように指示する。これにより、当該中間コード画像データが実際にラスターデータに展開されて、対応するバンドバッファに格納されることとなる。
そして、制御部は、ステップS22における指示後、処理手順を再びステップS19に戻す。これにより、当該バンドにおけるすべての中間コード画像データについて、▲2▼読出処理、▲3▼展開処理、および▲4▼書込処理が実行されることとなる。
【0035】
一方、制御部は、ステップS19において、当該バンドにおける未処理の中間コード画像データが存在しないと判別すれば、処理手順をステップS23に分岐させ、そこで、当該バンドに対応するバンド情報のうちの間引きフラグを参照して、当該バンドにおいて間引き処理が実行されたか否かを判別する。間引き処理が実行されていなければ、当該バンドについてのレンダリング処理が完了したことを意味するから、制御部は、処理手順を後述するステップS34に分岐させる。一方、間引き処理が実行されていれば、制御部は、次のステップS24において展開部5に対して、描画オブジェクトのうち、間引かれていないラインについては、そのラスターデータを当該バンドバッファに格納するとともに、間引かれたラインについては、間引かれていない近傍のラインについてのラスターデータをコピーして当該バンドバッファに格納するように指示する。これにより間引かれたラインは補間されたことになる。
次に、制御部は、ステップS25において、当該バンドにおいて、未処理状態の間引かれたラインが存在するか否かを判別する。あれば、当該ラインについてコピー処理を同様に実行すべく、制御部は処理手順をステップS24に戻す一方、なければ、それは当該バンドにおいて間引かれたすべてのラインが補間されたことを意味するから、制御部は、処理手順を後述するステップS34に移行させる。
【0036】
さて、制御部は、図9のステップS17において、当該バンドに対しマージ処理が実行されていないと判別すると、処理手順を図11におけるステップS26に分岐させる。
制御部は、ステップS26において、当該バンドにおける未処理の中間コード画像データが存在するか否かを判別し、あれば、さらにステップS27において、その未処理となっている中間コード画像データにおいて、処理対象となっている色成分がゼロであるか否かを判別する。ゼロでなければ、制御部は、展開部5に対し、次のように指示する。すなわち、制御部は、展開部5に対し、ステップS28において当該中間コード画像データを保持ブロック4から読み出すように指示し、ステップS29において当該中間コード画像データを解釈するように指示し、ステップS30においてその解釈結果たるラスタデータを当該バンドバッファに書き込むように指示する。これにより、当該中間コード画像データが実際にラスターデータに展開されて、対応するバンドバッファに格納されることとなる。
一方、ステップS27において、未処理となっている中間コード画像データにおいて、処理対象となっている色成分がゼロであれば、制御部は、ステップS28〜S30をスキップさせる。
そして、制御部は、ステップS30における指示後あるいはステップS28〜S30をスキップさせた後、処理手順を再びステップS26に戻す。これにより、当該バンドにおけるすべての中間コード画像データについて、同様な処理が実行されることとなる。
【0037】
一方、制御部は、ステップS26において、当該バンドにおける未処理の中間コード画像データが存在しないと判別すれば、上述のステップS23〜S25と同様なステップS31〜S33の処理を実行する。これにより、当該バンドにおいて間引かれたすべてのラインが補間されることなる。
【0038】
次に、ある1つのバンドについてのレンダリング処理が完了した場合、あるいは、ある1つのバンドについてその色成分がゼロである場合、処理手順は図12におけるステップS34に移行する。
まず、制御部は、ステップS34において、出力装置が起動しているか否かをチェックする。すでに起動していれば、以降のステップS35〜S38の処理を実行する必要がないので、制御部は、次のバンドを処理すべく、処理手順を図9におけるステップS13に戻す。一方、出力装置がいまだ起動していなければ、制御部は、現時点における各状態が出力装置の起動条件を満たしているか否かを判別する。
ここで、出力装置の起動条件とは、ラスターデータの格納が完了したバンドバッファの個数が、所定値となったことである。本実施形態にあっては、バンドバッファの個数を4としたので、ラスターデータの格納が完了したバンドバッファの個数が2個となった状態が、起動条件を満たすものとする。このように起動条件を設定したのは次の理由による。
まず、第1に、前述のステップS11におけるレンダリング時間予測処理において、各バンドについてレンダリング処理の予測時間が、出力装置における1バンド画像の出力に要する時間よりすべて短かいと判断したので、ラスターデータの格納が完了したバンドバッファの個数を1個としても、少なくともラスターデータのバンドバッファへの書込がバンドバッファからの読出に追いつかないという事態は発生しないと考えられるが、余裕をみて2個としたからである。第2に、空き状態となっているバンドバッファの個数が少なくとも2個ないと、レンダリング処理を、出力装置において出力にかかるバンドに応じて不必要に待機させなければならないので、レンダリング処理を高速に実行する目的からすれば適切でないからである。
【0039】
さて、ステップS35において起動条件が満たされない場合、ラスターデータの格納が済んだバンドバッファの個数を増やすべく、レンダリング処理を引き続き継続させるため、制御部は、処理手順を図9におけるステップS13に戻す。一方、起動条件が満たされる場合、制御部は、ステップS36において、この処理にかかるすべてのバンドについてCMYの識別情報をチェックし、これらの色成分がすべてゼロであるか否かを判別して、色成分がKのみか否かを判断する。この色成分の判別は、識別情報としてフラグが用いられる場合にあっては、当該色成分に対応するフラグがオフであるか否かを検出することで行なわれ、また、識別情報としてランレングスが用いられる場合にあっては、当該色成分に対応するランレングスがゼロであるか否かを検出することで行なわれる。
そして、制御部は、色成分がKのみであれば、ステップS37において出力装置を白黒モードで起動させる一方、それ以外であれば、ステップS38において出力装置をカラーモードで起動させる。
この後、制御部は、処理手順を図9におけるステップS13に戻す。
【0040】
さて、図9におけるステップS13に戻った場合、未処理のバンドがあれば、引き続き処理を継続する一方、なければ、処理手順をステップS18に分岐して、色成分がKのみか否かを判断する。この判断が「Yes」であれば、それは、すべてのバンドの色成分がKであって、すべてのバンドに対してKの色成分について処理が完了したことを意味する。このため、レンダリング処理が終了する。一方、この判断が「No」であれば、それは、すべてのバンドに対し、少なくともKの色成分については処理が完了したが、他のYMCについては未処理となっているものがあることを意味する。このため、制御部は、未処理となっている色成分についても同様な処理を実行すべく、処理手順をステップS12に戻す。
【0041】
したがって、以上述べた処理は、すべてのバンドの色成分がKのみであれば、すべてのバンドが処理された段階で終了し、すべてのバンドの色成分がKのみでなければ、KYMCの順番で、すべてのバンドが処理された段階で終了する。
そして、このような処理において、識別情報によっては、中間コード画像データに対して、行なう必要のない▲1▼クリア処理、▲2▼読出処理、▲3▼展開処理、および▲4▼書込処理がスキップされるので、レンダリング処理の高速化を図ることができる。
さらに、各バンドについての色成分毎の識別情報とレンダリング情報とから、当該バンドについてのレンダリング処理に要する時間をより正確に予測できるので、出力装置を適切なタイミングで起動させることができ、結局、出力に要する時間の短縮を図ることができる。
【0042】
【発明の効果】
以上説明したように、本発明によれば、レンダリング処理をバンド画像毎に行なうものにおいて、レンダリング処理の高速化と、そのレンダリング処理に要する時間の正確な予測とが可能となる。
【図面の簡単な説明】
【図1】 本発明の実施形態にかかる画像処理装置の構成を示すブロック図である。
【図2】 バンド情報の構成を示す一例を示す図である。
【図3】 バンド情報の構成を示す一例を示す図である。
【図4】 バンド情報の構成を示す一例を示す図である。
【図5】 バンド情報の構成を示す一例を示す図である。
【図6】 本実施形態にかかるバンド情報の構成を示す例である。
【図7】 本実施形態におけるレンダリング情報の構成を示す図である。
【図8】 本画像処理装置の動作を示すフローチャートである。
【図9】 本画像処理装置の動作を示すフローチャートである。
【図10】 本画像処理装置の動作を示すフローチャートである。
【図11】 本画像処理装置の動作を示すフローチャートである。
【図12】 本画像処理装置の動作を示すフローチャートである。
【符号の説明】
2……コード画像データ解釈部(解釈手段)、
3……中間コード画像データ変換部(中間コード作成手段)、
5……レンダリング部(展開手段)、
6……バッファ(バンドバッファ)
Claims (7)
- コード画像データの内容を解釈する解釈手段と、
前記解釈手段による解釈結果に基づいて、出力すべき画像を分割したバンド画像に対応した中間コード画像データを、バンド画像毎に作成する中間コード作成手段と、
前記解釈手段の解釈結果から、各バンド画像において各々の色成分の有無を当該色成分のランレングスの総数によって示したバンド情報であって、当該ランレングスの総数を色成分がゼロである場合と色成分がゼロでない場合とで分けて持たせたバンド情報を作成する識別手段と、
前記バンド画像に対応する中間コード画像データを、要求される形式のデータに展開し、バンドバッファに書き込む展開書込手段と、
前記展開書込手段に対し、前記バンド情報においてランレングスの総数によって色成分が無いことが示されているバンド画像については、その色成分での展開を行なわないように制御する制御手段と、
前記バンド情報において、色成分がゼロである場合の前記ランレングスの総数と、色成分がゼロでない場合の前記ランレングスの総数とに基づいて、前記展開書込手段による書き込みに要する時間を予測する予測手段と
を具備することを特徴とする画像処理装置。 - 前記バンド情報において色成分の有無を示すランレングスを、そのバンドにおける描画オブジェクトの内容毎に分けて持たせたことを特徴とする請求項1記載の画像処理装置。
- 前記展開手段によって展開されたデータを格納するバンドバッファを複数備え、
前記バンド情報として、さらに、前記バンドバッファの容量を示す情報を持たせたことを特徴とする請求項1記載の画像処理装置。 - 前記バンド情報において、そのバンド画像において描画オブジェクトの重なりがあるか否かをフラグとして持たせたことを特徴とする請求項1記載の画像処理装置。
- 前記バンド情報において、そのバンド画像に対し間引き処理が行なわれたか否かをフラグとして持たせたことを特徴とする請求項1記載の画像処理装置。
- 前記バンド情報において、そのバンド画像における描画オブジェクトに対し圧縮処理が行なわれたか否かをフラグとして持たせたことを特徴とする請求項1記載の画像処理装置。
- 前記バンドバッファを複数備え、
これらバンドバッファがクリアにされたか否かのクリア情報をバンドバッファ毎に、前記バンド情報とは別に有し、展開されたデータをバンドバッファに格納する際に、バンドバッファに対応するクリア情報によって当該バンドバッファがクリアにされているならば、前記制御手段は、そのバンドバッファのクリアを行なわないように前記展開書込手段を制御することを特徴とする請求項1記載の画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23933796A JP3772407B2 (ja) | 1996-09-10 | 1996-09-10 | 画像処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23933796A JP3772407B2 (ja) | 1996-09-10 | 1996-09-10 | 画像処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1086451A JPH1086451A (ja) | 1998-04-07 |
JP3772407B2 true JP3772407B2 (ja) | 2006-05-10 |
Family
ID=17043239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP23933796A Expired - Fee Related JP3772407B2 (ja) | 1996-09-10 | 1996-09-10 | 画像処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3772407B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2841636B2 (ja) * | 1990-02-22 | 1998-12-24 | 日産化学工業株式会社 | 白金薄膜形成用組成物 |
JP4010386B2 (ja) * | 1999-10-20 | 2007-11-21 | キヤノンファインテック株式会社 | 画像形成装置 |
JP4009808B2 (ja) | 2000-03-01 | 2007-11-21 | 富士ゼロックス株式会社 | 画像処理装置 |
JP2005309865A (ja) * | 2004-04-22 | 2005-11-04 | Ricoh Co Ltd | 画像処理装置および画像処理方法、並びに画像処理方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP5407217B2 (ja) * | 2008-08-20 | 2014-02-05 | 株式会社リコー | 画像形成装置、画像形成制御方法、画像形成制御プログラム及び記録媒体 |
JP6459815B2 (ja) * | 2015-07-17 | 2019-01-30 | 富士ゼロックス株式会社 | 画像処理装置及びプログラム |
-
1996
- 1996-09-10 JP JP23933796A patent/JP3772407B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH1086451A (ja) | 1998-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2003312068A (ja) | 画像処理方法及びその装置 | |
JPH111029A (ja) | カラープリントシステム,カラープリンタ,及びコンピュータが実行可能なプログラムを格納したコンピュータが読取可能な記録媒体 | |
JP3772407B2 (ja) | 画像処理装置 | |
US20010015820A1 (en) | Method and apparatus for conservation of memory in a printer through selective compression of a display list | |
US6016155A (en) | Character processing apparatus, character processing method, and memory | |
JPH06106810A (ja) | 画像形成方法及び装置 | |
EP0664521B1 (en) | Colour image processing apparatus and method | |
JP3715749B2 (ja) | 画像処理システム及び画像処理方法 | |
JP2000335021A (ja) | 画像処理装置及び画像処理方法 | |
JP4320497B2 (ja) | 画像処理装置 | |
JP3204136B2 (ja) | 画像処理装置及び圧縮処理方法 | |
JP2003237147A (ja) | 画像処理方法及びその装置 | |
JPH05204591A (ja) | 画像描画装置 | |
JP3211711B2 (ja) | 描画装置、描画方法、プリンタおよび画像表示装置 | |
JP3663853B2 (ja) | 画像処理装置 | |
JPH11234508A (ja) | ページプリンタで継承ページを印刷する簡易方法 | |
JP3907484B2 (ja) | 情報処理装置、その制御方法及びプログラム | |
JP2922676B2 (ja) | 画像形成装置 | |
JP2000255125A (ja) | 印刷処理装置および印刷処理方法 | |
JP2000255116A (ja) | 印刷処理装置および印刷処理方法 | |
JP2002132466A (ja) | 画像出力装置、画像出力システム、画像処理方法及び記憶媒体 | |
JPH10305639A (ja) | 印刷処理装置および印刷処理方法 | |
JPH0952392A (ja) | 画像出力装置 | |
JPH10260793A (ja) | 印刷制御装置 | |
JPH1044530A (ja) | 印刷制御装置、情報処理装置、印刷装置および印刷情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050802 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050930 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060124 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060206 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |