JP2005202507A - データ圧縮装置、データ復元装置、テンプレート生成装置およびデータ圧縮システム - Google Patents
データ圧縮装置、データ復元装置、テンプレート生成装置およびデータ圧縮システム Download PDFInfo
- Publication number
- JP2005202507A JP2005202507A JP2004005842A JP2004005842A JP2005202507A JP 2005202507 A JP2005202507 A JP 2005202507A JP 2004005842 A JP2004005842 A JP 2004005842A JP 2004005842 A JP2004005842 A JP 2004005842A JP 2005202507 A JP2005202507 A JP 2005202507A
- Authority
- JP
- Japan
- Prior art keywords
- template
- data
- vertex
- vertices
- candidate
- 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.)
- Granted
Links
Images
Landscapes
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
【解決手段】 データ圧縮装置101は、型と値をそれぞれ有する複数の頂点と頂点間の参照情報とを有する入力データ108を分離手段107により、頂点間の参照情報を有する相互参照関係データと頂点群のデータとに分離して、その分離された頂点群のデータを第2の出力データ110として出力し、特定のパターンを有する相互参照関係データを頂点間の参照情報が共有可能なテンプレートとしてテンプレート蓄積手段102に蓄積し、分離された相互参照関係データから、蓄積されているテンプレートに対応する一致箇所を一致箇所検出手段103により検出し、一致箇所をテンプレート置換手段111により置換する際に、置換箇所を示す指示付き頂点を設けて、テンプレートによる再置換を可能にする。
【選択図】 図1
Description
で終了する要素(要素<book>)の中に、要素開始記号Maが<title>で始まり、要素終了
記号Mbが</title>で終了する要素(要素<title>)が含まれている。このとき、要素<book>は要素<title>の親要素であるといい、要素<title>は要素<book>の子要素であるという。これが要素の親子関係である。
<authors>の前兄弟、要素<authors>は要素<title>の次兄弟であるという。これが要素の
兄弟関係である。
ここで、非特許文献2に開示されている圧縮方法について説明する。この圧縮方法ではまず、要素開始記号や空要素記号をそれぞれ「#1」、「#2」のような短い要素名で置換し、要素終了記号を「/」で置換する。また、テキスト情報は「C」で置換する。
以上の圧縮方法を分離したXML文書10に適用すると、分離後のデータ構造12、要素名情報13およびテキスト情報14はそれぞれ図35、図36、図37のように表現される。
このデータ圧縮装置は、置換箇所を頂点と同様の構成で表現することができ、再帰的にテンプレートを適用することができるから、少ないテンプレートで高い圧縮効率を実現することができる。
これにより、圧縮された相互参照関係データを復元し、その復元された相互参照関係データの一部の頂点を参照する際に、その頂点の参照に必要なテンプレートのみを展開し、頂点の参照が高速に行える。
このデータ復元装置は入力される相互参照関係データについてテンプレートを用いた再展開を繰り返し行うため、再帰的にテンプレートの適用が行われ、少ないテンプレートを用い、高い圧縮率で圧縮された相互参照関係データを展開して復元することができる。
これにより、参照すべき頂点の参照に必要なテンプレートのみを展開するようにでき、圧縮された相互参照関係データから高速にデータを参照することができる。
このテンプレート生成装置は、入力データに含まれる根付木構造の参照情報をテンプレート候補として検出してテンプレート候補蓄積手段に蓄積し、このテンプレート候補を用いて入力データを置換する。また、蓄積されているテンプレート候補から、出現頻度をもとにテンプレート候補を選択し、それをテンプレートとして出力する。
こうすると、与えられた入力データのうち、必要な部分の参照情報をテンプレート候補として出力することができる。
また、テンプレート候補検出手段は入力データにおける根頂点から最も浅い葉頂点と同じ深さの頂点すべてを含む最小木構造を有する部分の参照情報をテンプレート候補として検出することができる。
さらに、入力データにおけるテンプレート候補検出手段により検出されなかった箇所の根付木構造を有する部分の参照情報が、テンプレート候補検出手段に入力されるようにしてもよい。
このようにしてテンプレート生成装置を構成すると、入力データから根頂点のみが接続情報を有する根付木構造をテンプレートとして生成できるようになるから、再帰的な圧縮に効果的なテンプレートを生成することができる。
このようにしてテンプレート生成装置を構成すると、テンプレートと入力データの一致確認を逐次行うことなく、入力データの構造解析を行うことにより、テンプレートとの一致を検証することができるため、テンプレートを高速に生成することができる。
また、テンプレート候補検出手段は、新たなテンプレート候補の検出を頂点数によって制限するとよく、根付木構造部分の参照情報の高さにより、新たなテンプレート候補の検出を制限してもよい。
これらのようにすると、生成されるテンプレートの大きさを制限し、出現頻度の低い大きなテンプレートの生成を抑制することができる。
このようにしてテンプレート生成装置を構成すると、生成されるテンプレートの大きさを制限することができるだけでなく、起点とする頂点と深さの差が所定値よりも大きい頂点の子孫となる頂点が別のテンプレートにより置換されて、すべて葉頂点として扱うことが可能になる。入力データから、根頂点のみが接続情報を有する根付木構造をテンプレートとして生成することが可能になるから、再帰的な圧縮に効果的なテンプレートを動的に生成することが可能になる。
このようにしてデータ圧縮システムを構成すると、与えられた入力データの圧縮に適したテンプレートを動的に生成しながら、その生成されたテンプレートを用いて入力データを圧縮することができるため、圧縮効果の高いデータ圧縮を実現することができる。
(第1の実施の形態)
図1は、本実施の形態に係るデータ圧縮装置101の構成を示すブロック図である。図1に示すように、データ圧縮装置101はテンプレート蓄積手段102、テンプレート一致箇所検出手段103、分離手段107、テンプレート置換手段111および切り替え手段104を有している。このデータ圧縮装置101は、型と値をそれぞれ有する複数の頂点(頂点群)と、その各頂点間の参照情報とを有する入力データ108を入力し、第1の出力データ109と第2の出力データ110とを出力するようになっている。
テンプレート蓄積手段102は、圧縮に先立ちあらかじめテンプレートとテンプレート実体を蓄積している。このとき、テンプレート蓄積手段102は、テンプレートやテンプレート実体として、例えば、あらかじめ高い頻度で適用されることが分かっている高頻度のものや、後述するテンプレート生成装置1601で生成されたテンプレートを蓄積している。このようなテンプレートとテンプレート実体としては、例えば、図5(a),図5(b)に示すテンプレート1105とテンプレート実体1109とがある。
テンプレート実体ID1110は、テンプレートID1111で示されるテンプレート1105を適用して相互参照関係データ1000を圧縮した際、そのテンプレート1105の適用箇所を一意に特定するために用いられる。実体接続情報1112は、テンプレート1105を適用し相互参照関係データ1000を圧縮した際に接続する先の頂点が列挙されている。実体情報1113はテンプレート1105を適用し、相互参照関係データ1000を圧縮した際に、テンプレート1105に内包されている頂点のID(頂点ID)が蓄積されている。実体接続情報1112と実体情報1113に入る具体的な値については後述する。
なお、図12に示す一致箇所検出手順は以下のとおりである。
処理開始後ステップ1で、テンプレート蓄積手段に蓄積されたテンプレートから、頂点の数が多い順に1つずつ選択し、以下の処理を繰り返す。
選択したテンプレートをPjとし、ステップ2に進む。
続くステップ2では、相互参照関係データに含まれる頂点から、選択したテンプレートPの頂点の数と一致する頂点を選択する組み合わせをX1,X2,Xmとし、その中から1つずつ選択して、以下を繰り返す。
選択した組み合わせをXkとする。
次に、ステップ3に進み、Xkに含まれる頂点はすべて置換済みマークが無いか否かを判断し、無ければステップ4に進み、そうでなければkがmに達するまでステップ3からステップ5を繰り返す。
ステップ4に進むと、XkがPjと同型か否かを判断し、同型であればステップ5に進み、そうでなければkをひとつ進め、ステップ3に戻る。
ステップ5に進むと、テンプレートPj,Xkを一致箇所としてパターン一致情報に登録し、Xkに含まれる頂点は置換済みとしてマークする。
ここで、相互参照関係データ1000のうち、テンプレートに対応する一致箇所を検出した結果の一例として、一致箇所情報1704を図11(b)に示す。この一致箇所情報1704はテンプレート蓄積手段102にテンプレート1105のみが蓄積されているときに、図12に示す一致箇所検出手順により、相互参照関係データ1000のうち、テンプレート1105に対応する一致箇所を検出した結果であり、一致箇所は1つであったことを示している。この一致箇所情報1704は、一致箇所検出手段103からテンプレート置換手段111に入力される。
ここで、その置換結果を図6に示す。図6では、テンプレート実体としてテンプレート実体1202が存在している。テンプレート実体1202はテンプレート実体ID1203と、利用テンプレートID1204と、実体接続情報1205と、実体情報1206とを有している。テンプレート実体ID1203には“X1”が設定され、利用テンプレートID1204には、“T1”が設定されている。これにより、テンプレート実体1202は図5(a)に示すテンプレート1105が適用されたことを示している。
実体接続情報1205は、そのテンプレート実体における他のテンプレート実体や頂点との接続情報を示している。ここで、上述したとおり、テンプレート実体1202が適用しているテンプレートはテンプレート1105であるが、そのテンプレート1105は外部と接続できる参照を4つ保持していることが、テンプレート1105における接続情報1107に記述されている(図5(a)参照)。
テンプレート置換手段111は置換する際に、テンプレート実体1202へ置換されたことを示す情報を頂点と同様の構成で表現することによって、テンプレートで置換した後の相互参照関係データ1000を再圧縮が可能なデータとしている。
切り替え手段104は、指定回数を利用して、圧縮済みの相互参照関係データ1201の出力または再圧縮を選択する。ここでは、例えば指定回数がNであり、今回の圧縮がn回目であるとする。
n<Nであるときは再圧縮が選択される。このとき、切り替え手段104は、相互参照関係データ1201を一致箇所検出手段103に入力する。相互参照関係データ1201は、テンプレート実体1202の適用を頂点と同様の構成で表現しているため、テンプレートの適用箇所を一つの頂点とみなし、例えば図12に示す一致箇所検出手順で一致箇所情報を導出することができる。図6に示した相互参照関係データ1201が一致箇所検出手段103に入力されるとき、検出された一致箇所検出情報は図11(c)に示す一致箇所情報1710となる。
以上のように、データ圧縮装置は、一致箇所検出手段103により検出された一致箇所をテンプレートで置換する際に、そのテンプレートによる置換箇所を示す指示付き頂点1207を設けてテンプレートによる再置換を可能とし、再帰的にテンプレートを適用できるようにしている。そのため、同一のテンプレートを複数回適用することができ、より少ないテンプレートで高い圧縮率を実現できるようになっている。
上述のような再圧縮を行うことにより、型と値をそれぞれ有する複数の頂点と、各頂点間の参照情報とを有する相互参照関係データにおける頂点の一部を参照するときは、圧縮された相互参照関係データに対し、テンプレートを用いて繰返し展開処理を行い、復元処理を再帰的に行う必要がある。そのため、再圧縮の回数が増えるにしたがい、頂点の参照に重大な時間を要するおそれがある。したがって、頂点の参照に要する時間が可能な限り短縮できることが好ましい。
そのためには、入力データとして提供される相互参照関係データが根付木構造を有するときに、その木構造を有する元の相互参照関係データの最も浅い位置にある頂点(根頂点)から最も深い位置にある頂点(葉頂点)へと順次復元することが可能となれば、すなわち、テンプレートが復元された相互参照関係データにおける葉頂点に存在するようになれば、復元が必要な箇所のみを選択しながら復元することが可能となる。そのため、参照に要する時間を短縮できると考えられる。
ここで、例えば、図3に示した相互参照関係データ1000が一致箇所検出手段103に入力され、テンプレート蓄積手段102に図5に示すテンプレート1105が蓄積されているとする。このとき、一致箇所検出手段103は一致箇所の検出で葉頂点を優先するため、葉頂点1005から一致箇所を検出していく。そして、葉頂点1005を含む一致箇所として、頂点1002が検出されるので、一致箇所検出手段103は、一致箇所情報Vdとして、頂点1002をテンプレート置換手段111に入力する。
一方、切り替え手段104は、テンプレートで置換された圧縮後の相互参照関係データの出力または再圧縮を選択する。ここでは、再圧縮が選択されたとすると、切り替え手段104はテンプレートで置換された相互参照関係データを一致箇所検出手段103に入力する。
データ圧縮装置101から出力される第1の出力データ109は、テンプレートの適用を示すテンプレート実体を頂点として表現しているため、圧縮前の相互参照関係データと同様、一致箇所検出手段103に入力することができる。そのため、複数のデータ圧縮装置を直列に接続することにより、相互参照関係データの再圧縮を行うことができる。ここで、図15は、複数のデータ圧縮手段を直列に接続したデータ圧縮装置2104の構成を示すブロック図である。図に示すように、データ圧縮装置2104は一致箇所検出手段2107およびテンプレート置換手段2108を有する第1の圧縮手段2101と、第2の圧縮手段2102と、・・・、第Nの圧縮手段210nを連続して直列に接続している。第1〜第Nまでの各圧縮手段2101〜210nは、いずれも同一のテンプレート蓄積手段2109を参照するようになっている。また、各圧縮手段2101〜210nは、それぞれ相互参照関係データを入力し、その相互参照関係データをテンプレートを用いて圧縮し、圧縮済みの相互参照関係データを出力データとして出力するようになっている。このような構成を有するデータ圧縮装置2104により、相互参照関係データの再圧縮が行える。
図9は、本発明の実施の形態に係るデータ復元装置1501の構成を示すブロック図である。データ復元装置1501は、テンプレート蓄積手段1502と、テンプレート展開手段1505と、切り替え手段1503および合成手段1504を有している。このデータ復元装置1501は圧縮済みの相互参照関係データを第1の入力データ1506とし、型と値を有する頂点群のデータを第2の入力データ1507とし、その第1の入力データ1506から圧縮前の相互参照関係データを復元し、それを第2の入力データ1507として入力される頂点群のデータと合成して、出力データ1508を出力するようになっている。本実施の形態では、データ復元装置1501に対し、第1の入力データ1506として、図7に示す相互参照関係データ1301を入力し、第2の入力データ1507として、図3に示すテーブル900を入力するとし、テンプレート蓄積手段1502に図5に示すテンプレート1105のみが蓄積されている場合を例にとって、データ復元装置1501について説明する。
なお、置換手順は以下のとおりである。
置換手順は、処理開始後、ステップ6に進みiに0をセットして、ステップ7に進む。
ステップ7では、テンプレート一致箇所情報に含まれるすべての一致箇所について、それぞれ1つづつステップ8およびステップ9の処理を繰り返す。
ステップ8では、テンプレート実体を一つ作成し、実体ID=iとする。このテンプレート実体をOiとし,以下の処理を行う
利用テンプレートIDを一致箇所Miの利用テンプレートIDより複製する。
実体情報をMiの頂点対応情報より複製する。実体接続情報は実体情報に記述された対応関係より、元の参照をそのまま代入する。
ステップ9では、i=i+1を計算する、
ステップ7の実行により、ステップ8およびステップ9を繰り返した後、ステップ10では、作成済のテンプレート実体を1つずつ選択し、以下の処理を繰り返す。選択したテンプレート実体をOiとする。
次にステップ11に進み、実体接続情報に記述された参照の接続先頂点が他のテンプレート実体に含まれる場合はテンプレート実体IDとテンプレートの頂点の組に置換する。
相互参照関係データ1301を図14に示す復元手順により展開すると、図6に示す相互参照関係データ1201のようになる。
なお、復元手順は以下のとおりである。
図14において、開始後のステップ12で、圧縮済みの相互参照関係データに含まれるすべてのテンプレート実体をX1,X2,Xnとし、すべてについて以下を行う。
選択したテンプレート実体をXiとする。
次にステップ13に進み、テンプレート実体Xiが利用するテンプレートが持つ頂点間の参照情報を複製し、テンプレート実体Xiの実体情報に記述される頂点のIDを割り振る。
次いでステップ14に進み、テンプレート実体Xiの実体接続情報に記述された頂点が他のテンプレート実体Xmに含まれる頂点の場合、テンプレート実体Xmに記述される頂点IDで置換する。
テンプレート展開手段1505と、切り替え手段1503は、適用箇所がなくなるまで上述した展開を繰り返し実行する。
本実施の形態の場合、テンプレート1105を用いた1回目の展開結果は図6に示す相互参照関係データ1201のようになる。この相互参照関係データ1201は、テンプレート実体1202への参照を有しているため(ポインタ付き頂点1207が有るため)、まだ再適用箇所を有している。そのため、切り替え手段1503は展開した結果の相互参照関係データ1201をテンプレート展開手段1505に入力し、テンプレート展開手段1505がその再適用箇所を再び展開する。すると、図3に示す相互参照関係データ1000が復元され、相互参照関係データ1000が切り替え手段1503へ入力される。相互参照関係データ1000は再適用箇所を含まないので、切り替え手段1503は出力先を合成手段1504へと切り替える。
また、本実施の形態では、切り替え手段1503がテンプレート展開手段1505への入力と合成手段1504への出力を切り替えることにより、テンプレート展開手段1505におけるテンプレートの展開処理を繰り返し実行している。その他にも、展開された相互参照関係データを常にテンプレート展開手段1505に入力し、テンプレートの展開が終了した段階で、合成手段1504に出力させるような切り替え手段を用いてもよい。
(第1の実施の形態)
図10は、本実施の形態に係るテンプレート生成装置1601の構成を示すブロック図である。テンプレート生成装置1601はテンプレート候補検出手段1602と、テンプレート置換手段1603と、入力データ取得手段1604と、テンプレート候補蓄積手段1605と、テンプレート選択手段1606とを有している。このテンプレート生成装置1601は、入力データ群1607を入力し、出力データ(テンプレート群)1608を出力するようになっている。
なお、図21、図22に示すXML文書30、40から、相互参照関係データ2900,3000を分離するためには、第1の実施の形態と同様にして行えばよい。すなわち、この分離は、各頂点を一意に識別可能な頂点IDを各頂点に順に割り振って相互参照関係データ2900,3000を生成し、その割り振った頂点IDと、対応する頂点がもともと有していた型および値との組を列記してテーブルを生成し、そのテーブルを頂点群とすることで容易に行うことができる。
まず、図25に示すテンプレート生成の第1の手順について説明する。テンプレート生成装置1601は、第1の手順の処理開始後、ステップ30に進み、入力データ取得手段1604がテンプレート生成装置1601に与えられた入力データ群1607から相互参照関係データを1つ取り出し、その相互参照関係データをテンプレート候補検出手段1602に入力する。テンプレート候補検出手段1602は、入力する相互参照関係データを次の相互参照関係データが入力されるまで保持データDに設定する。なお、テンプレート候補検出手段1602への相互参照関係データの選択順はいずれでもよいが、本実施の形態では、相互参照関係データ2900,3000の順に入力されるものとする。
次にステップ31に進み、テンプレート生成装置1601は保持データDの根頂点を引数として、第2の手順の呼び出しを行う。ここでは、相互参照関係データ2900の根頂点2901を引数に設定して第2の手順の呼び出しを行う。続くステップ32では、入力データ群1607に相互参照関係データが有るか否かを判断し、相互参照関係データが有ればステップ30に戻り、無ければステップ33に進む。このステップ32により、テンプレート生成装置1601は入力データ群1607に相互参照関係データがある限り、各相互参照関係データ(の根頂点)を引数とする第2の手順の呼び出しを繰り返し行う。
一方、入力データ群1607に相互参照関係データが無くなると、それを入力データ取得手段1604が検知してテンプレート選択手段1606に通知する。テンプレート生成装置1601では、この通知があるとステップ33に進み、テンプレート選択手段1606がテンプレート候補蓄積手段1605に蓄積されているテンプレート候補の中からテンプレートを選択し、選択したテンプレートをテンプレート群1608として出力する。
ここでは、上述の中間手順1に示すとおり、第2の手順を呼び出すときの引数に保持データDの根頂点2901が設定されている。
図26に示すように、第2の手順を開始すると、ステップ40に進み、保持データDにおいて、引数cursorを根とする木構造を形成する部分参照情報をTに設定する。ここでは引数cursorに保持データDの根頂点2901が設定されているので、部分参照情報Tは保持データD(ここでは相互参照関係データ2900)と一致している。
続いてステップ42に進み、変数Rの示す頂点を起点として、深さ優先探索で部分参照情報Tにおける木構造を形成する頂点を探索し、最初に遭遇する(葉)頂点を引数cursorに設定する。この段階で、引数cursorに頂点2904が設定される。変数Rは頂点2901を示す。
そして、テンプレート生成装置1601は、ステップ44において、引数cursorとその親参照が示す頂点とで構成される候補パターンを第1の引数に設定し、変数R、引数cursorをそれぞれ第2の引数、第3の引数に設定して、第3の手順を呼び出す。なお、第3の手順では、第1の引数をC、第2の引数、第3の引数をそれぞれR、cursorとして表現する。
テンプレート生成装置1601は第3の手順を呼び出すと、図27に示すステップ50に進み、第3の引数cursorをデータSに設定して保存する。なお、このステップ50は必ずしも必要ではないが、本実施の形態では、データSを後述するステップ57におけるテンプレート候補検索の中断条件の判定に利用している。
そして、テンプレート生成装置1601はステップ51に進み、第1の引数Cが示すパターン(候補パターンC)を有するテンプレート候補がテンプレート候補蓄積手段1605に蓄積されているか否かを判断する。ここでは、候補パターンCを有するテンプレート候補はテンプレート候補蓄積手段1605に蓄積されていないので、テンプレート生成装置1601はステップ53に進み、候補パターンCを有するテンプレート候補を通過回数(出現回数)に“1”を設定してテンプレート候補蓄積手段1605に保存する。
ここで、テンプレート候補の構成について図28を用いて説明する。図28に示すテンプレート候補3401は、パターン情報3402と、各テンプレート候補を一意に識別するための識別ID3403と、通過回数3405と、置換回数3406とを有している。通過回数3405は、テンプレート生成装置1601に入力された相互参照関係データ内における置換可能なテンプレート候補を探索する過程でカウントされるテンプレート候補により置換可能な延べ回数を示している。この通過回数3405は、テンプレートを蓄積するときに“1”に初期化されている。置換回数3406は、実際にそのテンプレートを適用した回数を示している。この置換回数3406は、テンプレートを蓄積するときに“0”に初期化されている。
(中間手順3)
ここでは、候補パターンCはテンプレート候補3501のパターン情報と一致し、テンプレート候補内の頂点数は“2”である。また、第2の引数Rは頂点2901を示すが、
候補パターンCは第2の引数R以下の頂点をすべて含んでいないため、停止条件2(テンプレート候補の候補パターンCに含まれる頂点数が5以上であること)および停止条件1のいずれの停止条件も成立しない。そのため、テンプレート生成装置1601の処理はステップ55に進む。
次に、ステップ57に進み、候補パターンCを有するテンプレート候補に対する中断条件の成立可否を判断する。中断条件が成立すればステップ58に進み、未成立ならばステップ51に戻る。このステップ57の中断条件の判定と、ステップ58の処理を加えることにより、テンプレートの大きさを制限し、出現頻度の低いテンプレートの生成を抑制することができる。中断条件としては、保持データDにおける第3の引数cursorが示す頂点の高さと、データSが示す頂点(頂点S)の保持データDにおける高さの差がN以上であるとか、候補パターンCに含まれる頂点の数がN以下である等、複数の方法やその組み合わせを用いることが可能である。
本実施の形態では、ステップ57の中断条件は次のようにしている。すなわち、保持データDにおける第3の引数cursorが示す頂点の高さと、データSが示す頂点の高さとが同じであり、かつ第3の引数cursorが示す頂点が子頂点を有していることを中断条件に設定している。
この中断条件が成立するとステップ58に進み、第3の引数cursorを引数に設定して上述した第2の手順を呼び出す。第2の手順が終了するとステップ55に戻る。このように中断条件が成立するとステップ58に進み、第3の引数cursorを起点として別なテンプレート候補(候補パターン)の検出を繰返し行う。これにより、テンプレート候補検出手段1602は、検出するテンプレート候補の大きさを制限している。
(中間手順5)
そして、ステップ54〜56を実行してステップ57に進むと、第3の引数cursorが頂点2906を示し、中間手順4に示す中断条件が成立する。そこで、テンプレート生成装置1601はテンプレート検出を中断してステップ58に進み、第3の引数cursorを引数に設定して、第2の手順を呼び出す。
ここでは、引数に頂点2906が設定されて第2の手順が呼び出される。これにより、頂点2906を根とする保持データDの部分木に対して、テンプレート候補の探索が行われる。
テンプレート生成装置1601は、第2の手順を呼び出すと、図26に示すステップ40からステップ43までを上記同様に実行する。そして、ステップ44に進み、テンプレート候補3501のパターンと同様の構造を第1の引数に設定し、頂点2906を第2の引数に設定し、頂点2907を第3の引数に設定して第3の手順を呼び出す。
ここで、候補パターンCは既にテンプレート候補蓄積手段1605にテンプレート候補3501として蓄積されていることから、テンプレート生成装置1601は、図27におけるステップ51からステップ52に進み、テンプレート候補3501の通過回数に“1”を加算して“2”にする。
この時点で、第3の引数cursorが頂点2908を示す。このことは、中間手順3に示した上述の停止条件1、すなわち引数cursorが頂点R以下の部分木の最後の頂点であることを満たしている。そのため、テンプレート生成装置1601の処理はステップ54からステップ59に進む。
テンプレート生成装置1601は、ステップ59に進むと、候補パターンCを有するテンプレート候補による置換がそのまま可能であるか否かを判定する。置換可能と判定したときはステップ60に進み、そうでなければステップ62に進む。
ここで、候補パターンCによる置換が可能であるか否かは、候補パターンCにおける根頂点Xの子頂点の数と、候補パターンCを保持データDに合致させたとき、根頂点Xに合致する保持データDにおける頂点Yの子頂点の数とが一致するか否かによって判定することができる(以下「置換判定基準」という)。ここでは、候補パターンCは、テンプレート候補3502のパターンと同様の構造を有し、その根頂点3601の子頂点は、頂点3602と頂点3603の2つであり、保持データDにおける頂点2906の子頂点は頂点2907と頂点2908の2つである。したがって、根頂点3601の子頂点数は、頂点2906における子頂点数と一致する。そのため、テンプレート生成装置1601はステップ59からステップ60に処理を進める。
テンプレート生成装置1601は、ステップ60に進むと、保持データDにおける該当箇所をテンプレート候補により置換して、その適用箇所を頂点で表現し、その結果得られるデータを入力データ取得手段1604に入力する。すなわち、テンプレート置換手段1603により、保持データDの頂点を候補パターンCと同様の構造を有するテンプレート候補で置換し、その置換した結果を入力データ取得手段1604に入力する。
テンプレート候補による置換は、第1の実施の形態におけるテンプレートによる置換と同様にテンプレート実体を用いて行うが、本実施の形態では、説明を簡単にするため、便宜上、「候補置換」と表現する。
入力データ取得手段1604は置換された保持データDが頂点一つで表されていない限り、さらにテンプレートの適用が可能と判断し、テンプレート候補検出手段1602に保持データDを入力してテンプレート候補の検出を継続する。このとき、テンプレート候補蓄積手段1605に蓄積された候補パターンCと合致するテンプレート候補、すなわち、テンプレート候補3502の置換回数に“1”を加算して“1”とする。
一方、第3の手順の呼び出しは、上述の中間手順6に示すように、第2の手順におけるステップ44から再帰的に行われているが、第2の手順におけるステップ44の処理が修了した後、その第2の手順の呼び出し元となる第3の手順のステップ58、すなわち、上述の中間手順5で中断したテンプレート検出を再開することになる。
このとき、復帰後における値はそれぞれ候補パターンCはテンプレート候補3503と一致し、第3の引数cursorは頂点2906を示し、第2の引数Rは頂点2901を示し、データSは頂点2904を示している。
ステップ54に進むと、候補パターンCがテンプレート候補3505のパターンと一致し、頂点数が“5”であり、中間手順3に示した停止条件が成立している。よって、テンプレート生成装置1601の処理はステップ59に進む。
さらに、テンプレート生成装置1601は続くステップ60において、テンプレート置換手段1603を用いてテンプレート候補3505により保持データDの頂点を置換し、その置換結果を入力データ取得手段1604に入力する。
この時点で、候補パターンCはテンプレート候補3505のパターンと一致するため、テンプレート候補3505の通過回数に“1”を加算して、“1”とする。
本実施の形態のこれまでの説明の中で、保持データDに対しては、既にテンプレート置換が2回行われており、この段階で保持データDは、図23におけるエリア2912および2915に属する頂点のみを有している。
図23に示す相互参照関係データ2900について、テンプレート候補による置換が終了した段階におけるテンプレート候補蓄積手段1605の状況は図30に示すとおりである。
よって、テンプレート生成装置1601はテンプレート候補蓄積手段1605の中で、テンプレート候補3510の位置から木構造を上方向に辿り、最初に遭遇する親参照または子参照接続のテンプレート候補を発見する。この時、辿った経路上に存在する、テンプレート候補の通過回数から“1”を減算していく。
相互参照関係データ3000についても、最終的には頂点1つで表現することが可能である。頂点1つで表現された段階で、入力データ取得手段1604がこれ以上入力がないことを検知し、テンプレート選択手段1606にその旨を入力する。
テンプレート選択手段1606はテンプレート候補蓄積手段1605に蓄積されたテンプレート候補の中からテンプレートを選択して出力する。このとき、テンプレートの選択方法は複数通り考えられるが、本実施の形態では、テンプレート候補の置換回数が“0”でないものを選択するものとする。この時、テンプレート候補からパターンを抽出し、その抽出したパターンをテンプレートにするが、これは、第1の実施の形態に示すようにして、テンプレートを構成すれば容易に可能である。
以上に示す手順により、テンプレート生成装置1601はテンプレートを生成することができる。
上述のとおり、本発明ではテンプレートの再帰的な適用によるデータ圧縮、すなわち、テンプレートを適用し、そのテンプレートを新たな頂点として表現することにより、再帰的にデータ圧縮を行っている。このことを考慮すると、テンプレートはそのテンプレート内の頂点がテンプレート外の頂点との間で保有される参照情報を接続情報として保持するが、その接続情報の種類および数はもとの相互参照関係データの頂点が有している参照情報の種類および数(木構造の頂点であれば、親参照1つ、子参照1つ、前兄弟参照1つ、次兄弟参照1つ)を超えないことが望ましい。
そこで、本実施の形態では、次のようにして、できるだけ接続情報が少なくなるようして、テンプレートを生成している。すなわち、データ圧縮の対象として入力される相互参照関係データ(入力データ)が根付木構造を有するときに、テンプレート生成装置において、入力データからテンプレート候補を検出する際に、入力データのある頂点を根頂点として、その頂点が有する子孫頂点で形成される部分木構造を抽出すべきテンプレート候補のパターン情報に設定している。
その葉頂点と同一の深さを有する頂点のうち、子孫頂点を有する頂点があるときは、その頂点を根頂点とし、その頂点が有する子孫頂点で形成される根付木構造の部分参照情報をテンプレート候補検出手段に再度入力することにより、別途テンプレート候補を検出する。
図20は、本発明の実施の形態に係るデータ圧縮システム2601のシステム構成図である。データ圧縮システム2601はテンプレート生成装置2602と、データ圧縮装置2603とを有し、第1の入力データ2605と第2の入力データ2604を入力してデータ圧縮を行う。そして、データ圧縮システム2601では、テンプレートにより置換されたテンプレート適用済みの相互参照関係データを第1の出力データ2606として出力し、入力する相互参照関係データから分離された複数の頂点を有する頂点群のデータを第2の出力データ2607として出力する。
また、テンプレート生成装置2602は、第2の入力データの各頂点間の参照情報に含まれる根付木構造の部分参照情報から、その部分参照情報をパターンに設定したときの出現頻度およびテンプレートにしたときの圧縮効果に応じた部分参照情報をテンプレートとして出力する。つまり、テンプレート生成装置2602は、出現頻度が高く、しかも圧縮効果が高い部分参照情報をテンプレートとして出力する。
21,31…データ構造
101,2104,2603…データ圧縮装置
102,1502…テンプレート蓄積手段
103,2107…一致箇所検出手段
107,2106…分離手段
108,2105…入力データ
109,2110,2606…第1の出力データ
110,2111,2607…第2の出力データ
111,1603,2108…テンプレート置換手段
1000,1201…相互参照関係データ
1301,1401,2008…相互参照関係データ
1001,1002,1003,1004…頂点
1005,1006,1007…頂点
900…テーブル、1105…テンプレート
1109,1202,1302…テンプレート実体
1501…データ復元装置、1504…合成手段
1505…テンプレート展開手段
1506,2605…第1の入力データ
1507,2604…第2の入力データ
1508…出力データ
1601,2602…テンプレート生成装置
1602…テンプレート候補検出手段
1604…入力データ取得手段
1605…テンプレート候補蓄積手段
1606…テンプレート選択手段
1607…入力データ群、1608…出力データ
2009…第1のテンプレート候補
2010…第2のテンプレート候補
2101…第1の圧縮手段
2109…テンプレート蓄積手段
2601…データ圧縮システム
2900,3000…相互参照関係データ
3401…テンプレート候補
Claims (13)
- 型と値をそれぞれ有する複数の頂点と、該頂点間の参照情報とを有する入力データを、前記頂点間の参照情報を有する相互参照関係データと、前記型と値を有する複数の頂点からなる頂点群とに分離し、その分離された前記頂点群のデータを出力する分離手段と、
特定のパターンを有する前記頂点間の参照情報を、前記頂点間の参照情報が共有可能なテンプレートとして蓄積するテンプレート蓄積手段と、
前記分離手段により分離された前記相互参照関係データから、前記テンプレート蓄積手段に蓄積されているテンプレートに対応する一致箇所を検出するテンプレート一致箇所検出手段と、
前記分離手段により分離された前記相互参照関係データのうち、前記テンプレート一致箇所検出手段により検出された前記一致箇所を前記テンプレートで置換する際に、該テンプレートによる置換箇所を示す指示付頂点を設けて、前記テンプレートによる再置換を可能にするテンプレート置換手段とを有し、
前記頂点間の参照情報を参照可能な状態で、前記テンプレート置換手段により置換された相互参照関係データを出力する出力手段とを有することを特徴とするデータ圧縮装置。 - 前記テンプレート一致箇所検出手段は、前記入力データが根付木構造を有するときは前記テンプレート蓄積手段に蓄積されているテンプレートに対応する一致箇所を検出するときに、葉頂点を含む一致箇所のみを検出することを特徴とする請求項1記載のデータ圧縮装置。
- 特定のパターンを有する複数の頂点間の参照情報を、前記頂点間の参照情報が共有可能なテンプレートとして蓄積するテンプレート蓄積手段と、
前記頂点間の参照情報を有して、前記テンプレートにより置換された圧縮済みの相互参照関係データを入力し、該圧縮済みの相互参照関係データを前記テンプレートを用いて展開し、その展開した相互参照関係データが、前記テンプレートで置換された頂点間の参照情報を有するときに、前記展開した相互参照関係データを前記テンプレートを用いて展開する再展開を繰り返し行い、前記圧縮済みの相互参照関係データから圧縮前の相互参照関係データを復元する展開手段と、
前記複数の頂点からなる頂点群のデータを入力し、該頂点群のデータと、前記展開手段により復元された前記圧縮前の相互参照関係データとを合成して、該合成されたデータを出力する合成手段とを有することを特徴とするデータ復元装置。 - 前記展開手段は、前記相互参照関係データの中で参照すべき頂点が指定されたときに、該参照すべき頂点の参照に必要な前記テンプレートを用いて前記再展開を行うことを特徴とする請求項3記載のデータ復元装置。
- 複数の頂点と、該頂点間の参照情報とを有する根付木構造のデータを入力し、入力データを取得する入力データ取得手段と、
該手段により取得される前記入力データにおける前記各頂点間の参照情報に含まれる根付木構造の参照情報をテンプレート候補として検出するテンプレート候補検出手段と、
該手段により取得される前記テンプレート候補と、前記入力データにおける前記テンプレート候補の出現頻度を記憶するテンプレート候補蓄積手段と、
該手段に蓄積されている前記テンプレート候補により、前記入力データを置換するテンプレート置換手段と、
前記テンプレート候補蓄積手段に記憶されているテンプレート候補から、前記出現頻度をもとに前記テンプレート候補を選択し、その選択されたテンプレート候補を出力するテンプレート選択手段とを有することを特徴とするテンプレート生成装置。 - 前記テンプレート選択手段は、前記テンプレート候補を選択する際に、前記テンプレート置換手段が前記入力データの置換に用いた前記テンプレート候補のみを選択することを特徴とする請求項5記載のテンプレート生成装置。
- 前記テンプレート候補検出手段は、前記入力データにおける根頂点から最も浅い葉頂点と同じ深さの頂点すべてを含む最小木構造を有する部分の参照情報を前記テンプレート候補として検出することを特徴とする請求項5または6記載のテンプレート生成装置。
- 前記入力データにおける前記テンプレート候補検出手段により検出されなかった箇所の根付木構造を有する部分の参照情報が、前記テンプレート候補検出手段に入力されることを特徴とする請求項5〜7のいずれか一項記載のテンプレート生成装置。
- 前記テンプレート候補検出手段は、前記入力データの根頂点から深さ優先探索で最初に遭遇する葉頂点を起点とし、該起点となる頂点と、その親頂点とを有する根付木構造部分の参照情報を前記テンプレート候補とし、前記参照情報に頂点を一つ追加して得られる根付木構造部分の参照情報を新たなテンプレート候補とする拡張候補検出を繰り返すことを特徴とする請求項5または6記載のテンプレート生成装置。
- 前記テンプレート候補検出手段は、前記新たなテンプレート候補の検出を頂点数によって制限することを特徴とする請求項9記載のテンプレート生成装置。
- 前記テンプレート候補検出手段は、前記根付木構造部分の参照情報の高さにより、前記新たなテンプレート候補の検出を制限することを特徴とする請求項9記載のテンプレート生成装置。
- 前記テンプレート候補検出手段が、前記拡張候補検出を行う際に、前記起点となる頂点との深さの差が所定値よりも大きい新頂点への拡張は行わず、前記新頂点を起点として、前記拡張候補検出を繰り返すことを特徴とする請求項9〜11のいずれか一項記載のテンプレート生成装置。
- 型と値をそれぞれ有する複数の頂点と、該頂点間の参照情報とを有する第1の入力データを圧縮するデータ圧縮システムであって、
前記第1の入力データと同様の構造を有する第2の入力データから抽出した前記頂点間の参照情報を有する相互参照関係データを入力し、前記頂点間の参照情報が共有可能なテンプレートを生成する請求項5〜12のいずれか一項記載のテンプレート生成装置と、
前記テンプレート生成装置によって生成された前記テンプレートを蓄積するテンプレート蓄積手段を備えた請求項1または2記載のデータ圧縮装置と、
前記頂点間の参照情報を参照可能な状態で、前記テンプレート蓄積手段に蓄積されたテンプレートにより置換された相互参照関係データを第1の出力データとして出力し、前記第1の入力データから分離された前記型と値をそれぞれ有する複数の頂点からなる頂点群のデータを第2の出力データとして出力する出力手段とを有することを特徴とするデータ圧縮システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004005842A JP4394964B2 (ja) | 2004-01-13 | 2004-01-13 | データ圧縮装置、データ復元装置、テンプレート生成装置およびデータ圧縮システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004005842A JP4394964B2 (ja) | 2004-01-13 | 2004-01-13 | データ圧縮装置、データ復元装置、テンプレート生成装置およびデータ圧縮システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005202507A true JP2005202507A (ja) | 2005-07-28 |
JP4394964B2 JP4394964B2 (ja) | 2010-01-06 |
Family
ID=34820028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004005842A Expired - Fee Related JP4394964B2 (ja) | 2004-01-13 | 2004-01-13 | データ圧縮装置、データ復元装置、テンプレート生成装置およびデータ圧縮システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4394964B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008219264A (ja) * | 2007-03-01 | 2008-09-18 | Ntt Communications Kk | データ圧縮転送装置、データ圧縮転送システム、データ圧縮転送方法、およびデータ圧縮転送プログラム |
JP2010258787A (ja) * | 2009-04-24 | 2010-11-11 | Mitsubishi Electric Corp | シグナリング圧縮装置、シグナリング伸長装置およびシグナリング圧縮伸長装置 |
JP2011512730A (ja) * | 2008-01-31 | 2011-04-21 | マイクロソフト コーポレーション | テンプレート式のパラメータを使用したメッセージの符号化および復号化 |
US20220138411A1 (en) * | 2020-11-03 | 2022-05-05 | Nuance Communications, Inc. | Communication System and Method |
-
2004
- 2004-01-13 JP JP2004005842A patent/JP4394964B2/ja not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008219264A (ja) * | 2007-03-01 | 2008-09-18 | Ntt Communications Kk | データ圧縮転送装置、データ圧縮転送システム、データ圧縮転送方法、およびデータ圧縮転送プログラム |
JP2011512730A (ja) * | 2008-01-31 | 2011-04-21 | マイクロソフト コーポレーション | テンプレート式のパラメータを使用したメッセージの符号化および復号化 |
JP2010258787A (ja) * | 2009-04-24 | 2010-11-11 | Mitsubishi Electric Corp | シグナリング圧縮装置、シグナリング伸長装置およびシグナリング圧縮伸長装置 |
US20220138411A1 (en) * | 2020-11-03 | 2022-05-05 | Nuance Communications, Inc. | Communication System and Method |
US11956315B2 (en) | 2020-11-03 | 2024-04-09 | Microsoft Technology Licensing, Llc | Communication system and method |
Also Published As
Publication number | Publication date |
---|---|
JP4394964B2 (ja) | 2010-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gueniche et al. | Compact prediction tree: A lossless model for accurate sequence prediction | |
JP3278297B2 (ja) | データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置 | |
US20100332476A1 (en) | Web graph compression through scalable pattern mining | |
JP4261299B2 (ja) | データ圧縮装置、データ復元装置およびデータ管理装置 | |
WO2009107315A1 (ja) | 頻出変化パターン抽出装置 | |
JP2008299867A (ja) | データ構造によるコンピュータ表現及びそれに関連する符号化/復号化方法 | |
JP2004530188A (ja) | 構造化された文書を圧縮/伸長する方法 | |
CN104040899B (zh) | 生成符号的代码字母表以便为与程序一起使用的字生成代码字 | |
Ferragina et al. | On the bit-complexity of Lempel--Ziv compression | |
Gasieniec et al. | Real-Time Traversal in Grammar-Based Compressed Files. | |
JP6467937B2 (ja) | 文書処理プログラム、情報処理装置および文書処理方法 | |
Navarro et al. | On stricter reachable repetitiveness measures | |
JP6072922B2 (ja) | 文字列検索装置、文字列検索方法および文字列検索プログラム | |
US8694521B2 (en) | Modeling and searching patterns in a data sequence | |
Golovach et al. | Model-checking for first-order logic with disjoint paths predicates in proper minor-closed graph classes | |
JP4394964B2 (ja) | データ圧縮装置、データ復元装置、テンプレート生成装置およびデータ圧縮システム | |
Brisaboa et al. | Using Compressed Suffix-Arrays for a compact representation of temporal-graphs | |
Van et al. | An expanded prefix tree-based mining algorithm for sequential pattern maintenance with deletions | |
KR101793005B1 (ko) | 정적 및 동적 데이터베이스에 대한 점진적 하이 유틸리티 패턴 마이닝 방법 | |
JP5696132B2 (ja) | 部分的木構造に応じた適応型再構成装置及び方法及びプログラム | |
Böttcher et al. | Incremental updates on compressed XML | |
Gasieniec et al. | Time/space efficient compressed pattern matching | |
Gori et al. | The RW2 algorithm for exact graph matching | |
KR101594345B1 (ko) | 빈발 패턴 마이닝 방법 및 이를 저장하는 기록매체 | |
JP5871842B2 (ja) | 情報可視化装置、方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060413 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090116 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090203 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090403 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20091013 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20091016 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4394964 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121023 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131023 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |