Methods for decoding and encoding video data and immutable recording media readable by computers.

VN10061732BActive Publication Date: 2026-09-22SAMSUNG ELECTRONICS CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
VN1202400809
Authority / Receiving Office
VN · VN
Patent Type
Patents
Current Assignee / Owner
Priority Date
2017-07-04
Filing Date
2018-07-03
Publication Date
2026-09-22
Estimated Expiration
2038-07-03

AI Technical Summary

Technical Problem

Current video encoding and decoding methods face challenges in efficiently handling high-resolution or high-definition video content due to the fixed transformation kernel constraint, which limits energy compression performance during transformation and inverse transformation processes.

Method used

The proposed method and device allow for the selection of a transformation kernel from multi-core transformation based on predetermined conditions, using multi-core transformation information to determine the appropriate kernel for each block, enabling flexible transformation and inverse transformation in both the horizontal and vertical directions.

Benefits of technology

This approach improves energy compression performance by adapting transformation kernels to specific encoding or decoding conditions, enhancing the efficiency of video encoding and decoding processes for high-resolution content.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure VN1202400809_0
    Figure VN1202400809_0
Patent Text Reader

Abstract

The invention relates to a method for decoding and encoding computer-readable video and invulnerable recording data, in which the invention proposes a method and apparatus for transforming or inverting the current image block, using a multi-core transformation kernel in the video data encoding and decoding process.The video data decoding method proposed in this invention to address this technical problem may include the following steps: acquiring, from the bit stream, information on the multi-core transform technique indicating whether multi-core transform cores are used according to the size of the current image block; acquiring, from the bit stream, information on the horizontal transform core and information on the vertical transform core when multi-core transform cores are used according to the information on the multi-core transform technique; determining the horizontal transform core for the current image block according to the information on the horizontal transform core; determining the vertical transform core for the current image block according to the information on the vertical transform core; and performing the inverse transform on the current image block, using the horizontal and vertical transform cores.
Need to check novelty before this filing date? Find Prior Art

Description

Method and device for video decoding by multi-core conversion, method and device for video encoding by multi-core conversion

[0001] The present disclosure relates to a video decoding method and a video decoding device, and proposes a method and device for performing transformation and inverse transformation on a current block using a transformation kernel selected from among multi-core transformations according to various encoding / decoding conditions.

[0002] Video data is encoded using a codec according to a given data compression standard, such as the MPEG (Moving Picture Expert Group) standard, and then stored on a recording medium in the form of a bitstream or transmitted through a communication channel.

[0003] With the development and widespread adoption of hardware capable of playing and storing high-resolution or high-definition video content, the need for codecs that effectively encode or decode such content is increasing. Encoded video content can be played back by decoding it. Recently, methods for effectively compressing such high-resolution or high-definition video content have been developed. For example, video compression techniques have been proposed to effectively implement video compression by arbitrarily segmenting the video to be encoded or manipulating the data.

[0004] One data manipulation technique involves transforming spatial data into frequency-domain data by performing a frequency transform. Typically, compression standards use a fixed transform kernel, as the transform kernels (transform matrices) used for transform and inverse transform must be identical during the encoding and decoding processes.

[0005] Among video encoding and decoding loads, a method and device are proposed for performing transformation and inverse transformation on a current block by selecting a transformation kernel from among multi-core transformations according to predetermined conditions, and performing transformation and inverse transformation on a current block using a transformation kernel belonging to a multi-core transformation.

[0006] In order to solve the above technical problem, the video decoding method proposed in the present disclosure may include the steps of: obtaining multi-core transform information from a bitstream, which indicates whether multi-core transform kernels are used to determine a transform kernel for inverse transform of a current block according to a size of the current block; when the multi-core transform kernels are used to determine the transform kernel according to the multi-core transform information, obtaining horizontal transform kernel information for determining a transform kernel for inverse transform in a horizontal direction and vertical transform kernel information for determining a transform kernel for inverse transform in a vertical direction from the bitstream; determining a horizontal transform kernel for inverse transform of the current block in a horizontal direction according to the horizontal transform kernel information; determining a vertical transform kernel for inverse transform of the current block in a vertical direction according to the vertical transform kernel information; and performing inverse transform on the current block using the horizontal transform kernel and the vertical transform kernel.

[0007] In order to solve the above technical problem, the video decoding device proposed in the present disclosure comprises: a memory; and a processor interconnected with the memory, wherein the processor: obtains multi-core transform information from a bitstream indicating whether multi-core transform kernels are used to determine a transform kernel for inverse transform of a current block; when the multi-core transform kernels are used to determine the transform kernel according to the multi-core transform information, obtains horizontal transform kernel information for determining a transform kernel for inverse transform in a horizontal direction and vertical transform kernel information for determining a transform kernel for inverse transform in a vertical direction from the bitstream; determines a horizontal transform kernel for inverse transform of the current block in a horizontal direction according to the horizontal transform kernel information; determines a vertical transform kernel for inverse transform of the current block in a vertical direction according to the vertical transform kernel information; and performs inverse transform on the current block using the horizontal transform kernel and the vertical transform kernel.

[0008] In order to solve the above technical problem, the video encoding method proposed in the present disclosure may include the steps of performing a transform on a current block using multi-core transform kernels to determine a transform kernel for transforming the current block; generating multi-core transform kernel information indicating whether multi-core transform kernels are used to determine the transform kernel; generating horizontal transform kernel information indicating a horizontal transform kernel used for transforming the current block in a horizontal direction and vertical transform kernel information indicating a vertical transform kernel used for transforming the current block in a vertical direction; and encoding a transform coefficient generated by performing a transform on the current block and the multi-core transform information, the horizontal transform kernel information, and the vertical transform kernel information.

[0009] In order to solve the above technical problem, the video encoding device proposed in the present disclosure comprises: a memory; and a processor interconnected with the memory, wherein the processor: performs a transformation on a current block using multi-core transformation kernels to determine a transformation kernel for transformation of the current block; generates multi-core transformation kernel information indicating whether multi-core transformation kernels are used to determine the transformation kernel; generates horizontal transformation kernel information indicating a horizontal transformation kernel used for transformation in a horizontal direction of the current block and vertical transformation kernel information indicating a vertical transformation kernel used for transformation in a vertical direction; and encodes a transformation coefficient generated by performing a transformation on the current block and the multi-core transformation information, the horizontal transformation kernel information, and the vertical transformation kernel information.

[0010] During the video encoding and decoding process, a transform kernel for performing transform and inverse transform on the current block can be selected from among multi-core transforms according to predetermined conditions, so that energy compression performance according to transform and inverse transform on the current block can be improved by using a transform kernel selected in consideration of specific encoding conditions or decoding conditions.

[0011] FIG. 1 illustrates a block diagram of a video decoding device according to one embodiment.

[0012] FIG. 2 illustrates a flowchart of a video decoding method according to one embodiment.

[0013] FIG. 3 illustrates a block diagram of a video encoding device according to one embodiment.

[0014] FIG. 4 illustrates a flowchart of a video encoding method according to one embodiment.

[0015] Figure 5 shows a table of combinations of horizontal transform kernel candidates and vertical transform kernel candidates that change depending on the intra prediction mode.

[0016] FIG. 6 illustrates a table in which bits indicating transform kernel candidates of a block are set according to intra and inter prediction modes according to one embodiment.

[0017] Figure 7 shows a table of transform basis functions for N inputs of DST7 and DCT8.

[0018] FIG. 8 illustrates a process in which an image decoding device divides a current encoding unit to determine at least one encoding unit according to one embodiment.

[0019] FIG. 9 illustrates a process in which an image decoding device determines at least one encoding unit by dividing a non-square encoding unit according to one embodiment.

[0020] FIG. 10 illustrates a process in which an image decoding device divides an encoding unit based on at least one of block shape information and information about a division shape mode, according to one embodiment.

[0021] FIG. 11 illustrates a method for a video decoding device to determine a predetermined encoding unit among an odd number of encoding units according to one embodiment.

[0022] FIG. 12 illustrates the order in which multiple encoding units are processed when an image decoding device determines multiple encoding units by dividing a current encoding unit according to one embodiment.

[0023] FIG. 13 illustrates a process for determining that a current encoding unit is divided into an odd number of encoding units when the encoding units cannot be processed in a predetermined order, according to one embodiment.

[0024] FIG. 14 illustrates a process in which an image decoding device divides a first encoding unit to determine at least one encoding unit according to one embodiment.

[0025] FIG. 15 illustrates that, according to one embodiment, a video decoding device limits the shapes into which a second encoding unit can be divided when a non-square shape of a second encoding unit determined by dividing a first encoding unit satisfies a predetermined condition.

[0026] FIG. 16 illustrates a process of a video decoding device dividing a square-shaped encoding unit when information about a split shape mode cannot indicate that the encoding unit is divided into four square-shaped encoding units according to one embodiment.

[0027] FIG. 17 illustrates that, according to one embodiment, the processing order between multiple encoding units may vary depending on the division process of the encoding units.

[0028] FIG. 18 illustrates a process in which the depth of an encoding unit is determined as the shape and size of the encoding unit change when the encoding unit is recursively divided to determine a plurality of encoding units according to one embodiment.

[0029] FIG. 19 illustrates an index (part index, hereinafter referred to as PID) for depth and encoding unit distinction that can be determined according to the shape and size of encoding units according to one embodiment.

[0030] FIG. 20 illustrates that a plurality of coding units are determined according to a plurality of predetermined data units included in a picture according to one embodiment.

[0031] FIG. 21 illustrates a processing block that serves as a criterion for determining the order of determination of reference coding units included in a picture according to one embodiment.

[0032] A video decoding method according to an embodiment proposed in the present disclosure may include the steps of: obtaining multi-core transform information from a bitstream, wherein the multi-core transform kernels indicate whether to use multi-core transform kernels to determine a transform kernel for inverse transform of a current block according to a size of the current block; when the multi-core transform kernels are used to determine the transform kernel according to the multi-core transform information, obtaining horizontal transform kernel information for determining a transform kernel for inverse transform in a horizontal direction and vertical transform kernel information for determining a transform kernel for inverse transform in a vertical direction from the bitstream; determining a horizontal transform kernel for inverse transform of the current block in a horizontal direction according to the horizontal transform kernel information; determining a vertical transform kernel for inverse transform of the current block in a vertical direction according to the vertical transform kernel information; and performing inverse transform on the current block using the horizontal transform kernel and the vertical transform kernel.

[0033] In one embodiment, the multi-core conversion information may indicate that the multi-core conversion kernels are used when the size of the current block is less than or equal to a predetermined size.

[0034] In one embodiment, the current block may be a luma block.

[0035] In one embodiment, if the current block is a luma block, the predetermined size may be 32X32.

[0036] In one embodiment, the current block may be a chroma block.

[0037] In one embodiment, if the current block is a chroma block, the predetermined size may be 16X16.

[0038] According to one embodiment, when the current block is encoded in an intra prediction mode, each of the horizontal transform kernel and the vertical transform kernel may be selected from a kernel transform candidate set DST7 and DCT8.

[0039] According to one embodiment, when the current block is encoded in an inter prediction mode, each of the horizontal transform kernel and the vertical transform kernel may be selected from a kernel transform candidate set DCT8 and DST7.

[0040] In one embodiment, the multi-core transform information may depend on the depth of the current block and the number of valid coefficients of the current block.

[0041] According to one embodiment of the present disclosure, a video decoding device comprises: a memory; and a processor interconnected with the memory, wherein the processor: obtains multi-core transform information from a bitstream, indicating whether multi-core transform kernels are used to determine a transform kernel for inverse transform of a current block; when the multi-core transform kernels are used to determine the transform kernel according to the multi-core transform information, obtains horizontal transform kernel information for determining a transform kernel for inverse transform in a horizontal direction and vertical transform kernel information for determining a transform kernel for inverse transform in a vertical direction from the bitstream; determines a horizontal transform kernel for inverse transform of the current block in a horizontal direction according to the horizontal transform kernel information; determines a vertical transform kernel for inverse transform of the current block in a vertical direction according to the vertical transform kernel information; and performs inverse transform on the current block using the horizontal transform kernel and the vertical transform kernel.

[0042] A video encoding method according to an embodiment proposed in the present disclosure may include: performing a transform on a current block using multi-core transform kernels to determine a transform kernel for transforming the current block; generating multi-core transform kernel information indicating whether multi-core transform kernels are used to determine the transform kernel; generating horizontal transform kernel information indicating a horizontal transform kernel used for transforming the current block in a horizontal direction and vertical transform kernel information indicating a vertical transform kernel used for transforming the current block in a vertical direction; and encoding a transform coefficient generated by performing a transform on the current block and the multi-core transform information, the horizontal transform kernel information, and the vertical transform kernel information.

[0043] According to one embodiment of the present disclosure, a video encoding device comprises: a memory; and a processor interconnected with the memory, wherein the processor: performs a transform on a current block using multi-core transform kernels to determine a transform kernel for transforming the current block; generates multi-core transform kernel information indicating whether multi-core transform kernels are used to determine the transform kernel; generates horizontal transform kernel information indicating a horizontal transform kernel used for transforming the current block in a horizontal direction and vertical transform kernel information indicating a vertical transform kernel used for transforming the current block in a vertical direction; and encodes transform coefficients generated by performing a transform on the current block and the multi-core transform information, the horizontal transform kernel information, and the vertical transform kernel information.

[0044] The advantages and features of the embodiments disclosed herein, and the methods for achieving them, will become clearer with reference to the embodiments described below, along with the accompanying drawings. However, the embodiments proposed in this disclosure are not limited to the embodiments disclosed below and may be implemented in various different forms. These embodiments are provided solely to fully inform those skilled in the art of the scope of the embodiments.

[0045] The terms used in this specification will be briefly explained, and the disclosed embodiments will be described in detail.

[0046] The terms used in this specification have been selected from widely used, current terms, taking into account the functionality of the disclosed embodiments. However, these terms may vary depending on the intentions of engineers working in the relevant fields, precedents, the emergence of new technologies, etc. Furthermore, in certain cases, terms may be arbitrarily selected by the applicant, and in such cases, their meanings will be described in detail in the detailed description section of the relevant specification. Therefore, the terms used in this disclosure should not be defined simply as names of terms, but rather based on the meanings of the terms and the overall content of this specification.

[0047] In this specification, singular expressions include plural expressions unless the context clearly specifies that they are singular.

[0048] When a part of the specification is said to "include" a component, unless otherwise specifically stated, this does not exclude other components but rather means that it may include other components. Furthermore, the term "component" as used throughout the specification refers to software or hardware components such as FPGAs or ASICs, and the "component" performs certain functions. However, the "component" is not limited to software or hardware. The "component" may be configured to reside on an addressable storage medium or configured to execute one or more processors. Thus, by way of example, the "component" may include components such as software components, object-oriented software components, class components, and task components, as well as processes, functions, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables. The functionality provided within the components and "components" may be combined into a smaller number of components and "components" or further separated into additional components and "components."

[0049] Hereinafter, “image” may refer to a static image such as a still image of a video, or a dynamic image such as a moving image, i.e., the video itself.

[0050] Hereinafter, "sample" refers to data assigned to a sampling location in an image and is the subject of processing. For example, pixel values ​​in a spatial domain image or transformation coefficients in a transformation domain may be samples. A unit containing at least one such sample may be defined as a block.

[0051] Below, with reference to the attached drawings, a detailed description of the embodiments of the present invention is provided so that those skilled in the art can easily practice the invention. In order to clearly illustrate the invention, portions irrelevant to the description are omitted from the drawings.

[0052] Hereinafter, with reference to FIGS. 1 to 21, a video encoding device and a video decoding device, a video encoding method, and a video decoding method according to an embodiment will be described in detail. Specifically, with reference to FIGS. 1 to 7, a method and device for performing transformation and inverse transformation on a block using multi-core transformation kernels according to the size of the current block according to an embodiment will be described below, and with reference to FIGS. 8 to 21, a method for determining a data unit of an image according to an embodiment will be described below.

[0053] Hereinafter, with reference to FIGS. 1 to 7, a method and apparatus for encoding or decoding a video by performing transformation and / or inverse transformation according to one embodiment disclosed in the present specification are described.

[0054] FIG. 1 illustrates a block diagram of a video decoding device (100) according to one embodiment.

[0055] A video decoding device (100) according to one embodiment may include a parsing unit (110) and an inverse transform unit (120). The parsing unit (110) and the inverse transform unit (120) according to one embodiment may operate as individual processors or may operate under the control of a central processor. In addition, although not illustrated in FIG. 1, the video decoding device (100) may further include a memory or storage for storing data received from the outside and data generated by the parsing unit (110) and the inverse transform unit (120).

[0056] The parsing unit (110) can parse various syntaxes from the bitstream. Quantized transform coefficients of a block can be obtained from among the various syntaxes parsed by performing entropy decoding on the bitstream. The video decoding device (100) can perform inverse quantization on the block by performing scaling on the quantized transform coefficients based on a predetermined quantization parameter. Transform coefficients of the block can be obtained through inverse quantization.

[0057] A video decoding device (100) according to one embodiment can decode a bitstream to restore a block. The video decoding device (100) can decode a bitstream to obtain transform coefficients of a block.

[0058] According to one embodiment, the inverse transform unit (120) can obtain residual samples of a block by performing inverse transform on the block. That is, by applying a transform kernel to the block, the transform coefficients of the block can be inversely transformed, thereby restoring the residual samples.

[0059] While the parsing unit (110) performs entropy decoding, the parsing unit (110) according to one embodiment can obtain multi-core transformation information from the bitstream, which indicates whether to use multi-core transformation kernels to determine a transformation kernel for inverse transformation of the current block according to the size of the current block.

