Claims
- 1. A method of reversibly embedding auxiliary data in a data set comprising:
transforming the data set from an original domain into transformed data values with an invertible transform; expanding selected data values to embed auxiliary data; inverting the transformed data values, including the data values selected for expansion, to return the transformed data values to the original domain.
- 2. The method of claim 1 including:
identifying data values that can be expanded to embed auxiliary data values without causing an underflow or overflow.
- 3. The method of claim 1 wherein the transformation includes transforming the data set into fixed and variable values, the variable values forming a set from which certain transformed data values are selected for expansion.
- 4. The method of claim 3 wherein the fixed values remain unchanged during the auxiliary date embedding operation.
- 5. The method of claim 3 wherein the fixed values are averages of selected groups of elements in the data set, and the variable values are difference values of elements in the selected groups.
- 6. The method of claim 1 wherein the invertible transform comprises an integer to integer invertible transform.
- 7. The method of claim 1 wherein expanding comprises multiplying a first selected data value by a desired number of states and adding a number corresponding to a selected state of an auxiliary data value to be embedded in the first selected data value, and repeating the multiplying and adding for other data values selected for expansion to embed additional auxiliary data values.
- 8. The method of claim 7 including:
identifying data values that can be expanded to embed auxiliary data values without causing an underflow or overflow.
- 9. The method of claim 7 wherein the number of states is two, and the multiplying is performed by shifting bit positions in data values selected for expansion.
- 10. The method of claim 1 wherein data values selected for embedding expansion correspond to embedding locations that have a property that is invariant to changes due to embedding of the auxiliary data, and wherein the invariant property enables a decoder to identify embedding locations.
- 11. The method of claim 10 wherein the invariant property is identified based on whether a data value at an embedding location can be changed to embed data without causing an underflow or overflow condition.
- 12. A storage medium on which is stored instructions for performing the method of claim 1.
- 13. The method of claim 1 wherein the invertible transform comprises a transform to average and difference values, the difference values forming a set from which values are selected for auxiliary data embedding by expansion.
- 14. The method of claim 1 wherein the data set comprises an image signal.
- 15. The method of claim 1 wherein the transforming, expanding and inverting is performed repeatedly to data elements at embedding locations within the data set to embed two or more layers of auxiliary data.
- 16. The method of claim 15 wherein each layer has a different decoding key used to decode the layer.
- 17. The method of claim 1 wherein expanding includes inserting one or more extra bits into a selected data value to increase the number of bits after a most significant, non-zero bit, wherein the auxiliary data is carried in the one or more extra bits.
- 18. A method of reading auxiliary data reversibly embedded in a data set and restoring the data set to the same values as before the reversible embedding, the method comprising:
transforming the data set from an original domain into transformed data values with an invertible transform; extracting auxiliary data from data values previously selected for embedding of auxiliary data by expansion, including restoring the selected data values to the same values as before the embedding of the auxiliary data; and inverting the transformed data values, including the data values selected for expansion, to return the transformed data values to the original domain.
- 19. A storage medium on which is stored instructions for performing the method of claim 18.
- 20. The method of claim 18 wherein one or more bits of the data values carry auxiliary data, and extracting includes reading the one or more bits of the data values.
- 21. The method of claim 18 including:
identifying data values that have an invariant property to embedding of auxiliary data to determine which data values are carrying auxiliary embedded data.
- 22. A method of reversibly embedding auxiliary data in a data set comprising:
selecting embedding locations in the data set that have a property that is invariant to changes due to embedding of the auxiliary data, and wherein the invariant property enables a decoder to identify embedding locations; and reversibly embedding auxiliary data into data values at the embedding locations.
- 23. The method of claim 22 including:
expanding selected data values to embed auxiliary data.
- 24. The method of claim 23 wherein the expanding includes inserting one or more extra bits into a data value to increase the number of bits after a most significant, non-zero bit, wherein the auxiliary data is carried in the one or more extra bits.
- 25. The method of claim 23 wherein expanding includes multiplying a data value by a number of states and adding a state corresponding to an auxiliary data value to be embedded.
- 26. The method of claim 22 wherein the invariant property is identified based on whether a data value at an embedding location can be changed without causing an underflow or overflow.
- 27. A storage medium on which is stored instructions for performing the method of claim 22.
- 28. A method of decoding reversibly embedded auxiliary data in a data set comprising:
identifying a subset of locations in the data set that have a property that is invariant to changes due to embedding of the auxiliary data; extracting auxiliary data from data values at the identified locations; and restoring values of the data set to the same values as before the embedding of the auxiliary data into the data set.
- 29. A storage medium on which is stored instructions for performing the method of claim 28.
- 30. The method of claim 28 wherein the auxiliary data is embedded by expansion of data values.
- 31. The method of claim 28 wherein the auxiliary data includes a location map indicating which of the subset of locations has been embedded with auxiliary data by expansion.
- 32. A method of embedding auxiliary data in a data set comprising:
identifying values derived from the data set that are expandable; and expanding the identified values by inserting an auxiliary data state corresponding to auxiliary data to be embedded in the identified values.
- 33. The method of claim 32 wherein the expanding is invertible by limiting embedding to values that can be expanded without causing an underflow or overflow.
- 34. The method of claim 32 wherein the identified values are derived by exploiting correlation within the data set to compute values that are a function of the values in the original data set and that are more expandable than the values in the original data set.
- 35. The method of claim 32 wherein identified values are chosen for expansion based on a property that enables the decoder to identify locations of embedded auxiliary data without using data separate from the data set.
- 36. A storage medium on which is stored instructions for performing the method of claim 32.
- 37. A method of decoding auxiliary data from an embedded data set comprising:
identifying values derived from the embedded data set that have been embedded with auxiliary data; and extracting auxiliary data from selected values in the embedded data set that have been embedded with auxiliary data, including extracting inserted auxiliary data state values from the selected values.
- 38. A storage medium on which is stored instructions for performing the method of claim 37.
RELATED APPLICATIONS
[0001] This application claims the benefit of provisional application 60/404,181, filed Aug. 16, 2002, 60/340,651, filed Dec. 13, 2001, and 60/______, filed Dec. 2, 2002, entitled Reversible Watermarking by Jun Tian and Steve Decker.
[0002] This application is also related to application Ser. No. 10/035,830 filed Oct. 18, 2001, which claims the benefit of provisional applications:
[0003] a) 60/247,389, filed Nov. 8, 2000;
[0004] b) 60/260,907, filed Jan. 10, 2001; and
[0005] c) 60/284,594 filed Apr. 17, 2001.
[0006] The entire content of the above listed applications is hereby incorporated herein by reference.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60404181 |
Aug 2002 |
US |
|
60340651 |
Dec 2001 |
US |