<< Chapter < Page | Chapter >> Page > |
We arrived at our first data hiding method, which we called“zero hiding,”quite intuitively. If you recall, our compression algorithm removed the least important DCTcoefficients. It follows, then, that we could put the bit stream we wish to hide back into these dropped coefficients without changingthe image drastically. To do this though, there must be a way to distinguish a zero which resulted from a dropped coefficient and acoefficient that is zero. To do this, we ran the image through a modified compressor that, instead of dropping coefficients belowthe specified threshold, replaced them with either a plus or minus one, depending on the sign of the coefficient.
Next the hiding algorithm is given a binary data stream and the threshold value. The data stream is thendivided up into words. However, the maximum decimal value of the word must be less than the threshold, since values over thethreshold signify an important coefficient in the picture. We then increment each word’s decimal value by one to avoid putting in zero valued coefficients, which would otherwise be indistinguishablefrom zero valued coefficients in the original image. We then go back to the original coefficients matrix and replace the ones withthe new value of the data word, maintaining the sign throughout.
To recover the hidden data the recovery script is given the threshold, and subtracts one from all DCTcoefficients blow that threshold and tacks their binary values together, forming the original binary data.
Notification Switch
Would you like to follow the 'Elec 301 - steganography - what's in your picture?' conversation and receive update notifications?