Encoding method and device thereof, decoding method and device thereof

JP2025041896AActive Publication Date: 2025-03-26SAMSUNG ELECTRONICS CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2024229563
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2018-02-09
Filing Date
2024-12-26
Publication Date
2025-03-26
Estimated Expiration
2039-01-02

AI Technical Summary

Benefits of technology

【0018】 量子化グループまたは量子化パラメータユニットにより、ブロックの量子化パラメータを決定することにより、量子化パラメータ決定に必要な情報が効率的に圧縮されるのである。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025041896000001_ABST
    Figure 2025041896000001_ABST
Patent Text Reader

Abstract

To provide a method for efficiently encoding and decoding information about motion vectors.SOLUTION: A video decoding method includes the steps of determining a predicted quantization parameter of a current quantization group determined on the basis of at least one of block division information and block size information, determining a differential quantization parameter of the current quantization group, determining a quantization parameter of the current quantization group on the basis of the predicted quantization parameter and the differential quantization parameter of the current quantization group, and inverse-quantizing a current block included in the current quantization group on the basis of the quantization parameter of the current quantization group.SELECTED DRAWING: Figure 20
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to video encoding and decoding methods, and more particularly to a method for efficiently encoding and decoding information about motion vectors. [Background technology]

[0002] A high quality image requires a large amount of data when it is encoded. However, the bandwidth allowed for transmitting image data is limited, and the data rate applied when transmitting the image data is restricted. Therefore, for efficient image data transmission, a method for encoding and decoding image data with an increased compression rate while minimizing degradation of image quality is required.

[0003] Video data is also compressed by removing spatial and temporal redundancy between pixels. Since adjacent pixels generally have common characteristics, coding information is transmitted in units of pixel data to remove the redundancy between adjacent pixels.

[0004] The pixel values ​​of the pixels included in the data unit are not directly transmitted, but a method required to obtain the pixel values ​​is transmitted. A prediction method for predicting a pixel value similar to an original value is determined for each data unit, and coding information related to the prediction method is transmitted from the encoder to the decoder. Also, since the predicted value is not completely the same as the original value, residual data related to the difference between the original value and the predicted value is transmitted from the encoder to the decoder.

[0005] As prediction becomes more accurate, the amount of coding information required to specify a prediction method increases, but the size of residual data decreases. Therefore, a prediction method is determined taking into consideration the sizes of coding information and residual data. In particular, data units divided from a picture have various sizes, and as the data unit becomes larger, the accuracy of prediction is more likely to decrease, but the amount of coding information decreases. Therefore, the size of a block is determined to suit the characteristics of a picture.

[0006] Prediction methods include intra prediction and inter prediction. Intra prediction is a method of predicting pixels of a block from pixels surrounding the block. Inter prediction is a method of predicting pixels by referring to pixels of other pictures referenced by the picture containing the block. Thus, spatial redundancy is eliminated by intra prediction, and temporal redundancy is eliminated by inter prediction.

[0007] As the number of prediction methods increases, the amount of coding information to indicate the prediction methods increases. Therefore, the coding information applied to a block can also be predicted from other blocks to reduce the size of the coding information.

[0008] Loss of image data is permitted to the extent that it cannot be perceived by human vision, but the amount of residual data can be reduced by lossy compression through conversion and quantization processes. Summary of the Invention [Problem to be solved by the invention]

[0009] A video encoding method and a video encoding device are disclosed that determine quantization parameters of a quantization group based on block division information and block size information. Also, a video decoding method and a video decoding device are disclosed that determine quantization parameters of a quantization group based on block division information and block size information.

[0010] Also disclosed are a video encoding method and a video encoding device that perform matching between a current block and a current quantization parameter unit based on at least one of a position and a size of the current block. Also disclosed are a video decoding method and a video decoding device that perform matching between a current block and a current quantization parameter unit based on at least one of a position and a size of the current block.

[0011] Additionally, a computer-readable recording medium having a program recorded thereon for causing a computer to execute the video encoding method and the video decoding method according to an embodiment of the present disclosure is disclosed. [Means for solving the problem]

[0012] The present invention provides a video decoding method, including a step of determining a predicted quantization parameter of a current quantization group determined according to at least one of block division information and block size information, a step of determining a differential quantization parameter of the current quantization group, a step of determining a quantization parameter of the current quantization group based on the predicted quantization parameter and the differential quantization parameter of the current quantization group, and a step of inverse quantizing a current block included in the current quantization group using the quantization parameter of the current quantization group.

[0013] A video decoding device is provided, the video decoding device including a processor that determines a predicted quantization parameter of a current quantization group determined by at least one of block division information and block size information, determines a differential quantization parameter of the current quantization group, determines a quantization parameter of the current quantization group based on the predicted quantization parameter and the differential quantization parameter of the current quantization group, and inverse quantizes the current block using the quantization parameter of the current quantization group.

[0014] The present invention provides a video decoding method, including: matching a current block with a current quantization parameter unit based on at least one of a position and a size of the current block; obtaining a predicted quantization parameter related to the current quantization parameter unit; obtaining a differential quantization parameter related to the current quantization parameter unit; determining a quantization parameter of the current quantization parameter unit based on the predicted quantization parameter and the differential quantization parameter; and inverse quantizing the current block using the quantization parameter of the current quantization parameter unit.

[0015] The present invention provides a video decoding apparatus, comprising: a processor for matching a current block with a current quantization parameter unit based on at least one of a position and a size of the current block, obtaining a predicted quantization parameter related to the current quantization parameter unit, obtaining a differential quantization parameter related to the current quantization parameter unit, determining a quantization parameter of the current quantization parameter unit based on the predicted quantization parameter and the differential quantization parameter, and inverse quantizing the current block using the quantization parameter of the current quantization parameter unit.

[0016] A computer-recordable recording medium having a program for performing the video encoding method and the video decoding method recorded thereon is provided.

[0017] The technical problems faced by the present embodiment are not limited to those described above, and other technical problems may be inferred from the following embodiments. Effect of the Invention

[0018] By determining the quantization parameters of the blocks using the quantization group or the quantization parameter unit, the information required for determining the quantization parameters is efficiently compressed. [Brief description of the drawings]

[0019] [Figure 1A] FIG. 1 illustrates a block diagram of a video encoding device based on a coding unit according to a tree structure, according to one embodiment of the present disclosure. [Figure 1B] FIG. 2 illustrates a block diagram of a video decoding device based on a coding unit according to a tree structure, according to one embodiment. [Diagram 2] 1 is a diagram illustrating a process in which a current coding unit is divided and at least one coding unit is determined, according to one embodiment. [Diagram 3] 1 illustrates a process in which a coding unit having a non-square shape is divided to determine at least one coding unit according to one embodiment. [Figure 4] 1 is a diagram illustrating a process of dividing a coding unit based on at least one of block configuration information and division configuration information according to an embodiment; [Diagram 5] 1 is a diagram illustrating a method for determining a predetermined coding unit among an odd number of coding units, according to one embodiment; [Figure 6] 10 is a diagram illustrating an order in which a plurality of coding units are processed when a current coding unit is divided and a plurality of coding units are determined, according to one embodiment. [Figure 7] 11 is a diagram illustrating a process of determining to divide a current coding unit into an odd number of coding units when coding units cannot be processed in a predetermined order, according to one embodiment. [Figure 8] 1 illustrates a process in which a first coding unit is divided to determine at least one coding unit according to one embodiment. [Figure 9] FIG. 13 is a diagram illustrating that, according to one embodiment, when a non-square second coding unit determined by dividing a first coding unit satisfies certain conditions, the manner in which the second coding unit may be divided is restricted. [Figure 10] 11 is a diagram illustrating a process of dividing a square-shaped coding unit when division form information does not indicate division into four square-shaped coding units according to one embodiment. FIG. [Figure 11] 1 is a diagram illustrating that a processing order among a plurality of coding units may differ depending on a division process of the coding units, according to an embodiment. [Figure 12] A diagram illustrating a process in which the depth of a coding unit is determined as the shape and size of the coding unit change when a coding unit is recursively divided and multiple coding units are determined according to one embodiment. [Figure 13] 1 is a diagram illustrating a depth determined according to the shape and size of a coding unit, and an index (PID: part index) for coding unit partitioning, according to one embodiment. [Figure 14]4 is a diagram illustrating a number of coding units being determined according to a number of predetermined data units included in a picture, according to one embodiment; FIG. [Figure 15] FIG. 1 illustrates processing blocks that are used to determine the order in which reference coding units included in a picture are determined, according to one embodiment. [Figure 16] FIG. 1 is a diagram showing a video decoding device that determines a quantization parameter for a block and decodes residual data of the block using the determined quantization parameter. [Figure 17A] 11A and 11B are diagrams illustrating an embodiment in which a quantization group is determined by the number of quadtree divisions. [Figure 17B] 11A and 11B are diagrams illustrating an embodiment in which a quantization group is determined by the number of quadtree divisions. [Figure 17C] 11A and 11B are diagrams illustrating an embodiment in which a quantization group is determined by the number of quadtree divisions. [Figure 17D] 11A and 11B are diagrams illustrating an embodiment in which a quantization group is determined by the number of quadtree divisions. [Figure 18A] FIG. 1 illustrates one embodiment of a method for determining quantization groups in a largest coding block where non-quadtree partitioning is applied. [Figure 18B] FIG. 1 illustrates one embodiment of a method for determining quantization groups in a largest coding block where non-quadtree partitioning is applied. [Figure 18C] FIG. 1 illustrates one embodiment of a method for determining quantization groups in a largest coding block where non-quadtree partitioning is applied. [Figure 19] 13 is a diagram illustrating a syntax structure for a method of decoding a differential quantization parameter included in a bitstream when both quadtree partitioning and non-quadtree partitioning are allowed. FIG. [Figure 20] 1 is a diagram illustrating a video decoding method for determining a quantization parameter of a block according to a quantization group and decoding residual data of the block according to the determined quantization parameter. [Figure 21]FIG. 1 illustrates one embodiment of a quantization parameter unit structure and a coding block tree structure. [Figure 22A] 13 is a diagram illustrating a method for determining a quantization parameter unit corresponding to a current block. [Figure 22B] 13 is a diagram illustrating a method for determining a quantization parameter unit corresponding to a current block. [Figure 23A] 1 illustrates the correspondence between blocks and quantization parameter units. [Figure 23B] 1 illustrates the correspondence between blocks and quantization parameter units. [Figure 24] 1 is a diagram illustrating a video decoding method for determining a quantization parameter of a block using a quantization parameter unit and decoding residual data of the block using the determined quantization parameter. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0020] A video decoding method is provided, the method including: determining a predicted quantization parameter of a current quantization group determined according to at least one of block division information and block size information; determining a differential quantization parameter of the current quantization group; determining a quantization parameter of the current quantization group based on the predicted quantization parameter of the current quantization group and the differential quantization parameter; and dequantizing a current block included in the current quantization group using the quantization parameter of the current quantization group. Also provided is a video decoding device including a process for performing the video decoding method.

[0021] A video decoding method is provided, the method including: matching a current block with a current quantization parameter unit based on at least one of a position and a size of the current block; obtaining a predicted quantization parameter for the current quantization parameter unit; obtaining a differential quantization parameter for the current quantization parameter unit; determining a quantization parameter for the current quantization parameter unit based on the predicted quantization parameter and the differential quantization parameter; and dequantizing the current block using the quantization parameter of the current quantization parameter unit. Also provided is a video decoding device including a process for performing the video decoding method.

[0022] The advantages, features, and methods of achieving the disclosed embodiments will become clear with reference to the embodiments described below in conjunction with the accompanying drawings. However, the present disclosure is not limited to the embodiments disclosed below, and may be embodied in various different forms, and the present embodiments are provided only to complete the disclosure of the present disclosure and to fully inform those skilled in the art of the scope of the invention.

[0023] The terms used in this specification are briefly explained, and the disclosed embodiments are specifically explained.

[0024] The terms used in this specification are currently common terms that are used as much as possible while taking into consideration the functions in this disclosure, but they may vary depending on the intentions of engineers in the relevant fields, precedents, or the emergence of new technologies. In addition, in certain cases, the applicant may arbitrarily select a term, and in such cases, the meaning of the term will be described in detail in the description of the invention. Therefore, the terms used in this disclosure must be defined based on the meaning that the term has and the overall content of this disclosure, rather than simply the name of the term.

[0025] In this specification, the singular expression includes the plural expression unless the context clearly specifies otherwise.

[0026] Throughout the specification, when a part "includes" a certain component, it does not mean excluding other components, and may further include other components, unless otherwise specified to the contrary. In addition, the term "module" used in the specification means a software, a hardware component such as an FPGA or an ASIC, and a "module" performs a certain function. However, the meaning of "module" is not limited to software or hardware. A "module" may also be configured to be in an addressable recording medium and to execute one or more processors. Thus, by way of example, a "module" includes components such as software components, object-oriented software components, class components, and task components, as well as processes, functions, attributes, procedures, subroutines, program code segments, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, and variables. The functions provided in the components and "modules" may be further combined into fewer components and "modules" or further separated into additional components and "modules".

[0027] The term "current block" refers to one of a coding unit, a prediction unit, and a transform unit that is currently being coded or decoded. If it is necessary to distinguish other types of blocks such as a prediction unit and a transform unit for convenience of explanation, the terms "current coding block", "current prediction block", and "current transform block" may also be used. In addition, the term "lower block" refers to a data unit divided from the "current block". And the term "upper block" refers to a data unit including the "current block".

[0028] Hereinafter, a "sample" refers to data assigned to a sampling position of an image and to data to be processed. For example, in a spatial domain image, a pixel value and a transform coefficient in a transform domain are also samples. A unit including at least one such sample can be defined as a block.

[0029] Hereinafter, the present disclosure will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily carry out the present disclosure. In the drawings, portions that are not related to the description will be omitted in order to clearly explain the present disclosure.

[0030] FIG. 1A illustrates a block diagram of a video coding device 100 based on a tree-structured coding unit, according to one embodiment of the present disclosure.

[0031] The video encoding device 100 includes an encoding unit 110 and a bitstream generation unit 120 .

[0032] The encoding unit 110 divides a picture or a slice included in a picture into a plurality of maximum coding units according to the size of the maximum coding unit. The maximum coding unit is a data unit of size such as 32x32, 64x64, 128x128, or 256x256, and is also a square data unit whose vertical and horizontal dimensions are a square of 2. The encoding unit 110 may provide maximum coding unit size information indicating the size of the maximum coding unit to the bitstream generation unit 120. Then, the bitstream generation unit 120 may include the maximum coding unit size information in the bitstream.

[0033] The encoding unit 110 divides the maximum coding unit to determine the coding unit. Whether or not to divide the coding unit is determined depending on whether or not the division of the coding unit is efficient through rate-distortion optimization. Then, division information indicating whether or not the coding unit is divided can be generated. The division information can also be expressed in the form of a flag.

[0034] The coding units are also divided in various ways. For example, a square coding unit is also divided into four square coding units with half the width and half the height. The square coding unit is also divided into two rectangular coding units with half the width. The square coding unit is also divided into two rectangular coding units with half the height. The square coding unit is also divided into three coding units by dividing the width or height 1:2:1.

