IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ イラシオ、インコーポレイテッドの特許一覧

特表2024-544944完全性検証のカスタマイズ可能なレベルを有する動的チェックサム生成及び確認のためのシステム及び方法
<>
  • 特表-完全性検証のカスタマイズ可能なレベルを有する動的チェックサム生成及び確認のためのシステム及び方法 図1
  • 特表-完全性検証のカスタマイズ可能なレベルを有する動的チェックサム生成及び確認のためのシステム及び方法 図2
  • 特表-完全性検証のカスタマイズ可能なレベルを有する動的チェックサム生成及び確認のためのシステム及び方法 図3
  • 特表-完全性検証のカスタマイズ可能なレベルを有する動的チェックサム生成及び確認のためのシステム及び方法 図4
  • 特表-完全性検証のカスタマイズ可能なレベルを有する動的チェックサム生成及び確認のためのシステム及び方法 図5
  • 特表-完全性検証のカスタマイズ可能なレベルを有する動的チェックサム生成及び確認のためのシステム及び方法 図6
  • 特表-完全性検証のカスタマイズ可能なレベルを有する動的チェックサム生成及び確認のためのシステム及び方法 図7
  • 特表-完全性検証のカスタマイズ可能なレベルを有する動的チェックサム生成及び確認のためのシステム及び方法 図8
  • 特表-完全性検証のカスタマイズ可能なレベルを有する動的チェックサム生成及び確認のためのシステム及び方法 図9
  • 特表-完全性検証のカスタマイズ可能なレベルを有する動的チェックサム生成及び確認のためのシステム及び方法 図10
  • 特表-完全性検証のカスタマイズ可能なレベルを有する動的チェックサム生成及び確認のためのシステム及び方法 図11
  • 特表-完全性検証のカスタマイズ可能なレベルを有する動的チェックサム生成及び確認のためのシステム及び方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-05
(54)【発明の名称】完全性検証のカスタマイズ可能なレベルを有する動的チェックサム生成及び確認のためのシステム及び方法
(51)【国際特許分類】
   G06F 21/64 20130101AFI20241128BHJP