[0060] In addition, the parsing unit (110) can obtain horizontal transformation kernel information for determining a transformation kernel for horizontal inverse transformation and vertical transformation kernel information for determining a transformation kernel for vertical inverse transformation from the bitstream when the multi-core transformation kernels are used to determine the transformation kernel according to the multi-core transformation information.

[0061] According to one embodiment, the inverse transformation unit (120) determines a horizontal transformation kernel for inverse transformation of the current block in the horizontal direction according to the horizontal transformation kernel information, and determines a vertical transformation kernel for inverse transformation of the current block in the vertical direction according to the vertical transformation kernel information, so as to perform inverse transformation on the current block using the horizontal transformation kernel and the vertical transformation kernel.

[0062] The video decoding device (100) can generate restoration samples in the spatial domain by combining prediction samples of the current block generated by performing prediction and residual samples of the block generated by performing inverse transformation. Specifically, restoration samples of the block can be generated by combining prediction samples and residual samples.

[0063] Referring to FIG. 2 below, a specific operation for performing multi-core conversion of a current block by a video decoding device (100) according to one embodiment will be described in detail.

[0064] FIG. 2 illustrates a flowchart of a video decoding method according to one embodiment.

[0065] In step s210, the video decoding device (100) can obtain multi-core transformation information from the bitstream, which indicates whether to use multi-core transformation kernels to determine a transformation kernel for inverse transformation of the current block according to the size of the current block.

[0066] In one embodiment, the multi-core transformation information may indicate that multi-core transformation kernels are used when the size of the current block is less than or equal to a predetermined size.

[0067] In one embodiment, multi-core transform kernels may be used for a luma block. When multi-core transform kernels are used for a luma block, the predetermined size may be 32X32. Additionally, the predetermined size may be another size.

[0068] In one embodiment, multi-core transform kernels may be used for chroma blocks. When multi-core transform kernels are used for chroma blocks, the predetermined size may be 16X16. Additionally, the predetermined size may be another size.

[0069] In step s220, the video decoding device (100) can obtain horizontal transformation kernel information for determining a transformation kernel for inverse transformation in the horizontal direction and vertical transformation kernel information for determining a transformation kernel for inverse transformation in the vertical direction from the bitstream when the multi-core transformation kernels are used to determine the transformation kernel according to the multi-core transformation information.

[0070] In step s230, the video decoding device (100) can determine a horizontal transformation kernel for horizontal inverse transformation of the current block according to the horizontal transformation kernel information, and can determine a vertical transformation kernel for vertical inverse transformation of the current block according to the vertical transformation kernel information.

[0071] According to one embodiment, when the prediction mode of the current block is an intra prediction mode, the horizontal transformation kernel candidate and the vertical transformation kernel candidate may be changed according to the prediction direction of the intra planar mode, the intra DC mode, or the intra mode. Specific embodiments are described below with reference to the table in FIG. 5.

[0072] According to one embodiment, the set of transform kernel candidates of the horizontal transform kernel and the vertical transform kernel may be preset according to the prediction mode.

[0073] For example, if the prediction mode of the current block is intra prediction mode, the transform kernel candidate sets of the current block may be specified as set 0: {DST7, DCT8}, set 1: {DST7, DST1}, and set 2: {DST7, DCT5}. The first and second arguments of the transform kernel candidate sets represent the horizontal transform kernel and the vertical transform kernel, respectively.

[0074] According to the table in Fig. 5, for each intra mode, an index pointing to a horizontal transformation kernel candidate and an index pointing to a vertical transformation kernel candidate are paired.

[0075] For example, if the prediction mode of the current block is the intra prediction mode and the intra mode index is 1, the horizontal transform kernel candidate index is 2, and the vertical transform kernel candidate index is also 2. Therefore, as the horizontal transform kernel for the inverse transform of the current coded block, the horizontal transform kernel of the DST7 type, which is the first argument among set 2: {DST7, DCT5} indicated by the horizontal transform kernel candidate index, can be selected. As the vertical transform kernel for the inverse transform of the current coded block, the vertical transform kernel of the DCT5 type, which is the second argument among set 2: {DST7, DCT5} indicated by the vertical transform kernel candidate index, can be selected.

[0076] For example, if the prediction mode of the current block is the intra prediction mode and the intra mode index is 9, the horizontal transform kernel candidate index is 2, and the vertical transform kernel candidate index is 0. Therefore, as the horizontal transform kernel for the inverse transform of the current coded block, the horizontal transform kernel of the DST7 type, which is the first argument among set 2: {DST7, DCT5} indicated by the horizontal transform kernel candidate index, can be selected. As the vertical transform kernel for the inverse transform of the current coded block, the vertical transform kernel of the DCT8 type, which is the second argument among set 0: {DST7, DCT8} indicated by the vertical transform kernel candidate index, can be selected.

[0077] According to one embodiment, when the prediction mode of the current block is an intra prediction mode, a candidate that is a pair of a horizontal transformation kernel and a vertical transformation kernel may be considered as a transform kernel candidate set of the current block. For example, as a transform kernel candidate set, set 0: {DST7, DST7}, set 1: {DST7, DCT8}, set 2: {DCT8, DST7}, and set 3: {DCT8, DCT8} may be designated.

[0078] A video decoding device (100) according to one embodiment may use a multi-transform technique as a technique for performing an inverse transform of a transform block using a transform kernel selected from among various transform kernels. Various transform kernels that may be selected for the multi-transform technique may be defined by type, and according to a given video compression standard, transform kernels of each transform kernel type are predetermined, and each transform kernel type is represented as a type of DCT1, DCT2, DCT3, ...., DCT7, ... DCTn, DST1, DST2, DST3, ...., DST7, ... DSTm (n, m are each integers). For each of the DCTn type and the DSTm type, a horizontal transform kernel and a vertical transform kernel of a transform block are defined, respectively. Therefore, a horizontal transform kernel of the DCT8 type may be selected for a horizontal inverse transform for a block, and a vertical transform kernel of the DST7 type may be selected for a vertical inverse transform. In other words, the horizontal transform kernel and the vertical transform kernel may be selected individually.

[0079] According to one embodiment, a multi-transform technique may be used when the size of the luma block is greater than or equal to 4x4 and less than or equal to 32x32.

[0080] According to one embodiment, a multi-transform technique may be used when the size of a chroma block is greater than or equal to 4x4 and less than or equal to 16x16.

[0081] In one embodiment, the set of transformation kernel candidates may consist of 2n candidates (where n is a positive integer).

[0082] In one embodiment, the set of transformation kernel candidates can be configured in a default mode. The set of transformation kernel candidates can be used as information parsed at the slice level or as a predetermined set of transformation kernel candidates in the encoder / decoder.

[0083] According to one embodiment, the set of transform kernel candidates can be adaptively constructed depending on the mode in which the current block is encoded. For example, in case of intra mode 0, set 0: {DST7, DST7}, set 1: {DST7, DCT8}, set 2: {DCT8, DST7}, set 3: {DCT8, DCT8} may be specified as the transform kernel candidate set, in case of intra mode 1, set 0: {DCT2, DST7}, set 1: {DCT2, DCT8}, set 2: {DCT2, DST7}, set 3: {DCT2, DCT8} may be specified as the transform kernel candidate set, in case of inter affine prediction mode, set 0: {DST7, DST7}, set 1: {DST7, DCT8}, set 2: {DCT8, DST7}, set 3: {DCT8, DCT8} may be specified as the transform kernel candidate set, and inter AMVP or inter In the AMVR mode, the transform kernel candidate sets may be set 0: {DCT2, DST7}, set 1: {DCT2, DCT8}, set 2: {DCT2, DST7}, and set 3: {DCT2, DCT8}. The first and second arguments of the transform kernel candidate sets represent horizontal transform kernels and vertical transform kernels, respectively. If the 2-bit flags representing the horizontal and vertical transform kernels represent 00, transform kernel candidates of set 0 may be selected, if they represent 01, transform kernel candidates of set 1 may be selected, if they represent 10, transform kernel candidates of set 2 may be selected, and if they represent 11, transform kernel candidates of set 3 may be selected.

[0084] In one embodiment, the set of transformation kernel candidates can be adaptively constructed depending on the shape of the current block. For example, in the case of a block of NXN, set 0: {DST7, DST7}, set 1: {DST7, DCT8}, set 2: {DCT8, DST7}, set 3: {DCT8, DCT8} may be specified as the transform kernel candidate set, and in the case of a block of NX2N, set 0: {DCT2, DST7}, set 1: {DCT2, DCT8}, set 2: {DCT2, DST7}, set 3: {DCT2, DCT8} may be specified as the transform kernel candidate set, and in the case of a block of NX4N, set 0: {DCT2, DST7}, set 1: {DCT2, DCT8}, set 2: {DCT2, DST7}, set 3: {DCT2, DCT8} may be specified as the transform kernel candidate set, and in the case of a block of 2NXN, As sets, set 0: {DST7, DST7}, set 1: {DST7, DCT8}, set 2: {DCT8, DST7}, set 3: {DCT8, DCT8} may be specified, and in the case of a block of 4NXN, set 0: {DST7, DST7}, set 1: {DST7, DCT8}, set 2: {DCT8, DST7}, set 3: {DCT8, DCT8} may be specified as transform kernel candidate sets.

[0085] According to one embodiment, the set of transform kernel candidates may be adaptively configured with one transform kernel depending on the shape of the current block. For example, in the case of a 1XN block, the sets of transform kernel candidates may be designated as Set 0: {DCT2, NON}, Set 1: {DCT2, NON}, Set 2: {DCT2, NON}, and Set 3: {DCT2, NON}, and in the case of a NX1 block, the sets of transform kernel candidates may be designated as Set 0: {NON, DCT2}, Set 1: {NON, DCT2}, Set 2: {NON, DCT2}, and Set 3: {NON, DCT2}.

[0086] In one embodiment, the set of transformation kernel candidates can be adaptively configured depending on the size of the current block. For example, when the width and height of the block are each 128, the set of transformation kernel candidates may be set 0: {DST7, DST7}, set 1: {DST7, DCT8}, set 2: {DCT8, DST7}, set 3: {DCT8, DCT8}, and when the width and height of the block are each 32 or more and less than 128, the set of transformation kernel candidates may be set 0: {DCT2, DST7}, set 1: {DCT2, DCT8}, set 2: {DCT2, DST7}, set 3: {DCT2, DCT8}, and when the width and height of the block are each less than 32, the set of transformation kernel candidates may be set 0: {DCT2, DST7}, set 1: {DCT2, DCT8}, set 2: {DCT2, DST7}, set 3: {DCT2, DCT8}. It may be specified.

[0087] According to one embodiment, the set of transform kernel candidates may be adaptively configured depending on the width or height of the current block. For example, when the width of the current block is 128, set 0: {DST7, NON}, set 1: {DST7, NON}, set 2: {DCT8, NON}, set 3: {DCT8, NON} may be specified, and when the width is 32 or more but less than 128, set 0: {DCT2, NON}, set 1: {DCT2, NON}, set 2: {DCT2, NON}, set 3: {DCT2, NON} may be specified, and when the width is less than 32, set 0: {DCT5, NON}, set 1: {DCT5, NON}, set 2: {DCT5, NON}, set 3: {DCT5, NON} may be specified. If the height of the current block is 128, set 0: {NON, DST7}, set 1: {NON, DST7}, set 2: {NON, DCT8}, set 3: {NON, DCT8} may be specified, and if the height is 32 or more but less than 128, set 0: {NON, DCT2}, set 1: {NON, DCT2}, set 2: {NON, DCT2}, set 3: {NON, DCT2} may be specified, and if the height is less than 32, set 0: {NON, DCT5}, set 1: {NON, DCT5}, set 2: {NON, DCT5}, set 3: {NON, DCT5} may be specified.

[0088] In one embodiment, the set of transform kernel candidates can be adaptively constructed based on the width, height, or shape of the current block.

[0089] According to one embodiment, when the prediction mode of the current block is the intra prediction mode, each of the horizontal transform kernel and the vertical transform kernel may be selected from a kernel transform candidate set DST7, DCT8. When the flag indicating the horizontal transform kernel information and the vertical transform kernel information is 2 bits, {DST7, DST7} may be specified when the flag is 00, {DST7, DCT8} may be specified when the flag is 01, {DCT8, DST7} may be specified when the flag is 10, and {DCT8, DCT8} may be specified when the flag is 11.

[0090] According to one embodiment, when the prediction mode of the current block is the inter prediction mode, each of the horizontal transform kernel and the vertical transform kernel may be selected from a kernel transform candidate set DCT8, DST7. When the flag indicating the horizontal transform kernel information and the vertical transform kernel information is 2 bits, {DCT8, DCT8} may be specified when the flag is 00, {DCT8, DST7} may be specified when the flag is 01, {DST7, DCT8} may be specified when the flag is 10, and {DST7, DST7} may be specified when the flag is 11.

[0091] FIG. 6 illustrates a table in which bits indicating transform kernel candidates of a block are set according to intra or inter prediction mode according to one embodiment.

[0092] Specifically, in the case of an intra block, DST7 may be designated as the transformation kernel when the bit value is 0, and DCT8 may be designated as the transformation kernel when the bit value is 1, and in the case of an inter block, DCT8 may be designated as the transformation kernel when the bit value is 0, and DST7 may be designated when the bit value is 1. In addition, the above bits may be set for each of the horizontal transformation kernel and the vertical transformation kernel.

[0093] Figure 7 shows a table of transform basis functions for N-point inputs of DST7 and DCT8.

[0094] According to one embodiment, the set of transform kernel candidates can be variably configured depending on at least one of the following factors: whether a specific tool is on / off, the number of significant coefficients, the sum of the squares of the significant coefficients, the depth, and the quantization parameters.

[0095] In step s240, the video decoding device (100) can perform inverse transformation on the current block using the horizontal transformation kernel and the vertical transformation kernel.

[0096] Specifically, a horizontal transformation can be performed on the current block using a horizontal transformation kernel, and an inverse transformation can be performed on the current block by applying a vertical transformation kernel to the horizontally transformed current block. Accordingly, residual samples of the transform coefficients of the current block can be generated. The order of application of the horizontal transformation kernel and the vertical transformation kernel can be reversed.

[0097] According to one embodiment, multi-core transformation information may be individually set for each data unit, such as a block of a sequence, picture, slice, or encoding unit.

[0098] To this end, a video decoding device (100) according to an embodiment may obtain multi-core transformation information at a sequence level from a bitstream, and indicate whether to use multi-core transformation kernels to determine the transformation kernel within a current sequence according to the multi-core transformation information at the sequence level. A video decoding device (100) according to a specific embodiment may parse multi-core information from a sequence parameter set (SPS) of a current sequence, and determine whether to set a transformation kernel for inverse transformation of the current sequence to a multi-core transformation kernel according to the multi-core transformation information.

[0099] A video decoding device (100) according to one embodiment may obtain multi-core transformation information at a picture level from a bitstream, and indicate whether to use multi-core transformation kernels to determine the transformation kernel within a current picture according to the multi-core transformation information at the picture level. A video decoding device (100) according to a specific embodiment may parse multi-core transformation information from a picture parameter set (PPS) of a current picture, and determine whether to set a transformation kernel for inverse transformation of the current picture to a multi-core transformation kernel according to the multi-core transformation information.

[0100] A video decoding device (100) according to one embodiment may obtain slice-level multi-core transformation information from a bitstream, and indicate whether to use multi-core transformation kernels to determine the transformation kernel within a current slice based on the slice-level multi-core transformation information. A video decoding device (100) according to a specific embodiment may parse multi-core transformation information from a slice header of a current slice, and determine whether to set a transformation kernel for inverse transformation of the current slice to a multi-core transformation kernel based on the multi-core transformation information.

[0101] A video decoding device (100) according to one embodiment may obtain multi-core transform information at a coding unit level from a bitstream, and indicate whether to use multi-core transform kernels to determine the transform kernel within a current coding unit according to multi-core transform kernel information at a coding unit level. A video decoding device (100) according to a specific embodiment may parse multi-core transform information from coding unit syntax for a current coding unit, and determine whether to set a transform kernel for inverse transform of the current coding unit to a multi-core transform kernel according to the multi-core transform information.

[0102] Accordingly, the video decoding device (100) according to one embodiment can parse multi-core transformation information from at least one of an encoding unit syntax, a slice header, a PPS, and an SPS, and determine whether to use a multi-core transformation kernel as a transformation kernel for each data unit, such as a sequence, a picture, a slice, or an encoding unit, depending on the parsing position of the multi-core transformation information.

[0103] FIG. 3 illustrates a block diagram of a video encoding device (300) according to one embodiment.

[0104] A video encoding device (200) according to one embodiment may include a conversion unit (310) and an encoding unit (320). The conversion unit (310) and the encoding unit (320) according to one embodiment may operate as individual processors or may operate under the control of a central processor. In addition, although not shown in FIG. 1, the video encoding device (300) may further include a memory or storage for storing input video data and data generated by the conversion unit (310) and the encoding unit (320).

[0105] A video encoding device (300) according to one embodiment may divide a picture into a plurality of blocks in order to encode video data. The sizes of the blocks may be variable, and the blocks are hereinafter referred to as encoding units. According to one embodiment, the sizes of encoding units may be gradually changed according to a hierarchical structure, a sub-block may be determined from the encoding unit in order to perform transformation on the encoding unit, and a sub-block may also be determined in order to perform prediction on the encoding unit. Even if the sub-block is derived from one encoding unit, the sizes of the sub-block for transformation and the sub-block for prediction may be determined individually.

[0106] The video encoding device (300) can perform prediction based on the prediction block for each encoding block to determine prediction samples. When prediction is performed in intra prediction mode, prediction samples can be determined using sample values ​​of neighboring blocks spatially adjacent to the prediction block. When prediction is performed in inter prediction mode, prediction samples can be determined using samples of a block existing at a temporally corresponding position of the prediction block of the current picture within a reference picture.

