Method and apparatus for encoding and decoding image using flexible orthogonal transform

A method and apparatus for encoding an image by freely combining a plurality of prediction schemes and a plurality of orthogonal transform schemes based on grouping and matching of the plurality of prediction schemes and the plurality of orthogonal transform schemes is provided.

CROSS-REFERENCE TO RELATED PATENT APPLICATION

This application claims priority from Korean Patent Application No. 10-2009-0076734, filed on Aug. 19, 2009, in the Korean Intellectual Property Office, the disclosure of which is incorporated herein in its entirety by reference.

BACKGROUND

Apparatuses and methods consistent with the exemplary embodiments generally relate to encoding and decoding an image, and more particularly, to a method and apparatus for encoding an image using an orthogonal transform.

2. Description of the Related Art

A codec such as Moving Pictures Experts Group (MPEG)-4 H.264/MPEG-4 Advanced Video Coding (AVC) performs prediction encoding of an image using intra or inter prediction. For the inter prediction, an image encoding apparatus generates a prediction block by searching a reference picture for a block identical or similar to a current block and performing motion compensation of the current block based on the searching result. For the intra prediction, an image encoding apparatus generates a prediction block by using a value of pixels included in a previously encoded area adjacent to a current block.

Once the prediction block is generated, a residual block is generated by subtracting the prediction block from the current block, and an orthogonal transform is performed on the generated residual block. The orthogonal transform may include a Discrete Cosine Transform (DCT).

SUMMARY OF THE EXEMPLARY EMBODIMENTS

The exemplary embodiments provide a method and apparatus for encoding and decoding an image using an orthogonal transform, and a computer readable recording medium having embodies thereon a computer readable program for executing the method.

According to an aspect of the exemplary embodiments, there is provided a method for encoding an image, the method including: generating at least one group on prediction (or prediction group) by grouping a plurality of prediction schemes; generating at least one group on orthogonal transform (or orthogonal transform group) by grouping a plurality of orthogonal transform schemes; matching the at least one group on prediction to the at least one group on orthogonal transform; and encoding an input image by transforming a block predicted by a prediction scheme of a predetermined group on prediction using an orthogonal transform scheme of a group on orthogonal transform, which is matched to the predetermined group on prediction, based on the matching.

The generating of at least one group on prediction may include generating the at least one group on prediction by grouping the plurality of prediction schemes based on at least one of the size of a prediction block and a type of prediction scheme.

The type of prediction scheme may include intra prediction and inter prediction.

The generating of at least one group on orthogonal transform may include generating the at least one group on orthogonal transform by grouping the plurality of orthogonal transform schemes based on at least one of the size of a transform block and a transform algorithm.

The transform algorithm may include a Discrete Cosine Transform (DCT) and a Hadamard transform.

The matching may include matching the at least one group on prediction to the at least one group on orthogonal transform based on the size of a prediction block and the size of a transform block.

The matching may be performed in a unit of image sequence, picture, slice, or Instantaneous Decoding Refresh (IDR).

The encoding may include encoding information regarding matching between the at least one group on prediction and the at least one group on orthogonal transform.

According to another aspect of the exemplary embodiments, there is provided a method for decoding an image, the method including: receiving a bitstream of a predetermined output image; decoding information regarding matching between at least one group on prediction and at least one group on orthogonal transform; and decoding the output image by predicting a block inverse-orthogonally transformed by a transform scheme of a predetermined group on orthogonal transform using a prediction scheme of a matched group on prediction based on the matching.

According to another aspect of the exemplary embodiments, there is provided an apparatus for encoding an image, the apparatus including: an image encoder for encoding an input image; and a matching unit for matching at least one group on prediction to at least one group on orthogonal transform and encoding the input image by transforming a block predicted by a prediction scheme of a predetermined group on prediction using an orthogonal transform scheme of a group on orthogonal transform, which is matched to the predetermined group on prediction, based on the matching.

According to another aspect of the exemplary embodiments, there is provided an apparatus for decoding an image, the apparatus including: an image decoder for decoding a bitstream of an output image; and a matching unit for decoding the output image by predicting a block inverse-orthogonally transformed by a transform scheme of a predetermined group on orthogonal transform by the image decoder using a prediction scheme of a matched group on prediction based on information regarding matching between at least one group on prediction and at least one group on orthogonal transform, which are included in the bitstream.

