(57)【特許請求の範囲】
【請求項１】
描画データを保持する保持手段と、
前記保持手段の状態が所定の状態となった場合に、１ページ分の描画データの一部の描画データに基づいて第１の画像を描画する描画手段と、
前記描画手段により描画された前記第１の画像を圧縮バッファに記憶させる制御を行う記憶制御手段と、
前記圧縮バッファに記憶された前記第１の画像を圧縮してフォールバック画像を生成する圧縮手段と、
を有し、
前記フォールバック画像は１ページ分の描画データの一部として前記保持手段に保持され、
前記記憶制御手段は、前記保持手段に保持された描画データに前記フォールバック画像が含まれると判定したことに基づいて、前記圧縮バッファとして用いられたメモリ領域のうちの一部のメモリ領域を伸張バッファとして割り当てる制御を行い、
前記圧縮バッファとして用いられたメモリ領域のうちの他の部分のメモリ領域は圧縮バッファとして使用され、
前記保持手段に保持された前記描画データに含まれる前記フォールバック画像を伸張手段が伸張し、
前記伸張手段が伸張した後の前記第１の画像が前記伸張バッファに記憶され、
前記描画手段は、前記伸張バッファに記憶された前記第１の画像と、前記１ページ分の描画データの他の部分の描画データとに基づいて、１ページ分の画像である第２の画像を描画し、
前記第２の画像は前記圧縮バッファとしての前記他の部分のメモリ領域に記憶され、
前記圧縮手段は、当該圧縮バッファに記憶された前記第２の画像を圧縮して圧縮画像を生成する
ことを特徴とする画像形成装置。
【請求項２】
前記記憶制御手段は、前記保持手段に保持された描画データに前記フォールバック画像が含まれないと判定したことに基づいて、前記伸張バッファのメモリ領域として割り当てられたメモリ領域を圧縮バッファのメモリ領域に割り当てることを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記記憶制御手段は、前記フォールバック画像が前記描画データに含まれるか否かを示すフラグを管理し、前記フォールバック画像が前記描画データに含まれることを前記フラグが示す場合に、前記圧縮バッファとして用いられたメモリ領域のうちの一部のメモリ領域を伸張バッファとして割り当てる制御を行うことを特徴とする請求項１に記載の画像形成装置。
【請求項４】
前記記憶制御手段は、前記フォールバック画像が前記描画データの一部として前記保持手段に保持された場合に前記フラグをＯＮにし、前記フォールバック画像が生成されずに１ページ分の描画データが前記保持手段に保持された場合に前記フラグをＯＦＦにし、前記フラグがＯＮである場合に、前記圧縮バッファとして用いられたメモリ領域のうちの一部のメモリ領域を伸張バッファとして割り当てる制御を行うことを特徴とする請求項３に記載の画像形成装置。
【請求項５】
前記記憶制御手段は、前記フォールバック画像とは異なる画像データが前記描画データに含まれているか否かに関わらず、前記保持手段に保持された描画データに前記フォールバック画像が含まれると判定したことに基づいて、前記圧縮バッファとして用いられたメモリ領域のうちの一部のメモリ領域を伸張バッファとして割り当てることを特徴とする請求項１から４のうち何れか１項に記載の画像形成装置。
【請求項６】
前記描画データは、前記画像形成装置が受信したＰＤＬデータを解釈した結果に基づいて生成され、
前記描画手段は、前記保持手段に保持された描画データのサイズが所定の閾値を超える場合に、前記保持手段に保持された描画データに基づいて前記第１の画像を描画することを特徴とする請求項１から５のうち何れか１項に記載の画像形成装置。
【請求項７】
描画データを保持手段に保持する第１の保持ステップと、
前記保持手段の状態が所定の状態となった場合に、１ページ分の描画データの一部の描画データに基づいて第１の画像を描画する第１の描画ステップと、
前記第１の描画ステップにおいて描画された前記第１の画像を圧縮バッファに記憶させる制御を行う第１の記憶制御ステップと、
前記圧縮バッファに記憶された前記第１の画像を圧縮してフォールバック画像を生成する第１の圧縮ステップと、
を有し、
前記フォールバック画像を、１ページ分の描画データの一部として前記保持手段に保持する第２の保持ステップと、
前記保持手段に保持された描画データに前記フォールバック画像が含まれると判定されたことに基づいて、前記圧縮バッファとして用いられたメモリ領域のうちの一部のメモリ領域を伸張バッファとして割り当てる第２の記憶制御ステップと、前記圧縮バッファとして用いられたメモリ領域のうちの他の部分のメモリ領域は圧縮バッファとして使用され、
前記保持手段に保持された前記描画データに含まれる前記フォールバック画像を伸張する伸張ステップと、
前記伸張ステップにおいて伸張した後の前記第１の画像を前記伸張バッファに記憶する第１の記憶ステップと、
前記伸張バッファに記憶された前記第１の画像と、前記１ページ分の描画データの他の部分の描画データとに基づいて、１ページ分の画像である第２の画像を描画する第２の描画ステップと、
前記第２の画像を前記圧縮バッファとしての前記他の部分のメモリ領域に記憶する第２の記憶ステップと、
当該圧縮バッファに記憶された前記第２の画像を圧縮して圧縮画像を生成する第２の圧縮ステップと
をさらに有することを特徴とする画像形成装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、圧縮画像データを扱う画像処理技術に関する。
【背景技術】
【０００２】
ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）に代表される画像処理装置は、描画処理部・圧縮処理部・伸張処理部などの複数の処理部を有する。これら複数の処理部においては、ある処理部からの出力データが他の処理部に入力されるようなパイプライン処理構成が採用されている。パイプライン処理では、データを出力する処理部とデータが入力される処理部との間にローカルメモリをバッファとして備えることで、各処理部の処理速度に差が生じた場合でもその差分を吸収する。特許文献１では、このローカルメモリの容量を、処理対象となる画像データがカラーであるかモノクロであるかに応じて変更する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−５３８２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
画像処理装置では、次のような一連の処理が行われる。描画処理部が描画データに基づいて描画処理を行うことでビットマップ形式の画像データを生成する際に、描画データに圧縮画像データが含まれている場合には、伸張処理部がこの圧縮画像データを伸張して第１のローカルメモリに記憶する。描画処理部は、第１のローカルメモリに記憶されたその伸張された画像データを用いて描画処理を行う。このとき描画処理部は、描画処理によって生成された画像データを第２のローカルメモリに記憶する。次に圧縮処理部は、第２のローカルメモリに記憶された画像データをＪＰＥＧなどの符号化方式で圧縮する。このとき圧縮処理部は圧縮画像データをＤＲＡＭなどのメインメモリに記憶する。
【０００５】
従来は、描画データに圧縮画像データが含まれているか否かにかかわらず、確保される第１のローカルメモリの容量は固定的であった。そのため、描画データに圧縮画像データが含まれていない場合、第１のローカルメモリは使用されないので、メモリ資源は効率的に用いられてはいなかった。
【課題を解決するための手段】
【０００６】
本発明の画像形成装置は、描画データを保持する保持手段と、前記保持手段の状態が所定の状態となった場合に、１ページ分の描画データの一部の描画データに基づいて第１の画像を描画する描画手段と、前記描画手段により描画された前記第１の画像を圧縮バッファに記憶させる制御を行う記憶制御手段と、前記圧縮バッファに記憶された前記第１の画像を圧縮してフォールバック画像を生成する圧縮手段と、を有し、前記フォールバック画像は１ページ分の描画データの一部として前記保持手段に保持され、前記記憶制御手段は、前記保持手段に保持された描画データに前記フォールバック画像が含まれると判定したことに基づいて、前記圧縮バッファとして用いられたメモリ領域のうちの一部のメモリ領域を伸張バッファとして割り当てる制御を行い、前記圧縮バッファとして用いられたメモリ領域のうち他の部分のメモリ領域は圧縮バッファとして使用され、前記保持手段に保持された前記描画データに含まれる前記フォールバック画像を伸張手段が伸張し、前記伸張手段が伸張した後の前記第１の画像が前記伸張バッファに記憶され、前記描画手段は、前記伸張バッファに記憶された前記第１の画像と、前記１ページ分の描画データの他の部分の描画データとに基づいて、１ページ分の画像である第２の画像を描画し、前記第２の画像は前記圧縮バッファとしての前記他の部分のメモリ領域に記憶され、前記圧縮手段は、当該圧縮バッファに記憶された前記第２の画像を圧縮して圧縮画像を生成することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、描画データに圧縮画像データが含まれていない場合でも、メモリ資源を効率的に用いることができる。
【図面の簡単な説明】
【０００８】
【図１】画像処理装置のコントローラ構成を示すブロック図である。
【図２】描画データに圧縮画像データが含まれている場合の描画処理を説明する図である。
【図３】描画データに圧縮画像データが含まれていない場合の描画処理を説明する図である。
【図４】ＰＤＬプリント処理を説明するフローチャートである。
【図５】描画処理を説明するフローチャートである。
【図６】描画処理時のローカルメモリとＲＡＭの使用状況を説明する概念図である。
【発明を実施するための形態】
【０００９】
図１は、本発明の画像処理装置の一実施形態であるＭＦＰのコントローラ構成を示すブロック図である。なお、本発明の画像処理装置は、ＳＦＰ（Ｓｉｎｇｌｅ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）であっても良い。以下では、本実施形態のＭＦＰのことを、単に画像処理装置と呼ぶ。図１に示すように、画像処理装置は、コントローラ１００、ネットワーク２００、スキャンエンジン３００、プリントエンジン４００で構成される。
【００１０】
ネットワーク２００は、ＬＡＮやＷＡＮなどで実現され、ホストコンピュータやサーバなどの外部装置と画像処理装置との間で画像データやデバイス情報を送受信する通信路である。
【００１１】
スキャナエンジン３００は、画像入力デバイスであって、光学センサなどを用いて画像処理装置の内部に画像データを取り込む処理部である。
【００１２】
プリンタエンジン４００は、画像出力デバイスであって、画像処理装置の内部の画像データを紙などの記録媒体に印刷する。このプリンタエンジンは、電子写真方式でもインクジェット方式でもその他の方式でも良い。
【００１３】
コントローラ１００は、ネットワーク２００、スキャンエンジン３００、プリンタエンジン４００と接続され、画像処理装置全体の制御を行う制御部である。コントローラ１００内では、ＣＰＵ１０１、伸張処理部１０２、描画処理部１０３、圧縮処理部１０４、ネットワークＩ／Ｆ１０５、ＲＡＭ１０６、ＨＤＤ１０８、プリント画像処理部１１０などがシステムバス１１３を介して互いに接続されて構成される。
【００１４】
ＣＰＵ（中央処理装置）１０１は、画像処理装置全体を制御する処理部である。ＣＰＵ１０１は、特に、ＰＤＬプリント処理においては、ネットワーク２００を介して外部装置から受信したＰＤＬデータを解釈して、ページを構成する複数の描画オブジェクト情報を持つ描画データ（ＤＬ：ディスプレイリスト）に変換する。この段階では、描画データは、ラスタライズ前のいわゆるベクタデータの形式で表現されている。この描画データへの変換のことを描画データの生成とも呼び、描画データはページ毎に生成される。また生成された描画データは、ＲＡＭ１０６にページ毎に記憶される。
【００１５】
伸張処理部１０２は、画像伸張器である。伸張処理部１０２は、ＪＰＥＧ、ランレングス、ＭＭＲなどの符号化方式で圧縮された画像データに対して伸張処理（復号処理）を実行することで、ビットマップなどのラスタデータ形式の非圧縮の画像データを生成する。
【００１６】
描画処理部１０３は、ラスターイメージプロセッサー（ＲＩＰ）である。描画処理部１０３は、ＣＰＵ１０１によってＰＤＬデータから生成されたベクタデータ形式の描画データ（ＤＬ）を、ラスタライズによって、ラスタデータ形式の画像データに変換する。このラスタデータ形式の画像データへの変換処理のことを、描画データに対する描画処理とも呼ぶ。この描画処理部１０３は、ベクタデータ形式の描画データだけでなく、ラスタデータ形式の描画データを用いても描画処理を行うことができる。
【００１７】
圧縮処理部１０４は、画像圧縮器である。圧縮処理部１０４は、ラスタデータ形式の非圧縮の画像データに対して圧縮処理（符号化処理）を実行することで、ＪＰＥＧ、ランレングス、ＭＭＲなどの符号化方式で圧縮された画像データを生成する。
【００１８】
ネットワークＩ／Ｆ１０５は、例えばＬＡＮカードなどで実現され、ネットワーク２００を介してホストコンピュータやサーバなどの外部装置と画像処理装置との間で画像データやデバイス情報を送受信するためのインタフェース部である。
【００１９】
ＲＡＭ１０６は、ＤＲＡＭなどの揮発性メモリであり、ＣＰＵ１０１がシステム上で動作するためのワーク領域として使用されたり、画像データを一時記憶するためのバッファ領域とし使用されたりする記憶部である。このバッファ領域には描画データも記憶される。ＲＯＭ１０７は、ＥＰＲＯＭなどの不揮発性メモリであり、ＣＰＵ１０１がシステムを起動するためのブートプログラムが記憶されている記憶部である。ＨＤＤ１０８は、ハードディスクドライブであり、主に画像処理装置の内部に、画像データを記憶しておくための大容量記憶部である。
【００２０】
スキャン画像処理部１０９は、スキャナであるスキャンエンジン３００とシリアルバスによって接続される。この接続はパラレルバスによって実現されても良い。スキャン画像処理部１０９は、スキャンエンジン３００から入力された画像データに対して、スキャンエンジン３００のデバイス特性に合わせた補正のための画像処理を行う画像処理部である。なお、スキャン画像処理部１０９は、スキャンエンジン３００から入力された画像データをコントローラ１００内部の限られたメモリ容量とシステムバス帯域で扱うため、送信部で圧縮処理してから圧縮画像データとして転送する機能を備えた処理部である。
【００２１】
プリント画像処理部１１０は、プリンタであるプリントエンジン４００とシリアルバスによって接続される。この接続はパラレルバスによって実現されても良い。プリント画像処理部１１０は、ＲＡＭ１０６に記憶された圧縮画像データに対して伸張処理を行う。プリント画像処理部１１０は圧縮画像データを扱うので、コントローラ１００内部の限られたメモリ容量とシステムバス帯域を効率良く扱える。そしてプリント画像処理部１１０は、伸張された画像データに対してプリントエンジン４００のデバイス特性に合わせた補正の画像処理を行い、その画像処理後の画像データをプリントエンジン４００に出力する画像処理部である。
【００２２】
ローカルメモリ１１１は、ＳＲＡＭなどで実現され、伸張処理部１０２、描画処理部１０３、圧縮処理部１０４のそれぞれと信号線１１４ａ、１１４ｂ、１１４ｃ、１１４ｄで互いに接続されている。伸張処理部１０２は、生成した画像データ（伸張された画像データ）を、信号線１１４ａを介してローカルメモリ１１１に記憶する。描画処理部１０３は、ローカルメモリ１１１に記憶された伸張済みの画像データを、信号線１１４ｂを介して取得し、描画処理済みの画像データを、信号線１１４ｃを介してローカルメモリ１１１に記憶する。圧縮処理部１０４は、ローカルメモリ１１１に記憶された描画処理済みの画像データを、信号線１１４ｄを介して取得する。なお本実施形態では２本の信号線１１４ｂ、１１４ｃを用いているが、１本の信号線を、本実施形態の信号線１１４ｂ、１１４ｃとして用いても良い。
【００２３】
このように、ローカルメモリ１１１は、伸張処理部１０２が伸張した非圧縮画像データを一時記憶する緩衝メモリ（伸張バッファ）や、描画処理部１０３が描画した非圧縮画像データを圧縮処理のために一時記憶する緩衝メモリ（圧縮バッファ）として機能する。
【００２４】
このローカルメモリ１１１には、後述の第１記憶部１１１１と第２記憶部１１１２とが含まれる。第１記憶部１１１１及び第２記憶部１１１２のそれぞれは、ローカルメモリ１１１内の異なるアドレスに対応する記憶領域である。本実施形態では、第１記憶部１１１１は、ローカルメモリ１１１のアドレス［ＸＸＸＸ］から［ＹＹＹＹ−１］までの第１のアドレス範囲の記憶領域である。また、第２記憶部１１１２は、ローカルメモリ１１１のアドレス［ＹＹＹＹ］から［ＺＺＺＺ−１］までの第２のアドレス範囲の記憶領域である。
【００２５】
ローカルメモリ制御部１１２は、伸張処理部１０２、描画処理部１０３、圧縮処理部１０４のそれぞれと信号線１１５ａ、１１５ｂ、１１５ｃで互いに接続されている。ローカルメモリ制御部１１２は、内部にレジスタ（不図示）を備える。そしてローカルメモリ制御部１１２は、ＣＰＵ１０１からシステムバス１１３を介して送信された制御情報を、そのレジスタに記憶することで、ローカルメモリ１１１内の記憶領域の割り当てを制御する。この制御情報とは、伸張処理部１０２、描画処理部１０３、圧縮処理部１０４の動作モードを示す情報である。ローカルメモリ制御部１１２は、レジスタに記憶された制御情報によって示される動作モードを、各処理部に対して信号線１１５ａ〜ｃを介して設定する。本実施形態では、動作モードは後述される２つのモードがある。
【００２６】
１つ目の動作モード（動作モードＡ）は、第１記憶部１１１１および第２記憶部１１１２のそれぞれを伸張バッファおよび圧縮バッファとして用いる動作モードである。この動作モードＡでは、伸張処理部１０２、描画処理部１０３、圧縮処理部１０４は次のように動作するように構成されている。伸張処理部１０２および描画処理部１０３は、第１記憶部１１１１を伸張バッファとして用いながら、各処理を実行する。また描画処理部１０３および圧縮処理部１０４は、第２記憶部１１１２を圧縮バッファとして用いながら、各処理を実行する。
【００２７】
２つ目の動作モード（動作モードＢ）は、第１記憶部１１１１および第２記憶部１１１２を圧縮バッファとして用いる動作モードである。この動作モードＢでは、伸張処理部１０２、描画処理部１０３、圧縮処理部１０４は次のように動作するように構成されている。伸張処理部１０２は処理を開始せずに、描画処理部１０３および圧縮処理部１０４は、第１記憶部１１１１および第２記憶部１１１２を圧縮バッファとして用いながら、各処理を実行する。
【００２８】
以上の２つの動作モードを適切に設定することで、ローカルメモリ１１１のメモリ資源を有効に活用することができるのが本実施形態の効果の１つである。動作モードは、図４のフローチャートに従って後述のように設定される。
【００２９】
システムバス１１３は、コントローラ１００を構成する各処理部を互いに接続し、各処理部の間で画像データや、処理の開始指示などの制御情報の送受信を行う。
【００３０】
次に、図２及び図３を用いて、次の２つの場合での、画像処理装置のＰＤＬプリント機能における描画処理時のローカルメモリ１１１内の記憶領域の割り当て制御（動作モードの設定）について説明する。ポイントは、次の通りである。ＲＡＭ１０６に記憶された描画データ（ＤＬ）に圧縮画像データが含まれる場合には、上述の動作モードＡで各処理部は動作する。ＲＡＭ１０６に記憶された描画データに圧縮画像データが含まれない場合には、上述の動作モードＢで各処理部は動作する。
【００３１】
＜描画データに圧縮画像データが含まれる場合＞
図２は、ＰＤＬデータを変換して生成した描画対象のページに関して、メインメモリであるＲＡＭ１０６に記憶された描画データ１０６１に圧縮画像データ１０６３が含まれる場合のローカルメモリ１１１内の記憶領域の割り当て制御を説明する図である。なお、図２では、描画処理時に使用する記憶領域が分かるように、図１で示したコントローラ１００内部におけるローカルメモリ１１１とＲＡＭ１０６の内部の記憶領域を詳細化したものになっている。図２を用いて、ＣＰＵ１０１がＰＤＬデータを元に生成した描画データ１０６１をＲＡＭ１０６に記憶した時点から、描画処理部１０３がＲＡＭ１０６上の描画データ１０６１を入力として圧縮画像データ１０６２を生成する時点までの一連の描画処理を説明する。
【００３２】
まず、ＣＰＵ１０１は、１ページ分の描画データ１０６１の生成時点から描画処理開始時点までの間で、ＲＡＭ１０６に記憶された１ページ分の描画データ１０６１に、ＪＰＥＧなどの符号化方式を用いた圧縮画像データ１０６３が含まれることを検知する。検知の方法は、後述の図４のフローチャートのＳ４０３で説明される。
【００３３】
次に、ＣＰＵ１０１は、描画データに圧縮画像データが含まれることに基づいて、システムバス１１３を介してローカルメモリ制御部１１２が持つ内部レジスタに動作モードＡを示す制御情報を記憶する。すると、ローカルメモリ制御部１１２は、信号線１１５ａ〜ｃを介して、動作モードＡを、各処理部（伸張処理部１０２、描画処理部１０３、圧縮処理部１０４）に設定する。
【００３４】
すなわち、この場合、第１記憶部１１１１が、伸張処理部１０２と描画処理部１０３の間の伸張バッファとして使用され、かつ、第２記憶部１１１２が、描画処理部１０３と圧縮処理部１０４の間の圧縮バッファとして使用されるような設定がなされる。
【００３５】
次に、ＣＰＵ１０１は、伸張処理部１０２、描画処理部１０３、圧縮処理部１０４それぞれに対して処理を開始するように指示する。すると、伸張処理部１０２及び描画処理部１０３は、ＲＡＭ１０６に記憶された１ページ分の描画データ１０６１に基づいて、伸張処理、描画処理、圧縮処理を開始する。
【００３６】
具体的には、伸張処理部１０２は、ＲＡＭ１０６に記憶された描画データ１０６１に含まれる圧縮画像データ１０６３に対して伸張（復号化）処理を実行する。伸張処理部１０２は、この伸張処理によって得られた非圧縮画像データを第１記憶部１１１１に一時記憶する。また、描画処理部１０３は、ＲＡＭ１０６に記憶された１ページ分の描画データ１０６１に基づいて描画処理を実行する。この描画処理では、描画処理部１０３は、第１記憶部１１１１に一時記憶された非圧縮画像データを描画オブジェクトとして取得し、これを用いる。このように第１記憶部１１１１が伸張バッファとして用意されるので、伸張処理部１０２の処理速度と描画処理部１０３の処理速度とに差が生じた場合でも、その差を吸収することができる。
【００３７】
描画処理部１０３は、以上の描画処理によって得られた非圧縮画像データを、第２記憶部１１１２に一時記憶する。そして圧縮処理部１０４は、第２記憶部１１１２に一時記憶された非圧縮画像データに対して圧縮（符号化）処理を実行する。圧縮処理部１０４は、この圧縮処理によって得られた圧縮画像データ１０６２をＲＡＭ１０６に記憶する。このように第２記憶部１１１２が圧縮バッファとして用意されるので、描画処理部１０３の処理速度と圧縮処理部１０４の処理速度とに差が生じた場合でも、その差を吸収することができる。
【００３８】
＜描画データに圧縮画像データが含まれない場合＞
図３は、ＰＤＬデータを変換して生成した描画対象のページに関して、メインメモリであるＲＡＭ１０６に記憶された描画データ１０６１に圧縮画像データ１０６３が含まれない場合のローカルメモリ１１１内の記憶領域の割り当て制御を説明する図である。なお、図３では、描画処理時に使用する記憶領域が分かるように、図１で示したコントローラ１００内部におけるローカルメモリ１１１とＲＡＭ１０６の内部の記憶領域を詳細化したものになっている。図３を用いて、ＣＰＵ１０１がＰＤＬデータを元に生成した描画データ１０６１をＲＡＭ１０６に記憶した時点から、描画処理部１０３がＲＡＭ１０６上の描画データ１０６１を入力として圧縮画像データ１０６２を生成する時点までの一連の描画処理を説明する。
【００３９】
まず、ＣＰＵ１０１は、１ページ分の描画データ１０６１の生成時点から描画処理開始時点までの間で、ＲＡＭ１０６に記憶された１ページ分の描画データ１０６１に、ＪＰＥＧなどの符号化方式を用いた圧縮画像データ１０６３が含まれないことを検知する。検知の方法は、後述の図４のフローチャートのＳ４０３で説明される。
【００４０】
次に、ＣＰＵ１０１は、描画データに圧縮画像データが含まれないことに基づいて、システムバス１１３を介してローカルメモリ制御部１１２が持つ内部レジスタに動作モードＢを示す制御情報を記憶する。すると、ローカルメモリ制御部１１２は、信号線１１５ａ〜ｃを介して、動作モードＢを、各処理部（伸張処理部１０２、描画処理部１０３、圧縮処理部１０４）に設定する。
【００４１】
すなわち、この場合、第１記憶部１１１１及び第２記憶部１１１２は、描画処理部１０３と圧縮処理部１０４の間の圧縮バッファとして使用されるような設定がなされる。
【００４２】
次に、ＣＰＵ１０１は、伸張処理部１０２、描画処理部１０３、圧縮処理部１０４に対して処理を開始するように指示する。すると、描画処理部１０３は、ＲＡＭ１０６に記憶された１ページ分の描画データ１０６１に基づいて描画処理、圧縮処理を開始する。ここでは描画データに圧縮画像データは含まれないので、結局のところ、伸張処理部１０２は伸張処理を行わない。
【００４３】
具体的には、描画処理部１０３は、ＲＡＭ１０６に記憶された１ページ分の描画データ１０６１に対して描画処理を実行する。描画処理部１０３は、この描画処理によって得られた非圧縮画像データを、ローカルメモリ１１１内の第１記憶部１１１１及び第２記憶部１１１２に一時記憶する。この記憶においては、描画処理部１０３は、第１記憶部１１１１及び第２記憶部１１１２の記憶領域のうち、空いている部分に、非圧縮画像データを記憶する。続いて、圧縮処理部１０４は、ローカルメモリ１１１内の第１記憶部１１１１及び第２記憶部１１１２に一時記憶された非圧縮画像データに対して圧縮（符号化）処理を実行する。すなわち、ここでの第１記憶部１１１１及び第２記憶部１１１２は、圧縮バッファとして機能している。圧縮処理部１０４は、この圧縮処理によって得られた圧縮画像データ１０６２をＲＡＭ１０６に記憶する。
【００４４】
このように第２記憶部１１１２だけでなく、第１記憶部１１１１も、非圧縮画像データの一時記憶領域として利用可能なため、ローカルメモリ１１１のメモリ資源を効率的に利用できる。また、圧縮バッファの容量は、大きければ大きいほど、描画処理と圧縮処理の処理速度差の変動を吸収する能力が高い。そのため、第２記憶部１１１２だけでなく第１記憶部１１１１も圧縮バッファとして利用する本実施形態は、圧縮バッファの容量が少ないことに起因するパフォーマンス低下を抑制することができる。
【００４５】
＜ＰＤＬプリント処理＞
次に、図４及び図５のフローチャートを用いて、本実施形態の画像処理装置におけるＰＤＬプリント処理及びローカルメモリ内の記憶領域の割り当て制御に関わる描画処理の流れを説明する。
【００４６】
まず、図４を用いて、ＰＤＬプリント処理の処理フローを説明する。この図４のフローはページ毎に行われる。すなわち、ページ単位で、動作モードが設定される。
【００４７】
Ｓ４０１において、ＣＰＵ１０１は、ホストコンピュータやサーバからネットワーク２００上に送信されたＰＤＬデータを、ネットワークＩ／Ｆ１０５を介して、画像処理装置のコントローラ１００内部で受信して、ＨＤＤ１０８に記憶する。
【００４８】
次に、Ｓ４０２において、ＣＰＵ１０１は、ＨＤＤ１０８に記憶されたＰＤＬデータをＲＡＭ１０６に転送し、ＰＤＬデータを描画データ（ＤＬ）に変換し、この描画データをＲＡＭ１０６に記憶する。この変換は次のようにして行われる。ＣＰＵ１０１は、ＰＤＬデータに含まれる１つ以上のＰＤＬコマンドを、コマンド毎に順次、描画データ（描画コマンド）へと変換して、変換された描画データをＲＡＭ１０６へ記憶していく。この１ページ分の描画データの変換（生成）の際（途中）に、それまでに生成されてＲＡＭ１０６に記憶された描画データの合計データサイズが閾値を越える場合に、次の一連の処理（フォールバック処理）が行われる。すなわち、ＰＤＬデータの一部に基づいて得られる描画データの合計データサイズがその閾値を越える場合に、次のフォールバック処理が行われる。描画処理部１０３は、既にＲＡＭ１０６に記憶された描画データに対して描画処理を行うことで、そのページの背景画像として扱われるビットマップをローカルメモリ１１１（第１記憶部１１１１および第２記憶部１１１２）に生成する。そして圧縮処理部１０４は、ローカルメモリ１１１に生成されたビットマップに対して圧縮処理を行うことで、そのページの背景画像にあたる圧縮画像データをＲＡＭ１０６に生成して記憶する。この記憶された圧縮画像データは描画データに含まれるものとして扱われる。そしてＣＰＵ１０１は、背景画像にあたる圧縮画像データが描画データに含まれていることを示すフラグ情報（フォールバックフラグＯＮ）を、ＲＡＭ１０６に記憶された描画データに付与する。そしてＣＰＵ１０１はＰＤＬデータに含まれる残りのＰＤＬコマンド（ＰＤＬデータの残りの部分）の変換を引き続き行う。
【００４９】
ここで、上記のフォールバック処理が行われずにそのページの描画データがＲＡＭ１０６に生成された場合には、ＣＰＵ１０１は次の処理を行う。ＣＰＵ１０１は、背景画像にあたる圧縮画像データが描画データに含まれていないことを示すフラグ情報（フォールバックフラグＯＦＦ）を、ＲＡＭ１０６に記憶された描画データに付与する。
【００５０】
次に、Ｓ４０３において、ＣＰＵ１０１は、Ｓ４０２で生成した描画データに圧縮画像データが含まれているか否かを検知（判定）する。
【００５１】
ここで、検知方法としては、例えば、描画データ生成時のＰＤＬコマンド解析によって、ＪＰＥＧなどの符号化方式を用いた写真などの描画オブジェクトに対する伸張コマンドの有無（個数）を検知すれば良い。
【００５２】
また、別の検知方法としては、例えば、描画データに付与される上記のフラグ情報を参照することで、描画データにＪＰＥＧなどの符号化方式を用いた背面画像の圧縮画像データが含まれるか否かを検知すれば良い。
【００５３】
また、別の検知方法としては、例えば、伸張処理部１０２を起動制御するレジスタアクセスのリセット解除などの有無によって、ＪＰＥＧなどの符号化方式を用いた描画オブジェクトに対する伸張処理の有無を検知すれば良い。
【００５４】
また、別の検知方法としては、例えば、伸張処理部１０２を起動制御するレジスタ設定後の内部ステータスを読み取って、ＪＰＥＧなどの符号化方式を用いた描画オブジェクトに対する伸張処理の有無を検知すれば良い。
【００５５】
次に、Ｓ４０４において、ＣＰＵ１０１は、Ｓ４０３での検知結果（判定結果）に従って、圧縮画像データが描画データに含まれればＳ４０５に遷移し、圧縮画像データが描画データに含まれなければ、Ｓ４０６に遷移する。
【００５６】
次に、Ｓ４０５において、第１記憶部１１１１を伸張バッファとし、且つ、第２記憶部１１１２を圧縮バッファとして用いる設定が行われる。具体的には、次の通り。ＣＰＵ１０１は、ローカルメモリ制御部１１２の内部レジスタに動作モードＡを示す制御情報を記憶する。そして、ローカルメモリ制御部１１２は、記憶された制御情報に従って、対応する動作モード（動作モードＡ）を、信号線１１５ａ〜ｃを介して、各処理部（伸張処理部１０２、描画処理部１０３、圧縮処理部１０４）に設定する。この設定による各処理部の動作は、＜描画データに圧縮画像データが含まれる場合＞で説明したとおりである。
【００５７】
一方で、Ｓ４０６において、第１記憶部１１１１および第２記憶部１１１２を圧縮バッファとして用いる設定が行われる。具体的には、次の通り。ＣＰＵ１０１は、ローカルメモリ制御部１１２の内部レジスタに動作モードＢを示す制御情報を記憶する。そして、ローカルメモリ制御部１１２は、記憶された制御情報に従って、対応する動作モード（動作モードＢ）を、信号線１１５ａ〜ｃを介して、各処理部（伸張処理部１０２、描画処理部１０３、圧縮処理部１０４）に設定する。この設定による各処理部の動作は、＜描画データに圧縮画像データが含まれない場合＞で説明したとおりである。
【００５８】
すなわち、Ｓ４０３、Ｓ４０４でＹｅｓ、Ｓ４０６の一連の処理によって、描画データに圧縮画像データが含まれていれば（含まれていると判定されれば）、ローカルメモリ１１１の割り当て制御を図２で示した記憶領域として確保するような設定となる。他方、Ｓ４０３、Ｓ４０４でＮｏ、Ｓ４０７の一連の処理によって、描画データに圧縮画像データが含まれていなければ（含まれていないと判定されれば）、ローカルメモリ１１１の割り当て制御を図３で示した記憶領域として確保するような設定となる。
【００５９】
次に、Ｓ４０８において、ＣＰＵ１０１は、伸張処理部１０２、描画処理部１０３に処理を開始するように指示する。すると描画処理部１０３は、Ｓ４０２でＲＡＭ１０６に記憶された描画データに対する描画処理を開始する。描画処理部１０３は、描画データを入力データとして、単一のページを構成する複数の描画オブジェクトの描画処理を行い、描画処理結果の非圧縮画像データをＳ４０５あるいはＳ４０６で確保したローカルメモリ１１１の圧縮バッファに一時記憶する。なお、Ｓ４０８の描画処理の処理フローは、図５を用いて別途詳細に説明する。
【００６０】
次に、Ｓ４０９において、ＣＰＵ１０１は、圧縮処理部１０４に処理を開始するよう指示する。すると、圧縮処理部１０４は、Ｓ４０８で実行した描画処理結果の非圧縮画像データに対して圧縮処理を実行することで圧縮画像データを生成し、その圧縮画像データをＲＡＭ１０６に記憶する。
【００６１】
次に、Ｓ４１０において、ＣＰＵ１０１は、プリント画像処理部１１０に画像処理を開始するよう指示する。すると、プリント画像処理部１１０は、Ｓ４０９でＲＡＭ１０６に記憶された圧縮画像データを取得し、その取得された圧縮画像データに対して伸張（復号化）処理を実行する。
【００６２】
次に、Ｓ４１１において、プリント画像処理部１１０は、プリントエンジン４００のデバイス特性に合わせた補正のためのプリント画像処理を、伸張された画像データに対して実行し、画像処理後の画像データをプリントエンジン４００に出力する。プリントエンジン４００は、出力された画像データに基づいて、画像を記録媒体に印刷する。
【００６３】
＜描画処理フロー＞
次に、図５を用いて、図４で説明したＰＤＬプリント処理のうちのＳ４０８における描画処理の処理フローを説明する。
【００６４】
Ｓ５０１において、描画処理部１０３は、ＲＡＭ１０６に記憶された描画データに含まれる描画コマンドを解釈する。次に、描画処理部１０３は、Ｓ５０１で解釈した描画コマンドとして、ＪＰＥＧなどの符号化方式を用いた写真などの描画オブジェクトに対する伸張コマンドを含むか否かを判定する。この判定では、伸張コマンドがあれば、描画データには圧縮画像データが含まれると判定される。伸張コマンドがなければ、描画データには圧縮画像データが含まれないと判定される。
【００６５】
あるいは、描画処理部１０３は、Ｓ５０１の解釈対象であるページの描画データ中のフラグ情報が、背景画像にあたる圧縮画像データが描画データに含まれていることを示すか否かを判定する。この判定では、フラグ情報が背景画像にあたる圧縮画像データが描画データに含まれていることを示せば、描画データには圧縮画像データが含まれると判定される。フラグ情報が背景画像にあたる圧縮画像データが描画データに含まれていることを示さなければ、描画データには圧縮画像データが含まれないと判定される。
【００６６】
Ｓ５０２で、描画データに伸張対象の圧縮画像データが含まれれば、Ｓ５０３に遷移し、描画データに伸張対象の圧縮画像データが含まれなければ、Ｓ５０６に遷移する。
【００６７】
次に、Ｓ５０３で、伸張処理部１０２は、描画処理部１０３と連携して、描画データに含まれる圧縮画像データの伸張処理を実行する。
【００６８】
次に、Ｓ５０４で、伸張処理部１０２は、Ｓ４０５で確保した伸張バッファに空き領域があるか否かを検知し、空き領域が有れば、Ｓ５０５に遷移し、空き領域が無ければ、再びＳ５０４に遷移して空き領域ができるまで待機する。空き領域がない、とは、伸張バッファが描画処理部１０３へ未送信の伸張済み画像データ（非圧縮画像データ）で埋められていることである。
【００６９】
次に、Ｓ５０５で、伸張処理部１０２は、Ｓ４０５で確保したローカルメモリ１１１内部の伸張バッファに伸張処理後の非圧縮画像データを記憶する。
【００７０】
次に、Ｓ５０６で、描画処理部１０３は、描画データに含まれる描画コマンドを元に、スキャンライン毎に描画対象となる描画オブジェクトを検出し、描画オブジェクトが持つ主走査方向の長さ情報を生成し、スパン情報として保持する。
【００７１】
次に、Ｓ５０７で、描画処理部１０３は、Ｓ５０６で生成したスパン情報に従い、描画オブジェクトの色塗り処理を実行し、フィル情報として保持する。ここで、例えば、描画オブジェクトが圧縮画像データであれば、描画処理部１０３は、Ｓ５０３で伸張処理してＳ５０５で伸張バッファに記憶されている画像データを取得する。
【００７２】
次に、Ｓ５０８で、描画処理部１０３は、Ｓ５０７で保持しているフィル情報を参照し、各描画オブジェクトの上下関係（Ｚオーダー）を示すレベル情報に従って、ＲＯＰ演算による合成（コンポジット）処理を実行する。Ｓ５０８において、描画処理部１０３は、ページ単位の非圧縮画像データをピクセル単位で順に生成して、ローカルメモリ１１１に対して出力する。
【００７３】
次に、Ｓ５０９において、描画処理部１０３は、Ｓ４０５あるいはＳ４０６で確保した圧縮バッファに空き領域があるか否かを検知し、空き領域が有れば、Ｓ５１０に遷移し、空き領域が無ければ、再びＳ５０９に遷移して空き領域ができるまで待機する。空き領域がない、とは、圧縮バッファが圧縮処理部１０４へ未送信の描画処理済みの非圧縮画像データで埋められていることである。
【００７４】
次に、Ｓ５１０で、描画処理部１０３は、Ｓ４０５あるいはＳ４０６で確保したローカルメモリ１１１内部の圧縮バッファに圧縮処理前の非圧縮画像データを記憶する。
【００７５】
＜ローカルメモリとＲＡＭの使用状況＞
最後に、図６の概念図（タイミングチャート）を用いて、本実施形態における描画処理時のローカルメモリ１１１とＲＡＭ１０６の使用状況を説明する。図６は、ホストコンピュータやサーバ上のドライバで作成されたＰＤＬデータを受信してから、画像処理装置のコントローラ１００内部で生成した画像データをプリントエンジン４００に送信するまでのタイミングチャートを示している。図６では、上記のＰＤＬデータが２ページで構成される場合を例として説明を行う。なお、１ページ目は、描画データ（ＤＬ）用にＲＡＭ１０６上で必要なメモリ容量がシステム全体で確保可能な前記閾値よりも小さく、描画処理の繰り返し（フォールバック処理）を必要としない場合とする。また、２ページ目は、描画データ（ＤＬ）用にＲＡＭ１０６上で必要なメモリ容量がシステム全体で確保可能な前記閾値よりも大きく、描画処理の繰り返し（言い換えるとフォールバック処理）を必要とする場合とする。以上の条件下で、本実施形態の画像処理装置が、圧縮画像データが描画データに含まれるか否かを、フォールバックフラグを参照することで判定し、その判定結果に従ってローカルメモリ１１１の割り当て制御を行う例を説明する。なおフォールバック処理によって得られた背面画像の画像データ（描画オブジェクト）は、描画データに含まれる圧縮画像データである。
【００７６】
図６は、横軸を時間軸としたタイミングチャートであって、時刻Ｔ０〜Ｔ６の間の各処理部の処理内容と、時刻Ｔ０〜Ｔ６のそれぞれにおけるローカルメモリ１１１及びＲＡＭ１０６の使用状況を示している。ここで説明されることは、以下の点に集約される。本実施形態でのローカルメモリ１１１内の記憶領域の割り当て制御は、第１記憶部１１１１および第２記憶部１１１２（以下では単にローカルメモリ１１１とだけ呼ぶ）に未処理の画像データが記憶されていない状態（空き状態）を確認してから実行される。つまり、未処理の画像データが第１記憶部１１１１および第２記憶部１１１２の少なくとも一方に残っている状態では、割り当て制御は行われない。具体的には、割り当て制御は、ページ毎の描画処理の開始直前、および、終了直後に行われる。
【００７７】
時刻Ｔ０〜Ｔ１で、画像処理装置は、ホストコンピュータやサーバ上のドライバで作成された上記のＰＤＬデータをネットワークＩ／Ｆ１０５経由で受信し、コントローラ１００内部のＨＤＤ１０８に記憶する。
【００７８】
時刻Ｔ１〜Ｔ２で、１ページ目に対して、ＣＰＵ１０１は、ＰＤＬデータを解釈して、描画データ（ＤＬ）を生成する。ここで、時刻Ｔ１〜Ｔ２では、描画処理部１０３による描画処理を実行していないため、ローカルメモリ１１１は未使用のままである。
【００７９】
次に、時刻Ｔ２〜Ｔ３で、１ページ目に対して、描画処理部１０３が描画処理して圧縮処理部１０４が圧縮処理を実行し、２ページ目に対して、ＣＰＵ１０１は、ＰＤＬデータを解釈して、描画データ（ＤＬ）を生成する。ここで２ページ目のＰＤＬデータは、１ページ目の描画データに対する描画処理が完了してから、ＨＤＤ１０８からＲＡＭ１０６に記憶される。そのためＣＰＵ１０１は、２ページ目の描画データへの生成処理を、時刻Ｔ２の時点から開始しようとするが、実際に生成処理が行われるのはＰＤＬデータがＲＡＭ１０６に記憶されてからである。この時刻Ｔ２〜Ｔ３の期間では、描画処理部１０３による圧縮画像データ（背面画像）の伸張処理を伴わない描画処理を実行しているため、ローカルメモリ１１１を圧縮バッファとしてのみ使用する。すなわち、時刻Ｔ２では、時刻Ｔ２〜Ｔ３で圧縮画像データ（背面画像）に対する伸張処理する必要がないことを検知して、ローカルメモリ１１１の割り当て制御で圧縮バッファのみを確保するように実行する（動作モードＢ）。なお、１ページ目の描画処理の開始時の時刻Ｔ２では、圧縮バッファへ非圧縮画像データが記憶される前なので、ローカルメモリ１１１が未使用の状態（空き状態）になる。また１ページ目の描画処理の終了時の時刻Ｔ３では、圧縮バッファからの非圧縮画像データの読み出しを完了しているので、ローカルメモリ１１１が未使用の状態になる。
【００８０】
次に、時刻Ｔ３〜Ｔ４で、１ページ目に対して、プリント画像処理部１１０はプリント画像処理を実行してプリントエンジン４００に送信する。その一方で、２ページ目に対しては、フォールバック処理が行われる。すなわち、描画処理部１０３が描画処理を行い、圧縮処理部１０４が圧縮処理を行う。ここで、時刻Ｔ３〜Ｔ４では、描画処理部１０３による圧縮画像データ（背面画像）の伸張処理を伴わない描画処理（フォールバック処理）を実行しているため、ローカルメモリ１１１を圧縮バッファとしてのみ使用する。すなわち、時刻Ｔ３では、時刻Ｔ３〜Ｔ４で圧縮画像データ（背面画像）に対する伸張処理する必要がないことを検知して、ローカルメモリ１１１の割り当て制御で圧縮バッファのみを確保するように実行する。なお、フォールバック処理の開始時の時刻Ｔ３では、圧縮バッファへ非圧縮画像データが記憶される前なので、ローカルメモリ１１１が未使用の状態になる。またフォールバック処理の修了時の時刻Ｔ４では、圧縮バッファから非圧縮画像データの読み出しを完了しているので、ローカルメモリ１１１が未使用の状態になる。
【００８１】
次に、時刻Ｔ４〜Ｔ５で、２ページ目に対して、描画処理部１０３が再び描画処理して圧縮処理部１０４が圧縮処理を実行する。ここで、時刻Ｔ４〜Ｔ５では、描画処理部１０３は圧縮画像データ（背面画像）の伸張処理を伴う描画処理を実行しているため、ローカルメモリ１１１を圧縮バッファと伸張バッファとして割り当て制御を行って使用する。すなわち、時刻Ｔ４では、時刻Ｔ３〜Ｔ４で生成した圧縮画像データ（背面画像）に対して、時刻Ｔ４〜Ｔ５で伸張処理する必要があることを検知して、ローカルメモリ１１１の割り当て制御で伸張バッファを確保するように実行する。なお、２ページ目の描画処理の開始時の時刻Ｔ４では、圧縮バッファへ非圧縮画像データが記憶される前なので、ローカルメモリ１１１が未使用の状態（空き状態）になる。また２ページ目の描画処理の終了時の時刻Ｔ５では、圧縮バッファからの非圧縮画像データの読み出しを完了しているので、ローカルメモリ１１１が未使用の状態になる。
【００８２】
最後に、時刻Ｔ５〜Ｔ６で、２ページ目に対して、プリント画像処理部１１０でプリント画像処理を実行してプリントエンジン４００に送信する。
【００８３】
このように、時刻Ｔ０〜Ｔ６のうち、ページ間の時刻Ｔ３、Ｔ４及びＴ５において、ローカルメモリ１１１の伸張バッファ及び圧縮バッファには未処理の非圧縮画像データが記憶されていない状態（空き状態）になる。従って、本実施形態の画像処理装置において、描画処理部１０３は、これらのタイミングで図２及び図３で説明したローカルメモリ１１１の割り当てを切り替えることができる。
【００８４】
以上で説明したように、本発明の実施形態によれば、ＰＤＬプリント時に、描画データ中に圧縮画像データが含まれるか否かを判定し、圧縮画像データが含まれる場合は、ローカルメモリにおいて伸張バッファと圧縮バッファの両方を割り当てるように制御する。逆に、描画データ中に圧縮画像データが含まれない場合は、ローカルメモリにおいて伸張バッファを確保せずに圧縮バッファの記憶領域として割り当てるように制御する。このように、描画データの内容に従ってローカルメモリ内の記憶領域の割り当てを切り替える（変更する）ことで、ローカルメモリの増加に伴うコスト増加を抑制し、コストパフォーマンスを向上した画像処理装置を提供することができる。
【００８５】
＜変形例＞
上述の実施形態では、ＣＰＵ１０１がローカルメモリ制御部１１２の内部レジスタに制御情報を記憶することで２つの動作モードのうちの何れかを選択するようにした。この他に次のような画像処理装置の実施形態も考えられる。なおここで特に説明のない構成については上述の実施形態と同じである。
【００８６】
ＣＰＵ１０１はローカルメモリ制御部１１２の内部レジスタに対して、伸張バッファとして機能させるローカルメモリ１１１のアドレス範囲Ａと、圧縮バッファとして機能させるローカルメモリ１１１のアドレス範囲Ｂを記憶する。次にローカルメモリ制御部１１２は、伸張処理部１０２および描画処理部１０３のそれぞれに対して、伸張バッファとして使用可能なローカルメモリ１１１のアドレス範囲Ａを設定する。またローカルメモリ制御部１１２は、描画処理部１０３および圧縮処理部１０４のそれぞれに対して、圧縮バッファとして使用可能なローカルメモリ１１１のアドレス範囲Ｂを設定する。そして、伸張処理部１０２、描画処理部１０３、圧縮処理部１０４のそれぞれは、設定されたアドレス範囲にしたがったローカルメモリ１１１の記憶領域にアクセスしながら、必要に応じて伸張処理、描画処理、圧縮処理を行う。
【００８７】
このような構成を持つ画像処理装置において、描画データに圧縮画像データが含まれることを検知したＣＰＵ１０１は、次の処理を行う。ＣＰＵ１０１は、ローカルメモリ制御部１１２に対して、ローカルメモリ１１１のアドレス［ＸＸＸＸ」から［ＹＹＹＹ−１］までの第１のアドレス範囲をアドレス範囲Ａとして記憶する。またこの場合、ＣＰＵ１０１は、ローカルメモリ制御部１１２に対して、ローカルメモリ１１１のアドレス［ＹＹＹＹ］から［ＺＺＺＺ−１］までの第２のアドレス範囲をアドレス範囲Ｂとして記憶する。
【００８８】
一方で、描画データに圧縮画像データが含まれないことを検知したＣＰＵ１０１は、ローカルメモリ制御部１１２に対して、設定されるべきアドレス範囲が無効であることを示す「Ｎｕｌｌ」をアドレス範囲Ａとして記憶する。またこの場合、ＣＰＵ１０１は、ローカルメモリ制御部１１２に対して、ローカルメモリ１１１のアドレス［ＸＸＸＸ］から［ＺＺＺＺ−１］までの第３のアドレス範囲（第１のアドレス範囲から第２のアドレス範囲の和）をアドレス範囲Ｂとして記憶する。
【００８９】
以上の変形例での、アドレス範囲ＡおよびＢは、一例であり、上記とは異なるアドレス範囲でも良い。このように、伸張バッファおよび圧縮バッファのそれぞれに用いられる記憶領域のアドレス範囲（すなわちメモリサイズ）をＣＰＵ１０１からの指示で動的に設定するようにしても本発明は成り立つ。
【００９０】
＜その他の実施形態＞
以上の実施形態では、描画データ中の圧縮画像データとは、再描画処理時の背面画像として含まれた描画オブジェクトや、ＰＤＬデータあるいは描画データ生成時に埋め込まれるＪＰＥＧなどの描画オブジェクトであるという前提であった。ここで、再描画処理時の背面画像であれば、ページ内に単一の描画オブジェクトのみを有することが予め分かっているのに対して、ページ内の写真などは複数の描画オブジェクトを含む場合も多い。このような圧縮画像データを含む描画データに対しては、伸張処理部において、ページ内の圧縮画像データの有無と同時に個数も含めて管理することも可能である。すなわち、描画処理中に伸張処理部１０２において全ての圧縮画像データの伸張が完了し、更に、描画処理部１０３において全ての非圧縮画像データの読み出しが完了したことを検知すれば、以降の処理でローカルメモリ１１１の割り当て制御を変更できる。これを実現するための仕組みとしては、例えば、描画処理部１０３に、描画データ中の圧縮画像データの描画オブジェクト数に対する描画処理済の描画オブジェクト数を保持する内部レジスタを用意すれば良い。
【００９１】
以上で説明したように、各実施形態によれば、ＰＤＬプリント時に、描画データ中に圧縮画像データが含まれるか否かを判定する。描画データに圧縮画像データが含まれる場合は、ローカルメモリ１１１において伸張バッファと圧縮バッファの両方を割り当てるように制御する。更に、描画処理対象のページ内の全ての圧縮画像データの描画処理が完了した場合は、当該ページの以降の描画処理において、ローカルメモリにおいて伸張バッファを確保せずに圧縮バッファの記憶領域として割り当てるように制御する。このように、描画データの内容に従って必要な緩衝メモリを確保できるようにローカルメモリ内の記憶領域の割り当てを切り替えることで、ローカルメモリの増加に伴うコスト増加を抑制し、コストパフォーマンスを向上した画像処理装置を提供することができる。なお、上述の圧縮バッファの記憶容量は一例であり、描画データに圧縮画像データが含まれる場合に確保される圧縮バッファの記憶容量よりも、含まれない場合に確保される圧縮バッファの記憶容量の方が大きければよい。
【００９２】
なお上記実施形態では、ローカルメモリ内の記憶領域の割り当てを制御していたが、本発明はこれに限られない。すなわち、一方を伸張バッファ、他方を圧縮バッファとして使用できる、２つの物理的に異なるローカルメモリを用意して、描画データに圧縮画像データが含まれない場合には次のように構成すれば良い。伸張バッファを、圧縮バッファと同じように、描画処理部および圧縮処理部の両方からアクセス可能に構成し、描画処理部が描画処理後の画像データを伸張バッファに記憶し、且つ、圧縮処理部がその画像データに対して圧縮処理を行うようにする。
【００９３】
また上記の実施形態では、描画データに圧縮画像データが含まれている場合、伸張バッファと圧縮バッファをローカルメモリ１１１に設ける。その一方で、描画データに圧縮画像データが含まれていない場合、伸張バッファをローカルメモリ１１１に設けずにその伸張バッファ分のメモリ使用量を圧縮バッファとして利用可能なように、圧縮バッファをローカルメモリ１１１に設ける。ここでローカルメモリ１１１にバッファを設けるということは、上述の実施形態のように、ローカルメモリ１１１の少なくとも一部の記憶領域を、そのバッファとして機能させることである。ところで、本発明は、描画データに圧縮画像データが含まれていない場合に、伸張バッファ分のメモリ使用量を圧縮バッファとして利用させないようにしても良い。例えばローカルメモリ１１１に伸張処理部１０２、描画処理部１０３、圧縮処理部１０４以外の他の処理部Ａが接続されているようなシステム構成を考える。このシステム構成において描画データに圧縮画像データが含まれていない場合には、伸張バッファ分のメモリ使用量をその他の処理部Ａが利用できるようにしても良い。すなわち、本発明は、次のような装置あるいはシステムにも適用可能である。描画データに圧縮画像データが含まれていて伸張処理部１０２による圧縮画像データの伸張が必要な場合には、ローカルメモリ１１１に伸張バッファを設ける設定を行う装置あるいはシステム。また、描画データに圧縮画像データが含まれていなくて伸張処理部１０２による圧縮画像データの伸張が必要ない場合には、ローカルメモリ１１１中の伸張バッファ分のメモリを、伸張処理部１０２とは異なる処理部が利用可能となる設定を行う装置あるいはシステム。
【００９４】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
0006655963.tif 000002
【図２】
0006655963.tif 000003
【図３】
0006655963.tif 000004
【図４】
0006655963.tif 000005
【図５】
0006655963.tif 000006
【図６】
0006655963.tif 000007