[0035] A rectangular coding unit whose width is twice its height is also split into two square coding units. A rectangular coding unit whose width is twice its height is also split into two rectangular coding units whose width is four times its height. A rectangular coding unit whose width is twice its height is also split into two rectangular coding units and one square coding unit by splitting the width 1:2:1.

[0036] Similarly, a rectangular coding unit whose height is twice its width is also split into two square coding units, a rectangular coding unit whose height is twice its width is also split into two rectangular coding units whose height is four times its width, and a rectangular coding unit whose height is twice its width is also split into two rectangular coding units and one square coding unit by splitting the height 1:2:1.

[0037] When two or more partition methods are available in the video encoding device 100, information on a partition method to be used for a coding unit among the partition methods available in the video encoding device 100 is also determined for each picture. Thus, it is also determined that only a specific partition method is to be used for each picture. If the video encoding device 100 uses only one partition method, information on a partition method to be used for a coding unit is not separately determined.

[0038] For coding units of a certain size, they are also divided according to a certain division method, for example, if the coding unit size is 256x265, the coding unit is also set to be divided only into four square coding units with half the width and height.

[0039] When the partition information of the coding unit indicates that the coding unit is partitioned, partition form information indicating a partitioning method of the coding unit may be generated. If there is only one partitioning method that can be used in the picture to which the coding unit belongs, the partition form information is not generated. If the partitioning method is adaptively determined based on the coding information around the coding unit, the partition form information is not generated.

[0040] As described above, the video data of the current picture is divided into maximum coding units according to the maximum size of the coding unit. The maximum coding units may include coding units hierarchically divided from the maximum coding unit. The type and position of the lower coding units may be determined according to the division type of the higher coding units. A minimum size of the coding units that limits the division of the coding units may also be preset.

[0041] The encoding unit 110 compares the coding efficiency when the coding unit is hierarchically divided with the coding efficiency when the coding unit is not divided. Then, the encoding unit 110 determines whether to divide the coding unit based on the comparison result. If it is determined that dividing the coding unit is more efficient, the encoding unit 110 divides the coding unit hierarchically. If it is determined that it is more efficient not to divide the coding unit based on the comparison result, the encoding unit 110 does not divide the coding unit. Whether to divide the coding unit is determined independently of whether other adjacent coding units are divided.

[0042] The final divided coding unit is predicted by intra prediction or inter prediction. The intra prediction is a method of predicting samples of the prediction unit using reference samples around the prediction unit. The inter prediction is a method of predicting samples of the prediction unit by obtaining reference samples from a reference picture referred to by the current picture.

[0043] For intra prediction, the encoding unit 110 may apply a plurality of intra prediction methods to a prediction unit and select the most efficient intra prediction method, which may include a DC mode, a planar mode, and a directional mode such as a vertical mode and a horizontal mode.

[0044] The intra prediction is also performed for each prediction unit when a reconstructed sample around the coding unit is used as a reference sample. However, when a reconstructed sample within the coding unit is used as a reference sample, the reconstruction of the reference sample within the coding unit must take precedence over prediction, so the prediction order of the prediction unit may depend on the transformation order of the transformation unit. Therefore, when a reconstructed sample within the coding unit is used as a reference sample, only the intra prediction method related to the transformation unit corresponding to the prediction unit is determined for the prediction unit, and the actual intra prediction is also performed for each transformation unit.

[0045] The encoding unit 110 may select the most efficient inter prediction method by determining the optimal motion vector and reference picture. The coding unit determination unit 120 may determine a plurality of motion vector candidates from coding units spatially and temporally adjacent to the current coding unit for inter prediction, and determine the most efficient motion vector among them as a motion vector. Similarly, a plurality of reference picture candidates may be determined from coding units spatially and temporally adjacent to the current coding unit, and determine the most efficient reference picture among them. According to this embodiment, the reference picture may also be determined from a reference picture list determined in advance for the current picture. According to this embodiment, for prediction accuracy, the most efficient motion vector among the plurality of motion vector candidates may be determined as a predicted motion vector, and the predicted motion vector may be corrected to determine a motion vector. The inter prediction may also be performed in parallel for each prediction unit within the coding unit.

[0046] The encoder 110 may obtain only information indicating a motion vector and a reference picture and restore a coding unit by using the skip mode. According to the skip mode, all coding information including a residual signal is omitted except for information indicating a motion vector and a reference picture. Since the residual signal is omitted, the skip mode may be used when the accuracy of prediction is very high.

[0047] The partition mode used may be restricted depending on the prediction method related to the prediction unit. For example, only partition modes related to prediction units of 2Nx2N and NxN sizes may be applied to intra prediction, while partition modes related to prediction units of 2Nx2N, 2NxN, Nx2N, and NxN sizes may be applied to inter prediction. Also, only partition modes related to prediction units of 2Nx2N sizes may be applied to the skip mode of inter prediction. In the video encoding device 100, the partition modes allowed for each prediction method may also be changed depending on the encoding efficiency.

[0048] The video encoding device 100 may perform conversion based on a coding unit. The video encoding device 100 may convert residual data, which is a difference between an original value and a predicted value of a pixel included in a coding unit, through a predetermined process. For example, the video encoding device 100 may perform lossy compression on the residual data through quantization and DCT / DST transformation. Alternatively, the video encoding device 100 may perform lossless compression on the residual data without quantization.

[0049] In conclusion, the encoding unit 110 determines the most efficient prediction method for the current coding unit from among a plurality of intra prediction methods and inter prediction methods. Then, the encoding unit 110 determines the prediction method for the current coding unit according to the coding efficiency according to the prediction result. Similarly, the encoding unit 110 can determine the conversion method according to the coding efficiency according to the conversion result. The coding efficiency of the coding unit is finally determined according to the method of determining the most efficient prediction method and conversion method for the coding unit. The encoding unit 110 determines the hierarchical structure of the maximum coding unit according to the coding efficiency of the finally divided coding unit.

[0050] The encoding unit 110 can measure the coding efficiency of a coding unit and the prediction efficiency of a prediction method by using a rate-distortion optimization technique based on a Lagrangian multiplier.

[0051] The encoding unit 110 may generate partition information indicating whether the coding unit is partitioned according to the determined hierarchical structure of the maximum coding unit. Then, the encoding unit 110 may generate partition mode information for determining a prediction unit and transform unit partition information for determining a transform unit for the coding unit for which partitioning has been completed. Also, when there are two or more partition methods for the coding unit, the encoding unit 110 may generate partition form information indicating the partition method together with the partition information. Then, the encoding unit 110 may generate information regarding the prediction method and transform method used for the prediction unit and the transform unit.

[0052] The bitstream generator 120 can output the information generated by the encoder 110 in the form of a bitstream according to the hierarchical structure of the maximum coding unit.

[0053] A method for determining a coding unit, a prediction unit, and a transform unit based on a tree structure of a maximum coding unit according to an embodiment will be described in detail below with reference to FIGS.

[0054] FIG. 1B illustrates a block diagram of a tree-structured coding unit based video decoder 150 according to one embodiment.

[0055] The video decoding device 150 includes a receiving unit 160 and a decoding unit 170 .

[0056] Definitions of various terms such as a coding unit, a prediction unit, a transform unit, and various partition information for a decoding operation of the video decoder 150 according to an embodiment are the same as those described with reference to FIG 1 and the video encoder 100. In addition, although the purpose of the video decoder 150 is to restore video data, various encoding methods used in the video encoder 100 can also be applied to the video decoder 150.

[0057] The receiving unit 160 receives and parses a bitstream related to a coded image. The decoding unit 170 extracts information required for decoding for each maximum coding unit from the parsed bitstream and provides the information to the decoding unit 170. The decoding unit 170 may extract information regarding the maximum size of the coding unit of the current picture from a header, a sequence parameter set, or a picture parameter set related to the current picture.

[0058] In addition, the decoding unit 170 extracts partition information related to the coding unit according to a tree structure for each maximum coding unit from the parsed bitstream. The extracted partition information is output to the decoding unit 170. The decoding unit 170 may divide the maximum coding unit according to the extracted partition information and determine the tree structure of the maximum coding unit.

[0059] The partition information extracted by the decoding unit 170 is partition information for a tree structure determined to generate the minimum coding error by the video encoding device 100. Therefore, the video decoding device 150 can decode the data by the coding method that generates the minimum coding error, and restore the video.

[0060] The decoder 170 may extract partition information related to a data unit, such as a prediction unit and a transform unit, included in a coding unit. For example, the decoder 170 may extract information related to the most efficient partition mode related to the prediction unit. The decoder 170 may also extract transform partition information related to the most efficient tree structure in the transform unit.

[0061] In addition, the decoding unit 170 can obtain information on the most efficient prediction method for a prediction unit divided from a coding unit, and can obtain information on the most efficient transform method for a transform unit divided from a coding unit.

[0062] The decoding unit 170 extracts information from the bitstream using the method used by the bitstream generation unit 120 of the video encoding device 100 to generate a bitstream.

[0063] The decoding unit 170 can divide the largest coding unit into coding units having the most efficient tree structure based on the division information. The decoding unit 170 can then divide the coding units into prediction units based on the information about the partition mode. The decoding unit 170 can divide the coding units into transform units based on the transform division information.

[0064] The decoding unit 170 can predict the prediction unit based on the information on the prediction method. The decoding unit 170 can then inverse quantize and inverse transform residual data corresponding to the difference between the original value and the predicted value of the pixel based on the information on the transformation method of the transformation unit. The decoding unit 170 can also restore the pixel of the coding unit based on the prediction result of the prediction unit and the transformation result of the transformation unit.

[0065] FIG. 2 illustrates a process by which video decoder 150 divides a current coding unit to determine at least one coding unit, according to one embodiment.

[0066] According to an embodiment, the video decoding device 150 may determine the type of the coding unit using the block type information, and may determine the type of the coding unit to be partitioned using the partition type information. That is, depending on the block type indicated by the block type information used by the video decoding device 150, a partitioning method of the coding unit indicated by the partition type information may be determined.

[0067] According to an embodiment, the video decoding device 150 may use block shape information indicating that the current coding unit is square. For example, the video decoding device 150 may determine whether to not divide the square coding unit, to divide it vertically, to divide it horizontally, or to divide it into four coding units, according to the division shape information. Referring to FIG. 2, when the block shape information of the current coding unit 200 indicates a square shape, the decoder 180 may not divide the coding unit 210a having the same size as the current coding unit 200 according to the division shape information indicating no division, or may determine the divided coding units 210b, 210c, 210d, etc. according to the division shape information indicating a predetermined division method.

[0068] Referring to FIG. 2, the video decoding device 150 may determine two coding units 210b obtained by dividing the current coding unit 200 in the vertical direction based on the division type information indicating division in the vertical direction, according to an embodiment. The video decoding device 150 may determine two coding units 210c obtained by dividing the current coding unit 200 in the horizontal direction based on the division type information indicating division in the horizontal direction. The video decoding device 150 may determine four coding units 210d obtained by dividing the current coding unit 200 in the vertical and horizontal directions based on the division type information indicating division in the vertical and horizontal directions. However, the division type in which the square coding unit may be divided is not limited to the above-mentioned type, and may include various types that can be indicated by the division type information. The predetermined division type in which the square coding unit is divided will be described in detail below through various embodiments.

[0069] FIG. 3 illustrates a process by which video decoder 150 may partition a non-square shaped coding unit to determine at least one coding unit, according to one embodiment.

[0070] According to an embodiment, the video decoding device 150 may use block shape information indicating that the current coding unit is non-square. The video decoding device 150 may determine whether to not divide the non-square current coding unit or to divide it in a predetermined manner according to the division shape information. Referring to FIG. 3, when the block shape information of the current coding unit 300 or 350 indicates a non-square shape, the video decoding device 150 may not divide the coding unit 310 or 360 having the same size as the current coding unit 300 or 350 according to the division shape information indicating no division, or may determine the divided coding units 320a, 320b, 330a, 330b, 330c, 370a, 370b, 380a, 380b, and 380c according to the division shape information indicating a predetermined division method. The predetermined division method for dividing the non-square coding unit will be described in detail below through various embodiments.

[0071] According to an embodiment, the video decoder 150 may determine a manner in which the coding unit is divided using the division type information, and in this case, the division type information may indicate the number of at least one coding unit to be generated by dividing the coding unit. Referring to FIG 3, when the division type information indicates that the current coding unit 300 or 350 is divided into two coding units, the video decoder 150 may divide the current coding unit 300 or 350 based on the division type information and determine two coding units 320a, 320b, or 370a, 370b included in the current coding unit.

[0072] According to an embodiment, when the video decoding device 150 divides the non-square shaped current coding unit 300 or 350 based on the division shape information, the video decoding device 150 may divide the current coding unit in consideration of a position of a long side of the non-square current coding unit 300 or 350. For example, the video decoding device 150 may determine a plurality of coding units by dividing the current coding unit 300 or 350 in a direction that divides the long side of the current coding unit 300 or 350 in consideration of the shape of the current coding unit 300 or 350.

[0073] According to an embodiment, when the partitioning format information indicates that the coding unit is to be partitioned into an odd number of blocks, the video decoding device 150 may determine an odd number of coding units included in the current coding unit 300 or 350. For example, when the partitioning format information indicates that the current coding unit 300 or 350 is to be partitioned into three coding units, the video decoding device 150 may partition the current coding unit 300 or 350 into three coding units 330a, 330b, 330c, 380a, 380b, and 380c. According to an embodiment, the video decoding device 150 may determine an odd number of coding units included in the current coding unit 300 or 350, and the determined coding units may not all have the same size. For example, the size of a given coding unit 330b or 380b among the determined odd number of coding units 330a, 330b, 330c, 380a, 380b, and 380c may be different from the sizes of the other coding units 330a, 330c, 380a, and 380c. That is, the coding units that may be determined by dividing the current coding unit 300 or 350 may have a variety of sizes.

[0074] According to an embodiment, when the partitioning type information indicates that a coding unit is partitioned into an odd number of blocks, the video decoding device 150 may determine an odd number of coding units included in the current coding unit 300 or 350, and may further set a predetermined restriction on at least one of the odd number of coding units generated by partitioning. Referring to FIG 3, the video decoding device 150 may perform a decoding process for the coding units 330b and 380b located in the middle of the three coding units 330a, 330b, 330c, 380a, 380b, and 380c generated by partitioning the current coding unit 300 or 350 differently from the other coding units 330a, 330c, 380a, and 380c. For example, the video decoding device 150 may limit the centrally located coding units 330b and 380b from being further divided, unlike the other coding units 330a, 330c, 380a, and 380c, or may limit the number of divisions to a predetermined number.

[0075] FIG. 4 illustrates a process in which a video decoding device 150 divides a coding unit based on at least one of block format information and partition format information, according to an embodiment.

[0076] According to an embodiment, the video decoding device 150 may determine whether or not to divide the square-shaped first coding unit 400 into coding units based on at least one of the block shape information and the division shape information. According to an embodiment, if the division shape information indicates that the first coding unit 400 is to be divided in the horizontal direction, the video decoding device 150 may divide the first coding unit 400 in the horizontal direction to determine the second coding unit 410. According to an embodiment, the first coding unit, the second coding unit, and the third coding unit used are terms used to understand the division context between the coding units. For example, if the first coding unit is divided, the second coding unit may be determined, and if the second coding unit is divided, the third coding unit may be determined. In the following, it is also understood that the relationship between the first coding unit, the second coding unit, and the third coding unit used is due to the above-mentioned characteristics.

