JPH0926902A - ファイル圧縮並びに復元方法 - Google Patents
ファイル圧縮並びに復元方法Info
- Publication number
- JPH0926902A JPH0926902A JP7176322A JP17632295A JPH0926902A JP H0926902 A JPH0926902 A JP H0926902A JP 7176322 A JP7176322 A JP 7176322A JP 17632295 A JP17632295 A JP 17632295A JP H0926902 A JPH0926902 A JP H0926902A
- Authority
- JP
- Japan
- Prior art keywords
- record
- file
- compressed
- compression
- length
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【課題】 特に小型携帯端末機の記憶エリアを節約し、
圧縮ファイル中の所定のレコードのみを復元できるよう
にする。 【解決手段】 複数のレコードで構成された被圧縮ファ
イルをハフマン法により圧縮する方法において、各レコ
ードの位置情報と各レコード長情報とを圧縮ファイルに
付加し、前記レコードの先頭位置情報及びレコード長情
報に基づいて圧縮ファイルから所望のレコードのみを復
元することを特徴とする。
圧縮ファイル中の所定のレコードのみを復元できるよう
にする。 【解決手段】 複数のレコードで構成された被圧縮ファ
イルをハフマン法により圧縮する方法において、各レコ
ードの位置情報と各レコード長情報とを圧縮ファイルに
付加し、前記レコードの先頭位置情報及びレコード長情
報に基づいて圧縮ファイルから所望のレコードのみを復
元することを特徴とする。
Description
【0001】
【発明の属する技術分野】この発明は、コンピュータや
パソコンのデータファイルのデータ圧縮及び復元に関す
るもので、特にデータ収集・処理・保存をこなすハンデ
ィサイズの情報機に関するもので、その補助記憶装置、
つまりRAM領域を有効利用することを目的として、ハ
フマン法と呼ばれるファイル圧縮法を利用したものであ
る。
パソコンのデータファイルのデータ圧縮及び復元に関す
るもので、特にデータ収集・処理・保存をこなすハンデ
ィサイズの情報機に関するもので、その補助記憶装置、
つまりRAM領域を有効利用することを目的として、ハ
フマン法と呼ばれるファイル圧縮法を利用したものであ
る。
【0002】
【従来の技術】ハンディサイズの情報機としての小型携
帯端末機は図18に示す構成から成る。図18におい
て、小型携帯端末機1は、各部を制御するCPU1a
と、CPU1aの基本的な動作を制御するオペレーティ
ングシステムプログラムが記憶されるROM1bと、対
応業務用のアプリケーションプログラムをロードされる
と共に、該プログラムのワークエリアとして各種レジス
タ値が一時記憶されるRAM1cと、内部バスを介して
CPU1aから供給される各種データを表示する液晶表
示素子等で構成される表示回路1dと、数字入力用のテ
ンキーやファンクションキー等から構成される操作子1
eと、着脱自在に取付けられるメモリカード1fとから
構成されている。なお、1gは、例えば、モデム等から
構成され、シリアルデータ通信を制御する通信制御回路
である。
帯端末機は図18に示す構成から成る。図18におい
て、小型携帯端末機1は、各部を制御するCPU1a
と、CPU1aの基本的な動作を制御するオペレーティ
ングシステムプログラムが記憶されるROM1bと、対
応業務用のアプリケーションプログラムをロードされる
と共に、該プログラムのワークエリアとして各種レジス
タ値が一時記憶されるRAM1cと、内部バスを介して
CPU1aから供給される各種データを表示する液晶表
示素子等で構成される表示回路1dと、数字入力用のテ
ンキーやファンクションキー等から構成される操作子1
eと、着脱自在に取付けられるメモリカード1fとから
構成されている。なお、1gは、例えば、モデム等から
構成され、シリアルデータ通信を制御する通信制御回路
である。
【0003】さて、小型携帯端末機1で利用されるデー
タファイル(システムから読み込み専門に使用される画
面情報等のファイルで、固定長レコードを持つランダム
アクセスファイル)はパソコンで作成され、ダウンロー
ドにより小型携帯端末機1のRAM1cやメモリカード
1fにコピーされて利用される。
タファイル(システムから読み込み専門に使用される画
面情報等のファイルで、固定長レコードを持つランダム
アクセスファイル)はパソコンで作成され、ダウンロー
ドにより小型携帯端末機1のRAM1cやメモリカード
1fにコピーされて利用される。
【0004】しかし、RAM1c及びメモリカード1f
には容量の限界があり、小型携帯端末機1で大量のデー
タファイルを扱う大規模なシステムを運用しようとした
とき、データファイルを含むファイルが補助記憶装置に
収納出来なくなり、システムの運用が不可能となること
も予想される(図17参照)。
には容量の限界があり、小型携帯端末機1で大量のデー
タファイルを扱う大規模なシステムを運用しようとした
とき、データファイルを含むファイルが補助記憶装置に
収納出来なくなり、システムの運用が不可能となること
も予想される(図17参照)。
【0005】
【発明が解決しようとする課題】上述の問題を回避する
ためにデータファイルを圧縮後小型端末機にダウンロー
ドし、小型携帯端末機のシステムで利用するときに復元
して使用する方法が考えられるが、圧縮されたデータフ
ァイルを元のデータファイルに復元すると、復元された
データファイルを格納するため、RAMに空き領域が必
要である。
ためにデータファイルを圧縮後小型端末機にダウンロー
ドし、小型携帯端末機のシステムで利用するときに復元
して使用する方法が考えられるが、圧縮されたデータフ
ァイルを元のデータファイルに復元すると、復元された
データファイルを格納するため、RAMに空き領域が必
要である。
【0006】復元処理時間がかかるといった問題点がで
てくる(図16参照)。
てくる(図16参照)。
【0007】
【課題を解決するための手段】本発明では、基本的に
は、ファイルをパソコン上で圧縮し、圧縮されたデータ
ファイルをダウンロードにより小型携帯端末機にコピー
して、システムがこれを利用するとき必要なレコードの
みをメインメモリ上に復元するものである(図15参
照)。
は、ファイルをパソコン上で圧縮し、圧縮されたデータ
ファイルをダウンロードにより小型携帯端末機にコピー
して、システムがこれを利用するとき必要なレコードの
みをメインメモリ上に復元するものである(図15参
照)。
【0008】上記の目的のために、本発明は、ハフマン
法と呼ばれる圧縮アルゴリズムを有効利用することによ
り実現する。
法と呼ばれる圧縮アルゴリズムを有効利用することによ
り実現する。
【0009】ハフマン法は、後で詳述するが、ハフマン
木と呼ばれる符号の変換表によって、文字列中の出現頻
度の高い文字をビット長の短い符号語(圧縮された文
字)に、出現頻度の低い文字をビット長の長い符号語に
変換することで符号化を行なう。よって、生成される符
号語はビット単位で構成された長さが一定でない。ま
た、ハフマン木は1つの文字列について一意的に定まり
変化しない。また、一意復号可能な符号化を行えるた
め、各符号語の先頭からであれば復元可能である。
木と呼ばれる符号の変換表によって、文字列中の出現頻
度の高い文字をビット長の短い符号語(圧縮された文
字)に、出現頻度の低い文字をビット長の長い符号語に
変換することで符号化を行なう。よって、生成される符
号語はビット単位で構成された長さが一定でない。ま
た、ハフマン木は1つの文字列について一意的に定まり
変化しない。また、一意復号可能な符号化を行えるた
め、各符号語の先頭からであれば復元可能である。
【0010】従って、基本的に下記(a)、(b)、
(c)を行うことにより圧縮ファイル中の任意のレコー
ド(符号語列)を復元できる。
(c)を行うことにより圧縮ファイル中の任意のレコー
ド(符号語列)を復元できる。
【0011】(a)圧縮の際に、圧縮後のデータ長をカ
ウントして、圧縮ファイル中の各レコードの位置情報を
求め、圧縮ファイルに追加する。
ウントして、圧縮ファイル中の各レコードの位置情報を
求め、圧縮ファイルに追加する。
【0012】(b)圧縮ファイルから(a)のレコード
の位置情報を読みだして、この情報を基に所望のレコー
ドのみを復元する。
の位置情報を読みだして、この情報を基に所望のレコー
ドのみを復元する。
【0013】(c)復元の際に、隣接するレコードの位
置情報から所望のレコードの位置、データ長等の情報を
求め、その情報に基づいたデータを復元することで所望
のレコードを復元する。
置情報から所望のレコードの位置、データ長等の情報を
求め、その情報に基づいたデータを復元することで所望
のレコードを復元する。
【0014】まず、被圧縮ファイルが予め定められた長
さ(文字列の数)のレコードで構成されている場合に
は、下記、(d)を付加して行う。なお、固定長のレコ
ードで構成されている場合は、各レコードが予め定めら
れた長さが一定の場合なので、前記の場合に含まれる。
さ(文字列の数)のレコードで構成されている場合に
は、下記、(d)を付加して行う。なお、固定長のレコ
ードで構成されている場合は、各レコードが予め定めら
れた長さが一定の場合なので、前記の場合に含まれる。
【0015】(d)圧縮の際に、レコードの文字数をカ
ウントして、これが前記のレコード長に達した時をもっ
て、各レコードの終端と判定して、(a)の各レコード
の位置情報を確定する。
ウントして、これが前記のレコード長に達した時をもっ
て、各レコードの終端と判定して、(a)の各レコード
の位置情報を確定する。
【0016】更に、(c)の代わりに下記(e)、
(f)を付加して行うことにより、復元処理が簡易化で
きる。
(f)を付加して行うことにより、復元処理が簡易化で
きる。
【0017】(e)被圧縮ファイルの予め定められたレ
コード長情報を圧縮ファイルに付加する。
コード長情報を圧縮ファイルに付加する。
【0018】(f)復元の際に、圧縮ファイルから
(e)のレコード長情報を読みだして、そのレコード長
の文字列だけを復元することで所望のレコードのみを復
元できる。
(e)のレコード長情報を読みだして、そのレコード長
の文字列だけを復元することで所望のレコードのみを復
元できる。
【0019】次に、被圧縮ファイルが可変長のレコード
で構成されている場合には、通常各レコードの終端がデ
リミタ(区切り文字)で区切られているので、(a)、
(b)、(c)に下記(g)を付加して行う。
で構成されている場合には、通常各レコードの終端がデ
リミタ(区切り文字)で区切られているので、(a)、
(b)、(c)に下記(g)を付加して行う。
【0020】(g)圧縮の際に、レコードの文字が前記
のデリミタに一致した時をもって、そのレコードの終端
と判定して(a)の各レコードの位置情報を確定する。
のデリミタに一致した時をもって、そのレコードの終端
と判定して(a)の各レコードの位置情報を確定する。
【0021】更に、(c)の代わりに下記(h)を付加
して行うことにより、復元処理が簡易化できる。
して行うことにより、復元処理が簡易化できる。
【0022】(h)復元の際に、レコードの文字が前記
のデリミタに一致した時をもって、そのレコードの終端
と判定して復元を終了することで所望のレコードのみを
復元する。
のデリミタに一致した時をもって、そのレコードの終端
と判定して復元を終了することで所望のレコードのみを
復元する。
【0023】この発明によれば、パソコン上でハフマン
法圧縮アルゴリズムで圧縮されたデータファイルをダウ
ンロードにより小型携帯端末機にコピーして、システム
がこれを利用するとき必要なレコードのみをメインメモ
リ上に復元する。この結果、RAMの空き領域の一部が
復元されたデータファイルのために使用されることがな
い。しかも、レコード長はファイル長より充分短いた
め、復元処理時間が短い。
法圧縮アルゴリズムで圧縮されたデータファイルをダウ
ンロードにより小型携帯端末機にコピーして、システム
がこれを利用するとき必要なレコードのみをメインメモ
リ上に復元する。この結果、RAMの空き領域の一部が
復元されたデータファイルのために使用されることがな
い。しかも、レコード長はファイル長より充分短いた
め、復元処理時間が短い。
【0024】
【発明の実施の形態】以下、図面を参照してこの発明を
小型携帯端末機における圧縮ファイルの利用において説
明する。図18にこの発明に係る小型携帯端末機の構成
を示すブロック図を示す。この発明は、このような構成
からなる小型携帯端末機に適用されるものである。従
来、図17に示すように、小型携帯端末機補助記憶装置
12にコピーされたデータファイル1のレコードを小型
携帯端末機10が読み込む(A1)。あるいは、図16
に示すように、圧縮されたデータファイル1を小型携帯
端末機に読み込み(B1)、復元した後補助記憶装置1
2の空き領域へ書き込み(B2)、その復元されたデー
タファイル1のレコードを小型携帯端末機10が読み込
む(B3)。
小型携帯端末機における圧縮ファイルの利用において説
明する。図18にこの発明に係る小型携帯端末機の構成
を示すブロック図を示す。この発明は、このような構成
からなる小型携帯端末機に適用されるものである。従
来、図17に示すように、小型携帯端末機補助記憶装置
12にコピーされたデータファイル1のレコードを小型
携帯端末機10が読み込む(A1)。あるいは、図16
に示すように、圧縮されたデータファイル1を小型携帯
端末機に読み込み(B1)、復元した後補助記憶装置1
2の空き領域へ書き込み(B2)、その復元されたデー
タファイル1のレコードを小型携帯端末機10が読み込
む(B3)。
【0025】本願発明では、図15に示すように、ハフ
マン法を利用した圧縮法によって圧縮されたデータファ
イル1の必要なレコードのみを小型携帯端末機10が読
み込み(C1)、復元する。復元されたレコードは、メ
インメモリに置かれる。
マン法を利用した圧縮法によって圧縮されたデータファ
イル1の必要なレコードのみを小型携帯端末機10が読
み込み(C1)、復元する。復元されたレコードは、メ
インメモリに置かれる。
【0026】ここで、ハフマン法と呼ばれる圧縮アルゴ
リズムについて簡単に説明すると、ハフマン法は、ハフ
マン木と呼ばれる符号の変換表によって、文字列中の出
現頻度の高い文字をビット長の短い符号語(圧縮された
文字)に、出現頻度の低い文字を長いビット長の符号語
に変換することで符号化を行なう。よって、生成される
符号語はビット単位で構成された長さが一定でない。
リズムについて簡単に説明すると、ハフマン法は、ハフ
マン木と呼ばれる符号の変換表によって、文字列中の出
現頻度の高い文字をビット長の短い符号語(圧縮された
文字)に、出現頻度の低い文字を長いビット長の符号語
に変換することで符号化を行なう。よって、生成される
符号語はビット単位で構成された長さが一定でない。
【0027】ハフマン木は、文字列中に出現した文字
(葉という)、もしくは節を出現回数が少ないものから
節によって束ね、出現回数の合計を節の出現回数とする
作業を節が1つになるまで繰り返す(最後の節を根とい
う)ことによって得られる。今、“ADCABAEBA
ADC”という文字列をハフマン法で符号化すると、構
成されるハフマン木は図1のようになる。
(葉という)、もしくは節を出現回数が少ないものから
節によって束ね、出現回数の合計を節の出現回数とする
作業を節が1つになるまで繰り返す(最後の節を根とい
う)ことによって得られる。今、“ADCABAEBA
ADC”という文字列をハフマン法で符号化すると、構
成されるハフマン木は図1のようになる。
【0028】図1において、葉の( )内は、それぞれ
の文字のデータファイル1中の出現回数である。節、根
の( )内は、葉もしくは節の( )内の数字を足し合
わせたものである。
の文字のデータファイル1中の出現回数である。節、根
の( )内は、葉もしくは節の( )内の数字を足し合
わせたものである。
【0029】ハフマン木で、根、節、葉をつなぐものを
枝と呼ぶ。そして、根、節の各分岐地点において、向か
って右下に伸びる枝に1、左下に伸びる枝に0を与え、
根から葉に至るまでに辿った枝についていた1と0の並
びをビット列としたものがハフマン符号(ハフマン法に
よる符号語)となる。前記の文字列“ADCABAEB
AADC”に対するハフマン符号は図2のようになり、
符号語の列(圧縮された文字列)は図3のようになる。
なお、圧縮後のファイルには、復元時にもハフマン木が
利用されるため、ハフマン木の情報が付加される。
枝と呼ぶ。そして、根、節の各分岐地点において、向か
って右下に伸びる枝に1、左下に伸びる枝に0を与え、
根から葉に至るまでに辿った枝についていた1と0の並
びをビット列としたものがハフマン符号(ハフマン法に
よる符号語)となる。前記の文字列“ADCABAEB
AADC”に対するハフマン符号は図2のようになり、
符号語の列(圧縮された文字列)は図3のようになる。
なお、圧縮後のファイルには、復元時にもハフマン木が
利用されるため、ハフマン木の情報が付加される。
【0030】ここで、ハフマン木は、被圧縮ファイル内
の全ての文字の出現頻度を調べて作成されるので、1つ
の文字列について一意的に定まり変化しない。また、一
意復号可能な符号化を行なえるため、各符号語の先頭か
らであれば復元可能である。
の全ての文字の出現頻度を調べて作成されるので、1つ
の文字列について一意的に定まり変化しない。また、一
意復号可能な符号化を行なえるため、各符号語の先頭か
らであれば復元可能である。
【0031】そこで本願発明の基本となる1つの文字を
圧縮する手順とファイルの全体を圧縮する手順とをフロ
ーチャートで表して、それぞれ図4と図5とに示す。
圧縮する手順とファイルの全体を圧縮する手順とをフロ
ーチャートで表して、それぞれ図4と図5とに示す。
【0032】すなわち、図1のハフマン木の枝についた
1もしくは0を記録しながら葉(文字)から根までさか
のぼり、根に辿り着いたところで記録していた1,0の
列を逆にして、ビット列に変換しながら圧縮ファイルに
出力する方法が取られる。ただし、圧縮ファイルの符号
語の出力は、バイト単位で行われる。また、ファイルに
対する圧縮は、1文字に対する圧縮をファイルの先頭か
ら最後尾までに施せばよい。
1もしくは0を記録しながら葉(文字)から根までさか
のぼり、根に辿り着いたところで記録していた1,0の
列を逆にして、ビット列に変換しながら圧縮ファイルに
出力する方法が取られる。ただし、圧縮ファイルの符号
語の出力は、バイト単位で行われる。また、ファイルに
対する圧縮は、1文字に対する圧縮をファイルの先頭か
ら最後尾までに施せばよい。
【0033】本願発明は、上記のハフマン法による圧縮
(符号化)/復元(復号化)アルゴリズムに基づいて行
われる。
(符号化)/復元(復号化)アルゴリズムに基づいて行
われる。
【0034】また、本願発明では、ハフマン木は1つの
文字列について一意的に定まり変化しないことから、各
符号語の先頭からであれば、符号語列の任意の符号語か
ら復元可能であることに基づいて、任意のレコードのみ
を復元するため、前記図4及び図5のフローチャートに
下記(a)(b)をつけ加えることが必要となる。
文字列について一意的に定まり変化しないことから、各
符号語の先頭からであれば、符号語列の任意の符号語か
ら復元可能であることに基づいて、任意のレコードのみ
を復元するため、前記図4及び図5のフローチャートに
下記(a)(b)をつけ加えることが必要となる。
【0035】(a)ハフマン木に基いて圧縮された文字
列の総ビット数をカウントする。
列の総ビット数をカウントする。
【0036】(b)1レコード分の圧縮が終了する度
に、符号語の列の総ビット数を配列等の作業領域に記録
し、圧縮終了時に圧縮ファイルに付加する。
に、符号語の列の総ビット数を配列等の作業領域に記録
し、圧縮終了時に圧縮ファイルに付加する。
【0037】すなわち、従来のハフマン法による圧縮フ
ァイルは図9に示すように、符号化された圧縮データ部
81にハフマン木情報82が付加されたものである。圧
縮データ部81中の各レコード1,2,……,n,は構
成する符号語がビット単位の長さが一定しないことによ
り、レコードのランダムアクセスが不可能となる。
ァイルは図9に示すように、符号化された圧縮データ部
81にハフマン木情報82が付加されたものである。圧
縮データ部81中の各レコード1,2,……,n,は構
成する符号語がビット単位の長さが一定しないことによ
り、レコードのランダムアクセスが不可能となる。
【0038】本発明では、復元時に任意のレコードのみ
を復元するため、上記従来の圧縮ファイルに、図10に
示すように圧縮データ部91中の各レコード(1,2,
……,n,)の位置がレコード番号順にレコード位置情
報部92としてつけ加えられる。
を復元するため、上記従来の圧縮ファイルに、図10に
示すように圧縮データ部91中の各レコード(1,2,
……,n,)の位置がレコード番号順にレコード位置情
報部92としてつけ加えられる。
【0039】以下、請求項に対応して実施形態を説明す
る。
る。
【0040】(実施例1)請求項1に対応した、被圧縮
ファイルが複数の予め定められた長さ(文字列の数)の
レコードで構成されている場合の、ファイルの圧縮方法
の一実施例を説明する。
ファイルが複数の予め定められた長さ(文字列の数)の
レコードで構成されている場合の、ファイルの圧縮方法
の一実施例を説明する。
【0041】まず、図6のフローチャートに示す1文字
に対する圧縮がスタートする(ST60)。なお、先だ
って、被圧縮ファイルの1レコードについてハフマン木
を形成しておく必要がある。
に対する圧縮がスタートする(ST60)。なお、先だ
って、被圧縮ファイルの1レコードについてハフマン木
を形成しておく必要がある。
【0042】被圧縮ファイルから1文字取り出す(ST
61)。ステップST61で取り出した文字に対応する
ハフマン木の葉を見つける(ST62)。この葉の1つ
上の節まで遡り辿った枝についていた0もしくは1を作
業領域に出力する(ST63)。ステップST63で出
力した「0」もしくは「1」のビットはレコード位置カ
ウンタでカウントする(ST64)。根に辿り着くまで
ステップST63及びST64が続けられる(ST6
5)。かくして作業領域に出力されたビット列(符号
語)を圧縮ファイルへ出力する(ST66)。これで1
文字に対する圧縮は終了する。
61)。ステップST61で取り出した文字に対応する
ハフマン木の葉を見つける(ST62)。この葉の1つ
上の節まで遡り辿った枝についていた0もしくは1を作
業領域に出力する(ST63)。ステップST63で出
力した「0」もしくは「1」のビットはレコード位置カ
ウンタでカウントする(ST64)。根に辿り着くまで
ステップST63及びST64が続けられる(ST6
5)。かくして作業領域に出力されたビット列(符号
語)を圧縮ファイルへ出力する(ST66)。これで1
文字に対する圧縮は終了する。
【0043】次いで、ファイルに対する圧縮は、図7に
示すフローで行なわれ、ファイルに対する圧縮がスター
トする(ST70)。図6のフローで示した1文字に対
する圧縮を行い、圧縮の処理回数をカウンタBにカウン
トする(ST72,ST73)。これに先だってカウン
タBの初期値を0とする(ST71)。カウンタBの値
がレコード長になるまでステップST72,ST73が
続けられる(ST74)。このとき1レコード分の圧縮
が終了する度に、レコード位置カウンタの値(1レコー
ド内の総ビット数)を作業領域に出力する(ST7
5)。そうしてカウンタBを初期化する(ST76)。
上記のステップST72〜ST76を1ファイルが終了
するまで続けられる(ST77)。ステップST75で
作業領域に出力していた各レコード位置カウンタの値を
圧縮ファイルに付加して(ST78)ファイルに対する
圧縮は終了する。この結果、圧縮ファイルは図10に示
したように圧縮データ部91中の各レコード(1,2,
……,n,)の位置(終端位置)が、圧縮ファイルの先
頭からのビット数としてレコード番号順にレコード位置
情報部92としてつけ加えられる。
示すフローで行なわれ、ファイルに対する圧縮がスター
トする(ST70)。図6のフローで示した1文字に対
する圧縮を行い、圧縮の処理回数をカウンタBにカウン
トする(ST72,ST73)。これに先だってカウン
タBの初期値を0とする(ST71)。カウンタBの値
がレコード長になるまでステップST72,ST73が
続けられる(ST74)。このとき1レコード分の圧縮
が終了する度に、レコード位置カウンタの値(1レコー
ド内の総ビット数)を作業領域に出力する(ST7
5)。そうしてカウンタBを初期化する(ST76)。
上記のステップST72〜ST76を1ファイルが終了
するまで続けられる(ST77)。ステップST75で
作業領域に出力していた各レコード位置カウンタの値を
圧縮ファイルに付加して(ST78)ファイルに対する
圧縮は終了する。この結果、圧縮ファイルは図10に示
したように圧縮データ部91中の各レコード(1,2,
……,n,)の位置(終端位置)が、圧縮ファイルの先
頭からのビット数としてレコード番号順にレコード位置
情報部92としてつけ加えられる。
【0044】なお、被圧縮ファイルのレコード長は、圧
縮の都度、数値を入力することが適当であるが、常に一
定のレコード長である場合には、圧縮のプログラムに入
力されていてもよい。
縮の都度、数値を入力することが適当であるが、常に一
定のレコード長である場合には、圧縮のプログラムに入
力されていてもよい。
【0045】更に本方法は、被圧縮ファイルの各レコー
ドの長さが異なる場合でも、例えば図7のST74のレ
コード長をレコード順に切り替えることによって、適用
することができる。
ドの長さが異なる場合でも、例えば図7のST74のレ
コード長をレコード順に切り替えることによって、適用
することができる。
【0046】(実施例2)請求項2に対応した、被圧縮
ファイルが複数の可変長のレコードで構成されている場
合の、ファイルの圧縮方法の一実施例を説明する。
ファイルが複数の可変長のレコードで構成されている場
合の、ファイルの圧縮方法の一実施例を説明する。
【0047】このような可変長レコードで構成されたフ
ァイルは、通常、各レコードの終端がデリミタ(区切り
文字)で区切られており、ファイルに対する圧縮は、図
8に示すフローで行なわれる。図6のフローで示した1
文字に対する圧縮を行い(ST81)、レコード終端に
挿入されたデリミタを圧縮する(ST82)まで続け
る。このときのレコード位置カウンタの値を作業領域に
出力する(ST83)。上記のステップST81〜ST
83を1ファイルが終了するまで続けられる(ST8
4)。ステップST83で作業領域に出力していた各レ
コード位置カウンタの値を圧縮ファイルに付加して(S
T85)ファイルに対する圧縮は終了する。この結果、
圧縮ファイルは図10に示したように圧縮データ部91
中の各レコード(1,2,……,n,)の位置(終端位
置)が、圧縮ファイルの先頭からのビット数としてレコ
ード番号順にレコード位置情報部92としてつけ加えら
れる。
ァイルは、通常、各レコードの終端がデリミタ(区切り
文字)で区切られており、ファイルに対する圧縮は、図
8に示すフローで行なわれる。図6のフローで示した1
文字に対する圧縮を行い(ST81)、レコード終端に
挿入されたデリミタを圧縮する(ST82)まで続け
る。このときのレコード位置カウンタの値を作業領域に
出力する(ST83)。上記のステップST81〜ST
83を1ファイルが終了するまで続けられる(ST8
4)。ステップST83で作業領域に出力していた各レ
コード位置カウンタの値を圧縮ファイルに付加して(S
T85)ファイルに対する圧縮は終了する。この結果、
圧縮ファイルは図10に示したように圧縮データ部91
中の各レコード(1,2,……,n,)の位置(終端位
置)が、圧縮ファイルの先頭からのビット数としてレコ
ード番号順にレコード位置情報部92としてつけ加えら
れる。
【0048】(実施例3)請求項3に対応した、実施例
1又は実施例2の圧縮ファイルの復元方法の一実施例を
説明する。
1又は実施例2の圧縮ファイルの復元方法の一実施例を
説明する。
【0049】まず圧縮ファイルから任意のレコードのみ
を復元する方法について説明する。図10に示した圧縮
ファイルの「各レコードの位置」データは、各レコード
の終端位置データなので、復元するレコードをi番目と
すると、圧縮ファイルから「i−1番目のレコードの位
置」データを読み込む。
を復元する方法について説明する。図10に示した圧縮
ファイルの「各レコードの位置」データは、各レコード
の終端位置データなので、復元するレコードをi番目と
すると、圧縮ファイルから「i−1番目のレコードの位
置」データを読み込む。
【0050】このデータは、ファイルの先端からi−1
番目のレコードの終端までの総ビット数で表わされてい
る。図10の圧縮データ部91を拡大すると図11のよ
うになるので、前記のデータの総ビット数を(j−1)
[バイト]+k[ビット]のバイト単位に変換すること
ができる。
番目のレコードの終端までの総ビット数で表わされてい
る。図10の圧縮データ部91を拡大すると図11のよ
うになるので、前記のデータの総ビット数を(j−1)
[バイト]+k[ビット]のバイト単位に変換すること
ができる。
【0051】次に、ファイルポインタにより圧縮データ
部からi番目のレコードを取り出す方法について説明す
る。ファイルポインタとは、C言語における論理アドレ
スのことで、バイト単位でしか移動できないので前記の
換算を行っている。図11に示すようにファイルポイン
タを圧縮データ部91の始端から(j−1)[バイト]
移動させた後、j[バイト]目の(k+1)[ビット]
目から復元処理を始め、レコード長分だけ処理を継続さ
せれば、i番目のレコードのみを復元することが出来
る。
部からi番目のレコードを取り出す方法について説明す
る。ファイルポインタとは、C言語における論理アドレ
スのことで、バイト単位でしか移動できないので前記の
換算を行っている。図11に示すようにファイルポイン
タを圧縮データ部91の始端から(j−1)[バイト]
移動させた後、j[バイト]目の(k+1)[ビット]
目から復元処理を始め、レコード長分だけ処理を継続さ
せれば、i番目のレコードのみを復元することが出来
る。
【0052】ここで、圧縮ファイルの「i番目のレコー
ド位置」は、i番目までのレコードの終端までのデータ
なので、i番目のレコードのレコード長は、「i番目の
レコード位置」データを読みこんで、「i−1番目のレ
コード位置」データを減算することにより求められる。
ド位置」は、i番目までのレコードの終端までのデータ
なので、i番目のレコードのレコード長は、「i番目の
レコード位置」データを読みこんで、「i−1番目のレ
コード位置」データを減算することにより求められる。
【0053】なお、復元するときも、ハフマン木情報が
利用される。
利用される。
【0054】次にフローチャートにてより詳細に説明す
る。
る。
【0055】まず、1文字に対する復元について説明す
る。1文字に対する復元は、図12(a)のフローに示
すように、圧縮ファイルから1ビット取り出す(STa
121)。取出したビットにより図1に示したハフマン
木を1つ下の節まで下げる、つまり取出したビットが
「0」のときは左下の節、「1」のときは右下の節まで
下げる(STa122)。このとき1ビットに対する処
理回数をカウンタA’にカウントする(STa12
3)。ステップSTa122においてハフマン木の葉に
辿りつくまで行う(STa124)。葉に対応した文字
をメモリに出力して(STa125)、1文字に対する
復元は終了する。
る。1文字に対する復元は、図12(a)のフローに示
すように、圧縮ファイルから1ビット取り出す(STa
121)。取出したビットにより図1に示したハフマン
木を1つ下の節まで下げる、つまり取出したビットが
「0」のときは左下の節、「1」のときは右下の節まで
下げる(STa122)。このとき1ビットに対する処
理回数をカウンタA’にカウントする(STa12
3)。ステップSTa122においてハフマン木の葉に
辿りつくまで行う(STa124)。葉に対応した文字
をメモリに出力して(STa125)、1文字に対する
復元は終了する。
【0056】次に、レコードの復元について説明する。
その復元フローは図14に示す。この場合の圧縮ファイ
ルには、レコード位置情報は、例えば(i−1)番目の
レコードの終りが圧縮ファイル頭初からの総ビット数を
nとして、i番目のレコード終りが圧縮ファイル頭始か
らの総ビット数をmとして圧縮ファイル中のそれぞれ
「レコードiの位置」と「レコードi−1の位置」に記
憶されている。圧縮後の「レコードi」のレコード長は
m−nで求められる。
その復元フローは図14に示す。この場合の圧縮ファイ
ルには、レコード位置情報は、例えば(i−1)番目の
レコードの終りが圧縮ファイル頭初からの総ビット数を
nとして、i番目のレコード終りが圧縮ファイル頭始か
らの総ビット数をmとして圧縮ファイル中のそれぞれ
「レコードiの位置」と「レコードi−1の位置」に記
憶されている。圧縮後の「レコードi」のレコード長は
m−nで求められる。
【0057】圧縮ファイルから復元対象レコードの位置
情報とレコード長情報(前記のように復元対象レコード
と隣接するレコードの位置情報から換算)を取り出す
(ST141)。取り出したi番目のレコードの位置を
読み込むため、図11で説明したように、ファイルポイ
ンタを(j−1)バイト移動させる(ST143)。j
バイト目の先頭から(k+1)ビット目を取り出し(S
T144)、その(k+1)ビットから1文字に対する
復元を開始する(ST145)。1ビットに対する処理
回数のカウンタ値A’が圧縮後のレコード長になった
(ST146)ときi番目レコードの復元は終了する。
情報とレコード長情報(前記のように復元対象レコード
と隣接するレコードの位置情報から換算)を取り出す
(ST141)。取り出したi番目のレコードの位置を
読み込むため、図11で説明したように、ファイルポイ
ンタを(j−1)バイト移動させる(ST143)。j
バイト目の先頭から(k+1)ビット目を取り出し(S
T144)、その(k+1)ビットから1文字に対する
復元を開始する(ST145)。1ビットに対する処理
回数のカウンタ値A’が圧縮後のレコード長になった
(ST146)ときi番目レコードの復元は終了する。
【0058】被圧縮ファイルが可変長のレコードで構成
されている場合で、各レコードの終端がデリミタ(区切
り文字)で区切られている場合には、レコードの文字が
前記のデリミタに一致した時をもって、そのレコードの
終端と判定して復元を終了することで所望のレコードの
みを復元してもよい。
されている場合で、各レコードの終端がデリミタ(区切
り文字)で区切られている場合には、レコードの文字が
前記のデリミタに一致した時をもって、そのレコードの
終端と判定して復元を終了することで所望のレコードの
みを復元してもよい。
【0059】(実施例4)請求項4及び請求項5に対応
した、被圧縮ファイルが複数の予め定められた長さ(文
字列の数)のレコードで構成されている場合の圧縮及び
復元方法の一実施例を説明する。この方法は、被圧縮フ
ァイルの予め定められたレコード長情報が、圧縮ファイ
ルに付加されていることに特徴がある方法であり、前記
の実施例の方法に比べて復元方法のプログラムソフトが
簡潔化され、その結果、処理の高速化が図れる利点を有
する。レコード長情報は、例えば圧縮ファイルのヘッダ
に付加することが望ましいが、他の場所、例えばレコー
ド位置情報部等に付加してもよい。
した、被圧縮ファイルが複数の予め定められた長さ(文
字列の数)のレコードで構成されている場合の圧縮及び
復元方法の一実施例を説明する。この方法は、被圧縮フ
ァイルの予め定められたレコード長情報が、圧縮ファイ
ルに付加されていることに特徴がある方法であり、前記
の実施例の方法に比べて復元方法のプログラムソフトが
簡潔化され、その結果、処理の高速化が図れる利点を有
する。レコード長情報は、例えば圧縮ファイルのヘッダ
に付加することが望ましいが、他の場所、例えばレコー
ド位置情報部等に付加してもよい。
【0060】まず、請求項4に対応したファイルの圧縮
方法は、実施例1の方法と同様である。次いで、請求項
5に対応した圧縮ファイルの復元方法について説明す
る。
方法は、実施例1の方法と同様である。次いで、請求項
5に対応した圧縮ファイルの復元方法について説明す
る。
【0061】この場合の1文字に対する復元のフロー
と、レコードに対する復元のフローをそれぞれ図12
(b)と図13に示す。図12(b)において、1文字
に対する復元は、圧縮ファイルから1ビット取り出す
(STb121)。取り出したビットにより図1に示し
たハフマン木を1つ下の節まで下げる。つまり取り出し
たビットが「0」のときは左下の節、「1」のときは右
下の節まで下げる(STb122)。ステップSTb1
22においてハフマン木の葉に辿りつくまで行う(ST
b123)。葉に対応した文字をメモリに出力して(S
Tb124)、1文字に対する復元は終了する。図13
において、圧縮ファイルから復元対象レコードの位置情
報とレコード長を取り出す(ST131)。取り出した
i番目レコードの位置を読み込むため、図11で説明し
たように、ファイルポインタを(j−1)バイト移動さ
せる(ST133)。圧縮ファイルの圧縮データ部のj
バイト目の先頭から(k+1)ビット目を取り出し(S
T134)、その(k+1)ビットから1文字に対する
復元を開始する(ST135)。このときから復元の処
理回数のカウントを始め(ST136)、カウンタAの
値が圧縮前のレコード長に達した(ST137)ときi
番目レコードの復元が終了する。
と、レコードに対する復元のフローをそれぞれ図12
(b)と図13に示す。図12(b)において、1文字
に対する復元は、圧縮ファイルから1ビット取り出す
(STb121)。取り出したビットにより図1に示し
たハフマン木を1つ下の節まで下げる。つまり取り出し
たビットが「0」のときは左下の節、「1」のときは右
下の節まで下げる(STb122)。ステップSTb1
22においてハフマン木の葉に辿りつくまで行う(ST
b123)。葉に対応した文字をメモリに出力して(S
Tb124)、1文字に対する復元は終了する。図13
において、圧縮ファイルから復元対象レコードの位置情
報とレコード長を取り出す(ST131)。取り出した
i番目レコードの位置を読み込むため、図11で説明し
たように、ファイルポインタを(j−1)バイト移動さ
せる(ST133)。圧縮ファイルの圧縮データ部のj
バイト目の先頭から(k+1)ビット目を取り出し(S
T134)、その(k+1)ビットから1文字に対する
復元を開始する(ST135)。このときから復元の処
理回数のカウントを始め(ST136)、カウンタAの
値が圧縮前のレコード長に達した(ST137)ときi
番目レコードの復元が終了する。
【0062】なお、被圧縮ファイルのレコード長は、圧
縮又は復元の都度、数値を入力することが望ましいが、
常に一定のレコード長である場合には、圧縮又は復元の
プログラムに入力されていてもよい。
縮又は復元の都度、数値を入力することが望ましいが、
常に一定のレコード長である場合には、圧縮又は復元の
プログラムに入力されていてもよい。
【0063】以上の実施例において、圧縮後の各レコー
ドの位置情報は、最初のレコードのデータの始め端から
各レコードのデータの終端までのビット数で表している
が、他の情報、例えば、各レコードの始め端までのビッ
ト数、各レコードのデータ長等でも良い。
ドの位置情報は、最初のレコードのデータの始め端から
各レコードのデータの終端までのビット数で表している
が、他の情報、例えば、各レコードの始め端までのビッ
ト数、各レコードのデータ長等でも良い。
【0064】
【発明の効果】以上説明したように、ハフマン木は1つ
の文字列について一意的に定まり変化しない。また、一
意復号可能な符号化を行なえるため、圧縮されたデータ
は各符号語の先頭からであれば、任意のレコード(符号
語列)からの復元が可能である。
の文字列について一意的に定まり変化しない。また、一
意復号可能な符号化を行なえるため、圧縮されたデータ
は各符号語の先頭からであれば、任意のレコード(符号
語列)からの復元が可能である。
【0065】よって、圧縮時に各レコードの位置情報を
記録し、圧縮ファイルに付加することにより、任意のレ
コードを復元できる。
記録し、圧縮ファイルに付加することにより、任意のレ
コードを復元できる。
【0066】例えば、パソコン上でハフマン法により圧
縮されたデータファイルをダウンロードにより小型携帯
端末機にコピーして、これを利用するとき必要なレコー
ドのみをメインメモリ上に復元できる。この結果、小型
携帯端末機の補助記憶装置であるRAMの空き領域が復
元されたデータファイルのために使用されることがな
い。
縮されたデータファイルをダウンロードにより小型携帯
端末機にコピーして、これを利用するとき必要なレコー
ドのみをメインメモリ上に復元できる。この結果、小型
携帯端末機の補助記憶装置であるRAMの空き領域が復
元されたデータファイルのために使用されることがな
い。
【0067】また、ファイル長より充分短いレコードの
みを復元するので、圧縮ファイル全体に対する復元より
処理時間が短い。
みを復元するので、圧縮ファイル全体に対する復元より
処理時間が短い。
【図1】圧縮アルゴリズムのハフマン木を示す。
【図2】図1の文字列に対するハフマン符号を示す。
【図3】圧縮された文字列を示す。
【図4】従来の1文字に対する圧縮動作を示すフローチ
ャート図。
ャート図。
【図5】従来のファイルに対する圧縮動作を示すフロー
チャート図。
チャート図。
【図6】この発明の実施形態による1文字に対する圧縮
動作を示すフローチャート図。
動作を示すフローチャート図。
【図7】この発明の実施形態によるファイルに対する圧
縮動作を示すフローチャート図。
縮動作を示すフローチャート図。
【図8】この発明の他の実施形態によるファイルに対す
る圧縮動作を示すフローチャート図。
る圧縮動作を示すフローチャート図。
【図9】従来の圧縮ファイル構造の説明図。
【図10】この発明の実施形態による圧縮ファイル構造
の説明図。
の説明図。
【図11】この発明の実施形態による復元時に任意のレ
コードのみを復元する方法の説明図。
コードのみを復元する方法の説明図。
【図12】(a),(b)のいずれも、異なる実施例に
おけるこの発明の実施形態による1文字に対する復元動
作を示すフローチャート図。
おけるこの発明の実施形態による1文字に対する復元動
作を示すフローチャート図。
【図13】この発明の実施形態によるレコードに対する
復元動作を示すフローチャート図。
復元動作を示すフローチャート図。
【図14】この発明の他の実施形態によるレコードに対
する復元動作を示すフローチャート図。
する復元動作を示すフローチャート図。
【図15】この発明のデータファイルの利用方法の説明
図。
図。
【図16】従来のデータファイルの利用方法の説明図。
【図17】従来のデータファイルの利用方法の説明図。
【図18】小型携帯端末機1の構成例を示すブロック
図。
図。
1 小型携帯端末機 10小型携帯端末機のシステム 12 小型携帯端末機補助記憶装置(RAM) 80,90 圧縮ファイル
Claims (5)
- 【請求項1】 複数の予め定められた長さ(文字列の
数)のレコードで構成されたファイルをハフマン法によ
り圧縮する方法において、 圧縮の際に、圧縮前のレコード長(文字列の数)と圧縮
後のデータ長とをカウントすることにより、圧縮後の各
レコードの位置情報を求め、該各レコードの位置情報を
圧縮後のファイルに付加することを特徴とするファイル
圧縮方法。 - 【請求項2】 複数の可変長のレコードで構成されたフ
ァイルをハフマン法により圧縮する方法において、 前記ファイルは、各レコードの終端にデリミタが挿入さ
れており、圧縮の際に、レコードの文字が前記デリミタ
に一致した時をもって各レコードの終端と判定して、圧
縮後のレコードのデータ長をカウントすることにより、
圧縮後の各レコードの位置情報を求め、該各レコードの
位置情報を圧縮後のファイルに付加することを特徴とす
るファイル圧縮方法。 - 【請求項3】 請求項1の圧縮ファイル又は請求項2の
圧縮ファイルから、圧縮後の各レコードの位置情報に基
づいて、所望のレコードのみを復元することを特徴とす
るファイル復元方法。 - 【請求項4】 被圧縮ファイルの各レコード長の情報
を、圧縮後のファイルに付加することを特徴とする請求
項1記載のファイル圧縮方法。 - 【請求項5】 請求項4の圧縮ファイルから、圧縮後の
各レコードの位置情報と被圧縮ファイルの各レコード長
の情報とに基づいて、所望のレコードのみを復元するこ
とを特徴とするファイル復元方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7176322A JPH0926902A (ja) | 1995-07-12 | 1995-07-12 | ファイル圧縮並びに復元方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7176322A JPH0926902A (ja) | 1995-07-12 | 1995-07-12 | ファイル圧縮並びに復元方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0926902A true JPH0926902A (ja) | 1997-01-28 |
Family
ID=16011564
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7176322A Pending JPH0926902A (ja) | 1995-07-12 | 1995-07-12 | ファイル圧縮並びに復元方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0926902A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1999021092A1 (en) * | 1997-10-21 | 1999-04-29 | Fujitsu Limited | File processing method, data processing device, and storage medium |
| US7016908B2 (en) | 1999-08-13 | 2006-03-21 | Fujitsu Limited | File processing method, data processing apparatus and storage medium |
-
1995
- 1995-07-12 JP JP7176322A patent/JPH0926902A/ja active Pending
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1999021092A1 (en) * | 1997-10-21 | 1999-04-29 | Fujitsu Limited | File processing method, data processing device, and storage medium |
| AU740957B2 (en) * | 1997-10-21 | 2001-11-15 | Fujitsu Limited | File processing method, data processing apparatus and storage medium |
| US6721753B1 (en) | 1997-10-21 | 2004-04-13 | Fujitsu Limited | File processing method, data processing apparatus, and storage medium |
| EP0962865A4 (en) * | 1997-10-21 | 2004-11-24 | Fujitsu Ltd | FILE PROCESSING METHOD, FILE PROCESSING ARRANGEMENT AND STORAGE MEDIUM |
| KR100495593B1 (ko) * | 1997-10-21 | 2005-06-16 | 후지쯔 가부시끼가이샤 | 파일 처리 방법, 데이터 처리 장치, 및 기억 매체 |
| JP3770919B2 (ja) * | 1997-10-21 | 2006-04-26 | 富士通株式会社 | ファイル処理方法、データ処理装置及び記憶媒体 |
| CN100535889C (zh) | 1997-10-21 | 2009-09-02 | 富士通株式会社 | 文件处理方法和数据处理装置 |
| US7016908B2 (en) | 1999-08-13 | 2006-03-21 | Fujitsu Limited | File processing method, data processing apparatus and storage medium |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| AU637826B2 (en) | Improved data compression apparatus | |
| JP2001357048A (ja) | ブロックソート圧縮データの検索方法、および検索に適したブロックソート圧縮法の符号化方法 | |
| JPH09246991A (ja) | データ圧縮・復元方法及びデータ圧縮装置及びデータ復元装置 | |
| JP2000505968A (ja) | 即時辞書更新がストリング探索とインターリーブされたデータ圧縮解凍システム | |
| JP3141002B2 (ja) | 符号化方法及びデータ圧縮器 | |
| JPS62212849A (ja) | デ−タフアイルシステム | |
| JP3076201B2 (ja) | 画像データ伸張方式 | |
| CN104811209B (zh) | 一种抗最长匹配检测的压缩文件数据嵌入方法及装置 | |
| JPS607300B2 (ja) | 日本語デ−タの圧縮方式 | |
| JPH0926902A (ja) | ファイル圧縮並びに復元方法 | |
| US6112208A (en) | Data compressing method and apparatus to generate bit maps in accordance with extracted data symbols | |
| US6650259B1 (en) | Character table implemented data decompression method and apparatus | |
| JPH03247167A (ja) | データ圧縮方式 | |
| US6262675B1 (en) | Method of compressing data with an alphabet | |
| JP3199292B2 (ja) | ハフマン符号の符号化でのランレングス抽出方法、ハフマン符号変換方法およびmh符号化処理方法 | |
| US6501395B1 (en) | System, method and computer readable medium for compressing a data sequence | |
| JP3384844B2 (ja) | データ圧縮方法および装置並びにデータ復元方法および装置 | |
| JP3229690B2 (ja) | 可変長符号復号器 | |
| JPH08116269A (ja) | データ処理装置及びデータ処理方法 | |
| JP3143029B2 (ja) | データ圧縮方法及びその装置並びにデータ伸長方法及びその装置 | |
| JP3143030B2 (ja) | データ圧縮方法及びその装置並びにデータ伸長方法及びその装置 | |
| JPH06274311A (ja) | データ圧縮装置及びデータ復元装置 | |
| JPH0832454A (ja) | データ符号化及び復号化方式 | |
| JPH0621827A (ja) | データ圧縮装置及びその方法 | |
| JPS6394366A (ja) | 英語文書圧縮装置 |