Data processing systems, data processing methods, data processing programs

JP2026142348AActive Publication Date: 2026-09-07CAPCOM CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2025029400
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-02-26
Publication Date
2026-09-07
Estimated Expiration
2045-02-26

Smart Images

  • Figure 2026142348000001_ABST
    Figure 2026142348000001_ABST
Patent Text Reader

Abstract

Perform binary data comparisons appropriately. [Solution] The search processing unit 101 repeatedly performs a search process to search the second binary data for a second sample data SD2 that matches a first sample data SD1 of a predetermined data length extracted from the first binary data. In the search process, the search processing unit 101 searches for a second sample data SD2 that matches the first sample data SD1 within a predetermined range R2 of the second binary data, which includes a second position corresponding to a first position, which is the position of the first sample data SD1 in the first binary data. The difference between the first ratio, which is the ratio of the data length from the beginning of the first binary data to the first position relative to the data length of the first binary data, and the second ratio, which is the ratio of the data length from the beginning of the second binary data to the second position relative to the data length of the second binary data, is less than or equal to a predetermined difference.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a data processing technology. Background Art

[0002] Patent Document 1 discloses a file comparison apparatus including a file comparison processing unit and an edit processing unit. The file comparison processing unit performs comparison processing on at least two binary files in byte units. The edit processing unit marks different bytes among corresponding bytes of the respective binary files arranged side by side according to a comparison result obtained by the file comparison processing unit, and outputs the marked result. Prior Art Documents Patent Documents

[0003] Patent Document 1 Japanese Unexamined Patent Publication No. Hei 6-12300 Summary of the Invention Problems to be Solved by the Invention

[0004] In the technology of Patent Document 1, comparison processing is performed by sequentially reading one byte at a time from the start of each binary file (binary data). Therefore, when the data lengths of the binary files are different, it is difficult to appropriately perform comparison between these binary files.

[0005] An object of the present invention is to enable appropriate comparison of binary data. Means for Solving the Problems

[0006] A first aspect provides: a data processing system that compares first binary data and second binary data, wherein A search processing unit repeatedly performs a search process that extracts a first sample data having a predetermined data length from the first binary data and searches for a second sample data that matches the first sample data from the second binary data, The system includes an output processing unit that outputs information regarding the difference between the first binary data and the second binary data based on the results of the search performed by the search processing unit, The search processing unit searches for second sample data that matches the first sample data within a predetermined range of the second binary data, including a second position corresponding to a first position which is the position of the first sample data in the first binary data. The difference between a first ratio, which is the ratio of the data length from the beginning of the first binary data to the first position to the total data length of the first binary data, and a second ratio, which is the ratio of the data length from the beginning of the second binary data to the second position to the total data length of the second binary data, is less than or equal to a predetermined difference. It is a data processing system.

[0007] In the first embodiment, If the search processing unit detects a second sample data that matches the first sample data within the predetermined range of the second binary data during the search process, it may perform a forward search process and a backward search process. In the forward search process, the search processing unit may search to determine to what extent the portion of the first binary data that precedes the first sample data and the portion of the second binary data that precedes the second sample data match. In the backward search process, the search processing unit may search to determine to what extent the portion of the first binary data that is after the first sample data matches the portion of the second binary data that is after the second sample data.

[0008] In the first embodiment, The search processing unit may, in at least one of the repeatedly performed search processes, the (i+1)th search process (where i is an integer of 1 or more), extract the first sample data to be used in the (i+1)th search process from a portion of the first binary data that is far from the position of the first sample data used in the i-th search process.

[0009] In the first embodiment, If, in the search process, the search processing unit does not detect a second sample data that matches the first sample data within the predetermined range of the second binary data, it may repeat the search process using a data length shorter than the data length of the first sample data as the predetermined data length.

[0010] In the first embodiment, The predetermined range may widen as the data length of the second binary data increases.

[0011] In the first embodiment, The search processing unit may perform a start-of-the-head search and a end-of-the-head search before starting the search process. In the aforementioned beginning search process, the search processing unit may search to determine to what extent the beginning portion of the first binary data, including the beginning, and the beginning portion of the second binary data, including the beginning, match. In the tail search process, the search processing unit may search to determine to what extent the tail portion of the first binary data, including the end, and the tail portion of the second binary data, including the end, match.

[0012] In the first embodiment, The search processing unit, The first binary data may be divided into n (where n is an integer greater than or equal to 2) first data, and the second binary data may be divided into n second data such that the division ratio of the second binary data is equivalent to the division ratio of the first binary data. The search process may be performed on the k-th (where k is an integer between 1 and n) first data item out of the n first data items and the k-th second data item out of the n second data items.

[0013] The second aspect is, A data processing method for comparing first binary data and second binary data, A search step involves repeatedly performing a search process that extracts a first sample data having a predetermined data length from the first binary data and searches for a second sample data that matches the first sample data from the second binary data, The system includes an output step that outputs information regarding the difference between the first binary data and the second binary data based on the results of the search step, In the search process of the search step, the second sample data that matches the first sample data is searched for within a predetermined range of the second binary data that includes a second position corresponding to a first position which is the position of the first sample data in the first binary data. The difference between a first ratio, which is the ratio of the data length from the beginning of the first binary data to the first position to the total data length of the first binary data, and a second ratio, which is the ratio of the data length from the beginning of the second binary data to the second position to the total data length of the second binary data, is less than or equal to a predetermined difference. This is a data processing method.

[0014] The third aspect is, A data processing program for comparing first binary data and second binary data, which uses one or more computers. A search processing unit repeatedly performs a search process that extracts a first sample data having a predetermined data length from the first binary data and searches for a second sample data that matches the first sample data from the second binary data, the computer is caused to function as an output processing unit that outputs information relating to a difference between the first binary data and the second binary data based on a result of the search performed by the search processing unit, in the search process, the search processing unit searches for the second sample data matching the first sample data within a predetermined range including a second position corresponding to a first position, which is a position of the first sample data in the first binary data, in the second binary data, a difference between a first ratio, which is a ratio that a data length from a head of the first binary data to the first position accounts for with respect to a data length of the first binary data, and a second ratio, which is a ratio that a data length from a head of the second binary data to the second position accounts for with respect to a data length of the second binary data, is equal to or less than a predetermined difference which is a data processing program. Effects of the Invention

[0015] According to the present invention, even when a data length of first binary data and a data length of second binary data are different from each other, comparison between the first binary data and the second binary data can be appropriately performed. Further, by performing the search (the search for second sample data matching the first sample data) within the predetermined range of the second binary data, the search process can be speeded up more than when the search is performed on the entire second binary data.

[0016] Further, according to the present invention, by determining the second position such that the difference between the first ratio and the second ratio is equal to or less than the predetermined difference, the predetermined range (the range in which the search is performed) can be set to a "range in which second sample data matching the first sample data is highly likely to be included" in the second binary data. Thereby, the search process can be effectively speeded up. Brief Description of Drawings

