Upload
phamque
View
215
Download
0
Embed Size (px)
Citation preview
Ehsan Syed
Digital Watermarking
2
DIGITAL WATERMARKING
- Final Report (EE 5359: Multimedia Processing)
Under the guidance of,
Dr. K. R. Rao
Submitted By,
Ehsan Syed
1000671971
The University of Texas at Arlington – Spring 2011
Ehsan Syed
Digital Watermarking
3
DIGITAL WATERMARKING
Introduction:
Watermarking is defined as the practice of altering a work to embed a message about that
work [1].
Embedding a digital signal (audio, video or image) with information which cannot be
removed easily is called digital watermarking.
Digital watermarking is based on the science of steganography [2] or data hiding.
Steganography comes from the Greek meaning ‘covered writing’. Steganography is
defined as the practice of undetectably altering a work to embed a secret message. It is an
area of research of communicating in a hidden manner.
Steganography and watermarking rely on imperfections of human senses. The eyes and
ears are not perfect detectors and cannot detect minor change therefore can be tricked into
thinking two images or sounds are identical but actually differ, for example in luminance
or frequency shift. The human eye has a limited dynamic range so low quality images
can be hidden within other high quality images [3].
Basic Principle:
There are three main stages in the watermarking process [4]:
• generation and embedding
• attacks
• retrieval/detection
Generation of watermarks is an important stage of the process. Watermarks contain
information that must be unique otherwise the owner cannot be uniquely identified. In
embedding, an algorithm accepts the host and the data to be embedded and produces a
watermarked signal. Various algorithms have been developed so far [5-14].The
watermarked signal is then transmitted or stored, usually transmitted to another person. If
this person makes a modification, this is called an attack. There are many possible
Ehsan Syed
Digital Watermarking
4
attacks. Detection is an algorithm which is applied to the attacked signal to attempt to
extract the watermark from it. If the signal is not modified during transmission, then the
watermark is still present and it can be extracted. If the signal is copied, then the
information is also carried in the copy. The embedding takes place by manipulating the
contents of the digital data, which means the information is not embedded in the frame
around the data, it is carried with the signal itself. Figure 1 shows the basic block diagram
of watermarking process.
Figure 1: Basic block diagram of watermarking
Embedding
Watermark
Image
Host
Image
Watermarked
Image
Extraction
Private Key
Private Key
Extracted
watermark
signal
Ehsan Syed
Digital Watermarking
5
Types of Watermarking:
There are mainly three types of watermarking [15]:
• Visible Watermarking
• Invisible Watermarking
• Dual watermarking
Below, are discussed the various types of digital watermarkings:
Visible Watermarking:
In visible watermarking of images, a secondary image (the watermark)
is embedded in a primary image such that watermark is intentionally
perceptible to a human observer [23].
Invisible Watermarking:
In invisible watermarking the embedded data is not perceptible, but may be
extracted by a computer program [23].
Invisible Robust Watermarking
Invisible Robust watermark cannot be manipulated without disturbing the host
signal. This is by far the most important requirement of a watermark. There are
various attacks, unintentional (cropping, compression, scaling) and unintentional
attacks which are aimed at destroying the watermark. So, the embedded
watermark should be such that it is invariant to various such attacks. They are
designed to resist any manipulations that may be encountered. All applications
where security is the main issue use robust watermarks
Ehsan Syed
Digital Watermarking
6
Invisible Fragile Watermarks
These watermarks are designed with very low robustness and are used to check
the integrity of objects.
Invisible Public and Private Watermark
They are differentiated in accordance with the secrecy requirements for the key
used to embed and retrieve watermarks. If the original image is not known during
the detection process then it is called a public or a blind watermark and if the
original image is known it is called a non blind watermark or a private watermark.
Dual watermarking:
The dual watermark is a combination of a visible watermark and an invisible
watermark.
A visible watermark is first inserted in the host image and then an invisible
watermark is added to the already visible-watermarked image. The final
watermarked image is the dual watermarked image [23].
Capacity
The length of the embedded message determines two different main classes of
digital watermarking schemes:
Zero-bit: The message is conceptually zero-bit long and the system is designed in
order to detect the presence or the absence of the watermark in the marked object.
This kind of watermarking scheme is usually referred to as zero-bit or presence
watermarking schemes. Sometimes, this type of watermarking scheme is called 1-
bit watermark, because a 1 denotes the presence (and a 0 the absence) of a
watermark.
N-bit: The message is a n-bit-long stream and is modulated in the watermark.
These kinds of schemes usually are referred to as multiple-bit watermarking or
non-zero-bit watermarking schemes.
Ehsan Syed
Digital Watermarking
7
Perceptibility:
A watermark is called imperceptible if the original cover signal and the marked
signal are perceptually indistinguishable. A watermark is called perceptible if its
presence in the marked signal is noticeable.
Techniques of Watermarking:
There are mainly two major techniques of watermarking [16]:
• Spatial domain: slightly modifies the pixels of one or two randomly selected
subsets of an image
• Frequency domain: this technique is also called transform domain. Values of
certain frequencies are altered from their original.
Spatial Domain:
In this type of watermarking, the pixels of one or two randomly selected subsets of
an image are modified. These modifications can even include the flipping of the low-
order bit of each pixel. But this technique is not considered reliable for normal media
operations like lossy compression or filtering [9].
- LSB Coding: The least significant bits of the host signals are modified by the
watermark signal.
- Correlation Based: Pseudo random noise (PN) with a pattern W(x, y) is added
to an image according to
����, �� = ���, �� + ∗���, ��
At the decoder the correlation between the random noise and the image is found. If
the value exceeds a threshold, watermark is detected.
Patchwork
This algorithm has been proposed as an image watermarking scheme at the outset.
This inserts the information into the time-domain signal. Original patchwork algorithm
[20] is refreshingly novel among many watermarking methods. Moreover, the population
Comment [s1]: Watermarked Image
Comment [s2]: Original Image
Comment [s3]: Gain
Ehsan Syed
Digital Watermarking
8
of each subset was very large: It was not adaptive to the signal: it added or subtracted
constant d independently of the signal strength. Nonetheless, it has provided a solid base
as an excellent tool for information hiding.
Frequency Domain
Discrete Cosine Transform (DCT): The sequence of data points in the spatial
domain are converted to the sum of sine and cosine waveforms with different amplitudes
in the frequency domain. Unlike Discrete Fourier Transform, this transform has only real
numbers when a cosine function is used. There are eight different variants of DCT with
slight modifications between them [17][18][19].
Discrete Wavelet Transform (DWT): In this transform the signal is decomposed into a
set of basic wavelets followed by the altering of lower frequencies at various resolutions
[17][18][19].
For this project, a form of spatial domain watermarking technique will be used.
Attacks:
Digital watermarking is immune to hacker attacks unlike data encryption. They are
broadly classified into the following categories:
• Removal attacks
• Geometrical attacks
• Cryptographic attacks
• Protocol attacks
Removal:
This aims at removing the watermark from the original data. This category includes
denoising, lossy compression, quantization, demodulation, collusion and averaging
attacks. Removes watermark from original signal.
Ehsan Syed
Digital Watermarking
9
Geometrical:
Instead of removing the watermark, the watermark is distorted using spatial or temporal
alteration of stego data.
Cryptographic:
If the image is watermarked such that it needs a key to decipher, brute force attacks are
used for exhaustive search to find the key to decipher. These are called cryptographic
attacks.
Basic:
In this attack, the attacker takes advantage of the limitations in design of the embedding
technique. The attack is very basic and can be easily resolved.
Robustness:
This may include removal attacks where the attacker aims at removing the watermark
from the host data. Also the attacker may try to diminish the data.
Presentation:
These attacks modify the content of the file in order to prevent the detection of the
watermark.
Interpretation:
These attacks find a situation where ownership certification is prevented. They rely on
misinterpretating the data to comply with ownership certification
Implementation:
This attacks the detection software. A marking system can provide more opportunities for
attack than the marking technique itself. If the mark detection software is vulnerable it
may be possible for attackers to deceive it.
Active & Passive:
Attacker removes or spoils the watermark. Attacker just identifies the watermark and
does not damage it.
Ehsan Syed
Digital Watermarking
10
Forgery:
Attacker forges new watermark and replaces the old one with the new one there by
misleading the end receiver.
Collusion:
Attacker decodes different copies with different watermarks and joins them to make one
single watermark.
Distortive:
Attacker applies distortive transformation to make the watermark undetectable by any
other person.
Desired Characteristics:
Some of the desired characteristics are [24][25][26]:
Visible watermarking:
• A visible watermark should be obvious in both color and monochrome images.
• The watermark should spread in a large or important area of the host image in
order to prevent its deletion by clipping.
• The watermark should be visible yet must not significantly obscure the image
details beneath it.
• The watermark must be difficult to remove. Rather removing a watermark should
be more costly and labor intensive than purchasing the image from the owner.
• The watermark should be applied automatically with little human intervention and
labor.
Invisible Watermarking:
• The invisible watermark should neither be noticeable to the viewer nor should
degrade the quality of the content
Ehsan Syed
Digital Watermarking
11
• An invisible watermark must be robust to common signal distortions and must be
resistant to various intentional tampering solely intended to remove the
watermark.
• Retrieval of watermark should unambiguously identify the owner.
• While watermarking high quality images and art works the amount of pixel
modification should be minimal.
• Insertion of watermark should require little human intervention or labor
Project Goal:
This project aims at embedding a watermark into an image using a form of spatial
domain technique, which is least significant bit technique, and also through concatenation
followed by the addition of noise and then performing JPEG compression and
decompression and followed by the removal of noise from the watermarked image and
then separating the watermark image from the watermarked image.
The following are the subdivisions of the project:
� Embedding the Watermark image into the Host image by LSB technique:
• Host image is selected
• A watermark image is selected
• The least significant bits (LSBs) of the host image will be replaced by the most
significant bits (MSBs) of the watermark image
• A watermarked image is obtained which contains the LSBs of watermark image
and the MSBs of the host image. This technique is called the LSB technique.
� Concatenation – Visible watermarking:
• Host image and the watermark image are concatenated
• The resultant image obtained is the watermarked image
� Addition of the noise to the watermarked image:
• A noise is initialized
• This noise is added to the watermarked image to implement as a form of attack
Ehsan Syed
Digital Watermarking
12
� Compression and Decompression of the watermarked image with Noise:
• The watermarked image with noise added to it is now JPEG compressed using
JPEG compressor software.
• The compressed image will now be decompressed using JPEG compressor
software
� Removing the noise from the watermarked image:
• The noise which was added to the watermarked image will now be removed
� Separating the watermark from the watermarked image:
• The watermark from the watermarked image is separated
• It gives host image and the watermark image
The tools used in this project’s implementation are MATLAB, Visual Studio.
Program:
(LSB technique for invisible watermarking)
host_image = input('Enter the host image file name with extension : ', 's');
wmrk_image = input('Enter watermark image file name with extension: ', 's');
host = imread(host_image);
wmrk = imread(wmrk_image);
figure(1)
imshow(host,[])
title('Host Image')
figure(2)
imshow(wmrk,[])
title('Watermark Image')
host=double(host);
wmrk=double(wmrk);
bits=1;
wmrk_shifted=bitshift(wmrk,-(8-bits));
for i=1:bits
host=bitset(host,i,0);
end
watermarked_image = uint8(host+wmrk_shifted);
figure(3)
imshow(watermarked_image,[])
title('Invisible Watermarked Image')
Comment [s4]: Asking the user to give a host
image which is to be watermarked
Comment [s5]: Asking the user to enter the
image to be used as a watermark
Comment [s6]: Reading the images
Comment [s7]: Displaying the images
Comment [s8]: Doubling the images so they will
be able to store the results of the addition
operations done on them
Comment [s9]: Assigning the no. of bits of the
watermark image to be replaced in the base image
Comment [s10]: Shifting the watermark 8-bits
onto the right
Comment [s11]: LSB’s of the host image are made zero
Comment [s12]: Adding host image and
watermark image
Comment [s13]: Displaying the Watermarked
image
Ehsan Syed
Digital Watermarking
13
(LSB technique for Visible watermarking)
host_image = input('Enter the host image file name with extension : ', 's');
wmrk_image = input('Enter watermark image file name with extension: ', 's');
host = imread(host_image);
wmrk = imread(wmrk_image);
figure(1)
imshow(host,[])
title('Host Image')
figure(2)
imshow(wmrk,[])
title('Watermark Image')
host=double(host);
wmrk=double(wmrk);
bits=1;
wmrk_shifted=bitshift(wmrk,-(8-bits));
for i=1:bits
host=bitset(host,i,0);
end
watermarked_image = uint8(host+wmrk_shifted);
figure(3)
imshow(watermarked_image,[])
title('Invisible Watermarked Image')
Algorithm:
The aforementioned program is written in MATLAB and is executed. The
following points explain the program code:
• It asks the user to input the Host image and the Watermark image
• It reads the images input by the user and displays them
• It then doubles the images for the subsequent operations
• It then assigns the no. of bits of host image to be replaced by the
watermark image
• Each pixel is an 8-bit byte, hence the watermark image is shifted to 8-(no.
of bits assigned) places to the right
2�� 2�
� 2�� 2�
� 2�� 2�
� 2�� 2�
� Table 1: Watermark pixel before bit-shift
• The above (table 1) is the representation of the pixel of the watermark
image before the bit-shift. The following (table 2) is the representation of
the pixel after the bit-shift
2�� 2�
� 2��
Table 2: Watermark pixel after bit-shift (bits=3)
• The host image assigns its LSBs to zeroes as many as the no. of bits
assigned
Comment [s14]: Asking the user to give a host
image which is to be watermarked
Comment [s15]: Asking the user to enter the
image to be used as a watermark
Comment [s16]: Reading the images
Comment [s17]: Displaying the images
Comment [s18]: Doubling the images so they
will be able to store the results of the addition
operations done on them
Comment [s19]: Assigning the no. of bits of the
watermark image to be replaced in the base image
Comment [s20]: Shifting the watermark 8-bits
onto the right
Comment [s21]: LSB’s of the host image are made zero
Comment [s22]: Adding host image and
watermark image
Comment [s23]: Displaying the Watermarked
image
Ehsan Syed
Digital Watermarking
14
2�� 2�
� 2�� 2�
� 2�� 2�
� 2�� 2�
� Table 3: Host image before the LSBs are made zero
• The above (table 3) is the representation of the pixel of the host image before the
least significant bits are made zero. The following (table 4) is the representation
of the pixel after the LSBs are made zero
2�� 2�
� 2�� 2�
� 2�� 0 0 0
Table 4: Host image after the LSBs are made zero (bits=3)
• The host image and the watermark images area added to give the watermarked
image (shown in table 5)
2�� 2�
� 2��
+
2�� 2�
� 2�� 2�
� 2�� 0 0 0
=
��� ��
� ��� ��
� ��� ��
� ��� ��
Table 5: Watermarked image pixel with MSBs of host image and LSBs of watermark
Concatenation – Visible Watermarking:
A zero matrix 512x512 is defined
The host image is written in the zero matrix in the alternate row and column
indexes
The base image is written in the zero matrix in the alternate row and column
indexes
The remaining indexes of the zero matrix are kept zero, hence the concatenated
watermarked image has a mesh-like structure
Ehsan Syed
Digital Watermarking
15
H H H H H H
H H H H H H
H H H H H H
H H H H H H
H H H H H H
H H H H H H
H H H H H H
Table 6: Host image 256X256
The table.6 shown above is the representation of the 256x256 host image.
The table.7 shown below is the representation of the 256x256 watermark image.
W W W W W W
W W W W W W
W W W W W W
W W W W W W
W W W W W W
W W W W W W
W W W W W W
Table 7: Watermark image 256x256
Ehsan Syed
Digital Watermarking
16
A zero matrix 512x512 is initialized. It is shown below in the table.8
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
Table 8: Zero matrix initialized 512x512
The table.9 below shows the zero matrix representation after the host image indexes are placed
alternately on rows and columns
H 0 H 0 H 0
0 0 0 0 0 0
H 0 H 0 H 0
0 0 0 0 0 0
H 0 H 0 H 0
0 0 0 0 0 0
H 0 H 0 H 0
Table 9: Zero matrix 512x512 after Host image indexes placed alternately on row and column indexes
Ehsan Syed
Digital Watermarking
17
After the watermark image indexes are placed alternately on rows and columns of the zero matrix
indexes, the remaining indexes of the zero matrix are kept zero. Hence the concatenated watermarked
imaged has a mesh like structure. The table.10 below shows the representation of concatenation of the
host image and the watermark image.
H 0 H 0 H 0
0 W 0 W 0 W
H 0 H 0 H 0
0 W 0 W 0 W
H 0 H 0 H 0
0 W 0 W 0 W
H 0 H 0 H 0
Table 10: Zero matrix 512x512 after the watermark image indexes placed alternately on row and column indexes
Program:
(Visible watermarking by concatenation) host_image = 'albert.jpg'; wm_image = 'arlington.jpg';
host = imread(host_image); wm = imread(wm_image);
figure(1) imshow(host,[]) title('Host image')
figure(2) imshow(wm,[]) title('Watermark Image')
host=double(host);
Comment [s24]: Giving the host image
Comment [s25]: Giving the watermark image
Comment [s26]: Reading the given images
Comment [s27]: Displaying the Host image
Comment [s28]: Displaying the watermark
image
Ehsan Syed
Digital Watermarking
18
wm=double(wm);
rd = zeros([512 512]); m=1; n=1; rm = 1; rn = 1;
for i=1:256 for j=1:256 rd(rm,rn)=host(m,n); n=n+1; rn=rn+2; end m= m+1; n = 1; rm=rm+2; rn=1; end
m=1; n=1; rm = 2; rn = 2; for i=1:256 for j=1:256 rd(rm,rn)=wm(m,n); n=n+1; rn=rn+2; end m= m+1; n = 1; rm=rm+2; rn=1; end
rd =uint8(rd);
figure(3) imshow(rd,[]) title('Watermarked Image)') imwrite(rd,'Visible Watermarked.bmp');
(Adding noise to the watermarked image)
image = imread('Visible Watermarked.bmp');
noisy = 80*rand([512 512]); figure(4) imshow(noisy,[])
Comment [s29]: Converting the images to
double precision
Comment [s30]: Defining a matrix
Comment [s31]: Defining variables
Comment [s32]: Defining a loop to write the
base image on the alternate pixels
Comment [s33]: Defining a loop to write the
watermark image on the alternate pixels
Comment [s34]: Converting to 8-bit
Comment [s35]: Displaying the concatenated
watermarked image
Comment [s36]: Saving the watermarked image
Comment [s37]: Defining the watermarked
image to a variable for adding noise
Comment [s38]: Initializing noise as a random
matrix
Comment [s39]: Displaying noise matrix
Ehsan Syed
Digital Watermarking
19
image1= double(image) + double(noisy);
image2 = uint8(image1); figure(4) imshow(image2); title('Watermarked image with noise added to it') imwrite(image1,'Noise_img.jpg')
(Removing the noise from the watermarked image)
image3=imread(decompressed_img.jpg');
image3 = image1(:,:,1); image4 = double(image1) - double(noisy); image4 = uint8(image4);
figure(5) imshow(image4,[]); title('Recovered image from noise') imwrite(image4,'Watermarked Image Recovered.bmp') image4=double(image4);
(Separation of the watermark image from the host image) rm = 1; rn = 1;
for i=1:256 for j=1:256 host(i,j)=rd(rm,rn); rn=rn+2; end rn=1; rm=rm+2; end rm = 2; rn = 2;
for i=1:256 for j=1:256 wm(i,j)=rd(rm,rn); rn=rn+2; end rn=1; rm=rm+2; end
host=uint8(host); wm=uint8(wm);
figure(6) imshow(host,[])
Comment [s40]: Doubling the images to make
them of the same size
Comment [s41]: Converting to 8-bit
Comment [s42]: Displaying the watermarked
image with noise added to it
Comment [s43]: Saving the watermarked image
with noise
Comment [s44]: Reading the saved
watermarked image with noise
Comment [s45]: Removing the noise from the
watermarked image with noise
Comment [s46]: Displaying the image after
removing the noise
Comment [s47]: Saving the recovered image
Comment [s48]: Loops for reading and
separating the watermark image and the host image
from the concatenated watermarked image
Comment [s49]: Converting watermark and host
images to 8-bit
Ehsan Syed
Digital Watermarking
20
title('Separated Host Image’)
figure(7) imshow(wm,[]) title('Separated Watermark Image')
Results:
LSB:
The Host image is shown in the fig. 2
The watermark image is shown in the fig. 3
The invisible watermarked images are shown in the fig. 4
The visible watermarked image is shown in fig. 5
Concatenation:
The host image is shown in the fig. 6
The watermark image is shown in the fig. 7
The concatenated watermarked image is shown in fig. 8
The random noise generated is shown in fig. 9
The watermarked image with noise added to it is shown in fig. 10
JPEG compressed image is shown in fig. 11
Decompressed image is shown in fig. 12
Watermarked image with noise removed is shown in fig. 13
Separated host image is shown in fig. 14
Separated watermark image is shown in fig. 15
Comment [s50]: Displaying the separated host
image
Comment [s51]: Displaying the separated
watermark image
Ehsan Syed
Digital Watermarking
22
Figure 4: Invisible watermarked image by LSB technique
Figure 5: Visible watermarked image by LSB technique
Ehsan Syed
Digital Watermarking
23
Concatenation – visible watermarking
Figure 6: Host image (256x256)
Figure 7: Watermark image (256x256)
Ehsan Syed
Digital Watermarking
25
Figure 9: Random noise 512x512 initiated as a form of attack to the watermarked image
Ehsan Syed
Digital Watermarking
27
Figure 11: JPEG compressed watermarked image as another form of attack 512x512
Ehsan Syed
Digital Watermarking
29
Figure 13: Watermarked image after the removal of the noise 512x512
Ehsan Syed
Digital Watermarking
30
Figure 14: Separated Host image 256x256 from the concatenated watermarked image
Figure 15: Separated watermark image 256x256 from the concatenated watermarked image
Ehsan Syed
Digital Watermarking
31
Conclusions:
� A MATLAB code was written and successfully implemented
� Visible and invisible watermarking types were implemented
� LSB technique and concatenation methods were implemented
� Noise and JPEG compression was done to the watermarked image as attack forms
� Noise was removed from the concatenated image and the host image and the
watermark images were successfully separated
References:
1. I. Cox et al, "Digital Watermarking", Journal of Electronic Imaging, Vol. 11,
No.3, July 2002
2. L.M. Marnel et al, “Spread spectrum image steganography”, IEEE Transactions on
Image Processing, pp 1075-1083, Aug 1999
3. J.J.K O-Ruanaidh et al, “Watermarking digital images for copyright protection,
IEE Proceedings in Vision”, Image and Signal Processing, pp250-256, Aug 1996
4. I. J. Cox and M. L. Miller, “A review of watermarking and the importance of
perceptual modeling”, Proceedings of Electronic Imaging, February 1997
5. H.J. Wang et al, “Wavelet based digital image watermarking “, Optics Express, PP
491-496, Dec 1998
6. P.-T.Yu et al, “ Digital watermarking based on neural networks for color images”,
Signal Processing, PP 663-671, Mar 2001
Ehsan Syed
Digital Watermarking
32
7. J. O-Ruanaidh et al, “Cryptographic copyright protection for digital images based
on watermarking techniques”, Theoretical Computer Science, pp 117-142, Sep
1999
8. C. Fornaro and A.Sanna, “Public key watermarking for authentication of CSG
models”, Computer-Aided design, pp 727-735, Oct 2000
9. M. Barni et al, “Copyright protection of digital images by embedded
unperceivable marks”, Image and Vision Computing, pp897-906, Aug 1998
10. J.R. Hernandez et al, “Improving the performance of spatial watermarking of
images using channel coding”, Signal Processing, pp 1261-1279, July 2000
11. S. Pereira et al, “Optimal transform domain watermark embedding via linear
programming”, Signal Processing, pp 1251-1260, July 2001
12. F. Perez-Gonzalez et al, “Approaching the capacity limit in image watermarking: a
perspective on coding techniques for data hiding applications”, Signal Processing,
pp 1215-1238, July 2001
13. R. Baitello et al, “From watermark detection to watermark decoding: a PPM
approach”, Signal Processing, pp 1261-1271 , July 2001
14. M. Barni et al, “A DCT-domain system for robust image watermarking”, Signal
Processing, pp 357-372, May 1998
15. S. P. Mohanty, et al, “A Dual Watermarking Technique for images”, Proceedings
of the seventh ACM international conference on Multimedia, pp 49-51, 1999
16. F. Hartung and M. Kutter, “Multimedia watermarking techniques”, Proceedings of
the IEEE, Vol. 87, No. 7, pp 1079 – 1107, July 1999
17. N. Ahmed, et al, "Discrete cosine transform", IEEE Trans. Computers, Vol. 23(1),
pp. 90-93, Jan. 1974
18. V. Britanak, et al, “Discrete Cosine Transform: Properties, Algorithms,
Advantages, Applications”, Academic Press Publications, ISBN 978-0-12-
373624-6, Boston, 1990.
19. J. Cummins, et al, “Steganography and digital watermarking”, School of
Computer Science, The University of Birmingham, 2004 Website:
http://www.cs.bham.ac.uk/~mdr/teaching/modules03/security/students/SS5/Stegan
ography.pdf
20. W. Bender et al, “Techniques for data hiding,” IBM Systems Journal, Vol. 35,
Nos. 3&4, 1996
21. R. Popa, “An analysis of steganographic techniques”, The Politehnica University
of Timisoara, Faculty of Automatics and Computers, Department of Computer
Science and Software Engineering, Website: http://ad.informatik.uni-
freiburg.de/mitarbeiter/will/dlib_bookmarks/digital-watermarking/popa/popa.pdf,
1998
22. T. Natarajan, and K. R. Rao, "Discrete cosine transform", IEEE Trans. Computers,
Vol. 23(1), pp. 90-93, Jan. 1974
23. S. P. Mohanty et al, “A dual watermarking technique for images”, ACM, 1999.
24. M. Yeung et al, “Digital Watermarking for High-Quality Imaging”, Proc. IEEE
First Workshop on Multimedia Signal Processing, Princeton, New Jersey, pp- 357-
362, June 1997
Ehsan Syed
Digital Watermarking
33
25. F. Mintzer et al, “Effective and Ineffective Digital Watermarks”, IEEE
International Conference on Image Processing, ICIP-97, Vol.3, pp. 9-12 , 1997.
26. I. J. Cox et al, “Secure Spread Spectrum Watermarking of Images, Audio and
Video”, Proc. IEEE International Conference on Image Processing, ICIP-96,
Vol.3, pp. 243-246, 1996
27. Advanced JPEG compressor, Website: http://www.winsoftmagic.com/ajc.html
28. MATLAB, Mathworks, Website:
http://www.mathworks.com/products/matlab/tryit.html