(57)【要約】【課題】  メモリに画像を描画する際の、画像全体の描画完了までの所要時間を短縮できるようにする。【解決手段】  画像処理装置が、画像の描画範囲を分割した複数のサブバンドを設定し（Ｓ１７）、メモリを初期化するか、または圧縮した画像データを伸長して、上記メモリ上に上記サブバンドの画像データを格納した領域を準備し（Ｓ１８，Ｓ２０）、準備した領域に、入力されたデータに基づきサブバンドの画像を描画する（Ｓ２１）。このとき、描画を、上記領域の準備が完了したサブバンドについて、次のサブバンドについての上記領域の準備と並行して行う。【選択図】        図３
2015174434.tif 000002
【特許請求の範囲】
【請求項１】
画像の描画範囲を分割した複数のサブバンドを設定する設定手段と、
メモリを初期化するか、または圧縮した画像データを伸長して、前記メモリ上に前記サブバンドの画像データを格納した領域を準備する描画準備手段と、
前記描画準備手段が準備した領域に、入力されたデータに基づき対応するサブバンドの画像を描画する描画手段とを備え、
前記描画手段は、前記描画準備手段による前記領域の準備が完了したサブバンドについて、前記描画準備手段による次のサブバンドについての前記領域の準備と並行して、前記描画を行うことを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記設定手段は、前記描画手段による画像の描画に要する時間に基づき、設定するサブバンドのサイズを決定することを特徴とする画像処理装置。
【請求項３】
請求項１又は２に記載の画像処理装置であって、
前記設定手段は、前記メモリの空き容量に基づき、設定するサブバンドのサイズを決定することを特徴とする画像処理装置。
【請求項４】
請求項１乃至３のいずれか一項に記載の画像処理装置であって、
前記設定手段は、所定時間内に確保できた連続するメモリ領域のサイズに応じてサブバンドのサイズを決定することを特徴とする画像処理装置。
【請求項５】
請求項１乃至４のいずれか一項に記載の画像処理装置であって、
前記描画準備手段は、圧縮した画像データを伸長して前記サブバンドの画像データを格納した領域を準備する場合には、既に前記設定手段により設定されているサブバンド毎に、領域の準備を行うことを特徴とする画像処理装置。
【請求項６】
請求項１乃至５のいずれか一項に記載の画像処理装置と、
前記描画手段が描画した１ページ分の画像の画像データに基づき用紙に画像を形成する画像形成手段とを備えた画像形成装置。
【請求項７】
画像の描画範囲を分割した複数のサブバンドを設定する設定手順と、
メモリを初期化するか、または圧縮した画像データを伸長して、前記メモリ上に前記サブバンドの画像データを格納した領域を準備する描画準備手順と、
前記描画準備手順で準備した領域に、入力されたデータに基づき対応するサブバンドの画像を描画する描画手順とを備え、
前記描画手順では、前記描画準備手順による前記領域の準備が完了したサブバンドについて、前記描画準備手順による次のサブバンドについての前記領域の準備と並行して、前記描画を行うことを特徴とする画像処理方法。
【請求項８】
コンピュータを請求項１に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像処理装置、画像形成装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
画像メモリに画像を描画する場合において、画像メモリに画像全体を格納するための十分な領域が確保できない場合に、画像を短冊状のバンドに区切り、バンド毎に描画処理を行うことにより、一度に必要な画像メモリの最大値を抑える技術が知られている。
例えば、特許文献１には、描画や圧縮の高速化を図るために、プリンタアプリケーションが決定したバンドサイズと別に、メモリ利用効率から判断したバンドサイズを採用することが記載されている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ところで、画像をバンドに区切って描画する場合、画像データが占めるメモリ容量を低減するため、描画が完了したバンドの画像データを、圧縮してメモリの別の領域やＨＤＤ（ハードディスクドライブ）等の別の記憶手段に退避させることが考えられる。この場合、再度同じバンドについて描画する必要が生じた場合、退避させた画像データを伸長して画像メモリに格納し、描画可能な状態にしてから描画を行うことになる。このため、伸長処理を行っている間、描画処理は待機することになり、その分だけ画像全体の描画完了までの所要時間が延びてしまうという問題があった。
【０００４】
また、あるバンドの画像を初めに描画しようとする場合も、上記伸長処理に代えて、バンドの画像データを格納できるだけのメモリ領域を初期化して画像データを書き込み可能とする初期化処理が必要となる。このため、初期化処理を行っている間、描画処理は待機することになり、同様に描画完了までの所要時間が延びてしまうという問題があった。
特許文献１に記載の発明においても、これらの問題に対する特段の解決手段は開示されていない。
【０００５】
この発明は、このような問題を解決し、メモリに画像を描画する際の、画像全体の描画完了までの所要時間を短縮できるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
以上の目的を達成するため、この発明は、画像処理装置において、画像の描画範囲を分割した複数のサブバンドを設定する設定手段と、メモリを初期化するか、または圧縮した画像データを伸長して、上記メモリ上に上記サブバンドの画像データを格納した領域を準備する描画準備手段と、上記描画準備手段が準備した領域に、入力されたデータに基づき対応するサブバンドの画像を描画する描画手段とを設け、上記描画手段が、上記描画準備手段による上記領域の準備が完了したサブバンドについて、上記描画準備手段による次のサブバンドについての上記領域の準備と並行して、上記描画を行うようにしたものである。
【発明の効果】
【０００７】
上記構成によれば、メモリに画像を描画する際の、画像全体の描画完了までの所要時間を短縮できるようにすることができる。
【図面の簡単な説明】
【０００８】
【図１】この発明の画像処理装置及び画像形成装置の一実施形態である画像形成装置のハードウェア構成を示す図である。
【図２】図１に示した画像形成装置が備える、画像の描画に関する機能の構成を示す図である。
【図３】図１に示した画像形成装置のＣＰＵが、ＰＤＬデータに基づき画像を描画する際に実行する処理のフローチャートである。
【図４】図３に示した描画処理のフローチャートである。
【図５】１ページ分の画像の例を示す図である。
【図６】図５の画像を記述するＰＤＬデータから生成した中間データの例を示す図である。
【図７】図１に示した画像形成装置及び比較例における、各バンドに関する処理のタイミング例を示す図である。
【図８】画像の描画に要する時間に基づきサブバンドのサイズを決定する場合の、各バンドに関する処理のタイミング例を示す図である。
【図９】メモリの空き容量に基づきサブバンドのサイズを決定する場合の、各バンドに関する処理のタイミング例を示す図である。
【図１０】カラー画像形成に用いる画像の描画処理を行う場合の処理のタイミング例を示す図である。
【発明を実施するための形態】
【０００９】
以下、この発明を実施するための形態について、具体的に説明する。
まず、図１に、この発明の画像処理装置及び画像形成装置の一実施形態である画像形成装置のハードウェア構成を示す。
図１に示す画像形成装置１０は、コントローラ１００と、エンジン部１１０と、操作パネル１２０とを備える。また、コントローラ１００は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、ＮＶＲＡＭ（Non-Volatile  RAM）１０４、ネットワークＩ／Ｆ（インタフェース）１０５、エンジンＩ／Ｆ１０６、パネルＩ／Ｆ１０７、圧縮伸長器１０８を備え、それらをシステムバス１０９により接続した構成としている。エンジン部１１０はエンジンＩ／Ｆ１０６に接続され、操作パネル１２０はパネルＩ／Ｆ１０７に接続される。
【００１０】
そして、ＣＰＵ１０１が、ＲＡＭ１０３をワークエリアとしてＲＯＭ１０２又はＮＶＲＡＭ１０４に記憶されたプログラムを実行することにより、画像形成装置１０全体を制御し、図２を用いて後述するものをはじめとする種々の機能を実現する。例えば、画像を複数のバンド及びサブバンドに分割してサブバンド毎に画像メモリに描画を行う機能である。
【００１１】
ＲＡＭ１０３は、一時的に使用する種々のデータを記憶するための記憶手段であり、画像を描画するための画像メモリも、ＲＡＭ１０３に設ける。
ＮＶＲＡＭ１０４は、不揮発性記憶媒体（記憶手段）であり、ＣＰＵ１０１が実行する各種プログラムや後述する各種データを格納している。描画の完了したバンドの画像データの退避先としても用いる。
【００１２】
ネットワークＩ／Ｆ１０５は、ＬＡＮ（ローカルエリアネットワーク）等のネットワークを介して、画像形成装置１０に画像形成の指示を行うホスト装置等の外部装置と通信するためのインタフェースである。
エンジンＩ／Ｆ１０６は、エンジン部１１０をシステムバス１０９に接続してＣＰＵ１０１から制御可能とするためのインタフェースである。
【００１３】
パネルＩ／Ｆ１０７は、操作パネル１２０をシステムバス１０９に接続してＣＰＵ１０１から制御可能とするためのインタフェースである。
圧縮伸長器１０８は、ＣＰＵ１０１による制御に従い、画像メモリに描画された画像データを圧縮したり、圧縮済みの画像データを伸長して画像メモリに記憶させたりする機能を備える。また、ＲＡＭ１０３の記憶領域を初期化して画像メモリとして使えるように確保する機能も備える。
【００１４】
エンジン部１１０は、用紙に画像を形成するための画像形成部、画像形成に供する用紙を載置し給紙する給紙部、用紙を搬送する搬送部など、通信及び情報処理以外の各種動作を行うための機構である。
操作パネル１２０は、ユーザに情報を提示するための表示手段と、ユーザから操作を受け付けるための操作手段とを備える。表示手段としては、液晶ディスプレイやランプ等を用いることができる。操作手段としては、キー、ボタン、タッチパネル等を用いることができる。
【００１５】
以上の画像形成装置１０は、例えばデジタル複合機（ＭＦＰ）やプリンタであり、ホスト装置からの画像形成要求に基づき、用紙に画像を形成することができる。形成すべき画像の情報は、ホスト装置から記述言語（ＰＤＬ）のデータとして渡される。画像形成装置１０は、このデータに基づき画像メモリに画像を描画して、エンジン部１１０を制御するための画像データを生成する。
【００１６】
次に、図２に、画像形成装置１０が備える、画像の描画に関する機能の構成を示す。これらの各部の機能は、ＣＰＵ１０１が所要のプログラムを実行することにより図１に示した各種ハードウェアを制御することにより実現されるものである。
図２に示すように、画像形成装置１０は、ＰＤＬデータ解析部１３１、中間データ保存部１３２、中間データメモリ１３３、描画部１３４、バンドメモリ制御部１３５、バンドメモリ１３６及びプリンタエンジン１３７の機能を備える。
【００１７】
これらのうちＰＤＬデータ解析部１３１は、形成すべき画像の情報として受け取ったＰＤＬにより記述されたデータ（ＰＤＬデータ）の言語解析を行い、ＰＤＬデータに含まれるコマンドを抽出する機能を備える。
中間データ保存部１３２は、ＰＤＬデータ解析部１３１が抽出したコマンドに基づき中間データとなるDisplayListを作成し、中間データメモリ１３３に格納する機能を備える。
中間データメモリ１３３は、ＲＡＭ１０３内に設けられた記憶領域であり、中間データ保存部１３２が作成した中間データを記憶する機能を備える。
【００１８】
描画部１３４は、中間データメモリ１３３から中間データを読み出し、その中間データに従ってバンドメモリ１３６に画像を描画する描画手段の機能を備える。また、この描画に先立って、バンドメモリ制御部１３５に、バンドメモリ１３６を準備するよう指示する機能も備える。なお、描画部１３４は、１ページ分の画像のうち一度に描画処理を行うバンドのサイズを決定し、バンドメモリ制御部１３５に、そのバンドの画像データが格納できるだけのバンドメモリ１３６の準備を指示する。また、描画部１３４は、バンドメモリ制御部１３５からバンドメモリ１３６を準備した旨の応答があってから行う。さらに、描画部１３４は、バンドメモリ１３６への描画が完了すると、バンドメモリ制御部１３５に対し、そのバンドメモリの画像を退避させるよう指示する機能も備える。
【００１９】
バンドメモリ制御部１３５は、描画部１３４からの指示に基づき、ＲＡＭ１０３内にバンドメモリ１３６の領域を準備する描画準備手段の機能を備える。ただし、バンドメモリ制御部１３５は、必ずしも描画部１３４から指示されたサイズのバンドメモリ１３６を準備するわけではない。バンドメモリ制御部１３５は、ＲＡＭ１０３の断片化情況や空き状況を考慮して、実際に準備するバンドメモリ１３６のサイズを決定し、そのサイズ分の準備ができると、描画部１３４に対し、確保できたサイズと共に準備完了を応答する。また、その後も、合計で描画部１３４から指示されたサイズ分のバンドメモリ１３６が準備できるまで、準備を続ける。この、バンドメモリ１３６のサイズを決定する機能は、分割手段の機能に該当するが、この点については後に詳述する。
【００２０】
なお、バンドメモリ１３６の準備は、まだ画像データの描画を行っていないバンドについては、ＲＡＭ１０３内の必要なサイズのメモリ領域を初期化（ゼロクリア）することにより行う。このことにより、まだ何も描画されていない状態の画像データを格納したバンドメモリ１３６を準備することができる。既に画像データの描画を行ったバンドについては、ＲＡＭ１０３内に必要なサイズのメモリ領域を確保すると共に、圧縮してＮＶＲＡＭ１０４に退避させてある画像データを伸長してそのメモリ領域に格納することにより行う。このことにより、前回までの描画内容を反映した画像データを格納したバンドメモリ１３６を準備することができる。
【００２１】
また、バンドメモリ制御部１３５は、描画部１３４からの指示に基づき、描画の完了したバンドメモリ１３６の画像データを圧縮してＮＶＲＡＭ１０４に退避させる機能も備える。再描画を考慮すると、画像をバンドに分割して描画を行っても、結局は１ページ分の画像データを同時に記憶できるだけの領域を確保しなければならない。しかし、描画の完了したバンドのデータを圧縮して退避させれば、その退避させた分だけ、同時に必要となるメモリ容量を低減することができる。
【００２２】
バンドメモリ１３６は、ＲＡＭ１０３内に設けられた記憶領域であり、１つのサブバンド（後述）分の画像データを記憶する機能を備える。
プリンタエンジン１３７は、描画が完了した１ページ分の画像データを入力し、その画像データに従って用紙に画像を形成する画像形成手段の機能を備える。
【００２３】
次に、図３に、画像形成装置１０のＣＰＵ１０１がＰＤＬデータに基づき画像を描画する際に実行する処理のフローチャートを示す。
ＣＰＵ１０１は、ホスト装置からの受信等によりＰＤＬデータを取得し、このＰＤＬデータに基づき用紙に画像を形成すべきと判断した場合、初めの１ページ（用紙の１面）分のＰＤＬデータを処理対象として、図３の処理を開始する。次のページがあれば、図３の処理により描画を行ったページの画像データをプリンタエンジン１３７に入力して画像形成を開始させた後で、次のページのＰＤＬデータを処理対象として再度図３の処理を開始する。
【００２４】
図３の処理において、ＣＰＵ１０１はまず、処理対象のＰＤＬデータを解析して未処理のコマンドを抽出する。１つずつでも、複数でもよい（Ｓ１１）。この処理は、ＰＤＬデータ解析部１３１の機能と対応する。
次に、ＣＰＵ１０１は、ステップＳ１１で抽出したコマンドに基づき、中間データを生成して中間データメモリ１３３に格納する（Ｓ１２）。この処理は、中間データ保存部１３２の機能と対応する。
【００２５】
次に、ＣＰＵ１０１は、処理対象のＰＤＬデータに含まれる全てのコマンドに係る処理を完了したか否か判断する（Ｓ１３）。そして、完了していない場合、中間データメモリ１３３の容量がフル（満杯）になったか否か判断する（Ｓ１４）。ここでもＮｏであれば、ステップＳ１１に戻って処理を繰り返す。
【００２６】
ステップＳ１３またはステップＳ１４でＹｅｓの場合、すなわち全てのコマンドの係る処理が完了するか中間データメモリ１３３の容量がフルになると、それまでに生成した中間データに係る描画を行うべく、処理はステップＳ１５以下に進む。
なお、処理対象のＰＤＬデータに含まれるコマンドに基づく中間データを全て中間データメモリ１３３に格納できた場合（Ｓ１３でＹｅｓ）、ステップＳ１５以下の処理を行うのは１回だけである。すなわち、必要なバンドを１回ずつ処理対象とするのみで１ページ分の画像の描画が完了する。しかし、中間データメモリ１３３が途中で満杯になった場合（Ｓ１４でＹｅｓ）、それまでに作成した中間データに係る描画が終わった後で、必要なバンドを処理対象として続きの中間データによる描画を再度行うことになる。
そして、ＣＰＵ１０１は、中間データメモリ中の中間データの描画先となるバンドのうち未処理のバンドを１つ処理対象とする（Ｓ１５）。このバンドのサイズは、描画部１３４が決定するものである。
【００２７】
ここで、図５及び図６を用いて、中間データとバンドの関係について説明する。
図５は、１ページ分の画像の例であり、ページ内にＸ〜Ｚの３つの描画オブジェクトが配置された例である。
図６は、図５の画像を記述するＰＤＬデータから生成した中間データの例である。この例では、描画オブジェクトＸの描画を指示するコマンドＸと、描画オブジェクトＹの描画を指示するコマンドＹとを中間データメモリ１３３に格納した時点で中間データメモリがフルになったとする。そして、ここまでの中間データを、（ａ）に示す１組の中間データDisplayList1とし、まず各バンドにこのDisplayList1に基づく描画を行う。残りの描画オブジェクトＺの描画を指示するコマンドＺは、（ｂ）に示す別の１組の中間データDisplayList2とし、DisplayList1に基づく描画を行った後の各バンドに、このDisplayList2に基づく描画を行う。
【００２８】
一方、描画部１３４は、１ページ分の画像を示す画像データを、予め定めた分割数、ライン数等に従い、複数のバンドに分割して処理する（分割数が１であれば１ページ分の画像データ全体が１つのバンドとなる）。図５では３つのバンドに分割した例を示している。
ここで、１組の中間データを用いた描画処理を行う場合を考える。この場合、まず、中間データに従い描画すべき描画オブジェクトが、どのバンドに配置されるかを調べる。図６（ａ）のDisplayList1を用いる場合、描画オブジェクトＸと描画オブジェクトＹとを描画するため、第１バンド〜第３バンドの全てに描画オブジェクトが配置されることになる。従って、第１バンド〜第３バンドの全てについて描画処理を行うべきことがわかる。一方、図６（ｂ）のDisplayList2を用いる場合、描画オブジェクトＺを描画するため、第２バンドにのみ描画オブジェクトが配置されることになる。従って、第２バンドのみについて描画処理を行うべきことがわかる。
【００２９】
図３のステップＳ１５における「描画先となるバンド」は、このように、中間データに従い描画すべき描画オブジェクトが配置されるバンドのことである。
図３の説明に戻ると、ステップＳ１５で１つのバンドを処理対象とした後、ＣＰＵ１０１は、そのバンドを処理対象とするのは現在のページの描画において１回目であるか（既にそのバンドに関する描画を行っていないか）否か判断する（Ｓ１６）。
【００３０】
ここでＹｅｓであれば、処理対象のバンドの画像データを格納するバンドメモリを新たに準備すべきことがわかる。そこで、ＣＰＵ１０１はまず、処理対象のバンド中に今回設定するサブバンドのサイズを決定する（Ｓ１７）。サブバンドのサイズは、バンドを等分割する、バンドを所定サイズずつに分割する、画像の描画に要する時間に基づき定める、メモリの空き容量に基づき定める、等の、予め定めた適当なアルゴリズムに従って決定すればよい。なお、ステップＳ１７の段階ではサイズを確定させず、所定時間内に確保できた連続するメモリ領域のサイズに応じてサブバンドのサイズを決定する、といったアルゴリズムも採用可能である。
【００３１】
いずれにせよ、サブバンドは、バンドを分割する形で設け、複数のバンドをまたぐサブバンドは設定しないようにする。従って、処理対象のバンドのうち、まだサブバンドを設定していない領域が上記アルゴリズムに基づき決定したサイズより小さい場合は、まだサブバンドを設定していない領域全体を１つのサブバンドとする。
【００３２】
次に、ＣＰＵ１０１は、圧縮伸長器１０８にＲＡＭ１０３中の必要な領域を初期化させ、ステップＳ１７で決定したサイズのサブバンドの画像データを格納するバンドメモリ１３６を確保する（Ｓ１８）。ＣＰＵ１０１は、圧縮伸長器１０８が必要サイズを初期化できるまで待機する（Ｓ１９）。必要サイズを確保できると、今回設定し処理対象となるサブバンドの画像データの初期値を格納した領域を準備できたことになるので、ステップＳ２１に進む。そして、ＣＰＵ１０１は、確保したバンドメモリ１３６に対する描画処理を起動する（Ｓ２１）。
【００３３】
一方、ステップＳ１６でＮｏの場合、処理対象のバンドの画像データは、既に設定されたサブバンド毎に圧縮されて退避されていることがわかる。そこで、ＣＰＵ１０１は、ＲＡＭ１０３中に必要なサイズのバンドメモリ１３６を確保し、圧縮伸長器１０８に処理対象のバンド中の未処理のサブバンドのうち最初のサブバンドの圧縮済み画像データを伸長させて、その確保した領域に格納させる（Ｓ２０）。このことにより、処理対象のサブバンドの描画済みの画像データを格納した領域を準備できる。
【００３４】
なお、図示は省略したが、ＣＰＵ１０１はステップＳ２０で伸長した画像データの格納が終わるまで待機する。また、ステップＳ２０で十分なメモリ領域が確保できない場合、確保できるまで待機する。そして、ＣＰＵ１０１は次に、確保したバンドメモリ１３６に対する描画処理を起動する（Ｓ２１）。
以上のステップＳ１６乃至Ｓ２１の処理が、バンドメモリ制御部１３５の機能と対応する処理である。また、ステップＳ１７の処理が設定手順の処理であり、この処理において、ＣＰＵ１０１は設定手段として機能する。ステップＳ１８乃至Ｓ２０の処理が描画準備手順の処理であり、これらの処理において、ＣＰＵ１０１及び圧縮伸長器１０８は描画準備手段として機能する。
【００３５】
ステップＳ１９から進んだ場合もステップＳ２０から進んだ場合も、ステップＳ２１の後、起動した描画処理と並行して、図３の処理を先に進める。そして、ＣＰＵ１０１は、処理対象のバンド全体について、バンドメモリ１３６の確保及び図４の描画処理が完了したか否か判断する（Ｓ２２）。
【００３６】
そして、ステップＳ２２でＮｏであれば、ステップＳ１６に戻って処理を繰り返す。全てのサブバンドについてバンドメモリ１３６の確保が終了した後は、ステップＳ１６乃至Ｓ２２をループしつつ描画処理の完了を待つことになる。そして、ステップＳ２２でＹｅｓとなると、１バンド分の描画処理が完了したことになる。
この場合、ＣＰＵ１０１は次に、中間データの描画先となるバンドにまだ未処理のバンドがあるか否か判断する（Ｓ２３）。ステップＳ２３でＹｅｓであれば、ステップＳ１５に戻り、次のバンドを処理対象として処理を繰り返す。ステップＳ２３でＮｏであれば、今回生成した中間データに関する描画処理が完了したことになる。
【００３７】
この場合、ＣＰＵ１０１は次に、処理対象のＰＤＬデータ中の全てのコマンドの処理が完了したか否か判断する（Ｓ２４）。ステップＳ２４でＮｏであれば、ステップＳ１１に戻って処理を繰り返し、未処理のコマンドに基づき次の中間データを生成してその中間データに基づく描画を行う。ステップＳ２４でＹｅｓであれば、１ページ分のＰＤＬデータに関する描画処理が完了したことになるので、図３の処理を終了する。
ＣＰＵ１０１は以後の適当なタイミングで、図３の処理による描画で生成した１ページ分の画像データをプリンタエンジン１３７に供給し、その画像データに基づく画像を形成させる。
【００３８】
次に、図４に、図３のステップＳ２１で起動される描画処理のフローチャートを示す。この処理は、描画部１３４の機能と対応する描画手順の処理であり、この処理において、ＣＰＵ１０１は描画手段として機能する。
図４の処理において、ＣＰＵ１０１はまず、他の描画処理が実行中である場合、それが完了するまで待機する（Ｓ３１）。その後、図３のステップＳ１８又はＳ２０で確保したバンドメモリ１３６に対し、中間データメモリ１３３中の中間データに基づき画像を描画する（Ｓ３２）。バンドメモリ１３６は、１つのサブバンドの領域の画像データを格納する領域であり、描画も、その領域の画像についてのみ行う。従って、サブバンドの領域と少なくとも一部が重なる描画オブジェクトを配置するコマンドについてのみ描画処理を行えばよい。
【００３９】
ステップＳ３２の後、ＣＰＵ１０１は、描画の完了したバンドメモリ１３６に関する解放処理を起動して（Ｓ３３）、図４の処理を終了する。
この解放処理は、図示は省略するが、バンドメモリ１３６に格納されている画像データを圧縮してＮＶＲＡＭ１０４等の他の記憶領域に退避させ、バンドメモリ１３６の領域を開放する処理である。この解放処理も、図３の処理や描画処理と並行して実行可能である。また、圧縮処理は、圧縮伸長器１０８に実行させる。
【００４０】
以上の処理により、コントローラ１００は、描画部１３４に設定したバンドを、さらにサブバンドに分割して、サブバンド毎に描画処理を行うことができる。特に、サブバンドの画像データを記憶させるバンドメモリ１３６の確保と並行して、バンドメモリ１３６を確保済みのサブバンドに関する描画処理を行うことができる。そして、このことにより、１ページ分の画像データの描画に要する時間を短縮することができる。
【００４１】
以下、サブバンドのサイズ設定アルゴリズムのいくつかの具体例及び比較例を用いて、この効果について説明する。
図７乃至図１０においては、ＣＰＵ１０１が行うＰＤＬデータの言語解析及び描画（再描画も含む）の処理と、圧縮伸長器１０８が行うメモリの初期化及び画像データの伸長の処理のタイミングを、それぞれ帯で示す。図で横方向（紙面では縦方向）が時間の経過を示す。ただし、描画済み画像データの圧縮の処理は、図示を省略している（バンドメモリの準備や描画の処理と並行して行うことは上述の通り）。帯中のカギ括弧内に示した数字は、該当の帯がどのサブバンドの処理であるかを示す。[x-y]は、ｘ番目のバンド中のｙ番目のサブバンドを示す。例えば、[1-2]は、第１バンド中の第２サブバンドである。また、図中の破線矢印は、矢印の根元の処理の完了後に、矢印の先の処理を開始することを示す。
【００４２】
図７（ａ）に示すのは、各バンドを２つのサブバンドに均等に分割した場合の各バンドに関する処理のタイミングである。なお、以下に説明する図７の例において、バンド及び描画オブジェクトの配置と、生成される中間データの内容とは、図５及び図６を用いて説明したものであるとする。（ａ）の例だけでなく、（ｂ）の例においても同様である。
【００４３】
図７（ａ）に示すように、ＣＰＵ１０１は、ＰＤＬデータの言語解析処理（中間データの生成も含む、以下も同様）が完了した後、１組目の中間データDisplayList1に関する描画処理を行うべく、圧縮伸長器１０８に第１バンドのバンドメモリ１３６を準備させる。このとき、ＣＰＵ１０１は、第１バンドの前半分の領域を第１サブバンドに設定する。従って、圧縮伸長器１０８はＲＡＭ１０３の初期化によりその第１サブバンドのバンドメモリが準備できると、ＣＰＵ１０１にその旨を伝える。ＣＰＵ１０１は、これに応じて第１サブバンドの描画処理を開始する。
【００４４】
また、ＣＰＵ１０１は、続けて第１バンドの残りの領域を第２サブバンドに設定し、圧縮伸長器１０８は、第１サブバンドの描画処理と並行して第２サブバンドのバンドメモリの準備を行う。第２サブバンドのバンドメモリが準備できると、圧縮伸長器１０８はＣＰＵ１０１にその旨を伝える。その後、ＣＰＵ１０１は、第１サブバンドの描画処理が終わると、第２サブバンドの描画処理を開始する。
【００４５】
また、ＣＰＵ１０１は、第２サブバンドの描画処理が終わったタイミングで、サブバンドを設定し、圧縮伸長器１０８に、第２バンド中の各サブバンドのバンドメモリの準備を開始させる。以下、第２バンド及び第３バンドについても、第１バンドの場合と同様に、第１サブバンド分のバンドメモリが準備できた時点で、ＣＰＵ１０１が第１サブバンドの描画処理を開始し、圧縮伸長器１０８がこれと並行して第２サブバンドのバンドメモリの準備を行う。
【００４６】
図示は省略したが、ＣＰＵ１０１は、第３バンドの第２サブバンドのバンドメモリの準備が終了すると、描画処理と並行して、２組目の中間データDisplayList2の生成を行う。
そして、第３バンドの第２サブバンドの描画処理が終了すると、ＣＰＵ１０１は、次に中間データDisplayList2に関する描画処理を行うべく、必要なメモリ領域を確保して、圧縮伸長器１０８に第２バンドの第１サブバンドのバンドメモリ１３６を準備させる。DisplayList2に関する描画は、図５及び図６を用いて説明した通り、第２バンドに対してのみ行うためである。
【００４７】
これに対し、圧縮伸長器１０８は、DisplayList1に関する描画処理の際に設定されたサブバンドの区分に従い、圧縮して退避させてあった第２バンド中の第１サブバンドの画像データを伸長して、ＣＰＵ１０１が確保した領域に書き込むことにより、第１サブバンドのバンドメモリを準備する。この準備ができると、ＣＰＵ１０１にその旨を伝え、ＣＰＵ１０１はこれに応じて第１サブバンドの描画処理を開始する。この描画処理は、既に一度描画がなされた画像データに対して行うことから、再描画と記載している。
【００４８】
また、圧縮伸長器１０８は、続けて第２サブバンドのバンドメモリも同様に準備し、その準備ができると、ＣＰＵ１０１にその旨を伝える。その後、ＣＰＵ１０１は、第２サブバンドの描画処理が終わると、第２サブバンドの描画処理を開始する。
第２サブバンドの描画処理が完了すると、１ページ分の描画処理が完了となる。
【００４９】
この実施形態においては、以上のように、１バンド分のバンドメモリが準備できるのを待たず、それより少ない１サブバンド分のバンドメモリが準備できた時点でその分の描画処理を開始する。従って、ＣＰＵ１０１がバンドメモリの準備を待って待機している時間が短くて済み、１ページ分の描画処理に要する時間を短縮することができる。
【００５０】
また、描画処理を早く開始できる分、１バンド分の描画処理が完了するタイミング（次のバンドのバンドメモリの準備を開始するタイミング）を早めることができ、１バンド分のバンドメモリが準備できてから次のバンドのバンドメモリの準備を開始するまでの時間も、その分短縮することができる。
なお、２組目以降の中間データに基づく描画の際に、既に設定したサブバンドの区分に従って処理を行うのは、圧縮をサブバンドの単位で行っており、後で区分を変えることが困難であるためである。ただし、圧縮をより細かい単位で行えば、管理上の負担や処理負荷は増すが、圧縮の単位で区分を変えることも考えられる。
【００５１】
次に、図７（ｂ）に、比較例として、各バンドをサブバンドに分割しない場合の各バンドに関する処理のタイミングを示す。この図において、帯中のカギ括弧内に示した数字は、該当の帯がどのバンドの処理であるかを示す。[x]は、ｘ番目のバンド、すなわち第ｘバンドを示す。
【００５２】
図７（ｂ）の例でも、ＣＰＵ１０１は、ＰＤＬデータの言語解析処理が完了した後、１組目の中間データDisplayList1に関する描画処理を行うべく、圧縮伸長器１０８に第１バンドのバンドメモリ１３６を準備させる。このとき、圧縮伸長器１０８は、ＲＡＭ１０３の初期化により第１バンド全体のバンドメモリが準備できてから、ＣＰＵ１０１にその旨を伝え、ＣＰＵ１０１はこれに応じて第１バンドの描画処理を開始する。
また、ＣＰＵ１０１は、第１バンドの描画処理が終わったタイミングで、圧縮伸長器１０８に、第２バンドのバンドメモリの準備を開始させる。
【００５３】
以下、第２バンド及び第３バンドについても、第１バンドの場合と同様に、圧縮伸長器１０８においてバンドメモリが準備できた時点で、ＣＰＵ１０１が描画処理を開始し、その完了後に圧縮伸長器１０８が次のバンドのバンドメモリの準備を行う。
図示は省略したが、ＣＰＵ１０１は、第３バンドのバンドメモリの準備が終了すると、描画処理と並行して、２組目の中間データDisplayList2の生成を行う。
そして、第３バンドの描画処理が終了すると、ＣＰＵ１０１は、次に中間データDisplayList2に関する描画処理を行うべく、必要なメモリ領域を確保して、圧縮伸長器１０８に第２バンドのバンドメモリを準備させる。
【００５４】
これに対し、圧縮伸長器１０８は、圧縮して退避させてあった画像データを伸長してＣＰＵ１０１が確保した領域に書き込むことにより、第２バンドのバンドメモリを準備する。この準備ができると、ＣＰＵ１０１にその旨を伝え、第２バンドの描画処理を開始させる。
第２サブバンドの描画処理が完了すると、１ページ分の描画処理が完了となる。
【００５５】
この比較例においては、１バンド分のバンドメモリが準備できるのを待ってから描画処理を開始する。従って、上述の実施形態に比べ、ＣＰＵ１０１がバンドメモリの準備を待って待機している時間が長くなり、その分、１ページ分の描画処理に要する時間が長くなる。
【００５６】
また、ＣＰＵ１０１が１バンド分の描画処理を行うのに要する時間だけ、圧縮伸長器１０８は待機しているため、圧縮伸長器１０８の待機時間も長く、その分、１ページ分の描画処理に要する時間が長くなる。
従って、上述した実施形態の構成により、バンドをサブバンドに分割しない図７（ｂ）のような処理手順を採用する場合に比べ、ＣＰＵ１０１及び圧縮伸長器１０８の待機時間を短縮して、１ページ分の描画処理に要する時間を短縮することができるといえる。
【００５７】
次に、図８に、画像の描画に要する時間に基づきサブバンドのサイズを決定する場合の各バンドに関する処理のタイミングを示す。
図７（ａ）の例では、バンドを均等に分割したサブバンドを設定していたが、描画処理に時間がかかる場合、第２サブバンドのバンドメモリ準備（初期化）完了までに、第１サブバンドの描画処理を完了できない。このため、図７（ａ）の例では、第２サブバンドのバンドメモリ準備完了後に、第１サブバンドの描画処理の完了まで、圧縮伸長器１０８の待機時間が発生してしまっていた。なお、図示はしていないが、圧縮伸長器１０８は第１サブバンドの描画処理が完了すると、描画済み画像データを圧縮する処理を行うので、図に処理が表れていなくても、第１サブバンドの描画処理が完了後の期間は待機時間ではない（第２バンド中の第１サブバンドの描画処理完了後など）。
【００５８】
この点を考えると、描画に用いる中間データの内容から、均等分割ではサブバンド１つ分の描画処理にサブバンド１つ分のバンドメモリ準備処理よりも時間がかかってしまう場合、第１サブバンドを、第２サブバンドよりも狭い領域に設定するとよい。図８に示すのは、このように設定する例である。
【００５９】
図８の例では、ＣＰＵ１０１は、ＰＤＬデータの言語解析処理が完了した後、圧縮伸長器１０８に第１バンドのバンドメモリ１３６を準備させる際に、中間データの内容に基づき、第１サブバンドのサイズを決定し、圧縮伸長器１０８にそのサイズを指示する。このとき、第１サブバンドのサイズが、第２サブバンドのサイズよりも小さくなるよう決定する。圧縮伸長器１０８は、ＣＰＵ１０１から指示されたサイズで、第１サブバンドのバンドメモリを準備する。なお、図８の例において、第１バンドの第２サブバンドのサイズは、図７（ａ）と同じくバンドの半分の領域としており、第３サブバンドは、第１及び第２サブバンドを設定して残った領域に設定している。
【００６０】
この場合、ＣＰＵ１０１により第１サブバンドの描画処理は、バンドの幅が狭いため、短時間で終了する。従って、第２サブバンドのバンドメモリ準備完了までに、第１サブバンドの描画処理を終えることができるので、圧縮伸長器１０８の待機時間を低減できる。なお、描画処理がサブバンド準備処理よりも早く終わっても、圧縮伸長器１０８の待機時間とはならない。
このように、画像の描画に要する時間に基づきサブバンドのサイズを決定することにより、圧縮伸長器１０８の待機時間を低減し、１ページの描画に要する時間をさらに短縮することができる。
【００６１】
また、第２バンドについては、中間データの内容から描画処理に時間がかからないと予想されるため、図７（ａ）の場合と同じくバンドを均等に分割したサブバンドを設定している。また、分割数も２である。このように、バンド毎に、サブバンドのサイズや分割数が異なっていても、問題はない。
第３バンド以降の処理については説明を省略する。
【００６２】
次に、図９に、メモリの空き容量に基づきサブバンドのサイズを決定する場合の各バンドに関する処理のタイミングを示す。
バンドメモリを準備するＲＡＭ１０３の空き容量が少ない場合、ただちに所望のサイズのサブバンドのバンドメモリを確保できない場合がある。この場合、ＲＡＭ１０３に十分なサイズの連続した空き領域が生じるまで圧縮伸長器１０８が待機することになり、処理時間の増加につながる。そこで、メモリの空き容量に基づきサブバンドのサイズを決定し、メモリの空き容量が少ない場合にはサブバンドのサイズを小さくするとよい。
【００６３】
図９には、図７及び図８と同様な処理タイミングの他、各時点でのＲＡＭ１０３の空き容量を模式的に示している。なお、ＲＡＭ１０３の空き容量は、描画等の処理以外でも増減し得るので、図９に示した空き容量の推移は、図９に示した処理のみによるものではない。
【００６４】
図９の例では、第１バンドの第１サブバンドを設定する時点では、ＲＡＭ１０３の空き容量が十分あるため、ＣＰＵ１０１は標準のサイズ（ここではバンドの半分）で第１サブバンドを設定する。しかし、圧縮伸長器１０８における第１サブバンドのバンドメモリの準備が完了し、第２サブバンドを設定する時点では、ＲＡＭ１０３の空き容量が所定の閾値（不図示）よりも少なくなっている。従って、ＣＰＵ１０１は標準のサイズよりも小さいサイズで第２サブバンドを設定する。第３サブバンドは、第１及び第２サブバンドを設定して残った領域に設定している。
【００６５】
第１サブバンドのバンドメモリの準備が完了した時点でＣＰＵ１０１が第１サブバンドの描画処理を開始し、その後もバンドメモリの準備と前のサブバンドの描画処理が完了し次第、次のサブバンドの描画処理を開始する点は、図７（ａ）の例と同様である。
また、第１バンドの全サブバンドの描画処理が完了すると、ＣＰＵ１０１からの指示に基づき圧縮伸長器１０８が第２バンドのバンドメモリの準備を始める点も同様である。また、第２バンドについては、第１サブバンド第２サブバンド共に、準備の開始時点でＲＡＭ１０３の空き容量が十分であるため、ＣＰＵ１０１は標準のサイズ（ここではバンドの半分）でサブバンドを設定する。従って、第２バンドは、２つのサブバンドに分割されることになる。
第３バンド以降の処理については説明を省略する。
【００６６】
このように、メモリの空き容量に基づきサブバンドのサイズを決定することにより、バンドメモリの準備に要する時間を低減し、１ページの描画に要する時間をさらに短縮することができる。
【００６７】
図１０には、カラー画像形成に用いる画像の描画処理を行う場合の例を示している。
カラー画像形成の場合、画像には例えばＫＣＭＹの４色のプレーンがあり、プレーン毎に１ページ分の画像の描画を行う。しかし、プレーンや、プレーンを複数のバンドに分割したものを、ここまでに説明してきたバンドと捉え、各バンドの描画を行う際に必要に応じてサブバンドへの分割を行えば、図３に示したものと同じ処理で、１ページの描画に要する時間を低減することができる。画像の描画に要する時間やメモリの空き容量に応じてサブバンドのサイズを決定するとよいことも、ここまでの例と同様である。
図１０には、各プレーンが１つのバンドであり、Ｍのプレーンのみ２つのサブバンドに分割して処理した例を示した。
【００６８】
以上で実施形態の説明を終了するが、この発明において、各部の具体的な構成や処理の手順、取り扱うデータの構成及び形式等は、実施形態で説明したものに限るものではない。
例えば、上述した実施形態では中間データをページ単位で作成する例について説明したが、バンド単位で作成してもよい。この場合、図５の画像を表現するとすると、第１バンドについてはコマンドＸのみの中間データを、第３バンドについてはコマンドＹのみの中間データを作成することになる。第２バンドについては、コマンドＸ〜Ｚの全ての含む中間データを作成するが、ＸとＹのみで中間データメモリ１３３が満杯になるとすると、図６の場合と同様、２組の中間データを生成することになる。
【００６９】
このようにした場合、あるバンドについて中間データを生成した後、そのバンドに付いてのバンドメモリの準備と描画処理を、バンドをサブバンドに分割しつつ行う、という手順を、各バンドについて繰り返すことにより、上述した実施形態の場合と同様な効果が得られる。
【００７０】
また、上述した実施形態では、この発明を画像形成装置として実施した例について説明したが、画像形成機能を備えない画像処理装置としてこの発明を実施することも可能である。この場合において、描画した画像の用途も、画像形成には限られない。また、画像を描画する範囲も、１ページ分とは限らない。特に、画像を印刷以外の用途に用いる場合、ページとは関係なく描画範囲を定めることもあり得る。
【００７１】
また、この発明のプログラムの実施形態は、コンピュータに所要のハードウェアを制御させて上述したコントローラ１００（特に描画部１３４及びバンドメモリ制御部１３５）の機能を実現させるためのプログラムである。
このようなプログラムは、はじめからコンピュータに備えるＲＯＭや他の不揮発性記憶媒体（フラッシュメモリ，ＥＥＰＲＯＭ等）などに格納しておいてもよい。しかし、メモリカード、ＣＤ、ＤＶＤ、ブルーレイディスク等の任意の不揮発性記録媒体に記録して提供することもできる。それらの記録媒体に記録されたプログラムをコンピュータにインストールして実行させることにより、上述した各手順を実行させることができる。
【００７２】
さらに、ネットワークに接続され、プログラムを記録した記録媒体を備える外部装置あるいはプログラムを記憶手段に記憶した外部装置からダウンロードし、コンピュータにインストールして実行させることも可能である。
また、以上説明してきた実施形態及び変形例の構成は、相互に矛盾しない限り任意に組み合わせて実施可能であることは勿論である。
【符号の説明】
【００７３】
１０：画像形成装置、１００：コントローラ、１０１：ＣＰＵ、１０２：ＲＯＭ、１０３：ＲＡＭ、１０４：ＮＶＲＡＭ、１０５：ネットワークＩ／Ｆ、１０６：エンジンＩ／Ｆ、１０７：パネルＩ／Ｆ、１０８：圧縮伸長器、１１０：エンジン部、１２０：操作パネル、１３１：ＰＤＬデータ解析部、１３２：中間データ保存部、１３３：中間データメモリ、１３４：描画部、１３５：バンドメモリ制御部、１３６：バンドメモリ、１３７：プリンタエンジン
【先行技術文献】
【特許文献】
【００７４】
【特許文献１】特開２００８−３０４００号公報
【図１】
2015174434.tif 000003
【図２】
2015174434.tif 000004
【図３】
2015174434.tif 000005
【図４】
2015174434.tif 000006
【図５】
2015174434.tif 000007
【図６】
2015174434.tif 000008
【図７】
2015174434.tif 000009
【図８】
2015174434.tif 000010
【図９】
2015174434.tif 000011
【図１０】
2015174434.tif 000012