US7457431B2ExpiredUtilityA1

System and method for robust reversible data hiding and data recovery in the spatial domain

78
Assignee: NEW JERSEY TECH INSTPriority: Dec 5, 2003Filed: Dec 3, 2004Granted: Nov 25, 2008
Est. expiryDec 5, 2023(expired)· nominal 20-yr term from priority
H04N 5/913H04N 19/467H04N 2201/3281H04N 1/32309G06T 2201/0203H04N 1/32251H04N 21/2541G06T 1/005G06T 2201/0061G06T 9/00G06T 1/0028H04N 2201/3284G06T 2201/0051G06K 19/06H04N 21/835G06T 2201/0065H04N 19/63H04N 1/32208H04N 21/8358H04N 2005/91307H04N 21/4405
78
PatentIndex Score
19
Cited by
25
References
50
Claims

Abstract

A method including identifying at least two subsets of pixels within a block of an image; forming a plurality of pixel groups from the at least two subsets of pixels, each pixel group having at least one pixel from a first of the at least two subsets and at least one pixel from a second of the at least two subsets; producing a plurality of difference values, each pixel group providing one of said difference values, each difference value being based on differences between pixel values of pixels within one of the pixel groups; and modifying pixel values of pixels in less than all of the at least two subsets, thereby embedding a bit value into the block.

Claims

