# Patent

## Title
Method of embedding watermark into digital image

## Abstract

Methods of embedding and detecting a watermark into-from a digital image are disclosed. A method of embedding a watermark in accordance with an embodiment of the present invention into a digital image, the method comprising: generating a difference from an original image; segmenting said difference image into sub-regions; and calculating a watermark block into each sub-region by adding said watermark block with pixel values of each sub-region.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a Continuation of application Ser. No. 10/106,856, filed on Mar. 27, 2002 now U.S. Pat. No. 7,058,201, which claims the benefit of U.S. Provisional Application No. 60/279,124, filed on Mar. 28, 2001. The entire contents of each of these applications are hereby incorporated by reference as if fully set forth herein.


BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a method of embedding a watermark into a digital image, and more particularly, to a method of embedding a watermark into an image in a manner that the embedded information is robust against any modifications including loss data compression, filtering, channel noise, cropping, geometrical transformations, and etc.
2. Discussion of the Related Art
Digital images are widely distributed on the Internet or with uses of many types of storage such as CD-ROM, hard and floppy disks, and etc. Therefore, the copyright protection of such digital images has become a very significant issue in the current digital media industry. One of ways of preserving the intellectual property rights of the digital images is digital watermarking.
One of typical digital watermarking methods is a statistical approach, which will be referred to as Patchwork hereinafter. Patchwork is based on a pseudo random and statistical process. It invisibly embeds a set of specific statistical information that has a Gaussian distribution into a host image. Some of main features of this approach are an extremely low rate of the embedded data and difficulties of decoding a watermark in the presence of severe affine transformation.
Another digital watermarking method is a spread spectrum technique, which proposes to embed watermark information in a log-2-spatio domain by using a spread spectrum technique. In the log-2-spatio domain, the variance of the information is significantly reduced. This improves the efficiency and robustness of spread spectrum technique. Low intensity and midband regions are selected to embed the information in order to guarantee the invisibility of the watermark as well as the robustness to JPEG compression.
Also, an effect that a channel coding process produces on the performance of the watermarking detection is analyzed. However, the mentioned methods or techniques do not achieve the main demands for watermarking, which are invisibility of watermarks and robustness to attacks including loose compression, filtering, geometric attacks such as re-sampling and rotations, and so on.
SUMMARY OF THE INVENTION
Accordingly, the present invention is directed to a method of watermarking a digital image that substantially obviates one or more problems due to limitations and disadvantages of the related art.
An object of the present invention is to provide a method of watermarking a digital image that is robust to any prevailing attacks
Additional advantages, objects, and features of the invention will be set forth in part in the description which follows and in part will become apparent to those having ordinary skill in the art upon examination of the following or may be learned from practice of the invention. The objectives and other advantages of the invention may be realized and attained by the structure particularly pointed out in the written description and claims hereof as well as the appended drawings.
To achieve these objects and other advantages and in accordance with the purpose of the invention, as embodied and broadly described herein, a method of embedding a watermark into a digital image includes the steps of generating a predicted image of an original image by using a linear predictor; generating a difference image by subtracting the predicted image from the original image or vice versa; and segmenting the difference image into sub-regions.
In another aspect of the present invention, a method of detecting a watermark from a digital image includes generating a predicted image from an original image by using a linear predictor, wherein an original watermark sequence is embedded into the original image; generating a difference image by subtracting the predicted image from the original image or vice versa; and segmenting the difference image into sub-regions.
According to another aspect, the present invention provides a method of embedding a watermark into a digital image, the method comprising: generating a difference from an original image; segmenting said difference image into sub-regions; and calculating a watermark block into each sub-region by adding said watermark block with pixel values of each sub-region.
According to another aspect, the present invention provides a method of detecting a watermark of a digital image, the method comprising: generating a difference image from an original image, wherein a watermark sequence is embedded into said original image; segmenting said difference image into sub-regions; calculating a convolution set of a pseudo random sequence and at least one pixel of each sub-region; and estimating a watermark data bit corresponding to each sub-region by using said convolution set.
It is to be understood that both the foregoing general description and the following detailed description of the present invention are exemplary and explanatory and are intended provide further explanation of the invention as claimed.



BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings, which are included to provide a further understanding of the invention and are incorporated in and constitute a part of this application, illustrate embodiment(s) of the invention and together with the description serve to explain the principle of the invention. In the drawings;
FIG. 1 illustrates a watermark embedding process according to the present invention;
FIG. 2 illustrates a watermark detecting process according to the present invention;
FIG. 3 illustrates a high-density watermark embedding process according to the present invention; and
FIG. 4 illustrates the structure of a block watermark in accordance with the present invention.



DETAILED DESCRIPTION OF THE INVENTION
Reference will now be made in detail to the preferred embodiments of the present invention, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts.
FIG. 1 shows a preferred embodiment of a watermark encoder embedding a watermark in accordance with the present invention. For embedding a watermark, an original image is divided into non-overlapped regions Ω={Ω0, . . . , ΩM−1}, each of which corresponds to a bit of the watermark, by an image segmetator. A given sequence of bytes is used as an embedded information set (4-5 bytes are written K times into an image). The main feature of the proposed algorithm is that a difference image D is used for embedding/detecting a watermark. In order to form the difference image, a linear prediction image is generated by a linear predictor.
A pseudo random sequence (PRS) generator generates a PRS for watermark embedding. Initial parameters and period characterize this sequence. The algorithm of the watermark embedding and detecting processes using a PRS is given by




  
    
      Y
      i
    
    =
    
      
        X
        t
      
      +
      
        
          β
          j
        
        ·
        
          ɛ
          i
        
      
    
  
  ,
  
    
      β
      j
    
    =
    
      {
      
        
          
            
              
                
                  
                    1
                    ,
                    
                      
                        w
                        j
                      
                      =
                      1
                    
                  
                
              
              
                
                  
                    
                      -
                      1
                    
                    ,
                    
                      
                        w
                        j
                      
                      =
                      0
                    
                  
                
              
            
            ⁢
            
              

            
            ⁢
            P
          
          =
          
            {
            
              
                p
                0
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                p
                
                  N
                  -
                  1
                
              
            
            }
          
        
        ,
        
          
            
              p
              t
            
            ∈
            
              
                {
                
                  
                    -
                    1
                  
                  ,
                  1
                
                }
              
              ⁢
              
                

              
              ⁢
              W
            
          
          =
          
            {
            
              
                w
                0
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                w
                
                  M
                  -
                  1
                
              
            
            }
          
        
        ,
        
          
            
              w
              j
            
            ∈
            
              
                {
                
                  0
                  ,
                  1
                
                }
              
              ⁢
              
                

              
              ⁢
              
                ɛ
                i
              
            
          
          =
          
            
              
                
                  α
                  j
                
                ·
                
                  p
                  i
                
              
              ⁢
              
                α
                j
              
            
            =
            
              f
              ⁡
              
                (
                
                  Ω
                  j
                
                )
              
            
          
        
        ,
      
    
  




where

    Xi represents the pixel values of an original image region Ωj;
    P represents a pseudo random sequence (PRS);
    W represents a watermark bit sequence; and
    εi represents an embedded sequence (αj=1 for a simplest case).


FIG. 2 illustrates a preferred embodiment of a watermark decoder detecting a watermark in accordance with the present invention. A jth bit of a watermark is decoded by using a convolution set of PRS with the pixel of a region Ωj (convolution unit):



  
    
      S
      j
    
    ⁢
    
      
        ∑
        
          Ω
          j
        
      
      ⁢
      
        
          
            D
            i
          
          ·
          
            p
            i
          
        
        ⁢
        
          
        
        ⁢
        and
      
    
  




  
    
      
        
          w
          ^
        
        j
      
      =
      
        sign
        ⁡
        
          (
          
            S
            j
          
          )
        
      
    
    ,
  



where

    Di represents a component of a difference image; and
    ŵj represents an estimation of the jth watermark bit.


A watermark of six-bytes sequence XABCDE is used, where X represents the constant byte for inner purposes of the algorithm, and other bytes contain the copyright information of an image. The watermark is recorded into the image K times depending on the block size and the image size. During the decoding process, the values of bits for all blocks are estimated. Further, the beginning of the watermark is searched by using the X value and the obtained bit sequences are written into an array




  
    
      
        w
        0
        0
      
    
    
      
        w
        1
        0
      
    
    
      ...
    
    
      
        w
        L
        0
      
    
  
  
    
      
        w
        0
        j
      
    
    
      
        w
        1
        j
      
    
    
      ...
    
    
      
        w
        L
        j
      
    
  
  
    
      ...
    
    
      ...
    
    
      ...
    
    
      ...
    
  
  
    
      
        w
        0
        K
      
    
    
      
        w
        1
        K
      
    
    
      ...
    
    
      
        w
        L
        K
      
    
  




where wij is an estimation of the bit number i of the copy number j of the watermark.

The estimation of the watermark can be obtained for every bit by




  
    
      w
      ^
    
    j
  
  =
  
    {
    
      
        
          
            
              
                
                  1
                  ⁢
                  
                    
                  
                  ⁢
                  if
                  ⁢
                  
                    
                  
                  ⁢
                  s
                
                ≥
                0.5
              
            
          
          
            
              
                
                  0
                  ⁢
                  
                    
                  
                  ⁢
                  if
                  ⁢
                  
                    
                  
                  ⁢
                  s
                
                <
                0.5
              
            
          
        
        ⁢
        where
        ⁢
        
          
            
          
          ⁢
          
            
          
        
        ⁢
        s
      
      =
      
        
          
            ∑
            
              j
              =
              
                0
                ⁢
                ...
                ⁢
                
                  
                
                ⁢
                K
              
            
          
          ⁢
          
            w
            i
            j
          
        
        
          K
          +
          1
        
      
    
  




The perceptibility of a watermark depends on the amplitude of an embedded sequence, which is determined by a scale coefficient αj. This coefficient controls the compromise of the perceptibility versus the possibility of detection. The scale calculator calculates the amplitude of the watermark for every block by one of the following ways:

    
    
        (1) Block Scale mode:
    
    






  
    α
    j
  
  =
  
    
      1
      +
      
        
          
            
              ∑
              
                
                  
                
                ⁢
                
                  Ω
                  j
                
              
            
            ⁢
            
              
              
                D
                i
              
              
            
          
          
            Scale
            ·
            N
            ·
            
              g
              2
            
          
        
        ⁢
        
          
        
        ⁢
        and
        ⁢
        
          
        
        ⁢
        
          α
          i
        
      
    
    =
    
      α
      j
    
  




    
    
        (2) Pixel Scale mode:
    
    






  
    
      
        α
        j
      
      ⁡
      
        (
        l
        )
      
    
    =
    
      1
      +
      
        
          
          
            D
            i
          
          
        
        Scale
      
    
  
  ,




where Di represents a component of a difference image. In Block Scale mode, αj corresponds to a whole region Ωj. On the other hand, αj(l) in Pixel Scale mode corresponds to each pixel of the region Ωj. The parameter Scale shown in both equations is in the range of 2 to 10.

In addition to the modes mentioned above, an adaptive scale mode can be implemented. The adaptive scale mode chooses the best value of the Scale parameter by iterations. The adaptive scaling process of choosing the best value depends on the original image. A larger Scale value leads to better watermark detection, but it deteriorates the quality of the image. The use of a smaller Scale value decreases the quality of the watermark detection. The adaptive calculation is performed with a feedback. At first, the block is encoded with Scale=10. Then the decoding is fulfilled. If decoding is successful, then the encoding of the next block is executed. Otherwise, the value of Scale is decreased (Scale=Scale/2), and the encoding is executed. The minimal value of Scale is set to Scale=2. So it is possible to select the optimal value of Scale. In the case where it is impossible to decode the watermark, this fact is known at the encoding stage.
The granulator is used to resist the low pass filtering and embeds the element PRS not in a pixel but in a square (g×g) of pixels. The increase of the parameter g leads to decrease the frequency of the embedded signal. But it increases the watermark perceptibility. The acceptable values of the parameter g are 2 and 3. The usage of the granular mode increases the block size for writing the watermark. It leads to decrease the number of watermarks written into the image.
The randomization is used for decreasing the watermark perceptibility in the granular mode. In this mode, a random sequence {tilde over (ε)}ik=εi+wk is embedded in square instead of the constant signal εi, where wk is uniformly distributed in the range [−εi, εl]. Under decoding, the estimation of the obtained signal is performed by




  
    X
    i
  
  =
  
    
      
        
          ∑
          
            r
            ∈
            
              g
              ⨯
              g
            
          
        
        ⁢
        
          X
          r
        
      
      
        g
        2
      
    
    .
  




The usage of the channel coding unit and the granulator unit decreases the number of bits, which can be written into an image. Therefore, the preferred embodiment of the present invention includes a way of writing additional bits into a block, and this is called a high-density mode. The block scheme of a method of detecting a high-density watermark is shown in FIG. 3. The main distinction of the proposed way of embedding is that a set of shifted PRSs, which are generated by the Phase Shifter, is used for the watermark embedding/detecting processes.
Another distinctive feature is to order an image block for increasing the number of states coded. Then the convolution unit calculates a set of convolution values for the shifted PRSs and orders an image block in different ways. The maximization unit compares the obtained convolution values and selects the convolution value corresponding to the maximum absolute value. The index of found convolution values conforms to the decoded bit set. The preferred embodiment of the algorithm writes 8 bits into a block. It uses 16 shifted PRSs and 8 types of ordering for transmitting 256 states.
The base-coding mode presumes to write a watermark in a sequential order (row-by-row). This means that the watermark does not go into the block row. In a case where the size of an image is slightly changed, all watermarks included in the image will be destroyed. Another problem is that if the blocks containing the watermark flag are not decoded, the whole watermark will be skipped until the next watermark flag. The block mode presumes to write the watermark into compact regions, for example, a square region (4×4) of the block size. Under this mode, the high-density mode is used automatically. In as much as the watermark is written into 16 blocks, four blocks are used as flags bounding the watermark region. Another 12 blocks are used for writing the watermark information (4 information bytes and 8 control bytes providing the correction of 4 bytes). The bounding bytes contain different values so it is possible to determine the type of the corner. Therefore, in case of decoding errors, it is sufficient to decode two bytes to determine the correct position of the watermark. The number of watermarks embedded into the image is less, but the reliability is apparently higher.
It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the inventions. Thus, it is intended that the present invention covers the modifications and variations of this invention provided they come within the scope of the appended claims and their equivalents.

## Claims

1. A method of embedding a watermark into a digital image, the method comprising:
generating a predicted image of an original image by using a linear predictor;
generating a difference image by subtracting the predicted image from an original image or vice versa;
segmenting the difference image into sub-regions;
calculating a watermark block for each of the sub-regions; and
embedding the watermark block into each of the sub-regions by adding the watermark block with pixel values of each of the sub-regions.

2. The method of claim 1, wherein the calculating a watermark block, comprises:
calculating a watermark amplitude for each of the sub-regions or each pixel of each of the sub-regions;
performing a channel coding process on a set of watermark data bits; and
generating a pseudo random sequence (PRS) for embedding the watermark.

3. The method of claim 2, wherein the watermark amplitude is calculated by using any one of a block scale mode, a pixel scale mode and an adaptive scale mode.

4. The method of claim 3, wherein a best value of the scale parameter by iterations is chosen of the adaptive scale mode is used.

5. The method of claim 2, wherein the performing of the channel coding process and the generating of the pseudo random sequence are used for decreasing a number of bits, which can be written into an image.