A method and apparatus for decoding a video and a method and apparatus for encoding a video are provided. The method for decoding the video includes: receiving and parsing a bitstream of an encoded video; extracting, from the bitstream, encoded image data of a current picture of the encoded video assigned to a maximum coding unit, and information about a coded depth and an encoding mode according to the maximum coding unit; and decoding the encoded image data for the maximum coding unit based on the information about the coded depth and the encoding mode for the maximum coding unit, in consideration of a raster scanning order for the maximum coding unit and a zigzag scanning order for coding units of the maximum coding unit according to depths.
|
1. A method of decoding a video, the method comprising:
obtaining, from a bitstream, encoded image data of a plurality of maximum coding units, and split information of coding units in a maximum coding unit of the plurality of maximum coding units;
decoding the plurality of maximum coding units according to a raster scanning order; and
decoding the coding units in the maximum coding unit according to a zigzag scanning order, wherein the coding units include four coding units of a current depth,
wherein:
the maximum coding unit is spatially split into coding units of depths including at least one of a current depth and a lower depth the current depth or the current depth and a lower depth according to the split information,
when the split information indicates a split for the current depth, a coding unit of the current depth is split into four coding units of the lower depth, independently from neighboring coding units,
when the split information indicates a non-split for the current depth, one or more prediction units are obtained from the coding unit of the current depth, and
the zigzag scanning order on the four coding units of the current depth is a same order as the raster scanning order on the four coding units of the current depth.
0. 13. A non-transitory computer-readable storage medium having stored thereon instructions, when executed by at least one processor, to perform operations to generate image data, the operations comprising:
determining a plurality of maximum coding units split from an image to encode according to a raster scanning order;
determining coding units in the maximum coding unit to encode according to a zigzag scanning order; and
generating split information of coding units in the maximum coding unit;
generating a bitstream including encoded image data of the plurality of the maximum coding units and the split information of the coding units in the maximum coding unit,
wherein the maximum coding unit is spatially split into the coding units of depths including a current depth or the current depth and a lower depth,
when the coding unit of the current depth is split into four coding units of the lower depth, independently from neighboring coding units, the split information is generated to indicate a split for the current depth,
when one or more prediction units are obtained from a coding unit of the current depth, the split information is generated to indicate a non-split into coding units of the lower depth for the current depth, and
the zigzag scanning order on the four coding units of the lower depth is a same order as the raster scanning order on the four coding units of the lower depth.
0. 12. An apparatus for encoding a video, the apparatus comprising:
a processor configured to determine a plurality of maximum coding units to encode according to a raster scanning order, and determine coding units in the maximum coding unit to encode according to a zigzag scanning order, generate split information for coding units in a maximum coding unit of the plurality of maximum coding units which indicates whether a coding unit of a first depth is split into coding units of a second depth which is lower than the first depth, and generate a bitstream including encoded image data of the plurality of the maximum coding units and the split information of the coding units in the maximum coding unit of the plurality of maximum coding units,
wherein:
the maximum coding unit is spatially split into the coding units of depths including a current depth or the current depth and a lower depth,
when the coding unit of the current depth is split into four coding units of the lower depth, independently from neighboring coding units, the split information is generated to indicate a split for the current depth,
when one or more prediction units are obtained from a coding unit of the current depth, the split information is generated to indicate a non-split into coding units of the lower depth for the current depth, and
the zigzag scanning order on the four coding units of the lower depth is a same order as the raster scanning order on the four coding units of the lower depth.
0. 9. A non-transitory computer-readable storage medium having stored thereon instructions, when executed by at least one processor, to perform operations to generate image data, the operations comprising:
determining a plurality of maximum coding units split from an image to encode according to a raster scanning order;
determining coding units of a current depth in the maximum coding to encode according to a zigzag scanning order;
determining coding units of a lower depth to encode according to the zigzag scanning order when a coding unit of the current depth is split into coding units of the lower depth;
generating information about split information of coding units in the maximum coding unit; and
generating a bitstream including encoded image data of the plurality of the maximum coding units and the split information of the coding units in the maximum coding unit,
wherein the zigzag scanning order indicates an order of an upper-left coding unit, an upper-right coding unit, a lower-left coding unit and a lower-right coding unit according to the raster scan order among neighboring four coding units,
wherein the maximum coding unit is hierarchically split into one or more coding units of depths including the current depth or the current depth and a lower depth,
wherein when the coding unit of the current depth is split into four coding units of the lower depth, independently from a neighboring coding unit, the split information is generated to indicate a split for the current depth, and
wherein when one or more prediction units are obtained from the coding unit of the current depth, the split information is generated to indicate a non-split into coding units of the lower depth for the current depth.
0. 11. A non-transitory computer-readable storage medium having stored thereon instructions, when executed by at least one processor, to perform operations to generate image data, the operations comprising:
determining a plurality of maximum coding units split from an image to encode according to a raster scanning order;
determining coding units of a current depth in the maximum coding unit to encode according to a zigzag scanning order;
determining coding units of a lower depth to encode according to the zigzag scanning order when a coding unit of the current depth is split into coding units of the lower depth; and
generating split information of coding units in the maximum coding unit; and
generating a bitstream including encoded image data of the plurality of the maximum coding units and the split information of the coding units in the maximum coding unit,
wherein the zigzag scanning order indicates an order of an upper-left coding unit, an upper-right coding unit, a lower-left coding unit and a lower-right coding unit according to the raster scan order among neighboring four coding units,
wherein the maximum coding unit is hierarchically split into one or more coding units of depths including the current depth or the current depth and a lower depth,
wherein when the coding unit of the current depth is split into four coding units of the lower depth, independently from a neighboring coding unit, the split information is generated to indicate a split for the current depth,
wherein when one or more prediction units are obtained from the coding unit of the current depth, the split information is generated to indicate a non-split into coding units of the lower depth for the current depth, and
wherein the maximum coding unit has a square shape.
0. 8. A method for encoding a video, the method comprising:
determining a plurality of maximum coding units to encode according to a raster scanning order;
determining coding units of a current depth in the maximum coding unit to encode according to a zigzag scanning order, and determining coding units of a depth which is lower than the current depth to encode according to the zigzag scanning order when a coding unit of the current depth is split into coding units of a depth which is lower than the current depth;
generating split information of coding units in a maximum coding unit of the plurality of maximum coding units which indicates whether a coding unit of a first depth is split into coding units of a second depth which is lower than the first depth; and
generating a bitstream including encoded image data of the plurality of the maximum coding units and the split information of the coding units in the maximum coding unit of the plurality of maximum coding units,
wherein the zigzag scanning order indicates an order of an upper-left coding unit, an upper-right coding unit, a lower-left coding unit and a lower-right coding unit according to the raster scan order among neighboring four coding units,
wherein the maximum coding unit is hierarchically split into one or more coding units of depths including the current depth or the current depth and a lower depth,
wherein when the coding unit of the current depth is split into four coding units of the lower depth, independently from a neighboring coding unit, the split information is generated to indicate a split for the current depth, and
wherein when one or more prediction units are obtained from the coding unit of the current depth, the split information is generated to indicate a non-split into coding units of the lower depth for the current depth.
0. 10. An apparatus for encoding a video, the apparatus comprising:
a processor configured to determine a plurality of maximum coding units to encode according to a raster scanning order, determine coding units of a current depth in the maximum coding unit to encode according to a zigzag scanning order, and determine coding units of a depth which is lower than the current depth to encode according to the zigzag scanning order when a coding unit of the current depth is split into coding units of a depth which is lower than the current depth, generate split information of coding units in a maximum coding unit of the plurality of maximum coding units which indicates whether a coding unit of a first depth is split into coding units of a second depth which is lower than the first depth, and generate a bitstream including encoded image data of the plurality of the maximum coding units and the split information of the coding units in the maximum coding unit of the plurality of maximum coding units,
wherein the zigzag scanning order indicates an order of an upper-left coding unit, an upper-right coding unit, a lower-left coding unit and a lower-right coding unit according to the raster scan order among neighboring four coding units,
wherein the maximum coding unit is hierarchically split into one or more coding units of depths including the current depth or the current depth and a lower depth,
wherein when the coding unit of the current depth is split into four coding units of the lower depth, independently from a neighboring coding unit, the split information is generated to indicate a split for the current depth, and
wherein when one or more prediction units are obtained from the coding unit of the current depth, the split information is generated to indicate a non-split into coding units of the lower depth for the current depth.
0. 5. A non-transitory computer-readable storage medium having stored thereon instructions, when executed by at least one processor, to perform operations to generate image data, the operations comprising:
determining a plurality of maximum coding units split from an image to encode according to a raster scanning order;
determining coding units of a current depth in the maximum coding unit to encode according to a zigzag scanning order;
determining coding units of a lower depth to encode according to the zigzag scanning order when a coding unit of the current depth is split into coding units of the lower depth;
generating split information of coding units in the maximum coding unit; and
generating a bitstream including encoded image data of the plurality of the maximum coding units and the split information of the coding units in the maximum coding unit of the plurality of maximum coding units,
wherein the zigzag scanning order indicates an order of an upper-left coding unit, an upper-right coding unit, a lower-left coding unit and a lower-right coding unit according to the raster scan order among neighboring four coding units,
wherein the maximum coding unit is hierarchically split into one or more coding units of depths including the current depth or the current depth and a lower depth,
wherein when the coding unit of the current depth is split into four coding units of the lower depth, independently from a neighboring coding unit, the split information is generated to indicate a split for the current depth,
wherein when one or more prediction units are obtained from the coding unit of the current depth, the split information is generated to indicate a non-split into coding units of the lower depth for the current depth, and
wherein the one or more coding units hierarchically split from the maximum coding unit have a square shape.
0. 6. An apparatus for encoding a video, the apparatus comprising:
a processor configured to determine a plurality of maximum coding units to encode according to a raster scanning order, determine coding units of a current depth in the maximum coding unit to encode according to a zigzag scanning order, and determine coding units of a depth which is lower than the current depth to encode according to the zigzag scanning order when a coding unit of the current depth is split into coding units of a depth which is lower than the current depth, generate split information of coding units in a maximum coding unit of the plurality of maximum coding units which indicates whether a coding unit of a first depth is split into coding units of a second depth which is lower than the first depth, and generate a bitstream including encoded image data of the plurality of the maximum coding units and the split information of the coding units in the maximum coding unit of the plurality of maximum coding units,
wherein the zigzag scanning order indicates an order of an upper-left coding unit, an upper-right coding unit, a lower-left coding unit and a lower-right coding unit according to the raster scan order among neighboring four coding units,
wherein the maximum coding unit is hierarchically split into one or more coding units of depths including the current depth or the current depth and a lower depth,
wherein when the coding unit of the current depth is split into four coding units of the lower depth, independently from a neighboring coding unit, the split information is generated to indicate a split for the current depth,
wherein when one or more prediction units are obtained from the coding unit of the current depth, the split information is generated to indicate a non-split into coding units of the lower depth for the current depth, and
wherein the maximum coding unit has a square shape.
0. 7. A non-transitory computer-readable storage medium having stored thereon instructions, when executed by at least one processor, to perform operations to generate image data, the operations comprising:
determining a plurality of maximum coding units split from an image to encode according to a raster scanning order;
determining coding units of a current depth in the maximum coding unit to encode according to a zigzag scanning order;
determining coding units of a lower depth to encode according to the zigzag scanning order when a coding unit of the current depth is split into coding units of the lower depth;
generating split information of coding units in the maximum coding unit; and
generating a bitstream including encoded image data of the plurality of the maximum coding units and the split information of the coding units in the maximum coding unit of the plurality of maximum coding units,
wherein the zigzag scanning order indicates an order of an upper-left coding unit, an upper-right coding unit, a lower-left coding unit and a lower-right coding unit according to the raster scan order among neighboring four coding units,
wherein the maximum coding unit is hierarchically split into one or more coding units of depths including the current depth or the current depth and a lower depth,
wherein when the coding unit of the current depth is split into four coding units of the lower depth, independently from a neighboring coding unit, the split information is generated to indicate a split for the current depth,
wherein when the coding unit of the current depth is split into one or more prediction units, the split information is generated to indicate a non-split into coding units of the lower depth for the current depth,
wherein the one or more coding units hierarchically split from the maximum coding unit have a square shape, and
wherein the maximum coding unit has a square shape.
0. 4. A method for encoding a video, the method comprising:
determining a plurality of maximum coding units to encode according to a raster scanning order;
determining coding units of a current depth or a current depth and a lower depth in the maximum coding unit to encode according to a zigzag scanning order, and determining coding units of a depth which is lower than the current depth to encode according to the zigzag scanning order when a coding unit of the current depth is split into coding units of a depth which is lower than the current depth;
generating split information of coding units in a maximum coding unit of the plurality of maximum coding units which indicates whether a coding unit of a first depth is split into coding units of a second depth which is lower than the first depth; and
generating a bitstream including encoded image data of the plurality of the maximum coding units and the split information of the coding units in the maximum coding unit of the plurality of maximum coding units,
wherein the zigzag scanning order indicates an order of an upper-left coding unit, an upper-right coding unit, a lower-left coding unit and a lower-right coding unit according to the raster scan order among neighboring four coding units,
wherein the maximum coding unit is hierarchically split into one or more coding units of depths including the current depth or the current depth and a lower depth,
wherein when the coding unit of the current depth is split into four coding units of the lower depth, independently from a neighboring coding unit, the split information is generated to indicate a split for the current depth,
wherein when one or more prediction units are obtained from the coding unit of the current depth, the split information is generated to indicate a non-split into coding units of the lower depth for the current depth,
wherein the maximum coding unit has a square shape.
2. The method of
3. The method of
|
Compared to the current minimum transformation unit size CurrMinTuSize that can be determined in the current coding unit, a transformation unit size ‘RootTuSize’ when the TU size flag is 0 may denote a maximum transformation unit size that can be selected in the system. In Equation (1), RootTuSize/(2{circumflex over ( )}MaxTransformSizeIndex) denotes a transformation unit size when the transformation unit size RootTuSize, when the TU size flag is 0, is split a number of times corresponding to the maximum TU size flag, and MinTransformSize denotes a minimum transformation size. Thus, a smaller value from among RootTuSize/(2{circumflex over ( )}MaxTransformSizeIndex) and MinTransformSize may be the current minimum transformation unit size CurrMinTuSize that can be determined in the current coding unit.
According to an exemplary embodiment, the maximum transformation unit size RootTuSize may vary according to the type of a prediction mode. For example, if a current prediction mode is an inter mode, then RootTuSize may be determined by using Equation (2) below. In Equation (2), MaxTransformSize denotes a maximum transformation unit size, and PUSize denotes a current prediction unit size:
RootTuSize=min(MaxTransformSize,PUSize) (2).
That is, if the current prediction mode is the inter mode, the transformation unit size RootTuSize when the TU size flag is 0 may be a smaller value from among the maximum transformation unit size and the current prediction unit size.
If a prediction mode of a current partition unit is an intra mode, RootTuSize may be determined by using Equation (3) below, In Equation (3), PartitionSize denotes the size of the current partition unit:
RootTuSize=min(MaxTransformSize,PartitionSize) (3).
That is, if the current prediction mode is the intra mode, the transformation unit size RootTuSize when the TU size flag is 0 may be a smaller value from among the maximum transformation unit size and the size of the current partition unit.
However, the current maximum transformation unit size RootTuSize that varies according to the type of a prediction mode in a partition unit is just an example and it is understood that another exemplary embodiment is not limited thereto.
An index and a scanning order of a data unit based on coding units having a tree structure, a prediction unit, and a transformation unit, according to one or more exemplary embodiments will now be described in detail with reference to
A video encoding apparatus 100 according to an exemplary embodiment uses a raster scanning order as an order in which encoding is performed in units of maximum coding units included in a slice. Hierarchical coding units according to depths included in a maximum coding unit may be scanned in a zigzag manner among coding units corresponding to the same depth. Encoding of minimum units of each maximum coding unit may be performed in a raster scanning order.
The video encoding apparatus 100 may refer to information about a neighborhood of a current data unit (hereinafter, referred to as neighborhood information of a current data unit) in order to encode image data corresponding to the current data unit. For example, when a current maximum coding unit, a current coding unit corresponding to a coded depth, or a current prediction unit are prediction-encoded, information about a maximum coding unit or current coding units according to depths adjacent to the current maximum coding unit, the current coding unit corresponding to coded depth or the current prediction unit, and the like may be referred to.
In detail, the neighborhood information may include information about at least one of a maximum coding unit on a left side of the current maximum coding unit, a maximum coding unit on an upper side thereof, a maximum coding unit on a right upper side thereof, a maximum coding unit on a left upper side thereof, etc. The neighborhood information may include information about coding units located on at least one of the left side, the upper side, the right upper side, and the left upper side of the current maximum coding unit. The neighborhood information may also include information about prediction units located on the left side, the upper side, the right upper side, the left upper side of the current maximum coding unit, etc. The neighborhood information may also include information about partitions located on at least one of the left side, the upper side, the right upper side, the left upper side of the current maximum coding unit, etc.
The neighborhood information may also include information about minimum units located on at least one of the left side, the upper side, the right upper side, the left upper side of the current prediction unit, etc.
Furthermore part of a data unit, as opposed to an entirety of data unit may be referred to, as the neighborhood information. For example, the neighborhood information may include a right boundary of a maximum coding unit located on a left lower side of the current prediction unit.
Since a data unit located on the left lower side of a current data unit is scanned later than the current data unit according to a raster scanning order of an exemplary embodiment, the data unit located on the left lower side of the current data unit may not be referred to when encoding a current macroblock, in a macroblock encoding method complying with a raster scanning order. However, in the present exemplary embodiment, even when maximum coding units only comply with a raster scanning order, since minimum units and data units in the maximum coding units can be scanned in a zigzag manner, the minimum units and the data units may serve as the neighborhood information.
A coding unit determiner 120 of the video encoding apparatus 100 may check a location and usability of a predetermined coding unit. The checked coding unit may a coding unit having a tree structure, that is, a coding unit corresponding to a coded depth. The coding unit determiner 120 may check the location and usability of a data unit adjacent to a current data unit. The data unit adjacent to the current data unit may include at least one of data units located on the left side, the upper side, the right upper side, and the left upper side of the current data unit. The adjacent data unit to be checked may include at least one of a maximum coding unit, a coding unit, a prediction unit, a partition, a transformation unit, and a minimum unit.
An image data decoder 230 of a video decoding apparatus 200 according to an exemplary embodiment considers a raster scanning order for maximum coding units and a zigzag scanning order for coding units according to depths, in order to decode image data corresponding to each maximum coding unit encoded based on information about an coded depth and an encoding mode for each maximum coding unit to restore a current picture. Hereinafter, a coding unit that is scanned in consideration of a raster scanning order for maximum coding units and a zigzag scanning order for coding units according to depths is a coding unit corresponding to a coded depth from among coding units having a tree structure.
Neighborhood information may be referred to in order to decode a current data unit. For example, inter prediction on a current partition may be performed by referring to a motion vector of a partition adjacent to the current partition. Moreover, inter prediction on a current partition may be performed by referring to a pixel value of a data unit adjacent to a pixel value of the current partition.
The image data decoder 230 may check the location, usability, and the like of the adjacent data unit which can be referred to in order to decode the current data unit. Accordingly, the image data decoder 230 may refer to neighborhood information by checking the usability of the neighborhood information, in consideration of a raster scanning order for maximum coding units and partitions and a zigzag scanning order or a raster scanning order for minimum units.
The image data decoder 230 may check the locations of data units based on a scanning order. For example, the location of each maximum coding unit may be searched for, based on addresses of maximum coding units according to a raster scanning order.
Based on indices of minimum units according to a zigzag scanning order, the locations of the minimum units in a maximum coding unit may be searched for. Alternatively, based on the indices of minimum units according to a raster scanning order, the locations of the minimum units in a maximum coding unit may be searched for. The indices of the minimum units according to a zigzag scanning order and the indices of the minimum units according to a raster scanning order may be mutually transformed to each other. For convenience of explanation, an index based on a scanning order is hereinafter referred to as a scan index.
Respective scan indices of a coding unit, a prediction unit, and a transformation unit may be expressed based on a scan index of a minimum unit in a corresponding maximum coding unit. A scan index of a partition of the prediction unit may also be expressed based on the scan index of the minimum unit in the corresponding maximum coding unit.
Locations or coordinates of samples of the coding unit and the prediction unit may be expressed as coordinates in the corresponding maximum coding unit. Locations or coordinates of samples of the partition of the prediction unit and the transformation unit may also be expressed as coordinates in the corresponding prediction unit.
A location of a current maximum coding unit may be expressed as a location of a pixel located on the left upper side of the current maximum coding unit, which is relative to a location of a sample located on the left upper side of a current slice. A location of a current minimum unit may be expressed as a location of a pixel located on the left upper side of the current minimum unit, which is relative to a location of a sample located on the left upper side of a corresponding maximum coding unit.
The image data decoder 230 may check a location and usability of a predetermined coding unit. The coding unit to be checked may a coding unit having a tree structure, that is, a coding unit corresponding to a coded depth. The image data decoder 230 may check the location and usability of a maximum coding unit adjacent to a current maximum coding unit. The maximum coding unit adjacent to the current maximum coding unit may include at least one of maximum coding units located on the left side, the upper side, the right upper side, and the left upper side of the current maximum coding unit.
The image data decoder 230 may check a location, an index, and usability of a coding unit adjacent to a current coding unit. The coding unit adjacent to the current coding unit may include at least one of coding units located on the left side and the upper side of the current coding unit. The checked coding unit may be one of the coding units having a tree structure, that is, a coding unit corresponding to a coded depth.
The image data decoder 230 may check a location, an index, and usability of a prediction unit adjacent to a current prediction unit. The prediction unit adjacent to the current prediction unit may include at least one of prediction units located on the left side, the upper side, the right upper side, and the left upper side of the current prediction unit.
The image data decoder 230 may check a location, an index, and usability of a partition adjacent to a current prediction unit. The partition adjacent to the current prediction unit may include at least one of partitions located on the left side, the upper side, the right upper side, and the left upper side of the current prediction unit.
The image data decoder 230 may check a location, an index, and usability of a minimum unit adjacent to a current prediction unit included in a current maximum coding unit. The minimum unit adjacent to the current prediction unit may include at least one of minimum units located on the left side, the upper side, the right upper side, and the left upper side of the current prediction unit.
The image data decoder 230 may check a location and usability of a boundary adjacent to a current prediction unit. The boundary adjacent to the current prediction unit may include a boundary of at least one of data units located on the left side, the upper side, the right upper side, the left upper side, and the left lower side of the current prediction unit. Locations of pixels on the boundary may be expressed as a coordinate relative to a location of a pixel on the left upper side of a current coding unit or may be expressed as a coordinate relative to a location of a sample on the left upper side of a current maximum coding unit. If a pixel adjacent to the current coding unit deviates from the current maximum coding unit, the pixel may be determined to be not useable.
The image data decoder 230 may check usability of coding units according to depths or a prediction unit that include a minimum unit, based on encoding information of the minimum unit. Accordingly, the image data decoder 230 may check locations or usabilities of a prediction unit, coding units according to depths, a maximum coding unit, and the like adjacent to a current data unit, by using encoding information of a minimum unit adjacent to the current data unit.
According to a raster scanning order, at a point in time when a current maximum coding unit is scanned, a maximum coding unit located on the left side or the upper side of the current maximum coding unit has already been decoded, but a maximum coding unit located on the right side or the lower side of the current maximum coding unit has not yet been decoded.
A case where a maximum coding unit includes at least one macroblock is assumed to compare existing macroblocks with hierarchical data units according to an exemplary embodiment. A case where a first macroblock and a second macroblock are included in the same maximum coding unit and the first macroblock is on the left lower side of the second macroblock will now be illustrated.
According to a raster scanning order, the first macroblock is scanned later than the second macroblock. According to a zigzag scanning order, the first macroblock is scanned earlier than the second macroblock. In an encoding method, since the first macroblock is scanned later than the second macroblock according to a raster scanning order is encoded and decoded later than the second macroblock, the second macroblock may not refer to information about the first macroblock. However, the video encoding apparatus 100 according to an embodiment of the present invention may refer to the first macroblock as neighborhood information of the second macroblock when encoding the second macroblock.
Since the video encoding apparatus 100 and the video decoding apparatus 200 according to exemplary embodiments use not only a raster scanning method, but also a zigzag scanning method for each of hierarchical coding units having a tree structure, the apparatuses 100 and 200 may use a wide range of neighborhood information compared with the related art.
A video decoding apparatus 200 according to an exemplary embodiment may be aware of the location of a current maximum coding unit complying with a raster scanning order, by ascertaining an address of the current maximum coding unit, a size of a maximum coding unit, and a size of a picture. Here, a location of the current maximum coding unit corresponds to a distance from a left upper end of the picture to a left upper end of the current maximum coding unit, and may be expressed as a location of a pixel on the left upper side of the current maximum coding unit, which is relative to a location of a sample on the left upper side of the picture.
A scanning order of partitions of coding units according to depths will now be described with reference to
An image data decoder 230 of the video decoding apparatus 200 may search for a location of a partition in each of coding units according to depths. In a current coding unit, when the index of a current partition, the size of each partition, and the size of the current coding unit are known, the location of the current partition complying with a raster scanning order may be ascertained.
Here, the location of the current partition corresponds to a distance from a left upper end of a current data unit to a left upper end of the current partition, and may be expressed as a location of a pixel on the left upper end of the current partition, which is relative to a location of a sample on the left upper end of the current data unit.
According to one or more exemplary embodiments, minimum units in a maximum coding unit may be scanned in a zigzag scanning order or a raster scanning order. Accordingly, an index based on a zigzag scanning order and an index based on a raster scanning order may be defined for each minimum unit.
Referring to
An image data decoder 230 of a video decoding apparatus 200 according to an exemplary embodiment may search for locations of the minimum units in each maximum coding unit. When the index of a current minimum unit, the size of each minimum unit, and the size of the current maximum coding unit complying with a raster scanning order are known, the location of the current minimum unit complying with a raster scanning order may be ascertained.
Here, the location of the current minimum unit corresponds to a distance from a left upper end of a current maximum coding unit to a left upper end of the current minimum unit, and may be expressed as a location of a pixel on the left upper end of the current minimum unit, which is relative to a location of a sample on the left upper end of the current maximum coding unit.
Referring to
A group of the minimum units 1810 having indices of 0, 1, 2, and 3 is a coding unit having a depth of 2. Accordingly, a first group including the minimum units 1810 having indices of 0, 1, 2, and 3, a second group including the minimum units 1810 having indices of 4, 5, 6, and 7, a third group including the minimum units 1810 having indices of 8, 9, 10, and 11, and a fourth group including the minimum units 1810 having indices of 12, 13, 14, and 15 are respectively coding units having depths of 2, and may be each scanned in a zigzag scanning order.
Similarly, scanning may be performed in a zigzag scanning order among 4 coding units corresponding to the depth of 1, wherein each of the coding units corresponding to the depth of 1 includes four coding units corresponding to the depth of 2.
An image data decoder 230 of a video decoding apparatus 200 according to an exemplary embodiment may search for locations of the minimum units in a maximum coding unit. When the index of a current minimum unit, the size of each minimum unit, and the size of the current maximum coding unit complying with a zigzag scanning order are known, the location of the current minimum unit complying with a zigzag scanning order may be ascertained.
Here, the location of the current minimum unit corresponds to a distance from a left upper end of a current maximum coding unit to a left upper end of the current minimum unit, and may be expressed as a location of a pixel on the left upper end of the current minimum unit, which is relative to a location of a sample on the left upper end of the current maximum coding unit.
The image data decoder 230 of the video decoding apparatus 200 may mutually transform indices of minimum units according to a zigzag scanning order and indices of minimum units according to a raster scanning order to each other, within a maximum coding unit. The mutual transformation may be performed in consideration of a size of a maximum coding unit, a current depth, and a maximum depth.
A location of a coding unit 1770 from among coding units having a tree structure in the maximum coding unit 1760 may be expressed as a scan index culdx of the coding unit 1770 compared to the sample on the left upper end of the maximum coding unit 1760. If the coding unit 1770 is a coding unit corresponding to a coded depth, that is, a coding unit that is no longer split to a lower depth, the coding unit 1770 becomes a prediction unit 1770, and the location of the prediction unit 1770 may be expressed as a scan index puldx of the prediction unit 1770 compared to the sample on the left upper end of the maximum coding unit 1760.
The prediction unit 1770 may be split into at least one PU partition. A PU partition 1790 from among the PU partitions of the prediction unit 1770 may be expressed as a scan index puPartIdx of the PU partition 1790 compared to the sample on the left upper end of the prediction unit 1770. The prediction unit 1770 may include at least transformation units TUs. A transformation unit 1780 from among the transformation units of the prediction unit 1770 may be expressed as a scan index tuldx of the transformation unit 1780 compared to the sample on the left upper end of the prediction unit 1770.
A video encoding apparatus 100 according to an exemplary embodiment may use the locations and scan indices of a coding unit, a prediction unit, a partition, and a transformation unit described above with reference to
The scan index of the coding unit 1850 and the scan indices of the coding units CU0, CU1, CU2, and CU3 are expressed as scan indices of minimum units located on left upper ends of the coding unit 1850 and the coding units CU0, CU1, CU2, and CU3, and a scan index of a minimum unit represents an order that the minimum unit is scanned in a maximum coding unit. For example, the index culdx of the coding unit 1850 represents an index of a minimum unit on the left upper end of the coding unit 1850.
The size of a data unit such as a maximum coding unit, a coding unit, a prediction unit, a partition, or a transformation unit may be expressed as a number of minimum units thereof. For example, the number of minimum units arranged on a height (width) of a data unit may indicate the height (width) of the data unit.
Accordingly, since the scan indices of the coding units CU0, CU1, CU2, and CU3 correspond to locations apart from the left upper end of the coding unit 1850 by the coding units CU0, CU1, CU2, and CU3, the scan indices of the coding units CU0, CU1, CU2, and CU3 may be expressed using the sizes of the coding units CU0, CU1, CU2, and CU3 that increase from the scan index culdx of the coding unit 1850 in terms of the number of minimum units. In detail, the scan indices of the coding units CU0, CU1, CU2, and CU3 may be defined as follows:
(1) the scan index of the coding unit CU0 is cuIdx. Thus, the scan index of the coding unit CU0 is the same as that of the coding unit 1850, which is higher than the coding unit CU0 in terms of depths.
(2) the scan index of the coding unit CU1 increases from the scan index of the upper coding unit 1850 by the number of minimum units, CuSizeInSu/2, arranged on a width of the coding unit CU0. Thus, the scan index of the coding unit CU1 is cuIdx+CuSizeInSu/2.
(3) the scan index of the coding unit CU2 increases from the scan index of the upper coding unit 1850 by a product of the number of minimum units, CuSizeInSu/2, arranged on a height of the coding unit CU0 and the number of minimum units, LcuSizeInSu, arranged on a width of a maximum coding unit. Thus, the scan index of the coding unit CU2 is cuIdx+CuSizeInSu/2*LcuSizeInSu.
(4) the scan index of the coding unit CU3 increases from the scan index of the coding unit CU2 by a horizontal size CuSizeInSu/2 of the coding unit CU2. Thus, the scan index of the coding unit CU3 is cuIdx+CuSizeInSu/2+CuSizeInSu/2*LcuSizeInSu.
According to the present exemplary embodiment, zigzag scanning is performed among all of the coding units having a tree structure, and is also performed among coding units having the same depth.
Accordingly, a scanning order and scan indices of the coding units having a tree structure within the maximum coding unit 1900 may be defined as the order of from the coding units having a depth of 2 (1910→1912→1914→1916), to the coding units having a depth of 3 (1920→1922→1924→1926), to the coding units having a depth of 3 (1930→1932→1934→1936), to the coding units having a depth of 3 (1940→1942→1944→1946), to the coding units having a depth of 3 (1950→1953→1954→1956), to the coding units having a depth of 2 (1960→1962→1964→1966), and to the coding unit 1970 having a depth of 1.
A location of the prediction unit may be expressed as an index of a prediction unit which is defined according to a size of a minimum unit. Numerals 0, 1, 2, and 3 marked within the symmetrical partition types 2050, 2052, 2054, and 2056 and the asymmetrical partition types 2060, 2062, 2064, and 2066 are scan indices of partitions of the prediction unit.
An image data decoder 230 according to an exemplary embodiment may search for a location of a prediction unit based on a scan index of the prediction unit. In detail, the image data decoder 230 may search for a relative location of a pixel on the left upper end of the prediction unit compared to a sample on the left upper end of a maximum coding unit, by using the scan index of the prediction unit, the height and width of a minimum unit, and the size of the maximum coding unit.
The image data decoder 230 may search for a location of a PU partition based on a scan index of the PU partition. In detail, the image data decoder 230 may search for a relative location of a pixel on the left upper end of the PU partition compared to the sample on the left upper end of the prediction unit, by using the scan index of the PU partition, the height and width of a minimum unit, and the size of the prediction unit.
Similarly, the image data decoder 230 may search for a location of a transformation unit based on a scan index of the transformation unit. In detail, the image data decoder 230 may search for a relative location of a pixel on the left upper end of the transformation unit compared to the sample on the left upper end of the prediction unit, by using the scan index of the transformation unit, the height and width of a minimum unit, and the size of the prediction unit.
The data units adjacent to the current data unit X(2170) may be a left data unit A(2180), an upper data unit B(2182), aright upper data unit C(2184), a left upper data unit D(2186), and a left lower data unit E(2188).
The maximum coding units adjacent to the current maximum coding unit 2270 may be a left maximum coding unit 2280, an upper maximum coding unit 2282, a right upper maximum coding unit 2284, a left upper maximum coding unit 2286, and a left lower maximum coding unit 2288. The image data decoder 230 of the video decoding apparatus 200 may search for addresses and usabilities lcuAddrA, lcuAddrB, lcuAddrC, lcuAddrD, lcuAddrE of the adjacent maximum coding units 2280, 2282. 2284, 2286, and 2288. The adjacent maximum coding units 2280, 2282, 2284, 2286, and 2288 may be expressed as locations relative to an address CurrLcuAddr of the current maximum coding unit 2270.
An image data decoder 230 of the video decoding apparatus may check usability of each maximum coding unit. In a case other than case (i) where a maximum coding unit is not included in a current picture, case (ii) where a maximum coding unit is not included in a current slice, and case (iii) where an address of a maximum coding unit is later than that of a current maximum coding unit in terms of a scanning order, the data of the maximum coding unit may be found useable.
Referring to
In the zigzag scanning order, after the coding unit 2140 of a depth of 1 is decoded, a coding unit 2150 of a depth of 1 is decoded. Decoding of the coding unit 2150 of a depth of 1 is performed in the order of coding units 2152, 2154, and 2156 corresponding to a depth of 2. Since the coding unit 2144 of a depth of 2 exists on the left lower side of the coding unit 2156 having a depth of 2 and has already been decoded according to the zigzag scanning order, the coding unit 2144 of a depth of 2 may be referred to, as neighborhood information of the coding unit 2156 of a depth of 2. If the coding unit 2156 of a depth of 2 is no longer split to a lower depth, the coding unit 2156 becomes a prediction unit, and the prediction unit 2156 may be prediction-decoded by referring to the coding unit 2144 of a depth of 2.
According to a raster scanning method, the coding unit 2144 is decoded later than the coding unit 2156, and thus information about the coding unit 2144 may not be referred to when decoding the coding unit 2156.
For example, left neighborhood information, upper neighborhood information, and left upper neighborhood information of the current partition 2250 indicate minimum units 2262, 2260, and 2266 located on a left side, an upper side, and a left upper side of a minimum unit 2256 located on a left upper side of the current partition 2250.
Right upper neighborhood information of the current partition 2250 indicates a minimum unit 2264 located on a right upper side of a minimum unit 2254 located on a right upper side of the current partition 2250. Left lower neighborhood information of the current partition 2250 indicates a minimum unit 2268 located on a left lower side of a minimum unit 2256 located on a left lower side of the current partition 2250.
The image data decoder 230 of a video decoding apparatus 200 according to an exemplary embodiment may check a location and usability of a minimum unit or a maximum coding unit that is adjacent to a current partition. The address of the adjacent minimum unit or the location of the maximum coding unit may be expressed as an index of the minimum unit adjacent to the current partition or an address of a maximum coding unit including the adjacent minimum unit.
In a case other than case (i) where a maximum coding unit is not included in a current picture, case (ii) where a maximum coding unit is not included in a current slice, case (iii) where an address of a maximum coding unit is later than that of a current maximum coding unit in terms of a scanning order, or case (iv) where an index of a minimum unit on a left upper side of a deeper coding unit according to a zigzag scanning order is later than that of a current minimum unit according to a zigzag scanning order in terms of a scanning order, the data of the deeper coding unit may be found usable.
To search for neighborhood information of a current partition, an index of a minimum unit located on a left upper side, a right upper side, or a left lower side within the current partition may be considered, and splitting type information and information about a current depth are used. If all partitions are not the same in size, indices of partitions for a current prediction unit are used.
That is, referring to
That is, referring to
In a related art codec based on macroblocks complying with a raster scanning order, information about a neighborhood located on a left lower side of a current macroblock, that is, the motion information MV_E(2350) or the context pixel 2430, cannot be used as the neighborhood information.
However, a video encoding apparatus 100 and a video decoding apparatus 200 according to exemplary embodiments may refer to information about a neighborhood located on a left lower side of a current data unit since coding units according to hierarchical depths are encoded and decoded according to a zigzag scanning order. Thus, if the video encoding apparatus 100 and the video decoding apparatus 200 find the information about neighborhood located on the left lower side of the current data unit useable, the video encoding apparatus 100 and the video decoding apparatus 200 may refer to the neighborhood information when encoding or decoding the current data unit.
In operation 2520, at least one coded depth is determined by encoding image data corresponding to each maximum coding unit based on coding units hierarchically split as a depth increases, and a coding unit according to a tree structure is determined. The maximum coding unit is spatially split whenever the depth deepens, and thus is split into coding units of a lower depth. Each coding unit may be split into coding units of another lower depth by being spatially split independently from adjacent coding units. Encoding is repeatedly performed on each coding unit according to depths. Also, partition types and transformation units having a minimum encoding error are determined for each deeper coding unit. In order to determine a coded depth having a minimum encoding error in each maximum coding unit, encoding errors may be measured and compared in all deeper coding units according to depths.
The image data is encoded in consideration of a raster scanning order among maximum coding units and a zigzag scanning order between deeper coding units included in each of the maximum coding units. The image data may also be encoded by referring to useable neighborhood information in consideration of a scanning order among data units.
In operation 2530, encoded image data of the final encoding result according to the coded depth is output for each maximum coding unit, with encoded information about the coded depth and an encoding mode. The encoded information about the encoding mode may include information about a coded depth or split information, information about a partition type of a prediction unit, a prediction mode, and a size of a transformation unit. The encoded information about the encoding mode may be transmitted to a decoder with the encoded image data.
In operation 2620, encoded image data of a current picture assigned to a maximum coding unit is acquired from the parsed bitstream, and information about a coded depth and an encoding mode according to maximum coding units are extracted from the parsed bitstream.
The coded depth of each maximum coding unit is a depth having a minimum encoding error in each maximum coding unit. In encoding each maximum coding unit, the image data is encoded based on at least one data unit obtained by hierarchically splitting each maximum coding unit according to depths.
According to the information about the coded depth and the encoding mode, the maximum coding unit may be split into coding units having a tree structure. Each of the coding units having the tree structure is determined as a coding unit corresponding to a coded depth, and is optimally encoded as to output the minimum encoding error. Accordingly, encoding and decoding efficiency of an image may be improved by decoding each piece of encoded image data in the coding units having a tree structure after determining at least one coded depth according to coding units.
In operation 2530, the encoded image data of each maximum coding unit is decoded in consideration of a raster scanning order among maximum coding units and a zigzag scanning order between deeper coding units included in each of the maximum coding units. Locations of maximum coding units according to a raster scanning order and locations of deeper coding units according to a zigzag scanning order may be searched for, and indices of minimum units according to a zigzag scanning order and indices of minimum units according to a raster scanning order may be mutually transformed to each other.
Usability of neighborhood information may be checked and the neighborhood information may be referred to in order to decode a predetermined coding unit, in consideration of a scanning order of various hierarchical data units, such as a raster scanning order for maximum coding units or prediction units or a zigzag scanning order or a raster scanning order for minimum units. The neighboring information according to an exemplary embodiment may include information about a data unit located on a left lower side of a current data unit.
The decoded image data may be reproduced by a reproducing apparatus, stored in a storage medium, or transmitted through a network according to one or more exemplary embodiments.
Furthermore, one or more exemplary embodiments can be written as computer programs and can be implemented in general-use digital computers that execute the programs using a computer readable recording medium. Examples of the computer readable recording medium include magnetic storage media (e.g., ROM, floppy disks, hard disks, etc.) and optical recording media (e.g., CD-ROMs, or DVDs).
While exemplary embodiments have been particularly shown and described, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present inventive concept as defined by the appended claims. The exemplary embodiments should be considered in descriptive sense only and not for purposes of limitation. Therefore, the scope of the present inventive concept is defined not by the detailed description of exemplary embodiments, but by the appended claims, and all differences within the scope will be construed as being included in the present inventive concept.
Cheon, Min-su, Min, Jung-hye, Jung, Hae-kyung, Kim, Il-koo
Patent | Priority | Assignee | Title |
11356664, | Jun 01 2016 | Samsung Electronics Co., Ltd. | Methods and apparatuses for encoding and decoding video according to coding order |
11477451, | Jun 01 2016 | Samsung Electronics Co., Ltd. | Methods and apparatuses for encoding and decoding video according to coding order |
11622110, | Jun 01 2016 | Samsung Electronics Co., Ltd. | Methods and apparatuses for encoding and decoding video according to coding order |
11689730, | Jul 19 2017 | Samsung Electronics Co., Ltd. | Encoding method and apparatus therefor, decoding method and apparatus therefor |
Patent | Priority | Assignee | Title |
5021891, | Feb 27 1990 | QUALCOMM INCORPORATED A CORPORATION OF DELAWARE | Adaptive block size image compression method and system |
5999655, | Jul 11 1996 | U S PHILIPS CORPORATION | Method and apparatus for transmission of video pictures which are segmented to form maps of picture blocks of variable block sizes |
6195128, | Aug 25 1995 | Eidos Technologies Limited | Video processing for storage or transmission |
8086052, | May 20 2003 | Hybrid video compression method | |
8155197, | Aug 18 2006 | SOCIONEXT INC | Interframe prediction processor with mechanism for providing locations of reference motion vectors used in macroblock adaptive field/frame mode |
8532185, | Aug 14 2009 | Samsung Electronics Co., Ltd.; SAMSUNG ELECTRONICS CO , LTD | Method and apparatus for encoding video in consideration of scanning order of coding units having hierarchical structure, and method and apparatus for decoding video in consideration of scanning order of coding units having hierarchical structure |
8634456, | Oct 03 2008 | Qualcomm Incorporated | Video coding with large macroblocks |
8634465, | Aug 14 2009 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding video in consideration of scanning order of coding units having hierarchical structure, and method and apparatus for decoding video in consideration of scanning order of coding units having hierarchical structure |
8817877, | Aug 14 2009 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding video in consideration of scanning order of coding units having hierarchical structure, and method and apparatus for decoding video in consideration of scanning order of coding units having hierarchical structure |
8831098, | Aug 14 2009 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding video in consideration of scanning order of coding units having hierarchical structure, and method and apparatus for decoding video in consideration of scanning order of coding units having hierarchical structure |
8855202, | Sep 07 2003 | Microsoft Technology Licensing, LLC | Flexible range reduction |
8897363, | Aug 14 2009 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding video in consideration of scanning order of coding units having hierarchical structure, and method and apparatus for decoding video in consideration of scanning order of coding units having hierarchical structure |
20030142872, | |||
20030202602, | |||
20050114093, | |||
20070177813, | |||
20080043831, | |||
20080107178, | |||
20080240246, | |||
20090141803, | |||
20100020871, | |||
20100086029, | |||
20100208827, | |||
20130279578, | |||
20170280156, | |||
BR112012002244, | |||
CA2738037, | |||
CN101502119, | |||
CN1436003, | |||
CN1857001, | |||
JP2000502535, | |||
JP2003319394, | |||
JP2007516640, | |||
JP200848289, | |||
KR1020080041541, | |||
KR1020110010324, | |||
KR1020110017301, | |||
KR1020110017302, | |||
WO2004104930, | |||
WO2007034918, | |||
WO2007063612, | |||
WO2007079782, | |||
WO2007081176, | |||
WO2008054688, | |||
WO2009051719, | |||
WO2010002214, | |||
WO9803018, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Sep 14 2017 | Samsung Electronics Co., Ltd. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Sep 14 2017 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Feb 13 2023 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Sep 22 2023 | 4 years fee payment window open |
Mar 22 2024 | 6 months grace period start (w surcharge) |
Sep 22 2024 | patent expiry (for year 4) |
Sep 22 2026 | 2 years to revive unintentionally abandoned end. (for year 4) |
Sep 22 2027 | 8 years fee payment window open |
Mar 22 2028 | 6 months grace period start (w surcharge) |
Sep 22 2028 | patent expiry (for year 8) |
Sep 22 2030 | 2 years to revive unintentionally abandoned end. (for year 8) |
Sep 22 2031 | 12 years fee payment window open |
Mar 22 2032 | 6 months grace period start (w surcharge) |
Sep 22 2032 | patent expiry (for year 12) |
Sep 22 2034 | 2 years to revive unintentionally abandoned end. (for year 12) |