(57)【要約】【課題】  ページ記述言語で記述された印刷データに従った描画処理を効率的に実行すること。【解決手段】  本発明の画像形成装置１０は、印刷データから求められる、単位領域についての色定義データを用いた色表現の適用可能性を示す描画情報１５０を記録する記録手段１２０と、解析に対応して生成された中間データが保存される保存手段１３６と、直接指定の色値を表現するプレーンと、付属情報を表現する少なくとも１つのプレーンとを含む通常形式、および、色定義データ上の色識別値と付属情報とをピクセル毎に保持する少なくとも１つの代替形式を含む複数の形式の中から、描画情報に応じたフレーム形式を判定する判定手段１１２と、判定されたフレーム形式で記憶領域を初期化する初期化手段１３４と、中間データを読み出し、判定されたフレーム形式で記憶領域に描画する描画手段１３８と、変換手段１４０とを含む。【選択図】  図３
2010274435.tif 000002
【特許請求の範囲】
【請求項１】
ページ記述言語で記述された印刷データから求められる、単位領域についての色定義データを用いた色表現の適用可能性を示す描画情報を記録する記録手段と、
前記印刷データの解析に対応して生成された中間データが保存される保存手段と、
直接指定の色値を表現するプレーンと、付属情報を表現する少なくとも１つのプレーンとを含む通常形式、および、色定義データ上の色識別値と付属情報とをピクセル毎に保持する少なくとも１つの代替形式を含む複数の形式の中から、前記描画情報に応じたフレーム形式を判定する判定手段と、
判定された前記フレーム形式で記憶領域を初期化する初期化手段と、
前記中間データを読み出し、判定された前記フレーム形式で前記記憶領域に描画する描画手段と、
前記フレーム形式で描画されたピクセルデータを前記記憶領域から読み出し、前記付属情報を用いて出力装置に応じた形式に変換する変換手段と
を含む、画像形成装置。
【請求項２】
前記描画情報は、計数される描画色数、半透明描画処理の有無、および演算により新たな色値を生じさせる論理演算処理の有無を示す情報を含み、前記判定手段は、前記単位領域について、前記半透明描画処理および前記演算により新たな色値を生じさせる論理演算処理が検出されておらず、前記描画色数が閾値未満である場合に、少なくとも１つの前記代替形式を選択する、請求項１に記載の画像形成装置。
【請求項３】
少なくとも１つの前記代替形式は、前記色識別値を表現するプレーンと、前記付属情報を表現するプレーンと、前記色定義データとを含む第１代替形式および、前記色識別値と付属情報とを統合して表現するプレーンと、前記色定義データとを含む第２代替形式を含む、請求項１または２に記載の画像形成装置。
【請求項４】
前記第１代替形式の各プレーンは、ピクセル当たり色識別値または付属情報の１バイトからなり、前記第２代替形式のプレーンは、ピクセル当たり１バイトの、前記色識別値と付属情報とを結合した値からなる、請求項３に記載の画像形成装置。
【請求項５】
前記プレーンそれぞれのピクセル当たりのバイト数は、当該画像形成装置が備える中央演算処理装置のビット幅のバイト数のいずれかの約数である、請求項１〜４のいずれか１項に記載の画像形成装置。
【請求項６】
前記付属情報を表現する少なくとも１つのプレーンは、前記付属情報として中間データに含まれる描画オブジェクトの属性値を表す属性プレーンと、前記付属情報としてピクセルの半透明値を表す透過プレーンとを含むか、または、前記付属情報として中間データに含まれる描画オブジェクトの属性値とピクセルの半透明値とを統合した属性・透過プレーンを含む、請求項１〜５のいずれか１項に記載の画像形成装置。
【請求項７】
前記色値を表現するプレーンは、フルカラーが指定された場合に、１ピクセル当たり４バイトの点順次形式とされ、グレースケールが指定された場合に、１ピクセル当たり１バイトの形式とされる、請求項１〜６のいずれか１項に記載の画像形成装置。
【請求項８】
前記単位領域は、ページから分割されたバンド領域である、請求項１〜７のいずれか１項に記載の画像形成装置。
【請求項９】
画像形成装置が実行する方法であって、
ページ記述言語で記述された印刷データを受け取るステップと、
前記印刷データから求められる、単位領域についての色定義データを用いた色表現の適用可能性を示す描画情報を記録するステップと、
直接指定の色値を表現するプレーンと、付属情報を表現する少なくとも１つのプレーンとを含む通常形式、および、色定義データ上の色識別値と付属情報とをピクセル毎に保持する少なくとも１つの代替形式を含む複数の形式の中から、前記描画情報に応じたフレーム形式を判定するステップと、
判定された前記フレーム形式で記憶領域を初期化するステップと、
前記印刷データの解析に対応して生成された中間データを読み出し、判定された前記フレーム形式で前記記憶領域に描画するステップと、
前記フレーム形式で描画されたピクセルデータを前記記憶領域から読み出し、前記付属情報を用いて出力装置に応じた形式に変換するステップと
を含む、画像形成方法。
【請求項１０】
前記記録するステップは、描画色を計数するサブステップと、半透明描画処理を検出するサブステップと、演算により新たな色値を生じさせる論理演算処理を検出するサブステップとを含み、
前記判定するステップは、前記単位領域について、前記半透明描画処理および前記演算により新たな色値を生じさせる論理演算処理が有るかを判定するサブステップと、前記描画色数と閾値とを比較するステップと、少なくとも１つの前記代替形式を選択するステップとを含む、請求項９に記載の画像形成方法。
【請求項１１】
少なくとも１つの前記代替形式は、前記色識別値を表現するプレーンと、前記付属情報を表現するプレーンと、前記色定義データとを含む第１代替形式、および、前記色識別値と付属情報とを統合して表現するプレーンと、前記色定義データとを含む第２代替形式を含む、請求項９または１０に記載の画像形成方法。
【請求項１２】
前記単位領域は、ページから分割されたバンド領域である、請求項９〜１１のいずれか１項に記載の画像形成方法。
【請求項１３】
請求項１〜８のいずれか１項に記載の各手段を画像形成装置に実現するための装置実行可能なプログラム。
【請求項１４】
請求項１３に記載の装置実行可能なプログラムを装置可読に格納する記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成処理に関し、より詳細には、ページ記述言語で記述された印刷データに従った描画処理を効率的に実行するための画像形成装置、画像形成方法、プログラムおよび記録媒体に関する。
【背景技術】
【０００２】
複合機やレーザプリンタなどの画像形成装置では、所定のページ記述言語（Page Description Language：ＰＤＬ）で記述された印刷データをホスト装置から受け取り、この印刷データを解析して、メモリ上のページ領域に描画オブジェクトを多値描画処理し、これにより印刷出力を行っている。このようなページ記述言語としては、ＰＤＦ（Portable Document Format）、ＰｏｓｔＳｃｒｉｐｔ、ＰＣＬ（Printer Control Language）、ＸＰＳ（eXtensible markup language Paper Specification）などを挙げることができ、画像形成装置は、これらの１つまたは複数のＰＤＬを解釈するパーサを搭載している。
【０００３】
また近年の画像形成装置は、Ｗｉｎｄｏｗｓ（登録商標）がサポートするラスタ操作（ＲＯＰ：Raster Operation）演算など、各種の画像の論理演算機能に対応している。さらに、上述した、Ｗｉｎｄｏｗｓ（登録商標）ｖｉｓｔａ（登録商標）でサポートされる上述したＸＰＳやＰＤＦでは、指定された透過割合で画像同士を重ね合わせる、いわゆる半透明描画機能が新たに追加されている。このようなＲＯＰ演算や半透明描画機能の実装により、高度な表現力が実現されている。
【０００４】
上記ＲＯＰ演算および半透明描画機能は、通常、ＲＧＢ色空間の２４ビット階調深度での処理を前提としている。そして、その後段では、カラーマッチング、ＢＧ／ＵＣＲ（Black Generation / Under Color Removal）処理、ハーフトーン処理が施され、プロッタ・エンジンに応じた少値階調深度のＣＭＹＫ（Ｃ：シアン、Ｍ：マゼンタ、Ｙ：イエロー、Ｋ：ブラック）色空間の画像データが生成される。これら後段の処理では、中間データの描画オブジェクト毎に処理する必要があるが、上記多値描画処理では、ピクセル毎のＲＧＢ２４ビット色値に加えて、対応する描画オブジェクトの属性値をピクセル毎に保存し、後段の処理で活用している。この属性値は、描画オブジェクトが文字、イメージまたはグラフィックスであるかなどを示す値を含む。例えば特開２００４−２４３５６９号公報（特許文献１）は、カラーピクセルであるかモノクロピクセルであるかの情報を含み、各ピクセルの属性の決定に用いる情報プレーンを開示している。
【０００５】
さらに、半透明描画処理の過程では、通常、重ね合わせるデータ（以下、ソースデータとも参照する。）の半透明値と、描画先（以下、ディスティネーションとも参照する。）の半透明値とを使用して描画処理を行う。このため、色値に加えて、ディスティネーションの半透明値をピクセル毎に保存している。なお、上記属性値および半透明値については、通常、それぞれピクセル当たり各１バイト程度の大きさのデータで表現される。したがって、ＲＧＢフルカラーで処理する場合、単位領域の画像データを保持する描画フレームには、１ピクセルあたり、ＲＧＢ３バイトと、ピクセルの属性および半透明値のそれぞれ１バイトとを加えて、合計５バイトのサイズが必要となる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、ピクセル形式の描画フレームには、色値に加え、描画オブジェクトの属性値、半透明値などの多くの情報が含まれる。また、描画フレームの形式は、メモリアクセス効率を高めるために、コンピュータのＣＰＵのビット幅に対応して、データ構造に工夫がなされることが考えられる。例えば、現在のコンピュータにおいて一般的な３２ビット（４バイト）のビット幅に対応して、上記５バイトのデータをまとめてひとつのプレーンに保存する形式を採用せずに、ピクセル当たり４バイトで色値を表現するカラープレーンと、ピクセル当たり２バイトで上記属性および半透明値を表現する属性・透過プレーンとからなるフレーム形式を採用することができる。この場合、ピクセル当たり１．５回の命令によりアクセスが可能となり、さらに、ＲＧＢおよびＣＭＹＫの両方の色空間に対応することが可能となる。しかしながら、この場合、合計６バイトのメモリ容量が必要となる。
【０００７】
このように、単位領域の描画処理に必要なメモリ量が増大する傾向があり、従来では、このメモリ量の増大に伴って、初期化などの際に大きな負荷が発生するという問題があった。例えば上記６バイトのフレーム形式では、１ページ分のメモリを初期化する際に、条件によっては２００ＭＢ程度の容量を必要とすることがあり、その容量分の書き込みが発生してしまう。これは、無視できない負荷となる。
【０００８】
本発明は、上記問題点に鑑みてなされたものであり、印刷データの特性に応じた描画フレーム形式を選択することにより、印刷データが要求する表現力を維持しつつ、可能な限り最小限のメモリ容量およびアクセス量で描画処理を実行可能とし、描画速度およびメモリ効率を両立することができる画像形成装置、画像形成方法、プログラムおよび記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明の画像形成装置では、ページ記述言語で記述された印刷データの解析の結果から、単位領域について、色定義データを用いた色表現の適用可能性を示す描画情報を記録しておく。ここで、描画情報は、色定義データを用いた色表現の適用による情報量削減の可能性を表すものとすることができ、例えば、印刷データの解析中に把握される。そして、本発明の画像形成装置では、描画のための単位領域の画像データを保持する描画フレームについて、予め複数の形式を用意しておく。この複数の形式は、直接指定の色値を表現するプレーンと、付属情報を表現する少なくとも１つのプレーンとを含む通常形式に加えて、色定義データ上の色識別値と付属情報とをピクセル毎に保持する少なくとも１つの代替形式を含む。
【００１０】
そして、判定されたフレーム形式で、メモリなどの記憶領域を初期化し、上記解析に対応して生成された中間データに従って記憶領域上に描画する。その後、判定されたフレーム形式により描画されたピクセルデータは、記憶領域から読み出され、上記付属情報を用いて出力装置に応じた形式に変換される。
【００１１】
上記構成によれば、上記通常形式および少なくとも１つの代替形式のうちから、印刷データの特性が現れている描画情報に応じて適切なものが判定され、その形式により初期化処理および描画処理を行うことができる。そして、上記代替形式は、色定義データ上の色識別値と付属情報とをピクセル毎に保持するものであり、色定義データを用いた色表現を採用しているため、色解像度を維持しつつもデータ量を大幅に削減できるものである。したがって、印刷データの単位領域における特性に応じて、適切なフレーム形式が適用され、描画に使用するメモリ容量を削減することが可能となり、ひいては、メモリアクセス量が削減され、描画速度が向上され、初期化時の処理時間も短縮され、描画速度およびメモリ効率を両立することが可能とされる。
【００１２】
また本発明の画像形成装置では、上記描画情報は、計数される描画色数、半透明描画処理の有無、および演算により新たな色値を生じさせる論理演算処理の有無を示す情報を含むことができる。上記演算により新たな色値を生じさせる論理演算処理は、上書処理を除く画像論理演算処理を含むことができる。そして、判定の際に、単位領域について、上記半透明描画処理および上記演算により新たな色値を生じさせる論理演算処理が検出されておらず、描画色数が所定の閾値未満である場合に、上記通常形式ではなく、いずれかの上記代替形式を選択することができる。
【００１３】
上記構成によれば、印刷データの解析により把握される情報から、上記色定義データを用いた色表現が適用可能であると判定することができる。上記半透明描画処理および上記演算により新たな色値を生じさせる論理演算処理が検出されていない場合には、計数された描画色数が、その単位領域内で使用される色数に一致するものと考えられる。したがって、上記半透明描画処理および上記演算により新たな色値を生じさせる論理演算処理が検出されず、描画色数が所定の閾値未満である場合に、上記色定義データを用いた色表現が適用可能であると判定することができる。
【００１４】
さらに本発明では、上記少なくとも１つの代替形式は、色識別値を表現するプレーンと、付属情報を表現するプレーンと、色定義データとを含む第１代替形式を含むことができる。さらに、上記少なくとも１つの代替形式は、色識別値と付属情報とを統合して表現するプレーンと、色定義データとを含む第２代替形式を含むことができる。
【００１５】
また本発明では、上記第１代替形式の各プレーンは、ピクセル当たり色識別値または付属情報の１バイトから構成することができる。さらに、上記第２代替形式のプレーンは、ピクセル当たり１バイトの、色識別値と付属情報とを結合した値から構成することができる。
【００１６】
また本発明では、プレーンそれぞれのピクセル当たりのバイト数は、当該画像形成装置が備える中央演算処理装置のビット幅のバイト数のいずれかの約数とすることができる。メモリアクセスは、中央演算処理装置のビット幅の単位で行われるため、この構成によれば、処理を複雑化させることなく、効率的にメモリ上の色値、属性値、半透明値などの値を読み出すことが可能となる。例えば、ビット幅が３２ビット（８バイト）の場合、ピクセル当たり４バイトで色値を表現するカラープレーンと、ピクセル当たり２バイトで上記属性および半透明値を表現する属性・透過プレーンとからなるフレーム形式を採用すると、ピクセル当たり１．５回の命令によりアクセスが可能となる。
【００１７】
本発明では、上記付属情報を表現する少なくとも１つのプレーンは、付属情報として中間データに含まれる描画オブジェクトの属性値を表す属性プレーンと、付属情報としてピクセルの半透明値を表す透過プレーンとを含むことができる。あるいは、上記付属情報を表現する少なくとも１つのプレーンは、付属情報として中間データに含まれる描画オブジェクトの属性値とピクセルの半透明値とを統合した属性・透過プレーンを含むことができる。
【００１８】
本発明では、さらに、色値を表現するプレーンは、フルカラーが指定された場合に、１ピクセル当たり４バイトの点順次形式とし、グレースケールが指定された場合に、１ピクセル当たり１バイトの形式とすることができる。上記付属情報は、中間データに含まれる描画オブジェクトの属性値、および、半透明描画処理で用いられる描画先の半透明値を含むことができる。また上記単位領域は、ページ領域とすることができる。あるいは、上記単位領域は、ページから分割されたバンド領域とすることができる。
【００１９】
例えば、大部分がテキストのみからなる文書の一部にグラフ等の色を多数含む領域がある場合など、単一ページ中で位置によって描画特性が相違することが一般的に多い。上記構成によれば、バンド毎に上記描画フレームの形式を切り替えることが可能となり、さらに効率的にメモリ容量およびメモリアクセス量を削減することが可能となる。
【００２０】
さらに、本発明によれば、上記画像形成装置が実行する画像形成方法が提供される。本発明の画像形成方法では、ページ記述言語で記述された印刷データを受け取り、この印刷データの解析の結果から、単位領域について、色定義データを用いた色表現の適用可能性を示す描画情報を記録する。上記通常形式および上記少なくとも１つの代替形式を含む複数の形式の中から、上記描画情報に応じたフレーム形式を判定し、そのフレーム形式で記憶領域を初期化し、解析に対応して生成された中間データに従って描画する。続いて、このフレーム形式で描画されたピクセルデータが読み出され、付属情報を用いて出力装置に応じた形式に変換される。
【００２１】
さらに本発明によれば、上記画像形成装置を実現するための装置実行可能なプログラムが提供される。さらにまた本発明によれば、上記装置実行可能なプログラムを装置可読に格納する記録媒体が提供される。
【図面の簡単な説明】
【００２２】
【図１】レーザプリンタのハードウェア構成の実施形態を示す図。
【図２】本実施形態のレーザプリンタのモジュール構成を示す機能ブロック図。
【図３】本実施形態のレーザプリンタにおける、ＰＤＬ部の詳細なモジュール構成を示す機能ブロック図。
【図４】（Ａ）印刷データのデータ構造および（Ｂ）印刷データからコールされる関数インタフェースのシーケンスを例示する図。
【図５】（Ａ）メモリ上に保存される中間データ形式の描画データおよび（Ｂ）識別値−描画コマンド対応表のデータ構造を示す図。
【図６】描画フレーム形式で用いられるプレーンのデータ構造を示す図。
【図７】本実施形態のレーザプリンタのコントローラ部において実行される描画処理のフローチャート。
【図８】本実施形態のフレーム形式判定部が実行するフレーム形式判定処理のフローチャート。
【図９】（Ａ）バンド領域および（Ｂ）バンド領域毎の描画情報のデータ構造を示す図。
【発明を実施するための形態】
【００２３】
以下、本発明の実施形態を説明するが、本発明の実施形態は、以下の実施形態に限定されるものではない。なお本実施形態では、画像形成装置の一例として、カラー印刷機能を有するレーザプリンタ１０を用いて説明する。
【００２４】
図１は、レーザプリンタ１０のハードウェア構成の実施形態を示す図である。図に示すレーザプリンタ１０は、プリント・コントローラ（以下、単にコントローラと参照する。）１２と、転写紙に画像形成出力するプリンタ・エンジン２８と、ユーザからの入力操作を待ち受ける操作パネル３０とを含む。
【００２５】
コントローラ１２は、中央演算処理装置（Central Processing Unit；ＣＰＵ）１４と、コントローラを動作させるための制御プログラムを格納するＲＯＭ（Read Only Memory）１６と、制御プログラムの実行空間および描画領域を提供するＲＡＭ（Random Access Memory）１８と、システムの各種設定を格納するＮＶ−ＲＡＭ（Non Volatile RAM）２０と、プリンタエンジン２８との間のインタフェースであるエンジン・インタフェース（Ｉ／Ｆ）２４とを含んで構成される。上記ＣＰＵ１４のビット幅は、特に限定されるものではないが、３２ビットまたは６４ビットとされている。
【００２６】
さらに、コントローラ１２は、ホストとなるパーソナル・コンピュータ（以下、ホストＰＣとして参照する。）４０にネットワークを介して接続させるネットワーク・インタフェース（Ｉ／Ｆ）２２と、操作パネル３０との間のインタフェースであるパネル・インタフェース（Ｉ／Ｆ）２６とを含んで構成される。コントローラ１２上のこれらの要素は、内部バスを介して接続されている。
【００２７】
コントローラ１２は、ホストＰＣ４０から受信したＰＤＬ（ページ記述言語）などの印刷データに従って、描画処理や変換処理等の画像処理を行い、プリンタ・エンジン２８に対して画像出力させる。上記ＲＡＭ１８は、ホストＰＣ４０からの印刷データ、該印刷データから生成される中間データ形式の描画データ、ラスタ形式のピクセルデータ、その後段処理で生成される各種画像データを記憶する。
【００２８】
レーザプリンタ１０は、ＲＯＭ１６やＮＶ−ＲＡＭ２０などの記憶装置に格納されたプログラム（図示せず）および設定情報（図示せず）を読出し、ＣＰＵ１４の作業メモリ領域を提供するＲＡＭ１８のメモリ領域に展開し、またＲＡＭ１８を画像形成処理の作業領域として利用することによって、後述する各機能手段および各処理を実現する。
【００２９】
図２は、本実施形態のレーザプリンタ１０のモジュール構成を示す機能ブロック図である。ホストＰＣ４０は、アプリケーションからのドキュメント・データを、所定のプリンタ・ドライバを使用して、複数の描画コマンドからなる印刷データに変換して、レーザプリンタ１０に送信し、印刷出力を指令する。上記描画コマンドは、文字、イメージ、グラフィックの描画コマンドを含むことができる。また上記印刷データは、ＸＰＳ（XML Paper Specification）、ＰＤＦ（Portable Document Format）、ＰｏｓｔＳｃｒｉｐｔ（登録商標）、ＰＣＬ（登録商標）、ＬＩＰＳ（登録商標）、ＲＰＤＬ（登録商標）など、種々のページ記述言語で記述されたデータとすることができ、特に限定されるものではない。本実施形態のレーザプリンタ１０では、ＸＰＳやＰＤＦなど半透明描画処理を含むＰＤＬデータなどに好適に適用することができる。
【００３０】
コントローラ部１００は、コントローラ１２を制御するプリンタ制御システム部１０４を含む。また、コントローラ部１００内のモジュール構成としては、プリンタ制御システム部１０４の制御下で、ホストＰＣ４０とデータ交換を実行するネットワークＩ／Ｆ部１０２と、操作パネル３０を制御するパネルＩ／Ｆ部１０６と、プリンタ・エンジン２８に対し印刷指示などを行うエンジンＩ／Ｆ部１０８と、受信した印刷データを解析処理して、印刷出力用の画像データを生成するＰＤＬ部１１０とを含む。
【００３１】
さらに本実施形態のレーザプリンタ１０のコントローラ部１００は、フレーム形式判定部１１２をさらに含む。フレーム形式判定部１１２は、上記ＰＤＬ部１１０と連携して動作し、ＰＤＬ部１１０が描画するピクセルデータを格納するためのフレームメモリ領域のデータ形式を、印刷データの特性に応じて判定し、設定する。ここで、印刷データの特性とは、詳細については後述するが、所定の単位領域内における描画色の数や、所定の論理演算や半透明描画処理などの特定処理の有無などが含まれる。なお、本実施形態の説明では、レーザプリンタ１０が１ページ分のピクセルデータを格納するに充分な容量のフレームメモリが確保されており、所定の単位領域は、ページ単位であるものとする。
【００３２】
図３は、本実施形態のレーザプリンタにおけるＰＤＬ部の詳細なモジュール構成を示す機能ブロック図である。ＰＤＬ部１１０は、プリンタ制御システム部１０４を介して受取った印刷データを構文解析するＰＤＬパーサ部１２０と、ＰＤＬパーサ部１２０の解析結果をもとに描画処理し、印刷出力用の画像データへ変換する描画コア部１３０とを含む。ＰＤＬパーサ部１２０は、上述したような複数種類のＰＤＬに対応する構文解析エンジンを備えることで、複数種類のＰＤＬで記述された印刷データを処理可能に構成されている。
【００３３】
描画コア部１３０は、より詳細には、描画Ｉ／Ｆ部１３２と、フレームメモリ初期化部１３４と、中間データ保存部１３６と、多値描画部１３８とを含む。描画Ｉ／Ｆ部１３２は、ＰＤＬパーサ部１２０から、文字、イメージ、グラフィックスおよび描画設定情報を受け取るためのインタフェースである。描画Ｉ／Ｆ部１３２は、文字、イメージ、グラフィックスなどの描画オブジェクトや、色、ブラシ、半透明指定、線形状などを設定する種々の関数インタフェースを備え、複数種類のＰＤＬを処理可能に構成されている。
【００３４】
ＰＤＬパーサ部１２０は、印刷データ中の描画コマンドに応答して、描画Ｉ／Ｆ部１３２の対応する関数インタフェースをコールする。このＰＤＬパーサ部１２０は、言語毎の構文の相違にかかわらず、共通の描画Ｉ／Ｆ部１３２をコールすることで、言語の相違を吸収し、印刷データ中の描画コマンドに応じた描画処理が可能とされている。また、ＰＤＬパーサ部１２０は、本実施形態の記録手段を構成する。ＰＤＬパーサ部１２０は、ＰＤＬで記述された印刷データの解析の結果から、各ページについて、描画色、所定の論理演算の有無、半透明描画処理の有無などを把握し、メモリ上などの記憶領域に描画情報１５０を記録する。この描画情報１５０は、詳細は後述するが、描画フレーム形式の判定処理の際に、１ページに描画される色値が充分に少ない場合にＲＧＢ色空間等で直接指定の色値を用いた形式に比べ負荷を低減できるインデックスカラーを用いた形式の適用可能性を示す情報である。
【００３５】
ここで、図４を参照して、印刷データのデータ構造を例示して、本実施形態の描画処理について説明する。図４（Ａ）は、ＰｏｓｔＳｃｒｉｐｔ形式の印刷データのデータ構造を一例として示す。図４（Ａ）に示す印刷データは、一連の描画コマンドを含んでおり、これらは、ＲＧＢ色空間の色値（Ｒ，Ｇ，Ｂ）＝（０．５，０．０，０．０）で、ページの左下を原点として、左下座標（１００，１００）および右上座標（２００，２００）を指定して短形を描画する命令を含む。これらの命令に対応して、描画Ｉ／Ｆ部１３２では、色を設定する関数インタフェースがコールされ、その後、矩形領域を設定するための座標を設定する関数インタフェースと塗りつぶし指定する関数インタフェースとがコールされて、一連の描画コマンドに従って矩形の描画が行われる。また、図４（Ａ）に示す印刷データに含まれる一連の描画コマンドから、１ページに含まれる描画色が計数され、また特定の画像論理演算処理（より具体的には、ＲＯＰ演算処理をいう。）や半透明描画処理が検出される。
【００３６】
図４（Ｂ）は、コールされる関数インタフェースのシーケンスを例示する。図４（Ｂ）に示す関数シーケンスにおいて、ｓｅｔｃｏｌｏｒ関数は、第１引数でＲＧＢ色空間を指定し、第２から第４引数でＲＧＢ各色の色値を０．０から１．０の範囲で指定するものである。図４（Ｂ）の例では、図４（Ａ）の描画コマンドに対応する（Ｒ，Ｇ，Ｂ）＝（０．５，０．０，０．０）が指定されている。また、図４（Ｂ）に示す関数シーケンスにおいて、ｒｅｃｔａｎｇｌｅ関数は、矩形描画関数であって、左上座標と右下座標とを指定して、矩形を描画するものである。図４（Ｂ）の例では、図４（Ａ）の描画コマンドに対応する左上座標および右下座標が指定されている。なお、図示の例では、ＰｏｓｔＳｃｒｉｐｔでは論理座標の原点が右下であるが、描画コア部１３０では左上、右下座標という記述になることに対応している。
【００３７】
再び図３を参照すると、描画Ｉ／Ｆ部１３２の関数インタフェースがコールされると、中間データ形式で描画データが生成され、中間データ保存部１３６に保存される。中間データ保存部１３６は、メモリや他の補助記憶装置の記憶領域により提供され、本実施形態の保存手段を構成する。そして、中間データ形式の描画データは、メモリ上またはファイル上に保存されることになる。中間データ形式の描画データは、描画データを修飾するためのグラフィックス状態データと、テキスト、イメージ、グラフィックスなどの描画オブジェクトを表すデータとを含む。グラフィックス状態データは、描画に用いる設定情報であり、色空間、色値、ブラシ、線形状、ＲＯＰ演算のＲＯＰ値、半透明描画処理の半透明値の他、各種設定値を含むことができる。中間データにおけるグラフィックス状態データは、テキスト、イメージおよびグラフィックスについて、共通なデータ構造とされている。
【００３８】
ここで、図５を参照して、中間データ形式の描画データのデータ構造を例示しながら、本実施形態の描画処理についてさらに説明する。図５（Ａ）は、メモリ上に保存される中間データ形式の描画データのデータ構造を一例として示す。描画データ２００ａ，２００ｂ，２００ｃは、それぞれ、短形のグラフィックス、イメージ、テキストのものに対応する。図５（Ａ）に示す描画データ２００ａは、固定長サイズのＧｓｔａｔｕｓレコードから始まり、次に描画コマンドの識別値が配置される。描画コマンドの識別値の次のバイトは、パディング・バイトであり、ゼロで埋められる。次に配置されるｆｌａｇは、描画コマンドの属性として使われる。属性の例としては、ＲｅｃｔａｎｇｌｅコマンドをＣｌｉｐ（描画領域を限定するコマンド）する場合は、Ｃｌｉｐであることを示すビットがＯＮにされる。
【００３９】
識別値と描画コマンド（描画オブジェクト）との対応表を図５（Ｂ）に示す。図５（Ｂ）の例示では、「０ｘ００」、「０ｘ０１」、「０ｘ０２」、「０ｘ０３」および「０ｘ０４」の値が、それぞれ、短形（Ｒｅｃｔａｎｇｌｅ）、直線（ＬｉｎｅＤｒａｗ）、直線で囲まれた領域の塗りつぶし（ＬｉｎｅＦｉｌｌ）、イメージ（Ｉｍａｇｅ）および文字（Ｔｅｘｔ）の描画に対応付けられている。
【００４０】
描画データ２００ａでは、続いて、短形の座標データ（ｌｅｆｔ，ｔｏｐ，ｒｉｇｈｔ，ｂｏｔｔｏｍ）が配置される。図４（Ｂ）に示すシーケンスの場合では、Ｇｓｔａｔｕｓに（Ｒ，Ｇ，Ｂ）＝（０．５，０．０，０．０）の色値がＧｓｔａｔｕｓに保存され、ｌｅｆｔ＝１００，ｔｏｐ＝１００，ｒｉｇｈｔ＝２００，ｂｏｔｔｏｍ＝２００の座標データが保存される。
【００４１】
一方、描画データ２００ｂは、描画オブジェクトがイメージの場合のものであり、描画コマンドの識別値が異なる以外はｆｌａｇまでデータ構造が描画データ２００ａと同様であり、Ｆｌａｇ後にイメージ・データが配置されている。また、描画データ２００ｃは、文字の場合のものであり、Ｆｌａｇの後に、テキストの座標データ（ｌｅｆｔ，ｔｏｐ，ｒｉｇｈｔ，ｂｏｔｔｏｍ）が配置され、続いて文字コードおよび文字サイズが配置されている。
【００４２】
ここで、再び図３を参照して説明する。ＰＤＬパーサ部１２０は、受取った印刷データを解析し、描画コア部１３０の描画Ｉ／Ｆ部１３２をコールする。これにより、中間データ形式の描画データが生成され、中間データ保存部１３６に保存される。ＰＤＬパーサ部１２０は、解析中、各ページ中に含まれる描画色数を計数し、また特定のＲＯＰ演算処理や半透明描画処理を検出し、描画情報１５０として記録する。
【００４３】
フレーム形式判定部１１２は、１つのページについて充分な解析処理が完了すると、その描画情報１５０を用いて、複数の形式の中からそのページの描画処理に適した描画フレームの形式を判定する。ここで、描画フレームとは、中間データ形式の描画データから描画処理により変換されるピクセルデータ１ページ分を保存する記憶領域をいう。この描画フレームには、そのデータ構造に応じて複数の形式を定義付けることができる。フレーム形式判定部１１２が判定した描画フレーム形式は、ＰＤＬ部１１０に通知される。なお、フレーム形式判定部１１２は、本実施形態の判定手段を構成する。
【００４４】
以下、図６を参照して、本実施形態の描画処理で用いられる描画フレーム形式について説明する。図６は、描画フレーム形式で用いられる種々のプレーンのデータ構造を示す。プレーンとは、ページ領域内の各ピクセルについて色値などの所定の値を保持するメモリ領域をいう。図６（Ａ）は、ＲＧＢ色空間各色８ビットの点順次方式で保存されるカラープレーンのデータ構造を示す。図６（Ａ）に示すカラープレーンは、ページ領域を描画するピクセルについて、点順示方式で直接指定の色値を保存している。このカラープレーンは、パディング・バイト（Ｐ）、レッド値（Ｒ）、グリーン値（Ｇ）およびブルー値（Ｂ）が順にピクセル毎に配置されたデータ配列として構成される。パディング・バイト（Ｐ）は、ＲＧＢ色空間では、０で埋められ、カラープレーンは、１ピクセル当たり、各成分１バイトとして、合計４バイトで表現される。なお、ＣＭＹＫ色空間の場合には、カラープレーンは、シアン値（Ｃ）、マゼンダ値（Ｍ）、イエロー値（Ｙ）、ブラック値（Ｋ）について各１バイト、合計４バイトで表現される。また、グレースケールの場合は、１ピクセル当たり１バイトで表現されることになる。
【００４５】
図６（Ｂ）は、属性プレーンのデータ構造を示す。図６（Ｂ）に示す属性プレーンは、描画処理の後段処理で活用するために、上述した中間データの描画オブジェクトの種別を表す属性値（Ａ）を各ピクセル毎に保持し、ピクセルの属性として描画オブジェクトに関連付けている。属性プレーンは、１ピクセル当たり、８ビット確保される。８ビットであれば各ビットで８種類の属性値を表現することができる。属性値は、上述したように、描画されたピクセルが文字、イメージまたはグラフィックスの描画オブジェクトのどれに対応するかを区別するために使用される。
【００４６】
図６（Ｃ）は、描画先透過プレーンのデータ構造を示す。図６（Ｃ）に示す描画先透過プレーンは、描画先（ディスティネーション）の半透明描画処理に用いる半透明値（Ｔ）を保持し、半透明描画処理を実施するために用いられる。透過プレーンも、１ピクセル当たり１バイト確保される。
【００４７】
種々の論理演算および半透明描画機能を用いて高い表現力を実現するために、通常、図６（Ａ）〜（Ｃ）で示す、カラープレーンと、属性プレーンと、描画先透過プレーンとを用いる描画フレーム形式（以下、ＰＲＧＢ＋Ａ＋Ｔ形式ということがある。）が採用される。あるいは、カラープレーンと、属性プレーンおよび描画先透過プレーンを統合した属性透過統合プレーンとを用いる描画フレーム形式（以下、ＰＲＧＢ＋ＡＴ形式ということがある。）が採用される。また、モノクロが指定される場合、１バイトのカラープレーンと、属性プレーンと、描画先透過プレーンとを用いる描画フレーム形式（以下、Ｇ＋Ａ＋Ｔ形式ということがある。）や、１バイトのカラープレーンと、属性透過プレーンとを用いる描画フレーム形式（以下、Ｇ＋ＡＴ形式ということがある。）や、１バイトのパディング・バイト、１バイトの色値、属性値および半透明値を統合したプレーンを用いる描画フレーム形式（以下、ＰＧＡＴ形式ということがある。）を採用することができる。なお、これら直接指定の色値を用いる描画フレーム形式を通常形式と呼ぶ。
【００４８】
しかしながら、上述した描画フレームの形式では、カラープレーンを直接指定の色値を用いて表現する場合、フルカラーでは、ピクセル当たり４バイトの容量が必要となり、これは無視できない負荷となる。そこで、本実施形態では、描画色が充分に少ないページについては、色番号と直接指定の色値とをマップする色定義データを用いて、色番号で色を表現することで、高い色解像度を維持しつつ、データ量を大幅に削減する。以下、このような、色番号で色を表現するインデックスカラーを用いる代替となるプレーンについて説明する。
【００４９】
図６（Ｄ）は、インデックスカラー・プレーンのデータ構造を示す。このインデックスカラー・プレーンは、１ページ中の描画色が充分に少ない場合に、図６（Ａ）に示した直接指定のカラープレーンを代替して用いることができる。図６（Ｄ）に示すインデックスカラー・プレーンは、色番号（ＩＤ）を各ピクセル毎に保持する。この色番号は、色定義データ（ＩＮＤＥＸテーブル）において、１ページ中で使用された描画色の直接指定の色値に対応付けられる。インデックスカラー・プレーンは、１ピクセル当たり、１バイトで構成することができ、１バイトであれば２５６色を表現することができる。あるいは、インデックスカラー・プレーンは、１ピクセル当たり、２バイトで構成することもできる。インデックスカラー・プレーンを採用する場合には、各ピクセル毎の色番号からなるピクセルデータに加えて、ＩＮＤＥＸテーブルが付属される。
【００５０】
図６（Ｅ）は、属性カラー連結プレーンのデータ構造を示す。この属性カラー連結プレーンは、必要な属性値が少数でかつ描画色がさらに少数である場合に、図６（Ａ）に示した直接指定のカラープレーンおよび図６（Ｂ）に示した属性プレーンを代替して用いることができる。
【００５１】
図６（Ｂ）に示す属性カラー連結プレーンは、属性値と色番号とを連結した値を各ピクセル毎に保持する。例えば、描画オブジェクトの属性が文字、イメージ、グラフィックスの３種類のみの場合、最小２ビットで属性を表現することができる。属性値が２ビットで充分である場合には、残り６ビット余ることになるため、使用されている色数が６３色以下である場合に、残り６ビット部分としてその色番号を連結して連結値を得ることができる。これによって、属性値と色番号とが１バイトの連結値で表現されることになる。属性カラー連結プレーンを採用する場合には、各ピクセル毎の連結値からなるピクセルデータに加えて、ＩＮＤＥＸテーブルが付属する。また、属性値が１ビットで充分である場合には、残り７ビット余ることになるため、使用されている色数が１２７色以下である場合に、この７ビット部分としてその色番号を連結して連結値を得ることができる。なお、いずれの配分とするかは、所望の性能に応じて変更すればよい。
【００５２】
本実施形態の描画処理では、１ページ中で使用される描画色が充分に少ないと見積もられる場合に、図６（Ｄ）および（Ｅ）に示したプレーンを用いる描画フレーム形式を採用する。これにより、カラープレーンを直接指定の色値を用いて表現する場合に比べて、メモリ効率を向上させることができる。より具体的には、インデックスカラー・プレーンと、属性プレーンと、描画先透過プレーンとを用いる描画フレーム形式（以下、ＩＤ＋Ａ＋Ｔ形式ということがある。）あるいは、インデックスカラー・プレーンと、属性透過プレーンとを用いる描画フレーム形式（以下、ＩＤ＋ＡＴ形式ということがある。）を採用することができる。また、半透明描画処理が含まれない場合には、半透明値（Ｔ）が不要であるため、インデックスカラー・プレーンと、属性プレーンとを用いる描画フレーム形式（以下、ＩＤ＋Ａ形式ということがある。）を採用してもよい。この場合は、描画フレームは、ピクセル毎に２バイトのピクセルデータ、およびＩＮＤＥＸテーブルのみで充分となり、上記「ＰＲＧＢ＋ＡＴ」形式などと比較して、使用するメモリ容量が好適に削減されている。
【００５３】
さらに、色数が６３色以下であり、半透明描画処理も、所定のＲＯＰ演算も使用されない場合には、上記図６（Ｅ）に示したプレーンからなる描画フレーム形式（以下、ＩＤ・Ａ形式ということがある。）を採用することができる。この場合、ピクセル毎に１バイトのピクセルデータ、およびＩＮＤＥＸテーブルのみで充分となり、さらにメモリ容量が好適に削減される。なお、これら色定義データを用いる描画フレーム形式を代替形式と呼ぶ。
【００５４】
上述したように、各プレーンのピクセル当たりのバイト数を、ＣＰＵのビット幅（例えば４バイト）のバイト数の約数（４バイト、２バイト、１バイト）のうちのいずれかの約数に一致するように調整された描画フレームの形式を採用することで、処理を複雑化させることなく少数の命令で１ピクセル分の読み出しが可能とされ、メモリアクセスを効率化することが可能となる。
【００５５】
ここで、再び図３を参照する。ＰＤＬ部１１０のフレームメモリ初期化部１３４は、本実施形態の初期化手段を構成し、描画処理に先立って、判定された描画フレーム形式でフレームメモリ領域を初期化する。初期化処理では、描画フレームの容量に応じた書き込みを発生させる。多値描画部１３８は、中間データ保存部１３６から中間データ形式の描画データを順番に取り出して、描画結果として、判定された描画フレーム形式で指定された色空間での色値、色番号または連結値を、指定されたアドレスに書き込む。多値描画部１３８での色空間は、ページの始めに色空間として指定されたものに従う。例えばＲＧＢ色空間が指定された場合は、ＲＧＢ各色８ビットで描画される。なお、多値描画部１３８は、本実施形態の描画手段を構成する。
【００５６】
図５（Ａ）に示したデータ構造では、描画コマンド（識別値）を識別することで、ピクセルの属性としての描画オブジェクトとピクセルのアドレスとが得られ、多値描画部１３８は、これらのデータに従って、属性プレーンにデータを書き込む。同時に、当該描画コマンドのＧｓｔａｔｕｓ（グラフィックス状態）から色空間と色値、半透明描画処理の半透明値、ＲＯＰ値などが得られ、多値描画部１３８は、これらのデータに従って、カラープレーン、描画先透過プレーンそれぞれにデータを書き込む。このとき、色値を色番号値で表す描画フレーム形式が採用されている場合には、多値描画部１３８は、色定義データを定義し、書き込む前にその中で定義される色番号に色値を変換し、定義した色定義データを付属させる。また、書き込む際に、以下に示すＲＯＰ演算または半透明描画処理を適宜行うことができる。
【００５７】
上記ＲＯＰ演算とは、２以上の描画オブジェクトを重ね合わせる際に実行される画像間の論理演算処理である。ＲＯＰ演算を行なうことによって、単に上下関係をつけて上書きするだけでなく、「透過」や「反転」などの効果を与えるものがある。Ｗｉｎｄｏｗｓ（登録商標）のＧＤＩ（Graphic Device Interface）では、ＲＯＰ２、ＲＯＰ３などのＲＯＰ命令がサポートされている。ＲＯＰ２では、ソース画像とデスティネーション画像との２つのラスタ画像の描画オブジェクトの論理演算を行なうものであり、描画オブジェクトの状態および出力結果の組み合わせから１６種類存在する。ＲＯＰ３は、ソース画像およびデスティネーション画像の他に、パターン画像を加えた３つの描画オブジェクトの論理演算を行なうものであり、描画オブジェクトの状態および出力結果から２５６種類存在する。このＲＯＰ演算による描画結果は、デスティネーション画像が記憶されるメモリ領域に上書きされることとなる。
【００５８】
ＲＯＰ演算が行われる場合は、図６（Ｃ）に示す描画先透過プレーンには書き込みは行われない。また、Ｇｓｔａｔｕｓから得られるＲＯＰ値によって、重なる画像の色値同士でＯＲ，ＸＯＲ，ＡＮＤの論理演算を実施し、演算結果をカラープレーンの当該ピクセルのＲＧＢ色値として書き込む。また、ビット演算を実施した後に、属性プレーンに描画したピクセルの描画オブジェクトの属性値を点順次に書き込む。
【００５９】
一方、上記半透明描画処理とは、Ｗｉｎｄｏｗｓ（登録商標）ｖｉｓｔａ（登録商標）でサポートされているＸＰＳやＰＤＦで使用される画像処理であり、同一領域内に重なる色値の透過割合を０〜１００％（０〜１）の範囲で指定することにより、半透明に描画する処理である。ＲＯＰ演算および半透明描画処理は、通常、同時に使用されるものではないが、本実施形態では、ＲＯＰ演算および半透明描画処理が同時に使用されることを妨げない。この半透明描画処理による描画結果は、デスティネーション画像が記憶されるメモリ領域に上書きされることとなる。
【００６０】
以下、半透明描画処理について、より詳細に説明する。本実施形態の半透明描画処理は、大別すると、ソースデータに対してのみ半透明値を設定する場合と、ソースデータとディスティネーションデータ(描画先のデータ)の両方に半透明値を設定する場合がある。前者の場合、半透明描画処理後の色値ＮｅｗＤは、下記式（１）に基づいて算出することができる。下記式（１）中、Ｓがソースの色値を、Ｄがディスティネーションの色値を、αがソースの半透明値（０から１の間の値をとる。）を表す。
【００６１】
【数１】
2010274435.tif 000003
【００６２】
この半透明描画後の色値を算出する処理は、ＲＧＢの各色毎に行われる。また、上記のようにソースデータに対してのみ半透明値αを設定する場合、図６（Ｃ）に示した描画先透過プレーンは、使用されない。
【００６３】
一方、ソースデータと描画後のディスティネーションデータとの両方に半透明値を設定して半透明描画処理を行う場合、描画後のディスティネーション半透明値Ａｄ’およびディスティネーション色値Ｃｄ’は、それぞれ、例えば下記式（２）および式（３）に基づいて算出することができる。下記式（２）および式（３）中、Ａｓがソースの半透明値を、Ａｄがディスティネーション半透明値を、Ｃｓがソース色値を、Ｃｄがディスティネーション色値を表す。
【００６４】
【数２】
2010274435.tif 000004
【００６５】
上記式（２）に従って算出される描画後のディスティネーション半透明値Ａｄ’は、図６（Ｃ）に示した描画先透過プレーンの該当ピクセルに描画されることになる。なお、ソースの半透明値Ａｓは、Ｇｓｔａｔｕｓに設定されており、多値描画部１３８が中間データの描画オブジェクトをページメモリに描画する場合、Ｇｓｔａｔｕｓに設定されている描画対象オブジェクトの半透明描画処理に用いる半透明値、色値を取り出して、またカラープレーンに設定されている色値、同じく描画先透過プレーンに設定されているディスティネーション半透明値を使用して、新たなディスティネーション色値とディスティネーション半透明値を計算して、算出値によりそれぞれの値を更新する。なお、半透明描画処理の処理方法は、同一ページを処理する場合１つの方法に定められているので、通常、複数の処理方法が混在することはない。
【００６６】
再び図３を参照すると、描画コア部１３０は、さらに、カラー変換部１４２と、ＣＭＹＫ２値変換部１４４とを含む。カラー変換部１４２は、多値描画部１３８によって印刷データに指定された色空間で判定の形式の描画フレーム上に多値描画されたピクセルデータから、デバイスカラー（出力デバイスに依存する色空間）へ色変換処理を行う。色変換処理では、例えば、カラーマッチング処理、ＢＧ／ＵＣＲ（Black Generation / Under Color Removal）処理、γ変換処理が施される。カラーマッチングでは、出力データは、通常、同じメモリアドレスに上書きされることになる。なお、カラーマッチング処理の際にも、属性プレーンの属性値を参照して、文字、イメージ、グラフィックスの種類毎に色を適合させることができる。ＢＧ／ＵＣＲ処理では、ピクセルデータは、ＣＭＹＫ色空間のデータに変換される。この出力データも、通常、同じメモリアドレスに上書きされることになり、データ変換のための余分なメモリ取得が回避される。これは、ＰＲＧＢデータとＣＭＹＫデータとが４バイトで同一であるためである。
【００６７】
ＣＭＹＫ２値変換部１４４は、カラー変換部１４２で処理されたデバイスカラーをＣＭＹＫ２値でハーフトーン処理を行う。ハーフトーン処理では、ピクセル毎に保持される属性値を参照して、属性値に応じたハーフトーン・パターンが用いられる。短形１４０で囲まれるカラー変換部１４２およびＣＭＹＫ２値変換部１４４は、本実施形態の変換手段を構成する。変換処理等が施された画像データは、プリンタ・エンジン２８へ送出され、プリンタ・エンジン２８は、画像データに従って原稿上に印刷出力することになる。
【００６８】
上述した種々の論理演算および半透明描画機能は、必ずしも印刷データ中で用いられているわけではなく、また、１ページ中に使用されている描画色の数も限られている場合が多い。また、上書き以外の論理演算および半透明描画機能が使用されない場合には、１ページ中の描画色数は、描画オブジェクトで使用されている描画色の合計に一致するといえる。そこで、本実施形態では、上記描画情報１５０を用いて、印刷データに要求される表現力を維持したまま、可能な限りサイズの小さなフレーム形式を選択する制御を行う。
【００６９】
以下、本実施形態の描画処理について、フローチャートを参照しながら説明する。図７は、本実施形態のレーザプリンタ１０のコントローラ部１００において実行される描画処理のフローチャートを示す。図７に示す処理は、ＰＤＬパーサ部１２０に印刷データが渡されて、ステップＳ１００から開始される。
【００７０】
ＰＤＬパーサ部１２０は、ステップＳ１０１で、印刷データ１ページ分を取得し、ステップＳ１０２で、描画情報１５０を初期化する。例えば、描画色数を０とし、各種フラグの値をｆａｌｓｅに設定する。ステップＳ１０３〜ステップＳ１１０では、印刷データの解析処理が行われ、その解析処理中に、関数インタフェースのコールに加えて、１ページ中で使用される描画色の計数、上書き以外のＲＯＰ演算および半透明描画処理などの特定処理の検出が行われる。
【００７１】
ステップＳ１０４では、ＰＤＬパーサ部１２０は、新しい描画色が検出されたか否かを判定する。１ページ中で使用される描画色は、その色値が一時的にメモリ上に記憶され、メモリ上の既出の描画色と比較することにより、描画色が初出のものかが判る。なお、この描画色は、短形、ライン、文字などの描画オブジェクトの前景色などである。ステップＳ１０４で、新しい描画色が検出されたと判定された場合（ＹＥＳ）には、ステップＳ１０５へ処理を分岐させる。ステップＳ１０５では、ＰＤＬパーサ部１２０は、描画情報として、描画色数を増加し、ステップＳ１０６へ処理を進める。ステップＳ１０４で、新しい描画色が検出されなかったと判定された場合（ＮＯ）には、ステップＳ１０６へ直接処理を進める。
【００７２】
ステップＳ１０６では、ＰＤＬパーサ部１２０は、半透明描画処理が検出されたか否かを判定する。この半透明描画処理は、描画色以外の色値を生成し得るものであり、１ページ中の描画色数が単純に描画オブジェクトで使用されているものの合計値として見なせなくなる。そこで、ステップＳ１０６で、半透明描画処理が検出されたと判定された場合（ＹＥＳ）には、ステップＳ１０７へ処理を分岐させる。ステップＳ１０７では、ＰＤＬパーサ部１２０は、描画情報として、ページ中の半透明描画処理の有無を示すフラグ（以下、半透明フラグという。）をｔｒｕｅに設定し、ステップＳ１０８へ処理を進める。
【００７３】
ステップＳ１０８では、ＰＤＬパーサ部１２０は、所定のＲＯＰ演算が検出されたか否かを判定する。この所定のＲＯＰ演算は、描画色以外の色値を生成しうるものであり、本実施形態では、上書き以外のＲＯＰ演算とされている。この場合も同様に、ソースとディスティネーションに無い新たな色値を生じさせる処理であり、１ページ中の描画色数が単純に描画オブジェクトで使用されているものの合計値として見なせなくなる。そこで、ステップＳ１０８で、上書き以外のＲＯＰ演算が検出されたと判定された場合（ＹＥＳ）には、ステップＳ１０９へ処理を分岐させる。ステップＳ１０９では、ＰＤＬパーサ部１２０は、描画情報として、ページ中の上書き以外のＲＯＰ演算の有無を示すフラグ（以下ＲＯＰフラグという。）をｔｒｕｅに設定し、ステップＳ１１０へ処理を進める。
【００７４】
ステップＳ１０３〜ステップＳ１１０で、１ページ分の解析処理が完了すると、ステップＳ１１１へ処理が渡される。ステップＳ１１１では、印刷データの解析処理に対応して生成された中間データがスプールされ、描画処理にデータが渡される。
【００７５】
ステップＳ１１２では、描画処理を開始する前に、対象ページに対するフレーム形式の判定処理が呼び出される。なお、フレーム形式判定処理の詳細については後述する。ステップＳ１１３で、フレームメモリ初期化部１３４は、決定されたフレーム形式でメモリを初期化し、ステップＳ１１４で、多値描画部１３８は、判定されたフレーム形式で、スプールされた中間データに従って、メモリ上にピクセルデータとして描画する。ステップＳ１１５では、印刷データの全ページについての処理が完了したか否かを判定する。ステップＳ１１５で、まだ処理すべきページが残されていると判定された場合（ＮＯ）には、ステップＳ１０１へ処理をループさせ、次のページに対する処理に進める。一方、ステップＳ１１５で、全てのページに対する処理が完了していると判定された場合（ＹＥＳ）には、ステップＳ１１６へ進め、本処理を終了させる。そして、引き続き、カラー変換部１４２およびＣＭＹＫ２値変換部１４４の処理が行われる。
【００７６】
以下、フレーム形式の判定処理について説明する。図８は、本実施形態のフレーム形式判定部が実行するフレーム形式判定処理のフローチャートを示す。図８に示す処理は、図７に示すステップＳ１１２の処理で呼び出されて、ステップＳ２００から開始される。ステップＳ２０１では、フレーム形式判定部１１２は、描画情報１５０を参照して、半透明フラグおよびＲＯＰフラグが共にｆａｌｓｅであるか否かを判定する。ステップＳ２０１で、半透明フラグおよびＲＯＰフラグの少なくとも一方がｔｒｕｅであると判定された場合（ＮＯ）には、ステップＳ２０４へ処理を分岐させる。ステップＳ２０４では、フレーム形式判定部１１２は、上述した「ＰＲＧＢ＋ＡＴ」形式（あるいは「ＰＲＧＢ＋Ａ＋Ｔ」形式）を採用すべき形式として設定し、ステップＳ２０７で呼び出し元の処理に戻す。
【００７７】
一方、ステップＳ２０１で、半透明フラグおよびＲＯＰフラグが共にｆｌａｓｅであると判定された場合（ＹＥＳ）には、ステップＳ２０２へ処理を進める。ステップＳ２０２では、フレーム形式判定部１１２は、描画情報１５０を参照して、描画色数が６３色以下であるか否かを判定する。ステップＳ２０２で、描画色数が６３色以下であると判定された場合（ＹＥＳ）には、ステップＳ２０６へ処理を進める。ステップＳ２０６では、フレーム形式判定部１１２は、上述した「ＩＤ・Ａ」形式を採用すべき形式として設定し、ステップＳ２０７で呼び出し元の処理に戻す。
【００７８】
一方、ステップＳ２０２で、描画色数が６３色を越えると判定された場合（ＮＯ）には、ステップＳ２０３へ処理を進める。ステップＳ２０３では、フレーム形式判定部１１２は、描画情報１５０を参照して、描画色数が２５６色以下であるか否かを判定する。ステップＳ２０３で、描画色数が２５６色以下であると判定された場合（ＹＥＳ）には、処理をステップＳ２０５へ進める。ステップＳ２０５では、フレーム形式判定部１１２は、上述した「ＩＤ＋Ａ」形式を描画フレームに採用すべき形式として設定し、ステップＳ２０７で呼び出し元の処理に戻す。一方、ステップＳ２０３で、描画色数が２５６色を越えると判定された場合（ＮＯ）には、インデックスカラーでは表現しきれないため、上述した「ＰＲＧＢ＋ＡＴ」形式（あるいは「ＰＲＧＢ＋Ａ＋Ｔ」形式）を採用すべき形式として設定し、ステップＳ２０７で呼び出し元の処理に戻す。
【００７９】
以上説明した実施形態によれば、上記通常形式（「ＰＲＧＢ＋ＡＴ」など）および代替形式（「ＩＤ＋Ａ」形式および「ＩＤ・Ａ」形式）のうちから、印刷データの特性が現れている描画情報に応じて適切なものが判定され、その形式により初期化処理および描画処理が行われる。そして、上記代替形式は、色定義データ（ＩＮＤＥＸテーブル）上の色番号と属性値とをピクセル毎に保持するものであり、色解像度を維持しつつもデータ量を大幅に削減できるものである。したがって、印刷データのページ領域における特性に応じて、適切なフレーム形式が適用され、描画に使用するメモリ容量を削減することが可能となり、ひいては、メモリアクセス量が削減され、描画速度が向上され、初期化時の処理時間も短縮され、描画速度およびメモリ効率を両立することが可能とされる。なお、上述までの実施形態では、レーザプリンタ１０が１ページ分の印刷データを確保する事ができるメモリが搭載されており、１ページ分の印刷データを走査してから、その走査により記録された描画情報に従ってフレーム形式を決定するものとして説明してきた。しかしながら、他の実施形態では、ホスト側のプリンタドライバで、描画色数や描画機能の有無を計数し、印刷データ中に指定するよう構成することもできる。
【００８０】
上述した実施形態の説明では、多値描画部１３８が処理に必要なメモリ容量として、１ページ分確保できるものとして説明してきた。しかしながら、１ページ分のメモリ容量が確保できない場合には、バンディング処理を適用することによって、バンド単位でメモリにアクセスして描画処理を行うことができる。以下、バンディング処理を適用する他の実施形態について説明する。
【００８１】
図９は、バンディング処理で使用するデータのデータ構造を示す。図９（Ａ）は、バンド領域のデータ構造を概念的に示し、バンディング処理におけるページ領域２２０とバンド領域２２２との関係を示している。バンディング処理は、図９（Ａ）に示すように、ページ領域を高さ方向に複数に分割し、分割したバンド領域２２２単位でメモリを確保し、ページ分のデータの処理を可能にする方法である。
【００８２】
バンディング処理では、多値描画部１３８は、描画要求があった時点で、圧縮またはハードディスク上に退避していたバンド領域のデータをメモリ上にロードし、描画処理を行う。多値描画部１３８は、描画処理が完了すると、次に他のバンド領域への描画要求があった時点で、圧縮またはハードディスク上にデータを退避する。これにより、ページ全体の処理をバンド領域に分けて処理可能としている。中間データ形式の描画データは、各描画オブジェクトの座標データからバンド領域にクリップされてバンドメモリに描画することになる。各バンドで使用されている描画色は、バンド領域にクリップされる描画オブジェクトのＧｓｔａｔｕｓに含まれる色値を参照して求めることができる。このバンディング処理では、バンド領域毎に異なる描画フレームの形式を選択することができる。
【００８３】
バンディング処理に本実施形態のフレーム形式の選択を含む描画処理を適用する場合、ＰＤＬパーサ部１２０は、描画コマンドの座標に従ってバンド毎に描画情報を記録し、バンド領域の初期化処理および描画処理の際に、使用する描画フレームの形式を変更することで、実現することができる。図９（Ｂ）は、バンド領域毎に記録される描画情報のデータ構造を示す。図９（Ｂ）に示すように、描画情報２３０は、バンド領域を識別するバンド番号が入力されるフィールド２３０ａと、描画色数（ＣＮｕｍ）が入力されるフィールド２３０ｂと、半透明フラグの値が入力されるフィールド２３０ｃと、ＲＯＰフラグの値が入力されるフィールド２３０ｄとを含む。
【００８４】
実際の使用では、例えば大部分がテキストのみからなる文書の一部にグラフ等の色を多数含む領域がある場合など、単一ページ中で位置によって描画特性が相違することが多い。バンド毎に描画フレームの形式を選択することにより、このような場合に、さらに効率的にメモリ容量およびメモリアクセス量を削減することが可能となる。
【００８５】
以上説明したように、上述までの実施形態によれば、印刷データの特性に応じた描画フレーム形式を選択することにより、印刷データが要求する表現力を維持しつつ、可能な限り最小限のメモリ容量およびアクセス量で描画処理を実行可能とし、ひいては描画速度およびメモリ効率を両立することができる画像形成装置、画像形成方法、プログラムおよび記録媒体を提供することができる。
【００８６】
なお、上述までの実施形態では、画像形成装置として、レーザプリンタを一例として説明してきた。しかしながら、上述までの実施形態の画像形成装置、画像形成方法およびプログラムは、複写機や複合機などの他の画像形成装置、ファクシミリなどの画像通信装置などに適用することができる。
【００８７】
また上記機能は、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）、などのレガシープログラミング言語やオブジェクト指向プログラミング言語などで記述されたコンピュータ実行可能なプログラムにより実現でき、ＲＯＭ、ＥＥＰＲＯＭ、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ、ＳＤカード、ＭＯなど装置可読な記録媒体に格納して頒布することができる。
【００８８】
これまで本発明の実施形態について説明してきたが、本発明の実施形態は上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００８９】
１０…レーザプリンタ、１２…コントローラ、１４…ＣＰＵ、１６…ＲＯＭ、１８…ＲＡＭ、２０…ＮＶ−ＲＡＭ、２２…ネットワークＩ／Ｆ、２４…エンジンＩ／Ｆ、２６…パネルＩ／Ｆ、２８…プリンタ・エンジン、３０…操作パネル、４０…ホストＰＣ、１００…コントローラ部、１０２…ネットワークＩ／Ｆ部、１０４…プリンタ制御システム部、１０６…パネルＩ／Ｆ部、１０８…エンジンＩ／Ｆ部、１１０…ＰＤＬ部、１１２…フレーム形式判定部、１２０…ＰＤＬパーサ部、１３０…描画コア部、１３２…描画Ｉ／Ｆ部、１３４…フレームメモリ初期化部、１３６…中間データ保存部、１３８…多値描画部、１４０…短形、１４２…カラー変換部、１４４…ＣＭＹＫ２値変換部、１５０，２３０…描画情報、２００…描画データ、２２０…ページ領域、２２２…バンド領域
【先行技術文献】
【特許文献】
【００９０】
【特許文献１】特開２００４−２４３５６９号公報
【図１】
2010274435.tif 000005
【図２】
2010274435.tif 000006
【図３】
2010274435.tif 000007
【図４】
2010274435.tif 000008
【図５】
2010274435.tif 000009
【図６】
2010274435.tif 000010
【図７】
2010274435.tif 000011
【図８】
2010274435.tif 000012
【図９】
2010274435.tif 000013