11.10.2013 Views

Digital Watermarking (PDF, 743KB)

Digital Watermarking (PDF, 743KB)

Digital Watermarking (PDF, 743KB)

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Digital</strong> watermarking<br />

1. INTRODUCTION<br />

With the widespread distribution of digital media contents, the protection of the<br />

intellectual property rights has become increasingly important. <strong>Digital</strong> media offer<br />

several distinct advantages over analog media, such as high quality, easy editing, high<br />

fidelity copying. The ease by which digital information can be duplicated and<br />

distributed has led to the need for effective copyright protection tools. Various<br />

software products have been recently introduced in attempt to address these growing<br />

concerns. It is done by hiding data (information) within digital audio, images, text<br />

documents and video files. One way such data hiding is digital signature, copyright<br />

label or digital watermarking that completely characterizes the person who applies it<br />

and, therefore, marks it as being his intellectual property.<br />

2. DEFINITION AND TERMS<br />

<strong>Digital</strong> watermarking is the process that embeds data called a watermark into a<br />

multimedia object such that watermark can be detected or extracted later to make an<br />

assertion about the object. <strong>Watermarking</strong> is either “visible” or “invisible”. Perceptible<br />

mark (“visible watermark”) of ownership or authenticity has been around for centuries<br />

in the form of stamps, seals, signatures or classical watermarks. Nevertheless, given<br />

current data manipulation technologies, imperceptible digital watermarks are<br />

mandatory in most applications. A <strong>Digital</strong> watermark is distinguishing piece of<br />

information that is adhered to the data that is intended to protect. This means that it<br />

should be very difficult to extract or remove the watermark from the watermarked<br />

object. Since watermarking can be applied to various types of data, the<br />

imperceptibility constraint will take different forms, depending on the properties of the<br />

recipient (i.e., the human senses in most cases).<br />

3. TYPICAL WATERMARKING APPLICATIONS<br />

A number of watermarking applications include the following:<br />

• Copyright Protection: for the protection of intellectual property, the data<br />

owner can embed a watermark representing copyright information in his data.<br />

This watermark can prove his ownership in court when someone has infringed<br />

on his copyrights.<br />

• Fingerprinting: to trace the source of illegal copies, the owner can use the<br />

fingerprinting technique. In this case, the owner can embed different<br />

watermarks in the copies of the data that are supplied to different customers.<br />

Fingerprinting can be compared to embedding a serial number that is related to<br />

the customer’s identity in the data. It enables the intellectual property owner to<br />

identify customers who have broken their license agreement by supplying the<br />

data to third parties.<br />

• Copy protection: the information stored in watermark can directly control<br />

digital recording devices for copy protection purposes. In this case the<br />

watermark represents a copy-prohibit bit and watermark detectors in the<br />

1


ecorder determine whether the data offered to the recorder may be stored or<br />

not.<br />

• Broadcast monitoring: by embedding watermark in commercial<br />

advertisements, an automated monitoring system can verify whether the<br />

advertisements are broadcasted as contracted. Broadcast monitoring can<br />

protect not only the commercials but also the valuable TV products.<br />

• Data authentication: fragile watermarks can be used to check the authenticity<br />

of data. A fragile watermark indicates whether the data has been altered and<br />

applies localization information as to where the data was altered.<br />

• Indexing: indexing of video mail, where comments can be embedded in the<br />

video content; indexing of movies and news items, where markers and<br />

comments can be inserted that can be used by search engines.<br />

• Medical safety: embedding the date and the patient’s name in medical images<br />

could be useful safety measure.<br />

• Data Hiding: watermark techniques can be used for the transmission of secret<br />

messages. Since various governments restrict the use of encryption services,<br />

people can hide their messages in other data.<br />

4. TYPES OF DIGITAL WATERMARKS<br />

Watermarks and watermarking techniques can be divided into various categories in<br />

various ways. The watermarking can be applied in spatial domain. An alternative to<br />

spatial domain watermarking is frequency domain watermarking. Different types of<br />

watermarks are shown in the figure below. (Fig. 1)<br />

