(57)【要約】【課題】印刷すべきラスタデータを格納する画像メモリの価格は、ページプリンタの原価に大きな影響を与える。つまり、ページプリンタの原価を考えると画像メモリの容量は小さいことが望ましい。【解決手段】圧縮部２１は、入力される画像データを圧縮して、画像メモリ２に格納する。予測・判定部１１は、圧縮の実行中に圧縮部２１から逐次供給される圧縮後のデータ量および圧縮済みの画素数を基に、画像メモリ２の使用量Ｙを予測し、予測された使用量Ｙと予め設定された閾値Ｓとの比較結果を出力する。ＣＰＵ  ５０１は、比較結果がＹ≧Ｓを示す場合、画像メモリ２に格納された画像データを破棄し、入力画像データの解像度低下を指示し、圧縮部２１に解像度低下後の画像データの圧縮を実行させる。【選択図】    図１
2004320476.tif 000002
【特許請求の範囲】
【請求項１】
画像形成用に所定単位に画像データが読み出されるメモリに画像データを格納する画像処理装置であって、
入力される画像データを圧縮して、前記メモリに格納する圧縮手段と、
圧縮を実行中の前記圧縮手段から逐次供給される圧縮後のデータ量および圧縮済みの画素数を基に、前記メモリの使用量を予測する予測手段と、
予測された使用量と予め設定された閾値との比較結果を出力する比較手段と、
前記比較結果が前記使用量≧前記閾値を示す場合、前記メモリに格納された画像データを破棄し、前記入力画像データの解像度低下を指示し、解像度低下後の画像データの圧縮を前記圧縮手段に実行させる制御手段とを有し、
前記圧縮手段は、入力画像データをディザマトリクス中の閾値と比較してディザ処理するディザ処理器、前記ディザ処理手段の処理結果と、ディザマトリクスの幅分、先行してディザ処理した結果との排他的論理和をとる論理演算器、並びに、前記排他的論理和の結果をランレングス圧縮する圧縮器を有し、
前記予測手段は、前記圧縮手段から逐次供給される圧縮後のデータ量を累算する累算器、前記累算結果を前記圧縮済みの画素数で微分する微分器、並びに、前記微分結果および前記累結果を基に、前記メモリの使用量を予測する予測器を有することを特徴とする画像処理装置。
【請求項２】
画像形成用に所定単位に画像データが読み出されるメモリに画像データを格納する画像処理方法であって、
入力される画像データを圧縮して、前記メモリに格納し、
前記圧縮の実行中に逐次供給される圧縮後のデータ量および圧縮済みの画素数を基に、前記メモリの使用量を予測し、
予測された使用量と予め設定された閾値との比較結果を出力し、
前記比較結果が前記使用量≧前記閾値を示す場合、前記メモリに格納された画像データを破棄し、前記入力画像データの解像度低下を指示し、解像度低下後の画像データの圧縮を実行させることを特徴とする画像処理方法。
【請求項３】
請求項２に記載された画像処理を画像処理装置に実行させることを特徴とするプログラム。
【請求項４】
請求項３に記載されたプログラムが記録されたことを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は画像処理装置およびその方法に関し、例えば、画像形成用に所定単位に画像データが読み出されるメモリに画像データを格納する画像処理に関する。
【０００２】
【従来の技術】
ページプリンタのエンジン（以下、単に「エンジン」という）は一定速度で動作する。そのため、エンジンの動作に遅れることなく、ラスタデータをエンジンに供給する必要がある。もし、エンジンの動作にラスタデータの供給が追いつかないと、エンジンが空回りして印刷が不能になる。
【０００３】
エンジンの空回りを防止するための手法は色々ある。ある手法は、一頁分のラスタデータを画像メモリに保持してから印刷を開始する。この手法を用いる場合、例えば、Ａ４記録紙に、６００ｄｐｉの記録密度で四色フルカラーの画像を印刷する場合、１３５ＭＢ以上の画像メモリが必要になる。また、ページプリンタの印刷速度が速くなると、印刷完了後、次頁のラスタデータの作成を開始したのでは間に合わず、印刷中に次頁のラスタデータの作成を開始する必要が生じる。この場合、さらに画像メモリが必要になる。
【０００４】
勿論、大容量の画像メモリを利用できれば上記の問題は解決する。しかし、印刷すべきラスタデータを格納する画像メモリの価格は、ページプリンタの原価に大きな影響を与える。つまり、ページプリンタの原価を考えると画像メモリの容量は小さいことが望ましい。
【０００５】
そこで、ラスタデータを圧縮して画像メモリに格納する手法が広く使用されている。ラスタデータを圧縮することで、必要な画像メモリの容量は小さくなる。しかし、頁の特徴によっては、圧縮後のラスタデータのデータ量が画像メモリの容量より大きくなり、画像メモリに格納できない場合がある。この問題は、ラスタデータの解像度を下げて再圧縮すれば解決可能である。
【０００６】
ラスタデータを再圧縮する最も単純な手法は、画像メモリの空きがなくなったことを検出した後、解像度を下げて再圧縮を開始する手法である。この手法は、追加するハードウェアが少なく、プリンタの原価に与える影響は小さい。しかし、画像メモリがフルになってから再圧縮を開始するため、無駄が多く、処理速度の向上は望めない。
【０００７】
別の手法として、特開平４−３２３０６０号公報、特開平６−２３３１４１号公報、特開平１１−８８１８９号公報に開示しているように、複数の圧縮回路や圧縮方法を適宜切り替える方法がある。これらの方法によれば処理速度は向上する。しかし、少ないハードウェアでは実現不可能であり、プリンタの原価に与える影響は大きい。
【０００８】
【特許文献】
特開平４−３２３０６０号公報、特開平６−２３３１４１号公報、特開平１１−８８１８９号公報
【０００９】
【発明が解決しようとする課題】
本発明は、上述の問題を個々にまたはまとめて解決するためのもので、画像形成用に所定単位に画像データが読み出されるメモリのフルを簡単な構成で防ぐことを目的とする。
【００１０】
また、上記メモリのフルを予測して、画像処理時間の増加を抑えることを他の目的とする。
【００１１】
【課題を解決するための手段】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１２】
本発明は、画像形成用に所定単位に画像データが読み出されるメモリに画像データを格納する際に、入力される画像データを圧縮して、前記メモリに格納し、前記圧縮の実行中に逐次供給される圧縮後のデータ量および圧縮済みの画素数を基に、前記メモリの使用量を予測し、予測された使用量と予め設定された閾値との比較結果を出力し、前記比較結果が前記使用量≧前記閾値を示す場合、前記メモリに格納された画像データを破棄し、前記入力画像データの解像度低下を指示し、解像度低下後の画像データの圧縮を実行させることを特徴とする。
【００１３】
【発明の実施の形態】
以下、本発明にかかる実施形態の画像処理を図面を参照して詳細に説明する。
【００１４】
［構成］
図１は実施形態のデータ圧縮装置１の構成例を示すブロック図である。
【００１５】
データ圧縮装置１は、画像メモリ使用量の予測・判定部１１および圧縮部２１からなる。
【００１６】
予測・判定部１１は、圧縮後のラスタデータ量１０３から画像メモリ２の使用量を時々刻々予測し、画像メモリ２の予測使用量が予め設定した閾値より大きくなると、画像メモリ溢れ信号１１０を有効にする。画像メモリ溢れ信号１１０は、データ圧縮装置１を含むプリンタシステム全体を制御するＣＰＵまたはシーケンサ５００に供給される。
【００１７】
圧縮部２１は、ラスタデータ１０１を後述する方法で圧縮し、圧縮後のラスタデータ１０２を画像メモリ２に格納する。また、圧縮後のラスタデータ量１０３と、処理済ピクセル数Ｐを予測・判定部１１に出力する。
【００１８】
予測・判定部１１は、メモリカウンタ１２、微分回路１３、設定レジスタ１４、予測部１５および判定部１６からなる。
【００１９】
メモリカウンタ１２は、圧縮後のラスタデータ量１０３を累算するカウンタである。メモリカウンタ１２は、圧縮動作が開始された時点で初期化される。
【００２０】
微分回路１３は、メモリカウンタ１２のカウント値ｃを圧縮処理済ピクセル数Ｐで微分した微分係数ａ＝ｄｃ／ｄＰを計算する。メモリカウンタ１２のカウント値ｃは、画像メモリ２の使用量を示すので、微分係数ａはメモリ使用量の増加率を表す。
【００２１】
設定レジスタ１４は、先行ピクセル数Ｄ、判定部１６が使用するメモリ使用量の閾値Ｓを保持する。画像メモリ２の使用量を、現在のピクセル位置からどれだけ先行したピクセル位置で予測するかを指示するのが、先行ピクセル数Ｄである。
【００２２】
予測部１５は、微分回路１３で得られた微分係数ａ、設定レジスタ１４に保持された先行ピクセル数Ｄ、メモリカウンタ１２の現在のカウント値ｃから、予測使用量Ｙを計算する。
【００２３】
判定部１６は、予測部１５で得られた予測使用量Ｙと、設定レジスタ１４に保持された閾値Ｓを比較して、Ｙ≧Ｓならば画像メモリ２がフルになると予測し、画像メモリ溢れ信号１１０を有効にする。
【００２４】
ＣＰＵ  ５００は、データ圧縮装置１を含むプリンタシステム全体を制御する。
【００２５】
図２は圧縮部２１の構成例を示すブロック図である。圧縮部２１は、バッファメモリ２０１、ディザ処理部２０２、ＦＩＦＯ  ２０３、排他的論理和演算器２０４、ハフマン符号化部２０５および制御部２０６からなる。なお、圧縮部２１の動作は制御部２０６によって制御される。
【００２６】
入力されるラスタデータ１０１はバッファメモリ２０１に格納される。バッファメモリ２０１の容量は、ディザ処理部２０２の処理に必要なラスタデータを保持できる容量であればよい。ディザ処理部２０２は、バッファメモリ２０１にバッファされたラスタデータにディザ処理を施す。ディザ処理結果を、ＦＩＦＯ  ２０３によってディザマトリクスの幅分遅延される。
【００２７】
排他的論理和演算器２０４は、ディザ処理結果とＦＩＦＯ  ２０３の出力とを排他的論理和（ＸＯＲ）演算する。ハフマン符号部２０５は、ＸＯＲ演算の結果を符号化し、圧縮後のラスタデータ１０２を生成する。
【００２８】
ＦＩＦＯ  ２０３によって、ディザマトリクスの幅分、ディザ処理後のデータを遅延するので、ＦＩＦＯ  ２０３の出力は、現在のピクセルよりディザマトリクスの幅分先行するピクセルのデータになる。ディザ処理には周期性があるので、ディザマトリクスの幅ごとにディザ処理後のデータは似通ったデータになり易い。従って、排他的論理和演算器２０４によるＸＯＲ演算は、同じ値同士のＸＯＲをとる確率が高くなり、その結果、排他的論理和演算器２０４の出力は‘０’が連続してランレングスが長くなる。
【００２９】
制御部２０６は、圧縮部２１の動作を制御するとともに、処理済のピクセル数Ｐを累計して出力し、圧縮後のラスタデータ量１０３を出力する。
【００３０】
［処理の流れ］
図３はデータ圧縮装置１の動作を説明するフローチャートである。なお、データ圧縮装置１は、ＣＰＵ（ｏｒ  シーケンサ）５０１によって制御される。
【００３１】
ＣＰＵ  ５０１は、印刷が指示されるなどラスタデータの圧縮が必要になるとデータ圧縮装置１を起動し、メモリカウンタ１２を初期化し、設定レジスタ１４に先行ピクセル数Ｄと閾値Ｓを設定する（Ｓ１）。
【００３２】
初期化が完了した後、データ圧縮装置１は、ラスタデータを読み込み（Ｓ２）、圧縮処理を行うと同時に、画像メモリ２の予測使用量Ｙを予測する（Ｓ３）。そして、予想使用量Ｙが更新される度に、予測使用量Ｙと閾値Ｓを比較する（Ｓ４）。比較結果がＹ＜Ｓならば画像メモリ２に空きがあり、続けて圧縮動作が可能であるが、圧縮動作を継続する前に頁の終わりを判定する（Ｓ５）。一頁全体の圧縮処理が終了したならば、ＣＰＵ  ５０１に一頁分の圧縮処理が終了したことを通知し、圧縮処理を終了する。また、一頁全体の圧縮処理が未了であれば、ステップＳ２へ戻り、ラスタデータを読み込み圧縮する動作を繰り返す。
【００３３】
一方、Ｙ≧Ｓの場合は、このまま圧縮動作を続けると画像メモリ２がフルになるので、データ圧縮装置１は、画像メモリ溢れ信号１１０を有効にして、ＣＰＵ  ５０１に圧縮動作を継続すると画像メモリ２がフルになることを知らせる。画像メモリ溢れ信号１１０が有効になると、ＣＰＵ  ５０１は、画像メモリ２を初期化するなどして圧縮済みの画像データを破棄し、ラスタデータの解像度を変更し（Ｓ６）、データ圧縮装置１の処理をステップＳ１へ戻す。
【００３４】
なお、ラスタデータの解像度変更は、ＣＰＵ  ５０１がデータ圧縮装置１へラスタデータを供給する描画部や画像処理部へ解像度の変更を通知し、ラスタデータの出力の再開を指示することで実現される。
【００３５】
図４は予測・判定部１１の処理例を示すフローチャートである。
【００３６】
データ圧縮装置１が起動され、メモリカウンタ１２が初期化され、設定レジスタ１４に先行ピクセル数Ｄ、閾値Ｓが設定される（Ｓ１１）。
【００３７】
予測・判定部１１は、圧縮部２１が出力する圧縮後のデータ量をメモリカウンタ１２で累算する（Ｓ１２）。メモリカウンタ１２のカウント値ｃは画像メモリ２の使用量に相当する。このカウント値ｃを微分回路１３に送り、圧縮部２１から供給される処理済ピクセル数Ｐで微分させ、微分係数ａ＝ｄｃ／ｄＰを計算させる。
【００３８】
次に、予測・判定部１１は、予測部１５に微分係数ａ、設定レジスタ１４に保持された先行ピクセル数Ｄおよび現在のカウント値ｃを供給し、予測使用量Ｙを計算させる（Ｓ１３）。そして、判定部１６に予測使用量Ｙおよび設定レジスタ１４に保持された閾値Ｓを供給し、画像メモリ２のフルを判定させる（Ｓ１４）。判定結果がＹ≧Ｓならば画像メモリ溢れ信号１１０を有効にし（Ｓ１５）、判定結果がＹ＜Ｓならば処理をステップＳ１２へ戻す。
【００３９】
図５は微分回路１３および予測部１５による画像メモリ２の使用量予測処理を示すフローチャートである。
【００４０】
カウント値ｃを処理済ピクセル数Ｐで微分し微分係数ａ＝ｄｃ／ｄＰを計算し（Ｓ２１）、微分係数ａ、先行ピクセル数Ｄおよび現在のカウント値ｃに基づき、予測式（１）に従い、予測使用量Ｙを計算し（Ｓ２２）、予測使用量Ｙを判定部１６に出力する（Ｓ０２４）。以上の処理は繰り返される。
Ｙ  ＝  ａ×Ｄ  ＋  ｃ    …（１）
【００４１】
なるべくランレングスを長くするようにラスタデータを前処理した後、ランレングス圧縮を行う場合、圧縮処理が進むに従い、圧縮データの累計はほぼ線形に増加する。本実施形態の圧縮部１１は、上記の前処理を行ってランレングス圧縮を行うので、予測式（１）に示すような一次式で画像メモリ２の使用量を予測することが可能である。画像メモリ２の使用量を一次式で予測するため必要なハードウェアは少なくて済む。
【００４２】
そして、画像メモリ２がフルになる前に画像メモリ２がフルになるか否かを判定することが可能であるから、画像メモリ２がフルになる前に圧縮動作を停止して、ラスタデータの解像度を落とすなどの処置を取ることができ、無駄に圧縮動作を進めることなく、処理時間の無駄をなくすことができる。とくに、先行ピクセル数Ｄ分先の圧縮データ量を予測することができるので、早めに画像メモリ２がフルになるか否かを判定することができ、解像度を低下させたラスタデータの圧縮を行うにしても、圧縮の開始から圧縮の再開までの時間を短縮することが可能になる。
【００４３】
また、画像メモリ２がフルになるか否かの判定用の閾値は変更可能であるから、画像メモリ２の容量が異なるプリンタでも同一のハードウエアで対応可能である。
【００４４】
とくに、小容量のページメモリを搭載したページプリンタにおいて、僅かなハードウェアの追加により、ページメモリのフルを防ぎ、画像処理時間の増加を抑えることが可能である。
【００４５】
【他の実施形態】
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００４６】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００４７】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００４８】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【００４９】
【発明の効果】
以上説明したように、本発明によれば、画像形成用に所定単位に画像データが読み出されるメモリのフルを簡単な構成で防ぐことができる。
【００５０】
また、上記メモリのフルを予測して、画像処理時間の増加を抑えることができる。
【図面の簡単な説明】
【図１】データ圧縮装置の構成例を示すブロック図、
【図２】圧縮部の構成例を示すブロック図、
【図３】データ圧縮装置の動作を説明するフローチャート、
【図４】予測・判定部の処理例を示すフローチャート、
【図５】微分回路および予測部による画像メモリ２の使用量予測処理を示すフローチャートである。
【図１】
2004320476.tif 000003
【図２】
2004320476.tif 000004
【図３】
2004320476.tif 000005
【図４】
2004320476.tif 000006
【図５】
2004320476.tif 000007