# Patent

## Title
Method of reducing a blocking artifact when coding moving picture

## Abstract

A method of coding a moving picture is provided that reduces blocking artifacts. The method can include defining a plurality of defining pixels S0, S1, and S2, which are centered around a block boundary. If a default mode is selected then frequency information of the surroundings of the block boundary is obtained. A magnitude of a discontinuous component in a frequency domain belonging to the block boundary is adjusted based on a magnitude of a corresponding discontinuous component selected from a pixel contained entirely within a block adjacent the block boundary. The frequency domain adjustment is then applied to a spatial domain. Or, a DC offset mode can be selected to reduce blocking artifacts in smooth regions where there is little motion.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation of U.S. application Ser. No. 09/506,728, filed on Feb. 18, 2000, now U.S. Pat. No. 7,239,755, which is a continuation of U.S. application Ser. No. 09/010,446, filed on Jan. 22, 1998, now U.S. Pat. No. 6,028,967, which claims the benefit of a foreign priority application filed in KOREA on Jul. 30, 1997, as Serial No. 36231/1997. This application claims priority to all of these applications, and all of these applications are incorporated by reference.


TECHNICAL FIELD
The present invention relates to a moving picture process, and in particular to a method for processing blocks of a moving picture to increase a compression ratio and to improve coding efficiency.
BACKGROUND
To efficiently compress a time variable video sequence, redundancy in the temporal domain as well as in the two dimensional spatial domain must be reduced. MPEG uses a discrete cosine transform (DCT) to reduce the redundancy in the two dimensional spatial domain and a motion compensation method to reduce the redundancy in the temporal domain.
The DCT is a method of reducing the correlativity between data through a two dimensional spatial transformation. Each block in a picture is spatially transformed using the DCT after the picture is divided into blocks. Data that has been spatially transformed tends to be driven to a certain direction. Only a group of the data driven in the certain direction is quantized and transmitted.
Pictures, which are consecutive in the temporal domain, form motions of a human being or an object at the center of the frame. This property is used to reduce the redundancy of the temporal domain in the motion compensation method. A volume of data to be transmitted can be minimized by taking out a similar region from the preceding picture to fill a corresponding region, which has not been changed (or has very little change), in the present picture. The operation of finding the most similar blocks between pictures is called a motion estimation. The displacement representing a degree of motion is called a motion vector. MPEG uses a motion compensation-DCT method so that the two methods combine.
When a compression technique is combined with a DCT algorithm, the DCT transform is usually performed after input data is sampled in a unit size of 8×8, and the transform coefficients are quantized with respect to a visual property using quantization values from a quantization table. Then, the data is compressed through a run length coding (RLC). The data processed with the DCT is converted from a spatial domain to a frequency domain and compressed through the quantization with respect to the visual property of human beings, not to be visually recognized. For example, since eyes of human beings are insensitive to a high frequency, a high frequency coefficient is quantized in a large step size. Thus, a quantization table is made according to external parameters, such as a display characteristic, watching distance, and noise, to perform an appropriate quantization.
For the quantized data, the data having a relatively high frequency is coded with a short code word. The quantized data having a low frequency is coded with a long code word. Thus, the data is finally compressed.
In processing a moving picture as discussed above, blocks are individually processed to maximize the compression ratio and coding efficiency. However, the individual process causes blocking artifacts that disturb the eyes of human beings at boundaries between blocks.
Accordingly, various methods for reducing a blocking artifact in a coding system, which individually processes blocks, are presented. For example, attempts to reduce the blocking artifact by changing processes of coding and decoding have been implemented. However, this method of changing the processes of coding and decoding increases the amount of bits to be transmitted.
Another method for reducing the blocking artifact is based on the theory of projection onto convex sets (POCS). However, this method is applied to only a still picture because of an iteration structure and convergence time.
The blocking artifact is a serious problem in a low transmit rate moving picture compression. Since a real-time operation is necessary in coding and decoding a moving picture, it is difficult to reduce the blocking artifact with a small operation capacity.
Consequently, the related art methods involve various problems and disadvantages when reducing a blocking artifact created in coding a moving picture. A calculation for performing an algorithm is complicated, and the calculation amount and time become correspondingly large. Further, the blocking artifacts are not reduced in either complex regions or smooth regions in a picture. In addition, the amount of bits to be transmitted increases.
The above references are incorporated by reference herein where appropriate for appropriate teachings of additional or alternative details, features and/or technical background.
SUMMARY
An object of the present invention is to provide a method for reducing a blocking artifact appearing when coding a moving picture that substantially obviates one or more of the limitations and disadvantages of the related art.
Another object of the present invention is to provide an MPEG-4 video coding method that reduces a blocking artifact in a real-time moving picture using a frequency property around boundaries between blocks.
A further object of the present invention is to provide a method for reducing a blocking artifact that increases a compression ration and increases a coding efficiency.
To achieve these and other advantages in whole or in parts, and in accordance with the purpose of the present invention as embodied and broadly described, a blocking artifact reduction method includes defining pixels centered around a block boundary and setting a default mode. Frequency information of the surroundings of the block boundary is obtained for each pixel using a 4-point kernel. A magnitude of a discontinuous component that belongs to the block boundary is adjusted in a frequency domain to a minimum value of a magnitude of a discontinuous component that belongs to the surrounding of the block boundary. The adjusting operation is then applied to a spatial domain. In addition, a DC offset mode is established, and in the DC offset mode the blocking artifact is also reduced, for example, in a smooth region where there is little motion.
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 objects and advantages of the invention may be realized and attained as particularly pointed out in the appended claims.