Spatial<br />

Domain<br />

According to Working<br />

Domain<br />

Frequency<br />

Domain<br />

Text<br />

Image<br />

<strong>Watermarking</strong><br />

According to Type of<br />

Document<br />

Audio<br />

Private<br />

Video<br />

Invisible<br />

Robust Fragile<br />

Public<br />

Figure 1: Types of watermarking techniques.<br />

According to Human<br />

Perception<br />

Semi-Private<br />

Visible<br />

Dual<br />

2


<strong>Watermarking</strong> techniques can be divided into four categories according to the type of<br />

multimedia document to be watermarked as follows:<br />

• Image <strong>Watermarking</strong><br />

• Video <strong>Watermarking</strong><br />

• Audio <strong>Watermarking</strong><br />

• Text <strong>Watermarking</strong>.<br />

According to the human perception, the digital watermarks can be divided into three<br />

different types as follows:<br />

• Visible watermark<br />

• Invisible-Robust watermark<br />

• Invisible-Fragile watermark<br />

• Dual watermark.<br />

Visible watermark is such a watermark that it appears visible to a casual viewer on a<br />

careful inspection. The invisible-robust watermark is embedded in such a way that<br />

alterations made to the pixel is perceptually not noticed. Also the watermark should<br />

withstand the classical signaling operation (so called “attacks”, see section 8) and it<br />

can be recovered only with appropriate decoding mechanism. The invisible-fragile<br />

watermark is embedded in such a way that any manipulation or modification of the<br />

image would alter or destroy the watermark. Dual watermark is a combination of a<br />

visible and an invisible watermark. In this type of watermark an invisible watermark is<br />

used as a back up for the visible watermark.<br />

An invisible robust private watermarking scheme requires at least the original or<br />

reference image for watermark detection. Type I systems, extract the watermark from<br />

the tested, possibly distorted image and use the original image as a hint to find where<br />

the watermark could be in possibly distorted image. Type II systems also require a<br />

copy of the embedded watermark for extraction and just yield a “yes” or “no” answer<br />

to the question: does the tested image contain the watermark? It is expected that this<br />

kind of scheme will be more robust than the others since it conveys very little<br />

information and requires access to the secret material. An invisible robust semiprivate<br />

watermarking does not use the original image for detection but answers the<br />

same “yes/no“ question. An invisible robust public watermarking (also referred to as<br />

blind watermarking) remains the most challenging problem since it requires neither<br />

the secret original image nor the embedded watermark. Indeed such system really<br />

extracts the watermark from the watermarked image. Public watermarks have much<br />

more applications than the others, actually the embedding algorithms used in public<br />

systems can always be used into a private one improving robustness at the same time.<br />

Regarding to the key material necessary for watermark extraction one distinguishes:<br />

• Public key<br />

• Private key<br />

• Asymmetric, which has the property that any user can read the watermark,<br />

without being able to remove it.<br />

3


5. WATERMARK REQUIREMENTS FOR STILL IMAGES<br />

A lot of watermarking techniques have been proposed in the open literature in the<br />

recent years. In order to be effective, a watermark should have the main characteristics<br />

outlined below:<br />

• Perceptual Transparency: the embedding algorithm must embed the<br />

watermark in such a way that this does not affect the quality of the host image.<br />

If the humans cannot distinguish the original data from the data with the<br />

inserted watermark than a watermark-embedding procedure is truly<br />

imperceptible. Even the smallest modification in the host image may become<br />

apparent when the original data is compared with watermarked data. Usually<br />

the users of the watermarked data do not have access to the original data. Thus,<br />

they cannot perform this comparison. It may be sufficient that the<br />

modifications in the watermarked data go unnoticed as long as the data are not<br />

compared with the original image.<br />

• Payload of the Watermark: the amount of information that can be stored in a<br />

watermark depends on the application. For the copy protection purposes, a<br />

payload of one bit is usually sufficient. Roughly 70 bits of information should<br />

be embedded in an image. This does not include extra bits added for error<br />