[0107] The video encoding device (300) can generate residual samples by subtracting prediction samples from the samples of each encoding block. The video encoding device (300) can perform transformation and quantization on the residual samples based on the transformation block of each encoding block to generate quantized transform coefficients.

[0108] The video encoding device (300) performs transformation and quantization on residual samples generated by performing prediction on an encoding block to generate quantized transform coefficients, and then performs inverse quantization and inverse transformation again to restore the residual samples. The restored residual samples and predicted samples can be added together to ultimately store restored samples of the encoding unit. The stored restored samples can be used as reference samples for predicting other encoding units.

[0109] A video encoding device (300) according to one embodiment can encode blocks of video data. Accordingly, the video encoding device (300) can perform a transformation on the blocks to generate transformation coefficients.

[0110] A transform unit (310) according to one embodiment can generate transform coefficients of residual samples of a current block by performing a transform on the current block. That is, residual samples of the block can be transformed by applying a transform kernel to the current block, thereby generating transform coefficients.

[0111] A video encoding device (300) according to one embodiment can use multi-core transform kernels as transform kernels.

[0112] The encoding unit (320) can generate a bin string by binarizing multi-core transformation information indicating whether to use multi-core transformation kernels to determine a transformation kernel for inverse transformation of the current block according to the size of the current block, and can output a bit string generated by performing entropy encoding on the bin string of the multi-transformation kernel information.

[0113] When the conversion unit (310) determines the conversion kernel to be used for conversion of the current block and uses a multi-core conversion kernel, the encoding unit (320) can generate horizontal conversion kernel information to indicate the horizontal conversion kernel used for conversion in the horizontal direction of the current block and vertical conversion kernel information to indicate the vertical conversion kernel used for conversion in the vertical direction.

[0114] In a specific embodiment, the multi-core conversion information can be expressed as a value of 0 or 1, and when multi-core conversion is not used as a conversion kernel, the multi-core conversion information can be set to 0, and when multi-core conversion is used as a conversion kernel of the current block, the multi-conversion kernel information can be set to 1.

[0115] According to one embodiment, the encoding unit (320) can output bit strings generated by entropy encoding multi-core transform information, horizontal transform kernel information, vertical transform kernel information, and quantized transform coefficients of the current block.

[0116] Referring to FIG. 4 below, a specific operation for performing multiple transformations of a current block by a video encoding device (300) according to one embodiment will be described in detail.

[0117] FIG. 4 illustrates a flowchart of a video encoding method according to one embodiment.

[0118] In step s410, the video encoding device (300) can perform transformation on the current block using multi-core transformation kernels to determine a transformation kernel for transformation of the current block.

[0119] In step s420, the video encoding device (300) can generate multi-core transform kernel information indicating whether multi-core transform kernels are used to determine the transform kernel.

[0120] In step s430, the video encoding device (300) can generate horizontal transform kernel information for indicating a horizontal transform kernel used for horizontal transform of the current block and vertical transform kernel information for indicating a vertical transform kernel used for vertical transform.

[0121] In step s440, the video encoding device (300) can encode and output the generated transform coefficients, the multi-core transform information, the horizontal transform kernel information, and the vertical transform kernel information by performing a transform on the current block.

[0122] The video encoding device (300) can select a horizontal transformation kernel and a vertical transformation kernel for the current block from a set of transformation kernel candidates according to the prediction mode.

[0123] According to one embodiment, multi-core transformation information may be individually set for each data unit, such as a block of a sequence, picture, slice, or encoding unit.

[0124] For example, a video encoding device (300) according to one embodiment may determine a transform kernel for transforming a current encoding unit using multi-core transform kernels. In this case, multi-core transform information indicating whether the transform kernel uses multi-core transform kernels may be encoded at the encoding unit level. The multi-core transform information may be included in the encoding unit syntax for the current encoding unit.

[0125] For example, a video encoding device (300) according to one embodiment may determine a transform kernel for transforming a current slice using multi-core transform kernels. In this case, multi-core transform information indicating whether the transform kernel uses multi-core transform kernels may be encoded at the slice level. The multi-core transform information may be included in the slice header for the current slice.

[0126] For example, a video encoding device (300) according to one embodiment may determine a transform kernel for transforming a current picture using multi-core transform kernels. In this case, multi-core transform information indicating whether the transform kernel uses multi-core transform kernels may be encoded at the picture level. The multi-core transform information may be included in a picture parameter set (PPS) for the current picture.

[0127] For example, a video encoding device (300) according to one embodiment may determine a transform kernel for transforming a current sequence using multi-core transform kernels. In this case, multi-core transform information indicating whether the transform kernel uses multi-core transform kernels may be encoded at the sequence level. The multi-core transform information may be included in a sequence parameter set (SPS) for the current sequence.

[0128] Accordingly, the video encoding device (300) according to one embodiment may include multi-core transformation information in at least one of the coding unit syntax, the slice header, the PPS, and the SPS, depending on whether the transformation kernel is determined using multi-core transformation kernels for each data unit such as a sequence, a picture, a slice, or an coding unit.

[0129] Hereinafter, a signaling method according to the decryption method of the present invention will be described in detail.

[0130] According to one embodiment, whether multi-core transformation information is acquired may be determined based on the size of the current block. Specifically, if the size of the current block is less than or equal to a predetermined size, multi-core transformation information is acquired. If the size exceeds the predetermined size, multi-core transformation information is not acquired, and a DCT2 type transformation kernel may be fixedly used as the transformation kernel for inverse transformation of the current block.

[0131] In one embodiment, whether or not to use multi-core transformations when multi-core transformation information is obtained may be signaled by setting a 1-bit flag.

[0132] As a specific example, when the value of the multi-core conversion information, which is a 1-bit flag, is 0, the multi-core conversion kernels are not used, and when the value of the multi-core conversion information is 1, the multi-core conversion kernels can be used.

[0133] In one embodiment, when multi-core transformation information is used, i.e., when the 1-bit flag value indicating the multi-core transformation information is 1, an additional N bits may be set to indicate which transformation kernel is selected as the horizontal transformation kernel and the vertical transformation kernel. For example, when multi-core transformation is used, the values ​​indicating the horizontal transformation kernel and the vertical transformation kernel may be set to 2 bits.

[0134] According to one embodiment, the additional N bits can be variably set depending on at least one of the width, height, shape, intra prediction mode, inter prediction mode, and depth of the block. For example, in the case of a 64X64 block, 1 bit can be used as an on / off flag indicating whether to use multi-core transformation, and 2 bits can be used as information indicating the mode, and in the case of a 64X16 block, 1 bit can be used as an on / off flag indicating whether to use multi-core transformation, and 1 bit can be used as information indicating the mode.

[0135] According to one embodiment, a 1-bit on / off flag indicating whether to use multi-core transform can be variably signaled depending on at least one of the following factors: block width, height, shape, intra prediction mode, inter prediction mode, whether a specific tool is on / off, number of significant coefficients (non-zero coefficients), sum of squares of significant coefficients, depth, and quantization parameter. For example, signaling may not be performed when MPI or PDPC tool is on, signaling may not be performed when the sum of squares of significant coefficients is higher or lower than a predetermined threshold, and signaling may be performed on a slice or picture basis of the predetermined threshold. The predetermined threshold can be variably set depending on at least one factor: number of significant coefficients, sum of squares of significant coefficients, depth, and quantization parameter. In addition, in a 128X128 block, multi-core transform may not be applied without signaling the flag indicating whether to use multi-core transform.

[0136] According to one embodiment, the flag indicating the mode may be signaled variably depending on at least one of the following factors: width, height, shape of the block, intra prediction mode, inter prediction mode, whether a specific tool is used, number of valid coefficients, and depth.

[0137] In one embodiment, the default mode may be set when the mode flag is not signaled and the multi-core conversion flag is signaled and on. For example, if the MPI, PDPC tool is on, the default mode may be set when the multi-core conversion flag is signaled and on, even if the mode flag is not signaled, and the default mode may be set when the number of valid coefficients is higher or lower than a predetermined threshold, even if the mode flag is not signaled, and the multi-core conversion flag is signaled and on. The default mode may be set to a mode predetermined by the encoder / decoder or transmitted at the slice level.

[0138] According to one embodiment, when signaling additional N bits for mode designation when the multi-core conversion flag is on, the signaling method may use a CABAC method using a context model, a fixed length method, or a unary binarization method. Specifically, the CABAC method may be used after binarizing a 1-bit on / off flag indicating whether to use multi-core conversion, and the four modes may be expressed as {0, 10, 110, 111} in a unary manner and the CABAC method may be used. In addition, the multi-core conversion flag may be used as 1 bit and the four modes may be expressed as {00, 01, 10, 11} in a fixed length manner or the four modes may be expressed as {0, 10, 110, 111} in a unary binarization manner.

[0139] According to one embodiment, when a multi-core transformation 1-bit flag using the CABAC scheme is on, when additional N-bit signaling for mode designation is performed, a context modeling method may be configured based on a multi-core transformation flag and a mode flag of a surrounding block (e.g., a left block, an upper-right block, an upper-left block, a lower-left block, and co-located blocks located at the same position in an inter mode). In addition, the context modeling method may be variably configured based on at least one of a width, a height, a shape of a block, an intra-prediction mode, an inter-prediction mode, whether a specific tool is used, a number of significant coefficients, and a depth. For example, context modeling may be configured and signaled based on a depth of a block and a number of significant coefficients.

[0140] According to one embodiment, when applying a multi-core transform during encoding / decoding, the area to which the multi-core transform is applied can be variably set according to at least one of the width, height, shape, intra prediction mode, inter prediction mode, use of a specific tool, number of significant coefficients, sum of squares of significant coefficients, depth, and quantization parameters of the block. For example, in the case of a 128X128 block, only the 64X64 area on the upper left can be designated as the transform area, and the remaining areas can be filled with 0, and in the case of a 128X128 block, it can be divided into four 64X64 areas and transform can be performed four times on the 64X64 areas. Also, in the case of a 128X64 block, only the 64X64 area on the upper left can be designated as a transformation area and the remaining area can be filled with 0, and in the case of a 128X64 block, it can be divided into two 64X64 areas and two transformations can be performed on the 64X64 areas.

[0141] In the operations performed by the video decoding device (100) and the video encoding device (200) described above with reference to FIGS. 1 to 7, a block may be a data unit such as a coding unit, a sub-block of a coding unit, a maximum coding unit, etc. For example, a sub-block may be a prediction unit, which is a block determined by dividing a coding unit to perform prediction on the coding unit, a transformation unit, which is determined by dividing a coding unit to perform transformation and quantization on the coding unit, etc.

[0142] Below, the division of encoding units according to one embodiment of the present disclosure is described in detail.

[0143] An image may be split into maximum coding units. The size of the maximum coding unit may be determined based on information obtained from a bitstream. The shape of the maximum coding unit may be a square of the same size, but is not limited thereto. In addition, the maximum coding unit may be hierarchically split into coding units based on information about a split shape mode obtained from the bitstream. Information about the split shape mode may include at least one of information indicating whether to split, split direction information, and split type information. The information indicating whether to split indicates whether to split the coding unit. The split direction information indicates that the coding unit is split in one of a horizontal direction and a vertical direction. The split type information indicates that the coding unit is split in one of a binary split, a tri split, and a quad split.

[0144] For example, information about the split shape mode (split_mode) may indicate that the current coding unit is not split (NO_SPLIT). In addition, information about the split shape mode may indicate quad split (QUAD_SPLIT). In addition, information about the split shape mode may indicate binary vertical split (BI_VER_SPLIT). In addition, information about the split shape mode may indicate binary vertical split (BI_VER_SPLIT). In addition, information about the split shape mode may indicate binary horizontal split (BI_HOR_SPLIT). In addition, information about the split shape mode may indicate tri vertical split (TRI_VER_SPLIT). In addition, information about the split shape mode may indicate tri horizontal split (TRI_HOR_SPLIT).

[0145] The image decoding device (100) can obtain information about a segmentation mode from a bitstream from a single binstring. The format of the bitstream received by the image decoding device (100) may include a fixed length binary code, a unary code, a truncated unary code, a predetermined binary code, etc. The binstring represents information as a series of binary numbers. The binstring may be composed of at least one bit. The image decoding device (100) can obtain information about a segmentation mode corresponding to the binstring based on a segmentation rule. The image decoding device (100) can determine whether to segment an encoding unit, the segmentation direction, and the segmentation type based on the single binstring.

[0146] The coding unit may be smaller than or equal to the maximum coding unit. For example, if information about the partition shape mode indicates that it is not partitioned, the coding unit has the same size as the maximum coding unit. If information about the partition shape mode indicates that it is partitioned, the maximum coding unit may be partitioned into coding units. Furthermore, if information about the partition shape mode for the coding unit indicates partitioning, the coding units may be partitioned into coding units of smaller sizes. However, the partitioning of the image is not limited thereto, and the maximum coding unit and the coding units may not be distinguished. The partitioning of the coding unit is described in more detail with reference to FIGS. 8 to 21.

[0147] In addition, a coding unit can be split into prediction units for predicting an image. The prediction unit can be equal to or smaller than the coding unit. In addition, a coding unit can be split into transformation units for transforming an image. The transformation unit can be equal to or smaller than the coding unit. The shape and size of the transformation unit and the prediction unit may be unrelated to each other. The coding unit may be distinguished from the prediction unit and the transformation unit, but the coding unit, the prediction unit, and the transformation unit may be identical to each other. Splitting of the prediction unit and the transformation unit can be performed in the same manner as splitting of the coding unit. Splitting of the coding unit is described in more detail with reference to FIGS. 8 to 21. The current block and the neighboring blocks of the present disclosure may represent one of a maximum coding unit, a coding unit, a prediction unit, and a transformation unit. In addition, the current block or the current coding unit is a block currently being decoded or encoded or a block currently being split. The neighboring block may be a block reconstructed before the current block. The neighboring block may be spatially or temporally adjacent to the current block. The surrounding blocks can be located on the lower left, left, upper left, upper right, right, or lower right of the current block.

[0148] FIG. 8 illustrates a process in which an image decoding device (100) divides a current encoding unit to determine at least one encoding unit according to one embodiment.

[0149] The block shape may include 4Nx4N, 4Nx2N, 2Nx4N, 4NxN, or Nx4N, where N may be a positive integer. The block shape information is information indicating at least one of the shape, direction, width, and height ratio or size of the encoding unit.

[0150] The shape of the encoding unit may include square and non-square. When the width and height of the encoding unit are equal (i.e., when the block shape of the encoding unit is 4Nx4N), the image decoding device (100) may determine the block shape information of the encoding unit as square. The image decoding device (100) may determine the shape of the encoding unit as non-square.

[0151] When the width and height of the encoding unit are different (i.e., when the block shape of the encoding unit is 4Nx2N, 2Nx4N, 4NxN, or Nx4N), the image decoding device (100) may determine the block shape information of the encoding unit to be non-square. When the shape of the encoding unit is non-square, the image decoding device (100) may determine the ratio of the width and height among the block shape information of the encoding unit to be at least one of 1:2, 2:1, 1:4, 4:1, 1:8, or 8:1. In addition, based on the width length and the height length of the encoding unit, the image decoding device (100) may determine whether the encoding unit is horizontal or vertical. In addition, based on at least one of the width length, the height length, or the area of ​​the encoding unit, the image decoding device (100) may determine the size of the encoding unit.

[0152] According to one embodiment, the image decoding device (100) can determine the shape of an encoding unit using block shape information, and can determine the shape into which the encoding unit is divided using information about the split shape mode. That is, the splitting method of the encoding unit indicated by the information about the split shape mode can be determined depending on which block shape the block shape information used by the image decoding device (100) indicates.

[0153] The image decoding device (100) can obtain information about the partition shape mode from the bitstream. However, the present invention is not limited thereto, and the image decoding device (100) and the image encoding device (300) can determine information about a pre-agreed partition shape mode based on block shape information. The image decoding device (100) can determine information about a pre-agreed partition shape mode for a maximum coding unit or a minimum coding unit. For example, the image decoding device (100) can determine information about a partition shape mode for a maximum coding unit as quad split. Additionally, the image decoding device (100) can determine information about a partition shape mode for a minimum coding unit as “no split.” Specifically, the image decoding device (100) can determine the size of the maximum coding unit as 256x256. The image decoding device (100) can determine information about a pre-agreed partition shape mode as quad split. Quad splitting is a splitting shape mode that divides both the width and height of an encoding unit in half. Based on information about the splitting shape mode, the image decoding device (100) can obtain a coding unit of size 128x128 from a maximum coding unit of size 256x256. In addition, the image decoding device (100) can determine the size of the minimum coding unit as 4x4. The image decoding device (100) can obtain information about the splitting shape mode that indicates "not splitting" for the minimum coding unit.

[0154] According to one embodiment, the image decoding device (100) may use block shape information indicating that the current encoding unit is square in shape. For example, the image decoding device (100) may determine whether to not split a square encoding unit, split it vertically, split it horizontally, split it into four encoding units, etc., based on information about the split shape mode. Referring to FIG. 8, when the block shape information of the current encoding unit (800) indicates a square shape, the decoding unit may not split an encoding unit (810a) having the same size as the current encoding unit (800) based on information about the split shape mode indicating that it is not split, or may determine a split encoding unit (810b, 810c, 810d, etc.) based on information about the split shape mode indicating a predetermined splitting method.