According to another aspect of the exemplary embodiments, there is provided a computer readable recording medium having embodied thereon a computer readable program for executing the method for encoding an image and the method for decoding an image.

DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS

The exemplary embodiments will now be described more fully with reference to the accompanying drawings, in which exemplary embodiments are shown.

FIG. 1is a block diagram of an image encoding apparatus100according to an exemplary embodiment.

Referring toFIG. 1, the image encoding apparatus100includes an image encoder110and a matching unit120.

The image encoder110receives and encodes an input image. The image encoder110encodes the input image based on information regarding matching between a group on prediction and a group on orthogonal transform, which is generated by the matching unit120, as will be described later with reference toFIGS. 2A to 2Cand3.

The matching unit120generates at least one group on prediction by grouping a plurality of prediction schemes and generates at least one group on orthogonal transform by grouping a plurality of orthogonal transform schemes. Hereinafter, the group on prediction is called a prediction group, and the group on orthogonal transform is called an orthogonal transform group.

FIG. 2Ais a diagram illustrating grouping of a plurality of prediction schemes according to an exemplary embodiment.

In the generation of a prediction block regarding a predetermined block for prediction encoding of an image, a plurality of prediction schemes that are different according to the size of a prediction block, which is a basic unit of prediction, and a type of prediction scheme may be used. For example, for predicting a current block having a size of 16×16 pixels, the prediction may be performed in a unit of size 16×16 or with 4 sub-blocks having a size of 8×8.

Alternatively, a plurality of prediction schemes that are different based on a type of prediction scheme, i.e., according to whether an intra prediction mode or inter prediction mode is used, may be used. Moreover, when the type of prediction scheme is the inter prediction mode, a plurality of prediction schemes that are different according to bi-directional prediction in which both temporally previous and following pictures are referred to or according to one-directional prediction in which only a temporally previous picture is referred to may be used.

The matching unit120generates at least one prediction group #1to #m by grouping a plurality of prediction schemes #1to #n in which at least one of the size of a prediction block and a type of prediction scheme is different.

For example, based on the size of a prediction block, prediction schemes in which prediction is performed with a size of 16×16 may be grouped into a prediction group #1, and prediction schemes in which prediction is performed with a size of 8×8 may be grouped into a prediction group #2.

Alternatively, based on a type of prediction scheme, prediction schemes using the intra prediction mode may be grouped into a prediction group #1, and prediction schemes using the inter prediction mode may be grouped into a prediction group #2.

Alternatively, grouping may be performed by combining the size of a prediction block and a type of prediction scheme. For example, prediction schemes using the inter prediction mode, in which prediction is performed with a size equal to or greater than 8×8, may be grouped into a prediction group #1, prediction schemes using the inter prediction mode, in which prediction is performed with a size equal to or less than 4×4, may be grouped into a prediction group #2, prediction schemes using the intra prediction mode, in which prediction is performed with a size equal to or greater than 8×8, may be grouped into a prediction group #3, and prediction schemes using the intra prediction mode, in which prediction is performed with a size equal to or less than 4×4, may be grouped into a prediction group #4.

The size of a prediction block and a type of prediction scheme, which are described above, are only exemplary of a criterion for grouping a plurality of prediction schemes, and the exemplary embodiments are not limited thereto. For example, a plurality of prediction schemes may be grouped according to whether a prediction block has a perfect rectangular form or a rectangular form.

FIG. 2Bis a diagram illustrating grouping of a plurality of orthogonal transform schemes according to an exemplary embodiment.

An orthogonal transform for transforming pixel values in a pixel domain into coefficients in a frequency domain also may be performed using a plurality of orthogonal transform schemes according to the size of a transform block and an orthogonal transform algorithm. For performing an orthogonal transform of a current block having a size of 16×16, the orthogonal transform may be performed in a unit of 16×16 or with 4 sub-blocks having a size of 8×8. Alternatively, a plurality of orthogonal transform schemes that are different according to an orthogonal transform algorithm, i.e., according to whether a Discrete Cosine Transform (DCT) algorithm or a Hadamard transform algorithm is used, may be used. The transform algorithm may differ according to a basis function multiplied by a block of the pixel domain for orthogonal transform.