correction codes, which could be also used in watermarking schemes.<br />

• Robustness: The watermark must be difficult to remove. The watermark<br />

should be resilient to standard manipulations of unintentional as well as in<br />

intentional nature. It should be robust against various common signal<br />

processing techniques (compression, quantization, etc.) and common<br />

geometric distortions (cropping, rotation, etc.). Secondly, it should be<br />

statistically unremovable, that is, a statistical analysis should not produce any<br />

advantage from the attacking point of view. However, both the type of<br />

manipulations and the attacker expected computational power heavily depend<br />

on the application.<br />

• Unambiguousness: the retrieval of the watermark should unambiguously<br />

identify the owner.<br />

6. STRUCTURE OF A TYPICAL WATERMARKING SYSTEM<br />

Every watermarking system consists at least of two different parts: watermark<br />

embedding unit and watermark detection and extraction unit.<br />

A. Embedding process:<br />

Figure 2 shows an example of embedding unit for still images. Let us denote an<br />

original image by I, a watermark by W={w1, w2, ..., wL}, where L is the length of the<br />

watermark sequence, and the watermarked image by I.’ The embedding function . E<br />

takes an image I and a watermark W and it generates a new image which is called<br />

watermarked image I’. The original image can be before the watermark embedding<br />

transformed in the frequency domain or the watermark embedding can be performed<br />

in spatial domain. It depends on the selected watermarking technique. If the<br />

embedding is performed in frequency domain , the inverse transform should be<br />

applied to obtain the watermarked image. Mathematically,<br />

4


E ( I , W ) = I '<br />

(1)<br />

for the spatial domain technique or:<br />

E ( f , W ) = I '<br />

(2)<br />

for the frequency domain technique, where f are coefficients of the applied<br />

transformation.<br />

Figure 2 illustrates the embedding process.<br />

Original<br />

image (I)<br />

Spatial or<br />

Transform<br />

Domain<br />

Watermark<br />

sequence (W)<br />

Embedding (E)<br />

Figure 2: The embedding process.<br />

Watermarked<br />

image (I’)<br />

Attacks<br />

When the watermarked image is obtained and placed on Internet or transmitted over<br />

the communication channel possibly, the attacks occur (image J is generated).<br />

B. Extraction process:<br />

A detector function D (see Fig. 3) takes an image J (J can be a watermarked or unwatermarked<br />

image, and possibly altered) whose ownership is to be determined and<br />

recovers a watermark W’ from the image. In this process the original image I can also<br />

be included. Mathematically,<br />

D ( J,<br />

I)<br />

= W '<br />

(3)<br />

The extracted sequence W’ could be than compared with the owner watermark<br />

sequence by a comparator function Cδ and a binary output decision generated. If there<br />

is match the output is 1 , otherwise it is 0.That is represented as follows.<br />

