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.

Patent
   RE48224
Priority
Aug 14 2009
Filed
Sep 14 2017
Issued
Sep 22 2020
Expiry
Aug 13 2030

TERM.DISCL.
Assg.orig
Entity
Large
4
47
currently ok
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 claim 1 further comprises referring to neighborhood information by checking usability of the neighborhood information, in consideration of a scanning order of the maximum coding unit, and coding units having same coded depth included in the maximum coding unit.
3. The method of claim 1 further comprises checking usability of the coding units of the maximum coding unit.

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 FIGS. 14 through 27.

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.

FIG. 14 illustrates a raster scanning order of a maximum coding unit 1610, according to an exemplary embodiment. Referring to FIG. 14, the maximum coding unit 1610 is scanned from a left end of a picture 1600 to a right end of the picture 1600, and from an upper end of the picture 1600 to a lower end of the picture, according to the raster scanning order. Accordingly, according to the 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 upper side of the current maximum coding unit has already been scanned, but a maximum coding unit located on the right side or lower side of the current maximum coding unit has not yet been scanned.

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 FIG. 9. According to the depths 0 through d−1, the partitions of coding units according to depths comply with a raster scanning order. For example, if the depth is 0, a partition type 914 having a size of 2N×N_0 and a partition type 916 having a size of N_0×2N_0 are each scanned in such as way that partitions having indices of 0 and 1 are scanned in an index order. A partition type 918 having a size of N_0×N_0 is scanned in such as way that partitions having indices of 0, 1, 2, and 3 are scanned in an index order.

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. FIG. 15 illustrates minimum units 1710 complying with a raster scanning order according to an exemplary embodiment, and FIG. 16 illustrates minimum units 1810 complying with a zigzag scanning order according to an exemplary embodiment.

Referring to FIG. 15, the minimum units 1710 are scanned in a raster scanning order, namely, from a left end of a maximum coding unit 1700 to a right end thereof and from an upper end thereof to a lower end thereof. Thus, scanning is performed starting from the minimum unit 1710 on the upper end and in an order of minimum units having indices of 0, 1, 2, 3, 4, 5, 6, and 7 from the left end to the right end. Then, the scanning moves down and is performed in an order of minimum units having indices of 8, 9, 10, 11, 12, 13, 14, and 15. The scanning moves down again and is performed in an order of minimum units having indices of 16, 17, 18, and 19.

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 FIG. 16, scanning in a zigzag scanning order is performed among coding units corresponding to the same depth. For example, a maximum coding unit 1800 has a depth of 0, and the minimum units 1810 have a depth of 3. Four minimum units are grouped, and zigzag scanning may be performed in units of the group. In other words, minimum units 1810 having indices of 0, 1, 2, and 3 are scanned in a zigzag scanning order, and minimum units 1810 having indices of 4, 5, 6, and 7 are scanned in a zigzag scanning order.

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.

FIG. 17 illustrates a relationship between locations and scan indices of a coding unit, a prediction unit, a partition, and a transformation unit, according to an embodiment of the present invention. Referring to FIG. 17, a picture is split into slices, and a slice 1750 includes a plurality of maximum coding units LCUs. A location lcuAddr of a maximum coding unit 1760 from among the maximum coding units LCUs included in the slice 1750 may be expressed as a relative location of a sample on the left upper end of the maximum coding unit 1760 compared to a sample on the left upper end of the slice 1750.

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 FIG. 17, in order to perform video encoding. A video decoding apparatus 200 according to an exemplary embodiment may decode encoded data of an image based on coding units having a tree structure, by using the locations and scan indices of a coding unit, a prediction unit, a partition, and a transformation unit.

FIG. 18 illustrates a scan index of a coding unit 1850, according to an exemplary embodiment. Referring to FIG. 18, the coding unit 1850 has a height of CUSize and a width of CUSize, and as the depth of the coding unit 1850 increases one level, the coding unit 1850 may be split into four coding units CU0, CU1, CU2, and CU3 corresponding to a lower depth. The coding units CU0, CU1, CU2, CU3 each have a height of CUSize/2 and a width of CUSize/2.

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.