[0155] Referring to FIG. 8, the image decoding device (100) may determine two coding units (810b) into which the current coding unit (800) is vertically divided based on information about a split shape mode indicating that the current coding unit (800) is vertically divided according to one embodiment. The image decoding device (100) may determine two coding units (810c) into which the current coding unit (800) is horizontally divided based on information about a split shape mode indicating that the current coding unit (800) is horizontally divided. The image decoding device (100) may determine four coding units (810d) into which the current coding unit (800) is vertically and horizontally divided based on information about a split shape mode indicating that the current coding unit (800) is vertically and horizontally divided. However, the split shapes into which a square coding unit may be split should not be interpreted as being limited to the above-described shapes, and may include various shapes that can be indicated by information about the split shape mode. The predetermined division forms into which a square encoding unit is divided are specifically described below through various embodiments.

[0156] FIG. 9 illustrates a process in which an image decoding device (100) divides a non-square coding unit to determine at least one coding unit according to one embodiment.

[0157] According to one embodiment, the image decoding device (100) may utilize block shape information indicating that the current encoding unit is non-square. The image decoding device (100) may determine whether to not split the current non-square encoding unit or to split it using a predetermined method based on information about the split shape mode. Referring to FIG. 9, when the block shape information of the current encoding unit (900 or 950) indicates a non-square shape, the image decoding device (100) may determine an encoding unit (910 or 960) having the same size as the current encoding unit (900 or 950) based on information about a split shape mode indicating that the encoding unit is not split, or may determine a split encoding unit (920a, 920b, 930a, 930b, 930c, 970a, 970b, 980a, 980b, 980c) based on information about a split shape mode indicating a predetermined splitting method. A predetermined splitting method by which a non-square encoding unit is split will be described in detail through various embodiments below.

[0158] According to one embodiment, the image decoding device (100) may determine a form in which an encoding unit is split using information about a splitting shape mode, and in this case, the information about the splitting shape mode may indicate the number of at least one encoding unit generated by splitting the encoding unit. Referring to FIG. 9, if the information about the splitting shape mode indicates that the current encoding unit (900 or 950) is split into two encoding units, the image decoding device (100) may split the current encoding unit (900 or 950) based on the information about the splitting shape mode to determine two encoding units (920a, 920b, or 970a, 970b) included in the current encoding unit.

[0159] According to one embodiment, when the image decoding device (100) splits a current encoding unit (900 or 950) having a non-square shape based on information about a splitting shape mode, the image decoding device (100) may split the current encoding unit by considering the position of the long side of the non-square current encoding unit (900 or 950). For example, the image decoding device (100) may split the current encoding unit (900 or 950) in a direction that splits the long side of the current encoding unit (900 or 950) by considering the shape of the current encoding unit (900 or 950) to determine a plurality of encoding units.

[0160] According to one embodiment, if the information about the split shape mode indicates that the coding unit is split into an odd number of blocks (tri-split), the image decoding device (100) may determine an odd number of coding units included in the current coding unit (900 or 950). For example, if the information about the split shape mode indicates that the current coding unit (900 or 950) is split into three coding units, the image decoding device (100) may split the current coding unit (900 or 950) into three coding units (930a, 930b, 930c, 980a, 980b, 980c).

[0161] According to one embodiment, the ratio of the width and height of the current encoding unit (900 or 950) may be 4:1 or 1:4. When the ratio of the width and height is 4:1, the block shape information may be in the horizontal direction because the width is longer than the height. When the ratio of the width and height is 1:4, the block shape information may be in the vertical direction because the width is shorter than the height. The image decoding device (100) may determine to split the current encoding unit into an odd number of blocks based on information about the split shape mode. In addition, the image decoding device (100) may determine the splitting direction of the current encoding unit (900 or 950) based on the block shape information of the current encoding unit (900 or 950). For example, if the current encoding unit (900) is in the vertical direction, the image decoding device (100) can divide the current encoding unit (900) in the horizontal direction to determine encoding units (930a, 930b, 930c). Also, if the current encoding unit (950) is in the horizontal direction, the image decoding device (100) can divide the current encoding unit (950) in the vertical direction to determine encoding units (980a, 980b, 980c).

[0162] According to one embodiment, the image decoding device (100) may determine an odd number of coding units included in the current coding unit (900 or 950), and the sizes of the determined coding units may not all be the same. For example, among the determined odd number of coding units (930a, 930b, 930c, 980a, 980b, 980c), the size of a given coding unit (930b or 980b) may have a different size from the other coding units (930a, 930c, 980a, 980c). That is, the encoding units that can be determined by dividing the current encoding unit (900 or 950) may have multiple types of sizes, and in some cases, an odd number of encoding units (930a, 930b, 930c, 980a, 980b, 980c) may each have different sizes.

[0163] According to one embodiment, when information about the split shape mode indicates that the coding unit is split into an odd number of blocks, the image decoding device (100) may determine an odd number of coding units included in the current coding unit (900 or 950), and further, the image decoding device (100) may place a predetermined restriction on at least one coding unit among the odd number of coding units generated by splitting. Referring to FIG. 9, the image decoding device (100) may perform a decoding process for a coding unit (930b, 980b) located in the center among three coding units (930a, 930b, 930c, 980a, 980b, 980c) generated by splitting the current coding unit (900 or 950) differently from the decoding process for other coding units (930a, 930c, 980a, 980c). For example, the image decoding device (100) can restrict the encoding unit (930b, 980b) located in the center from being split any further, unlike other encoding units (930a, 930c, 980a, 980c), or can restrict the splitting to be performed only a predetermined number of times.

[0164] FIG. 10 illustrates a process in which an image decoding device (100) divides an encoding unit based on at least one of block shape information and information about a division shape mode, according to one embodiment.

[0165] According to one embodiment, the image decoding device (100) may determine whether to split or not to split a first coding unit (1000) having a square shape into coding units based on at least one of block shape information and information about a split shape mode. According to one embodiment, when the information about the split shape mode indicates splitting the first coding unit (1000) in the horizontal direction, the image decoding device (100) may split the first coding unit (1000) in the horizontal direction to determine a second coding unit (1010). The first coding unit, the second coding unit, and the third coding unit used according to one embodiment are terms used to understand the relationship before and after splitting between coding units. For example, when the first coding unit is split, the second coding unit may be determined, and when the second coding unit is split, the third coding unit may be determined. In the following, the relationship between the first encoding unit, the second encoding unit, and the third encoding unit used can be understood as following the above-described characteristics.

[0166] According to one embodiment, the image decoding device (100) may determine to split or not split the determined second encoding unit (1010) into encoding units based on at least one of block shape information and information about a split shape mode. Referring to FIG. 10, the image decoding device (100) may split the first encoding unit (1000) based on at least one of block shape information and information about a split shape mode, and may split the determined second encoding unit (1010) of a non-square shape into at least one third encoding unit (1020a, 1020b, 1020c, 1020d, etc.) or may not split the second encoding unit (1010). The image decoding device (100) can obtain at least one of block shape information and information about a split shape mode, and the image decoding device (100) can split a first encoding unit (1000) based on at least one of the obtained block shape information and information about a split shape mode to split a plurality of second encoding units (e.g., 1010) of various shapes, and the second encoding unit (1010) can be split according to the manner in which the first encoding unit (1000) is split based on at least one of the obtained block shape information and information about a split shape mode. According to one embodiment, when the first coding unit (1000) is split into the second coding unit (1010) based on at least one of the block shape information and the information about the split shape mode for the first coding unit (1000), the second coding unit (1010) may also be split into the third coding unit (e.g., 1020a, 1020b, 1020c, 1020d, etc.) based on at least one of the block shape information and the information about the split shape mode for the second coding unit (1010). That is, the coding unit may be split recursively based on at least one of the information about the split shape mode and the block shape information related to each coding unit.Therefore, a square coding unit can be determined from a non-square coding unit, and this square coding unit can be recursively divided to determine a non-square coding unit.

[0167] Referring to FIG. 10, among the odd number of third coding units (1020b, 1020c, 1020d) determined by splitting a non-square second coding unit (1010), a predetermined coding unit (e.g., a coding unit located in the middle or a square coding unit) may be split recursively. According to an embodiment, the square third coding unit (1020b), which is one of the odd number of third coding units (1020b, 1020c, 1020d), may be split horizontally into a plurality of fourth coding units. The non-square fourth coding unit (1030b or 1030d), which is one of the plurality of fourth coding units (1030a, 1030b, 1030c, 1030d), may be split again into a plurality of coding units. For example, the fourth coding unit (1030b or 1030d) having a non-square shape may be further divided into an odd number of coding units. Methods that can be used for recursive division of coding units will be described later through various embodiments.

[0168] According to one embodiment, the image decoding device (100) may split each of the third encoding units (1020a, 1020b, 1020c, 1020d, etc.) into encoding units based on at least one of block shape information and information about a split shape mode. In addition, the image decoding device (100) may determine not to split the second encoding unit (1010) based on at least one of block shape information and information about a split shape mode. According to one embodiment, the image decoding device (100) may split the second encoding unit (1010) having a non-square shape into an odd number of third encoding units (1020b, 1020c, 1020d). The image decoding device (100) may place a predetermined restriction on a predetermined third encoding unit among the odd number of third encoding units (1020b, 1020c, 1020d). For example, the image decoding device (100) can limit the encoding unit (1020c) located in the middle among an odd number of third encoding units (1020b, 1020c, 1020d) to not be split any further or to be split a settable number of times.

[0169] Referring to FIG. 10, the image decoding device (100) may limit the coding unit (1020c) located in the middle among the odd number of third coding units (1020b, 1020c, 1020d) included in the second coding unit (1010) having a non-square shape to not be split any further, or to be split in a predetermined split form (for example, to be split only into four coding units or to be split in a form corresponding to the split form of the second coding unit (1010)), or to be split only a predetermined number of times (for example, to be split only n times, n>0). However, the above limitations on the encoding unit (1020c) located in the middle are merely simple examples and should not be interpreted as being limited to the above-described examples, but should be interpreted as including various limitations that allow the encoding unit (1020c) located in the middle to be decoded differently from other encoding units (1020b, 1020d).

[0170] According to one embodiment, the image decoding device (100) may obtain at least one of block shape information and segmentation shape mode information used to segment the current encoding unit from a predetermined location within the current encoding unit. FIG. 8 illustrates a process in which the image decoding device (100) segments the current encoding unit to determine at least one encoding unit, according to one embodiment.

[0171] The block shape may include 4Nx4N, 4Nx2N, 2Nx4N, 4NxN, or Nx4N, where N may be a positive integer. The block shape information is information indicating at least one of the shape, direction, width, and height ratio or size of the encoding unit.

[0172] The shape of the encoding unit may include square and non-square. When the width and height of the encoding unit are equal (i.e., when the block shape of the encoding unit is 4Nx4N), the image decoding device (100) may determine the block shape information of the encoding unit as square. The image decoding device (100) may determine the shape of the encoding unit as non-square.

[0173] When the width and height of the encoding unit are different (i.e., when the block shape of the encoding unit is 4Nx2N, 2Nx4N, 4NxN, or Nx4N), the image decoding device (100) may determine the block shape information of the encoding unit to be non-square. When the shape of the encoding unit is non-square, the image decoding device (100) may determine the ratio of the width and height among the block shape information of the encoding unit to be at least one of 1:2, 2:1, 1:4, 4:1, 1:8, or 8:1. In addition, based on the width length and the height length of the encoding unit, the image decoding device (100) may determine whether the encoding unit is horizontal or vertical. In addition, based on at least one of the width length, the height length, or the area of ​​the encoding unit, the image decoding device (100) may determine the size of the encoding unit.

[0174] According to one embodiment, the image decoding device (100) can determine the shape of an encoding unit using block shape information, and can determine the shape into which the encoding unit is divided using information about the split shape mode. That is, the splitting method of the encoding unit indicated by the information about the split shape mode can be determined depending on which block shape the block shape information used by the image decoding device (100) indicates.

[0175] The image decoding device (100) can obtain information about the partition shape mode from the bitstream. However, the present invention is not limited thereto, and the image decoding device (100) and the image encoding device (300) can determine information about a pre-agreed partition shape mode based on block shape information. The image decoding device (100) can determine information about a pre-agreed partition shape mode for a maximum coding unit or a minimum coding unit. For example, the image decoding device (100) can determine information about a partition shape mode for a maximum coding unit as quad split. Additionally, the image decoding device (100) can determine information about a partition shape mode for a minimum coding unit as “no split.” Specifically, the image decoding device (100) can determine the size of the maximum coding unit as 256x256. The image decoding device (100) can determine information about a pre-agreed partition shape mode as quad split. Quad splitting is a splitting shape mode that divides both the width and height of an encoding unit in half. Based on information about the splitting shape mode, the image decoding device (100) can obtain a coding unit of size 128x128 from a maximum coding unit of size 256x256. In addition, the image decoding device (100) can determine the size of the minimum coding unit as 4x4. The image decoding device (100) can obtain information about the splitting shape mode that indicates "not splitting" for the minimum coding unit.

[0176] According to one embodiment, the image decoding device (100) may use block shape information indicating that the current encoding unit is square in shape. For example, the image decoding device (100) may determine whether to not split a square encoding unit, split it vertically, split it horizontally, split it into four encoding units, etc., based on information about the split shape mode. Referring to FIG. 8, when the block shape information of the current encoding unit (800) indicates a square shape, the decoding unit may not split an encoding unit (810a) having the same size as the current encoding unit (800) based on information about the split shape mode indicating that it is not split, or may determine a split encoding unit (810b, 810c, 810d, etc.) based on information about the split shape mode indicating a predetermined splitting method.

[0177] Referring to FIG. 8, the image decoding device (100) may determine two coding units (810b) into which the current coding unit (800) is vertically divided based on information about a split shape mode indicating that the current coding unit (800) is vertically divided according to one embodiment. The image decoding device (100) may determine two coding units (810c) into which the current coding unit (800) is horizontally divided based on information about a split shape mode indicating that the current coding unit (800) is horizontally divided. The image decoding device (100) may determine four coding units (810d) into which the current coding unit (800) is vertically and horizontally divided based on information about a split shape mode indicating that the current coding unit (800) is vertically and horizontally divided. However, the split shapes into which a square coding unit may be split should not be interpreted as being limited to the above-described shapes, and may include various shapes that can be indicated by information about the split shape mode. The predetermined division forms into which a square encoding unit is divided are specifically described below through various embodiments.

[0178] FIG. 9 illustrates a process in which an image decoding device (100) divides a non-square coding unit to determine at least one coding unit according to one embodiment.

[0179] According to one embodiment, the image decoding device (100) may utilize block shape information indicating that the current encoding unit is non-square. The image decoding device (100) may determine whether to not split the current non-square encoding unit or to split it using a predetermined method based on information about the split shape mode. Referring to FIG. 9, when the block shape information of the current encoding unit (900 or 950) indicates a non-square shape, the image decoding device (100) may determine an encoding unit (910 or 960) having the same size as the current encoding unit (900 or 950) based on information about a split shape mode indicating that the encoding unit is not split, or may determine a split encoding unit (920a, 920b, 930a, 930b, 930c, 970a, 970b, 980a, 980b, 980c) based on information about a split shape mode indicating a predetermined splitting method. A predetermined splitting method by which a non-square encoding unit is split will be described in detail through various embodiments below.

[0180] According to one embodiment, the image decoding device (100) may determine a form in which an encoding unit is split using information about a splitting shape mode, and in this case, the information about the splitting shape mode may indicate the number of at least one encoding unit generated by splitting the encoding unit. Referring to FIG. 9, if the information about the splitting shape mode indicates that the current encoding unit (900 or 950) is split into two encoding units, the image decoding device (100) may split the current encoding unit (900 or 950) based on the information about the splitting shape mode to determine two encoding units (920a, 920b, or 970a, 970b) included in the current encoding unit.

[0181] According to one embodiment, when the image decoding device (100) splits a current encoding unit (900 or 950) having a non-square shape based on information about a splitting shape mode, the image decoding device (100) may split the current encoding unit by considering the position of the long side of the non-square current encoding unit (900 or 950). For example, the image decoding device (100) may split the current encoding unit (900 or 950) in a direction that splits the long side of the current encoding unit (900 or 950) by considering the shape of the current encoding unit (900 or 950) to determine a plurality of encoding units.

[0182] According to one embodiment, if the information about the split shape mode indicates that the coding unit is split into an odd number of blocks (tri-split), the image decoding device (100) may determine an odd number of coding units included in the current coding unit (900 or 950). For example, if the information about the split shape mode indicates that the current coding unit (900 or 950) is split into three coding units, the image decoding device (100) may split the current coding unit (900 or 950) into three coding units (930a, 930b, 930c, 980a, 980b, 980c).

[0183] According to one embodiment, the ratio of the width and height of the current encoding unit (900 or 950) may be 4:1 or 1:4. When the ratio of the width and height is 4:1, the block shape information may be in the horizontal direction because the width is longer than the height. When the ratio of the width and height is 1:4, the block shape information may be in the vertical direction because the width is shorter than the height. The image decoding device (100) may determine to split the current encoding unit into an odd number of blocks based on information about the split shape mode. In addition, the image decoding device (100) may determine the splitting direction of the current encoding unit (900 or 950) based on the block shape information of the current encoding unit (900 or 950). For example, if the current encoding unit (900) is in the vertical direction, the image decoding device (100) can divide the current encoding unit (900) in the horizontal direction to determine encoding units (930a, 930b, 930c). Also, if the current encoding unit (950) is in the horizontal direction, the image decoding device (100) can divide the current encoding unit (950) in the vertical direction to determine encoding units (980a, 980b, 980c).