Cδ ( W ',<br />

W ) = {<br />

0,<br />

1, c ≤ δ<br />

otherwise<br />

where Cδ is the correlator, ( x = Cδ<br />

( W ',<br />

W ) ), c is the correlation of two watermarks and<br />

δ is certain threshold.<br />

A watermark must be detectable or extractable to be useful. Depending on the way the<br />

watermark is inserted and depending on the nature of the watermarking algorithm, the<br />

method used can involve very distinct approaches. In some watermarking scheme, a<br />

watermark can be extracted in its exact form, a procedure we call watermark<br />

extraction. In other cases, we can detect only whether a specific given watermarking<br />

signal is present in an image, a procedure we call watermark detection. It should be<br />

noted that watermark extraction can prove ownership whereas watermark detection<br />

can only verify ownership<br />

(4)<br />

J<br />

5


Test<br />

image (J)<br />

Original<br />

image (I)<br />

Spatial or<br />

Transform<br />

Domain<br />

Spatial or<br />

Transform<br />

Domain<br />

7. WATERMARKING ALGORITHMS<br />

Extraction (D)<br />

Extracted<br />

watermark (W’)<br />

Original<br />

watermark (W)<br />

Figure 3: The extraction process.<br />

Comparator<br />

function (Cδ)<br />

The watermarking algorithms (techniques) can be performed either in spatial domain<br />

or in the transform domain. The spatial-domain techniques directly modify the<br />

intensities or color values of some selected pixels. One common technique in spatial<br />

domain is Least Significant Bits (LSB) technique where the watermark is embedded in<br />

the least significant bits of some randomly selected pixels. This technique is very easy<br />

for implementation and very fast, but its robustness is very low. The transform-domain<br />

techniques modify the values of some transformed coefficients. That means that the<br />

transform domain coefficients should be modified to embed the watermark and finally<br />

the inverse transform should be applied to obtain the marked image. The transform<br />

techniques commonly used for watermarking purposes are respectively: the Discrete<br />

Cosine Transform (DCT), the Discrete Fourier Transform (DFT) and the Discrete<br />

Wavelet Transform. There are also approaches dealing with the Complex Wavelet<br />

Transform (CWT), the Fourier-Mellin Transform (FMT) and others.<br />

8. OVERVIEW OF ATTACKS<br />

In practice, a watermarked object may be altered either on purpose or accidentally, so<br />

the watermarking system should be able to detect and extract the watermark. The<br />

distortions are limited to those that do not produce excessive degradations, since<br />

otherwise the transformed object would be unusable. These distortions also introduce a<br />

degradation on the performance of the system. The best known watermarking attacks,<br />

which may be intentional or unintentional depending on the application are:<br />

• Additive Noise. This may originate in certain applications from the use of D/A<br />

and A/D converters or from transmission errors. However, an attacker may<br />

introduce perceptually shaped noise with the maximum unnoticeable power.<br />

This will typically force to increase the threshold at which the correlation<br />

detector works.<br />

• Filtering. The filtering attacks are linear filtering: high pass, low pass filtering,<br />

Gaussian and sharpening filtering, the local median, midpoint and trimmed<br />

mean filtering, the Wiener filtering etc. Low-pass filtering, for instance does<br />

not introduce considerable degradation in watermarked images or audio, but<br />

can dramatically affect the performance, since spread-spectrum-like<br />

watermarks have non negligible high-frequency spectral contents.<br />

x<br />

6


• Compressions. This is generally an unintentional attack which appears very<br />

often in multimedia applications. Practically all the audio, video and images<br />

that are currently being distributed via Internet have been compressed. If the<br />

watermark is required to resist different levels of compression, it is usually<br />

advisable to perform the watermark insertion task in the same domain where<br />

the compression takes places. For instance, DCT-domain image watermarking<br />

is more robust to JPEG compression than spatial-domain watermarking. Also<br />

DWT-domain watermarking is robust to JPEG2000 compression.<br />

• Statistical Averaging. An attacker may try to estimate the watermark and then<br />

“unwatermark” the object by subtracting the estimate. This is dangerous if the<br />

watermark does not depend substantially on the data. Note that with different<br />

watermarked objects it would be possible to improve the estimate by simple<br />

averaging. This is a good reason for using perceptual masks to create the<br />

watermark.<br />

• Multiple <strong>Watermarking</strong>. An attacker may watermark an already watermarked<br />

object and later make claims of ownership. The easiest solution is to timestamp<br />

the hidden information by a certification authority.<br />

• Geometrical Attacks. Geometric attacks do not pretend to remove the<br />

watermark itself but to distort it through spatial alterations of the watermarked<br />

image. With such attacks watermarking detector loses the synchronization with<br />

the embedded information. The common geometrical attacks are rotation,<br />

scaling, change of aspect ratio, translation and shearing etc.<br />

• Cryptographic Attacks There are two categories of cryptographic attacks: brute<br />

force attack, whose aim is to find the secret information trough an exhaustive<br />

search and Oracle attack, which can be used to create a non-watermarked<br />

image when watermark detector device is available.<br />

• Protocol Attacks. The aim of protocol attack is to attack the concept of the<br />

watermarking application. The copy attack belongs to this group and the aim<br />

of this attack is to predict the watermark from the watermarked image and to<br />

copy the predicted watermark to the target data. The estimated watermark is<br />

then adapted to the local features of the stego data to satisfy the<br />

imperceptibility requirements.<br />

• Cropping. This is a very common attack since in many cases the attacker is<br />

interested in a small portion of the watermarked object, such as parts of a<br />

certain picture or frames of video sequence. With this in mind, in order to<br />

survive, the watermark needs to be spread over the dimensions where this<br />

attack takes place.<br />

• Random Geometric Distortions. The Unzign and Stirmark have shown<br />

remarkable success in removing data embedded by commercially available<br />

programs.<br />

• Printing-Scanning. This process introduces geometrical as well as noise-like<br />

distortions.<br />

Also to investigate the watermark robustness against various attacks some alterations<br />

have to be made to the watermarked image. For this purpose some benchmarking<br />

software packages are used. The popular benchmarking software are for example<br />

Stirmark , Checkmark, Unzign, etc (see Section 10).<br />

7


9. PRACTICAL EXAMPLE<br />

In this example we will watermark the tested image ( in this case the Lena image) with the<br />

pseudorandom sequence used as a watermark. To perform one simple additive algorithm<br />

for digital image watermarking in the DCT domain, we will do the following steps:<br />

1. Initialization<br />

- read original image;<br />

- generate watermark vector of length N (e.g., N=1000).<br />

2. Embedding<br />

- apply 2D DCT transform on the entire image;<br />

- find first N largest coefficients;<br />

- generate watermarked coefficients v’ by v '= v * ( 1+<br />

alpha * w)<br />

