JP2011150428A - ファイル処理装置及びプログラム - Google Patents

ファイル処理装置及びプログラム Download PDF

Info

Publication number
JP2011150428A
JP2011150428A JP2010009363A JP2010009363A JP2011150428A JP 2011150428 A JP2011150428 A JP 2011150428A JP 2010009363 A JP2010009363 A JP 2010009363A JP 2010009363 A JP2010009363 A JP 2010009363A JP 2011150428 A JP2011150428 A JP 2011150428A
Authority
JP
Japan
Prior art keywords
file
unit
data
position information
digest value
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
JP2010009363A
Other languages
English (en)
Other versions
JP5340185B2 (ja
Inventor
Yoshinori Izumi
吉則 和泉
Yutaka Kaneko
金子  豊
Shinya Takeuchi
真也 竹内
Minsok Hwang
▲民▼錫 黄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Japan Broadcasting Corp
Original Assignee
Nippon Hoso Kyokai NHK
Japan Broadcasting Corp
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 Nippon Hoso Kyokai NHK, Japan Broadcasting Corp filed Critical Nippon Hoso Kyokai NHK
Priority to JP2010009363A priority Critical patent/JP5340185B2/ja
Publication of JP2011150428A publication Critical patent/JP2011150428A/ja
Application granted granted Critical
Publication of JP5340185B2 publication Critical patent/JP5340185B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ダイジェスト値のコリジョンを簡易な手法により検出し、不一致部分の検出精度を向上させて高信頼化を実現する。
【解決手段】ファイル処理装置1において、ファイルを分割したブロックデータのダイジェスト値を用いて、ファイルの不一致部分を検出する際に、連続性判定部15は、ファイル編集に伴って影響を受ける所定のデータ区間毎に、不一致部分の数が所定の分割数mよりも小さい場合、不一致部分以外の一致部分をコリジョン発生部分として検出する。連続化部16は、コリジョン発生部分を不一致部分に変更する。これにより、ファイル編集に伴って影響を受ける所定のデータ区間内の全てのブロックデータが不一致部分になる。したがって、大容量のファイルデータを比較することなく、コリジョンを検出し排除することができる。
【選択図】図2

Description

本発明は、映像音声等のファイルの同一性または不一致部分を、ハッシュ値等のダイジェスト値を比較することにより検出するファイル処理装置及びプログラムに関し、特に、不一致部分を精度高く検出する技術に関する。
従来、放送局では、映像音声の信号処理の高速化及び蓄積容量の増加に伴い、映像音声の信号をデジタルデータとしてファイルで扱うシステムの導入が進められている。このシステムは、映像音声等の大容量ファイルを、複数のファイル記録装置及びファイル処理装置の間で転送して複製し、複製ファイルを生成する。元ファイルを複製して複製ファイルを生成した後、元ファイルを編集した場合、複製ファイルも元ファイルと同様に編集する必要がある。一般に、このような元ファイルと複製ファイルとの間の同期化の処理は、元ファイル及び複製ファイルを用いて行われるのではなく、元ファイル及び複製ファイルの各データから演算されるダイジェスト値を用いて行われる。元ファイル及び複製ファイルは、大容量の実データであり処理負荷が高いのに対し、ダイジェスト値は、小容量のデータであり処理負荷が低いからである。ここで、元ファイル及び複製ファイルが同期しているとは、両ファイルのデータが一致していることをいう。
一般にダイジェスト値は、SHA(Secure Hash Algorithm)−1、SHA−2、MD(Message Digest Algorithm)1、MD2、MD3、MD4、MD5等のハッシュ関数によって生成される。ハッシュ関数を用いるのは、コリジョンの発生確率が低いこと、固定長のダイジェスト値にデータを圧縮できること、ダイジェスト値の分布が一様であること、演算時間が比較的高速であること等があげられる。
ここで、コリジョンとは、異なる2つのデータから同じダイジェスト値が生成されてしまう現象をいう。コリジョンが発生すると、本来は異なるデータであるにもかかわらず同じデータであると判定されてしまうから、編集された元ファイルのデータが複製ファイルに反映されなくなり、結果として、元ファイルと複製ファイルとの間でデータが不一致(非同期)になってしまう。
しかしながら、大容量のファイルの同期化を実現する場合、ハッシュ関数を用いてダイジェスト値を生成し同期化の処理を行う時間が、ダイジェスト値を用いることなく、ファイルを転送及び記録して差分を書き換えて同期化の処理を行う時間よりも大きくなることがあり得る。そこで、ハッシュ関数を用いてダイジェスト値を生成する演算処理の高速化のために、並列処理、アセンブラ化、事前処理、ハードウェア化等の様々な手法が提案されている(特許文献1,2、非特許文献1,2を参照)。
(従来の不一致部分検出手法1)
ところで、ハッシュ関数を用いてダイジェスト値を生成する場合、異なる2つのデータから同じダイジェスト値が生成されてしまうコリジョンは、統計的に起こりえる現象であり、その発生確率は、天文学的数値分の1であり限りなくゼロに近い。このため、ファイル同期化処理を精度高く実現することができる。
図19は、従来のファイル処理装置の構成を示すブロック図である。このファイル処理装置は、ハッシュ関数を用いてダイジェスト値を生成し、ダイジェスト値が異なる部分を不一致部分として検出する。そして、不一致部分として検出された箇所にデータを上書きすることにより、ファイル#1,#2が同期化される。具体的には、2つのファイル#1,#2の不一致部分を検出する際に、ファイル#1,#2をブロックデータにそれぞれブロック化し、ブロックデータのダイジェスト値をそれぞれ演算して比較し、異なるダイジェスト値を有するブロックデータの部分を、不一致部分として検出する。このファイル処理装置100は、設定ファイル部101、ブロック化部102−1,102−2、ダイジェスト値演算部103−1,103−2及び比較部104を備えている。
設定ファイル部101は記憶手段であり、オペレータにより予め設定されたブロックサイズNが設定ファイルとして格納されている。ここで、ブロックサイズNは、ブロック化部102−1,102−2において、ファイルデータがブロックデータに分割される際の、ブロックデータのサイズ(バイト数)である。
ブロック化部102−1は、ファイル#1データを入力し、設定ファイル部101からブロックサイズNを読み出し、ファイル#1データをブロックサイズNのデータ(ブロックデータ)に分割してブロック化し、ブロックデータ及びその位置情報をダイジェスト値演算部103−1に出力する。ここで、位置情報は、ファイル#1データにおけるブロックデータの位置を示す情報であり、例えば、ファイルを構成するフレームの番号及びフレームを構成するブロックの番号である。同様に、ファイルブロック化部102−2は、ファイル#2データを入力し、設定ファイル部101からブロックサイズNを読み出し、ファイル#2データをブロックサイズNのブロックデータに分割してブロック化し、ブロックデータ及びその位置情報をダイジェスト値演算部103−2に出力する。
ダイジェスト値演算部103−1は、ブロック化部102−1からブロックデータ及び位置情報を入力し、ブロックデータに対し、SHA−1等のハッシュ関数による演算を行ってダイジェスト値を求め、ブロックデータのダイジェスト値及び位置情報を比較部104に出力する。同様に、ダイジェスト値演算部103−2は、ブロック化部102−2からブロックデータ及び位置情報を入力し、ブロックデータに対し、SHA−1等のハッシュ関数による演算を行ってダイジェスト値を求め、ブロックデータのダイジェスト値及び位置情報を比較部104に出力する。ここで、ダイジェスト値演算部103−1,103−2は、同じハッシュ関数を用いて演算を行う。
比較部104は、ダイジェスト値演算部103−1からブロックデータのダイジェスト値及び位置情報を入力すると共に、ダイジェスト値演算部103−2からブロックデータのダイジェスト値及び位置情報を入力し、同じ位置情報のダイジェスト値を比較する。比較部104は、2つのダイジェスト値が異なるものと判定した場合、その位置情報が示す位置のブロックデータは一致していないとして、その位置のブロックデータを不一致部分として検出する。そして、検出した不一致部分の位置情報を出力する。
ここで、ブロックサイズNは、設定ファイル部101において、比較部104にてファイルが比較され、不一致部分が検出される際の検出精度等に応じて設定される。例えば、映像音声ファイルの差分を更新する機能を有するファイル処理装置100では、100Mbpsの映像符号化データに対して、例えば、ブロックサイズN=1MB,4kBが設定される。映像編集の最低単位である1フレームのデータ量は約400kBであるため、ブロックサイズN=1MBの例ではフレームの約2倍の大きさの精度にて差分が検出され、ブロックサイズN=4kBの例ではフレームの1/100倍の大きさの精度にて差分が検出されることになる。
ブロックサイズN=1MBの例では、高速に複数のファイルを同期化するのが目的である。したがって、ブロックサイズN=1MBは、時間をかけて不一致部分を精度高く検出するよりも、不一致部分が多少多くても少ないデータ量で高速に比較することを優先する場合に設定される。また、ブロックサイズN=4kBの例では、ファイルシステムの工夫によってハードディスク上のファイルの差し替えを高速化するのが目的である。したがって、ブロックサイズN=4kBは、ファイルシステムのデータ単位である4kB毎に不一致部分を検出する必要がある場合に設定される。
このように、ファイル処理装置100によれば、ファイル#1,#2におけるブロックデータのダイジェスト値を、ハッシュ関数を用いてそれぞれ演算し、ダイジェスト値の異なるブロックデータの位置情報を不一致部分の位置情報として出力するようにした。これにより、ファイル#1とファイル#2との間の不一致部分を検出することができ、ファイル同期化処理を実現することができる。
(従来の不一致部分検出手法2)
しかしながら、図19に示したファイル処理装置100では、ダイジェスト値のコリジョンの発生確率をゼロにすることはできない。そこで、コリジョンを排除する点に着目した手法も提案されている。具体的には、ダイジェスト値と元ファイルとを記録しておき、ダイジェスト値が異なる箇所を不一致部分とし、さらに、一致部分に対し、元ファイルを用いて比較することにより、コリジョンの発生を検出する。
(従来の不一致部分検出手法3)
また、ハッシュ関数を用いてダイジェスト値を演算し、ダイジェスト値が異なる部分を不一致部分として検出する際の安全性の観点から、コリジョンの発生を低下させるために、ビット長の長いハッシュ関数を用いる手法、及び標準化した新しいハッシュ関数を用いる手法が提案されている(非特許文献3を参照)。さらに、コリジョンの発生を低下させるために、複数のダイジェスト値を用いることにより、階層的に高信頼化を実現する手法も提案されている(非特許文献4を参照)。
特開2005−208400号公報 特開2009−230523号公報
松井充、"暗号アルゴリズムの最新動向 −安全性と実装性の現状と課題−"、[online]、平成18年12月7日、[平成21年12月17日検索]、インターネット<URL:http://www.soi.wide.ad.jp/class/20060031/slides/41/index_1.html>、スライド47,48 Yong Ki Lee、他2名、"Design Methodology for Throughput Optimum Architectures of Hash Algorithms of the MD4-class"、 [online]、[平成21年12月17日検索]、インターネット<URL:http://www.cosic.esat.kuleuven.be/publications/article-1031.pdf> "CRYPTOGRAPHIC HASH PROJECT"、[online]、NIST、[平成21年12月17日検索]、インターネット<URL:http://csrc.nist.gov/groups/ST/hash/index.html > "暗号学的ハッシュ関数"、[online]、平成21年9月19日、フリー百科辞典「ウィキペディア(Wikipedia)、[平成21年12月17日検索]、インターネット<URL:http://ja.wikipedia.org/wiki/暗号学的ハッシュ関数
前述した従来の不一致部分検出手法1は、ハッシュ関数を用いてダイジェスト値を演算し、ダイジェスト値を比較することにより、ダイジェスト値が異なる部分を不一致部分として検出するものである。したがって、この手法によるファイル同期化処理の安全性は、ハッシュ関数を用いた場合のコリジョン発生確率の低さに依存する。
しかしながら、ハッシュ関数を用いた場合のコリジョン発生確率はゼロではない。このため、ゼロでないハッシュ関数を用いる限り、コリジョンの発生は避けることができず、本来は不一致であるブロックデータであるにもかかわらず、一致しているものとして誤検出する可能性があった。この場合、高い信頼性が要求される用途、例えば、正確性が絶対使命である放送局における用途では、番組内容を検査したり比較したりする際にコリジョンが発生すると、番組内容がエラーとなるから、安全性及び信頼性の観点から、ハッシュ関数を用いてダイジェスト値を演算する処理をそのまま使用することができないという問題があった。
ちなみに、SHA−1のハッシュ関数を用いた場合、160ビットのダイジェスト値が生成されるから、ダイジェスト値としては2160の空間を有することになる。この空間に相当するブロックデータからなる番組ファイルの数は、ファイルを1MB毎にブロックデータに分割した場合で概算すると、100Mbpsの60分番組の24時間×5メディア分を1年分の番組数として、1億の5乗年分になる。したがって、コリジョンの発生は天文学的に低い確率となる。実際のところ、SHA−1のハッシュ関数を用いた場合のコリジョン発生例は未だに報告されていないが、コリジョンが発生する可能性はある。これに対し、MD−5のハッシュ関数を用いた場合のコリジョン発生例は報告されている。
また、前述した従来の不一致部分検出手法2は、不一致部分検出手法1において、ダイジェスト値のコリジョン発生確率をゼロにすることができないという問題を解決するために、ダイジェスト値が異なる部分を不一致部分とし、さらに、一致部分について、ダイジェスト値を用いることなく元ファイルを用いて比較することにより、コリジョンの発生を検出する。しかしながら、この手法では、コリジョンの発生を検出するためにファイルデータを用いるから、大容量のデータを保持して処理する必要があり、処理が複雑になって処理負荷が高くなるという問題があった。また、データを比較するのに時間がかかるという問題もあった。
また、前述した従来の不一致部分検出手法3は、ビット長の長いハッシュ関数、標準化した新しいハッシュ関数を用いてコリジョンの発生を低下させるものであり、階層的に複数のダイジェスト値を用いて、コリジョンの発生を低下させるものである。しかしながら、これらの手法では、データ量が増加し、演算時間が増加するという問題があった。
そこで、本発明はかかる問題を解決するためになされたものであり、その目的は、ファイルを分割したブロックデータのダイジェスト値を用いて、2つのファイルの不一致部分を検出するファイル処理装置において、ダイジェスト値のコリジョンを簡易な手法により検出し、不一致部分の検出精度を向上させて高信頼化を実現可能なファイル処理装置及びプログラムを提供することにある。
上記目的を達成するために、本発明による請求項1のファイル処理装置は、複数のファイルのデータを比較して不一致部分を検出するファイル処理装置において、前記ファイルのそれぞれについて、前記ファイルにおける処理単位のサイズを示す同期間隔、及び前記同期間隔における先頭位置のタイミングを検出し、同期情報を生成する同期検出部と、前記ファイルのそれぞれについて、前記同期検出部により生成された同期情報の示す同期間隔及びタイミングに従って、前記ファイルのデータを、所定のデータ区間内で所定のブロックサイズのブロックデータに分割し、前記ファイル内の前記ブロックデータの位置を示す位置情報を生成するブロック化部と、前記ファイルのそれぞれについて、前記ブロック化部により分割されたブロックデータのダイジェスト値を演算するダイジェスト値演算部と、前記ダイジェスト値演算部により演算されたダイジェスト値を、前記ブロック化部により生成された同じ位置情報が示す位置毎に比較し、異なるダイジェスト値の位置情報を、前記ファイルの不一致部分の位置情報として出力する比較部と、前記比較部により出力された不一致部分の位置情報を入力し、前記不一致部分の位置情報に基づいて、前記所定のデータ区間内で不一致部分の連続性を判定し、前記所定のデータ区間内で不一致部分が連続していない一致部分をコリジョン発生部分とし、前記コリジョン発生部分の位置情報及び前記不一致部分の位置情報を出力する連続性判定部と、前記連続性判定部により出力されたコリジョン発生部分の位置情報及び不一致部分の位置情報を入力し、前記コリジョン発生部分の位置情報を不一致部分の位置情報に変更して不一致部分を連続させ、前記連続させた不一致部分の位置情報を出力する連続化部と、を備えたことを特徴とする。
また、本発明による請求項2のファイル処理装置は、複数のファイルのデータを比較して不一致部分を検出するファイル処理装置において、前記ファイルのそれぞれについて、前記ファイルのデータを、所定のブロックサイズのブロックデータに分割し、前記ファイル内の前記ブロックデータの位置を示す位置情報を生成するブロック化部と、前記ファイルのそれぞれについて、前記ブロック化部により分割されたブロックデータのダイジェスト値を演算するダイジェスト値演算部と、前記ダイジェスト値演算部により演算されたダイジェスト値を、前記ブロック化部により生成された同じ位置情報が示す位置毎に比較し、異なるダイジェスト値の位置情報を、前記ファイルの不一致部分の位置情報として出力する比較部と、前記比較部により出力された不一致部分の位置情報を入力し、前記不一致部分の位置情報が示す位置の前後に、前記不一致部分を所定数分広げて連続させ、前記連続させた不一致部分の位置情報を出力する連続化部と、を備えたことを特徴とする。
また、本発明による請求項3のファイル処理装置は、請求項1に記載のファイル処理装置において、さらに、前記同期検出部により生成された同期情報が前記ファイルのそれぞれについて同一であると判定した場合、前記所定のデータ区間内におけるファイルのデータをブロックデータに分割する際の所定の分割数に基づいて、ブロックサイズを判定するブロックサイズ判定部を備え、前記ブロック化部が、前記ファイルのそれぞれについて、前記ファイルのデータを、前記所定のデータ区間内で、前記ブロックサイズ判定部により判定されたブロックサイズのブロックデータに分割し、前記ファイル内における前記ブロックデータの位置を示す位置情報を生成する、ことを特徴とする。
また、本発明による請求項4のファイル処理装置は、請求項2に記載のファイル処理装置において、さらに、前記ファイルのそれぞれについて、前記ファイルにおける処理単位のサイズを示す同期間隔、及び前記同期間隔における先頭位置のタイミングを検出し、同期情報を生成する同期検出部と、前記同期検出部により生成された同期情報が前記ファイルのそれぞれについて同一であると判定した場合、前記所定のデータ区間内におけるファイルのデータをブロックデータに分割する際の所定の分割数に基づいて、ブロックサイズを判定するブロックサイズ判定部と、を備え、前記ブロック化部が、前記ファイルのそれぞれについて、前記ファイルのデータを、前記所定のデータ区間内で、前記ブロックサイズ判定部により判定されたブロックサイズのブロックデータに分割し、前記ファイル内における前記ブロックデータの位置を示す位置情報を生成する、ことを特徴とする。
また、本発明による請求項5のファイル処理装置は、請求項1または2に記載のファイル処理装置において、さらに、前記比較する複数のファイルのうちの1つのファイルが蓄積され、かつ、前記1つのファイルについてのブロックデータのダイジェスト値及び位置情報が蓄積された記憶部を備え、前記記憶部に蓄積されたファイルについて処理する前記ブロック化部、ダイジェスト値演算部及び請求項1の同期検出部の代わりにダイジェスト値読み出し部を備え、前記ダイジェスト値読み出し部が、前記記憶部に蓄積されていない他のファイルについて処理する前記ブロック化部により生成された位置情報に対応するダイジェスト値を、前記記憶部から読み出し、前記比較部が、前記記憶部に蓄積されていない他のファイルについて処理する前記ダイジェスト値演算部により演算されたダイジェスト値と、前記ダイジェスト値読み出し部により読み出されたダイジェスト値とを、同じ位置情報が示す位置毎に比較し、異なるダイジェスト値の位置情報を、前記ファイルの不一致部分の位置情報として出力する、ことを特徴とする。
また、本発明による請求項6のファイル処理装置は、請求項3または4に記載のファイル処理装置において、さらに、前記比較する複数のファイルのうちの1つのファイルが蓄積され、かつ、前記1つのファイルについての同期情報、ブロックデータのダイジェスト値及び位置情報が蓄積された記憶部を備え、前記記憶部に蓄積されたファイルについて処理する前記同期検出部、ブロック化部及びダイジェスト値演算部の代わりにダイジェスト値読み出し部を備え、前記ダイジェスト値読み出し部が、前記記憶部に蓄積されていない他のファイルについて処理する前記ブロック化部により生成された位置情報に対応するダイジェスト値を、前記記憶部から読み出し、前記ブロックサイズ判定部が、前記記憶部に蓄積されていない他のファイルについて処理する前記同期検出部により生成された同期情報と、前記記憶部に蓄積されたファイルの同期情報とが同一であると判定した場合、前記ファイルのデータをブロックデータに分割する際の所定の分割数に基づいて、ブロックサイズを判定し、前記比較部が、前記記憶部に蓄積されていない他のファイルについて処理する前記ダイジェスト値演算部により演算されたダイジェスト値と、前記ダイジェスト値読み出し部により読み出されたダイジェスト値とを、同じ位置情報が示す位置毎に比較し、異なるダイジェスト値の位置情報を、前記ファイルの不一致部分の位置情報として出力する、ことを特徴とする。
さらに、本発明によるファイル処理プログラムは、コンピュータを、請求項1から6までのいずれか一項に記載のファイル処理装置として機能させることを特徴とする。
以上のように、本発明によれば、ファイルを分割したブロックデータのダイジェスト値を用いて、2つのファイルの不一致部分を検出し、ファイル編集の単位を基準にして不一致部分の連続性を判定することにより、または不一致部分を拡大することにより、ダイジェスト値のコリジョンを検出し排除するようにした。これにより、大容量のファイルデータを比較することなく、簡易な手法によりコリジョンを検出することができる。また、2つのファイルの不一致部分を一致部分であるとして誤って判定することがなくなる。つまり、不一致部分の検出精度を向上させ、高信頼化を実現することができる。
本発明の実施形態によるファイル処理装置を含む全体システムの構成を示す図である。 本発明の第1の実施形態(実施例1)によるファイル処理装置の構成を示すブロック図である。 連続性判定部の処理を示すフローチャートである。 分割数m=2、定数X=1の場合において、同期しているブロックデータの不一致部分及びコリジョン発生部分を説明する図である。 分割数m=1.5、定数X=1の場合において、同期しているブロックデータの不一致部分及びコリジョン発生部分を説明する図である。 本発明の第2の実施形態(実施例2)によるファイル処理装置の構成を示すブロック図である。 連続化部の処理を示すフローチャートである。 分割数m=1.5、定数X=1、及び、フレームとブロックデータを同期させることなくブロック化を行い、不一致部分の前後1ブロックをコリジョン排除の対象(排除コリジョン数n=1)とした場合を説明する図である。 分割数m=1.5、定数X=1、及び、フレームとブロックデータとを同期させることなくブロック化を行い、不一致部分の前後2ブロックをコリジョン排除の対象(排除コリジョン数n=2)とした場合を説明する図である。 本発明の第3の実施形態(実施例3)によるファイル処理装置の構成を示すブロック図である。 ブロックサイズ判定部の処理を示すフローチャートである。 本発明の第4の実施形態(実施例4)によるファイル処理装置の構成を示すブロック図である。 本発明の第5の実施形態(実施例5)によるファイル処理装置の構成を示すブロック図である。 本発明の第6の実施形態(実施例6)によるファイル処理装置の構成を示すブロック図である。 本発明の第7の実施形態(実施例7)によるファイル処理装置の構成を示すブロック図である。 本発明の第8の実施形態(実施例8)によるファイル処理装置の構成を示すブロック図である。 映像音声ファイルの種類と編集単位との関係を説明する図である。 MXFファイルのフォーマットを説明する図である。 従来のファイル処理装置の構成を示すブロック図である。
以下、本発明を実施するための最良の形態について、図面を参照して説明する。本発明は、元ファイルとそれが編集されたファイル(編集ファイル)との間の不一致部分を検出する際に、これらのファイルデータを用いることなく、ダイジェスト値を用いるものである。ダイジェスト値を用いて不一致部分を検出する場合、ダイジェスト値のコリジョンが発生する可能性がある。そこで、本発明では、ファイルの編集に伴って、1フレームを構成する複数のブロックデータの全てが本来的に不一致になるにもかかわらず、その一部が一致になるという通常あり得ない状態を判定し、その一致部分をコリジョン発生部分として検出し排除することを特徴とする。具体的には、ダイジェスト値を比較して検出したブロックデータの不一致部分の長さ(連続性)が、ファイルの編集単位である所定数以下である場合は、あり得ない状態であると判定する。
一般に、ファイルの編集はフレーム単位で行われるから、不一致部分はフレーム単位で検出される。つまり、編集されたファイルのフレームを構成する複数のブロックデータは、その全てが不一致部分となり、不一致部分の位置は、フレーム内において連続したものとなる。しかしながら、編集されたファイルのフレームを構成する複数のブロックデータのうち、不一致部分でない一致部分が検出される場合があり得る。本発明では、この一致部分をコリジョン発生部分として扱い、不一致部分に変更する。すなわち、本発明は、ファイルを分割したブロックデータのダイジェスト値を比較することにより、2つのファイルの不一致部分を検出し、その不一致部分の位置に基づいてコリジョンを検出し、検出したコリジョンを排除する。これにより、大容量の元ファイルのデータを用いることなく、簡易な手法によりコリジョンによる不一致部分の検出漏れをなくすことができ、不一致部分の検出精度を向上させて高信頼化を実現することができる。
以下に説明する実施例1〜4は、2つのファイルに対して、ファイルを分割したブロックデータのダイジェスト値をそれぞれ演算して比較し、不一致部分を検出し、コリジョンを検出して排除する。実施例5〜8は、2つのファイルのうち1つのファイルについてのダイジェスト値が、予め演算され記憶されている場合に、他の1つのファイルに対してダイジェスト値を演算し、記憶されたダイジェスト値と比較し、不一致部分を検出し、コリジョンを検出して排除する。
また、実施例1,2,5,6は、比較する2つのファイルにおいて、ファイルデータの処理単位を示すフレームサイズ(同期間隔)が一定であり、かつ一致している場合の例である。対象ファイルは、例えば、固定レートの映像音声ファイルである。実施例3,4,7,8は、比較する2つのファイルにおいて、ファイルデータの処理単位を示すフレームサイズ(同期間隔)が変化する場合の例である。対象ファイルは、例えば、可変レートの映像音声ファイルである。
また、実施例1,3,5,7は、フレームとブロックデータとが同期しており、ダイジェスト値が異なるブロックデータの部分を不一致部分とし、不一致部分の連続性を判定し、コリジョンを検出して排除する。実施例2,4,6,8は、フレームとブロックデータとが同期しておらず、ダイジェスト値が異なるブロックデータの部分を不一致部分とし、不一致部分の近傍をコリジョンが発生した部分であると推定し、推定したコリジョンを排除する。
〔全体システム〕
まず、本発明の実施形態によるファイル処理装置を含む全体システムについて説明する。図1は、全体システムの構成を示す図である。このシステムは、元ファイルを格納するファイル処理装置1〜8、元ファイルを編集する編集装置90、及び、複製ファイルを格納するサーバ91−1,91−2,・・・を備えて構成される。編集装置90において元ファイルが編集された場合、ファイル処理装置1〜8に格納される元ファイルと、サーバ91−1,91−2,・・・に格納される複製ファイルとが常に同一になるように、所定の処理を行う。ファイル処理装置1〜8と編集装置90とは、インターネットまたはイントラネット等の通信ネットワークにより接続され、同様に、ファイル処理装置1〜8とサーバ91−1,91−2,・・・とは、インターネットまたはイントラネット等の通信ネットワークにより接続される。
ファイル処理装置1〜8は、映像音声等のファイルを元ファイルとして記憶手段に格納しており、編集装置90によるファイル編集処理に先立って、元ファイルを編集装置90へ送信する。また、ファイル処理装置1〜8は、編集装置90によるファイル編集処理の後、編集装置90から編集ファイルを受信し、元ファイルと編集ファイルとの間の不一致部分を、ハッシュ関数等の所定の関数または演算式から演算したダイジェスト値に基づいて検出し、編集ファイルのデータのうち不一致部分のデータを編集データとしてサーバ91−1,91−2,・・・へ送信すると共に、不一致部分の位置情報をサーバ91−1,91−2,・・・へ送信する。また、ファイル処理装置1〜8は、編集装置90から受信した編集ファイルを元ファイルとして記憶手段に格納する。
編集装置90は、ファイル処理装置1〜8から元ファイルを受信し、元ファイルに対し、オペレータによるマウス、キーボード等の入力操作に従って編集を行い、編集ファイルを生成する。また、編集装置90は、編集ファイルをファイル処理装置1〜8へ送信する。
サーバ91−1,91−2,・・・は、ファイル処理装置1〜8から編集データ及び位置情報を受信し、記憶手段に格納された複製ファイルに対し、位置情報が示す領域に編集データを上書きする。これにより、ファイル処理装置1〜8に格納された元ファイルと、サーバ91−1,91−2,・・・に格納された複製ファイルとが同一になる。
以下、図1に示したシステムのファイル処理装置1〜8について、実施例1〜8に分けてそれぞれ詳細に説明する。
まず、実施例1について詳細に説明する。実施例1のファイル処理装置1は、比較する2つのファイルのフレームサイズ(同期間隔)が一定及び一致しており、フレームとブロックデータとが同期している場合において、ファイルの不一致部分を検出する装置である。具体的には、ファイル処理装置1は、2つのファイルに対し、ファイルを分割したブロックデータのダイジェスト値をそれぞれ演算して比較し、ダイジェスト値が異なるブロックデータの部分を不一致部分として検出する。そして、ファイル処理装置1は、検出した不一致部分の連続性を判定し、連続すべき不一致部分に一致部分が含まれる場合、この一致部分をコリジョン発生部分とし、コリジョン発生部分を不一致部分に変更することにより、コリジョンを排除する。比較する2つのファイルは、図1の例では、元ファイル及び編集ファイルである。後述する実施例2〜8についても同じ。
図2は、実施例1によるファイル処理装置1の構成を示すブロック図である。このファイル処理装置1は、設定ファイル部10、同期検出部11−1,11−2、ブロック化部12−1,12−2、ダイジェスト値演算部13−1,13−2、比較部14、連続性判定部15及び連続化部16を備えている。
設定ファイル部10は記憶手段であり、オペレータにより予め設定されたブロックサイズN及び分割数mが設定ファイルとして格納されている。ここで、ブロックサイズNは、前述したとおり、ブロック化部12−1,12−2において、フレームサイズを示す同期間隔またはその同期間隔の整数倍(X倍)のデータ(1つのフレームまたは複数のフレーム)がブロックデータに分割される際の、ブロックデータのサイズ(バイト数)である。分割数mは、同期間隔またはその同期間隔の整数倍(X倍)のデータ(1つのフレームまたは複数のフレーム)がブロックデータに分割される際の、ブロックデータの数である。
同期検出部11−1は、ファイル#1データ(編集ファイルのデータ)を入力し、1つのフレームまたは複数フレームを処理単位とした場合のフレームサイズを示す同期間隔、及びその同期間隔の先頭位置のタイミングを検出し、同期情報を生成してブロック化部12−1に出力する。同様に、同期検出部11−2は、ファイル#2データ(元ファイルのデータ)を入力し、同期間隔及び処理のタイミングを検出し、同期情報を生成してブロック化部12−2に出力する。
ここで、同期検出部11−1,11−2について詳細に説明する。本実施例1〜8が対象とする映像音声ファイルには、非圧縮データのファイル及び圧縮データのファイルの2種類がある。非圧縮データのファイルは、撮像された映像データ及び録音された音声データがそのままファイル化されたものである。修正、加工等の編集処理は、画面単位、すなわちフレーム単位で行われ、通常、映像信号には、ライン及びフレームの先頭を示すためのヘッダー情報が用いられている。
したがって、映像音声ファイルが非圧縮データの場合、同期検出部11−1,11−2は、ヘッダー情報からラインまたはフレームの先頭を検出し、フレームサイズを示す同期間隔、及びその同期間隔の先頭位置のタイミングを検出する。このように、編集処理の単位であるフレームは、ヘッダー情報に基づいて容易に検出することができ、同期情報を容易に生成することができる。
一方、圧縮データのファイルは、様々な手段によりデータの冗長性を取り除いてデータ量が減らされ、ファイル化されたものであり、映像音声ファイルの場合、MPEG−2、JPEG、Wavelet、H.264等の規格のファイルが実用化されている。これらの圧縮データにおいても、映像データ及び音声データは、フレームまたは複数フレームとしてまとめて扱われ、映像信号には、フレームまたは複数フレームの先頭を示すためのヘッダー情報が用いられている。
したがって、映像音声ファイルが圧縮データの場合、非圧縮データの場合と同様に、同期検出部11−1,11−2は、ヘッダー情報からフレームまたは複数フレームの先頭を検出し、フレームサイズを示す同期間隔、及びその同期間隔の先頭位置のタイミングを検出する。
例えば、MPEG−2の映像音声ファイルには、編集用途を考慮したI−onlyのファイル、及び圧縮率の高いlong−GOPのファイルがある。さらに、I−onlyのファイルには、固定レート(CBR)のファイル及び可変レート(VBR)のファイルがある。固定レート(CBR)のファイルの場合、データ量が一定であるから、フレームの先頭が固定周期となり、非圧縮データのファイルと同様に扱うことができる。これに対し、可変レート(VBR)のファイルの場合、映像音声の情報量に応じてデータ量が変化するから、フレームの周期が変動することなり、非圧縮データのファイルと同様に扱うことができない。
また、I−onlyのファイルの場合、フレーム内でデータが圧縮され符号化が行われるから、同期検出部11−1,11−2は、ヘッダー情報からフレームの先頭を検出することができ、フレーム単位でデータを扱うことができる。これに対し、long−GOPのファイルの場合、複数フレームを集めたGOPの単位で符号化が行われるから、同期検出部11−1,11−2は、ヘッダー情報からGOPの先頭を検出することができ、GOP単位でデータを扱うことができる。また、ヘッダー情報を解読して演算することにより、GOPを構成する各フレームの先頭を求めることもできる。しかしながら、long−GOPでは、本来、複数フレーム内でデータ処理され圧縮されるから、圧縮データをフレーム単位で処理したとしても、他のフレームとの間で符号化処理の連続性及び一貫性を保つためには再符号化が必要となる。そこで、ここでは、修正、加工等の編集処理はGOP単位の場合を対象とする。
図17は、映像音声ファイルの種類と編集単位との関係を説明する図である。図17において、非圧縮データからなる固定レート(CBR)のファイルの場合、フレーム毎に編集が行われ、同期検出部11−1,11−2は、ヘッダー情報からフレームを検出し同期情報を生成する。また、非圧縮データからなる可変レート(VBR)のファイルの場合、フレーム毎に編集が行われ、後述する実施例3の同期検出部30−1,30−2等は、ヘッダー情報からフレームを検出し同期情報を生成する。また、MPEG−2のI−onlyの圧縮データからなる固定レート(CBR)及び可変レート(VBR)のファイルの場合も、非圧縮データの場合と同様に、フレーム毎に編集が行われる。また、MPEG−2のlong−GOPの圧縮データからなる可変レート(VBR)のファイルの場合、GOP毎に編集が行われ、後述する実施例3の同期検出部30−1,30−2等はヘッダー情報から複数フレームのGOPを検出し同期情報を生成する。
さらに最近、様々な種類の映像音声をファイルとして扱うための共通フォーマットとして、MXFファイルフォーマットを用いることが一般的になっている。MXFは、非圧縮及び圧縮を問わず、共通のヘッダー形式でコンピュータがファイルを認識できるようにするファイルの形式である。
図18は、MXFファイルのフォーマットを説明する図である。MXFファイルは、ヘッダー(File Header)、ボディ(File Body)及びフッター(File Footer)により構成される。ヘッダー及びフッターには、メタデータ、インデックステーブル(Index Table)等が格納され、映像音声データの種類等に依存しない、データの種類及びデータの配置(フレームの単位、GOPの単位等)を示す構造になっている。ボディには、KLVコーディングという、実データのタイプを示すキー(Key)、データ長を示すレングス(Length)、及びデータ実体のバリュー(Value)を単位とした映像音声データがパックされる。
MXFフォーマットのファイルの場合、ヘッダーのインデックステーブルからデータのパック状態を認識することができる。したがって、同期検出部11−1,11−2または後述する実施例3の同期検出部30−1,30−2等は、ヘッダーのインデックステーブル(Index Table)、またはボディのキー(Key)からファイルの編集単位であるフレームまたはGOPのサイズを読み取り、フレーム等を処理単位とした場合のサイズを示す同期間隔、及びその同期間隔の先頭位置のタイミングを検出する。尚、ヘッダーのインデックステーブル(Index Table)及びボディのキー(Key)は既知であるから、これらの詳細な説明は省略する。
また、後述する実施例3の同期検出部30−1,30−2等は、MPEG−2の圧縮データからなる可変レート(VBR)のファイルの場合、ヘッダーからGOPのサイズを読み取り、GOPを処理単位とした場合のサイズを示す同期間隔、及びその同期間隔の先頭位置のタイミングを検出する。また、後述する実施例3の同期検出部30−1,30−2等は、MPEG−2のI−onlyの圧縮データからなる可変レート(VBR)のファイルの場合、ヘッダーからフレーム間隔のサイズ(フレームサイズ)を読み取り、フレームサイズ示す同期間隔、及びその同期間隔の先頭位置のタイミングを検出する。
図2に戻って、ブロック化部12−1は、ファイル#1データを入力すると共に、同期検出部11−1から同期情報を入力し、設定ファイル部10からブロックサイズNを読み出し、同期情報が示すタイミングを基点として、同期情報が示す同期間隔またはその同期間隔の整数倍(X倍)のデータをブロックサイズNに分割し、分割したブロックデータの位置を示す位置情報を生成し、ブロックデータ及びその位置情報をダイジェスト値演算部13−1に出力する。同様に、ブロック化部12−2は、ファイル#2データを入力すると共に、同期検出部11−2から同期情報を入力し、設定ファイル部10からブロックサイズNを読み出し、同期情報が示すタイミングを基点として、同期情報が示す同期間隔またはその同期間隔の整数倍(X倍)のデータをブロックサイズNに分割し、分割したブロックデータの位置を示す位置情報を生成し、ブロックデータ及び位置情報をダイジェスト値演算部13−2に出力する。尚、同期情報が示す同期間隔またはその同期間隔の整数倍(X倍)のデータは、分割数mのブロックデータに分割される。
ここで、ファイルデータをブロックサイズに分割する際の整数倍(X倍)の値は予め設定される。また、位置情報は、ファイル内におけるブロックデータの位置を示す情報であり、例えば、フレームの番号、及び、1つのフレームまたは複数のフレーム内のブロックの番号である。同期間隔をF、倍数を示す定数をXとすると、ファイルが分割されたブロックデータのサイズ(ブロックサイズN)は、N=F×X/mで表される。すなわち、設定ファイル部10から読み出されるブロックサイズNは、映像の処理単位を示すフレームサイズである同期間隔F及び分割数mにより決定され、前記式の関係にある。設定ファイル部10には、この式を満たすブロックサイズN及び分割数mが予め設定され、格納されている。定数Xは、コリジョンを排除するための範囲を定める値である。例えば、X=1の場合、編集単位であるフレーム毎にコリジョンが排除され、X=2の場合、編集単位の2倍である2フレーム毎にコリジョンが排除される。
ダイジェスト値演算部13−1は、ブロック化部12−1からブロックデータ及び位置情報を入力し、ブロックデータに対し、ハッシュ関数等の所定の関数または演算式を用いて、ブロックデータの要約であるダイジェスト値を演算し、ダイジェスト値及び位置情報を比較部14に出力する。同様に、ダイジェスト値演算部13−2は、ブロック化部12−2からブロックデータ及び位置情報を入力し、ブロックデータに対し、ダイジェスト値演算部13−1において用いる同じ関数または演算式を用いて、ダイジェスト値を演算し、ダイジェスト値及び位置情報を比較部14に出力する。ここで、ダイジェスト値を演算するために用いる関数として、一般にハッシュ関数が用いられるが、本発明では、ハッシュ関数に限定するものではなく、他の関数または演算式であってもよい(以下の実施例2〜8についても同じ)。
比較部14は、ダイジェスト値演算部13−1から、ファイル#1のブロックデータにおけるダイジェスト値及び位置情報を入力すると共に、ダイジェスト値演算部13−2から、ファイル#2のブロックデータにおけるダイジェスト値及び位置情報を入力し、同じ位置情報のダイジェスト値を比較し、異なるダイジェスト値の位置情報を不一致部分の位置情報として連続性判定部15に出力する。比較部14により出力された不一致部分の位置情報は、ファイル#1,#2間で不一致部分の位置を示す情報となる。
連続性判定部15は、比較部14から不一致部分の位置情報を入力し、設定ファイル部10から分割数mを読み出し、フレームサイズ(同期間隔)またはその整数倍(X倍)のデータ区間において、不一致部分の連続性を判定し、不一致部分が連続していない不一致部分をコリジョン発生部分とすることにより、コリジョンの発生を検出し、不一致部分の位置情報及びコリジョン発生部分の位置情報を連続化部16に出力する。
図3は、連続性判定部15の処理を示すフローチャートである。連続性判定部15は、比較部14から不一致部分の位置情報を入力し(ステップS301)、設定ファイル部10から分割数mを読み出す(ステップS302)。そして、連続性判定部15は、不一致部分の位置情報から、フレームサイズ(同期間隔)またはその整数倍(X倍)のデータ区間(所定のデータ区間)における不一致部分の数を算出する(ステップS303)。この所定のデータ区間には、少なくとも1つの不一致部分が含まれる。不一致部分を全く含まないデータ区間については、連続性判定部15による連続性判定の対象としない。
連続性判定部15は、算出した不一致部分の数と、そのデータ区間におけるブロックデータの数を示す分割数mとを比較する(ステップS304)。連続性判定部15は、ステップS304において、不一致部分の数と分割数mとが同じであると判定した場合(ステップS304:=)、すなわち、データ区間内の全てのブロックデータが不一致部分であると判定した場合、所定のデータ区間において不一致部分は正しく連続していると判断し、コリジョンは発生していないと判定する(ステップS305)。そして、連続性判定部15は、入力した不一致部分の位置情報のみを連続化部16に出力する(ステップS306)。
一方、連続性判定部15は、ステップS304において、不一致部分の数が分割数mよりも小さいと判定した場合(ステップS304:<)、すなわち、データ区間内に一致部分が存在すると判定した場合、所定のデータ区間において不一致部分は正しく連続していないと判断し、コリジョンが発生していると判定する(ステップS307)。そして、連続性判定部15は、所定のデータ区間において、不一致部分以外の部分(不一致部分が連続していない部分)である一致部分を、コリジョン発生部分に設定し(ステップS308)、入力した不一致部分の位置情報、及び、設定したコリジョン発生部分の位置情報を連続化部16に出力する(ステップS309)。
例えば、ファイル#1,#2が非圧縮の映像音声ファイルの場合、同期間隔Fは、1フレームのデータサイズに相当し、分割数mは、1フレームがブロックデータに分割される数であり、m>1とする。以下、X=1,m=2とし、1フレームが2つのブロックデータに分割される場合を想定し、具体的に説明する。ダイジェスト値演算部13−1,13−2により、1フレーム毎に2つのダイジェスト値がそれぞれ生成される。ところで、ファイル編集はフレーム単位で行われるから、ファイルの修正によって生じる不一致部分も、比較部14により、1フレーム単位で検出されることになり、ダイジェスト値の不一致部分は、1フレーム内において2ブロック連続することになる。ここで、1フレーム内において、2ブロックに満たない1ブロックの不一致部分が存在する場合、その欠落部分(一致部分)でコリジョンが発生していることになる。そこで、連続性判定部15は、所定のデータ区間であるフレーム毎に、不一致部分が2ブロック連続するか否かについて、不一致部分の連続性を判定し、不一致部分が2ブロック連続している場合、コリジョンは発生していないと判定し、不一致部分が2ブロック連続しておらず1ブロックのみの場合、一致部分においてコリジョンが発生していると判定する。
このように、連続性判定部15は、ファイル編集に伴って影響を受けるフレームのデータ区間において、全てのブロックデータについて不一致部分が連続していない場合、コリジョンが発生していると判定する。これにより、コリジョンの発生を確実に判定することができる。ファイル編集の影響を受けるフレームのデータ区間において、全てのブロックデータは不一致部分になることが前提になっているからである。
図2に戻って、連続化部16は、連続性判定部15から、不一致部分の位置情報及びコリジョン発生部分の位置情報を入力し、設定ファイル部10から分割数mを読み出し、コリジョン発生部分の位置情報を不一致部分の位置情報に加えるように変更して不一致部分を連続させ、連続させた不一致部分の位置情報を出力する。このように、ファイル編集に伴って影響を受ける所定のデータ区間毎にコリジョンが検出され、検出されたコリジョンの位置情報が不一致部分の位置情報に変更されるから、コリジョンが確実に排除され、正確な不一致部分の位置情報を得ることができる。
図4は、分割数m=2、定数X=1の場合において、フレームとブロックデータとが同期しているときの不一致部分及びコリジョン発生部分を説明する図である。図中、ファイル#1データである編集ファイルの斜線部分は、ファイル編集された箇所を示しており、フレーム2〜4が編集されている。塗りつぶし部分は不一致部分を示しており、αはコリジョン発生部分を示している。比較部14により不一致部分が比較検出された結果、フレーム2における第2のブロック、フレーム3における第1のブロック、及びフレーム4における第1,2のブロックが不一致部分になっている。連続性判定部15により不一致部分の連続性が判定された結果、フレーム2の第1のブロック、及び第3のフレームの第2のブロックがコリジョン発生部分αになっている。そして、連続化部16により、コリジョン発生部分αが不一致部分に変更され、結果として、ファイル編集されたフレーム2〜4の全てのブロックが、不一致部分として検出される。
図5は、分割数m=1.5、定数X=1の場合において、フレームとブロックデータとが同期しているときの不一致部分及びコリジョン発生部分を説明する図である。図4と同様に、ファイル#1データである編集ファイルの斜線部分は、ファイル編集された箇所を示しており、フレーム2〜4が編集されている。また、塗りつぶし部分は不一致部分を示しており、αはコリジョン発生部分を示している。比較部14により不一致部分が比較検出された結果、フレーム1,2における第3のブロック、及びフレーム3,4における第2,3ブロックが不一致部分になっている。連続性判定部15により不一致部分の連続性が判定された結果、フレーム1,2の第2のブロック、及び第3,4のフレームの第1ブロックがコリジョン発生部分αになっている。そして、連続化部16により、コリジョン発生部分αが不一致部分に変更され、結果として、ファイル編集されたフレーム2〜4の全てのブロックが、不一致部分として検出される。ここで、ファイル編集されていないβの部分も不一致部分として検出されるが、図1に示したように、元ファイル及び複製ファイルに対し同じデータが上書きされることになるから、結果として元のデータが維持されることになる。
以上のように、実施例1のファイル処理装置1によれば、ファイルを分割したブロックデータのダイジェスト値を用いて、ファイル#1,2の不一致部分を検出する際に、連続性判定部15が、ファイル編集に伴って影響を受ける所定のデータ区間毎に、不一致部分の連続性を判定し、所定のデータ区間内の不一致部分の数が、所定のデータ区間をブロックデータに分割するために予め設定された分割数mよりも小さい場合、不一致部分以外の一致部分をコリジョン発生部分として検出し、連続化部16が、コリジョン発生部分を不一致部分に変更するようにした。これにより、大容量のファイルデータを比較することなく簡易な手法により、コリジョンを確実に検出し排除することができる。したがって、コリジョンの発生確率が0になるから、不一致部分の検出精度を向上させ、高信頼化を実現することができる。
次に、実施例2について詳細に説明する。実施例2のファイル処理装置2は、比較する2つのファイルのフレームサイズ(同期間隔)が一定及び一致しており、フレームとブロックデータとが同期していない場合において、ファイルの不一致部分を検出する装置である。具体的には、ファイル処理装置2は、2つのファイルに対し、ファイルを分割したブロックデータのダイジェスト値をそれぞれ演算して比較し、ダイジェスト値が異なるブロックデータの部分を不一致部分として検出する。そして、ファイル処理装置2は、検出した不一致部分の前後のブロックデータのうち、一致部分をコリジョン発生部分として推定し、コリジョン発生部分を不一致部分に変更することにより、コリジョンを排除する。
図6は、実施例2によるファイル処理装置2の構成を示すブロック図である。このファイル処理装置2は、設定ファイル部20、ブロック化部21−1,21−2、ダイジェスト値演算部22−1,22−2、比較部23及び連続化部24を備えている。
設定ファイル部20は記憶手段であり、オペレータにより予め設定されたブロックサイズN及び排除コリジョン数nが設定ファイルとして格納されている。ここで、排除コリジョン数nは、連続化部24において、不一致部分の前後のブロックデータをコリジョン発生部分として推定し排除する数である。排除コリジョン数nは、例えば、コリジョンが発生し易いハッシュ関数を用いる場合、大きい値が設定され、コリジョンが発生し難いハッシュ関数を用いる場合、小さい値が設定される。
ブロック化部21−1は、ファイル#1データを入力し、設定ファイル部20からブロックサイズNを読み出し、任意の位相にて、ファイル#1データをブロックサイズNに分割し、分割したブロックデータ及びその位置情報をダイジェスト値演算部22−1に出力する。同様に、ブロック化部21−2は、ファイル#2データを入力し、設定ファイル部20からブロックサイズNを読み出し、任意の位相にて、ファイル#2データをブロックサイズNに分割し、分割したブロックデータ及びその位置情報をダイジェスト値演算部22−2に出力する。ブロック化部21−1,21−2から出力されるそれぞれのブロックデータは、比較する2つのファイル#1,#2のフレームサイズ(同期間隔)が一定及び一致していることが前提であるから、同期していることになる。
ダイジェスト値演算部22−1は、ブロック化部21−1からブロックデータ及び位置情報を入力し、ブロックデータに対し、ハッシュ関数等の所定の関数または演算式を用いてダイジェスト値を演算し、ダイジェスト値及び位置情報を比較部23に出力する。同様に、ダイジェスト値演算部22−2は、ブロック化部21−2からブロックデータ及び位置情報を入力し、ブロックデータに対し、ダイジェスト値演算部22−1において用いる関数等と同じ関数等を用いて、ダイジェスト値を演算し、ダイジェスト値及び位置情報を比較部23に出力する。
比較部23は、ダイジェスト値演算部22−1から、ファイル#1のブロックデータにおけるダイジェスト値及び位置情報を入力すると共に、ダイジェスト値演算部22−2から、ファイル#2のブロックデータにおけるダイジェスト値及び位置情報を入力し、同じ位置情報のダイジェスト値を比較し、異なるダイジェスト値の位置情報を不一致部分の位置情報として連続化部24に出力する。
連続化部24は、比較部23から不一致部分の位置情報を入力し、設定ファイル部20から排除コリジョン数nを読み出し、不一致部分をその前後に排除コリジョン数n分広げて連続化し、不一致部分の位置情報を出力する。
図7は、連続化部24の処理を示すフローチャートである。連続化部24は、比較部23から不一致部分の位置情報を入力し(ステップS701)、設定ファイル部20から排除コリジョン数nを読み出す(ステップS702)。
連続化部24は、不一致部分を基点として、その前後における排除コリジョン数n分のブロックデータが不一致部分であるか、または一致部分であるかをそれぞれ判定する(ステップS703)。そのブロックデータが一致部分であると判定した場合(ステップS703:一致部分)、そのブロックデータをコリジョン発生部分として推定する(ステップS704)。
連続化部24は、コリジョン発生部分を不一致部分に変更し、すなわち、コリジョン発生部分の位置情報を不一致部分の位置情報に加えるように変更する(ステップS705)。連続化部24は、ステップS705から移行した場合、または、ステップS703において、そのブロックデータが不一致部分であると判定した場合(ステップS703:不一致部分)、不一致部分の位置情報を出力する(ステップS706)。
このように、連続化部24は、不一致部分の前後における排除コリジョン数n分のブロックデータのそれぞれについて、そのブロックデータが一致部分である場合、そのブロックデータをコリジョン発生部分として推定し、推定したコリジョン発生部分を不一致部分に変更するようにした。これにより、コリジョンの発生を、簡易な手法にて、安全性及び信頼性の観点から判定することができる。
図8は、分割数m=1.5、定数X=1、及び、フレームとブロックデータを同期させることなくブロック化を行い、不一致部分の前後1ブロックをコリジョン排除の対象(排除コリジョン数n=1)とした場合を説明する図である。図中、ファイル#1データである編集ファイルの斜線部分は、ファイル編集された箇所を示しており、フレーム2〜4が編集されている。塗りつぶし部分は不一致部分を示しており、αは、連続化部24により推定されたコリジョン発生部分を示している。比較部23により不一致部分が比較検出された結果、左から2番目のブロック、3番目のブロック及び5番目のブロックが不一致部分になっている。連続化部24により不一致部分の前後1ブロックを対象にしてコリジョン発生部分が推定された結果、1番目のブロック、4番目のブロック及び6番目のブロックがコリジョン発生部分αとして推定されている。そして、連続化部24により、推定されたコリジョン発生部分αが不一致部分に変更され、結果として、ファイル編集されたフレーム2〜4のブロック等が、不一致部分として検出される。ここで、ファイル編集されていないβの部分も不一致部分として検出されるが、図1に示したように、元ファイル及び複製ファイルに対し同じデータが上書きされることになるから、結果として元のデータが維持されることになる。
図9は、分割数m=1.5、定数X=1、及び、フレームとブロックデータを同期させることなくブロック化を行い、不一致部分の前後1ブロックをコリジョン排除の対象(排除コリジョン数n=2)とした場合を説明する図である。図8と同様に、ファイル#1データである編集ファイルの斜線部分は、ファイル編集された箇所を示しており、フレーム2〜4が編集されている。塗りつぶし部分は不一致部分を示しており、αは、連続化部24により推定されたコリジョン発生部分を示している。比較部23により不一致部分が比較検出された結果、左から3番目のブロック、5番目のブロック及び6番目のブロックが不一致部分になっている。連続化部24により不一致部分の前後2ブロックを対象にしてコリジョン発生部分が推定された結果、1番目のブロック、2番目のブロック、4番目のブロック、7番目のブロック及び8番目のブロックがコリジョン発生部分αとして推定されている。そして、連続化部24により、推定されたコリジョン発生部分αが不一致部分に変更され、結果として、ファイル編集されたフレーム2〜4のブロック等が、不一致部分として検出される。ここで、図8と同様に、ファイル編集されていないβの部分も不一致部分として検出されるが、図1に示したように、元ファイル及び複製ファイルに対し同じデータが上書きされることになるから、結果として元のデータが維持されることになる。
以上のように、実施例2のファイル処理装置2によれば、ファイルを分割したブロックデータのダイジェスト値を用いて、ファイル#1,2の不一致部分を検出する際に、連続化部24が、比較部23により検出された不一致部分の前後における排除コリジョン数n分のブロックデータのそれぞれについて、そのブロックデータが一致部分である場合、そのブロックデータをコリジョン発生部分として推定し、推定したコリジョン発生部分を不一致部分に変更するようにした。これにより、大容量のファイルデータを比較することなく簡易な手法により、コリジョンを検出し排除することができ、不一致部分の検出精度を向上させ、高信頼化を実現することができる。
また、実施例2のファイル処理装置2によれば、図2に示した実施例1のファイル処理装置1と比較して、同期検出部11−1,11−2及び連続性判定部15を備えておらず、フレームとブロックデータとが同期していない場合であっても、排除コリジョン数nに応じて不一致部分を広げることにより、コリジョンを検出し排除するようにした。これにより、フレームとブロックデータとを同期させるための処理を行うことなく、実施例1に比べて、処理及び装置を大幅に簡略化することができる。
尚、図6に示した実施例2によるファイル処理装置2の構成に加え、連続化部24の後段に孤立除去部を備えるようにしてもよい。孤立除去部は、不一致部分の間で孤立している一致部分を除去し、一連の不一致部分を生成する。具体的には、孤立除去部は、連続化部24から、コリジョンが排除された不一致部分の位置情報を入力し、所定数以上連続している不一致部分を不一致グループとし、不一致グループの間に位置する一致部分のブロック数と、予め設定された閾値とを比較する。そして、孤立除去部は、一致部分のブロック数が閾値よりも小さいと判定した場合、その一致部分を不一致部分に加えるように変更し、不一致部分の位置情報を出力する。
このように、孤立除去部を備えたファイル処理装置2によれば、安全性の観点から、不一致部分を広げることができ、一層の高信頼化を実現することができる。また、不一致グループの間に孤立している一致部分が不一致部分に変更されるから、例えば、2つの不一致グループを1つの不一致グループに変更することができる。したがって、転送等の処理は1つの不一致部分のデータに対して1回で済むから、処理負荷を低減することができる。
また、排除コリジョン数n=1が設定された場合、連続化部24により、不一致部分がn=1の範囲で広げられ、コリジョンが排除される。しかしながら、コリジョンはn=1の範囲で排除されるに過ぎない。そこで、孤立除去部を備えることにより、さらに不一致部分が広げられるから、排除コリジョン数n=2が設定された場合と同様の範囲で、コリジョンを排除することができる。
次に、実施例3について詳細に説明する。実施例3のファイル処理装置3は、比較する2つのファイルのフレームサイズ(同期間隔)が変化している場合において、ファイルの不一致部分を検出する装置である。具体的には、ファイル処理装置3は、2つのファイルの同期を検出し、同期情報、分割数m、及びファイルデータをブロックサイズに分割する際の整数倍(X倍)の値である定数Xに基づいてブロックサイズNを判定し、前述の実施例1のファイル処理装置1と同様の処理を行う。すなわち、ファイル処理装置3は、ファイルをブロックサイズNに分割したブロックデータのダイジェスト値をそれぞれ演算して比較し、ダイジェスト値が異なるブロックデータの部分を不一致部分として検出する。そして、ファイル処理装置3は、検出した不一致部分の連続性を判定し、連続すべき不一致部分に一致部分が含まれる場合、この一致部分をダイジェスト値のコリジョン発生部分とし、コリジョン発生部分を不一致部分に変更することにより、コリジョンを排除する。
図10は、実施例3によるファイル処理装置3の構成を示すブロック図である。このファイル処理装置3は、同期検出部30−1,30−2、ブロックサイズ判定部31、ブロック化部32−1,32−2、ダイジェスト値演算部33−1,33−2、比較部34、連続性判定部35及び連続化部36を備えている。
図2に示した実施例1のファイル処理装置1と、このファイル処理装置3とを比較すると、両装置1,3は、同期検出部11−1,11−2,30−1,30−2、ブロック化部12−1,12−2,32−1,32−2、ダイジェスト値演算部13−1,13−2,33−1,33−2、比較部14,34、連続性判定部15,35及び連続化部16,36を備えている点で同一である。一方、ファイル処理装置1は、設定ファイル部10を備えているのに対し、ファイル処理装置3は、ブロックサイズ判定部31を備えている点で相違する。ファイル処理装置1では、ブロックサイズNが予め設定されているのに対し、ファイル処理装置3では、ブロックサイズNがファイル#1,#2データの同期情報に基づいて判定される。
同期検出部30−1,30−2、ブロック化部32−1,32−2、ダイジェスト値演算部33−1,33−2、比較部34、連続性判定部35及び連続化部36は、実施例1の同期検出部11−1,11−2、ブロック化部12−1,12−2、ダイジェスト値演算部13−1,13−2、比較部14、連続性判定部15及び連続化部16と同じ処理を行うから、ここでは説明を省略する。
ブロックサイズ判定部31は、同期検出部30−1から、フレームサイズを示す同期間隔及びその同期間隔の先頭位置のタイミングを含む同期情報aを入力すると共に、同期検出部30−2から同期情報bを入力し、同期情報aと同期情報bとを比較し、同じであると判定した場合、予め設定された定数X及び分割数mを用いてブロックサイズNを求め、同期情報及びブロックサイズNをブロック化部32−1,32−2に出力し、分割数mを連続性判定部35及び連続化部36に出力する。一方、ブロックサイズ判定部31は、同期情報a,bが同じでないと判定した場合、全部不一致を出力する。この場合、コリジョンの検出及び排除の処理は行われない。尚、実施例3では、比較する2つのファイルのフレームサイズ(同期間隔)が変化しているから、ブロックサイズNは、その変化に応じた値となる。
図11は、ブロックサイズ判定部31の処理を示すフローチャートである。ブロックサイズ判定部31は、同期検出部30−1から、同期間隔及びタイミングを含む同期情報aを入力すると共に、同期検出部30−2から同期情報bを入力(ステップS1101)する。そして、ブロックサイズ判定部31は、同期情報aと同期情報bとを比較し(ステップS1102)、同期情報a,bが同じであると判定した場合(ステップS1102:Y)、すなわち、ファイル#1,#2データの同期間隔及びその先頭位置のタイミングが同じであると判定した場合、同期間隔またはその同期間隔の整数倍(X倍)のデータ(1つのフレームまたは複数のフレーム)を分割数mで除算し、ブロックサイズNを求める(ステップS1103)。そして、ブロックサイズ判定部31は、同期情報(同期情報a,b)及びブロックサイズNをブロック化部32−1,32−2に出力し、予め設定された分割数mを連続性判定部35及び連続化部36に出力する(ステップS1104)。
一方、ブロックサイズ判定部31は、ステップS1102において、同期情報a,bが同じでないと判定した場合(ステップS1102:N)、すなわち、ファイル#1,#2データの同期間隔及びその先頭位置のタイミングのうちの少なくとも一方が異なると判定した場合、コリジョンの検出及び排除の処理を行わないことを示す全部不一致を出力する(ステップS1105)。
以上のように、実施例3のファイル処理装置3によれば、ファイルを分割したブロックデータのダイジェスト値を用いて、ファイル#1,2の不一致部分を検出する際に、ブロックサイズ判定部31が、同期情報a,bが同じであると判定した場合に、同期間隔またはその整数倍(X倍)のデータを分割数mで除算してブロックサイズNを求め、ブロック化部32−1,32−2が、ブロックサイズ判定部31から同期情報及びブロックサイズNを入力し、ブロックデータにファイルを分割する。そして、連続性判定部35が、実施例1の連続性判定部15と同様に、ファイル編集に伴って影響を受ける所定のデータ区間毎に、不一致部分の連続性を判定し、所定のデータ区間内の不一致部分の数が、所定のデータ区間をブロックデータに分割するための予め設定された分割数mよりも小さい場合、不一致部分以外の一致部分をコリジョン発生部分として検出し、連続化部36が、実施例1の連続化部16と同様に、コリジョン発生部分を不一致部分に変更するようにした。これにより、大容量のファイルデータを比較することなく簡易な手法により、可変レートのファイルのコリジョンを検出し排除することができ、不一致部分の検出精度を向上させ、高信頼化を実現することができる。また、ブロックサイズNを予め設定する必要がなく、可変レートのファイル#1,#2データから直接求めることができ、ブロックサイズNを設定する手間を省くことができる。
次に、実施例4について詳細に説明する。実施例4のファイル処理装置4は、比較する2つのファイルのフレームサイズ(同期間隔)が変化している場合において、ファイルの不一致部分を検出する装置である。具体的には、ファイル処理装置4は、2つのファイルの同期を検出し、前述の実施例3のファイル処理装置3と同様の処理を行ってブロックサイズNを判定し、前述の実施例2のファイル処理装置2と同様の処理を行ってコリジョンを排除する。すなわち、ファイル処理装置4は、2つのファイルの同期を検出し、同期情報、分割数m、及びファイルデータをブロックサイズに分割する際の整数倍(X倍)の値である定数Xに基づいてブロックサイズNを判定する。そして、ファイル処理装置4は、ファイルをブロックサイズNに分割したブロックデータのダイジェスト値をそれぞれ演算して比較し、ダイジェスト値が異なるブロックデータの部分を不一致部分として検出する。そして、ファイル処理装置4は、検出した不一致部分の前後のブロックデータのうち、一致部分をコリジョン発生部分として推定し、コリジョン発生部分を不一致部分に変更することにより、コリジョンを排除する。
図12は、実施例4によるファイル処理装置4の構成を示すブロック図である。このファイル処理装置4は、同期検出部40−1,40−2、ブロックサイズ判定部41、ブロック化部42−1,42−2、ダイジェスト値演算部43−1,43−2、比較部44及び連続化部45を備えている。
図10に示した実施例3のファイル処理装置3と、このファイル処理装置4とを比較すると、両装置3,4は、同期検出部30−1,30−2,40−1,40−2、ブロック化部32−1,32−2,42−1,42−2、ダイジェスト値演算部33−1,33−2,43−1,43−2及び比較部34,44を備えている点で同一である。一方、ファイル処理装置3は、ブロックサイズ判定部31、連続性判定部35及び連続化部36を備えているのに対し、ファイル処理装置4は、連続性判定部35を備えておらず、機能の異なるブロックサイズ判定部41及び連続化部45を備えている点で相違する。ファイル処理装置4の連続化部45は、図6に示した実施例2のファイル処理装置2における連続化部24と同じ機能を有する。
両装置3,4は、ブロックサイズNがファイル#1,#2データの同期情報に基づいて判定される点で同じである。一方、ファイル処理装置3は、不一致部分の連続性を判定し、連続すべき不一致部分に一致部分が含まれる場合、この一致部分をダイジェスト値のコリジョン発生部分とし、コリジョンを排除するのに対し、ファイル処理装置4は、連続性を判定することなく、不一致部分の前後のブロックデータのうち、一致部分をコリジョン発生部分として推定し、コリジョンを排除する点で相違する。
同期検出部40−1,40−2、ブロック化部42−1,42−2、ダイジェスト値演算部43−1,43−2及び比較部44は、実施例3の同期検出部30−1,30−2、ブロック化部32−1,32−2、ダイジェスト値演算部33−1,33−2及び比較部34と同じ処理を行うから、ここでは説明を省略する。また、連続化部45は、実施例2の連続化部24と同じ処理を行うから、ここでは説明を省略する。
ブロックサイズ判定部41は、同期検出部40−1から、フレームサイズを示す同期間隔及びその同期間隔の先頭位置のタイミングを含む同期情報aを入力すると共に、同期検出部40−2から同期情報bを入力し、同期情報aと同期情報bとを比較し、同じであると判定した場合、同期間隔またはその整数倍(X倍)のデータを分割数mで除算してブロックサイズNを求め、同期情報及びブロックサイズNをブロック化部42−1,42−2に出力し、排除コリジョン数nを連続化部45に出力する。定数X、分割数m及び排除コリジョン数nは予め設定されているものとする。一方、ブロックサイズ判定部41は、同期情報a,bが同じでないと判定した場合、全部不一致を出力する。この場合、コリジョンの検出及び排除の処理は行われない。尚、実施例4では、比較する2つのファイルのフレームサイズ(同期間隔)が変化しているから、ブロックサイズNは、その変化に応じた値となる。
以上のように、実施例4のファイル処理装置4によれば、ファイルを分割したブロックデータのダイジェスト値を用いて、ファイル#1,2の不一致部分を検出する際に、ブロックサイズ判定部41が、同期情報a,bが同じであると判定した場合に、同期間隔またはその整数倍(X倍)のデータを分割数mで除算してブロックサイズNを求め、ブロック化部42−1,42−2が、ブロックサイズ判定部41から同期情報及びブロックサイズNを入力し、ブロックデータにファイルを分割する。そして、連続化部45が、実施例2の連続化部24と同様に、比較部44により検出された不一致部分の前後における排除コリジョン数n分のブロックデータのそれぞれについて、そのブロックデータが一致部分である場合、そのブロックデータをコリジョン発生部分として推定し、推定したコリジョン発生部分を不一致部分に変更するようにした。これにより、大容量のファイルデータを比較することなく簡易な手法により、可変レートのファイルのコリジョンを検出し排除することができ、不一致部分の検出精度を向上させ、高信頼化を実現することができる。また、ブロックサイズNを予め設定する必要がなく、可変レートのファイル#1,#2データから直接求めることができ、ブロックサイズNを設定する手間を省くことができる。
次に、実施例5について詳細に説明する。実施例5のファイル処理装置5は、比較する2つのファイルのうちの1つのファイルが、ブロックデータのダイジェスト値、位置情報、ブロックサイズN及び分割数mと共に記憶部に予め蓄積されており、実施例1の場合と同様に、比較する2つのファイルのフレームサイズ(同期間隔)が一定及び一致しており、フレームとブロックデータとが同期している場合において、ファイルの不一致部分を検出する装置である。
図13は、実施例5によるファイル処理装置5の構成を示すブロック図である。このファイル処理装置5は、記憶部50、同期検出部51、ブロック化部52、ダイジェスト値演算部53、ダイジェスト値読み出し部54、比較部55、連続性判定部56及び連続化部57を備えている。
図2に示した実施例1のファイル処理装置1と、このファイル処理装置5とを比較すると、両装置1,5は、ファイル#1データを処理する同期検出部11−1,51、ブロック化部12−1,52、ダイジェスト値演算部13−1,53を備え、また、比較部14,55、連続性判定部15,56及び連続化部16,57を備えている点で同一である。一方、ファイル処理装置1は、ファイル#2データを処理する同期検出部11−2、ブロック化部12−2及びダイジェスト値演算部13−2を備え、また、設定ファイル部10を備えているのに対し、ファイル処理装置5は、記憶部50及びダイジェスト値読み出し部54を備えている点で相違する。
同期検出部51、ブロック化部52、ダイジェスト値演算部53、比較部55、連続性判定部56及び連続化部57は、実施例1の同期検出部11−1、ブロック化部12−1、ダイジェスト値演算部13−1、比較部14、連続性判定部15及び連続化部16と同じ処理を行うから、ここでは説明を省略する。尚、ダイジェスト値演算部53は、記憶部50に蓄積された、ファイル#2データのダイジェスト値が演算された際の関数等と同じ関数等を用いて、ダイジェスト値を演算する。
記憶部50には、予め設定されたブロックサイズN及び分割数mが設定ファイルとして蓄積されている。また、記憶部50には、ファイル#2データが蓄積されており、既にファイル#2データをブロック化して求めたブロックデータ毎のダイジェスト値がその位置情報と共に蓄積されている。このように、ファイル#2データのダイジェスト値及び位置情報は、ファイル#2データ及びブロックサイズNから演算して求めるのではなく、記憶部50に予めDBまたはファイルとして蓄積されている。
ダイジェスト値読み出し部54は、ブロック化部52から位置情報を入力し、その位置情報のダイジェスト値を記憶部50から読み出し、読み出したダイジェスト値及び位置情報を比較部55に出力する。
比較部55は、ダイジェスト値演算部53から、ファイル#1のブロックデータにおけるダイジェスト値及び位置情報を入力すると共に、ダイジェスト値読み出し部54から、ファイル#2のブロックデータにおけるダイジェスト値及び位置情報を入力し、同じ位置情報のダイジェスト値を比較し、異なるダイジェスト値の位置情報を不一致部分の位置情報として連続性判定部56に出力する。連続性判定部56及び連続化部57は、記憶部50から分割数mを読み出す。
以上のように、実施例5のファイル処理装置5によれば、ファイル#1データをブロック化してダイジェスト値及び位置情報を求め、予め蓄積されたファイル#2データのダイジェスト値を、位置情報をキーにして記憶部50から読み出し、2つのダイジェスト値を用いて、ファイル#1,2の不一致部分を検出する際に、連続性判定部56が、実施例1,3の連続性判定部15,35と同様に、ファイル編集に伴って影響を受ける所定のデータ区間毎に、不一致部分の連続性を判定し、所定のデータ区間内の不一致部分の数が、所定のデータ区間をブロックデータに分割するために予め設定された分割数mよりも小さい場合、不一致部分以外の一致部分をコリジョン発生部分として検出し、連続化部57が、コリジョン発生部分を不一致部分に変更するようにした。これにより、大容量のファイルデータを比較することなく簡易な手法により、コリジョンを確実に検出し排除することができる。したがって、コリジョンの発生確率が0になるから、不一致部分の検出精度を向上させ、高信頼化を実現することができる。
次に、実施例6について詳細に説明する。実施例6のファイル処理装置6は、比較する2つのファイルのうちの1つのファイルが、ブロックデータのダイジェスト値、位置情報、ブロックサイズN及び排除コリジョン数nと共に記憶部に予め蓄積されており、実施例2の場合と同様に、比較する2つのファイルのフレームサイズ(同期間隔)が一定及び一致しており、フレームとブロックデータとが同期していない場合において、ファイルの不一致部分を検出する装置である。
図14は、実施例6によるファイル処理装置6の構成を示すブロック図である。このファイル処理装置6は、記憶部60、ブロック化部61、ダイジェスト値演算部62、ダイジェスト値読み出し部63、比較部64及び連続化部65を備えている。
図6に示した実施例2のファイル処理装置2と、このファイル処理装置6とを比較すると、両装置2,6は、ファイル#1データを処理するブロック化部21−1,61、ダイジェスト値演算部22−1,62を備え、また、比較部23,64及び連続化部24,65を備えている点で同一である。一方、ファイル処理装置2は、ファイル#2データを処理するブロック化部21−2及びダイジェスト値演算部22−2を備え、また、設定ファイル部20を備えているのに対し、ファイル処理装置6は、記憶部60及びダイジェスト値読み出し部63を備えている点で相違する。
ブロック化部61、ダイジェスト値演算部62、比較部64及び連続化部65は、実施例2のブロック化部21−1、ダイジェスト値演算部22−1、比較部23及び連続化部24と同じ処理を行うから、ここでは説明を省略する。尚、ダイジェスト値演算部62は、記憶部60に蓄積された、ファイル#2データのダイジェスト値が演算された際の関数等と同じ関数等を用いて、ダイジェスト値を演算する。
記憶部60には、予め設定されたブロックサイズN及び排除コリジョン数nが設定ファイルとして蓄積されている。また、記憶部60には、ファイル#2データが蓄積されており、既にファイル#2データをブロック化して求めたブロックデータ毎のダイジェスト値がその位置情報と共に蓄積されている。このように、ファイル#2データのダイジェスト値及び位置情報は、ファイル#2データ及びブロックサイズNから演算して求めるのではなく、記憶部60に予めDBまたはファイルとして蓄積されている。
ダイジェスト値読み出し部63は、ブロック化部61から位置情報を入力し、その位置情報のダイジェスト値を記憶部60から読み出し、読み出したダイジェスト値及び位置情報を比較部64に出力する。
比較部64は、ダイジェスト値演算部62から、ファイル#1のブロックデータにおけるダイジェスト値及び位置情報を入力すると共に、ダイジェスト値読み出し部63から、ファイル#2のブロックデータにおけるダイジェスト値及び位置情報を入力し、同じ位置情報のダイジェスト値を比較し、異なるダイジェスト値の位置情報を不一致部分の位置情報として連続化部65に出力する。連続化部65は、記憶部60から排除コリジョン数nを読み出す。
以上のように、実施例6のファイル処理装置6によれば、ファイル#1データをブロック化してダイジェスト値及び位置情報を求め、予め蓄積されたファイル#2データのダイジェスト値を、位置情報をキーにして記憶部60から読み出し、2つのダイジェスト値を用いて、ファイル#1,2の不一致部分を検出する際に、連続化部65が、実施例2,4の連続化部24,45と同様に、比較部64により検出された不一致部分の前後における排除コリジョン数n分のブロックデータのそれぞれについて、そのブロックデータが一致部分である場合、そのブロックデータをコリジョン発生部分として推定し、推定したコリジョン発生部分を不一致部分に変更するようにした。これにより、大容量のファイルデータを比較することなく簡易な手法により、コリジョンを検出し排除することができ、不一致部分の検出精度を向上させ、高信頼化を実現することができる。
次に、実施例7について詳細に説明する。実施例7のファイル処理装置7は、比較する2つのファイルのうちの1つのファイルが、ブロックデータのダイジェスト値、位置情報、同期情報及び分割数mと共に記憶部に予め蓄積されており、実施例3の場合と同様に、比較する2つのファイルのフレームサイズ(同期間隔)が変化している場合において、ファイルの不一致部分を検出する装置である。
図15は、実施例7によるファイル処理装置7の構成を示すブロック図である。このファイル処理装置7は、記憶部70、同期検出部71、ブロックサイズ判定部72、ブロック化部73、ダイジェスト値演算部74、ダイジェスト値読み出し部75、比較部76、連続性判定部77及び連続化部78を備えている。
図10に示した実施例3のファイル処理装置3と、このファイル処理装置7とを比較すると、両装置3,7は、ファイル#1データを処理する同期検出部30−1,71、ブロック化部32−1,73及びダイジェスト値演算部33−1,74を備え、また、ブロックサイズ判定部31,72、比較部34,76、連続性判定部35,77及び連続化部36,78を備えている点で同一である。一方、ファイル処理装置3は、ファイル#2データを処理する同期検出部30−2、ブロック化部32−2及びダイジェスト値演算部33−2を備えているのに対し、ファイル処理装置7は、記憶部70及びダイジェスト値読み出し部75を備えている点で相違する。
同期検出部71、ブロックサイズ判定部72、ブロック化部73、ダイジェスト値演算部74、比較部76、連続性判定部77及び連続化部78は、実施例3の同期検出部30−1、ブロックサイズ判定部31、ブロック化部32−1、ダイジェスト値演算部33−1、比較部34、連続性判定部35及び連続化部36と同じ処理を行うから、ここでは説明を省略する。尚、ダイジェスト値演算部74は、記憶部70に蓄積された、ファイル#2データのダイジェスト値が演算された際の関数等と同じ関数等を用いて、ダイジェスト値を演算する。また、ブロックサイズ判定部72は、ファイル#2データの同期情報b及び分割数mを記憶部70から読み出し、ブロックサイズNを判定する。
記憶部70には、予め設定された分割数mが設定ファイルとして蓄積されている。また、記憶部70には、ファイル#2データ及び同期情報bが蓄積されており、既にファイル#2データをブロック化して求めたブロックデータ毎のダイジェスト値がその位置情報と共に蓄積されている。このように、ファイル#2データのダイジェスト値及び位置情報は、ファイル#2データ及びブロックサイズNから演算して求めるのではなく、記憶部70に予めDBまたはファイルとして蓄積されている。また、同期情報bもファイル#2データから求めるのではなく、記憶部70に予めDBまたはファイルとして蓄積されている。
ダイジェスト値読み出し部75は、ブロック化部73から位置情報を入力し、その位置情報のダイジェスト値を記憶部70から読み出し、読み出したダイジェスト値及び位置情報を比較部76に出力する。
比較部76は、ダイジェスト値演算部74から、ファイル#1のブロックデータにおけるダイジェスト値及び位置情報を入力すると共に、ダイジェスト値読み出し部75から、ファイル#2のブロックデータにおけるダイジェスト値及び位置情報を入力し、同じ位置情報のダイジェスト値を比較し、異なるダイジェスト値の位置情報を不一致部分の位置情報として連続性判定部77に出力する。
以上のように、実施例7のファイル処理装置7によれば、ファイル#1データをブロック化してダイジェスト値及び位置情報を求め、予め蓄積されたファイル#2データのダイジェスト値を、位置情報をキーにして記憶部70から読み出し、2つのダイジェスト値を用いて、ファイル#1,2の不一致部分を検出する際に、ブロックサイズ判定部72が、同期情報a,bが同じであると判定した場合に、同期間隔またはその整数倍(X倍)のデータを分割数mで除算してブロックサイズNを求め、ブロック化部73が、ブロックサイズ判定部72から同期情報及びブロックサイズNを入力し、ブロックデータにファイルを分割する。そして、連続性判定部77が、実施例1,3の連続性判定部15,35と同様に、ファイル編集に伴って影響を受ける所定のデータ区間毎に、不一致部分の連続性を判定し、所定のデータ区間内の不一致部分の数が、所定のデータ区間をブロックデータに分割するための予め設定された分割数mよりも小さい場合、不一致部分以外の一致部分をコリジョン発生部分として検出し、連続化部78が、実施例1,3の連続化部16,36と同様に、コリジョン発生部分を不一致部分に変更するようにした。これにより、大容量のファイルデータを比較することなく簡易な手法により、コリジョンを検出し排除することができ、不一致部分の検出精度を向上させ、高信頼化を実現することができる。また、ブロックサイズNを予め設定する必要がなく、可変レートのファイル#1,#2データの同期情報a,bから直接求めることができ、ブロックサイズNを設定する手間を省くことができる。
次に、実施例8について詳細に説明する。実施例8のファイル処理装置8は、比較する2つのファイルのうちの1つのファイルが、ブロックデータのダイジェスト値、位置情報、同期情報、分割数m及び排除コリジョン数nと共に記憶部に予め蓄積されており、実施例4の場合と同様に、比較する2つのファイルのフレームサイズ(同期間隔)が変化している場合において、ファイルの不一致部分を検出する装置である。
図16は、実施例8によるファイル処理装置8の構成を示すブロック図である。このファイル処理装置8は、記憶部80、同期検出部81、ブロックサイズ判定部82、ブロック化部83、ダイジェスト値演算部84、ダイジェスト値読み出し部85、比較部86及び連続化部87を備えている。
図12に示した実施例4のファイル処理装置4と、このファイル処理装置8とを比較すると、両装置4,8は、ファイル#1データを処理する同期検出部40−1,81、ブロック化部42−1,83、ダイジェスト値演算部43−1,84を備え、また、ブロックサイズ判定部41,82、比較部44,86、及び連続化部45,87を備えている点で同一である。一方、ファイル処理装置4は、ファイル#2データを処理する同期検出部40−2、ブロック化部42−2及びダイジェスト値演算部43−2を備えているのに対し、ファイル処理装置8は、記憶部80及びダイジェスト値読み出し部85を備えている点で相違する。
同期検出部81、ブロックサイズ判定部82、ブロック化部83、ダイジェスト値演算部84、比較部86及び連続化部87は、実施例4の同期検出部40−1、ブロックサイズ判定部41、ブロック化部42−1、ダイジェスト値演算部43−1、比較部44及び連続化部45と同じ処理を行うから、ここでは説明を省略する。尚、ダイジェスト値演算部84は、記憶部80に蓄積された、ファイル#2データのダイジェスト値が演算された際の関数等と同じ関数等を用いて、ダイジェスト値を演算する。また、ブロックサイズ判定部82は、ファイル#2データの同期情報b、分割数m及び排除コリジョン数nを記憶部80から読み出し、ブロックサイズNを判定する。
記憶部80には、予め設定された分割数m及び排除コリジョン数nが設定ファイルとして蓄積されている。また、記憶部80には、ファイル#2データ及び同期情報bが蓄積されており、既にファイル#2データをブロック化して求めたブロックデータ毎のダイジェスト値がその位置情報と共に蓄積されている。このように、ファイル#2データのダイジェスト値及び位置情報は、ファイル#2データ及びブロックサイズNから演算して求めるのではなく、記憶部80に予めDBまたはファイルとして蓄積されている。また、同期情報bもファイル#2データから求めるのではなく、記憶部80に予めDBまたはファイルとして蓄積されている。
ダイジェスト値読み出し部85は、ブロック化部83から位置情報を入力し、その位置情報のダイジェスト値を記憶部80から読み出し、読み出したダイジェスト値及び位置情報を比較部86に出力する。
比較部86は、ダイジェスト値演算部84から、ファイル#1のブロックデータにおけるダイジェスト値及び位置情報を入力すると共に、ダイジェスト値読み出し部85から、ファイル#2のブロックデータにおけるダイジェスト値及び位置情報を入力し、同じ位置情報のダイジェスト値を比較し、異なるダイジェスト値の位置情報を不一致部分の位置情報として連続化部87に出力する。
以上のように、実施例8のファイル処理装置8によれば、ファイル#1データをブロック化してダイジェスト値及び位置情報を求め、予め蓄積されたファイル#2データのダイジェスト値を、位置情報をキーにして記憶部80から読み出し、2つのダイジェスト値を用いて、ファイル#1,2の不一致部分を検出する際に、ブロックサイズ判定部82が、同期情報a,bが同じであると判定した場合に、同期間隔またはその整数倍(X倍)のデータを分割数mで除算してブロックサイズNを求め、ブロック化部83が、ブロックサイズ判定部82から同期情報及びブロックサイズNを入力し、ブロックデータにファイルを分割する。そして、連続化部87が、実施例2,4の連続化部24,45と同様に、比較部86により検出された不一致部分の前後における排除コリジョン数n分のブロックデータのそれぞれについて、そのブロックデータが一致部分である場合、そのブロックデータをコリジョン発生部分として推定し、推定したコリジョン発生部分を不一致部分に変更するようにした。これにより、大容量のファイルデータを比較することなく簡易な手法により、コリジョンを検出し排除することができ、不一致部分の検出精度を向上させ、高信頼化を実現することができる。また、ブロックサイズNを予め設定する必要がなく、可変レートのファイル#1,#2データの同期情報a,bから直接求めることができ、ブロックサイズNを設定する手間を省くことができる。
尚、本発明の実施例1〜8によるファイル処理装置1〜8のハード構成としては、通常のコンピュータを使用することができる。ファイル処理装置1〜8は、CPU、RAM等の揮発性の記憶媒体、ROM等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。ファイル処理装置1に備えた設定ファイル部10、同期検出部11−1,11−2、ブロック化部12−1,12−2、ダイジェスト値演算部13−1,13−2、比較部14、連続性判定部15及び連続化部16の各機能は、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。ファイル処理装置2に備えた設定ファイル部20、ブロック化部21−1,21−2、ダイジェスト値演算部22−1,22−2、比較部23及び連続化部24の各機能も、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。ファイル処理装置3〜8に備えたそれぞれの構成部の各機能も同様である。また、これらのプログラムは、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスク等)、光ディスク(CD−ROM、DVD等)、半導体メモリ等の記憶媒体に格納して頒布することもできる。
1〜8,100 ファイル処理装置
10,20,101 設定ファイル部
11,30,40,51,71,81 同期検出部
12,21,32,42,52,61,73,83,102 ブロック化部
13,22,33,43,53,62,74,84,103 ダイジェスト値演算部
14,23,34,44,55,64,76,86,104 比較部
15,35,56,77 連続性判定部
16,24,36,45,57,65,78,87 連続化部
31,41,72,82 ブロックサイズ判定部
50,60,70,80 記憶部
54,63,75,85 ダイジェスト値読み出し部
90 編集装置
91 サーバ

