(57)【要約】【課題】１画像中で劣化度合いにばらつきが生じたり、印刷速度が低下する問題を生じることなく、画面全体に渡り、一様で高画質な画像を高速に形成できるようにする。【解決手段】  入力された画像データに基づいて画像形成を行う画像形成装置において、画像データを周波数帯域毎に階層的に符号化するに際し、符号化されたデータを周波数帯域毎に分割（ＨＨ１、ＨＬ１、ＬＨ１、ＨＨ２、ＨＬ２、ＬＨ２…）し、周波数帯域毎に分割されたデータを周波数帯域毎にメモリに格納する一方、メモリに格納されたデータの容量を検出し、データ容量検出でメモリの空き領域が不足すると検出した場合、データ分割によって分割されメモリに記憶されたデータのうち高周波帯域のデータを最も高周波側から順に（ＨＨ１、ＨＬ１、ＬＨ１、ＨＨ２、ＨＬ２、ＬＨ２…）破棄するとともに、メモリに格納されたデータを用いて画像形成すべき画像データを復号する。【選択図】図１５
2008147988.tif 000002
【特許請求の範囲】
【請求項１】
入力された画像データに基づいて画像形成を行う画像形成装置において、
前記画像データを周波数帯域毎に階層的に符号化する階層的符号化を行う符号化手段と、
前記符号化手段で符号化されたデータを周波数帯域毎に分割するデータ分割手段と、
前記データ分割手段で周波数帯域毎に分割されたデータを周波数帯域毎に格納する記憶手段と、
前記記憶手段に格納されたデータの容量を検出するデータ容量検出手段と、
前記データ容量検出手段が前記記憶手段の空き領域が不足すると検出した場合、前記データ分割手段によって分割され前記記憶手段に記憶されたデータのうち高周波帯域のデータを最も高周波側から順に破棄するデータ破棄手段と、
前記記憶手段に格納されたデータを用いて画像形成すべき画像データを復号する復号手段を有することを特徴とする画像形成装置。
【請求項２】
前記データ破棄手段でデータを破棄することにより空いた記憶領域にデータを移動するデータ移動手段を有し、前記データ移動手段でデータを移動することによって空いた記憶領域にデータを記憶することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記データ破棄手段でデータを破棄することにより空いた記憶領域にデータを記憶することを特徴とする請求項１に記載の画像形成装置。
【請求項４】
前記記憶手段において、前記データ破棄手段でデータを破棄することにより空いた記憶領域を周波数帯域毎に記憶領域を割り当てて確保することを特徴とする請求項３に記載の画像形成装置。
【請求項５】
前記データ分割手段によって分割され前記記憶手段に記憶されたデータのうち、所定画質の画像を形成するために必須ではない高周波帯域のデータを前記データ破棄手段により破棄し、所定画質の画像を形成するために必要な周波数帯域のデータを前記記憶手段に記憶させることを特徴とする請求項１に記載の画像形成装置。
【請求項６】
前記データ分割手段によって分割され前記記憶手段に記憶されたデータのうち、画像を形成するために必要な周波数帯域のデータを復号時データを呼び出す順に前記記憶手段の記憶領域に配置することを特徴とする請求項５に記載の画像形成装置。
【請求項７】
前記データ容量検出手段が前記記憶手段の空き領域が不足すると検出した場合で、それ以上所定画質の画像を形成するために必須ではない高周波帯域のデータを前記データ破棄手段により破棄できない場合、それ以上の画像形成処理を中止する制御を行なうことを特徴とする請求項５に記載の画像形成装置。
【請求項８】
入力された画像データに基づいて画像形成を行う画像形成装置の制御方法において、
前記画像データを周波数帯域毎に階層的に符号化する階層的符号化を行う符号化過程と、
前記符号化過程で符号化されたデータを周波数帯域毎に分割するデータ分割過程と、
前記データ分割過程で周波数帯域毎に分割されたデータを周波数帯域毎に記憶手段に格納する記憶過程と、
前記記憶手段に格納されたデータの容量を検出するデータ容量検出過程と、
前記データ容量検出過程が前記記憶手段の空き領域が不足すると検出した場合、前記データ分割過程によって分割され前記記憶手段に記憶されたデータのうち高周波帯域のデータを最も高周波側から順に破棄するデータ破棄過程と、
前記記憶手段に格納されたデータを用いて画像形成すべき画像データを復号する復号過程を含むことを特徴とする画像形成装置の制御方法。
【請求項９】
前記データ破棄過程でデータを破棄することにより空いた記憶領域にデータを移動するデータ移動過程を含み、前記データ移動過程でデータを移動することによって空いた記憶領域にデータを記憶することを特徴とする請求項８に記載の画像形成装置の制御方法。
【請求項１０】
前記データ破棄過程でデータを破棄することにより空いた記憶領域にデータを記憶することを特徴とする請求項８に記載の画像形成装置の制御方法。
【請求項１１】
前記記憶手段において、前記データ破棄過程でデータを破棄することにより空いた記憶領域を周波数帯域毎に記憶領域を割り当てて確保することを特徴とする請求項１０に記載の画像形成装置の制御方法。
【請求項１２】
前記データ分割過程によって分割され前記記憶手段に記憶されたデータのうち、所定画質の画像を形成するために必須ではない高周波帯域のデータを前記データ破棄過程により破棄し、所定画質の画像を形成するために必要な周波数帯域のデータを前記記憶手段に記憶させることを特徴とする請求項８に記載の画像形成装置の制御方法。
【請求項１３】
前記データ分割過程によって分割され前記記憶手段に記憶されたデータのうち、画像を形成するために必要な周波数帯域のデータを復号時データを呼び出す順に前記記憶手段の記憶領域に配置することを特徴とする請求項１２に記載の画像形成装置の制御方法。
【請求項１４】
前記データ容量検出過程が前記記憶手段の空き領域が不足すると検出した場合で、それ以上所定画質の画像を形成するために必須ではない高周波帯域のデータを前記データ破棄過程により破棄できない場合、それ以上の画像形成処理を中止する制御を行なうことを特徴とする請求項１２に記載の画像形成装置の制御方法。
【請求項１５】
請求項８〜１２のいずれか１項に記載の画像形成装置の制御方法を実施すべく、画像形成装置の構成部材を制御することを特徴とする画像形成装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、階層的符号化によるデータ圧縮をともなう画像形成処理を行なう画像形成装置、画像形成装置の制御方法、および画像形成装置の制御プログラムに関するものである。
【背景技術】
【０００２】
近年、ネットワークの高速化に伴いマルチメディア化が進み、コンピュータや画像処理機器において、従来では考えられなかったような大容量の画像データを扱うようになってきており、また、画像データの大容量化に伴ってプリンタの高機能化も進んでいる。
【０００３】
こうした状況で、メモリなどの記憶領域にデータを蓄積するシステムの構成では、予め多量のメモリ容量を備えておくことが必要となり、装置のコスト増をもたらす問題がある。そのため、従来よりプリンタなどの画像形成装置内部において、処理中の画像データを圧縮処理して取り扱う技術が提案されている。
【０００４】
しかし、圧縮が効きにくい高解像度の画像を処理する際には、備えられたメモリに圧縮データが収まりきらない場合がある。このような場合、従来では、次のような方法が提案されている。
【０００５】
その１つは、メモリの残容量に応じて圧縮率を動的に変化させる方法である。この手法では、既に圧縮されたデータの容量から画像データ全体を圧縮した場合のデータ容量を換算する。そして、データ容量を換算した結果、メモリ容量に余裕があれば低圧縮率の方法を用い、メモリ容量に余裕がなければ高圧縮率の方法を用いる（たとえば下記の特許文献１参照）。
【０００６】
もう１つは、メモリに入りきらない場合、画像の解像度を低下させる方法である。この手法では、圧縮したデータがメモリに入りきらないと判断した時点で圧縮を中止し、解像度を低下させてから圧縮を再度行う（たとえば下記の特許文献２）。
【特許文献１】特開２００３−２５１８６９号公報
【特許文献２】特開２００４−３２０４７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしなながら、圧縮処理中のメモリが不足した場合、上記のような従来技術では次のような問題がある。
【０００８】
上述の１つめの従来技術（たとえば特許文献１）のように、メモリの残容量に応じて圧縮率を動的に変化させる方法では、同一の画像であるにも関わらず、圧縮率を変化させる処理単位で画像の劣化度合いが異なってしまう。特に領域によって画像の性質が大きく異なる場合には、画像の劣化度合いにばらつきが生じてしまう可能性がある。
【０００９】
また、データがメモリに入りきらない場合、画像の解像度を低下させる方法（たとえば特許文献２）では、圧縮したデータがメモリに入りきらないと判断した場合、圧縮を中止して、解像度を低くした後、再度圧縮処理を行わなければならない。このため、再度圧縮処理が発生した場合には印刷速度が低下する問題がある。
【００１０】
本発明の課題は、上記の問題を解決し、１画像中で劣化度合いにばらつきが生じたり、印刷速度が低下する問題を生じることなく、画面全体に渡り、一様で高画質な画像を高速に形成できるようにすることにある。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本発明においては、入力された画像データに基づいて画像形成を行う画像形成装置、その制御方法、および制御プログラムにおいて、前記画像データを周波数帯域毎に階層的に符号化する階層的符号化を行うに際し、符号化されたデータを周波数帯域毎に分割し、周波数帯域毎に分割されたデータを周波数帯域毎に記憶手段に格納する一方、記憶手段に格納されたデータの容量を検出し、前記データ容量検出で前記記憶手段の空き領域が不足すると検出した場合、前記データ分割によって分割され前記記憶手段に記憶されたデータのうち高周波帯域のデータを最も高周波側から順に破棄するとともに、前記記憶手段に格納されたデータを用いて画像形成すべき画像データを復号する構成を採用した。
【００１２】
あるいはさらに、前記データ破棄により空いた記憶領域にデータを移動することによって空いた記憶領域にデータを記憶する構成を採用した。
【００１３】
あるいはさらに、前記データ破棄により空いた記憶領域にデータを記憶する、さらにその場合、データを破棄することにより空いた記憶領域を周波数帯域毎に記憶領域を割り当てて確保する構成を採用した。
【００１４】
あるいはさらに、分割され、前記記憶手段に記憶されたデータのうち、所定画質の画像を形成するために必須ではない高周波帯域のデータを破棄し、所定画質の画像を形成するために必要な周波数帯域のデータを前記記憶手段に記憶させる構成を採用した。
【００１５】
あるいはさらに、分割され、前記記憶手段に記憶されたデータのうち、画像を形成するために必要な周波数帯域のデータを復号時データを呼び出す順に前記記憶手段の記憶領域に配置する構成を採用した。
【００１６】
あるいはさらに、前記データ容量検出で前記記憶手段の空き領域が不足すると検出した場合で、それ以上、所定画質の画像を形成するために必須ではない高周波帯域のデータを前記データ破棄により破棄できない場合、それ以上の画像形成処理を中止する制御を行なう構成を採用した。
【発明の効果】
【００１７】
上記構成によれば、前記画像データを周波数帯域毎に階層的に符号化する階層的符号化を行うに際し、符号化されたデータを周波数帯域毎に分割して記憶手段に格納し、分割され前記記憶手段に記憶されたデータのうち高周波帯域のデータを最も高周波側から順に破棄し、破棄後前記記憶手段に記憶されているデータを用いて復号を行うようにしているので、１画像中で劣化度合いにばらつきが生じたり、印刷速度が低下する問題を生じることなく、画面全体に渡り、一様で高画質な画像を高速に形成できる、という優れた効果がある。
【００１８】
また、前記データ破棄により空いた記憶領域にデータを移動することによって空いた記憶領域にデータを記憶する、ないしは前記データ破棄により空いた記憶領域にデータを記憶する、さらにその場合、データを破棄することにより空いた記憶領域を周波数帯域毎に記憶領域を割り当てて確保する、あるいは、分割され、前記記憶手段に記憶されたデータのうち、所定画質の画像を形成するために必須ではない高周波帯域のデータを破棄し、所定画質の画像を形成するために必要な周波数帯域のデータを前記記憶手段に記憶させる、あるいは、分割され、前記記憶手段に記憶されたデータのうち、画像を形成するために必要な周波数帯域のデータを復号時データを呼び出す順に前記記憶手段の記憶領域に配置する、といった構成を採用することにより、効率よく記憶手段の記憶領域を利用し、高画質な画像を高速に形成できる、という優れた効果がある。
【００１９】
また、前記データ容量検出で前記記憶手段の空き領域が不足すると検出した場合で、それ以上、所定画質の画像を形成するために必須ではない高周波帯域のデータを前記データ破棄により破棄できない場合、それ以上の画像形成処理を中止する制御を行なうことにより、著しく劣化した画像を形成、出力してしまうことを防止できる、という優れた効果がある。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して、本発明を実施するための最良の形態の一例として、画像データを符号化圧縮して取り扱うプリンタにおける実施例を示す。
【実施例１】
【００２１】
図１は、本発明を採用した画像形成装置の構成を示している。
【００２２】
同図において、符号１００は画像形成装置（プリンタ）であり、１９０はホストとなるＰＣである。
【００２３】
符号１１１はＣＰＵであり、画像形成装置全体を制御する。１１２はインターフェース制御部であり、ホストＰＣである１９０に接続し通信制御を行う。１１３はＲＯＭであり、プリンタを制御するプログラムを格納している。１１４はＲＡＭであり、データの読み書きが可能なメモリである。１１５はＥＥＰＲＯＭであり、電源が遮断された場合においても、そのデータを保持することができる。
【００２４】
符号１１６は操作パネル部であり、ＬＣＤやＬＥＤ、スイッチが備えられており、ユーザーが画像形成装置の設定や画像形成装置の状態を確認するために用いられる。１１７は画像処理部であり、ホストＰＣから受信した画像データを印刷するための変換処理を行う。
【００２５】
符号１１８は符号化部であり、画像データの符号化（圧縮）処理を行う。１１９は復号部であり、画像データの復号（伸張）処理を行う。１２０は画像形成部（画像形成エンジン）であり、処理された画像データに従い画像を形成する。
【００２６】
なお、本実施例ではホストに直接接続された画像形成装置による例をあげるが、ネットワークを介してホストとなるＰＣに接続されるような構成でも本発明は実施でき、ホストとの接続がどのような形態であっても、本発明の制御方法はホスト装置との接続形態にいささかも限定されるものではない。
【００２７】
また画像形成の方法については言及しないが、画像形成部１２０を構成する画像形成エンジンには、電子写真方式、インクジェット方式、熱転写方式、ドットインパクト方式など、どのような画像形成方式のものでも用いることができる。
【００２８】
図２は、本実施例における、画像データの符号化（圧縮）処理を伴う画像形成装置の制御方法を示すフローチャートである。
【００２９】
印刷開始時、始めにステップＳ２０１においてホストＰＣから画像データを受信する。次にステップＳ２０２において記録出力に必要な各種の必要な画像処理を行う。
【００３０】
本実施例において、ステップＳ２０２で処理済みとなった画像データは、画像形成部１２０で出力されるまで、符号化（圧縮）してメモリ（ＲＡＭ１１４の画像データ領域）上に置く。ステップＳ２０３では、この画像データの符号化処理を行う。
【００３１】
ステップＳ２０４において画像データの１ページ分の受信が完了したか判断する。ステップＳ２０４において画像データの１ページ分受信が未完了であればステップＳ２０１に戻り再度ホストＰＣからデータの受信を行う。
【００３２】
ステップＳ２０４において画像データの１ページ分受信が完了していた場合、ステップＳ２０５で画像データの復号（伸張）処理を行い、ステップＳ２０５において復号された画像データは順次ステップＳ２０６で、画像形成部１２０により印刷出力する。
【００３３】
以上の各シーケンスにおいて、符号化前、あるいは符号化後の画像データはＲＡＭ１１４の画像データ領域に蓄積される。ただし、ステップＳ２０５とステップＳ２０６の間においては、印刷処理を間に合わせる都合上ＲＡＭ１１４に蓄積せず、画像形成部１２０に直接画像データを送って印刷処理を行う構成をとってもよい。あるいは、画像形成部１２０に送信される画像データ量が小さく、ＲＡＭ１１４に格納できることが判っている場合など、適当な条件に応じて画像データを無圧縮で取り扱う制御を行なうようにしてもよい。
【００３４】
なお、図２は、基本的な画像形成制御のシーケンスであって、画像形成装置の機能に応じてシーケンスの応用も考えられる。例えば複数ページ分の画像データを蓄積する場合もある。このような場合においても、画像データの符号化（圧縮）処理を伴う画像形成装置であって、図２のようなシーケンスを備える場合は、本発明を実現すると有効である。
【００３５】
図３は、本実施例における画像データ符号化（圧縮）手順の一例を示す図である。本実施例では、圧縮方式として、ＪＰＥＧ２０００の圧縮方式を例示するが、本発明はＪＰＥＧ２０００で採用されているようなウェーブレット変換のような階層的符号化方式ならばどのような方法であっても有効である。そのため、必ずしもＪＰＥＧ２０００のすべての機能を備える必要はなく、また、階層的符号化方式を用いる他の圧縮規格を利用する場合は、下記の処理のうち、その圧縮規格における処理に読み換えて実施すればよい。
【００３６】
画像符号化（圧縮）処理時、最初にステップＳ３０１において画像データのタイリング処理を行う。画像の符号化処理はこのタイリングされた領域単位で実行される。この処理は図４において詳述する。
【００３７】
次に、ステップＳ３０２ではタイリングされた領域毎にウェーブレット変換を行う。この処理は図５以降において詳述する。
【００３８】
ステップＳ３０３では、量子化の処理を行う。ただし、ＪＰＥＧ２０００のデフォルトではウェーブレット係数の量子化は行わない。ステップＳ３０４においてエントロピー符号化を行う。ＪＰＥＧ２０００の場合、このエントロピー符号化では、ＥＢＣＯＴ(Embedded Block Coding with Optimized Truncation)と呼ばれる処理を行うが、本実施例においては算術符号化を行うものとする。本実施例では、以上の処理により圧縮画像を得る。
【００３９】
図４は本実施例におけるタイリング処理（図３ステップＳ３０１）を示している。
【００４０】
図４の実線（外枠部分）は画像全体４００を示している。また、破線で分割された矩形領域はタイリングされた領域（タイル画像）４０１を示している。タイリング処理とはこのように画像全体４００を矩形領域に分割する処理である。図４では画像全体４００をＮ個のタイリング領域４０１に分割している。この分割されたタイル画像４０１に対して左上の１と示された画像から右方向に向かって順次ウェーブレット変換の処理を行う。当該処理段のタイル画像の処理が全て終わったら、下の段の処理を同様に左から右方向の順番で行う。そして最終的に右下のＮと示されたタイル画像の処理を行う。
【００４１】
図５は本実施例においてタイル画像をウェーブレット変換する手順（図３ステップＳ３０２）を示している。
【００４２】
まず、タイル画像５０１（図４では４０１）の垂直成分に対して垂直成分のフィルタ５１０で周波数分割する。すなわち、ローパスフィルタ５１１とハイパスフィルタ５１２を用いて、高周波成分と低周波成分のデータに分割する。
【００４３】
次に垂直成分に関して分割された各画像データを平行成分のフィルタ５２０で周波数分割する。すなわち、垂直成分に関して分割された各画像データをその平行成分に対してローパスフィルタ５２１、５２３とハイパスフィルタ５２２、５２４を用いて、高周波成分と低周波成分のデータに分割する。
【００４４】
上記の図５の処理をウェーブレット変換の１ステージ分解と呼ぶ。以上の処理を行うことにより、出力画像５０２を得ることができる。出力画像５０２は、上記フィルタ処理を通してそれぞれ得られるブロックＬＬ、ブロックＨＬ、ブロックＬＨ、ブロックＨＨから構成される。なお、表記簡略化を期して、これらのブロックに関しては、以下では必要に応じてＬＬ、ＨＬ、ＬＨ、ＨＨ、あるいはＬＬ領域、ＨＬ領域、ＬＨ領域、ＨＨ領域などのように記載する。
【００４５】
出力画像５０２は、ＬＬの領域では、元画像の解像度を半分に落とした画像になっている。またＨＨ、ＨＬ、ＬＨの領域はほとんどが０か、または小さい値であり、算術符号化を行うと圧縮が効き易いデータになっている。
【００４６】
図６は本実施例における複数ステージ分解を示している。この複数ステージ分解は、上記のタイリングとウェーブレット変換を複数段階行なうものである。
【００４７】
図６では、（ａ）〜（ｄ）のように３ステージ分解を行なっている。図６（ａ）の入力タイル画像に対して１ステージ分割を行った図６（ｂ）において、ＬＬ１の領域では、元タイル画像の解像度を半分に落とした画像になっている。ＨＨ１、ＨＬ１、ＬＨ１の領域は圧縮率が効き易いデータであるが、ＬＬ１領域では圧縮が効きにくいデータである。
【００４８】
そのため、ここではＬＬ１領域に対して再度変換（２ステージ目）を行う。２ステージ目の変換を行った結果が図６（ｃ）である。図６（ｂ）〜図６（ｃ）の処理を２ステージ分解と呼ぶ。さらに同様にして図６（ｃ）〜図６（ｄ）の処理を行なうことができ、この処理を３ステージ分解と呼ぶ。
【００４９】
なお、ＪＰＥＧ２０００の規格では、デフォルトで５ステージ分解を行うことになっているが、本実施例では説明を簡単にするため３ステージ分解までの処理を例示する。もちろん、本発明を実施するに際してはステージ分解の回数は任意の回数で実施可能であることはいうまでもない。
【００５０】
次に圧縮された画像のメモリへの格納方法を説明する。ここでは、まず、画像データがメモリに入りきったため、画像データの解像度を低下させないで進める場合の処理を説明する（図７〜図９）。
【００５１】
図７〜図９は図４におけるタイル画像１〜Ｎの符号化処理とメモリ格納を示している。なお、通常のメモリでは、実行プログラムや圧縮前のデータ、その他画像形成装置の制御に必要なデータが格納されているが、以下の説明においては圧縮画像を格納するスペースとして用意されている領域に限定した使用方法を説明する。また、これ以降の各図においてはアドレス値を付記するが、これらは説明のために便宜的に付記されたものに過ぎず、アドレスのマッピング方法は図示のものに限定されるものではない。
【００５２】
まず、図７は、本実施例におけるタイル画像１の符号化処理とメモリ格納を示している。図７において、１ステージ分解されたＨＨ１、ＨＬ１、ＬＨ１のデータを算術符号化し、メモリのアドレス0x3_0000の領域に格納する。２ステージ分解されたＨＨ２、ＨＬ２、ＬＨ２のデータは算術符号化し、0x2_0000の領域に格納する。また、３ステージ分解されたＨＨ３、ＨＬ３、ＬＨ３のデータは算術符号化し、0x1_0000の領域に格納する。３ステージ分解されたＬＬ３のデータは算術符号化し、0x0_0000の領域に格納する。
【００５３】
図８は本実施例における、タイル画像２の符号化処理とメモリ格納を示している。
【００５４】
図８において、１ステージ分解されたＨＨ１、ＨＬ１、ＬＨ１のデータは算術符号化し、タイル画像１の１ステージ分解されたＨＨ１、ＨＬ１、ＬＨ１のデータの後に格納する。また、２ステージ分解されたＨＨ２、ＨＬ２、ＬＨ２のデータは算術符号化し、タイル画像１の２ステージ分解されたＨＨ２、ＨＬ２、ＬＨ２のデータの後に格納する。３ステージ分解されたＨＨ３、ＨＬ３、ＬＨ３のデータは算術符号化し、タイル画像１の３ステージ分解されたＨＨ３、ＨＬ３、ＬＨ３のデータの後に格納する。３ステージ分解されたＬＬ３のデータは算術符号化し、タイル画像１の３ステージ分解されたデータＬＬ３の後に格納する。
【００５５】
図９は、上記同様に、本実施例におけるタイル画像Ｎの符号化処理とメモリ格納を示している。
【００５６】
図９において、１ステージ分解されたＨＨ１、ＨＬ１、ＬＨ１のデータは算術符号化し、タイル画像Ｎ−１の１ステージ分解されたデータの後に格納する。２ステージ分解されたＨＨ２、ＨＬ２、ＬＨ２のデータは算術符号化し、タイル画像Ｎ−１の２ステージ分解されたデータの後に格納する。３ステージ分解されたＨＨ３、ＨＬ３、ＬＨ３のデータは算術符号化し、タイル画像Ｎ−１の３ステージ分解されたデータの後に格納する。３ステージ分解されたＬＬ３のデータは算術符号化し、タイル画像Ｎ−１の３ステージ分解されたデータの後に格納する。
【００５７】
図１０は本実施例における、複数ステージ合成処理を示したものである。この複数ステージ合成では図６において説明した複数ステージ分解の逆の処理を行う。
【００５８】
図１０（ａ）〜図１０（ｂ）において、ＬＬ３、ＨＨ３、ＨＬ３、ＬＨ３を逆ウェーブレット変換しＬＬ２を復元する。この処理を３ステージ合成と呼ぶ。さらに図１０（ｂ）〜図１０（ｃ）において、ＬＬ２、ＨＨ２、ＨＬ２、ＬＨ２を逆ウェーブレット変換しＬＬ１を復元する。この処理を２ステージ合成と呼ぶ。また、図１０（ｃ）〜図１０（ｄ）において、ＬＬ１、ＨＨ１、ＨＬ１、ＬＨ１を逆ウェーブレット変換しタイリング時の元タイル画像を復元する。この処理を１ステージ合成と呼ぶ。以上の処理を行うことにより、元画像を復元することができる。
【００５９】
図１１は本実施例における、タイル画像１の復号処理を示している。
【００６０】
タイル画像１の復号では、図７において説明した処理の逆の手順で行う。メモリのアドレス0x0_0000の領域からデータを読み出し復号しＬＬ３に配置する。同様に0x1_0000の領域からデータを読み出し復号し、ＨＨ３、ＨＬ３、ＬＨ３に配置する。また、0x2_0000の領域からデータを読み出し復号し、ＨＨ２、ＨＬ２、ＬＨ２に配置する。0x3_0000の領域からデータを読み出し復号し、ＨＨ１、ＨＬ１、ＬＨ１に配置する。これらを図１０に示した複数ステージ分、合成処理することにより、元タイル画像を得ることができる。
【００６１】
このとき、データを全て読み出してから複数ステージ合成をしても良いが、ＬＬ３、ＨＨ３、ＨＬ３、ＬＨ３が揃った時点で３ステージ合成をしてもよいし、また、同様にＬＬ２、ＨＨ２、ＨＬ２、ＬＨ２が揃った時点で２ステージ合成を行ってもよい。
【００６２】
図１１において説明した処理を順次タイル毎に行うことにより、元画像全体を得ることができる。
【００６３】
次に、画像データがメモリに入りきらなくなったため、画像データの解像度を低下させる場合の処理を説明する。ここで、図７〜図８までの処理は同様に行なわれるものとする。
【００６４】
そして、タイル画像Ｘ（１＜Ｘ＜Ｎ）を処理している途中で格納するメモリ領域がなくなった場合、図１２〜図１３のような処理を行なう。
【００６５】
図１２において、タイル１から処理を順次行っていったが、そのまま最終タイルＮの処理に到達する前に、途中のタイルＸでＨＨ３、ＨＬ３、ＬＨ３の算術符号化データを格納する領域が無くなってしまったとする。この場合、上述した処理を実行することができない。
【００６６】
この場合は、図１３に示すように格納するメモリ領域がなくなった場合に１ステージ目のデータを破棄する。
【００６７】
すなわち、図１２でタイルＸの処理中にＨＨ３、ＨＬ３、ＬＨ３の格納領域が無くなってしまった場合、そのため、処理を一時停止する。そして、今まで格納してきた１ステージ目のＨＨ１、ＨＬ１、ＬＨ１を破棄してメモリ領域を確保する。これらの１ステージ目のデータは最も高周波の帯域であり、１ステージ目のデータを破棄しても、残りのデータで意味のあるデータを復元できる。
【００６８】
図１４は１ステージ目のデータを破棄した後のメモリのデータ配置を移動する処理を示している。
【００６９】
図１４（ａ）は、上記のように図１３で１ステージ目のデータであるＨＨ１、ＨＬ１、ＬＨ１を破棄した直後の状態を示している。
【００７０】
この状態から、図１４（ｂ）に示すように、ＨＨ３、ＨＬ３、ＬＨ３の格納領域を確保するため、ＨＨ２、ＨＬ２、ＬＨ２の格納領域を、0x2_7000を開始アドレスとする領域に移動する。
【００７１】
さらに、図１４（ｃ）に示すように、ＬＬ３の格納領域を確保するため、ＨＨ３、ＨＬ３、ＬＨ３の格納領域を、0x1_3000を開始アドレスとする領域に移動する。
【００７２】
以上の手続きによって、後続のタイル画像の処理に必要なメモリ領域を確保することができる。
【００７３】
その後、図１５〜図１６に示すように、後続のタイル画像の処理を続けることができる。図１５は本実施例における、メモリのデータ配置を移動した後の符号化処理を続行する様子を示している。
【００７４】
図１５において、１ステージ分解されたＨＨ１、ＨＬ１、ＬＨ１のデータは破棄する。２ステージ分解されたＨＨ２、ＨＬ２、ＬＨ２のデータは算術符号化し、タイル画像Ｘ−１の２ステージ分解されたデータの後に格納する。３ステージ分解されたＨＨ３、ＨＬ３、ＬＨ３のデータは算術符号化し、タイル画像Ｘ−１の３ステージ分解されたデータの後に格納する。３ステージ分解されたＬＬ３のデータはタイル画像Ｘ−１の３ステージ分解されたデータの後に格納する。
【００７５】
図１６は、メモリのデータ配置を移動した後のタイル画像Ｎの符号化処理とメモリ格納を示している。なお、図１６の場合、１ステージ目のデータを破棄しただけで、最終タイルＮまで処理を行うことができた。しかし、１ステージ目のデータを破棄しただけではメモリに格納できなかった場合、２ステージ目、さらにそれ以降のステージのデータを破棄することも可能である。
【００７６】
図１２〜図１６のように、あるステージのデータを破棄した場合、復号化処理は図１７〜図１８に示すように行なわれる。
【００７７】
図１７は、本実施例において、上記のように１ステージ目のデータを破棄した後の複数ステージ合成を示している。
【００７８】
図１７の（ａ）〜（ｂ）において、領域ＬＬ３、ＨＨ３、ＨＬ３、ＬＨ３を逆ウェーブレット変換しＬＬ２を復元する。（ｂ）から（ｃ）において、ＬＬ２、ＨＨ２、ＨＬ２、ＬＨ２を逆ウェーブレット変換しＬＬ１を復元する。ここで、領域ＨＨ１、ＨＬ１、ＬＨ１のデータは既に破棄しているので合成はできない。しかし、ＬＬ１は元タイル画像の解像度を低くした画像なので、意味のある画像である。この画像は、画像形成部１２０により違和感なく印刷出力することができる。
【００７９】
図１８は本実施例における１ステージ目のデータを破棄した後のタイル画像１の復号処理を示している。
【００８０】
図１８では、メモリのアドレス0x0_0000の領域からデータを読み出し復号しＬＬ３に配置する。同様に0x1_3000の領域からデータを読み出し復号しＨＨ３、ＨＬ３、ＬＨ３に配置する。また、0x2_7000の領域からデータを読み出し復号しＨＨ２、ＨＬ２、ＬＨ２に配置する。これらの処理を図１７において説明した複数ステージ合成の方法で実施することにより、元のタイル画像を得ることができる。
【００８１】
以上のように、本実施例では、画像データを（たとえばＪＰＥＧ２０００規格を用いて）周波数帯域毎に階層的に符号化するに際して、符号化されたデータを周波数帯域毎に分割し、周波数帯域毎に分割されたデータを周波数帯域毎にメモリに格納する一方、メモリに格納されたデータの容量を検出する。そして、データ容量検出でメモリの空き領域が不足すると検出した場合、データ分割によって分割されメモリに記憶されたデータのうち高周波帯域のデータを最も高周波側から順に破棄するようにしている。このため、１画像中で劣化度合いにばらつきが生じたり、印刷速度が低下する問題を生じることなく、画面全体に渡り、一様で高画質な画像を高速に形成することができる。
【００８２】
また、データ破棄により空いた記憶領域にデータを移動することによって空いた記憶領域にデータを記憶し、処理を続行するようにしているので、効率よく記憶手段の記憶領域を利用し、高画質な画像を高速に形成することができる。
【００８３】
（実施例１の応用例）
上記実施例１の制御では、メモリの格納容量が不足したとき、最も高周波の帯域である１ステージ目のデータを破棄し、空いたメモリ領域に他のデータを移動することによって処理を続行する構成を示した。
【００８４】
しかしながら、１ステージ目のデータを破棄した後、空いたメモリ領域を各周波数帯域に割り当ててデータを格納することもできる。この処理を行う場合、各周波数帯域のデータが２つの領域に割り当てられていることを認識した上、読み出しを行なう必要があり、ソフトウェアの制御が複雑になるが、符号化されたデータを移動する必要がないため、処理速度の向上が期待できる。
【００８５】
図１９は、上記のように空いたメモリ領域を各周波数帯域に割り当ててデータを格納する場合の処理において、１ステージ目のデータを破棄した後のメモリのデータ配置を示している。この場合、図示のように１ステージ目のデータを破棄することにより空いた領域を周波数帯域毎に確保する。つまり２ステージ目のデータＨＨ２、ＨＬ２、ＬＨ２を格納する領域と、３ステージ目のデータＨＨ３、ＨＬ３、ＬＨ３を格納する領域と、３ステージ目のデータＬＬ３を格納する領域を確保する。
【００８６】
このようにして、データを破棄することにより空いた記憶領域を周波数帯域毎に記憶領域を割り当てて確保することにより、符号化されたデータを移動する転送処理が必要なくなり、処理速度の向上が期待できる。
【実施例２】
【００８７】
上記の実施例１では、データがメモリに格納できない状況が生じた場合、最大の周波数帯域のデータを、メモリに格納できない限り、破棄し続ける構成を示した。したがって、実施例１の処理によると、入力画像データに対してメモリが足りない状況が続くかぎり、画質が低下することになる。
【００８８】
そこで、本実施例では、解像度低下に限度を設け、もし最低限度の解像度を維持できない場合は印刷を行わないようにする制御を行なう。
【００８９】
なお、本実施例においても、ハードウェア構成や印刷時の基本的シーケンスは上記の実施例１と同様であるものとする。
【００９０】
また、本実施例では、最低限度の解像度を領域ＬＬ１に相当する値とする、すなわち、領域ＨＨ１、ＨＬ１、ＬＨ１のデータは破棄するがそれ以上に低い周波数領域においてはブロックの破棄は行なわないものとする。しかしながら、印刷中止を実行する最低解像度の条件は、このような設定に限定されるものではない。
【００９１】
図２０は本実施例におけるタイル画像１の符号化処理とメモリ格納を示している。
【００９２】
図２０において、１ステージ分解されたＨＨ１、ＨＬ１、ＬＨ１のデータは算術符号化し、メモリのアドレス0x3_0000の領域に格納する。また、３ステージ分解されたＬＬ３のデータは算術符号化し、0x0_0000の領域に格納する。３ステージ分解されたＨＨ３、ＨＬ３、ＬＨ３のデータは算術符号化し、ＬＬ３を格納した領域の後に格納する。また、２ステージ分解されたＨＨ２、ＨＬ２、ＬＨ２のデータは算術符号化し、ＨＨ３、ＨＬ３、ＬＨ３を格納した領域の後に格納する。
【００９３】
図２１は本実施例におけるタイル画像２の符号化処理とメモリ格納を示している。
【００９４】
図２１において、１ステージ分解されたＨＨ１、ＨＬ１、ＬＨ１のデータは算術符号化し、タイル画像１の１ステージ分解されたデータの後に格納する。また、３ステージ分解されたＬＬ３のデータは算術符号化し、タイル画像１のＨＨ２、ＨＬ２、ＬＨ２を格納した領域の後に格納する。３ステージ分解されたＨＨ３、ＨＬ３、ＬＨ３のデータは算術符号化し、タイル画像１のＨＨ２、ＨＬ２、ＬＨ２を格納した領域の後に格納する。また、２ステージ分解されたＨＨ２、ＨＬ２、ＬＨ２のデータは算術符号化し、ＨＨ３、ＨＬ３、ＬＨ３を格納した領域の後に格納する。
【００９５】
なお、図２０、図２１では、復号のときに呼び出す順に符号化データを配置している。このように配置することにより、データ呼び出しが速くなり、装置の印刷効率向上が見込める。
【００９６】
図２２は本実施例における、タイル画像Ｘ（１＜Ｘ＜Ｎ）の処理をしている途中で格納するメモリ領域がなくなった場合を示している。
【００９７】
ここで、タイル１から処理を順次行っていったが、そのまま最終タイルＮの処理に到達する前に、途中のタイルＸで最低限度の解像度を維持するためのデータを格納する領域が無くなってしまったとする。
【００９８】
このように格納するメモリ領域がなくなった場合は図２３のように１ステージ目のデータを破棄する。
【００９９】
図２２で、タイルＸの処理中に最低限度の解像度を維持するためのデータを格納する領域が無くなってしまった場合は、処理を一時停止し、今まで格納してきた１ステージ目のデータであるＨＨ１、ＨＬ１、ＬＨ１を破棄してメモリ領域を確保する。１ステージ目のデータは画像を形成するために必須ではない高周波帯域のデータであり、１ステージ目のデータを破棄しても、残りのデータで意味のあるデータを復元できる。
【０１００】
図２４は本実施例における、１ステージ目のデータを破棄した後のデータ格納の方法について示す図である。
【０１０１】
図２５は本実施例における、１ステージ目のデータを破棄した後のタイル画像Ｎの符号化処理とメモリ格納を示す図である。この図の場合、１ステージ目のデータを破棄しただけで、最終タイルＮまで処理を行うことができた。
【０１０２】
図２６は本実施例における、１ステージ目のデータを破棄した後のタイル画像１の復号処理を示している。
【０１０３】
メモリのアドレス0x0_0000の領域からデータを読み出し復号しＬＬ３に配置する。そのデータに続く領域からデータを読み出し復号しＨＨ３、ＨＬ３、ＬＨ３に配置する。そのデータに続く領域からデータを読み出し復号しＨＨ２、ＨＬ２、ＬＨ２に配置する。これらを図１７において説明した複数ステージ合成の方法で元タイル画像を得ることができる。
【０１０４】
また、１ステージ目のデータを破棄することなく圧縮処理が成功した場合は、１ステージ目のデータを読み出し復号しＨＨ１、ＨＬ１、ＬＨ１に配置する。これらを図６において説明した複数ステージ合成の方法で元タイル画像を得ることができる。
【０１０５】
一方、図２７は本実施例における、１ステージ目のデータを破棄した後のタイル画像Ｙ（１＜Ｘ＜Ｙ＜Ｎ）の符号化処理時メモリの格納領域が無くなった場合の処理を示している。
【０１０６】
上記の通り、図２５では、１ステージ目のデータを破棄しただけで、最終タイルＮまで処理を行うことができたが、図２７は処理が出来なかった場合を示している。この場合、領域ＨＨ１、ＨＬ１、ＬＨ１より低い周波数領域のブロックを破棄しなければ処理を進めることができないが、領域ＬＬ１に相当する最低限度の解像度を維持できなくなるため、本実施例では印刷処理を中止する制御を行なう。
【０１０７】
このようにして、実施例１と同様に画質劣化を抑制しつつ、メモリを有効利用して圧縮処理を行うことができるが、最低限度の解像度を設定し、それ以上に画質が低下する場合は印刷処理を停止することが可能になる。
【０１０８】
なお、本実施例では、最低限度の解像度を維持できない場合は印刷処理を中止するものとした。しかし、ユーザに警告した上、印刷処理を続行する、あるいは「画像メモリが足りなくなりました。印刷画質が低下しますが、処理を続行しますか？」といった表示を行ない、ユーザに印刷処理の続行を決定させるようなユーザーインターフェースを実施する構成を採用してもよい。
【産業上の利用可能性】
【０１０９】
上記実施例においては、画像形成コントローラが画像形成エンジンと一体となって画像形成システムを構成するものについて説明したが、画像形成エンジンと別体で構成される画像処理装置に対しても同様に適用可能である。また、読取装置と組み合わせた複写装置や通信機能を有するファクシミリ装置などの画像処理装置においても本発明を実施できるのはいうまでもない。
【図面の簡単な説明】
【０１１０】
【図１】本発明を実施可能な画像形成装置の構成を示したブロック図である。
【図２】本発明の実施例１における画像データの符号化（圧縮）処理を伴う画像形成装置の制御方法を示すフローチャート図である。
【図３】本発明の実施例１における画像データ符号化（圧縮）手順を示したフローチャート図である。
【図４】本発明の実施例１におけるタイリング処理を示した説明図である。
【図５】本発明の実施例１におけるタイル画像をウェーブレット変換する手順を示した説明図である。
【図６】本発明の実施例１における複数ステージ分解を示した説明図である。
【図７】本発明の実施例１におけるタイル画像１の符号化処理とメモリ格納を示した説明図である。
【図８】本発明の実施例１におけるタイル画像２の符号化処理とメモリ格納を示した説明図である。
【図９】本発明の実施例１におけるタイル画像Ｎの符号化処理とメモリ格納を示した説明図である。
【図１０】本発明の実施例１における複数ステージ合成を示した説明図である。
【図１１】本発明の実施例１におけるタイル画像１の復号処理を示した説明図である。
【図１２】本発明の実施例１におけるタイル画像Ｘ（１＜Ｘ＜Ｎ）の処理をしている途中で格納するメモリ領域がなくなった場合を示した説明図である。
【図１３】本発明の実施例１における格納するメモリ領域がなくなった場合に１ステージ目のデータを破棄することを示した説明図である。
【図１４】本発明の実施例１における１ステージ目のデータを破棄した後のメモリのデータ配置を移動する方法について示した説明図である。
【図１５】本発明の実施例１におけるメモリのデータ配置を移動した後の符号化処理を続行する方法を示した説明図である。
【図１６】本発明の実施例１におけるメモリのデータ配置を移動した後のタイル画像Ｎの符号化処理とメモリ格納を示した説明図である。
【図１７】本発明の実施例１における１ステージ目のデータを破棄した後の複数ステージ合成を示した説明図である。
【図１８】本発明の実施例１における１ステージ目のデータを破棄した後のタイル画像１の復号処理を示した説明図である。
【図１９】本発明の実施例１における１ステージ目のデータを破棄した後のメモリのデータ配置を示した説明図である。
【図２０】本発明の実施例２におけるタイル画像１の符号化処理とメモリ格納を示した説明図である。
【図２１】本発明の実施例２におけるタイル画像２の符号化処理とメモリ格納を示した説明図である。
【図２２】本発明の実施例２におけるタイル画像Ｘ（１＜Ｘ＜Ｎ）の処理をしている途中で格納するメモリ領域がなくなった場合を示した説明図である。
【図２３】本発明の実施例２における格納するメモリ領域がなくなった場合に１ステージ目のデータを破棄することを示した説明図である。
【図２４】本発明の実施例２における１ステージ目のデータを破棄した後のデータ格納の方法について示した説明図である。
【図２５】本発明の実施例２における１ステージ目のデータを破棄した後のタイル画像Ｎの符号化処理とメモリ格納を示した説明図である。
【図２６】本発明の実施例２における１ステージ目のデータを破棄した後のタイル画像１の復号処理を示した説明図である。
【図２７】本発明の実施例２における１ステージ目のデータを破棄した後のタイル画像Ｙ（１＜Ｘ＜Ｙ＜Ｎ）の符号化処理時メモリの格納領域が無くなった場合の処理を示した説明図である。
【符号の説明】
【０１１１】
１００  画像形成装置
１１１  ＣＰＵ
１１２  インターフェース制御部
１１３  ＲＯＭ
１１４  ＲＡＭ
１１５  ＥＥＰＲＯＭ
１１６  操作パネル部
１１７  画像処理部
１１８  符号化部
１１９  復号部
１２０  画像形成部
１９０  ホストＰＣ
４００  画像全体
４０１  タイル画像
５０２  出力画像
５１０  垂直成分のフィルタ
５１１、５２１、５２３  ローパスフィルタ
５１２、５２２、５２４  ハイパスフィルタ
５２０  平行成分のフィルタ
【図１】
2008147988.tif 000003
【図２】
2008147988.tif 000004
【図３】
2008147988.tif 000005
【図４】
2008147988.tif 000006
【図５】
2008147988.tif 000007
【図６】
2008147988.tif 000008
【図７】
2008147988.tif 000009
【図８】
2008147988.tif 000010
【図９】
2008147988.tif 000011
【図１０】
2008147988.tif 000012
【図１１】
2008147988.tif 000013
【図１２】
2008147988.tif 000014
【図１３】
2008147988.tif 000015
【図１４】
2008147988.tif 000016
【図１５】
2008147988.tif 000017
【図１６】
2008147988.tif 000018
【図１７】
2008147988.tif 000019
【図１８】
2008147988.tif 000020
【図１９】
2008147988.tif 000021
【図２０】
2008147988.tif 000022
【図２１】
2008147988.tif 000023
【図２２】
2008147988.tif 000024
【図２３】
2008147988.tif 000025
【図２４】
2008147988.tif 000026
【図２５】
2008147988.tif 000027
【図２６】
2008147988.tif 000028
【図２７】
2008147988.tif 000029