Video encoding / decoding method and apparatus, and recording medium storing a bitstream.

Adaptive block partitioning using quad, binary, and ternary divisions addresses inefficiencies in video encoding and decoding, enhancing coding efficiency and preventing overlapping configurations for high-resolution videos.

JP2026521198APending Publication Date: 2026-06-26LG ELECTRONICS INC

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
LG ELECTRONICS INC
Filing Date
2023-06-21
Publication Date
2026-06-26

AI Technical Summary

Technical Problem

Existing video compression technologies struggle with efficient encoding and decoding of high-resolution and high-quality videos, particularly in handling block partitioning and partitioning information signaling, leading to inefficiencies and potential overlapping configurations.

Method used

A method and apparatus for adaptive block partitioning using quad, binary, and ternary divisions, with adaptive determination of non-square quad division based on encoding parameters, and signaling of partitioning information to avoid overlapping configurations.

Benefits of technology

Enhances coding efficiency by allowing adaptive block partitioning with non-square quad divisions, improving coding efficiency and preventing overlapping forms without additional signaling, and enabling effective encoding and decoding of high-resolution videos.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026521198000001_ABST
    Figure 2026521198000001_ABST
Patent Text Reader

Abstract

The video decoding / encoding method and apparatus relating to this disclosure can divide a current block based on a predetermined division type and decode / encode a plurality of coding blocks generated by dividing the current block. Here, the predetermined division type includes at least one of quad division, binary division, or ternary division, and quad division may be distinguished into square quad division, which divides a square block into four, and non-square quad division, which divides a non-square block into four.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a video encoding / decoding method and apparatus, and a recording medium storing a bitstream.

Background Art

[0002] In recent years, the demand for high-resolution and high-quality videos such as HD (High Definition) videos and UHD (Ultra High Definition) videos has been increasing in various application fields, and thus, high-efficiency video compression technologies have been discussed.

[0003] As video compression technologies, there are various technologies such as an inter-prediction technology that predicts pixel values included in a current picture from pictures before or after the current picture, an intra-prediction technology that predicts pixel values included in the current picture using pixel information within the current picture, and an entropy coding technology that assigns short codes to values with high occurrence frequencies and long codes to values with low occurrence frequencies. Using such video compression technologies, video data can be effectively compressed and transmitted or stored.

Summary of the Invention

Problems to be Solved by the Invention

[0004] The present disclosure aims to provide an adaptive block partitioning method and apparatus based on various partitioning types.

[0005] The present disclosure aims to provide a method and apparatus for signaling partitioning information for non-square quad partitioning.

[0006] The present disclosure aims to provide a method and apparatus for determining a partitioning depth for inducing a context model of the presence or absence of block partitioning and / or partitioning information.

[0007] This disclosure aims to provide a method and apparatus for limiting the application of partition types in a tree structure-based block partition using various partition types so as not to result in overlapping partition configurations. [Means for solving the problem]

[0008] The video decoding method and apparatus relating to this disclosure can divide the current block based on a predetermined division type and decode a plurality of coding blocks generated by dividing the current block.

[0009] In the video decoding method and apparatus relating to this disclosure, the predetermined division type includes at least one of quad division, binary division, or ternary division, and the quad division may be distinguished into a square quad division that divides a square block into four parts and a non-square quad division that divides a non-square block into four parts.

[0010] In the video decoding method and apparatus relating to this disclosure, whether or not the non-square quad division is permitted is determined based on the encoding parameters of the current block, the encoding parameters of the current block may include at least one of the size, shape, or position of the current block within the current picture.

[0011] In the video decoding method and apparatus relating to this disclosure, whether or not the non-square quad division is permitted may be determined based on whether or not the size of the current block is greater than or equal to a predetermined threshold size.

[0012] In the video decoding method and apparatus relating to this disclosure, whether or not the non-square quad division is permitted is determined based on at least one of the following: whether or not the width and height of the current blocks are different from each other, or whether or not the ratio of the width and height of the current blocks is 1:M or M:1, where M may be an integer of 2, 3, 4 or more.

[0013] In the video decoding method and apparatus relating to this disclosure, the non-square quad division may be performed adaptively based on a first quad flag indicating whether or not the square quad division is applied.

[0014] In the video decoding method and apparatus relating to this disclosure, the first quad flag may be signaled based on at least one of a first variable indicating whether or not the square quad division is permitted, or a second variable indicating whether or not the non-square quad division is permitted.

[0015] In the video decoding method and apparatus relating to this disclosure, when the current block is a block generated by the binary partitioning or the ternary partitioning, the first variable is set to false, but the second variable may be set to true.

[0016] In the video decoding method and apparatus according to this disclosure, if the current block is a block generated by the binary partitioning or the ternary partitioning, the first variable may be set to false based on the fact that the width and height of the current block are the same, and the first variable may be set to true based on the fact that the width and height of the current block are different.

[0017] In the video decoding method and apparatus relating to this disclosure, the context model for entropy decoding of the first quad flag is derived based on the partition depth of a surrounding block adjacent to the current block, and the partition depth of the surrounding block may include at least one of the partition depths by the square quad partition or the partition depths by the non-square quad partition.

[0018] In the video decoding method and apparatus relating to this disclosure, the non-square quad division may be performed adaptively based on a second quad flag indicating whether or not the non-square quad division is applied.

[0019] In the video decoding method and apparatus relating to this disclosure, the second quad flag may be signaled when the current block corresponds to a leaf node in a tree structure.

[0020] In the video decoding method and apparatus relating to this disclosure, if the current block is divided into two coding blocks by horizontal binary partitioning, and vertical binary partitioning is applied to the upper coding block of the two coding blocks, the method may be restricted so that vertical binary partitioning is not applied to the lower coding block of the two coding blocks.

[0021] In the video decoding method and apparatus relating to this disclosure, if the current block is divided into two coding blocks by vertical binary partitioning, and horizontal binary partitioning is applied to the left coding block of the two coding blocks, then horizontal binary partitioning may be permitted for the right coding block of the two coding blocks.

[0022] The video encoding method and apparatus according to this disclosure can divide a current block based on a predetermined division type and encode a plurality of coding blocks generated by dividing the current block. Here, the predetermined division type includes at least one of quad division, binary division, or ternary division, and the quad division may be distinguished into square quad division, which divides a square block into four, and non-square quad division, which divides a non-square block into four.

[0023] A computer-readable digital storage medium is provided, which stores encoded video / image information that is configured to be decoded using the decoding device relating to this disclosure.

[0024] A computer-readable digital storage medium is provided on which video / image information generated by the video encoding method relating to this disclosure is stored.

[0025] A method and an apparatus for transmitting video / video information generated by a video encoding method according to the present disclosure are provided.

Advantages of the Invention

[0026] According to the present disclosure, coding blocks having adaptive sizes and forms can be generated by block division of a tree structure based on various division types.

[0027] According to the present disclosure, without signaling additional division information for non-square quad division, non-square quad division can be adaptively performed using division information for square quad division.

[0028] According to the present disclosure, by signaling additional division information for non-square quad division, non-square quad division can be adaptively performed.

[0029] According to the present disclosure, by signaling division information for non-square quad division in consideration of whether the current block corresponds to a leaf node of a tree structure, the coding efficiency of the division information can be improved.

[0030] According to the present disclosure, by defining division depths for various division types, it can be utilized to induce the presence or absence of block division and / or the context model of division information.

[0031] According to the present disclosure, when meeting a predefined condition, by restricting the application of vertical or horizontal binary division, it can be controlled so that overlapping division forms do not occur.

Brief Description of the Drawings

[0032] [Figure 1] The figure shows a video / video coding system according to the present disclosure. [Figure 2]This is a schematic block diagram of an encoding device to which the embodiments of the present disclosure can be applied, and in which video / image signals are encoded. [Figure 3] This is a schematic block diagram of a decoding device to which the embodiments of the present disclosure can be applied, and in which video / image signals are decoded. [Figure 4] This figure shows an embodiment of the present disclosure, illustrating a decoding method performed by a decoding device (300). [Figure 5] This figure shows an embodiment relating to the present disclosure, which is a block division method based on a predetermined division type. [Figure 6] This figure shows an embodiment relating to the present disclosure, which is a block division method based on a predetermined division type. [Figure 7] This figure shows an example of a limitation on binary partitioning related to this disclosure. [Figure 8] This figure shows an example of a limitation on binary partitioning related to this disclosure. [Figure 9] This figure shows an embodiment relating to the present disclosure, illustrating a tree structure-based block partitioning method. [Figure 10] This figure shows the method for calculating the partition depth based on the partition type related to this disclosure. [Figure 11] This figure shows the method for calculating the partition depth based on the partition type related to this disclosure. [Figure 12] This figure shows the method for calculating the partition depth based on the partition type related to this disclosure. [Figure 13] This figure shows a schematic configuration of a decoding device (300) that performs the decoding method relating to this disclosure. [Figure 14] This figure shows an embodiment of the present disclosure, illustrating an encoding method performed by an encoding device (200). [Figure 15] This figure shows a schematic configuration of an encoding device (200) that performs the encoding method relating to this disclosure. [Figure 16]This figure shows an example of a content streaming system to which the embodiments of this disclosure can be applied. [Modes for carrying out the invention]

[0033] This disclosure may be modified in various ways and may have various embodiments. Specific embodiments are illustrated and described in detail in the drawings. However, this is not intended to limit the disclosure to any particular embodiment, but rather should be understood to include all modifications, equivalents, or substitutions that fall within the spirit and technical scope of this disclosure. In the description of each figure, similar reference numerals are used for similar components.

[0034] Terms such as "First," "Second," etc., may be used to describe various components, but these components should not be limited by such terms. These terms are used solely for the purpose of distinguishing one component from another. For example, without exceeding the scope of rights of this disclosure, the first component may be named the second component, and similarly, the second component may be named the first component. The term "and / or" includes a combination of multiple related descriptions or any one of multiple related descriptions.

[0035] When it is stated that one component is "connected" or "linked" to another component, it should be understood that it may be directly connected or linked to the other component, and that there may be other components in between. On the other hand, when it is stated that one component is "directly connected" or "linked" to another component, it should be understood that there are no other components in between.

[0036] The terminology used in this application is solely for the purpose of describing specific embodiments and is not intended to limit the disclosure. Singular expressions include plural expressions unless otherwise specified in the context. In this application, terms such as “includes” or “having” are intended to specify the existence of features, figures, stages, operations, components, parts, or combinations thereof described in the specification, and should be understood not to preemptively exclude the possibility of the existence or addition of one or more other features, figures, stages, operations, components, parts, or combinations thereof.

[0037] This disclosure relates to video / image coding. For example, the methods / examples disclosed herein may be applied to methods disclosed in the VVC (versatile video coding) standard. Also, the methods / examples disclosed herein may be applied to methods disclosed in the EVC (essential video coding) standard, AV1 (AOMedia Video 1) standard, AVS2 (2nd generation of audio video coding standard), or next-generation video / image coding standards (e.g., H.267 or H.268).

[0038] This specification presents various embodiments relating to video / image coding, and unless otherwise specified, the above embodiments may be combined with each other.

[0039] In this specification, video can mean a collection of images over time. Picture generally means a unit representing a single image at a specific time point, and slice / tile is a unit that constitutes part of a picture in coding. A slice / tile may contain one or more CTUs (coding tree units). A picture may consist of one or more slices / tiles. A tile is a rectangular area consisting of multiple CTUs in a specific tile column and a specific tile row of a picture. A tile column is a rectangular area of ​​CTUs having the same height as the picture height and the width specified by the syntax requirements of the picture parameter set. A tile row is a rectangular area of ​​CTUs having the same height as the picture parameter set and the width as the picture width. CTUs within a tile may be arranged consecutively by a CTU raster scan, while tiles within a picture may be arranged consecutively by a tile raster scan. A slice may contain an integer number of complete tiles or an integer number of consecutive complete CTU rows within a picture tile that can exclusively be contained within a single NAL unit. On the other hand, a picture may be divided into two or more subpictures. A subpicture may be a rectangular region of one or more slices in the picture.

[0040] A pixel, or pel, can refer to the smallest unit that makes up a picture (or image). The term "sample" may also be used as a counterpart to "pixel." A sample can generally represent a pixel or a pixel value, and may represent only the pixel / pixel value for the lumen component, or only the pixel / pixel value for the chroma component.

[0041] A unit can refer to a basic unit of image processing. A unit may include at least one of a specific region of a picture and information associated with that region. A unit may include one lumen block and two chroma (e.g., cb, cr) blocks. The term unit may, as in some cases, be used interchangeably with terms such as block or area. Generally, an MxN block may include a sample (or sample array) or a set (or array) of transform coefficients consisting of M columns and N rows.

[0042] In this specification, "A or B" can mean "A only," "B only," or "both A and B." In other words, in this specification, "A or B" may be interpreted as "A and / or B." For example, in this specification, "A, B or C" can mean "A only," "B only," "C only," or "any combination of A, B and C."

[0043] In this specification, a slash ( / ) or comma can mean "and / or". For example, "A / B" can mean "A and / or B". Thus, "A / B" can mean "A only", "B only", or "both A and B". For example, "A, B, C" can mean "A, B or C".

[0044] In this specification, "at least one of A and B" can mean "A only," "B only," or "both A and B." Furthermore, in this specification, the expressions "at least one of A or B" or "at least one of A and / or B" may be interpreted as equivalent to "at least one of A and B."