where w is<br />

the corresponding watermark component, and alpha is the scaling factor to<br />

control the strength of watermark (e.g., alpha =0.1);<br />

- apply 2D IDCT and truncate pixel value to [0, 255] to obtain watermarked<br />

image;<br />

- display the marked image, visualize the difference between marked and<br />

unmarked image, check visual quality measure<br />

3. Distortion<br />

- generate a distorted version of watermarked image;<br />

- the possible distortions are JPEG compression, gaussian filtering, wiener<br />

filtering etc.<br />

4. Detection<br />

- image registration of the test image with respect to the original unmarked<br />

image is required before applying detection;<br />

- apply 2D DCT on test image;<br />

- identify the N largest coefficients, substract the corresponding value of the<br />

original unmarked ones, and compute the detection statistic with the<br />

watermark vector which is suspected to have been put in the test image<br />

This program can be written in MATLAB or C/C++ programming language. Here is<br />

presented one example of the program written in MATLAB environment.<br />

%-------------------------------------------------------------------------------<br />

% WATERMARKING IN THE DCT DOMAIN<br />

%-------------------------------------------------------------------------------<br />

% 1. Initialization<br />

I=imread('lena.jpg'); % read the original image<br />

figure(4),imshow(I); % show the original image<br />

W=randn(1000,1); % generate the pseudorandom watermark, N=1000<br />

% 2. Embedding<br />

V=dct2(I); % perform the 2D DCT of the original image<br />

[a1,a2]=size(V);<br />

V1=[];<br />

alpha=0.1; % the strength factor alpha<br />

for i=1:a2 % prepare it for sorting, making an one-<br />

p =V(:,i); % dimensional array V1 from the two dimensional<br />

