(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-25
(45)【発行日】2022-04-04
(54)【発明の名称】コンテンツ非依存のファイルインデックス化の方法及びシステム
(51)【国際特許分類】
G06F 16/17 20190101AFI20220328BHJP
H03M 7/30 20060101ALI20220328BHJP
【FI】
G06F16/17
H03M7/30 Z
(21)【出願番号】P 2020541645
(86)(22)【出願日】2018-10-11
(86)【国際出願番号】 US2018055366
(87)【国際公開番号】W WO2019075175
(87)【国際公開日】2019-04-18
【審査請求日】2020-06-05
(32)【優先日】2017-10-11
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520127465
【氏名又は名称】ログノヴェーションズ ホールディングス,エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】マケルヴィーン,クリストファー
【審査官】木村 貴俊
(56)【参考文献】
【文献】特表2007-508753(JP,A)
【文献】米国特許出願公開第2006/0244639(US,A1)
【文献】特開平05-063583(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/118
H03M 7/30- 7/50
(57)【特許請求の範囲】
【請求項1】
バイナリデータファイルのコンテンツ非依存の参照のための、コンピュータにより実現される方法であって、
前記バイナリデータファイルの長さを決定するステップであり、前記長さは前記バイナリデータファイルの
総ビット数を含む、ステップと、
前記決定された長さに
基づいて、前記決定された長さのデータの全ての順列を生成するステップと、
前記データの生成された順列における前記バイナリデータファイルのインデックスを決定するステップと、
前記長さ及び前記インデックスを記憶するステップと、
前記バイナリデータファイルの入力バイナリデータの要求を受信すると、前記長さ及び前記インデックスを使用すること並びに前記データの生成された順列と同じ順列を生成することにより、前記生成された順列内において
前記インデックスの位置を特定するステップであり、前記インデックスは前記生成された順列内における前記バイナリデータファイルの開始位置である、ステップと、
前記要求に応答して前記
入力バイナリデー
タを提供するステップと、
を含む方法。
【請求項2】
前記長さ及び前記インデック
スは、前記バイナリデータファイルの代わりに
記憶デバイスに持続
される、請求項1に記載の方法。
【請求項3】
前記長さ及び前記インデックスを使用
することは、前記データファイルの代わりに前記長さ及び前記インデックスを送信する
ことを含む、請求項1に記載の方法。
【請求項4】
送信する
ことは、前記長さ及びインデックスをネットワーク上で送信する、請求項3に記載の方法。
【請求項5】
送信する
ことは、前記長さ及びインデックスをバス上で送信する、請求項3に記載の方法。
【請求項6】
前記データの生成された順列は記憶デバイスに記憶されない、請求項1に記載の方法。
【請求項7】
バイトのシーケンスを含むデータファイルを圧縮する方法であって、
前記データファイル内のバイト数を算出するステップ
であり、前記算出されたバイト数は前記データファイルの総バイト数を含む、ステップと、
前記算出されたバイト数のサイズのデータの全ての可能な順列を生成するステップと、
前記生成された順列を検索して、前記データファイルにマッチする順列の位置を特定するステップと、
前記データの生成された順列における前記位置を特定された順列のインデックスを決定するステップと、
前記バイト数及び前記インデックスを記憶するステップと、
前記データファイルの入力データの要求を受信すると、前記バイト数及び前記インデックスを使用すること並びに前記データの生成された順列と同じ順列を生成することにより、前記生成された順列内において前記インデックスの位置を特定するステップであり、前記インデックスは前記生成された順列内における前記データファイルの開始位置であり、それにより、前記入力データはアクセス時に生成され得る、ステップと、
を含む方法。
【請求項8】
前記バイト数及びインデックス
は、前記データファイル
の代わりに記憶デバイスに持続
される、請求項7に記載の方法。
【請求項9】
前記記憶デバイスはディスクである、請求項8に記載の方法。
【請求項10】
前記バイト数及びインデックスを使用して前記データファイルを示す
ことは、前記データファイルの代わりに前記バイト数及びインデックスを送信する
ことを含む、請求項9に記載の方法。
【請求項11】
送信する
ことは、前記バイト及びインデックスをネットワークを通じて送信する、請求項10に記載の方法。
【請求項12】
送信する
ことは、前記バイト及びインデックスをバスを介して送信する、請求項10に記載の方法。
【請求項13】
データファイルを圧縮する方法であって、
前記データファイルのサイズを算出するステップ
であり、前記サイズは前記データファイルの総ビット数を含む、ステップと、
前記サイズのデータファイルのデータの全ての可能な順列を生成するステップと、
前記生成された順列を検索して、前記データファイルにマッチする順列の位置を特定するステップと、
前記位置を特定された順列のインデックスを決定するステップと、
前記サイズ及び前記位置を特定された順列の前記インデックスを記憶するステップと、
前記データファイルの入力データの要求を受信すると、前記サイズ及び前記位置を特定された順列の前記インデックスを使用すること並びに前記生成された順列と同じ順列を生成することにより、前記生成された順列内において前記インデックスの位置を特定するステップであり、前記インデックスは前記生成された順列内における前記データファイルの開始位置であり、それにより、前記入力データはアクセス時に生成され得る、ステップと、
前記要求に応答して前記
入力デー
タを提供するステップと、
を含む方法。
【請求項14】
前記データファイルはバイナリデータである、請求項13に記載の方法。
【請求項15】
前記データファイルはn値デー
タである、請求項13に記載の方法。
【請求項16】
前記インデックスは整数である、請求項13に記載の方法。
【請求項17】
前記サイズ及びインデックスを使用
することは、前記サイズ及びインデックスを送信する
ことを含む、請求項13に記載の方法。
【請求項18】
送信する
ことは、ネットワーク上で送信する
ことを含む、請求項17に記載の方法。
【請求項19】
送信する
ことは、バス上で送信する
ことを含む、請求項17に記載の方法。
【請求項20】
前記
生成された順列内において前記インデックス
の位置を特定することは、前記サイズ及びインデックスを記憶する
ことを含む、請求項13に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンテンツ非依存のファイル参照の方法に関する。この方法は、コンテンツ非依存のデータ圧縮の方法にさらに関し得る。
【背景技術】
【0002】
ファイル参照技術は、ファイル参照システム内のデータを効率的にインデックス化するために、記憶されているデータの種類に関する知識を一般に必要とする。同様に、問題となっているデータに関する知識もまた、送信、記憶などのためのデータサイズを低減させるために、改善された圧縮手法の作成に一般に使用される。
【0003】
記憶及び/又は送信されなければならないデータの量を低減させるために、ファイル参照及びデータ圧縮技術を改善する必要が産業界に存在する。
【発明の概要】
【0004】
一実施形態によれば、本開示は、強化されたコンテンツ非依存のファイル参照システムで計算技術を改善する方法を提供する。
【0005】
開示される方法は、いくつかの重要な利点を有する。例えば、開示される方法は、任意のコンテンツタイプのファイル参照を可能にする。
【0006】
開示される方法は、データが持続されるのと対照的にアクセス時に生成され得るため、持続又は送信されなければならない情報又はデータの量の有意な低減をさらに可能にする。
【0007】
本開示の種々の実施形態はこれらの利点の何れも有さないことがあり、あるいはいくつか又は全てを有し得る。本開示の他の技術的利点も当業者に容易に明らかになり得る。
【図面の簡単な説明】
【0008】
本開示及びその利点のより完全な理解のために、次に、添付の図面と併せて以下の説明を参照する。
【
図1】本開示の一実施形態のステップを概説するフローチャートである。
【
図2】本開示の別の実施形態のステップを概説する別のフローチャートである。
【0009】
類似の参照番号は、図面のいくつかの図を通して類似の部分又はステップを参照する。
【発明を実施するための形態】
【0010】
本開示は、データのコンテンツ非依存の(content-agnostic)インデックス化のための方法に関する。この方法は、例えば、ファイル参照システム又は圧縮システムとしてを含む、種々のコンピュータ特有のニーズに使用されてもよい。
【0011】
以下の開示は、バイナリデータの圧縮に関連する本発明を例示として記載しているが、本教示は、任意のタイプのデータ、さらには「n値(n-ary)」データと呼ばれるものでも同様に機能する。例えば、この方法及びシステムは、キュービット(qubits)及びビットでも機能する。
【0012】
本発明の一実施形態は、
図1に示されるフローチャートに記載される方法を含む。持続され(persisted)又は送信されるべきバイナリデータ(n
i)(例えば、データファイル)は、ビットにおけるその長さ(l(n
i))を決定するために解析される。この情報を使用し、ステップ106において、この方法は、識別された長さのデータの全ての順列(permutations)を算出する。例えば、入力データが以下の場合、
01
【0013】
入力データは2ビット長である。ステップ106において、2ビットの全ての順列、すなわち、
{00} {01} {10} {11}
が生成される。
【0014】
ステップ108において、この方法は、生成された順列内における入力バイナリデータファイルのインデックス(nf)を決定する。上記の例を用い、返されるインデックス(nf)は「1」である。最後、入力バイナリデータ(すなわち「01」)を記憶又は送信するのでなく、システムは、長さ(2)及びインデックス(1)を代わりに記憶する。
【0015】
元の入力データをデコードする必要が生じたとき(例えば、ディスクから元のバイナリデータを取り出す要求、又はネットワークにわたる送信データの受信)、この方法は、長さ(l(n
i))及びインデックス(n
f)のみを入力として必要とする。上記の例を用い、提供される入力は、長さ(2)及びインデックス(1)である。
図2に示すように、システムは、入力された長さの全ての順列を算出する。上記のように、それは、以下の順列を生成する。
{00} {01} {10} {11}
【0016】
次いで、システムは提供されたインデックス(上記の例では1)に移動し、順列を返す。再度、上記の例を用い、これは元のバイナリデータを「01」を返す。
【0017】
上記の方法は、例示の目的で、バイナリシステム(すなわち、入力データがバイナリデータである)に関して記載されている。この方法及びシステムは、n値システムに対して同様に機能する。上述されたバイナリシステムは本質的にユークリッド平面で機能するが、n値データにより、ヒルベルト(Hilbert)空間が同じ利点を概念的に提供する。この方法及び処理は、以下のとおりn値データについて一般化できる。
d^n=p(i)
(d^n)n=p(f)
d=システムの次数(order)
n=システムの次数に対して適切なn値単位(n-ary units)それぞれにおける長さ
p(i)=初期インデックス
p(f)=最終インデックス
【表1】
【0018】
同じ入力ファイルを有する2つの代替的な次数の(ordered)システムを所与として、より高い次数を有するシステムは、より低い次数のシステムでの代替に対して、より高いn値密度を有することに留意されたい。
【0019】
この方法の一例が、以下のRubyコードスニペットで開示される。以下のスニペットは、
図1に開示される方法を説明する。
【数1】
【0020】
以下のスニペットは、16の入力長(l(n
i))及び72,629のインデックス(n
f)を使用して、
図2に開示される方法を説明する。
【数2】
【0021】
方法及びシステムは、好ましくは、コンピューティングシステムにおいて実現されてもよく、該コンピューティングシステムは、パーソナルコンピュータ、ワークステーション、ネットワークコンピュータ、ハンドヘルドコンピュータ、又は他の任意のコンピューティングシステムを含むことができる。さらに、システムは、任意の適切なコンピュータ言語でソフトウェアプログラムとして書かれてもよい。
【0022】
システムは、1つ以上の処理デバイスを含み、これは、任意のコンピュータ処理ユニットであり得、単一の中央処理ユニットでもよく、あるいは順次的又は並列のいずれかで動作するように構成された複数の処理ユニットでもよい。処理デバイスは、本明細書に開示されるステップを実現するソフトウェア処理を実行するように構成できる。システムは、処理デバイスが本明細書に開示されるステップを実現するために必要なステップを記憶することができるメモリをさらに含んでもよい。このメモリは、処理デバイス内に存在するメモリの形態でもよく、あるいはバス又はネットワークなどの通信経路を介して処理ユニットに結合されるスタンドアロンメモリの形態でもよい。
【0023】
本開示は特定の実施形態及び一般に関連する方法に関して記載されているが、これらの実施形態及び方法の変更及び組み合わせが当業者に明らかであろう。したがって、例示的な実施形態の上述の説明は本開示を制限しない。本開示の主旨及び範囲から逸脱することなく、他の変更、置換、及び変更も可能である。