(57)【要約】【課題】ダイジェスト値のコリジョンを簡易な手法により検出し、不一致部分の検出精度を向上させて高信頼化を実現する。【解決手段】ファイル処理装置１において、ファイルを分割したブロックデータのダイジェスト値を用いて、ファイルの不一致部分を検出する際に、連続性判定部１５は、ファイル編集に伴って影響を受ける所定のデータ区間毎に、不一致部分の数が所定の分割数ｍよりも小さい場合、不一致部分以外の一致部分をコリジョン発生部分として検出する。連続化部１６は、コリジョン発生部分を不一致部分に変更する。これにより、ファイル編集に伴って影響を受ける所定のデータ区間内の全てのブロックデータが不一致部分になる。したがって、大容量のファイルデータを比較することなく、コリジョンを検出し排除することができる。【選択図】図２
2011150428.tif 000002
【特許請求の範囲】
【請求項１】
複数のファイルのデータを比較して不一致部分を検出するファイル処理装置において、
前記ファイルのそれぞれについて、前記ファイルにおける処理単位のサイズを示す同期間隔、及び前記同期間隔における先頭位置のタイミングを検出し、同期情報を生成する同期検出部と、
前記ファイルのそれぞれについて、前記同期検出部により生成された同期情報の示す同期間隔及びタイミングに従って、前記ファイルのデータを、所定のデータ区間内で所定のブロックサイズのブロックデータに分割し、前記ファイル内の前記ブロックデータの位置を示す位置情報を生成するブロック化部と、
前記ファイルのそれぞれについて、前記ブロック化部により分割されたブロックデータのダイジェスト値を演算するダイジェスト値演算部と、
前記ダイジェスト値演算部により演算されたダイジェスト値を、前記ブロック化部により生成された同じ位置情報が示す位置毎に比較し、異なるダイジェスト値の位置情報を、前記ファイルの不一致部分の位置情報として出力する比較部と、
前記比較部により出力された不一致部分の位置情報を入力し、前記不一致部分の位置情報に基づいて、前記所定のデータ区間内で不一致部分の連続性を判定し、前記所定のデータ区間内で不一致部分が連続していない一致部分をコリジョン発生部分とし、前記コリジョン発生部分の位置情報及び前記不一致部分の位置情報を出力する連続性判定部と、
前記連続性判定部により出力されたコリジョン発生部分の位置情報及び不一致部分の位置情報を入力し、前記コリジョン発生部分の位置情報を不一致部分の位置情報に変更して不一致部分を連続させ、前記連続させた不一致部分の位置情報を出力する連続化部と、
を備えたことを特徴とするファイル処理装置。
【請求項２】
複数のファイルのデータを比較して不一致部分を検出するファイル処理装置において、
前記ファイルのそれぞれについて、前記ファイルのデータを、所定のブロックサイズのブロックデータに分割し、前記ファイル内の前記ブロックデータの位置を示す位置情報を生成するブロック化部と、
前記ファイルのそれぞれについて、前記ブロック化部により分割されたブロックデータのダイジェスト値を演算するダイジェスト値演算部と、
前記ダイジェスト値演算部により演算されたダイジェスト値を、前記ブロック化部により生成された同じ位置情報が示す位置毎に比較し、異なるダイジェスト値の位置情報を、前記ファイルの不一致部分の位置情報として出力する比較部と、
前記比較部により出力された不一致部分の位置情報を入力し、前記不一致部分の位置情報が示す位置の前後に、前記不一致部分を所定数分広げて連続させ、前記連続させた不一致部分の位置情報を出力する連続化部と、
を備えたことを特徴とするファイル処理装置。
【請求項３】
請求項１に記載のファイル処理装置において、
さらに、前記同期検出部により生成された同期情報が前記ファイルのそれぞれについて同一であると判定した場合、前記所定のデータ区間内におけるファイルのデータをブロックデータに分割する際の所定の分割数に基づいて、ブロックサイズを判定するブロックサイズ判定部を備え、
前記ブロック化部は、前記ファイルのそれぞれについて、前記ファイルのデータを、前記所定のデータ区間内で、前記ブロックサイズ判定部により判定されたブロックサイズのブロックデータに分割し、前記ファイル内における前記ブロックデータの位置を示す位置情報を生成する、ことを特徴とするファイル処理装置。
【請求項４】
請求項２に記載のファイル処理装置において、
さらに、前記ファイルのそれぞれについて、前記ファイルにおける処理単位のサイズを示す同期間隔、及び前記同期間隔における先頭位置のタイミングを検出し、同期情報を生成する同期検出部と、
前記同期検出部により生成された同期情報が前記ファイルのそれぞれについて同一であると判定した場合、前記所定のデータ区間内におけるファイルのデータをブロックデータに分割する際の所定の分割数に基づいて、ブロックサイズを判定するブロックサイズ判定部と、を備え、
前記ブロック化部は、前記ファイルのそれぞれについて、前記ファイルのデータを、前記所定のデータ区間内で、前記ブロックサイズ判定部により判定されたブロックサイズのブロックデータに分割し、前記ファイル内における前記ブロックデータの位置を示す位置情報を生成する、ことを特徴とするファイル処理装置。
【請求項５】
請求項１または２に記載のファイル処理装置において、
さらに、前記比較する複数のファイルのうちの１つのファイルが蓄積され、かつ、前記１つのファイルについてのブロックデータのダイジェスト値及び位置情報が蓄積された記憶部を備え、
前記記憶部に蓄積されたファイルについて処理する前記ブロック化部、ダイジェスト値演算部及び請求項１の同期検出部の代わりにダイジェスト値読み出し部を備え、
前記ダイジェスト値読み出し部は、前記記憶部に蓄積されていない他のファイルについて処理する前記ブロック化部により生成された位置情報に対応するダイジェスト値を、前記記憶部から読み出し、
前記比較部は、前記記憶部に蓄積されていない他のファイルについて処理する前記ダイジェスト値演算部により演算されたダイジェスト値と、前記ダイジェスト値読み出し部により読み出されたダイジェスト値とを、同じ位置情報が示す位置毎に比較し、異なるダイジェスト値の位置情報を、前記ファイルの不一致部分の位置情報として出力する、ことを特徴とするファイル処理装置。
【請求項６】
請求項３または４に記載のファイル処理装置において、
さらに、前記比較する複数のファイルのうちの１つのファイルが蓄積され、かつ、前記１つのファイルについての同期情報、ブロックデータのダイジェスト値及び位置情報が蓄積された記憶部を備え、
前記記憶部に蓄積されたファイルについて処理する前記同期検出部、ブロック化部及びダイジェスト値演算部の代わりにダイジェスト値読み出し部を備え、
前記ダイジェスト値読み出し部は、前記記憶部に蓄積されていない他のファイルについて処理する前記ブロック化部により生成された位置情報に対応するダイジェスト値を、前記記憶部から読み出し、
前記ブロックサイズ判定部は、前記記憶部に蓄積されていない他のファイルについて処理する前記同期検出部により生成された同期情報と、前記記憶部に蓄積されたファイルの同期情報とが同一であると判定した場合、前記ファイルのデータをブロックデータに分割する際の所定の分割数に基づいて、ブロックサイズを判定し、
前記比較部は、前記記憶部に蓄積されていない他のファイルについて処理する前記ダイジェスト値演算部により演算されたダイジェスト値と、前記ダイジェスト値読み出し部により読み出されたダイジェスト値とを、同じ位置情報が示す位置毎に比較し、異なるダイジェスト値の位置情報を、前記ファイルの不一致部分の位置情報として出力する、ことを特徴とするファイル処理装置。
【請求項７】
コンピュータを、請求項１から６までのいずれか一項に記載のファイル処理装置として機能させるためのファイル処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像音声等のファイルの同一性または不一致部分を、ハッシュ値等のダイジェスト値を比較することにより検出するファイル処理装置及びプログラムに関し、特に、不一致部分を精度高く検出する技術に関する。
【背景技術】
【０００２】
従来、放送局では、映像音声の信号処理の高速化及び蓄積容量の増加に伴い、映像音声の信号をデジタルデータとしてファイルで扱うシステムの導入が進められている。このシステムは、映像音声等の大容量ファイルを、複数のファイル記録装置及びファイル処理装置の間で転送して複製し、複製ファイルを生成する。元ファイルを複製して複製ファイルを生成した後、元ファイルを編集した場合、複製ファイルも元ファイルと同様に編集する必要がある。一般に、このような元ファイルと複製ファイルとの間の同期化の処理は、元ファイル及び複製ファイルを用いて行われるのではなく、元ファイル及び複製ファイルの各データから演算されるダイジェスト値を用いて行われる。元ファイル及び複製ファイルは、大容量の実データであり処理負荷が高いのに対し、ダイジェスト値は、小容量のデータであり処理負荷が低いからである。ここで、元ファイル及び複製ファイルが同期しているとは、両ファイルのデータが一致していることをいう。
【０００３】
一般にダイジェスト値は、ＳＨＡ（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ）−１、ＳＨＡ−２、ＭＤ（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  Ａｌｇｏｒｉｔｈｍ）１、ＭＤ２、ＭＤ３、ＭＤ４、ＭＤ５等のハッシュ関数によって生成される。ハッシュ関数を用いるのは、コリジョンの発生確率が低いこと、固定長のダイジェスト値にデータを圧縮できること、ダイジェスト値の分布が一様であること、演算時間が比較的高速であること等があげられる。
【０００４】
ここで、コリジョンとは、異なる２つのデータから同じダイジェスト値が生成されてしまう現象をいう。コリジョンが発生すると、本来は異なるデータであるにもかかわらず同じデータであると判定されてしまうから、編集された元ファイルのデータが複製ファイルに反映されなくなり、結果として、元ファイルと複製ファイルとの間でデータが不一致（非同期）になってしまう。
【０００５】
しかしながら、大容量のファイルの同期化を実現する場合、ハッシュ関数を用いてダイジェスト値を生成し同期化の処理を行う時間が、ダイジェスト値を用いることなく、ファイルを転送及び記録して差分を書き換えて同期化の処理を行う時間よりも大きくなることがあり得る。そこで、ハッシュ関数を用いてダイジェスト値を生成する演算処理の高速化のために、並列処理、アセンブラ化、事前処理、ハードウェア化等の様々な手法が提案されている（特許文献１，２、非特許文献１，２を参照）。
【０００６】
（従来の不一致部分検出手法１）
ところで、ハッシュ関数を用いてダイジェスト値を生成する場合、異なる２つのデータから同じダイジェスト値が生成されてしまうコリジョンは、統計的に起こりえる現象であり、その発生確率は、天文学的数値分の１であり限りなくゼロに近い。このため、ファイル同期化処理を精度高く実現することができる。
【０００７】
図１９は、従来のファイル処理装置の構成を示すブロック図である。このファイル処理装置は、ハッシュ関数を用いてダイジェスト値を生成し、ダイジェスト値が異なる部分を不一致部分として検出する。そして、不一致部分として検出された箇所にデータを上書きすることにより、ファイル＃１，＃２が同期化される。具体的には、２つのファイル＃１，＃２の不一致部分を検出する際に、ファイル＃１，＃２をブロックデータにそれぞれブロック化し、ブロックデータのダイジェスト値をそれぞれ演算して比較し、異なるダイジェスト値を有するブロックデータの部分を、不一致部分として検出する。このファイル処理装置１００は、設定ファイル部１０１、ブロック化部１０２−１，１０２−２、ダイジェスト値演算部１０３−１，１０３−２及び比較部１０４を備えている。
【０００８】
設定ファイル部１０１は記憶手段であり、オペレータにより予め設定されたブロックサイズＮが設定ファイルとして格納されている。ここで、ブロックサイズＮは、ブロック化部１０２−１，１０２−２において、ファイルデータがブロックデータに分割される際の、ブロックデータのサイズ（バイト数）である。
【０００９】
ブロック化部１０２−１は、ファイル＃１データを入力し、設定ファイル部１０１からブロックサイズＮを読み出し、ファイル＃１データをブロックサイズＮのデータ（ブロックデータ）に分割してブロック化し、ブロックデータ及びその位置情報をダイジェスト値演算部１０３−１に出力する。ここで、位置情報は、ファイル＃１データにおけるブロックデータの位置を示す情報であり、例えば、ファイルを構成するフレームの番号及びフレームを構成するブロックの番号である。同様に、ファイルブロック化部１０２−２は、ファイル＃２データを入力し、設定ファイル部１０１からブロックサイズＮを読み出し、ファイル＃２データをブロックサイズＮのブロックデータに分割してブロック化し、ブロックデータ及びその位置情報をダイジェスト値演算部１０３−２に出力する。
【００１０】
ダイジェスト値演算部１０３−１は、ブロック化部１０２−１からブロックデータ及び位置情報を入力し、ブロックデータに対し、ＳＨＡ−１等のハッシュ関数による演算を行ってダイジェスト値を求め、ブロックデータのダイジェスト値及び位置情報を比較部１０４に出力する。同様に、ダイジェスト値演算部１０３−２は、ブロック化部１０２−２からブロックデータ及び位置情報を入力し、ブロックデータに対し、ＳＨＡ−１等のハッシュ関数による演算を行ってダイジェスト値を求め、ブロックデータのダイジェスト値及び位置情報を比較部１０４に出力する。ここで、ダイジェスト値演算部１０３−１，１０３−２は、同じハッシュ関数を用いて演算を行う。
【００１１】
比較部１０４は、ダイジェスト値演算部１０３−１からブロックデータのダイジェスト値及び位置情報を入力すると共に、ダイジェスト値演算部１０３−２からブロックデータのダイジェスト値及び位置情報を入力し、同じ位置情報のダイジェスト値を比較する。比較部１０４は、２つのダイジェスト値が異なるものと判定した場合、その位置情報が示す位置のブロックデータは一致していないとして、その位置のブロックデータを不一致部分として検出する。そして、検出した不一致部分の位置情報を出力する。
【００１２】
ここで、ブロックサイズＮは、設定ファイル部１０１において、比較部１０４にてファイルが比較され、不一致部分が検出される際の検出精度等に応じて設定される。例えば、映像音声ファイルの差分を更新する機能を有するファイル処理装置１００では、１００Ｍｂｐｓの映像符号化データに対して、例えば、ブロックサイズＮ＝１ＭＢ，４ｋＢが設定される。映像編集の最低単位である1フレームのデータ量は約４００ｋＢであるため、ブロックサイズＮ＝１ＭＢの例ではフレームの約２倍の大きさの精度にて差分が検出され、ブロックサイズＮ＝４ｋＢの例ではフレームの１／１００倍の大きさの精度にて差分が検出されることになる。
【００１３】
ブロックサイズＮ＝１ＭＢの例では、高速に複数のファイルを同期化するのが目的である。したがって、ブロックサイズＮ＝１ＭＢは、時間をかけて不一致部分を精度高く検出するよりも、不一致部分が多少多くても少ないデータ量で高速に比較することを優先する場合に設定される。また、ブロックサイズＮ＝４ｋＢの例では、ファイルシステムの工夫によってハードディスク上のファイルの差し替えを高速化するのが目的である。したがって、ブロックサイズＮ＝４ｋＢは、ファイルシステムのデータ単位である４ｋＢ毎に不一致部分を検出する必要がある場合に設定される。
【００１４】
このように、ファイル処理装置１００によれば、ファイル＃１，＃２におけるブロックデータのダイジェスト値を、ハッシュ関数を用いてそれぞれ演算し、ダイジェスト値の異なるブロックデータの位置情報を不一致部分の位置情報として出力するようにした。これにより、ファイル＃１とファイル＃２との間の不一致部分を検出することができ、ファイル同期化処理を実現することができる。
【００１５】
（従来の不一致部分検出手法２）
しかしながら、図１９に示したファイル処理装置１００では、ダイジェスト値のコリジョンの発生確率をゼロにすることはできない。そこで、コリジョンを排除する点に着目した手法も提案されている。具体的には、ダイジェスト値と元ファイルとを記録しておき、ダイジェスト値が異なる箇所を不一致部分とし、さらに、一致部分に対し、元ファイルを用いて比較することにより、コリジョンの発生を検出する。
【００１６】
（従来の不一致部分検出手法３）
また、ハッシュ関数を用いてダイジェスト値を演算し、ダイジェスト値が異なる部分を不一致部分として検出する際の安全性の観点から、コリジョンの発生を低下させるために、ビット長の長いハッシュ関数を用いる手法、及び標準化した新しいハッシュ関数を用いる手法が提案されている（非特許文献３を参照）。さらに、コリジョンの発生を低下させるために、複数のダイジェスト値を用いることにより、階層的に高信頼化を実現する手法も提案されている（非特許文献４を参照）。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開２００５−２０８４００号公報
【特許文献２】特開２００９−２３０５２３号公報
【非特許文献】
【００１８】
【非特許文献１】松井充、“暗号アルゴリズムの最新動向  −安全性と実装性の現状と課題−”、［online］、平成１８年１２月７日、［平成２１年１２月１７日検索］、インターネット＜ＵＲＬ：http://www.soi.wide.ad.jp/class/20060031/slides/41/index_1.html＞、スライド４７，４８
【非特許文献２】Yong Ki Lee、他２名、“Design Methodology for Throughput Optimum Architectures of Hash Algorithms of the MD4-class”、 ［online］、［平成２１年１２月１７日検索］、インターネット＜ＵＲＬ：http://www.cosic.esat.kuleuven.be/publications/article-1031.pdf＞
【非特許文献３】“CRYPTOGRAPHIC HASH PROJECT”、［online］、ＮＩＳＴ、［平成２１年１２月１７日検索］、インターネット＜ＵＲＬ：http://csrc.nist.gov/groups/ST/hash/index.html ＞
【非特許文献４】“暗号学的ハッシュ関数”、［online］、平成２１年９月１９日、フリー百科辞典「ウィキペディア（Ｗｉｋｉｐｅｄｉａ）、［平成２１年１２月１７日検索］、インターネット＜ＵＲＬ：http://ja.wikipedia.org/wiki/暗号学的ハッシュ関数＞
【発明の概要】
【発明が解決しようとする課題】
【００１９】
前述した従来の不一致部分検出手法１は、ハッシュ関数を用いてダイジェスト値を演算し、ダイジェスト値を比較することにより、ダイジェスト値が異なる部分を不一致部分として検出するものである。したがって、この手法によるファイル同期化処理の安全性は、ハッシュ関数を用いた場合のコリジョン発生確率の低さに依存する。
【００２０】
しかしながら、ハッシュ関数を用いた場合のコリジョン発生確率はゼロではない。このため、ゼロでないハッシュ関数を用いる限り、コリジョンの発生は避けることができず、本来は不一致であるブロックデータであるにもかかわらず、一致しているものとして誤検出する可能性があった。この場合、高い信頼性が要求される用途、例えば、正確性が絶対使命である放送局における用途では、番組内容を検査したり比較したりする際にコリジョンが発生すると、番組内容がエラーとなるから、安全性及び信頼性の観点から、ハッシュ関数を用いてダイジェスト値を演算する処理をそのまま使用することができないという問題があった。
【００２１】
ちなみに、ＳＨＡ−１のハッシュ関数を用いた場合、１６０ビットのダイジェスト値が生成されるから、ダイジェスト値としては２１６０の空間を有することになる。この空間に相当するブロックデータからなる番組ファイルの数は、ファイルを１ＭＢ毎にブロックデータに分割した場合で概算すると、１００Ｍｂｐｓの６０分番組の２４時間×５メディア分を１年分の番組数として、１億の５乗年分になる。したがって、コリジョンの発生は天文学的に低い確率となる。実際のところ、ＳＨＡ−１のハッシュ関数を用いた場合のコリジョン発生例は未だに報告されていないが、コリジョンが発生する可能性はある。これに対し、ＭＤ−５のハッシュ関数を用いた場合のコリジョン発生例は報告されている。
【００２２】
また、前述した従来の不一致部分検出手法２は、不一致部分検出手法１において、ダイジェスト値のコリジョン発生確率をゼロにすることができないという問題を解決するために、ダイジェスト値が異なる部分を不一致部分とし、さらに、一致部分について、ダイジェスト値を用いることなく元ファイルを用いて比較することにより、コリジョンの発生を検出する。しかしながら、この手法では、コリジョンの発生を検出するためにファイルデータを用いるから、大容量のデータを保持して処理する必要があり、処理が複雑になって処理負荷が高くなるという問題があった。また、データを比較するのに時間がかかるという問題もあった。
【００２３】
また、前述した従来の不一致部分検出手法３は、ビット長の長いハッシュ関数、標準化した新しいハッシュ関数を用いてコリジョンの発生を低下させるものであり、階層的に複数のダイジェスト値を用いて、コリジョンの発生を低下させるものである。しかしながら、これらの手法では、データ量が増加し、演算時間が増加するという問題があった。
【００２４】
そこで、本発明はかかる問題を解決するためになされたものであり、その目的は、ファイルを分割したブロックデータのダイジェスト値を用いて、２つのファイルの不一致部分を検出するファイル処理装置において、ダイジェスト値のコリジョンを簡易な手法により検出し、不一致部分の検出精度を向上させて高信頼化を実現可能なファイル処理装置及びプログラムを提供することにある。
【課題を解決するための手段】
【００２５】
上記目的を達成するために、本発明による請求項１のファイル処理装置は、複数のファイルのデータを比較して不一致部分を検出するファイル処理装置において、前記ファイルのそれぞれについて、前記ファイルにおける処理単位のサイズを示す同期間隔、及び前記同期間隔における先頭位置のタイミングを検出し、同期情報を生成する同期検出部と、前記ファイルのそれぞれについて、前記同期検出部により生成された同期情報の示す同期間隔及びタイミングに従って、前記ファイルのデータを、所定のデータ区間内で所定のブロックサイズのブロックデータに分割し、前記ファイル内の前記ブロックデータの位置を示す位置情報を生成するブロック化部と、前記ファイルのそれぞれについて、前記ブロック化部により分割されたブロックデータのダイジェスト値を演算するダイジェスト値演算部と、前記ダイジェスト値演算部により演算されたダイジェスト値を、前記ブロック化部により生成された同じ位置情報が示す位置毎に比較し、異なるダイジェスト値の位置情報を、前記ファイルの不一致部分の位置情報として出力する比較部と、前記比較部により出力された不一致部分の位置情報を入力し、前記不一致部分の位置情報に基づいて、前記所定のデータ区間内で不一致部分の連続性を判定し、前記所定のデータ区間内で不一致部分が連続していない一致部分をコリジョン発生部分とし、前記コリジョン発生部分の位置情報及び前記不一致部分の位置情報を出力する連続性判定部と、前記連続性判定部により出力されたコリジョン発生部分の位置情報及び不一致部分の位置情報を入力し、前記コリジョン発生部分の位置情報を不一致部分の位置情報に変更して不一致部分を連続させ、前記連続させた不一致部分の位置情報を出力する連続化部と、を備えたことを特徴とする。
【００２６】
また、本発明による請求項２のファイル処理装置は、複数のファイルのデータを比較して不一致部分を検出するファイル処理装置において、前記ファイルのそれぞれについて、前記ファイルのデータを、所定のブロックサイズのブロックデータに分割し、前記ファイル内の前記ブロックデータの位置を示す位置情報を生成するブロック化部と、前記ファイルのそれぞれについて、前記ブロック化部により分割されたブロックデータのダイジェスト値を演算するダイジェスト値演算部と、前記ダイジェスト値演算部により演算されたダイジェスト値を、前記ブロック化部により生成された同じ位置情報が示す位置毎に比較し、異なるダイジェスト値の位置情報を、前記ファイルの不一致部分の位置情報として出力する比較部と、前記比較部により出力された不一致部分の位置情報を入力し、前記不一致部分の位置情報が示す位置の前後に、前記不一致部分を所定数分広げて連続させ、前記連続させた不一致部分の位置情報を出力する連続化部と、を備えたことを特徴とする。
【００２７】
また、本発明による請求項３のファイル処理装置は、請求項１に記載のファイル処理装置において、さらに、前記同期検出部により生成された同期情報が前記ファイルのそれぞれについて同一であると判定した場合、前記所定のデータ区間内におけるファイルのデータをブロックデータに分割する際の所定の分割数に基づいて、ブロックサイズを判定するブロックサイズ判定部を備え、前記ブロック化部が、前記ファイルのそれぞれについて、前記ファイルのデータを、前記所定のデータ区間内で、前記ブロックサイズ判定部により判定されたブロックサイズのブロックデータに分割し、前記ファイル内における前記ブロックデータの位置を示す位置情報を生成する、ことを特徴とする。
【００２８】
また、本発明による請求項４のファイル処理装置は、請求項２に記載のファイル処理装置において、さらに、前記ファイルのそれぞれについて、前記ファイルにおける処理単位のサイズを示す同期間隔、及び前記同期間隔における先頭位置のタイミングを検出し、同期情報を生成する同期検出部と、前記同期検出部により生成された同期情報が前記ファイルのそれぞれについて同一であると判定した場合、前記所定のデータ区間内におけるファイルのデータをブロックデータに分割する際の所定の分割数に基づいて、ブロックサイズを判定するブロックサイズ判定部と、を備え、前記ブロック化部が、前記ファイルのそれぞれについて、前記ファイルのデータを、前記所定のデータ区間内で、前記ブロックサイズ判定部により判定されたブロックサイズのブロックデータに分割し、前記ファイル内における前記ブロックデータの位置を示す位置情報を生成する、ことを特徴とする。
【００２９】
また、本発明による請求項５のファイル処理装置は、請求項１または２に記載のファイル処理装置において、さらに、前記比較する複数のファイルのうちの１つのファイルが蓄積され、かつ、前記１つのファイルについてのブロックデータのダイジェスト値及び位置情報が蓄積された記憶部を備え、前記記憶部に蓄積されたファイルについて処理する前記ブロック化部、ダイジェスト値演算部及び請求項１の同期検出部の代わりにダイジェスト値読み出し部を備え、前記ダイジェスト値読み出し部が、前記記憶部に蓄積されていない他のファイルについて処理する前記ブロック化部により生成された位置情報に対応するダイジェスト値を、前記記憶部から読み出し、前記比較部が、前記記憶部に蓄積されていない他のファイルについて処理する前記ダイジェスト値演算部により演算されたダイジェスト値と、前記ダイジェスト値読み出し部により読み出されたダイジェスト値とを、同じ位置情報が示す位置毎に比較し、異なるダイジェスト値の位置情報を、前記ファイルの不一致部分の位置情報として出力する、ことを特徴とする。
【００３０】
また、本発明による請求項６のファイル処理装置は、請求項３または４に記載のファイル処理装置において、さらに、前記比較する複数のファイルのうちの１つのファイルが蓄積され、かつ、前記１つのファイルについての同期情報、ブロックデータのダイジェスト値及び位置情報が蓄積された記憶部を備え、前記記憶部に蓄積されたファイルについて処理する前記同期検出部、ブロック化部及びダイジェスト値演算部の代わりにダイジェスト値読み出し部を備え、前記ダイジェスト値読み出し部が、前記記憶部に蓄積されていない他のファイルについて処理する前記ブロック化部により生成された位置情報に対応するダイジェスト値を、前記記憶部から読み出し、前記ブロックサイズ判定部が、前記記憶部に蓄積されていない他のファイルについて処理する前記同期検出部により生成された同期情報と、前記記憶部に蓄積されたファイルの同期情報とが同一であると判定した場合、前記ファイルのデータをブロックデータに分割する際の所定の分割数に基づいて、ブロックサイズを判定し、前記比較部が、前記記憶部に蓄積されていない他のファイルについて処理する前記ダイジェスト値演算部により演算されたダイジェスト値と、前記ダイジェスト値読み出し部により読み出されたダイジェスト値とを、同じ位置情報が示す位置毎に比較し、異なるダイジェスト値の位置情報を、前記ファイルの不一致部分の位置情報として出力する、ことを特徴とする。
【００３１】
さらに、本発明によるファイル処理プログラムは、コンピュータを、請求項１から６までのいずれか一項に記載のファイル処理装置として機能させることを特徴とする。
【発明の効果】
【００３２】
以上のように、本発明によれば、ファイルを分割したブロックデータのダイジェスト値を用いて、２つのファイルの不一致部分を検出し、ファイル編集の単位を基準にして不一致部分の連続性を判定することにより、または不一致部分を拡大することにより、ダイジェスト値のコリジョンを検出し排除するようにした。これにより、大容量のファイルデータを比較することなく、簡易な手法によりコリジョンを検出することができる。また、２つのファイルの不一致部分を一致部分であるとして誤って判定することがなくなる。つまり、不一致部分の検出精度を向上させ、高信頼化を実現することができる。
【図面の簡単な説明】
【００３３】
【図１】本発明の実施形態によるファイル処理装置を含む全体システムの構成を示す図である。
【図２】本発明の第１の実施形態（実施例１）によるファイル処理装置の構成を示すブロック図である。
【図３】連続性判定部の処理を示すフローチャートである。
【図４】分割数ｍ＝２、定数Ｘ＝１の場合において、同期しているブロックデータの不一致部分及びコリジョン発生部分を説明する図である。
【図５】分割数ｍ＝１．５、定数Ｘ＝１の場合において、同期しているブロックデータの不一致部分及びコリジョン発生部分を説明する図である。
【図６】本発明の第２の実施形態（実施例２）によるファイル処理装置の構成を示すブロック図である。
【図７】連続化部の処理を示すフローチャートである。
【図８】分割数ｍ＝１．５、定数Ｘ＝１、及び、フレームとブロックデータを同期させることなくブロック化を行い、不一致部分の前後１ブロックをコリジョン排除の対象（排除コリジョン数ｎ＝１）とした場合を説明する図である。
【図９】分割数ｍ＝１．５、定数Ｘ＝１、及び、フレームとブロックデータとを同期させることなくブロック化を行い、不一致部分の前後２ブロックをコリジョン排除の対象（排除コリジョン数ｎ＝２）とした場合を説明する図である。
【図１０】本発明の第３の実施形態（実施例３）によるファイル処理装置の構成を示すブロック図である。
【図１１】ブロックサイズ判定部の処理を示すフローチャートである。
【図１２】本発明の第４の実施形態（実施例４）によるファイル処理装置の構成を示すブロック図である。
【図１３】本発明の第５の実施形態（実施例５）によるファイル処理装置の構成を示すブロック図である。
【図１４】本発明の第６の実施形態（実施例６）によるファイル処理装置の構成を示すブロック図である。
【図１５】本発明の第７の実施形態（実施例７）によるファイル処理装置の構成を示すブロック図である。
【図１６】本発明の第８の実施形態（実施例８）によるファイル処理装置の構成を示すブロック図である。
【図１７】映像音声ファイルの種類と編集単位との関係を説明する図である。
【図１８】ＭＸＦファイルのフォーマットを説明する図である。
【図１９】従来のファイル処理装置の構成を示すブロック図である。
【発明を実施するための形態】
【００３４】
以下、本発明を実施するための最良の形態について、図面を参照して説明する。本発明は、元ファイルとそれが編集されたファイル（編集ファイル）との間の不一致部分を検出する際に、これらのファイルデータを用いることなく、ダイジェスト値を用いるものである。ダイジェスト値を用いて不一致部分を検出する場合、ダイジェスト値のコリジョンが発生する可能性がある。そこで、本発明では、ファイルの編集に伴って、１フレームを構成する複数のブロックデータの全てが本来的に不一致になるにもかかわらず、その一部が一致になるという通常あり得ない状態を判定し、その一致部分をコリジョン発生部分として検出し排除することを特徴とする。具体的には、ダイジェスト値を比較して検出したブロックデータの不一致部分の長さ（連続性）が、ファイルの編集単位である所定数以下である場合は、あり得ない状態であると判定する。
【００３５】
一般に、ファイルの編集はフレーム単位で行われるから、不一致部分はフレーム単位で検出される。つまり、編集されたファイルのフレームを構成する複数のブロックデータは、その全てが不一致部分となり、不一致部分の位置は、フレーム内において連続したものとなる。しかしながら、編集されたファイルのフレームを構成する複数のブロックデータのうち、不一致部分でない一致部分が検出される場合があり得る。本発明では、この一致部分をコリジョン発生部分として扱い、不一致部分に変更する。すなわち、本発明は、ファイルを分割したブロックデータのダイジェスト値を比較することにより、２つのファイルの不一致部分を検出し、その不一致部分の位置に基づいてコリジョンを検出し、検出したコリジョンを排除する。これにより、大容量の元ファイルのデータを用いることなく、簡易な手法によりコリジョンによる不一致部分の検出漏れをなくすことができ、不一致部分の検出精度を向上させて高信頼化を実現することができる。
【００３６】
以下に説明する実施例１〜４は、２つのファイルに対して、ファイルを分割したブロックデータのダイジェスト値をそれぞれ演算して比較し、不一致部分を検出し、コリジョンを検出して排除する。実施例５〜８は、２つのファイルのうち１つのファイルについてのダイジェスト値が、予め演算され記憶されている場合に、他の１つのファイルに対してダイジェスト値を演算し、記憶されたダイジェスト値と比較し、不一致部分を検出し、コリジョンを検出して排除する。
【００３７】
また、実施例１，２，５，６は、比較する２つのファイルにおいて、ファイルデータの処理単位を示すフレームサイズ（同期間隔）が一定であり、かつ一致している場合の例である。対象ファイルは、例えば、固定レートの映像音声ファイルである。実施例３，４，７，８は、比較する２つのファイルにおいて、ファイルデータの処理単位を示すフレームサイズ（同期間隔）が変化する場合の例である。対象ファイルは、例えば、可変レートの映像音声ファイルである。
【００３８】
また、実施例１，３，５，７は、フレームとブロックデータとが同期しており、ダイジェスト値が異なるブロックデータの部分を不一致部分とし、不一致部分の連続性を判定し、コリジョンを検出して排除する。実施例２，４，６，８は、フレームとブロックデータとが同期しておらず、ダイジェスト値が異なるブロックデータの部分を不一致部分とし、不一致部分の近傍をコリジョンが発生した部分であると推定し、推定したコリジョンを排除する。
【００３９】
〔全体システム〕
まず、本発明の実施形態によるファイル処理装置を含む全体システムについて説明する。図１は、全体システムの構成を示す図である。このシステムは、元ファイルを格納するファイル処理装置１〜８、元ファイルを編集する編集装置９０、及び、複製ファイルを格納するサーバ９１−１，９１−２，・・・を備えて構成される。編集装置９０において元ファイルが編集された場合、ファイル処理装置１〜８に格納される元ファイルと、サーバ９１−１，９１−２，・・・に格納される複製ファイルとが常に同一になるように、所定の処理を行う。ファイル処理装置１〜８と編集装置９０とは、インターネットまたはイントラネット等の通信ネットワークにより接続され、同様に、ファイル処理装置１〜８とサーバ９１−１，９１−２，・・・とは、インターネットまたはイントラネット等の通信ネットワークにより接続される。
【００４０】
ファイル処理装置１〜８は、映像音声等のファイルを元ファイルとして記憶手段に格納しており、編集装置９０によるファイル編集処理に先立って、元ファイルを編集装置９０へ送信する。また、ファイル処理装置１〜８は、編集装置９０によるファイル編集処理の後、編集装置９０から編集ファイルを受信し、元ファイルと編集ファイルとの間の不一致部分を、ハッシュ関数等の所定の関数または演算式から演算したダイジェスト値に基づいて検出し、編集ファイルのデータのうち不一致部分のデータを編集データとしてサーバ９１−１，９１−２，・・・へ送信すると共に、不一致部分の位置情報をサーバ９１−１，９１−２，・・・へ送信する。また、ファイル処理装置１〜８は、編集装置９０から受信した編集ファイルを元ファイルとして記憶手段に格納する。
【００４１】
編集装置９０は、ファイル処理装置１〜８から元ファイルを受信し、元ファイルに対し、オペレータによるマウス、キーボード等の入力操作に従って編集を行い、編集ファイルを生成する。また、編集装置９０は、編集ファイルをファイル処理装置１〜８へ送信する。
【００４２】
サーバ９１−１，９１−２，・・・は、ファイル処理装置１〜８から編集データ及び位置情報を受信し、記憶手段に格納された複製ファイルに対し、位置情報が示す領域に編集データを上書きする。これにより、ファイル処理装置１〜８に格納された元ファイルと、サーバ９１−１，９１−２，・・・に格納された複製ファイルとが同一になる。
【００４３】
以下、図１に示したシステムのファイル処理装置１〜８について、実施例１〜８に分けてそれぞれ詳細に説明する。
【実施例１】
【００４４】
まず、実施例１について詳細に説明する。実施例１のファイル処理装置１は、比較する２つのファイルのフレームサイズ（同期間隔）が一定及び一致しており、フレームとブロックデータとが同期している場合において、ファイルの不一致部分を検出する装置である。具体的には、ファイル処理装置１は、２つのファイルに対し、ファイルを分割したブロックデータのダイジェスト値をそれぞれ演算して比較し、ダイジェスト値が異なるブロックデータの部分を不一致部分として検出する。そして、ファイル処理装置１は、検出した不一致部分の連続性を判定し、連続すべき不一致部分に一致部分が含まれる場合、この一致部分をコリジョン発生部分とし、コリジョン発生部分を不一致部分に変更することにより、コリジョンを排除する。比較する２つのファイルは、図１の例では、元ファイル及び編集ファイルである。後述する実施例２〜８についても同じ。
【００４５】
図２は、実施例１によるファイル処理装置１の構成を示すブロック図である。このファイル処理装置１は、設定ファイル部１０、同期検出部１１−１，１１−２、ブロック化部１２−１，１２−２、ダイジェスト値演算部１３−１，１３−２、比較部１４、連続性判定部１５及び連続化部１６を備えている。
【００４６】
設定ファイル部１０は記憶手段であり、オペレータにより予め設定されたブロックサイズＮ及び分割数ｍが設定ファイルとして格納されている。ここで、ブロックサイズＮは、前述したとおり、ブロック化部１２−１，１２−２において、フレームサイズを示す同期間隔またはその同期間隔の整数倍（Ｘ倍）のデータ（１つのフレームまたは複数のフレーム）がブロックデータに分割される際の、ブロックデータのサイズ（バイト数）である。分割数ｍは、同期間隔またはその同期間隔の整数倍（Ｘ倍）のデータ（１つのフレームまたは複数のフレーム）がブロックデータに分割される際の、ブロックデータの数である。
【００４７】
同期検出部１１−１は、ファイル＃１データ（編集ファイルのデータ）を入力し、１つのフレームまたは複数フレームを処理単位とした場合のフレームサイズを示す同期間隔、及びその同期間隔の先頭位置のタイミングを検出し、同期情報を生成してブロック化部１２−１に出力する。同様に、同期検出部１１−２は、ファイル＃２データ（元ファイルのデータ）を入力し、同期間隔及び処理のタイミングを検出し、同期情報を生成してブロック化部１２−２に出力する。
【００４８】
ここで、同期検出部１１−１，１１−２について詳細に説明する。本実施例１〜８が対象とする映像音声ファイルには、非圧縮データのファイル及び圧縮データのファイルの２種類がある。非圧縮データのファイルは、撮像された映像データ及び録音された音声データがそのままファイル化されたものである。修正、加工等の編集処理は、画面単位、すなわちフレーム単位で行われ、通常、映像信号には、ライン及びフレームの先頭を示すためのヘッダー情報が用いられている。
【００４９】
したがって、映像音声ファイルが非圧縮データの場合、同期検出部１１−１，１１−２は、ヘッダー情報からラインまたはフレームの先頭を検出し、フレームサイズを示す同期間隔、及びその同期間隔の先頭位置のタイミングを検出する。このように、編集処理の単位であるフレームは、ヘッダー情報に基づいて容易に検出することができ、同期情報を容易に生成することができる。
【００５０】
一方、圧縮データのファイルは、様々な手段によりデータの冗長性を取り除いてデータ量が減らされ、ファイル化されたものであり、映像音声ファイルの場合、ＭＰＥＧ−２、ＪＰＥＧ、Ｗａｖｅｌｅｔ、Ｈ．２６４等の規格のファイルが実用化されている。これらの圧縮データにおいても、映像データ及び音声データは、フレームまたは複数フレームとしてまとめて扱われ、映像信号には、フレームまたは複数フレームの先頭を示すためのヘッダー情報が用いられている。
【００５１】
したがって、映像音声ファイルが圧縮データの場合、非圧縮データの場合と同様に、同期検出部１１−１，１１−２は、ヘッダー情報からフレームまたは複数フレームの先頭を検出し、フレームサイズを示す同期間隔、及びその同期間隔の先頭位置のタイミングを検出する。
【００５２】
例えば、ＭＰＥＧ−２の映像音声ファイルには、編集用途を考慮したＩ−ｏｎｌｙのファイル、及び圧縮率の高いｌｏｎｇ−ＧＯＰのファイルがある。さらに、Ｉ−ｏｎｌｙのファイルには、固定レート（ＣＢＲ）のファイル及び可変レート（ＶＢＲ）のファイルがある。固定レート（ＣＢＲ）のファイルの場合、データ量が一定であるから、フレームの先頭が固定周期となり、非圧縮データのファイルと同様に扱うことができる。これに対し、可変レート（ＶＢＲ）のファイルの場合、映像音声の情報量に応じてデータ量が変化するから、フレームの周期が変動することなり、非圧縮データのファイルと同様に扱うことができない。
【００５３】
また、Ｉ−ｏｎｌｙのファイルの場合、フレーム内でデータが圧縮され符号化が行われるから、同期検出部１１−１，１１−２は、ヘッダー情報からフレームの先頭を検出することができ、フレーム単位でデータを扱うことができる。これに対し、ｌｏｎｇ−ＧＯＰのファイルの場合、複数フレームを集めたＧＯＰの単位で符号化が行われるから、同期検出部１１−１，１１−２は、ヘッダー情報からＧＯＰの先頭を検出することができ、ＧＯＰ単位でデータを扱うことができる。また、ヘッダー情報を解読して演算することにより、ＧＯＰを構成する各フレームの先頭を求めることもできる。しかしながら、ｌｏｎｇ−ＧＯＰでは、本来、複数フレーム内でデータ処理され圧縮されるから、圧縮データをフレーム単位で処理したとしても、他のフレームとの間で符号化処理の連続性及び一貫性を保つためには再符号化が必要となる。そこで、ここでは、修正、加工等の編集処理はＧＯＰ単位の場合を対象とする。
【００５４】
図１７は、映像音声ファイルの種類と編集単位との関係を説明する図である。図１７において、非圧縮データからなる固定レート（ＣＢＲ）のファイルの場合、フレーム毎に編集が行われ、同期検出部１１−１，１１−２は、ヘッダー情報からフレームを検出し同期情報を生成する。また、非圧縮データからなる可変レート（ＶＢＲ）のファイルの場合、フレーム毎に編集が行われ、後述する実施例３の同期検出部３０−１，３０−２等は、ヘッダー情報からフレームを検出し同期情報を生成する。また、ＭＰＥＧ−２のＩ−ｏｎｌｙの圧縮データからなる固定レート（ＣＢＲ）及び可変レート（ＶＢＲ）のファイルの場合も、非圧縮データの場合と同様に、フレーム毎に編集が行われる。また、ＭＰＥＧ−２のｌｏｎｇ−ＧＯＰの圧縮データからなる可変レート（ＶＢＲ）のファイルの場合、ＧＯＰ毎に編集が行われ、後述する実施例３の同期検出部３０−１，３０−２等はヘッダー情報から複数フレームのＧＯＰを検出し同期情報を生成する。
【００５５】
さらに最近、様々な種類の映像音声をファイルとして扱うための共通フォーマットとして、ＭＸＦファイルフォーマットを用いることが一般的になっている。ＭＸＦは、非圧縮及び圧縮を問わず、共通のヘッダー形式でコンピュータがファイルを認識できるようにするファイルの形式である。
【００５６】
図１８は、ＭＸＦファイルのフォーマットを説明する図である。ＭＸＦファイルは、ヘッダー（Ｆｉｌｅ  Ｈｅａｄｅｒ）、ボディ（Ｆｉｌｅ  Ｂｏｄｙ）及びフッター（Ｆｉｌｅ  Ｆｏｏｔｅｒ）により構成される。ヘッダー及びフッターには、メタデータ、インデックステーブル（Ｉｎｄｅｘ  Ｔａｂｌｅ）等が格納され、映像音声データの種類等に依存しない、データの種類及びデータの配置（フレームの単位、ＧＯＰの単位等）を示す構造になっている。ボディには、ＫＬＶコーディングという、実データのタイプを示すキー（Ｋｅｙ）、データ長を示すレングス（Ｌｅｎｇｔｈ）、及びデータ実体のバリュー（Ｖａｌｕｅ）を単位とした映像音声データがパックされる。
【００５７】
ＭＸＦフォーマットのファイルの場合、ヘッダーのインデックステーブルからデータのパック状態を認識することができる。したがって、同期検出部１１−１，１１−２または後述する実施例３の同期検出部３０−１，３０−２等は、ヘッダーのインデックステーブル（Ｉｎｄｅｘ  Ｔａｂｌｅ）、またはボディのキー（Ｋｅｙ）からファイルの編集単位であるフレームまたはＧＯＰのサイズを読み取り、フレーム等を処理単位とした場合のサイズを示す同期間隔、及びその同期間隔の先頭位置のタイミングを検出する。尚、ヘッダーのインデックステーブル（Ｉｎｄｅｘ  Ｔａｂｌｅ）及びボディのキー（Ｋｅｙ）は既知であるから、これらの詳細な説明は省略する。
【００５８】
また、後述する実施例３の同期検出部３０−１，３０−２等は、ＭＰＥＧ−２の圧縮データからなる可変レート（ＶＢＲ）のファイルの場合、ヘッダーからＧＯＰのサイズを読み取り、ＧＯＰを処理単位とした場合のサイズを示す同期間隔、及びその同期間隔の先頭位置のタイミングを検出する。また、後述する実施例３の同期検出部３０−１，３０−２等は、ＭＰＥＧ−２のＩ−ｏｎｌｙの圧縮データからなる可変レート（ＶＢＲ）のファイルの場合、ヘッダーからフレーム間隔のサイズ（フレームサイズ）を読み取り、フレームサイズ示す同期間隔、及びその同期間隔の先頭位置のタイミングを検出する。
【００５９】
図２に戻って、ブロック化部１２−１は、ファイル＃１データを入力すると共に、同期検出部１１−１から同期情報を入力し、設定ファイル部１０からブロックサイズＮを読み出し、同期情報が示すタイミングを基点として、同期情報が示す同期間隔またはその同期間隔の整数倍（Ｘ倍）のデータをブロックサイズＮに分割し、分割したブロックデータの位置を示す位置情報を生成し、ブロックデータ及びその位置情報をダイジェスト値演算部１３−１に出力する。同様に、ブロック化部１２−２は、ファイル＃２データを入力すると共に、同期検出部１１−２から同期情報を入力し、設定ファイル部１０からブロックサイズＮを読み出し、同期情報が示すタイミングを基点として、同期情報が示す同期間隔またはその同期間隔の整数倍（Ｘ倍）のデータをブロックサイズＮに分割し、分割したブロックデータの位置を示す位置情報を生成し、ブロックデータ及び位置情報をダイジェスト値演算部１３−２に出力する。尚、同期情報が示す同期間隔またはその同期間隔の整数倍（Ｘ倍）のデータは、分割数ｍのブロックデータに分割される。
【００６０】
ここで、ファイルデータをブロックサイズに分割する際の整数倍（Ｘ倍）の値は予め設定される。また、位置情報は、ファイル内におけるブロックデータの位置を示す情報であり、例えば、フレームの番号、及び、１つのフレームまたは複数のフレーム内のブロックの番号である。同期間隔をＦ、倍数を示す定数をＸとすると、ファイルが分割されたブロックデータのサイズ（ブロックサイズＮ）は、Ｎ＝Ｆ×Ｘ／ｍで表される。すなわち、設定ファイル部１０から読み出されるブロックサイズＮは、映像の処理単位を示すフレームサイズである同期間隔Ｆ及び分割数ｍにより決定され、前記式の関係にある。設定ファイル部１０には、この式を満たすブロックサイズＮ及び分割数ｍが予め設定され、格納されている。定数Ｘは、コリジョンを排除するための範囲を定める値である。例えば、Ｘ＝１の場合、編集単位であるフレーム毎にコリジョンが排除され、Ｘ＝２の場合、編集単位の２倍である２フレーム毎にコリジョンが排除される。
【００６１】
ダイジェスト値演算部１３−１は、ブロック化部１２−１からブロックデータ及び位置情報を入力し、ブロックデータに対し、ハッシュ関数等の所定の関数または演算式を用いて、ブロックデータの要約であるダイジェスト値を演算し、ダイジェスト値及び位置情報を比較部１４に出力する。同様に、ダイジェスト値演算部１３−２は、ブロック化部１２−２からブロックデータ及び位置情報を入力し、ブロックデータに対し、ダイジェスト値演算部１３−１において用いる同じ関数または演算式を用いて、ダイジェスト値を演算し、ダイジェスト値及び位置情報を比較部１４に出力する。ここで、ダイジェスト値を演算するために用いる関数として、一般にハッシュ関数が用いられるが、本発明では、ハッシュ関数に限定するものではなく、他の関数または演算式であってもよい（以下の実施例２〜８についても同じ）。
【００６２】
比較部１４は、ダイジェスト値演算部１３−１から、ファイル＃１のブロックデータにおけるダイジェスト値及び位置情報を入力すると共に、ダイジェスト値演算部１３−２から、ファイル＃２のブロックデータにおけるダイジェスト値及び位置情報を入力し、同じ位置情報のダイジェスト値を比較し、異なるダイジェスト値の位置情報を不一致部分の位置情報として連続性判定部１５に出力する。比較部１４により出力された不一致部分の位置情報は、ファイル＃１，＃２間で不一致部分の位置を示す情報となる。
【００６３】
連続性判定部１５は、比較部１４から不一致部分の位置情報を入力し、設定ファイル部１０から分割数ｍを読み出し、フレームサイズ（同期間隔）またはその整数倍（Ｘ倍）のデータ区間において、不一致部分の連続性を判定し、不一致部分が連続していない不一致部分をコリジョン発生部分とすることにより、コリジョンの発生を検出し、不一致部分の位置情報及びコリジョン発生部分の位置情報を連続化部１６に出力する。
【００６４】
図３は、連続性判定部１５の処理を示すフローチャートである。連続性判定部１５は、比較部１４から不一致部分の位置情報を入力し（ステップＳ３０１）、設定ファイル部１０から分割数ｍを読み出す（ステップＳ３０２）。そして、連続性判定部１５は、不一致部分の位置情報から、フレームサイズ（同期間隔）またはその整数倍（Ｘ倍）のデータ区間（所定のデータ区間）における不一致部分の数を算出する（ステップＳ３０３）。この所定のデータ区間には、少なくとも１つの不一致部分が含まれる。不一致部分を全く含まないデータ区間については、連続性判定部１５による連続性判定の対象としない。
【００６５】
連続性判定部１５は、算出した不一致部分の数と、そのデータ区間におけるブロックデータの数を示す分割数ｍとを比較する（ステップＳ３０４）。連続性判定部１５は、ステップＳ３０４において、不一致部分の数と分割数ｍとが同じであると判定した場合（ステップＳ３０４：＝）、すなわち、データ区間内の全てのブロックデータが不一致部分であると判定した場合、所定のデータ区間において不一致部分は正しく連続していると判断し、コリジョンは発生していないと判定する（ステップＳ３０５）。そして、連続性判定部１５は、入力した不一致部分の位置情報のみを連続化部１６に出力する（ステップＳ３０６）。
【００６６】
一方、連続性判定部１５は、ステップＳ３０４において、不一致部分の数が分割数ｍよりも小さいと判定した場合（ステップＳ３０４：＜）、すなわち、データ区間内に一致部分が存在すると判定した場合、所定のデータ区間において不一致部分は正しく連続していないと判断し、コリジョンが発生していると判定する（ステップＳ３０７）。そして、連続性判定部１５は、所定のデータ区間において、不一致部分以外の部分（不一致部分が連続していない部分）である一致部分を、コリジョン発生部分に設定し（ステップＳ３０８）、入力した不一致部分の位置情報、及び、設定したコリジョン発生部分の位置情報を連続化部１６に出力する（ステップＳ３０９）。
【００６７】
例えば、ファイル＃１，＃２が非圧縮の映像音声ファイルの場合、同期間隔Ｆは、１フレームのデータサイズに相当し、分割数ｍは、１フレームがブロックデータに分割される数であり、ｍ＞１とする。以下、Ｘ＝１，ｍ＝２とし、１フレームが２つのブロックデータに分割される場合を想定し、具体的に説明する。ダイジェスト値演算部１３−１，１３−２により、１フレーム毎に２つのダイジェスト値がそれぞれ生成される。ところで、ファイル編集はフレーム単位で行われるから、ファイルの修正によって生じる不一致部分も、比較部１４により、１フレーム単位で検出されることになり、ダイジェスト値の不一致部分は、１フレーム内において２ブロック連続することになる。ここで、１フレーム内において、２ブロックに満たない１ブロックの不一致部分が存在する場合、その欠落部分（一致部分）でコリジョンが発生していることになる。そこで、連続性判定部１５は、所定のデータ区間であるフレーム毎に、不一致部分が２ブロック連続するか否かについて、不一致部分の連続性を判定し、不一致部分が２ブロック連続している場合、コリジョンは発生していないと判定し、不一致部分が２ブロック連続しておらず１ブロックのみの場合、一致部分においてコリジョンが発生していると判定する。
【００６８】
このように、連続性判定部１５は、ファイル編集に伴って影響を受けるフレームのデータ区間において、全てのブロックデータについて不一致部分が連続していない場合、コリジョンが発生していると判定する。これにより、コリジョンの発生を確実に判定することができる。ファイル編集の影響を受けるフレームのデータ区間において、全てのブロックデータは不一致部分になることが前提になっているからである。
【００６９】
図２に戻って、連続化部１６は、連続性判定部１５から、不一致部分の位置情報及びコリジョン発生部分の位置情報を入力し、設定ファイル部１０から分割数ｍを読み出し、コリジョン発生部分の位置情報を不一致部分の位置情報に加えるように変更して不一致部分を連続させ、連続させた不一致部分の位置情報を出力する。このように、ファイル編集に伴って影響を受ける所定のデータ区間毎にコリジョンが検出され、検出されたコリジョンの位置情報が不一致部分の位置情報に変更されるから、コリジョンが確実に排除され、正確な不一致部分の位置情報を得ることができる。
【００７０】
図４は、分割数ｍ＝２、定数Ｘ＝１の場合において、フレームとブロックデータとが同期しているときの不一致部分及びコリジョン発生部分を説明する図である。図中、ファイル＃１データである編集ファイルの斜線部分は、ファイル編集された箇所を示しており、フレーム２〜４が編集されている。塗りつぶし部分は不一致部分を示しており、αはコリジョン発生部分を示している。比較部１４により不一致部分が比較検出された結果、フレーム２における第２のブロック、フレーム３における第１のブロック、及びフレーム４における第１，２のブロックが不一致部分になっている。連続性判定部１５により不一致部分の連続性が判定された結果、フレーム２の第１のブロック、及び第３のフレームの第２のブロックがコリジョン発生部分αになっている。そして、連続化部１６により、コリジョン発生部分αが不一致部分に変更され、結果として、ファイル編集されたフレーム２〜４の全てのブロックが、不一致部分として検出される。
【００７１】
図５は、分割数ｍ＝１．５、定数Ｘ＝１の場合において、フレームとブロックデータとが同期しているときの不一致部分及びコリジョン発生部分を説明する図である。図４と同様に、ファイル＃１データである編集ファイルの斜線部分は、ファイル編集された箇所を示しており、フレーム２〜４が編集されている。また、塗りつぶし部分は不一致部分を示しており、αはコリジョン発生部分を示している。比較部１４により不一致部分が比較検出された結果、フレーム１，２における第３のブロック、及びフレーム３，４における第２，３ブロックが不一致部分になっている。連続性判定部１５により不一致部分の連続性が判定された結果、フレーム１，２の第２のブロック、及び第３，４のフレームの第１ブロックがコリジョン発生部分αになっている。そして、連続化部１６により、コリジョン発生部分αが不一致部分に変更され、結果として、ファイル編集されたフレーム２〜４の全てのブロックが、不一致部分として検出される。ここで、ファイル編集されていないβの部分も不一致部分として検出されるが、図１に示したように、元ファイル及び複製ファイルに対し同じデータが上書きされることになるから、結果として元のデータが維持されることになる。
【００７２】
以上のように、実施例１のファイル処理装置１によれば、ファイルを分割したブロックデータのダイジェスト値を用いて、ファイル＃１，２の不一致部分を検出する際に、連続性判定部１５が、ファイル編集に伴って影響を受ける所定のデータ区間毎に、不一致部分の連続性を判定し、所定のデータ区間内の不一致部分の数が、所定のデータ区間をブロックデータに分割するために予め設定された分割数ｍよりも小さい場合、不一致部分以外の一致部分をコリジョン発生部分として検出し、連続化部１６が、コリジョン発生部分を不一致部分に変更するようにした。これにより、大容量のファイルデータを比較することなく簡易な手法により、コリジョンを確実に検出し排除することができる。したがって、コリジョンの発生確率が０になるから、不一致部分の検出精度を向上させ、高信頼化を実現することができる。
【実施例２】
【００７３】
次に、実施例２について詳細に説明する。実施例２のファイル処理装置２は、比較する２つのファイルのフレームサイズ（同期間隔）が一定及び一致しており、フレームとブロックデータとが同期していない場合において、ファイルの不一致部分を検出する装置である。具体的には、ファイル処理装置２は、２つのファイルに対し、ファイルを分割したブロックデータのダイジェスト値をそれぞれ演算して比較し、ダイジェスト値が異なるブロックデータの部分を不一致部分として検出する。そして、ファイル処理装置２は、検出した不一致部分の前後のブロックデータのうち、一致部分をコリジョン発生部分として推定し、コリジョン発生部分を不一致部分に変更することにより、コリジョンを排除する。
【００７４】
図６は、実施例２によるファイル処理装置２の構成を示すブロック図である。このファイル処理装置２は、設定ファイル部２０、ブロック化部２１−１，２１−２、ダイジェスト値演算部２２−１，２２−２、比較部２３及び連続化部２４を備えている。
【００７５】
設定ファイル部２０は記憶手段であり、オペレータにより予め設定されたブロックサイズＮ及び排除コリジョン数ｎが設定ファイルとして格納されている。ここで、排除コリジョン数ｎは、連続化部２４において、不一致部分の前後のブロックデータをコリジョン発生部分として推定し排除する数である。排除コリジョン数ｎは、例えば、コリジョンが発生し易いハッシュ関数を用いる場合、大きい値が設定され、コリジョンが発生し難いハッシュ関数を用いる場合、小さい値が設定される。
【００７６】
ブロック化部２１−１は、ファイル＃１データを入力し、設定ファイル部２０からブロックサイズＮを読み出し、任意の位相にて、ファイル＃１データをブロックサイズＮに分割し、分割したブロックデータ及びその位置情報をダイジェスト値演算部２２−１に出力する。同様に、ブロック化部２１−２は、ファイル＃２データを入力し、設定ファイル部２０からブロックサイズＮを読み出し、任意の位相にて、ファイル＃２データをブロックサイズＮに分割し、分割したブロックデータ及びその位置情報をダイジェスト値演算部２２−２に出力する。ブロック化部２１−１，２１−２から出力されるそれぞれのブロックデータは、比較する２つのファイル＃１，＃２のフレームサイズ（同期間隔）が一定及び一致していることが前提であるから、同期していることになる。
【００７７】
ダイジェスト値演算部２２−１は、ブロック化部２１−１からブロックデータ及び位置情報を入力し、ブロックデータに対し、ハッシュ関数等の所定の関数または演算式を用いてダイジェスト値を演算し、ダイジェスト値及び位置情報を比較部２３に出力する。同様に、ダイジェスト値演算部２２−２は、ブロック化部２１−２からブロックデータ及び位置情報を入力し、ブロックデータに対し、ダイジェスト値演算部２２−１において用いる関数等と同じ関数等を用いて、ダイジェスト値を演算し、ダイジェスト値及び位置情報を比較部２３に出力する。
【００７８】
比較部２３は、ダイジェスト値演算部２２−１から、ファイル＃１のブロックデータにおけるダイジェスト値及び位置情報を入力すると共に、ダイジェスト値演算部２２−２から、ファイル＃２のブロックデータにおけるダイジェスト値及び位置情報を入力し、同じ位置情報のダイジェスト値を比較し、異なるダイジェスト値の位置情報を不一致部分の位置情報として連続化部２４に出力する。
【００７９】
連続化部２４は、比較部２３から不一致部分の位置情報を入力し、設定ファイル部２０から排除コリジョン数ｎを読み出し、不一致部分をその前後に排除コリジョン数ｎ分広げて連続化し、不一致部分の位置情報を出力する。
【００８０】
図７は、連続化部２４の処理を示すフローチャートである。連続化部２４は、比較部２３から不一致部分の位置情報を入力し（ステップＳ７０１）、設定ファイル部２０から排除コリジョン数ｎを読み出す（ステップＳ７０２）。
【００８１】
連続化部２４は、不一致部分を基点として、その前後における排除コリジョン数ｎ分のブロックデータが不一致部分であるか、または一致部分であるかをそれぞれ判定する（ステップＳ７０３）。そのブロックデータが一致部分であると判定した場合（ステップＳ７０３：一致部分）、そのブロックデータをコリジョン発生部分として推定する（ステップＳ７０４）。
【００８２】
連続化部２４は、コリジョン発生部分を不一致部分に変更し、すなわち、コリジョン発生部分の位置情報を不一致部分の位置情報に加えるように変更する（ステップＳ７０５）。連続化部２４は、ステップＳ７０５から移行した場合、または、ステップＳ７０３において、そのブロックデータが不一致部分であると判定した場合（ステップＳ７０３：不一致部分）、不一致部分の位置情報を出力する（ステップＳ７０６）。
【００８３】
このように、連続化部２４は、不一致部分の前後における排除コリジョン数ｎ分のブロックデータのそれぞれについて、そのブロックデータが一致部分である場合、そのブロックデータをコリジョン発生部分として推定し、推定したコリジョン発生部分を不一致部分に変更するようにした。これにより、コリジョンの発生を、簡易な手法にて、安全性及び信頼性の観点から判定することができる。
【００８４】
図８は、分割数ｍ＝１．５、定数Ｘ＝１、及び、フレームとブロックデータを同期させることなくブロック化を行い、不一致部分の前後１ブロックをコリジョン排除の対象（排除コリジョン数ｎ＝１）とした場合を説明する図である。図中、ファイル＃１データである編集ファイルの斜線部分は、ファイル編集された箇所を示しており、フレーム２〜４が編集されている。塗りつぶし部分は不一致部分を示しており、αは、連続化部２４により推定されたコリジョン発生部分を示している。比較部２３により不一致部分が比較検出された結果、左から２番目のブロック、３番目のブロック及び５番目のブロックが不一致部分になっている。連続化部２４により不一致部分の前後１ブロックを対象にしてコリジョン発生部分が推定された結果、１番目のブロック、４番目のブロック及び６番目のブロックがコリジョン発生部分αとして推定されている。そして、連続化部２４により、推定されたコリジョン発生部分αが不一致部分に変更され、結果として、ファイル編集されたフレーム２〜４のブロック等が、不一致部分として検出される。ここで、ファイル編集されていないβの部分も不一致部分として検出されるが、図１に示したように、元ファイル及び複製ファイルに対し同じデータが上書きされることになるから、結果として元のデータが維持されることになる。
【００８５】
図９は、分割数ｍ＝１．５、定数Ｘ＝１、及び、フレームとブロックデータを同期させることなくブロック化を行い、不一致部分の前後１ブロックをコリジョン排除の対象（排除コリジョン数ｎ＝２）とした場合を説明する図である。図８と同様に、ファイル＃１データである編集ファイルの斜線部分は、ファイル編集された箇所を示しており、フレーム２〜４が編集されている。塗りつぶし部分は不一致部分を示しており、αは、連続化部２４により推定されたコリジョン発生部分を示している。比較部２３により不一致部分が比較検出された結果、左から３番目のブロック、５番目のブロック及び６番目のブロックが不一致部分になっている。連続化部２４により不一致部分の前後２ブロックを対象にしてコリジョン発生部分が推定された結果、１番目のブロック、２番目のブロック、４番目のブロック、７番目のブロック及び８番目のブロックがコリジョン発生部分αとして推定されている。そして、連続化部２４により、推定されたコリジョン発生部分αが不一致部分に変更され、結果として、ファイル編集されたフレーム２〜４のブロック等が、不一致部分として検出される。ここで、図８と同様に、ファイル編集されていないβの部分も不一致部分として検出されるが、図１に示したように、元ファイル及び複製ファイルに対し同じデータが上書きされることになるから、結果として元のデータが維持されることになる。
【００８６】
以上のように、実施例２のファイル処理装置２によれば、ファイルを分割したブロックデータのダイジェスト値を用いて、ファイル＃１，２の不一致部分を検出する際に、連続化部２４が、比較部２３により検出された不一致部分の前後における排除コリジョン数ｎ分のブロックデータのそれぞれについて、そのブロックデータが一致部分である場合、そのブロックデータをコリジョン発生部分として推定し、推定したコリジョン発生部分を不一致部分に変更するようにした。これにより、大容量のファイルデータを比較することなく簡易な手法により、コリジョンを検出し排除することができ、不一致部分の検出精度を向上させ、高信頼化を実現することができる。
【００８７】
また、実施例２のファイル処理装置２によれば、図２に示した実施例１のファイル処理装置１と比較して、同期検出部１１−１，１１−２及び連続性判定部１５を備えておらず、フレームとブロックデータとが同期していない場合であっても、排除コリジョン数ｎに応じて不一致部分を広げることにより、コリジョンを検出し排除するようにした。これにより、フレームとブロックデータとを同期させるための処理を行うことなく、実施例１に比べて、処理及び装置を大幅に簡略化することができる。
【００８８】
尚、図６に示した実施例２によるファイル処理装置２の構成に加え、連続化部２４の後段に孤立除去部を備えるようにしてもよい。孤立除去部は、不一致部分の間で孤立している一致部分を除去し、一連の不一致部分を生成する。具体的には、孤立除去部は、連続化部２４から、コリジョンが排除された不一致部分の位置情報を入力し、所定数以上連続している不一致部分を不一致グループとし、不一致グループの間に位置する一致部分のブロック数と、予め設定された閾値とを比較する。そして、孤立除去部は、一致部分のブロック数が閾値よりも小さいと判定した場合、その一致部分を不一致部分に加えるように変更し、不一致部分の位置情報を出力する。
【００８９】
このように、孤立除去部を備えたファイル処理装置２によれば、安全性の観点から、不一致部分を広げることができ、一層の高信頼化を実現することができる。また、不一致グループの間に孤立している一致部分が不一致部分に変更されるから、例えば、２つの不一致グループを１つの不一致グループに変更することができる。したがって、転送等の処理は１つの不一致部分のデータに対して１回で済むから、処理負荷を低減することができる。
【００９０】
また、排除コリジョン数ｎ＝１が設定された場合、連続化部２４により、不一致部分がｎ＝１の範囲で広げられ、コリジョンが排除される。しかしながら、コリジョンはｎ＝１の範囲で排除されるに過ぎない。そこで、孤立除去部を備えることにより、さらに不一致部分が広げられるから、排除コリジョン数ｎ＝２が設定された場合と同様の範囲で、コリジョンを排除することができる。
【実施例３】
【００９１】
次に、実施例３について詳細に説明する。実施例３のファイル処理装置３は、比較する２つのファイルのフレームサイズ（同期間隔）が変化している場合において、ファイルの不一致部分を検出する装置である。具体的には、ファイル処理装置３は、２つのファイルの同期を検出し、同期情報、分割数ｍ、及びファイルデータをブロックサイズに分割する際の整数倍（Ｘ倍）の値である定数Ｘに基づいてブロックサイズＮを判定し、前述の実施例１のファイル処理装置１と同様の処理を行う。すなわち、ファイル処理装置３は、ファイルをブロックサイズＮに分割したブロックデータのダイジェスト値をそれぞれ演算して比較し、ダイジェスト値が異なるブロックデータの部分を不一致部分として検出する。そして、ファイル処理装置３は、検出した不一致部分の連続性を判定し、連続すべき不一致部分に一致部分が含まれる場合、この一致部分をダイジェスト値のコリジョン発生部分とし、コリジョン発生部分を不一致部分に変更することにより、コリジョンを排除する。
【００９２】
図１０は、実施例３によるファイル処理装置３の構成を示すブロック図である。このファイル処理装置３は、同期検出部３０−１，３０−２、ブロックサイズ判定部３１、ブロック化部３２−１，３２−２、ダイジェスト値演算部３３−１，３３−２、比較部３４、連続性判定部３５及び連続化部３６を備えている。
【００９３】
図２に示した実施例１のファイル処理装置１と、このファイル処理装置３とを比較すると、両装置１，３は、同期検出部１１−１，１１−２，３０−１,３０−２、ブロック化部１２−１，１２−２，３２−１，３２−２、ダイジェスト値演算部１３−１，１３−２，３３−１，３３−２、比較部１４，３４、連続性判定部１５，３５及び連続化部１６，３６を備えている点で同一である。一方、ファイル処理装置１は、設定ファイル部１０を備えているのに対し、ファイル処理装置３は、ブロックサイズ判定部３１を備えている点で相違する。ファイル処理装置１では、ブロックサイズＮが予め設定されているのに対し、ファイル処理装置３では、ブロックサイズＮがファイル＃１，＃２データの同期情報に基づいて判定される。
【００９４】
同期検出部３０−１,３０−２、ブロック化部３２−１，３２−２、ダイジェスト値演算部３３−１，３３−２、比較部３４、連続性判定部３５及び連続化部３６は、実施例１の同期検出部１１−１，１１−２、ブロック化部１２−１，１２−２、ダイジェスト値演算部１３−１，１３−２、比較部１４、連続性判定部１５及び連続化部１６と同じ処理を行うから、ここでは説明を省略する。
【００９５】
ブロックサイズ判定部３１は、同期検出部３０−１から、フレームサイズを示す同期間隔及びその同期間隔の先頭位置のタイミングを含む同期情報ａを入力すると共に、同期検出部３０−２から同期情報ｂを入力し、同期情報ａと同期情報ｂとを比較し、同じであると判定した場合、予め設定された定数Ｘ及び分割数ｍを用いてブロックサイズＮを求め、同期情報及びブロックサイズＮをブロック化部３２−１，３２−２に出力し、分割数ｍを連続性判定部３５及び連続化部３６に出力する。一方、ブロックサイズ判定部３１は、同期情報ａ，ｂが同じでないと判定した場合、全部不一致を出力する。この場合、コリジョンの検出及び排除の処理は行われない。尚、実施例３では、比較する２つのファイルのフレームサイズ（同期間隔）が変化しているから、ブロックサイズＮは、その変化に応じた値となる。
【００９６】
図１１は、ブロックサイズ判定部３１の処理を示すフローチャートである。ブロックサイズ判定部３１は、同期検出部３０−１から、同期間隔及びタイミングを含む同期情報ａを入力すると共に、同期検出部３０−２から同期情報ｂを入力（ステップＳ１１０１）する。そして、ブロックサイズ判定部３１は、同期情報ａと同期情報ｂとを比較し（ステップＳ１１０２）、同期情報ａ，ｂが同じであると判定した場合（ステップＳ１１０２：Ｙ）、すなわち、ファイル＃１，＃２データの同期間隔及びその先頭位置のタイミングが同じであると判定した場合、同期間隔またはその同期間隔の整数倍（Ｘ倍）のデータ（１つのフレームまたは複数のフレーム）を分割数ｍで除算し、ブロックサイズＮを求める（ステップＳ１１０３）。そして、ブロックサイズ判定部３１は、同期情報（同期情報ａ，ｂ）及びブロックサイズＮをブロック化部３２−１，３２−２に出力し、予め設定された分割数ｍを連続性判定部３５及び連続化部３６に出力する（ステップＳ１１０４）。
【００９７】
一方、ブロックサイズ判定部３１は、ステップＳ１１０２において、同期情報ａ，ｂが同じでないと判定した場合（ステップＳ１１０２：Ｎ）、すなわち、ファイル＃１，＃２データの同期間隔及びその先頭位置のタイミングのうちの少なくとも一方が異なると判定した場合、コリジョンの検出及び排除の処理を行わないことを示す全部不一致を出力する（ステップＳ１１０５）。
【００９８】
以上のように、実施例３のファイル処理装置３によれば、ファイルを分割したブロックデータのダイジェスト値を用いて、ファイル＃１，２の不一致部分を検出する際に、ブロックサイズ判定部３１が、同期情報ａ，ｂが同じであると判定した場合に、同期間隔またはその整数倍（Ｘ倍）のデータを分割数ｍで除算してブロックサイズＮを求め、ブロック化部３２−１，３２−２が、ブロックサイズ判定部３１から同期情報及びブロックサイズＮを入力し、ブロックデータにファイルを分割する。そして、連続性判定部３５が、実施例１の連続性判定部１５と同様に、ファイル編集に伴って影響を受ける所定のデータ区間毎に、不一致部分の連続性を判定し、所定のデータ区間内の不一致部分の数が、所定のデータ区間をブロックデータに分割するための予め設定された分割数ｍよりも小さい場合、不一致部分以外の一致部分をコリジョン発生部分として検出し、連続化部３６が、実施例１の連続化部１６と同様に、コリジョン発生部分を不一致部分に変更するようにした。これにより、大容量のファイルデータを比較することなく簡易な手法により、可変レートのファイルのコリジョンを検出し排除することができ、不一致部分の検出精度を向上させ、高信頼化を実現することができる。また、ブロックサイズＮを予め設定する必要がなく、可変レートのファイル＃１，＃２データから直接求めることができ、ブロックサイズＮを設定する手間を省くことができる。
【実施例４】
【００９９】
次に、実施例４について詳細に説明する。実施例４のファイル処理装置４は、比較する２つのファイルのフレームサイズ（同期間隔）が変化している場合において、ファイルの不一致部分を検出する装置である。具体的には、ファイル処理装置４は、２つのファイルの同期を検出し、前述の実施例３のファイル処理装置３と同様の処理を行ってブロックサイズＮを判定し、前述の実施例２のファイル処理装置２と同様の処理を行ってコリジョンを排除する。すなわち、ファイル処理装置４は、２つのファイルの同期を検出し、同期情報、分割数ｍ、及びファイルデータをブロックサイズに分割する際の整数倍（Ｘ倍）の値である定数Ｘに基づいてブロックサイズＮを判定する。そして、ファイル処理装置４は、ファイルをブロックサイズＮに分割したブロックデータのダイジェスト値をそれぞれ演算して比較し、ダイジェスト値が異なるブロックデータの部分を不一致部分として検出する。そして、ファイル処理装置４は、検出した不一致部分の前後のブロックデータのうち、一致部分をコリジョン発生部分として推定し、コリジョン発生部分を不一致部分に変更することにより、コリジョンを排除する。
【０１００】
図１２は、実施例４によるファイル処理装置４の構成を示すブロック図である。このファイル処理装置４は、同期検出部４０−１，４０−２、ブロックサイズ判定部４１、ブロック化部４２−１，４２−２、ダイジェスト値演算部４３−１，４３−２、比較部４４及び連続化部４５を備えている。
【０１０１】
図１０に示した実施例３のファイル処理装置３と、このファイル処理装置４とを比較すると、両装置３，４は、同期検出部３０−１,３０−２，４０−１，４０−２、ブロック化部３２−１，３２−２，４２−１，４２−２、ダイジェスト値演算部３３−１，３３−２，４３−１，４３−２及び比較部３４，４４を備えている点で同一である。一方、ファイル処理装置３は、ブロックサイズ判定部３１、連続性判定部３５及び連続化部３６を備えているのに対し、ファイル処理装置４は、連続性判定部３５を備えておらず、機能の異なるブロックサイズ判定部４１及び連続化部４５を備えている点で相違する。ファイル処理装置４の連続化部４５は、図６に示した実施例２のファイル処理装置２における連続化部２４と同じ機能を有する。
【０１０２】
両装置３，４は、ブロックサイズＮがファイル＃１，＃２データの同期情報に基づいて判定される点で同じである。一方、ファイル処理装置３は、不一致部分の連続性を判定し、連続すべき不一致部分に一致部分が含まれる場合、この一致部分をダイジェスト値のコリジョン発生部分とし、コリジョンを排除するのに対し、ファイル処理装置４は、連続性を判定することなく、不一致部分の前後のブロックデータのうち、一致部分をコリジョン発生部分として推定し、コリジョンを排除する点で相違する。
【０１０３】
同期検出部４０−１，４０−２、ブロック化部４２−１，４２−２、ダイジェスト値演算部４３−１，４３−２及び比較部４４は、実施例３の同期検出部３０−１,３０−２、ブロック化部３２−１，３２−２、ダイジェスト値演算部３３−１，３３−２及び比較部３４と同じ処理を行うから、ここでは説明を省略する。また、連続化部４５は、実施例２の連続化部２４と同じ処理を行うから、ここでは説明を省略する。
【０１０４】
ブロックサイズ判定部４１は、同期検出部４０−１から、フレームサイズを示す同期間隔及びその同期間隔の先頭位置のタイミングを含む同期情報ａを入力すると共に、同期検出部４０−２から同期情報ｂを入力し、同期情報ａと同期情報ｂとを比較し、同じであると判定した場合、同期間隔またはその整数倍（Ｘ倍）のデータを分割数ｍで除算してブロックサイズＮを求め、同期情報及びブロックサイズＮをブロック化部４２−１，４２−２に出力し、排除コリジョン数ｎを連続化部４５に出力する。定数Ｘ、分割数ｍ及び排除コリジョン数ｎは予め設定されているものとする。一方、ブロックサイズ判定部４１は、同期情報ａ，ｂが同じでないと判定した場合、全部不一致を出力する。この場合、コリジョンの検出及び排除の処理は行われない。尚、実施例４では、比較する２つのファイルのフレームサイズ（同期間隔）が変化しているから、ブロックサイズＮは、その変化に応じた値となる。
【０１０５】
以上のように、実施例４のファイル処理装置４によれば、ファイルを分割したブロックデータのダイジェスト値を用いて、ファイル＃１，２の不一致部分を検出する際に、ブロックサイズ判定部４１が、同期情報ａ，ｂが同じであると判定した場合に、同期間隔またはその整数倍（Ｘ倍）のデータを分割数ｍで除算してブロックサイズＮを求め、ブロック化部４２−１，４２−２が、ブロックサイズ判定部４１から同期情報及びブロックサイズＮを入力し、ブロックデータにファイルを分割する。そして、連続化部４５が、実施例２の連続化部２４と同様に、比較部４４により検出された不一致部分の前後における排除コリジョン数ｎ分のブロックデータのそれぞれについて、そのブロックデータが一致部分である場合、そのブロックデータをコリジョン発生部分として推定し、推定したコリジョン発生部分を不一致部分に変更するようにした。これにより、大容量のファイルデータを比較することなく簡易な手法により、可変レートのファイルのコリジョンを検出し排除することができ、不一致部分の検出精度を向上させ、高信頼化を実現することができる。また、ブロックサイズＮを予め設定する必要がなく、可変レートのファイル＃１，＃２データから直接求めることができ、ブロックサイズＮを設定する手間を省くことができる。
【実施例５】
【０１０６】
次に、実施例５について詳細に説明する。実施例５のファイル処理装置５は、比較する２つのファイルのうちの１つのファイルが、ブロックデータのダイジェスト値、位置情報、ブロックサイズＮ及び分割数ｍと共に記憶部に予め蓄積されており、実施例１の場合と同様に、比較する２つのファイルのフレームサイズ（同期間隔）が一定及び一致しており、フレームとブロックデータとが同期している場合において、ファイルの不一致部分を検出する装置である。
【０１０７】
図１３は、実施例５によるファイル処理装置５の構成を示すブロック図である。このファイル処理装置５は、記憶部５０、同期検出部５１、ブロック化部５２、ダイジェスト値演算部５３、ダイジェスト値読み出し部５４、比較部５５、連続性判定部５６及び連続化部５７を備えている。
【０１０８】
図２に示した実施例１のファイル処理装置１と、このファイル処理装置５とを比較すると、両装置１，５は、ファイル＃１データを処理する同期検出部１１−１，５１、ブロック化部１２−１，５２、ダイジェスト値演算部１３−１，５３を備え、また、比較部１４，５５、連続性判定部１５，５６及び連続化部１６，５７を備えている点で同一である。一方、ファイル処理装置１は、ファイル＃２データを処理する同期検出部１１−２、ブロック化部１２−２及びダイジェスト値演算部１３−２を備え、また、設定ファイル部１０を備えているのに対し、ファイル処理装置５は、記憶部５０及びダイジェスト値読み出し部５４を備えている点で相違する。
【０１０９】
同期検出部５１、ブロック化部５２、ダイジェスト値演算部５３、比較部５５、連続性判定部５６及び連続化部５７は、実施例１の同期検出部１１−１、ブロック化部１２−１、ダイジェスト値演算部１３−１、比較部１４、連続性判定部１５及び連続化部１６と同じ処理を行うから、ここでは説明を省略する。尚、ダイジェスト値演算部５３は、記憶部５０に蓄積された、ファイル＃２データのダイジェスト値が演算された際の関数等と同じ関数等を用いて、ダイジェスト値を演算する。
【０１１０】
記憶部５０には、予め設定されたブロックサイズＮ及び分割数ｍが設定ファイルとして蓄積されている。また、記憶部５０には、ファイル＃２データが蓄積されており、既にファイル＃２データをブロック化して求めたブロックデータ毎のダイジェスト値がその位置情報と共に蓄積されている。このように、ファイル＃２データのダイジェスト値及び位置情報は、ファイル＃２データ及びブロックサイズＮから演算して求めるのではなく、記憶部５０に予めＤＢまたはファイルとして蓄積されている。
【０１１１】
ダイジェスト値読み出し部５４は、ブロック化部５２から位置情報を入力し、その位置情報のダイジェスト値を記憶部５０から読み出し、読み出したダイジェスト値及び位置情報を比較部５５に出力する。
【０１１２】
比較部５５は、ダイジェスト値演算部５３から、ファイル＃１のブロックデータにおけるダイジェスト値及び位置情報を入力すると共に、ダイジェスト値読み出し部５４から、ファイル＃２のブロックデータにおけるダイジェスト値及び位置情報を入力し、同じ位置情報のダイジェスト値を比較し、異なるダイジェスト値の位置情報を不一致部分の位置情報として連続性判定部５６に出力する。連続性判定部５６及び連続化部５７は、記憶部５０から分割数ｍを読み出す。
【０１１３】
以上のように、実施例５のファイル処理装置５によれば、ファイル＃１データをブロック化してダイジェスト値及び位置情報を求め、予め蓄積されたファイル＃２データのダイジェスト値を、位置情報をキーにして記憶部５０から読み出し、２つのダイジェスト値を用いて、ファイル＃１，２の不一致部分を検出する際に、連続性判定部５６が、実施例１，３の連続性判定部１５，３５と同様に、ファイル編集に伴って影響を受ける所定のデータ区間毎に、不一致部分の連続性を判定し、所定のデータ区間内の不一致部分の数が、所定のデータ区間をブロックデータに分割するために予め設定された分割数ｍよりも小さい場合、不一致部分以外の一致部分をコリジョン発生部分として検出し、連続化部５７が、コリジョン発生部分を不一致部分に変更するようにした。これにより、大容量のファイルデータを比較することなく簡易な手法により、コリジョンを確実に検出し排除することができる。したがって、コリジョンの発生確率が０になるから、不一致部分の検出精度を向上させ、高信頼化を実現することができる。
【実施例６】
【０１１４】
次に、実施例６について詳細に説明する。実施例６のファイル処理装置６は、比較する２つのファイルのうちの１つのファイルが、ブロックデータのダイジェスト値、位置情報、ブロックサイズＮ及び排除コリジョン数ｎと共に記憶部に予め蓄積されており、実施例２の場合と同様に、比較する２つのファイルのフレームサイズ（同期間隔）が一定及び一致しており、フレームとブロックデータとが同期していない場合において、ファイルの不一致部分を検出する装置である。
【０１１５】
図１４は、実施例６によるファイル処理装置６の構成を示すブロック図である。このファイル処理装置６は、記憶部６０、ブロック化部６１、ダイジェスト値演算部６２、ダイジェスト値読み出し部６３、比較部６４及び連続化部６５を備えている。
【０１１６】
図６に示した実施例２のファイル処理装置２と、このファイル処理装置６とを比較すると、両装置２，６は、ファイル＃１データを処理するブロック化部２１−１，６１、ダイジェスト値演算部２２−１，６２を備え、また、比較部２３，６４及び連続化部２４，６５を備えている点で同一である。一方、ファイル処理装置２は、ファイル＃２データを処理するブロック化部２１−２及びダイジェスト値演算部２２−２を備え、また、設定ファイル部２０を備えているのに対し、ファイル処理装置６は、記憶部６０及びダイジェスト値読み出し部６３を備えている点で相違する。
【０１１７】
ブロック化部６１、ダイジェスト値演算部６２、比較部６４及び連続化部６５は、実施例２のブロック化部２１−１、ダイジェスト値演算部２２−１、比較部２３及び連続化部２４と同じ処理を行うから、ここでは説明を省略する。尚、ダイジェスト値演算部６２は、記憶部６０に蓄積された、ファイル＃２データのダイジェスト値が演算された際の関数等と同じ関数等を用いて、ダイジェスト値を演算する。
【０１１８】
記憶部６０には、予め設定されたブロックサイズＮ及び排除コリジョン数ｎが設定ファイルとして蓄積されている。また、記憶部６０には、ファイル＃２データが蓄積されており、既にファイル＃２データをブロック化して求めたブロックデータ毎のダイジェスト値がその位置情報と共に蓄積されている。このように、ファイル＃２データのダイジェスト値及び位置情報は、ファイル＃２データ及びブロックサイズＮから演算して求めるのではなく、記憶部６０に予めＤＢまたはファイルとして蓄積されている。
【０１１９】
ダイジェスト値読み出し部６３は、ブロック化部６１から位置情報を入力し、その位置情報のダイジェスト値を記憶部６０から読み出し、読み出したダイジェスト値及び位置情報を比較部６４に出力する。
【０１２０】
比較部６４は、ダイジェスト値演算部６２から、ファイル＃１のブロックデータにおけるダイジェスト値及び位置情報を入力すると共に、ダイジェスト値読み出し部６３から、ファイル＃２のブロックデータにおけるダイジェスト値及び位置情報を入力し、同じ位置情報のダイジェスト値を比較し、異なるダイジェスト値の位置情報を不一致部分の位置情報として連続化部６５に出力する。連続化部６５は、記憶部６０から排除コリジョン数ｎを読み出す。
【０１２１】
以上のように、実施例６のファイル処理装置６によれば、ファイル＃１データをブロック化してダイジェスト値及び位置情報を求め、予め蓄積されたファイル＃２データのダイジェスト値を、位置情報をキーにして記憶部６０から読み出し、２つのダイジェスト値を用いて、ファイル＃１，２の不一致部分を検出する際に、連続化部６５が、実施例２，４の連続化部２４，４５と同様に、比較部６４により検出された不一致部分の前後における排除コリジョン数ｎ分のブロックデータのそれぞれについて、そのブロックデータが一致部分である場合、そのブロックデータをコリジョン発生部分として推定し、推定したコリジョン発生部分を不一致部分に変更するようにした。これにより、大容量のファイルデータを比較することなく簡易な手法により、コリジョンを検出し排除することができ、不一致部分の検出精度を向上させ、高信頼化を実現することができる。
【実施例７】
【０１２２】
次に、実施例７について詳細に説明する。実施例７のファイル処理装置７は、比較する２つのファイルのうちの１つのファイルが、ブロックデータのダイジェスト値、位置情報、同期情報及び分割数ｍと共に記憶部に予め蓄積されており、実施例３の場合と同様に、比較する２つのファイルのフレームサイズ（同期間隔）が変化している場合において、ファイルの不一致部分を検出する装置である。
【０１２３】
図１５は、実施例７によるファイル処理装置７の構成を示すブロック図である。このファイル処理装置７は、記憶部７０、同期検出部７１、ブロックサイズ判定部７２、ブロック化部７３、ダイジェスト値演算部７４、ダイジェスト値読み出し部７５、比較部７６、連続性判定部７７及び連続化部７８を備えている。
【０１２４】
図１０に示した実施例３のファイル処理装置３と、このファイル処理装置７とを比較すると、両装置３，７は、ファイル＃１データを処理する同期検出部３０−１，７１、ブロック化部３２−１，７３及びダイジェスト値演算部３３−１，７４を備え、また、ブロックサイズ判定部３１，７２、比較部３４，７６、連続性判定部３５，７７及び連続化部３６，７８を備えている点で同一である。一方、ファイル処理装置３は、ファイル＃２データを処理する同期検出部３０−２、ブロック化部３２−２及びダイジェスト値演算部３３−２を備えているのに対し、ファイル処理装置７は、記憶部７０及びダイジェスト値読み出し部７５を備えている点で相違する。
【０１２５】
同期検出部７１、ブロックサイズ判定部７２、ブロック化部７３、ダイジェスト値演算部７４、比較部７６、連続性判定部７７及び連続化部７８は、実施例３の同期検出部３０−１、ブロックサイズ判定部３１、ブロック化部３２−１、ダイジェスト値演算部３３−１、比較部３４、連続性判定部３５及び連続化部３６と同じ処理を行うから、ここでは説明を省略する。尚、ダイジェスト値演算部７４は、記憶部７０に蓄積された、ファイル＃２データのダイジェスト値が演算された際の関数等と同じ関数等を用いて、ダイジェスト値を演算する。また、ブロックサイズ判定部７２は、ファイル＃２データの同期情報ｂ及び分割数ｍを記憶部７０から読み出し、ブロックサイズＮを判定する。
【０１２６】
記憶部７０には、予め設定された分割数ｍが設定ファイルとして蓄積されている。また、記憶部７０には、ファイル＃２データ及び同期情報ｂが蓄積されており、既にファイル＃２データをブロック化して求めたブロックデータ毎のダイジェスト値がその位置情報と共に蓄積されている。このように、ファイル＃２データのダイジェスト値及び位置情報は、ファイル＃２データ及びブロックサイズＮから演算して求めるのではなく、記憶部７０に予めＤＢまたはファイルとして蓄積されている。また、同期情報ｂもファイル＃２データから求めるのではなく、記憶部７０に予めＤＢまたはファイルとして蓄積されている。
【０１２７】
ダイジェスト値読み出し部７５は、ブロック化部７３から位置情報を入力し、その位置情報のダイジェスト値を記憶部７０から読み出し、読み出したダイジェスト値及び位置情報を比較部７６に出力する。
【０１２８】
比較部７６は、ダイジェスト値演算部７４から、ファイル＃１のブロックデータにおけるダイジェスト値及び位置情報を入力すると共に、ダイジェスト値読み出し部７５から、ファイル＃２のブロックデータにおけるダイジェスト値及び位置情報を入力し、同じ位置情報のダイジェスト値を比較し、異なるダイジェスト値の位置情報を不一致部分の位置情報として連続性判定部７７に出力する。
【０１２９】
以上のように、実施例７のファイル処理装置７によれば、ファイル＃１データをブロック化してダイジェスト値及び位置情報を求め、予め蓄積されたファイル＃２データのダイジェスト値を、位置情報をキーにして記憶部７０から読み出し、２つのダイジェスト値を用いて、ファイル＃１，２の不一致部分を検出する際に、ブロックサイズ判定部７２が、同期情報ａ，ｂが同じであると判定した場合に、同期間隔またはその整数倍（Ｘ倍）のデータを分割数ｍで除算してブロックサイズＮを求め、ブロック化部７３が、ブロックサイズ判定部７２から同期情報及びブロックサイズＮを入力し、ブロックデータにファイルを分割する。そして、連続性判定部７７が、実施例１，３の連続性判定部１５，３５と同様に、ファイル編集に伴って影響を受ける所定のデータ区間毎に、不一致部分の連続性を判定し、所定のデータ区間内の不一致部分の数が、所定のデータ区間をブロックデータに分割するための予め設定された分割数ｍよりも小さい場合、不一致部分以外の一致部分をコリジョン発生部分として検出し、連続化部７８が、実施例１，３の連続化部１６，３６と同様に、コリジョン発生部分を不一致部分に変更するようにした。これにより、大容量のファイルデータを比較することなく簡易な手法により、コリジョンを検出し排除することができ、不一致部分の検出精度を向上させ、高信頼化を実現することができる。また、ブロックサイズＮを予め設定する必要がなく、可変レートのファイル＃１，＃２データの同期情報ａ，ｂから直接求めることができ、ブロックサイズＮを設定する手間を省くことができる。
【実施例８】
【０１３０】
次に、実施例８について詳細に説明する。実施例８のファイル処理装置８は、比較する２つのファイルのうちの１つのファイルが、ブロックデータのダイジェスト値、位置情報、同期情報、分割数ｍ及び排除コリジョン数ｎと共に記憶部に予め蓄積されており、実施例４の場合と同様に、比較する２つのファイルのフレームサイズ（同期間隔）が変化している場合において、ファイルの不一致部分を検出する装置である。
【０１３１】
図１６は、実施例８によるファイル処理装置８の構成を示すブロック図である。このファイル処理装置８は、記憶部８０、同期検出部８１、ブロックサイズ判定部８２、ブロック化部８３、ダイジェスト値演算部８４、ダイジェスト値読み出し部８５、比較部８６及び連続化部８７を備えている。
【０１３２】
図１２に示した実施例４のファイル処理装置４と、このファイル処理装置８とを比較すると、両装置４，８は、ファイル＃１データを処理する同期検出部４０−１，８１、ブロック化部４２−１，８３、ダイジェスト値演算部４３−１，８４を備え、また、ブロックサイズ判定部４１，８２、比較部４４，８６、及び連続化部４５，８７を備えている点で同一である。一方、ファイル処理装置４は、ファイル＃２データを処理する同期検出部４０−２、ブロック化部４２−２及びダイジェスト値演算部４３−２を備えているのに対し、ファイル処理装置８は、記憶部８０及びダイジェスト値読み出し部８５を備えている点で相違する。
【０１３３】
同期検出部８１、ブロックサイズ判定部８２、ブロック化部８３、ダイジェスト値演算部８４、比較部８６及び連続化部８７は、実施例４の同期検出部４０−１、ブロックサイズ判定部４１、ブロック化部４２−１、ダイジェスト値演算部４３−１、比較部４４及び連続化部４５と同じ処理を行うから、ここでは説明を省略する。尚、ダイジェスト値演算部８４は、記憶部８０に蓄積された、ファイル＃２データのダイジェスト値が演算された際の関数等と同じ関数等を用いて、ダイジェスト値を演算する。また、ブロックサイズ判定部８２は、ファイル＃２データの同期情報ｂ、分割数ｍ及び排除コリジョン数ｎを記憶部８０から読み出し、ブロックサイズＮを判定する。
【０１３４】
記憶部８０には、予め設定された分割数ｍ及び排除コリジョン数ｎが設定ファイルとして蓄積されている。また、記憶部８０には、ファイル＃２データ及び同期情報ｂが蓄積されており、既にファイル＃２データをブロック化して求めたブロックデータ毎のダイジェスト値がその位置情報と共に蓄積されている。このように、ファイル＃２データのダイジェスト値及び位置情報は、ファイル＃２データ及びブロックサイズＮから演算して求めるのではなく、記憶部８０に予めＤＢまたはファイルとして蓄積されている。また、同期情報ｂもファイル＃２データから求めるのではなく、記憶部８０に予めＤＢまたはファイルとして蓄積されている。
【０１３５】
ダイジェスト値読み出し部８５は、ブロック化部８３から位置情報を入力し、その位置情報のダイジェスト値を記憶部８０から読み出し、読み出したダイジェスト値及び位置情報を比較部８６に出力する。
【０１３６】
比較部８６は、ダイジェスト値演算部８４から、ファイル＃１のブロックデータにおけるダイジェスト値及び位置情報を入力すると共に、ダイジェスト値読み出し部８５から、ファイル＃２のブロックデータにおけるダイジェスト値及び位置情報を入力し、同じ位置情報のダイジェスト値を比較し、異なるダイジェスト値の位置情報を不一致部分の位置情報として連続化部８７に出力する。
【０１３７】
以上のように、実施例８のファイル処理装置８によれば、ファイル＃１データをブロック化してダイジェスト値及び位置情報を求め、予め蓄積されたファイル＃２データのダイジェスト値を、位置情報をキーにして記憶部８０から読み出し、２つのダイジェスト値を用いて、ファイル＃１，２の不一致部分を検出する際に、ブロックサイズ判定部８２が、同期情報ａ，ｂが同じであると判定した場合に、同期間隔またはその整数倍（Ｘ倍）のデータを分割数ｍで除算してブロックサイズＮを求め、ブロック化部８３が、ブロックサイズ判定部８２から同期情報及びブロックサイズＮを入力し、ブロックデータにファイルを分割する。そして、連続化部８７が、実施例２，４の連続化部２４，４５と同様に、比較部８６により検出された不一致部分の前後における排除コリジョン数ｎ分のブロックデータのそれぞれについて、そのブロックデータが一致部分である場合、そのブロックデータをコリジョン発生部分として推定し、推定したコリジョン発生部分を不一致部分に変更するようにした。これにより、大容量のファイルデータを比較することなく簡易な手法により、コリジョンを検出し排除することができ、不一致部分の検出精度を向上させ、高信頼化を実現することができる。また、ブロックサイズＮを予め設定する必要がなく、可変レートのファイル＃１，＃２データの同期情報ａ，ｂから直接求めることができ、ブロックサイズＮを設定する手間を省くことができる。
【０１３８】
尚、本発明の実施例１〜８によるファイル処理装置１〜８のハード構成としては、通常のコンピュータを使用することができる。ファイル処理装置１〜８は、ＣＰＵ、ＲＡＭ等の揮発性の記憶媒体、ＲＯＭ等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。ファイル処理装置１に備えた設定ファイル部１０、同期検出部１１−１，１１−２、ブロック化部１２−１，１２−２、ダイジェスト値演算部１３−１，１３−２、比較部１４、連続性判定部１５及び連続化部１６の各機能は、これらの機能を記述したプログラムをＣＰＵに実行させることによりそれぞれ実現される。ファイル処理装置２に備えた設定ファイル部２０、ブロック化部２１−１，２１−２、ダイジェスト値演算部２２−１，２２−２、比較部２３及び連続化部２４の各機能も、これらの機能を記述したプログラムをＣＰＵに実行させることによりそれぞれ実現される。ファイル処理装置３〜８に備えたそれぞれの構成部の各機能も同様である。また、これらのプログラムは、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリ等の記憶媒体に格納して頒布することもできる。
【符号の説明】
【０１３９】
１〜８，１００  ファイル処理装置
１０，２０，１０１  設定ファイル部
１１，３０，４０，５１，７１，８１  同期検出部
１２，２１，３２，４２，５２，６１，７３，８３，１０２  ブロック化部
１３，２２，３３，４３，５３，６２，７４，８４，１０３  ダイジェスト値演算部
１４，２３，３４，４４，５５，６４，７６，８６，１０４  比較部
１５，３５，５６，７７  連続性判定部
１６，２４，３６，４５，５７，６５，７８，８７  連続化部
３１，４１，７２，８２  ブロックサイズ判定部
５０，６０，７０，８０  記憶部
５４，６３，７５，８５  ダイジェスト値読み出し部
９０  編集装置
９１  サーバ
【図１】
2011150428.tif 000003
【図２】
2011150428.tif 000004
【図３】
2011150428.tif 000005
【図４】
2011150428.tif 000006
【図５】
2011150428.tif 000007
【図６】
2011150428.tif 000008
【図７】
2011150428.tif 000009
【図８】
2011150428.tif 000010
【図９】
2011150428.tif 000011
【図１０】
2011150428.tif 000012
【図１１】
2011150428.tif 000013
【図１２】
2011150428.tif 000014
【図１３】
2011150428.tif 000015
【図１４】
2011150428.tif 000016
【図１５】
2011150428.tif 000017
【図１６】
2011150428.tif 000018
【図１７】
2011150428.tif 000019
【図１８】
2011150428.tif 000020
【図１９】
2011150428.tif 000021