[0045] Furthermore, in this specification, "at least one of A, B and C" can mean "A only," "B only," "C only," or "any combination of A, B and C." Also, "at least one of A, B or C" or "at least one of A, B and / or C" can mean "at least one of A, B and C."

[0046] Furthermore, parentheses used in this specification can mean "for example." Specifically, when "prediction (intra prediction)" is displayed, "intra prediction" may be proposed as an example of "prediction." In other words, "prediction" in this specification is not limited to "intra prediction," and "intra prediction" may be proposed as an example of "prediction." Also, when "prediction (i.e., intra prediction)" is displayed, "intra prediction" may be proposed as an example of "prediction."

[0047] In this specification, technical features described individually in the same figure may be embodied individually or simultaneously.

[0048] Figure 1 shows the video / image coding system related to this disclosure.

[0049] Referring to Figure 1, the video / image coding system may include a first device (source device) and a second device (receiving device).

[0050] A source device can transmit encoded video / image information or data to a receiving device in the form of a file or streaming via a digital storage medium or network. The source device may include a video source, an encoding device, and a transmission unit. The receiving device may include a receiving unit, a decoding device, and a renderer. The encoding device may also be called a video / image encoding device, and the decoding device may also be called a video / image decoding device. The transmitter may be included in the encoding device. The receiver may be included in the decoding device. The renderer may include a display unit, which may consist of a separate device or external component.

[0051] A video source can acquire video / images through processes such as video / image capture, synthesis, or generation. A video source may include a video / image capture device and / or a video / image generation device. A video / image capture device may include one or more cameras, a video / image archive containing previously captured video / images, etc. A video / image generation device may include a computer, tablet, and smartphone, etc., and can generate video / images (electronically). For example, virtual video / images may be generated through a computer, in which case the video / image capture process may be replaced by the process of generating the related data.

[0052] An encoding device can encode input video / image data. The encoding device can perform a series of steps, such as prediction, transformation, and quantization, for compression and coding efficiency. The encoded data (encoded video / image information) may be output in the form of a bitstream.

[0053] The transmission unit can transmit encoded video / image information or data output in bitstream format to the receiving unit of a receiving device via a digital storage medium or network in the form of a file or streaming. The digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, and SSD. The transmission unit may include elements for generating media files in a predetermined file format and may include elements for transmission via a broadcast / communication network. The receiving unit can receive / extract the bitstream and transmit it to a decoding device.

[0054] A decoding device can decode video / images by performing a series of steps, such as inverse quantization, inverse transformation, and prediction, corresponding to the operation of an encoding device.

[0055] The renderer can render the decoded video / image. The rendered video / image may be displayed on the display unit.

[0056] Figure 2 is a schematic block diagram of an encoding device to which the embodiments of this disclosure can be applied, in which video / image signal encoding is performed.

[0057] Referring to Figure 2, the encoding device 200 may include an image partitioner (210), a predictor (220), a residual processor (230), an entropy encoder (240), an adder (250), a filter (260), and a memory (270). The predictor (220) may include an inter-predictor (221) and an intra-predictor (222). The residual processor (230) may include a transformer (232), a quantizer (233), a dequantizer (234), and an inverse transformer (235). The residual processor (230) may further include a subtractor (231). The addition unit 250 may be called a reconstructor or a reconstructed block generator. The above-described video splitting unit 210, prediction unit 220, residual processing unit 230, entropy encoding unit 240, addition unit 250, and filtering unit 260 may be composed of one or more hardware components (e.g., an encoding device chipset or processor) depending on the embodiment. The memory 270 may also include a DPB (decoded picture buffer) and may be composed of a digital storage medium. The hardware components may further include the memory 270 as an internal / external component.

[0058] The video splitting unit 210 can split the input video (or picture, frame) input to the encoding device 200 into one or more processing units. For example, the processing unit may be called a coding unit (CU). In this case, the coding unit may be recursively split from a coding tree unit (CTU) or the largest coding unit (LCU) using a QTBTTT (Quad-tree binary-tree ternary-tree) structure.

[0059] As an example, a single coding unit may be divided into multiple coding units having deeper depths based on a quad-tree structure, a binary tree structure, and / or a tertiary structure. In this case, for example, the quad-tree structure may be applied first, followed by the binary tree structure and / or tertiary structure. Alternatively, the binary tree structure may be applied before the quad-tree structure. The coding procedure according to this specification may be performed based on a final coding unit that is not further divided. In this case, based on coding efficiency due to image characteristics, the largest coding unit may be immediately used as the final coding unit, or, if necessary, the coding unit may be recursively divided into coding units of lower depths, and the coding unit with the optimal size may be used as the final coding unit. Here, the coding procedure may include procedures such as prediction, transformation, and restoration, which will be described later.

[0060] As another example, the processing unit may further include a prediction unit (PU) or a transform unit (TU). In this case, the prediction unit and the transform unit may be separated or partitioned from the final coding unit described above. The prediction unit may be a unit of sample prediction, and the transform unit may be a unit that derives a transform coefficient and / or a unit that derives a residual signal from the transform coefficient.

[0061] The term "unit" may be used interchangeably with terms such as "block" or "area." Generally, an MxN block may represent a set of samples or transform coefficients consisting of M columns and N rows. A sample may generally represent a pixel or a pixel value, and may represent only the pixel / pixel value of the lumen component, or only the pixel / pixel value of the chroma component. The term "sample" may be used in conjunction with a single picture (or image), pixel, or pel.

[0062] The encoding device 200 can generate a residual signal (residual block, residual sample array) by subtracting the prediction signal (prediction block, prediction sample array) output from the inter-prediction unit 221 or intra-prediction unit 222 from the input video signal (original block, original sample array), and the generated residual signal is transmitted to the conversion unit 232. In this case, the unit that subtracts the prediction signal (prediction block, prediction sample array) from the input video signal (original block, original sample array) within the encoding device 200 may be called the subtraction unit 231.

[0063] The prediction unit 220 can make predictions for the block to be processed (hereinafter referred to as the current block) and generate a predicted block containing prediction samples for the current block. The prediction unit 220 can determine whether intra-prediction or inter-prediction is applied to the current block or on a CU basis. As will be described later in the explanation of each prediction mode, the prediction unit 220 can generate various information related to prediction, such as prediction mode information, and transmit it to the entropy encoding unit 240. The information related to prediction may be encoded by the entropy encoding unit 240 and output in the form of a bitstream.

[0064] The intra-prediction unit 222 can predict the current block by referring to a sample in the current picture. The referenced sample may be located in the vicinity (neighbor) of the current block, or it may be located at a certain distance from the current block, depending on the prediction mode. In intra-prediction, the prediction mode may include one or more non-directional modes and multiple directional modes. The non-directional mode may include at least one of DC mode or planar mode. The directional mode may include 33 or 65 directional modes, depending on the degree of fineness of the prediction direction. However, this is an example, and more or fewer directional modes may be used depending on the settings. The intra-prediction unit 222 can also determine the prediction mode to be applied to the current block using the prediction modes applied to the surrounding blocks.

[0065] The interprediction unit 221 can guide a predicted block for the current block based on a reference block (reference sample array) identified by a motion vector on the reference picture. In this case, in order to reduce the amount of motion information transmitted in interprediction mode, motion information can be predicted in units of blocks, subblocks, or samples based on the correlation of motion information between the surrounding block and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include interprediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of interprediction, the surrounding block may include a spatial neighboring block existing in the current picture and a temporal neighboring block existing in the reference picture. The reference picture containing the reference block and the reference picture containing the temporal neighboring block may be the same or different. The temporal neighboring block may be called a collocated reference block, colCU, etc., and the reference picture containing the temporal neighboring block may be called a collocated picture (colPic). For example, the interpretation unit 221 can construct a motion information candidate list based on surrounding blocks and generate information indicating which candidates are used to derive the motion vector and / or reference picture index of the current block. Interpretation may be performed based on various prediction modes; for example, in skip mode and merge mode, the interpretation unit 221 can use the motion information of surrounding blocks as the motion information of the current block. In skip mode, unlike merge mode, the residual signal does not need to be transmitted.In motion vector prediction (MVP) mode, the motion vectors of surrounding blocks are used as motion vector predictors, and the motion vector difference is signaled to indicate the motion vector of the current block.

[0066] The prediction unit 220 can generate prediction signals based on various prediction methods described later. For example, the prediction unit can apply intra-prediction or inter-prediction for predictions on a single block, and can also apply intra-prediction and inter-prediction simultaneously. This may be called CIIP (combined inter and intra prediction) mode. The prediction unit may also be based on intra-block copy (IBC) prediction mode or palette mode for predictions on blocks. The IBC prediction mode or palette mode may be used for coding content images / videos such as games, as in SCC (screen content coding). IBC basically performs predictions within the current picture, but can be performed similarly to inter-prediction in that it derives reference blocks within the current picture. That is, IBC can use at least one of the inter-prediction methods described herein. Palette mode may be considered an example of intra-coding or intra-prediction. When palette mode is applied, in-picture sample values ​​can be signaled based on information about the palette table and palette index. The prediction signal generated by the prediction unit 220 may be used to generate a restoration signal or to generate a residual signal.

[0067] The transformation unit 232 can generate transformation coefficients by applying a transformation method to the residual signal. For example, the transformation method may include at least one of the following: DCT (Discrete Cosine Transform), DST (Discrete Sine Transform), KLT (Karhunen-Loeve Transform), GBT (Graph-Based Transform), or CNT (Conditionally Non-linear Transform). Here, GBT refers to the transformation obtained from a graph when the relationship information between pixels is represented by a graph. CNT refers to the transformation obtained by generating a prediction signal using all previously restored pixels and obtaining a transformation based on it. Furthermore, the transformation process may be applied to pixel blocks of the same size that are square, or to blocks of variable size that are not square.

[0068] The quantization unit 233 quantizes the conversion coefficients and transmits them to the entropy encoding unit 240, which can encode the quantized signal (information about the quantized conversion coefficients) and output it as a bitstream. The information about the quantized conversion coefficients may be called residual information. The quantization unit 233 can rearrange the block-shaped quantized conversion coefficients into a one-dimensional vector based on the coefficient scan order, and can also generate information about the quantized conversion coefficients based on the one-dimensional vector-shaped quantized conversion coefficients.

[0069] The entropy encoding unit 240 can perform various encoding methods such as exponential Golomb, CAVLC (context-adaptive variable length coding), and CABAC (context-adaptive binary arithmetic coding). In addition to the quantized conversion coefficients, the entropy encoding unit 240 can also encode information necessary for video / image restoration (e.g., the values ​​of syntax elements) together with or separately from the quantized conversion coefficients.

[0070] The encoded information (e.g., encoded video / image information) may be transmitted or stored in the form of a bitstream in units of NAL (network abstraction layer) units. The video / image information may further include information about various parameter sets, such as an adaptation parameter set (APS), picture parameter set (PPS), sequence parameter set (SPS), or video parameter set (VPS). The video / image information may also further include general constraint information. In this specification, information and / or syntax elements transmitted / signaled from an encoding device to a decoding device may be included in the video / image information. The video / image information may be encoded by the encoding procedure described above and included in the bitstream. The bitstream may be transmitted over a network or stored on a digital storage medium. Here, the network may include broadcast networks and / or communication networks, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The signal output from the entropy encoding unit 240 may be transmitted by a transmission unit (not shown) and / or stored by a storage unit (not shown) which are configured as internal / external elements of the encoding device 200, or the transmission unit may be included in the entropy encoding unit 240.

[0071] The quantized conversion coefficients output from the quantization unit 233 may be used to generate a prediction signal. For example, by applying inverse quantization and inverse transformation to the quantized conversion coefficients in the inverse quantization unit 234 and the inverse transformation unit 235, the residual signal (residual block or residual sample) can be reconstructed. The adder unit 250 may add the reconstructed residual signal to the prediction signal output from the inter-prediction unit 221 or the intra-prediction unit 222 to generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array). When there is no residual for the block to be processed, such as when skip mode is applied, the predicted block may be used as the reconstructed block. The adder unit 250 may be called the reconstruction unit or the reconstructed block generation unit. The generated reconstructed signal may be used for intra-prediction of the next block to be processed in the current picture, and may be used for inter-prediction of the next picture after filtering, as described later. On the other hand, LMCS (luma mapping with chroma scaling) may be applied during the picture encoding and / or reconstruction process.

[0072] The filtering unit 260 can apply filtering to the restored signal to improve subjective / objective image quality. For example, the filtering unit 260 can apply various filtering methods to the restored picture to generate a modified restored picture, and the modified restored picture can be stored in the memory 270, specifically in the DPB of the memory 270. The various filtering methods may include deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc. The filtering unit 260 can generate various filtering-related information and transmit it to the entropy encoding unit 240. The filtering-related information may be encoded by the entropy encoding unit 240 and output in bitstream format.

[0073] The corrected restored picture transmitted to memory 270 may be used as a reference picture in the interpretation unit 221. This allows the encoding device to avoid prediction mismatches between the encoding device 200 and the decoding device when interpretation is applied, and also improves encoding efficiency.

[0074] The DPB in memory 270 can store the corrected restored picture for use as a reference picture in the inter-prediction unit 221. Memory 270 can store motion information of blocks from which motion information in the current picture has been derived (or encoded), and / or motion information of blocks in the picture that have already been restored. The stored motion information can be transmitted to the inter-prediction unit 221 for use as motion information of spatially surrounding blocks or motion information of temporally surrounding blocks. Memory 270 can store restored samples of restored blocks in the current picture and transmit them to the intra-prediction unit 222.

