Patent ReferencesMethod and apparatus for processing block coded image data to reduce boundary artifacts between adjacent image blocks Method of reducing block artifacts created by block transform compression algorithms Encoding and decoding color image data based on mean luminance and an upper and a lower color value Method for removing a blocking effect for use in a video signal decoding apparatus Low bit rate video encoder using overlapping block motion compensation and zerotree wavelet coding Micro architecture of video core for MPEG-2 decoder Method and apparatus for post-processing images Post-processing method and apparatus for use in a video signal decoding apparatus Method and apparatus for the reduction of blocking effects in images Patent #: 5881180 InventorsApplicationNo. 10124385 filed on 04/18/2002US Classes:382/268Minimize discontinuities at boundaries of image blocks (i.e., reducing blocking effects or effects of wrap-around) , 375/E7.241ExaminersPrimary: Rogers, Scott AInternational ClassesG06K 9/40G06T 5/00 H03M 13/47 DescriptionBACKGROUND OF THE INVENTIONThe present invention relates to block based video coding schemes and, most particularly, to a method of eliminating artifacts at block boundaries by transposing pixels at block boundaries with pixels from boundaries of neighboring blocks beforecoding. Known systems for coding video information advantageously employ transform coding of a plurality of blocks or macro blocks. In such systems, image data often are filtered, broken down into a luminance component and two chrominance components,and organized into blocks of image data. For example, according to the proposed MPEG-4 video standard, image data are organized first into blocks, each containing an 8 pixel by 8 pixel array of data, then into macro blocks including up to four luminanceblocks and two chrominance blocks. The blocks of image data are then transform coded from a pixel domain to an array of transform coefficients and scaled by a quantization parameter and transmitted in an output bit stream. Block-based transform coding is preferred over other known coding schemes, such as wavelet coding, because it is relatively less complex to implement. However, such block-based transform coding causes annoying artifacts in the reconstructedimage. Quantization parameters may be established for each block or macro block of image data. Differences in quantization parameters among the various blocks or macro blocks result in distortion at the block boundaries. For instance, in flat imageareas, such distortions impose a patchwork effect on reconstructed image data. Similar artifacts appear in image areas having heavy texture, but are less noticeable. Block based coding with variable quantization causes additional artifacts to arise,such as chromo-bleeding, "mosquito-noise" and "ringing" artifacts. Prior systems have attempted to ameliorate the effect of such artifacts by low pass filtering reconstructed image data at block boundaries. However, while low pass filtering reduces block artifacts, it also causes blurring of image data. Lowpass filtering impairs image quality. There is a need in the art for an image coder that advantageously employs block-based transform coding and quantization but reduces image artifacts at block boundaries. Further, there is a need in the art for a coding scheme that reducesartifacts without unnecessarily blurring image data. SUMMARY OF THE INVENTION The disadvantages of the prior art are alleviated to a great extent by an image coding scheme that employs block-based transform coding and quantization. An encoder transposes pixels across block boundaries in a predetermined direction prior totransform coding. For example, alternate pixels along a boundary of a first block may be transposed with adjacent pixels in a diagonal direction of neighboring blocks. After transposition, each reformed block undergoes transform coding andquantization. A decoder performs reverse operations of those employed by the encoder. Each coded block is dequantized and coded by an inverse transform to reconstruct blocks of pixel information. At the conclusion of the inverse transform, pixels that weresubject to transposition are returned to the neighboring blocks from which they originated. After transposition, each block may be processed further for display. The pixel transposition reduces image artifacts at block boundaries and improves image quality, particularly in flat image areas. By including cross border pixels in the transform coding and quantization, the transform coding and quantizationare performed with greater uniformity on image data. BRIEF DESCRIPTION OF THE DRAWINGS FIGS. 1(a) and 1(b) respectively illustrate an encoder 100 and a decoder 200 according to an embodiment of the present invention. FIGS. 2(a) and 2(b) respectively illustrate the pixel transposition operation of the present invention as applied to blocks and macro blocks of image data. DETAILED DESCRIPTION Turning to FIG. 1(a), circuitry of an encoder 100 is illustrated therein constructed in accordance with an embodiment of the present invention. Blocks or macro blocks of image data are input to a pixel transposition circuit 110. Each blockpossesses one of luminance or chrominance image data. The pixel transposition circuit 110 transposes specific pixels from the boundary of each block or macro block with pixels from its neighbors. The pixel transposition circuit 110 then outputsreconstituted blocks of pixel data to a transform coder 120. The transform coder 120 performs a transform of the block data from a pixel domain to a domain of coefficients representative of the pixel data. For example, the transform coder 120 mayperform a discrete cosine transform as is known in the art. The transform coder 120 outputs blocks of coefficient data to a quantizer 130. For each block or macro block, the quantizer 130 generates a quantizer parameter (Qp) based upon thebandwidth of a channel available to transmit the coded image data. The quantizer 130 scales the coefficients of the block by the quantization parameter. The quantizer 130 outputs blocks of scaled coefficient information and the quantization parametersgenerated for each for further processing and transmission. FIG. 1(b) illustrates circuitry of a decoder 200 constructed in accordance with an embodiment of the present invention. Blocks of scaled coefficients are isolated from the transmitted bit stream and input to a dequantizer 230. The dequantizer230 identifies the quantization parameter for each block and scales the scaled coefficients of the block by the quantization parameter. Where the quantizer 130 may have divided each coefficient by Qp, the dequantizer multiplies the scaled coefficientsby the same Qp to obtain the original coefficients. The dequantizer 230 outputs reconstructed coefficient data to an inverse transform coding circuit 220. The inverse transform coding circuit 220 transforms the coefficients back to the pixel domain,such as by discrete transform coding. The inverse transform coding circuit 220 outputs blocks or macro blocks of reconstructed pixel data to an inverse pixel transposition circuit 210. For each block or macro block, the inverse pixel transpositioncircuit 210 transposes pixels along its boundary with pixels of its neighbors in a direction complementary to the process applied by the pixel transposition circuit 110. The inverse pixel transposition circuit 210 returns pixels to their originalposition in the neighboring blocks or macro blocks. The inverse pixel transposition circuit 110 outputs blocks of pixel information for further processing and display. An example of a pixel transposition process is shown in FIG. 2(a) applied on a block by block basis. For each block A, the pixel transposition circuit 110 stores, in memory, pixel information from a plurality of surrounding Blocks 1-8. Thepixel transposition circuit 110 transposes pixel information in a predetermined direction. In the example of FIG. 2(a), the pixels are transposed along a diagonal direction from high-left to low-right and vice versa. Under the pixel transposition process, each alternate pixel on the edge of a given block A is transposed with a pixel across the block boundary in the predetermined direction. In the example of FIG. 2(a), the pixel in the upper left-hand cornerof block A is transposed with a pixel in the lower right-hand corner of block 1. Three pixels along the upper edge of block A are transposed with pixels on the lower edge of block 2 in the same diagonal direction. Alternate pixels found on theright-hand edge of block A are transposed with pixels on the left-hand edge of block 4 in the diagonal direction. The pixel in the lower right-hand corner of block A is transposed with a pixel in the upper left-hand corner of block 5. Alternate pixelson the lower edge of block A are transposed with pixels on the upper edge of block 6 in the diagonal direction. Finally, alternate pixels on the left hand edge of block 8 are transposed with pixels found on the right-hand edge of block 8 in the diagonaldirection. Pixel transposition is performed only on like-kind data. When performing pixel transposition on a luminance block, the pixel transposition circuit 110 considers only neighboring luminance blocks for transposition. Similarly, for blocks of eachof the two chrominance signals, pixel transposition is performed only with neighboring chrominance image blocks of the same type. FIG. 2(b) illustrates an example where pixel transposition is performed on a macro block by macro block basis. In the event that the quantizer circuit 130 computes quantization parameters for each macro block rather than for each block, it ispreferable to perform a pixel transposition on a macro block by macro block basis. In this example, a macro block consists of four blocks of image information, Blocks A-D. The macro block is surrounded by twelve neighboring blocks, Blocks 1-12. For themacro block, pixel transposition is performed on alternate pixels on the boundary of the macro block with pixel information of neighboring macro blocks along a pre-determined direction. In this example, the predetermined direction is from low-left tohigh-right and vice versa. As shown in FIG. 2(b), the pixel in the upper right-hand corner of Block B is transposed with a pixel in the lower left-hand corner of Block 4. Similarly, a pixel in a lower left-hand corner of Block C is transposed with apixel in the upper right-hand corner of Block 10. Alternate pixels on the top edge of the macro block, the top edges of Blocks A and B, are transposed with pixels on the bottom edges of Blocks 2 and 3 in a diagonal direction. Pixels on the right-handedge of the macro block, the right-hand edges of Blocks B and D, are transformed on the left-hand edges of Blocks 5 and 6 in the diagonal direction. Blocks on the lower edge of the macro block, the lower edges of Blocks C and D, are transposed withpixels found in the diagonal direction on the upper edges of Blocks 8 and 9. Finally, pixels found on the left-hand edge of the macro block, the left-hand edges of Blocks A and C, are transposed with pixels found in a diagonal direction in theright-hand edges of Blocks 11 and 12. The direction of transposition is arbitrary. Any direction may be applied. In addition to high-left to low-right and low-left to high-right, horizontal (right to left) and vertical (above to below) directions may be applied. The direction maybe predetermined by the system or defined for each coded video frame. If the direction of transposition is variable, the pixel transposition circuit 110 includes a transposition keyword in the output bitstream identifying the direction of transposition. The decoder identifies the transposition keyword and identifies a direction of transposition therefrom. So, too, the pattern of transposition may varied. In addition to selection of alternate pixels for transposition, every third or every fourth pixel may be selected for transposition. Further, the pattern may varied so as to select pixels at afirst rate, such as every other pixel, in a first region of data, then a second rate, such as every fourth pixel, in a second region of data. The encoder 100 and decoder 200 shown in FIGS. 1(a) and 1(b) are not full video coders. Preprocessing is generally performed on pixels before they are input to the pixel transposition circuit 110, which generally involves sampling of image data,conversion to a digital format, filtering, and component isolation. Preprocessing also includes organization of the component signals into blocks. However, in a preferred embodiment, preprocessing functions may be merged into the pixel transpositioncircuit 110. In this case, the pixel transposition circuit may be programmed to reorder pixels before they are organized into blocks. Other References
Field of SearchMinimize discontinuities at boundaries of image blocks (i.e., reducing blocking effects or effects of wrap-around)Artifact removal or suppression (e.g., distortion correction) IMAGE ENHANCEMENT OR RESTORATION Discrete cosine or sine transform Quantization Error detection or correction Associated signal processing Discrete cosine Block coding Pre/post filtering Processing at encoder or transmitter (e.g., pre-correction) |
| ||||||||||||||