[0017] [Figure 1] FIG. 1 is a block diagram illustrating an example configuration of a data processing apparatus according to an embodiment. [Figure 2]This is a flowchart illustrating the processing flow by a data processing device. [Figure 3] This flowchart illustrates the flow of the first-row search process. [Figure 4] This flowchart illustrates the flow of the tail lookup process. [Figure 5] This flowchart illustrates the flow of a forward search process. [Figure 6] This is a flowchart illustrating the flow of a backward search process. [Figure 7] This is a schematic diagram illustrating the processing flow by a data processing device. [Figure 8] This is a schematic diagram illustrating images showing comparison results. [Figure 9] This is a flowchart illustrating the search process flow of a modified example 1 of the embodiment. [Modes for carrying out the invention]

[0018] The embodiments will be described in detail below with reference to the drawings. Note that the same or corresponding parts in the drawings are denoted by the same reference numerals, and their descriptions will not be repeated.

[0019] (Explanation of terms) First, let's explain the term "binary data" as used in the following explanation. Binary data is electronic data represented in binary (0 or 1) numbers. Binary data is data that can be read by a computer and is used as various types of data such as text data, image data, and audio data.

[0020] In the following explanation, the smallest unit of data length in binary data will be referred to as "unit data length," and a portion of data having a unit data length will be referred to as "unit length data." Unit length data represents the smallest unit of information represented by the binary data. For example, if the binary data is text data, the unit length data represents the smallest unit of "character" in the "text" represented by the binary data. For the sake of explanation, the following example will use the case where the unit data length is "1 byte."

[0021] (Embodiment) Figure 1 illustrates the configuration of a data processing device 10 according to an embodiment. The data processing device 10 performs a comparison process, which is a process for comparing first binary data and second binary data. The data processing device 10 is an example of a data processing system that performs a comparison process. Examples of the data processing device 10 include personal computers, smartphones, tablets, and game consoles. The comparison process is broadly divided into a first process, which searches for matching parts in the first binary data and the second binary data, and a second process, which outputs the result of the comparison between the first binary data and the second binary data based on the result of the first process.

[0022] In this example, the data processing device 10 comprises an input unit 11, an output unit 12, a storage unit 13, and a control unit 14. The input unit 11, the output unit 12, and the storage unit 13 are electrically connected to the control unit 14 via a bus 15.

[0023] The input unit 11 receives various types of information and data. Examples of the input unit 11 include an operation unit that receives various types of information and data in response to various operations performed by the user, and a receiving unit that receives various types of information and data transmitted from other data processing devices 10. Examples of operation units include a keyboard, mouse, and touchpad.

[0024] The output unit 12 outputs various information and data. Examples of the output unit 12 include a display that shows images representing various information and data, a speaker that outputs sound representing images representing various information and data, and a transmission unit that transmits various information and data to other data processing devices 10.

[0025] The storage unit 13 stores various types of information and data. The storage unit 13 is composed of an HDD, SSD, RAM, ROM, etc. In this example, the storage unit 13 stores information and data for executing various processes. Examples of information and data stored in the storage unit 13 include various types of information and data input by the input unit 11, information and data used in various processes (e.g., setting values ​​such as thresholds), information and data obtained in various processes (e.g., processing results), and information and data for generating various types of information and data output from the output unit 12 (e.g., image data and audio data).

[0026] The control unit 14 controls the operation of the data processing device 10. The control unit 14 performs various processes by sending and receiving various information and data and processing various information and data. In this example, the control unit 14 has a CPU (microcomputer) and memory. The memory stores programs for operating the CPU, etc.

[0027] [Functional configuration of the control unit] The control unit 14 has a search processing unit 101 and an output processing unit 102. Specifically, the control unit 14 functions as the search processing unit 101 and the output processing unit 102 by having its CPU execute various programs. This program is a program for executing various processes in the data processing device 10, and is an example of a data processing program. The processing by the data processing device 10 is an example of a data processing method. The processing by the search processing unit 101 is an example of a search step. The processing by the output processing unit 102 is an example of an output step.

[0028] <Search Processing Section> The search processing unit 101 repeatedly performs the search process. In the search process, the search processing unit 101 extracts a first sample data having a predetermined data length from the first binary data, and searches for a second sample data that matches the first sample data from the second binary data. The search processing unit 101 also performs forward search, backward search, beginning search, and end search. The first process of the comparison process (the process of searching for matching parts in the first binary data and the second binary data) is performed by the search processing unit 101.

[0029] <Output Processing Section> The output processing unit 102 outputs information regarding the difference between the first binary data and the second binary data (hereinafter referred to as "difference information") based on the search results performed by the search processing unit 101. In this example, the output processing unit 102 outputs (supplies) the comparison result information, including the difference information, to the output unit 12, thereby causing the output unit 12 to output the comparison result information. The second process of the comparison process (the process of outputting the results of the comparison between the first binary data and the second binary data) is performed by the output processing unit 102.

[0030] [Processing by data processing equipment] Next, with reference to Figure 2, the comparison process performed by the data processing device 10 will be explained. When a new set of first binary data and second binary data is to be processed by the data processing device 10, the following processes are performed. Note that the processes in the steps shown in Figure 2, excluding step S80, correspond to the first process of the comparison process, and the process in step S80 corresponds to the second process of the comparison process. The processes in steps S41 to S46 correspond to the search process.

[0031] <Step S10> The search processing unit 101 performs a beginning search process. In the beginning search process, the search processing unit 101 searches to determine how far the beginning portion of the first binary data, including the beginning, and the beginning portion of the second binary data, including the beginning, match.

[0032] <Step S20> Next, the search processing unit 101 determines whether or not there are unexplored portions remaining in the first binary data. If there are unexplored portions remaining in the first binary data, the process in step S30 is performed; otherwise, the process in step S80 is performed.

[0033] Furthermore, the "unsearched portion" in the first binary data refers to the portion of the first binary data that was not determined to be a "match" in the first processing (specifically, one of the following: the beginning search, the end search, the search, the forward search, or the backward search), and that was not extracted as the "first sample data" in the search process.

[0034] <Step S30> The search processing unit 101 performs a tail search. In the tail search, the search processing unit 101 searches to determine how much the tail portion of the first binary data, including the end, matches the tail portion of the second binary data, including the end.

[0035] <Step S40> Next, the search processing unit 101 determines whether or not there are unexplored portions remaining in the first binary data (specifically, unexplored portions from which the first sample data can be extracted). If there are unexplored portions remaining in the first binary data, the process in step S51 is performed; otherwise, the process in step S80 is performed.

[0036] <Step S51> The search processing unit 101 extracts a first sample data having a predetermined data length from the first binary data. Specifically, the search processing unit 101 extracts the first sample data from the unsearched portion of the first binary data. The predetermined data length is a data length that allows for determination of whether or not it is a match, and is at least twice the unit data length (for example, 32 bytes).

[0037] The process in step S51 (extraction of the first sample data) is repeated until no unexplored portions remain in the first binary data. The details of the repeated process in step S51 are as follows. Hereinafter, the position of the first sample data extracted in the process in step S51 (the position of the first sample data in the first binary data) will be referred to as the "first position". The ratio of the data length from the beginning of the first binary data to the first position (specifically, the central position of the first sample data) to the total data length of the first binary data will be referred to as the "first ratio".