[0075] Figure 3 is a schematic block diagram of a decoding device to which the embodiments of this disclosure can be applied, in which video / image signals are decoded.

[0076] Referring to Figure 3, the decoding device 300 may be configured to include an entropy decoder (310), a residual processor (320), a predictor (330), an adder (340), a filter (350), and a memory (360). The predictor (330) may include an inter-prediction unit (332) and an intra-prediction unit (331). The residual processor (320) may include a dequantizer (321) and an inverse transformer (321).

[0077] The entropy decoding unit 310, the residual processing unit 320, the prediction unit 330, the addition unit 340, and the filtering unit 350 described above may be configured by a single hardware component (e.g., a decoding device chipset or processor) depending on the embodiment. The memory 360 may include a DPB (decoded picture buffer) and may be configured by a digital storage medium. The hardware component may further include the memory 360 as an internal / external component.

[0078] When a bitstream containing video / image information is input, the decoding device 300 can reconstruct the image in a manner corresponding to the process by which the video / image information was processed in the encoding device shown in Figure 2. For example, the decoding device 300 can derive units / blocks based on block division-related information obtained from the bitstream. The decoding device 300 can perform decoding using the processing units applied in the encoding device. Therefore, the decoding processing units may be coding units, and the coding units may be divided from a coding tree unit or a maximum coding unit according to a quad-tree structure, a binary tree structure, and / or a tertiary tree structure. One or more conversion units may be derived from the coding units. The reconstructed video signal decoded and output by the decoding device 300 may then be played back by a playback device.

[0079] The decoding device 300 can receive the signal output from the encoding device in Figure 2 in the form of a bitstream, and the received signal may be decoded by the entropy decoding unit 310. For example, the entropy decoding unit 310 can parse the bitstream and derive information necessary for video restoration (or picture restoration) (e.g., video / image information). The video / image information may further include information about various parameter sets such as the adaptation parameter set (APS), picture parameter set (PPS), sequence parameter set (SPS), or video parameter set (VPS). The video / image information may also further include general constraint information. The decoding device can decode the picture based on the parameter set information and / or the general constraint information. The signal / received information and / or syntax elements described later in this specification may be decoded by the decoding procedure and obtained from the bitstream. For example, the entropy decoding unit 310 can decode information in the bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output the values ​​of syntax elements necessary for image restoration and the quantized values ​​of conversion coefficients related to the residual. More specifically, the CABAC entropy decoding method receives bins corresponding to each syntax element in the bitstream, determines a context model using the syntax element information to be decoded and the decoding information of the surrounding and decoded blocks or symbol / bin information decoded in a previous stage, predicts the probability of bin occurrence based on the determined context model, and generates symbols corresponding to the values ​​of each syntax element by performing arithmetic decoding of the bins. At this time, after determining the context model, the CABAC entropy decoding method can update the context model using the symbol / bin information decoded for the context model of the next symbol / bin.Information related to prediction from the information decoded by the entropy decoding unit 310 is provided to the prediction unit (inter-prediction unit 332 and intra-prediction unit 331), and residual values ​​that have been entropy decoded by the entropy decoding unit 310, i.e., quantized conversion coefficients and related parameter information, may be input to the residual processing unit 320. The residual processing unit 320 can derive residual signals (residual blocks, residual samples, residual sample arrays). In addition, information related to filtering from the information decoded by the entropy decoding unit 310 may be provided to the filtering unit 350. On the other hand, a receiving unit (not shown) that receives signals output from the encoding device may be further configured as an internal / external element of the decoding device 300, or the receiving unit may be a component of the entropy decoding unit 310.

[0080] On the other hand, the decoding device according to this specification may be called a video / image / picture decoding device, and the decoding device may be divided into an information decoding device (video / image / picture information decoding device) and a sample decoding device (video / image / picture sample decoding device). The information decoding device may include the entropy decoding unit 310, and the sample decoding device may include at least one of the inverse quantization unit 321, inverse transformation unit 322, addition unit 340, filtering unit 350, memory 360, inter-prediction unit 332, and intra-prediction unit 331.

[0081] The inverse quantization unit 321 can inverse quantize the quantized transformation coefficients and output the transformation coefficients. The inverse quantization unit 321 can rearrange the quantized transformation coefficients in a two-dimensional block form. In this case, the rearrangement can be performed based on the coefficient scan order performed by the encoding device. The inverse quantization unit 321 can perform inverse quantization on the quantized transformation coefficients using quantization parameters (e.g., quantization step size information) and obtain the transformation coefficients.

[0082] The inverse conversion unit 322 performs an inverse conversion on the conversion coefficients to obtain a resistive signal (residual block, resistive sample array).

[0083] The prediction unit 320 can make predictions for the current block and generate a predicted block containing prediction samples for the current block. Based on the prediction information output from the entropy decoding unit 310, the prediction unit 320 can determine whether intra-prediction or inter-prediction is applied to the current block and determine a specific intra / inter-prediction mode.

[0084] The prediction unit 320 can generate prediction signals based on various prediction methods described later. For example, the prediction unit 320 can apply intra-prediction or inter-prediction for prediction of a single block, or it can apply intra-prediction and inter-prediction simultaneously. This may be called CIIP (combined inter and intra prediction) mode. The prediction unit may also be based on intra-block copy (IBC) prediction mode or palette mode for prediction of a block. The IBC prediction mode or palette mode may be used for content video / movie coding such as SCC (screen content coding) for games. IBC basically performs prediction within the current picture, but can be performed similarly to inter-prediction in that it derives a reference block within the current picture. That is, IBC can use at least one of the inter-prediction methods described herein. Palette mode can be considered an example of intra-coding or intra-prediction. When palette mode is applied, information regarding the palette table and palette index may be included in the video / movie information and signaled.

[0085] The intra-prediction unit 331 can predict the current block by referring to a sample in the current picture. The referenced sample may be located in the vicinity (neighbor) of the current block, or it may be located at a certain distance from the current block, depending on the prediction mode. In intra-prediction, the prediction mode may include one or more non-directional modes and multiple directional modes. The intra-prediction unit 331 can also determine the prediction mode to be applied to the current block using the prediction modes applied to the surrounding blocks.

[0086] The interprediction unit 332 can derive a predicted block for the current block based on a reference block (reference sample array) identified by motion vectors on the reference picture. In this case, in order to reduce the amount of motion information transmitted in interprediction mode, motion information can be predicted in units of blocks, subblocks, or samples based on the correlation of motion information between surrounding blocks and the current block. The motion information may include motion vectors and reference picture indices. The motion information may further include interprediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of interprediction, surrounding blocks may include spatial neighboring blocks present in the current picture and temporal neighboring blocks present in the reference picture. For example, the interprediction unit 332 can construct a motion information candidate list based on surrounding blocks and derive the motion vector and / or reference picture index of the current block based on the received candidate selection information. Interprediction may be performed based on various prediction modes, and the prediction information may include information indicating the interprediction mode for the current block.

[0087] The adder 340 can generate a restored signal (restored picture, restored block, restored sample array) by adding the acquired residual signal to the predicted signal (predicted block, predicted sample array) output from the prediction unit (including the inter-prediction unit 332 and / or intra-prediction unit 331). When there is no residual for the block to be processed, such as when skip mode is applied, the predicted block may be used as the restored block.

[0088] The summing unit 340 may be called the restoration unit or the restoration block generation unit. The generated restoration signal may be used for intra-prediction of the next block to be processed in the current picture, and may be output after filtering as described later, or may be used for intra-prediction of the next picture. On the other hand, LMCS (luma mapping with chroma scaling) may be applied during the picture decoding process.

[0089] The filtering unit 350 can apply filtering to the restored signal to improve subjective / objective image quality. For example, the filtering unit 350 can apply various filtering methods to the restored picture to generate a modified restored picture, and transmit the modified restored picture to the memory 360, specifically to the DPB of the memory 360. The various filtering methods may include deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, and the like.

[0090] The restored picture stored (modified) in the DPB of memory 360 may be used as a reference picture in the inter-prediction unit 332. Memory 360 can store motion information of blocks from which motion information in the current picture has been derived (or decoded), and / or motion information of blocks in the picture that have already been restored. The stored motion information can be transmitted to the inter-prediction unit 332 for use as motion information of spatially surrounding blocks or motion information of temporally surrounding blocks. Memory 360 can store restored samples of restored blocks in the current picture and transmit them to the intra-prediction unit 331.

[0091] In this specification, the embodiments described for the filtering unit 260, the inter-prediction unit 221, and the intra-prediction unit 222 of the encoding device 200 may be applied identically or in a corresponding manner to the filtering unit 350, the inter-prediction unit 332, and the intra-prediction unit 331 of the decoding device 300, respectively.

[0092] Figure 4 is a diagram illustrating an embodiment of the present disclosure, which shows a video decoding method performed by a video decoding device.

[0093] Referring to Figure 4, the coding block can be divided based on a predetermined division type (S400).

[0094] Here, a coding block can mean a coding tree block, or a coding block generated by a block split based on a predetermined split type. The split type relating to this disclosure may include at least one of a quad split, a binary split, or a ternary split. For example, the coding block may be one of four coding blocks generated by a quad split, or one of a plurality of coding blocks generated by either a binary split or a ternary split.

[0095] Furthermore, the coding tree blocks relating to this disclosure may be defined as square blocks. However, they are not limited to this, and coding tree blocks may also be defined as non-square blocks. Also, coding blocks generated by block partitioning based on a predetermined partitioning type may be square blocks or non-square blocks. For example, depending on the form of the coding block to be partitioned (hereinafter referred to as the current block), the coding blocks generated by quad partitioning may be square blocks or non-square blocks. Depending on the form of the current block, the number or range of partitioning types allowed / applied to the current block may differ from one another. The partitioning types relating to this disclosure will be described in detail below.

[0096] 1. Quad split

[0097] A quad split can mean a type of split that divides a current block into four coding blocks. For example, a quad split can divide a current block into four coding blocks by one horizontal line and one vertical line crossing the center of the block, where the four coding blocks may be of the same size. A quad split may be applied to square blocks or to non-square blocks. The quad splits in this disclosure may be distinguished into a square quad split, which divides a square block into four, and a non-square quad split, which divides a non-square block into four.

[0098] The non-square quad partition described above may be a quad partition applied when the widths and heights of the current blocks are different from each other. The widths and heights of the four coding blocks produced by the non-square quad partition may be different from each other. It may be applied when the ratio of the current block widths to heights is 1:N or N:1, where N may be an integer of 2, 3, 4, 5, 6, or more.

[0099] For example, if the current block's width-to-height ratio is 1:2 or 2:1, the current block may be divided into four non-square coding blocks based on a quad partition. In this case, if the width and height of the current block are defined as cuWidth and cuHeight, respectively, the width and height of the four non-square coding blocks generated by the quad partition may be cuWidth / 2 and cuHeight / 2.

[0100] Similarly, if the current block's width-to-height ratio is 1:4 or 4:1, the current block may be divided into four non-square coding blocks based on a quad partition. In this case, if the width and height of the current block are defined as cuWidth and cuHeight, respectively, the width and height of the four non-square coding blocks generated by the quad partition may be cuWidth / 2 and cuHeight / 2. However, the non-square quad partition is not limited to non-square blocks with width-to-height ratios of 1:2, 2:1, 1:4, or 4:1, but may be extended to non-square blocks with width-to-height ratios of 1:3, 3:1, 1:5, 5:1, 1:6, or 6:1.

[0101] Whether the non-square quad partitioning is permitted and / or applicable may be determined based on the encoding parameters of the current block. The encoding parameters of the current block may include at least one of size, shape, position, tree type, or component type. Here, the size of the current block may be expressed as at least one of width, height, maximum / minimum value of width and height, product of width and height, sum of width and height, or ratio of width and height. The shape of the current block may mean whether the width and height of the current block are the same. The position of the current block may mean whether the current block is located on a picture boundary.

[0102] For example, non-square quad partitioning may be permitted or applied when the current block size is greater than or equal to a predetermined threshold size (Condition 1). Conversely, non-square quad partitioning may not be permitted for the current block when the current block size is smaller than a predetermined threshold size. The threshold size can mean the minimum block size for which non-square quad partitioning is permitted. Information regarding the minimum block size for which non-square quad partitioning is permitted may be signaled in at least one of the higher-level syntax such as the sequence parameter set (SPS), picture parameter set (PPS), or slice header (SH). Alternatively, the minimum block size for which non-square quad partitioning is permitted may be a value that is identically predefined for the encoding and decoding devices and may be an integer of 8, 16, 32, 64, or more.

[0103] For example, if the widths and heights of the blocks are currently different, a non-square quad division may be permitted or applied (Condition 2). Conversely, if the widths and heights of the blocks are currently the same, a non-square quad division may not be permitted.

[0104] For example, even if the width and height of the current blocks are different, a non-square quad partition may be permitted or applied if the ratio of the current block's width to height is 1:M or M:1 (Condition 3). Conversely, if the ratio of the current block's width to height is not 1:M or M:1, a non-square quad partition may not be permitted for the current block. Specifically, a non-square quad partition may be permitted or applied if the ratio of the current block's width to height is 1:2 or 2:1. Furthermore, a non-square quad partition may be permitted or applied if the ratio of the current block's width to height is 1:4 or 4:1. Also, when partitioning coding blocks, asymmetric binary partitioning, as described later, may be permitted, in which case a non-square quad partition may be permitted or applied even for current blocks with a width-to-height ratio of 1:3 or 3:1.