The matching unit120generates at least one orthogonal transform group #1to #q by grouping a plurality of orthogonal transform schemes #1to #p in which at least one of the size of a transform block and a type of transform algorithm is different.

For example, based on the size of a transform block, orthogonal transform schemes in which an orthogonal transform is performed with a size of 16×16 may be grouped into an orthogonal transform group #1, and orthogonal transform schemes in which an orthogonal transform is performed with a size of 8×8 may be grouped into an orthogonal transform group #2.

Alternatively, based on an orthogonal transform algorithm, orthogonal transform schemes using a DCT may be grouped into an orthogonal transform group #1, and orthogonal transform schemes using a Hadamard transform may be grouped into an orthogonal transform group #2.

Alternatively, grouping may be performed by combining the size of a transform block and an orthogonal transform algorithm. For example, prediction schemes using a DCT, in which an orthogonal transform is performed with a size equal to or greater than 8×8, may be grouped into an orthogonal transform group #1, orthogonal transform schemes using a DCT, in which an orthogonal transform is performed with a size equal to or less than 4×4, may be grouped into an orthogonal transform group #2, orthogonal transform schemes using a Hadamard transform, in which an orthogonal transform is performed with a size equal to or greater than 8×8, may be grouped into an orthogonal transform group #3, and orthogonal transform schemes using a Hadamard transform, in which an orthogonal transform is performed with a size equal to or less than 4×4, may be grouped into an orthogonal transform group #4.

Unlike the prediction groups shown inFIG. 2A, the orthogonal transform groups shown inFIG. 2Bmay include the same orthogonal transform schemes. In other words, orthogonal transform schemes may be grouped so that a predetermined orthogonal transform scheme is included in both the orthogonal transform group #1and the orthogonal transform group #2. For example, when orthogonal transform schemes are grouped so that orthogonal transform schemes using transform blocks having sizes of 16×16 and 8×8 are included in the orthogonal transform group #1and orthogonal transform schemes using transform blocks having sizes of 8×8 and 4×4 are included in the orthogonal transform group #2, orthogonal transform schemes using a transform block having a size of 8×8 are included in both the orthogonal transform group #1and the orthogonal transform group #2.

FIG. 2Cis a diagram illustrating matching between at least one prediction group and at least one orthogonal transform group according to an exemplary embodiment.

When at least one prediction group and at least one orthogonal transform group are generated as shown inFIGS. 2A and 2B, the matching unit120matches the at least one prediction group to the at least one orthogonal transform group.

Referring toFIG. 2C, the matching unit120matches the prediction group #1to the orthogonal transform group #1and matches the prediction group #2to the orthogonal transform group #2. That is, prediction groups are matched to predetermined orthogonal transform groups, respectively. However, different prediction groups may be matched to one orthogonal transform group. In the illustration shown inFIG. 2C, the prediction groups #1and #4are matched to the orthogonal transform group #1.

Since it is efficient that an orthogonal transform is performed using the same orthogonal transform scheme even when prediction blocks are generated using different prediction schemes, different prediction groups may be matched to one orthogonal transform group.

The matching may be performed according to various criteria. However, according to an exemplary embodiment, prediction groups may be matched to orthogonal transform groups based on the size of a prediction block and the size of a transform block. In other words, when prediction groups and orthogonal transform groups are generated based on size, groups in which the size of a prediction block is similar to the size of an orthogonal transform block are matched to each other.

For example, a prediction group including prediction schemes using prediction blocks having sizes of 16×16 and 8×8 is matched to an orthogonal transform group using an orthogonal transform block having sizes of 16×16 and 8×8. That is, an image predicted using blocks having a large size may be orthogonally transformed using blocks having a large size, and on the contrary, an image predicted using blocks having a small size may be orthogonally transformed using blocks having a small size.

FIGS. 3A to 3Cillustrate syntaxes for matching between at least one prediction group and at least one orthogonal transform group, according to an exemplary embodiment.

The matching unit120generates at least one prediction group by grouping a plurality of prediction schemes, as shown inFIG. 2A, according to a syntax shown inFIG. 3A. InFIG. 3A, “NUM_PRED_GROUP” denotes the number of prediction groups, “NUM_PREDUNIT_IN_GROUP[n]” denotes the number of prediction schemes included in an nthprediction group, and “USED_PRED_UNIT[n][i]” denotes an ithprediction scheme of the nthprediction group.

