Encoding method and apparatus therefor and decoding method and apparatus therefor
By determining quantization parameters based on block partitioning and block size information, and matching them with the current block's position and size, the problem of balancing compression ratio and image quality in image coding technology is solved, achieving efficient image data transmission.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- SAMSUNG ELECTRONICS CO LTD
- Filing Date
- 2019-01-02
- Publication Date
- 2026-04-28
AI Technical Summary
Existing image coding techniques struggle to balance compression ratio and image quality, especially under limited bandwidth conditions. An effective method is needed to determine quantization parameters to improve compression ratio and minimize image quality loss.
The quantization parameters are determined based on block partitioning information and block size information, and the image is encoded and decoded by matching the position and size of the current block. The program that executes these methods is recorded using a computer-readable recording medium.
It effectively compresses image data, improves the compression rate and reduces image quality loss, and achieves efficient image transmission under limited bandwidth conditions.
Smart Images

Figure CN116233433B_ABST
Abstract
Description
[0001] This application is a divisional application of the invention patent application filed on January 2, 2019, with application number "201980007205.3" and titled "Encoding method and apparatus thereof and decoding method and apparatus thereof". Technical Field
[0002] This disclosure relates to an image encoding method and a decoding method, and more specifically, to a method for efficiently encoding and decoding information about motion vectors. Background Technology
[0003] Encoding high-quality images requires a large amount of data. However, because the bandwidth available for image data transmission is limited, the data rate applicable to image data transmission may also be limited. Therefore, for efficient transmission of image data, image data encoding and decoding methods that minimize image quality degradation and improve compression rates are needed.
[0004] Image data can be compressed by removing spatial and temporal redundancy between pixels. Because neighboring pixels often share common characteristics, encoded information is sent in data units composed of pixels to remove redundancy between neighboring pixels.
[0005] Instead of directly sending the pixel values of the pixels included in the data unit, information about the method for obtaining the pixel values is sent. A prediction method is determined for each data unit, in which pixel values similar to the original value are predicted, and encoded information about the prediction method is sent from the encoder to the decoder. Because the predicted value is not exactly equal to the original value, residual data, the difference between the original value and the predicted value, is sent from the encoder to the decoder.
[0006] When prediction is accurate, the size of the encoded information used to specify the prediction method increases, but the size of the residual data decreases. Therefore, the prediction method is determined by considering the size of both the encoded information and the residual data. Specifically, data units divided from the frame have various sizes, and in this respect, as the size of the data unit increases, the likelihood of a decrease in prediction accuracy increases, while the size of the encoded information decreases. Therefore, the size of the blocks is determined based on the characteristics of the frame.
[0007] Prediction methods include intra-frame prediction and inter-frame prediction. Intra-frame prediction is a method of predicting pixels in a block from pixels adjacent to the block. Inter-frame prediction is a method of predicting pixels by referencing pixels in different frames that include the block. Therefore, spatial redundancy is removed by intra-frame prediction, and temporal redundancy is removed by inter-frame prediction.
[0008] As the number of prediction methods increases, the amount of encoded information used to indicate these methods also increases. Therefore, the amount of encoded information can be reduced by predicting the encoded information to be applied to a block from different blocks.
[0009] Because image data loss is allowed to a degree that is imperceptible to the human eye, the residual data can be lossily compressed through transformation and quantization, thereby reducing the amount of residual data. Summary of the Invention
[0010] Technical issues
[0011] An image encoding method and an image encoding device are provided for determining quantization parameters of quantization groups based on block partitioning information and block size information. An image decoding method and an image decoding device are also provided for determining quantization parameters of quantization groups based on block partitioning information and block size information.
[0012] An image encoding method and an image encoding apparatus are provided for matching a current block with a current quantization parameter unit based on at least one of the current block's position and size. An image decoding method and an image decoding apparatus are also provided for matching a current block with a current quantization parameter unit based on at least one of the current block's position and size.
[0013] In addition, a computer-readable recording medium is provided which records a program for executing image encoding and image decoding methods according to embodiments of the present disclosure on a computer.
[0014] Technical solution
[0015] An image decoding method is provided, comprising: determining a predicted quantization parameter of a current quantization group determined based on at least one of block partitioning 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 dequantizing a current block included in the current quantization group according to the quantization parameter of the current quantization group.
[0016] An image decoding apparatus including a processor is provided, wherein the processor is configured to: determine a predicted quantization parameter of a current quantization group determined based on at least one of block partitioning information and block size information; determine a differential quantization parameter of the current quantization group; determine a quantization parameter of the current quantization group based on the predicted quantization parameter and the differential quantization parameter; and dequantize a current block included in the current quantization group according to the quantization parameter of the current quantization group.
[0017] An image decoding method is provided, comprising: matching a current block with a current quantization parameter unit based on at least one of the position and 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 according to the quantization parameter of the current quantization parameter unit.
[0018] An image decoding apparatus including a processor is provided, wherein the processor is configured to: match a current block with a current quantization parameter unit based on at least one of the position and size of the current block; obtain a predicted quantization parameter for the current quantization parameter unit; obtain a differential quantization parameter for the current quantization parameter unit; determine a quantization parameter for the current quantization parameter unit based on the predicted quantization parameter and the differential quantization parameter; and dequantize the current block according to the quantization parameter of the current quantization parameter unit.
[0019] A computer-readable recording medium is provided, which records a program for performing the image encoding method and the image decoding method.
[0020] The technical problems to be solved by this disclosure are not limited to the above-described technical features, and other technical problems can be inferred from the following embodiments.
[0021] Beneficial effects
[0022] The quantization parameters of the block are determined based on the quantization group or quantization parameter unit, so that the information needed to determine the quantization parameters can be effectively compressed. Attached Figure Description
[0023] Figure 1a This is a block diagram of an image encoding apparatus based on a tree-structured encoding unit according to an embodiment of the present disclosure.
[0024] Figure 1b This is a block diagram of an image decoding device based on a tree-structured coding unit according to an embodiment.
[0025] Figure 2 The image decoding device according to an embodiment is shown to determine the processing of at least one coding unit by dividing the current coding unit.
[0026] Figure 3 The process of determining at least one coding unit by dividing non-square coding units according to an embodiment is illustrated.
[0027] Figure 4 The process of dividing coding units based on at least one of block shape information and partition shape information according to an embodiment is illustrated.
[0028] Figure 5 A method for determining a preset coding unit among an odd number of coding units is shown according to an embodiment.
[0029] Figure 6 The following illustration shows the order in which the plurality of coding units are processed when the plurality of coding units are determined by dividing the current coding unit, according to an embodiment.
[0030] Figure 7 The illustration shows the process of determining that the current coding unit will be divided into an odd number of coding units when the coding units cannot be processed in a preset order, according to an embodiment.
[0031] Figure 8 The process of determining at least one coding unit by dividing a first coding unit is illustrated according to an embodiment.
[0032] Figure 9 The embodiment shows that when a second coding unit having a non-square shape, determined by dividing a first coding unit, satisfies a preset condition, the shape into which the second coding unit can be divided is limited.
[0033] Figure 10 The process of dividing a square coding unit is shown according to an embodiment when the division shape information indicates that the square coding unit will not be divided into four square coding units.
[0034] Figure 11 This illustrates that, according to an embodiment, the processing order among multiple coding units can be changed based on the process of dividing coding units.
[0035] Figure 12 The illustration shows a process for determining the depth of a coding unit as the shape and size of the coding unit change when the coding unit is recursively divided such that multiple coding units are determined, according to an embodiment.
[0036] Figure 13 The diagram illustrates a depth that can be determined based on the shape and size of the coding unit, and a partial index (PID) used to distinguish the coding unit, according to an embodiment.
[0037] Figure 14 This illustrates how multiple encoding units are determined based on multiple preset data units included in the screen, according to an embodiment.
[0038] Figure 15 A processing block is shown according to an embodiment, which serves as a unit for determining the order of reference coding units included in a picture.
[0039] Figure 16 An image decoding device is shown for determining the quantization parameters of a block and decoding the residual data of the block based on the determined quantization parameters.
[0040] Figures 17a to 17d This is a diagram illustrating an example of determining the quantization group based on the number of quadtree partitions.
[0041] Figures 18a to 18c An embodiment of a method for determining the quantization group in the largest coded block to which a non-quadtree partition is applied is shown.
[0042] Figure 19 This illustrates the syntax structure for decoding differential quantization parameters included in the bitstream when both quadtree partitioning and non-quadtree partitioning are permitted.
[0043] Figure 20 This paper illustrates an image decoding method that determines the quantization parameters of a block based on a quantization group and decodes the residual data of the block based on the determined quantization parameters.
[0044] Figure 21 Examples of quantization parameter unit structures and coding block tree structures are shown.
[0045] Figure 22a and 22b This demonstrates a method for determining the quantization parameter unit corresponding to the current block.
[0046] Figure 23a and Figure 23b This shows the correlation between the block and the quantization parameter unit.
[0047] Figure 24 This paper illustrates an image decoding method that determines the quantization parameters of a block based on a quantization parameter unit and decodes the residual data of the block based on the determined quantization parameters.
[0048] Best mode
[0049] An image decoding method is provided, comprising: determining a predicted quantization parameter for a current quantization group determined based on at least one of block partitioning information and block size information; determining a differential quantization parameter for the current quantization group; determining a quantization parameter for the current quantization group based on the predicted quantization parameter and the differential quantization parameter; and dequantizing a current block included in the current quantization group according to the quantization parameter of the current quantization group. Furthermore, an image decoding apparatus is provided that includes a process for performing the image decoding method.
[0050] An image decoding method is provided, comprising: matching a current block with a current quantization parameter unit based on at least one of the position and 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 of the current quantization parameter unit based on the predicted quantization parameter and the differential quantization parameter; and dequantizing the current block according to the quantization parameter of the current quantization parameter unit. Furthermore, an image decoding apparatus including a process for performing the image decoding method is provided. Detailed Implementation
[0051] The advantages and features of the embodiments and the methods of implementing the embodiments can be more readily understood by referring to the examples and accompanying drawings. In this regard, this disclosure may take different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the concept of this disclosure to those skilled in the art.
[0052] The terminology used in this specification will be briefly defined, and the embodiments will be described in detail.
[0053] All terms used in this specification, including descriptive or technical terms, shall be interpreted as having meanings obvious to a person skilled in the art. However, these terms may have different meanings depending on the intent of a person skilled in the art, precedent, or the emergence of new technologies. Furthermore, the applicant may arbitrarily select some terms, and in such cases, the meanings of the selected terms will be described in detail in the specific description of this disclosure. Therefore, the terms used in this disclosure should not be interpreted solely based on their names, but must be defined based on their meanings in conjunction with the description throughout the specification.
[0054] In the following description, the singular form includes the plural form unless the context clearly indicates otherwise.
[0055] When a component "comprises" or "contains" an element, the component may also include other elements, without excluding them, unless a specific description to the contrary exists. In the following description, terms such as "cell" refer to software or hardware components, such as field-programmable gate arrays (FPGAs) or application-specific semiconductors (ASICs), and that "cell" performs a specific function. However, "cell" is not limited to software or hardware. A "cell" may be formed in an addressable memory medium or may be formed to operate one or more processors. Thus, for example, the term "cell" may refer to components (such as software components, object-oriented software components, class components, and task components) and may include processes, functions, attributes, procedures, subroutines, fragments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, or variables. The functionality provided by components and "cells" may be associated with a smaller number of components and "cells," or may be divided into additional components and "cells."
[0056] The term "current block" refers to one of the current coding unit, prediction unit, and transform unit to be encoded or decoded. For ease of description, the terms "current coding block," "current prediction block," and "current transform block" may be used when it is necessary to distinguish between other types of blocks such as prediction units and transform units. Furthermore, "lower-level block" refers to a data unit partitioned from the "current block." "Upper-level block" refers to a data unit that includes the "current block."
[0057] In the following text, a "sample" refers to data assigned to a sampling location in an image, i.e., the data to be processed. For example, pixel values in the spatial domain and transform coefficients in the transform domain can be samples. A unit comprising at least one such sample can be defined as a block.
[0058] In the following description, the present disclosure will now be described more fully with reference to the accompanying drawings, so that those skilled in the art can perform the embodiments without difficulty. Furthermore, for the sake of clarity in describing the present disclosure, portions unrelated to the description will be omitted in the drawings.
[0059] Figure 1a This is a block diagram of an image encoding device 100 based on a tree-structured encoding unit according to an embodiment of the present disclosure.
[0060] Image encoding device 100 may include encoder 110 and bitstream generator 120.
[0061] Encoder 110 divides the frame or strips included in the frame into multiple maximum coding units (MCUs) based on the size of the maximum coding unit. The maximum coding unit can be a data unit with dimensions such as 32×32, 64×64, 128×128, 256×256, etc., and can all be square data units with width and length powers of 2. Encoder 110 can provide maximum coding unit size information, indicating the size of the maximum coding units, to bitstream generator 120. Bitstream generator 120 can add the maximum coding unit size information to the bitstream.
[0062] Encoder 110 determines coding units by dividing them into maximum coding units. Whether to divide coding units is determined based on whether rate-distortion optimization is effective. Furthermore, division information indicating whether coding units have been divided can be generated. This division information can be represented in the form of flags.
[0063] The coding unit can be divided in various ways. For example, a square coding unit can be divided into four square coding units, each with a width and height half the width and height of the original square coding unit. A square coding unit can be divided into two rectangular coding units, each with a width half the width of the original square coding unit. A square coding unit can also be divided into three coding units by using a 1:2:1 ratio for either its width or height.
[0064] A rectangular coding unit whose width is twice its height can be divided into two square coding units. A rectangular coding unit whose width is twice its height can be divided into two rectangular coding units whose width is four times its height. Alternatively, a rectangular coding unit whose width is twice its height can be divided into two rectangular coding units and one square coding unit by using a 1:2:1 ratio for its width.
[0065] Similarly, a rectangular coding unit whose height is twice its width can be divided into two square coding units. A rectangular coding unit whose height is twice its width can be divided into two rectangular coding units whose height is four times its width. Likewise, a rectangular coding unit whose height is twice its width can be divided into two rectangular coding units and one square coding unit by dividing its height in a 1:2:1 ratio.
[0066] When two or more partitioning methods are applicable to the image coding device 100, information related to the partitioning method applicable to the coding unit among the partitioning methods applicable to the image coding device 100 can be determined for each frame. Therefore, only a specific partitioning method can be determined for each frame. When the image coding device 100 uses only one partitioning method, no additional information related to the partitioning method applicable to the coding unit is determined.
[0067] Encoding units of a specific size can be divided using a specific partitioning method. For example, when the size of the encoding unit is 256×256, the encoding unit can be set up to be divided into four square encoding units with a width and height that are half that of the encoding unit.
[0068] When the partitioning information of a coding unit indicates that the coding unit will be partitioned, partitioning shape information indicating the partitioning method of the coding unit can be generated. When only one partitioning method exists applicable to the frame to which the coding unit belongs, partitioning shape information may not be generated. When the partitioning method is adaptively determined based on the coding information of the vicinity of the coding unit, partitioning shape information may not be generated.
[0069] As described above, the image data of the current frame is divided into maximum coding units based on the maximum size of the coding unit. The maximum coding unit may include coding units layered from the maximum coding unit. The shape and position of the lower-level coding units can be determined based on the division shape of the upper-level coding units. A minimum size of the coding units that limits the division of coding units can be preset.
[0070] Encoder 110 compares the coding efficiency when coding units are partitioned hierarchically with the coding efficiency when coding units are not partitioned. Then, encoder 110 determines whether to partition the coding unit based on the comparison result. When partitioning the coding unit is determined to be more efficient, encoder 110 partitions the coding unit hierarchically. When the comparison result reveals that not partitioning the coding unit is efficient, the coding unit is not partitioned. Whether to partition the coding unit can be determined independently of whether to partition other coding units adjacent to the existing coding unit.
[0071] The final coded units can be predicted using either intra-frame prediction or inter-frame prediction. Intra-frame prediction uses reference samples around the prediction unit to predict its samples. Inter-frame prediction uses reference samples from a reference frame referenced by the current frame to predict the prediction unit's samples.
[0072] For intra-frame prediction, encoder 110 can select the most effective intra-frame prediction method by applying multiple intra-frame prediction methods to the prediction unit. Intra-frame prediction methods include DC mode, planar mode, directional mode (such as vertical mode and horizontal mode), etc.
[0073] Intra-prediction can be performed for each prediction unit when reconstructed samples around a coding unit are used as reference samples. However, when reconstructed samples within a coding unit are used as reference samples, the reference samples within the coding unit should be reconstructed first, and therefore, the prediction order of prediction units may depend on the transformation order of transform units. Therefore, when reconstructed samples within a coding unit are used as reference samples, the intra-prediction method for the transform unit corresponding to the prediction unit is determined only for that prediction unit, and intra-prediction can be performed substantially for each transform unit.
[0074] Encoder 110 can select the most effective inter-frame prediction method by determining the optimal motion vector and reference frame. For inter-frame prediction, encoder 110 can determine multiple motion vector candidates among coding units spatially and temporally adjacent to the current coding unit, and determine the most effective motion vector among the multiple motion vector candidates as the motion vector. Similarly, multiple reference frame candidates can be determined among coding units spatially and temporally adjacent to the current coding unit, and the most effective reference frame can be determined among the multiple reference frame candidates. In an embodiment, the reference frame can be determined from a list of reference frames predetermined for the current frame. In an embodiment, for accurate prediction, the most effective motion vector among the multiple motion vector candidates can be determined as the predicted motion vector, and the motion vector can be determined by correcting the predicted motion vector. Inter-frame prediction can be performed in parallel for each prediction unit included in the coding unit.
[0075] Encoder 110 can reconstruct the coding unit by obtaining only information representing the motion vector and the reference frame, according to the skip mode. According to the skip mode, all coding information, including the residual signal, except for information representing the motion vector and the reference frame, is omitted. Because the residual signal is omitted, the skip mode can be applied when the prediction accuracy is very high.
[0076] The partitioning mode to be used can be limited according to the prediction method used for the prediction unit. For example, the partitioning mode for prediction units of size 2N×2N and N×N can be applied only to intra-frame prediction, while the partitioning mode for prediction units of sizes 2N×2N, 2N×N, N×2N, and N×N can be applied to inter-frame prediction. Furthermore, the skip mode for inter-frame prediction can be applied only to the partitioning mode for prediction units of size 2N×2N. The partitioning mode allowed for each prediction method in the image coding device 100 can be changed according to coding efficiency.
[0077] Image encoding device 100 can perform transformations based on encoding units. Image encoding device 100 can transform residual data through preset processing, wherein the residual data is the difference between the original value and the predicted value of a pixel included in the encoding unit. For example, image encoding device 100 can perform lossy compression on the residual data through quantization and Discrete Cosine Transform (DCT) / Discrete Sine Transform (DST) transformation. Optionally, image encoding device 100 can perform lossless compression on the residual data without quantization.
[0078] In summary, encoder 110 determines the most efficient prediction method for the current coding unit from various intra-frame and inter-frame prediction methods. Then, encoder 110 determines the prediction method for the current coding unit based on coding efficiency, according to the prediction results. Similarly, encoder 110 can determine the transformation method based on coding efficiency, according to the transformation results. Based on the scheme determined by the most efficient prediction and transformation methods for the coding unit, the coding efficiency of the coding unit is finally determined. Encoder 110 determines the hierarchical structure of the largest coding unit based on the coding efficiency of the finally partitioned coding units.
[0079] The encoder 110 can measure the coding efficiency of the coding unit, the prediction efficiency of the prediction method, etc. by using rate-distortion optimization techniques based on Lagrange multipliers.
[0080] The encoder 110 can generate partitioning information indicating whether a coding unit has been partitioned based on the hierarchical structure of the determined maximum coding unit. The encoder 110 can generate partitioning pattern information for determining prediction units and transform unit partitioning information for determining transform units for the partitioned coding units. When two or more coding unit partitioning methods exist, the encoder 110 can generate partitioning shape information indicating the partitioning method along with the partitioning information. Then, the encoder 110 can generate information related to the prediction method and transform method used for the prediction unit and transform unit.
[0081] Bitstream generator 120 can output the information generated by encoder 110 in the form of a bitstream based on the hierarchical structure of the maximum coding unit.
[0082] The following will refer to Figures 3 to 12 A method for determining coding units, prediction units, and transformation units based on the tree structure of the largest coding unit, according to an embodiment, is described in detail.
[0083] Figure 1b This is a block diagram of an image decoding device 150 based on a tree-structured coding unit according to an embodiment.
[0084] The image decoding device 150 includes a receiver 160 and a decoder 170.
[0085] As per the above reference Figure 1a The image encoding device 100 describes various terms such as "encoding unit," "prediction unit," "transform unit," and various "division information" related to the decoding operation of the image decoding device 150 according to the embodiment. Furthermore, the image decoding device 150 is configured to recover image data, and therefore various encoding methods used in the image encoding device 100 can be applied to the image decoding device 150.
[0086] Receiver 160 receives and parses the bitstream of the encoded image. Receiver 160 extracts the information required to decode each maximum coding unit from the parsed bitstream and provides this information to decoder 170. Receiver 160 can extract information about the maximum size of the coding unit of the current frame from the header, sequence parameter set, or frame parameter set for the current frame.
[0087] Receiver 160 extracts partitioning information of coding units for each maximum coding unit (MCU) from the parsed bitstream, representing the tree structure of the MCU. The extracted partitioning information is output to decoder 170. Decoder 170 can determine the tree structure of the MCU by partitioning it according to the extracted partitioning information.
[0088] The partitioning information extracted by decoder 170 is the tree structure partitioning information determined by image encoding device 100 to generate minimum encoding error. Therefore, image decoding device 150 can reconstruct the image by decoding the data according to the encoding method that generates minimum encoding error.
[0089] Decoder 170 can extract partitioning information about data units, such as prediction units and transform units, included in the coding unit. For example, decoder 170 can extract information about the most efficient partitioning pattern for the prediction unit. Decoder 170 can extract transform partitioning information about the most efficient tree structure in the transform unit.
[0090] Decoder 170 can obtain information about the most efficient prediction method in the prediction units divided from the coding units. Decoder 170 can obtain information about the most efficient transform method in the transform units divided from the coding units.
[0091] Decoder 170 extracts information from the bitstream according to the method configured by bitstream generator 120 of image encoding device 100.
[0092] Decoder 170 can partition the largest coding unit into the most efficient tree-structured coding units based on partitioning information. Decoder 170 can partition the coding unit into prediction units based on information about the partitioning pattern. Decoder 170 can partition the coding unit into transform units based on transform partitioning information.
[0093] Decoder 170 can predict the prediction unit based on information about the prediction method. Decoder 170 can perform inverse quantization and inverse transformation on the residual data corresponding to the difference between the original value and the predicted value of the pixel based on information about the method of transforming the transformation unit. Furthermore, decoder 170 can reconstruct the pixel of the coding unit based on the prediction result of the prediction unit and the transformation result of the transformation unit.
[0094] Figure 2 The image decoding device 150 according to an embodiment is shown to determine at least one coding unit by dividing the current coding unit.
[0095] According to an embodiment, the image decoding device 150 can determine the shape of the coding unit by using block shape information, and can determine the shape into which the coding unit will be divided by using partition shape information. That is, a method for determining the partitioning of coding units indicated by partition shape information can be based on the block shape indicated by the block shape information adopted by the image decoding device 150.
[0096] According to an embodiment, the image decoding device 150 can use block shape information indicating that the current coding unit has a square shape. For example, the image decoding device 150 can determine, based on the division shape information, whether not to divide the square coding unit, whether to divide the square coding unit vertically, whether to divide the square coding unit horizontally, or whether to divide the square coding unit into four coding units. (Refer to...) Figure 2 When the block shape information of the current coding unit 200 indicates a square shape, the decoder 170 may determine that the coding unit 210a with the same size as the current coding unit 200 will not be divided based on the division shape information indicating that division will not be performed, or may determine the coding units 210b, 210c or 210d divided based on the division shape information indicating a preset division method.
[0097] Reference Figure 2 According to an embodiment, the image decoding device 150 can determine two coding units 210b obtained by dividing the current coding unit 200 in the vertical direction based on the division shape information indicating that division is performed in the vertical direction. The image decoding device 150 can determine two coding units 210c obtained by dividing the current coding unit 200 in the horizontal direction based on the division shape information indicating that division is performed in the horizontal direction. The image decoding device 150 can determine four coding units 210d obtained by dividing the current coding unit 300 in the vertical and horizontal directions based on the division shape information indicating that division is performed in both the vertical and horizontal directions. However, the method for dividing square coding units is not limited to the methods described above, and the division shape information can indicate various methods. The predetermined division methods for dividing square coding units will be described in detail below with respect to various embodiments.
[0098] Figure 3 The illustration shows a process performed by an image decoding device 150 according to an embodiment to determine at least one coding unit by dividing non-square coding units.
[0099] According to an embodiment, the image decoding device 150 can use block shape information indicating that the current coding unit has a non-square shape. The image decoding device 150 can determine, based on the partitioning shape information, whether not to partition the non-square current coding unit or whether to partition the non-square current coding unit using a predetermined partitioning method. (Refer to...) Figure 3 When the block shape information of the current encoding unit 300 or 350 indicates a non-square shape, the image decoding device 150 can determine, based on the partitioning shape information indicating that partitioning will not be performed, that encoding units 310 or 360 with the same size as the current encoding unit 300 or 350 will not be partitioned, or determine that the encoding units 320a and 320b, 330a to 330c, 370a and 370b, or 380a to 380c are partitioned based on the partitioning shape information indicating a preset partitioning method. The preset partitioning method for partitioning non-square encoding units will be described in detail below with respect to various embodiments.
[0100] According to an embodiment, the image decoding device 150 can determine the partitioning method of the coding units by using partitioning shape information, and in this case, the partitioning shape information can indicate the number of one or more coding units generated by partitioning the coding units. (Refer to...) Figure 3 When the partitioning shape information indicates that the current coding unit 300 or 350 is divided into two coding units, the image decoding device 150 can determine the two coding units 320a and 320b or 370a and 370b included in the current coding unit 300 or 350 by partitioning the current coding unit 300 or 350 based on the partitioning shape information.
[0101] According to an embodiment, when the image decoding device 150 divides a non-square current coding unit 300 or 350 based on the division shape information, the position of the long side of the non-square current coding unit 300 or 350 can be considered when dividing the current coding unit. For example, the image decoding device 150 can consider the shape of the current coding unit 300 or 350 and determine multiple coding units by dividing the long side of the current coding unit 300 or 350.
[0102] According to an embodiment, when the partitioning shape information indicates that the coding unit is divided into an odd number of blocks, the image decoding device 150 can determine an odd number of coding units included in the current coding unit 300 or 350. For example, when the partitioning shape information indicates that the current coding unit 300 or 350 is divided into three coding units, the image decoding device 150 can divide the current coding unit 300 or 350 into three coding units 330a, 330b, and 330c or 380a, 380b, and 380c. According to an embodiment, the image decoding device 150 can determine an odd number of coding units included in the current coding unit 300 or 350, and not all determined coding units can have the same size. For example, the size of a preset coding unit 330b or 380b in the determined odd number of coding units 330a, 330b, and 330c or 380a, 380b, and 380c may be different from the size of other coding units 330a and 330c or 380a and 380c. In other words, the coding units determined by dividing the current coding unit 300 or 350 can have multiple sizes, and in some cases, all odd-numbered coding units 330a, 330b and 330c or 380a, 380b and 380c can have different sizes.
[0103] According to an embodiment, when the shape information indicates that the coding unit should be divided into an odd number of blocks, the image decoding device 150 can determine the odd number of coding units included in the current coding unit 300 or 350, and can impose a preset restriction on at least one of the odd number of coding units generated by dividing the current coding unit 300 or 350. (Refer to...) Figure 3 The image decoding device 150 allows the decoding method of the encoding unit 330b or 380b to differ from the decoding methods of other encoding units 330a and 330c or 380a and 380c, wherein the encoding unit 330b or 380b is located at the center position of the three encoding units 330a, 330b and 330c or 380a, 380b and 380c generated by dividing the current encoding unit 300 or 350. For example, unlike other encoding units 330a and 330c or 380a and 380c, the image decoding device 150 may restrict the encoding unit 330b or 380b at the center position to no longer be divided or to be divided only a preset number of times.
[0104] Figure 4 The illustration shows a process performed by an image decoding device 150 according to an embodiment, based on at least one partitioning coding unit of block shape information and partitioning shape information.
[0105] According to an embodiment, the image decoding device 150 can determine whether to divide the square first coding unit 400 into coding units or not to divide the square first coding unit 400 based on at least one of block shape information and partition shape information. According to an embodiment, when the partition shape information indicates that the first coding unit 400 is divided in the horizontal direction, the image decoding device 150 can determine the second coding unit 410 by dividing the first coding unit 400 in the horizontal direction. The terms first coding unit, second coding unit, and third coding unit used in the embodiment are terms used to understand the relationship before and after the division of coding units. For example, the second coding unit can be determined by dividing the first coding unit, and the third coding unit can be determined by dividing the second coding unit. It will be understood that the relationship between the first coding unit, the second coding unit, and the third coding unit follows the above description.
[0106] According to an embodiment, the image decoding device 150 may determine, based on at least one of block shape information and partition shape information, whether to divide the determined second coding unit 410 into coding units or not to divide the determined second coding unit 410. (Refer to...) Figure 4 The image decoding device 150 may, based on at least one of block shape information and partition shape information, divide a non-square second coding unit 410 determined by dividing the first coding unit 400 into one or more third coding units 420a, or 420b, 420c, and 420d. The image decoding device 150 may obtain at least one of block shape information and partition shape information, and may determine a plurality of second coding units (e.g., 410) of various shapes by dividing the first coding unit 400 based on at least one of the obtained block shape information and partition shape information. Furthermore, it may divide the second coding unit 410 based on at least one of the block shape information and partition shape information using the partitioning method of the first coding unit 400. According to an embodiment, when the first coding unit 400 is divided into a second coding unit 410 based on at least one of the block shape information and partition shape information of the first coding unit 400, the second coding unit 410 may also be divided into third coding units 420a, or 420b, 420c, and 420d based on at least one of the block shape information and partition shape information of the second coding unit 410. In other words, coding units can be recursively partitioned based on at least one of block shape information and partition shape information for each coding unit. Methods for recursively partitioning coding units will be described below with respect to various embodiments.
[0107] According to an embodiment, the image decoding device 150 can determine, based on at least one of block shape information and partition shape information, whether to divide each of the third coding units 420a, 420b, 420c, and 420d into a coding unit or not to divide the second coding unit 410. According to an embodiment, the image decoding device 150 can divide the non-square second coding unit 410 into an odd number of third coding units 420b, 420c, and 420d. The image decoding device 150 can impose a preset restriction on a preset number of third coding units among the odd number of third coding units 420b, 420c, and 420d. For example, the image decoding device 150 can restrict the third coding unit 420c at the center position among the odd number of third coding units 420b, 420c, and 420d to no longer be divided or to be divided a set number of times. (See also...) Figure 4 The image decoding device 150 may restrict the third coding unit 420c at the center position of the odd number of third coding units 420b, 420c, and 420d included in the non-square second coding unit 410 to no longer be divided, to be divided using a preset division method (e.g., divided into only four coding units or divided using the division method of the second coding unit 410), or to be divided only a preset number of times (e.g., divided only n times (where n>0)). However, the restriction on the third coding unit 420c at the center position is not limited to the above examples and may include various restrictions for decoding the third coding unit 420c at the center position differently from the other third coding units 420b and 420d.
[0108] According to an embodiment, the image decoding device 150 can obtain at least one of block shape information and partition shape information for dividing the current encoding unit from a preset position in the current encoding unit.
[0109] According to an embodiment, when the current coding unit is divided into a preset number of coding units, the image decoding device 150 can select one coding unit from the coding units. As will be described below with respect to various embodiments, various methods can be used to select one of a plurality of coding units.
[0110] According to an embodiment, the image decoding device 150 can divide the current encoding unit into multiple encoding units and determine the encoding unit at a preset position.
[0111] Figure 5 This illustrates a method performed by an image decoding device 150 according to an embodiment for determining a coding unit at a preset position among an odd number of coding units.
[0112] According to an embodiment, the image decoding device 150 can use information indicating the positions of an odd number of coding units to determine the coding unit at the center position among the odd number of coding units. (See also...) Figure 5 The image decoding device 150 can determine an odd number of coding units 520a, 520b, and 520c by dividing the current coding unit 500. The image decoding device 150 can determine the coding unit 520b at the center position by using information about the positions of the odd number of coding units 520a, 520b, and 520c. For example, the image decoding device 150 can determine the coding unit 520b at the center position by determining the positions of coding units 520a, 520b, and 520c based on information indicating the positions of preset samples included in coding units 520a, 520b, and 520c. Specifically, the image decoding device 150 can determine the coding unit 520b at the center position by determining the positions of coding units 520a, 520b, and 520c based on information indicating the positions of the upper left samples 530a, 530b, and 530c of coding units 520a, 520b, and 520c.
[0113] According to an embodiment, the information indicating the positions of the top-left samples 530a, 530b, and 530c included in encoding units 520a, 520b, and 520c respectively may include information about the positions or coordinates of the encoding units 520a, 520b, and 520c in the image. According to an embodiment, the information indicating the positions of the top-left samples 530a, 530b, and 530c included in the encoding units 520a, 520b, and 520c respectively may include information indicating the width or height of the encoding units 520a, 520b, and 520c included in the current encoding unit 500, and the width or height may correspond to information indicating the difference between the coordinates of the encoding units 520a, 520b, and 520c in the image. That is, the image decoding device 150 can determine the encoding unit 520b at the center position by directly using information about the positions or coordinates of the encoding units 520a, 520b, and 520c in the image, or by using information about the width or height corresponding to the difference between the coordinates of the encoding units.
[0114] According to an embodiment, the information indicating the position of the upper left sample 530a of the upper encoding unit 520a may include coordinates (xa, ya), the information indicating the position of the upper left sample 530b of the middle encoding unit 520b may include coordinates (xb, yb), and the information indicating the position of the upper left sample 530c of the lower encoding unit 520c may include coordinates (xc, yc). The image decoding device 150 can determine the middle encoding unit 520b by using the coordinates of the upper left samples 530a, 530b, and 530c included in the encoding units 520a, 520b, and 520c, respectively. For example, when the coordinates of the upper left samples 530a, 530b, and 530c are sorted in ascending or descending order, the encoding unit 520b including the coordinates (xb, yb) of the sample 530b at the center position can be determined as the encoding unit at the center position among the encoding units 520a, 520b, and 520c determined by dividing the current encoding unit 500. However, the coordinates indicating the positions of the top-left sample points 530a, 530b, and 530c may include coordinates indicating absolute positions within the frame, or coordinates (dxb, dyb) indicating the relative position of the top-left sample point 530b of the intermediate encoding unit 520b relative to the top-left sample point 530a of the upper encoding unit 520a, and coordinates (dxc, dyc) indicating the relative position of the top-left sample point 530c of the lower encoding unit 520c relative to the top-left sample point 530a of the upper encoding unit 520a. The method of determining the encoding unit at a preset position by using the coordinates of the sample points included in the encoding unit as information indicating the position of the sample points is not limited to the methods described above, and may include various arithmetic methods capable of using the coordinates of the sample points.
[0115] According to an embodiment, the image decoding device 150 can divide the current encoding unit 500 into a plurality of encoding units 520a, 520b, and 520c, and can select one of the encoding units 520a, 520b, and 520c based on a preset standard. For example, the image decoding device 150 can select an encoding unit 520b with a size different from the other encoding units from the encoding units 520a, 520b, and 520c.
[0116] According to an embodiment, the image decoding device 150 can determine the width or height of encoding units 520a, 520b, and 520c by using coordinates (xa, ya) indicating the position of the upper left sample point 530a of the upper encoding unit 520a, coordinates (xb, yb) indicating the position of the upper left sample point 530b of the middle encoding unit 520b, and coordinates (xc, yc) indicating the position of the upper left sample point 530c of the lower encoding unit 520c. The image decoding device 150 can also determine the respective dimensions of encoding units 520a, 520b, and 520c by using coordinates (xa, ya), (xb, yb), and (xc, yc) indicating the positions of the encoding units 520a, 520b, and 520c.
[0117] According to an embodiment, the image decoding device 150 can determine the width of the upper encoding unit 520a as xb-xa and its height as yb-ya. According to an embodiment, the image decoding device 150 can determine the width of the middle encoding unit 520b as xc-xb and its height as yc-yb. According to an embodiment, the image decoding device 150 can determine the width or height of the lower encoding unit 520c by using the width or height of the current encoding unit 500 or the width or height of the upper encoding unit 520a and the middle encoding unit 520b. The image decoding device 150 can determine encoding units with dimensions different from those of other encoding units based on the determined widths and heights of the encoding units 520a, 520b, and 520c. (Refer to...) Figure 5 The image decoding device 150 can determine an intermediate encoding unit 520b, which has a size different from that of the upper encoding unit 520a and the lower encoding unit 520c, as an encoding unit at a preset position. However, the method described above by the image decoding device 150 for determining an encoding unit with a size different from that of other encoding units corresponds only to the example of determining an encoding unit at a preset position by using the size of the encoding unit determined based on the coordinates of sample points. Therefore, various methods can be used to determine an encoding unit at a preset position by comparing the sizes of encoding units determined based on the coordinates of preset sample points.
[0118] However, the position of the sample points considered in determining the position of the coding unit is not limited to the upper left position mentioned above, and information about any position of the sample points included in the coding unit can be used.
[0119] According to an embodiment, the image decoding device 150 may consider the shape of the current coding unit and select a coding unit at a preset position from an odd number of coding units determined by dividing the current coding unit. For example, when the current coding unit has a non-square shape with a width greater than its height, the image decoding device 150 may determine a coding unit at a preset position along the horizontal direction. That is, the image decoding device 150 may determine one coding unit from the coding units at different positions along the horizontal direction and impose restrictions on that coding unit. When the current coding unit has a non-square shape with a height greater than its width, the image decoding device 150 may determine a coding unit at a preset position along the vertical direction. That is, the image decoding device 150 may determine one coding unit from the coding units at different positions along the vertical direction and may impose restrictions on that coding unit.
[0120] According to an embodiment, the image decoding device 150 can use information indicating the positions of each of the even-numbered coding units to determine the coding unit at a preset position among the even-numbered coding units. The image decoding device 150 can determine the even-numbered coding units by dividing the current coding units, and can determine the coding unit at the preset position by using information about the positions of the even-numbered coding units. The associated operations are similar to those already described above regarding... Figure 5 The operation corresponding to determining the coding unit at a preset position (e.g., the center position) among an odd number of coding units is described in detail, and therefore its detailed description is not provided here.
[0121] According to an embodiment, when a non-square current coding unit is divided into multiple coding units, preset information about the coding unit at a preset position can be used in the division operation to determine the coding unit at the preset position among the multiple coding units. For example, the image decoding device 150 can use at least one of block shape information and division shape information stored in the samples included in the coding unit at the center position to determine the coding unit at the center position among the multiple coding units determined by dividing the current coding unit in the division operation.
[0122] Reference Figure 5The image decoding device 150 can divide the 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 can determine the coding unit 520b at the center position among the plurality of coding units 520a, 520b, and 520c. Furthermore, the image decoding device 150 can determine the coding unit 520b at the center position by considering the position of at least one of the obtained block shape information and partition shape information. That is, at least one of the block shape information and partition shape information of the current coding unit 500 can be obtained from the sample point 540 at the center position of the current coding unit 500, and when the current coding unit 500 is divided into a plurality of coding units 520a, 520b, and 520c based on at least one of the block shape information and partition shape information, the coding unit 520b including the sample point 540 can be determined as the coding unit at the center position. However, the information used to determine the coding unit at the center position is not limited to at least one of the block shape information and partition shape information, and various types of information can be used to determine the coding unit at the center position.
[0123] According to an embodiment, preset information for identifying the coding unit at a preset location can be obtained from preset samples included in the coding unit to be determined. (Refer to...) Figure 5 The image decoding device 150 can determine the encoding unit at the preset position (e.g., the encoding unit at the center position of the divided encoding unit 500) among the plurality of encoding units 520a, 520b, and 520c determined by dividing the current encoding unit 500 using at least one of block shape information and partition shape information obtained from samples at preset positions in the current encoding unit 500 (e.g., samples at the center position of the divided encoding units). That is, the image decoding device 150 can determine the samples at the preset positions by considering the block shape of the current encoding unit 500, determine the encoding unit 520b including samples from the plurality of encoding units 520a, 520b, and 520c determined by dividing the current encoding unit 500, and can impose a preset constraint on the encoding unit 520b. (Refer to...) Figure 5 According to an embodiment, during the decoding operation, the image decoding device 150 can determine the sample 540 at the center position of the current encoding unit 500 as a sample that can obtain preset information, and can apply a preset restriction to the encoding unit 520b including the sample 540. However, the position of the sample that can obtain preset information is not limited to the above-mentioned position, and can include any position of the sample included in the encoding unit 520b that will be determined for restriction.
[0124] According to an embodiment, the location of a sample point from which preset information can be obtained can be determined based on the shape of the current encoding unit 500. According to an embodiment, block shape information can indicate whether the current encoding unit has a square shape or a non-square shape, and the location of the sample point from which preset information can be obtained can be determined based on this shape. For example, the image decoding device 150 can determine a sample point located on a boundary used to halve at least one of the width and height of the current encoding unit as a sample point from which preset information can be obtained by using at least one of information about the width of the current encoding unit and information about the height of the current encoding unit. As another example, when the block shape information of the current encoding unit indicates a non-square shape, the image decoding device 150 can determine one of the sample points adjacent to the boundary used to halve the long side of the current encoding unit as a sample point from which preset information can be obtained.
[0125] According to an embodiment, when the current coding unit is divided into multiple coding units, the image decoding device 150 can use at least one of block shape information and partition shape information to determine the coding unit at a preset position among the multiple coding units. According to an embodiment, the image decoding device 150 can obtain at least one of block shape information and partition shape information from samples at the preset position in the coding unit, and can divide the multiple coding units generated by dividing the current coding unit using at least one of partition shape information and block shape information, wherein the at least one of partition shape information and block shape information is obtained from samples at the preset position in each of the multiple coding units. That is, coding units can be recursively divided based on at least one of block shape information and partition shape information, wherein the at least one of partition shape information and block shape information is obtained from samples at the preset position in each coding unit. The above already relates to... Figure 4 The operation of recursively dividing the coding unit is described, and therefore its detailed description will not be provided here.
[0126] According to an embodiment, the image decoding device 150 can determine one or more coding units by dividing the current coding unit, and can determine the order in which the one or more coding units are decoded based on a preset block (e.g., the current coding unit).
[0127] Figure 6 This illustrates the order in which the image decoding device 150 processes the plurality of coding units when it determines the plurality of coding units by dividing the current coding unit, according to an embodiment.
[0128] According to an embodiment, the image decoding device 150 can determine the second coding units 610a and 610b by dividing the first coding unit 600 in the vertical direction based on block shape information and division shape information, or by dividing the first coding unit 600 in the horizontal direction, or by dividing the first coding unit 600 in both the vertical and horizontal directions.
[0129] Reference Figure 6 The image decoding device 150 can determine to process the second coding units 610a and 610b determined by dividing the first coding unit 600 in the vertical direction according to the horizontal direction sequence 610c. The image decoding device 150 can determine to process the second coding units 630a and 630b determined by dividing the first coding unit 600 in the horizontal direction according to the vertical direction sequence 630c. The image decoding device 150 can determine to process the second coding units 650a, 650b, 650c, and 650d determined by dividing the first coding unit 600 in the vertical and horizontal directions according to a preset order (e.g., raster scan order or zigzag scan order 650e), wherein the coding units in one row are processed according to the preset order and then the coding units in the next row are processed.
[0130] According to an embodiment, the image decoding device 150 can recursively divide encoding units. (See also...) Figure 6 The image decoding device 150 can determine a plurality of coding units 610a, 610b, 630a, 630b, 650a, 650b, 650c, and 650d by dividing the first coding unit 600, and can recursively divide each of the determined plurality of coding units 610a, 610b, 630a, 630b, 650a, 650b, 650c, and 650d. The method of dividing the plurality of coding units 610a, 610b, 630a, 630b, 650a, 650b, 650c, and 650d can correspond to the method of dividing the first coding unit 600. Thus, each of the plurality of coding units 610a, 610b, 630a, 630b, 650a, 650b, 650c, and 650d can be independently divided into a plurality of coding units. (Refer to...) Figure 6 The image decoding device 150 can determine the second coding units 610a and 610b by dividing the first coding unit 600 in the vertical direction, and can determine whether to divide or not divide each of the second coding units 610a and 610b independently.
[0131] According to an embodiment, the image decoding device 150 can determine the third coding units 620a and 620b by dividing the left second coding unit 610a in the horizontal direction, and may not divide the right second coding unit 610b.
[0132] According to an embodiment, the processing order of coding units can be determined based on the operation of dividing coding units. In other words, the processing order of the divided coding units can be determined based on the processing order of the coding units immediately preceding the division. The image decoding device 150 can determine the processing order of the third coding units 620a and 620b determined by dividing the left second coding unit 610a independently of the right second coding unit 610b. Because the third coding units 620a and 620b are determined by dividing the left second coding unit 610a in the horizontal direction, the third coding units 620a and 620b can be processed in the vertical order 620c. Because the left second coding unit 610a and the right second coding unit 610b are processed in the horizontal order 610c, the right second coding unit 610b can be processed after the third coding units 620a and 620b included in the left second coding unit 610a are processed in the vertical order 620c. The operation of determining the processing order of coding units based on the coding units before division is not limited to the above example, and various methods can be used to independently process the coding units that have been divided and determined to be of various shapes in a preset order.
[0133] Figure 7 The illustration shows a process performed by an image decoding device 150 according to an embodiment, in which the current encoding unit is determined to be divided into an odd number of encoding units when the encoding units cannot be processed in a preset order.
[0134] According to an embodiment, the image decoding device 150 can determine whether the current coding unit will be divided into an odd number of coding units based on the obtained block shape information and partition shape pattern information. (Refer to...) Figure 7 The square first coding unit 700 can be divided into non-square second coding units 710a and 710b, and the second coding units 710a and 710b can be independently divided into third coding units 720a and 720b, and 720c to 720e. According to an embodiment, the image decoding device 150 can determine a plurality of third coding units 720a and 720b by dividing the left second coding unit 710a in the horizontal direction, and can divide the right second coding unit 710b into an odd number of third coding units 720c to 720e.
[0135] According to an embodiment, the image decoding device 150 can determine whether any coding unit will be divided into an odd number of coding units by determining whether the third coding units 720a and 720b and 720c to 720e can be processed in a preset order. (Refer to...) Figure 7 The image decoding device 150 can determine the third coding units 720a and 720b, and 720c to 720e, by recursively dividing the first coding unit 700. The image decoding device 150 can determine, based on at least one of block shape information and division shape information, whether any of the following coding units will be divided into an odd number of coding units: the first coding unit 700, the second coding units 710a and 710b, and the third coding units 720a and 720b, and 720c, 720d, and 720e. For example, the second coding unit located on the right side of the second coding units 710a and 710b can be divided into an odd number of third coding units 720c, 720d, and 720e. The processing order of the multiple encoding units included in the first encoding unit 700 can be a preset order (e.g., zigzag scanning order 730). The image decoding device 150 can determine whether the third encoding units 720c, 720d, and 720e, determined by dividing the right second encoding unit 710b into an odd number of encoding units, meet the conditions for processing in a preset order.
[0136] According to an embodiment, the image decoding device 150 can determine whether the third encoding units 720a and 720b, as well as 720c, 720d and 720e included in the first encoding unit 700, satisfy a condition for processing in a preset order, and this condition relates to whether at least one of the width and height of the second encoding units 710a and 710b is halved along the boundary of the third encoding units 720a and 720b, as well as 720c, 720d and 720e. For example, the third encoding units 720a and 720b, determined by halving the height of the non-square left second encoding unit 710a, satisfy the condition. However, since the boundary of the third encoding units 720c, 720d and 720e, determined by dividing the right second encoding unit 710b into three encoding units, does not halve the width or height of the right second encoding unit 710b, it can be determined that the third encoding units 720c, 720d and 720e do not satisfy the condition. When the conditions described above are not met, the image decoding device 150 can determine that the scanning order is discontinuous, and based on the determination result, determine that the right-side second coding unit 710b will be divided into an odd number of coding units. According to an embodiment, when the coding unit is divided into an odd number of coding units, the image decoding device 150 can apply a preset restriction to the coding units at preset positions within the divided coding units. The restriction or the preset position has already been described above with respect to various embodiments, and therefore its detailed description will not be provided here.
[0137] Figure 8 This illustration shows a process performed by an image decoding device 150 according to an embodiment, involving the determination of at least one coding unit by dividing a first coding unit 800. According to the embodiment, the image decoding device 150 may divide the first coding unit 800 based on at least one of block shape information and division shape information obtained by the receiver 160. A square first coding unit 800 may be divided into four square coding units, or it may be divided into multiple non-square coding units. For example, refer to… Figure 8 When the block shape information indicates that the first coding unit 800 has a square shape and the division shape information indicates that the first coding unit 800 should be divided into non-square coding units, the image decoding device 150 may divide the first coding unit 800 into a plurality of non-square coding units. Specifically, when the division shape information indicates that an odd number of coding units should be determined by dividing the first coding unit 800 in the horizontal or vertical direction, the image decoding device 150 may divide the square first coding unit 800 into an odd number of coding units (e.g., second coding units 810a, 810b, and 810c determined by dividing the square first coding unit 800 in the vertical direction, or second coding units 820a, 820b, and 820c determined by dividing the square first coding unit 800 in the horizontal direction).
[0138] According to an embodiment, the image decoding device 150 can determine whether the second encoding units 810a, 810b, 810c, 820a, 820b, and 820c included in the first encoding unit 800 meet the conditions for processing in a preset order, and these conditions are related to whether at least one of the width and height of the first encoding unit 800 will be divided in half along the boundaries of the second encoding units 810a, 810b, 810c, 820a, 820b, and 820c. (Refer to...) Figure 8Because the boundaries of the second encoding units 810a, 810b, and 810c, defined by the first encoding unit 800 dividing the square in the vertical direction, do not halve the width of the first encoding unit 800, it can be determined that the first encoding unit 800 does not meet the conditions for processing in a preset order. Furthermore, because the boundaries of the second encoding units 820a, 820b, and 820c, defined by the first encoding unit 800 dividing the square in the horizontal direction, do not halve the height of the first encoding unit 800, it can be determined that the first encoding unit 800 does not meet the conditions for processing in a preset order. When the conditions are not met as described above, the image decoding device 150 can determine that the scanning order is discontinuous, and can determine, based on the determination result, that the first encoding unit 800 will be divided into an odd number of encoding units. According to an embodiment, when the encoding unit is divided into an odd number of encoding units, the image decoding device 150 can apply a preset restriction to the encoding units at preset positions among the divided encoding units. The restrictions or preset positions have been described above with respect to various embodiments, and therefore will not be described in detail here.
[0139] According to an embodiment, the image decoding device 150 can determine coding units of various shapes by dividing a first coding unit.
[0140] Reference Figure 8 The image decoding device 150 can divide the square first coding unit 800 or the non-square first coding unit 830 or 850 into coding units of various shapes.
[0141] Figure 9 The image decoding device 150 can restrict the shape into which the second encoding unit is divided when the second encoding unit, which has a non-square shape and is determined by dividing the first encoding unit 900, meets a preset condition, according to an embodiment.
[0142] According to an embodiment, the image decoding device 150 can determine, based on at least one of block shape information and partition shape information obtained by the receiver 160, that a square first coding unit 900 is divided into non-square second coding units 910a, 910b, 920a, and 920b. The second coding units 910a, 910b, 920a, and 920b can be divided independently. Thus, the image decoding device 150 can determine, based on at least one of the block shape information and partition shape information of each of the second coding units 910a, 910b, 920a, and 920b, whether to divide each of the second coding units 910a, 910b, 920a, and 920b into multiple coding units or not to divide each of the second coding units 910a, 910b, 920a, and 920b. According to an embodiment, the image decoding device 150 can determine third coding units 912a and 912b by dividing the non-square left second coding unit 910a, which is determined by dividing the first coding unit 900 in the vertical direction, in the horizontal direction. However, when the left second coding unit 910a is divided in the horizontal direction, the image decoding device 150 can restrict the right second coding unit 910b to not be divided in the horizontal direction in which the left second coding unit 910a is divided. When the third coding units 914a and 914b are determined by dividing the right second coding unit 910b in the same direction, the third coding units 912a, 912b, 914a, and 914b can be determined because the left second coding unit 910a and the right second coding unit 910b are divided independently in the horizontal direction. However, this situation works in the same way as when the image decoding device 150 divides the first encoding unit 900 into four squares, namely, second encoding units 930a, 930b, 930c and 930d, based on at least one of block shape information and partition shape information, and may be inefficient in terms of image decoding.
[0143] According to an embodiment, the image decoding device 150 can determine third coding units 922a, 922b, 924a, and 924b by dividing a non-square second coding unit 920a or 920b, determined by dividing the first coding unit 900 in the horizontal direction, in the vertical direction. However, when the second coding unit (e.g., the upper second coding unit 920a) is divided in the vertical direction, for the reasons described above, the image decoding device 150 can restrict another second coding unit (e.g., the lower second coding unit 920b) to not be divided in the vertical direction in which the upper second coding unit 920a is divided.
[0144] Figure 10The image decoding device 150, according to an embodiment, performs a process of dividing a square coding unit when the division shape information indicates that the square coding unit will not be divided into four square coding units.
[0145] According to an embodiment, the image decoding device 150 can determine second coding units 1010a, 1010b, 1020a, 1020b, etc., by dividing the first coding unit 1000 based on at least one of block shape information and partition shape information. The partition shape information may include information about various methods of dividing the coding unit, but may not include information for dividing the coding unit into four square coding units. Based on such partition shape information, the image decoding device 150 may not divide the square first coding unit 1000 into four square second coding units 1030a, 1030b, 1030c, and 1030d. The image decoding device 150 can determine non-square second coding units 1010a, 1010b, 1020a, 1020b, etc., based on the partition shape information.
[0146] According to an embodiment, the image decoding device 150 can independently divide non-square second coding units 1010a, 1010b, 1020a, 1020b, etc. Each of the second coding units 1010a, 1010b, 1020a, 1020b, etc. can be recursively divided in a preset order, and this division method can correspond to a method of dividing the first coding unit 1000 based on at least one of block shape information and division shape information.
[0147] For example, the image decoding device 150 can determine the third coding units 1012a and 1012b of the square by dividing the left second coding unit 1010a in the horizontal direction, and can determine the third coding units 1014a and 1014b of the square by dividing the right second coding unit 1010b in the horizontal direction. Furthermore, the image decoding device 150 can determine the third coding units 1016a, 1016b, 1016c, and 1016d of the square by dividing both the left second coding unit 1010a and the right second coding unit 1010b in the horizontal direction. In this case, coding units with the same shape as the second coding units 1030a, 1030b, 1030c, and 1030d of the four squares divided from the first coding unit 1000 can be determined.
[0148] As another example, the image decoding device 150 can determine the third coding units 1022a and 1022b of the square by dividing the upper second coding unit 1020a in the vertical direction, and can determine the third coding units 1024a and 1024b of the square by dividing the lower second coding unit 1020b in the vertical direction. Furthermore, the image decoding device 150 can determine the third coding units 1022a, 1022b, 1024a, and 1024b of the square by dividing both the upper second coding unit 1020a and the lower second coding unit 1020b in the vertical direction. In this case, coding units with the same shape as the second coding units 1030a, 1030b, 1030c, and 1030d of the four squares divided from the first coding unit 1000 can be determined.
[0149] Figure 11 This illustrates that, according to an embodiment, the processing order among multiple coding units can be changed based on the process of dividing coding units.
[0150] According to an embodiment, the image decoding device 150 can divide the first coding unit 1100 based on block shape information and partition shape information. When the block shape information indicates a square shape and the partition shape information indicates that the first coding unit 1100 is divided in at least one of the horizontal and vertical directions, the image decoding device 150 can determine the second coding units 1110a, 1110b, 1120a, and 1120b by dividing the first coding unit 1100. (Refer to...) Figure 11 The non-square second coding units 1110a, 1110b, 1120a, and 1120b, determined by dividing the first coding unit 1100 only in the horizontal or vertical direction, can be independently divided based on the block shape information and division shape information of each coding unit. For example, the image decoding device 150 can determine the third coding units 1116a, 1116b, 1116c, and 1116d by dividing the second coding units 1110a and 1110b generated by dividing the first coding unit 1100 in the vertical direction in the horizontal direction, and can determine the third coding units 1126a, 1126b, 1126c, and 1126d by dividing the second coding units 1120a and 1120b generated by dividing the first coding unit 1100 in the horizontal direction in the vertical direction. The above has already discussed... Figure 9 The operation of dividing the second coding units 1110a, 1110b, 1120a and 1120b is described, so its detailed description will not be provided here.
[0151] According to an embodiment, the image decoding device 150 can process the encoding units in a preset order. (The above has already mentioned...) Figure 6The operation of processing encoded units in a preset order is described, therefore its detailed description will not be provided here. (See reference...) Figure 11 The image decoding device 150 can determine the third encoding units 1116a, 1116b, 1116c, and 1116d, as well as 1126a, 1126b, 1126c, and 1126d, of the four squares by dividing the first encoding unit 1100 into squares. According to an embodiment, the image decoding device 150 can determine the processing order of the third encoding units 1116a, 1116b, 1116c, and 1116d, as well as 1126a, 1126b, 1126c, and 1126d, based on the division method of the first encoding unit 1100.
[0152] According to an embodiment, the image decoding device 150 can determine third coding units 1116a, 1116b, 1116c, and 1116d by dividing the second coding units 1110a and 1110b generated by dividing the first coding unit 1100 in the vertical direction in the horizontal direction, and can process the third coding units 1116a, 1116b, 1116c, and 1116d in the following processing order 1117: first, the third coding units 1116a and 1116c included in the left second coding unit 1110a are processed in the vertical direction, and then the third coding units 1116b and 1116d included in the right second coding unit 1110b are processed in the vertical direction.
[0153] According to an embodiment, the image decoding device 150 can determine third coding units 1126a, 1126b, 1126c, and 1126d by dividing the second coding units 1120a and 1120b generated by dividing the first coding unit 1100 in the horizontal direction in the vertical direction, and can process the third coding units 1126a, 1126b, 1126c, and 1126d in the following processing order 1127: firstly, the third coding units 1126a and 1126b included in the upper second coding unit 1120a are processed in the horizontal direction, and then the third coding units 1126c and 1126d included in the lower second coding unit 1120b are processed in the horizontal direction.
[0154] Reference Figure 11The third coding units 1116a, 1116b, 1116c and 1116d, as well as 1126a, 1126b, 1126c and 1126d of the square can be determined by dividing the second coding units 1110a, 1110b, 1120a and 1120b respectively. Although the second coding units 1110a and 1110b determined by dividing the first coding unit 1100 in the vertical direction are different from the second coding units 1120a and 1120b determined by dividing the first coding unit 1100 in the horizontal direction, the third coding units 1116a, 1116b, 1116c, and 1116d, and the third coding units 1126a, 1126b, 1126c, and 1126d derived from the second coding units 1110a and 1110b and the second coding units 1120a and 1120b ultimately show coding units of the same shape derived from the first coding unit 1100. Thus, by recursively dividing the coding units in different ways based on at least one of block shape information and division shape information, even if the coding units are ultimately determined to have the same shape, the image decoding device 150 can process multiple coding units in different orders.
[0155] Figure 12 The illustration shows the process of determining the depth of a coding unit as the shape and size of the coding unit change when multiple coding units are determined by recursively dividing the coding units according to an embodiment.
[0156] According to an embodiment, the image decoding device 150 can determine the depth of the coding unit based on a preset standard. For example, the preset standard may be the length of the long side of the coding unit. When the length of the long side of the coding unit before division is 2n (n>0) times the length of the long side of the current coding unit after division, the image decoding device 150 can determine that the depth of the current coding unit is increased by n compared to the depth of the coding unit before division. In the following description, the coding unit with the increased depth is referred to as a deeper coding unit.
[0157] Reference Figure 12According to an embodiment, the image decoding device 150 can determine a deeper second coding unit 1202 and a third coding unit 1204 by dividing a square first coding unit 1200 based on block shape information indicating the shape of the square (e.g., the block shape information may be represented as "0: SQUARE"). Assuming the size of the square first coding unit 1200 is 2N×2N, the second coding unit 1202, determined by dividing the width and height of the first coding unit 1200 by half, can have a size of N×N. Furthermore, the third coding unit 1204, determined by dividing the width and height of the second coding unit 1202 by half, can have a size of N / 2×N / 2. In this case, the width and height of the third coding unit 1204 are 1 / 4 of the width and height of the first coding unit 1200. When the depth of the first coding unit 1200 is D, the depth of the second coding unit 1202, whose width and height are half of the width and height of the first coding unit 1200, can be D+1, and the depth of the third coding unit 1204, whose width and height are one-quarter of the width and height of the first coding unit 1200, can be D+2.
[0158] According to an embodiment, the image decoding device 150 can determine a deeper second encoding unit 1212 or 1222 and a third encoding unit 1214 or 1224 by dividing a non-square first encoding unit 1210 or 1220 based on block shape information indicating a non-square shape (e.g., the block shape information may be represented as "1: NS_VER" indicating a non-square shape with a height greater than its width, or "2: NS_HOR" indicating a non-square shape with a width greater than its height).
[0159] The image decoding device 150 can determine the second encoding unit 1202, 1212, or 1222 by dividing the width and height of the first encoding unit 1210, which has a size of N×2N. That is, the image decoding device 150 can determine the second encoding unit 1202 or the second encoding unit 1222 with a size of N×N by dividing the first encoding unit 1210 in the horizontal direction, or it can determine the second encoding unit 1212 with a size of N / 2×N by dividing the first encoding unit 1210 in both the horizontal and vertical directions.
[0160] According to an embodiment, the image decoding device 150 can determine the second encoding unit 1202, 1212, or 1222 by dividing the width and height of the first encoding unit 1220, which has a size of 2N×N. That is, the image decoding device 150 can determine the second encoding unit 1202, which has a size of N×N, or the second encoding unit 1212, which has a size of N / 2, by dividing the first encoding unit 1220 in the vertical direction, or by dividing the first encoding unit 1220 in both the horizontal and vertical directions.
[0161] According to an embodiment, the image decoding device 150 can determine a third encoding unit 1204, 1214, or 1224 by dividing the width and height of a second encoding unit 1202 with a size of N×N. That is, the image decoding device 150 can determine a third encoding unit 1204 with a size of N / 2×N / 2, a third encoding unit 1214 with a size of N / 4×N / 2, or a third encoding unit 1224 with a size of N / 2×N / 4 by dividing the second encoding unit 1202 in the vertical and horizontal directions.
[0162] According to an embodiment, the image decoding device 150 can determine the third encoding unit 1204, 1214, or 1224 by dividing the width and height of the second encoding unit 1212, which has a size of N / 2 × N. That is, the image decoding device 150 can determine the third encoding unit 1204 or the third encoding unit 1224 with a size of N / 2 × N / 4 by dividing the second encoding unit 1212 in the horizontal direction, or it can determine the third encoding unit 1214 with a size of N / 4 × N / 2 by dividing the second encoding unit 1212 in both the vertical and horizontal directions.
[0163] According to an embodiment, the image decoding device 150 can determine the third encoding unit 1204, 1214, or 1224 by dividing the width and height of the second encoding unit 1222, which has a size of N×N / 2. That is, the image decoding device 150 can determine the third encoding unit 1204 or the third encoding unit 1214 with a size of N / 2×N / 2 by dividing the second encoding unit 1222 in the vertical direction, or it can determine the third encoding unit 1224 with a size of N / 2×N / 4 by dividing the second encoding unit 1222 in both the vertical and horizontal directions.
[0164] According to an embodiment, the image decoding device 150 can divide square coding units 1200, 1202, or 1204 in the horizontal or vertical direction. For example, the image decoding device 150 can determine a first coding unit 1210 of size N×2N by dividing a first coding unit 1200 of size 2N×2N in the vertical direction, or it can determine a first coding unit 1220 of size 2N×N by dividing a first coding unit 1200 in the horizontal direction. According to an embodiment, when the depth is determined based on the length of the longest side of the coding unit, the depth of the coding unit determined by dividing a first coding unit 1200 of size 2N×2N in the horizontal or vertical direction can be the same as the depth of the first coding unit 1200.
[0165] According to an embodiment, the width and height of the third encoding unit 1214 or 1224 can be 1 / 4 of the width and height of the first encoding unit 1210 or 1220. When the depth of the first encoding unit 1210 or 1220 is D, the depth of the second encoding unit 1212 or 1222, whose width and height are 1 / 2 of the width and height of the first encoding unit 1210 or 1220, can be D+1, and the depth of the third encoding unit 1214 or 1224, whose width and height are 1 / 4 of the width and height of the first encoding unit 1210 or 1220, can be D+2.
[0166] Figure 13 The diagram illustrates a depth that can be determined based on the shape and size of the coding unit, and a partial index (PID) used to distinguish the coding unit, according to an embodiment.
[0167] According to an embodiment, the image decoding device 150 can determine second coding units of various shapes by dividing a first coding unit 1300 into squares. (See also...) Figure 13 The image decoding device 150 can determine second coding units 1302a and 1302b, second coding units 1304a and 1304b, and second coding units 1306a, 1306b, 1306c, and 1306d by dividing the first coding unit 1300 in at least one direction, either vertical or horizontal, based on the division shape information. In other words, the image decoding device 150 can determine the second coding units 1302a and 1302b, second coding units 1304a and 1304b, and second coding units 1306a, 1306b, 1306c, and 1306d based on the division shape information of the first coding unit 1300.
[0168] According to an embodiment, the depths of the second coding units 1302a and 1302b, 1304a and 1304b, and 1306a, 1306b, 1306c, and 1306d, determined based on the division shape information of the square first coding unit 1300, can be determined based on the length of their longer sides. For example, since the length of the side of the square first coding unit 1300 is equal to the length of the longer side of the non-square second coding units 1302a and 1302b and 1304a and 1304b, the first coding unit 1300 and the non-square second coding units 1302a and 1302b and 1304a and 1304b can have the same depth, such as D. However, when the image decoding device 150 divides the first encoding unit 1300 into four square second encoding units 1306a, 1306b, 1306c and 1306d based on the division shape information, the depth of the second encoding units 1306a, 1306b, 1306c and 1306d can be D+1 deeper than the depth D of the first encoding unit 1300 because the length of the side of the square second encoding units 1306a, 1306b, 1306c and 1306d is 1 / 2 the length of the side of the first encoding unit 1300.
[0169] According to an embodiment, the image decoding device 150 can determine a plurality of second encoding units 1312a and 1312b, as well as 1314a, 1314b, and 1314c, by dividing a first encoding unit 1310 in the horizontal direction with a height greater than its width based on division shape information. According to an embodiment, the image decoding device 150 can determine a plurality of second encoding units 1322a and 1322b, as well as 1324a, 1324b, and 1324c, by dividing a first encoding unit 1320 in the vertical direction with a width greater than its height based on division shape information.
[0170] According to an embodiment, the depths of the second coding units 1312a and 1312b, second coding units 1314a, 1314b and 1314c, second coding units 1322a and 1322b, and second coding units 1324a, 1324b and 1324c, determined based on the division shape information of the non-square first coding unit 1310 or 1320, can be determined based on the length of their longer sides. For example, since the length of the side of the square second coding units 1312a and 1312b is half the length of the longer side of the non-square first coding unit 1310, which has a height longer than its width, the depth of the square second coding units 1312a and 1312b is D+1 deeper than the depth D of the non-square first coding unit 1310.
[0171] Furthermore, the image decoding device 150 can divide the non-square first coding unit 1310 into an odd number of second coding units 1314a, 1314b, and 1314c based on the division shape 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, since the length of the long side of the non-square second coding units 1314a and 1314c and the length of the side of the square second coding unit 1314b are half the length of the long side of the first coding unit 1310, the depth of the second coding units 1314a, 1314b, and 1314c can be D+1, which is 1 deeper than the depth D of the non-square first coding unit 1310. The image decoding device 150 can determine the depth of the coding unit divided from the first coding unit 1320, which has a width longer than its height, by using the method described above for determining the depth of the coding unit divided from the first coding unit 1310.
[0172] According to an embodiment, when an odd number of the divided coding units do not have equal sizes, the image decoding device 150 can determine the PID used to identify the divided coding units based on the size ratio between the coding units. (See also...) Figure 13 In an odd-numbered set of coding units 1314a, 1314b, and 1314c, the width of the central coding unit 1314b can be equal to the width of the other coding units 1314a and 1314c, and its height can be twice the height of the other coding units 1314a and 1314c. That is, in this case, the central coding unit 1314b may include two other coding units 1314a or 1314c. Therefore, when the PID of the central coding unit 1314b is 1 based on the scan order, the PID of the coding unit 1314c located adjacent to coding unit 1314b can be increased by 2 and thus can be 3. That is, there may be discontinuous PID values. According to an embodiment, the image decoding device 150 can determine whether the odd-numbered coding units do not have equal sizes based on whether there is a discontinuity in the PID used to identify the divided coding units.
[0173] According to an embodiment, the image decoding device 150 may determine whether to use a specific partitioning method based on PID values used to identify multiple coding units determined by partitioning the current coding unit. (See also...) Figure 13The image decoding device 150 can determine an even number of coding units 1312a and 1312b or an odd number of coding units 1314a, 1314b, and 1314c by dividing a first coding unit 1310 having a height longer than its width. The image decoding device 150 can use a PID to identify each coding unit. According to an embodiment, the PID can be obtained from a sample point at a preset position (e.g., the upper left sample point) of each coding unit.
[0174] According to an embodiment, the image decoding device 150 can determine the coding unit at a preset position among the divided coding units by using a PID for distinguishing coding units. According to an embodiment, when the division shape information of a first coding unit 1310 having a rectangular shape with a height greater than its width indicates that the coding unit should be divided into three coding units, the image decoding device 150 can divide the first coding unit 1310 into three coding units 1314a, 1314b, and 1314c. The image decoding device 150 can assign a PID to each of the three coding units 1314a, 1314b, and 1314c. The image decoding device 150 can compare the PIDs of an odd number of divided coding units to determine the coding unit at the center position among the odd number of divided coding units. The image decoding device 150 can determine the coding unit 1314b with the PID corresponding to the middle value among the PIDs of the coding units as the coding unit at the center position among the coding units determined by dividing the first coding unit 1310. According to an embodiment, when the divided coding units do not have equal sizes, the image decoding device 150 can determine a PID for distinguishing the divided coding units based on the size ratio between the coding units. (Refer to...) Figure 13The width of the encoding unit 1314b generated by dividing the first encoding unit 1310 can be equal to the width of the other encoding units 1314a and 1314c, and its height can be twice the height of the other encoding units 1314a and 1314c. In this case, when the PID of the encoding unit 1314b at the center position is 1, the PID of the encoding unit 1314c located adjacent to the encoding unit 1314b can be increased by 2 and therefore can be 3. When the PID does not increase uniformly as described above, the image decoding device 150 can determine that the encoding unit is divided into a plurality of encoding units, wherein the plurality of encoding units includes encoding units with sizes different from the sizes of other encoding units. According to an embodiment, when the division shape information indicates that the encoding unit is divided into an odd number of encoding units, the image decoding device 150 can divide the current encoding unit in such a way that the encoding unit at a preset position in the odd number of encoding units (e.g., the encoding unit at the center position) has a size different from the sizes of other encoding units. In this case, the image decoding device 150 can determine the encoding unit at the center position with different sizes by using the PID of the encoding unit. However, the PID and size or position of the encoding unit at the preset position are not limited to the examples above, and various PIDs, positions and sizes of the encoding unit can be used.
[0175] According to an embodiment, the image decoding device 150 may use a predetermined data unit, in which encoding units are recursively divided.
[0176] Figure 14 This illustrates how multiple encoding units are determined based on multiple preset data units included in the screen, according to an embodiment.
[0177] According to an embodiment, a preset data unit can be defined as a data unit that recursively divides coding units using at least one of block shape information and partition shape information. That is, the preset data unit can correspond to a coding unit used to determine the highest depth of a plurality of coding units divided from the current frame. In the following description, for ease of explanation, the preset data unit is referred to as a reference data unit.
[0178] According to an embodiment, the reference data unit may have a preset size and a preset size shape. According to an embodiment, the reference coding unit may include M×N sample points. Here, M and N may be equal to each other and may be integers represented as powers of 2. That is, the reference data unit may have a square shape or a non-square shape and may be divided into an integer number of coding units.
[0179] According to an embodiment, the image decoding device 150 can divide the current frame into multiple reference data units. According to an embodiment, the image decoding device 150 can divide the multiple reference data units from the current frame using division information about each reference data unit. The operation of dividing the reference data units can correspond to a division operation using a quadtree structure.
[0180] According to an embodiment, the image decoding device 150 can predetermine the minimum allowed size of the reference data units included in the current frame. Therefore, the image decoding device 150 can determine various reference data units with sizes equal to or greater than the minimum size, and can determine one or more coding units by using block shape information and partition shape information with reference to the determined reference data units.
[0181] Reference Figure 14 The image decoding device 150 may use a square reference coding unit 1400 or a non-square 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., sequences, frames, stripes, strip segments, maximum coding units, etc.) that can include one or more reference coding units.
[0182] According to an embodiment, the receiver 160 of the image decoding device 150 can obtain from the bitstream at least one of reference coding unit shape information and reference coding unit size information for each of the various data units. The above has already discussed... Figure 10 The operation of dividing the current coding unit 1000 describes the operation of dividing the square reference coding unit 1400 into one or more coding units, and the above has already been discussed... Figure 11 The operation of dividing the current coding unit 1100 or 1150 describes the operation of dividing the non-square reference coding unit 1402 into one or more coding units. Therefore, its detailed description will not be provided here.
[0183] According to an embodiment, the image decoding device 150 can determine the size and shape of a reference coding unit using a PID (PID) for identifying the size and shape of a reference coding unit, based on some data units predetermined according to preset conditions. That is, the receiver 160 can obtain from the bitstream only the PID for identifying the size and shape of the reference coding unit for each strip, strip segment, or maximum coding unit, wherein the strip, strip segment, or maximum coding unit is a data unit (e.g., a data unit with a size equal to or smaller than the strip) among various data units (e.g., a sequence, a frame, a strip, a strip segment, a maximum coding unit, etc.) that meets preset conditions. The image decoding device 150 can determine the size and shape of the reference data unit for each data unit that meets the preset conditions by using the PID. When obtaining and using reference coding unit shape information and reference coding unit size information from the bitstream based on each data unit with a relatively small size, the efficiency of using the bitstream may be low. Therefore, only the PID can be obtained and used, instead of directly obtaining the reference coding unit shape information and reference coding unit size information. In this case, at least one of the size and shape of the reference coding unit corresponding to the PID for identifying the size and shape of the reference coding unit can be predetermined. In other words, the image decoding device 150 can determine at least one of the dimensions and shapes of the reference coding unit included in the data unit used as the unit for obtaining the PID by selecting at least one of the dimensions and shapes of the reference coding unit predetermined based on the PID.
[0184] According to embodiments, the image decoding device 150 may use one or more reference coding units included in the maximum coding unit. That is, the maximum coding unit divided from the image may include one or more reference coding units, and the coding unit can be determined by recursively dividing each reference coding unit. According to embodiments, at least one of the width and height of the maximum coding unit may be an integer multiple of at least one of the width and height of the reference coding unit. According to embodiments, the size of the reference coding unit can be obtained by dividing the maximum coding unit n times based on a quadtree structure. That is, according to various embodiments, the image decoding device 150 may determine the reference coding unit by dividing the maximum coding unit n times based on a quadtree structure, and may divide the reference coding unit based on at least one of block shape information and division shape information.
[0185] Figure 15 The diagram shows a processing block according to an embodiment, which serves as a unit for determining the order of reference coding units included in screen 1500.
[0186] According to an embodiment, the image decoding device 150 can determine one or more processing blocks divided from the image. A processing block is a data unit divided from the image that includes one or more reference coding units, and the one or more reference coding units included in the processing block can be determined according to a specific order. That is, the order in which the one or more reference coding units determined in each processing block can correspond to one of various types of orders used to determine reference coding units, and can vary depending on the processing block. The order in which the reference coding units determined for each processing block can be one of various orders (e.g., raster scan order, zigzag scan, N-shaped scan, upper right diagonal scan, horizontal scan, and vertical scan), but is not limited to the scan orders mentioned above.
[0187] According to an embodiment, the image decoding device 150 can obtain processing block size information and determine the size of one or more processing blocks included in the frame. The image decoding device 150 can obtain processing block size information from a bitstream and determine the size of one or more processing blocks included in the frame. The size of the processing block can be a preset size of a data unit indicated by the processing block size information.
[0188] According to an embodiment, the receiver 160 of the image decoding device 150 can obtain processing block size information from the bitstream based on each specific data unit. For example, processing block size information can be obtained from the bitstream according to data units such as images, sequences, frames, stripes, or strip segments. That is, the receiver 160 can obtain processing block size information from the bitstream based on each data unit among various data units, and the image decoding device 150 can determine the size of one or more processing blocks divided from the frame by using the obtained processing block size information. The size of the processing block can be an integer multiple of the size of the reference coding unit.
[0189] According to an embodiment, the image decoding device 150 can determine the sizes of processing blocks 1502 and 1512 included in the frame 1500. For example, the image decoding device 150 can determine the size of the processing block based on processing block size information obtained from the bitstream. (Refer to...) Figure 15 According to an embodiment, the image decoding device 150 may determine the width of processing blocks 1502 and 1512 to be four times the width of the reference coding unit, and may determine the height of processing blocks 1502 and 1512 to be four times the height of the reference coding unit. The image decoding device 150 may determine the determination order of one or more reference coding units in one or more processing blocks.
[0190] According to an embodiment, the image decoding device 150 can determine the processing blocks 1502 and 1512 included in the image 1500 based on the size of the processing blocks, and can determine the determination order of one or more reference coding units in the processing blocks 1502 and 1512. According to an embodiment, determining the reference coding units may include determining the size of the reference coding units.
[0191] According to an embodiment, the image decoding device 150 can obtain determination order information of one or more reference coding units included in one or more processing blocks from a bitstream, and can determine a determination order for one or more reference coding units based on the obtained determination order information. The determination order information can be defined as the order or direction of the reference coding units in a processing block. That is, the determination order of the reference coding units can be determined independently for each processing block.
[0192] According to an embodiment, image decoding device 150 can obtain deterministic order information of reference coding units from a bitstream based on each specific data unit. For example, receiver 160 can obtain deterministic order information of reference coding units from a bitstream based on each data unit (such as an image, sequence, frame, strip, strip fragment, or processing block). Because the deterministic order information of reference coding units indicates the order of reference coding units used to determine a processing block, deterministic order information can be obtained for each specific data unit comprising an integer number of processing blocks.
[0193] According to an embodiment, the image decoding device 150 may determine one or more reference coding units based on a determined order.
[0194] According to an embodiment, receiver 160 can obtain the determination order information of reference coding units from the bitstream as information related to processing blocks 1502 and 1512, and image decoding device 150 can determine the determination order of one or more reference coding units included in processing blocks 1502 and 1512, and determine one or more reference coding units included in frame 1500 based on the determination order. (Refer to...) Figure 15 The image decoding device 150 can determine the determination order 1504 and 1514 of one or more reference coding units in processing blocks 1502 and 1512, respectively. For example, when obtaining the determination order information of reference coding units for each processing block, determination order information of different types of reference coding units can be obtained for processing blocks 1502 and 1512. When the determination order 1504 of reference coding units in processing block 1502 is a raster scan order, the reference coding units included in processing block 1502 can be determined according to the raster scan order. Conversely, when the determination order 1514 of reference coding units in another processing block 1512 is a reverse raster scan order, the reference coding units included in processing block 1512 can be determined according to the reverse raster scan order.
[0195] Figure 1 to Figure 15 This paper demonstrates a method for dividing an image into maximum coding units and then further dividing the maximum coding units into coding units in a hierarchical tree structure. Figures 16 to 24 This demonstrates the method for determining the quantization parameters of the current block.
[0196] The image encoding device 100 of Figure 1 can transform residual data through a preset process, wherein the residual data is the difference between the original value and the predicted value of a pixel included in the encoding unit. In this regard, the image encoding device 100 can reduce the size of the residual data by quantizing the transformed residual data, rather than losing the residual data.
[0197] Quantization of the residual data is performed based on quantization parameters. Quantization parameters represent the indices of the scaling matrix used to derive the scaling matrix required to quantize the residual data of the current block. When the quantization parameter is large, a scaling matrix with relatively large elements is derived. Therefore, when the quantization parameter is large, a significant amount of residual data is lost, but the compression ratio of the residual data increases. Conversely, when the quantization parameter is small, a scaling matrix with relatively small elements is derived. Therefore, when the quantization parameter is small, a small amount of residual data is lost, but the compression ratio of the residual data decreases.
[0198] In other words, a larger quantization parameter can be used when the subjective image quality degradation is small even when the compression rate of the residual data increases. However, when subjective image quality degradation is detected when the compression rate of the residual data increases, a smaller quantization parameter must be used. Therefore, considering the degradation of image quality, different quantization parameters must be used for blocks of the same image.
[0199] Figure 16 An image decoding device is shown for determining the quantization parameters of a block and decoding the residual data of the block based on the determined quantization parameters.
[0200] The image decoding device 1600 includes a quantization parameter determiner 1610 and an inverse quantizer 1620. Figure 16 In this embodiment, the quantization parameter determiner 1610 and the dequantizer 1620 are shown as separate components, but in another embodiment, the quantization parameter determiner 1610 and the dequantizer 1620 may be combined into a single component.
[0201] exist Figure 16 In the diagram, the quantization parameter determiner 1610 and the dequantizer 1620 are shown as being included in a single device; however, the means for performing the respective functions of the quantization parameter determiner 1610 and the dequantizer 1620 need not be physically adjacent to each other. Therefore, in another embodiment, the quantization parameter determiner 1610 and the dequantizer 1620 may be separate.
[0202] According to one embodiment, the quantization parameter determiner 1610 and the dequantizer 1620 may be implemented by a single processor. In another embodiment, the quantization parameter determiner 1610 and the dequantizer 1620 may be implemented by multiple processors.
[0203] The image decoding device 1600 can perform inverse quantization based on a quantization group comprising one or more blocks. The inverse quantization method based on the quantization group will now be described below.
[0204] As the quantization parameter varies within each block, the information about the quantization parameter increases. Therefore, coding efficiency may decrease when the quantization parameter is determined for block units. Thus, to improve coding efficiency, a method is now discussed for determining the same quantization parameter for multiple blocks.
[0205] Typically, neighboring blocks have the same or similar quantization parameters. Therefore, the image decoding device 1600 can use the same quantization parameters for neighboring blocks. Multiple blocks that are adjacent to each other and use the same quantization parameters are called a quantization group.
[0206] Quantization groups can be determined based on the maximum coding unit. For example, a quantization group can be set for blocks partitioned a predetermined number of times from the maximum coding unit. When a block with a quantization group is not further partitioned, the quantization parameters of the quantization group are applied only to the block with the quantization group set. Conversely, when the block corresponding to the quantization group is further partitioned, the quantization parameters of the quantization group can be applied to all sub-blocks generated by partitioning the block with the quantization group set.
[0207] Optionally, quantization groups can be determined based on size. For example, a quantization group can be set for a block when its size is equal to or smaller than a quantization group reference size. When a block with a quantization group is not further subdivided, the quantization parameters of the quantization group are applied only to the block with the quantization group set. Conversely, when a block corresponding to a quantization group is further subdivided, the quantization parameters of the quantization group can be applied to all sub-blocks generated by subdividing the block with the quantization group set. Therefore, determining the quantization parameters of a block based on the quantization block reduces the amount of information about the quantization parameters.
[0208] The quantization parameter determiner 1610 can obtain the differential quantization parameter enable flag for the upper-level data unit of the current quantization group. When the differential quantization parameter enable flag indicates that the quantization parameter can be determined based on the differential quantization parameter, the quantization parameter determiner 1610 can obtain the differential quantization parameter of the current block.
[0209] The upper-layer data unit can be one of a video parameter set (VPS), a sequence parameter set (SPS), or a picture parameter set (PPS). Therefore, the quantization parameter determiner 1610 can apply the method of determining quantization parameters based on quantization groups to all blocks included in the upper-layer data unit.
[0210] The quantization parameter determiner 1610 can obtain quantization group information for the upper-level data units of the current quantization group. The quantization group information indicates the method for determining the quantization group. For example, the quantization group information may include block partitioning information or block size information. The quantization parameter determiner 1610 can obtain the quantization group information when the differential quantization parameter enable flag allows differential quantization parameters.
[0211] The quantization parameter determiner 1610 can determine the predicted quantization parameters of the current quantization group, wherein the predicted quantization parameters are determined based on at least one of block partitioning information and block size information.
[0212] Block partitioning information may include the number of quadtree partitions and the number of non-quadtree partitions. The number of quadtree partitions indicates how many times a quadtree partition was performed to obtain the current quantization group from the largest coded block. For example, for Figure 2 The partitioning of block 210d corresponds to the partitioning of the quadtree.
[0213] The non-quadtree partition count indicates the number of times a partition that is not a quadtree partition was performed to obtain the current quantization group from the largest coded block. For example, Figure 3 The partitioning method shown corresponds to the non-quadritree partitioning.
[0214] Block size information may include the block's area or the logarithm (base 2) of the block's area. Additionally, the block's height and width, or the logarithm of the block's height and width, may be included in the block size information.
[0215] According to an embodiment, the quantization parameter determiner 1610 can determine the current quantization group based on the number of quadtree partitions. When only quadtree partitioning is used to partition the largest coding unit, the quantization group can be set for blocks with a minimum preset size based on the number of quadtree partitions. For example, when the size of the largest coding unit is 256×256 and the number of quadtree partitions is 2, the quantization group can be set for blocks with a size of 64×64 or larger.
[0216] Figures 17a to 17d This is a diagram illustrating an example of determining the quantization group based on the number of quadtree partitions.
[0217] Reference Figure 17aThe largest coded block 1700 is divided into four blocks 1702, 1704, 1706, and 1708 based on quadtree partitioning. The quadtree partitioning count for blocks 1702, 1704, 1706, and 1708 is set to 1. Block 1704 is divided into four blocks 1710, 1712, 1714, and 1716 based on quadtree partitioning. The quadtree partitioning count for blocks 1710, 1712, 1714, and 1716 is set to 2. Block 1716 is divided into four blocks 1718, 1720, 1722, and 1724 based on quadtree partitioning. The quadtree partitioning count for blocks 1718, 1720, 1722, and 1724 is set to 3. Based on blocks 1702, 1706, 1708, 1710, 1712, 1714, 1718, 1720, 1722, and 1724, determined when the partitioning of the largest coded block 1700 is completed, prediction and transform coding and decoding can be performed.
[0218] like Figure 17a As shown, when the number of quadtree partitions increases by 1, the size of the resulting blocks decreases by half. Therefore, the block size can only be determined based on the number of quadtree partitions when quadtree partitioning is permitted.
[0219] Figure 17b An example is shown for determining quantization groups for blocks that have been partitioned 1 times in a quadtree. (Refer to...) Figure 17b Quantization groups are set for the four blocks 1702, 1704, 1706 and 1708 of the quadtree that are partitioned once.
[0220] Each of blocks 1702, 1706, and 1708 is individually included in each of the quantization groups for blocks 1702, 1706, and 1708. However, the quantization group for block 1704 includes sub-blocks 1710, 1712, 1714, 1718, 1720, 1722, and 1724 of block 1704. Therefore, quantization and dequantization according to the same quantization parameters can be applied to sub-blocks 1710, 1712, 1714, 1718, 1720, 1722, and 1724 of block 1704.
[0221] Figure 17c An example is shown for determining quantization groups for blocks that have been partitioned twice in a quadtree. (Refer to...) Figure 17c Quantization groups are set for blocks 1702, 1706, 1708, 1710, 1712, 1714, and 1716, whose quadtree partitioning count is equal to or less than 2. For blocks 1702, 1706, and 1708, the quadtree partitioning count is 1, but blocks 1702, 1706, and 1708 are not further partitioned, thus setting quantization groups for blocks 1702, 1706, and 1708.
[0222] Each of blocks 1702, 1706, 1708, 1710, 1712, and 1714 is individually included in each of its quantization groups. However, the quantization group of block 1716 includes sub-blocks 1718, 1720, 1722, and 1724 of block 1716. Therefore, quantization and dequantization according to the same quantization parameters can be applied to sub-blocks 1718, 1720, 1722, and 1724 of block 1716.
[0223] Figure 17d An example is shown for determining quantization groups for blocks that have been partitioned 3 times in a quadtree. Because... Figure 17d There are no blocks in the quadtree that are partitioned four times, so quantization groups are set for all blocks 1702, 1706, 1708, 1710, 1712, 1714, 1718, 1720, 1722 and 1724.
[0224] Reference Figures 17a to 17d When the number of quadtree partitions of the block partitioning information increases, the size of the quantization group decreases. Conversely, when the number of quadtree partitions of the block partitioning information decreases, the size of the quantization group increases. Therefore, the size of the quantization parameter information can increase or decrease based on the number of quadtree partitions of the block partitioning information.
[0225] The quantization parameter determiner 1610 determines the current quantization group based on the number of quadtree partitions and the number of non-quadtree partitions. When both quadtree and non-quadtree partitions are applied to block partitioning, the quantization parameter determiner 1610 does not use... Figures 17a to 17d The method for determining quantization groups is shown in the diagram. Therefore, methods for determining quantization groups based on the number of non-quadtree partitions or the size of the quantization group can also be considered. Figures 18a to 18c An embodiment of a method for determining the quantization group in the largest coding block that has been partitioned using a non-quadtree partition is shown.
[0226] Figure 18a This shows how the maximum coded block 1800 is divided. The numbers marked in each block indicate the number of times the maximum coded block 1800 is divided.
[0227] The largest coded block 1800 is divided into four blocks 1802, 1804, 1806, and 1808 by a quadtree. Since block 1802 is not further divided, the number of divisions for block 1802 is 1. In the following text, it is assumed that the size of the largest coded block 1800 is 4N×4N.
[0228] Block 1804 is divided into two 2N×N blocks, 1810 and 1812. Then, block 1810 is divided into two N×N blocks, 1814 and 1816, and block 1812 is divided into two N / 2×N blocks, 1818 and 1822, and one N×N block, 1820. The sub-blocks 1814, 1816, 1818, 1820, and 1822 of block 1804 are all divided by a factor of 3.
[0229] Block 1806 is divided into two N×2N blocks, 1824 and 1826. Then, block 1824 is divided into two N×N blocks, 1828 and 1830, and block 1826 is divided into two N×N / 2 blocks, 1840 and 1844, and one N×N block, 1842. Block 1828 is divided into two N / 2×N blocks, 1832 and 1834. Block 1834 is divided into two N / 2×N / 2 blocks, 1836 and 1838. The number of partitions of sub-blocks 1828, 1830, 1840, 1842, and 1844 of block 1806 is 3. The number of partitions of block 1832, derived from block 1828, is 4, and the number of partitions of blocks 1836 and 1838 is 5.
[0230] Block 1808 is divided into four N×N blocks: 1846, 1848, 1850, and 1852. Block 1846 is divided into four N / 2×N / 2 blocks: 1854, 1856, 1858, and 1860. Furthermore, block 1848 is divided into two N / 2×N blocks: 1862 and 1864, and block 1862 is divided into two N / 2×N / 2 blocks: 1866 and 1868. The number of partitions for blocks 1850 and 1852 is 2, the number of partitions for blocks 1854, 1856, 1858, 1860, and 1864 is 3, and the number of partitions for blocks 1866 and 1868 is 4.
[0231] When determining quantization groups based on the number of times the blocks are divided, the size of the quantization groups may be non-uniform. For details, see [link to relevant documentation]. Figure 18b The non-uniformity of the quantization group size will now be described.
[0232] Figure 18b An example is shown for setting quantization groups for blocks divided into 3 partitions. See also... Figure 18b Quantization groups are set for blocks 1814, 1816, 1818, 1820, 1822, 1828, 1830, 1840, 1842, 1844, 1854, 1856, 1858, 1860, 1862 and 1864 which are divided 3 times.
[0233] However, the number of partitions for block 1814 is the same as the number of partitions for block 1854, but the size of block 1814 is four times the size of block 1854. Although the size of 1836 is equal to the size of 1854, 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.
[0234] Only when Figures 17a to 17d In the embodiments described above, the quantization group sizes are the same only when quadtree partitioning is performed. However, as mentioned above, when non-quadtree partitioning is performed and the quantization group sizes are set according to the number of partitions, the quantization group sizes are different.
[0235] Figure 18c A method for solving the problem is illustrated. For example, the quantization parameter determiner 1610 can determine the current quantization group based on a weighted sum of the number of quadtree partitions and the number of non-quadtree partitions. Quadtree partitioning is the same as sequentially applying vertical and horizontal partitions. Therefore, one quadtree partition is essentially the same as two non-quadtree partitions.
[0236] Therefore, the quantization parameter determiner 1610 subdivides the number of partitions into quadtree partitions and non-quadtree partitions, and can set the quantization group based on the weighted sum of the quadtree partitions and non-quadtree partitions with a weight of 2:1.
[0237] For example, block 1814 is generated from one quadtree partition and two non-quadtree partitions from the maximum coding unit 1800. Therefore, the weighted sum of the number of quadtree partitions and non-quadtree partitions for block 1814 with a weight of 2:1 is 4. Block 1846 is generated from two quadtree partitions from the maximum coding unit 1800. Therefore, the weighted sum of the number of quadtree partitions and non-quadtree partitions for block 1846 with a weight of 2:1 is 4. Therefore, when setting a quantization group for a block with a weighted sum of 4, the... Figure 18b The difference lies in Figure 18c In this context, block 1854 obtains quantization parameters from the quantization group set for block 1846.
[0238] According to another embodiment, the quantization parameter determiner 1610 can determine the current quantization group based on the sum of the block's height and width, or the average of the block's height and width. For example, when setting a quantization group for a block of size N×N, a quantization group is set for blocks 1814 and 1846. Therefore, with Figure 18b The difference lies in Figure 18cIn this context, block 1854 obtains quantization parameters from the quantization group set for block 1846. Because the upper-level blocks 1812 and 1826 are larger than N×N and therefore do not have corresponding quantization groups, quantization groups are set for blocks 1818, 1822, 1840, and 1844 even when blocks 1818, 1822, 1840, and 1844 are smaller than N×N.
[0239] Similarly, the quantization parameter determiner 1610 may determine the current quantization group based on the sum of the logarithmic values of the block's height and width to base 2, or the average of the logarithmic values of the block's height and width to base 2. Optionally, the quantization parameter determiner 1610 may determine the current quantization group based on the block's area or the logarithmic value of that area to base 2.
[0240] The quantization parameter determiner 1610 can determine the predicted quantization parameter of the current block based on the quantization parameters of the block above the current quantization group, the quantization parameters of the block to the left of the current quantization group, and the quantization parameters of the quantization group that was just before the current quantization group.
[0241] For example, the quantization parameter determiner 1610 can determine the quantization parameter of the current quantization group by averaging the quantization parameters of the upper neighboring block and the left neighboring block. When the quantization parameter of the upper neighboring block is missing, the quantization parameter determiner 1610 can use the quantization parameter of a quantization group that was just before the current quantization group to replace the quantization parameter of the upper neighboring block, thereby determining the quantization parameter of the current quantization group. Similarly, when the quantization parameter of the left neighboring block is missing, the quantization parameter determiner 1610 can use the quantization parameter of a quantization group that was just before the current quantization group to replace the quantization parameter of the left neighboring block, thereby determining the quantization parameter of the current quantization group.
[0242] Furthermore, the quantization parameter determiner 1610 can determine the default quantization parameters of a strip or frame as the predicted quantization parameters. For example, the default quantization parameters can be used when the quantization parameters of the upper neighboring block referenced by the current quantization group, the quantization parameters of the left neighboring block, and the quantization parameters of a quantization group that was just before the current quantization group are not available.
[0243] The quantization parameter determiner 1610 determines the differential quantization parameters of the current quantization group. The quantization parameter determiner 1610 can obtain differential quantization parameter size information and differential quantization parameter sign information from the bit stream. The quantization parameter determiner 1610 can determine the differential quantization parameters of the current quantization group based on the differential quantization parameter size information and differential quantization parameter sign information.
[0244] When the current quantization group comprises two or more blocks, the quantization parameter determiner 1610 obtains the differential quantization parameter size information and differential quantization parameter sign information for the block that will be decoded first in the scan order. Then, the quantization parameter determiner 1610 does not obtain the differential quantization parameter size information and differential quantization parameter sign information for the remaining blocks in the current quantization group, and applies the quantization parameters determined for the block to be decoded first to the remaining blocks. Therefore, as a result, the quantization parameter determiner 1610 applies the same quantization parameters to all blocks in the current quantization group.
[0245] When the quantization parameter determiner 1610 decodes all blocks of the current quantization group and then decodes blocks of a new quantization group, the quantization parameter determiner 1610 can initialize the differential quantization parameters and differential quantization parameter related information. The differential quantization parameter related information may include differential quantization parameter decoding information indicating whether the differential quantization parameters have been decoded and quantization group position information indicating the position of the quantization group.
[0246] The quantization parameter determiner 1610 can initialize the differential quantization parameters and related information, and can obtain new differential quantization parameter size information and new differential quantization parameter symbol information from the bit stream.
[0247] The quantization parameter determiner 1610 determines the quantization parameters of the current quantization group based on the predicted quantization parameters and the differential quantization parameters of the current quantization group. Specifically, the quantization parameter determiner 1610 can determine the quantization parameters based on the sum of the predicted quantization parameters and the differential quantization parameters of the current quantization group. According to an embodiment, the quantization parameter determiner 1610 can obtain quantization parameter offset information from the bitstream and can adjust the determined quantization parameters based on the quantization parameter offset information.
[0248] The dequantizer 1620 dequantizes the current block included in the current quantization group based on the quantization parameters of the current quantization group.
[0249] Figure 19 This illustrates the syntax structure for decoding differential quantization parameters included in the bitstream when both quadtree partitioning and non-quadtree partitioning are permitted.
[0250] Figure 19 The table above shows the quadtree partitioning syntax structure (coding_quadtree). Figure 19 The quadtree partitioning syntax provides configuration options for determining whether to initialize differential quantization parameters and related information before deciding whether to perform quadtree partitioning.
[0251] exist Figure 19In the quadtree partitioning syntax structure, "cu_qp_delta_enabled_flag" indicates the differential quantization parameter enabling flag, "cqtDepth" indicates the number of quadtree partitions, and "diff_cu_qp_delta_depth" indicates block partitioning information. "CuQpDeltaVal" indicates the differential quantization parameter, "IsCuQpDeltaCoded" indicates the differential quantization parameter decoding information, and "CuQgTopLeftX" and "CuQgTopLeftY" indicate the quantization group position information.
[0252] Reference Figure 19 When “cu_qp_delta_enabled_flag” indicates 1 and “cqtDepth” is equal to or less than “diff_cu_qp_delta_depth”, “CuQpDeltaVal” and “IsCuQpDeltaCoded” are determined to be 0, and “CuQgTopLeftX” and “CuQgTopLeftY” are determined to be x0 and y0, indicating the top-left sample position of the current block.
[0253] When "cu_qp_delta_enabled_flag" is set to 1, this means that differential quantization parameters are allowed.
[0254] When "cqtDepth" is equal to or less than "diff_cu_qp_delta_depth", it means that the number of quadtree partitions of the current block is equal to or less than the number of partitions used as a reference for the quantization group, as indicated by the block partition information. This characteristic, where the number of quadtree partitions of the current block is equal to or less than the number of partitions used as a reference for the quantization group, indicates that the current block is not included in the quantization group of blocks decoded before it.
[0255] When the above conditions are met, “CuQpDeltaVal” and “IsCuQpDeltaCoded” are determined to be 0, and new differential quantization parameters for the quantization groups located at “CuQgTopLeftX” and “CuQgTopLeftY” are obtained based on the differential quantization parameter information newly obtained from the bitstream.
[0256] Figure 19 The table in the middle shows the non-quadtree partitioning syntax structure. Figure 19 The non-quadtree partitioning syntax provides configuration options for determining whether to initialize differential quantization parameters and related information before deciding whether to perform a non-quadtree partition.
[0257] exist Figure 19In the non-quadtree partitioning syntax structure, "cu_qp_delta_enabled_flag" indicates the differential quantization parameter enabling flag, "cqtDepth" indicates the number of quadtree partitions, "mttDepth" indicates the number of non-quadtree partitions, and "diff_cu_qp_delta_depth" indicates block partitioning information. "CuQpDeltaVal" indicates the differential quantization parameter, "IsCuQpDeltaCoded" indicates the differential quantization parameter decoding information, and "CuQgTopLeftX" and "CuQgTopLeftY" indicate the quantization group position information.
[0258] Reference Figure 19 When “cu_qp_delta_enabled_flag” indicates 1 and the sum of “cqtDepth” and “mttDepth” is equal to or less than “diff_cu_qp_delta_depth”, “CuQpDeltaVal” and “IsCuQpDeltaCoded” are determined to be 0, and “CuQgTopLeftX” and “CuQgTopLeftY” are determined to be x0 and y0, indicating the top-left sample position of the current block.
[0259] Similar to the quadtree partitioning syntax, differential quantization parameters and related information are initialized even in non-quadtree partitioning syntax. However, unlike the quadtree partitioning syntax, in non-quadtree partitioning syntax, the sum of "cqtDepth" and "mttDepth", rather than "cqtDepth", is compared with "diff_cu_qp_delta_depth". Figure 19 In the original text, the sum of "cqtDepth" and "mttDepth" is compared with "diff_cu_qp_delta_depth". However, according to the embodiment, the weighted sum of "cqtDepth" and "mttDepth" can be compared with "diff_cu_qp_delta_depth".
[0260] Figure 19 The table below illustrates the transform block syntax structure. `tu_cbf_luma[x0][y0]` indicates whether the current luma block at (x0, y0) has residual data. Then, `tu_cbf_cb[x0][y0]` and `tu_cbf_cr[x0][y0]` indicate whether the current Cb block and current Cr block at (x0, y0) have residual data, respectively. Differential quantization parameter information is not obtained when the current luma block, current Cb block, and current Cr block do not have residual data.
[0261] Conversely, when at least one of the current luminance block, the current Cb block, and the current Cr block includes residual data, “cu_qp_delta_abs” indicating the size of the differential quantization parameters and “cu_qp_delta_sign_flag” indicating the sign of the differential quantization parameters are obtained from the bitstream. Then, “CuQpDeltaVal” indicating the differential quantization parameters is determined from “cu_qp_delta_abs” and “cu_qp_delta_sign_flag”. Furthermore, “IsCuQpDeltaCoded”, indicating the presence of differential quantization parameters, is determined to be 1.
[0262] When the block to be decoded after the current block is included in the same quantization group as the current block (i.e., when the (weighted) sum of "cqtDepth" or "cqtDepth" and "mttDepth" is greater than "diff_cu_qp_delta_depth"), "CuQpDeltaVal" and "IsCuQpDeltaCoded" are not initialized, and therefore the block to be decoded after the current block is dequantized according to the "CuQpDeltaVal" used in the decoding process for the current block.
[0263] exist Figure 19 In this example, the configuration for obtaining differential quantization parameter information is implemented in the transform block syntax structure; however, according to the embodiment, the configuration can be implemented in other syntaxes.
[0264] Figure 20 This paper illustrates an image decoding method that determines the quantization parameters of a block based on a quantization group and decodes the residual data of the block based on the determined quantization parameters.
[0265] In operation 2010, the predicted quantization parameters for the current quantization group are determined based on at least one of the block partitioning information and block size information.
[0266] The current quantization group can be determined based on the number of quadtree partitions and the number of non-quadtree partitions. More specifically, the current quantization group can be determined based on the weighted sum of the number of quadtree partitions and the number of non-quadtree partitions.
[0267] The current quantization group can be determined based on the sum of the block's height and width, or the average of the block's height and width. Alternatively, the current quantization group can be determined based on the sum of the base-2 logarithmic values of the block's height and width, or the average of the base-2 logarithmic values of the block's height and width. Alternatively, the current quantization group can be determined based on the block's area, or the base-2 logarithmic value of that area.
[0268] The predicted quantization parameters of the current block can be determined based on the quantization parameters of the block above the current quantization group, the quantization parameters of the block to the left of the current quantization group, and the quantization parameters of the quantization group that has been decoded immediately before the current quantization group.
[0269] In operation 2020, the differential quantization parameters of the current quantization group are determined. Specifically, the differential quantization parameter magnitude information and differential quantization parameter sign information can be obtained from the bitstream. Then, the differential quantization parameters of the current quantization group can be determined based on the differential quantization parameter magnitude information and differential quantization parameter sign information.
[0270] According to an embodiment, when the differential quantization parameter enable flag indicates that quantization parameters can be determined based on differential quantization parameters, the differential quantization parameters of the current block can be obtained.
[0271] In operation 2030, the quantization parameters of the current quantization group are determined based on the predicted quantization parameters and the differential quantization parameters of the current quantization group. For example, the quantization parameters of the current quantization group can be determined based on the sum of the predicted quantization parameters and the differential quantization parameters.
[0272] In operation 2040, the current block included in the current quantization group is dequantized according to the quantization parameters of the current quantization group.
[0273] Figure 20 Image decoding methods may include those based on Figure 16 Various embodiments of the method for determining quantization parameters by the quantization group of an image decoding device.
[0274] The image decoding device 1600 can perform inverse quantization based on quantization parameter units that indicate regions using the same quantization parameters. The inverse quantization method based on quantization parameter units will now be described below.
[0275] Figure 21 Examples of quantization parameter unit structures and coding block tree structures are shown.
[0276] Scenes or stripes may differ in terms of subjective image quality degradation across their respective sections. Therefore, to optimize coding efficiency, it is necessary to set different quantization parameters based on the characteristics of each section of the scene or strip. The distribution of quantization parameters is not equivalent to the code block tree structure, which serves as the basic unit of coding. Therefore, the quantization parameter unit map is determined independently of the code block tree structure.
[0277] exist Figure 21 In this context, the quantization parameter unit 2110 can be a rectangle of size M×N. Here, the image is represented as a quantization parameter map 2120 composed of multiple quantization parameter units. Each quantization parameter unit in the quantization parameter map 2120 has quantization parameters. Figure 21In the original text, the quantization parameter unit 2110 is shown as a rectangle, but according to the embodiment, the quantization parameter unit 2110 may be shown as an irregular shape instead of a rectangle.
[0278] The quantization parameters of quantization parameter unit 2110 can be determined based on the characteristics of the corresponding part of the image. Encoding and decoding of quantization parameter map 2120 and quantization parameters of quantization parameter unit 2110 are performed independently of the predictive coding information based on coding block structure 2140. When the residual data of coding block 2130 is encoded and decoded, the quantization parameters can be obtained from the quantization parameter unit 2110 corresponding to the position of coding block 2130.
[0279] The quantization parameter determiner 1610 can match the current block with the current quantization parameter cell based on at least one of the current block's position and size.
[0280] For example, the quantization parameter determiner 1610 can determine the quantization parameter unit that includes the coordinate values of the top-left sample point of the current block as the current quantization parameter unit of the current block.
[0281] As another example, when the current block includes multiple quantization parameter units, the quantization parameter determiner 1610 can determine the multiple quantization parameter units as the current quantization parameter units of the current block. In this regard, the quantization parameter determiner 1610 can determine the average of the multiple quantization parameters of the current quantization parameter unit as the quantization parameter of the current block.
[0282] Figure 22a and Figure 22b This demonstrates a method for determining the quantization parameter unit corresponding to the current block.
[0283] Figure 22a An embodiment is shown that corresponds to quantization parameter unit 2200 and a plurality of coding blocks 2202 to 2224. All blocks 2202, 2204, 2206, 2210, 2212 and 2214 included in quantization parameter unit 2200 are dequantized according to the quantization parameters corresponding to quantization parameter unit 2200.
[0284] Then, the blocks partially included in quantization parameter unit 2200 can be determined based on whether the quantization parameters of quantization parameter unit 2200 for the top-left sample of the block will be applied to the blocks partially included in quantization parameter unit 2200. Therefore, blocks 2208, 2216, 2218, 2220, 2222, and 2224 whose top-left samples are included in quantization parameter unit 2200 can be dequantized according to the quantization parameters corresponding to quantization parameter unit 2200.
[0285] exist Figure 22aThe document describes an embodiment of determining quantization parameter units based on the top left sample point of a block. However, according to the embodiment, the quantization parameter units of a block can be determined based on the center sample point, top right sample point, bottom left sample point, bottom right sample point, etc.
[0286] Figure 22b An embodiment is shown that corresponds to multiple quantization parameter units 2252 to 2274 and block 2250.
[0287] Quantization parameter units 2252, 2254, 2258, 2260, 2264, and 2266 are completely included in block 2250. Therefore, block 2250 can be dequantized based on at least one quantization parameter from quantization parameter units 2252, 2254, 2258, 2260, 2264, and 2266. For example, the quantization parameter of block 2250 can be determined as the average value of the quantization parameters of quantization parameter units 2252, 2254, 2258, 2260, 2264, and 2266.
[0288] Optionally, quantization parameter units 2256, 2262, 2268, 2270, 2272, and 2274, which partially overlap with block 2250, can be used to determine the quantization parameters of block 2250. Therefore, block 2250 can be dequantized based on the quantization parameters determined according to at least one of quantization parameter units 2252 to 2274.
[0289] Figure 23a and Figure 23b This shows the correlation between the block and the quantization parameter unit.
[0290] Figure 23a The block tree structure and quantization parameter diagram according to an embodiment are shown. According to the embodiment, the quantization parameter unit corresponding to the top-left sample point of a block corresponds to that block. Therefore, 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. When the corresponding references of block 2308 and quantization parameter unit 2300 are different, other quantization parameter units 2302, 2304, and 2306 may correspond to block 2308.
[0291] Figure 23b A block tree structure and quantization parameter diagram according to an embodiment are shown. Figure 23bIn this context, when the quantization parameter unit corresponding to the top-left sample of a block corresponds to that block, all blocks 2328, 2330, 2332, and 2334 correspond to quantization parameter unit 2326. Since the quantization parameters of quantization parameter unit 2326 are applied to all blocks 2328, 2330, 2332, and 2334, the quantization parameters are first calculated for block 2328, which has the earliest decoding order. Then, the quantization parameters used for block 2328 can be used unchanged for blocks 2330, 2332, and 2334.
[0292] Quantization parameters are not determined for blocks that do not have residual data. For example, when block 2328 does not have residual data, inverse quantization is not required for block 2328, and therefore, the quantization parameters for block 2328 are uncertain. When block 2330, which will be decoded after block 2328, has residual data, the quantization parameters for block 2330 can be determined. Then, the quantization parameters used for block 2330 can be used unchanged for blocks 2332 and 2334.
[0293] The quantization parameter determiner 1610 can obtain the predicted quantization parameters for the current quantization parameter cell.
[0294] The quantization parameter determiner 1610 can obtain the 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 that was decoded immediately preceding the current block.
[0295] Optionally, the quantization parameter determiner 1610 can determine the predicted quantization parameter for a frame or strip including the current quantization parameter unit as the predicted quantization parameter for the current quantization parameter unit.
[0296] The quantization parameter determiner 1610 can obtain the differential quantization parameters for the current quantization parameter cell.
[0297] The quantization parameter determiner 1610 can determine the quantization parameters of the current quantization parameter unit based on the predicted quantization parameters and the differential quantization parameters.
[0298] The dequantizer 1620 can dequantize the current block according to the quantization parameters of the current quantization parameter cell.
[0299] Figure 24 This paper illustrates an image decoding method that determines the quantization parameters of a block based on quantization parameter units and decodes the residual data of that block based on the determined quantization parameters.
[0300] In operation 2410, the current block is matched with the current quantization parameter cell based on at least one of the current block's position and size.
[0301] According to an embodiment, the quantization parameter unit including the coordinate value of the top-left sample point of the current block can be determined as the current quantization parameter unit of the current block.
[0302] According to an embodiment, when the current block includes multiple quantization parameter units, the multiple quantization parameter units can be determined as the current quantization parameter units of the current block. In this regard, the current quantization parameter of the current block can be determined from at least one of the multiple quantization parameter units.
[0303] In operation 2420, the predicted quantization parameters for the current quantization parameter unit are obtained.
[0304] According to an embodiment, the predicted quantization parameter can be obtained 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 that was decoded immediately preceding the current block.
[0305] Optionally, the predicted quantization parameter for a frame or strip including the current quantization parameter unit can be determined as the predicted quantization parameter for the current quantization parameter unit.
[0306] In operation 2430, the differential quantization parameters for the current quantization parameter cell are obtained.
[0307] In operation 2440, the quantization parameters of the current quantization parameter unit are determined based on the predicted quantization parameters and the differential quantization parameters.
[0308] In operation 2450, the current block is dequantized according to the quantization parameters of the current quantization parameter cell.
[0309] Figure 24 Image decoding methods may include those based on Figure 16 Various embodiments of the method for determining quantization parameters by the quantization group of an image decoding device.
[0310] As shown in Figure 1 to... Figure 24 The spatial domain image data can be reconstructed by encoding each of the tree-structured coding units using image coding technology, and by decoding each of the largest coding units using image decoding technology based on tree-structured coding units, thus allowing the images and the image sequence as images to be reconstructed. The reconstructed video can be reproduced by a playback device, stored in a storage medium, or transmitted via a network.
[0311] The embodiments described above can be implemented as computer-executable programs and implemented via a computer-readable recording medium using a general-purpose digital computer for executing programs.
[0312] While this disclosure has been described above in conjunction with specific preferred embodiments, other disclosures that can be derived from the foregoing description through substitutions, modifications, and alterations will be apparent to those skilled in the art. That is, the appended claims should be understood to cover all such substitutions, modifications, and alterations. Therefore, all matters described in this specification and illustrated in the accompanying drawings should be interpreted in an illustrative and non-limiting sense.
Claims
1. An image decoding method, comprising: The upper-layer coding block is divided into multiple lower-layer coding blocks based on the partitioning information; The current quantization group is determined based on the partition value of the current coding block and the partition value of the current quantization group in the plurality of lower-level coding blocks; Based on the predicted quantization parameters of the current quantization group and the differential quantization parameters of the current quantization group, the quantization parameters of the current quantization group are obtained; and The transform coefficients in the current transform block of the current coding block are dequantized using the quantization parameters. The predicted quantization parameter is obtained using at least one of the quantization parameters of the upper neighboring block of the current quantization group and the quantization parameters of the left neighboring block of the current quantization group. in: If the current coded block is obtained by dividing the upper-level coded block into two lower-level coded blocks according to a non-quadtree partition, then the partition value of the current coded block is incremented by 1, and If the current coding block is obtained by dividing the upper coding block into four lower coding blocks according to the quadtree partitioning, then the partitioning value of the current coding block is increased by 2.
2. An image decoding device, comprising: At least one processor is configured as follows: The upper-layer coding block is divided into multiple lower-layer coding blocks based on the partitioning information; The current quantization group is determined based on the partition value of the current coding block and the partition value of the current quantization group in the plurality of lower-level coding blocks; Based on the predicted quantization parameters of the current quantization group and the differential quantization parameters of the current quantization group, the quantization parameters of the current quantization group are obtained; and The transform coefficients in the current transform block of the current coding block are dequantized using the quantization parameters. The predicted quantization parameter is obtained using at least one of the quantization parameters of the upper neighboring block of the current quantization group and the quantization parameters of the left neighboring block of the current quantization group. in: If the current coded block is obtained by dividing the upper-level coded block into two lower-level coded blocks according to a non-quadtree partition, then the partition value of the current coded block is incremented by 1, and If the current coding block is obtained by dividing the upper coding block into four lower coding blocks according to the quadtree partitioning, then the partitioning value of the current coding block is increased by 2.
3. A method for storing a bit stream, comprising: A bitstream is generated by performing an image encoding method; as well as Store the bit stream, The image encoding method includes: The upper-layer coding block is divided into multiple lower-layer coding blocks; The current quantization group is determined based on the partition value of the current coding block and the partition value of the current quantization group in the plurality of lower-level coding blocks; Obtain the quantization parameters of the current quantization group; and The quantization parameters are used to quantize the transform coefficients in the current transform block of the current coding block. The differential quantization parameters of the current quantization group are obtained based on the quantization parameters of the current quantization group and the predicted quantization parameters of the current quantization group. The predicted quantization parameter is obtained using at least one of the quantization parameters of the upper neighboring block of the current quantization group and the quantization parameters of the left neighboring block of the current quantization group. in: If the current coded block is obtained by dividing the upper-level coded block into two lower-level coded blocks according to a non-quadtree partition, then the partition value of the current coded block is incremented by 1, and If the current coding block is obtained by dividing the upper coding block into four lower coding blocks according to the quadtree partitioning, then the partitioning value of the current coding block is increased by 2.
4. An image encoding device, comprising: At least one processor is configured as follows: The upper-layer coding block is divided into multiple lower-layer coding blocks; The current quantization group is determined based on the partition value of the current coding block and the partition value of the current quantization group in the plurality of lower-level coding blocks; Obtain the quantization parameters of the current quantization group; and The quantization parameters are used to quantize the transform coefficients in the current transform block of the current coding block. The differential quantization parameters of the current quantization group are obtained based on the quantization parameters of the current quantization group and the predicted quantization parameters of the current quantization group. The predicted quantization parameter is obtained using at least one of the quantization parameters of the upper neighboring block of the current quantization group and the quantization parameters of the left neighboring block of the current quantization group. in: If the current coded block is obtained by dividing the upper-level coded block into two lower-level coded blocks according to a non-quadtree partition, then the partition value of the current coded block is incremented by 1, and If the current coding block is obtained by dividing the upper coding block into four lower coding blocks according to the quadtree partitioning, then the partitioning value of the current coding block is increased by 2.
Citation Information
Patent Citations
Method and apparatus for adaptively encoding and decoding a quantization parameter based on a quadtree structure
CN103650503A
Method and apparatus for adaptively encoding and decoding quantization parameter based on quadtree structure
CN107197268A