JP2001357048A - ブロックソート圧縮データの検索方法、および検索に適したブロックソート圧縮法の符号化方法 - Google Patents
ブロックソート圧縮データの検索方法、および検索に適したブロックソート圧縮法の符号化方法Info
- Publication number
- JP2001357048A JP2001357048A JP2000182320A JP2000182320A JP2001357048A JP 2001357048 A JP2001357048 A JP 2001357048A JP 2000182320 A JP2000182320 A JP 2000182320A JP 2000182320 A JP2000182320 A JP 2000182320A JP 2001357048 A JP2001357048 A JP 2001357048A
- Authority
- JP
- Japan
- Prior art keywords
- data
- search
- position number
- column
- block
- 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
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90348—Query processing by searching ordered data, e.g. alpha-numerically ordered data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【課題】ブロックソート圧縮法で圧縮されたデータに対
して、全ての符号化されたデータを復号しなくても、逐
次必要なデータだけ復号して検索することによって高速
検索をおこなう。 【解決手段】ブロックソート圧縮法により圧縮されたデ
ータに対して、BW変換した列と辞書式に整列させた列
との整列位置番号と整列前位置番号の対を求める。そし
て、その対に基づきデータを復号しながら、検索データ
列との照合をおこなう。復号は、検索のために必要な部
分のみをおこなう。また、ブロックソート圧縮法で整列
位置番号と整列前位置番号の対を直接に符号化してお
く。
して、全ての符号化されたデータを復号しなくても、逐
次必要なデータだけ復号して検索することによって高速
検索をおこなう。 【解決手段】ブロックソート圧縮法により圧縮されたデ
ータに対して、BW変換した列と辞書式に整列させた列
との整列位置番号と整列前位置番号の対を求める。そし
て、その対に基づきデータを復号しながら、検索データ
列との照合をおこなう。復号は、検索のために必要な部
分のみをおこなう。また、ブロックソート圧縮法で整列
位置番号と整列前位置番号の対を直接に符号化してお
く。
Description
【0001】
【発明の属する技術分野】本発明は、ブロックソート圧
縮データの検索方法に係り、ブロックソート圧縮法で圧
縮されたデータに対して、ブロックソート圧縮法の特質
を活かすことにより、全ての符号化されたデータを復号
しなくても、逐次必要なデータだけ復号して検索するこ
とによって高速検索を可能にするブロックソート圧縮デ
ータの検索方法に関する。
縮データの検索方法に係り、ブロックソート圧縮法で圧
縮されたデータに対して、ブロックソート圧縮法の特質
を活かすことにより、全ての符号化されたデータを復号
しなくても、逐次必要なデータだけ復号して検索するこ
とによって高速検索を可能にするブロックソート圧縮デ
ータの検索方法に関する。
【0002】
【従来の技術】コンピュータなどの情報機器が身近なも
のになり、我々がデジタルデータを取扱う機会が増すに
つれて、データを符号化して圧縮して記憶し、必要に応
じて、それを復号化して伸張して利用する技術が注目さ
れている。ここで、「符号化」とは、もとのコード体系
を別のコード体系に変換することであり、「復号化」と
は、その逆であり、符号化したコード体系をもとのコー
ド体系に変換し直すことと定義できる。また、「圧縮」
とは、もとのデータをより少ない容量の記憶領域で格納
することであり、「伸張」とは、圧縮したデータをもと
のデータの容量の記憶領域を占有するようなデータにす
ることである。
のになり、我々がデジタルデータを取扱う機会が増すに
つれて、データを符号化して圧縮して記憶し、必要に応
じて、それを復号化して伸張して利用する技術が注目さ
れている。ここで、「符号化」とは、もとのコード体系
を別のコード体系に変換することであり、「復号化」と
は、その逆であり、符号化したコード体系をもとのコー
ド体系に変換し直すことと定義できる。また、「圧縮」
とは、もとのデータをより少ない容量の記憶領域で格納
することであり、「伸張」とは、圧縮したデータをもと
のデータの容量の記憶領域を占有するようなデータにす
ることである。
【0003】このようなデータの圧縮/伸張技術は、パ
ーソナルコンピュータが普及して、日常的に使われるよ
うになってきている。中でも、1977年にZivとLempe
lによって提案されたLZ圧縮法は、知名度があり今日
よく使われている圧縮法である。このような状況の中
で、最近、LZ圧縮法の圧縮率に匹敵するブロックソー
ト圧縮法と呼ばれる別の圧縮法がその圧縮率の高さから
理論的な面で関心が集まっている(Michelle Effros, Un
iversal Lossless Source Coding with the Burrows Wh
eeler Transform, IEEE Proc. of DCC'99, pp. 178-18
7, 1999)。
ーソナルコンピュータが普及して、日常的に使われるよ
うになってきている。中でも、1977年にZivとLempe
lによって提案されたLZ圧縮法は、知名度があり今日
よく使われている圧縮法である。このような状況の中
で、最近、LZ圧縮法の圧縮率に匹敵するブロックソー
ト圧縮法と呼ばれる別の圧縮法がその圧縮率の高さから
理論的な面で関心が集まっている(Michelle Effros, Un
iversal Lossless Source Coding with the Burrows Wh
eeler Transform, IEEE Proc. of DCC'99, pp. 178-18
7, 1999)。
【0004】このブロックソート圧縮法は、テキスト・
データ全体に対して巡回シフト(あるいは回転シフト)列
を作り、すべての巡回シフト列に辞書式順序付けをおこ
なって配列し、そのある列を取り出して符号化するもの
である。例えば、この方式を発案したBurrowsとWheeler
(A block-sorting lossless data compression algori
thm, SRC Research Report, 124 May 1994)は、符号の
列として配列の最後の列を選んでいる。
データ全体に対して巡回シフト(あるいは回転シフト)列
を作り、すべての巡回シフト列に辞書式順序付けをおこ
なって配列し、そのある列を取り出して符号化するもの
である。例えば、この方式を発案したBurrowsとWheeler
(A block-sorting lossless data compression algori
thm, SRC Research Report, 124 May 1994)は、符号の
列として配列の最後の列を選んでいる。
【0005】ブロックソート圧縮法は、LZ圧縮法に匹
敵するような圧縮率の評価データが得られているが、ま
だその圧縮率の達成に関して理論的な検討段階にあり、
応用面での検討があまりなされていない。
敵するような圧縮率の評価データが得られているが、ま
だその圧縮率の達成に関して理論的な検討段階にあり、
応用面での検討があまりなされていない。
【0006】
【発明が解決しようとする課題】ところで、情報を圧縮
するばかりでなく、情報を高速に検索したいという要求
がある。高速検索という目的を優先させると、どうして
も検索のために冗長な情報をもたせることになるため、
データ量を圧縮するというよりは、ともすれば、データ
量が増加することにもなる。
するばかりでなく、情報を高速に検索したいという要求
がある。高速検索という目的を優先させると、どうして
も検索のために冗長な情報をもたせることになるため、
データ量を圧縮するというよりは、ともすれば、データ
量が増加することにもなる。
【0007】しかし、処理する情報が極めて大量になっ
てくると格納スペースがなくなり、データを圧縮格納し
ておく必要に迫られるので、ほとんどのデータが圧縮さ
れたままの状態で眠っているという状況になる。このよ
うな圧縮データの海から検索して必要なごく一部のデー
タのみを取り出すという技術が要求されることになる。
すべての圧縮データを伸張復号しながら検索するという
ことは現実的な解答とは言い難い。そのために、できれ
ば圧縮コード列のまま伸張しないで検索する方法を見い
出したいところである。
てくると格納スペースがなくなり、データを圧縮格納し
ておく必要に迫られるので、ほとんどのデータが圧縮さ
れたままの状態で眠っているという状況になる。このよ
うな圧縮データの海から検索して必要なごく一部のデー
タのみを取り出すという技術が要求されることになる。
すべての圧縮データを伸張復号しながら検索するという
ことは現実的な解答とは言い難い。そのために、できれ
ば圧縮コード列のまま伸張しないで検索する方法を見い
出したいところである。
【0008】しかしながら実際には、既存のLZ圧縮法
によるデータに対して、圧縮コード列に対して検索パタ
ーンと比較照合する場合、圧縮コード内容の前後の一部
にまたがって照合したり、検索パターンの圧縮コード列
が一意に定まらず、何通りも存在することがあるため、
圧縮コード列のままでは直接検索することができないと
いう問題がある。ブロックソート圧縮法は、評価段階の
圧縮技術と言って良く、これまで、ブロックソート圧縮
データに対する検索法について十分考察されてこなかっ
た。
によるデータに対して、圧縮コード列に対して検索パタ
ーンと比較照合する場合、圧縮コード内容の前後の一部
にまたがって照合したり、検索パターンの圧縮コード列
が一意に定まらず、何通りも存在することがあるため、
圧縮コード列のままでは直接検索することができないと
いう問題がある。ブロックソート圧縮法は、評価段階の
圧縮技術と言って良く、これまで、ブロックソート圧縮
データに対する検索法について十分考察されてこなかっ
た。
【0009】本発明は、上記問題点を解決するためにな
されたもので、その目的は、ブロックソート圧縮法で圧
縮されたデータに対してブロックソート圧縮法の特質を
活かすことにより、全ての符号化されたデータを復号し
なくても、逐次必要なデータだけ復号して検索すること
によって高速検索を可能にするブロックソート圧縮デー
タ検索法を提供することにある。
されたもので、その目的は、ブロックソート圧縮法で圧
縮されたデータに対してブロックソート圧縮法の特質を
活かすことにより、全ての符号化されたデータを復号し
なくても、逐次必要なデータだけ復号して検索すること
によって高速検索を可能にするブロックソート圧縮デー
タ検索法を提供することにある。
【0010】また、その検索に適したブロックソート圧
縮法の符号化方法を提供することにある。
縮法の符号化方法を提供することにある。
【0011】
【課題を解決するための手段】ブロックソート圧縮法
は、テキスト・データ全体に対して巡回シフト列を作
り、すべての巡回シフト列に辞書式順序付けをおこなっ
て配列化する。それで、検索したいパターンが複数箇所
にある場合、巡回シフト列の配列の中で、検索パターン
は配列のある行の先頭列から始まり、しかも複数箇所の
検索パターンが配列の連続した行において固まって出現
するという特徴がある。また、ブロックソート圧縮デー
タの復号原理において、伸張復号した最後の列の文字列
の位置を辞書式順序で並べ替えて整列させるが、そのと
き、整列位置番号と整列前の整列位置番号の対を作り、
元のテキストの整列位置番号を指定して、これらの対を
順次たどりながら、テキストの先頭から順番に復号でき
る。
は、テキスト・データ全体に対して巡回シフト列を作
り、すべての巡回シフト列に辞書式順序付けをおこなっ
て配列化する。それで、検索したいパターンが複数箇所
にある場合、巡回シフト列の配列の中で、検索パターン
は配列のある行の先頭列から始まり、しかも複数箇所の
検索パターンが配列の連続した行において固まって出現
するという特徴がある。また、ブロックソート圧縮デー
タの復号原理において、伸張復号した最後の列の文字列
の位置を辞書式順序で並べ替えて整列させるが、そのと
き、整列位置番号と整列前の整列位置番号の対を作り、
元のテキストの整列位置番号を指定して、これらの対を
順次たどりながら、テキストの先頭から順番に復号でき
る。
【0012】したがって、本発明では、ブロックソート
圧縮データがもつこのような性質を利用して効率良い検
索手段を提供する。すなわち、まず検索パターンの先頭
の文字と2番目の文字の対に対して、整列位置番号と整
列前位置番号の対を当てはめて対応させる。これらに当
てはめられる対は、辞書式順序で整列させているため
に、固まって出現するので候補を絞り込める。続いて検
索パターンの2番目の文字と3番目の文字の対に対し
て、前段で絞り込まれたものに対して整列位置番号と整
列前の整列位置番号の対を当てはめて対応させるという
手順を同様に繰り返していく。すると、検索パターンの
長さをnとするとき、検索パターンのn−1番目の文字
とn番目の文字の対に対して整列位置番号と整列前位置
番号の対を当てはめて絞り込み対応させた段階で一連の
手順は終了する。
圧縮データがもつこのような性質を利用して効率良い検
索手段を提供する。すなわち、まず検索パターンの先頭
の文字と2番目の文字の対に対して、整列位置番号と整
列前位置番号の対を当てはめて対応させる。これらに当
てはめられる対は、辞書式順序で整列させているため
に、固まって出現するので候補を絞り込める。続いて検
索パターンの2番目の文字と3番目の文字の対に対し
て、前段で絞り込まれたものに対して整列位置番号と整
列前の整列位置番号の対を当てはめて対応させるという
手順を同様に繰り返していく。すると、検索パターンの
長さをnとするとき、検索パターンのn−1番目の文字
とn番目の文字の対に対して整列位置番号と整列前位置
番号の対を当てはめて絞り込み対応させた段階で一連の
手順は終了する。
【0013】結果として、複数箇所で検出された検索パ
ターンだけが残り、同時に元のデータ列に含まれている
検索パータンが検出されることになる。
ターンだけが残り、同時に元のデータ列に含まれている
検索パータンが検出されることになる。
【0014】元のテキスト列の文字の出現個数がわかっ
ているときには、整列位置番号と整列前位置番号の対を
順次求めることができるため、照合にあたり全ての元の
テキスト列を復号する必要はなく、検索パターンと照合
する必要なところだけ復号して照合すれば良い。また、
いわゆるあいまい検索も、マッチングの可能性のあると
ころを上記手順で復号することによりおこなうことがで
きる。
ているときには、整列位置番号と整列前位置番号の対を
順次求めることができるため、照合にあたり全ての元の
テキスト列を復号する必要はなく、検索パターンと照合
する必要なところだけ復号して照合すれば良い。また、
いわゆるあいまい検索も、マッチングの可能性のあると
ころを上記手順で復号することによりおこなうことがで
きる。
【0015】検索パターンを照合するときには、元のテ
キスト列で出てくる文字が一番少ない文字からおこなえ
ば絞込みが速くなり、効率的に検索できる。
キスト列で出てくる文字が一番少ない文字からおこなえ
ば絞込みが速くなり、効率的に検索できる。
【0016】ブロックソート圧縮法では、符号化操作は
2段階でおこなわれる。第1段階の符号化では、通常の
発想では、連続して出てくる文字の長さに着目して符号
化するものである。しかしながら、上記検索方法では、
第1段階の復号化のステップと整列位置番号と整列前位
置番号の対を求める手順が無関係に存在しており、効率
的には改善すべきものがある。
2段階でおこなわれる。第1段階の符号化では、通常の
発想では、連続して出てくる文字の長さに着目して符号
化するものである。しかしながら、上記検索方法では、
第1段階の復号化のステップと整列位置番号と整列前位
置番号の対を求める手順が無関係に存在しており、効率
的には改善すべきものがある。
【0017】そこで、ブロックソート圧縮法において、
配列の最後の列の文字列を圧縮符号化するのではなく、
整列位置番号と整列前位置番号の対を直接に圧縮符号化
することで復号と検索の効率をさらに上げることにす
る。整列位置番号と整列前位置番号の対は、配列の最後
の列の文字列に1対1で対応しているので、ほぼ同程度
の圧縮率の達成が期待できる。ブロックソート圧縮法の
符号化方法によって、検索向きの圧縮法を提供すること
ができる。
配列の最後の列の文字列を圧縮符号化するのではなく、
整列位置番号と整列前位置番号の対を直接に圧縮符号化
することで復号と検索の効率をさらに上げることにす
る。整列位置番号と整列前位置番号の対は、配列の最後
の列の文字列に1対1で対応しているので、ほぼ同程度
の圧縮率の達成が期待できる。ブロックソート圧縮法の
符号化方法によって、検索向きの圧縮法を提供すること
ができる。
【0018】
【発明の実施の形態】以下、本発明に係る各実施形態
を、図1ないし図11を用いて説明する。 〔ブロックソート圧縮法〕先ず、本発明のブロックソー
ト圧縮データの検索法を説明する前に、図2および図3
を用いて前提となるブロックソート圧縮法について説明
する。図2は、ブロックソート圧縮法の圧縮符号化過程
を説明するための概略図である。図3は、ブロックソー
ト圧縮法を具体的なデータにより説明するための図であ
る。
を、図1ないし図11を用いて説明する。 〔ブロックソート圧縮法〕先ず、本発明のブロックソー
ト圧縮データの検索法を説明する前に、図2および図3
を用いて前提となるブロックソート圧縮法について説明
する。図2は、ブロックソート圧縮法の圧縮符号化過程
を説明するための概略図である。図3は、ブロックソー
ト圧縮法を具体的なデータにより説明するための図であ
る。
【0019】以下、本発明の実施形態では、一貫して、
元のテキストが'cabccabcccabbcabc
cabcaccabbcaaab'の32個の文字から
なるテキスト200を圧縮した場合を例に採り説明して
いくことにする。
元のテキストが'cabccabcccabbcabc
cabcaccabbcaaab'の32個の文字から
なるテキスト200を圧縮した場合を例に採り説明して
いくことにする。
【0020】ブロックソート圧縮法により圧縮して、符
号化するときのアルゴリズムの概略は、以下のようにな
る。
号化するときのアルゴリズムの概略は、以下のようにな
る。
【0021】(圧縮−ステップ1)先ず、元のテキスト
200の巡回シフトをおこなって、全ての巡回シフト列
210を求める。巡回シフトとは、元の列を一文字単位
で右または左に、回転させてシフトさせることであり、
図2の例では、テキスト200を左側にシフトさせて、
先頭からはみ出た文字'c'が、最後尾にきている。
200の巡回シフトをおこなって、全ての巡回シフト列
210を求める。巡回シフトとは、元の列を一文字単位
で右または左に、回転させてシフトさせることであり、
図2の例では、テキスト200を左側にシフトさせて、
先頭からはみ出た文字'c'が、最後尾にきている。
【0022】この元のテキスト200の例では、32個
の文字からなっているため、32個の巡回シフト列21
0ができることになる。
の文字からなっているため、32個の巡回シフト列21
0ができることになる。
【0023】(圧縮−ステップ2)(圧縮−ステップ
1)で生成された巡回シフト列を辞書式順序で整列させ
て、配列220を作る。
1)で生成された巡回シフト列を辞書式順序で整列させ
て、配列220を作る。
【0024】(圧縮−ステップ3)配列220の最後の
列130を取り出して、これを圧縮符号化する。このよ
うに元のテキスト200からこのような手順を経て、最
後の列130の列に変換することを、発案者の名前をと
り、Burrows−Wheeler変換、略してBW
変換と言っている。実際には、取ってくるのは配列22
0のどの列でも良いが、前記論文には、最後の列をとっ
ている。
列130を取り出して、これを圧縮符号化する。このよ
うに元のテキスト200からこのような手順を経て、最
後の列130の列に変換することを、発案者の名前をと
り、Burrows−Wheeler変換、略してBW
変換と言っている。実際には、取ってくるのは配列22
0のどの列でも良いが、前記論文には、最後の列をとっ
ている。
【0025】また、この配列220の中で、元のテキス
トの位置番号230である'25'についても圧縮してお
く。
トの位置番号230である'25'についても圧縮してお
く。
【0026】元のテキスト200とBW変換した列は、
長さは同じであるが同じ文字が続く傾向があることが知
られているので、例えば、文字列の連続長を符号化する
ことにより高い圧縮率が得られる。なお、BW変換した
列の符号化の仕方は、外にもいろいろな方法が考えら
れ、必ずしも上記の方法にこだわる必要はない。
長さは同じであるが同じ文字が続く傾向があることが知
られているので、例えば、文字列の連続長を符号化する
ことにより高い圧縮率が得られる。なお、BW変換した
列の符号化の仕方は、外にもいろいろな方法が考えら
れ、必ずしも上記の方法にこだわる必要はない。
【0027】このように、ブロックソート圧縮法は、辞
書式順序で整列させた配列220に基づいて、符号化の
ためのデータを得るものなので、元のテキスト200を
圧縮するよりも効率の良い圧縮がおこなえるのでないか
として注目されているものである。
書式順序で整列させた配列220に基づいて、符号化の
ためのデータを得るものなので、元のテキスト200を
圧縮するよりも効率の良い圧縮がおこなえるのでないか
として注目されているものである。
【0028】次に、上記手順により、圧縮して符号化さ
れたデータを復号して伸張する場合の手順を、図4およ
び図5を用いて説明する。図4は、ブロックソート圧縮
法の伸張復号化過程を説明するための概略図である。図
5は、ブロックソート圧縮法を伸張復号化過程を具体的
なデータにより説明するための図である。
れたデータを復号して伸張する場合の手順を、図4およ
び図5を用いて説明する。図4は、ブロックソート圧縮
法の伸張復号化過程を説明するための概略図である。図
5は、ブロックソート圧縮法を伸張復号化過程を具体的
なデータにより説明するための図である。
【0029】先ず、具体的な手順を説明する前に、図3
に示されている整列位置番号と整列前位置番号について
説明する。この整列位置番号と整列前位置番号は、ブロ
ックソート圧縮法のアルゴリズムを理解する上におい
て、非常に重要な概念である。
に示されている整列位置番号と整列前位置番号について
説明する。この整列位置番号と整列前位置番号は、ブロ
ックソート圧縮法のアルゴリズムを理解する上におい
て、非常に重要な概念である。
【0030】整列位置番号は、巡回シフト列を辞書式順
序に整列させた配列220の位置そのものである。
序に整列させた配列220の位置そのものである。
【0031】整列前位置番号とは、BW変換した最後の
列130を配列の最初の列に一致させるように、整列さ
せたときに、整列させた文字が、整列する前にはどの整
列位置番号の位置にあったかを示す位置番号である。
列130を配列の最初の列に一致させるように、整列さ
せたときに、整列させた文字が、整列する前にはどの整
列位置番号の位置にあったかを示す位置番号である。
【0032】具体的には、BW変換した最後の列130
は、'caccacccccaabbaaaaabcc
cbbcbacbbb'である。
は、'caccacccccaabbaaaaabcc
cbbcbacbbb'である。
【0033】これを整列させるために、先ず'a'の文字
が来る。これは、整列前には、2番目にあったものだか
ら、整列前位置番号は、02となる。次に来るのも、'
a'の文字である。次の'a'の文字が見出されるのは、
BW変換した最後の列130で5番目なので、整列前位
置番号は、05となる。
が来る。これは、整列前には、2番目にあったものだか
ら、整列前位置番号は、02となる。次に来るのも、'
a'の文字である。次の'a'の文字が見出されるのは、
BW変換した最後の列130で5番目なので、整列前位
置番号は、05となる。
【0034】同様にして、'a'の文字が並び、'b'の文
字が最初に来るときの整列前位置番号は、13にな
り、'c'の文字が最初に来るときの整列前位置番号は、
01になる。このようにして、整列した列130が得ら
れる。この対応の原理は、図4によって示されている。
字が最初に来るときの整列前位置番号は、13にな
り、'c'の文字が最初に来るときの整列前位置番号は、
01になる。このようにして、整列した列130が得ら
れる。この対応の原理は、図4によって示されている。
【0035】ここで、記号の約束をする。整列位置番号
140と整列前位置番号150の対を、(整列位置番
号,整列前位置番号)と書くことにする。例えば、'a'
が最初に来るところは、(01,02)、'b'が最初に
来るところは、(11,13)、'c'が最初に来るとこ
ろは、(20,01)である。
140と整列前位置番号150の対を、(整列位置番
号,整列前位置番号)と書くことにする。例えば、'a'
が最初に来るところは、(01,02)、'b'が最初に
来るところは、(11,13)、'c'が最初に来るとこ
ろは、(20,01)である。
【0036】次に、上記手順により圧縮符号化したとき
のデータを、伸張復号化するときのアルゴリズムの概略
は、以下のようになる。
のデータを、伸張復号化するときのアルゴリズムの概略
は、以下のようになる。
【0037】(伸張−ステップ1)(圧縮−ステップ
3)で符号化した元のテキスト位置230と、BW変換
した最後の列130を伸張復号化する。これを仮に第1
段階の伸張復号化ということにする。この第1段階の伸
張復号化は、もちろん、(圧縮−ステップ3)で符号化
したアルゴリズムに基づくものである。
3)で符号化した元のテキスト位置230と、BW変換
した最後の列130を伸張復号化する。これを仮に第1
段階の伸張復号化ということにする。この第1段階の伸
張復号化は、もちろん、(圧縮−ステップ3)で符号化
したアルゴリズムに基づくものである。
【0038】これにより、元のテキスト位置230であ
る'25'と、BW変換した最後の列130、'cacc
acccccaabbaaaaabcccbbcbac
bbb'が得られたものとする。
る'25'と、BW変換した最後の列130、'cacc
acccccaabbaaaaabcccbbcbac
bbb'が得られたものとする。
【0039】(伸張−ステップ2)(伸張−ステップ
1)で得られたBW変換した最後の列130を、辞書式
で整列させる。そのとき、上記手順で得られるような
(整列位置番号,整列前位置番号)の対も記憶してお
く。
1)で得られたBW変換した最後の列130を、辞書式
で整列させる。そのとき、上記手順で得られるような
(整列位置番号,整列前位置番号)の対も記憶してお
く。
【0040】この例では、図3に示されるように(0
1,02)、(02,05)、(03,11)、…、
(32,29)という対を得ることができる。
1,02)、(02,05)、(03,11)、…、
(32,29)という対を得ることができる。
【0041】(伸張−ステップ3)元のテキスト位置2
30、BW変換した最後の列130、整列させた列16
0および(整列位置番号,整列前位置番号)を基にして
元のテキスト200を復号する。これが第2段階の伸張
復号化である。
30、BW変換した最後の列130、整列させた列16
0および(整列位置番号,整列前位置番号)を基にして
元のテキスト200を復号する。これが第2段階の伸張
復号化である。
【0042】この例で示すと、以下のようになる。
【0043】先ず、元のテキスト位置230が'25'で
あるから、整列させた列160(図3の最初の列)の2
5番目を見て、最初の文字、'c'が復号される。この'
c'は、整列前には、8番目にあったことが、(25,
08)の対を見ることにより分る(図5)。次に、整
列させた列160の8番目は、'a'である。もともと、
この配列は巡回シフト列なのだから、この'a'は、最初
の文字'c'の次に来るものである。したがって、2番目
の文字'a'が復号される(図5)。
あるから、整列させた列160(図3の最初の列)の2
5番目を見て、最初の文字、'c'が復号される。この'
c'は、整列前には、8番目にあったことが、(25,
08)の対を見ることにより分る(図5)。次に、整
列させた列160の8番目は、'a'である。もともと、
この配列は巡回シフト列なのだから、この'a'は、最初
の文字'c'の次に来るものである。したがって、2番目
の文字'a'が復号される(図5)。
【0044】同様に、(08,18)の対を見て、整列
させた列160の18番目に、'b'が来ているので、3
番目の文字'b'が復号される。
させた列160の18番目に、'b'が来ているので、3
番目の文字'b'が復号される。
【0045】このような元のテキスト位置230か
ら、'25'から(25,08)、(08,18)、(1
8,31)、(31、26)、…というように連鎖的に
たどっていくと、順々に、'cabc…'というように元
のテキスト200が復号化されて得られることになる。
ら、'25'から(25,08)、(08,18)、(1
8,31)、(31、26)、…というように連鎖的に
たどっていくと、順々に、'cabc…'というように元
のテキスト200が復号化されて得られることになる。
【0046】このようにブロックソート圧縮法は、巡回
シフト列の性質を巧妙に利用して圧縮伸張をおこなうも
のである。
シフト列の性質を巧妙に利用して圧縮伸張をおこなうも
のである。
【0047】〔ブロックソート圧縮データの検索方法の
基本原理〕次に、図6を用いてブロックソート圧縮法に
より圧縮されたデータ(以下単に、「ブロックソート圧
縮データ」という)に対して、特定のパータンを検索す
るための基本原理について説明する。図6は、本発明に
係るブロックソート圧縮データの検索方法の検索過程を
説明するための図である。
基本原理〕次に、図6を用いてブロックソート圧縮法に
より圧縮されたデータ(以下単に、「ブロックソート圧
縮データ」という)に対して、特定のパータンを検索す
るための基本原理について説明する。図6は、本発明に
係るブロックソート圧縮データの検索方法の検索過程を
説明するための図である。
【0048】本実施形態では、検索パターン120とし
て、'cabbca'を取り上げる。この検索パターン
は、元のテキスト200には、2箇所に見出される。
て、'cabbca'を取り上げる。この検索パターン
は、元のテキスト200には、2箇所に見出される。
【0049】ここで、記号として検索パータンのi番目
の文字を、P[i]で表すことにする。この例では、図
6にも示されているようにP[1]='c'、P[2]
='a'などである。
の文字を、P[i]で表すことにする。この例では、図
6にも示されているようにP[1]='c'、P[2]
='a'などである。
【0050】アルゴリズムとしては、先ず、検索パータ
ン120の最初の文字P[1]が、整列した列160
(最初の列)のどこに見い出されかをサーチする。この
整列した列160は、辞書式に整列しているため、その
文字が最初に出現した場所から連続して出てくる個数だ
け見れば良く、サーチは極めて容易である。元のテキス
ト200から直接サーチする場合には、先頭の文字から
始めて、順番に照合しなければならず、サーチが元のテ
キスト200の長さ分だけおこなわなければならない。
したがって、それと比較すると、最初から整列した列か
らサーチするためこの検索は極めて効率的であるという
ことができる。
ン120の最初の文字P[1]が、整列した列160
(最初の列)のどこに見い出されかをサーチする。この
整列した列160は、辞書式に整列しているため、その
文字が最初に出現した場所から連続して出てくる個数だ
け見れば良く、サーチは極めて容易である。元のテキス
ト200から直接サーチする場合には、先頭の文字から
始めて、順番に照合しなければならず、サーチが元のテ
キスト200の長さ分だけおこなわなければならない。
したがって、それと比較すると、最初から整列した列か
らサーチするためこの検索は極めて効率的であるという
ことができる。
【0051】図6の表では、P[1]='c'の下に、2
0〜32までの数字が並んでいるが、これが、整列した
列160の整列位置番号である。実際に図3では、20
〜32に'c'が来ていることが確認できる。
0〜32までの数字が並んでいるが、これが、整列した
列160の整列位置番号である。実際に図3では、20
〜32に'c'が来ていることが確認できる。
【0052】次に、P[2]='a'を検索する。
【0053】これは、各々P[1]で見つかった整列位
置番号から整列前位置番号の対を求め、それにより検索
する。すなわち、整列位置番号'20'から整列前位置番
号'01'を求め、ブロックソート圧縮法の復号の原理に
より、'a'が復元されて、2文字目も一致することが分
る。このように2文字目が'a'のパターンを調べると、
図6の表の2列目から分るように、(整列位置番号,整
列前位置番号)の組は、(20,01)、(21,0
3)、(22,04)、(23,06)、(24,0
7)、(25,08)、(26,09)、(27,1
0)となる。次の整列位置番号'28'では、整列前位置
番号'18'であり、復号される文字は、'c'となるため
検索パターンと一致しないことが分る。そして、これ以
降では、検索パターンと一致するパターンは原理上見出
されない。というのも、配列220は、もともと辞書式
に整列しているからである。
置番号から整列前位置番号の対を求め、それにより検索
する。すなわち、整列位置番号'20'から整列前位置番
号'01'を求め、ブロックソート圧縮法の復号の原理に
より、'a'が復元されて、2文字目も一致することが分
る。このように2文字目が'a'のパターンを調べると、
図6の表の2列目から分るように、(整列位置番号,整
列前位置番号)の組は、(20,01)、(21,0
3)、(22,04)、(23,06)、(24,0
7)、(25,08)、(26,09)、(27,1
0)となる。次の整列位置番号'28'では、整列前位置
番号'18'であり、復号される文字は、'c'となるため
検索パターンと一致しないことが分る。そして、これ以
降では、検索パターンと一致するパターンは原理上見出
されない。というのも、配列220は、もともと辞書式
に整列しているからである。
【0054】同様に、次のP[3]='b'を検索する。
P[2]の整列位置番号から見出される候補は、(0
3,11)、(04,12)、(06,16)、(0
7,17)、(08,18)、(09,19)である。
P[2]の整列位置番号から見出される候補は、(0
3,11)、(04,12)、(06,16)、(0
7,17)、(08,18)、(09,19)である。
【0055】このようにして、P[1]〜P[6]ま
で、一致するのは、図6に示されるように(21,0
3)、(03,11)、(11,13)、(13,2
0)、(20,01)の行610と(22,04)、
(04,12)、(12,14)、(14,24)、
(24,07)の行620の二箇所で一致することが分
る。すなわち、この場所で検索する6個の文字が見つか
ったことを意味する。
で、一致するのは、図6に示されるように(21,0
3)、(03,11)、(11,13)、(13,2
0)、(20,01)の行610と(22,04)、
(04,12)、(12,14)、(14,24)、
(24,07)の行620の二箇所で一致することが分
る。すなわち、この場所で検索する6個の文字が見つか
ったことを意味する。
【0056】この検索法によれば、ブロックソート圧縮
法の整列した列160と(整列位置番号,整列前位置番
号)を基にして、先頭位置P[1]から順番に調べて行
けば良く、しかも、各々の探索枝に対して、必ず検索パ
ターンの長さだけ探せば良いので、元のテキスト列20
0をサーチする場合に比べて極めて能率的な検索をおこ
なうことができる。
法の整列した列160と(整列位置番号,整列前位置番
号)を基にして、先頭位置P[1]から順番に調べて行
けば良く、しかも、各々の探索枝に対して、必ず検索パ
ターンの長さだけ探せば良いので、元のテキスト列20
0をサーチする場合に比べて極めて能率的な検索をおこ
なうことができる。
【0057】〔該当箇所の前後の表示〕ところで、元の
テキスト列200から検索パターン120を検索すると
きに、その該当する箇所の前後の文字列を表示したいこ
とが実用上よくある。
テキスト列200から検索パターン120を検索すると
きに、その該当する箇所の前後の文字列を表示したいこ
とが実用上よくある。
【0058】この場合においても、本発明のブロックソ
ート圧縮データの検索方法によれば、検索したときと、
同様の手順により、該当箇所の前後の文字列を復号して
表示することができる。
ート圧縮データの検索方法によれば、検索したときと、
同様の手順により、該当箇所の前後の文字列を復号して
表示することができる。
【0059】例えば、上記の例で、図6の行610の箇
所の前の文字列を表示したいとする。この場合には、整
列前位置番号'21'のときの整列位置番号を求めれば、
P[1]の前の文字を求めることができる。すなわち、
(整列位置番号,整列前位置番号)=(x,21)にあ
たるxを求めれば良い。xは28となり、整列した列1
60の28番目の文字が'c'であることにより、求める
文字は、'c'であることが分る。その前の文字も同様に
して、(x,28)から、xは10となり、求める文字
は、'a'であることが分る。
所の前の文字列を表示したいとする。この場合には、整
列前位置番号'21'のときの整列位置番号を求めれば、
P[1]の前の文字を求めることができる。すなわち、
(整列位置番号,整列前位置番号)=(x,21)にあ
たるxを求めれば良い。xは28となり、整列した列1
60の28番目の文字が'c'であることにより、求める
文字は、'c'であることが分る。その前の文字も同様に
して、(x,28)から、xは10となり、求める文字
は、'a'であることが分る。
【0060】逆に、図6の行610の箇所の後の文字列
を表示したい場合には、一番最後の対(20,01)に
注目して、整列位置番号'01'のときの整列前位置番号
を求めれば良い。すなわち、(整列位置番号,整列前位
置番号)=(01,y)にあたるyを求める。yは02
であり、整列した列160の2番目の文字が'a'である
ことから、このP[6]のすぐ後ろの文字は、'a'であ
ることが分る。同様に、(02,y)のyを求めると、
yは05となり同様に次の文字も'a'であることができ
る。
を表示したい場合には、一番最後の対(20,01)に
注目して、整列位置番号'01'のときの整列前位置番号
を求めれば良い。すなわち、(整列位置番号,整列前位
置番号)=(01,y)にあたるyを求める。yは02
であり、整列した列160の2番目の文字が'a'である
ことから、このP[6]のすぐ後ろの文字は、'a'であ
ることが分る。同様に、(02,y)のyを求めると、
yは05となり同様に次の文字も'a'であることができ
る。
【0061】このように元のテキスト200で検索パー
タン120がある所の前後の文字列は(整列位置番号,
整列前位置番号)の連鎖をたどっていくことにより、自
然と復号でき、これをCRTやプリンタなどの出力装置
に表示させることができる。
タン120がある所の前後の文字列は(整列位置番号,
整列前位置番号)の連鎖をたどっていくことにより、自
然と復号でき、これをCRTやプリンタなどの出力装置
に表示させることができる。
【0062】〔あいまい検索への応用〕次に、図7を用
いて本発明に係るブロックソート圧縮データの検索方法
が、あいまい検索へも応用できることを説明する。図7
は、本発明に係るブロックソート圧縮データの検索方法
であいまい検索をおこなったときの検索過程を説明する
ための図である。
いて本発明に係るブロックソート圧縮データの検索方法
が、あいまい検索へも応用できることを説明する。図7
は、本発明に係るブロックソート圧縮データの検索方法
であいまい検索をおこなったときの検索過程を説明する
ための図である。
【0063】テキスト検索において、いわゆる「あいま
い検索」をおこないたいことが良くある。あいまい検索
とは、例えば、単語の一部のみを指定し、その他の部分
はなにが来ても良いとして一致するパターンを検索する
ことである。例えば、'*'の文字がドントケアの文字
(ワイルドカードとも言う)を表すとして、検索パター
ンに'*'を指定したときには、全ての文字とマッチング
するものと約束する。
い検索」をおこないたいことが良くある。あいまい検索
とは、例えば、単語の一部のみを指定し、その他の部分
はなにが来ても良いとして一致するパターンを検索する
ことである。例えば、'*'の文字がドントケアの文字
(ワイルドカードとも言う)を表すとして、検索パター
ンに'*'を指定したときには、全ての文字とマッチング
するものと約束する。
【0064】この例で、例えば、あいまい検索として、
検索パータンとして'ca**ac'が指定されたものと
する。すなわち、P[3]=P[4]='*'で他の部分
は、上の例と同様である。
検索パータンとして'ca**ac'が指定されたものと
する。すなわち、P[3]=P[4]='*'で他の部分
は、上の例と同様である。
【0065】この場合には、先ず、既に述べた来た本発
明の検索方法により、P[1]P[2]='ca'の部分
で一致する箇所を検索する。一致する部分は、(整列位
置番号,整列前位置番号)の表現で表すと、図7に示さ
れる通り、(20,01)、(21,03)、(22,
04)、(23,06)、(24,07)、(25,0
8)、(26,09)、(27,10)の8個である。
明の検索方法により、P[1]P[2]='ca'の部分
で一致する箇所を検索する。一致する部分は、(整列位
置番号,整列前位置番号)の表現で表すと、図7に示さ
れる通り、(20,01)、(21,03)、(22,
04)、(23,06)、(24,07)、(25,0
8)、(26,09)、(27,10)の8個である。
【0066】次のP[3]P[4]='**'の部分は、
全ての文字とマッチングするので、そのまま、(整列位
置番号,整列前位置番号)の連鎖をたどることになる。
この過程では、候補は減らずに推移する。そして、この
候補の中から後半のパターンP[5]P[6]='ca'
にマッチングするもののみを追跡し、最終的な絞り込み
をおこなう。すなわち、次のP[5]のところでマッチ
ングするのは、図のように5箇所であり、P[6]のと
ころでさらに絞り込まれ、このあいまい検索の解として
は図7に示されるように4箇所の場所が求まることにな
る。
全ての文字とマッチングするので、そのまま、(整列位
置番号,整列前位置番号)の連鎖をたどることになる。
この過程では、候補は減らずに推移する。そして、この
候補の中から後半のパターンP[5]P[6]='ca'
にマッチングするもののみを追跡し、最終的な絞り込み
をおこなう。すなわち、次のP[5]のところでマッチ
ングするのは、図のように5箇所であり、P[6]のと
ころでさらに絞り込まれ、このあいまい検索の解として
は図7に示されるように4箇所の場所が求まることにな
る。
【0067】〔ブロックソート圧縮データの検索方法の
効率化−その一〕上で、本発明に係るブロックソート圧
縮データの検索方法の原理について述べたが、ここで
は、図8を用いてさらに本発明の検索方法を効率的にお
こなうための工夫について説明する。図8は、元のテキ
スト列の出てくる個数に着目して復号と検索をおこなう
ための過程を説明するための図である。
効率化−その一〕上で、本発明に係るブロックソート圧
縮データの検索方法の原理について述べたが、ここで
は、図8を用いてさらに本発明の検索方法を効率的にお
こなうための工夫について説明する。図8は、元のテキ
スト列の出てくる個数に着目して復号と検索をおこなう
ための過程を説明するための図である。
【0068】上記ブロックソート圧縮データの検索方法
の原理では、ブロックソート圧縮法における第1段階の
伸張復号化をおこなって、復号化されたBW変換された
列130(最後の列)に基づいて検索をおこなうものと
して説明した。
の原理では、ブロックソート圧縮法における第1段階の
伸張復号化をおこなって、復号化されたBW変換された
列130(最後の列)に基づいて検索をおこなうものと
して説明した。
【0069】次に説明する本発明の検索方法は、必ずし
も完全にBW変換された列130を復号しなくても、検
索をおこなえるものである。したがって、一層効率的な
検索がおこなえることが期待される。
も完全にBW変換された列130を復号しなくても、検
索をおこなえるものである。したがって、一層効率的な
検索がおこなえることが期待される。
【0070】この検索をおこなえるための条件は、元の
テキスト200の文字の出現個数がわかるように符号化
されていることである。この例では、'a'が10個、'
b'が9個、'c'が13個である。これから説明する検
索方法の効率化のポイントは、文字の出現個数が分って
いるときには、BW変換した列130の先頭から順に処
理していく毎に、整列位置番号と整列前位置番号の対を
求めることができるため、先頭から順に復号して検索パ
ターンとマッチング処理をおこなうことができる点にあ
る。
テキスト200の文字の出現個数がわかるように符号化
されていることである。この例では、'a'が10個、'
b'が9個、'c'が13個である。これから説明する検
索方法の効率化のポイントは、文字の出現個数が分って
いるときには、BW変換した列130の先頭から順に処
理していく毎に、整列位置番号と整列前位置番号の対を
求めることができるため、先頭から順に復号して検索パ
ターンとマッチング処理をおこなうことができる点にあ
る。
【0071】具体的に手順を追っていくと以下の通りで
ある。先ず、BW変換された列130の最初の文字
は、'c'である。これは、'c'の1番目であり、しか
も、予め文字の出現個数が分っているので、'c'の整列
位置番号は、10+9+1となる。すなわち、(整列位
置番号,整列前位置番号)=(20,01)が求まる。
ある。先ず、BW変換された列130の最初の文字
は、'c'である。これは、'c'の1番目であり、しか
も、予め文字の出現個数が分っているので、'c'の整列
位置番号は、10+9+1となる。すなわち、(整列位
置番号,整列前位置番号)=(20,01)が求まる。
【0072】図8では、文字毎に整列前位置番号を並べ
たものであり、'a'の順番1のセルが整列位置番号が
1、'b'の順番1のセルが整列位置番号が11、'c'の
順番1のセルが整列位置番号が20に該当することを示
している。
たものであり、'a'の順番1のセルが整列位置番号が
1、'b'の順番1のセルが整列位置番号が11、'c'の
順番1のセルが整列位置番号が20に該当することを示
している。
【0073】そして、次の文字'a'は、'a'の1番目で
あり、整列位置番号は、1である。すなわち、(整列位
置番号,整列前位置番号)=(01,02)である。同
様に、3番目の文字は、'c'については、整列位置番号
は、10+9+2=22であり、(整列位置番号,整列
前位置番号)=(22,03)である。これは、'c'の
順番2のセルの整列前位置番号が3であることに対応す
る。このように図8は、'a'、'b'、'c'の各文字が出
てくるたびに、整列前位置番号を対応する行のセルに入
れていけば、自動的に整列位置番号を求めることができ
ることを示している。
あり、整列位置番号は、1である。すなわち、(整列位
置番号,整列前位置番号)=(01,02)である。同
様に、3番目の文字は、'c'については、整列位置番号
は、10+9+2=22であり、(整列位置番号,整列
前位置番号)=(22,03)である。これは、'c'の
順番2のセルの整列前位置番号が3であることに対応す
る。このように図8は、'a'、'b'、'c'の各文字が出
てくるたびに、整列前位置番号を対応する行のセルに入
れていけば、自動的に整列位置番号を求めることができ
ることを示している。
【0074】さて、検索パターン120は、'cabb
ca'であった。
ca'であった。
【0075】ここで、文字'b'の最初のものが出てくる
ところまで、整列操作がおこなわれたとする。図8から
すぐ見て取れるように、文字'b'は、最初から13番目
に出てきて、すなわち、整列前位置番号は、13であ
り、整列位置番号は、10+1=11である。
ところまで、整列操作がおこなわれたとする。図8から
すぐ見て取れるように、文字'b'は、最初から13番目
に出てきて、すなわち、整列前位置番号は、13であ
り、整列位置番号は、10+1=11である。
【0076】ここまで、(整列位置番号,整列前位置番
号)の対で、検索パータン120とマッチグするもの
は、(21,03)(03,11)(11,13)と、
(22,04)(04,12)のシーケンスで、'ca
bb'と'cab'までが照合できる。
号)の対で、検索パータン120とマッチグするもの
は、(21,03)(03,11)(11,13)と、
(22,04)(04,12)のシーケンスで、'ca
bb'と'cab'までが照合できる。
【0077】このようにして、BW変換した列130の
24番目の文字'b'まで、整列操作がおこなわれた段階
では、(21,03)(03,11)(11,13)
(13,20)(20,01)と(22,04)(0
4,12)(12,14)(14,24)(24,0
7)で、検索パターン120の'cabbca'が照合で
きる。
24番目の文字'b'まで、整列操作がおこなわれた段階
では、(21,03)(03,11)(11,13)
(13,20)(20,01)と(22,04)(0
4,12)(12,14)(14,24)(24,0
7)で、検索パターン120の'cabbca'が照合で
きる。
【0078】そして、これ以降では、もはや検索パター
ン120'cabbca'は、出現しないことが分る。こ
れは、(整列位置番号,整列前位置番号)=(16,x
x)にあたるxxには、文字'b'にあたる整列前位置番
号11〜19が来ることはない。これは、24番目まで
調べているので、他の場所に既に整列前位置番号11〜
19が使われていることが判明しているからである。し
たがって、これ以降には文字'b'が来ることはなく、こ
れ以降の照合操作はおこなう必要のないことがわかる。
ン120'cabbca'は、出現しないことが分る。こ
れは、(整列位置番号,整列前位置番号)=(16,x
x)にあたるxxには、文字'b'にあたる整列前位置番
号11〜19が来ることはない。これは、24番目まで
調べているので、他の場所に既に整列前位置番号11〜
19が使われていることが判明しているからである。し
たがって、これ以降には文字'b'が来ることはなく、こ
れ以降の照合操作はおこなう必要のないことがわかる。
【0079】通常のテキストとの照合処理により、検索
処理をおこなう場合には、最後の文字まで、照合しない
と検索パターンを検出できないのと比較して、本発明の
ブロックソート圧縮データの検索方法の有利な点であ
る。ただし、最悪の場合には最後まで整列操作をおこな
わなけばならない場合も生じうる。
処理をおこなう場合には、最後の文字まで、照合しない
と検索パターンを検出できないのと比較して、本発明の
ブロックソート圧縮データの検索方法の有利な点であ
る。ただし、最悪の場合には最後まで整列操作をおこな
わなけばならない場合も生じうる。
【0080】〔ブロックソート圧縮データの検索方法の
効率化−その二〕次に、図1を用いて本発明の検索方法
を効率的におこなうための他の工夫について説明する。
図1は、本発明のブロックソート圧縮データの検索方法
の概略手順を説明するための図である。
効率化−その二〕次に、図1を用いて本発明の検索方法
を効率的におこなうための他の工夫について説明する。
図1は、本発明のブロックソート圧縮データの検索方法
の概略手順を説明するための図である。
【0081】これまで説明してきた本発明のブロックソ
ート圧縮データ検索では、検索パターン120の先頭か
ら照合処理をおこなってきた。しかしながら、検索パタ
ーン120の先頭文字P[1]のテキスト200での出
現個数が多いと、最初の照合処理が多くなり絞り込むま
での操作も多くなる。したがって、これを避けるために
は、検索パターン120の文字列の中で、テキスト20
0の中で出現個数の少ない文字を選び出し、その位置か
ら照合処理を開始して、絞り込んだ後で、開始位置の前
の文字を逆に遡って照合していくと効率的になる。
ート圧縮データ検索では、検索パターン120の先頭か
ら照合処理をおこなってきた。しかしながら、検索パタ
ーン120の先頭文字P[1]のテキスト200での出
現個数が多いと、最初の照合処理が多くなり絞り込むま
での操作も多くなる。したがって、これを避けるために
は、検索パターン120の文字列の中で、テキスト20
0の中で出現個数の少ない文字を選び出し、その位置か
ら照合処理を開始して、絞り込んだ後で、開始位置の前
の文字を逆に遡って照合していくと効率的になる。
【0082】また、検索パターン120の複数箇所の出
現位置を同時に検出するよりも、先ず1箇所目を見つけ
た方が、2箇所目以降の絞り込みがはやくなる。
現位置を同時に検出するよりも、先ず1箇所目を見つけ
た方が、2箇所目以降の絞り込みがはやくなる。
【0083】検索パターン120'cabbca'の例で
は、'a'、'b'、'c'の三種類の文字が出てくるわけで
あるが、元のテキスト200の中で、文字'b'が9個で
一番少ないので検索パータン120の3番目の文字'b'
に着目して検索を始める。
は、'a'、'b'、'c'の三種類の文字が出てくるわけで
あるが、元のテキスト200の中で、文字'b'が9個で
一番少ないので検索パータン120の3番目の文字'b'
に着目して検索を始める。
【0084】図1に示されるように、前向きの照合で
は、(11,13)(13,20)(20,01)と照
合されていき、後向きの照合では、(21,03)(0
3,11)というシーケンスで照合されていくことにな
る。このように検索パータンの任意の文字を選び出し
て、照合処理をおこなっていけるというのも、整列位置
番号と整列前位置番号によって、前向きでも後向きでも
まったく対称的に、復号ができるというブロックソート
圧縮法の特徴によるものである。
は、(11,13)(13,20)(20,01)と照
合されていき、後向きの照合では、(21,03)(0
3,11)というシーケンスで照合されていくことにな
る。このように検索パータンの任意の文字を選び出し
て、照合処理をおこなっていけるというのも、整列位置
番号と整列前位置番号によって、前向きでも後向きでも
まったく対称的に、復号ができるというブロックソート
圧縮法の特徴によるものである。
【0085】〔ブロックソート圧縮法の修正した圧縮符
号化〕これまで、ブロックソート圧縮法を前提とする検
索方法を述べてきた。この検索方法では、ブロックソー
ト圧縮法の第1段階の伸張復号化をおこない、しかる後
に(整列位置番号,整列前位置番号)により、第2段階
の伸張復号化をおこなって検索パータンとの照合をおこ
なうものであった。第1段階の符号化の例としては、例
えば、文字列の連続する長さで符号化する方法をあげ
た。
号化〕これまで、ブロックソート圧縮法を前提とする検
索方法を述べてきた。この検索方法では、ブロックソー
ト圧縮法の第1段階の伸張復号化をおこない、しかる後
に(整列位置番号,整列前位置番号)により、第2段階
の伸張復号化をおこなって検索パータンとの照合をおこ
なうものであった。第1段階の符号化の例としては、例
えば、文字列の連続する長さで符号化する方法をあげ
た。
【0086】ここでは、第1段階の符号化の段階で、
(整列位置番号,整列前位置番号)の対を直接符号化す
ることにより、2段階の符号化、復号化を1段階で済ま
せて、さらに効率的なブロックソート圧縮データに対す
る検索をおこなうアイデアについて説明する。
(整列位置番号,整列前位置番号)の対を直接符号化す
ることにより、2段階の符号化、復号化を1段階で済ま
せて、さらに効率的なブロックソート圧縮データに対す
る検索をおこなうアイデアについて説明する。
【0087】以下、図9および図10を用いてこれまで
の例により説明することにする。図9は、本発明のブロ
ックソート圧縮法の修正した圧縮符号化を説明するため
の図である。図10は、圧縮符号化したデータを模式的
に示した図である。
の例により説明することにする。図9は、本発明のブロ
ックソート圧縮法の修正した圧縮符号化を説明するため
の図である。図10は、圧縮符号化したデータを模式的
に示した図である。
【0088】ブロックソート圧縮法は、(整列位置番
号,整列前位置番号)の対を利用して、第2段階の伸張
復号化をおこなうものであった。したがって、(整列位
置番号,整列前位置番号)を直接に符号化すれば、復号
時のこの対応付けを省略できるというが基本的な発想で
ある。
号,整列前位置番号)の対を利用して、第2段階の伸張
復号化をおこなうものであった。したがって、(整列位
置番号,整列前位置番号)を直接に符号化すれば、復号
時のこの対応付けを省略できるというが基本的な発想で
ある。
【0089】図9は、'a'のテーブル410、'b'のテ
ーブル420、'c'のテーブル430毎に整列位置番号
340と整列前位置番号350を対応してあげたもので
ある。
ーブル420、'c'のテーブル430毎に整列位置番号
340と整列前位置番号350を対応してあげたもので
ある。
【0090】整列位置番号340も整列前位置番号35
0も0から始めている。これは、できるだけ符号化時に
記憶容量を減らそうという技術的な工夫である。
0も0から始めている。これは、できるだけ符号化時に
記憶容量を減らそうという技術的な工夫である。
【0091】また、BW変換した列160は、おなじ文
字が続く傾向があるため、整列前位置番号が同一の連番
が続くことが期待される。したがって、整列前位置番号
350は、各テーブルの相対位置であらわせば、圧縮率
が高くなることが予想される。したがって、整列前位置
番号350は、テーブルインデックス440と一緒に、
各テーブルの相対番号として表現することにする。
字が続く傾向があるため、整列前位置番号が同一の連番
が続くことが期待される。したがって、整列前位置番号
350は、各テーブルの相対位置であらわせば、圧縮率
が高くなることが予想される。したがって、整列前位置
番号350は、テーブルインデックス440と一緒に、
各テーブルの相対番号として表現することにする。
【0092】'a'のテーブル410の最初のエントリで
は、整列位置番号340が00であり、整列前位置番号
350が01であり、テーブルインデックス440が'
a'になっている。これは、図3の(整列位置番号,整
列前位置番号)としては、(01,02)に該当する。
また、'a'のテーブル410の3番目のエントリは、整
列位置番号340が02であり、整列前位置番号350
が00であり、テーブルインデックス440が'b'にな
っている。図8で示したように、'b'のテーブルの最初
の位置はは、11番目を表しているので、図3の(整列
位置番号,整列前位置番号)としては、(03,11)
である。
は、整列位置番号340が00であり、整列前位置番号
350が01であり、テーブルインデックス440が'
a'になっている。これは、図3の(整列位置番号,整
列前位置番号)としては、(01,02)に該当する。
また、'a'のテーブル410の3番目のエントリは、整
列位置番号340が02であり、整列前位置番号350
が00であり、テーブルインデックス440が'b'にな
っている。図8で示したように、'b'のテーブルの最初
の位置はは、11番目を表しているので、図3の(整列
位置番号,整列前位置番号)としては、(03,11)
である。
【0093】これを実際に符号化するときには、整列前
位置番号350と整列位置番号340の差を求めて相対
的に符号化することにする。そして、これをテーブルイ
ンデックスと共に復号可能なように符号化する。
位置番号350と整列位置番号340の差を求めて相対
的に符号化することにする。そして、これをテーブルイ
ンデックスと共に復号可能なように符号化する。
【0094】このようにして符号化されたデータを符号
化の仕方が良くわかるような書き方をすると、図10の
ようになる。これは、テーブルインデックスと相対位置
を符号化し、さらに、連続する文字の現れる場合の表記
を工夫したものである。この表記でi+jと書いてある
のは、iがj個連続していることを示している。
化の仕方が良くわかるような書き方をすると、図10の
ようになる。これは、テーブルインデックスと相対位置
を符号化し、さらに、連続する文字の現れる場合の表記
を工夫したものである。この表記でi+jと書いてある
のは、iがj個連続していることを示している。
【0095】この図10で、a(1,3)は、テーブル
インデックスが'a'で、整列前位置番号350と整列位
置番号340の差360が、1と3、次のb(−2+,
0+4)は、テーブルインデックスが'b'であり、差3
60が−2,−2と続き、0が4つ続くことを意味して
いる。
インデックスが'a'で、整列前位置番号350と整列位
置番号340の差360が、1と3、次のb(−2+,
0+4)は、テーブルインデックスが'b'であり、差3
60が−2,−2と続き、0が4つ続くことを意味して
いる。
【0096】〔ブロックソート圧縮データの検索方法の
アルゴリズム〕最後に、図1を用いてこれまで説明して
きたことを基にしてブロックソート圧縮データの検索方
法のアルゴリズムを整理して述べることにする。図1
は、本発明のブロックソート圧縮データの検索方法の概
略手順を説明するための図である。
アルゴリズム〕最後に、図1を用いてこれまで説明して
きたことを基にしてブロックソート圧縮データの検索方
法のアルゴリズムを整理して述べることにする。図1
は、本発明のブロックソート圧縮データの検索方法の概
略手順を説明するための図である。
【0097】元のテキスト200がブロックソート圧縮
法によって圧縮符号化されたデータが記憶媒体に記憶さ
れているとする。
法によって圧縮符号化されたデータが記憶媒体に記憶さ
れているとする。
【0098】そして、検索をおこなう検索パターン12
0が指定されているとする。
0が指定されているとする。
【0099】本発明の検索方法は、圧縮符号化データ1
00を伸張復号化しながら、検索パターン120との照
合処理を可能にするものであった。
00を伸張復号化しながら、検索パターン120との照
合処理を可能にするものであった。
【0100】検索は、任意の文字からおこなえるのであ
るが、元のテキストの出現個数の一番少ない文字、この
例では'b'からおこなうのが効率的である。復号化する
に際しては、(整列位置番号140,整列前位置番号1
50)の対を順次連鎖的にたどって、検索パターンとマ
ッチングするテキストの部分列を絞り込みながら、テキ
ストの前後の双方向にわたって復号していく。第1段階
の符号化で、出現する文字の個数がわかるようにしてお
くか、(整列位置番号140,整列前位置番号150)
の対自体を符号化するようにすれば、圧縮符号化データ
100の全てを元のテキスト200として復号しなくて
も順次、検索がおこなえることはこれまで述べきた通り
である。
るが、元のテキストの出現個数の一番少ない文字、この
例では'b'からおこなうのが効率的である。復号化する
に際しては、(整列位置番号140,整列前位置番号1
50)の対を順次連鎖的にたどって、検索パターンとマ
ッチングするテキストの部分列を絞り込みながら、テキ
ストの前後の双方向にわたって復号していく。第1段階
の符号化で、出現する文字の個数がわかるようにしてお
くか、(整列位置番号140,整列前位置番号150)
の対自体を符号化するようにすれば、圧縮符号化データ
100の全てを元のテキスト200として復号しなくて
も順次、検索がおこなえることはこれまで述べきた通り
である。
【0101】検索が成功して、該当箇所が見つかった
ら、必要に応じてマッチング箇所の前部と後部がどのよ
うに並びになっているかをユーザに提示してやる。
ら、必要に応じてマッチング箇所の前部と後部がどのよ
うに並びになっているかをユーザに提示してやる。
【0102】
【発明の効果】本発明のブロックソート圧縮データの検
索方法は、検索対象の文字列パターンがテキスト中の数
箇所に出現している場合でも、すべてを対象に先頭から
同時に照合することができる。しかも、検索パターンの
長さ分の照合を終了したところで、すべての照合可能な
位置が検出される。そのため、効率的な高速検索ができ
るデータの高能率圧縮法である。また、検索パターンの
前後の文字列の復号が直接おこなえるので、画面に検索
検出位置の前後の文字列を同時表示することができるの
で応用面でも便利である。また、ブロックソート圧縮法
の整列位置番号と整列前位置番号の対を直接符号化して
おけば、この検索方法に有効に利用できる。
索方法は、検索対象の文字列パターンがテキスト中の数
箇所に出現している場合でも、すべてを対象に先頭から
同時に照合することができる。しかも、検索パターンの
長さ分の照合を終了したところで、すべての照合可能な
位置が検出される。そのため、効率的な高速検索ができ
るデータの高能率圧縮法である。また、検索パターンの
前後の文字列の復号が直接おこなえるので、画面に検索
検出位置の前後の文字列を同時表示することができるの
で応用面でも便利である。また、ブロックソート圧縮法
の整列位置番号と整列前位置番号の対を直接符号化して
おけば、この検索方法に有効に利用できる。
【0103】このように本発明によれば、ブロックソー
ト圧縮法で圧縮されたデータに対してブロックソート圧
縮法の特質を活かすことにより、全ての符号化されたデ
ータを復号しなくても、逐次必要なデータだけ復号して
検索することによって高速検索を可能にするブロックソ
ート圧縮データ検索法を提供することができる。
ト圧縮法で圧縮されたデータに対してブロックソート圧
縮法の特質を活かすことにより、全ての符号化されたデ
ータを復号しなくても、逐次必要なデータだけ復号して
検索することによって高速検索を可能にするブロックソ
ート圧縮データ検索法を提供することができる。
【0104】また、その検索に適したブロックソート圧
縮法の符号化方法を提供することができる。
縮法の符号化方法を提供することができる。
【図1】本発明のブロックソート圧縮データの検索方法
の概略手順を説明するための図である。
の概略手順を説明するための図である。
【図2】ブロックソート圧縮法の圧縮符号化過程を説明
するための概略図である。
するための概略図である。
【図3】ブロックソート圧縮法を具体的なデータにより
説明するための図である。
説明するための図である。
【図4】ブロックソート圧縮法の伸張復号化過程を説明
するための概略図である。
するための概略図である。
【図5】ブロックソート圧縮法を伸張復号化過程を具体
的なデータにより説明するための図である。
的なデータにより説明するための図である。
【図6】本発明に係るブロックソート圧縮データの検索
方法の検索過程を説明するための図である。
方法の検索過程を説明するための図である。
【図7】本発明に係るブロックソート圧縮データの検索
方法であいまい検索をおこなったときの検索過程を説明
するための図である。
方法であいまい検索をおこなったときの検索過程を説明
するための図である。
【図8】元のテキスト列の出てくる個数に着目して復号
と検索をおこなうための過程を説明するための図であ
る。
と検索をおこなうための過程を説明するための図であ
る。
【図9】本発明のブロックソート圧縮法の修正した圧縮
符号化を説明するための図である。
符号化を説明するための図である。
【図10】圧縮符号化したデータを模式的に示した図で
ある。
ある。
100…圧縮符号化データ、110…第1段階の伸張復
号化、120…検索パターン、130…BW変換された
(配列の最後列の)列、140…整列位置番号、150
…整列前位置番号、160…整列させた(配列の先頭列
の)列、170…検索された整列番号、180…検索パ
ターンの前部の復号化、190…検索パターンの後部の
復号化、200…元のテキスト、210…巡回シフト
列、220…巡回シフト列の整列配列、230…元のテ
キストの位置番号、500…第2段階の復号化、340
…整列位置番号(00から始まる)、350…整列前位
置番号(00から始まる)、360…整列前位置番号と
整列位置番号の差、410…'a'テーブル、420…'
b'テーブル、430…'c'テーブル、440…テーブ
ルインデックス。
号化、120…検索パターン、130…BW変換された
(配列の最後列の)列、140…整列位置番号、150
…整列前位置番号、160…整列させた(配列の先頭列
の)列、170…検索された整列番号、180…検索パ
ターンの前部の復号化、190…検索パターンの後部の
復号化、200…元のテキスト、210…巡回シフト
列、220…巡回シフト列の整列配列、230…元のテ
キストの位置番号、500…第2段階の復号化、340
…整列位置番号(00から始まる)、350…整列前位
置番号(00から始まる)、360…整列前位置番号と
整列位置番号の差、410…'a'テーブル、420…'
b'テーブル、430…'c'テーブル、440…テーブ
ルインデックス。
Claims (6)
- 【請求項1】 ブロックソート圧縮データの検索方法に
おいて、 ブロックソート圧縮法により符号化されたデータの列を
第一の列、その第一の列を辞書式に整列させたデータの
列を第二の列としたときに (1)前記第一の列のデータを前記第二の列のデータに
整列させたときの整列位置番号と整列前位置番号の対を
求めるステップ、 (2)前記(1)のステップにより求められた整列位置
番号と整列前位置番号の対に基づき、元のデータ列を復
号するステップ、 (3)検索データ列を前記(2)のステップにより復号
されたデータ列を照合するステップとからなり、 前記第一の列のデータと検索データ列を入力し、 前記(1)のステップの後に、前記(2)のステップを
おこない、順次復号されたデータから前記(3)のステ
ップをおこなって元のデータ列に検索データ列が含まれ
るか否かを調べることを特徴とするブロックソート圧縮
データの検索方法。 - 【請求項2】 ブロックソート圧縮法により符号化され
たデータは、データの構成要素の各出現個数がわかるよ
うに、符号化されており、 前記(2)のステップにおいて、全ての元のデータ列を
復号しなくても、 前記データの構成要素の各出現個数に基づいて、前記整
列位置番号と整列前位置番号の対を求めて、前記(3)
のステップで検索データ列との照合に必要なデータだけ
復号して検索をおこなうことを特徴とする請求項1記載
のブロックソート圧縮データの検索方法。 - 【請求項3】 ブロックソート圧縮法の符号化方法にお
いて、 巡回シフトの後に、取り出した列を符号化するときに、 その取り出した列を、辞書式に整列した列に変換する場
合の整列位置番号と整列前位置番号の対を直接に符号化
することを特徴とするブロックソート圧縮法の符号化方
法。 - 【請求項4】 前記(3)のステップと検索データ列と
元のデータ列を照合するときに、元のデータ列の構成要
素の出現個数のすくない構成要素から照合をおこなうこ
とを特徴とする請求項1記載のブロックソート圧縮デー
タの検索方法。 - 【請求項5】 前記検索データ列が一意的でない構成要
素の表現がされ、 前記(3)のステップと検索データ列と元の列を照合す
るときに、その表現により、複数の構成要素とマッチン
グをすることにして検索することを特徴とする請求項1
記載のブロックソート圧縮データの検索方法。 - 【請求項6】 前記(3)のステップにおいて、 元のデータ列の中で、前記検索したデータ列を含まれる
場所の前後のデータ列をも、復号して表示することを特
徴とする請求項1記載のブロックソート圧縮データの検
索方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000182320A JP2001357048A (ja) | 2000-06-13 | 2000-06-13 | ブロックソート圧縮データの検索方法、および検索に適したブロックソート圧縮法の符号化方法 |
US09/875,161 US20010051941A1 (en) | 2000-06-13 | 2001-06-07 | Searching method of block sorting lossless compressed data, and encoding method suitable for searching data in block sorting lossless compressed data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000182320A JP2001357048A (ja) | 2000-06-13 | 2000-06-13 | ブロックソート圧縮データの検索方法、および検索に適したブロックソート圧縮法の符号化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001357048A true JP2001357048A (ja) | 2001-12-26 |
Family
ID=18683108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000182320A Pending JP2001357048A (ja) | 2000-06-13 | 2000-06-13 | ブロックソート圧縮データの検索方法、および検索に適したブロックソート圧縮法の符号化方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20010051941A1 (ja) |
JP (1) | JP2001357048A (ja) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007524923A (ja) * | 2003-05-23 | 2007-08-30 | ワシントン ユニヴァーシティー | Fpgaデバイスを使用するインテリジェントデータ記憶および処理 |
US8095508B2 (en) | 2000-04-07 | 2012-01-10 | Washington University | Intelligent data storage and processing using FPGA devices |
US8326819B2 (en) | 2006-11-13 | 2012-12-04 | Exegy Incorporated | Method and system for high performance data metatagging and data indexing using coprocessors |
US8374986B2 (en) | 2008-05-15 | 2013-02-12 | Exegy Incorporated | Method and system for accelerated stream processing |
US8379841B2 (en) | 2006-03-23 | 2013-02-19 | Exegy Incorporated | Method and system for high throughput blockwise independent encryption/decryption |
JP2014507732A (ja) * | 2011-02-24 | 2014-03-27 | エー9.・コム・インコーポレーテッド | グループ形式を用いた可変長データの改良型符号化および復号 |
JP2014524090A (ja) * | 2011-07-08 | 2014-09-18 | アビニシオ テクノロジー エルエルシー | 範囲に基づく検索のためのデータ格納の管理 |
US8879727B2 (en) | 2007-08-31 | 2014-11-04 | Ip Reservoir, Llc | Method and apparatus for hardware-accelerated encryption/decryption |
US9633093B2 (en) | 2012-10-23 | 2017-04-25 | Ip Reservoir, Llc | Method and apparatus for accelerated format translation of data in a delimited data format |
US9633097B2 (en) | 2012-10-23 | 2017-04-25 | Ip Reservoir, Llc | Method and apparatus for record pivoting to accelerate processing of data fields |
US10146845B2 (en) | 2012-10-23 | 2018-12-04 | Ip Reservoir, Llc | Method and apparatus for accelerated format translation of data in a delimited data format |
US10572824B2 (en) | 2003-05-23 | 2020-02-25 | Ip Reservoir, Llc | System and method for low latency multi-functional pipeline with correlation logic and selectively activated/deactivated pipelined data processing engines |
US10846624B2 (en) | 2016-12-22 | 2020-11-24 | Ip Reservoir, Llc | Method and apparatus for hardware-accelerated machine learning |
US10902013B2 (en) | 2014-04-23 | 2021-01-26 | Ip Reservoir, Llc | Method and apparatus for accelerated record layout detection |
US10942943B2 (en) | 2015-10-29 | 2021-03-09 | Ip Reservoir, Llc | Dynamic field data translation to support high performance stream data processing |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2002214613A1 (en) * | 2000-11-08 | 2002-05-21 | Digimarc Corporation | Content authentication and recovery using digital watermarks |
US7028042B2 (en) * | 2002-05-03 | 2006-04-11 | Jorma Rissanen | Lossless data compression system |
US7209926B2 (en) * | 2002-10-24 | 2007-04-24 | Research In Motion Limited | Methods and apparatus for lexicographically sorting cyclic data |
WO2008111049A2 (en) * | 2007-03-09 | 2008-09-18 | Ghost, Inc. | System and method for a virtual hosted operating system |
US8170352B2 (en) * | 2008-03-24 | 2012-05-01 | Sophos Plc | String searching facility |
US7870160B2 (en) * | 2008-04-14 | 2011-01-11 | Objectif Lune Inc. | Block compression algorithm |
US8417730B2 (en) * | 2008-04-14 | 2013-04-09 | Objectif Lune Inc. | Block compression algorithm |
US20120259869A1 (en) * | 2011-04-07 | 2012-10-11 | Infosys Technologies, Ltd. | System and method for implementing a window sorting mechanism |
JP6048251B2 (ja) * | 2013-03-21 | 2016-12-21 | 富士通株式会社 | データ圧縮装置、データ圧縮方法、およびデータ圧縮プログラム、並びにデータ復元装置、データ復元方法、およびデータ復元プログラム |
US9608664B2 (en) | 2013-12-30 | 2017-03-28 | International Business Machines Corporation | Compression of integer data using a common divisor |
US9305041B2 (en) * | 2014-01-06 | 2016-04-05 | International Business Machines Corporation | Compression of serialized B-tree data |
US9628107B2 (en) | 2014-04-07 | 2017-04-18 | International Business Machines Corporation | Compression of floating-point data by identifying a previous loss of precision |
US9350384B2 (en) | 2014-09-30 | 2016-05-24 | International Business Machines Corporation | Hierarchical data compression and computation |
US9959299B2 (en) | 2014-12-02 | 2018-05-01 | International Business Machines Corporation | Compression-aware partial sort of streaming columnar data |
US10909078B2 (en) | 2015-02-25 | 2021-02-02 | International Business Machines Corporation | Query predicate evaluation and computation for hierarchically compressed data |
CN109639285B (zh) * | 2018-12-05 | 2023-06-13 | 北京安华金和科技有限公司 | 一种基于有限块排序压缩提高bzip2压缩算法速度的方法 |
US11615056B2 (en) * | 2019-09-27 | 2023-03-28 | AVAST Software s.r.o. | Compression of array of strings with similarities |
US11329665B1 (en) * | 2019-12-11 | 2022-05-10 | Xilinx, Inc. | BWT circuit arrangement and method |
CN111444155B (zh) * | 2020-04-15 | 2024-02-02 | 中国银行股份有限公司 | 日志文本的处理方法、装置、电子设备及计算机存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2270472A1 (en) * | 1996-11-15 | 1998-05-28 | Michael Schindler | Computer sorting system for data compression |
-
2000
- 2000-06-13 JP JP2000182320A patent/JP2001357048A/ja active Pending
-
2001
- 2001-06-07 US US09/875,161 patent/US20010051941A1/en not_active Abandoned
Cited By (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8095508B2 (en) | 2000-04-07 | 2012-01-10 | Washington University | Intelligent data storage and processing using FPGA devices |
US9176775B2 (en) | 2003-05-23 | 2015-11-03 | Ip Reservoir, Llc | Intelligent data storage and processing using FPGA devices |
US10572824B2 (en) | 2003-05-23 | 2020-02-25 | Ip Reservoir, Llc | System and method for low latency multi-functional pipeline with correlation logic and selectively activated/deactivated pipelined data processing engines |
US10346181B2 (en) | 2003-05-23 | 2019-07-09 | Ip Reservoir, Llc | Intelligent data storage and processing using FPGA devices |
US11275594B2 (en) | 2003-05-23 | 2022-03-15 | Ip Reservoir, Llc | Intelligent data storage and processing using FPGA devices |
US8620881B2 (en) | 2003-05-23 | 2013-12-31 | Ip Reservoir, Llc | Intelligent data storage and processing using FPGA devices |
US10719334B2 (en) | 2003-05-23 | 2020-07-21 | Ip Reservoir, Llc | Intelligent data storage and processing using FPGA devices |
US9898312B2 (en) | 2003-05-23 | 2018-02-20 | Ip Reservoir, Llc | Intelligent data storage and processing using FPGA devices |
US8751452B2 (en) | 2003-05-23 | 2014-06-10 | Ip Reservoir, Llc | Intelligent data storage and processing using FPGA devices |
US8768888B2 (en) | 2003-05-23 | 2014-07-01 | Ip Reservoir, Llc | Intelligent data storage and processing using FPGA devices |
JP2007524923A (ja) * | 2003-05-23 | 2007-08-30 | ワシントン ユニヴァーシティー | Fpgaデバイスを使用するインテリジェントデータ記憶および処理 |
US10929152B2 (en) | 2003-05-23 | 2021-02-23 | Ip Reservoir, Llc | Intelligent data storage and processing using FPGA devices |
US8379841B2 (en) | 2006-03-23 | 2013-02-19 | Exegy Incorporated | Method and system for high throughput blockwise independent encryption/decryption |
US8983063B1 (en) | 2006-03-23 | 2015-03-17 | Ip Reservoir, Llc | Method and system for high throughput blockwise independent encryption/decryption |
US8737606B2 (en) | 2006-03-23 | 2014-05-27 | Ip Reservoir, Llc | Method and system for high throughput blockwise independent encryption/decryption |
US9323794B2 (en) | 2006-11-13 | 2016-04-26 | Ip Reservoir, Llc | Method and system for high performance pattern indexing |
US8326819B2 (en) | 2006-11-13 | 2012-12-04 | Exegy Incorporated | Method and system for high performance data metatagging and data indexing using coprocessors |
US9363078B2 (en) | 2007-03-22 | 2016-06-07 | Ip Reservoir, Llc | Method and apparatus for hardware-accelerated encryption/decryption |
US8879727B2 (en) | 2007-08-31 | 2014-11-04 | Ip Reservoir, Llc | Method and apparatus for hardware-accelerated encryption/decryption |
US11677417B2 (en) | 2008-05-15 | 2023-06-13 | Ip Reservoir, Llc | Method and system for accelerated stream processing |
US9547824B2 (en) | 2008-05-15 | 2017-01-17 | Ip Reservoir, Llc | Method and apparatus for accelerated data quality checking |
US10965317B2 (en) | 2008-05-15 | 2021-03-30 | Ip Reservoir, Llc | Method and system for accelerated stream processing |
US10158377B2 (en) | 2008-05-15 | 2018-12-18 | Ip Reservoir, Llc | Method and system for accelerated stream processing |
US8374986B2 (en) | 2008-05-15 | 2013-02-12 | Exegy Incorporated | Method and system for accelerated stream processing |
US10411734B2 (en) | 2008-05-15 | 2019-09-10 | Ip Reservoir, Llc | Method and system for accelerated stream processing |
US9336225B2 (en) | 2011-02-24 | 2016-05-10 | A9.Com, Inc. | Encoding of variable-length data with unary formats |
JP2014507732A (ja) * | 2011-02-24 | 2014-03-27 | エー9.・コム・インコーポレーテッド | グループ形式を用いた可変長データの改良型符号化および復号 |
JP2014524090A (ja) * | 2011-07-08 | 2014-09-18 | アビニシオ テクノロジー エルエルシー | 範囲に基づく検索のためのデータ格納の管理 |
US9633097B2 (en) | 2012-10-23 | 2017-04-25 | Ip Reservoir, Llc | Method and apparatus for record pivoting to accelerate processing of data fields |
US10146845B2 (en) | 2012-10-23 | 2018-12-04 | Ip Reservoir, Llc | Method and apparatus for accelerated format translation of data in a delimited data format |
US11789965B2 (en) | 2012-10-23 | 2023-10-17 | Ip Reservoir, Llc | Method and apparatus for accelerated format translation of data in a delimited data format |
US10621192B2 (en) | 2012-10-23 | 2020-04-14 | IP Resevoir, LLC | Method and apparatus for accelerated format translation of data in a delimited data format |
US10133802B2 (en) | 2012-10-23 | 2018-11-20 | Ip Reservoir, Llc | Method and apparatus for accelerated record layout detection |
US9633093B2 (en) | 2012-10-23 | 2017-04-25 | Ip Reservoir, Llc | Method and apparatus for accelerated format translation of data in a delimited data format |
US10949442B2 (en) | 2012-10-23 | 2021-03-16 | Ip Reservoir, Llc | Method and apparatus for accelerated format translation of data in a delimited data format |
US10102260B2 (en) | 2012-10-23 | 2018-10-16 | Ip Reservoir, Llc | Method and apparatus for accelerated data translation using record layout detection |
US10902013B2 (en) | 2014-04-23 | 2021-01-26 | Ip Reservoir, Llc | Method and apparatus for accelerated record layout detection |
US11526531B2 (en) | 2015-10-29 | 2022-12-13 | Ip Reservoir, Llc | Dynamic field data translation to support high performance stream data processing |
US10942943B2 (en) | 2015-10-29 | 2021-03-09 | Ip Reservoir, Llc | Dynamic field data translation to support high performance stream data processing |
US11416778B2 (en) | 2016-12-22 | 2022-08-16 | Ip Reservoir, Llc | Method and apparatus for hardware-accelerated machine learning |
US10846624B2 (en) | 2016-12-22 | 2020-11-24 | Ip Reservoir, Llc | Method and apparatus for hardware-accelerated machine learning |
Also Published As
Publication number | Publication date |
---|---|
US20010051941A1 (en) | 2001-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2001357048A (ja) | ブロックソート圧縮データの検索方法、および検索に適したブロックソート圧縮法の符号化方法 | |
JP4261779B2 (ja) | データ圧縮装置および方法 | |
US7720878B2 (en) | Data compression method and apparatus | |
US5151697A (en) | Data structure management tagging system | |
JP3225638B2 (ja) | データを圧縮するための装置及び方法並びにデータ処理システム | |
Yamaguchi et al. | An efficient method for compressing test data | |
EP2499743A1 (en) | Indexing compressed data | |
JP3241788B2 (ja) | データ圧縮方式 | |
Rahman et al. | A novel lossless coding technique for image compression | |
JP2536422B2 (ja) | デ―タ圧縮装置及びデ―タ復元装置 | |
Song et al. | Dictionary based compression type classification using a CNN architecture | |
Klein | Space-and time-efficient decoding with canonical Huffman trees | |
JP3038223B2 (ja) | データ圧縮方式 | |
JP3130324B2 (ja) | データ圧縮方式 | |
JPH0628149A (ja) | 複数種類データのデータ圧縮方法 | |
JP3241787B2 (ja) | データ圧縮方式 | |
JPH05152971A (ja) | データ圧縮・復元方法 | |
JPH09232967A (ja) | データ圧縮装置及び復元装置 | |
JP3199292B2 (ja) | ハフマン符号の符号化でのランレングス抽出方法、ハフマン符号変換方法およびmh符号化処理方法 | |
JPH05241775A (ja) | データ圧縮方式 | |
JPH06274311A (ja) | データ圧縮装置及びデータ復元装置 | |
Bassiouni et al. | Enhancing arithmetic and tree-based coding | |
JPH07336696A (ja) | 2次元画像データの圧縮方式および伸長方式 | |
JP3236747B2 (ja) | データ伸長方式 | |
JP3058711B2 (ja) | データ圧縮及び復元方法 |