The matching unit120generates at least one orthogonal transform group by grouping a plurality of orthogonal transform schemes, as shown inFIG. 2B, according to a syntax shown inFIG. 3B. InFIG. 3B, “NUM_TRANS_SET” denotes the number of orthogonal transform groups, “NUM_TRANS_IN_SET[n]” denotes the number of orthogonal transform schemes included in an nthorthogonal transform group, and “USED_TRANS_UNIT[n][i]” denotes an ithorthogonal transform scheme of the nthorthogonal transform group.

The matching unit120matches at least one prediction group to at least one orthogonal transform group, as shown inFIG. 2C, according to a syntax shown inFIG. 3C. InFIG. 3C, “TRANSFORM_SET_MATCHING[n]” denotes an orthogonal transform group matched to an nthprediction group.

According to an exemplary embodiment, the matching unit120may generate at least one prediction group and at least one orthogonal transform group in a unit of an image sequence, a picture, a slice, or an Instantaneous Decoding Refresh (IDR) picture and match the at least one prediction group to the at least one orthogonal transform group. When at least one prediction group and at least one orthogonal transform group are generated and matched to each other according to the syntaxes shown inFIGS. 3A to 3C, a new overhead may be generated to encode information regarding the at least one prediction group, information regarding the at least one orthogonal transform group, and information regarding matching. Thus, the matching unit120generates at least one prediction group and at least one orthogonal transform group in a unit of an image sequence, picture, a slice, or an IDR picture and matches the at least one prediction group to the at least one orthogonal transform group.

According to another exemplary embodiment, at least one prediction group and at least one orthogonal transform group may be generated and matched to each other in a unit of a block. However, as described above, when information regarding the at least one prediction group, information regarding the at least one orthogonal transform group, and information regarding matching are encoded in a unit of a block, a large overhead may be generated, thereby decreasing a compression ratio of image encoding. To solve this problem, at least one prediction group and at least one orthogonal transform group are generated and matched to each other in a unit of a block using information regarding a previously encoded area adjacent to a currently encoded block.

In other words, the matching unit120may generate at least one prediction group and at least one orthogonal transform group using at least one piece of encoding information of motion vector, motion vector difference, reference index, prediction scheme, orthogonal transform scheme, orthogonal transform coefficient, Quantization Parameter (QP), delta QP, residual value, and reference picture of at least one block included in a previously encoded area adjacent to a current block and match the at least one prediction group to the at least one orthogonal transform group.

For example, when a size of a motion vector of a block included in a previously encoded area adjacent to a current block is equal to or less than a predetermined value, it may be determined that the current block is a plane area without any motion as an adjacent block. In this case, since the probability that residual values generated as a prediction result of the current block are ‘0’ is high, a compression ratio of image encoding may be increased by performing transform with a transform block having a large size. Thus, matching may be changed in a block unit by matching prediction groups to orthogonal transform groups including orthogonal transform schemes using a transform block having a large size.

FIG. 4is a diagram illustrating matching between at least one prediction group and at least one orthogonal transform group, according to another exemplary embodiment.

Referring toFIG. 4, the matching unit120may use previously established sets for matching at least one prediction group to at least one orthogonal transform group.

The matching unit120generates prediction groups and orthogonal transform groups and matches them to each other according to one of previously established “Pre-fix set1”, “Pre-fix set2”, . . . , “Pre-fix set c”. By generating prediction groups and orthogonal transform groups and matching them to each other according to a previously established set as shown inFIG. 4, an overhead generated to encode information regarding groups and information regarding matching may be minimized. This is because there is no need to encode the information regarding groups and the information regarding matching since a decoder may decode an image using one of the previously established sets shown inFIG. 4only if an index indicating that prediction groups and orthogonal transform groups are matched to each other according to which one of “Pre-fix set1”, “Pre-fix set2”, . . . , “Pre-fix set c” is encoded.

Referring back toFIG. 1, when the matching unit120matches at least one prediction group to at least one orthogonal transform group as shown inFIGS. 2A to 2C,3A to3C, and4, the image encoder110encodes an input image under the control of the matching unit120. The image encoder110receives information regarding the matching and encodes an input image based on the received information regarding the matching.

