JP2005260408A - データ圧縮装置およびデータ圧縮プログラム - Google Patents

データ圧縮装置およびデータ圧縮プログラム Download PDF

Info

Publication number
JP2005260408A
JP2005260408A JP2004066861A JP2004066861A JP2005260408A JP 2005260408 A JP2005260408 A JP 2005260408A JP 2004066861 A JP2004066861 A JP 2004066861A JP 2004066861 A JP2004066861 A JP 2004066861A JP 2005260408 A JP2005260408 A JP 2005260408A
Authority
JP
Japan
Prior art keywords
data
unit
numerical value
compressed
data compression
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2004066861A
Other languages
English (en)
Inventor
Yukio Sugita
由紀夫 杉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Holdings Corp
Original Assignee
Fuji Photo Film Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Photo Film Co Ltd filed Critical Fuji Photo Film Co Ltd
Priority to JP2004066861A priority Critical patent/JP2005260408A/ja
Publication of JP2005260408A publication Critical patent/JP2005260408A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)

Abstract

【課題】
本発明は、画像データ等のデータを圧縮するデータ圧縮装置等に関し、圧縮率を向上させる。
【解決手段】
被圧縮データを構成する数値の連続について隣接する数値どうしの差分を求め、その差分データ中に出現する数値のうちの特定の数値「YY」のみ符号化を行なう。その特定の数値は、データ中の数値の出現頻度を表わすヒストグラムを求めそのヒストグラムに基づいて変更、削除あるいは追加する。
【選択図】 図4

Description