[0105] For example, a non-square quad division may be permitted or applied when the current block is located within the picture (Condition 4). Conversely, a non-square quad division may not be permitted or applied to the current block when the current block is located within the picture boundary. That is, a non-square quad division may not be permitted to the current block if the right boundary of the current block is outside the right boundary of the picture and / or the lower boundary of the current block is outside the lower boundary of the picture. Alternatively, a non-square quad division may be permitted or applied when the current block is located within the picture or when the boundary of the current block is outside both the right and lower boundaries of the picture. Conversely, a non-square quad division may not be permitted if the boundary of the current block is outside only either the right boundary or the lower boundary of the picture. Alternatively, a non-square quad division may be permitted or applied when the current block is located within the picture or when the boundary of the current block is outside either the right boundary or the lower boundary of the picture. Conversely, if the current block's boundary falls outside both the right and bottom boundaries of the picture, a non-square quad division may not be permitted. However, this is not limited to the case where the current block's right boundary falls outside the picture's right boundary and / or the current block's bottom boundary falls outside the picture's bottom boundary, a non-square quad division may be permitted for the current block.

[0106] At least one of the aforementioned conditions 1 to 4 may be defined identically for the encoding device and the decoding device. Non-square quad partitioning may be permitted or applied if it satisfies the same predefined conditions for the encoding device and the decoding device. Alternatively, non-square quad partitioning may be permitted or applied if it satisfies any one of the aforementioned conditions 1 to 4.

[0107] Quad splitting may be performed adaptively based on the quad flag (split_qt_flag). If the value of split_qt_flag is 1, the current block is split into 4 coding blocks; if the value of split_qt_flag is 0, the current block does not need to be split into 4 coding blocks.

[0108] The quad flag may be used to indicate whether a square quad partition is applied. Alternatively, the quad flag may be used to indicate whether a non-square quad partition is applied without signaling or inducing any additional flags to indicate whether a non-square quad partition is applied. For example, if the current block is square, the quad flag may indicate whether the current square block will be divided into four square coding blocks. If the current block is not square, the quad flag may indicate whether the current non-square block will be divided into four non-square coding blocks. Alternatively, an additional flag may be defined, signaled, or induced separately from the quad flag to indicate whether a non-square quad partition is applied. The following describes in detail how to signal or induce information regarding quad partitions.

[0109] Method 1

[0110] The quad flag may be signaled only if at least one of binary partitioning or ternary partitioning is permitted and at least one of square quad partitioning or non-square quad partitioning is permitted.

[0111] As an example, as shown in Table 1 below, the quad flag may be signaled in the bitstream if at least one of allowSplitBtVer, allowSplitBtHor, allowSplitTtVer, or allowSplitTtHor is true and at least one of allowSplitQT or allowSplitNQT is true. allowSplitBtVer and allowSplitBtHor are variables that indicate whether binary splitting is allowed, and allowSplitTtVer and allowSplitTtHor are variables that indicate whether ternary splitting is allowed. Also, allowSplitQT is a variable that indicates whether square quad splitting is allowed, and allowSplitNQT is a variable that indicates whether non-square quad splitting is allowed.

[0112] [Table 1]

[0113] In Table 1, allowSplitQT may be set to false (FALSE) if any one of the conditions in Table 2 is met, and to true (TRUE) otherwise.

[0114] [Table 2]

[0115] According to Table 2, allowSplitNQT is set to false if the current block is a block generated by at least one binary or ternary split.

[0116] In Table 1, allowSplitNQT may be set to false (FALSE) if any one of the conditions in Table 3 is met, and to true (TRUE) otherwise.

[0117] [Table 3]

[0118] According to Table 3, allowSplitNQT may be set to true even if the current block is a block generated by at least one binary or ternary split. In this case, the quad flag may be signaled in the bitstream if at least one of allowSplitBtVer, allowSplitBtHor, allowSplitTtVer, or allowSplitTtHor is true.

[0119] Alternatively, allowSplitNQT may be set to true if it satisfies a predefined condition that includes at least one of the conditions 1 to 4 described above, and to false otherwise. Alternatively, allowSplitNQT may be set to true if it satisfies the conditions in Table 3, plus the predefined conditions described above, and to false otherwise.

[0120] On the other hand, if allowSplitBtVer, allowSplitBtHor, allowSplitTtVer, allowSplitTtHor, allowSplitQT, and allowSplitNQT are all false, the quad flag does not need to be signaled in the bitstream. However, the value of the quad flag may be induced based on the split flag, which indicates whether the current block will be split into multiple coding blocks. For example, if the split flag for the current block indicates that the current block will be split into multiple coding blocks (split_cu_flag=1), the value of the quad flag may be induced to 1.

[0121] Alternatively, the value of the quad flag may be induced to 1 if allowSplitBtVer, allowSplitBtHor, allowSplitTtVer, and allowSplitTtHor are all false, but at least one of allowSplitQT or allowSplitNQT is true. In this case, the value of the quad flag may be induced to 1 regardless of whether the split flag value for the current block is 1 or not. Alternatively, the value of the quad flag may be restricted to being induced to 1 only if the split flag value for the current block is 1.

[0122] Alternatively, the value of the quad flag may be induced to 0 if at least one of allowSplitBtVer, allowSplitBtHor, allowSplitTtVer, or allowSplitTtHor is true, but both allowSplitQT and allowSplitNQT are false.

[0123] Table 1 above is just one example of how the quad flag may be signaled, and is not limited to this. For example, the quad flag may be signaled if at least one of allowSplitQT or allowSplitNQT is true, regardless of whether at least one of allowSplitBtVer, allowSplitBtHor, allowSplitTtVer, or allowSplitTtHor is true.

[0124] On the other hand, the quad flag may be signaled in the bitstream only if the value of the split flag is 1. The split flag may be signaled in the bitstream if at least one of the following is allowed: square quad splitting, non-square quad splitting, binary splitting, or ternary splitting. For example, as shown in Table 4, the split flag (split_cu_flag) may be signaled in the bitstream if at least one of the following is true: allowSplitBtVer, allowSplitBtHor, allowSplitTtVer, allowSplitTtHor, allowSplitQT, or allowSplitNQT. In other words, even if allowSplitBtVer, allowSplitBtHor, allowSplitTtVer, allowSplitTtHor, and allowSplitQT are all false, the split flag may be signaled in the bitstream if allowSplitNQT is true.

[0125] [Table 4]

[0126] In Table 4, allowSplitQT and allowSplitNQT can be derived as explained with reference to Tables 2 and 3, and redundant explanations are omitted here.

[0127] The quad flag for the current block may be entropy-decoded based on a predetermined context model, where the context model may be derived based on the partition depth of the surrounding blocks adjacent to the current block. The surrounding blocks are blocks encoded before the current block and may include at least one of the following: an upper surrounding block, a left surrounding block, a left upper surrounding block, a left lower block, or a right upper surrounding block.

[0128] The partition depth of the surrounding block can mean the partition depth due to quad partitioning. For example, the partition depth of the surrounding block can mean the partition depth due to non-square quad partitioning excluding the partition depth due to square quad partitioning. Alternatively, the partition depth of the surrounding block can mean the partition depth due to square quad partitioning excluding the partition depth due to non-square quad partitioning. Alternatively, the partition depth of the surrounding block can mean the sum of the partition depth due to square quad partitioning and the partition depth due to non-square quad partitioning.

[0129] Alternatively, the partition depth of surrounding blocks required to guide the context model of the quad flag may be defined differently depending on whether allowSplitQT and allowSplitNQT are true or not. For example, when both allowSplitQT and allowSplitNQT are true, the partition depth of surrounding blocks required to guide the context model of the quad flag may be defined as the sum of the partition depth by square quad partitioning and the partition depth by non-square quad partitioning. When allowSplitQT is true but allowSplitNQT is false, the partition depth of surrounding blocks required to guide the context model of the quad flag may be defined as the partition depth by square quad partitioning. When allowSplitQT is false but allowSplitNQT is true, the partition depth of surrounding blocks required to guide the context model of the quad flag may be defined as the partition depth by non-square quad partitioning.

[0130] Alternatively, the context model for the quad flag for a non-square quad partition may be derived based on the partition depth of the current block due to the non-square quad partition. For example, the context model for the quad flag for a non-square quad partition can be derived by comparing the partition depth of the current block due to the non-square quad partition with a predefined threshold. In this case, the threshold is a value that is the same and predefined for both the encoding and decoding devices, and may be an integer of 1, 2, 3, or more.

[0131] Alternatively, the context model of the quad flag may be derived based on both the partition depth of the surrounding blocks and the partition depth of the current block due to the non-square quad partitioning.

[0132] As mentioned above, the partition depth for quad partitioning may be defined as the sum of the partition depth for square quad partitioning and the partition depth for non-square quad partitioning, and the partition depth for square quad partitioning may be defined independently of the partition depth for non-square quad partitioning. The method for calculating such partition depths will be explained in detail with reference to Figures 10 to 12.

[0133] Method 2

[0134] The quad flag may be signaled only if at least one of binary or terminally partitioning is permitted, and quad partitioning is permitted.

[0135] As an example, as shown in Table 5 below, the quad flag may be signaled in the bitstream if at least one of allowSplitBtVer, allowSplitBtHor, allowSplitTtVer, or allowSplitTtHor is true and allowSplitQT is true. allowSplitBtVer and allowSplitBtHor are variables indicating whether binary splitting is allowed, and allowSplitTtVer and allowSplitTtHor are variables indicating whether ternary splitting is allowed. allowSplitQT is a variable indicating whether square or non-square quad splitting is allowed.

[0136] [Table 5]

[0137] The method for inducing allowSplitQT in Table 5 is described below.

[0138] First, if the width and height of the blocks are currently the same, then allowSplitQT is set to false if any one of the conditions in Table 6 is met; otherwise, allowSplitQT may be set to true.

[0139] [Table 6]

[0140] According to Table 6, even if the current block has the same width and height, if the current block is a block generated by at least one binary or ternary split, allowSplitQT is set to false, and furthermore, the quad flag is not signaled in the bitstream.

[0141] On the other hand, if the width and height of the blocks are currently different, allowSplitQT may be set to false if any one of the conditions in Table 7 is met, and to true otherwise.

[0142] [Table 7]

[0143] According to Table 7, allowSplitQT may be set to true even if the current block is a block generated by at least one binary or ternary split, provided that the current block's width and height are different from each other. In this case, the quad flag may be signaled in the bitstream if at least one of allowSplitBtVer, allowSplitBtHor, allowSplitTtVer, or allowSplitTtHor is true.

[0144] Alternatively, allowSplitQT may be set to true if it satisfies a predefined condition that includes at least one of the conditions 1 to 4 described above, and to false otherwise. Alternatively, allowSplitQT may be set to true if it satisfies the conditions in Table 7, plus the predefined conditions described above, and to false otherwise.

[0145] On the other hand, if allowSplitBtVer, allowSplitBtHor, allowSplitTtVer, allowSplitTtHor, and allowSplitQT are all false, the quad flag does not need to be signaled in the bitstream. However, the value of the quad flag may be induced based on the split flag, which indicates whether the current block will be split into multiple coding blocks. For example, if the split flag for the current block indicates that the current block will be split into multiple coding blocks (split_cu_flag=1), the value of the quad flag may be induced to 1.

[0146] Alternatively, the value of the quad flag may be induced to 1 if allowSplitBtVer, allowSplitBtHor, allowSplitTtVer, and allowSplitTtHor are all false, but allowSplitQT is true. In this case, the value of the quad flag may be induced to 1 regardless of whether the split flag value for the current block is 1 or not. Alternatively, the value of the quad flag may be restricted to being induced to 1 only if the split flag value for the current block is 1.

[0147] Alternatively, the value of the quad flag may be induced to 0 if at least one of allowSplitBtVer, allowSplitBtHor, allowSplitTtVer, or allowSplitTtHor is true, but allowSplitQT is false.

[0148] Table 5 above is just one example of how the quad flag may be signaled, and is not limited to this. For example, the quad flag may be signaled when allowSplitQT is true, regardless of whether at least one of allowSplitBtVer, allowSplitBtHor, allowSplitTtVer, or allowSplitTtHor is true.

[0149] On the other hand, the quad flag may be signaled in the bitstream only if the value of the split flag is 1. The split flag may be signaled in the bitstream if at least one of quad splitting, binary splitting, or ternary splitting is allowed. For example, as shown in Table 8, the split flag (split_cu_flag) may be signaled in the bitstream if at least one of allowSplitBtVer, allowSplitBtHor, allowSplitTtVer, allowSplitTtHor, or allowSplitQT is true.

[0150] [Table 8]

[0151] In Table 8, allowSplitQT can be derived as explained with reference to Tables 6 and 7, and redundant explanations are omitted here.

[0152] The quad flag for the current block may be entropy-decoded based on a predetermined context model, where the context model may be derived based on the partition depth of the surrounding blocks adjacent to the current block. The surrounding blocks are blocks encoded before the current block and may include at least one of the following: an upper surrounding block, a left surrounding block, a left upper surrounding block, a left lower block, or a right upper surrounding block.

[0153] The partition depth of the surrounding block can mean the partition depth due to quad partitioning. For example, the partition depth of the surrounding block can mean the sum of the partition depth due to square quad partitioning and the partition depth due to non-square quad partitioning. However, it is not limited to this, and the partition depth of the surrounding block can also mean only the partition depth due to square quad partitioning, or only the partition depth due to non-square quad partitioning.

