(57)【要約】【課題】  中間データのサイズを小さくすることができ、高速に画像処理することができる画像処理装置を提供する。【解決手段】  ＰＤＬデータを受信する受信手段と、受信手段により受信したＰＤＬデータに基づいて中間データを生成する中間データ生成手段と、中間データ生成手段で生成する中間データの生成単位を決定する決定手段と、生成手段により中間データを生成するたびに、中間データからラスタ画像を生成するラスタ画像生成部に、生成手段により生成した中間データを送信する送信手段と、を有する。中間データは、エッジ情報と各エッジに囲まれる領域に対応する塗り情報を有し、決定手段は、エッジ情報の生成単位及び塗り情報の生成単位を決定し、生成手段により生成される中間データが大きい場合、塗り情報の生成単位は、中間データの生成単位よりも大きくする。【選択図】  図８
2017189968.tif 000002
【特許請求の範囲】
【請求項１】
ＰＤＬデータを受信する受信手段と、前記受信手段により受信したＰＤＬデータに基づいて中間データを生成する中間データ生成手段と、
前記中間データ生成手段で生成する中間データの生成単位を決定する決定手段と、前記生成手段により中間データを生成するたびに、中間データからラスタ画像を生成するラスタ画像生成部に、前記生成手段により生成した中間データを送信する送信手段と、を有し、前記中間データは、エッジ情報と各エッジに囲まれる領域に対応する塗り情報を有し、
前記決定手段は、さらに、エッジ情報の生成単位及び塗り情報の生成単位を決定し、
前記決定手段は、前記生成手段により生成される中間データが大きい場合、前記塗り情報の生成単位は、前記中間データの生成単位よりも大きくすることを特徴とする画像処理装置。
【請求項２】
前記決定手段は、前記エッジ情報の生成単位と前記中間データの生成単位とを同一に決定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記生成手段により生成される中間データが大きい場合、前記中間データの処理単位はバンド単位であり、前記塗り情報の処理単位はページ単位であることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記生成手段により生成される中間データが大きい場合、前記中間データの処理単位はタイル単位であり、前記塗り情報の処理単位はページ単位であることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項５】
前記生成手段により生成される中間データが大きいか判定する判定手段をさらに有し、
前記判定手段により中間データが大きいと判定された場合、前記塗り情報の生成単位を前記中間データの生成単位よりも大きいものとし、前記判定手段により中間データが大きいと判定されなかった場合、前記塗り情報の生成単位と前記中間データの生成単位を同一に決定することを特徴とする請求項１〜４のいずれか１項に記載の画像処理装置。
【請求項６】
前記判定手段は、前記ＰＤＬデータに含まれるオブジェクト数に基づいて、前記生成手段により生成される中間データが大きいか判定することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記判定手段は、印刷設定情報に基づいて、前記生成手段により生成される中間データが大きいか判定することを特徴とする請求項５又は６に記載の画像処理装置。
【請求項８】
前記ラスタ画像生成部を備えることを特徴とする請求項１〜７のいずれか１項に記載の画像処理装置。
【請求項９】
前記ラスタ画像生成部は、外部装置が備えることを特徴とする請求項１〜７のいずれか１項に記載の画像処理装置。
【請求項１０】
ＰＤＬデータを受信する受信工程と、
前記受信工程において受信したＰＤＬデータに基づいて中間データを生成する中間データ生成工程と、
前記中間データ生成工程で生成する中間データの生成単位を決定する決定工程と、
前記生成工程により中間データを生成するたびに、中間データからラスタ画像を生成するラスタ画像生成部に、前記生成工程により生成した中間データを送信する送信工程と、を有し、
前記中間データは、エッジ情報と各エッジに囲まれる領域に対応する塗り情報を有し、
前記決定工程では、さらに、エッジ情報の生成単位及び塗り情報の生成単位を決定し、
前記決定工程では、前記生成工程により生成される中間データが大きい場合、前記塗り情報の生成単位は、前記中間データの生成単位よりも大きくすることを特徴とする画像処理方法。
【請求項１１】
請求項１〜９のいずれか１項に記載の画像処理装置の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
ページ記述言語（ＰＤＬ）で記述されたデータ（以下、ＰＤＬデータともいう）をネットワーク等を介して受信し、ＰＤＬデータを専用のインタプリタにより解釈し、ラスタ画像を形成するＲＩＰ処理を行い、プリンタにより印刷処理をする方法が知られている。ＰＤＬのＲＩＰ処理においては、インタプリタから受けとった情報を元に中間データを作成し、所定の単位毎（例えば、複数スキャンライン毎、ページ単位毎）のラスタ画像を生成する。
【０００３】
ところで、例えば、大判サイズを印刷する場合のように、ページサイズが大きい場合、中間データサイズも大きくなる。ＲＩＰ処理において中間データのサイズが大きいと、メモリ上に格納する容量も大きくなるため、メモリのコストが増大してしまう。なお、大判サイズのプリンタに限らず、データサイズに対してメモリが小さい場合にも同様の問題が生じる。また、メモリ容量を超えるデータは処理することができないため、データ量を削減する場合、画質劣化してしまう。
そこで、特許文献１では、データ転送量とバッファの容量に応じて決めたバンド高さで入力画像を分割する方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１０９７４８
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１では、入力画像を分割して処理しているだけであり、データ量は、ページ全体としてみると小さくはなっていない。したがって、中間データのサイズを小さくすることができず、通信にかかる時間がボトルネックとなり、ラスタ画像の生成開始から終了までの時間が長くなり印刷性能が発揮できない問題があった。
【課題を解決するための手段】
【０００６】
上述した課題を解決するため、本発明の画像処理装置は、ＰＤＬデータを受信する受信手段と、前記受信手段により受信したＰＤＬデータに基づいて中間データを生成する中間データ生成手段と、前記中間データ生成手段で生成する中間データの生成単位を決定する決定手段と、前記生成手段により中間データを生成するたびに、中間データからラスタ画像を生成するラスタ画像生成部に、前記生成手段により生成した中間データを送信する送信手段と、を有し、前記中間データは、エッジ情報と各エッジに囲まれる領域に対応する塗り情報を有し、前記決定手段は、さらに、エッジ情報の生成単位及び塗り情報の生成単位を決定し、前記決定手段は、前記生成手段により生成される中間データが大きい場合、前記塗り情報の生成単位は、前記中間データの生成単位よりも大きくする。
【発明の効果】
【０００７】
本発明によれば、中間データのサイズを小さくすることができ、高速に画像処理することができる。
【図面の簡単な説明】
【０００８】
【図１】実施形態１に係る画像処理システム構成の一例を示すハードウェア構成図である。
【図２】実施形態１に係る画像処理のシステムを示すソフトウェア構成図である。
【図３】実施形態１に係る画像処理装置の機能ブロック図である。
【図４】描画データの一例を示す図である。
【図５】ディスプレイリストの一例を示す図である。
【図６】ページ単位の中間データの一例を示す図である。
【図７】バンド単位の中間データの一例を示す図である。
【図８】実施形態１に係る中間データ生成のフローチャートである。
【図９】実施形態２に係る中間データ生成フローチャートである。
【図１０】実施形態１に係るバンド単位の中間データ生成処理例１のフローチャートである。
【図１１】実施形態２に係るバンド単位の中間データ生成処理例２のフローチャートである。
【図１２】実施形態３に係る画像処理システムを示すソフトウェア構成図である。
【発明を実施するための形態】
【０００９】
（実施形態１）
以下、本発明を実施するための最良の形態について、図面を参照して説明する。なお、以下の実施の形態は、本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明に必須のものとは限らない。
【００１０】
図１は、本発明の一実施の形態による画像処理装置の構成を示すブロック図である。
【００１１】
図１は、実施形態１に係るプリントシステムの概略を示したブロック図である。図１に示すように、プリントシステムは、ホストコンピュータ１００と、プリンタ１２０とを含む。図１に示されているように、ホストコンピュータ１００と、プリンタ１２０とはネットワーク３を介して互いに接続される。
【００１２】
ホストコンピュータ１００は、画像処理装置であり、例えば、パーソナルコンピュータ（ＰＣ）などが挙げられる。ホストコンピュータ１００は、ネットワーク上の画像サーバであってもよいし、プリンタドライバを有するＰＣであってもよい。本実施形態では、クラウド環境上で動作する画像処理システムを例に挙げて説明する。
【００１３】
ホストコンピュータ１００は、メインボード０と、キーボード（ＫＢ）１０５と、ＬＣＤなどのディスプレイ（ＤＩＳＰＬＡＹ）１０７と、外部記憶装置１０９とを有する。
【００１４】
メインボードは、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、キーボードコントローラ（ＫＢＣ）１０４、ディスプレイコントローラ（ＤＩＳＰＣ）１０６、ディスクコントローラ（ＤＫＣ）１０８、プリンタコントローラ（ＰＲＴＣ）１１０を有する。メインボードにおいて、これらはシステムバス１１１を介して互いに接続されている。
【００１５】
ＣＰＵ１０１は、システムバス１１１に接続される上記各構成要素を総括的に制御し、ＲＯＭ１０３等に記憶された各種プログラムを実行する。ＲＡＭ１０２は、ＣＰＵ１０１のメインメモリあるいはワークエリアとして機能する。ＲＯＭ１０３は、オペレーティングシステム、この実施形態に挙げる各機能を実行するプログラム、ブートプログラム、各種のアプリケーション、プリンタ制御コマンド生成プログラム（以下、プリンタドライバ）等を記憶する。
【００１６】
キーボードコントローラ（ＫＢＣ）１０４は、キーボード１０５や図示しないポインティングデバイスからの入力を制御する。キーボードコントローラ１０４は、操作部又は入力部ともいう。
【００１７】
ディスプレイコントローラ（ＤＩＳＰＣ）１０６は、表示部であるディスプレイ１０７の表示を制御する。
【００１８】
ディスクコントローラ（ＤＫＣ）１０８は、メインボードとハードディスクやフレキシブルディスク（ＦＤＤ）等の外部記憶装置１０９とのアクセスを制御する。
【００１９】
プリンタコントローラ（ＰＲＴＣ）１１０は、ネットワーク３を介してプリンタ１２０に接続され、プリンタ１２０とのデータ及びコマンドの通信処理を制御する。
【００２０】
なお、本実施形態に係るホストコンピュータ１００は、クライアントコンピュータや携帯端末等から送信された画像データを受信することができる。クライアントコンピュータは、図示しないが、ホストコンピュータ１００と同様の構成とすることができる。クライントコンピュータや携帯端末と、ホストコンピュータ１００とは、ネットワークを介して接続される。
【００２１】
クライアントコンピュータは、例えば、印刷用アプリケーションがインストールされており、印刷用アプリケーションをＣＰＵ及びメモリを用いて起動することができるものとする。そして、印刷用アプリケーションにおいて、クライアントコンピュータに保存されている画像を選択したり、画像をレイアウトして生成したレイアウト画像を選択したりして、印刷対象の画像を決定し、印刷指示を実行する。これにより、印刷用アプリケーションからホストコンピュータ１００に直接又は図示しないサーバを介して、画像データが送信される。そして、詳細は後述するが、ホストコンピュータ１００が、画像処理を実行し、そのご、プリンタ１２０により印刷が実行される。なお、画像データは、ホストコンピュータ１００自身が有するものであってもよい。
【００２２】
プリンタ１２０は、コントローラ１２１とプリンタエンジン１２２と操作パネル１２と不揮発性記憶装置１３３とを有し、双方向インターフェース３を介して、ホストコンピュータ１００と接続されている。
【００２３】
操作パネル１２は、操作部と表示部を備えるものであり、例えば、タッチパネルが挙げられる。
【００２４】
不揮発性記憶装置１３３は、ハードディスク（ＨＤＤ）１２８と、ＥＥＰＲＯＭ１２９とを含む。不揮発性記憶装置１３３は、不揮発性メモリと呼ぶこともある。なお、本実施形態では、不揮発性記憶装置１３３は、ＨＤＤ１２８とＥＥＰＲＯＭ１２９とを有するものとしたが、これに限定されず、例えば、いずれか一方を含むものであってもよい。ハードディスク（ＨＤＤ）１２８は、プリンタサーバ１０からのデータ及びそのデータに関する付属情報など大容量のデータを記憶する。ＥＥＰＲＯＭ１２９は、プリント動作時に使用するプリンタ独自の情報などを記憶する。本実施形態では、プリンタ独自の情報として、用紙情報を例に挙げて説明する。
【００２５】
コントローラ１２１は、ＣＰＵ１２４、ＲＯＭ１２５、ＲＡＭ１２６、インタフェースコントローラ（Ｉ／ＦＣ）１２３、ディスクコントローラ（ＤＫＣ）１２７、パネルインタフェース（Ｉ／ＦＰ）１３０、エンジンインタフェース（Ｉ／ＦＥ）１３２を含む。コントローラ１２１において、これらはシステムバスを介して互いに接続されている。
【００２６】
ＣＰＵ１２４は、システムバス１１１に接続される上記各構成要素を総括的に制御し、ＲＯＭ１０３等に記憶されている各種プログラムを実行する。ＲＯＭ１２５は、ホストコンピュータ１００から印刷用画像データとコマンドを受信し、プリンタエンジン１２２を制御して最適な記録を実現させるプログラムや各種データを記憶する。ＲＡＭ１２６は、各種データや各種プログラムを一時的に記憶するワークエリアとして用いられる。
【００２７】
インタフェースコントローラ（Ｉ／ＦＣ）１２３は、双方向インターフェース３を介してホストコンピュータ１００に接続され、ホストコンピュータ１００との通信処理を制御する。
【００２８】
ディスクコントローラ（ＤＫＣ）１２７は、不揮発性記憶装置１３３とのアクセスを制御する。パネルインタフェース（Ｉ／ＦＰ）１３０は、操作パネル１２の表示制御や操作パネル１２からの入力制御を制御する。エンジンインタフェース（Ｉ／ＦＥ）１３２は、ハードウェアを直接制御して最適な記録を実現させるプリンタエンジン１２２を制御する。
【００２９】
プリンタエンジン１２２は、画像データに基づいて、インクジェット方式や電子写真方式などの各種印刷方式により被記録媒体である用紙に画像をプリントする。
【００３０】
図２は、印刷システムのソフウェア構成図である。本実施形態では、図２（ａ）に示すように、ホストコンピュータ１００が、ＰＤＬインタプリタ１５１及び中間データ生成部１５２を有し、プリンタ１２０が、ラスタ画像生成部１５４を有するものとして説明する。本実施形態では、ホストコンピュータ１００の中間データ生成部１５２において生成された中間データ１０３は、ネットワーク等を介してプリンタ１２０に送信される。すなわち、ラスタ画像生成部１５４は、ホストコンピュータ１００の外部装置が備えるものとする。
【００３１】
なお、本発明は、これに限定されず、図２（ｂ）に示すように、プリンタ１２０が、ＰＤＬインタプリタ１５１、中間データ生成部１５２及びラスタ画像生成部１５４を全て含むものとしてもよい。また、ホストコンピュータ１００等の他の画像処理装置がＰＤＬインタプリタ１５１、中間データ生成部１５２及びラスタ画像生成部１５４を全て含むものとしてもよい。ＰＤＬインタプリタ１５１は、図示しない印刷アプリケーションからＰＤＬの形式で、オブジェクト描画（画像データ）を含む画像形成命令を受け取り、ＰＤＬ中の画像形成命令を解釈する。ＰＤＬインタプリタ１５１は、解釈した画像形成命令を内部表現形式であるオブジェクト描画命令に変換して、中間データ生成部１５２に転送する。ここで、ＰＤＬとしては、例えば、Ａｄｏｂｅ社のＰｏｓｔＳｃｒｉｐｔやＰＤＦ、Ｍｉｃｒｏｓｏｆｔ社のＸＰＳが挙げられるが、これに限定されるものではない。
【００３２】
中間データ生成部１５２は、オブジェクト描画命令から所定単位毎の中間データ１５３を生成して出力する。なお、所定単位とは、例えば、ページ単位、特定の領域（所定サイズの幅、所定サイズのブロック）単位が挙げられる。中間データとは、画像を表す画像データと、画像における各オブジェクトの色を特定するための色情報と、画像における各オブジェクトのエッジを特定するためのエッジ情報とを含むものであり、ラスタ画像生成部１５４が処理できるフォーマットデータである。
【００３３】
中間データ１５３は、ネットワーク等の通信経路を介して、プリンタ１２０のラスタ画像生成部１５４に送信される。ラスタ画像生成部１５４は、中間データ内に記述された情報に基づいてラスタ画像を生成する。これにより、ページ記述言語（ＰＤＬ）で記述されたデータからラスタ画像を生成することができる。
【００３４】
ここで、図３及び図４を用いて、中間データ生成部１５２の処理について説明する。図３は、中間データ生成部１５２を詳細に示すソフトウェアブロック図であり、図４は、中間データであるＰＤＬの描画ページの一例である。
【００３５】
図３に示すように、中間データ生成部１５２は、ＤＬ生成部２０１、中間データ格納部２０３、圧縮部２０７を有する。
【００３６】
ＤＬ生成部２０１は、ディスプレイリスト生成部であり、ＰＤＬインタプリタ１５１が解釈した画像形成命令をオブジェクト描画命令として受け取り、ディスプレイリスト２０２の形式で保持し、順次更新していく。
【００３７】
中間データ格納部２０３は、制御部２０４と、エッジ情報生成部２０５と、塗り情報生成部２０６とを有する。制御部２０４は、中間データ格納部２０３の全体を制御するものであり、ディスプレイリストの読み込みをしたり、中間データ生成の処理単位の決定をしたりする。エッジ情報生成部２０５は、オブジェクト描画命令を基に、描画データにおけるオブジェクトのエッジ情報を生成する。塗り情報生成部２０６は、オブジェクト描画命令を基に、描画データにおいてエッジで囲まれた領域に対する塗り情報（色情報）を生成する。
【００３８】
以下、図４のＰＤＬの描画ページを用いて具体的に説明する。図４の描画データ３００は、ＰＤＬのページ画像データである。ページ画像データは、複数のオブジェクト描画命令からなり、以下の順番で画像形成命令が定義されている。ここで、オブジェクト描画命令とは、ＰＤＬ中のオブジェクト（グラフィックス、テキスト、写真等の画像オブジェクト）を配置するためのコマンドであり、画像形成命令とは、描画ページ全体のコマンドである。グラフィックス命令３０１は、星型のグラフィックス命令が定義され、緑色（Ｒ＝０、Ｇ＝２５５、Ｂ＝０）の塗りで定義されている。画像オブジェクト命令３０２は、画像オブジェクト命令が定義され、透明度７０％でグラフィックス命令３０１に重ねられている。描画データ３００は、グラフィックス命令３０１と画像オブジェクト命令３０２と同一のオブジェクト描画命令が複数含まれている。すなわち、描画データ３００には、グラフィックス命令３０１と画像オブジェクト命令３０２と同様のオブジェクト描画命令が、繰り返し定義される。なお、グラフィックス命令３０３、グラフィックス命令３０５、グラフィックス命令３０７、グラフィックス命令３０９、グラフィックス命令３１１は、グラフィックス命令３０１と同様の構成である。また、画像オブジェクト命令３０４、画像オブジェクト命令３０６、画像オブジェクト命令３０８、画像オブジェクト命令３１０、画像オブジェクト命令３１２は、画像オブジェクト命令３０２と同様の構成である。このように、オフィス文書における会社ロゴ表現やアルバム文書の背景模様等を合成する際に同じオブジェクト描画命令を繰り返し定義さればよい。ＰＤＬ定義においては、同じ画像データを用いる場合、ＰＤＬの仕様により定義の方法が異なり、繰り返し個別に定義する場合や、タイル表現で定義する場合がある。テキスト命令３１３は、黒（Ｒ＝０，Ｇ＝０、Ｂ＝０）の塗りを指定されている。画像オブジェクト命令３１４は、画像オブジェクト命令が定義されている。このように、描画データは、複数のオブジェクト描画命令が合成されたものとする。
【００３９】
図３に戻って、図４の描画データ３００に対する処理について説明する。
【００４０】
ＰＤＬインタプリタ１５１は、描画データ３００を受信すると、画像形成命令を解釈し、ＤＬ生成部２０１に転送する。ＤＬ生成部２０１は、ＰＤＬインタプリタ１５１が解釈した画像形成命令をオブジェクト描画命令として受け取り、ディスプレイリスト２０２の形式で図示しないメモリに保持させ、順次更新していく。例えば、ＤＬ生成部２０１がグラフィックス命令３０１に対するオブジェクト描画命令を受け取ると、ディスプレイリスト２０２に当該グラフィックス命令の描画データ３００における開始座標点、塗りの色、重ね合わせ情報を追加する。同様に、以降のオブジェクト描画命令を順次ディスプレイリスト２０２に追加（更新）する。本実施形態では、描画データ３００は、１ページのデータであり、ディスプレイリスト２０２は、ページの左上端を原点として、各オブジェクトの開始座標をＹ方向に整列させたリストとなる。
【００４１】
図５は、描画データ３００に対するディスプレイリスト２０２の結果である。ページのＹ方向及びＰＤＬ中のオブジェクト描画命令の命令順であるＺオーダー順に描画データ３００のオブジェクト描画命令がリスト化されていく。すなわち、本実施形態では、オブジェクト描画命令の配置位置順ではなく、命令された順にリスト化し、Ｙ方向に整列させる。
【００４２】
ディスプレイリスト２０２のオブジェクト描画命令４０１は、グラフィックス命令３０１に対するものであり、オブジェクト描画命令の開始位置のＹ座標である１００スキャンラインのリスト部分（Ｙ＝１００の部分）に追加される。ここでは、オブジェクト描画命令として、ページにおけるＸ座標、画像の形状を表すパス情報と、色を表す色情報が登録されている。画像の形状としては、星型、矩形、曲線、円等が挙げられる。また、文字列の場合は、画像の形状として、「文字列」を登録する。色情報としては、写真等の画像データ挿入情報（図５中「画像」とする）、ＲＧＢ値、色空間等が挙げられる。また、透明度等も色情報として含んでもよい。
【００４３】
オブジェクト描画命令４０２は、画像オブジェクト命令３０２に対応するものであり、１１０スキャンラインのリスト部分（Ｙ＝１１０の部分）に追加される。画像オブジェクト命令３０２は、画像オブジェクトを形成するものであるため、オブジェクト描画命令４０２のパス情報は矩形となり、色情報は「画像」と、「透明度７０％」とを含む。また、オブジェクト描画命令は、画像の実体を表す参照ＩＤを含む。本実施形態では、画像オブジェクトの実体は、圧縮部２０７で圧縮されてディスプレイリスト２０２内に格納される。これにより、サイズを削減することができる。圧縮部２０７における画像データの圧縮方法としては、可逆、非可逆もしくはその両方の組み合わせのいずれであってもよく、圧縮アルゴリズムは特に限定されず、公知のものを用いることができる。本実施形態では、オブジェクト描画命令は、圧縮形式の情報も含むものとする。
【００４４】
オブジェクト描画命令４０３は、グラフィックス命令３０７に対応するものであり、オブジェクト描画命令４０１と同様にスキャンライン１００のリストに追加される。ただし、Ｘ方向の座標はオブジェクト描画命令４０１とは異なる。テキスト命令３１３に対応するオブジェクト描画命令４０４が２５０スキャンライン部分のリストに追加される。このパス情報は文字列とされる。また、本実施形態では、文字列の内容（ＡＢＣＤ）を含むものとする。
【００４５】
このようにして、順に各画像データの描画情報をディスプレイリストに登録する。ディスプレイリスト２０２に含まれる複数のオブジェクト描画命令（描画情報）に基づいて、中間データ生成部１５２の以降の処理で中間データ１５３が生成される。
【００４６】
図６及び図７を用いて、中間データ格納部２０３における中間データ１５３の生成処理について説明する。図６は、ページ単位で生成した中間データを示す図であり、図７は、バンド単位で生成した中間データを示す図である。
【００４７】
ページ単位で生成した中間データは、エッジ情報５０１と塗り情報５０２を含む。また、中間データは、塗り情報５０２から参照される画像を画像データ５０３として含む。すなわち、本実施形態では、中間データは、エッジ情報５０１と、塗り情報５０２と、画像データ５０３からなるものとしたが、これに限定されず、さらに他の情報を含んでいてもよい。エッジ情報５０１は、塗り情報（色情報）が異なる領域を示す情報であり、領域の境界はオブジェクト描画命令の重なりに基づいて、特定することができる。すなわち、１つの領域に対しては、同じ塗り情報が適用される。なお、エッジ情報は、境界領域を示す情報ということもできる。エッジ情報は、境界の座標を含む。エッジ情報の方法については、公知の方法を用いることができる。
【００４８】
塗り情報５０２は、ページに含まれるオブジェクトを塗りつぶす色を表す情報であり、塗り情報の識別情報（図中「塗りＩＤ」）と、上述した色情報と、透明度情報と、を含む。なお、透明度αが０の場合、透明であり、透明度αが１の場合、透明ではないものとする。
【００４９】
エッジ情報５０１で特定される各領域、すなわち、エッジに囲まれる各領域には、塗り情報５０２の各成分それぞれが紐づけられている。例えば、領域５０４は、塗り情報成分５０６で塗られる領域、すなわち、緑（Ｒ＝０、Ｇ＝２５５，Ｂ＝０）単色で塗られる領域を示しており、領域５０５は、塗り情報成分５０７で塗られる領域を示している。
【００５０】
塗り情報成分５０７は、緑の上に画像を表す塗りが透明度７０％で重なっていることを示す。塗り情報成分５０７中の画像オブジェクトの実体は、画像データ５０３の格納領域に画像５０８として、中間データに格納される。このとき画像データ５０８は、ディスプレイリスト２０２に格納時の圧縮形式のままで格納されてもよいし、展開された無圧縮形式で格納される。次の星型のグラフィックス命令及び画像オブジェクト命令における各領域も、それぞれ塗り情報成分５０６及び塗り情報成分５０７を参照する。このように、本実施形態では、塗り情報が同一である場合は、重複して格納せずに、１つ格納するものとした。なお、この場合は、異なる領域に対して同じ塗り情報成分（例えば、塗りＩＤ）が紐づけられる。
【００５１】
図７に示すバンド単位で生成した中間データは、図６に示したページ中間データと同様に、エッジ情報、塗り情報、及び画像データを含む。ここで、図７で示す描画データは、ページのサイズがＡ４であり、Ｘ方向４９００ピクセル、Ｙ方向が７０１４ピクセルからなるものとする。
【００５２】
図７（ａ）では、エッジ情報６０１は、Ｙ方向を所定のスキャンライン数で分割したバンド単位で生成する。具体的には、１０２４スキャンラインを１バンドとして、１０２４ライン単位でエッジ情報を順に生成する。なお、１バンドのライン単位は、これに限定されるものではない。塗り情報６０２は、エッジ情報６０１よりも大きい単位で生成する。本実施形態では、ページ単位で塗り情報を生成する。
【００５３】
図７（ａ）では、星型のグラフィックス命令及び画像オブジェクト命令に対して、塗りＩＤ＝１，塗りＩＤ＝２が紐付けられる。すなわち、同じ塗り情報を使用する場合は、エッジ情報に対してそれぞれ対応する塗り情報が紐付けされ、重複した塗り情報は、保持しないようにする。
【００５４】
上述した処理を繰り返すことにより、図７（ａ）では、１０２４スキャンライン単位（バンド単位）で生成された７つのエッジ情報６０１を生成し（保持し）、ページに１つの塗り情報６０２を生成する（保持する）。ここで、同じ描画オブジェクトを繰り返す場合、塗り情報は同一であるため１つ生成すればよいのに対し、描画オブジェクトの配置位置がそれぞれ異なるため、エッジ情報はそれぞれ生成する。塗り情報６０７に紐づけられた写真等の各画像は、図６で示したページ単位の中間データと同様に、圧縮形式又は展開された非圧縮形式で、画像データ６０３として中間データに格納される。このように、図７（ａ）では、エッジ情報の単位と、塗り情報の単位は、異なるものとする。具体的には、バンド毎にエッジ情報を保持し、ページ共通で塗り情報を有する。これにより、ページ全体での中間データを小さくすることができる。  図７（ｂ）の例では、１０２４スキャンライン単位（バンド単位）でエッジ情報６１１も、塗り情報６１２も生成する。すなわち、塗り情報６１２は、１つのバンドに対して１つ生成される。例えば、塗り情報６１６は、エッジ情報６１４（計１０２４のスキャンライン）に対応する塗り情報となる。同様に、エッジ情報６１５に対応する塗り情報は６１７となる。このようにして中間データを生成することにより、中間データは、ページ全体で７個持つこととなる。このように、バンド毎に中間データを生成することにより、対象のラスタ画像を処理する際に、ページ分の中間データが生成できるまで処理を待機する必要がない。
【００５５】
中間データ格納部２０３における中間データの生成処理について、フローチャートを用いて詳細を説明する。図８のフローチャートは、ＣＰＵ１０１が、ＲＯＭ１０３に格納されている画像処理プログラムをＲＡＭ１０２にロードし、それを実行することにより行われる。図８は、中間データ生成の処理単位を静的に決定する処理フローを示している。
【００５６】
中間データ格納部２０３の制御部２０４は、Ｓ７０１で、印刷アプリケーションから各種印刷設定情報を読み込む。印刷設定情報は、出力用紙サイズ、解像度、拡大率等の設定情報を含む。これらの設定情報は、例えば、ユーザがクライアントコンピュータのプリンタドライバやプリンタ１２０のパネルに表示された印刷アプリケーションが提供する画面を用いて指定する。また、印刷設定情報は、ＰＤＬ内やＪＤＦで定義された情報をＰＤＬインタプリタ１５１で解釈したパラメータを含む。また、このとき、プリンタ１２０の能力情報を取得してもよい。例えば、プリンタ１２０の能力情報としては、プリンタ１２０に含まれるラスタ画像生成部１５４が使用可能なメモリの容量情報が挙げられる。
【００５７】
次に、制御部２０４は、Ｓ７０１で読み込んだ印刷設定情報をもとに中間データの生成単位を決定する。まず、印刷設定情報に基づいて中間データのサイズが大きくなるか判定する。すなわち、印刷設定情報に基づいて中間データのサイズが大きくなるか予想する。中間データのサイズが大きくなると判定した場合は、バンド単位と決定し、それ以外はページ単位と決定する。例えば、出力用紙サイズが大きいとページ単位の中間データのサイズが大きくなる。出力用紙サイズが閾値サイズ以上（例えば、Ａ３以上）の場合は、バンド単位の中間データ生成とし、出力用紙サイズが閾値サイズ以下の場合（例えば、Ａ３より小さい場合）はページ単位での処理単位とする。また、閾値サイズは、例えば、出力解像度に応じて変更する。例えば、３００ＤＰＩの場合はＡ２サイズを閾値サイズとし、６００ＤＰＩの場合はＡ３を閾値サイズとする。また、ページ単位かバンド単位のユーザ指定を読み込むことで決定してもよい。また、ラスタ画像生成部１５４の使用可能なメモリが多い場合は、大きい中間データサイズを格納することができる。したがって、ラスタ画像生成部１５４の使用可能なメモリ情報に応じて、閾値サイズを決定してもよい。
【００５８】
そして、Ｓ７０３では、ページ単位の生成と決定したか、バンド単位の生成と決定したかを判定する。Ｓ７０３で中間データの生成単位がページ単位と判定した場合（Ｓ７０３でＹｅｓ）、Ｓ７０４でページ中間データ生成処理を実行する。この場合は、エッジ情報も塗り情報もページ共通で保存するものとする。すなわち、ページに１つのエッジ情報、塗り情報とする。
【００５９】
Ｓ７０３で生成単位がバンド単位と判定した場合（Ｓ７０３でＮｏ）、Ｓ７０５のバンド幅の決定処理を実行する。
【００６０】
Ｓ７０５では、中間データの生成単位、すなわち、バンド幅を決定する。このとき、エッジ情報６０１及び塗り情報６０２の生成単位も決定する。中間データの生成単位の決定方法としては、ホストコンピュータ１のＲＯＭ１０３に予め設定されている設定ファイル等から直接スキャンライン数を読み込む方法、Ｓ７０１で読み込んだ印刷設定情報を用いて算出する方法が挙げられる。印刷設定情報から算出する方法としては、例えば、出力用紙サイズのピクセル数から求める方法が挙げられる。本実施形態では、中間データのバンド幅がエッジ情報６０１の生成単位とする。一方で、塗り情報６０２の生成単位は、中間データのバンド幅より大きくする。例えば、エッジ情報６０１の生成単位は、Ａ４サイズではバンド単位（ここでは、５１２スキャンライン単位）とし、塗り情報６０２の生成単位は、ページ単位（７１４０スキャンライン単位）とする。Ａ３サイズでは、エッジ情報６０１及び塗り情報６０２の生成単位は、それぞれＡ４サイズの半分とする。すなわち、エッジ情報６０１の生成単位は、２５６スキャンライン単位、塗り情報６０２の生成単位は、３６００スキャンライン単位とする。このように、エッジ情報６０１の生成単位よりも、塗り情報の生成単位を大きくする。なお、塗り情報６０２の生成単位の決定方法は、これに限定されず、塗り情報６０２の生成単位は、用紙サイズに関わらず、ページ単位としてもよい。また、さらに、ラスタ画像生成部１５４の能力に応じて生成単位を変更してもよい。すなわち、ラスタ画像生成部１５４を有するプリンタ１２０の機種に応じて、生成単位を変更する。例えば、同じＡ４サイズでの生成単位は、メモリ容量５０ＭＢの場合の生成単位は、メモリ容量２５ＭＢのときよりも大きい値を設定する。メモリ容量が２５ＭＢの場合は、エッジ情報６０１及び塗り情報６０２の生成単位は、メモリ容量５０ＭＢの場合のそれぞれ半分の２５６スキャンライン及び３６００スキャンライン単位とする。
【００６１】
Ｓ７０５で処理のバンド幅が決定されると、Ｓ７０６でバンド単位で中間データ生成処理を実行する。本実施形態では、中間データはバンド単位で生成するのに対し、塗り情報はページ単位となる。このように、塗り情報の処理単位は、中間データよりも処理単位よりも大きくなる。
【００６２】
なお、本実施形態では、中間データはバンド単位としたが、これに限定されず、Ｘ方向（図７の左右方向）及びＹ方向を複数に分けたタイル単位としてもよい。この場合、Ｓ７０５では、中間データ及びエッジ情報はバンド単位で生成し、塗り情報はページ単位で生成すると決定する。図１０は、Ｓ７０６のバンド単位の中間データ生成処理のフローチャートである。ここでは、エッジ情報６０１を５１２スキャンライン単位で生成し、塗り情報６０２は３６００スキャンライン単位で生成する場合を例に挙げて説明する。
【００６３】
中間データ格納部２０３の制御部２０４は、Ｓ９０１で生成する中間データの対象スキャンラインを求める。５１２スキャンライン単位であるため、最初は、対象スキャンラインは、スキャンライン１から５１１となる。Ｓ９０２では、対象スキャンラインは、塗り情報６０２の生成対象かを判断する。ページの最初は、塗り情報生成の対象とし、以降３６００スキャンライン毎に対象とする。
【００６４】
Ｓ９０２で塗り情報生成の対象とされなかった場合は、Ｓ９０５へ進む。
【００６５】
Ｓ９０２で塗り情報生成の対象とされた場合は（Ｓ９０２でＹｅｓ）、塗り情報生成部２０６で塗り情報６０２の対象スキャンライン中の全ての塗り情報の生成を行う。まず、Ｓ９０３で、塗り情報生成部２０６は、ディスプレイリスト２０２から対象スキャンラインである１から３６００のオブジェクトの塗りつぶしの情報の読み込みを行う。次に、Ｓ９０４で、オブジェクトの塗りつぶしの情報に基づいて中間データの塗り情報６０２の生成を行う。塗り情報６０２の塗り情報は、図７で示したように、各エッジの塗りつぶしの色、画像の実体を示す画像ＩＤ、及び透明度である。ここで、同じ色及び同じ画像は、塗り情報６０２にはひとつだけ含まれることになる。
【００６６】
Ｓ９０５ではエッジ情報生成部２０５がエッジ生成の対象となるディスプレイリスト２０２のパス情報を読み込む。Ｓ９０６でエッジ情報生成部２０５がエッジの生成処理を行う。エッジの生成処理では、対象スキャンラインに位置する各オブジェクトの重なりを考慮した境界をエッジとし、これらの配置情報をエッジ情報として生成する。具体的には、同じ塗り情報が適用される領域を区切るようにエッジを生成する。これにより、塗り情報毎に領域が分けられる。図７の領域６０４のように、エッジ情報により特定される各領域には、塗り情報６０２のうち１つの塗り情報成分６０６の参照値が対応付けられる。また、エッジ情報は、一定の正方領域をタイルとして、タイルごとにエッジ情報を生成することもできる。例えば、Ｘ方向及びＹ方向それぞれが６４ピクセルのタイル単位でエッジ情報を生成し、生成したエッジ情報は可逆圧縮によりサイズを小さくすることができる。タイル単位でエッジ情報を作成する処理を繰り返すことにより、５１２スキャンラインに対応するエッジ情報６０２が複数生成される。Ｓ９０７では、生成したエッジ情報がページの最後かどうかを判定する。生成したエッジ情報がページの最後の場合は（Ｓ９０７でＹｅｓ）、中間データ生成処理を終了する。生成したエッジ情報がページの最後でなければ（Ｓ９０７でＮｏ）、Ｓ９０１に戻って処理を継続する。
【００６７】
これにより、１ページの中間データ生成処理がなされる。複数ページのドキュメメントの場合は、このフローをページ分繰り返し実行される。本実施形態では、中間データ生成部１５２は、中間データを生成する毎に、ラスタ画像生成部１５４に中間データを送信する。すなわち、バンド単位で中間データを生成している場合は、バンド単位で中間データを送信していく。したがって、ページ全体の中間データが生成される前に、少なくとも１バンド目の中間データは、ラスタ画像生成部１５４に送信される。また、中間データ生成部１５２は、中間データをラスタ画像生成部１５４に送信する度に、メモリから中間データを削除する。
【００６８】
次に、ラスタ画像生成部１５４におけるラスタ画像生成処理について説明する。バンド単位の中間データを受信すると、塗り情報６０２は、ラスタ画像生成部１５４に含まれる不図示のメモリに格納される。なお、バンド単位の中間データは、エッジ情報をバンド単位で保持している。そして、バンド単位の中間データに対してラスタ画像の生成処理を実行する。具体的には、ラスタ画像生成部１５４は、エッジ情報６０１をスキャンライン毎に順次展開していき、エッジ情報により分割された領域毎に対応する塗り情報６０２の各成分を重ね合わせる重ね合わせ処理を実行し、エッジ情報により分割された領域毎に色を決定する。このとき、塗り情報に含まれる画像ＩＤを参照する場合は、圧縮又は非圧縮形式で格納された当該画像ＩＤに対応する画像データを展開し、その後に重ね合わせを実施し、対応するエッジに囲まれる領域の色を特定する。重ね合わせによって特定された色により、当該エッジに囲まれる領域を順次塗っていくことで（エッジ領域に色を当てはめることで）、ラスタ画像を得ることができる。バンド単位の中間データを受信し、バンド単位のラスタ画像生成処理を繰り返すことにより、１ページのラスタ画像を生成することができる。ここで、ラスタ画像生成部１５４に含まれるメモリ中に格納された塗り情報６０２は、対象スキャンラインのラスタ画像の生成が終了するまでメモリ中に保持される。
【００６９】
本実施形態では、中間データのサイズが大きくなる場合、中間データを生成する際に、エッジ情報は、バンド単位とするのに対し、塗り情報は、ページ単位とする。これにより、中間データの１ページ当たりのデータ量を削減することができる。
【００７０】
また、バンド単位で生成した中間データはラスタ画像生成部１５４に送信する。これにより、送信済みの情報は、中間データ生成部１５２のメモリから削除することができ、中間データを保存するためのメモリを削減することができる。すなわち、生成した中間データを保存するためのメモリ領域のサイズを抑えることができる。
【００７１】
また、本実施形態では、バンド単位で中間データをラスタ画像生成部１５４に送信することにより、ページ単位で中間データをラスタ画像生成部１５４に送信する場合と比較して、ラスタ画像生成部１５４は、ラスタ画像生成処理の開始を早く始めることができる。また、例えば、大判サイズの画像のように、メモリを多く要するラスタ画像生成処理も、ラスタ画像生成部１５４の受信した中間データを保存するためのメモリ領域のサイズを抑えることができる。
【００７２】
（実施形態２）
実施形態１では、中間データは、印刷設定情報に基づいて決定したが、本実施形態では、中間データの生成処理を動的に決定する。なお、実施形態１と重複する説明は省略する。また、実施形態１と同一のものには同一の符号を付す。
【００７３】
図９は、中間データ生成の処理単位を動的に決定する本実施形態のフローである。図９のフローチャートは、ＣＰＵ１０１が、ＲＯＭ１０３に格納されている画像処理プログラムをＲＡＭ１０２にロードし、それを実行することにより行われる。
【００７４】
中間データ格納部２０３の制御部２０４は、Ｓ８０１でＤＬ生成部２０１が生成したディスプレイリスト２０２の情報を読み込む。
【００７５】
次に、Ｓ８０２で、制御部２０４は、Ｓ８０１で読み込んだディスプレイリスト２０２の情報から中間データの生成単位を決定する。まず、ディスプレイリスト２０２の情報に基づいて中間データのサイズが大きくなるか判定する。すなわち、ディスプレイリスト２０２の情報に基づいて中間データのサイズが大きくなるか予想する。そして、中間データのサイズが大きくなると判定した場合は、バンド単位と決定し、それ以外はページ単位と決定する。Ｓ８０２で参照するディスプレイリスト情報は、ページ毎のオブジェクト（グラフィックス、テキスト、画像オブジェクト等）の総数、画像オブジェクト数、画像オブジェクトの総面積等とする。オブジェクト総数が多いとページ全体の中間データサイズは大きくなる。そこで、本実施形態では、オブジェクト総数が１００００個以上ある場合は、バンド単位の中間データ生成と決定する。また、画像オブジェクト数が大きい場合、画像オブジェクトの総面積が大きい場合のいずれも、塗り情報が大きくなり、ページ全体の中間データサイズは大きくなる傾向がある。そこで、本実施形態では、画像オブジェクトが１０００以上の場合は、バンド単位の中間データ生成と決定し、また、全ての画像オブジェクトのピクセル数が８Ｍ以上である場合は、バンド単位の中間データ生成と決定する。本実施形態では、オブジェクト総数がオブジェクト閾値以上（１００００個以上）、画像オブジェクト数が画像オブジェクト閾値以上（１０００以上）、画像オブジェクトの総面積が閾値以上（８Ｍピクセル以上）のいずれかを満たすか判定する。これらの条件のうち１以上を満たす場合は、バンド単位の中間データ生成に決定し、いずれの条件も満たさない場合は、ページ単位の中間データ生成と決定する。なお、本実施形態では、３つの条件を満たすか否かを判定したが、これに限定されず、これらのうちいずれか１つ又は２つの条件を満たすか判定してもよいし、他の条件で判定してもよい。
【００７６】
そして、Ｓ８０３では、ページ単位の生成と決定したか、バンド単位の生成と決定したかを判定する。ページ単位の中間データ生成と判定された場合は（Ｓ８０３でＹｅｓ）、Ｓ８０４でページ単位の中間データ生成を行う。バンド単位の中間データ生成処理と判定された場合は、Ｓ８０５へ進む。
【００７７】
Ｓ８０５では、中間データの生成単位、すなわち、バンド幅を決定する。このとき、エッジ情報６０１及び塗り情報６０２の生成単位も決定する。具体的には、Ｓ８０２で参照したＤＬ情報に基づいて、中間データの処理単位を決める。本実施形態では、中間データのバンド幅がエッジ情報６０１の生成単位とする。一方で、塗り情報６０２の生成単位は、中間データのバンド幅より大きくする。例えば、オブジェクト総数が１００００以上で２００００以下の場合は、エッジ情報６０１の処理単位は１０２４スキャンライン単位とし、塗り情報６０２の処理単位はページ単位とする。オブジェクト数が２００００以上で４００００より小さい場合は、エッジ情報６０１の処理単位は５１２スキャンライン単位とし、塗り情報６０２の処理単位は３６００スキャンライン単位とする。ここでは、オブジェクト総数を例に挙げて説明したが、画像オブジェクト数、画像オブジェクトの総面積に応じて、同様に、エッジ情報６０１の処理単位と塗り情報６０２の処理単位を決定する。
【００７８】
Ｓ８０５で処理のバンド幅が決定されると、Ｓ８０６では、バンド中間データ生成処理を実行する。
【００７９】
図１１は、バンド単位の中間データ生成を行うフローチャートである。Ｓ１００１で、中間データ格納部２０３の制御部２０４が対象スキャンラインを決定する。なお、対象スキャンラインの決定方法は、Ｓ９０１と同様である。そして、対象スキャンラインを読み込むと、Ｓ１００２で、対象スキャンラインは、塗り情報６０２の生成対象かを判断する。対象スキャンラインは塗り情報の生成対象でないと判断された場合（Ｓ１００２でＮＯ）、Ｓ１００４へ進む。対象スキャンラインは塗り情報の生成対象であると判断された場合（Ｓ１００２でＹｅｓ）、Ｓ１００３で、ホストコンピュータ１００のメモリ上に塗り情報６０２の領域を確保する。確保する領域のサイズは、固定のサイズであってもよいし、出力ページサイズに比例したサイズ等のように可変のサイズであってもよい。
【００８０】
Ｓ１００４では、タイル単位で、すなわち、処理対象のタイルのディスプレイリスト２０２の読み込みを行う。次に、Ｓ１００５で、エッジ情報生成部２０６は、処理対象のタイル分のエッジ情報６０１の生成処理を行う。Ｓ１００６で、塗り情報生成部２０５は、処理対象のタイル分のエッジ情報６０１に対応する塗り情報をＳ１００３で確保した領域に追加する追加処理を実行する。
【００８１】
Ｓ１００７で、対象スキャンライン処理が終了したか判定する。ここでは、対象スキャンラインが５１２ラインなので、５１２に達しているか判定する。対象スキャンライン数（５１２ライン）に達していない場合、すなわち、対象スキャンライン処理が終了していないと判定した場合（Ｓ１００７でＮｏ）、Ｓ１００４に戻って処理を繰り返す。対象スキャンライン数（５１２ライン）に達している場合、すなわち、対象スキャンライン処理が終了したと判定した場合（Ｓ１００７でＹｅｓ）、Ｓ１００８でページの最終スキャンラインか判定する。ページの最終スキャンラインであると判定した場合（Ｓ１００８でＹｅｓ）、処理を終了し、最終スキャンラインではないと判定した場合（Ｓ１００８でＮｏ）、Ｓ１００２に戻って処理を繰り返す。
【００８２】
なお、本実施形態では、塗り情報の生成単位を固定（ページ単位）としたが、これに限定されず、可変としてもよい。この場合は、Ｓ１００２において、塗り情報６０２の現在のサイズを確認して、確保したサイズに近付いているならば、生成単位を変更すると判断する。すなわち、生成単位により生成される塗り情報が、メモリに確保しているサイズより大きくなる可能性があるため、現在の生成単位よりも小さい生成単位で塗り情報を作成すると判定する。つまり塗り情報６０２のサイズに応じて、分割して生成すればよい。これにより、１ページの中間データ生成処理がなされる。複数ページのドキュメメントの場合は、このフローをページ分繰り返し実行される。
【００８３】
本実施形態では、中間データ生成部１５２は、中間データを生成する毎に、ラスタ画像生成部１５４に中間データを送信する。すなわち、バンド単位で中間データを生成している場合は、バンド単位で中間データを送信していく。したがって、ページ全体の中間データが生成される前に、少なくとも１バンド目の中間データは、ラスタ画像生成部１５４に送信される。また、中間データ生成部１５２は、中間データをラスタ画像生成部１５４に送信する度に、メモリから中間データを削除する。
【００８４】
なお、ラスタ画像生成部１５４の動作については、実施形態１と同様であるため、説明を省略する。
【００８５】
本実施形態では、中間データのサイズが大きくなる場合、中間データを生成する際に、エッジ情報は、バンド単位とするのに対し、塗り情報は、ページ単位とする。これにより、中間データの１ページ当たりのデータ量を削減することができる。
【００８６】
また、バンド単位で生成した中間データはラスタ画像生成部１５４に送信する。これにより、送信済みの情報は、中間データ生成部１５２のメモリから削除することができ、中間データを保存するためのメモリを削減することができる。すなわち、生成した中間データを保存するためのメモリ領域のサイズを抑えることができる。
【００８７】
また、本実施形態では、バンド単位で中間データをラスタ画像生成部１５４に送信することにより、ペー単位で中間データをラスタ画像生成部１５４に送信する場合と比較して、ラスタ画像生成部１５４は、ラスタ画像生成処理の開始を早く始めることができる。また、例えば、大判サイズの画像のように、メモリを多く要するラスタ画像生成処理も、ラスタ画像生成部１５４の受信した中間データを保存するためのメモリ領域のサイズを抑えることができる。
【００８８】
なお、図２（ｂ）のように、１つの画像処理装置が、中間データ生成部１５２及びラスタ画像生成部１５４を有する場合は、生成した中間データを保存するメモリは１つであってもよいが、同様に、メモリ領域のサイズを抑えることができる。
【００８９】
（実施形態３）
本実施形態では、ラスタ画像生成処理部が複数存在し、ラスタ画像生成の並列処理を実行できるものとする。図１２は、本実施形態の画像処理システムの構成を示すブロック図である。本実施形態に係る画像処理システムは、ＰＤＬインタプリタ１１０１と、中間データ生成部１１０２と、３つのラスタ画像生成処理部１１０６、１１０７、１１０８とを有する。各ラスタ画像生成処理部は、図示しないがそれぞれ中間データを格納するメモリを有しており、それぞれ処理対象の中間データを独立して保持することにより、共有のメモリにアクセスすることなくラスタ画像生成処理をすることができる。なお、各ラスタ画像生成部の構成は、処理対象の中間データが異なる以外は、実施形態１のラスタ画像生成部１５４と同様である。
【００９０】
本実施形態では、例えば、１ページのラスタ画像生成を複数のラスタ画像生成処理部で実行する。ここで、各画像生成処理部の処理対象は、それぞれページの異なる領域とする。本実施形態では、１ページの中間データを３つの中間データに分割し、それぞれの中間データは、異なる画像生成処理部において処理される。したがって、エッジ情報６０１及び塗り情報６０２、画像データ６０３は、３つ以上に分ける。図８のＳ７０２の中間データの生成単位の決定において、処理単位は並列数に応じた値とする。例えば、３つの画像生成処理部で処理を実行、すなわち、並列数が３であり、Ａ４ページを処理する場合は、１頁の７０１４スキャンラインを並列数で割った２３３８スキャンライン毎に中間データを生成する。なお、中間データの生成単位は、これに限定されず、並列数の整数倍で割ったものとしてもよい。例えば、Ｓ７０２と同様に、印刷設定情報に基づいて中間データのサイズが大きくなるか判定し、大きくなると判定した場合は、並列数の２倍、３倍、・・・等に決定すればよい。また、例えば、各ラスタ画像生成部に対応するメモリ容量に応じて、中間データのサイズを決定してもよい。その後は、Ｓ７０５と同様の方法により、エッジ情報及び塗り情報の処理単位を決定してもよいし、エッジ情報及び塗り情報の処理単位は、中間データの生成処理単位と同じとしてもよい。
【００９１】
分割して生成された中間データは、それぞれのラスタ画像生成処理部において対象スキャンライン毎にラスタ画像生成処理を実行する。各ラスタ画像生成処理部は、生成したラスタ画像を対応するページメモリに書き出すことにより、ページ分のラスタ画像生成が生成される。なお、複数のラスタ画像生成部は、１つの装置が備えていてもよいし、複数の装置がそれぞれ１以上のラスタ画像生成部を備えていてもよい。
【００９２】
本実施形態では、複数のラスタ画像生成処理部に同じ単位の中間データを割当てて処理をさせるものとしたが、これに限定されず、ラスタ画像生成処理部毎に異なる単位の中間データを割当てて処理をさせるようにしてもよい。例えば、画像処理システムが、ソフトウェアからなるラスタ画像生成処理部とハードウェアからなるラスタ画像生成処理部とを有する場合等のように、ラスタ画像生成処理部毎に処理性能が異なる場合がある。この場合は、中間データの分割する単位は、ラスタ画像生成処理部の能力に応じて変更さればよい。例えば、ハードウェア（ＨＷ）のラスタ画像生成処理部の処理速度が、ソフトウェア（ＳＷ）のラスタ画像生成処理部の処理速度の２倍の場合、同じ時間で、ＨＷからなるラスタ画像生成処理部は、より多くの中間データを処理することができる。具体的には、中間データの塗り情報６０２は、ＨＷからなるラスタ画像生成処理部は、ＳＷからなるラスタ画像生成処理部の２倍のスキャンライン数のバンド中間データを処理することができる。したがって、塗り情報６０２の処理単位も２倍とすることができる。
【００９３】
本実施形態では、ラスタ画像生成処理部毎に、異なる領域の中間データを割当てることにより、共有のメモリアクセスを発生させることなく高速なラスタ形成処理が可能となる。
【００９４】
（他の実施形態）
本発明は上述した実施形態に限定されるものではない。例えば、実施形態１において、実施形態２の図１１に示すフローチャートにより、バンド中間データを生成してもよい。また、実施形態２において、実施形態１の図１０に示すフローチャートにより、バンド中間データを生成してもよい。
【００９５】
また、上述した実施形態では、生成される中間データが大きい場合、中間データの生成単位をバンド単位とし、生成される中間データが大きくない場合は、中間データの生成単位をページ単位としたが、これに限定されるものではない。すなわち、生成される中間データのサイズに関わらず、中間データの生成単位をバンド単位としてもよい。この場合も、中間データの生成単位よりも、塗り情報の生成単位を大きくする。
【００９６】
また、上述した実施形態は、以下の処理を実行することによっても実現される。すなわち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。また、プログラムは、１つのコンピュータで実行させても、複数のコンピュータを連動させて実行させるようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、処理の一部または全部をＡＳＩＣ等のハードウェアで実現するようにしてもよい。また、ＣＰＵも１つのＣＰＵで全ての処理を行うものに限らず、複数のＣＰＵが適宜連携をしながら処理を行うものとしてもよい。
【符号の説明】
【００９７】
１００  ホストコンピュータ
１２０  プリンタ
１５１  ＰＤＬインタプリタ
１５２  中間データ生成部
１５４  ラスタ画像生成部
２０１  ＤＬ生成部
２０３  中間データ格納部
２０７  圧縮部
【図１】
2017189968.tif 000003
【図２】
2017189968.tif 000004
【図３】
2017189968.tif 000005
【図４】
2017189968.tif 000006
【図５】
2017189968.tif 000007
【図６】
2017189968.tif 000008
【図７】
2017189968.tif 000009
【図８】
2017189968.tif 000010
【図９】
2017189968.tif 000011
【図１０】
2017189968.tif 000012
【図１１】
2017189968.tif 000013
【図１２】
2017189968.tif 000014