[0038] In this example, the search processing unit 101 extracts the first sample data to be used in the (i+1)th search process from a portion of the first binary data that is far from the position of the first sample data used in the i-th search process, in at least one of the repeatedly performed search processes (specifically, the process in step S51).

[0039] For example, the first percentage in the first search process falls within the percentage range that includes "0.5". The percentage range that includes "0.5" is the range of percentages that can be considered to be "0.5", for example, the range from "0.45" to "0.55" (a range within ±5% of the total length of the binary data centered on the reference value). In other words, the first position in the first search process falls within the central range that includes the central position of the first binary data (the range of positions that can be considered to be the central position).

[0040] Then, the first percentage in the second search process falls within the percentage range that includes "0.25" (the range of percentages that can be considered to be "0.25"), and the first percentage in the third search process falls within the percentage range that includes "0.75" (the range of percentages that can be considered to be "0.75"). In other words, the first position in the second search process falls within the range that includes the first central position, which is the central position in the part that is ahead of the central position of the first binary data (the range of positions that can be considered to be the first central position), and the first position in the third search process falls within the range that includes the second central position, which is the central position in the part that is behind the central position of the first binary data (the range of positions that can be considered to be the second central position).

[0041] <Step S52> The search processing unit 101 extracts a second sample data having a predetermined data length from the second binary data. Specifically, the search processing unit 101 extracts the second sample data from within a predetermined range of the second binary data that includes the second position corresponding to the first position, which is the position of the first sample data in the first binary data. In this example, the predetermined range widens as the data length (total length) of the second binary data increases.

[0042] Specifically, the search processing unit 101 extracts the second sample data from the unsearched portion within a predetermined range of the second binary data. The "unsearched portion" within the predetermined range of the second binary data is the portion included within the predetermined range of the second binary data that has not been determined to be a "match" and has not been extracted as "second sample data" in the search performed within the predetermined range.

[0043] Furthermore, the difference between the "first ratio," which is the ratio of the data length from the beginning of the first binary data to the first position (the position of the first sample data) to the total data length of the first binary data, and the "second ratio," which is the ratio of the data length from the beginning of the second binary data to the second position (the position of the second sample data) to the total data length of the second binary data, must be less than or equal to a predetermined difference. The predetermined difference is the difference that allows the first ratio and the second ratio to be considered equivalent, for example, "0.05 (within a range of ±5%)."

[0044] Furthermore, the process in step S52 (extraction of second sample data within a predetermined range) is repeated until second sample data matching the first sample data is detected within the predetermined range, or until no unexplored portions remain within the predetermined range. The details of the repeated process in step S52 (extraction position of the second sample data) are as follows.

[0045] For example, the extraction position of the second sample data in the first step S52 is the second position. In the second and subsequent steps S52, the extraction position of the second sample data is determined as follows.

[0046] First, until the extraction position of the second sample data (specifically, the beginning of the second sample data) reaches the beginning of the portion of the second binary data within a predetermined range, the extraction position of the second sample data in the (i+1)th step S52 (where i is an integer greater than or equal to 1) will be shifted to the beginning by a unit data length from the extraction position of the second sample data in the ith step S52.

[0047] In the (i+1)th step S52, when the extraction position of the second sample data reaches the beginning of the predetermined range portion of the second binary data, the extraction position of the second sample data in the (i+2)th step S52 becomes a position shifted to the end by a unit data length from the second position. Thereafter, until the extraction position of the second sample data (specifically the end of the second sample data) reaches the end of the predetermined range portion of the second binary data, the extraction position of the second sample data in the (i+1)th step S52 (where i is an integer greater than or equal to 1) becomes a position shifted to the end by a unit data length from the extraction position of the second sample data in the ith step S52.

[0048] <Step S53> Next, the search processing unit 101 determines whether the first sample data extracted in step S51 matches the second sample data extracted in step S52. If the first sample data and the second sample data match, the process in step S54 is performed; otherwise, the process in step S55 is performed.

[0049] <Step S54> If the first sample data and the second sample data match, the search processing unit 101 determines that the portion of the first binary data corresponding to "the first sample data extracted in step S51" and the portion of the second binary data corresponding to "the second sample data extracted in step S52" are "matching points". The search processing unit 101 then stores the above determination result in the storage unit 13. Next, the processing of step S60 is performed.

[0050] <Step S55> On the other hand, if the first sample data and the second sample data do not match, the search processing unit 101 determines whether or not there is an unexplored portion remaining within a predetermined range of the second binary data. If there is an unexplored portion remaining, the process in step S52 is performed; otherwise, the process in step S40 is performed.

[0051] <Step S60> If a "match" is determined in step S54 (i.e., a second sample data that matches the first sample data is detected), the search processing unit 101 performs a forward search. In the forward search, the search processing unit 101 searches to determine how far the portion of the first binary data that is ahead of the first sample data (the portion of the first sample data that was determined to be a match) and the portion of the second binary data that is ahead of the second sample data (the portion of the second sample data that was determined to be a match) match.

[0052] <Step S70> Next, the search processing unit 101 performs a backward search. In the backward search, the search processing unit 101 searches to determine how far the portion of the first binary data that is attached to the end of the first sample data (the portion of the first sample data that is determined to be a match) and the portion of the second binary data that is attached to the end of the second sample data (the portion of the second sample data that is determined to be a match) match. Next, the process of step S40 is performed.

[0053] <Step S80> If there are no unexplored portions remaining in the first binary data in step S20 or step S40, the output processing unit 102 generates comparison result information based on the "judgment result regarding matching portions" stored in the storage unit 13, and outputs the generated comparison result information to the output unit 12. In this example, the output processing unit 102 generates an image showing the comparison result information and displays the generated image on a display, which is an example of the output unit 12.

[0054] Specifically, the output processing unit 102 determines the "matching locations" in the first binary data and the second binary data based on the "determination results regarding matching locations" stored in the storage unit 13.

[0055] Furthermore, if the first binary data contains a difference (a portion that is not a match) between the i-th match and the (i+1)-th match, and the second binary data also contains a difference between the i-th match and the (i+1)-th match, the output processing unit 102 determines that "the difference between the i-th match and the (i+1)-th match in the first binary data has been replaced by the difference between the i-th match and the (i+1)-th match in the second binary data."

[0056] Furthermore, if the first binary data does not contain any difference between the i-th match and the (i+1)-th match, but the second binary data does contain a difference between the i-th match and the (i+1)-th match, the output processing unit 102 determines that "a difference located between the i-th match and the (i+1)-th match of the second binary data has been added between the i-th match and the (i+1)-th match of the first binary data."

[0057] Furthermore, if the first binary data contains a difference between the i-th match and the (i+1)-th match, but the second binary data does not contain a difference between the i-th match and the (i+1)-th match, the output processing unit 102 determines that "the difference located between the i-th match and the (i+1)-th match in the first binary data has been removed from the area between the i-th match and the (i+1)-th match in the second binary data."

[0058] Then, the output processing unit 102 generates comparison result information based on the above decision.

