JP6818982B2 - ファイルを格納する方法 - Google Patents

ファイルを格納する方法 Download PDF

Info

Publication number
JP6818982B2
JP6818982B2 JP2017559552A JP2017559552A JP6818982B2 JP 6818982 B2 JP6818982 B2 JP 6818982B2 JP 2017559552 A JP2017559552 A JP 2017559552A JP 2017559552 A JP2017559552 A JP 2017559552A JP 6818982 B2 JP6818982 B2 JP 6818982B2
Authority
JP
Japan
Prior art keywords
block
file
identifier
item
storage
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.)
Active
Application number
JP2017559552A
Other languages
English (en)
Other versions
JP2018515852A (ja
Inventor
ワン、ケ
ザン、キアン
トゥオ、ウェイ
リアン、タイウェン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SZ DJI Technology Co Ltd
Original Assignee
SZ DJI Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SZ DJI Technology Co Ltd filed Critical SZ DJI Technology Co Ltd
Publication of JP2018515852A publication Critical patent/JP2018515852A/ja
Application granted granted Critical
Publication of JP6818982B2 publication Critical patent/JP6818982B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1727Details of free space management performed by the file system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

従来のファイル・システムは、短時間で正確かつ効率的に大量のデータをキャプチャすることが不可能である。特に、メモリ・アーキテクチャのストレージ能力が、ファイル取り込み速度をコンテンツ取得速度に一致させる能力を欠如するとき、ファイルと関連した大量のデータのキャプチャは、エラーをもたらす可能性がある。この欠如は、画像キャプチャ・デバイスが最大限にそれらの記録機能を利用することを妨げる可能性がある。たとえば、十分なストレージ構造の欠如は、無人航空機(UAV)のような航空機と関連した画像キャプチャ・デバイスが、それらが記録することができる情報量を最大化しないようにする可能性がある。
ストレージ・システムのリンクした構造を使用し、ファイルを効率的に格納して読み出すシステム及び方法を提供する。ファイルからのデータとして格納する大容量ファイルが複数の切断されたストレージ領域内に格納されるとき、従来のファイル・システムは、大量のオーバーヘッドを必要とする可能性がある。しかしながら、本発明によるストレージ構成方法及びシステムを使用すると、データの格納速度をファイル・サイズとは無関係にすることにより、ファイルのアップロード速度を正規化し得る。
加えて、ファイルは、高速読み取りを提供する方式で格納され得る。特に、ファイルは、読み出し要求を受信したときに、ファイルの位置(複数を含む)を検索するプロセスを省くように格納され得る。対照的に、一般に従来のファイル・システムは、ファイルの読み取り前に、格納されたファイルの位置を検索する処理ステップを必要とする。しかしながら、本発明によるストレージ構成方法及びシステムを使用すると、同様に、データの読み取りをファイル・サイズとは無関係に行うことにより、ファイルの読み出し速度を正規化し得る。
本発明の態様は、ファイルを格納する方法を有し得る。この方法は、ファイルを受信するステップを備え得る。また方法は、ファイルを格納するために必要な複数のアイドル状態のストレージ・ブロックを決定するステップを備え得る。複数のアイドル状態のストレージ・ブロックの各アイドル状態のストレージ・ブロックは、ブロックID識別子ユニットに対応する。加えて、各ブロックID識別子ユニットは、つぎのアイドル状態のストレージ・ブロックのブロック識別子を格納することで、複数のアイドル状態のストレージ・ブロック間のリンク関係を形成する。さらに、ファイルは、複数のアイドル状態のストレージ・ブロック間のリンク関係により、複数のアイドル状態のストレージ・ブロックに格納される。
さらに本発明の態様は、ファイルを読み出す方法を有し得る。この方法は、インデックス・ノードを読み出すステップを備え得る。このインデックス・ノードは、ファイルを格納する複数のストレージ・ブロックと関連した複数のブロック識別子を格納する。加えて、方法は、ファイルを格納する複数のストレージ・ブロックを読み出すステップを備え得る。
本発明の追加の態様は、ブロック領域でアイドル状態のストレージ・ブロックをリンクさせる方法を有し得る。この方法は、複数のアイドル状態のストレージ・ブロックを含むブロック領域を提供することを備え得る。複数のアイドル状態のストレージ・ブロックの各アイドル状態のブロックは、複数のブロック識別子の1つのブロック識別子と関連する。加えて、方法は、ブロック・インデックスで複数のブロック識別子の各ブロック識別子を記載し、各ブロック識別子を対応するコンテンツと関連付けることを備え得る。対応するコンテンツは、複数のブロック識別子の固有のブロック識別子を格納して、ブロック識別子を固有のブロック識別子とリンクさせることで、複数のブロック識別子をリンクさせる。
さらに本発明の態様は、画像ストレージ・システムで利用可能なストレージを増加させる方法を有し得る。この方法は、第二アイドル状態のストレージ・ブロックを参照する第二ブロック識別子として現在操作可能なブロック識別子を識別するステップを備え得る。また方法は、第一ブロック識別子と関連する占有されたストレージ・ブロックが、アイドル状態になっていることを判定するステップを備え得る。加えて、方法は、第二ブロック識別子から第一ブロック識別子へ現在操作可能なブロック識別子を更新するステップを備え得る。また方法は、ブロック・インデックスに第一ブロック識別子を記載して、第二ブロック識別子を格納する第一コンテンツと第一ブロック識別子を関連付けるステップを備え得る。第二アイドル状態のストレージ・ブロックの第二位置は、第一アイドル状態のストレージ・ブロックの位置とは無関係である。
本発明の様々な態様は、個別に、集合的に、または相互に組み合わせて認識され得ることを理解されたい。本明細書において説明する本発明の様々な態様は、以下に記載する任意の特定の用途、または任意の他のタイプの可動物体に適用し得る。航空機に関する本発明の任意の説明は、さらに、空中運動(例えば、飛行)の文脈において本明細書で説明するシステム、デバイス、および方法は、また、地上もしくは水上の運動、水中の運動、または宇宙での運動などの他のタイプの運動の文脈においても適用可能である。
本発明の他の目的及び特徴は、明細書、特許請求の範囲、及び添付の図面の検討により明らかになるであろう。
参照による組込み
本明細書において言及される全ての刊行物、特許、および特許出願は、個別の刊行物、特許、または特許出願のそれぞれが具体的にかつ個別に示され参照により組み込まれるのと同程度に、参照によって本明細書に組み込まれる。
本発明の新規の特徴は、添付する特許請求の範囲において、詳細に示される。本発明の特徴及び利点は、本発明の原理を利用する例示的な実施形態を示す以下の詳細な説明、および以下の付随する図面を参照することによって、より深く理解されるであろう。
本発明の実施形態に従い、メモリ・アーキテクチャ・システムの例示的な構造を説明する図である。 本発明の実施形態に従い、メモリ・アーキテクチャ・システムの例示的なスーパーセクタ構造を説明する図である。 本発明の実施形態に従い、メモリ・アーキテクチャ・システムの例示的なディレクトリ・テーブル構造を説明する図である。 本発明の実施形態に従い、メモリ・アーキテクチャ・システムの例示的なディレクトリ項目構造を説明する図である。 本発明の実施形態に従い、メモリ・アーキテクチャ・システムの例示的なインデックス・ノード・テーブル構造を説明する図である。 本発明の実施形態に従い、インデックス・ノードの例示的なデータ構造を説明する図である。 本発明の実施形態に従い、ブロック・インデックスの例示的な構造を説明する図である。 本発明の実施形態に従い、メモリ・アーキテクチャ・システムのコンポーネント間の例示的な相互作用の概略図である。 本発明の実施形態に従い、ブロック・インデックス及びストレージ・ブロック領域間の関係を説明する図である。 本発明の実施形態に従い、メモリ・アーキテクチャ・システムのファイル・ストレージのための例示的な概略図である。 本発明の実施形態に従い、メモリ・アーキテクチャ・システムのファイル・ストレージのための別の例示的な概略図である。 本発明の実施形態に従う方法を実現するためにプログラミングされる、あるいは構成されるコンピュータ制御システムのブロック図である。 本発明の実施形態に従ってファイルを格納する方法のステップを示すフローチャートである。 本発明の実施形態に従ってファイルを読み出す方法のステップを示すフローチャートである。 本発明の実施形態に従い、画像ストレージ・システムで利用可能なストレージを増加させる方法のステップを示すフローチャートを説明する。
本発明は、データを効率的にキャプチャし、格納し、読み取ることに関連したシステム、方法、及びデバイスを提供する。特に、データの取得速度を遅らせないために、大量のデータをアップロードして格納するファイル構造を提供する。加えて、ファイル・データを格納する位置(複数を含む)を検索することに関連するオーバーヘッド・コストを有することなく、データを読み取るファイル構造を提供する。これらのシステム及び方法は、画像データのような、大量のデータを急速にアップロードし、格納し、読み取るために使用され得る。加えて、画像データは、無人航空機(UAV)により取得され得る。特に、本発明は、ウルトラハイスピード・カメラのためのファイル・システム構成に関し得る。本明細書に示されるシステム及び方法は、UAVに設置されたこれらのような、デジタル・カメラまたは同様のデバイスに適用され得る。UAVは、UAVに接続されたメディア・キャプチャ・デバイスを使用して画像情報をキャプチャするように構成され得る。
本明細書に示されるストレージ構成方法及びシステムを使用すると、画像のアップロード速度は、ファイリング・システムの構造に基づき正規化され得る。そして、これは、定常画像キャプチャを可能にする、という利点を持ち得る。これは、大容量のファイルを読み出す、または書き込むときのような、ファイルを読み出す、または書き込むときに高い内部オーバーヘッドを有することがある他のシステムとは対照的である。特に、ビデオをキャプチャする従来のシステムは、ファイルの書き込み速度がファイルのサイズ、ファイル・システム・オーバーヘッド、及びメモリ・デバイスの実際の書き込みオーバーヘッドに依存した構成方法を利用した。この関係は、方程式、
速度=(ファイル・サイズ)/((ファイル・システム・オーバーヘッド)+(実際の書き込みオーバーヘッド))
として表される。
上記の方程式に従い、ファイルを書き込むファイル・システムを構成する従来の方法を使用して、異なるサイズを有するファイルを書き込む速度は、ファイル・サイズが異なるので、同じファイル・システムによりファイルが書き込まれたとしても、潜在的に異なる。対照的に、本発明によるメモリ・アーキテクチャ・システムは、ファイルの書き込み速度が、そのファイル・サイズとは無関係である。特に、本発明の実施形態に示す、このメディア・キャプチャ・デバイス・ファイル・システムは、ファイル書き込み構造を使用して、各アイドル状態のブロックが等しくリンクして、等しくアクセス可能である。したがって、ファイルの書き込み速度とは無関係にファイル・サイズを効率的に用意することが可能である。本発明は、この方式でアイドル状態のストレージ・ブロックをリンクさせるファイル構造を提供する。この方式では、アイドル状態のストレージ・ブロック内のファイル・コンポーネントの格納速度は、ストレージ・ブロックの位置とは無関係である。さらに、また本発明の実施形態は、ファイルの読み出し要求を受信する場合に、ファイルの位置を検索するシステムを必要とせず、ファイルの位置を参照するディレクトリを格納するシステムを提供する。この方式による実施形態は、ファイルの読み出し及び書き込みのためのオーバーヘッドを減少させ得る。特に、提供された実施形態は、ディレクトリのアドレス指定用のオーバーヘッド、ファイル作成用のオーバーヘッド、及びアドレス検索用のオーバーヘッドを減少させ得る。したがって、本発明の実施形態のファイル・システム構成を使用すると、メモリ・デバイスの実際の読み出し書き込み速度は、特に、その他の方法で従来のファイル書き込みシステム上の負担になる大量のデータを取得するときに、最大化され得る。
本明細書に示すようなメモリ・アーキテクチャ・システムは、任意の種類のファイルを格納するために使用され得る。このファイルは、画像、ビデオ、ドキュメント、レポート、オーディオ・ファイル、または他の例を含み得る。さらに、ファイルは、大容量ファイルであってもよい。ファイル・サイズは、6K画像の30Mであってもよい。ファイル・サイズは、8K画像の60Mであってもよい。本明細書に記載する実施例に示されるように、格納されるファイルは、カメラのような、メディア・キャプチャ・デバイスから得られて良い。カメラに格納されたファイルは、通常の画像である。4K及び10ビットを有する画像の実施例において、RAW画像は、10.5Mのメモリ帯域幅を必要とする可能性がある。フレーム・レートが1秒あたり60フレームであり、画像が圧縮されない場合、つぎに合計640Mのデータが、画像取得期間中に毎秒ハードディスクに格納され得る。しかしながら、従来のシステムを使用する、メディア・キャプチャ・デバイスの伝送速度は、その利用率が30%から40%の間であり得る。この見落とされたリソースの活用のために、本明細書における実施形態は、ファイル・システムの内部オーバーヘッドを減少させ、メモリ・デバイスの帯域幅の利用を増加させることが可能なカメラ、または同様の効果を有するファイル・システム構成を開示する。
本明細書におけるシステム及び方法は、メモリ・アーキテクチャ構造のディスク・ストレージ構造、または「ファイル・システム」を開示する。特に、ファイル・システムの内部オーバーヘッドを減少させ、メモリ・デバイスの帯域幅の利用を増加させることが可能であるファイル・システム構成を提供する。このファイル構成は、ハイスピード画像キャプチャ・デバイスのような、画像キャプチャ・デバイスに適用されたときに、特に有利である。一般に高速で画像を取得することは、大量の帯域幅を取る。画像取得中にファイル・システムの内部オーバーヘッドを減少させることで、画像自体の取得に割り当てられる帯域幅の量は、増加し得る。これは、結果的に、画像取得の信頼性を高め得る。このようなものとして、本明細書で説明されたディスク・ストレージ構造の実施形態は、画像ファイル、メディア・ファイル、マルチメディア・ファイル、及びデータの迅速な取得と関連する他の形式のコンテンツの取得に適用され得る利点がある。
図1は、本発明による実施形態のファイル・システム構造を示す図である。特に、図1は、本発明の実施形態に従う、メモリ・アーキテクチャ・システムの例示的な構造100を示している。図1には、スーパーセクタ110、ディレクトリ・テーブル120、インデックス・ノード・テーブル130、ブロック・インデックス140、及びブロック領域150が含まれている。
ファイル・システムと関連する情報は、スーパーセクタ110に記録され得る。スーパーセクタ110は、鍵情報領域である。ディスク情報及びシステムのブート処理の際に使用される情報は、スーパーセクタ110に記録され得る。特に、ディスク情報及びシステムのブート処理の際に使用される情報は、メモリ・アーキテクチャ・システム自体を実行することに関連する情報を有し得る。ストレージ・ブロック領域に格納された情報はシステム内に格納される画像または他のデータに関連し得る。ストレージ・ブロック領域内に格納された情報は、システム自体を実行する際に使用される情報と相互作用し得ない場合、ディスク情報及びシステムのブート処理の際に使用される情報に含まれ得ない。図2には、スーパーセクタ110の構造の実施例が示されている。さらに、ディレクトリに関連する情報は、ディレクトリ・テーブル120に記録され得る。特に、ディレクトリに関連する情報は、ディレクトリ項目情報を含み得る。図3には、ディレクトリ・テーブルの実施例が示され、図4には、ディレクトリ項目構造の実施例が示されている。
加えて、ファイル自体に関連する情報は、インデックス・ノード・テーブル130に記録され得る。図5には、インデックス・ノード・テーブルの実施例が示され、図6には、インデックス・ノードのデータ構造の実施例が示される。さらに、ストレージ・ブロックに関連する情報は、ブロック・インデックス140に記録され得る。図7には、ブロック・インデックスの例示的なデータ構造が示される。ストレージ・ブロックに関連してブロック・インデックスに格納される情報は、互いにリンクし得る。加えて、画像ファイルのような、ファイルのファイル・コンポーネントは、ブロック領域150に格納され得る。ここで、ブロック領域は、データ・ストレージ領域であり得る。
図2は、本発明の実施形態に従い、メモリ・アーキテクチャ構造の例示的なスーパーセクタ構造200、または「ファイル・システム」を説明する図である。ファイル・システムと関連する情報は、鍵情報領域である、スーパーセクタに格納され得る。スーパーセクタ構造200は、ディスク・サイズ210を有する。このディスク・サイズ210は、ディスク上でローカルに利用可能であるストレージ量、第三者データを格納するために利用可能であるストレージ量、複数のメモリ・デバイス間でファイル・システムによりアクセス可能であるストレージ量、または他の実施例を参照し得る。加えて、ディレクトリ・テーブル・サイズ215及びジョイン・ポイント・テーブル・サイズ220は、スーパーセクタ構造200に含まれ得る。ジョイン・ポイント・テーブル220は、同じデータベース内の2つ以上のテーブルから共通フィールドを含むデータベース・テーブルを参照し得る。加えて、既存のディレクトリ数225及び最後に作成されたディレクトリの識別子230は、スーパーセクタ構造200に含まれ得る。既存のディレクトリ数225及び最後に作成されたディレクトリ230は、新規のディレクトリの可用性を判定するために、及び、新規のディレクトリに割り当てる参照番号を決定するために、それぞれ使用され得る。またスーパーセクタ構造200は、現在操作可能なインデックス・ノードの識別子235、アイドル状態のブロック数240、最終更新時刻245、ブロック・サイズ250、現在操作可能なブロック識別子255、またはターミネータ260の少なくとも一つを含み得る。現在操作可能なインデックス・ノードの識別子235は、画像ファイルと関連したデータを格納する位置を示すことが可能である。特に、インデックス・ノードは、ファイルのディスクリプションを格納するために使用され得る。現在操作可能なインデックス・ノード識別子235は、アイドル状態であるインデックス・ノード・テーブルで第一インデックス・ノードを指し得る。加えて、アイドル状態のブロック数240は、ディスク・サイズ210及びブロック・サイズ250に基づき決定される。さらに、現在操作可能なブロック識別子255は、ファイルのファイル・コンポーネントを格納する位置を示すことが可能である。特に、現在操作可能なブロック識別子255は、ブロック領域でアイドル状態のストレージ・ブロックに対応する第一ブロック識別子を指し得る。加えて、ターミネータは、ファイル・システムが存在するかどうかの予備的な検出のために使用され得る。
図3は、例示的なディレクトリ・テーブル300を説明する図である。特に、ディレクトリ情報は、ルート・ディレクトリ・テーブル300に記録され得る。実施例において、ファイル・システムは、2つのディレクトリ・テーブル、ルート・ディレクトリ300及びシーケンス・ファイル・ディレクトリ310,320を含み得る。ディレクトリ・レベルは、シーケンス・ファイルを区別するために使用され得る。実施例において、ディレクトリは、フォト・アルバムのような、1セットのファイルを格納するために使用され得る。この実施例の下で、シーケンス・ファイル・ディレクトリ310は、ハワイ旅行に関連する写真を格納するために使用され得る。各写真、または画像ファイルは、インデックス・ノード・ファイルに格納された写真に関する情報を含み得る。そして、インデックス・ノード・ファイルの各々は、シーケンス・ファイル・ディレクトリ310により参照され得る。加えて、ルート・ディレクトリ300により参照されたシーケンス・ファイル・ディレクトリ数は、予測可能であり得る。
さらに、ディレクトリ・テーブル120は、ディレクトリ項目を含み得る。各ディレクトリ項目は、特定のデータ構造を含み得る。したがって、図4は、ディレクトリ項目400の例示的なデータ構造を説明する。特に、図4で説明されるようなディレクトリ項目400は、ディレクトリ識別子405、ディレクトリ名410、ディレクトリ中のインデックス・ノード数415、開始インデックス・ノード番号420、終了インデックス・ノード番号425、チャンネル数430、データ・ストレージ形式435、作成時間440、または最終更新時間445の少なくとも一つを含む。旅行中に取られた写真のアルバムの実施例を使用すると、開始インデックス・ノード番号420は、アルバムの最初の写真と関連し、終了インデックス・ノード番号425は、アルバムの最後の写真と関連し得る。加えて、ディレクトリのインデックス・ノード数415は、アルバムの写真の総数と関連し得る。
図5は、本発明の実施形態に従い、メモリ・アーキテクチャ・システムの例示的なインデックス・ノード・テーブル500の構造を示す図である。インデックス・ノード・テーブル500は、2つのインデックス・ノード510,520を含む。各インデックス・ノードは、ファイルと関連し得る。さらに、各インデックス・ノードは、格納されたファイルのファイル・コンポーネントの位置(複数を含む)を格納するために使用され得る。加えて、図6は、本発明の実施形態に従い、インデックス・ノード600の例示的なデータ構造を説明する図である。特に、図6は、データ・サイズ605を含む。データ・サイズ605は、4つの素子のアレイを含み得る。加えて、図6は、作成時間610、インデックス・ノード中のブロック数615、またはインデックス・ノード中のブロックのインデックス・アレイ620の少なくとも一つを含み得る。この方式で、読み出しファイルを受信してファイルを読み出すときに、ファイルに関連した情報を格納しているインデックス・ノードを識別し、インデックス・ノードに格納される情報に基づき、ファイルと関連するファイル・コンポーネントの位置を識別し得る。
図7は、ブロック・インデックス740を含む例示的な構造700を示す図である。特に図7は、ブロック領域750内のブロックに対応するブロック・インデックス740を含む構造700を説明する。データ構造700は、メモリ・アーキテクチャ構造であってもよい、データ構造700は、鍵情報領域710、データ・テーブル720、及びインデックス・ノード・テーブル730を含む。図7で示されるように、ブロック・インデックス740は、ブロックID識別子ユニット745のような、ブロックID識別子ユニットの大きなアレイとしてみなされ得る。アレイ・サイズ、またはブロック・インデックス740は、ブロック領域750中のストレージ・ブロック数755に等しくてもよい。特に、ブロック・インデックス740内の各ブロックID識別子ユニットは、ブロック領域750中のストレージ・ブロックに対応し得る。
加えて、ブロック・インデックス中の各ブロックID識別子ユニットは、その対応するストレージ・ブロックを占有するかどうか、及びブロックがアイドル状態である場合にどのストレージ・ブロックがこのブロックにリンクするつぎのアイドル状態のブロックであるか、少なくとも1種類の情報を記録し得る。特に、各ブロックID識別子ユニットは、(1)つぎのアイドル状態のストレージ・ブロックのためのブロック識別子、または(2)ブロックID識別子ユニットに対応するストレージ・ブロックを占有するインジケータを記録し得る。(1)の実施例は、図7に図示され、ブロックID識別子ユニット745はコンテンツ746を含む。特に、コンテンツ746は、つぎのブロック識別子を識別する数字の「1」である。加えて、ブロック・インデックス内の各ユニットは、ブロック・インデックス内で接続された構造を形成する、別のユニットにリンクする。このインクリメンタル・リンクした構造は、画像取得中にデータの迅速な格納を可能にし得る。加えて、ストレージのために以前に使用されたブロックがリンクした構造に再統合され得るような画像をもはや必要としないときに、リンクした構造は、再現可能であり得る。特に、以前に占有されたストレージ・ブロックがアイドル状態になるときに、新規のアイドル状態のストレージ・ブロックに対応するブロック識別子は、現在のアイドル状態のストレージ・ブロック識別子を置換し、そのコンテンツ内にそのブロック識別子への参照を置き得る。
実施例において、占有されるストレージ・ブロックに対応するブロックID識別子ユニットは、ストレージ・ブロックを占有するインジケータを提示し得る。実施例において、このインジケータは、ストレージ・ブロックを占有することを図示する、「0xFFFFFFFFF」のような表現であってもよい。インジケータは、「占有された」、または占有されたストレージ・ブロックと関連する別の語句のような、別の表現の形式であってもよい。ストレージ・ブロックがアイドル状態であるときでも、ブロックID識別子ユニットは、数値を提示し得る。特に、ブロックID識別子ユニットは、ブロックID識別子ユニットにリンクする別のブロック識別子に対応するブロック識別子を提示し得る。
ブロック・インデックス構造の実施例において、マッピング構造の2つのレベルを提供し得る。特に、マッピングの第一レベルは、ディレクトリ・テーブルからジョイン・ポイント・テーブルへのマッピングであってもよい。加えて、マッピングの第二レベルは、ジョイン・ポイント・テーブルからストレージ・ブロック・テーブルへのマッピングであってもよい。ストレージ・ブロック・テーブルは、コンセプト・テーブルであってもよい。さらに、ブロック・インデックス・ストレージ及びシーケンス・ストレージに関連した、さまざまな実施形態が、本明細書で説明された実施形態に提案され得る。特に、メモリ・デバイスのアイドル状態のブロックは、ブロック・インデックスを使用してリンクし得る。加えて、占有されたブロックと関連する情報は、記録され得る。
併せて、さらに以下で説明されるように、インクリメンタル・ストレージを可能にする構造は、格納されるオブジェクトが画像自体よりもハイスピード・カメラから記録された画像にアクセスするための潜在的なディレクトリであるように使用され得る。特に、格納されたオブジェクトは、以前に格納された画像を検索して読み出す方式のためのクイック・リファレンスであってもよい。ストレージのこの構造は、特に近接していなくてもよいストレージ・ブロック数の全体に、格納された画像ファイルを格納するときに、格納された画像ファイルを検索するために必要な時間及び帯域幅の量を大幅に減少させる。この方式で、本明細書で説明された実施形態は、ファイルを書き込むときにオーバーヘッドを最小化し、既に格納されているファイルを検索して読み出すために必要な労力を最小限に抑える構造を提供する。
ファイルを格納するためにアイドル状態のストレージ・ブロックを互いにリンクさせる実施例は、ファイルを受信する前に開始され得る。特に、複数のアイドル状態のストレージ・ブロックを含むブロック領域を提供し得る。複数のアイドル状態のストレージ・ブロックの各アイドル状態のストレージ・ブロックは、複数のブロック識別子の1つのブロック識別子に対応し得る。加えて、ブロック・インデックス中の複数のブロック識別子の各ブロック識別子は、ブロックID識別子ユニットとして記載され、対応するコンテンツを含み得る。対応するコンテンツは、ブロック識別子を固有のブロック識別子とリンクさせる複数のブロック識別子の固有のブロック識別子を格納し得る。この方式で、複数のブロック識別子は、リンクされ得る。
追加の実施例において、複数のブロック識別子の第一ブロック識別子は、現在操作可能なブロック識別子として記載され得る。加えて、現在操作可能なブロック識別子は、現在アイドル状態のストレージ・ブロックを参照し得る。さらなる実施例において、現在のブロック識別子として記載されるブロック識別子は、別のブロック識別子のコンテンツに格納されなくてもよい。
メモリ・アーキテクチャ・システムのコンポーネントは、相互作用の複数の形式を有し得る。図8は、本発明の実施形態に従い、メモリ・アーキテクチャ・システム800のコンポーネント間の例示的な相互作用の概略図である。特に、図8において、メモリ・アーキテクチャ・システム800は、スーパーセクタ・コンポーネント805、ディレクトリ・コンポーネント810、インデックス・ノード・コンポーネント815、ブロック・インデックス・コンポーネント820、及びブロック領域コンポーネント825を有する。
スーパーセクタ・コンポーネント805は、鍵情報領域であってもよい。このように、スーパーセクタ・コンポーネント805は、メモリ・アーキテクチャ・システム800の他のコンポーネントに関連する情報を含み得る。特に、スーパーセクタ・コンポーネント805は、「インデックス・ノード識別子」として参照された、現在操作可能なインデックス・ノードの識別子、及び「ブロック識別子」として参照された、現在操作可能なブロックの識別子を含み得る。後者の関係は、図8に示される。図8には、スーパーセクタ・コンポーネント805からブロック・インデックス820へのコネクタ830が示されている。特に、コネクタ830は、ブロック・インデックス820からスーパーセクタ・コンポーネント805へ現在操作可能なブロック識別子を提供する。特に、スーパーセクタ・コンポーネント805に提供されるような現在操作可能なブロック識別子は、「tag_free 1(0x0F)」である。
また図8は、ブロック・インデックス820内での接続数を図示する。特に、図8に示されるように、現在操作可能なブロックは、「tag_free 1(0x0F)」である。ここで、「tag_free 1(0x0F)」は、ブロックID識別子ユニットであり、またブロック・インデックス820に提供されるようなブロックID識別子ユニットのリストは、ブロック・インデックスと言われ得る。ブロックID識別子ユニット間のリンク沿いに移動して、「tag_free 1(0x0F)」は、接続832を介してつぎの操作可能なブロック「tag_free 2(0x04)」へ接続される。その後、つぎの操作可能なブロック「tag_free 2(0x04)」は、さらにつぎに接続836を介してブロック・インデックス820のさらに下のスペースで操作可能なブロックに接続される、接続834を介してその後の操作可能なブロック「tag_free 3(0x11)」に接続される。それに応じて、図8のブロック・インデックス820は、ブロックID識別子ユニット間のリンケージを示す。
加えて、図8は、ディレクトリ・コンポーネント810及びインデックス・ノード・コンポーネント815間の接続を示す。特に、ディレクトリ・コンポーネント810のディレクトリ項目は、接続840を介して、インデックス・ノード項目、「Inode_n1」、「Inode_mn」、及び「Inode_n2」を参照し得る。さらに、「Inode_mn」は、ブロック領域825のブロックへさらに接続され得る。特に、「Inode_mn」は、接続850を介してブロック領域825内の、ブロック、「Block_m1」、「Block_m2」、及び「Block_m3」へ接続されえ得る。このように、ディレクトリ・コンポーネント810のディレクトリ項目を識別すると、関連したインデックス・ノード項目は、ブロック領域825でブロックに格納されるファイル・コンポーネントの位置に関連した、格納された情報をさらに含み得るインデックス・ノード・コンポーネント815で識別され得る。
また図8は、ブロック領域825及びインデックス・ノード815のブロック間の1つ以上の接続を削除することで、ブロック領域のスペースを解放する能力を説明する。特に、インデックス・ノード・コンポーネント815は、一般的に接続850を介してブロック領域825へ接続される。具体的に、インデックス・ノード・コンポーネント815は、それぞれ、接続852,854、及び856を介してブロック領域825内のブロック、「Block_m1」、「Block_m2」、及び「Block_m3」へ接続される。接続852,854、及び856は、ブロック、「Block_m1」、「Block_m2」、及び「Block_m3」を占有することを示す。しかしながら、接続の内の1つ以上が切断される場合に、その後それぞれのブロックは、再びアイドル状態とみなされ得る。
ある実施例において、アイドル状態のブロックは、ファイル・コンポーネントを現在格納していないブロックを含み得る。他の実施例において、アイドル状態のブロックは、ファイル読み取りリファレンスに接続されないブロックを含み得る。第二の実施例において、このブロックは、アイドル状態を保ち得るが、ブロックが格納する新規のファイル・コンポーネントを割り当てられるまで、以前の画像ファイルの1部を格納し続け得る。格納する新規のファイル・コンポーネントがあるときに、ブロックは、以前のファイル・コンポーネント上に書き込むことで、その新規のファイル・コンポーネントを格納し得る。この方式で、ブロック領域は、所望の画像ファイルともはや関連しないすべての画像ファイル・コンポーネントを削除するために処理能力を費やすことを防ぐことができ、着信するファイルにストレージを割り当てることに、処理リソースを代わりに集中させ得る。
さらに格納されるファイルを受信する前に、メモリ・アーキテクチャ構造の構造上のコンポーネントは、確立され得る。特に、ファイル・システムが起動しているときに、プロセッサは、メモリへ、ブロック領域を除き、メモリ・アーキテクチャ構造の各ファイル構造コンポーネントと関連した情報を読み出し得る。さらに、システムは、情報が利用可能であるファイル構造内の情報をポピュレートし得る。たとえば、システムは、他の情報の内の、スーパーセクタ構造200の識別子225のような、最後に作成されたディレクトリの識別子、スーパーセクタ構造200の識別子230のような、現在操作可能なインデックス・ノードの識別子、及びスーパーセクタ構造200の識別子250のような、現在操作可能なブロックの識別子をポピュレートし得る。
加えて、ファイル・システムを初期化するときに、ファイル・システムと通信可能に接続される画像キャプチャ・デバイスは、キャプチャ・モードに入り得る。実施例において、ファイル・システムは、ファイル・システムが画像キャプチャ・デバイスに従事することに応答して開始されるように、画像キャプチャ・デバイス内に格納され得る。画像キャプチャ・デバイスがキャプチャ・モードを開始しているときに、新規のディレクトリは、ファイル・システムで作成され得る。特に、この新規のディレクトリは、固有のディレクトリ識別子を使用して生成され得る。加えて、ディレクトリ識別子は、スーパーセクタ構造200の識別子225により提供されるような、最後に作成されたディレクトリの識別子に基づき、この識別子から漸増的に増加し得る。
格納される新規の画像を受信する場合に、新規の画像の特性の数は、ファイル・システムに格納されるファイルに画像を書き込む前に判定され得る。特に、判定は、ファイル・システム内のブロック領域のいくつのブロックが画像により占有されるかに関して行われ得る。画像を格納するために必要なブロック領域のブロック数は、画像のサイズに基づき計算され得る。たとえば、画像を格納するために必要なブロック領域のブロック数は、全体的な画像サイズを測り、個々のブロック・サイズで全体的な画像サイズを分割することで判定され得る。結果の数値は、画像を格納するために必要なストレージ・ブロック数の指標となる。さらに、結果の数値が非整数である場合に(たとえば、結果の数値が2.5である場合に)、その後画像を格納するために必要なストレージ・ブロック数は、結果の数値からの連続であるつぎの連続する整数である。ストレージ・ブロックのサイズで分割された全体的な画像サイズが数値2.5をもたらす実施例において、画像を格納するために必要なストレージ・ブロック数は、つぎの連続する整数、3である。
更新される占有されたブロック数に関する情報は、計算されたブロック数に基づきファイル構造にポピュレートされ得る。特に、画像を格納するために必要なストレージ・ブロック数が判定されると、「インデックス・ノードのブロック数」のコンテンツ615は、インデックス・ノード・データ構造600で更新され得る。
加えて、画像データは、スーパーセクタ構造200の「現在操作可能なブロック」の識別子250のコンテンツに基づきブロック領域の所定のブロックに格納され得る。複数のブロックが画像を格納するために必要な場合、最初のブロックは、「現在操作可能なブロック」の識別子250のコンテンツに基づきブロック領域の所定のブロックに格納され得る。その後に、「現在操作可能なブロック」は、ブロック・インデックス140内のコンテンツに基づき、つぎの現在操作可能なブロックに更新され得る。最初のブロックを格納した後に、「現在操作可能なブロック」の識別子250は更新され、ブロック・インデックス140内のリンクに基づきインデックスが作成されるように、つぎのブロックに示す。加えて、ブロックを格納するたびに、ブロック・インデックスの対応する位置の値は、現在操作可能なブロックの識別子を格納するバリアントに割り当てられ得る。つぎに、ブロック・インデックスの対応する位置は、ブロックを占有するインジケータを含む場合に書き込まれ得る。このプロセスは、格納される必要がある、任意の残りの画像ファイル・コンポーネントのために繰り返される。そして、ファイル・システム内に格納される各画像ファイル・コンポーネントは、スーパーセクタ構造200の「現在操作可能なブロック」250として参照されるブロックへ格納される。
格納プロセス後に、スーパーセクタ構造200の現在操作可能なインデックス・ノードの識別子230を更新し得る。インデックス・ノード・テーブル130が連続したテーブルである実施例において、現在操作可能なインデックス・ノードのID230は、漸増的に増加し得る。実施例において、現在操作可能なインデックス・ノードのIDは、それが更新されるときに単一の整数で増加し得る。
ファイルを格納するために使用される書き込みプロセスの実施例は、ファイルを受信するときに開始され得る。ファイルを受信すると、ファイルを格納するために必要な複数のアイドル状態のストレージ・ブロックを決定し得る。ファイルを格納するために必要なアイドル状態のストレージ・ブロック数は、ファイル内のデータ量に基づき計算され得る。特に、ファイル内のデータ量は、ファイル・サイズに基づき測定され得る。
加えて、現在操作可能なインデックス・ノード識別子は、ファイル受信後に決定され得る。実施例において、現在操作可能なインデックス・ノードは、最新の占有されたインデックス・ノード識別子へ連続した増分を加えることで決定され得る。実施例において、連続した増分は、単一の整数であってもよい。加えて、画像ファイルについての情報は、インデックス・ノード内に格納され得る。たとえば、現在操作可能なインデックス・ノード内に格納されるような保持ブロック数は、画像ファイルを格納するために使用されるブロック数を反映するために更新され得る。特に、保持ブロック数は、ファイルを格納するために使用されたブロック数への参照を含み得る。
複数のアイドル状態のストレージ・ブロックの各アイドル状態のストレージ・ブロックは、複数のブロック識別子の1つのブロック識別子に対応し得る。各ブロック識別子は、固有のブロック識別子とブロック識別子をリンクさせる複数のブロック識別子の固有のブロック識別子を格納するコンテンツを含むことで、複数のアイドル状態のストレージ・ブロック間のリンク関係を形成する。加えて、ファイルは、複数のアイドル状態のストレージ・ブロック間のリンク関係により複数のアイドル状態のストレージ・ブロックに格納され得る。
特に、ファイルを格納するときに、現在操作可能なブロック識別子は、参照され得る。ファイルの画像ファイル・コンポーネントは、現在アイドル状態のストレージ・ブロックであるような、現在操作可能なブロック識別子により識別されるストレージ・ブロックに格納され得る。現在操作可能なブロック識別子は、最後に占有されたブロック識別子、及びブロック・インデックスで占有されたブロック識別子がリンクするブロック識別子に基づき決定され得る。
ブロックを格納するたびに、ブロック・インデックスの値を更新し得る。加えて、スーパーセクタに格納されるような現在操作可能なブロック識別子は、ブロックを格納するときに更新され得る。特に、スーパーセクタは、ディスク・システム構造を説明するために使用される情報セクタのテーブルであってもよい。
ファイルの格納後、現在操作可能なブロック識別子は、ファイルからのすべてのデータを格納した後に更新される。加えて、現在操作可能なインデックス・ノード識別子は、つぎに利用可能なインデックス・ノード識別子を反映するために更新され得る。特に、つぎに利用可能なインデックス・ノード識別子は、前の現在操作可能なインデックス・ノード識別子へ連続した増分を加えることで決定され得る。
他の実施例において、書き込みプロセスは、ファイルを受信する前にファイル・システムを初期化することで開始し得る。特に、ファイル・システムを初期化することは、現在操作可能なインデックス・ノード識別子を決定して記録することを備え得る。加えて、ファイル・システムを初期化することは、現在操作可能なアイドル状態のブロックを決定して記録することを備え得る。さらに、ディスク・システム構造を説明するためのテーブルは、メモリからハードディスクへ書き込まれ得る。実施例において、このテーブルは、1秒ごとにハードディスクに書き込まれることが可能である。
さらなる実施例において、使用される画像キャプチャ・デバイスは、可動物体上に設置され得る。可動物体は、無人航空機であってもよい。加えて、ファイルをキャプチャするステップは、UAVが飛行している間に行われ得る。実施例において、このファイルは、メディア・ファイル、画像ファイル、またはビデオ・ファイルであってもよい。
本明細書で開示された実施形態の利点は、画像を格納するために最適化されたファイル構造に基づき利用され得る効率的な読み出しプロセスである。特に、現在のシステムを使用して読み取られるファイルは、画像ファイル・コンポーネントの位置を測定するためにオーバーヘッドを必要としない。代わりに、現在の実施形態は、格納された画像コンポーネントの各位置を提供するディレクトリを格納することを対象とする。この方式で、画像ファイルを読み取るときに、画像ファイル・コンポーネントの位置を検索するために必要なオーバーヘッドがない。これは、特に画像ファイルまたはマルチメディア・ファイルに関して、ファイルを読み取ることと関連したオーバーヘッドが非常に大きい可能性がある、以前に設計されたファイル構造システムよりも有利である。本発明の実施形態は、画像ファイルを読み出すときに画像ファイル・コンポーネントの位置を測定することと関連したオーバーヘッドがないため、画像ファイル・コンポーネントの位置を測定することと関連した読み出しプロセスの部分は、ファイル・サイズと無関係である。
ファイル・システムが起動しているときに、メモリ・アーキテクチャ構造の構造上のコンポーネントは、確立され得る。特に、ファイル・システムが起動しているときに、プロセッサは、メモリへ、ブロック領域を除き、メモリ・アーキテクチャ構造の各ファイル構造コンポーネントと関連した情報を読み出し得る。さらに、システムは、情報が利用可能であるファイル構造内の情報をポピュレートし得る。たとえば、システムは、他の情報の内の、スーパーセクタ構造200の識別子225のような、最後に作成されたディレクトリの識別子、スーパーセクタ構造200の識別子230のような、現在操作可能なインデックス・ノードの識別子、及びスーパーセクタ構造200の識別子250のような、現在操作可能なブロックの識別子をポピュレートし得る。
システムを初期化すると、画像を読み出すコマンドは、ハードウェアにより発行され得る。加えて、コマンド文字列は、読み出される画像の位置を測定するためにソフトウェアにより分析され得る。しかし、本発明の実施形態において、画像ファイル・コンポーネントの位置は、ディレクトリを含み得る。このように、画像の位置のディレクトリがコマンド文字列に含まれるときに、ソフトウェアは、画像の位置を検索するためにさらに作業を行う必要がない。代わりに、ソフトウェアは、単純に、ディレクトリを開き画像の位置を探す必要がある。ソフトウェアは、ソフトウェアが画像と関連するディレクトリ項目を決定することを可能にするために画像と関連した番号にアクセスし得る。それに応じて、ソフトウェアは、ディレクトリ名によりディレクトリ・テーブルを探し得る。加えて、対応するディレクトリ項目を検索に基づき探し得る。さらに、画像を格納するための識別子は、ディレクトリ項目の開始インデックス・ノード番号及び終了インデックス・ノード番号によりインデックスを作成され得る。
この方式で、開始インデックス・ノード番号及び終了インデックス・ノード番号と関連したインデックス・ノードを分析することで画像の位置を探し得る。加えて、インデックス・ノードのブロック数及び各ブロックのインデックス識別子を読み出し得る。この情報に基づき、ブロック領域からの読み出しデータは、ブロック・インデックスにより読み出され得る。
ファイルにアクセスするために使用される読み出しプロセスの実施例は、読み出し要求を受信するときに開始され得る。読み出し要求を受信すると、読み出し要求と関連するインデックス・ノードを読み出し得る。このインデックス・ノードは、ファイルを格納する複数のストレージ・ブロックに対応する複数のブロック識別子を格納し得る。加えて、ファイルを格納する複数のストレージ・ブロックを読み出し得る。特に、インデックス・ノードに格納されるブロック識別子を使用して複数のストレージ・ブロックにアクセスし得る。
さらなる実施例において、複数のブロック識別子の第一ブロック識別子は、現在操作可能なブロック識別子として記載され得る。加えて、現在操作可能なブロック識別子は、第一ブロック識別子に対応する現在アイドル状態のストレージ・ブロックのような、現在アイドル状態のストレージ・ブロックを参照し得る。現在操作可能なブロック識別子として記載されるブロック識別子は、別のブロック識別子のコンテンツに格納されない可能性がある。特に、ブロック識別子は、ファイル・コンテンツを格納するためにつぎに利用可能であるブロック識別子を対象とするコンテンツを含み得る。ブロック識別子が現在操作可能なブロック識別子である場合には、現在操作可能なブロック識別子にマッチングするコンテンツを含むブロック識別子がない。加えて、現在操作可能なブロック識別子に対応するアイドル状態のストレージ・ブロックがファイル・コンポーネントを格納すると、ストレージ・ブロックは、もはやアイドル状態ではなく、現在操作可能なブロック識別子は、更新される。特に、現在操作可能なブロック識別子は、第一ブロック識別子から、ブロック・インデックスに記載される第二ブロック識別子へ更新される。
図9は、ストレージ・ブロック領域でアイドル状態のストレージ・ブロックをリンクさせるためのコンポーネント間の関係を示す図である。特に、図9は、本発明の実施形態に従い、ブロック・インデックス900及びストレージ・ブロック領域950間の関係を示す。特に、図9は、ブロックID識別子ユニット905,910,915,920、及び925を含むブロック・インデックス900を示す。各ブロックID識別子ユニット905,910,915,920、及び925は、それぞれ、ストレージ・ブロック領域950で、ストレージ・ブロック955,960,965,970,975に対応する。加えて、各ブロックID識別子ユニット905,910,915,920、及び925は、それぞれ、コンテンツ907,912,917,922、及び927を格納する。
ブロックID識別子ユニット915のような、ブロックID識別子ユニットが「占有された」とラベル付けされるコンテンツ917を含むときに、ブロックID識別子ユニット915に対応するストレージ・ブロック領域950内のストレージ・ブロックを占有する。図9に示されるように、ストレージ・ブロック965は、ブロックID識別子ユニット915に対応する。ブロックID識別子ユニット915のコンテンツ917は、「占有された」であるため、対応するストレージ・ブロック965は、同様に占有されているものとして網掛けされる。ストレージ・ブロックを占有すると、各占有されたストレージ・ブロックへの参照は、関連したファイルの位置情報を格納するインデックス・ノード内に格納される。たとえば、占有されたストレージ・ブロック、「ブロック1」及び「ブロック3」が同じファイルと関連したファイル・コンポーネントを格納した場合に、つぎにストレージ・ブロックの各々への参照は、共有されたインデックス・ノード、または「Inode」内に格納される。
インデックス・ノードがファイルのファイル・コンポーネントを格納するために使用されたストレージ・ブロックの位置への参照を格納するために、読み出し要求を受信してファイルを読み取るときに必要な検索がない可能性がある。むしろ、読み出し要求を特定のファイルのために受信するときに、関連したインデックス・ノードを決定し得、ファイル・コンポーネントを格納するストレージ・ブロックの位置を読み出す。この方式で、ファイルと関連した各位置への参照がファイルと関連した情報を格納するインデックス・ノード内に提供される場合に、ファイルの読み取り速度は、ファイル・サイズとは無関係である。
加えて、ブロック識別子910のような、ブロックID識別子ユニットが別のブロック識別子を参照するコンテンツを含むとき、ブロック識別子912に対応するストレージ・ブロック領域950内のストレージ・ブロックは、ブロックID識別子ユニット910に対応するストレージ・ブロックを占有すると、占有されるつぎのストレージ・ブロックである。図9に示されるように、「ブロックid2」として参照された、ブロックID識別子ユニット910に対応するストレージ・ブロックが占有されると、ファイル・コンポーネントにより占有される、つぎに続くストレージ・ブロックは、「ブロックid4」として参照された、ブロック識別子912である。この方式で、ブロック識別子は、リンクする。特に図9に示されるように、「ブロックid2」として参照されたブロックID識別子ユニット910は、「ブロックid4」として参照されたブロックID識別子ユニット920にリンクする。ここで、ブロックID識別子ユニット920は、「ブロックid5」として参照されたブロックID識別子ユニット925に次にリンクする。
図10及び11において、本明細書で説明された実施例にしたがってファイル構造を更新する実施例が示される。図10は、本発明の実施形態に従い、ファイル・コンポーネントのストレージ前のファイル・システムの概略図である。特に、図10は、ファイル・システム1010に格納され得るファイル・コンポーネント1005を含むファイル1000を示す。ファイル・コンポーネント1005は、ストレージ・ブロック領域1015のストレージ・ブロック1020に格納され得る。ストレージ・ブロック領域1015の各ストレージ・ブロック1020は、ブロック・インデックス1025に記載されるブロック識別子1030に対応する。各ブロック識別子1030は、ストレージ・ブロック領域1015のストレージ・ブロック1020に対応する。この関連付けは、図10で示され、「1」、「2」、「3」、及び「4」として参照されたブロックID識別子ユニット1030は、それぞれ、ストレージ・ブロック領域1015内で、「1」、「2」、「3」、及び「4」として参照されたストレージ・ブロック1020に対応する。
ファイル・コンポーネント1005は、ブロック・インデックス1025を介してストレージ・ブロック1020をリンクさせるファイル構造によりストレージ・ブロック領域1015に格納され得る。特に、ストレージ・ブロック1020は、ブロック・インデックス1025に記載されたブロックID識別子ユニット1030により参照される。さらに各ブロックID識別子ユニット1030は、後続のファイル・コンポーネントを格納するために使用され得るリンクしたブロックを参照するコンテンツ1035を含む。加えて、ファイル構造1010は、スーパーセクタ1040で現在操作可能なブロック識別子1045を参照することでファイル・コンポーネントを格納するために使用され得るストレージ・ブロック領域1015内でストレージ・ブロック1020を識別する。図10に示されるように、現在操作可能なブロック識別子1045は、「ブロック2」として参照される。このように、ファイル・コンポーネント1005は、ストレージ・ブロック領域1015内に「2」として参照されるストレージ・ブロック1020に格納される。さらに、ファイル・コンポーネント1005をストレージ・ブロック領域1015のブロック2に格納した後に、ブロック2に対応するブロックID識別子ユニット1030は、格納されているファイル1000と関連する現在のインデックス・ノード1050に格納される。
ファイル・コンポーネント1005がブロック2に格納されていると、つぎのファイル・コンポーネント1005は、ストレージ・ブロック領域1020の後続のストレージ・ブロックに格納される。「つぎのブロック4」として参照された、後続のストレージ・ブロックのブロックID識別子ユニット1030は、図10で示されるように、「2」として参照されたブロックID識別子ユニット1030のコンテンツ1035として識別可能である。つぎにこの後続のブロック識別子は、現在操作可能なブロック識別子1045を更新するために使用される。特に、図11は、ファイル・コンポーネントがストレージ・ブロック領域1015の「ブロック2」として参照されたストレージ・ブロック1020に格納された後に更新されたファイル・システム1000の概略図を示す。
図11に示されるように、現在操作可能なブロック識別子1045は、更新されていて、「ブロック4」として参照される。また現在のインデックス・ノード1050は、ファイル1000のファイル・コンポーネント1005がストレージ・ブロック領域1015の「ブロック2」として参照されたストレージ・ブロック1020に格納される場合に、「ブロック2」への参照を含むように更新されている。加えて、ストレージ・ブロック領域1020のブロック2は、ブロック2が今更新されることを示すために、アスタリスクを付けられて更新されている。さらに、「2」に対応するブロックID識別子ユニット1030のコンテンツ1035は、ストレージ・ブロック領域1015のブロック2が今占有される場合に、「占有された」を参照するように更新される。それに応じて、ファイル1000のつぎのファイル・コンポーネント1005は、現在操作可能なブロック識別子1045により識別される場合に、ストレージ・ブロック領域1015の「ブロック4」として参照されたストレージ・ブロック1020に格納される。
ファイルが格納されていると、それは、今後のある時点で、ファイル構造から削除される可能性がある。特に、以前に取得されて格納されているデータの保存上で追加データの取得にユーザが優先順位を付けるときに、ファイルは削除される可能性がある。実施例において、ファイルは、ストレージ・ブロック領域から削除される可能性がある。他の実施例において、ファイルの部分は、ファイル読み取りリファレンスから切断される可能性があり、後続のデータは、ファイルの部分を上書きする可能性がある。これが起こると、本発明のシステム及び方法により、画像ストレージ・システムで利用可能なストレージを増加させる。
特に、画像ストレージ・システムで利用可能なストレージを増加させる方法の実施例を提供する。この方法は、第二アイドル状態のストレージ・ブロックを参照する第二ブロック識別子として現在のブロック識別子を識別することを備える。また方法は、第一ブロック識別子に対応する占有されたストレージ・ブロックがアイドル状態になっていると判定することを備える。加えて、方法は、第二ブロック識別子から第一ブロック識別子へ現在のブロック識別子を更新することを備える。また方法は、ブロック・インデックスに第一ブロック識別子を記載すること、及び第二ブロック識別子を格納する第一コンテンツと第一ブロック識別子を関連付けることを備える。第二アイドル状態のストレージ・ブロックの位置は、第一アイドル状態のストレージ・ブロックの位置とは無関係である。
追加の実施例において、方法は、第三ブロック識別子に対応する第二アイドル状態のストレージ・ブロックがアイドル状態になっていることを判定することを備え得る。また方法は、第一ブロック識別子から第三ブロック識別子へ現在操作可能なブロック識別子を更新することを備え得る。加えて、占有されたストレージ・ブロックがアイドル状態になっている判定は、ストレージ・ファイルから占有されたストレージ・ブロックへの参照が削除されている表示を受信することを備え得る。さらに、占有されたストレージ・ブロックがアイドル状態になっている判定は、ストレージ・ブロック内に格納されたコンテンツが削除されている表示を受信することを備え得る。
本開示は、本開示の方法を実装するようにプログラミングされるコンピュータ制御システムを提供する。図12は、ビデオ・データを処理するように、プログラミングされる、またはその他の方法で構成されるコンピュータ・システム1201を示す。コンピュータ・システム1201は、たとえば、画像データをキャプチャし、ストレージ・データを書き込み、ストレージ・データを読み出すような、本開示の画像データを書き込み読み出すさまざまな態様を調節することが可能である。コンピュータ・システム1201は、画像キャプチャ・システムのプロセッサ、ユーザの電子機器、またはこの電子機器に関して遠隔に設置されるコンピュータ・システムであることが可能である。この電子機器は、携帯電子機器であることが可能である。
コンピュータ・システム1201は、並列処理のための、シングル・コアもしくはマルチ・コア・プロセッサ、または複数のプロセッサであることが可能である、中央処理装置(CPU、また、本明細書で、「プロセッサ」及び「コンピュータ・プロセッサ」)1205を含む。またコンピュータ・システム1201は、メモリまたはメモリ位置1210(たとえば、ランダム・アクセス・メモリ、読み出し専用メモリ、フラッシュ・メモリ)、電子ストレージ・ユニット1215(たとえば、ハードディスク)、1つ以上の他のシステムと通信する通信インタフェース1220(たとえば、ネットワーク・アダプタ)、及びキャッシュ、他のメモリ、データ・ストレージ、または電子ディスプレイ・アダプタの少なくとも一つのような周辺機器1225を含む。メモリ1210、ストレージ・ユニット1215、インタフェース1220及び周辺機器1225は、マザーボードのような、通信バス(実線)を介してCPU1205と通信する。ストレージ・ユニット1215は、データを格納するためのデータ・ストレージ・ユニット(またはデータ・リポジトリ)であることが可能である。コンピュータ・システム1201は、通信インタフェース1220を用いてコンピュータ・ネットワーク(「ネットワーク」)1230に操作可能に結合されることが可能である。ネットワーク1230は、インターネット、インターネット、またはエクストラネットの少なくとも一方、またはインターネットと通信するイントラネット、またはエクストラネットの少なくとも一方であることが可能である。ある場合、ネットワーク1230は、電気通信、またはデータ・ネットワークの少なくとも一方である。ネットワーク1230は、クラウド・コンピューティングのような、分散コンピューティングを有効にすることが可能である、1つ以上のコンピュータ・サーバを含むことが可能である。ネットワーク1230は、コンピュータ・システム1201を用いる場合に、クライアントまたはサーバとして動作するためにコンピュータ・システム1201へ接続されたデバイスを有効にし得る、ピアツーピア・ネットワークを実装することが可能である。
CPU1205は、プログラムまたはソフトウェアで実現することが可能である、機械可読インストラクションのシーケンスを実行することが可能である。このインストラクションは、メモリ1210のような、メモリ位置に格納され得る。インストラクションは、CPU1205を対象とすることが可能である。CPU1205は、本開示の方法を実行するために、後でプログラミングする、またはその他の方法で設定することが可能である、CPU1205で実行された操作の実施例は、フェッチ、復号、実行、及びライトバックを含むことが可能である。
CPU1205は、集積回路のような、回路の部分であることが可能である。システム1201の1つ以上の他のコンポーネントを、この回路に含めることが可能である。ある場合、回路は、特定用途向け集積回路(ASIC)である。
ストレージ・ユニット1215は、ドライバ、ライブラリ、及び保存されたプログラムのような、ファイルを格納することが可能である。ストレージ・ユニット1215は、ユーザ・データ、たとえば、ユーザ選好及びユーザ・プログラムを格納することが可能である。ある場合、コンピュータ・システム1201は、イントラネットまたはインターネットを介してコンピュータ・システム1201と通信するリモート・サーバ上に設置されるような、コンピュータ・システム1201の外部にある1つ以上の追加のデータ・ストレージ・ユニットを含むことが可能である。
コンピュータ・システム1201は、ネットワーク1230を介して1つ以上のリモート・コンピュータ・システムと通信することが可能である。たとえば、コンピュータ・システム1201は、ユーザのリモート・コンピュータ・システム(たとえば、ユーザ端末)と通信することが可能である。リモート・コンピュータ・システムの実施例は、パーソナル・コンピュータ(たとえば、ポータブルPC)、スレートもしくはタブレットPC(たとえば、Apple(登録商標) iPad(登録商標)、Samsung(登録商標) Galaxy Tab)、電話、スマートフォン(たとえば、Apple(登録商標) iPhone(登録商標)、Android(登録商標)対応デバイス、BlackBerry(登録商標))、またはパーソナル・デジタル・アシスタントを含む。ユーザは、ネットワーク1230を介してコンピュータ・システム1201にアクセスすることが可能である。
本明細書で説明されるような方法は、たとえば、メモリ1210または電子ストレージ・ユニット1215上のような、コンピュータ・システム1201の電子ストレージ位置上に格納された機械(たとえば、コンピュータ・プロセッサ)実行可能コードの方式で実装することが可能である。機械実行可能または機械可読コードは、ソフトウェア形式で供給できる。使用中に、コードはプロセッサ1205で実行できる。ある場合、コードは、ストレージ・ユニット1215から読み取ることができ、プロセッサ1205による迅速なアクセスのためにメモリ1210上に格納できる。ある状況において、電子ストレージ・ユニット1215は、排除することができ、機械実行可能インストラクションは、メモリ1210上に格納される。
コードは、コードを実行するように適合されたプロセッサを含む機械で使用するように、プリコンパイルされ設定することが可能である、または実行時にコンパイルすることが可能である。コードは、コードをプリコンパイル(pre−compiled)された、またはアズコンパイル(as−compiled)された方式で実行できるように選択されることが可能であるプログラミング言語で供給することが可能である。
コンピュータ・システム1201のような、本明細書で提供されたシステム及び方法の態様は、プログラミングの際に実現できる。技術のさまざまな態様は、機械可読媒体の一種に搬送される、またはこれで具現化される、機械(またはプロセッサ)実行可能コード、または関連データの少なくとも一つの形式で典型的には、「製品」または「製造物品」として考えられ得る。機械実行可能コードは、メモリ(たとえば、読み出し専用メモリ、ランダム・アクセス・メモリ、フラッシュ・メモリ)またはハードディスクのような、電子ストレージ・ユニット上に格納できる。「ストレージ」タイプのメディアは、ソフトウェア・プログラミングのためにいつでも非一時的なストレージを提供し得る、コンピュータ、プロセッサもしくは同様のものの有形メモリ、またはさまざまな半導体メモリ、テープ・ドライブ、ディスク・ドライブ等のようなそれらの関連モジュールのいずれか、またはすべてを含むことが可能である。ソフトウェアのすべてまたは部分は、インターネットまたは種々の他の電気通信網を介して時に通信され得る。このような通信は、たとえば、1つのコンピュータまたはプロセッサから別のものに、たとえば、管理サーバまたはホスト・コンピュータからアプリケーション・サーバのコンピュータ・プラットフォームにソフトウェアのロードを可能にし得る。このようにして、ソフトウェア要素を有し得る媒体の別の種類は、有線及び光固定電話網を介して、種々のエアリンク経由で、ローカル・デバイス間の物理的インタフェース間で使用されるような、光波、電波及び電磁波を含む。また、有線もしくは無線リンク、光リンク、または類似する波を搬送する物理的要素は、ソフトウェアを有する媒体としてみなされ得る。本明細書で使用されるように、非一時的な、有形の「記憶」媒体に制限されない限り、コンピュータまたは機械「可読媒体」のような用語は、実行のためにプロセッサへインストラクションを提供することに関わる任意の媒体を指す。
そのため、コンピュータ実行可能コードのような、機械可読媒体は、限定されないが、有形記憶媒体、搬送波媒体または物理的伝送媒体を含む、多くの形態をとり得る。不揮発性記憶媒体は、図面で示された、データベース等を実装するために使用され得るものとして、たとえば、任意のコンピュータ(複数を含む)または同様のもののストレージ・デバイスのいずれかのような、光または磁気ディスクを含む。揮発性記憶媒体は、このようなコンピュータ・プラットフォームのメイン・メモリのような、動的メモリを含む。有形伝送媒体は、コンピュータ・システム内にバスを含むワイヤを含む、銅線及び光ファイバの、同軸ケーブルを含む。搬送波伝送媒体は、無線周波数(RF)及び赤外線(IR)データ通信中に生成されるような、電気もしくは電磁信号、または音波もしくは光波の形態をとり得る。その結果、コンピュータ可読媒体の一般的な形態は、たとえば、フロッピ・ディスク、フレキシブル・ディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、CD−ROM、DVDもしくはDVD−ROM、任意の他の光媒体、パンチ・カード紙テープ、穴のパターンを含む任意の他の物理的記憶媒体、RAM、ROM、PROM及びEPROM、フラッシュEEPROM、任意の他のメモリ・チップもしくはカートリッジ、データもしくはインストラクションを搬送する搬送波、このような搬送波を搬送するケーブルもしくはリンク、またはコンピュータがプログラミング・コードまたはデータの少なくとも一1方を読み出し得る任意の他の媒体を含む。コンピュータ可読媒体のこれらの形態の多くは、実行用のプロセッサへ1つ以上のインストラクションの1つ以上のシーケンスを搬送する際に含まれ得る。
コンピュータ・システム1201は、電子ディスプレイ1235を含む、またはこれと通信することが可能である。電子ディスプレイ1235は、ユーザ・インタフェース(UI)1240を含む。ユーザ・インタフェース1240は、たとえば、ビデオを再生するユーザ端末、またはユーザがユーザ・インタフェース1240でビデオを編集することを可能にする。UIの実施例は、限定されないが、グラフィカル・ユーザ・インタフェース(GUI)及びウェブ・ベースのユーザ・インタフェースを含む。
本開示の方法及びシステムは、1つ以上のアルゴリズムにより実装できる。アルゴリズムは、中央処理装置1205で実行する場合に、ソフトウェアにより実装できる。アルゴリズムは、たとえば、ストレージ・ブロック領域内のストレージ・ブロックに対応するブロック識別子間のリンク関係を形成することで、効率的なストレージ・ブロック領域を作成できる。
いくつか実施形態において、本明細書で説明された実施形態で使用される画像キャプチャ・デバイスは、カメラであってもよい。加えて、このカメラは、UAVで使用される、これに取り付けられる、またはこれの構成部品であり得る。カメラは、堅固にUAVに接続され得る。あるいは、UAVに対してカメラが移動することを可能にし得る。ある場合に、UAVに関連して最大6度の自由度に関してカメラが移動することを可能にし得る。カメラは、UAV上に直接搭載され得る、UAV内に組み込まれ得る、またはUAV上に搭載された支持機構に接続され得る。ある実施形態において、支持機構は、ジンバルであってもよい。支持機構は、カメラが回転の1軸、2軸、3軸、4軸またはそれ以上の軸の周囲で回転することを可能にし得る。これは、カメラによりキャプチャされた視野を変更することを可能にし得る。ある実施形態において、カメラは、UAVの搭載物の要素であってもよい。
カメラは、UAV環境の画像をキャプチャし得る。画像は、静止画像(たとえば、スナップショット)またはビデオ画像の少なくとも一方を含み得る。カメラは、ビデオまたはスナップショットの少なくとも一1方を連続してキャプチャし得る。あるいは、カメラは、経時的に一連の画像データまたはビデオ・データの少なくとも一方を生成するために指定された周波数でビデオまたはスナップショットの少なくとも一方をキャプチャし得る。ある実施形態において、ビデオは、環境オーディオの録音と同時にキャプチャされ得る。
ある実施形態において、キャプチャされたビデオまたは画像の少なくとも一方は、UAVオンボードのメモリに格納され得る。メモリは、画像キャプチャ・デバイスにオンボードであってもよい、または画像キャプチャ・デバイスから分離されてもよい。メモリは、1つ以上のメモリ・ユニット(たとえば、セキュア・デジタル(SD)・カード、またはランダム・アクセス・メモリ(RAM)、または読み出し専用メモリ(ROM)、またはフラッシュ・メモリのような、リムーバブル・メディアまたは外部ストレージ)を含み得る非一時的なコンピュータ可読媒体を含み得る。あるいは、キャプチャされたビデオまたは画像の少なくとも一方は、遠隔端末に伝送され得る。キャプチャされたビデオまたは画像の少なくとも一方の伝送は、限定されないが、無線周波数(RF)リンク、Wi−Fiリンク、Bluetooth(登録商標)リンク、2Gリンク、3Gリンク、またはLTEリンクを含む、無線リンク経由で実現され得る。
カメラは、イメージ・センサ、及びレンズのような、1つ以上の光学素子を含み得る。1つ以上のレンズは、イメージ・センサへ光を向けるように構成され得る。イメージ・センサは、光画像を電子信号に変換するデバイスである。カメラのイメージ・センサは、電荷結合素子(CCD)タイプ、相補型金属酸化膜半導体(CMOS)タイプ、N型金属酸化膜半導体(NMOS)タイプ、または裏面照射型CMOS(BSI−CMOS)タイプであってもよい。任意選択で、イメージ・センサからの画像データは、画像キャプチャ・デバイスにオンボードまたはオフボードのメモリに格納してもよい。メモリは、UAVオンボードであってもよい。
光学系の焦点距離は、どのように強くシステムが光を収束する、または発散するかの計測である。光学レンズの焦点距離は、最初に平行光が焦点にもたらされる距離である。常用及びズームの2種類のレンズがある。常用レンズは、固定焦点距離を有することができ、焦点距離は、単焦点距離を含み得る。ズーム・レンズは、可変焦点距離を有し得、焦点距離は、複数の焦点距離を含み得る。ある実施形態において、カメラのレンズは、ズーム・レンズであってもよい。あるいは、カメラのレンズは、常用レンズであってもよい。
ある実施形態において、本発明の画像キャプチャ・デバイスに適切なズーム・レンズのための焦点距離範囲の下限値は、1mm、2mm、4mm、6mm、8mm、10mm、15mm、20mm、25mm、30mm、35mm、40mm、45mm、50mm、55mm、60mm、65mm、70mm、75mm、80mm、85mm、90mm、95mm、100mm、105mm、110mm、120mm、130mm、140mm、150mm、160mm、170mm、180mm、190mm、200mm、220mm、240mm、260mm、280mm、300mm、320mm、340mm、360mm、380mm、400mm、450mm、500mm、550mm、600mm、650mm、700mm、750mm、800mm、850mm、900mm、950mm、1000mm、もしくは1150mm以下でよい。任意選択で、本発明の画像キャプチャ・デバイスのための焦点距離範囲の下限値は、本明細書に記載された値のいずれか以下でよい。本発明の画像キャプチャ・デバイスに適切なズーム・レンズのための焦点距離範囲の下限値は、本明細書で記載された値の内の任意の2つ間の範囲内にある値を含み得る。
ある場合において、本発明の画像キャプチャ・デバイスに適切なズーム・レンズのための焦点距離範囲の上限値は、2mm、5mm、10mm、15mm、20mm、25mm、30mm、35mm、40mm、45mm、50mm、55mm、60mm、65mm、70mm、75mm、80mm、85mm、90mm、95mm、100mm、105mm、110mm、120mm、130mm、140mm、150mm、160mm、170mm、180mm、190mm、200mm、220mm、240mm、260mm、280mm、300mm、320mm、340mm、360mm、380mm、400mm、450mm、500mm、550mm、600mm、650mm、700mm、750mm、800mm、850mm、900mm、950mm、1000mm、1150mm、もしくは2000mm以下でよい。任意選択で、本発明の画像キャプチャ・デバイスに適切なズーム・レンズのための焦点距離範囲の上限値は、本明細書に記載された値のいずれか以下でよい。本発明の画像キャプチャ・デバイスに適切なズーム・レンズのための焦点距離範囲の上限値は、本明細書に記載された値の内のいずれか2つ間の範囲内にある値を含み得る。
ある場合において、本発明の画像キャプチャ・デバイスに適切な常用レンズの焦点距離は、1mm、2mm、4mm、6mm、5mm、6mm、8mm、10mm、12mm、14mm、16mm、18mm、20mm、22mm、24mm、26mm、28mm、30mm、35mm、40mm、45mm、50mm、55mm、60mm、65mm、70mm、75mm、80mm、85mm、90mm、95mm、100mm、105mm、110mm、120mm、130mm、140mm、150mm、160mm、170mm、180mm、190mm、200mm、220mm、240mm、260mm、280mm、300mm、320mm、340mm、360mm、380mm、400mm、450mm、500mm、550mm、600mm、650mm、700mm、750mm、800mm、850mm、900mm、950mm、1000mm、1150mm、もしくは1200mm以下でよい。任意選択で、本発明の画像キャプチャ・デバイスに適切な常用レンズの焦点距離は、本明細書に記載された値のいずれか以下でよい。本発明の画像キャプチャ・デバイスに適切な常用レンズの焦点距離は、本明細書に記載された値のいずれか2つの間の範囲内にある値を含み得る。
写真撮影において、視野(FOV)は、空間内の特定の位置及び向きでカメラを通してみえる世界の部分であり、写真を取るときにFOVの外側にあるオブジェクトは、写真に記録されない。それは、ほとんどの場合、画角として、ビュー・コーンの視野角として表現される。標準レンズについては、視野は、FOV=2arctan(d/2f)として計算されることが可能であり、dはイメージ・センサ・サイズであり、fはレンズの焦点距離である。固定サイズを有するイメージ・センサについては、常用レンズは、固定FOVを有し得、FOVは、単一のFOV角度を含み得る。固定サイズを有するイメージ・センサについては、ズーム・レンズは可変のFOV角度範囲を有し得、FOV角度範囲は、複数のFOV角度を含み得る。
ある場合において、本発明の画像キャプチャ・デバイスに適切な常用レンズのFOVは、170°、169°、165°、160°、155°、150°、145°、140°、135°、130°、125°、120°、115°、110°、105°、100°、95°、90°、85°、80°、75°、70°、65°、60°、55°、50°、45°、40°、35°、30°、25°、20°、15°、10°、5°、3°、2°、もしくは1°以下でよい。任意選択で、本発明の画像キャプチャ・デバイスに適切な常用レンズのFOVは、本明細書に記載された値のいずれか以下でよい。本発明の画像キャプチャ・デバイスに適切な常用レンズのFOVは、本明細書に記載された値のいずれか2つ間の範囲内にある値を有し得る。
ある場合において、本発明の画像キャプチャ・デバイスに適切なズーム・レンズのためのFOV角度範囲の下限値は、170°、169°、165°、160°、155°、150°、145°、140°、135°、130°、125°、120°、115°、110°、105°、100°、95°、90°、85°、80°、75°、70°、65°、60°、55°、50°、45°、40°、35°、30°、25°、20°、15°、10°、5°、3°、2°、もしくは1°以下でよい。任意選択で、本発明の画像キャプチャ・デバイスに適切なズーム・レンズのためのFOV角度範囲の下限値は、本明細書に記載された値のいずれか以下でよい。本発明の画像キャプチャ・デバイスに適切なズーム・レンズのためのFOV角度範囲の下限値は、本明細書に記載された値の内のいずれか2つ間の範囲内にある値を有し得る。
ある場合において、本発明の画像キャプチャ・デバイスに適切なズーム・レンズのためのFOV角度範囲の上限値は、170°、169°、165°、160°、155°、150°、145°、140°、135°、130°、125°、120°、115°、110°、105°、100°、95°、90°、85°、80°、75°、70°、65°、60°、55°、50°、45°、40°、35°、30°、25°、20°、15°、10°、5°、3°、2°、もしくは1°以下でよい。任意選択で、本発明の画像キャプチャ・デバイスに適切なズーム・レンズのためのFOV角度範囲の上限値は、本明細書に記載された値のいずれか以下でよい。本発明の画像キャプチャ・デバイスに適切なズーム・レンズのためのFOV角度範囲の上限値は、本明細書に記載された値のいずれか2つ間の範囲内にある値を有し得る。
画像キャプチャ・デバイスは、高解像度画像キャプチャ・デバイスであってもよい。ある実施形態において、画像キャプチャ・デバイスは、4K解像度を達成することが可能な4K画像キャプチャ・デバイスであってもよい。画像キャプチャ・デバイスは、約1000pixel、2000pixel、2500pixel、3000pixel、3500pixel、4000pixel、4500pixel、5000pixel、5500pixel、6000pixel、7000pixel、8000pixel、もしくは10000pixel以上の水平解像度を達成することが可能であり得る。ある場合において、画像キャプチャ・デバイスは、約4000pixel、6000pixel、8000pixel、10000pixel、12000pixel、15000pixel、20000pixel、もしくは300s00pixel以下の水平解像度を達成し得る。キャプチャされた画像のいずれかの水平解像度は、本明細書に記載された値のいずれかの間にあり得る。高解像度カメラは、それらがキャプチャされた解像度で画像をメモリ中に格納することが可能であり得る。あるいは、画像は、それらがキャプチャされたものよりもより低い解像度で格納され得る。画像は、本明細書に記載された解像度のいずれかのような、高解像度で格納され得る。
本発明に関わるシステム、装置、及び方法は、幅広い可動物体に適用できる。上述したように、UAV等の航空機に関する説明を、任意の可動物体に適用し使用することが可能である。本明細書における航空機の任意の説明は、UAVに特に適用し得る。本発明における可動物体は、空気中で(例えば、固定翼機、回転翼航空機、または固定翼も回転翼も有さない航空機)、水中で(例えば、船舶または潜水艦)、地上で(例えば、車、トラック、バス、バン、オートバイ、自転車等の自動車、杖、釣竿等の可動構造またはフレーム、または列車)、地下で(例えば、地下鉄)、宇宙で(例えば、宇宙飛行機、衛星、または宇宙探査機)等の任意の適切な環境の中で、またはこれらの環境の任意の組合せの中で移動きる。可動物体は、本明細書の他の箇所に説明される輸送機等の輸送手段であり得る。
可動物体は6自由度(例えば、並進で3自由度と回転で3自由度)に関する環境内で自由に移動可能であり得る。一方、可動物体の移動は、所定の経路、軌道、または位置等によって、1つ以上の自由度に関して制約されることがある。移動は、エンジンまたはモータ等の任意の適切な作動機構によって実現できる。可動物体の作動機構は、電気エネルギー、磁気エネルギー、太陽エネルギー、風力エネルギー、重力エネルギー、化学エネルギー、核エネルギー、またはその任意の適切な組合せ等の任意の適切なエネルギー源によって電力を供給され得る。可動物体は、本明細書の他の箇所に説明されるように、推進システムを使用する自走式であり得る。また、推進システムは、電気エネルギー、磁気エネルギー、太陽エネルギー、風力エネルギー、重力エネルギー、化学エネルギー、核エネルギー、またはその任意の適切な組合せで操作し得る。また、可動物体は生物によって支持され得る。
場合によっては、可動物体は航空機であり得る。例えば、航空機は固定翼機(例えば、飛行機、グライダー)、回転翼航空機(例えば、ヘリコプター、回転翼機)、固定翼と回転翼の両方を有する航空機、またはどちらも有さない航空機(例えば、小型飛行船、熱気球)であり得る。航空機は、空気中を自己推進する等、自走式であり得る。自走式車両は、1つ以上のエンジン、モータ、車輪、車軸、磁石、回転翼、プロペラ、羽根、ノズル、またはその任意の適切な組合せを含んだ推進システム等の推進システムを利用できる。また、推進システムは、可動物体が表面から離陸する、表面に着陸する、その現在位置または向きの少なくとも一方を維持する(例えば、ホバーリングする)、向きまたは位置の少なくとも一方を変更可能に使用できる。
可動物体は、ユーザによって遠隔で制御され得る、あるいは可動物体中のまたは可動物体上の乗員によって局所的に制御され得る。可動物体は、個別の輸送機内の乗員を介して遠隔で制御され得る。ある実施形態において、可動物体はUAV等の無人可動物体である。UAV等の無人可動物体には可動物体に搭乗する乗員がいないことがある。可動物体は、人間によってまたは自律制御システム(例えば、コンピュータ制御システム)、またはその任意の適切な組合せによって制御され得る。可動物体は、人工知能で構成されたロボット等の自律ロボットまたは半自律ロボットでよい。
可動物体は任意の適切なサイズまたは寸法の少なくとも一方を有し得る。ある実施形態において、可動物体は、輸送機内部にまたは輸送機上に人間の乗員を備えるためのサイズまたは寸法の少なくとも一方を有し得る。また、可動物体は、可動物体内部にまたは可動物体上に人間の乗員を備えることができるサイズまたは寸法の少なくとも一方より、小さいサイズまたは寸法の少なくとも一方であってよい。可動物体は、人間によって持ち上げられるまたは支持されるのに適したサイズまたは寸法の少なくとも一方であり得る。また、可動物体は、人間によって持ち上げられるか支持されるのに適したサイズまたは寸法の少なくとも一方よりも大きいことがある。ある実施例においては、可動物体は、約2cm以下、5cm以下、10cm以下、50cm以下、1m以下、2m以下、5m以下、または10m以下の最大寸法(例えば、長さ、幅、高さ、直径、対角線)を有し得る。可動物体の最大寸法は、約2cm以上、5cm以上、10cm以上、50cm以上、1m以上、2m以上、5m以上、または10m以上であり得る。例えば、可動物体の対向する回転翼の軸間距離は、約2cm以下、5cm以下、10cm以下、50cm以下、1m以下、2m以下、5m以下、または10m以下であってよい。あるいは、対向する回転翼の軸間の距離は、約2cm以上、5cm以上、10cm以上、50cm以上、1m以上、2m以上、5m以上、または10m以上であってよい。
ある実施形態において、可動物体は、100cm×100cm×100cm未満、50cm×50cm×30cm未満、または、5cm×5cm×3cm未満の体積を有し得る。可動物体の総体積は、約1cm以下、2cm以下、5cm以下、10cm以下、20cm以下、30cm以下、40cm以下、50cm以下、60cm以下、70cm以下、80cm以下、90cm以下、100cm以下、150cm以下、200cm3以下、300cm以下、500cm以下、750cm以下、1000cm以下、5000cm以下、10,000cm以下、100,000cm以下、1m以下、または、10m以下であり得る。逆に、可動物体の総体積は、約1cm以上、2cm以上、5cm以上、10cm以上、20cm以上、30cm以上、40cm以上、50cm以上、60cm以上、70cm以上、80cm以上、90cm以上、100cm以上、150cm以上、200cm以上、300cm以上、500cm以上、750cm以上、1000cm以上、5000cm以上、10,000cm以上、100,000cm以上、1m以上、または、10m以上でもあり得る。
ある実施形態において、可動物体は、32,000cm以下、20,000cm以下、10,000cm以下、1,000cm以下、500cm以下、100cm以下、50cm以下、10cm以下、または5cm以下の専有面積(あるいは可動物体によって包囲される側面方向断面積)を有し得る。逆に、専有面積は約32,000cm以上、20,000cm以上、10,000cm以上、1,000cm以上、500cm以上、100cm以上、50cm以上、10cm以上、または5cm以上であり得る。
ある実施形態において、可動物体の重量は1000kg以下であり得る。可動物体の重量は、約1000kg以下、750kg以下、500kg以下、200kg以下、150kg以下、100kg以下、80kg以下、70kg以下、60kg以下、50kg以下、45kg以下、40kg以下、35kg以下、30kg以下、25kg以下、20kg以下、15kg以下、12kg以下、10kg以下、9kg以下、8kg以下、7kg以下、6kg以下、5kg以下、4kg以下、3kg以下、2kg以下、1kg以下、0.5kg以下、0.1kg以下、0.05kg以下、または0.01kg以下であり得る。逆に、可動物体の重量は約1000kg以上、750kg以上、500kg以上、200kg以上、150kg以上、100kg以上、80kg以上、70kg以上、60kg以上、50kg以上、45kg以上、40kg以上、35kg以上、30kg以上、25kg以上、20kg以上、15kg以上、12kg以上、10kg以上、9kg以上、8kg以上、7kg以上、6kg以上、5kg以上、4kg以上、3kg以上、2kg以上、1kg以上、0.5kg以上、0.1kg以上、0.05kg以上、または0.01kg以上であり得る。
ある実施形態において、可動物体は可動物体が支持する積載物に比して小さいことがある。積載物は、以下にさらに詳細に説明するように、搭載物または支持機構の少なくとも一方を含んでよい。ある実施例においては、可動物体重量と積載物重量の割合は、約1:1を超えてよい、未満であってよい、または等しくてよい。また、他の実施例においては、可動物体重量と積載物重量の割合は約1:1を超えてよい、未満であってよい、または等しくてよい。また、支持機構重量と積載物重量の割合は、約1:1を超えてよい、未満であってよい、または等しくてよい。必要とされる場合には、可動物体重量と積載物重量の割合は、1:2、1:3、1:4、1:5、1:10以下またはさらに小さいことがある。逆に、可動物体重量と積載物重量の割合は、2:1、3:1、4:1、5:1、10:1以上またはさらに大きいことがある。
ある実施形態において、可動物体の消費エネルギーが低いことがある。例えば、可動物体は約5W/時、4W/時、3W/時、2W/時、1W/時未満、または以下のエネルギーを使用し得る。また、他の実施例では、可動物体の支持機構の消費エネルギーが低いことがある。例えば、支持機構は約5W/時、4W/時、3W/時、2W/時、1W/時未満、または以下のエネルギーを使用し得る。また、可動物体の搭載物の消費エネルギーは、約5W/時、4W/時、3W/時、2W/時、1W/時未満、または以下等の低いエネルギーであり得る。
図13は、本発明の実施形態に従い、ファイルを格納する方法のフローチャート1300を示す。ブロック1310で、ファイルを受信する。ステップ1320で、ファイルを格納するために必要な複数のアイドル状態のストレージ・ブロックを決定する。ステップ1330で、ファイルを複数のアイドル状態のストレージ・ブロックに格納する。特に、複数のアイドル状態のストレージ・ブロック間のリンク関係により複数のアイドル状態のストレージ・ブロックにファイルを格納する。さらに方法は、インデックス・ノード中にファイルのディスクリプションを格納するステップを備え得る。各インデックス・ノード識別子は、連続したテーブルに記載され得る。現在利用可能なインデックス・ノード識別子は、直前に占有されたインデックス・ノード識別子へ固定増分を加えることで判定され得る。固定増分は、1であってもよい。
さらに方法は、ファイルの格納を完了後に現在利用可能なインデックス・ノード識別子を更新するステップを備え得る。さらに方法は、現在利用可能なインデックス・ノード内に格納されたままで保持ブロック数を更新するステップを備え得る。現在操作可能なブロック識別子は、鍵情報領域に格納され得る。鍵情報領域は、ブロックを格納するときに更新される。この鍵情報領域は、情報セクタにあってもよい。さらに方法は、ファイルを受信する前にファイル・システムを初期化するステップを備え得る。ファイル・システムを初期化するステップは、現在利用可能なインデックス・ノード識別子を判定して記録することを備え得る。加えて、または代わりに、ファイル・システムを初期化するステップは、現在操作可能なブロック識別子を判定して記録することを備え得る。
図14は、本発明の実施形態に従い、ファイルを記録する方法のフローチャート1400を示す。ステップ1410で、インデックス・ノードを読み出す。ステップ1420で、ファイルを格納する複数のストレージ・ブロックを読み出す。さらにファイルを読み出す方法は、インデックス・ノードを読み出す前に読み出しコマンドを受信するステップを備え得る。方法は、インデックス・ノードを読み出す前に読み出しコマンドを受信するステップを備え得る。この読み出しコマンドは、インデックス・ノードを読み出す前に分析され得る。読み出しコマンドを分析することは、読み出されるコンテンツを判定することを備え得る。
[項目1]
ファイルを格納する方法において、
上記ファイルを受信するステップと、
上記ファイルを格納するために必要な複数のアイドル状態のストレージ・ブロックを決定するステップであって、上記複数のアイドル状態のストレージ・ブロックの各アイドル状態のストレージ・ブロックは、ブロックID識別子ユニットに対応し、各ブロックID識別子ユニットは、つぎのアイドル状態のストレージ・ブロックのブロック識別子を格納し、それにより、上記複数のアイドル状態のストレージ・ブロック間のリンク関係を形成する、上記複数のアイドル状態のストレージ・ブロックを決定するステップと、
上記複数のアイドル状態のストレージ・ブロック間の上記リンク関係により上記複数のアイドル状態のストレージ・ブロックに上記ファイルを格納するステップと、
を備える、方法。
[項目2]
インデックス・ノードに上記ファイルのディスクリプションを格納するステップ、をさらに備える、項目1に記載の方法。
[項目3]
各インデックス・ノードは、インデックス・ノード識別子と関連する、項目2に記載の方法。
[項目4]
現在利用可能なインデックス・ノード識別子を決定して、上記ファイルを受信した後に上記ファイルのディスクリプションを格納するステップ、をさらに備える、項目1に記載の方法。
[項目5]
各インデックス・ノード識別子は、連続したテーブルに記載される、項目4に記載の方法。
[項目6]
上記現在利用可能なインデックス・ノード識別子は、直前に占有されたインデックス・ノード識別子へ固定増分を加えることで決定される、項目5に記載の方法。
[項目7]
上記固定増分は、1である、項目6に記載の方法。
[項目8]
上記ファイルの格納を完了した後に上記現在利用可能なインデックス・ノード識別子を更新するステップ、をさらに備える、項目4に記載の方法。
[項目9]
上記ファイルを格納するために必要なアイドル状態のストレージ・ブロック数は、上記ファイル内のデータ量に基づき計算される、項目1に記載の方法。
[項目10]
上記ファイル内の上記データ量は、上記ファイルの解像度に基づき決定される、項目9に記載の方法。
[項目11]
上記現在利用可能なインデックス・ノード内に格納されたままで保持ブロック数を更新するステップ、をさらに備える、項目4に記載の方法。
[項目12]
上記保持ブロック数は、上記ファイルを格納するために使用されたブロック数への参照を含む、項目11に記載の方法。
[項目13]
ブロックを格納するたびにブロック・インデックスのブロックID識別子ユニットのコンテンツを更新するステップ、をさらに備える、項目1に記載の方法。
[項目14]
鍵情報領域に格納された場合に現在操作可能なブロック識別子は、ブロックを格納するときに更新される、項目13に記載の方法。
[項目15]
上記鍵情報領域は、情報セクタにある、項目14に記載の方法。
[項目16]
テーブルは、ディスク・システム構造を説明するために使用される、項目15に記載の方法。
[項目17]
上記鍵情報領域は、ファイル・システムのハードディスクにある、項目14に記載の方法。
[項目18]
上記鍵情報領域は、重要度の閾値を超えるディスク情報を格納する、項目17に記載の方法。
[項目19]
上記現在操作可能なブロック識別子は、上記ファイルからのすべてのデータを格納した後に更新される、項目14に記載の方法。
[項目20]
現在操作可能なブロック識別子は、最後に占有されたブロック識別子、及び上記ブロック・インデックスの上記占有されたブロック識別子によりリンクするブロック識別子に基づき決定される、項目13に記載の方法。
[項目21]
上記ファイルを受信する前にファイル・システムを初期化するステップ、をさらに備える、項目1に記載の方法。
[項目22]
上記ファイル・システムを初期化するステップは、現在利用可能なインデックス・ノード識別子を決定して記録することを備える、項目21に記載の方法。
[項目23]
上記ファイル・システムを初期化するステップは、現在操作可能なブロック識別子を決定して記録することを備える、項目21に記載の方法。
[項目24]
ディスク・システム構造を説明するテーブルは、メモリからハードディスクへ書き込まれる、項目1に記載の方法。
[項目25]
上記テーブルは、上記ハードディスクへ1秒ごとに書き込まれることが可能である、項目24に記載の方法。
[項目26]
更新されたコンテンツのみ、上記ハードディスクへ書き込まれる、項目24に記載の方法。
[項目27]
上記ファイルは、可動物体上に設置されるメディア・キャプチャ・デバイスを使用してキャプチャされる、項目24に記載の方法。
[項目28]
上記可動物体は、無人航空機(UAV)である、項目27に記載の方法。
[項目29]
上記ファイルの上記キャプチャは、上記UAVが飛行している間に行われる、項目28に記載の方法。
[項目30]
上記ファイルは、メディア・ファイルである、項目1に記載の方法。
[項目31]
上記ファイルは、画像ファイルである、項目1に記載の方法。
[項目32]
上記ファイルは、ビデオ・ファイルである、項目1に記載の方法。
[項目33]
ファイルを格納するためのプログラム・インストラクションを含む非一時的なコンピュータ可読媒体において、
上記ファイルを受信するプログラム・インストラクションと、
上記ファイルを格納するために必要な複数のアイドル状態のストレージ・ブロックを決定するためのプログラム・インストラクションであって、上記複数のアイドル状態のストレージ・ブロックの各アイドル状態のストレージ・ブロックは、ブロックID識別子ユニットに対応し、各ブロックID識別子ユニットは、つぎのアイドル状態のストレージ・ブロックのブロック識別子を格納し、それにより、上記複数のアイドル状態のストレージ・ブロック間のリンク関係を形成する上記複数のアイドル状態のストレージ・ブロックを決定するためのプログラム・インストラクションと、
上記複数のアイドル状態のストレージ・ブロック間の上記リンク関係により上記複数のアイドル状態のストレージ・ブロックに上記ファイルを格納するプログラム・インストラクションと、
を備える、
コンピュータ可読媒体。
[項目34]
インデックス・ノードに上記ファイルのディスクリプションを格納するプログラム・インストラクション、
をさらに備える、
項目33に記載のコンピュータ可読媒体。
[項目35]
各インデックス・ノードは、インデックス・ノード識別子と関連する、
項目34に記載のコンピュータ可読媒体。
[項目36]
現在利用可能なインデックス・ノード識別子を決定して上記ファイルを受信した後に上記ファイルのディスクリプションを格納するプログラム・インストラクション、
をさらに備える、
項目33に記載のコンピュータ可読媒体。
[項目37]
各インデックス・ノード識別子は、連続したテーブルに記載される、
項目36に記載のコンピュータ可読媒体。
[項目38]
上記現在利用可能なインデックス・ノード識別子は、固定増分を直前に占有されたインデックス・ノード識別子に加えることで決定される、
項目37に記載のコンピュータ可読媒体。
[項目39]
上記固定増分は、1である、
項目38に記載のコンピュータ可読媒体。
[項目40]
上記ファイルの格納を完了した後に上記現在利用可能なインデックス・ノード識別子を更新するプログラム・インストラクション、
をさらに備える、
項目36に記載のコンピュータ可読媒体。
[項目41]
上記ファイルを格納するために必要なアイドル状態のストレージ・ブロック数は、上記ファイル内のデータ量に基づき計算される、
項目33に記載のコンピュータ可読媒体。
[項目42]
上記ファイル内の上記データ量は、上記ファイルの解像度に基づき決定される、
項目41に記載のコンピュータ可読媒体。
[項目43]
上記現在利用可能なインデックス・ノード内に格納されたままで保持ブロック数を更新するプログラム・インストラクション、
をさらに備える、
項目36に記載のコンピュータ可読媒体。
[項目44]
上記保持ブロック数は、上記ファイルを格納するために使用されたブロック数への参照を含む、
項目43に記載のコンピュータ可読媒体。
[項目45]
ブロックを格納するたびに上記ブロック・インデックスのブロックID識別子ユニットのコンテンツを更新するプログラム・インストラクション、
をさらに備える、
項目33に記載のコンピュータ可読媒体。
[項目46]
鍵情報領域に格納された場合に現在操作可能なブロック識別子は、ブロックを格納するときに更新される、
項目45に記載のコンピュータ可読媒体。
[項目47]
上記鍵情報領域は、情報セクタにある、
項目46に記載のコンピュータ可読媒体。
[項目48]
上記鍵情報領域は、ファイル・システムのハードディスクにある、
項目46に記載のコンピュータ可読媒体。
[項目49]
上記鍵情報領域は、重要度の閾値を超えるディスク情報を格納する、
項目48に記載のコンピュータ可読媒体。
[項目50]
上記テーブルは、ディスク・システム構造を説明するために使用される、
項目47に記載のコンピュータ可読媒体。
[項目51]
上記現在操作可能なブロック識別子は、上記ファイルからのすべてのデータを格納した後に更新される、
項目46に記載のコンピュータ可読媒体。
[項目52]
現在操作可能なブロック識別子は、最後に占有されたブロック識別子、及び上記ブロック・インデックスに上記占有されたブロック識別子によりリンクするブロック識別子に基づき決定される、
項目45に記載のコンピュータ可読媒体。
[項目53]
上記ファイルを受信する前にファイル・システムを初期化するプログラム・インストラクション、
をさらに備える、
項目33に記載のコンピュータ可読媒体。
[項目54]
上記ファイル・システムを初期化することは、現在利用可能なインデックス・ノード識別子を決定して記録することを備える、
項目53に記載のコンピュータ可読媒体。
[項目55]
上記ファイル・システムを初期化することは、現在操作可能なブロック識別子を決定して記録すること、を備える、
項目53に記載のコンピュータ可読媒体。
[項目56]
ディスク・システム構造を説明するテーブルは、メモリからハードディスクへ書き込まれる、
項目33に記載のコンピュータ可読媒体。
[項目57]
上記テーブルは、1秒ごとに上記ハードディスクへ書き込まれることが可能である、
項目56に記載のコンピュータ可読媒体。
[項目58]
更新されたコンテンツのみ、上記ハードディスクへ書き込まれる、
項目56に記載のコンピュータ可読媒体。
[項目59]
上記ファイルは、可動物体上に設置されるメディア・キャプチャ・デバイスを使用してキャプチャされる、
項目56に記載のコンピュータ可読媒体。
[項目60]
上記可動物体は、無人航空機(UAV)である、
項目59に記載のコンピュータ可読媒体。
[項目61]
上記ファイルの上記キャプチャは、上記UAVが飛行している間に行われる、
項目60に記載のコンピュータ可読媒体。
[項目62]
上記ファイルは、メディア・ファイルである、
項目33に記載のコンピュータ可読媒体。
[項目63]
上記ファイルは、画像ファイルである、
項目33に記載のコンピュータ可読媒体。
[項目64]
上記ファイルは、ビデオ・ファイルである、
項目33に記載のコンピュータ可読媒体。
[項目65]
ファイルを格納するシステムにおいて、
ファイルをキャプチャするメディア・キャプチャ・デバイスと、
上記ファイルを格納するために必要な複数のアイドル状態のストレージ・ブロックを決定し、上記複数のアイドル状態のストレージ・ブロックの各アイドル状態のストレージ・ブロックがブロックID識別子ユニットに対応し、各ブロックID識別子ユニットがつぎのアイドル状態のストレージ・ブロックのブロック識別子を格納し、それにより、上記複数のアイドル状態のストレージ・ブロック間のリンク関係を形成し、上記複数のアイドル状態のストレージ・ブロック間の上記リンク関係により上記複数のアイドル状態のストレージ・ブロックに上記ファイルを格納する、ように個別に、または集合的に構成された1つ以上のプロセッサと、
を備える、
システム。
[項目66]
上記1つ以上のプロセッサは、
インデックス・ノードに上記ファイルのディスクリプションを格納する、
項目65に記載のシステム。
[項目67]
各インデックス・ノードは、インデックス・ノード識別子と関連する、
項目66に記載のシステム。
[項目68]
上記1つ以上のプロセッサは、
上記ファイルを受信した後に現在利用可能なインデックス・ノード識別子を決定する、
項目65に記載のシステム。
[項目69]
各インデックス・ノード識別子は、連続したテーブルに記載される、
項目68に記載のシステム。
[項目70]
上記現在利用可能なインデックス・ノード識別子は、直前に占有されたインデックス・ノード識別子へ固定増分を加えることで決定される、
項目69に記載のシステム。
[項目71]
上記固定増分は、1である、
項目70に記載のシステム。
[項目72]
上記1つ以上のプロセッサは、
上記ファイルの格納を完了した後に上記現在利用可能なインデックス・ノード識別子を更新する、
項目68に記載のシステム。
[項目73]
上記ファイルを格納するために必要なアイドル状態のストレージ・ブロック数は、上記ファイル内のデータ量に基づき計算される、
項目65に記載のシステム。
[項目74]
上記ファイル内の上記データ量は、上記ファイルの解像度に基づき決定される、
項目73に記載のシステム。
[項目75]
上記1つ以上のプロセッサは、
上記現在利用可能なインデックス・ノード内に格納されたままで保持ブロック数を更新する、
項目68に記載のシステム。
[項目76]
上記保持ブロック数は、上記ファイルを格納するために使用された上記ブロック数への参照を含む、
項目75に記載のシステム。
[項目77]
上記1つ以上のプロセッサは、
ブロックを格納するたびに上記ブロック・インデックスの値を更新する、
項目65に記載のシステム。
[項目78]
鍵情報領域に格納された場合に現在操作可能なブロック識別子は、ブロックを格納するときに更新される、
項目77に記載のシステム。
[項目79]
上記鍵情報領域は、情報セクタにある、
項目78に記載のシステム。
[項目80]
上記鍵情報領域は、ファイル・システムのハードディスク中にある、
項目78に記載のシステム。
[項目81]
上記鍵情報領域は、重要度の閾値を超えるディスク情報を格納する、
項目80に記載のシステム。
[項目82]
上記テーブルは、ディスク・システム構造を説明するために使用される、
項目79に記載のシステム。
[項目83]
上記現在操作可能なブロック識別子は、上記ファイルからのすべてのデータを格納した後に更新される、
項目78に記載のシステム。
[項目84]
現在操作可能なブロック識別子は、最後に占有されたブロック識別子、及び上記ブロック・インデックス中の上記占有されたブロック識別子によりリンクするブロック識別子に基づき決定される、
項目77に記載のシステム。
[項目85]
上記1つ以上のプロセッサは、
上記ファイルを受信する前にファイル・システムを初期化する、
項目65に記載のシステム。
[項目86]
上記ファイル・システムを初期化することは、現在利用可能なインデックス・ノード識別子を決定して記録すること、を備える、
項目85に記載のシステム。
[項目87]
上記ファイル・システムを初期化することは、現在操作可能なブロック識別子を決定して記録すること、を備える、
項目85に記載のシステム。
[項目88]
ディスク・システム構造を説明するテーブルは、メモリからハードディスクへ書き込まれる、
項目65に記載のシステム。
[項目89]
上記テーブルは、1秒ごとに上記ハードディスクに書き込まれることが可能である、
項目88に記載のシステム。
[項目90]
更新されたコンテンツのみ、上記ハードディスクに書き込まれる、
項目88に記載のシステム。
[項目91]
上記ファイルは、可動物体上に設置されるメディア・キャプチャ・デバイスを使用してキャプチャされる、
項目88に記載のシステム。
[項目92]
上記可動物体は、無人航空機(UAV)である、
項目91に記載のシステム。
[項目93]
上記ファイルをキャプチャする上記ステップは、上記UAVが飛行している間に行われる、
項目92に記載のシステム。
[項目94]
上記ファイルは、メディア・ファイルである、
項目65に記載のシステム。
[項目95]
上記ファイルは、画像ファイルである、
項目65に記載のシステム。
[項目96]
上記ファイルは、ビデオ・ファイルである、
項目65に記載のシステム。
[項目97]
ファイルを読み出す方法において、
インデックス・ノードを読み出すステップであって、上記インデックス・ノードは、上記ファイルを格納する複数のストレージ・ブロックと関連した複数のブロック識別子を格納する、上記インデックス・ノードを読み出すステップと、
上記ファイルを格納する上記複数のストレージ・ブロックを読み出すステップと、
を備える、方法。
[項目98]
上記インデックス・ノードを読み出す前に読み出しコマンドを受信する、
ステップをさらに備える、項目97に記載の方法。
[項目99]
上記読み出しコマンドは、上記インデックス・ノードを読み出す前に分析される、項目98に記載の方法。
[項目100]
上記読み出しコマンドを分析することは、読み出されるコンテンツを決定することを備える、項目99に記載の方法。
[項目101]
ディレクトリ・テーブルから上記インデックス・ノードを読み出す前にディレクトリ項目を読み出すステップ、
をさらに備える、項目97に記載の方法。
[項目102]
上記ディレクトリ項目は、読み出される上記インデックス・ノードの上記コンテンツと関連する、項目101に記載の方法。
[項目103]
開始インデックス・ノード識別子は、上記ディレクトリ項目から決定される、項目101に記載の方法。
[項目104]
終了インデックス・ノード識別子は、上記ディレクトリ項目から決定される、項目101に記載の方法。
[項目105]
上記インデックス・ノードを読み出すステップは、終了インデックス・ノード識別子を識別した後に実行される、項目104に記載の方法。
[項目106]
上記インデックス・ノードを上記読み出すステップは、読み出しコマンドを分析し、対応するディレクトリにインデックスを作成し、対応するインデックス・ノードにインデックスを作成した後に実行される、項目97に記載の方法。
[項目107]
上記ファイルを格納するために必要なストレージ・ブロック数は、上記ファイル内のデータ量に基づき計算される、項目97に記載の方法。
[項目108]
上記ファイル内の上記データ量は、上記ファイルの解像度に基づき決定される、項目107に記載の方法。
[項目109]
上記インデックス・ノード及びストレージ・ブロックを含むディスク・システム構造を説明するテーブルは、メモリからハードディスクへ書き込まれる、項目97に記載の方法。
[項目110]
上記テーブルは、1秒ごとに上記ハードディスクへ書き込まれることが可能である、項目109に記載の方法。
[項目111]
更新されたコンテンツのみ、上記ハードディスクへ書き込まれる、項目109に記載の方法。
[項目112]
上記ファイルは、メディア・ファイルである、項目97に記載の方法。
[項目113]
上記ファイルは、画像ファイルである、項目97に記載の方法。
[項目114]
上記ファイルは、ビデオ・ファイルである、項目97に記載の方法。
[項目115]
ファイルを読み出すためのプログラム・インストラクションを含む非一時的なコンピュータ可読媒体において、
インデックス・ノードを読み出すためのプログラム・インストラクションであって、上記インデックス・ノードは、上記ファイルを格納する複数のストレージ・ブロックと関連した複数のブロック識別子を格納する上記インデックス・ノードを読み出すためのプログラム・インストラクションと、
上記ファイルを格納する上記複数のストレージ・ブロックを読み出すプログラム・インストラクションと、
を備える、
コンピュータ可読媒体。
[項目116]
上記インデックス・ノードを読み出す前に読み出しコマンドを受信するプログラム・インストラクション、
をさらに備える、
項目115に記載のコンピュータ可読媒体。
[項目117]
上記読み出しコマンドは、上記インデックス・ノードを読み出す前に分析される、
項目116に記載のコンピュータ可読媒体。
[項目118]
上記読み出しコマンドを分析することは、読み出されるコンテンツを決定することを備える、
項目117に記載のコンピュータ可読媒体。
[項目119]
ディレクトリ・テーブルから上記インデックス・ノードを読み出す前にディレクトリ項目を読み出すプログラム・インストラクション、
をさらに備える、
項目115に記載のコンピュータ可読媒体。
[項目120]
上記ディレクトリ項目は、読み出される上記インデックス・ノードの上記コンテンツと関連する、
項目119に記載のコンピュータ可読媒体。
[項目121]
開始インデックス・ノード識別子は、上記ディレクトリ項目から決定される、
項目119に記載のコンピュータ可読媒体。
[項目122]
終了インデックス・ノード識別子は、上記ディレクトリ項目から決定される、
項目119に記載のコンピュータ可読媒体。
[項目123]
上記インデックス・ノードを読み出すことは、終了インデックス・ノード識別子を識別した後に実行される、
項目122に記載のコンピュータ可読媒体。
[項目124]
上記インデックス・ノードを上記読み出すことは、読み出しコマンドを分析し、対応するディレクトリにインデックスを作成し、対応するインデックス・ノードにインデックスを作成した後に実行される、
項目115に記載のコンピュータ可読媒体。
[項目125]
上記ファイルを格納するために必要なストレージ・ブロック数は、上記ファイル内のデータ量に基づき計算される、
項目115に記載のコンピュータ可読媒体。
[項目126]
上記ファイル内の上記データ量は、上記ファイルのサイズに基づき決定される、
項目116に記載のコンピュータ可読媒体。
[項目127]
上記インデックス・ノード及びストレージ・ブロックを含むディスク・システム構造を説明するテーブルは、メモリからハードディスクへ書き込まれる、
項目115に記載のコンピュータ可読媒体。
[項目128]
上記テーブルは、1秒ごとに上記ハードディスクへ書き込まれることが可能である、
項目118に記載のコンピュータ可読媒体。
[項目129]
更新されたコンテンツのみ、上記ハードディスクへ書き込まれる、
項目118に記載のコンピュータ可読媒体。
[項目130]
上記ファイルは、メディア・ファイルである、
項目115に記載のコンピュータ可読媒体。
[項目131]
上記ファイルは、画像ファイルである、
項目115に記載のコンピュータ可読媒体。
[項目132]
上記ファイルは、ビデオ・ファイルである、
項目115に記載のコンピュータ可読媒体。
[項目133]
ファイルを読み出すシステムにおいて、
ファイルをキャプチャするメディア・キャプチャ・デバイスと、
インデックス・ノードを読み出し、上記インデックス・ノードが上記ファイルを格納する複数のストレージ・ブロックと関連した複数のブロック識別子を格納し、上記ファイルを格納する上記複数のストレージ・ブロックを読み出す、ように個別に、または集合的に構成された、1つ以上のプロセッサと、
を備える、
システム。
[項目134]
上記1つ以上のプロセッサは、
上記インデックス・ノードを読み出す前に読み出しコマンドを受信する、

項目133に記載のシステム。
[項目135]
上記読み出しコマンドは、上記インデックス・ノードを読み出す前に分析される、
項目134に記載のシステム。
[項目136]
上記読み出しコマンドを分析することは、読み出されるコンテンツを決定することを備える、
項目133に記載のシステム。
[項目137]
上記1つ以上のプロセッサは、
ディレクトリ・テーブルから上記インデックス・ノードを読み出す前にディレクトリ項目を読み出す、

項目136に記載のシステム。
[項目138]
上記ディレクトリ項目は、読み出される上記インデックス・ノードの上記コンテンツと関連する、
項目137に記載のシステム。
[項目139]
開始インデックス・ノード識別子は、上記ディレクトリ項目から決定される、
項目137に記載のシステム。
[項目140]
終了インデックス・ノード識別子は、上記ディレクトリ項目から決定される、
項目137に記載のシステム。
[項目141]
上記インデックス・ノードを読み出すことは、終了インデックス・ノード識別子を識別した後に実行される、
項目140に記載のシステム。
[項目142]
上記インデックス・ノードを上記読み出すことは、読み出しコマンドを分析し、対応するディレクトリにインデックスを作成し、対応するインデックス・ノードにインデックスを作成した後に実行される、
項目133に記載のシステム。
[項目143]
上記ファイルを格納するために必要なストレージ・ブロック数は、上記ファイル内のデータ量に基づき計算される、
項目133に記載のシステム。
[項目144]
上記ファイル内の上記データ量は、上記ファイルの解像度に基づき決定される、
項目143に記載のシステム。
[項目145]
上記インデックス・ノード及びストレージ・ブロック構造を含むディスク・システムを説明するテーブルは、メモリからハードディスクへ書き込まれる、
項目133に記載のシステム。
[項目146]
上記テーブルは、1秒ごとに上記ハードディスクへ書き込まれることが可能である、
項目145に記載のシステム。
[項目147]
更新されたコンテンツのみ、上記ハードディスクへ書き込まれる、
項目145に記載のシステム。
[項目148]
上記ファイルは、メディア・ファイルである、
項目133に記載のシステム。
[項目149]
上記ファイルは、画像ファイルである、
項目133に記載のシステム。
[項目150]
上記ファイルは、ビデオ・ファイルである、
項目133に記載のシステム。
[項目151]
ブロック領域のアイドル状態のストレージ・ブロックをリンクさせる方法において、
複数のアイドル状態のストレージ・ブロックを含むブロック領域を提供するステップであって、上記複数のアイドル状態のストレージ・ブロックの各アイドル状態のブロックは、複数のブロック識別子の1つのブロック識別子と関連する、上記複数のアイドル状態のストレージ・ブロックを含むブロック領域を提供するステップと、
ブロック・インデックスに上記複数のブロック識別子の各ブロック識別子を記載し、上記固有ブロック識別子と上記ブロック識別子をリンクさせる、上記複数のブロック識別子の固有ブロック識別子を格納する、対応するコンテンツと各ブロック識別子を関連付け、それにより、上記複数のブロック識別子をリンクさせるステップと、
を備える、方法。
[項目152]
上記複数のブロック識別子の第一ブロック識別子は、現在操作可能なブロック識別子として記載される、項目151に記載の方法。
[項目153]
上記現在操作可能なブロック識別子は、現在アイドル状態のストレージ・ブロックを参照する、項目152に記載の方法。
[項目154]
現在のブロック識別子として記載されるブロック識別子は、別のブロック識別子の上記コンテンツに格納されない、項目152に記載の方法。
[項目155]
上記第一ブロック識別子から第二ブロック識別子へ上記現在操作可能なブロック識別子を更新するステップをさらに備え、上記第二ブロック識別子は、上記ブロック・インデックスに記載される、項目152に記載の方法。
[項目156]
ブロック領域でアイドル状態のストレージ・ブロックをリンクさせるためのプログラム・インストラクションを含む非一時的なコンピュータ可読媒体において、
複数のアイドル状態のストレージ・ブロックを含むブロック領域を提供するためのプログラム・インストラクションであって、上記複数のアイドル状態のストレージ・ブロックの各アイドル状態のストレージ・ブロックは、複数のブロック識別子の1つのブロック識別子と関連する、複数のアイドル状態のストレージ・ブロックを含むブロック領域を提供するためのプログラム・インストラクションと、
ブロック・インデックスに上記複数のブロック識別子の各ブロック識別子を記載し、上記複数のブロック識別子の固有のブロック識別子を格納して、上記ブロック識別子を上記固有のブロック識別子とリンクさせる対応するコンテンツと各ブロック識別子を関連付け、それにより、上記複数のブロック識別子をリンクさせるためのプログラム・インストラクションと、
を備える、
コンピュータ可読媒体。
[項目157]
上記複数のブロック識別子の第一ブロック識別子は、現在操作可能なブロック識別子として記載される、
項目156に記載のコンピュータ可読媒体。
[項目158]
上記現在操作可能なブロック識別子は、現在アイドル状態のストレージ・ブロックを参照する、
項目157に記載のコンピュータ可読媒体。
[項目159]
現在操作可能なブロック識別子として記載されるブロック識別子は、別のブロック識別子の上記コンテンツに格納されない、
項目157に記載のコンピュータ可読媒体。
[項目160]
上記第一ブロック識別子から第二ブロック識別子へ上記現在操作可能なブロック識別子を更新するプログラム・インストラクションであって、上記第二ブロック識別子は、上記ブロック・インデックスに記載される、上記ブロック識別子を更新するプログラム・インストラクション、
をさらに備える、
項目157に記載のコンピュータ可読媒体。
[項目161]
ブロック領域でアイドル状態のストレージ・ブロックをリンクさせるシステムにおいて、
メモリ・ストレージ領域を有するメディア・キャプチャ・デバイスと、
複数のアイドル状態のストレージ・ブロックを含むブロック領域を提供し、上記複数のアイドル状態のブロックの各アイドル状態のストレージ・ブロックは、複数のブロック識別子の1つのブロック識別子と関連し、
ブロック・インデックスに上記複数のブロック識別子の各ブロック識別子を記載し、上記複数のブロック識別子の固有のブロック識別子を格納して、上記固有のブロック識別子と上記ブロック識別子をリンクさせる対応するコンテンツと各ブロック識別子を関連付け、それにより、上記複数のブロック識別子をリンクさせる、ように個別に、または集合的に構成された、1つ以上のプロセッサと、
を備える、
システム。
[項目162]
上記複数のブロック識別子の第一ブロック識別子は、現在操作可能なブロック識別子として記載される、
項目161に記載のシステム。
[項目163]
上記現在のブロック識別子は、現在アイドル状態のストレージ・ブロックを参照する、
項目162に記載のシステム。
[項目164]
現在のブロック識別子として記載されるブロック識別子は、別のブロック識別子の上記コンテンツに格納されない、
項目162に記載のシステム。
[項目165]
上記1つ以上のプロセッサは、
上記第一ブロック識別子から第二ブロック識別子へ上記現在操作可能なブロック識別子を更新し、上記第二ブロック識別子が上記ブロック・インデックスに記載される、

項目162に記載のシステム。
[項目166]
画像ストレージ・システムで利用可能なストレージを増加させる方法において、
第二アイドル状態のストレージ・ブロックを参照する第二ブロック識別子として現在操作可能なブロック識別子を識別するステップと、
第一ブロック識別子と関連する占有されたストレージ・ブロックがアイドル状態になっていることを判定するステップと、
上記第二ブロック識別子から上記第一ブロック識別子へ上記現在操作可能なブロック識別子を更新するステップと、
ブロック・インデックスに上記第一ブロック識別子を記載し、上記第二ブロック識別子を格納する第一コンテンツと上記第一ブロック識別子を関連付けるステップであって、上記第二アイドル状態のストレージ・ブロックの位置は、上記第一アイドル状態のストレージ・ブロックの位置とは無関係である上記関連付けるステップと、
を備える、方法。
[項目167]
第三ブロック識別子と関連する第二アイドル状態のストレージ・ブロックがアイドル状態になっていることを判定し、上記第一ブロック識別子から上記第三ブロック識別子へ上記現在操作可能なブロック識別子を更新する、
ステップをさらに備える、項目166に記載の方法。
[項目168]
上記占有されたストレージ・ブロックがアイドル状態になっていることを判定するステップは、ストレージ・ファイルからの上記占有されたストレージ・ブロックへの参照が削除されている表示を受信することを備える、項目166に記載の方法。
[項目169]
上記占有されたストレージ・ブロックがアイドル状態になっていることを判定するステップは、上記ストレージ・ブロック内に格納されたコンテンツが削除されている表示を受信することを備える、項目166に記載の方法。
[項目170]
画像ストレージ・システムで利用可能なストレージを増加させるためのプログラム・インストラクションを含む非一時的なコンピュータ可読媒体において、
第二アイドル状態のストレージ・ブロックを参照する第二ブロック識別子として現在操作可能なブロック識別子を識別するプログラム・インストラクションと、
第一ブロック識別子と関連する占有されたストレージ・ブロックがアイドル状態になっていることを判定するプログラム・インストラクションと、
上記第二ブロック識別子から上記第一ブロック識別子へ上記現在操作可能なブロック識別子を更新するプログラム・インストラクションと、
ブロック・インデックスに上記第一ブロック識別子を記載し、上記第二ブロック識別子を格納する第一コンテンツと上記第一ブロック識別子を関連付け、上記第二アイドル状態のストレージ・ブロックの位置は、上記第一アイドル状態のストレージ・ブロックの位置とは無関係であるプログラム・インストラクションと、
を備える、コンピュータ可読媒体。
[項目171]
第三ブロック識別子と関連する第二アイドル状態のストレージ・ブロックがアイドル状態になっていることを判定し、上記第一ブロック識別子から上記第三ブロック識別子へ上記現在操作可能なブロック識別子を更新するプログラム・インストラクション、
をさらに備える、
項目170に記載のコンピュータ可読媒体。
[項目172]
上記占有されたストレージ・ブロックがアイドル状態になっていることを判定することは、ストレージ・ファイルからの上記占有されたストレージ・ブロックへの参照が削除されている表示を受信することを備える、
項目170に記載のコンピュータ可読媒体。
[項目173]
上記占有されたストレージ・ブロックがアイドル状態になっていることを判定することは、上記ストレージ・ブロック内に格納されたコンテンツが削除されている表示を受信することを備える、
項目170に記載のコンピュータ可読媒体。
[項目174]
画像ストレージ・システムで利用可能なストレージを増加させるシステムにおいて、
メモリ・ストレージ領域を含むメディア・キャプチャ・デバイスと、
第二アイドル状態のストレージ・ブロックを参照する第二ブロック識別子として現在操作可能なブロック識別子を識別し、
第一ブロック識別子と関連する占有されたストレージ・ブロックがアイドル状態になっていることを判定し、
上記第二ブロック識別子から上記第一ブロック識別子へ上記現在操作可能なブロック識別子を更新し、
ブロック・インデックスに上記第一ブロック識別子を記載し、上記第二ブロック識別子を格納する第一コンテンツと上記第一ブロック識別子を関連付け、上記第二アイドル状態のストレージ・ブロックの位置は、上記第一アイドル状態のストレージ・ブロックの位置とは無関係である、
ように個別に、または集合的に構成された、1つ以上のプロセッサと、
を備える、システム。
[項目175]
また上記1つ以上のプロセッサは、
第三ブロック識別子と関連する第二アイドル状態のストレージ・ブロックがアイドル状態になっていることを判定し、上記第一ブロック識別子から上記第三ブロック識別子へ上記現在操作可能なブロック識別子を更新する、
ように構成される、
項目174に記載のシステム。
[項目176]
上記占有されたストレージ・ブロックがアイドル状態になっていることを判定することは、ストレージ・ファイルからの上記占有されたストレージ・ブロックへの参照が削除されている表示を受信することを備える、
項目174に記載のシステム。
[項目177]
上記占有されたストレージ・ブロックがアイドル状態になっていることを判定することは、上記ストレージ・ブロック内に格納されたコンテンツが削除されている表示を受信することを備える、
項目174に記載のシステム。
さらに方法は、ディレクトリ・テーブルからインデックス・ノードを読み出す前にディレクトリ項目を読み出すステップを備え得る。このディレクトリ項目は、読み出されるインデックス・ノードのコンテンツと関連し得る。開始インデックス・ノード識別子は、ディレクトリ項目から判定され得る。終了インデックス・ノード識別子は、ディレクトリ項目から判定され得る。加えて、インデックス・ノードを読み出すことは、終了インデックス・ノード識別子を識別した後に実行され得る。インデックス・ノードを読み出すステップは、読み出しコマンドを分析し、対応するディレクトリにインデックスを作成し、対応するインデックス・ノードにインデックスを作成した後に実行され得る。加えて、第二アイドル状態のストレージ・ブロックの位置は、第一アイドル状態のストレージ・ブロックの位置とは無関係であり得る。ファイルを格納するために必要なストレージ・ブロック数は、ファイル内のデータ量に基づき計算され得る。加えて、ファイル内のデータ量は、ファイルの解像度に基づき判定され得る。
図15は、本発明の実施形態に従い、画像ストレージ・システムの利用可能なストレージを増加させる方法のフローチャート1500を示す。ステップ1510で、現在操作可能なブロック識別子を第二ブロック識別子として識別する。第二ブロック識別子は、第二アイドル状態のストレージ・ブロックを参照する。ステップ1520で、第一ブロック識別子と関連する占有されたストレージ・ブロックがアイドル状態になっていることを判定する。ステップ1530で、現在操作可能なブロック識別子を第二ブロック識別子から第一ブロック識別子に更新する。ステップ1540で、第一ブロック識別子をブロック・インデックスに記載する。第一ブロック識別子は、第二ブロック識別子を格納する第一コンテンツと関連する。
さらに方法は、第三ブロック識別子と関連する第二アイドル状態のストレージ・ブロックがアイドル状態になっていることを判定するステップ、及び第一ブロック識別子から第三ブロック識別子に現在操作可能なブロック識別子を更新するステップを備え得る。占有されたストレージ・ブロックがアイドル状態になっていることを判定するステップは、ストレージ・ファイルから占有されたストレージ・ブロックへの参照が削除されている表示を受信することを備え得る。加えて、占有されたストレージ・ブロックがアイドル状態になっていることを判定するステップは、このストレージ・ブロック内に格納されたコンテンツが削除されている表示を受信することを備え得る。
本発明の好ましい実施形態を、本明細書に図示し説明したが、このような実施形態は、例示のみを目的としていることは当業者には明らかであろう。本発明を逸脱することなく、多くの変形実施形態、変更、代替形態を当業者は着想するであろう。本発明を実施するにあたり、本明細書に記載した発明の実施形態の様々な代替形態を採用し得ることを理解されたい。以下の特許請求の範囲は本発明の範囲を定め、それにより特許請求の範囲の方法及び構造、並びにそれらの均等物を網羅することを目的としている。

Claims (12)

  1. ファイルを格納する方法において、
    前記ファイルを受信するステップと、
    前記ファイルを格納するために必要な複数のアイドル状態のストレージ・ブロックを決定するステップと、
    前記複数のアイドル状態のストレージ・ブロックの各アイドル状態のストレージ・ブロックに対応し、それぞれがリンク関係を有する複数のブロックID識別子のうち、現在操作可能な第1のブロックID識別子に基づいて、アイドル状態のストレージ・ブロックを決定するステップと、
    決定された前記アイドル状態のストレージ・ブロックに前記ファイルを格納するステップと、
    格納された前記ファイルと関連する前記第1のブロックID識別子をインデックス・ノードに格納するステップと、
    前記ファイルを前記アイドル状態のストレージ・ブロックに格納した後、現在操作可能な前記第1のブロックID識別子を前記第1のブロックID識別子とリンク関係を有する第2のブロックID識別子に更新するステップと
    前記複数のアイドル状態のストレージ・ブロックのブロックに前記ファイルの一部が格納されるたびにブロック・インデックスのブロックID識別子ユニットのコンテンツを更新するステップと、
    を備え、
    前記複数のアイドル状態のストレージ・ブロックは、ファイル読み取りリファレンスに接続されないブロックを含み、前記ブロックは、アイドル状態を保ち、かつ前記ブロックが格納する新規のファイルを割り当てられるまで、以前のファイルの1部を格納し続け、
    前記ファイルを格納するステップは、前記ブロックに格納する新規のファイルがあるときに、前記ブロックの前記以前のファイル上に前記新規のファイルを書き込むことで、前記新規のファイルを格納するステップを含み、
    鍵情報領域に格納された場合に操作可能なブロック識別子は、前記ブロックを格納するときに更新され、
    前記操作可能なブロック識別子は、前記ファイルからのすべてのデータを格納した後に更新され、
    前記操作可能なブロック識別子は、最後に占有されたブロック識別子、及び前記ブロック・インデックスの前記占有されたブロック識別子によりリンクするブロック識別子に基づき決定される、方法。
  2. 利用可能なインデックス・ノード識別子を決定して、前記ファイルを受信した後に前記ファイルのディスクリプションを格納するステップ、をさらに備える、請求項1に記載の方法。
  3. 前記インデックス・ノード識別子が連続したテーブルに記載されるとき、直前に占有されたインデックス・ノード識別子へ固定増分を加えることで前記利用可能なインデックス・ノード識別子を決定するステップをさらに備える、請求項2に記載の方法。
  4. 前記ファイルの格納を完了した後に前記利用可能なインデックス・ノード識別子を更新するステップ、をさらに備える、請求項2又は請求項3に記載の方法。
  5. 前記ファイルを格納するために必要なアイドル状態のストレージ・ブロック数は、前記ファイルのデータ量に基づき計算される、請求項1から請求項4の何れか1項に記載の方法。
  6. 前記ファイルの前記データ量は、前記ファイルの解像度に基づき決定される、請求項5に記載の方法。
  7. 前記利用可能なインデックス・ノード識別子と関連する前記インデックス・ノードで格納されたままで保持ブロック数を更新するステップ、をさらに備え、
    前記保持ブロック数は前記ファイルを格納するために使用された参照を含む、請求項2から請求項4の何れか1項に記載の方法。
  8. 前記ファイルを受信する前にファイル・システムを初期化するステップ、をさらに備える、請求項1から請求項の何れか1項に記載の方法。
  9. 前記ファイル・システムを初期化するステップは、利用可能なインデックス・ノード識別子を決定して記録することを備える、請求項に記載の方法。
  10. 前記ファイル・システムを初期化するステップは、操作可能なブロック識別子を決定して記録するステップを備える、請求項に記載の方法。
  11. 前記ファイルは、可動物体上に設置されるメディア・キャプチャ・デバイスを使用してキャプチャされる、請求項1から請求項10の何れか1項に記載の方法。
  12. 前記可動物体は、無人航空機(UAV)であり、前記ファイルの前記キャプチャは、前記UAVが飛行している間に行われる、請求項11に記載の方法。
JP2017559552A 2015-06-01 2015-06-01 ファイルを格納する方法 Active JP6818982B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/080532 WO2016192025A1 (en) 2015-06-01 2015-06-01 Systems and methods for memory architecture

Publications (2)

Publication Number Publication Date
JP2018515852A JP2018515852A (ja) 2018-06-14
JP6818982B2 true JP6818982B2 (ja) 2021-01-27

Family

ID=57439788

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017559552A Active JP6818982B2 (ja) 2015-06-01 2015-06-01 ファイルを格納する方法

Country Status (4)

Country Link
US (1) US10635633B2 (ja)
JP (1) JP6818982B2 (ja)
CN (1) CN107615253B (ja)
WO (1) WO2016192025A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019061270A1 (zh) * 2017-09-29 2019-04-04 深圳市大疆创新科技有限公司 数据缓存装置及控制方法、数据处理芯片、数据处理系统
CN108804571B (zh) * 2018-05-23 2021-11-05 湖南博匠信息科技有限公司 一种数据存储方法、装置以及设备
CN111262952B (zh) * 2020-03-27 2023-11-21 北京环鼎科技有限责任公司 用于存储式测井的声波数据文件下载的断点续载方法
US20230064221A1 (en) * 2021-08-27 2023-03-02 Weld North Education LLC Live electronic content customization

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6035367A (en) 1997-04-04 2000-03-07 Avid Technology, Inc. Computer file system providing looped file structure for post-occurrence data collection of asynchronous events
JP4049525B2 (ja) * 2000-08-16 2008-02-20 富士通株式会社 分散処理システム
US7464877B2 (en) 2003-11-13 2008-12-16 Metrologic Instruments, Inc. Digital imaging-based bar code symbol reading system employing image cropping pattern generator and automatic cropped image processor
US7708205B2 (en) 2003-11-13 2010-05-04 Metrologic Instruments, Inc. Digital image capture and processing system employing multi-layer software-based system architecture permitting modification and/or extension of system features and functions by way of third party code plug-ins
US7062602B1 (en) 2001-04-09 2006-06-13 Matrix Semiconductor, Inc. Method for reading data in a write-once memory device using a write-many file system
JP2003030966A (ja) * 2001-07-18 2003-01-31 Sony Corp 再生装置および方法、記録媒体、並びにプログラム
US6823417B2 (en) 2001-10-01 2004-11-23 Hewlett-Packard Development Company, L.P. Memory controller for memory card manages file allocation table
US7751628B1 (en) 2001-12-26 2010-07-06 Reisman Richard R Method and apparatus for progressively deleting media objects from storage
US7330956B1 (en) * 2002-04-16 2008-02-12 Emc Corporation Bucket based memory allocation
JP2004318540A (ja) * 2003-04-17 2004-11-11 Hitachi Ltd 性能情報監視装置、方法およびプログラム
US7076605B1 (en) * 2003-04-25 2006-07-11 Network Appliance, Inc. Method and apparatus for writing data to a storage device
US7103772B2 (en) 2003-05-02 2006-09-05 Giritech A/S Pervasive, user-centric network security enabled by dynamic datagram switch and an on-demand authentication and encryption scheme through mobile intelligent data carriers
CN100440171C (zh) 2004-02-24 2008-12-03 中国科学院声学研究所 一种嵌入式环境下音像录放装置的文件组织管理方法
CN101019115B (zh) 2004-03-18 2012-04-18 安德鲁·彼得·利布曼 用于多工作站/多平台非线性视频编辑系统的媒体文件访问和存储解决方案
JP4209820B2 (ja) 2004-07-15 2009-01-14 株式会社ハギワラシスコム メモリカードシステム及び該メモリカードシステムで使用されるライトワンス型メモリカード、ホストシステムと半導体記憶デバイスとからなるシステム
JP2006133882A (ja) 2004-11-02 2006-05-25 Canon Inc 情報処理装置及び方法
US7475274B2 (en) 2004-11-17 2009-01-06 Raytheon Company Fault tolerance and recovery in a high-performance computing (HPC) system
JP4689247B2 (ja) 2004-11-19 2011-05-25 キヤノン株式会社 カメラ及びその制御方法
US8140813B2 (en) * 2005-09-15 2012-03-20 Eye-Fi, Inc. Endless memory
JP4890048B2 (ja) * 2006-02-24 2012-03-07 株式会社日立製作所 記憶制御装置及び記憶制御装置を用いたデータマイグレーション方法
US7779426B2 (en) 2006-03-30 2010-08-17 Microsoft Corporation Describing and querying discrete regions of flash storage
CN100438625C (zh) * 2006-07-19 2008-11-26 杭州华三通信技术有限公司 一种视频监控数据存储管理方法及系统
US9003354B2 (en) * 2006-07-20 2015-04-07 Texas Instruments Incorporated Optimizing memory usage and system performance in a file system requiring entire blocks to be erased for rewriting data
JP2008059228A (ja) * 2006-08-31 2008-03-13 Sharp Corp ファイルシステム
WO2008026466A1 (fr) * 2006-08-31 2008-03-06 Sharp Kabushiki Kaisha Système de fichiers
US8045504B2 (en) 2006-12-26 2011-10-25 Motorola Mobility, Inc. Method and apparatus for facilitating network mobility
US8010711B2 (en) 2007-01-26 2011-08-30 Digital Video Chip, Llc Universal multimedia
TWI417722B (zh) * 2007-01-26 2013-12-01 Hicamp Systems Inc 階層式不可改變的內容可定址的記憶體處理器
WO2009062029A1 (en) 2007-11-09 2009-05-14 Carnegie Mellon University Efficient high performance system for writing data from applications to a safe file system
US7953919B2 (en) 2007-12-21 2011-05-31 Spansion Llc Physical block addressing of electronic memory devices
US7979264B2 (en) 2008-02-26 2011-07-12 Streaming Networks (Pvt) Ltd System and method for interfacing a media processing apparatus with a computer
JP2009238094A (ja) 2008-03-28 2009-10-15 Hitachi Ltd ストレージシステム及びデータ保存方法
US7840730B2 (en) 2008-06-27 2010-11-23 Microsoft Corporation Cluster shared volumes
US8315995B1 (en) * 2008-09-09 2012-11-20 Peer Fusion, Inc. Hybrid storage system
US8086794B2 (en) 2008-12-12 2011-12-27 Datadirect Networks, Inc. System and method for data migration between computer cluster architecture and data storage devices
US8572036B2 (en) 2008-12-18 2013-10-29 Datalight, Incorporated Method and apparatus for fault-tolerant memory management
SE534142C2 (sv) 2009-06-16 2011-05-10 Ikonoskop Ab Förfarande och system för lagring av data
CA2766161C (en) 2009-06-26 2018-07-17 Simplivity Corporation Scalable indexing in a non-uniform access memory
US8723952B1 (en) 2009-11-01 2014-05-13 Leonid Rozenboim Tamper-resistant video surveillance network
CN101699442B (zh) * 2009-11-04 2012-04-18 华为技术有限公司 一种三态内容可寻址存储器tcam的寻址方法及装置
CN101854388B (zh) 2010-05-17 2014-06-04 浪潮(北京)电子信息产业有限公司 一种集群存储中并行访问大量小文件的方法及系统
CN102024034B (zh) * 2010-11-26 2012-05-30 中国科学院声学研究所 一种面向高清媒体的嵌入式文件系统的碎片处理方法
US8738572B2 (en) * 2011-05-24 2014-05-27 Red Lambda, Inc. System and method for storing data streams in a distributed environment
US8612719B2 (en) 2011-07-21 2013-12-17 Stec, Inc. Methods for optimizing data movement in solid state devices
CN102915340A (zh) * 2012-02-29 2013-02-06 浙江工商大学 一种扩展的基于b+树对象文件系统
US20130269039A1 (en) * 2012-04-04 2013-10-10 Infinidat Ltd. Data access control
CN102768645B (zh) * 2012-06-14 2016-01-20 国家超级计算深圳中心(深圳云计算中心) 混合缓存的固态硬盘预取方法和固态硬盘ssd
CN102866954B (zh) * 2012-08-31 2015-11-25 华为技术有限公司 内存分配的方法及装置
CN102999442B (zh) 2012-11-16 2015-12-02 成都索贝数码科技股份有限公司 面向媒体应用的存储系统及方法
US9063966B2 (en) * 2013-02-01 2015-06-23 International Business Machines Corporation Selective monitoring of archive and backup storage
JP2014199567A (ja) * 2013-03-29 2014-10-23 パナソニックヘルスケア株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
CN103389945B (zh) * 2013-07-05 2017-04-12 杭州华三通信技术有限公司 一种内存管理的方法及装置
JP2015014963A (ja) * 2013-07-05 2015-01-22 富士通株式会社 ストレージ制御装置、制御プログラム及び制御方法
CN103702057B (zh) 2013-09-03 2017-04-12 成都竣泰科技有限公司 一种适应于多路并发写入流媒体数据的分块式存储算法
US20150130840A1 (en) * 2013-11-08 2015-05-14 Sharper Shape Ltd. System and method for reporting events

Also Published As

Publication number Publication date
US20170052963A1 (en) 2017-02-23
JP2018515852A (ja) 2018-06-14
US10635633B2 (en) 2020-04-28
CN107615253A (zh) 2018-01-19
CN107615253B (zh) 2021-03-12
WO2016192025A1 (en) 2016-12-08

Similar Documents

Publication Publication Date Title
JP6818982B2 (ja) ファイルを格納する方法
US20150283706A1 (en) Enhanced system and method for planning and controlling for robotic devices
CN108235815B (zh) 摄像控制装置、摄像装置、摄像系统、移动体、摄像控制方法及介质
US20200326709A1 (en) Method and device for controlling reset of gimbal, gimbal, and unmanned aerial vehicle
CN111567032B (zh) 确定装置、移动体、确定方法以及计算机可读记录介质
US20210109312A1 (en) Control apparatuses, mobile bodies, control methods, and programs
CN110278714B (zh) 障碍物检测方法、移动平台及计算机可读存储介质
US20210105411A1 (en) Determination device, photographing system, movable body, composite system, determination method, and program
US10942331B2 (en) Control apparatus, lens apparatus, photographic apparatus, flying body, and control method
JP2019191428A (ja) 制御装置、撮像装置、移動体、制御方法、及びプログラム
JP6481228B1 (ja) 決定装置、制御装置、撮像システム、飛行体、決定方法、及びプログラム
US11066182B2 (en) Control apparatus, camera apparatus, flying object, control method and program
US20210112202A1 (en) Control apparatuses, mobile bodies, control methods, and programs
WO2018185940A1 (ja) 撮像制御装置、撮像装置、撮像システム、移動体、撮像制御方法、及びプログラム
JP6896963B1 (ja) 制御装置、撮像装置、移動体、制御方法、及びプログラム
JP6413170B1 (ja) 決定装置、撮像装置、撮像システム、移動体、決定方法、及びプログラム
JP6884959B1 (ja) 制御装置、画像処理装置、撮像装置、移動体、制御方法、及びプログラム
CN111213369B (zh) 控制装置、方法、摄像装置、移动体以及计算机可读存储介质
JP6878738B1 (ja) 制御装置、撮像システム、移動体、制御方法、及びプログラム
JP6569157B1 (ja) 制御装置、撮像装置、移動体、制御方法、及びプログラム
JP6459012B1 (ja) 制御装置、撮像装置、飛行体、制御方法、及びプログラム
JP6888215B2 (ja) 制御装置、撮像装置、撮像システム、移動体、制御方法、及びプログラム
CN111615663A (zh) 控制装置、摄像装置、摄像系统、移动体、控制方法以及程序
JP2020052220A (ja) 制御装置、撮像装置、移動体、制御方法、及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171128

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171128

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181023

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181030

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181206

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190819

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20190819

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20190826

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20190827

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20191101

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20191112

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20200428

C13 Notice of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: C13

Effective date: 20200923

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201007

C23 Notice of termination of proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C23

Effective date: 20201027

C03 Trial/appeal decision taken

Free format text: JAPANESE INTERMEDIATE CODE: C03

Effective date: 20201201

C30A Notification sent

Free format text: JAPANESE INTERMEDIATE CODE: C3012

Effective date: 20201201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201203

R150 Certificate of patent or registration of utility model

Ref document number: 6818982

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150