[0184] According to one embodiment, the image decoding device (100) may determine an odd number of coding units included in the current coding unit (900 or 950), and the sizes of the determined coding units may not all be the same. For example, among the determined odd number of coding units (930a, 930b, 930c, 980a, 980b, 980c), the size of a given coding unit (930b or 980b) may have a different size from the other coding units (930a, 930c, 980a, 980c). That is, the encoding units that can be determined by dividing the current encoding unit (900 or 950) may have multiple types of sizes, and in some cases, an odd number of encoding units (930a, 930b, 930c, 980a, 980b, 980c) may each have different sizes.

[0185] According to one embodiment, when information about the split shape mode indicates that the coding unit is split into an odd number of blocks, the image decoding device (100) may determine an odd number of coding units included in the current coding unit (900 or 950), and further, the image decoding device (100) may place a predetermined restriction on at least one coding unit among the odd number of coding units generated by splitting. Referring to FIG. 9, the image decoding device (100) may perform a decoding process for a coding unit (930b, 980b) located in the center among three coding units (930a, 930b, 930c, 980a, 980b, 980c) generated by splitting the current coding unit (900 or 950) differently from the decoding process for other coding units (930a, 930c, 980a, 980c). For example, the image decoding device (100) can restrict the encoding unit (930b, 980b) located in the center from being split any further, unlike other encoding units (930a, 930c, 980a, 980c), or can restrict the splitting to be performed only a predetermined number of times.

[0186] FIG. 10 illustrates a process in which an image decoding device (100) divides an encoding unit based on at least one of block shape information and information about a division shape mode, according to one embodiment.

[0187] According to one embodiment, the image decoding device (100) may determine whether to split or not to split a first coding unit (1000) having a square shape into coding units based on at least one of block shape information and information about a split shape mode. According to one embodiment, when the information about the split shape mode indicates splitting the first coding unit (1000) in the horizontal direction, the image decoding device (100) may split the first coding unit (1000) in the horizontal direction to determine a second coding unit (1010). The first coding unit, the second coding unit, and the third coding unit used according to one embodiment are terms used to understand the relationship before and after splitting between coding units. For example, when the first coding unit is split, the second coding unit may be determined, and when the second coding unit is split, the third coding unit may be determined. In the following, the relationship between the first encoding unit, the second encoding unit, and the third encoding unit used can be understood as following the above-described characteristics.

[0188] According to one embodiment, the image decoding device (100) may determine to split or not split the determined second encoding unit (1010) into encoding units based on at least one of block shape information and information about a split shape mode. Referring to FIG. 10, the image decoding device (100) may split the first encoding unit (1000) based on at least one of block shape information and information about a split shape mode, and may split the determined second encoding unit (1010) of a non-square shape into at least one third encoding unit (1020a, 1020b, 1020c, 1020d, etc.) or may not split the second encoding unit (1010). The image decoding device (100) can obtain at least one of block shape information and information about a split shape mode, and the image decoding device (100) can split a first encoding unit (1000) based on at least one of the obtained block shape information and information about a split shape mode to split a plurality of second encoding units (e.g., 1010) of various shapes, and the second encoding unit (1010) can be split according to the manner in which the first encoding unit (1000) is split based on at least one of the obtained block shape information and information about a split shape mode. According to one embodiment, when the first coding unit (1000) is split into the second coding unit (1010) based on at least one of the block shape information and the information about the split shape mode for the first coding unit (1000), the second coding unit (1010) may also be split into the third coding unit (e.g., 1020a, 1020b, 1020c, 1020d, etc.) based on at least one of the block shape information and the information about the split shape mode for the second coding unit (1010). That is, the coding unit may be split recursively based on at least one of the information about the split shape mode and the block shape information related to each coding unit.Therefore, a square coding unit can be determined from a non-square coding unit, and this square coding unit can be recursively divided to determine a non-square coding unit.

[0189] Referring to FIG. 10, among the odd number of third coding units (1020b, 1020c, 1020d) determined by splitting a non-square second coding unit (1010), a predetermined coding unit (e.g., a coding unit located in the middle or a square coding unit) may be split recursively. According to an embodiment, the square third coding unit (1020b), which is one of the odd number of third coding units (1020b, 1020c, 1020d), may be split horizontally into a plurality of fourth coding units. The non-square fourth coding unit (1030b or 1030d), which is one of the plurality of fourth coding units (1030a, 1030b, 1030c, 1030d), may be split again into a plurality of coding units. For example, the fourth coding unit (1030b or 1030d) having a non-square shape may be further divided into an odd number of coding units. Methods that can be used for recursive division of coding units will be described later through various embodiments.

[0190] According to one embodiment, the image decoding device (100) may split each of the third encoding units (1020a, 1020b, 1020c, 1020d, etc.) into encoding units based on at least one of block shape information and information about a split shape mode. In addition, the image decoding device (100) may determine not to split the second encoding unit (1010) based on at least one of block shape information and information about a split shape mode. According to one embodiment, the image decoding device (100) may split the second encoding unit (1010) having a non-square shape into an odd number of third encoding units (1020b, 1020c, 1020d). The image decoding device (100) may place a predetermined restriction on a predetermined third encoding unit among the odd number of third encoding units (1020b, 1020c, 1020d). For example, the image decoding device (100) can limit the encoding unit (1020c) located in the middle among an odd number of third encoding units (1020b, 1020c, 1020d) to not be split any further or to be split a settable number of times.

[0191] Referring to FIG. 10, the image decoding device (100) may limit the coding unit (1020c) located in the middle among the odd number of third coding units (1020b, 1020c, 1020d) included in the second coding unit (1010) having a non-square shape to not be split any further, or to be split in a predetermined split form (for example, to be split only into four coding units or to be split in a form corresponding to the split form of the second coding unit (1010)), or to be split only a predetermined number of times (for example, to be split only n times, n>0). However, the above limitations on the encoding unit (1020c) located in the middle are merely simple examples and should not be interpreted as being limited to the above-described examples, but should be interpreted as including various limitations that allow the encoding unit (1020c) located in the middle to be decoded differently from other encoding units (1020b, 1020d).

[0192] According to one embodiment, the image decoding device (100) can obtain at least one of block shape information and segmentation shape mode information used to segment the current encoding unit from a predetermined location within the current encoding unit.

[0193] FIG. 11 illustrates a method for an image decoding device (100) to determine a predetermined encoding unit among an odd number of encoding units according to one embodiment.

[0194] Referring to FIG. 11, at least one of the block shape information and the information on the partition shape mode of the current encoding unit (1100, 1150) can be obtained from a sample at a predetermined position among a plurality of samples included in the current encoding unit (1100, 1150) (for example, a sample (1140, 1190) located in the center). However, the predetermined position within the current encoding unit (1100) from which at least one of the block shape information and the information on the partition shape mode can be obtained should not be interpreted as being limited to the center position illustrated in FIG. 11, and should be interpreted as including various positions (for example, top, bottom, left, right, top left, bottom left, top right, or bottom right, etc.) that can be included within the current encoding unit (1100). The image decoding device (100) can obtain at least one of block shape information and segmentation shape mode information obtained from a predetermined location, and determine whether to segment or not segment the current encoding unit into encoding units of various shapes and sizes.

[0195] According to one embodiment, the image decoding device (100) may select one of the coding units when the current coding unit is divided into a predetermined number of coding units. Various methods may be used to select one of the multiple coding units, and descriptions of such methods will be provided later through various embodiments.

[0196] According to one embodiment, the image decoding device (100) can divide the current encoding unit into a plurality of encoding units and determine an encoding unit at a predetermined position.

[0197] According to one embodiment, the image decoding device (100) may use information indicating the positions of each of the odd-numbered encoding units to determine an encoding unit located in the middle of the odd-numbered encoding units. Referring to FIG. 11, the image decoding device (100) may divide the current encoding unit (1100) or the current encoding unit (1150) to determine odd-numbered encoding units (1120a, 1120b, 1120c) or odd-numbered encoding units (1160a, 1160b, 1160c). The image decoding device (100) can determine the center coding unit (1120b) or the center coding unit (1160b) by using information about the positions of an odd number of coding units (1120a, 1120b, 1120c) or an odd number of coding units (1160a, 1160b, 1160c). For example, the image decoding device (100) can determine the coding unit (1120b) located in the center by determining the positions of the coding units (1120a, 1120b, 1120c) based on information indicating the positions of predetermined samples included in the coding units (1120a, 1120b, 1120c). Specifically, the image decoding device (100) can determine the position of the encoding units (1120a, 1120b, 1120c) based on information indicating the position of the sample (1130a, 1130b, 1130c) at the upper left of the encoding units (1120a, 1120b, 1120c), thereby determining the encoding unit (1120b) located in the center.

[0198] According to one embodiment, information indicating the position of the upper left sample (1130a, 1130b, 1130c) included in each of the encoding units (1120a, 1120b, 1120c) may include information about the position or coordinates of the encoding units (1120a, 1120b, 1120c) within the picture. According to one embodiment, information indicating the positions of the upper left samples (1130a, 1130b, 1130c) included in each of the coding units (1120a, 1120b, 1120c) may include information indicating the width or height of the coding units (1120a, 1120b, 1120c) included in the current coding unit (1100), and the width or height may correspond to information indicating the difference between the coordinates of the coding units (1120a, 1120b, 1120c) within the picture. That is, the image decoding apparatus (100) may determine the coding unit (1120b) located in the center by directly using information about the positions or coordinates of the coding units (1120a, 1120b, 1120c) within the picture or by using information about the width or height of the coding unit corresponding to the difference between the coordinates.

[0199] According to one embodiment, information indicating the position of the sample (1130a) at the upper left of the upper encoding unit (1120a) may represent (xa, ya) coordinates, information indicating the position of the sample (1030b) at the upper left of the middle encoding unit (1120b) may represent (xb, yb) coordinates, and information indicating the position of the sample (1130c) at the upper left of the lower encoding unit (1120c) may represent (xc, yc) coordinates. The image decoding device (100) may determine the middle encoding unit (1120b) using the coordinates of the samples (1130a, 1130b, 1130c) at the upper left included in the encoding units (1120a, 1120b, 1120c), respectively. For example, when the coordinates of the samples (1130a, 1130b, 1130c) in the upper left are sorted in ascending or descending order, the encoding unit (1120b) including the coordinates (xb, yb) of the sample (1130b) located in the center can be determined as the encoding unit located in the center among the encoding units (1120a, 1120b, 1120c) determined by dividing the current encoding unit (1100). However, the coordinates indicating the position of the upper left samples (1130a, 1130b, 1130c) can indicate coordinates indicating the absolute position within the picture, and further, based on the position of the upper left sample (1130a) of the upper left coding unit (1120a), the (dxb, dyb) coordinates, which are information indicating the relative position of the sample (1130b) of the upper left of the middle coding unit (1120b), and the (dxc, dyc) coordinates, which are information indicating the relative position of the sample (1130c) of the upper left of the lower coding unit (1120c), can be used. In addition, the method of determining the coding unit of a given position by using the coordinates of the corresponding sample as information indicating the position of the sample included in the coding unit should not be interpreted as being limited to the above-described method, but should be interpreted as various arithmetic methods that can utilize the coordinates of the sample.

[0200] According to one embodiment, the image decoding device (100) can divide the current encoding unit (1100) into a plurality of encoding units (1120a, 1120b, 1120c), and select an encoding unit among the encoding units (1120a, 1120b, 1120c) according to a predetermined criterion. For example, the image decoding device (100) can select an encoding unit (1120b) having a different size among the encoding units (1120a, 1120b, 1120c).

[0201] According to one embodiment, the image decoding device (100) may determine the width or height of each of the encoding units (1120a, 1120b, 1120c) by using the (xa, ya) coordinate, which is information indicating the position of the sample (1130a) at the upper left of the upper encoding unit (1120a), the (xb, yb) coordinate, which is information indicating the position of the sample (1130b) at the upper left of the middle encoding unit (1120b), and the (xc, yc) coordinate, which is information indicating the position of the sample (1130c) at the upper left of the lower encoding unit (1120c). The image decoding device (100) can determine the size of each of the encoding units (1120a, 1120b, 1120c) using coordinates (xa, ya), (xb, yb), (xc, yc) indicating the positions of the encoding units (1120a, 1120b, 1120c). According to one embodiment, the image decoding device (100) can determine the width of the upper encoding unit (1120a) as the width of the current encoding unit (1100). The image decoding device (100) can determine the height of the upper encoding unit (1120a) as yb-ya. According to one embodiment, the image decoding device (100) can determine the width of the middle encoding unit (1120b) as the width of the current encoding unit (1100). The image decoding device (100) may determine the height of the middle encoding unit (1120b) as yc-yb. According to one embodiment, the image decoding device (100) may determine the width or height of the lower encoding unit using the width or height of the current encoding unit and the width and height of the upper encoding unit (1120a) and the middle encoding unit (1120b). The image decoding device (100) may determine an encoding unit having a different size from other encoding units based on the width and height of the determined encoding units (1120a, 1120b, 1120c).Referring to FIG. 11, the image decoding device (100) can determine the middle encoding unit (1120b) having a different size from the sizes of the upper encoding unit (1120a) and the lower encoding unit (1120c) as the encoding unit of a predetermined position. However, the process by which the image decoding device (100) described above determines the encoding unit having a different size from other encoding units is merely an embodiment of determining the encoding unit of a predetermined position using the size of the encoding unit determined based on sample coordinates, and therefore, various processes of determining the encoding unit of a predetermined position by comparing the sizes of the encoding units determined according to predetermined sample coordinates can be used.

[0202] The image decoding device (100) can determine the width or height of each of the encoding units (1160a, 1160b, 1160c) by using the (xd, yd) coordinate, which is information indicating the position of the sample (1170a) at the upper left of the left encoding unit (1160a), the (xe, ye) coordinate, which is information indicating the position of the sample (1170b) at the upper left of the middle encoding unit (1160b), and the (xf, yf) coordinate, which is information indicating the position of the sample (1170c) at the upper left of the right encoding unit (1160c). The image decoding device (100) can determine the size of each of the encoding units (1160a, 1160b, 1160c) using coordinates (xd, yd), (xe, ye), (xf, yf) indicating the positions of the encoding units (1160a, 1160b, 1160c).

[0203] According to one embodiment, the image decoding device (100) may determine the width of the left coding unit (1160a) as xe-xd. The image decoding device (100) may determine the height of the left coding unit (1160a) as the height of the current coding unit (1150). According to one embodiment, the image decoding device (100) may determine the width of the middle coding unit (1160b) as xf-xe. The image decoding device (100) may determine the height of the middle coding unit (1160b) as the height of the current coding unit (1100). According to one embodiment, the image decoding device (100) may determine the width or height of the right coding unit (1160c) using the width or height of the current coding unit (1150) and the widths and heights of the left coding unit (1160a) and the middle coding unit (1160b). The image decoding device (100) can determine an encoding unit having a different size from other encoding units based on the width and height of the determined encoding units (1160a, 1160b, 1160c). Referring to FIG. 11, the image decoding device (100) can determine a middle encoding unit (1160b) having a different size from the sizes of the left encoding unit (1160a) and the right encoding unit (1160c) as an encoding unit at a predetermined position. However, the process of the image decoding device (100) described above determining an encoding unit having a different size from other encoding units is merely an embodiment of determining an encoding unit at a predetermined position using the size of an encoding unit determined based on sample coordinates, and therefore, various processes of determining an encoding unit at a predetermined position by comparing the sizes of encoding units determined according to predetermined sample coordinates can be used.

[0204] However, the location of the sample considered for determining the location of the encoding unit should not be interpreted as being limited to the upper left corner described above, and it can be interpreted that information on the location of any sample included in the encoding unit can be used.

[0205] According to one embodiment, the image decoding device (100) may select an encoding unit at a predetermined position from among an odd number of encoding units determined by splitting the current encoding unit, taking into consideration the shape of the current encoding unit. For example, if the current encoding unit has a non-square shape in which the width is longer than the height, the image decoding device (100) may determine an encoding unit at a predetermined position in the horizontal direction. That is, the image decoding device (100) may determine one of the encoding units whose positions vary in the horizontal direction and place a restriction on the corresponding encoding unit. If the current encoding unit has a non-square shape in which the height is longer than the width, the image decoding device (100) may determine an encoding unit at a predetermined position in the vertical direction. That is, the image decoding device (100) may determine one of the encoding units whose positions vary in the vertical direction and place a restriction on the corresponding encoding unit.

[0206] According to one embodiment, the image decoding device (100) may use information indicating the positions of each of the even-numbered coding units to determine the coding unit at a predetermined position among the even-numbered coding units. The image decoding device (100) may determine the even-numbered coding units by splitting the current coding unit (binary splitting) and may determine the coding unit at a predetermined position using information about the positions of the even-numbered coding units. A specific process for this may be a process corresponding to the process of determining the coding unit at a predetermined position (for example, the center position) among the odd-numbered coding units described above in FIG. 11, and thus will be omitted.

[0207] According to one embodiment, when a current encoding unit having a non-square shape is split into a plurality of encoding units, predetermined information about the encoding unit at a predetermined position may be used during the splitting process to determine an encoding unit at a predetermined position among the plurality of encoding units. For example, the image decoding device (100) may use at least one of block shape information and split shape mode information stored in a sample included in a middle encoding unit during the splitting process to determine an encoding unit located in the middle among the encoding units into which the current encoding unit is split.

[0208] Referring to FIG. 11, the image decoding device (100) can split a current encoding unit (1100) into a plurality of encoding units (1120a, 1120b, 1120c) based on at least one of block shape information and information on a split shape mode, and can determine an encoding unit (1120b) located in the middle among the plurality of encoding units (1120a, 1120b, 1120c). Furthermore, the image decoding device (100) can determine an encoding unit (1120b) located in the middle by considering a position where at least one of block shape information and information on a split shape mode is acquired. That is, at least one of the block shape information and the information about the split shape mode of the current encoding unit (1100) can be obtained from a sample (1140) located in the center of the current encoding unit (1100), and when the current encoding unit (1100) is split into a plurality of encoding units (1120a, 1120b, 1120c) based on at least one of the block shape information and the information about the split shape mode, the encoding unit (1120b) including the sample (1140) can be determined as the encoding unit located in the center. However, the information used to determine the encoding unit located in the center should not be interpreted as being limited to at least one of the block shape information and the information about the split shape mode, and various types of information can be used in the process of determining the encoding unit located in the center.