[0059] [First-line search process] Next, the top-of-the-string search process will be explained with reference to Figure 3. In the top-of-the-string search process, the target of processing is "the j-th unit-length data from the beginning of the first binary data (or second binary data)". Note that "j" is an integer greater than or equal to 1, and the initial value of "j" is "1".

[0060] <Step S11> The search processing unit 101 extracts the "j-th unit length data from the beginning of the first binary data" which is the target of processing from the first binary data.

[0061] <Step S12> Furthermore, the search processing unit 101 extracts the "j-th unit length data from the beginning of the second binary data," which is the target of processing, from the second binary data.

[0062] <Step S13> Next, the search processing unit 101 determines whether the j-th unit length data extracted in step S11 matches the j-th unit length data extracted in step S12. If these unit length data match, the process in step S14 is performed; otherwise, the process in step S20 is performed.

[0063] <Step S14> If the unit length data matches, the search processing unit 101 determines that the portion of the first binary data corresponding to "the j-th unit length data extracted in step S11" and the portion of the second binary data corresponding to "the j-th unit length data extracted in step S12" are "matching points". The search processing unit 101 then stores the above determination result in the storage unit 13.

[0064] <Step S15> Next, the search processing unit 101 determines that the (j+1)th unit length data from the beginning of the first binary data, which is located towards the end of the (j)th unit length data from the beginning of the first binary data, will be the target of the next processing. Similarly, the search processing unit 101 determines that the (j+1)th unit length data from the beginning of the second binary data, which is located towards the end of the (j)th unit length data from the beginning of the second binary data, will be the target of the next processing. For example, if the first unit length data is determined to be a "match", the second unit length data will be determined to be the target of the next processing. Then, the processing in step S11 is performed.

[0065] If, in step S15, at least one of the "(j+1)th unit length data from the beginning of the first binary data" and the "(j+1)th unit length data from the beginning of the second binary data" cannot be subjected to the next processing (for example, if the (j+1)th unit length data is at the end of the binary data), then the processing in step S20 is performed instead of the processing in step S11.

[0066] [Tail search process] Next, the tail search process will be explained with reference to Figure 4. In the tail search process, the target of processing is "the j-th unit-length data from the end of the first binary data (or second binary data)".

[0067] <Step S31> The search processing unit 101 extracts the "j-th unit length data from the end of the first binary data" which is the target of processing from the first binary data.

[0068] <Step S32> Furthermore, the search processing unit 101 extracts the "j-th unit-length data from the end of the second binary data" which is the target of processing from the second binary data.

[0069] <Step S33> Next, the search processing unit 101 determines whether the j-th unit length data extracted in step S31 matches the j-th unit length data extracted in step S32. If these unit length data match, the process in step S34 is performed; otherwise, the process in step S40 is performed.

[0070] <Step S34> If the unit length data matches, the search processing unit 101 determines that the portion of the first binary data corresponding to "the j-th unit length data extracted in step S31" and the portion of the second binary data corresponding to "the j-th unit length data extracted in step S32" are a "matching section". The search processing unit 101 then stores the above determination result in the storage unit 13.

[0071] <Step S35> Next, the search processing unit 101 determines that the (j+1)th unit length data from the end of the first binary data, which is located near the beginning of the (j)th unit length data from the end of the first binary data, will be the target of the next processing. Similarly, the search processing unit 101 determines that the (j+1)th unit length data from the end of the second binary data, which is located near the beginning of the (j)th unit length data from the end of the second binary data, will be the target of the next processing. Then, the processing in step S31 is performed.

[0072] If, in step S35, at least one of the "(j+1th unit length data from the end of the first binary data)" and the "(jth unit length data from the end of the second binary data)" cannot be subjected to the next processing, the processing in step S40 is performed instead of the processing in step S31.

[0073] [Forward search process] Next, the forward search process will be explained with reference to Figure 5. In the following, "the j-th unit length data from the end of the portion of the first binary data (or second binary data) that is ahead of the first sample data (or second sample data)" will be referred to as "the j-th unit length data at the beginning of the first sample data (or second sample data)". In the forward search process, "the j-th unit length data at the beginning of the first sample data (or second sample data)" is the target of processing.

[0074] <Step S61> The search processing unit 101 determines whether the j-th unit length data at the beginning of the first sample data, which is the target of processing in the first binary data, is an unexplored portion. If the j-th unit length data at the beginning of the first sample data is an unexplored portion, the process in step S62 is performed; otherwise, the process in step S70 is performed.

[0075] <Step S62> Furthermore, the search processing unit 101 determines whether the "j-th unit length data at the beginning of the second sample data" that is the target of processing in the second binary data is an unsearched portion. Note that the "unsearched portion" in the second binary data is the portion of the second binary data that has not been determined to be a "match". If the j-th unit length data at the beginning of the second sample data is an unsearched portion, the processing in step S63 is performed; otherwise, the processing in step S70 is performed.

[0076] <Step S63> The search processing unit 101 extracts the "j-th unit length data from the beginning of the first sample data" which is the target of processing, from the first binary data.

[0077] <Step S64> Furthermore, the search processing unit 101 extracts the "j-th unit length data from the beginning of the second sample data," which is the target of processing, from the second binary data.

[0078] <Step S65> Next, the search processing unit 101 determines whether the j-th unit length data extracted in step S63 matches the j-th unit length data extracted in step S64. If these unit length data match, the process in step S66 is performed; otherwise, the process in step S70 is performed.

[0079] <Step S66> If the unit length data matches, the search processing unit 101 determines that the portion of the first binary data corresponding to "the j-th unit length data extracted in step S63" and the portion of the second binary data corresponding to "the j-th unit length data extracted in step S64" are "matching points". The search processing unit 101 then stores the above determination result in the storage unit 13.

[0080] <Step S67> Next, the search processing unit 101 determines that the (j+1)th unit length data at the beginning of the (j)th unit length data at the beginning of the (j)th unit length data at the beginning of the (j)th unit length data at the beginning of the (j)th unit length data at the beginning of the (j)th unit length data at the beginning of the (j)th unit length data at the beginning of the (j)th unit length data at the beginning of the (j)th unit length data at the beginning of the (j)th unit length data at the beginning of the (2)th sample data, among the (2)th binary data, will be the target of the next processing. Then, the processing in step S61 is performed.

[0081] If, in step S67, at least one of the (j+1)th unit length data at the beginning of the first sample data and the (j+1)th unit length data at the beginning of the second sample data cannot be subjected to the next processing, then the processing in step S70 is performed instead of the processing in step S61.

[0082] [Backward search process] Next, the backward search process will be explained with reference to Figure 6. In the following, "the j-th unit length data from the beginning of the portion of the first binary data (or second binary data) that is further to the end than the first sample data (or second sample data)" will be referred to as "the j-th unit length data at the end of the first sample data (or second sample data)". In the backward search process, "the j-th unit length data at the end of the first sample data (or second sample data)" is the target of processing.