[0077] According to an embodiment, the video decoder 150 may determine whether to divide the determined second coding unit 410 into coding units based on at least one of block shape information and partition shape information. Referring to FIG 4, the video decoder 150 may divide the first coding unit 400 based on at least one of block shape information and partition shape information, and may divide the determined non-square shaped second coding unit 410 into at least one third coding unit 420a, 420b, 420c, 420d, etc., or may not divide the second coding unit 410. The video decoding device 150 may acquire at least one of block type information and partition type information, and may divide the first coding unit 400 based on at least one of the acquired block type information and partition type information, for example, into a plurality of second coding units 410 of various types, and the second coding units 410 may also be divided according to the manner in which the first coding unit 400 was divided, based on at least one of the block type information and partition type information related to the first coding unit 400. According to an embodiment, when the first coding unit 400 is divided into the second coding units 410 based on at least one of the block type information and partition type information related to the first coding unit 400, the second coding units 410 may also be divided into, for example, third coding units 420a, 420b, 420c, 420d, etc., based on at least one of the block type information and partition type information related to the second coding unit 410. That is, the coding units are also recursively divided based on at least one of the partitioning pattern information and the block pattern information associated with each coding unit. Methods that can be used for recursively dividing the coding units will be described below in various exemplary embodiments.

[0078] According to an embodiment, the video decoder 150 may determine whether to divide each of the third coding units 420a, 420b, 420c, 420d, etc. into coding units or not to divide the second coding unit 410 based on at least one of the block configuration information and the division configuration information. According to an embodiment, the video decoder 150 may divide the non-square second coding unit 410 into an odd number of third coding units 420b, 420c, 420d. The video decoder 150 may set a predetermined restriction on a certain third coding unit among the odd number of third coding units 420b, 420c, 420d. For example, the video decoder 150 may restrict the coding unit 420c located in the middle of the odd number of third coding units 420b, 420c, 420d so that it is not further divided or that it must be divided a configurable number of times. 4, the video decoding device 150 may restrict the coding unit 420c located in the middle of the odd number of third coding units 420b, 420c, and 420d included in the non-square second coding unit 410 to not be further divided or to be divided into a predetermined division form (e.g., to be divided into only four coding units or to be divided into a form corresponding to the division form of the second coding unit 410), or to be divided only a predetermined number of times (e.g., to be divided only n times; n>0). However, the above restriction on the coding unit 420c located in the middle is merely an embodiment, and should not be construed as being limited to the above embodiment, but should be construed as including various restrictions in which the coding unit 420c located in the middle may be decoded differently from the different coding units 420b and 420d.

[0079] According to an embodiment, the video decoding device 150 may obtain at least one of block configuration information and partition configuration information used to partition the current coding unit at a predetermined position within the current coding unit.

[0080] According to an embodiment, when a current coding unit is divided into a predetermined number of coding units, the video decoding device 150 may select one of the coding units. There are various methods for selecting one of the coding units, and such methods will be described below through various embodiments.

[0081] According to an embodiment, the video decoder 150 may divide a current coding unit into a plurality of coding units and determine a coding unit at a predetermined position.

[0082] FIG. 5 illustrates a method by which video decoder 150 determines a coding unit at a given position among an odd number of coding units, according to one embodiment.

[0083] According to an embodiment, the video decoder 150 may use information indicating the positions of each of the odd-numbered coding units to determine a coding unit located in the middle of the odd-numbered coding units. Referring to FIG. 5, the video decoder 150 may divide the current coding unit 500 to determine odd-numbered coding units 520a, 520b, and 520c. The video decoder 150 may determine the middle coding unit 520b using information regarding the positions of the odd-numbered coding units 520a, 520b, and 520c. For example, the video decoder 150 may determine the positions of the coding units 520a, 520b, and 520c based on information indicating the positions of certain samples included in the coding units 520a, 520b, and 520c to determine the middle coding unit 520b. Specifically, the video decoding device 150 can determine the positions of the coding units 520a, 520b, and 520c based on information indicating the positions of the upper left samples 530a, 530b, and 530c of the coding units 520a, 520b, and 520c, thereby determining the coding unit 520b located in the middle.

[0084] According to an embodiment, the information indicating the positions of the top left samples 530a, 530b, and 530c included in the coding units 520a, 520b, and 520c, respectively, may include information on the positions or coordinates of the coding units 520a, 520b, and 520c in the picture. According to an embodiment, the information indicating the positions of the top left samples 530a, 530b, and 530c included in the coding units 520a, 520b, and 520c, respectively, may include information indicating a width or height of the coding units 520a, 520b, and 520c included in the current coding unit 500, where such width or height corresponds to information indicating a difference between the coordinates of the coding units 520a, 520b, and 520c in the picture. That is, the video decoding device 150 can determine the coding unit 520b located in the middle by directly using information about the positions or coordinates of the coding units 520a, 520b, and 520c within the picture, or by using information about the width or height of the coding unit corresponding to the difference between the coordinates.

[0085] According to an embodiment, information indicating a position of the top left sample 530a of the top coding unit 520a may indicate (xa, ya) coordinates, information indicating a position of the top left sample 530b of the middle coding unit 520b may indicate (xb, yb) coordinates, and information indicating a position of the top left sample 530c of the bottom coding unit 520c may indicate (xc, yc) coordinates. The video decoding device 150 may determine the middle coding unit 520b using the coordinates of the top left samples 530a, 530b, and 530c included in the coding units 520a, 520b, and 520c, respectively. For example, when the coordinates of the top left samples 530a, 530b, and 530c are sorted in ascending or descending order, the coding unit 520b including the coordinates (xb, yb) of the middle sample 530b may be determined as the middle coding unit among the coding units 520a, 520b, and 520c determined by dividing the current coding unit 500. However, the coordinates indicating the positions of the top left samples 530a, 530b, and 530c may indicate coordinates indicating absolute positions within a picture, and further, the (dxb, dyb) coordinates indicating the relative position of the top left sample 530b of the middle coding unit 520b and the (dxc, dyc) coordinates indicating the relative position of the top left sample 530c of the bottom coding unit 520c may be used. In addition, the method of determining a coding unit at a predetermined position by using the coordinates of a sample as information indicating the position of the sample included in the coding unit should not be interpreted as being limited to the above-mentioned method, but should be interpreted as various arithmetic methods that can use the coordinates of the sample.

[0086] According to an embodiment, the video decoder 150 may divide the current coding unit 500 into a plurality of coding units 520a, 520b, and 520c, and may select a coding unit from among the coding units 520a, 520b, and 520c according to a predetermined criterion. For example, the video decoder 150 may select a coding unit 520b having a different size from the coding units 520a, 520b, and 520c.

[0087] According to an embodiment, the video decoder 150 may determine the width or height of each of the coding units 520a, 520b, and 520c using the (xa, ya) coordinates indicating the position of the top left sample 530a of the top coding unit 520a, the (xb, yb) coordinates indicating the position of the top left sample 530b of the middle coding unit 520b, and the (xc, yc) coordinates indicating the position of the top left sample 530c of the bottom coding unit 520c. The video decoder 150 may determine the size of each of the coding units 520a, 520b, and 520c using the (xa, ya), (xb, yb), and (xc, yc) coordinates indicating the positions of the coding units 520a, 520b, and 520c.

[0088] According to an embodiment, the video decoder 150 may determine the width of the top coding unit 520a as xb-xa and the height of the top coding unit 520a as yb-ya. According to an embodiment, the video decoder 150 may determine the width of the middle coding unit 520b as xc-xb and the height of the middle coding unit 520b as yc-yb. According to an embodiment, the video decoder 150 may determine the width or height of the bottom coding unit using the width or height of the current coding unit and the widths and heights of the top coding unit 520a and the middle coding unit 520b. The video decoder 150 may determine a coding unit having a different size from other coding units based on the determined widths and heights of the coding units 520a, 520b, and 520c. Referring to FIG. 5, the video decoder 150 may determine the middle coding unit 520b having a different size from the top coding unit 520a and the bottom coding unit 520c as a coding unit at a predetermined position. However, the above-mentioned process in which the video decoding device 150 determines a coding unit having a size different from other coding units is merely one embodiment of determining a coding unit at a predetermined position using the size of the coding unit determined based on sample coordinates, and various other processes may be used to determine a coding unit at a predetermined position by comparing the size of the coding unit determined based on predetermined sample coordinates.

[0089] However, the position of the sample considered to determine the position of the coding unit is not to be interpreted as being limited to the upper left end as mentioned above, but rather, it is also to be interpreted that information about the position of any sample included in the coding unit may be used.

[0090] According to an embodiment, the video decoding device 150 may select a coding unit at a predetermined position from among an odd number of coding units determined by dividing the current coding unit, taking into consideration the shape of the current coding unit. For example, if the current coding unit is a non-square shape in which the width is longer than the height, the video decoding device 150 may determine a coding unit at a predetermined position along the horizontal direction. That is, the video decoding device 150 may determine one of the coding units at different positions in the horizontal direction and set a restriction on the coding unit. If the current coding unit is a non-square shape in which the height is longer than the width, the video decoding device 150 may determine a coding unit at a predetermined position along the vertical direction. That is, the video decoding device 150 may determine one of the coding units at different positions in the vertical direction and set a restriction on the coding unit.

[0091] According to an embodiment, the video decoding device 150 may use information indicating the positions of each of the even number of coding units to determine a coding unit at a predetermined position among the even number of coding units. The video decoding device 150 may divide the current coding unit to determine the even number of coding units, and may determine the coding unit at a predetermined position using information regarding the positions of the even number of coding units. A detailed process related thereto corresponds to the process of determining a coding unit at a predetermined position (e.g., a middle position) among the odd number of coding units described in FIG. 5, and therefore will not be described here.

[0092] According to an embodiment, when a non-square current coding unit is divided into a plurality of coding units, in order to determine a coding unit at a predetermined position among the plurality of coding units, the video decoding device 150 may use predetermined information related to the coding unit at a predetermined position during the division process. For example, in order to determine a coding unit at a center among the plurality of coding units into which the current coding unit is divided, the video decoding device 150 may use at least one of block shape information and partition shape information stored in a sample included in the center coding unit during the division process.

[0093] 5, the video decoding apparatus 150 may divide the current coding unit 500 into a plurality of coding units 520a, 520b, and 520c based on at least one of the block configuration information and the partition configuration information, and may determine the coding unit 520b located in the middle of the plurality of coding units 520a, 520b, and 520c. Furthermore, the video decoding apparatus 150 may determine the coding unit 520b located in the middle by considering a position where at least one of the block configuration information and the partition configuration information is obtained. That is, at least one of the block configuration information and the partition configuration information of the current coding unit 500 is obtained from a sample 540 located in the middle of the current coding unit 500, and when the current coding unit 500 is divided into a plurality of coding units 520a, 520b, and 520c based on at least one of the block configuration information and the partition configuration information, the coding unit 520b including the sample 540 may be determined as the coding unit located in the middle. However, the information used to determine the coding unit located in the middle is not interpreted as being limited to at least one of block shape information and division shape information, and various types of information are also used in the process of determining the coding unit located in the middle.

[0094] According to an embodiment, the predetermined information for identifying a coding unit at a predetermined position may be obtained from a predetermined sample included in a coding unit to be determined. Referring to FIG. 5, the video decoding device 150 may use at least one of block shape information and partition shape information obtained from a sample at a predetermined position in the current coding unit 500 (e.g., a sample located at the center of the current coding unit 500) in order to determine a coding unit at a predetermined position (e.g., a coding unit located at the center of the multiple coding units 520a, 520b, and 520c determined by dividing the current coding unit 500). That is, the video decoding device 150 may determine the sample at the predetermined position by considering the block shape of the current coding unit 500, and may determine a coding unit 520b including a sample from which predetermined information (e.g., at least one of block shape information and partition shape information) can be obtained from the multiple coding units 520a, 520b, and 520c determined by dividing the current coding unit 500, and may set a predetermined restriction. 5, according to an embodiment, the video decoder 150 may determine a sample 540 located in the middle of the current coding unit 500 as a sample from which certain information may be acquired, and may set a certain restriction in the decoding process for the coding unit 520b including such sample 540. However, the position of the sample from which certain information may be acquired is not limited to the above position, but may be a sample at any position included in the coding unit 520b to be determined for setting the restriction.

[0095] According to an embodiment, the position of the sample from which the predetermined information can be obtained is also determined according to the shape of the current coding unit 500. According to an embodiment, the block shape information may determine whether the shape of the current coding unit is square or non-square, and may determine the position of the sample from which the predetermined information can be obtained according to the shape. For example, the video decoding apparatus 150 may determine, using at least one of information on the width and information on the height of the current coding unit, a sample located on a boundary that divides at least one of the width and height of the current coding unit in half as a sample from which the predetermined information can be obtained. In another example, when the block shape information related to the current coding unit indicates that the current coding unit is non-square, the video decoding apparatus 150 may determine one of the samples adjacent to a boundary that divides the long side of the current coding unit in half as a sample from which the predetermined information can be obtained.

[0096] According to an embodiment, when the current coding unit is divided into a plurality of coding units, the video decoding device 150 may use at least one of block shape information and partition shape information to determine a coding unit at a predetermined position among the plurality of coding units. According to an embodiment, the video decoding device 150 may obtain at least one of block shape information and partition shape information from a sample at a predetermined position included in the coding unit, and may divide a plurality of coding units generated by dividing the current coding unit using at least one of partition shape information and block shape information obtained from a sample at a predetermined position included in each of the plurality of coding units. That is, the coding units are also divided recursively using at least one of block shape information and partition shape information obtained from a sample at a predetermined position included in each of the coding units. The recursive division process of the coding unit has been described with reference to FIG. 4, and a detailed description thereof will be omitted.

[0097] In one embodiment, the video decoding device 150 can divide the current coding unit and determine at least one coding unit, and can determine the order in which such at least one coding unit is decoded by a predetermined block (e.g., the current coding unit).

[0098] FIG. 6 illustrates an order in which multiple coding units are processed when the video decoder 150 divides a current coding unit to determine multiple coding units, according to one embodiment.

[0099] According to one embodiment, the video decoding device 150 may, based on the block format information and the partition format information, vertically divide the first coding unit 600 to determine the second coding units 610a and 610b, or horizontally divide the first coding unit 600 to determine the second coding units 630a and 630b, or vertically and horizontally divide the first coding unit 600 to determine the second coding units 650a, 650b, 650c, and 650d.

[0100] 6, the video decoding device 150 may determine an order such that the second coding units 610a and 610b determined by dividing the first coding unit 600 in the vertical direction are processed in the horizontal direction 610c. The video decoding device 150 may determine a processing order of the second coding units 630a and 630b determined by dividing the first coding unit 600 in the horizontal direction as the vertical direction 630c. The video decoding device 150 may determine the second coding units 650a, 650b, 650c, and 650d determined by dividing the first coding unit 600 in the vertical and horizontal directions in a predetermined order (e.g., a raster scan order or a z scan order 650e) in which a coding unit located in one row is processed and then a coding unit located in the next row is processed.