[0209] According to one embodiment, predetermined information for identifying a coding unit at a predetermined position may be obtained from a predetermined sample included in the coding unit to be determined. Referring to FIG. 11, the image decoding device (100) may use at least one of block shape information and information on a split shape mode obtained from a sample at a predetermined position within the current coding unit (1100) (e.g., a sample located at the center of the current coding unit (1100)) to determine a coding unit at a predetermined position (e.g., a coding unit located at the center of the coding unit divided into multiple pieces) among a plurality of coding units (1120a, 1120b, 1120c) determined by splitting the current coding unit (1100). That is, the image decoding device (100) can determine the sample at the predetermined position by considering the block shape of the current encoding unit (1100), and the image decoding device (100) can determine an encoding unit (1120b) that includes a sample from which predetermined information (for example, at least one of block shape information and information on a division shape mode) can be obtained, among a plurality of encoding units (1120a, 1120b, 1120c) determined by splitting the current encoding unit (1100), and can set a predetermined restriction. Referring to FIG. 11, according to an embodiment, the image decoding device (100) can determine a sample (1140) located at the center of the current encoding unit (1100) as a sample from which predetermined information can be obtained, and the image decoding device (100) can set a predetermined restriction on the encoding unit (1120b) that includes this sample (1140) during the decoding process. However, the location of the sample from which certain information can be obtained should not be interpreted as being limited to the above-described location, but may be interpreted as samples at any location included in the encoding unit (1120b) to be determined in order to set a limitation.

[0210] According to one embodiment, the position of a sample from which predetermined information can be obtained may be determined according to the shape of the current encoding unit (1100). According to one embodiment, the block shape information may determine whether the shape of the current encoding unit is square or non-square, and may determine the position of a sample from which predetermined information can be obtained according to the shape. For example, the image decoding apparatus (100) may determine a sample located on a boundary that divides at least one of the width and height of the current encoding unit in half as a sample from which predetermined information can be obtained, using at least one of information about the width and information about the height of the current encoding unit. As another example, when the block shape information related to the current encoding unit indicates that the shape is non-square, the image decoding apparatus (100) may determine one of the samples adjacent to the boundary that divides the long side of the current encoding unit in half as a sample from which predetermined information can be obtained.

[0211] According to one embodiment, when the image decoding device (100) divides the current encoding unit into a plurality of encoding units, in order to determine an encoding unit at a predetermined position among the plurality of encoding units, at least one of block shape information and information about a split shape mode may be used. According to one embodiment, the image decoding device (100) may obtain at least one of the block shape information and the information about the split shape mode from a sample at a predetermined position included in the encoding unit, and the image decoding device (100) may divide the plurality of encoding units generated by splitting the current encoding unit by using at least one of the information about the split shape mode and the block shape information obtained from a sample at a predetermined position included in each of the plurality of encoding units. That is, the encoding unit may be recursively divided by using at least one of the block shape information and the information about the split shape mode obtained from a sample at a predetermined position included in each of the encoding units. Since the recursive division process of the encoding unit has been described above with reference to FIG. 10, a detailed description thereof will be omitted.

[0212] According to one embodiment, the image decoding device (100) can divide a current encoding unit to determine at least one encoding unit, and can determine the order in which the at least one encoding unit is decoded according to a predetermined block (e.g., the current encoding unit).

[0213] FIG. 12 illustrates the order in which multiple encoding units are processed when the image decoding device (100) determines multiple encoding units by dividing the current encoding unit according to one embodiment.

[0214] According to one embodiment, the image decoding device (100) may determine second encoding units (1210a, 1210b) by vertically splitting the first encoding unit (1200) according to block shape information and information about the split shape mode, determine second encoding units (1230a, 1230b) by horizontally splitting the first encoding unit (1200), or determine second encoding units (1250a, 1250b, 1250c, 1250d) by vertically and horizontally splitting the first encoding unit (1200).

[0215] Referring to FIG. 12, the image decoding device (100) can determine the order in which the second encoding units (1210a, 1210b) determined by vertically dividing the first encoding unit (1200) are processed in the horizontal direction (1210c). The image decoding device (100) can determine the order in which the second encoding units (1230a, 1230b) determined by horizontally dividing the first encoding unit (1200) are processed in the vertical direction (1230c). The image decoding device (100) can determine the second encoding units (1250a, 1250b, 1250c, 1250d) determined by dividing the first encoding unit (1200) in the vertical and horizontal directions according to a predetermined order (e.g., raster scan order (1250e), etc.) in which encoding units located in one row are processed and then encoding units located in the next row are processed.

[0216] According to one embodiment, the image decoding device (100) can recursively split the encoding units. Referring to FIG. 12, the image decoding device (100) can split the first encoding unit (1200) to determine a plurality of encoding units (1210a, 1210b, 1230a, 1230b, 1250a, 1250b, 1250c, 1250d), and can recursively split each of the determined plurality of encoding units (1210a, 1210b, 1230a, 1230b, 1250a, 1250b, 1250c, 1250d). A method for splitting a plurality of coding units (1210a, 1210b, 1230a, 1230b, 1250a, 1250b, 1250c, 1250d) may be a method corresponding to a method for splitting the first coding unit (1200). Accordingly, the plurality of coding units (1210a, 1210b, 1230a, 1230b, 1250a, 1250b, 1250c, 1250d) may each be independently split into a plurality of coding units. Referring to FIG. 12, the image decoding device (100) can determine second encoding units (1210a, 1210b) by vertically dividing the first encoding unit (1200), and further can determine to independently divide or not divide each of the second encoding units (1210a, 1210b).

[0217] According to one embodiment, the image decoding device (100) may horizontally divide the second encoding unit (1210a) on the left into third encoding units (1220a, 1220b), and may not divide the second encoding unit (1210b) on the right.

[0218] According to one embodiment, the processing order of the coding units may be determined based on the splitting process of the coding units. In other words, the processing order of the split coding units may be determined based on the processing order of the coding units immediately before splitting. The image decoding apparatus (100) may determine the processing order of the third coding units (1220a, 1220b) determined by splitting the second coding unit (1210a) on the left, independently from the second coding unit (1210b) on the right. Since the second coding unit (1210a) on the left is split horizontally and the third coding units (1220a, 1220b) are determined, the third coding units (1220a, 1220b) may be processed in the vertical direction (1220c). In addition, since the order in which the second encoding unit (1210a) on the left and the second encoding unit (1210b) on the right are processed corresponds to the horizontal direction (1210c), the right encoding unit (1210b) can be processed after the third encoding units (1220a, 1220b) included in the second encoding unit (1210a) on the left are processed in the vertical direction (1220c). Since the above-described content is intended to explain the process in which the processing order of the encoding units is determined according to the encoding units before splitting, it should not be interpreted as being limited to the above-described embodiment, but should be interpreted as being used in various ways in which encoding units that are split and determined in various forms can be independently processed according to a predetermined order.

[0219] FIG. 13 illustrates a process for determining that a current encoding unit is divided into an odd number of encoding units when the encoding units cannot be processed in a predetermined order, according to one embodiment of the present invention.

[0220] According to one embodiment, the image decoding device (100) may determine that the current encoding unit is split into an odd number of encoding units based on the acquired block shape information and information about the split shape mode. Referring to FIG. 13, a first encoding unit (1300) having a square shape may be split into second encoding units (1310a, 1310b) having a non-square shape, and the second encoding units (1310a, 1310b) may each be independently split into third encoding units (1320a, 1320b, 1320c, 1320d, 1320e). According to one embodiment, the image decoding device (100) may determine a plurality of third encoding units (1320a, 1320b) by horizontally dividing the left encoding unit (1310a) among the second encoding units, and may divide the right encoding unit (1310b) into an odd number of third encoding units (1320c, 1320d, 1320e).

[0221] According to one embodiment, the image decoding device (100) can determine whether there is an odd number of split encoding units by determining whether the third encoding units (1320a, 1320b, 1320c, 1320d, 1320e) can be processed in a predetermined order. Referring to FIG. 13, the image decoding device (100) can determine the third encoding units (1320a, 1320b, 1320c, 1320d, 1320e) by recursively splitting the first encoding unit (1300). The image decoding device (100) can determine whether the first encoding unit (1300), the second encoding unit (1310a, 1310b), or the third encoding unit (1320a, 1320b, 1320c, 1320d, 1320e) is split into an odd number of encoding units among the splitting forms based on at least one of the block shape information and the splitting shape mode information. For example, the encoding unit located on the right side among the second encoding units (1310a, 1310b) can be split into an odd number of third encoding units (1320c, 1320d, 1320e). The order in which the plurality of encoding units included in the first encoding unit (1300) are processed can be a predetermined order (e.g., z-scan order (1330)), and the image decoding device (100) can determine whether the third encoding unit (1320c, 1320d, 1320e) determined by dividing the second encoding unit (1310b) on the right into an odd number of parts satisfies a condition in which the third encoding unit can be processed according to the predetermined order.

[0222] According to one embodiment, the image decoding device (100) may determine whether the third encoding units (1320a, 1320b, 1320c, 1320d, 1320e) included in the first encoding unit (1300) satisfy a condition that they can be processed in a predetermined order, and the condition is related to whether at least one of the width and height of the second encoding unit (1310a, 1310b) is split in half according to the boundary of the third encoding unit (1320a, 1320b, 1320c, 1320d, 1320e). For example, the third encoding unit (1320a, 1320b) determined by splitting the height of the left second encoding unit (1310a) of a non-square shape in half may satisfy the condition. Since the boundaries of the third coding units (1320c, 1320d, 1320e) determined by dividing the right second coding unit (1310b) into three coding units do not divide the width or height of the right second coding unit (1310b) in half, it may be determined that the third coding units (1320c, 1320d, 1320e) do not satisfy the condition. In the case where this condition is not satisfied, the image decoding device (100) may determine that there is a disconnection in the scanning order, and may determine that the right second coding unit (1310b) is divided into an odd number of coding units based on the determination result. According to an embodiment, the image decoding device (100) may place a predetermined restriction on a coding unit at a predetermined position among the divided coding units when the coding unit is divided into an odd number of coding units. Since the contents of such restrictions or predetermined positions have been described above through various embodiments, a detailed description thereof will be omitted.

[0223] FIG. 14 illustrates a process in which an image decoding device (100) divides a first encoding unit (1400) to determine at least one encoding unit according to one embodiment.

[0224] According to one embodiment, the image decoding device (100) may split the first coding unit (1400) based on at least one of the block shape information and the information on the split shape mode obtained through the receiving unit. The first coding unit (1400) having a square shape may be split into four coding units having a square shape or may be split into a plurality of coding units having a non-square shape. For example, referring to FIG. 14, when the block shape information indicates that the first coding unit (1400) is square and the information on the split shape mode indicates that the first coding unit (1400) is split into coding units of a non-square shape, the image decoding device (100) may split the first coding unit (1400) into a plurality of non-square coding units. Specifically, when information about the split shape mode indicates that the first encoding unit (1400) is split in the horizontal direction or the vertical direction to determine an odd number of encoding units, the image decoding device (100) can split the first encoding unit (1400) having a square shape into second encoding units (1410a, 1410b, 1410c) determined by splitting them in the vertical direction into an odd number of encoding units or second encoding units (1420a, 1420b, 1420c) determined by splitting them in the horizontal direction.

[0225] According to one embodiment, the image decoding device (100) can determine whether the second encoding units (1410a, 1410b, 1410c, 1420a, 1420b, 1420c) included in the first encoding unit (1400) satisfy a condition that they can be processed in a predetermined order, and the condition is related to whether at least one of the width and height of the first encoding unit (1400) is split in half according to the boundary of the second encoding units (1410a, 1410b, 1410c, 1420a, 1420b, 1420c). Referring to FIG. 14, since the boundaries of the second coding units (1410a, 1410b, 1410c) determined by vertically dividing the first coding unit (1400) in a square shape do not divide the width of the first coding unit (1400) in half, it may be determined that the first coding unit (1400) does not satisfy the condition that it can be processed in a predetermined order. In addition, since the boundaries of the second coding units (1420a, 1420b, 1420c) determined by horizontally dividing the first coding unit (1400) in a square shape do not divide the width of the first coding unit (1400) in half, it may be determined that the first coding unit (1400) does not satisfy the condition that it can be processed in a predetermined order. If such a condition is not satisfied, the image decoding device (100) may determine that the scan order is disconnected, and based on the determination result, may determine that the first encoding unit (1400) is divided into an odd number of encoding units. According to one embodiment, the image decoding device (100) may place a predetermined restriction on an encoding unit at a predetermined position among the divided encoding units when the encoding unit is divided into an odd number of encoding units. Since the contents of such restrictions or predetermined positions, etc. have been described above through various embodiments, a detailed description thereof will be omitted.

[0226] According to one embodiment, the image decoding device (100) can divide the first encoding unit to determine encoding units of various shapes.

[0227] Referring to FIG. 14, the image decoding device (100) can divide the first encoding unit (1400) having a square shape and the first encoding unit (1430 or 1450) having a non-square shape into encoding units of various shapes.

[0228] FIG. 15 illustrates that, according to one embodiment, a video decoding device (100) limits the shapes into which a second encoding unit can be divided when a non-square shape of a second encoding unit determined by dividing a first encoding unit (1500) satisfies a predetermined condition.

[0229] According to one embodiment, the image decoding device (100) may determine to split a first coding unit (1500) having a square shape into second coding units (1510a, 1510b, 1520a, 1520b) having a non-square shape based on at least one of block shape information and information about a split shape mode obtained through the receiving unit. The second coding units (1510a, 1510b, 1520a, 1520b) may be split independently. Accordingly, the image decoding device (100) may determine to split or not to split into a plurality of coding units based on at least one of block shape information and information about a split shape mode related to each of the second coding units (1510a, 1510b, 1520a, 1520b). According to one embodiment, the image decoding device (100) may determine third encoding units (1512a, 1512b) by horizontally dividing the left second encoding unit (1510a) having a non-square shape determined by vertically dividing the first encoding unit (1500). However, when the image decoding device (100) horizontally divides the left second encoding unit (1510a), the right second encoding unit (1510b) may be restricted from being horizontally divided in the same direction as the direction in which the left second encoding unit (1510a) is divided. If the second encoding unit on the right (1510b) is split in the same direction to determine the third encoding unit (1514a, 1514b), the second encoding unit on the left (1510a) and the second encoding unit on the right (1510b) can be independently split in the horizontal direction to determine the third encoding unit (1512a, 1512b, 1514a, 1514b).However, this is the same result as the image decoding device (100) dividing the first encoding unit (1500) into four square-shaped second encoding units (1530a, 1530b, 1530c, 1530d) based on at least one of the block shape information and the information on the split shape mode, which may be inefficient in terms of image decoding.

[0230] According to one embodiment, the image decoding device (100) may determine third coding units (1522a, 1522b, 1524a, 1524b) by vertically dividing a second coding unit (1520a or 1520b) having a non-square shape determined by dividing a first coding unit (1500) in a horizontal direction. However, when the image decoding device (100) vertically divides one of the second coding units (e.g., the upper second coding unit (1520a)), the other second coding units (e.g., the lower coding unit (1520b)) may be restricted from being vertically divided in the same direction as the direction in which the upper second coding unit (1520a) is divided, for the reasons described above.

[0231] FIG. 16 illustrates a process in which an image decoding device (100) divides a square-shaped encoding unit when information about a split shape mode cannot indicate division into four square-shaped encoding units according to one embodiment.

[0232] According to one embodiment, the image decoding device (100) may split the first encoding unit (1600) based on at least one of block shape information and information about a split shape mode to determine second encoding units (1610a, 1610b, 1620a, 1620b, etc.). The information about the split shape mode may include information about various shapes into which the encoding unit may be split, but the information about various shapes may not include information for splitting the encoding unit into four encoding units having a square shape. According to this information about the split shape mode, the image decoding device (100) cannot split the first encoding unit (1600) having a square shape into four second encoding units having a square shape (1630a, 1630b, 1630c, 1630d). Based on information about the segmentation shape mode, the image decoding device (100) can determine a second encoding unit (1610a, 1610b, 1620a, 1620b, etc.) of a non-square shape.

[0233] According to one embodiment, the image decoding device (100) can independently split the second encoding units (1610a, 1610b, 1620a, 1620b, etc.) having a non-square shape. Each of the second encoding units (1610a, 1610b, 1620a, 1620b, etc.) can be split in a predetermined order using a recursive method, which may be a splitting method corresponding to a method in which the first encoding unit (1600) is split based on at least one of block shape information and information about a split shape mode.

[0234] For example, the image decoding device (100) can determine third coding units (1612a, 1612b) having a square shape by splitting the left second coding unit (1610a) in the horizontal direction, and can determine third coding units (1614a, 1614b) having a square shape by splitting the right second coding unit (1610b) in the horizontal direction. Furthermore, the image decoding device (100) can also determine third coding units (1616a, 1616b, 1616c, 1616d) having a square shape by splitting both the left second coding unit (1610a) and the right second coding unit (1610b) in the horizontal direction. In this case, the encoding unit can be determined in the same form as the first encoding unit (1600) being divided into four square-shaped second encoding units (1630a, 1630b, 1630c, 1630d).