Claims (7)

  1. 複数のファイルのデータを比較して不一致部分を検出するファイル処理装置において、
    前記ファイルのそれぞれについて、前記ファイルにおける処理単位のサイズを示す同期間隔、及び前記同期間隔における先頭位置のタイミングを検出し、同期情報を生成する同期検出部と、
    前記ファイルのそれぞれについて、前記同期検出部により生成された同期情報の示す同期間隔及びタイミングに従って、前記ファイルのデータを、所定のデータ区間内で所定のブロックサイズのブロックデータに分割し、前記ファイル内の前記ブロックデータの位置を示す位置情報を生成するブロック化部と、
    前記ファイルのそれぞれについて、前記ブロック化部により分割されたブロックデータのダイジェスト値を演算するダイジェスト値演算部と、
    前記ダイジェスト値演算部により演算されたダイジェスト値を、前記ブロック化部により生成された同じ位置情報が示す位置毎に比較し、異なるダイジェスト値の位置情報を、前記ファイルの不一致部分の位置情報として出力する比較部と、
    前記比較部により出力された不一致部分の位置情報を入力し、前記不一致部分の位置情報に基づいて、前記所定のデータ区間内で不一致部分の連続性を判定し、前記所定のデータ区間内で不一致部分が連続していない一致部分をコリジョン発生部分とし、前記コリジョン発生部分の位置情報及び前記不一致部分の位置情報を出力する連続性判定部と、
    前記連続性判定部により出力されたコリジョン発生部分の位置情報及び不一致部分の位置情報を入力し、前記コリジョン発生部分の位置情報を不一致部分の位置情報に変更して不一致部分を連続させ、前記連続させた不一致部分の位置情報を出力する連続化部と、
    を備えたことを特徴とするファイル処理装置。
  2. 複数のファイルのデータを比較して不一致部分を検出するファイル処理装置において、
    前記ファイルのそれぞれについて、前記ファイルのデータを、所定のブロックサイズのブロックデータに分割し、前記ファイル内の前記ブロックデータの位置を示す位置情報を生成するブロック化部と、
    前記ファイルのそれぞれについて、前記ブロック化部により分割されたブロックデータのダイジェスト値を演算するダイジェスト値演算部と、
    前記ダイジェスト値演算部により演算されたダイジェスト値を、前記ブロック化部により生成された同じ位置情報が示す位置毎に比較し、異なるダイジェスト値の位置情報を、前記ファイルの不一致部分の位置情報として出力する比較部と、
    前記比較部により出力された不一致部分の位置情報を入力し、前記不一致部分の位置情報が示す位置の前後に、前記不一致部分を所定数分広げて連続させ、前記連続させた不一致部分の位置情報を出力する連続化部と、
    を備えたことを特徴とするファイル処理装置。
  3. 請求項1に記載のファイル処理装置において、
    さらに、前記同期検出部により生成された同期情報が前記ファイルのそれぞれについて同一であると判定した場合、前記所定のデータ区間内におけるファイルのデータをブロックデータに分割する際の所定の分割数に基づいて、ブロックサイズを判定するブロックサイズ判定部を備え、
    前記ブロック化部は、前記ファイルのそれぞれについて、前記ファイルのデータを、前記所定のデータ区間内で、前記ブロックサイズ判定部により判定されたブロックサイズのブロックデータに分割し、前記ファイル内における前記ブロックデータの位置を示す位置情報を生成する、ことを特徴とするファイル処理装置。
  4. 請求項2に記載のファイル処理装置において、
    さらに、前記ファイルのそれぞれについて、前記ファイルにおける処理単位のサイズを示す同期間隔、及び前記同期間隔における先頭位置のタイミングを検出し、同期情報を生成する同期検出部と、
    前記同期検出部により生成された同期情報が前記ファイルのそれぞれについて同一であると判定した場合、前記所定のデータ区間内におけるファイルのデータをブロックデータに分割する際の所定の分割数に基づいて、ブロックサイズを判定するブロックサイズ判定部と、を備え、
    前記ブロック化部は、前記ファイルのそれぞれについて、前記ファイルのデータを、前記所定のデータ区間内で、前記ブロックサイズ判定部により判定されたブロックサイズのブロックデータに分割し、前記ファイル内における前記ブロックデータの位置を示す位置情報を生成する、ことを特徴とするファイル処理装置。
  5. 請求項1または2に記載のファイル処理装置において、
    さらに、前記比較する複数のファイルのうちの1つのファイルが蓄積され、かつ、前記1つのファイルについてのブロックデータのダイジェスト値及び位置情報が蓄積された記憶部を備え、
    前記記憶部に蓄積されたファイルについて処理する前記ブロック化部、ダイジェスト値演算部及び請求項1の同期検出部の代わりにダイジェスト値読み出し部を備え、
    前記ダイジェスト値読み出し部は、前記記憶部に蓄積されていない他のファイルについて処理する前記ブロック化部により生成された位置情報に対応するダイジェスト値を、前記記憶部から読み出し、
    前記比較部は、前記記憶部に蓄積されていない他のファイルについて処理する前記ダイジェスト値演算部により演算されたダイジェスト値と、前記ダイジェスト値読み出し部により読み出されたダイジェスト値とを、同じ位置情報が示す位置毎に比較し、異なるダイジェスト値の位置情報を、前記ファイルの不一致部分の位置情報として出力する、ことを特徴とするファイル処理装置。
  6. 請求項3または4に記載のファイル処理装置において、
    さらに、前記比較する複数のファイルのうちの1つのファイルが蓄積され、かつ、前記1つのファイルについての同期情報、ブロックデータのダイジェスト値及び位置情報が蓄積された記憶部を備え、
    前記記憶部に蓄積されたファイルについて処理する前記同期検出部、ブロック化部及びダイジェスト値演算部の代わりにダイジェスト値読み出し部を備え、
    前記ダイジェスト値読み出し部は、前記記憶部に蓄積されていない他のファイルについて処理する前記ブロック化部により生成された位置情報に対応するダイジェスト値を、前記記憶部から読み出し、
    前記ブロックサイズ判定部は、前記記憶部に蓄積されていない他のファイルについて処理する前記同期検出部により生成された同期情報と、前記記憶部に蓄積されたファイルの同期情報とが同一であると判定した場合、前記ファイルのデータをブロックデータに分割する際の所定の分割数に基づいて、ブロックサイズを判定し、
    前記比較部は、前記記憶部に蓄積されていない他のファイルについて処理する前記ダイジェスト値演算部により演算されたダイジェスト値と、前記ダイジェスト値読み出し部により読み出されたダイジェスト値とを、同じ位置情報が示す位置毎に比較し、異なるダイジェスト値の位置情報を、前記ファイルの不一致部分の位置情報として出力する、ことを特徴とするファイル処理装置。
  7. コンピュータを、請求項1から6までのいずれか一項に記載のファイル処理装置として機能させるためのファイル処理プログラム。