【FI】
G06F21/64
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024527643
(86)(22)【出願日】2022-11-04
(85)【翻訳文提出日】2024-06-26
(86)【国際出願番号】 US2022079311
(87)【国際公開番号】W WO2023086756
(87)【国際公開日】2023-05-19
(31)【優先権主張番号】17/525,705
(32)【優先日】2021-11-12
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】523436023
【氏名又は名称】イラシオ、インコーポレイテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ボガッツ、ジョセフ
(57)【要約】
完全性検証のカスタマイズ可能なレベルを有するチェックサム生成及び確認システム及びチェックサムを動的に生成及び確認する関連の方法が開示される。システムは、位置値及び非位置値で定義されたデータ点を有するファイルを受信し、データ点の第1のセットをデータ点の第2のセットから区別する。システムは、データ点の第1のセットからの各データ点の位置値及び非位置値からの2又はそれよりも多くの値の組み合わせに基づいて、且つ、チェックサムからのデータ点の第2のセットの位置値及び非位置値の除外にさらに基づいて、チェックサムを生成する。システムは、データ点の第1のセットに関連付けられているデータの完全性を検証するために当該チェックサムを用いてよい。
【特許請求の範囲】
【請求項1】
位置値及び非位置値で定義された複数のデータ点を含むファイルを受信する段階;
前記ファイルに関連付けられている1又は複数の特質又はユーザ入力に基づいて、前記ファイルに関する完全性検証の特定のレベルを設定する段階;
前記完全性検証の特定のレベルに関連付けられているデータ点選択基準を判定する段階;
前記複数のデータ点の第1のセットを前記複数のデータ点の第2のセットから区別する段階、ここで、前記データ点の第1のセットを区別する段階は、前記データ点の第1のセットの前記位置値及び前記非位置値のうちの1又は複数が前記データ点選択基準を満たすこと及び前記データ点の第2のセットの前記位置値及び前記非位置値が前記データ点選択基準を満たさないことを判定する段階を有する;
前記データ点の第1のセットからの各データ点の前記位置値及び前記非位置値からの2又はそれよりも多くの値の組み合わせに基づいて、且つ、チェックサムからの前記データ点の第2のセットの前記位置値及び前記非位置値の除外にさらに基づいて、前記チェックサムを生成する段階;及び
前記チェックサムを用いて前記データ点の第1のセットに関連付けられているデータの完全性を検証する段階
を備える方法。
【請求項2】
前記複数のデータ点のビジュアライゼーションを提示する段階;
前記ビジュアライゼーションにおける特定の領域の選択を検出する段階;
をさらに備え、
前記データ点の第1のセットを区別する段階は、前記データ点の第1のセットの前記位置値が前記特定の領域内にあること及び前記データ点の第2のセットの前記位置値が前記特定の領域の外にあることを判定する段階をさらに有する、請求項1に記載の方法。
【請求項3】
前記チェックサムを生成する段階は、
前記データ点の第1のセットの前記位置値に従って前記データ点の第1のセットをソートする段階;及び
前記データ点の第1のセットをソートした後に判定された特定の順序で前記データ点の第1のセットの前記非位置値を組み合わせることから生成された値から前記チェックサムを生成する段階
を有する、請求項1又は2に記載の方法。
【請求項4】
前記チェックサムを生成する段階は、
前記データ点の第1のセットの前記位置値及び前記非位置値のサブセットの組み合わせから一意の値を計算する段階、ここで、前記データ点の第1のセットの前記位置値及び前記非位置値の前記サブセットは、前記データ点の第1のセットの全部よりも少ない前記位置値及び前記非位置値を用いる
を有する、請求項1又は2に記載の方法。
【請求項5】
前記チェックサムを生成する段階は、
ハッシュ化値を用いて前記一意の値をハッシュ化する段階;及び
前記ハッシュ化からの結果を前記チェックサムとして記憶する段階
さらに有する、請求項4に記載の方法。
【請求項6】
前記チェックサムを生成する段階は、
前記データ点の第1のセットの異なるサブセットの前記位置値及び前記非位置値から異なる値をサンプリングする段階;及び
前記データ点の第1のセットの前記異なるサブセットからサンプリングされた前記異なる値に基づいて前記チェックサムを計算する段階
を有する、請求項1又は2に記載の方法。
【請求項7】
前記データ点の第1のセットを区別する段階は、
前記データ点の第1のセットの前記位置値及び前記非位置値のうちの1又は複数において第1の共通性が検出され、前記第1の共通性が前記データ点選択基準を満たすことに基づいて、前記データ点の第1のセットを第1の分類で分類する段階;及び
前記データ点の第2のセットの前記位置値及び前記非位置値が前記第1の共通性を欠いており、前記データ点選択基準を満たさないことに基づいて、前記データ点の第2のセットを異なる第2の分類で分類する段階
をさらに有する、請求項1又は2に記載の方法。
【請求項8】
前記データの前記完全性を検証する段階は、
前記ファイルを前記チェックサムとともに受信する段階;
前記ファイルに関連付けられているサンプリングアプローチを判定する段階;
前記サンプリングアプローチに応じて前記ファイルからデータ点の第3のセットを選択する段階;
前記データ点の第3のセットからの各データ点の前記位置値及び前記非位置値からの2又はそれよりも多くの値の組み合わせに基づいて、確認チェックサムを計算する段階;及び
前記ファイルとともに受信された前記チェックサムが前記確認チェックサムと一致していることに応じて、前記ファイルの前記データ点の第1のセットが変更されていないことを確認する段階
を有する、請求項1又は2に記載の方法。
【請求項9】
前記チェックサムは、1回目に生成される第1のチェックサムであり、
前記データの前記完全性を検証する段階は、
前記1回目の後の2回目に前記複数のデータ点から区別されたデータ点の特定のセットからの各データ点の前記位置値及び前記非位置値からの前記2又はそれよりも多くの値の前記組み合わせに基づいて、第2のチェックサムを生成する段階;
前記第2のチェックサムが前記第1のチェックサムと一致していることに基づいて、前記複数のデータ点が変更されていないと検証したことに応じて第1のアクションを実行する段階;及び
前記第2のチェックサムが前記第1のチェックサムと異なっていることに基づいて、前記複数のデータ点が変更されていると検証したことに応じて、異なる第2のアクションを実行する段階
を有する、請求項1又は2に記載の方法。
【請求項10】
異なるファイルからのデータ点の前記位置値及び前記非位置値を分析する段階;
前記異なるファイルにおける異なるデータを区別する前記位置値及び前記非位置値のうちの1又は複数における共通性をモデル化する段階;
をさらに備え、
前記データ点の第1のセットを区別する段階は、前記データ点の第1のセットの前記位置値及び前記非位置値が前記共通性を有すること及び前記データ点の第2のセットの前記位置値及び前記非位置値が前記共通性を有しないことを判定する段階をさらに有する
請求項1又は2に記載の方法。
【請求項11】
前記ファイルのサイズを判定する段階;
をさらに備え、
前記チェックサムを生成する段階は、
前記ファイルの前記サイズが閾値よりも大きいことに応じて、前記データ点の第1のセットからの各データ点の前記位置値及び前記非位置値からの前記2又はそれよりも多くの値の前記組み合わせに基づいて、第1のチェックサムを計算する段階;及び
前記ファイルの前記サイズが前記閾値よりも小さいことに応じて、前記複数のデータ点の前記位置値及び前記非位置値の全部に基づいて、第2のチェックサムを計算する段階
を有する、請求項1又は2に記載の方法。
【請求項12】
1又は複数のプロセッサ;及び
前記1又は複数のプロセッサによって実行される場合、前記1又は複数のプロセッサに、
位置値及び非位置値で定義された複数のデータ点を含むファイルを受信させ;
前記ファイルに関連付けられている1又は複数の特質又はユーザ入力に基づいて、前記ファイルに関する完全性検証の特定のレベルを設定させ;
前記完全性検証の特定のレベルに関連付けられているデータ点選択基準を判定させ;
前記複数のデータ点の第1のセットを前記複数のデータ点の第2のセットから区別させ、ここで、前記データ点の第1のセットを区別することは、前記データ点の第1のセットの前記位置値及び前記非位置値のうちの1又は複数が前記データ点選択基準を満たすこと、及び、前記データ点の第2のセットの前記位置値及び前記非位置値が前記データ点選択基準を満たさないことを判定することを含む;
前記データ点の第1のセットからの各データ点の前記位置値及び前記非位置値からの2又はそれよりも多くの値の組み合わせに基づいて、且つ、チェックサムからの前記データ点の第2のセットの前記位置値及び前記非位置値の除外にさらに基づいて、前記チェックサムを生成させ;及び
前記チェックサムを用いて前記データ点の第1のセットに関連付けられているデータの完全性を検証させる、
処理命令を含むコンピュータ可読媒体を有するメモリ
を備えるシステム。
【請求項13】
前記チェックサムを生成することは、
前記データ点の第1のセットの前記位置値に従って前記データ点の第1のセットをソートすること;及び
前記データ点の第1のセットをソートした後に判定された特定の順序で前記データ点の第1のセットの前記非位置値を組み合わせることから生成された値から前記チェックサムを生成すること
を含む、請求項12に記載のシステム。
【請求項14】
前記チェックサムを生成することは、
前記データ点の第1のセットの前記位置値及び前記非位置値のサブセットの組み合わせから一意の値を計算すること、ここで、前記データ点の第1のセットの前記位置値及び前記非位置値の前記サブセットは、前記データ点の第1のセットの全部よりも少ない前記位置値及び前記非位置値を用いる
を含む、請求項12に記載のシステム。
【発明の詳細な説明】
【背景技術】
【0001】
データ完全性を検証(verify)する及び/又はファイルの内容が変更されているか否かを判定するために、チェックサムが用いられ得る。一般的なチェックサム生成アルゴリズムとしては、メッセージダイジェストアルゴリズム(「MD5」)、セキュアハッシュアルゴリズム(「SHA」)の類い、及び巡回冗長検査(「CRC」)アルゴリズムが挙げられる。
【0002】
チェックサムは、ファイルの全部のデータにわたってハッシュ又は他の計算を実行することによって生成され得る。チェックサムは、データのいずれかの部分が変更されているか否かを検証するために用いられ得る固定サイズの値である。
【0003】
ファイルサイズが増大するにつれて、全部のファイルデータに関わる計算からチェックサムを生成することは、計算コストが高くなり得、そのようなチェックサムを確認すること(validating)は、ユーザ体験においてあまりにも大きい遅延を与える場合がある。
【0004】
したがって、チェックサム生成及び確認のための汎用アプローチのアップデートが要求されている。
【図面の簡単な説明】
【0005】
図1】本明細書において提示されるいくつかの実施形態による、完全性検証のユーザ定義レベルに基づくチェックサムの動的生成及び確認の一例を示している。
【0006】
図2】本明細書において提示されるいくつかの実施形態による、ファイルに関して指定された完全性検証のカスタムレベル及び指定された完全性検証のカスタムレベルの結果として当該ファイルから自動的に選択されたデータのセットに基づく動的チェックサム生成及び確認の一例を示している。
【0007】
図3】本明細書において提示されるいくつかの実施形態による、チェックサム計算又は確認において全部のデータを含むことなくファイルにおけるデータの構造及び量を検証するための動的チェックサム生成及び確認の一例を示している。
【0008】
図4】本明細書において提示されるいくつかの実施形態による、全部よりも少ない点群データに関わるチェックサム計算に基づく、全部の点群データの完全性を検証するための動的チェックサム生成及び確認の一例を示している。
【0009】
図5】本明細書において提示されるいくつかの実施形態による、点群データ点からの値の第2のセットに従ってソートされた点群データ点からの値の第1のセットのハッシュに基づいて一意のチェックサムを生成することの一例を示している。
【0010】
図6】本明細書において提示されるいくつかの実施形態による、ファイルからの全部よりも少ないデータを用いて当該ファイルにおける全部のデータの完全性を検証するための一意のチェックサムを生成することの別の例を示している。
【0011】
図7】本明細書において提示されるいくつかの実施形態による、点群又はファイル内のデータの自動的に識別されたサブセットに基づいてチェックサムを動的に生成するためのプロセスを提示している。
【0012】
図8】本明細書において提示されるいくつかの実施形態による、自動ファイルデータ区別の例を示している。
【0013】
図9】本明細書において提示されるいくつかの実施形態による、ファイルからの重要なデータ及び重要でないデータのサンプリングのハイブリッド選択に基づく動的チェックサム生成のためのプロセスを提示している。
【0014】
図10】本明細書において提示されるいくつかの実施形態による動的チェックサム確認のためのプロセスを提示している。
【0015】
図11】本明細書において提示されるいくつかの実施形態による、デバイスの一部としてのチェックサム生成及び確認システムの1又は複数の統合を示している。
【0016】
図12】本明細書において記載される1又は複数の実施形態による1又は複数のデバイスの例示的なコンポーネントを示している。
【発明を実施するための形態】
【0017】
以下の詳細な説明では、添付図面を参照する。異なる図面における同じ参照番号は、同じ又は類似の要素を識別し得る。
【0018】
完全性検証のカスタマイズ可能なレベルを有するチェックサムの動的生成及び確認のためのシステム及び方法が提供される。完全性検証のカスタマイズ可能なレベルを有する動的チェックサム生成及び確認は、異なるサイズのファイル、異なる量のデータを有するファイル、及び/又は異なるレベルの重要度を有するデータを含むファイルのための効率的なデータ完全性検証を提供し得る。当該システム及び方法は、ファイルからの指定された重要な又は重大なデータに基づき、同ファイルからの他のデータをチェックサム計算及び/又は確認から省いて、チェックサムを動的に生成及び/又は確認することを備え得る。
【0019】
いくつかの実施形態において、異なるファイルからのデータを自動的に区別及び/又は分類するために、及び、当該異なるファイルからの区別及び/又は分類されたデータの異なるサブセットに基づいて異なるチェックサムを動的に生成するために、人工知能及び/又は機械学習(「AI/ML」)が用いられてよい。いくつかのそのような実施形態において、AI/MLは、異なるファイル内の重要なデータ及びファイルタイプを識別するように、且つ、チェックサム計算及び/又は検証から重要でないデータを省きながら重要なデータの完全性を維持するためのチェックサムを効率的に計算するように訓練されてよい。したがって、チェックサムは、各ファイルに関して、当該ファイルからの全部のデータがチェックサムに含まれた場合よりも少ない時間でチェックサムが生成及び/又は確認され得るように、且つ、チェックサム計算のために用いられたデータのサブセットの知識を伴わずに、改変されたデータセットに関して当該チェックサムが再生成され得ないように、当該ファイルの内容及び/又はデータに基づいてカスタマイズされてよい。
【0020】
いくつかの実施形態において、チェックサムの上記動的生成及び確認は、大きなファイル及び/又は様々なレベルの重要度を有するデータを含むファイルの完全性を効率的に検証するために用いられ得る。そのようなファイルの例は、点群によって表され得る。
【0021】
点群は、3Dオブジェクト又は環境のイメージングされた点に対応する、三次元空間(「3D」)におけるデータ点(例えば、数千、数百万、数十億等)を含み得る。点群及び個々のデータ点は、3D又は深度センシングカメラ、光検出及び測距(「LiDAR」)センサ、磁気共鳴画像(「MRI」)デバイス、陽電子放出断層撮影(「PET」)スキャニングデバイス、コンピュータ断層撮影(「CT」)スキャニングデバイス、飛行時間デバイス、及び/又は、3Dオブジェクト、ボリュメトリックオブジェクト、又は3D環境のための他のイメージング機器によって生成され得る。点群は、2又はそれよりも多くのデバイスの出力から生成され得る。例えば、第1のイメージングデバイス(例えば、LiDARセンサ)は、3D空間内の各データ点に関する位置を判定し得、第2のイメージングデバイス(例えば、高解像度カメラ)は、各データ点に関する視覚的特性又は他の非位置情報を測定又は捕捉し得る。
【0022】
いくつかの実施形態において、点群及び当該点群の個々のデータ点は、コンピュータ生成されてよく、デジタルに作成された3Dオブジェクト又は環境に対応してよい。いくつかの実施形態において、点群は、イメージングされた現実世界のオブジェクト又は環境及びデジタルに作成されたオブジェクト又は環境の組み合わせを含んでよい。
【0023】
点群の特定の領域は、3Dオブジェクト、ボリュメトリックオブジェクト、又は3D環境をイメージングする場合にそれらの領域において検出される情報の変化する量に基づいて、データ点を有しない、より低い密度のデータ点を有する、及び/又はより高い密度のデータ点を有する場合があるので、点群データ点は、二次元(「2D」)画像のピクセルとは異なり得る。例えば、点群イメージングデバイスは、当該デバイスからのより多数の放出ビーム(例えば、光、レーザ等)が、より遠くのオブジェクトよりもより近くのオブジェクトと接触し得、各ビームからの測定の結果として点群の異なるデータ点が得られるので、当該点群イメージングデバイスにより近いオブジェクトを、同じオブジェクトが当該点群イメージングデバイスからさらに離れた位置にある場合よりも多くのデータ点(例えば、より高い解像度)で捕捉し得る。対照的に、2D画像のピクセルは、2D画像の解像度によって定義される均一な密度及び固定配列を有する。また、点群データ点は、不均一な分布、配置、又は位置決めを有し得、一方、2D画像は、定義された解像度(例えば、640×480、800×600等)の各ピクセルに関するピクセルデータを有する。
【0024】
各点群データ点は、位置及び非位置値を含んでよい。位置値は、3D空間内の座標を含んでよい。例えば、各点群データ点は、3D環境の各イメージングされた点、特徴、要素、オブジェクトに関するx座標、y座標、及びz座標データ点値を含み得る。非位置値は、データ点の記述的特性に関する値を含んでよい。記述的特性は、イメージングされた点、特徴、要素、又はオブジェクトの視覚的特性を含み得る。視覚的特性は、検出された色に対応し得る。色は、赤、緑、及び青(「RGB」)値を使用して表され得る。いくつかの実施形態において、記述的特性は、イメージングされた点、特徴、要素又はオブジェクトの色度及び/又は輝度を含み得る。いくつかの他の実施形態において、記述的特性は、3D環境を捕捉するために使用されるイメージングデバイスの特質を含み得る。例えば、記述的特性は、3D環境の特定の点を検出及び/又はイメージングするのに使用された磁場の強度を定量化するためのテスラ強度値を含み得る。いくつかの実施形態において、記述的特性は、イメージングデバイス又はイメージングされているオブジェクトのエネルギー、可聴音又は音声、及び/又は他の特性を含み得る。したがって、非位置値は、イメージングされたオブジェクト部分の任意の特質又は記述的特性(例えば、色相、彩度、明度、反射率等)、又は、3D空間における対応するデータ点におけるオブジェクト部分を捕捉するために使用されたイメージングデバイスの任意の特質又は記述的特性を含んでよい。
【0025】
各特定のデータ点に関する位置及び非位置値は、アレイに記憶されてよく、何らかの識別子又はデータ値のうちの1又は複数を用いて当該特定のデータ点に関連付けられてよい。例えば、点群データ点は、x座標、y座標、及びz座標値のルックアップを介してアクセスされ得るので、当該データ点は、そのx座標、y座標、及びz座標値、及び、赤、緑、青、色度、輝度、テスラ、及び/又は他の値等の非位置情報で識別されてよい。
【0026】
点群からの数百万又は数十億のデータ点の各値(例えば、位置及び非位置値)を用いたチェックサムの生成及び/又は確認は、完了に数秒かかる場合があり、点群データ点のロード、レンダリング、編集、及び/又は処理を含む点群の使用に関連付けられた他のリソース及び/又は時間のかかるタスクに遅延を追加することによってユーザ体験を妨害し得る。また、データ点の一部は、点群によって表される3D環境の背景及び/又は関係のない特徴に対応し得る。これらのデータ点を含むこと及びそれらが変化のないままであるか又は変更されるかは、点群の主要又は重要なデータ点又は部分に不利に作用(affect)しない場合がある。したがって、全部の点群データ点からの全部の値を含むチェックサムを生成することは、点群の主要又は重要なデータ点又は部分の完全性を維持及び/又は検証することにおけるいかなる追加の利益ももたらすことなく、点群完全性を検証することに関連付けられた時間及びコストを単純に増加させる場合がある。
【0027】
いくつかの実施形態において、ファイルからの全部のデータがチェックサム生成及び/又は確認のために用いられる汎用アプローチの代わりに、動的チェックサム生成及び確認が用いられ得る。いくつかの実施形態の動的チェックサム生成及び確認は、当該点群又はファイルに関して指定された完全性検証のカスタムレベルに基づく点群データ点のサブセット及び/又は点群データ点の全部又はサブセットからの値のサブセットに基づいて、チェックサムを生成することを含んでよい。そうすることにおいて、動的チェックサム生成及び確認は、完全性検証を点群の主要又は重要なデータ点又は部分に集中させ、それにより、点群、大きなファイル、及び/又は様々なレベルの重要度を有するデータを含むファイルの完全性を検証するためのより速くより効率的な方法論を提供し得る。動的チェックサム生成及び確認は、完全性検証のレベルをカスタマイズする及び/又は完全性検証をファイルデータの異なるサブセットに集中させるための様々な手動及び自動化技法をサポートし得る。
【0028】
図1は、本明細書において提示されるいくつかの実施形態による、完全性検証のユーザ定義レベルに基づくチェックサムの動的生成及び確認の一例を示している。チェックサム生成及び確認システム(「CGVS」)100は、3D画像、オブジェクト、及び/又は環境を点群として記憶する大きなファイルを受信してよい(102における)。CGVS100は、点群をレンダリング(例えば、点群データ点をレンダリング)してよく、3D画像、アニメーション、及び/又は環境のビジュアライゼーションをディスプレイ又はインタフェース上に提示してよい(104における)。
【0029】
ユーザは、キーボード、マウス、タッチ、及び/又は他の入力を介して、ビジュアライゼーション及び/又はインタフェースとインタラクトしてよく、ビジュアライゼーション及び/又はインタフェース内の容積又は領域を選択してよい(106における)。ユーザ選択は、重要な及び/又はデータ完全性検証のために選択された点群データ点のセットを識別し得る。特に、ユーザ選択は、点群からレンダリングされた、点群データ点のセットを含む3D画像内の3D空間の領域を包含し得る。
【0030】
ディスプレイ又はインタフェース上に点群をレンダリングすることによって、ユーザが点群の重要な部分を視覚的に識別し及び/又は重要なファイルデータを視覚的に識別し得る。例えば、点群は、アセンブリ全体の中の特定のコンポーネントの高解像度スキャンを含んでよい。スキャンは、アセンブリにおける他の近傍コンポーネントの部分、背景特徴、空いた空間、及び/又は特定のコンポーネントに関係のない他の特徴も捕捉してよい。ユーザ選択は、特定のコンポーネントの周りに引かれた、近傍コンポーネント、背景、空いた空間、及び/又は当該特定のコンポーネントに関係のない他の特徴の多くを除外する境界を含んでよい。ユーザ選択は、フリーフォーム描画ツールを介して又は様々な容積又は形状をビジュアライゼーションに挿入及びリサイズすることによって行われてよい。
【0031】
CGVS100は、ユーザ選択内の点群データ点のセットを判定してよい。いくつかの実施形態において、CGVS100は、ユーザによって選択された容積又は領域に関する座標を計算してよい。座標を計算することは、ユーザ定義領域を、提示されたビジュアライゼーションによって表される3D空間における空間座標にマッピングすることを含んでよい。CGVS100は、選択された容積又は領域の座標内に入る位置値を有するデータ点のセットを判定してよい。
【0032】
CGVS100は、データ点のセットを動的チェックサム計算及び/又は確認に対して含む又は除外するようにタグ付けしてよい(108における)。データ点のセットをタグ付けすること(108における)は、データ点がチェックサム計算の一部として含まれるか否かを示す非位置値を追加することを含んでよい。例えば、データ点の非位置値におけるチェックサムインジケータに関する0の値は、チェックサム計算から当該データ点を除外してよく、一方で、1の値は、チェックサム計算に当該データ点を含めてよい。いくつかの実施形態において、CGVS100は、チェックサム計算に対して含める又は除外するデータ点をタグ付けする(108における)ために、1又は複数のエンコーディングされた値を用いてよい。例えば、データ点の非位置値におけるチェックサムインジケータに関する偶数値は、チェックサム計算から当該データ点を除外してよく、奇数値は、チェックサム計算に当該データ点を含めてよい。与えられたタグは、チェックサム計算のためのデータのセット、及び、受信されたファイルのために計算されたチェックサムの後続の確認を実行するためのデータのセットも識別する。
【0033】
CGVS100は、チェックサム計算の一部として含めるように選択(106における)された及び/又はタグ付け(108における)されたデータ点のセットの位置値及び/又は非位置値のうちの1又は複数に基づいてチェックサムを計算してよい(110における)。したがって、CGVS100は、点群のユーザ識別された識別されたデータ点に基づいて、完全性検証のカスタマイズされたレベルを有するチェックサムを動的に計算してよい(110における)。チェックサムを計算すること(110における)は、データ点のセットの各データ点からのデータに対してハッシュを実行することを含んでよく、ここで、データは、データ点のセットの各データ点に関連付けられている様々な位置及び非位置値を含んでよい。データ点の選択されたセットからのデータに基づいてハッシュを計算する及び/又はチェックサムを生成するために、メッセージダイジェストアルゴリズム(「MD5」)、セキュアハッシュアルゴリズム(「SHA」)、巡回冗長検査(「CRC」)アルゴリズム、及び/又は他のアルゴリズムを用いてよい。
【0034】
チェックサムは、点群とともに含まれてよく、点群内のデータ点のセットのいずれかのデータが変更されているか否かを検証するために後で用いられてよい。例えば、生成された点群を伴う点群は、データネットワークを介して異なるデバイスに提供されてよい。当該デバイスは、点群に付随するチェックサムを抽出し、チェックサム計算の一部として含めるようにタグ付けされた点群からのデータ点のセットのデータに基づいてチェックサムを計算し、抽出されたチェックサムを計算されたチェックサムと比較する、CGVS100のインスタンスを実行してよい。比較されたチェックサムの間の差はいずれも、データ点のタグ付けされたセットにおける1又は複数のデータ点(例えば、点群に関する識別された重要なデータ)が変更されていること、又は、データ点のタグ付けされたセットのうちの1又は複数からの1又は複数の値又はデータが変更されていることを示し得る。より一般的には、検出された変更はいずれも、点群のデータが、破損している、承認を伴わずに改変されている、及び/又はデータの正確性及び/又は完全性をもはや信頼又は検証することができないように変更されていることを示し得る。
【0035】
いくつかの実施形態において、チェックサムの動的チェックサム生成及び確認は、完全性検証のレベルをカスタマイズするための自動化技法をサポートしてよい。いくつかのそのような実施形態において、完全性検証のレベルは、ファイルからのデータのアルゴリズムによって選択されたセット(例えば、点群からのデータ点のセット)に基づいて定義されてよい。例えば、CGVS100は、完全性検証の異なる定義されたレベルから、ファイルのデータに関する完全性検証のレベルを選択してよく、完全性検証の選択されたレベルに基づいて、ファイルからのデータの異なるセットをチェックサム生成及び確認の一部として含めるようにプログラムによって選択してよい。完全性検証の各レベルは、結果として得られるチェックサムのためにファイルからのデータの異なるセット又は点群からのデータ点の異なるセットをサンプリングすることを含んでよく、ここで、サンプリングは、ファイル又は点群の全部よりも少ないデータ又はデータ点を含む。
【0036】
図2は、本明細書において提示されるいくつかの実施形態による、ファイルに関して指定された完全性検証のカスタムレベル及び指定された完全性検証のカスタムレベルの結果としてファイルから自動的に選択されたデータのセットに基づく動的チェックサム生成及び確認の一例を示している。図2に示されているように、CGVS100は、ファイルを受信してよく(202における)、ファイルに関連付けられている1又は複数の特質及び/又は完全性検証の所望のレベルのユーザ選択に基づいてファイルのデータに関する完全性検証のレベルを判定してよい(204における)。
【0037】
いくつかの実施形態において、CGVS100は、異なるファイル拡張子又は異なるファイルタイプを有するファイルに関して完全性検証の異なるレベルを提供するように構成されてよい。完全性検証のより高い第1のレベルは、完全性検証のより低い第2のレベルよりも、ファイルからより多くの又は異なるデータをチェックサム計算及び/又は確認に含めるように選択することを含んでよい。例えば、CGVS100は、ビデオ及び/又はオーディオファイルに関してよりも、ドキュメント、画像、及び/又は点群に関して完全性検証のより高い第1のレベルを提供するように構成されてよく、ここで、ビデオ及び/又はオーディオファイルに対する変更は、ドキュメント、画像、及び/又は点群に対する変更よりも、ファイル全体及び/又はファイルの提示に対する影響が小さい場合がある。別の例として、CGVS100は、ファイルがどこから出てきたものかを判定するためにファイルメタデータを検査してよく、ソースの第2のセット(例えば、品質保証及びマーケティング)から出てきたファイルに関してよりも、ソースの第1のセット(例えば、リーガル及びエンジニアリング)から出てきたファイルに関して、完全性検証のより高いレベルを提供するように構成されてよい。
【0038】
完全性検証の各レベルは、ファイルからの異なる量のデータの完全性を確実にする又はサンプリングするための異なるデータ選択アルゴリズム、方法論、又は技法に関連付けられてよい。図2に示されているように、CGVS100は、点群の中心点から定義された様々な平面内のデータ点を選択すること(206における)に関連付けられている、受信された点群ファイルに関する完全性検証の特定のレベルを判定してよい(204における)。具体的には、CGVS100は、点群によって表される3D空間内の中心点を識別してよく、中心点のx座標から離れた第1の値、中心点のy座標から離れた第2の値、及び中心点のz座標から離れた第3の値であるデータ点を選択してよい(206における)。完全性検証のレベルを上げることは、第1の値、第2の値、及び第3の値のうちの1又は複数を上げて、チェックサム計算のために選択されるデータ点の数を増やすことを含んでよい。完全性検証のレベルを下げることは、第1の値、第2の値、及び第3の値のうちの1又は複数を下げて、チェックサム計算のために選択されるデータ点の数を減らすことを含んでよい。
【0039】
いくつかの実施形態において、CGVS100は、データ点の自動的に選択されたセットの各データ点をチェックサム計算の一部として含めるようにタグ付けしてよい(208における)。データ点のセットをタグ付けする(208における)ことは、データ点がチェックサム計算に含まれるか否かを識別するために用いられる非位置値を変更することを含んでよい。
【0040】
CGVS100は、データ点の自動的に選択(206における)された及び/又はタグ付け(208における)されたセットの位置値及び/又は非位置値のうちの1又は複数に基づいて、チェックサムを計算してよい(210における)。チェックサムは、点群とともに含まれ及び/又は埋め込まれてよく、点群内のデータ点のセットのいずれかのデータが変更されているか否かを検証するために後で用いられてよい。
【0041】
いくつかの実施形態において、CGVS100は、タグ付け(208における)操作を省いてよく、チェックサム生成及び/又は確認時に、CGVS100がファイル特質を用いてファイルに関して判定した完全性検証のカスタムレベルの結果としてCGVS100がファイルから自動的に選択したデータのセットに基づいて、ファイルからデータのセットを動的に選択してよい。いくつかのそのような実施形態において、CGVS100は、完全性検証の特定のレベルに関して点群の中心点からの平面及び/又は容積を定義することによってチェックサムを計算してよく(210における)、定義された平面及び/又は容積内に入るデータ点のセットをフィルタリング及び/又は選択してよく、当該データ点のセットからのデータ及び/又は値に基づいてチェックサムを生成してよい。
【0042】
CGVS100は、完全性検証の特定のレベル(例えば、ファイルに関して判定された完全性検証のカスタムレベル)を計算されたチェックサム内の値として含んでよい。例えば、完全性検証の特定のレベルを表す2桁又は文字コードをチェックサム内に埋め込んでよい。上記コードは、データ完全性検証を実行する場合にチェックサムから抽出されてよく、チェックサムを計算するために当初用いられた完全性検証の特定のレベルを識別するために、及び、チェックサムを再計算するための及び計算されたチェックサムを含まれているチェックサムと比較するためのデータ点のセットを再選択するために、用いられてよい。いくつかの実施形態において、CGVS100は、ファイル拡張子、ファイルタイプ、及び/又はファイルの他の特質から直接ファイルのために用いられる完全性検証の特定のレベルを判定し得るので、上記コードは、計算されたチェックサムから省かれてよい。
【0043】
図1及び図2に関して生成されたチェックサムは、手動で選択されたデータ、重要又は重大と識別されたデータ(手動選択、アルゴリズム選択を介して、又は別様に)、及び/又は、ファイル又は点群に関する完全性検証の選択されたレベルに従って定義されたファイル又は点群の領域内にあるデータ内に発生した変更を検出してよい。結果として得られるチェックサムは、チェックサム計算の一部として選択されず含まれなかったデータ又はデータ点の完全性検証のために用いられなくてよい。
【0044】
いくつかの実施形態において、CGVS100は、ファイル及び/又は点群に対してデータ及び/又はデータ点が追加又は除去されなかったことを検証するために用いられ得るチェックサムの動的且つ効率的な計算を実行し得る。
図3は、本明細書において提示されるいくつかの実施形態による、チェックサム計算又は確認において全部のデータを含まずに、ファイルにおけるデータの構造及び量を検証するための動的チェックサム生成及び確認の一例を示している。全部よりも少ないデータから計算された、結果として得られるチェックサムは、点群に対していずれかのデータ点が追加又は削除されたか否か又はデータ点のうちの1又は複数が変更されているか否かを検証するためにさらに用いられてよい。
【0045】
CGVS100は、3D画像、オブジェクト、及び/又は環境の点群エンコーディングのための複数のデータ点を記憶したファイルを受信してよい(302における)。CGVS100は、点群データ点をソートしてよい(304における)。ソートすること(304における)は、データ点の一意の順序付けを定義する位置値に基づいて、それらの位置値に従ってデータ点を順序付けることを含んでよい。ファイル及び/又は点群データが変更されていないままである場合、データ点の一意の順序付けは維持されるので、ソートすること(304における)は、後続のチェックサム計算が再現され得ることを確実にし得る。ソートすること(304における)は、ファイルにおけるデータ点を編成する、配列する、及び/又は別様にその順序付けを変更することを含んでよい。例えば、データ点は、データ点の位置値に基づかない第1の順序で受信(302における)されたファイルから記憶及び/又はアクセスされてよく、ソートすること(304における)は、データ点を、第1の順序からデータ点の位置値に基づく異なる第2の順序に、編成する、配列する、及び/又はその順序付けを別様に変更することを含んでよい。いくつかの実施形態において、点群ファイルフォーマットは、データ点をソートされた順序で提供及び/又は記憶してよい。例えば、点群ファイルフォーマットは、データ点のx座標、y座標、及びz座標位置値の昇順に基づいて、点群データ点をアレイに記憶してよい。
【0046】
CGVS100は、ソートされたデータ点の各データ点からの単一の位置又は非位置値を用いて、ファイルに関するチェックサムを計算してよい(306における)。図3に示されているように、CGVS100は、第1の順序付けられたデータ点301の位置及び非位置値からの第1の値(例えば、x座標値)、第1の順序付けられたデータ点301に隣接する第2の順序付けられたデータ点303の位置及び非位置値からの第2の値(例えば、y座標値)、第2の順序付けられたデータ点303に隣接する第3の順序付けられたデータ点305の位置及び非位置値からの第3の値(例えば、z座標値)、第3の順序付けられたデータ点305に隣接する第4の順序付けられたデータ点307の位置及び非位置値からの第4の値(例えば、色度値)、第4の順序付けられたデータ点307に隣接する第5の順序付けられたデータ点309の位置及び非位置値からの第5の値(例えば、輝度値)等を繰り返して選択してよい。
【0047】
チェックサムを計算すること(306における)は、それぞれの順序での各データ点からの選択された値又は値のサブセットの何らかの組み合わせをハッシュ化すること(例えば、合計、結合、XORブーリアン演算等)を含んでよい。例えば、CGVS100は、第1の順序付けられたデータ点301の選択された第1の値を、第2の順序付けられたデータ点303の選択された第2の値と、第3の順序付けられたデータ点305の選択された第3の値と等、データ点の指定された順序でXORしてよい。データ点の選択された値をデータ点の指定された順序付けでXORした後に結果として得られる値は、チェックサムとして用いられ得る値をもたらし得るか、又は、チェックサムを生成するためにハッシュ関数を用いてハッシュ化され得る値をもたらし得る。いずれの場合においても、データ点の選択された値をデータ点の指定された順序付けでXORした後に結果として得られる値は、データ点の順序付けが変化した(例えば、データ点が新しい位置に移動した、点群から除去された、又は群に追加された)場合又は順序付けにおける選択された値のいずれかが変化した(例えば、同じ選択された値が異なるシーケンスにおいて一緒にXORされた)場合に変化する一意の値をもたらす。別の例として、CGVS100は、第1の順序付けられたデータ点301の選択された第1の値を、第2の順序付けられたデータ点303の選択された第2の値と、第3の順序付けられたデータ点305の選択された第3の値と等、データ点の指定された順序付けで合計してよい。CGVS100は、選択された値を加算するシーケンスが、同じ選択された値を異なるシーケンス又は順序で合計することから取得された値とは異なる値をもたらすように、各合計後に結果として得られる総計の先頭ビット又は末尾ビットを破棄してよい。結果として得られる値は、チェックサムを生成してよい、又は、チェックサムを生成するためにハッシュ関数を用いてハッシュ化され得る値をもたらしてよい。いくつかの実施形態において、CGVS100は、チェックサムを生成するために各データ点からの同じ位置値又は非位置値の何らかの組み合わせをハッシュ化してよい。
【0048】
結果として得られるチェックサムは、データ点が点群に追加されていない又は当該点群から除去されていないこと、データ点の位置決め又は順序付けが変更されていないこと、及び/又は、各データ点に関する選択された値が変更されていないことを検証するために用いられ得る。具体的には、点群において移動、追加、又は除去された任意のデータ点は、チェックサムを計算する(306における)ために用いられる値又は値の順序付けを変更し、したがって、ファイルの一部のデータが変更されていることを識別する異なるチェックサムを生成する。
【0049】
結果として得られるチェックサムは、全部のデータ点の全部の値及び/又はデータに基づいてチェックサムを計算するために必要な処理労力及び/又は時間を伴わずに、これらの及び他の完全性検証を提供し得る。例えば、各データ点が10の別個の位置及び非位置値を含む場合、図3に示されている値の動的サンプリングを介して生成されるチェックサムは、全部のデータ点の全部の値を用いてチェックサムを計算するためにかかり得る時間の1/10の時間で完成し得る。
【0050】
完全性検証のレベルは、各データ点からサンプリングされてチェックサム計算に含まれる位置及び非位置値の数を増やすことによって上げられ得る。例えば、CGVS100は、データ点のソートされた順序付けで各データ点からの単一の値を用いるのではなく、各データ点からの2又はそれよりも多くの値を巡回してサンプリングしてよく、データ点の追加の値に対する完全性検証を提供するチェックサムを生成するために、各データ点からの当該2又はそれよりも多くの選択された値の何らかの組み合わせをハッシュ化してよい。
【0051】
しかし、一部のユーザ、点群、及び/又はファイルは、点群及び/又はファイル内の全部のデータの確認を要求し得る。CGVS100は、データセット全体及び/又は点群の全部のデータ点の全部の値をハッシュ化することを含む技法よりも速く且つより効率的である、データセット全体及び/又は全部のデータ点の全部の値に対する完全性検証を提供するように、動的チェックサム生成及び確認を適合させてよい。
【0052】
図4は、本明細書において提示されるいくつかの実施形態による、全部よりも少ない点群データに関わるチェックサム計算に基づく、全部の点群データの完全性を検証するための動的チェックサム生成及び確認の一例を示している。CGVS100は、点群、及び/又は、点群内のデータ点値又はデータ点が変更されていないことを検証するためのチェックサムを生成する要求を受信してよい(402における)。
【0053】
CGVS100は、点群データ点を、それらの位置値に従ってソートしてよい(404における)。図4に示されているように、点群データ点は、まずx座標位置値の昇順に基づいて、次にy座標位置値の昇順に基づいて、次にz座標位置値の昇順に基づいて順序付けられてよい。点群が、3D空間における同じ厳密な位置に関して定義されたデータ点を有しないのであれば、ソートすることは、点群から移動、追加、又は除去されたデータ点がない場合には再現可能な点群データ点に関する一意の順序付けを生成し得る。換言すれば、点群の完全性が変化しない限り、点群ファイルにおいてデータ点が記憶されている順序にかかわらず、点群データ点に関する同じ順序付けが再現され得る。いくつかの実施形態において、CGVS100によって受信される点群は、点群データ点をソートされた配列において既に記憶したファイルフォーマットを有してよい。
【0054】
CGVS100は、チェックサムを生成するために、ソートされた順序での各データ点からの非位置値の組み合わせを用いてよく(406における)、各データ点からの位置値をチェックサム又はチェックサムを生成するために用いられる値の組み合わせから除外してよい。しかし、結果として得られるチェックサムは、それらの位置値及び非位置値を含む全部の点群データ点の全部のデータ及び/又は点群に対していずれかのデータ点が追加又は除去されたか否かを確認するために用いられてよい。
【0055】
計算されたチェックサムは、点群に埋め込まれるか又は含まれてよく、全部の点群データに関する完全性は、点群データ点をそれらの位置値に従ってソートすること、ソートされた順序での各データ点からの非位置値の組み合わせに基づいて新しいチェックサムを計算すること、及び、何らかの差が存在するかどうかを判定するために当該新しいチェックサムを点群とともに提供されたチェックサムと比較することによって検証されてよい。いずれかの単一のデータ点の位置決めに対する、いずれかの単一の非位置値に対する、又はデータ点の数に対するいかなる変更も、チェックサム値を変化させる。
【0056】
点群データ点が所望のソートされた順序で記憶されていない場合であっても、ソートは、ハッシュ計算における各データ点の位置値を含むよりも少ない時間で且つ少ない計算労力で実行され得る。例えば、効率的なソートアルゴリズム(例えば、クイックソート、マージソート等)を介してソートすることの時間計算量は、O(nlogn)まで低い場合があり、一方で、SHA256ハッシュを計算することの時間計算量は、O(n)である場合がある。
【0057】
いくつかの実施形態において、CGVS100は、データ点をそれらの位置値及び非位置値の第1のセットに基づいてソートすることによって、及び、データ点のソートされた順序付けからの非位置値の第2のセットの何らかの組み合わせのハッシュに基づいてチェックサムを計算することによって、チェックサム計算をさらに最適化し得、ここで、非位置値の第2のセットは、ソートに用いられず、非位置値の第1のセットとは異なる。
【0058】
図5は、本明細書において提示されるいくつかの実施形態による、点群データ点からの値の第2のセットに従ってソートされた点群データ点からの値の第1のセットのハッシュに基づいて一意のチェックサムを生成することの一例を示している。前述したように、データ点をそれらの位置値(例えば、値の第2のセット)に従ってソートすること(502における)は、データ点に関する一意の順序付けを提供する。
【0059】
CGVS100は、一意の値を生成するために、ソートされたデータ点の非位置値(例えば、値の第1のセット)を、それらのソートされた順序付け、1又は複数の計算、及び/又はビット演算に基づいて組み合わせてよい。図5に示されているように、CGVS100は、第1の順序付けられたデータ点の第1の非位置値を、第1の値(例えば、左に1ビット)だけビットシフトされた第1の順序付けられたデータ点の第2の非位置値に、第2の値(例えば、左に2ビット又は右に1ビット)だけビットシフトされた第1の順序付けられたデータ点の第3の非位置値に、第3の値(例えば、左に3ビット又は右に2ビット)だけビットシフトされた第1の順序付けられたデータ点の第4の非位置値に、及び第4の値(例えば、左に4ビット又は右に3ビット)だけビットシフトされた第1の順序付けられたデータ点の第5の非位置値に合計してよい(504における)。CGVS100は、データ点のソートされたセットにおける各データ点に関する同じ合計を計算してよい(504における)。
【0060】
CGVS100は、次に、第1のデータ点の結果として得られる値を、第1の値だけビットシフトされた第2のデータ点の結果として得られる値に、第2の値だけビットシフトされた第3のデータ点の結果として得られる値に、第3の値だけビットシフトされた第4のデータ点の結果として得られる値等に合計してよい(506における)。CGVS100は、指定されたビット数を超える各値の任意の先頭ビット又は末尾ビットを破棄してよい。全部のビットシフトされたデータ点の非位置値の合計から結果として得られる値は、チェックサムに対応してよい、又は、チェックサムを生成するためにハッシュ化されてよい。任意のデータ点値(例えば、位置又は非位置値)、データ点の順序、又はデータ点の数が変化した場合、結果として得られる合計及び/又は計算されたチェックサムは異なり、データ、点群、及び/又はファイルの完全性検証は失敗する。
【0061】
図6は、本明細書において提示されるいくつかの実施形態による、ファイルからの全部よりも少ないデータを用いて当該ファイルにおける全部のデータの完全性を検証するための一意のチェックサムを生成することの別の例を示している。チェックサム生成は、CGVS100が、データ点に関する一意の且つ再現可能な順序付けを与えるデータ点値(例えば、位置値)の第1のセットを用いて、点群データ点をソートすること(602における)を含んでよい。チェックサム生成は、値の第1のセットによって生成される一意の順序付けに基づいてデータ点値(例えば、非位置値)の第2のセットに関する一意の組み合わせを生成すること(604における)をさらに含んでよい。図6に示されているように、CGVS100は、各データ点のデータ点値の第2のセットにおける別個値の数をカウントしてよく、別個の値の数よりも少ない素数を選択してよい。例えば、各データ点が5の別個の非位置値で定義されている場合、CGVS100は、素数3を選択してよい。CGVSは、次に、ビット数を選択された素数まで増やすことによって各次の値がビットシフトされた状態で、値の第2のセットを順に合計してよい。例えば、CGVS100は、第1の順序付けられたデータ点の第1の非位置値を、1ビットだけ左にビットシフトされた第1の順序付けられたデータ点の第2の非位置値に、2ビットだけ左にビットシフトされた第1の順序付けられたデータ点の第3の非位置値に、3ビットだけ左にビットシフトされた第1の順序付けられたデータ点の第4の非位置値に、0ビットだけ左にビットシフトされた第1の順序付けられたデータ点の第5の非位置値に、1ビットだけ左にビットシフトされた第2の順序付けられたデータ点の第1の非位置値に、等と加算してよい。
【0062】
CGVS100は、結果が指定されたビット数を超える任意の合計演算後に任意の先頭又は末尾ビットを破棄してよい。例えば、第1のデータ点のビットシフトされた非位置値からの合計は、16ビット値1111111111011100として表される65,500であってよく、次の第2のデータ点のビットシフトされた非位置値の加算は、当該値を65600に変更し得、これは10000000001000000の17ビット値にオーバーフローし得る。CGVS100は、当該17ビット値を維持するのではなく、先頭ビットを除去して、0000000001000000の16ビット値を生成してよく、又は、末尾ビットを除去して、1000000000100000の16ビット値を生成してよく、トリムされた16ビット値で合計演算を継続してよい。
【0063】
結果は、値のいずれかが変化した又は値の順序が変化したときには再現できない一意の値である。結果は、チェックサムとして用いられてよい、又は、チェックサムを生成するためにハッシュ化してよい。
【0064】
いくつかの実施形態において、チェックサムは、それらの位置値に従ってソートされたデータ点からの非位置値の他の一意の計算コストが低い組み合わせを介して生成されてよい。例えば、CGVS100は、データ点をソートしてよく、隣接して順序付けられたデータ点からの交互の非位置値の全部のXORされたペアの合計が計算されるまで、第1の順序付けられたデータ点の第1の非位置値を第2の順序付けられたデータ点の第2の非位置値に対してXORした、第1の順序付けられたデータ点の第2の非位置値を第2の順序付けられたデータ点の第3の非位置値にXORした、等の結果を合計してよい。結果として得られる値は、チェックサムとして用いられてよい、又は、点群又はファイルからの全部のデータの完全性を検証するために用いられ得るチェックサムを生成するためにハッシュ化されてよい。
【0065】
CGVS100は、チェックサムを生成及び/又は確認することに関連付けられる計算コスト及び/又は時間を増加させることなく完全性検証のレベルを上げるためにAI/MLを用いてよい。いくつかの実施形態において、CGVS100は、異なるファイル内の第1の分類及び少なくとも第2の分類のデータ(例えば、重要なデータ及び重要でないデータ)を及び/又は異なる点群内の重要な及び重要でない領域を自動的に区別するように、AI/ML技法を訓練してよい。CGVS100は、AI/MLによって識別された重要なデータ及び/又は重要な領域に基づいて、チェックサムを動的に生成及び/又は確認してよい。したがって、AI/MLによって識別された重要なデータ及び/又は重要な領域に基づくチェックサム計算及び/又は確認は、全部のファイル及び/又は点群データを含むチェックサム計算及び/又は確認よりも迅速に実行され得、動的に且つ再現可能に識別された重要なデータ及び/又は重要な領域におけるデータの完全性を検証するために用いられ得るチェックサムを提供し得る。重要でないデータ及び/又は重要でない領域におけるデータに対する変更は、ファイル及び/又は点群の使用において又は関係するユーザにとって重要性又は重大性を有さない場合があり、したがって、チェックサム計算及び/又は確認に重要でないデータ及び/又は領域を含まないことからのいかなる完全性の欠損よりも、AI/MLによって区別されたデータに関する動的チェックサムを計算するための時間及びプロセッサの節約の方が重要である。
【0066】
図7は、本明細書において提示されるいくつかの実施形態による、点群又はファイル内のデータの自動的に識別されたサブセットに基づいてチェックサムを動的に生成するためのプロセス700を提示している。プロセス700は、CGVS100によって実施されてよい。
【0067】
プロセス700は、点群又はファイル及び/又は点群又はファイルからのAI/MLによって分類されたデータのサブセットの完全性を検証するためにチェックサムを生成する要求を受信すること(702における)を含んでよい。いくつかの実施形態において、CGVS100は、ファイルサイズが閾値限度を超える(例えば、ファイルのサイズが1ギガバイトよりも大きい)場合、又は、ファイルが特定のタイプ(例えば、3D環境の3D画像又はスキャンを表す点群、ビデオ等)である場合、受信されたファイルの重要なデータのための動的チェックサムを計算してよい。
【0068】
プロセス700は、1又は複数のAI/ML技法を用いて、受信された点群又はファイルにおけるデータの第1のセットをデータの第2のセットから区別すること(704における)を含んでよい。データの第1のセットは、重要であるもの又は点群又はファイルによって表された、捕捉された、及び/又は提示された主題(subject matter)に不可欠(integral)であるものとしてAI/ML技法が分類する点群データ点又はデータに対応してよい。データの第2のセットは、重要でないもの又は点群又はファイルによって表された、捕捉された、及び/又は提示された主題に不可欠でないものとしてAI/ML技法が分類する点群データ点又はデータに対応してよい。換言すれば、AI/ML技法は、データの第1のセットを、提示されている主題を変更することなく変更することができないデータとして分類してよく、一方で、データの第2のセットに対する変更は、提示されている主題に不利に作用又は影響しない場合がある。
【0069】
プロセス700は、データの第1のセットをデータの第2のセットとは異なるようにタグ付けすること(706における)を含んでよい。例えば、CGVS100は、第1の非位置値をデータの第1のセット内のデータ点に、第2の非位置値をデータの第2のセット内のデータ点に付加し、これらの2つのデータセットを区別してよい。
【0070】
プロセス700は、チェックサム生成からデータの第2のセットを省きながら、データの第1のセットからの値及び/又はデータに基づいてチェックサムを生成すること(708における)を含んでよい。チェックサムを生成すること(708における)は、データの第1のセットからの1又は複数の値及び/又はデータの何らかの組み合わせに基づいてハッシュを実行することを含んでよい。組み合わせは、データの第1のセットからの値を指定された順序(例えば、ファイル内でデータの第1のセットがエンコーディング又はフォーマットされた順序、データの第1のセットの位置値に基づくソートされた順序、又はデータの第1のセットが変更されていないままである場合に再現され得る別の順序)で合計することを含んでよい。組み合わせから結果として得られる値は、チェックサムを生成するためにハッシュ関数を用いてハッシュ化されてよい。
【0071】
プロセス700は、チェックサムを点群及び/又はファイルと関連付けること(710における)を含んでよい。いくつかの実施形態において、CGVS100は、点群及び/又はファイルの一部としてチェックサムを埋め込んでよい、又は、点群及び/又はファイルがアクセスされる場合はいつでも、点群及び/又はファイルの完全性を確認するために当該点群及び/又はファイルに関するチェックサムが事前にアクセス及び/又は取得され得るように、チェックサムを点群及び/又はファイルにリンクしてよい。
【0072】
いくつかの実施形態において、CGVS100は、点群データ点の位置及び非位置値に存在する異なる共通性、パターン、及び/又は傾向、及び/又は、ファイル名、ファイルタイプ、及びファイルに関連付けられているメタデータに基づいて、第1の分類及び第2の分類(例えば、重要なデータ及び重要でないデータ)を区別するようにAI/ML技法を訓練してよい。例えば、AI/ML技法は、データ点の高密クラスタ及びデータ点の粗クラスタ、前景データ点及び背景データ点、色成分における異なる共通性を有するデータ点等を区別する共通性、パターン、及び/又は傾向を検出するように訓練されてよい。
【0073】
いくつかの実施形態において、AI/ML技法に点群の例が与えられてよく、ここで、当該例におけるデータ点の特定の高密度のクラスタは、重要なデータとして又は第1の分類でラベル付けされており、データ点の他のより低密度のクラスタは、ラベル付けされていないか又は重要でないデータとして又は第2の分類でラベル付けされている。AI/ML技法は、重要なデータとしてラベル付けされているデータ点が少なくとも1つの近傍データ点から閾値距離内にあり、一方で、重要でないデータとしてラベル付けされているデータ点が最も近い近傍データ点から閾値距離よりも遠くにあることを判定するために、データ点の位置値及び/又は非位置値を分析してよい。したがって、AI/ML技法は、ラベル付けされていない点群からのデータ点の位置値における類似の共通性を検出してよく、当該点群の重要な及び重要でないデータを区別するために、そのような共通性の存在又は非存在を用いてよい。
【0074】
いくつかの実施形態において、AI/ML技法は、重要な及び重要でないデータを区別するようにラベル付けされていない例の点群に対する教師なし学習を実行してよい。いくつかのそのような実施形態において、AI/ML技法は、データ点の位置値を分析するように、及び、位置値における異なる共通性、パターン、及び/又は傾向を検出するように構成されてよい。例えば、AI/ML技法は、一緒にクラスタリングされており且つ少なくとも1つの近傍データ点から閾値距離内にあるデータ点の第1のセット及び最も近い近傍データ点から閾値距離よりも遠くにあるデータ点の第2のセット間の異なるパターンを検出してよい。AI/ML技法は分析から見出された位置区別に基づいて異なるようにデータ点の各セットを分類してよく、高密度にクラスタリングされたデータ点に対して発生したトラッキングされたユーザ編集の数が高いこと、及び、粗にクラスタリングされたデータ点に対して発生したトラッキングされたユーザ編集の数が低いこと、及び/又は、例の点群の監視から及び/又は点群の使用内で又は使用から検出された他の共通性、パターン、及び/又は傾向からAI/MLが見出した他の基準に基づいて、データ点の高密クラスタリングは重要なデータ及び/又は前景データを表し得ること、及び、データ点の粗クラスタリングは重要でないデータ及び/又は背景データを表し得ることを判定してよい。
【0075】
いくつかの実施形態において、AI/ML技法は、異なるオブジェクトを区別するために点群データ点の位置値及び非位置値を分析してよい。例えば、互いの第1の閾値内にある、非平面形状を生成する、互いの第2の閾値内にある色成分(例えば、近傍データ点間の赤色値が15%未満だけ変化する)を有する、及び/又は、繰り返しの背景色成分とは異なる色成分を有するデータ点は、同じオブジェクトの一部であると判定され得る。これらの区別されたオブジェクトは、重要なデータとして分類されてよく、一方で、背景色成分を有するデータ点は、重要でないデータとして分類されてよい。
【0076】
AI/ML技法は、エッジ検出及び/又は連続表面検出のためのモデルに基づいて、異なるオブジェクト及び/又はオブジェクト及び背景要素を区別してよい。エッジ検出及び/又は連続表面検出モデルは、オブジェクトのエッジ又はオブジェクトの連続表面が検出及び区別され得る位置及び/又は非位置値における共通性、パターン、及び/又は傾向を識別してよい。例えば、互いの閾値範囲内の色成分を有するデータ点は、連続表面の一部であり得、第1の側におけるデータ点と色成分類似性を有し、且つ反対の第2の側におけるデータ点と色成分非類似性を有するデータ点は、オブジェクトのエッジ及び/又は端部を表すエッジデータ点として分類されてよい。
【0077】
いくつかの実施形態において、AI/ML技法は、重要なデータ及び重要でないデータの区別を支援するために、ファイル名、ファイルタイプ、及び/又はメタデータを用いてよい。例えば、ファイル名及び/又はメタデータは、ファイルが特定の車両に関するデータを含むことを識別し得る。AI/ML技法は、特定の車両についての情報(例えば、形状、寸法、カラーリング等)を取得するために、データベース、インターネット、及び/又は他のソースを検索してよく、特定の車両に関する重要なデータを他の重要でないデータ(例えば、背景データ点、他の関係のないオブジェクトに関するデータ点等)から区別するために、ファイルを分析してよい。
【0078】
図8は、本明細書において提示されるいくつかの実施形態による、動的チェックサム生成のためのファイルデータのAI/ML区別の例を示している。図8に示されているように、CGVS100は、分類されていない点群を受信してよく(802における)、点群内の重要な及び重要でないデータを区別するために1又は複数のAI/ML技法を用いてよい。
【0079】
1又は複数のAI/ML技法は、重要なデータの特定の共通性、パターン、及び/又は傾向を認識するように訓練されてよい。AI/ML技法は、重要なデータを他のデータから区別するデータ点の位置値及び/又は非位置値における共通性、パターン、及び/又は傾向に関するモデルを定義してよい。CGVS100は、受信(802における)された点群からのデータ点の異なる組み合わせをAI/ML生成モデルと比較して(804における)、重要又は区別されたデータとして分類されるモデル化された共通性、パターン、及び/又は傾向をいずれかの組み合わせが含むかどうかを判定してよい。
【0080】
図7に示されているように、第1のAI/ML技法は、AI/MLモデルによって重要又は区別されたデータとして分類されたデータ点の高密度のクラスタのモデル化と一致している位置共通性をデータ点の第1のセットが有することに基づいて、データ点の第1のセットを重要なデータとして分類してよい(806における)。CGVS100は、データ点の第1のセットを点群におけるデータ点の他のセットから区別してよい(806における)。区別(806における)は、高密集度のデータ点の第1のセットを点群の他のデータ点とは異なるようにタグ付けすることを含んでよい。
【0081】
第2のAI/ML技法は、特定の形状を形成している及び/又はモデル化された重要なデータと類似する色成分を有するデータ点の第2のセットを検出してよく(808における)、データ点の第2のセットを点群における他のデータ点から区別してよい(808における)。例えば、ファイルメタデータは、点群を風景画像として識別してよく、CGVS100は、風景イメージング内の重要な特徴の形、パターン、及び/又は特性を検出するように訓練されたAI/ML生成モデルを取得してよい。CGVS100は、AI/ML生成モデルを用いて、データ点の第2のセットが、上記形状を形成しており、モデルにおいて重要又は区別されたデータとして分類された木の幹及び木の枝に関する色成分を有することを検出してよい(808における)。
【0082】
CGVS100は、データ点の第1のセット及びデータ点の第2のセットの値を用いて、チェックサムを計算してよい(810における)。受信(802における)された点群における他のデータ点の値は、チェックサム計算から除外されてよい。
【0083】
いくつかの実施形態において、ユーザ入力は、重要でないデータからの重要なデータの区別においてAI/ML技法を訓練するために用いられてよい。例えば、CGVS100は、点群のビジュアライゼーションを提示してよく、ユーザは、重要なデータを表す点群内の1又は複数の点を選択してよい。AI/ML技法は、次に、ユーザ選択点からの外方拡張を実行して、ユーザ選択点と特定の位置及び/又は非位置値共通性を有する任意の近傍及び/又は周囲のデータ点をさらに選択してよい。例えば、CGVS100は、ユーザ選択点を含む同じ特徴又は連続的な特徴を形成する全部のデータ点を識別してよい。したがって、ユーザは、点群における単一のデータ点を選択してよく、AI/ML技法は、同じ特徴又はオブジェクトの一部である、及び/又は、ユーザ選択データ点と他の位置及び/又は非位置値共通性を共有する、データ点のセットを判定及び選択してよい。
【0084】
チェックサム計算からファイル内のデータ及び重要なデータを誤って分類する可能性を軽減するために、CGVS100は、チェックサムのためにデータの第1のセットを自動的に選択するように1又は複数のAI/ML技法を用いること及びチェックサムのためにデータの選択されていない第2のセットをサンプリングすることによってチェックサムを生成するハイブリッドアプローチを実施してよい。結果として得られるチェックサムは、データの第1のセット(例えば、重要なデータ、前景データとして、及び/又は第1の分類で分類された)からの全部の値及び/又はデータ及びデータの第2のセット(例えば、重要でないデータ、背景データとして、及び/又は第2の分類で分類された)のサブセットからの値及び/又はデータの完全性を検証するために用いられてよい。
【0085】
図9は、本明細書において提示されるいくつかの実施形態による、ファイルからの重要なデータ及び重要でないデータのサンプリングのハイブリッド選択に基づく動的チェックサム生成のためのプロセス900を提示している。プロセス900は、CGVS100によって実施されてよい。
【0086】
プロセス900は、ファイル、及び/又は、ファイルデータの完全性を検証するためにチェックサムを生成する要求を受信すること(902における)を含んでよい。プロセス900は、1又は複数のAI/ML技法を用いて、受信されたファイルにおけるデータの第1のセットをデータの第2のセットから区別すること(904における)を含んでよい。ここでも、AI/ML技法は、AI/MLがファイルデータ(例えば、点群データ点の位置値及び/又は非位置値)内に検出するように訓練された異なる共通性、パターン、及び/又は傾向に基づいて、ファイルデータを区別してよい(904における)。より具体的には、AI/ML技法は、重要であるもの及び/又は変更された場合にファイルの主題に影響を与えるものとして分類された第1のデータにおける共通性、パターン、及び/又は傾向を、重要でない及び/又は変更された場合にファイルの主題に対して影響を与えないものと分類された第2のデータから区別してよい(904における)。
【0087】
プロセス900は、データの区別された第2のセットのサブセットをチェックサム計算の一部として含まれるように選択すること(906における)を含んでよい。選択(906における)は、当初のチェックサムが計算された時からチェックサムが確認された時までにファイルデータが変化しないことを条件に、チェックサム確認のために再現可能な方式で、データの第2のセットから全部よりも少ないデータをサンプリングすることを含んでよい。例えば、CGVS100は、データの区別された第2のセットのサブセットを選択する(906における)ために、図1図5を参照して上で説明した方法論及び/又は本明細書において説明した他の説明したサンプリング方法論のうちの1又は複数を用いてよい。いくつかの実施形態において、データのサブセットを選択すること(906における)は、データの区別された第2のセットから全ての他の又は第3のデータ点を選択することを含んでよい。いくつかの実施形態において、データのサブセットを選択すること(906における)は、データの第1のセットを表す点群データ点の第1のセットの位置値及び/又は非位置値から全部の値をチェックサム計算の一部として含むように選択しながら、データの第2のセットの位置値及び/又は非位置値からの値のサブセットをチェックサム計算の一部として含むように選択することを含んでよい。
【0088】
いくつかの実施形態において、データを区別すること(904における)及びデータのサブセットを選択すること(906における)は、データの第1のセット内に含まれる各データ点及びデータの第2のセットのサブセット内に含まれる各データ点を、チェックサム計算に当該データ点を含むことを示す特定の値でタグ付けすることを含んでよい。全部の他のデータは、当該特定の値でタグ付けされなくてよく、又は、チェックサム計算から当該データ又はそれらのデータ点を除外することを示す異なる値でタグ付けされてよい。
【0089】
プロセス900は、データの第1のセット及びデータの第2のセットのサブセットに基づいてチェックサムを計算すること(908における)を含んでよい。チェックサム計算(908における)は、データの第1のセット及びデータの第2のセットのサブセットからの全部の又は全部よりも少ない値及び/又はデータを用いることを含んでよい。例えば、ファイルデータは、位置及び非位置値のセットを有する点群データ点に対応してよく、チェックサム計算(908における)は、データの第1のセット及びデータの第2のセットのサブセットからの位置及び非位置値の一部又は全部の組み合わせに基づいてよい。
【0090】
プロセス900は、チェックサムがデータの第1のセット及びデータの第2のセットのサブセットの完全性を検証するために用いられ得るように、計算されたチェックサムをファイルと併せて配布すること(910における)を含んでよい。図10は、本明細書において提示されるいくつかの実施形態による動的チェックサム確認のためのプロセス1000を提示している。プロセス1000は、ファイルとともに配布されたチェックサムを生成するために用いられたCGVS100の同じ又は異なるインスタンスによって実行されてよい。いくつかの実施形態において、プロセス1000は、含まれているチェックサムを有するファイルを開く又は当該ファイルにアクセスする前にチェックサム確認を実行するファイルシステム又はアプリケーションの一部として統合されたCGVS100を用いて実行されてよい。
【0091】
プロセス1000は、ファイルにアクセスする要求を受信すること(1002における)を含んでよい。要求に応じて、プロセス1000は、要求されたファイル及び当該ファイルのためのチェックサムを取得すること(1004における)を含んでよい。チェックサムは、ファイルに埋め込まれるか、当該ファイルとともに配布されるか、又は当該ファイルに別様にリンクされてよい。
【0092】
プロセス1000は、チェックサム計算の一部として含まれるデータを選択するために用いられるサンプリングアプローチを選択すること(1006における)を含んでよい。選択(1006における)は、CGVS100のための静的チェックサム生成コンフィグレーション、ファイル名、ファイルタイプ、ファイルメタデータ、及び/又はチェックサムに関連付けられている特質のうちの1又は複数に基づいてよい。例えば、含まれているチェックサムの最初の2つのビット又は最後の2つのビットが、サンプリングアプローチを、前述の図を参照して説明した方法論のうちの1つとして識別してよい。この場合において、サンプリングアプローチは、プロセス900におけるチェックサム生成のために用いられる重要なデータ及び重要でないデータのサンプリングのハイブリッド選択に対応してよい。いくつかの実施形態において、CGVS100の全部のインスタンスは、プロセス900のハイブリッドアプローチ又は別の静的に構成されたアプローチに基づいて、チェックサム生成及び確認を実行するように構成されてよい。
【0093】
プロセス1000は、受信されたファイルにおけるデータの第1のセットをデータの第2のセットから区別すること(1008における)、及び/又は、選択(1006における)されたサンプリングアプローチに関連付けられている1又は複数のAI/ML及び/又はサンプリング技法に基づいて、区別された第2のセットのデータからデータのサブセットをサンプリングすること(1010における)を含んでよい。ファイル及び/又はファイルデータが変更されていない場合、データの第1のセット及びデータの第2のセットのサブセットは、ファイルとともに含まれているチェックサムを計算するために用いられたデータと同じである。
【0094】
ファイルデータが変更されているか否かを検証するために、プロセス1000は、データの第1のセットからの値及び/又はデータを、チェックサム計算のために指定されたデータの第2のセットのサブセットと組み合わせること(1012における)を含んでよい。例えば、値及び/又はデータを組み合わせること(1012における)は、データをそれらの位置値に従ってソートすること、及び、ソートされたデータからの1又は複数の非位置値を、任意のビットシフト演算及び/又はオーバーフロー修正演算を用いて合計することを含んでよい。
【0095】
プロセス1000は、確認チェックサムを生成するために、値及び/又はデータを組み合わせること(1012における)からの結果をハッシュ化すること(1014における)を含んでよい。プロセス1000は、確認チェックサムを、ファイルとともに含まれているチェックサムと比較することを含んでよい。比較は、2つのチェックサムの値が一致しているか又は異なっているかを判定すること(1016における)を含んでよい。
【0096】
確認チェックサムが、含まれているチェックサムと異なっていること(1016にて-いいえ)に応じて、プロセス1000は、ファイルが変更されていること及び/又はファイルデータの完全性を検証することができないことを判定すること(1018における)を含んでよい。したがって、プロセス1000は、失敗した完全性検査に応答した少なくとも第1のアクションを実行すること(1020における)を含んでよい。いくつかの実施形態において、第1のアクションを実行すること(1020における)は、ファイルデータが変更されていることを完全性検査が明らかにした結果として、ファイルに対するアクセスをブロックすることを含んでよい。いくつかの実施形態において、第1のアクションを実行すること(1020における)は、失敗した完全性検査についてユーザに警告する通知を生成すること、及び/又は、異なる信頼できるソースからファイルを取得することを含んでよい。
【0097】
確認チェックサムが、含まれているチェックサムと一致していること(1016にて-はい)に応じて、プロセス1000は、ファイルデータの完全性を検証すること(1022における)及び/又は検証されたデータが変更されていないことを確定することを含んでよい。したがって、プロセス1000は、成功した完全性検査に応答した少なくとも第2のアクションを実行すること(1024における)を含んでよい。いくつかの実施形態において、第2のアクションを実行すること(1024における)は、ファイルを開く、処理する、及び/又は、ファイルに対するアクセスを別様に提供することを含んでよい。
【0098】
図11は、本明細書において提示されるいくつかの実施形態による、デバイス1100の一部としてのCGVS100の1又は複数の統合を示している。デバイス1100は、コンピュータ、タブレット、スマートフォン、センサ、物のインターネット(Internet-of-Thing)(「IoT」)デバイス、及び/又は、ファイル及び/又はデータにアクセスする又はそれらを使用する他の装置を含んでよい。
【0099】
図11に示されているように、CGVS100は、デバイスファイルシステム1101及び/又はオペレーティングシステム1103の一部として統合されてよい。ファイルシステム1101及び/又はオペレーティングシステム1103の一部として、CGVS100は、チェックサムを有する全部の又は特定のファイルの完全性を、それらのファイルに対するアクセスを許可する前に確認してよい。このようにして、CGVS100は、悪意のある、改変された、未検証の、及び/又はダウンロードされたコンテンツからデバイス1100を保護し得る。さらに、CGVS100は、ファイルが新たに作成された、記憶された、及び/又はチェックサムにまだ関連付けられていない場合に、チェックサムを自動的に生成して各ファイルに関連付けてよい。そうすることにおいて、CGVS100は、記憶されたファイルがデバイス上での記憶後に及び/又は当該ファイルの次回のアクセス前に破損していないことを検証してよい。
【0100】
いくつかの実施形態において、CGVS100は、デバイス1100上で実行する異なるアプリケーション1105の一部として統合されてよい。例えば、点群作成、レンダリング、及び/又は編集アプリケーション1105をCGVS100と統合し、当該アプリケーション1105を用いてロード又は実行された任意の点群の完全性を検証してよい。同様に、CGVS100は、アプリケーション1105を用いて作成、編集、又は別様に修正された点群のためのチェックサムを動的に生成してよく、当該生成されたチェックサムを当該修正された点群とともに含んでよい。換言すれば、CGVS100は、アプリケーション1105の1つを用いてファイルが変更される場合はいつでも、新しいチェックサムを生成する及び/又はファイルの既存のチェックサムを更新してよい。
【0101】
図12は、デバイス1200の例示的なコンポーネントの図である。デバイス1200は、上記で説明したデバイス又はシステム(例えば、CGVS100、デバイス1100等)のうちの1又は複数を実装するために用いられてよい。デバイス1200は、バス1210、プロセッサ1220、メモリ1230、入力コンポーネント1240、出力コンポーネント1250、及び通信インタフェース1260を含み得る。別の実装において、デバイス1200は、追加の、より少数の、異なる、又は異なるように配置されたコンポーネントを含み得る。
【0102】
バス1210は、デバイス1200のコンポーネント間で、通信を可能にする1又は複数の通信パスを含み得る。プロセッサ1220は、命令を解釈して実行し得るプロセッサ、マイクロプロセッサ、又は、処理ロジックを含み得る。メモリ1230は、プロセッサ1220による実行のための情報及び命令を記憶し得る任意のタイプの動的記憶デバイス、及び/又は、プロセッサ1220による使用のための情報を記憶し得る任意のタイプの不揮発性記憶デバイスを含み得る。
【0103】
入力コンポーネント1240は、キーボード、キーパッド、ボタン、スイッチ等のような、オペレータがデバイス1200に情報を入力することを可能にする機構を含み得る。出力コンポーネント1250は、ディスプレイ、スピーカ、1又は複数のLED等のような、オペレータに情報を出力する機構を含み得る。
【0104】
通信インタフェース1260は、デバイス1200が他のデバイス及び/又はシステムと通信することを可能にする任意の送受信機のような機構を含み得る。例えば、通信インタフェース1260は、イーサネット(登録商標)インタフェース、光インタフェース、同軸インタフェース等を含み得る。通信インタフェース1260は、赤外線(「IR」)受信機、Bluetooth(登録商標)無線等のようなワイヤレス通信デバイスを含み得る。ワイヤレス通信デバイスは、遠隔制御、ワイヤレスキーボード、移動電話等のような外部デバイスに結合され得る。いくつかの実施形態において、デバイス1200は1よりも多い通信インタフェース1260を含み得る。例えば、デバイス1200は、光インタフェース及びイーサネットインタフェースを含み得る。
【0105】
デバイス1200は、上に記載された1又は複数のプロセスに関する特定の動作を実行し得る。デバイス1200は、プロセッサ1220がメモリ1230等のコンピュータ可読媒体に記憶されているソフトウェア命令を実行することに応答して、これらの動作を実行し得る。コンピュータ可読媒体は、非一時的メモリデバイスとして定義され得る。メモリデバイスは、単一の物理メモリデバイス内のスペースを含むか又は複数の物理メモリデバイスにわたって分散し得る。ソフトウェア命令は、別のコンピュータ可読媒体から又は別のデバイスからメモリ1230に読み込まれ得る。メモリ1230に記憶されているソフトウェア命令は、本明細書において説明された複数のプロセスをプロセッサ1220に実行させ得る。代替的に、本明細書において説明されたプロセスを実施すべく、ソフトウェア命令の代わりに又はソフトウェア命令を組み合わせて、ハードワイヤード回路が用いられ得る。したがって、本明細書に記載された実装は、ハードウェア回路及びソフトウェアの任意の特定の組み合わせに限定されない。
【0106】
実装の上記の説明は、例示及び説明を提供するが、網羅的であること又は開示されている厳密な形態に可能な実装を限定することを意図していない。修正及び変形が、上の開示に鑑みて可能であるか又は上記実装の実践から獲得され得る。
【0107】
実施形態を実装するために使用される実際のソフトウェアコード又は専門の制御ハードウェアは、実施形態の限定ではない。したがって、実施形態の動作及び挙動は、特定のソフトウェアコードに言及することなく記載され、ソフトウェア及び制御ハードウェアは、本明細書の説明に基づいて設計され得ることが理解される。
【0108】
例えば、上の図のうちのいくつかに関連して一連のメッセージ、ブロック、及び/又は信号が記載されているが、メッセージ、ブロック、及び/又は信号の順序は、他の実装において修正され得る。さらに、非依存的なブロック及び/又は信号が並列に実行され得る。さらに、特定のデバイスが特定の作用を実行する文脈において図が記載されたが、実際には、1又は複数の他のデバイスが、上で言及されたデバイスの代わりに、又は、それに加えて、これらの作用の一部又は全部を実行し得る。
【0109】
特徴の特定の組み合わせが特許請求の範囲に記載されている及び/又は明細書に開示されているが、これらの組み合わせは、可能な実装の開示を限定することを意図していない。実際、これらの特徴の多くが、特許請求の範囲に具体的に記載されていない及び/又は明細書に具体的に開示されていない方法で組み合わせられ得る。下に列挙される各従属請求項は、1つの他の請求項のみに直接従属し得るが、可能な実装の開示は、請求項セットにおける全ての他の請求項との組み合わせにおける各従属請求項を含む。
【0110】
さらに、特定の接続又はデバイスが示されているが、実際には、追加の、より少数の、又は異なる接続又はデバイスが使用され得る。さらに、様々なデバイス及びネットワークが別々に示されているが、実際には、複数のデバイスの機能性が単一のデバイスによって実行され得るか又は1つのデバイスの機能性が複数のデバイスによって実行され得る。さらに、いくつかのデバイスがネットワークと通信するように示されているが、いくつかのそのようなデバイスは、全体として又は部分的に、ネットワークの部分として組み込まれ得る。
【0111】
上記の実施形態が、個人によって提供される個人情報を収集、記憶、又は利用する限り、そのような情報は、個人情報の保護に関する準拠法全てに従って使用されるものと理解されるべきである。さらに、そのような情報の収集、記憶及び使用は、情報の状況及びタイプについて適切であり得るように、例えば、既知の「オプトイン」又は「オプトアウト」プロセスを通じて、そのようなアクティビティに対する個人の同意の対象であり得る。個人情報の記憶及び使用は、例えば、特に機密の情報についての様々な暗号化及び匿名化技法を通じた、情報のタイプを反映する適切にセキュアな方式であり得る。
【0112】
本明細書に記載されるいくつかの実装は、閾値と併せて記載され得る。「よりも大きい」という用語(又は同様の用語)は、閾値に対する値の関係を説明するために本明細書において使用される場合、「よりも大きい又はそれに等しい」という用語(又は同様の用語)と交換可能に使用され得る。同様に、「よりも小さい」という用語(又は同様の用語)は、閾値に対する値の関係を説明するために本明細書において使用される場合、「よりも小さい又はそれに等しい」という用語(又は同様の用語)と交換可能に使用され得る。閾値を「超える」(又は同様の用語)は、本明細書において使用される場合、閾値が使用される文脈に応じて、「閾値よりも大きい」、「閾値よりも大きい又はそれに等しい)」、「閾値よりも小さい」、「閾値よりも小さい又はそれに等しい」、又は、他の同様の用語と交換可能に使用され得る。
【0113】
本願で用いられる要素、作用、又は命令は、明示的にそのように説明されていない限り、重大又は不可欠と解釈されるべきではない。「及び」という用語の使用の事例は、本明細書において使用される場合、必ずしも、「及び/又は」という語句がこの事例において意図されているという解釈を排除しない。同様に、「又は」という用語の使用の事例は、本明細書において使用される場合、必ずしも、「及び/又は」という語句がこの事例において意図されているという解釈を排除しない。また、冠詞「a」は、本明細書において使用される場合、1又は複数の項目を含むことが意図され、「1又は複数」という語句と交換可能に使用され得る。1つの項目のみが意図される場合、用語「1」、「単一」、「のみ」又は同様の文言が使用される。さらに、「に基づく」という語句は、別段の明示的な定めがない限り、「に少なくとも部分的に基づいて」を意味することが意図されている。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
【国際調査報告】