[0154] Alternatively, the context model for the quad flag for a non-square quad partition may be derived based on the partition depth of the current block due to the non-square quad partition. For example, the context model for the quad flag for a non-square quad partition can be derived by comparing the partition depth of the current block due to the non-square quad partition with a predefined threshold. In this case, the threshold is a value that is the same and predefined for both the encoding and decoding devices, and may be an integer of 1, 2, 3, or more.

[0155] Alternatively, the context model of the quad flag may be derived based on both the partition depth of the surrounding blocks and the partition depth of the current block due to the non-square quad partitioning.

[0156] As mentioned above, the partition depth for quad partitioning may be defined as the sum of the partition depth for square quad partitioning and the partition depth for non-square quad partitioning, and the partition depth for square quad partitioning may be defined independently of the partition depth for non-square quad partitioning. The method for calculating such partition depths will be explained in detail with reference to Figures 10 to 12.

[0157] Method 3

[0158] The aforementioned quad flag (split_qt_flag) may be limited to a flag that instructs the quad division of a square coding block, and a flag for the quad division of a non-square coding block (split_nqt_flag) may be further defined. Hereafter, split_qt_flag will be referred to as the first quad flag and split_nqt_flag as the second quad flag. That is, the second quad flag can indicate whether or not a non-square coding block is divided into four non-square coding blocks.

[0159] The second quad flag is signaled when allowSplitNQT is true, and does not need to be signaled when allowSplitNQT is false. Here, allowSplitNQT may be set to false if any one of the conditions in Table 3 above is met, and to true otherwise. Alternatively, allowSplitNQT may be set to true if a predefined condition is met that includes at least one of the conditions 1 to 4 above, and to false otherwise. Alternatively, allowSplitNQT may be set to true if, in addition to the conditions in Table 3, the predefined condition mentioned above is also met, and to false otherwise.

[0160] Even if allowSplitNQT is true, the second quad flag is signaled if the current block widths and heights are different, but does not need to be signaled if the current block widths and heights are the same.

[0161] The second quad flag may be signaled if the current block corresponds to a leaf node in a tree structure. Whether or not the current block corresponds to a leaf node in a tree structure may be determined based on a split flag that indicates whether or not the current block is divided into multiple coding blocks. For example, if the value of the split flag is 1, the current block may be determined not to be a leaf node in a tree structure, and if the value of the split flag is 0, the current block may be determined to be a leaf node in a tree structure.

[0162] The second quad flag for the current block may be entropy-decoded based on a predetermined context model. Here, the context model may be derived based on the partition depth of the surrounding blocks adjacent to the current block. The surrounding blocks are blocks encoded before the current block and may include at least one of the following: an upper surrounding block, a left surrounding block, an upper left surrounding block, a lower left block, or an upper right surrounding block. Here, the surrounding blocks may be the same as the surrounding blocks used to derive the context model for the first quad flag. Alternatively, the position of the surrounding blocks used to derive the context model for the second quad flag may be defined to be different from the position of the surrounding blocks used to derive the context model for the first quad flag.

[0163] The partition depth of the surrounding block can mean the partition depth due to quad partitioning. For example, the partition depth of the surrounding block can mean the partition depth due to non-square quad partitioning excluding the partition depth due to square quad partitioning. Alternatively, the partition depth of the surrounding block can mean the partition depth due to square quad partitioning excluding the partition depth due to non-square quad partitioning. Alternatively, the partition depth of the surrounding block can mean the sum of the partition depth due to square quad partitioning and the partition depth due to non-square quad partitioning.

[0164] Alternatively, the context model for the second quad flag for the current block may be derived based on the partition depth of the current block due to a non-square quad partition. For example, the context model for the quad flag for a non-square quad partition can be derived by comparing the partition depth of the current block due to a non-square quad partition with a predefined threshold. In this case, the threshold is a value that is the same and predefined for both the encoding and decoding devices, and may be an integer of 1, 2, 3, or more.

[0165] Alternatively, the context model of the second quad flag may be derived based on both the partition depth of the surrounding blocks and the partition depth of the current block due to the non-square quad partitioning.

[0166] As mentioned above, the partition depth for quad partitioning may be defined as the sum of the partition depth for square quad partitioning and the partition depth for non-square quad partitioning, and the partition depth for square quad partitioning may be defined independently of the partition depth for non-square quad partitioning. The method for calculating such partition depths will be explained in detail with reference to Figures 10 to 12.

[0167] Whether or not a quad flag signaling is applied to the current block may be determined based on whether or not the current block straddles a picture boundary and / or the position of the picture boundary that the current block straddles (e.g., right boundary, bottom boundary). For example, if the right boundary of the current block goes beyond the right boundary of the picture and the bottom boundary of the current block goes beyond the bottom boundary of the picture, a non-square quad partitioning may be implicitly applied to the current block. That is, if the right boundary of the current block goes beyond the right boundary of the picture and the bottom boundary of the current block goes beyond the bottom boundary of the picture, a non-square quad partitioning may be applied to the current block without signaling a quad flag. In this case, the value of the quad flag for the current block is induced to be 1, and a non-square quad partitioning may be enforced for the current block. On the other hand, if the right boundary of the current block deviates from the right boundary of the picture, or if the lower boundary of the current block deviates from the lower boundary of the picture, it may be determined that a non-square quad partition is permitted for the current block, and the non-square quad partition may be adaptively applied based on the quad flag signaled to the current block.

[0168] 2. Binary and Ternary Partitioning

[0169] Binary partitioning can refer to a type of partitioning that divides a current block into two coding blocks. Binary partitioning can divide a current block into two coding blocks by a single horizontal or vertical line. For example, binary partitioning may be distinguished into symmetric binary partitioning, where a single horizontal or vertical line crosses the center of the block, and asymmetric binary partitioning, where a single horizontal or vertical line does not cross the center of the block.

[0170] In the case of symmetric binary partitioning, the current block is divided into two coding blocks of the same size, while in the case of asymmetric binary partitioning, the current block may be divided into two coding blocks of different sizes. Binary partitioning may be applied to square blocks or non-square blocks. Asymmetric binary partitioning may be applied to square blocks or not. Or, asymmetric binary partitioning may be applied to non-square blocks or not. Or, asymmetric binary partitioning may be applied regardless of the block shape.

[0171] A ternary partition can refer to a type of partition that divides a current block into three coding blocks. For example, a ternary partition can divide a current block into three coding blocks by three horizontal or vertical lines that do not cross the center of the block. Here, the ratio of the width or height of the three coding blocks may be 1:2:1. A ternary partition may be applied to square blocks or non-square blocks.

[0172] Binary and ternary splitting may be performed adaptively based on a binary flag (split_binary_flag), which indicates whether a coding block should be split into two coding blocks. For example, if the binary flag is 1, the coding block may be split into two coding blocks based on binary splitting, and if the binary flag is 0, the coding block may be split into three coding blocks based on ternary splitting.

[0173] A split direction flag may be used to indicate the split direction of the binary or ternary split. The split direction flag may cause the current block to be split into two coding blocks based on horizontal binary splitting or vertical binary splitting. Similarly, the split direction flag may cause the current block to be split into three coding blocks based on horizontal ternary splitting or vertical ternary splitting. The split direction flag may be signaled before the binary flag is signaled, or after the binary flag is signaled.

[0174] Furthermore, index information may be used to identify the positions of the partition lines for asymmetric binary partitioning. The index information can identify one of any of the predefined candidate positions identical to those of the encoding device and the decoding device. The index information may be obtained when it is determined that binary partitioning is to be applied to the current block. In this case, the predefined candidate positions may include the positions of the partition lines for symmetric binary partitioning. Alternatively, the index information may be obtained only when it is determined that asymmetric binary partitioning is to be applied to the current block, even if it has been determined that binary partitioning is to be applied to the current block. In this case, the predefined candidate positions may not include the positions of the partition lines for symmetric binary partitioning, but may include the positions of the partition lines for asymmetric binary partitioning.

[0175] On the other hand, when the binary partitioning described herein is applied multiple times to a single coding block, it may result in a partitioning pattern identical to that of a non-square quad partition. To prevent such identical block partitioning patterns, binary partitioning may be restricted to cases where predefined conditions are met, as will be explained with reference to Figures 7 and 8.

[0176] The aforementioned partitioning types can be used for tree-structure-based block partitioning, which will be explained with reference to Figure 9.

[0177] Alternatively, if the current block is divided into four coding blocks by a non-square quad partition, the four coding blocks may be restricted so that no further block partitions are performed based on the partition type described above. In this case, the four coding blocks divided from the current block may be forced to correspond to leaf nodes in a tree structure, thereby improving coding efficiency by eliminating the need for additional syntax signaling for block partitioning.

[0178] Alternatively, some of the partitioning types described above may be used for tree-based block partitioning, while others may not be used for tree-based block partitioning. For example, square quad partitioning, binary partitioning, and ternary partitioning may be used for tree-based block partitioning, while non-square quad partitioning may not be used for tree-based block partitioning. Non-square quad partitioning may be used only if no further tree-based block partitioning is performed.

[0179] Referring to Figure 4, multiple coding blocks generated by dividing a coding block can be decoded sequentially according to a predetermined coding order (S410).

[0180] Figures 5 and 6 illustrate an embodiment of the present disclosure, which shows a block division method based on a predetermined division type.

[0181] Figure 5 illustrates a method for performing a non-square quad partition using the syntax for a square quad partition, without additional syntax signaling for the non-square quad partition.

[0182] Referring to Figure 5, the quad flag for the current block can be obtained (S500).

[0183] A quad flag for the current block may be signaled or induced in the bitstream based on whether a non-square quad partition is permitted. This is explained with reference to Figure 4, and a redundant explanation is omitted here.

[0184] If the value of the quad flag is 1, the current block may be divided into four non-square coding blocks based on a non-square quad partition (S510).

[0185] On the other hand, if the value of the quad flag is 0, the binary flag can be obtained for the current block (S520).

[0186] If the value of the binary flag is 1, the current block may be divided into two coding blocks based on binary partitioning (S530). On the other hand, if the value of the binary flag is 0, the current block may be divided into three coding blocks based on ternary partitioning (S540).

[0187] Figure 6 shows a method for performing a non-square quad partition by further signaling the syntax for a non-square quad partition.

[0188] According to this disclosure, a non-square quad partition may be performed on the current block only if the current block corresponds to a leaf node in a tree-structure-based block partitioning. This allows information regarding the non-square quad partitioning of the current block to be signaled when the current block corresponds to a leaf node in a tree structure.

[0189] Referring to Figure 6, the partition flag for the current block can be obtained (S600).

[0190] The splitting flag can indicate whether the current block is to be split into multiple coding blocks. Alternatively, the splitting flag can indicate whether the current block corresponds to a leaf node in a tree-structure-based block splitting. For example, a splitting flag with a value of 1 indicates that the current block does not correspond to a leaf node in a tree-structure-based block splitting, while a splitting flag with a value of 0 indicates that the current block corresponds to a leaf node in a tree-structure-based block splitting.

[0191] If the value of the division flag is 1, the first quad flag can be obtained for the current block (S610). Here, the first quad flag may indicate whether or not a square quad division is applied.

[0192] If the value of the first quad flag is 1, the current block may be divided into four square coding blocks based on a square quad partition (S620).

[0193] On the other hand, if the value of the first quad flag is 0, the binary flag can be obtained for the current block (S630).

[0194] If the value of the binary flag is 1, the current block may be divided into two coding blocks based on binary partitioning (S640). On the other hand, if the value of the binary flag is 0, the current block may be divided into three coding blocks based on ternary partitioning (S650).

[0195] If the value of the aforementioned partition flag is 0, the second quad flag can be obtained for the current block (S660). Here, the second quad flag can indicate whether or not a non-square quad partition is applied to the current block, which is a leaf node.

[0196] If the value of the second quad flag is 1, the current block may be divided into four non-square coding blocks based on a non-square quad partition (S670). In this case, the four non-square coding blocks generated by the non-square quad partition may be restricted from being divided further based on the partition type described above.

[0197] On the other hand, if the value of the second quad flag is 0, the current block does not need to be divided into multiple coding blocks (S680).

[0198] Figure 7 shows an example of a limitation on binary partitioning as described herein.

[0199] When the binary partitioning described herein is applied multiple times to a single coding block, it may result in a partitioning pattern identical to that of a non-square quad partition. To prevent such identical block partitioning patterns, binary partitioning can be restricted to be disallowed under predefined conditions.

[0200] Referring to Figure 7(a), when applying a horizontal binary partition to a coding block to generate two coding blocks, and then applying a vertical binary partition to each of the two coding blocks, a block partition with the same form as a non-square quad partition may occur.

[0201] Thus, if one coding block is split into two coding blocks by horizontal binary splitting (Condition 1), and vertical binary splitting is applied to the upper coding block of the two coding blocks (Condition 2), then vertical binary splitting can be restricted from being applied to the lower coding block. For example, if the above conditions are met, the variable allowSplitBtVer for the lower coding block may be set to false, and splitting information for the lower coding block may not be signaled. Here, the splitting information may include at least one of the binary flag or the splitting direction flag. The splitting information may be induced based on the variable allowSplitBtHor for the lower coding block, or induced to a value that is identically predetermined for the encoding device and the decoding device.