A block predicted by a prediction scheme of a predetermined prediction group is transformed using an orthogonal transform scheme of a matched orthogonal transform group. If a predetermined block k of an input image is predicted according to a prediction scheme of a prediction group #x, the block k is orthogonally transformed according to an orthogonal transform scheme of an orthogonal transform group #y matched to the prediction group #x.

In a case where at least one prediction group and at least one orthogonal transform group are matched to each other as shown inFIG. 2C, when a predetermined block of an input image is predicted using a prediction scheme included in the prediction group #4, this block is orthogonally transformed using an orthogonal transform scheme included in the orthogonal transform group #1.

Alternatively, the image encoder110encodes information regarding prediction groups, information regarding orthogonal transform groups, and information regarding matching between the prediction groups and the orthogonal transform groups, which are received from the matching unit120. The syntaxes shown inFIGS. 3A to 3Cmay be entropy-encoded. When prediction groups and orthogonal transform groups are matched to each other using previously established sets as shown inFIG. 4, only indexes of the previously established sets may be entropy-encoded.

FIG. 5is a block diagram of an image encoding apparatus500according to another exemplary embodiment.

Referring toFIG. 5, the image encoding apparatus500includes an intra predictor510, a motion estimator520, an inter predictor530, an orthogonal transform and quantization unit540, an entropy encoder550, a dequantization and inverse orthogonal transform unit560, a deblocking filter570, a frame memory580, and a matching unit590. The matching unit590performs the same function as the matching unit120shown inFIG. 1, and the other modules510to580perform functions of the image encoder110shown inFIG. 1. Hereinafter, a case where the image encoding apparatus500encodes a current block will be described as an example.

The intra predictor510performs intra prediction of the current block. In more detail, the intra predictor510performs the intra prediction using pixel values included in a previously encoded area adjacent to the current block. In this case, the intra predictor510generates a prediction block by making a copy of the pixel values included in the previously encoded area adjacent to the current block in a predetermined direction.

The motion estimator520performs motion estimation of the current block. The motion estimator520searches for a block identical or similar to the current block from at least one reference picture stored in the frame memory580and transmits the search result to the inter predictor530. In more detail, the motion estimator520searches for a block having the least Sum of Absolute Difference (SAD) than the current block from at least one reference picture. A motion vector is generated as the search result.

The inter predictor530performs inter prediction of the current block based on the motion estimation result of the motion estimator520. That is, the inter predictor530receives the motion vector of the current block from the motion estimator520and performs motion compensation of the current block according to the motion vector.

When a residual block is generated by subtracting a prediction block generated by the intra predictor510or the inter predictor530from the current block, the orthogonal transform and quantization unit540orthogonal-transforms and quantizes the residual block. In more detail, the orthogonal transform and quantization unit540performs orthogonal transform of the residual block using a DCT or Hadamard transform and quantizes coefficients generated as a result of the orthogonal transform according to a predetermined quantization parameter.

The quantized coefficients are entropy-encoded by the entropy encoder550. The entropy encoding is performed according to Context-based Adaptive Variable Length Code (CAVLC) or Context-based Adaptive Binary Arithmetic Code (CABAC).

The dequantization and inverse orthogonal transform unit560restores a residual block by dequantizing and inverse-orthogonal-transforming the quantized coefficients. The residual block is restored by performing the process of the orthogonal transform and quantization unit540in an inverse way.

By adding the restored residual block to the prediction block, the current block is restored. The restored current block is deblocking-filtered by the deblocking filter570and stored in the frame memory580in order to be used for prediction of the next picture or block.

The matching unit590generates prediction groups and orthogonal transform groups. Thereafter, the matching unit590matches at least one prediction group to at least one orthogonal transform group. It has been described that the prediction groups and the orthogonal transform groups may be generated and matched in a unit of an image sequence, a picture, a slice, or an IDR picture.

In addition, the matching unit590controls image encoding of other modules510,530,540, and560based on the matching. If the current block has been predicted using one of prediction schemes of the prediction groups #x, the matching unit590controls the intra predictor510, the inter predictor530, the orthogonal transform and quantization unit540, and the dequantization and inverse orthogonal transform unit560to perform orthogonal transform of the current block using one of orthogonal transform schemes of the orthogonal transform groups #y matched to the prediction groups #x.