[0235] As another example, the image decoding device (100) may determine third coding units (1622a, 1622b) having a square shape by vertically splitting the upper second coding unit (1620a), and may determine third coding units (1624a, 1624b) having a square shape by vertically splitting the lower second coding unit (1620b). Furthermore, the image decoding device (100) may determine third coding units (1626a, 1626b, 1626a, 1626b) having a square shape by vertically splitting both the upper second coding unit (1620a) and the lower second coding unit (1620b). In this case, the encoding unit can be determined in the same form as the first encoding unit (1600) being divided into four square-shaped second encoding units (1630a, 1630b, 1630c, 1630d).

[0236] FIG. 17 illustrates that, according to one embodiment, the processing order between multiple encoding units may vary depending on the division process of the encoding units.

[0237] According to one embodiment, the image decoding device (100) may split the first encoding unit (1700) based on block shape information and information about the split shape mode. If the block shape information indicates a square shape and the information about the split shape mode indicates that the first encoding unit (1700) is split in at least one of the horizontal direction and the vertical direction, the image decoding device (100) may split the first encoding unit (1700) to determine second encoding units (e.g., 1710a, 1710b, 1720a, 1720b, etc.). Referring to FIG. 17, the second encoding units (1710a, 1710b, 1720a, 1720b) ​​having non-square shapes determined by splitting the first encoding unit (1700) only in the horizontal direction or the vertical direction may be independently split based on the block shape information and information about the split shape mode for each. For example, the image decoding device (100) can determine third encoding units (1716a, 1716b, 1716c, 1716d) by horizontally dividing second encoding units (1710a, 1710b) generated by vertically dividing the first encoding unit (1700), and can determine third encoding units (1726a, 1726b, 1726c, 1726d) by horizontally dividing second encoding units (1720a, 1720b) ​​generated by horizontally dividing the first encoding unit (1700). Since the process of dividing the second encoding units (1710a, 1710b, 1720a, 1720b) ​​has been described above with reference to FIG. 16, a detailed description thereof will be omitted.

[0238] According to one embodiment, the image decoding device (100) can process encoding units according to a predetermined order. Since the characteristics of processing encoding units according to a predetermined order have been described above with respect to 12, a detailed description thereof will be omitted. Referring to FIG. 17, the image decoding device (100) can divide a first encoding unit (1700) having a square shape and determine four third encoding units (1716a, 1716b, 1716c, 1716d, 1726a, 1726b, 1726c, 1726d) having a square shape. According to one embodiment, the image decoding device (100) can determine the processing order of the third encoding units (1716a, 1716b, 1716c, 1716d, 1726a, 1726b, 1726c, 1726d) depending on the form in which the first encoding unit (1700) is divided.

[0239] According to one embodiment, the image decoding device (100) may determine third encoding units (1716a, 1716b, 1716c, 1716d) by horizontally dividing the second encoding units (1710a, 1710b) generated by vertically dividing them, and the image decoding device (100) may process the third encoding units (1716a, 1716b, 1716c, 1716d) according to an order (1717) of first processing the third encoding units (1716a, 1716c) included in the left second encoding unit (1710a) in the vertical direction and then processing the third encoding units (1716b, 1716d) included in the right second encoding unit (1710b) in the vertical direction.

[0240] According to one embodiment, the image decoding device (100) may determine third encoding units (1726a, 1726b, 1726c, 1726d) by vertically dividing the second encoding units (1720a, 1720b) ​​generated by being divided in the horizontal direction, and the image decoding device (100) may process the third encoding units (1726a, 1726b, 1726c, 1726d) according to an order (1727) of first processing the third encoding units (1726a, 1726b) included in the upper second encoding unit (1720a) in the horizontal direction and then processing the third encoding units (1726c, 1726d) included in the lower second encoding unit (1720b) ​​in the horizontal direction.

[0241] Referring to FIG. 17, the second encoding units (1710a, 1710b, 1720a, 1720b) ​​can be divided into third encoding units (1716a, 1716b, 1716c, 1716d, 1726a, 1726b, 1726c, 1726d) having a square shape. The second coding units (1710a, 1710b) determined by being split in the vertical direction and the second coding units (1720a, 1720b) ​​determined by being split in the horizontal direction are split into different shapes, but according to the third coding units (1716a, 1716b, 1716c, 1716d, 1726a, 1726b, 1726c, 1726d) determined later, the first coding unit (1700) is ultimately split into coding units of the same shape. Accordingly, even if the image decoding device (100) determines coding units of the same shape as a result by recursively splitting the coding units through different processes based on at least one of the block shape information and the information about the split shape mode, it can process a plurality of coding units determined to have the same shape in different orders.

[0242] FIG. 18 illustrates a process in which the depth of an encoding unit is determined as the shape and size of the encoding unit change when the encoding unit is recursively divided to determine a plurality of encoding units according to one embodiment.

[0243] According to one embodiment, the image decoding device (100) may determine the depth of an encoding unit according to a predetermined criterion. For example, the predetermined criterion may be the length of a long side of the encoding unit. If the length of the long side of the current encoding unit is split to be 2n (n>0) times the length of the long side of the encoding unit before splitting, the image decoding device (100) may determine that the depth of the current encoding unit is increased by n compared to the depth of the encoding unit before splitting. Hereinafter, an encoding unit with an increased depth is expressed as an encoding unit of a lower depth.

[0244] Referring to FIG. 18, according to one embodiment, based on block shape information indicating a square shape (for example, the block shape information may indicate '0: SQUARE'), the image decoding device (100) may divide a first coding unit (1800) having a square shape to determine a second coding unit (1802), a third coding unit (1804), etc. of a lower depth. If the size of the first coding unit (1800) having a square shape is 2Nx2N, the second coding unit (1802) determined by dividing the width and height of the first coding unit (1800) by half may have a size of NxN. Furthermore, the third coding unit (1804) determined by dividing the width and height of the second coding unit (1802) by half may have a size of N / 2xN / 2. In this case, the width and height of the third encoding unit (1804) correspond to 1 / 4 of the width and height of the first encoding unit (1800). If the depth of the first encoding unit (1800) is D, the depth of the second encoding unit (1802), which is 1 / 2 of the width and height of the first encoding unit (1800), may be D+1, and the depth of the third encoding unit (1804), which is 1 / 4 of the width and height of the first encoding unit (1800), may be D+2.

[0245] According to one embodiment, based on block shape information indicating a non-square shape (for example, the block shape information may indicate '1: NS_VER' indicating a non-square shape in which the height is longer than the width or '2: NS_HOR' indicating a non-square shape in which the width is longer than the height), the image decoding device (100) may split a first coding unit (1810 or 1820) having a non-square shape to determine a second coding unit (1812 or 1822), a third coding unit (1814 or 1824) of a lower depth, etc.

[0246] The image decoding device (100) can determine a second encoding unit (e.g., 1802, 1812, 1822, etc.) by splitting at least one of the width and height of the first encoding unit (1810) having a size of Nx2N. That is, the image decoding device (100) can split the first encoding unit (1810) in the horizontal direction to determine a second encoding unit (1802) having a size of NxN or a second encoding unit (1822) having a size of NxN / 2, and can also split the first encoding unit (1810) in the horizontal direction and the vertical direction to determine a second encoding unit (1812) having a size of N / 2xN.

[0247] According to one embodiment, the image decoding device (100) may determine a second coding unit (e.g., 1802, 1812, 1822, etc.) by splitting at least one of the width and the height of the first coding unit (1820) having a size of 2NxN. That is, the image decoding device (100) may split the first coding unit (1820) in the vertical direction to determine a second coding unit (1802) having a size of NxN or a second coding unit (1812) having a size of N / 2xN, and may also split the first coding unit (1820) in the horizontal direction and the vertical direction to determine a second coding unit (1822) having a size of NxN / 2.

[0248] According to one embodiment, the image decoding device (100) may determine a third encoding unit (e.g., 1804, 1814, 1824, etc.) by splitting at least one of the width and the height of the second encoding unit (1802) having a size of NxN. That is, the image decoding device (100) may split the second encoding unit (1802) in the vertical direction and the horizontal direction to determine a third encoding unit (1804) having a size of N / 2xN / 2, a third encoding unit (1814) having a size of N / 4xN / 2, or a third encoding unit (1824) having a size of N / 2xN / 4.

[0249] According to one embodiment, the image decoding device (100) may determine a third coding unit (e.g., 1804, 1814, 1824, etc.) by splitting at least one of the width and the height of the second coding unit (1812) having a size of N / 2xN. That is, the image decoding device (100) may split the second coding unit (1812) in the horizontal direction to determine a third coding unit (1804) having a size of N / 2xN / 2 or a third coding unit (1824) having a size of N / 2xN / 4, or split the second coding unit (1812) in the vertical direction and the horizontal direction to determine a third coding unit (1814) having a size of N / 4xN / 2.

[0250] According to one embodiment, the image decoding device (100) may determine a third coding unit (e.g., 1804, 1814, 1824, etc.) by splitting at least one of the width and the height of the second coding unit (1822) having a size of NxN / 2. That is, the image decoding device (100) may split the second coding unit (1822) in the vertical direction to determine a third coding unit (1804) having a size of N / 2xN / 2 or a third coding unit (1814) having a size of N / 4xN / 2, or split the second coding unit (1822) in the vertical direction and the horizontal direction to determine a third coding unit (1824) having a size of N / 2xN / 4.

[0251] According to one embodiment, the image decoding device (100) may split a square-shaped encoding unit (e.g., 1800, 1802, 1804) in a horizontal direction or a vertical direction. For example, a first encoding unit (1800) having a size of 2Nx2N may be split in the vertical direction to determine a first encoding unit (1810) having a size of Nx2N, or may be split in the horizontal direction to determine a first encoding unit (1820) having a size of 2NxN. According to one embodiment, when the depth is determined based on the length of the longest side of the encoding unit, the depth of the encoding unit determined by splitting the first encoding unit (1800) having a size of 2Nx2N in the horizontal direction or the vertical direction may be the same as the depth of the first encoding unit (1800).

[0252] According to one embodiment, the width and height of the third coding unit (1814 or 1824) may be 1 / 4 times that of the first coding unit (1810 or 1820). When the depth of the first coding unit (1810 or 1820) is D, the depth of the second coding unit (1812 or 1822), which is 1 / 2 times the width and height of the first coding unit (1810 or 1820), may be D+1, and the depth of the third coding unit (1814 or 1824), which is 1 / 4 times the width and height of the first coding unit (1810 or 1820), may be D+2.

[0253] FIG. 19 illustrates an index (part index, hereinafter referred to as PID) for depth and encoding unit distinction that can be determined according to the shape and size of encoding units according to one embodiment.

[0254] According to one embodiment, the image decoding device (100) may split a first encoding unit (1900) having a square shape to determine second encoding units of various shapes. Referring to FIG. 19, the image decoding device (100) may split the first encoding unit (1900) in at least one of a vertical direction and a horizontal direction according to information about a split shape mode to determine second encoding units (1902a, 1902b, 1904a, 1904b, 1906a, 1906b, 1906c, 1906d). That is, the image decoding device (100) can determine the second encoding unit (1902a, 1902b, 1904a, 1904b, 1906a, 1906b, 1906c, 1906d) based on information about the splitting form mode for the first encoding unit (1900).

[0255] According to one embodiment, the depth of the second coding units (1902a, 1902b, 1904a, 1904b, 1906a, 1906b, 1906c, 1906d) determined based on information about the split shape mode for the first coding unit (1900) having a square shape may be determined based on the length of the long side. For example, since the length of one side of the first coding unit (1900) having a square shape and the length of the long side of the second coding unit (1902a, 1902b, 1904a, 1904b) having a non-square shape are the same, the depth of the first coding unit (1900) and the second coding units (1902a, 1902b, 1904a, 1904b) having a non-square shape may be considered to be the same as D. In contrast, when the image decoding device (100) divides the first encoding unit (1900) into four square-shaped second encoding units (1906a, 1906b, 1906c, 1906d) based on information about the splitting shape mode, the length of one side of the square-shaped second encoding units (1906a, 1906b, 1906c, 1906d) is half the length of one side of the first encoding unit (1900), so the depth of the second encoding units (1906a, 1906b, 1906c, 1906d) may be a depth of D+1, which is one depth lower than D, the depth of the first encoding unit (1900).

[0256] According to one embodiment, the image decoding device (100) may split a first encoding unit (1910) having a height greater than its width into a plurality of second encoding units (1912a, 1912b, 1914a, 1914b, 1914c) in the horizontal direction according to information about the splitting shape mode. According to one embodiment, the image decoding device (100) may split a first encoding unit (1920) having a width greater than its height into a plurality of second encoding units (1922a, 1922b, 1924a, 1924b, 1924c) in the vertical direction according to information about the splitting shape mode.

[0257] According to one embodiment, the second coding unit (1912a, 1912b, 1914a, 1914b, 1914c. 1922a, 1922b, 1924a, 1924b, 1924c) determined based on information about the split shape mode for the first coding unit (1910 or 1920) of a non-square shape may have its depth determined based on the length of its long side. For example, since the length of one side of the second encoding unit (1912a, 1912b) in the shape of a square is half the length of one side of the first encoding unit (1910) in the shape of a non-square having a height longer than a width, the depth of the second encoding unit (1912a, 1912b) in the shape of a square is D+1, which is one depth lower than the depth D of the first encoding unit (1910) in the shape of a non-square.

[0258] Furthermore, the image decoding device (100) may split a non-square first encoding unit (1910) into an odd number of second encoding units (1914a, 1914b, 1914c) based on information about the splitting shape mode. The odd number of second encoding units (1914a, 1914b, 1914c) may include second encoding units (1914a, 1914c) of a non-square shape and second encoding units (1914b) of a square shape. In this case, since the length of the long side of the second coding unit (1914a, 1914c) of a non-square shape and the length of one side of the second coding unit (1914b) of a square shape are half the length of one side of the first coding unit (1910), the depth of the second coding unit (1914a, 1914b, 1914c) may be a depth of D+1, which is one depth lower than D, the depth of the first coding unit (1910). The image decoding device (100) may determine the depth of the coding units associated with the first coding unit (1920) of a non-square shape, in which the width is longer than the height, in a manner corresponding to the above method of determining the depth of the coding units associated with the first coding unit (1910).

[0259] According to one embodiment, when determining an index (PID) for distinguishing divided coding units, the image decoding device (100) may determine the index based on a size ratio between the coding units when the coding units divided into an odd number are not of the same size. Referring to FIG. 19, among the coding units (1914a, 1914b, 1914c) divided into an odd number, the coding unit (1914b) located in the middle may have the same width as the other coding units (1914a, 1914c) but may have a height that is twice the height of the coding units (1914a, 1914c) that are different in height. That is, in this case, the coding unit (1914b) located in the middle may include two of the other coding units (1914a, 1914c). Accordingly, if the index (PID) of the encoding unit (1914b) located in the middle according to the scanning order is 1, the index of the encoding unit (1914c) located in the next order may be 3, which is an increase of 2. In other words, there may be a discontinuity in the index value. According to one embodiment, the image decoding device (100) may determine whether the encoding units divided into an odd number are not of the same size based on the presence or absence of discontinuity in the index for distinguishing between the divided encoding units.

[0260] According to one embodiment, the image decoding device (100) may determine whether the image is divided into a specific split shape based on the value of an index for distinguishing a plurality of coding units that are divided from the current coding unit. Referring to FIG. 19, the image decoding device (100) may divide a first coding unit (1910) having a rectangular shape in which the height is longer than the width, to determine an even number of coding units (1912a, 1912b) or an odd number of coding units (1914a, 1914b, 1914c). The image decoding device (100) may use an index (PID) indicating each coding unit to distinguish each of the plurality of coding units. According to one embodiment, the PID may be obtained from a sample (for example, an upper left sample) at a predetermined position of each coding unit.

[0261] According to one embodiment, the image decoding device (100) may determine an coding unit at a predetermined position among the coding units that are divided and determined using an index for distinguishing the coding units. According to one embodiment, when information about a split shape mode for a first coding unit (1910) having a rectangular shape with a height greater than the width indicates that the first coding unit (1910) is divided into three coding units, the image decoding device (100) may divide the first coding unit (1910) into three coding units (1914a, 1914b, 1914c). The image decoding device (100) may assign an index to each of the three coding units (1914a, 1914b, 1914c). The image decoding device (100) may compare the indexes for each coding unit to determine a middle coding unit among the coding units divided into an odd number of coding units. The image decoding device (100) may determine a coding unit (1914b) having an index corresponding to a middle value among the indices of the coding units as a coding unit at a middle position among the coding units determined by splitting the first coding unit (1910). According to an embodiment, when determining an index for distinguishing the split coding units, the image decoding device (100) may determine the index based on a size ratio between the coding units when the coding units do not have the same size. Referring to FIG. 19, the coding unit (1914b) generated by splitting the first coding unit (1910) may have the same width as other coding units (1914a, 1914c) but may be twice the height of the coding units (1914a, 1914c) that are different in height. In this case, if the index (PID) of the encoding unit (1914b) located in the middle is 1, the index of the encoding unit (1914c) located in the next order may be 3, which is an increase of 2.In cases like this where the index increases uniformly and then the increase amount changes, the image decoding device (100) may determine that the current coding unit is divided into a plurality of coding units including coding units having different sizes from other coding units. According to one embodiment, when information about the splitting form mode indicates that the current coding unit is divided into an odd number of coding units, the image decoding device (100) may divide the current coding unit into a form in which a coding unit at a predetermined position among the odd number of coding units (for example, a middle coding unit) has a different size from the other coding units. In this case, the image decoding device (100) may determine a middle coding unit having a different size using an index (PID) for the coding unit. However, the above-described index, the size or position of the coding unit at the predetermined position to be determined are specific for explaining one embodiment and should not be interpreted as being limited thereto, and it should be interpreted that various indexes, positions and sizes of coding units can be used.