FIG. 19 illustrates a scanning order of coding units according to scan indices of coding units, according to an exemplary embodiment. Referring to FIG. 19, coding units having a tree structure within a maximum coding unit 1900 may each have the same size as that of a minimum unit or may be repeatedly split until, for example, further splitting is not allowed or possible. The coding units having a tree structure within the maximum coding unit 1900 may include a coding unit 1970 having a depth of 1, coding units 1910, 1912, 1914, and 1916 having a depth of 2, coding units 1960, 1962, 1964, and 1966 having a depth of 2, and coding units 1920, 1922, 1924, 1926, 1930, 1932, 1934, 1936, 1940, 1942, 1944, 1946, 1950, 1953, 1954, and 1956 having a depth of 3.

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 (1910191219141916), to the coding units having a depth of 3 (1920192219241926), to the coding units having a depth of 3 (1930193219341936), to the coding units having a depth of 3 (1940194219441946), to the coding units having a depth of 3 (1950195319541956), to the coding units having a depth of 2 (1960196219641966), and to the coding unit 1970 having a depth of 1.

FIG. 20 illustrates scan indices of partitions of a prediction unit according to partition types, according to an exemplary embodiment. Referring to FIG. 20, the partitions of the prediction unit may be defined as symmetrical partition types 2050, 2052, 2054, and 2056 and asymmetrical partition types 2060, 2062, 2064, and 2066 according to ratios at which at least one of a height and a width of the prediction unit is split.

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.

FIG. 21 illustrates data units that may be used as neighborhood information of a current data unit 2170 according to an exemplary embodiment. Referring to FIG. 21, a video encoding apparatus 100 and a video decoding apparatus 200 according to exemplary embodiments may refer to data units adjacent to the current data unit 2170 when encoding and decoding the current data unit 2170. A data unit is a maximum coding unit, a coding unit, a prediction unit, or a partition.

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).

FIG. 22 illustrates maximum coding units adjacent to a current maximum coding unit 2270 according to an exemplary embodiment. Referring to FIG. 22, a video encoding apparatus 100 according to an exemplary embodiment may refer to maximum coding units adjacent to the current maximum coding unit 2270 when encoding the current maximum coding unit 2270. A video decoding apparatus 200 according to an exemplary embodiment may refer to the maximum coding units adjacent to the current maximum coding unit 2270 when decoding the current maximum coding unit 2270.

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.

FIG. 23 illustrates macroblocks complying with a raster scanning method. A related art codec such as H.264 uses macroblocks that each have a maximum size of 16×16 to serve as a unit in which data is encoded. Referring to FIG. 23, although a current macroblock 2010 existing in a picture 2000 may be decoded by referring to neighboring macroblocks existing in the same picture 2000, since macroblocks are decoded in a raster scanning order, a macroblock 2020 located on a left lower side of the current macroblock 2010 has not yet been decoded and thus cannot be referred to by the current macroblock 2010. Hereinafter, when an adjacent data unit cannot be referred to by a current coding unit because it has not yet been decoded, the adjacent data unit is defined to be not useable.

FIG. 24 illustrates a current prediction unit 2156 complying with a zigzag scanning order, according to an exemplary embodiment. In an encoding method, since macroblocks are scanned according to a raster scanning method, a second macroblock may not refer to information about a first macroblock scanned later than the second macroblock. However, a video encoding apparatus 100 according to an exemplary embodiment may refer to the first macroblock as neighboring information of the second macroblock in order to encode the second macroblock.

Referring to FIG. 24, taking a picture 2100 as an example, a maximum coding unit having a size of 64×64 is decoded in a zigzag scanning order of coding units 2110, 2120, 2130, and 2140 corresponding to a depth of 1. Furthermore, coding units 2142, 2144, 2146, and 2148 corresponding to a depth of 2 in the coding unit 2140 corresponding to a depth of 1 are also scanned in a zigzag order.

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.

