An image encoding apparatus is presented. A differential quantization parameter is generated by subtracting a quantization parameter predictor from a quantization parameter, and is entropy-coded. If two or more quantization parameters are available among a left quantization parameter, an above quantization parameter and a previous quantization parameter of a current coding unit, the quantization parameter predictor is generated using two available quantization parameters determined according a predetermined order, and if only one quantization parameter is available, the available quantization parameter is set as the quantization parameter predictor. A transform type for inversely transforming the residual signals is selected among a discrete cosine transform (DCT)-based integer transform and a discrete sign transform (DST)-based integer transform based on a prediction mode and a size of a transform unit.
|
1. An image encoding apparatus comprising:
an intra predictor to determine an intra prediction mode of a current prediction unit and generate a prediction block using the intra prediction mode;
an inter predictor to determine motion information and generate a prediction block;
a transformer to transform residual signals generated by using an original block and the prediction block to generate a transformed block;
a quantizer to determine a quantization parameter and quantize the transformed block using a quantization matrix and the quantization parameter to generate a quantized block;
a scanner to determine a scan pattern and apply the scan pattern to significant coefficients, sign flags and levels of the quantized block;
an entropy coder to entropy-code one-dimensional coefficient information received from the scanner, intra prediction information received from the intra predictor, and motion information received from the inter predictor;
an inverse quantizer to inversely quantize the quantized block;
an inverse transformer to inversely transform the inversely quantized block to generate a residual block;
an adder to generate a reconstructed block by adding the residual block and the prediction block; and
a post-processor to remove blocking artifact in a reconstructed picture,
wherein a differential quantization parameter is generated by subtracting a quantization parameter predictor from the quantization parameter, and is entropy-coded,
wherein,
if two or more quantization parameters are available among a left quantization parameter, an above quantization parameter and a previous quantization parameter of a current coding unit, the quantization parameter predictor is generated using two available quantization parameters determined according a predetermined order among the left quantization parameter, the above quantization parameter and the previous quantization parameter,
if the left quantization parameter is not available among the left quantization parameter, the above quantization parameter and the previous quantization parameter, an average of the above quantization parameter and the previous quantization parameter is set as the quantization parameter predictor, and
if only one quantization parameter is available among the left quantization parameter, the above quantization parameter and the previous quantization parameter, the available quantization parameter is set as the quantization parameter predictor, and
wherein a transform type for inversely transforming the residual signals is selected among a discrete cosine transform (DCT)-based integer transform and a discrete sine transform (DST)-based integer transform based on a prediction mode and a size of a transform unit.
2. The apparatus of
3. The apparatus of
4. The apparatus of
5. The apparatus of
6. The apparatus of
7. The apparatus of
8. The apparatus of
9. The apparatus of
|
This Application is a Continuation of U.S. patent application Ser. No. 14/996,380 filed on Jan. 15, 2016 (now U.S. Pat. No. 9,503,730 issued Nov. 22, 2016), which is a Continuation of U.S. patent application Ser. No. 14/569,752 filed on Dec. 14, 2014 (now U.S. Pat. No. 9,270,997 issued on Feb. 23, 2016), which is a Continuation of U.S. patent application Ser. No. 14/349,985 filed on Apr. 4, 2014 (now U.S. Pat. No. 8,948,259 issued on Feb. 3, 2015), which is filed as the National Phase of PCT/CN2012/083972 filed on Nov. 2, 2012, which claims the benefit under 35 U.S.C. § 119(a) to Korean Patent Application No. 10-2011-0114606 filed on Nov. 4, 2011, all of which are hereby expressly incorporated by reference into the present application.
The present invention relates to a method and an apparatus of deriving an intra prediction mode, and more particularly, to a method of constructing an MPM group using neighboring intra prediction modes and deriving the intra prediction mode using the MPM group and intra prediction information.
In image compression methods such as MPEG-1, MPEG-2, MPEG-4 and H.264/MPEG-4 AVC, one picture is divided into macroblocks to encode an image. Then, the respective macroblocks are encoded using inter prediction or intra prediction.
In intra prediction, a current block of the picture is encoded not using a reference picture, but using values of reconstructed pixels spatially adjacent to the current block. An optimal prediction mode with little distortion is selected out of a plurality of intra prediction modes by comparing a prediction block generated using the adjacent pixel values with an original block. Then, using the selected intra prediction mode and the adjacent pixel values, prediction values of the current block are calculated. Differences between the prediction values and pixels values of the original current block are calculated and then encoded through transform coding, quantization and entropy coding. The intra prediction mode is also encoded.
According to H.264 standard, there are nine modes in 4×4 intra prediction. The nine modes are a vertical mode, a horizontal mode, a DC mode, a diagonal down-left mode, a diagonal down-right mode, a vertical right mode, a vertical left mode, a horizontal-up mode and a horizontal-down mode. One mode is selected among the nine modes to generate a prediction block of the current block, the mode information is transmitted to the decoder.
In HEVC standard under development, the number of intra prediction modes increases to 18 or 35, the size of coding unit lies between 8×8 and 128×128. The coding unit has similar purpose to the macroblock of H.264/AVC.
Accordingly, if the intra prediction mode is encoded using the same method of H.264/AVC, the coding efficiency deteriorates because the number of intra prediction modes is greater than that of H.264/AVC. Also, as the size of the coding unit increases and the number of intra prediction modes increases, quantization method and scanning method should be modified to enhance the coding efficiency.
The present invention is directed to a method and apparatus of constructing an MPM group using neighboring intra prediction modes and deriving the intra prediction mode using the MPM group and intra prediction information.
One aspect of the present invention provides a method of deriving an intra prediction mode of a current prediction unit, comprising: entropy-decoding a mode group indicator and a prediction mode index, constructing an MPM group including three intra prediction modes, determining whether the mode group indicator indicates the MPM group or not, determining an intra prediction mode of the MPM group specified by the prediction mode index as the intra prediction mode of the current prediction unit if the mode group indicator indicates the MPM group, and deriving the intra prediction mode of the current prediction unit using the prediction mode index and the three prediction modes of the MPM group if the mode group indicator does not indicate the MPM group.
A method according to the present invention constructs an MPM group including three intra prediction modes, determines the intra prediction mode of the MPM group specified by the prediction mode index as the intra prediction mode of the current prediction unit if the mode group indicator indicates the MPM group, and derives the intra prediction mode of the current prediction unit using the prediction mode index and the three prediction modes of the MPM group if the mode group indicator does not indicate the MPM group. Therefore, coding efficiency of intra prediction mode is improved by encoding the intra prediction mode of the current block using a plurality of most probable candidates. Also, coding efficiency of intra prediction mode is improved by generating the prediction block very similar to an original block and by minimizing the amount of bits required to encode the residual block.
Hereinafter, various embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, the present invention is not limited to the exemplary embodiments disclosed below, but can be implemented in various types. Therefore, many other modifications and variations of the present invention are possible, and it is to be understood that within the scope of the disclosed concept, the present invention may be practiced otherwise than as has been specifically described.
Referring to
The picture division unit 101 divides a picture or a slice into a plurality of largest coding units (LCUs), and divides each LCU into one or more coding units. The picture division unit 101 determines prediction mode of each coding unit and a size of prediction unit and a size of transform unit.
An LCU includes one or more coding units. The LCU has a recursive quad tree structure to specify a division structure. Information specifying the maximum size and the minimum size of the coding unit is included in a sequence parameter set. The division structure is specified by one or more split coding unit flags (split_cu_flags). The coding unit has a size of 2N×2N.
A coding unit includes one or more prediction units. In intra prediction, the size of the prediction unit is 2N×2N or N×N. In inter prediction, the size of the prediction unit is 2N×2N, 2N×N, N×2N or N×N. When the prediction unit is an asymmetric partition in inter prediction, the size of the prediction unit may also be one of hN×2N, (2−h)N×2N, 2N×hN and 2N×(2−h)N. The value of h is ½.
A coding unit includes one or more transform units. The transform unit has a recursive quad tree structure to specify a division structure. The division structure is specified by one or more split transform unit flags (split_tu_flags). Information specifying the maximum size and the minimum size of the transform unit is included in a sequence parameter set.
The intra prediction unit 112 determines an intra prediction mode of a current prediction unit and generates one or more prediction blocks using the intra prediction mode. The prediction block has the same size of the transform unit. The intra prediction unit 112 generates reference pixels if there are unavailable reference pixels of a current block, filters adaptively the reference pixels of the current block according to the size of the current block and the intra prediction mode, and generates a prediction block of the current block. The current block has the same size of the prediction block.
The inter prediction unit 113 determines motion information of the current prediction unit using one or more reference pictures stored in the picture storing unit 111, and generates a prediction block of the prediction unit. The motion information includes one or more reference picture indexes indicating the reference pictures and one or more motion vectors.
The transform unit 103 transforms residual signals generated using an original block and a prediction block to generate a transformed block. The residual signals are transformed in transform units. A transform type is determined by the prediction mode and the size of the transform unit. The transform type is a discrete cosine transform (DCT)-based integer transform or a discrete sign transform (DST)-based integer transform.
The quantization unit 104 determines a quantization parameter for quantizing the transformed block. The quantization parameter is a quantization step size. The quantization parameter is determined per quantization unit having a size equal to or larger than a reference size. A quantization unit of the reference size is referred to as a minimum quantization unit. If the size of the coding unit is equal to or larger than the reference size, the coding unit becomes the quantization unit. A plurality of coding unit may be included in the minimum quantization unit. The reference size is one of allowable sizes of the coding unit. The reference size is determined per a picture and included in the picture parameter set.
The quantization unit 104 generates a quantization parameter predictor and generates a differential quantization parameter by subtracting the quantization parameter predictor from the quantization parameter. The differential quantization parameter is encoded and transmitted to the decoder. If there are no residual signals to be transmitted in the coding unit, the differential quantization parameter of the coding unit may not be transmitted.
The quantization parameter predictor is generated by using quantization parameters of neighboring coding units and/or a quantization parameter of previous coding unit.
The quantization unit 104 sequentially retrieves a left quantization parameter, an above quantization parameter and a previous quantization parameter in this order. An average of the first two available quantization parameters retrieved in that order is set as the quantization parameter predictor when at least two quantization parameters are available. When only one quantization parameter is available, the available quantization parameter is set as the quantization parameter predictor. The left quantization parameter is a quantization parameter of the left neighboring coding unit. The above quantization parameter is a quantization parameter of the above neighboring coding unit. The previous quantization parameter is a quantization parameter of a previous coding unit in coding order.
The quantization unit 104 quantizes the transformed block using a quantization matrix and the quantization parameter to generate a quantized block. The quantized block is provided to the inverse quantization unit 107 and the scanning unit 105.
The scanning unit 105 determines a scan pattern and applies the scan pattern to the quantized block. When CABAC (Context adaptive binary arithmetic coding) is used for entropy coding, the scan pattern is determined as follows.
In intra prediction, the scan pattern is determined by the intra prediction mode and the size of the transform unit. The scan pattern is selected among a diagonal scan, a vertical scan and a horizontal scan. The quantized transform coefficients of the quantized block are divided into significant coefficients, sign flags and levels. The scan pattern is applied to the significant coefficients, sign flags and levels respectively.
When the size of the transform unit is equal to or smaller than a first size, the horizontal scan is selected for the vertical mode and a predetermined number of neighboring intra prediction modes of the vertical mode, the vertical scan is selected for the horizontal mode and the predetermined number of neighboring intra prediction modes of the horizontal mode, and the diagonal scan is selected for the other intra prediction modes. The first size is 8×8.
When the size of the transform unit is larger than the first size, the diagonal scan is selected for all intra prediction modes.
In inter prediction, a predetermined scan pattern is used. The predetermined scan pattern is the diagonal scan.
When the size of the transform unit is larger than a second size, the quantized block is divided into a plurality of subsets and scanned. The second size is 4×4. The scan pattern for scanning the subsets is the same as the scan pattern for scanning quantized transform coefficients of each subset. The quantized transform coefficients of each subset are scanned in the reverse direction. The subsets are also scanned in the reverse direction.
Last non-zero position is encoded and transmitted to the decoder. The last non-zero position specifies position of last non-zero quantized transform coefficient within the transform unit.
Non-zero subset flags are determined and encoded. The non-zero subset flag indicates whether the subset contains non-zero coefficients or not. The non-zero subset flag is not defined for a subset covering a DC coefficient and a subset covering last non-zero coefficient.
The inverse quantization unit 107 inversely quantizes the quantized transform coefficients of the quantized block.
The inverse transform unit 108 inversely transforms the inverse quantized block to generate residual signals of the spatial domain.
The adder 109 generates a reconstructed block by adding the residual block and the prediction block.
The post-processing unit 110 performs a deblocking filtering process for removing blocking artifact generated in a reconstructed picture.
The picture storing unit 111 receives post-processed image from the post-processing unit 110, and stores the image in picture units. A picture may be a frame or a field.
The entropy coding unit 106 entropy-codes the one-dimensional coefficient information received from the scanning unit 105, intra prediction information received from the intra prediction unit 112, motion information received from the inter prediction unit 113, and so on.
The image decoding apparatus 200 according to the present invention includes an entropy decoding unit 201, an inverse scanning unit 202, an inverse quantization unit 203, an inverse transform unit 204, an adder 205, a post processing unit 206, a picture storing unit 207, an intra prediction unit 208 and an inter prediction unit 209.
The entropy decoding unit 201 extracts the intra prediction information, the inter prediction information and the one-dimensional coefficient information from a received bit stream. The entropy decoding unit 201 transmits the inter prediction information to the inter prediction unit 209, the intra prediction information to the intra prediction unit 208 and the coefficient information to the inverse scanning unit 202.
The inverse scanning unit 202 uses an inverse scan pattern to generate two dimensional quantized block. It is supposed that CABAC is used as entropy coding method. The inverse scan pattern is one of the diagonal scan, the vertical scan and the horizontal scan.
In intra prediction, the inverse scan pattern is determined by the intra prediction mode and the size of the transform unit. The inverse scan pattern is selected among the diagonal scan, the vertical scan and the horizontal scan. The selected inverse scan pattern is applied to the significant coefficients, the sign flags and the levels respectively generate the quantized block.
When the size of the transform unit is equal to or smaller than the first size, the horizontal scan is selected for the vertical mode and a predetermined number of neighboring intra prediction modes of the vertical mode, the vertical scan is selected for the horizontal mode and the predetermined number of neighboring intra prediction modes of the horizontal mode, and the diagonal scan is selected for the other intra prediction modes. The first size is 8×8.
When the size of the transform unit is larger than the first size, the diagonal scan is selected for all intra prediction modes.
In inter prediction, the diagonal scan is used.
When the size of the transform unit is larger than the second size, the significant coefficients, the sign flags and the levels are inversely scanned in the unit of the subset to generate subsets. And the subsets are inversely scanned to generate the quantized block. The second size is 4×4.
The inverse scan pattern used for generating each subset is the same as the inverse scan pattern used for generating the quantized block. The significant coefficients, the sign flags and the levels are scanned in the reverse direction. The subsets are also scanned in the reverse direction.
The last non-zero position and the non-zero subset flags are received from the encoder. The last non-zero position is used to determine the number of subsets to be generated. The non-zero subset flags are used to determine the subsets to be generated by applying the inverse scan pattern. The subset covering the DC coefficient and the subset covering the last non-zero coefficient are generated using the inverse scan pattern because the non-zero subset flags for a subset covering a DC coefficient and a subset covering last non-zero coefficient are not transmitted.
The inverse quantization unit 203 receives the differential quantization parameter from the entropy decoding unit 201 and generates the quantization parameter predictor. The quantization parameter predictor is generated through the same operation of the quantization unit 104 of
The inverse quantization unit 203 inversely quantizes the quantized block.
The inverse transform unit 204 inversely transforms the inversely quantized block to restore a residual block. The inverse transform type is adaptively determined according to the prediction mode and the size of the transform unit. The inverse transform type is the DCT-based integer transform or the DST-based integer transform.
The intra prediction unit 208 restores the intra prediction mode of the current prediction unit using the received intra prediction information, and generates a prediction block according to the restored intra prediction mode. The prediction block has the same size of the transform unit. The intra prediction unit 250 generates reference pixels if there are unavailable reference pixels of the current block, and filters adaptively the reference pixels of the current block according to the size of the current block and the intra prediction mode. The current block has the same size of the transform unit.
The inter prediction unit 209 restores the motion information of the current prediction unit using the received inter prediction information, and generates a prediction block using the motion information.
The post-processing unit 206 operates the same as the post-processing unit 110 of
The picture storing unit 207 receives post-processed image from the post-processing unit 206, and stores the image in picture units. A picture may be a frame or a field.
The adder 205 adds the restored residual block and a prediction block to generate a reconstructed block.
Intra prediction information of the current prediction unit is entropy-decoded (S110).
The intra prediction information includes a mode group indicator and a prediction mode index. The mode group indicator is a flag indicating whether the intra prediction mode of the current prediction unit belongs to a most probable mode group (MPM group). If the flag is 1, the intra prediction unit of the current prediction unit belongs to the MPM group. If the flag is 0, the intra prediction unit of the current prediction unit belongs to a residual mode group. The residual mode group includes all intra prediction modes other than the intra prediction modes belonging to the MPM group. The prediction mode index specifies the intra prediction mode of the current prediction unit within the group specified by the mode group indicator.
The intra prediction mode of the current prediction unit is derived using the intra prediction information (S120).
The MPM group is constructed using intra prediction modes of the neighboring prediction units (S121). The intra prediction modes of the MPM group are adaptively determined by a left intra prediction mode and an above intra prediction mode. The left intra prediction mode is the intra prediction mode of the left neighboring prediction unit, and the above intra prediction mode is the intra prediction mode of the above neighboring prediction unit. The MPM group is comprised of three intra prediction modes.
If the left or above neighboring prediction unit does not exist, the intra prediction mode of the left or above neighboring unit is set as unavailable. For example, if the current prediction unit is located at the left or upper boundary of a picture, the left or above neighboring prediction unit does not exist. If the left or above neighboring unit is located within other slice or other tile, the intra prediction mode of the left or above neighboring unit is set as unavailable. If the left or above neighboring unit is inter-coded, the intra prediction mode of the left or above neighboring unit is set as unavailable. If the above neighboring unit is located within other LCU, the intra prediction mode of the left or above neighboring unit may be set as unavailable.
When both of the left intra prediction mode and the above intra prediction mode are available and are different each other, the left intra prediction mode and the above intra prediction mode are included in the MPM group and one additional intra prediction mode is added to the MPM group. Index 0 is assigned to one intra prediction mode of small mode number and index 1 is assigned to the other. Alternatively, index 0 may be assigned to the left intra prediction mode and index 1 may be assigned to the above intra prediction mode. The additional intra prediction mode is determined by the left and above intra prediction modes as follows.
If one of the left and above intra prediction modes is a non-directional mode and the other is a directional mode, the other non-directional mode is added to the MPM group. For example, if the one of the left and above intra prediction modes is the DC mode, the planar mode is added to the MPM group. If the one of the left and above intra prediction modes is the planar mode, the DC mode is added to the MPM group. If both of the left and above intra prediction modes are non-directional modes, the vertical mode is added to the MPM group. If both of the left and above intra prediction modes are directional modes, the DC mode or the planar mode is added to the MPM group.
When only one of the left intra prediction mode and the above intra prediction mode is available, the available intra prediction mode is included in the MPM group and two additional intra prediction modes are added to the MPM group. The added two intra prediction modes are determined by the available intra prediction modes as follows.
If the available intra prediction mode is a non-directional mode, the other non-directional mode and the vertical mode are added to the MPM group. For example, if the available intra prediction mode is the DC mode, the planar mode and the vertical mode are added to the MPM group. If the available intra prediction mode is the planar mode, the DC mode and the vertical mode are added to the MPM group. If the available intra prediction mode is a directional mode, two non-directional modes (DC mode and planar mode) are added to the MPM group.
When both of the left intra prediction mode and the above intra prediction mode are available and are same each other, the available intra prediction mode is included in the MPM group and two additional intra prediction modes are added to the MPM group. The added two intra prediction modes are determined by the available intra prediction modes as follows.
If the available intra prediction mode is a directional mode, two neighboring directional modes are added to the MPM group. For example, if the available intra prediction mode is the mode 23, the left neighboring mode (mode 1) and the right neighboring mode (mode 13) are added to the MPM group. If the available intra prediction mode is the mode 30, the two neighboring modes (mode 2 and mode 16) are added to the MPM group. If the available intra prediction mode is a non-directional mode, the other non-directional mode and the vertical mode are added to the MPM group. For example, if the available intra prediction mode is the DC mode, the planar mode and the vertical mode are added to the MPM group.
When both of the left intra prediction mode and the above intra prediction mode are unavailable, three additional intra prediction modes are added to the MPM group. The three intra prediction modes are the DC mode, the planar mode and the vertical mode. Indexes 0, 1 and 2 are assigned to the three intra prediction modes in the order of the DC mode, the planar mode and the vertical mode or in the order of the planar mode, the DC mode and the vertical mode.
It is determined whether the mode group indicator indicates the MPM group (S122).
If the mode group indicator indicates the MPM group, the intra prediction of the MPM group specified by the prediction mode index is determined as the intra prediction mode of the current prediction unit (S123).
If the mode group indicator does not indicate the MPM group, the intra prediction of the residual mode group specified by the prediction mode index is determined as the intra prediction mode of the current prediction unit (S124). The intra prediction mode of the current unit is derived using the prediction mode index and the intra prediction modes of the MPM group as the following ordered steps.
1) The three intra prediction modes of the MPM group are reordered in the mode number order. The intra prediction mode with lowest mode number is set to a first candidate. The intra prediction mode with middle mode number is set to a second candidate. The intra prediction mode with highest mode number is set to a third candidate.
2) The prediction mode index is compared with the first candidate. If the prediction mode index is equal to or greater than the first candidate of the MPM group, the value of the prediction mode index is increased by one. Otherwise, the value of the prediction mode index is maintained.
3) The prediction mode index is compared with the second candidate. If the prediction mode index is equal to or greater than the second candidate of the MPM group, the value of the prediction mode index is increased by one. Otherwise, the value of the prediction mode index is maintained.
4) The prediction mode index is compared with the third candidate. If the prediction mode index is equal to or greater than the third candidate of the MPM group, the value of the prediction mode index is increased by one. Otherwise, the value of the prediction mode index is maintained.
5) The value of the final prediction mode index is set as the mode number of the intra prediction mode of the current prediction unit.
A size of the prediction block is determined based on the transform size information specifying the size of the transform unit (S130). The transform size information may be one or more split_transform_flags specifying the size of the transform unit.
If the size of the transform unit is equal to the size of the current prediction unit, the size of the prediction block is equal to the size of the current prediction unit.
If the size of the transform unit is smaller than the size of the current prediction unit, the size of the prediction block is equal to the size of the transform unit. In this case, a process of generating a reconstructed block is performed on each sub-block of the current prediction unit. That is, a prediction block and a residual block of a current sub-block are generated and a reconstructed block of each sub-block is generated by adding the prediction block and the residual block. Then, a prediction block, a residual block and a reconstructed block of the next sub-block in decoding order are generated. The restored intra prediction mode is used to generate all prediction blocks of all sub-block. Some pixels of the reconstructed block of the current sub-block are used as reference pixels of the next sub-block. Therefore, it is possible to generate a prediction block which is more similar to the original sub-block.
Next, it is determined whether all reference pixels of the current block are available, and reference pixels are generated if one or more reference pixels are unavailable (S140). The current block is the current prediction unit or the current sub-block. The size of the current block is the size of the transform unit.
If reconstructed pixels do not exist at corresponding positions or reconstructed pixels are located within another slice, the reference pixels are set as unavailable. In constrained intra prediction mode (CIP mode), the reconstructed pixels of inter mode are also set as unavailable.
If one or more reference pixels are unavailable, one or more reference pixels are generated for the one or more unavailable reference pixels as follows.
If all reference pixels are unavailable, the value of 2L-1 is substituted for the values of all the reference pixels. The value of L is the number of bits used to represent luminance pixel value.
If available reference pixels are located at only one side of the unavailable reference pixel, the value of the reference pixel nearest to the unavailable pixel is substituted for the unavailable reference pixel.
If available reference pixels are located at both sides of the unavailable reference pixel, the average value of the reference pixels nearest to the unavailable pixel in each side or the value of the reference pixel nearest to the unavailable pixel in a predetermined direction is substituted for each unavailable reference pixel.
Next, the reference pixels are adaptively filtered based on the intra prediction mode and the size of the current block (S150). The size of the current block is the size of the transform unit.
In the DC mode, the reference pixels are not filtered. In the vertical mode and the horizontal mode, the reference pixels are not filtered. In the directional modes other than the vertical and horizontal modes, the reference pixels are adaptively according to the size of the current block.
If the size of the current is 4×4, the reference pixels are not filtered in all intra prediction modes. For the size 8×8, 16×16 and 32×32, the number of intra prediction mode where the reference pixels are filtered increases as the size of the current block becomes larger. For example, the reference pixels are not filtered in the vertical mode and a predetermined number of neighboring intra prediction mode of the vertical mode. The reference pixels are also not filtered in the horizontal mode and the predetermined number of neighboring intra prediction mode of the horizontal mode. The predetermined number lies between 0 to 7 and decreases as the size of the current block is larger.
Next, a prediction block of the current block is generated using the reference pixels according to the restored intra prediction mode (S160).
In the DC mode, the prediction pixels of the prediction block are generated by averaging the N reference pixels located at (x=0, . . . N−1, y=−1) and the M reference pixels located at (x=−1, y=0, . . . M−1). Then, the prediction pixel adjacent to the reference pixel is filtered using one or two adjacent reference pixels.
In the vertical mode, the prediction pixels of the prediction block are generated by copying the value of the corresponding vertical reference pixel. Then, the prediction pixels which are adjacent to the left reference pixel are filtered by the left neighboring reference pixel and the corner pixel.
In the horizontal mode, the prediction pixels of the prediction block are generated by copying the value of the corresponding horizontal reference pixel. Then, the prediction pixels which are adjacent to the above reference pixel are filtered by the above neighboring reference pixel and the corner pixel.
The apparatus 300 according to the present invention includes a parsing unit 310, a prediction mode decoding unit 320, a prediction size determining unit 330, a reference availability checking unit 340, a reference pixel generating unit 350, a reference pixel filtering unit 360 and a prediction block generating unit 370.
The parsing unit 310 restores the intra prediction information of the current prediction unit from the bit stream.
The intra prediction information includes a mode group indicator and a prediction mode index. The mode group indicator is a flag indicating whether the intra prediction mode of the current prediction unit belongs to a most probable mode group (MPM group). If the flag is 1, the intra prediction unit of the current prediction unit belongs to the MPM group. If the flag is 0, the intra prediction unit of the current prediction unit belongs to a residual mode group. The residual mode group includes all intra prediction modes other than the intra prediction modes belonging to the MPM group. The prediction mode index specifies the intra prediction mode of the current prediction unit within the group specified by the mode group indicator.
The prediction mode decoding unit 320 includes a MPM group constructing unit 321 and a prediction mode restoring unit 322.
The MPM group constructing unit 321 constructs the MPM group of the current prediction unit. The MPM group is constructed using intra prediction modes of the neighboring prediction units. The intra prediction modes of the MPM group are adaptively determined by a left intra prediction mode and an above intra prediction mode. The left intra prediction mode is the intra prediction mode of the left neighboring prediction unit, and the above intra prediction mode is the intra prediction mode of the above neighboring prediction unit. The MPM group is comprised of three intra prediction modes.
The MPM group constructing unit 321 checks the availability of the left intra prediction mode and the above intra prediction mode. If the left or above neighboring prediction unit does not exist, the intra prediction mode of the left or above neighboring unit is set as unavailable. For example, if the current prediction unit is located at the left or upper boundary of a picture, the left or above neighboring prediction unit does not exist. If the left or above neighboring unit is located within other slice or other tile, the intra prediction mode of the left or above neighboring unit is set as unavailable. If the left or above neighboring unit is inter-coded, the intra prediction mode of the left or above neighboring unit is set as unavailable. If the above neighboring unit is located within other LCU, the intra prediction mode of the left or above neighboring unit is set as unavailable.
The MPM group constructing unit 321 constructs the MPM group as follows.
When both of the left intra prediction mode and the above intra prediction mode are available and are different each other, the left intra prediction mode and the above intra prediction mode are included in the MPM group and one additional intra prediction mode is added to the MPM group. Index 0 is assigned to one intra prediction mode of small mode number and index 1 is assigned to the other. Or index 0 is assigned to the left intra prediction mode and index 1 is assigned to the above intra prediction mode. The added intra prediction mode is determined by the left and above intra prediction modes as follows.
If one of the left and above intra prediction modes is a non-directional mode and the other is a directional mode, the other non-directional mode is added to the MPM group. For example, if the one of the left and above intra prediction modes is the DC mode, the planar mode is added to the MPM group. If the one of the left and above intra prediction modes is the planar mode, the DC mode is added to the MPM group. If both of the left and above intra prediction modes are non-directional modes, the vertical mode is added to the MPM group. If both of the left and above intra prediction modes are directional modes, the DC mode or the planar mode is added to the MPM group.
When only one of the left intra prediction mode and the above intra prediction mode is available, the available intra prediction mode is included in the MPM group and two additional intra prediction modes are added to the MPM group. The added two intra prediction modes are determined by the available intra prediction modes as follows.
If the available intra prediction mode is a non-directional mode, the other non-directional mode and the vertical mode are added to the MPM group. For example, if the available intra prediction mode is the DC mode, the planar mode and the vertical mode are added to the MPM group. If the available intra prediction mode is the planar mode, the DC mode and the vertical mode are added to the MPM group. If the available intra prediction mode is a directional mode, two non-directional modes (DC mode and planar mode) are added to the MPM group.
When both of the left intra prediction mode and the above intra prediction mode are available and are same each other, the available intra prediction mode is included in the MPM group and two additional intra prediction modes are added to the MPM group. The added two intra prediction modes are determined by the available intra prediction modes as follows.
If the available intra prediction mode is a directional mode, two neighboring directional modes are added to the MPM group. For example, if the available intra prediction mode is the mode 23, the left neighboring mode (mode 1) and the right neighboring mode (mode 13) are added to the MPM group. If the available intra prediction mode is the mode 30, the two neighboring modes (mode 2 and mode 16) are added to the MPM group. If the available intra prediction mode is a non-directional mode, the other non-directional mode and the vertical mode are added to the MPM group. For example, if the available intra prediction mode is the DC mode, the planar mode and the vertical mode are added to the MPM group.
When both of the left intra prediction mode and the above intra prediction mode are unavailable, three additional intra prediction modes are added to the MPM group. The three intra prediction modes are the DC mode, the planar mode and the vertical mode. Indexes 0, 1 and 2 are assigned to the three intra prediction modes in the order of the DC mode, the planar mode and the vertical mode or in the order of the planar mode, the DC mode and the vertical mode.
The prediction mode restoring unit 322 derives the intra prediction mode of the current prediction unit using the mode group indicator and the prediction mode index as follows.
The prediction mode restoring unit 322 determines whether the mode group indicator indicates the MPM group.
If the mode group indicator indicates the MPM group, the prediction mode restoring unit 322 determines the intra prediction of the MPM group specified by the prediction mode index as the intra prediction mode of the current prediction unit.
If the mode group indicator does not indicate the MPM group, the prediction mode restoring unit 322 determines the intra prediction of the residual mode group specified by the prediction mode index as the intra prediction mode of the current prediction unit. The intra prediction mode of the current unit is derived using the prediction mode index and the intra prediction modes of the MPM group as the following ordered steps.
1) The three intra prediction modes of the MPM group are reordered in the mode number order. The intra prediction mode with lowest mode number is set to a first candidate. The intra prediction mode with middle mode number is set to a second candidate. The intra prediction mode with highest mode number is set to a third candidate.
2) The prediction mode index is compared with the first candidate. If the prediction mode index is equal to or greater than the first candidate of the MPM group, the value of the prediction mode index is increased by one. Otherwise, the value of the prediction mode index is maintained.
3) The prediction mode index is compared with the second candidate. If the prediction mode index is equal to or greater than the second candidate of the MPM group, the value of the prediction mode index is increased by one. Otherwise, the value of the prediction mode index is maintained.
4) The prediction mode index is compared with the third candidate. If the prediction mode index is equal to or greater than the third candidate of the MPM group, the value of the prediction mode index is increased by one. Otherwise, the value of the prediction mode index is maintained.
5) The value of the final prediction mode index is set as the mode number of the intra prediction mode of the current prediction unit.
The prediction size determining unit 330 determines the size of the prediction block based on the transform size information specifying the size of the transform unit. The transform size information may be one or more split_transform_flags specifying the size of the transform unit.
If the size of the transform unit is equal to the size of the current prediction unit, the size of the prediction block is equal to the size of the current prediction unit.
If the size of the transform unit is smaller than the size of the current prediction unit, the size of the prediction block is equal to the size of the transform unit. In this case, a process of generating a reconstructed block is performed on each sub-block of the current prediction unit. That is, a prediction block and a residual block of a current sub-block are generated and a reconstructed block of each sub-block is generated by adding the prediction block and the residual block. Then, a prediction block, a residual block and a reconstructed block of the next sub-block in decoding order are generated. The restored intra prediction mode is used to generate all prediction blocks of all sub-block. Some pixels of the reconstructed block of the current sub-block are used as reference pixels of the next sub-block. Therefore, it is possible to generate a prediction block which is more similar to the original sub-block.
The reference pixel availability checking unit 340 determines whether all reference pixels of the current block are available. The current block is the current prediction unit or the current sub-block. The size of the current block is the size of the transform unit.
The reference pixel generating unit 350 generates reference pixels if one or more reference pixels of the current block are unavailable.
If all reference pixels are unavailable, the value of 2L-1 is substituted for the values of all the reference pixels. The value of L is the number of bits used to represent luminance pixel value.
If available reference pixels are located at only one side of the unavailable reference pixel, the value of the reference pixel nearest to the unavailable pixel is substituted for the unavailable reference pixel.
If available reference pixels are located at both sides of the unavailable reference pixel, the average value of the reference pixels nearest to the unavailable pixel in each side or the value of the reference pixel nearest to the unavailable pixel in a predetermined direction is substituted for each unavailable reference pixel.
The reference pixel filtering unit 360 adaptively filters the reference pixels based on the intra prediction mode and the size of the current block.
In the DC mode, the reference pixels are not filtered. In the vertical mode and the horizontal mode, the reference pixels are not filtered. In the directional modes other than the vertical and horizontal modes, the reference pixels are adaptively according to the size of the current block.
If the size of the current is 4×4, the reference pixels are not filtered in all intra prediction modes. For the size 8×8, 16×16 and 32×32, the number of intra prediction mode where the reference pixels are filtered increases as the size of the current block becomes larger. For example, the reference pixels are not filtered in the vertical mode and a predetermined number of neighboring intra prediction mode of the vertical mode. The reference pixels are also not filtered in the horizontal mode and the predetermined number of neighboring intra prediction mode of the horizontal mode. The predetermined number lies between 0 to 7 and decreases as the size of the current block is larger.
The prediction block generating unit 370 generates a prediction block of the current block using the reference pixels according to the restored intra prediction mode.
In the DC mode, the prediction pixel of the prediction block which is not adjacent to the reference pixel is generated by averaging the N reference pixels located at (x=0, . . . N−1, y=−1) and the M reference pixels located at (x=−1, y=0, . . . M−1). The prediction pixel adjacent to the reference pixel is generated using the average value and one or two adjacent reference pixels.
In the vertical mode, the prediction pixels which are not adjacent to the left reference pixel are generated by copying the value of the vertical reference pixel. The prediction pixels which are adjacent to the left reference pixel are generated by the vertical reference pixel and variance between the corner pixel and the left neighboring pixel.
In the horizontal mode, the prediction pixels are generated using the same method.
While the invention has been shown and described with reference to certain exemplary embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.
Patent | Priority | Assignee | Title |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Oct 24 2016 | INFOBRIDGE PTE. LTD. | (assignment on the face of the patent) | / | |||
Aug 23 2022 | INFOBRIDGE PTE LTD | GENSQUARE LLC | NUNC PRO TUNC ASSIGNMENT SEE DOCUMENT FOR DETAILS | 061299 | /0844 |
Date | Maintenance Fee Events |
Oct 18 2022 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Jan 25 2023 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Date | Maintenance Schedule |
Aug 06 2022 | 4 years fee payment window open |
Feb 06 2023 | 6 months grace period start (w surcharge) |
Aug 06 2023 | patent expiry (for year 4) |
Aug 06 2025 | 2 years to revive unintentionally abandoned end. (for year 4) |
Aug 06 2026 | 8 years fee payment window open |
Feb 06 2027 | 6 months grace period start (w surcharge) |
Aug 06 2027 | patent expiry (for year 8) |
Aug 06 2029 | 2 years to revive unintentionally abandoned end. (for year 8) |
Aug 06 2030 | 12 years fee payment window open |
Feb 06 2031 | 6 months grace period start (w surcharge) |
Aug 06 2031 | patent expiry (for year 12) |
Aug 06 2033 | 2 years to revive unintentionally abandoned end. (for year 12) |