[0101] According to an embodiment, the video decoder 150 may recursively divide the coding units. Referring to FIG. 6, the video decoder 150 may divide the first coding unit 600 to determine a plurality of coding units 610a, 610b, 630a, 630b, 650a, 650b, 650c, and 650d, and may recursively divide each of the determined coding units 610a, 610b, 630a, 630b, 650a, 650b, 650c, and 650d. A method of dividing the coding units 610a, 610b, 630a, 630b, 650a, 650b, 650c, and 650d corresponds to a method of dividing the first coding unit 600. As a result, the multiple coding units 610a, 610b, 630a, 630b, 650a, 650b, 650c, and 650d are also divided into multiple coding units independently. Referring to FIG 6, the video decoder 150 may divide the first coding unit 600 vertically to determine the second coding units 610a and 610b, and may further determine whether or not to divide each of the second coding units 610a and 610b independently.

[0102] According to one embodiment, the video decoding device 150 may horizontally split the second coding unit 610a on the left side into third coding units 620a and 620b, while not splitting the second coding unit 610b on the right side.

[0103] According to an embodiment, the processing order of the coding units is also determined based on the division process of the coding units. In other words, the processing order of the divided coding units is also determined based on the processing order of the coding units immediately before the division. The video decoding device 150 may determine the processing order of the third coding units 620a and 620b determined by dividing the second coding unit 610a on the left side, independently of the second coding unit 610b on the right side. Since the second coding unit 610a on the left side is divided in the horizontal direction and the third coding units 620a and 620b are determined, the third coding units 620a and 620b are also processed in the vertical direction 620c. In addition, since the processing order of the second coding unit 610a on the left side and the second coding unit 610b on the right side corresponds to the horizontal direction 610c, the third coding units 620a and 620b included in the second coding unit 610a on the left side may be processed in the vertical direction 620c before the right coding unit 610b is processed. The above content is intended to explain the process in which the processing order of coding units is determined based on the coding units before they are divided, and therefore should not be interpreted as being limited to the above embodiment, but should be interpreted as being used in various methods in which coding units that are divided and determined in various forms can be processed independently in a predetermined order.

[0104] FIG. 7 illustrates a process in which the video decoder 150 determines that a current coding unit is to be divided into an odd number of coding units if a predetermined-order coding unit cannot be processed, according to one embodiment.

[0105] According to an embodiment, the video decoding device 150 may determine that the current coding unit is divided into an odd number of coding units based on the acquired block shape information and division shape information. Referring to FIG. 7, a square-shaped first coding unit 700 is also divided into non-square-shaped second coding units 710a and 710b, and the second coding units 710a and 710b are also independently divided into third coding units 720a, 720b, 720c, 720d, and 720e. According to an embodiment, the video decoding device 150 may divide the left coding unit 710a of the second coding unit in the horizontal direction to determine a plurality of third coding units 720a and 720b, and may divide the right coding unit 710b into an odd number of third coding units 720c, 720d, and 720e.

[0106] According to an embodiment, the video decoder 150 may determine whether the third coding units 720a, 720b, 720c, 720d, and 720e are processed in a predetermined order and determine whether there is an odd number of coding units. Referring to FIG. 7, the video decoder 150 may recursively divide the first coding unit 700 to determine the third coding units 720a, 720b, 720c, 720d, and 720e. The video decoder 150 may determine whether the first coding unit 700, the second coding unit 710a, 710b, or the third coding unit 720a, 720b, 720c, 720d, and 720e are divided into an odd number of coding units in the division type based on at least one of the block type information and the division type information. For example, the coding unit located on the right side of the second coding units 710a and 710b is also divided into an odd number of third coding units 720c, 720d, and 720e. The order in which the coding units included in the first coding unit 700 are processed may be a predetermined order (e.g., z-scan order 730), and the video decoding device 150 may determine whether the third coding units 720c, 720d, and 720e determined by dividing the right second coding unit 710b into an odd number of coding units satisfy a condition that they can be processed in the predetermined order.

[0107] According to one embodiment, the video decoding device 150 may determine whether the third coding units 720a, 720b, 720c, 720d, and 720e included in the first coding unit 700 satisfy a condition that they may be processed in a predetermined order, the condition being related to whether at least one of the width and height of the second coding units 710a, 710b is divided in half along the boundary of the third coding units 720a, 720b, 720c, 720d, and 720e. For example, the third coding units 720a and 720b determined by dividing the height of the non-square left second coding unit 710a in half satisfy the condition, but the boundaries of the third coding units 720c, 720d, and 720e determined by dividing the right second coding unit 710b into three coding units do not divide the width or height of the right second coding unit 710b in half, so it is determined that the third coding units 720c, 720d, and 720e do not satisfy the condition. If such a condition is not satisfied, the video decoding device 150 may determine that there is a disconnection in the scan order, and based on the determination result, may determine that the right second coding unit 710b is divided into an odd number of coding units. According to an embodiment, the video decoding device 150 may set a predetermined restriction on a coding unit at a predetermined position among the divided coding units when the coding units are divided into an odd number of coding units, and detailed description of such a restriction or a predetermined position has been described through various embodiments, and will not be repeated.

[0108] FIG. 8 illustrates a process in which the video decoding device 150 divides the first coding unit 800 and determines at least one coding unit, according to an embodiment. According to an embodiment, the video decoding device 150 may divide the first coding unit 800 based on at least one of block shape information and division shape information acquired via the receiving unit 160. The square-shaped first coding unit 800 may be divided into four square-shaped coding units or into a plurality of non-square-shaped coding units. For example, referring to FIG. 8, when the block shape information indicates that the first coding unit 800 is a square and the division shape information indicates that the first coding unit 800 is to be divided into non-square coding units, the video decoding device 150 may divide the first coding unit 800 into a plurality of non-square coding units. Specifically, when the division form information indicates that the first coding unit 800 is to be divided horizontally or vertically to determine an odd number of coding units, the video decoding device 150 may divide the square-shaped first coding unit 800 into second coding units 810a, 810b, and 810c determined by dividing it vertically as an odd number of coding units, or into second coding units 820a, 820b, and 820c determined by dividing it horizontally.

[0109] According to an embodiment, the video decoding device 150 may determine whether the second coding units 810a, 810b, 810c, 820a, 820b, and 820c included in the first coding unit 800 satisfy a condition that they can be processed in a predetermined order, and the condition is related to whether at least one of the width and height of the first coding unit 800 is divided in half along the boundaries of the second coding units 810a, 810b, 810c, 820a, 820b, and 820c. Referring to FIG. 8, the boundaries of the second coding units 810a, 810b, and 810c determined by dividing the square-shaped first coding unit 800 in the vertical direction do not divide the width of the first coding unit 800 in half, so it is also determined that the first coding unit 800 does not satisfy the condition that it can be processed in a predetermined order. In addition, since the boundaries of the second coding units 820a, 820b, and 820c determined by dividing the square first coding unit 800 in the horizontal direction do not divide the width of the first coding unit 800 in half, it is also determined that the first coding unit 800 does not satisfy the condition that it can be processed according to a predetermined order. If such a condition is not satisfied, the video decoding device 150 may determine that the scanning order is broken, and may determine that the first coding unit 800 is divided into an odd number of coding units based on the determination result. According to an embodiment, when the coding unit is divided into an odd number of coding units, the video decoding device 150 may set a predetermined restriction on a coding unit at a predetermined position among the divided coding units, and the content of such a restriction or the predetermined position has been described through various embodiments, and detailed description thereof will be omitted.

[0110] According to an embodiment, the video decoding device 150 may divide the first coding unit and determine various types of coding units.

[0111] 8, the video decoding apparatus 150 may divide a square-shaped first coding unit 800, a non-square-shaped first coding unit 830, or a non-square-shaped first coding unit 850 into various types of coding units.

[0112] FIG. 9 illustrates that, according to one embodiment, when a non-square shaped second coding unit determined by dividing a first coding unit 900 satisfies a certain condition, the video decoding device 150 restricts the manner in which the second coding unit may be divided.

[0113] According to an embodiment, the video decoding device 150 may determine to divide the square-shaped first coding unit 900 into non-square-shaped second coding units 910a, 910b, 920a, and 920b based on at least one of block shape information and division shape information acquired via the receiving unit 160. The second coding units 910a, 910b, 920a, and 920b may be divided independently. Thus, the video decoding device 150 may determine whether to divide the second coding units 910a, 910b, 920a, and 920b into a plurality of coding units or not to divide the coding units based on at least one of block shape information and division shape information related to each of the second coding units 910a, 910b, 920a, and 920b. According to an embodiment, the video decoding device 150 may determine the third coding units 912a and 912b by dividing the left non-square-shaped second coding unit 910a, which is determined by dividing the first coding unit 900 vertically, in the horizontal direction. However, when the left second coding unit 910a is divided in the horizontal direction, the video decoding device 150 may restrict the right second coding unit 910b so that it cannot be divided in the same horizontal direction as the left second coding unit 910a is divided. If the right second coding unit 910b is divided in the same direction and the third coding units 914a and 914b are determined, the left second coding unit 910a and the right second coding unit 910b may be divided independently in the horizontal direction to determine the third coding units 912a, 912b, 914a, and 914b. However, this is the same result as when the video decoding device 150 divides the first coding unit 900 into four square second coding units 930a, 930b, 930c, and 930d based on at least one of the block configuration information and the partition configuration information, which is inefficient in terms of video decoding.

[0114] According to an embodiment, the video decoding device 150 may vertically divide the non-square second coding unit 920a or 920b, which is determined by dividing the first coding unit 330 in the horizontal direction, to determine the third coding units 922a, 922b, 924a, and 924b. However, when the video decoding device 150 divides one of the second coding units (e.g., the top second coding unit 920a) in the vertical direction, the video decoding device 150 may restrict the other second coding units (e.g., the bottom coding unit 920b) from being divided in the same vertical direction as the top second coding unit 920a, for the above-mentioned reasons.

[0115] FIG. 10 illustrates a process in which a video decoder 150 divides a square-shaped coding unit when the division format information does not indicate division into four square-shaped coding units, according to an embodiment.

[0116] According to an embodiment, the video decoding device 150 may divide the first coding unit 1000 based on at least one of the block shape information and the division shape information, and determine the second coding units 1010a, 1010b, 1020a, 1020b, etc. The division shape information may include information on various shapes into which the coding unit may be divided, but the information on the various shapes may not include information for dividing into four square coding units. According to such division shape information, the video decoding device 150 may not divide the square-shaped first coding unit 1000 into four square-shaped second coding units 1030a, 1030b, 1030c, 1030d. Based on the division shape information, the video decoding device 150 may determine the non-square-shaped second coding units 1010a, 1010b, 1020a, 1020b, etc.

[0117] According to an embodiment, the video decoding device 150 may independently divide the non-square second coding units 1010a, 1010b, 1020a, 1020b, etc., into each of the second coding units 1010a, 1010b, 1020a, 1020b, etc., in a predetermined order through a recursive method, which is also a division method corresponding to the method in which the first coding unit 1000 is divided based on at least one of the block shape information and the partition shape information.

[0118] For example, the video decoder 150 may horizontally divide the left-side second coding unit 1010a to determine square-shaped third coding units 1012a and 1012b, and may horizontally divide the right-side second coding unit 1010b to determine square-shaped third coding units 1014a and 1014b. Furthermore, the video decoder 150 may horizontally divide both the left-side second coding unit 1010a and the right-side second coding unit 1010b to determine square-shaped third coding units 1016a, 1016b, 1016c, and 1016d. In this case, the coding units may be determined in the same form as when the first coding unit 1000 is divided into four square-shaped second coding units 1030a, 1030b, 1030c, and 1030d.

[0119] As another example, the video decoding device 150 may vertically divide the top second coding unit 1020a to determine square third coding units 1022a and 1022b, and may vertically divide the bottom second coding unit 1020b to determine square third coding units 1024a and 1024b. Furthermore, the video decoding device 150 may vertically divide both the top second coding unit 1020a and the bottom second coding unit 1020b to determine square third coding units 1022a, 1022b, 1024a, and 1024b. In this case, the coding units may be determined in the same form as when the first coding unit 1000 is divided into four square second coding units 1030a, 1030b, 1030c, and 1030d.

[0120] FIG. 11 illustrates that a processing order among multiple coding units may vary depending on a division process of the coding units, according to an embodiment.

[0121] According to an embodiment, the video decoding device 150 may divide the first coding unit 1100 based on the block shape information and the division shape information. When the block shape information indicates a square shape and the division shape information indicates that the first coding unit 1100 is divided in at least one of the horizontal direction and the vertical direction, the video decoding device 150 may divide the first coding unit 1100 to determine, for example, second coding units 1110a, 1110b, 1120a, 1120b, 1130a, 1130b, 1130c, 1130d, etc. Referring to FIG. 11, the non-square second coding units 1110a, 1110b, 1120a, 1120b, determined by dividing the first coding unit 1100 only in the horizontal direction or the vertical direction are also divided independently based on the block shape information and the division shape information associated therewith. For example, the video decoder 150 may horizontally divide the second coding units 1110a and 1110b, which are generated by dividing the first coding unit 1100 in the vertical direction, to determine the third coding units 1116a, 1116b, 1116c, and 1116d, and may horizontally divide the second coding units 1120a and 1120b, which are generated by dividing the first coding unit 1100 in the horizontal direction, to determine the third coding units 1126a, 1126b, 1126c, and 1126d. The division process of the second coding units 1110a, 1110b, 1120a, and 1120b has been described with reference to FIG. 9, and a detailed description thereof will be omitted.

[0122] According to an embodiment, the video decoder 150 may process the coding units in a predetermined order. The characteristics related to the processing of the coding units in a predetermined order have been described with reference to FIG. 6, and therefore detailed description thereof will be omitted. Referring to FIG. 11, the video decoder 150 may divide the square-shaped first coding unit 1100 to determine four square-shaped third coding units 1116a, 1116b, 1116c, 1116d, 1126a, 1126b, 1126c, and 1126d. According to an embodiment, the video decoder 150 may determine a processing order of the third coding units 1116a, 1116b, 1116c, 1116d, 1126a, 1126b, 1126c, and 1126d according to the manner in which the first coding unit 1100 is divided.

[0123] According to one embodiment, the video decoder 150 can horizontally divide the second coding units 1110a, 1110b generated by vertical division to determine the third coding units 1116a, 1116b, 1116c, and 1116d, and the video decoder 150 can process the third coding units 1116a, 1116b, 1116c, and 1116d in an order (1117) of first vertically processing the third coding units 1116a, 1116b included in the left-side second coding unit 1110a, and then vertically processing the third coding units 1116c, 1116d included in the right-side second coding unit 1110b.

[0124] According to one embodiment, the video decoding device 150 can vertically divide the second coding units 1120a, 1120b generated by dividing them horizontally to determine the third coding units 1126a, 1126b, 1126c, and 1126d, and the video decoding device 150 can process the third coding units 1126a, 1126b, 1126c, and 1126d in an order (1127) of first horizontally processing the third coding units 1126a, 1126b included in the upper second coding unit 1120a, and then horizontally processing the third coding units 1126c, 1126d included in the lower second coding unit 1120b.

