Encoding method and apparatus therefor, and decoding method and apparatus therefor
The method optimizes video encoding and decoding by determining quantization parameters based on block partition and size, enhancing compression efficiency and maintaining image quality in bandwidth-limited video transmission.
Patent Information
- Application Number
- JP2025150705
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2018-02-09
- Filing Date
- 2025-09-10
- Publication Date
- 2025-11-26
- Estimated Expiration
- 2039-01-02
AI Technical Summary
High-quality video transmission is limited by bandwidth constraints, requiring efficient video data encoding and decoding methods that increase compression rates while minimizing image quality degradation.
A video encoding and decoding method that determines quantization parameters based on block partition information and size, using a predicted and differential quantization parameter approach to optimize compression efficiency.
Efficiently compresses video data by determining quantization parameters, reducing the amount of coding information required and maintaining image quality.
Smart Images

Figure 2025172961000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to video encoding and decoding methods, and more particularly to methods for efficiently encoding and decoding information about motion vectors. [Background technology]
[0002] High-quality video requires a large amount of data during encoding. However, the bandwidth allowed for transmitting video data is limited, which restricts the data rate applied when transmitting video data. Therefore, for efficient video data transmission, a video data encoding and decoding method that increases the 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, coded information is transmitted in units of pixel data to remove the redundancy between adjacent pixels.
[0004] The pixel values of pixels included in a data unit are not directly transmitted, but a method required to obtain the pixel values is transmitted. A prediction method for predicting pixel values similar to the original values is determined for each data unit, and coding information related to the prediction method is transmitted from the encoder to the decoder. In addition, since the predicted values are not completely identical to the original values, residual data related to the difference between the original values and the predicted values is transmitted from the encoder to the decoder.
[0005] As prediction accuracy increases, the amount of coding information required to identify a prediction method increases, but the size of residual data decreases. Therefore, a prediction method is determined taking into account the sizes of the coding information and the 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 likely to decrease, but the amount of coding information decreases. Therefore, the block size is determined to suit the characteristics of the 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 referencing pixels of other pictures referenced by the picture containing the block. Thus, intra-prediction eliminates spatial redundancy, and inter-prediction eliminates temporal redundancy.
[0007] As the number of prediction methods increases, the amount of coding information required to indicate the prediction methods also 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 quantization groups based on block partition information and block size information. Also, a video decoding method and a video decoding device are disclosed that determine quantization parameters of quantization groups based on block partition information and block size information.
[0010] Also disclosed are a video encoding method and a video encoding device that match a current block with a current quantization parameter unit based on at least one of the position and size of the current block, and a video decoding method and a video decoding device that match a current block with a current quantization parameter unit based on at least one of the position and size of the current block.
[0011] Additionally, a computer-readable recording medium is disclosed that stores a program for causing a computer to execute the video encoding method and the video decoding method according to an embodiment of the present disclosure. [Means for solving the problem]
[0012] The present invention provides a video decoding method including: determining a predicted quantization parameter of a current quantization group determined by 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 and the differential quantization parameter of the current quantization group; and 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, 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 dequantizes the current block using the quantization parameter of the current quantization group.
[0014] A video decoding method is provided, 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] There is provided a video decoding apparatus including a processor that matches a current block with a current quantization parameter unit based on at least one of a position and a size of the current block, obtains a predicted quantization parameter related to the current quantization parameter unit, obtains a differential quantization parameter related to the current quantization parameter unit, determines a quantization parameter of the current quantization parameter unit based on the predicted quantization parameter and the differential quantization parameter, and dequantizes the current block using the quantization parameter of the current quantization parameter unit.
[0016] A computer-recordable recording medium is provided, on which a program for performing the video encoding method and the video decoding method is recorded.
[0017] The technical problems to be solved by the present embodiment are not limited to those described above, and other technical problems may be inferred from the following embodiments. [Effects of the Invention]
[0018] By determining the quantization parameters of a block using a quantization group or a quantization parameter unit, the information required for determining the quantization parameters is efficiently compressed. [Brief explanation of the drawings]
[0019] [Figure 1A] FIG. 1 illustrates a block diagram of a video encoding device based on a tree-structured coding unit, according to one embodiment of the present disclosure. [Figure 1B] FIG. 1 illustrates a block diagram of a video decoding device based on a tree-structured coding unit according to one embodiment. [Figure 2] 10 is a diagram illustrating a process of dividing a current coding unit and determining at least one coding unit according to an embodiment. [Figure 3] 10A and 10B are diagrams illustrating a process in which a coding unit having a non-square shape is divided and at least one coding unit is determined according to one embodiment. [Figure 4] 10 is a diagram illustrating a process of dividing a coding unit based on at least one of block shape information and division shape information according to an embodiment; [Figure 5] 10 is a diagram illustrating a method for determining a predetermined coding unit from among an odd number of coding units according to an 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 an embodiment; [Figure 7] 10 is a diagram illustrating a process of determining whether a current coding unit is divided into an odd number of coding units when coding units cannot be processed in a predetermined order, according to an embodiment. [Figure 8] 1 is a diagram illustrating a process in which a first coding unit is divided and at least one coding unit is determined, according to one embodiment. [Figure 9] FIG. 10 is a diagram illustrating that, according to one embodiment, when a non-square second coding unit determined by dividing a first coding unit satisfies a predetermined condition, the manner in which the second coding unit can be divided is restricted. [Figure 10] 10 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. [Figure 11] 10 is a diagram illustrating that the processing order of a plurality of coding units may vary depending on the division process of the coding units, according to an embodiment. [Figure 12] 10 is a diagram illustrating a process of determining the depth of a coding unit according to one embodiment when a coding unit is recursively divided to determine multiple coding units, as the shape and size of the coding unit change. [Figure 13] 10 is a diagram illustrating a depth determined by the shape and size of a coding unit and an index (PID: part index) for a coding unit partition according to one embodiment. [Figure 14]1 is a diagram illustrating a plurality of coding units determined from a plurality of predetermined data units included in a picture according to one embodiment; [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] 10A and 10B are diagrams illustrating an embodiment in which quantization groups are determined by the number of quadtree divisions. [Figure 17B] 10A and 10B are diagrams illustrating an embodiment in which quantization groups are determined by the number of quadtree divisions. [Figure 17C] 10A and 10B are diagrams illustrating an embodiment in which quantization groups are determined by the number of quadtree divisions. [Figure 17D] 10A and 10B are diagrams illustrating an embodiment in which quantization groups are determined by the number of quadtree divisions. [Figure 18A] FIG. 10 illustrates an embodiment of a method for determining quantization groups in a largest coding block to which non-quadtree partitioning is applied. [Figure 18B] FIG. 10 illustrates an embodiment of a method for determining quantization groups in a largest coding block to which non-quadtree partitioning is applied. [Figure 18C] FIG. 10 illustrates an embodiment of a method for determining quantization groups in a largest coding block to which non-quadtree partitioning is applied. [Figure 19] FIG. 10 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. [Figure 20] 10 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. 10 illustrates one embodiment of a quantization parameter unit structure and a coding block tree structure. [Figure 22A] 10 is a diagram illustrating a method for determining a quantization parameter unit corresponding to a current block. [Figure 22B] 10 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] 10 is a diagram illustrating a video decoding method in which a quantization parameter of a block is determined by a quantization parameter unit, and residual data of the block is decoded according to the determined quantization parameter. DETAILED DESCRIPTION OF THE INVENTION
[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 partition 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 for achieving the disclosed embodiments will become apparent from the following detailed description of the embodiments 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. The present embodiments are provided solely for the purpose of completing the disclosure and fully conveying the scope of the invention to those skilled in the art.
[0023] The terms used in this specification will be briefly explained, and the disclosed embodiments will be specifically described.
[0024] The terms used in this specification are currently commonly used and general terms that have been selected as much as possible while taking into consideration the function of the present disclosure. However, these terms may vary depending on the intentions of engineers in the relevant field, precedents, or the emergence of new technologies. In addition, in certain cases, the applicant may have arbitrarily selected terms, and in such cases, their meanings will be described in detail in the description of the invention. Therefore, the terms used in this disclosure must be defined based on the meanings of the terms and the overall content of the present disclosure, rather than simply by the name of the terms.
[0025] In this specification, the singular expression includes the plural expression unless the context clearly dictates otherwise.
[0026] Throughout the specification, when a section "comprises" a certain component, it does not mean that it excludes other components and may further include other components, unless specifically stated to the contrary. Furthermore, the term "module" used in the specification refers to software or a hardware component such as an FPGA or ASIC, and a "module" performs a certain function. However, "module" is not limited to software or hardware. A "module" may also be configured to reside on an addressable recording medium or to execute one or more processors. Thus, by way of example, "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 functionality provided in a component and a "module" may be further combined into fewer components and "modules," or may be 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 between 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. Furthermore, a "lower block" refers to a data unit separated from the "current block." And, a "higher block" refers to a data unit that includes the "current block."
[0028] Hereinafter, a "sample" refers to data assigned to a sampling position in an image and to data to be processed. For example, in a spatial domain image, a pixel value and a transform coefficient in the 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 implement the present disclosure. In the drawings, parts that are not relevant 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 having a size such as 32x32, 64x64, 128x128, or 256x256, and is also a square data unit whose vertical and horizontal dimensions are a power 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 determines coding units by dividing the maximum coding unit. Whether to divide the coding units is determined based on whether division of the coding units is efficient through rate-distortion optimization. Then, division information indicating whether the coding units are divided can be generated. The division information can also be expressed in the form of a flag.
[0034] Coding units can also be divided in various ways. For example, a square coding unit can be divided into four square coding units with half the width and half the height. The square coding unit can be divided into two rectangular coding units with half the width. The square coding unit can be divided into two rectangular coding units with half the height. The square coding unit can be 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. Similarly, 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 partitioning methods are available in the video encoding device 100, information about a partitioning method to be used for a coding unit among the partitioning methods available in the video encoding device 100 is also determined for each picture. Thus, it is also determined that only a specific partitioning method is to be used for each picture. If the video encoding device 100 uses only one partitioning method, information about a partitioning method to be used for a coding unit is not separately determined.
[0038] For coding units of a specific size, they are also divided according to a specific division method. For example, if the coding unit size is 256x265, the coding unit is also set to be divided into only four square coding units with half the width and height.
[0039] When the partition information of a coding unit indicates that the coding unit is partitioned, partition type 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, partition type information is not generated. If the partitioning method is determined adaptively based on the coding information surrounding the coding unit, partition type information is not generated.
[0040] As described above, video data of a current picture is divided into maximum coding units according to the maximum size of the coding unit. The maximum coding unit may include coding units hierarchically divided from the maximum coding unit. The type and location of the lower coding units may be determined according to the division type of the upper coding unit. A minimum size of the coding unit 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 not dividing the coding unit is more efficient based on the comparison result, the encoding unit 110 does not divide the coding unit. Whether to divide a coding unit is determined independently of whether other adjacent coding units are divided.
[0042] The final divided coding units are predicted by intra prediction or inter prediction. Intra prediction is a method of predicting samples of the prediction unit using reference samples around the prediction unit. Inter prediction is a method of predicting samples of the prediction unit using reference samples obtained from a reference picture referenced 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 directional modes such as a vertical mode and a horizontal mode.
[0044] The intra prediction is also performed for each prediction unit when reconstructed samples around the coding unit are used as reference samples. However, when reconstructed samples within a coding unit are used as reference samples, reconstruction of the reference samples within the coding unit must take priority over prediction, so the prediction order of the prediction unit may depend on the transformation order of the transform unit. Therefore, when reconstructed samples within a coding unit are used as reference samples, only the intra prediction method related to the transform unit corresponding to the prediction unit is determined for the prediction unit, and actual intra prediction is also performed for each transform unit.
[0045] The encoding unit 110 may select the most efficient inter prediction method by determining an optimal motion vector and reference picture. For inter prediction, the coding unit determination unit 120 may determine a plurality of motion vector candidates from spatially and temporally adjacent coding units of the current coding unit, and determine the most efficient motion vector among them as the motion vector. Similarly, the coding unit may determine a plurality of reference picture candidates from spatially and temporally adjacent coding units of 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 the predicted motion vector, and the predicted motion vector may be corrected to determine the motion vector. The inter prediction may also be performed in parallel for each prediction unit within the coding unit.
[0046] The encoder 110 can restore a coding unit by acquiring only information indicating a motion vector and a reference picture using the skip mode. In 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 can be used when prediction accuracy is very high.
[0047] The partition modes used may be limited depending on the prediction method associated with the prediction unit. For example, only partition modes associated with prediction units of 2Nx2N and NxN sizes may be applied to intra prediction, while partition modes associated with prediction units of 2Nx2N, 2NxN, Nx2N, and NxN sizes may be applied to inter prediction. Furthermore, only partition modes associated with prediction units of 2Nx2N size 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 based on the coding efficiency of the prediction result. Similarly, the encoding unit 110 may determine the transformation method based on the coding efficiency of the transformation result. The coding efficiency of the coding unit is finally determined based on the method of determining the most efficient prediction method and transformation method for the coding unit. The encoding unit 110 determines the hierarchical structure of the largest coding unit based on the coding efficiency of the finally divided coding unit.
[0050] The encoding unit 110 can measure the coding efficiency of a coding unit, the prediction efficiency of a prediction method, and the like, 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 to be partitioned according to the determined hierarchical structure of the largest coding unit. Then, for the coding unit for which partitioning has been completed, the encoding unit 110 may generate partition mode information for determining prediction units and transform unit partition information for determining transform units. Furthermore, when there are two or more partition methods for the coding unit, the encoding unit 110 may generate partition mode 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 coding units, prediction units, and transform units based on the tree structure of the largest 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 video decoder 150 based on tree-structured coding units, according to one embodiment.
[0055] The video decoding device 150 includes a receiving unit 160 and a decoding unit 170 .
[0056] The definitions of various terms, such as coding unit, prediction unit, transform unit, and various partition information, used for the decoding operation of the video decoding device 150 according to an embodiment are the same as those described with reference to FIG. 1 and the video encoding device 100. Furthermore, although the purpose of the video decoding device 150 is to restore video data, various encoding methods used in the video encoding device 100 can also be applied to the video decoding device 150.
[0057] The receiving unit 160 receives and parses a bitstream related to coded video. The decoding unit 170 extracts information required for decoding for each maximum coding unit from the parsed bitstream and provides the extracted information to the decoding unit 170. The decoding unit 170 may extract information about the maximum size of the coding unit of the current picture from a header, sequence parameter set, or picture parameter set related to the current picture.
[0058] The decoding unit 170 also extracts partition information for each maximum coding unit according to a tree structure from the parsed bitstream. The extracted partition information is output to the decoding unit 170. The decoding unit 170 can partition 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 the tree structure determined by the video encoding device 100 to generate the minimum coding error. Therefore, the video decoding device 150 can decode the data using the encoding method that generates the minimum coding error and restore the video.
[0060] The decoding unit 170 may extract partition information related to data units, such as prediction units and transform units, included in a coding unit. For example, the decoding unit 170 may extract information related to the most efficient partition mode related to the prediction unit. The decoding unit 170 may also extract transform partition information related to the most efficient tree structure in the transform unit.
[0061] Furthermore, 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 to generate the bitstream in the bitstream generation unit 120 of the video encoding device 100.
[0063] The decoding unit 170 can divide the largest coding unit into coding units having the most efficient tree structure based on the partition information. Then, the decoding unit 170 can divide the coding unit into prediction units based on the information about the partition mode. The decoding unit 170 can divide the coding unit into transform units based on the transform partition information.
[0064] The decoding unit 170 can predict the prediction unit based on information about the prediction method. Then, the decoding unit 170 can inverse quantize and inverse transform residual data corresponding to the difference between the original value and the predicted value of a pixel based on information about the transform method of the transform unit. Furthermore, the decoding unit 170 can restore the pixels of the coding unit based on the prediction result of the prediction unit and the transform result of the transform 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 coding unit using block type information and may determine the type of division of the coding unit using partition type information. That is, the division method of the coding unit indicated by the partition type information may be determined depending on the block type indicated by the block type information used by the video decoding device 150.
[0067] According to one 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 split the square coding unit, split it vertically, split it horizontally, or split it into four coding units, based on the partition 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 split a coding unit 210a having the same size as the current coding unit 200 based on the partition shape information indicating no split, or may determine divided coding units 210b, 210c, 210d, etc., based on the partition shape information indicating a predetermined split method.
[0068] Referring to FIG. 2, according to one embodiment, the video decoding device 150 may determine two coding units 210b obtained by vertically dividing the current coding unit 200 based on the division type information indicating vertical division. The video decoding device 150 may determine two coding units 210c obtained by horizontally dividing the current coding unit 200 based on the division type information indicating horizontal division. The video decoding device 150 may determine four coding units 210d obtained by vertically and horizontally dividing the current coding unit 200 based on the division type information indicating vertical and horizontal division. However, the division type into which a square coding unit may be divided is not limited to the above-described type, and may include various types that can be indicated by the division type information. Predetermined division types into which a square coding unit may be divided will be described in detail below through various embodiments.
[0069] FIG. 3 illustrates a process by which video decoder 150 divides a non-square coding unit to determine at least one coding unit, according to one embodiment.
[0070] According to one 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 split the non-square current coding unit or to split it in a predetermined manner based on the partition shape information. Referring to FIG. 3, if the block shape information of the current coding unit 300 or 350 indicates a non-square shape, the video decoding device 150 may not split the coding unit 310 or 360 having the same size as the current coding unit 300 or 350 based on the partition shape information indicating no partition, or may determine split coding units 320a, 320b, 330a, 330b, 330c, 370a, 370b, 380a, 380b, and 380c based on the partition shape information indicating a predetermined partition method. The predetermined partition method for splitting a non-square coding unit will be described in detail below through various embodiments.
[0071] According to an embodiment, the video decoding device 150 may determine a manner in which a coding unit is divided using the division type information, and in this case, the division type information may indicate the number of coding units to be generated by dividing the coding unit. Referring to FIG. 3, if the division type information indicates that the current coding unit 300 or 350 is to be divided into two coding units, the video decoding device 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 current coding unit 300 or 350 based on the division type information, the video decoding device 150 may divide the current coding unit by considering the 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 by considering the shape of the current coding unit 300 or 350.
[0073] According to an embodiment, if the partitioning type information indicates that a 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 to be included in the current coding unit 300 or 350. For example, if the partitioning type 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 to be included in the current coding unit 300 or 350, and the determined coding units may not all be the same size. For example, among the determined odd number of coding units 330a, 330b, 330c, 380a, 380b, and 380c, the size of a given coding unit 330b or 380b may be different from the sizes of the other coding units 330a, 330c, 380a, and 380c. That is, coding units that can 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. Furthermore, the video decoding device 150 may impose a predetermined restriction on at least one of the odd number of coding units generated by the partitioning. Referring to FIG. 3, the video decoding device 150 may perform a different decoding process for the central coding units 330b and 380b among three coding units 330a, 330b, 330c, 380a, 380b, and 380c generated by partitioning the current coding unit 300 or 350 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 to not be further divided, or may limit them to being divided only a predetermined number of times, unlike the other coding units 330a, 330c, 380a, and 380c.
[0075] FIG. 4 illustrates a process in which the 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 one 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 block shape information and partition shape information. According to one embodiment, if the partition shape information indicates that the first coding unit 400 is to be partitioned horizontally, the video decoding device 150 may divide the first coding unit 400 horizontally to determine the second coding unit 410. According to one embodiment, the terms "first coding unit," "second coding unit," and "third coding unit" used are terms used to understand the division relationship between coding units. For example, if the first coding unit is partitioned, the second coding unit may be determined, and if the second coding unit is partitioned, the third coding unit may be determined. Hereinafter, the relationship between the first coding unit, the second coding unit, and the third coding unit used may also be understood to be due to the above-described characteristics.
[0077] According to an embodiment, the video decoding device 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 decoding device 150 divides the first coding unit 400 based on at least one of block shape information and partition shape information, and divides the determined non-square second coding unit 410 into at least one third coding unit 420a, 420b, 420c, 420d, etc., or does 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 the acquired at least one of the block type information and the partition type information, for example, into a plurality of second coding units 410 of various types. 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 the 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 the partition type information related to the first coding unit 400, the second coding units 410 may also be divided into third coding units 420a, 420b, 420c, 420d, etc., based on at least one of the block type information and the 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 division type information and the block type information associated with each coding unit. Methods that can be used for recursive division of the coding units will be described below through various exemplary embodiments.
[0078] According to one embodiment, the video decoding device 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 shape information and the partition shape information. According to one embodiment, the video decoding device 150 may divide the non-square second coding unit 410 into an odd number of third coding units 420b, 420c, 420d. The video decoding device 150 may impose a predetermined restriction on certain third coding units among the odd number of third coding units 420b, 420c, 420d. For example, the video decoding device 150 may restrict the middle coding unit 420c of the odd number of third coding units 420b, 420c, 420d to not be further divided or to be divided a configurable number of times. 4, the video decoding device 150 may restrict the middle coding unit 420c 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, to be divided into a predetermined division pattern (e.g., into only four coding units, or into a pattern corresponding to the division pattern of the second coding unit 410), or to be divided into a predetermined number of times (e.g., divided n times; n>0). However, the above restriction on the middle coding unit 420c is merely an embodiment and should not be construed as being limited to the above embodiment, and should be construed to include various restrictions such as the middle coding unit 420c being decoded differently from the other 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 plurality of coding units, and such methods will be described later in the following various embodiments.
[0081] According to an embodiment, the video decoding device 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 predetermined position among an odd number of coding units, according to one embodiment.
[0083] According to one embodiment, the video decoding device 150 may use information indicating the positions of each odd-numbered coding unit to determine a middle coding unit among the odd-numbered coding units. Referring to FIG. 5, the video decoding device 150 may divide the current coding unit 500 to determine odd-numbered coding units 520a, 520b, and 520c. The video decoding device 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 decoding device 150 may determine the positions of the coding units 520a, 520b, and 520c based on information indicating the positions of predetermined 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 middle coding unit 520b by determining 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.
[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 about the positions or coordinates of the coding units 520a, 520b, and 520c within 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 the 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 the difference between the coordinates of the coding units 520a, 520b, and 520c within 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 the position of the top left sample 530a of the top coding unit 520a may indicate (xa, ya) coordinates, information indicating the position of the top left sample 530b of the middle coding unit 520b may indicate (xb, yb) coordinates, and information indicating the 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 obtained by dividing the current coding unit 500. However, the coordinates indicating the positions of the top left samples 530a, 530b, and 530c may indicate absolute positions within a picture. Furthermore, (dxb, dyb) coordinates indicating the relative position of the top left sample 530b of the middle coding unit 520b based on the position of the top left sample 530a of the top coding unit 520a, or (dxc, dyc) coordinates indicating the relative position of the top left sample 530c of the bottom coding unit 520c may be used. Furthermore, the method of determining a coding unit at a predetermined position by using the coordinates of the 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 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 decoding device 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 decoding device 150 may determine the size of each of the coding units 520a, 520b, and 520c using the coordinates (xa, ya), (xb, yb), and (xc, yc) indicating the positions of the coding units 520a, 520b, and 520c.
[0088] According to an embodiment, the video decoding device 150 may determine the width of the top coding unit 520a as xb-xa and the height as yb-ya. According to an embodiment, the video decoding device 150 may determine the width of the middle coding unit 520b as xc-xb and the height as yc-yb. According to an embodiment, the video decoding device 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. Based on the determined widths and heights of the coding units 520a, 520b, and 520c, the video decoding device 150 may determine a coding unit having a different size from the other coding units. Referring to FIG. 5, the video decoding device 150 may determine the middle coding unit 520b, which has a different size from the top coding unit 520a and the bottom coding unit 520c, as a coding unit of a predetermined position. However, the 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 interpreted as being limited to the upper left corner as mentioned above, but rather it is also interpreted that information about the position of any sample included in the coding unit can 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 account the shape of the current coding unit. For example, if the current coding unit is non-square in shape, where 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 a different position in the horizontal direction and set a constraint on the coding unit. If the current coding unit is non-square in shape, where 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 a different position in the vertical direction and set a constraint on the coding unit.
[0091] According to one embodiment, the video decoding device 150 may use information indicating the positions of each of the even-numbered coding units to determine a coding unit at a predetermined position among the even-numbered coding units. The video decoding device 150 may divide the current coding unit to determine the even-numbered coding units, and may determine the coding unit at a predetermined position using information about the positions of the even-numbered coding units. Specific steps related to this process correspond to the process of determining a coding unit at a predetermined position (e.g., the middle position) among the odd-numbered coding units described with reference to 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 device 150 may divide a current coding unit 500 into a plurality of coding units 520a, 520b, and 520c based on at least one of block shape information and partition shape information, and may determine a central coding unit 520b among the plurality of coding units 520a, 520b, and 520c. Furthermore, the video decoding device 150 may determine the central coding unit 520b by considering a position where at least one of block shape information and partition shape information is obtained. That is, when at least one of the block shape information and partition shape information of the current coding unit 500 is obtained from a sample 540 located in the middle of the current coding unit 500 and 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 shape information and the partition shape information, the video decoding device 150 may determine the coding unit 520b including the sample 540 as the central coding unit. However, the information used to determine the coding unit located in the middle is not 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, predetermined information for identifying a coding unit at a predetermined position may be obtained from a predetermined sample included in the 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 within the current coding unit 500 (e.g., a sample at the center of the current coding unit 500) to determine a coding unit at a predetermined position (e.g., a coding unit located at the center of the current coding unit 500) among 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. The video decoding device 150 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 among the multiple coding units 520a, 520b, and 520c determined by dividing the current coding unit 500, and may impose a predetermined restriction. 5, according to one 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 can be acquired, and may place a certain restriction on the decoding process for the coding unit 520b including such sample 540. However, the position of the sample from which certain information can be acquired is not limited to the above-described position, but may also be a sample at any position included in the coding unit 520b to be determined for the purpose of placing the restriction.
[0095] According to an embodiment, the location of a sample from which the predetermined information can be acquired is also determined based on the shape of the current coding unit 500. According to an embodiment, block shape information may determine whether the shape of the current coding unit is square or non-square, and the location of a sample from which the predetermined information can be acquired may be determined based on the shape. For example, the video decoding device 150 may use at least one of information about the width and information about the height of the current coding unit to determine 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 acquired. In another example, if the block shape information related to the current coding unit indicates that the current coding unit is non-square, the video decoding device 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 acquired.
[0096] According to an embodiment, when the video decoding device 150 divides a current coding unit 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 acquire at least one of block shape information and partition shape information from samples at predetermined positions included in the coding unit, and may divide the plurality of coding units generated by dividing the current coding unit using at least one of partition shape information and block shape information acquired from samples at predetermined positions included in each of the plurality of coding units. That is, the coding units may also be recursively divided using at least one of block shape information and partition shape information acquired from samples at predetermined positions included in each of the plurality of coding units. The recursive division process of a coding unit has been described with reference to FIG. 4, and therefore 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 the current coding unit and determines multiple coding units, according to one embodiment.
[0099] According to one embodiment, the video decoding device 150 may vertically divide the first coding unit 600 and determine the second coding units 610a and 610b, or may horizontally divide the first coding unit 600 and determine the second coding units 630a and 630b, or may vertically and horizontally divide the first coding unit 600 and determine the second coding units 650a, 650b, 650c, and 650d, based on the block format information and the partition format information.
[0100] 6, the video decoding device 150 may determine the order of processing second coding units 610a and 610b, which are determined by dividing the first coding unit 600 in the vertical direction, in a horizontal direction 610c. The video decoding device 150 may determine the processing order of second coding units 630a and 630b, which are determined by dividing the first coding unit 600 in the horizontal direction, in a vertical direction 630c. The video decoding device 150 may determine the processing order of second coding units 650a, 650b, 650c, and 650d, which are determined by dividing the first coding unit 600 in the vertical and horizontal directions, in a predetermined order (e.g., raster scan order or z scan order 650e) in which coding units located in one row are processed before coding units located in the next row are processed.
[0101] According to an embodiment, the video decoder 150 may recursively divide a coding unit (CU). Referring to Figure 6, the video decoder 150 may divide a first CU 600 to determine a plurality of CUs 610a, 610b, 630a, 630b, 650a, 650b, 650c, and 650d, and may recursively divide each of the determined CUs 610a, 610b, 630a, 630b, 650a, 650b, 650c, and 650d. The method of dividing the CUs 610a, 610b, 630a, 630b, 650a, 650b, 650c, and 650d corresponds to the method of dividing the first CU 600. 6, the video decoding device 150 may divide the first coding unit 600 vertically to determine the second coding units 610a and 610b, and may further determine whether to divide the second coding units 610a and 610b independently.
[0102] In one embodiment, the video decoding device 150 may horizontally divide the second coding unit 610a on the left side into third coding units 620a and 620b, while not dividing 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, which are 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 horizontally to determine the third coding units 620a and 620b, the third coding units 620a and 620b are also processed in the vertical direction 620c. Furthermore, 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 by 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 ways in which coding units that are divided into various forms and determined 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 when 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 a current coding unit is divided into an odd number of coding units based on the acquired block shape information and partition shape information. Referring to Figure 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 each 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 horizontally 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 decoding device 150 may determine whether there is an odd number of coding units by determining whether the third coding units 720a, 720b, 720c, 720d, and 720e are processed in a predetermined order. Referring to FIG. 7, the video decoding device 150 may recursively divide the first coding unit 700 to determine the third coding units 720a, 720b, 720c, 720d, and 720e. The video decoding device 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 based on at least one of block type information and partition 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 the 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 can be processed in a predetermined order, and the condition relates to whether at least one of the width and height of the second coding units 710a and 710b is divided in half along the boundary of the third coding units 720a, 720b, 720c, 720d, and 720e. For example, third coding units 720a and 720b, which are determined by dividing the height of the non-square left second coding unit 710a in half, satisfy the condition, but third coding units 720c, 720d, and 720e, which are determined by dividing the right second coding unit 710b into three coding units, do not satisfy the condition because the boundaries of third coding units 720c, 720d, and 720e do not divide the width or height of the right second coding unit 710b in half. The video decoding device 150 may determine that such unsatisfied conditions indicate a discontinuity in the scanning order and, based on the determination result, may determine that the right second coding unit 710b is to be divided into an odd number of coding units. According to an embodiment, when dividing into an odd number of coding units, the video decoding device 150 may impose a predetermined restriction on coding units at predetermined positions among the divided coding units. The content of such restriction and the predetermined positions have been described in various embodiments, and therefore further description thereof will be omitted.
[0108] 8 illustrates a process in which the video decoding device 150 divides a 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 partition 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 coding units. For example, referring to FIG. 8, if the block shape information indicates that the first coding unit 800 is square and the partition 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, if the division format 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 can 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, where the condition relates 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 Figure 8, the boundaries of the second coding units 810a, 810b, and 810c determined by dividing the square-shaped first coding unit 800 vertically do not divide the width of the first coding unit 800 in half, so it is 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-shaped first coding unit 800 horizontally do not divide the width of the first coding unit 800 in half, it is determined that the first coding unit 800 does not satisfy the condition for being processed in a predetermined order. If such a condition is not satisfied, the video decoding device 150 determines that the scanning order is broken and may determine to divide the first coding unit 800 into an odd number of coding units based on the determination result. According to an embodiment, when dividing the first coding unit 800 into an odd number of coding units, the video decoding device 150 may impose a predetermined restriction on coding units at predetermined positions among the divided coding units. The content of such a restriction or the predetermined position has been described in various embodiments, and therefore a 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] Referring to FIG. 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 second coding unit determined by dividing a first coding unit 900 satisfies a predetermined 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 partition 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 multiple coding units or not based on at least one of block shape information and partition shape information associated with 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 horizontally dividing the left non-square-shaped second coding unit 910a, which is determined by vertically dividing the first coding unit 900. However, when the video decoding device 150 divides the left second coding unit 910a horizontally, the right second coding unit 910b may be restricted so that it cannot be divided in the same horizontal direction as the left second coding unit 910a. If the right second coding unit 910b is divided in the same direction to determine the third coding units 914a and 914b, 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 if the video decoding device 150 had divided the first coding unit 900 into four square second coding units 930a, 930b, 930c, and 930d based on at least one of the block shape information and the partition shape information, which is inefficient in terms of video decoding.
[0114] According to one embodiment, the video decoding device 150 may vertically divide the non-square second coding unit 920a or 920b, which is determined by horizontally dividing the first coding unit 330, to determine the third coding units 922a, 922b, 924a, and 924b. However, if the video decoding device 150 vertically divides one of the second coding units (e.g., the top second coding unit 920a), for the reasons described above, 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.
[0115] FIG. 10 illustrates a process in which the video decoding device 150 divides a square-shaped coding unit when the division format information does not indicate division into four square-shaped coding units, according to one embodiment.
[0116] According to an embodiment, the video decoding device 150 may divide the first coding unit 1000 into second coding units 1010a, 1010b, 1020a, 1020b, etc., based on at least one of block shape information and partition shape information. The partition shape information may include information about various shapes into which the coding unit may be divided, but the information about the various shapes may not include information for dividing the coding unit into four square coding units. According to such partition 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, and 1030d. Based on the partition shape information, the video decoding device 150 may determine non-square second coding units 1010a, 1010b, 1020a, 1020b, etc.
[0117] According to one embodiment, the video decoding device 150 may independently divide the non-square second coding units 1010a, 1010b, 1020a, 1020b, etc. The second coding units 1010a, 1010b, 1020a, 1020b, etc. are also divided in a predetermined order through a recursive method, which corresponds to the method by which the first coding unit 1000 is divided based on at least one of block shape information and partition shape information.
[0118] For example, the video decoding device 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 decoding device 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 manner as when the first coding unit 1000 is divided into four square-shaped second coding units 1030a, 1030b, 1030c, and 1030d.
[0119] For 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 manner 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 the processing order of multiple coding units may vary depending on the division process of the coding units, according to one embodiment.
[0121] According to an embodiment, the video decoding device 150 may partition the first coding unit 1100 based on the block shape information and the partition shape information. If the block shape information indicates a square shape and the partition shape information indicates that the first coding unit 1100 is to be partitioned in at least one of the horizontal and vertical directions, the video decoding device 150 may partition 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, and 1120b determined by partitioning the first coding unit 1100 only in the horizontal or vertical direction are also independently partitioned based on the block shape information and partition shape information associated therewith. For example, the video decoding device 150 may determine third coding units 1116a, 1116b, 1116c, and 1116d by horizontally dividing second coding units 1110a and 1110b, which are generated by vertically dividing the first coding unit 1100, and may determine third coding units 1126a, 1126b, 1126c, and 1126d by horizontally dividing second coding units 1120a and 1120b, which are generated by horizontally dividing the first coding unit 1100. The process of dividing the second coding units 1110a, 1110b, 1120a, and 1120b has been described with reference to FIG. 9, so a detailed description thereof will be omitted.
[0122] According to an embodiment, the video decoding device 150 may process coding units in a predetermined order. The characteristics related to processing 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 decoding device 150 may divide a 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 decoding device 150 may determine the processing order of the third coding units 1116a, 1116b, 1116c, 1116d, 1126a, 1126b, 1126c, and 1126d depending on the division form of the first coding unit 1100.
[0123] According to one embodiment, the video decoding device 150 can horizontally divide the second coding units 1110a and 1110b, which have been generated by vertical division, to determine the third coding units 1116a, 1116b, 1116c, and 1116d. The video decoding device 150 can process the third coding units 1116a, 1116b, 1116c, and 1116d in the order (1117) of first vertically processing the third coding units 1116a and 1116b included in the left-side second coding unit 1110a, and then vertically processing the third coding units 1116c and 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 and 1120b, which have been generated by dividing them horizontally, to determine the third coding units 1126a, 1126b, 1126c, and 1126d. The video decoding device 150 can process the third coding units 1126a, 1126b, 1126c, and 1126d in the order (1127) of first horizontally processing the third coding units 1126a and 1126b included in the top second coding unit 1120a, and then horizontally processing the third coding units 1126c and 1126d included in the bottom 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 vertical division and the second coding units 1120a and 1120b determined by horizontal division are divided in different ways, 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, and as a result, even if coding units of the same type are determined, 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 the coding unit depth according to changes in the shape and size of the coding unit when a coding unit is recursively divided to determine multiple coding units, according to one embodiment.
[0127] According to an embodiment, the video decoding device 150 may determine the depth of a coding unit based on a predetermined criterion. For example, the predetermined criterion may be the long side length of the coding unit. If the long side length of the current coding unit is 2n (n>0) times the long side length of the coding unit before division, the video decoding device 150 may determine that the depth of the current coding unit is increased by n from the depth of the coding unit before division. Hereinafter, a coding unit whose depth has been increased will be referred to as a coding unit of a lower depth.
[0128] 12 , according to an embodiment, the video decoding device 150 may divide a square-shaped first coding unit 1200 based on block shape information indicating a square shape (e.g., 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 2N×2N, the second coding unit 1202, which is determined by dividing the width and height of the first coding unit 1200 by 1 / 2, may have a size of N×N. Furthermore, the third coding unit 1204, which is determined by dividing the width and height of the second coding unit 1202 by 1 / 2, may have a size of N / 2×N / 2. In this case, the width and height of the third coding unit 1204 correspond to 1 / 22 times the width and height of the first coding unit 1200. If the depth of the first coding unit 1200 is D, the depth of the second coding unit 1202, which is 1 / 21 times the width and height of the first coding unit 1200, is also D+1, and the depth of the third coding unit 1204, which is 1 / 22 times the width and height of the first coding unit 1200, is also D+2.
[0129] In 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., at a lower depth.
[0130] The video decoding device 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, second coding units 1202, 1212, 1222, etc. That is, the video decoding device 150 may divide the first coding unit 1210 horizontally 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 horizontally and vertically to determine the second coding unit 1212 having a size of N / 2xN.
[0131] According to an embodiment, the video decoding device 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 decoding device 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, or 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 decoding device 150 may divide at least one of the width and height of the NxN second coding unit 1202 to determine, for example, the third coding units 1204, 1214, 1224, etc. That is, the video decoding device 150 may divide the second coding unit 1202 vertically and horizontally to determine the N / 2xN / 2 third coding unit 1204, the N / 2xN / 2 third coding unit 1214, or the N / 2xN / 2 third coding unit 1224.
[0133] According to an embodiment, the video decoding device 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 decoding device 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 decoding device 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 decoding device 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, square-shaped coding units 1200, 1202, and 1204 horizontally or vertically. 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, if 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 horizontally or vertically may be the same as the depth of the first coding unit 1200, 1202, or 1204.
[0136] According to one embodiment, the width and height of the third coding unit 1214 or 1224 correspond to 1 / 22 times that of the first coding unit 1210 or 1220. If the depth of the first coding unit 1210 or 1220 is D, the depth of the second coding unit 1212 or 1214, which is 1 / 21 times the width and height of the first coding unit 1210 or 1220, is also D+1, and the depth of the third coding unit 1214 or 1224, which is 1 / 22 times the width and height of the first coding unit 1210 or 1220, is also D+2.
[0137] FIG. 13 illustrates a depth determined by the type and size of a coding unit and an index (PID: part index) for a coding unit partition, according to one embodiment.
[0138] According to an embodiment, the video decoding device 150 may determine various types of second coding units by dividing a square-shaped first coding unit 1300. Referring to Figure 13, the video decoding device 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 second coding units 1302a, 1302b, 1304a, 1304b, 1306a, 1306b, 1306c, and 1306d. That is, the video decoding device 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 type information for the square-shaped first coding unit 1300 may be determined based on the long side lengths. For example, since the length of one side of the square-shaped first coding unit 1300 is the same as the long side lengths 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 format 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 decoding device 150 may divide a first coding unit 1310, whose height is greater than its width, horizontally 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 decoding device 150 may divide a first coding unit 1320, whose width is greater than its height, vertically 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 type information related to the non-square first coding unit 1310 or 1320 may be determined based on the long side lengths. For example, since the length of one side of the square second coding units 1312a and 1312b is half the length of one side of the non-square first coding unit 1310, whose height is greater than its width, 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 may divide the non-square first coding unit 1310 into an odd number of second coding units 1314a, 1314b, and 1314c based on the division format 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 length of the long sides of the non-square second coding units 1314a and 1314c and the length of one side of the square second coding unit 1314b are half the length of one side of the first coding unit 1310. Therefore, the depths of the second coding units 1314a, 1314b, and 1314c are also D+1, which is one depth lower than D, the depth of the first coding unit 1310. The video decoding device 150 can 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, when determining an index (PID) for partitioning a divided coding unit, if the divided coding units are not the same size, the video decoder 150 may determine the index based on the size ratio between the coding units. Referring to FIG. 13, the middle coding unit 1314b among the odd-numbered divided coding units 1314a, 1314b, and 1314c may have the same width as the other coding units 1314a and 1314c but may have a height twice that of the other coding units 1314a and 1314c. That is, in this case, the middle coding unit 1314b may include both the other coding units 1314a and 1314c. Therefore, if the index (PID) of the middle coding unit 1314b in the scanning order is 1, the index of the next coding unit 1314c is 3, which is an increase of 2. That is, discontinuity in the index values may exist. According to one embodiment, the video decoding device 150 can determine whether coding units divided into an odd number of parts are not the same size as each other based on whether there is a discontinuity in the indexes for the partitions between such divided coding units.
[0144] According to one embodiment, the video decoder 150 may determine whether a current coding unit has been 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 and 1312b or an odd number of coding units 1314a, 1314b, and 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 one 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 decoding device 150 may determine a coding unit at a predetermined position among the coding units determined by division using an index for dividing the coding units. According to an embodiment, if division type information for a rectangular first coding unit 1310 whose height is greater than its width indicates that the first coding unit 1310 is to be divided into three coding units, the video decoding device 150 may divide the first coding unit 1310 into three coding units 1314a, 1314b, and 1314c. The video decoding device 150 may assign indexes to the three coding units 1314a, 1314b, and 1314c, respectively. The video decoding device 150 may compare the indexes associated with each coding unit to determine a middle coding unit among the odd number of coding units. Based on the indexes of the coding units, the video decoding device 150 may determine the coding unit 1314b having an index corresponding to the middle value among the indexes as the middle coding unit among the coding units determined by dividing the first coding unit 1310. According to an embodiment, when determining an index for dividing a divided coding unit, if the coding units are not the same size, the video decoder 150 may determine the index based on the size ratio between the coding units. Referring to Figure 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 the height of the 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 two times larger than the index of the middle coding unit 1314b. In such a case, if the indexes increase uniformly but the increments are different, the video decoding device 150 may determine that the current coding unit has been divided into multiple coding units, including coding units having sizes different from the other coding units. According to one embodiment, if the division type 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., the middle coding unit) has a size different from the other coding units.In this case, the video decoding device 150 may determine a middle coding unit having a different size using an index (PID) associated with the coding unit. However, the above index, the size or position of the coding unit at the predetermined position to be determined, are specified for the purpose of 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 may utilize a predetermined data unit from which the recursive division of the coding units begins.
[0147] FIG. 14 illustrates a plurality of coding units determined from a plurality 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 from which a coding unit begins to be recursively divided using at least one of block type information and partition type 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 a 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 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 device 150 may divide the current picture into a plurality of reference data units. According to an embodiment, the video decoding device 150 may divide the current picture into a plurality of reference data units using partition information associated with each reference data unit. The division process of the reference data units corresponds to a division 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 type information and partition type information.
[0152] 14, the video decoding device 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 based on 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 acquire at least one of information about the type of the reference coding unit and information about 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 descriptions thereof will be omitted.
[0154] According to an embodiment, the video decoding device 150 may use an index for identifying the size and type of a reference coding unit to determine the size and type of the reference coding unit according to a predetermined data unit 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 satisfying 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 device 150 may determine the size and type of the reference data unit for each data unit satisfying the predetermined condition by using the index. Since obtaining and using information about the type of the reference coding unit and information about the size of the reference coding unit from the bitstream for each relatively small-sized data unit results in poor bitstream utilization efficiency, only the index may be acquired and used instead of directly acquiring information about the type of the reference coding unit and information about the size of the reference coding unit. 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 predetermined. 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 index acquisition by selecting at least one of the size and type of the predetermined reference coding unit according to the index.
[0155] According to one 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 one embodiment, at least one of the width and height of the maximum coding unit is an integer multiple of at least one of the width and height of the reference coding unit. According to one embodiment, the size of the reference coding unit is also the size obtained by dividing the maximum coding unit n times using a quadtree structure. That is, the video decoding device 150 may determine the reference coding unit by dividing the maximum coding unit n times using a quadtree structure, and according to various embodiments, may divide the reference coding unit based on at least one of block shape information and partition shape information.
[0156] FIG. 15 illustrates processing blocks that are responsible for determining the order in which reference coding units included in a picture 1500 are determined, 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. A 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 units may be determined, and the determination order of the reference coding units determined in each processing block may differ for each processing block. The determination order of the reference coding units 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 possible orders should not be construed as being limited to the scan order.
[0158] According to one embodiment, the video decoder 150 can obtain information about the size of processing blocks and determine the size of at least one processing block included in the video. The video decoder 150 can obtain information about the size of processing blocks from a bitstream and determine the size of at least one processing block included in the video. The size of such a processing block is also a predetermined size of a data unit indicated by the information about the size of the processing block.
[0159] According to one embodiment, the receiving unit 160 of the video decoding device 150 may acquire 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 acquired from the bitstream for each data unit, such as an image, a sequence, a picture, a slice, or a slice segment. That is, the receiving unit 160 may acquire information about the size of a processing block from the bitstream for each of the aforementioned data units. The video decoding device 150 may use the acquired information about the size of the processing block to determine the size of at least one processing block for dividing a picture, where the size of such a processing block is an integer multiple of the size of a base coding unit.
[0160] According to one 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 about the sizes of the processing blocks obtained from the bitstream. Referring to FIG. 15 , according to one 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 the 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 the 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 and 1512 included in the picture 1500 based on the size of the processing block, and may determine the order of determining at least one reference coding unit included in the processing blocks 1502 and 1512. According to one embodiment, determining 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 about a determination order of at least one reference coding unit included in at least one processing block from a bitstream and determine an order in which at least one reference coding unit is determined based on the acquired information about the determination order. The information about the determination order may also be defined as an order or direction in which the reference coding units are determined within a processing block. That is, the order in which the reference coding units are determined may be determined independently for each processing block.
[0163] According to an embodiment, the video decoding device 150 may acquire information about the determination order of the reference coding units from the bitstream for each specific data unit. For example, the receiving unit 160 may acquire information about 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, or a processing block. Since the information about the determination order of the reference coding units indicates the determination order of the reference coding units within a processing block, the information about the determination order may also be acquired 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 base coding unit determination order as information related to the processing blocks 1502 and 1512 from the bitstream, and the video decoding device 150 may determine an order for determining at least one base coding unit included in the processing blocks 1502 and 1512 and determine at least one base coding unit included in the picture 1500 according to the determined coding unit order. Referring to Figure 15, the video decoding device 150 may determine a determination order (1504, 1514) of at least one base coding unit associated with each of the processing blocks 1502 and 1512. For example, if the information on the determination order of the base coding units is acquired for each processing block, the determination order of the base coding units associated with each of the processing blocks 1502 and 1512 may differ for each processing block. If 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 in the raster scan order. Conversely, if 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 in the reverse of the raster scan order.
[0166] 1 to 15 illustrate a method for dividing an image into maximum coding units and dividing the maximum coding units into coding units of a hierarchical tree structure. FIGS. 16 to 24 illustrate a method for determining a quantization parameter of a current block.
[0167] 1 can 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 can reduce the size of the residual data by quantizing the converted residual data.
[0168] Quantization of residual data is also performed based on a quantization parameter. The quantization parameter is an index used to derive a scaling matrix required for quantizing 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 when 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 depending on 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 of the block using the determined quantization parameter.
[0171] The video decoding device 1600 includes a quantization parameter determination unit 1610 and an inverse quantization unit 1620. Although the quantization parameter determination unit 1610 and the inverse quantization unit 1620 are shown as separate components in FIG. 16, 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 performing 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, depending on the embodiment, the quantization parameter determination unit 1610 and the inverse quantization unit 1620 may be distributed.
[0173] The quantization parameter determination unit 1610 and the inverse quantization unit 1620 may be implemented by one processor or by multiple processors, depending on the embodiment.
[0174] The video decoding device 1600 can 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 improve coding efficiency has been discussed.
[0176] Generally, adjacent blocks have the same or similar quantization parameters. Therefore, the video decoding device 1600 can use the same quantization parameter for adjacent blocks. A plurality of adjacent blocks that use 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 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 sub-blocks generated by dividing the block to which the quantization group is set.
[0178] Alternatively, the quantization group may be determined based on 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 a block to which a 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 a block corresponding to a 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. Therefore, determining the quantization parameter of a block based on the quantization group reduces information about the quantization parameter.
[0179] The quantization parameter determination unit 1610 may acquire a differential quantization parameter allowance flag for a higher-order data unit of the current quantization group, and may acquire a differential quantization parameter for the current block when the differential quantization parameter allowance flag indicates that determination of the quantization parameter based on the 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 quantization parameters according to quantization groups to all blocks included in the higher data unit.
[0181] The quantization parameter determination unit 1610 may acquire quantization group information for a higher-order data unit of the 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 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 count and a non-quadtree division count. The quadtree division count indicates the number of times quadtree division has been performed to obtain the current quantization group from the largest coding block. For example, division according to 210d in FIG. 2 corresponds to quadtree division.
[0184] The non-quadtree division count indicates the number of times 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 non-quadtree division.
[0185] The block size information may include the block width or the binary logarithm of the block width, or may include the block height and width or the binary logarithm of the block height and width.
[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 of a predetermined size or larger according to the number of quadtree divisions. For example, if the maximum coding unit size is 256x256 and the number of quadtree divisions is two, the quantization group may be set for blocks of 64x64 size 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 largest coding block 1700 is divided into four blocks 1702, 1704, 1706, and 1708 by quadtree division. The quadtree division count for blocks 1702, 1704, 1706, and 1708 is set to 1. Block 1704 is divided into four blocks 1710, 1712, 1714, and 1716 by quadtree division. The quadtree division count for blocks 1710, 1712, 1714, and 1716 is set to 2. Block 1716 is divided into four blocks 1718, 1720, 1722, and 1724 by quadtree division. The quadtree division count for blocks 1718, 1720, 1722, and 1724 is 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] As can be seen from Figure 17A, the size of the divided blocks is reduced by half as the number of quadtree divisions increases by 1. Therefore, if only quadtree division is allowed, the size of the blocks can be determined by the number of quadtree divisions.
[0190] Figure 17B illustrates an embodiment of determining quantization groups for blocks 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 contain only one block. However, the quantization group for block 1704 contains the sub-blocks 1710, 1712, 1714, 1718, 1720, 1722, and 1724 of block 1704. Therefore, the sub-blocks 1710, 1712, 1714, 1718, 1720, 1722, and 1724 of block 1704 can 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 count is 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 1 and no additional divisions are performed.
[0193] The quantization groups for blocks 1702, 1706, 1708, 1710, 1712, and 1714 each contain only one block. However, the quantization group for block 1716 contains blocks 1718, 1720, 1722, and 1724 that are subordinate to block 1716. Therefore, quantization and dequantization using the same quantization parameter can be applied to blocks 1718, 1720, 1722, and 1724 that are subordinate to block 1716.
[0194] Figure 17D illustrates an embodiment for determining quantization groups for blocks with a quadtree division number of 3. In Figure 17D, there are no blocks with a quadtree division number of 4, so quantization groups are set for all blocks 1702, 1706, 1708, 1710, 1712, 1714, 1718, 1720, 1722, and 1724.
[0195] 17A to 17D, the larger the number of quadtree divisions in the block division information, the smaller the size of the quantization group. Conversely, the smaller the number of quadtree divisions in the block division information, the larger the size of the quantization group. 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 based on 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 does not apply. Therefore, the quantization group may be determined by additionally considering the number of non-quadtree divisions, or a method of determining a quantization group based on the size of the quantization group may be applied. Figures 18A to 18C illustrate one embodiment of a method of determining a quantization group for a largest 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 largest coding block 1800 is quadtree divided into four blocks 1802, 1804, 1806, and 1808. Since block 1802 is not further divided, the number of divisions of block 1802 is 1. The following description is based on the assumption that the size of the largest 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 number of divisions of block 1804's lower-level blocks 1814, 1816, 1818, 1820, and 1822 is all three.
[0200] Block 1806 is divided into two Nx2N blocks 1824 and 1826. Block 1824 is then divided into two NxN blocks 1828 and 1830, and block 1826 is divided into two NxN / 2 blocks 1840 and 1844 and one NxN block 1842. Block 1828 is then divided into two N / 2xN blocks 1832 and 1834. Block 1834 is then 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 block 1806 is three. The number of divisions of block 1832, which was divided from block 1828, is four, and the number of divisions of blocks 1836 and 1838 is five.
[0201] Block 1808 is divided into four NxN blocks 1846, 1848, 1850, and 1852. Block 1846 is then divided into four NxN blocks 1854, 1856, 1858, and 1860. Block 1848 is further divided into two Nx2N blocks 1862 and 1864, and block 1862 is divided into two NxN blocks 1866 and 1868. The number of divisions for blocks 1850 and 1852 is two, and the number of divisions for blocks 1854, 1856, 1858, 1860, and 1864 is three. The number of divisions for blocks 1866 and 1868 is four.
[0202] If the quantization groups are determined based on the number of times the block is divided, there is a problem that the sizes of the quantization groups are not uniform. Specifically, the non-uniformity of the quantization group sizes 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, although 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 size of the quantization groups differs.
[0206] 18C illustrates a method for solving the above problem. 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. This quadtree division is equivalent to successively applying vertical and horizontal divisions. Therefore, one quadtree division is essentially 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 maximum coding block 1800 by one quadtree division and two non-quadtree divisions. Therefore, the weighted sum of the number of quadtree divisions and non-quadtree divisions of block 1814 weighted at a ratio of 2:1 is 4. Block 1846 is generated from maximum coding block 1800 by two quadtree divisions. Therefore, the weighted sum of the number of quadtree divisions and non-quadtree divisions of block 1846 weighted at a ratio of 2:1 is 4. Therefore, when a quantization group is set for a block whose weighted sum is 4, in FIG. 18C , unlike in 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 NxN size, a quantization group is set for blocks 1814 and 1846. Therefore, unlike in Figure 18B, in Figure 18C, block 1854 acquires a quantization parameter from the quantization group set for block 1846. Because 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 of the height and width of the block, or the average of the binary logarithm of the height and width of the block, or based on the width of the block or the binary logarithm 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 neighboring block and the quantization parameter of the left neighboring block as the quantization parameter of the current quantization group. If the quantization parameter of the upper neighboring 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 to determine the quantization parameter of the current quantization group, instead of the quantization parameter of the upper neighboring block. Similarly, if the quantization parameter of the left neighboring 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 to determine the quantization parameter of the current quantization group, instead of the quantization parameter of the left neighboring block. In addition, the quantization parameter determination unit 1610 may determine a base quantization parameter of the slice or picture as the 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 the 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 can acquire 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 acquire differential quantization parameter size information and differential quantization parameter code information for the remaining blocks in 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 in 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 can 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 the 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 the sum of the 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 parameters 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 and non-quadtree partitioning are allowed.
[0220] The top table in Figure 19 explains the quadtree partitioning syntax structure (coding_quadtree). The quadtree partitioning syntax structure in Figure 19 discloses a configuration for determining whether to initialize the differential quantization parameter and information related to the differential quantization parameter before determining whether to perform quadtree partitioning.
[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 Figure 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, which indicate the top 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] Furthermore, 'cqtDepth' being smaller than or equal to 'diff_cu_qp_delta_depth' means that the number of quadtree divisions of the current block is smaller than or equal to the number of divisions that serve as the reference for the quantization group indicated by the block division information. That is, the number of quadtree divisions of the current block is smaller than or equal to the number of divisions that serve as the reference for the quantization group, which 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 met, 'CuQpDeltaVal' and 'IsCuQpDeltaCoded' are determined to be 0, and new differential quantization parameters for the quantization groups located in 'CuQgTopLeftX' and 'CuQgTopLeftY' are obtained from the differential quantization parameter information newly obtained from the bitstream.
[0226] The non-quadtree partitioning syntax structure is explained in the central table of Figure 19. The non-quadtree partitioning syntax structure of Figure 19 discloses a configuration for determining whether to initialize the differential quantization parameter and information related to the differential quantization parameter before determining whether to perform non-quadtree partitioning.
[0227] 19, "cu_qp_delta_enabled_flag" indicates a differential quantization parameter enable flag, "cqtDepth" indicates the number of quadtree divisions, "mttDepth" indicates the number of non-quadtree divisions, "diff_cu_qp_delta_depth" indicates block division 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 Figure 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, which indicate the top 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 differs from the quadtree partitioning syntax structure 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 in some embodiments, the weighted sum of "cqtDepth" and "mttDepth" is also compared with "diff_cu_qp_delta_depth".
[0230] The bottom table in Figure 19 explains the transform block syntax structure. tu_cbf_luma[x0][y0] indicates whether residual data exists in the current luma block located at (x0,y0). tu_cbf_cb[x0][y0] and tu_cbf_cr[x0][y0] indicate whether residual data exists in the current Cb block and current Cr block located at (x0,y0), respectively. If residual data does not exist for the current luma block, current Cb block, and current Cr block, 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 the 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 the (weighted) sum of 'cqtDepth' or '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 dequantized by 'CuQpDeltaVal' used in the decoding process of the current block.
[0233] In FIG. 19, the configuration for obtaining 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 by 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 the 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, 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 block width or the binary logarithm of the width.
[0238] A predicted quantization parameter for the current block can 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 the bitstream, and the differential quantization parameter of the current quantization group may be determined based on 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 using the quantization parameters of the current quantization group.
[0243] 16. Also, the video decoding method of FIG. 20 may include various embodiments of the method for determining quantization parameters according to quantization groups of the video decoding apparatus of FIG.
[0244] The video decoding device 1600 can perform inverse quantization based on a quantization parameter unit that indicates an area where the same quantization parameter is used. A method of inverse quantization based on a quantization parameter unit will be described below.
[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 different quantization parameters according to the characteristics of each part of the picture or slice. The distribution of 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 Figure 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. Although the quantization parameter unit 2110 is represented as a rectangle in Figure 21, according to an embodiment, the quantization parameter unit 2110 may also be represented in an irregular shape other than a rectangle.
[0248] The quantization parameter of the quantization parameter unit 2110 is also determined by the characteristics of the corresponding part of the picture. The quantization parameters of the quantization parameter unit map 2120 and the quantization parameter unit 2110 are coded and decoded independently with respect to the predictive coding information according to the coding block structure 2140. Then, in the coding and decoding processes of the residual data of the coding block 2130, the quantization parameter can 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 size of the current block.
[0250] For example, the quantization parameter determination unit 1610 may determine a quantization parameter unit including the coordinate values of the upper left sample of the current block as the current quantization parameter unit of the current block.
[0251] As another example, if 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 shows 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, whether the quantization parameter of the quantization parameter unit 2200 is applied may be determined based on the upper left sample of the block. Therefore, blocks 2208, 2216, 2218, 2220, 2222, and 2224 whose upper left sample is included in the quantization parameter unit 2200 are also inverse quantized using the quantization parameter corresponding to the quantization parameter unit 2200.
[0255] In Figure 22A, an embodiment has been described in which the quantization parameter unit is determined based on the upper left sample of the block, but depending on the embodiment, the quantization parameter unit of the block may be determined based on the center sample, the idol sample, the lower left sample, the lower right sample, etc.
[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 included in block 2250. Therefore, block 2250 is also dequantized using the quantization parameter of at least one of quantization parameter units 2252, 2254, 2258, 2260, 2264, and 2266. For example, the quantization parameter of block 2250 may be determined as 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 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 by at least one of quantization parameter units 2252 through 2274.
[0259] 23A and 23B illustrate the correspondence between blocks and quantization parameter units.
[0260] 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 would correspond to the other quantization parameter units 2302, 2304, and 2306.
[0261] 23B illustrates a block tree structure and a quantization parameter map according to one embodiment. As in FIG. 23A, when the quantization parameter unit corresponding to the upper left sample of a block corresponds to the block, blocks 2328, 2330, 2332, and 2334 all correspond to quantization parameter unit 2334. Since the quantization parameters of quantization parameter unit 2334 are applied to blocks 2328, 2330, 2332, and 2334, the quantization parameters are calculated first for block 2328, which comes first in the decoding order. Then, the quantization parameters used for block 2328 may be used for blocks 2330, 2332, and 2334 as they are.
[0262] Quantization parameters are not determined for blocks without residual data. For example, if block 2328 has no residual data, dequantization for block 2328 is unnecessary, and therefore a quantization parameter for block 2328 is not determined. If block 2330, which is decoded next to block 2328, has residual data, a quantization parameter for block 2330 may be determined. The quantization parameter used for block 2330 may be used for blocks 2332 and 2334 as is.
[0263] The quantization parameter determination unit 1610 can obtain a predicted quantization parameter related to the current quantization parameter unit.
[0264] The quantization parameter determination unit 1610 can obtain a predicted quantization parameter from at least one of the quantization parameter unit to the left of the current quantization parameter unit, the quantization parameter unit above the current quantization parameter unit, and the block decoded immediately before the current block.
[0265] Alternatively, the quantization parameter determination unit 1610 may determine a predicted quantization parameter related to the 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 the current quantization parameter unit.
[0267] The quantization parameter determination unit 1610 may determine the quantization parameter of the 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 parameters 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 then decodes residual data of the block using 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 a 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 the quantization parameter unit to the left of the current quantization parameter unit, the quantization parameter unit above the current quantization parameter unit, and the block decoded immediately before the current block.
[0275] Alternatively, a predicted quantization parameter related to the picture or slice including the current quantization parameter unit and a predicted quantization parameter related to 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 the quantization parameter of 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 quantization parameters according to quantization groups in the video decoding apparatus of FIG.
[0280] 1 to 24, spatial domain video data is encoded for each tree-structured coding unit, and the spatial domain video data is restored by decoding for each maximum coding unit using a video decoding technique based on a tree-structured coding unit, thereby restoring video, which is a picture and a picture sequence. The restored video may be played back by a playback device, stored on a recording medium, or transmitted over a network.
[0281] The above-described embodiments of the present disclosure can be created into a computer-executable program, and can also be implemented in a general-purpose digital computer that runs the program using a computer-readable recording medium.
[0282] While the present disclosure has been described in connection with certain best embodiments, other alternatives, variations, and modifications to the present disclosure will be apparent to those skilled in the art in light of the foregoing description. Therefore, the claims are intended to embrace all such alternatives, variations, and modifications. Accordingly, all content 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 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 the differential quantization parameter; and dequantizing transform coefficients in a current transform block in the current coding block using the quantization parameter; the predicted quantization parameter is obtained using at least one of a quantization parameter of an upper neighboring block of the current quantization group and a quantization parameter of a left neighboring block of the current quantization group; 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 division information of the current coding block is increased by 1; A video decoding method, 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 increases by 2.
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 dequantizing transform coefficients in a current transform block in the current coding block using the quantization parameter; the predicted quantization parameter is obtained using at least one of a quantization parameter of an upper neighboring block of the current quantization group and a quantization parameter of a left neighboring block of the current quantization group; 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 division information of the current coding block is increased by 1; A video decoding apparatus, 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 increases by two.
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; quantizing transform coefficients in a current transform block in the current coding block using the quantization parameter; A differential quantization parameter is obtained based on the quantization parameter of the current quantization group and the predicted quantization parameter; the predicted quantization parameter is obtained using at least one of a quantization parameter of an upper neighboring block of the current quantization group and a quantization parameter of a left neighboring block of the current quantization group; 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 division information of the current coding block is increased by 1; A method for storing data generated by a video encoding method, wherein when the current encoding block is obtained by dividing the upper coding block into four lower coding blocks by quadtree partitioning, the value of partition information of the current encoding 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; a processor for quantizing transform coefficients in a current transform block in the current coding block using the quantization parameter; A differential quantization parameter is obtained based on the quantization parameter of the current quantization group and the predicted quantization parameter; the predicted quantization parameter is obtained using at least one of a quantization parameter of an upper neighboring block of the current quantization group and a quantization parameter of a left neighboring block of the current quantization group; 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 division information of the current coding block is increased by 1; A video encoding apparatus, wherein when the currently encoded 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 encoded block increases by 2.
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
JP7422075B2
Encoding method and device thereof, decoding method and device thereof
JP7614412B2
Encoding method and device, decoding method and device
JP7743600B2