JP2016514393A - 差分符号化のためのシリアライゼーション - Google Patents

差分符号化のためのシリアライゼーション Download PDF

Info

Publication number
JP2016514393A
JP2016514393A JP2015557992A JP2015557992A JP2016514393A JP 2016514393 A JP2016514393 A JP 2016514393A JP 2015557992 A JP2015557992 A JP 2015557992A JP 2015557992 A JP2015557992 A JP 2015557992A JP 2016514393 A JP2016514393 A JP 2016514393A
Authority
JP
Japan
Prior art keywords
data
file
computer
serialized
modified
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.)
Granted
Application number
JP2015557992A
Other languages
English (en)
Other versions
JP2016514393A5 (ja
JP6193406B2 (ja
Inventor
クリストファー エス. マクリナン,
クリストファー エス. マクリナン,
ジョセフ ティー. クラマー,
ジョセフ ティー. クラマー,
ジェームズ ピイ. テイラー,
ジェームズ ピイ. テイラー,
マイケル ピイ. ベネラブル,
マイケル ピイ. ベネラブル,
Original Assignee
オートデスク,インコーポレイテッド
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 オートデスク,インコーポレイテッド filed Critical オートデスク,インコーポレイテッド
Publication of JP2016514393A publication Critical patent/JP2016514393A/ja
Publication of JP2016514393A5 publication Critical patent/JP2016514393A5/ja
Application granted granted Critical
Publication of JP6193406B2 publication Critical patent/JP6193406B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/194Calculation of difference between files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/197Version control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

損失性アルゴリズム又はシリアル化されたデータの部分部分が変更される場合がある他の部分部分に対してエンコードされるアルゴリズムを使用してシリアル化が行われる場合であっても、後の差分符号化を容易化させるような態様でデータをシリアル化させることが可能である。このことは、或るファイルの変更されたバージョンに亘ってキーフレーム情報を保存し、後のバージョンをシリアル化する場合に前に作成した圧縮されたファイルからの情報を複製するか、又は該シリアル化プロセス期間中に或るファイルのバージョン間での差異を示す変更情報を付加すること、を包含するアプローチによって達成することが可能である。【選択図】 図1

Description

ここに開示する技術は、データのシリアライゼーション、即ちシリアル化、に適用することが可能である。ここに開示する技術の或る好適な実施例においては、このシリアル化は、シリアル化したデータのバージョン間にキーフレーム又はその他の情報を保存することによってデルタエンコーディング(delta encoding)、即ち差分符号化、を容易化させることが可能である。
米国特許第8,244,831号(「コンピュータネットワーク内の二進差分情報のプリエンプティブ作成方法(Method for the preemptive creation of binary delta information within a computer network)」、発明者:マクリーナン他(McLennan et al.)、その開示内容全ては引用により本書に取り込む)に記載されている如く、ファイル間の共通性を識別するために差分符号化を適用することは有用な場合がある。しかしながら、幾つかのファイルフォーマットの場合には、エンドユーザにとっては同一に見える2つのファイルであっても非常に異なるデータから構成されている場合がある。例えば、1番目のMp3ファイルがソングの未編集バージョンをシリアル化することによって作成された場合、そのソングの編集済みバージョンはそのソングのイントロダクションにおける猥褻性を検閲することによって作成され、且つ2番目のMp3ファイルが該ソングの該編集済みバージョンをシリアル化させることによって作成され、その1番目及び2番目のMp3ファイルは著しく異なる場合がある。このタイプの差異は差分符号化を複雑化させ及び/又はその利点を減少させる場合がある。同様に、多くのファイルフォーマット、例えばWORD(DOC)及び標準のACISバイナリ(SAB)、はファイルをディスク上に格納させるか又はディスクからコンピュータメモリ内に読み込むことが可能である効率を最適化させるべく設計されている。これらのタイプの最適化は、又、差分符号化を複雑化させ及び/又はその利点を減少させる場合がある。
米国特許第8,244,831号公報
従って、当該技術において、シリアル化したデータの事後的な差分符号化を容易化させる態様でシリアル化を行うか又は行うことが可能である技術に対する必要性が存在している。
本書に開示する技術は、シリアル化したデータの後の転送(例えば、差分符号化による)を容易化させる態様で例えばMp3,Ogg,H264,DOC,SAB,DXF,MP4等の圧縮したフォーマットへのデータのシリアル化を含む多様なセッティングにおいて使用することが可能である。例えば、本書に記載する開示は、たとえマスターメディアファイルに対して修正、即ちレビジョン(revision)、がなされたとしてもそのマスターメディアファイルのシリアル化したバージョンン間でキーフレームを維持するマシンを実現するために使用することが可能である。本書に記載する開示は、又、シリアル化の時に差分符号化のために使用することが可能なデータを発生するために使用することも可能である。
勿論、本書に記載する開示に基づいて、その他のマシンのみならず、方法および製造物も実現することが可能である。従って、上に記載した要約は、本発明者等の技術の幾つかの側面がどのようにして実現することが可能であるかということの例示としてのみ理解すべきであり、且つ本書によって又はいずれかの関連文書によって与えられる保護に関して制限するものとして取り扱われるべきではない。
図面及び以下の詳細な説明は単に例示的なものであることが意図されており、本発明者等によって予期されている本発明の範囲を制限することは意図されていない。
本書に記載する技術を有益的に使用することが可能な環境を示した概略図。 ファイルの未修正バージョンの圧縮したバージョンに対する類似性に対して類似性を増加させるためにコンフィギュレーションデータを使用することが可能なファイルの修正したバージョンをシリアル化するプロセスを示したフローチャート。 ファイルの未修正バージョンの圧縮したバージョンに対する類似性に対して類似性を増加させるためにコンフィギュレーションデータを使用することが可能なファイルの修正したバージョンをシリアル化するプロセスを示したフローチャート。 ファイルの修正したバージョンをシリアル化する場合にファイルの未修正バージョンからの情報を使用することが可能なプロセスを示したフローチャート。 ファイルの修正したバージョンをシリアル化する場合にファイルの未修正バージョンからの情報を使用することが可能なプロセスを示したフローチャート。 SVGフォーマットを使用してどのようにしてイメージを表示させることが可能であるかを例示しており、且つ、更に、基本文書からの変化を示す情報をどのようにしてそのイメージの修正したバージョンを格納するファイル内に包含させることが可能であるかを例示する構成の一部を示した概略図。 SVGフォーマットを使用してどのようにしてイメージを表示させることが可能であるかを例示しており、且つ、更に、基本文書からの変化を示す情報をどのようにしてそのイメージの修正したバージョンを格納するファイル内に包含させることが可能であるかを例示する構成の一部を示した概略図。 SVGフォーマットを使用してどのようにしてイメージを表示させることが可能であるかを例示しており、且つ、更に、基本文書からの変化を示す情報をどのようにしてそのイメージの修正したバージョンを格納するファイル内に包含させることが可能であるかを例示する構成の一部を示した概略図。 ベースラインデータの修正したバージョンをシリアル化する場合に、要素毎に好適なブロック寸法情報をキャプチャーするために使用することが可能なプロセスを示したフローチャート。 同様のファイルから基本文書の修正したバージョンを派生させる経路を形成するために要素毎にブロック寸法情報を使用することが可能なプロセスを示したフローチャート。
図面を参照すると、図1は、本書に記載する技術を有益的に使用することが可能な環境を例示している。その図において、中央ロケーション、即ち位置、102にあるマスターデータベースはマスターメディアファイル103を含んでいる。図1は、又、複数個の遠隔位置104,105を示しており、その各々は遠隔データベース106,107と、遠隔コンピュータ108,109とを具備しており、該遠隔コンピュータは遠隔データベース106,107の内の一つへ接続されており且つその中におけるコンテントを消費するために使用することが可能である。遠隔位置104,105及び中央位置102はクラウドを基礎とした転送サービス112を介して接続されており、該転送サービスは、米国特許第8,244,831号に記載されているような1個又はそれ以上のサーバー113,114,115を使用して中央位置102と遠隔位置104,105との間でデータを転送するために使用することが可能である。
本書に開示される技術が図1に示されているような環境においてどのように使用することが可能であるかを例示するために、マスターメディアファイル103が150,000個のフレームから構成されているムービー、即ち動画、でその各々が1280×720ピクセルビットマップイメージとしてエンコード即ち符号化されており、且つ遠隔データベース106,107がマスターメディアファイル103の15番目のフレーム毎(即ち、圧縮したバージョンのフレーム0,15,30,45等、及びマスターメディアファイル103は同一である)にビットマップと該ビットマップから残りのフレームをどのようにして派生させることが可能であるかを記述したデータとを具備するマスターメディアファイル103の圧縮したバージョンのコピー110,111を包含している、というシナリオについて検討する。例えば、該圧縮したバージョンにおいては、フレーム1−14はフレーム0とは異なるピクセルのみを包含している場合があり、フレーム16−29はフレーム15とは異なるピクセルのみを包含している場合があり、以下同様であって、それによって該圧縮したバージョンがマスターメディアファイルの150,000個のフレームの各々に対して完全な1280×720個のピクセルを包含することの必要性を回避している。
この様なシナリオにおいては、マスターメディアファイル103及び圧縮したバージョン110,111のコピーの両方においてビットマップとしてエンコードされているフレームに影響を与えるマスターメディアファイル103に対する変更、即ちモディフィケーション(modification)、は、オリジナルのマスターメディアファイルの圧縮したバージョンとは非常に異なっている新たな修正したマスターメディアファイルの圧縮したバージョンとなる場合がある。例えば、オリジナルのマスターメディアファイルのフレーム10と11との間に新たなフレームを加えた場合には、その結果は、フレーム15以後からの該修正したマスターメディアファイルの圧縮したバージョンにおける全てのフレームはオリジナルのマスターメディアファイルの圧縮したバージョンとは異なるものとなる場合がある。この結果を回避するために、オリジナルのマスターメディアファイルからのどのフレームが、オリジナルのマスターメディアファイルとオリジナルのマスターメディアファイルの圧縮したバージョンとの両方においてビットマップとして格納されたかの情報を、コンフィギュレーションファイル116内に維持させることが可能である。従って、この様なコンフィギュレーションファイルは、修正したマスターメディアファイルの圧縮したバージョンにおいて全ての15番目のフレームをビットマップとして単純にエンコードする代わりに、修正したマスターメディアファイルの圧縮したバージョンを作成する場合にオリジナルのマスターメディアファイルの圧縮したバージョンとの類似性を最大化させるために図2に示した如きプロセスにおいて使用することが可能である。
図2のプロセスは、マスターメディアファイルの変更期間中に、マスターメディアファイル201に対する変更が行われる際に該変更を記録するステップで開始する。この変更の記録は多数の態様で実施することが可能である。例えば、マスターメディアファイル内のどのフレームが新たな位置へ移動されたか、マスターメディアファイル内のどのフレームが編集されたか(例えば、ピクセルの変更、ビットマップとして表されているフレームの場合)、マスターメディアファイル内のどのフレームが削除されたか、及びどの様な新たなフレームがマスターメディアフレームに付加されたか、等の情報を記述するデータをマスターメディアファイルを変更するために使用されたコンピュータのメモリ内に格納することが可能である。同様に、修正したマスターメディアファイルにおける各フレームに対して、そのフレームがオリジナルのマスターメディアファイルにおける1つのフレームと同一であった場合に、及びオリジナルのマスターメディアファイル内に同一のフレームが存在していた場合に、どのフレームが同一であったかを示すデータを格納させることが可能である。一方、行われた特定の変化(例えば、特定のビットマップにおけるどのピクセルが変更されたか)を記録させることも可能である。
勿論、当業者によって理解されるように、マスターメディアファイルに対する変更がなされるに連れてマスターメディアファイルに対する変更を記録するステップが実施されない場合がある。例えば、変更していないマスターメディアファイルのコピーが維持されたり、且つマスターメディアファイルの変更したバージョンとオリジナルのバージョンとを比較することによって変更が完了した後にマスターメディアファイルに対する変更が識別される場合がある。このことは、例えば、マスターメディアファイルの2つの圧縮されていないバージョンが使用可能であり且つ或るオーガニゼーション、即ち機構、がマスターメディアファイルの既に既存しているバージョンの内の一つから新たな圧縮したファイルを作成することを希望する場合に、有益的に使用することが可能である。上述したものの結合のような更なる変形例も可能であり、本開示に鑑みて当業者には直ぐに自明のことである。
マスターメディアファイルの圧縮したバージョンを作成する時には、変更されたメディアファイルに対してコンフィギュレーションファイルが存在するか否かをチェック202することによって図2のプロセスが継続する。その様なコンフィギュレーションファイルが存在しない場合には、マスターメディアファイルの圧縮したバージョンが15番目のフレーム毎にビットマップで作成され203、且つマスターメディアファイルからどのフレームが圧縮されたファイルにおけるビットマップとしてエンコードされたかを示すコンフィギュレーションファイルが作成される204。
一方、コンフィギュレーションファイルが存在する場合には、メディアファイルの圧縮されたバージョンへ付加された最後のビットマップが現在のフレームの15個のフレーム内であるか否かをチェック205することによって図2のプロセスが継続する。圧縮されたファイルへ付加された最後のビットマップが現在のフレームの15個のフレーム内である場合には、別のチェック206を実施して、変更がなされる前に作成されたメディアファイルの圧縮されたバージョンにおけるビットマップとして現在のフレームがエンコードされたことをコンフィギュレーションファイルが告げているか否かを判別する。そうである場合、又は最後のビットマップが15個のフレーム内に無い場合には、現在のフレームに対するビットマップがメディアファイルの圧縮されたバージョンへ付加される207。そうでない場合には、現在のフレームと最後のビットマップとの間の差異のみを示す1個のフレームが圧縮されたファイルへ付加される208。
最後に、そのフレームが圧縮されたファイルへ付加されると(ビットマップ207として、又は最後のビットマップからの1組の差異208としてのいずれか)、圧縮されたファイルへ付加すべき何らかのさらなるフレームがメディアファイル内に存在するか否かのチェック209が行われる。存在する場合には、本プロセスは次のフレームへ移行し210、且つメディアファイルの圧縮されたバージョンへ付加された最後のビットマップが現在のフレームの15個のフレーム内であるか否かのチェック205を行うためにリターンする。そうでない場合には、本プロセスは、マスターメディアファイルの圧縮されたバージョンにおけるビットマップとしてどのフレームがエンコードされたかを示すコンフィギュレーションファイルを作成204して、終了する。
理解すべきことであるが、図2に示したプロセスは単に例示的なものであって、本書に開示する技術は図2に描写した以外の態様で実現することが可能である。例えば、図2のプロセスにおいて、マスターメディアファイルの圧縮されたバージョンにおけるどのフレームがビットマップとしてエンコードされているかを示すコンフィギュレーションファイルは、マスターメディアファイルの圧縮されたバージョンの作成が完了した後に、作成される204。しかしながら、このタイプの情報はその他の時においてもキャプチャすることが可能である。例えば、マスターメディアファイルの圧縮されたバージョンが作成されている間に、ビットマップとしてエンコードされたフレームがそのファイルへ付加される度に、ビットマップとして付加されたフレームの表示を包含するためにコンフィギュレーションファイルをアップデートすることが可能である。一方、マスターメディアファイルの新たな圧縮されたバージョンが作成される場合ではなく、マスターメディアファイルの圧縮されたバージョンが1個又はそれ以上の遠隔位置104,105へ、又はリポジトリへ配布される場合に(例えば、データベースをコミット(commit)したか101、クラウドを基礎とした転送サービスへアップロードされたか112、又は何らかのその他の遠隔データベース(図1には不図示)へアップロードされる)、コンフィギュレーションファイルを作成することが可能である。
図2のプロセスに関してのその他の変形例も可能である。例えば、圧縮されたファイル内にビットマップとしてどのデータがエンコードされているかに関しての情報を格納するために別個のコンフィギュレーションファイルを使用するのではなく、その様な情報は、マスターメディアファイルか、圧縮されたファイルか、又はその両方のいずれかにおいて、メタデータとしてエンコードさせることが可能である。そのために使用することが可能な1つのフォーマットの例を以下の表1に示してある。
Figure 2016514393
その他のフォーマットも可能である。例えば、各フレームがファイルの圧縮されたバージョンにおけるビットマップとしてエンコードされているか否かを明示的に表示するのではなしに、幾つかの実現例においては、そのフレームが実際に圧縮されたバージョンにおけるビットマップとしてエンコードされたものである場合に、或るフレームが或るファイルの圧縮されたバージョンにおける一つのビットマップとしてエンコードされたか否かの明示的な言及がなされるに過ぎない。一方、幾つかの場合においては、メタデータは表1に示したものよりも一層多くの情報を包含している場合がある。例えば、1個の圧縮されたファイルがビットマップとしてエンコードされた1個のフレームを包含していることを単純にエンコードするのではなく、どの圧縮されたファイルがビットマップとしてエンコードされた1個のフレームを包含しているかを示す情報が存在する場合がある(例えば、
Figure 2016514393
であって、
Figure 2016514393
ではない)。どのようにして情報が圧縮されたファイルにおいてエンコードされているかの何らかの明示的な記録に依存しないアプローチも可能である。例えば、圧縮されたファイルにおけるどのフレームがビットマップとしてエンコードされているかに関する情報をその圧縮されたファイル自身のコピーを検査することによって決定することが可能である(例えば、ビットマップとしてエンコードされているフレームは特定且つ予測可能な寸法を有しており、一方最も最近のビットマップからの差異としてエンコードされているフレームは、通常、一層小さく且つそれらの内容に基づいて異なる寸法を有している)。これらのアプローチの組合せ(例えば、どの圧縮されたファイルがビットマップとしてエンコードされている特定のフレームを包含しているかを示すためにメタデータを使用するが、少なくとも1個の圧縮されたファイルがそうする場合に明示的にそうするに過ぎない)も可能であり、且つ本開示に鑑みて不当な実験を行うこと無しに当業者等によって実現することが可能である。
本発明者等の技術を実現するために使用することが可能な別のタイプの変形例は、別々のものとして上述した複数のステップを結合させることである。例えば、図2のプロセスにおいて、コンフィギュレーションファイルが存在するか否かの初期的なチェック202を行い、そのファイルが存在するか否かに依存して、メディアファイルの圧縮されたバージョンを15番目のフレーム毎にビットマップで作成203するか、又は別のエンコーディングシーケンスへ入り、そこでそれらが前のビットマップから15個のフレームを越えて離れているか、又はコンフィギュレーションファイルがそれらが前に作成した圧縮されたファイルにおけるビットマップとしてエンコードされたものであることを表す場合205−210に、フレームがビットマップとしてメディアファイルの圧縮されたバージョンへ付加される。
該別々のエンコーディングシーケンスを結合し且つコンフィギュレーションファイルに対する予備的なチェックを取り除いた同様のアプローチを使用することも可能である。この様な代替的なシーケンスをどのようにして実施するかを示すフローチャートを図3に与えてある。その図において、複数のエンコーディングシーケンスの代わりに、単一のエンコーディングシーケンスのみが存在しており、その場合に、圧縮されたファイルへ付加された最後のビットマップが現在のフレームの15個のフレーム内にある場合であっても、現在のフレームをビットマップとして圧縮されたファイルへ付加すべきであることを表すオーバーライド情報(例えば、コンフィギュレーションファイル内に格納されているか又は前述した如きメタデータとして、又は以下に説明する如きその他の態様で)が存在するか否かを決定するためにチェック301が実施される。マスターメディアファイル201へ変更を記録し且つそれをオリジナル及び変更したマスターメディアファイルにおける同一のフレームを識別するエンコーディングシーケンスの期間中に実施される論理で置換させる別個のステップを取り除く等のその他のタイプの変更も可能である。従って、図3に示した変更したシーケンスは例示的なものに過ぎないとして理解すべきであり、且つ本書又は何らかの関連文書によって付与される保護の範囲に関する制限を暗示するものとして取り扱われるべきではない。
当業者等には直ぐに自明であるように、前述した特定のフォーマット及びエンコーディング手法は、本発明者等の技術を例示することが可能な文脈を提供することを意図したものであって、本発明者等の技術がその特定のエンコーディング手法、又は同様に簡潔なエンコーディング手法が使用される状況にのみ適用することが可能であることを暗示することを意図したものではない。例えば、情報がキーフレーム(即ち、ファイル内の他のフレームに拘わらずに同一のマテリアルが呈示されることとなる態様でエンコードされているフレーム)及びインターフレーム(即ち、ファイル内の他のフレームに対する変更が存在する場合に異なるマテリアルが呈示されることとなる態様でエンコードされているフレーム)として格納される多くのメディアファイルフォーマットがある。これらのフォーマットは、キーフレームとして圧縮されていないビットマップを使用する蓋然性は無く、且つインターフレームを発生させるために前のキーフレームとの単純なピクセル比較よりも一層洗練された技術を使用する蓋然性が高い。しかしながら、本書に記載する技術は、特定のキーフレームフォーマット及びインターフレーム発生技術を考慮に入れることによってこれらのタイプのフォーマットにも適用させることが可能であり、その場合に、キーフレーム情報を維持し、キーフレームを変更したメディアファイルの圧縮されたバージョン内に保存し、且つ保存したキーフレームデータを使用して該インターフレームを計算するが、それらの全ては図2内に示されている(簡単化した形式ではあるが)。
図2の文脈で記載したもの以外にキーフレーム及びインターフレームを基礎とした圧縮技術に適用可能であることに加えて、本発明者等の技術はフレーム情報を使用することの無い圧縮技術にも適用することが可能である。そのことを例示するために、消費者が少なくとも部分的に既に見たか又は聞いたかに基づいて消費者によって知覚される蓋然性のない圧縮されていないメディアファイルにおけるデータを識別し、次いでその圧縮されていないメディアファイルの圧縮されたバージョンを作成する場合にそのデータを省略する圧縮手法を使用するメディアフォーマットについて検討する。このタイプの圧縮手法に対して本発明者等の技術を適用することが可能なプロセスの1例を図4に与えてある。そのプロセスにおいては、メディアファイルの圧縮されたバージョンが作成される場合に、圧縮されていないメディアファイルの各1秒に対して圧縮されたメディアファイルへ付加される情報はその圧縮されたメディアファイルへ付加される情報の前の3秒に基づいている。図2のエンコーディング手法の場合の如く、図4において使用される手法は、本書に開示される技術をどのようにして実現することが可能であるかを例示するための一つの簡単化した例である。その図に示されているアプローチは、これらの圧縮タイプにおける圧縮されたメディア内に包含される情報を決定するために何が使用されるかを考慮することによって、不当な実験を行うこと無しに当業者等によって、その他のより一層複雑なタイプの圧縮へ適用させることが可能である。
図4のプロセスは、図2のプロセスの如く、マスターメディアファイルに対してなされる変更を記録することで開始する201。このことは、変更がなされているマスターメディアファイルにおける位置のタイムシグネチャ(signature)を識別することによって達成させることが可能であるが、図2の文脈において前述したものの如き変形例も可能である。マスターメディアファイルに対する変更がなされた後で且つ変更したマスターメディアファイルの圧縮されたバージョンを作成するプロセスが開始すると、該圧縮されたファイルへ付加されている情報の前の3秒内に該変更のいずれかが存在していたか否かのチェック401が行われる。そのことに対する回答が否定である場合には、該変更されたファイルからの現在の情報が該圧縮されたファイルへ付加された情報の前の3秒に基づいてエンコードされ402、且つ該圧縮されたファイルへ付加される403。一方、該圧縮されたファイルへ付加されるべき情報は、圧縮されたファイルへ付加される前に403、変更されていないファイルからの前の3秒の情報に基づいてエンコードされる404。その情報が付加されると403、圧縮されたファイルへ付加されていない変更されたファイル内に更なる情報が存在するか否かについてチェックが行われる405。存在しない場合には、本プロセスは終了し407、そうでない場合には、エンコード中の変更されたマスターファイルの部分は前進し406(例えば、エンコードされるべき次の秒へ移動)、且つ本プロセスはエンコーディングシーケンスの最初におけるチェックへループバックする401。
その他の変更も可能である。例えば、図2−4のプロセスにおいては、変更されたマスターメディアファイルの圧縮されたバージョンが、再エンコーディングをし且つ例えその情報が前に作成されたマスターメディアファイルの圧縮されたバージョンにおいて既に使用可能であったとしても変更されたマスターメディアファイルの圧縮されたバージョンへ情報を付加することによって、作成されている。しかしながら、幾つかの場合においては、変更されたマスターメディアファイルの圧縮されたバージョンを作成する場合に、この処理の幾らかを回避することが可能な場合がある。例えば、マスターメディアファイルの圧縮されたバージョンが作成される場合に、その圧縮されたファイルにおける特定の情報がどのようにマスターメディアファイルにおける情報に対応するかを示すデータがキャプチャされる場合について検討する。このタイプのデータを使用して、マスターメディアファイルに対する変更がなされる場合に新たな圧縮されたファイルを再エンコーディングするのではなく、マスターメディアファイルの変更されていない部分に相関する既存の圧縮されているファイルの部分を新たな圧縮されたファイル内にコピーすることによって該変更されたマスターメディアファイルの圧縮されたバージョンを作成することが可能である。前述した如きキーフレームを基礎とした圧縮手法を使用して変更したマスターメディアファイルの圧縮されたバージョンを作成するためにこのアプローチに基づいて実現することが可能な一つの例示的なプロセスを図5に示してある。
図5のプロセスにおいては、最初に、圧縮されたファイルへ付加されるべき現在のフレームは変更されたか、又はそれはマスターメディアファイルのオリジナルのバージョンにおけるように同一であるか、を決定するためにチェック501が行われる。現在のフレームが変更されていた場合、又は前に作成された圧縮されたファイルにおけるキーフレームとしてエンコードされなかった場合には、それは、前述した如き技術を使用するなどして、圧縮されたファイルへ付加502される。一方、現在のフレームが変更されておらず且つそれが前に作成された圧縮されたファイルにおけるキーフレームとして終了されたことをチェック503が表す場合には、前に作成された圧縮されたファイルのそのキーフレームから開始し且つ変更された次のフレーム(しかし、それを包含せず)で終了する部分が作成中の新たな圧縮されたファイルへ付加504される。従って、前に作成された圧縮されたファイルのコピーした部分か又は現在のフレームのいずれかが新たな圧縮されたファイルへ付加されると、更なるフレームが存在するか否かのチェック209が実施され、且つ本プロセスは次のフレームへ移行210するか、又は終了505する(例えば、どのフレームが新たな圧縮されたファイルにおけるキーフレームとしてエンコードされたかを示すコンフィギュレーションファイルを作成することにより)。
勿論、この同じアプローチは、キーフレームを基礎としない圧縮手法にも適用することが可能である。例えば、図4の文脈において説明したように新たな圧縮されたファイルを再エンコーディングする代わりに、マスターメディアファイルからの情報が圧縮されたファイルへ付加された前の3秒のマテリアルに基づいて圧縮されたファイルへ付加されるという図4の文脈において説明したような圧縮手法においては、変更されていないマスターメディアファイルの部分に対応するオリジナルの圧縮されたファイルの部分は新たな圧縮されたファイル内へコピーさせることが可能である。従って、図5の文脈において記載した再エンコーディング無しで新たな圧縮されたファイルを作成するためのアプローチの説明は、本書又はいずれかの関連文書によって与えられる保護の範囲を制限するものとしてではなく、単に例示的なものに過ぎないとして理解されるべきである。
上の開示は、マスターメディアファイルのアップデートした圧縮されたバージョンが複数の遠隔位置へ配布されるべき環境において、本発明者等の技術をいかにして有益的に適用することが可能であるかを説明しているが、この技術は多様な具体的な状況において使用することが可能であり、それはマスターメディアファイルの圧縮されたバージョンを複数の遠隔位置へ配布することが関与しない状況も包含している。例えば、本書に記載する技術は2つの位置の間でデータを転送することを容易化させるために使用することが可能であり、例えば、遠隔レンダーファームと基本メディアファイルに対する変更を行うことが可能なコンピュータとの間、又は制御コンピュータと遠隔データリポジトリとの間などである。
同様に、本発明者等の技術はメディアファイル以外のファイルの転送のために使用することが可能であり、その場合には、一つのファイルの一部に対するユーザが知覚可能な変更は他の部分に変更を発生させる場合があり、それはユーザが知覚可能ではないが差分符号化を潜在的に干渉するか又はその利点を減少させる可能性がある。そのことを例示するために、SVGフォーマットを使用してエンコードしたイメージの場合を検討する。そのフォーマットにおいては、イメージの異なる特徴が属性によって定義される要素として表現される。従って、イメージを格納するために使用されるSVGファイルにおける非常に小さな変更(例えば、一つの形状を表す要素における一つのパラメータの値を変更)が、そのイメージがユーザに対してレンダリングされる場合(例えば、その形状がスクリーンの片側から別の側へ移動される場合)に非常に大きな変更を有する場合がある可能性がある。しかしながら、後述する如く、例えこのタイプの状況においても、本発明者等の技術はSVGイメージの変更したバージョンの差分符号化及び/又は転送のプロセスを容易化させるために使用することが可能である。
一つのファイルに対する小さな変更が、そのファイルの内容がユーザによって観察される場合に大きな変更を有する場合があるような例えばSVGなどのフォーマットに対して本発明者等の技術を適用することが可能な具体的な例を図6a及び6bの以下の説明において提供する。これらの図において、図6aは、円と、矩形と、三角形とからなるイメージをどのようにしてSVGフォーマットを使用してエンコードすることが可能であるかを示している。図6bは、そのイメージの変更したバージョンをどのようにしてファイル内に格納することが可能であるかを示しており、そのファイルは、変更されたイメージを後に転送し及び/又は差分符号化させる場合に使用することが可能な情報を格納するためにも使用される。特に、図6bにおいて、単に変更されたイメージを表すために必要な情報を包含するのではなく、図示したマークアップ言語は付加的な要素(オープニング及びクロージング用<deltainfo>タグ601,602の間に記載)を包含しており、それは、そのファイルがbaseDocumentID属性606(その属性はハッシュ又は基本文書のシグネチャ等の値、又は基本文書に割り当てられたグローバルにユニークな識別子を有することが可能)によって特定される基本文書と相対的に何が変更されたかに関する情報を包含していることを表している。その付加的なマークアップ言語要素内には、オリジナルのイメージにおけるそのポジション、即ち場所、の右へ50個のピクセルであるポジションにおいて変更したイメージにおいてid"circle1"を具備する要素が現れることを示す更なる要素603が存在している。
図6bのオープニング及びクロージング用<deltainfo>タグ601,602の間の要素に示されているようなデータを変更したイメージの差分符号化及び/又は転送を容易化するために使用することが可能な幾つかの態様が存在している。例えば、変更したイメージを派生したイメージを格納している基本文書を識別する情報は、差分符号化システム(それは、そうでなければ、繰り返されるシグネチャ比較を実施せねばならないかもしれない)が単に変更されたイメージに対するファイルを読み取ることによって変更されたイメージに対するファイルに最も類似する既存のファイルを識別することを許容することが可能である。同様に、変更されたイメージを基本文書が既に存在する位置へ転送する場合に、基本文書に対してなされた特定の変更を識別する要素603は、変更されたイメージが存在している差分符号化システムが、変更されたイメージと基本文書とに共通の情報の別個の識別をやり遂げることを回避することを可能とさせる。勿論、幾つかの場合には、変更を特定する要素603において示したような情報がシリアル化とは別の差分符号化に対する必要性を除去するためにも使用することが可能である場合がある。例えば、変更されたイメージが転送されるべき位置において基本文書が既に存在している場合には、その転送は、
オープニング及びクロージング用<deltainfo>タグ601,602の間の情報を受け取り位置における適宜のプログラムされたコンピュータへ送ることによって達成することが可能であり、従ってそのコンピュータはその情報を使用して基本文書から変更されたイメージに対するファイルを派生させることが可能である。
図6bに示したような情報は、種々のサイトにおいて入手可能な文書間の差異を説明するために使用することも可能である。そのことを例示するために、変更したイメージが複数の位置において模写されるが、各位置は基本文書の僅かに変更されたバージョン(例えば、オリジナルのイメージの新たなバージョンがローカルのデザインチームによって作成された)を有している場合について検討する。このタイプの状況においては、該変更されたイメージは1個のファイルへシリアル化させることが可能である、該ファイルは<deltainfo>タグ間に図6bに示した情報の複数のインスタンスを包含しており、該インスタンスの一つは該変更されたイメージが模写されるべき各位置における基本文書に関する各差異に対するものである。従って、該変更されたイメージを特定の遠隔サイトへ模写すべき時である場合には、例えその遠隔サイトがそれから該変更されたイメージが作成された基本文書の元のバージョンを有していない場合であっても、そのサイトにおいて使用可能な基本文書のバージョンからその変更されたイメージをどのようにして派生させるかに関する情報を本プロセスを最適化させるために使用することが可能である。
図6bに示したものを越えるその他の情報も、変更されたイメージの差分符号化及び/又は転送を容易化させるために使用することが可能である。例えば、幾つかの実現例においては、図6bに示した如き情報を包含するのではなく(又はそれに加えて)、変更されたイメージに対するファイルは、最も類似したファイルを識別する場合及び/又は該最も類似したファイルから該変更されたイメージに対するファイルを派生させるためのパッチファイルを作成する場合に、使用すべき好適なブロックサイズ(その好適なブロックサイズに対する予め計算されたブロックシグネチャが付随している場合がある)を識別する情報を包含することが可能である。この好適なブロックサイズは、例えば、転送すべきファイルのタイプと共に異なるブロックサイズを使用した場合の差分符号化システムの性能の検査に基づいて設定することが可能であり、又は転送すべきファイルにおける要素の寸法に基づいて設定することが可能である(例えば、好適なブロックサイズは、転送すべきファイルにおける最小の要素を格納するために必要なディスク空間に設定することが可能であり、又は好適なブロックサイズは、転送すべきファイルにおける個々の要素の寸法の最大公約数に等しく設定することが可能)。このタイプのブロックサイズ情報も、変更したイメージFmodに対するファイルを作成する場合に要素毎に包含させることが可能であり、且つ該変更したイメージを模写すべき位置において同様のファイルFsimからその変更したイメージに対するファイルを派生するためのパッチ(Fsim→Fmodパッチ)を後に作成する期間中に使用することが可能である。これらの目的のために使用することが可能なプロセスを図7及び8に例示してあり、それらの各々について以下に説明する。
最初に図7を参照すると、その図に図示されているプロセスは、作成中のファイルへ付加されるべき次のデータはコンテント要素(例えば、図6a−6bに例示したような矩形、円、又は多角形)に対応するか否かのチェック701で開始する。付加されるべき次のデータがコンテント要素の内の一部ではない場合には、該データは単純に新たなファイル(即ち、Fmod)へ付加され、且つ該新たなファイルへ付加すべき更なるデータが存在するか否かの新たなチェック703が稼動される。存在しない場合には、該変更されたイメージにおける要素の寸法及び基本文書からの変更に関する全ての情報(例えば、図6bにおけるオープニング及びクロージング用<deltainfo>タグ601,602の間等の情報)が該新たなファイルへ付加704され、且つ本プロセスは終了する。そうでなく、付加すべき更なる情報が存在している場合には、本プロセスはループバックして付加すべき次のデータがコンテント要素の一部であるか否かのチェック701を行う。
該新たなファイルへ付加すべき次のデータがコンテント要素の一部であることをチェック701が示す場合には、図7の本プロセスは、同じコンテント要素が基本文書内にも存在しているか否かをチェック705することによって、継続する。このチェックは、例えば、シリアル化中の変更したイメージからのコンテント要素が基本文書の一部であるか又は変更したイメージと基本文書との間の変更の内の一つがシリアル化中のコンテント要素の基本文書からのイメージへの付加であるかを決定するために基本文書の変更期間中にキャプチャしたデータを使用することによって実施することが可能である。そのデータがシリアル化中であるコンテント要素が基本文書中に存在していないことをチェック705が示す場合には、新たなコンテント要素が作成中のファイル(即ち、Fmod)へ付加706され且つ最も最近に付加された要素がどのように基本文書と異なるかを示す情報(例えば、最も最近に付加された要素は基本文書中に存在しないこと)が作成中のファイルへ後に付加するために格納707される。
一方、図7のプロセスにおいては、作成中のファイルへ付加されるデータに対応するコンテント要素が基本ファイル内に存在することをチェック705が示す場合には、基本ファイルからのその要素のバージョンが作成中のファイルへ付加708される。基本ファイルからのコンテント要素のバージョンが付加708された後に、図7のプロセスは、付加されたコンテント要素の寸法を示す情報を格納709し且つ変更されたイメージからのコンテント要素のバージョンが基本文書からのコンテント要素のバージョンと異なるか否かのチェック710を行うことによって、継続する。変更したイメージにおけるコンテント要素のバージョンが基本文書におけるコンテント要素のバージョンと異なる場合には、どのようにしてコンテント要素が変更されたかを示す情報が格納707される(例えば、変更されたイメージを作成する場合にコンテント要素が5個のピクセルだけ左へ移動されている場合には、基本文書からのコンテント要素を5個のピクセルだけ右へ移動させることによって変更されたコンテント要素を得ることが可能であることを示す情報が格納される)。そうでない場合には、図7のプロセスは、作成中のファイルへ付加すべき更なるデータが存在するか否かのチェック703を行い、且つ、オリジナルのチェック701へループバックするか又は格納されている寸法及び変更情報を作成中のファイルへ付加704するかを適宜行う。
次に図8を参照すると、その図は、図7のようなプロセスにおいてキャプチャされる場合があるブロックサイズ情報を、受け取り位置における同様のファイル(Fsim)からどのようにして変更されたイメージ(即ち、Fmod)に対するファイルを派生するかを示すパッチ(Fsim→Fmodパッチ)の後の作成を容易化するために、どのようにして使用することが可能であるかの例示、を与えている。最初に、図8のプロセスにおいて、Fsim→Fmodパッチが作成される位置におけるコンピュータが、Fmodに対するブロックサイズデータをFmodが模写されるべき位置へ送信801する。この情報は、例えば、Fmodと同じフォーマットのファイルに対して特に良好に動作することが観察されたブロックサイズ、Fmodにおける要素の寸法から派生された好適なブロックサイズ、FmodとそれからFmodの変更されたイメージを作成した基本文書との両方に包含されているいずれかのコンテント要素に対するブロックサイズ、及び/又は上記の組合せ(例えば、Fmodにおける個々のコンテント要素に対するブロックサイズ及びFmodにおけるコンテント要素ではないデータのエンコーディングを容易化するために使用することが可能な好適なブロックサイズ)、を包含することが可能である。
ブロックサイズデータが受け取りサイトにおいて受け取られると、そのデータはその受け取りサイトにおける最も類似したファイル(即ち、Fsim)に対して1個又はそれ以上のシグネチャを発生802するために使用される。作成されるべき特定のシグネチャは、使用可能な情報とシグネチャを発生802するコンピュータが構成されている特定の態様とに依存して異なる場合がある。例えば、Fmodブロックサイズ情報において他のブロック寸法が特定されていないFsimの部分に対してデフォルトのブロックサイズを使用し、且つそのファイルの他の部分に対してFmodブロックサイズ情報からの寸法を使用して発生される複数のサブ・シグネチャからなる単一シグネチャファイルを作成することが可能である。一方、Fmodブロックサイズ情報における複数のブロック寸法の各々に対して1個のシグネチャを作成することが可能であり、その場合に各シグネチャはFmodブロックサイズ情報からの複数のブロック寸法の内の一つを使用して発生される複数のサブ・シグネチャから構成される。その他の代替案、例えば、Fmodブロックサイズ情報において特定されている各ブロック寸法に対して1個のシグネチャが作成される場合、及び異なる複数のブロック寸法(例えば、Fmodブロックサイズ情報が複数のデフォルトのブロック寸法を包含している場合)を使用して発生される複数のサブ・シグネチャから1個又はそれ以上のシグネチャが作成される場合、も実現することが可能であり、且つ本開示に鑑みて当業者等には直ぐに明らかなものである。従って、上に与えた例は制限的なものではなく例示的なものに過ぎないものとして理解すべきである。
図8のプロセスを続いて参照すると、Fsimに対するシグネチャが発生802されると、これらのシグネチャはFsim→Fmodパッチを作成するサイトへ送給803され、且つそのサイトにおいてパッチ作成シーケンスが行われる。図8に示した如く、このパッチ作成シーケンスは、どのようにしてFsimからFmodを派生するかを示す全てのデータが該パッチへ付加されたか否かのチェック804で開始する。否定である場合には、Fsim→Fmodパッチへ付加されるべき次のデータがカスタムブロックサイズを有しているか否かを決定するための更なるチェック805が行われる。このチェック805は、例えば、そのデータがFmodブロックサイズデータにおけるカスタムブロックサイズと関連するFmodの一部の始めにあるか否かをチェックし、且つそうでない場合には、カスタムブロックサイズと関連していないものとしてそれを取り扱うことによって、実施することが可能である。カスタムブロックサイズが存在することをチェック805が判別した場合には、そのカスタムブロックサイズを使用してFmodに対する次のサブ・シグネチャが発生806される。一方、カスタムブロックサイズが存在しない場合、又はカスタムブロックサイズは存在するがそのカスタムブロックサイズを使用して発生されたサブ・シグネチャはFsimに対するシグネチャにおけるいずれのサブ・シグネチャとも一致しないことの判別806がなされた場合には、Fmodに対する次のサブ・シグネチャはデフォルトのブロックサイズを使用して発生808される。このサブ・シグネチャがFsimに対する一つのサブ・シグネチャと一致することが判別809される場合には、Fsimの一致する部分の表示がFsim→Fmodパッチへ付加810される。そうではなく、一致が存在しない場合には、一致しないサブ・シグネチャによって識別されるFmodの部分がFsim→Fmodパッチへ付加811され、且つそのパッチへ付加すべき更なるデータが存在するか否かのチェック804をするために本プロセスはリターンし、且つ圧縮され暗号化されたパッチファイルを作成812するか、又は繰り返し、を適宜行う。
勿論、図7及び8の上の説明は、どのようにしてブロックサイズ情報をシリアル化期間中にファイルへ付加させることが可能であるか及び後の差分符号化期間中に使用することが可能であるかの例を与えるものであるが、本書に開示される技術は図7及び8の文脈において説明した特定の例示的なステップ及びプロセスを使用して実現されることに制限されるものではない。その様な一つの可能な変形例を例示するために、図8の説明が、Fsim→Fmodパッチを作成するプロセス期間中にFsim及びFmodの部分部分に対してサブ・シグネチャを発生するステップ802,806,808を、包含しているということについて検討する。この説明はFsim→Fmodパッチを作成することが可能である一つの態様を例示するものであるが、本開示した技術は、前もってサブ・シグネチャの幾つか又は全てを発生させるために実現させることも可能である。例えば、カスタムブロックサイズに対応するFmodの部分部分に対するサブ・シグネチャを作成し且つ図7のプロセスの変更したバージョンにおける基本ファイルからの変更を示す情報を格納707することの一部として格納することが可能であり、一方デフォルトのブロックサイズで作成された複数のサブ・シグネチャからなるFsim用の1個のシグネチャはプロセッサ資源に対するデマンドが低い場合にオフラインプロセスによって前以て発生させることが可能である。同様に、図8はFsimに対するシグネチャをFsim→Fmodパッチが作成される位置へ送給803することを包含するプロセスを例示しているが、このステップは、例えばFsim→Fmodパッチが作成される位置においてFmodとFsimとの両方が存在する場合などの幾つかの場合においては省略することが可能である。これは、米国特許第8,244,831号に記載されているようなクラウドを基礎とした転送サービスに対する場合や、又はFsimが実際にはそれから変更されたイメージのFmodが派生された基本文書である場合に該当する蓋然性がある。従って、図7及び8及びそれに関連する記載は、本書によって又は何らかの関連文書によって付与される保護に関して制限するものとして取り扱われるべきではない。
図6a及び図6bの文脈において記載したプロセスに関する変形例は、特定の要素に対するブロックサイズ又はシグネチャ情報の格納を超える分野においても可能である(それは、前述した如く、ここに開示した技術を使用して実現されるシステム内に包含されていない蓋然性がある)。例えば、前述した如く、ここに開示した技術は、変更されたイメージ用のファイルにおける図6bの<deltainfo>タグ間に示されるようなデータの複数のインスタンスを含むことによって異なるサイトにおいて利用可能な情報における変更を説明することが可能であるものとすることが可能である。しかしながら、ここに開示した技術は、変更情報の複数のインスタンスを必要とすること無しにサイト間での変更を説明する態様で実現することも可能である。例えば、単一のファイル内に複数の<deltainfo>タグの組を包含するのではなく、手持ちの情報を使用して模写されるべきファイルを派生するためにその模写されるべきファイルが基本文書からどのように異なるかを示す情報を受け取るようにコンピュータを構成することによって、異なるサイトにおいて利用可能な情報における差異を説明することが可能である。このことは、それらのコンピュータを、基本文書のそれらのバージョンにおける変更をバックアウト(例えば、コンピュータは、「rect1」のIDを有する図6cにおける要素の「y」属性から特定された変更(即ち、−50)を減算することによって図6cに示したファイルから図6aに示したファイルのコピーを派生させることが可能である)して基本文書のオリジナルのバージョンを取得し次いでそれを使用して模写されるべきファイルを派生させるか、又は基本文書のローカルバージョンにおける変更の逆を模写されるべきファイルにおける変更と結合させることによって包括的変更パッケージを作成し次いで該包括的変更パッケージを基本文書のローカルバージョンへ適用して模写されるべきファイルを取得するように構成することによって行うことが可能である。
基本文書の異なるバージョンの潜在的な存在性に対処するその他のアプローチも可能である。例えば、図7のプロセスに例示されている如く、ここに開示される技術は、変更されたイメージとその情報が基本文書とどのように異なるかを示す変更情報との両方を包含するファイルへ変更されたイメージをシリアル化するのではなく、それから変更されたイメージが派生されたイメージとその変更されたイメージをどのようにしてオリジナルのバージョンから派生させることが可能であるかを示す情報とを包含するファイルへ変更されたイメージをシリアル化させることが可能であるシステムを実現するために使用することが可能である。このタイプのシリアル化を使用するべく実現されたシステムにおいては、基本文書の全てのバージョンが、ユーザに提示すべき情報をどのようにして基本文書からの情報から派生することが可能であるかを基本文書のこれらのバージョンへアクセスするコンピュータへ告げるために使用することが可能な変更情報と結合された基本文書のデータを包含することとなる。従って、このタイプの実現例においては、単に1組の変更情報を別のもので置換させることによって、基本文書の任意のバージョンを任意のその他のバージョンから派生させることが可能である。
文書のバージョン間の変更を説明するために使用することが可能な特徴の更なる例として、シリアル化に対する複数のアプローチをサポートするシステムを実現するためにここに開示される技術をどのようにして使用することが可能であるかについて検討する。例えば、ベースラインとなるアプローチを使用することが可能であり、その場合に、シリアル化が行われるコンテキスト、即ち文脈、に依存してコンピュータは情報を異なってシリアル化させる構成とさせることが可能である。そのことを例示するために、或るファイルが既存の基本文書の変更されたバージョンであるとして取り扱われるべき場合、及びそのファイルが新たな基本文書として取り扱われるべき場合に、シリアル化に対して異なるアプローチを使用することの可能性について検討する。このタイプの実現例においては、或るファイルが新たな基本文書として取り扱われるべき場合には(例えば、或る文書が複数のグループ間の将来のコラボレーションのための基礎として使用されるべきであることのオプションをユーザが選択したため、又は基本文書の或るバージョンにおける変更が非常に実質的なものであって基本文書のオリジナルのバージョンからの情報を矮小化させるため)、それは、そのファイルのコンテント、即ち内容、の全てを自己充足型の態様(例えば、図6aに示した如きSVGイメージ)で格納される形式で保存させることが可能である。対照的に、或るファイルが既存の基本文書の変更されたバージョンとして取り扱われるべき場合には、それは基本文書のコピー及び1組の変更情報の形式でシリアル化させることが可能である。シリアル化に対する複数のアプローチを同時的に使用することも可能である。例えば、基本文書の変更されたバージョンがシリアル化される場合には、2個のファイルを形成することが可能であり、その内の一方のファイルでは、そのファイルのコンテントが基本文書のコピーとして格納されており、且つその内の他方のファイルでは、そのファイルのコンテントは基本文書のコピー及び1組の変更情報として格納されている。従って、基本文書の変更されたバージョンが模写されるべきサイトにおいて利用可能な情報に依存して、基本文書の変更されたバージョンを模写する場合に異なるファイルを選択的に使用することが可能である。
勿論、或る文書の異なるバージョンの潜在的な存在に対処するための上述した幾つかのアプローチの組合せも可能である。そのことを例示するために、単一のファイルに対する変更情報の複数のバージョンのベースライニング(baselining)及びメインテナンスのアプローチについて検討する。これらのアプローチは、或る文書の変更されたバージョンをシリアル化する場合に変更ログを包含することをサポートするシステムにおいて結合させることが可能である。この様なシステムにおいては、基本文書の変更されたバージョンが新たな基本文書として使用されるべきであるものとして識別される場合にはいつでも、その文書に対するコンテントは自己充足型の態様で格納させることが可能であり且つその自己充足型のコンテントが前の基本文書におけるコンテントからどのように異なっているかを示す変更情報を付随させることが可能である(例えば、図6bに示した如く)。この変更情報は、その新たな基本文書の修正されたバージョンがそれ自身基本文書として使用するために選択される場合には、維持させることが可能であり、その結果、各文書は、その前の基本文書の記録及び最も最近に先行する基本文書からのその変更の記録を包含している共通のソースから派生されることとなる。この様な情報は2つの文書の間のパッチを作成するプロセスを最適化させるために使用することが可能であり、その場合に、これらの文書の最も最近の共通のベースラインを識別し、これらの文書の各々がどのように該共通のベースラインから異なっているかを識別するために格納されている変更情報を使用し、次いでこれら2つの文書を該ベースラインの変更されたバージョンとして取り扱うことによりパッチファイルを作成する(例えば、図8に示したようなプロセスを使用する)。その他の組合せ及び変形例(例えば、変更ログ内に付加的な情報を包含させること)も可能であり、本開示に鑑みて不当な実験無しで当業者等によって実現させることが可能である。従って、上に与えた例は単に例示的なものであるとして理解されるべきであって且つ制限的なものとして取り扱われるべきではない。
ここに開示される技術がサイト間でのデータにおける変更を説明することを実現することが可能である態様に関して制限を暗示するものとして上の例が取り扱われるべきではないことと同じく、これらの例及びメディアファイルのシリアル化の前述した説明は特定のフォーマット及びデータタイプを使用して記載されているという事実は、ここに開示される技術がこれらの特定のタイプ又はフォーマットのデータの転送及び/又は差分符号化を容易化することに制限されることを暗示するものとして取り扱われるべきではない。例えば、上の技術を使用することによって、表2の例示的なXMLファイルにおいてエンコードされたテキストの変更されたバージョンは、表2のベースラインデータ及びその変更されたテキストがどのようにしてそのデータから派生させることが可能であるかを示す情報の両方を包含するファイルへシリアル化させることが可能である。表3及び4はこれらのタイプのファイルを例示している。これらの表において、表3は、表2からのベースラインデータと、変更されたテキストを得るためにベースラインデータの識別された部分へ適用することが可能なRegExp命令(即ち、「s/Cincinnati/Blue Ash/」)の形式での変更情報と、の両方を包含するファイルを例示している。表4は、表2のベースラインデータ及び変更されたテキストの自己充足型表現と、その変更されたテキストがどのようにしてオリジナルのテキストから派生させることが可能であるかを示す変更情報と、の両方を包含するファイルを例示している。このタイプのファイルの場合、修正されたテキストをビュー、即ち、見るために使用されるアプリケーションがその修正されたテキストの自己充足型表現を読むことが可能であり、一方、データ転送アプリケーションはそのデータが転送されている位置においてベースラインデータのコピーが既に利用可能であるか否かに依存して、変更情報又はオリジナルデータ+変更情報を選択的に送給することが可能である。
Figure 2016514393
Figure 2016514393
Figure 2016514393
ここに開示される技術は、一層複雑なフォーマット又はデータタイプで使用することも可能である。例えば、任意の二進データをマイクロソフトの構造化ストレージ(structured storage)又はファイルの異なる部分を組織化するためにファイルシステムのような情報を使用するその他のアプローチ等の技術を使用して複数のオブジェクトのコレクション(collection)、即ち集まり、として表現することが可能である。この任意の二進データオブジェクトは、図6a−6b及び表2−4の文脈において説明した要素とほぼ同じ態様で転送及び/又は差分符号化のために個別的に取り扱い且つ最適化させることが可能である。同様に、変更情報が特定の属性に対する人が読むことが可能な変更として記載される実現例に制限されるものではなく、変更情報は、ベースライン情報(例えば、オリジナルファイル又はその一部)から変更データをどのようにして派生するかを示す二進デルタ情報の形式、又は変更されたデータを作成する場合にユーザによってなされた変更の記録の形式(例えば、ユーザの変更がなされるに従いユーザの変更をキャプチャし且つ、基本的に、変更されたデータがシリアル化される場合に格納されるマクロを作成するためにそれらを使用するべく編集プログラムを構成することが可能)を取ることが可能である。
1組の変更されたコンテントと同じファイル内に包含されているものとしての上の例に記載した情報が実際には別のコンフィギュレーションファイル内に格納されている場合、又はユーザが異なる基本文書から異なる要素を組み込むことが許容され且つ各要素のソース及びそれに対してなされた変更を示す変更情報を格納することが可能である場合、等のその他の変形例も可能であり、且つ当業者等にとって直ぐに明らかなものとなる。従って、ここに明示的に開示されたマテリアルに対して本書によって又は本書に関連する何らかの文書によって付与される保護を制限する代わりに、その保護は以下の特許請求の範囲によって定義されるべく理解されるべきであり、該特許請求の範囲は本書において本発明者等により希求される保護の範囲を反映すべく草稿されており、その場合に、「明示的定義」という表題で以下にリストされている特許請求の範囲中の用語はそこに記載される明示的な定義が与えられ、且つその他の用語は汎用辞書によって示される如き最も広く合理的な解釈が与えられるものである。上の開示又は組み込んだ優先権文書に基づいて特許請求の範囲へ与えられる解釈が何らかの態様において「明示的定義」及び汎用辞書によって与えられるような最も広い合理的な解釈に基づいて与えられる解釈よりも一層狭い場合には、「明示的定義」及び汎用辞書によって与えられるような最も広い合理的解釈によって与えられる解釈が支配すべきであり、且つ明細書又は優先権文書における用語の矛盾する使用は何らの影響を与えるものではない。
明示的定義
特許請求の範囲において使用される場合には、複数のターゲット「間(among)」で複数のものを「割り当てる(allocating)」ということは、割り当てられるものの数がターゲットの数より一層大きいか又は等しい場合に、各ターゲットがそれに対して指定又は配布される異なるものを有するか、又は割り当てられるものの数がターゲットの数よりも小さい場合には、各ものが異なるターゲットへ配布又は指定されるように、それらのものをターゲットに対して配布又は指定することを意味するべく理解されるべきである。複数のターゲットの「間(among)」で複数のものを「割り当てる(allocating)」として記載されている主体は、必ずしも、その割り当ての一部として動作を実施する唯一の実体ではない。例えば、コンピュータが複数のファイルを1組のノード間で割り当てるものとして定義されている場合には、この割り当てはそこから該ノードによって検索することが可能なキューへ該ファイルを付加することによって実施することが可能である。
特許請求の範囲において使用される場合には、「各々における(at each)」という語句とそれに続く名詞又は名詞句及び1個又はそれ以上のアクションは、該1個又はそれ以上のアクションからの各アクションが該名詞又は名詞句によって表される実体によって実施されるものと理解されるべきである。
特許請求の範囲において使用される場合には、「に基づいて(based on)」とは、それが「基づく(based on)」ものとして表されるものによって少なくとも部分的に何かが決定されることを意味するものとして理解されるべきである。何かが完全に一つのものによって決定される場合には、それはそのもの「に専ら基づく(based EXCLUSIVELY on)」ものとして記載される。
特許請求の範囲において使用される場合には、何らかのオブジェクトを何かが「完全に説明(completely account for)」するという文節は、そのオブジェクトの全てがそれを「完全に説明(completely account for)」する1個又は複数の実体によって達成されるものとして理解されるべきである。例えば、2キロバイトのファイルは、そのファイルの1番目のキロバイトから構成されている1番目の部分とそのファイルの2番目のキロバイトから構成されている2番目の部分とを有する1組の部分によって「完全に説明(completely account for)」される。
特許請求の範囲において使用される場合には、「有する、又は包含する、(comprises)」は含むことを意味するがそれに制限されるものではないことと理解されるべきである。例えば、年の月は1月、7月、及び10月を「有する、又は包含する、(comprising)」ものとして記載することが可能である。同様に、何かが何らかの実体に「包含される(comprised by)」というステートメントは、その実体がそのものを有しておりそれがそれに「包含される(comprised by)」と記載されることを意味すると理解されるべきである。例えば、1月、7月、及び10月は年の月に「包含される(comprised by)」と記載することが可能である。「有する(comprise)」の関係は推移的であることを理解すべきである。例えば、年の月は春の月々を「有して(comprise)」おり且つ春の月々は4月を「有して(comprise)」いるというステートメントは、その年のその月々とは4月を有していることを必然的に暗示している。4月が春の月々に「包含され(comprised by)」且つ春の月々がその年の月々に「包含される(comprised by)」というステートメントは、4月がその年の月々に「包含される(comprised by)」ことを必然的に暗示する。
特許請求の範囲において使用される場合には、「コンピュータ(computer)」は結果を発生するためにデータに関して一つ又はそれ以上の論理的及び/又は物理的な操作を実施することが可能な1個の装置又は複数の装置のグループのことを意味することを理解すべきである。「コンピュータ(computer)」の非制限的な例は、マルチプロセッサ又はマルチコアシステム、サーバー、ラップトップ、デスクトップ、ネットブック、及びノートブックや、携帯電話、パーソナルデジタルアシスタント、及びポータブルゲームコンソール等のハンドヘルド型装置を包含する。
特許請求の範囲において使用される場合には、「コンフィギャー、即ち構成され(configured)」は、「構成され(configured)」るものが特定の目的に対して適合され、設計され、又は変更されたことを意味することを理解すべきである。コンピュータの文脈において「構成する(configuring)」ことの1例は、コンピュータが行うように「構成され(configured)」ている特定の動作を実施する場合に使用することが可能な特定のデータ(それは命令を包含する場合がある)データをコンピュータに与えることである。例えば、コンピュータにマイクロソフトのワードをインストールすることは、そのコンピュータがワードプロセッサとして機能することを「構成する(configure)」ことであり、そのことは、オペレーティングシステム、及び種々のペリフェラル(例えば、キーボード、モニター等)などのその他の入力と結合してマイクロソフトのワードに対する命令を使用することによって行うことである。
特許請求の範囲において使用される場合には、或るものが別のものに「指定され(designated as)」ているというステートメントは、そのものがそれが「指定され(designated as)」ているそのものとして取り扱われることを意味するものとして理解すべきである。このことは、或る関数のリターン値を使用するコンピュータプログラミング概念に類似しており、その場合に、関数FOOを実施することによって得られるリターン値がその結果として指定されているというステートメントは、概ね、プログラミングコマンドRESULT=FOO()と等価である。
特許請求の範囲において使用される場合には、何かを「決定する(determine)」ことは「決定する(determine)」ことを発生するか、選択するか、又はそうでなければ特定することの動作のことを意味するものと理解すべきである。例えば、解析の結果として出力を得ることは、その出力を「決定する(determine)」ことの1例である。2番目の例として、複数の可能な応答のリストから一つの応答を選択することは、応答を「決定する(determine)」ことの一つの方法である。
特許請求の範囲において使用される場合には、「各々に対し(for each)」という語句とそれに続く名詞又は名詞句は、その名詞又は名詞句に続く一つ又は複数のステートメントが該名詞又は名詞句によって言及される各実体に対して適用することを意味すべきである。例えば、基本方位によって包含される各方向に対して、その方向に対応する祈る人がいるというステートメントは、北に対応する祈る人と、東に対応する祈る人と、南に対応する祈る人と、西に対応する祈る人とがいることを意味することを理解すべきである。この「各々に対し(for each)」構造は、特定されたオブジェクトに対して適用されることを記載するものであって、付加的な順番付け又は構成を必ずしも暗示するものではない。例えば、アルファベットの最初の4文字に包含される「各々に対し(for each)」ての文字で1枚の用紙がその文字からなる3つのコピーを持っているというステートメントは、「abcdabcdabcd」が書かれた1枚の用紙の場合に成立し、且つ「aaabbbcccddd」が書かれた1枚の用紙の場合にも成立する。
特許請求の範囲において使用される場合には、「機能的に派生された値(functionally derived value)」は、それから派生が行われる情報に関して1つ又はそれ以上の数学的又は論理的演算を行うことによって得られる値である。「機能的に派生された値(functionally derived value)」の例はハッシュ値及びチェックサムを包含している。
特許請求の範囲において使用される場合には、「インターフレーム(interframe)」は少なくとも部分的に他のフレームに依存する態様でエンコードされるフレームを意味するものとして理解されるべきである。
特許請求の範囲において使用される場合には、「キーフレーム(keyframe)」は他のフレームとは独立的にエンコードされるフレームであると理解されるべきである。
特許請求の範囲において使用される場合には、或るファイル等の何らかのデータがコンピュータに対して「ローカル(local)」であるというステートメントは、そのコンピュータがワイドエリアネットワーク又はスニーカーネット(sneakernet)を使用すること無しにデータへアクセスすることが可能であることを意味することを理解すべきである。
特許請求の範囲において使用される場合には、「データの最適化したシリアル化を転送する手段(means for transfer optimized serializing of data)」という語句は米国特許法第112条(f)に与えられている様な手段+機能制限(means plus function limitation)として理解すべきであり、その場合に、その機能は「データの最適化したシリアル化を転送(transfer optimized serializing of data)」することであり、それに対応する構造は図2−4及び7に例示されており且つ図6b−6cに示した如きデータを格納するファイルを作成する文脈において説明したようなプロセス、並びに対応する開示に記載されているこれらのプロセスに関する変形例を実施すべく構成されているコンピュータである。
特許請求の範囲において使用される場合には、「ノード(node)」という用語は処理位置を意味することを理解すべきである。「ノード(node)」の例は、コンピュータ、及びバーチャルコンピュータを包含している。
特許請求の範囲において使用される場合には、「非一時的なコンピュータ読取可能媒体(non-transitory computer readable medium)」はコンピュータによって検索及び/処理することが可能な形式でデータ又は命令を格納することが可能な任意のオブジェクト、物質、又は複数のオブジェクト又は複数の物質の結合のことを意味することを理解すべきである。ハードディスク、リードオンリメモリ、ランダムアクセスメモリ、ソリッドステートメモリ要素、オプチカルディスク、及びレジスタなどのコンピュータメモリは「非一時的なコンピュータ読取可能媒体(non-transitory computer readable medium)」の例である。しかしながら、疑いを回避するために、「非一時的なコンピュータ読取可能媒体(non-transitory computer readable medium)」は伝播する信号等の一過性の伝送を包含するものとして理解すべきではない。
特許請求の範囲において使用される場合には、一つの値「として(as)」何らかのデータ「で(with)」特定したプロセスを「実施する(performing)」という語句は、引数で或る関数を呼び出すことのコンピュータプログラミング概念に類似したものとして理解すべきである。例えば、「入力体重として500及び入力身長として1でBMI計算プロセスを実施する(performing a BMI calculation process with 500 as an input weight and 1 as an input height)」は、calculalteBMI(500, 1)を呼び出すことに類似しているものとして理解すべきである。同様に、特定したプロセスからの複数のステップの説明は或る機能の実施に類似したものとして理解すべきである。例えば、「BMI計算プロセスを実施することは、入力身長を平方することによって分母を計算し、且つ入力体重を該分母で割り算してリターンBMIを決定する、ことを包含している(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)」というステートメントは表5に記載されるコードセットと等価である。
Figure 2016514393
この等価性のために、「入力体重が500で入力身長が1でBMI計算プロセスを実施して得られるリターンBMIを第1BMIとして指定することによって第1BMIを決定する(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)」ステップ及び「入力体重が100で入力身長が3でBMI計算プロセスを実施して得られるリターンBMIを第2BMIとして指定することによって第2BMIを決定する(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)」ステップを包含する方法は、第1BMIが第2BMIと異なる結果を発生することとなり、それは丁度calculateBMI(500,1)に対するコール(call)がcalculateBMI(100,3)に対するコールと異なるリターン値となることと同じである。
特許請求の範囲において使用される場合には、「部分(portion)」という用語は或るもののセクション又は一部を意味するものとして理解すべきである。「部分(portion)」という用語はそのもの自身を意味する場合(即ち、この場合の「部分(portion)」は全体に対応する)があることを理解すべきである。
特許請求の範囲において使用される場合には、何かを「提供する、与える、(providing)」ということは、そのものが「提供される(provided)」ものに対して利用可能とさせることを意味すると理解すべきである。「提供する、与える、(providing)」ということは、何かを利用可能とさせること(例えば、受信コンピュータへファイル送ること)及び一層複雑な手順とすること(例えば、受信コンピュータへそれから制限された時間の間にファイルを検索することが可能なURLを送ること)の直接的な方法を意味するものと広義に理解されるべきである。
特許請求の範囲において使用される場合には、「サーバ(server)」は、コンピュータと同義語であり且つそれが表れる場合に特許請求の範囲の読み易さを改善するために「コンピュータ(computer)」に優先して使用される用語として理解されるべきである。
特許請求の範囲において使用される場合には、「セット(set)」という用語は、数、グループ、又はゼロ又はそれ以上のものの組合せを意味するものと理解すべきである。
特許請求の範囲において使用される場合には、メモリ又はコンピュータ読み取り可能媒体の文脈において使用される「格納する(storing)」という用語は、「格納される(stored)」ものが、どのように短くとも或る時間期間の間「格納する(storing)」ことを行うものの一つ又はそれ以上の物理的特性(例えば、磁気モーメント、電位、光学的反射性、等)に反映されていることを意味すると理解されるべきである。
特許請求の範囲において使用される場合には、何かに対応する「シグネチャ(signature)」は、それが対応するものを識別するために使用することが可能なデータを意味すると理解されるべきである。ファイルに対応する場合があるシグネチャの例は、これらのファイルに対するハッシュ値(実効的にユニークであるファイルに対する識別を与える)、及びこれらのファイルに対するチェックサム(それはハッシュ値によって与えられるものほどユニークではないが通常計算し且つ格納することが一層容易である識別を与える)を包含している。
特許請求の範囲において使用される場合には、「サブ・ポーション(sub-portion)」は「部分(portion)」と同義であり且つそれが表れる場合に特許請求の範囲の明瞭性を改善させるために「部分(portion)」に優先して使用される用語として理解されるべきである。
特許請求の範囲において使用される場合には、「サブ・セット(sub-set)」は「セット(set)」と同義であり且つそれが表れる場合に特許請求の範囲の明瞭性を改善させるために「セット(set)」に優先して使用される用語として理解されるべきである。
特許請求の範囲において使用される場合には、「サブ・シグネチャ(sub-signature)」は「シグネチャ(signature)」と同義であり且つそれが表れる場合に特許請求の範囲の明瞭例を改善させるために「シグネチャ(signature)」に優先して使用される用語として解釈されるべきである。

Claims (19)

  1. a.第1コンピュータへ通信可能に接続されているデータベース内にシリアル化した形
    式にある基本組のデータを格納している第1ファイルを格納し、
    b.該第1コンピュータにおいて、該基本組のデータに対して1個以上の変更を行い、
    c.変更された組のデータを第2ファイルへシリアル化し、その場合に該変更された組
    のデータは該1個以上の変更に基づいて該基本組のデータから得られた1組のデー
    タであり、該変更された組のデータをシリアル化することが、
    i.第1シリアル化プロセスであって、該変更された組のデータの複数の部分の各々
    に対して、
    A.該基本組のデータの対応する部分に対する変更が該基本組のデータに対する1
    個以上の変更内に包含されているか否かを決定し、その場合に該基本組のデー
    タの該対応する部分が該変更された組のデータの該部分に対応しており、
    B.該基本組のデータの該対応する部分に対する変更が該基本組のデータに対する
    該1個以上の変更内に包含されていない場合には、該基本組のデータの該対応
    する部分をシリアル化した形式でエンコードする該第1ファイルの一部分と同
    一のデータを該第2ファイル内に付加し、
    C.該基本組のデータの該対応する部分に対する変更が該基本組のデータに対する
    該1個以上の変更内に包含される場合には、該変更された組のデータの該部分
    をシリアル化された形式でエンコードするデータを該第2ファイルへ付加する、
    ことを包含している該第1シリアル化プロセスと、
    ii.第2シリアル化プロセスであって、
    A.該基本組のデータのシリアル化されたバージョンを該第2ファイルへ付加し、
    その場合に該第2ファイルへ付加される該基本組のデータの該シリアル化され
    たバージョンは該基本組のデータが該第1ファイル内に格納されている該シリ
    アル化された形式と同一であり、
    B.該基本組のデータに対する該1個以上の変更を反映している1組の変更情報を
    該第2ファイルへ付加する、
    ことを包含している該第2シリアル化プロセスと、
    からなる1組のシリアル化プロセスから取られた一つのシリアル化プロセスを実施す
    ることを包含している、
    ことを包含している方法。
  2. 該変更された組のデータをシリアル化することが、該第1シリアル化プロセスを実施することを包含している請求項1記載の方法。
  3. a.該変更された組のデータをシリアル化することが該第2シリアル化プロセスを実施することを包含しており、且つ
    b.該第2シリアル化プロセスが該第1ファイルに対応するシグネチャを該第2ファイルへ付加させることを包含している、
    請求項1記載の方法。
  4. a.該第2ファイルを該第1コンピュータから遠隔地に位置されている第2コンピュータへ模写し、
    b.該第2コンピュータにおいて、該第2ファイルの該模写されたコピーから該変更された組のデータを脱シリアル化し、その場合に該第2ファイルの該模写されたコピーから該変更された組のデータを脱シリアル化することが、該第2ファイルの該模写されたコピーから該1組の変更情報において該1個以上の変更を表示させることを包含している、
    ことを包含している請求項3記載の方法。
  5. 該第2コンピュータへ該第2ファイルを模写することが、該基本組のデータの該シリアル化されたバージョンが該第2コンピュータにおいて利用可能であることの決定に基づいて、該1組の変更情報を送給することを包含している請求項4記載の方法。
  6. 該基本組のデータの該シリアル化されたバージョンが該第2コンピュータにおいて利用可能であることの決定が、該基本組のデータから派生されたデータがシリアル化されたファイルが該第2コンピュータにおいて利用可能であることを決定することによってなされる請求項5記載の方法。
  7. 該基本組のデータの該シリアル化されたバージョンが該第2コンピュータにおいて利用可能であることの決定が、該基本組のデータと該第2コンピュータにおいて1個のファイルへシリアル化された1組のデータの両方がそれから派生された先祖組のデータが存在することを決定することを包含している複数のステップを実施することによってなされる請求項5記載の方法。
  8. 該変更された組のデータをシリアル化することが、該第2ファイルに対する複数のブロックサイズ表示を該第2ファイルへ付加することを包含している請求項1記載の方法。
  9. 該第2ファイル用のシグネチャを作成することを包含しており、該第2ファイル用の該シグネチャは複数個のサブ・シグネチャを包含しており、該複数個のサブ・シグネチャは、複数個のブロックサイズ表示の各々に対して、該ブロックサイズ表示に対応する寸法を持った該第2ファイルの一部を識別するサブ・シグネチャを包含している請求項8記載の方法。
  10. 変更した組のデータの転送を容易化させる装置において、
    a.第1ファイルを格納し第1コンピュータと通信可能に接続されているデータベースが
    設けられており、該第1ファイルはシリアル化された形式で基本組のデータを格納し
    ており、
    b.メモリが設けられており、該メモリは該第1コンピュータを使用して該基本組のデー
    タに対してなされた1個以上の変更に基づいて該基本組のデータから得られる変更し
    た組のデータを第2ファイル内にシリアル化させるために該第1コンピュータを構成
    すべく動作可能な1組の命令を格納しており、
    c.該第1コンピュータは、
    i.第1シリアル化プロセスであって、該変更された組のデータの複数の部分の各々に
    対して、
    A.該基本組のデータの対応する部分に対する変更が該基本組のデータに対する該1
    個以上の変更内に包含されているか否かを決定し、その場合に該基本組のデータの
    該対応する部分は該変更された組のデータの該部分に対応しており、
    B.該基本組のデータの該対応する部分に対する変更が該基本組のデータに対する該
    1個以上の変更内に包含されていない場合には、該基本組のデータの該対応する部
    分をシリアル化された形式でエンコードする該第1ファイルの一部と同一のデータ
    を第2ファイルへ付加し、
    C.該基本組のデータの該対応する部分が該基本組のデータに対する該1個以上の変
    更内に包含されている場合には、該変更された組のデータの該部分をエンコードす
    るデータを該第2ファイルへ付加する、
    ことを包含している第1シリアル化プロセスと、
    ii.第2シリアル化プロセスであって、
    A.該基本組のデータのシリアル化されたバージョンを該第2ファイルへ付加し、そ
    の場合に該第2ファイルへ付加される該基本組のデータの該シリアル化されたバー
    ジョンは該基本組のデータが該第1ファイル内に格納される場合の該シリアル化さ
    れた形式と同一であり、
    B.該基本組のデータに対する該1個以上の変更を反映する1組の変更情報を該第2
    ファイルへ付加する、
    ことを包含している第2シリアル化プロセスと、
    からなる1組のシリアル化プロセスから取られる1個のシリアル化プロセスを実施する
    ための1組の命令によって構成されており
    d.ネットワーク接続が設けられており、該ネットワーク接続は該第1コンピュータによってシリアル化されたデータを1個以上の遠隔サイトへ送るべく動作可能である、
    装置。
  11. 該第1コンピュータが該第1シリアル化プロセスを実施する構成とされている請求項10記載の装置。
  12. a.該第1コンピュータが該第1シリアル化プロセスを実施する構成とされており、
    b.該第1シリアル化プロセスが該第1ファイルに対応するシグネチャを該第2ファイルへ付加することを包含している、
    請求項10記載の装置。
  13. 該第1コンピュータから遠隔的に位置されている第1コンピュータが設けられており、該第2コンピュータは該第2ファイルの模写されたコピーから該変更された組のデータを脱シリアル化する構成とされており、該第2ファイルの該模写されたコピーから該変更された組のデータを脱シリアル化することが該第2ファイルの該模写されたコピーから該1組の変更情報において表示される該1個以上の変更を行うことを包含している請求項12記載の装置。
  14. 該第1コンピュータが、該基本組のデータの該シリアル化されたバージョンが該第2コンピュータにおいて利用可能であることの決定に基づいて、該1組の変更情報を該第2コンピュータへ送る構成とされている請求項13記載の装置。
  15. 該第1コンピュータと該第2コンピュータとからなる組から取られる少なくとも1個のコンピュータが、該基本組のデータから派生されたデータがシリアル化された1個のファイルが該第2コンピュータにおいて利用可能であることを決定することによって、該基本組のデータの該シリアル化されたバージョンが該第2コンピュータにおいて利用可能であることを決定する構成とされている請求項14記載の装置。
  16. 該第1コンピュータと該第2コンピュータとからなる組から取られる少なくとも1個のコンピュータが、該基本組のデータと該第2コンピュータにおいて1個のファイルへシリアル化された1組のデータとの両方がそれから派生された先祖組のデータが存在することを決定することによって、該基本組のデータの該シリアル化されたバージョンが該第2コンピュータにおいて利用可能であることを決定する構成とされている請求項14記載の装置。
  17. 該第1コンピュータが実施すべく構成される該シリアル化プロセスは、複数個のブロックサイズ表示を該第2ファイルへ付加することを包含している請求項10記載の装置。
  18. 該第1コンピュータは該第2ファイルに対するシグネチャを作成する構成とされており、該第2ファイルに対する該シグネチャは複数個のサブ・シグネチャを包含しており、該複数個のサブ・シグネチャは、該複数個のブロックサイズ表示の各々に対して、該ブロックサイズ表示に対応する寸法を持った該第2ファイルの部分を識別するサブ・シグネチャを包含している請求項17記載の装置。
  19. a.データの最適化されたシリアル化を転送する手段、
    b.データの最適化されたシリアル化を転送する該手段へ通信可能に接続されている入力装置、
    を有している装置。
JP2015557992A 2013-02-13 2013-07-05 差分符号化のためのシリアライゼーション Active JP6193406B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361764225P 2013-02-13 2013-02-13
US61/764,225 2013-02-13
PCT/US2013/049448 WO2014126608A1 (en) 2013-02-13 2013-07-05 Serialization for delta encoding

Publications (3)

Publication Number Publication Date
JP2016514393A true JP2016514393A (ja) 2016-05-19
JP2016514393A5 JP2016514393A5 (ja) 2016-08-12
JP6193406B2 JP6193406B2 (ja) 2017-09-06

Family

ID=48795959

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015557992A Active JP6193406B2 (ja) 2013-02-13 2013-07-05 差分符号化のためのシリアライゼーション

Country Status (4)

Country Link
US (2) US8595187B1 (ja)
EP (1) EP2957088B1 (ja)
JP (1) JP6193406B2 (ja)
WO (1) WO2014126608A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2957088B1 (en) 2013-02-13 2018-09-05 Autodesk, Inc. Serialization for delta encoding
US10146752B2 (en) 2014-12-31 2018-12-04 Quantum Metric, LLC Accurate and efficient recording of user experience, GUI changes and user interaction events on a remote web document
EP3323053B1 (en) 2015-07-16 2021-10-20 Quantum Metric, Inc. Document capture using client-based delta encoding with server
EP3255548A1 (en) * 2016-06-09 2017-12-13 Mastercard International Incorporated Method and systems for monitoring changes for a server system
US11468228B2 (en) * 2021-01-28 2022-10-11 Microsoft Technology Licensing, Llc Content frames for productivity applications

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004201144A (ja) * 2002-12-20 2004-07-15 Square Enix Co Ltd データ圧縮方法および装置
JP2004252881A (ja) * 2003-02-21 2004-09-09 Mitsubishi Paper Mills Ltd テキストデータ修正方法
JP2012123785A (ja) * 2010-11-15 2012-06-28 Canon Inc 文書管理装置、文書管理方法、プログラム
US20120246551A1 (en) * 2011-03-21 2012-09-27 Ncr Corporation Updating serialized objects
US20120254133A1 (en) * 2011-03-28 2012-10-04 C/O Pontis, Ltd. Method for binary persistence in a system providing offers to subscribers

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5293600A (en) * 1990-04-06 1994-03-08 International Business Machines Corporation Counter and flux bit locking for very fast shared serialization of shared data objects
US5878414A (en) * 1997-06-06 1999-03-02 International Business Machines Corp. Constructing a transaction serialization order based on parallel or distributed database log files
US8572280B2 (en) * 2004-05-06 2013-10-29 Valve Corporation Method and system for serialization of hierarchically defined objects
US9419801B2 (en) * 2009-05-12 2016-08-16 Infrascale Inc. System and method for transmitting needed portions of a data file between networked computers
US8769290B1 (en) * 2011-02-28 2014-07-01 Google Inc. Providing confidential structured data
US8244831B1 (en) 2011-05-23 2012-08-14 Ilesfay Technology Group, LLC Method for the preemptive creation of binary delta information within a computer network
US8751689B2 (en) * 2011-06-28 2014-06-10 Adobe Systems Incorporated Serialization and distribution of serialized content using socket-based communication
EP2957088B1 (en) 2013-02-13 2018-09-05 Autodesk, Inc. Serialization for delta encoding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004201144A (ja) * 2002-12-20 2004-07-15 Square Enix Co Ltd データ圧縮方法および装置
JP2004252881A (ja) * 2003-02-21 2004-09-09 Mitsubishi Paper Mills Ltd テキストデータ修正方法
JP2012123785A (ja) * 2010-11-15 2012-06-28 Canon Inc 文書管理装置、文書管理方法、プログラム
US20120246551A1 (en) * 2011-03-21 2012-09-27 Ncr Corporation Updating serialized objects
US20120254133A1 (en) * 2011-03-28 2012-10-04 C/O Pontis, Ltd. Method for binary persistence in a system providing offers to subscribers

Also Published As

Publication number Publication date
EP2957088A1 (en) 2015-12-23
US20140229441A1 (en) 2014-08-14
US8595187B1 (en) 2013-11-26
US9659020B2 (en) 2017-05-23
EP2957088B1 (en) 2018-09-05
JP6193406B2 (ja) 2017-09-06
WO2014126608A1 (en) 2014-08-21

Similar Documents

Publication Publication Date Title
US8468291B2 (en) Asynchronous distributed object uploading for replicated content addressable storage clusters
CN102317938B (zh) 用于复制内容可寻址存储集群的异步分布式去重
US8924353B1 (en) Systems and methods for copying database files
US11221992B2 (en) Storing data files in a file system
JP6193406B2 (ja) 差分符号化のためのシリアライゼーション
CN110209735A (zh) 数据库备份方法、数据库备份装置、计算设备和存储介质
JP2006211686A (ja) 画像メタデータを調停するシステムおよび方法
US20030233352A1 (en) Method and apparatus for screening media
US20170220277A1 (en) Terminal device, data management system, and server device
JP4755244B2 (ja) 情報生成方法、情報生成プログラム及び情報生成装置
JP6470126B2 (ja) ファイルバリアントを作成する方法、計算装置、及びプログラム
US9710337B1 (en) Systems and methods for restoring web parts in content management systems
US9111015B1 (en) System and method for generating a point-in-time copy of a subset of a collectively-managed set of data items
CN103970799B (zh) 一种电子文档的生成方法、装置和客户端
US8990265B1 (en) Context-aware durability of file variants
Hugo Constructing online language learning content archives for under-resourced language communities
CN118535535A (zh) 文件管理方法、装置、计算机设备、存储介质和程序产品
JP6648567B2 (ja) データ更新制御装置、データ更新制御方法、及び、データ更新制御プログラム
CN115329743A (zh) 文件管理方法、系统、计算机设备和存储介质
CN117494670A (zh) 用于信息处理的方法、装置、设备和存储介质
CN118395943A (zh) 基于Markdown生成文档的方法、装置、系统和存储介质
JP2013004039A (ja) ファイル管理装置およびその制御方法およびプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160623

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160623

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20160623

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161018

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170308

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170405

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170711

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170809

R150 Certificate of patent or registration of utility model

Ref document number: 6193406

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250