Systems and methods for etching digital watermarks
First Claim
1. A method of watermarking digital data, comprising:
- obtaining a matrix of digital data values;
selecting a plurality of data values from the matrix;
obtaining watermark bits;
specifying a watermark error tolerance parameter (Te); and
etching the watermark bits in at least two of the plurality of data values to produce etched data values using the error tolerance parameter, wherein a function of the error tolerance parameter specifies a maximum amount of variation that the etched data values may incur before errors are introduced into the etched watermark bits.
2 Assignments
0 Petitions
Accused Products
Abstract
A system (100) for watermarking digital data includes a watermark etching subsystem (105) and a watermark extraction subsystem (110). The watermark etching subsystem (105) obtains a matrix of digital data values, selects windows including a plurality of data values from the matrix, specifies a parameter that indicates an acceptable amount of variation in the data values, and etches watermark bits in each window of data values using the specified parameter. The watermark extraction subsystem (110) obtains a matrix of digital data values containing an etched watermark, selects windows comprising a plurality of data values from the matrix, and extracts watermark bits from each window of data values using the specified parameter.
-
Citations
61 Claims
-
1. A method of watermarking digital data, comprising:
-
obtaining a matrix of digital data values;
selecting a plurality of data values from the matrix;
obtaining watermark bits;
specifying a watermark error tolerance parameter (Te); and
etching the watermark bits in at least two of the plurality of data values to produce etched data values using the error tolerance parameter, wherein a function of the error tolerance parameter specifies a maximum amount of variation that the etched data values may incur before errors are introduced into the etched watermark bits. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
ordering the plurality of data values in rank order to produce rank ordered data values.
-
-
3. The method of claim 2, the method further comprising:
modifying outer data values of the rank ordered data values using the error tolerance parameter.
-
4. The method of claim 2, wherein the function of the error tolerance parameter comprises:
-
5. The method of claim 4, further comprising:
modifying the smallest (b(1)) and largest (b(n)) of the rank ordered data values to produce modified data values (b(j)′
) according to the relation;
-
6. The method of claim 5, further comprising:
etching watermark bits (x) into intermediate values (b(i)) of the rank ordered data values existing between the smallest (b(1)) and largest (b(n)) values according to the relation;
-
7. The method of claim 1, wherein the matrix comprises video data.
-
8. The method of claim 1, wherein the data values comprise coefficients of a frame of video data.
-
9. The method of claim 8, wherein the coefficients comprise DC coefficients.
-
10. The method of claim 8, wherein the frame of video data comprises an MPEG I-frame.
-
11. The method of claim 1, wherein the plurality of data values comprise a 2×
- 2 window of data values.
-
12. A computer-readable medium containing instructions for controlling at least one processor to perform a method of watermarking digital data, the method comprising:
-
obtaining a matrix of digital data values;
selecting a plurality of data values from the matrix;
obtaining watermark bits;
specifying a watermark error tolerance parameter; and
etching the watermark bits in at least two of the plurality of data values to produce etched data values using the error tolerance parameter, wherein a function of the error tolerance parameter specifies a maximum amount of variation that the etched data values may incur before errors are introduced into the etched watermark bits.
-
-
13. An apparatus for watermarking digital data, comprising:
-
an input device configured to receive a matrix of digital data values;
at least one processor configured to;
select a plurality of data values from the matrix;
obtain watermark bits;
specify a watermark error tolerance parameter; and
etch the watermark bits in at least two of the plurality of data values to produce etched data values using the error tolerance parameter, wherein a function of the error tolerance parameter specifies a maximum amount of variation that the etched data values may incur before errors are introduced into the etched watermark bits.
-
-
14. A system for etching digital watermarks, comprising:
-
means for obtaining a matrix of digital data values;
means for selecting a plurality of data values from the matrix;
means for obtaining watermark bits;
means for specifying a watermark error tolerance parameter; and
means for etching the watermark bits in at least two of the plurality of data values to produce etched data values using the error tolerance parameter, wherein a function of the error tolerance parameter specifies a maximum amount of variation that the etched data values may incur before errors are introduced into the etched watermark bits.
-
-
15. A method of watermarking data, comprising:
-
obtaining a plurality of data values;
obtaining watermark data; and
etching the watermark data into at least one of the plurality of data values to produce etched data values, wherein etching the watermark further comprises;
introducing an error tolerance buffer that determines an amount that the etched data values may be modified before the watermark data is destroyed. - View Dependent Claims (16, 17, 18, 19, 20)
specifying an error tolerance parameter (Te).
-
-
18. The method of claim 17, wherein introducing the error tolerance buffer further comprises:
modifying outer data values of the rank ordered data values using the error tolerance parameter.
-
19. The method of claim 17, wherein introducing the error tolerance buffer further comprises:
modifying the smallest (b(1)) and largest (b(n)) of the rank ordered data values to produce modified values (b(j)′
) according to the relation;
-
20. The method of claim 19, wherein etching the watermark data comprises:
etching watermark data (x) into intermediate values (b(i)) of the rank ordered data values existing between the smallest (b(1)) and largest (b(n)) values according to the relation;
-
21. A computer-readable medium containing instructions for controlling at least one processor to perform a method of watermarking data, the method comprising:
-
obtaining a plurality of data values;
obtaining watermark data; and
etching the watermark data into at least one of the plurality of data values to produce etched data values, wherein etching the watermark further comprises;
introducing an error tolerance buffer that determines an amount that the etched data values may be modified before the watermark data is destroyed.
-
-
22. An apparatus for watermarking digital data, comprising:
-
at least one input device configured to;
receive a plurality of data values, and receive watermark data; and
at least one processor configured to;
etch the watermark data into at least one of the plurality of data values to produce etched data values, wherein etching the watermark further comprises;
introducing an error tolerance buffer that determines an amount the etched data values may be modified before the watermark data is destroyed.
-
-
23. A method of watermarking data, comprising:
-
obtaining a matrix of data;
obtaining watermark data;
determining whether a region of the data matrix cannot hide watermark data; and
selectively etching watermark data into the region of the data matrix, based on the determination, to produced etched data, wherein determining whether a region of the data matrix cannot hide watermark data comprises;
determining a significance parameter (SIGWINDOW) indicating a significance of the region of the data matrix;
comparing the significance parameter to a function of an error tolerance parameter (Te) that specifies a maximum amount of variation that the etched data may incur before errors are introduced into the etched watermark data; and
designating the region of the data matrix as unable to hide watermark data based on the comparison. - View Dependent Claims (24, 25, 26, 27, 28, 29)
-
-
25. The method of claim 24, wherein Se comprises 2*Te+1.
-
26. The method of claim 24, wherein b1 comprises a largest data value of the region of the data matrix.
-
27. The method of claim 24, wherein b2 comprises a smallest data value of the region of the data matrix.
-
28. The method of claim 23, wherein the function of the error tolerance parameter (Te) comprises 2*Se, where Se=2*Te+1.
-
29. The method of claim 23, wherein comparing the significance parameter (SIGWINDOW) to a function of an error tolerance parameter (Te) comprises:
determining if SIGWINDOW is greater than, or equal to, 2*Se, where Se=2*Te+1.
-
30. A computer-readable medium containing instructions for controlling at least one processor to perform a method of watermarking data, the method comprising:
-
obtaining a matrix of data;
obtaining watermark data;
determining whether a region of the data matrix is too smooth to hide watermark data; and
selectively etching watermark data into the region of the data matrix, based on the determination, to produced etched data, wherein determining whether a region of the data matrix is too smooth to hide watermark data comprises;
determining a significance parameter (SIGWINDOW) indicating a significance of the region of the data matrix;
comparing the significance parameter to a function of an error tolerance parameter (Te) that specifies a maximum amount of variation that the etched data may incur before errors are introduced into the etched watermark data; and
designating the region of the data matrix as too smooth to hide watermark data based on the comparison.
-
-
31. An apparatus for watermarking digital data, comprising:
-
at least one input device configured to;
receive a matrix of data, and receive watermark data;
at least one processor configured to;
determine whether a region of the data matrix is too smooth to hide watermark data, wherein determining whether a region of the data matrix is too smooth to hide watermark data comprises;
determining a significance parameter (SIGWINDOW) indicating a significance of the region of the data matrix;
comparing the significance parameter to a function of an error tolerance parameter (Te) that specifies a maximum amount of variation that the etched data may incur before errors are introduced into the etched watermark data; and
designating the region of the data matrix as too smooth to hide watermark data based on the comparison; and
selectively etch watermark data into the region of the data matrix, based on the determination, to produced etched data.
-
-
32. A method of extracting watermark bits from digital data, comprising:
-
obtaining a matrix of digital data values;
selecting a plurality of data values from the matrix, at least one of the plurality of data values being etched with watermark bits;
specifying a watermark error tolerance parameter (Te); and
extracting the watermark bits from the at least one of the plurality of data values using the error tolerance parameter, wherein a function of the error tolerance parameter specifies a maximum amount of variation that the etched plurality of data values may have incurred, prior to extraction, before errors were introduced into the watermark bits. - View Dependent Claims (33, 34, 35, 36, 37, 38, 39, 40, 41, 42)
ordering the plurality of data values in rank order to produce rank ordered data values.
-
-
34. The method of claim 33, the method further comprising:
modifying outer data values of the rank ordered data values using the error tolerance parameter.
-
35. The method of claim 33, wherein the function of the error tolerance parameter comprises:
-
36. The method of claim 35, further comprising:
modifying the smallest (B(1)) and largest (B(n)) of the rank ordered data values to produce modified data values (B(j)′
) according to the relation;
-
37. The method of claim 36, further comprising:
extracting the watermark bits (x) from intermediate values (B(i)) of the plurality of data values existing between the smallest (B(1)) and largest (B(n)) values according to the relation;
-
38. The method of claim 32, wherein the matrix comprises video data.
-
39. The method of claim 32, wherein the data values comprise coefficients of a frame of video data.
-
40. The method of claim 39, wherein the coefficients comprise DC coefficients.
-
41. The method of claim 39, wherein the frame of video data comprises an MPEG I-frame.
-
42. The method of claim 32, wherein the plurality of data values comprise a 2×
- 2 window of data values.
-
43. A computer-readable medium containing instructions for controlling at least one processor to perform a method of extracting watermark bits from digital data, the method comprising:
-
obtaining a matrix of digital data values;
selecting a plurality of data values from the matrix, at least one of the plurality of data values being etched with watermark bits;
specifying a watermark error tolerance parameter; and
extracting the watermark bits from the at least one of the plurality of data values using the error tolerance parameter, wherein a function of the error tolerance parameter specifies a maximum amount of variation that the etched plurality of data values may have incurred, prior to extraction, before errors were introduced into the watermark bits.
-
-
44. An apparatus extracting watermark bits from digital data, comprising:
-
at least one input device configured to;
receive a matrix of digital data values; and
at least one processor configured to;
select a plurality of data values from the matrix, at least one of the plurality of data values being etched with watermark bits, specify a watermark error tolerance parameter, and extract the watermark bits from the at least one of the plurality of data values using the error tolerance parameter, wherein a function of the error tolerance parameter specifies a maximum amount of variation that the etched data values may have incurred, prior to extraction, before errors were introduced into the watermark bits.
-
-
45. A method of extracting a watermark from data, comprising:
-
obtaining a plurality of data values etched with watermark data; and
extracting the watermark data from the plurality of data values in accordance with an error tolerance buffer built into the etched data, wherein the error tolerance buffer specifies an amount that the etched data may have been modified, prior to extraction, before destruction of the watermark data. - View Dependent Claims (46, 47, 48, 49, 50)
ordering the plurality of data values in rank order to produce rank ordered data values.
-
-
47. The method of claim 46, wherein extracting the watermark data comprises:
specifying an error tolerance parameter (Te).
-
48. The method of claim 47, wherein extracting the watermark data further comprises:
modifying the smallest (B(1)) and largest (B(n)) of the rank ordered data values to produce modified values (B(j)′
) according to the relation;
-
49. The method of claim 48, wherein extracting the watermark data further comprises:
extracting watermark data (x) from intermediate values (B(i)) of the rank ordered data values existing between the smallest (B(1)) and largest (B(n)) values according to the relation;
-
50. The method of claim 46, wherein extracting the watermark data further comprises:
modifying outer data values of the rank ordered data values using the error tolerance parameter to produce rank ordered data values.
-
51. A computer-readable medium containing instructions for controlling at least one processor to perform a method of extracting a watermark from data, the method comprising:
-
obtaining a plurality of data values etched with watermark data; and
extracting the watermark data from the plurality of data values in accordance with an error tolerance buffer built into the etched data, wherein the error tolerance buffer specifies an amount that the etched data may have been modified, prior to extraction, before destruction of the watermark data.
-
-
52. An apparatus for extracting a watermark from data, comprising:
-
at least one input device configured to;
receive a plurality of data values etched with watermark data; and
at least one processor configured to;
extract the watermark data from the plurality of data values in accordance with an error tolerance buffer built into the etched data, wherein the error tolerance buffer specifies an amount that the etched data may have been modified, prior to extraction, before destruction of the watermark data.
-
-
53. A method of extracting a watermark from data, comprising:
-
obtaining a matrix of data etched with watermark data;
determining whether a region of the data matrix cannot hide watermark data; and
selectively extracting watermark data from the region of the data matrix based on the determination, wherein determining whether a region of the data matrix cannot hide watermark data further comprises;
determining a significance parameter (SIGWINDOW) indicating a significance of the region of the data matrix;
comparing the significance parameter to a function of an error tolerance parameter (Te) that specifies a maximum amount of variation the etched data may incur before errors are introduced into the etched watermark data; and
designating the region of the data matrix as unable to hide watermark data based on the comparison. - View Dependent Claims (54, 55, 56, 57, 58, 59)
-
-
55. The method of claim 54, wherein Se comprises 2*Te+1.
-
56. The method of claim 54, wherein b1 comprises a largest data value of the region of the data matrix.
-
57. The method of claim 54, wherein b2 comprises a smallest data value of the region of the data matrix.
-
58. The method of claim 53, wherein the function of the error tolerance parameter (Te) comprises 2*Se, where Se=2*Te+1.
-
59. The method of claim 53, wherein comparing the significance parameter (SIGWINDOW) to a function of an error tolerance parameter (Te) comprises:
determining if SIGWINDOW is greater than, or equal to, 2*Se, where Se=2*Te+1.
-
60. A computer-readable medium containing instructions for controlling at least one processor to perform a method of extracting a watermark from data, the method comprising:
-
obtaining a matrix of data etched with watermark data;
determining whether a region of the data matrix is too smooth to hide watermark data; and
selectively extracting watermark data from the region of the data matrix based on the determination, wherein determining whether a region of the data matrix cannot hide watermark data further comprises;
determining a significance parameter (SIGWINDOW) indicating a significance of the region of the data matrix;
comparing the significance parameter to a function of an error tolerance parameter (Te) that specifies a maximum amount of variation the etched data may incur before errors are introduced into the etched watermark data; and
designating the region of the data matrix as unable to hide watermark data based on the comparison.
-
-
61. An apparatus for extracting a watermark from data, comprising:
-
at least one input device configured to;
receive a matrix of data etched with watermark data;
at least one processor configured to;
determine whether a region of the data matrix is too smooth to hide watermark data, and selectively extract watermark data from the region of the data matrix based on the determination, wherein determining whether a region of the data matrix cannot hide watermark data further comprises;
determining a significance parameter (SIGWINDOW) indicating a significance of the region of the data matrix;
comparing the significance parameter to a function of an error tolerance parameter (Te) that specifies a maximum amount of variation the etched data may incur before errors are introduced into the etched watermark data; and
designating the region of the data matrix as unable to hide watermark data based on the comparison.
-
Specification