FIG. 25 illustrates minimum units adjacent to a current partition, according to an exemplary embodiment. Referring to FIG. 25, maximum coding units 2210, 2220, and 2230 corresponding to a depth of 0 exist, and a minimum coding unit 2240 is set to have a depth of 3. Neighborhood information of a current partition 2250 of a current maximum coding unit 2210 indicates an external minimum unit adjacent to a minimum unit in the current partition 2250.

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.

FIG. 26 is a diagram for explaining a motion vector predicting method using neighborhood information, according to an exemplary embodiment. A video encoding apparatus 100 and a video decoding apparatus 200 according to exemplary embodiments may refer to a motion vector of a prediction unit adjacent to a current prediction unit when performing motion prediction based on an inter mode.

That is, referring to FIG. 26, to predict motion information of a current prediction unit 2300, pieces of motion information MV_A(2310), MV_B(2320), MV_C(2330), MV_D(2340), and MV_E(2350) of prediction units adjacent to the current prediction unit 2300 may be referred to. The motion information pieces MV_A(2310), MV_B(2320), MV_C(2330), MV_D(2340), and MV_E(2350) are neighborhood information of the current prediction unit 2300, i.e., information about prediction units located on a left side, an upper side, a right upper side, a left upper side, and a left lower side of the current prediction unit 2300. The motion information pieces MV_A(2310), MV_B(2320), MV_C(2330), MV_D(2340), and MV_E(2350) may be searched for by using respective encoding information of minimum units of corresponding prediction units.

FIG. 27 illustrates an interpolating method using neighborhood information, according to an exemplary embodiment. A video encoding apparatus 100 and a video decoding apparatus 200 according to exemplary embodiments may refer to a pixel value of a pixel on a boundary of a prediction unit adjacent to a current prediction unit when performing prediction encoding based on an ultra mode.

That is, referring to FIG. 27, a pixel value of a current prediction unit 2400 may be predicted by referring to pixel values of pixels on a boundary of data units adjacent to the current prediction unit 2400, i.e., context pixels 2410 and 2420. The context pixel 2430 is neighborhood information of the current prediction unit 2400, i.e., information of pixels located on a left lower side of the current prediction unit 2400.

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.

FIG. 28 is a flowchart illustrating a method of encoding a video by referring to neighborhood information, according to an exemplary embodiment. Referring to FIG. 28, in operation 2510, a current picture is split into at least one maximum coding 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.

FIG. 29 is a flowchart illustrating a method of decoding a video by referring to neighborhood information, according to an exemplary embodiment. Referring to FIG. 29, in operation 2610, a bitstream of an encoded video is received and parsed.

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 onAssignorAssigneeConveyanceFrameReelDoc
Sep 14 2017Samsung Electronics Co., Ltd.(assignment on the face of the patent)
Date Maintenance Fee Events
Sep 14 2017BIG: Entity status set to Undiscounted (note the period is included in the code).
Feb 13 2023M1552: Payment of Maintenance Fee, 8th Year, Large Entity.


Date Maintenance Schedule
Sep 22 20234 years fee payment window open
Mar 22 20246 months grace period start (w surcharge)
Sep 22 2024patent expiry (for year 4)
Sep 22 20262 years to revive unintentionally abandoned end. (for year 4)
Sep 22 20278 years fee payment window open
Mar 22 20286 months grace period start (w surcharge)
Sep 22 2028patent expiry (for year 8)
Sep 22 20302 years to revive unintentionally abandoned end. (for year 8)
Sep 22 203112 years fee payment window open
Mar 22 20326 months grace period start (w surcharge)
Sep 22 2032patent expiry (for year 12)
Sep 22 20342 years to revive unintentionally abandoned end. (for year 12)