Claims
- 1. A computer-implemented method for embedding data in a digital image that is used to authenticate the image, comprising the steps of:a) dividing said image into groups of M rectilinear blocks; b) calculating a property value of each said block; c) defining a mapping function that maps said property value of each said block onto a 0 or a 1 bit; d) embedding said 0 or 1 bit associated to each said block in accordance with the following steps, with a variable L=(a1−b1) when |a1−b1|≦d, where a1 is a number of microblocks with a first property value equal to a pre-specified lower bound value and having an inherently embedded bit opposite of a bit to be embedded, b1 is a number of microblocks with a second property value equal to a pre-specified upper bound value and having an inherently embedded bit opposite of a bit to be embedded, d is a number of microblocks with a property value between said pre-specified lower bound value and said pre-specified upper bound value and having an inherently embedded bit opposite of a bit to be embedded, I is a macroaverage value, I1 is a quantized macroaverage value, γ is a macroblock property value interval, Δ is an amount by which a change in the microblock property value will not exceed, and D is a set of microblocks with a property value between said pre-specified lower value and said pre-specified upper value and having an inherently embedded bit opposite of a bit to be embedded: i) increasing a1's by Δ; ii) decreasing b1's by Δ; iii) increasing a property value associated with each of |L| microblocks of D by Δ when L<0; iv) decreasing said property value associated with each of |L| microblocks of D by Δ when L≧0; and v) adjusting the remaining D microblocks.
- 2. The method according to claim 1, wherein the adjusting step comprises the step of decreasing said property value of one said D microblock, and alternatively increasing and decreasing said property value of a number of said D microblocks that remain when a new macroaverage value is greater than said quantized macroaverage value, or increasing the property value of one said D microblock, and alternatively decreasing and increasing the property value of a number of said D microblocks that remain when a new macroaverage value is less than or equal to said quantized macroaverage value.
- 3. The method according to claim 1, further comprising the steps, upon satisfying (a1−b1>d), of:e) determining if there is a value i, such that: iε{i:(I+i*Δ/M) maps to I1}; f) determining if |(a1−i)−b1|≦d; g) embedding with L=(a1−b1−i) upon satisfying steps e) and f), in accordance with the following steps: i) increasing a1's by Δ; ii) decreasing b1's by Δ; iii) increasing said property value associated with each of |L| microblocks of D when L≦0; iv) decreasing said property value associated with each of |L| microblocks of D when L>0; and v) adjusting the remaining D microblocks.
- 4. The method according to claim 3, wherein the adjusting step comprises the step of decreasing said property value of one said D microblock, and alternatively increasing and decreasing said property value of a number of said D microblocks that remain when a new macroaverage value is greater than said quantized macroaverage value, or increasing the property value of one said D microblock, and alternatively decreasing and increasing the property value of a number of said D microblocks that remain when a new macroaverage value is less than or equal to said quantized macroaverage value.
- 5. The method according to claim 3, further comprising the steps, upon satisfying |(a1−i)−b1|>d, of:h) computing a0, a1, b0, b1, c and d corresponding to I1+jγ, where a0 is a number of microblocks with a property value equal to said pre-specified lower bound value and having an inherently embedded bit the same as a bit to be embedded, b1 is a number of microblocks with a second property value equal to said pre-specified upper bound value and having an inherently embedded bit opposite of a bit to be embedded, c is a number of microblocks with a property value between said pre-specified lower value and said pre-specified upper bound value and an having an inherently embedded bit opposite of a bit to be embedded, and j is a counter parameter initialized to 1; i) determining if there is an integral value, k, such that: kε{k:(I+k*Δ/M) maps to |+jγ|}; j) determining whether |a1−k−b1|≦d k) repeating steps h)-j) for up to j=±1 . . . ±Δ/γ; and l) embedding with L=(a1−b1−k) upon satisfying steps i) and j), in accordance with the following steps: i) increasing a1's by Δ; ii) decreasing b1's by Δ; iii) increasing said property value associated with each of |L| microblocks of D when L≦0; iv) decreasing said property value associated with each of |L| microblocks of D when L>0; and v) adjusting the remaining D microblocks.
- 6. The method according to claim 5, wherein the adjusting step comprises the step of decreasing said property value of one said D microblock, and alternatively increasing and decreasing said property value of a number of said D microblocks that remain when a new macroaverage value is greater than said quantized macroaverage value, or increasing the property value of one said D microblock, and alternatively decreasing and increasing the property value of a number of said D microblocks that remain when a new macroaverage value is less than or equal to said quantized macroaverage value.
- 7. The method according to claim 5, further comprising the steps, upon satisfying |(a1−k)−b1|>d, of:m) calculating xi=|(ai−i)−bi|−di, for −M≦i≦M; n) calculating k such that xk=min {xi}; o) decreasing the property value of up to (|((a1−k)−b1|−d)/2)b0 or c microblocks by 2Δ when |(a1−k)−b1|>0, and embedding with L=d in accordance with the following steps: i) increasing a1's by Δ; ii) decreasing b1's by Δ; iii) increasing said property value associated with each of |L| microblocks of D when L≦0; iv) decreasing said property value associated with each of |L| microblocks of D when L>0; and v) adjusting the remaining D microblocks, or p) increasing the property value of up to (|((a1−k)−b1|−d)/2)a0 or c microblocks by 2Δ when |(a1−k)−b1|≦0, and embedding with L=−d in accordance with the following steps: i) increasing a1's by Δ; ii) decreasing b1's by Δ; iii) increasing said property value associated with each of |L| microblocks of D when L≦0; iv) decreasing said property value associated with each of |L| microblocks of D when L>0; and v) adjusting the remaining D microblocks.
- 8. The method according to claim 7, wherein the adjusting step comprises the step of decreasing said property value of one said D microblock, and alternatively increasing and decreasing said property value of a number of said D microblocks that remain when a new macroaverage value is greater than said quantized macroaverage value, or increasing the property value of one said D microblock, and alternatively decreasing and increasing the property value of a number of said D microblocks that remain when a new macroaverage value is less than or equal to said quantized macroaverage value.
- 9. A computer program product comprising:a computer usable medium having computer readable program code embodied in the medium for embedding data in a digital image that is used to authenticate the image, the computer program product having: first computer program code for dividing said image into groups of M rectilinear blocks; second computer program code for calculating a property value of each said block; third computer program code for defining a mapping function that maps said property value of each said block onto a 0 or a 1 bit; fourth computer program code for embedding said 0 or 1 bit associated to each said block in accordance with the following steps, with a variable L=(a1−b1) when |a1−b1|≦d, where a1 is a number of microblocks with a first property value equal to a pre-specified lower bound value and having an inherently embedded bit opposite of a bit to be embedded, b1 is a number of microblocks with a second property value equal to a pre-specified upper bound value and having an inherently embedded bit opposite of a bit to be embedded, d is a number of microblocks with a property value between said pre-specified lower bound value and said pre-specified upper bound value and having an inherently embedded bit opposite of a bit to be embedded, I is a macroaverage value, I1 is a quantized macroaverage value, γ is a macroblock property value interval, Δ is an amount by which a change in the microblock property value will not exceed, and D is a set of microblocks with a property value between said pre-specified lower value and said pre-specified upper value and having an inherently embedded bit opposite of a bit to be embedded: i) increasing a1's by Δ; ii) decreasing b1's by Δ; iii) increasing a property value associated with each of |L| microblocks of D by Δ when L<0; iv) decreasing said property value associated with each of |L| microblocks of D by Δ when L≧0; and v) adjusting the remaining D microblocks.
- 10. A computer program product of claim 9, wherein said fourth computer program code adjusts the remaining D microblocks by decreasing said property value of one said D microblock, and alternatively increasing and decreasing said property value of a number of said D microblocks that remain when a new macroaverage value is greater than said quantized macroaverage value, or increasing the property value of one said D microblock, and alternatively decreasing and increasing the property value of a number of said D microblocks that remain when a new macroaverage value is less than or equal to said quantized macroaverage value.
CROSS-REFERENCE TO RELATED APPLICATION
The subject matter of this application is related to the disclosure of patent application Ser. No. 09/273,055 now U.S. Pat. No. 6,246,777 filed Mar. 19, 1999, by Saurabh Agarwal, Alok Agarwal, Harpal Singh Bassali, Jatin Chhugani, and Pradeep Kumar Dubey for “Compression-Tolerant Watermarking Scheme for Image Authentication” and assigned to a common assignee herewith. The disclosure of application Ser. No. 09/273,055 is incorporated herein by reference.
US Referenced Citations (7)