[0125] 11, the second coding units 1110a, 1110b, 1120a, and 1120b are each divided to determine square-shaped third coding units 1116a, 1116b, 1116c, 1116d, 1126a, 1126b, 1126c, and 1126d. The second coding units 1110a and 1110b determined by dividing in the vertical direction and the second coding units 1120a and 1120b determined by dividing in the horizontal direction are divided in different shapes, but the third coding units 1116a, 1116b, 1116c, 1116d, 1126a, 1126b, 1126c, and 1126d determined later ultimately result in the first coding unit 1100 being divided into coding units of the same shape. As a result, the video decoding device 150 recursively divides the coding units through different processes based on at least one of the block type information and the division type information, so that even if coding units of the same type are determined as a result, multiple coding units determined to be of the same type can be processed in different orders from each other.

[0126] FIG. 12 illustrates a process of determining a coding unit depth according to changes in the shape and size of a coding unit when a coding unit is recursively divided to determine a plurality of coding units, according to one embodiment.

[0127] According to an embodiment, the video decoder 150 may determine the depth of the coding unit according to a predetermined criterion. For example, the predetermined criterion may be the long side length of the coding unit. The video decoder 150 may determine the depth of the coding unit according to a predetermined criterion. For example, the long side length of the current coding unit may be 2 times longer than the long side length of the coding unit before the division. n When the coding unit is divided by (n>0), it may be determined that the depth of the current coding unit is increased by n from the depth of the coding unit before the division. Hereinafter, the coding unit with the increased depth will be referred to as a coding unit of a lower depth.

[0128] Referring to FIG. 12, according to an embodiment, the video decoding apparatus 150 may divide the square-shaped first coding unit 1200 based on block shape information indicating a square shape (for example, the block shape information may indicate "0:SQUARE"), and determine a second coding unit 1202, a third coding unit 1204, etc., of a lower depth. If the size of the square-shaped first coding unit 1200 is 2Nx2N, the second coding unit 1202 determined by dividing the width and height of the first coding unit 1200 by 1 / 2 may have a size of NxN. Furthermore, the third coding unit 1204 determined by dividing the width and height of the second coding unit 1202 by 1 / 2 may have a size of N / 2xN / 2. In this case, the width and height of the third coding unit 1204 may be 1 / 2 that of the first coding unit 1200. 2 When the depth of the first coding unit 1200 is D, the width and height of the first coding unit 1200 are halved. 1 The depth of the second coding unit 1202 is also D+1, and is 1 / 2 the width and height of the first coding unit 1200. 2 The depth of the third coding unit 1204, which is double the depth, is also D+2.

[0129] According to one embodiment, based on block shape information indicating a non-square shape (for example, the block shape information may indicate "1:NS_VER", indicating a non-square shape in which the height is greater than the width, or "2:NS_HOR", indicating a non-square shape in which the width is greater than the height), the video decoding device 150 may divide the first coding unit 1210 or 1220, which is non-square, and determine a second coding unit 1212 or 1222, a third coding unit 1214 or 1224, etc., of a lower depth.

[0130] The video decoder 150 may divide at least one of the width and height of the first coding unit 1210 having a size of Nx2N to determine, for example, the second coding units 1202, 1212, 1222, etc. That is, the video decoder 150 may divide the first coding unit 1210 in the horizontal direction to determine the second coding unit 1202 having a size of NxN or the second coding unit 1222 having a size of NxN / 2, or may divide the first coding unit 1210 in the horizontal and vertical directions to determine the second coding unit 1212 having a size of N / 2xN.

[0131] According to an embodiment, the video decoder 150 may divide at least one of the width and height of the first coding unit 1220 having a size of 2NxN to determine, for example, the second coding units 1202, 1212, 1222, etc. That is, the video decoder 150 may divide the first coding unit 1220 vertically to determine the second coding unit 1202 having a size of NxN or the second coding unit 1212 having a size of N / 2xN, and may divide the first coding unit 1220 horizontally and vertically to determine the second coding unit 1222 having a size of NxN / 2.

[0132] According to an embodiment, the video decoder 150 may divide at least one of the width and height of the second coding unit 1202 of size NxN to determine, for example, the third coding units 1204, 1214, 1224, etc. That is, the video decoder 150 may divide the second coding unit 1202 vertically and horizontally to determine the third coding unit 1204 of size N / 2xN / 2, the third coding unit 1214 of size N / 2xN / 2, or the third coding unit 1224 of size N / 2xN / 2.

[0133] According to an embodiment, the video decoder 150 may divide at least one of the width and height of the second coding unit 1212 having a size of N / 2xN to determine, for example, the third coding units 1204, 1214, 1224, etc. That is, the video decoder 150 may divide the second coding unit 1212 horizontally to determine the third coding unit 1204 having a size of N / 2xN / 2 or the third coding unit 1224 having a size of N / 2xN / 2, or may divide the second coding unit 1212 vertically and horizontally to determine the third coding unit 1214 having a size of N / 2xN / 2.

[0134] According to an embodiment, the video decoder 150 may divide at least one of the width and height of the second coding unit 1214 having a size of NxN / 2 to determine, for example, the third coding units 1204, 1214, 1224, etc. That is, the video decoder 150 may divide the second coding unit 1212 vertically to determine the third coding unit 1204 having a size of N / 2xN / 2 or the third coding unit 1214 having a size of N / 2xN / 2, or may divide the second coding unit 1212 vertically and horizontally to determine the third coding unit 1224 having a size of N / 2xN / 2.

[0135] According to an embodiment, the video decoding device 150 may divide, for example, the square-shaped coding units 1200, 1202, and 1204 in the horizontal or vertical direction. For example, the first coding unit 1200 having a size of 2Nx2N may be divided vertically to determine the first coding unit 1210 having a size of Nx2N, or may be divided horizontally to determine the first coding unit 1220 having a size of 2NxN. According to an embodiment, when the depth is determined based on the longest side length of the coding unit, the depth of the coding unit determined by dividing the first coding unit 1200, 1202, or 1204 having a size of 2Nx2N in the horizontal or vertical direction may be the same as the depth of the first coding unit 1200, 1202, or 1204.

[0136] In one embodiment, the width and height of the third coding unit 1214 or 1224 is half that of the first coding unit 1210 or 1220. 2When the depth of the first coding unit 1210 or 1220 is D, the width and height of the first coding unit 1210 or 1220 are 1 / 2. 1 The depth of the second coding unit 1212 or 1214, which is twice the width and height of the first coding unit 1210 or 1220, is also D+1. 2 The depth of the third coding unit 1214 or 1224, which is double the depth, is also D+2.

[0137] FIG. 13 illustrates a depth determined according to the type and size of a coding unit and an index (PID: part index) for coding unit partitioning according to one embodiment.

[0138] According to an embodiment, the video decoder 150 may divide the square-shaped first coding unit 1300 to determine various types of second coding units. Referring to FIG. 13, the video decoder 150 may divide the first coding unit 1300 in at least one of the vertical and horizontal directions according to the division type information to determine the second coding units 1302a, 1302b, 1304a, 1304b, 1306a, 1306b, 1306c, and 1306d. That is, the video decoder 150 may determine the second coding units 1302a, 1302b, 1304a, 1304b, 1306a, 1306b, 1306c, and 1306d based on the division type information related to the first coding unit 1300.

[0139] According to an embodiment, the depths of the second coding units 1302a, 1302b, 1304a, 1304b, 1306a, 1306b, 1306c, and 1306d determined by the division form information related to the square-shaped first coding unit 1300 may be determined based on the long side length. For example, since the length of one side of the square-shaped first coding unit 1300 is the same as the long side length of the non-square-shaped second coding units 1302a, 1302b, 1304a, and 1304b, the depths of the first coding unit 1300 and the non-square-shaped second coding units 1302a, 1302b, 1304a, and 1304b are considered to be the same as D. In contrast, when the video decoding device 150 divides the first coding unit 1300 into four square-shaped second coding units 1306a, 1306b, 1306c, and 1306d based on the division form information, the length of one side of the square-shaped second coding units 1306a, 1306b, 1306c, and 1306d is half the length of one side of the first coding unit 1300, so the depth of the second coding units 1306a, 1306b, 1306c, and 1306d is also a depth of D+1, which is one depth lower than the depth D of the first coding unit 1300.

[0140] According to an embodiment, the video decoder 150 may divide the first coding unit 1310, whose height is greater than its width, in the horizontal direction according to the division format information, and divide the first coding unit 1310 into a plurality of second coding units 1312a, 1312b, 1314a, 1314b, and 1314c. According to an embodiment, the video decoder 150 may divide the first coding unit 1320, whose width is greater than its height, in the vertical direction according to the division format information, and divide the first coding unit 1320 into a plurality of second coding units 1322a, 1322b, 1324a, 1324b, and 1324c.

[0141] According to an embodiment, the depths of the second coding units 1312a, 1312b, 1314a, 1314b, 1316a, 1316b, 1316c, and 1316d determined by the division form information related to the non-square first coding unit 1310 or 1320 may be determined based on the long side length. For example, the length of one side of the square second coding units 1312a and 1312b is ½ times the length of one side of the non-square first coding unit 1310 whose height is greater than its width, so the depths of the square second coding units 1302a, 1302b, 1304a, and 1304b are D+1, which is one depth lower than the depth D of the non-square first coding unit 1310.

[0142] Furthermore, the video decoding device 150 can divide the non-square first coding unit 1310 into an odd number of second coding units 1314a, 1314b, and 1314c based on the division form information. The odd number of second coding units 1314a, 1314b, and 1314c may include the non-square second coding units 1314a and 1314c and the square second coding unit 1314b. In this case, the long side length of the non-square second coding units 1314a and 1314c and the side length of the square second coding unit 1314b are 1 / 2 times the side length of the first coding unit 1310, so the depths of the second coding units 1314a, 1314b, and 1314c are also a depth of D+1, which is one depth lower than D, which is the depth of the first coding unit 1310. The video decoding device 150 may determine the depth of a coding unit associated with a non-square first coding unit 1320, whose width is greater than its height, in a manner corresponding to the above-mentioned manner for determining the depth of a coding unit associated with the first coding unit 1310.

[0143] According to an embodiment, the video decoder 150 may determine an index (PID) for partitioning the divided coding units based on a size ratio between the coding units when the coding units divided into an odd number of coding units are not the same size. Referring to FIG. 13, the coding unit 1314b located in the middle of the coding units 1314a, 1314b, and 1314c divided into an odd number of coding units may have the same width as the other coding units 1314a and 1314c, but may have a height twice as high as the other coding units 1314a and 1314c. That is, in this case, the coding unit 1314b located in the middle may include the other coding units 1314a and 1314c. Therefore, if the index (PID) of the coding unit 1314b located in the middle according to the scanning order is 1, the index of the coding unit 1314c located next in the order is 3, which is increased by 2. That is, discontinuity of the index value may exist. In one embodiment, the video decoder 150 can determine whether coding units divided into an odd number of parts are not the same size as each other based on the presence or absence of discontinuities in the indexes for partitioning between such divided coding units.

[0144] According to an embodiment, the video decoder 150 may determine whether the current coding unit is divided into a specific division type based on the value of an index for distinguishing the plurality of coding units determined by dividing the current coding unit. Referring to FIG. 13, the video decoder 150 may divide a rectangular first coding unit 1310 whose height is greater than its width to determine an even number of coding units 1312a, 1312b or an odd number of coding units 1314a, 1314b, 1314c. The video decoder 150 may use an index (PID) indicating each coding unit to distinguish each of the plurality of coding units. According to an embodiment, the PID may be obtained from a sample at a predetermined position (e.g., the top left sample) of each coding unit.

[0145] According to an embodiment, the video decoder 150 may determine a coding unit at a predetermined position among the coding units determined by dividing the coding units using an index for dividing the coding units. According to an embodiment, when division type information related to a rectangular first coding unit 1310 having a height greater than a width indicates that the first coding unit 1310 is divided into three coding units, the video decoder 150 may divide the first coding unit 1310 into three coding units 1314a, 1314b, and 1314c. The video decoder 150 may assign an index related to each of the three coding units 1314a, 1314b, and 1314c. The video decoder 150 may compare the indexes related to each coding unit to determine a middle coding unit among the odd number of coding units. The video decoder 150 may determine the coding unit 1314b having an index corresponding to a middle value among the indexes based on the indexes of the coding units as a coding unit at a middle position among the coding units determined by dividing the first coding unit 1310. According to an embodiment, the video decoder 150 may determine an index for dividing the divided coding units based on a size ratio between the coding units when the coding units are not the same size. Referring to FIG. 13, a coding unit 1314b generated by dividing a first coding unit 1310 has the same width as other coding units 1314a and 1314c, but is twice as high as other coding units 1314a and 1314c, which have different heights. In this case, if the index (PID) of the middle coding unit 1314b is 1, the index of the next coding unit 1314c is 3, which is an increase of 2. In such a case, when the indexes increase uniformly but the increments vary, the video decoding device 150 may determine that the current coding unit has been divided into multiple coding units, including a coding unit having a different size from the other coding units. According to one embodiment, when the division form information indicates that the current coding unit is to be divided into an odd number of coding units, the video decoding device 150 may divide the current coding unit into a form in which a coding unit at a predetermined position among the odd number of coding units (e.g., a middle coding unit) has a different size from the other coding units.In this case, the video decoding device 150 may determine middle coding units having different sizes using an index (PID) related to the coding units. However, the above indexes and the sizes or positions of the coding units at the predetermined positions to be determined are specific for describing one embodiment, and should not be construed as being limited thereto, and various indexes, positions and sizes of the coding units may be used.

[0146] According to one embodiment, the video decoder 150 can utilize a predetermined data unit from which the recursive division of the coding unit begins.

[0147] FIG. 14 illustrates a number of coding units being determined according to a number of predetermined data units included in a picture, according to one embodiment.

[0148] According to an embodiment, the predetermined data unit is also defined as a data unit into which the coding unit starts to be recursively divided using at least one of block configuration information and division configuration information. That is, the predetermined data unit corresponds to a coding unit of the highest depth used in the process of determining a plurality of coding units into which the current picture is divided. Hereinafter, for convenience of explanation, such a predetermined data unit will be referred to as a reference data unit.

[0149] According to an embodiment, the reference data unit may have a predetermined size and shape. According to an embodiment, the reference coding unit may include MxN samples, where M and N may be the same as each other or may be integers expressed as a power of 2. That is, the reference data unit may have a square or non-square shape, and may be subsequently divided into an integer number of coding units.

[0150] According to an embodiment, the video decoding apparatus 150 may divide the current picture into a plurality of reference data units. According to an embodiment, the video decoding apparatus 150 may divide the reference data units into which the current picture is divided, using partition information related to each of the reference data units. The partitioning process of the reference data units corresponds to a partitioning process using a quad-tree structure.

[0151] According to an embodiment, the video decoding device 150 may determine in advance a minimum size that a reference data unit included in a current picture may have, and may determine reference data units of various sizes that are equal to or larger than the minimum size, and may determine at least one coding unit based on the determined reference data unit using block configuration information and partition configuration information.

[0152] 14, the video decoding apparatus 150 may use a square-shaped reference coding unit 1400 or a non-square-shaped reference coding unit 1402. According to an embodiment, the shape and size of the reference coding unit may be determined according to various data units (e.g., a sequence, a picture, a slice, a slice segment, a maximum coding unit, etc.) that may include at least one reference coding unit.