V1=[V1,p']; % array V<br />

end;<br />

8


[Vsort,ind] = sort(V1); % sorting the array V1 to find N largest DCT<br />

[a3,a4]=size(Vsort); % coefficients<br />

k=1;<br />

for i=a4:-1:(a4-999) % embedding the watermark<br />

Vsort(i)=Vsort(i)*(1+w(k)*alpha);<br />

k=k+1;<br />

end;<br />

Vw=zeros(1,a4); % re-ordering the sorted array<br />

for i=1:a4<br />

p=ind(i);<br />

Vw(p)=Vsort(i);<br />

end;<br />

Vw1=[]; % preparing for IDCT<br />

for i=0:(a2-1) % making the two-dimensional array from one-<br />

col=Vw((i*256+1):(i*256+256)); % dimensional array,<br />

Vw1=[Vw1,col'];<br />

end;<br />

In=idct2(Vw1); % performing the IDCT, In is the new watermarked image<br />

In=uint8(In); % truncate pixel value to range [0,255]<br />

figure(5),imshow(In); % show the watermarked image<br />

Idiff=(double(I)-double(In)); % find the pixel difference between original and<br />

% image watermarked in spatial domain<br />

Id=256.-Idiff; % for better visibility<br />

Id=uint8(Id); % truncate pixel value to range [0,255]<br />

figure(6),imshow(Id); % show the difference image<br />

imwrite(In,'watermatked.jpg'); % save the watermarked image as JPEG file<br />

% 3. Attacks<br />

J =imnoise(In,'gaussian',0,0.005);% add a Gaussian white noise of mean value 0 and<br />

% variance 0.005<br />

figure(8),imshow(J); % show the distorted image<br />

K = wiener2(In,[5 5]); % perform the Wiener filtering with window size 5x5<br />

figure(9),imshow(K); % show the distorted image<br />

imwrite(In,'watermarked_75.jpg','Quality',75); % perform the JPEG compression with<br />

% quality factor 75<br />

M=imread('watermarked_75.jpg'); % read the compressed image<br />

figure(10),imshow(M); % show the compressed image<br />

% 4. Detection<br />

Vt=dct2(J); % perform the 2D DCT of the tested image<br />

[a1,a2]=size(Vt); % prepare it for sorting, making an one-dimensional<br />

V1t=[]; % array V1t from the two dimensional array Vt<br />

for i=1:a2<br />

p=Vt(:,i);<br />

V1t=[V1t,p'];<br />

end;<br />

[Vtsort,indt] = sort(V1t); % sorting the array V1 to find N largest DCT<br />

% coefficients<br />

[a3,a4]=size(Vtsort);<br />

We=[]; % initialization of the extracted watermark vector<br />

for i=a4:-1:(a4-999) % extraction the watermark<br />

we=(Vtsort(i)-Vsort(i))/(Vsort(i)*alpha);<br />

We=[We,we'];<br />

end;<br />

C=corr2(w,We'); % perform the correlation between the original and<br />

% extracted watermark sequence<br />

% 5. Results<br />

Cj=-0.9368 % correlation value for test image with Gaussian noise<br />

Ck=-0.8283 % correlation value for Wiener filtered test image<br />

Cm=-0.9703 % correlation value for test image, JPEG compressed<br />

% with 75 quality factor<br />

9


The Figure 4 presents the original Lena image. On the Figure 5 the watermarked Lena<br />

image is given and on the Fig. 6 the difference image can be observed. For the greater<br />

strength factor alpha, the perceptual difference is more visible (Fig. 7)<br />

Figure 4: The original Lena image<br />

Figure 5: The watermarked Lena image<br />

10


Figure 6: The difference between the original<br />

and watermarked Lena image (alpha=0.3)<br />

Figure 7: The difference between the original<br />

and watermarked Lena image (alpha=0.5)<br />

Figure 8: The watermarked Lena image with<br />

Gaussian noise<br />

11


10. INTERNET RESOURCES<br />

Figure 9: The Wiener filtered watermarked<br />

Lena image<br />

Figure 10: The JPEG compressed watermarked<br />

Lena image with quality factor 75<br />

The companies and products for the digital watermarking are:<br />

• Alpvision<br />

• Alpha Tec Ltd., Greece (EIKONAmark)<br />

• AT&T - security software.<br />

• Blue Spike Inc.<br />

• CRL<br />

• datamark<br />

• DCT <strong>Digital</strong> Copyright Technologies<br />

12


• digital-watermark.com<br />

• Digimarc Corp<br />

• Intertrust<br />

• Macrovision Corporation<br />

• MediaSec Technologies LLC<br />

• Philips<br />

• Signum Technologies..<br />

• Verance<br />

The most popular benchmarking software are:<br />

• StirMark<br />

• Certimark<br />

• Checkmark<br />

• Optimark<br />

• Unzign<br />

References:<br />

• S. Katzenbeisser, Information Hiding (Boston, London: Artech House, 2000<br />

• F. Hurtung and M. Kutter, Multimedia <strong>Watermarking</strong> Techniques, Proceedings of<br />

IEEE Special Issue on Identification and Protection of Multimedia Information 87,<br />

No. 7, 10691107 (July 1999).<br />

• F. A. P. Petitcolas, R. J. Anderson, Evaluation of copyright marking systems, in IEEE<br />

Multimedia Systems, Florence, Italy, 7-11 Jun 1999<br />

• S. Voloshynovskiy, S. Pereira, V. Iquise and T. Pun, Attack Modelling: Towards a<br />

Second Generation <strong>Watermarking</strong> Benchmark, Signal Processing, Special Issue:<br />

Information Theoretic Issues in <strong>Digital</strong> <strong>Watermarking</strong>, May 2001<br />

• F. A. P. Petitcolas, Attacks on Copyright Marking Systems, Information Hiding:<br />

Second International Workshop, D. Aucsmith, Editor, Lecture Notes in Computer<br />

Science 1525, Springer-Verlag, Portland, OR (April 1517, 1998), pp. 219239.<br />

• I. J. Cox, J. Kilian, T. Leighton, T. Shamon, A secure robust watermark for<br />

multimedia, in Information Hiding, Cambridge, UK. Springer Lecture Notes. No.<br />

1174, pp. 185-206, 1996.<br />

• Alexander Herrigel, Joseph Ó Ruanaidh, Holger Petersen, Shelby Pereira, Thierry<br />

Pun: Secure Copyright Protection Techniques for <strong>Digital</strong> Images. in Information<br />

Hiding vol. 1525, pp. 169-190, Springer-Verlag 1998:<br />

• G. Langelaar, I. Setyawan, and R. Lagendijk, <strong>Watermarking</strong> digital image and video<br />

data, IEEE Signal Processing Magazine, vol. 17, No. 5, 20-46, September 2000<br />

13


• J. K. Su, B. Girod, On the robustness and imperceptibility of digital fingerprints, in<br />

Proc. IEEE Intl. Conf. Multimedia Comp. Sys., vol. 2, pp. 530-535, (Florence, Italy),<br />

Jun., 1999.<br />

• A. N. Skodras, C. A. Christopolos, T. Ebrahimi: JPEG2000: The upcoming still image<br />

compression standard, Proceedings of the 11 th Portuguese Conference on Pattern<br />

Recognition (RECPA00D 20; invited paper), pp. 359-366, Porto, Portugal, May 11th -<br />

12th 2000.<br />

• N. Terzija, <strong>Digital</strong> Image <strong>Watermarking</strong> in The Wavelet Domain, Technical Report,<br />

Faculty of Engineering Sciences, Gerhard-Mercator-Universität Duisburg, Dec. 2002,<br />

http://www.fb9dv.uni-duisburg.de/members/ter/trep_1202.pdf<br />

11. THE LIST OF THE USED MATLAB FUNCTIONS<br />

1. imread: Read image from graphics file<br />

A = imread('filename.fmt'); % reads a grayscale or truecolor image named filename with<br />

format fmt into the variable A.<br />

2. imshow: Display an image<br />

imshow(A); % displays the intensity image A<br />

3. dct2: Compute two-dimensional discrete cosine transform<br />

B=dct2(A); % returns the two-dimensional discrete cosine transform of A. The matrix B is<br />

the same size as A and contains the discrete cosine transform coefficients B(k1,k2).<br />

4. idct2: Compute two-dimensional inverse discrete cosine transform<br />

A=idct2(B); % returns the two-dimensional inverse discrete cosine transform (DCT) of A.<br />

5. sort: Sort elements in ascending order<br />

[B,IX] = sort(A); % also returns an array of indices IX, where size(IX) == size(A). If A is<br />

a vector, B = A(IX). Simple example :<br />

A =[1 6 2 4];<br />

B =[1 2 4 6];<br />

IX=[1 3 4 2];<br />

6. randn: Normally distributed random numbers and arrays<br />

Y = randn(m,n); or Y = randn([m n]); % returns an m-by-n matrix of random entries,<br />

distributed with mean 0, variance 1, and standard deviation 1.<br />

14


7. size: Array dimensions<br />

[m,n] = size(X); % returns the size of matrix X in separate variables m and n.<br />

8. figure: Create a figure graphics object<br />

9. double: Convert to double-precision<br />

double(x); % returns the double-precision value for X. If X is already a double-precision<br />

array, double has no effect.<br />

10. uint8: Convert to unsigned integer<br />

i = uint8(x); % converts the vector x into an unsigned integer in the range [0, 255]. x<br />

can be any numeric object (such as a double).<br />

11. imwrite Write image to graphics file<br />

imwrite(A,filename,fmt); % writes the image in A to filename in the format specified by<br />

fmt. A can be either a grayscale image (M-by-N) or a truecolor image (M-by-N-by-3).<br />

filename is a string that specifies the name of the output file. Empty image data is not<br />

allowed. The possible values for fmt are determined by the MATLAB file format registry.<br />

12. imnoise: Add noise to an image<br />

J = imnoise(I,'gaussian',m,v); % adds Gaussian white noise of mean m and variance v to<br />

the image I. The default is zero mean noise with 0.01 variance.<br />

13. wiener2: Perform two-dimensional Wiener filtering<br />

J = wiener2(I,[m n]); % filters the image I using pixel-wise adaptive Wiener filtering,<br />

using neighborhoods of size m-by-n to estimate the local image mean and standard<br />

deviation. If you omit the [m n] argument<br />

12 DISCRETE COSINE TRANSFORM<br />

The Discrete Cosine Transform (DCT) represents an image as a sum sinusoids of varying<br />

magnitudes and frequencies. DCT is the most popular transform used in the area of image<br />

compression. DCT has the property that the most of the visually significant information<br />

about the image is concentrated in just few coefficients of the DCT. It is the basic<br />

transform for of the international standard lossy image compression algorithm known as<br />

15


JPEG (the Joint Photographic Expert Group). For an image I with the size M × N the<br />

DCT is defined in two dimensions as:<br />

− M 1N<br />

−1<br />

∑∑<br />

⎛ x + 1/<br />

2 ⎞ ⎛ y + 1/<br />

2 ⎞<br />

C( m,<br />

n)<br />

= k1(<br />

n)<br />

k2<br />

( m)<br />

I(<br />

x,<br />

y)<br />

⋅ cos⎜π<br />

n ⎟ ⋅ cos⎜πm<br />

⎟<br />

⎝ N ⎠ ⎝ M<br />

(5)<br />

⎠<br />

y=<br />

0 x=<br />

0<br />

where C(m,n) are DCT coefficients; n, x are defined from 0 to N-1; m, y are defined from<br />

0 to M-1 and<br />

k ( n)<br />

1/<br />

N<br />

1 = , for n=0, or (6.1)<br />

k ( n)<br />

2 / N<br />

1 = , otherwise (6.2)<br />

k ( m)<br />

1/<br />

M<br />

2 = , for m=0, or (6.3)<br />

k ( m)<br />

2 / M<br />

2 = , otherwise (6.4)<br />

The inverse discrete cosine transform, which uses the same kernel as the DCT, is defined<br />

as:<br />

− M 1N<br />

−1<br />

∑∑<br />

⎛ x + 1/<br />

2 ⎞ ⎛ y + 1/<br />

2 ⎞<br />

I( x,<br />

y)<br />

= C(<br />

n,<br />

m)<br />

⋅ k1(<br />

n)<br />

⋅ k2<br />

( m)<br />

⋅ cos⎜π<br />

n ⎟ ⋅ cos⎜πm<br />

⎟<br />

⎝ N ⎠ ⎝ M<br />

(7)<br />

⎠<br />

m=<br />

0 n=<br />

0<br />

16

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!