本発明は、画像データ等のデータを圧縮するデータ圧縮装置、およびコンピュータ等の情報処理装置をデータ圧縮装置として動作させるデータ圧縮プログラムに関する。
従来より、記憶容量の低減化や通信量の低減化等のために、画像データ等のデータを圧縮する技術が広く採用されている。
例えば、特許文献1には、原画像から代表色を選定しCLUT(カラールックアップテーブル)を構成する際に、連続する色番号が近い値の色データを持つように色番号を割り当て、次にCLUTに対応したビットマップを作成して隣接画素間の色番号の差分を求め、差分が大きな値を取る場合、画質劣化を起こさない範囲でビットマップの色番号を変更し、差分を小さな値に偏らせ、差分データに対してランレングス符号化を施すという技術が開示されている。
また、特許文献2には、各色に対応してそれぞれ割り当てられたデータが複数集まって構成される画像用データを非可逆圧縮して符号化し、そして、データの1つを透明色に割り当てると共に、その透明色を可逆とし、画像用データを即値(差分符号化の際の最初の値)とその即値に続く複数の差分値(差分符号化の際の前の値)とで構成し、それらの値を非可逆圧縮して符号化等する際、透明色を表す即値と差分値とを可逆とし、さらに、透明色を表す即値を、各一色のデータ値の中間の値としたり、透明色を表す差分値を「0」としたりするという技術が提案されている。
また、特許文献3には、数を予測された数(s’(j))と実際の数(s(j))との差分によって符号化することが提案されている。
さらに、特許文献4には、n列目の画素データ列に対して、副走査方向の同一画素データの分布状況を認識するとともに、主走査方向の同ー画素データの分布状況を認識し、これらの認識結果を基に、副走査方向に連続する同ー画素データを圧縮処理するか、あるいは主走査方向に連続する同一画素データを圧縮処理するかを決定する画像圧縮装置が提案されている。
ここで、データ圧縮技術を適用した1つのシステムを紹介する。
図1は、データ圧縮技術が適用されたプリントシステムの一例を示す図、図2は、プリントシステムにおけるデータ処理の流れを示す図である。
このプリントシステムは、図1に示すように、ホストコントローラ100と、インターフェース機器200と、プリンタ300とで構成されており、ホストコントローラ100とインターフェース機器200との間はSCSI等の汎用インターフェースケーブル150で接続され、さらにインターフェース機器200とプリンタ300との間は専用インターフェースケーブル250で接続されている。
ホストコントローラ100の内部では、図2に示すように、PDF,PS,TIFF等、様々な言語やフォーマットで記述された文字や画像のデータ11が、画像(CT;Continuous Tone)データと文字やライン等(LW;Line Work)のデータとに分けられて、それぞれについてRIP(Raster Image Processing)を行なうことによりビットマップデータ12A,13Aが生成され、さらにそれぞれについてデータ圧縮処理が行なわれて、CTについては非可逆の圧縮データ14、LWについては可逆の圧縮データ15が生成される。これらの圧縮データ14,15は、図1に示す汎用インターフェースケーブル150を経由して、ホストコントローラ100からインターフェース機器200に転送される。インタフェース機器200では、転送されてきた圧縮データ14,15にデータ伸長処理を施して、ホストコントローラ100でデータ圧縮処理を行なう前の状態のビットマップデータ12A,13Aに対応するビットマップデータ12B,13Bを生成する。ここで、CTデータについてはホストコントローラ100でのデータ圧縮の際非可逆圧縮処理が行なわれているため、データ伸長後のCTデータ(ビットマップデータ12B)は完全にはデータ圧縮前のCTデータ(ビットマップデータ12A)には戻らないが、ほぼ同一のビットマップデータが復元される。LWデータについては、ホストコントローラ100でのデータ圧縮の際可逆圧縮処理が行なわれているため、データ伸長後のLWデータ(ビットマップデータ13B)は、データ圧縮前のLWデータ(ビットマップデータ13A)と同一のデータに復元される。
インタフェース機器200では、データ伸長後のCTデータ(ビットマップデータ12B)とLWデータ(ビットマップデータ13B)とが合成され、さらに網点情報等がタグとして付加されてプリンタ300に送られる。プリンタ300では、インタフェース機器200から受け取ったビットマップデータとそれに付加されたタグ情報とに従って画像がプリント出力される。
ホストコントローラ100とインタフェース機器200とが例えば相互に離れている場合、あるいは、インタフェース機器200が複数台のホストコントローラから画像データを受信するシステムの場合など、ホストコントローラ100とインタフェース機器200を別々の装置として構成する必要がある場合には、図2に示すような、ホストコントローラ100でデータ圧縮を行なってインタフェース機器200にデータ転送しインタフェース機器でデータ伸長するように構成することにより、ホストコントローラ100からインタフェース機器200へのデータ転送時間を短縮することができ、プリントの生産性が向上する。
ここで、一般的には、CTデータについては、非可逆ではあるが圧縮率の高いJPEG等の圧縮方式が採用され、LWデータについてはPackBits等の可逆圧縮方式が採用される。
以下、後述する本発明の実施形態との対比のために、PackBitsによる符号化方式について説明しておく。
図3は、PackBits符号化方式の説明図である。
原データは、上段に並ぶ、「01 02 02 02 03 03 03 03 04 05」であるとする。尚、ここでは、全て16進法で表わされるものとする、原データのうちの最初の数値は「01」、次は「02」、さらにその次も「02」であり、「02」は同一の数値が連続しているため、連続していない数値は「01」の1個のみである。
そこで、ここでは、連続していない数値の数(ここでは1)から1を引いた数値「00」を置く(図3の下段の最初の数値「00」)。それに続いて、その連続していない数値自体(ここでは「01」)を置く(下段の2番目の数値「01」)。すなわち、ここでは、原データの「01」が、PackBits符号化により、「00 01」に置き換わる。
次に、原データの「02」は、3個連続しているので、連続数(ここでは3)から1を引いた数(ここでは2)を負とした数(−2)を16進法で表現した「FE」を置き(下段の3番目の数値「FE」)、その後ろに、その連続している数値自体(ここでは「02」)を置く(下段の4番目の数値「02」)。すなわち、ここでは、原データの「02 02 02」が、PackBits符号化により、「FE 02」に置き換わる。
次に、原データ上で「03」が4個連続しているので、上記と同様にして、連続数4から1を引いた数3を負とした数(−3)を16進法で表現した「FD」と、その連続している数値「03」を置く。すなわち、ここでは、原データの「03 03 03 03」が、「FD 03」に置き換わる。
さらに、その後には、原データ上で「04 05」が続くが、これら「04」、「05」はそれぞれが単独であって同一の数値が連続していない。そこで、ここでは、その連続していない数値(「04」、「05」)の数(ここでは2)から1を引いて「01」を置き、それに続いてその連続していない数値自体「04 05」を置く。すなわち、ここでは、原データの「04 05」が、PackBits符号化により「01 04 05」に置き換わる。
PackBitsでは、以上のルールに従って符号化が行なわれる。
特開平5−328142号公報 特開平10−164620号公報 特表2001−5−20822号公報 特開平9−200540号公報
上記のPackBits符号化の場合、同一の数値の連続数として取り得る値は−1〜−127である。すなわち連続数として表現できるのは128までである。これを2バイト(8ビット×2)で表現するので、原理的に実現できる最大の圧縮率は2/128=1/64である。
ところが、例えばLWデータの場合は連続する空白など、同一の数値が連続することが多く、最大圧縮率が1/64では効率が悪いという問題がある。
また、図3から分かるように、原データ「01」は「00 01」に符号化され、原データ「04 05」は「01 04 05」に符号化されるなど、符号化により原データよりも冗長となってしまう場合もある。
本発明は、上記事情に鑑み、圧縮率を向上させたデータ圧縮処理を行なうことのできるデータ圧縮装置、およびコンピュータ等の情報処理装置を、圧縮率を向上させたデータ圧縮処理を行なうデータ圧縮装置として動作させることのできるデータ圧縮プログラムを提供することを目的とする。
上記目的を達成する本発明のデータ圧縮装置は、所定の単位ビット数で表わされる数値の連続からなる被圧縮データが格納された複数のデータファイルに渡って順次に、各データファイルに格納された被圧縮データにデータ圧縮処理を施すデータ圧縮装置において、
被圧縮データの中から1つもしくは複数の圧縮対象数値の存在及び同一の圧縮対象数値の連続数を検出する数値検出部と、
被圧縮データ中、圧縮対象数値を除く数値についてはそのまま出力すると共に、圧縮対象数値については、圧縮対象数値と、その圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する符号化部と、
上記符号化部で符号化される前もしくはその符号化部で符号化された後のデータ中に出現する数値のヒストグラムを求めるヒストグラム算出部とを備え、
上記数値検出部は、ヒストグラム算出部で求められたヒストグラムに基づき、圧縮対象数値を変更、削除もしくは追加するものであることを特徴とする。
ここで、上記本発明のデータ圧縮装置において、上記符号化部で符号化された後のデータのデータ量を求めるデータ量算出部を備え、上記数値検出部は、ヒストグラム算出部で求められたヒストグラムに基づくとともに、データ量算出部で求められたデータ量にも基づいて、圧縮対象数値を変更、削除もしくは追加するものであることが好ましい。
さらに、上記符号化部は、同一の圧縮対象数値の連続数に応じ、その連続数を異なるビット数で表現する符号化を行なうものであることが好ましく、その一例として、上記符号化部は、同一の圧縮対象数値の連続数が所定数以下のときはその連続数を1単位ビット数で表現し、その連続数が所定数を越えるときは2単位ビット数で表現する符号化を行なうものであってもよい。
また、上記本発明のデータ圧縮装置において、
上記数値検出部と上記符号化部とからなる第1のデータ圧縮部の後段に、その第1のデータ圧縮部で符号化された後のデータにエントロピー符号化を施す第2のデータ圧縮部を備え、
上記ヒストグラム算出部が、第1のデータ圧縮部で符号化された後のデータ中に出現する数値のヒストグラムを求めるものであり、
上記第2のデータ圧縮部は、ヒストグラム算出部で求められたヒストグラムに基づき、出現頻度の高い数値ほど符号長の短かい符号を割り当てたエントロピー符号化を行なうものであることが好ましい。
さらに、上記本発明のデータ圧縮装置において、上記数値検出部と上記符号化部とからなる第1のデータ圧縮部の前段に、被圧縮データを構成する数値の連続について隣接する数値どうしの差分を求めることにより差分を表わす数値の連続からなるデータを生成して上記第1のデータ圧縮部に渡す第3のデータ圧縮部を備えることが好ましい。この場合に、この第2のデータ圧縮部は、被圧縮データを構成する数値の連続を順次区切ったときの各区切りごとの先頭の数値についてはそのまま出力するとともに、先頭の数値以外については隣接する数値どうしの差分のうちの下位の単位ビット数で表わされる数値を出力するものであることがさらにことが好ましい。
ここで、上記の『被圧縮データを構成する数値の連続について隣接する数値どうしの差分を求めることにより』における『隣接する』とは、データストリーム上で隣接してもよいが、必ずしもそれに限定されるものではない。例えば、2次元画像データが1次元ストリーム状のデータとして扱われている場合であっても、2次元的な画像上で見て隣接してもよい。以下においても同様である。
また、上記目的を達成する本発明のデータ圧縮プログラムは、プログラムを実行する情報処理装置内で実行され、その情報処理装置を、所定の単位ビット数で表わされる数値の連続からなる被圧縮データが格納された複数のデータファイルに渡って順次に、各データファイルに格納された被圧縮データにデータ圧縮処理を施すデータ圧縮装置として動作させるデータ圧縮プログラムであって、
上記情報処理装置を、
被圧縮データの中から1つもしくは複数の圧縮対象数値の存在及び同一の圧縮対象数値の連続数を検出する数値検出部と、
被圧縮データ中、圧縮対象数値を除く数値についてはそのまま出力すると共に、圧縮対象数値については、圧縮対象数値と、その圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する符号化部と、
上記符号化部で符号化される前もしくはその符号化部で符号化された後のデータ中に出現する数値のヒストグラムを求めるヒストグラム算出部とを備え、
上記数値検出部は、ヒストグラム算出部で求められたヒストグラムに基づいて圧縮対象数値を変更、削除もしくは追加するものであるデータ圧縮装置として動作させることを特徴とする。
ここで、上記本発明のデータ圧縮プログラムにおいても、上記符号化部で符号化された後のデータのデータ量を求めるデータ量算出部を備え、上記数値検出部は、ヒストグラム算出部で求められたヒストグラムに基づくとともに、上記データ量算出部で求められたデータ量にも基づいて、上記圧縮対象数値を変更、削除もしくは追加するものであるデータ圧縮装置として動作させるものであることが好ましい。
さらに、本発明のデータ圧縮プログラムにおいて、上記符号化部は、同一の圧縮対象数値の連続数に応じ、その連続数を異なるビット数で表現する符号化を行なうものであることが好ましく、その一例として、上記符号化部は、同一の圧縮対象数値の連続数が所定数以下のときはその連続数を1単位ビット数で表現し、その連続数が所定数を越えるときは2単位ビット数で表現する符号化を行なうものであってもよい。
また、上記本発明のデータ圧縮プログラムにおいても、上記数値検出部と上記符号化部とからなる第1のデータ圧縮部の後段に、その第1のデータ圧縮部で符号化された後のデータにエントロピー符号化を施す第2のデータ圧縮部を備え、上記ヒストグラム算出部が、第1のデータ圧縮部で符号化された後のデータ中に出現する数値のヒストグラムを求めるものであり、
上記第2のデータ圧縮部は、ヒストグラム算出部で求められたヒストグラムに基づいて出現頻度の高い数値ほど符号長の短かい符号を割り当てたエントロピー符号化を行なうものであるデータ圧縮装置として動作させるものであることが好ましい。
さらに、上記本発明のデータ圧縮プログラムが上記情報処理装置を、さらに、上記数値検出部と上記符号化部とからなる第1のデータ圧縮部の前段に、被圧縮データを構成する数値の連続について隣接する数値どうしの差分を求めることにより差分を表わす数値の連続からなるデータを生成して第1のデータ圧縮部に渡す第3のデータ圧縮部を備えたデータ圧縮装置として動作させるものであることが好ましい。この場合に、この第2のデータ圧縮部は、被圧縮データを構成する数値の連続を順次区切ったときの各区切りごとの先頭の数値についてはそのまま出力するとともに、先頭の数値以外については隣接する数値どうしの差分のうちの下位の単位ビット数で表わされる数値を出力するものであることがさらに好ましい。
上記本発明のデータ圧縮装置ないしデータ圧縮プログラムによれば、圧縮対象数値のみが、その圧縮対象数値と連続数とを表わす数値とに符号化されるため、図3を参照して説明したような、原データよりも冗長度が増すという事態が回避され、圧縮率が向上する。
また、本発明のデータ圧縮装置およびデータ圧縮プログラムによれば、データ中に出現する数値のヒストグラムを求め、そのヒストグラムに基づいて圧縮対象数値を変更、削除もしくは追加するものであるため、例えば、一冊の本を構成する複数ページの画像データが各ページごとに別々の画像ファイルに入って順次送られてくる場合など、ページを更新するごとに圧縮対象数値が学習され、ページを追うごとにデータ圧縮率をさらに改善し、より圧縮率の高いデータ圧縮を行なうことができる。
ここで、上記ヒストグラム算出部に加え、上記のデータ量算出部を備えて、ヒストグラムに基づくとともに算出されたデータ量にも基づいて圧縮対象数値を変更、削除もしくは追加するように構成すると、圧縮対象数値を変更、削除もしくは追加した結果圧縮率が実際に向上したか否かを知ることができ、圧縮率がかえって低下したときは、圧縮対象数値を元に戻すことなど、その圧縮対象数値を再度変更、削除もしくは追加することができ、圧縮率の更なる向上につなげることができる。
さらに、上記符号化部を、同一の圧縮対象数値の連続数に応じ、その連続数を異なるビット数で表現する符号化を行なう構成、例えば、同一の圧縮対象数値の連続数が所定数以下のときはその連続数を1単位ビット数で表現し、その連続数が所定数を越えるときは2単位ビット数で表現する符号化を行なう構成とすると、同一の圧縮対象数値の連続数が大きな数であるときに高圧縮率で圧縮され、圧縮率が更に向上する。
また、上記第2のデータ圧縮部を備えると、数値の出現頻度を考慮したエントロピー符号化による、圧縮率の更なる向上が見込まれる。
さらに、上記第3のデータ圧縮部を備えると、同一の数値が続く場合はその差分は数値ゼロとなり、数値ゼロの出現確率が増加し、上記第1のデータ圧縮部との組合せにより圧縮率を更に向上させることができる。
ここで、数値の差分を求めると、例えばその数値が1バイト(8ビット)で表現されている数値である場合に、差分は符号を含め9ビットで表現されることになる。後述する実施形態で示されるように、先頭の数値をそのまま保存しておくことにより、差分を表わす数値としてMSBの1ビットを省き、下位8ビット(1バイト)を保存しておくことで元の数値を復元することができる。
そこで、上記第3のデータ圧縮部を、被圧縮データを構成する数値の連続を順次で区切ったときの各区切りごとの先頭の数値についてはそのまま出力するとともに、先頭の数値以外については隣接する数値どうしの差分のうちの下位の単位ビット数で表わされる数値を出力する構成とすることにより、差分により1つの差分値について1ビット増加するのを防ぐことができ、更なる圧縮率向上に役立つ。
以下、本発明の実施形態について説明する。
以下において説明する実施形態は、図1に示す全体システムの中のホストコントローラ100内に組み込まれるデータ圧縮装置であり、さらに具体的には、図2に示すホストコントローラ内のLWのビットマップデータ13Aについてデータ圧縮を行なう処理に関するものである。したがって、ここでは、図1,図2を参照して説明したLWデータについてのデータ圧縮処理およびデータ伸長処理が以下に説明する本発明の実施形態としての処理に置き換わるものと理解し、図1に示す全体システムおよび図2に示す処理の流れについての重複した図示および重複説明は省略する。
図4は、本発明のデータ圧縮装置の一実施形態を示すブロック構成図である。
この図4に示すデータ圧縮装置500は、差分符号化部510と、ランレングス符号化部520と、ハフマン符号化部530と、特定数値検出部540と、データ量算出部550と、データスキャニング部560とを備えている。各部510〜560の詳細は後述するが、このデータ圧縮装置500内での画像データの流れは以下のとおりである。
ここでは、複数の入力画像ファイル(本実施形態では、図2に示すように、ビットマップに展開されたLWデータ13Aが格納されたファイル)が、図4に示すデータ圧縮装置500に順次入力され、そのデータ圧縮装置500では、順次入力されてきた複数の入力画像ファイルそれぞれについて以下の処理が行なわれる。すなわち、このデータ圧縮装置500に入力されてきた入力画像ファイルはそのデータ圧縮装置500の差分符号化部510に入力されて、差分符号化処理、すなわち、入力されてきたデータを構成する数値の連続について隣接する数値どうしの差分を求めることによりその差分を表わす数値の連続からなる画像データを生成する処理が行なわれる。この差分符号化部510は、本発明にいう第3のデータ圧縮部の一例に相当する。さらに具体的には、この差分符号化部510では、入力されてきたデータを構成する数値の連続を順次区切ったときの各区切りごとの先頭の数値についてはそのまま出力するとともに、先頭の数値以外については隣接する数値どうしの差分のうちの下位の単位ビット数で表わされる数値を出力する処理が行なわれる。
差分符号化部510において差分符号化されたデータは、特定数値検出部540とランレングス符号化部530との双方に入力される。特定数値検出部540では、入力されてきたデータの中から1つもしくは複数の圧縮対象数値の存在及び同一の圧縮対象数値の連続数が検出される。ランレングス符号化部530では、特定数値検出部540における検出結果を受けて、差分符号化部510から入力されてきたデータ中、圧縮対象数値を除く数値についてはそのまま出力すると共に、圧縮対象数値については、その圧縮対象数値と、その圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力するという符号化処理が行なわれる。このランレングス符号化部530では、その符号化処理にあたっては、同一の圧縮対象数値の連続数に応じ、その連続数を異なるビット数で表現する符号化が行なわれる。ここでは、具体的には、同一の圧縮対象数値の連続数が所定数以下のときはその連続数を1単位ビット数で表現し、その連続数が所定数を越えるときは2単位ビット数で表現する符号化が行なわれる。本実施形態では、これら特定数値検出部540とランレングス符号化部530とを合わせたものが、本発明にいう第1のデータ圧縮部に相当する。
また、ランレングス符号化部520での符号化後のデータは、次に、データ量算出部550と、データスキャニング部560とハフマン符号化部530とのそれぞれに入力される。
データ量算出部550では、1つの入力画像ファイルごとに、ランレングス符号化部520で符号化された後のデータのデータ量が算出される。この算出されたデータ量は特定数値検出部540に入力される。
また、データスキャニング部560では、ランレングス符号化部520で符号化された後のデータの全てをスキャニングして、そのデータ中に出現する全ての数値の出現頻度(ヒストグラム)が求められる。ここでは、入力画像ファイル1つずつを単位として、各入力画像ファイルの、ランレングス符号化部520で符号化された後のデータ中の数値の出現頻度が求められる。データスキャニング部560で求められたヒストグラム(数値の出現頻度)は特定数値検出部540とハフマン符号化部530との双方に入力される。ハフマン符号化部530では、ハフマン符号化のルールに従って、ランレングス符号化部520からハフマン符号化部530に入力されてきたデータを構成する数値を、出現頻度の高い数値ほど短かいビット長で表わされる符号に置き換える符号化処理が行なわれる。
このハフマン符号化は、エントロピィ符号化の一種であり、本実施形態では、データスキャニング部560およびハフマン符号化部530を合わせたものが本発明にいう第3のデータ圧縮部に相当する。
また、ランレングス符号化部520では、上述したように、1つもしくは複数の圧縮対象数値について符号化が行なわれるが、この圧縮対象数値は、特定数値検出部540において、データスキャニング部560で求められたヒストグラムおよびデータ量算出部550で算出されたデータ量に基づいて適宜変更される。
例えばデータスキャニング部で求められたヒストグラム上に出現頻度が高い数値が見られるときには、次の入力画像ファイルについて符号化を行なうにあたってはその出現頻度の高い数値を圧縮対象数値に追加したり、あるいはその出現頻度の高い数値を、それまで圧縮対象数値に加えておいた数値に代えて圧縮対象数値として採用する。このような圧縮対象数値の変更や追加を行なったにもかかわらず、ランレングス符号化部520で符号化が行なわれた後のデータの量が削減されなかったときは圧縮対象数値を元に戻したり削除する。圧縮対象数値が増えるとランレングス符号化部520では符号化に要する時間がかかるため高速化の観点からはあまり好ましいことではない。そこで上記のようにして、ヒストグラムとデータ量とに基づいて圧縮対象数値を適切に定めることにより、圧縮率の高いデータ圧縮と高速処理とのバランスのとれた処理を行なうことができる。
ハフマン符号化部530でハフマン符号化された後のデータは、データスキャニング部560で求められたヒストグラムに従って設定された、ハフマン符号化部530への入力データの数値とハフマン符号化後の符号との割当表を含む圧縮情報が添付されて、図2に示すLW可逆圧縮データ15として、図1に示すSCSI等の汎用インタフェース150を経由してインタフェース機器200に転送される。インタフェース機器200では、その受け取ったLW可逆圧縮データ15にデータ伸長処理が施されるが、このデータ伸長処理にあたっては、先ず、図4のハフマン符号化部530で行なわれた符号化処理に対する復号化処理が施され、次いで、図4のランレングス符号化部520で行なわれた符号化処理に対する復号化処理が施され、さらに、図4の差分符号化部510で行われた符号化処理に対する復号化処理が施されて、元の入力画像ファイル中の画像データと同一の画像データが復元される。
図5は、図1に示すホストコントローラのハードウェア構成図である。
図1に示すホストコントローラ100は、図5に示す構成のコンピュータシステムで構成されている。
この図5に示す、コンピュータシステムで構成されたホストコントローラ100には、CPU111、RAM112、通信インタフェース113、ハードディスクコントローラ114、FDドライブ115、CDROMドライブ116、マウスコントローラ117、キーボードコントローラ118、ディスプレイコントローラ119、および通信用ボード120が備えられており、これらはバス110で相互に接続されている。
ハードディスクコントローラ114は、このホストコントローラ100に内蔵されているハードディスク104のアクセスを制御するものであり、FDドライブ115、CDROMドライブ116は、このホストコントローラ100に取出し自在に装填されるフレキシブルディスク(FD)130、CDROM140のアクセスを制御するものである。また、マウスコントローラ117、キーボードコントローラ118は、このホストコントローラ100に備えられたマウス107、キーボード108の操作を検出してCPU111に伝達する役割を担っている。さらに、ディスプレイコントローラ119は、このCPU111の指示に基づいて、ホストコントローラ100に備えられた画像ディスプレイ109の表示画面上に画像を表示する役割を担っている。
通信用ボード120は、SCSI等の汎用インタフェースプロトコルに準拠した通信を担っており、圧縮後の画像データをインタフェースケーブル150を介してインタフェース機器200(図1参照)に転送する役割を担っている。
さらに、通信用インタフェース113は、インターネット等の汎用の通信を担っており、このホストコントローラ100は、この通信用インタフェース113を経由して画像データを取り込むこともできる。
RAM112には、ハードディスク104に格納されているプログラムが読み出されてCPU111での実行のために展開され、CPU111では、そのRAM112に展開されたプログラムが読み出されて実行される。
図6は、本発明のデータ圧縮処理プログラムの模式構成図である。
ここでは、このデータ圧縮プログラム600は、CDROM140に記憶されている。
このデータ圧縮プログラムは、差分符号化部610、ランレングス符号化部620、ハフマン符号化部630、特定数値検出部640、データ量算出部650、およびデータスキャニング部660から構成されている。このCDROM140には、ここに示すデータ圧縮プログラム600のほか、図1に示すホストコントローラ100における図2に示す一連の処理を実行するための各種プログラムが記憶されているが、それらについては従来と同様であるため図示および説明は省略する。
この図6に示すCDROM140が、図5に示すホストコントローラ100に装填されCDROMドライブ116でアクセスされてそのCDROM140に記憶されているプログラムがこのホストコントローラ100にアップロードされ、ハードディスク104に記憶される。このハードディスク104に記憶されたプログラムがそのハードディスク104から読み出されてRAM112に展開されCPU111で実行されると、このホストコントローラ100は、図4に示すデータを圧縮装置500としての処理を含む、図2に示すホストコントローラとしての各種処理を実行する装置として動作する。
ここで、図6に示すデータ圧縮プログラム600は、ホストコントローラ100にインストールされてCPU111で実行されることにより、そのホストコントローラ100内に図4に示すデータ圧縮装置500を実現するものであり、差分符号化部610、ランレングス符号化部620、ハフマン符号化部630、特定数値検出部640、データ量算出部650、およびデータスキャニング部660は、CPU111で実行されることにより、そのホストコントローラ100を、それぞれ、図4に示すデータ圧縮装置500を構成する、差分符号化部510、ランレングス符号化部520、ハフマン符号化部530、特定数値検出部540、データ量算出部550、およびデータスキャニング部560として動作させるプログラム部品である。図6のデータ圧縮プログラム600を構成する各部610〜660の、CPU111で実行されたときの作用は、それぞれ、図5のデータ圧縮装置500を構成する各部510〜560の作用そのものである。したがって、図4のデータ圧縮装置500の各部510〜560に関する、これまでの説明、および、以下に説明する詳細説明をもって、図6のデータ圧縮プログラム600を構成する各部610〜660の説明を兼ねるものとする。
図7は、図4のデータ圧縮装置500に入力される入力画像ファイル中の画像データのデータ構造および差分符号化の概念を示す図である。
図7に示すように、図4に示すデータ圧縮装置500に入力される画像データは、所定の主走査方向に画素がM個並んでいる。その主走査方向とは直角な副走査方向に教えていったときのN番目のラインについて、主走査方向に並ぶ各画素の画素値は、その並び順に、
n,1,Dn,2,…,Dn,m-2,Dn,m-1,Dn,m
と表現される。
これと同様に、副走査方向の(N+1)番目のラインについて、主走査方向に並ぶ各画素の画素値は、その並びの順に、
n+1,1,Dn+1,2,…,Dn+1,m-2,Dn+1,m-1,Dn+1,m
と表現される。
ここで、図4に示すデータ圧縮装置500を構成する差分符号化部510では、上記のような画像データを入力し、副走査方向に隣接する画素どうしの差分が求められる。すなわち、N番目のラインと(N+1)番目のラインとの差分であって、主走査方向に並ぶj番目の画素の差分をSn,jとすると、この差分Sn,jは、
n,j=Dn+1,j−Dn,j (j=1〜m)
と表現される。
この差分演算を具体的に説明する。
図8は、図4のデータ圧縮装置500を構成する差分符号化部510における差分符号化処理を例示して示す図である。
ここでは、図7に示す副走査方向に並ぶある縦一列の画素値が、図8の「画像データ」
の欄に示すように、
「12 01 02 FF 64 … 40 40 3F …」
であったとする。尚、ここでは、各画素値は、16進2桁(1バイト=8ビット)で表現されている。ここでは「ライン」は主走査方向に並ぶ画素を指している。
先ず、1ライン目の画素値「12」については、そのまま出力する。
次に、2ライン目の画素値「01」から1ライン目の画素値「12」を引き算し、その結果を出力する。ここで、「01」から「12」を引き算した結果は負の数となり、9ビットで「1EF」と表わされるが、MSBの1ビットである「1」は省略し、下位8ビットである「EF」のみを出力する。
次に、3ライン目の画素値「02」から2ライン目の画素値「01」を引き算し、その結果の値「01」を出力する。
次に、4ライン目の画素値「FF」から3ライン目の画素値「02」を引き算し、その結果の値「FD」を出力する。
次に、5ライン目の画素値「64」から4ライン目の画素値「FF」を引き算し、その結果の値から、MSBの1ビットである「1」を省略し、下位8ビットである「65」を出力する。
以下、これと同じ演算を繰り返すことにより、図8の「差分エンコード(下位8ビット)」の欄に表わされている。
「(12) EF 01 FD 65 … L0 00 FF …」
が出力される。
図1に示すインタフェース機器200では、この差分符号化されたデータを復号化するにあたり、図8の右側に示す演算が行なわれる。
先ず1ライン目の画素値は「12」のそのままである。
2ライン目の画素値は、差分値「EF」に1ライン目の画素値「12」を足し算した結果のうちの下位8ビットで表わされる「01」である。
3ライン目の画素値は、差分値「01」に、上記で求めた2ライン目の画素値「01」を足し算することにより求められる「02」である。
4ライン目の画素値は、差分値「FD」に、上記で求めた3ライン目の画素値「02」を足し算することにより求められる「FF」である。
5ライン目の画素値は差分値「65」に、上記で求めた4ライン目の画素値「FF」を足し算した結果のうちの下位8ビットで表わされる「64」である。
以下これと同様の演算を繰り返すことにより、差分符号化を行なう前のデータと同一のデータに復号化される。
ここでは、主走査方向の1ライン目に並ぶ各画素の画素値を演算における先頭の数値として、図8に例示した演算が行なわれる。すなわち、ここに示す例では、副走査方向の一列を、本発明にいう、「入力されてきたデータを構成する数値の連続を順次区切ったときの各区切り」として取り扱っており、1ライン目の画素値を、「各区切りごとの先頭の数値」として取り扱っている。
尚、ここでは副走査方向の一列を1つの区切りとしているが、どの単位で区切るかは任意であり、例えば副走査方向の一列を複数に区切ってもよく、副走査方向の複数の列をひとまとめにして1つの区切りとしてもよい。
図9は、差分符号化による作用説明図である。
図9(A)は、画像の概念を表わしており、ここでは、図の縦方向を主走査方向、横方向を副走査方向とし、副走査方向(横方向)に引いた矢印A上の各画素の画素値に着目している。
この画像上には、主走査方向に延びる画素値「63」の濃度を持つ直線L1と、画素値「FF」の濃度を持つ直線L2が描かれており、その右側には、CT画像があて嵌められるCT画像領域が存在する。CT画像があて嵌められる領域は、画素値「00」で表わされている。
図9(A)の矢印A上に並ぶ画素の画素値は、図9(B)示すように、左側から順に、最初は「01」が続き直線L1上では「63」が続き、再度「01」が続き、直線L2上では「FF」となり、再度「01」に戻り、CT画像があて嵌められる領域では「00」が続き、CT画像領域が終わるともう一度「01」が続く。ここで、画素値「01」は、何も描かれていない領域(用紙の地の領域)であることを表わしている。
図9(B)に示す元データに対し、差分演算を行なうと図9(C)に示す差分後データとなり、「00」の出現確率が大きく増加する。図8を参照して説明した、図4の差分符号化部510では、MSBの1ビット(符号ビット)は省略するため、その差分符号化部510から出力されるデータは、図9(D)のようになる。この場合であっても、図8を参照して説明したように、最初の画素値(図8の場合の1ライン目の画素値「12」)をそのまま伝えることによって、元データを順次復元することができる。
図4に示す差分符号化部510で上記の差分符号化処理が行なわれた後のデータは、今度は、図4に示す特定数値検出部540とランレングス符号化部520の双方に入力される。
ランレングス符号化部520では、差分符号化部510から受け取ったデータを構成する複数の数値のうちの特定の数値についてのみ符号化処理が行なわれるが、特定数値検出部540では差分符号化部510から受け取ったデータの中からランレングス符号化部520で符号化処理を行なう数値(ここでは、この数値を「圧縮対象数値」と称する)と、その圧縮対象数値の連続数が検出される。
本実施形態における、図4の特定数値検出部540では、一例として、「01」、「FF」および「00」の3つの数値を圧縮対象数値としているものとして説明する。ただし、この圧縮対象数値は、データ量算出部550で求められデータ量とデータスキャニング部560で求められたヒストグラムとに基づいて入力画像ファイルごとに適宜変更される。
LW画像の背景等は、用紙の地の色そのものを表わす「01」が多いと考えられるため、ここでは、この「01」を圧縮対象数値の1つとしている。
また、「FF」は最大濃度を表わす値である。LW画像の文字の部分は画素値が「FF」とは限らないが、「FF」の出現頻度が比較的多いため、ここでは「FF」も圧縮対象数値の1つとしている。
さらに、LW画像中の「00」は、図2に示すインタフェース機器内部処理中の合成/タグ付加処理においてLWデータではなくCTデータの方を選択することを指示する値であり、図1に示すプリンタ300で最終的にプリントされる画像1枚中にLW画像とCT画像とが混在した画像である場合に、LWデータ中「00」も出現頻度が高い画素値となる。このため、ここでは、この「00」も圧縮対象数値の1つとしている。
ここでは、上記のとおり「01」、「FF」、「00」の3つの数値を圧縮対象数値としているが、以下の理由から「FD」、「02」も圧縮対象数値として追加してもよい。
図4に示す実施形態では、図4のランレングス符号化部520の前段に差分符号化部510が置かれている。そこで、上記の出現頻度の高い3つの数値「00」、「FF」、「01」の間の差分を求めると、符号ビットを除き、
FF−00=FF
00−FF=01
01−00=01
01−01=FF
FF−01=FE
02−FF=02
となるが、これら6つの差分値のうちの、「FF」と「01」は既に上の理由により圧縮対象数値として挙げられており、残りの、「FE」と「02」を圧縮対象数値として加えて、「01」、「FF」、「00」、「FE」、および「02」の5つを圧縮対象数値としてもよい。
ただし、今回の入力画像ファイルの符号化に関しては、「01」、「FF」、「00」の3つが圧縮対象数値として指定されているものとして説明を続ける。
図10は、図4に示すランレングス符号化部520での符号化の説明図である。図10の上のラインは、差分符号化部510から受け取ったデータ、下のラインは、ランレングス符号化部520での符号化処理を行なった後のデータである。
ここでは、図10の上のラインに示すように、差分符号化部510からは、
「06 02 02 02 01 01 01 01 04 05 00 … 」
なるデータが入力されたものとする。このとき、図4の特定数値検出部540では、先頭の「06」は圧縮対象数値ではなく、次に続く「02 02 02」も圧縮対象数値ではなく、次に、圧縮対象数値である「01」が4つ連続していること、次に、圧縮対象数値ではない「04」、「05」を間に置いて、圧縮対象数値である「00」が32767個連続していることが検出され、その情報が図4のランレングス符号化部520に伝達される。
図11は、ランレングス符号化部における、圧縮対象数値を対象にした符号化のアルゴリズムを示す図である。
この図11中、Zは同一の圧縮対象数値の連続数、例えば図10の上のラインの「01」についてはZ=4、「00」についてはZ=32767である。
また、図11中、「YY」は、16進2桁で表わされた圧縮対象数値自体を表わしている。その「YY」に続く、「0」又は「1」は1ビットで表現された「0」又は「1」であり、さらにそれに続く「XX…」は、1つの「X」が1ビットを表わしており、この「XX…」でZの値を表現している。
すなわち、図11は、圧縮対象数値「YY」がZ<128連続するときは、1バイト目で圧縮対象数値「YY」を表現し、それに続く1バイトで、先頭ビットが「0」、それに続く7ビットでZの値を表現すること、また、圧縮対象数値「YY」がZ≧128連続するときは、1バイト目で圧縮対象数値「YY」を表現し、それに続く2バイト(16ビット)のうちの先頭の1ビットを「1」とすることで2バイトに跨って表現されていることを表現し、それに続く15ビットで、Zの値を表現することを意味している。
この図11に示す規則に従って図10に示す符号化の例について説明する。
図4の差分符号化部510から入力されてきたデータ(上のライン)を構成する先頭の数値「06」は圧縮対象数値ではないため、その「06」のまま出力される。また、それに続く「02 02 02」も、「02」は圧縮対象数値ではなく、これら3つの「02」もそのまま出力される。次に、圧縮対象数値である「01」が4個連続するため、「01 04」に符号化される。次の「04」及び「05」は圧縮対象数値ではないため、そのまま「04 05」が出力される。
次に「00」が32767個連続しているため、「00」を置き、次の1バイトのうちの先頭の1ビットを「1」とし、次いで15ビットで32767−128を表現することにより、「00 FF 7F」の3バイトで「00」が32767個連続していることを表現する。すなわち、連続数128は、最初のビット「1」を除き、「00 00」と表現される。
図12は、図4のランレングス符号化部520における、連続数に応じた符号化処理の例を示す図である。
・「00」が127個連続するときは、2バイトを用いて「00 7E」に符号化され、
・「00」が32767個連続するときは、3バイトを用いて「00 FF 7E」に符号化され、
・「00」が32895個連続するときは、3バイトを用いて「00 FF FF」に符号化され、
・「00」が128個連続するときは、3バイトを用いて「00 80 00」に符号化され、
・「FF」が4096個連続するときは、3バイトを用いて「FF 8F 80」に符号化される。
図4に示すランレングス符号化部520では、上記のような符号化処理が行なわれる。
この場合、圧縮対象数値以外の数値についてはそのまま出力されるため、図3を参照して説明したPackBits符号化のような、かえって冗長になってしまうという事態が回避される。また、図3のPackBits符号化の場合は、最大圧縮率は1/64であるが、本実施形態によるランレングス符号化部520によれば、最大圧縮率は、3/32895=1/10,965にまで向上する。
図4のランレングス符号化部520で上記の符号化処理の行なわれた後のデータは、次に図4のデータ量算出部550、データスキャニング部560およびハフマン符号化部530に入力される。
データ量算出部550では、今回データ圧縮を行なっている1枚のLW画像全体についての、ランレングス符号化部520で符号化された後のデータ量が算出されて特定数値検出部540に入力される。
また、データスキャニング部560では、その1枚のLW画像全体についての、ランレングス符号化部520で符号化された後のデータ中の各数値の出現頻度を表わすヒストグラムが求められる。このヒストグラムは、特定数値検出部540とハフマン符号化部530との双方に入力される。
図13は、データスキャニング部560で求められたヒストグラムの一例を示す図である。
この図13には、値「0」のほか、値「100」と値「158」に高い出現頻度を表わす高いピークが見られる。特定数値検出部540では、値0は既に圧縮対象数値として採用しており、ここでは新たに、次の入力画像ファイルについて符号化を行なう際の圧縮対象数値として値100(10進数)と値158(10進数)が追加される、あるいは、既にかなり数の数値が圧縮対象数値として採用されているときは、それまで採用されていた圧縮対象数値を圧縮対象数値から外し、値「100」と値「158」を新たに圧縮対象数値として採用してもよい。
このようにして入力画像ファイル単位で圧縮対象数値を入れ替えたり追加しても、データ量算出部550で算出されるデータ量が大きくは削減されないときは、圧縮対象数値の一部が削除され、符号化処理速度の改善が図られる。
また、データスキャニング部560で求められたヒストグラム(各数値の出現頻度)は、上述のように、ハフマン符号化部530にも伝えられる。
ここでは、そのヒストグラム上、「A1」の出現頻度が最も強く、以下順に、「A2」、「A3」、「A4」、…の順であるとする。尚、これら「A1」、「A2」等は数値を直接表わしている訳ではなく、数値を表わす符号である。すなわち、「A1」は16定数で例えば数値「00」、「A2」は数値「FF」等である。また、ここでは、簡単のため、図4のランレングス符号化部520から送られてくるデータは全ての画素が「A1」〜「A16」の16個の数値のうちのいずれかの数値で表わされるものとする。
図14は、図4に示すハフマン符号化部530における符号化処理を例示した図である。
ここでは、出現頻度の最も高い「A1」は、2ビットで表わされた「00」に置き換えられ、次の「A2」は、やはり2ビットで表わされた「01」に置き換えられ、次の「A3」、さらに次の「A4」は、3ビットで表わされる、それぞれ、「100」、「101」に置き換えられ、次の「A5」〜「A8」は、5ビットで表わされる各数値に置き換えられ、以下同様に、出現頻度が低い数値ほど多くのビット数で表わされた数値に置き換えられる。
図15は、ハフマンテーブルの一例を示す図である。
このハフマンテーブルは、図14と一致させてあり、出現頻度が高いほど短かいビット数で表わされた数値に置き換えられるように並べた、符号化前(置き換え前)の数値と符号化後(置き換え後)の数値(符号)との対応テーブルである。
図16は、図4に示すデータ圧縮装置500から出力される画像データのデータフォーマットの一例を示す図である。
最初に画像データファイルの先頭であることを表わすSOI(Start Of Image)の符号が配置され、次いで画像のサイズ等の情報が記録されたヘッダが続き、さらにその後に、図4のデータ圧縮装置500で行なわれたデータ圧縮処理に関する圧縮情報が配置される。この圧縮情報には、特定数値検出部540およびランレングス符号化部520で今回の画像データに関して採用された圧縮対象数値やハフマン符号化部530で用いられたハフマンテーブル(図14参照)等、図1のインタフェース機器での復号化に必要な全ての情報が含まれる。
この圧縮情報の後には、ハフマン符号化後の実際の画像データが続き、最後にEOI(End Of Image)の符号で締め括られる。
図4に示すデータ圧縮装置500からは、図14に示すように形式が整えられた画像データファイルが図1に示すインタフェース機器200に転送され、インタフェース機器200では、これまで説明してきた符号化とは逆の順序で復号化が行なわれることによりデータ伸長が行なわれ、図4に示すデータ圧縮装置500に入力する前の入力画像ファイル内の画像データと同一の画像データに復元される。
ここで、尚、図4に示すデータ圧縮装置500では、差分符号化部510を備えており、この差分符号化部510を備えると、前述したように数値「00」の出現頻度が増加するため好ましいが、本発明ではこの差分符号化部510を備えることは必ずしも必要ではなく、入力されてきたデータに差分符号化処理を行なうことなく、直接に図4に示す特定数値検出部540およびランレングス符号化部520に入力してもよい。あるいは、上述の差分符号化を行なう差分符号化部510に代えて、他のデータ圧縮処理を行なう符号化部をそこに配置してもよい。
また、図4に示すデータ圧縮装置500では、データ量算出部550を備え、特定数値検出部540では、データスキャニング部560で求められたヒストグラムに基づくとともにデータ量算出部550で算出されたデータ量にも基づいて圧縮対象数値の見直しを行なっているが、データ量については必ずしも必要な情報ではなく、データ量算出部550は備えずに、データスキャニング部560で求められるヒストグラムに大きなピークが生じないように圧縮対象数値を見直してもよい。
さらに、図4に示すデータ圧縮装置500では、ランレングス符号化部520の後段にハフマン符号化部530を置いており、ランレングス符号化部520により符号化された後のデータに対しさらにハフマン符号化処理が行なわれる構成となっているが、ランレングス符号化530により符号化された後のデータに対しハフマン符号化処理を行なうことは必ずしも必要ではなく、ハフマン符号化処理に代えて他のエントロピー符号化処理を行なってもよく、ランレングス符号化部520により符号化されたデータをそのままこのデータ圧縮装置500から出力してもよい。
また、上述の実施形態は、本発明をLWデータに適用した例であるが、本発明はそのデータ圧縮の対象がLWデータのみに限られるものではなく、画像の性質等によってはCTデータやLWとCTとが混在した画像データに適用しても十分なデータ圧縮を行なうことができるものである。
さらに、上述の実施形態では、圧縮対象数値の見直しを入力画像ファイル単位で行なう旨説明したが、一連の複数の入力画像ファイルのうちの、最初の1つあるいはいくつかの入力画像ファイルについては圧縮対象数値の見直しを行ない、その後は圧縮対象数値を固定して符号化を行なってもよい。
図17は、本発明のデータ圧縮装置の第2実施形態を示す図、図18は、本発明のデータ圧縮プログラムの第2実施形態を示す図である。
これらの図17、図18は、これまで説明してきた実施形態の、それぞれ図4、図6に対応する図であり、図17、図18では、図4、図6に示した構成要素に対応する構成要素には、図4、図6に付した符号と同一の符号を付して示し、前述の実施形態との相違点のみについて説明する。
図17のデータ圧縮装置500と図18のデータ圧縮プログラム600の関係は、上述の実施形態の場合と同様である。すなわち、図17は、図18のデータ圧縮プログラム600が図5に示すコンピュータシステムにインストールされて実行されたときにそのコンピュータシステム内に構築されるデータ圧縮装置の機能ブロック図である。
図17、図18の、図4、図6との相違点は、第2のデータスキャニング部570,670を備えている点である。以下では図17のブロックに従って説明する。第2のデータスキャニング部570では、ランレングス符号化部520に入力されるデータ中の数値のヒストグラムが求められ、その求められたヒストグラムは、特定数値検出部540に入力される。一方、図4にも示すデータスキャニング部560で求められたヒストグラムは、図17に示すデータハフマン符号化部530には伝えられるものの特定数値検出部540には伝えられない。すなわち、図17に示すデータ圧縮装置500における特定数値検出部540では、第2のデータスキャニング部570で求められた、ランレングス符号化部520に入力されるデータ中の数値のヒストグラムと、そのランレングス符号化部520で符号化された後のデータのデータ量とに基づいて圧縮対象数値の見直しが行なわれる。この場合、ランレングス符号化部520に入力されるデータ中の数値の頻度がそのままヒストグラム上にあらわれるため、出現頻度の高低が正確に分かり、圧縮対象数値を正確に選定してランレングス符号化部520での圧縮率をさらに高めることができる。ただし、ランレングス符号化部520での符号化を行なう前のデータは、その符号化を行なった後のデータと比べデータ量が大きく、ヒストグラムを求めるのに時間がかかり、図4に示す実施形態と比べると処理の高速化の点では不利である。
図17、図18に示す実施形態の他の点については、図4、図6に示す実施形態と同一であり、重複説明は省略する。
データ圧縮技術が適用されたプリントシステムの一例を示す図である。 プリントシステムにおけるデータ処理の流れを示す図である。 PackBits符号化方式の説明図である。 本発明のデータ圧縮装置の一実施形態を示すブロック構成図である。 図1に示すホストコントローラのハードウェア構成図である。 本発明のデータ圧縮処理プログラムの模式構成図である。 図4のデータ圧縮装置に入力される入力画像ファイル中の画像データのデータ構造および差分符号化の概念を示す図である。 図4のデータ圧縮装置を構成する差分符号化部における差分符号化処理を例示して示す図である。 差分符号化による作用説明図である。 図4に示すランレングス符号化部での符号化の説明図である。 ランレングス符号化部における、圧縮対象数値を対象にした符号化のアルゴリズムを示す図である。 図4のランレングス符号化部における、連続数に応じた符号化処理の例を示す図である。 データスキャニング部で求められたヒストグラムの一例を示す図である。 図4に示すハフマン符号化部における符号化処理を例示した図である。 ハフマンテーブルの一例を示す図である。 図4に示すデータ圧縮装置から出力される画像データのデータフォーマットの一例を示す図である。 本発明のデータ圧縮装置の第2実施形態を示す図である。 本発明のデータ圧縮プログラムの第2実施形態を示す図である。
符号の説明
11 データ
12A,12B,13A,13B, ビットマップデータ
14 圧縮データ
15 LW可逆圧縮データ
100 ホストコントローラ
140 CDROM
150 汎用インタフェース
200 インタフェース機器
250 専用インターフェース
300 プリンタ
500 データ圧縮装置
510 差分符号化部
520 ランレングス符号化部
530 ハフマン符号化部
540 特定数値検出部
550 データ量算出部
560 データスキャニング部
600 データ圧縮プログラム
610 差分符号化部610、
620 ランレングス符号化部
630 ハフマン符号化部
640 特定数値検出部
650 データ量算出部
660 データスキャニング部

