(57)【要約】【課題】  本発明は、画像データ等のデータを圧縮するデータ圧縮装置等に関し、圧縮率を向上させる。【解決手段】  被圧縮データを構成する数値の連続について隣接する数値どうしの差分を求め、その差分データ中に出現する数値のうちの特定の数値「ＹＹ」のみ符号化を行なう。その符号化にあたっては、その数値「ＹＹ」の連続数ＺがＺ＜１２８であるかＺ≧１２８であるかに応じて異なるビット数で連続数Ｚを表わす符号化を行なう。その符号化により得られたデータにさらにハフマン符号化を行なう。【選択図】        図４
2005210539.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    （ｊ＝１〜ｍ）
と表現される。
【００６５】
この差分演算を具体的に説明する。
【００６６】
図８は、図４のデータ圧縮装置５００を構成する差分符号化部５１０における差分符号化処理を例示して示す図である。
【００６７】
ここでは、図７に示す副走査方向に並ぶある縦一列の画素値が、図８の「画像データ」
の欄に示すように、
「１２  ０１  ０２  ＦＦ  ６４  …  ４０  ４０  ３Ｆ  …」
であったとする。尚、ここでは、各画素値は、１６進２桁（１バイト＝８ビット）で表現されている。ここでは「ライン」は主走査方向に並ぶ画素を指している。
【００６８】
先ず、１ライン目の画素値「１２」については、そのまま出力する。
【００６９】
次に、２ライン目の画素値「０１」から１ライン目の画素値「１２」を引き算し、その結果を出力する。ここで、「０１」から「１２」を引き算した結果は負の数となり、９ビットで「１ＥＦ」と表わされるが、ＭＳＢの１ビットである「１」は省略し、下位８ビットである「ＥＦ」のみを出力する。
【００７０】
次に、３ライン目の画素値「０２」から２ライン目の画素値「０１」を引き算し、その結果の値「０１」を出力する。
【００７１】
次に、４ライン目の画素値「ＦＦ」から３ライン目の画素値「０２」を引き算し、その結果の値「ＦＤ」を出力する。
【００７２】
次に、５ライン目の画素値「６４」から４ライン目の画素値「ＦＦ」を引き算し、その結果の値から、ＭＳＢの１ビットである「１」を省略し、下位８ビットである「６５」を出力する。
【００７３】
以下、これと同じ演算を繰り返すことにより、図８の「差分エンコード（下位８ビット）」の欄に表わされている。
【００７４】
「（１２）  ＥＦ  ０１  ＦＤ  ６５  …  Ｌ０  ００  ＦＦ  …」
が出力される。
【００７５】
図１に示すインタフェース機器２００では、この差分符号化されたデータを復号化するにあたり、図８の右側に示す演算が行なわれる。
【００７６】
先ず１ライン目の画素値は「１２」のそのままである。
【００７７】
２ライン目の画素値は、差分値「ＥＦ」に１ライン目の画素値「１２」を足し算した結果のうちの下位８ビットで表わされる「０１」である。
【００７８】
３ライン目の画素値は、差分値「０１」に、上記で求めた２ライン目の画素値「０１」を足し算することにより求められる「０２」である。
【００７９】
４ライン目の画素値は、差分値「ＦＤ」に、上記で求めた３ライン目の画素値「０２」を足し算することにより求められる「ＦＦ」である。
【００８０】
５ライン目の画素値は差分値「６５」に、上記で求めた４ライン目の画素値「ＦＦ」を足し算した結果のうちの下位８ビットで表わされる「６４」である。
【００８１】
以下これと同様の演算を繰り返すことにより、差分符号化を行なう前のデータと同一のデータに復号化される。
【００８２】
ここでは、主走査方向の１ライン目に並ぶ各画素の画素値を演算における先頭の数値として、図８に例示した演算が行なわれる。すなわち、ここに示す例では、副走査方向の一列を、本発明にいう、「入力されてきたデータを構成する数値の連続を順次区切ったときの各区切り」として取り扱っており、１ライン目の画素値を、「各区切りごとの先頭の数値」として取り扱っている。
【００８３】
尚、ここでは副走査方向の一列を１つの区切りとしているが、どの単位で区切るかは任意であり、例えば副走査方向の一列を複数に区切ってもよく、副走査方向の複数の列をひとまとめにして１つの区切りとしてもよい。
【００８４】
図９は、差分符号化による作用説明図である。
【００８５】
図９（Ａ）は、画像の概念を表わしており、ここでは、図の縦方向を主走査方向、横方向を副走査方向とし、副走査方向（横方向）に引いた矢印Ａ上の各画素の画素値に着目している。
【００８６】
この画像上には、主走査方向に延びる画素値「６３」の濃度を持つ直線Ｌ１と、画素値「ＦＦ」の濃度を持つ直線Ｌ２が描かれており、その右側には、ＣＴ画像があて嵌められるＣＴ画像領域が存在する。ＣＴ画像があて嵌められる領域は、画素値「００」で表わされている。
【００８７】
図９（Ａ）の矢印Ａ上に並ぶ画素の画素値は、図９（Ｂ）示すように、左側から順に、最初は「０１」が続き直線Ｌ１上では「６３」が続き、再度「０１」が続き、直線Ｌ２上では「ＦＦ」となり、再度「０１」に戻り、ＣＴ画像があて嵌められる領域では「００」が続き、ＣＴ画像領域が終わるともう一度「０１」が続く。ここで、画素値「０１」は、何も描かれていない領域（用紙の地の領域）であることを表わしている。
【００８８】
図９（Ｂ）に示す元データに対し、差分演算を行なうと図９（Ｃ）に示す差分後データとなり、「００」の出現確率が大きく増加する。図８を参照して説明した、図４の差分符号化部５１０では、ＭＳＢの１ビット（符号ビット）は省略するため、その差分符号化部５１０から出力されるデータは、図９（Ｄ）のようになる。この場合であっても、図８を参照して説明したように、最初の画素値（図８の場合の１ライン目の画素値「１２」）をそのまま伝えることによって、元データを順次復元することができる。
【００８９】
図４に示す差分符号化部５１０で上記の差分符号化処理が行なわれた後のデータは、今度は、図４に示す特定数値検出部５２０とランレングス符号化部５３０の双方に入力される。
【００９０】
ランレングス符号化部５３０では、差分符号化部５１０から受け取ったデータを構成する複数の数値のうちの特定の数値についてのみ符号化処理が行なわれるが、特定数値検出部５２０では差分符号化部５１０から受け取ったデータの中からランレングス符号化部５３０で符号化処理を行なう数値（ここでは、この数値を「圧縮対象数値」と称する）と、その圧縮対象数値の連続数が検出される。
【００９１】
本実施形態における、図４の特定数値検出部５２０では、一例として、「０１」、「ＦＦ」および「００」の３つの数値を圧縮対象数値としている。
【００９２】
ＬＷ画像の背景等は、用紙の地の色そのものを表わす「０１」が多いと考えられるため、ここでは、この「０１」を圧縮対象数値の１つとしている。
【００９３】
また、「ＦＦ」は最大濃度を表わす値である。ＬＷ画像の文字の部分は画素値が「ＦＦ」とは限らないが、「ＦＦ」の出現頻度が比較的多いため、ここでは「ＦＦ」も圧縮対象数値の１つとしている。
【００９４】
さらに、ＬＷ画像中の「００」は、図２に示すインタフェース機器内部処理中の合成／タグ付加処理においてＬＷデータではなくＣＴデータの方を選択することを指示する値であり、図１に示すプリンタ３００で最終的にプリントされる画像１枚中にＬＷ画像とＣＴ画像とが混在した画像である場合に、ＬＷデータ中「００」も出現頻度が高い画素値となる。このため、ここでは、この「００」も圧縮対象数値の１つとしている。
【００９５】
ここでは、上記のとおり「０１」、「ＦＦ」、「００」の３つの数値を圧縮対象数値としているが、以下の理由から「ＦＤ」、「０２」も圧縮対象数値として指定してもよい。
【００９６】
図４に示す実施形態では、図４のランレングス符号化部５３０の前段に差分符号化部５１０が置かれている。そこで、上記の出現頻度の高い３つの数値「００」、「ＦＦ」、「０１」の間の差分を求めると、符号ビットを除き、
ＦＦ−００＝ＦＦ
００−ＦＦ＝０１
０１−００＝０１
０１−０１＝ＦＦ
ＦＦ−０１＝ＦＥ
０２−ＦＦ＝０２
となるが、これら６つの差分値のうちの、「ＦＦ」と「０１」は既に上の理由により圧縮対象数値として挙げられており、残りの、「ＦＥ」と「０２」を圧縮対象数値として加えて、「０１」、「ＦＦ」、「００」、「ＦＥ」、および「０２」の５つを圧縮対象数値としてもよい。
【００９７】
ただし、ここでは、「０１」、「ＦＦ」、「００」の３つが圧縮対象数値として指定されているものとして説明を続ける。
【００９８】
図１０は、図４に示すランレングス符号化部５３０での符号化の説明図である。図１０の上のラインは、差分符号化部５１０から受け取ったデータ、下のラインは、ランレングス符号化部５３０での符号化処理を行なった後のデータである。
【００９９】
ここでは、図１０の上のラインに示すように、差分符号化部５１０からは、
「０６  ０２  ０２  ０２  ０１  ０１  ０１  ０１  ０４  ０５  ００  …  」
なるデータが入力されたものとする。このとき、図４の特定数値検出部５２０では、先頭の「０６」は圧縮対象数値ではなく、次に続く「０２  ０２  ０２」も圧縮対象数値ではなく、次に、圧縮対象数値である「０１」が４つ連続していること、次に、圧縮対象数値ではない「０４」、「０５」を間に置いて、圧縮対象数値である「００」が３２７６７個連続していることが検出され、その情報が図４のランレングス符号化部５３０に伝達される。
【０１００】
図１１は、ランレングス符号化部における、圧縮対象数値を対象にした符号化のアルゴリズムを示す図である。
【０１０１】
この図１１中、Ｚは同一の圧縮対象数値の連続数、例えば図１０の上のラインの「０１」についてはＺ＝４、「００」についてはＺ＝３２７６７である。
【０１０２】
また、図１１中、「ＹＹ」は、１６進２桁で表わされた圧縮対象数値自体を表わしている。その「ＹＹ」に続く、「０」又は「１」は１ビットで表現された「０」又は「１」であり、さらにそれに続く「ＸＸ…」は、１つの「Ｘ」が１ビットを表わしており、この「ＸＸ…」でＺの値を表現している。
【０１０３】
すなわち、図１１は、圧縮対象数値「ＹＹ」がＺ＜１２８連続するときは、１バイト目で圧縮対象数値「ＹＹ」を表現し、それに続く１バイトで、先頭ビットが「０」、それに続く７ビットでＺの値を表現すること、また、圧縮対象数値「ＹＹ」がＺ≧１２８連続するときは、１バイト目で圧縮対象数値「ＹＹ」を表現し、それに続く２バイト（１６ビット）のうちの先頭の１ビットを「１」とすることで２バイトに跨って表現されていることを表現し、それに続く１５ビットで、Ｚの値を表現することを意味している。
【０１０４】
この図１１に示す規則に従って図１０に示す符号化の例について説明する。
【０１０５】
図４の差分符号化部５１０から入力されてきたデータ（上のライン）を構成する先頭の数値「０６」は圧縮対象数値ではないため、その「０６」のまま出力される。また、それに続く「０２  ０２  ０２」も、「０２」は圧縮対象数値ではなく、これら３つの「０２」もそのまま出力される。次に、圧縮対象数値である「０１」が４個連続するため、「０１  ０４」に符号化される。次の「０４」及び「０５」は圧縮対象数値ではないため、そのまま「０４  ０５」が出力される。
【０１０６】
次に「００」が３２７６７個連続しているため、「００」を置き、次の１バイトのうちの先頭の１ビットを「１」とし、次いで１５ビットで３２７６７−１２８を表現することにより、「００  ＦＦ  ７Ｆ」の３バイトで「００」が３２７６７個連続していることを表現する。すなわち、連続数１２８は、最初のビット「１」を除き、「００  ００」と表現される。
【０１０７】
図１２は、図４のランレングス符号化部５３０における、連続数に応じた符号化処理の例を示す図である。
・「００」が１２７個連続するときは、２バイトを用いて「００  ７Ｅ」に符号化され、
・「００」が３２７６７個連続するときは、３バイトを用いて「００  ＦＦ  ７Ｅ」に符号化され、
・「００」が３２８９５個連続するときは、３バイトを用いて「００  ＦＦ  ＦＦ」に符号化され、
・「００」が１２８個連続するときは、３バイトを用いて「００  ８０  ００」に符号化され、
・「ＦＦ」が４０９６個連続するときは、３バイトを用いて「ＦＦ  ８Ｆ  ８０」に符号化される。
【０１０８】
図４に示すランレングス符号化部５３０では、上記のような符号化処理が行なわれる。
【０１０９】
この場合、圧縮対象数値以外の数値についてはそのまま出力されるため、図３を参照して説明したＰａｃｋＢｉｔｓ符号化のような、かえって冗長になってしまうという事態が回避される。また、図３のＰａｃｋＢｉｔｓ符号化の場合は、最大圧縮率は１／６４であるが、本実施形態によるランレングス符号化部５３０によれば、最大圧縮率は、３／３２８９５＝１／１０，９６５にまで向上する。
【０１１０】
図４のランレングス符号化部５３０で上記の符号化処理の行なわれた後のデータは、次に図４のデータスキャニング部５４０およびハフマン符号化部５５０に入力される。
【０１１１】
データスキャニング部５４０では、１枚のＬＷ画像全体を構成する画素について画素値の出現頻度を求め、その出現頻度の順序をハフマン符号化部５５０に伝える。
【０１１２】
ここでは、「Ａ１」の出現頻度が最も強く、以下順に、「Ａ２」、「Ａ３」、「Ａ４」、…の順であるとする。尚、これら「Ａ１」、「Ａ２」等は数値を直接表わしている訳ではなく、数値を表わす符号である。すなわち、「Ａ１」は例えば数値「００」、「Ａ２」は数値「ＦＦ」等である。また、ここでは、簡単のため、図４のランレングス符号化部５３０から送られてくるデータは全ての画素が「Ａ１」〜「Ａ１６」の１６個の数値のうちのいずれかの数値で表わされるものとする。
【０１１３】
図１３は、図４に示すハフマン符号化部５５０における符号化処理を例示した図である。
【０１１４】
ここでは、出現頻度の最も高い「Ａ１」は、２ビットで表わされた「００」に置き換えられ、次の「Ａ２」は、やはり２ビットで表わされた「０１」に置き換えられ、次の「Ａ３」、さらに次の「Ａ４」は、３ビットで表わされる、それぞれ、「１００」、「１０１」に置き換えられ、次の「Ａ５」〜「Ａ８」は、５ビットで表わされる各数値に置き換えられ、以下同様に、出現頻度が低い数値ほど多くのビット数で表わされた数値に置き換えられる。
【０１１５】
図１４は、図４に示すデータ圧縮装置５００から出力される画像データのデータフォーマットの一例を示す図である。
【０１１６】
最初に画像データファイルの先頭であることを表わすＳＯＩ（Ｓｔａｒｔ  Ｏｆ  Ｉｍａｇｅ）であることを表わすの符号が配置され、次いで画像のサイズ等の情報が記録されたヘッダが続き、さらにその後に、図４のハフマン符号化部５５０での符号化に用いたハフマンテーブルが配置される。
【０１１７】
図１５は、ハフマンテーブルの一例を示す図である。
【０１１８】
このハフマンテーブルは、図１３と一致させてあり、出現頻度が高いほど短かいビット数で表わされた数値に置き換えられるように並べた、符号化前（置き換え前）の数値と符号化後（置き換え後）の数値との対応テーブルである。
【０１１９】
図１に示すインタフェース機器２００では、このハフマンテーブルを参照することにより、ハフマン符号化に対する復号化が行なわれる。
【０１２０】
図１４に示すように、ハフマンテーブルの後には、ハフマン符号化後の実際の画像データが続き、最後にＥＯＩ（Ｅｎｄ  Ｏｆ  Ｉｍａｇｅ）の符号で締め括られる。
【０１２１】
図４に示すデータ圧縮装置５００からは、図１４に示すように形式が整えられた画像データファイルが図１に示すインタフェース機器２００に転送され、インタフェース機器２００では、これまで説明してきた符号化とは逆の順序で復号化が行なわれることによりデータ伸長が行なわれ、図４に示すデータ圧縮装置５００に入力する前の入力画像ファイル内の画像データと同一の画像データに復元される。
【０１２２】
尚、図４に示すデータ圧縮装置５００では、差分符号化部５１０を備えており、この差分符号化部５１０を備えると、前述したように数値「００」の出現頻度が増加するため好ましいが、本発明ではこの差分符号化部５１０を備えることは必ずしも必要ではなく、入力されてきたデータに差分符号化処理を行なうことなく、直接に図４に示す特定数値検出部５２０およびランレングス符号化部５３０に入力してもよい。あるいは、上述の差分符号化を行なう差分符号化部５１０に代えて、他のデータ圧縮処理を行なう符号化部をそこに配置してもよい。
【０１２３】
また、図４に示すデータ圧縮装置５００では、ランレングス符号化部５３０の後段にハフマン符号化部５５０を置いており、ランレングス符号化部５３０により符号化された後のデータに対しさらにハフマン符号化処理が行なわれる構成となっているが、ランレングス符号化５３０により符号化された後のデータに対しハフマン符号化処理を行なうことは必ずしも必要ではなく、ハフマン符号化処理に代えて他のエントロピー符号化処理を行なってもよく、ランレングス符号化部５３０により符号化されたデータをそのままこのデータ圧縮装置５００から出力してもよい。
【０１２４】
また、上述の実施形態は、本発明をＬＷデータに適用した例であるが、本発明はそのデータ圧縮の対象がＬＷデータのみに限られるものではなく、画像の性質等によってはＣＴデータやＬＷとＣＴとが混在した画像データに適用しても十分なデータ圧縮を行なうことができるものである。
【図面の簡単な説明】
【０１２５】
【図１】データ圧縮技術が適用されたプリントシステムの一例を示す図である。
【図２】プリントシステムにおけるデータ処理の流れを示す図である。
【図３】ＰａｃｋＢｉｔｓ符号化方式の説明図である。
【図４】本発明のデータ圧縮装置の一実施形態を示すブロック構成図である。
【図５】図１に示すホストコントローラのハードウェア構成図である。
【図６】本発明のデータ圧縮処理プログラムの模式構成図である。
【図７】図４のデータ圧縮装置に入力される入力画像ファイル中の画像データのデータ構造および差分符号化の概念を示す図である。
【図８】図４のデータ圧縮装置を構成する差分符号化部における差分符号化処理を例示して示す図である。
【図９】差分符号化による作用説明図である。
【図１０】図４に示すランレングス符号化部での符号化の説明図である。
【図１１】ランレングス符号化部における、圧縮対象数値を対象にした符号化のアルゴリズムを示す図である。
【図１２】図４のランレングス符号化部における、連続数に応じた符号化処理の例を示す図である。
【図１３】図４に示すハフマン符号化部における符号化処理を例示した図である。
【図１４】図４に示すデータ圧縮装置から出力される画像データのデータフォーマットの一例を示す図である。
【図１５】ハフマンテーブルの一例を示す図である。
【符号の説明】
【０１２６】
１１    データ
１２Ａ，１２Ｂ，１３Ａ，１３Ｂ，    ビットマップデータ
１４    圧縮データ
１５    ＬＷ可逆圧縮データ
１００    ホストコントローラ
１４０    ＣＤ−ＲＯＭ
１５０    汎用インタフェース
２００    インタフェース機器
２５０    専用インターフェース
３００    プリンタ
５００    データ圧縮装置
５１０    差分符号化部
５２０    特定数値検出部
５３０    ランレングス符号化部
５４０    データスキャニング部
５５０    ハフマン符号化部
６００    データ圧縮プログラム
６１０    差分符号化部
６２０    特定数値検出部
６３０    ランレングス符号化部
６４０    データスキャニング部
６５０    ハフマン符号化部
【図１】
2005210539.tif 000003
【図２】
2005210539.tif 000004
【図３】
2005210539.tif 000005
【図４】
2005210539.tif 000006
【図５】
2005210539.tif 000007
【図６】
2005210539.tif 000008
【図７】
2005210539.tif 000009
【図８】
2005210539.tif 000010
【図９】
2005210539.tif 000011
【図１０】
2005210539.tif 000012
【図１１】
2005210539.tif 000013
【図１２】
2005210539.tif 000014
【図１３】
2005210539.tif 000015
【図１４】
2005210539.tif 000016
【図１５】
2005210539.tif 000017