[0083] <Step S71> The search processing unit 101 determines whether the "j-th unit length data at the end of the first sample data" that is the target of processing in the first binary data is an unexplored portion. If the j-th unit length data at the end of the first sample data is an unexplored portion, the process in step S72 is performed; otherwise, the process in step S20 is performed.

[0084] <Step S72> Furthermore, the search processing unit 101 determines whether the "j-th unit length data at the end of the second sample data," which is the target of processing among the second binary data, is an unexplored portion. If the j-th unit length data at the end of the second sample data is an unexplored portion, the process in step S73 is performed; otherwise, the process in step S20 is performed.

[0085] <Step S73> The search processing unit 101 extracts the "j-th unit length data from the end of the first sample data," which is the target of processing, from the first binary data.

[0086] <Step S74> Furthermore, the search processing unit 101 extracts the "j-th unit length data from the end of the second sample data," which is the target of processing, from the second binary data.

[0087] <Step S75> Next, the search processing unit 101 determines whether the j-th unit length data extracted in step S73 matches the j-th unit length data extracted in step S74. If these unit length data match, the process in step S76 is performed; otherwise, the process in step S20 is performed.

[0088] <Step S76> If the unit length data matches, the search processing unit 101 determines that the portion of the first binary data corresponding to "the j-th unit length data extracted in step S73" and the portion of the second binary data corresponding to "the j-th unit length data extracted in step S74" are a "matching section". The search processing unit 101 then stores the above determination result in the storage unit 13.

[0089] <Step S77> Next, the search processing unit 101 determines that the (j+1)th unit length data at the end of the (j)th unit length data at the end of the (j)th unit length data at the end of the (j)th unit length data at the end of the (j)th unit length data at the end of the (j)th unit length data at the end of the (j)th unit length data at the end of the (j)th unit length data at the end of the (j)th unit length data at the end of the (j)th unit length data at the end of the (j)th unit length data at the end of the (2)th sample data, among the (2)th binary data, will be the target of the next processing. Then, the processing in step S71 is performed.

[0090] If, in step S77, at least one of the "(j+1)th unit length data at the end of the first sample data" and the "(j+1)th unit length data at the end of the second sample data" cannot be subjected to the next processing, then the processing in step S20 is performed instead of the processing in step S71.

[0091] [Specific examples of processing by data processing equipment] Next, with reference to Figure 7, a specific example of processing (comparison processing) by the data processing device 10 will be explained. In the example in Figure 7, unit length data is represented by letters. The predetermined data length is four times the unit data length (equivalent to four letters), and the data length of the predetermined range R2 is fourteen times the unit data length (equivalent to fourteen letters).

[0092] As shown in the upper part of Figure 7, first, a beginning search is performed, and it is determined that the "abcd" portion of the beginning of each of the first and second binary data is a match. Then, a tail search is performed, and it is determined that the "uvwxy" portion of the end of each of the first and second binary data is a match.

[0093] Next, the first search process is performed. This extracts the "klmn" portion of the first binary data as the first sample data SD1. In addition, a predetermined range R2 is determined in the second binary data, centered on the position of "ijkl" (second position), which corresponds to the first position, the position of the "klmn" portion extracted as the first sample data SD1. Within this predetermined range R2, the first extraction of the second sample data SD2 is performed. In this example, the "ijkl" portion (the portion at the second position) within the predetermined range R2 of the second binary data is extracted as the second sample data SD2.

[0094] The portion "ijkl" in the first second sample data SD2 does not match the portion "klmn" in the first sample data SD1, so the second second sample data is extracted within a predetermined range R2 of the second binary data. Subsequently, the extraction of the second sample data SD2 is repeated within the predetermined range R2 of the second binary data until a second sample data SD2 that matches the first sample data SD1 is detected.

[0095] For example, although not shown in Figure 7, as the second sample data SD2 for the second time, the "hijk" portion is extracted from the portion of the second binary data that is shifted forward by one unit data length (one alphabet character) from the position of the "ijkl" portion (the portion extracted as the second sample data SD2 for the first time) within the predetermined range R2 of the second binary data.

[0096] Next, as shown in the center of Figure 7, when a second sample data SD2 that matches the first sample data SD1 is detected (it is determined that the "klmn" portion of the first sample data SD1 and the "klmn" portion of the second sample data SD2 are matching), the first search process (a search process that identifies the "klmn" portion of the first binary data as the first sample data SD1) is completed.

[0097] Next, as shown in the lower part of Figure 7, a forward search is performed, and in each of the first and second binary data, the "efghij" portion, which is the part preceding the "klmn" portion (the matching portion), is determined to be a match. Then, a backward search is performed, and in each of the first and second binary data, the "opqrs" portion, which is the part following the "klmn" portion (the matching portion), is determined to be a match. Finally, the portion "efghijklmnopqrs", which is the sum of the "match detected by the search process", the "match detected by the forward search process", and the "match detected by the backward search process", is treated as a single match.

[0098] In the example shown in Figure 7, after the forward and backward search processes are performed, there are no unsearched portions remaining in the first binary data (unsearched portions from which the first sample data SD1 can be extracted). Therefore, the search by the search processing unit 101 is completed. The output processing unit 102 then generates comparison result information based on the search results (determination results regarding matching locations) from the search processing unit 101.

[0099] In the example shown in Figure 7, the output processing unit 102 determines that the "abcd" portion of the first binary data and the second binary data is the "first match", the "efghijklmnopqrs" portion is the "second match", and the "uvwxy" portion is the "third match".

[0100] Furthermore, the output processing unit 102 determines that the "t" portion located between the second and third matching points in the first binary data has been replaced with the "Y" portion located between the second and third matching points in the second binary data. Additionally, the output processing unit 102 determines that the "XXXXX" portion of the second binary data has been added between the first and second matching points in the first binary data (between the "abcd" portion and the "efghij" portion).

[0101] [Comparison result information] Next, the comparison result information will be explained with reference to Figure 8. In this example, image P10, which shows the comparison result information, is displayed on a display that is an example of the output unit 12. Note that, for the sake of explanation, in the example of Figure 8, the data lengths of the first binary data and the second binary data are longer than the data lengths in the example of Figure 7.

[0102] As shown in Figure 8, the image P10 showing the comparison result information includes a first binary data display area R11, a second binary data display area R12, a display element explanation area R13, and a comparison result explanation area R14. In this example, the first binary data display area R11 and the second binary data display area R12 are arranged side by side in the left-right direction of the image P10.

[0103] The first binary data is displayed in the first binary data display area R11, and the second binary data is displayed in the second binary data display area R12. In addition, display elements D10 are displayed in both the first binary data display area R11 and the second binary data display area R12, along with the binary data, to identify the differences between the first and second binary data. For example, display element D10 is a frame that encloses the area corresponding to the difference. Display element D10 is an example of difference information.

[0104] In the example in Figure 8, display element D10 includes a first display element D11 and a second display element D12. The first display element D11 is a display element for identifying replacement locations and is a solid line frame surrounding the replacement location. The second display element D12 is a display element for identifying addition or deletion locations and is a dashed line frame surrounding the addition or deletion location.

[0105] The display element description area R13 displays a description of display element D10 (what kind of differences (discrepancies) each display element D10 represents).

