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