The present invention relates to an image encoding and decoding technique, and more particularly, to an image encoder and decoder using unidirectional prediction.
In video compression technologies such as Moving Picture Experts Group (MPEG) 4 and H.264 standards, various prediction schemes may be used to improve a compression effect. Of these, an intra prediction encoding scheme may be generally used.
An intra prediction mode may generate a prediction image using reference pixels existing at a periphery of a sub-block with respect to a plurality of sub-blocks included in a macro block, and may perform a differentiation with a current block intended to be encoded to generate a difference image. Depending on a location of the reference pixel with respect to each of the plurality of sub-blocks, a specific prediction mode may be determined.
The intra prediction encoding scheme may support an intra 16×16 encoding mode and an intra 4×4 encoding mode according to a size of the sub-block, and the H.264 standard may even support an intra 8×8 encoding mode.
The generated difference image may be transformed using a Discrete Cosine Transformation (DCT), a quantization process, and an entrophy transformation. In the intra prediction encoding scheme, a number of bits in the transformed image may be calculated based on each prediction mode, and a distortion rate with an encoded block may be calculated to thereby calculate a bit-distortion rate with respect to each prediction mode. In this instance, a mode having a minimal bit-distortion rate may be determined as an optimal mode for performing an encoding with respect to the mode determined as the optimal mode.
Basically, the H.264 standard may perform encoding/decoding in a macro block unit of a 16×16 block. The intra 4×4 encoding mode may have a 4×4 sized sub-block. Accordingly, the intra 4×4 encoding mode may divide the macro block into 16 sub-blocks for the purpose of generating the prediction image. In the intra 4×4 encoding mode, 16 prediction mode information with respect to each sub-block may be needed. Similarly, in the intra 8×8 encoding mode, 4 prediction mode information may be needed due to a sub-block size of 8×8.
Accordingly, in the conventional H.264 moving picture compression standard, the intra 4×4 encoding mode information may be reduced using a Most Probable Mode (MPM), thereby improving an encoding efficiency.
However, in the conventional moving picture compression standard, a case where the intra prediction mode and an practical encoding mode are identical to each other in the intra 4×4 encoding mode may be consecutively generated, and thereby unidirectional flag information may be required to be added to reduce a number of bits to be encoded.
An aspect of the present invention provides an image encoder and decoder using unidirectional prediction that may improve an encoding efficiency of an image.
An aspect of the present invention provides an image encoder and decoder using unidirectional prediction that may effectively encode an image, thereby reducing a capacity of the encoded image.
According to an aspect of the present invention, there is provided an image encoder, including: a dividing unit to divide a macro block into a plurality of sub-blocks; a unidirectional application determining unit to determine whether an identical prediction mode is applied to each of the plurality of sub-blocks; and a prediction mode determining unit to determine a prediction mode with respect to each of the plurality of sub-blocks based on a determined result of the unidirectional application determining unit.
According to an aspect of the present invention, there is provided an image encoder, including: a dividing unit to divide a macro block into a plurality of sub-blocks; a prediction mode determining unit to determine a prediction mode with respect to each of the plurality of sub-blocks; and an encoding order determining unit to determine an encoding order with respect to each of the plurality of sub-blocks based on the prediction mode of the each of the plurality of sub-blocks.
According to an aspect of the present invention, there is provided an image decoder, including: a unidirectional application determining unit to determine whether an identical prediction mode is applied to each of a plurality of sub-blocks included in a macro block; and a decoding unit to decode each of the plurality of sub-blocks based on a determined result of the unidirectional application determining unit.
According to the present invention, an encoding efficiency of an image may be improved.
According to the present invention, an image may be effectively encoded, thereby reducing a capacity of the encoded image.
Reference will now be made in detail to embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout. The embodiments are described below in order to explain the present invention by referring to the figures.
When a value of the difference image is small, a relatively greater number of bits may be assigned to data within a small range, and thereby an image may be more accurately encoded to reduce a distortion. Depending on characteristics of an image included in each sub-block, a location of an optimum reference pixel may differ. Accordingly, the image encoder may select a location of the optimum reference pixel depending on characteristics of the image included in each sub-block, and may designate any one of nine prediction modes illustrated in (a) to (i) of
In
When the prediction modes with respect to each sub-block are different from each other, an image decoder of decoding an encoded image may be considered based on the prediction modes with respect to each sub-block. According to an exemplary embodiment, the image encoder may display the prediction modes with respect to each sub-block, and the image decoder may decode each sub-block with reference to the displayed prediction modes.
The image encoder may assign 3 bits or 4 bits to display the prediction modes with respect to each sub-block. When a 16×16 sized-macro block is divided into a 4×4 sized sub-block, the 16×16 sized-macro block may be divided into 16 sub-blocks, and displaying the prediction modes with respect to each sub-block may include superfluous information.
By using an identical prediction mode with respect to each sub-block included in an identical macro block, prediction modes with respect to each sub-block may not need to be displayed. As a result, an image encoding efficiency may be improved.
The image predicting unit 210 may include a motion predicting unit 201, a motion compensating unit 202, and an intra predicting unit 220, and may generate a prediction image with respect to an original image intended to be currently encoded.
Specifically, the intra predicting unit 220 may include an intra prediction selecting unit 211, a unidirectional prediction selecting unit 212, an intra predicting unit 213, an image block information determining unit 214, an image block information analyzing unit 215, and a unidirectional prediction mode flag transmitting unit 216. The intra predicting unit 220 may generate the intra prediction image with respect to the original image intended to be currently encoded.
Specifically, the image block information analyzing unit 215 may perform a context information analysis based on context information of image blocks 320 and 330 having been already decoded for an intra prediction of a current image block 310, as illustrated in
The difference signal generator 230 may subtract a prediction image generated in the image predicting unit 210 from the original image intended to be currently encoded to generate a difference signal.
That is, the image predicting unit 210 may perform a motion prediction or a motion reference to encode a predetermined sized block in a current frame (Fn) intended to be encoded, and the difference signal generator 230 may generate a difference signal (Dn) with respect to a current block.
The encoding unit 250 may include a Discrete Cosine Transformation (DCT) unit 251, a quantization unit 252, a re-arrangement unit 253, and an entrophy encoder 254, and may encode an image with respect to the difference signal outputted in the difference signal generator 230 using the DCT unit 251, the quantization unit 252, the re-arrangement unit 253, and the entrophy encoder 254.
In addition, the decoding unit 240 may include an inverse quantization unit 241, an inverse DCT 242, an adder 243, and a filter 244. The decoding unit 240 may correct an original block to thereby restore an image even in a process of encoding the current block or the current frame in order to encode a subsequent block or a subsequent frame. More specifically, the decoding unit 240 may apply an inverse DCT and an inverse quantization process to a magnitude (output of the quantization unit 252) of the difference signal to which a DCT and quantization having been performed in the encoding unit 250, thereby restoring a magnitude of an original difference signal. The decoding unit 240 may perform a motion compensation with respect to the restored difference signal in the same manner as in the image predicting unit 210 to restore an original image, and may store the restored original image as a new reference image used for encoding a subsequent image.
In (a) of
In (b) of
In (c) and (d) of
The ‘unidirectional prediction’ used throughout the present invention may designate application of an identical prediction mode to the respective sub-blocks included in the macro block in a similar manner as in
According to an exemplary embodiment, the image encoder may determine whether the unidirectional prediction is applied to the macro block 310 with reference to reference macro blocks 350 and 360 adjacent to the macro block 310.
According to an exemplary embodiment, the image encoder may determine whether the unidirectional prediction is applied to the macro block 310 with reference to context information of the reference macro blocks 350 and 360.
According to an exemplary embodiment, the context information may include at least one of an MB type with respect to the reference macro block, a quantization coefficient, a CBP information, and a coefficient value.
For example, when a downward and to the left diagonal direction illustrated in (b) of
However, when the pixels existing in E, F, G, and H are determined as the reference pixels, a distance between a sub-block of the downward and to the left diagonal direction and the reference pixel may be significantly increased. As a result, a difference between a value of the reference pixel and a value of the pixel existing in the sub-block of the downward and to the left diagonal direction may be significantly great. In this case, an encoding efficiency may be reduced.
According to an exemplary embodiment, when the diagonal down-left direction is applied as the prediction mode, the pixel existing in E, F, G, and H may be determined as the reference pixel to preferentially encode a sub-block of an upward and to the right diagonal direction. Next, pixels existing in the encoded sub-block of the diagonal up-right may be determined as reference pixels to encode the sub-block of the downward and to the left diagonal direction.
That is, an encoding order with respect to respective sub-blocks may be determined depending on the prediction modes. Since a distance between the reference pixel and the sub-block is small, a difference between a value of the reference pixel and a value of a pixel intended to be encoded may not be great. That is, an accuracy of the prediction may be improved, and the encoding efficiency may be improved.
Referring to
As illustrated in (b) of
According to a conventional art, an encoding order with respect to respective sub-blocks 430, 440, 450 and 460 may be determined without considering a prediction mode. Consequently, the respective sub-blocks 430, 440, 450, and 460 each corresponding to upward and to the right diagonal direction, upward and to the left diagonal direction, downward and to the right diagonal direction, and downward and to the left diagonal direction may be encoded in the order described above.
As illustrated in (a) of
According to an exemplary embodiment, an encoding order with respect to respective sub-blocks may be determined depending on prediction modes with respect to the respective sub-blocks. As an example, an encoding order with respect to the respective sub-blocks may be determined so that a sub-block including a reference pixel is encoded prior to a sub-block intended to be encoded.
As illustrated in (a) of
Since the sub-block including the reference pixel is encoded prior to the sub-block to be encoded, the respective sub-blocks may be encoded with reference to a pixel of an adjacent block having been already encoded. Since a distance between the reference pixel and the pixel to be encoded is relatively small, the prediction efficiency may be improved.
When the block of the diagonal down-left is the prediction mode, there may exist peripheral pixels N, O, P, and Q located in a new adjacent block having been already encoded. Accordingly, as illustrated in (a) of
Only the diagonal down-left direction was described in detail in
In operation S510, The image encoder may infer context information of a reference macro block. The reference macro block may be a macro block adjacent to a macro block intended to be encoded by the image encoder, and may be a macro block having been already encoded. Also, the reference macro block may include a reference pixel with respect to the macro block intended to be encoded by the image encoder.
According to an exemplary embodiment, the context information may include at least one of an MB type with respect to the reference macro block, a quantization coefficient, CBP information, and a coefficient value.
In operation S520, the image encoder may determine whether a unidirectional prediction is performed with respect to the macro block intended to be encoded. According to an exemplary embodiment, the image encoder may determine whether the unidirectional prediction is performed with reference to the context information of the reference macro block.
In operation S530, when the unidirectional prediction is determined to be performed in operation S520, the image encoder may perform the unidirectional prediction with respect to the macro block intended to be encoded. The unidirectional prediction may denote application of an identical prediction mode to all sub-blocks included in the macro block.
According to an exemplary embodiment, the image encoder may select an optimum prediction mode from among nine prediction modes illustrated in
According to an exemplary embodiment, the image encoder may encode respective macro blocks depending on the nine prediction modes, and calculate a rate-distortion cost with respect to the encoded image. The rate-distortion cost may be a value calculated considering both a distortion and data rate of an encoded image. The image encoder may select a prediction mode having a relatively low rate-distortion cost as an optimum prediction mode.
In operation S540, when the unidirectional prediction is determined not to be performed, the image encoder in operation S520, the image encoder may perform an intra prediction. The intra prediction may denote to determine an optimal prediction mode with respect to the respective sub-blocks included in the macro block, and different prediction modes with respect to the respective sub-blocks may be determined.
In operation S550, the image encoder may encode the prediction mode. The image encoder may encode whether the unidirectional prediction is applied to the macro block, and encode which prediction mode is the applied prediction mode.
When the unidirectional prediction is not applied, the image encoder may encode the prediction mode applied with respect to the respective sub-blocks.
In operation S610, the image encoder may divide a macro block into a plurality of sub-blocks.
In operation S620, the image encoder may determine a unidirectional prediction mode with respect to the macro block. The unidirectional prediction mode determined in operation S620 may be one of the prediction modes illustrated in
In operation S630, the image encoder may encode the macro block according to the determined prediction mode. The image encoder may apply an identical prediction mode to each of the plurality of sub-blocks included in the macro block to thereby encode the macro block.
In operation S640, the image encoder may determine whether an encoding is performed with respect to all prediction modes. When the encoding is not performed with respect to all prediction modes, the image encoder may determine, as the unidirectional prediction mode, a prediction mode to which an encoding is not yet performed in operation S620.
In operation S650, the image encoder may determine a prediction mode with respect to each of the plurality of sub-blocks. The image encoder may determine different prediction modes with respect to each of the plurality of sub-blocks.
In operation S660, the image encoder may encode each of the plurality of sub-blocks according to the prediction mode differentially determined with respect to each of the plurality of sub-blocks.
That is, in operations S650 and S660, the image encoder may encode the macro block according to an intra mode.
In operation S670, the image encoder may select an optimal encoding mode from among the unidirectional prediction mode and the intra mode. Since an optimal prediction mode is selected with respect to each of the plurality of sub-blocks, the intra mode may have less distortion in comparison with the unidirectional prediction mode.
However, since the unidirectional prediction mode applies an identical prediction mode with respect to each of the plurality of sub-blocks, there is no need to store the prediction mode with respect to each of the plurality of sub-blocks. As a result, the macro block may be encoded using a data rate less than that of the intra mode.
In operation S670, the image encoder may calculate a rate-distortion cost with respect to the unidirectional prediction mode and the intra mode, and select an optimal encoding mode based on the calculated rate-distortion cost.
The image encoder may divide each of the plurality of sub-blocks included in a macro block into at least one sub-block group 710, 720, 730, and 740. In
The image encoder may determine an optimal encoding mode with respect to each sub-block. A numeral expressed on each sub-block may designate an optimal encoding mode determined with respect to each sub-block.
A first sub-block 711, a second sub-block 712, and a third sub-block 713 may have a first encoding mode as the optimal encoding mode, from among respective sub-blocks 711, 712, 713, and 714 included in a first sub-block group 710, and a fourth sub-block 714 may have a second encoding mode as the optimal encoding mode. That is, the encoding modes of the sub-blocks 711, 712, 713, and 714 included in the first sub-block group 710 are not the same.
Whereas, respective sub-blocks 721, 722, 723, and 724 included in a second sub-block group 720 may have an identical encoding mode of a second encoding mode.
According to an exemplary embodiment, the image encoder may encode whether encoding modes of the sub-blocks included in each sub-block group are all the same.
When the encoding modes are all the same, the image encoder may display an encoding mode with respect to each sub-block group, and may not display an encoding mode with respect to each sub-block. As a result, a number of bits required for encoding may be reduced, and an encoding efficiency may be improved.
In operation S810, an image encoder may determine a prediction mode with respect to each sub-block. Also, the image encoder may predict the prediction mode with respect to each sub-block.
In operation S820, the image encoder may check sub-blocks in which the predicted prediction mode and the determined prediction mode are the same from among a plurality of sub-blocks. Hereinafter, when the predicted prediction mode and the determined prediction mode are the same, the sub-block may be encoded using an MPM.
In operation S830, the image encoder may set an MPM-SKIP-Flag as ‘1’, when a sub-block encoded using the MPM within a macro block is present, and when the sub-block encoded using the MPM within the macro block is not present, the image encoder may set the MPM-SKIP-Flag as ‘0’.
In operation S840, the image encoder may compare a value of the MPM-SKIP-Flag with ‘1’. When the value of the MPM-SKIP-Flag is not ‘1’, it indicates that the sub-block encoded using the MPM is present, and thus the image encoder may check the sub-block encoded using the MPM in operation S860 to generate an MPM omission pattern, and encode a prediction mode with respect to the sub-block using the MPM omission pattern.
A specific configuration of encoding the prediction mode with respect to the sub-block using the MPM omission pattern will be described in detail with reference to
In operation S870, the image encoder may encode remaining transformation coefficients with respect to a difference image.
In operation S910, an image encoder may initialize i for counting a repeated frequency in order to perform an MPM omission pattern encoding.
In operation S920, the image encoder may encode an [i]-th bit of the MPM omission pattern. The image encoder may group consecutive N sub-blocks included in a macro block to set a sub-block group. The image encoder may encode the [i]-th bit of the MPM omission pattern with respect to an i-th sub-block group. As an example, an (i+1)-th sub-block group may include an (i*N)-th sub block group to an {N*(i+1)−1}-th sub-block group.
When an (i*N)-th sub block to an {N*(i+1)−1}-th sub-block included in the (i+1)-th sub-block group from among the sub-blocks included in the macro block are all encoded using the MPM mode, the image encoder may encode the [i]-th bit of the MPM omission pattern as ‘1’. Otherwise, the image encoder may encode the [i]-th bit of the MPM omission pattern as ‘0’.
In operation S930, the image encoder may check a value of the [i]-th bit of the MPM omission pattern. When the value of the [i]-th bit of the MPM omission pattern is ‘1’, the (i*N)-th sub block group to the {N*(i+1)−1}-th sub-block of the macro block are all encoded using the MPM mode, and thus the image encoder may omit a prediction mode encoding with respect to the (i*N)-th sub block group to the {N*(i+1)−1}-th sub-block may be omitted in operation S940. When the value of the [i]-th bit of the MPM omission pattern is ‘0’, the image encoder may perform the prediction mode encoding with respect to the (i*N)-th sub block group to the {N*(i+1)−1}-th sub-block of the macro block.
In operation S960, the image encoder may determine whether the prediction mode encoding with respect to each sub-block is terminated. When the prediction mode encoding is not terminated, the image encoder may increase i in operation S970, and perform the prediction mode encoding with respect to a subsequent sub-block group.
Referring to
The unidirectional coefficients 1012 indicating whether the unidirectional prediction is applied 1012 to a macro block may be encoded together with an MB type with respect to the macro block. When the unidirectional prediction is not applied to the macro block, a value of the unidirectional coefficient 1012 may be ‘0’. In this case, a conventional intra prediction mode is applied to the macro block. When the intra prediction mode is applied to the macro block, a prediction mode flag or prediction mode data 1031, 1032, and 1033 with respect to each sub-block may be encoded.
When the unidirectional prediction is applied to the macro block, the value of the unidirectional coefficient 1012 may be ‘1’. In this case, a prediction mode flag 1034 and prediction mode data 1035 with respect to the macro block may be encoded once. Accordingly, when the unidirectional prediction is applied to the macro block, a number of bits required for encoding the prediction mode may be reduced, and a data rate may be improved.
The unidirectional coefficients 1012 may be encoded together with a chroma prediction mode 1041, a CBP 1042, a delta QP, and luma/chroma coefficients 1044.
According to another exemplary embodiment, even when the unidirectional prediction is applied to the macro block, information about the unidirectional prediction mode applied to the macro block may not be encoded. That is, even when the unidirectional prediction is applied to the macro block, the prediction mode flag and the prediction mode data may not be encoded. The image encoder may predict the unidirectional prediction mode based on context information of a reference macro block with respect to the macro block.
The decoding unit 1130 may include an entropy decoder 1131, a re-arrangement unit 1132, an inverse quantization unit 1133, and an inverse DCT unit 1134, and may perform decoding processes such as an entropy decoding, data re-arrangement, an inverse-quantization, and an inverse DCT with respect to a bit column received from the image encoder described in
The image decoding unit 1110 may include a motion compensating unit 111, an intra prediction unit 1120, an adder 1112, and a filter 1113, and may decode an original image using a decoded difference signal and a reference image (previous image).
The intra prediction unit 1120 may include an image block information analyzing unit 1121, an image block information determining unit 1122, a prediction method determining unit 1123, a unidirectional prediction mode flag receiving unit 1124, an intra prediction unit 1125, and a unidirectional prediction unit 1126, and generate an intra prediction image with respect to an image intended to be currently decoded.
Specifically, the image block information analyzing unit 1121 may analyze context information based on context information of a macro block having been already decoded for the purpose of intra prediction of a macro block intended to be decoded. For example, an MB type, a quantization coefficient, CBP information, a coefficient value, and the like may be the context information.
The image block information determining unit 1122 may determine whether the unidirectional prediction is possible to be performed based on an analyzed result of the image block information analyzing unit 1121.
The prediction method determining unit 1123 may perform an intra prediction by selecting one of the intra prediction unit 1125 and the unidirectional prediction unit 1126 through a value transmitted from the image block information determining unit 1122 and the unidirectional prediction mode flag receiving unit 1124.
For example, when the image block information determining unit 1122 determines a unidirectional prediction method is impossible to be performed, the intra prediction may be performed by the intra prediction unit 1125, and when the image block information determining unit 1122 determines the unidirectional prediction method is possible to be performed, the intra prediction unit 1125 may be selected to perform the intra prediction in a case of a flag value transmitted from the unidirectional prediction mode flag receiving unit 1124 having a value of ‘0’, and the unidirectional prediction unit 1126 may be selected to perform the intra prediction in a case of the flag value having a value of ‘1’.
Also, even when a value of a unidirectional prediction method flag is ‘0’, values of an intra prediction mode flag and intra mode information may exist as illustrated in
According to another exemplary embodiment, even when the value of the unidirectional prediction method flag is ‘1’, the values of the intra prediction mode flag and intra mode information may not exist. In this case, the image decoder may predict the prediction mode of the macro block based context information of the reference macro block. In this manner, a practical intra prediction may be performed using the intra prediction mode flag and the intra mode information.
A dividing unit 1210 may divide a macro block into a plurality of sub-blocks.
A unidirectional application determining unit 1220 may determine whether an identical prediction mode is applied to each sub-block included in the macro block. When the identical prediction mode is applied to each sub-block, a unidirectional prediction mode may be referred to be applied.
According to an exemplary embodiment, the unidirectional application determining unit 1220 may determine whether the identical prediction mode is applied to each sub-block included in the macro block intended to be encoded with reference to context information of a reference macro block with respect to the macro block to be encoded.
The reference macro block may be adjacent to the macro block intended to be encoded. Also, the context information of the reference macro block may include at least one of an MB type with respect to the reference macro block, a quantization coefficient, CBP information, a coefficient value, and the like.
The prediction mode determining unit 1230 may determine the prediction mode with respect to each sub-block based on a determined result of the unidirectional application determining unit 1220. For example, when the unidirectional application determining unit 1220 applies the unidirectional prediction mode, the prediction mode determining unit 1230 may determine which prediction mode is applied to each sub-block included in the macro block.
The prediction mode determining unit 1230 may determine any one of various prediction modes illustrated in
As an example, the prediction mode determining unit 1230 may encode the macro block based on the various prediction modes illustrated in
The prediction mode encoding unit 1250 may store information about the prediction mode based on the determined prediction mode. According to an exemplary embodiment, when the identical prediction mode is determined to be applied to each sub-block included in the macro block, the prediction mode encoding unit 1250 may store information about whether the identical prediction mode is applied and information about the determined prediction mode.
When the identical prediction mode is not applied, the prediction mode may need to be encoded with respect to each sub-block. As a result, number of bits corresponding to a product of a number of bits required for encoding the prediction mode and a number of respective sub-blocks may be additionally needed.
However, when the identical prediction mode is applied to each sub-block, only the number of bits required for encoding the prediction mode applied to the sub-block included in the macro block may be needed. Accordingly, when the identical prediction mode is applied to each sub-block, the prediction mode may be encoded using a smaller number of bits.
According to another exemplary embodiment, one prediction mode may be applied to the entire macro block, however, one prediction mode may be applied to a partial macro block.
According to an exemplary embodiment, a grouping unit 1240 may group divided sub-blocks into a plurality of sub-block groups. For example, the grouping unit 1240 may group consecutive sub-blocks into one sub-block group.
When prediction modes of all sub-blocks included in a specific sub-block group are identical to one another, the prediction mode encoding unit 1250 may encode whether the prediction modes are identical to one another. Also, the prediction mode encoding unit 1250 may encode information about the prediction mode applied to each sub-block. Similar to a case in which the unidirectional prediction mode is applied to the macro block, even when the prediction modes of all sub-blocks included in the sub-block group are identical to one another, the prediction mode may be encoded using a smaller number of bits.
The encoding unit 1260 may encode each sub-block based on the prediction mode determined with respect to each sub-block.
A dividing unit 1310 may divide a macro block into a plurality of sub-blocks.
The prediction mode determining unit 1330 may determine a prediction mode with respect to each sub-block. According to an exemplary embodiment, the prediction mode determining unit 1330 may determine one mode of the various prediction modes illustrated in
The prediction mode determining unit 1330 may determine the prediction mode based on a rate-distortion cost with respect to each sub-block according to the various prediction modes. The prediction mode determining unit 1330 may calculate a rate-distortion cost with respect to each sub-block, and determine a prediction mode having a minimal rate-distortion cost as an optimal prediction mode.
The encoding order determining unit 1340 may determine an encoding order with respect to each sub-block based on the prediction mode with respect to each sub-block. According to an exemplary embodiment, the encoding order determining unit 1340 may determine the encoding order with respect to each sub-block so that a sub-block intended to be encoded is encoded with reference to a sub-block having been already encoded.
A reference pixel determining unit 1350 may determine a reference pixel with respect to each sub-block considering the encoding order of each sub-block. According to an exemplary embodiment, the reference pixel determining unit 1350 may determine a pixel of the sub-block having been already encoded as the reference pixel with respect to the sub-block intended to be encoded.
According to an exemplary embodiment, a grouping unit 1360 may group divided sub-blocks into a plurality of sub-block groups, and a prediction mode encoding unit 1380 may encode whether prediction modes of sub-blocks included in each sub-block group are all the same.
Similar to a case in which the unidirectional prediction mode is applied to the macro block, even when the prediction modes of all sub-blocks included in the sub-block group are all the same, the prediction mode may be encoded using a smaller number of bits.
According to an exemplary embodiment, a prediction mode predicting unit 1370 may predict a prediction mode with respect to each sub-block. As an example, the prediction mode predicting unit 1370 may predict a prediction mode of a sub-block intended to be encoded with reference to a reference sub-block adjacent to the sub-block intended to be encoded. When the sub-block intended to be encoded and the reference sub-block are adjacent to each other, characteristics of the sub-block intended to be encoded and the reference sub-block may be similar to each other. In this case, a prediction mode of the reference sub-block and a prediction mode of the sub-block intended to be encoded may be similar to each other.
The prediction mode encoding unit 1380 may determine whether a Most Probable Mode (MPM) predicted with respect to the sub-block intended to be encoded and the prediction mode determined by the prediction mode determining unit 1370 are the same, and encode whether the predicted MPM and the determined prediction mode are the same.
When the predicted MPM and the determined prediction mode are the same, the image decoder may also similarly predict a prediction mode with respect to a sub-block intended to be decoded, and the determined prediction mode may not need to be encoded.
The unidirectional application determining unit 1410 may determine whether an identical prediction mode is applied to all sub-blocks included in a macro block. According to an exemplary embodiment, the image encoder of encoding the macro block may store, in a macro block header, whether the identical prediction mode is applied to all sub-blocks, and the unidirectional application determining unit 1410 may determine, using information stored in the macro block header, whether the identical prediction mode is applied to all sub-blocks.
The decoding unit 1450 may decode each sub-block based on a determined result with respect to the macro block. When the identical prediction mode is applied to all sub-blocks included in the macro block, each sub-block may be decoded using the applied identical prediction mode.
According to another exemplary embodiment, when the identical prediction mode is not applied to all sub-blocks included in the macro block, the grouping unit 1420 may group consecutive sub-blocks, from among the sub-blocks included in the macro block, into a sub-block group, and the unidirectional application determining unit 1410 may determine whether the identical prediction mode is applied to sub-blocks included in each sub-block group.
The decoding unit 1450 may decode each sub-block based on a determined result with respect to the macro block. When the identical prediction mode is not applied to all sub-blocks included in the macro block, each sub-block may be decoded using the applied identical prediction mode.
The decoding order determining unit 1430 may determine a decoding order with respect to each sub-block depending on the prediction mode applied to each sub-block. As an example, the decoding order determining unit 1430 may determine the decoding order of each sub-block so that each sub-block is decoded with reference to a reference sub-block having been already decoded. The decoding unit 1450 may decode each sub-block based on the determined decoding order.
The reference pixel determining unit 1440 may determine a reference pixel with respect to each sub-block considering the decoding order of each sub-block. According to an exemplary embodiment, the reference pixel determining unit 1440 may determine a pixel of a sub-block having been already decoded as the reference pixel with respect to a sub-block intended to be decoded. The decoding unit 1450 may decode each sub-block with reference to the reference pixel with respect to each sub-block.
Although a few embodiments of the present invention have been shown and described, the present invention is not limited to the described embodiments. Instead, it would be appreciated by those skilled in the art that changes may be made to these embodiments without departing from the principles and spirit of the invention, the scope of which is defined by the claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
10-2008-0096658 | Oct 2008 | KR | national |
10-2009-0001240 | Jan 2009 | KR | national |
10-2009-0093128 | Sep 2009 | KR | national |
This application is a continuation of U.S. patent application Ser. No. 15/288,942 filed on Oct. 7, 2016 and issued on Jun. 11, 2019 as U.S. Pat. No. 10,321,137, which is a continuation of U.S. patent application Ser. No. 15/192,627 filed on Jun. 24, 2016 and issued on Apr. 10, 2018 as U.S. Pat. No. 9,942,554, which is a continuation of U.S. patent application Ser. No. 14/469,288 filed on Aug. 26, 2014 and issued on Aug. 2, 2016 as U.S. Pat. No. 9,407,937, which is a continuation of U.S. patent application Ser. No. 13/738,463 filed on Jan. 10, 2013 and issued on Oct. 21, 2014 as U.S. Pat. No. 8,867,854, which is a continuation of U.S. patent application Ser. No. 13/129,570 filed on May 16, 2011 and issued on Jan. 29, 2013 as U.S. Pat. No. 8,363,965, which is a national stage application of PCT/KR2009/005647 filed on Oct. 1, 2009 and claims priority of Korean patent application numbers 10-2008-0096658, 10-2009-0001240, and 10-2009-0093128 filed on Oct. 1, 2008, Jan. 7, 2009, and Sep. 30, 2009, respectively. The disclosure of each of the foregoing applications is incorporated herein by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
5301242 | Gonzales et al. | Apr 1994 | A |
5652629 | Gonzales et al. | Jul 1997 | A |
6408029 | McVeigh et al. | Jun 2002 | B1 |
8059717 | Saigo et al. | Nov 2011 | B2 |
8363965 | Choi | Jan 2013 | B2 |
8867854 | Choi | Oct 2014 | B2 |
9407937 | Choi | Aug 2016 | B2 |
9942554 | Choi | Apr 2018 | B2 |
10321137 | Choi | Jun 2019 | B2 |
20060072676 | Gomila | Apr 2006 | A1 |
20070041450 | Kim et al. | Feb 2007 | A1 |
20070053443 | Song | Mar 2007 | A1 |
20080175317 | Han | Jul 2008 | A1 |
20090310677 | Shiodera et al. | Dec 2009 | A1 |
20100135389 | Tanizawa et al. | Jun 2010 | A1 |
20110007799 | Karczewicz et al. | Jan 2011 | A1 |
20110222723 | He | Sep 2011 | A1 |
20110243229 | Kim | Oct 2011 | A1 |
20110249733 | Zhao et al. | Oct 2011 | A1 |
20120020579 | Choi et al. | Jan 2012 | A1 |
20120114038 | Han et al. | May 2012 | A1 |
20120288002 | Shin et al. | Nov 2012 | A1 |
20120314766 | Chien | Dec 2012 | A1 |
20130272395 | Choi et al. | Oct 2013 | A1 |
20140219334 | Park | Aug 2014 | A1 |
20140341289 | Schwarz et al. | Nov 2014 | A1 |
20140362914 | Choi et al. | Dec 2014 | A1 |
20160309146 | Choi et al. | Oct 2016 | A1 |
20170026642 | Choi et al. | Jan 2017 | A1 |
Number | Date | Country |
---|---|---|
1492688 | Apr 2004 | CN |
1929612 | Mar 2007 | CN |
1937775 | Mar 2007 | CN |
101159874 | Apr 2008 | CN |
1 761 063 | Mar 2007 | EP |
2004-140473 | May 2004 | JP |
WO 2007105900 | Sep 2007 | WO |
Entry |
---|
Shiodera et al., “Improvement of Bidirectional Intra Rrediction”, 33. VCEG Meeting; 82. MPEG Meeting; No. VCEG-AG08. XP030003612, Oct. 20, 2007, p. 1-19, Video Coding Experts Group of ITU, Shenzhen, China. |
Simone Milani, “A belief-propagation based fast intra coding algorithm for the H.264/AVC FRExt coder,” 14th European Signal Processing Conference, Aug. 25, 2008, p. 1-5, XP032760741, IEEE. |
Taeyoung Na et al., “A fast 4x4 intra mode decision for inter frame coding in H.264/MPEG-4 Part 10”, Broadband Multimedia Systems and Broadcasting, 2008 IEEE International Symposium, Mar. 31, 2008, p. 1-5, XP031268614, IEEE, Piscataway, NJ USA. |
Notice of Preliminary Rejection issued by the State Intellectual Property Office dated Mar. 5, 2013. |
International Search Report issued by World Intellectual Property Organization dated Oct. 29, 2012. |
Notice of Preliminary Rejection issued by the Korean Intellectual Property Office dated Sep. 4, 2013. |
Gang, Zhu et al., “The Intra Prediction Based on Sub Block”, Proceedings 7th International Conference on Signal Processing, vol. 1, 2004, (pp. 467-469). |
Hu, Wei et al., “Flexible Sub Block Ordering Based Intra 4/SPL Times/4 Prediction”, 2008 IEEE International Conference on Multimedia and Expo, 2008 (pp. 593-596). |
Number | Date | Country | |
---|---|---|---|
20190261004 A1 | Aug 2019 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 15288942 | Oct 2016 | US |
Child | 16388429 | US | |
Parent | 15192627 | Jun 2016 | US |
Child | 15288942 | US | |
Parent | 14469288 | Aug 2014 | US |
Child | 15192627 | US | |
Parent | 13738463 | Jan 2013 | US |
Child | 14469288 | US | |
Parent | 13129570 | US | |
Child | 13738463 | US |