exact text as granted — not AI-modified
1. A method, comprising:
 identifying at least two subsets of pixels within a block of an image; 
 forming a plurality of pixel groups from said at least two subsets of pixels, each said pixel group having at least one pixel from a first of said at least two subsets and at least one pixel from a second of said at least two subsets; 
 producing a plurality of difference values, each said pixel group providing one of said difference values, each said difference value being based on differences between pixel values of pixels within one of said pixel groups; and 
 modifying pixel values of pixels in less than all of said at least two subsets, thereby embedding a bit value into said block; and 
 calculating a block difference value for said block of said image, said block difference value being equal to an average of said plurality of difference values. 
 
     
     
       2. The method of  claim 1  wherein said less than all subsets consists of only one subset. 
     
     
       3. The method of  claim 1  wherein said modifying causes a logical- 1  bit value to be embedded into said block. 
     
     
       4. The method of  claim 1  further comprising:
 identifying a contrast status of said block; and 
 customizing said modifying according to said contrast status. 
 
     
     
       5. The method of  claim 4  wherein said identifying said contrast status comprises:
 identifying a status of a histogram of said block. 
 
     
     
       6. The method of  claim 5  wherein said identifying said contrast status comprises:
 identifying a block difference value for said block, said block difference value being equal to an arithmetic average of said difference values. 
 
     
     
       7. The method of  claim 4  further comprising:
 employing error correction coding to correct any bit errors in said block. 
 
     
     
       8. The method of  claim 1  wherein said at least two subsets comprises exactly two subsets and said pixel groups all include exactly two pixels and wherein said producing comprises:
 setting each said difference value equal to a difference in pixel values between said exactly two pixels of each said pixel group. 
 
     
     
       9. The method of  claim 1  wherein said at least two subsets comprises only said first subset and said second subset and said block comprises a checkerboard distribution pattern of pixels of said first subset and said second subset. 
     
     
       10. The method of  claim 1  further comprising:
 changing said block difference value by a shift quantity. 
 
     
     
       11. The method of  claim 10  wherein said shift quantity has a predetermined magnitude. 
     
     
       12. The method of  claim 10  wherein said changing said block difference value causes a bit value to be embedded in said block of said image. 
     
     
       13. The method of  claim 10  further comprising:
 establishing a difference value threshold. 
 
     
     
       14. The method of  claim 13  wherein said shift quantity exceeds a magnitude of said difference value threshold. 
     
     
       15. The method of  claim 10  wherein said changing said block difference value comprises:
 embedding a logical-1 bit value in said block of said image. 
 
     
     
       16. The method of  claim 15  wherein said embedded bit value is recoverable. 
     
     
       17. The method of  claim 15  wherein said embedding comprises:
 concealing said bit value in said block of said image. 
 
     
     
       18. The method of  claim 15  wherein said embedding comprises:
 providing at least a portion of a digital signature in said block of said image. 
 
     
     
       19. The method of  claim 1  wherein said pixel values are gray-scale values. 
     
     
       20. The method of  claim 1  wherein said pixel values comprise chromatic information. 
     
     
       21. A method, comprising:
 dividing a block of an image into at least two subsets of pixels, the block including an embedded bit value; 
 forming a plurality of pixel groups from said at least two subsets of pixels, each said pixel group having at least one pixel from a first of said at least two subsets and at least one pixel from a second of said at least two subsets; 
 producing a plurality of difference values, each said pixel group providing one of said difference values, each said difference value being based on differences between pixel values of pixels within one of said pixel groups; 
 extracting said embedded bit value from said block; 
 restoring said pixel values to a condition of said pixel values prior an introduction of said embedded bit value, said restoring comprising maintaining pixel values of pixels in at least one of said subsets unchanged; 
 identifying a contrast status of said block, wherein said identifying said contrast status further comprises identifying a block difference value for said block; and 
 customizing said extracting according to said contrast status. 
 
     
     
       22. The method of  claim 21  wherein said extracting comprises:
 extracting a logical-1 bit value from said block if said block difference value exceeds a difference value threshold. 
 
     
     
       23. The method of  claim 21  wherein said extracting comprises:
 extracting a logical-0 bit value from said block if said block difference value is less than a difference value threshold. 
 
     
     
       24. The method of  claim 21  further comprising:
 customizing said restoring according to said contrast status. 
 
     
     
       25. The method of  claim 21  wherein said identifying said contrast status further comprises:
 identifying a status of a histrogram of said block. 
 
     
     
       26. The method of  claim 21  further comprising:
 employing error correction decoding to correct any error in said extracted embedded bit value. 
 
     
     
       27. A method, comprising:
 identifying at least two subsets of pixels within a block of an image; 
 forming a plurality of pixel groups from said at least two subsets of pixels, each said pixel group having at least one pixel from a first of said at least two subsets and at least one pixel from a second of said at least two subsets; 
 producing a plurality of difference values, each said pixel group providing one of said difference values, each said difference value being based on differences between pixel values of pixels within one of said pixel groups; 
 calculating an initial block difference value for said block of said image, said initial block difference value being equal to an average of said plurality of difference value; and 
 establishing a final block difference value for said block of said image based on one of a logical-0 bit value and a logical-1 bit value indicated for inclusion in said block, said establishing comprising leaving pixel values for pixels within at least one of said subsets unchanged. 
 
     
     
       28. The method of  claim 27  wherein said establishing said final block difference value comprises:
 changing said initial block difference value by a shift quantity, thereby embedding a logical-1 bit value in said block of said image. 
 
     
     
       29. The method of  claim 28  wherein said changing said initial block difference value comprises:
 changing pixel values of pixels within only one of said subsets. 
 
     
     
       30. The method of  claim 27  wherein said establishing said final block difference value comprises:
 leaving said initial block difference value unchanged, thereby embedding a logical-0 bit value in said block of said image. 
 
     
     
       31. An apparatus, comprising:
 a computing system having at least one processor capable of operative communication with a main memory; and 
 a local memory coupled to each of said at least one processor, wherein said computing system is operable to:
 identify at least two subsets of pixels within a block of an image, 
 form a plurality of pixel groups from said at least two subsets of pixels, each said pixel group having at least one pixel from a first of said at least two subsets and at least one pixel from a second of said at least two subsets, 
 produce a plurality of difference values, each said pixel group providing one of said difference values, each said difference value being based on differences between pixel values of pixels within one of said pixel groups; and 
 modify pixel values of pixels in less than all of said at least two subsets, thereby embedding a bit value into said block; 
 wherein said computing system is further operable to identify a contrast status of said block and customize said modifying according to said contrast status, 
 wherein said operability to identify said contrast status further comprises:
 operability to identify a status of a histogram of said block, 
 
 wherein said operability to identify said contrast status comprises:
 operability to identify a block difference value for said block, said block difference value being equal to an arithmetic average of said difference values. 
 
 
 
     
     
       32. The apparatus of  claim 31  wherein said less than all subsets consists of only one subset. 
     
     
       33. The apparatus of  claim 31  wherein said operability to modify is operable to cause a logical-1 bit value to be embedded into said block. 
     
     
       34. The apparatus of  claim 31  wherein said computing system is further operable to:
 employ error correction coding to correct any bit errors in said block. 
 
     
     
       35. An apparatus comprising:
 a computing system having at least one processor capable of operative communication with a main memory; and 
 a local memory coupled to each of said at least one processor, wherein said computing system is operable to:
 divide a block of an image into at least two subsets of pixels, the block including an embedded bit value; 
 form a plurality of pixel groups from said at least two subsets of pixels, each said pixel group having at least one pixel from a first of said at least two subsets and at least one pixel from a second of said at least two subsets; 
 produce a plurality of difference values, each said pixel group providing one of said difference values, each said difference value being based on differences between pixel values of pixels within one of said pixel groups; 
 extract said embedded bit value from said block; and 
 restore said pixel values to a condition of said pixel values prior an introduction of said embedded bit value, said restoring comprising maintaining pixel values of pixels in at least one of said subsets unchanged; 
 identify a contrast status of said block, wherein said identify said contrast status further comprises: 
 operability to identify a block difference value for said block; and 
 customize said extracting according to said contrast status. 
 
 
     
     
       36. The apparatus of  claim 35  wherein said operability to extract comprises:
 operability to extract a logical-1 bit value from said block if said block difference value exceeds a difference value threshold. 
 
     
     
       37. The apparatus of  claim 35  wherein said operability to extract comprises:
 operability to extract a logical-0 bit value from said block if said block difference value is less than a difference value threshold. 
 
     
     
       38. The apparatus of  claim 35  wherein said computing system is further operable to:
 customize said restoring according to said contrast status. 
 
     
     
       39. The apparatus of  claim 35  wherein said operability to identify said contrast status comprises:
 operability to identify a status of a histogram of said block. 
 
     
     
       40. The apparatus of  claim 35  wherein said computing system is further operable to:
 employ error correction decoding to correct any error in said extracted embedded bit value. 
 
     
     
       41. A computer-readable storage medium containing an executable program, the executable program being operable to cause a computing system to execute actions including:
 identifying at least two subsets of pixels within a block of an image; 
 forming a plurality of pixel groups from said at least two subsets of pixels, each said pixel group having at least one pixel from a first of said at least two subsets and at least one pixel from a second of said at least two subsets; 
 producing a plurality of difference values, each said pixel group providing one of said difference values, each said difference value being based bon differences between pixel values of pixels within one of said pixel groups; and 
 modifying pixel values of pixels in less than all of said at least two subsets, thereby embedding a bit value into said block, 
 identifying a contrast status of said block, wherein said identifying said contrast status further comprises: 
 identifying a status of a histogram of said block, 
 identifying a block difference value for said block, wherein said block difference value being equal to an arithmetic average of said block difference values; and 
 customizing said modifying according to said contrast status. 
 
     
     
       42. The computer-readable storage medium of  claim 41  wherein said less than all subsets consists of only one subset. 
     
     
       43. The computer-readable storage medium of  claim 41  wherein said modifying causes a logical-1 bit value to be embedded into said block. 
     
     
       44. The computer-readable storage medium of  claim 41  wherein said executable program is operable to cause said computing system to execute the further action of:
 employing error correction coding to correct any bit errors in said block. 
 
     
     
       45. A computer-readable storage medium containing an executable program, the executable program being operable to cause a computing system to execute actions including:
 dividing a block of an image into at least two subsets of pixels, the block including an embedded bit value; 
 forming a plurality of pixel groups from said at least two subsets of pixels, each said pixel group having at least one pixel from a first of said at least two subsets and at least one pixel from a second of said at least two subsets; 
 producing a plurality of difference values, each said pixel group providing one of said difference values, each said difference value being based on differences between pixel values of pixels within one of said pixel groups; 
 extracting said embedded bit value from said block; 
 restoring said pixel values to a condition of said pixel values prior an introduction of said embedded bit value, said restoring comprising maintaining pixel values of pixels in at least one of said subsets unchanged 
 identifying a contrast status of said block, wherein said identifying said contrast status further comprises identifying a block difference value for said block; and 
 customizing said extracting according to said contrast status. 
 
     
     
       46. The computer-readable storage medium of  claim 45  wherein said extracting comprises:
 extracting a logical-1 bit value from said block if said block difference value exceeds a difference value threshold. 
 
     
     
       47. The computer-readable storage medium of  claim 45  wherein said extracting comprises:
 extracting a logical-0 bit value from said block if said block difference value is less than a difference value threshold. 
 
     
     
       48. The computer-readable storage medium of  claim 45  wherein the executable program is operable to cause a computing system to execute the further actions of:
 customizing said restoring according to said contrast status. 
 
     
     
       49. The computer-readable storage medium of  claim 45  wherein said identifying said contrast status comprises:
 identifying a status of a histogram of said block. 
 
     
     
       50. The computer-readable storage medium of  claim 45  wherein the executable program is operable to cause a computing system to execute the further action of:
 employing error correction decoding to correct any error in said extracted embedded bit value.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.