[0106] The comparison result explanation area R14 displays an explanation of the comparison results between the first binary data and the second binary data obtained through the comparison process (how the first binary data and the second binary data match and how they differ). The information displayed in the comparison result explanation area R14 is an example of difference information.

[0107] [Trends in binary data and the usefulness of comparative processing] Furthermore, new binary data may be generated based on existing binary data. For example, modifying a part of existing binary data (adding or deleting data sequences) may generate one or more new binary data. In this case, these binary data are similar to each other. The comparison process described above (a process for comparing two binary data) is particularly good at detecting differences (discrepancies) between such similar binary data.

[0108] Furthermore, it is expected that various modifications may be made to the binary data. Therefore, it can be generally assumed that such modifications are applied evenly (without bias) to the entire binary data. In other words, it can be assumed that the modifications made to one of the two binary data being compared tend to be evenly distributed across the entire binary data.

[0109] Furthermore, if we designate one of the two binary data sets to be compared as the "first binary data" and the other as the "second binary data," and define a portion of the first binary data as the "first part," and the portion of the second binary data that matches the first part as the "second part," then it can be considered that the position of the second part in the second binary data tends to be similar to the position of the first part in the first binary data. In other words, it can be considered that the ratio of the data length from the beginning of the second binary data to the position of the second part relative to the total data length of the second binary data tends to be equivalent to the ratio of the data length from the beginning of the first binary data to the position of the first part relative to the total data length of the first binary data.

[0110] Therefore, in the data processing device 10 of the embodiment, by determining the second position such that the difference between the first ratio and the second ratio is less than or equal to a predetermined difference, the predetermined range (the range in which the search is performed) can be set to "a range in the second binary data that is highly likely to contain second sample data that matches the first sample data". The first ratio is the ratio of the data length from the beginning of the first binary data to the first position to the total data length of the first binary data, and the second ratio is the ratio of the data length from the beginning of the second binary data to the second position to the total data length of the second binary data. The first position is the position of the first sample data in the first binary data, and the second position is the position of the second sample data in the second binary data.

[0111] Furthermore, the beginning (including the beginning) and end (including the end) of binary data often contain information for identifying the binary data (for example, information about its type and specifications). Therefore, the beginning and end of binary data can be considered to be parts that are relatively less likely to be modified as described above. Consequently, it can be considered that two binary data to be compared tend to have relatively high similarity in their respective beginnings (including the beginning) and relatively high similarity in their respective ends (including the end).

[0112] Therefore, in the data processing device 10 of this embodiment, the "starting portion of each of the first binary data and the second binary data" that is the target of the start-of-the-line search process can be considered to be a portion that has a relatively high probability of corresponding to a matching location. Similarly, the "ending portion of each of the first binary data and the second binary data" that is the target of the end-of-the-line search process can be considered to be a portion that has a relatively high probability of corresponding to a matching location.

[0113] [Summary of Embodiments] In summary, the data processing system (data processing device 10) of this embodiment is a data processing system that compares first binary data and second binary data, and comprises a search processing unit 101 and an output processing unit 102.

[0114] The search processing unit 101 extracts a first sample data having a predetermined data length from the first binary data and repeatedly performs a search process to find a second sample data that matches the first sample data from the second binary data. The output processing unit 102 outputs information regarding the difference between the first binary data and the second binary data based on the search results by the search processing unit. In the search process, the search processing unit 101 searches for a second sample data that matches the first sample data within a predetermined range of the second binary data that includes a second position corresponding to a first position which is the position of the first sample data in the first binary data.

[0115] The difference between the first ratio, which is the proportion of the data length of the first binary data from the beginning to the first position relative to the total data length of the first binary data, and the second ratio, which is the proportion of the data length of the second binary data from the beginning to the second position relative to the total data length of the second binary data, is less than or equal to a predetermined difference.

[0116] The data processing method of this embodiment is a data processing method that compares first binary data and second binary data, and comprises a search step and an output step. In the search step, the above search process is repeated. In the output step, information regarding the difference between the first binary data and the second binary data is output based on the search results from the search step.

[0117] The data processing program in this embodiment is a data processing program for comparing first binary data and second binary data, and one or more computers (control units 14) are made to function as the search processing unit 101 and the output processing unit 102.

[0118] [Effects of the Embodiment] As described above, in this embodiment, the search processing unit 101 searches for second sample data that matches the first sample data within a predetermined range (a predetermined range including the second position corresponding to the first position which is the position of the first sample data in the first binary data) in the second binary data during the search process. The difference between the first ratio, which is the ratio of the data length from the beginning of the first binary data to the first position to the total data length of the first binary data, and the second ratio, which is the ratio of the data length from the beginning of the second binary data to the second position to the total data length of the second binary data, is less than or equal to a predetermined difference.

[0119] In the above configuration, even if the data lengths of the first binary data and the second binary data are different, the first and second binary data can be compared appropriately. Furthermore, by performing a search within a predetermined range of the second binary data (searching for second sample data that matches the first sample data), the search process can be made faster than if the entire second binary data were searched.

[0120] Furthermore, in the above configuration, by determining the second position such that the difference between the first and second proportions is less than or equal to a predetermined difference, the predetermined range (the range in which the search is performed) can be set to "the range within the second binary data that is highly likely to contain second sample data that matches the first sample data." This effectively speeds up the search process.

[0121] In this embodiment, when the search processing unit 101 detects a second sample data that matches the first sample data within a predetermined range of the second binary data during the search process, it performs a forward search and a backward search. In the forward search, the search processing unit 101 searches to determine how far the portion of the first binary data that is ahead of the first sample data matches the portion of the second binary data that is ahead of the second sample data. In the backward search, the search processing unit 101 searches to determine how far the portion of the first binary data that is ahead of the first sample data matches the portion of the second binary data that is ahead of the second sample data.

[0122] In the above configuration, the portion of the first binary data preceding the first sample data (the first sample data determined to be a match) and the portion of the second binary data preceding the second sample data (the second sample data determined to be a match) can be considered to be portions with a relatively high probability of being matches. Therefore, by performing a forward search, it is possible to search for matches in portions that have a relatively high probability of being matches, thereby making the search for matches more effective.

[0123] Similarly, the portion of the first binary data that is closer to the end of the first sample data (the first sample data that was determined to be a match) and the portion of the second binary data that is closer to the end of the second sample data (the second sample data that was determined to be a match) can be considered to be portions that have a relatively high probability of being a match. Therefore, by performing a backward search, it is possible to search for matches in portions that have a relatively high probability of being a match, thereby making the search for matches more effective.

[0124] In addition, in the embodiment, the search processing unit 101 extracts the first sample data to be used in the (i+1)th search process from a portion of the first binary data that is far from the position of the first sample data used in the i-th search process, in at least one of the repeatedly performed search processes, which is the (i)+1th search process.

[0125] In the above configuration, it can be assumed that the modifications in the second binary data relative to the first binary data tend to be evenly distributed throughout the second binary data (matching and modified sections alternate consecutively). Therefore, the search process can be performed more effectively than when the search process is performed sequentially from the beginning of the first binary data (for example, when the portion adjacent to the position of the first sample data used in the i-th search process is extracted as the first sample data used in the (i+1)th search process).

