(57)【特許請求の範囲】
【請求項１】
データを複数のブロック単位に分割する分割手段と、前記分割手段により分割された１ブロック内の任意の１データを基準データとする基準データ作成手段と、当該ブロック内のデータ間の差分データを算出する差分データ生成手段と、前記差分データから有効桁部分を抽出する有効桁抽出手段と、前記基準データと前記有効桁部分を合成する合成手段とを備え、前記合成手段は、前記基準データと前記有効桁部分とを合成して得られる圧縮後の圧縮データにおいてデータ単位のそれぞれに前記基準データの一部を含ませることを特徴とするデータ圧縮装置。
【請求項２】
前記差分データ生成手段が生成する差分データは、符号部分と絶対値部分とを有することを特徴とする請求項１記載のデータ圧縮装置。
【請求項３】
前記有効桁抽出手段によって抽出された有効桁部分の桁数から、圧縮後のデータ長を算出するブロック長算出手段を有することを特徴とする請求項２記載のデータ圧縮装置。
【請求項４】
前記合成手段は、前記圧縮後のデータ長を表すデータと前記基準データの上位ビット部を合成する第一の合成手段と、前記差分データの符号部分のデータ列と前記基準データの下位ビット部における任意の１ビットのデータを合成する第二の合成手段と、前記有効桁部分における任意のビット位置のデータと前記基準データの下位ビット部における対応するビットのデータを合成する第三の合成手段とを備え、前記第一、前記第二、及び前記第三の合成手段によって合成された合成データの組合せを第一の圧縮データとすることを特徴とする請求項３記載のデータ圧縮装置。
【請求項５】
データを複数のブロック単位に分割する分割手段と、前記分割手段により分割された１ブロック内の任意の１データを基準データとする基準データ作成手段と、当該ブロック内のデータ間の差分データを算出する差分データ生成手段と、前記差分データから有効桁部分を抽出する有効桁抽出手段と、前記基準データと前記有効桁部分を合成する合成手段とを備え、
前記差分データ生成手段が生成する差分データは、符号部分と絶対値部分とを有し、
さらに、前記有効桁抽出手段によって抽出された有効桁部分の桁数から、圧縮後のデータ長を算出するブロック長算出手段を有し、
前記合成手段は、前記圧縮後のデータ長を表すデータと前記基準データの上位ビット部を合成する第一の合成手段と、前記差分データの符号部分のデータ列と前記基準データの下位ビット部における任意の１ビットのデータを合成する第二の合成手段と、前記有効桁部分における任意のビット位置のデータと前記基準データの下位ビット部における対応するビットのデータを合成する第三の合成手段とを備え、前記第一、前記第二、及び前記第三の合成手段によって合成された合成データの組合せを第一の圧縮データとすることを特徴とするデータ圧縮装置。
【請求項６】
前記基準データと同一のデータが連続する場合に、該同一データが連続する連続数を表すデータと、前記基準データの下位ビット部のデータを合成する第四の合成手段を備え、前記第一及び前記第四の合成手段により合成された合成データの組合せを第二の圧縮データとすることを特徴とする請求項４又は５記載のデータ圧縮装置。
【請求項７】
前記第四の合成手段により合成されたデータを配置する位置に特定のデータが配置されているとき、前記第一の合成手段で合成されたデータを配置する位置に配置されたデータを制御情報とすることを特徴とする請求項６記載のデータ圧縮装置。
【請求項８】
前記第一の圧縮データのデータ長が圧縮前のデータ長より大きくなる場合は、前記第一の圧縮データの中のデータ長を表すデータを変更し、かつ前記第一の圧縮データから前記第三の合成手段により合成された合成データのうち前記有効桁部分の最下位ビットに対応するデータを削除することを特徴とする請求項５記載のデータ圧縮装置。
【請求項９】
注目ブロックにおいて前記第一の圧縮データのデータ長が圧縮前のデータ長より大きくなる場合は、数ブロック前または１ブロック前から注目ブロックまでの前記第一の圧縮データの総計が圧縮前のデータの総計より同じ又は大きいときは、前記第一の圧縮データの中のデータ長を表すデータを変更し、かつ前記第一の圧縮データから前記第三の合成手段により合成された合成データのうち前記有効桁部分の最下位ビットに対応するデータを削除することを特徴とする請求項５記載のデータ圧縮装置。
【請求項１０】
請求項５乃至８のいずれか１項に記載のデータ圧縮装置を備える画像読取装置であって、一次元ラインセンサを備え、
前記データ圧縮装置により画像データの圧縮を行う際の１ブロックのデータ単位は、一次元ラインセンサの同一位置の受光素子から出力された出力信号に対応するデータだけで構成されることを特徴とする画像読取装置。
【請求項１１】
データを複数のブロック単位に分割する分割手段と、前記分割手段により分割された１ブロック内の任意の１データを基準データとする基準データ作成手段と、当該ブロック内のデータ間の差分データを算出する差分データ生成手段と、前記差分データから有効桁部分を抽出する有効桁抽出手段と、前記基準データと前記有効桁部分を合成する合成手段とを備えることを特徴とするデータ圧縮装置を備える画像読取装置であって、
一次元ラインセンサを備え、
前記データ圧縮装置により画像データの圧縮を行う際の１ブロックのデータ単位は、一次元ラインセンサの同一位置の受光素子から出力された出力信号に対応するデータだけで構成されることを特徴とする画像読取装置。
【請求項１２】
請求項１乃至４のいずれか１項に記載のデータ圧縮装置を備える画像読取装置であって、
一次元ラインセンサを備え、
前記データ圧縮装置により画像データの圧縮を行う際の１ブロックのデータ単位は、一次元ラインセンサの同一位置の受光素子から出力された出力信号に対応するデータだけで構成されることを特徴とする画像読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ圧縮装置および画像読取装置に関し、特に、グラデーション系の画像を差分方式を応用して可変長符号化する画像圧縮方法に関する。
【背景技術】
【０００２】
従来、通信回線等を介して画像データを高速かつ効率良く伝送するために、画像データに対する様々な圧縮方法が開発されてきた。例えば、ランレングス符号化を用いたランレングス圧縮方式は、同一のデータ要素が連続して出現する場合が多いとき、そのデータ要素と出現回数の組み合わせに注目して符号化する方式である。このランレングス圧縮方式は、文字系の画像を効率良く圧縮することができる。
【０００３】
また、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｅｐｅｒｔｓ  Ｇｒｏｕｐ）方式は、カラー静止画を伝送する際に用いられる方式であり、最終的なエントロピー符号化にはハフマン符号化方式等を用いている。
【０００４】
上記以外のデータ圧縮方法として、例えば、特許文献１に記載された技術が提案されている。特許文献１では、一つの画像を複数のブロックに分割して、各ブロック単位に画像情報の確率分布の集中度を表す統計量等を求め、統計量と設定値との大小比較により可変長符号化のコードブックまたは固定長符号を選択する画像圧縮方式の技術が開示されている。
【０００５】
また、上記特許文献１には、二次差分ＤＰＣＭ（Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｐｕｌｓｅ  Ｃｏｄｅ  Ｍｏｄｕｌａｔｉｏｎ）または二次差分可変標本密度符号化における二次差分を求めて、この二次差分を確率分布の集中度を表す統計量として用い、この統計量と設定値との大小比較により可変長符号化のコードブックまたは固定長符号を選択する画像圧縮方式の技術が開示されている。
【０００６】
一方、それぞれの原画像データにおける差分値データの出現頻度を解析し、その差分値データに適した可変長符号化テーブルを生成し、それを用いて符号化を行う技術が開示されている（特許文献２参照）。
【特許文献１】特開昭６３−２８４９７４号公報
【特許文献２】特開平９−１１６７６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記ランレングス圧縮方式では、多値の自然画像に対して効果的なエントロピー符号化を行えず、圧縮率が低下している。また、ハフマン符号化を用いた圧縮方式では、符号化テーブルが煩雑であると同時に、符号化する際のパターンマッチングを行うためにバレルシフタが必要になる等、複数の回路を必要とし、メモリやＡＳＩＣ等の増大を招いている。
【０００８】
また、上記特許文献１は、実現するための回路が多大であるために動作速度の低下や消費電流の増加等も問題である。これにより、小規模な回路やシステムにおいては、画像圧縮を導入できずにいる。また、複数の圧縮方式を併用して圧縮を行う際には、圧縮方式の切換え部分で煩雑な切換え処理操作が必要となり回路を複雑にするばかりか、圧縮効率の低下にも繋がる。
【０００９】
上記特許文献２は、可変長符号化を行う際に、ブロック内のデータの出現頻度から作成する可変長符号化テーブルを作成する等の作業が必要になり、これも回路規模を増大と処理の複雑化を引き起こすおそれがある。
【００１０】
本発明は、上記問題に鑑みて成されたものであり、圧縮効率を低下させることなく、データ圧縮に必要な回路を簡略化することができるデータ圧縮装置および画像読取装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、請求項１記載のデータ圧縮装置は、データを複数のブロック単位に分割する分割手段と、前記分割手段により分割された１ブロック内の任意の１データを基準データとする基準データ作成手段と、当該ブロック内のデータ間の差分データを算出する差分データ生成手段と、前記差分データから有効桁部分を抽出する有効桁抽出手段と、前記基準データと前記有効桁部分を合成する合成手段とを備え、前記合成手段は、前記基準データと前記有効桁部分とを合成して得られる圧縮後の圧縮データにおいてデータ単位のそれぞれに前記基準データの一部を含ませることを特徴とする。
【００１２】
上記目的を達成するために、請求項１０記載の画像読取装置は、請求項５乃至８のいずれか１項に記載のデータ圧縮装置を備える画像読取装置であって、一次元ラインセンサを備え、前記データ圧縮装置により画像データの圧縮を行う際の１ブロックのデータ単位は、一次元ラインセンサの同一位置の受光素子から出力された出力信号に対応するデータだけで構成されることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、大幅に回路や処理ソフトウェアを簡略化できる。また、データ量と画像品質のバランスを取りながらのデータ転送作業を行える。また、特別なコマンドを用いること無く、簡易的にランレングス法を導入でき、データの変化が少ない領域での圧縮率を向上できる。
【００１４】
また、圧縮データの中に制御情報を適時配置することが可能になり、装置の即時性を向上できる。また、データバスに合わせたデータ変換が不要となる。また、ロスレス圧縮が適するか、非可逆圧縮が適するかの判定をメモリ等を必要とせず、簡易な回路や簡易なソフトウェアで適切に行える。また、画像読取装置側の補正回路が簡略化されていても、圧縮率を向上することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
【００１６】
［第１の実施形態］
図１は、本発明の第１の実施形態に係るデータ圧縮装置におけるデータ圧縮方法の概要を示す図である。
【００１７】
本実施形態におけるデータ圧縮装置は、例えば、画像読取装置等の情報処理装置に搭載された、該情報処理装置の制御基板上のハードウェア回路で構成されるが、それに限定するものではない。
【００１８】
図１において、データ長Ｋの原データをＮ個に分割した１ブロックを作成し、１ブロック内の任意の１データを基準データとする（基準データ作成手段）。本実施形態では、データブロックを構成するデータ数のＮを８個、各データのビットサイズを８ビットとする。
【００１９】
まず、圧縮前データとして、原データを８個まとめて１ブロックのデータブロックＡ０とする。データブロックＡ０を構成するデータは、Ｄ０（＝７６ｈ），Ｄ１（＝７ｃｈ），Ｄ２（＝７ｅｈ），Ｄ３（＝８０ｈ），Ｄ４（＝７ｆｈ），Ｄ５（＝８４ｈ），Ｄ６（＝８９ｈ），Ｄ７（＝９０ｈ）とする。そして、本実施形態では、データブロックＡ０の最初のデータＤ０を基準データとする。
【００２０】
次に、差分データＹｎを算出する（差分データ生成手段）。この差分データＹｎは、データブロックＡ０を構成するデータＤ１〜Ｄ７のうちの隣接するデータ間の差分であり、Ｙ０＝Ｄ１−Ｄ０、Ｙ１＝Ｄ２−Ｄ１、・・・、Ｙ６＝Ｄ７−Ｄ６となる。差分データを一般的な２値で表すと、図示のように、最上位ビットが符号部分となり、以下のビットが差分の絶対値（差分データの０〜６ビット目）となる。なお、本実施形態では、データとそれに隣接する直前のデータから差分データを求めているが、予め設定されたルールに基づくようにすれば、ブロック内のどのデータとの差分データを用いてもよい。
【００２１】
図示の１００は、差分データ部として、差分データＹ０〜Ｙ６を２値化した部分である。１０１に示す部分は、２値化された差分データＹ０〜Ｙ６においてビット値が「０」になる冗長データ部分であり、図示した差分データでは、３ビット目から６ビット目までが冗長データ部となっている。１０２に示す部分は、２値化された差分データＹ０〜Ｙ６の有効絶対値部分を示している。１０３に示す部分は、差分データＹ０〜Ｙ６の符号部分である。
【００２２】
本実施形態において、差分データＹ０〜Ｙ６の絶対値は、０〜２ビット目で表されている。これにより、データブロックＡ０における差分データＹ０〜Ｙ６の有効絶対値のデータ長は最大３ビットであることが判る。
【００２３】
以上のデータを用いて、第１の生成工程として、圧縮後の第１データを作成する（第一の合成手段）。
【００２４】
まず差分データから有効桁部分が抽出される（有効桁抽出手段）。図示の１０４に示す部分は、圧縮後のデータのデータ長を指示するブロック長指示部である。このブロック長指示部１０４には、差分データ部の有効絶対値部分１０２の桁数が例えば３の場合、圧縮後のデータ長が５バイトとなることを表すデータが図２に示す変換表を用いて配置される。すなわち、Ｎ−１個の差分データにおける、符号部を除いて絶対値化した差分データの中の最大データの有効桁部分のビットサイズをＬとした場合、例示したデータブロックＡ０における差分データＹ０〜Ｙ６の絶対値部分の有効桁部分が３ビットであるからＬ＝３となる。圧縮後データＢ０のデータ長Ｍは、Ｍ＝Ｌ＋２＝３＋２＝５バイトになる。
【００２５】
図２に示す変換表は、圧縮後データＢ０の第１データＣ０の下位ビットから始めて順次ビットデータを確認し、最初の「１」が配置されたビット位置が例えば３であればデータ長が５バイトであることを示している。すなわち、圧縮後のデータのデータ長Ｍ＝５バイトであれば、図２に示す変換表のデータ長５バイトを示す列データ「ｄ，ｄ，ｄ，ｄ，１，０，０，０」が用いられる。これにより、ブロック長指示部１０４は、「１０００ｂ」となる。
【００２６】
図２の変換表におけるｄで示す部分には、基準データＤ０の対応する上位ビット部のデータが分割配置される。本実施形態では、１０５に示す基準データの上位ビット部は、４ビットデータ「０１１１」に相当する。これにより、圧縮後データＢ０の第１データＣ０は、ブロック長指示部１０４と、基準データＤ０の上位ビット部１０５により構成され、「０１１１１０００ｂ」＝７８ｈとなる。
【００２７】
なお、本実施形態では、図２の変換表を用いて、第１データの下位ビットから上位ビットに対して順次ビットデータを確認し、最初の「１」が配置されたビット位置により圧縮後のデータ長を算出する方法を用いている（ブロック長算出）。しかし、これに限定されず、変換表に関して「０」，「１」のデータを入れ替えたり、対応ビットの表を変更してもよい。
【００２８】
次に、第２の生成工程において、圧縮後の第２データを作成する（第二の合成手段）。
【００２９】
圧縮後の第２データＣ１は、符号部分として、２値化された差分データＹ０〜Ｙ６の符号部分１０３と基準データＤ０の下位ビット部における任意の１ビットのデータ（ここで図示している例では３ビット目のデータ）を合成して作成される。また例えば、第２データＣ１の０ビット目に基準データＤ０の３ビット目が配置され、１ビット目には差分データＹ０の符号データビットが配置され、以降ｘビット目に差分データＹｘ−１の符号データビットが順次配置される。このようにしてデータを再配置すると、１０６に示す符号データ部になる。これにより、第２データＣ１は、「０００１００００ｂ」＝１０ｈとなる。
【００３０】
次に、第２の生成工程として、圧縮後の第３データＣ２（差分データの２ビット目）及び第３データＣ２以降の圧縮後の第４データＣ３（差分データの１ビット目）、第５データＣ４（差分データの０ビット目））のデータ列を作成する。
【００３１】
１０７に示す差分データ部には、差分データの絶対値部分の有効桁部分１０２が再配置される。圧縮後の第３データＣ２は、２値化された差分データＹ０〜Ｙ６の絶対値部分の有効桁部分１０２における任意の１ビットのデータ（図示の例では２ビット目のデータ）と基準データにおける同位置の１ビットのデータ（図示の例では２ビット目のデータ）を合成して作成される。図示の例では、第３データＣ２の０ビット目に基準データＤ０の２ビット目が配置され、１ビット目には差分データＹ０の２ビット目が配置され、以降ｘビット目には差分データＹｘ−１の２ビット目が順次配置される。これにより、第３データＣ２は、「１１１０００１１ｂ」＝ｅ３ｈとなる。
【００３２】
第３データ以降の第４、第５データは、それぞれ基準データの１ビット目、０ビット目のデータと差分データの１ビット目、０ビット目のデータを用いて合成される（第三の合成手段）。これにより、第４データは「１０００１１１１ｂ」＝８ｆｈとなり、第５データは「１１１１００００ｂ」＝ｆ０ｈとなる。
【００３３】
図１では、データ配置を判りやすくするために、圧縮後のデータブロックにおける符号データ部１０６、差分データ部１０７、基準データの下位ビット部１０８は、表示文字が転倒表示されている。
【００３４】
以上のように、基準データを分割配置し、ブロック長指示部１０４、符号データ部１０６、基準データの下位ビット部１０８を組合せて圧縮後の合成データを合成する。これにより、差分データ中に含まれる冗長データ部１０１を容易に除外することができ、８バイトデータを５バイトデータにデータ圧縮することができる（第一の圧縮データ）。
【００３５】
また、ハフマン符号化方式等と異なり、符号化テーブルを参照する必要も無く、簡単なハードウェア回路の構成で効果的なデータ圧縮が実現できることが判る。また、簡単なハードウェア構成で実現可能であることから、データの転送速度と同期することが可能であるような高速の圧縮速度で圧縮が可能になる。
【００３６】
本実施形態では、差分データを作成する際に、データが１→２５５と変化する場合には、差分値を＋２５４と判断せず、−２とする。この差分処理に関しては、特定データ長における２つのデータ間差分距離を表記する一般的手段である。これにより、８ビットデータ長では、２つのデータ間における差分データは、１ビットの符号と７ビットの差分データで表記することができる。本実施形態では、８ビットデータ長で、図１に示す差分データ部１０７の有効桁部分の最大サイズは、７ビット分になることが判る。
【００３７】
本実施形態では、シリアル出力されてくる画像データをそのまま圧縮処理している。しかしながら、スキャナ等のラインセンサを用いた画像読取装置では、出力されてきたデータを１ライン分バッファリングする。そして、このバッファリングしたデータと次ラインで出力されてきたデータとの同一画素における差分を取り、この差分データを用いて上述したデータ圧縮を行ってもよい。この差分法による前処理は圧縮前処理として一般的に知られた方法である。
【００３８】
［第２の実施形態］
次に、本発明の第２の実施形態について説明する。
【００３９】
本第２の実施形態では、上記第１の実施形態におけるデータ圧縮方法を実行する際に、同一のデータが連続する場合には、連続するデータを基準データとして、当該基準データとその連続数を表すデータを用いたランレングス的圧縮方式に変更してデータ圧縮を行う。
【００４０】
図３は、本発明の第２の実施形態に係るデータ圧縮装置におけるデータ圧縮方法の概要を示す図である。
【００４１】
図３において、圧縮前データＫ０は、連続する２４個のデータＤ０，Ｄ１，・・・，Ｄ２３で構成され、いずれの値も同じ７６ｈとする。１１０は、圧縮前の基準データＤ０（＝７６ｈ）を２進数表示したものである。１１１は、圧縮前の基準データＤ０の上位データ部であり、１１２は、圧縮前データＤ０の最下位ビットデータである。
【００４２】
本実施形態におけるランレングス的圧縮方式では、圧縮後のデータブロックのデータ長が２バイトになるので、データを圧縮する際に、図２に示した変換表を用いて、圧縮後の第１データのブロック長指示部１１６として、０ビット目に「１」が配置される。そして、１１３に示す圧縮後データの第１データの１〜７ビット目に、基準データＤ０の上位ビット部１１１である１〜７ビット目が配置される。
【００４３】
次に、圧縮後の第２データの０ビット目である１１５には、基準データＤ０の最下位ビットデータ１１２が配置される。続いて、圧縮後の第２データの１〜７ビット目である１１４には、圧縮前データの連続数を表すデータが配置される（第四の合成手段）。本実施形態では、連続する基準データが２４個であることから、「００１１０００ｂ」とする（第二の圧縮データ）。これにより、特別なコマンドを発行すること無く、上記第１の実施形態における圧縮方法を拡張する形でランレングス的圧縮方式に移行することができる。
【００４４】
第１の実施形態の圧縮方法を実施している途中でランレングス的圧縮方式に変更する判断基準として、データの連続数が１ブロック長以上となったことを用いるのが好適である。例えば、自然画像において、同一データが２〜３個程度連続するときは、画像の濃度がゆっくりと変化するグラデーション状態であり、数個のデータが同一値で連続した位置の前後のデータも大きな差分値を取らない緩慢な変化となる。このように緩慢な変化をするデータに対しては、２〜３個程度の同一データが連続した状態でランレングス的圧縮方式を用いるより、第１の実施形態における圧縮方法でデータを圧縮する方が、圧縮率が向上する。
【００４５】
図４は、第２の実施形態におけるデータ圧縮方法と第１の実施形態におけるデータ圧縮方法とを選択的に実行するための処理の一例を示すフローチャートである。
【００４６】
図４において、まず、上記第１の実施形態における圧縮方法により１ブロック分のデータが圧縮される（ステップＳ１０１）。次に、基準データと同一のデータが連続するか否かが判断される（ステップＳ１０２）。基準データに続いて同一のデータが連続する場合は、基準データ以降のデータについて、連続した同一データの数が１ブロック長以上かが判断される（ステップＳ１０３）。１ブロック長以上の場合には、基準データ以降の同一の連続データに対して、本第２の実施形態における圧縮方法（第２の圧縮方法）によりデータ圧縮が行われる（ステップＳ１０４）。
【００４７】
一方、ステップＳ１０３において、連続したデータの数が１ブロック長より小さい場合には、上記第１の実施形態における圧縮方法（第１の圧縮方法）によりデータ圧縮が行われる（ステップＳ１０５）。このように、特別なコマンドを用いること無く、簡易的にランレングス圧縮方式を利用して、データの変化が少ない領域での圧縮率を向上させることができる。
【００４８】
回路構成が複雑になってもよく、より圧縮率を向上させることを目標とする場合は、次の２つの圧縮を同時に実施する回路とし、両方の圧縮率を比較してより圧縮率の高い圧縮データを選択する構成にしてもよい。すなわち、一例として、２ブロックに渡り、３個以上の同一データが連続しているという条件や、１ブロック長以上のデータが連続しているという条件等で、第１の圧縮方法の圧縮結果と第２の圧縮方法の圧縮結果との比較を行い、そして、その圧縮率が高い方の圧縮結果を出力する回路構成としてもよい。
【００４９】
非自然画等においては同一データが長く連続する場合が多く、１２８バイトを越えることは多々ある。このような非自然画像を扱う場合には、圧縮前のデータ連続数１１４の表記において、データの連続数を１ブロック長単位の倍数で扱うようにしてもよい。例えば、図５に示すように、データ連続数が２４個で、ブロック長が８である場合は、２４／８＝３となり、データ連続数を示す１１７は、３ブロックであることを示す「０００００１１ｂ」となり、圧縮後の第２データは「０００００１１０ｂ」＝０６ｈとなる。この形式を用いると、一般的に同一データが１０１６個連続する場合でも、圧縮後は２バイトのデータで記述することができ、効率的である。これにより、一般的な圧縮を行う場合において、複数の圧縮手段を切り換える際に必要であった圧縮切り換えのためのオーバーヘッド部分を持つこと無く、圧縮手段を軽快に切り換えることが可能になる。
【００５０】
［第３の実施形態］
次に、本発明の第３の実施形態について説明する。
【００５１】
図６は、本発明の第３の実施形態に係るデータ圧縮装置におけるデータ圧縮方法の圧縮後データの内容を示す図である。
【００５２】
上記第２の実施形態において、圧縮後の第２データの１〜７ビット目には圧縮前データの連続数を表すデータが配置され、連続数≠０であることから、１〜７ビットの値は「０」になることはない。
【００５３】
図６において、１２１は、圧縮後の第１データのブロック長指示部として、０ビット目に「１」が配置され、ブロックのデータ長が２バイトで構成されることを示す。１２４は、圧縮後の第２データの１〜７ビット目であり、上記第２の実施形態において存在し得ない「０」が配置されている。第３の実施形態では、１２２に示す第１データの１〜７ビット目と１２３に示す第２データの０ビット目の内容を合わせて、制御用コマンドとして利用する。これにより、圧縮データ中に制御用コマンドを適時配置できるので、圧縮後のデータ長を確認せずに、逐次データの送信が可能になる。
【００５４】
従来の圧縮方式では、圧縮後のデータ長が判明しないと、圧縮データブロック部とそれ以降の制御コマンドおよび次の画像との分離ができない。そのため、圧縮後のデータをバッファメモリに蓄え、圧縮後のデータ長が判明した後に、転送するデータ長と、圧縮データを送っている。その結果、多くのバッファメモリが必要になり、回路規模の増加やコストアップの要因になる。そこで、本実施形態では、圧縮データ中に非同期のコマンドを挿入することで装置の即時性を向上させることを可能とした。また、一次元ラインセンサを備える画像読取装置においては、圧縮後のデータに読取りラインの切替えを示す制御コマンドやページの切替えを示すコマンドを配置できるので、よりよい効果が期待できる。
【００５５】
次に、圧縮する前のデータ長Ｌが圧縮後のデータ長Ｋに対してＬ＜Ｋである場合の連続データの処理および制御用コマンドの埋め込みについて説明する。
【００５６】
図７は、第３の実施形態におけるデータ圧縮方法の概要を示す図である。
【００５７】
図７において、圧縮前のデータＫ０は、連続する２４個のデータＤ０，Ｄ１，・・・，Ｄ２３で構成され、いずれの値も同じ２７６ｈとする。そして、圧縮前のデータＫ０のビットサイズが１０ビット、圧縮後のデータＣ０のビットサイズが８ビットとする。１３０は、圧縮前データＤ０（＝２７６ｈ）を２進数表示したものである。１３１は、圧縮前データＤ０の上位ビットデータである上位データ部であり、１３２は、圧縮前データの最下位ビットデータである。
【００５８】
本実施形態における圧縮方式では、ブロックのデータ長が４バイトになるので、データを圧縮する際に、図８に示す変換表を用いて、圧縮後の第１データのブロック長指示部１３６として、０ビット目に「１」が配置される。そして、１３３に示す圧縮後の第１データの１〜７ビット目に、１３１に示す圧縮前の第１データの１〜７ビット目が配置される。これにより、圧縮後の第１データＤ０は、「１００１１１０１ｂ」＝９ｄｈとなる。
【００５９】
次に、圧縮後の第２データの０ビット目である１３５には、１３２に示す圧縮前の基準データＤ０の２ビット目が配置される。そして、圧縮後の第２データの１〜７ビット目である１３４には、圧縮前データの連続数を表すデータが配置される。本実施形態では、連続するデータが２４個続くことから、「０，０，１，１，０，０，０」となり、圧縮後の第２データＤ１は、「００１１０００１ｂ」＝３１ｈとなる。
【００６０】
次に、圧縮後の第３データの０ビット目には、１３２に示す圧縮前の基準データＤ０の１ビット目が配置され、１〜７ビット目には「０」が配置される。これにより、第３データＤ２は、「０００００００１ｂ」＝０１ｈとなる。同様に、圧縮後の第４データの０ビット目には、１３２で示した圧縮前の基準データＤ０の０ビット目が配置され、１〜７ビット目には０が配置される。これにより、第４データＤ３は、「００００００００ｂ」＝００ｈとなる。
【００６１】
第３及び第４データにおける１３７の領域は、上記第１の実施形態においては、基準データに対する差分データが記述された領域であるが、本例で示したように「０」がダミーデータとして配置されることで、この圧縮後のデータが同一データであることを明示する。データ領域１３４は、第１の実施形態においては符号データ部にあたるが、差分が０であることから符号データとしては意味を成さない。これから、１３４に示す第２データの１〜７ビット目を、基準データの連続数領域として処理する。これにより、特別なコマンドを用いること無く、上記第１の実施形態における圧縮方法を拡張する形でランレングス的圧縮方式を容易に挿入することができる。
【００６２】
また、上記第３の実施形態と同じように、１３４に示す第２データの１〜７ビットを「０」することで、１３３に示す第１データの１〜７ビット目と１３５に示す第２〜４データの０ビット目により、圧縮データ中に非同期のコマンドを挿入する。これにより、装置が画像データと同時にコマンド等を送出でき、即時性を向上することが可能になる。なお、制御用のコマンドではなく、制御に用いるデータを送るようにしてもよい。本実施の形態では、制御用コマンドおよび制御用データの少なくとも一方を制御情報として含む圧縮データが生成されるものとする。
【００６３】
［第４の実施形態］
次に、本発明の第４の実施形態について説明する。
【００６４】
本第４の実施形態では、上述したデータ圧縮方法を、当該方法を実行する処理回路においてデータバス幅の整数倍若しくは整数分の１倍を１ブロックのデータ長（画素数）となるように構成するものである。上記第１の実施形態でも示したように、１ブロックのデータ長をバス幅と同じにすることで、圧縮後のデータ幅がデータバス幅と同じになり、別途データバスに合わせたデータ変換を実施せずにすむ。
【００６５】
また、整数倍、整数分の１倍に１ブロックの画素数を調整することで、データ圧縮を完了して直ぐにデータを上位データと下位データに分割したり、複数のデータをデータ幅に合わせることも容易に行える。一般的なデータ転送は８ビット単位で行われることが多く、１ブロックの画素数は、８画素、１６画素にするのが効率的である。
【００６６】
［第５の実施形態］
次に、本発明の第５の実施形態について説明する。
【００６７】
上記第１の実施形態におけるデータ圧縮方法では、ロスレス圧縮が行われている。圧縮前データが大きく変化する状態では圧縮率が低下するだけでなく、圧縮前データに対して圧縮後のデータが大きくなることがある。そうなった場合、圧縮後のデータを外部転送する場合、通信回路部分で必要になる通信用バッファ長の最大値を越えてしまい、トラブルを起こす可能性がある。
【００６８】
図９は、本発明の第５の実施形態に係るデータ圧縮装置におけるデータ圧縮方法の概要を示す図である。
【００６９】
図９において、圧縮前データのデータブロックＡ０は、８個のデータＤ０（＝７６ｈ），Ｄ１（＝ｂｃｈ），・・・，Ｄ７（＝７ｅｈ）で構成される。データＤ０が基準データとなり、差分データは、Ｙ０（＝４６ｈ）〜Ｙ６（＝０７ｈ）となる。そして、上記第１の実施形態における圧縮方法により圧縮処理を行う際に、差分データ部１５３の最大データの有効桁部分のビットサイズは７ビットになる。圧縮後の第１データに相当し、圧縮データ長を指示するブロック長指示部１５５の表示形式は、図１２に示す変換表を用いて表すと８０ｈになる。その後、２〜９バイト目の圧縮後データは、符号データ部１５４、ブロック長指示部１５５、及び差分データ部１５７により構成される。このとき、圧縮前のデータが８バイトであるのに対して、圧縮後のデータが９バイトになっているのが判る。このように、圧縮後のデータが圧縮前に比べて大きくなる場合があるので、できるだけデータの劣化を抑えて圧縮後のデータが圧縮前より同じかそれ以下にする方法について説明する。
【００７０】
図１０は、圧縮後のデータが圧縮前に比べて大きくなる場合の概要を示す図である。
【００７１】
上記第１の実施形態における圧縮方法では、図１に示すように、ブロック長指示部が「０」になることがない。一方、本実施形態では、図１０に示すように、下位ビットの切り捨てがある場合には、１６１に示す第１データの全ビットを「０」とし、以降のデータにおいてデータの切り捨てがあることを示唆するようにした。第２〜８データには、１６４に示す基準データの情報と、１６２に示す符号データと、１６３に示す差分データの情報が配置される。ここで１６４の基準データは、７ビット長であり、最下位ビットデータを削除してある。また、１６３に示す差分データにおいても最下位ビットに対応するデータを削除している。この削除した部分は、図９における圧縮後の第９データに当たるものであり、本第５の実施形態におけるデータ圧縮方法を実施するためには、図９の第９データを削除するまたはしないの判断のみであり、特別な処理を必要とせず、処理途中で簡易に変更処理ができる。
【００７２】
また、差分データの最下位ビットを削除しないようにする判断基準である画像データのやや大きな変動は、自然画像において、まれである。また、一方では、頻繁に大きく画像データが変化するブロックでは、画像情報の最下位ビットデータが損失しても画像情報に大きな影響はなく、画像品位の劣化が少ない。
【００７３】
また、圧縮後のデータが圧縮前のデータを上回る状況が連続して発生しない限り、第５の実施形態におけるデータ圧縮方法を用いる必要は無く、上記第１の実施形態におけるデータ圧縮方法にてデータの削除なしに圧縮を行う。そして、第１データに「１０００００００ｂ」＝８０ｈを記述すればよい。このように、圧縮処理中においても、ロスレス圧縮モードと、圧縮後のデータ長が増加しない非可逆圧縮モードを自由に選択変更することが可能になる。これにより、数ブロック前の圧縮後データ長を元に、前ブロックにて十分にデータが圧縮されていると判断された場合、現在の圧縮対象であるブロックをロスレス圧縮モードで圧縮する。一方、数ブロック前の圧縮後データが十分に圧縮されていないと判断された場合には、現在の圧縮対象であるブロックを非可逆モードで圧縮するように変更すればよい。
【００７４】
上述の流れを図１１を参照して説明する。
【００７５】
図１１は、可逆非可逆のデータ圧縮方法を選択的に実行するための処理の一例を示すフローチャートである。
【００７６】
図１１において、まず、上記第１の実施形態における圧縮方法により１ブロック分のデータが圧縮される（ステップＳ２０１）。次に、現在注目しているブロックの圧縮後のデータが圧縮前のデータより大きいか否かが判断される（ステップＳ２０２）。圧縮前のデータより圧縮後のデータが大きい場合は、数ブロック前（又は１ブロック前）から現ブロック（注目ブロック）までの圧縮後データの総計が圧縮前のデータの総計より小さいか否かが判断される（ステップＳ２０３）。圧縮後のデータの総計が圧縮前データの総計と等しい又は大きい場合には、第１データのブロック長指示部を「８０ｈ」→「００ｈ」に変更し、最終データを削除する（ステップＳ２０４）。なお、数ブロックとは１ブロックでもよい。
【００７７】
一方、圧縮後のデータが圧縮前データより小さいか等しい場合（ステップＳ２０２でＮＯ）または数ブロック前から現ブロックまでの圧縮後データの総計が圧縮前データの総計より小さい場合（ステップＳ２０３でＹＥＳ）、ステップＳ２０５へ進む。ステップＳ２０５では、第１データのブロック長指示部を「８０ｈ」のままとし、上記第１の実施形態における圧縮方法（第１の圧縮方法）により圧縮が行われる。
【００７８】
上記処理により、従来の圧縮で用いられるように、全データを圧縮した後に、ロスレス圧縮と、非可逆圧縮のどちらが適するかを判定するのに必要な一時保存用メモリ等を必要とせず、簡易な回路で適切な圧縮を行える。従来の方式では、ロスレス圧縮を行ったデータを改めて非可逆圧縮するために、元のデータを再度圧縮するか、ロスレス圧縮したデータを伸張した後、再度圧縮する。しかし、本実施形態では、圧縮後データの僅かな変更だけでロスレス圧縮データを非可逆圧縮データに変換することができる。
【００７９】
［第６の実施形態］
次に、本発明の第６の実施形態について説明する。
【００８０】
図１３は、ラインセンサにより読み取られたＰ〜（Ｐ−１）ラインの分の画素の一例を示す図である。
【００８１】
本第６の実施形態では、一次元ラインセンサを用いた画像入力部を備える画像読取装置において、１ラインずつ主走査方向のデータを読み取っていき、原稿やラインセンサを移動しながら同様の動作を行って、副走査方向へのデータを読み取って行く。
【００８２】
一般に、一次元ラインセンサにおいてはラインセンサの各受光素子の感度にバラツキが一般に存在しており、同一濃度の画像を読んでも、同じデータを出力しない。これを補正するために、同一濃度の画像を読んだときに、同じ出力データになるようにシェーディング補正等を行っており、一般的にデータを圧縮する前には、このシェーディング補正を行っている。
【００８３】
しかし、シェーディング補正を行うための補正回路等が必要になり、ハード回路の負荷が増加する。第１の実施形態に示した前ラインとの差分を取る方式においても、各画素の黒レベル出力値や感度が各画素で変化するため、すべてのバラツキを補正することはできない。これに対して、本実施形態では、ラインバッファを用いたシェーディング補正を実施せずに、第１の実施形態におけるデータ圧縮方法を用いて画像圧縮する。
【００８４】
本実施形態では、１ブロック長と同じ段数（データ単位）を持つ、副走査方向のラインバッファを用いる。例えば、１ブロック長が８画素の場合には、８ライン分のラインバッファを用いる。ここで、ラインバッファにデータを入力した後、圧縮前の１ブロックデータが、同一位置の受光素子から出力された信号に対応するデータで構成されるように、データを読み出し、第１の実施形態におけるデータ圧縮方法によりデータ圧縮を行う。
【００８５】
本実施形態では、ラインセンサの同一位置の受光素子から出力された出力信号に対応する画像データを用いるため、同一濃度の画像を読んだときのデータは略同一となる。そして、ラインセンサ間の感度のばらつきによる圧縮率の低下を回避することができ、画像読取装置側の補正回路を簡略化した構成にしても、圧縮率を向上することができる。
【００８６】
上記本発明の各実施形態の構成要件を他の実施形態に追加することも可能であり、それらは本発明に含まれる。
【００８７】
なお、本発明の各実施形態では、画像読取装置における画像データの圧縮について説明しているが、音声データ等の簡易的圧縮にも有効である。本発明のデータ圧縮方法は、ハードウェア回路で実現することが好適であるが、その一部またはすべてをソフトウェアで実現してもよい。
【００８８】
また、本発明の目的は、以下の処理を実行することによって達成することもできる。上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００８９】
また、プログラムコードを供給するための記憶媒体としては、次のものを用いることができる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等である。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【００９０】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００９１】
更に、前述した実施形態の機能が以下の処理によって実現される場合も本発明に含まれる。即ち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行う場合である。
【００９２】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現する場合も含まれる。この場合、上記プログラムは、該プログラムを記憶した記憶媒体から直接、またはインターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続された不図示の他のコンピュータやデータベース等からダウンロードすることにより供給される。
【図面の簡単な説明】
【００９３】
【図１】本発明の第１の実施形態に係るデータ圧縮装置におけるデータ圧縮方法の概要を示す図である。
【図２】第１の実施形態におけるブロック長指示部の変換表の一例を示す図である。
【図３】本発明の第２の実施形態に係るデータ圧縮装置におけるデータ圧縮方法の概要を示す図である。
【図４】第２の実施形態におけるデータ圧縮方法と第１の実施形態におけるデータ圧縮方法とを選択的に実行するための処理の一例を示すフローチャートである。
【図５】第２の実施形態におけるデータ圧縮方法の変形例の概要を示す図である。
【図６】本発明の第３の実施形態に係るデータ圧縮装置におけるデータ圧縮方法の圧縮後データの内容を示す図である。
【図７】第３の実施形態におけるデータ圧縮方法の概要を示す図である。
【図８】第３の実施形態におけるブロック長指示部の変換表の一例を示す図である。
【図９】本発明の第３の実施形態に係るデータ圧縮装置におけるデータ圧縮方法の概要を示す図である。
【図１０】圧縮後のデータが圧縮前に比べて大きくなる場合の概要を示す図である。
【図１１】可逆非可逆のデータ圧縮方法を選択的に実行するための処理の一例を示すフローチャートである。
【図１２】本発明の第５の実施形態におけるブロック長指示部の変換表の一例を示す図である。
【図１３】ラインセンサにより読み取られたＰ〜（Ｐ−１）ラインの分の画素の一例を示す図である。
【符号の説明】
【００９４】
１００  差分データ部
１０１  冗長データ部
１０２  差分データの絶対値部分の有効桁部分
１０３  符号部分
１０４  ブロック長指示部
１０５  基準データの上位ビット部
１０６  圧縮後の符号データ部
１０７  圧縮後の差分データ部
１０８  基準データの下位ビット部
１１０  圧縮前の基準データ
【図１】
0005070086.tif 000002
【図２】
0005070086.tif 000003
【図３】
0005070086.tif 000004
【図４】
0005070086.tif 000005
【図５】
0005070086.tif 000006
【図６】
0005070086.tif 000007
【図７】
0005070086.tif 000008
【図８】
0005070086.tif 000009
【図９】
0005070086.tif 000010
【図１０】
0005070086.tif 000011
【図１１】
0005070086.tif 000012
【図１２】
0005070086.tif 000013
【図１３】
0005070086.tif 000014