JP2010009363A 2010-01-19 2010-01-19 ファイル処理装置及びプログラム Expired - Fee Related JP5340185B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010009363A JP5340185B2 (ja) 2010-01-19 2010-01-19 ファイル処理装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010009363A JP5340185B2 (ja) 2010-01-19 2010-01-19 ファイル処理装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2011150428A true JP2011150428A (ja) 2011-08-04
JP5340185B2 JP5340185B2 (ja) 2013-11-13

Family

ID=44537364

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010009363A Expired - Fee Related JP5340185B2 (ja) 2010-01-19 2010-01-19 ファイル処理装置及びプログラム

Country Status (1)

Country Link
JP (1) JP5340185B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116305192A (zh) * 2023-02-07 2023-06-23 成都海泰方圆科技有限公司 数据文件的处理方法、装置、电子设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001175171A (ja) * 1999-12-14 2001-06-29 Victor Co Of Japan Ltd ストリーム伝送方法、ストリーム伝送装置、及び伝送媒体
JP2007136865A (ja) * 2005-11-18 2007-06-07 Kyocera Mita Corp 画像形成装置
WO2008054732A2 (en) * 2006-10-31 2008-05-08 Telcordia Technologies, Inc. Virus localization using cryptographic hashing
WO2009069420A1 (ja) * 2007-11-27 2009-06-04 Panasonic Corporation 信号復調装置、信号復調方法、半導体集積回路および受信装置
JP2009230523A (ja) * 2008-03-24 2009-10-08 Nippon Hoso Kyokai <Nhk> ファイル同期装置、ファイル同期方法及びファイル同期プログラム
JP2009238141A (ja) * 2008-03-28 2009-10-15 Nec Personal Products Co Ltd ファイル制御システム、情報処理装置、ホスト装置、及び、プログラム
JP2009266128A (ja) * 2008-04-28 2009-11-12 Nippon Hoso Kyokai <Nhk> データ比較装置およびプログラム
JP2010272038A (ja) * 2009-05-25 2010-12-02 Nippon Hoso Kyokai <Nhk> ファイル管理装置及びそのプログラム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001175171A (ja) * 1999-12-14 2001-06-29 Victor Co Of Japan Ltd ストリーム伝送方法、ストリーム伝送装置、及び伝送媒体
JP2007136865A (ja) * 2005-11-18 2007-06-07 Kyocera Mita Corp 画像形成装置
WO2008054732A2 (en) * 2006-10-31 2008-05-08 Telcordia Technologies, Inc. Virus localization using cryptographic hashing
WO2009069420A1 (ja) * 2007-11-27 2009-06-04 Panasonic Corporation 信号復調装置、信号復調方法、半導体集積回路および受信装置
JP2009230523A (ja) * 2008-03-24 2009-10-08 Nippon Hoso Kyokai <Nhk> ファイル同期装置、ファイル同期方法及びファイル同期プログラム
JP2009238141A (ja) * 2008-03-28 2009-10-15 Nec Personal Products Co Ltd ファイル制御システム、情報処理装置、ホスト装置、及び、プログラム
JP2009266128A (ja) * 2008-04-28 2009-11-12 Nippon Hoso Kyokai <Nhk> データ比較装置およびプログラム
JP2010272038A (ja) * 2009-05-25 2010-12-02 Nippon Hoso Kyokai <Nhk> ファイル管理装置及びそのプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116305192A (zh) * 2023-02-07 2023-06-23 成都海泰方圆科技有限公司 数据文件的处理方法、装置、电子设备及存储介质
CN116305192B (zh) * 2023-02-07 2023-11-14 成都海泰方圆科技有限公司 数据文件的处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
JP5340185B2 (ja) 2013-11-13

