JP5340185B2 - File processing apparatus and program - Google Patents
File processing apparatus and program Download PDFInfo
- Publication number
- JP5340185B2 JP5340185B2 JP2010009363A JP2010009363A JP5340185B2 JP 5340185 B2 JP5340185 B2 JP 5340185B2 JP 2010009363 A JP2010009363 A JP 2010009363A JP 2010009363 A JP2010009363 A JP 2010009363A JP 5340185 B2 JP5340185 B2 JP 5340185B2
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、映像音声等のファイルの同一性または不一致部分を、ハッシュ値等のダイジェスト値を比較することにより検出するファイル処理装置及びプログラムに関し、特に、不一致部分を精度高く検出する技術に関する。 The present invention relates to a file processing apparatus and a program for detecting an identical or inconsistent portion of a file such as a video and audio by comparing digest values such as hash values, and more particularly to a technique for detecting an inconsistent portion with high accuracy.
従来、放送局では、映像音声の信号処理の高速化及び蓄積容量の増加に伴い、映像音声の信号をデジタルデータとしてファイルで扱うシステムの導入が進められている。このシステムは、映像音声等の大容量ファイルを、複数のファイル記録装置及びファイル処理装置の間で転送して複製し、複製ファイルを生成する。元ファイルを複製して複製ファイルを生成した後、元ファイルを編集した場合、複製ファイルも元ファイルと同様に編集する必要がある。一般に、このような元ファイルと複製ファイルとの間の同期化の処理は、元ファイル及び複製ファイルを用いて行われるのではなく、元ファイル及び複製ファイルの各データから演算されるダイジェスト値を用いて行われる。元ファイル及び複製ファイルは、大容量の実データであり処理負荷が高いのに対し、ダイジェスト値は、小容量のデータであり処理負荷が低いからである。ここで、元ファイル及び複製ファイルが同期しているとは、両ファイルのデータが一致していることをいう。 2. Description of the Related Art Conventionally, in broadcasting stations, with the increase in the speed of video / audio signal processing and the increase in storage capacity, the introduction of systems that handle video / audio signals as digital data in files has been promoted. In this system, a large-capacity file such as video and audio is transferred and copied between a plurality of file recording devices and file processing devices, and a duplicate file is generated. When the original file is edited after the original file is duplicated to generate the duplicate file, the duplicate file needs to be edited in the same manner as the original file. In general, the synchronization process between the original file and the duplicate file is not performed using the original file and the duplicate file, but a digest value calculated from each data of the original file and the duplicate file is used. Done. This is because the original file and the duplicate file are large-capacity actual data and have a high processing load, whereas the digest value is a small-capacity data and has a low processing load. Here, the fact that the original file and the duplicate file are synchronized means that the data of both files match.
一般にダイジェスト値は、SHA(Secure Hash Algorithm)−1、SHA−2、MD(Message Digest Algorithm)1、MD2、MD3、MD4、MD5等のハッシュ関数によって生成される。ハッシュ関数を用いるのは、コリジョンの発生確率が低いこと、固定長のダイジェスト値にデータを圧縮できること、ダイジェスト値の分布が一様であること、演算時間が比較的高速であること等があげられる。 In general, the digest value is generated by a hash function such as SHA (Secure Hash Algorithm) -1, SHA-2, MD (Message Digest Algorithm) 1, MD2, MD3, MD4, MD5, or the like. The hash function is used because the probability of collision occurrence is low, the data can be compressed to a fixed-length digest value, the distribution of the digest value is uniform, the computation time is relatively fast, etc. .
ここで、コリジョンとは、異なる2つのデータから同じダイジェスト値が生成されてしまう現象をいう。コリジョンが発生すると、本来は異なるデータであるにもかかわらず同じデータであると判定されてしまうから、編集された元ファイルのデータが複製ファイルに反映されなくなり、結果として、元ファイルと複製ファイルとの間でデータが不一致(非同期)になってしまう。 Here, collision refers to a phenomenon in which the same digest value is generated from two different data. When a collision occurs, it is determined that the data is the same data even though it is originally different, so the edited original file data is not reflected in the duplicate file. As a result, the original file and the duplicate file Data will be inconsistent (asynchronous).
しかしながら、大容量のファイルの同期化を実現する場合、ハッシュ関数を用いてダイジェスト値を生成し同期化の処理を行う時間が、ダイジェスト値を用いることなく、ファイルを転送及び記録して差分を書き換えて同期化の処理を行う時間よりも大きくなることがあり得る。そこで、ハッシュ関数を用いてダイジェスト値を生成する演算処理の高速化のために、並列処理、アセンブラ化、事前処理、ハードウェア化等の様々な手法が提案されている(特許文献1,2、非特許文献1,2を参照)。
However, when synchronizing large files, it takes time to generate a digest value using a hash function and perform the synchronization process. Transfer and record the file and rewrite the difference without using the digest value. Therefore, it may be longer than the time for performing the synchronization process. Therefore, various methods such as parallel processing, assembler, preprocessing, and hardware have been proposed in order to speed up the arithmetic processing for generating a digest value using a hash function (
(従来の不一致部分検出手法1)
ところで、ハッシュ関数を用いてダイジェスト値を生成する場合、異なる2つのデータから同じダイジェスト値が生成されてしまうコリジョンは、統計的に起こりえる現象であり、その発生確率は、天文学的数値分の1であり限りなくゼロに近い。このため、ファイル同期化処理を精度高く実現することができる。
(Conventional mismatch detection method 1)
By the way, when a digest value is generated using a hash function, a collision in which the same digest value is generated from two different pieces of data is a phenomenon that can occur statistically, and the probability of occurrence is a fraction of astronomical numerical values. It is almost zero. For this reason, file synchronization processing can be realized with high accuracy.
図19は、従来のファイル処理装置の構成を示すブロック図である。このファイル処理装置は、ハッシュ関数を用いてダイジェスト値を生成し、ダイジェスト値が異なる部分を不一致部分として検出する。そして、不一致部分として検出された箇所にデータを上書きすることにより、ファイル#1,#2が同期化される。具体的には、2つのファイル#1,#2の不一致部分を検出する際に、ファイル#1,#2をブロックデータにそれぞれブロック化し、ブロックデータのダイジェスト値をそれぞれ演算して比較し、異なるダイジェスト値を有するブロックデータの部分を、不一致部分として検出する。このファイル処理装置100は、設定ファイル部101、ブロック化部102−1,102−2、ダイジェスト値演算部103−1,103−2及び比較部104を備えている。
FIG. 19 is a block diagram showing a configuration of a conventional file processing apparatus. This file processing apparatus generates a digest value using a hash function, and detects a portion having a different digest value as a mismatch portion. Then, the
設定ファイル部101は記憶手段であり、オペレータにより予め設定されたブロックサイズNが設定ファイルとして格納されている。ここで、ブロックサイズNは、ブロック化部102−1,102−2において、ファイルデータがブロックデータに分割される際の、ブロックデータのサイズ(バイト数)である。
The
ブロック化部102−1は、ファイル#1データを入力し、設定ファイル部101からブロックサイズNを読み出し、ファイル#1データをブロックサイズNのデータ(ブロックデータ)に分割してブロック化し、ブロックデータ及びその位置情報をダイジェスト値演算部103−1に出力する。ここで、位置情報は、ファイル#1データにおけるブロックデータの位置を示す情報であり、例えば、ファイルを構成するフレームの番号及びフレームを構成するブロックの番号である。同様に、ファイルブロック化部102−2は、ファイル#2データを入力し、設定ファイル部101からブロックサイズNを読み出し、ファイル#2データをブロックサイズNのブロックデータに分割してブロック化し、ブロックデータ及びその位置情報をダイジェスト値演算部103−2に出力する。
The blocking unit 102-1 receives the
ダイジェスト値演算部103−1は、ブロック化部102−1からブロックデータ及び位置情報を入力し、ブロックデータに対し、SHA−1等のハッシュ関数による演算を行ってダイジェスト値を求め、ブロックデータのダイジェスト値及び位置情報を比較部104に出力する。同様に、ダイジェスト値演算部103−2は、ブロック化部102−2からブロックデータ及び位置情報を入力し、ブロックデータに対し、SHA−1等のハッシュ関数による演算を行ってダイジェスト値を求め、ブロックデータのダイジェスト値及び位置情報を比較部104に出力する。ここで、ダイジェスト値演算部103−1,103−2は、同じハッシュ関数を用いて演算を行う。
The digest value calculation unit 103-1 receives the block data and the position information from the blocking unit 102-1, performs a calculation using a hash function such as SHA-1 on the block data, obtains a digest value, and obtains the block data The digest value and the position information are output to the
比較部104は、ダイジェスト値演算部103−1からブロックデータのダイジェスト値及び位置情報を入力すると共に、ダイジェスト値演算部103−2からブロックデータのダイジェスト値及び位置情報を入力し、同じ位置情報のダイジェスト値を比較する。比較部104は、2つのダイジェスト値が異なるものと判定した場合、その位置情報が示す位置のブロックデータは一致していないとして、その位置のブロックデータを不一致部分として検出する。そして、検出した不一致部分の位置情報を出力する。
The
ここで、ブロックサイズNは、設定ファイル部101において、比較部104にてファイルが比較され、不一致部分が検出される際の検出精度等に応じて設定される。例えば、映像音声ファイルの差分を更新する機能を有するファイル処理装置100では、100Mbpsの映像符号化データに対して、例えば、ブロックサイズN=1MB,4kBが設定される。映像編集の最低単位である1フレームのデータ量は約400kBであるため、ブロックサイズN=1MBの例ではフレームの約2倍の大きさの精度にて差分が検出され、ブロックサイズN=4kBの例ではフレームの1/100倍の大きさの精度にて差分が検出されることになる。
Here, the block size N is set in the
ブロックサイズN=1MBの例では、高速に複数のファイルを同期化するのが目的である。したがって、ブロックサイズN=1MBは、時間をかけて不一致部分を精度高く検出するよりも、不一致部分が多少多くても少ないデータ量で高速に比較することを優先する場合に設定される。また、ブロックサイズN=4kBの例では、ファイルシステムの工夫によってハードディスク上のファイルの差し替えを高速化するのが目的である。したがって、ブロックサイズN=4kBは、ファイルシステムのデータ単位である4kB毎に不一致部分を検出する必要がある場合に設定される。 In the example of the block size N = 1 MB, the purpose is to synchronize a plurality of files at high speed. Therefore, the block size N = 1 MB is set when priority is given to a high-speed comparison with a small amount of data even if there are some mismatches rather than detecting the mismatches with high accuracy over time. In the example of the block size N = 4 kB, the purpose is to speed up the replacement of files on the hard disk by devising the file system. Therefore, the block size N = 4 kB is set when it is necessary to detect a mismatched portion for every 4 kB that is a data unit of the file system.
このように、ファイル処理装置100によれば、ファイル#1,#2におけるブロックデータのダイジェスト値を、ハッシュ関数を用いてそれぞれ演算し、ダイジェスト値の異なるブロックデータの位置情報を不一致部分の位置情報として出力するようにした。これにより、ファイル#1とファイル#2との間の不一致部分を検出することができ、ファイル同期化処理を実現することができる。
As described above, according to the file processing apparatus 100, the digest values of the block data in the
(従来の不一致部分検出手法2)
しかしながら、図19に示したファイル処理装置100では、ダイジェスト値のコリジョンの発生確率をゼロにすることはできない。そこで、コリジョンを排除する点に着目した手法も提案されている。具体的には、ダイジェスト値と元ファイルとを記録しておき、ダイジェスト値が異なる箇所を不一致部分とし、さらに、一致部分に対し、元ファイルを用いて比較することにより、コリジョンの発生を検出する。
(Conventional mismatch detection method 2)
However, in the file processing apparatus 100 shown in FIG. 19, the occurrence probability of digest value collision cannot be made zero. Therefore, a method that focuses on eliminating collisions has also been proposed. Specifically, the digest value and the original file are recorded, a portion having a different digest value is set as a mismatched portion, and further, the occurrence of a collision is detected by comparing the matched portion with the original file. .
(従来の不一致部分検出手法3)
また、ハッシュ関数を用いてダイジェスト値を演算し、ダイジェスト値が異なる部分を不一致部分として検出する際の安全性の観点から、コリジョンの発生を低下させるために、ビット長の長いハッシュ関数を用いる手法、及び標準化した新しいハッシュ関数を用いる手法が提案されている(非特許文献3を参照)。さらに、コリジョンの発生を低下させるために、複数のダイジェスト値を用いることにより、階層的に高信頼化を実現する手法も提案されている(非特許文献4を参照)。
(Conventional mismatch detection method 3)
Also, a method using a hash function with a long bit length in order to reduce the occurrence of collision from the viewpoint of safety when calculating a digest value using a hash function and detecting a portion with a different digest value as a mismatched portion And a method using a new standardized hash function has been proposed (see Non-Patent Document 3). Furthermore, in order to reduce the occurrence of collision, a method of realizing high reliability hierarchically by using a plurality of digest values has also been proposed (see Non-Patent Document 4).
前述した従来の不一致部分検出手法1は、ハッシュ関数を用いてダイジェスト値を演算し、ダイジェスト値を比較することにより、ダイジェスト値が異なる部分を不一致部分として検出するものである。したがって、この手法によるファイル同期化処理の安全性は、ハッシュ関数を用いた場合のコリジョン発生確率の低さに依存する。
The conventional inconsistent
しかしながら、ハッシュ関数を用いた場合のコリジョン発生確率はゼロではない。このため、ゼロでないハッシュ関数を用いる限り、コリジョンの発生は避けることができず、本来は不一致であるブロックデータであるにもかかわらず、一致しているものとして誤検出する可能性があった。この場合、高い信頼性が要求される用途、例えば、正確性が絶対使命である放送局における用途では、番組内容を検査したり比較したりする際にコリジョンが発生すると、番組内容がエラーとなるから、安全性及び信頼性の観点から、ハッシュ関数を用いてダイジェスト値を演算する処理をそのまま使用することができないという問題があった。 However, the collision occurrence probability when the hash function is used is not zero. For this reason, as long as a non-zero hash function is used, the occurrence of collision cannot be avoided, and it may be erroneously detected as matching even though it is originally non-matching block data. In this case, in a use requiring high reliability, for example, a use in a broadcasting station whose accuracy is an absolute mission, if a collision occurs when checking or comparing the program content, the program content becomes an error. Therefore, from the viewpoint of safety and reliability, there is a problem that the process of calculating the digest value using the hash function cannot be used as it is.
ちなみに、SHA−1のハッシュ関数を用いた場合、160ビットのダイジェスト値が生成されるから、ダイジェスト値としては2160の空間を有することになる。この空間に相当するブロックデータからなる番組ファイルの数は、ファイルを1MB毎にブロックデータに分割した場合で概算すると、100Mbpsの60分番組の24時間×5メディア分を1年分の番組数として、1億の5乗年分になる。したがって、コリジョンの発生は天文学的に低い確率となる。実際のところ、SHA−1のハッシュ関数を用いた場合のコリジョン発生例は未だに報告されていないが、コリジョンが発生する可能性はある。これに対し、MD−5のハッシュ関数を用いた場合のコリジョン発生例は報告されている。 By the way, when the hash function of SHA-1 is used, a digest value of 160 bits is generated, so that the digest value has 2160 spaces. The number of program files consisting of block data corresponding to this space is roughly calculated when the file is divided into block data for each 1 MB, and 24 hours × 5 media for 100 Mbps 60-minute programs is taken as the number of programs for one year. It will be 100 million 5th year. Therefore, the occurrence of collision is astronomically low. Actually, a collision occurrence example using the hash function of SHA-1 has not yet been reported, but there is a possibility of collision. On the other hand, a collision occurrence example in the case of using the MD-5 hash function has been reported.
また、前述した従来の不一致部分検出手法2は、不一致部分検出手法1において、ダイジェスト値のコリジョン発生確率をゼロにすることができないという問題を解決するために、ダイジェスト値が異なる部分を不一致部分とし、さらに、一致部分について、ダイジェスト値を用いることなく元ファイルを用いて比較することにより、コリジョンの発生を検出する。しかしながら、この手法では、コリジョンの発生を検出するためにファイルデータを用いるから、大容量のデータを保持して処理する必要があり、処理が複雑になって処理負荷が高くなるという問題があった。また、データを比較するのに時間がかかるという問題もあった。
In addition, in the above-described conventional mismatched
また、前述した従来の不一致部分検出手法3は、ビット長の長いハッシュ関数、標準化した新しいハッシュ関数を用いてコリジョンの発生を低下させるものであり、階層的に複数のダイジェスト値を用いて、コリジョンの発生を低下させるものである。しかしながら、これらの手法では、データ量が増加し、演算時間が増加するという問題があった。 The above-described conventional mismatch detection method 3 uses a hash function having a long bit length or a new standardized hash function to reduce the occurrence of collision, and uses a plurality of digest values hierarchically to collide. This reduces the occurrence of. However, these methods have a problem that the amount of data increases and the calculation time increases.
そこで、本発明はかかる問題を解決するためになされたものであり、その目的は、ファイルを分割したブロックデータのダイジェスト値を用いて、2つのファイルの不一致部分を検出するファイル処理装置において、ダイジェスト値のコリジョンを簡易な手法により検出し、不一致部分の検出精度を向上させて高信頼化を実現可能なファイル処理装置及びプログラムを提供することにある。 Accordingly, the present invention has been made to solve such a problem, and an object of the present invention is to provide a digest in a file processing apparatus that detects a mismatched portion of two files by using a digest value of block data obtained by dividing a file. An object of the present invention is to provide a file processing apparatus and a program that can detect collision of values by a simple method, improve the accuracy of detecting a mismatched portion, and achieve high reliability.
上記目的を達成するために、本発明による請求項1のファイル処理装置は、複数のファイルのデータを比較して不一致部分を検出するファイル処理装置において、前記ファイルのそれぞれについて、前記ファイルにおける処理単位のサイズを示す同期間隔、及び前記同期間隔における先頭位置のタイミングを検出し、同期情報を生成する同期検出部と、前記ファイルのそれぞれについて、前記同期検出部により生成された同期情報の示す同期間隔及びタイミングに従って、前記ファイルのデータを、所定のデータ区間内で所定のブロックサイズのブロックデータに分割し、前記ファイル内の前記ブロックデータの位置を示す位置情報を生成するブロック化部と、前記ファイルのそれぞれについて、前記ブロック化部により分割されたブロックデータのダイジェスト値を演算するダイジェスト値演算部と、前記ダイジェスト値演算部により演算されたダイジェスト値を、前記ブロック化部により生成された同じ位置情報が示す位置毎に比較し、異なるダイジェスト値の位置情報を、前記ファイルの不一致部分の位置情報として出力する比較部と、前記比較部により出力された不一致部分の位置情報を入力し、前記不一致部分の位置情報に基づいて、前記所定のデータ区間内で不一致部分の連続性を判定し、前記所定のデータ区間内で不一致部分が連続していない一致部分をコリジョン発生部分とし、前記コリジョン発生部分の位置情報及び前記不一致部分の位置情報を出力する連続性判定部と、前記連続性判定部により出力されたコリジョン発生部分の位置情報及び不一致部分の位置情報を入力し、前記コリジョン発生部分の位置情報を不一致部分の位置情報に変更して不一致部分を連続させ、前記連続させた不一致部分の位置情報を出力する連続化部と、を備えたことを特徴とする。
In order to achieve the above object, a file processing apparatus according to
また、本発明による請求項2のファイル処理装置は、複数のファイルのデータを比較して不一致部分を検出するファイル処理装置において、前記ファイルのそれぞれについて、前記ファイルのデータを、所定のブロックサイズのブロックデータに分割し、前記ファイル内の前記ブロックデータの位置を示す位置情報を生成するブロック化部と、前記ファイルのそれぞれについて、前記ブロック化部により分割されたブロックデータのダイジェスト値を演算するダイジェスト値演算部と、前記ダイジェスト値演算部により演算されたダイジェスト値を、前記ブロック化部により生成された同じ位置情報が示す位置毎に比較し、異なるダイジェスト値の位置情報を、前記ファイルの不一致部分の位置情報として出力する比較部と、前記比較部により出力された不一致部分の位置情報を入力し、前記不一致部分の位置情報が示す位置の前後に、前記不一致部分を所定数分広げて連続させ、前記連続させた不一致部分の位置情報を出力する連続化部と、を備えたことを特徴とする。 According to a second aspect of the present invention, there is provided the file processing apparatus according to the second aspect of the present invention, wherein a plurality of file data are compared to detect a mismatched portion, and the file data is set to a predetermined block size for each of the files. A block forming unit that divides into block data and generates position information indicating the position of the block data in the file, and a digest that calculates a digest value of the block data divided by the block forming unit for each of the files Compare the digest value calculated by the value calculation unit and the digest value calculation unit for each position indicated by the same position information generated by the blocking unit, and the position information of different digest values is compared with the mismatched part of the file Output as position information of the Continuously input the positional information of the output non-matching part, and before and after the position indicated by the position information of the non-matching part, expand the non-matching part by a predetermined number and continuously output the position information of the non-matching part. And a conversion unit.
また、本発明による請求項3のファイル処理装置は、請求項1に記載のファイル処理装置において、さらに、前記同期検出部により生成された同期情報が前記ファイルのそれぞれについて同一であると判定した場合、前記所定のデータ区間内におけるファイルのデータをブロックデータに分割する際の所定の分割数に基づいて、ブロックサイズを判定するブロックサイズ判定部を備え、前記ブロック化部が、前記ファイルのそれぞれについて、前記ファイルのデータを、前記所定のデータ区間内で、前記ブロックサイズ判定部により判定されたブロックサイズのブロックデータに分割し、前記ファイル内における前記ブロックデータの位置を示す位置情報を生成する、ことを特徴とする。 According to a third aspect of the present invention, there is provided the file processing apparatus according to the first aspect, wherein the synchronization information generated by the synchronization detection unit is determined to be the same for each of the files. A block size determination unit that determines a block size based on a predetermined number of divisions when the file data in the predetermined data section is divided into block data, wherein the blocking unit is configured for each of the files. The file data is divided into block data having a block size determined by the block size determination unit within the predetermined data section, and position information indicating the position of the block data in the file is generated. It is characterized by that.
また、本発明による請求項4のファイル処理装置は、請求項2に記載のファイル処理装置において、さらに、前記ファイルのそれぞれについて、前記ファイルにおける処理単位のサイズを示す同期間隔、及び前記同期間隔における先頭位置のタイミングを検出し、同期情報を生成する同期検出部と、前記同期検出部により生成された同期情報が前記ファイルのそれぞれについて同一であると判定した場合、前記所定のデータ区間内におけるファイルのデータをブロックデータに分割する際の所定の分割数に基づいて、ブロックサイズを判定するブロックサイズ判定部と、を備え、前記ブロック化部が、前記ファイルのそれぞれについて、前記ファイルのデータを、前記所定のデータ区間内で、前記ブロックサイズ判定部により判定されたブロックサイズのブロックデータに分割し、前記ファイル内における前記ブロックデータの位置を示す位置情報を生成する、ことを特徴とする。 According to a fourth aspect of the present invention, there is provided the file processing apparatus according to the second aspect, further comprising a synchronization interval indicating a size of a processing unit in the file for each of the files, and the synchronization interval. When it is determined that the synchronization information generated by the synchronization detection unit that detects the timing of the start position and generates the synchronization information and the synchronization information generated by the synchronization detection unit are the same for each of the files, the file in the predetermined data section A block size determination unit that determines a block size based on a predetermined number of divisions when dividing the data into block data, and the blocking unit converts the data of the file for each of the files, The block determined by the block size determination unit within the predetermined data section. Is divided into block data Kusaizu generates position information indicating the position of the block data in the file, characterized in that.
また、本発明による請求項5のファイル処理装置は、請求項1または2に記載のファイル処理装置において、さらに、前記比較する複数のファイルのうちの1つのファイルが蓄積され、かつ、前記1つのファイルについてのブロックデータのダイジェスト値及び位置情報が蓄積された記憶部を備え、前記記憶部に蓄積されたファイルについて処理する前記ブロック化部、ダイジェスト値演算部及び請求項1の同期検出部の代わりにダイジェスト値読み出し部を備え、前記ダイジェスト値読み出し部が、前記記憶部に蓄積されていない他のファイルについて処理する前記ブロック化部により生成された位置情報に対応するダイジェスト値を、前記記憶部から読み出し、前記比較部が、前記記憶部に蓄積されていない他のファイルについて処理する前記ダイジェスト値演算部により演算されたダイジェスト値と、前記ダイジェスト値読み出し部により読み出されたダイジェスト値とを、同じ位置情報が示す位置毎に比較し、異なるダイジェスト値の位置情報を、前記ファイルの不一致部分の位置情報として出力する、ことを特徴とする。
According to a fifth aspect of the present invention, there is provided the file processing device according to the first or second aspect, wherein one file of the plurality of files to be compared is further accumulated and the one file In place of the block forming unit, the digest value calculating unit, and the synchronization detecting unit according to
また、本発明による請求項6のファイル処理装置は、請求項3または4に記載のファイル処理装置において、さらに、前記比較する複数のファイルのうちの1つのファイルが蓄積され、かつ、前記1つのファイルについての同期情報、ブロックデータのダイジェスト値及び位置情報が蓄積された記憶部を備え、前記記憶部に蓄積されたファイルについて処理する前記同期検出部、ブロック化部及びダイジェスト値演算部の代わりにダイジェスト値読み出し部を備え、前記ダイジェスト値読み出し部が、前記記憶部に蓄積されていない他のファイルについて処理する前記ブロック化部により生成された位置情報に対応するダイジェスト値を、前記記憶部から読み出し、前記ブロックサイズ判定部が、前記記憶部に蓄積されていない他のファイルについて処理する前記同期検出部により生成された同期情報と、前記記憶部に蓄積されたファイルの同期情報とが同一であると判定した場合、前記ファイルのデータをブロックデータに分割する際の所定の分割数に基づいて、ブロックサイズを判定し、前記比較部が、前記記憶部に蓄積されていない他のファイルについて処理する前記ダイジェスト値演算部により演算されたダイジェスト値と、前記ダイジェスト値読み出し部により読み出されたダイジェスト値とを、同じ位置情報が示す位置毎に比較し、異なるダイジェスト値の位置情報を、前記ファイルの不一致部分の位置情報として出力する、ことを特徴とする。 A file processing apparatus according to a sixth aspect of the present invention is the file processing apparatus according to the third or fourth aspect, wherein one of the plurality of files to be compared is further accumulated, and the one Instead of the synchronization detection unit, the blocking unit, and the digest value calculation unit that process the file stored in the storage unit, including a storage unit that stores synchronization information about the file, digest value of block data, and position information. A digest value reading unit is provided, and the digest value reading unit reads from the storage unit a digest value corresponding to the position information generated by the blocking unit that processes other files that are not stored in the storage unit. , The block size determination unit is another file that is not stored in the storage unit. If it is determined that the synchronization information generated by the synchronization detection unit to be processed and the synchronization information of the file stored in the storage unit are the same, a predetermined value when dividing the data of the file into block data Based on the number of divisions, the block size is determined, and the comparison unit calculates the digest value calculated by the digest value calculation unit that processes other files not stored in the storage unit, and the digest value reading unit The read digest value is compared for each position indicated by the same position information, and the position information of a different digest value is output as the position information of the mismatched portion of the file.
さらに、本発明によるファイル処理プログラムは、コンピュータを、請求項1から6までのいずれか一項に記載のファイル処理装置として機能させることを特徴とする。
Furthermore, a file processing program according to the present invention causes a computer to function as the file processing apparatus according to any one of
以上のように、本発明によれば、ファイルを分割したブロックデータのダイジェスト値を用いて、2つのファイルの不一致部分を検出し、ファイル編集の単位を基準にして不一致部分の連続性を判定することにより、または不一致部分を拡大することにより、ダイジェスト値のコリジョンを検出し排除するようにした。これにより、大容量のファイルデータを比較することなく、簡易な手法によりコリジョンを検出することができる。また、2つのファイルの不一致部分を一致部分であるとして誤って判定することがなくなる。つまり、不一致部分の検出精度を向上させ、高信頼化を実現することができる。 As described above, according to the present invention, the digest value of block data obtained by dividing a file is used to detect a mismatched portion between two files, and the continuity of the mismatched portion is determined based on the unit of file editing. The collision of the digest value is detected and eliminated by expanding the inconsistent portion. Thereby, collision can be detected by a simple method without comparing large capacity file data. In addition, the mismatched portions of the two files are not erroneously determined as being matched portions. That is, it is possible to improve the detection accuracy of the mismatched portion and realize high reliability.
以下、本発明を実施するための最良の形態について、図面を参照して説明する。本発明は、元ファイルとそれが編集されたファイル(編集ファイル)との間の不一致部分を検出する際に、これらのファイルデータを用いることなく、ダイジェスト値を用いるものである。ダイジェスト値を用いて不一致部分を検出する場合、ダイジェスト値のコリジョンが発生する可能性がある。そこで、本発明では、ファイルの編集に伴って、1フレームを構成する複数のブロックデータの全てが本来的に不一致になるにもかかわらず、その一部が一致になるという通常あり得ない状態を判定し、その一致部分をコリジョン発生部分として検出し排除することを特徴とする。具体的には、ダイジェスト値を比較して検出したブロックデータの不一致部分の長さ(連続性)が、ファイルの編集単位である所定数以下である場合は、あり得ない状態であると判定する。 The best mode for carrying out the present invention will be described below with reference to the drawings. The present invention uses digest values without using these file data when detecting a mismatch between the original file and a file (edited file) in which the original file is edited. When an inconsistent part is detected using a digest value, there is a possibility that a digest value collision occurs. Therefore, according to the present invention, a state in which a part of the plurality of block data constituting one frame is essentially inconsistent with the editing of the file, but a part of the data becomes inconsistent is not possible. It is characterized by determining and detecting the coincidence portion as a collision occurrence portion and eliminating it. Specifically, if the length (continuity) of the mismatched portion of the block data detected by comparing the digest values is equal to or less than a predetermined number that is a file editing unit, it is determined that the state is not possible. .
一般に、ファイルの編集はフレーム単位で行われるから、不一致部分はフレーム単位で検出される。つまり、編集されたファイルのフレームを構成する複数のブロックデータは、その全てが不一致部分となり、不一致部分の位置は、フレーム内において連続したものとなる。しかしながら、編集されたファイルのフレームを構成する複数のブロックデータのうち、不一致部分でない一致部分が検出される場合があり得る。本発明では、この一致部分をコリジョン発生部分として扱い、不一致部分に変更する。すなわち、本発明は、ファイルを分割したブロックデータのダイジェスト値を比較することにより、2つのファイルの不一致部分を検出し、その不一致部分の位置に基づいてコリジョンを検出し、検出したコリジョンを排除する。これにより、大容量の元ファイルのデータを用いることなく、簡易な手法によりコリジョンによる不一致部分の検出漏れをなくすことができ、不一致部分の検出精度を向上させて高信頼化を実現することができる。 In general, since file editing is performed in units of frames, inconsistent portions are detected in units of frames. That is, the plurality of block data constituting the frame of the edited file are all inconsistent portions, and the positions of the inconsistent portions are continuous within the frame. However, there may be a case where a matching portion that is not a mismatching portion is detected from a plurality of block data constituting the frame of the edited file. In the present invention, this matching portion is treated as a collision occurrence portion and is changed to a mismatching portion. That is, the present invention detects a mismatched portion of two files by comparing digest values of block data obtained by dividing the file, detects a collision based on the position of the mismatched portion, and eliminates the detected collision. . As a result, it is possible to eliminate omission of detection of inconsistent portions due to collision by a simple method without using data of a large-capacity original file, and it is possible to improve the detection accuracy of inconsistent portions and achieve high reliability. .
以下に説明する実施例1〜4は、2つのファイルに対して、ファイルを分割したブロックデータのダイジェスト値をそれぞれ演算して比較し、不一致部分を検出し、コリジョンを検出して排除する。実施例5〜8は、2つのファイルのうち1つのファイルについてのダイジェスト値が、予め演算され記憶されている場合に、他の1つのファイルに対してダイジェスト値を演算し、記憶されたダイジェスト値と比較し、不一致部分を検出し、コリジョンを検出して排除する。 In the first to fourth embodiments described below, digest values of block data obtained by dividing a file are respectively calculated and compared for two files, a mismatch portion is detected, and a collision is detected and eliminated. In Embodiments 5 to 8, when a digest value for one file out of two files is calculated and stored in advance, the digest value is calculated for the other one file, and the stored digest value Compared with, the inconsistent part is detected, and the collision is detected and eliminated.
また、実施例1,2,5,6は、比較する2つのファイルにおいて、ファイルデータの処理単位を示すフレームサイズ(同期間隔)が一定であり、かつ一致している場合の例である。対象ファイルは、例えば、固定レートの映像音声ファイルである。実施例3,4,7,8は、比較する2つのファイルにおいて、ファイルデータの処理単位を示すフレームサイズ(同期間隔)が変化する場合の例である。対象ファイルは、例えば、可変レートの映像音声ファイルである。 In the first, second, fifth, and sixth embodiments, the frame size (synchronization interval) indicating the processing unit of file data is constant and coincides between the two files to be compared. The target file is, for example, a fixed-rate video / audio file. Examples 3, 4, 7, and 8 are examples in which the frame size (synchronization interval) indicating the processing unit of file data changes in two files to be compared. The target file is, for example, a variable rate video / audio file.
また、実施例1,3,5,7は、フレームとブロックデータとが同期しており、ダイジェスト値が異なるブロックデータの部分を不一致部分とし、不一致部分の連続性を判定し、コリジョンを検出して排除する。実施例2,4,6,8は、フレームとブロックデータとが同期しておらず、ダイジェスト値が異なるブロックデータの部分を不一致部分とし、不一致部分の近傍をコリジョンが発生した部分であると推定し、推定したコリジョンを排除する。 In the first, third, fifth, and seventh embodiments, the frame data and the block data are synchronized, the block data portions having different digest values are set as mismatched portions, the continuity of the mismatched portions is determined, and the collision is detected. And eliminate. In the second, fourth, sixth, and eighth embodiments, the block and block data are not synchronized, a block data portion having a different digest value is regarded as a mismatched portion, and the vicinity of the mismatched portion is estimated to be a portion where collision has occurred. And eliminating the estimated collision.
〔全体システム〕
まず、本発明の実施形態によるファイル処理装置を含む全体システムについて説明する。図1は、全体システムの構成を示す図である。このシステムは、元ファイルを格納するファイル処理装置1〜8、元ファイルを編集する編集装置90、及び、複製ファイルを格納するサーバ91−1,91−2,・・・を備えて構成される。編集装置90において元ファイルが編集された場合、ファイル処理装置1〜8に格納される元ファイルと、サーバ91−1,91−2,・・・に格納される複製ファイルとが常に同一になるように、所定の処理を行う。ファイル処理装置1〜8と編集装置90とは、インターネットまたはイントラネット等の通信ネットワークにより接続され、同様に、ファイル処理装置1〜8とサーバ91−1,91−2,・・・とは、インターネットまたはイントラネット等の通信ネットワークにより接続される。
[Overall system]
First, an overall system including a file processing apparatus according to an embodiment of the present invention will be described. FIG. 1 is a diagram showing a configuration of the entire system. This system includes
ファイル処理装置1〜8は、映像音声等のファイルを元ファイルとして記憶手段に格納しており、編集装置90によるファイル編集処理に先立って、元ファイルを編集装置90へ送信する。また、ファイル処理装置1〜8は、編集装置90によるファイル編集処理の後、編集装置90から編集ファイルを受信し、元ファイルと編集ファイルとの間の不一致部分を、ハッシュ関数等の所定の関数または演算式から演算したダイジェスト値に基づいて検出し、編集ファイルのデータのうち不一致部分のデータを編集データとしてサーバ91−1,91−2,・・・へ送信すると共に、不一致部分の位置情報をサーバ91−1,91−2,・・・へ送信する。また、ファイル処理装置1〜8は、編集装置90から受信した編集ファイルを元ファイルとして記憶手段に格納する。
The
編集装置90は、ファイル処理装置1〜8から元ファイルを受信し、元ファイルに対し、オペレータによるマウス、キーボード等の入力操作に従って編集を行い、編集ファイルを生成する。また、編集装置90は、編集ファイルをファイル処理装置1〜8へ送信する。
The
サーバ91−1,91−2,・・・は、ファイル処理装置1〜8から編集データ及び位置情報を受信し、記憶手段に格納された複製ファイルに対し、位置情報が示す領域に編集データを上書きする。これにより、ファイル処理装置1〜8に格納された元ファイルと、サーバ91−1,91−2,・・・に格納された複製ファイルとが同一になる。
The servers 91-1, 91-2,... Receive the edit data and the position information from the
以下、図1に示したシステムのファイル処理装置1〜8について、実施例1〜8に分けてそれぞれ詳細に説明する。
Hereinafter, the
まず、実施例1について詳細に説明する。実施例1のファイル処理装置1は、比較する2つのファイルのフレームサイズ(同期間隔)が一定及び一致しており、フレームとブロックデータとが同期している場合において、ファイルの不一致部分を検出する装置である。具体的には、ファイル処理装置1は、2つのファイルに対し、ファイルを分割したブロックデータのダイジェスト値をそれぞれ演算して比較し、ダイジェスト値が異なるブロックデータの部分を不一致部分として検出する。そして、ファイル処理装置1は、検出した不一致部分の連続性を判定し、連続すべき不一致部分に一致部分が含まれる場合、この一致部分をコリジョン発生部分とし、コリジョン発生部分を不一致部分に変更することにより、コリジョンを排除する。比較する2つのファイルは、図1の例では、元ファイル及び編集ファイルである。後述する実施例2〜8についても同じ。
First, Example 1 will be described in detail. The
図2は、実施例1によるファイル処理装置1の構成を示すブロック図である。このファイル処理装置1は、設定ファイル部10、同期検出部11−1,11−2、ブロック化部12−1,12−2、ダイジェスト値演算部13−1,13−2、比較部14、連続性判定部15及び連続化部16を備えている。
FIG. 2 is a block diagram illustrating the configuration of the
設定ファイル部10は記憶手段であり、オペレータにより予め設定されたブロックサイズN及び分割数mが設定ファイルとして格納されている。ここで、ブロックサイズNは、前述したとおり、ブロック化部12−1,12−2において、フレームサイズを示す同期間隔またはその同期間隔の整数倍(X倍)のデータ(1つのフレームまたは複数のフレーム)がブロックデータに分割される際の、ブロックデータのサイズ(バイト数)である。分割数mは、同期間隔またはその同期間隔の整数倍(X倍)のデータ(1つのフレームまたは複数のフレーム)がブロックデータに分割される際の、ブロックデータの数である。
The
同期検出部11−1は、ファイル#1データ(編集ファイルのデータ)を入力し、1つのフレームまたは複数フレームを処理単位とした場合のフレームサイズを示す同期間隔、及びその同期間隔の先頭位置のタイミングを検出し、同期情報を生成してブロック化部12−1に出力する。同様に、同期検出部11−2は、ファイル#2データ(元ファイルのデータ)を入力し、同期間隔及び処理のタイミングを検出し、同期情報を生成してブロック化部12−2に出力する。
The synchronization detection unit 11-1 receives
ここで、同期検出部11−1,11−2について詳細に説明する。本実施例1〜8が対象とする映像音声ファイルには、非圧縮データのファイル及び圧縮データのファイルの2種類がある。非圧縮データのファイルは、撮像された映像データ及び録音された音声データがそのままファイル化されたものである。修正、加工等の編集処理は、画面単位、すなわちフレーム単位で行われ、通常、映像信号には、ライン及びフレームの先頭を示すためのヘッダー情報が用いられている。 Here, the synchronization detection units 11-1 and 11-2 will be described in detail. There are two types of video and audio files targeted by the first to eighth embodiments: a non-compressed data file and a compressed data file. The uncompressed data file is a file in which captured video data and recorded audio data are directly converted into a file. Editing processing such as correction and processing is performed in units of screens, that is, in units of frames. Usually, header information for indicating the heads of lines and frames is used for video signals.
したがって、映像音声ファイルが非圧縮データの場合、同期検出部11−1,11−2は、ヘッダー情報からラインまたはフレームの先頭を検出し、フレームサイズを示す同期間隔、及びその同期間隔の先頭位置のタイミングを検出する。このように、編集処理の単位であるフレームは、ヘッダー情報に基づいて容易に検出することができ、同期情報を容易に生成することができる。 Therefore, when the video / audio file is uncompressed data, the synchronization detectors 11-1 and 11-2 detect the head of the line or frame from the header information, the synchronization interval indicating the frame size, and the start position of the synchronization interval. Detect the timing. As described above, the frame that is the unit of the editing process can be easily detected based on the header information, and the synchronization information can be easily generated.
一方、圧縮データのファイルは、様々な手段によりデータの冗長性を取り除いてデータ量が減らされ、ファイル化されたものであり、映像音声ファイルの場合、MPEG−2、JPEG、Wavelet、H.264等の規格のファイルが実用化されている。これらの圧縮データにおいても、映像データ及び音声データは、フレームまたは複数フレームとしてまとめて扱われ、映像信号には、フレームまたは複数フレームの先頭を示すためのヘッダー情報が用いられている。 On the other hand, the compressed data file is a file that has been reduced to a data amount by removing data redundancy by various means, and in the case of a video / audio file, MPEG-2, JPEG, Wavelet, H.264, and the like. H.264 standard files have been put into practical use. Also in these compressed data, video data and audio data are collectively handled as a frame or a plurality of frames, and header information for indicating the head of the frame or the plurality of frames is used for the video signal.
したがって、映像音声ファイルが圧縮データの場合、非圧縮データの場合と同様に、同期検出部11−1,11−2は、ヘッダー情報からフレームまたは複数フレームの先頭を検出し、フレームサイズを示す同期間隔、及びその同期間隔の先頭位置のタイミングを検出する。 Therefore, when the video / audio file is compressed data, as in the case of uncompressed data, the synchronization detectors 11-1 and 11-2 detect the head of the frame or a plurality of frames from the header information, and indicate the frame size. The timing of the interval and the head position of the synchronization interval is detected.
例えば、MPEG−2の映像音声ファイルには、編集用途を考慮したI−onlyのファイル、及び圧縮率の高いlong−GOPのファイルがある。さらに、I−onlyのファイルには、固定レート(CBR)のファイル及び可変レート(VBR)のファイルがある。固定レート(CBR)のファイルの場合、データ量が一定であるから、フレームの先頭が固定周期となり、非圧縮データのファイルと同様に扱うことができる。これに対し、可変レート(VBR)のファイルの場合、映像音声の情報量に応じてデータ量が変化するから、フレームの周期が変動することなり、非圧縮データのファイルと同様に扱うことができない。 For example, the MPEG-2 video / audio file includes an I-only file for editing purposes and a long-GOP file with a high compression rate. Further, the I-only file includes a fixed rate (CBR) file and a variable rate (VBR) file. In the case of a file with a fixed rate (CBR), since the data amount is constant, the beginning of the frame has a fixed period and can be handled in the same manner as a file with uncompressed data. On the other hand, in the case of a variable rate (VBR) file, the amount of data changes according to the amount of information of video and audio, so the frame period varies, and it cannot be handled in the same way as a file of uncompressed data. .
また、I−onlyのファイルの場合、フレーム内でデータが圧縮され符号化が行われるから、同期検出部11−1,11−2は、ヘッダー情報からフレームの先頭を検出することができ、フレーム単位でデータを扱うことができる。これに対し、long−GOPのファイルの場合、複数フレームを集めたGOPの単位で符号化が行われるから、同期検出部11−1,11−2は、ヘッダー情報からGOPの先頭を検出することができ、GOP単位でデータを扱うことができる。また、ヘッダー情報を解読して演算することにより、GOPを構成する各フレームの先頭を求めることもできる。しかしながら、long−GOPでは、本来、複数フレーム内でデータ処理され圧縮されるから、圧縮データをフレーム単位で処理したとしても、他のフレームとの間で符号化処理の連続性及び一貫性を保つためには再符号化が必要となる。そこで、ここでは、修正、加工等の編集処理はGOP単位の場合を対象とする。 In the case of an I-only file, data is compressed and encoded in the frame, so that the synchronization detection units 11-1 and 11-2 can detect the head of the frame from the header information. Data can be handled in units. On the other hand, in the case of a long-GOP file, encoding is performed in units of GOPs in which a plurality of frames are collected. Therefore, the synchronization detection units 11-1 and 11-2 detect the head of the GOP from the header information. And can handle data in GOP units. It is also possible to obtain the head of each frame constituting the GOP by decoding and calculating the header information. However, since long-GOP is originally processed and compressed in a plurality of frames, even if the compressed data is processed in units of frames, the continuity and consistency of encoding processing with other frames is maintained. This requires re-encoding. Therefore, here, editing processing such as correction and processing is targeted for the case of GOP units.
図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を検出し同期情報を生成する。 FIG. 17 is a diagram for explaining the relationship between the type of video / audio file and the editing unit. In FIG. 17, in the case of a fixed rate (CBR) file composed of uncompressed data, editing is performed for each frame, and the synchronization detection units 11-1 and 11-2 detect the frame from the header information and generate synchronization information. To do. Further, in the case of a variable rate (VBR) file made up of uncompressed data, editing is performed for each frame, and the synchronization detection units 30-1, 30-2, etc. of the third embodiment described later detect frames from the header information. And generate synchronization information. In the case of fixed rate (CBR) and variable rate (VBR) files made of MPEG-2 I-only compressed data, editing is performed on a frame-by-frame basis as in the case of uncompressed data. In addition, in the case of a variable rate (VBR) file composed of MPEG-2 long-GOP compressed data, editing is performed for each GOP, and synchronization detection units 30-1 and 30-2 of Example 3 described later are A GOP of a plurality of frames is detected from the header information to generate synchronization information.
さらに最近、様々な種類の映像音声をファイルとして扱うための共通フォーマットとして、MXFファイルフォーマットを用いることが一般的になっている。MXFは、非圧縮及び圧縮を問わず、共通のヘッダー形式でコンピュータがファイルを認識できるようにするファイルの形式である。 Further, recently, it has become common to use the MXF file format as a common format for handling various types of video and audio as files. MXF is a file format that allows a computer to recognize a file in a common header format, whether uncompressed or compressed.
図18は、MXFファイルのフォーマットを説明する図である。MXFファイルは、ヘッダー(File Header)、ボディ(File Body)及びフッター(File Footer)により構成される。ヘッダー及びフッターには、メタデータ、インデックステーブル(Index Table)等が格納され、映像音声データの種類等に依存しない、データの種類及びデータの配置(フレームの単位、GOPの単位等)を示す構造になっている。ボディには、KLVコーディングという、実データのタイプを示すキー(Key)、データ長を示すレングス(Length)、及びデータ実体のバリュー(Value)を単位とした映像音声データがパックされる。 FIG. 18 is a diagram for explaining the format of the MXF file. The MXF file includes a header (File Header), a body (File Body), and a footer (File Footer). The header and footer store metadata, an index table (Index Table), and the like, and indicate a data type and a data arrangement (frame unit, GOP unit, etc.) independent of the type of video / audio data. It has become. The body is packed with audio / video data in units of KLV coding, which is a key (Key) indicating the type of actual data, a length (Length) indicating the data length, and a value (Value) of the data entity.
MXFフォーマットのファイルの場合、ヘッダーのインデックステーブルからデータのパック状態を認識することができる。したがって、同期検出部11−1,11−2または後述する実施例3の同期検出部30−1,30−2等は、ヘッダーのインデックステーブル(Index Table)、またはボディのキー(Key)からファイルの編集単位であるフレームまたはGOPのサイズを読み取り、フレーム等を処理単位とした場合のサイズを示す同期間隔、及びその同期間隔の先頭位置のタイミングを検出する。尚、ヘッダーのインデックステーブル(Index Table)及びボディのキー(Key)は既知であるから、これらの詳細な説明は省略する。 In the case of the MXF format file, the data pack state can be recognized from the index table of the header. Therefore, the synchronization detection units 11-1 and 11-2, or the synchronization detection units 30-1 and 30-2 of the third embodiment described later, and the like can receive files from the header index table (Index Table) or the body key (Key). The size of a frame or GOP, which is an editing unit, is read, and the synchronization interval indicating the size when the frame or the like is used as a processing unit, and the timing of the start position of the synchronization interval are detected. Since the header index table (Index Table) and the body key (Key) are known, a detailed description thereof will be omitted.
また、後述する実施例3の同期検出部30−1,30−2等は、MPEG−2の圧縮データからなる可変レート(VBR)のファイルの場合、ヘッダーからGOPのサイズを読み取り、GOPを処理単位とした場合のサイズを示す同期間隔、及びその同期間隔の先頭位置のタイミングを検出する。また、後述する実施例3の同期検出部30−1,30−2等は、MPEG−2のI−onlyの圧縮データからなる可変レート(VBR)のファイルの場合、ヘッダーからフレーム間隔のサイズ(フレームサイズ)を読み取り、フレームサイズ示す同期間隔、及びその同期間隔の先頭位置のタイミングを検出する。 In addition, in the case of a variable rate (VBR) file composed of MPEG-2 compressed data, the synchronization detection units 30-1 and 30-2 of the third embodiment described later read the GOP size from the header and process the GOP. A synchronization interval indicating the size in the case of a unit and the timing of the start position of the synchronization interval are detected. In addition, the synchronization detection units 30-1 and 30-2 of the third embodiment to be described later, for a variable rate (VBR) file made up of MPEG-2 I-only compressed data, Frame size) is read, and the synchronization interval indicating the frame size and the timing of the start position of the synchronization interval are detected.
図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のブロックデータに分割される。
Returning to FIG. 2, the blocking unit 12-1 receives the
ここで、ファイルデータをブロックサイズに分割する際の整数倍(X倍)の値は予め設定される。また、位置情報は、ファイル内におけるブロックデータの位置を示す情報であり、例えば、フレームの番号、及び、1つのフレームまたは複数のフレーム内のブロックの番号である。同期間隔をF、倍数を示す定数をXとすると、ファイルが分割されたブロックデータのサイズ(ブロックサイズN)は、N=F×X/mで表される。すなわち、設定ファイル部10から読み出されるブロックサイズNは、映像の処理単位を示すフレームサイズである同期間隔F及び分割数mにより決定され、前記式の関係にある。設定ファイル部10には、この式を満たすブロックサイズN及び分割数mが予め設定され、格納されている。定数Xは、コリジョンを排除するための範囲を定める値である。例えば、X=1の場合、編集単位であるフレーム毎にコリジョンが排除され、X=2の場合、編集単位の2倍である2フレーム毎にコリジョンが排除される。
Here, an integer multiple (X times) for dividing the file data into block sizes is set in advance. The position information is information indicating the position of the block data in the file, and is, for example, a frame number and a block number in one frame or a plurality of frames. When the synchronization interval is F and the constant indicating the multiple is X, the size of the block data (block size N) obtained by dividing the file is represented by N = F × X / m. That is, the block size N read from the
ダイジェスト値演算部13−1は、ブロック化部12−1からブロックデータ及び位置情報を入力し、ブロックデータに対し、ハッシュ関数等の所定の関数または演算式を用いて、ブロックデータの要約であるダイジェスト値を演算し、ダイジェスト値及び位置情報を比較部14に出力する。同様に、ダイジェスト値演算部13−2は、ブロック化部12−2からブロックデータ及び位置情報を入力し、ブロックデータに対し、ダイジェスト値演算部13−1において用いる同じ関数または演算式を用いて、ダイジェスト値を演算し、ダイジェスト値及び位置情報を比較部14に出力する。ここで、ダイジェスト値を演算するために用いる関数として、一般にハッシュ関数が用いられるが、本発明では、ハッシュ関数に限定するものではなく、他の関数または演算式であってもよい(以下の実施例2〜8についても同じ)。 The digest value calculation unit 13-1 receives block data and position information from the blocking unit 12-1, and uses a predetermined function such as a hash function or an arithmetic expression for the block data to summarize the block data. The digest value is calculated, and the digest value and position information are output to the comparison unit 14. Similarly, the digest value calculation unit 13-2 receives block data and position information from the block forming unit 12-2, and uses the same function or calculation formula used in the digest value calculation unit 13-1 for the block data. The digest value is calculated, and the digest value and position information are output to the comparison unit 14. Here, a hash function is generally used as a function used to calculate the digest value. However, in the present invention, the function is not limited to the hash function, and may be another function or an arithmetic expression (the following implementation) The same applies to Examples 2 to 8).
比較部14は、ダイジェスト値演算部13−1から、ファイル#1のブロックデータにおけるダイジェスト値及び位置情報を入力すると共に、ダイジェスト値演算部13−2から、ファイル#2のブロックデータにおけるダイジェスト値及び位置情報を入力し、同じ位置情報のダイジェスト値を比較し、異なるダイジェスト値の位置情報を不一致部分の位置情報として連続性判定部15に出力する。比較部14により出力された不一致部分の位置情報は、ファイル#1,#2間で不一致部分の位置を示す情報となる。
The comparison unit 14 inputs the digest value and position information in the block data of the
連続性判定部15は、比較部14から不一致部分の位置情報を入力し、設定ファイル部10から分割数mを読み出し、フレームサイズ(同期間隔)またはその整数倍(X倍)のデータ区間において、不一致部分の連続性を判定し、不一致部分が連続していない不一致部分をコリジョン発生部分とすることにより、コリジョンの発生を検出し、不一致部分の位置情報及びコリジョン発生部分の位置情報を連続化部16に出力する。
The
図3は、連続性判定部15の処理を示すフローチャートである。連続性判定部15は、比較部14から不一致部分の位置情報を入力し(ステップS301)、設定ファイル部10から分割数mを読み出す(ステップS302)。そして、連続性判定部15は、不一致部分の位置情報から、フレームサイズ(同期間隔)またはその整数倍(X倍)のデータ区間(所定のデータ区間)における不一致部分の数を算出する(ステップS303)。この所定のデータ区間には、少なくとも1つの不一致部分が含まれる。不一致部分を全く含まないデータ区間については、連続性判定部15による連続性判定の対象としない。
FIG. 3 is a flowchart showing the processing of the
連続性判定部15は、算出した不一致部分の数と、そのデータ区間におけるブロックデータの数を示す分割数mとを比較する(ステップS304)。連続性判定部15は、ステップS304において、不一致部分の数と分割数mとが同じであると判定した場合(ステップS304:=)、すなわち、データ区間内の全てのブロックデータが不一致部分であると判定した場合、所定のデータ区間において不一致部分は正しく連続していると判断し、コリジョンは発生していないと判定する(ステップS305)。そして、連続性判定部15は、入力した不一致部分の位置情報のみを連続化部16に出力する(ステップS306)。
The
一方、連続性判定部15は、ステップS304において、不一致部分の数が分割数mよりも小さいと判定した場合(ステップS304:<)、すなわち、データ区間内に一致部分が存在すると判定した場合、所定のデータ区間において不一致部分は正しく連続していないと判断し、コリジョンが発生していると判定する(ステップS307)。そして、連続性判定部15は、所定のデータ区間において、不一致部分以外の部分(不一致部分が連続していない部分)である一致部分を、コリジョン発生部分に設定し(ステップS308)、入力した不一致部分の位置情報、及び、設定したコリジョン発生部分の位置情報を連続化部16に出力する(ステップS309)。
On the other hand, if the
例えば、ファイル#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ブロックのみの場合、一致部分においてコリジョンが発生していると判定する。
For example, when the
このように、連続性判定部15は、ファイル編集に伴って影響を受けるフレームのデータ区間において、全てのブロックデータについて不一致部分が連続していない場合、コリジョンが発生していると判定する。これにより、コリジョンの発生を確実に判定することができる。ファイル編集の影響を受けるフレームのデータ区間において、全てのブロックデータは不一致部分になることが前提になっているからである。
In this way, the
図2に戻って、連続化部16は、連続性判定部15から、不一致部分の位置情報及びコリジョン発生部分の位置情報を入力し、設定ファイル部10から分割数mを読み出し、コリジョン発生部分の位置情報を不一致部分の位置情報に加えるように変更して不一致部分を連続させ、連続させた不一致部分の位置情報を出力する。このように、ファイル編集に伴って影響を受ける所定のデータ区間毎にコリジョンが検出され、検出されたコリジョンの位置情報が不一致部分の位置情報に変更されるから、コリジョンが確実に排除され、正確な不一致部分の位置情報を得ることができる。
Returning to FIG. 2, the
図4は、分割数m=2、定数X=1の場合において、フレームとブロックデータとが同期しているときの不一致部分及びコリジョン発生部分を説明する図である。図中、ファイル#1データである編集ファイルの斜線部分は、ファイル編集された箇所を示しており、フレーム2〜4が編集されている。塗りつぶし部分は不一致部分を示しており、αはコリジョン発生部分を示している。比較部14により不一致部分が比較検出された結果、フレーム2における第2のブロック、フレーム3における第1のブロック、及びフレーム4における第1,2のブロックが不一致部分になっている。連続性判定部15により不一致部分の連続性が判定された結果、フレーム2の第1のブロック、及び第3のフレームの第2のブロックがコリジョン発生部分αになっている。そして、連続化部16により、コリジョン発生部分αが不一致部分に変更され、結果として、ファイル編集されたフレーム2〜4の全てのブロックが、不一致部分として検出される。
FIG. 4 is a diagram for explaining a mismatched portion and a collision occurrence portion when the frame and block data are synchronized when the division number m = 2 and the constant X = 1. In the figure, the hatched portion of the edit file that is the
図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に示したように、元ファイル及び複製ファイルに対し同じデータが上書きされることになるから、結果として元のデータが維持されることになる。
FIG. 5 is a diagram for explaining a mismatch portion and a collision occurrence portion when the frame and the block data are synchronized when the division number m = 1.5 and the constant X = 1. Similar to FIG. 4, the hatched portion of the edit file that is the
以上のように、実施例1のファイル処理装置1によれば、ファイルを分割したブロックデータのダイジェスト値を用いて、ファイル#1,2の不一致部分を検出する際に、連続性判定部15が、ファイル編集に伴って影響を受ける所定のデータ区間毎に、不一致部分の連続性を判定し、所定のデータ区間内の不一致部分の数が、所定のデータ区間をブロックデータに分割するために予め設定された分割数mよりも小さい場合、不一致部分以外の一致部分をコリジョン発生部分として検出し、連続化部16が、コリジョン発生部分を不一致部分に変更するようにした。これにより、大容量のファイルデータを比較することなく簡易な手法により、コリジョンを確実に検出し排除することができる。したがって、コリジョンの発生確率が0になるから、不一致部分の検出精度を向上させ、高信頼化を実現することができる。
As described above, according to the
次に、実施例2について詳細に説明する。実施例2のファイル処理装置2は、比較する2つのファイルのフレームサイズ(同期間隔)が一定及び一致しており、フレームとブロックデータとが同期していない場合において、ファイルの不一致部分を検出する装置である。具体的には、ファイル処理装置2は、2つのファイルに対し、ファイルを分割したブロックデータのダイジェスト値をそれぞれ演算して比較し、ダイジェスト値が異なるブロックデータの部分を不一致部分として検出する。そして、ファイル処理装置2は、検出した不一致部分の前後のブロックデータのうち、一致部分をコリジョン発生部分として推定し、コリジョン発生部分を不一致部分に変更することにより、コリジョンを排除する。
Next, Example 2 will be described in detail. The
図6は、実施例2によるファイル処理装置2の構成を示すブロック図である。このファイル処理装置2は、設定ファイル部20、ブロック化部21−1,21−2、ダイジェスト値演算部22−1,22−2、比較部23及び連続化部24を備えている。
FIG. 6 is a block diagram illustrating the configuration of the
設定ファイル部20は記憶手段であり、オペレータにより予め設定されたブロックサイズN及び排除コリジョン数nが設定ファイルとして格納されている。ここで、排除コリジョン数nは、連続化部24において、不一致部分の前後のブロックデータをコリジョン発生部分として推定し排除する数である。排除コリジョン数nは、例えば、コリジョンが発生し易いハッシュ関数を用いる場合、大きい値が設定され、コリジョンが発生し難いハッシュ関数を用いる場合、小さい値が設定される。
The
ブロック化部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のフレームサイズ(同期間隔)が一定及び一致していることが前提であるから、同期していることになる。
The blocking unit 21-1 inputs the
ダイジェスト値演算部22−1は、ブロック化部21−1からブロックデータ及び位置情報を入力し、ブロックデータに対し、ハッシュ関数等の所定の関数または演算式を用いてダイジェスト値を演算し、ダイジェスト値及び位置情報を比較部23に出力する。同様に、ダイジェスト値演算部22−2は、ブロック化部21−2からブロックデータ及び位置情報を入力し、ブロックデータに対し、ダイジェスト値演算部22−1において用いる関数等と同じ関数等を用いて、ダイジェスト値を演算し、ダイジェスト値及び位置情報を比較部23に出力する。
The digest value calculation unit 22-1 receives block data and position information from the block forming unit 21-1, calculates a digest value for the block data using a predetermined function such as a hash function or an arithmetic expression, and performs digest processing. The value and the position information are output to the
比較部23は、ダイジェスト値演算部22−1から、ファイル#1のブロックデータにおけるダイジェスト値及び位置情報を入力すると共に、ダイジェスト値演算部22−2から、ファイル#2のブロックデータにおけるダイジェスト値及び位置情報を入力し、同じ位置情報のダイジェスト値を比較し、異なるダイジェスト値の位置情報を不一致部分の位置情報として連続化部24に出力する。
The
連続化部24は、比較部23から不一致部分の位置情報を入力し、設定ファイル部20から排除コリジョン数nを読み出し、不一致部分をその前後に排除コリジョン数n分広げて連続化し、不一致部分の位置情報を出力する。
The
図7は、連続化部24の処理を示すフローチャートである。連続化部24は、比較部23から不一致部分の位置情報を入力し(ステップS701)、設定ファイル部20から排除コリジョン数nを読み出す(ステップS702)。
FIG. 7 is a flowchart showing the processing of the
連続化部24は、不一致部分を基点として、その前後における排除コリジョン数n分のブロックデータが不一致部分であるか、または一致部分であるかをそれぞれ判定する(ステップS703)。そのブロックデータが一致部分であると判定した場合(ステップS703:一致部分)、そのブロックデータをコリジョン発生部分として推定する(ステップS704)。
The
連続化部24は、コリジョン発生部分を不一致部分に変更し、すなわち、コリジョン発生部分の位置情報を不一致部分の位置情報に加えるように変更する(ステップS705)。連続化部24は、ステップS705から移行した場合、または、ステップS703において、そのブロックデータが不一致部分であると判定した場合(ステップS703:不一致部分)、不一致部分の位置情報を出力する(ステップS706)。
The
このように、連続化部24は、不一致部分の前後における排除コリジョン数n分のブロックデータのそれぞれについて、そのブロックデータが一致部分である場合、そのブロックデータをコリジョン発生部分として推定し、推定したコリジョン発生部分を不一致部分に変更するようにした。これにより、コリジョンの発生を、簡易な手法にて、安全性及び信頼性の観点から判定することができる。
As described above, the
図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に示したように、元ファイル及び複製ファイルに対し同じデータが上書きされることになるから、結果として元のデータが維持されることになる。
In FIG. 8, the division number m = 1.5, the constant X = 1, and the block and the block data are divided into blocks without being synchronized. It is a figure explaining the case set as 1). In the figure, the hatched portion of the edit file that is the
図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に示したように、元ファイル及び複製ファイルに対し同じデータが上書きされることになるから、結果として元のデータが維持されることになる。
In FIG. 9, the division number m = 1.5, the constant X = 1, and the block and the block data are blocked without being synchronized, and one block before and after the inconsistent portion is subject to collision exclusion (exclusion collision number n = It is a figure explaining the case set as 2). Similarly to FIG. 8, the shaded portion of the edit file that is the
以上のように、実施例2のファイル処理装置2によれば、ファイルを分割したブロックデータのダイジェスト値を用いて、ファイル#1,2の不一致部分を検出する際に、連続化部24が、比較部23により検出された不一致部分の前後における排除コリジョン数n分のブロックデータのそれぞれについて、そのブロックデータが一致部分である場合、そのブロックデータをコリジョン発生部分として推定し、推定したコリジョン発生部分を不一致部分に変更するようにした。これにより、大容量のファイルデータを比較することなく簡易な手法により、コリジョンを検出し排除することができ、不一致部分の検出精度を向上させ、高信頼化を実現することができる。
As described above, according to the
また、実施例2のファイル処理装置2によれば、図2に示した実施例1のファイル処理装置1と比較して、同期検出部11−1,11−2及び連続性判定部15を備えておらず、フレームとブロックデータとが同期していない場合であっても、排除コリジョン数nに応じて不一致部分を広げることにより、コリジョンを検出し排除するようにした。これにより、フレームとブロックデータとを同期させるための処理を行うことなく、実施例1に比べて、処理及び装置を大幅に簡略化することができる。
In addition, the
尚、図6に示した実施例2によるファイル処理装置2の構成に加え、連続化部24の後段に孤立除去部を備えるようにしてもよい。孤立除去部は、不一致部分の間で孤立している一致部分を除去し、一連の不一致部分を生成する。具体的には、孤立除去部は、連続化部24から、コリジョンが排除された不一致部分の位置情報を入力し、所定数以上連続している不一致部分を不一致グループとし、不一致グループの間に位置する一致部分のブロック数と、予め設定された閾値とを比較する。そして、孤立除去部は、一致部分のブロック数が閾値よりも小さいと判定した場合、その一致部分を不一致部分に加えるように変更し、不一致部分の位置情報を出力する。
In addition to the configuration of the
このように、孤立除去部を備えたファイル処理装置2によれば、安全性の観点から、不一致部分を広げることができ、一層の高信頼化を実現することができる。また、不一致グループの間に孤立している一致部分が不一致部分に変更されるから、例えば、2つの不一致グループを1つの不一致グループに変更することができる。したがって、転送等の処理は1つの不一致部分のデータに対して1回で済むから、処理負荷を低減することができる。
As described above, according to the
また、排除コリジョン数n=1が設定された場合、連続化部24により、不一致部分がn=1の範囲で広げられ、コリジョンが排除される。しかしながら、コリジョンはn=1の範囲で排除されるに過ぎない。そこで、孤立除去部を備えることにより、さらに不一致部分が広げられるから、排除コリジョン数n=2が設定された場合と同様の範囲で、コリジョンを排除することができる。
Further, when the number of excluded collisions n = 1 is set, the non-matching portion is widened in the range of n = 1 by the
次に、実施例3について詳細に説明する。実施例3のファイル処理装置3は、比較する2つのファイルのフレームサイズ(同期間隔)が変化している場合において、ファイルの不一致部分を検出する装置である。具体的には、ファイル処理装置3は、2つのファイルの同期を検出し、同期情報、分割数m、及びファイルデータをブロックサイズに分割する際の整数倍(X倍)の値である定数Xに基づいてブロックサイズNを判定し、前述の実施例1のファイル処理装置1と同様の処理を行う。すなわち、ファイル処理装置3は、ファイルをブロックサイズNに分割したブロックデータのダイジェスト値をそれぞれ演算して比較し、ダイジェスト値が異なるブロックデータの部分を不一致部分として検出する。そして、ファイル処理装置3は、検出した不一致部分の連続性を判定し、連続すべき不一致部分に一致部分が含まれる場合、この一致部分をダイジェスト値のコリジョン発生部分とし、コリジョン発生部分を不一致部分に変更することにより、コリジョンを排除する。
Next, Example 3 will be described in detail. The file processing device 3 according to the third embodiment is a device that detects a mismatched portion of files when the frame sizes (synchronization intervals) of two files to be compared are changed. Specifically, the file processing device 3 detects the synchronization of two files, the synchronization information, the division number m, and a constant X that is an integer multiple (X times) when dividing the file data into block sizes. The block size N is determined based on the above, and the same processing as that of the
図10は、実施例3によるファイル処理装置3の構成を示すブロック図である。このファイル処理装置3は、同期検出部30−1,30−2、ブロックサイズ判定部31、ブロック化部32−1,32−2、ダイジェスト値演算部33−1,33−2、比較部34、連続性判定部35及び連続化部36を備えている。
FIG. 10 is a block diagram illustrating the configuration of the file processing apparatus 3 according to the third embodiment. The file processing apparatus 3 includes synchronization detection units 30-1 and 30-2, a block
図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データの同期情報に基づいて判定される。
When comparing the
同期検出部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と同じ処理を行うから、ここでは説明を省略する。
The synchronization detection units 30-1 and 30-2, the blocking units 32-1 and 32-2, the digest value calculation units 33-1 and 33-2, the
ブロックサイズ判定部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は、その変化に応じた値となる。
The block
図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)。
FIG. 11 is a flowchart showing the processing of the block
一方、ブロックサイズ判定部31は、ステップS1102において、同期情報a,bが同じでないと判定した場合(ステップS1102:N)、すなわち、ファイル#1,#2データの同期間隔及びその先頭位置のタイミングのうちの少なくとも一方が異なると判定した場合、コリジョンの検出及び排除の処理を行わないことを示す全部不一致を出力する(ステップS1105)。
On the other hand, the block
以上のように、実施例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を設定する手間を省くことができる。
As described above, according to the file processing device 3 of the third embodiment, the block
次に、実施例4について詳細に説明する。実施例4のファイル処理装置4は、比較する2つのファイルのフレームサイズ(同期間隔)が変化している場合において、ファイルの不一致部分を検出する装置である。具体的には、ファイル処理装置4は、2つのファイルの同期を検出し、前述の実施例3のファイル処理装置3と同様の処理を行ってブロックサイズNを判定し、前述の実施例2のファイル処理装置2と同様の処理を行ってコリジョンを排除する。すなわち、ファイル処理装置4は、2つのファイルの同期を検出し、同期情報、分割数m、及びファイルデータをブロックサイズに分割する際の整数倍(X倍)の値である定数Xに基づいてブロックサイズNを判定する。そして、ファイル処理装置4は、ファイルをブロックサイズNに分割したブロックデータのダイジェスト値をそれぞれ演算して比較し、ダイジェスト値が異なるブロックデータの部分を不一致部分として検出する。そして、ファイル処理装置4は、検出した不一致部分の前後のブロックデータのうち、一致部分をコリジョン発生部分として推定し、コリジョン発生部分を不一致部分に変更することにより、コリジョンを排除する。
Next, Example 4 will be described in detail. The
図12は、実施例4によるファイル処理装置4の構成を示すブロック図である。このファイル処理装置4は、同期検出部40−1,40−2、ブロックサイズ判定部41、ブロック化部42−1,42−2、ダイジェスト値演算部43−1,43−2、比較部44及び連続化部45を備えている。
FIG. 12 is a block diagram illustrating the configuration of the
図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と同じ機能を有する。
When comparing the file processing apparatus 3 of the third embodiment shown in FIG. 10 and the
両装置3,4は、ブロックサイズNがファイル#1,#2データの同期情報に基づいて判定される点で同じである。一方、ファイル処理装置3は、不一致部分の連続性を判定し、連続すべき不一致部分に一致部分が含まれる場合、この一致部分をダイジェスト値のコリジョン発生部分とし、コリジョンを排除するのに対し、ファイル処理装置4は、連続性を判定することなく、不一致部分の前後のブロックデータのうち、一致部分をコリジョン発生部分として推定し、コリジョンを排除する点で相違する。
Both
同期検出部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と同じ処理を行うから、ここでは説明を省略する。
The synchronization detection units 40-1 and 40-2, the blocking units 42-1 and 42-2, the digest value calculation units 43-1 and 43-2, and the
ブロックサイズ判定部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は、その変化に応じた値となる。
The block
以上のように、実施例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を設定する手間を省くことができる。
As described above, according to the
次に、実施例5について詳細に説明する。実施例5のファイル処理装置5は、比較する2つのファイルのうちの1つのファイルが、ブロックデータのダイジェスト値、位置情報、ブロックサイズN及び分割数mと共に記憶部に予め蓄積されており、実施例1の場合と同様に、比較する2つのファイルのフレームサイズ(同期間隔)が一定及び一致しており、フレームとブロックデータとが同期している場合において、ファイルの不一致部分を検出する装置である。 Next, Example 5 will be described in detail. In the file processing apparatus 5 of the fifth embodiment, one of two files to be compared is stored in advance in the storage unit together with the digest value of block data, position information, block size N, and division number m. As in the case of Example 1, when the frame sizes (synchronization intervals) of the two files to be compared are constant and coincide with each other, and the frame and the block data are synchronized, the device that detects the inconsistent portion of the file. is there.
図13は、実施例5によるファイル処理装置5の構成を示すブロック図である。このファイル処理装置5は、記憶部50、同期検出部51、ブロック化部52、ダイジェスト値演算部53、ダイジェスト値読み出し部54、比較部55、連続性判定部56及び連続化部57を備えている。
FIG. 13 is a block diagram illustrating the configuration of the file processing apparatus 5 according to the fifth embodiment. The file processing apparatus 5 includes a
図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を備えている点で相違する。
Comparing the
同期検出部51、ブロック化部52、ダイジェスト値演算部53、比較部55、連続性判定部56及び連続化部57は、実施例1の同期検出部11−1、ブロック化部12−1、ダイジェスト値演算部13−1、比較部14、連続性判定部15及び連続化部16と同じ処理を行うから、ここでは説明を省略する。尚、ダイジェスト値演算部53は、記憶部50に蓄積された、ファイル#2データのダイジェスト値が演算された際の関数等と同じ関数等を用いて、ダイジェスト値を演算する。
The
記憶部50には、予め設定されたブロックサイズN及び分割数mが設定ファイルとして蓄積されている。また、記憶部50には、ファイル#2データが蓄積されており、既にファイル#2データをブロック化して求めたブロックデータ毎のダイジェスト値がその位置情報と共に蓄積されている。このように、ファイル#2データのダイジェスト値及び位置情報は、ファイル#2データ及びブロックサイズNから演算して求めるのではなく、記憶部50に予めDBまたはファイルとして蓄積されている。
The
ダイジェスト値読み出し部54は、ブロック化部52から位置情報を入力し、その位置情報のダイジェスト値を記憶部50から読み出し、読み出したダイジェスト値及び位置情報を比較部55に出力する。
The digest
比較部55は、ダイジェスト値演算部53から、ファイル#1のブロックデータにおけるダイジェスト値及び位置情報を入力すると共に、ダイジェスト値読み出し部54から、ファイル#2のブロックデータにおけるダイジェスト値及び位置情報を入力し、同じ位置情報のダイジェスト値を比較し、異なるダイジェスト値の位置情報を不一致部分の位置情報として連続性判定部56に出力する。連続性判定部56及び連続化部57は、記憶部50から分割数mを読み出す。
The
以上のように、実施例5のファイル処理装置5によれば、ファイル#1データをブロック化してダイジェスト値及び位置情報を求め、予め蓄積されたファイル#2データのダイジェスト値を、位置情報をキーにして記憶部50から読み出し、2つのダイジェスト値を用いて、ファイル#1,2の不一致部分を検出する際に、連続性判定部56が、実施例1,3の連続性判定部15,35と同様に、ファイル編集に伴って影響を受ける所定のデータ区間毎に、不一致部分の連続性を判定し、所定のデータ区間内の不一致部分の数が、所定のデータ区間をブロックデータに分割するために予め設定された分割数mよりも小さい場合、不一致部分以外の一致部分をコリジョン発生部分として検出し、連続化部57が、コリジョン発生部分を不一致部分に変更するようにした。これにより、大容量のファイルデータを比較することなく簡易な手法により、コリジョンを確実に検出し排除することができる。したがって、コリジョンの発生確率が0になるから、不一致部分の検出精度を向上させ、高信頼化を実現することができる。
As described above, according to the file processing device 5 of the fifth embodiment, the
次に、実施例6について詳細に説明する。実施例6のファイル処理装置6は、比較する2つのファイルのうちの1つのファイルが、ブロックデータのダイジェスト値、位置情報、ブロックサイズN及び排除コリジョン数nと共に記憶部に予め蓄積されており、実施例2の場合と同様に、比較する2つのファイルのフレームサイズ(同期間隔)が一定及び一致しており、フレームとブロックデータとが同期していない場合において、ファイルの不一致部分を検出する装置である。
Next, Example 6 will be described in detail. In the
図14は、実施例6によるファイル処理装置6の構成を示すブロック図である。このファイル処理装置6は、記憶部60、ブロック化部61、ダイジェスト値演算部62、ダイジェスト値読み出し部63、比較部64及び連続化部65を備えている。
FIG. 14 is a block diagram illustrating the configuration of the
図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を備えている点で相違する。
Comparing the
ブロック化部61、ダイジェスト値演算部62、比較部64及び連続化部65は、実施例2のブロック化部21−1、ダイジェスト値演算部22−1、比較部23及び連続化部24と同じ処理を行うから、ここでは説明を省略する。尚、ダイジェスト値演算部62は、記憶部60に蓄積された、ファイル#2データのダイジェスト値が演算された際の関数等と同じ関数等を用いて、ダイジェスト値を演算する。
The blocking
記憶部60には、予め設定されたブロックサイズN及び排除コリジョン数nが設定ファイルとして蓄積されている。また、記憶部60には、ファイル#2データが蓄積されており、既にファイル#2データをブロック化して求めたブロックデータ毎のダイジェスト値がその位置情報と共に蓄積されている。このように、ファイル#2データのダイジェスト値及び位置情報は、ファイル#2データ及びブロックサイズNから演算して求めるのではなく、記憶部60に予めDBまたはファイルとして蓄積されている。
The
ダイジェスト値読み出し部63は、ブロック化部61から位置情報を入力し、その位置情報のダイジェスト値を記憶部60から読み出し、読み出したダイジェスト値及び位置情報を比較部64に出力する。
The digest
比較部64は、ダイジェスト値演算部62から、ファイル#1のブロックデータにおけるダイジェスト値及び位置情報を入力すると共に、ダイジェスト値読み出し部63から、ファイル#2のブロックデータにおけるダイジェスト値及び位置情報を入力し、同じ位置情報のダイジェスト値を比較し、異なるダイジェスト値の位置情報を不一致部分の位置情報として連続化部65に出力する。連続化部65は、記憶部60から排除コリジョン数nを読み出す。
The
以上のように、実施例6のファイル処理装置6によれば、ファイル#1データをブロック化してダイジェスト値及び位置情報を求め、予め蓄積されたファイル#2データのダイジェスト値を、位置情報をキーにして記憶部60から読み出し、2つのダイジェスト値を用いて、ファイル#1,2の不一致部分を検出する際に、連続化部65が、実施例2,4の連続化部24,45と同様に、比較部64により検出された不一致部分の前後における排除コリジョン数n分のブロックデータのそれぞれについて、そのブロックデータが一致部分である場合、そのブロックデータをコリジョン発生部分として推定し、推定したコリジョン発生部分を不一致部分に変更するようにした。これにより、大容量のファイルデータを比較することなく簡易な手法により、コリジョンを検出し排除することができ、不一致部分の検出精度を向上させ、高信頼化を実現することができる。
As described above, according to the
次に、実施例7について詳細に説明する。実施例7のファイル処理装置7は、比較する2つのファイルのうちの1つのファイルが、ブロックデータのダイジェスト値、位置情報、同期情報及び分割数mと共に記憶部に予め蓄積されており、実施例3の場合と同様に、比較する2つのファイルのフレームサイズ(同期間隔)が変化している場合において、ファイルの不一致部分を検出する装置である。 Next, Example 7 will be described in detail. In the file processing apparatus 7 of the seventh embodiment, one of the two files to be compared is accumulated in advance in the storage unit together with the digest value of block data, position information, synchronization information, and the division number m. As in the case of No. 3, the apparatus detects a mismatched portion of the file when the frame size (synchronization interval) of the two files to be compared has changed.
図15は、実施例7によるファイル処理装置7の構成を示すブロック図である。このファイル処理装置7は、記憶部70、同期検出部71、ブロックサイズ判定部72、ブロック化部73、ダイジェスト値演算部74、ダイジェスト値読み出し部75、比較部76、連続性判定部77及び連続化部78を備えている。
FIG. 15 is a block diagram illustrating the configuration of the file processing apparatus 7 according to the seventh embodiment. The file processing device 7 includes a
図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を備えている点で相違する。
When comparing the file processing apparatus 3 of the third embodiment shown in FIG. 10 with this file processing apparatus 7, both apparatuses 3 and 7 are synchronized detection units 30-1 and 71 that process
同期検出部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を判定する。
The
記憶部70には、予め設定された分割数mが設定ファイルとして蓄積されている。また、記憶部70には、ファイル#2データ及び同期情報bが蓄積されており、既にファイル#2データをブロック化して求めたブロックデータ毎のダイジェスト値がその位置情報と共に蓄積されている。このように、ファイル#2データのダイジェスト値及び位置情報は、ファイル#2データ及びブロックサイズNから演算して求めるのではなく、記憶部70に予めDBまたはファイルとして蓄積されている。また、同期情報bもファイル#2データから求めるのではなく、記憶部70に予めDBまたはファイルとして蓄積されている。
The
ダイジェスト値読み出し部75は、ブロック化部73から位置情報を入力し、その位置情報のダイジェスト値を記憶部70から読み出し、読み出したダイジェスト値及び位置情報を比較部76に出力する。
The digest
比較部76は、ダイジェスト値演算部74から、ファイル#1のブロックデータにおけるダイジェスト値及び位置情報を入力すると共に、ダイジェスト値読み出し部75から、ファイル#2のブロックデータにおけるダイジェスト値及び位置情報を入力し、同じ位置情報のダイジェスト値を比較し、異なるダイジェスト値の位置情報を不一致部分の位置情報として連続性判定部77に出力する。
The
以上のように、実施例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を設定する手間を省くことができる。
As described above, according to the file processing apparatus 7 of the seventh embodiment, the
次に、実施例8について詳細に説明する。実施例8のファイル処理装置8は、比較する2つのファイルのうちの1つのファイルが、ブロックデータのダイジェスト値、位置情報、同期情報、分割数m及び排除コリジョン数nと共に記憶部に予め蓄積されており、実施例4の場合と同様に、比較する2つのファイルのフレームサイズ(同期間隔)が変化している場合において、ファイルの不一致部分を検出する装置である。 Next, Example 8 will be described in detail. In the file processing apparatus 8 according to the eighth embodiment, one of two files to be compared is stored in advance in a storage unit together with a digest value of block data, position information, synchronization information, a division number m, and an exclusion collision number n. Similarly to the case of the fourth embodiment, when the frame sizes (synchronization intervals) of two files to be compared are changed, the apparatus detects a mismatched portion of the files.
図16は、実施例8によるファイル処理装置8の構成を示すブロック図である。このファイル処理装置8は、記憶部80、同期検出部81、ブロックサイズ判定部82、ブロック化部83、ダイジェスト値演算部84、ダイジェスト値読み出し部85、比較部86及び連続化部87を備えている。
FIG. 16 is a block diagram illustrating the configuration of the file processing apparatus 8 according to the eighth embodiment. The file processing apparatus 8 includes a
図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を備えている点で相違する。
Comparing the
同期検出部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を判定する。
The
記憶部80には、予め設定された分割数m及び排除コリジョン数nが設定ファイルとして蓄積されている。また、記憶部80には、ファイル#2データ及び同期情報bが蓄積されており、既にファイル#2データをブロック化して求めたブロックデータ毎のダイジェスト値がその位置情報と共に蓄積されている。このように、ファイル#2データのダイジェスト値及び位置情報は、ファイル#2データ及びブロックサイズNから演算して求めるのではなく、記憶部80に予めDBまたはファイルとして蓄積されている。また、同期情報bもファイル#2データから求めるのではなく、記憶部80に予めDBまたはファイルとして蓄積されている。
The
ダイジェスト値読み出し部85は、ブロック化部83から位置情報を入力し、その位置情報のダイジェスト値を記憶部80から読み出し、読み出したダイジェスト値及び位置情報を比較部86に出力する。
The digest
比較部86は、ダイジェスト値演算部84から、ファイル#1のブロックデータにおけるダイジェスト値及び位置情報を入力すると共に、ダイジェスト値読み出し部85から、ファイル#2のブロックデータにおけるダイジェスト値及び位置情報を入力し、同じ位置情報のダイジェスト値を比較し、異なるダイジェスト値の位置情報を不一致部分の位置情報として連続化部87に出力する。
The
以上のように、実施例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を設定する手間を省くことができる。
As described above, according to the file processing apparatus 8 of the eighth embodiment, the
尚、本発明の実施例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等)、半導体メモリ等の記憶媒体に格納して頒布することもできる。
Note that a normal computer can be used as the hardware configuration of the
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 サーバ
1 to 8, 100
Claims (7)
前記ファイルのそれぞれについて、前記ファイルにおける処理単位のサイズを示す同期間隔、及び前記同期間隔における先頭位置のタイミングを検出し、同期情報を生成する同期検出部と、
前記ファイルのそれぞれについて、前記同期検出部により生成された同期情報の示す同期間隔及びタイミングに従って、前記ファイルのデータを、所定のデータ区間内で所定のブロックサイズのブロックデータに分割し、前記ファイル内の前記ブロックデータの位置を示す位置情報を生成するブロック化部と、
前記ファイルのそれぞれについて、前記ブロック化部により分割されたブロックデータのダイジェスト値を演算するダイジェスト値演算部と、
前記ダイジェスト値演算部により演算されたダイジェスト値を、前記ブロック化部により生成された同じ位置情報が示す位置毎に比較し、異なるダイジェスト値の位置情報を、前記ファイルの不一致部分の位置情報として出力する比較部と、
前記比較部により出力された不一致部分の位置情報を入力し、前記不一致部分の位置情報に基づいて、前記所定のデータ区間内で不一致部分の連続性を判定し、前記所定のデータ区間内で不一致部分が連続していない一致部分をコリジョン発生部分とし、前記コリジョン発生部分の位置情報及び前記不一致部分の位置情報を出力する連続性判定部と、
前記連続性判定部により出力されたコリジョン発生部分の位置情報及び不一致部分の位置情報を入力し、前記コリジョン発生部分の位置情報を不一致部分の位置情報に変更して不一致部分を連続させ、前記連続させた不一致部分の位置情報を出力する連続化部と、
を備えたことを特徴とするファイル処理装置。 In a file processing apparatus that compares data of a plurality of files and detects a mismatched portion,
For each of the files, a synchronization interval that indicates the size of a processing unit in the file, and a synchronization detection unit that detects the timing of the start position in the synchronization interval, and generates synchronization information;
For each of the files, the data of the file is divided into block data of a predetermined block size within a predetermined data section according to the synchronization interval and timing indicated by the synchronization information generated by the synchronization detection unit, A blocking unit that generates position information indicating the position of the block data of
For each of the files, a digest value calculation unit that calculates the digest value of the block data divided by the blocking unit;
The digest value calculated by the digest value calculation unit is compared for each position indicated by the same position information generated by the blocking unit, and position information of different digest values is output as position information of the inconsistent portion of the file. A comparison unit to
The position information of the non-matching portion output by the comparison unit is input, the continuity of the non-matching portion is determined within the predetermined data section based on the position information of the non-matching portion, and the non-matching within the predetermined data section A continuity determining unit that outputs a position where the collision occurs as a collision occurrence part and a position where the collision does not occur and a position where the collision does not occur.
The position information of the collision occurrence part and the position information of the mismatch part outputted by the continuity determination unit are input, the position information of the collision occurrence part is changed to the position information of the mismatch part, and the mismatch part is made continuous. A continuation unit that outputs position information of the mismatched part,
A file processing apparatus comprising:
前記ファイルのそれぞれについて、前記ファイルのデータを、所定のブロックサイズのブロックデータに分割し、前記ファイル内の前記ブロックデータの位置を示す位置情報を生成するブロック化部と、
前記ファイルのそれぞれについて、前記ブロック化部により分割されたブロックデータのダイジェスト値を演算するダイジェスト値演算部と、
前記ダイジェスト値演算部により演算されたダイジェスト値を、前記ブロック化部により生成された同じ位置情報が示す位置毎に比較し、異なるダイジェスト値の位置情報を、前記ファイルの不一致部分の位置情報として出力する比較部と、
前記比較部により出力された不一致部分の位置情報を入力し、前記不一致部分の位置情報が示す位置の前後に、前記不一致部分を所定数分広げて連続させ、前記連続させた不一致部分の位置情報を出力する連続化部と、
を備えたことを特徴とするファイル処理装置。 In a file processing apparatus that compares data of a plurality of files and detects a mismatched portion,
For each of the files, a blocking unit that divides the data of the file into block data of a predetermined block size and generates position information indicating the position of the block data in the file;
For each of the files, a digest value calculation unit that calculates the digest value of the block data divided by the blocking unit;
The digest value calculated by the digest value calculation unit is compared for each position indicated by the same position information generated by the blocking unit, and position information of different digest values is output as position information of the inconsistent portion of the file. A comparison unit to
The position information of the non-matching part output by the comparison unit is input, and before and after the position indicated by the position information of the non-matching part, the non-matching part is expanded by a predetermined number to be continuous, and the position information of the non-matching part made continuous A continuation unit that outputs
A file processing apparatus comprising:
さらに、前記同期検出部により生成された同期情報が前記ファイルのそれぞれについて同一であると判定した場合、前記所定のデータ区間内におけるファイルのデータをブロックデータに分割する際の所定の分割数に基づいて、ブロックサイズを判定するブロックサイズ判定部を備え、
前記ブロック化部は、前記ファイルのそれぞれについて、前記ファイルのデータを、前記所定のデータ区間内で、前記ブロックサイズ判定部により判定されたブロックサイズのブロックデータに分割し、前記ファイル内における前記ブロックデータの位置を示す位置情報を生成する、ことを特徴とするファイル処理装置。 The file processing apparatus according to claim 1,
Further, when it is determined that the synchronization information generated by the synchronization detection unit is the same for each of the files, based on a predetermined number of divisions when the data of the file in the predetermined data section is divided into block data A block size determination unit for determining the block size,
For each of the files, the blocking unit divides the data of the file into block data having a block size determined by the block size determination unit within the predetermined data section, and the blocks in the file A file processing apparatus that generates position information indicating a position of data.
さらに、前記ファイルのそれぞれについて、前記ファイルにおける処理単位のサイズを示す同期間隔、及び前記同期間隔における先頭位置のタイミングを検出し、同期情報を生成する同期検出部と、
前記同期検出部により生成された同期情報が前記ファイルのそれぞれについて同一であると判定した場合、前記所定のデータ区間内におけるファイルのデータをブロックデータに分割する際の所定の分割数に基づいて、ブロックサイズを判定するブロックサイズ判定部と、を備え、
前記ブロック化部は、前記ファイルのそれぞれについて、前記ファイルのデータを、前記所定のデータ区間内で、前記ブロックサイズ判定部により判定されたブロックサイズのブロックデータに分割し、前記ファイル内における前記ブロックデータの位置を示す位置情報を生成する、ことを特徴とするファイル処理装置。 The file processing apparatus according to claim 2,
Further, for each of the files, a synchronization interval that indicates the size of a processing unit in the file, and a synchronization detection unit that detects the timing of the start position in the synchronization interval, and generates synchronization information;
When it is determined that the synchronization information generated by the synchronization detection unit is the same for each of the files, based on a predetermined division number when dividing the data of the file into the block data within the predetermined data section, A block size determination unit for determining a block size,
For each of the files, the blocking unit divides the data of the file into block data having a block size determined by the block size determination unit within the predetermined data section, and the blocks in the file A file processing apparatus that generates position information indicating a position of data.
さらに、前記比較する複数のファイルのうちの1つのファイルが蓄積され、かつ、前記1つのファイルについてのブロックデータのダイジェスト値及び位置情報が蓄積された記憶部を備え、
前記記憶部に蓄積されたファイルについて処理する前記ブロック化部、ダイジェスト値演算部及び請求項1の同期検出部の代わりにダイジェスト値読み出し部を備え、
前記ダイジェスト値読み出し部は、前記記憶部に蓄積されていない他のファイルについて処理する前記ブロック化部により生成された位置情報に対応するダイジェスト値を、前記記憶部から読み出し、
前記比較部は、前記記憶部に蓄積されていない他のファイルについて処理する前記ダイジェスト値演算部により演算されたダイジェスト値と、前記ダイジェスト値読み出し部により読み出されたダイジェスト値とを、同じ位置情報が示す位置毎に比較し、異なるダイジェスト値の位置情報を、前記ファイルの不一致部分の位置情報として出力する、ことを特徴とするファイル処理装置。 The file processing apparatus according to claim 1 or 2,
Furthermore, a storage unit is provided in which one of the plurality of files to be compared is stored, and a digest value and position information of block data for the one file are stored,
A digest value reading unit is provided instead of the blocking unit, the digest value calculation unit, and the synchronization detection unit of claim 1 for processing files stored in the storage unit,
The digest value reading unit reads the digest value corresponding to the position information generated by the blocking unit that processes other files not stored in the storage unit from the storage unit,
The comparison unit uses the same position information for the digest value calculated by the digest value calculation unit that processes other files not stored in the storage unit and the digest value read by the digest value reading unit. The file processing apparatus is characterized in that the position information of the different digest values is output as the position information of the mismatched portion of the file.
さらに、前記比較する複数のファイルのうちの1つのファイルが蓄積され、かつ、前記1つのファイルについての同期情報、ブロックデータのダイジェスト値及び位置情報が蓄積された記憶部を備え、
前記記憶部に蓄積されたファイルについて処理する前記同期検出部、ブロック化部及びダイジェスト値演算部の代わりにダイジェスト値読み出し部を備え、
前記ダイジェスト値読み出し部は、前記記憶部に蓄積されていない他のファイルについて処理する前記ブロック化部により生成された位置情報に対応するダイジェスト値を、前記記憶部から読み出し、
前記ブロックサイズ判定部は、前記記憶部に蓄積されていない他のファイルについて処理する前記同期検出部により生成された同期情報と、前記記憶部に蓄積されたファイルの同期情報とが同一であると判定した場合、前記ファイルのデータをブロックデータに分割する際の所定の分割数に基づいて、ブロックサイズを判定し、
前記比較部は、前記記憶部に蓄積されていない他のファイルについて処理する前記ダイジェスト値演算部により演算されたダイジェスト値と、前記ダイジェスト値読み出し部により読み出されたダイジェスト値とを、同じ位置情報が示す位置毎に比較し、異なるダイジェスト値の位置情報を、前記ファイルの不一致部分の位置情報として出力する、ことを特徴とするファイル処理装置。 The file processing apparatus according to claim 3 or 4,
And a storage unit in which one of the plurality of files to be compared is stored, and the synchronization information, the digest value of block data, and the position information about the one file are stored.
A digest value reading unit is provided instead of the synchronization detection unit, the blocking unit, and the digest value calculation unit that process the files stored in the storage unit,
The digest value reading unit reads the digest value corresponding to the position information generated by the blocking unit that processes other files not stored in the storage unit from the storage unit,
The block size determination unit has the same synchronization information generated by the synchronization detection unit that processes other files not stored in the storage unit, and the synchronization information of the files stored in the storage unit. If determined, the block size is determined based on a predetermined number of divisions when the file data is divided into block data,
The comparison unit uses the same position information for the digest value calculated by the digest value calculation unit that processes other files not stored in the storage unit and the digest value read by the digest value reading unit. The file processing apparatus is characterized in that the position information of the different digest values is output as the position information of the mismatched portion of the file.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010009363A JP5340185B2 (en) | 2010-01-19 | 2010-01-19 | File processing apparatus and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010009363A JP5340185B2 (en) | 2010-01-19 | 2010-01-19 | File processing apparatus and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011150428A JP2011150428A (en) | 2011-08-04 |
JP5340185B2 true JP5340185B2 (en) | 2013-11-13 |
Family
ID=44537364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010009363A Expired - Fee Related JP5340185B2 (en) | 2010-01-19 | 2010-01-19 | File processing apparatus and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5340185B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116305192B (en) * | 2023-02-07 | 2023-11-14 | 成都海泰方圆科技有限公司 | Data file processing method and device, electronic equipment and storage medium |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001175171A (en) * | 1999-12-14 | 2001-06-29 | Victor Co Of Japan Ltd | Method and device for transmitting stream, and transmission medium |
JP2007136865A (en) * | 2005-11-18 | 2007-06-07 | Kyocera Mita Corp | Image forming apparatus |
US8191146B2 (en) * | 2006-10-31 | 2012-05-29 | Tti Inventions C Llc | Virus localization using cryptographic hashing |
CN101874371A (en) * | 2007-11-27 | 2010-10-27 | 松下电器产业株式会社 | Signal demodulation device, signal demodulation method, semiconductor integrated circuit, and reception device |
JP5237661B2 (en) * | 2008-03-24 | 2013-07-17 | 日本放送協会 | File synchronization apparatus, file synchronization method, and file synchronization program |
JP5303172B2 (en) * | 2008-03-28 | 2013-10-02 | Necパーソナルコンピュータ株式会社 | Information processing apparatus, file control system, control method, and program |
JP5149063B2 (en) * | 2008-04-28 | 2013-02-20 | 日本放送協会 | Data comparison apparatus and program |
JP2010272038A (en) * | 2009-05-25 | 2010-12-02 | Nippon Hoso Kyokai <Nhk> | File management device and its program |
-
2010
- 2010-01-19 JP JP2010009363A patent/JP5340185B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011150428A (en) | 2011-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10417191B2 (en) | Transmitting filesystem changes over a network | |
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 | |
JP4263477B2 (en) | System for identifying common digital sequences | |
US9344112B2 (en) | Sampling based elimination of duplicate data | |
US8180740B1 (en) | System and method for eliminating duplicate data by generating data fingerprints using adaptive fixed-length windows | |
US8335877B2 (en) | Hardware acceleration of commonality factoring on removable media | |
US10366072B2 (en) | De-duplication data bank | |
US8321384B2 (en) | Storage device, and program and method for controlling storage device | |
KR20150104623A (en) | Data object processing method and device | |
US9819979B2 (en) | Video data processing apparatus | |
WO2017020576A1 (en) | Method and apparatus for file compaction in key-value storage system | |
KR101667756B1 (en) | Archive file de-duplication apparatus and method | |
CN109947730B (en) | Metadata recovery method, device, distributed file system and readable storage medium | |
KR101254179B1 (en) | Method for effective data recovery in distributed file system | |
JP5340185B2 (en) | File processing apparatus and program | |
CN104484402B (en) | A kind of method and device of deleting duplicated data | |
CN111061428B (en) | Data compression method and device | |
TWI420333B (en) | A distributed de-duplication system and the method therefore | |
CN104572987B (en) | A kind of method and system that simple regeneration code storage efficiency is improved by compressing | |
KR20210113297A (en) | Systems, methods, and apparatus for eliminating duplication and value redundancy in computer memory | |
JP2017097437A (en) | Information processing system, information processing equipment and program | |
US20220391118A1 (en) | Journals for data cloning operations | |
US20180246666A1 (en) | Methods for performing data deduplication on data blocks at granularity level and devices thereof |
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 |