Services for transmitting digital data are widespread. Data may be transmitted by using various media in accordance with the intended use thereof. For example, digital data is transmitted by using electromagnetic waves on the Internet and terrestrial digital broadcasting. In addition, a technique for transmitting digital data by using an image (a QR code, an image watermark, etc.) and a technique for transmitting digital data by using acoustic waves (an audio watermark, etc.) have been put into practical use.
A data error may occur in data transmission. Thus, a method for detecting and correcting a data error has been put into practical use. An error detection code and an error correction code is widely known as a method for detecting and correcting a data error.
FIG. 1 is a diagram explaining data transmission that uses an error detection code and an error correction code. In the data transmission that uses an error detection code/error correction code, a transmitter generates a code sequence by adding to original data the error detection code and the error correction code. The error detection code and the error correction code are generated according to the original data. Then, the transmitter sends the code sequence by using, for example, a carrier wave. On the other hand, a receiver decodes a received signal and extracts the code sequence. Then, the receiver executes an error correction on the received code sequence by using the error correction code. Thus, an error that is generated during transmission is corrected. However, the error correction code may not be able to correct all the errors. Therefore, the receiver verifies whether or not data is correctly recovered by using the error detection code. As a result, when no errors are detected in the recovered data, the recovered data is output.
As described, in the data transmission that uses the error detection code/error correction code, an error that is generated during transmission is corrected by using the error correction code. An error that remains after a correction process is detected by using the error detection code. Therefore, output of data that includes an error is prevented in the receiver.
Techniques related to error correction are disclosed, for example, in Japanese Laid-open Patent Publication No. 4-3525 (U.S. Pat. No. 2,664,267) and Japanese Laid-open Patent Publication No. 5-6631.
In the data transmission that uses the error detection code/error correction code, noise tolerance (error detection and error correction capabilities) depends on the data length of the error detection code/error correction code. That is, when the data length of the error detection code/error correction code is increased, the error detection and error correction capabilities are enhanced. However, when the data length of the error detection code/error correction code is long, a long time is taken to verify the recovered data in the receiver. In this case, user convenience may be degraded.
For example, a service is known wherein watermark data is added to an image (including a moving image) and a user is guided to a site that is related to the image. When a user receives this service, the user captures the image by using an electronic camera. Then, the watermark data is reproduced from input data. At that time, when an error detection code/error correction code that is added to the watermark data is long, a long time is taken to execute an error detection process/error correction process, and thus a long time is taken to reproduce the watermark data. In this case, the user may be bothered when the user receives the service.
On the other hand, when the data length of the error detection code/error correction code is shortened in order to reduce a time that is taken for the error detection process/error correction process, it may be decided that data is correctly recovered even though the data is not correctly recovered. That is, even though the recovered data contains an error, the error may not be detected by the error detection code. Hereinafter, such a case will be referred to as a “detection error” (or a decision error).
The detection error is generated, for example, when recovered data and an error detection code respectively include an error, and an error detection code that corresponds to the recovered data matches the received error detection code. That is, the detection error is generated by a “coincidence”. Therefore, when the error detection code is short, a probability that the detection error will be generated may be higher. For example, the probability that the detection error is generated when the data length of the error detection code is n bits is 1/2n.