[0153] According to an embodiment, the receiving unit 160 of the video decoding device 150 may obtain at least one of information on the type of the reference coding unit and information on the size of the reference coding unit from the bitstream for each of the various data units. The process of determining at least one coding unit included in the square-shaped reference coding unit 1400 has been described through the process of dividing the current coding unit 300 in Fig. 10, and the process of determining at least one coding unit included in the non-square-shaped reference coding unit 1400 has been described through the process of dividing the current coding unit 1100 or 1150 in Fig. 11, so detailed description thereof will be omitted.

[0154] According to an embodiment, the video decoding apparatus 150 may use an index for identifying the size and type of the reference coding unit in order to determine the size and type of the reference coding unit according to a certain data unit that is determined in advance based on a predetermined condition. That is, the receiving unit 160 may acquire only an index for identifying the size and type of the reference coding unit for each slice, slice segment, maximum coding unit, etc. as a data unit that satisfies a predetermined condition (e.g., a data unit having a size equal to or smaller than a slice) among the various data units (e.g., a sequence, a picture, a slice, a slice segment, a maximum coding unit, etc.) from the bitstream. The video decoding apparatus 150 may determine the size and type of the reference data unit for each data unit that satisfies the predetermined condition by using the index. When information on the type of the reference coding unit and information on the size of the reference coding unit are acquired from the bitstream for each data unit of a relatively small size, the bitstream utilization efficiency is not good. Therefore, instead of directly acquiring information on the type of the reference coding unit and information on the size of the reference coding unit, only the index may be acquired and used. In this case, at least one of the size and type of the reference coding unit corresponding to the index indicating the size and type of the reference coding unit is also determined in advance. That is, the video decoding device 150 may determine at least one of the size and type of the reference coding unit included in the data unit serving as a reference for obtaining the index by selecting at least one of the size and type of the reference coding unit determined in advance according to the index.

[0155] According to an embodiment, the video decoding device 150 may use at least one reference coding unit included in one maximum coding unit. That is, the maximum coding unit into which a video is divided includes at least one reference coding unit, and coding units may be determined through a recursive division process of each reference coding unit. According to an embodiment, at least one of the width and height of the maximum coding unit corresponds to an integer multiple of at least one of the width and height of the reference coding unit. According to an embodiment, the size of the reference coding unit is also a size obtained by dividing the maximum coding unit n times according to a quadtree structure. That is, the video decoding device 150 may determine the reference coding unit by dividing the maximum coding unit n times according to a quadtree structure, and may divide the reference coding unit based on at least one of block shape information and division shape information according to various embodiments.

[0156] FIG. 15 illustrates processing blocks that are responsible for determining a determination order of reference coding units included in a picture 1500, according to one embodiment.

[0157] According to an embodiment, the video decoding device 150 may determine at least one processing block for dividing a picture. The processing block is a data unit including at least one reference coding unit for dividing a picture, and the at least one reference coding unit included in the processing block may be determined in a specific order. That is, the determination order of the at least one reference coding unit determined in each processing block may correspond to one of various orders in which the reference coding unit may be determined, and the determination order of the reference coding unit determined in each processing block may differ for each processing block. The determination order of the reference coding unit determined for each processing block may be one of various orders such as raster scan, Z scan, N-scan, up-right diagonal scan, horizontal scan, and vertical scan, but the order that may be determined is not limited to the scan order.

[0158] According to an embodiment, the video decoder 150 may obtain information about the size of the processing blocks and determine the size of at least one processing block included in the image. The video decoder 150 may obtain information about the size of the processing blocks from a bitstream and determine the size of at least one processing block included in the image. Such a processing block size is also a predetermined size of a data unit indicated by the information about the size of the processing blocks.

[0159] According to an embodiment, the receiving unit 160 of the video decoding device 150 may obtain information about the size of a processing block from the bitstream for each specific data unit. For example, the information about the size of a processing block may be obtained from the bitstream for each data unit such as a video, a sequence, a picture, a slice, a slice segment, etc. That is, the receiving unit 160 may obtain information about the size of a processing block from the bitstream for each of the above-mentioned many data units, and the video decoding device 150 may use the obtained information about the size of the processing block to determine the size of at least one processing block for dividing a picture, and the size of such a processing block may be an integer multiple of the size of a reference coding unit.

[0160] According to an embodiment, the video decoder 150 may determine the size of the processing blocks 1502 and 1512 included in the picture 1500. For example, the video decoder 150 may determine the size of the processing blocks based on information on the size of the processing blocks obtained from a bitstream. Referring to FIG. 15, according to an embodiment, the video decoder 150 may determine the horizontal size of the processing blocks 1502 and 1512 to be four times the horizontal size of a reference coding unit, and the vertical size of the processing blocks 1502 and 1512 to be four times the vertical size of the reference coding unit. The video decoder 150 may determine an order in which at least one reference coding unit is determined within at least one processing block.

[0161] According to one embodiment, the video decoding device 150 may determine each of the processing blocks 1502, 1512 included in the picture 1500 based on the size of the processing block, and may determine a determination order of at least one reference coding unit included in the processing blocks 1502, 1512. According to one embodiment, the determination of the reference coding unit may include determining the size of the reference coding unit.

[0162] According to an embodiment, the video decoding device 150 may acquire information on a determination order of at least one reference coding unit included in at least one processing block from a bitstream, and may determine an order in which at least one reference coding unit is determined based on the acquired information on the determination order. The information on the determination order is also defined as an order or direction in which the reference coding unit is determined within a processing block. That is, the order in which the reference coding unit is determined may be determined independently for each processing block.

[0163] According to an embodiment, the video decoding device 150 may obtain information on the determination order of the reference coding units from the bitstream for each specific data unit. For example, the receiving unit 160 may obtain information on the determination order of the reference coding units from the bitstream for each data unit such as an image, a sequence, a picture, a slice, a slice segment, a processing block, etc. Since the information on the determination order of the reference coding units indicates the determination order of the reference coding units within a processing block, the information on the determination order is also obtained for each specific data unit including an integer number of processing blocks.

[0164] The video decoder 150 may determine at least one reference coding unit based on the order determined according to an embodiment.

[0165] According to an embodiment, the receiving unit 160 may acquire information on a reference coding unit determination order as information related to the processing blocks 1502 and 1512 from a bitstream, and the video decoding device 150 may determine an order for determining at least one reference coding unit included in the processing blocks 1502 and 1512, and may determine at least one reference coding unit included in the picture 1500 according to the determination order of the coding units. Referring to FIG. 15, the video decoding device 150 may determine a determination order (1504, 1514) of at least one reference coding unit associated with each of the processing blocks 1502 and 1512. For example, when information on a determination order of the reference coding units is acquired for each processing block, the determination order of the reference coding units associated with each of the processing blocks 1502 and 1512 may differ for each processing block. When the reference coding unit determination order (1504) associated with the processing block 1502 is the raster scan order, the reference coding units included in the processing block 1502 are also determined according to the raster scan order. On the other hand, when the reference coding unit determination order (1514) associated with another processing block 1512 is the reverse of the raster scan order, the reference coding units included in the processing block 1512 are also determined according to the reverse of the raster scan order.

[0166] A method for dividing an image into maximum coding units and dividing the maximum coding units into coding units of a hierarchical tree structure has been described in Figures 1 to 15. A method for determining a quantization parameter of a current block will be described in Figures 16 to 24.

[0167] 1 may convert residual data, which is a difference between an original value and a predicted value of a pixel included in a coding unit, through a predetermined process. At this time, the video encoding device 100 may quantize the converted residual data to reduce the size of the residual data instead of losing the residual data.

[0168] The quantization of the residual data is also performed based on a quantization parameter. The quantization parameter is an index used to derive a scaling matrix required for quantization of the residual data of the current block. If the quantization parameter is large, a scaling matrix with relatively large elements is derived. Therefore, if the quantization parameter is large, more residual data is lost, but the compression rate of the residual data increases. Conversely, if the quantization parameter is small, a scaling matrix with relatively small elements is derived. Therefore, if the quantization parameter is small, less residual data is lost, but the compression rate of the residual data decreases.

[0169] That is, if the subjective image quality degradation is small even if the compression rate of the residual data increases, a high quantization parameter can be used. However, if the subjective image quality degradation is noticeable when the compression rate of the residual data increases, a low quantization parameter should be used. Therefore, even between blocks of the same picture, different quantization parameters should be used in consideration of the degree of image quality degradation.

[0170] FIG. 16 shows a video decoding device that determines a quantization parameter for a block and decodes residual data for the block using the determined quantization parameter.

[0171] The video decoding apparatus 1600 includes a quantization parameter determination unit 1610 and an inverse quantization unit 1620. In FIG. 16, the quantization parameter determination unit 1610 and the inverse quantization unit 1620 are illustrated as separate components, but according to an embodiment, the quantization parameter determination unit 1610 and the inverse quantization unit 1620 may be integrated into one component.

[0172] 16, the quantization parameter determination unit 1610 and the inverse quantization unit 1620 are expressed as a structural unit located in one device, but the devices in charge of the functions of the quantization parameter determination unit 1610 and the inverse quantization unit 1620 do not necessarily need to be physically adjacent to each other. Therefore, in some embodiments, the quantization parameter determination unit 1610 and the inverse quantization unit 1620 are distributed.

[0173] The quantization parameter determination unit 1610 and the inverse quantization unit 1620 may be implemented by one processor or by a plurality of processors, depending on the embodiment.

[0174] The video decoding device 1600 may perform inverse quantization based on a quantization group including one or more blocks. A method of inverse quantization based on a quantization group will be described below.

[0175] If the quantization parameter is different for each block, the amount of information about the quantization parameter increases. Therefore, if the quantization parameter is determined on a block-by-block basis, the coding efficiency decreases. Therefore, a method of determining the same quantization parameter for multiple blocks to increase coding efficiency is being discussed.

[0176] Generally, adjacent blocks have the same or similar quantization parameters. Therefore, the video decoding apparatus 1600 can use the same quantization parameter for the adjacent blocks. A plurality of adjacent blocks using the same quantization parameter is called a quantization group.

[0177] The quantization group is also determined based on the maximum coding unit. For example, a quantization group may be set for a block generated by dividing the maximum coding unit a predetermined number of times. If the block to which the quantization group is set is not further divided, the quantization parameter of the quantization group is applied to only one block to which the quantization group is set. Conversely, if a block corresponding to the quantization group is further divided, the quantization parameter of the quantization group is also applied to all sub-blocks generated by dividing the block to which the quantization group is set.

[0178] Alternatively, the quantization group may be determined based on the size. For example, if the size of a block is equal to or smaller than the quantization group reference size, a quantization group may be set for the block. If the block to which the quantization group is set is not further divided, the quantization parameter of the quantization group is applied to only the one block to which the quantization group is set. Conversely, if the block corresponding to the quantization group is further divided, the quantization parameter of the quantization group is also applied to all the sub-blocks generated by dividing the block to which the quantization group is set. Therefore, by determining the quantization parameter of the block based on the quantization group, the information about the quantization parameter is reduced.

[0179] The quantization parameter determination unit 1610 may acquire a differential quantization parameter allowance flag for a higher data unit of a current quantization group, and may acquire a differential quantization parameter of a current block when the differential quantization parameter allowance flag indicates that determination of a quantization parameter based on a differential quantization parameter is allowed.

[0180] The higher data unit may be one of a video parameter set (VPS), a sequence parameter set (SPS), and a picture parameter set (PPS). Therefore, the quantization parameter determination unit 1610 may apply a method of determining a quantization parameter according to a quantization group to all blocks included in the higher data unit.

[0181] The quantization parameter determination unit 1610 may acquire quantization group information for a higher data unit of a current quantization group. The quantization group information indicates a method for determining a quantization group. For example, the quantization group information may include block division information or block size information. The quantization parameter determination unit 1610 may acquire the quantization group information if the differential quantization parameter allowance flag allows a differential quantization parameter.

[0182] The quantization parameter determination unit 1610 determines a predicted quantization parameter of a current quantization group determined according to at least one of block division information and block size information.

[0183] The block division information may include a quadtree division number and a non-quadtree division number. The quadtree division number indicates the number of times that quadtree division is performed to obtain the current quantization group from the largest coding block. For example, the division according to 210d in FIG. 2 corresponds to a quadtree division.

[0184] The non-quadtree division count indicates the number of times that division other than quadtree division is performed to obtain the current quantization group from the largest coding block. For example, the division method disclosed in FIG. 3 corresponds to the non-quadtree division.

[0185] The block size information may include the width of the block, or the binary logarithm of the width of the block, and may also include the height and width of the block, or the binary logarithm of the height and width of the block.

[0186] According to an embodiment, the quantization parameter determination unit 1610 may determine the current quantization group according to the number of quadtree divisions. If only quadtree division is used for maximum coding unit division, the quantization group may be set for blocks having a size equal to or larger than a predetermined size according to the number of quadtree divisions. For example, if the size of the maximum coding unit is 256x256 and the number of quadtree divisions is two, the quantization group is set for blocks having a size of 64x64 or larger.

[0187] 17A to 17D, an embodiment in which the quantization group is determined by the number of quadtree divisions will be described.

[0188] According to FIG. 17A, the maximum coding block 1700 is divided into four blocks 1702, 1704, 1706, and 1708 by quadtree division. The quadtree division counts of the blocks 1702, 1704, 1706, and 1708 are set to 1. The block 1704 is divided into four blocks 1710, 1712, 1714, and 1716 by quadtree division. The quadtree division counts of the blocks 1710, 1712, 1714, and 1716 are set to 2. The block 1716 is divided into four blocks 1718, 1720, 1722, and 1724 by quadtree division. The quadtree division counts of the blocks 1718, 1720, 1722, and 1724 are set to 3. Prediction and transform coding, and decoding are performed based on blocks 1702, 1706, 1708, 1710, 1712, 1714, 1718, 1720, 1722, and 1724 determined by completing the division of the largest coding block 1700.

[0189] 17A, the size of the divided blocks is reduced by half as the quadtree division count increases by 1. Therefore, if only quadtree division is allowed, the size of the blocks can be determined by the quadtree division count.

[0190] Figure 17B illustrates an embodiment of determining a quantization group for a block with a quadtree division number of 1. According to Figure 17B, quantization groups are set for four blocks 1702, 1704, 1706, and 1708 with a quadtree division number of 1.

[0191] The quantization groups for blocks 1702, 1706, and 1708 each include only one block. However, the quantization group for block 1704 includes the subblocks 1710, 1712, 1714, 1718, 1720, 1722, and 1724 of block 1704. Therefore, the subblocks 1710, 1712, 1714, 1718, 1720, 1722, and 1724 of block 1704 may be quantized and dequantized using the same quantization parameter.

[0192] Figure 17C illustrates an embodiment of determining quantization groups for blocks with a quadtree division count of 2. According to Figure 17C, quantization groups are set for blocks 1702, 1706, 1708, 1710, 1712, 1714, and 1716, whose quadtree division counts are 2 or less. In the case of blocks 1702, 1706, and 1708, quantization groups are set for blocks 1702, 1706, and 1708, because the quadtree division count is not further divided by 1.

