(57)【要約】【課題】いかなる場合でも展開されたビットマップイメージの１ないし複数画素単位で最適な補正処理を施すことが可能であるとともに、データ量を抑えてメモリの有効利用を図り、高速処理が可能な画像処理装置を提供する。【解決手段】中間コードメモリ１２に格納される中間コード画像データは、単一の属性情報を保持するとともに、その単一の属性情報を利用するか否かを示す有効／無効情報を含んでいる。描画部１３がレンダリング処理を行う際に、有効／無効情報が無効である場合には、中間コード画像データ中の単一の属性情報を利用せず、イメージに付加されている属性情報を用いてバンドバッファ１４にビットマップイメージと属性情報を書き込む。補正処理部１５が補正処理を行う際には、バンドバッファ１４中の属性情報に応じた処理を行うことによって、最適な画像を得ることができる。【選択図】  図１
2004276537.tif 000002
【特許請求の範囲】
【請求項１】
入力される描画命令に基づいてビットマップイメージを作成する画像処理装置において、前記描画命令あるいは前記描画命令から生成された中間コード画像データに基づいてレンダリング処理を行い前記ビットマップイメージを生成する描画手段と、該描画手段によって生成されたビットマップイメージ及び属性情報を保持するイメージ記憶手段と、該イメージ記憶手段に保持されているビットマップイメージに対して前記属性情報に従った補正処理を行う補正処理手段を有し、前記描画命令あるいは前記中間コード画像データは、単一の属性情報を使用するか否かを示す有効／無効情報を保持しており、前記描画手段は、前記有効／無効情報に従ってレンダリング処理時に単一の属性情報を描画図形に適用するか否かを判断し該判断結果に応じて前記イメージ記憶手段に属性情報を設定することを特徴とする画像処理装置。
【請求項２】
前記描画命令あるいは前記中間コード画像データを保持する命令記憶手段を有し、前記描画手段は、前記命令記憶手段の記憶領域が不足したときそれまでに前記命令記憶手段に記憶されている前記描画命令あるいは前記中間コード画像データをレンダリング処理して前記イメージ記憶手段にビットマップイメージ及び属性情報を展開し、前記ビットマップイメージおよび属性情報が保持される領域のアドレスを含む単一の描画命令あるいは中間コード画像データを生成することにより前記命令記憶手段の記憶領域を確保し、生成した単一の描画命令あるいは中間コード画像データの前記有効／無効情報として単一の属性情報を使用しないように設定し、前記展開した属性情報を適用することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記描画命令あるいは前記中間コード画像データを保持する命令記憶手段を有し、前記描画手段は、前記命令記憶手段の記憶領域が不足したときそれまでに前記命令記憶手段に記憶されている前記描画命令あるいは前記中間コード画像データをレンダリング処理して前記イメージ記憶手段にビットマップイメージ及び属性情報を展開し、かつ前記ビットマップイメージおよび属性情報を縮小し、縮小された前記ビットマップイメージおよび属性情報が保持される領域のアドレスを含む単一の描画命令あるいは中間コード画像データを生成することにより前記命令記憶手段の記憶領域を確保し、生成した単一の描画命令あるいは中間コード画像データの前記有効／無効情報として単一の属性情報を使用しないように設定し、前記展開した属性情報を適用することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記描画命令あるいは前記中間コード画像データを保持する命令記憶手段を有し、前記描画手段は、前記命令記憶手段の記憶領域が不足したときそれまでに前記命令記憶手段に記憶されている前記描画命令あるいは前記中間コード画像データをレンダリング処理して前記イメージ記憶手段にビットマップイメージ及び属性情報を展開し、かつ前記ビットマップイメージおよび属性情報を圧縮して圧縮コードとし、前記ビットマップイメージおよび属性情報の圧縮コードが保持される領域のアドレスを含む単一の描画命令あるいは中間コード画像データを生成することにより前記命令記憶手段の記憶領域を確保し、生成した単一の描画命令あるいは中間コード画像データの前記有効／無効情報として単一の属性情報を使用しないように設定し、前記展開した属性情報を適用することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記描画命令あるいは前記中間コード画像データを保持する命令記憶手段を有し、前記描画手段は、前記命令記憶手段の記憶領域が不足したときそれまでに前記命令記憶手段に記憶されている前記描画命令あるいは前記中間コード画像データをレンダリング処理して前記イメージ記憶手段にビットマップイメージ及び属性情報を展開し、かつ前記ビットマップイメージおよび属性情報をそれぞれ異なる圧縮方法により圧縮して圧縮コードとし、前記ビットマップイメージおよび属性情報の圧縮コードが保持される領域のアドレスを含む単一の描画命令あるいは中間コード画像データを生成することにより前記命令記憶手段の記憶領域を確保し、生成した単一の描画命令あるいは中間コード画像データの前記有効／無効情報として単一の属性情報を使用しないように設定し、前記展開した属性情報を適用することを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記展開した属性情報に対する圧縮方法は可逆方式であることを特徴とする請求項４または請求項５に記載の画像処理装置。
【請求項７】
前記描画手段及び前記補正処理手段は、専用の回路で構成されていることを特徴とする請求項１ないし請求項６のいずれか１項に記載の画像処理装置。
【請求項８】
入力される描画命令に基づいてビットマップイメージを作成する画像処理方法において、前記描画命令あるいは前記描画命令から生成された中間コード画像データに基づいてレンダリング処理を行い前記ビットマップイメージを生成して属性情報とともにイメージ記憶手段に保持させ、前記ビットマップイメージに対して前記属性情報に従った補正処理を行うものであって、前記描画命令あるいは前記中間コード画像データは、単一の属性情報を使用するか否かを示す有効／無効情報を保持しており、前記レンダリング処理時に、前記有効／無効情報に従って単一の属性情報を描画図形に適用するか否かを判断し該判断結果に応じて前記イメージ記憶手段に属性情報を設定することを特徴とする画像処理方法。
【請求項９】
前記描画命令あるいは前記中間コード画像データを命令記憶手段に保持させてゆき、前記命令記憶手段の記憶領域が不足したとき、それまでに前記命令記憶手段に記憶されている前記描画命令あるいは前記中間コード画像データをレンダリング処理して前記イメージ記憶手段にビットマップイメージ及び属性情報を展開し、前記ビットマップイメージおよび属性情報が保持される領域のアドレスを含む単一の描画命令あるいは中間コード画像データを生成することにより前記命令記憶手段の記憶領域を確保し、生成した単一の描画命令あるいは中間コード画像データの前記有効／無効情報として単一の属性情報を使用しないように設定し、前記展開した属性情報を適用することを特徴とする請求項８に記載の画像処理方法。
【請求項１０】
前記描画命令あるいは前記中間コード画像データを命令記憶手段に保持させてゆき、前記命令記憶手段の記憶領域が不足したとき、それまでに前記命令記憶手段に記憶されている前記描画命令あるいは前記中間コード画像データをレンダリング処理して前記イメージ記憶手段にビットマップイメージ及び属性情報を展開し、かつ前記ビットマップイメージおよび属性情報を縮小し、縮小された前記ビットマップイメージおよび属性情報が保持される領域のアドレスを含む単一の描画命令あるいは中間コード画像データを生成することにより前記命令記憶手段の記憶領域を確保し、生成した単一の描画命令あるいは中間コード画像データの前記有効／無効情報として単一の属性情報を使用しないように設定し、前記展開した属性情報を適用することを特徴とする請求項８に記載の画像処理方法。
【請求項１１】
前記描画命令あるいは前記中間コード画像データを命令記憶手段に保持させてゆき、前記命令記憶手段の記憶領域が不足したとき、それまでに前記命令記憶手段に記憶されている前記描画命令あるいは前記中間コード画像データをレンダリング処理して前記イメージ記憶手段にビットマップイメージ及び属性情報を展開し、かつ前記ビットマップイメージおよび属性情報を圧縮して圧縮コードとし、前記ビットマップイメージおよび属性情報の圧縮コードが保持される領域のアドレスを含む単一の描画命令あるいは中間コード画像データを生成することにより前記命令記憶手段の記憶領域を確保し、生成した単一の描画命令あるいは中間コード画像データの前記有効／無効情報として単一の属性情報を使用しないように設定し、前記展開した属性情報を適用することを特徴とする請求項８に記載の画像処理方法。
【請求項１２】
前記描画命令あるいは前記中間コード画像データを命令記憶手段に保持させてゆき、前記命令記憶手段の記憶領域が不足したときそれまでに前記命令記憶手段に記憶されている前記描画命令あるいは前記中間コード画像データをレンダリング処理して前記イメージ記憶手段にビットマップイメージ及び属性情報を展開し、かつ前記ビットマップイメージおよび属性情報をそれぞれ異なる圧縮方法により圧縮して圧縮コードとし、前記ビットマップイメージおよび属性情報の圧縮コードが保持される領域のアドレスを含む単一の描画命令あるいは中間コード画像データを生成することにより前記命令記憶手段の記憶領域を確保し、生成した単一の描画命令あるいは中間コード画像データの前記有効／無効情報として単一の属性情報を使用しないように設定し、前記展開した属性情報を適用することを特徴とする請求項８に記載の画像処理方法。
【請求項１３】
前記展開した属性情報に対する圧縮方法は可逆方式であることを特徴とする請求項１１または請求項１２に記載の画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入力される描画命令を解釈して中間コード画像データを生成し、中間コード画像データをレンダリングしてビットマップイメージを作成し、さらに属性情報をもとにビットマップイメージの補正を行い、最終的なビットマップイメージを印字装置等に出力する画像処理技術に関するものである。
【０００２】
【従来の技術】
パーソナルコンピュータなどの上位処理装置から印字命令を受けた画像処理装置は、実際の印字情報である描画命令を受信して順に解釈し、ビットマップイメージを作成して出力する。この処理過程において、画像処理装置がページバッファを保持している場合には、解釈したビットマップイメージをそのままページバッファに書き込み（レンダリング処理）、ページ単位で出力する。また、ページバッファは多大な記憶容量を必要とするため、ページバッファではなく、１ページを複数に分割したバンド単位のバッファ（バンドバッファ）を保持している場合も多い。このような場合には、一度バンド単位の中間コード画像データに変換し、全ての描画命令の解釈および中間コード画像データの生成終了後、バンド単位で中間コード画像データを解釈し、ビットマップイメージをバンドバッファに書き込むレンダリング処理を行う。
【０００３】
通常、ページバッファあるいはバンドバッファに書き込まれたビットマップイメージは、印字装置等に送信される前に補正処理が施される。例えば、描画命令による色空間指定がＲＧＢの場合、印字装置に出力するためには色空間をＣＭＹＫに変換しなければならない。しかし、全てのビットマップイメージに対して一律に色空間変換を行うと印字の品質に問題が生じるため、描画内容（フォント、グラフィックス、イメージなど）に応じた処理が望ましい。描画内容に応じた処理を行うためには、それぞれの描画命令の内容がどのような描画内容（フォント、グラフィックス、イメージなど）かを示す属性情報が色変換処理時に必要となる。
【０００４】
一般に、描画命令が保持する属性情報は１つの描画オブジェクトに対して単一であり、レンダリング処理によってビットマップイメージを生成する際には１ないし数画素毎に属性情報を付加しておく。なお、バンドバッファを保持してバンド単位でレンダリング処理を行う画像処理装置においては、中間コード画像データに描画命令の属性情報が渡され、バンドバッファに展開されたビットマップイメージに対して属性情報が付加される。そして、ビットマップイメージに付加されている属性情報を参照して、展開されたビットマップイメージに対して補正を行えばよい。
【０００５】
ここで、これらの一連の処理をＣＰＵのみで行う場合には処理負荷が大きく、そのため、ＣＰＵで描画命令あるいは中間コード画像データを解釈してビットマップイメージおよび属性情報をメモリに書き込み、それ以降の処理は、展開したビットマップイメージおよび属性情報をＤＭＡによりイメージ処理回路に転送することにより行うという方法が考案されている。
【０００６】
一例として特許文献１に記載されている画像形成装置では、ＣＰＵがイメージデータをメモリに書き込む時に、イメージデータの属性を示す属性データをイメージデータに含ませ、ＤＭＡ回路がイメージデータをメモリから読み込んだ時に、イメージデータに含まれている属性データに応答して、イメージ処理回路に属性パラメータを設定し、属性に応じた処理を行っている。
【０００７】
また特許文献２に記載されている印刷装置では、描画命令を解釈して作成されたイメージデータ及びイメージデータの属性データを画素単位のデータとして一時保持しておき、保持されたイメージデータ及び属性データを同時に読み込み、属性データに従ってイメージデータを作像用データとして処理することによって、属性に応じた処理を行っている。
【０００８】
上述のように、一般的には描画命令あるいは中間コード画像データは１つの描画オブジェクトに対応するものであるため、描画命令あるいは中間コード画像データが保持する属性情報は単一である。しかし、場合によっては、１つの描画命令あるいは中間コード画像データが複数の描画内容を含むこともあり、そのような場合には単一の属性情報を保持しているだけでは描画内容の属性を正確に表すことができず、問題となる。
【０００９】
一例として、描画命令や中間コード画像データを保持する領域が不足した場合が挙げられる。この場合には、例外的な処理として、描画命令あるいはバンド毎の中間コード画像データを途中まで一旦レンダリング処理し、ビットマップイメージをメモリに展開する（あるいは、さらに圧縮を行う）。そして、展開したビットマップイメージ（あるいは、圧縮ビットマップイメージ）が保持される領域のアドレスを保持する単一の描画命令あるいは中間コード画像データを生成する。これによって、それまでレンダリング処理した描画命令あるいは中間コード画像データを削除することができ、描画命令あるいは中間コード画像データを保持する領域の不足を解消することができる。
【００１０】
従来は、このとき生成された描画命令あるいは中間コード画像データの属性情報は、単一の情報、例えばイメージが設定される。しかし、展開されたビットマップイメージ中には種々の属性の描画内容が含まれている可能性がある。そのため、設定されている単一の属性情報と異なる属性の描画内容がレンダリングされた部分については、最適な処理が施されないことになり、最終的に印字の品質に問題が生じてしまう。
【００１１】
例えば特許文献３に記載されている画像処理装置においても、上述のように記憶手段における記憶可能な容量が所定量以下になると、オブジェクト情報をビットマップイメージデータに展開して圧縮する処理を行っている。このとき、上述のような問題を回避するため、圧縮されたビットマップイメージデータから各属性毎にエリアを検出し、属性毎のオブジェクト情報を生成している。これによって、ビットマップイメージデータは属性毎のオブジェクト情報によって属性に応じた処理を行うことができる。しかし、同一の属性をもつエリアを抽出し、それぞれの属性のオブジェクト情報毎に圧縮されたビットマップイメージデータを対応付けるため、非常に処理時間がかかるという問題がある。
【００１２】
また特許文献３には、ビットマップイメージデータに対して１面の属性情報を持たせることも記載されている。この場合、ビットマップイメージに展開していないオブジェクト情報との整合性が問題となる。この問題に対しては、特許文献３には何も記載されていないが、例えば統一的に、未処理のオブジェクトについてもオブジェクト毎に１面の属性情報を保持することが考えられる。しかし、すべて１面の属性情報を保持するとデータ量が増大してしまうため、得策ではない。
【００１３】
【特許文献１】
特許第３２５４６７２号公報
【特許文献２】
特開２００１−２３６１９１号公報
【特許文献３】
特開２００１−３３１２８７号公報
【００１４】
【発明が解決しようとする課題】
本発明は、上述した事情に鑑みてなされたもので、いかなる場合でも展開されたビットマップイメージに対して１ないし複数画素単位で属性情報を保持して最適な補正処理を施すことが可能であり、また属性情報のメモリへの展開を高速に行うとともに、データ量を抑えてメモリの有効利用を図った画像処理装置を提供することを目的とするものである。
【００１５】
【課題を解決するための手段】
本発明は、入力される描画命令に基づいてビットマップイメージを作成する画像処理装置及び画像処理方法において、描画手段により描画命令あるいは描画命令から生成された中間コード画像データに基づいてレンダリング処理を行い、ビットマップイメージを生成して属性情報とともにイメージ記憶手段に保持させ、ビットマップイメージに対して属性情報に従った補正処理を行うものであって、描画命令あるいは中間コード画像データ中に単一の属性情報を使用するか否かを示す有効／無効情報を保持させておき、描画手段によるレンダリング処理時に有効／無効情報に従って単一の属性情報を描画図形に適用するか否かを判断し、該判断結果に応じてイメージ記憶手段に属性情報を設定することを特徴とするものである。
【００１６】
このように描画命令あるいは中間コード画像データ中に単一の属性情報を使用するか否かを示す有効／無効情報を保持させておくことによって、従来と同様に単一の属性情報に従った処理を可能とするとともに、例えばイメージデータに画素毎に属性情報が付加されている場合には、その付加された属性情報に従った処理も可能となる。このとき、単一の属性情報も使用できるので、全ての描画命令あるいは中間コード画像データについて画素毎に属性情報を持つ必要はなく、データ量を抑えることができる。
【００１７】
特に、描画命令あるいは中間コード画像データを命令記憶手段に保持させてゆく際に命令記憶手段の記憶領域が不足したときには、それまでに命令記憶手段に記憶されている描画命令あるいは中間コード画像データをレンダリング処理してイメージ記憶手段にビットマップイメージ及び属性情報を展開し、ビットマップイメージおよび属性情報が保持される領域のアドレスを含む単一の描画命令あるいは中間コード画像データを生成することにより命令記憶手段の記憶領域を確保することができる。このとき生成した単一の描画命令あるいは中間コード画像データについては、有効／無効情報として単一の属性情報を使用しないように設定する。これによって、レンダリング処理時に複数の属性の図形を描画した場合であっても、それらの図形の属性情報をそのまま反映することができ、補正処理手段でビットマップイメージに対して補正処理を行う際に最適な処理を施すことができる。よって、画質を向上させることができる。
【００１８】
なお、展開したビットマップイメージ及び属性情報は、データ量を削減するために、例えば縮小したり、あるいは圧縮して圧縮コードとしておくことができる。圧縮する場合には、ビットマップイメージと属性情報のそれぞれについて異なる圧縮方法を適用することができる。なお、属性情報の圧縮には可逆方式を用いることが望ましい。
【００１９】
また、描画手段及び補正処理手段は、専用の回路で構成することが望ましい。本発明の画像処理装置の出力先として例えば印字装置が想定されるが、印字装置においては連続したビットマップイメージの供給が必要であるなど、種々の制約があり、描画手段及び補正処理手段がそのような制約を満たすように専用回路で構成されているとよい。また、描画や補正処理に要する時間を短縮することができる。
【００２０】
【発明の実施の形態】
図１は、本発明の実施の一形態を示す機能ブロック図である。図中、１は上位処理装置、２は画像処理装置、３は印字装置、１１は中間コード生成部、１２は中間コードメモリ、１３は中間コード画像データ展開部、１４はバンドバッファ、１５は補正処理部、１６は出力制御部である。画像処理装置２は、本発明の画像処理装置あるいは本発明の画像処理方法を実現する装置の一例であり、この例では描画命令を受け取ってバンド毎の中間コード画像データを生成した後、バンド単位のビットマップイメージを作成し、出力する場合を示している。ここでは、描画命令は例えばパーソナルコンピュータなどの上位処理装置１から受け取り、作成したビットマップイメージを印字装置３に出力するものとして図示している。なお、上位処理装置１と画像処理装置２は、ケーブル接続されたり、あるいはＬＡＮなどのネットワークによって通信可能に接続されていてよい。また、画像処理装置２と印字装置３とは、配線などによって直結されている場合が多いが、これに限られるものではない。
【００２１】
画像処理装置２は、中間コード生成部１１、中間コードメモリ１２、中間コード画像データ展開部１３、バンドバッファ１４、補正処理部１５、出力制御部１６を含んで構成されている。中間コード生成部１１は、上位処理装置１から送られてくる描画命令を受け取り、その描画命令を解釈してバンド単位の中間コード画像データを生成する。生成する中間コード画像データには、その中間コード画像データによって描画される図形に対して単一の属性情報を含ませておくことができる。また、その単一の属性情報を使用するか否かを示す有効／無効情報を含んでいる。なお、中間コード生成部１１で生成する中間コード画像データは、通常は有効／無効情報として単一の属性情報を使用する設定とする。もちろんこれに限らず、例えば上位処理装置１から描画命令とともにビットマップイメージに１ないし複数の画素毎の属性情報が付加されている場合についても受け付け可能に構成することができ、この場合には単一の属性情報を使用しない設定とした中間コード画像データを生成する。中間コード画像データのデータフォーマットの例については後述する。
【００２２】
中間コードメモリ１２は本発明の命令記憶手段であり、中間コード生成部１１で生成した中間コード画像データを記憶する。また、例えば中間コード生成部１１で上位処理装置１から受け取った描画命令を記憶するなど、中間コード生成部１１における処理において利用することも可能である。
【００２３】
中間コード画像データ展開部１３は、本発明の描画手段の機能を含み、中間コードメモリ１２からバンド単位に中間コード画像データを読み出してレンダリングし、ビットマップイメージ及び属性情報を作成してバンドバッファ１４に書き込む。なお、属性情報はビットマップイメージの１ないし複数画素毎に付加することができる。
【００２４】
また中間コード画像データ展開部１３は、中間コード生成部１１が中間コードメモリ１２に中間コード画像データを保持させてゆく際に、中間コードメモリ１２の記憶領域が不足したときには、フォールバック処理を行う。フォールバック処理は、それまでに中間コードメモリ１２に記憶されている中間コード画像データをレンダリング処理してビットマップイメージ及び属性情報を展開し、そのビットマップイメージおよび属性情報が保持される領域のアドレスを含む単一の中間コード画像データを生成する処理である。なお、フォールバック処理の詳細は後述する。このフォールバック処理によって、多数の中間コード画像データが１つの中間コード画像データに置き換えられるため、中間コードメモリ１２の記憶領域を確保することができる。
【００２５】
このとき生成した単一の中間コード画像データについては、有効／無効情報として単一の属性情報を使用しないように設定しておく。フォールバック処理時には、複数の属性を持つ図形を描画している可能性があり、従って展開されたビットマップイメージは単一の属性を有しているとは限らない。単一の属性情報を使用しないように有効／無効情報を設定しておくことによって、生成した単一の中間コード画像データに基づいてレンダリング処理を行う際に、フォールバック処理時に展開した属性情報をそのまま反映することが可能になる。
【００２６】
なお、中間コード画像データ展開部１３がフォールバック処理を行って展開したビットマップイメージ及び属性情報は、データ量を削減するため、縮小したり、あるいは圧縮して圧縮コードとしておくことができる。圧縮する場合には、ビットマップイメージと属性情報のそれぞれについて異なる圧縮方法を適用することができる。なお、属性情報の圧縮には可逆方式を用いることが望ましい。
【００２７】
バンドバッファ１４は本発明におけるイメージ記憶手段に対応するものであり、中間コード画像データ展開部１３で展開したバンド単位のビットマップイメージを保持するとともに、ビットマップイメージの１ないし数画素毎に属性情報を保持する。なお、バンドバッファ１４は例えばカラーのビットマップイメージを記憶する際には、色成分毎に別々のプレーンとして記憶する面順次データとして記憶したり、あるいは画素毎にすべての色成分のデータを保持する点順次データとして記憶することができる。また、バンドバッファ１４として、１バンド分の記憶領域を有するほか、複数バンド分の記憶領域を有し、中間コード画像データ展開部１３によるビットマップイメージ及び属性情報の書き込みと、次の補正処理部１５による処理あるいは出力制御部１６による読み出しを並行して行えるように構成することもできる。
【００２８】
補正処理部１５は、バンドバッファ１４に保持されているビットマップイメージに対して、同じくバンドバッファ１４に保持されている属性情報に従って補正処理を行う。例えば、それぞれの属性に応じた色変換処理などを行うことができる。もちろん、色変換処理に限らず、属性情報に応じた種々の補正処理を行うことができる。また、出力のためのデータ変換処理なども補正処理部１５において行うこともできる。
【００２９】
出力制御部１６は、バンドバッファ１４に展開されたビットマップイメージを読み出し、印字装置３などに転送する。
【００３０】
図２は、本発明の実施の一形態における、より具体的な機能ブロック図である。図中、２１は入力制御部、２２は描画命令解釈部、２３は中間コード画像データ生成部、３１は中間コード画像データ解釈部、３２は圧縮／伸長処理部、３３は縮小／拡大処理部、４１は色変換部、４２は点面変換部である。実線の矢印はデータの流れを示し、破線の矢印は制御の流れを示している。
【００３１】
この例では、中間コード生成部１１は、入力制御部２１、描画命令解釈部２２、中間コード画像データ生成部２３を含んで構成されている。また中間コード画像データ展開部１３は、中間コード画像データ解釈部３１、圧縮／伸長処理部３２、縮小／拡大処理部３３を含んで構成されている。さらに補正処理部１５は、色変換部４１、点面変換部４２を含んで構成されている。
【００３２】
入力制御部２１は、上位処理装置１などから送られてくる描画命令を受信し、中間コードメモリ１２に記憶させる。そして描画命令解釈部２２を起動する。描画命令解釈部２２は、中間コードメモリ１２に記憶されている描画命令を順に読み出し、解釈する。そして、この描画命令の解釈処理によって得られた情報（属性情報、色情報、エッジ情報、イメージなど）を中間コード画像データ生成部２３に引き渡す。中間コード画像データ生成部２３は、上述の中間コード生成部１１における中間コード画像データの生成に関する各種の機能を実行し、描画命令解釈部２２から渡された情報から、バンド単位で中間コード画像データを生成し、中間コードメモリ１２に格納する。
【００３３】
図３は、イメージの中間コード画像データの一例の説明図である。ここでは描画オブジェクトに対する中間コード画像データのフォーマットの一例を示している。描画オブジェクトとしては、グラフィックス、フォント、イメージなどが挙げられる。このうち、グラフィックスやフォントについては、中間コード画像データのみで表現可能であるが、イメージ（縮小／圧縮イメージを含む）の場合には、中間コード画像データとイメージ（縮小／圧縮イメージを含む）の２つで構成される。図３（Ａ）にはグラフィックスやフォントなど、イメージ以外の描画オブジェクトの場合の中間コード画像データのフォーマットを示し、図３（Ｂ）にはイメージの場合の中間コード画像データのフォーマットを示している。
【００３４】
いずれの描画オブジェクトの場合も、中間コード画像データはヘッダ部とボディ部で構成されている。ヘッダ部にはコマンドＩＤ、属性情報フィールドとその他の情報が含まれており、描画オブジェクトがイメージの場合には、さらに、イメージ（縮小／圧縮イメージを含む）が存在するアドレスを「イメージへのポインタ」として保持し、イメージとの関連づけを行っている。ボディ部には、描画命令解釈部２２から渡されたエッジ情報から作成した描画領域を指定する情報、例えばランレングス情報を保持する。
【００３５】
ここで、属性情報フィールドには、従来は描画命令解釈部２２から渡された描画オブジェクトを示す属性情報を設定している。この例では、この属性情報とともに有効／無効情報を属性情報フィールドに設定する。この属性情報フィールドに設定される属性情報は、当該中間コード画像データにおいて単一の属性を示す情報である。すなわち、描画オブジェクトがイメージであれば、イメージ全体に対して共通の「イメージ」という属性を適用することを示すものである。グラフィックスやフォントの場合には、描画領域全てにおいて同一の描画オブジェクトであることが保証されるが、イメージ（縮小／圧縮イメージを含む）の場合には、イメージのみであるという保証はなく、何らかの理由でフォントやグラフィックスなどの複数の描画オブジェクトが展開された状態でイメージとして扱われている場合がある。例えば上述のフォールバック処理の場合があるし、また上位処理装置１から属性を指定されたイメージを受け取った場合なども考えられる。しかし、従来の中間コード画像データのフォーマットでは、属性情報フィールドに設定されている単一の描画オブジェクト情報しか持つことができないため、上記のような場合には対応できず、印字の品質を保証できないという問題が発生する。
【００３６】
本発明の中間コード画像データのフォーマットでは、上述のような問題を解決するため、有効／無効情報を有している。この有効／無効情報は、上述の中間コード画像データ中の属性情報フィールドに設定されている単一の属性情報を使用するか否かを示している。この有効／無効情報が有効である旨を示している場合には、属性情報フィールドの単一の属性情報を使用する。また、有効／無効情報が無効である旨を示している場合には、属性情報フィールドの単一の属性情報を使用せず、例えばイメージに付加されている属性情報などを使用する。
【００３７】
図３に示した例では、有効／無効情報も属性情報フィールドに格納している。具体例として、属性情報フィールドのサイズが８ビットである場合、下位４ビットで属性情報を表現し（例えばグラフィックス＝１、フォント＝２、イメージ＝３など）、上位４ビットで有効／無効情報を表現する（例えば有効＝０、無効＝０ｘｆ０）。この属性情報と有効／無効情報との論理和を属性情報フィールドに格納している。もちろん、この具体例に限られるものでないことは言うまでもなく、中間コード画像データ中に１ビット以上の有効／無効情報が含まれていればよい。
【００３８】
図３（Ｂ）に示すイメージの中間コード画像データの場合、上述のようにイメージへのポインタによってイメージが存在する場所が指し示されている。このときのイメージは、有効／無効情報が有効の設定の場合には、図３（Ｃ）に示すようにイメージのみである。しかし、有効／無効情報が無効の設定の場合には、図３（Ｄ）に示すように、イメージとともに、そのイメージの１ないし複数画素毎に対応付けられた属性情報を含んでいる。
【００３９】
このように、何らかの理由でフォントやグラフィックスなどの複数の属性の描画オブジェクトが展開された状態でイメージとして扱われている場合には、属性情報フィールドに有効／無効情報として無効を設定し、かつ中間コード画像データのヘッダ部に格納されているイメージへのポインタで指し示されるイメージ（縮小／圧縮イメージを含む）の中に１ないし複数画素毎の属性情報を付加させる。これによって、確実に各画素に対する属性情報を保持することができ、補正処理部１５において属性情報に従った補正処理を行って印字の品質を保証することができる。
【００４０】
図２に戻り、中間コード画像データ展開部１３の中間コード画像データ解釈部３１は、中間コードメモリ１２から中間コードを順に取り出して解釈し、バンド単位でバンドバッファ１４に描画処理し、ビットマップイメージに展開する。また、描画した画素に対応する属性情報についてもビットマップイメージとともにバンドバッファ１４に格納する。このとき、中間コード画像データによっては、圧縮／伸長処理部３２、縮小／拡大処理部３３等を用いて処理を行うことができる。また中間コード画像データ展開部１３は、中間コードメモリ１２の空き容量が少なくなったときに、上述のフォールバック処理を行う。フォールバック処理でもバンドバッファ１４に対して描画処理を行い、また属性情報も格納する。このとき、一般的には種々の属性の図形が描画されることになる。そのため、フォールバック処理において生成する中間コード画像データには、有効／無効情報として無効を設定しておく。また、その中間コード画像データのイメージには属性情報を付加しておく。
【００４１】
なお、フォールバック処理で描画されたビットマップイメージ及び属性情報は中間コードメモリ１２に格納されることになるが、ビットマップイメージのままでは中間コードメモリ１２の領域を圧迫するおそれもある。このような場合に対応し、データ量を削減するために、例えば縮小／拡大処理部３３で縮小したり、あるいは圧縮／伸長処理部３２で圧縮しておくことができる。圧縮する場合には、ビットマップイメージと属性情報とで異なる圧縮手法を用いることが可能である。少なくとも属性情報については、可逆圧縮手法を用いることが望ましい。
【００４２】
圧縮／伸長処理部３２は、圧縮されたイメージを伸長してバンドバッファ１４に書き込む。また、例えばフォールバック処理を行い、描画したビットマップイメージを圧縮し、圧縮コードとして保存する場合は、この圧縮／伸長処理部３２によって圧縮し、圧縮コードを中間コードメモリ１２に格納する。この場合も、バンドバッファ１４に書き込む際には、この圧縮／伸長処理部３２によって伸長処理を行う。
【００４３】
縮小／拡大処理部３３は、描画するオブジェクトがイメージの時、中間コードメモリ１２に格納されている中間コード画像データ中の拡大率に従って、イメージを縮小あるいは拡大処理する。また、例えばフォールバック処理で描画したビットマップイメージを縮小して保存する場合には、描画したビットマップイメージを縮小し、中間コードメモリ１２に格納する。この場合も、バンドバッファ１４に書き込む際には、この縮小／拡大処理部３３によって必要に応じて拡大処理を行う。
【００４４】
補正処理部１５の色変換部４１は、バンドバッファ１４中のビットマップイメージに対して、色空間変換処理や色補正処理などを行う。このとき、ビットマップイメージとともにバンドバッファ１４に格納されている属性情報に従って、それぞれの属性の描画図形に最適な処理を行うことができる。
【００４５】
点面変換部４２は、バンドバッファ１４にビットマップイメージを記憶する際に、色成分毎に別々のプレーンとして記憶する面順次データとして記憶し、印字装置３が画素毎にすべての色成分のデータを保持する点順次データを要求する場合、面順次データから点順次データへ変換する。あるいは、バンドバッファ１４にビットマップイメージを記憶する際に点順次データとして記憶し、印字装置３が面順次データを要求する場合、点順次データから面順次データへ変換する。
【００４６】
なお、中間コード画像データ展開部１３、補正処理部１５の全部又は一部の構成、あるいはさらにバンドバッファ１４などは、専用の回路で構成することが可能である。これによって高速に処理を行うことが可能である。
【００４７】
図４は、本発明の実施の一形態における全体処理の一例を示すフローチャートである。例えば、パーソナルコンピュータなどの上位処理装置１と画像処理装置２がネットワークなどで接続されているようなプリントシステムにおいては、上位処理装置１からネットワークなどを通じて描画命令が画像処理装置２に送られてくるので、画像処理装置２は入力制御部２１で描画命令を受け取って中間コードメモリ１２に格納する。
【００４８】
一連の描画命令を受信したら、あるいは描画命令の受信と並行して、描画命令解釈部２２及び中間コード画像データ生成部２３が動作する。Ｓ５１において、描画命令解釈部２２は、上位処理装置１から受け取った描画命令が存在するか否かを判定し、存在していれば、その描画命令をＳ５２において解釈する。そして、解釈結果を中間コード画像データ生成部２３に渡す。
【００４９】
画像データ生成部２３は、描画命令解釈部２２から渡された解釈結果に基づき、それぞれのバンド毎の中間コード画像データを生成する。描画命令に基づく描画領域のＹ方向の座標の最小値をＹｍｉｎ、最大値をＹｍａｘとしたとき、Ｙｍｉｎを含むバンドからＹｍａｘを含むそれぞれのバンドについてＳ５４〜Ｓ６０の処理が行われるようにＳ５３〜Ｓ６１を繰り返す。
【００５０】
Ｓ５４では、描画命令によって描画されるオブジェクトのうち、処理中のバンドに描画される部分についての中間コード画像データを生成する。Ｓ５５において、属性情報フィールドを有効にするか否かを判定する。この判定は、例えば描画オブジェクトがイメージの場合に、そのイメージとともに１ないし複数画素毎に属性情報が付加されているか否かを判定すればよい。別途、属性情報が付加されていなければ、単一の属性情報を適用すればよいので、Ｓ５６において属性情報フィールドに有効・無効情報として単一の属性情報が有効である旨を設定する。また、属性情報が付加されている場合には、その付加されている属性情報を利用することとし、Ｓ５７において、有効・無効情報としては単一の属性情報を無効とする旨の設定を行う。
【００５１】
中間コード画像データ生成部２３で生成された中間コード画像データは、中間コードメモリ１２に格納するが、このとき、Ｓ５８において、中間コード画像データを中間コードメモリ１２に格納できるだけの空き領域が存在するか否かを判定する。空き領域が存在すれば、Ｓ６０において、中間コード画像データ生成部２３で生成された中間コード画像データを中間コードメモリ１２に格納する。
【００５２】
中間コード画像データ生成部２３で生成された中間コード画像データを中間コードメモリ１２に格納できるだけの空き領域が存在しない場合には、Ｓ５９においてフォールバック処理を行う。このフォールバック処理についての処理の一例については後述する。このフォールバック処理によって中間コードメモリ１２の空き領域を増加させた後、Ｓ６０において、中間コード画像データ生成部２３で生成された中間コード画像データを中間コードメモリ１２に格納する。
【００５３】
このようにして、ある描画命令について１つのバンドに対する中間コード画像データを生成し、中間コードメモリ１２に格納したら、同じ描画命令について他のバンドに対する中間コード画像データを生成すべく、Ｓ６１からＳ５３に戻って処理を繰り返す。ある描画命令について、その描画命令によって描画される全てのバンドについて中間コード画像データを生成したら、Ｓ５１へ戻る。そして、次の描画命令についての処理を行う。そして、全ての描画命令について、バンド毎の中間コード画像データを生成したら、Ｓ６２へ進む。
【００５４】
Ｓ６２〜Ｓ６４では、すべてのバンドについて、順次、Ｓ６３において中間コード画像データ解釈部３１がレンダリング処理を行う。すなわち、中間コード画像データ解釈部３１は、処理中のバンドに対応する中間コード画像データを中間コードメモリ１２から読み出してレンダリング処理を行い、ビットマップイメージ及び属性情報をバンドバッファ１４に書き込む。１バンド分の中間コード画像データについてレンダリング処理を終えたら、リアルタイム出力を行う場合にはすぐに補正処理部１５による属性情報を用いたビットマップイメージの補正処理を行って、出力制御部１６から例えば印字装置３などに出力される。また、リアルタイム出力を行わない場合には、バンドバッファ１４内のビットマップイメージ及び属性情報を圧縮／伸長処理部３２で圧縮して中間コードメモリ１２に格納する。なお、レンダリング処理のより詳細な説明を後述する。
【００５５】
このようにして全てのバンドについてＳ６３におけるレンダリング処理を行った後、Ｓ６５においてリアルタイム出力を行ったか否かを判断する。リアルタイム出力を行っている場合には、既に出力まで終了しているので、この処理を終える。
【００５６】
リアルタイム出力を行っていない場合には、Ｓ６６〜Ｓ６８において、全てのバンドについて、順次、Ｓ６７における伸長及び出力処理を行う。すなわち、リアルタイム出力を行っていない場合には、上述のようにバンド毎に生成したビットマップイメージ及び属性情報は圧縮されて圧縮コードとして中間コードメモリ１２に格納されている。従って、順に圧縮コードを読み出して圧縮／伸長処理部３２により伸長し、バンドバッファ１４に展開し、出力制御部１６から例えば印字装置３などに出力する。
【００５７】
なお、上述の一連の動作は、例えば１ページ分のビットマップイメージを出力するものであり、例えば複数ページのビットマップイメージを出力する場合には、上述の図４に示した処理をそれぞれのページ毎に行えばよい。
【００５８】
図５は、本発明の実施の一形態におけるフォールバック処理の一例を示すフローチャートである。フォールバック処理の概要は、あるバンドの全ての中間コード画像データを一旦バンドバッファに展開し、バンドバッファに展開されたビットマップイメージに対する単一の中間コード画像データを生成することにより中間コード画像データ保持領域の不足を解消するというものである。ここでは１バンド分の中間コード画像データについてフォールバック処理を行うものとして説明する。もちろん、以下の処理を繰り返すことによって、複数バンドについてフォールバック処理を行うことも可能である。
【００５９】
フォールバック処理を行うバンドに対応する中間コード画像データのそれぞれについて、Ｓ７１〜Ｓ８１の間の処理を実行する。Ｓ７２では、中間コード画像データがイメージを描画する（イメージ系の）中間コード画像データであるか否かを判定する。この判定は、コマンドＩＤや属性情報などによって行うことができる。イメージ系以外の中間コード画像データである場合には、Ｓ７９において、属性情報として中間コード画像データ中の属性情報フィールドの属性情報を用いるものとして、Ｓ８０でバンドバッファ１４への描画処理を行う。この描画処理によって書き込まれた画素については、中間コード画像データ中の属性情報フィールドの属性情報がバンドバッファ１４に書き込まれる。
【００６０】
また、イメージ系の中間コード画像データについては、Ｓ７３において描画するイメージが圧縮された圧縮データである場合には、Ｓ７４において圧縮／伸長処理部３２で伸長処理し、また描画するイメージ（伸長されたイメージを含む）が縮小されたイメージであれば、Ｓ７６において、縮小／拡大処理部３３で拡大処理を行う。なお、描画するイメージがバンドバッファ１４に展開する際の解像度と一致していない場合には、Ｓ７６において解像度を一致させるための拡大あるいは縮小処理を行う。なお、圧縮データであるか否か、及び、圧縮データであるか否かは、中間コード画像データ中のコマンドＩＤなどによって判断することができる。
【００６１】
ここで、処理中の中間コード画像データの有効／無効情報が有効、すなわち中間コード画像データ中の属性情報フィールドの属性情報を用いる旨の設定であるか否かを判定する。有効／無効情報が有効であれば、Ｓ７９において属性情報として中間コード画像データ中の属性情報フィールドの属性情報を用いるものとし、無効であれば、Ｓ７８においてイメージに付加されている属性情報を用いるものとする。そして、Ｓ８０においてバンドバッファ１４への描画処理を行う。このとき、描画処理によって書き込まれた画素に対応する属性情報として、有効／無効情報が有効であれば中間コード画像データ中の属性情報フィールドの属性情報をバンドバッファ１４に書き込み、有効／無効情報が無効であればイメージに付加されている属性情報をバンドバッファ１４に書き込む。
【００６２】
このような処理を１バンド分の中間コード画像データのそれぞれについて行うことによって、バンドバッファ１４には、フォールバック処理開始時点までに生成されている当該バンドに対応する中間コード画像データにより描画されたビットマップイメージ及び属性情報が格納される。描画された中間コード画像データは中間コードメモリ１２から削除され、中間コードメモリ１２の空き領域を増やすことができる。
【００６３】
なお、ここではイメージ系以外の中間コード画像データについては有効／無効情報を判断していないが、もちろん、イメージ系以外の中間コード画像データについても有効／無効情報を判断してもよい。
【００６４】
バンドバッファ１４への描画が終了したら、バンドバッファ１４内のビットマップイメージを中間コードメモリ１２に転送し、後述するＳ９０で生成する新たな中間コード画像データのイメージとして中間コードメモリ１２に格納する。上述の処理によって中間コード画像データが削除されて中間コードメモリ１２の空き領域は増加するが、イメージを保存するための領域が不足する場合が発生することがある。そのような場合に対応するため、バンドバッファに展開されたビットマップイメージに対して、縮小処理や圧縮処理（可逆または非可逆）を実行することにより、中間コードメモリ１２内のイメージ保持領域の不足を解消することができる。縮小処理や圧縮処理を行うか否かは予め設定しておいたり、あるいは中間コード画像データあるいは描画されたビットマップイメージなどから判断するように構成することができる。
【００６５】
これらの処理を行う際に、この例ではビットマップイメージを色成分毎に処理するものとし、Ｓ８２〜Ｓ８９のループを色成分Ｒ、Ｇ、Ｂと属性情報の４回実行するものとしている。例えばＳ８０の描画処理の際に、面順次データとしてバンドバッファ１４に描画している場合を想定している。もちろん、点順次データの場合には、ビットマップイメージと属性情報の２回のループとなる。
【００６６】
Ｓ８３において縮小するか否かを判定し、縮小する場合にはＳ８４において縮小・拡大処理部３３で縮小（あるいは拡大）処理を行う。またＳ８５において圧縮するか否か、及び圧縮する場合にはＳ８６において圧縮手法として可逆圧縮手法を用いるか否かを判定する。圧縮しない場合には当該色成分あるいは属性情報に対する処理を終えて次の色成分あるいは属性情報に対する処理に移る。圧縮処理を行う場合であって、可逆圧縮手法が選択されている場合にはＳ８７において圧縮・伸長処理部３２は可逆圧縮手法による圧縮を行う。また、圧縮処理を行う場合であって、非可逆圧縮手法が選択されている場合にはＳ８８において圧縮・伸長処理部３２は非可逆圧縮手法による圧縮を行う。データ量を削減するためには非可逆圧縮手法を用いた方がよいが、正確に元のデータを復元することはできない。従って、属性情報については常に可逆圧縮手法を用いることが望ましい。なお、縮小処理も圧縮処理も行わない場合には、バンドバッファ１４に展開されたビットマップイメージ及び属性情報をそのまま中間コードメモリ１２に格納することになる。
【００６７】
ビットマップイメージのそれぞれの色成分及び属性情報について、必要に応じて縮小処理や圧縮処理を行った後、Ｓ９０において、バンドバッファ１４に展開したビットマップイメージに対して１つの中間コード画像データを生成する。そしてＳ９１において、その中間コード画像データに、有効／無効情報として無効を設定する。また、中間コード画像データのコマンドＩＤには、縮小処理や圧縮処理などを行ったか否かなどに応じたコマンドＩＤが設定される。
【００６８】
このようにして生成された中間コード画像データとビットマップイメージは中間コードメモリ１２に格納され、以後、中間コード画像データ生成部２３が描画命令から生成した中間コード画像データと同様に取り扱われる。
【００６９】
図６は、ビットマップイメージに属性情報を付加させた場合のデータフォーマットの一例の模式図である。図６（Ａ）にはＲＧＢの面順次のビットマップイメージを示しており、色成分Ｒからなる画像プレーンと色成分Ｇからなる画像プレーンと色成分Ｂからなる画像プレーンによって構成される。それとともに属性情報のプレーンを設け、Ｒ、Ｇ、Ｂの画像プレーン中のそれぞれの画素位置と同じ位置にその画素の属性情報を配置している。
【００７０】
このようなデータフォーマットのビットマップイメージ及び属性情報に対して、上述の図５に示したフォールバック処理において縮小処理を行った場合を図６（Ｂ）に示している。ここでは間引き処理によって１／２に縮小した場合を示しており、偶数画素のデータがそれぞれの画像プレーン及び属性情報のプレーンから間引かれている。もちろん縮小処理の方法や縮小率は任意である。
【００７１】
さらにこのような図６（Ａ）または図６（Ｂ）に示すデータフォーマットのビットマップイメージ及び属性情報を圧縮する場合には、やはり画像プレーン及び属性情報のプレーン毎に圧縮する。これによって、図６（Ｃ）に示すようにＲ成分の圧縮コードとＧ成分の圧縮コードとＢ成分の圧縮コードと属性情報の圧縮コードがそれぞれ生成されることになる。
【００７２】
図７は、ビットマップイメージに属性情報を付加させた場合のデータフォーマットの別の例の模式図である。上述の図６には面順次の場合を示したが、図７には点順次のビットマップイメージの場合を示している。点順次の場合には、それぞれの画素毎のデータとして全ての色成分のデータ（Ｒ成分データ、Ｇ成分データ、Ｂ成分データ）を有している。従って図７（Ａ）に示すように、属性情報についてもそれぞれの画素毎に付加してゆけばよい。これによって、それぞれの画素毎に、Ｒ成分データ、Ｇ成分データ、Ｂ成分データ、属性情報の４つを保持することになる。
【００７３】
このようなデータフォーマットのビットマップイメージ及び属性情報に対して、上述の図５に示したフォールバック処理において縮小処理を行った場合を図７（Ｂ）に示している。ここでは間引き処理によって１／２に縮小した場合を示しており、偶数画素のデータがそれぞれの画像プレーン及び属性情報のプレーンから間引かれている。もちろん縮小処理の方法や縮小率は任意である。
【００７４】
さらにこのような図７（Ａ）または図７（Ｂ）に示すデータフォーマットのビットマップイメージ及び属性情報を圧縮する場合には、属性情報を分離し、ＲＧＢビットマップイメージと属性情報とを別々に圧縮するとよい。ＲＧＢビットマップイメージに対する圧縮手法としては種々の手法が知られており、それぞれの圧縮手法によってフォーマットは異なっている。また、属性情報を分離した場合、ＲＧＢビットマップイメージとは異なる圧縮手法を適用することができる。例えばＲＧＢビットマップイメージに対して非可逆の圧縮手法を適用している場合、属性情報に対しては可逆圧縮手法を適用するといったことが可能である。このような処理によって、図７（Ｃ）に示すようにＲＧＢビットマップイメージに対する圧縮コードと属性情報に対する圧縮コードがそれぞれ生成されることになる。
【００７５】
図４でも説明したように、上位処理装置１から送信された全ての描画命令を中間コード画像データに変換した後、バンド単位にレンダリング処理を行う。中間コード画像データの生成時にフォールバック処理を行った場合には、そのフォールバック処理で生成された中間コード画像データも、レンダリング処理の対象となる。
【００７６】
図８は、レンダリング処理の一例を示すフローチャートである。ここでは１バンド分のレンダリング処理を示しており、図４のＳ６２，Ｓ６４によりそれぞれのバンド毎に、このレンダリング処理を繰り返して実行することになる。
【００７７】
まずＳ１０１において、中間コード画像データの有無を判定する。レンダリング処理すべき中間コード画像データが存在する場合には、その中間コード画像データについてＳ１０２〜Ｓ１１０の処理を行ってバンドバッファ１４に描画する。なお、Ｓ１０２〜Ｓ１１０の処理は図４に示したフォールバック処理のＳ７２〜Ｓ８０の処理と同様である。この処理中で上述のフォールバック処理と同様に、有効／無効情報に従って、中間コード画像データ中の属性情報あるいはイメージに付加されている属性情報のいずれかを選択し、描画したビットマップイメージに対応付けて属性情報をバンドバッファ１４に書き込む。上述のフォールバック処理の場合も同様であるが、中間コード画像データの中には、この描画処理よりも前に行われたフォールバック処理によって生成された中間コード画像データも含まれている場合がある。そのような中間コード画像データでは有効／無効情報は無効に設定されており、イメージに付加されている属性情報を用いてバンドバッファ１４に属性情報を書き込むことになる。Ｓ１１０の描画処理を行ったらＳ１０１へ戻り、次の中間コード画像データの処理に移る。
【００７８】
１バンド分の中間コード画像データについて全て描画したら、Ｓ１０１からＳ１１１へ進む。Ｓ１１１において、描画されたビットマップイメージの色空間と、出力するビットマップイメージの色空間が一致しているか否かを判定する。一致していれば色空間の変換処理は不要であるので次のＳ１１３へ進む。色空間が一致していない場合には、Ｓ１１２において、色変換部４１は出力するビットマップイメージの色空間への色空間変換処理を行う。例えば、描画されたビットマップイメージの色空間がＲＧＢ色空間であり、出力するビットマップイメージの色空間がＣＭＹＫ色空間である場合には、ＲＧＢ色空間からＣＭＹＫ色空間への変換処理を行う。このとき、ビットマップイメージに付加されている属性情報に従って、それぞれの属性の図形に対して最適な色空間変換処理を行うことができる。例えばイメージ部分については忠実な色再現を目的として色空間変換処理を行い、文字などの部分については識別性を重視した色空間変換処理を行うなどといった処理が可能である。もちろん、属性情報に応じてどのような色空間変換処理を行うかは任意である。
【００７９】
また、ここでは色空間変換処理について一例として示しているが、もちろんこのほかにも、色調整や各色成分のγ調整、その他、各種のフィルタリング処理などの画処理を、必要に応じて属性情報を用いて行うことができる。
【００８０】
Ｓ１１３では、バンドバッファ１４に格納されているビットマップイメージのデータ形式（点順次あるいは面順次）が、出力するビットマップイメージのデータ形式と一致しているか否かを判断する。一例として、ここでは出力するビットマップイメージのデータ形式が面順次のデータ形式であるものとしており、バンドバッファ１４に格納されているビットマップイメージが点順次のデータ形式であれば、Ｓ１１４において、点面変換部４２で面順次のデータ形式に変換する。もちろん、出力するビットマップイメージとして要求されるデータ形式が点順次のデータ形式であれば、面順次のビットマップイメージについて点順次のデータ形式への変換処理を行う。
【００８１】
このようにして、バンドバッファ１４に格納されているビットマップイメージに対して各種の処理を施した後、Ｓ１１５においてリアルタイム出力を行うか否かを判定する。リアルタイム出力を行う場合には、Ｓ１１７において、出力制御部１６がバンドバッファ１４からビットマップイメージを読み出し、外部の例えば印字装置３などへ出力する。印字装置３は画像処理装置２からビットマップイメージを受け取り、印字処理を行う。
【００８２】
またリアルタイム出力を行わない場合には、Ｓ１１６において、バンドバッファ１４に格納されているビットマップイメージを圧縮／伸長処理部２３で圧縮し、圧縮データを中間コードメモリ１２に格納する。あるいは、複数ページ分の圧縮データを格納する場合には、新たに外部記憶装置を画像処理装置２に設けることにより対応する。出力を行う場合には、図４のＳ６７において圧縮／伸長処理部３２で伸長処理を行ってバンドバッファ１４に書き込み、そのバンドバッファ１４に書き込まれたビットマップイメージを出力制御部１６が印字装置３などに対して出力する。
【００８３】
リアルタイム出力を行うか否かは、上述のバンド単位のレンダリング処理や、色変換処理および点面変換処理などに要する処理時間が、印字装置３の出力時間に間に合うか否かによって決めることができる。印字装置３の出力時間に間に合う場合にはリアルタイム出力が可能であり、リアルタイム出力を行うことによって印字装置３で印字が開始されるまでの時間を短縮することができる。印字装置３の出力時間に間に合わない場合や、印字装置３の出力時間に間に合う場合であっても設定により、レンダリングしたビットマップイメージを圧縮して保存し、伸長しながら出力すればよい。伸長処理と出力処理はレンダリング処理などに比べて短時間で処理できるので、印字装置３がある程度高速であっても対応することができる。
【００８４】
上述の説明では、バンドバッファ１４を設け、バンド単位でレンダリング処理及び出力処理を行う場合について述べた。本発明は上述のようなバンド単位で処理する場合に限られるものではなく、ページメモリを有し、ページ単位で処理する場合についても有効である。すなわち、イメージとともに属性情報が送られてくる場合には、送られてきた属性情報を優先して使用する設定を描画命令中で行っておけば追い。また、多量の描画命令が送られてきたとき、メモリの空き容量が不足した場合にページメモリを用いてフォールバック処理を行い、その際に１ないし複数画素毎に属性情報を付加しておいて、後でレンダリング処理を行う際にイメージに付加した属性情報を反映させ、後段の補正処理において最適な処理を施して画質を保証することができる。
【００８５】
【発明の効果】
以上の説明から明らかなように、本発明によれば、描画命令あるいは中間コード画像データが保持する単一の属性情報を使用するか否かを示す有効／無効情報を設定可能としたので、例えば１ないし複数画素毎に属性情報が付加されたイメージなどの取り扱いが可能となり、またフォールバック処理が発生した場合でも全ての画素に対する属性情報を保持することが可能となる。これによって、属性情報に応じた補正処理を正確に施すことができ、画質を保証することができるという効果がある。例えば出力するビットマップイメージに基づいて印字装置により印字する場合には、印字品質を保証することが可能となる。また、常に１ないし複数画素毎に属性情報を保持するとデータ量が増大し、多大なメモリ量が必要となるが、描画命令あるいは中間コード画像データ中の単一の属性情報との切り替えが可能であるので、不必要に属性情報のためのデータ量を増大させることはなく、メモリを有効利用することができる。さらに、有効／無効情報に対する処理はそれほど複雑な処理ではないので、描画手段や補正処理手段を専用の回路で構成することが可能であり、高速な処理が可能である。
【図面の簡単な説明】
【図１】本発明の実施の一形態を示す機能ブロック図である。
【図２】本発明の実施の一形態における、より具体的な機能ブロック図である。
【図３】イメージの中間コード画像データの一例の説明図である。
【図４】本発明の実施の一形態における全体処理の一例を示すフローチャートである。
【図５】本発明の実施の一形態におけるフォールバック処理の一例を示すフローチャートである。
【図６】ビットマップイメージに属性情報を付加させた場合のデータフォーマットの一例の模式図である。
【図７】ビットマップイメージに属性情報を付加させた場合のデータフォーマットの別の例の模式図である。
【図８】レンダリング処理の一例を示すフローチャートである。
【符号の説明】
１…上位処理装置、２…画像処理装置、３…印字装置、１１…中間コード生成部、１２…中間コードメモリ、１３…中間コード画像データ展開部、１４…バンドバッファ、１５…補正処理部、１６…出力制御部、２１…入力制御部、２２…描画命令解釈部、２３…中間コード画像データ生成部、３１…中間コード画像データ解釈部、３２…圧縮／伸長処理部、３３…縮小／拡大処理部、４１…色変換部、４２…点面変換部。
【図１】
2004276537.tif 000003
【図２】
2004276537.tif 000004
【図３】
2004276537.tif 000005
【図４】
2004276537.tif 000006
【図５】
2004276537.tif 000007
【図６】
2004276537.tif 000008
【図７】
2004276537.tif 000009
【図８】
2004276537.tif 000010