DESCRIPTION OF DRAWINGS
The invention will be described in detail with reference to the following drawings in which like reference numerals refer to like elements wherein:
FIG. 1 is a diagram that illustrates horizontal and vertical block boundaries;
FIG. 2 is a diagram that illustrates a 4-point DCT kernel; and,
FIG. 3 is a flow chart that illustrates a preferred embodiment of a method that reduces a blocking artifact when coding a moving picture according to the present invention.



DETAILED DESCRIPTION
Reference will now be made to preferred embodiments of the present invention, examples of which are illustrated in the accompanying drawings. FIG. 1 illustrates typical horizontal and vertical block boundaries.
As shown in FIG. 1, in the dimensional image formed with respective four points of S0, S1, and S2 located around the block boundary, S1 and S2 are individually processed with a block-unit compression method. Thus, S1 and S2 are not influenced by the blocking artifact. However, S0 is located across a block boundary. Thus, S0 is directly influenced by the blocking artifact. The blocking artifact appears at the boundary between fixed block patterns in the form of a line of discontinuity.
Preferred embodiments of the present invention use, for example, a frequency property to preserve complex regions at block boundaries. The frequency property around the boundary is preferably obtained by using a 4-point DCT kernel, which can be easily calculated. However, the present invention is not intended to be limited to this. In this case, the complex region at a block boundary can be effectively processed by extending the smoothness of a picture from a frequency domain to a spatial domain.
As shown in FIG. 1, S0 is located across the block boundary. Thus, S0 is directly influenced by the blocking artifact. To reduce the blocking artifact from S0, a first preferred embodiment of the present invention uses frequency information in S1 and S2. The blocking artifact can be removed from S0 by replacing the frequency component in S0, which is influenced by the blocking artifact, with the frequency components of S1 and S2. In other words, S0 contains a discontinuity. However, S1 and S2, which are completely included inside respective blocks, are not related to the discontinuity. Since S1 and S2 are not involved with the discontinuity at a block boundary, S1 and S2 can accurately represent features of the respective neighboring blocks.
When images change smoothly, image features of S0, S1 and S2 are similar. This means that frequency domains of S0, S1 and S2 have similar features. The preferred embodiments use a DCT, or the like as a frequency analysis tool. DCT is widely used in an image compression technique.
FIG. 2 is a diagram illustrating a 4-point DCT basis. As shown in FIG. 2, the 4-point DCT kernel basis has symmetric and anti-symmetric properties around the center of 4 points. In FIG. 2, a0,0, a1,0, a2,0, and a3,0 are defined as the 4-point DCT coefficients of S0. Although both a2,0, and a3,0 are high frequency components, a2,0 is symmetric, and a3,0 is anti-symmetric around the center.
The center of S0 is located at a block boundary as shown in FIG. 1. Thus, a factor directly affecting the block discontinuity is not the symmetric component but the anti-symmetric component. The magnitude of a3,0 in a frequency domain is thus adjusted based on the anti-symmetric component being a major factor affecting the discontinuity. Accordingly, the proper adjustment of a3,0 is directly related to the reduction of block discontinuity in the spatial domain. Reduction of the block discontinuity will now be described.
In a first preferred embodiment, the magnitude of a3,0 is replaced with the minimum value of the magnitudes of a3,1 and a3,2, which are contained in a single block in an area surrounding a block boundary. By doing this, a large blocking artifact that appears when one side of the block boundary to be processed is smooth can be reduced. For a complex image where both S1 and S2 are the objects of motion (i.e., all the values of the magnitudes of a3,0, a3,1 and a3,2 are large), there is little influence on the block boundary.
A method for reducing a blocking artifact in a default mode is as follows:

v3′=v3−d;

v4′=v4+d;

and

d=CLIP(c2(a3,0′−a3,0)//c3,0, (v3−v4)/2)*δ(|a3,0|<QP).

In the method, a3,0′=SIGN(a3,0)*MIN(|a3,0|,|a3,1|,|a3,2|), and q is the component of DCT kernel. The condition |a3,0|<QP is used to count the influence of the quantization parameter on the blocking artifact. The |a3,0|<QP condition also prevents over-smoothing when the blocking artifact is not very serious. The clipping operation on the compensated value prevents the direction of the gradient at the boundary from being large or changed in an opposite direction.
The boundary pixel values, v3 and v4, are replaced with v3′ and v4′. QP is the quantization parameter of the macroblock where v4 belongs. Values, c1, c2, and c3 are kernel constants used in the 4-point DCT. To simplify an equation according to a first preferred embodiment of the present invention, the values of c1 and c2 are approximated to an integer, and the value of c3 is approximated to a multiple of 2. The values of a1, a2, and a3 are evaluated from the simple inner product of the DCT kernel and pixels, S0, S1, and S3.



  
    
      a
      
        3
        ,
        0
      
    
    =
    
      
        (
        
          
            [
            
              
                
                  
                    
                      c
                      1
                    
                    -
                    
                      c
                      2
                    
                  
                
                
                  
                    
                      c
                      2
                    
                    -
                    
                      c
                      1
                    
                  
                
              
            
            ]
          
          *
          
            
              [
              
                
                  
                    
                      v
                      2
                    
                  
                  
                    
                      v
                      3
                    
                  
                  
                    
                      v
                      4
                    
                  
                  
                    
                      v
                      5
                    
                  
                
              
              ]
            
            T
          
        
        )
      
      ⁢
      
        /
      
      ⁢
      
        c
        3
      
    
  




  
    
      a
      
        3
        ,
        1
      
    
    =
    
      
        (
        
          
            [
            
              
                
                  
                    
                      c
                      1
                    
                    -
                    
                      c
                      2
                    
                  
                
                
                  
                    
                      c
                      2
                    
                    -
                    
                      c
                      1
                    
                  
                
              
            
            ]
          
          *
          
            
              [
              
                
                  
                    
                      v
                      0
                    
                  
                  
                    
                      v
                      1
                    
                  
                  
                    
                      v
                      2
                    
                  
                  
                    
                      v
                      3
                    
                  
                
              
              ]
            
            T
          
        
        )
      
      ⁢
      
        /
      
      ⁢
      
        c
        3
      
    
  




  
    
      a
      
        3
        ,
        2
      
    
    =
    
      
        (
        
          
            [
            
              
                
                  
                    
                      c
                      1
                    
                    -
                    
                      c
                      2
                    
                  
                
                
                  
                    
                      c
                      2
                    
                    -
                    
                      c
                      1
                    
                  
                
              
            
            ]
          
          *
          
            
              [
              
                
                  
                    
                      v
                      4
                    
                  
                  
                    
                      v
                      5
                    
                  
                  
                    
                      v
                      6
                    
                  
                  
                    
                      v
                      7
                    
                  
                
              
              ]
            
            T
          
        
        )
      
      ⁢
      
        /
      
      ⁢
      
        c
        3
      
    
  



Such processes are performed in both horizontal and vertical block boundaries. In this manner, the blocking artifacts in the whole frame can be reduced.
The first embodiment reduces a blocking artifact in the default mode. However, in the default mode, only the boundary pixel values, v3 and a4, are compensated. Thus, the default mode is not sufficient to reduce the blocking artifact in a very smooth region, such as a setting in a picture.
To reduce the blocking artifact in the smooth region, a second preferred embodiment of a method for reducing blocking artifacts in a moving picture according to the present invention includes a DC offset mode. The method in the DC offset mode is as follows:




  
    
      
        
          
            v
            3
            ′
          
          =
          
            
              v
              3
            
            -
            d
          
        
        ;
      
    
  
  
    
      
        
          
            v
            4
            ′
          
          =
          
            
              v
              4
            
            +
            d
          
        
        ;
      
    
  
  
    
      
        
          
            v
            2
            ′
          
          =
          
            
              v
              2
            
            -
            
              d
              2
            
          
        
        ;
      
    
  
  
    
      
        
          
            v
            5
            ′
          
          =
          
            
              v
              5
            
            +
            
              d
              2
            
          
        
        ;
      
    
  
  
    
      
        
          
            v
            1
            ′
          
          =
          
            
              v
              1
            
            -
            
              d
              3
            
          
        
        ;
        and
      
    
  
  
    
      
        
          v
          6
          ′
        
        =
        
          
            v
            6
          
          +
          
            
              d
              3
            
            .
          
        
      
    
  




In the second preferred embodiment,



  
    
      
        d
        1
      
      =
      
        
          (
          
            3
            ⁢
            
              (
              
                
                  v
                  3
                
                -
                
                  v
                  4
                
              
              )
            
            ⁢
            
              /
            
            ⁢
            8
          
          )
        
        *
        δ
        ⁢
        
          
        
        ⁢
        
          (
          
            
              
              
                a
                
                  3
                  ,
                  0
                
              
              
            
            <
            QP
          
          )
        
      
    
    ,
    
      

    
    ⁢
    
      
        d
        2
      
      =
      
        
          (
          
            3
            ⁢
            
              (
              
                
                  v
                  3
                
                -
                
                  v
                  4
                
              
              )
            
            ⁢
            
              /
            
            ⁢
            16
          
          )
        
        *
        δ
        ⁢
        
          
        
        ⁢
        
          (
          
            
              
              
                a
                
                  3
                  ,
                  0
                
              
              
            
            <
            QP
          
          )
        
      
    
    ,
    and
  




  
    
      d
      3
    
    =
    
      
        (
        
          3
          ⁢
          
            (
            
              
                v
                3
              
              -
              
                v
                4
              
            
            )
          
          ⁢
          
            /
          
          ⁢
          32
        
        )
      
      *
      δ
      ⁢
      
        
      
      ⁢
      
        
          (
          
            
              
              
                a
                
                  3
                  ,
                  0
                
              
              
            
            <
            QP
          
          )
        
        .
      
    
  



The blocking artifact in the region where there is little motion, or which is a very small setting, is reduced through the above-described method or the like in the DC offset mode. An appropriate mode between the DC offset mode and default mode can be determined using the following conditional expression:

If (v0==v1&&v1==v2&&v2==v3&&v4==v5&&v5==v6&&v6==v7)

DC offset mode is applied; Else Default mode is applied.
When the DC offset mode or the default mode is selected according to the above conditional expression, the blocking artifacts are reduced in each mode. After determining the proper mode between the DC offset mode and the default mode, the block discontinuity at the boundary is compensated to form a consecutive line, which reduces the blocking artifact. In the second preferred embodiment, the DC offset mode and the default mode are set using S0, S1 and S2. However, the present invention is not intended to be limited to this. Alternative sets of points or the like can be used.
An exemplary method for reducing a blocking artifact when coding a moving picture, according to the second preferred embodiment of the present invention, is described with reference to the flow chart shown in FIG. 3.
After beginning in FIG. 3, control continues to step 101. In step 101, a plurality of pixels, S0, S1, and S2 are defined centering around a block boundary. From step 101, control continues to step 102. In step 102, if a mode is selected, a default mode is set, and control continues to step 103.
In step 103, frequency information of the surroundings of the block boundary for each pixel is obtained using, for example, the 4-point DCT kernel. From step 103, control continues to step 104. In step 104, the magnitude of discontinuous component belonging to the block boundary is replaced with the minimum magnitude of the discontinuous components belonging to the surroundings of the block boundary in the frequency domain. From step 104, control continues to step 105, where the adjusting operation is applied to the spatial domain. The default mode is effective in reducing the blocking artifact in a complex region of a picture. However, the default mode is less successful in a smooth region such as a setting in a picture.
Therefore, in a smooth region it is necessary to reduce the blocking artifact in another mode, the DC offset mode. In step 106, the DC offset mode is established. From step 106, control continues to step 107. In step 107, the blocking artifact in the region where there is little motion, such as a setting, is reduced. From step 107, the process ends. Thus, the overall blocking artifacts can be reduced according to the preferred embodiments.
As described above, the blocking artifact reduction methods according to the preferred embodiments of the present invention have various advantages and effects. The blocking artifact is more easily and effectively reduced using features of the frequency domain. The preferred embodiments provide a visually finer quality of a picture by reducing the blocking artifacts in both the complex and smooth regions. Further, calculations are simple. Accordingly, the amount of bits does not increase.
The foregoing embodiments are merely exemplary and are not to be construed as limiting the present invention. The present teaching can be readily applied to other types of apparatuses. The description of the present invention is intended to be illustrative, and not to limit the scope of the claims. Many alternatives, modifications, and variations will be apparent to those skilled in the art.

## Claims

1. A method of reducing a blocking artifact appearing when coding a picture, comprising:
dividing the picture into blocks that each include multiple pixels, wherein the pixels of a first block are separated from pixels of a neighboring second block by a block boundary;
obtaining frequency information for a neighboring second pixel of the second block; and
adjusting a first pixel of the first block based upon the neighboring second pixel if a magnitude of the blocking artifact is less than a quantization parameter of the second block.

2. The method of claim 1,
wherein adjusting the first pixel further comprises replacing a pixel value v3 of the first pixel with a value v3′,
wherein the value v3′ is expressed as:


v3′=v3−d


wherein d is expressed as:





  
    d
    =
    
      
        CLIP
        ⁡
        
          (
          
            
              
                
                  c
                  2
                
                ⁡
                
                  (
                  
                    
                      a
                      
                        3
                        ,
                        0
                      
                      ′
                    
                    -
                    
                      a
                      
                        3
                        ,
                        0
                      
                    
                  
                  )
                
              
              //
              
                c
                3
              
            
            ,
            0
            ,
            
              
                (
                
                  
                    v
                    3
                  
                  -
                  
                    v
                    4
                  
                
                )
              
              2
            
          
          )
        
      
      *
      
        δ
        ⁡
        
          (
          
            
              
              
                a
                
                  3
                  ,
                  0
                
              
              
            
            <
            QP
          
          )
        
      
    
  
  ,



wherein a3,0′ is expressed as:





  
    
      a
      
        3
        ,
        0
      
      ′
    
    =
    
      
        SIGN
        ⁡
        
          (
          
            a
            
              3
              ,
              0
            
          
          )
        
      
      *
      
        MIN
        ⁡
        
          (
          
            
              
              
                a
                
                  3
                  ,
                  0
                
              
              
            
            ,
            
              
              
                a
                
                  3
                  ,
                  1
                
              
              
            
            ,
            
              
              
                a
                
                  3
                  ,
                  2
                
              
              
            
          
          )
        
      
    
  
  ,



wherein QP represents a quantization parameter of the second block, c2 and c3 represent DCT kernel coefficients, and v4 represents a pixel value of the neighboring second pixel.

3. The method of claim 2, wherein



  
    
      
        δ
        ⁢
        
          
        
        ⁢
        
          (
          
            
              
              
                a
                
                  3
                  ,
                  0
                
              
              
            
            <
            QP
          
          )
        
      
      =
      
        
          1
          ⁢
          
            
          
          ⁢
          if
          ⁢
          
            
          
          ⁢
          
            
            
              a
              
                3
                ,
                0
              
            
            
          
        
        <
        QP
      
    
    ,
    
      and
      ⁢
      
        
      
      ⁢
      wherein
    
  




  
    
      δ
      ⁢
      
        
      
      ⁢
      
        (
        
          
            
            
              a
              
                3
                ,
                0
              
            
            
          
          <
          QP
        
        )
      
    
    =
    
      
        0
        ⁢
        
          
        
        ⁢
        if
        ⁢
        
          
        
        ⁢
        
          
          
            a
            
              3
              ,
              0
            
          
          
        
      
      ≥
      
        QP
        .

4. The method of claim 2, wherein c2 is an integer and c3 is a multiple of 2.

5. The method of claim 4, wherein c2 =5 and c3 =8.

6. The method of claim 1, further comprising applying the adjusting operation to a spatial domain of the first pixel.

7. The method of claim 1, wherein the block boundary is a vertical or horizontal block boundary.

8. The method of claim 1, further comprising adjusting the neighboring second pixel based upon frequency information of the first pixel.

9. The method of claim 1, wherein a magnitude of the adjusting operation is constrained to be no greater than half of the difference between a value of the first pixel and a value of the second pixel, using a clipping function.

10. The method of claim 1, wherein a magnitude of the adjusting operation is based upon a minimum magnitude of frequency information of the first and second pixels.

11. The method of claim 1, wherein a magnitude of the adjusting operation is based upon frequency information of the first pixel and the neighboring second pixel.

12. An apparatus for reducing a blocking artifact appearing when coding a picture, the apparatus comprising:
a blocking filter configured to:
divide the picture into blocks that each include multiple pixels, wherein the pixels of a first block are separated from pixels of a neighboring second block by a block boundary,
obtain frequency information for a neighboring second pixel of the second block, and
adjust a first pixel of the first block based upon the neighboring second pixel if a magnitude of the blocking artifact is less than a quantization parameter of the second block.