[0202] Referring to Figure 7(b), when a coding block is subjected to a vertical binary partition to generate two coding blocks, and then a horizontal binary partition is applied to each of these two coding blocks, a block partition with the same form as a non-square quad partition may occur.

[0203] In this way, if one coding block is divided into two coding blocks by vertical binary partitioning (Condition 1), and horizontal binary partitioning is applied to the left coding block of the two coding blocks (Condition 2), then it is possible to restrict horizontal binary partitioning from being applied to the right coding block.

[0204] For example, if the conditions described above are met, the variable allowSplitBtHor for the right coding block may be set to false, and splitting information for the right coding block may not be signaled. Here, the splitting information may include at least one of the binary flag or the splitting direction flag. The splitting information may be induced based on the variable allowSplitBtVer for the right coding block, or induced to a value that is identically predefined for both the encoding and decoding devices.

[0205] Figure 8 shows an example of a limitation on binary partitioning as described herein.

[0206] When the binary partitioning described herein is applied multiple times to a single coding block, four coding blocks of the same size may be generated, similar to a non-square quad partition. In this case, the binary partitioning may be restricted by considering whether the four coding blocks generated by the binary partitioning have the same coding order as the four coding blocks generated by the non-square quad partitioning.

[0207] Referring to Figure 8(a), if one coding block is divided into two coding blocks by horizontal binary partitioning (Condition 1), and vertical binary partitioning is applied to the upper coding block of the two coding blocks (Condition 2), then vertical binary partitioning can be restricted from being applied to the lower coding block. Under this condition, the two lower coding blocks within the upper coding block are encoded / decoded sequentially from left to right. Subsequently, if the lower coding block is also divided into two lower coding blocks by vertical binary partitioning, the two lower coding blocks within the lower coding block are also encoded / decoded sequentially from left to right. This has the same coding order as when the coding block is divided into four lower coding blocks by non-square quad partitioning and these are encoded / decoded sequentially in Z-scan order. In this way, vertical binary partitioning for the lower coding block can be restricted when four coding blocks obtained by multiple binary partitions have the same coding order as four coding blocks obtained by non-square quad partitioning.

[0208] For example, if the conditions described above are met, the variable allowSplitBtVer for the lower coding block may be set to false, and the splitting information for the lower coding block may not be signaled. Here, the splitting information may include at least one of the binary flag or the splitting direction flag. The splitting information may be induced based on the variable allowSplitBtHor for the lower coding block, or induced to a value that is identically predetermined for both the encoding and decoding devices.

[0209] Referring to Figure 8(b), if one coding block is divided into two coding blocks by vertical binary partitioning (Condition 1), and horizontal binary partitioning is applied to the left coding block of the two coding blocks (Condition 2), then horizontal binary partitioning may be permitted for the right coding block. Under this condition, the two sub-coding blocks within the left coding block are encoded / decoded sequentially from top to bottom. Subsequently, if the right coding block is also divided into two sub-coding blocks by horizontal binary partitioning, the two sub-coding blocks within the right coding block are also encoded / decoded sequentially from top to bottom. This results in a different coding order than when the coding block is divided into four sub-coding blocks by non-square quad partitioning and these are encoded / decoded sequentially in Z-scan order. Thus, horizontal binary partitioning can be permitted for the right coding block when the four coding blocks resulting from multiple binary partitions have a different coding order than the four coding blocks resulting from non-square quad partitioning.

[0210] For example, if the conditions described above are met, the variable `allowSplitBtHor` for the right-hand coding block may be set to true, and splitting information for the right-hand coding block may be signaled. Here, the splitting information may include at least one of the binary flag or the splitting direction flag.

[0211] Figure 9 is a diagram illustrating a tree structure-based block partitioning method, which is one embodiment of the present disclosure.

[0212] Referring to Figure 9, the non-square first coding block 900 may be divided into four second coding blocks 910, 920, 930, and 940 based on a non-square quad partition. At least one of the four second coding blocks may be further divided based on a predetermined partition type.

[0213] As with the second coding block 910, any one of the second coding blocks may be further divided into four sub-coding blocks 911, 913, 915, 917 based on a non-square quad partition. Or, as with the second coding block 920, any one of the second coding blocks may be further divided into three sub-coding blocks 921, 923, 925 based on a horizontal ternary partition. Or, as with the second coding block 930, no further division may be applied to the second coding block. Or, as with the second coding block 940, any one of the second coding blocks may be further divided into two sub-coding blocks 941, 943 based on a vertical binary partition.

[0214] In this way, by allowing further block subdivision of the four coding blocks generated by the non-square quad partition, finer block subdivisions can be enabled, and encoding efficiency can be further improved.

[0215] Figures 10 to 12 show the method for calculating the partition depth according to the partition type relating to this disclosure.

[0216] Figure 10 illustrates a method for independently calculating partition depth using a non-square quad partition. As an example, the partition depths relating to this disclosure may be classified into partition depths using square quad blocks (QTD), partition depths using binary and ternary partitions (MTTD), and partition depths using non-square quad partitions (NQTD).

[0217] As shown in Figure 10, a 128x128 coding block may be recursively partitioned by a tree-structure-based block partitioning, and the resulting partitioning depth of the coding block may be changed. Here, we assume that the QTD, MTTD, and NQTD for a 128x128 coding block are all 0.

[0218] First, a 128x128 coding block may be divided into four sub-coding blocks by a square quad decomposition. Since a square quad decomposition has been applied to the 128x128 coding block, the QTD for each of the 64x64 coding blocks increases to 1, while the MTTD and NQTD remain at 0.

[0219] Next, of the four sub-coding blocks belonging to the 128x128 coding block, the 64x64 coding block, which is the lower right sub-coding block, may be divided into four sub-coding blocks by a square quad partition. Since a square quad partition has been applied to the 64x64 coding block, the QTD for each of the 32x32 coding blocks increases to 2, while the MTTD and NQTD remain at 0.

[0220] Next, of the four sub-coding blocks belonging to the 64x64 coding block, the 32x32 coding block, which is the lower right sub-coding block, may be divided into two sub-coding blocks by binary partitioning. Since horizontal binary partitioning has been applied to the 32x32 coding block, the MTTD for each of the 32x16 coding blocks increases to 1, and the QTD and NQTD are maintained at 2 and 0, respectively.

[0221] Next, of the two sub-coding blocks belonging to the 32x32 coding block, the lower sub-coding block, a 32x16 coding block, may be divided into four sub-coding blocks by a non-square quad partition. Since a non-square quad partition has been applied to the 32x16 coding block, the NQTD for each of the 16x8 coding blocks increases to 1, while the QTD and MTTD are maintained at 2 and 1, respectively.

[0222] Next, of the four sub-coding blocks belonging to the 32x16 coding block, the 16x8 coding block, which is the lower right sub-coding block, may be divided into three sub-coding blocks by ternary partitioning. Since ternary partitioning has been applied to the 16x8 coding block, the MTTD for the two 4x8 coding blocks and the one 8x8 coding block increases to 2, while the QTD and NQTD remain at 2 and 1, respectively.

[0223] Finally, for the 8x8 coding block, which is the central sub-coding block among the three sub-coding blocks belonging to the 16x8 coding block, encoding / decoding is performed as a leaf node in the tree structure without further block division. Therefore, the QTD, MTTD, and NQTD for the 8x8 coding block can be calculated as 2, 2, and 1, respectively.

[0224] As mentioned above, in tree structures that use various partitioning types, the partitioning depth can be calculated for each partitioning type, and this can be used to determine whether or not to partition a block, or to guide a contextual model for entropy coding of block partitioning information.

[0225] Figure 10 illustrates the case where the partition depth for square quad partitioning, binary and ternary partitioning, and non-square quad partitioning are calculated separately, but is not limited to this. For example, the partition depth for square quad partitioning and the partition depth for non-square quad partitioning can be combined and calculated as a single quad partition depth. Alternatively, the partition depth can be combined with the partition depth for binary and ternary partitioning by including non-square quad partitioning in the partitioning of the multi-type tree. This will be explained with reference to Figures 11 and 12.

[0226] Figure 11 illustrates a method for calculating partition depth by combining partition depth by non-square quad partitioning with partition depth by square quad partitioning. As an example, the partition depths related to this disclosure may be distinguished into partition depths by square and non-square quad partitioning (QTD) and partition depths by binary and ternary partitioning (MTTD).

[0227] As shown in Figure 11, a 128x128 coding block may be recursively partitioned by a tree-structure-based block partitioning, and the partitioning depth of the coding block may be changed as a result. Here, we assume that the QTD and MTTD for a 128x128 coding block are both 0.

[0228] First, a 128x128 coding block may be divided into four sub-coding blocks by a square quad decomposition. Since a square quad decomposition has been applied to the 128x128 coding block, the QTD for each of the 64x64 coding blocks increases to 1, and the MTTD remains at 0.

[0229] Next, of the four sub-coding blocks belonging to the 128x128 coding block, the 64x64 coding block, which is the lower right sub-coding block, may be divided into four sub-coding blocks by a square quad partition. Since a square quad partition has been applied to the 64x64 coding block, the QTD for each of the 32x32 coding blocks increases to 2, and the MTTD remains at 0.

[0230] Next, of the four sub-coding blocks belonging to the 64x64 coding block, the 32x32 coding block, which is the lower right sub-coding block, may be divided into two sub-coding blocks by binary partitioning. Since horizontal binary partitioning has been applied to the 32x32 coding block, the MTTD for each of the 32x16 coding blocks increases to 1, and the QTD is maintained at 2.

[0231] Next, of the two sub-coding blocks belonging to the 32x32 coding block, the lower sub-coding block, a 32x16 coding block, may be divided into four sub-coding blocks by a non-square quad partition. Since a non-square quad partition has been applied to the 32x16 coding block, the QTD for each of the 16x8 coding blocks increases to 3, while the MTTD remains at 1.

[0232] Next, of the four sub-coding blocks belonging to the 32x16 coding block, the 16x8 coding block, which is the lower right sub-coding block, may be divided into three sub-coding blocks by ternary partitioning. Since ternary partitioning has been applied to the 16x8 coding block, the MTTD for the two 4x8 coding blocks and the one 8x8 coding block increases to 2, and the QTD is maintained at 3.

[0233] Finally, for the 8x8 coding block, which is the central sub-coding block among the three sub-coding blocks belonging to the 16x8 coding block, encoding / decoding is performed as a leaf node in the tree structure without further block division. Therefore, the QTD and MTTD for the 8x8 coding block can be calculated as 3 and 2, respectively.

[0234] Figure 12 illustrates a method for calculating partition depth by combining partition depth by non-square quad partitioning with partition depth by binary and ternary partitioning. As an example, the partition depths relating to this disclosure may be distinguished into partition depth by square quad partitioning (QTD) and partition depth by binary and ternary partitioning (MTTD).

[0235] As shown in Figure 12, a 128x128 coding block may be recursively partitioned by a tree-structure-based block partitioning, and the partitioning depth of the coding block may be changed as a result. Here, we assume that the QTD and MTTD for a 128x128 coding block are both 0.

[0236] First, a 128x128 coding block may be divided into four sub-coding blocks by a square quad decomposition. Since a square quad decomposition has been applied to the 128x128 coding block, the QTD for each of the 64x64 coding blocks increases to 1, and the MTTD remains at 0.

[0237] Next, of the four sub-coding blocks belonging to the 128x128 coding block, the 64x64 coding block, which is the lower right sub-coding block, may be divided into four sub-coding blocks by a square quad partition. Since a square quad partition has been applied to the 64x64 coding block, the QTD for each of the 32x32 coding blocks increases to 2, and the MTTD remains at 0.

[0238] Next, of the four sub-coding blocks belonging to the 64x64 coding block, the 32x32 coding block, which is the lower right sub-coding block, may be divided into two sub-coding blocks by binary partitioning. Since horizontal binary partitioning has been applied to the 32x32 coding block, the MTTD for each of the 32x16 coding blocks increases to 1, and the QTD is maintained at 2.

[0239] Next, of the two sub-coding blocks belonging to the 32x32 coding block, the lower sub-coding block, a 32x16 coding block, may be divided into four sub-coding blocks by a non-square quad partition. Since a non-square quad partition has been applied to the 32x16 coding block, the MTTD for each of the 16x8 coding blocks increases to 2, while the QTD remains at 2.

[0240] Next, of the four sub-coding blocks belonging to the 32x16 coding block, the 16x8 coding block, which is the lower right sub-coding block, may be divided into three sub-coding blocks by ternary partitioning. Since ternary partitioning has been applied to the 16x8 coding block, the MTTD for the two 4x8 coding blocks and the one 8x8 coding block increases to 3, while the QTD remains at 2.

[0241] Finally, for the 8x8 coding block, which is the central sub-coding block among the three sub-coding blocks belonging to the 16x8 coding block, encoding / decoding is performed as a leaf node in the tree structure without further block division. Therefore, the QTD and MTTD for the 8x8 coding block can be calculated as 2 and 3, respectively.

[0242] As shown in Figures 10, 11, and 12, according to one embodiment of the present invention, the partition depth by non-square quad partitioning can be calculated using an independent depth, or by combining it with the partition depth by square quad partitioning or by binary and ternary partitioning. If at least one non-square quad partitioning occurs during the process of partitioning a coding tree block, the maximum value of the partition depth by multi-type tree partitioning (MTTD) may be adaptively changed. Such a change in the maximum value of MTTD may be applied when calculating the partition depth by non-square quad partitioning by combining it with the partition depth by binary and ternary partitioning. The maximum value of MTTD may be a value that is identically predefined for the encoding and decoding devices, and may be signaled by at least one of the higher-level syntax such as the sequence parameter set (SPS), picture parameter set (PPS), or slice header (SH). However, if at least one non-square quad partitioning occurs during the process of partitioning a coding tree block, the maximum value of MTTD can be increased by adding a predetermined value to the maximum value of MTTD.

