CA2188050A1 - Data embedding - Google Patents
Data embeddingInfo
- Publication number
- CA2188050A1 CA2188050A1 CA002188050A CA2188050A CA2188050A1 CA 2188050 A1 CA2188050 A1 CA 2188050A1 CA 002188050 A CA002188050 A CA 002188050A CA 2188050 A CA2188050 A CA 2188050A CA 2188050 A1 CA2188050 A1 CA 2188050A1
- Authority
- CA
- Canada
- Prior art keywords
- data
- host
- values
- host data
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/08—Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0021—Image watermarking
- G06T1/0028—Adaptive watermarking, e.g. Human Visual System [HVS]-based watermarking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N1/32101—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
- H04N1/32144—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title embedded in the image data, i.e. enclosed or integrated in the image, e.g. watermark, super-imposed logo or stamp
- H04N1/32149—Methods relating to embedding, encoding, decoding, detection or retrieval operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N1/32101—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
- H04N1/32144—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title embedded in the image data, i.e. enclosed or integrated in the image, e.g. watermark, super-imposed logo or stamp
- H04N1/32149—Methods relating to embedding, encoding, decoding, detection or retrieval operations
- H04N1/32203—Spatial or amplitude domain methods
- H04N1/32251—Spatial or amplitude domain methods in multilevel data, e.g. greyscale or continuous tone data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N1/32101—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
- H04N1/32144—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title embedded in the image data, i.e. enclosed or integrated in the image, e.g. watermark, super-imposed logo or stamp
- H04N1/32149—Methods relating to embedding, encoding, decoding, detection or retrieval operations
- H04N1/32309—Methods relating to embedding, encoding, decoding, detection or retrieval operations in colour image data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2201/00—General purpose image data processing
- G06T2201/005—Image watermarking
- G06T2201/0051—Embedding of the watermark in the spatial domain
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2201/00—General purpose image data processing
- G06T2201/005—Image watermarking
- G06T2201/0083—Image watermarking whereby only watermarked image required at decoder, e.g. source-based, blind, oblivious
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N2201/3201—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
- H04N2201/3225—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document
- H04N2201/3233—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document of authentication information, e.g. digital signature, watermark
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N2201/3201—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
- H04N2201/3269—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of machine readable codes or marks, e.g. bar codes or glyphs
- H04N2201/327—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of machine readable codes or marks, e.g. bar codes or glyphs which are undetectable to the naked eye, e.g. embedded codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N2201/3201—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
- H04N2201/3274—Storage or retrieval of prestored additional information
Abstract
A method of embedding auxiliary information into a set of host data, such as a photograph, television signal, facsimile transmission, or identification card. All such host data contain intrinsic noise, allowing pixels in the host data which are nearly identical and which have values differing by less than the noise value to be manipulated and replaced with auxiliary data. As the embedding method does not change the elemental values of the host data, the auxiliary data do not noticeably affect the appearance or interpretation of the host data. By a substantially reverse process, the embedded auxiliary data can be retrieved easily by an authorized user.
Description
~ WO 96/26494 2 i 8 8 05 0 PCTIUS96102357 DATA EMBEDDING
FIE~D OF THE INVENTION
The present invention generally relates to digital manipulation of numerical data and, more specifically, to the embedding of external data into existing data fields.
This invention was made with Government support under=
Contract No. W-7405-ENG-36 awarded by the U.S. Department of Energy. The Government has certain rights in the invention.
The use of data in digital form is revolutionizing communication throughout the world. Much of this digital communication is over wire, microwaves, and fIber optic media. Currently, data can be transmitted flawlessly over land, water, and between satellites. Satellites in orbit allow communication virtually between any two points on earth, or in space.
In many situations, it may be of benefit to send particular secondary data along with the primary data.
Secondary data could involve the clQsed captioning of television programs, identification information associated with photographs, or the sending of covert information with facsimile transmissions. Such a technique is suited also for~ use as a digital signature verifying the origin and authenticity of the primary data.
Data in digital form are transmitted routinely using wide band communications channels. Communicating in digital fashion is facilitated greatly by error-correcting software and hardware protocols that provide absolute data fidelity.
These communication systems ensure that the digital bit stream transmitted by one station is received by the other station unchanged.
SUBSTITUTE SHEET (RULE 26) W096/26494 ~ ~880so PCr/US96/02357 However, most digital data sources contain redundant information and intrinsic noise.~ ~ An example is a digital image generated by scanning a photograph, an original work of electronic ~art, or a digitlzed video signal. In the 5 scanning or digltal production process of such images, noise is introduced in the digital rendition. Additionally, image sources, such as photographic images and identification cards, contain noise resulting from the grain struc~ture of the film, optical aberrations, and subject motion. Works of 10 art contain noise which is introduced by brush str4kes, paint texture, and artistic license.
Redundancy is intrinsic to digital imaqe ~ data, because any particular numerical value o:~ the digital intensity exists in many different parts of the image. For example, a 15 given grey-level may exist in the image of~ trees,~sky, people or 4ther objects. In any digital image, the same or similar numerical picture element, or pixel value, may represent a variety of image content. This means that pixels having similar numerical values and frequency of -20 occurrence in different parts of an image can beinterchanged freely, without noticeably altering the appearance of the image or the statistical frequency of occurrence of the pixel values. -=
Redundancy also occllrs in most types of digital 25 information, whenever the same values are present more than once in the stream of numerical values representing the information. For a two-color, black and white FAX image, noise consists of the presence or absence of a black or white pixel value. Documents scanned into black and white SUBSTITUTE SHEET (RULE 26) Wo 96/26494 2 ~ 8 8 0 5 0 PCTrUS96/02357 BIT~P~ format contain runs of successlve black ~1) and white ( 0 ) values . Noise in these images introduces a variation in the length of a pixel run. Runs of the same value are present in many parts of the black and white 5 image, in different rows. This allows the present invention also to be applied to facsimile transmissions.
The existence of noise and redundant pixel information in digital data permits a process for implanting additional information in the noise component of digital data. Because 10 of the fidelity of current digital communication systems, the implanted information is preserved in transmission to the receiver, where it can be extracted. The embedding of information in this manner does not increase the bandwidth re~uired for the transmission because the data implanted 15 reside in the noise component of the host data. One may convey thereby meaningful, new information in the redundant noise component of the original data without it ever being detected by unauthorized persons.
It is therefore an object of the present invention to 20 provide apparatus and method for embedding data into a digital information stream so that the digital information is not changed significantly.
It is another object of the present invention to provide apparatus and method for thwarting unauthorized 25 access to information embedded in normal digital data.
Additional objects, advantages and novel features of the invention will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following or may "
SUBSTITUTE SHEET (RULE 26) ~ ~ 8~os~ ~ -Wo 96/2649~ PCT/US96J02357 be learned by practice of ~ the invention. The objects and advantages of the invention may be reali7ed and attained by means of the instrumentalities and combinations particularly pointed out in the appended claims.
BACKGRO~I~ OF T~IF Tl~VENTION
Additional objects, advantages and novel features of =the invention will be set forth in part in the description which follows, and in part will become ~apparent to those skilled in the art upon examination of the following or may be learned by practice of the i~vention. The objects and advantages of the invention may be realized and attained by means of the instrumentalities and co~binations particularly pointed out in the appended claims.
SUMMARY OF THE INVENTION
In accordance with the purposes of the present invention there is provided a method of embedding A~ ?ry data into host data comprising the steps of creating a digital representation of the host data consisting of elements having numerical values and cnnt;3;n;n~ a-noise component; creating a digital ;representation of the ry data i~ the form of a sequence of bits; evaluating the rLoise component of the digital representation of the host data; comparing elements of =the host data with the noise component to determine pairs of the host elements 25 having numerical values which differ by less than said value of said noise component; and replacing individual values of the elements with substAnt;~lly equivalent values :from said pairs of elements in order to embed individual bit values of the auxiliary data corresponding~to the sequence of bits of SUBSTITUTE SHEET(RULE 26) Wo 96l26494 2 1 8 8 0 5 0 PcT/US96102357 S
the ~llx;l;;~ry data; and outputting the ho~t data with the auxiliary data embedded into the host data as a f ile .
In aeeordanee with the purposes of the present invention there is f urther provided a method of extraeting embedded auxiliary data from ho~t data cnn~;l;n;ng a noise nn~pnnf~nt eomprising the steps of extraeting from the host data a bit sequenee indieative of the embedded AllX; l; i: ry data, and whieh allows for verifieation of the host data;
interpreting the host data-elernent pairs whieh differ by less than the value of the noise component and which correspond to bit values of the ~llX; 1; ~3ry data; identifying the auxiliary data bit sequenee eorresponding to the pair values; and extraeting the ~llx;l;~ry data as a file.
BRIEF DES~RIPTIO~ QF THE DRAWI~GS
~he accompanying drawings, which are incorporated in and form a part of the speeification, illustrate the embodiments of the present invention and, together with the description, serve to explain the principles of the invention. In the drawings:
FIGURE 1 is a block diagram illustrating the proeesses used in the embedding and extractior of data from a host.
FIGURE 2 is a partial listing of computer code used for determining host data pairs having similar values and for con~erting RGB cDmponents to HSI components.
FIGURE 3 is a partial listing of computer code used for eliminating duplicate host data pairs.
FIGURE 4 is a partial listing of computer code which, for Trueeolor images, introduees a eonstraint on the frequeney of oecurrence of host data palrs that minimizes the effect of embedding on the host data histogram.
SUBSTITUTE SHEET (RULE 26) alssO~5c, Wo 96~26494 PCrNS96/02357 FIGUl~E 5 is a partial listing of compute=r code that performs the actual embedding of ~auxiliary data into the host data, including the considerable information which is necessary to manipulate the data in the header 5 information, auxiliary bit-stream, and the host data files.
FIGURE ~ is a partial listing of computer code that analyzes the lengths of runs in a row of pixels in two-color facsimile host data.
FIGURE 7 is a partial listing of computer code whose 10 purpose is to ensure that the first pixel in a PACKET-START
data row starts in aF~ even column number. The location of the first pixel in the row fIags the start of the data packets.
FIGURE 8 is a partial listing of computer code for 15 embedding data into two-colo~ host images, such as facsimile transmissions .
DETAILED DESCRIPTION _ The present invention allows~ data to be embedded into a digital transmission or image without naturally discernible 20 alteration of the content and meaning ~of the transmission or image. This is made possible because of the techni~ue of the present invention, in which similar pixel values in a set of digital host data are re-ordered according to the desired embedded or implanted information. The host data 25 image examples are represented in the MICROSOFT~19 BITMAP~
(.BMP) format, so that the resulting image contains the embedded auxiliary information without that information being readily discernible. ~ ~
SUBSTITUTE SHEET(RULE 26) ~ W096l26494 2 ! 8 8 0 5 0 I_llu~ 6 A7~7 The MICROSOFT~) BITMAP~ image format is a public-domain format supporting images in the Truecolor, color palette, grey-scale, or black and white representations. Truecolor images have 24-bits per pixel element, with each byte of the 5 pixel element representing the intensity of the red, green, and blue (RGB) color component. Color palette images contain a table of the permitted RGB values. The pixel value in a color palette image is an index to this table.
Grey-scale images qive the numerical intensity of the pixel lO values. Black and white representation assigns either zero or one as one of the two possible pixel values. The invention will be made understandable in the context of the BITMAP~ image types by reference to the following description .
At the point when most sensory obtained information is represented in digital form, whether it be from video, photographs, laboratory measurements, or facsimile transmissions, the digital data contain intrinsic noise and redundant information which can be manipulated to carry 20 extra information. Through use of this invention, the extra information also can be extracted easily by an authorized and enabled receiver of the data.
Redundancy in digital image data occurs when a particular numerical value of the digital intensity exists 2~ in many different parts of the image. Redundancy is found commonly in images because a given grey-level exists in the rendition of trees, sky, clouds, people, and other objects.
The presence of noise in digital images permits the picture elements, pixeIs, to vary slightly in numerical value. For SUBSTITUTE SHEET (RULE 26) a1 saoso Wo 96/26494 r~l~rJ~, ' 8-bit digital data, the pixel numerical values range from 0-255. As the pixels having the same or similar numerical values represent a variety of image content, many values in r~i ff,~rr?nt locations of an image can be interchanged frPely.
5 The image appearance and the statistical frequency of occurrence ~f a particular pixel value are affected little by the interchanging of the spatial position of pixels close in numerical value.
Initially, from the original dlgital data (hereinafter 10 often referred to as the "host" data~, the present invention first converts the host data to digital form, if necess= ry, and then creates an image hlstogram to show the probability density of numerical pixel values occurring in the image.
The number ~of. times a particular pixel value occurs in ~he 15 image is plotted Yersus the value. For 8-bit di4ital data, the pixel Yalues range from 0-255. Of course, the lever of noise in an image will depend on the source of ~he data with different noise levels expected between photos, original artwork, digital audio, video, and facsimile 2~ transmissions. -~
The actual embedding of the auxiliary data into thehost data is a three-part process, the basic steps of which are illustrated in Figure ~. First, an estimate of the noise component of the host data is determined and used in 25 combination with an analysis of a histogram of the host data numerical values to identify pairs of values in the host data that occur with approximately the same statistical~
frequency, and that differ in value by less than the value of the noise component. Second, the position of occurrence 5UBSTITUTE SHEET (RULE 26) wo 96/2649~ 2 ~ 8 8 3 5 0 PCTNS96/0~357 of the pair values found is adjusted to embed the bitstream of the auxiliary information set. Third, the identified pairs of values in the host data are used to create a key f or the extraction of the embedded data .
Extracting embedded data inverts this process. The key placed in the image in the embedding phase specifies the pair-values which contain the embedded auxiliary information. With the pair-values known, extraction consists of recreating the auxiliary data according to the 10 positions of pixels having the pair-values given in the key.
The key data are used first to extract header information.
The header information specifies the length and the file name of the auxiliary data, and serves to validate the key.
If the image containing embedded information has been 15 modified, the header information will not extract data correctly. However, successful extraction recreates the auxiliary data exactly in an output file.
The principle of data embedding according to the present invention involves the rearrangement of certain host 20 data values in order to encode the values of the extra data which is to be added. For the purposes of this description of the invention, consider a host data set represented by 8 bits of binary information, with values ranging between 0 and 255 bits for each host data sample. Further, assume 25 that the noise value, N, for a signal, S, is given by N=~S/10, or approximately 10% of the signal value. For many data, the noise component can be approximated by a constant value or percentage, such as the 10% value used for this SUBSTITUTE SHEE~ (RULE 26) ,~11 8~3o5 0 description. Two values in the host data, di and dj, are within the noise value if ~
¦d, -d,¦ = < N 10 The frequency of occurrence or histogram value of a cer~ain value, di, is f ~di) . Data values meeting the criteria of Equation 10, and occurring in the host data wlth frequency of occurrence f (di) -f (dj) < ~, where ~ is the tolerance lO imposed for statistical equality, are candidates for =
embedding use. The values, di and dj, constitute~ a pair of data values, Pk. There are k=0, 1, 2, . . .Np such pairs in the host data set, giving a total number of embedding bits, Mk, for each pair:
~ ~ ~ ~ =
M~=~f(dj)+~f(dj) 20 where the summations fol i and j run to the limits of the frequency of occurrence in the data set, f (di) and f ~dj), 20 for the respective data values It is now helpful to refer to Figure 2, wherein a partial listing of computer code= in the C-1anguage is printed. The determination of the host data pixel pair values, di and dj, in Equation 1~, is acc mplished through 25 the code listed in Figure 2. In Figure 2, these 8 bit values are interpreted as indices in a color palette table The comparison indicated in Equation lO is therefore ~
required to be a comparison between the corresponding colors SUBSTITUTE SHEET (RULE 26) ~ Wo 96l26494 2 1 8 8 ~ 5 ~ PCT/US9610235'7 in the palette Entries in the color palette are Red, Green, and Blue (RGB) color-component values, each within the range of 0-255.
~f additlonal information is desired on the format used 5 for BITMAP(!~ images, reference should be made to two sources.
One is the book, F_, 'n~ for ~: ~.rhi~.: Files, by J.
Levine, 1994 (J. Wiley & Sons, New York) . The other is a technical article, "The BMP Format, " by M. Luse, Dr Dobb's JoYrnall Vol. 19, Page 18, 1994.
The code fragment in Figure 2 begins at line 1 with a loop running over the number of colors in the palette. The loop index, i, is used to test each palette color against all other entries, in sequence, to identify pairs of color entries meeting the criteria established by Equation 10.
15 Each color identified in the i-loop then is tested against all other colors in the palette by a second loop using another index, j, starting at line 16. Line 7 provides a modification for~images which have a palette for greyscale instead of colors. For greyscale images, the RGB components 20 are identical for each palette entry, although some grey scale formats include a 16-color table as well.
The comparison indicated in Equation 10 is made by converting the Red, Green, and Blue (RGB) color component values to corresponding Hue, Saturation, and Intensity (HSI) 25 color components. Line 12 uses a separate routine, rgbhsi (), to effect this conversion. Line 20 converts RGB
color component values in the j-loop to HSI data structure components, and line 21 calculates the color difference in the HSI system. Line 24 then implements the test required SUIISTITUTE SHEET(RULE 26) a ~88 Wo 96l26494 S ~ ~ 7 ~
1~ _ by Equation 10. If. the color difference ls less:than a~
fixed noise value (COLOR_NOISE=10 in the listing of Figure 2), the intensity difference is tested to determine if the two palette entries are acceptable as differlng by less than 5 the noise value specified. Two additional constraints are imposed before ~ccepting the entries as candidate pair ~
values. First, the difference in color is r~equlred to= be the smallest color difference between the test ~i-loop) value, and all the other (j-loop) values. Second, the 10 number of pairs selecte~ (k) must be less than half the number of columns in a row of pixels in the image, in order .
for the pair-value key to be stored in a single row of pixels. This is an algorithmic constraint, and is not required by the invention.
A data-structure array, pair[~, is used~ to hold the values of candidate pairs (i, j ) and thelr total frequency of occurrence, Mk. If the image is a greyscale palette, the test at line 35 is used to forc~ comparison of only the intensity of the two palette entries. Greyscale~images do 20 not require the RGB to HSI conversion made for color palettes.
The embedding process of the present invention ignores dif ferences in the saturation component of color=palette entries because saturation is ordinarily not noticeable in a 25 color image. Only the Hue and Intensity components are constrained to fall within fixed noise limits to determine the palette pair values.
Pixel pair values found by the code listed in Figure 2 include generally redundant values. The same pixel value, S~ IITUTESHEET(R~
Wo 96/26494 2 1 8 8 0 ~ O PCT/U5961023s7 i, is found in several diierent pair coTnbinations. secause multiple pairs cannot contain the same palette entry, due to each pair combination of pixel values having to be unique, it is necessary- to eliminate some pairs. The number of 5 pairs located by applying the criterion of Equation 10 is stored in the variable, no_pairs, in line 51.
Referring now to Figure 3, the code fragment listed therein illustrates the manner in which duplicate pairs are eliminated by a separate routine. Eirst, the histogram of 10 the image is used to calculate the :total number of occurrences in each pair, as requlred by Equation 20, above.
Line 1 shows the i-loop used to calculate the value, Mk, for each pair. Next, the pairs are sorted according to decreasing order of the pair [ ] . count data-structure member 15 in line 5. The elimination of duplicates in the following line retains the pairs, Pk, having the largest total number of frequency values, Mk. Line 10 and the lines following calculate the total number of bytes that can be embedded into the host data using the unique pixel pairs found by 20 this code fragment.
Sorting the pair values in decreasing order of value, Mk, minimizes the number of pairs required to embed a particular auxiliary data stream. However, the security of the embedded data is lncreased significantly if the pair 25 values are arranged in random order. Randomizing the pair-value order is part of this invention. This is accomplished by rearranging the pair-values to random order by calculating a data structure having entries for an integer~
index pts[k].i, k=0,1,2,..., no_pairs; and pts[k].gamma=~o, SUBSTITUTE SHEET (RULE 26) a~ssO~O
Wo 96/26494 r~ A7~7 r~ no p~3irs~ where the ~ir values are random. Sorting the data structure, pts [], to put the random values in ascending order r~ntir1mi 7~.5_ the index values . The random index values are used with the pair-values calculated as 5 indicated above, to re-order the table to give random pair-value ordering.
The algorithm described for=palette-format images -permits manipulating pixel values without~ regard~ to the individual frequency of occurrence. Reference should now be 0 made to Figure 9 where another code fraqment is listed in which, for TruecQlQr images, a constraint is introduced Dn the frequency of occurrence that minimizes the effect of embedding on the host data histogram.
Truecolor images c~nsist of three individual 8-bit 15 greyscale images,~ one each for the red, green, and blue image components. Truecolor= images have no color palette.
The possible combinations of the three 8-bit components give approximately 16 million colors.~ The present invention embeds data into Truecolor images by treating each RGB color=
20 component image separately. The effect of emoedaing on the composite image color is the,ref Qre within the noise Yalue of the individual color intensity components.
In Figure 4, the ip-loop starting in line 2 refers -to the color plane ~ip=0,1,2 for R,G,B). The frequency of 25 occurrence of each numerical value (0 through 255) is given in the array, hist values [ ], with the color plane histograms ., offset by the quantity, ip~25~, in line 7. The variable, fvalue[], holds the floating point histogram values for=
color-component, ip. Line ll begins a loop to constrain the SUBSTITUTE SHEET (RULE 26) W096,264g4 21 8895D PCr/Uss6/02357 pairs selected for nearly equal frequency of occurrence.
Pixel intensities within the noise limit, RANGE, are selected for comparison of: statistical frequency. The tolerance, ~, fQr statistical agreement is fixed at 5g in 5 line 17. This tolerance could be adjusted for particular applications.
After all possible values are tested for the constraints of noise and statisticaI frequency, the pairs found are sorted in line 27, the duplicates are removed, the 10 starting index is incremented in line 31, and the search continued. A maximum number of pairs aga~-n is set by the algorithmic constraint that the i and j pair values must be less than one-half the number o~ pixels in an image row. As with palette-format images, the security of the invention 15 includes randomizing the pair-value entries.
Applying the statistical constraint minimizes the host image effects of embedding the auxiliary data. If the tolerance, ~, is set at 0, each pai~ chosen will contain data values less than the noise value in intensity 20 separation, and occurring with exactly the same statistical frequency. Setting the tolerance at ~-5g, as in the code fragment of Figure ~, permits the acceptance of pixel pairs that are close in frequency, while still preserving most of the statistical properties of the host data. Few, if any, 25 pairs might be found by requiring exactly the same frequency of occurrence.
The actual embedding of auxiliary data lnto a set of host data consists of rearranging the order of occurrence of redundant numer~cal values. The pairs of host data values SUBSTITUTE SHEET (RULE 26) ~ ~ 8~ )5 WO 96/26494 PCTIUS96/023~7 found by analysis are the pixel values used to e~Lcode the bit-stream of the auxili~ry data into the host data. It is important to reali~P that the numerical values used for embedding are the values already occurring in the host data.
5 The embedding process of the current invention does not alter the number or quantity of the numerical values in the host data.
In the embedding process of the present invention, the host data are processed sequentially. A first pass through 10 the host data examines each value and tests for a match with the pixel-pair values. Matching values in the host data are initiali~ed to the data-structure value, pair[k] .i, for k=0, 1, 2. . .Np. This step initializes the host BITMAP~ image (Figure 1) to the pair values corresponding to zeroes in the 1~ auxiliary data. A second pass through the auxiliary data examines the sequential bits of the data to be embedded, and sets the pair-value of the host data element to the value i or ~, according to the auxiliary~bit value to be embedded If the bit-stream being embedded is random, the host data 20 pair-values, i and j, occur with equal frequency in the host image after the embedding process is completed.
Figure ~ illustrates the code fragment that performs the actual embedding, including the considerable information which is necessary to manipulate=the data in the header 2~ information, auxiIiary bit-stream, and the host data files.
.ines 1-12 allocate memory and initiaIize variables. The header and bit-stream data to be ~embedded are denoted the "data-image," and are stored in the array, data_row[] . The host data are denoted the "image-data "
SUBSTITUTE SHEET (RULE 26) ~ W096l26494 2 1 880~;~ PcTlu596/02357 The index, li, is used in a loop beginning at line 12 to count the byte position in the data-image. The loop begins with li=-51~ because header information is embedded before the data-image bytes. Line 14 contains the test for 5 loading data_row[~ with the header infQrmation. Line 20 contains the test for loading data_row[~ with bytes from the data-image file, tape5.
Line 30 starts a loop for the bits within a data-image byte. The variable, bitindex=(0,1,2...7), counts the bit 10 position within the data-image byte, data_row[d_inrow], indexed by the variable, d_inrow. The variable, lj, indexes the byte (pixel) in the host image. The variable, inrow, indexes the image-data buffer, image_row[inrow]. Line 32 tests for output of embedded data (a completed row of 15 pixels) to the image-data file, and line 40 tests for completion of a pass through the image-data. One pass through the image-data is made for each of the pixel pairs, pair[k~, k=0,1,2...Np.
In line 47, the pair index is incremented. A temporary 20 palr data-structure variable named "pvalue" is used to hold the working pair values of the host data pixels being used for embedding. Line 60 provides for refreshing the image-data buffer, image_row.
The embedding test is made at line 72. If the 25 image_row[inrowl content equals the pair value representing a data-image bit of zero, no change is made, and the image-data value remains pvalue. i . However, if the bit-stream value is one, the image-data value is changed to equal pvalue. j . Line 84 treats the case for image-data values not SUBSTITUTE SHEET (RULE 26) ,31880sf~ - `
Wo 96l26494 PCT/US96102357 equal to the embedding pair value, pvalue.i. In this case, the bitindex variable is decremented, because the data-image bit is not yet embedded, and the image-data indices are incremented to examine the next host data value.
The extraction of embedded data is accomplished by reversing the process used to embed the auxiliary data-image bit-stream. A histogram analysis of the embedded image-data set will reveal the candidate pairs for~ extraction for only the case where the individual statistical frequencies are unchanged by the embedding process. In the listings of Figures 2-5, the statistical frQquencies are changed slightly by the embedding proce~s. The pair table used for embedding can be recreated by analysis of the original image-data, but it cannot generally be recovered .e~cactly f rom the embedded image-data .
Additionally, as described above, the invention includes randomizing the order of the pair-values, thereby increasing greatly the amount~ of ~analysis needed to extract the embedded data wlthout prior knowledge of the pair-value order.~
As previously described, the ordered pairs selected~ for embedding constitute the "key" for extraction of the data-image from the image-data. The listings illustrated in ~
~igures 2-5 demonstrate how embedding analysis reduces the statistical proper~ies of the noise component in host data to a table of pairs of numerical ~ values_: ~he key-pairs are .=
required for extraction of the embedded data, but they cannot be generated by analyzing the host data after the embedding process is completed. = However, the key can be SUBSTITUTE SHEET (RULE 26) WO 96/26494 2 1 8 8 0 5 0 r~l,u recreated ~rom the original, unmodified host data. Thus, data embedding is similar to one-time-pad encryption, providing extremely high security to the embedded bit-stream.
With the pair table known, extraction consists of sequentially testing the pixel values to recreate an output bit-stream for the header information and the data-image.
In the present invention, the pair table is inserted into the host image-data, where it ls available for the ex'~:raction process. Optiona~ly, the present invention permits removing the pair table, and storing it in a separate fiIe. Typically, the pair table ranges from a few to perhaps hundreds of bytes in size. The maximum table size permitted is one-half the row length in pixels. With the pair table missing, the embedded data are secure, as long as the original host image-data are unavailable. Thus, the embedding method gives security potential approaching a one-time-pad encryption method.
Another way of Frotecting the pair table is to remove the key and encrypt it using public-key or another encryption process. The present invention permits an encrypted key to be placed into the host image-data, preventing extraction by unauthorized persons.
Embedding auxiliary data into a host slightly changes the statistical frequency of occurrence of the pixel values used for encoding the bit-streanL. Compressed or encrypted embedding data are excellent pseudo-random auxiliary bit-streams. Consequently, embedding auxiliary data having pseudo-random properties minimizes changes in the average SUBSTITUTE SHEET(RULE 26~
~2 1 8 8C~`50 - -WO 96/26494 P.~ 71';7 frequency of occurrence of the values in: the_embedding pairs. Embedding character data without compression or encryption reduces significantly the security offexed by the present invention.
The existence of embeddçd data is no~ detect~d easily by analyzing the embedded image-data. When viewed as a cryptographic method, data embedding convolves the data-image with the image-data. The original data-image bit-stream embedded represents a plaintext. The combination of the host and embedded data implants ciphertext in the noise component of the host. The existence of ciphertext is not evident however, because the content and meaning of the host carrier information is preserved by the present invention.
Data embedding according to the present invention is distinct from encryption because~no obvious ciphertext is produced .
Those who are unfamiliar with the terms "plaintext, "
and "ciphertext" can refer, f~r~ example, to B. Schneier, A~pplied Cryptogr~phy Protocols, Algorithms, ~nd Source Code 20 in C, J. Wiley & Sons, New York, New York, 1994. This reference is incorporated herein by reference.
As mentioned previously, the present invention is useful in the embedding of auxiliary information into facsimile (FAX) data. In the previous discussion concerning 25 embedding auxiliary information Into image host data, the noise component originates from uncertainty in the numerical values of the pixel data, or in the values of the colors in a color pallet. ~
SU65TITUTE SHEET ~I'IULE ~6) W096/26494 2~ 88a5~ P~ '^7~7 Facsimile transmissiDns are~ actually images consisting of black and white BITMAP(~ data, that is, the data from image pixels are binary (0,1) values representlng black or white, respectively, and the effect Df noise is to either add or remove pixels from the data. The present invention, therefore, processes a facsimile black-and-white BITMAP~
image as a 2-cPlor BITMAP~.
The standard office FAX machine combines the scanner and the digital hardhlare and software required to transmit 10 the image through a telephone connection. The images are transmitted using a special modem protocol, the characteristics of which are available through numerous sources One such source, the User's Manu~l for the EXP
Mod~n (UM, 1993), describes a FAX/data modem designed for 15 use in laptop computers. FAX transmissions made between computers are digital communications, and the data are -therefore suited to data embedding.
As has been previously discussed with relation to embedding lnto images, the FAX embedding process ls 20 conducted ln two stages: analysis and embedding. In the case of a FAX 2-color BITMAP~, image noise can either add or subtract black pixels from the image. Because of this, the length of runs o~f consecutive like pixels will vary.
The scanning process represents a black line in the 25 source copy by a run of consecutive black pixels in the two color BITMAP~ image. The number of plxels in the run is uncertain by at least il, because of the scanner resolution and the uncertain converslon of original material to black-and-white BITMAP~ format.
SUBSTITUTE SHEET (RULE 26) c~l 88~=50 - ~ ;
Wo 96l26494 PCTrUss6/023s7 Applying data embedding to the two color BITMAE'~ data example given here theref ore cons~ists of analyzing the BITMAP~ to determine the statistical frequency of occurrence, or histogram, of runs of consecutive pixels.
5 The embedding process of the present invention varies the length of runs by ~0,+1) pixel according to the content of the bit-stream in the auxiliary data- image. Host data:
suitable for embedding are any two color BITMAP~ image which is scaled in size for FAX transmission. A hardcopy of a-- FAX
lO transmission can be scanned to g~nerate the two color ~
BITMAP~3, or the image can be created by using FAX-printer driver sof tware in a computer .
The FAX embedding process begins by analyzing the lengths of runs in each row of pixels. The implementation 15 of this step is illustrated ~ by the code fragment in Figure 6. The arguments to ~he ~outine, rowstats~ are ~a pointer to=the pixel data in the row, which consists of one byte per pixel, either a zero: or=a one in value; a pointer to an array of statistical frequencies; the number of 20 columns (pixels) in the data row; and a flag for ~internal program options. The options flag is the size o blocks, or packets, of the auxiliary bitstream to be embedded_ The options flag is tested in line 9, and the routine, packet_col ( ) is used for~a~ posit~ive option flag . The 25 packet_col () routine is given in the listing of Figure ~=, and its purpose is to ensure that the first pixel in the data row starts in an even column number. The location of the first pixel in the row flags the start of the data packets, which will be further described below.
SUBSTITUTE SHEET (RULE 26) Wo96l26494 2 ~ 8805~ P~ 5~ 7 Line 12 begins a Loop to examine the runs of pixels in the data row. Runs between the defined values MINRUN and MAXR~N are exam~ned by the loop. The j-loop, and the test at line 15, locate a run of pixels, and sets the variable, 5 k, to the index of the start of the run. The test at line 21 selects only blocks of pixels having length, i, less than the length of the row. The loop in-~~line 22 moves the pixel run to temporary storage in the array block [ ] .
The two tests at lines 24 and 25 reject blocks having 10 run lengths other than the one required by the current value of the i-loop. The embedding scheme selects blocks of length, i, for embedding by adding a pixel to make the length i+l. This assures that the run can contain either i or i+l non-zero pixel values, according to the bit-stream of 15 the auxiliary embedded data. If the run stored in the variable block[] array does not end in at least two zeroes, it is not acceptable as a run of length, i+1, and the code branches to NEXT, to examine the next run found.
Line 28 begins a loop to count the number of pixels in 20 the run. The number found is incremented by one in line 31 to accoun~ for the pixel added to make the run length equal to i~1. Line 33 contains a test ensuring that the run selected has the correct length. The histogram[] array fo the run-length index, i, is incremented to tally the 2~ occurrénce frequency of the run. The data row bytes for the run are flagged by the loop in line 36, with a letter code used to distinguish the runs located. This flagging technique permits the embedding code to identify easily the runs to be used for embedding the bit-stream. On exit from SUBSTITUTE SHEET (RULE 26) Wo 96/26494 ~ l 8 8 - PCrNS96/023S7 this rQutine, the data ro~ bytes contain runs flagged wi=th letter codes l=r i nfli r~te the usable pixel positions for embedding the bit-stream. The return value is the number of runs located in the data rQw. A return of zero indicates no 5 runs within the defined limits Pf MINRUN and MAXRUN were~
located .
FAX modem protocols emphasize speed, and therefore do not include erroL-correction. For= tllis reason, FAX
transmissions are subject to drQp-outs, to impulsive noise, 10 and to lost d~ta, depending on the quality of the telephone line and the speed ~f the transmi~ssion. For successful embedding, the present invention must account for=the possible loss of some portion -of ~the image data. To accomplish this, a variation of modem block-protocols is 15 used to embed the header~ and the auxiliary data. The two color image is treated as a transmission medium, with the data embedded in blocks, or packets, providing for packet-start flags, and parity checks. The start of a packet is signaled by an image row having its first pixel in an even 20 column. The packet ends when the number of bits contained in the block are extracted, or, in the case of a corrupted packet, when a packet-start flag is located in a line. A
checksum for parity, and a packet sequence number, are ==~
embedded with the data in a packet. Using this method, 2~ errors in the FAX transmission result in possible loss Qf some, but not all, of the embedded data.
The amount of data lost because Qf transmission errQrs ~ =
depends on the density of pixels~in the source image and the length of a dropout. Using 20 bytes per packet, a large SUBSTITUTE SHEET (RULE 26) WO 96/26494 2 1 8 8 0 ~ p~/usg6/0 dropout in transmission of standard text results in one or two packets of lost data. Generally, the success of the invention follows the legibility of the faxed host image inf ormation .
Turning now to Figure 7, there-can be seen a listing of the steps necessary to initialize the two color BITMAPa~
lines to flag the start of each packet. Each row in the two color image con~ains a non-zero value beginning in an even column (packet start), or in an odd column (packet continuation).
In Figure 7, it can be seen that line 4 starts a loop over the number of pixels in a data row. In FAX images, a zero ( 0 ) pixel value indicates a black space, and a one ( 1 ) value indicates a white space. Line 5 locates the first black space in the data for the row. If the variable, packet_slze, is positive, the column index is tested to be even and the pixel is forced to be a white space. If the packet_size variable is negative, the routine returns an indicator of the data row flag without making changes. If packet_size is greater than zero, the first data row element is flagged as a white space. Line ll deals with the case in which packet_size=0, indicating a continuation row. In the event of a continuation row, the first ~data row element is forced to a black space.~ The values returned by subroutines in lines 17-20 show the nature of the pixel row examined.
The code fragment listed in Figure a provides auxiliary data embedding into two color BIT~P~ FAX images. The pixels in a row are processed as described above by ~x~m;n;ng the contents of the data row after it has been SUBSTITUTE SHEET (RUI~E 26) _ _ _ ~188~s analyzed and flagged with letter codes to indicate the run lengths. Lines 1 through 49 are~part of a large loop (not shown) over the pixel index, lj, in the two color BITMAP~
image. Lines 1-26 handle the reading of one line of pixels 5 from the two color BITMAP~, and store the row number of the image in the variable, nrow, in line 1. The pixel value bits are decoded and expanded into the image_row [ ] array in lines 12-36. The image_row[] a~ray_contalns the pixel values stored as one value (0 or =1) per byte.
Line 28 uses the packet_col(¦ routine to~return the packet-index for the row. If j is 0 in line 28, the row is a packet-start row, and if j is I, the row is a continuation row. Line 29 uses the rowstats ( ) routine to assign run-length letter flags to the pixeIs in the row buffer. The 15 return value, i, gives the number of runs located in the image row. Consistency tests are made at lines 31, 37, and 41. The index, kp, gives the pixel row number within a data packet. If kp is 0, the line must be a packet-start index, and if kp>0, the line must be a- continuation line. Line 49 20 completes the process Qf reading and preprQcessing a row of two color image data.
The data-structure array, pair [ ], contains the run length for (i), the augmented run length, (i+l), and the total number of runs in the two color BITMAP~ image. The 25 index, k, in the loop starting at line 51, is the index for the run lengths being embedded. The index, inrow,- coùnts - pixels within the image row buffer, and the variable, bitindex is the bit-position index in the bit-stream byte.
SUBSTITUTE SHEET(RULE 26) WO 96126494 2 1 8 8 13 ~ ~ PCI/US96/02357 Line 57 sets the value of the run-length letter-code in the variable, testltr. The value of ~n image pixel is tested against the letter-code in line 58. If the test letter-code flag is located, line 60 advances the index in 5 the row to the end of the pixel run being used for embedding. The test function in line 62 checks the value for the current bit index in the bit-stream packet byte. If the value is one, the last pixel in the run is set to one.
Otherwise, the last pixel in the run is set to 0.
Setting the value of the pixel trailing a run implements the embedding in the two color BITMAP~ images by introducing noise generated according to the pseudo-random bit-stream in the packet data. The letter flag values written into the row buffer by the call to rowstats ( ) in Figure 8 are reset to binary unit value before the image_row array data are packed and written back to the .BMP format file. The process for doing this is not illustrated in Figure 8, but is straightforward for thQse skilled in the art .
Extraction of data embedded into a two color BITMAP~
FAX image, according to the present invention, can be accomplished only if the transmission of the FAX is received by a computer. The image data are stored by the receiving computer irL a file format (preferably a FAX compressed format), permitting the processing necessary to convert the image to BITMAP~ f ormat and to extract the embedded data .
FAX data sent to a standard office machine are not amenable to data extraction because the printed image is generally SUBSTITUTE SHEET (RULE 26) ~ 880~ o Wo 96/264g4 PCr/USs6/02357 not of sufficien~ quaIity to allow for recovery of the embedded data through scanning.
However, the invention does apply to scanning/printing FAX machines that process data internally with computer ~
5 hardware Auxiliary embedded data are inserted after the scanning of ~the host data, but prior tQ transmission. The auxiliary embedded= data are extracted after they have been received, but before ~hey are printed.
The key for two color image embedding can be recovered lO by analyzing the embedded image, because the run lengths are not changed from the original (i, i+1~ values . The order in which the values are used depends on the frequency of occurrence in the image. As in the example for palette-~color images, a key to the value and order of the pairs used 15 for embedding is inserted into the FAX. However, the key is not strictly required, because, ïn principle, knowledge of the defined values ~INRUN and MAXRUN permits re-c21culating the run-length statistics from the received image. In practice, the key is required because transmission errors in 20 the FAX-modem communication link can introduce new run-lengths that alter the statiSti=cal properties of the image, and because the pair ordering is not known. Even though FAX
embedding is somewhat less secure than embedding auxiliary data into palette-color images, the two color BITMAP~ FAX
25 embedding of data still can be regarded as similar to one-time-pad cryptography.
The foregoin~ description of the preferred embodiments of the inVonr;-n }l~ve been prese~ted for purposes of illustration and description. It is not intended to be SUBSTITUTE SHEET(RULE 26) Wo 96/26494 2 1 8 8 0 5 ~ PCTtUS96/02357 exhaustive or to li~it the invention to the precil3e ~orm disclosed, and obviously many modifications and variations are possible in light of the above teaching. The ernbodiments were chosen and described in order to best 5 explain the principles of the invention and its practical application to thereby enable others skilled in the art to best utilize the invention in various embodiments ana ~ith various modifications as are suited to the particular use contemplated. It is intended that the scope of the 10 invention be defined by the claims appended hereto SUBSTITUTE SHEET (RULE 26) _
FIE~D OF THE INVENTION
The present invention generally relates to digital manipulation of numerical data and, more specifically, to the embedding of external data into existing data fields.
This invention was made with Government support under=
Contract No. W-7405-ENG-36 awarded by the U.S. Department of Energy. The Government has certain rights in the invention.
The use of data in digital form is revolutionizing communication throughout the world. Much of this digital communication is over wire, microwaves, and fIber optic media. Currently, data can be transmitted flawlessly over land, water, and between satellites. Satellites in orbit allow communication virtually between any two points on earth, or in space.
In many situations, it may be of benefit to send particular secondary data along with the primary data.
Secondary data could involve the clQsed captioning of television programs, identification information associated with photographs, or the sending of covert information with facsimile transmissions. Such a technique is suited also for~ use as a digital signature verifying the origin and authenticity of the primary data.
Data in digital form are transmitted routinely using wide band communications channels. Communicating in digital fashion is facilitated greatly by error-correcting software and hardware protocols that provide absolute data fidelity.
These communication systems ensure that the digital bit stream transmitted by one station is received by the other station unchanged.
SUBSTITUTE SHEET (RULE 26) W096/26494 ~ ~880so PCr/US96/02357 However, most digital data sources contain redundant information and intrinsic noise.~ ~ An example is a digital image generated by scanning a photograph, an original work of electronic ~art, or a digitlzed video signal. In the 5 scanning or digltal production process of such images, noise is introduced in the digital rendition. Additionally, image sources, such as photographic images and identification cards, contain noise resulting from the grain struc~ture of the film, optical aberrations, and subject motion. Works of 10 art contain noise which is introduced by brush str4kes, paint texture, and artistic license.
Redundancy is intrinsic to digital imaqe ~ data, because any particular numerical value o:~ the digital intensity exists in many different parts of the image. For example, a 15 given grey-level may exist in the image of~ trees,~sky, people or 4ther objects. In any digital image, the same or similar numerical picture element, or pixel value, may represent a variety of image content. This means that pixels having similar numerical values and frequency of -20 occurrence in different parts of an image can beinterchanged freely, without noticeably altering the appearance of the image or the statistical frequency of occurrence of the pixel values. -=
Redundancy also occllrs in most types of digital 25 information, whenever the same values are present more than once in the stream of numerical values representing the information. For a two-color, black and white FAX image, noise consists of the presence or absence of a black or white pixel value. Documents scanned into black and white SUBSTITUTE SHEET (RULE 26) Wo 96/26494 2 ~ 8 8 0 5 0 PCTrUS96/02357 BIT~P~ format contain runs of successlve black ~1) and white ( 0 ) values . Noise in these images introduces a variation in the length of a pixel run. Runs of the same value are present in many parts of the black and white 5 image, in different rows. This allows the present invention also to be applied to facsimile transmissions.
The existence of noise and redundant pixel information in digital data permits a process for implanting additional information in the noise component of digital data. Because 10 of the fidelity of current digital communication systems, the implanted information is preserved in transmission to the receiver, where it can be extracted. The embedding of information in this manner does not increase the bandwidth re~uired for the transmission because the data implanted 15 reside in the noise component of the host data. One may convey thereby meaningful, new information in the redundant noise component of the original data without it ever being detected by unauthorized persons.
It is therefore an object of the present invention to 20 provide apparatus and method for embedding data into a digital information stream so that the digital information is not changed significantly.
It is another object of the present invention to provide apparatus and method for thwarting unauthorized 25 access to information embedded in normal digital data.
Additional objects, advantages and novel features of the invention will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following or may "
SUBSTITUTE SHEET (RULE 26) ~ ~ 8~os~ ~ -Wo 96/2649~ PCT/US96J02357 be learned by practice of ~ the invention. The objects and advantages of the invention may be reali7ed and attained by means of the instrumentalities and combinations particularly pointed out in the appended claims.
BACKGRO~I~ OF T~IF Tl~VENTION
Additional objects, advantages and novel features of =the invention will be set forth in part in the description which follows, and in part will become ~apparent to those skilled in the art upon examination of the following or may be learned by practice of the i~vention. The objects and advantages of the invention may be realized and attained by means of the instrumentalities and co~binations particularly pointed out in the appended claims.
SUMMARY OF THE INVENTION
In accordance with the purposes of the present invention there is provided a method of embedding A~ ?ry data into host data comprising the steps of creating a digital representation of the host data consisting of elements having numerical values and cnnt;3;n;n~ a-noise component; creating a digital ;representation of the ry data i~ the form of a sequence of bits; evaluating the rLoise component of the digital representation of the host data; comparing elements of =the host data with the noise component to determine pairs of the host elements 25 having numerical values which differ by less than said value of said noise component; and replacing individual values of the elements with substAnt;~lly equivalent values :from said pairs of elements in order to embed individual bit values of the auxiliary data corresponding~to the sequence of bits of SUBSTITUTE SHEET(RULE 26) Wo 96l26494 2 1 8 8 0 5 0 PcT/US96102357 S
the ~llx;l;;~ry data; and outputting the ho~t data with the auxiliary data embedded into the host data as a f ile .
In aeeordanee with the purposes of the present invention there is f urther provided a method of extraeting embedded auxiliary data from ho~t data cnn~;l;n;ng a noise nn~pnnf~nt eomprising the steps of extraeting from the host data a bit sequenee indieative of the embedded AllX; l; i: ry data, and whieh allows for verifieation of the host data;
interpreting the host data-elernent pairs whieh differ by less than the value of the noise component and which correspond to bit values of the ~llX; 1; ~3ry data; identifying the auxiliary data bit sequenee eorresponding to the pair values; and extraeting the ~llx;l;~ry data as a file.
BRIEF DES~RIPTIO~ QF THE DRAWI~GS
~he accompanying drawings, which are incorporated in and form a part of the speeification, illustrate the embodiments of the present invention and, together with the description, serve to explain the principles of the invention. In the drawings:
FIGURE 1 is a block diagram illustrating the proeesses used in the embedding and extractior of data from a host.
FIGURE 2 is a partial listing of computer code used for determining host data pairs having similar values and for con~erting RGB cDmponents to HSI components.
FIGURE 3 is a partial listing of computer code used for eliminating duplicate host data pairs.
FIGURE 4 is a partial listing of computer code which, for Trueeolor images, introduees a eonstraint on the frequeney of oecurrence of host data palrs that minimizes the effect of embedding on the host data histogram.
SUBSTITUTE SHEET (RULE 26) alssO~5c, Wo 96~26494 PCrNS96/02357 FIGUl~E 5 is a partial listing of compute=r code that performs the actual embedding of ~auxiliary data into the host data, including the considerable information which is necessary to manipulate the data in the header 5 information, auxiliary bit-stream, and the host data files.
FIGURE ~ is a partial listing of computer code that analyzes the lengths of runs in a row of pixels in two-color facsimile host data.
FIGURE 7 is a partial listing of computer code whose 10 purpose is to ensure that the first pixel in a PACKET-START
data row starts in aF~ even column number. The location of the first pixel in the row fIags the start of the data packets.
FIGURE 8 is a partial listing of computer code for 15 embedding data into two-colo~ host images, such as facsimile transmissions .
DETAILED DESCRIPTION _ The present invention allows~ data to be embedded into a digital transmission or image without naturally discernible 20 alteration of the content and meaning ~of the transmission or image. This is made possible because of the techni~ue of the present invention, in which similar pixel values in a set of digital host data are re-ordered according to the desired embedded or implanted information. The host data 25 image examples are represented in the MICROSOFT~19 BITMAP~
(.BMP) format, so that the resulting image contains the embedded auxiliary information without that information being readily discernible. ~ ~
SUBSTITUTE SHEET(RULE 26) ~ W096l26494 2 ! 8 8 0 5 0 I_llu~ 6 A7~7 The MICROSOFT~) BITMAP~ image format is a public-domain format supporting images in the Truecolor, color palette, grey-scale, or black and white representations. Truecolor images have 24-bits per pixel element, with each byte of the 5 pixel element representing the intensity of the red, green, and blue (RGB) color component. Color palette images contain a table of the permitted RGB values. The pixel value in a color palette image is an index to this table.
Grey-scale images qive the numerical intensity of the pixel lO values. Black and white representation assigns either zero or one as one of the two possible pixel values. The invention will be made understandable in the context of the BITMAP~ image types by reference to the following description .
At the point when most sensory obtained information is represented in digital form, whether it be from video, photographs, laboratory measurements, or facsimile transmissions, the digital data contain intrinsic noise and redundant information which can be manipulated to carry 20 extra information. Through use of this invention, the extra information also can be extracted easily by an authorized and enabled receiver of the data.
Redundancy in digital image data occurs when a particular numerical value of the digital intensity exists 2~ in many different parts of the image. Redundancy is found commonly in images because a given grey-level exists in the rendition of trees, sky, clouds, people, and other objects.
The presence of noise in digital images permits the picture elements, pixeIs, to vary slightly in numerical value. For SUBSTITUTE SHEET (RULE 26) a1 saoso Wo 96/26494 r~l~rJ~, ' 8-bit digital data, the pixel numerical values range from 0-255. As the pixels having the same or similar numerical values represent a variety of image content, many values in r~i ff,~rr?nt locations of an image can be interchanged frPely.
5 The image appearance and the statistical frequency of occurrence ~f a particular pixel value are affected little by the interchanging of the spatial position of pixels close in numerical value.
Initially, from the original dlgital data (hereinafter 10 often referred to as the "host" data~, the present invention first converts the host data to digital form, if necess= ry, and then creates an image hlstogram to show the probability density of numerical pixel values occurring in the image.
The number ~of. times a particular pixel value occurs in ~he 15 image is plotted Yersus the value. For 8-bit di4ital data, the pixel Yalues range from 0-255. Of course, the lever of noise in an image will depend on the source of ~he data with different noise levels expected between photos, original artwork, digital audio, video, and facsimile 2~ transmissions. -~
The actual embedding of the auxiliary data into thehost data is a three-part process, the basic steps of which are illustrated in Figure ~. First, an estimate of the noise component of the host data is determined and used in 25 combination with an analysis of a histogram of the host data numerical values to identify pairs of values in the host data that occur with approximately the same statistical~
frequency, and that differ in value by less than the value of the noise component. Second, the position of occurrence 5UBSTITUTE SHEET (RULE 26) wo 96/2649~ 2 ~ 8 8 3 5 0 PCTNS96/0~357 of the pair values found is adjusted to embed the bitstream of the auxiliary information set. Third, the identified pairs of values in the host data are used to create a key f or the extraction of the embedded data .
Extracting embedded data inverts this process. The key placed in the image in the embedding phase specifies the pair-values which contain the embedded auxiliary information. With the pair-values known, extraction consists of recreating the auxiliary data according to the 10 positions of pixels having the pair-values given in the key.
The key data are used first to extract header information.
The header information specifies the length and the file name of the auxiliary data, and serves to validate the key.
If the image containing embedded information has been 15 modified, the header information will not extract data correctly. However, successful extraction recreates the auxiliary data exactly in an output file.
The principle of data embedding according to the present invention involves the rearrangement of certain host 20 data values in order to encode the values of the extra data which is to be added. For the purposes of this description of the invention, consider a host data set represented by 8 bits of binary information, with values ranging between 0 and 255 bits for each host data sample. Further, assume 25 that the noise value, N, for a signal, S, is given by N=~S/10, or approximately 10% of the signal value. For many data, the noise component can be approximated by a constant value or percentage, such as the 10% value used for this SUBSTITUTE SHEE~ (RULE 26) ,~11 8~3o5 0 description. Two values in the host data, di and dj, are within the noise value if ~
¦d, -d,¦ = < N 10 The frequency of occurrence or histogram value of a cer~ain value, di, is f ~di) . Data values meeting the criteria of Equation 10, and occurring in the host data wlth frequency of occurrence f (di) -f (dj) < ~, where ~ is the tolerance lO imposed for statistical equality, are candidates for =
embedding use. The values, di and dj, constitute~ a pair of data values, Pk. There are k=0, 1, 2, . . .Np such pairs in the host data set, giving a total number of embedding bits, Mk, for each pair:
~ ~ ~ ~ =
M~=~f(dj)+~f(dj) 20 where the summations fol i and j run to the limits of the frequency of occurrence in the data set, f (di) and f ~dj), 20 for the respective data values It is now helpful to refer to Figure 2, wherein a partial listing of computer code= in the C-1anguage is printed. The determination of the host data pixel pair values, di and dj, in Equation 1~, is acc mplished through 25 the code listed in Figure 2. In Figure 2, these 8 bit values are interpreted as indices in a color palette table The comparison indicated in Equation lO is therefore ~
required to be a comparison between the corresponding colors SUBSTITUTE SHEET (RULE 26) ~ Wo 96l26494 2 1 8 8 ~ 5 ~ PCT/US9610235'7 in the palette Entries in the color palette are Red, Green, and Blue (RGB) color-component values, each within the range of 0-255.
~f additlonal information is desired on the format used 5 for BITMAP(!~ images, reference should be made to two sources.
One is the book, F_, 'n~ for ~: ~.rhi~.: Files, by J.
Levine, 1994 (J. Wiley & Sons, New York) . The other is a technical article, "The BMP Format, " by M. Luse, Dr Dobb's JoYrnall Vol. 19, Page 18, 1994.
The code fragment in Figure 2 begins at line 1 with a loop running over the number of colors in the palette. The loop index, i, is used to test each palette color against all other entries, in sequence, to identify pairs of color entries meeting the criteria established by Equation 10.
15 Each color identified in the i-loop then is tested against all other colors in the palette by a second loop using another index, j, starting at line 16. Line 7 provides a modification for~images which have a palette for greyscale instead of colors. For greyscale images, the RGB components 20 are identical for each palette entry, although some grey scale formats include a 16-color table as well.
The comparison indicated in Equation 10 is made by converting the Red, Green, and Blue (RGB) color component values to corresponding Hue, Saturation, and Intensity (HSI) 25 color components. Line 12 uses a separate routine, rgbhsi (), to effect this conversion. Line 20 converts RGB
color component values in the j-loop to HSI data structure components, and line 21 calculates the color difference in the HSI system. Line 24 then implements the test required SUIISTITUTE SHEET(RULE 26) a ~88 Wo 96l26494 S ~ ~ 7 ~
1~ _ by Equation 10. If. the color difference ls less:than a~
fixed noise value (COLOR_NOISE=10 in the listing of Figure 2), the intensity difference is tested to determine if the two palette entries are acceptable as differlng by less than 5 the noise value specified. Two additional constraints are imposed before ~ccepting the entries as candidate pair ~
values. First, the difference in color is r~equlred to= be the smallest color difference between the test ~i-loop) value, and all the other (j-loop) values. Second, the 10 number of pairs selecte~ (k) must be less than half the number of columns in a row of pixels in the image, in order .
for the pair-value key to be stored in a single row of pixels. This is an algorithmic constraint, and is not required by the invention.
A data-structure array, pair[~, is used~ to hold the values of candidate pairs (i, j ) and thelr total frequency of occurrence, Mk. If the image is a greyscale palette, the test at line 35 is used to forc~ comparison of only the intensity of the two palette entries. Greyscale~images do 20 not require the RGB to HSI conversion made for color palettes.
The embedding process of the present invention ignores dif ferences in the saturation component of color=palette entries because saturation is ordinarily not noticeable in a 25 color image. Only the Hue and Intensity components are constrained to fall within fixed noise limits to determine the palette pair values.
Pixel pair values found by the code listed in Figure 2 include generally redundant values. The same pixel value, S~ IITUTESHEET(R~
Wo 96/26494 2 1 8 8 0 ~ O PCT/U5961023s7 i, is found in several diierent pair coTnbinations. secause multiple pairs cannot contain the same palette entry, due to each pair combination of pixel values having to be unique, it is necessary- to eliminate some pairs. The number of 5 pairs located by applying the criterion of Equation 10 is stored in the variable, no_pairs, in line 51.
Referring now to Figure 3, the code fragment listed therein illustrates the manner in which duplicate pairs are eliminated by a separate routine. Eirst, the histogram of 10 the image is used to calculate the :total number of occurrences in each pair, as requlred by Equation 20, above.
Line 1 shows the i-loop used to calculate the value, Mk, for each pair. Next, the pairs are sorted according to decreasing order of the pair [ ] . count data-structure member 15 in line 5. The elimination of duplicates in the following line retains the pairs, Pk, having the largest total number of frequency values, Mk. Line 10 and the lines following calculate the total number of bytes that can be embedded into the host data using the unique pixel pairs found by 20 this code fragment.
Sorting the pair values in decreasing order of value, Mk, minimizes the number of pairs required to embed a particular auxiliary data stream. However, the security of the embedded data is lncreased significantly if the pair 25 values are arranged in random order. Randomizing the pair-value order is part of this invention. This is accomplished by rearranging the pair-values to random order by calculating a data structure having entries for an integer~
index pts[k].i, k=0,1,2,..., no_pairs; and pts[k].gamma=~o, SUBSTITUTE SHEET (RULE 26) a~ssO~O
Wo 96/26494 r~ A7~7 r~ no p~3irs~ where the ~ir values are random. Sorting the data structure, pts [], to put the random values in ascending order r~ntir1mi 7~.5_ the index values . The random index values are used with the pair-values calculated as 5 indicated above, to re-order the table to give random pair-value ordering.
The algorithm described for=palette-format images -permits manipulating pixel values without~ regard~ to the individual frequency of occurrence. Reference should now be 0 made to Figure 9 where another code fraqment is listed in which, for TruecQlQr images, a constraint is introduced Dn the frequency of occurrence that minimizes the effect of embedding on the host data histogram.
Truecolor images c~nsist of three individual 8-bit 15 greyscale images,~ one each for the red, green, and blue image components. Truecolor= images have no color palette.
The possible combinations of the three 8-bit components give approximately 16 million colors.~ The present invention embeds data into Truecolor images by treating each RGB color=
20 component image separately. The effect of emoedaing on the composite image color is the,ref Qre within the noise Yalue of the individual color intensity components.
In Figure 4, the ip-loop starting in line 2 refers -to the color plane ~ip=0,1,2 for R,G,B). The frequency of 25 occurrence of each numerical value (0 through 255) is given in the array, hist values [ ], with the color plane histograms ., offset by the quantity, ip~25~, in line 7. The variable, fvalue[], holds the floating point histogram values for=
color-component, ip. Line ll begins a loop to constrain the SUBSTITUTE SHEET (RULE 26) W096,264g4 21 8895D PCr/Uss6/02357 pairs selected for nearly equal frequency of occurrence.
Pixel intensities within the noise limit, RANGE, are selected for comparison of: statistical frequency. The tolerance, ~, fQr statistical agreement is fixed at 5g in 5 line 17. This tolerance could be adjusted for particular applications.
After all possible values are tested for the constraints of noise and statisticaI frequency, the pairs found are sorted in line 27, the duplicates are removed, the 10 starting index is incremented in line 31, and the search continued. A maximum number of pairs aga~-n is set by the algorithmic constraint that the i and j pair values must be less than one-half the number o~ pixels in an image row. As with palette-format images, the security of the invention 15 includes randomizing the pair-value entries.
Applying the statistical constraint minimizes the host image effects of embedding the auxiliary data. If the tolerance, ~, is set at 0, each pai~ chosen will contain data values less than the noise value in intensity 20 separation, and occurring with exactly the same statistical frequency. Setting the tolerance at ~-5g, as in the code fragment of Figure ~, permits the acceptance of pixel pairs that are close in frequency, while still preserving most of the statistical properties of the host data. Few, if any, 25 pairs might be found by requiring exactly the same frequency of occurrence.
The actual embedding of auxiliary data lnto a set of host data consists of rearranging the order of occurrence of redundant numer~cal values. The pairs of host data values SUBSTITUTE SHEET (RULE 26) ~ ~ 8~ )5 WO 96/26494 PCTIUS96/023~7 found by analysis are the pixel values used to e~Lcode the bit-stream of the auxili~ry data into the host data. It is important to reali~P that the numerical values used for embedding are the values already occurring in the host data.
5 The embedding process of the current invention does not alter the number or quantity of the numerical values in the host data.
In the embedding process of the present invention, the host data are processed sequentially. A first pass through 10 the host data examines each value and tests for a match with the pixel-pair values. Matching values in the host data are initiali~ed to the data-structure value, pair[k] .i, for k=0, 1, 2. . .Np. This step initializes the host BITMAP~ image (Figure 1) to the pair values corresponding to zeroes in the 1~ auxiliary data. A second pass through the auxiliary data examines the sequential bits of the data to be embedded, and sets the pair-value of the host data element to the value i or ~, according to the auxiliary~bit value to be embedded If the bit-stream being embedded is random, the host data 20 pair-values, i and j, occur with equal frequency in the host image after the embedding process is completed.
Figure ~ illustrates the code fragment that performs the actual embedding, including the considerable information which is necessary to manipulate=the data in the header 2~ information, auxiIiary bit-stream, and the host data files.
.ines 1-12 allocate memory and initiaIize variables. The header and bit-stream data to be ~embedded are denoted the "data-image," and are stored in the array, data_row[] . The host data are denoted the "image-data "
SUBSTITUTE SHEET (RULE 26) ~ W096l26494 2 1 880~;~ PcTlu596/02357 The index, li, is used in a loop beginning at line 12 to count the byte position in the data-image. The loop begins with li=-51~ because header information is embedded before the data-image bytes. Line 14 contains the test for 5 loading data_row[~ with the header infQrmation. Line 20 contains the test for loading data_row[~ with bytes from the data-image file, tape5.
Line 30 starts a loop for the bits within a data-image byte. The variable, bitindex=(0,1,2...7), counts the bit 10 position within the data-image byte, data_row[d_inrow], indexed by the variable, d_inrow. The variable, lj, indexes the byte (pixel) in the host image. The variable, inrow, indexes the image-data buffer, image_row[inrow]. Line 32 tests for output of embedded data (a completed row of 15 pixels) to the image-data file, and line 40 tests for completion of a pass through the image-data. One pass through the image-data is made for each of the pixel pairs, pair[k~, k=0,1,2...Np.
In line 47, the pair index is incremented. A temporary 20 palr data-structure variable named "pvalue" is used to hold the working pair values of the host data pixels being used for embedding. Line 60 provides for refreshing the image-data buffer, image_row.
The embedding test is made at line 72. If the 25 image_row[inrowl content equals the pair value representing a data-image bit of zero, no change is made, and the image-data value remains pvalue. i . However, if the bit-stream value is one, the image-data value is changed to equal pvalue. j . Line 84 treats the case for image-data values not SUBSTITUTE SHEET (RULE 26) ,31880sf~ - `
Wo 96l26494 PCT/US96102357 equal to the embedding pair value, pvalue.i. In this case, the bitindex variable is decremented, because the data-image bit is not yet embedded, and the image-data indices are incremented to examine the next host data value.
The extraction of embedded data is accomplished by reversing the process used to embed the auxiliary data-image bit-stream. A histogram analysis of the embedded image-data set will reveal the candidate pairs for~ extraction for only the case where the individual statistical frequencies are unchanged by the embedding process. In the listings of Figures 2-5, the statistical frQquencies are changed slightly by the embedding proce~s. The pair table used for embedding can be recreated by analysis of the original image-data, but it cannot generally be recovered .e~cactly f rom the embedded image-data .
Additionally, as described above, the invention includes randomizing the order of the pair-values, thereby increasing greatly the amount~ of ~analysis needed to extract the embedded data wlthout prior knowledge of the pair-value order.~
As previously described, the ordered pairs selected~ for embedding constitute the "key" for extraction of the data-image from the image-data. The listings illustrated in ~
~igures 2-5 demonstrate how embedding analysis reduces the statistical proper~ies of the noise component in host data to a table of pairs of numerical ~ values_: ~he key-pairs are .=
required for extraction of the embedded data, but they cannot be generated by analyzing the host data after the embedding process is completed. = However, the key can be SUBSTITUTE SHEET (RULE 26) WO 96/26494 2 1 8 8 0 5 0 r~l,u recreated ~rom the original, unmodified host data. Thus, data embedding is similar to one-time-pad encryption, providing extremely high security to the embedded bit-stream.
With the pair table known, extraction consists of sequentially testing the pixel values to recreate an output bit-stream for the header information and the data-image.
In the present invention, the pair table is inserted into the host image-data, where it ls available for the ex'~:raction process. Optiona~ly, the present invention permits removing the pair table, and storing it in a separate fiIe. Typically, the pair table ranges from a few to perhaps hundreds of bytes in size. The maximum table size permitted is one-half the row length in pixels. With the pair table missing, the embedded data are secure, as long as the original host image-data are unavailable. Thus, the embedding method gives security potential approaching a one-time-pad encryption method.
Another way of Frotecting the pair table is to remove the key and encrypt it using public-key or another encryption process. The present invention permits an encrypted key to be placed into the host image-data, preventing extraction by unauthorized persons.
Embedding auxiliary data into a host slightly changes the statistical frequency of occurrence of the pixel values used for encoding the bit-streanL. Compressed or encrypted embedding data are excellent pseudo-random auxiliary bit-streams. Consequently, embedding auxiliary data having pseudo-random properties minimizes changes in the average SUBSTITUTE SHEET(RULE 26~
~2 1 8 8C~`50 - -WO 96/26494 P.~ 71';7 frequency of occurrence of the values in: the_embedding pairs. Embedding character data without compression or encryption reduces significantly the security offexed by the present invention.
The existence of embeddçd data is no~ detect~d easily by analyzing the embedded image-data. When viewed as a cryptographic method, data embedding convolves the data-image with the image-data. The original data-image bit-stream embedded represents a plaintext. The combination of the host and embedded data implants ciphertext in the noise component of the host. The existence of ciphertext is not evident however, because the content and meaning of the host carrier information is preserved by the present invention.
Data embedding according to the present invention is distinct from encryption because~no obvious ciphertext is produced .
Those who are unfamiliar with the terms "plaintext, "
and "ciphertext" can refer, f~r~ example, to B. Schneier, A~pplied Cryptogr~phy Protocols, Algorithms, ~nd Source Code 20 in C, J. Wiley & Sons, New York, New York, 1994. This reference is incorporated herein by reference.
As mentioned previously, the present invention is useful in the embedding of auxiliary information into facsimile (FAX) data. In the previous discussion concerning 25 embedding auxiliary information Into image host data, the noise component originates from uncertainty in the numerical values of the pixel data, or in the values of the colors in a color pallet. ~
SU65TITUTE SHEET ~I'IULE ~6) W096/26494 2~ 88a5~ P~ '^7~7 Facsimile transmissiDns are~ actually images consisting of black and white BITMAP(~ data, that is, the data from image pixels are binary (0,1) values representlng black or white, respectively, and the effect Df noise is to either add or remove pixels from the data. The present invention, therefore, processes a facsimile black-and-white BITMAP~
image as a 2-cPlor BITMAP~.
The standard office FAX machine combines the scanner and the digital hardhlare and software required to transmit 10 the image through a telephone connection. The images are transmitted using a special modem protocol, the characteristics of which are available through numerous sources One such source, the User's Manu~l for the EXP
Mod~n (UM, 1993), describes a FAX/data modem designed for 15 use in laptop computers. FAX transmissions made between computers are digital communications, and the data are -therefore suited to data embedding.
As has been previously discussed with relation to embedding lnto images, the FAX embedding process ls 20 conducted ln two stages: analysis and embedding. In the case of a FAX 2-color BITMAP~, image noise can either add or subtract black pixels from the image. Because of this, the length of runs o~f consecutive like pixels will vary.
The scanning process represents a black line in the 25 source copy by a run of consecutive black pixels in the two color BITMAP~ image. The number of plxels in the run is uncertain by at least il, because of the scanner resolution and the uncertain converslon of original material to black-and-white BITMAP~ format.
SUBSTITUTE SHEET (RULE 26) c~l 88~=50 - ~ ;
Wo 96l26494 PCTrUss6/023s7 Applying data embedding to the two color BITMAE'~ data example given here theref ore cons~ists of analyzing the BITMAP~ to determine the statistical frequency of occurrence, or histogram, of runs of consecutive pixels.
5 The embedding process of the present invention varies the length of runs by ~0,+1) pixel according to the content of the bit-stream in the auxiliary data- image. Host data:
suitable for embedding are any two color BITMAP~ image which is scaled in size for FAX transmission. A hardcopy of a-- FAX
lO transmission can be scanned to g~nerate the two color ~
BITMAP~3, or the image can be created by using FAX-printer driver sof tware in a computer .
The FAX embedding process begins by analyzing the lengths of runs in each row of pixels. The implementation 15 of this step is illustrated ~ by the code fragment in Figure 6. The arguments to ~he ~outine, rowstats~ are ~a pointer to=the pixel data in the row, which consists of one byte per pixel, either a zero: or=a one in value; a pointer to an array of statistical frequencies; the number of 20 columns (pixels) in the data row; and a flag for ~internal program options. The options flag is the size o blocks, or packets, of the auxiliary bitstream to be embedded_ The options flag is tested in line 9, and the routine, packet_col ( ) is used for~a~ posit~ive option flag . The 25 packet_col () routine is given in the listing of Figure ~=, and its purpose is to ensure that the first pixel in the data row starts in an even column number. The location of the first pixel in the row flags the start of the data packets, which will be further described below.
SUBSTITUTE SHEET (RULE 26) Wo96l26494 2 ~ 8805~ P~ 5~ 7 Line 12 begins a Loop to examine the runs of pixels in the data row. Runs between the defined values MINRUN and MAXR~N are exam~ned by the loop. The j-loop, and the test at line 15, locate a run of pixels, and sets the variable, 5 k, to the index of the start of the run. The test at line 21 selects only blocks of pixels having length, i, less than the length of the row. The loop in-~~line 22 moves the pixel run to temporary storage in the array block [ ] .
The two tests at lines 24 and 25 reject blocks having 10 run lengths other than the one required by the current value of the i-loop. The embedding scheme selects blocks of length, i, for embedding by adding a pixel to make the length i+l. This assures that the run can contain either i or i+l non-zero pixel values, according to the bit-stream of 15 the auxiliary embedded data. If the run stored in the variable block[] array does not end in at least two zeroes, it is not acceptable as a run of length, i+1, and the code branches to NEXT, to examine the next run found.
Line 28 begins a loop to count the number of pixels in 20 the run. The number found is incremented by one in line 31 to accoun~ for the pixel added to make the run length equal to i~1. Line 33 contains a test ensuring that the run selected has the correct length. The histogram[] array fo the run-length index, i, is incremented to tally the 2~ occurrénce frequency of the run. The data row bytes for the run are flagged by the loop in line 36, with a letter code used to distinguish the runs located. This flagging technique permits the embedding code to identify easily the runs to be used for embedding the bit-stream. On exit from SUBSTITUTE SHEET (RULE 26) Wo 96/26494 ~ l 8 8 - PCrNS96/023S7 this rQutine, the data ro~ bytes contain runs flagged wi=th letter codes l=r i nfli r~te the usable pixel positions for embedding the bit-stream. The return value is the number of runs located in the data rQw. A return of zero indicates no 5 runs within the defined limits Pf MINRUN and MAXRUN were~
located .
FAX modem protocols emphasize speed, and therefore do not include erroL-correction. For= tllis reason, FAX
transmissions are subject to drQp-outs, to impulsive noise, 10 and to lost d~ta, depending on the quality of the telephone line and the speed ~f the transmi~ssion. For successful embedding, the present invention must account for=the possible loss of some portion -of ~the image data. To accomplish this, a variation of modem block-protocols is 15 used to embed the header~ and the auxiliary data. The two color image is treated as a transmission medium, with the data embedded in blocks, or packets, providing for packet-start flags, and parity checks. The start of a packet is signaled by an image row having its first pixel in an even 20 column. The packet ends when the number of bits contained in the block are extracted, or, in the case of a corrupted packet, when a packet-start flag is located in a line. A
checksum for parity, and a packet sequence number, are ==~
embedded with the data in a packet. Using this method, 2~ errors in the FAX transmission result in possible loss Qf some, but not all, of the embedded data.
The amount of data lost because Qf transmission errQrs ~ =
depends on the density of pixels~in the source image and the length of a dropout. Using 20 bytes per packet, a large SUBSTITUTE SHEET (RULE 26) WO 96/26494 2 1 8 8 0 ~ p~/usg6/0 dropout in transmission of standard text results in one or two packets of lost data. Generally, the success of the invention follows the legibility of the faxed host image inf ormation .
Turning now to Figure 7, there-can be seen a listing of the steps necessary to initialize the two color BITMAPa~
lines to flag the start of each packet. Each row in the two color image con~ains a non-zero value beginning in an even column (packet start), or in an odd column (packet continuation).
In Figure 7, it can be seen that line 4 starts a loop over the number of pixels in a data row. In FAX images, a zero ( 0 ) pixel value indicates a black space, and a one ( 1 ) value indicates a white space. Line 5 locates the first black space in the data for the row. If the variable, packet_slze, is positive, the column index is tested to be even and the pixel is forced to be a white space. If the packet_size variable is negative, the routine returns an indicator of the data row flag without making changes. If packet_size is greater than zero, the first data row element is flagged as a white space. Line ll deals with the case in which packet_size=0, indicating a continuation row. In the event of a continuation row, the first ~data row element is forced to a black space.~ The values returned by subroutines in lines 17-20 show the nature of the pixel row examined.
The code fragment listed in Figure a provides auxiliary data embedding into two color BIT~P~ FAX images. The pixels in a row are processed as described above by ~x~m;n;ng the contents of the data row after it has been SUBSTITUTE SHEET (RUI~E 26) _ _ _ ~188~s analyzed and flagged with letter codes to indicate the run lengths. Lines 1 through 49 are~part of a large loop (not shown) over the pixel index, lj, in the two color BITMAP~
image. Lines 1-26 handle the reading of one line of pixels 5 from the two color BITMAP~, and store the row number of the image in the variable, nrow, in line 1. The pixel value bits are decoded and expanded into the image_row [ ] array in lines 12-36. The image_row[] a~ray_contalns the pixel values stored as one value (0 or =1) per byte.
Line 28 uses the packet_col(¦ routine to~return the packet-index for the row. If j is 0 in line 28, the row is a packet-start row, and if j is I, the row is a continuation row. Line 29 uses the rowstats ( ) routine to assign run-length letter flags to the pixeIs in the row buffer. The 15 return value, i, gives the number of runs located in the image row. Consistency tests are made at lines 31, 37, and 41. The index, kp, gives the pixel row number within a data packet. If kp is 0, the line must be a packet-start index, and if kp>0, the line must be a- continuation line. Line 49 20 completes the process Qf reading and preprQcessing a row of two color image data.
The data-structure array, pair [ ], contains the run length for (i), the augmented run length, (i+l), and the total number of runs in the two color BITMAP~ image. The 25 index, k, in the loop starting at line 51, is the index for the run lengths being embedded. The index, inrow,- coùnts - pixels within the image row buffer, and the variable, bitindex is the bit-position index in the bit-stream byte.
SUBSTITUTE SHEET(RULE 26) WO 96126494 2 1 8 8 13 ~ ~ PCI/US96/02357 Line 57 sets the value of the run-length letter-code in the variable, testltr. The value of ~n image pixel is tested against the letter-code in line 58. If the test letter-code flag is located, line 60 advances the index in 5 the row to the end of the pixel run being used for embedding. The test function in line 62 checks the value for the current bit index in the bit-stream packet byte. If the value is one, the last pixel in the run is set to one.
Otherwise, the last pixel in the run is set to 0.
Setting the value of the pixel trailing a run implements the embedding in the two color BITMAP~ images by introducing noise generated according to the pseudo-random bit-stream in the packet data. The letter flag values written into the row buffer by the call to rowstats ( ) in Figure 8 are reset to binary unit value before the image_row array data are packed and written back to the .BMP format file. The process for doing this is not illustrated in Figure 8, but is straightforward for thQse skilled in the art .
Extraction of data embedded into a two color BITMAP~
FAX image, according to the present invention, can be accomplished only if the transmission of the FAX is received by a computer. The image data are stored by the receiving computer irL a file format (preferably a FAX compressed format), permitting the processing necessary to convert the image to BITMAP~ f ormat and to extract the embedded data .
FAX data sent to a standard office machine are not amenable to data extraction because the printed image is generally SUBSTITUTE SHEET (RULE 26) ~ 880~ o Wo 96/264g4 PCr/USs6/02357 not of sufficien~ quaIity to allow for recovery of the embedded data through scanning.
However, the invention does apply to scanning/printing FAX machines that process data internally with computer ~
5 hardware Auxiliary embedded data are inserted after the scanning of ~the host data, but prior tQ transmission. The auxiliary embedded= data are extracted after they have been received, but before ~hey are printed.
The key for two color image embedding can be recovered lO by analyzing the embedded image, because the run lengths are not changed from the original (i, i+1~ values . The order in which the values are used depends on the frequency of occurrence in the image. As in the example for palette-~color images, a key to the value and order of the pairs used 15 for embedding is inserted into the FAX. However, the key is not strictly required, because, ïn principle, knowledge of the defined values ~INRUN and MAXRUN permits re-c21culating the run-length statistics from the received image. In practice, the key is required because transmission errors in 20 the FAX-modem communication link can introduce new run-lengths that alter the statiSti=cal properties of the image, and because the pair ordering is not known. Even though FAX
embedding is somewhat less secure than embedding auxiliary data into palette-color images, the two color BITMAP~ FAX
25 embedding of data still can be regarded as similar to one-time-pad cryptography.
The foregoin~ description of the preferred embodiments of the inVonr;-n }l~ve been prese~ted for purposes of illustration and description. It is not intended to be SUBSTITUTE SHEET(RULE 26) Wo 96/26494 2 1 8 8 0 5 ~ PCTtUS96/02357 exhaustive or to li~it the invention to the precil3e ~orm disclosed, and obviously many modifications and variations are possible in light of the above teaching. The ernbodiments were chosen and described in order to best 5 explain the principles of the invention and its practical application to thereby enable others skilled in the art to best utilize the invention in various embodiments ana ~ith various modifications as are suited to the particular use contemplated. It is intended that the scope of the 10 invention be defined by the claims appended hereto SUBSTITUTE SHEET (RULE 26) _
Claims (11)
1. A method of embedding auxiliary data into host data comprising the steps of:
creating a digital representation of said host data in the form of elements having numerical values and containing a noise component;
creating a digital representation of said auxiliary data in the form of a sequence of INDIVIDUAL bit VALUES;
evaluating said noise component of said digital representation of said host data;
comparing pairs of said elements with said noise component to determine pairs of said elements having numerical values which differ by less than said value of said noise component;
replacing individual values of said elements with substantially equivalent values from said pairs of elements in order to embed individual bit values of said auxiliary data corresponding to said sequence of bit values of said auxiliary data; and outputting said host data with said auxiliary data embedded into said host data as a file.
creating a digital representation of said host data in the form of elements having numerical values and containing a noise component;
creating a digital representation of said auxiliary data in the form of a sequence of INDIVIDUAL bit VALUES;
evaluating said noise component of said digital representation of said host data;
comparing pairs of said elements with said noise component to determine pairs of said elements having numerical values which differ by less than said value of said noise component;
replacing individual values of said elements with substantially equivalent values from said pairs of elements in order to embed individual bit values of said auxiliary data corresponding to said sequence of bit values of said auxiliary data; and outputting said host data with said auxiliary data embedded into said host data as a file.
2. The method as described in Claim 1 further comprising the step of combining said auxiliary data with predetermined information indicative of said auxiliary data, its file name, and file size, said step to be performed after the step of digitizing said auxiliary data
3. The method as described in Claim 1 further comprising the step of determining a protocol for embedding said auxiliary data into said host data which allows for verification of said auxiliary data upon extraction from said host data.
4. A method of extracting embedded auxiliary data from host data containing a noise component comprising the steps of:
extracting from said host data a bit sequence indicative of said embedded auxiliary data, and which allows for verification of said host data;
interpreting said host data to determine host element pairs which differ by less than said noise component and which correspond to bit values of said auxiliary data;
identifying said auxiliary data using said bit sequence; and extracting said auxiliary data as a file.
extracting from said host data a bit sequence indicative of said embedded auxiliary data, and which allows for verification of said host data;
interpreting said host data to determine host element pairs which differ by less than said noise component and which correspond to bit values of said auxiliary data;
identifying said auxiliary data using said bit sequence; and extracting said auxiliary data as a file.
5. The method as described in Claim 1, wherein said host data comprises a color photograph.
6. The method as described in Claim 1, wherein said host data comprises a black and white photograph
7. The method as described in claim 1, wherein said host data comprises a television signal.
8. The method as described in Claim 1, wherein said host data comprises a painting.
9 . The method as described in Claim 1, wherein said host data comprises a facsimile transmission.
10. The method as described in Claim 1, wherein said host data comprises an identification card.
11. The method as described in Claim 1, wherein said host data comprises digital audio information.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/392,642 | 1995-02-23 | ||
US08/392,642 US5659726A (en) | 1995-02-23 | 1995-02-23 | Data embedding |
Publications (1)
Publication Number | Publication Date |
---|---|
CA2188050A1 true CA2188050A1 (en) | 1996-08-29 |
Family
ID=23551432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002188050A Abandoned CA2188050A1 (en) | 1995-02-23 | 1996-02-22 | Data embedding |
Country Status (3)
Country | Link |
---|---|
US (1) | US5659726A (en) |
EP (1) | EP0760981A1 (en) |
CA (1) | CA2188050A1 (en) |
Families Citing this family (185)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10361802B1 (en) | 1999-02-01 | 2019-07-23 | Blanding Hovenweep, Llc | Adaptive pattern recognition based control system and method |
US7116781B2 (en) * | 1993-11-18 | 2006-10-03 | Digimarc Corporation | Counteracting geometric distortions in watermarking |
US6408082B1 (en) | 1996-04-25 | 2002-06-18 | Digimarc Corporation | Watermark detection using a fourier mellin transform |
US6757406B2 (en) | 1993-11-18 | 2004-06-29 | Digimarc Corporation | Steganographic image processing |
US6580819B1 (en) | 1993-11-18 | 2003-06-17 | Digimarc Corporation | Methods of producing security documents having digitally encoded data and documents employing same |
US6983051B1 (en) | 1993-11-18 | 2006-01-03 | Digimarc Corporation | Methods for audio watermarking and decoding |
US20020009208A1 (en) * | 1995-08-09 | 2002-01-24 | Adnan Alattar | Authentication of physical and electronic media objects using digital watermarks |
US5748763A (en) | 1993-11-18 | 1998-05-05 | Digimarc Corporation | Image steganography system featuring perceptually adaptive and globally scalable signal embedding |
US6122403A (en) | 1995-07-27 | 2000-09-19 | Digimarc Corporation | Computer system linked by using information in data objects |
US6449377B1 (en) | 1995-05-08 | 2002-09-10 | Digimarc Corporation | Methods and systems for watermark processing of line art images |
US5822436A (en) * | 1996-04-25 | 1998-10-13 | Digimarc Corporation | Photographic products and methods employing embedded information |
US5832119C1 (en) | 1993-11-18 | 2002-03-05 | Digimarc Corp | Methods for controlling systems using control signals embedded in empirical data |
US6424725B1 (en) | 1996-05-16 | 2002-07-23 | Digimarc Corporation | Determining transformations of media signals with embedded code signals |
US5841886A (en) | 1993-11-18 | 1998-11-24 | Digimarc Corporation | Security system for photographic identification |
US6614914B1 (en) * | 1995-05-08 | 2003-09-02 | Digimarc Corporation | Watermark embedder and reader |
US6546112B1 (en) * | 1993-11-18 | 2003-04-08 | Digimarc Corporation | Security document with steganographically-encoded authentication data |
US7113596B2 (en) * | 1993-11-18 | 2006-09-26 | Digimarc Corporation | Embedding information related to a subject of an identification document in the identification document |
US7313251B2 (en) | 1993-11-18 | 2007-12-25 | Digimarc Corporation | Method and system for managing and controlling electronic media |
US5768426A (en) | 1993-11-18 | 1998-06-16 | Digimarc Corporation | Graphics processing system employing embedded code signals |
US6516079B1 (en) | 2000-02-14 | 2003-02-04 | Digimarc Corporation | Digital watermark screening and detecting strategies |
US6944298B1 (en) * | 1993-11-18 | 2005-09-13 | Digimare Corporation | Steganographic encoding and decoding of auxiliary codes in media signals |
US6611607B1 (en) | 1993-11-18 | 2003-08-26 | Digimarc Corporation | Integrating digital watermarks in multimedia content |
US5862260A (en) | 1993-11-18 | 1999-01-19 | Digimarc Corporation | Methods for surveying dissemination of proprietary empirical data |
US7171016B1 (en) | 1993-11-18 | 2007-01-30 | Digimarc Corporation | Method for monitoring internet dissemination of image, video and/or audio files |
US6763122B1 (en) | 1999-11-05 | 2004-07-13 | Tony Rodriguez | Watermarking an image in color plane separations and detecting such watermarks |
US5493677A (en) * | 1994-06-08 | 1996-02-20 | Systems Research & Applications Corporation | Generation, archiving, and retrieval of digital images with evoked suggestion-set captions and natural language interface |
US7724919B2 (en) | 1994-10-21 | 2010-05-25 | Digimarc Corporation | Methods and systems for steganographic processing |
US6560349B1 (en) | 1994-10-21 | 2003-05-06 | Digimarc Corporation | Audio monitoring using steganographic information |
US7007166B1 (en) | 1994-12-28 | 2006-02-28 | Wistaria Trading, Inc. | Method and system for digital watermarking |
US7362775B1 (en) | 1996-07-02 | 2008-04-22 | Wistaria Trading, Inc. | Exchange mechanisms for digital information packages with bandwidth securitization, multichannel digital watermarks, and key management |
US7224819B2 (en) | 1995-05-08 | 2007-05-29 | Digimarc Corporation | Integrating digital watermarks in multimedia content |
US6590996B1 (en) | 2000-02-14 | 2003-07-08 | Digimarc Corporation | Color adaptive watermarking |
US6721440B2 (en) * | 1995-05-08 | 2004-04-13 | Digimarc Corporation | Low visibility watermarks using an out-of-phase color |
US7054462B2 (en) | 1995-05-08 | 2006-05-30 | Digimarc Corporation | Inferring object status based on detected watermark data |
US6988202B1 (en) * | 1995-05-08 | 2006-01-17 | Digimarc Corporation | Pre-filteriing to increase watermark signal-to-noise ratio |
US6760463B2 (en) | 1995-05-08 | 2004-07-06 | Digimarc Corporation | Watermarking methods and media |
US6763123B2 (en) | 1995-05-08 | 2004-07-13 | Digimarc Corporation | Detection of out-of-phase low visibility watermarks |
US20090097695A9 (en) * | 1995-05-08 | 2009-04-16 | Rhoads Geoffrey B | Personal document authentication system using watermarking |
US7620200B2 (en) * | 1995-05-08 | 2009-11-17 | Digimarc Corporation | Authentication of identification documents |
US7555139B2 (en) | 1995-05-08 | 2009-06-30 | Digimarc Corporation | Secure documents with hidden signals, and related methods and systems |
US6744906B2 (en) * | 1995-05-08 | 2004-06-01 | Digimarc Corporation | Methods and systems using multiple watermarks |
US5613004A (en) | 1995-06-07 | 1997-03-18 | The Dice Company | Steganographic method and device |
US7562392B1 (en) * | 1999-05-19 | 2009-07-14 | Digimarc Corporation | Methods of interacting with audio and ambient music |
US6411725B1 (en) * | 1995-07-27 | 2002-06-25 | Digimarc Corporation | Watermark enabled video objects |
US7289643B2 (en) | 2000-12-21 | 2007-10-30 | Digimarc Corporation | Method, apparatus and programs for generating and utilizing content signatures |
DE69636084T2 (en) * | 1995-09-28 | 2006-09-14 | Nec Corp. | Method and apparatus for inserting a spread spectrum watermark into multimedia data |
US6466209B1 (en) * | 1995-12-07 | 2002-10-15 | Ncr Corporation | Method for transparent marking of digital images for storage, retrieval and processing within a computer database |
JP2958396B2 (en) * | 1995-12-20 | 1999-10-06 | 富士ゼロックス株式会社 | Image forming device |
US5822432A (en) * | 1996-01-17 | 1998-10-13 | The Dice Company | Method for human-assisted random key generation and application for digital watermark system |
US6205249B1 (en) | 1998-04-02 | 2001-03-20 | Scott A. Moskowitz | Multiple transform utilization and applications for secure digital watermarking |
US7664263B2 (en) | 1998-03-24 | 2010-02-16 | Moskowitz Scott A | Method for combining transfer functions with predetermined key creation |
AU2435297A (en) * | 1996-04-02 | 1997-11-07 | Theodore G Handel | Data embedding |
US7715446B2 (en) * | 1996-04-25 | 2010-05-11 | Digimarc Corporation | Wireless methods and devices employing plural-bit data derived from audio information |
US20030056103A1 (en) * | 2000-12-18 | 2003-03-20 | Levy Kenneth L. | Audio/video commerce application architectural framework |
US7685426B2 (en) * | 1996-05-07 | 2010-03-23 | Digimarc Corporation | Managing and indexing content on a network with image bookmarks and digital watermarks |
US5970140A (en) * | 1996-05-08 | 1999-10-19 | The Regents Of The University Of California | Modular error embedding |
US6229924B1 (en) * | 1996-05-16 | 2001-05-08 | Digimarc Corporation | Method and apparatus for watermarking video images |
US6381341B1 (en) | 1996-05-16 | 2002-04-30 | Digimarc Corporation | Watermark encoding method exploiting biases inherent in original signal |
WO1997049235A1 (en) * | 1996-06-20 | 1997-12-24 | Ibm Japan Ltd. | Data hiding method and data extracting method |
US7095874B2 (en) | 1996-07-02 | 2006-08-22 | Wistaria Trading, Inc. | Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data |
US7159116B2 (en) | 1999-12-07 | 2007-01-02 | Blue Spike, Inc. | Systems, methods and devices for trusted transactions |
US7457962B2 (en) | 1996-07-02 | 2008-11-25 | Wistaria Trading, Inc | Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data |
US7177429B2 (en) | 2000-12-07 | 2007-02-13 | Blue Spike, Inc. | System and methods for permitting open access to data objects and for securing data within the data objects |
US5889868A (en) | 1996-07-02 | 1999-03-30 | The Dice Company | Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data |
US7346472B1 (en) | 2000-09-07 | 2008-03-18 | Blue Spike, Inc. | Method and device for monitoring and analyzing signals |
US5745900A (en) * | 1996-08-09 | 1998-04-28 | Digital Equipment Corporation | Method for indexing duplicate database records using a full-record fingerprint |
US5848155A (en) * | 1996-09-04 | 1998-12-08 | Nec Research Institute, Inc. | Spread spectrum watermark for embedded signalling |
US6069914A (en) * | 1996-09-19 | 2000-05-30 | Nec Research Institute, Inc. | Watermarking of image data using MPEG/JPEG coefficients |
US6625295B1 (en) * | 1996-09-13 | 2003-09-23 | Purdue Research Foundation | Authentication of signals using watermarks |
US5915027A (en) * | 1996-11-05 | 1999-06-22 | Nec Research Institute | Digital watermarking |
US7751596B2 (en) | 1996-11-12 | 2010-07-06 | Digimarc Corporation | Methods and arrangements employing digital content items |
US6021203A (en) * | 1996-12-11 | 2000-02-01 | Microsoft Corporation | Coercion resistant one-time-pad cryptosystem that facilitates transmission of messages having different levels of security |
US7730317B2 (en) | 1996-12-20 | 2010-06-01 | Wistaria Trading, Inc. | Linear predictive coding implementation of digital watermarks |
AUPO521897A0 (en) * | 1997-02-20 | 1997-04-11 | Telstra R & D Management Pty Ltd | Invisible digital watermarks |
US6211919B1 (en) * | 1997-03-28 | 2001-04-03 | Tektronix, Inc. | Transparent embedment of data in a video signal |
US6065119A (en) * | 1997-05-30 | 2000-05-16 | The Regents Of The University Of California | Data validation |
US6208735B1 (en) | 1997-09-10 | 2001-03-27 | Nec Research Institute, Inc. | Secure spread spectrum watermarking for multimedia data |
US6108434A (en) * | 1997-09-12 | 2000-08-22 | Signafy, Inc. | Counteracting geometric distortions for DCT based watermarking |
US6115485A (en) | 1997-10-06 | 2000-09-05 | General Electric Company | Introducing reduced data set information into a primary image data set |
US6037984A (en) * | 1997-12-24 | 2000-03-14 | Sarnoff Corporation | Method and apparatus for embedding a watermark into a digital image or image sequence |
US6208745B1 (en) | 1997-12-30 | 2001-03-27 | Sarnoff Corporation | Method and apparatus for imbedding a watermark into a bitstream representation of a digital image sequence |
US7054463B2 (en) | 1998-01-20 | 2006-05-30 | Digimarc Corporation | Data encoding using frail watermarks |
US6373974B2 (en) | 1998-03-16 | 2002-04-16 | Sharp Laboratories Of America, Inc. | Method for extracting multiresolution watermark images to determine rightful ownership |
DE19812826C1 (en) * | 1998-03-24 | 2000-03-02 | Fraunhofer Ges Forschung | Method for securing documents against forgery with an image, preferably with a passport image |
US6773547B2 (en) * | 1998-05-08 | 2004-08-10 | American Air Liquide, Inc. | Process for the bleaching of low consistency pulp using high partial pressure ozone |
IL124595A (en) | 1998-05-21 | 2009-09-01 | Yossef Tsuria | Anti-piracy system |
US6233347B1 (en) | 1998-05-21 | 2001-05-15 | Massachusetts Institute Of Technology | System method, and product for information embedding using an ensemble of non-intersecting embedding generators |
US6314192B1 (en) | 1998-05-21 | 2001-11-06 | Massachusetts Institute Of Technology | System, method, and product for information embedding using an ensemble of non-intersecting embedding generators |
US6400826B1 (en) | 1998-05-21 | 2002-06-04 | Massachusetts Institute Of Technology | System, method, and product for distortion-compensated information embedding using an ensemble of non-intersecting embedding generators |
US6473516B1 (en) * | 1998-05-22 | 2002-10-29 | Asa Systems, Inc. | Large capacity steganography |
US6021196A (en) * | 1998-05-26 | 2000-02-01 | The Regents University Of California | Reference palette embedding |
US6154571A (en) | 1998-06-24 | 2000-11-28 | Nec Research Institute, Inc. | Robust digital watermarking |
US6643382B1 (en) * | 1998-08-31 | 2003-11-04 | Canon Kabushiki Kaisha | Image processing method, image processing apparatus, image processing system and memory medium |
US7197156B1 (en) | 1998-09-25 | 2007-03-27 | Digimarc Corporation | Method and apparatus for embedding auxiliary information within original data |
US7532740B2 (en) | 1998-09-25 | 2009-05-12 | Digimarc Corporation | Method and apparatus for embedding auxiliary information within original data |
US7373513B2 (en) * | 1998-09-25 | 2008-05-13 | Digimarc Corporation | Transmarking of multimedia signals |
DE69923781T2 (en) | 1998-11-19 | 2005-07-07 | Digimarc Corp., Lake Oswego | PRINTING AND VERIFICATION OF SELF-CHECKING SAFETY DOCUMENTS |
JP3698901B2 (en) | 1998-12-03 | 2005-09-21 | 株式会社日立製作所 | Information embedding method and apparatus |
US6128736A (en) * | 1998-12-18 | 2000-10-03 | Signafy, Inc. | Method for inserting a watermark signal into data |
US6748533B1 (en) | 1998-12-23 | 2004-06-08 | Kent Ridge Digital Labs | Method and apparatus for protecting the legitimacy of an article |
GB2363300B (en) | 1998-12-29 | 2003-10-01 | Kent Ridge Digital Labs | Digital audio watermarking using content-adaptive multiple echo hopping |
US6678389B1 (en) | 1998-12-29 | 2004-01-13 | Kent Ridge Digital Labs | Method and apparatus for embedding digital information in digital multimedia data |
US7664264B2 (en) | 1999-03-24 | 2010-02-16 | Blue Spike, Inc. | Utilizing data reduction in steganographic and cryptographic systems |
JP3728136B2 (en) * | 1999-03-30 | 2005-12-21 | キヤノン株式会社 | Image processing apparatus, image processing method, and storage medium |
AU3907900A (en) * | 1999-04-06 | 2000-10-23 | Kwan Software Engineering, Inc. | System and method for digitally marking a file with a removable mark |
US6434701B1 (en) * | 1999-04-06 | 2002-08-13 | Kwan Software Engineering, Inc. | System and method for digitally marking a file |
US6792535B1 (en) * | 1999-04-06 | 2004-09-14 | Kwan Software Engineering, Inc. | System and method for digitally marking a file with a removable mark |
US6757827B1 (en) | 1999-04-26 | 2004-06-29 | Unisys Corporation | Autonomously secured image data |
IL129725A (en) * | 1999-05-02 | 2011-06-30 | Nds Ltd | Watermark system |
US7185201B2 (en) * | 1999-05-19 | 2007-02-27 | Digimarc Corporation | Content identifiers triggering corresponding responses |
US8103542B1 (en) | 1999-06-29 | 2012-01-24 | Digimarc Corporation | Digitally marked objects and promotional methods |
JP3703337B2 (en) * | 1999-06-30 | 2005-10-05 | キヤノン株式会社 | Image communication apparatus and image communication method |
WO2001018628A2 (en) | 1999-08-04 | 2001-03-15 | Blue Spike, Inc. | A secure personal content server |
US6130741A (en) * | 1999-09-27 | 2000-10-10 | Eastman Kodak Company | Embedding information in a digital image digitized from a developed photographic film |
JP3986226B2 (en) * | 1999-11-29 | 2007-10-03 | 株式会社日立製作所 | Data embedding device, data extraction device, methods thereof, and recording medium recording the method |
EP1134977A1 (en) * | 2000-03-06 | 2001-09-19 | Irdeto Access B.V. | Method and system for providing copies of scrambled content with unique watermarks, and system for descrambling scrambled content |
AU2001255445A1 (en) | 2000-04-17 | 2001-10-30 | Digimarc Corporation | Authentication of physical and electronic media objects using digital watermarks |
US8027509B2 (en) | 2000-04-19 | 2011-09-27 | Digimarc Corporation | Digital watermarking in data representing color channels |
US6993149B2 (en) * | 2001-09-25 | 2006-01-31 | Digimarc Corporation | Embedding digital watermarks in spot colors |
US6763124B2 (en) | 2000-04-19 | 2004-07-13 | Digimarc Corporation | Embedding digital watermarks in spot colors |
US6891959B2 (en) * | 2000-04-19 | 2005-05-10 | Digimarc Corporation | Hiding information out-of-phase in color channels |
US6804377B2 (en) * | 2000-04-19 | 2004-10-12 | Digimarc Corporation | Detecting information hidden out-of-phase in color channels |
US6912295B2 (en) | 2000-04-19 | 2005-06-28 | Digimarc Corporation | Enhancing embedding of out-of-phase signals |
US7738673B2 (en) | 2000-04-19 | 2010-06-15 | Digimarc Corporation | Low visible digital watermarks |
US7305104B2 (en) * | 2000-04-21 | 2007-12-04 | Digimarc Corporation | Authentication of identification documents using digital watermarks |
US7111168B2 (en) * | 2000-05-01 | 2006-09-19 | Digimarc Corporation | Digital watermarking systems |
US7346184B1 (en) | 2000-05-02 | 2008-03-18 | Digimarc Corporation | Processing methods combining multiple frames of image data |
US7508944B1 (en) * | 2000-06-02 | 2009-03-24 | Digimarc Corporation | Using classification techniques in digital watermarking |
US6633654B2 (en) * | 2000-06-19 | 2003-10-14 | Digimarc Corporation | Perceptual modeling of media signals based on local contrast and directional edges |
US6873726B2 (en) * | 2000-08-24 | 2005-03-29 | Fujitsu Limited | Information adding apparatus, information extracting apparatus, information adding method, information extracting method, and computer readable recording medium |
US7127615B2 (en) | 2000-09-20 | 2006-10-24 | Blue Spike, Inc. | Security based on subliminal and supraliminal channels for data objects |
US6961441B1 (en) | 2000-09-29 | 2005-11-01 | General Electric Company | Method and apparatus for steganographic embedding of meta-data |
JP3587168B2 (en) * | 2001-01-23 | 2004-11-10 | 日本ビクター株式会社 | Digital watermark information embedding device, embedding method, digital watermark information reproducing device and reproducing method |
US7043051B2 (en) * | 2001-02-21 | 2006-05-09 | Lg Electronics Inc. | Proprietary watermark system for secure digital media and content distribution |
US7181017B1 (en) | 2001-03-23 | 2007-02-20 | David Felsher | System and method for secure three-party communications |
US7058201B2 (en) * | 2001-03-28 | 2006-06-06 | Lg Electronics Inc. | Method of embedding watermark into digital image |
US8543823B2 (en) | 2001-04-30 | 2013-09-24 | Digimarc Corporation | Digital watermarking for identification documents |
US7958359B2 (en) | 2001-04-30 | 2011-06-07 | Digimarc Corporation | Access control systems |
US7502937B2 (en) * | 2001-04-30 | 2009-03-10 | Digimarc Corporation | Digital watermarking security systems |
KR100493284B1 (en) * | 2001-05-11 | 2005-06-03 | 엘지전자 주식회사 | Copy protection method and system for digital media |
US6650762B2 (en) * | 2001-05-31 | 2003-11-18 | Southern Methodist University | Types-based, lossy data embedding |
WO2003010728A1 (en) * | 2001-07-24 | 2003-02-06 | Koninklijke Kpn N.V. | Method and system and data source for processing of image data |
US7063264B2 (en) | 2001-12-24 | 2006-06-20 | Digimarc Corporation | Covert variable information on identification documents and methods of making same |
AU2002357259A1 (en) * | 2001-12-13 | 2003-07-09 | Digimarc Corporation | Reversible watermarking |
ATE509326T1 (en) | 2001-12-18 | 2011-05-15 | L 1 Secure Credentialing Inc | MULTIPLE IMAGE SECURITY FEATURES FOR IDENTIFYING DOCUMENTS AND METHOD FOR PRODUCING THEM |
US7694887B2 (en) | 2001-12-24 | 2010-04-13 | L-1 Secure Credentialing, Inc. | Optically variable personalized indicia for identification documents |
US7728048B2 (en) | 2002-12-20 | 2010-06-01 | L-1 Secure Credentialing, Inc. | Increasing thermal conductivity of host polymer used with laser engraving methods and compositions |
US7793846B2 (en) | 2001-12-24 | 2010-09-14 | L-1 Secure Credentialing, Inc. | Systems, compositions, and methods for full color laser engraving of ID documents |
WO2003055638A1 (en) | 2001-12-24 | 2003-07-10 | Digimarc Id Systems, Llc | Laser etched security features for identification documents and methods of making same |
US7567721B2 (en) * | 2002-01-22 | 2009-07-28 | Digimarc Corporation | Digital watermarking of low bit rate video |
US7231061B2 (en) * | 2002-01-22 | 2007-06-12 | Digimarc Corporation | Adaptive prediction filtering for digital watermarking |
US7886151B2 (en) | 2002-01-22 | 2011-02-08 | Purdue Research Foundation | Temporal synchronization of video and audio signals |
US7152786B2 (en) * | 2002-02-12 | 2006-12-26 | Digimarc Corporation | Identification document including embedded data |
US7415440B1 (en) | 2002-02-22 | 2008-08-19 | Entriq, Inc. | Method and system to provide secure key selection using a secure device in a watercrypting environment |
US6993196B2 (en) * | 2002-03-18 | 2006-01-31 | Eastman Kodak Company | Digital image storage method |
AU2003221894A1 (en) | 2002-04-09 | 2003-10-27 | Digimarc Id Systems, Llc | Image processing techniques for printing identification cards and documents |
US7287275B2 (en) | 2002-04-17 | 2007-10-23 | Moskowitz Scott A | Methods, systems and devices for packet watermarking and efficient provisioning of bandwidth |
AUPS206802A0 (en) * | 2002-05-01 | 2002-06-06 | Canon Kabushiki Kaisha | Steganographic image encoding |
US7824029B2 (en) | 2002-05-10 | 2010-11-02 | L-1 Secure Credentialing, Inc. | Identification card printer-assembler for over the counter card issuing |
US7519819B2 (en) * | 2002-05-29 | 2009-04-14 | Digimarc Corporatino | Layered security in digital watermarking |
US7577841B2 (en) | 2002-08-15 | 2009-08-18 | Digimarc Corporation | Watermark placement in watermarking of time varying media signals |
US7804982B2 (en) | 2002-11-26 | 2010-09-28 | L-1 Secure Credentialing, Inc. | Systems and methods for managing and detecting fraud in image databases used with identification documents |
US7712673B2 (en) | 2002-12-18 | 2010-05-11 | L-L Secure Credentialing, Inc. | Identification document with three dimensional image of bearer |
US9818136B1 (en) | 2003-02-05 | 2017-11-14 | Steven M. Hoffberg | System and method for determining contingent relevance |
EP1614064B1 (en) | 2003-04-16 | 2010-12-08 | L-1 Secure Credentialing, Inc. | Three dimensional data storage |
US7756288B2 (en) * | 2003-05-29 | 2010-07-13 | Jeffrey Lubin | Method and apparatus for analog insertion of low frequency watermarks |
US20050063562A1 (en) * | 2003-08-07 | 2005-03-24 | Brunk Hugh L. | Conveying fingerprint minutiae with digital watermarks |
US7460278B2 (en) * | 2004-01-29 | 2008-12-02 | Seiko Epson Corporation | 3-Dimensional dot code for paper storage |
US7744002B2 (en) | 2004-03-11 | 2010-06-29 | L-1 Secure Credentialing, Inc. | Tamper evident adhesive and identification document including same |
US8891811B2 (en) | 2004-09-17 | 2014-11-18 | Digimarc Corporation | Hierarchical watermark detector |
JP4975272B2 (en) * | 2005-05-30 | 2012-07-11 | 京セラ株式会社 | User terminal |
JP4124783B2 (en) * | 2005-08-30 | 2008-07-23 | 富士通株式会社 | Information embedding device and information embedding program |
US8442221B2 (en) | 2005-09-30 | 2013-05-14 | Konica Minolta Laboratory U.S.A., Inc. | Method and apparatus for image encryption and embedding and related applications |
US8874477B2 (en) | 2005-10-04 | 2014-10-28 | Steven Mark Hoffberg | Multifactorial optimization system and method |
US7679782B2 (en) * | 2006-03-09 | 2010-03-16 | Kabushiki Kaisha Toshiba | System and method for extracting grayscale data in accordance with a prescribed tolerance function |
US20080127287A1 (en) * | 2006-11-28 | 2008-05-29 | John Mezzalingua Associates, Inc. | Apparatus and method for embedding/detecting an auxiliary signal within a catv traffic stream |
GB0702091D0 (en) * | 2007-02-02 | 2007-03-14 | Fracture Code Corp Aps | Secure Barcode |
US8681129B2 (en) * | 2007-11-12 | 2014-03-25 | Hewlett-Packard Development Company, L.P. | Associating auxiliary data with digital ink |
US20110113006A1 (en) * | 2008-05-08 | 2011-05-12 | Motohiko Sakaguchi | Business process control apparatus, businesses process control method and business process control program |
US8199969B2 (en) | 2008-12-17 | 2012-06-12 | Digimarc Corporation | Out of phase digital watermarking in two chrominance directions |
US9117268B2 (en) * | 2008-12-17 | 2015-08-25 | Digimarc Corporation | Out of phase digital watermarking in two chrominance directions |
US8509474B1 (en) | 2009-12-11 | 2013-08-13 | Digimarc Corporation | Digital watermarking methods, apparatus and systems |
CN103188445A (en) * | 2013-02-16 | 2013-07-03 | 宝鸡市交通信息工程研究所 | Imaging method for automatically overlaying identity information to identification photo, special imaging system and immediate identity information updating method |
US9344218B1 (en) | 2013-08-19 | 2016-05-17 | Zoom Video Communications, Inc. | Error resilience for interactive real-time multimedia applications |
US9660803B2 (en) | 2015-09-15 | 2017-05-23 | Global Risk Advisors | Device and method for resonant cryptography |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS577648A (en) * | 1980-06-16 | 1982-01-14 | Oki Electric Ind Co Ltd | Secret communication system |
GB2204975B (en) * | 1987-05-19 | 1990-11-21 | Gen Electric Co Plc | Authenticator |
US4969041A (en) * | 1988-09-23 | 1990-11-06 | Dubner Computer Systems, Inc. | Embedment of data in a video signal |
US4972476A (en) * | 1989-05-11 | 1990-11-20 | Nathans Robert L | Counterfeit proof ID card having a scrambled facial image |
US5264837A (en) * | 1991-10-31 | 1993-11-23 | International Business Machines Corporation | Video insertion processing system |
US5721788A (en) * | 1992-07-31 | 1998-02-24 | Corbis Corporation | Method and system for digital image signatures |
US5321749A (en) * | 1992-09-21 | 1994-06-14 | Richard Virga | Encryption device |
US5291243A (en) * | 1993-02-05 | 1994-03-01 | Xerox Corporation | System for electronically printing plural-color tamper-resistant documents |
US5488664A (en) * | 1994-04-22 | 1996-01-30 | Yeda Research And Development Co., Ltd. | Method and apparatus for protecting visual information with printed cryptographic watermarks |
US5493677A (en) * | 1994-06-08 | 1996-02-20 | Systems Research & Applications Corporation | Generation, archiving, and retrieval of digital images with evoked suggestion-set captions and natural language interface |
-
1995
- 1995-02-23 US US08/392,642 patent/US5659726A/en not_active Expired - Fee Related
-
1996
- 1996-02-22 EP EP96910320A patent/EP0760981A1/en not_active Withdrawn
- 1996-02-22 CA CA002188050A patent/CA2188050A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US5659726A (en) | 1997-08-19 |
EP0760981A4 (en) | 1997-01-28 |
EP0760981A1 (en) | 1997-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5659726A (en) | Data embedding | |
US5819289A (en) | Data embedding employing degenerate clusters of data having differences less than noise value | |
AU5354696A (en) | Data embedding | |
US6591009B1 (en) | Information embedding method, apparatus and recording medium | |
US7239717B2 (en) | Lossless embedding of data in digital objects | |
US5778102A (en) | Compression embedding | |
Fridrich et al. | Lossless data embedding for all image formats | |
US5727092A (en) | Compression embedding | |
US7987370B2 (en) | Digital watermark systems and methods | |
US5970140A (en) | Modular error embedding | |
TW571251B (en) | Classification of features in compound documents | |
JP2008048431A (en) | Apparatus for identifying predominant color in digital image | |
EP1316917B1 (en) | Apparatus and method for embedding watermark into original information, transmitting watermarked information, and reconstructing the watermark | |
US20050123167A1 (en) | Method and system for watermarking an electronically depicted image | |
EP0768002B1 (en) | Lossy compression and expansion algorithm for image representative data | |
Handel | Data embedding employing degenerate clusters of data having differences less than noise value | |
Naskar et al. | Lossless data hiding for halftone images | |
AU741906B2 (en) | Invisible digital watermarks | |
Pradesh | Implementation of Video Steganography Using Hash Function in LSB | |
Aggarwal et al. | Hiding Text-Image in an Image using Steganography | |
Chitra et al. | Implementation of Video Steganography Using Hash Function in LSB | |
Olcay | LSB embedding methods on still images | |
Caeiro et al. | Detection of Steganography using Metadata in Jpeg Files |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FZDE | Discontinued |