[0193] The quantization groups for blocks 1702, 1706, 1708, 1710, 1712, and 1714 each include only one block. However, the quantization group for block 1716 includes the subblocks 1718, 1720, 1722, and 1724 of block 1716. Therefore, the subblocks 1718, 1720, 1722, and 1724 of block 1716 may be quantized and dequantized using the same quantization parameter.

[0194] Figure 17D illustrates an embodiment of determining a quantization group for a block with a quadtree division number of 3. In Figure 17D, since there is no block with a quadtree division number of 4, a quantization group is set for all blocks 1702, 1706, 1708, 1710, 1712, 1714, 1718, 1720, 1722, and 1724.

[0195] According to Figures 17A to 17D, the more the number of quadtree divisions in the block division information increases, the smaller the size of the quantization group becomes. Conversely, the more the number of quadtree divisions in the block division information decreases, the larger the size of the quantization group becomes. Therefore, the size of the quantization parameter information increases or decreases depending on the number of quadtree divisions in the block division information.

[0196] The quantization parameter determination unit 1610 may determine the current quantization group according to the number of quadtree divisions and the number of non-quadtree divisions. If not only quadtree division but also non-quadtree division is applied to block division, the quantization group determination method illustrated in Figures 17A to 17D is not applied. Therefore, the quantization group may be determined by additionally considering the number of non-quadtree divisions, or a method of determining a quantization group according to the size of the quantization group may be applied. Figures 18A to 18C illustrate an embodiment of a quantization group determination method for a maximum coding block to which non-quadtree division is applied.

[0197] 18A illustrates how the largest coding block 1800 is divided. The numbers displayed inside the blocks indicate the number of divisions from the largest coding block 1800.

[0198] The maximum coding block 1800 is quadtree divided into four blocks 1802, 1804, 1806, and 1808. Since block 1802 is not further divided, the division count of block 1802 is 1. The following description is based on the assumption that the size of maximum coding block 1800 is 4Nx4N.

[0199] Block 1804 is divided into two 2NxN blocks 1810 and 1812. Block 1810 is then divided into two NxN blocks 1814 and 1816, and block 1812 is divided into two N / 2xN blocks 1818 and 1822, and one NxN block 1820. The division count for each of the lower blocks 1814, 1816, 1818, 1820, and 1822 of block 1804 is three.

[0200] The block 1806 is divided into two Nx2N blocks 1824 and 1826. The block 1824 is divided into two NxN blocks 1828 and 1830, and the block 1826 is divided into two NxN / 2 blocks 1840 and 1844 and one NxN block 1842. The block 1828 is divided into two N / 2xN blocks 1832 and 1834. The block 1834 is divided into two N / 2xN / 2 blocks 1836 and 1838. The number of divisions of the lower blocks 1828, 1830, 1840, 1842, and 1844 of the block 1806 is 3. The number of divisions of the block 1832 divided from the block 1828 is 4, and the number of divisions of the blocks 1836 and 1838 is 5.

[0201] Block 1808 is divided into four NxN blocks 1846, 1848, 1850, and 1852. Block 1846 is divided into four NxN blocks 1854, 1856, 1858, and 1860. Block 1848 is divided into two Nx2N blocks 1862 and 1864, and block 1862 is divided into two NxN blocks 1866 and 1868. The number of divisions of blocks 1850 and 1852 is 2, and the number of divisions of blocks 1854, 1856, 1858, 1860, and 1864 is 3. The number of divisions of blocks 1866 and 1868 is 4.

[0202] If the quantization group is determined by the number of times the block is divided, there is a problem that the size of the quantization group is not uniform. Specifically, the non-uniformity of the quantization group size is explained in FIG. 18B.

[0203] Figure 18B describes an embodiment in which quantization groups are set for blocks whose division number is 3. According to Figure 18B, quantization groups are set for blocks 1802, 1814, 1816, 1818, 1820, 1822, 1828, 1830, 1840, 1842, 1844, 1850, 1852, 1854, 1856, 1858, 1860, 1862, and 1864 whose division number is 3 or less.

[0204] However, although the number of divisions for block 1814 and block 1854 is the same, the size of block 1814 is four times the size of block 1854. Furthermore, while blocks 1836 and 1854 are the same size, the quantization parameters of the quantization group corresponding to block 1828 are applied to block 1836, while the quantization parameters of the quantization group corresponding to block 1854 are applied to block 1854.

[0205] When only quadtree division is performed as in the embodiment of Figures 17A to 17D, the size of the quantization groups is the same. However, as described above, when non-quadtree division is performed, if the quantization groups are set according to the number of divisions, there is a problem that the sizes of the quantization groups are different.

[0206] A method for solving the above problem is described in FIG. 18C. For example, the quantization parameter determination unit 1610 can determine the current quantization group by a weighted sum of the number of quadtree divisions and the number of non-quadtree divisions. The quadtree division is equivalent to successively applying vertical division and horizontal division. Therefore, one quadtree division is substantially equivalent to two non-quadtree divisions.

[0207] Therefore, the quantization parameter determination unit 1610 can subdivide the number of divisions into quadtree divisions and non-quadtree divisions, and set the quantization group based on the weighted sum of the quadtree divisions and non-quadtree divisions with a weighting value of 2:1.

[0208] For example, block 1814 is generated from the maximum coding block 1800 by one quadtree division and two non-quadtree divisions. Therefore, the weighted sum of the number of quadtree divisions and the number of non-quadtree divisions by the weighting value of 2:1 of block 1814 is 4. And block 1846 is generated from the maximum coding block 1800 by two quadtree divisions. Therefore, the weighted sum of the number of quadtree divisions and the number of non-quadtree divisions by the weighting value of 2:1 of block 1846 is 4. Therefore, when a quantization group is set for a block whose weighting sum is 4, in FIG. 18C, unlike FIG. 18B, block 1854 acquires a quantization parameter from the quantization group set for block 1846.

[0209] According to another embodiment, the quantization parameter determination unit 1610 may determine the current quantization group based on the sum of the height and width of the block or the average of the height and width of the block. For example, when a quantization group is set for a block of size NxN, a quantization group is set for blocks 1814 and 1846. Therefore, unlike FIG. 18B, in FIG. 18C, block 1854 will obtain a quantization parameter from the quantization group set for block 1846. Since upper blocks 1812 and 1826 are larger than NxN size and do not have corresponding quantization groups, quantization groups are set for blocks 1818, 1822, 1840, and 1844, even though they are smaller than NxN size.

[0210] Similarly, the quantization parameter determination unit 1610 may determine the current quantization group based on the sum of the binary logarithm values ​​of the height and width of the block, or the average of the binary logarithm values ​​of the height and width of the block, or based on the width of the block, or based on the binary logarithm value of the width.

[0211] The quantization parameter determination unit 1610 can determine a predicted quantization parameter for the current block based on the quantization parameter of the upper adjacent block of the current quantization group, the quantization parameter of the left adjacent block of the current quantization group, and the quantization parameter of the quantization group decoded immediately before the current quantization group.

[0212] For example, the quantization parameter determination unit 1610 may determine the average of the quantization parameter of the upper adjacent block and the quantization parameter of the left adjacent block as the quantization parameter of the current quantization group. If the quantization parameter of the upper adjacent block does not exist, the quantization parameter determination unit 1610 may use the quantization parameter of the quantization group decoded immediately before the current quantization group, instead of the quantization parameter of the upper adjacent block, to determine the quantization parameter of the current quantization group. Similarly, if the quantization parameter of the left adjacent block does not exist, the quantization parameter determination unit 1610 may use the quantization parameter of the quantization group decoded immediately before the current quantization group, instead of the quantization parameter of the left adjacent block, to determine the quantization parameter of the current quantization group. In addition, the quantization parameter determination unit 1610 may determine a base quantization parameter of the slice or picture as a predicted quantization parameter. For example, when there is no quantization parameter of an upper neighboring block, a quantization parameter of a left neighboring block, or a quantization parameter of a quantization group decoded immediately before the current quantization group, the base quantization parameter may be used.

[0213] The quantization parameter determination unit 1610 determines a differential quantization parameter of the current quantization group. The quantization parameter determination unit 1610 can acquire differential quantization parameter size information and differential quantization parameter code information from a bitstream. The quantization parameter determination unit 1610 can then determine a differential quantization parameter of the current quantization group based on the differential quantization parameter size information and the differential quantization parameter code information.

[0214] When the current quantization group includes two or more blocks, the quantization parameter determination unit 1610 may obtain differential quantization parameter size information and differential quantization parameter code information for the block that is decoded first in the scanning order. Then, the quantization parameter determination unit 1610 does not obtain differential quantization parameter size information and differential quantization parameter code information for the remaining blocks of the current quantization group, and applies the quantization parameter determined for the block that is decoded first to the remaining blocks. As a result, the quantization parameter determination unit 1610 applies the same quantization parameter to all blocks of the current quantization group.

[0215] The quantization parameter determination unit 1610 may decode all blocks of the current quantization group and initialize a differential quantization parameter and information related to the differential quantization parameter when decoding a block of a new quantization group. The information related to the differential quantization parameter may include differential quantization parameter decoding information indicating whether the differential quantization parameter has already been decoded and quantization group position information indicating the position of the quantization group.

[0216] The quantization parameter determination unit 1610 may initialize the differential quantization parameter and information related to the differential quantization parameter, and obtain new differential quantization parameter size information and differential quantization parameter code information from the bitstream.

[0217] The quantization parameter determination unit 1610 determines a quantization parameter of a current quantization group based on a predicted quantization parameter of the current quantization group and a differential quantization parameter. Specifically, the quantization parameter determination unit 1610 may determine a quantization parameter based on a sum of a predicted quantization parameter of the current quantization group and a differential quantization parameter. According to an embodiment, the quantization parameter determination unit 1610 may obtain quantization parameter offset information from a bitstream and adjust the determined quantization parameter according to the quantization parameter offset information.

[0218] The inverse quantization unit 1620 inverse quantizes the current block included in the current quantization group according to the quantization parameter of the current quantization group.

[0219] FIG. 19 illustrates a syntax structure for a method of decoding a differential quantization parameter included in a bitstream when both quadtree partitioning and non-quadtree partitioning are allowed.

[0220] The top table of Figure 19 describes a quadtree division syntax structure (coding_quadtree). The quadtree division syntax structure of Figure 19 discloses a configuration for determining whether to initialize a differential quantization parameter and information related to the differential quantization parameter before determining whether to perform quadtree division.

[0221] In the quadtree partitioning syntax structure in Fig. 19, "cu_qp_delta_enabled_flag" indicates a differential quantization parameter enable flag, "cqtDepth" indicates the number of quadtree partitions, "diff_cu_qp_delta_depth" indicates block partition information, "CuQpDeltaVal" indicates a differential quantization parameter, "IsCuQpDeltaCoded" indicates differential quantization parameter decoding information, and "CuQgTopLeftX" and "CuQgTopLeftY" indicate quantization group position information.

[0222] According to FIG. 19, when "cu_qp_delta_enabled_flag" indicates 1 and "cqtDepth" is smaller than or equal to "diff_cu_qp_delta_depth", "CuQpDeltaVal" and "IsCuQpDeltaCoded" are determined to be 0, and "CuQgTopLeftX" and "CuQgTopLeftY" are determined to be x0, y0 indicating the upper left sample position of the current block.

[0223] When "cu_qp_delta_enabled_flag" indicates 1, it means that acquisition of a differential quantization parameter is permitted.

[0224] And, "cqtDepth" being smaller than or equal to "diff_cu_qp_delta_depth" means that the quadtree division number of the current block is smaller than or equal to the division number that is the reference of the quantization group indicated by the block division information. That is, the quadtree division number of the current block being smaller than or equal to the division number that is the reference of the quantization group indicates that the current block is not included in the quantization group of the block decoded before the current block.

[0225] When the above condition is satisfied, 'CuQpDeltaVal' and 'IsCuQpDeltaCoded' are determined to be 0, and new differential quantization parameters related to the quantization group located at 'CuQgTopLeftX' and 'CuQgTopLeftY' are obtained from the differential quantization parameter information newly obtained from the bitstream.

[0226] The non-quadtree partitioning syntax structure is described in the center table of Figure 19. The non-quadtree partitioning syntax structure of Figure 19 discloses a configuration for determining whether to initialize a differential quantization parameter and information related to the differential quantization parameter before determining whether to perform non-quadtree partitioning.

[0227] In the non-quadtree partitioning syntax structure in Fig. 19, "cu_qp_delta_enabled_flag" indicates a differential quantization parameter enable flag, "cqtDepth" indicates the number of quadtree partitions, "mttDepth" indicates the number of non-quadtree partitions, "diff_cu_qp_delta_depth" indicates block partition information, "CuQpDeltaVal" indicates a differential quantization parameter, "IsCuQpDeltaCoded" indicates differential quantization parameter decoding information, and "CuQgTopLeftX" and "CuQgTopLeftY" indicate quantization group position information.

[0228] According to FIG. 19, when "cu_qp_delta_enabled_flag" indicates 1, and the sum of "cqtDepth" and "mttDepth" is smaller than or equal to "diff_cu_qp_delta_depth", "CuQpDeltaVal" and "IsCuQpDeltaCoded" are determined to be 0, and "CuQgTopLeftX" and "CuQgTopLeftY" are determined to be x0, y0, indicating the upper left sample position of the current block.

[0229] Similar to the quadtree partitioning syntax structure, the differential quantization parameter and information related to the differential quantization parameter are also initialized in the non-quadtree partitioning syntax structure. However, unlike the quadtree partitioning syntax structure, the non-quadtree partitioning syntax structure is different in that the sum of "cqtDepth" and "mttDepth" is compared with "diff_cu_qp_delta_depth" instead of "cqtDepth". In FIG. 19, the sum of "cqtDepth" and "mttDepth" is compared with "diff_cu_qp_delta_depth", but according to an embodiment, the weighted sum of "cqtDepth" and "mttDepth" is also compared with "diff_cu_qp_delta_depth".

[0230] The bottom table of Figure 19 describes the transform block syntax structure. tu_cbf_luma[x0][y0] indicates whether residual data exists in the current luma block located at (x0,y0). And tu_cbf_cb[x0][y0] and tu_cbf_cr[x0][y0] indicate whether residual data exists in the current Cb block and the current Cr block located at (x0,y0), respectively. If there is no residual data for the current luma block, the current Cb block, and the current Cr block, the differential quantization parameter information is not obtained.

[0231] On the other hand, if any one of the current luma block, the current Cb block, and the current Cr block includes residual data, 'cu_qp_delta_abs' indicating differential quantization parameter size information and 'cu_qp_delta_sign_flag' indicating differential quantization parameter sign information are obtained from the bitstream. Then, 'CuQpDeltaVal' indicating a differential quantization parameter is determined from 'cu_qp_delta_abs' and 'cu_qp_delta_sign_flag'. In addition, 'IsCuQpDeltaCoded' indicating whether a differential quantization parameter exists is determined to be 1.

[0232] If the block to be decoded after the current block is included in the same quantization group as the current block (i.e., if 'cqtDepth' or the (weighted) sum of 'cqtDepth' and 'mttDepth' is greater than 'diff_cu_qp_delta_depth'), 'CuQpDeltaVal' and 'IsCuQpDeltaCoded' are not initialized, so the block to be decoded after the current block is inverse quantized by 'CuQpDeltaVal' used in the decoding process of the current block.