[0126] Furthermore, in this embodiment, the predetermined range widens as the data length of the second binary data increases.

[0127] In the above configuration, it can be assumed that as the data length (total length) of the second binary data increases, the interval between matching points in the second binary data (the interval from one part that matches a part of the first binary data to another part that matches a different part of the first binary data) tends to increase. Therefore, by determining the width of the predetermined range according to the data length of the second binary data, the predetermined range (the range in which second sample data matching the first sample data is searched) can be appropriately set, so that the predetermined range (the range in which second sample data matching the first sample data is searched) widens as the data length of the second binary data increases.

[0128] Furthermore, in this embodiment, the search processing unit 101 performs a beginning search process and a end search process before starting the search process. In the beginning search process, the search processing unit 101 searches to determine how far the beginning portion of the first binary data, including the beginning, and the beginning portion of the second binary data, including the beginning, match. In the end search process, the search processing unit 101 searches to determine how far the end portion of the first binary data, including the end, and the end portion of the second binary data, including the end, match.

[0129] In the above configuration, the beginning portion of each of the first and second binary data can be considered to be a part that has a relatively high probability of being a match. Therefore, by performing a top-down search before starting the search process, the search for matches can be performed on the parts that have a relatively high probability of being matches, thus making the search for matches more effective.

[0130] Similarly, the end portions of both the first and second binary data can be considered to be relatively likely to contain matches. Therefore, by performing a tail search before starting the search process, the search for matches can be performed on the portions that are relatively likely to contain matches, thus making the search for matches more effective.

[0131] (Modification of Embodiment 1) The data processing device 10 of the modified embodiment 1 differs from the data processing device 10 of the embodiment in its search process. The other configurations and processes of the data processing device 10 of the modified embodiment 1 are the same as those of the data processing device 10 of the embodiment.

[0132] In the modified embodiment 1, the predetermined data length, which is the data length of the first sample data, is a variable value. In the search process, if the search processing unit 101 does not find a second sample data that matches the first sample data within a predetermined range of the second binary data, it repeats the search process with a predetermined data length shorter than the data length of the first sample data.

[0133] As shown in Figure 9, in the search process of the modified embodiment 1, in addition to the processes of steps S51 to S55 shown in Figure 2, steps S56 and S57 are also performed.

[0134] <Step S56> If, in step S55, there are no unexplored portions remaining within the predetermined range of the second binary data, the search processing unit 101 determines whether or not the predetermined data length, which is the data length of the first sample data, can be shortened. If the predetermined data length can be shortened, the process in step S57 is performed; otherwise, the process in step S40 is performed.

[0135] For example, the search processing unit 101 selects one of several pre-prepared data lengths as the predetermined data length. The process in step S56 is repeated until it is determined that the predetermined data length cannot be shortened. The search processing unit 101 selects one of several data lengths as the predetermined data length each time the process in step S56 is repeated, so that the predetermined data length gradually decreases.

[0136] <Step S57> If the predetermined data length can be shortened, the search processing unit 101 shortens the predetermined data length. Next, the process of step S51 is performed. For example, if the predetermined data length is shortened in the first search process, the first search process is performed again based on the shortened predetermined data length.

[0137] [Effects of Modified Example 1 of the Embodiment] As described above, in the modified embodiment 1, if a second sample data matching the first sample data is not detected during the search process, the data length of the first sample data can be shortened and the search process can be repeated. This allows the search process to be repeated with improved accuracy, thereby improving the accuracy of the comparison between the first binary data and the second binary data.

[0138] (Modified embodiment 2) The data processing device 10 of the modified embodiment 2 differs from the data processing device 10 of the embodiment in the procedure for comparison processing. The other configurations and processes of the data processing device 10 of the modified embodiment 2 are the same as those of the data processing device 10 of the embodiment.

[0139] In the modified embodiment 2, the search processing unit 101 divides the first binary data into n first data (where n is an integer of 2 or more), and divides the second binary data into n second data such that the division ratio of the second binary data is equivalent to the division ratio of the first binary data. For example, the search processing unit 101 divides the first binary data into n first data such that the data lengths of each of the n first data are equal. Similarly, the search processing unit 101 divides the second binary data into n second data such that the data lengths of each of the n second data are equal.

[0140] In the modified embodiment 2, the search processing unit 101 performs a first process on the kth-th (where k is an integer between 1 and n) first data item out of n first data items and the kth-th second data item out of n second data items. The first process includes a beginning search process, a tail search process, a search process, a forward search process, and a backward search process. The details of the first process are the same as those of the first process in the embodiment. The search processing unit 101 also performs n first processes (first processes for the first data items and second data items) in parallel.

[0141] Furthermore, in the modified embodiment 2, the output processing unit 102 outputs comparison result information including difference information based on the results obtained from the n first processes (the results of the search by the search processing unit 101 on the first data and the second data). For example, the output processing unit 102 generates the search results by the search processing unit 101 on the first binary data and the second binary data by integrating the results obtained from the n first processes, and generates and outputs comparison result information based on the generated results.

[0142] [Effects of Modified Example 2 of the Embodiment] As described above, in the modified embodiment 2, the data length of each of the n first data is shorter than the data length of the first binary data. Also, the data length of each of the n second data is shorter than the data length of the second binary data. Therefore, the processing load in the first processing (first processing including the search process) for the first and second binary data can be reduced compared to the processing load in the first processing for the first and second binary data. Furthermore, since the n first processing (first processing for the first and second data) can be performed in parallel, the time required for the comparison process to compare the first binary data and the second binary data can be shortened.

[0143] (Examples of application) The comparison processing performed by the data processing device 10 (specifically, the difference information output by the comparison processing) is useful for the following purposes.

[0144] For example, in a situation where an attempt is made to update "old version data" already stored in a data processing terminal (not shown) to "new version data" prepared in a data processing device 10, which is a server, one possible use is to compare the old version data with the new version data, obtain the difference information, and then distribute (download) it from the data processing device 10 to the data processing terminal.

[0145] In the applications described above, the data processing terminal can restore the "new version of the data" based on the "old version of the data" already stored in the data processing terminal and the "difference information" distributed from the data processing device 10, which is the server.

[0146] In this way, instead of distributing the new version of the data as is, by distributing differential information regarding the differences between the old version of the data and the new version of the data, it is possible to reduce the amount of communication (the amount of communication required for sending and receiving data) between the data processing device 10, which is the server, and the data processing terminal.

[0147] Furthermore, in a situation where the data processing device 10 attempts to store "new version data" in the storage unit 13 without erasing "old version data" already stored in the storage unit 13, one possible use is to store the difference information obtained by performing a comparison process between the old version data and the new version data in the storage unit 13.

[0148] In the applications described above, the data processing device 10 can restore the "new version of the data" based on the "old version of the data" and "difference information" stored in the storage unit 13.