Claims (14)

  1. 所定の単位ビット数で表わされる数値の連続からなる被圧縮データが格納された複数のデータファイルに渡って順次に、各データファイルに格納された被圧縮データにデータ圧縮処理を施すデータ圧縮装置において、
    被圧縮データの中から1つもしくは複数の圧縮対象数値の存在及び同一の圧縮対象数値の連続数を検出する数値検出部と、
    被圧縮データ中、圧縮対象数値を除く数値についてはそのまま出力すると共に、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する符号化部と、
    前記符号化部で符号化される前もしくは該符号化部で符号化された後のデータ中に出現する数値のヒストグラムを求めるヒストグラム算出部とを備え、
    前記数値検出部は、前記ヒストグラム算出部で求められたヒストグラムに基づき、前記圧縮対象数値を変更、削除もしくは追加するものであることを特徴とするデータ圧縮装置。
  2. 前記符号化部で符号化された後のデータのデータ量を求めるデータ量算出部を備え、
    前記数値検出部は、前記ヒストグラム算出部で求められたヒストグラムに基づくとともに、前記データ量算出部で求められたデータ量にも基づいて、前記圧縮対象数値を変更、削除もしくは追加するものであることを特徴とする請求項1記載のデータ圧縮装置。
  3. 前記符号化部は、同一の圧縮対象数値の連続数に応じ、該連続数を異なるビット数で表現する符号化を行なうものであることを特徴とする請求項1記載のデータ圧縮装置。
  4. 前記符号化部は、同一の圧縮対象数値の連続数が所定数以下のときは該連続数を1単位ビット数で表現し、該連続数が該所定数を越えるときは2単位ビット数で表現する符号化を行なうものであることを特徴とする請求項3記載のデータ圧縮装置。
  5. 前記数値検出部と前記符号化部とからなる第1のデータ圧縮部の後段に、前記第1のデータ圧縮部で符号化された後のデータにエントロピー符号化を施す第2のデータ圧縮部を備え、
    前記ヒストグラム算出部が、前記第1のデータ圧縮部で符号化された後のデータ中に出現する数値のヒストグラムを求めるものであり、
    前記第2のデータ圧縮部は、前記ヒストグラム算出部で求められたヒストグラムに基づき、出現頻度の高い数値ほど符号長の短かい符号を割り当てたエントロピー符号化を行なうものであることを特徴とする請求項1記載のデータ圧縮装置。
  6. 前記数値検出部と前記符号化部とからなる第1のデータ圧縮部の前段に、被圧縮データを構成する数値の連続について隣接する数値どうしの差分を求めることにより該差分を表わす数値の連続からなるデータを生成して前記第1のデータ圧縮部に渡す第3のデータ圧縮部を備えたことを特徴とする請求項1記載のデータ圧縮装置。
  7. 前記第2のデータ圧縮部は、被圧縮データを構成する数値の連続を順次区切ったときの各区切りごとの先頭の数値についてはそのまま出力するとともに、該先頭の数値以外については隣接する数値どうしの差分のうちの下位の単位ビット数で表わされる数値を出力するものであることを特徴とする請求項6記載のデータ圧縮装置。
  8. プログラムを実行する情報処理装置内で実行され、該情報処理装置を、所定の単位ビット数で表わされる数値の連続からなる被圧縮データが格納された複数のデータファイルに渡って順次に、各データファイルに格納された被圧縮データにデータ圧縮処理を施すデータ圧縮装置として動作させるデータ圧縮プログラムであって、
    前記情報処理装置を、
    被圧縮データの中から1つもしくは複数の圧縮対象数値の存在及び同一の圧縮対象数値の連続数を検出する数値検出部と、
    被圧縮データ中、圧縮対象数値を除く数値についてはそのまま出力すると共に、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する符号化部と、
    前記符号化部で符号化される前もしくは該符号化部で符号化された後のデータ中に出現する数値のヒストグラムを求めるヒストグラム算出部とを備え、
    前記数値検出部は、前記ヒストグラム算出部で求められたヒストグラムに基づいて前記圧縮対象数値を変更、削除もしくは追加するものであるデータ圧縮装置として動作させることを特徴とするデータ圧縮プログラム。
  9. 前記符号化部で符号化された後のデータのデータ量を求めるデータ量算出部を備え、
    前記数値検出部は、前記ヒストグラム算出部で求められたヒストグラムに基づくとともに、前記データ量算出部で求められたデータ量にも基づいて、前記圧縮対象数値を変更、削除もしくは追加するものであるデータ圧縮装置として動作させることを特徴とする請求項8記載のデータ圧縮プログラム。
  10. 前記符号化部は、同一の圧縮対象数値の連続数に応じ、該連続数を異なるビット数で表現する符号化を行なうものであることを特徴とする請求項8記載のデータ圧縮プログラム。
  11. 前記符号化部は、同一の圧縮対象数値の連続数が所定数以下のときは該連続数を1単位ビット数で表現し、該連続数が該所定数を越えるときは2単位ビット数で表現する符号化を行なうものであることを特徴とする請求項10記載のデータ圧縮プログラム。
  12. 前記数値検出部と前記符号化部とからなる第1のデータ圧縮部の後段に、前記第1のデータ圧縮部で符号化された後のデータにエントロピー符号化を施す第2のデータ圧縮部を備え、
    前記ヒストグラム算出部が、前記第1のデータ圧縮部で符号化された後のデータ中に出現する数値のヒストグラムを求めるものであり、
    前記第2のデータ圧縮部は、前記ヒストグラム算出部で求められたヒストグラムに基づいて出現頻度の高い数値ほど符号長の短かい符号を割り当てたエントロピー符号化を行なうものであるデータ圧縮装置として動作させることを特徴とする請求項8記載のデータ圧縮プログラム。
  13. 前記情報処理装置を、さらに、前記数値検出部と前記符号化部とからなる第1のデータ圧縮部の前段に、被圧縮データを構成する数値の連続について隣接する数値どうしの差分を求めることにより該差分を表わす数値の連続からなるデータを生成して前記第1のデータ圧縮部に渡す第3のデータ圧縮部を備えたデータ圧縮装置として動作させることを特徴とする請求項8記載のデータ圧縮プログラム。
  14. 前記第2のデータ圧縮部は、被圧縮データを構成する数値の連続を順次区切ったときの各区切りごとの先頭の数値についてはそのまま出力するとともに、該先頭の数値以外については隣接する数値どうしの差分のうちの下位の単位ビット数で表わされる数値を出力するものであることを特徴とする請求項13記載のデータ圧縮プログラム。
