(57)【要約】  損失性アルゴリズム又はシリアル化されたデータの部分部分が変更される場合がある他の部分部分に対してエンコードされるアルゴリズムを使用してシリアル化が行われる場合であっても、後の差分符号化を容易化させるような態様でデータをシリアル化させることが可能である。このことは、或るファイルの変更されたバージョンに亘ってキーフレーム情報を保存し、後のバージョンをシリアル化する場合に前に作成した圧縮されたファイルからの情報を複製するか、又は該シリアル化プロセス期間中に或るファイルのバージョン間での差異を示す変更情報を付加すること、を包含するアプローチによって達成することが可能である。【選択図】  図１【特許請求の範囲】
【請求項１】
ａ．第１コンピュータへ通信可能に接続されているデータベース内にシリアル化した形
式にある基本組のデータを格納している第１ファイルを格納し、
ｂ．該第１コンピュータにおいて、該基本組のデータに対して１個以上の変更を行い、
ｃ．変更された組のデータを第２ファイルへシリアル化し、その場合に該変更された組
のデータは該１個以上の変更に基づいて該基本組のデータから得られた１組のデー
タであり、該変更された組のデータをシリアル化することが、
ｉ．第１シリアル化プロセスであって、該変更された組のデータの複数の部分の各々
に対して、
Ａ．該基本組のデータの対応する部分に対する変更が該基本組のデータに対する１
個以上の変更内に包含されているか否かを決定し、その場合に該基本組のデー
タの該対応する部分が該変更された組のデータの該部分に対応しており、
Ｂ．該基本組のデータの該対応する部分に対する変更が該基本組のデータに対する
該１個以上の変更内に包含されていない場合には、該基本組のデータの該対応
する部分をシリアル化した形式でエンコードする該第１ファイルの一部分と同
一のデータを該第２ファイル内に付加し、
Ｃ．該基本組のデータの該対応する部分に対する変更が該基本組のデータに対する
該１個以上の変更内に包含される場合には、該変更された組のデータの該部分
をシリアル化された形式でエンコードするデータを該第２ファイルへ付加する、
ことを包含している該第１シリアル化プロセスと、
ｉｉ．第２シリアル化プロセスであって、
Ａ．該基本組のデータのシリアル化されたバージョンを該第２ファイルへ付加し、
その場合に該第２ファイルへ付加される該基本組のデータの該シリアル化され
たバージョンは該基本組のデータが該第１ファイル内に格納されている該シリ
アル化された形式と同一であり、
Ｂ．該基本組のデータに対する該１個以上の変更を反映している１組の変更情報を
該第２ファイルへ付加する、
ことを包含している該第２シリアル化プロセスと、
からなる１組のシリアル化プロセスから取られた一つのシリアル化プロセスを実施す
ることを包含している、
ことを包含している方法。
【請求項２】
該変更された組のデータをシリアル化することが、該第１シリアル化プロセスを実施することを包含している請求項１記載の方法。
【請求項３】
ａ．該変更された組のデータをシリアル化することが該第２シリアル化プロセスを実施することを包含しており、且つ
ｂ．該第２シリアル化プロセスが該第１ファイルに対応するシグネチャを該第２ファイルへ付加させることを包含している、
請求項１記載の方法。
【請求項４】
ａ．該第２ファイルを該第１コンピュータから遠隔地に位置されている第２コンピュータへ模写し、
ｂ．該第２コンピュータにおいて、該第２ファイルの該模写されたコピーから該変更された組のデータを脱シリアル化し、その場合に該第２ファイルの該模写されたコピーから該変更された組のデータを脱シリアル化することが、該第２ファイルの該模写されたコピーから該１組の変更情報において該１個以上の変更を表示させることを包含している、
ことを包含している請求項３記載の方法。
【請求項５】
該第２コンピュータへ該第２ファイルを模写することが、該基本組のデータの該シリアル化されたバージョンが該第２コンピュータにおいて利用可能であることの決定に基づいて、該１組の変更情報を送給することを包含している請求項４記載の方法。
【請求項６】
該基本組のデータの該シリアル化されたバージョンが該第２コンピュータにおいて利用可能であることの決定が、該基本組のデータから派生されたデータがシリアル化されたファイルが該第２コンピュータにおいて利用可能であることを決定することによってなされる請求項５記載の方法。
【請求項７】
該基本組のデータの該シリアル化されたバージョンが該第２コンピュータにおいて利用可能であることの決定が、該基本組のデータと該第２コンピュータにおいて１個のファイルへシリアル化された１組のデータの両方がそれから派生された先祖組のデータが存在することを決定することを包含している複数のステップを実施することによってなされる請求項５記載の方法。
【請求項８】
該変更された組のデータをシリアル化することが、該第２ファイルに対する複数のブロックサイズ表示を該第２ファイルへ付加することを包含している請求項１記載の方法。
【請求項９】
該第２ファイル用のシグネチャを作成することを包含しており、該第２ファイル用の該シグネチャは複数個のサブ・シグネチャを包含しており、該複数個のサブ・シグネチャは、複数個のブロックサイズ表示の各々に対して、該ブロックサイズ表示に対応する寸法を持った該第２ファイルの一部を識別するサブ・シグネチャを包含している請求項８記載の方法。
【請求項１０】
変更した組のデータの転送を容易化させる装置において、
ａ．第１ファイルを格納し第１コンピュータと通信可能に接続されているデータベースが
設けられており、該第１ファイルはシリアル化された形式で基本組のデータを格納し
ており、
ｂ．メモリが設けられており、該メモリは該第１コンピュータを使用して該基本組のデー
タに対してなされた１個以上の変更に基づいて該基本組のデータから得られる変更し
た組のデータを第２ファイル内にシリアル化させるために該第１コンピュータを構成
すべく動作可能な１組の命令を格納しており、
ｃ．該第１コンピュータは、
ｉ．第１シリアル化プロセスであって、該変更された組のデータの複数の部分の各々に
対して、
Ａ．該基本組のデータの対応する部分に対する変更が該基本組のデータに対する該１
個以上の変更内に包含されているか否かを決定し、その場合に該基本組のデータの
該対応する部分は該変更された組のデータの該部分に対応しており、
Ｂ．該基本組のデータの該対応する部分に対する変更が該基本組のデータに対する該
１個以上の変更内に包含されていない場合には、該基本組のデータの該対応する部
分をシリアル化された形式でエンコードする該第１ファイルの一部と同一のデータ
を第２ファイルへ付加し、
Ｃ．該基本組のデータの該対応する部分が該基本組のデータに対する該１個以上の変
更内に包含されている場合には、該変更された組のデータの該部分をエンコードす
るデータを該第２ファイルへ付加する、
ことを包含している第１シリアル化プロセスと、
ｉｉ．第２シリアル化プロセスであって、
Ａ．該基本組のデータのシリアル化されたバージョンを該第２ファイルへ付加し、そ
の場合に該第２ファイルへ付加される該基本組のデータの該シリアル化されたバー
ジョンは該基本組のデータが該第１ファイル内に格納される場合の該シリアル化さ
れた形式と同一であり、
Ｂ．該基本組のデータに対する該１個以上の変更を反映する１組の変更情報を該第２
ファイルへ付加する、
ことを包含している第２シリアル化プロセスと、
からなる１組のシリアル化プロセスから取られる１個のシリアル化プロセスを実施する
ための１組の命令によって構成されており
ｄ．ネットワーク接続が設けられており、該ネットワーク接続は該第１コンピュータによってシリアル化されたデータを１個以上の遠隔サイトへ送るべく動作可能である、
装置。
【請求項１１】
該第１コンピュータが該第１シリアル化プロセスを実施する構成とされている請求項１０記載の装置。
【請求項１２】
ａ．該第１コンピュータが該第１シリアル化プロセスを実施する構成とされており、
ｂ．該第１シリアル化プロセスが該第１ファイルに対応するシグネチャを該第２ファイルへ付加することを包含している、
請求項１０記載の装置。
【請求項１３】
該第１コンピュータから遠隔的に位置されている第１コンピュータが設けられており、該第２コンピュータは該第２ファイルの模写されたコピーから該変更された組のデータを脱シリアル化する構成とされており、該第２ファイルの該模写されたコピーから該変更された組のデータを脱シリアル化することが該第２ファイルの該模写されたコピーから該１組の変更情報において表示される該１個以上の変更を行うことを包含している請求項１２記載の装置。
【請求項１４】
該第１コンピュータが、該基本組のデータの該シリアル化されたバージョンが該第２コンピュータにおいて利用可能であることの決定に基づいて、該１組の変更情報を該第２コンピュータへ送る構成とされている請求項１３記載の装置。
【請求項１５】
該第１コンピュータと該第２コンピュータとからなる組から取られる少なくとも１個のコンピュータが、該基本組のデータから派生されたデータがシリアル化された１個のファイルが該第２コンピュータにおいて利用可能であることを決定することによって、該基本組のデータの該シリアル化されたバージョンが該第２コンピュータにおいて利用可能であることを決定する構成とされている請求項１４記載の装置。
【請求項１６】
該第１コンピュータと該第２コンピュータとからなる組から取られる少なくとも１個のコンピュータが、該基本組のデータと該第２コンピュータにおいて１個のファイルへシリアル化された１組のデータとの両方がそれから派生された先祖組のデータが存在することを決定することによって、該基本組のデータの該シリアル化されたバージョンが該第２コンピュータにおいて利用可能であることを決定する構成とされている請求項１４記載の装置。
【請求項１７】
該第１コンピュータが実施すべく構成される該シリアル化プロセスは、複数個のブロックサイズ表示を該第２ファイルへ付加することを包含している請求項１０記載の装置。
【請求項１８】
該第１コンピュータは該第２ファイルに対するシグネチャを作成する構成とされており、該第２ファイルに対する該シグネチャは複数個のサブ・シグネチャを包含しており、該複数個のサブ・シグネチャは、該複数個のブロックサイズ表示の各々に対して、該ブロックサイズ表示に対応する寸法を持った該第２ファイルの部分を識別するサブ・シグネチャを包含している請求項１７記載の装置。
【請求項１９】
ａ．データの最適化されたシリアル化を転送する手段、
ｂ．データの最適化されたシリアル化を転送する該手段へ通信可能に接続されている入力装置、
を有している装置。
【発明の詳細な説明】
【技術分野】
【０００１】
ここに開示する技術は、データのシリアライゼーション、即ちシリアル化、に適用することが可能である。ここに開示する技術の或る好適な実施例においては、このシリアル化は、シリアル化したデータのバージョン間にキーフレーム又はその他の情報を保存することによってデルタエンコーディング（delta encoding）、即ち差分符号化、を容易化させることが可能である。
【背景技術】
【０００２】
米国特許第８，２４４，８３１号（「コンピュータネットワーク内の二進差分情報のプリエンプティブ作成方法（Method for the preemptive creation of binary delta information within a computer network）」、発明者：マクリーナン他（McLennan et al.）、その開示内容全ては引用により本書に取り込む）に記載されている如く、ファイル間の共通性を識別するために差分符号化を適用することは有用な場合がある。しかしながら、幾つかのファイルフォーマットの場合には、エンドユーザにとっては同一に見える２つのファイルであっても非常に異なるデータから構成されている場合がある。例えば、１番目のＭｐ３ファイルがソングの未編集バージョンをシリアル化することによって作成された場合、そのソングの編集済みバージョンはそのソングのイントロダクションにおける猥褻性を検閲することによって作成され、且つ２番目のＭｐ３ファイルが該ソングの該編集済みバージョンをシリアル化させることによって作成され、その１番目及び２番目のＭｐ３ファイルは著しく異なる場合がある。このタイプの差異は差分符号化を複雑化させ及び／又はその利点を減少させる場合がある。同様に、多くのファイルフォーマット、例えばＷＯＲＤ（ＤＯＣ）及び標準のＡＣＩＳバイナリ（ＳＡＢ）、はファイルをディスク上に格納させるか又はディスクからコンピュータメモリ内に読み込むことが可能である効率を最適化させるべく設計されている。これらのタイプの最適化は、又、差分符号化を複雑化させ及び／又はその利点を減少させる場合がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第８，２４４，８３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従って、当該技術において、シリアル化したデータの事後的な差分符号化を容易化させる態様でシリアル化を行うか又は行うことが可能である技術に対する必要性が存在している。
【課題を解決するための手段】
【０００５】
本書に開示する技術は、シリアル化したデータの後の転送（例えば、差分符号化による）を容易化させる態様で例えばＭｐ３，Ｏｇｇ，Ｈ２６４，ＤＯＣ，ＳＡＢ，ＤＸＦ，ＭＰ４等の圧縮したフォーマットへのデータのシリアル化を含む多様なセッティングにおいて使用することが可能である。例えば、本書に記載する開示は、たとえマスターメディアファイルに対して修正、即ちレビジョン（revision）、がなされたとしてもそのマスターメディアファイルのシリアル化したバージョンン間でキーフレームを維持するマシンを実現するために使用することが可能である。本書に記載する開示は、又、シリアル化の時に差分符号化のために使用することが可能なデータを発生するために使用することも可能である。
【０００６】
勿論、本書に記載する開示に基づいて、その他のマシンのみならず、方法および製造物も実現することが可能である。従って、上に記載した要約は、本発明者等の技術の幾つかの側面がどのようにして実現することが可能であるかということの例示としてのみ理解すべきであり、且つ本書によって又はいずれかの関連文書によって与えられる保護に関して制限するものとして取り扱われるべきではない。
【０００７】
図面及び以下の詳細な説明は単に例示的なものであることが意図されており、本発明者等によって予期されている本発明の範囲を制限することは意図されていない。
【図面の簡単な説明】
【０００８】
【図１】本書に記載する技術を有益的に使用することが可能な環境を示した概略図。
【図２】ファイルの未修正バージョンの圧縮したバージョンに対する類似性に対して類似性を増加させるためにコンフィギュレーションデータを使用することが可能なファイルの修正したバージョンをシリアル化するプロセスを示したフローチャート。
【図３】ファイルの未修正バージョンの圧縮したバージョンに対する類似性に対して類似性を増加させるためにコンフィギュレーションデータを使用することが可能なファイルの修正したバージョンをシリアル化するプロセスを示したフローチャート。
【図４】ファイルの修正したバージョンをシリアル化する場合にファイルの未修正バージョンからの情報を使用することが可能なプロセスを示したフローチャート。
【図５】ファイルの修正したバージョンをシリアル化する場合にファイルの未修正バージョンからの情報を使用することが可能なプロセスを示したフローチャート。
【図６ａ】ＳＶＧフォーマットを使用してどのようにしてイメージを表示させることが可能であるかを例示しており、且つ、更に、基本文書からの変化を示す情報をどのようにしてそのイメージの修正したバージョンを格納するファイル内に包含させることが可能であるかを例示する構成の一部を示した概略図。
【図６ｂ】ＳＶＧフォーマットを使用してどのようにしてイメージを表示させることが可能であるかを例示しており、且つ、更に、基本文書からの変化を示す情報をどのようにしてそのイメージの修正したバージョンを格納するファイル内に包含させることが可能であるかを例示する構成の一部を示した概略図。
【図６ｃ】ＳＶＧフォーマットを使用してどのようにしてイメージを表示させることが可能であるかを例示しており、且つ、更に、基本文書からの変化を示す情報をどのようにしてそのイメージの修正したバージョンを格納するファイル内に包含させることが可能であるかを例示する構成の一部を示した概略図。
【図７】ベースラインデータの修正したバージョンをシリアル化する場合に、要素毎に好適なブロック寸法情報をキャプチャーするために使用することが可能なプロセスを示したフローチャート。
【図８】同様のファイルから基本文書の修正したバージョンを派生させる経路を形成するために要素毎にブロック寸法情報を使用することが可能なプロセスを示したフローチャート。
【発明を実施するための形態】
【０００９】
図面を参照すると、図１は、本書に記載する技術を有益的に使用することが可能な環境を例示している。その図において、中央ロケーション、即ち位置、１０２にあるマスターデータベースはマスターメディアファイル１０３を含んでいる。図１は、又、複数個の遠隔位置１０４，１０５を示しており、その各々は遠隔データベース１０６，１０７と、遠隔コンピュータ１０８，１０９とを具備しており、該遠隔コンピュータは遠隔データベース１０６，１０７の内の一つへ接続されており且つその中におけるコンテントを消費するために使用することが可能である。遠隔位置１０４，１０５及び中央位置１０２はクラウドを基礎とした転送サービス１１２を介して接続されており、該転送サービスは、米国特許第８，２４４，８３１号に記載されているような１個又はそれ以上のサーバー１１３，１１４，１１５を使用して中央位置１０２と遠隔位置１０４，１０５との間でデータを転送するために使用することが可能である。
【００１０】
本書に開示される技術が図１に示されているような環境においてどのように使用することが可能であるかを例示するために、マスターメディアファイル１０３が１５０，０００個のフレームから構成されているムービー、即ち動画、でその各々が１２８０×７２０ピクセルビットマップイメージとしてエンコード即ち符号化されており、且つ遠隔データベース１０６，１０７がマスターメディアファイル１０３の１５番目のフレーム毎（即ち、圧縮したバージョンのフレーム０，１５，３０，４５等、及びマスターメディアファイル１０３は同一である）にビットマップと該ビットマップから残りのフレームをどのようにして派生させることが可能であるかを記述したデータとを具備するマスターメディアファイル１０３の圧縮したバージョンのコピー１１０，１１１を包含している、というシナリオについて検討する。例えば、該圧縮したバージョンにおいては、フレーム１−１４はフレーム０とは異なるピクセルのみを包含している場合があり、フレーム１６−２９はフレーム１５とは異なるピクセルのみを包含している場合があり、以下同様であって、それによって該圧縮したバージョンがマスターメディアファイルの１５０，０００個のフレームの各々に対して完全な１２８０×７２０個のピクセルを包含することの必要性を回避している。
【００１１】
この様なシナリオにおいては、マスターメディアファイル１０３及び圧縮したバージョン１１０，１１１のコピーの両方においてビットマップとしてエンコードされているフレームに影響を与えるマスターメディアファイル１０３に対する変更、即ちモディフィケーション（modification）、は、オリジナルのマスターメディアファイルの圧縮したバージョンとは非常に異なっている新たな修正したマスターメディアファイルの圧縮したバージョンとなる場合がある。例えば、オリジナルのマスターメディアファイルのフレーム１０と１１との間に新たなフレームを加えた場合には、その結果は、フレーム１５以後からの該修正したマスターメディアファイルの圧縮したバージョンにおける全てのフレームはオリジナルのマスターメディアファイルの圧縮したバージョンとは異なるものとなる場合がある。この結果を回避するために、オリジナルのマスターメディアファイルからのどのフレームが、オリジナルのマスターメディアファイルとオリジナルのマスターメディアファイルの圧縮したバージョンとの両方においてビットマップとして格納されたかの情報を、コンフィギュレーションファイル１１６内に維持させることが可能である。従って、この様なコンフィギュレーションファイルは、修正したマスターメディアファイルの圧縮したバージョンにおいて全ての１５番目のフレームをビットマップとして単純にエンコードする代わりに、修正したマスターメディアファイルの圧縮したバージョンを作成する場合にオリジナルのマスターメディアファイルの圧縮したバージョンとの類似性を最大化させるために図２に示した如きプロセスにおいて使用することが可能である。
【００１２】
図２のプロセスは、マスターメディアファイルの変更期間中に、マスターメディアファイル２０１に対する変更が行われる際に該変更を記録するステップで開始する。この変更の記録は多数の態様で実施することが可能である。例えば、マスターメディアファイル内のどのフレームが新たな位置へ移動されたか、マスターメディアファイル内のどのフレームが編集されたか（例えば、ピクセルの変更、ビットマップとして表されているフレームの場合）、マスターメディアファイル内のどのフレームが削除されたか、及びどの様な新たなフレームがマスターメディアフレームに付加されたか、等の情報を記述するデータをマスターメディアファイルを変更するために使用されたコンピュータのメモリ内に格納することが可能である。同様に、修正したマスターメディアファイルにおける各フレームに対して、そのフレームがオリジナルのマスターメディアファイルにおける１つのフレームと同一であった場合に、及びオリジナルのマスターメディアファイル内に同一のフレームが存在していた場合に、どのフレームが同一であったかを示すデータを格納させることが可能である。一方、行われた特定の変化（例えば、特定のビットマップにおけるどのピクセルが変更されたか）を記録させることも可能である。
【００１３】
勿論、当業者によって理解されるように、マスターメディアファイルに対する変更がなされるに連れてマスターメディアファイルに対する変更を記録するステップが実施されない場合がある。例えば、変更していないマスターメディアファイルのコピーが維持されたり、且つマスターメディアファイルの変更したバージョンとオリジナルのバージョンとを比較することによって変更が完了した後にマスターメディアファイルに対する変更が識別される場合がある。このことは、例えば、マスターメディアファイルの２つの圧縮されていないバージョンが使用可能であり且つ或るオーガニゼーション、即ち機構、がマスターメディアファイルの既に既存しているバージョンの内の一つから新たな圧縮したファイルを作成することを希望する場合に、有益的に使用することが可能である。上述したものの結合のような更なる変形例も可能であり、本開示に鑑みて当業者には直ぐに自明のことである。
【００１４】
マスターメディアファイルの圧縮したバージョンを作成する時には、変更されたメディアファイルに対してコンフィギュレーションファイルが存在するか否かをチェック２０２することによって図２のプロセスが継続する。その様なコンフィギュレーションファイルが存在しない場合には、マスターメディアファイルの圧縮したバージョンが１５番目のフレーム毎にビットマップで作成され２０３、且つマスターメディアファイルからどのフレームが圧縮されたファイルにおけるビットマップとしてエンコードされたかを示すコンフィギュレーションファイルが作成される２０４。
【００１５】
一方、コンフィギュレーションファイルが存在する場合には、メディアファイルの圧縮されたバージョンへ付加された最後のビットマップが現在のフレームの１５個のフレーム内であるか否かをチェック２０５することによって図２のプロセスが継続する。圧縮されたファイルへ付加された最後のビットマップが現在のフレームの１５個のフレーム内である場合には、別のチェック２０６を実施して、変更がなされる前に作成されたメディアファイルの圧縮されたバージョンにおけるビットマップとして現在のフレームがエンコードされたことをコンフィギュレーションファイルが告げているか否かを判別する。そうである場合、又は最後のビットマップが１５個のフレーム内に無い場合には、現在のフレームに対するビットマップがメディアファイルの圧縮されたバージョンへ付加される２０７。そうでない場合には、現在のフレームと最後のビットマップとの間の差異のみを示す１個のフレームが圧縮されたファイルへ付加される２０８。
【００１６】
最後に、そのフレームが圧縮されたファイルへ付加されると（ビットマップ２０７として、又は最後のビットマップからの１組の差異２０８としてのいずれか）、圧縮されたファイルへ付加すべき何らかのさらなるフレームがメディアファイル内に存在するか否かのチェック２０９が行われる。存在する場合には、本プロセスは次のフレームへ移行し２１０、且つメディアファイルの圧縮されたバージョンへ付加された最後のビットマップが現在のフレームの１５個のフレーム内であるか否かのチェック２０５を行うためにリターンする。そうでない場合には、本プロセスは、マスターメディアファイルの圧縮されたバージョンにおけるビットマップとしてどのフレームがエンコードされたかを示すコンフィギュレーションファイルを作成２０４して、終了する。
【００１７】
理解すべきことであるが、図２に示したプロセスは単に例示的なものであって、本書に開示する技術は図２に描写した以外の態様で実現することが可能である。例えば、図２のプロセスにおいて、マスターメディアファイルの圧縮されたバージョンにおけるどのフレームがビットマップとしてエンコードされているかを示すコンフィギュレーションファイルは、マスターメディアファイルの圧縮されたバージョンの作成が完了した後に、作成される２０４。しかしながら、このタイプの情報はその他の時においてもキャプチャすることが可能である。例えば、マスターメディアファイルの圧縮されたバージョンが作成されている間に、ビットマップとしてエンコードされたフレームがそのファイルへ付加される度に、ビットマップとして付加されたフレームの表示を包含するためにコンフィギュレーションファイルをアップデートすることが可能である。一方、マスターメディアファイルの新たな圧縮されたバージョンが作成される場合ではなく、マスターメディアファイルの圧縮されたバージョンが１個又はそれ以上の遠隔位置１０４，１０５へ、又はリポジトリへ配布される場合に（例えば、データベースをコミット（commit）したか１０１、クラウドを基礎とした転送サービスへアップロードされたか１１２、又は何らかのその他の遠隔データベース（図１には不図示）へアップロードされる）、コンフィギュレーションファイルを作成することが可能である。
【００１８】
図２のプロセスに関してのその他の変形例も可能である。例えば、圧縮されたファイル内にビットマップとしてどのデータがエンコードされているかに関しての情報を格納するために別個のコンフィギュレーションファイルを使用するのではなく、その様な情報は、マスターメディアファイルか、圧縮されたファイルか、又はその両方のいずれかにおいて、メタデータとしてエンコードさせることが可能である。そのために使用することが可能な１つのフォーマットの例を以下の表１に示してある。
【００１９】
【表１】
2016514393.tif 000002
【００２０】
その他のフォーマットも可能である。例えば、各フレームがファイルの圧縮されたバージョンにおけるビットマップとしてエンコードされているか否かを明示的に表示するのではなしに、幾つかの実現例においては、そのフレームが実際に圧縮されたバージョンにおけるビットマップとしてエンコードされたものである場合に、或るフレームが或るファイルの圧縮されたバージョンにおける一つのビットマップとしてエンコードされたか否かの明示的な言及がなされるに過ぎない。一方、幾つかの場合においては、メタデータは表１に示したものよりも一層多くの情報を包含している場合がある。例えば、１個の圧縮されたファイルがビットマップとしてエンコードされた１個のフレームを包含していることを単純にエンコードするのではなく、どの圧縮されたファイルがビットマップとしてエンコードされた１個のフレームを包含しているかを示す情報が存在する場合がある（例えば、
【００２１】
【表１ａ】
2016514393.tif 000003
【００２２】
であって、
【００２３】
【表１ｂ】
2016514393.tif 000004
【００２４】
ではない）。どのようにして情報が圧縮されたファイルにおいてエンコードされているかの何らかの明示的な記録に依存しないアプローチも可能である。例えば、圧縮されたファイルにおけるどのフレームがビットマップとしてエンコードされているかに関する情報をその圧縮されたファイル自身のコピーを検査することによって決定することが可能である（例えば、ビットマップとしてエンコードされているフレームは特定且つ予測可能な寸法を有しており、一方最も最近のビットマップからの差異としてエンコードされているフレームは、通常、一層小さく且つそれらの内容に基づいて異なる寸法を有している）。これらのアプローチの組合せ（例えば、どの圧縮されたファイルがビットマップとしてエンコードされている特定のフレームを包含しているかを示すためにメタデータを使用するが、少なくとも１個の圧縮されたファイルがそうする場合に明示的にそうするに過ぎない）も可能であり、且つ本開示に鑑みて不当な実験を行うこと無しに当業者等によって実現することが可能である。
【００２５】
本発明者等の技術を実現するために使用することが可能な別のタイプの変形例は、別々のものとして上述した複数のステップを結合させることである。例えば、図２のプロセスにおいて、コンフィギュレーションファイルが存在するか否かの初期的なチェック２０２を行い、そのファイルが存在するか否かに依存して、メディアファイルの圧縮されたバージョンを１５番目のフレーム毎にビットマップで作成２０３するか、又は別のエンコーディングシーケンスへ入り、そこでそれらが前のビットマップから１５個のフレームを越えて離れているか、又はコンフィギュレーションファイルがそれらが前に作成した圧縮されたファイルにおけるビットマップとしてエンコードされたものであることを表す場合２０５−２１０に、フレームがビットマップとしてメディアファイルの圧縮されたバージョンへ付加される。
【００２６】
該別々のエンコーディングシーケンスを結合し且つコンフィギュレーションファイルに対する予備的なチェックを取り除いた同様のアプローチを使用することも可能である。この様な代替的なシーケンスをどのようにして実施するかを示すフローチャートを図３に与えてある。その図において、複数のエンコーディングシーケンスの代わりに、単一のエンコーディングシーケンスのみが存在しており、その場合に、圧縮されたファイルへ付加された最後のビットマップが現在のフレームの１５個のフレーム内にある場合であっても、現在のフレームをビットマップとして圧縮されたファイルへ付加すべきであることを表すオーバーライド情報（例えば、コンフィギュレーションファイル内に格納されているか又は前述した如きメタデータとして、又は以下に説明する如きその他の態様で）が存在するか否かを決定するためにチェック３０１が実施される。マスターメディアファイル２０１へ変更を記録し且つそれをオリジナル及び変更したマスターメディアファイルにおける同一のフレームを識別するエンコーディングシーケンスの期間中に実施される論理で置換させる別個のステップを取り除く等のその他のタイプの変更も可能である。従って、図３に示した変更したシーケンスは例示的なものに過ぎないとして理解すべきであり、且つ本書又は何らかの関連文書によって付与される保護の範囲に関する制限を暗示するものとして取り扱われるべきではない。
【００２７】
当業者等には直ぐに自明であるように、前述した特定のフォーマット及びエンコーディング手法は、本発明者等の技術を例示することが可能な文脈を提供することを意図したものであって、本発明者等の技術がその特定のエンコーディング手法、又は同様に簡潔なエンコーディング手法が使用される状況にのみ適用することが可能であることを暗示することを意図したものではない。例えば、情報がキーフレーム（即ち、ファイル内の他のフレームに拘わらずに同一のマテリアルが呈示されることとなる態様でエンコードされているフレーム）及びインターフレーム（即ち、ファイル内の他のフレームに対する変更が存在する場合に異なるマテリアルが呈示されることとなる態様でエンコードされているフレーム）として格納される多くのメディアファイルフォーマットがある。これらのフォーマットは、キーフレームとして圧縮されていないビットマップを使用する蓋然性は無く、且つインターフレームを発生させるために前のキーフレームとの単純なピクセル比較よりも一層洗練された技術を使用する蓋然性が高い。しかしながら、本書に記載する技術は、特定のキーフレームフォーマット及びインターフレーム発生技術を考慮に入れることによってこれらのタイプのフォーマットにも適用させることが可能であり、その場合に、キーフレーム情報を維持し、キーフレームを変更したメディアファイルの圧縮されたバージョン内に保存し、且つ保存したキーフレームデータを使用して該インターフレームを計算するが、それらの全ては図２内に示されている（簡単化した形式ではあるが）。
【００２８】
図２の文脈で記載したもの以外にキーフレーム及びインターフレームを基礎とした圧縮技術に適用可能であることに加えて、本発明者等の技術はフレーム情報を使用することの無い圧縮技術にも適用することが可能である。そのことを例示するために、消費者が少なくとも部分的に既に見たか又は聞いたかに基づいて消費者によって知覚される蓋然性のない圧縮されていないメディアファイルにおけるデータを識別し、次いでその圧縮されていないメディアファイルの圧縮されたバージョンを作成する場合にそのデータを省略する圧縮手法を使用するメディアフォーマットについて検討する。このタイプの圧縮手法に対して本発明者等の技術を適用することが可能なプロセスの１例を図４に与えてある。そのプロセスにおいては、メディアファイルの圧縮されたバージョンが作成される場合に、圧縮されていないメディアファイルの各１秒に対して圧縮されたメディアファイルへ付加される情報はその圧縮されたメディアファイルへ付加される情報の前の３秒に基づいている。図２のエンコーディング手法の場合の如く、図４において使用される手法は、本書に開示される技術をどのようにして実現することが可能であるかを例示するための一つの簡単化した例である。その図に示されているアプローチは、これらの圧縮タイプにおける圧縮されたメディア内に包含される情報を決定するために何が使用されるかを考慮することによって、不当な実験を行うこと無しに当業者等によって、その他のより一層複雑なタイプの圧縮へ適用させることが可能である。
【００２９】
図４のプロセスは、図２のプロセスの如く、マスターメディアファイルに対してなされる変更を記録することで開始する２０１。このことは、変更がなされているマスターメディアファイルにおける位置のタイムシグネチャ（signature）を識別することによって達成させることが可能であるが、図２の文脈において前述したものの如き変形例も可能である。マスターメディアファイルに対する変更がなされた後で且つ変更したマスターメディアファイルの圧縮されたバージョンを作成するプロセスが開始すると、該圧縮されたファイルへ付加されている情報の前の３秒内に該変更のいずれかが存在していたか否かのチェック４０１が行われる。そのことに対する回答が否定である場合には、該変更されたファイルからの現在の情報が該圧縮されたファイルへ付加された情報の前の３秒に基づいてエンコードされ４０２、且つ該圧縮されたファイルへ付加される４０３。一方、該圧縮されたファイルへ付加されるべき情報は、圧縮されたファイルへ付加される前に４０３、変更されていないファイルからの前の３秒の情報に基づいてエンコードされる４０４。その情報が付加されると４０３、圧縮されたファイルへ付加されていない変更されたファイル内に更なる情報が存在するか否かについてチェックが行われる４０５。存在しない場合には、本プロセスは終了し４０７、そうでない場合には、エンコード中の変更されたマスターファイルの部分は前進し４０６（例えば、エンコードされるべき次の秒へ移動）、且つ本プロセスはエンコーディングシーケンスの最初におけるチェックへループバックする４０１。
【００３０】
その他の変更も可能である。例えば、図２−４のプロセスにおいては、変更されたマスターメディアファイルの圧縮されたバージョンが、再エンコーディングをし且つ例えその情報が前に作成されたマスターメディアファイルの圧縮されたバージョンにおいて既に使用可能であったとしても変更されたマスターメディアファイルの圧縮されたバージョンへ情報を付加することによって、作成されている。しかしながら、幾つかの場合においては、変更されたマスターメディアファイルの圧縮されたバージョンを作成する場合に、この処理の幾らかを回避することが可能な場合がある。例えば、マスターメディアファイルの圧縮されたバージョンが作成される場合に、その圧縮されたファイルにおける特定の情報がどのようにマスターメディアファイルにおける情報に対応するかを示すデータがキャプチャされる場合について検討する。このタイプのデータを使用して、マスターメディアファイルに対する変更がなされる場合に新たな圧縮されたファイルを再エンコーディングするのではなく、マスターメディアファイルの変更されていない部分に相関する既存の圧縮されているファイルの部分を新たな圧縮されたファイル内にコピーすることによって該変更されたマスターメディアファイルの圧縮されたバージョンを作成することが可能である。前述した如きキーフレームを基礎とした圧縮手法を使用して変更したマスターメディアファイルの圧縮されたバージョンを作成するためにこのアプローチに基づいて実現することが可能な一つの例示的なプロセスを図５に示してある。
【００３１】
図５のプロセスにおいては、最初に、圧縮されたファイルへ付加されるべき現在のフレームは変更されたか、又はそれはマスターメディアファイルのオリジナルのバージョンにおけるように同一であるか、を決定するためにチェック５０１が行われる。現在のフレームが変更されていた場合、又は前に作成された圧縮されたファイルにおけるキーフレームとしてエンコードされなかった場合には、それは、前述した如き技術を使用するなどして、圧縮されたファイルへ付加５０２される。一方、現在のフレームが変更されておらず且つそれが前に作成された圧縮されたファイルにおけるキーフレームとして終了されたことをチェック５０３が表す場合には、前に作成された圧縮されたファイルのそのキーフレームから開始し且つ変更された次のフレーム（しかし、それを包含せず）で終了する部分が作成中の新たな圧縮されたファイルへ付加５０４される。従って、前に作成された圧縮されたファイルのコピーした部分か又は現在のフレームのいずれかが新たな圧縮されたファイルへ付加されると、更なるフレームが存在するか否かのチェック２０９が実施され、且つ本プロセスは次のフレームへ移行２１０するか、又は終了５０５する（例えば、どのフレームが新たな圧縮されたファイルにおけるキーフレームとしてエンコードされたかを示すコンフィギュレーションファイルを作成することにより）。
【００３２】
勿論、この同じアプローチは、キーフレームを基礎としない圧縮手法にも適用することが可能である。例えば、図４の文脈において説明したように新たな圧縮されたファイルを再エンコーディングする代わりに、マスターメディアファイルからの情報が圧縮されたファイルへ付加された前の３秒のマテリアルに基づいて圧縮されたファイルへ付加されるという図４の文脈において説明したような圧縮手法においては、変更されていないマスターメディアファイルの部分に対応するオリジナルの圧縮されたファイルの部分は新たな圧縮されたファイル内へコピーさせることが可能である。従って、図５の文脈において記載した再エンコーディング無しで新たな圧縮されたファイルを作成するためのアプローチの説明は、本書又はいずれかの関連文書によって与えられる保護の範囲を制限するものとしてではなく、単に例示的なものに過ぎないとして理解されるべきである。
【００３３】
上の開示は、マスターメディアファイルのアップデートした圧縮されたバージョンが複数の遠隔位置へ配布されるべき環境において、本発明者等の技術をいかにして有益的に適用することが可能であるかを説明しているが、この技術は多様な具体的な状況において使用することが可能であり、それはマスターメディアファイルの圧縮されたバージョンを複数の遠隔位置へ配布することが関与しない状況も包含している。例えば、本書に記載する技術は２つの位置の間でデータを転送することを容易化させるために使用することが可能であり、例えば、遠隔レンダーファームと基本メディアファイルに対する変更を行うことが可能なコンピュータとの間、又は制御コンピュータと遠隔データリポジトリとの間などである。
【００３４】
同様に、本発明者等の技術はメディアファイル以外のファイルの転送のために使用することが可能であり、その場合には、一つのファイルの一部に対するユーザが知覚可能な変更は他の部分に変更を発生させる場合があり、それはユーザが知覚可能ではないが差分符号化を潜在的に干渉するか又はその利点を減少させる可能性がある。そのことを例示するために、ＳＶＧフォーマットを使用してエンコードしたイメージの場合を検討する。そのフォーマットにおいては、イメージの異なる特徴が属性によって定義される要素として表現される。従って、イメージを格納するために使用されるＳＶＧファイルにおける非常に小さな変更（例えば、一つの形状を表す要素における一つのパラメータの値を変更）が、そのイメージがユーザに対してレンダリングされる場合（例えば、その形状がスクリーンの片側から別の側へ移動される場合）に非常に大きな変更を有する場合がある可能性がある。しかしながら、後述する如く、例えこのタイプの状況においても、本発明者等の技術はＳＶＧイメージの変更したバージョンの差分符号化及び／又は転送のプロセスを容易化させるために使用することが可能である。
【００３５】
一つのファイルに対する小さな変更が、そのファイルの内容がユーザによって観察される場合に大きな変更を有する場合があるような例えばＳＶＧなどのフォーマットに対して本発明者等の技術を適用することが可能な具体的な例を図６ａ及び６ｂの以下の説明において提供する。これらの図において、図６ａは、円と、矩形と、三角形とからなるイメージをどのようにしてＳＶＧフォーマットを使用してエンコードすることが可能であるかを示している。図６ｂは、そのイメージの変更したバージョンをどのようにしてファイル内に格納することが可能であるかを示しており、そのファイルは、変更されたイメージを後に転送し及び／又は差分符号化させる場合に使用することが可能な情報を格納するためにも使用される。特に、図６ｂにおいて、単に変更されたイメージを表すために必要な情報を包含するのではなく、図示したマークアップ言語は付加的な要素（オープニング及びクロージング用＜deltainfo＞タグ６０１，６０２の間に記載）を包含しており、それは、そのファイルがbaseDocumentID属性６０６（その属性はハッシュ又は基本文書のシグネチャ等の値、又は基本文書に割り当てられたグローバルにユニークな識別子を有することが可能）によって特定される基本文書と相対的に何が変更されたかに関する情報を包含していることを表している。その付加的なマークアップ言語要素内には、オリジナルのイメージにおけるそのポジション、即ち場所、の右へ５０個のピクセルであるポジションにおいて変更したイメージにおいてid"circle1"を具備する要素が現れることを示す更なる要素６０３が存在している。
【００３６】
図６ｂのオープニング及びクロージング用＜deltainfo＞タグ６０１，６０２の間の要素に示されているようなデータを変更したイメージの差分符号化及び／又は転送を容易化するために使用することが可能な幾つかの態様が存在している。例えば、変更したイメージを派生したイメージを格納している基本文書を識別する情報は、差分符号化システム（それは、そうでなければ、繰り返されるシグネチャ比較を実施せねばならないかもしれない）が単に変更されたイメージに対するファイルを読み取ることによって変更されたイメージに対するファイルに最も類似する既存のファイルを識別することを許容することが可能である。同様に、変更されたイメージを基本文書が既に存在する位置へ転送する場合に、基本文書に対してなされた特定の変更を識別する要素６０３は、変更されたイメージが存在している差分符号化システムが、変更されたイメージと基本文書とに共通の情報の別個の識別をやり遂げることを回避することを可能とさせる。勿論、幾つかの場合には、変更を特定する要素６０３において示したような情報がシリアル化とは別の差分符号化に対する必要性を除去するためにも使用することが可能である場合がある。例えば、変更されたイメージが転送されるべき位置において基本文書が既に存在している場合には、その転送は、
オープニング及びクロージング用＜deltainfo＞タグ６０１，６０２の間の情報を受け取り位置における適宜のプログラムされたコンピュータへ送ることによって達成することが可能であり、従ってそのコンピュータはその情報を使用して基本文書から変更されたイメージに対するファイルを派生させることが可能である。
【００３７】
図６ｂに示したような情報は、種々のサイトにおいて入手可能な文書間の差異を説明するために使用することも可能である。そのことを例示するために、変更したイメージが複数の位置において模写されるが、各位置は基本文書の僅かに変更されたバージョン（例えば、オリジナルのイメージの新たなバージョンがローカルのデザインチームによって作成された）を有している場合について検討する。このタイプの状況においては、該変更されたイメージは１個のファイルへシリアル化させることが可能である、該ファイルは＜deltainfo＞タグ間に図６ｂに示した情報の複数のインスタンスを包含しており、該インスタンスの一つは該変更されたイメージが模写されるべき各位置における基本文書に関する各差異に対するものである。従って、該変更されたイメージを特定の遠隔サイトへ模写すべき時である場合には、例えその遠隔サイトがそれから該変更されたイメージが作成された基本文書の元のバージョンを有していない場合であっても、そのサイトにおいて使用可能な基本文書のバージョンからその変更されたイメージをどのようにして派生させるかに関する情報を本プロセスを最適化させるために使用することが可能である。
【００３８】
図６ｂに示したものを越えるその他の情報も、変更されたイメージの差分符号化及び／又は転送を容易化させるために使用することが可能である。例えば、幾つかの実現例においては、図６ｂに示した如き情報を包含するのではなく（又はそれに加えて）、変更されたイメージに対するファイルは、最も類似したファイルを識別する場合及び／又は該最も類似したファイルから該変更されたイメージに対するファイルを派生させるためのパッチファイルを作成する場合に、使用すべき好適なブロックサイズ（その好適なブロックサイズに対する予め計算されたブロックシグネチャが付随している場合がある）を識別する情報を包含することが可能である。この好適なブロックサイズは、例えば、転送すべきファイルのタイプと共に異なるブロックサイズを使用した場合の差分符号化システムの性能の検査に基づいて設定することが可能であり、又は転送すべきファイルにおける要素の寸法に基づいて設定することが可能である（例えば、好適なブロックサイズは、転送すべきファイルにおける最小の要素を格納するために必要なディスク空間に設定することが可能であり、又は好適なブロックサイズは、転送すべきファイルにおける個々の要素の寸法の最大公約数に等しく設定することが可能）。このタイプのブロックサイズ情報も、変更したイメージＦｍｏｄに対するファイルを作成する場合に要素毎に包含させることが可能であり、且つ該変更したイメージを模写すべき位置において同様のファイルＦｓｉｍからその変更したイメージに対するファイルを派生するためのパッチ（Ｆｓｉｍ→Ｆｍｏｄパッチ）を後に作成する期間中に使用することが可能である。これらの目的のために使用することが可能なプロセスを図７及び８に例示してあり、それらの各々について以下に説明する。
【００３９】
最初に図７を参照すると、その図に図示されているプロセスは、作成中のファイルへ付加されるべき次のデータはコンテント要素（例えば、図６ａ−６ｂに例示したような矩形、円、又は多角形）に対応するか否かのチェック７０１で開始する。付加されるべき次のデータがコンテント要素の内の一部ではない場合には、該データは単純に新たなファイル（即ち、Ｆｍｏｄ）へ付加され、且つ該新たなファイルへ付加すべき更なるデータが存在するか否かの新たなチェック７０３が稼動される。存在しない場合には、該変更されたイメージにおける要素の寸法及び基本文書からの変更に関する全ての情報（例えば、図６ｂにおけるオープニング及びクロージング用＜deltainfo＞タグ６０１，６０２の間等の情報）が該新たなファイルへ付加７０４され、且つ本プロセスは終了する。そうでなく、付加すべき更なる情報が存在している場合には、本プロセスはループバックして付加すべき次のデータがコンテント要素の一部であるか否かのチェック７０１を行う。
【００４０】
該新たなファイルへ付加すべき次のデータがコンテント要素の一部であることをチェック７０１が示す場合には、図７の本プロセスは、同じコンテント要素が基本文書内にも存在しているか否かをチェック７０５することによって、継続する。このチェックは、例えば、シリアル化中の変更したイメージからのコンテント要素が基本文書の一部であるか又は変更したイメージと基本文書との間の変更の内の一つがシリアル化中のコンテント要素の基本文書からのイメージへの付加であるかを決定するために基本文書の変更期間中にキャプチャしたデータを使用することによって実施することが可能である。そのデータがシリアル化中であるコンテント要素が基本文書中に存在していないことをチェック７０５が示す場合には、新たなコンテント要素が作成中のファイル（即ち、Ｆｍｏｄ）へ付加７０６され且つ最も最近に付加された要素がどのように基本文書と異なるかを示す情報（例えば、最も最近に付加された要素は基本文書中に存在しないこと）が作成中のファイルへ後に付加するために格納７０７される。
【００４１】
一方、図７のプロセスにおいては、作成中のファイルへ付加されるデータに対応するコンテント要素が基本ファイル内に存在することをチェック７０５が示す場合には、基本ファイルからのその要素のバージョンが作成中のファイルへ付加７０８される。基本ファイルからのコンテント要素のバージョンが付加７０８された後に、図７のプロセスは、付加されたコンテント要素の寸法を示す情報を格納７０９し且つ変更されたイメージからのコンテント要素のバージョンが基本文書からのコンテント要素のバージョンと異なるか否かのチェック７１０を行うことによって、継続する。変更したイメージにおけるコンテント要素のバージョンが基本文書におけるコンテント要素のバージョンと異なる場合には、どのようにしてコンテント要素が変更されたかを示す情報が格納７０７される（例えば、変更されたイメージを作成する場合にコンテント要素が５個のピクセルだけ左へ移動されている場合には、基本文書からのコンテント要素を５個のピクセルだけ右へ移動させることによって変更されたコンテント要素を得ることが可能であることを示す情報が格納される）。そうでない場合には、図７のプロセスは、作成中のファイルへ付加すべき更なるデータが存在するか否かのチェック７０３を行い、且つ、オリジナルのチェック７０１へループバックするか又は格納されている寸法及び変更情報を作成中のファイルへ付加７０４するかを適宜行う。
【００４２】
次に図８を参照すると、その図は、図７のようなプロセスにおいてキャプチャされる場合があるブロックサイズ情報を、受け取り位置における同様のファイル（Ｆｓｉｍ）からどのようにして変更されたイメージ（即ち、Ｆｍｏｄ）に対するファイルを派生するかを示すパッチ（Ｆｓｉｍ→Ｆｍｏｄパッチ）の後の作成を容易化するために、どのようにして使用することが可能であるかの例示、を与えている。最初に、図８のプロセスにおいて、Ｆｓｉｍ→Ｆｍｏｄパッチが作成される位置におけるコンピュータが、Ｆｍｏｄに対するブロックサイズデータをＦｍｏｄが模写されるべき位置へ送信８０１する。この情報は、例えば、Ｆｍｏｄと同じフォーマットのファイルに対して特に良好に動作することが観察されたブロックサイズ、Ｆｍｏｄにおける要素の寸法から派生された好適なブロックサイズ、ＦｍｏｄとそれからＦｍｏｄの変更されたイメージを作成した基本文書との両方に包含されているいずれかのコンテント要素に対するブロックサイズ、及び／又は上記の組合せ（例えば、Ｆｍｏｄにおける個々のコンテント要素に対するブロックサイズ及びＦｍｏｄにおけるコンテント要素ではないデータのエンコーディングを容易化するために使用することが可能な好適なブロックサイズ）、を包含することが可能である。
【００４３】
ブロックサイズデータが受け取りサイトにおいて受け取られると、そのデータはその受け取りサイトにおける最も類似したファイル（即ち、Ｆｓｉｍ）に対して１個又はそれ以上のシグネチャを発生８０２するために使用される。作成されるべき特定のシグネチャは、使用可能な情報とシグネチャを発生８０２するコンピュータが構成されている特定の態様とに依存して異なる場合がある。例えば、Ｆｍｏｄブロックサイズ情報において他のブロック寸法が特定されていないＦｓｉｍの部分に対してデフォルトのブロックサイズを使用し、且つそのファイルの他の部分に対してＦｍｏｄブロックサイズ情報からの寸法を使用して発生される複数のサブ・シグネチャからなる単一シグネチャファイルを作成することが可能である。一方、Ｆｍｏｄブロックサイズ情報における複数のブロック寸法の各々に対して１個のシグネチャを作成することが可能であり、その場合に各シグネチャはＦｍｏｄブロックサイズ情報からの複数のブロック寸法の内の一つを使用して発生される複数のサブ・シグネチャから構成される。その他の代替案、例えば、Ｆｍｏｄブロックサイズ情報において特定されている各ブロック寸法に対して１個のシグネチャが作成される場合、及び異なる複数のブロック寸法（例えば、Ｆｍｏｄブロックサイズ情報が複数のデフォルトのブロック寸法を包含している場合）を使用して発生される複数のサブ・シグネチャから１個又はそれ以上のシグネチャが作成される場合、も実現することが可能であり、且つ本開示に鑑みて当業者等には直ぐに明らかなものである。従って、上に与えた例は制限的なものではなく例示的なものに過ぎないものとして理解すべきである。
【００４４】
図８のプロセスを続いて参照すると、Ｆｓｉｍに対するシグネチャが発生８０２されると、これらのシグネチャはＦｓｉｍ→Ｆｍｏｄパッチを作成するサイトへ送給８０３され、且つそのサイトにおいてパッチ作成シーケンスが行われる。図８に示した如く、このパッチ作成シーケンスは、どのようにしてＦｓｉｍからＦｍｏｄを派生するかを示す全てのデータが該パッチへ付加されたか否かのチェック８０４で開始する。否定である場合には、Ｆｓｉｍ→Ｆｍｏｄパッチへ付加されるべき次のデータがカスタムブロックサイズを有しているか否かを決定するための更なるチェック８０５が行われる。このチェック８０５は、例えば、そのデータがＦｍｏｄブロックサイズデータにおけるカスタムブロックサイズと関連するＦｍｏｄの一部の始めにあるか否かをチェックし、且つそうでない場合には、カスタムブロックサイズと関連していないものとしてそれを取り扱うことによって、実施することが可能である。カスタムブロックサイズが存在することをチェック８０５が判別した場合には、そのカスタムブロックサイズを使用してＦｍｏｄに対する次のサブ・シグネチャが発生８０６される。一方、カスタムブロックサイズが存在しない場合、又はカスタムブロックサイズは存在するがそのカスタムブロックサイズを使用して発生されたサブ・シグネチャはＦｓｉｍに対するシグネチャにおけるいずれのサブ・シグネチャとも一致しないことの判別８０６がなされた場合には、Ｆｍｏｄに対する次のサブ・シグネチャはデフォルトのブロックサイズを使用して発生８０８される。このサブ・シグネチャがＦｓｉｍに対する一つのサブ・シグネチャと一致することが判別８０９される場合には、Ｆｓｉｍの一致する部分の表示がＦｓｉｍ→Ｆｍｏｄパッチへ付加８１０される。そうではなく、一致が存在しない場合には、一致しないサブ・シグネチャによって識別されるＦｍｏｄの部分がＦｓｉｍ→Ｆｍｏｄパッチへ付加８１１され、且つそのパッチへ付加すべき更なるデータが存在するか否かのチェック８０４をするために本プロセスはリターンし、且つ圧縮され暗号化されたパッチファイルを作成８１２するか、又は繰り返し、を適宜行う。
【００４５】
勿論、図７及び８の上の説明は、どのようにしてブロックサイズ情報をシリアル化期間中にファイルへ付加させることが可能であるか及び後の差分符号化期間中に使用することが可能であるかの例を与えるものであるが、本書に開示される技術は図７及び８の文脈において説明した特定の例示的なステップ及びプロセスを使用して実現されることに制限されるものではない。その様な一つの可能な変形例を例示するために、図８の説明が、Ｆｓｉｍ→Ｆｍｏｄパッチを作成するプロセス期間中にＦｓｉｍ及びＦｍｏｄの部分部分に対してサブ・シグネチャを発生するステップ８０２，８０６，８０８を、包含しているということについて検討する。この説明はＦｓｉｍ→Ｆｍｏｄパッチを作成することが可能である一つの態様を例示するものであるが、本開示した技術は、前もってサブ・シグネチャの幾つか又は全てを発生させるために実現させることも可能である。例えば、カスタムブロックサイズに対応するＦｍｏｄの部分部分に対するサブ・シグネチャを作成し且つ図７のプロセスの変更したバージョンにおける基本ファイルからの変更を示す情報を格納７０７することの一部として格納することが可能であり、一方デフォルトのブロックサイズで作成された複数のサブ・シグネチャからなるＦｓｉｍ用の１個のシグネチャはプロセッサ資源に対するデマンドが低い場合にオフラインプロセスによって前以て発生させることが可能である。同様に、図８はＦｓｉｍに対するシグネチャをＦｓｉｍ→Ｆｍｏｄパッチが作成される位置へ送給８０３することを包含するプロセスを例示しているが、このステップは、例えばＦｓｉｍ→Ｆｍｏｄパッチが作成される位置においてＦｍｏｄとＦｓｉｍとの両方が存在する場合などの幾つかの場合においては省略することが可能である。これは、米国特許第８，２４４，８３１号に記載されているようなクラウドを基礎とした転送サービスに対する場合や、又はＦｓｉｍが実際にはそれから変更されたイメージのＦｍｏｄが派生された基本文書である場合に該当する蓋然性がある。従って、図７及び８及びそれに関連する記載は、本書によって又は何らかの関連文書によって付与される保護に関して制限するものとして取り扱われるべきではない。
【００４６】
図６ａ及び図６ｂの文脈において記載したプロセスに関する変形例は、特定の要素に対するブロックサイズ又はシグネチャ情報の格納を超える分野においても可能である（それは、前述した如く、ここに開示した技術を使用して実現されるシステム内に包含されていない蓋然性がある）。例えば、前述した如く、ここに開示した技術は、変更されたイメージ用のファイルにおける図６ｂの＜deltainfo＞タグ間に示されるようなデータの複数のインスタンスを含むことによって異なるサイトにおいて利用可能な情報における変更を説明することが可能であるものとすることが可能である。しかしながら、ここに開示した技術は、変更情報の複数のインスタンスを必要とすること無しにサイト間での変更を説明する態様で実現することも可能である。例えば、単一のファイル内に複数の＜deltainfo＞タグの組を包含するのではなく、手持ちの情報を使用して模写されるべきファイルを派生するためにその模写されるべきファイルが基本文書からどのように異なるかを示す情報を受け取るようにコンピュータを構成することによって、異なるサイトにおいて利用可能な情報における差異を説明することが可能である。このことは、それらのコンピュータを、基本文書のそれらのバージョンにおける変更をバックアウト（例えば、コンピュータは、「rect1」のＩＤを有する図６ｃにおける要素の「ｙ」属性から特定された変更（即ち、−５０）を減算することによって図６ｃに示したファイルから図６ａに示したファイルのコピーを派生させることが可能である）して基本文書のオリジナルのバージョンを取得し次いでそれを使用して模写されるべきファイルを派生させるか、又は基本文書のローカルバージョンにおける変更の逆を模写されるべきファイルにおける変更と結合させることによって包括的変更パッケージを作成し次いで該包括的変更パッケージを基本文書のローカルバージョンへ適用して模写されるべきファイルを取得するように構成することによって行うことが可能である。
【００４７】
基本文書の異なるバージョンの潜在的な存在性に対処するその他のアプローチも可能である。例えば、図７のプロセスに例示されている如く、ここに開示される技術は、変更されたイメージとその情報が基本文書とどのように異なるかを示す変更情報との両方を包含するファイルへ変更されたイメージをシリアル化するのではなく、それから変更されたイメージが派生されたイメージとその変更されたイメージをどのようにしてオリジナルのバージョンから派生させることが可能であるかを示す情報とを包含するファイルへ変更されたイメージをシリアル化させることが可能であるシステムを実現するために使用することが可能である。このタイプのシリアル化を使用するべく実現されたシステムにおいては、基本文書の全てのバージョンが、ユーザに提示すべき情報をどのようにして基本文書からの情報から派生することが可能であるかを基本文書のこれらのバージョンへアクセスするコンピュータへ告げるために使用することが可能な変更情報と結合された基本文書のデータを包含することとなる。従って、このタイプの実現例においては、単に１組の変更情報を別のもので置換させることによって、基本文書の任意のバージョンを任意のその他のバージョンから派生させることが可能である。
【００４８】
文書のバージョン間の変更を説明するために使用することが可能な特徴の更なる例として、シリアル化に対する複数のアプローチをサポートするシステムを実現するためにここに開示される技術をどのようにして使用することが可能であるかについて検討する。例えば、ベースラインとなるアプローチを使用することが可能であり、その場合に、シリアル化が行われるコンテキスト、即ち文脈、に依存してコンピュータは情報を異なってシリアル化させる構成とさせることが可能である。そのことを例示するために、或るファイルが既存の基本文書の変更されたバージョンであるとして取り扱われるべき場合、及びそのファイルが新たな基本文書として取り扱われるべき場合に、シリアル化に対して異なるアプローチを使用することの可能性について検討する。このタイプの実現例においては、或るファイルが新たな基本文書として取り扱われるべき場合には（例えば、或る文書が複数のグループ間の将来のコラボレーションのための基礎として使用されるべきであることのオプションをユーザが選択したため、又は基本文書の或るバージョンにおける変更が非常に実質的なものであって基本文書のオリジナルのバージョンからの情報を矮小化させるため）、それは、そのファイルのコンテント、即ち内容、の全てを自己充足型の態様（例えば、図６ａに示した如きＳＶＧイメージ）で格納される形式で保存させることが可能である。対照的に、或るファイルが既存の基本文書の変更されたバージョンとして取り扱われるべき場合には、それは基本文書のコピー及び１組の変更情報の形式でシリアル化させることが可能である。シリアル化に対する複数のアプローチを同時的に使用することも可能である。例えば、基本文書の変更されたバージョンがシリアル化される場合には、２個のファイルを形成することが可能であり、その内の一方のファイルでは、そのファイルのコンテントが基本文書のコピーとして格納されており、且つその内の他方のファイルでは、そのファイルのコンテントは基本文書のコピー及び１組の変更情報として格納されている。従って、基本文書の変更されたバージョンが模写されるべきサイトにおいて利用可能な情報に依存して、基本文書の変更されたバージョンを模写する場合に異なるファイルを選択的に使用することが可能である。
【００４９】
勿論、或る文書の異なるバージョンの潜在的な存在に対処するための上述した幾つかのアプローチの組合せも可能である。そのことを例示するために、単一のファイルに対する変更情報の複数のバージョンのベースライニング（baselining）及びメインテナンスのアプローチについて検討する。これらのアプローチは、或る文書の変更されたバージョンをシリアル化する場合に変更ログを包含することをサポートするシステムにおいて結合させることが可能である。この様なシステムにおいては、基本文書の変更されたバージョンが新たな基本文書として使用されるべきであるものとして識別される場合にはいつでも、その文書に対するコンテントは自己充足型の態様で格納させることが可能であり且つその自己充足型のコンテントが前の基本文書におけるコンテントからどのように異なっているかを示す変更情報を付随させることが可能である（例えば、図６ｂに示した如く）。この変更情報は、その新たな基本文書の修正されたバージョンがそれ自身基本文書として使用するために選択される場合には、維持させることが可能であり、その結果、各文書は、その前の基本文書の記録及び最も最近に先行する基本文書からのその変更の記録を包含している共通のソースから派生されることとなる。この様な情報は２つの文書の間のパッチを作成するプロセスを最適化させるために使用することが可能であり、その場合に、これらの文書の最も最近の共通のベースラインを識別し、これらの文書の各々がどのように該共通のベースラインから異なっているかを識別するために格納されている変更情報を使用し、次いでこれら２つの文書を該ベースラインの変更されたバージョンとして取り扱うことによりパッチファイルを作成する（例えば、図８に示したようなプロセスを使用する）。その他の組合せ及び変形例（例えば、変更ログ内に付加的な情報を包含させること）も可能であり、本開示に鑑みて不当な実験無しで当業者等によって実現させることが可能である。従って、上に与えた例は単に例示的なものであるとして理解されるべきであって且つ制限的なものとして取り扱われるべきではない。
【００５０】
ここに開示される技術がサイト間でのデータにおける変更を説明することを実現することが可能である態様に関して制限を暗示するものとして上の例が取り扱われるべきではないことと同じく、これらの例及びメディアファイルのシリアル化の前述した説明は特定のフォーマット及びデータタイプを使用して記載されているという事実は、ここに開示される技術がこれらの特定のタイプ又はフォーマットのデータの転送及び／又は差分符号化を容易化することに制限されることを暗示するものとして取り扱われるべきではない。例えば、上の技術を使用することによって、表２の例示的なＸＭＬファイルにおいてエンコードされたテキストの変更されたバージョンは、表２のベースラインデータ及びその変更されたテキストがどのようにしてそのデータから派生させることが可能であるかを示す情報の両方を包含するファイルへシリアル化させることが可能である。表３及び４はこれらのタイプのファイルを例示している。これらの表において、表３は、表２からのベースラインデータと、変更されたテキストを得るためにベースラインデータの識別された部分へ適用することが可能なＲｅｇＥｘｐ命令（即ち、「s/Cincinnati/Blue Ash/」）の形式での変更情報と、の両方を包含するファイルを例示している。表４は、表２のベースラインデータ及び変更されたテキストの自己充足型表現と、その変更されたテキストがどのようにしてオリジナルのテキストから派生させることが可能であるかを示す変更情報と、の両方を包含するファイルを例示している。このタイプのファイルの場合、修正されたテキストをビュー、即ち、見るために使用されるアプリケーションがその修正されたテキストの自己充足型表現を読むことが可能であり、一方、データ転送アプリケーションはそのデータが転送されている位置においてベースラインデータのコピーが既に利用可能であるか否かに依存して、変更情報又はオリジナルデータ＋変更情報を選択的に送給することが可能である。
【００５１】
【表２】
2016514393.tif 000005
【００５２】
【表３】
2016514393.tif 000006
【００５３】
【表４】
2016514393.tif 000007
【００５４】
ここに開示される技術は、一層複雑なフォーマット又はデータタイプで使用することも可能である。例えば、任意の二進データをマイクロソフトの構造化ストレージ（structured storage）又はファイルの異なる部分を組織化するためにファイルシステムのような情報を使用するその他のアプローチ等の技術を使用して複数のオブジェクトのコレクション（collection）、即ち集まり、として表現することが可能である。この任意の二進データオブジェクトは、図６ａ−６ｂ及び表２−４の文脈において説明した要素とほぼ同じ態様で転送及び／又は差分符号化のために個別的に取り扱い且つ最適化させることが可能である。同様に、変更情報が特定の属性に対する人が読むことが可能な変更として記載される実現例に制限されるものではなく、変更情報は、ベースライン情報（例えば、オリジナルファイル又はその一部）から変更データをどのようにして派生するかを示す二進デルタ情報の形式、又は変更されたデータを作成する場合にユーザによってなされた変更の記録の形式（例えば、ユーザの変更がなされるに従いユーザの変更をキャプチャし且つ、基本的に、変更されたデータがシリアル化される場合に格納されるマクロを作成するためにそれらを使用するべく編集プログラムを構成することが可能）を取ることが可能である。
【００５５】
１組の変更されたコンテントと同じファイル内に包含されているものとしての上の例に記載した情報が実際には別のコンフィギュレーションファイル内に格納されている場合、又はユーザが異なる基本文書から異なる要素を組み込むことが許容され且つ各要素のソース及びそれに対してなされた変更を示す変更情報を格納することが可能である場合、等のその他の変形例も可能であり、且つ当業者等にとって直ぐに明らかなものとなる。従って、ここに明示的に開示されたマテリアルに対して本書によって又は本書に関連する何らかの文書によって付与される保護を制限する代わりに、その保護は以下の特許請求の範囲によって定義されるべく理解されるべきであり、該特許請求の範囲は本書において本発明者等により希求される保護の範囲を反映すべく草稿されており、その場合に、「明示的定義」という表題で以下にリストされている特許請求の範囲中の用語はそこに記載される明示的な定義が与えられ、且つその他の用語は汎用辞書によって示される如き最も広く合理的な解釈が与えられるものである。上の開示又は組み込んだ優先権文書に基づいて特許請求の範囲へ与えられる解釈が何らかの態様において「明示的定義」及び汎用辞書によって与えられるような最も広い合理的な解釈に基づいて与えられる解釈よりも一層狭い場合には、「明示的定義」及び汎用辞書によって与えられるような最も広い合理的解釈によって与えられる解釈が支配すべきであり、且つ明細書又は優先権文書における用語の矛盾する使用は何らの影響を与えるものではない。
【００５６】
明示的定義
特許請求の範囲において使用される場合には、複数のターゲット「間（among）」で複数のものを「割り当てる（allocating）」ということは、割り当てられるものの数がターゲットの数より一層大きいか又は等しい場合に、各ターゲットがそれに対して指定又は配布される異なるものを有するか、又は割り当てられるものの数がターゲットの数よりも小さい場合には、各ものが異なるターゲットへ配布又は指定されるように、それらのものをターゲットに対して配布又は指定することを意味するべく理解されるべきである。複数のターゲットの「間（among）」で複数のものを「割り当てる（allocating）」として記載されている主体は、必ずしも、その割り当ての一部として動作を実施する唯一の実体ではない。例えば、コンピュータが複数のファイルを１組のノード間で割り当てるものとして定義されている場合には、この割り当てはそこから該ノードによって検索することが可能なキューへ該ファイルを付加することによって実施することが可能である。
【００５７】
特許請求の範囲において使用される場合には、「各々における（at each）」という語句とそれに続く名詞又は名詞句及び１個又はそれ以上のアクションは、該１個又はそれ以上のアクションからの各アクションが該名詞又は名詞句によって表される実体によって実施されるものと理解されるべきである。
【００５８】
特許請求の範囲において使用される場合には、「に基づいて（based on）」とは、それが「基づく（based on）」ものとして表されるものによって少なくとも部分的に何かが決定されることを意味するものとして理解されるべきである。何かが完全に一つのものによって決定される場合には、それはそのもの「に専ら基づく（based EXCLUSIVELY on）」ものとして記載される。
【００５９】
特許請求の範囲において使用される場合には、何らかのオブジェクトを何かが「完全に説明（completely account for）」するという文節は、そのオブジェクトの全てがそれを「完全に説明（completely account for）」する１個又は複数の実体によって達成されるものとして理解されるべきである。例えば、２キロバイトのファイルは、そのファイルの１番目のキロバイトから構成されている１番目の部分とそのファイルの２番目のキロバイトから構成されている２番目の部分とを有する１組の部分によって「完全に説明（completely account for）」される。
【００６０】
特許請求の範囲において使用される場合には、「有する、又は包含する、（comprises）」は含むことを意味するがそれに制限されるものではないことと理解されるべきである。例えば、年の月は１月、７月、及び１０月を「有する、又は包含する、（comprising）」ものとして記載することが可能である。同様に、何かが何らかの実体に「包含される（comprised by）」というステートメントは、その実体がそのものを有しておりそれがそれに「包含される（comprised by）」と記載されることを意味すると理解されるべきである。例えば、１月、７月、及び１０月は年の月に「包含される（comprised by）」と記載することが可能である。「有する（comprise）」の関係は推移的であることを理解すべきである。例えば、年の月は春の月々を「有して（comprise）」おり且つ春の月々は４月を「有して（comprise）」いるというステートメントは、その年のその月々とは４月を有していることを必然的に暗示している。４月が春の月々に「包含され（comprised by）」且つ春の月々がその年の月々に「包含される（comprised by）」というステートメントは、４月がその年の月々に「包含される（comprised by）」ことを必然的に暗示する。
【００６１】
特許請求の範囲において使用される場合には、「コンピュータ（computer）」は結果を発生するためにデータに関して一つ又はそれ以上の論理的及び／又は物理的な操作を実施することが可能な１個の装置又は複数の装置のグループのことを意味することを理解すべきである。「コンピュータ（computer）」の非制限的な例は、マルチプロセッサ又はマルチコアシステム、サーバー、ラップトップ、デスクトップ、ネットブック、及びノートブックや、携帯電話、パーソナルデジタルアシスタント、及びポータブルゲームコンソール等のハンドヘルド型装置を包含する。
【００６２】
特許請求の範囲において使用される場合には、「コンフィギャー、即ち構成され（configured）」は、「構成され（configured）」るものが特定の目的に対して適合され、設計され、又は変更されたことを意味することを理解すべきである。コンピュータの文脈において「構成する（configuring）」ことの１例は、コンピュータが行うように「構成され（configured）」ている特定の動作を実施する場合に使用することが可能な特定のデータ（それは命令を包含する場合がある）データをコンピュータに与えることである。例えば、コンピュータにマイクロソフトのワードをインストールすることは、そのコンピュータがワードプロセッサとして機能することを「構成する（configure）」ことであり、そのことは、オペレーティングシステム、及び種々のペリフェラル（例えば、キーボード、モニター等）などのその他の入力と結合してマイクロソフトのワードに対する命令を使用することによって行うことである。
【００６３】
特許請求の範囲において使用される場合には、或るものが別のものに「指定され（designated as）」ているというステートメントは、そのものがそれが「指定され（designated as）」ているそのものとして取り扱われることを意味するものとして理解すべきである。このことは、或る関数のリターン値を使用するコンピュータプログラミング概念に類似しており、その場合に、関数ＦＯＯを実施することによって得られるリターン値がその結果として指定されているというステートメントは、概ね、プログラミングコマンドＲＥＳＵＬＴ＝ＦＯＯ（）と等価である。
【００６４】
特許請求の範囲において使用される場合には、何かを「決定する（determine）」ことは「決定する（determine）」ことを発生するか、選択するか、又はそうでなければ特定することの動作のことを意味するものと理解すべきである。例えば、解析の結果として出力を得ることは、その出力を「決定する（determine）」ことの１例である。２番目の例として、複数の可能な応答のリストから一つの応答を選択することは、応答を「決定する（determine）」ことの一つの方法である。
【００６５】
特許請求の範囲において使用される場合には、「各々に対し（for each）」という語句とそれに続く名詞又は名詞句は、その名詞又は名詞句に続く一つ又は複数のステートメントが該名詞又は名詞句によって言及される各実体に対して適用することを意味すべきである。例えば、基本方位によって包含される各方向に対して、その方向に対応する祈る人がいるというステートメントは、北に対応する祈る人と、東に対応する祈る人と、南に対応する祈る人と、西に対応する祈る人とがいることを意味することを理解すべきである。この「各々に対し（for each）」構造は、特定されたオブジェクトに対して適用されることを記載するものであって、付加的な順番付け又は構成を必ずしも暗示するものではない。例えば、アルファベットの最初の４文字に包含される「各々に対し（for each）」ての文字で１枚の用紙がその文字からなる３つのコピーを持っているというステートメントは、「ａｂｃｄａｂｃｄａｂｃｄ」が書かれた１枚の用紙の場合に成立し、且つ「ａａａｂｂｂｃｃｃｄｄｄ」が書かれた１枚の用紙の場合にも成立する。
【００６６】
特許請求の範囲において使用される場合には、「機能的に派生された値（functionally derived value）」は、それから派生が行われる情報に関して１つ又はそれ以上の数学的又は論理的演算を行うことによって得られる値である。「機能的に派生された値（functionally derived value）」の例はハッシュ値及びチェックサムを包含している。
【００６７】
特許請求の範囲において使用される場合には、「インターフレーム（interframe）」は少なくとも部分的に他のフレームに依存する態様でエンコードされるフレームを意味するものとして理解されるべきである。
【００６８】
特許請求の範囲において使用される場合には、「キーフレーム（keyframe）」は他のフレームとは独立的にエンコードされるフレームであると理解されるべきである。
【００６９】
特許請求の範囲において使用される場合には、或るファイル等の何らかのデータがコンピュータに対して「ローカル（local）」であるというステートメントは、そのコンピュータがワイドエリアネットワーク又はスニーカーネット（sneakernet）を使用すること無しにデータへアクセスすることが可能であることを意味することを理解すべきである。
【００７０】
特許請求の範囲において使用される場合には、「データの最適化したシリアル化を転送する手段（means for transfer optimized serializing of data）」という語句は米国特許法第１１２条（ｆ）に与えられている様な手段＋機能制限（means plus function limitation）として理解すべきであり、その場合に、その機能は「データの最適化したシリアル化を転送（transfer optimized serializing of data）」することであり、それに対応する構造は図２−４及び７に例示されており且つ図６ｂ−６ｃに示した如きデータを格納するファイルを作成する文脈において説明したようなプロセス、並びに対応する開示に記載されているこれらのプロセスに関する変形例を実施すべく構成されているコンピュータである。
【００７１】
特許請求の範囲において使用される場合には、「ノード（node）」という用語は処理位置を意味することを理解すべきである。「ノード（node）」の例は、コンピュータ、及びバーチャルコンピュータを包含している。
【００７２】
特許請求の範囲において使用される場合には、「非一時的なコンピュータ読取可能媒体（non-transitory computer readable medium）」はコンピュータによって検索及び／処理することが可能な形式でデータ又は命令を格納することが可能な任意のオブジェクト、物質、又は複数のオブジェクト又は複数の物質の結合のことを意味することを理解すべきである。ハードディスク、リードオンリメモリ、ランダムアクセスメモリ、ソリッドステートメモリ要素、オプチカルディスク、及びレジスタなどのコンピュータメモリは「非一時的なコンピュータ読取可能媒体（non-transitory computer readable medium）」の例である。しかしながら、疑いを回避するために、「非一時的なコンピュータ読取可能媒体（non-transitory computer readable medium）」は伝播する信号等の一過性の伝送を包含するものとして理解すべきではない。
【００７３】
特許請求の範囲において使用される場合には、一つの値「として（as）」何らかのデータ「で（with）」特定したプロセスを「実施する（performing）」という語句は、引数で或る関数を呼び出すことのコンピュータプログラミング概念に類似したものとして理解すべきである。例えば、「入力体重として５００及び入力身長として１でＢＭＩ計算プロセスを実施する（performing a BMI calculation process with 500 as an input weight and 1 as an input height）」は、calculalteBMI(500, 1)を呼び出すことに類似しているものとして理解すべきである。同様に、特定したプロセスからの複数のステップの説明は或る機能の実施に類似したものとして理解すべきである。例えば、「ＢＭＩ計算プロセスを実施することは、入力身長を平方することによって分母を計算し、且つ入力体重を該分母で割り算してリターンＢＭＩを決定する、ことを包含している（performing the BMI calculation process comprises calculating a denominator by squaring the input height and determining a return BMI dividing the input weight by the denominator）」というステートメントは表５に記載されるコードセットと等価である。
【００７４】
【表５】
2016514393.tif 000008
【００７５】
この等価性のために、「入力体重が５００で入力身長が１でＢＭＩ計算プロセスを実施して得られるリターンＢＭＩを第１ＢＭＩとして指定することによって第１ＢＭＩを決定する（determining a first BMI by designating a return BMI obtained by performing a BMI calculation process with 500 as an input weight and 1 as an input height as the first BMI）」ステップ及び「入力体重が１００で入力身長が３でＢＭＩ計算プロセスを実施して得られるリターンＢＭＩを第２ＢＭＩとして指定することによって第２ＢＭＩを決定する（determining a second BMI by designating a return BMI obtained by performing a BMI calculation process with 500 as an input weight and 1 as an input height as the second BMI）」ステップを包含する方法は、第１ＢＭＩが第２ＢＭＩと異なる結果を発生することとなり、それは丁度calculateBMI(500,1)に対するコール（call）がcalculateBMI(100,3)に対するコールと異なるリターン値となることと同じである。
【００７６】
特許請求の範囲において使用される場合には、「部分（portion）」という用語は或るもののセクション又は一部を意味するものとして理解すべきである。「部分（portion）」という用語はそのもの自身を意味する場合（即ち、この場合の「部分（portion）」は全体に対応する）があることを理解すべきである。
【００７７】
特許請求の範囲において使用される場合には、何かを「提供する、与える、（providing）」ということは、そのものが「提供される（provided）」ものに対して利用可能とさせることを意味すると理解すべきである。「提供する、与える、（providing）」ということは、何かを利用可能とさせること（例えば、受信コンピュータへファイル送ること）及び一層複雑な手順とすること（例えば、受信コンピュータへそれから制限された時間の間にファイルを検索することが可能なＵＲＬを送ること）の直接的な方法を意味するものと広義に理解されるべきである。
【００７８】
特許請求の範囲において使用される場合には、「サーバ（server）」は、コンピュータと同義語であり且つそれが表れる場合に特許請求の範囲の読み易さを改善するために「コンピュータ（computer）」に優先して使用される用語として理解されるべきである。
【００７９】
特許請求の範囲において使用される場合には、「セット（set）」という用語は、数、グループ、又はゼロ又はそれ以上のものの組合せを意味するものと理解すべきである。
【００８０】
特許請求の範囲において使用される場合には、メモリ又はコンピュータ読み取り可能媒体の文脈において使用される「格納する（storing）」という用語は、「格納される（stored）」ものが、どのように短くとも或る時間期間の間「格納する（storing）」ことを行うものの一つ又はそれ以上の物理的特性（例えば、磁気モーメント、電位、光学的反射性、等）に反映されていることを意味すると理解されるべきである。
【００８１】
特許請求の範囲において使用される場合には、何かに対応する「シグネチャ（signature）」は、それが対応するものを識別するために使用することが可能なデータを意味すると理解されるべきである。ファイルに対応する場合があるシグネチャの例は、これらのファイルに対するハッシュ値（実効的にユニークであるファイルに対する識別を与える）、及びこれらのファイルに対するチェックサム（それはハッシュ値によって与えられるものほどユニークではないが通常計算し且つ格納することが一層容易である識別を与える）を包含している。
【００８２】
特許請求の範囲において使用される場合には、「サブ・ポーション（sub-portion）」は「部分（portion）」と同義であり且つそれが表れる場合に特許請求の範囲の明瞭性を改善させるために「部分（portion）」に優先して使用される用語として理解されるべきである。
【００８３】
特許請求の範囲において使用される場合には、「サブ・セット（sub-set）」は「セット（set）」と同義であり且つそれが表れる場合に特許請求の範囲の明瞭性を改善させるために「セット（set）」に優先して使用される用語として理解されるべきである。
【００８４】
特許請求の範囲において使用される場合には、「サブ・シグネチャ（sub-signature）」は「シグネチャ（signature）」と同義であり且つそれが表れる場合に特許請求の範囲の明瞭例を改善させるために「シグネチャ（signature）」に優先して使用される用語として解釈されるべきである。
【図１】
2016514393.tif 000009
【図２】
2016514393.tif 000010
【図３】
2016514393.tif 000011
【図４】
2016514393.tif 000012
【図５】
2016514393.tif 000013
【図６ａ】
2016514393.tif 000014
【図６ｂ】
2016514393.tif 000015
【図６ｃ】
2016514393.tif 000016
【図７】
2016514393.tif 000017
【図８】
2016514393.tif 000018
【国際調査報告】
2016514393.tif 000019
2016514393.tif 000020
2016514393.tif 000021
2016514393.tif 000022