(57)【要約】データ凝縮器及び方法は、データオブジェクト値に、数、文字、語、語句、及び他の印の無損失凝縮を提供し、これは、ファイルサイズの減少に繋がる。本データ凝縮器及び方法は、データを個々のデータオブジェクトまたはデータオブジェクト群として分類し、繰り返す（例えば、再帰する）期間を区別する。参照ライブラリは、記憶要件を最小限に抑えるために分類されたデータの量に従って最適化される。分類されたデータには、参照ファイルをポピュレートする固有の値が割り当てられる。出力ファイルは、最適な無損失凝縮を達成するために参照ライブラリを使用してデータ凝縮器によって作成される。本データ復元器及び方法は、データオブジェクト損失のない効率的で正確な使用のために、数、文字、語、語句、及び他の印などの凝縮されたデータオブジェクトの凝縮されていないデータオブジェクトへの復元を提供する。【選択図】  図３【特許請求の範囲】
【請求項１】
データ記憶を低減し、かつ要件を処理するための無損失データ凝縮器であって、
データメモリであって、
凝縮されるデータオブジェクトを有するソースファイルと、
所定のデータオブジェクト及び所定のデータオブジェクト群を有する所定の参照ファイルと、
前記ソースファイル及び前記所定の参照ファイルのうちの少なくとも１つから取得されたアルゴリズムで選択されたデータオブジェクト及びアルゴリズムで選択されたデータオブジェクト群を有する先進参照ファイルと、
凝縮されたデータオブジェクト及び凝縮されたデータオブジェクト群を含む凝縮ファイルと、
前記凝縮されたデータオブジェクト及び前記凝縮されたデータオブジェクト群の配列を含む配列ファイルと、を含む、データメモリと、
凝縮プロセッサであって、
前記データオブジェクトの計数に少なくとも部分的に基づいて、少なくとも１つの数値ベースコーディングシステムを選択し、
前記データオブジェクトの前記計数に少なくとも部分的に基づいて、前記配列ファイルのパック深度を選択し、
前記データオブジェクトの前記計数に少なくとも部分的に基づいて、少なくとも１つの数値ベースコーディングシステムを制限し、
前記ソースファイル内の前記データオブジェクトを分析して、１つ以上の再帰データオブジェクト及び再帰データオブジェクト群を探し出し、
第１の固有のコードを前記所定の参照ファイル内の前記データオブジェクト及びデータオブジェクト群に割り当て、
第２の固有のコードを前記先進参照ファイル内の選択された再帰データオブジェクト及びデータオブジェクト群ならびに選択された非再帰データオブジェクト及びデータオブジェクト群に割り当て、
前記コーディングされたデータオブジェクト及び前記コーディングされたデータオブジェクト群を前記凝縮ファイル内に配置し、かつ
前記配列ファイル内に前記凝縮されたデータオブジェクトの配列を構築するように動作可能な凝縮プロセッサと、を備え、
前記無損失データ凝縮器が、効率的で正確な無損失データ記憶及び転送を可能にする、無損失データ凝縮器。
【請求項２】
前記凝縮プロセッサが、所定のデータオブジェクト及びデータオブジェクト群に割り当てられたベース２５６コーディングシステムと、所定でないデータオブジェクト及びデータオブジェクト群に割り当てられたベース１６コーディングシステムと、を有する、請求項１に記載の無損失データ凝縮器。
【請求項３】
前記メモリ配列が、必要に応じて整数に切り上げられたコーディングされたデータオブジェクト及びデータオブジェクト群の総数の平方根によって定義され、ヌルデータオブジェクトが必要に応じて前記配列を満たす、請求項１に記載の無損失データ凝縮器。
【請求項４】
無損失凝縮動作を行うための装置であって、
データオブジェクトの入力データを含む少なくとも１つのデータファイルを有するデータソースメモリと、
データオブジェクト群を単一のデータオブジェクトと区別し、かつ選択された閾値を超えて反復する反復データオブジェクト群を区別するように構成された凝縮プロセッサと、
規定のデータオブジェクト及び所定のデータオブジェクト群を含むカスタマイズされたファイルを含む参照ライブラリと、を備え、
前記凝縮プロセッサが、固有のコードを前記反復データオブジェクト及びデータオブジェクト群ならびに非反復データオブジェクト及びデータオブジェクト群に割り当てて、凝縮ファイルを提供するように更に構成される、装置。
【請求項５】
前記凝縮プロセッサが、ベース２５６コーディングシステムを、規定のデータオブジェクト及びデータオブジェクト群に割り当て、ベース１６コーディングシステムを、規定されていないデータオブジェクト及びデータオブジェクト群に割り当てる、請求項４に記載の装置。
【請求項６】
前記メモリ配列が、必要に応じて整数に切り上げられたコーディングされたデータオブジェクト及びコーディングされたデータオブジェクト群の総数の平方根によって定義され、ヌルデータオブジェクトが必要に応じて前記配列を満たす、請求項４に記載の無損失データ凝縮器。
【請求項７】
データ記憶を低減し、かつ要件を処理するための無損失データ凝縮器であって、
データオブジェクトの入力データを含む少なくとも１つのデータファイルを有するデータソースメモリと、
各々が前記データソースメモリ中のデータオブジェクトの繰り返しパターンに従って１つ以上のデータオブジェクトを含むデータオブジェクト群を有する凝縮メモリと、
前記データソースメモリ中のデータオブジェクト及びデータオブジェクト群の数に基づいて、複数の数値ベースコーディングシステムのうちの少なくとも１つを選択するように動作可能な凝縮プロセッサと、
前記選択された数値ベースコーディングシステムのうちの少なくとも１つからの固有のコードが割り当てられた規定のデータオブジェクト及び規定のデータオブジェクト群を有するカスタマイズされた参照ライブラリメモリと、
選択されたコーディングされた規定のデータオブジェクト群と共に、前記数値ベースコーディングシステムのうちの少なくとも１つからの固有のコードが割り当てられた再帰データオブジェクト及びデータオブジェクト群ならびに非再帰データオブジェクト及びデータオブジェクト群を有する定式化された参照ライブラリメモリと、を備え、
前記定式化された参照ライブラリメモリが、メモリ配列であって、必要に応じて整数に切り上げられたコーディングされたデータオブジェクト及びデータオブジェクト群の総数の平方根によって定義され、ヌルデータオブジェクトが必要に応じて前記配列を満たし、前記メモリ配列パック深度が、前記定式化された参照ライブラリ内のコーディングされたデータオブジェクト及びデータオブジェクト群の総数の計数に基づく、メモリ配列を有する、無損失データ凝縮器。
【請求項８】
データ記憶を低減し、かつ要件を処理するための無損失データ凝縮器であって、
凝縮される複数の再帰データオブジェクト及び非再帰データオブジェクトを含む入力データを記憶する少なくとも１つのソースファイルを有するデータメモリと、
入力データからデータオブジェクトを受信し読み取るように動作可能なインターフェースメモリと、
対応するデータオブジェクトに関するコーディングされた値を記憶する参照ライブラリと、
前記入力データを最適化するために前記参照ライブラリに接続される凝縮プロセッサと、
最適化された入力データを受信し、かつ凝縮された出力データを提供するために接続される凝縮メモリと、を備える、無損失データ凝縮器。
【請求項９】
前記凝縮プロセッサが、最適な凝縮されたファイルサイズに基づいて数値ベースコーディングシステムを割り当てる、請求項８に記載の無損失データ凝縮器。
【請求項１０】
前記凝縮プロセッサが、ベース２５６コーディングシステムを前記参照ライブラリデータオブジェクトに割り当て、ベース１６コーディングシステムをデータメモリデータオブジェクトに割り当てる、請求項９に記載の無損失データ凝縮器。
【請求項１１】
前記凝縮プロセッサが、データオブジェクト群の繰り返しパターンの数に少なくとも部分的に基づいて、数値ベースコーディングシステムを割り当てる、請求項９に記載の無損失データ凝縮器。
【請求項１２】
前記凝縮メモリが、記憶要件を低減するように選択されたパック深度を有する、請求項８に記載の無損失データ凝縮器。
【請求項１３】
無損失データ凝縮システムであって、
データオブジェクト群の繰り返しパターンの数に基づいて複数の数値ベースコーディングシステムから少なくとも１つの数値ベースコーディングシステムを選択し、かつ前記選択された数値ベースコーディングシステムのうちの前記少なくとも１つからの固有のコードを各データオブジェクト群に割り当てるように構成された凝縮プロセッサと、
凝縮されたデータ記憶及びデータ転送を提供するためにコーディングされたデータオブジェクト群を有する凝縮メモリと、を備える、無損失データ凝縮システム。
【請求項１４】
無損失データ凝縮システムであって、
固有のコードをデータオブジェクトの繰り返しパターンを含むデータオブジェクト群に割り当てるように構成された凝縮プロセッサと、
前記メモリ配列の記憶要件を低減するように選択されたパック深度を有するコーディングされたデータオブジェクト群を記憶するメモリ配列と、を備える、無損失データ凝縮システム。
【請求項１５】
凝縮されたデータオブジェクトを凝縮されていない形態に復元するための装置であって、
データメモリであって、
凝縮されたデータオブジェクトを有する凝縮ファイルと、
凝縮されていないデータオブジェクトのための少なくとも１つの宛先モードと、
コーディングされた凝縮された再帰データオブジェクト及び凝縮された非再帰データオブジェクト、ならびに前記凝縮ファイルと関連付けられた少なくとも１つ以上の数値コーディングシステム及び該当する場合には前記パック深度を識別する情報を有する参照ファイルと、を含む、データメモリと、
復元プロセッサであって、
復元する前記凝縮されたデータオブジェクトの少なくとも一部を選択し、
凝縮されていないデータオブジェクトの使用のための前記宛先モードを選択し、
前記データオブジェクト損失のない効率的で正確な使用のために、前記凝縮ファイルを前記参照ファイルとリンクさせて、前記凝縮されたデータオブジェクトを凝縮されていないデータオブジェクトに復元するように動作可能である、復元プロセッサと、を備える、装置。
【請求項１６】
数字、文字、語、語句、及び他の印などのデータオブジェクトを無損失データ凝縮して、効率的で正確な安全なデータ評価、データ記憶、及びデータ転送を可能にするための方法であって、
凝縮されるデータオブジェクトコレクションを取得することと、
前記データオブジェクトコレクションをソースファイル内に配置することと、
データオブジェクトの総数を計数することを含む前記ソースファイルの分析を実施することと、
前記ソースファイルを読み取り、前記ソースファイル内のデータオブジェクトの繰り返しパターンに応答して、各々が１つ以上のデータオブジェクトを含むデータオブジェクト群を作成することと、
データオブジェクト群の総数を計数することと、
データオブジェクト群の選択された量に基づいて、１つ以上の数値ベースコーディングシステムを選択することと、
規定のデータオブジェクト群の１つ以上のライブラリ参照ファイルを確立することと、
前記選択されたコーディングシステムからの第１の固有のコードを各規定のデータオブジェクト群に割り当てることと、
個々の再帰データオブジェクト群を非再帰データオブジェクト群と区別して識別することと、
前記選択されたコーディングシステムからの第２の固有のコードを規定のデータオブジェクト群ではない各再帰データオブジェクト群及び非再帰データオブジェクト群に割り当てることと、
コーディングされたデータオブジェクト群を１つ以上のライブラリ参照ファイル内に配置することと、
前記ソースファイルを読み取り、コーディングされたデータオブジェクト群の総数を計数することと、
メモリ配列の前記パック深度を選択することと、
選択されたコーディングされたデータオブジェクト群の総数の平方根によって定義される前記メモリ配列を形成し、整数を確立するために必要に応じて切り上げることと、
ヌルのコーディングされたデータオブジェクトを追加して、前記配列を満たすことと、
前記配列を記憶媒体に配置することと、を含む、方法。
【請求項１７】
データを凝縮して、低減されたデータ記憶及び処理を提供する方法であって、
複数のデータオブジェクトを含むデータファイルを読み取ることと、
各々が１つ以上のデータオブジェクトを含む再帰データオブジェクト群を非再帰データオブジェクト群と区別して識別することと、
コードを各再帰データオブジェクト群及び非再帰データオブジェクト群に割り当てることと、
最適なサイズの参照ライブラリを定式化することと、
前記コーディングされたデータオブジェクト群をデータ記憶及び処理のために前記参照ライブラリに配置することと、を含む、方法。
【請求項１８】
数、文字、語、語句、及び他の印などの凝縮されたデータオブジェクトの無損失データ復元のための方法であって、
凝縮されたデータオブジェクトの凝縮ファイルを取得することと、
復元する前記凝縮されたデータオブジェクトの少なくとも一部を選択することと、
復元されたデータオブジェクトのための宛先モードを選択することと、
凝縮された再帰データオブジェクト及び凝縮された非再帰データオブジェクトに割り当てられたコードを有する参照ファイルであって、前記凝縮ファイルと関連付けられた少なくとも１つ以上の数値コーディングシステム及び該当する場合には前記パック深度を識別する情報を有する、参照ファイルを取得することと、
前記データオブジェクト損失のない効率的で正確な使用のために、前記凝縮ファイルを前記参照ファイルとのリンクに基づいて読み取って、前記凝縮されたデータオブジェクトを凝縮されていないデータオブジェクトに復元することと、を含む、方法。
【発明の詳細な説明】
【背景技術】
【０００１】
データ記憶は、テラバイト、ペタバイト域、及びそれを超える巨大なゲノム及び他のデータセットを解釈するという大変な課題に直面している研究者及び他の者にとって、重要問題である。研究施設と臨床施設との間（現地及び遠隔地の両方）などでの協力及びデータの重要な共有は、データセットの膨大な流入の処理を必要とし、監査及び報告目的で連邦政府によって必要とされるログファイルまたは参照ゲノムなど、効率的で正確な比較を可能にするための無損失データ圧縮に対する戦略を必要とする。データ記憶及びその安全な転送は、物理的なハードドライブを現地または離れた場所に送ることによって達成されてきたが、これは、面倒であり、費用がかかり、ますます持続不可能になっている。
【０００２】
自由に利用可能な研究基盤ツールが存在し、反復シーケンスコレクション、テキスト、２進テキスト画像、及びデータベースを含むがこれらに限定されない、大型データファイルの選択的圧縮、コーディング、インデックス化、注釈、マッピング、及びアラインメントのためのアルゴリズム及び方法に関する分野における他の適用及び文献も存在する。
【０００３】
ハイスループット次世代シークエンシング技術の急速な向上は、指数関数的な割合で蓄積するゲノムデータセット（全ゲノム及び集団型の両方）をもたらす。公表されているゲノムデータセットは、典型的には、デジタル記憶、分析、及び安全な伝送へのますますの負担を伴って、フラットテキストファイルとして記憶される。ゲノム情報または他のビッグデータなどの大型データファイルの遠隔での記憶、共有、分析、またはダウンロードは、骨の折れるものであり、多くの機関、特に、高速インターネットアクセスを欠く地域にある機関にとっては不可能に近い。今日、大型の記憶サイトは、記憶のために何百万ドルも費やしているが、それでも、大量のデータ転送は、サーバ及びインターネットネットワークに負担をかけ続けている。データの損失または劣化なく、大型データセットの記憶、共有、伝送などを可能にするための解決策に対する緊急の技術的ニーズが存在する。現在の技術では、これは、良くても骨が折れ、多くの場合には、機関などの多くの実体、特に研究センター、病院、及び他のものにとってほぼ不可能である。
【発明の概要】
【０００４】
最適化データ凝縮器及び方法は、例えば、ディスク、半導体、または任意の形態の記憶媒体（固定型または携帯型）であるがこれらに限定されない記憶媒体への負担、ならびに、次世代全ゲノムシークエンシングから導かれたものなどのデータの記憶と関連付けられるデータ転送オーバーヘッドを低減する。入力ファイルとしては、ＢＬＡＳＴ形式、ログ／エラーファイル、データベース、及び他の共通ファイル形式を挙げることができるが、これらに限定されない。
【０００５】
この最適化データ凝縮器及び方法は、データオブジェクトとしても知られる、数、文字、語、語句、及び他の印などのデータを、凝縮し、手動で定義された及び／または自動で最適化された、１６進、２５６進（Ｄｕｏｃｅｎｔｏｓｅｘａｐｅｎｔａｇｅｓｉｍａｌ）（ベース２５６）、または他のＮＢａｓｅ値（複数可）によって定義される１つ以上の値に凝縮する。ＮＢａｓｅ（Ｎｂ）は、２つのベース単位（２進）の最小測定単位を有し、数値ベース上限のない、可変数値ベースシステムとして定義される。必要に応じて、この新たな凝縮された１６進、ベース２５６、または他のＮＢａｓｅファイルの完全な復元は、復号されて、データを、いかなるデータの損失もなく元の形式に戻すことができる。明確化のために、凝縮プロセスは、一部のＺＩＰアーカイブで見られるような圧縮ではなく、凝縮ファイルサイズをもたらす凝縮である。
【０００６】
ライブラリは、１つ以上の参照ファイルを含む。各参照ファイルは、識別されたデータオブジェクトと相互に関連付けるために、関連する割り当てられた固有の１６進、ベース２５６、または他のＮＢａｓｅコードを持つ、データ及び／またはデータ群を含む。かかる識別されたデータオブジェクトならびにライブラリでは見られない重複（即ち、反復）及び他のデータオブジェクト（関連する固有のコードが割り当てられたもの）は、ライブラリに含まれる元の参照ファイルの最適化バージョンに追加される。
【０００７】
割り当てられたコードと関連付けられる作成された１６進、ベース２５６、または他のＮＢａｓｅ値は、形式化された参照ファイル（複数可）に記憶され、ここで、データオブジェクトは、単純なリクエスト（例えば、Ｘ、Ｙ軸）によって探し出すことができる固有の１６進、ベース２５６、または他のＮＢａｓｅ値と関連付けられる。凝縮されたファイルは、拡張するために追加ページを必要とする規定され限定されたカラムを有するテキストドキュメントまたはデータベースとは異なり、水平方向及び垂直方向の両方に拡張する能力を有する。凝縮されたファイルは、無損失形式で記憶される。これは、データオブジェクトに、凝縮されたファイル（複数可）内で、１６進、ベース２５６、または他のＮＢａｓｅ値を割り当てることを可能にする。特定使用及び一般使用バージョンは、コアエンジンを変えずに、参照ファイル（複数可）を修正することによって設計することができる。ファイルサイズに基づく構築化形式の選択は、ファイル記憶及び処理を更に最適化し得る。
【０００８】
ファイル（複数可）中のデータオブジェクトを表すために使用される様々な１６進、ベース２５６、または他のＮＢａｓｅ値は、容易に見分けることができず、それにより自然状態の暗号化を提供するため、凝縮されたファイル（複数可）は、埋め込まれたデータオブジェクトの本質を効果的に隠す。１６進、ベース２５６、または他のＮＢａｓｅ値が、コンピュータ分析の使用によって区別されたとしても、それらがどのデータオブジェクトを表すのか、あるいはアラインメントの交互順序が適用されているのかを判断する方法はない。凝縮されたファイル（複数可）が、Ｘ、Ｙ軸上に作成され得、デフォルトで、左から右へ、上から下へポピュレートされる一方で、データ凝縮器及び方法が、真ん中で開始し、反時計回り、または任意の他の開始場所及び／もしくはポピュレート方法でポピュレートすることを制限するものは存在しない。
【０００９】
本適用の一態様では、データ記憶を低減し、要件を処理するための無損失データ凝縮器は、データメモリであって、凝縮されるデータオブジェクトを有するソースファイルと、所定のデータオブジェクト及び所定のデータオブジェクト群を有する所定の参照ファイルと、ソースファイル及び所定の参照ファイルのうちの少なくとも１つから取得されたアルゴリズムで選択されたデータオブジェクト及びアルゴリズムで選択されたデータオブジェクト群を有する先進参照ファイルと、凝縮されたデータオブジェクト及び凝縮されたデータオブジェクト群を含む凝縮ファイルと、凝縮されたデータオブジェクト及び凝縮されたデータオブジェクト群の配列を含む配列ファイルと、を含む、データメモリと、凝縮プロセッサであって、データオブジェクトの計数に少なくとも部分的に基づいて、少なくとも１つの数値ベースコーディングシステムを選択し、データオブジェクトの計数に少なくとも部分的に基づいて、配列ファイルのパック深度を選択し、データオブジェクトの計数に少なくとも部分的に基づいて、少なくとも１つの数値ベースコーディングシステムを制限し、ソースファイル内のデータオブジェクトを分析して、１つ以上の再帰データオブジェクト及び再帰データオブジェクト群を探し出し、第１の固有のコードを所定の参照ファイル内のデータオブジェクト及びデータオブジェクト群に割り当て、第２の固有のコードを先進参照ファイル内の選択された再帰データオブジェクト及び選択された非再帰データオブジェクト第２の固有のコードを先進参照ファイル内の選択された再帰データオブジェクト及びデータオブジェクト群ならびに選択された非再帰データオブジェクト及びデータオブジェクト群に割り当て、コーディングされたデータオブジェクト及びコーディングされたデータオブジェクト群を凝縮ファイル内に配置し、かつ配列ファイル内に凝縮されたデータオブジェクトの配列を構築するように動作可能である、凝縮プロセッサと、を備え、無損失データ凝縮器は、効率的で正確な無損失データ記憶及び転送を可能にし、凝縮プロセッサは、所定のデータオブジェクト及びデータオブジェクト群に割り当てられたベース２５６コーディングシステムと、所定でないデータオブジェクト及びデータオブジェクト群に割り当てられたベース１６コーディングシステムと、を有し、メモリ配列は、必要に応じて整数に切り上げられたコーディングされたデータオブジェクト及びデータオブジェクト群の総数の平方根によって定義され、ヌルデータオブジェクトが必要に応じて配列を満たす。
【００１０】
本出願の別の態様では、無損失凝縮動作を行うための装置は、データオブジェクトの入力データを含む少なくとも１つのデータファイルを有するデータソースメモリと、データオブジェクト群を単一のデータオブジェクトと区別し、かつ選択された閾値を超えて反復する反復データオブジェクト群を区別するように構成された凝縮プロセッサと、規定のデータオブジェクト及び所定のデータオブジェクト群を含むカスタマイズされたファイルを含む参照ライブラリと、を含み、凝縮プロセッサは、固有のコードを繰り返す反復データオブジェクト及びデータオブジェクト群ならびに非反復データオブジェクト及びデータオブジェクト群に割り当てて、凝縮されたファイルを提供するように更に構成される。
【００１１】
本出願の別の態様では、データ記憶を低減し、要件を処理するための無損失データ凝縮器は、データオブジェクトの入力データを含む少なくとも１つのデータファイルを有するデータソースメモリと、各々がデータソースメモリ中のデータオブジェクトの繰り返しパターンに従って１つ以上のデータオブジェクトを含むデータオブジェクト群を有する凝縮メモリと、データソースメモリ中のデータオブジェクト及びデータオブジェクト群の数に基づいて、複数の数値ベースコーディングシステムのうちの少なくとも１つを選択するように動作可能な凝縮プロセッサと、選択された数値ベースコーディングシステムのうちの少なくとも１つからの固有のコードが割り当てられた規定のデータオブジェクト及び規定のデータオブジェクト群を有するカスタマイズされた参照ライブラリメモリと、選択されたコーディングされた規定のデータオブジェクト群と共に、数値ベースコーディングシステムのうちの少なくとも１つからの固有のコードが割り当てられた再帰データオブジェクト及びデータオブジェクト群ならびに非再帰データオブジェクト及びデータオブジェクト群を有する定式化された参照ライブラリメモリと、を備え、定式化された参照ライブラリメモリは、メモリ配列であって、必要に応じて整数に切り上げられたコーディングされたデータオブジェクト及びデータオブジェクト群の総数の平方根によって定義され、ヌルデータオブジェクトが必要に応じて配列を満たし、メモリ配列パック深度が、定式化された参照ライブラリ内のコーディングされたデータオブジェクト及びデータオブジェクト群の総数の計数に基づく、メモリ配列を有する。
【００１２】
本出願の別の態様では、データ記憶を低減し、要件を処理するための無損失データ凝縮器は、凝縮される複数の再帰データオブジェクト及び非再帰データオブジェクトを含む入力データを記憶する少なくとも１つのソースファイルを有するデータメモリと、入力データからデータオブジェクトを受信し読み取るように動作可能なインターフェースメモリと、対応するデータオブジェクトに関するコーディングされた値を記憶する参照ライブラリと、入力データを最適化するために参照ライブラリに接続される凝縮プロセッサと、最適化された入力データを受信し、かつ凝縮された出力データを提供するために接続される凝縮メモリと、を備える。
【００１３】
本出願の別の態様では、無損失データ凝縮システムは、データオブジェクト群の繰り返しパターンの数に基づいて複数の数値ベースコーディングシステムから少なくとも１つの数値ベースコーディングシステムを選択し、かつ選択された数値ベースコーディングシステムのうちの少なくとも１つからの固有のコードを各データオブジェクト群に割り当てるように構成された凝縮プロセッサと、凝縮されたデータ記憶及びデータ転送を提供するためにコーディングされたデータオブジェクト群を有する凝縮メモリと、を備える。
【００１４】
本出願の別の態様では、無損失データ凝縮システムは、固有のコードをデータオブジェクトの繰り返しパターンを含むデータオブジェクト群に割り当てるように構成された凝縮プロセッサと、メモリ配列の記憶要件を低減するように選択されたパック深度を有するコーディングされたデータオブジェクト群を記憶するメモリ配列と、を備える。
【００１５】
本出願の別の態様では、凝縮されたデータオブジェクトを凝縮されていない形態に復元するための装置は、凝縮されたデータオブジェクトを有する凝縮ファイルと、凝縮されていないデータオブジェクトのための少なくとも１つの宛先モードと、コーディングされた凝縮された再帰データオブジェクト及び凝縮された非再帰データオブジェクト、ならびに凝縮ファイルと関連付けられた少なくとも１つ以上の数値コーディングシステム及び該当する場合にはパック深度を識別する情報を有する参照ファイルと、を含む、データメモリと、復元する凝縮されたデータオブジェクトの少なくとも一部を選択し、凝縮されていないデータオブジェクトの使用のための宛先モードを選択し、かつデータオブジェクト損失のない効率的で正確な使用のために、凝縮ファイルを参照ファイルとリンクさせて、凝縮されたデータオブジェクトを凝縮されていないデータオブジェクトに復元するように動作可能な復元プロセッサと、を備える。
【００１６】
本出願の別の態様では、数、文字、語、語句、及び他の印などのデータオブジェクトを無損失データ凝縮して、効率的で正確な安全なデータ評価、データ記憶、及びデータ転送を可能にするための方法は、凝縮されるデータオブジェクトコレクションを取得することと、データオブジェクトコレクションをソースファイル内に配置することと、データオブジェクトの総数を計数することを含むソースファイルの分析を実施することと、ソースファイルを読み取り、ソースファイル内のデータオブジェクトの繰り返しパターンに応答して、各々が１つ以上のデータオブジェクトを含むデータオブジェクト群を作成することと、データオブジェクト群の総数を計数することと、データオブジェクト群の選択された量に基づいて、１つ以上の数値ベースコーディングシステムを選択することと、規定のデータオブジェクト群の１つ以上のライブラリ参照ファイルを確立することと、選択されたコーディングシステムからの第１の固有のコードを各規定のデータオブジェクト群に割り当てることと、個々の再帰データオブジェクト群を非再帰データオブジェクト群と区別して識別することと、選択されたコーディングシステムからの第２の固有のコードを規定のデータオブジェクト群ではない各再帰データオブジェクト群及び非再帰データオブジェクト群に割り当てることと、コーディングされたデータオブジェクト群を１つ以上のライブラリ参照ファイル内に配置することと、ソースファイルを読み取り、コーディングされたデータオブジェクト群の総数を計数することと、メモリ配列のパック深度を選択することと、選択されたコーディングされたデータオブジェクト群の総数の平方根によって定義されるメモリ配列を形成し、整数を確立するために必要に応じて切り上げることと、ヌルのコーディングされたデータオブジェクトを追加して、配列を満たすことと、配列を記憶媒体に配置することと、を含む。
【００１７】
本出願の別の態様では、データを凝縮して、低減したデータ記憶及び処理を提供する方法は、複数のデータオブジェクトを含むデータファイルを読み取ることと、各々が１つ以上のデータオブジェクトを含む再帰データオブジェクト群を非再帰データオブジェクト群と区別して識別することと、コードを各再帰データオブジェクト群及び非再帰データオブジェクト群に割り当てることと、最適なサイズの参照ライブラリを定式化することと、コーディングされたデータオブジェクト群を、データ記憶及び処理のために参照ライブラリに配置することと、を含む。
【００１８】
本出願の別の態様では、数、文字、語、語句、及び他の印などの凝縮されたデータオブジェクトの無損失データ復元のための方法は、凝縮されたデータオブジェクトの凝縮ファイルを取得することと、復元する凝縮されたデータオブジェクトの少なくとも一部を選択することと、復元されたデータオブジェクトのための宛先モードを選択することと、凝縮された再帰データオブジェクト及び凝縮された非再帰データオブジェクトに割り当てられたコードを有する参照ファイルであって、凝縮ファイルと関連付けられた少なくとも１つ以上の数値コーディングシステム及び該当する場合にはパック深度を識別する情報を有する、参照ファイルを取得することと、データオブジェクト損失のない効率的で正確な使用のために、凝縮ファイルを参照ファイルとのリンクに基づいて読み取って、凝縮されたデータオブジェクトを凝縮されていないデータオブジェクトに復元することと、を含む。
【図面の簡単な説明】
【００１９】
【図１】本出願のデータファイルの凝縮の方法の実施形態を示す流れ図である。
【図２】本出願のその元の未凝縮状態への凝縮されたファイルの復元の方法の実施形態を示す流れ図である。
【図３】本出願の最適化データ凝縮器システムの例示的実施形態の系統図である。
【発明を実施するための形態】
【００２０】
本説明では、ある特定の用語が、簡潔性、明確性、及び理解のために使用されている。かかる用語は、説明目的のみで使用され、広く解釈されることを意図しているため、不要な制限が、そこから先行技術の要件を越えて適用されるべきではない。本明細書に記載の異なるシステム及び方法を、単独で、または他のシステム及び方法と組み合わせて、使用してもよい。様々な等価物、代替物、及び修正が、添付の特許請求の範囲の範囲内で可能である。添付の特許請求の範囲における各制限は、「〜するための手段」または「〜するためのステップ」という用語が、それぞれの制限においてはっきりと記載される場合にのみ、３５  Ｕ．Ｓ．Ｃ．§１１２、段落６を受けて解釈を喚起するように意図される。
【００２１】
以下の詳細な説明では、その一部を成し、実施され得る特定の実施形態を例として示す、添付の図面を参照する。これらの実施形態は、当業者が本実施形態を実施することを可能にするのに十分に詳細に記載され、他の実施形態が利用され得ること、ならびに論理的、機械的、電気的、及び他の変更が、本実施形態の範囲から逸脱することなく成され得ることが理解される。以下の詳細な説明は、したがって、本発明の範囲を限定するものとして理解されるべきではない。
【００２２】
本出願のシステム及び方法は、１つ以上の凝縮されたファイルを形成するためにシークエンシング技法にとらわれない、単数、文字、語、語句、及び他の印を、１６進、ベース２５６、または他のＮＢａｓｅ値に凝縮する、データの無損失凝縮（ファイルサイズの低減をもたらす）を利用する。本出願のシステム及び方法は、無損失の凝縮されたファイルを利用して、それらの読み取られ書き込まれる能力を保持する。本出願のシステム及び方法は、凝縮ファイル（複数可）（または配列ファイル（複数可））と相互作用できない用途における使用のために、それらの以前の元の未凝縮状態に復元される、無損失の凝縮されたファイルを利用する。故に、本出願のシステム及び方法は、装置及びシステムであって、（ａ）特に大型データファイルについて記憶要件を大幅に低減し、（ｂ）特に大型のテキストまたはデータベースファイルのより速いデータ伝送を可能にし、（ｃ）ファイルサイズの増加を最小限に抑えながら他のデータ（例えば、電子医療記録、臨床メタデータ、関連監査ログなど）の包含を可能にし、（ｄ）凝縮されたファイルの迅速な分析及び修正を可能にし、（ｅ）自然状態の暗号化を提供し、かつ／あるいは（ｆ）ＧＰＵベースの処理及び数学的／科学的分析を実践する能力をもたらす更なる開発のためのプラットフォームとして働く、装置及びシステムを利用する。凝縮されたデータのより小型のファイルサイズは、特化システム上に記憶されることの多い大型ファイルが、より広く、より小型の容量のシステム上に記憶されることを可能にし、また、ネットワークトラフィックまたは求められる通信の帯域幅を低減する。
【００２３】
「データオブジェクト」という用語は、その最も広い意味で使用され、電気信号によって運ばれる英数字（即ち、デジタル）値で表される最小の単一の構成要素を含み得る。各データオブジェクトには、１つ以上の１６進、ベース２５６、または他のＮＢａｓｅ（即ち、デジタル）値が割り当てられる。
【００２４】
「パック深度」という用語は、配列ファイル内にパック（記憶）される、ベース１６、ベース２５６、または他のＮＢａｓｅデータオブジェクトの数を定義するために使用される。パック深度は、値が正の整数＋ｉである必要があり、システムによって１以上（≧１）のデフォルトに設定され得るか、または凝縮された形態への変換時に１以上（≧１）の値に手動で設定され得る。
【００２５】
本明細書に記載の最適化された凝縮器の技術的利点または技術的効果は、凝縮されたファイルサイズが、全く異なって動作する現在の圧縮システムにおいて達成されるものよりも極めて小さい、元のファイルの一部分であることである。これが有用であるだけでなく実際に必要である一部の明らかな例としては、遺伝学が挙げられるが、これらに限定されない。
【００２６】
最新のコンピュータは、「ｂａｓｅ−２」としても知られる２進数（即ち、「ビット」）を採用している。一部のコンピュータは、各々が２５６の値を有する８ビットの集合（即ち、「バイト」）を使用して動作する。ＡＳＣＩＩ（ユニコード）形式を使用するとき、値０〜１２７は、概して、特定の記号に関し、値１２８〜２５５は、概して、外国語からのアクセント記号などの特殊項目に関する。Ｗｉｎｄｏｗｓのノートパッドは、記号またはスペース１つ当たり１バイトのメモリを使用する。本明細書に開示の最適化データ凝縮器及び方法は、最適化のために手動または自動で選択される、１６進、ベース２５６、または他のＮＢａｓｅなどの様々な数値ベースシステムを使用し得、含まれる例で提供される、１６進として上に記載した、ｂａｓｅ−１６に制限されない。
【００２７】
２進ｂａｓｅ−２システムが採用される場合、各データオブジェクトは、ビット、または８ビットの集合の場合はバイトによって測定して、１ビットまたは複数のビット含んで、値を定義し得る。１６進は、ｂａｓｅ−１６システムであり、１つの１６進値の各々は、２進コードの４ビットに等しい。例えば、限定的ではなく、
１６進値１＝１６の可能性のあるデータオブジェクトまたは４ビット
１６進値２＝２５６の可能性のあるデータオブジェクトまたは８ビット／１バイト
１６進値３＝４０９６の可能性のあるデータオブジェクトまたは１２ビット
１６進値４＝６５５３６の可能性のあるデータオブジェクトまたは１６ビット／２バイト
１６進値５＝１０４８５７６の可能性のあるデータオブジェクトまたは２０ビット
１６進値６＝１６７７７２１８の可能性のあるデータオブジェクトまたは２４ビット／３バイト
１６進値７＝２６８４３５４５６の可能性のあるデータオブジェクトまたは２８ビット
１６進値８＝４２９４９６７２９６の可能性のあるデータオブジェクトまたは３２ビット／４バイト
２進における同じ数のデータオブジェクトを表すのに、１６進ではスペースの４分の１（１／４）が必要となる。
【００２８】
別の実施形態では、２進ｂａｓｅ−２システムが採用される場合、各データオブジェクトは、ビット、または８ビットの集合の場合はバイトによって測定して、１ビットまたは複数のビット含んで、値を定義し得る。２５６進は、ｂａｓｅ−２５６システムであり、１つの値の各々は、２進コードの８ビットに等しい。例えば、限定的ではなく、
２５６進値１＝２５６の可能性のあるデータオブジェクトまたは８ビット／１バイト
２５６進値２＝６５５３６の可能性のあるデータオブジェクトまたは１６ビット／２バイト
２５６進値３＝１６７７７２１６の可能性のあるデータオブジェクトまたは２４ビット／３バイト
２５６進値４＝４２９４９６７２９６の可能性のあるデータオブジェクトまたは３２ビット／４バイト
【００２９】
別の実施形態では、２進ｂａｓｅ−２システムが採用される場合、各データオブジェクトは、ビット、または８ビットの集合の場合はバイトによって測定して、１ビットまたは複数のビット含んで、値を定義し得る。ＮＢａｓｅは、可変ベースシステムｂａｓｅ−Ｎであり、Ｎは１以上（≧１）の任意の正の整数（＋ｉ）として定義され、１つの値の各々は、２進コードの１以上（≧１）の正の整数（＋ｉ）である。データオブジェクトは、パック深度によって凝縮され得、パック深度は、１以上（≧１）の正の整数（＋ｉ）である。
１ＮＢａｓｅ値≧＋ｉデータオブジェクト（単数または複数）及び≧＋ｉパック深度における＋ｉビット（単数または複数）
【００３０】
図１及び２は、データファイルをかなり小型のサイズに凝縮するための方法１００と、その小型のサイズのファイルを、データの損失無しに（即ち、無損失）元のデータファイル（複数可）サイズに復元する方法２００との例示的実施形態をそれぞれ示す流れ図である。図３に示される最適化データ凝縮器システム３００は、概して、デスクトップコンピュータ、携帯型デバイス、マルチプロセッサシステム、パーソナルデジタルアシスタント（ＰＤＡ）、ノートパソコン、ネットワークコンピュータ、クラウドサーバ、ミニコンピュータ、メインフレームコンピュータなどを挙げることができるが、これらに限定されない、コンピューティングシステムである。凝縮器システム３００は、インターフェース（複数可）３０１、１つ以上のプロセッサ（複数可）３０２、及びプロセッサ（複数可）３０２に結合されたメモリ３０３を含む。プロセッサ（複数可）３０２は、メモリ３０３からソフトウェアを読み込んで実行する。凝縮器システム３００による実行時、モジュール３０４は、プロセス（複数可）３０２に、本明細書に記載の凝縮方法１００または復元方法２００に関して記載したように動作するように指示する。
【００３１】
インターフェース３０１は、マウス、キーボード、音声入力デバイス、ユーザからの表示動作を受信するためのタッチ入力デバイス、ユーザによるタッチによらない表示動作及び他の動作を検出するための動作入力デバイス、ならびに他の同様の入力デバイス及びユーザからのユーザ入力を受信することができる関連する処理要素を含み得る。ビデオディスプレーまたはグラフィックディスプレーなどの出力デバイスは、本明細書に開示のシステム及び方法の実施形態と更に関連付けられるインターフェースを表示し得る。スピーカー、プリンター、力覚デバイス、及び他の種類の出力デバイスも、ユーザインターフェース３０１中に含まれ得る。更に、インターフェース（複数可）３０１は、システム３００が、ウェブサーバ及び外部データベースなどの他のデバイスと通信するのを可能にしてもよい。インターフェース（複数可）３０１は、有線ネットワーク、例えば、ローカルエリアネットワーク（ＬＡＮ）、ケーブルなど、及び無線ＬＡＮ（ＷＬＡＮ）、セルラー、または衛星などの無線ネットワークを含む、多種多様なネットワーク及びプロトコルタイプ内の複数の通信を促進し得る。この目的で、インターフェース（複数可）３０１は、ある数のコンピューティングシステムを、互いに、または別のサーバコンピュータに接続するための１つ以上のポートを含んでもよい。
【００３２】
プロセッサ（複数可）３０２は、単一の処理ユニットまたはある数のユニットであり得、これらの全ては、複数のコンピューティングユニットを含み得る。プロセッサ３０２は、１つ以上のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサ、中央処理ユニット、ステートマシン、論理回路、及び／または動作命令に基づいて信号を操作する任意のデバイスとして実装され得る。他の機能の中でも、プロセッサ（複数可）３０２は、メモリ３０３に記憶されたコンピュータ可読命令及びデータをフェッチし実行するように構成される。
【００３３】
メモリ３０３は、例えば、スタティックランダムアクセスメモリ（ＳＲＡＭ）及びダイナミックランダムアクセスメモリ（ＤＲＡＭ）などの揮発性メモリ、ならびに／または読み取り専用メモリ（ＲＯＭ）、消去・プログラム可能ＲＯＭ、フラッシュメモリ、ハードディスク、光学ディスク、及び磁気テープなどの不揮発性メモリを含む、当該技術分野で既知の任意のコンピュータ可読媒体であり得る。メモリ３０３はまた、モジュール（複数可）３０４及びデータ３０５を含む。
【００３４】
他のものの中でも、モジュール３０４は、特定のタスクを行うか、または特定のデータタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。モジュール３０４は、インターフェースモジュール３０６、凝縮モジュール３０７、ライブラリカスタマイゼーションモジュール３０８、ビジュアルビューワモジュール３０９、復元モジュール３１０、及び必要に応じて場合により他のモジュールを更に含む。他のモジュールは、システム３００上でアプリケーションを補完するプログラム、例えば、オペレーティングシステム中のプログラムを含んでもよい。一方で、データメモリ３０５は、他のものの中でも、モジュール３０４のうちの１つ以上によって処理、受信、及び生成されたデータを保管するための収納場所として働く。データメモリ３０５は、ソースファイル、所定の参照ファイル及び／または先進参照ファイルなどの参照ファイル３１４から成るライブラリデータ３１２、ならびに凝縮ファイル及び／または配列ファイル内などの出力データ３１３を含み得る、入力データ３１１を含む。出力データ３１３は、上記のモジュールのうちの１つ以上の実行の結果として生成されるデータを含む。
【００３５】
凝縮のために、システム３００は入力データ３１１と関連付けられる。ソースファイルなどの入力データ３１１は、テキスト、画像、スプレッドシート、またはデータベース形式を含み得るがこれらに限定されず、インターフェースモジュール３０６によって選択され、モジュール３０７を介した凝縮のためにシステム３００に提供される。モジュール３０７は、任意選択で、ライブラリカスタマイゼーションモジュール３０８を起動して、入力データ３１１を分析し、ライブラリ３１２を最適化する。凝縮モジュール３０７は、次に、ライブラリ３１２を使用して、入力データ３１１を出力データ３１３へと凝縮することになる。インターフェースモジュール３０６は、出力データ３１３を、データ３０５の凝縮ファイル（複数可）（または配列ファイル（複数可））として戻し、これは、メモリ３０３中の固定型または携帯型記憶媒体からアクセスされ得る。
【００３６】
復元のため、システム３００は、凝縮ファイルなどの入力データ３１１と関連付けられる。この場合の入力データは、上で詳述したプロセスにおいて作成された凝縮ファイル（複数可）（または配列ファイル（複数可））である。入力データ３１１は、インターフェースモジュール３０６によって選択され、モジュール３１０を介した復元のためにシステム３００に提供される。インターフェースモジュール３０６は、行き先モードオプションを与えて、ファイルまたはスクリーンのいずれかを復元する。ファイルが選択される場合、インターフェースモジュール３０６は、復元モジュール３１０を起動することになる。復元モジュール３１０は、ライブラリ３１２からの参照ファイル（複数可）を使用して、入力データ３１１を出力データ３１３へと復元することになる。インターフェースモジュール３０６は、テキスト、画像、スプレッドシート、またはデータベース形式を含み得るがこれらに限定されない、データ３０５のファイルとして、出力データ３１３を戻し、これは、メモリ３０３中の固定型または携帯型記憶媒体からアクセスされ得る。スクリーンが選択される場合、インターフェースモジュール３０６は、復元モジュール３１０を起動することになる。復元モジュール３１０は、ライブラリ３１２からの参照ファイル（複数可）を使用して、入力データ３１１を出力データ３１３へと復元することになる。インターフェースモジュール３０６は、出力データ３１３をビジュアルビューワモジュール３０９に戻し、これが、インターフェースモジュール３０１を使用して、出力データ３１３を、コンピュータモニター、または視覚的に凝縮されてない可視の形式での表示が可能な他のデバイス上に表示する。
【００３７】
凝縮モジュール３０７と連動して、プロセッサ（複数可）３０２は、ソースファイル内の、文字、数字、スペースなどの全ての形式のデータを読み取り、スペースを他の種類のデータ（例えば、文字、数字など）と区別する。凝縮モジュール３０７と連動して、プロセッサ（複数可）３０２は、次に、データオブジェクト（複数可）がソースファイル全体において繰り返される（例えば、再帰する）回数を決定する。
【００３８】
このデータに基づいて、プロセッサ（複数可）３０２は、ソースファイルを編集するか、または先進参照ファイル（複数可）を作成し、かかる参照ファイル（複数可）をライブラリに追加する。２回以上再帰するデータオブジェクト（複数可）は、先進参照ファイル（複数可）に追加されることになる。追加されるためにデータオブジェクト（複数可）が出現しなければならない回数（閾値）は、ユーザによって手動で定義されてもよく、または凝縮モジュール３０７によって自動で決定されてもよい。
【００３９】
例えば、データ凝縮器は、ＡＳＣＩＩ（ユニコード）形式使用時に特定の記号に使用される共通の１２８の値を越えて、２０個のタームは、２０回繰り返す５個の記号を有し、１５個のタームは、１５回繰り返す１０個の記号を有し、５個のタームは、５回繰り返す５０個の記号を有すると決定し得る。このプロセス中、データ凝縮器は、ＡＳＣＩＩ形式内の１２８の共通の特定の記号を超える閾値要件を満たす内部構造が合計で４０個あることを決定する。
【００４０】
以下は、１６進法の実施形態を利用するデータファイルで見られる、５、１０、及び５０個の記号の最適化の例を提供する。
【表１】
2017513252.tif 000002
各タームは、タームデータオブジェクトの１：１としてライブラリ３１２に一度書き込まれ、閾値を超えて計数された再帰的タームを表すことになる。各タームデータオブジェクトは、識別１６進データオブジェクトに加えてポインタ１６進データオブジェクトを必要とすることになる。これは、（２０×５）＋２０の１６進データオブジェクト、または１２０の全１６進データオブジェクトを必要とすることになる。
【表２】
2017513252.tif 000003
各タームは、タームの１：１としてライブラリ３１２に一度書き込まれ、閾値を超えて計数された再帰的タームを表すことになる。各タームは、識別１６進データオブジェクトに加えてポインタ１６進データオブジェクトを必要とすることになる。これは、（１５×１０）＋１５の１６進データオブジェクト、または１６５の全１６進データオブジェクトを必要とすることになる。
【表３】
2017513252.tif 000004
各タームは、タームの１：１としてライブラリ３１２に一度書き込まれ、閾値を超えて計数された再帰的タームを表すことになる。各タームは、識別１６進データオブジェクトに加えてポインタ１６進データオブジェクトを必要とすることになる。これは、（５×５０）＋５（ビット）の１６進データオブジェクト、または２５５の全１６進データオブジェクトを必要とすることになる。
【００４１】
上に示した５、１０、及び５０個の記号のタームに限った再帰最適化のために、ライブラリ３１２に書き込まれた全内容は、仮想メモリプレフィックスファイルに供給されることになる総計５４０の１６進データオブジェクトに対して１２０＋１６５＋２５５である。かかる例示の再帰プロセスは、故に、５２，５００個の記号を、凝縮されたデータにおいて５４０個の１６進データオブジェクトで代置する。
【００４２】
５、１０、及び５０個の記号のタームに再帰プロセスを制限することなどによる閾値最適化を使用する代わりに、本データ凝縮器及び方法は、２つ以上の記号の再帰全てを感知し得、これが、使用が必要な１６進（または他のＮＢａｓｅ）データオブジェクトの総数の著しい減少をもたらしながらも、全ファイルの無損失凝縮を提供し得る。
【００４３】
識別された繰り返されない単一の記号または記号群の各々は、単一の１６進（または他のＮＢａｓｅ）データオブジェクトと関連付けられる。誤字の場合には、システムは、継続できなくなるまで意味された語の文字をチェックし、次に、完全な語の代わりに単一の文字を１６進（または他のＮＢａｓｅ）データオブジェクトに凝縮する。これにより、ソフトウェア障害または誤った出力なく、内部データオブジェクトのエラー及び不完全性の補償が可能となる。
【００４４】
再帰プロセスの完了時、本データ凝縮器及び方法は、概して、再帰に起因して最初の計数から著しく減少する数である、ライブラリ３１２中に含まれる凝縮されたデータの第２の計数を行う。
【００４５】
最適化されたライブラリは、再帰を通して識別された実体の記憶に使用される凝縮ファイル（複数可）を使用してもよく、凝縮されたデータを記憶するための容量要件を低減するために最適化される。例えば凝縮された正方配列ファイルを使用する場合、本データ凝縮器及び方法は、凝縮されたデータの総数の平方根を決定する。平方根が小数値を含む場合、平方根の数は、データの損失を防止するために、次に大きい整数に調整される。例えば、４５６，８４０の平方根は、６７５．８×６７５．８である。しかしながら、本データ凝縮器及び方法は、６７６×６７６（切り上げた次の最も近い整数）に切り上げる。配列ファイルは、その後、凝縮ファイル（複数可）から、１６進、ベース２５６、または他のＮＢａｓｅデータオブジェクトの全てをポピュレートされ、残りのスペースは、ファイル末まで無価値（例えば、ヌル）のデータオブジェクトによって満たされる。
【００４６】
１６進の実施形態では、本データ凝縮器及び方法は、個々の１６進値の数によって指定されたある数の所定の１６進データオブジェクトを提供するが、これに限定されない。簡潔性のために「オブジェクト当たりの１６進（Ｈｅｘ  Ｐｅｒ  Ｏｂｊｅｃｔ）」（ＨＰＯ）として記載するかかる形式は、凝縮されたデータに基づいて自動的に及び／または手動で選択されて、データ処理及び記憶を更に最適化し得る。
【表４】
2017513252.tif 000005
本データ凝縮器及び方法は、故に、更なる最適化のために、構造化形式を選択することによって、記憶要件を凝縮する。例えば、６ｈｐｏ形式によって提供される１６，７７７，２１６個の値の利用は、効率的に最適化されるには多すぎるであろう。英語が変化形（進行形、過去形、最上級など）を含む約１３０，０００個の共通語を有すると仮定される場合、４ｈｐｏ形式（６５，５３６個の値）の使用は少なすぎる。それよりも、本データ凝縮器及び方法は、最適化された形式として５ｈｐｏ形式の１，０４８，５７６個の値を選択し得る。別の例として、エクソン／イントロンゲノムシークエンスは、１，０００，０００記号当たり約１，０００，０００ビットのデータ質量収支で、長さにして約４５，０００，０００〜２６０，０００，０００個の記号にわたる。ゲノムシークエンスでは、８個のみの可能性のある記号、加えてヌル／非読（Ｎ）、及びファイル末が存在する。２ｈｐｏ、４ｈｐｏ、または６ｈｐｏ形式を使用する必要はない。むしろ、１６個の値を提供する１ｈｐｏ形式で十分すぎるほどである。ゲノムシークエンス中の全部で８個のみの記号により、重パターンの再帰が生じ、したがって、最適化が決定され、所定の参照ファイル３１４またはライブラリ３１２に直接提供される。例えば染色体１６は、約８８，８２７，２５５個の遺伝子塩基対を含む。テキストファイルに配置されると、関連するファイル情報を含めて約８８，８３０，６２５ビットが必要とされる。本データ凝縮器及び方法によって凝縮されると、ファイルサイズは、塩基対が損失することなく９４２５×９４２４に自動的に調整される。１ｈｐｏ形式の選択により、元のサイズの約３％である２，６８３，２９３ビットへのファイルの減少が得られる。
【００４７】
本データ凝縮器及び方法は、規定のデータオブジェクトを含む１つ以上の所定の参照ファイルを提供し得る。本データ凝縮器及び方法は、各ソースファイル内の識別された反復データオブジェクトを、所定の参照ファイル内の所定のデータオブジェクトと相互に関連付けることによって、先進参照ファイルを形成する。先進参照ファイル内に位置する新たなデータオブジェクトには、固有の１６進（または他のＮＢａｓｅ）値が割り当てられ、かかる新たなデータオブジェクトは、新たな凝縮ファイルに追加される。どちらの事象においても、本データ凝縮器及び方法を使用することで、デジタルポインタが凝縮ファイル内の各データオブジェクトに追加される。例えば、１つの所定の参照ファイルは、１，０４８，５７６個の値を提供する５ｈｐｏ形式で１３０，０００個の共通の英語の語を含み得る。別の所定の参照ファイルは、１６個の値を提供する１ｈｐｏ形式で、全染色体についてのエクソン／イントロンゲノムシークエンスを含み得る。別の所定の参照ファイルは、４０９６個の値を提供する３ｈｐｏ形式で、ＦａｓｔＱ多変数形式を含み得る。別の所定の参照ファイルは、世界の各共通言語に対する変動と共に共通言語を含み得る。最適化は、５ｈｐｏ形式以上で所定の参照ファイルに提供され得る。キャリッジリターン、ファイル末または行末などのヌル領域、セル表記、列、行、タブなどは、共通及び／またはＦａｓｔＱライブラリに組み込まれ得る。
【００４８】
所定の参照ファイルは、複数のデータオブジェクトがマージして単一の１６進（またはＮＢａｓｅ）データオブジェクトによって指定されるようにするのを可能にするように構造化され得る。故に、２個（以上）の関係しているが同一ではないスライディングスケールからの値は、マージすることができない。例えばゲノムデータを扱う場合、塩基対「Ａ」（アデニン）は、特定のリンク及び場所の許容範囲内の「＃」のフレッドスコアと組み合わされて、単一の１６進（またはＮＢａｓｅ）データオブジェクトによって識別される１つの値を作成し得る。
【００４９】
本データ凝縮器及び方法は、固有の１６進（またはＮＢａｓｅ）オブジェクトコードを各凝縮ファイル（例えば、所定の及び／または先進参照ファイル）に割り当てる。例として、データ「Ｏ  ｓａｙ  ｃａｎ  ｙｏｕ  ｓｅｅ  ｂｙ  ｔｈｅ  ｄａｗｎ'ｓ  ｅａｒｌｙ  ｌｉｇｈｔ，」には、以下のように１６進データオブジェクトコード値が割り当てられ得る。
【表５】
2017513252.tif 000006
【００５０】
本データ凝縮器及び方法は、固有の１６進、ベース２５６、または他のＮＢａｓｅ値の割り当てによる特有の暗号化を、ライブラリに記憶された凝縮されたデータ（例えば、凝縮ファイル、配列ファイルなど）に提供する。受信者は、凝縮データファイル（複数可）を使用するために、かかる１６進、ベース２５６、または他のＮＢａｓｅ値を知っている必要がある。
【００５１】
本データ凝縮器及び方法は、凝縮されたデータファイル（複数可）中に含まれるデータについての代替開始点、位置シフト、フォールスデータオブジェクト、ブランク、及び非線形書き込みパターンを作成することによって強化され得る。
【００５２】
更に、本データ凝縮器及び方法は、現在の日付、現在時刻、キーワード、または他の一般的な英数字入力の選択を可能にする従来の暗号化技法を利用して、１回限りのキーを作成し、データの記録を暗号化し得る。言うまでもなく、データの受信者も、データをロック解除して利用するためのキーへのアクセスを有する。本データ凝縮器及び方法はまた、ユーザが、自身のアルゴリズムを作成すること、または更なるセキュリティを提供することを可能にする。例えば、１つの凝縮されたデータファイルは、別の凝縮されたデータファイルまたは標準のデータファイルで暗号化され得る。
【００５３】
本データ凝縮器及び方法は、従来のコンピュータ処理ユニット（ＣＰＵ）上で機能するが、例えば、グラフィック処理ユニット（ＧＰＵ）などの他の処理ユニット上でも動作する。
【００５４】
本データ凝縮器及び方法によって提供される特有または特殊暗号化は、標準の先入れ先出し（ＦＩＦＯ）法をサポートするが、その方式で動作することは求められない。ファイルの無作為の領域で開始し、その後、非線形の様式で座標から座標へと飛ぶことが可能である。
【００５５】
別の実施形態では、凝縮されたデータファイル（複数可）（例えば、凝縮ファイル、配列ファイルなど）は、ＦａｓｔＱテキストファイルの内容から直接ポピュレートされ得る。各ＦａｓｔＱデータパケットについては、行１中の各単一記号（例えば、数字または文字）は、コーディングされ、その後、行末マーカが続く。各ＦａｓｔＱデータパケットの行２及び４は、組み合わされて、１６進（またはＮＢａｓｅ）データオブジェクトに凝縮された二重文字コードを作り、その後、行末（ＥｏＬ）マーカが続くが、行３は無視される。全てのＦａｓｔＱデータパケットの凝縮が完了すると、行末マーカが追加される。次に、プロセッサ（複数可）３０２は、各単一文字または二重文字コードを１６進（またはＮＢａｓｅ）データオブジェクトに翻訳して、凝縮されたデータファイル要素の各々が、単一の１６進（またはＮＢａｓｅ）データオブジェクトを構成するようにする。凝縮されたデータファイルの残りは、ファイル末（ＥｏＦ）マーカまで、無価値（例えば、ヌル）の１６進（またはＮＢａｓｅ）データオブジェクトで満たされる。
【００５６】
復元プロセスにおいて、凝縮ファイル（または配列ファイル）中の１６進（またはＮＢａｓｅ）データオブジェクトは、ソースファイル内の元のデータに復元される。上記の代替的な実施形態では、プロセッサ（複数可）３０２を使用して、各１６進（またはＮＢａｓｅ）データオブジェクトを、単一文字または二重文字の凝縮されていないデータオブジェクトに翻訳する。復元されたＦａｓｔＱデータパケットの各々は、ここでは２行である。各ＦａｓｔＱデータパケットについて、（ａ）全ての１６進（またはＮＢａｓｅ）データオブジェクトは、行末まで読み込まれ、（ｂ）各１６進（またはＮＢａｓｅ）データオブジェクトは、単一文字に翻訳され、データファイルにテキストがポピュレートされ、（ｃ）テキストのＦａｓｔＱパケット行１は、凝縮されていないデータオブジェクトに書き込まれ、（ｄ）全ての１６進（またはＮＢａｓｅ）データオブジェクトは、行末（ＥｏＬ）まで読まれ、（ｅ）ＦａｓｔＱパケット行２は、凝縮されていないデータファイルへと読み込まれ（各要素は、２つのテキスト記号を有することになる）、（ｆ）テキストの行（ＦａｓｔＱパケット行２）への凝縮されていないデータファイル要素の各々の第１の記号が書き込まれ、（ｇ）＋記号を有するテキストの行（ＦａｓｔＱパケット行３）が書き込まれ、かつ（ｈ）テキストの行（ＦａｓｔＱパケット行４）への凝縮されたデータファイル要素の各々の第２の記号が書き込まれる。行末マーカ（ＥｏＦ）及び全ての無価値の１６進データオブジェクトは無視される。結果として得られるテキストファイルは、もはや凝縮されておらず、保存され得る。
【００５７】
本データ凝縮器及び方法は、８進（ベース８）、１０進（ベース１０）、１４進（ｔｅｔｒａｄｅｃｉｍａｌ）（ベース１４）、１５進（ｐｅｎｔａｄｅｃｉｍａｌ）（ベース１５）、１６進（ｈｅｘａｄｅｃｉｍａｌ）（ベース１６）、２４進（ｔｅｔｒａｖｉｇｅｓｉｍａｌ）（ベース２４）、３２進（ｄｕｏｔｒｉｇｅｓｉｍａｌ）（ベース３２）、３６進（ｈｅｘａｔｒｉｇｅｓｉｍａｌ）（ベース３６）、６４進（ｔｅｔｒａｓｅｘａｇｅｓｉｍａｌ）（ベース６４）、及び２５６進（Ｄｕｏｃｅｎｔｏｓｅｘａｐｅｎｔａｇｅｓｉｍａｌ）（ベース２５６）などであるがこれらに限定されない、異なる数値システムを有するコンピュータを採用し得る。
【００５８】
一部のベース２コンピュータは、ベース１６（１６進）コードを使用して、コンピュータメモリアドレスを表す。かかる１６進表記は、２進コード化値を人に分かりやすく表示する。これは、１６個の区域シンボル、ほとんどの場合、０〜９のシンボルを使用して、零から九の値を表し、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、及びＦ（または代替的にａ〜ｆ）を使用して、十から十五の値を表す。１６進数の１桁は、１バイトの半分（８ビット）であるニブルを表す。バイト値は、０〜２５５（１０進法）の範囲であり得るが、より簡便に、００〜ＦＦの範囲の１６進数の２桁として表されてもよい。
【００５９】
ベース２５６の実施形態では、２５６個の値の所定の（例えば、規定の）参照ファイルを利用して、データオブジェクトを変換し凝縮し、これは、元のデータソースファイルにおいて生じ得る。この実施形態では、全ての共通記号、英数字及びシンボルが、キャリッジリターン、タブ、ファイル末、及びヌルなどであるが、これらに限定されない、アクション記号と併せて含まれる。次に、ロングタームが追加され、英語において最も一般的に使用される複数記号語によって定義される。所定の（例えば、規定の）参照ファイルは、任意の言語（単数または複数）及び／またはトピック（単数または複数）に対して構築され得、英語に限定されない。
以下の例は、ベース２５６の所定の参照ファイルの使用を示す。
変換用の元のファイル：
−−  Ｔｈｅ  ｂｉｇ  ｂｒｏｗｎ  ｒａｂｂｉｔ  ｌｉｋｅｓ  ｇｒｅｅｎ  ｌｅａｆｙ  ｃａｒｒｏｔｓ；  ｈｅ  ｅａｔｓ  ｔｈｅｍ  ａｌｌ  ｉｎ  ｔｈｅ  ｇａｒｄｅｎ．−−
以下の語は、所定の参照ファイルにおいてベース２５６値を既に割り当てられた共通語である。
【表６】
2017513252.tif 000007
所定の参照ファイルはまた、全ての共通の英語のアルファベット記号及びシンボル、ならびにアクション記号を含む。
データ凝縮器は、次に、元のソースファイルを凝縮されたデータオブジェクトに変換する。元のソースファイルは、８１個のデータオブジェクト（アルファベット記号、シンボル、アクション記号）を含む。元のデータオブジェクトの凝縮は、以下の方法によってその数を減少させる。
「ｔｈｅ」の２回の使用＝合計６個から減少した２個のデータオブジェクト
「ｂｉｇ」＝３個から減少した１個
「ｂｒｏｗｎ」＝５個から減少した１個
「ｌｉｋｅｓ」＝５個から減少した１個
「ｇｒｅｅｎ」＝５個から減少した１個
「ｈｅ」＝２個から減少した１個
「ｔｈｅｍ」＝４個から減少した１個
「ａｌｌ」＝３個から減少した１個
減少したデータオブジェクト（６＋３＋５＋５＋５＋２＋４＋３）の合計は３３個であり、結果、９個の凝縮されたデータオブジェクトをもたらす。
（行末及びファイル末を含む元のデータオブジェクト８１個−３３）＋結果として得られる凝縮されたデータオブジェクト９個
凝縮されたデータオブジェクトの合計＝合計５７個のデータオブジェクト。
配列ファイルは、次に、８１個ではなく合計５７個のデータオブジェクト数で定義され、平方根が決定され、最も近い整数に切り上げられ、配列ファイルは、段落［００４５］において定義したようにポピュレートされる。
【００６０】
ＮＢａｓｅの実施形態での凝縮は、変数法によって行われ、単一のデータオブジェクトまたは多数のデータオブジェクトの再帰（ロングリード（ｌｏｎｇ  ｒｅａｄ））による最適化の選択が、単一の元のソースファイルまたは多数の元のファイルのために、最適化方法論と併せて選択され得る。
【００６１】
ショートリード（ｓｈｏｒｔ  ｒｅａｄ）のＮＢａｓｅは、最適化されたライブラリの作成時に、単一のアルファベット記号、シンボル、及びアクション記号のみを利用する。
以下の例では、ショートリードのＮＢａｓｅを使用して、単一の元のソースファイルを最適化する。
変換用の元のソースファイル：
−−  ＡＡＣＣＴＧＧＴｃｃｃｃＴＴＴＣＣＧＧＡＡＡＡＮＮＮＮＮＣＣｃｃｔｔｇｇａａａａ  −−
ショートリード最適化は、ファイル内のデータオブジェクトを精査し、行末及びファイル末変数を含めて合計４２個あることを決定する。ＮＢａｓｅは、次に、使用されたデータオブジェクトが、Ａ、Ｃ、Ｔ、Ｇ、ａ、ｃ、ｔ、ｇ、Ｎ、行末、及びファイル末であることを決定する。合計１１個の固有のデータオブジェクトが元のソースファイル内に存在し、よって、ＮＢａｓｅ凝縮ファイルは、１１個の固有のデータオブジェクトのみを使用することを必要として、ベース１１セットとして定義されることになる。配列ファイルは、段落［００４５］に記載のように作成される。
【００６２】
ロングリードのＮＢａｓｅも、使用される全ての単一使用アルファベット記号、シンボル、及びアクション記号を読み込み、その後、凝縮ファイル内の残りのスペースを満たすために、最も再帰的なものを探して、全ての語及び／または語句を読み取る。完了したら、新たな凝縮ファイルを使用して、段落［００４５］に記載の配列ファイルの作成のための正式なデータオブジェクト総数を決定する。
【００６３】
ＮＢａｓｅ複数ファイル最適化は、段落［００６１］及び［００６２］に記載したものと同じであるが、単一の元のソースファイルを読み込んで最適化した凝縮ファイルを定義する代わりに、これは、１つ超のファイルを読み込んで最適化された凝縮ファイルを決定するということにだけ注意されたい。
【００６４】
ベース２５６（またはＮＢａｓｅ）の実施形態では、パック深度は、段落［００４５］の方法によって書き込まれる１つの凝縮された配列ファイルにパックされた、ベース２５６（及び／またはＮＢａｓｅ）が割り当てられた値の数である。パック深度は、１以上（≧１）の正の整数＋ｉである必要がある。
【００６５】
以下の例では、［ＤＯ］中の項目は、所定の参照ファイルからの値と関連付けられたベース２５６（またはＮＢａｓｅ）データオブジェクトの例として指定されることになる。（）内の項目は、パック深度によって定義される単一の凝縮されたデータオブジェクト中に保持されると見なされることになる。ＥｏＬは、行末のためのデータオブジェクト参照を保持することになり、ＥｏＦは、ファイル末のためのデータオブジェクト参照を保持することになる。
１のパック深度：
（［ＤＯ］）（［ＤＯ］）（［ＤＯ］）（［ＤＯ］）（［ＤＯ］）（［ＤＯ］）（［ＤＯ］）（［ＤＯ］）（［ＤＯ］）（［ＤＯ］）（［ＤＯ］）（［ＥｏＬ］）（［ＥｏＦ］）
上の例では、ＥｏＬ及びＥｏＦを含む凝縮のためのデータオブジェクトは１３個ある。故に、配列ファイルは、配列ファイルが段落［００４５］に記載の様式で作成されるように、１３の平方根によって定義されることになる。
２のパック深度：
（［ＤＯ］［ＤＯ］）（［ＤＯ］［ＤＯ］）（［ＤＯ］［ＤＯ］）（［ＤＯ］［ＤＯ］）（［ＤＯ］［ＤＯ］）（［ＤＯ］［ＥｏＬ］）（［ＥｏＦ］［ＮＵＬＬ］）
上の例では、ＥｏＬ及びＥｏＦを含む凝縮のためのデータオブジェクトは７個ある。故に、配列ファイルは、配列ファイルが段落［００４５］に記載の様式で作成されるように、７の平方根として定義されることになる。
３のパック深度：
（［ＤＯ］［ＤＯ］［ＤＯ］）（［ＤＯ］［ＤＯ］［ＤＯ］）（［ＤＯ］［ＤＯ］［ＤＯ］）（［ＤＯ］［ＤＯ］［ＥｏＬ］）（［ＥｏＦ］［ＮＵＬＬ］［ＮＵＬＬ］）
上の例では、ＥｏＬ及びＥｏＦを含む凝縮のためのデータオブジェクトは５個ある。故に、その配列ファイルは、配列ファイルが段落［００４５］に記載の様式で作成されるように、５の平方根として定義されることになる。
４のパック深度：
（［ＤＯ］［ＤＯ］［ＤＯ］［ＤＯ］）（［ＤＯ］［ＤＯ］［ＤＯ］［ＤＯ］）（［ＤＯ］［ＤＯ］［ＤＯ］［ＥｏＬ］）（［ＥｏＦ］［ＮＵＬＬ］［ＮＵＬＬ］［ＮＵＬＬ］）
上の例では、ＥｏＬ及びＥｏＦを含む凝縮のためのデータオブジェクトは４個ある。故に、その配列ファイルは、配列ファイルが段落［００４５］に記載の様式で作成されるように、４の平方根として定義されることになる。
パック深度は、上記の２つの実施形態において、プリセットされ得るか、または手動で定義され得る。全ての趣旨及び目的のために、上記の例のパック深度は、１３に設定され得、配列ファイルは、１３個のベース２５６（またはＮＢａｓｅ）値がその単一の配列ファイルの内部に記憶された、サイズにして１個の凝縮されたデータオブジェクトである。
【００６６】
図１は、データファイルの１つの凝縮方法１００を示す。本出願の様々な場所に示すように、本システム及び方法は、プロセッサが記憶媒体に記憶されたコンピュータコードを実行することによって達成され得る。
【００６７】
本プロセッサは、記憶システムからソフトウェアを読み出して実行するマイクロプロセッサ及び他の回路を備え得る。本プロセッサは、単一の処理デバイス内に実装され得るが、プログラム命令の実行において協働する複数の処理デバイスまたはサブシステムにわたって分配されてもよい。プロセッサの例としては、汎用中央処理ユニット、アプリケーション特有プロセッサ、及び論理デバイスだけでなく、任意の他の種類の処理デバイス、処理デバイスの組み合わせ、またはこれらの変形が挙げられる。
【００６８】
記憶デバイスは、プロセッサによる読み取りが可能であり、ソフトウェアを記憶する能力がある、任意の記憶媒体を備え得る。記憶システムは、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術中に実装される、揮発性及び不揮発性の取り外し可能及び不可能な媒体を含み得る。記憶システムは、単一の記憶デバイスとして実装され得るが、複数の記憶デバイスまたはサブシステムにわたって実装されてもよい。記憶システムは、プロセッサと通信する能力のあるコントローラなどの追加の要素を更に含み得る。
【００６９】
記憶媒体の例としては、ランダムアクセスメモリ、読み取り専用メモリ、磁気ディスク、光学ディスク、フラッシュメモリ、仮想メモリ及び非仮想メモリ、磁気セット、磁気テープ、磁気ディスク記憶デバイスもしくは他の磁気記憶デバイス、または所望の情報を記憶するために使用することができ、命令実行システムによってアクセス可能であり得る任意の他の媒体、ならびにこれらの任意の組み合わせもしくは変形、または任意の他の種類の記憶媒体が挙げられる。
【００７０】
ステップ１．０は、凝縮ソフトウェアの立ち上げを伴う。ソースファイル（複数可）の凝縮のためのコードは、それが存在するオペレーティングシステムプラットフォームに基づいて、実行、起動、及び／または開始される。この動作の際、凝縮ソフトウェアは、凝縮プロセスの経過中に必要に応じて使用するために、適切な構成要素をアクティブメモリ（ＲＡＭ）に、補助的な構成要素を固定型または携帯型記憶媒体に読み込む。
【００７１】
ステップ１．１は、以降はソースファイル（複数可）とする、凝縮されるソースファイル（複数可）の選択を伴う。ソースファイル（複数可）の選択は、凝縮ソフトウェアメニューを通して成される。これは、メニューダイアログボックスを閲覧すること、ファイル（複数可）を凝縮ソフトウェア中にドラッグ・アンド・ドロップすること、及び／またはファイル（複数可）オプションを開いて選択することを含み得るが、これらに限定されない。これは、凝縮用のファイル（複数可）を読み込み、凝縮のプロセスのためにソースファイル（複数可）への連係を作成する。
【００７２】
ステップ１．２は、ソースファイル（複数可）の分析を伴う。ソースファイル（複数可）分析は、以下のうちの１つ以上を含んでもよいが、列挙する例に限定されない。
・ソースファイル（複数可）中に存在する全データオブジェクトの計数
・内部フォーマット化（例えば、スプレッドシート、ＦａｓｔＱファイルなど）の評定
・再帰的データオブジェクトの識別（例えば、群の定義）
・所定の／特有のデータオブジェクトの識別（例えば、所定の参照ファイルから）
・所定の／手動で入力されたアルゴリズム（例えば、数値ベースコーディングシステム）
全ての基準が、デフォルトで、または手動で決定された方法によって、満たされると、これらのデータオブジェクト（例えば、１つ以上のＡＳＣＩＩテキスト記号）の合計が定まって既知となり、それにより、プロセスが凝縮における次のステップに移動することが可能となる。
【００７３】
ステップ１．３は、所定の参照ファイル（複数可）及び凝縮ファイル（複数可）の任意選択の最適化を開始する。ソースファイル分析に基づいて、１６進、ベース２５６、または他のＮＢａｓｅ値をデータオブジェクト（複数可）と関連付けること、及び配列ファイルのための３のデフォルト値以外のパック深度の選択によって、所定の参照ファイル（複数可）（及び凝縮ファイル（複数可））をカスタマイズするために、オプションが存在する。凝縮の最適化のカスタマイズされた方法は、手動で特定されるか、または自動で選択される。
【００７４】
ステップ１．４は、凝縮されたデータを保持するための配列ファイル（複数可）の確立に関する。既知のデータオブジェクト（複数可）の全ては、整数である。データオブジェクトの平方根が導かれる。これを使用して、配列ファイル（複数可）のＸ軸及びＹ軸のためのパラメータを決定する。平方根の大部分が小数位の使用を伴うため、導かれた凝縮されたデータオブジェクトの合計の平方根は、最も近い整数に切り上げられて、配列ファイル（複数可）が、常にソースファイル（複数可）の凝縮を処理するのに十分に大きいが、決してデータオブジェクトの１つ未満の更なる列に対する更なる必要性を上回ってスペースを無駄にしないようにする。データオブジェクトの平方根が最も近い整数に切り上げられるとすると、凝縮された配列ファイル（複数可）は、Ｘ軸及びＹ軸の両方に対して、整数として定義されることになる。これは、仮想メモリを配列形成プロセスに対して準備する。
【００７５】
ステップ１．５は、凝縮プロセスを開始する。ソースファイル（複数可）への凝縮の開始は、進めるという承認から始まる。
【００７６】
ステップ１．６は、評定されたデータオブジェクトを、処理のためにソースファイルに読み込むことに関する。凝縮のためのデータオブジェクトの読み込みは、１つ以上の方法として行われるが、列挙する例に限定されない。
・一度に１つのデータオブジェクト
・ステップ１．３で行われる最適化分析に基づく
・所定の／特有の構造
データオブジェクトは、凝縮処理のためにアクティブメモリに読み込まれる。
【００７７】
ステップ１．７は、評定されたデータオブジェクト及び／またはデータオブジェクト群のために定義された１６進、ベース２５６、または他のＮＢａｓｅ値を取得するためのソースファイルのアドレッシングに関する。アクティブメモリ中のデータオブジェクトは、元のソースファイル（複数可）に含まれるデータオブジェクト（複数可）に対する指定された１６進、ベース２５６、または他のＮＢａｓｅ値割り当てを保持する、所定の参照ファイル（複数可）と比較される。
【００７８】
ステップ１．８は、凝縮ファイル（複数可）にコーディングされたデータをポピュレートすることに関する。１６進、ベース２５６、または他のＮＢａｓｅ値の書き込みは、種々の方法で凝縮ファイル（複数可）に書き込まれ得るが、列挙する例に限定されない。
・左から右、上から下（デフォルト）
・中心から反時計回り
・カスタム設計及び割り当てられたパターン、ならびに／または
・フラクタル方法論
・ストリーム
・ステップ１．３で行われる最適化分析に基づく
【００７９】
ステップ１．９は、変換周期に言及する。凝縮ファイル（複数可）のポピュレートは、ソースファイル（複数可）から読み取る更なるデータオブジェクトがなくなるまで継続することになる。凝縮ファイル（複数可）は、更なるデータオブジェクトに遭遇し（ステップ１．６を参照されたい）、ステップ１．７及び１．８を再び通る場合に、ポピュレートし続けることになる。更なるデータオブジェクトが遭遇されない場合、本プロセスは、ステップ１．１０に進むことになり、これが、周期的プロセスを終結させる。これが発生するときに、本プロセスはファイル完了プロトコルに進む。
【００８０】
ステップ１．１０は、凝縮ファイル（複数可）末をマーキングすることに関する。１６進、ベース２５６、または他のＮＢａｓｅ値が、ファイルターミネータ末に割り当てられる。この１６進、ベース２５６、または他のＮＢａｓｅ値は、いずれの他の１６進、ベース２５６、または他のＮＢａｓｅ値の割り当てとも決して共有されないが、実際に指定された、多様な理由に対して割り当てられた１６進、ベース２５６、または他のＮＢａｓｅ値において異なり得る。この１６進、ベース２５６、または他のＮＢａｓｅ値は、データファイルにおいて一度だけ使用される。
【００８１】
ステップ１．１１は、凝縮ファイル（複数可）中の残りのファイルスペースに、ヌルに対する１６進、ベース２５６、または他のＮＢａｓｅ値をポピュレートすることに関する。ヌルは、空きスペースとしても知られ、ファイル末と似ているが、ファイル末はターミネータとして一度だけ使用され得るため、仮想メモリ中に存在する凝縮ファイル（複数可）におけるいずれの残りのスペースも、凝縮されたファイル（複数可）の構造的要件につき、ポピュレートされる必要がある。１６進、ベース２５６、または他のＮＢａｓｅ値が、ヌルに割り当てられる。この値は、いずれの他の１６進、ベース２５６、または他のＮＢａｓｅ値の割り当てとも決して共有されないが、実際に指定された、多様な理由に対して割り当てられた１６進、ベース２５６、または他のＮＢａｓｅ値において異なり得る。
【００８２】
ステップ１．１２は、凝縮ファイル（複数可）のネーミングに関する。凝縮出力ファイル（複数可）は、凝縮されたファイル（複数可）に必要とされる十分な書き込みスペースを有する任意の固定型または携帯型記憶媒体に記憶され得る。名称は、このときに、凝縮されたファイル（複数可）に対して決定され得る。このネーミングは、特定の要件は有さず、その場で、または外部で決定された基準によって決定され得る。
【００８３】
ステップ１．１３は、凝縮ファイル（複数可）を、記憶のためにディスクに書き込む。アクティブメモリ中の凝縮ファイル（複数可）は、固定型または携帯型記憶媒体の記憶域に書き込まれ、今後は凝縮されたデータ出力ファイルと称される。凝縮ファイル（複数可）は、その新たな凝縮された状態における修正なく、固定型または携帯型記憶媒体から必要に応じてアクセスされ得る。
【００８４】
ステップ１．１４は、ソースファイル（複数可）及び凝縮ファイル（複数可）を閉じる。ソースファイル（複数可）及び凝縮ファイル（複数可）は、アクティブメモリからリリースされる。
【００８５】
ステップ１．１５は、凝縮ソフトウェアを閉じる。凝縮ソフトウェアは、アクティブメモリからリリースされる。ソフトウェアの実行において使用されたいずれの一時データファイルも削除される。
【００８６】
図２は、凝縮されたデータのその元の凝縮されていない状態への１つの復元方法２００を示す。
【００８７】
ステップ２．０は、復元プログラムの立ち上げに関する。凝縮されたファイル（複数可）の復元のためのコードは、それが存在するオペレーティングシステムプラットフォームに基づいて、実行、起動、及び／または開始される。この動作の際、復元ソフトウェアは、復元プロセスの経過中に必要に応じて使用するために、適切な構成要素をアクティブメモリ（ＲＡＭ）に、補助的な構成要素を固定型または携帯型記憶媒体に読み込む。復元使用は、仮想環境中で凝縮されたファイル（複数可）の一部を手早く見る必要性、及び利用可能な曖昧な凝縮されたデータファイル技術を有さないシステムまたは実体への転送のための完全なソースファイル（複数可）への復元が中心となる。
【００８８】
ステップ２．１は、復元ソフトウェアメニューを通した凝縮ファイル（例えば、凝縮されたファイルまたは復元ファイル）（複数可）の選択に関する。凝縮ファイル（複数可）の選択は、復元ソフトウェアメニューを通して成される。これは、メニューダイアログボックスを閲覧すること、凝縮ファイル（複数可）を復元ソフトウェア中にドラッグ・アンド・ドロップすること、及び／または凝縮ファイル（複数可）オプションを開いて選択することを含み得るが、これらに限定されない。これは、凝縮ファイル（複数可）を読み込み、凝縮のプロセスのために凝縮ファイル（複数可）への連係を作成する。
【００８９】
ステップ２．２は、復元する凝縮されたデータファイル（複数可）の量に関する。ユーザは、復元する凝縮ファイル（複数可）の１００％未満のある特定の量を指定し得る。この量は、選択されたパーセンテージ、行番号、または他の列挙しない方法であってもよい。
【００９０】
ステップ２．３は、出力方法の選択に関する。ユーザは、出力データファイル（複数可）（例えば、行き先また仮想ファイル）または視覚媒体上の表示ウィンドウへの出力を指定し得る。出力データファイル（複数可）は、出力データファイル（複数可）に必要とされる十分な書き込みスペースを有する任意の固定型または携帯型記憶媒体に記憶され得る。名称は、このときに、出力データファイル（複数可）に対して決定され得る。このネーミングは、特定の要件は有さず、その場で、または外部で決定された基準によって決定され得る。
【００９１】
ステップ２．４は、凝縮ファイル（複数可）の読み込みに関する。凝縮ファイル（複数可）は、以下の方法のうちの１つを使用して読み込まれるが、列挙する例に限定されない。
・左から右、上から下（デフォルト）
・中心から反時計回り
・アルゴリズムで割り当てられたパターン
・フラクタル方法論
・ライブラリによる決定
・ストリーム
【００９２】
ステップ２．５は、凝縮ファイルから１６進、ベース２５６、または他のＮＢａｓｅ値を読み込むことに関する。１６進、ベース２５６、または他のＮＢａｓｅ値は、凝縮ファイル（複数可）から読み込まれる。
【００９３】
ステップ２．６は、凝縮ファイルにおける指定された先進参照ファイル及びパック深度のコンサルテーションに関する。１６進、ベース２５６、または他のＮＢａｓｅ値は、ライブラリに対して適格性評価される。ライブラリは、１６進、ベース２５６、または他のＮＢａｓｅ値を、元のソースファイル（複数可）と関連付けられた割り当てられたデータオブジェクトとリンクさせる。
【００９４】
ステップ２．７は、復元されたデータオブジェクトをメモリ中の行き先データファイル（複数可）に書き込むことに関する。復元されたデータオブジェクトは、次に、以下の方法のうちの１つ以上において行き先ファイル（複数可）中にポピュレートされるが、リスト中の例に限定されない。
・所定の／手動で入力されたアルゴリズムの復元
・識別された再帰的構造実体
・形式特有
・ライブラリによる決定
・ストリーム
行き先ファイル（複数可）は、アクティブメモリ（ＲＡＭ）中に存在する。行き先ファイル（複数可）のポピュレートは、凝縮ファイル（複数可）中でファイル末（ＥｏＦ）１６進、ベース２５６、または他のＮＢａｓｅ値（１．１１）に遭遇するまで継続することになる。行き先ファイル（複数可）は、凝縮前の元のソースファイル（複数可）と同じ様式で形式化され、この元のソースファイル（複数可）は、以下の種類の内の１つのファイルであり得るが、列挙する例に限定されない。
・ワード、エクセル、テキストファイル
・データベースファイル
・電子医療記録
・ログファイル
・ＦＡＳＴＱ／ゲノムファイル
・２進ファイル
【００９５】
ステップ２．８は、復元周期に言及する。書き込み周期は、復元ソフトウェアがアクティブメモリまたは固定型もしくは携帯型記憶媒体に情報を書き込む必要がある単一インスタンスとして定義される。システム限界が、２．２でユーザによって指定された量または全ての行き先ファイルのアクティブメモリ（ＲＡＭ）への書き込みに対応する場合、復元ソフトウェアは、１回の書き込み周期のみが必要であり、行き先ファイル（複数可）のポピュレートが、凝縮ファイル（複数可）から読み取る更なる１６進、ベース２５６、または他のＮＢａｓｅ値がなくなるまで継続することを認識する。システム限界が、２．２でユーザによって指定された量または全ての行き先ファイルのアクティブメモリ（ＲＡＭ）への書き込みに対応しない場合、復元プログラムは、１回超の書き込み周期の量を計算し、これにより、行き先ファイル（複数可）の分割したポピュレートが可能となる。書き込み周期のサイズがどのように計算されるべきかの決定は、以下の方法のうちの１つであり得るが、これらに限定されない。
・凝縮されたデータファイル内の行末により
・凝縮されたファイルの割合またはパーセンテージにより
・利用可能なＲＡＭの割合またはパーセンテージを使用して
【００９６】
ステップ２．９は、復元ソフトウェアがその最後の書き込み周期に達したことの決定に言及する。最後の書き込み周期の最後に達した場合、復元ソフトウェアはステップ２．１０に進む。最後の書き込み周期の最後に達していない場合、復元ソフトウェアはステップ２．９．５に進む。
【００９７】
ステップ２．９．５は、行き先ファイルを固定型または携帯型記憶媒体の一時データファイルに書き込ことに言及する。一時データファイルの特徴は、ステップ２．７に記載の行き先ファイルと同じ仕様及び制限に従う。
【００９８】
ステップ２．１０は、データファイル（複数可）出力またはビューワ出力の先の選択に言及する。（ステップ２．３）プロセスは、データファイル（複数可）またはビューワへの出力の間でこの時点で分化する。
【００９９】
ステップ２．１１は、行き先ファイル（複数可）の固定型または携帯型記憶媒体への書き込みの確定に関する。復元プロセスに関与する一時データファイル（複数可）及びアクティブメモリ中の行き先ファイル（複数可）は、組み合わされて、固定型または携帯型記憶媒体に書き込まれる。行き先ファイル（複数可）は、ここでは、固定型または携帯型記憶媒体から必要に応じてアクセスされ得るデータファイルとして存在する。
【０１００】
ステップ２．１２は、ソースファイル及び出力データファイルを閉じる。ソースファイル及び出力データファイルは、アクティブメモリからリリースされる。復元プロセスに関与する一時データファイルは、固定型または携帯型記憶媒体から削除される。
【０１０１】
ステップ２．１３は、視覚表示が選択された場合（ステップ２．３）の表示ウィンドウの作成に言及する。行き先ファイルを閲覧することができるアクティブメモリにおけるプロセスを作成する。
【０１０２】
ステップ２．１４は、復元された行き先ファイル（複数可）をステップ２．１３で作成されたビューワウィンドウに出力することに言及する。復元プロセスに関与する一時データファイル（複数可）及びアクティブメモリ中の行き先ファイル（複数可）は、組み合わされ、ビューワウィンドウにおける閲覧に備えられる。これは、検査、内容の診断／審査のための視覚媒体のディスプレーへの伝送である。
【０１０３】
ステップ２．１５は、ソース行き先ファイル（複数可）及びビューアウィンドウを閉じる。行き先ファイル（複数可）及び表示ウィンドウは、アクティブメモリからリリースされる。復元プロセスに関与する一時データファイルは、固定型または携帯型記憶媒体から削除される。
【０１０４】
ステップ２．１６は、復元ソフトウェアを閉じる。復元ソフトウェアは、アクティブメモリからリリースされる。ソフトウェアの実行において使用されたいずれの一時ファイルも削除される。
【０１０５】
前述の説明では、ある特定の用語が、簡潔性、明確性、及び理解のために使用されてきた。かかる用語は、説明目的で使用され、広く解釈されることを意図しているため、不要な制限が、そこから先行技術の要件を越えて推測されるべきではない。本明細書に記載の異なる構成、システム、及び方法ステップを、単独で、または他の構成、システム、及び方法ステップと組み合わせて、使用してもよい。様々な等価物、代替物、及び修正が、添付の特許請求の範囲の範囲内で可能であることが予期される。
【図１】
2017513252.tif 000008
【図２】
2017513252.tif 000009
【図３】
2017513252.tif 000010
【国際調査報告】
2017513252.tif 000011