Similar Documents

Publication Publication Date Title
US10417191B2 (en) Transmitting filesystem changes over a network
US7478113B1 (en) Boundaries
US9262432B2 (en) Scalable mechanism for detection of commonality in a deduplicated data set
US8682903B2 (en) System and method for synchronized content directories on cluster devices
US8200641B2 (en) Dictionary for data deduplication
US8180740B1 (en) System and method for eliminating duplicate data by generating data fingerprints using adaptive fixed-length windows
US9344112B2 (en) Sampling based elimination of duplicate data
US10366072B2 (en) De-duplication data bank
KR20150104623A (ko) 데이터 오브젝트 처리 방법 및 장치
US20080294954A1 (en) System, method and program for processing read error
US9819979B2 (en) Video data processing apparatus
WO2017020576A1 (zh) 一种键值存储系统中文件压实的方法和装置
CN103838645B (zh) 一种基于哈希的远程差异合成备份实现方法
KR101667756B1 (ko) 아카이브 파일 중복 제거 장치 및 방법
JP5340185B2 (ja) ファイル処理装置及びプログラム
CN111061428B (zh) 一种数据压缩的方法及装置
TWI420333B (zh) 分散式的重複數據刪除系統及其處理方法
KR20210113297A (ko) 컴퓨터 메모리 내의 복제 및 밸류 중복성을 제거하기 위한 시스템, 방법, 및 장치
CN105786655A (zh) 一种虚拟机备份数据重复数据删除方法
US20220391118A1 (en) Journals for data cloning operations
US20180246666A1 (en) Methods for performing data deduplication on data blocks at granularity level and devices thereof
TWI442223B (zh) 重複數據刪除的數據復原方法
TWI448121B (zh) 點對點傳輸的重複數據刪除處理方法及其系統
CN112685231A (zh) 一种执行数据重删的云硬盘备份与恢复的系统与方法
CN112988461A (zh) 数据备份方法、边缘节点、数据中心及计算机存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130705

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: 20130712

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130806

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees