(57)【要約】【課題】  トータル圧縮時間の大幅な削減を図ることである。【解決手段】  エンコーダ５０３による画像データのコーディング前に、画像データをメモリ５０２の特定領域にプレコーディングして画像データをコーディングした場合のコードデータ量をＣＰＵ５０１が予測する。そして、予測されたコードデータ量がメモリ５０２の連続した空領域に収まると判断した場合は、画像データに対するコーディング処理を施す。そして、メモリ５０２の連続した空領域にコーディング後のデータを書き込み、空領域に収まらないと判断した場合は、メモリ５０２に空領域を確保させる処理を行う構成を特徴とする。【選択図】  図１
2007143000.tif 000002
【特許請求の範囲】
【請求項１】
画像データのコーディングを行うコーディング手段と、該コーディングした画像データを保存する記憶手段とを備え、コーディングした画像データを記憶手段の連続した領域に記憶させる画像処理装置であって、
前記画像データのコーディング前に、前記画像データを前記記憶手段の特定領域にプレコーディングして前記画像データをコーディングした場合のコードデータ量を予測する予測手段と、
前記予測手段により予測されたコードデータ量が前記記憶手段の連続した空領域に収まるかどうかを判断する判断手段と、
前記判断手段が空領域に収まると判断した場合は、前記画像データに対するコーディング処理を施し、前記記憶装置の連続した前記空領域にコーディング後のデータを書き込み、空領域に収まらないと判断した場合は、前記記憶手段に空領域を確保させる処理を行うメモリ制御手段とを有し、
前記判断手段は、前記メモリ制御手段による前記空領域の確保後、前記予測手段により予測されたコードデータ量が記憶手段の連続した前記空領域に収まるかどうかを再判断することを特徴とする画像処理装置。
【請求項２】
前記メモリ制御手段は、すでに記憶手段に記憶されているデータの再配置を行い断片的な空領域をつなげ前記空領域を広げるもしくはコード量が少なくなるようなコーディングパラメータに変更して前記空領域を確保することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記特定領域は、コーディングする領域とコーディングしない領域とが配置されるブロックパターン領域であることを特徴とする請求項１又は２記載の画像処理装置。
【請求項４】
前記メモリ制御手段は、予測されたコードデータ量が前記記憶装置の連続する前記空領域に収まると判断した場合のコーディングパラメータを画像データに対するコーディングパラメータとして決定することを特徴とする請求項１〜３のいずれかに記載の画像処理装置。
【請求項５】
前記メモリ制御手段は、前記記憶装置の連続する前記空領域が大きい場合は、前記特定領域の数を少なくし、連続する前記空領域が少ない場合は、前記特定領域を多くすることを特徴とする請求項１〜４のいずれかに記載の画像処理装置。
【請求項６】
前記判断手段が前記空領域に収まると判断した後、前記コーディング手段により前記特定領域以外からコーディング処理し、前記特定領域以外のコーディング終了時点のデータ量と前記特定領域のデータ量とを加算して得られるコードデータ量を算出する算出手段を有し、
前記判断手段は、前記算出手段により算出されたコードデータ量が前記記憶装置の連続する前記空領域に収まるかどうかを再度判断することを特徴とする請求項１〜５のいずれかに記載の画像処理装置。
【請求項７】
コーディング後のデータ量がコーディング前データよりも少なくなることを特徴とする請求項１〜６のいずれかに記載の画像処理装置。
【請求項８】
コーディング後のデータ量がコーディング前データと同じ、もしくは大きくなることを特徴とする請求項１〜６のいずれかに記載の画像処理装置。
【請求項９】
画像データのコーディングを行うコーディング手段と、該コーディングした画像データを保存する記憶手段とを備え、コーディングした画像データを記憶手段の連続した領域に記憶させる画像処理装置における画像処理方法であって、
前記画像データのコーディング前に、前記画像データを前記記憶手段の特定領域にプレコーディングして前記画像データをコーディングした場合のコードデータ量を予測する予測ステップと、
前記予測ステップにより予測されたコードデータ量が前記記憶手段の連続した空領域に収まるかどうかを判断する判断ステップと、
前記判断ステップが前記空領域に収まると判断した場合は、前記画像データに対するコーディング処理を施し、前記記憶装置の連続した前記空領域にコーディング後のデータを書き込み、空領域に収まらないと判断した場合は、前記記憶手段に前記空領域を確保させる処理を行うメモリ制御ステップとを有し、
前記判断ステップは、前記メモリ制御ステップによる前記空領域の確保後、前記予測ステップにより予測されたコードデータ量が記憶手段の連続した前記空領域に収まるかどうかを再判断することを特徴とする画像処理方法。
【請求項１０】
前記メモリ制御ステップは、すでに前記記憶手段に記憶されているデータの再配置を行い断片的な前記空領域をつなげ前記空領域を広げるもしくはコード量が少なくなるようなコーディングパラメータに変更して前記空領域を確保することを特徴とする請求項７記載の画像処理方法。
【請求項１１】
前記特定領域は、コーディングする領域とコーディングしない領域とが配置されるブロックパターン領域であることを特徴とする請求項７又は８記載の画像処理方法。
【請求項１２】
前記メモリ制御ステップは、予測されたコードデータ量が前記記憶装置の連続する前記空領域に収まると判断した場合のコーディングパラメータを画像データに対するコーディングパラメータとして決定することを特徴とする請求項７〜９のいずれかに記載の画像処理方法。
【請求項１３】
前記メモリ制御ステップは、前記記憶装置の連続する前記空領域が大きい場合は、前記特定領域の数を少なくし、連続する前記空領域が少ない場合は、前記特定領域を多くすることを特徴とする請求項７〜１０のいずれかに記載の画像処理方法。
【請求項１４】
前記判断ステップが前記空領域に収まると判断した後、前記コーディング手段により前記特定領域以外からコーディング処理し、前記特定領域以外のコーディング終了時点のデータ量と前記特定領域のデータ量とを加算して得られるコードデータ量を算出する算出ステップを有し
前記判断ステップは、前記算出ステップにより算出されたコードデータ量が前記記憶装置の連続する前記空領域に収まるかどうかを再度判断することを特徴とする請求項７〜１１のいずれかに記載の画像処理方法。
【請求項１５】
コーディング後のデータ量がコーディング前データよりも少なくなることを特徴とする請求項７〜１２のいずれかに記載の画像処理方法。
【請求項１６】
コーディング後のデータ量がコーディング前データと同じ、もしくは大きくなることを特徴とする請求項７〜１２のいずれかに記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データをコーディング処理して記憶装置に記憶させる画像処理装置のコーディング処理に関するものである。
【背景技術】
【０００２】
従来、印刷装置等が備えるコントローラが印刷すべき画像データをメモリ領域に対して配置処理する場合、連続したメモリ領域に置かなければならない。また、限られたメモリ領域を有効活用するため、画像データ量を減らす目的で圧縮（コーディング）された画像データを用いる。
【０００３】
従来は圧縮後のデータをメモリの連続する領域に完全にライトできるかどうかを計るため、全画像領域をプレコーディング（コーディングによる出力コード量を調べるものでコーディング後のデータをメモリへ書き戻さない）させていた。
【０００４】
このプレコーディングにより得られたコーディング後の画像データ量がメモリの連続する空領域以下である場合は本コーディングに移行する。そして、空き容量以上であった場合はコーディングパラメータを変更（画質の低下を犠牲に圧縮率を上げる等）する、ガーベージコレクションと呼ばれるメモリ上データの再配置を行い連続空領域を作る等の対処を行っていた。
【０００５】
また、ＪＰＥＧ圧縮部へ出力するために、まず、これらの画素をＪＰＥＧ圧縮処理の処理単位である主副走査８画素×８画素の６４画素を単位として、１６のブロックに分割する。そして、ブロックごとにＪＰＥＧ圧縮部１１０へ出力する画像処理装置が下記特許文献１に記載されている。
【特許文献１】特開２００４−１２０６３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、この方法では圧縮作業の度に全画像領域をプレコーディングする時間が必ず必要になり圧縮時間の短縮を妨げていた。
【０００７】
また、プレコーディングをまったく行わない場合は圧縮後のデータ量がわからずメモリ管理の点で問題があった。
【０００８】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、トータル圧縮時間の大幅な削減を図ることができる仕組みを提供することである。
【課題を解決するための手段】
【０００９】
上記目的を達成する本発明の画像処理装置は以下に示す構成を備える。
【００１０】
画像データのコーディングを行うコーディング手段と、該コーディングした画像データを保存する記憶手段とを備え、コーディングした画像データを記憶手段の連続した領域に記憶させる画像処理装置であって、前記画像データのコーディング前に、前記画像データを前記記憶手段の特定領域にプレコーディングして前記画像データをコーディングした場合のコードデータ量を予測する予測手段と、前記予測手段により予測されたコードデータ量が前記記憶手段の連続した空領域に収まるかどうかを判断する判断手段と、前記判断手段が空領域に収まると判断した場合は、前記画像データに対するコーディング処理を施し、前記記憶装置の連続した空領域にコーディング後のデータを書き込み、空領域に収まらないと判断した場合は、前記記憶手段に空領域を確保させる処理を行うメモリ制御手段とを有し、前記判断手段は、前記メモリ制御手段による前記空領域の確保後、前記予測手段により予測されたコードデータ量が記憶手段の連続した前記空領域に収まるかどうかを再判断することを特徴とする。
【００１１】
上記目的を達成する本発明の画像処理方法は以下に示す構成を備える。
【００１２】
画像データのコーディングを行うコーディング手段と、該コーディングした画像データを保存する記憶手段とを備え、コーディングした画像データを記憶手段の連続した領域に記憶させる画像処理装置における画像処理方法であって、前記画像データのコーディング前に、前記画像データを前記記憶手段の特定領域にプレコーディングして前記画像データをコーディングした場合のコードデータ量を予測する予測ステップと、前記予測ステップにより予測されたコードデータ量が前記記憶手段の連続した空領域に収まるかどうかを判断する判断ステップと、前記判断ステップが空領域に収まると判断した場合は、前記画像データに対するコーディング処理を施し、前記記憶装置の連続した空領域にコーディング後のデータを書き込み、前記空領域に収まらないと判断した場合は、前記記憶手段に前記空領域を確保させる処理を行うメモリ制御ステップとを有し、前記判断ステップは、前記メモリ制御ステップによる前記空領域の確保後、前記予測ステップにより予測されたコードデータ量が記憶手段の連続した前記空領域に収まるかどうかを再判断することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、画像データをコーディングする場合に、全画像領域のコーディングに比べて一部の領域のコーディングのみでプレコーディングが終了するため、トータル圧縮時間の大幅な削減を図ることが可能となる。
【発明を実施するための最良の形態】
【００１４】
次に本発明を実施するための最良の形態について図面を参照して説明する。
【００１５】
＜システム構成の説明＞
〔第１実施形態〕
以下、図面を参照して本発明の実施の形態を説明する。
【００１６】
図１は、本発明の第１実施形態を示す画像処理装置の構成を説明するブロック図である。なお、本実施形態に係る画像処理装置は、他の装置に組み込まれて構成される場合もある。例えば、プリンタ装置、プリンタ機能を備える複合機能装置、ファクシミリ装置等が好例である。
【００１７】
図１において、５０１はＣＰＵであり、５０２はメモリで、その記憶領域は連続するアドレス空間に配置されている。５０３は圧縮（コーディング）処理を行うエンコーダで、例えばＲＡＷ画像データをＪＰＥＧに準拠するデータ形式の画像データに圧縮処理する。なお、圧縮処理は、ＪＰＥＧに限らず、他の圧縮処理、例えば他の可逆圧縮処理であってもよいし、他の非可逆圧縮処理であってもよい。
【００１８】
５０４は内部バスで、上記ＣＰＵ５０１、メモリ５０２、エンコーダ５０３、ＲＯＭ５０５等を繋ぐバスである。ＲＯＭ５０５には、後述するフローチャートに示す制御手順、並びに、図５に示すパターンを記憶するテーブル等が記憶されている。
【００１９】
本例は、ＣＰＵ５０１が直接メモリ５０２へのアクセスを制御する例を示すが、他のメモリコントローラがＣＰＵ５０１の機能を兼ねる構成であってもよい。
【００２０】
本実施形態では、メモリ５０２は、例えばＤＲＡＭ等で構成され、その容量は有限であるが、オプションとしてその容量を拡張可能に構成されているものとする。
【００２１】
また、画像形成装置等に画像処理装置を組み込まれた場合には、ハードウエア資源として、いわゆるネットワーク機能、ユーザインタフェース機能、スキャナ機能、プリンタ機能を実行するためのハードウエアデバイスを備えていることはいうまでもない。
【００２２】
このように構成された画像処理装置は、画像データのコーディングを行うエンコーダ５０３と、該コーディングした画像データを保存するメモリ５０２とを備え、コーディングした画像データをメモリ５０２の連続した領域に記憶させるものである。
【００２３】
そして、画像データのコーディング前に、ＣＰＵ５０１は、ＲＯＭ５０５に記憶される制御プログラムを実行する。これにより、画像データをメモリ５０２の特定領域にプレコーディングして前記画像データをコーディングした場合のコードデータ量を予測する予測機能処理を行う。また、ＣＰＵ５０１は、予測されたコードデータ量がメモリ５０２の連続した空領域に収まるかどうかを判断する判断機能を有する。
【００２４】
さらに、ＣＰＵ５０１が空領域に収まると判断した場合は、前記画像データに対するコーディング処理を施す。さらに、ＣＰＵ５０１は、メモリ５０２の連続した空領域にコーディング後のデータを書き込み、空領域に収まらないと判断した場合は、メモリ５０２に空領域を確保させる処理を行うメモリ制御機能とを有する。さらに、メモリ制御機能による空領域の確保後、予測されたコードデータ量がメモリ５０２の連続した空領域に収まるかどうかを再判断する。
【００２５】
また、ＣＰＵ５０１によるメモリ制御機能は、すでにメモリ５０２に記憶されているデータの再配置を行い断片的な空領域をつなげ空領域を広げるもしくはコード量が少なくなるようなコーディングパラメータに変更して空領域を確保する。
【００２６】
さらに、特定領域は、図２、図５等に示すようにコーディングする領域とコーディングしない領域とが配置されるブロックパターン領域である。
【００２７】
また、ＣＰＵ５０１によるメモリ制御機能は、予測されたコードデータ量が前記記憶装置の連続する空領域に収まると判断した場合のコーディングパラメータを画像データに対するコーディングパラメータとして決定する。
【００２８】
さらに、メモリ５０２にコードデータを空領域に収めることが可能であると判断した後、エンコーダ５０３により特定領域以外からコーディング処理する。そして、エンコーダ５０３による該特定領域以外のコーディング終了時点のデータ量と前記特定領域のデータ量とを加算して得られるコードデータ量を算出する算出機能を有する。
【００２９】
そして、ＣＰＵ５０１は、算出されたコードデータ量がメモリ５０２の連続空領域に収まるかどうかを再度判断する。
【００３０】
これにより、画像データをコーディングする場合に、メモリ５０２の空領域でコーディングが可能かどうかが短時間に判断される。そして、メモリ５０２の空領域でコーディング可能とするように各種のパラメータを変更したり、メモリ５０２内のメモリ配置を再構成したりする。
【００３１】
したがって、従来の画像データをメモリ５０２にコーディングを開始した後、途中でメモリ容量不足によって、画像データを最初から再コーディングする場合に比べて、コーディングに要する処理時間を短縮できる。
【００３２】
（第１の画像処理例）
図２は、図１に示したメモリ５０２にプレコーディングするプレコーディングパターンの一例を示す図である。
【００３３】
図２において、１０１は画像を複数の領域に分割し、プレコーディングする領域とプレコーディングしない領域とに分けたプレコーディングパターンである。プレコーディングパターン１０１において、全画像領域を格子状のブロックに分け、１ブロック毎にプレコーディング領域とすることでプレコーディング領域を全画像領域の１／２に減らしたものである。
【００３４】
また、１０２は前記プレコーディングパターン１０１におけるプレコーディングするプレコーディング領域である。なお、本実施形態では、プレコーディング領域１０２を斜線領域で示す。
【００３５】
１０３は前記プレコーディングパターン１０１におけるプレコーディングしない領域を示している。
【００３６】
これにより、実質的に、プレコーディング領域１０２がプレコーディング対象領域として管理されるので、図３は、本実施形態における画像処理装置の第１のデータ処理手順の一例を示すフローチャートである。なお、（３１）〜（３７）は各ステップを示す。また、画像データの入力源は、ネットワーク等を介してパソコンから取得されるものであっても、特定のデバイス、例えばスキャナ装置から入力される画像データ等であってもよい。
【００３７】
画像データの圧縮処理を行う際に、ＣＰＵ５０１は、ステップ（３１）で、メモリ５０２の空容量を調査する。そして、デフォルトコーディングパラメータを設定する。
【００３８】
次に、エンコーダ５０３に対してプレコーディング開始を指示すると、ステップ（３２）で、エンコーダ５０３は、図２に示した予め定められたプレコーディングパターン１０１に従って、黒領域をプレコーディングする。
【００３９】
次に、ステップ（３３）で、図２に示したプレコーディング領域１０２の画像データをブロック単位でメモリ５０２から順次読み込む。そして、プレコーディング（圧縮後データサイズを算出するのが目的で圧縮後画像データをメモリに書き戻さない処理）し、ページコーディング量を累積していく。
【００４０】
そして、全プレコーディング領域をプレコーディングし終わった時点で、エンコーダ５０３はプレコーディングパターン１０１のプレコーディング領域はページ全体の１／２である。これにより、プレコーディング量を２倍したものをページ全体のコーディング量として算出する。この値は、あくまでも推測値である。
【００４１】
次に、ステップ（３４）で、推測値として算出された全体のコーディング量がメモリ５０２の空領域以下であるか否かを判断する。
【００４２】
ここで、全体のコーディング量がメモリ５０２の空領域以下でないと判断した場合は、ステップ（３５）で、メモリ５０２の空領域を増やす、圧縮パラメータをより圧縮率の高いものに設定し直す。そして、ステップ（３２）へ戻り、再度プレコーディングを行う等の処理をする。
【００４３】
一方、ステップ（３４）で、全体のコーディング量がメモリ５０２の空領域以下であると判断した場合は、ステップ（３６）で、全画像領域を順次、本コーディングを開始して、その結果を順次メモリ５０２に書き戻させる。その時、累積コード量をカウントする。
【００４４】
次に、ステップ（３７）で、全画像コーディング累積コード量が空領域以下であるか否かを判断する。
【００４５】
ここで、本コーディング中に前述の算出コーディング量より実際のコーディング量のほうが多くなったと判断した場合は、ステップ（３２）へ戻る。そして、メモリ５０２の空領域を増やす、もしくは圧縮パラメータをより圧縮率の高いものに設定し直し再度プレコーディングから行う等の処理を繰り返す。
【００４６】
一方、ステップ（３７）で、全画像コーディング累積コード量が空領域以下であると判断した場合は、本処理を終了する。
【００４７】
これにより、最終的にメモリ５０２に収まるように圧縮処理が短時間に完了する。
【００４８】
〔第２実施形態〕
図４は、本実施形態における画像処理装置の第２のデータ処理手順の一例を示すフローチャートである。なお、（４１）〜（５０）は各ステップを示す。また、画像データの入力源は、ネットワーク等を介してパソコンから取得されるものであっても、特定のデバイス、例えばスキャナ装置から入力される画像データ等であってもよい。
【００４９】
画像データの圧縮処理を行う際に、ＣＰＵ５０１は、ステップ（４１）で、メモリ５０２の空容量を調査する。そして、デフォルトコーディングパラメータを設定する。
【００５０】
次に、エンコーダ５０３に対してプレコーディング開始を指示すると、ステップ（４２）で、エンコーダ５０３は、図２に示した予め定められたプレコーディングパターン１０１に従って、黒領域をプレコーディングする。
【００５１】
次に、ステップ（４３）で、図２に示したプレコーディング領域１０２の画像データをブロック単位でメモリ５０２から順次読み込む。そして、プレコーディング（圧縮後データサイズを算出するのが目的で圧縮後画像データをメモリに書き戻さない処理）し、ページコーディング量を累積していく。
【００５２】
そして、全プレコーディング領域をプレコーディングし終わった時点で、エンコーダ５０３はプレコーディングパターン１０１のプレコーディング領域はページ全体の１／２である。これにより、プレコーディング量を２倍したものをページ全体のコーディング量として算出する。この値は、あくまでも推測値である。
【００５３】
次に、ステップ（４４）で、推測値として算出された全体のコーディング量がメモリ５０２の空領域以下であるか否かを判断する。
【００５４】
ここで、全体のコーディング量がメモリ５０２の空領域以下でないと判断した場合は、ステップ（４５）にすすむ。そして、メモリ５０２の空領域を増やす、圧縮パラメータをより圧縮率の高いものに設定し直し、ステップ（４２）へ戻り、再度プレコーディングを行う等の処理をする。
【００５５】
一方、ステップ（４４）で、全体のコーディング量がメモリ５０２の空領域以下であると判断した場合は、ステップ（４６）で、本コーディングを開始する。この本コーディングの際に、第１実施形態においては、全画像領域を順次本コーディングしていったが、第２実施形態においては、非プレコーディング領域１０３のみを先に本コーディングする。ここで、非プレコーディング領域１０３とは、ステップ（４６）において、白領域と記載している領域に対応する。
【００５６】
画像全体の非プレコーディング領域１０３を本コーディングを終了したら、ステップ（４７）で、プレコーディング時のコーディング量と加算し画像全体のコーディング量を算出する。
【００５７】
次に、ステップ（４８）で、算出された値とプレコーディング終了時に算出した画像全体のコーディング量とを比較する。ここで、プレコーディング終了時の値を下回るような場合は、ステップ（５０）へ進み、プレコーディング領域１０２の本コーディングを行い、処理を終了する。ここで、プレコーディング領域１０２とは、ステップ（５０）において、黒領域と記載している領域に対応する。
【００５８】
一方、ステップ（４８）において、逆にプレコーディング終了時の値を上回り、メモリ５０２の空領域以上となると判断した場合は、ステップ（４９）へ進む。そして、メモリ５０２の空領域を増やす、もしくは圧縮パラメータをより圧縮率の高いものに設定し直し、ステップ（４２）へ戻る。そして、再度プレコーディングから行う等の処理を行い、最終的にメモリに収まるように圧縮処理を繰り返す。
【００５９】
これにより、最終的にメモリ５０２に収まるように圧縮処理が短時間に完了する。
【００６０】
〔第３実施形態〕
上記第１、第２実施形態では、図２に示したプレコーディングパターン１０１に基づいてプレコーディング処理を行う場合について説明した。プレコーディングパターン１０１は上述した通り、１ブロック毎にプレコーディング領域とすることでプレコーディング領域を全画像領域の１／２に減らしたものである。
【００６１】
これに対して、本実施形態では、プレコーディングパターン１０１を、他のプレコーディングパターンに変更した例を示す。
【００６２】
図５は、本発明の第３実施形態を示す画像処理装置におけるプレコーディングパターンの一例を示す図である。
【００６３】
図５において、３０１は画像を複数の領域に分割し、プレコーディングする領域とプレコーディングしない領域とに分けたプレコーディングパターンで全画像領域を格子状のブロックに分ける。そして、１ブロック毎にプレコーディング領域とすることでプレコーディング領域を全画像領域の１／２に減らしたものである。また、３０２は前記プレコーディングパターン３０１におけるプレコーディングする領域である。
【００６４】
３０３は前記プレコーディングパターン３０１におけるプレコーディングしない領域を示している。
【００６５】
３１１は画像を複数の領域に分割し、プレコーディングする領域とプレコーディングしない領域とに分けたプレコーディングパターンである。
【００６６】
プレコーディングパターン３１１は、全画像領域を格子状のブロックに分け、プレコーディング領域を全画像領域の１／４に減らしたものである。
【００６７】
３１２はプレコーディングパターン３１１におけるプレコーディングする領域である。３１３はプレコーディングパターン３１１におけるプレコーディングしない領域を示している。
【００６８】
３２１は画像を複数の領域に分割し、プレコーディングする領域とプレコーディングしない領域とに分けたプレコーディングパターンである。
【００６９】
プレコーディングパターン３２１は、全画像領域を格子状のブロックに分け、プレコーディング領域を全画像領域の１／８に減らしたものである。
【００７０】
３２２は前記プレコーディングパターン３２１におけるプレコーディングする領域である。３２３は前記プレコーディングパターン３２１におけるプレコーディングしない領域を示している。
【００７１】
図６は、本実施形態における画像処理装置の第３のデータ処理手順の一例を示すフローチャートである。なお、（６１）〜（７２）は各ステップを示す。また、画像データの入力源は、ネットワーク等を介してパソコンから取得されるものであっても、特定のデバイス、例えばスキャナ装置から入力される画像データ等であってもよい。
【００７２】
画像データの圧縮処理を行う際に、ＣＰＵ５０１は、ステップ（６１）で、メモリ５０２の空容量を調査する。そして、ステップ（６２）で、ＣＰＵ５０１は、メモリ５０２の空領域が少ないかどうかを判断する。ここで、メモリ５０２の空領域が少ないと判断した場合は、ステップ（６３）で、予測の精度を上げるためプレコーディング領域の多いプレコーディングパターン３０１を選択する。そして、エンコーダ５０３に対してプレコーディングパターン３０１の設定後、エンコーダ５０３にプレコーディング処理を開始させる。
【００７３】
次に、ステップ（６４）で、エンコーダ５０３はプレコーディングパターン３０１のプレコーディングする領域３０２の画像データをブロック単位でメモリ５０２から順次読み込みプレコーディングする。具体的には、圧縮後データサイズを算出するのが目的で圧縮後画像データをメモリに書き戻さない処理を行う。
【００７４】
そして、ページコーディング量を累積処理する。これにより、エンコーダ５０３はプレコーディングパターン３０１のプレコーディング領域はページ全体の１／２であることからプレコーディング量を２倍したものをページ全体のコーディング量として算出する。
【００７５】
一方、ステップ（６２）で、ＣＰＵ５０１は、メモリ５０２の空領域が少なくないと判断した場合は、ステップ（６９）で、ＣＰＵ５０１は、メモリ５０２の空領域が中程度であるかどうかを判断する。
【００７６】
ここで、ＣＰＵ５０１が空領域が中程度であると判断した場合は、ステップ（７０）で、プレコーディング領域が中程度のプレコーディングパターン３１１を選択する。そして、エンコーダ５０３に対してプレコーディングパターン３１１の設定後、エンコーダ５０３にプレコーディング処理を開始させる。
【００７７】
そして、ステップ（６４）へ進み、エンコーダ５０３はプレコーディングパターン３１１のプレコーディングする領域３０２の画像データをブロック単位でメモリ５０２から順次読み込みプレコーディングする。そして、ページコーディング量を累積していく。
【００７８】
ここでの、プレコーディングとは、圧縮後データサイズを算出するのが目的で圧縮後画像データをメモリに書き戻さない処理を意味する。
【００７９】
なお、本実施形態において、エンコーダ５０３はプレコーディングパターン３１１のプレコーディング領域はページ全体の１／４であることからプレコーディング量を４倍したものをページ全体のコーディング量として算出する。
【００８０】
一方、ステップ（６９）で、ＣＰＵ５０１が空領域が中程度でないと判断した場合は、ステップ（７１）で、メモリ５０２の空領域が十分大きいかどうかを判断する。
【００８１】
ここで、メモリ５０２の空領域が十分大きいと判断した場合は、ステップ（７２）で、ＣＰＵ５０１は、プレコーディング領域が少ないプレコーディングパターン３２１をＲＯＭ５０５上から選択する。そして、エンコーダ５０３に対してプレコーディングパターン３２１の設定後、エンコーダ５０３にプレコーディング処理を開始させる。また、メモリ５０２の空領域が十分大きくないと判断した場合は、ステップ（６２）へ戻る。
【００８２】
そして、ステップ（６４）へ進み、エンコーダ５０３はプレコーディングパターン３２１のプレコーディングする領域３２２の画像データをブロック単位でメモリ５０２から順次読み込みプレコーディングする。このようしてプレコーディングされるページコーディング量を累積していく。
【００８３】
この処理は、圧縮後データサイズを算出するのが目的で圧縮後画像データをメモリに書き戻さない処理である。
【００８４】
この場合において、エンコーダ５０３はプレコーディングパターン３２１のプレコーディング領域はページ全体の１／８であることからプレコーディング量を８倍したものをページ全体のコーディング量として算出する。
【００８５】
次に、ステップ（６５）で、ＣＰＵ５０１は、ステップ（６４）で算出された全体のコーディング量がメモリ５０２の空領域以上であるかを判断する。
【００８６】
ここで、算出された全体のコーディング量がメモリ５０２の空領域以上であると判断した場合は、ステップ（６６）へ進む。そして、メモリの空領域を増やす、圧縮パラメータをより圧縮率の高いものに設定し直し、ステップ（６２）へ戻り、再度プレコーディングを行う等の処理をする。
【００８７】
一方、ステップ（６５）で、ＣＰＵ５０１が全体のコーディング量がメモリ５０２の空領域以下となったと判断した場合は、ステップ（６７）で、全画像領域を順次、本コーディングしメモリ５０２に書き戻させる。
【００８８】
そして、ステップ（６８）で、ＣＰＵ５０１は、全画像コーディング累積コード量が空領域以下に収束しているかどうかを判断する。ここで、ＣＰＵ５０１が、本コーディング中に前述の算出コーディング量より実際のコーディング量のほうが多くなったと判断した場合は、メモリ５０２の空領域を増やす、圧縮パラメータをより圧縮率の高いものに設定する。そして、ステップ（６２）へ進み、直し再度プレコーディングから行う等の処理を実行する。
【００８９】
一方、ステップ（６８）で、ＣＰＵ５０１は、全画像コーディング累積コード量が空領域以下に収束していると判断した場合は、本圧縮処理を終了する。
【００９０】
これにより、最終的にメモリ５０２に収まるように圧縮処理がさらに短時間に完了する。
【００９１】
〔第３実施形態〕
以下、図７に示すメモリマップを参照して本発明に係る画像処理装置で読み取り可能なデータ処理プログラムの構成について説明する。
【００９２】
図７は、本発明に係る画像処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【００９３】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【００９４】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【００９５】
本実施形態における図６に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【００９６】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【００９７】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００９８】
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００９９】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【０１００】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１０１】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバやｆｔｐサーバ等も本発明の請求項に含まれるものである。
【０１０２】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１０３】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。例えばそのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行う。そして、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０４】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込ませる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０５】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から排除するものではない。
【０１０６】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【図面の簡単な説明】
【０１０７】
【図１】本発明の第１実施形態を示す画像処理装置の構成を説明するブロック図である。
【図２】図１に示したメモリにプレコーディングするプレコーディングパターンの一例を示す図である。
【図３】本実施形態における画像処理装置の第１のデータ処理手順の一例を示すフローチャートである。
【図４】本実施形態における画像処理装置の第２のデータ処理手順の一例を示すフローチャートである。
【図５】本発明の第３実施形態を示す画像処理装置におけるプレコーディングパターンの一例を示す図である。
【図６】本実施形態における画像処理装置の第３のデータ処理手順の一例を示すフローチャートである。
【図７】本発明に係る画像処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【符号の説明】
【０１０８】
５０１  ＣＰＵ
５０２  メモリ
５０３  エンコーダ
５０４  バス
５０５  ＲＯＭ
【図１】
2007143000.tif 000003
【図２】
2007143000.tif 000004
【図３】
2007143000.tif 000005
【図４】
2007143000.tif 000006
【図５】
2007143000.tif 000007
【図６】
2007143000.tif 000008
【図７】
2007143000.tif 000009