[0243] The predetermined value may be a value (for example, an integer of 1, 2, or more) that is identically predefined for both the encoding and decoding devices, or it may be signaled by at least one of the higher-level syntaxes described above. The predetermined value may be added to the maximum value of the MTTD if a non-square quad partition is performed at least once during the process of partitioning the coding tree block. The predetermined value may be determined based on the number of times a non-square quad partition is performed during the partitioning process from the coding tree block to the current block.

[0244] The predetermined value may be added to the maximum value of the MTTD only if N or more non-square quad divisions are performed in the process of dividing the coding tree block. Here, N may be an integer of 2, 3, 4 or more.

[0245] Thus, the maximum value of MTTD can be increased based on whether or not a non-square quad partition has been performed and / or the number of times a non-square quad partition has been performed. Then, whether or not a multi-type tree partition, such as a binary or ternary partition, is permitted for the current block may be determined based on the increased maximum value of MTTD. For example, even if the predefined or signaled maximum value of MTTD is 3, if a non-square quad partition has been performed on the coding tree block to which the current block belongs, the maximum value of MTTD may be increased to 1. In this case, even if the MTTD of the current block is 3, it may be determined that a multi-type tree partition, such as a binary or ternary partition, is permitted for the current block.

[0246] Even when calculating the partition depth using a non-square quad partition by combining it with other partition depths, it is possible to adaptively increase the partition depth and improve encoding efficiency by compensating for the problem that the applicability of a non-square quad partition reduces the opportunities for binary partitioning or ternary partitioning.

[0247] Figure 13 shows a schematic configuration of a decoding device 300 that performs the decoding method according to this disclosure.

[0248] Referring to Figure 13, the decoding device 300 may include a block division unit 1300 and a decoding unit 1310. The block division unit 1300 may be provided in the entropy decoding unit 310, or in another modular decoding device 300 connected to the entropy decoding unit 310.

[0249] The block division unit 1300 can divide a coding block based on a predetermined division type. The specific division method is as described with reference to Figure 4, and a detailed explanation is omitted here.

[0250] The block partitioning unit 1300 can partition a coding block using at least one of quad partitioning, binary partitioning, or ternary partitioning. Here, quad partitioning may be distinguished into square quad partitioning, which divides a square block into four parts, and non-square quad partitioning, which divides a non-square block into four parts. Binary partitioning may include at least one of symmetric binary partitioning or asymmetric binary partitioning.

[0251] The block division unit 1300 can utilize predetermined division information for block division based on a predetermined division type. Here, the division information may include at least one of the following: a division flag, a quad flag, a binary flag, a division direction flag, a flag indicating whether or not a non-square quad division is applied, a flag indicating whether or not an asymmetric binary division is applied, or index information for asymmetric binary division. The division information may be information signaled in a bitstream, or information induced by the decoding device 300.

[0252] On the other hand, if the binary partitioning described herein is applied to a single coding block multiple times, it may result in partitioning in the same form as a non-square quad partition. To prevent such identical block partitioning from occurring, the block partitioning unit 1300 can also be restricted so that binary partitioning is not permitted when certain predefined conditions are met.

[0253] Furthermore, the block division unit 1300 can perform tree-structure-based block division using at least one of the division types described above. Alternatively, the block division unit 1300 can restrict the division of a block into four coding blocks by a non-square quad division so that the four coding blocks are not divided based on one or more of the division types described above. Alternatively, the block division unit 1300 can utilize only some of the division types described above for tree-structure-based block division.

[0254] The decoding unit 1310 can sequentially decode multiple coding blocks generated by the block division unit 1300 according to a predetermined coding order.

[0255] Figure 14 is a diagram illustrating an embodiment of the present disclosure, showing an encoding method performed by the encoding device 200.

[0256] Referring to Figure 14, the coding block can be divided based on a predetermined division type (S1400).

[0257] Here, a coding block can mean a coding tree block, or a coding block generated by a block partition based on a given partition type. The partition type relating to this disclosure may include at least one of a quad partition, a binary partition, or a ternary partition.

[0258] Furthermore, the coding tree blocks relating to this disclosure may be defined as square blocks. However, they are not limited to this definition, and coding tree blocks may also be defined as non-square blocks. Also, coding blocks generated by block division based on a predetermined division type may be square blocks or non-square blocks. Depending on the current block form, the number or range of division types allowed / applicable to the current block may differ. The division types relating to this disclosure are as described with reference to Figure 4, and redundant explanations are omitted here.

[0259] The quad splits relating to this disclosure may be distinguished into square quad splits, which divide a square block into four parts, and non-square quad splits, which divide a non-square block into four parts. When the width and height of a block are different from each other, it can be determined whether a non-square quad split is permissible / applicable to that block. For example, it may be determined that a non-square quad split is permissible / applicable when the ratio of the width to height of the block is 1:N or N:1, where N may be an integer of 2, 3, 4, 5, 6, or more.

[0260] Whether the aforementioned non-square quad partitioning is permissible and / or applicable may be determined based on the encoding parameters of the current block. The encoding parameters of the current block may include at least one of the following: size, shape, position, tree type, or component type.

[0261] For example, it may be determined that a non-square quad partition is permitted or applicable if the current block size is greater than or equal to a predetermined threshold size (Condition 1). Conversely, it may be determined that a non-square quad partition is not permitted for the current block if the current block size is smaller than a predetermined threshold size. The threshold size can mean the minimum block size for which a non-square quad partition is permitted. Information regarding the minimum block size for which a non-square quad partition is permitted may be signaled in at least one of the higher-level syntax such as the sequence parameter set (SPS), picture parameter set (PPS), or slice header (SH). Alternatively, the minimum block size for which a non-square quad partition is permitted may be a value that is identically predefined for the encoding and decoding devices and may be an integer of 8, 16, 32, 64, or more.

[0262] For example, if the widths and heights of the blocks are currently different, it may be determined that a non-square quad division is permitted or applicable (Condition 2). Conversely, if the widths and heights of the blocks are currently the same, it may be determined that a non-square quad division is not permitted.

[0263] For example, even if the widths and heights of the blocks are currently different, if the ratio of the widths to heights of the blocks is 1:M or M:1, it may be determined that a non-square quad division is permitted or applicable (Condition 3). Conversely, if the ratio of the widths to heights of the blocks is not 1:M or M:1, it may be determined that a non-square quad division is not permitted for the blocks.

[0264] For example, it may be determined that a non-square quad division is permitted or applicable if the current block is located within the picture (Condition 4). Conversely, it may be determined that a non-square quad division is not permitted or applicable to the current block if the current block is located within the picture boundary. Alternatively, Condition 4 may be defined as allowing or applying a non-square quad division if the current block is located within the picture or if the boundary of the current block is outside both the right and bottom boundary of the picture, and not allowing a non-square quad division otherwise. Alternatively, Condition 4 may be defined as allowing or applying a non-square quad division if the current block is located within the picture or if the boundary of the current block is outside only one of the right or bottom boundary of the picture, and not allowing a non-square quad division otherwise. However, without limitation, it may be determined that a non-square quad division is permitted for the current block even if the right boundary of the current block is outside the right boundary of the picture and / or the lower boundary of the current block is outside the lower boundary of the picture.

[0265] At least one of the aforementioned conditions 1 to 4 may be defined identically for the encoding device and the decoding device. Non-square quad partitioning may be permitted or applied if it satisfies the same predefined conditions for the encoding device and the decoding device. Alternatively, non-square quad partitioning may be permitted or applied if it satisfies any one of the aforementioned conditions 1 to 4.

[0266] If it is determined that a quad split is to be applied, a quad flag (split_qt_flag) may be encoded in the bitstream. If the current block is to be split into four coding blocks, the value of split_qt_flag may be encoded as 1, and if the current block is not to be split into four coding blocks, the value of split_qt_flag may be encoded as 0.

[0267] The quad flag may be encoded to indicate whether or not a square quad partition is applied. Alternatively, the quad flag may be encoded to indicate whether or not a non-square quad partition is applied, without signaling or inducing an additional flag to indicate whether or not a non-square quad partition is applied. Or, separately from the quad flag, an additional flag to indicate whether or not a non-square quad partition is applied may be defined, encoded, or induced. The following describes in detail how to signal or induce information regarding quad partitions.

[0268] Method 1

[0269] The quad flag may be signaled only if at least one of binary or ternary partitioning is permitted and at least one of square quad partitioning or non-square quad partitioning is permitted. This is explained with reference to Tables 1 to 3.

[0270] On the one hand, the quad flag may be signaled in the bitstream only when the value of the split flag is 1. The split flag may be signaled in the bitstream when at least one of square quad split, non-square quad split, binary split, or ternary split is allowed. This is as described by referring to Table 4.

[0271] The quad flag for the current block may be entropy encoded based on a predetermined context model. Here, the context model may be derived based on at least one of the split depth of the neighboring blocks adjacent to the current block or the split depth by non-square quad split of the current block. The split depth of the neighboring blocks may mean the split depth by quad split. Or, depending on whether allowSplitQT and allowSplitNQT are true or not, the split depth of the neighboring blocks for deriving the context model of the quad flag may be defined to be different. The method for calculating the split depth is as described by referring to FIGS. 10 to 12.

[0272] Method 2

[0273] The quad flag may be signaled only when at least one of binary split or ternary split is allowed and quad split is allowed. This is as described by referring to Tables 5 to 7.

[0274] On the one hand, the quad flag may be signaled in the bitstream only when the value of the split flag is 1. The split flag may be signaled in the bitstream when at least one of quad split, binary split, or ternary split is allowed. This is as described by referring to Table 8.

[0275] The quad flag for the current block may be entropy encoded based on a predetermined context model. Here, the context model may be derived based on at least one of the partition depths of the surrounding blocks adjacent to the current block or the partition depth of the current block due to a non-square quad partition. The partition depth of the surrounding blocks can mean the partition depth due to a quad partition. The method for calculating the partition depth is as described with reference to Figures 10 to 12.

[0276] Method 3

[0277] The aforementioned quad flag (split_qt_flag) may be limited to a flag that instructs the quad division of a square coding block, and a flag for the quad division of a non-square coding block (split_nqt_flag) may be further defined. In this case, split_qt_flag shall be called the first quad flag and split_nqt_flag shall be called the second quad flag. That is, the second quad flag can indicate whether or not a non-square coding block is divided into four non-square coding blocks.

[0278] The second quad flag is signaled when allowSplitNQT is true, and does not need to be signaled when allowSplitNQT is false. Here, allowSplitNQT may be set to false (FALSE) if any one of the conditions in Table 3 above is met, and to true (TRUE) otherwise.

[0279] Even if allowSplitNQT is true, the second quad flag is signaled if the current block widths and heights are different, but does not need to be signaled if the current block widths and heights are the same.

[0280] The second quad flag may be signaled if it is determined that the current block corresponds to a leaf node in a tree structure (or if the value of the split flag, which indicates whether the current block will be split into multiple coding blocks, is 0).

[0281] If it is determined that a non-square quad partitioning is to be applied to the current block, the value of the second quad flag for the current block may be set to 1. If it is determined that a non-square quad partitioning is not to be applied to the current block, the value of the second quad flag for the current block may be set to 0.

[0282] On the other hand, the four non-square coding blocks generated by the non-square quad partition may be restricted from being further subdivided based on the partition type described above. In other words, partition information does not need to be generated for the non-square coding blocks generated by the non-square quad partition.

[0283] The second quad flag for the current block may be entropy encoded based on a predetermined context model. Here, the context model may be derived based on at least one of the partition depths of adjacent surrounding blocks to the current block or the partition depth of the current block by a non-square quad partition. Here, the surrounding blocks may be the same as the surrounding blocks used to derive the context model for the first quad flag. Alternatively, the location of the surrounding blocks used to derive the context model for the second quad flag may be defined differently from the location of the surrounding blocks used to derive the context model for the first quad flag. The partition depth of the surrounding blocks can mean the partition depth by a quad partition. The method for calculating the partition depth is as described with reference to Figures 10 to 12.

[0284] Whether or not a quad flag is encoded for the current block may be determined based on whether or not the current block straddles a picture boundary and / or the position of the picture boundary that the current block straddles (e.g., right boundary, bottom boundary). For example, it may be determined that a non-square quad partition is implicitly applied to the current block when the right boundary of the current block goes beyond the right boundary of the picture and the bottom boundary of the current block goes beyond the bottom boundary of the picture. That is, a non-square quad partition may be applied to the current block without encoding a quad flag when the right boundary of the current block goes beyond the right boundary of the picture and the bottom boundary of the current block goes beyond the bottom boundary of the picture. In this case, a non-square quad partition may be forced for the current block by inducing a value of 1 for the quad flag for the current block. On the other hand, if the right boundary of the current block deviates from the right boundary of the picture, or if the lower boundary of the current block deviates from the lower boundary of the picture, it may be determined that a non-square quad partition is permitted for the current block, and a quad flag may be encoded for the current block.

[0285] The binary partition as described herein refers to a partitioning type in which the current block is divided into two coding blocks, and the ternary partition may refer to a partitioning type in which the current block is divided into three coding blocks.