In more detail, the matching unit590determines a prediction scheme of one of the prediction groups that was used to encode the current block, based on the prediction results of the intra predictor510and the inter predictor530. Thereafter, the matching unit590controls the orthogonal transform and quantization unit540to perform orthogonal transform of the current block using an orthogonal transform scheme of an orthogonal transform group matched to a prediction group used for predicting the current block. In addition, the matching unit590controls the dequantization and inverse orthogonal transform unit560to perform inverse orthogonal transform by inversely performing the orthogonal transform scheme used by the orthogonal transform and quantization unit540.

Information regarding the prediction group, information regarding the orthogonal transform group, and information regarding the matching between the prediction group and the orthogonal transform group, which are generated by the matching unit590, are entropy-encoded by the entropy encoder550and inserted into a bitstream.

FIG. 6is a flowchart of an image encoding method according to an exemplary embodiment.

Referring toFIG. 6, in operation610, the image encoding apparatus100or500according to an exemplary embodiment generates at least one prediction group by grouping a plurality of prediction schemes. A method and syntax for generating the at least one prediction group have been described with reference toFIGS. 2A and 3A.

In operation620, the image encoding apparatus100or500generates at least one orthogonal transform group by grouping a plurality of orthogonal transform schemes. Herein, one orthogonal transform scheme may be included in different orthogonal transform groups. A method and syntax for generating the at least one orthogonal transform group have been described with reference toFIGS. 2B and 3B.

In operation630, the image encoding apparatus100or500matches the at least one prediction group generated in operation610to the at least one orthogonal transform group generated in operation620. Herein, one orthogonal transform group may be matched to different prediction groups. A method and syntax for matching between the at least one prediction group and the at least one orthogonal transform group have been described with reference toFIGS. 2C and 3C.

In operation640, the image encoding apparatus100or500encodes an input image based on the matching between the at least one prediction group and the at least one orthogonal transform group performed in operation630. For example, the image encoding apparatus100or500encodes the input image in a unit of a block by performing orthogonal transform of a predetermined block, which has been encoded using a prediction scheme of the prediction group #x, using an orthogonal transform scheme of the orthogonal transform group #y matched to the prediction group #x.

Operations610to630of generating and matching prediction groups and orthogonal transform groups may be performed in a unit of an image sequence, a picture, a slice, and an IDR picture. Alternatively, operations610to630of generating and matching prediction groups and orthogonal transform groups may be performed in a unit of a block by using additional information of a previously encoded area adjacent to a predetermined block.

FIG. 7is a block diagram of an image decoding apparatus700according to an exemplary embodiment.

Referring toFIG. 7, the image decoding apparatus700includes an image decoder710and a matching unit720.

The image decoder710restores an output image by receiving a bitstream and decoding the received bitstream. In more detail, the image decoder710restores an output image based on matching between at least one prediction group and at least one orthogonal transform group included in the bitstream, under the control of the matching unit720. The image decoder710performs the image encoding process of the image decoder110shown inFIG. 1, which has been described above, in an inverse way. For example, the image decoder710restores the output image in a unit of a block by predicting a block, which has been inverse-orthogonally transformed in an orthogonal transform scheme of the orthogonal transform group #y, using a prediction scheme of the prediction group #x matched to the orthogonal transform group #y.

The matching unit720controls the image decoder710based on information regarding the at least one prediction group, information regarding the at least one orthogonal transform group, and information regarding matching between the at least one prediction group and the at least one orthogonal transform group, which are included in the bitstream.

The at least one prediction group may be a group generated by grouping a plurality of prediction schemes based on at least one of the size of a prediction block and a type of prediction scheme, and the at least one orthogonal transform group may be a group generated by grouping a plurality of orthogonal transform schemes based on at least one of the size of a transform block and a transform algorithm.

The information regarding matching is information generated according to the method described above with reference toFIGS. 2A to 2Cand3A to3C and may be information generated by matching the at least one prediction group to the at least one orthogonal transform group based on the size of a prediction block and the size of a transform block.

The information regarding matching may be information generated in a unit of an image sequence, a picture, a slice, or an IDR picture and may be information generated in a unit of a block using additional information of a previously encoded area adjacent to a current block.

FIG. 8is a block diagram of an image decoding apparatus800according to another exemplary embodiment.

