(57)【要約】【課題】本発明は、画像データにデータ圧縮処理を施す画像圧縮装置、およびコンピュータ等の情報処理装置を画像圧縮装置として動作させる画像圧縮プログラムに関し、画質の維持と圧縮率の向上との双方を高度に両立させる。【解決手段】画像データに非可逆圧縮処理を施すことにより第１の圧縮データを生成する第１の画像圧縮部５１０と、第１の画像圧縮部５１０で得られた第１の圧縮データを解凍することにより解凍データを生成する画像解凍部５２０と、第１の画像圧縮部５１０による非可逆圧縮処理前の画像データと画像解凍部５２０により得られた解凍データとの差分演算により差分データを求める差分演算部５３０と、差分演算部５３０で得られた差分データに非可逆圧縮処理を施すことにより第２の圧縮データを生成する第２の画像圧縮部５４０とを備えた。【選択図】        図３
2006060490.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    （ｊ＝１〜ｍ）
と表現される。
【００７４】
この差分演算を具体的に説明する。
【００７５】
図９は、図７の第２の画像圧縮部５４０を構成する差分符号化部５４１における差分符号化処理を例示して示す図である。
【００７６】
ここでは、図８に示す副走査方向に並ぶある縦一列の画素値が、図９の「画像データ」
の欄に示すように、
「１２  ０１  ０２  ＦＦ  ６４  …  ４０  ４０  ３Ｆ  …」
であったとする。尚、ここでは、各画素値は、１６進２桁（１バイト＝８ビット）で表現されている。ここでは「ライン」は主走査方向に並ぶ画素を指している。
【００７７】
先ず、１ライン目の画素値「１２」については、そのまま出力する。
【００７８】
次に、２ライン目の画素値「０１」から１ライン目の画素値「１２」を引き算し、その結果を出力する。ここで、「０１」から「１２」を引き算した結果は負の数となり、９ビットで「１ＥＦ」と表わされるが、ＭＳＢの１ビットである「１」は省略し、下位８ビットである「ＥＦ」のみを出力する。
【００７９】
次に、３ライン目の画素値「０２」から２ライン目の画素値「０１」を引き算し、その結果の値「０１」を出力する。
【００８０】
次に、４ライン目の画素値「ＦＦ」から３ライン目の画素値「０２」を引き算し、その結果の値「ＦＤ」を出力する。
【００８１】
次に、５ライン目の画素値「６４」から４ライン目の画素値「ＦＦ」を引き算し、その結果の値から、ＭＳＢの１ビットである「１」を省略し、下位８ビットである「６５」を出力する。
【００８２】
以下、これと同じ演算を繰り返すことにより、図９の「差分エンコード（下位８ビット）」の欄に表わされている。
【００８３】
「（１２）  ＥＦ  ０１  ＦＤ  ６５  …  Ｃ０  ００  ＦＦ  …」
が出力される。
【００８４】
図１に示すインターフェース機器２００では、この差分符号化されたデータを復号化するにあたり、図９の右側に示す演算が行なわれる。
【００８５】
先ず１ライン目の画素値は「１２」のそのままである。
【００８６】
２ライン目の画素値は、差分値「ＥＦ」に１ライン目の画素値「１２」を足し算した結果のうちの下位８ビットで表わされる「０１」である。
【００８７】
３ライン目の画素値は、差分値「０１」に、上記で求めた２ライン目の画素値「０１」を足し算することにより求められる「０２」である。
【００８８】
４ライン目の画素値は、差分値「ＦＤ」に、上記で求めた３ライン目の画素値「０２」を足し算することにより求められる「ＦＦ」である。
【００８９】
５ライン目の画素値は差分値「６５」に、上記で求めた４ライン目の画素値「ＦＦ」を足し算した結果のうちの下位８ビットで表わされる「６４」である。
【００９０】
以下これと同様の演算を繰り返すことにより、差分符号化を行なう前のデータと同一のデータに復号化される。
【００９１】
図１０は、差分符号化による作用説明図である。
【００９２】
図１０（Ａ）は、画像の概念を表わしており、ここでは、図の縦方向を主走査方向、横方向を副走査方向とし、副走査方向（横方向）に引いた矢印Ａ上の各画素の画素値に着目している。
【００９３】
この画像上には、主走査方向に延びる画素値「６３」の濃度を持つ直線Ｌ１と、画素値「ＦＦ」の濃度を持つ直線Ｌ２が描かれており、その右側には、ＣＴ画像があて嵌められるＣＴ画像領域が存在する。ＣＴ画像があて嵌められる領域は、画素値「００」で表わされている。
【００９４】
図１０（Ａ）の矢印Ａ上に並ぶ画素の画素値は、図１０（Ｂ）示すように、左側から順に、最初は「０１」が続き直線Ｌ１上では「６３」が続き、再度「０１」が続き、直線Ｌ２上では「ＦＦ」となり、再度「０１」に戻り、ＣＴ画像があて嵌められる領域では「００」が続き、ＣＴ画像領域が終わるともう一度「０１」が続く。ここで、画素値「０１」は、何も描かれていない領域（用紙の地の領域）であることを表わしている。
【００９５】
図１０（Ｂ）に示す元データに対し、差分演算を行なうと図１０（Ｃ）に示す差分後データとなり、「００」の出現確率が大きく増加する。図９を参照して説明した、図７の差分符号化部５４１では、ＭＳＢの１ビット（符号ビット）は省略するため、その差分符号化部５４１から出力されるデータは、図１０（Ｄ）のようになる。この場合であっても、図９を参照して説明したように、最初の画素値（図８の場合の１ライン目の画素値「１２」）をそのまま伝えることによって、元データを順次復元することができる。
【００９６】
図７に示す第２の画像圧縮部５４０の量子化処理部５４２では、差分符号化部５４１で以上のようにして求めた差分後データについて量子化処理が行なわれる。この量子化処理では、差分後データを構成する各画素の値が量子化係数で割り算されて商が求められ余りは捨て去られる。すなわち、例えばこの量子化係数として８を使用するとき、−７〜＋７は０、＋８〜＋１５は１、−７〜−１５は−１、……となる。このような量子化処理を行なうと、同一の値の出現確率がさらに増え、その後の画像圧縮処理の圧縮率をさらに向上させることができる。
【００９７】
量子化処理部５４２で量子化処理の行なわれた後の量子化後データは次に図７に示す第２の画像圧縮部５４０を構成するランレングス符号化部５４３に入力される。
【００９８】
ランレングス符号化部５４３では、量子化処理部５４２から受け取ったデータを構成する複数の数値のうちの特定の数値についてのみ符号化処理が行なわれる。このため、このランレングス符号化部５４３では、受け取ったデータの中から、符号化処理を行なう数値（ここでは、この数値を「圧縮対象数値」と称する）と、その圧縮対象数値の連続数が検出される。
【００９９】
本実施形態では、一例として、「０１」、「ＦＦ」および「００」の３つの数値を圧縮対象数値としている。
【０１００】
図１１は、図７に示すランレングス符号化部５４３での符号化の説明図である。図１１の上のラインは、量子化処理部５４２から受け取ったデータ、下のラインは、ランレングス符号化部５４３での符号化処理を行なった後のデータである。
【０１０１】
ここでは、図１１の上のラインに示すように、量子化処理部５４２からは、
「０６  ０２  ０２  ０２  ０１  ０１  ０１  ０１  ０４  ０５  ００  …  」
なるデータが入力されたものとする。このとき、図７のランレングス符号化部５４３では、先頭の「０６」は圧縮対象数値ではなく、次に続く「０２  ０２  ０２」も圧縮対象数値ではなく、次に、圧縮対象数値である「０１」が４つ連続していること、次に、圧縮対象数値ではない「０４」、「０５」を間に置いて、圧縮対象数値である「００」が３２７６７個連続していることが検出される。
【０１０２】
図１２は、ランレングス符号化部における、圧縮対象数値を対象にした符号化のアルゴリズムを示す図である。
【０１０３】
この図１２中、Ｚは同一の圧縮対象数値の連続数、例えば図１１の上のラインの「０１」についてはＺ＝４、「００」についてはＺ＝３２７６７である。
【０１０４】
また、図１２中、「ＹＹ」は、１６進２桁で表わされた圧縮対象数値自体を表わしている。その「ＹＹ」に続く、「０」又は「１」は１ビットで表現された「０」又は「１」であり、さらにそれに続く「画像圧縮装置…」は、１つの「Ｘ」が１ビットを表わしており、この「画像圧縮装置…」でＺの値を表現している。
【０１０５】
すなわち、図１２は、圧縮対象数値「ＹＹ」がＺ＜１２８連続するときは、１バイト目で圧縮対象数値「ＹＹ」を表現し、それに続く１バイトで、先頭ビットが「０」、それに続く７ビットでＺの値を表現すること、また、圧縮対象数値「ＹＹ」がＺ≧１２８連続するときは、１バイト目で圧縮対象数値「ＹＹ」を表現し、それに続く２バイト（１６ビット）のうちの先頭の１ビットを「１」とすることで２バイトに跨って表現されていることを表現し、それに続く１５ビットで、Ｚの値を表現することを意味している。
【０１０６】
この図１２に示す規則に従って図１１に示す符号化の例について説明する。
【０１０７】
図７の量子化処理部５４２から入力されてきたデータ（上のライン）を構成する先頭の数値「０６」は圧縮対象数値ではないため、その「０６」のまま出力される。また、それに続く「０２  ０２  ０２」も、「０２」は圧縮対象数値ではなく、これら３つの「０２」もそのまま出力される。次に、圧縮対象数値である「０１」が４個連続するため、「０１  ０４」に符号化される。次の「０４」及び「０５」は圧縮対象数値ではないため、そのまま「０４  ０５」が出力される。
【０１０８】
次に「００」が３２７６７個連続しているため、「００」を置き、次の１バイトのうちの先頭の１ビットを「１」とし、次いで１５ビットで３２７６７−１２８を表現することにより、「００  ＦＦ  ７Ｆ」の３バイトで「００」が３２７６７個連続していることを表現する。すなわち、連続数１２８は、最初のビット「１」を除き、「００  ００」と表現される。
【０１０９】
図１３は、図７のランレングス符号化部５４３における、連続数に応じた符号化処理の例を示す図である。
・「００」が１２７個連続するときは、２バイトを用いて「００  ７Ｆ」に符号化され、
・「００」が３２７６７個連続するときは、３バイトを用いて「００  ＦＦ  ７Ｅ」に符号化され、
・「００」が３２８９５個連続するときは、３バイトを用いて「００  ＦＦ  ＦＦ」に符号化され、
・「００」が１２８個連続するときは、３バイトを用いて「００  ８０  ００」に符号化され、
・「ＦＦ」が４０９６個連続するときは、３バイトを用いて「ＦＦ  ８Ｆ  ８０」に符号化される。
【０１１０】
図７に示すランレングス符号化部５４３では、上記のような符号化処理が行なわれる。
【０１１１】
本実施形態によるランレングス符号化部５４３によれば、最大圧縮率は、３／３２８９５＝１／１０，９６５にまで向上する。
【０１１２】
図７のランレングス符号化部５４３で上記の符号化処理の行なわれた後のデータは、次に図７のハフマン符号化部５４４に入力される。
【０１１３】
ハフマン符号化部５４４では、先ず１枚の画像全体を構成する画素について画素値の出現頻度が求められる。
【０１１４】
ここでは、「Ａ１」の出現頻度が最も強く、以下順に、「Ａ２」、「Ａ３」、「Ａ４」、…の順であるとする。尚、これら「Ａ１」、「Ａ２」等は数値を直接表わしている訳ではなく、数値を表わす符号である。すなわち、「Ａ１」は例えば数値「００」、「Ａ２」は数値「ＦＦ」等である。また、ここでは、簡単のため、図４のランレングス符号化部５４３から送られてくるデータは全ての画素が「Ａ１」〜「Ａ１６」の１６個の数値のうちのいずれかの数値で表わされるものとする。
【０１１５】
図１４は、図７に示すハフマン符号化部５４４における符号化処理を例示した図である。
【０１１６】
ここでは、出現頻度の最も高い「Ａ１」は、２ビットで表わされた「００」に置き換えられ、次の「Ａ２」は、やはり２ビットで表わされた「０１」に置き換えられ、次の「Ａ３」、さらに次の「Ａ４」は、３ビットで表わされる、それぞれ、「１００」、「１０１」に置き換えられ、次の「Ａ５」〜「Ａ８」は、５ビットで表わされる各数値に置き換えられ、以下同様に、出現頻度が低い数値ほど多くのビット数で表わされた数値に置き換えられる。
【０１１７】
図１５は、ハフマンテーブルの一例を示す図である。
【０１１８】
このハフマンテーブルは、図１４と一致させてあり、出現頻度が高いほど短かいビット数で表わされた数値に置き換えられるように並べた、符号化前（置き換え前）の数値と符号化後（置き換え後）の数値との対応テーブルである。
【０１１９】
図１に示すインターフェース機器２００では、このハフマンテーブルを参照することにより、ハフマン符号化に対する復号化が行なわれる。
【０１２０】
第２の画像圧縮部５４０では以上の画像圧縮処理が行なわれ、図３に示す画像データ（Ｂ）のヘッダ部に、第２の画像圧縮部５４０で得た圧縮データ自体や、ハフマン符号化部５４４（図７参照）で用いたハフマンテーブル（図１５参照）や、さらに量子化処理部５４２（図７参照）で用いた量子化係数など、データ伸長処理に必要な情報が書き込まれる。
【０１２１】
図３に示す画像データファイル（Ｂ）のヘッダには、さらに、第１の画像圧縮部５１０でのＪＰＥＧ圧縮処理で用いられた量子化テーブル（図６参照）も書き込まれ、以上のようにしてデータ伸長処理に必要な情報が書き込まれたヘッダと、第１の画像圧縮部５１０で得たＪＰＥＧ圧縮データとが組となって画像データファイル（Ｂ）を構成し、図１に示すインターフェース機器２００に送信される。インターフェース機器２００は、送信されてきた画像データファイル（Ｂ）のヘッダを参照しながらＪＰＥＧ圧縮データを解凍し、元々の入力画像ファイル（図３参照）中の画像データに十分に近似した画像データが再生される。
【０１２２】
本実施形態では、以上説明した、図３に示す画像圧縮装置５００での、第１の画像圧縮部５１０、画像解凍部５２０、差分演算部５３０、および第２の画像圧縮部５４０での画像圧縮処理は、図３に示す画像圧縮装置５００の第３の画像圧縮部５５０での可逆圧縮処理の結果、要求圧縮率を満足しなかった場合のみ実行される。そこで、次に、第３の画像圧縮部５５０での可逆圧縮処理について説明する。
【０１２３】
図１６は、第３の画像圧縮部の構成を示すブロック図である。
【０１２４】
この第３の画像圧縮部５５０は、差分符号化部５５１、ランレングス符号化部５５２、およびハフマン符号化部５５３から構成されている。
【０１２５】
この図１６に示す第３の画像圧縮部５５０を、図７に示す画像圧縮部５４０と比べると図１６に示す第３の画像圧縮部５５０は、図７に示す第２の画像圧縮部５４０の量子化処理部５４２を省き、差分符号化部５４１で得られた差分後データを直接にランレングス符号化部５４３に入力した構成と同一の構成である。すなわち、図１６に示す第３の画像圧縮部５５０の差分符号化部５５１、ランレングス符号化部５５２、およびハフマン符号化部５５３は、図７に示す第２の画像圧縮部５４０における、差分符号化部５４１、ランレングス符号化部５４３、およびハフマン符号化部５４４の各処理とそれぞれ同一である。したがって、ここでの重複説明は省略する。
【０１２６】
図３に示す画像圧縮装置５００の構成する圧縮率判定部５６０では、図１６に示す構成の第３の画像圧縮部５５０で８ラインずつについて得られた圧縮データが各８ラインごとに要求圧縮率を満たすか否かが判定され、その要求圧縮率を満たさない場合には、その８ライン分の画像データについて、前述した、第１の画像圧縮部５１０、画像解凍部５２０、差分演算部５３０、および第２の画像圧縮部５４０における圧縮処理が行なわれる。
【０１２７】
圧縮率判定部５６０で要求圧縮率を満たすと判定された８ラインについては、第３の画像圧縮部５５０で得られた圧縮データに、その圧縮データを解凍するに必要な情報、例えば図１６に示すハフマン符号化部で用いたハフマンテーブル等が書き込まれるヘッダが付加された画像データファイル（Ａ）が生成されて図１に示すインターフェース機器２００に送信される。インターフェース機器では送信されてきた画像データファイル（Ａ）のヘッダを参照しながらその画像データファイル（Ａ）の中の圧縮データを解凍し、元々の入力画像ファイル（図３参照）中の画像データと同一の画像データが再生される。
【０１２８】
次に図３に示す第１の画像圧縮部５１０、画像解凍部５２０、差分演算部５３０、および第２の画像圧縮部５４０における処理例について説明する。
【０１２９】
図１７は８×８画素の画像の一例を示す図、図１８は図１７に示す８×８画素の各画素値を示す図である。
【０１３０】
ここでは、白は１６進数でＦＦ，黒は１６進数で００、その途中の数値は、その数値に応じた灰色を示している。
【０１３１】
図１９は、図１８の画素値を持つ８×８画素の画像についてＪＰＥＧ圧縮処理を行ない、さらにそのＪＰＥＧ圧縮処理後のデータを解凍して得た８×８画素の画像の各画素値を表わす図である。
【０１３２】
図２０は、図１８の８×８画素の画像値と図１９の８×８画素の画像値について対応する画素ごとに差分演算を行なって得た差分画像の画素値を示す図、図２１は、図２０の８×８画素の差分画像の画素値を量子化係数８で割り算して得た後の量子化データを示す図、図２２は、図１９に示すＪＰＥＧ解凍データを図２１に示す量子化データで補正して得た画像データを示す図である。この補正では、図１９に示すＪＰＥＧ解凍データと図２に示す量子化データが対応する画素ごとに加算される。
【０１３３】
但し、図２０において、１０進数での０〜１２７は１６進数の００〜７Ｆで表現し、１０進数での−１〜−１２７は１６進数のＦＦ〜８１で表現している。１０進数で−１２７未満および＋１２８以上はそれぞれ−１２７および＋１２７にクリップしてある。
【０１３４】
図２３は、図１９のＪＰＥＧ解凍画像の、図１８に示すオリジナルの画像に対する誤差分布を示す図、図２４は、図２２に示すＪＰＥＧ解凍画像を図２１の量子化データで補正した画像の、図１８に示すオリジナルの画像に対する誤差分布を示す図である。
【０１３５】
図２３と図２４とを比べると明らかなとおり、単にＪＰＥＧ圧縮および解凍を行なった画像よりも本実施形態の解凍画像の方が誤差が大幅に低減され画質が向上していることが分かる。
【０１３６】
ここで、図２１は、上述のとおり量子化係数８で割り算して求めた量子化データであり、この場合３値以上の数値が表われているが、この量子化係数としてさらに大きな値（例えば量子化係数１６）を採用すると２値のみ表われる量子化データを得ることができる。量子化係数として大きな値を採用するとオリジナルの画像からの誤差は増えるが、量子化データに２値のみ表われる量子化係数を採用すると、図７に示す量子化処理部５４２とランレングス符号化部５４３との間に、以下に説明する、２値符号化処理部を配置することにより、第２の画像圧縮部５４０でのデータの圧縮率をさらに向上させることができる。
【０１３７】
すなわち、その２値符号化処理部では、その量子化データを構成する２値がどのような値（例えば１６進数で「０１」と「ＦＦ」など）であっても、その２値のうちの一方の値を１６進数で「００」もう一方の値を１６進数で「８０」に変換し、その後、この２値符号化処理部では、先ずは、図９に示す差分符号化処理と同じ差分符号化処理が再度実行される。
【０１３８】
図２５は、００と８０からなる２値データのときの差分符号化処理を示す図である。
【０１３９】
ここでは一列に並ぶ画素値が図１０の「２値画像データ」欄に示すように、
「００  ８０  ８０  ００  ００  ８０  ００  ００  ８０  …」
であったとする。図９の場合と同様、ここでも、各画像値は、１６進数２桁（１バイト＝８ビット）で表現されている。先ず、１ライン目の画素値「００」については、そのまま出力する。
【０１４０】
次に、２ライン目の画素値「８０」から１ライン目の画素値「００」を引き算し、その結果の値「８０」を出力する。
【０１４１】
次に、３ライン目の画素値「８０」から２ライン目の画素値「８０」を引き算し、その結果の値「００」を出力する。
【０１４２】
次に、４ライン目の画素値「００」から３ライン目の画素値「８０」を引き算し、その結果の値を出力する。ここで、「００」から「８０」を引き算した結果は負の数となり、９ビットで「１８０」と表わされるが、ＭＳＢの１ビットである「１」は省略し、下位ビット８である「８０」のみ出力する。
【０１４３】
次に、５ライン目の画素値「００」から４ライン目の画素値「００」を引き算し、その結果の「００」を出力する。
【０１４４】
以下、これと同じ演算を繰り返すことにより、図９の「差分エンコード」の欄に表わされている、
「（００）  ８０  ００  ８０  ００  ８０  ８０  ００  ８０…」
が出力される。
【０１４５】
図１に示すインターフェース機器２００では、この差分符号化されたデータを復号化するにあたり、図１０の右側に示す演算が行なわれる。
【０１４６】
この復号化演算は、取り扱う数値が「００」と「８０」との２値であることを除き、図９を参照して説明した復号化演算と同一であり、ここでは重複説明は省略する。
【０１４７】
尚、上述したように２値符号化処理部では、２値データの場合、その２値データを構成する２値がどのような値（例えば「０１」と「ＦＦ」など）であっても「００」と「８０」とに変換したが、図１に示すホストコントローラ１００からインターフェース機器２００に送信される圧縮情報には、どの値（例えば「０１」と「ＦＦ」）をそれぞれ「００」と「８０」に割り当てたか（例えば「０１」を「００」に割り当て、「ＦＦ」を「８０」に割り当てたなど）という情報を含ませておき、インターフェース機器では、図２５の「デコード結果」の欄に示す、「００」と「８０」とからなる２値データに復号化した後、それら「００」と「８０」がそれら「００」と「８０」に割り当てられたもともとの値に戻される（例えば「００」が「０１」に戻され、「８０」が「ＦＦ」に戻される）。
【０１４８】
図２６は、２値符号化処理の説明図である。
【０１４９】
この２値符号化処理部では、上記のようにして２値データについて差分符号化処理が行なわれた後の、「００」と「８０」とからなる２値の画像データについて２値符号化処理が行なわれる。
【０１５０】
上記のようにして差分符号化された画像データが、図２６の「差分符号化された画像データ」の欄に示すように、
「００  ００  ００  ００  ００  ８０  ８０  ８０  …」
であったとする。
【０１５１】
ここでは、これら「００」と「８０」の２種類の数値が１ビットで識別される。ここでは、「００」が１ビットで「０」、「８０」が１ビットで「１」で識別され、図２６の「差分符号化された画像データ」の欄に示す、
「００  ００  ００  ００  ００  ８０  ８０  ８０  …」
の数値列が、図１１の「２値符号化されたビットストリーム」の欄に示すように、
「０  ０  ０  ０  ０  １  １  １  …」
に変換され、さらにこのビットストリームを８ビットずつまとめて、「バイトパッキング化されたバイトストリーム」の欄に示すように、
「０７  Ｃ０  ０３  ８１  …」
の数値列に変換される。この変換後の数値列は、図７のランレングス符号化部５４３に入力される。
【０１５２】
２値データの場合、上記の２値符号化処理を行なうことにより、データ量を大幅に削減することができる。
【図面の簡単な説明】
【０１５３】
【図１】データ圧縮技術が適用されたプリントシステムの一例を示す図である。
【図２】プリントシステムにおけるデータ処理の流れを示す図である。
【図３】本発明の画像圧縮装置の一実施形態を示すブロック構成図である。
【図４】図１に示すホストコントローラのハードウェア構成図である。
【図５】本発明の画像圧縮処理プログラムの模式構成図である。
【図６】図３に示す画像圧縮装置の第１の画像圧縮部におけるＪＰＥＧ圧縮処理を示す説明図である。
【図７】図３に示す画像圧縮装置の第２の画像圧縮部の構成を示すブロック図である。
【図８】図３の画像圧縮装置に入力される入力画像ファイル中の画像データのデータ構造および差分符号化の概念を示す図である。
【図９】図３の画像圧縮装置を構成する差分符号化部における差分符号化処理を例示して示す図である。
【図１０】差分符号化による作用説明図である。
【図１１】図３に示すランレングス符号化部での符号化の説明図である。
【図１２】ランレングス符号化部における、圧縮対象数値を対象にした符号化のアルゴリズムを示す図である。
【図１３】図７のランレングス符号化部における、連続数に応じた符号化処理の例を示す図である。
【図１４】図７に示すハフマン符号化部における符号化処理を例示した図である。
【図１５】ハフマンテーブルの一例を示す図である。
【図１６】第３の画像圧縮部の構成を示すブロック図である。
【図１７】８×８画素の画像の一例を示す図である。
【図１８】図１７に示す８×８画素の各画素値を示す図である。
【図１９】図１８の画素値を持つ８×８画素の画像についてＪＰＥＧ圧縮処理を行ない、さらにそのＪＰＥＧ圧縮処理後のデータを解凍して得た８×８画素の画像の各画素値を表わす図である。
【図２０】図１８の８×８画素の画像値と図１９の８×８画素の画像値について対応する画素ごとに差分演算を行なって得た差分画像の画素値を示す図である。
【図２１】図２０の８×８画素の差分画像の各画素値を量子化係数８で割り算して得た後の量子化データを示す図である。
【図２２】図１９に示すＪＰＥＧ解凍データを図２１に示す量子化データで補正して得た画像データを示す図である。
【図２３】図１９のＪＰＥＧ解凍画像の、図１８に示すオリジナルの画像に対する誤差分布を示す図である。
【図２４】図２２に示すＪＰＥＧ解凍画像を図２１の量子化データで補正した画像の、図１８に示すオリジナルの画像に対する誤差分布を示す図である。
【図２５】００と８０からなる２値データのときの差分符号化処理を示す図である。
【図２６】２値符号化処理部における２値符号化処理の説明図である。
【符号の説明】
【０１５４】
１１    画像のデータ
１２Ａ，１２Ｂ，１３Ａ，１３Ｂ    ビットマップデータ
１４    非可逆の圧縮データ
１５    可逆の圧縮データ
１００    ホストコントローラ
１４０    ＣＤＲＯＭ
１５０    汎用インターフェースケーブル
２００    インターフェース機器
２５０    専用インターフェースケーブル
３００    プリンタ
５００    画像圧縮装置
５１０    第１の画像圧縮部
５２０    画像解凍部
５３０    差分演算部
５４０    第２の画像圧縮部
５４１    差分符号化部
５４２    量子化処理部
５４３    ランレングス符号化部
５４４    ハフマン符号化部
５５０    第３の画像圧縮部
５５１    差分符号化部
５５２    ランレングス符号化部
５５３    ハフマン符号化部
５６０    圧縮率判定部
６００    画像圧縮プログラム
６１０    第１の画像圧縮部
６２０    画像解凍部
６３０    差分演算部
６４０    第２の画像圧縮部
６５０    第３の画像圧縮部
６６０    圧縮率判定部
【図１】
2006060490.tif 000003
【図２】
2006060490.tif 000004
【図３】
2006060490.tif 000005
【図４】
2006060490.tif 000006
【図５】
2006060490.tif 000007
【図６】
2006060490.tif 000008
【図７】
2006060490.tif 000009
【図８】
2006060490.tif 000010
【図９】
2006060490.tif 000011
【図１０】
2006060490.tif 000012
【図１１】
2006060490.tif 000013
【図１２】
2006060490.tif 000014
【図１３】
2006060490.tif 000015
【図１４】
2006060490.tif 000016
【図１５】
2006060490.tif 000017
【図１６】
2006060490.tif 000018
【図１７】
2006060490.tif 000019
【図１８】
2006060490.tif 000020
【図１９】
2006060490.tif 000021
【図２０】
2006060490.tif 000022
【図２１】
2006060490.tif 000023
【図２２】
2006060490.tif 000024
【図２３】
2006060490.tif 000025
【図２４】
2006060490.tif 000026
【図２５】
2006060490.tif 000027
【図２６】
2006060490.tif 000028