[0286] If it is determined that binary splitting or ternary splitting is to be applied, a binary flag (split_binary_flag) may be encoded in the bitstream. If a coding block is split into two coding blocks, the value of the binary flag may be encoded to 1, and if a coding block is split into three coding blocks, the value of the binary flag may be encoded to 0. A split direction flag indicating the splitting direction of the binary splitting or ternary splitting may be further encoded. The split direction flag may be encoded before the binary flag is encoded, or after the binary flag is encoded. The binary flag may be encoded if at least one of the first quad flag (split_qt_flag) or the second quad flag (split_nqt_flag) described above is 0.

[0287] Furthermore, if asymmetric binary partitioning is permitted / applied, index information identifying the location of the partition lines for asymmetric binary partitioning may be further encoded. The index information can identify one of any of the predefined candidate locations identical to those of the encoding and decoding devices. In this case, the predefined candidate locations may include the locations of the partition lines for symmetric binary partitioning. Alternatively, the index information may be encoded only when it is determined that asymmetric binary partitioning is applied to the current block, even if it is determined that binary partitioning is applied to the current block. In this case, the predefined candidate locations may not include the locations of the partition lines for symmetric binary partitioning, but may include the locations of the partition lines for asymmetric binary partitioning.

[0288] On the other hand, when the binary partitioning described herein is applied to a single coding block multiple times, it may result in partitioning in the same form as a non-square quad partition. To prevent such identical block partitioning from occurring, binary partitioning can be restricted to cases where predefined conditions are met, as explained with reference to Figures 7 and 8.

[0289] The aforementioned partitioning types can be used for tree-structure-based block partitioning, as explained with reference to Figure 9.

[0290] Alternatively, if the current block is divided into four coding blocks by a non-square quad partition, the four coding blocks may be restricted so that no further block partitions are performed based on the aforementioned partition types. In this case, the four coding blocks divided from the current block may be forced to correspond to leaf nodes in a tree structure, thereby improving coding efficiency by eliminating the need for further syntax signaling for block partitioning.

[0291] Alternatively, some of the aforementioned partitioning types may be used for tree-structure-based block partitioning, while the rest may not be used for tree-structure-based block partitioning.

[0292] Referring to Figure 14, multiple coding blocks generated by dividing a coding block can be sequentially encoded according to a predetermined coding order (S1410).

[0293] Figure 15 shows a schematic configuration of an encoding device 200 that performs the encoding method according to this disclosure.

[0294] Referring to FIG. 15, the encoding device 200 may include a block splitting unit 1500 and an encoding unit 1510. The block splitting unit 1500 may be provided in the video splitting unit 210, or may be provided as another module in the encoding device 200.

[0295] The block splitting unit 1500 can split a coding block based on a predetermined splitting type. The specific splitting method is as described with reference to FIG. 14, and detailed description is omitted here.

[0296] The block splitting unit 1500 can split a coding block using at least one of quad splitting, binary splitting, or ternary splitting. Here, quad splitting may be distinguished into square quad splitting that divides a square block into four and non-square quad splitting that divides a non-square block into four. Also, binary splitting may include at least one of symmetric binary splitting or asymmetric binary splitting.

[0297] The block splitting unit 1500 can generate predetermined splitting information for block splitting based on a predetermined splitting type. Here, the splitting information may include at least one of a splitting flag, a quad flag, a binary flag, a splitting direction flag, a flag indicating whether non-square quad splitting is applied, a flag indicating whether asymmetric binary splitting is applied, or index information for asymmetric binary splitting. The said splitting information may be encoded by the entropy encoding unit 240 and signaled in a bitstream.

[0298] On the other hand, when the binary splitting according to the present disclosure is applied multiple times to one coding block, there may be a case where it is split in the same form as non-square quad splitting. In order to prevent the occurrence of block splitting in the same form like this, the block splitting unit 1500 can also limit so that binary splitting is not allowed when it meets a predefined condition.

[0299] Furthermore, the block division unit 1500 can perform tree-structure-based block division using at least one of the division types described above. Alternatively, the block division unit 1500 can restrict the division of a block into four coding blocks by a non-square quad division so that the four coding blocks are not divided based on one or more of the division types described above. Alternatively, the block division unit 1500 can utilize only some of the division types described above for tree-structure-based block division.

[0300] The encoding unit 1510 can sequentially encode the multiple coding blocks generated by the block division unit 1500 according to a predetermined coding order.

[0301] In the embodiments described above, the method is explained based on a sequence diagram in a series of steps or blocks, but the embodiments are not limited to the order of the steps, and some steps may occur in a different order or simultaneously with other steps than those described above. Furthermore, those skilled in the art will understand that the steps shown in the sequence diagram are not exclusive, and other steps may be included, or one or more steps in the sequence diagram may be omitted without affecting the scope of the embodiments described herein.

[0302] The methods relating to the embodiments of this document described above may be implemented in software form, and the encoding and / or decoding devices relating to this document may be included in, for example, video processing devices such as TVs, computers, smartphones, set-top boxes, and display devices.

[0303] When the embodiments described in this document are implemented as software, the methods described above may be implemented as modules (processes, functions, etc.) that perform the functions described above. The modules may be stored in memory and executed by a processor. The memory may be located inside or outside the processor and may be connected to the processor by various well-known means. The processor may include an ASIC (application-specific integrated circuit), other chipsets, logic circuits, and / or data processing devices. The memory may include ROM (read-only memory), RAM (random access memory), flash memory, memory cards, storage media, and / or other storage devices. In other words, the embodiments described in this document may be implemented and executed on a processor, microprocessor, controller, or chip. For example, the functional units shown in each figure may be implemented and executed on a computer, processor, microprocessor, controller, or chip. In this case, information on instructions or algorithms for implementation may be stored on a digital storage medium.

[0304] Furthermore, the decoding and encoding devices to which the embodiments of this specification apply may include multimedia broadcasting transceivers, mobile communication terminals, home cinema video equipment, digital cinema video equipment, surveillance cameras, video conferencing equipment, real-time communication equipment such as video communication, mobile streaming equipment, storage media, camcorders, video-on-demand (VoD) service providers, over-the-top (OTT) video equipment, internet streaming service providers, 3D video equipment, virtual reality (VR) equipment, argumente reality (AR) equipment, video telephone equipment, transportation terminals (e.g., vehicle terminals (including autonomous vehicles), airplane terminals, ship terminals, etc.), and medical video equipment, and may be used to process video signals or data signals. For example, over-the-top (OTT) video equipment may include game consoles, Blu-ray players, internet-connected TVs, home theater systems, smartphones, tablet PCs, and digital video recorders (DVRs).

[0305] Furthermore, the processing methods to which the embodiments of this specification apply may be produced in the form of programs executed on a computer and stored on a computer-readable recording medium. Similarly, multimedia data having the data structures according to the embodiments of this specification may also be stored on a computer-readable recording medium. The computer-readable recording medium includes all kinds of storage devices and distributed storage devices on which computer-readable data is stored. The computer-readable recording medium may include, for example, Blu-ray discs (BDs), general-purpose serial buses (USBs), ROMs, PROMs, EPROMs, EEPROMs, RAMs, CD-ROMs, magnetic tapes, floppy disks, and optical data storage devices. The computer-readable recording medium also includes media embodied in the form of carrier waves (e.g., transmission over the Internet). Furthermore, a bitstream generated by an encoding method may be stored on a computer-readable recording medium or transmitted over a wireless communication network.

[0306] Furthermore, the embodiments of this specification may be embodied as computer program products in the form of program code, and the program code may be executed on a computer according to the embodiments of this specification. The program code may be stored on a computer-readable carrier.

[0307] Figure 16 shows an example of a content streaming system to which the embodiments of this disclosure can be applied.

[0308] Referring to Figure 16, the content streaming system to which the embodiments described herein apply may broadly include an encoding server, a streaming server, a web server, media storage, user equipment, and multimedia input devices.

[0309] The encoding server is responsible for compressing content input from multimedia input devices such as smartphones, cameras, and camcorders into digital data to generate a bitstream, and transmitting this bitstream to the streaming server. As another example, if a multimedia input device such as a smartphone, camera, or camcorder directly generates the bitstream, the encoding server may be omitted.

[0310] The bitstream may be generated by an encoding method or bitstream generation method to which any embodiment of this specification is applied, and the streaming server may temporarily store the bitstream in the process of transmitting or receiving the bitstream.

[0311] The streaming server transmits multimedia data to the user's device based on a user request via a web server, and the web server acts as an intermediary to inform the user about available services. When a user requests a desired service from the web server, the web server transmits it to the streaming server, and the streaming server transmits the multimedia data to the user. In this case, the content streaming system may include a separate control server, in which case the control server is responsible for controlling the commands and responses between the devices in the content streaming system.

[0312] The streaming server can receive content from media storage and / or encoding servers. For example, when receiving content from the encoding server, the content can be received in real time. In this case, in order to provide a smooth streaming service, the streaming server can store the bitstream for a certain period of time.

[0313] Examples of user devices include mobile phones, smartphones, laptop computers, digital broadcasting terminals, PDAs (personal digital assistants), PMPs (portable multimedia players), navigation systems, slate PCs, tablet PCs, ultrabooks, wearable devices (such as smartwatches, smart glasses, and HMDs), digital TVs, desktop computers, and digital signage.

[0314] Each server in the aforementioned content streaming system may be operated as a distributed server, in which case the data received by each server may be processed in a distributed manner.

[0315] The claims described herein may be combined in various ways. For example, the technical features of the method claims herein may be combined to be embodied as an apparatus, and the technical features of the apparatus claims herein may be combined to be embodied as a method. Furthermore, the technical features of the method claims and the technical features of the apparatus claims herein may be combined to be embodied as an apparatus, and the technical features of the method claims and the technical features of the apparatus claims herein may be combined to be embodied as a method.

Claims

1. The current block is divided based on a predetermined division type, The step includes decoding the multiple coding blocks generated by dividing the aforementioned current block, The aforementioned predetermined partition type includes at least one of quad partition, binary partition, or ternary partition, The aforementioned quad division is distinguished into a square quad division, which divides a square block into four parts, and a non-square quad division, which divides a non-square block into four parts, in this video decoding method.

2. Whether the aforementioned non-square quad partitioning is permitted is determined based on the coding parameters of the current block. The video decoding method according to claim 1, wherein the encoding parameters of the current block include at least one of the size, shape, or position of the current block within the current picture.

3. The video decoding method according to claim 2, wherein whether the non-square quad division is permitted is determined based on whether the size of the current block is greater than or equal to a predetermined threshold size.

4. Whether the aforementioned non-square quad division is permissible is determined based on at least one of the following: whether the widths and heights of the current blocks are different from each other, or whether the ratio of the widths and heights of the current blocks is 1:M or M:

1. The video decoding method according to claim 2, wherein M is an integer of 2, 3, 4, or more.

5. The video decoding method according to claim 1, wherein the non-square quad division is performed adaptively based on a first quad flag for indicating whether or not the square quad division is applied.

6. The video decoding method according to claim 5, wherein the first quad flag is signaled based on at least one of a first variable indicating whether or not the square quad division is permitted, or a second variable indicating whether or not the non-square quad division is permitted.

7. The video decoding method according to claim 6, wherein, when the current block is a block generated by the binary partitioning or the ternary partitioning, the first variable is set to false, but the second variable is set to true.

8. If the current block is a block generated by the binary partition or the ternary partition, Based on the fact that the width and height of the current block are the same, the first variable is set to false. The video decoding method according to claim 6, wherein the first variable is set to true based on the fact that the width and height of the current blocks are different from each other.

9. The context model for entropy decoding of the first quad flag is derived based on the partition depth of the surrounding blocks adjacent to the current block, The video decoding method according to claim 5, wherein the division depth of the surrounding block includes at least one of the division depth by the square quad division or the division depth by the non-square quad division.

10. The video decoding method according to claim 1, wherein the non-square quad division is performed adaptively based on a second quad flag for indicating whether or not the non-square quad division is applied.

11. The video decoding method according to claim 10, wherein the second quad flag is signaled when the current block corresponds to a leaf node in a tree structure.

12. The video decoding method according to claim 1, wherein the current block is divided into two coding blocks by horizontal binary splitting, and when vertical binary splitting is applied to the upper coding block of the two coding blocks, vertical binary splitting is restricted from being applied to the lower coding block of the two coding blocks.

13. The video decoding method according to claim 12, wherein the current block is divided into two coding blocks by vertical binary splitting, and when horizontal binary splitting is applied to the left coding block of the two coding blocks, horizontal binary splitting is permitted for the right coding block of the two coding blocks.

14. The current block is divided based on a predetermined division type, The step includes encoding multiple coding blocks generated by dividing the aforementioned current block, The aforementioned predetermined partition type includes at least one of quad partition, binary partition, or ternary partition, The aforementioned quad division is distinguished into square quad division, which divides a square block into four parts, and non-square quad division, which divides a non-square block into four parts, in a video encoding method.

15. A step of obtaining a bitstream for video, wherein the bitstream is generated by dividing the current block based on a predetermined division type, and encoding the multiple coding blocks generated by dividing the current block. The step includes transmitting video information including the bitstream, The aforementioned predetermined partition type includes at least one of quad partition, binary partition, or ternary partition, The transmission method is characterized by the distinction between a square quad division, which divides a square block into four parts, and a non-square quad division, which divides a non-square block into four parts.