[0233] In FIG. 19, the configuration for acquiring the differential quantization parameter information is implemented using the transform block syntax, but may be implemented using other syntaxes depending on the embodiment.

[0234] FIG. 20 illustrates a video decoding method in which a quantization parameter of a block is determined according to a quantization group, and residual data of the block is decoded according to the determined quantization parameter.

[0235] In step 2010, a predicted quantization parameter of a current quantization group determined according to at least one of block division information and block size information is determined.

[0236] The current quantization group is also determined by the number of quadtree divisions and the number of non-quadtree divisions. Specifically, the current quantization group is also determined by a weighted sum of the number of quadtree divisions and the number of non-quadtree divisions.

[0237] The current quantization group may also be determined based on the sum of the block heights and widths, or the average of the block heights and widths, or the sum of the binary logarithms of the block heights and widths, or the average of the binary logarithms of the block heights and widths, or the current quantization group may also be determined based on the block width, or the binary logarithm of the width.

[0238] A predicted quantization parameter of the current block may be determined based on the quantization parameter of the upper adjacent block of the current quantization group, the quantization parameter of the left adjacent block of the current quantization group, and the quantization parameter of the quantization group decoded immediately before the current quantization group.

[0239] A differential quantization parameter of the current quantization group is determined in step 2020. Specifically, differential quantization parameter size information and differential quantization parameter code information may be obtained from a bitstream. Then, a differential quantization parameter of the current quantization group may be determined according to the differential quantization parameter size information and the differential quantization parameter code information.

[0240] According to one embodiment, when the differential quantization parameter allowance flag indicates that it is allowable to determine the quantization parameter based on the differential quantization parameter, the differential quantization parameter of the current block may be obtained.

[0241] In step 2030, a quantization parameter of the current quantization group is determined based on the predicted quantization parameter and the differential quantization parameter of the current quantization group. For example, the quantization parameter of the current quantization group may be determined based on the sum of the predicted quantization parameter and the differential quantization parameter.

[0242] In step 2040, the current block included in the current quantization group is dequantized according to the quantization parameters of the current quantization group.

[0243] 16. Also, the video decoding method of FIG. 20 may include various embodiments of a method for determining a quantization parameter according to a quantization group of the video decoding device of FIG.

[0244] The video decoding device 1600 may perform inverse quantization based on a quantization parameter unit indicating an area in which the same quantization parameter is used. Hereinafter, a method of inverse quantization based on a quantization parameter unit will be described.

[0245] FIG. 21 illustrates one embodiment of a quantization parameter unit structure and a coding block tree structure.

[0246] Each part of a picture or slice has a different degree of subjective image quality degradation. Therefore, in order to optimize the coding rate, it is necessary to set other quantization parameters according to the characteristics of each part of a picture or slice. The distribution of the quantization parameters is not the same as the coding block tree structure, which is the basic unit of coding. Therefore, the quantization parameter unit map is determined independently of the coding block tree structure.

[0247] In FIG. 21, the quantization parameter unit 2110 is also a rectangle of size MxN. In this case, the picture is represented by a quantization parameter map 2120 composed of a plurality of quantization parameter units. In the quantization parameter map 2120, each quantization parameter unit has a quantization parameter. In FIG. 21, the quantization parameter unit 2110 is represented as a rectangle, but according to an embodiment, the quantization parameter unit 2110 may be represented in other irregular shapes other than a rectangle.

[0248] The quantization parameter of the quantization parameter unit 2110 is also determined by the characteristics of a part of the corresponding picture. The quantization parameters of the quantization parameter unit map 2120 and the quantization parameter unit 2110 are independently coded and decoded with respect to the predictive coding information according to the coding block structure 2140. Then, in the coding and decoding process of the residual data of the coding block 2130, the quantization parameter may be obtained from the quantization parameter unit 2110 corresponding to the position of the coding block 2130.

[0249] The quantization parameter determination unit 1610 can match the current block with the current quantization parameter unit based on at least one of the position and the size of the current block.

[0250] For example, the quantization parameter determination unit 1610 may determine a quantization parameter unit including a coordinate value of the upper left sample of the current block as the current quantization parameter unit of the current block.

[0251] As another example, when the current block includes multiple quantization parameter units, the quantization parameter determination unit 1610 may determine the multiple quantization parameter units as the current quantization parameter unit of the current block. In this case, the quantization parameter determination unit 1610 may determine an average value of the multiple quantization parameters of the current quantization parameter unit as the quantization parameter of the current block.

[0252] 22A and 22B, a method for determining a quantization parameter unit corresponding to a current block is illustrated.

[0253] 22A illustrates an embodiment in which a number of coding blocks 2202 to 2224 correspond to a quantization parameter unit 2200. The blocks 2202, 2204, 2206, 2210, 2212, and 2214, all included in the quantization parameter unit 2200, are dequantized by the quantization parameter corresponding to the quantization parameter unit 2200.

[0254] For blocks that are only partially included in the quantization parameter unit 2200, it may be determined whether or not the quantization parameters of the quantization parameter unit 2200 are applied based on the top left sample of the block. Therefore, blocks 2208, 2216, 2218, 2220, 2222, and 2224 whose top left samples are included in the quantization parameter unit 2200 are also inverse quantized by the quantization parameters corresponding to the quantization parameter unit 2200.

[0255] In FIG. 22A, an embodiment has been described in which the quantization parameter unit is determined based on the upper left sample of the block. However, depending on the embodiment, the quantization parameter unit of the block may be determined based on the central sample, the idol sample, the lower left sample, the lower right sample, etc. of the block.

[0256] FIG. 22B shows an embodiment in which block 2250 corresponds to multiple quantization parameter units 2252 through 2274 .

[0257] Quantization parameter units 2252, 2254, 2258, 2260, 2264, and 2266 are all contained within block 2250. Thus, block 2250 is also dequantized by at least one quantization parameter of quantization parameter units 2252, 2254, 2258, 2260, 2264, and 2266. For example, the quantization parameter of block 2250 may be determined to be the average of the quantization parameters of quantization parameter units 2252, 2254, 2258, 2260, 2264, and 2266.

[0258] Alternatively, quantization parameter units 2256, 2262, 2268, 2270, 2272, and 2274 that only partially overlap with block 2250 may also be used to determine the quantization parameters of block 2250. Thus, block 2250 may be inverse quantized using the quantization parameters determined from at least one of quantization parameter units 2252 through 2274.

[0259] 23A and 23B illustrate the correspondence between blocks and quantization parameter units.

[0260] FIG. 23A illustrates a block tree structure and a quantization parameter map according to one embodiment. According to one embodiment, the quantization parameter unit corresponding to the top left sample of a block corresponds to the block. Thus, block 2308 corresponds to quantization parameter unit 2300, block 2310 corresponds to quantization parameter unit 2302, block 2312 corresponds to quantization parameter unit 2304, and block 2314 corresponds to quantization parameter unit 2306. If the correspondence criteria between blocks and quantization parameter units are different, block 2308 corresponds to the other quantization parameter units 2302, 2304, and 2306.

[0261] FIG. 23B illustrates a block tree structure and a quantization parameter map according to an embodiment. As in FIG. 23A, when the quantization parameter unit corresponding to the upper left sample of the block corresponds to the block, blocks 2328, 2330, 2332, and 2334 all correspond to the quantization parameter unit 2334. Since the quantization parameters of the quantization parameter unit 2334 are applied to blocks 2328, 2330, 2332, and 2334, the quantization parameters are calculated first for block 2328, which is the first block in the decoding order. Then, the quantization parameters used for block 2328 can be used as they are for blocks 2330, 2332, and 2334.

[0262] For blocks without residual data, a quantization parameter is not determined. For example, if there is no residual data in block 2328, inverse quantization for block 2328 is not necessary, and therefore a quantization parameter for block 2328 is not determined. If there is residual data in block 2330, which is decoded next to block 2328, a quantization parameter for block 2330 may be determined. In addition, the quantization parameter used for block 2330 may be used for blocks 2332 and 2334 as is.

[0263] The quantization parameter determination unit 1610 may obtain a predicted quantization parameter related to a current quantization parameter unit.

[0264] The quantization parameter determination unit 1610 can obtain a predicted quantization parameter from at least one of a quantization parameter unit to the left of the current quantization parameter unit, a quantization parameter unit above the current quantization parameter unit, and a block decoded immediately before the current block.

[0265] Alternatively, the quantization parameter determination unit 1610 may determine a predicted quantization parameter related to a picture or slice including the current quantization parameter unit as a predicted quantization parameter related to the current quantization parameter unit.

[0266] The quantization parameter determination unit 1610 can obtain a differential quantization parameter related to a current quantization parameter unit.

[0267] The quantization parameter determination unit 1610 may determine a quantization parameter of a current quantization parameter unit based on the predicted quantization parameter and the differential quantization parameter.

[0268] The inverse quantization unit 1620 can inverse quantize the current block using the quantization parameter of the current quantization parameter unit.

[0269] FIG. 24 illustrates a video decoding method in which a quantization parameter unit determines a quantization parameter for a block, and decodes residual data of the block according to the determined quantization parameter.

[0270] In step 2410, the current block is matched with the current quantization parameter unit based on at least one of the position and size of the current block.

[0271] According to one embodiment, the quantization parameter unit containing the coordinate value of the top-left sample of the current block is also determined as the current quantization parameter unit of the current block.

[0272] According to an embodiment, when the current block includes a plurality of quantization parameter units, the plurality of quantization parameter units are also determined as a current quantization parameter unit of the current block, and a current quantization parameter of the current block may be determined from at least one of the plurality of quantization parameter units.

[0273] In step 2420, a predicted quantization parameter associated with the current quantization parameter unit is obtained.

[0274] In one embodiment, the predicted quantization parameter may also be from at least one of a quantization parameter unit to the left of the current quantization parameter unit, a quantization parameter unit above the current quantization parameter unit, and a block decoded immediately before the current block.

[0275] Alternatively, a predicted quantization parameter for a picture or slice including the current quantization parameter unit and a predicted quantization parameter for the current quantization parameter unit are also determined.

[0276] In step 2430, a differential quantization parameter associated with the current quantization parameter unit is obtained.

[0277] Step 2440 determines a quantization parameter for the current quantization parameter unit based on the predicted quantization parameter and the differential quantization parameter.

[0278] Step 2450 inverse quantizes the current block using the quantization parameters of the current quantization parameter unit.

[0279] 24 may include various embodiments of a method for determining a quantization parameter according to a quantization group in the video decoding device of FIG.

[0280] According to the video encoding technique based on the coding unit of a tree structure described with reference to Figures 1 to 24, video data in the spatial domain is encoded for each coding unit of a tree structure, and according to the video decoding technique based on the coding unit of a tree structure, the video data in the spatial domain is restored while decoding is performed for each maximum coding unit, and video, which is a picture and a picture sequence, may be restored. The restored video may be played back by a playback device, stored in a recording medium, or transmitted over a network.

[0281] The above-described embodiments of the present disclosure can be created into a program that can be executed by a computer, and can also be embodied in a general-purpose digital computer that runs the program using a computer-readable recording medium.

[0282] Although the present disclosure has been described in relation to certain best embodiments, other alternatives, variations and modifications of the present disclosure will be apparent to those skilled in the art in light of the foregoing description. That is, the claims are intended to include all such alternatives, variations and modifications. Accordingly, all contents described in the specification and drawings of this application should be interpreted in an illustrative and non-limiting sense.

Claims

1. Dividing the upper coding block into a plurality of lower coding blocks according to the block division information; determining the current quantization group based on a value of partition information of a current coding block among the plurality of lower coding blocks and a value of partition information of a current quantization group; obtaining a quantization parameter of the current quantization group based on the predicted quantization parameter and a differential quantization parameter; and dequantizing transform coefficients in a current transform block in the current coding block using the quantization parameter; The differential quantization parameter is obtained using information related to an absolute value of the differential quantization parameter and information related to a sign of the differential quantization parameter, If the current coding block is obtained by dividing the upper coding block into two lower coding blocks by non-quadtree division, the value of the division information of the current coding block is increased by 1; 11. The method of claim 10, wherein when the currently coded block is obtained by dividing the upper coded block into four lower coded blocks by quadtree division, a value of partition information of the currently coded block is increased by two.

2. Dividing the upper coding block into a plurality of lower coding blocks according to the block division information; determining the current quantization group based on a value of partition information of a current coding block among the plurality of lower-level coding blocks and a value of partition information of a current quantization group; Obtaining a quantization parameter of the current quantization group based on the predicted quantization parameter and the differential quantization parameter; a processor for inverse quantizing transform coefficients in a current transform block in the current coding block using the quantization parameter; The differential quantization parameter is obtained using information related to an absolute value of the differential quantization parameter and information related to a sign of the differential quantization parameter, If the current coding block is obtained by dividing the upper coding block into two lower coding blocks by non-quadtree division, the value of the division information of the current coding block is increased by 1; 23. A video decoding apparatus, comprising: a video decoding unit for decoding a currently coded block by dividing the currently coded block into four lower coded blocks by quadtree partitioning;

3. dividing the upper coding block into a plurality of lower coding blocks; determining the current quantization group based on a value of partition information of a current coding block among the plurality of lower coding blocks and a value of partition information of a current quantization group; obtaining a quantization parameter of the current quantization group based on the predicted quantization parameter and a differential quantization parameter; quantizing transform coefficients in a current transform block in the current coding block using the quantization parameter; information related to the absolute value of the differential quantization parameter and information related to the sign of the differential quantization parameter are obtained using the differential quantization parameter; If the current coding block is obtained by dividing the upper coding block into two lower coding blocks by non-quadtree division, the value of the division information of the current coding block is increased by 1; A method for storing data generated by a video encoding method, in which when the currently encoded block is obtained by dividing the upper encoded block into four lower encoded blocks by quadtree partitioning, a value of partition information of the currently encoded block increases by 2.

4. Dividing the upper coding block into a plurality of lower coding blocks; determining the current quantization group based on a value of partition information of a current coding block among the plurality of lower-level coding blocks and a value of partition information of a current quantization group; Obtaining a quantization parameter of the current quantization group based on the predicted quantization parameter and the differential quantization parameter; a processor for quantizing transform coefficients in a current transform block in the current coding block using the quantization parameter; information related to the absolute value of the differential quantization parameter and information related to the sign of the differential quantization parameter are obtained using the differential quantization parameter; If the current coding block is obtained by dividing the upper coding block into two lower coding blocks by non-quadtree division, the value of the division information of the current coding block is increased by 1; 23. An image encoding apparatus, comprising: an image encoding unit that generates an image encoding block having a plurality of sub-blocks, each sub-block having a plurality of sub-blocks, each sub-block having a plurality of sub-blocks, each sub-block having a plurality of sub-blocks.

Citation Information

Patent Citations

  • Image decoding device, image decoding method, and image decoding program

    JP2013223097A

  • Determination of quantization parameter (qp) and delta qp values ​​for palette-coded blocks in video coding

    JP2017521920A

  • Encoding method and device thereof, decoding method and device thereof

    JP7614412B2

  • Method and apparatus for obtaining size of transform block

    US20140112593A1

  • Image decoding apparatus, image coding apparatus, and prediction image generation device

    WO2015194669A1