JP2004066861A 2004-03-10 2004-03-10 データ圧縮装置およびデータ圧縮プログラム Withdrawn JP2005260408A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004066861A JP2005260408A (ja) 2004-03-10 2004-03-10 データ圧縮装置およびデータ圧縮プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004066861A JP2005260408A (ja) 2004-03-10 2004-03-10 データ圧縮装置およびデータ圧縮プログラム

Publications (1)

Publication Number Publication Date
JP2005260408A true JP2005260408A (ja) 2005-09-22

Family

ID=35085736

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004066861A Withdrawn JP2005260408A (ja) 2004-03-10 2004-03-10 データ圧縮装置およびデータ圧縮プログラム

Country Status (1)

Country Link
JP (1) JP2005260408A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008017115A (ja) * 2006-07-05 2008-01-24 Fujifilm Corp データ圧縮装置およびデータ圧縮プログラム
JP2008022310A (ja) * 2006-07-13 2008-01-31 Fujifilm Corp データ圧縮方法および装置並びにプログラム
JP2008035066A (ja) * 2006-07-27 2008-02-14 Fujifilm Corp データ圧縮装置およびデータ圧縮プログラム
WO2013140530A1 (ja) 2012-03-19 2013-09-26 富士通株式会社 プログラム、圧縮データ生成方法、伸張方法、情報処理装置、および記録媒体

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008017115A (ja) * 2006-07-05 2008-01-24 Fujifilm Corp データ圧縮装置およびデータ圧縮プログラム
JP4689545B2 (ja) * 2006-07-05 2011-05-25 富士フイルム株式会社 データ圧縮装置およびデータ圧縮プログラム
JP2008022310A (ja) * 2006-07-13 2008-01-31 Fujifilm Corp データ圧縮方法および装置並びにプログラム
JP4709086B2 (ja) * 2006-07-13 2011-06-22 富士フイルム株式会社 データ圧縮方法および装置並びにプログラム
JP2008035066A (ja) * 2006-07-27 2008-02-14 Fujifilm Corp データ圧縮装置およびデータ圧縮プログラム
JP4699307B2 (ja) * 2006-07-27 2011-06-08 富士フイルム株式会社 データ圧縮装置およびデータ圧縮プログラム
WO2013140530A1 (ja) 2012-03-19 2013-09-26 富士通株式会社 プログラム、圧縮データ生成方法、伸張方法、情報処理装置、および記録媒体
US9094041B2 (en) 2012-03-19 2015-07-28 Fujitsu Limited Encoding method, information processing apparatus, and recording medium

