US 20010016052 A1 Abstract A message in the form of a sequence of bits is encoded into relatively short, non-binary signals. The message (or vector) is divided into two halves. The encoder first determines an encoding of the message into a vector half the length of the eventual encoded vector. The half-length vector forms the first half of the encoded, and is negated to form the second half of the encoded vector. An identical synchronization signal is added to both halves of the encoded vector. The synchronization signal is used to compensate for the possibility that the received vector (or message) is cyclically rotated from the original vector. During decoding, the decoder first obtains the synchronization signal by adding the two halves of the vector together, canceling the encoded message. The synchronization signal is used to find the original cyclical shift of the vector. The decoder obtains the half-length encoded message vector by taking the difference between the two halves of the aligned full-length encoded vector. After decoding the vector into a bit sequence, the encoder re-encodes that bit sequence and compares the resulting vector with the original vector to determine whether the original vector truly encoded a message or was simply a noise signal.
Claims(68) 1. A method of encoding a message in the form of a sequence of bits to form an encoded vector comprising the steps of:
a) expanding the sequence of bits to obtain an expanded sequence of bits; b) modulating the expanded sequence of bits to obtain a modulated vector; c) appending the negation of the modulated vector to the modulated vector to obtain a double-length modulated vector, and d) adding a synchronization signal to both the modulated vector and the negation of the modulated vector of the double-length modulated vector to obtain an encoded vector. 2. The method of claim 1 3. The method of claim 1 4. The method of claim 3 5. The method of claim 4 6. The method of claim 4 7. The method of claim 1 8. The method of claim 7 9. The method of claim 7 10. The method of claim 1 11. The method of claim 10 12. The method of claim 10 13. A method of decoding a received vector of two half vectors into a sequence of bits comprising the steps of:
a) averaging the first half of the received vector with the second half of the received vector to obtain a received synchronization vector; b) determining an amount by which the received synchronization vector must be shifted to obtain the best match with a reference synchronization vector; c) shifting the received vector by the determined amount to obtain an aligned received vector, and d) demodulating the aligned received vector to obtain the sequence of bits. 14. The method of claim 13 15. The method of claim 13 16. The method of claim 13 17. The method of claim 13 18. The method of claim 13 19. The method of claim 18 20. The method of claim 18 21. The method of claim 20 22. The method of claim 20 23. The method of claim 18 24. The method of claim 23 25. The method of claim 24 26. The method of claim 23 27. The method of claim 18 28. A method of determining whether a received vector encodes a message in the form of a sequence of bits comprising the steps of:
a) decoding a received vector to obtain a received message; b) encoding the received message to obtain an encoded vector, and c) comparing the received vector with the encoded vector to determine whether the received vector encodes a message. 29. The method of claim 28 30. The method of claim 28 31. The method of claim 30 32. The method of claim 30 33. The method of claim 30 34. The method of claim 30 35. The method of claim 30 36. The method of claim 35 37. The method of claim 35 38. The method of claim 37 39. The method of claim 37 40. The method of claim 35 41. The method of claim 40 42. The method of claim 41 43. The method of claim 42 44. The method of claim 40 45. The method of claim 35 46. The method of claim 45 47. The method of claim 28 48. The method of claim 47 49. The method of claim 47 50. The method of claim 49 51. The method of claim 50 52. The method of claim 47 53. The method of claim 52 54. The method of claim 47 55. The method of claim 54 56. The method of claim 54 57. The method of claim 28 58. The method of claim 28 59. The method of claim 58 60. The method of claim 28 61. The method of claim 60 62. The method of claim 28 63. The method of claim 62 64. A method of encoding a message in the form of a sequence of bits to form an encoded vector comprising the steps of:
a) modulating the sequence of bits to obtain a modulated vector; b) appending the negation of the modulated vector to the modulated vector to obtain a double-length modulated vector, and c) adding a synchronization signal to both the modulated vector and the negation of the modulated vector of the double-length modulated vector to obtain an encoded vector. 65. The method of claim 64 66. The method of claim 64 67. The method of claim 66 68. The method of claim 66 Description [0001] The present invention relates to digital watermarking of data including image, video and multimedia data. Specifically, the invention relates to a method for encoding messages into relatively short, non-binary signals. It further relates to a method for decoding the messages from signals while simultaneously distinguishing signals that include encoded messages from signals that are simply noise. It is intended for application in storing information into media watermarks, but it also has application in other areas. [0002] U.S. patent application Ser. No. 08/534,894, filed Sep. 28, 1995, entitled “Secure Spread Spectrum Watermarking in Multimedia Data”, and U.S. patent application Ser. No. 08/746,022, filed Nov. 5, 1996, entitled “Digital Watermarking”, which are both incorporated herein by reference, describe methods of hiding and detecting relatively short, possibly non-binary vectors, or “watermarks”, in various kinds of media, such as images, audio sequences, and video clips. Such methods are also described in article by Cox et al. entitled “Secure Spread Spectrum Watermarking for Images, Audio and Video” in Proc. IEEE Int. Conf. On Image Proc, ICIP '96, Lausanne, 1996, vol. III, pp. 243-246. The detection methods described in those inventions and in the Cox et al. article are capable of testing for the presence or absence of only one such hidden vector or watermark at a time. In applications where a given portion of media contains more than one hidden vector, each encoding a different message, the detector must sequentially test for each possible vector and identify the one that is most likely. This is feasible for small numbers of possible messages, but becomes too costly when the number of messages becomes large. [0003] If the data hiding methods referred to above are to be used for messages of more than a small number of bits, such as 4, then methods must be devised for a) encoding bit sequences into vectors suitable for data hiding, b) decoding vectors that are extracted from portions of media, and c) determining whether such extracted vectors represent true hidden data or are merely noise signals. These problems are analogous to those found in transmitting data across noisy channels, where the vectors that are hidden in images are analogous to the modulated signals sent across the channels. Because of this analogy, the terms “vector” and “signal” will be used interchangeably. [0004] Standard methods of transmitting binary messages across possibly noisy channels involve two basic steps at the transmitter. First, the message is encoded with an error-correction code. This increases the number of bits in the message, introducing a pattern of redundancy that can be exploited at the receiver to correct errors resulting from noise in the channel. Second, the expanded message is modulated into a signal with physical characteristics suitable for transmission over the channel, by, for example, modulating the amplitude of a carrier signal (AM), modulating the frequency of a carrier signal (FM), or spread-spectrum coding. While standard error-correction codes are directly suitable for the coding of messages for the watermarking methods referred to above, the standard methods of modulation are not so well suited. Since they encode bits sequentially, they have difficulty encoding more than a small number of bits into the relatively short vectors used in electronic watermarks. For example, consider coding 32 bits into a watermark vector of length 64. Each bit would be coded with only two samples, which is not enough to reliably carry information using AM, FM, or spread-spectrum techniques. [0005] An alternative method of converting the error-correction-encoded bits into a vector suitable for a watermark is to treat each bit as a separate channel in a multi-channel communications system. In such a system, each channel is assigned a separate carrier or spread-spectrum signal, and the modulated messages for all the channels are added together into a single signal. At the receiver, separate correlations are performed for each of the channels, and the correlations are compared against a threshold, to obtain each of the transmitted messages in parallel. [0006] The multi-channel approach can be applied to watermarking by assigning a separate “reference signal” to each bit. These reference signals are designed to have low correlation with one another. The watermark is constructed by either adding or subtracting each reference signal according to whether the corresponding bit is 1 or 0, respectively. Alternatively, the watermark might be constructed by either adding or not adding each reference signal according to whether the corresponding bit is 1 or 0, respectively. Watermarks are decoded by computing their correlations with the reference signals, and comparing the correlations with a pair of thresholds to determine whether the corresponding bits are 1 or 0. Approaches of this type have been applied to watermarking in, for example, the following publications: Swanson, et al., entitled “Robust Data Hiding for Images” in Proc. IEEE Digital Signal Processing Workshop, Loen, Norway, Sept., 1996; Hartung, et al., entitled “Digital Watermarking of Raw and Compressed Video” in Digital Compression Technologies and Systems for Video Communications, Oct. 1996; and Smith, et al., entitled “Modulation and Information Hiding in Images” in Proc. Int. Workshop on Information Hiding, May 1996. [0007] A principal problem with these approaches is that they are limited to only one type of detection region for the possible watermarks. In the prior art, the region of watermark space that is decoded to a given bit sequence results in detection regions that are all planes, intersecting at right angles. Such a rectangular detection region is appropriate for many data transmission systems, but for some systems, other shapes of detection regions are desirable. This is particularly true of watermarking. [0008] The present invention solves the problem of hiding messages of 8 or more bits into media. The invention provides a method of encoding a message, described as a sequence of a given number, B, of bits, into a vector suitable for hiding in media by means of the data hiding methods referred to above. This encoding method is a procedure by which one of 2 [0009] The detection regions (described below) employed in the detection of hidden data can be fairly arbitrary when practicing the present invention. [0010] While the present invention solves the problem of hiding messages in media, it has application in other areas as well. In particular, the invention is suitable for use in any application where rectilinear detection regions are sub-optimal. [0011] A primary object of the invention is a decoder which, after decoding a vector into a bit sequence, re-encodes that bit sequence and compares the resulting vector with the original vector to determine whether the original vector truly encoded a message or was simply a noise signal. A principal advantage of this approach is that it allows any type of comparison test to be performed, resulting in any shape of detection region. By proper design of the comparison test, an optimal detection region can be created. [0012] A second object of the invention is a method of adding and using a synchronization signal to the encoded vector without disturbing the detectability of the encoded message. The synchronization signal is used to compensate for the possibility that the received vector is cyclically rotated from the original. The method splits the vector into two halves. During encoding, the encoder first determines an encoding of the message into a vector half the length of the eventual encoded vector. This half-length vector forms the first half of the encoded vector, and is negated to form the second half of the encoded vector. Then the encoder adds an identical synchronization signal to both halves of the encoded vector. During decoding, the decoder first obtains the synchronization signal by adding the two halves of the vector together, canceling the encoded message. The synchronization signal is used to find the original cyclical shift of the vector. Then the decoder obtains the half-length encoded message vector by taking the difference between the two halves of the aligned, full-length encoded vector. [0013] Further objects of the invention will become more clearly apparent when the following description is read in conjunction with the accompanying drawing. [0014]FIG. 1 shows detection regions for four possible two-bit messages that are created by prior-art methods of detecting signals. [0015]FIG. 2 shows set of detection regions that are more desirable than those of FIG. 1, and that are possible when using the present invention. [0016]FIG. 3 shows an alternative set of detection regions that are more desirable than those of FIG. 1, and that are possible when using the present invention. [0017]FIG. 4 is a data flow diagram for a preferred method of encoding a message into a signal according to the present invention. [0018]FIG. 5 is a data flow diagram for a preferred method of decoding a message according to the present invention. [0019] Referring now to the figures and to FIG. 1 in particular, there is shown detection regions created by separate thresholding of the correlations between separate, orthogonal reference signals and a received signal, as is the case in many prior-art systems. The figure shows a slice of high-dimensional space in which every vector corresponds to a possible received signal. The X- and Y-axes ( [0020] The detection regions of FIG. 1 are suitable for systems that satisfy two criteria: a) the dimensionality of the space is significantly larger than the number of bits in the messages, and b) the distribution of noise vectors that might be added to a watermark vector is rotationally symmetric around that vector. In such a system, the noise vectors are expected to be orthogonal to all the reference signals, so they will not change the correlations between the resulting, received signals and the reference signals. However, in watermarking with relatively short vectors, neither of these criteria applies. As a result, detection regions of different shapes are more suitable. [0021] Consider, first, systems in which the number of bits is close to or equal to the dimensionality of the space (i.e. the number of elements in the watermark vector). In such cases, noise vectors cannot be expected to have low correlations with all the reference signals. This means that a given noise vector will be likely to change the correlation between the received vector and at least one of the reference signals, and the change in correlation will often be enough to cross the threshold for the corresponding bit. A preferable set of detection regions for such a system is shown in FIG. 2. Here, there is a separate detection threshold ( [0022] Next, consider systems in which the distribution of noise vectors is not rotationally symmetric. The distribution of noise vectors applied to watermarks in images and other media can be highly asymmetric, and the best detection region to use for a single watermark is a hyperboloid. It follows that the best set of detection regions to use for a set of different possible watermarks is a set of different hyperboloids. Such detection regions are shown in FIG. 3. [0023] Using the present invention, it is possible to obtain the detection regions shown in FIGS. 2 and 3, as well as other detection regions not specifically described here. [0024]FIG. 4 is a data flow diagram of a preferred method of encoding a message into a signal according to the present invention. A message comprising a given number, B, of bits is provided to the encoder [0025] 1. Convert the P+B+1 bits into a column vector, D, of length P+B+1 in which each element is either a 1 or a −1 according to whether the corresponding bit is a 1 or a 0. [0026] 2. Multiply D by a “modulation matrix”, M, of size L rows by P+B+1 columns, to obtain a length L column vector, V. The exact design of M is generally arbitrary, except that its columns should have low correlation with one another. In the preferred implementation, the columns of M are chosen to have zero correlation with one another. [0027] 3. Create a length 2L column vector, V′, by appending the negation of V onto the end of V. That is
[0028] Finally, a synchronization signal [0029] where S is a column vector of length L that has good auto-correlation properties. [0030] In alternative implementations, either one or both of the steps of appending a constant bit [0031] The output of the encoding process of FIG. 4 is an encoded vector that can be hidden in media using any of a variety of data hiding techniques. When the hidden data is to be detected, the data hiding technique first applies a procedure to extract a vector from the media. Then, rather than applying the test of the data hiding technique for the presence of a given watermark, the extracted vector is passed to the decoder of the present invention, as described below. [0032]FIG. 5 is a data flow diagram of a preferred method of decoding vectors according to the present invention. A vector, R, is provided to decoder [0033] The first step in decoding the input vector is to align R with a synchronization signal [0034] 1. Assuming that R is an encoded message plus some noise, obtain a version of the half-length synchronization signal, S, by dividing R into two halves and averaging the halves together. Thus, we assume that
[0035] cyclically shifted by an unknown amount, where N=[N [0036] cyclically shifted by an unknown amount. [0037] 2. Find the cyclical rotation of S [0038] If R is an encoded message plus some noise, then the result of synchronization, R [0039] The next step is to demodulate the synchronized signal ( [0040] 1. Obtain a version of the half-length modulated P+B+1 bits, V, by dividing R [0041] or [0042] depending on whether R [0043] 2. Multiply V [0044] If R [0045] The P+B+1 demodulated bits are then sent as input to the error-correction decoder [0046] The final step in determining the most likely message encoded in R is to decide whether all the bits should be flipped to correct for the possibility that R [0047] To decide whether R contains an encoded message, the output of sign corrector [0048] While there has been described and illustrated preferred methods of encoding messages into and decoding messages from signals, it will be apparent to those skilled in the art that variations and modifications are possible without deviating from the broad teachings and spirit of the present invention which shall be limited solely by the scope of the claims appended hereto. Referenced by
Classifications
Legal Events
Rotate |