JPH11284518A - 前処理付きデータ圧縮方法および圧縮データの伸長方法 - Google Patents
前処理付きデータ圧縮方法および圧縮データの伸長方法Info
- Publication number
- JPH11284518A JPH11284518A JP8323598A JP8323598A JPH11284518A JP H11284518 A JPH11284518 A JP H11284518A JP 8323598 A JP8323598 A JP 8323598A JP 8323598 A JP8323598 A JP 8323598A JP H11284518 A JPH11284518 A JP H11284518A
- Authority
- JP
- Japan
- Prior art keywords
- data
- processing
- compression
- result
- field
- 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.)
- Pending
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
(57)【要約】
【課題】データ圧縮の圧縮率を高める。
【解決手段】データをフィールド毎に分離し、分離した
結果に適切な前処理を加えた後に各々分離したデータを
圧縮し、その結果を結合する。
結果に適切な前処理を加えた後に各々分離したデータを
圧縮し、その結果を結合する。
Description
【0001】
【発明の属する技術分野】本発明は、データ処理におい
てデータ量の縮小化を図り、データ格納コストやデータ
通信コストの削減などに係わるデータ圧縮方法および圧
縮データの伸長方法に関する。
てデータ量の縮小化を図り、データ格納コストやデータ
通信コストの削減などに係わるデータ圧縮方法および圧
縮データの伸長方法に関する。
【0002】
【従来の技術】従来、データ圧縮では、奥村晴彦著「C
言語による最新アルゴリズム辞典」技術評論社(199
1年)の192項にあるように、データの内部構造を考
える事無く、データ圧縮技法を適用してデータ圧縮を行
っていた。例えば図4の31に示されるデータの場合、
これを、D8A7A5A3E2C1或いは、DAAAEC875321なる1つの
データとみなして圧縮技法を適用していた。
言語による最新アルゴリズム辞典」技術評論社(199
1年)の192項にあるように、データの内部構造を考
える事無く、データ圧縮技法を適用してデータ圧縮を行
っていた。例えば図4の31に示されるデータの場合、
これを、D8A7A5A3E2C1或いは、DAAAEC875321なる1つの
データとみなして圧縮技法を適用していた。
【0003】
【発明が解決しようとする課題】しかしながら、被圧縮
データは必ずしも1フィールドだけから出来ているとは
限らず、複数フィールドより構成される場合があり、更
に、フィールドの中には大きい順にソートされていると
いった特徴を持つものがある。従って、データ圧縮によ
るデータ量の削減効果を上げるためには、これらデータ
の持つ特徴を生かす必要がある。例えば図4の31に示
されるデータの場合、データ圧縮では同一の文字または
同一パターンの繰り返しが圧縮の対象となるため、AA
Aの部分しか圧縮の対象とならない。
データは必ずしも1フィールドだけから出来ているとは
限らず、複数フィールドより構成される場合があり、更
に、フィールドの中には大きい順にソートされていると
いった特徴を持つものがある。従って、データ圧縮によ
るデータ量の削減効果を上げるためには、これらデータ
の持つ特徴を生かす必要がある。例えば図4の31に示
されるデータの場合、データ圧縮では同一の文字または
同一パターンの繰り返しが圧縮の対象となるため、AA
Aの部分しか圧縮の対象とならない。
【0004】
【課題を解決するための手段】1個または複数のフィー
ルドよりなるデータが多数集まって構成しているデータ
群に対して、前記データ群を各フィールド毎のデータ群
に分離する手段と、前記分離されたデータ群に対する圧
縮手段と、前記分離されたデータ群に対して前処理を行
う手段と、前記分離されたデータ群に対して前処理を行
った結果に対して圧縮処理を行う手段と、前記分離され
たデータ群に対して、圧縮処理を行った結果および前処
理を行った後に圧縮した結果を結合する手段とを有する
事を特徴とする前処理付きデータ圧縮方法によって行
う。
ルドよりなるデータが多数集まって構成しているデータ
群に対して、前記データ群を各フィールド毎のデータ群
に分離する手段と、前記分離されたデータ群に対する圧
縮手段と、前記分離されたデータ群に対して前処理を行
う手段と、前記分離されたデータ群に対して前処理を行
った結果に対して圧縮処理を行う手段と、前記分離され
たデータ群に対して、圧縮処理を行った結果および前処
理を行った後に圧縮した結果を結合する手段とを有する
事を特徴とする前処理付きデータ圧縮方法によって行
う。
【0005】
【発明の実施の形態】本発明に係わる前処理付きデータ
圧縮方法および伸長方法の実施例を図を用いて詳細に説
明する。
圧縮方法および伸長方法の実施例を図を用いて詳細に説
明する。
【0006】図1は本発明の実施例を示したブロック図
であり、データ処理の流れを表わす。図中、1は元デー
タであり、これは被圧縮データである。2はデータ分離
処理を表わしており、図4の31にある様な複数フィー
ルドからなるデータを図4の32,33にある様に各フ
ィールド毎に分離する。ただし、1の元データが1つの
フィールドだけの場合は何もしない。3は前処理1であ
り、4は前処理2を表わし、ここで、圧縮に先立って前
処理が行われる。ただし、この前処理においては、何も
処理を行わない場合も含む。5は圧縮処理1であり、6
は圧縮処理2である。ただし、ここでも圧縮方法とし
て、圧縮しない場合も含む。7はデータ結合であり、5
と6で圧縮された結果に対して、図3の21で示すヘッ
ダを付けて結合する。
であり、データ処理の流れを表わす。図中、1は元デー
タであり、これは被圧縮データである。2はデータ分離
処理を表わしており、図4の31にある様な複数フィー
ルドからなるデータを図4の32,33にある様に各フ
ィールド毎に分離する。ただし、1の元データが1つの
フィールドだけの場合は何もしない。3は前処理1であ
り、4は前処理2を表わし、ここで、圧縮に先立って前
処理が行われる。ただし、この前処理においては、何も
処理を行わない場合も含む。5は圧縮処理1であり、6
は圧縮処理2である。ただし、ここでも圧縮方法とし
て、圧縮しない場合も含む。7はデータ結合であり、5
と6で圧縮された結果に対して、図3の21で示すヘッ
ダを付けて結合する。
【0007】図1でのデータの処理の流れは図3と図4
を用いて示す必要があるため、図3と図4の説明をす
る。
を用いて示す必要があるため、図3と図4の説明をす
る。
【0008】図3はヘッダの構造を示した図であり、図
中21はヘッダを表わす。21のヘッダはヘッダ長を示
すフィールド、圧縮方法を示すフィールド、前処理を示
すフィールド、圧縮データの先頭へのポインタよりな
る。ここで、ヘッダ長はヘッダの先頭から圧縮データの
先頭へのポインタまでの長さを格納する。この長さによ
って、図1の元のデータ1が何個のフィールドに分離し
て圧縮されているかが分かる。図3の21ではヘッダ長
はヘッダの先頭から、圧縮データ2の先頭へのポインタ
までの長さが格納されている実施例である。
中21はヘッダを表わす。21のヘッダはヘッダ長を示
すフィールド、圧縮方法を示すフィールド、前処理を示
すフィールド、圧縮データの先頭へのポインタよりな
る。ここで、ヘッダ長はヘッダの先頭から圧縮データの
先頭へのポインタまでの長さを格納する。この長さによ
って、図1の元のデータ1が何個のフィールドに分離し
て圧縮されているかが分かる。図3の21ではヘッダ長
はヘッダの先頭から、圧縮データ2の先頭へのポインタ
までの長さが格納されている実施例である。
【0009】圧縮方法1および圧縮方法2では、それぞ
れ2つに分離したフィールドの各々に対してどのような
圧縮方法が用いられたかを示す圧縮方法の種類が格納さ
れる。データの性質によっては圧縮が不要、または圧縮
すると逆にデータが増大する場合があるため、圧縮しな
い場合をも圧縮方法の種類に含めておく。一般的に圧縮
は全てのデータに効果がある訳ではなく、データの性質
によっては逆効果になる場合も多く、特に乱数データに
対しては逆効果になる場合が多い。
れ2つに分離したフィールドの各々に対してどのような
圧縮方法が用いられたかを示す圧縮方法の種類が格納さ
れる。データの性質によっては圧縮が不要、または圧縮
すると逆にデータが増大する場合があるため、圧縮しな
い場合をも圧縮方法の種類に含めておく。一般的に圧縮
は全てのデータに効果がある訳ではなく、データの性質
によっては逆効果になる場合も多く、特に乱数データに
対しては逆効果になる場合が多い。
【0010】前処理1および前処理2では圧縮に先立っ
て行われる前処理の種類を格納する。ここでも、前処理
が逆効果になる場合も考慮し、何もしない場合も前処理
の種類に含めておく。前処理として通常使われる方法
は、差分,和分,排他論理和であるが、逆変換処理の存
在するものなら何でも使用できる。使用にあたっては次
の圧縮処理の際に圧縮効果があるものを選ぶ事である。
て行われる前処理の種類を格納する。ここでも、前処理
が逆効果になる場合も考慮し、何もしない場合も前処理
の種類に含めておく。前処理として通常使われる方法
は、差分,和分,排他論理和であるが、逆変換処理の存
在するものなら何でも使用できる。使用にあたっては次
の圧縮処理の際に圧縮効果があるものを選ぶ事である。
【0011】圧縮データ1の先頭および圧縮データ2の
先頭では、2つのフィールドに分離されて、各々が処理
され圧縮された結果を結合した場合のそれぞれの先頭へ
のポインタが格納される。
先頭では、2つのフィールドに分離されて、各々が処理
され圧縮された結果を結合した場合のそれぞれの先頭へ
のポインタが格納される。
【0012】図4は図1の各処理に対応するデータの流
れを示したものである。図中31は2つのフィールドか
らなる元データであり、これは図1の元データ1であっ
て、第2フィールドのデータは値が大きい順にソートさ
れている。32は図1のデータ分離によって分離された
データの第1フィールドであり、33は分離されたデー
タの第2フィールドである。前処理データ34は分離デ
ータ32が図1の前処理1によって処理された結果であ
るが、特に分離データ32は有効な前処理が存在する訳
ではないので、前処理1として何もしない場合の結果で
ある。従って、32と34は全く同一のデータになって
いる。前処理データ35は33の分離データに対して、
前処理2として差分を用いた場合の結果である。
れを示したものである。図中31は2つのフィールドか
らなる元データであり、これは図1の元データ1であっ
て、第2フィールドのデータは値が大きい順にソートさ
れている。32は図1のデータ分離によって分離された
データの第1フィールドであり、33は分離されたデー
タの第2フィールドである。前処理データ34は分離デ
ータ32が図1の前処理1によって処理された結果であ
るが、特に分離データ32は有効な前処理が存在する訳
ではないので、前処理1として何もしない場合の結果で
ある。従って、32と34は全く同一のデータになって
いる。前処理データ35は33の分離データに対して、
前処理2として差分を用いた場合の結果である。
【0013】これを詳しく説明すると、分離データ33
の先頭データである「8」は先頭データであるため何も
せず前処理データ35の先頭に格納する。33の2番目
のデータである「7」は33の先頭である「8」との差
分が取られ、その結果である「1」が前処理データ35
の2番目のデータとして格納される。33の3番目のデ
ータである「5」は33の2番目である「7」との差分
が取られ、その結果である「2」が35の3番目のデー
タとして格納される。以下同様に差分が取られ、前処理
データ35が得られる。この結果に見られるように、圧
縮の対象となり難いデータである分離データ33が差分
のような前処理によって、前処理データ35のように同
一文字が繰り返し出現して圧縮の対象となり得るデータ
に変換される。
の先頭データである「8」は先頭データであるため何も
せず前処理データ35の先頭に格納する。33の2番目
のデータである「7」は33の先頭である「8」との差
分が取られ、その結果である「1」が前処理データ35
の2番目のデータとして格納される。33の3番目のデ
ータである「5」は33の2番目である「7」との差分
が取られ、その結果である「2」が35の3番目のデー
タとして格納される。以下同様に差分が取られ、前処理
データ35が得られる。この結果に見られるように、圧
縮の対象となり難いデータである分離データ33が差分
のような前処理によって、前処理データ35のように同
一文字が繰り返し出現して圧縮の対象となり得るデータ
に変換される。
【0014】圧縮データ36は前処理データ34に対し
て、図1の圧縮処理1によって圧縮した結果である。こ
の圧縮処理にはランレングス法やハフマン法等の既存の
圧縮処理が用いられる。圧縮データ37は前処理データ
35に対して、図1の圧縮処理2によって圧縮した結果
である。この圧縮処理にはランレングス法やハフマン法
等の既存の圧縮処理が用いられる。
て、図1の圧縮処理1によって圧縮した結果である。こ
の圧縮処理にはランレングス法やハフマン法等の既存の
圧縮処理が用いられる。圧縮データ37は前処理データ
35に対して、図1の圧縮処理2によって圧縮した結果
である。この圧縮処理にはランレングス法やハフマン法
等の既存の圧縮処理が用いられる。
【0015】圧縮方法については、圧縮結果がデータの
特徴に依存して変わる事から、図1の圧縮処理1と圧縮
処理2とは同じ圧縮方法であっても異なる圧縮方法であ
ってもよい。データに依存して圧縮方法は適切なものを
選択すればよい。
特徴に依存して変わる事から、図1の圧縮処理1と圧縮
処理2とは同じ圧縮方法であっても異なる圧縮方法であ
ってもよい。データに依存して圧縮方法は適切なものを
選択すればよい。
【0016】圧縮データ38は2つの圧縮結果36,3
7に対して、図1のデータ結合7によって、図3のヘッ
ダ21を先頭に付加して、36の圧縮結果1,37の圧
縮結果2をこの順に結合して得た結果であり、図1の圧
縮データ8である。
7に対して、図1のデータ結合7によって、図3のヘッ
ダ21を先頭に付加して、36の圧縮結果1,37の圧
縮結果2をこの順に結合して得た結果であり、図1の圧
縮データ8である。
【0017】以上が圧縮データに至るまでのデータ流れ
であるが、次に、図2によって伸長の方法を示す。
であるが、次に、図2によって伸長の方法を示す。
【0018】図2は伸長方法を示したブロック図であ
り、伸長処理におけるデータの流れを表わす。図中、1
1は圧縮データであり、これは図4の38のフォーマッ
トである。12はデータ分離であり、11のデータをヘ
ッダから2つの圧縮データに分離する。13は伸長処理
1であり、分離されたデータの圧縮処理に対応した伸長
処理を行う。14は伸長処理であり、分離されたデータ
の圧縮処理に対応した伸長処理を行う。15は後処理1
であり、圧縮に先立って行われた前処理に対応する逆処
理を行う。16は後処理2であり、圧縮に先立って行わ
れた前処理に対応する逆処理を行う。17はデータ結合
であり、後処理を終えて回復したデータを結合して元の
データに戻す。18は元データであり、図1の1に復元
されたデータである。
り、伸長処理におけるデータの流れを表わす。図中、1
1は圧縮データであり、これは図4の38のフォーマッ
トである。12はデータ分離であり、11のデータをヘ
ッダから2つの圧縮データに分離する。13は伸長処理
1であり、分離されたデータの圧縮処理に対応した伸長
処理を行う。14は伸長処理であり、分離されたデータ
の圧縮処理に対応した伸長処理を行う。15は後処理1
であり、圧縮に先立って行われた前処理に対応する逆処
理を行う。16は後処理2であり、圧縮に先立って行わ
れた前処理に対応する逆処理を行う。17はデータ結合
であり、後処理を終えて回復したデータを結合して元の
データに戻す。18は元データであり、図1の1に復元
されたデータである。
【0019】次に、図2におけるデータの流れを図5を
用いて説明する。図5は図2の各処理に対応するデータ
の流れを示したものである。図中、41は図2の11の
圧縮データであり、これは図4の38として得られたデ
ータである。42は図2の12のデータ分離によって分
離された圧縮結果1であり、43は図2の12によって
分離された圧縮結果2である。この分離に際しては、図
3の21にあるヘッダからそれぞれ圧縮データの先頭へ
のポインタによって分離する。44は圧縮結果1を図2
の13の伸長処理1によって伸長したデータであり、4
5は圧縮結果2を伸長処理2によって伸長したデータで
ある。これらの伸長処理に際しては、それぞれ図3の2
1における圧縮方法の種類に対応する伸長処理を行って
伸長する。46は44に図2の15の後処理1を行って
変換したデータであり、47は45に図2の16の後処
理2を行って変換したデータである。
用いて説明する。図5は図2の各処理に対応するデータ
の流れを示したものである。図中、41は図2の11の
圧縮データであり、これは図4の38として得られたデ
ータである。42は図2の12のデータ分離によって分
離された圧縮結果1であり、43は図2の12によって
分離された圧縮結果2である。この分離に際しては、図
3の21にあるヘッダからそれぞれ圧縮データの先頭へ
のポインタによって分離する。44は圧縮結果1を図2
の13の伸長処理1によって伸長したデータであり、4
5は圧縮結果2を伸長処理2によって伸長したデータで
ある。これらの伸長処理に際しては、それぞれ図3の2
1における圧縮方法の種類に対応する伸長処理を行って
伸長する。46は44に図2の15の後処理1を行って
変換したデータであり、47は45に図2の16の後処
理2を行って変換したデータである。
【0020】これらの後処理に際しては、それぞれ図2
の21における前処理に対応する逆処理を後処理として
行う。ここでは、図1の3の前処理1が何もしない事で
あったから、図2の15の後処理1は何もしない。図1
の4の前処理2が差分を取る事であったから、図2の1
6の後処理2は差分の逆である差分を行う。
の21における前処理に対応する逆処理を後処理として
行う。ここでは、図1の3の前処理1が何もしない事で
あったから、図2の15の後処理1は何もしない。図1
の4の前処理2が差分を取る事であったから、図2の1
6の後処理2は差分の逆である差分を行う。
【0021】これを詳しく説明すると、45の先頭の
「8」はそのまま47の先頭に「8」として格納され
る。45の2番目の「1」は47の先頭の「8」との差
分が取られ、その結果の「7」が47の2番目のデータ
として格納される。45の3番目の「2」は47の2番
目の「7」と差分が取られ、その結果の「5」が47の
3番目のデータとして格納される。以下同様である。4
8は46と47に図2の17のデータ結合を行って得ら
れた結果である。つまり46,47をフィールドとする
データとして図4の31に完全に復元している。
「8」はそのまま47の先頭に「8」として格納され
る。45の2番目の「1」は47の先頭の「8」との差
分が取られ、その結果の「7」が47の2番目のデータ
として格納される。45の3番目の「2」は47の2番
目の「7」と差分が取られ、その結果の「5」が47の
3番目のデータとして格納される。以下同様である。4
8は46と47に図2の17のデータ結合を行って得ら
れた結果である。つまり46,47をフィールドとする
データとして図4の31に完全に復元している。
【0022】以上はデータが2つのフィールドよりなる
場合の例であるが、フィールドが3つ以上になった場合
も同様であり、また、元のデータがたった1つのフィー
ルドのみであった場合は、図1の2のデータ分離で何も
せず、図1の7のデータ結合ではデータにヘッダを付け
るだけの処理となり、図1の4,5は不要になる。図2
も同様である。
場合の例であるが、フィールドが3つ以上になった場合
も同様であり、また、元のデータがたった1つのフィー
ルドのみであった場合は、図1の2のデータ分離で何も
せず、図1の7のデータ結合ではデータにヘッダを付け
るだけの処理となり、図1の4,5は不要になる。図2
も同様である。
【0023】図6は前処理と圧縮処理の適切な組み合わ
せを判定する方法を示したブロック図である。図中、5
1は被圧縮データの一部であり、これは図1の2のデー
タ分離を行った後のデータの一部である。通常データの
数が100個から1000個ほどもあれば全体の傾向が
つかめる。52は前処理無しであり、何もしない事であ
る。53は前処理であり、差分,和分,排他論理和など
の処理が行われる。
せを判定する方法を示したブロック図である。図中、5
1は被圧縮データの一部であり、これは図1の2のデー
タ分離を行った後のデータの一部である。通常データの
数が100個から1000個ほどもあれば全体の傾向が
つかめる。52は前処理無しであり、何もしない事であ
る。53は前処理であり、差分,和分,排他論理和など
の処理が行われる。
【0024】54は圧縮法1であり、55は圧縮法2で
ある。56は圧縮法1であり、これは54の圧縮法1と
同一のものである。57は圧縮法2であり、これは55
の圧縮法2と同様のものである。58は圧縮データ長比
較であり、ここで、各圧縮結果のデータ長を比較して最
適な組み合わせを判定する。
ある。56は圧縮法1であり、これは54の圧縮法1と
同一のものである。57は圧縮法2であり、これは55
の圧縮法2と同様のものである。58は圧縮データ長比
較であり、ここで、各圧縮結果のデータ長を比較して最
適な組み合わせを判定する。
【0025】図6で示した処理を説明する。まず、51
でサンプルとして被圧縮データの一部を取り出し、これ
に、52,53で前処理を行わない場合と、行った場合
のデータを作る。しかる後、54,55,56,57で
圧縮法1と圧縮法2を前処理を行わないデータと前処理
を行ったデータの各々に対して適用して、その結果、前
処理無し圧縮法1,前処理無し圧縮法2,前処理有り圧
縮法1,前処理有り圧縮法2のデータを得る。これらを
比較処理58で比較して、どの場合が最もデータ量の削
減効果が高いかを判定する。この結果を用いて図1の前
処理と圧縮法の組み合わせを選定してもよい。もちろ
ん、図6の処理を用いる事無しにユーザーの知識と経験
によって前処理と圧縮法の組み合わせを選定してもよ
い。
でサンプルとして被圧縮データの一部を取り出し、これ
に、52,53で前処理を行わない場合と、行った場合
のデータを作る。しかる後、54,55,56,57で
圧縮法1と圧縮法2を前処理を行わないデータと前処理
を行ったデータの各々に対して適用して、その結果、前
処理無し圧縮法1,前処理無し圧縮法2,前処理有り圧
縮法1,前処理有り圧縮法2のデータを得る。これらを
比較処理58で比較して、どの場合が最もデータ量の削
減効果が高いかを判定する。この結果を用いて図1の前
処理と圧縮法の組み合わせを選定してもよい。もちろ
ん、図6の処理を用いる事無しにユーザーの知識と経験
によって前処理と圧縮法の組み合わせを選定してもよ
い。
【0026】図7は3つのフィールドより成るデータの
例である。図中、61は3つのフィールドよりなるデー
タの例であり、ここで用いられる文字は全て8ビットよ
り成るものとする。以下、本発明の一実施例を用いて、
図10における圧縮結果91が生成されるまでを説明す
る。
例である。図中、61は3つのフィールドよりなるデー
タの例であり、ここで用いられる文字は全て8ビットよ
り成るものとする。以下、本発明の一実施例を用いて、
図10における圧縮結果91が生成されるまでを説明す
る。
【0027】図8は図7の61に対して、フィールド間
の分離、および、前処理を行ったものである。図中、7
1は、図7の61を3つのフィールドに分離し、更に、
第1フィールドに対して差分をとったものである。72
は、図7の61を3つのフィールドに分離し、第2フィ
ールドに対して何もしなかったものである。73は、図
7の61を3つのフィールドに分離し、第3フィールド
に対し何もしなかったものである。
の分離、および、前処理を行ったものである。図中、7
1は、図7の61を3つのフィールドに分離し、更に、
第1フィールドに対して差分をとったものである。72
は、図7の61を3つのフィールドに分離し、第2フィ
ールドに対して何もしなかったものである。73は、図
7の61を3つのフィールドに分離し、第3フィールド
に対し何もしなかったものである。
【0028】図9は圧縮法としてハフマン法を用いた場
合のハフマン木の説明図である。図中、81は図8の7
1に対応するハフマン木であり、82は図8の72に対
応するハフマン木であり、83は73に対応するハフマ
ン木である。
合のハフマン木の説明図である。図中、81は図8の7
1に対応するハフマン木であり、82は図8の72に対
応するハフマン木であり、83は73に対応するハフマ
ン木である。
【0029】まず、図8の71において文字の出現頻度
を求めると、1が9回で最多であり、0が5回と続き、
9が1回で最貧である。これからハフマン木を構成す
る。ハフマン木では左に頻度の高い文字を置き右に頻度
の低い文字を置くので、91に示される様に、1,0,
9の順序に文字が置かれる。次に、これらの文字にコー
ドを割り振るのであるが、出現頻度の多いものに短いコ
ード、出現頻度の少ないものに長いコードを割り振る。
このコードの割り振りに対して、ハフマン木を左に進む
とビットの0を割り当て、ハフマン木を右に進むとビッ
トの1を割り当てる。従って、結果として、文字である
8ビットの1に対しては、1ビットの0を割り振り、文
字である8ビットの0には2ビットの10を割り振り、
文字である8ビットの9には2ビットの11を割り振
る。
を求めると、1が9回で最多であり、0が5回と続き、
9が1回で最貧である。これからハフマン木を構成す
る。ハフマン木では左に頻度の高い文字を置き右に頻度
の低い文字を置くので、91に示される様に、1,0,
9の順序に文字が置かれる。次に、これらの文字にコー
ドを割り振るのであるが、出現頻度の多いものに短いコ
ード、出現頻度の少ないものに長いコードを割り振る。
このコードの割り振りに対して、ハフマン木を左に進む
とビットの0を割り当て、ハフマン木を右に進むとビッ
トの1を割り当てる。従って、結果として、文字である
8ビットの1に対しては、1ビットの0を割り振り、文
字である8ビットの0には2ビットの10を割り振り、
文字である8ビットの9には2ビットの11を割り振
る。
【0030】82では、72でCが最多の7回、Aが6
回と続きBが3回と最貧である事から、81と同様にし
てハフマン木が生成される。
回と続きBが3回と最貧である事から、81と同様にし
てハフマン木が生成される。
【0031】83では、73でXが最多で8回、Zが5
回と続き、Yが3回で最貧である事から、81と同様に
してハフマン木が生成される。
回と続き、Yが3回で最貧である事から、81と同様に
してハフマン木が生成される。
【0032】図10は、図7の61に対する本発明の一
実施例による圧縮結果である。図中、91は図7の61
に対して第1フィールドのみ差分を取って各フィールド
をハフマン法で圧縮し、それにヘッダを付けて結合した
結果である。
実施例による圧縮結果である。図中、91は図7の61
に対して第1フィールドのみ差分を取って各フィールド
をハフマン法で圧縮し、それにヘッダを付けて結合した
結果である。
【0033】91ではヘッダ長は8ビットであり、圧縮
方法は1ビットの0か1で表わす事にして、0ならば無
圧縮、1ならばハフマン法とする。前処理は1ビットの
0か1で表わす事にして、0ならば無処理、1ならば差
分であるとする。圧縮データの先頭アドレスは8ビット
で表わす事にする。従って、ヘッダは8+1+1+8+
1+1+8+1+1+8=38ビットである。これによ
り、ヘッダ長には38が入る。
方法は1ビットの0か1で表わす事にして、0ならば無
圧縮、1ならばハフマン法とする。前処理は1ビットの
0か1で表わす事にして、0ならば無処理、1ならば差
分であるとする。圧縮データの先頭アドレスは8ビット
で表わす事にする。従って、ヘッダは8+1+1+8+
1+1+8+1+1+8=38ビットである。これによ
り、ヘッダ長には38が入る。
【0034】次に第1フィールドはハフマン法を用い、
前処理として差分を行っているから、圧縮法の部分に1
前処理の部分に1が入る。また、第1フィールドは先頭
に置かれているので、圧縮データへの先頭アドレスに0
が入る。第2フィールドではハフマン法を用い、前処理
が無処理であるため、圧縮法は1で前処理は0である。
圧縮データへの先頭は、第1フィールドの圧縮結果であ
るハフマン木24ビット+コード23ビット=47が入
る。ハフマン木とデータの説明は後で行う。第3フィー
ルドではハフマン法を用い、前処理が無処理であるた
め、圧縮法は1で前処理は0である。圧縮データへの先
頭は、第1フィールドの圧縮結果である47+第2フィ
ールドのハフマン木24ビット+コード25ビット=9
6が入る。以上が91のヘッダである1行目の内容であ
る。
前処理として差分を行っているから、圧縮法の部分に1
前処理の部分に1が入る。また、第1フィールドは先頭
に置かれているので、圧縮データへの先頭アドレスに0
が入る。第2フィールドではハフマン法を用い、前処理
が無処理であるため、圧縮法は1で前処理は0である。
圧縮データへの先頭は、第1フィールドの圧縮結果であ
るハフマン木24ビット+コード23ビット=47が入
る。ハフマン木とデータの説明は後で行う。第3フィー
ルドではハフマン法を用い、前処理が無処理であるた
め、圧縮法は1で前処理は0である。圧縮データへの先
頭は、第1フィールドの圧縮結果である47+第2フィ
ールドのハフマン木24ビット+コード25ビット=9
6が入る。以上が91のヘッダである1行目の内容であ
る。
【0035】91の第2行,第3行,第4行はそれぞ
れ、図8の71,72,73のハフマン法による圧縮結
果である。第2行について説明する。これはハフマン木
とコードよりなり、図9の81のハフマン木にある文字
の1,0,9がこの順序に格納される。つまり、出現頻
度の高い順であり、ハフマン木でみると左から順に格納
される。なお、各文字は8ビットであるため、1,0,
9が格納された109と言う文字は24ビットである。
次に、コード部分であるが、これは、図9の81に従っ
て、図8の71を文字の1はビットの0、文字の0はビ
ット10文字の9はビットの11に置き換えたものであ
る。
れ、図8の71,72,73のハフマン法による圧縮結
果である。第2行について説明する。これはハフマン木
とコードよりなり、図9の81のハフマン木にある文字
の1,0,9がこの順序に格納される。つまり、出現頻
度の高い順であり、ハフマン木でみると左から順に格納
される。なお、各文字は8ビットであるため、1,0,
9が格納された109と言う文字は24ビットである。
次に、コード部分であるが、これは、図9の81に従っ
て、図8の71を文字の1はビットの0、文字の0はビ
ット10文字の9はビットの11に置き換えたものであ
る。
【0036】第3行目,第4行目についても同様であ
る。なお、伸長に際しては、ハフマン木の作り方に従っ
て、まず、109より文字1に対しては0、文字0に対
しては10、文字9に対しては11とコード割り当てが
一意に決まる。これにより、第2行目の最初の11は9
とデコードされ、次の10は0、次の10は0、次の0
は1、次の10は0、次の0は1、次の0は1、次の1
0は0、次の10は0、次の0は1、次の10は0、次
の0は1、次の0は1、次の0は1、次の0は1、次の
0は1と、それぞれデコードされる。これにより、9,
0,0,1,0,1,1,0,0,1,0,1,1,
1,1,1と伸長され、確かに図8の71に復元されて
いる。
る。なお、伸長に際しては、ハフマン木の作り方に従っ
て、まず、109より文字1に対しては0、文字0に対
しては10、文字9に対しては11とコード割り当てが
一意に決まる。これにより、第2行目の最初の11は9
とデコードされ、次の10は0、次の10は0、次の0
は1、次の10は0、次の0は1、次の0は1、次の1
0は0、次の10は0、次の0は1、次の10は0、次
の0は1、次の0は1、次の0は1、次の0は1、次の
0は1と、それぞれデコードされる。これにより、9,
0,0,1,0,1,1,0,0,1,0,1,1,
1,1,1と伸長され、確かに図8の71に復元されて
いる。
【0037】
【発明の効果】本発明によれば、データをフィールド毎
に区切り、データの特徴を基に適切に選定された前処理
を行う事によって、圧縮によるデータの削減効果を増大
させる事が出来る。これにより、データの通信コストや
格納コストが削減され、計算機システム全体としての処
理効率の向上につながる。
に区切り、データの特徴を基に適切に選定された前処理
を行う事によって、圧縮によるデータの削減効果を増大
させる事が出来る。これにより、データの通信コストや
格納コストが削減され、計算機システム全体としての処
理効率の向上につながる。
【図1】本発明の一実施例による圧縮方法の処理手順の
ブロック図。
ブロック図。
【図2】本発明の一実施例による伸長方法の処理手順の
ブロック図。
ブロック図。
【図3】本発明の一実施例におけるヘッダフォーマット
の説明図。
の説明図。
【図4】図1の各処理に対応したデータの流れを示す説
明図。
明図。
【図5】図2の各処理に対応したデータの流れを示す説
明図。
明図。
【図6】本発明の一実施例での前処理と圧縮法の組み合
わせの判定処理の説明図。
わせの判定処理の説明図。
【図7】本発明の一実施例により処理されるデータの説
明図。
明図。
【図8】本発明の一実施例の処理により分離されたデー
タの説明図。
タの説明図。
【図9】本発明の一実施例によるハフマン木の説明図。
【図10】本発明の一実施例による圧縮結果を示す説明
図。
図。
1…被圧縮データ、2…被圧縮データのデータ分離処
理、3…前処理、4…前処理、5…圧縮処理、6…圧縮
処理、7…分離して圧縮したデータの結合処理、8…圧
縮結果、11…圧縮データ、12…圧縮データの分離、
13…伸長処理、14…伸長処理、15…後処理、16
…後処理、17…分離して伸長したデータの結合処理、
18…復元されたデータ、21…ヘッダ。
理、3…前処理、4…前処理、5…圧縮処理、6…圧縮
処理、7…分離して圧縮したデータの結合処理、8…圧
縮結果、11…圧縮データ、12…圧縮データの分離、
13…伸長処理、14…伸長処理、15…後処理、16
…後処理、17…分離して伸長したデータの結合処理、
18…復元されたデータ、21…ヘッダ。
Claims (6)
- 【請求項1】1個または複数のフィールドよりなるデー
タが多数集まって構成されているデータ群に対して、前
記データ群を各フィールド毎のデータ群に分離する手段
と、前記分離されたデータ群に対する圧縮手段と、前記
分離されたデータ群に対して前処理を行う手段と、前記
分離されたデータ群に対して前処理を行った結果に対し
て圧縮処理を行う手段と、前記分離されたデータ群に対
して、圧縮処理を行った結果および前処理を行った後に
圧縮した結果を結合する手段とを有する事を特徴とする
前処理付きデータ圧縮方法。 - 【請求項2】請求項1において生成された結果に対し
て、前記結果を1個または複数のデータ群に分離する手
段と、前記分離された結果を伸長する手段と、伸長した
結果に、請求項1において行われた前処理が実施された
場合に前処理の逆処理としての後処理を行う手段と、前
記伸長処理のみの結果および伸長処理後に後処理を実施
した結果を結合する手段とを有し、データの復元を行う
事を特徴とする圧縮データの伸長方法。 - 【請求項3】請求項1において、フィールドの内のデー
タ群の1つが値の大きい順にソートされている時に、前
処理として差分を用い、圧縮手段としてハフマン法を用
いる事を特徴とする前処理付きデータ圧縮方法。 - 【請求項4】請求項1において、前処理および圧縮手段
が複数用意され、データの特性に合わせてフィールド毎
に前処理手段と圧縮手段を組み合わせて用いる事を特徴
とする前処理付きデータ圧縮方法。 - 【請求項5】請求項4において、前処理手段として、差
分,和分,排他論理和を用いる事を特徴とする前処理付
きデータ圧縮方法。 - 【請求項6】請求項4において、データ群の内、所定個
数のデータを抽出する手段を有し、前記抽出したデータ
群をフィールド毎に分離し、前記分離結果に対して前処
理と圧縮処理の組み合わせによる処理を実施し、その結
果のデータ量を比較する手段を有し、前記比較結果に基
づいて各々のフィールドに対し最も効率のよい前処理と
圧縮手段を適用する事を特徴とする前処理付きデータ圧
縮方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8323598A JPH11284518A (ja) | 1998-03-30 | 1998-03-30 | 前処理付きデータ圧縮方法および圧縮データの伸長方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8323598A JPH11284518A (ja) | 1998-03-30 | 1998-03-30 | 前処理付きデータ圧縮方法および圧縮データの伸長方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH11284518A true JPH11284518A (ja) | 1999-10-15 |
Family
ID=13796672
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8323598A Pending JPH11284518A (ja) | 1998-03-30 | 1998-03-30 | 前処理付きデータ圧縮方法および圧縮データの伸長方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH11284518A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2014102763A (ja) * | 2012-11-21 | 2014-06-05 | Fuji Xerox Co Ltd | データ変換装置、データ復元装置、画像形成装置、画像形成システム、データ変換プログラムおよびデータ復元プログラム |
| JP2020141402A (ja) * | 2019-02-27 | 2020-09-03 | モヴィディウス リミテッド | データを圧縮する方法および装置 |
-
1998
- 1998-03-30 JP JP8323598A patent/JPH11284518A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2014102763A (ja) * | 2012-11-21 | 2014-06-05 | Fuji Xerox Co Ltd | データ変換装置、データ復元装置、画像形成装置、画像形成システム、データ変換プログラムおよびデータ復元プログラム |
| JP2020141402A (ja) * | 2019-02-27 | 2020-09-03 | モヴィディウス リミテッド | データを圧縮する方法および装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP1100274B1 (en) | Image decoding method using variable length codes | |
| CN113630125B (zh) | 数据压缩、编码解压缩方法、装置、电子设备及存储介质 | |
| CN1868127B (zh) | 数据压缩系统和方法 | |
| JP2001222392A5 (ja) | 画像処理装置及びその方法 | |
| CN110021369B (zh) | 基因测序数据压缩解压方法、系统及计算机可读介质 | |
| US7375660B1 (en) | Huffman decoding method | |
| CN112506879A (zh) | 数据处理方法及相关设备 | |
| JP5913748B2 (ja) | セキュアで損失のないデータ圧縮 | |
| CN108880559B (zh) | 数据压缩方法、数据解压缩方法、压缩设备及解压缩设备 | |
| EP0847026A2 (en) | Pattern encoding method | |
| JP2536422B2 (ja) | デ―タ圧縮装置及びデ―タ復元装置 | |
| US5812076A (en) | Data compressing apparatus, data restoring apparatus and recording medium | |
| JPH08130652A (ja) | 2次元画像データの圧縮方式および伸長方式 | |
| CN109299260B (zh) | 数据分类方法、装置以及计算机可读存储介质 | |
| JPH0884260A (ja) | 2次元画像データの圧縮方式および伸長方式 | |
| Kadimisetty et al. | Lossy image compression—A frequent sequence mining perspective employing efficient clustering | |
| JPH0723238A (ja) | 画像データ圧縮及び復元装置 | |
| JP2001188563A (ja) | オーディオ符号化のための効果的なセクション化法 | |
| JPH09275498A (ja) | 画像圧縮方法 | |
| JPH08130651A (ja) | 2次元画像データの圧縮方式および伸長方式 | |
| JPS61263369A (ja) | 多段階画像圧縮復元方法 | |
| JPH09181610A (ja) | パターン圧縮方法及び装置 | |
| JPH07336696A (ja) | 2次元画像データの圧縮方式および伸長方式 | |
| JP3100206B2 (ja) | データ圧縮方法 | |
| JPH0846793A (ja) | 2次元画像データの圧縮方式および伸長方式 |