Robust watermark method and apparatus for digital signals
First Claim
1. A method for encoding embedded data in a digitized analog signal, the method comprising:
- processing the embedded data to form inversion-robust embedded data such that interpretation of the inversion-robust embedded data produces the embedded data and such that interpretation of the inversion-robust embedded data after inversion also produces the embedded data; and
embedding the inversion-robust embedded data in the digitized analog signal to produce a resulting signal such that inversion of the resulting signal inverts the inversion-robust embedded data as embedded in the resulting signal wherein the step of processing comprises;
applying a 1/(1 XOR D) precoder to the embedded data.
3 Assignments
0 Petitions
Accused Products
Abstract
Watermark data is encoded in a digitized signal by forming a noise threshold spectrum which represents a maximum amount of imperceptible noise, spread-spectrum chipping the noise threshold spectrum with a relatively endless stream of pseudo-random bits to form a basis signal, dividing the basis signal into segments, and filtering the segments to smooth segment boundaries. The data encoded in the watermark signal is precoded to make the watermark data inversion robust and is convolutional encoded to further increase the likelihood that the watermark data will subsequently be retrievable notwithstanding lossy processing of the watermarked signal.
266 Citations
57 Claims
-
1. A method for encoding embedded data in a digitized analog signal, the method comprising:
-
processing the embedded data to form inversion-robust embedded data such that interpretation of the inversion-robust embedded data produces the embedded data and such that interpretation of the inversion-robust embedded data after inversion also produces the embedded data; and
embedding the inversion-robust embedded data in the digitized analog signal to produce a resulting signal such that inversion of the resulting signal inverts the inversion-robust embedded data as embedded in the resulting signal wherein the step of processing comprises;
applying a 1/(1 XOR D) precoder to the embedded data.
-
-
2. A method for encoding embedded data in a digitized analog signal, the method comprising:
-
(a) convolving the embedded data to produce convolved embedded data, the step of convolving including;
(i) performing the following steps for each subject bit of the embedded data;
(A) selecting two or more relevant bits of the embedded data according to a relation to the subject bit;
(B) processing the two or more relevant bits to form two or more convolved bits which collectively represent the subject bit; and
(C) including the convolved bits in the convolved embedded data; and
(b) embedding the convolved embedded data in the digitized analog signal. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 10)
forming a basis signal from the digitized analog signal;
encoding the convolved embedded data into the basis signal to form an encoded basis signal; and
adding the encoded basis signal to the digitized analog signal.
-
-
4. The method of claim 2 wherein the relation to the subject bit is a position relative to a position of the subject bit within the embedded data.
-
5. The method of claim 2 wherein the step of (B) processing comprises:
-
performing the following step for each selected one of the convolved bits;
(1) selecting one or more selected ones of the two or more relevant bits; and
(2) processing the selected relevant bits to produce the selected convolved bit.
-
-
6. The method of claim 5 wherein the selected relevant bits are odd in number for each of the convolved bits.
-
7. The method of claim 5 wherein the step of (1) selecting comprises:
selecting one or more selected ones of the two or more relevant bits according to a second relation to the subject bit.
-
8. The method of claim 7 wherein the second relation is a position relative to a position of the subject bit within the embedded data.
-
9. The method of claim 5 wherein the step of (2) processing comprises:
determining parity of the selected relevant bits to produce a parity bit as the selected convolved bit.
-
10. The method of claim 9 wherein the selected relevant bits are odd in number for each of the convolved bits .
-
11. A method for encoding embedded data in a digitized analog signal, the method comprising:
-
(a) processing the embedded data to form inversion-robust embedded data such that interpretation of the inversion-robust embedded data produces the embedded data and such that interpretation of the inversion-robust embedded data after inversion also produces the embedded data;
(b) convolving the inversion-robust embedded data to produce convolved embedded data, the step of convolving including;
(i) performing the following steps for each subject bit of the inversion-robust embedded data;
(A) selecting two or more relevant bits of the inversion-robust embedded data according to a relation to the subject bit;
(B) processing the two or more relevant bits to form two or more convolved bits which collectively represent the subject bit; and
(C) including the convolved bits in the convolved embedded data; and
(c) embedding the convolved embedded data in the digitized analog signal. - View Dependent Claims (12, 13)
applying a 1/(1 XOR D) precoder to the embedded data.
-
-
13. The method of claim 11 wherein the step of (c) embedding comprises:
-
forming a basis signal from the digitized analog signal;
encoding the convolved embedded data into the basis signal to form an encoded basis signal; and
adding the encoded basis signal to the digitized analog signal.
-
-
14. A method for decoding embedded data from a digitized analog signal, the method comprising:
-
forming a basis signal from the digitized analog signal;
correlating the basis signal with the digitized analog signal to form a correlation signal;
decoding preliminary embedded data from the correlation signal; and
processing the preliminary embedded data in such a manner that results in specific data if the preliminary embedded data has been inverted and results in the specific data if the preliminary embedded data has not been inverted, wherein the specific data is the embedded data. - View Dependent Claims (15)
applying an inverse 1/(1 XOR D) precoder to the preliminary embedded data.
-
-
16. A method for decoding embedded data from a digitized analog signal, the method comprising:
-
forming a basis signal from the digitized analog signal;
correlating the basis signal with the digitized analog signal to form a correlation signal;
decoding preliminary embedded data from the correlation signal; and
processing the preliminary embedded data using a Viterbi decoder to produce the embedded data from the preliminary data. - View Dependent Claims (17, 18)
cycling the preliminary embedded data through the Viterbi decoder two or more times.
-
-
18. The method of claim 16 wherein processing comprises:
determining parity according to an odd number of selected bits for each of a number of bits of the preliminary embedded data.
-
19. A method for decoding embedded data from a digitized analog signal, the method comprising:
-
forming a basis signal from the digitized analog signal;
correlating the basis signal with the digitized analog signal to form a correlation signal;
decoding preliminary embedded data from the correlation signal;
processing the preliminary embedded data using a Viterbi decoder to produce the secondary embedded data from the preliminary data; and
processing the secondary embedded data in such a manner that results in specific data if the digitized analog signal has been inverted and results in the specific data if the digitized analog signal has not been inverted, wherein the specific data is the embedded data.
-
-
20. A computer readable medium useful in association with a computer which includes a processor and a memory, the computer readable medium including computer instructions which are configured to cause the computer to encode embedded data in a digitized analog signal by:
-
processing the embedded data to form inversion-robust embedded data such that interpretation of the inversion-robust embedded data produces the embedded data and such that interpretation of the inversion-robust embedded data after inversion also produces the embedded data; and
embedding the inversion-robust embedded data in the digitized analog signal to produce a resulting signal such that inversion of the resulting signal inverts the inversion-robust embedded data as embedded in the resulting signal wherein processing comprises;
applying a 1/(1 XOR D) precoder to the embedded data.
-
-
21. A computer readable medium useful in association with a computer which includes a processor and a memory, the computer readable medium including computer instructions which are configured to cause the computer to encode embedded data in a digitized analog signal by:
-
(a) convolving the embedded data to produce convolved embedded data, the step of convolving including;
(i) performing the following steps for each subject bit of the embedded data;
(A) selecting two or more relevant bits of the embedded data according to a relation to the subject bit;
(B) processing the two or more relevant bits to form two or more convolved bits which collectively represent the subject bit; and
(C) including the convolved bits in the convolved embedded data; and
(b) embedding the convolved embedded data in the digitized analog signal. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29)
forming a basis signal from the digitized analog signal;
encoding the convolved embedded data into the basis signal to form an encoded basis signal; and
adding the encoded basis signal to the digitized analog signal.
-
-
23. The computer readable medium of claim 21 wherein the relation to the subject bit is a position relative to a position of the subject bit within the embedded data.
-
24. The computer readable medium of claim 21 wherein (B) processing comprises:
-
performing the following step for each selected one of the convolved bits;
(1) selecting one or more selected ones of the two or more relevant bits; and
(2) processing the selected relevant bits to produce the selected convolved bit.
-
-
25. The computer readable medium of claim 24 wherein the selected relevant bits are odd in number for each of the convolved bits.
-
26. The computer readable medium of claim 24 wherein (1) selecting comprises:
selecting one or more selected ones of the two or more relevant bits according to a second relation to the subject bit.
-
27. The computer readable medium of claim 26 wherein the second relation is a position relative to a position of the subject bit within the embedded data.
-
28. The computer readable medium of claim 24 wherein (2) processing comprises:
determining parity of the selected relevant bits to produce a parity bit as the selected convolved bit.
-
29. The computer readable medium of claim 28 wherein the selected relevant bits are odd in number for each of the convolved bits.
-
30. A computer readable medium useful in association with a computer which includes a processor and a memory, the computer readable medium including computer instructions which are configured to cause the computer to encode embedded data in a digitized analog signal by:
-
(a) processing the embedded data to form inversion-robust embedded data such that interpretation of the inversion-robust embedded data produces the embedded data and such that interpretation of the inversion-robust embedded data after inversion also produces the embedded data;
(b) convolving the inversion-robust embedded data to produce convolved embedded data, the step of convolving including;
(i) performing the following steps for each subject bit of the inversion-robust embedded data;
(A) selecting two or more relevant bits of the inversion-robust embedded data according to a relation to the subject bit;
(B) processing the two or more relevant bits to form two or more convolved bits which collectively represent the subject bit; and
(C) including the convolved bits in the convolved embedded data; and
(c) embedding the convolved embedded data in the digitized analog signal. - View Dependent Claims (31, 32)
applying a 1/(1 XOR D) precoder to the embedded data.
-
-
32. The computer readable medium of claim 30 wherein (c) embedding comprises:
-
forming a basis signal from the digitized analog signal;
encoding the convolved embedded data into the basis signal to form an encoded basis signal; and
adding the encoded basis signal to the digitized analog signal.
-
-
33. A computer readable medium useful in association with a computer which includes a processor and a memory, the computer readable medium including computer instructions which are configured to cause the computer to decode embedded data from a digitized analog signal by:
-
forming a basis signal from the digitized analog signal;
correlating the basis signal with the digitized analog signal to form a correlation signal;
decoding preliminary embedded data from the correlation signal; and
processing the preliminary embedded data in such a manner that results in specific data if the preliminary embedded data has been inverted and results in the specific data if the preliminary embedded data has not been inverted, wherein the specific data is the embedded data. - View Dependent Claims (34)
applying an inverse 1/(1 XOR D) precoder to the preliminary embedded data.
-
-
35. A computer readable medium useful in association with a computer which includes a processor and a memory, the computer readable medium including computer instructions which are configured to cause the computer to decode embedded data from a digitized analog signal by:
-
forming a basis signal from the digitized analog signal;
correlating the basis signal with the digitized analog signal to form a correlation signal;
decoding preliminary embedded data from the correlation signal; and
processing the preliminary embedded data using a Viterbi decoder to produce the embedded data from the preliminary data. - View Dependent Claims (36)
cycling the preliminary embedded data through the Viterbi decoder two or more times.
-
-
38. A computer readable medium useful in association with a computer which includes a processor and a memory, the computer readable medium including computer instructions which are configured to cause the computer to decode embedded data from a digitized analog signal by:
-
forming a basis signal from the digitized analog signal;
correlating the basis signal with the digitized analog signal to form a correlation signal;
decoding preliminary embedded data from the correlation signal;
processing the preliminary embedded data using a Viterbi decoder to produce the secondary embedded data from the preliminary data; and
processing the secondary embedded data in such a manner that results in specific data if the digitized analog signal has been inverted and results in the specific data if the digitized analog signal has not been inverted, wherein the specific data is the embedded data.
-
-
39. A computer system comprising:
-
a processor;
a memory operatively coupled to the processor; and
an encoding module (i) which executes in the processor from the memory and (ii) which when executed by the processor, causes the computer to encode embedded data in a digitized analog signal by;
processing the embedded data to form inversion-robust embedded data such that interpretation of the inversion-robust embedded data produces the embedded data and such that interpretation of the inversion-robust embedded data after inversion also produces the embedded data; and
embedding the inversion-robust embedded data in the digitized analog signal to produce a resulting signal such that inversion of the resulting signal inverts the inversion-robust embedded data as embedded in the resulting signal wherein processing comprises;
applying a 1/(1 XOR D) precoder to the embedded data. - View Dependent Claims (37)
determining parity according to an odd number of selected bits for each of a number of bits of the preliminary embedded data.
-
-
40. A computer system comprising:
-
a processor;
a memory operatively coupled to the processor; and
an encoding module (i) which executes in the processor from the memory and (ii) which, when executed by the processor, causes the computer to encode embedded data in a digitized analog signal by;
(a) convolving the embedded data to produce convolved embedded data, the step of convolving including;
(i) performing the following steps for each subject bit of the embedded data;
(A) selecting two or more relevant bits of the embedded data according to a relation to the subject bit;
(B) processing the two or more relevant bits to form two or more convolved bits which collectively represent the subject bit; and
(C) including the convolved bits in the convolved embedded data; and
(b) embedding the convolved embedded data in the digitized analog signal. - View Dependent Claims (41, 42, 43, 44, 45, 46, 47, 48)
forming a basis signal from the digitized analog signal;
encoding the convolved embedded data into the basis signal to form an encoded basis signal; and
adding the encoded basis signal to the digitized analog signal.
-
-
42. The computer system of claim 40 wherein the relation to the subject bit is a position relative to a position of the subject bit within the embedded data.
-
43. The computer system of claim 40 wherein (B) processing comprises:
-
performing the following step for each selected one of the convolved bits;
(1) selecting one or more selected ones of the two or more relevant bits; and
(2) processing the selected relevant bits to produce the selected convolved bit.
-
-
44. The computer system of claim 43 wherein the selected relevant bits are odd in number for each of the convolved bits.
-
45. The computer system of claim 43 wherein (1) selecting comprises:
selecting one or more selected ones of the two or more relevant bits according to a second relation to the subject bit.
-
46. The computer system of claim 45 wherein the second relation is a position relative to a position of the subject bit within the embedded data.
-
47. The computer system of claim 43 wherein (2) processing comprises:
determining parity of the selected relevant bits to produce a parity bit as the selected convolved bit.
-
48. The computer system of claim 47 wherein the selected relevant bits are odd in number for each of the convolved bits.
-
49. A computer system comprising:
-
a processor;
a memory operatively coupled to the processor; and
an encoding module (i) which executes in the processor from the memory and (ii) which, when executed by the processor, causes the computer to encode embedded data in a digitized analog signal by;
(a) processing the embedded data to form inversion-robust embedded data such that interpretation of the inversion-robust embedded data produces the embedded data and such that interpretation of the inversion-robust embedded data after inversion also produces the embedded data;
(b) convolving the inversion-robust embedded data to produce convolved embedded data, the step of convolving including;
(i) performing the following steps for each subject bit of the inversion-robust embedded data;
(A) selecting two or more relevant bits of the inversion-robust embedded data according to a relation to the subject bit;
(B) processing the two or more relevant bits to form two or more convolved bits which collectively represent the subject bit; and
(C) including the convolved bits in the convolved embedded data; and
(c) embedding the convolved embedded data in the digitized analog signal. - View Dependent Claims (50, 51)
applying a 1/(1 XOR D) precoder to the embedded data.
-
-
51. The computer system of claim 49 wherein (c) embedding comprises:
-
forming a basis signal from the digitized analog signal;
encoding the convolved embedded data into the basis signal to form an encoded basis signal; and
adding the encoded basis signal to the digitized analog signal.
-
-
52. A computer system comprising:
-
a processor;
a memory operatively coupled to the processor; and
a decoding module (i) which executes in the processor from the memory and (ii) which, when executed by the processor, causes the computer to decode embedded data from a digitized analog signal by;
forming a basis signal from the digitized analog signal;
correlating the basis signal with the digitized analog signal to form a correlation signal;
decoding preliminary embedded data from the correlation signal; and
processing the preliminary embedded data in such a manner that results in specific data if the preliminary embedded data has been inverted and results in the specific data if the preliminary embedded data has not been inverted, wherein the specific data is the embedded data. - View Dependent Claims (53)
applying an inverse 1/(1 XOR D) precoder to the preliminary embedded data.
-
-
54. A computer system comprising:
-
a processor;
a memory operatively coupled to the processor; and
an encoding module (i) which executes in the processor from the memory and (ii) which, when executed by the processor, causes the computer to decode embedded data from a digitized analog signal by;
forming a basis signal from the digitized analog signal;
correlating the basis signal with the digitized analog signal to form a correlation signal;
decoding preliminary embedded data from the correlation signal; and
processing the preliminary embedded data using a Viterbi decoder to produce the embedded data from the preliminary data. - View Dependent Claims (55, 56)
cycling the preliminary embedded data through the Viterbi decoder two or more times.
-
-
56. The computer system of claim 54 wherein processing comprises:
determining parity according to an odd number of selected bits for each of a number of bits of the preliminary embedded data.
-
57. A computer system comprising:
-
a processor;
a memory operatively coupled to the processor; and
a decoding module (i) which executes in the processor from the memory and (ii) which, when executed by the processor, causes the computer to decode embedded data from a digitized analog signal by;
forming a basis signal from the digitized analog signal;
correlating the basis signal with the digitized analog signal to form a correlation signal;
decoding preliminary embedded data from the correlation signal;
processing the preliminary embedded data using a Viterbi decoder to produce the secondary embedded data from the preliminary data; and
processing the secondary embedded data in such a manner that results in specific data if the digitized analog signal has been inverted and results in the specific data if the digitized analog signal has not been inverted, wherein the specific data is the embedded data.
-
Specification