(57)【特許請求の範囲】
【請求項１】
被圧縮画像情報を示す予め定められたビット幅の画素値について、予め定められた固定値に置換する無効ビット領域と前記無効ビット領域以外の有効ビット領域に分割する分割手段と、
前記有効ビット領域の値は前記画素値の対応するビットの値とするとともに、前記無効ビット領域の値は前記予め定められた固定値として、前記被圧縮画像情報を変換画像情報に変換する画像情報変換手段と、
前記変換画像情報を圧縮する圧縮手段と、を含み、
前記被圧縮画像情報は画像を画像読取手段により読み取って取得した画像情報であり、  前記分割手段は、予め定められた画素値の試験画像を画像読取手段により読み取って取得した試験画像情報の画素値と前記予め定められた画素値とを比較し、前記予め定められたビット幅のうち値の異なるビット幅を前記無効ビット領域として前記無効ビット領域と前記有効ビット領域とに分割する
画像圧縮装置。
【請求項２】
前記分割手段は、前記試験画像情報の画素値と前記予め定められた画素値とを画素値ごとに比較して画素値ごとに値が異なるビット幅を取得するとともに、前記値が異なるビット幅となった画素値の個数をビット幅ごとに計数して度数分布を生成し、前記度数分布を用いて前記無効ビット領域を決定して前記無効ビット領域と前記有効ビット領域とに分割する
請求項１に記載の画像圧縮装置。
【請求項３】
前記分割手段は、前記度数分布の最大の度数を示すビット幅、前記度数分布の度数が０でない最大のビット幅、および前記度数分布のビット幅の加重平均のいずれかを前記無効ビット領域と決定して前記無効ビット領域と前記有効ビット領域とに分割する
請求項２に記載の画像圧縮装置。
【請求項４】
被圧縮画像情報の画素値ごとに圧縮率を監視する圧縮率監視手段をさらに含み、
前記分割手段は、前記圧縮率が目標圧縮率に収束するように前記無効ビット領域のビット幅を増減させて前記無効ビット領域を決定し前記無効ビット領域と前記有効ビット領域とに分割する
請求項１に記載の画像圧縮装置。
【請求項５】
分割された前記有効ビット領域のビット幅が前記有効ビット領域のビット幅の下限である目標有効ビット幅未満である場合に、
前記分割手段は、前記有効ビット領域のビット幅を前記目標有効ビット幅とし、
前記圧縮率監視手段は、圧縮率が前記目標圧縮率以下の場合に前記圧縮手段による圧縮を継続させ、かつ圧縮率が前記目標圧縮率を越える場合に前記圧縮手段による圧縮を停止させる
請求項４に記載の画像圧縮装置。
【請求項６】
前記圧縮手段は、ランレングス圧縮を用いて前記変換画像情報を圧縮する
請求項１〜請求項５のいずれか１項に記載の画像圧縮装置。
【請求項７】
画像を読み取り前記被圧縮画像情報を取得する画像読取手段と、
請求項１〜請求項６のいずれか１項に記載の画像圧縮装置と、
前記圧縮手段により圧縮された圧縮画像情報を記憶する記憶手段と、
前記圧縮画像情報を伸張する伸張手段と、
前記伸張手段により伸張された前記圧縮画像情報に予め定められた画像処理を施して出力する出力手段と、
を含む画像処理装置。
【請求項８】
前記画像読取手段がイメージセンサである
請求項７に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像圧縮装置および画像処理装置に関する。
【背景技術】
【０００２】
特許文献１には、入力されたデータから画像データ及び当該画像データの画素ごとの属性を示す属性データを生成する入力処理手段と、入力処理手段で生成された画像データを圧縮する第１データ圧縮手段と、入力処理手段で生成された属性データを圧縮する第２データ圧縮手段と、第１データ圧縮手段で圧縮された画像データを伸張する第１伸張手段と、第２データ圧縮手段で圧縮された属性データを伸張する第２伸張手段と、第１伸張手段で伸張された画像データを所定のデータ特性を持つ画像データとして出力するために、第２伸張手段で伸張された属性データに応じた処理条件で当該画像データを処理する出力画像処理手段を有する画像処理装置において、第２データ圧縮手段は、非可逆のデータ圧縮手段であり、出力画像処理手段は、伸張された画像データの画素に生じる圧縮によるノイズを除去するために、特定の属性を持つ画素の画像データ値を、当該属性に対応して定められた値で置き換えることにより、補正処理をする特定属性領域補正手段を備えたことを特徴とする画像処理装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１２４４４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、元の画像情報をそのまま圧縮する場合と比較して、雑音や読み取り精度等の要因で画素値が変動する場合でも、高い圧縮率を実現する画像圧縮装置、および画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、請求項１に記載の画像圧縮装置は、被圧縮画像情報を示す予め定められたビット幅の画素値について、予め定められた固定値に置換する無効ビット領域と前記無効ビット領域以外の有効ビット領域に分割する分割手段と、前記有効ビット領域の値は前記画素値の対応するビットの値とするとともに、前記無効ビット領域の値は前記予め定められた固定値として、前記被圧縮画像情報を変換画像情報に変換する画像情報変換手段と、前記変換画像情報を圧縮する圧縮手段と、を含み、前記被圧縮画像情報は画像を画像読取手段により読み取って取得した画像情報であり、前記分割手段は、予め定められた画素値の試験画像を画像読取手段により読み取って取得した試験画像情報の画素値と前記予め定められた画素値とを比較し、前記予め定められたビット幅のうち値の異なるビット幅を前記無効ビット領域として前記無効ビット領域と前記有効ビット領域とに分割するものである。
【０００７】
また、請求項２に記載の発明は、請求項１に記載の発明において、前記分割手段は、前記試験画像情報の画素値と前記予め定められた画素値とを画素値ごとに比較して画素値ごとに値が異なるビット幅を取得するとともに、前記値が異なるビット幅となった画素値の個数をビット幅ごとに計数して度数分布を生成し、前記度数分布を用いて前記無効ビット領域を決定して前記無効ビット領域と前記有効ビット領域とに分割するものである。
【０００８】
また、請求項３に記載の発明は、請求項２に記載の発明において、前記分割手段は、前記度数分布の最大の度数を示すビット幅、前記度数分布の度数が０でない最大のビット幅、および前記度数分布のビット幅の加重平均のいずれかを前記無効ビット領域と決定して前記無効ビット領域と前記有効ビット領域とに分割するものである。
【０００９】
また、請求項４に記載の発明は、請求項１に記載の発明において、被圧縮画像情報の画素値ごとに圧縮率を監視する圧縮率監視手段をさらに含み、前記分割手段は、前記圧縮率が目標圧縮率に収束するように前記無効ビット領域のビット幅を増減させて前記無効ビット領域を決定し前記無効ビット領域と前記有効ビット領域とに分割するものである。
【００１０】
また、請求項５に記載の発明は、請求項４に記載の発明において、分割された前記有効ビット領域のビット幅が前記有効ビット領域のビット幅の下限である目標有効ビット幅未満である場合に、前記分割手段は、前記有効ビット領域のビット幅を前記目標有効ビット幅とし、前記圧縮率監視手段は、圧縮率が前記目標圧縮率以下の場合に前記圧縮手段による圧縮を継続させ、かつ圧縮率が前記目標圧縮率を越える場合に前記圧縮手段による圧縮を停止させるものである。
【００１１】
また、請求項６に記載の発明は、請求項１〜請求項５のいずれか１項に記載の発明において、前記圧縮手段は、ランレングス圧縮を用いて前記変換画像情報を圧縮するものである。
【００１２】
一方、上記目的を達成するために、請求項７に記載の画像処理装置は、画像を読み取り前記被圧縮画像情報を取得する画像読取手段と、請求項１〜請求項６のいずれか１項に記載の画像圧縮装置と、前記圧縮手段により圧縮された圧縮画像情報を記憶する記憶手段と、前記圧縮画像情報を伸張する伸張手段と、前記伸張手段により伸張された前記圧縮画像情報に予め定められた画像処理を施して出力する出力手段と、を含むものである。
【００１３】
また、請求項８に記載の発明は、請求項７に記載の発明において、前記画像読取手段がイメージセンサであるものである。
【発明の効果】
【００１４】
請求項１および請求項７に記載の発明によれば、元の画像情報をそのまま圧縮する場合と比較して、雑音や読み取り精度等の要因で画素値が変動する場合でも、高い圧縮率が実現される、という効果を得ることができる。
また、請求項１に記載の発明によれば、圧縮率が目標圧縮率に収束するように無効ビット領域のビット幅を増減させて無効ビット領域を決定する場合と比較して、画像読取手段の読み取り精度が直接反映される、という効果を得ることができる。
【００１６】
また、請求項２に記載の発明によれば、画素ごとに一律に無効ビット領域を決定する場合と比較して、伸張後の画像の再現精度が向上する、という効果を得ることができる。
【００１７】
また、請求項３に記載の発明によれば、度数分布における固定した統計値を用いて無効ビット領域を決定する場合と比較して、被圧縮画像情報の内容に応じて柔軟に無効ビット領域が決定される、という効果を得ることができる。
【００１８】
また、請求項４に記載の発明によれば、試験画像情報を用いて無効ビット領域を決定する場合と比較して、より簡易に無効ビット領域が決定される、という効果を得ることができる。
【００１９】
また、請求項５に記載の発明によれば、有効ビット領域に下限を設けない場合と比較して、圧縮率が一定の値に維持されつつ、伸張後の画像の再現精度が向上する、という効果を得ることができる。
【００２０】
また、請求項６に記載の発明によれば、他の圧縮方式を用いる場合と比較して、被圧縮画像情報の画素値が一定値または一定値に近い領域の圧縮効率が向上する、という効果を得ることができる。
【００２１】
また、請求項８に記載の発明によれば、他の手段で被圧縮画像情報を取得する場合と比較して、イメージセンサの読み取り精度を反映しつつ高い圧縮率が実現され得る、という効果を得ることができる。
【図面の簡単な説明】
【００２２】
【図１】実施の形態に係る画像処理装置の電気系の要部構成の一例を示すブロック図である。
【図２】第１の実施の形態に係る圧縮・伸張部の構成の一例を示すブロック図である。
【図３】第１の実施の形態に係るテスト画像の一例を示す図である。
【図４】第１の実施の形態に係る有効ビット領域および無効ビット領域を説明する図である。
【図５】第１の実施の形態に係る各画像データの例、およびランレングス圧縮した画素値のデータ形式を示す図である。
【図６】第１の実施の形態に係る圧縮・伸張処理プログラムの処理の流れを示すフローチャート、および有効ビット幅算出処理サブルーチンプログラムの処理の流れを示すフローチャートである。
【図７】第１の実施の形態に係るヒストグラムの一例を示す図である。
【図８】第２の実施の形態に係る圧縮・伸張部の構成の一例を示すブロック図である。
【図９】第２の実施の形態に係る圧縮・伸張処理プログラムの処理の流れを示すフローチャート、および有効ビット幅算出処理サブルーチンプログラムの処理の流れを示すフローチャートである。
【図１０】第２の実施の形態に係る累積画素数に対する圧縮率の変化を示すグラフである。
【図１１】第３の実施の形態に係る圧縮・伸張部の構成の一例を示すブロック図である。
【図１２】第３の実施の形態に係る有効ビット幅算出処理サブルーチンプログラムの処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００２３】
以下、図面を参照して、本発明の実施の形態について詳細に説明する。以下では、本発明に係る画像圧縮装置を、画像処理装置における画像データの圧縮に適用した形態を例示して説明する。画像処理装置としては、画像処理機能を備えたスキャナなどの画像入力装置、印刷出力装置などの画像形成装置であってもよい。
【００２４】
図１は、本実施の形態に係る画像処理装置１０の電気系の要部構成の一例を示すブロック図である。示す。図１に示すように、画像処理装置１０は、圧縮・伸張部１２、メモリ１４、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１６Ａ、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１６Ｂ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１６Ｃ、画像入力部１８、ＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）２０、画像出力部２２、およびＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２４を備えている。
【００２５】
ＣＰＵ１６Ａは、画像処理装置１０の全体を統括、制御する。ＲＯＭ１６Ｂは、画像処理装置１０の動作を制御する制御プログラム、後述する圧縮・伸張処理プログラムや各種パラメータ等を予め記憶する記憶手段である。ＲＡＭ１６Ｃは、各種プログラムの実行時のワークエリア等として用いられる記憶手段である。
【００２６】
ＵＩ２０は、ディスプレイ上に透過型のタッチパネルが重ねられたタッチパネルディスプレイ等から構成され、各種情報がディスプレイの表示面に表示されると共に、ユーザがタッチパネルに触れることにより所望の情報や指示が入力される。
【００２７】
Ｉ／Ｆ２４は、一例として、パーソナル・コンピュータ等の端末装置（図１では、ＰＣ２６と表記）に接続され、端末装置から画像データ等の各種データを受信したり、逆に、画像処理装置１０において生成された画像データ等の各種データを端末装置等に送信したりするためのインタフェースである。
【００２８】
ＣＰＵ１６Ａ、ＲＯＭ１６Ｂ、ＲＡＭ１６Ｃ、ＵＩ２０、およびＩ／Ｆ２４は、システムバスＢＵＳを介して相互に接続されている。
【００２９】
画像入力部１８は、たとえばスキャナにより構成され、光学的に原稿の読み取りを行い、読み取った原稿の画像データを生成する部位である。画像出力部２２は、たとえば電子写真方式により、画像データに基づいた画像形成（印刷）を記録用紙等の記録媒体に行う部位である。
【００３０】
メモリ１４は、画像入力部１８により取得された画像データ、あるいはＰＣ２６から供給された画像データ等を記憶する記憶手段である。
【００３１】
圧縮・伸張部１２は、画像データをメモリ１４に記憶するに際し該画像データに対して圧縮処理を施し、また、メモリ１４から画像データを読み出すに際し圧縮された画像データに対して伸張処理を施す部位である。
【００３２】
画像入力部１８、画像出力部２２、圧縮・伸張部１２、およびメモリ１４もまた、システムバスＢＵＳに接続されている。従って、ＣＰＵ１６Ａは、画像入力部１８、画像出力部２２、圧縮・伸張部１２、およびメモリ１４の動作の制御も行う。
【００３３】
ところで、画像入力部１８の入力手段がスキャナ等である場合、原稿画像の読み取り手段として、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）で構成されるＣＣＤラインセンサや、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ−Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）イメージセンサ等のセンサが用いられる場合も多い。センサで検出された画像データは、予め定められたビット数（たとえば、１６ビット）のデータに変換されて画像データが生成される。
【００３４】
センサで読み取った（検出した）画像データの画素値は、雑音やセンサ読み取り精度等の要因で、画像データを構成するビット、特に下位ビットが変動する場合がある。たとえば、白色部をセンサで検出した画像データの画素値は、目標値ｘＦＦＦＦに対して、ｘＦＦＦＦ〜ｘＦＦＦ０のように変動する場合がある。
【００３５】
一方、画像入力部１８で生成した画像データをメモリ１４に記憶させるに際し、記憶効率を高めるために、当該画像データを圧縮手段によって圧縮処理する場合がある。また、圧縮処理してメモリ１４に記憶させた画像データを読み出す場合には、圧縮処理と逆の処理である伸張処理を施し、元の画像データに対応する画像データを再現する。
【００３６】
圧縮の方式としては、さまざまな方式が検討されてきているが、そのなかの一つの方式としてランレングス圧縮がある。ランレングス圧縮とは、連続して現れるデータを、繰り返しの回数で置き換えることによりデータ量を削減する圧縮方式である。センサで検出した画像データに対しランレングス方式で圧縮することを考えた場合、上記のようにビットの値が変動すると、変動している部分を有する画素値は圧縮できないので、圧縮率が下がる。したがって、圧縮処理による高圧縮率が期待できないばかりでなく、場合によっては、圧縮後の画像データ量の方が圧縮前の画像データ量より増大することも考えられる。
【００３７】
そこで、本発明では、元の画像データに極力影響を与えない範囲で、同一の画素値が連続する工夫をしている。つまり、画素値において変動しないと推定されるビット領域を有効ビット領域とし、その余のビット領域（変動するビット領域）を無効ビット領域として、有効ビット領域には元の画素値のビット値を割り当て、無効ビット領域には予め定められた固定値を割り当て（固定値で置換し）、画像データにおいて一定の画素値となる部分を増やす。このことにより、圧縮率が向上する。
【００３８】
［第１の実施の形態］
図２ないし図７を参照して、本実施の形態に係る圧縮・伸張部について説明する。図２（ａ）は、本実施の形態に係る圧縮・伸張部１２ａのブロック図を、図２（ｂ）は、圧縮・伸張部１２ａの一部を構成する画像検査部４０のブロック図を各々示している。本実施の形態は、圧縮処理の実行に先立ち、テスト画像を用いて、上記有効ビット領域（または、無効ビット領域）を決定し、決定された有効ビット領域を用いて圧縮処理を行う形態である。
【００３９】
図２（ａ）に示すように、本実施の形態に係る圧縮・伸張部１２ａは、画像検査部４０、圧縮部４２、メモリ制御部４４、および伸張部４６を備えている。図２には、圧縮処理された画像データ（圧縮データ）を格納するメモリ１４も併せて示している。なお、図２（ａ）においては、本実施の形態に係る圧縮処理と伸張処理を連続する処理として図示しているが、これらの処理は個々独立して実行され得る処理である。
【００４０】
画像検査部４０は、圧縮処理、伸張処理の実行に先立ち入力されたテスト画像の画像データ（テスト画像データ）を検査し、ノイズやセンサの読み取り精度等を考慮し、画素値の有効ビット幅を算出する。また、算出された有効ビット幅を用いて、入力された画像データ（入力画像データ）に対しデータ変換処理を行う。
【００４１】
本実施の形態に係るテスト画像データは、基準画像を記録媒体としての記録用紙に印刷したテスト画像をセンサで読み取ることにより取得する。図３は、記録用紙Ｐに基準画像を印刷したテスト画像ＴＧを示している。本実施の形態では、基準画像を、特定の画素値（基準画素値）を有する予め定められた大きさの領域としており、テスト画像ＴＧは、一例として、基準画素値のベタパターンで形成されている。基準画素値に特に制限はないが、本実施の形態では、白色であるｘＦＦＦＦとしている。なお、テスト画像データは、センサで予め読み取っておき、ＲＯＭ１６Ｂあるいは図示しないＮＶＭ（Ｎｏｎ  Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ）等の記憶手段に記憶しておいてもよい。
【００４２】
図４を参照して、本実施の形態に係る有効ビット幅、有効データ領域、および無効データ領域について説明する。図４は、画素値をＮビットとした場合の画像データの、ＬＳＢ（Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ：最下位ビット）からＭＳＢ（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ：最上位ビット）までのビット配列を示している。本実施の形態では、ＬＳＢからｍビット目まで値の変動が予測された場合、該ｍビットを「無効データ領域」と定義する。また、全ビット数のＮからｍを減じた（Ｎ−ｍ）ビットを「有効データ領域」という。本実施の形態において、「ビット幅」とは画素値のビット配列の桁数を意味する。したがって、画素値のビット幅はＮビットであり、有効データ領域のビット幅は（Ｎ−ｍ）ビットであり、無効データ領域のビット幅はｍビットである。画素値のビット幅Ｎビットは、一例として１６ビットとすることができる。
【００４３】
本実施の形態に係るデータ変換処理は、有効ビット領域に属するビットの値は入力画像データの画素値そのものとし、無効ビット領域に属するビットの値は予め定められた固定値とする。該固定値は、入力画像データ内で同じであれば特に限定されないが、本実施の形態では、一例として、白、黒、あるいは画素値平均とされる。白は、入力画像データが白に近いときに有効であり、黒は、入力画像データが黒に近ときに有効である。また、本実施の形態に係る入力画像データは、先述したように、たとえば画像入力部１８の図示しないセンサにより取得された画像データである。該センサにより取得された画像データは、入力画像データとしてＰＣ２６から供給されることもある。
【００４４】
図２（ａ）に戻り、圧縮部４２は、画像検査部４０でデータ変換処理された画像データ（変換画像データ）に対して圧縮処理を実行する。本実施の形態では、圧縮方式としてランレングス圧縮を用いている。
【００４５】
図５を参照して、有効ビット幅の算出、データ変換処理、および圧縮処理についてより詳細に説明する。
【００４６】
まず、図５（ａ）および図５（ｂ）を参照して、本実施の形態に係る有効ビット幅の算出について説明する。図５（ａ）は、本実施の形態に係るテスト画像データの一例、図５（ｂ）は、基準画像データの一例を示している。図５（ａ）に示すように、本実施の形態では、ひとつの画素値を１６ビットで表している。図５（ａ）は、５つの画素Ｐｘ１ないしＰｘ５の１６進数で表した画素値を示している。
【００４７】
図５（ｂ）は、図５（ａ）と同様の表示形式で表した図５（ａ）のテスト画像データに対応する基準画像データである。本実施の形態では、基準画像を白色のベタパターンとしており、基準画素値は、ｘＦＦＦＦである。
【００４８】
図５（ａ）に示すテスト画像データと、図５（ｂ）に示す基準画像データを比較すると、テスト画像データは、下位４ビットが、Ｐｘ１から順に、Ｆ、２、１、Ｆ、３、と変動している。それに対し、テスト画像データの上位１２ビットは、基準画像データに対して変動していない。したがって、この例では、無効ビット幅ｍはｍ＝４、有効ビット幅（Ｎ−ｍ）は（Ｎ−ｍ）＝１２（＝１６−４）となる。
【００４９】
つぎに、図５（ｃ）および図５（ｄ）を参照して、データ変換処理について説明する。
図５（ｃ）は、入力画像データの一例、図５（ｄ）は、図５（ｃ）に示す入力画像データにデータ変換処理を施した変換画像データの一例を各々示している。
【００５０】
図５（ｃ）に示す入力画像データは、一例として、入力画像データ中の白色に近い画素値の領域が入力された場合を示している。入力画像データの下位４ビットは、Ｐｘ１から順に、３、Ｆ、１、Ｅ、８と変化している。この下位４ビットは、上記検査の結果から無効データ領域であり、データとしての信頼度が低い領域である。したがって、本実施の形態に係るデータ変換処理では、図５（ｄ）に示すように、有効ビット領域である上位１２ビットを入力画像データの画素値の対応するビットの値とし、無効ビット領域である下位４ビットの画素値を固定値Ｆに置換している。
【００５１】
図５（ｅ）に、ランレングス圧縮した画像データのデータ形式を示す。図５（ｅ）に示すように、圧縮データは、「ＩＤ」、「画素値」、「ラン長」の各領域を含んでいる。ＩＤは、圧縮したデータであるか否かを識別する識別子であり、たとえば、ランレングス圧縮を施したデータに対してはＩＤ＝０とし、それ以外のデータに対してはＩＤ＝１とする。画素値はデータ変換後の画素値であり、図５（ｄ）に示す例では、ｘＦＦＦＦである。
ラン長は、連続する画素値ｘＦＦＦＦの個数であり、図５（ｄ）に示す例で、Ｐｘ１以前の画素値、およびＰｘ５以降の画素値がｘＦＦＦＦ以外の画素値であれば、ラン長は５である。したがって、図５（ｄ）に示す変換画像データを圧縮すると、圧縮後の画像データは、ｘ０ＦＦＦＦ５となる。
【００５２】
図２（ａ）に戻り、メモリ制御部４４は、圧縮部４２で圧縮された圧縮データをメモリ１４に格納する。また、メモリ１４に格納されている圧縮データを読み出す。
【００５３】
伸張部４６は、メモリ制御部４４によって読み出された圧縮データを伸張して、入力画像データに対応する画像データを生成し、出力画像データとして出力する。
【００５４】
本実施の形態では、画像検査部４０、圧縮部４２、メモリ制御部４４、および伸張部４６の各構成は、ＣＰＵ１６Ａによって制御される。
【００５５】
つぎに、図２（ｂ）を参照して、本実施の形態に係る画像検査部４０について説明する。図２（ｂ）に示すように、画像検査部４０は、画像データ比較部４００、有効ビット幅算出部４０２、および画像データ生成部４０４を備えている。
【００５６】
画像データ比較部４００は、入力されたテスト画像データの画素値と上記基準画素値とを比較し、比較した結果を有効ビット幅算出部４０２に送る。比較した結果とは、たとえば、テスト画像データのＮビットの画素値のうち、Ｎビットの基準画素値と異なる下位ビットのビット数ｍである。画像データ比較部４００は、テスト画像データの画素ごとの比較結果を逐次有効ビット幅算出部４０２に転送する、この比較結果により、画像入力部１８に設けられたセンサにより画像を読み取ると、取得された画像データの画素値のどのビット領域で基準画素値に対する変動を生ずるか、つまりセンサの読み取り精度がわかる。
なお、比較の対象となる基準画素値は、ＲＯＭ１６Ｂ等の記憶手段に記憶しておいてもよい。
【００５７】
有効ビット幅算出部４０２は、画像データ比較部４００からの画素ごとの比較結果を受け取りつつ、画素値が異なる下位ｍビットの統計をとる。テスト画像データの全体の入力が終了したら、上記統計の結果により図４に示す有効ビット領域の有効ビット幅（Ｎ−ｍ）を算出する。なお、ここで用いる統計の詳細については後述する。
【００５８】
また、本実施の形態では、画像データ比較部４００がテスト画像データの画素値と基準画素値との比較結果を逐次有効ビット幅算出部４０２に送り、有効ビット幅算出部４０２が逐一統計をとる形態を例示して説明するが、これに限られない。たとえば、画像データ比較部４００が画像データ同士の全比較結果を取得した後有効ビット幅算出部４０２に送り、有効ビット幅算出部４０２が、全比較結果をもとに一括して統計をとるようにしてもよい。
【００５９】
画像データ生成部４０４は、有効ビット幅算出部４０２から受け取った有効ビット幅を用いて、入力された入力画像データに対して先述のデータ変換処理を施し、変換画像データを出力する。
【００６０】
つぎに、図６を参照して、本実施の形態に係る圧縮・伸張処理について説明する。図６（ａ）は、本実施の形態に係る圧縮・伸張処理プログラムの処理の流れを示すフローチャートであり、図６（ｂ）は、圧縮・伸張処理プログラムで呼び出す有効ビット幅算出サブルーチンの処理の流れを示すフローチャートである。図６では、テスト画像による検査、圧縮処理、および伸張処理を連続した一連の処理として説明するが、むろんこれらの処理は個々の処理として独立して実行してもよい。たとえば、テスト画像による検査は、本実施の形態に係る画像処理装置１０の電源投入時に１度行うようにしてもよいし、定期的に行うようにしてもよい。
【００６１】
図６に示す処理は、実行開始の指示がなされると、ＣＰＵ１６ＡがＲＯＭ１６Ｂ等の記憶手段から本圧縮・伸張処理プログラムを読み込み、実行する。
【００６２】
本実施の形態では、本圧縮・伸張処理プログラムをＲＯＭ１６Ｂ等に予め記憶させておく形態を例示して説明する。しかしながら、これに限られず、本圧縮・伸張処理プログラムがコンピュータにより読み取り可能な可搬型の記憶媒体に記憶された状態で提供される形態、有線または無線による通信手段を介して配信される形態等を適用してもよい。
【００６３】
また、本実施の形態では、本圧縮・伸張処理を、プログラムを実行することによるコンピュータを利用したソフトウエア構成により実現しているが、これに限られない。たとえば、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）を採用したハードウエア構成や、ハードウエア構成とソフトウエア構成の組み合わせによって実現してもよい。
【００６４】
図６に示すフローチャートでは、図３に示すテスト画像ＴＧを印刷した記録用紙Ｐがセンサで読み取られ、読み取ったテスト画像データがすでにＲＡＭ１６Ｃ等の記憶手段に記憶されているものとする。あるいは、センサで読み取られたテスト画像データが、予めＲＯＭ１６Ｂ等に記憶されているものとする。また、ＵＩ２０等を介してすでに画像処理装置１０によるテスト画像による検査、圧縮処理、および伸張処理の開始の指示がなされているものとする。
【００６５】
まず、ステップＳ１００では、テスト画像データを入力するように、画像検査部４０（画像データ比較部４００）を制御する。
【００６６】
つぎのステップＳ１０２では、有効ビット幅算出処理を実行するように、図６（ｂ）に示す有効ビット幅算出処理サブルーチンを呼び出す。図６（ｂ）を参照して、有効ビット幅算出処理について説明する。
【００６７】
ステップＳ２００では、テスト画像データの画素値と基準画素値とを画素値ごとに比較するように、画像データ比較部４００を制御する。
【００６８】
つぎのステップＳ２０２では、ステップＳ２００で取得した比較結果について統計処理を実行するように、有効ビット幅算出部４０２を制御する。
【００６９】
図７に、本実施の形態に係る統計処理の一例を示す。本実施の形態では、横軸に変動するビット幅ｍｖ（１〜Ｎ）をとり、縦軸に当該変動ビット幅ｍｖが発生した個数（度数）Ｎをとり、度数Ｎを変動ビット幅ｍｖごとに計数して、図７に示すようなヒストグラムを作成する。そのため、本実施の形態では、変動ビット幅ｍｖごとに対応するカウンタを有しおり、比較結果を受け取るつど、対応する変動ビット幅ｍｖのカウンタをカウントアップする。
【００７０】
つぎのステップＳ２０４では、画像データ比較部４００によるテスト画像データの読み込みが終了したか否か判定する。当該判定が否定判定となった場合には、ステップＳ２００に戻り、画像データの比較を継続する。一方、当該判定が肯定判定となった場合には、ステップＳ２０６に移行する。この際、図７に示すヒストグラムの作成が完了している。
【００７１】
つぎのステップＳ２０６では、有効ビット幅の算出を行う。有効ビット幅の算出では、まず、Ｎビットの画素値において相互に値の異なる領域である無効ビット領域のビット幅ｍを決定する。当該ビット幅ｍから、有効ビット幅（Ｎ−ｍ）を算出する。有効ビット幅（Ｎ−ｍ）の算出後、メインルーチンに戻る。
【００７２】
本実施の形態に係る有効ビット幅（Ｎ−ｍ）の算出方法について、より詳細に説明する。本実施の形態では、ステップＳ２０４で得られたヒストグラムを用いて、以下に示すいずれかの方法で無効ビット幅ｍを決定し、該無効ビット幅ｍを用いて、有効ビット幅（Ｎ−ｍ）を算出する。
（方法１）度数が０でない最大のｍｖ。図７に示すヒストグラムでは、ｍｖ＝５となる。
（方法２）度数が最大となるｍｖ。図７に示すヒストグラムでは、ｍｖ＝４となる。
（方法３）変動ビット幅ｍｖの加重平均。図７に示すヒストグラムでは、ｍｖ＝ｉの度数ＮをＮｉとすれば、以下に示す（式１）によって求められる＜ｍｖ＞。
＜ｍｖ＞＝（Ｎ１・ｍｖ１＋Ｎ２・ｍｖ２＋Ｎ３・ｍｖ３＋Ｎ４・ｍｖ４＋Ｎ５・ｍｖ５）／（Ｎ１＋Ｎ２＋Ｎ３＋Ｎ４＋Ｎ５）  ・・・  （式１）
【００７３】
図７に示すヒストグラムについて、（方法１）によれば、有効ビット幅は１１（＝１６−５）となる。（方法２）によれば、有効ビット幅は１２（＝１６−４）となる。（方法３）によれば、有効ビット幅は（１６−＜ｍｖ＞）となる。
【００７４】
図６（ａ）に戻り、つぎのステップＳ１０４では、圧縮の対象となる入力画像データを入力するように、画像検査部４０（画像データ生成部４０４）を制御する。入力画像データを入力する単位は特に限定されないが、たとえば、ページ単位としてもよい。
【００７５】
つぎのステップＳ１０６では、有効ビット幅（Ｎ−ｍ）を用いて入力画像データに対し、データ変換処理を施し、変換画像データを生成するように画像データ生成部４０４を制御する。先述したように、本実施の形態に係るデータ変換処理は、有効ビット領域に属するビットの値を入力画像データの画素値そのものとし、無効ビット領域に属するビットの値を固定値（たとえば、白、黒、あるいは画素値平均）とする。
【００７６】
つぎのステップＳ１０８では、ステップＳ１０６で生成された変換画像データに対し、圧縮処理を施す。本実施の形態では、当該圧縮の方式としてランレングス圧縮を用いている。
【００７７】
つぎのステップＳ１１０では、入力画像データの全画素値について圧縮処理が終了したか否か判定する。当該判定が否定判定となった場合にはステップＳ１０４に戻り、入力画像データのつぎの画素値を入力する。一方、当該判定が肯定判定となった場合には、ステップＳ１１２に移行する。
【００７８】
ステップＳ１１２では、圧縮データをメモリ１４に格納するようにメモリ制御部４４を制御する。
【００７９】
つぎのステップＳ１１４では、メモリ１４から圧縮データを読み込むようにメモリ制御部４４を制御する。読み込んだ圧縮データは、ＲＡＭ１６Ｃ等の記憶手段に一時的に記憶させてもよい。
【００８０】
つぎのステップＳ１１６では、読み込んだ圧縮データに伸張処理を施し、入力画像データに対応する出力画像データを生成するように伸張部４６を制御する。伸張処理した出力画像データは、ＲＡＭ１６Ｃ等の記憶手段に一時的に記憶させてもよい。その後、本圧縮・伸張処理プログラムを終了する。本実施の形態に係る画像処理装置１０では、伸張した出力画像データを画像出力部２２に送り、たとえば、記録用紙に画像形成を行う。
【００８１】
［第２の実施の形態］
図８ないし図１０を参照して、本実施の形態に係る圧縮・伸張部１２ｂについて説明する。本実施の形態は、テスト画像を使用して有効ビット幅を算出する代わりに、画像圧縮処理において圧縮率を監視しつつ有効ビット幅を算出する形態である。つまり圧縮率を予め定められた目標値に近い値で維持することにより一定の無効ビット幅を確保し、圧縮率を向上させる形態である。この無効ビット幅は、センサの読み取り精度上変動が予測されるビット幅またはそれに近いビット幅としてもよい。
【００８２】
図８（ａ）に示すように、圧縮・伸張部１２ｂは、画像データ生成部５０、圧縮部４２、圧縮率監視部４８、メモリ制御部４４、および伸張部４６を備えている。図８（ａ）では、圧縮データを格納するメモリ１４も併せて示している。
【００８３】
画像データ生成部５０は、入力画像データを入力しつつ、与えられた有効ビット幅を用い、該入力画像データに対して上述したデータ変換処理を施し、変換画像データを生成する。すなわち、有効ビット領域に属するビットの値は入力画像データの画素値そのものとし、無効ビット領域に属するビットの値は固定値とする。
【００８４】
圧縮部４２は、上述したように、変換画像データを圧縮する。本実施の形態に係る圧縮方式は、一例としてランレングス圧縮としている。
【００８５】
圧縮率監視部４８は、圧縮部４２で圧縮された圧縮データの圧縮率を監視し、予め設定された圧縮率（目標圧縮率）に収束するように有効ビット幅を算出する。圧縮率ｋとは、一般に、（圧縮後のデータ量）／（圧縮前のデータ量）で定義される指数であり、本実施の形態では、圧縮処理のつど圧縮率を算出するので、圧縮率ｋは以下に示す（式２）で定義される。
ｋ＝（圧縮データの累積画素数）／（入力画像データの累積画素数）  ・・・  （式２）      
【００８６】
メモリ制御部４４は、上述したように、圧縮データのメモリ１４への格納および圧縮データのメモリ１４からの読み込みを制御する。
【００８７】
伸張部４６は、上述したように、圧縮データに対し伸張処理を施し、出力画像データとして出力する。
【００８８】
つぎに、図８（ｂ）を参照して、圧縮率監視部４８についてより詳細に説明する。図８（ｂ）に示すように、本実施の形態に係る圧縮率監視部４８は、圧縮率比較部４８０、および有効ビット幅算出部４８２を含んで構成されている。
【００８９】
圧縮率比較部４８０は、圧縮部４２で圧縮された圧縮データの圧縮率と目標圧縮率とを比較する部位である。比較した結果は、算出された圧縮率が目標圧縮率より大きい、または、算出された圧縮率が目標圧縮率以下、のいずれかで次段の有効ビット幅算出部４８２に出力される。
【００９０】
有効ビット幅算出部４８２は、圧縮データの圧縮率ｋが目標圧縮率ｋ＊に収束するように有効ビット幅を算出し、出力する部位である。本実施の形態では、圧縮率比較部４８０の比較結果を受け取るつど、以下の有効ビット幅算出手順に従って、動的に有効ビット幅を逐次算出していく。
（手順１）算出された圧縮率が目標圧縮率より大きい場合は、現時点の有効ビット幅から１ビット減らす。
（手順２）算出された圧縮率が目標圧縮率以下の場合は、現時点の有効ビット幅を１ビット増やすか、またはそのままとする。
（手順２）で、有効ビット幅を１ビット増やすか、そのままにするかは、圧縮率比較部４８０で比較した際の圧縮率ｋの目標圧縮率ｋ＊からの乖離度ｋ＊−ｋの値によって判断するようにしてもよい。なお、目標圧縮率ｋ＊は、予めＲＯＭ１６Ｂ等の記憶手段に格納しておいてもよい。
【００９１】
つぎに、図９を参照して、本実施の形態に係る圧縮・伸張処理、および有効ビット幅算出処理について説明する。図９（ａ）は、本実施の形態に係る圧縮・伸張処理プログラムの処理の流れを示すフローチャート、図９（ｂ）は、圧縮・伸張プログラムで呼び出す有効ビット幅算出処理サブルーチンプログラムの処理の流れを示すフローチャートである。
図９（ａ）に示す圧縮・伸張処理は、上記実施の形態同様、圧縮処理、および伸張処理を連続した一連の処理として示しているが、むろんこれらの処理は個々の処理として独立して実行してもよい。また、ユーザにより、ＵＩ２０等を介して本圧縮・伸張処理プログラムの実行がすでに指示されているものとする。
【００９２】
まず、ステップＳ３００において、有効ビット幅（Ｎ−ｍ）の初期値を設定する。有効ビット幅の初期値については特に限定はされないが、たとえばＮ（画素値の全ビット数）としてもよい。あるいは、上記実施の形態におけるテスト画像により算出した有効ビット幅を本初期値としてもよい。この場合は、ステップＳ３００の処理の代わりに、図６（ａ）に示すステップＳ１００およびＳ１０２の処理を実行すればよい。当該有効ビット幅の初期値は、ＲＯＭ１６Ｂ、ＲＡＭ１６Ｃ等の記憶手段に予め格納しておいてもよい。
【００９３】
つぎのステップＳ３０２では入力画像データを入力し、ステップＳ３０４では変換画像データを生成し、ステップＳ３０６では、変換画像データに対して圧縮処理を実行するが、これらの処理は、図６（ａ）に示すステップＳ１０４、Ｓ１０６、Ｓ１０８と同様の処理なので、詳細な説明は省略する。本実施の形態では、入力画像データを画素値単位で逐次入力し、画素値ごとに変換画像データを生成し、圧縮する。
【００９４】
つぎにステップＳ３０８では、有効ビット幅算出処理を実行するように有効ビット幅算出部４８２を制御する。図９（ｂ）に、本有効ビット幅算出処理を実行する、有効ビット幅算出処理サブルーチンプログラムを示す。
【００９５】
ステップＳ４００では、ある画素値に対して圧縮が施された時点の、（式２）で定義される圧縮率ｋを算出するように、圧縮率比較部４８０を制御する。
【００９６】
つぎのステップＳ４０２では、算出された圧縮率ｋと目標圧縮率ｋ＊とを比較するように、圧縮率比較部４８０を制御する。比較結果は、たとえば、算出された圧縮率が目標圧縮率より大きい場合はｒｅｓｕｌｔ＝１とし、算出された圧縮率が目標圧縮率以下の場合はｒｅｓｕｌｔ＝０とする。
【００９７】
ステップＳ４０４では、ステップＳ４０２で得られた比較結果を用い、上記有効ビット幅算出手順に従って有効ビット幅（Ｎ−ｍ）を算出し、圧縮率監視部４８に送るように、有効ビット幅算出部４８２を制御する。すなわち、以下の有効ビット幅算出手順に従って有効ビット幅を算出する。
（手順１）ｒｅｓｕｌｔ＝１  →  （Ｎ−ｍ）−１  （１減算）
（手順２）ｒｅｓｕｌｔ＝０  →  （Ｎ−ｍ）＋１  （１加算）
その後、図９（ａ）に示す圧縮・伸張処理メインプログラムに戻る。
【００９８】
つぎのステップＳ３１０では、全入力画像データについて、つまり本実施の形態では、全画素についてステップＳ３０２ないしステップＳ３０８の処理が終了したか否か判定し、当該判定が否定判定となった場合にはステップＳ３０２に戻り、入力画像データのつぎの画素値を入力する。以降の処理における有効ビット幅は、ステップＳ４０４で算出された最新の有効ビット幅（Ｎ−ｍ）を用いる。
【００９９】
図１０に、ステップＳ３０２ないしＳ３１０の処理による、圧縮率ｋの変化の一例を示す。図１０は、ステップＳ３０２で入力する画素値に対応する画素までの累積画素数ｇを横軸に、圧縮率ｋを縦軸にとったグラフである。図１０に示す例では、目標圧縮率ｋ＊をｋ＊＝０．６としている。
【０１００】
図１０において、Ｐ１ないしＰ６で示す点は、上記（手順１）または（手順２）の切替点を示している。すなわち、点Ｐ１、Ｐ３、Ｐ５は、上記（手順１）に従って有効ビット幅から１減算した点を示し、点Ｐ２、Ｐ４、Ｐ６は、上記（手順２）に従って有効ビット幅に１加算した点を示している。
【０１０１】
図１０に示すように、累積画素数ｇが１付近では圧縮率ｋは１より大きい。これは、図５（ｅ）の圧縮データのデータ形式からもわかるように、累積画素数ｇが一定の値にならないと、ランレングス圧縮の効果が現れてこないからである。したがって、点Ｐ１で、その時の有効ビット幅から１減ずる処理が実行される。有効ビット幅が減少する（無効ビット幅が増加する）と、ランレングス圧縮される画素値が増加するので圧縮率ｋは低下する。
【０１０２】
図１０に示すように、点Ｐ１から点Ｐ２への移行時に目標圧縮率ｋ＊を横切っている、すなわち、点Ｐ２に移行した時点で圧縮率ｋが目標圧縮率ｋ＊より小さくなっている。そこで、点Ｐ１においてその時点の有効ビット幅に１加算している。有効ビット幅が増加する（無効ビット幅が減少する）と、ランレングス圧縮される画素値が減少するので圧縮率ｋは増大する。
【０１０３】
さらに、点Ｐ３においてはその時点の圧縮率ｋが目標圧縮率ｋ＊を越えたので、その時点の有効ビット幅から１減じ、圧縮率ｋが低下するように処理する。以下、点Ｐ４ないしＰ６においても同様に有効ビット幅に対する加算、減算処理が実行されている。
【０１０４】
つづけて図９（ａ）を参照し、つぎのステップＳ３１２では圧縮データをメモリ１４に格納し、ステップＳ３１４では、圧縮データをメモリ１４から読み込み、ステップＳ３１６では、読み出した圧縮データを伸張する。以上の処理は、図６（ａ）に示すステップＳ１１２、Ｓ１１４、Ｓ１１６と同様なので、詳細な説明は省略する。
【０１０５】
本実施の形態に係る画像圧縮装置、および画像処理装置によれば、高い圧縮率の実現に加え、さらに、圧縮率が目標値付近に維持される。
【０１０６】
［第３の実施の形態］
図１１および図１２を参照して、本実施の形態に係る圧縮・伸張部について説明する。
図１１（ａ）は、本実施の形態に係る圧縮・伸張部１２ｃのブロック図、図１１（ｂ）は、圧縮・伸張部１２ａの一部を構成する圧縮率監視部４８ａのブロック図を示している。
本実施の形態に係る圧縮・伸張処理のメインルーチンは、図９（ａ）に示す圧縮・伸張処理のメインルーチンと同じであり、ステップＳ３０８の有効ビット幅算出処理サブルーチンのみ異なる。図１２は、本実施の形態に係る有効ビット幅算出処理サブルーチンプログラムの処理の手順を示すフローチャートである。本実施の形態は、上記実施の形態において、さらに有効ビット幅に下限を設けた形態である。
【０１０７】
本実施の形態では、圧縮方式の一例としてランレングス圧縮を採用するとともに、無効ビット領域を固定値で置換している。そのため、本実施の形態に係る圧縮方法は、非可逆的な圧縮方法、すなわち圧縮前のデータと、圧縮・伸張を経たデータとが完全には一致しない場合がある圧縮方法ともいえる。したがって置換処理した結果、入力画像データの画素値と異なる変換画像データの画素値が増加する（圧縮率が増加する）と、伸張後の出力画像と入力画像データに対応する元の画像との差異が大きくなる、つまり画像の再現における精度が劣化することも想定される。
【０１０８】
そのため、本実施の形態は、さらに伸張後の画像の再現精度の劣化を抑制するために、有効ビット幅が指定ビット（目標ビット幅）以上に維持されるように制御する。このことにより、圧縮後のデータ量が元の画像のデータ量を越えることも想定されるので、圧縮率に応じ、当該画素値の圧縮／非圧縮を切り替えている。置換処理する画素値の数と圧縮率との間には一定の相関があると考えられるので、圧縮率を目標値に制御することは、伸張後の画像の再現精度の劣化を抑制する方向に働くと考えられる。
【０１０９】
図１１（ａ）に示すように、圧縮・伸張部１２ｃは、画像データ生成部５０、圧縮部４２ａ、圧縮率監視部４８ａ、メモリ制御部４４、および伸張部４６を備えている。図１１（ａ）では、圧縮データを格納するメモリ１４も併せて示している。
【０１１０】
画像データ生成部５０は、図８（ａ）に示す画像データ生成部５０と同じものであり、入力画像データを入力しつつ、与えられた有効ビット幅を用い、該入力画像データに対して上述したデータ変換処理を施し、変換画像データを生成する。すなわち、有効ビット領域に属するビットの値は入力画像データの画素値そのものとし、無効ビット領域に属するビットの値は固定値とする。
【０１１１】
圧縮率監視部４８ａは、圧縮部４２ａで圧縮された圧縮データの圧縮率を監視し、予め設定された圧縮率（目標圧縮率）に収束するように有効ビット幅を算出する。有効ビット幅の算出処理の詳細については後述するが、本実施の形態では、有効ビット幅に下限を設けている。
【０１１２】
圧縮部４２ａは、変換画像データをランレングス圧縮する。ただし、本実施の形態では、圧縮処理するか否かを、上記で算出された有効ビット幅、および当該有効ビット幅の算出時点における圧縮率により制御する。
【０１１３】
メモリ制御部４４は、上述したように、圧縮データのメモリ１４への格納および圧縮データのメモリ１４からの読み込みを制御する。
【０１１４】
伸張部４６は、上述したように、圧縮データに対し伸張処理を施し、出力画像データとして出力する。
【０１１５】
つぎに、図１１（ｂ）を参照して、本実施の形態に係る圧縮率監視部４８ａについてより詳細に説明する。図１１（ｂ）に示すように、圧縮率監視部４８ａは、圧縮率比較部４８０、および有効ビット幅算出部４８２ａを含んで構成されている。
【０１１６】
圧縮率比較部４８０は、図８（ｂ）に示す圧縮率比較部４８０と同じものであり、圧縮部４２ａで圧縮された圧縮データの圧縮率と目標圧縮率とを比較する部位である。比較した結果は、算出された圧縮率が目標圧縮率より大きい、または、算出された圧縮率が目標圧縮率以下、のいずれかで次段の有効ビット幅算出部４８２ａに出力される。
【０１１７】
有効ビット幅算出部４８２ａは、圧縮データの圧縮率が目標圧縮率ｋ＊に収束するように有効ビット幅を算出し、出力する部位である。本実施の形態では、圧縮率比較部４８０の比較結果を受け取るつど、以下の有効ビット幅算出手順に従って、動的に有効ビット幅を逐次算出していく。
（手順１）算出された圧縮率が目標圧縮率より大きい場合は、現時点の有効ビット幅から１ビット減らす。
（手順２）算出された圧縮率が目標圧縮率以下の場合は、現時点の有効ビット幅を１ビット増やすか、またはそのままとする。
【０１１８】
本実施の形態では、さらに、算出された有効ビット幅と目標有効ビット幅とを比較し、有効ビット幅が目標有効ビット幅未満となった場合には、有効ビット幅＝目標有効ビット幅とし、有効ビット幅を下限値に抑える。この場合、つづけて以下の処理を行う。
（手順３）圧縮率ｋが目標圧縮率ｋ＊以下になる場合は圧縮を継続する。
（手順４）圧縮率ｋが目標圧縮率ｋ＊を越える場合には、当該画素値を入力画像データの画素値のままとし圧縮を中止する。
また、有効ビット幅算出部４８２ａは、圧縮を行うか行わないかの制御を実行するための信号である圧縮信号を、圧縮部４２ａに対して出力する。
【０１１９】
図９（ａ）および図１２を参照して、本実施の形態に係る圧縮・伸張処理について説明する。図９（ａ）についてはすでに説明しているので、以下簡略に説明する。
【０１２０】
図９（ａ）を参照して、ステップＳ３００では、有効ビット幅の初期値を設定する。
つぎのステップＳ３０２では、入力画像データの画素値を画素単位で入力する。
【０１２１】
つぎのステップＳ３０４では、有効ビット幅算出部４８２ａが算出した有効ビット幅を用いて入力画像データに対しデータ変換処理を行うように画像データ生成部５０を制御する。
【０１２２】
ステップＳ３０６では、後述する圧縮フラグに応じて、該圧縮フラグで圧縮が指示されている場合には、変換画像データに対して圧縮処理を実行し、圧縮フラグで圧縮が指示されていない場合には、圧縮を実行しないように圧縮部４２ａを制御する。より具体的には、本実施の形態では、圧縮フラグＦがＦ＝１の場合には圧縮を実行し、Ｆ＝０の場合には圧縮を実行しない。
【０１２３】
つぎにステップＳ３０８では、有効ビット幅算出処理を実行するように有効ビット幅算出部４８２ａを制御する。
【０１２４】
図１２を参照して、本実施の形態に係る有効ビット幅算出処理について説明する。
【０１２５】
まず、ステップＳ５００では、圧縮フラグＦに初期値０を代入する。圧縮フラグＦの意味は、Ｆ＝０が圧縮しない、Ｆ＝１が圧縮するである。
【０１２６】
つぎのステップＳ５０２では、ある画素値に対して圧縮が施された時点の、（式２）で定義される圧縮率ｋを算出するように、圧縮率比較部４８０を制御する。
【０１２７】
つぎのステップＳ５０４では、算出された圧縮率ｋと目標圧縮率ｋ＊とを比較するように、圧縮率比較部４８０を制御する。比較結果は、たとえば、算出された圧縮率が目標圧縮率より大きい場合はｒｅｓｕｌｔ＝１とし、算出された圧縮率が目標圧縮率以下の場合はｒｅｓｕｌｔ＝０とする。
【０１２８】
ステップＳ５０６では、ステップＳ５０４で得られた比較結果を用い、上記有効ビット幅算出手順に従って有効ビット幅（Ｎ−ｍ）を算出し、画像データ生成部５０に送るように、有効ビット幅算出部４８２ａを制御する。すなわち、以下の有効ビット幅算出手順に従って有効ビット幅を算出する。
（手順１）ｒｅｓｕｌｔ＝１  →  （Ｎ−ｍ）−１  （１減算）
（手順２）ｒｅｓｕｌｔ＝０  →  （Ｎ−ｍ）＋１  （１加算）
【０１２９】
つぎのステップＳ５０８では、ステップＳ５０６で算出された有効ビット幅（Ｎ−ｍ）が目標有効ビット幅（Ｎ−ｍ）＊未満であるか否か判定する。当該判定が否定判定となった場合にはステップＳ５１４に移行し、圧縮フラグＦを１に設定して、圧縮・伸張メインプログラムに戻る。一方、肯定判定となった場合にはステップＳ５１０に移行する。このフラグＦは、有効ビット幅算出部４８２ａが出力する圧縮信号の一例である。
【０１３０】
ステップ５１０では、有効ビット幅（Ｎ−ｍ）を目標有効ビット幅（Ｎ−ｍ）＊とする。
【０１３１】
つぎのステップＳ５１２では、圧縮率ｋが目標圧縮率ｋ＊以下になるか否か判定する。
当該判定が肯定判定となった場合には、ステップＳ５１４に移行して圧縮フラグＦに１を設定する一方、否定判定となった場合には、圧縮・伸張メインプログラムに戻る。
【０１３２】
再び図９（ａ）を参照して、上述したように、ステップＳ３１０では、全画素について圧縮処理が完了したか否か判定し、終了していない場合にはステップＳ３０２に戻って入力画像データの入力を継続する一方、終了している場合にはステップＳ３１２に移行して圧縮データをメモリ１４に格納する。つぎのステップＳ３１４では、圧縮データを読み込み。つぎのステップＳ３１６で圧縮データを伸張した後、本圧縮・伸張処理プログラムを終了する。
【０１３３】
以上詳述したように、本実施の形態に係る画像圧縮装置、および画像処理装置によれば、高い圧縮率の実現に加え、さらに、伸張画像の精度が目標精度に維持される。
【０１３４】
なお、上記各実施の形態では、テスト画像の画素値として白の画素値を用いる形態を例示して説明したがこれに限られない。たとえば、他の色の画素値を用いる形態としてもよいし、また、ひとつの画素値に限定されず、たとえば連続してグラデーション状に変化する画素値を用いる形態としてもよい。
【符号の説明】
【０１３５】
１０      画像処理装置
１２，１２ａ、１２ｂ、１２ｃ  圧縮・伸張部
１４      メモリ
１６Ａ    ＣＰＵ
１６Ｂ    ＲＯＭ
１６Ｃ    ＲＡＭ
１８      画像入力部
２０      ＵＩ
２２      画像出力部
２４      Ｉ／Ｆ
２６      ＰＣ
４０      画像検査部
４２、４２ａ  圧縮部
４４      メモリ制御部
４６      伸張部
４８、４８ａ  圧縮率監視部
５０      画像データ生成部
４００    画像データ比較部
４０２    有効ビット幅算出部
４０４    画像データ生成部
４８０    圧縮率比較部
４８２、４８２ａ  有効ビット幅算出部
ｇ        累積画素数
ｋ        圧縮率
ｋ＊      目標圧縮率
ｍ        無効ビット幅
（Ｎ−ｍ）有効ビット幅
（Ｎ−ｍ）＊  目標有効ビット幅
ＢＵＳ    システムバス
Ｐ        記録用紙
ＴＧ      テスト画像
【図１】
0006589316.tif 000002
【図２】
0006589316.tif 000003
【図３】
0006589316.tif 000004
【図４】
0006589316.tif 000005
【図５】
0006589316.tif 000006
【図６】
0006589316.tif 000007
【図７】
0006589316.tif 000008
【図８】
0006589316.tif 000009
【図９】
0006589316.tif 000010
【図１０】
0006589316.tif 000011
【図１１】
0006589316.tif 000012
【図１２】
0006589316.tif 000013