(57)【要約】      （修正有）【課題】ＲＡＭのサイズが制限された画像処理装置において、圧縮・伸長プロセッサーによる圧縮効率が悪いプリントデータに対して、画像処理用領域を拡張したとしてもプログラム処理用領域が不足しないようにする。【解決手段】ＣＰＵは、圧縮・伸張プロセッサーによる圧縮処理の開始後、ビットマップデータの所定のバンドの圧縮処理が終了したときに、現時点までに圧縮処理が完了している各バンドの圧縮率の平均値又は当該バンドの圧縮率を判定用圧縮率として取得する圧縮率取得処理（ステップＳ１０４の処理）と、取得した判定用圧縮率が所定閾値以上であると判定した場合に、画像処理用領域の容量を所定量だけ拡張し、且つ、プログラム処理用領域の少なくとも一部にメモリ圧縮を実行することで該プログラム処理用領域の容量を上記画像処理用領域の拡張量と同量だけ縮小する領域最適化処理（ステップＳ１１２の処理）とを実行する。【選択図】図８
2020116803.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、該ＣＰＵに接続されて画像処理用領域及びプログラム処理用領域を有するＲＡＭと、ビットマップデータをバンド毎に圧縮して上記画像処理用領域に格納させる圧縮・伸長プロセッサーと、上記ＣＰＵに接続され、上記画像処理用領域内に格納されたビットマップデータを上記圧縮・伸張プロセッサーによってバンド毎に伸張して所定機器に送信する送信部とを備えた画像処理装置であって、
上記ＣＰＵは、
上記圧縮・伸張プロセッサーによる圧縮処理の開始後、上記ビットマップデータの所定のバンドの圧縮処理が終了したときに、現時点までに圧縮処理が完了している各バンドの圧縮率の平均値又は上記所定のバンドの圧縮率を判定用圧縮率として取得する圧縮率取得処理と、
上記取得した判定用圧縮率が所定閾値未満であるか否かを判定して、該所定閾値未満であると判定した場合には、上記画像処理用領域の容量及びプログラム処理用領域の容量をそれぞれ現時点の容量に維持する一方、上記所定閾値以上であると判定した場合には、上記画像処理用領域の容量を所定量だけ拡張し、且つ、上記プログラム処理用領域の少なくとも一部にメモリ圧縮を実行することで該プログラム処理用領域の容量を上記画像処理用領域の拡張量と同量だけ縮小する領域最適化処理と、を実行するように構成されている、画像処理装置。
【請求項２】
請求項１記載の画像処理装置において、
上記ＣＰＵは、上記画像処理用領域の拡張及びプログラム処理用領域の縮小を含む上記領域最適化処理を実行する度に、上記所定閾値を所定量だけ増量して更新するように構成されている、画像処理装置。
【請求項３】
請求項１又は２記載の画像処理装置において、
上記ＲＡＭは、上記画像処理用領域及びプログラム処理用領域の他に、画像処理の対象となる元データを保存するためのデータ保存領域をさらに含み、
上記ＣＰＵは、上記取得した上記判定用圧縮率が上記所定閾値以上であると判定した場合において、上記プログラム処理用領域の全部にメモリ圧縮を実行することで該プログラム処理用領域の容量を縮小し、この縮小量と同量だけ画像処理用領域の容量を拡張したとしても、画像処理用領域の容量が必要量に対して不足すると判定した場合には、上記ＲＡＭのデータ保存領域の一部を画像処理用領域として使用するように構成されている、画像処理装置。
【請求項４】
請求項１乃至３のいずれか一項に記載の画像処理装置において、
上記ＣＰＵは、プリントデータのＰＤＬ（Ｐａｇｅ  ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）を解析して中間データであるディスプレイリストを生成し、生成したディスプレイリストをラスタライズ処理してビットマップデータを生成するものであり、
上記ＣＰＵは、上記プリントデータの容量が所定容量よりも大きいか否かを判定して、上記所定容量より大きいと判定した場合には、上記圧縮・伸長プロセッサーによって上記ビットマップデータの圧縮処理を開始する前に予め上記領域最適化処理を実行するように構成されている、画像処理装置。
【請求項５】
請求項１乃至４のいずれか一項に記載の画像処理装置を備えた画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び該画像処理装置を備えた画像形成装置
【背景技術】
【０００２】
従来より、ＲＡＭの容量を低減するために、ラスタライズ後のビットマップデータをバンド毎に圧縮してＲＡＭに格納するようにした画像処理装置は知られている（例えば、特許文献１参照）。
【０００３】
この画像処理装置は、プリントデータのＰＤＬ（Ｐａｇｅ  ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）を解析して中間データであるディスプレイリストを生成し、生成したディスプレイリストをＲＩＰ（Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ）を用いてバンド毎にビットマップデータ化し、このビットマップデータを圧縮・伸長プロセッサーによってバンド毎に圧縮してＲＡＭに格納する。そして、プリントエンジンコントローラーが、ＲＡＭ内に格納されたビットマップデータを呼出してＲＩＰにより伸長した後に、該伸長したビットマップデータをバンド毎にプリントエンジンに送信する。圧縮・伸長プロセッサーには例えばＡＳＩＣが使用されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２９０３７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上述の画像処理装置では、ＲＡＭ内の記憶領域を、画像処理に使用する画像処理用領域と、プログラム処理に使用するプログラム処理用領域とに分ける必要がある。
【０００６】
しかし、画像データの内容によっては、圧縮・伸長プロセッサーによる圧縮効率が悪くなって画像処理用領域の容量が不足するという問題がある。
【０００７】
この問題に対して、圧縮・伸長プロセッサーの圧縮効率を上げて圧縮処理を実施することも考えられる。しかしこの場合、ビットマップデータの圧縮伸長時のパフォーマンスが低下するという問題がある。
【０００８】
この問題に対して、プログラム処理用領域を縮小して、その縮小分だけ画像処理用領域を拡張することが考えられる。しかし、単に、プログラム処理用領域の縮小分を画像処理用領域の拡張分に当てただけでは、プログラム処理用領域が不足して画像処理装置が動作エラーで停止する虞がある。
【０００９】
また、ＲＡＭの全体記録容量を増大させることも考えられるが、この場合コストが著しく増加してしまう。したがって、コスト抑制の観点から、ＲＡＭのサイズは所定サイズに制限する必要がある。
【００１０】
本発明は、かかる点に鑑みてなされたものであり、その目的とするところは、ＲＡＭのサイズが制限された画像処理装置において、圧縮・伸長プロセッサーによる圧縮効率が悪い画像データを使用した場合に、画像処理用領域を十分に拡張しつつ、該拡張に起因するプログラム処理用領域の不足を防止することにある。
【課題を解決するための手段】
【００１１】
本発明の一局面に係る画像処理装置は、ＣＰＵと、該ＣＰＵに接続されて画像処理用領域及びプログラム処理用領域を有するＲＡＭと、ビットマップデータをバンド毎に圧縮して上記画像処理用領域に格納させる圧縮・伸長プロセッサーと、上記ＣＰＵに接続され、画像処理用領域内に格納されたビットマップデータを圧縮・伸張プロセッサーによってバンド毎に伸張して所定機器に送信する送信部とを備えている。
【００１２】
そして、上記ＣＰＵは、上記圧縮・伸張プロセッサーによる圧縮処理の開始後、上記ビットマップデータの所定のバンドの圧縮処理が終了したときに、現時点までに圧縮処理が完了している各バンドの圧縮率の平均値又は上記所定のバンドの圧縮率を判定用圧縮率として取得する圧縮率取得処理と、上記取得した判定用圧縮率が所定閾値未満であるか否かを判定して、該所定閾値未満であると判定した場合には、上記画像処理用領域の容量及びプログラム処理用領域の容量をそれぞれ現時点の容量に維持する一方、上記所定閾値以上であると判定した場合には、上記画像処理用領域の容量を所定量だけ拡張し、且つ、上記プログラム処理用領域の少なくとも一部にメモリ圧縮を実行することで該プログラム処理用領域の容量を上記画像処理用領域の拡張量と同量だけ縮小する領域最適化処理と、を実行するように構成されている。
【００１３】
本発明の他の局面に係る画像形成装置は、上記画像処理装置を備えている
【発明の効果】
【００１４】
本発明によれば、ＲＡＭのサイズが制限された画像処理装置において、圧縮・伸長プロセッサーによる圧縮効率が悪い画像データを使用した場合に、画像処理用領域を十分に拡張しつつ、該拡張に起因するプログラム処理用領域の不足を防止することにある。
【図面の簡単な説明】
【００１５】
【図１】図１は、画像処理装置を含む画像形成装置のハードウェア構成の一例を示す図である。
【図２】図２は、ＲＡＭの構成の一例を示す図である。
【図３】図３は、印刷用の画像生成処理の一例を示すフローチャートである。
【図４】図４は、プリントデータを解析してバンド毎のディスプレイリストを作成する際の分割イメージ図である。
【図５】図５は、ＲＡＭの領域最適化処理を説明するための説明図である。
【図６】図６は、メモリ圧縮の概要を説明するための説明図である。
【図７】図７は、プログラム処理用領域におけるメモリ圧縮の対象となる領域の容量算出方法を説明するための説明図である。
【図８】図８は、圧縮率取得処理及びＲＡＭの領域最適化処理の内容を示すフローチャートである。
【図９】図９は、変形例における領域最適化処理を示すフローチャートである。
【図１０】図１０は、実施形態２を示す図８相当図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態を図面に基づいて詳細に説明する。尚、本発明は、以下の実施形態に限定されるものではない。
【００１７】
《実施形態１》
図１は、画像処理装置１０の一例を含む画像形成装置１００のハードウェア構成を示すブロック図である。
この画像形成装置１００では、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ＨＤＤ１４、ラスタイメージプロセッサ（以下、ＲＩＰという）１５、圧縮・伸長プロセッサー１６、通信インターフェース１７、操作部インターフェース１８、エンジンコントローラー１９、及びスキャナコントローラー２０を備えている。これらの機器はバス線３０を介して相互に接続されている。操作部インターフェース１８は操作部２１に接続され、エンジンコントローラー１９はプリントエンジン２２に接続され、スキャナコントローラー２０はスキャナ２３に接続されている。
【００１８】
ＣＰＵ１１は、ＲＯＭ１２又はＨＤＤ１４に記憶されたプログラムをＲＡＭ１３に読み出して実行する。さらに、バス線３０に接続される各デバイスをＣＰＵ１１が統括的に制御する。ＲＯＭ１２には電源ＯＮ時に実行されるブートプログラムが格納され、ＨＤＤ１４にはオペレーティングシステム等が格納されている。
【００１９】
通信インターフェース１７は、パソコン等の外部端末３１からプリントデータを受信する。
【００２０】
操作部インターフェース１８は、操作部２１とのインターフェース部であって、操作部２１に表示する画像データを操作部２１に対して出力する。また、操作部インターフェース１８は、操作部２１からのユーザーの入力情報を、ＣＰＵ１１に伝える役割をする。操作部２１、例えば液晶式のタッチパネル等により構成される。
【００２１】
プリントエンジン２２は、エンジンコトローラーからの画像信号を記録媒体上に出力する出力機であり、電子写真方式、インクジェット方式の何れでもよい。
【００２２】
圧縮・伸長プロセッサー１６とＲＩＰ１５とは画像処理関連のデバイスである。
圧縮・伸長プロセッサー１６は、例えばＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）で構成されている。圧縮・伸長プロセッサー１６は、ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）とを備え、ＲＡＭ１３内のデータを該圧縮・伸長プロセッサー１６に転送させて、圧縮又は伸長を行い、その結果をＲＡＭ１３又はエンジンコントローラー１９へＤＭＡで転送させる。
【００２３】
ＲＩＰ１９は、ページ記述言語（ＰＤＬ）コードやディスプレイリストをビットマープデータに変換する専用ハードウェアである。
【００２４】
［ＲＡＭ１３の構成］
図２に示すように、ＲＡＭ１３内の記憶領域は、処理領域１と、データ保存領域２とを有している。
【００２５】
処理領域１は、例えばＯＳとハードウェアとの間の各種のプログラム処理を実行するためのプログラム処理用領域１ａと、プリントデータを画像処理するための画像処理用領域１ｂとからなる。この画像処理用領域１ｂには、プリントデータの中間コードであるディスプレイデータや、バンド毎に圧縮されたビットマップデータ等を一時的に格納する。
【００２６】
プログラム処理用領域１ａは、プログラムの実行に必要な設定情報や変数を一時的に格納する。データ保存領域は、スキャナ２３により取り込んだデータや、外部端末３１から受信したプリントデータ等を一時的に格納する。
【００２７】
データ保存領域２は、画像処理の対象となる元画像データ（プリントデータやスキャンデータ）が保存される。具体的には、データ保存領域２は、スキャンデータ保存領域２ａとプリントデータ保存領域２ｂとを含んでいる。スキャンデータ保存領域２ａには、スキャナ２３から受信した画像データ（スキャナデータ）が一時的に保される。プリントデータ保存領域２ｂには、外部端末３１から受信したプリントデータが一時的に保存される。このようなデータ保存領域２を設けることによって、例えば印刷処理の実行中にスキャン処理を実行するといったマルチタスク処理が可能となる。
【００２８】
［画像生成処理の説明］
次に、図３のフローチャートを参照して画像生成処理の概要を説明する。この画像生成処理は、ＣＰＵ１１がＲＯＭ内に記憶されたジョブ制御プログラムを実行することにより実現される。
【００２９】
先ずステップＳ１では、未処理の頁が存在しないか否かを判定し、この判定がＮＯである場合にはステップＳ５に進む一方、ＹＥＳである場合にはステップＳ２に
進む。
先ず、ステップＳ２では、プリントデータのＰＤＬ（Ｐａｇｅ  ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）を解析してバンド毎に中間データであるディスプレイリストを生成し、生成したディスプリリストをＲＡＭ１３の画像処理用領域１ｂに一時的に保持する。図４は、このバンドＤｋのイメージを示す図である。バンドＤｋは、プリントデータを縦方向に複数に分割した領域であって、この例ではバンド数は２８個とされているが、これに限ったものではない。
【００３０】
次に、ステップＳ３において、ＲＩＰ１５に対してディスプレイリストをラスタライズ処理してビットマープデータ化するように指示する。
【００３１】
次にステップＳ４において、生成されたビットマープデータを、圧縮・伸長プロセッサー１６によってバンド毎に圧縮してＲＡＭ１３の画像処理用領域１ｂに一時的に格納し、その後ステップＳ１に戻る。
【００３２】
Ｓ１において、未処理のページが存在しない場合は、Ｓ５に進む。Ｓ５では、エンジンコントローラー（送信部）１９に対して、ビットマープデータをプリントエンジン（
所定機器）２２に送信するように指示する。エンジンコントローラー１９は、プリントエンジン２２と同期を取りながらビットマープデータを送信する。また，エンジンコントローラー１９は、ビットマップデータをプリントエンジン２２に送信する前に、圧縮・伸長プロセッサー１６によってビットマープデータの伸張処理を行う。エンジンコントローラー１９は、プリントエンジン２２への送信が終了したビットマープデータをＲＡＭ１３の画像処理用領域１ｂから削除する。
【００３３】
［ＲＡＭ１３の領域最適化処理について］  
ＣＰＵ１１は、上記ステップＳ３の処理の実行時に、圧縮・伸長プロセッサー１６によるビットマープデータの圧縮率（＝圧縮後の容量／圧縮前の容量）の平均値を算出して、この平均圧縮率（判定用圧縮率に相当）が所定閾値Ｔ以上である場合（つまり圧縮効率が悪い場合）には領域最適化処理を実行する。
【００３４】
図５は、この領域最適化処理の実行イメージを示す図であり、上段が当該処理の実行前のＲＡＭ１３の領域状態を示し、下段が当該処理を実行した場合のＲＡＭ１３の領域状態を示している。
【００３５】
同図に示すように、この領域最適化処理が実行されることにより、画像処理用領域１ｂが拡張して、プログラム処理用領域１ａがこの拡張分と同量だけ縮小している。
【００３６】
ここで、単にプログラム処理用領域１ａを縮小したとすると、プログラム処理用領域１ａが不足して画像形成装置１００の動作に必要なプログラムが実行できなくなり、画像形成装置１００がエラー停止する虞がある。
【００３７】
そこで、本実施形態では、プログラム処理用領域１ａを単に縮小するのではなく、プログラム処理用領域１ａの少なくとも一部をメモリ圧縮することによって、プログラム処理用領域１ａにおける使用可能容量をそのままに維持しつつ、プログラム処理用領域１ａの全体容量を縮小するようにしている。このメモリ圧縮の一例として、ＬＩＮＵＸ（登録商標）のＺＲＡＭと呼ばれる方式等が知られている。
【００３８】
［メモリ圧縮の説明］
図６は、メモリ圧縮を説明するためのイメージ図であり、上段はＲＡＭの圧縮前の状態を示す、下段はＲＡＭの圧縮後の状態を示している。
【００３９】
先ず上段を参照して、メモリ圧縮に際しては、ＲＡＭ内にスワップ領域１０１を設ける。このスワップ領域１０１以外の領域１０２には、データＡ〜データＣが記憶されている。
これらのデータＡ〜Ｃは、例えばオペレーティングシステムや、アプリケーション等により参照されるデータである。
そして、この図の例では、長時間アクセスされていないデータＡをスワップ対象として選択する。メモリ不足時には、スワップ対象であるデータＡを圧縮してスワップ領域１０１にスワップアウトさせる（図６の下段参照）。スワップアウトされたデータＡは、圧縮されているため、メモリを効率的に使用することができる。データＡをスワップアウトした後のメモリ領域を解放することで、ＲＡＭの使用可能な領域を維持しつつ全体容量が縮小される。
【００４０】
ここで、メモリ圧縮前のＲＡＭの容量をＸとし、メモリ圧縮後のＲＡＭの容量をＹとしたとき、メモリ圧縮時の圧縮率εは、次式（１）で定義される。
ε＝Ｙ／Ｘ        ・・・・・・・・式（１）
【００４１】
［領域最適化処理時の圧縮領域の容量算出方法］
この圧縮率εを用いて、上記領域最適化処理の実行時にプログラム処理用領域１ａ内にて圧縮対象となる領域の容量を算出することができる。
【００４２】
図７は、図５の二点鎖線で囲んだ部分を拡大した図であり、図中の斜線部分が圧縮対象の領域である。Ｃ１は、領域最適化処理が実行される前のプログラム処理用領域１ａの容量であり、Ｘは、そのうち圧縮対象となる領域の容量である。Ｃ２は、領域最適化処理が実行された後のプログラム処理用領域１ａの容量であり、εＸは、圧縮領域の容量（上記Ｘに圧縮率εを掛け合わせた値）である。この図にしたがって、メモリの容量に着目して等式を立てると次式（２）が成立する。
【００４３】
（Ｃ１−Ｘ）＋εＸ＝Ｃ２    ・・・・・・・式（２）
式（２）をＸについて解くと次式（３）となる。
Ｘ＝（Ｃ１−Ｃ２）／（１−ε）・・・・・・・式（３）
【００４４】
ここで、圧縮率εは圧縮・伸長プロセッサー１６の性能によって決まる定数であり、Ｃ１は既知であり、Ｃ２は、必要とされる画像処理用領域１ｂの容量から逆算して求めることができる。よって、これらＣ１，Ｃ２，及びεを式（３）に代入することで、領域最適化処理の実行時にプログラム処理用領域１ａ内において圧縮対象とするべき領域の容量Ｘが算出される。
【００４５】
［圧縮率取得処及び領域最適化処理のフローチャート］
次に、図８のフローチャートを参照して、圧縮率取得処及びＲＡＭ１３の領域最適化処理の詳細を説明する。このフローチャートの処理は、ＣＰＵ１１がＲＯＭ１２内に記憶された所定プログラムを実行することによりソフトウェアとハードウェアとの協働により実現される。
【００４６】
ステップＳ１０１では、頁数ｊ＝１に設定する。   
【００４７】
ステップＳ１０２では、バンド数ｋ＝１に設定する。
【００４８】
ステップＳ１０３では、頁数ｊのバンド数ｋについて、ビットマップデータ（ラスターイメージ）の圧縮処理が完了したか否かを判定し、この判定がＮＯである場合には本ステップＳ１０３の処理を再度実行する一方、この判定がＹＥＳである場合にはステップＳ１０４に進む。
【００４９】
ステップＳ１０４では、現時点までに圧縮処理が完了したビットマップデータの各バンドの圧縮率を合計した値を、圧縮が完了したバンドの総数で除した値を平均圧縮率（判定用圧縮率）として算出する。ここで、各バンドの圧縮率は、圧縮・伸長プロセッサー１６に入力された圧縮前のデータの容量をＭｂｅｆｏｒｅ、圧縮後のデータ容量をＭａｆｔｅｒとしたとき、Ｍａｆｔｅｒ／Ｍｂｅｆｏｒｅと表される。尚、この定義によれば圧縮率が大きいほど（１に近いほど）「圧縮効率」が悪いことを意味し、圧縮率が小さいほど「圧縮効率」が高いことを意味する。
【００５０】
ステップＳ１０５では、ステップＳ１０４で算出した平均圧縮率が予め設定した所定閾値Ｔ未満であるか否か（つまり圧縮効率が許容レベル以上である否かを）を判定し、この判定がＮＯである場合には、ステップＳ１１０に進む一方、ＹＥＳである場合にはステップＳ１０６に進む。
【００５１】
ステップＳ１０６では、バンド数ｋがバンドの最終行であるか否かを判定し、この判定がＮＯである場合には、ステップＳ１０７に進んでバンド数ｋを一つ増加させた後、ステップＳ１０３に戻る。一方、この判定がＹＥＳである場合にはステップＳ１０８に進む。
【００５２】
ステップＳ１０８では、頁数ｊが印刷ジョブに含まれるプリントデータの最終頁であるか否かを判定して、この判定がＮＯである場合にはステップＳ１０９に進んで頁数ｊを一つ増加させた後、ステップＳ１０２に戻る。一方、この判定がＹＥＳである場合にはリーターンする。
【００５３】
ステップＳ１０５の判定がＮＯである場合に進むステップＳ１１０では、平均圧縮率が上記所定閾値Ｔ以上である、つまり圧縮効率が許容レベルを下回っていると判断して、必要な画像処理用領域１ｂの拡張量を算出する。この拡張量は、圧縮・伸長プロセッサー１６の圧縮率が現時点の値で持続した場合に、画像処理用領域１ｂが不足しないようにプリントデータの頁数やサイズによって決定される。
【００５４】
ステップＳ１１１では、ステップＳ１１０で決定した圧縮処理領域の拡張量と同じ量を、プログラム処理用領域１ａの縮小量として決定する。
【００５５】
ステップＳ１１２では、上述した式（３）を用いてプログラム処理用領域１ａの一部又は全部をメモリ圧縮して、プログラム処理用領域１ａをステップＳ１１１で決定した量だけ縮小させる。本ステップＳ１１２の処理が終了した後は、処理を終了する。
【００５６】
［実施形態１の作用効果］
以上説明したように、本実施形態の画像形成装置１００において、ＣＰＵ１１は、圧縮・伸長プロセッサー１６による圧縮処理の開始後、ビットマップデータの各バンド（所定のハンド）の圧縮処理が終了したときに、現時点までに圧縮処理が完了している各バンドの圧縮率の平均値（平均圧縮率）を算出する（ステップＳ１０４）。そして、ＣＰＵ１１は、算出した平均圧縮率が所定閾値Ｔ未満であるか否かを判定して、該所定閾値Ｔ未満であると判定した場合（ステップＳ１０５の判定がＹＥＳである場合）、上記画像処理用領域１ｂの容量及びプログラム処理用領域１ａの容量をそれぞれ現時点の容量に維持する。一方、ＣＰＵ１１は、算出した平均圧縮率が上記所定閾値Ｔ以上であると判定した場合には（ステップＳ１０５の判定がＮＯである場合には）、画像処理用領域１ｂの容量を拡張し、且つ、プログラム処理用領域１ａにメモリ圧縮を実行して、該プログラム処理用領域１ａの容量を画像処理用領域１ｂの拡張量と同量だけ縮小する処理（ステップＳ１１２の処理）を実行する。
【００５７】
この構成によれば、圧縮・伸長プロセッサー１６によるビットマップデータの平均圧縮率が所定閾値Ｔ以上である場合（圧縮・伸長プロセッサーの圧縮効率が悪い場合）には、画像処理用領域１ｂが拡張される。したがって、画像処理用領域１ｂの不足による画質低下や画像処理速度の低下を防止することができる。
【００５８】
また、この画像処理用領域１ｂの拡張に伴い、プログラム処理用領域１ａの容量を縮小するようにしているが、単に縮小するのではなく、プログラム処理用領域１ａにメモリ圧縮を行うようにしている。したがって、プログラム処理用領域１ａの使用可能領域が減少することもない。また、ＲＡＭ１３の全体容量は一定に保たれるので、ＲＡＭ１３の容量の増設コストが生じず、低コスト化を図ることができる。
【００５９】
《変形例》
図９は、変形例のうち実施形態１とは異なる部分のみを示すフローチャートである。
【００６０】
本変形例は、図８のフローチャートにおける二点鎖線で囲んだ部分の処理が実施形態１とは異なっている。以下の説明では、この異なる部分のみを説明し、その他、上記実施形態１と共通部分の説明は省略する。
【００６１】
ステップＳ１２０では、縮小側であるプログラム処理用領域１ａの全部をメモリ圧縮したとしても、画像処理用領域１ｂが不足するか否かを判定する。この判定がＮＯである場合には、ステップＳ１２２に進む一方、ＹＥＳである場合にはステップＳ１２１に進む。
【００６２】
ステップＳ１２１では、プログラム処理用領域１ａの全部をメモリ圧縮することに加えて、データ保存領域２（図２参照）の一部を画像処理用領域１ｂとして使用し、しかる後に処理を終了する。
【００６３】
ステップＳ１２０の判定がＮＯである場合に進むステップＳ１２２では、上述した式（３）を用いてプログラム処理用領域１ａの一部又は全部をメモリ圧縮して、プログラム処理用領域１ａをステップＳ１１１で決定した量だけ縮小させる。ステップＳ１２２の処理後は、処理を終了する。
【００６４】
［変形例の作用効果］
本変形例によれば、ＣＰＵ１１は、ビットマップデータの平均圧縮率が所定閾値Ｔ以上であると判定した場合において、プログラム処理用領域１ａの全部にメモリ圧縮を実行してプログラム処理用領域１ａの容量を所定量縮小し、画像処理用領域１ｂの容量を該縮小量と同量だけ拡張したとしても、画像処理用領域１ｂの容量が不足すると判定した場合には、ＲＡＭ１３のデータ保存領域２の一部を画像処理用領域１ｂとして使用するように構成されている。
【００６５】
これにより、画像処理用領域１ｂが必要量に対して不足する事態を確実に防止することができる。
【００６６】
《実施形態２》
図１０は、実施形態２を示すフローチャートである。この実施形態は、図１０の二点鎖線で囲った部分の処理が実施形態１とは異なっている。
【００６７】
すなわち、ステップＳ２０１〜ステップＳ２１２の処理は、ステップＳ１０１〜ステップＳ１１２と同じであるためその詳細な説明は省略する。
【００６８】
ステップＳ２１２の次に進むステップＳ２１３では、所定閾値Ｔに予め定めた増量値δを加算して所定閾値Ｔを更新する。この増量値δは０よりも大きい値であって、例えば所定閾値Ｔの１／５程度に設定される。本ステップＳ２１２の処理後はステップＳ２０６に進む
【００６９】
［実施形態２の作用効果］
本実施形態によれば、プログラム処理用領域１ａの縮小及び画像処理用領域１ｂの拡張からなる領域最適化処理が実行される度に、所定閾値Ｔがδだけ増量されて更新される。
【００７０】
これによれば、領域最適化処理が実行された後、圧縮・伸長プロセッサー１６によるピットマップデータの圧縮効率がさら悪化した場合（圧縮率が増加した場合）に、その都度、領域最適化処理が実行される。したがって、実施形態１の如く、一度だけ領域最適化処理が実行される場合に比べて、画像処理用領域１ｂ及びプログラム処理用領域１ａの不足を確実に回避することができる。
【００７１】
《他の実施形態》
本発明は、上記実施形態１について、以下のような構成としてもよい。
上記各実施形態では、圧縮・伸長プロセッサー１６によるビットマップデータの圧縮処理が完了する度に、平均圧縮率を算出するようにしているが、これに限ったものではない。例えば、所定間隔置き（例えば三つのバンド数のデータの圧縮処理が完了する度に）平均圧縮率を算出するようにしてもよい。
【００７２】
また、上記実施形態では、領域最適化処理を実行するか否かを判定するための判定用圧縮率として平均圧縮率を採用するようにしているが、これに限ったものではなく、例えばステップＳ１０４の直近に圧縮処理が完了したバンドの圧縮率を判定用圧縮率として採用するようにしてもよい。
【００７３】
また上記各実施形態において、プリントデータ（ディスプレイリストに展開する前の元データ）の種類（ＰＤＦ、ワードファイル等の種類）に応じて所定閾値Ｔを変更するようにしてもよい。
【００７４】
また、上記各実施形態において、ＣＰＵ１１は、受信したプリントデータの容量（つまりＲＡＭ１３のデータ保存領域２に保存されているデータ）が所定容量よりも大きいか否かを判定して、大きいと判定した場合には、圧縮・伸長プロセッサー１６によってビットマップデータの圧縮処理を開始する前に予め上記領域最適化処理（ステップＳ１１２の処理）
を実行するようにしてもよい。
これにより、圧縮処理中に複雑な演算が実行されてＣＰＵ１１の演算負担が増大するのを防止することができる。
【００７５】
また、本発明は各実施形態及び変形例に限定されるものでなく、本発明には、これらの各実施形態及び変形例を適宜組み合わせた構成が含まれる。
【産業上の利用可能性】
【００７６】
以上説明したように、本発明は、画像処理装置及び画像形成装置について有用であり、特に、プリンタ、ファクシミリ、複写機、又は複合機（ＭＦＰ）等に適用する場合に有用である。
【符号の説明】
【００７７】
１ａ      ：プログラム処理用領域
１ｂ      ：画像処理用領域
２        ：データ保存領域
１０      ：画像処理装置
１１      ：ＣＰＵ
１３      ：ＲＡＭ
１６      ：圧縮・伸長プロセッサー
１９      ：エンジンコントローラー（送信部）
２２      ：プリントエンジン（所定機器）
１００    ：画像形成装置
Ｔ        ：所定閾値
ｋ        ：バンド数
δ        ：増量値
【図１】
2020116803.tif 000003
【図２】
2020116803.tif 000004
【図３】
2020116803.tif 000005
【図４】
2020116803.tif 000006
【図５】
2020116803.tif 000007
【図６】
2020116803.tif 000008
【図７】
2020116803.tif 000009
【図８】
2020116803.tif 000010
【図９】
2020116803.tif 000011
【図１０】
2020116803.tif 000012