Referring toFIG. 8, the image decoding apparatus800includes an entropy decoder810, a dequantization and inverse orthogonal transform unit820, an intra predictor830, an inter predictor840, a frame memory850, a deblocking filter860, and a matching unit870. The matching unit870performs the same function as the matching unit720shown inFIG. 7, and the other modules810to860perform functions of the image decoder710shown inFIG. 7. Hereinafter, since the image decoding apparatus800also processes an image in a unit of a block as the image encoding apparatus500inFIG. 5, a case where the image decoding apparatus800decodes a current block will be described as an example.

The entropy decoder810receives a bitstream and performs entropy decoding of the received bitstream. That is, the entropy decoder810performs entropy decoding of orthogonal transform coefficients of the current block. In addition, information regarding at least one prediction group, information regarding at least one orthogonal transform group, and information regarding matching between the at least one prediction group and the at least one orthogonal transform group may be entropy-decoded. The information regarding matching between the at least one prediction group and the at least one orthogonal transform group may be entropy-decoded in a unit of an image sequence, a picture, a slice, or an IDR picture.

The dequantization and inverse orthogonal transform unit820dequantizes the orthogonal transform coefficients entropy-decoded by the entropy decoder810and performs inverse orthogonal transform of the dequantized orthogonal transform coefficients. In more detail, the dequantization and inverse orthogonal transform unit820restores residual values of the current block by dequantizing the orthogonal transform coefficients according to a predetermined quantization parameter and performing DCT or Hadamard transform in an inverse way for the dequantized orthogonal transform coefficients.

The intra predictor830performs intra prediction using pixel values included in a previously encoded area adjacent to the current block. In this case, the intra predictor830generates a prediction block by making a copy of the pixel values included in the previously encoded area adjacent to the current block in a predetermined direction. The inter predictor840performs inter prediction of the current block by searching a reference picture stored in the frame memory850based on a motion vector of the current block. A prediction block of the current block, which has been generated by the intra predictor830or the inter predictor840, is added to a residual block generated by the dequantization and inverse orthogonal transform unit820.

The deblocking filter860performs deblocking filtering of a block generated by adding the prediction block to the residual block. That is, the deblocking filter860removes blocking artifacts by filtering a border between blocks using a predetermined filter. The deblocking-filtered current block is stored in the frame memory850in order to be used for prediction of the next picture or block.

The matching unit870receives the information regarding at least one prediction group, the information regarding at least one orthogonal transform group, and the information regarding matching between the at least one prediction group and the at least one orthogonal transform group, which has been entropy-decoded by the entropy decoder810, and controls decoding of other blocks820to840based on the information regarding matching. For example, if the current block has been inverse-orthogonally transformed using one of the orthogonal transform schemes of the orthogonal transform group #y, the matching unit870controls the dequantization and inverse orthogonal transform unit820, the intra predictor830, and the inter predictor840to predict the current block using a prediction scheme of the prediction group #x matched to the orthogonal transform group #y.

FIG. 9is a flowchart of an image decoding method according to an exemplary embodiment.

Referring toFIG. 9, an image decoding apparatus according to an exemplary embodiment receives a bitstream of a predetermined output image, in operation910.

In operation920, the image decoding apparatus decodes information regarding matching between at least one prediction group and at least one orthogonal transform group, which is included in the bitstream received in operation910.

In operation930, the image decoding apparatus decodes the output image based on the information regarding matching, which has been decoded in operation920. For example, the output image is decoded by predicting a block, which has been inverse-orthogonally transformed using an orthogonal transform scheme of the orthogonal transform group #y, using a prediction scheme of the prediction group #x matched to the orthogonal transform group #y.

According to an exemplary embodiment, while encoding an image by variously combining prediction schemes and orthogonal transform schemes, information regarding matching between the prediction schemes and the orthogonal transform schemes may be encoded using a smaller number of bits, thereby increasing a compression ratio of the image encoding.

While the exemplary embodiments have been particularly shown and described with reference to the exemplary embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the exemplary embodiments as defined by the following claims. In addition, a system according to the exemplary embodiments may be implemented using a computer readable code in a computer readable recording medium.

For example, an image encoding apparatus and an image decoding apparatus according to exemplary embodiments may include a bus coupled to each of the units of the apparatuses shown inFIGS. 1,5,7, and8and at least one processor connected to the bus. In addition, a memory, which is coupled to at least one processor for performing commands as described above in connection with the bus to store the commands and received messages or generated messages, may be included.