Similar Documents

Publication Publication Date Title
JP4689545B2 (ja) データ圧縮装置およびデータ圧縮プログラム
US7826670B2 (en) Data compression apparatus and data compression program storage medium
US7183950B2 (en) Data compression apparatus, and data compression program storage medium
JP2006121645A (ja) 画像圧縮装置および画像圧縮プログラム
JP3278298B2 (ja) ビットマップデータの圧縮方法及び圧縮装置
US7684629B2 (en) Data compression apparatus, and data compression program storage medium
JP2008311792A (ja) 画像符号化装置及びその制御方法
JP3872217B2 (ja) ディザ画像の2値表現処理方法、ディザ画像の圧縮2値表現圧縮解除方法、及びディザ画像の圧縮及び圧縮解除システム
JP4633576B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP4173505B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP2005260408A (ja) データ圧縮装置およびデータ圧縮プログラム
JP4173498B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP4435586B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP2005277932A (ja) データ圧縮装置およびデータ圧縮プログラム
JP4377351B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP2005252531A (ja) データ圧縮装置およびデータ圧縮プログラム
JP4131969B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP2005260420A (ja) データ圧縮装置およびデータ圧縮プログラム
JP4629512B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP4181147B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP4131970B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP4699307B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP2006060490A (ja) 画像圧縮装置および画像圧縮プログラム
JP4377352B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP4579793B2 (ja) データ圧縮装置およびデータ圧縮プログラム

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070605