[0262] According to one embodiment, the image decoding device (100) may utilize a predetermined data unit from which recursive division of the encoding unit begins.

[0263] FIG. 20 illustrates that a plurality of coding units are determined according to a plurality of predetermined data units included in a picture according to one embodiment.

[0264] According to one embodiment, a predetermined data unit may be defined as a data unit from which a coding unit begins to be recursively split using at least one of block shape information and information about a split shape mode. That is, it may correspond to a coding unit of the highest depth used in the process of determining a plurality of coding units for splitting the current picture. For convenience of explanation, this predetermined data unit will be referred to as a reference data unit hereinafter.

[0265] In one embodiment, the reference data unit may exhibit a predetermined size and shape. In one embodiment, the reference coding unit may include MxN samples, where M and N may be the same and may be integers expressed as powers of 2. That is, the reference data unit may exhibit a square or non-square shape, and may be subsequently divided into an integer number of coding units.

[0266] According to one embodiment, the image decoding device (100) can divide the current picture into a plurality of reference data units. According to one embodiment, the image decoding device (100) can divide the plurality of reference data units into which the current picture is divided using information about the division form mode for each reference data unit. This division process of the reference data units can correspond to a division process using a quad-tree structure.

[0267] According to one embodiment, the image decoding device (100) may determine in advance the minimum size that a reference data unit included in the current picture may have. Accordingly, the image decoding device (100) may determine reference data units of various sizes having a size greater than or equal to the minimum size, and may determine at least one encoding unit using block shape information and information about a segmentation shape mode based on the determined reference data unit.

[0268] Referring to FIG. 20, the image decoding device (100) may use a reference coding unit (2000) having a square shape, or may use a reference coding unit (2002) having a non-square shape. According to one embodiment, the shape and size of the reference coding unit may be determined according to various data units (e.g., sequence, picture, slice, slice segment, maximum coding unit, etc.) that may include at least one reference coding unit.

[0269] According to one embodiment, the receiving unit of the image decoding device (100) can obtain at least one of information on the shape of the reference coding unit and information on the size of the reference coding unit from the bitstream for each of the various data units. The process of determining at least one coding unit included in the square-shaped reference coding unit (2000) has been described above through the process of splitting the current coding unit (300) of FIG. 8, and the process of determining at least one coding unit included in the non-square-shaped reference coding unit (2002) has been described above through the process of splitting the current coding unit (900 or 950) of FIG. 9, so a detailed description thereof will be omitted.

[0270] According to one embodiment, the image decoding device (100) may use an index for identifying the size and shape of the reference coding unit in order to determine the size and shape of the reference coding unit according to some data units that are predetermined based on a predetermined condition. That is, the receiver may obtain only an index for identifying the size and shape of the reference coding unit for each slice, slice segment, maximum coding unit, etc., among the various data units (e.g., sequences, pictures, slices, slice segments, maximum coding units, etc.) from the bitstream, as a data unit that satisfies a predetermined condition (e.g., a data unit having a size smaller than a slice). The image decoding device (100) may determine the size and shape of the reference data unit for each data unit that satisfies the predetermined condition by using the index. When information about the shape of the reference coding unit and information about the size of the reference coding unit are obtained from the bitstream for each relatively small-sized data unit and used, the efficiency of the bitstream may not be good. Therefore, instead of directly obtaining information about the shape of the reference coding unit and information about the size of the reference coding unit, only the index may be obtained and used. In this case, at least one of the size and shape of the reference coding unit corresponding to the index indicating the size and shape of the reference coding unit may be determined in advance. That is, the image decoding device (100) can determine at least one of the size and shape of the reference coding unit included in the data unit that serves as the basis for obtaining the index by selecting at least one of the sizes and shapes of the predetermined reference coding units according to the index.

[0271] According to one embodiment, the image decoding device (100) may use at least one reference coding unit included in one maximum coding unit. That is, a maximum coding unit for dividing an image may include at least one reference coding unit, and a coding unit may be determined through a recursive splitting process of each reference coding unit. According to one embodiment, at least one of the width and the height of the maximum coding unit may correspond to an integer multiple of at least one of the width and the height of the reference coding unit. According to one embodiment, the size of the reference coding unit may be a size obtained by splitting the maximum coding unit n times according to a quad tree structure. That is, the image decoding device (100) may determine the reference coding unit by splitting the maximum coding unit n times according to the quad tree structure, and may split the reference coding unit based on at least one of block shape information and information about a split shape mode according to various embodiments.

[0272] FIG. 21 illustrates a processing block that serves as a criterion for determining the order of determination of reference encoding units included in a picture (2100) according to one embodiment.

[0273] According to one embodiment, the image decoding apparatus (100) may determine at least one processing block for dividing a picture. The processing block is a data unit including at least one reference coding unit for dividing an image, and at least one reference coding unit included in the processing block may be determined in a specific order. That is, the determination order of at least one reference coding unit determined in each processing block may correspond to one of various types of orders in which the reference coding unit may be determined, and the determination order of the reference coding unit determined in each processing block may be different for each processing block. The determination order of the reference coding unit determined for each processing block may be one of various orders such as raster scan, Z-scan, N-scan, up-right diagonal scan, horizontal scan, and vertical scan, but the order in which it may be determined should not be interpreted as being limited to the above scan orders.

[0274] According to one embodiment, the image decoding device (100) can obtain information about the size of a processing block to determine the size of at least one processing block included in an image. The image decoding device (100) can obtain information about the size of a processing block from a bitstream to determine the size of at least one processing block included in an image. The size of the processing block may be a predetermined size of a data unit indicated by the information about the size of the processing block.

[0275] According to one embodiment, the receiving unit of the video decoding device (100) can obtain information about the size of a processing block from a bitstream for each specific data unit. For example, information about the size of a processing block can be obtained from the bitstream in the form of data units such as an image, a sequence, a picture, a slice, a slice segment, etc. That is, the receiving unit can obtain information about the size of a processing block from the bitstream for each of the above-described multiple data units, and the video decoding device (100) can determine the size of at least one processing block for dividing a picture using the obtained information about the size of the processing block, and the size of the processing block can be an integer multiple of a reference coding unit.

[0276] According to one embodiment, the image decoding device (100) may determine the size of the processing block (2102, 2112) included in the picture (2100). For example, the image decoding device (100) may determine the size of the processing block based on information about the size of the processing block obtained from the bitstream. Referring to FIG. 21, the image decoding device (100) may determine the horizontal size of the processing block (2102, 2112) to be four times the horizontal size of the reference coding unit, and the vertical size of the processing block (2102, 2112) to be four times the vertical size of the reference coding unit, according to one embodiment. The image decoding device (100) may determine the order in which at least one reference coding unit is determined within at least one processing block.

[0277] According to one embodiment, the image decoding device (100) may determine each processing block (2102, 2112) included in the picture (2100) based on the size of the processing block, and may determine the determination order of at least one reference coding unit included in the processing block (2102, 2112). According to one embodiment, the determination of the reference coding unit may include determining the size of the reference coding unit.

[0278] According to one embodiment, the image decoding device (100) can obtain information about a determination order of at least one reference coding unit included in at least one processing block from a bitstream, and can determine an order in which at least one reference coding unit is determined based on the obtained information about the determination order. The information about the determination order can be defined as an order or direction in which the reference coding units are determined within the processing block. That is, the order in which the reference coding units are determined can be independently determined for each processing block.

[0279] According to one embodiment, the image decoding device (100) can obtain information about the determination order of the reference coding unit for each specific data unit from the bitstream. For example, the receiver can obtain information about the determination order of the reference coding unit for each data unit such as an image, sequence, picture, slice, slice segment, processing block, etc. from the bitstream. Since the information about the determination order of the reference coding unit indicates the determination order of the reference coding unit within the processing block, the information about the determination order can be obtained for each specific data unit including an integer number of processing blocks.

[0280] The image decoding device (100) can determine at least one reference encoding unit based on an order determined according to one embodiment.

[0281] According to one embodiment, the receiver may obtain information about the reference coding unit determination order as information related to the processing blocks (2102, 2112) from the bitstream, and the image decoding device (100) may determine the order of determining at least one reference coding unit included in the processing blocks (2102, 2112) and determine at least one reference coding unit included in the picture (2100) according to the determination order of the coding units. Referring to FIG. 21, the image decoding device (100) may determine the determination order (2104, 2114) of at least one reference coding unit related to each processing block (2102, 2112). For example, when information about the determination order of the reference coding unit is obtained for each processing block, the determination order of the reference coding unit related to each processing block (2102, 2112) may be different for each processing block. If the reference encoding unit determination order (2104) related to the processing block (2102) is a raster scan order, the reference encoding unit included in the processing block (2102) can be determined according to the raster scan order. In contrast, if the reference encoding unit determination order (2114) related to another processing block (2112) is a reverse order of the raster scan order, the reference encoding unit included in the processing block (2112) can be determined according to the reverse order of the raster scan order.

[0282] According to one embodiment, the image decoding device (100) can decode at least one determined reference coding unit. The image decoding device (100) can decode an image based on the determined reference coding unit through the above-described embodiment. The method of decoding the reference coding unit may include various methods of decoding an image.

[0283] According to one embodiment, the video decoding device (100) may obtain and use block shape information indicating the shape of a current encoding unit or information on a partition shape mode indicating a method of partitioning the current encoding unit from a bitstream. The block shape information or the information on the partition shape mode may be included in a bitstream related to various data units. For example, the video decoding device (100) may use block shape information or information on the partition shape mode included in a sequence parameter set, a picture parameter set, a video parameter set, a slice header, and a slice segment header. Furthermore, the video decoding device (100) may obtain and use a syntax element corresponding to block shape information or information on the partition shape mode from the bitstream for each maximum encoding unit, each reference encoding unit, and each processing block.

[0284] Hereinafter, a method for determining a partitioning rule according to one embodiment of the present disclosure will be described in detail.

[0285] The video decoding device (100) can determine a segmentation rule of the video. The segmentation rule may be predetermined between the video decoding device (100) and the video encoding device (300). The video decoding device (100) can determine the segmentation rule of the video based on information obtained from a bitstream. The video decoding device (100) can determine the segmentation rule based on information obtained from at least one of a sequence parameter set, a picture parameter set, a video parameter set, a slice header, and a slice segment header. The video decoding device (100) can determine the segmentation rule differently depending on a frame, a slice, a temporal layer, a maximum coding unit, or an coding unit.

[0286] The image decoding device (100) can determine a splitting rule based on block shape information of an encoding unit. The image decoding device (100) can determine block shape information of an encoding unit. The block shape information can include size, shape, width and height ratio, and direction information of the encoding unit. The image encoding device (300) and the image decoding device (100) can determine in advance that they will determine a splitting rule based on the block shape information of the encoding unit. However, the present invention is not limited thereto. The image decoding device (100) can determine a splitting rule based on information obtained from a bitstream received from the image encoding device (300).

[0287] The shape of the encoding unit may include a square and a non-square. If the width and height of the encoding unit are equal, the image decoding device (100) may determine the shape of the encoding unit as a square. In addition, if the width and height of the encoding unit are not equal, the image decoding device (100) may determine the shape of the encoding unit as a non-square.

[0288] The size of the coding unit may include various sizes such as 4x4, 8x4, 4x8, 8x8, 16x4, 16x8, ..., 256x256. The size of the coding unit may be classified according to the length of the long side, the length of the short side, or the area of ​​the coding unit. The image decoding device (100) may apply the same splitting rule to the coding units classified into the same group. For example, the image decoding device (100) may classify the coding units having the same long side length into the same size. In addition, the image decoding device (100) may apply the same splitting rule to the coding units having the same long side length.

[0289] The ratio of the width to the height of the coding unit may include 1:2, 2:1, 1:4, 4:1, 1:8, 8:1, 1:16, or 16:1, etc. In addition, the direction of the coding unit may include a horizontal direction and a vertical direction. The horizontal direction may indicate a case where the length of the width of the coding unit is longer than the length of the height. The vertical direction may indicate a case where the length of the width of the coding unit is shorter than the length of the height.

[0290] The image decoding device (100) can adaptively determine a splitting rule based on the size of the encoding unit. The image decoding device (100) can determine a different allowable splitting mode based on the size of the encoding unit. For example, the image decoding device (100) can determine whether splitting is allowed based on the size of the encoding unit. The image decoding device (100) can determine a splitting direction based on the size of the encoding unit. The image decoding device (100) can determine an allowable splitting type based on the size of the encoding unit.

[0291] Determining the splitting rule based on the size of the encoding unit may be a splitting rule predetermined between the image encoding device (300) and the image decoding device (100). In addition, the image decoding device (100) may determine the splitting rule based on information obtained from the bitstream.

[0292] The image decoding device (100) can adaptively determine a segmentation rule based on the position of the encoding unit. The image decoding device (100) can adaptively determine a segmentation rule based on the position that the encoding unit occupies in the image.

[0293] Additionally, the image decoding device (100) may determine a splitting rule so that encoding units generated through different splitting paths do not have the same block shape. However, this is not limited thereto, and encoding units generated through different splitting paths may have the same block shape. Encoding units generated through different splitting paths may have different decoding processing orders. Since the decoding processing order has been described together with FIG. 17, a detailed description thereof will be omitted.

[0294] The present disclosure has been described with a focus on various embodiments. Those skilled in the art will appreciate that the present disclosure can be implemented in modified forms without departing from its essential characteristics. Therefore, the disclosed embodiments should be considered illustrative rather than restrictive. The scope of the present disclosure is set forth in the claims, not the foregoing description, and all differences within the scope equivalent thereto should be construed as being encompassed by the present disclosure.

[0295] Meanwhile, the embodiments of the present disclosure described above can be written as computer-executable programs and implemented in a general-purpose digital computer that executes the programs using a computer-readable recording medium. The computer-readable recording medium includes storage media such as magnetic storage media (e.g., ROM, floppy disks, hard disks, etc.) and optical readable media (e.g., CD-ROMs, DVDs, etc.).

Claims

1. A step of obtaining multi-core transformation information from a bitstream, the multi-core transformation information indicating whether multi-core transformation kernels are used to determine a transformation kernel for inverse transformation of the current block according to the size of the current block; When the multi-core transformation kernels are used to determine the transformation kernel according to the multi-core transformation information, a step of obtaining horizontal transformation kernel information for determining a transformation kernel for inverse transformation in a horizontal direction and vertical transformation kernel information for determining a transformation kernel for inverse transformation in a vertical direction from the bitstream; A step of determining a horizontal transformation kernel for horizontal inverse transformation of the current block according to the horizontal transformation kernel information; A step of determining a vertical transformation kernel for vertical inverse transformation of the current block according to the vertical transformation kernel information; and A video decoding method, characterized in that it comprises a step of performing an inverse transformation on the current block using the horizontal transformation kernel and the vertical transformation kernel.

2. In paragraph 1, A video decoding method, wherein the multi-core conversion information indicates that the multi-core conversion kernels are used when the size of the current block is less than or equal to a predetermined size.

3. In paragraph 2, A video decoding method, wherein the current block above is a luma block.

4. In paragraph 3, A video decoding method wherein the above predetermined size is 32X32.

5. In paragraph 2, A video decoding method, wherein the current block above is a chroma block.

6. In paragraph 5, A video decoding method wherein the above predetermined size is 16X16.

7. In paragraph 1, A video decoding method, wherein, when the current block is encoded in an intra prediction mode, each of the horizontal transform kernel and the vertical transform kernel is selected from a kernel transform candidate set DST7 and DCT8.

8. In paragraph 1, A video decoding method, wherein, when the current block is encoded in an inter prediction mode, each of the horizontal transform kernel and the vertical transform kernel is selected from a kernel transform candidate set DCT8 and DST7.

9. In paragraph 1, A video decoding method, wherein a context model for decoding the multi-core transformation information is determined based on the depth of the current block and the number of valid coefficients of the current block.

10. A step of performing transformation on the current block using multi-core transformation kernels to determine a transformation kernel for transformation of the current block; A step of generating multi-core conversion kernel information indicating whether multi-core conversion kernels are used to determine the above conversion kernel; A step of generating horizontal transformation kernel information for indicating a horizontal transformation kernel used for horizontal transformation of the current block and vertical transformation kernel information for indicating a vertical transformation kernel used for vertical transformation; and A video encoding method, characterized by comprising a step of encoding a transform coefficient generated by performing a transform on the current block, the multi-core transform information, the horizontal transform kernel information, and the vertical transform kernel information.

11. In paragraph 10, A video encoding method, wherein the current block is a luma block.

12. In paragraph 10, A video encoding method wherein the above predetermined size is 32X32.

13. In paragraph 10, A video encoding method, wherein the current block is a chroma block.

14. In paragraph 10, A video encoding method wherein the above predetermined size is 16X16.

15. Memory; and comprising a processor interconnected with the above memory, The above processor: Obtain multi-core transform information from the bitstream indicating whether multi-core transform kernels are used to determine a transform kernel for inverse transform of the current block; When the multi-core transformation kernels are used to determine the transformation kernel according to the multi-core transformation information, horizontal transformation kernel information for determining a transformation kernel for inverse transformation in the horizontal direction and vertical transformation kernel information for determining a transformation kernel for inverse transformation in the vertical direction are obtained from the bitstream; Determine a horizontal transformation kernel for horizontal inverse transformation of the current block according to the horizontal transformation kernel information; Determine a vertical transformation kernel for vertical inverse transformation of the current block according to the vertical transformation kernel information; A video decoding device characterized in that it performs an inverse transformation on the current block using the horizontal transformation kernel and the vertical transformation kernel.