(57)【要約】【課題】ＣＴデータの圧縮に適用可能な新たな好ましい圧縮処理を行うことができるデータ圧縮装置およびデータ圧縮プログラムを提供する。【解決手段】所定の単位ビット数で表わされる数値の連続からなる被圧縮データを構成する数値を、その連続におけるその数値の周囲の所定位置に存在する複数の数値とその数値との相違が縮小するように書き換えて出力する非可逆データ変換部と、書き換えられた被圧縮データ中の隣接する数値どうしの差分を表わす数値の連続からなる新たな被圧縮データを生成する差分生成部と、その新たな被圧縮データ中の各数値を所定値だけオフセットさせるオフセット部と、オフセットされた被圧縮データを上位ビット部分の数値の連続からなる上位データと下位ビット部分の連続からなる下位データとに分割する分割部と、下位データ、上位データに対して可逆圧縮処理をそれぞれ施す下位データ圧縮部、上位データ圧縮部とを備えた。【選択図】図３
2008035066.tif 000002
【特許請求の範囲】
【請求項１】
所定の単位ビット数で表わされる数値の連続からなる被圧縮データにデータ圧縮処理を施すデータ圧縮装置において、
被圧縮データを構成する数値を、前記連続におけるその数値の周囲の所定位置に存在する複数の数値とその数値との相違が縮小するように書き換えて出力する非可逆データ変換部と、
該非可逆データ変換部によって出力された被圧縮データを構成する数値の連続について隣接する数値どうしの差分を求めることにより該差分を表わす数値の連続からなる新たな被圧縮データを生成する差分生成部と、
前記差分生成部によって生成された新たな被圧縮データを構成する各数値を所定値だけオフセットさせるオフセット部と、
前記オフセット部によって数値がオフセットされた被圧縮データの各数値を、前記単位ビット数よりも小さい所定の分割ビット数のところで上位ビット部分と下位ビット部分とに分けることによって、該被圧縮データを、各数値における上位ビット部分の連続からなる上位データと各数値の下位ビット部分の連続からなる下位データとに分割する分割部と、
前記分割部によって分割された下位データに対して可逆圧縮処理を施す下位データ圧縮部と、
前記分割部によって分割された上位データに対して可逆圧縮処理を施す上位データ圧縮部とを備えたことを特徴とするデータ圧縮装置。
【請求項２】
前記非可逆データ変換部が、被圧縮データを構成する数値を書き換えるに際し、該数値と、該数値および前記複数の数値からなる数値群の平均値との相違が所定程度に満たない場合には、その書き換え対象の数値を該平均値に書き換えるものであることを特徴とする請求項１記載のデータ圧縮装置。
【請求項３】
前記非可逆データ変換部が、圧縮率の入力を受けるものであり、被圧縮データを構成する数値を書き換えるに際し、該数値と、該数値および前記複数の数値からなる数値群の平均値との相違が、前記圧縮率が大きいほど大きい所定程度に満たない場合には、その書き換え対象の数値を該平均値に書き換えるものであることを特徴とする請求項１記載のデータ圧縮装置。
【請求項４】
前記非可逆データ変換部が、被圧縮データを構成する数値を書き換えるに際し、該数値と、該数値および前記複数の数値からなる数値群の平均値との相違が所定程度以上である場合には、元の相違以下該所定程度以上の相違が残るように書き換えるものであることを特徴とする請求項１記載のデータ圧縮装置。
【請求項５】
前記上位データ圧縮部が、上位データ中、１つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第１の符号化部を備えたものであることを特徴とする請求項１記載のデータ圧縮装置。
【請求項６】
前記上位データ圧縮部が、
上位データ中、１つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第１の符号化部と、
符号と数値を対応づけるテーブルを用いて、前記第１の符号化部で符号化された後のデータにエントロピー符号化を施す第２の符号化部を備えたものであることを特徴とする請求項１記載のデータ圧縮装置。
【請求項７】
前記上位データ圧縮部が、
上位データ中、１つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第１の符号化部と、
ハフマンテーブルを用いて、前記第１の符号化部で符号化された後のデータにハフマン符号化を施す第２の符号化部を備えたものであることを特徴とする請求項１記載のデータ圧縮装置。
【請求項８】
前記上位データ圧縮部が、
上位データ中、１つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第１の符号化部と、
前記第１の符号化部で符号化された後のデータ中に出現する数値のヒストグラムを求めるヒストグラム算出部と、
前記ヒストグラム算出部で求められたヒストグラムに基づき、符号と数値を対応づけるテーブルに、出現頻度の高い数値ほど符号長の短かい符号を割り当てる符号割当部と、
前記符号割当部で符号が割り当てられたテーブルを用いて、前記第１の符号化部で符号化された後のデータにエントロピー符号化を施す第２の符号化部を備えたものであることを特徴とする請求項１記載のデータ圧縮装置。
【請求項９】
前記下位データ圧縮部が、符号と数値を対応づけるテーブルを用いて下位データにエントロピー符号化を施すものであることを特徴とする請求項１記載のデータ圧縮装置。
【請求項１０】
前記下位データ圧縮部が、ハフマンテーブルを用いて下位データにハフマン符号化を施すものであることを特徴とする請求項１記載のデータ圧縮装置。
【請求項１１】
前記下位データ圧縮部が、圧縮省略の指示を受けて下位データを無圧縮で出力するものであることを特徴とする請求項１記載のデータ圧縮装置。
【請求項１２】
プログラムを実行する情報処理装置内に組み込まれて該情報処理装置に、所定の単位ビット数で表わされる数値の連続からなる被圧縮データにデータ圧縮処理を実行させるデータ圧縮プログラムにおいて、
前記情報処理装置上に、
被圧縮データを構成する数値を、前記連続におけるその数値の周囲の所定位置に存在する複数の数値とその数値との相違が縮小するように書き換えて出力する非可逆データ変換部と、
該非可逆データ変換部によって出力された被圧縮データを構成する数値の連続について隣接する数値どうしの差分を求めることにより該差分を表わす数値の連続からなる新たな被圧縮データを生成する差分生成部と、
前記差分生成部によって生成された新たな被圧縮データを構成する各数値を所定値だけオフセットさせるオフセット部と、
前記オフセット部によって数値がオフセットされた被圧縮データの各数値を、前記単位ビット数よりも小さい所定の分割ビット数のところで上位ビット部分と下位ビット部分とに分けることによって、該被圧縮データを、各数値における上位ビット部分の連続からなる上位データと各数値の下位ビット部分の連続からなる下位データとに分割する分割部と、
前記分割部によって分割された下位データに対して可逆圧縮処理を施す下位データ圧縮部と、
前記分割部によって分割された上位データに対して可逆圧縮処理を施す上位データ圧縮部とを構築することを特徴とするデータ圧縮プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データ等のデータを圧縮するデータ圧縮装置、およびコンピュータ等の情報処理装置をデータ圧縮装置として動作させるデータ圧縮プログラムに関する。
【背景技術】
【０００２】
従来より、記憶容量の低減化や通信量の低減化等のために、画像データ等のデータを圧縮する技術が広く採用されている。
【０００３】
例えば、特許文献１には、原画像から代表色を選定しＣＬＵＴ（カラールックアップテーブル）を構成する際に、連続する色番号が近い値の色データを持つように色番号を割り当て、次にＣＬＵＴに対応したビットマップを作成して隣接画素間の色番号の差分を求め、差分が大きな値を取る場合、画質劣化を起こさない範囲でビットマップの色番号を変更し、差分を小さな値に偏らせ、差分データに対してランレングス符号化を施すという技術が開示されている。
【０００４】
また、特許文献２には、各色に対応してそれぞれ割り当てられたデータが複数集まって構成される画像用データを非可逆圧縮して符号化し、そして、データの１つを透明色に割り当てると共に、その透明色を可逆とし、画像用データを即値（差分符号化の際の最初の値）とその即値に続く複数の差分値（差分符号化の際の前の値）とで構成し、それらの値を非可逆圧縮して符号化等する際、透明色を表す即値と差分値とを可逆とし、さらに、透明色を表す即値を、各一色のデータ値の中間の値としたり、透明色を表す差分値を「０」としたりするという技術が提案されている。
【０００５】
また、特許文献３には、数を予測された数（ｓ’（ｊ））と実際の数（ｓ（ｊ））との差分によって符号化することが提案されている。
【０００６】
さらに、特許文献４には、ｎ列目の画素データ列に対して、副走査方向の同一画素データの分布状況を認識するとともに、主走査方向の同ー画素データの分布状況を認識し、これらの認識結果を基に、副走査方向に連続する同ー画素データを圧縮処理するか、あるいは主走査方向に連続する同一画素データを圧縮処理するかを決定する画像圧縮装置が提案されている。
【０００７】
ここで、データ圧縮技術を適用した１つのシステムを紹介する。
【０００８】
図１は、データ圧縮技術が適用されたプリントシステムの一例を示す図、図２は、プリントシステムにおけるデータ処理の流れを示す図である。
【０００９】
このプリントシステムは、図１に示すように、ホストコントローラ１００と、インターフェース機器２００と、プリンタ３００とで構成されており、ホストコントローラ１００とインターフェース機器２００との間はＳＣＳＩ等の汎用インターフェースケーブル１５０で接続され、さらにインターフェース機器２００とプリンタ３００との間は専用インターフェースケーブル２５０で接続されている。
【００１０】
ホストコントローラ１００の内部では、図２に示すように、ＰＤＦ，ＰＳ，ＴＩＦＦ等、様々な言語やフォーマットで記述された文字や画像のデータ１１が、画像（ＣＴ；Ｃｏｎｔｉｎｕｏｕｓ  Ｔｏｎｅ）データと文字やライン等（ＬＷ；Ｌｉｎｅ  Ｗｏｒｋ）のデータとに分けられて、それぞれについてＲＩＰ（Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ）を行なうことによりビットマップデータ１２Ａ，１３Ａが生成され、さらにそれぞれについてデータ圧縮処理が行なわれて、ＣＴについての圧縮データ１４、ＬＷについての圧縮データ１５が生成される。これらの圧縮データ１４，１５は、図１に示す汎用インターフェースケーブル１５０を経由して、ホストコントローラ１００からインターフェース機器２００に転送される。インターフェース機器２００では、転送されてきた圧縮データ１４，１５にデータ伸長処理を施して、ビットマップデータ１２Ｂ，１３Ｂを生成する。ここで、ＣＴデータについてはホストコントローラ１００でのデータ圧縮の際非可逆データ変換処理が行なわれており、データ伸長後のＣＴデータ（ビットマップデータ１２Ｂ）は完全にはデータ圧縮前のＣＴデータ（ビットマップデータ１２Ａ）には戻らないが、ほぼ同一のビットマップデータが復元される。
【００１１】
インターフェース機器２００では、データ伸長後のＣＴデータ（ビットマップデータ１２Ｂ）とＬＷデータ（ビットマップデータ１３Ｂ）とが合成され、さらに網点情報等がタグとして付加されてプリンタ３００に送られる。プリンタ３００では、インターフェース機器２００から受け取ったビットマップデータとそれに付加されたタグ情報とに従って画像がプリント出力される。
【００１２】
ホストコントローラ１００とインターフェース機器２００とが例えば相互に離れている場合、あるいは、インターフェース機器２００が複数台のホストコントローラから画像データを受信するシステムの場合など、ホストコントローラ１００とインターフェース機器２００を別々の装置として構成する必要がある場合には、図２に示すような、ホストコントローラ１００でデータ圧縮を行なってインターフェース機器２００にデータ転送しインターフェース機器でデータ伸長するように構成することにより、ホストコントローラ１００からインターフェース機器２００へのデータ転送時間を短縮することができ、プリントの生産性が向上する。
【００１３】
ここで、一般的には、ＣＴデータについては、非可逆ではあるが圧縮率の高いＪＰＥＧ等の圧縮方式が採用され、ＬＷデータについてはＰａｃｋＢｉｔｓ等の可逆圧縮方式が採用される。
【特許文献１】特開平５−３２８１４２号公報
【特許文献２】特開平１０−１６４６２０号公報
【特許文献３】特表２００１−５−２０８２２号公報
【特許文献４】特開平９−２００５４０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかし、ＪＰＥＧ等の圧縮方式では、ソフトウェアでの圧縮処理に時間を要し、圧縮処理のシステム全体としての処理能力を劣化させる要因となっていた。
【００１５】
本発明は上記事情に鑑み、ＣＴデータの圧縮に適用可能な新たな好ましい圧縮処理を行うことができるデータ圧縮装置およびデータ圧縮プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記目的を達成する本発明のデータ圧縮装置は、
所定の単位ビット数で表わされる数値の連続からなる被圧縮データにデータ圧縮処理を施すデータ圧縮装置において、
被圧縮データを構成する数値を、上記連続におけるその数値の周囲の所定位置に存在する複数の数値とその数値との相違が縮小するように書き換えて出力する非可逆データ変換部と、
該非可逆データ変換部によって出力された被圧縮データを構成する数値の連続について隣接する数値どうしの差分を求めることにより該差分を表わす数値の連続からなる新たな被圧縮データを生成する差分生成部と、
上記差分生成部によって生成された新たな被圧縮データを構成する各数値を所定値だけオフセットさせるオフセット部と、
上記オフセット部によって数値がオフセットされた被圧縮データの各数値を、上記単位ビット数よりも小さい所定の分割ビット数のところで上位ビット部分と下位ビット部分とに分けることによって、該被圧縮データを、各数値における上位ビット部分の連続からなる上位データと各数値の下位ビット部分の連続からなる下位データとに分割する分割部と、
上記分割部によって分割された下位データに対して可逆圧縮処理を施す下位データ圧縮部と、
上記分割部によって分割された上位データに対して可逆圧縮処理を施す上位データ圧縮部とを備えたことを特徴とする。
【００１７】
ここで、上記の『被圧縮データを構成する数値の連続について隣接する数値どうしの差分を求めることにより』における『隣接する』とは、データストリーム上で隣接してもよいが、必ずしもそれに限定されるものではない。例えば、２次元画像データが１次元ストリーム状のデータとして扱われている場合であれば、２次元的な画像上で見て隣接してもよい。また、『隣接する数値どうしの差分』とは、１次元的な差分のみならず２次元以上の多次元的な差分も含む意である。以下においても同様である。
【００１８】
また、本発明のデータ圧縮装置においては、上記非可逆データ変換部が、被圧縮データを構成する数値を書き換えるに際し、該数値と、該数値および上記複数の数値からなる数値群の平均値との相違が所定程度に満たない場合には、その書き換え対象の数値を該平均値に書き換えるものであることが好ましい。このとき、上記非可逆データ変換部が、圧縮率の入力を受けるものであり、被圧縮データを構成する数値を書き換えるに際し、該数値と、該数値および上記複数の数値からなる数値群の平均値との相違が、上記圧縮率が大きいほど大きい所定程度に満たない場合には、その書き換え対象の数値を該平均値に書き換えるものであってもよい。
【００１９】
また、本発明のデータ圧縮装置においては、上記非可逆データ変換部が、被圧縮データを構成する数値を書き換えるに際し、該数値と、該数値および上記複数の数値からなる数値群の平均値との相違が所定程度以上である場合には、元の相違以下該所定程度以上の相違が残るように書き換えるものであることが好ましい。
【００２０】
また、本発明のデータ圧縮装置は、
上記上位データ圧縮部が、上位データ中、１つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第１の符号化部を備えたものであることも好ましく、さらには、
上記上位データ圧縮部が、
上位データ中、１つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第１の符号化部と、
符号と数値を対応づけるテーブルを用いて、上記第１の符号化部で符号化された後のデータにエントロピー符号化を施す第２の符号化部を備えたものであることが、より好ましい。
【００２１】
また、本発明のデータ圧縮装置は、
上記上位データ圧縮部が、
上位データ中、１つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第１の符号化部と、
ハフマンテーブルを用いて、上記第１の符号化部で符号化された後のデータにハフマン符号化を施す第２の符号化部を備えたものであってもよい。
【００２２】
さらに、本発明のデータ圧縮装置は、
上記上位データ圧縮部が、
上位データ中、１つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第１の符号化部と、
上記第１の符号化部で符号化された後のデータ中に出現する数値のヒストグラムを求めるヒストグラム算出部と、
上記ヒストグラム算出部で求められたヒストグラムに基づき、符号と数値を対応づけるテーブルに、出現頻度の高い数値ほど符号長の短かい符号を割り当てる符号割当部と、
上記符号割当部で符号が割り当てられたテーブルを用いて、上記第１の符号化部で符号化された後のデータにエントロピー符号化を施す第２の符号化部を備えたものであることが、より好ましい。
【００２３】
また、本発明のデータ圧縮装置は、
上記下位データ圧縮部が、符号と数値を対応づけるテーブルを用いて下位データにエントロピー符号化を施すものであることが好ましい。
【００２４】
ここで、本発明のデータ圧縮装置において、上記の下位データ圧縮部は、ハフマンテーブルを用いて下位データにハフマン符号化を施すものであってもよい。
【００２５】
また、本発明のデータ圧縮装置は、
上記下位データ圧縮部が、圧縮省略の指示を受けて下位データを無圧縮で出力するものであることも好適である。
【００２６】
上記目的を達成する本発明のデータ圧縮プログラムは、
プログラムを実行する情報処理装置内に組み込まれて該情報処理装置に、所定の単位ビット数で表わされる数値の連続からなる被圧縮データにデータ圧縮処理を実行させるデータ圧縮プログラムにおいて、
上記情報処理装置上に、
被圧縮データを構成する数値を、上記連続におけるその数値の周囲の所定位置に存在する複数の数値とその数値との相違が縮小するように書き換えて出力する非可逆データ変換部と、
該非可逆データ変換部によって出力された被圧縮データを構成する数値の連続について隣接する数値どうしの差分を求めることにより該差分を表わす数値の連続からなる新たな被圧縮データを生成する差分生成部と、
上記差分生成部によって生成された新たな被圧縮データを構成する各数値を所定値だけオフセットさせるオフセット部と、
上記オフセット部によって数値がオフセットされた被圧縮データの各数値を、上記単位ビット数よりも小さい所定の分割ビット数のところで上位ビット部分と下位ビット部分とに分けることによって、該被圧縮データを、各数値における上位ビット部分の連続からなる上位データと各数値の下位ビット部分の連続からなる下位データとに分割する分割部と、
上記分割部によって分割された下位データに対して可逆圧縮処理を施す下位データ圧縮部と、
上記分割部によって分割された上位データに対して可逆圧縮処理を施す上位データ圧縮部とを構築することを特徴とする。
【００２７】
なお、本発明にいうデータ圧縮プログラムについては、ここではその基本形態のみを示すのにとどめるが、これは単に重複を避けるためであり、本発明にいうデータ圧縮プログラムには、上記の基本形態のみではなく、前述したデータ圧縮装置の各形態に対応する各種の形態が含まれる。
【００２８】
また、本発明のデータ圧縮プログラムがコンピュータ上に構成するオフセット部などといった要素は、１つの要素が１つのプログラム部品によって構築されるものであってもよく、１つの要素が複数のプログラム部品によって構築されるものであってもよく、複数の要素が１つのプログラム部品によって構築されるものであってもよい。また、これらの要素は、そのような作用を自分自身で実行するものとして構築されてもよく、あるいは、コンピュータに組み込まれている他のプログラムやプログラム部品に指示を与えて実行するものとして構築されても良い。
【発明の効果】
【００２９】
上記本発明のデータ圧縮装置ないしデータ圧縮プログラムによれば、被圧縮データ中の数値と上記の数値群の平均値との差分値の大きさが上記の所定の正定値以上であれば、非可逆データ変換部により、その数値を平均値に近づけるように数値の書き換えが行われる。このため、数値の書き換えが行われたデータは周囲の数値との差が小さい数値で構成されることとなり、隣接した数値同士の相関が強くて圧縮されやすいデータとなる。このような数値の書き換えが行われたデータは、オフセット部によって数値がオフセットされた後に上位データと下位データとに分割されて、それぞれのデータに対しては可逆圧縮処理が実行される。
【００３０】
一般に、ＣＴデータから得られる新たな色版データの場合には、後で詳述するように、上位データと下位データとではデータ中の数値の分布傾向が顕著に異なっているので、各データに適した可逆圧縮処理が存在し、本発明による圧縮処理によって全体として大きな圧縮率が達成される。また、各データに施される可逆圧縮処理としては、アルゴリズムが単純な処理が適用可能であるため、本発明による圧縮処理は処理時間が短く、特にＣＴデータの圧縮に適用すると特に好ましい圧縮処理が実現される。
【００３１】
ここで、上記本発明のデータ圧縮装置ないしデータ圧縮プログラムは、非可逆データ変換部における数値の書き換えの方式として、数値と、その数値および上記複数の数値からなる数値群の平均値との相違が所定程度に満たない場合には、その書き換え対象の数値を該平均値に書き換える方式を採用することにより、書き換え後のデータを、同程度の大きさの数値が連続して現れるデータに変換することができる。このようなデータ変換の結果、被圧縮データは、極めて圧縮されやすい形態のデータに変換されることとなる。このとき、非可逆データ変換部が、圧縮率の入力を受けるものであり、上記所定程度が上記圧縮率が大きいほど大きいものであるような書き換え方式を採用することにより、ユーザの所望するような圧縮率でデータの圧縮が行われる。
【００３２】
また、上記本発明のデータ圧縮装置ないしデータ圧縮プログラムが、非可逆データ変換部における数値の書き換えの方式として、数値と、該数値および上記複数の数値からなる数値群の平均値との相違が所定程度以上である場合には、元の相違以下該所定程度以上の相違が残るように書き換える方式を採用することにより、データの形態が圧縮されやすい形態に変換されるとともにデータ中の連続する数値の変化の情報などといった元のデータの特徴も充分維持されることとなる。
【００３３】
また、上記の上位データ圧縮部が第１の符号化部を備えると、圧縮対象数値のみが、その圧縮対象数値と連続数とを表わす数値とに符号化されるため、原データよりも冗長度が増すという事態が回避され、圧縮率が向上する。
【００３４】
また、上記の上位データ圧縮部が第２の符号化部を備えると、エントロピー符号化（典型的にはハフマン符号化）による、圧縮率の更なる向上が見込まれる。
【００３５】
さらに、上記の上位データ圧縮部が、ヒストグラム算出部と符号割当部とを備え、第２の符号化部が、符号割当部で符号が割り当てられたテーブルを用いてエントロピー符号化（例えばハフマン符号化）を施すものであると、符号の割り当てが固定されたテーブルを用いたエントロピー符号化と比べ、圧縮率をさらに大きく向上させることができる。
【００３６】
また、上記の下位データ圧縮部が、エントロピー符号化を施すものであると、エントロピー符号化（典型的にはハフマン符号化）による、圧縮率の更なる向上が見込まれる。
【００３７】
さらに、上記の下位データ圧縮部が、圧縮省略の指示を受けて下位データを無圧縮で出力するものであると、そのような指示によってより高速な圧縮処理を選択することができる。
【発明を実施するための最良の形態】
【００３８】
以下において説明する実施形態は、図１に示す全体システムの中のホストコントローラに組み込まれる画像圧縮装置であり、さらに具体的には、図２に示すホストコントローラ内のＣＴのビットマップデータ１２ＡおよびＬＷのビットマップデータ１３Ａについてデータ圧縮を行なう処理に関するものである。したがって、ここでは、図１，図２を参照して説明したＣＴデータおよびＬＷデータについてのデータ圧縮処理が以下に説明する本発明の実施形態としてのデータ圧縮処理に置き換わり、インターフェース機器内でのデータ伸長（解凍）処理もその本発明の実施形態としてのデータ圧縮処理に対応したデータ伸長（解凍）処理に置き換わるものと理解し、図１に示す全体システムおよび図２に示す処理の流れについて重複した図示および重複説明は省略する。
【００３９】
図３は、本発明のデータ圧縮装置の一実施形態に相当する画像圧縮装置を示すブロック構成図である。
【００４０】
この図３に示す画像圧縮装置５００は、ＣＴデータおよびＬＷデータの両方に対して、圧縮処理を施す画像圧縮装置であり、この圧縮処理のために、差分符号化部５１０、フィルタリング処理部５１５、オフセット部５２０、プレーン分割部５３０、Ｌプレーン圧縮部５４０、Ｈプレーン圧縮部５５０を備えている。各部５１０〜５５０の詳細は後述するが、この画像圧縮装置５００内での画像データの流れは以下のとおりである。
【００４１】
入力画像ファイルＤ０（本実施形態では、図２に示すように、ビットマップに展開されたＣＴデータ１２ＡやＬＷデータ１３Ａが格納されたファイル）は、まず、フィルタリング処理部５１５に入力される。また、このフィルタリング処理部５１５には、ユーザから指定された、入力画像ファイルＤ０のデータを圧縮する際の圧縮率も入力される。このフィルタリング処理部５１５では、このデータを構成する画素値それぞれについて、各画素値の位置を中心とする画素値のブロックの平均値と、各画素値との差分の大きさが指定された圧縮率に応じて決まる所定値未満であれば各画素値をブロックの平均値に書き換え、その差分の大きさが上記の所定値以上であれば各画素値を差分の大きさが上記の所定値となるように各画素値を書き換える処理（以下では、フィルタリング処理と呼ぶ）が行われる。入力されたデータは、このフィルタリング処理により画素値の相関が強められて圧縮されやすいデータに変換される。ここで、フィルタリング処理部５１５が、本発明にいう非可逆データ変換部の一例に相当する。
【００４２】
フィルタリング処理が施されたデータは、次に差分符号化部５１０に入力されて、２次元差分符号化処理、すなわち、入力されてきたデータを構成する数値の連続について、画像上で見てその数値に複数方向それぞれに隣接する複数の数値に基づいた２次元的な差分を求めることによりその差分を表わす８ビットの数値の連続からなる画像データを生成する処理が行なわれる。この差分符号化部５１０は、本発明にいう差分生成部の一例に相当する。
【００４３】
差分符号化部５１０で生成された、差分を表わす数値の連続からなる画像データは、オフセット部５２０に入力されて所定量のオフセットが施される。プレーン分割部５３０では、オフセット後の画像データ中の８ビットの各数値が、下位ビットと上位ビットとに分けられることにより、画像データが、下位ビットの数値の連続からなる下位サブプレーンＤ１Ｌと上位ビットの数値の連続からなる上位サブプレーンＤ１Ｈとに分割される。このオフセット部５２０が、本発明にいうオフセット部の一例に相当し、プレーン分割部５３０が、本発明にいう分割部の一例に相当する。また、下位サブプレーンＤ１Ｌおよび上位サブプレーンＤ１Ｈは、それぞれ、本発明にいう下位データおよび上位データの各一例に相当する。プレーン分割部５３０で分割された下位サブプレーンＤ１Ｌおよび上位サブプレーンＤ１Ｈは、それぞれ、Ｌプレーン圧縮部５４０およびＨプレーン圧縮部５５０において可逆圧縮が施される。これらＬプレーン圧縮部５４０およびＨプレーン圧縮部５５０は、それぞれ、本発明にいう下位データ圧縮部および上位データ圧縮部の各一例に相当する。以下、Ｌプレーン圧縮部５４０およびＨプレーン圧縮部５５０においてそれぞれ施される可逆圧縮の内容の概略を説明する。
【００４４】
Ｌプレーン圧縮部５４０には、Ｌプレーン圧縮部５４０にハフマン符号化部５４１が備えられており、下位サブプレーンＤ１Ｌは、このハフマン符号化部５４１に入力される。このハフマン符号化部５４１は、数値と符号とを対応づける固定的なハフマンテーブルに従って、入力されてきた下位サブプレーンＤ１Ｌを構成する数値をそのハフマンテーブルに従う符号に書き換える符号化処理を行う。このハフマン符号化は、エントロピー符号化の一種である。なお、Ｌプレーン圧縮部５４０にはモード切換部５４２が組み込まれており、このモード切換部５４２は、ユーザから、高速モードと通常モードとの切り換えを指示されて、上記のハフマン符号化部５４１によるハフマン符号化を経る通常モードと、ハフマン符号化を省略して下位サブプレーンＤ１Ｌをそのまま出力する高速モードとを切り換える。このようなＬプレーン圧縮部５４０からは、下位サブプレーンＤ１Ｌが圧縮された下位圧縮データＤ２Ｌが出力されるが、高速モードの場合には下位圧縮データＤ２Ｌは下位サブプレーンＤ１Ｌそのものである。
【００４５】
一方、Ｈプレーン圧縮部５５０には、ランレングス符号化部５５１と、データスキャニング部５５２と、ハフマン符号化部５５３が備えられており、上位サブプレーンＤ１Ｈはランレングス符号化部５５１に入力される。
【００４６】
ランレングス符号化部５５１では、先ず、入力されてきた上位サブプレーンＤ１Ｈのデータの中から１つもしくは複数の圧縮対象数値の存在及び同一の圧縮対象数値の連続数が検出される。次いで、ランレングス符号化部５５１では、その検出結果を受けて、上位サブプレーンＤ１Ｈのデータ中、圧縮対象数値を除く数値についてはそのまま出力すると共に、圧縮対象数値については、その圧縮対象数値と、その圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力するという符号化処理が行なわれる。このランレングス符号化部５５１では、その符号化処理にあたっては、同一の圧縮対象数値の連続数に応じ、その連続数を異なるビット数で表現する符号化が行なわれる。ここでは、具体的には、同一の圧縮対象数値の連続数が所定数以下のときはその連続数を１単位ビット数で表現し、その連続数が所定数を越えるときは２単位ビット数で表現する符号化が行なわれる。本実施形態では、このランレングス符号化部５５１が、本発明にいう第１の符号化部の一例に相当する。
【００４７】
また、ランレングス符号化部５５１での符号化後のデータは、次に、データスキャニング部５５２とハフマン符号化部５５３との双方に入力される。データスキャニング部５５２では、ランレングス符号化部５５１で符号化された後のデータの全てをスキャニングして、そのデータ中に出現する全ての数値の出現頻度（ヒストグラム）が求められる。ここで、この出現頻度を求める処理は、本実施形態では、図３に示す上位サブプレーンＤ１Ｈの１つずつを単位として実行され、各上位サブプレーンＤ１Ｈの、ランレングス符号化部５５１で符号化された後のデータ中の数値の出現頻度が求められる。さらに、データスキャニング部５５２では、求められたデータヒストグラム（数値の出現頻度）に基づき、ハフマンテーブルに、出現頻度の高い数値ほど符号長の短かい符号を割り当てる。このデータスキャニング部５５２は、本発明にいうヒストグラム算出部および符号割当部の各一例を兼ね備えたものに相当する。
【００４８】
データスキャニング部５５２で数値に符号が割り当てられてなるハフマンテーブルは、ハフマン符号化部５５３に渡され、ハフマン符号化部５５３では、その渡されたハフマンテーブルに従って、そのハフマン符号化部５５３に入力されてきたデータを構成する数値を、そのハフマンテーブルに従う符号、すなわち、出現頻度の高い数値ほど短かいビット長で表わされる符号に書き換える符号化処理が行なわれる。このハフマン符号化部５５３は、本発明にいう第２の符号化部の一例に相当する。
【００４９】
ハフマン符号化部５５３でハフマン符号化された後のデータは、データスキャニング部５５２で割り当てられた数値と符号との割当テーブルを含む圧縮情報が添付され、上位サブプレーンＤ１Ｈが圧縮された上位圧縮データＤ２ＨとしてＨプレーン圧縮部５５０から出力される。
【００５０】
このようにＬプレーン圧縮部５４０およびＨプレーン圧縮部５５０のそれぞれから出力される下位圧縮データＤ２Ｌと上位圧縮データＤ２Ｈとの組が、元の画像データに対する圧縮データが構成される。この圧縮データは、図１に示すＳＣＳＩ等の汎用インターフェース１５０を経由してインターフェース機器２００に転送される。インターフェース機器２００では、その受け取った圧縮データにデータ伸長処理が施されるが、このデータ伸長処理にあたっては、図３で説明した各種の符号化処理に対応する復号化処理が施されて元の入力画像ファイル中の画像データとほぼ同一の画像データが復元される。
【００５１】
図４は、図１に示すホストコントローラのハードウェア構成図である。
【００５２】
図１に示すホストコントローラ１００は、図４に示す構成のコンピュータシステムで構成されている。
【００５３】
この図４に示す、コンピュータシステムで構成されたホストコントローラ１００には、ＣＰＵ１１１、ＲＡＭ１１２、通信インターフェース１１３、ハードディスクコントローラ１１４、ＦＤドライブ１１５、ＣＤＲＯＭドライブ１１６、マウスコントローラ１１７、キーボードコントローラ１１８、ディスプレイコントローラ１１９、および通信用ボード１２０が備えられており、これらはバス１１０で相互に接続されている。
【００５４】
ハードディスクコントローラ１１４は、このホストコントローラ１００に内蔵されているハードディスク１０４のアクセスを制御するものであり、ＦＤドライブ１１５、ＣＤＲＯＭドライブ１１６は、このホストコントローラ１００に取出し自在に装填されるフレキシブルディスク（ＦＤ）１３０、ＣＤＲＯＭ１４０のアクセスを制御するものである。また、マウスコントローラ１１７、キーボードコントローラ１１８は、このホストコントローラ１００に備えられたマウス１０７、キーボード１０８の操作を検出してＣＰＵ１１１に伝達する役割を担っている。さらに、ディスプレイコントローラ１１９は、このＣＰＵ１１１の指示に基づいて、ホストコントローラ１００に備えられた画像ディスプレイ１０９の表示画面上に画像を表示する役割を担っている。
【００５５】
通信用ボード１２０は、ＳＣＳＩ等の汎用インターフェースプロトコルに準拠した通信を担っており、圧縮後の画像データをインターフェースケーブル１５０を介してインターフェース機器２００（図１参照）に転送する役割を担っている。
【００５６】
さらに、通信用インターフェース１１３は、インターネット等の汎用の通信を担っており、このホストコントローラ１００は、この通信用インターフェース１１３を経由して画像データを取り込むこともできる。
【００５７】
ＲＡＭ１１２には、ハードディスク１０４に格納されているプログラムが読み出されてＣＰＵ１１１での実行のために展開され、ＣＰＵ１１１では、そのＲＡＭ１１２に展開されたプログラムが読み出されて実行される。
【００５８】
図５は、本発明のデータ圧縮プログラムの一実施形態に相当する画像圧縮処理プログラムの模式構成図である。
【００５９】
ここでは、この画像圧縮プログラム６００は、ＣＤＲＯＭ１４０に記憶されている。
【００６０】
この画像圧縮プログラム６００は、差分符号化部６１０、フィルタリング処理部６１５、オフセット部６２０、プレーン分割部６３０、Ｌプレーン圧縮部６４０、Ｈプレーン圧縮部６５０から構成されている。このＣＤＲＯＭ１４０には、ここに示す画像圧縮プログラム６００のほか、図１に示すホストコントローラ１００における一連の処理を実行するための各種プログラムが記憶されているが、それらについては従来と同様であるため図示および説明は省略する。
【００６１】
この図５に示すＣＤＲＯＭ１４０が、図４に示すホストコントローラ１００に装填されＣＤＲＯＭドライブ１１６でアクセスされてそのＣＤＲＯＭ１４０に記憶されているプログラムがこのホストコントローラ１００にアップロードされ、ハードディスク１０４に記憶される。このハードディスク１０４に記憶されたプログラムがそのハードディスク１０４から読み出されてＲＡＭ１１２に展開されＣＰＵ１１１で実行されると、このホストコントローラ１００は、図３に示す画像圧縮装置５００としての処理を含む、ホストコントローラとしての各種処理を実行する装置として動作する。
【００６２】
ここで、図５に示す画像圧縮プログラム６００は、ホストコントローラ１００にインストールされてＣＰＵ１１１で実行されることにより、そのホストコントローラ１００内に図３に示す画像圧縮装置５００を実現するものであり、差分符号化部６１０、フィルタリング処理部６１５、オフセット部６２０、プレーン分割部６３０、Ｌプレーン圧縮部６４０、Ｈプレーン圧縮部６５０は、ＣＰＵ１１１で実行されることにより、そのホストコントローラ１００を、図３に示す画像圧縮装置５００を構成する、それぞれ、差分符号化部５１０、フィルタリング処理部５１５、オフセット部５２０、プレーン分割部５３０、Ｌプレーン圧縮部５４０、Ｈプレーン圧縮部５５０として動作させるプログラム部品である。つまり、これらのプログラム部品により、画像圧縮装置５００の構成要素がホストコントローラ１００上に実質的に構築されることとなる。
【００６３】
図５の画像圧縮プログラム６００を構成する各部６１０〜６５０の、ＣＰＵ１１１で実行されたときの作用は、それぞれ、図３の画像圧縮装置５００を構成する各部５１０〜５５０の作用そのものである。したがって、図３の画像圧縮装置５００の各部５１０〜５５０に関する、これまでの説明、および、以下に説明する詳細説明をもって、図５の画像圧縮プログラム６００を構成する各部６１０〜６５０の説明を兼ねるものとする。
【００６４】
まず、フィルタリング処理部５１５で行われる処理について詳述する。
【００６５】
図６は、図３のデータ圧縮装置５００に入力される入力画像ファイル中の画像データの構造を示す図である。
【００６６】
入力画像ファイル中の画像データで表される画像は、所定の主走査方向に画素がＭ個並んでなるラインが、その主走査方向とは直角な副走査方向にＮライン並ぶことによって構成されており、このような構成を反映してその画像データも、図６に示すように、主走査方向（図の左右方向）に画素値がＭ個並んでなるラインが、副走査方向（図の上下方向）にＮライン並んでいるという構造を備えている。この図では、上からｎ番目のライン中の、左からｍ番目の画素値はＤｎ，ｍと表記されており、この表記法を用いて、副走査方向にｎ番目のラインについては、主走査方向に並ぶ各画素の画素値が、その並び順に、
Ｄｎ，１，Ｄｎ，２，…，Ｄｎ，ｍ−１，Ｄｎ，ｍ，…，Ｄｎ，Ｍ−２，Ｄｎ，Ｍ−１，Ｄｎ，Ｍ
と表されている。
【００６７】
フィルタリング処理部５１５に上記の構造のデータが入力されると、フィルタリング処理部５１５では、このデータにおいて、データのへりの部分に位置する画素、すなわち、１番目のライン中の画素、Ｎ番目のライン中の画素、各ライン中の左端に位置する画素、および各ライン中の右端に位置する画素については、その画素値をそのまま出力する。これらの画素以外については、上からｎ番目のライン中の、左からｍ番目の画素値Ｄｎ，ｍを（ここでは、ｎ＝２〜Ｎ−１、ｍ＝２〜Ｍ−１とする）、下記のルールに従って、新たなデータ値Ｐｎ，ｍに書き換える。
｜Ｄｎ，ｍ−Ｆ｜＜Ｒ  ならば、Ｐｎ，ｍ＝Ｆ                        ……………（１）
Ｄｎ，ｍ−Ｆ≧Ｒ  ならば、Ｐｎ，ｍ＝Ｆ＋Ｒ                      ……………（２）
Ｄｎ，ｍ−Ｆ≦Ｒ  ならば、Ｐｎ，ｍ＝Ｆ−Ｒ                      ……………（３）
ここで、上式（１）〜（３）に現れるＲは定数であり、Ｆは下記で定義される値である。
Ｆ＝（Ｄｎ−１，ｍ−１＋Ｄｎ−１，ｍ＋Ｄｎ−１，ｍ＋１＋Ｄｎ，ｍ−１＋Ｄｎ，ｍ＋Ｄｎ，ｍ＋１＋Ｄｎ＋１，ｍ−１＋Ｄｎ＋１，ｍ＋Ｄｎ＋１，ｍ＋１）／９                                  ……………（４）
以下、上式（１）〜（４）で定義されるデータ変換の意味について説明する。
【００６８】
式（４）で定義されるＦは、図６の中央部に示す、画素値Ｄｎ，ｍを中心とする３×３個の画素値のブロックの平均値を表している。フィルタリング処理部５１５では、画素値Ｄｎ，ｍの書き換えを行うに際し、この画素値Ｄｎ，ｍと平均値Ｆとの差が、所定幅内に収まっているか否かについて判定を行う。この所定幅が上式（１）〜（３）に現れるＲであり、このＲが、画素値Ｄｎ，ｍと平均値Ｆとの差の大きさの評価基準となっている。このＲは、ユーザから指定された圧縮率に応じて決定される定数であり、圧縮率が大きいほど大きな値となる。
【００６９】
フィルタリング処理部５１５は、画素値Ｄｎ，ｍと平均値Ｆとの差が、この所定幅Ｒ内に収まっている場合には、式（１）のように平均値Ｆを、画素値Ｄｎ，ｍの書き換えデータ値Ｐｎ，ｍとして出力する。すなわち、画素値Ｄｎ，ｍが、平均値Ｆと大差ないと考えられるときには、画素値Ｄｎ，ｍは、その平均値Ｆに書き換えられることとなる。
【００７０】
一方、画素値Ｄｎ，ｍが、平均値Ｆに比べて所定幅Ｒ以上に大きい場合には、式（２）のようにＦ＋Ｒが、画素値Ｄｎ，ｍの書き換えデータ値Ｐｎ，ｍとして出力される。すなわち、画素値Ｄｎ，ｍが、平均値Ｆよりも大きすぎると考えられるときには、画素値Ｄｎ，ｍは、その平均値に所定幅Ｒを加えただけの、元のＤｎ，ｍよりは平均値に近い値に書き換えられることとなる。
【００７１】
また、画素値Ｄｎ，ｍが、平均値Ｆに比べて所定幅Ｒ以上に小さい場合には、式（３）のようにＦ−Ｒを、画素値Ｄｎ，ｍの書き換えデータ値Ｐｎ，ｍとして出力される。すなわち、
画素値Ｄｎ，ｍが、平均値Ｆよりも小さすぎると考えられるときには、画素値Ｄｎ，ｍは、その平均値から所定幅Ｒを引いただけの、元のＤｎ，ｍよりは平均値に近い値に書き換えられることとなる。
【００７２】
まとめると、上式（１）〜（４）で定義されるデータ変換によって元の画像データの画素値は、この画素値のブロックの平均値に近い値の場合には平均値に書き換えられ、この画素値のブロックの平均値とかけ離れて大きいか、あるいはかけ離れて小さいといった画素値はならされることになる。フィルタリング処理部５１５における、このようなフィルタリング処理の結果、元の画像データは、隣接する数値間の相関が強いデータに変換され、圧縮されやすいデータとなる。
【００７３】
なお、上記のフィルタリング処理部５１５では、データのへりの部分に位置する画素（１番目のライン中の画素、Ｎ番目のライン中の画素、各ライン中の左端に位置する画素、および各ライン中の右端に位置する画素）については、それらの画素値をそのまま出力するものであったが、本発明は、データのへりの部分に位置する画素の画素値についてもこの画素値を含むブロック（例えば２×２個の画素値のブロック）の平均値との差に応じて画素値の書き換えを行うものであってもよい。
【００７４】
また、本発明は、画素値のブロックとしては、上記のように３×３個の画素値のブロックの代わりに、同じライン上の連続した３個の画素値のブロックなど、その画素値を取り囲む画素値の一部とその画素値とからなるブロックを採用してもよく、本発明は、こうしたブロックの取り方には限定されない。
【００７５】
また、上記のフィルタリング処理部５１５では、書き換え対象となる画素値と、その画素値のブロックの平均値との差分の大きさに応じて、書き換え処理の分岐を行うものであるが、本発明は、ブロックの平均値との差分に限らず、ブロックの各数値と書き換え対象となる画素値との差分の２乗和の平方根を求めて、その２乗和の平方根の大きさに応じて、書き換え処理の分岐を行うものであってもよい。
【００７６】
フィルタリング処理部５１５でのフィルタリング処理後のデータは、次に図３の２次元差分符号化部５１０に入力される。
【００７７】
図７は、図３の差分符号化部５１０に入力されるデータの構造を示す図、図８は、このデータに対して２次元差分符号化処理が施された後のデータの構造を示す図である。
【００７８】
差分符号化部５１０に入力されるデータ（フィルタリング処理後のデータ）は、図６に示す、フィルタリング処理前のデータと同様に、図７に示すように、主走査方向（図の左右方向）にデータ値がＭ個並んでなるラインが、副走査方向（図の上下方向）にＮライン並んでいるという構造を備えている。この図７では、上述したフィルタリング処理で得られたデータ値が並んでいる様子が示されており、図７では、これらのデータ値は、１６進表示で表されている。図３に示す差分符号化部５１０には、上記のような構造のデータが入力されて２次元差分符号化処理が施され、主走査方向に隣接するデータ値の差分における副走査方向での更なる差分が求められる。
【００７９】
図８には、２次元差分符号化処理が施されたデータの構造が示されており、このデータも、２次元差分符号化後のデータ値が主走査方向にＭ個並んでなるラインが、副走査方向にＮライン並んでいるという構造を備えている。この図では、上からｎ番目のライン中の、左からｍ番目の、２次元差分符号化後のデータ値は、Ｘｎ，ｍと表記されており、以下では、ｎ＝１〜Ｎ、ｍ＝１〜Ｍとして説明を行う。この２次元差分符号化後のデータ値Ｘｎ，ｍは、図７の中央部に示す、２次元差分符号化前の４つのデータ値｛Ｐｎ−１，ｍ−１，Ｐｎ−１，ｍ，Ｐｎ，ｍ−１，Ｐｎ，ｍ｝から、下記の変換式によって得られる。
Ｘｎ，ｍ＝（Ｐｎ，ｍ−Ｐｎ，ｍ−１）−（Ｐｎ−１，ｍ−Ｐｎ−１，ｍ−１）                …（５）
ここで、ｎ＝１の場合やｍ＝１の場合には、式（５）の右辺の２次元差分符号化前のデータ値の添え字に０が現れることとなるが、添え字が０となるデータ値については、下記のように定義する。
Ｐ０，０＝Ｐ０，ｍ＝００  （ｍ＝１〜Ｍ），  Ｐｎ，０＝Ｐｎ−１，Ｍ  （ｎ＝１〜Ｎ）…（６）  ここで、式（６）の「００」は、データ値を１６進表示で表したときに値がゼロであることを表している。以下、式（５）および式（６）の意味について簡単に説明する。
【００８０】
式（５）は、主走査方向に隣接するデータ値どうしの差分（すなわち、カッコの中の値）における副走査方向での更なる差分によって２次元差分符号化後のデータ値Ｘｎ，ｍが得られることを表しており、２次元差分符号化前のデータ値Ｐｎ，ｍが隣接するデータ値と相関が強い（すなわち同じような大きさのデータ値である）場合には、２次元差分符号化後のデータ値Ｘｎ，ｍは、ゼロに近い値となる。
【００８１】
式（６）は、副走査方向の仮想的な０番目のラインと、各ラインの左から０番目の仮想的なデータ値とを新たに設けたときの各データ値の定義を表す式である。主走査方向については左端のデータ値（左から０番目のデータ値Ｐｎ，０）とそのラインより１ライン前のラインの右端のデータ値Ｐｎ−１，Ｍとを同一視するという定義となっている。また、副走査方向については、図の一番上側のデータ値（０番目のライン上のデータ値）、すなわち、Ｐ０，０やＰ０，ｍが全て０に固定された定義となっている。
【００８２】
２次元差分符号化後のデータにおいて、１ライン目のデータ値、および各ラインの１番目のデータ値については、式（５）の変換式の右辺に、添え字が「０」である項が現れるため、式（６）の定義が適用されることとなる。具体的には上記の式（５）および式（６）により、２次元差分符号化後の１ライン目のデータ値は、
Ｘ１，１＝Ｐ１，１，
Ｘ１，２＝Ｐ１，２−Ｐ１，１，
Ｘ１，３＝Ｐ１，３−Ｐ１，２，
…………
Ｘ１，Ｍ＝Ｐ１，Ｍ−Ｐ１，Ｍ−１
のように表される。
【００８３】
一方、２次元差分符号化後のデータにおいて、各ラインの１番目のデータ値については、上記の式（６）により、
Ｘ１，１＝Ｐ１，１，
Ｘ２，１＝（Ｐ２，１−Ｐ１，Ｍ）−Ｐ１，１，
Ｘ３，１＝（Ｐ３，１−Ｐ２，Ｍ）−（Ｐ２，１−Ｐ１，Ｍ），
…………
ＸＮ，１＝（ＰＮ，１−ＰＮ−１，Ｍ）−（ＰＮ−１，１−ＰＮ−２，Ｍ）
のように表される。このように、１ライン目のデータ値、および各ラインの１番目のデータ値については、その変換の仕方がやや特殊であるが、これらのデータ値以外のデータ値については、式（６）の定義が適用されることなく、式（５）がそのまま適用される。例えば、２ライン目のデータ値のうち一番左端を除いたデータ値は、
Ｘ２，２＝（Ｐ２，２−Ｐ２，１）−（Ｐ１，２−Ｐ１，１），
Ｘ２，３＝（Ｐ２，３−Ｐ２，２）−（Ｐ１，３−Ｐ１，２），
…………
Ｘ２，Ｍ＝（Ｐ２，Ｍ−Ｐ２，Ｍ−１）−（Ｐ１，Ｍ−Ｐ１，Ｍ−１）
のように表される。
【００８４】
この２次元差分符号化処理を、具体的な数値を用いて説明する。
【００８５】
図９は、図３のデータ圧縮装置５００を構成する差分符号化部５１０における２次元差分符号化処理を例示して示す図である。
【００８６】
この図の左側（パート（Ａ））に示す各数値が画像データを構成するデータ値であり、この図の右側（パート（Ｂ））に示す各数値が２次元差分符号化処理で出力される出力値である。この図の横方向が主走査方向であり、主走査方向に並んだ８つの数値の並びが上記のラインである。この図に示すデータにはこうした８つの数値が並んだラインが全部で８本あり、図７および図８のデータにおいてＮ＝８，Ｍ＝８の場合のデータに相当する。
【００８７】
図９のパート（Ａ）に示すデータの２次元差分符号化処理では、先ず、１ライン目の各データ値「９０  ８Ａ  ８Ａ  ７Ｂ  …」のうち、一番左の「９０」については、この値がそのまま上記のＸ１，１として出力され、それ以外のＸ１，２，Ｘ１，３，…については、主走査方向に隣接するデータ値どうしの差分の値「８Ａ−９０＝ＦＡ」「８Ａ−８Ａ＝００」…が出力される。ここで、「８Ａ」から「９０」を引き算した結果は実際には負の数となり、９ビットで「１ＦＡ」と表されるが、ＭＳＢの１ビットである最上位の「１」は省略し、下位８ビットである「ＦＡ」のみを出力する。
【００８８】
２ライン目については、Ｘ２，１を求める式、
Ｘ２，１＝（Ｐ２，１−Ｐ１，Ｍ）−Ｐ１，１
において、Ｍ＝８としたときの右辺の｛Ｐ２，１，Ｐ１，８，Ｐ１，１｝に対し、図９のパート（Ａ）に示す数値が代入されて、「（８７−５８）−９０＝９Ｆ」がＸ２，１として出力される。それ以外のＸ２，２，Ｘ２，３，…については、２ライン目についての主走査方向に隣接するデータ値どうしの差分と、１ライン目についての主走査方向に隣接するデータ値どうしの差分とのさらなる差分の値「（８４−８７）−（８Ａ−９０）＝３」「（８８−８４）−（８Ａ−８Ａ）＝０４」…が出力される。
【００８９】
３ライン目については、Ｘ３，１を求める式、
Ｘ３，１＝（Ｐ３，１−Ｐ２，Ｍ）−（Ｐ２，１−Ｐ１，Ｍ）
において、Ｍ＝８としたときの右辺の｛Ｐ３，１，Ｐ２，８，Ｐ２，１，Ｐ１，８｝に、図９のパート（Ａ）に示す数値が代入されて、「（８Ｂ−４Ｃ）−（８７−５８）＝１０」がＸ３，１として出力される。それ以外のＸ３，２，Ｘ３，３，…については、３ライン目についての主走査方向に隣接するデータ値どうしの差分と、２ライン目についての主走査方向に隣接するデータ値どうしの差分とのさらなる差分の値「（８６−８Ｂ）−（８４−８７）＝ＦＥ」「（８Ａ−８６）−（８８−８４）＝００」…が出力される。
【００９０】
以下、４ライン目以降についても、３ライン目の演算と同じ演算を繰り返すことにより、図９のパート（Ｂ）に示す各数値が得られることとなる。
【００９１】
図１に示すインターフェース機器２００では、このように２次元差分符号化されたデータに対してデータの復号化処理が行われる。この復号化処理では、２次元差分符号化されたデータの値からＰｎ，ｍを求める式が使用されており、この式は以下のようにして求めることができる。
【００９２】
２次元差分符号化後のデータ値Ｘｉ，ｊを、ｉ＝１からｉ＝ｍまで足し上げ、さらにｊ＝１からｊ＝ｍについて足し上げた結果は、式（５）および式（６）を用いて下記の式（７）のように表される。
【００９３】
【数１】
2008035066.tif 000003
【００９４】
ここで、式の途中に現れる｛Ｐ０，０，Ｐｎ，０，Ｐ０，ｍ｝に対して、式（６）が適用されている。この式から、２次元差分符号化前のデータ値Ｐｎ，ｍは、下記の式（８）のように表される。
【００９５】
【数２】
2008035066.tif 000004
【００９６】
図１に示すインターフェース機器２００では、上記の式（８）により、先ず、１ライン目のデータ値Ｐ１，１，Ｐ１，２，…，Ｐ１，Ｍが求められる。例えば、１ライン目のデータ値のうち主走査方向にｍ番目のデータ値は、上記の式（８）にｎ＝１を代入し、さらに式（６）のＰ０，Ｍ＝０を利用して、下記の式（９）のように表される。
【００９７】
【数３】
2008035066.tif 000005
【００９８】
このようにして、１ライン目のデータ値、Ｐ１，１，Ｐ１，２，…，Ｐ１，Ｍがすべて求められる。
【００９９】
２ライン目のデータ値Ｐ２，１，Ｐ２，１，…，Ｐ２，Ｍについては、同様に上記の式（８）にｎ＝２を代入し、さらに１ライン目のデータ値の複合化で得られたＰ１，Ｍを用いることで求めることができる。例えば、２ライン目のデータ値のうち主走査方向にｍ番目のデータ値は、下記の式（１０）のように表される。
【０１００】
【数４】
2008035066.tif 000006
【０１０１】
３ライン目以降のデータ値についても同様にして、上記の式（１０）やそれ以降の計算で複合化されたデータ値を用いて求めることができる。図１に示すインターフェース機器２００では、このような方式でデータの復号化処理が行われる。
【０１０２】
図３の差分符号化部５１０では、以上説明したような２次元差分符号化が画像データに施される。この２次元差分符号化によって得られるデータは、図３のオフセット部５２０に入力され、そのデータの各数値について所定のオフセット値が加算され、データが下位サブプレーンＤ１Ｌと上位サブプレーンＤ１Ｈとに分割される。ここでは、データの分割までの処理についてＣＴの画像データを例に用いて具体的に説明する。
【０１０３】
図１０は、ＣＴの画像データの例を示す図である。
【０１０４】
この図１０のパート（Ａ）には、ＣＴの画像データが表しているＣＴ画像の一例としてモノクロの風景画像が示されており、本実施形態では、このようなＣＴ画像の各画素における色の濃度が８ビットの数値で表現された画像データが用いられる。図１０のパート（Ｂ）には、パート（Ａ）に示す風景画像を表す画像データにおけるデータ値のヒストグラムが示されており、このヒストグラムの横軸はデータ値、縦軸はデータ数（画素数）を表している。ＣＴ画像では一般に、ヒストグラムの幅が広く、ヒストグラム中でデータ数の山谷は生じてもヒストグラムの途中にデータ数が「０」の領域が生じることは極めてまれである。
【０１０５】
図１１は、ＣＴの画像データに対する差分符号化およびオフセットの効果を示す図である。
【０１０６】
この図１１のパート（Ａ）には、図１０に示したＣＴの画像データに対して差分符号化が施されて得られるデータのヒストグラムが示されており、このヒストグラムの横軸はデータ値、縦軸は出現頻度を表している。ＣＴの画像データに対して、図７および図９で説明した差分符号化が施されると、データのヒストグラムは、一般に、この図１１のパート（Ａ）に示すような、最小データ値と最大データ値の双方に鋭いピークを有するヒストグラムとなる。そして、このようなデータに対してオフセットが施されると、データのヒストグラムは、図１１のパート（Ｂ）に示すような、オフセット値のところに鋭いピークを持つヒストグラムとなる。本実施形態ではオフセット値として「８」が用いられており、オフセットの結果、値が「１６」以上となるデータの頻度はほとんど「０」となっている。
【０１０７】
このように差分符号化およびオフセットによってヒストグラムが変形されたデータは、図３のプレーン分割部５３０によって下位サブプレーンＤ１Ｌと上位サブプレーンＤ１Ｈとに分割される。
【０１０８】
図１２は、プレーン分割部５３０によるデータ分割の効果を説明する図である。
【０１０９】
この図１２には、図１１のパート（Ｂ）に示すヒストグラムがデータ値「１５」とデータ値「１６」との間で切り離されたヒストグラムが示されており、図３のプレーン分割部５３０によるデータ分割は、まさにこのようなヒストグラムの分割に相当する効果を生じる。すなわち、本実施形態では、データを構成している８ビットの各数値が上位４ビットと下位４ビットとに分割されることで、下位４ビットが表す数値の連続からなる下位サブプレーンＤ１Ｌと上位４ビットが表す数値の連続からなる上位サブプレーンＤ１Ｈとが得られる。そして、下位サブプレーンＤ１Ｌを構成する４ビットの数値が値「０」から値「１５」までの各数値をそのまま表現していて、上位サブプレーンＤ１Ｈを構成する４ビットの数値の場合は、値「１６」から値「２５６」までの、１６間隔１６種類の数値を表現していると解釈すると、下位サブプレーンＤ１Ｌのヒストグラムは、この図１２の左側に示されたヒストグラムとほぼ同じものとなり、上位サブプレーンＤ１Ｈのヒストグラムは、図１２の右側に示されたヒストグラムとほぼ同じものとなる。ただし、上位サブプレーンＤ１Ｈのヒストグラムについては、図１２の右側に示されたヒストグラムのデータ値「１６」のところに、図１２の左側に示されたヒストグラムの面積に等しい高さのピークが付加されたものとなる。
【０１１０】
ここで、図３のフィルタリング処理部５１５における、上述したフィルタリング処理の効果を確かめるため、フィルタリング処理を経ずに図１０〜図１２の手続きに従って求められたヒストグラムと、フィルタリング処理を経てから図１０〜図１２の手続きに従って求められたヒストグラムとを比較する。
【０１１１】
図１３は、所定の画像について、フィルタリング処理を経ずに求められたヒストグラムを表した図、図１４は、その同じ画像について、フィルタリング処理を経てから求められたヒストグラムを表した図である。
【０１１２】
図１３のヒストグラムと、図１４のヒストグラムとの比較から明らかなように、フィルタリング処理を経ずに求められた図１３のヒストグラムに比べ、フィルタリング処理を経てから求められた図１４のヒストグラムは、画素データの値が９付近に集中する度合が高く、極めて急峻なピークを持つヒストグラムとなっている。
【０１１３】
上述のフィルタリング処理の箇所で説明したように、フィルタリング処理においては、各画素値の位置を中心とする画素値のブロックの平均値と、各画素値との差分の大きさが指定された圧縮率に応じて決まる所定値未満であれば各画素値をブロックの平均値に書き換え、その差分の大きさが上記の所定値以上であれば各画素値を差分の大きさが上記の所定値となるように各画素値を書き換える処理（以下では、フィルタリング処理と呼ぶ）が行われるので、画像データは、隣接する数値間の相関が強いデータに変換される。このため、フィルタリング処理のデータは、図１４のヒストグラムのようにきわめて急峻なピークを持つヒストグラムで表されるデータ分布を示すようになる。
【０１１４】
以下では、上位サブプレーンＤ１Ｈと下位サブプレーンＤ１Ｌとに分割された後のデータの処理について説明する。まず、上位サブプレーンＤ１Ｈに対する処理について説明する。
【０１１５】
図１２の右側に示されたヒストグラムにおいて画素の出現頻度がほとんどゼロに近いことからわかるように、上位サブプレーンＤ１Ｈ中の数値は、ゼロに近い値（１６進数表示での「００」や「０１」や「ＦＦ」）の連続が多いことが予想される。このため、上位サブプレーンＤ１Ｈに圧縮を施すには、同一の数値の連続を符号化することで圧縮を行うランレングス符号化が有効であり、上位サブプレーンＤ１Ｈは、図３に示すＨプレーン圧縮部５５０の構成要素の１つであるランレングス符号化部５５１に入力される。
【０１１６】
本実施形態では、処理の都合上、ランレングス符号化部５５１で、上位サブプレーンＤ１Ｈを構成する連続した４ビットの数値が２つで１つの８ビットの数値として取り扱われ、１６進数表示で値「００」から値「ＦＦ」までの数値の連続に対して以下の符号化処理が適用される。
【０１１７】
この符号化処理では、複数の８ビットの数値のうちの特定の数値についてのみ符号化処理が行なわれる。このため、このランレングス符号化部５５１では、受け取ったデータの中から、符号化処理を行なう数値（ここでは、この数値を「圧縮対象数値」と称する）と、その圧縮対象数値の連続数が検出される。
【０１１８】
本実施形態では、一例として、「０１」、「ＦＦ」および「００」の３つの数値を圧縮対象数値としている。
【０１１９】
図１５は、図３に示すランレングス符号化部５５１での符号化の説明図である。
【０１２０】
図１５の上のラインは、上位サブプレーンＤ１Ｈを構成するデータ、下のラインは、ランレングス符号化部５５１での符号化処理を行なった後のデータである。
【０１２１】
ここでは、図１５の上のラインに示すように、ランレングス符号化部５５１からは、
「０６  ０２  ０２  ０２  ０１  ０１  ０１  ０１  ０４  ０５  ００  …  」
なるデータが入力されたものとする。このとき、図３のランレングス符号化部５５１では、先頭の「０６」は圧縮対象数値ではなく、次に続く「０２  ０２  ０２」も圧縮対象数値ではなく、次に、圧縮対象数値である「０１」が４つ連続していること、次に、圧縮対象数値ではない「０４」、「０５」を間に置いて、圧縮対象数値である「００」が３２７６７個連続していることが検出される。
【０１２２】
図１６は、ランレングス符号化部における、圧縮対象数値を対象にした符号化のアルゴリズムを示す図である。
【０１２３】
この図１６中、Ｚは同一の圧縮対象数値の連続数、例えば図１５の上のラインの「０１」についてはＺ＝４、「００」についてはＺ＝３２７６７である。
【０１２４】
また、図１６中、「ＹＹ」は、１６進２桁で表わされた圧縮対象数値自体を表わしている。その「ＹＹ」に続く、「０」又は「１」は１ビットで表現された「０」又は「１」であり、さらにそれに続く「ＸＸＸ  ＸＸＸＸ…」は、１つの「Ｘ」が１ビットを表わしており、この「ＸＸＸ  ＸＸＸＸ…」でＺの値を表現している。
【０１２５】
すなわち、図１６は、圧縮対象数値「ＹＹ」がＺ＜１２８連続するときは、１バイト目で圧縮対象数値「ＹＹ」を表現し、それに続く１バイトで、先頭ビットが「０」、それに続く７ビットでＺの値を表現すること、また、圧縮対象数値「ＹＹ」がＺ≧１２８連続するときは、１バイト目で圧縮対象数値「ＹＹ」を表現し、それに続く２バイト（１６ビット）のうちの先頭の１ビットを「１」とすることで２バイトに跨って表現されていることを表現し、それに続く１５ビットで、Ｚの値を表現することを意味している。
【０１２６】
この図１６に示す規則に従って図１５に示す符号化の例について説明する。
【０１２７】
図３のプレーン分割部５３０から入力されてきた上位サブプレーンＤ１Ｈのデータ（上のライン）を構成する先頭の数値「０６」は圧縮対象数値ではないため、その「０６」のまま出力される。また、それに続く「０２  ０２  ０２」も、「０２」は圧縮対象数値ではなく、これら３つの「０２」もそのまま出力される。次に、圧縮対象数値である「０１」が４個連続するため、「０１  ０４」に符号化される。次の「０４」及び「０５」は圧縮対象数値ではないため、そのまま「０４  ０５」が出力される。
【０１２８】
次に「００」が３２７６７個連続しているため、「００」を置き、次の１６ビットのうちの先頭の１ビットを「１」とし、次いで１５ビットで３２７６７−１２８＝３２６３９を表現することにより、「００  ＦＦ  ７Ｆ」の３バイトで「００」が３２７６７個連続していることを表現する。
【０１２９】
図１７は、図３のランレングス符号化部５５１における、連続数に応じた符号化処理の例を示す図である。
・「００」が１２７個連続するときは、２バイトを用いて「００  ７Ｆ」に符号化され、
・「００」が３２７６７個連続するときは、３バイトを用いて「００  ＦＦ  ７Ｅ」に符号化され、
・「００」が３２８９５個連続するときは、３バイトを用いて「００  ＦＦ  ＦＦ」に符号化され、
・  「００」が１２８個連続するときは、３バイトを用いて「００  ８０  ００」に符号化され、
・  「０１」が１２９個連続するときは、３バイトを用いて「０１  ８０  ０１」に符号化され、
・「ＦＦ」が４０９６個連続するときは、３バイトを用いて「ＦＦ  ８Ｆ  ８０」に符号化される。
【０１３０】
図３に示すランレングス符号化部５５１では、上記のような符号化処理が行なわれる。
【０１３１】
本実施形態によるランレングス符号化部５５１によれば、最大圧縮率は、３／３２８９５＝１／１０，９６５にまで向上する。また、このランレングス符号化部５５１が符号化処理の対象としている上位サブプレーンＤ１Ｈのデータは、図１２のヒストグラムで説明したように、４ビットの数値のほとんどが、データ値「１６」を表現した数値「０」であり、その４ビットの数値から作られる８ビットの数値も、多くが、１６進数表示で数値「００」となる。このためランレングス符号化部５５１における符号化処理によって大幅なデータ圧縮が期待される。
【０１３２】
図３のランレングス符号化部５５１で上記の符号化処理の行なわれた後のデータは、次に図３のＨプレーン圧縮部５５０を構成するデータスキャニング部５５２とハフマン符号化部５５３に入力される。
【０１３３】
このデータスキャニング部５５２では、先ず、ランレングス符号化部５５１から出力されたデータの全体がスキャニングされてデータ値の出現頻度が求められる。
【０１３４】
図１８は、データスキャニング部５５２によるスキャニング結果の例を示す図である。
【０１３５】
ここでは、「Ａ１」の出現頻度が最も強く、以下順に、「Ａ２」、「Ａ３」、「Ａ４」、…の順であるとする。尚、これら「Ａ１」、「Ａ２」等は数値を直接表わしている訳ではなく、数値を表わす符号である。すなわち、「Ａ１」は例えば数値「００」、「Ａ２」は数値「ＦＦ」等である。また、ここでは、簡単のため、図３のランレングス符号化部５５１から送られてくるデータは全てのデータ値が「Ａ１」〜「Ａ１６」の１６個の数値のうちのいずれかの数値であるものとする。そして、このような１６個の数値それぞれに対して、データスキャニング部５５２では、出現頻度に応じた符号が割り当てられてハフマンテーブルが作成される。即ち、出現頻度の最も高い「Ａ１」には、２ビットで表わされた符号「００」が割り当てられ、次の「Ａ２」には、やはり２ビットで表わされた符号「０１」が割り当てられ、次の「Ａ３」、さらに次の「Ａ４」には、３ビットで表わされる、それぞれ、符号「１００」、符号「１０１」が割り当てられ、次の「Ａ５」〜「Ａ８」には、５ビットで表わされる各符号が割り当てられ、以下同様に、出現頻度が低い数値ほど多くのビット数で表わされた符号が割り当てられる。
【０１３６】
図１９は、ハフマンテーブルの一例を示す図である。
【０１３７】
このハフマンテーブルは、図１８と一致させてあり、出現頻度が高い数値ほど短かいビット数で表わされた符号に書き換えられるように並べられた、符号化前（書き換え前）の数値と符号化後（書き換え後）の数値との対応テーブルである。
【０１３８】
図３のＨプレーン圧縮部５５０を構成するハフマン符号化部５５３では、このようなハフマンテーブルに従ってデータの数値が符号化され、その結果、多くの数値が短かいビット数の符号に書き換えられることとなってデータ圧縮が実現される。
【０１３９】
図２０は、ハフマンテーブルに用意される符号列の具体例を示す図である。
【０１４０】
図２０に示す符号列では、各符号列中の「，」よりも右側の数値がビット長を意味しており、その「，」から左側に並ぶそのビット長分の２進符号が実際の符号を表わしている。例えば、図２０の左上の第１番目の符号は「１１」の２ビット、次の２番目の符号は「０１１」の３ビット、その次の３番目の符号は「０１０」の３ビット、さらにその次の４番目の符号は「１０１０」の４ビットである。このような符号列により、出現頻度が高い数値ほど短かいビット数で表わされた符号に書き換えられる。
【０１４１】
以上の図１５〜図２０で説明した処理により、図３のＨプレーン圧縮部５５０に入力される上位サブプレーンＤ１Ｈについては、ランレングス符号化部５５１による符号化とハフマン符号化部５５３による符号化が施されることにより高い圧縮率で圧縮されて上位圧縮データＤ２Ｈとなる。
【０１４２】
次に、下位サブプレーンＤ１Ｌに対する処理について説明する。図３のＬプレーン圧縮部５４０のハフマン符号化部５４１では、Ｈプレーン圧縮部５５０のランレングス符号化部５５１と同様に、４ビットの数値の２つ分が１つの８ビットの数値とみなされて処理される。また、このハフマン符号化部５４１による符号化処理では、固定的なハフマンテーブルが用いられる点を除いて、Ｈプレーン圧縮部５５０のハフマン符号化部５５３による符号化処理と同様な処理が実行される。この結果、下位サブプレーンＤ１Ｌは下位圧縮データＤ２Ｌとなる。
【０１４３】
なお、上述したように、ユーザから、高速モードが指示された場合には、上記のハフマン符号化部５４１によるハフマン符号化処理は省略されて、Ｌプレーン圧縮部５４０から下位サブプレーンＤ１Ｌがそのまま出力されることになる。
【０１４４】
以上が、本実施形態の説明である。
【０１４５】
本実施形態では、８ビットの数値の連続からなる画像データを可逆圧縮するものであるが、本発明は、圧縮対象となるデータは、複数のビット数の数値で表された数値の連続からなるデータであれば、処理対象は、８ビットの数値の連続からなるデータに限定されない。例えば、データ中の数値のビット数（ビット幅）が８ビットではなく、１２ビットや１６ビットのデータであってもよい。
【図面の簡単な説明】
【０１４６】
【図１】データ圧縮技術が適用されたプリントシステムの一例を示す図である。
【図２】プリントシステムにおけるデータ処理の流れを示す図である。
【図３】本発明のデータ圧縮装置の一実施形態に相当する画像圧縮装置を示すブロック構成図である。
【図４】図１に示すホストコントローラのハードウェア構成図である。
【図５】本発明のデータ圧縮プログラムの一実施形態に相当する画像圧縮処理プログラムの模式構成図である。
【図６】図３のデータ圧縮装置に入力される入力画像ファイル中の画像データの構造が示す図である。
【図７】図３の差分符号化部に入力されるデータの構造を示す図である。
【図８】図７のデータに対して２次元差分符号化処理が施された後のデータの構造を示す図である。
【図９】図３のデータ圧縮装置を構成する差分符号化部における２次元差分符号化処理を例示して示す図である。
【図１０】ＣＴの画像データの例を示す図である。
【図１１】ＣＴの画像データに対する２次元差分符号化およびオフセットの効果を示す図である。
【図１２】プレーン分割部によるデータ分割の効果を説明する図である。
【図１３】所定の画像について、フィルタリング処理を経ずに求められたヒストグラムを表した図である。
【図１４】図１３の画像と同じ画像について、フィルタリング処理を経てから求められたヒストグラムを表した図である。
【図１５】図３に示すランレングス符号化部での符号化の説明図である。
【図１６】ランレングス符号化部における、圧縮対象数値を対象にした符号化のアルゴリズムを示す図である。
【図１７】図３のランレングス符号化部における、連続数に応じた符号化処理の例を示す図である。
【図１８】データスキャニング部によるスキャニング結果の例を示す図である。
【図１９】ハフマンテーブルの一例を示す図である。
【図２０】ハフマンテーブルに用意される符号列の具体例を示す図である。
【符号の説明】
【０１４７】
１１    画像のデータ
１２Ａ，１２Ｂ，１３Ａ，１３Ｂ    ビットマップデータ
１４，１５    圧縮データ
１００    ホストコントローラ
１４０    ＣＤＲＯＭ
１５０    汎用インターフェースケーブル
２００    インターフェース機器
２５０    専用インターフェースケーブル
３００    プリンタ
５００    画像圧縮装置
５１０    差分符号化部
５１５    フィルタリング処理部
５２０    オフセット部
５３０    プレーン分割部
５４０    Ｌプレーン圧縮部
５４１    ハフマン符号化部
５４２    モード切換部
５５０    Ｈプレーン圧縮部
５５１    ランレングス符号化部
５５２    データスキャニング部
５５３    ハフマン符号化部
６００    画像圧縮プログラム
６１０    差分符号化部
６１５    フィルタリング処理部
６２０    オフセット部
６３０    プレーン分割部
６４０    Ｌプレーン圧縮部
６５０    Ｈプレーン圧縮部
【図１】
2008035066.tif 000007
【図２】
2008035066.tif 000008
【図３】
2008035066.tif 000009
【図４】
2008035066.tif 000010
【図５】
2008035066.tif 000011
【図６】
2008035066.tif 000012
【図７】
2008035066.tif 000013
【図８】
2008035066.tif 000014
【図９】
2008035066.tif 000015
【図１０】
2008035066.tif 000016
【図１１】
2008035066.tif 000017
【図１２】
2008035066.tif 000018
【図１３】
2008035066.tif 000019
【図１４】
2008035066.tif 000020
【図１５】
2008035066.tif 000021
【図１６】
2008035066.tif 000022
【図１７】
2008035066.tif 000023
【図１８】
2008035066.tif 000024
【図１９】
2008035066.tif 000025
【図２０】
2008035066.tif 000026