[0149] In this way, instead of storing the new version of the data directly in the storage unit 13, by storing differential information regarding the differences between the old version of the data and the new version of the data in the storage unit 13, the amount of data required to store the "new version of the data" (the amount of data stored in the storage unit 13) can be reduced.

[0150] (Other embodiments) In the above explanation, the following configuration or processing may be used.

[0151] The unit data length is not limited to 1 byte, but may be any other length. The unit data length may be arbitrarily set by the user. Unit data with a unit data length is not limited to data that represents the smallest unit of information among the information represented by binary data (minimum unit data). For example, unit data may be a data sequence containing two or more consecutive minimum unit data.

[0152] The predetermined data length is not limited to 32 bytes, but may be any other length. The predetermined data length may also be arbitrarily set by the user.

[0153] The predetermined data length (width) range defined for the second binary data is not limited to 14 bytes, but may be any other data length. The predetermined data length range may be arbitrarily set by the user.

[0154] The order of the various processes in the comparison process is not limited to the order shown in Figures 2-6 and 9, and may be in other orders. For example, the tail search process (step S30) may be performed before the head search process (step S10). The back search process (step S70) may be performed before the forward search process (step S60). In the head search process shown in Figure 3, steps S11 (processing for the first binary data) and S12 (processing for the second binary data) may be swapped. The same applies to the tail search process, forward search process, and back search process.

[0155] In the comparison process, at least one of the beginning search process (step S10) and the end search process (step S30) may be omitted. Similarly, at least one of the forward search process (step S60) and the backward search process (step S70) may be omitted.

[0156] Display element D10 is not limited to a solid or dashed frame, but may be any other display element. For example, display element D10 may be a portion of the binary data displayed in image P10 that is colored with a predetermined color different from the color assigned to the matching portion (the portion corresponding to the difference). In other words, display element D10 may be a part of the binary data displayed in image P10 (the portion that is colored with a predetermined color).

[0157] The storage unit 13 may consist of a single storage device or multiple storage devices. The multiple storage devices may be housed together in one device (enclosure) or each may be housed in a different device (enclosure).

[0158] The control unit 14 may consist of a single processor and memory, or it may consist of multiple processors and memories. The multiple processors and memories may be housed together in one device (enclosure), or they may be housed in separate devices (enclosures). In other words, the above program (data processing program) may be executed by a single computer, or by multiple cooperating computers.

[0159] The effects and benefits of the present invention will also be achieved when these other embodiments are adopted. Furthermore, it is possible to combine these embodiments with other embodiments, and with other embodiments as appropriate. The above embodiments are essentially preferred examples and are not intended to limit the scope of the present invention, its applications, or its uses. [Explanation of symbols]

[0160] 10. Data Processing Devices (Data Processing Systems) 11 Input section 12 Output section 13 Storage section 14 Control Unit 15 bus 101 Search Processing Unit 102 Output Processing Unit

Claims

1. A data processing system that compares first binary data and second binary data, A search processing unit repeatedly performs a search process that extracts a first sample data having a predetermined data length from the first binary data and searches for a second sample data that matches the first sample data from the second binary data, The system includes an output processing unit that outputs information regarding the difference between the first binary data and the second binary data based on the results of the search by the search processing unit, The search processing unit searches for second sample data that matches the first sample data within a predetermined range of the second binary data, including a second position corresponding to a first position which is the position of the first sample data in the first binary data. The difference between a first ratio, which is the ratio of the data length from the beginning of the first binary data to the first position to the total data length of the first binary data, and a second ratio, which is the ratio of the data length from the beginning of the second binary data to the second position to the total data length of the second binary data, is less than or equal to a predetermined difference. Data processing system.

2. In the data processing system of claim 1, When the search processing unit detects a second sample data that matches the first sample data within the predetermined range of the second binary data in the search process, it performs a forward search process and a backward search process. In the forward search process, the search processing unit searches to determine to what extent the portion of the first binary data that precedes the first sample data and the portion of the second binary data that precedes the second sample data match. In the backward search process, the search processing unit searches to determine to what extent the portion of the first binary data that is after the first sample data matches the portion of the second binary data that is after the second sample data. Data processing system.

3. In the data processing system of claim 2, The search processing unit, in at least one of the repeatedly performed search processes, the (i+1)th search process (where i is an integer of 1 or more), extracts the first sample data to be used in the (i+1)th search process from a portion of the first binary data that is far from the position of the first sample data used in the ith search process. Data processing system.

4. In the data processing system of claim 1, If, in the search process, no second sample data matching the first sample data is detected within the predetermined range of the second binary data, the search processing unit repeats the search process using a data length shorter than the data length of the first sample data as the predetermined data length. Data processing system.

5. In the data processing system of claim 1, The longer the data length of the second binary data, the wider the predetermined range becomes. Data processing system.

6. In the data processing system of claim 1, The search processing unit performs a start-of-the-head search and a end-of-the-head search before starting the search process. In the aforementioned beginning search process, the search processing unit searches to determine to what extent the beginning portion of the first binary data, including the beginning, and the beginning portion of the second binary data, including the beginning, match. In the tail search process, the search processing unit searches to determine to what extent the tail portion of the first binary data, including the end, and the tail portion of the second binary data, including the end, match. Data processing system.

7. In the data processing system of claim 1, The search processing unit, The first binary data is divided into n first data (where n is an integer of 2 or more), and the second binary data is divided into n second data such that the division ratio of the second binary data is equivalent to the division ratio of the first binary data. The search process is performed on the k-th first data (where k is an integer between 1 and n) out of the n first data and the k-th second data out of the n second data. Data processing system.

8. A data processing method for comparing first binary data and second binary data, A search step which involves repeatedly performing a search process to extract a first sample data having a predetermined data length from the first binary data and to search for a second sample data that matches the first sample data from the second binary data, The system includes an output step that outputs information regarding the difference between the first binary data and the second binary data based on the results of the search step, In the search process of the search step, the second sample data that matches the first sample data is searched for within a predetermined range of the second binary data that includes a second position corresponding to a first position which is the position of the first sample data in the first binary data. The difference between a first ratio, which is the ratio of the data length from the beginning of the first binary data to the first position to the total data length of the first binary data, and a second ratio, which is the ratio of the data length from the beginning of the second binary data to the second position to the total data length of the second binary data, is less than or equal to a predetermined difference. Data processing method.

9. A data processing program for comparing first binary data and second binary data, which uses one or more computers. A search processing unit repeatedly performs a search process that extracts a first sample data having a predetermined data length from the first binary data and searches for a second sample data that matches the first sample data from the second binary data, Based on the search results by the search processing unit, it functions as an output processing unit that outputs information regarding the difference between the first binary data and the second binary data. The search processing unit searches for second sample data that matches the first sample data within a predetermined range of the second binary data, including a second position corresponding to a first position which is the position of the first sample data in the first binary data. The difference between a first ratio, which is the ratio of the data length from the beginning of the first binary data to the first position to the total data length of the first binary data, and a second ratio, which is the ratio of the data length from the beginning of the second binary data to the second position to the total data length of the second binary data, is less than or equal to a predetermined difference. Data processing program.

Citation Information

Patent Citations

  • File comparator

    JP1994012300A