Image encoding / decoding methods, data transmission methods, and bitstream storage media.

VN126339APending Publication Date: 2026-06-15LG ELECTRONICS INC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
VN · VN
Patent Type
Applications
Current Assignee / Owner
LG ELECTRONICS INC
Filing Date
2024-10-04
Publication Date
2026-06-15

AI Technical Summary

Technical Problem

Existing image compression technologies face challenges in efficiently encoding and decoding high-resolution and high-quality images such as HD and UHD video, particularly in adapting block division methods to optimize coding efficiency.

Method used

The proposed method and device implement an adaptive block division technique based on various division types, including quad division, binary split, and Turnery split, to determine the optimal block size and form. This involves determining whether non-cropped quad division is allowed, based on conditions such as block size, aspect ratio, and split depth, to improve coding efficiency.

Benefits of technology

The adaptive block division method enhances coding efficiency by allowing for non-cropped quad divisions and restricting certain split types to prevent duplicate forms, thereby improving the quality and efficiency of image encoding and decoding processes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure VN1202603616_0
    Figure VN1202603616_0
Patent Text Reader

Abstract

The invention relates to a method for decoding / encoding images which is able to split the current block on the basis of a predefined split type, and to encode multiple encoded blocks generated by splitting this current block. Here, the predefined split type may include at least one of the following: quad split, binary split, and tern split, and the quad split may include a non-square quad split to split the non-square encoded block into four encoded blocks. The invention also relates to a method for transmitting data and a storage medium readable by a computer.
Need to check novelty before this filing date? Find Prior Art

Description

Video encoding / decoding method and device, and recording medium storing bitstream

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

[0002] Recently, the demand for high-resolution, high-quality images, such as HD (High Definition) images and UHD (Ultra High Definition) images, is increasing in various application fields, and accordingly, high-efficiency image compression technologies are being discussed.

[0003] There are various technologies for image compression, such as inter prediction technology that predicts pixel values ​​included in the current picture from pictures before or after the current picture, intra prediction technology that predicts pixel values ​​included in the current picture using pixel information in the current picture, and entropy encoding technology that assigns short codes to values ​​with high frequency of appearance and long codes to values ​​with low frequency of appearance, and these technologies can be used to effectively compress and transmit or store image data.

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

[0005] The present disclosure provides a method and apparatus for signaling segmentation information for non-square quad segmentation.

[0006] The present disclosure provides a method and device for determining whether a block is divided and / or a division depth for deriving a context model of division information.

[0007] The present disclosure provides a method and device for limiting the application of partition types so that duplicate partition forms do not occur in block partitioning based on a tree structure using various partition types.

[0008] The video decoding method and device according to the present disclosure can divide a current block based on a predetermined division type and decode a plurality of coding blocks generated by dividing the current block. Here, the predetermined division type can include at least one of quad division, binary division, and ternary division. The quad division can include a non-square quad division that divides a non-square coding block into four coding blocks.

[0009] In the image decoding method and device according to the present disclosure, whether the non-square quad division is allowed for the current block can be determined based on whether the size of the current block is smaller than or equal to a predetermined threshold size.

[0010] In the image decoding method and device according to the present disclosure, whether the non-square quad division is allowed for the current block can be determined based on whether the ratio of the width and height of the current block corresponds to a pre-defined ratio.

[0011] In the image decoding method and device according to the present disclosure, the pre-defined ratio may include at least one of 1:2, 2:1, 1:4, or 4:1.

[0012] In the image decoding method and device according to the present disclosure, the pre-defined ratio may include at least one of 1:3, 3:1, 1:5, 5:1, 1:6, 6:1, 1:7, or 7:1.

[0013] In the image decoding method and device according to the present disclosure, the non-square quad division may be allowed when the current block is a non-square coding block generated by dividing a coding block based on the binary division or the ternary division.

[0014] In the image decoding method and device according to the present disclosure, when the current block is generated by dividing a coding block based on the non-square quad division, the non-square quad division may not be allowed for the current block.

[0015] In the image decoding method and device according to the present disclosure, whether the non-square quad division is allowed for the current block can be determined based on the division depth of the current block.

[0016] In the image decoding method and device according to the present disclosure, the non-square quad division can be performed based on a quad flag indicating whether the quad division is applied to the current block.

[0017] In the video decoding method and device according to the present disclosure, the context model of the quad flag can be derived based on a segmentation depth of at least one of the current block or a neighboring block adjacent to the current block. Here, the segmentation depth can include at least one of a segmentation depth according to a square quad segmentation or a segmentation depth according to a non-square quad segmentation.

[0018] The video encoding method and device according to the present 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 can include at least one of quad division, binary division, and ternary division. The quad division can include a non-square quad division that divides a non-square coding block into four coding blocks.

[0019] A computer-readable digital storage medium is provided having encoded video / image information stored thereon, which causes a decoding device according to the present disclosure to perform a video decoding method.

[0020] A computer-readable digital storage medium storing video / image information generated by a video encoding method according to the present disclosure is provided.

[0021] A method and device for transmitting video / image information generated by a video encoding method according to the present disclosure are provided.

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

[0023] According to the present disclosure, block encoding efficiency can be improved by adaptively allowing / applying non-square quad division.

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

[0025] According to the present disclosure, by defining a segmentation depth according to various segmentation types, it can be utilized to derive a context model of whether a block is segmented and / or segmentation information.

[0026] According to the present disclosure, when a pre-defined condition is met, it is possible to control the occurrence of duplicate partition forms by limiting the application of vertical or horizontal binary partitioning.

[0027] FIG. 1 illustrates a video / image coding system according to the present disclosure.

[0028] FIG. 2 is a schematic block diagram of an encoding device to which an embodiment of the present disclosure can be applied and in which encoding of a video / image signal is performed.

[0029] FIG. 3 is a schematic block diagram of a decoding device to which an embodiment of the present disclosure can be applied and in which decoding of a video / image signal is performed.

[0030] FIG. 4 illustrates a decoding method performed by a decoding device (300) as an embodiment according to the present disclosure.

[0031] FIG. 5 illustrates a schematic configuration of a decoding device (300) that performs a decoding method according to the present disclosure.

[0032] FIG. 6 illustrates an encoding method performed by an encoding device (200) as an embodiment according to the present disclosure.

[0033] FIG. 7 illustrates a schematic configuration of an encoding device (200) that performs an encoding method according to the present disclosure.

[0034] FIG. 8 illustrates an example of a content streaming system to which embodiments of the present disclosure can be applied.

[0035] The present disclosure may be modified in various ways and encompasses numerous embodiments. Specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present disclosure to specific embodiments, but rather to encompass all modifications, equivalents, and alternatives falling within the spirit and technical scope of the present disclosure. Throughout the description of each drawing, similar reference numerals have been used to designate similar components.

[0036] While terms such as "first" and "second" may be used to describe various components, these components should not be limited by these terms. These terms are used solely to distinguish one component from another. For example, without departing from the scope of the present disclosure, a first component could be referred to as a "second component," and similarly, a second component could also be referred to as a "first component." The term "and / or" includes a combination of multiple related items described herein or any of multiple related items described herein.

[0037] When a component is referred to as being "connected" or "connected" to another component, it should be understood that it may be directly connected or connected to that other component, but that there may be other components intervening. Conversely, when a component is referred to as being "directly connected" or "connected" to another component, it should be understood that there are no other components intervening.

[0038] The terminology used in this application is only used to describe specific embodiments and is not intended to limit the present disclosure. The singular expression includes the plural expression unless the context clearly indicates otherwise. In this application, it should be understood that the terms "comprise" or "have" indicate the presence of a feature, number, step, operation, component, part, or combination thereof described in the specification, but do not preclude the possibility of the presence or addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.

[0039] The present disclosure relates to video / image coding. For example, the methods / embodiments disclosed in this specification can be applied to methods disclosed in the versatile video coding (VVC) standard. In addition, the methods / embodiments disclosed in this specification can be applied to methods disclosed in the essential video coding (EVC) standard, the AOMedia Video 1 (AV1) standard, the second generation of audio video coding standard (AVS2), or the next generation of video / image coding standards (e.g., H.267 or H.268).

[0040] This specification presents various embodiments of video / image coding, and unless otherwise stated, the embodiments may be performed in combination with each other.

[0041] In this specification, a video may refer to a set of images over time. A picture generally refers to a unit representing one image at a specific time point, and a slice / tile is a unit that constitutes part of a picture in coding. A slice / tile may include one or more coding tree units (CTUs). A picture may be composed of one or more slices / tiles. A tile is a rectangular area consisting of multiple CTUs within a specific tile column and a specific tile row of a picture. A tile column is a rectangular area of ​​CTUs that has a height equal to the height of the picture and a width specified by the syntax requirements of the picture parameter set. A tile row is a rectangular area of ​​CTUs that has a height specified by the picture parameter set and a width equal to the width of the picture. CTUs within a tile are arranged consecutively according to the CTU raster scan, while tiles within a picture may be arranged consecutively according to the tile raster scan. A slice may contain an integer number of complete tiles or an integer number of contiguous complete CTU rows within a picture, which may be exclusively contained within a single NAL unit. Meanwhile, a picture may be divided into two or more subpictures. A subpicture may be a rectangular region of one or more slices within a picture.

[0042] A pixel, or pel, can refer to the smallest unit that constitutes a picture (or image). Additionally, the term "sample" can be used as a counterpart to a pixel. A sample can generally represent a pixel or a pixel value, and can represent only the pixel / pixel value of the luminance component, or only the pixel / pixel value of the chrominance component.

[0043] A unit may represent a basic unit of image processing. A unit may include at least one of a specific region of a picture and information related to the region. One unit may include one luma block and two chroma (e.g., cb, cr) blocks. In some cases, the term "unit" may be used interchangeably with terms such as "block" or "area." In general, an MxN block may include a set (or array) of samples (or sample array) or transform coefficients consisting of M columns and N rows.

[0044] As used herein, "A or B" can mean "only A," "only B," or "both A and B." In other words, as used herein, "A or B" can be interpreted as "A and / or B." For example, as used herein, "A, B or C" can mean "only A," "only B," "only C," or "any combination of A, B and C."

[0045] As used herein, a slash ( / ) or a comma can mean "and / or." For example, "A / B" can mean "A and / or B." Accordingly, "A / B" can mean "only A," "only B," or "both A and B." For example, "A, B, C" can mean "A, B, or C."

[0046] In this specification, "at least one of A and B" may mean "only A", "only B" or "both A and B". Additionally, in this specification, the expressions "at least one of A or B" or "at least one of A and / or B" may be interpreted identically to "at least one of A and B".

[0047] Additionally, in this specification, “at least one of A, B and C” can mean “only A,” “only B,” “only C,” or “any combination of A, B and C.” Additionally, “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.”

[0048] Additionally, parentheses used herein may mean "for example." Specifically, when "prediction (intra-prediction)" is indicated, "intra-prediction" may be suggested as an example of "prediction." In other words, "prediction" in this specification is not limited to "intra-prediction," and "intra-prediction" may be suggested as an example of "prediction." Furthermore, even when "prediction (i.e., intra-prediction)" is indicated, "intra-prediction" may be suggested as an example of "prediction."

[0049] Technical features individually described in a single drawing in this specification may be implemented individually or simultaneously.

[0050] FIG. 1 illustrates a video / image coding system according to the present disclosure.

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

[0052] A source device can transmit encoded video / image information or data to a receiving device via a digital storage medium or a network in the form of a file or streaming. The source device may include a video source, an encoding device, and a transmitting device. The receiving device may include a receiving device, a decoding device, and a renderer. The encoding device may be referred to as a video / image encoding device, and the decoding device may be referred to as 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, and the display unit may be configured as a separate device or an external component.

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

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

[0055] The transmission unit can transmit encoded video / image information or data output in the form of a bitstream 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 can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmission unit can include an element for generating a media file via a predetermined file format and an element for transmission via a broadcasting / communication network. The receiving unit can receive / extract the bitstream and transmit it to a decoding device.

[0056] The decoding device can decode the video / image by performing a series of procedures such as inverse quantization, inverse transformation, and prediction corresponding to the operation of the encoding device.

[0057] The renderer can render decoded video / images. The rendered video / images can be displayed through the display unit.

[0058] FIG. 2 is a schematic block diagram of an encoding device to which an embodiment of the present disclosure can be applied and in which encoding of a video / image signal is performed.

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

[0060] The image segmentation unit (210) can segment an input image (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 segmented from a coding tree unit (CTU) or a largest coding unit (LCU) according to a QTBTTT (Quad-tree binary-tree ternary-tree) structure.

[0061] For example, a single coding unit may be split into multiple coding units with deeper depths based on a quad-tree structure, a binary tree structure, and / or a ternary structure. In this case, for example, the quad-tree structure may be applied first, and the binary tree structure and / or the ternary structure may be applied later. Alternatively, the binary tree structure may be applied before the quad-tree structure. The coding procedure according to the present specification may be performed based on the final coding unit that is no longer split. In this case, based on coding efficiency according to image characteristics, etc., the largest coding unit may be used directly as the final coding unit, or, if necessary, the coding unit may be recursively split 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.

[0062] 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 each be split 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 for deriving a transform coefficient and / or a unit for deriving a residual signal from a transform coefficient.

[0063] The term "unit" may be used interchangeably with terms such as "block" or "area" depending on the case. In general, an MxN block can represent a set of samples or transform coefficients consisting of M columns and N rows. A sample can generally represent a pixel or a pixel value, and can represent only the pixel / pixel value of the luminance component, or only the pixel / pixel value of the chrominance component. A sample can be used as a term corresponding to a pixel or pel in a picture (or image).

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

[0065] The prediction unit (220) can perform a prediction on a block to be processed (hereinafter, referred to as a current block) and generate a predicted block including prediction samples for the current block. The prediction unit (220) can determine whether intra prediction or inter prediction is applied on a current block or CU basis. The prediction unit (220) can generate various information related to prediction, such as prediction mode information, as described later in the description of each prediction mode, and transmit the information to the entropy encoding unit (240). The information related to prediction can be encoded by the entropy encoding unit (240) and output in the form of a bitstream.

[0066] The intra prediction unit (222) can predict the current block by referring to samples in the current picture. The referenced samples may be located in the neighborhood of the current block, or may be located a certain distance away from the current block, depending on the prediction mode. In intra prediction, the prediction modes may include one or more non-directional modes and multiple directional modes. The non-directional mode may include at least one of a DC mode or a planar mode. The directional mode may include 33 directional modes or 65 directional modes depending on the degree of detail in the prediction direction. However, this is only an example, and a greater or lesser number of directional modes may be used depending on the settings. The intra prediction unit (222) may also determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring blocks.

[0067] The inter prediction unit (221) can derive a prediction block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. At this time, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information can be predicted in units of blocks, subblocks, or samples based on the correlation of motion information between neighboring blocks and the current block. The motion information can include a motion vector and a reference picture index. The motion information can further include inter prediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter prediction, the neighboring block can include a spatial neighboring block existing in the current picture and a temporal neighboring block existing in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different. The above temporal neighboring blocks may be called collocated reference blocks, collocated CUs (colCUs), etc., and the reference pictures including the temporal neighboring blocks may be called collocated pictures (colPic). For example, the inter prediction unit (221) may construct a motion information candidate list based on the neighboring blocks, and generate information indicating which candidate is used to derive the motion vector and / or reference picture index of the current block. Inter prediction may be performed based on various prediction modes, and for example, in the case of skip mode and merge mode, the inter prediction unit (221) may use the motion information of the neighboring blocks as the motion information of the current block. In the case of skip mode, unlike the merge mode, a residual signal may not be transmitted.In the motion vector prediction (MVP) mode, the motion vector of the surrounding blocks is used as a motion vector predictor, and the motion vector of the current block can be indicated by signaling the motion vector difference.

[0068] The prediction unit (220) can generate a prediction signal based on various prediction methods described below. For example, the prediction unit can apply intra prediction or inter prediction for prediction of a single block, and can also apply intra prediction and inter prediction simultaneously. This can be called combined inter and intra prediction (CIIP) mode. In addition, the prediction unit can be based on an intra block copy (IBC) prediction mode or a palette mode for prediction of a block. The IBC prediction mode or palette mode can be used for content image / video coding such as games, such as screen content coding (SCC). 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 utilize at least one of the inter prediction techniques described herein. Palette mode can be viewed as an example of intra coding or intra prediction. When the palette mode is applied, sample values ​​within a picture can be signaled based on information about the palette table and palette index. The prediction signal generated through the prediction unit (220) can be used to generate a restoration signal or a residual signal.

[0069] The transform unit (232) can apply a transform technique to the residual signal to generate transform coefficients. For example, the transform technique can include at least one of a Discrete Cosine Transform (DCT), a Discrete Sine Transform (DST), a Karhunen-Loeve Transform (KLT), a Graph-Based Transform (GBT), or a Conditionally Non-linear Transform (CNT). Here, GBT refers to a transform obtained from a graph when the relationship information between pixels is expressed as a graph. CNT refers to a transform obtained based on generating a prediction signal using all previously restored pixels. In addition, the transform process can be applied to a pixel block having a square size and the same size, or can be applied to a block of a non-square variable size.

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

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

[0072] Encoded information (e.g., encoded video / image information) can 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 on various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video / image information may further include general constraint information. In the present 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 through the above-described encoding procedure and included in the bitstream. The bitstream may be transmitted via a network or stored in a digital storage medium. Here, the network may include a broadcasting network and / or a communication network, and the digital storage medium may include various storage media, such as a USB, SD, CD, DVD, Blu-ray, HDD, or SSD. The signal output from the entropy encoding unit (240) may be configured as an internal / external element of the encoding device (200) by a transmitting unit (not shown) and / or a storing unit (not shown), or the transmitting unit may be included in the entropy encoding unit (240).

[0073] The quantized transform coefficients output from the quantization unit (233) can be used to generate a prediction signal. For example, by applying inverse quantization and inverse transformation to the quantized transform coefficients through the inverse quantization unit (234) and the inverse transform unit (235), a residual signal (residual block or residual samples) can be restored. The addition unit (250) can generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the reconstructed residual signal to the prediction signal output from the inter prediction unit (221) or the intra prediction unit (222). When there is no residual for the block to be processed, such as when skip mode is applied, the predicted block can be used as a reconstructed block. The addition unit (250) may be called a restoration unit or a reconstructed block generation unit. The generated restoration signal can be used for intra prediction of the next processing target block within the current picture, and can also be used for inter prediction of the next picture after filtering as described below. Meanwhile, LMCS (luma mapping with chroma scaling) may be applied during the picture encoding and / or restoration process.

[0074] The filtering unit (260) can improve subjective / objective picture quality by applying filtering to the restoration signal. For example, the filtering unit (260) can apply various filtering methods to the restoration picture to generate a modified restoration picture, and store the modified restoration picture in the memory (270), specifically, in the DPB of the memory (270). The various filtering methods can include deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc. The filtering unit (260) can generate various information regarding filtering and transmit it to the entropy encoding unit (240). The information regarding filtering can be encoded by the entropy encoding unit (240) and output in the form of a bitstream.

[0075] The modified restored picture transmitted to the memory (270) can be used as a reference picture in the inter prediction unit (221). Through this, when inter prediction is applied, the encoding device can avoid prediction mismatch between the encoding device (200) and the decoding device, and can also improve encoding efficiency.

[0076] The DPB of the memory (270) can store the modified restored picture to be used as a reference picture in the inter prediction unit (221). The memory (270) can store motion information of a block from which motion information is derived (or encoded) within the current picture and / or motion information of blocks within a picture that has already been restored. The stored motion information can be transferred to the inter prediction unit (221) to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory (270) can store restored samples of restored blocks within the current picture and transfer them to the intra prediction unit (222).

[0077] FIG. 3 is a schematic block diagram of a decoding device to which an embodiment of the present disclosure can be applied and in which decoding of a video / image signal is performed.

[0078] Referring to FIG. 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).

[0079] The entropy decoding unit (310), residual processing unit (320), prediction unit (330), addition unit (340), and 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. In addition, the memory (360) may include a decoded picture buffer (DPB) and may be configured by a digital storage medium. The hardware component may further include the memory (360) as an internal / external component.

[0080] When a bitstream including video / image information is input, the decoding device (300) can restore the image corresponding to the process in which the video / image information is processed in the encoding device of FIG. 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 a processing unit applied in the encoding device. Accordingly, the processing unit for decoding may be a coding unit, and the coding unit 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 ternary tree structure. One or more transform units may be derived from the coding unit. Then, the restored image signal decoded and output by the decoding device (300) can be reproduced through a reproduction device.

[0081] The decoding device (300) can receive a signal output from the encoding device of FIG. 2 in the form of a bitstream, and the received signal can be decoded through the entropy decoding unit (310). For example, the entropy decoding unit (310) can parse the bitstream to derive information (e.g., video / image information) necessary for image restoration (or picture restoration). The video / image information may further include information on various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video / image information may further include general constraint information. The decoding device can decode the picture further based on the information on the parameter set and / or the general constraint information. The signaling / received information and / or syntax elements described later in this specification can be decoded through the decoding procedure and obtained from the bitstream. For example, the entropy decoding unit (310) can decode information in a bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output the values ​​of syntax elements required for image restoration and the quantized values ​​of transform coefficients for residuals. More specifically, the CABAC entropy decoding method receives a bin corresponding to each syntax element in the bitstream, determines a context model using information of the syntax element to be decoded and decoding information of the surrounding and decoding target blocks or information of symbols / bins decoded in the previous step, and predicts the occurrence probability of the bin according to the determined context model to perform arithmetic decoding of the bin to generate a symbol corresponding to the value of each syntax element.At this time, the CABAC entropy decoding method can update the context model using the information of the decoded symbol / bin for the context model of the next symbol / bin after determining the context model. Information regarding prediction among 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 ​​on which entropy decoding is performed by the entropy decoding unit (310), i.e., quantized transform coefficients and related parameter information, can be input to the residual processing unit (320). The residual processing unit (320) can derive a residual signal (residual block, residual samples, residual sample array). In addition, information regarding filtering among the information decoded by the entropy decoding unit (310) can be provided to the filtering unit (350). Meanwhile, a receiving unit (not shown) that receives a signal output from an encoding device may be further configured as an internal / external element of a decoding device (300), or the receiving unit may be a component of an entropy decoding unit (310).

[0082] Meanwhile, a decoding device according to the present specification may be called a video / video / picture decoding device, and the decoding device may be divided into an information decoding device (video / video / picture information decoding device) and a sample decoding device (video / video / 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), the inverse transformation unit (322), the addition unit (340), the filtering unit (350), the memory (360), the inter prediction unit (332), and the intra prediction unit (331).

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

[0084] In the inverse transform unit (322), the transform coefficients are inversely transformed to obtain a residual signal (residual block, residual sample array).

[0085] The prediction unit (320) can perform a prediction on the current block and generate a predicted block including prediction samples for the current block. The prediction unit (320) can determine whether intra-prediction or inter-prediction is applied to the current block based on the information regarding the prediction output from the entropy decoding unit (310), and can determine a specific intra / inter-prediction mode.

[0086] The prediction unit (320) can generate a prediction signal based on various prediction methods described below. For example, the prediction unit (320) can apply intra prediction or inter prediction for prediction of a single block, and can also apply intra prediction and inter prediction simultaneously. This can be called combined inter and intra prediction (CIIP) mode. In addition, the prediction unit can be based on an intra block copy (IBC) prediction mode or a palette mode for prediction of a block. The IBC prediction mode or palette mode can be used for content image / video coding such as games, such as screen content coding (SCC). 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 utilize at least one of the inter prediction techniques described herein. Palette mode can be viewed as an example of intra coding or intra prediction. When palette mode is applied, information about the palette table and palette index may be included and signaled in the video / image information.

[0087] The intra prediction unit (331) can predict the current block by referring to samples within the current picture. The referenced samples may be located in the neighborhood of the current block, or may be located a certain distance away from the current block, depending on the prediction mode. In intra prediction, the prediction modes may include one or more non-directional modes and multiple directional modes. The intra prediction unit (331) may also determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring blocks.

[0088] The inter prediction unit (332) can derive a prediction block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. At this time, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information can be predicted in units of blocks, subblocks, or samples based on the correlation of the motion information between the neighboring blocks and the current block. The motion information can include a motion vector and a reference picture index. The motion information can further include inter prediction direction information (L0 prediction, L1 prediction, Bi prediction, etc.). In the case of inter prediction, the neighboring blocks can include spatial neighboring blocks existing in the current picture and temporal neighboring blocks existing in the reference picture. For example, the inter prediction unit (332) can construct a motion information candidate list based on the neighboring blocks, and derive the motion vector and / or reference picture index of the current block based on the received candidate selection information. Inter prediction can be performed based on various prediction modes, and information about the prediction can include information indicating an inter prediction mode for the current block.

[0089] The addition unit (340) can generate a restoration signal (restored picture, restoration block, restoration sample array) by adding the acquired residual signal to the prediction signal (prediction block, prediction 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 prediction block can be used as the restoration block.

[0090] The addition unit (340) may be referred to as a restoration unit or restoration block generation unit. The generated restoration signal may be used for intra prediction of the next processing target block within the current picture, may be output after filtering as described below, or may be used for inter prediction of the next picture. Meanwhile, LMCS (luma mapping with chroma scaling) may be applied during the picture decoding process.

[0091] The filtering unit (350) can improve subjective / objective image quality by applying filtering to the restored signal. 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 can include deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.

[0092] The (corrected) reconstructed picture stored in the DPB of the memory (360) can be used as a reference picture in the inter prediction unit (332). The memory (360) can store motion information of a block from which motion information is derived (or decoded) in the current picture and / or motion information of blocks in a picture that has already been reconstructed. The stored motion information can be transferred to the inter prediction unit (332) to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory (360) can store reconstructed samples of reconstructed blocks in the current picture and transfer them to the intra prediction unit (331).

[0093] In this specification, the embodiments described in the filtering unit (260), the inter prediction unit (221), and the intra prediction unit (222) of the encoding device (200) can be applied to the filtering unit (350), the inter prediction unit (332), and the intra prediction unit (331) of the decoding device (300) in the same or corresponding manner, respectively.

[0094] FIG. 4 illustrates a decoding method performed by a decoding device (300) as an embodiment according to the present disclosure.

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

[0096] Here, the coding block may mean a coding tree block. Alternatively, it may mean a coding block generated through block splitting based on a predetermined split type. The split type according to the present disclosure may include at least one of a quad split, a binary split, or a ternary split. For example, the coding block may be any one of four coding blocks generated through a quad split. Alternatively, the coding block may be any one of a plurality of coding blocks generated through any one of a binary split or a ternary split.

[0097] In addition, the coding tree block according to the present disclosure may be defined as a square block. However, the present disclosure is not limited thereto, and the coding tree block may also be defined as a non-square block. In addition, the coding block generated through block partitioning based on a predetermined partitioning type may be a square block or a non-square block. For example, depending on the shape of the coding block to be partitioned (hereinafter referred to as the “current block”), the coding blocks generated through quad partitioning may be square blocks or non-square blocks. Depending on the shape of the current block, the number or range of partitioning types allowed / applied to the current block may vary. Hereinafter, the partitioning types according to the present disclosure will be described in detail.

[0098] 1. Quad division

[0099] Quad splitting may refer to a splitting type that splits a current block into four coding blocks. For example, quad splitting may split a current block into four coding blocks by one horizontal line and one vertical line crossing the center of the block. Here, the four coding blocks may have the same size. Quad splitting may be applied to square blocks or non-square blocks. Quad splitting according to the present disclosure may be divided into square quad splitting that splits a square block into four and non-square quad splitting that splits a non-square block into four.

[0100] The above non-square quad partitioning may be a quad partitioning applied when the width and height of the current block are different from each other. The widths and heights of the four coding blocks generated through the non-square quad partitioning may be different from each other. The non-square quad partitioning may be applied when the ratio of the width and height of the current block is 1:N or N:1. Here, N may be an integer of 2, 3, 4, 5, 6, 7, or a higher integer.

[0101] For example, if the width and height ratio of the current block is 1:2 or 2:1, the current block can be divided into four non-square coding blocks based on quad division. 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 through quad division can be cuWidth / 2 and cuHeight / 2.

[0102] Alternatively, if the width and height ratio of the current block is 1:4 or 4:1, the current block may be divided into four non-square coding blocks based on quad division. 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 through quad division may be cuWidth / 2 and cuHeight / 2.

[0103] Alternatively, the non-square quad partitioning is not limited to applying to non-square blocks with a width-to-height ratio of 1:2, 2:1, 1:4, or 4:1, but can be extended to also apply to non-square blocks with a width-to-height ratio of 1:3, 3:1, 1:5, 5:1, 1:6, 6:1, 1:7, or 7:1.

[0104] Whether the above non-square quad partitioning is allowed and / or applied 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 a size, a shape, a position, a tree type, a component type, or a partition type of a coding block to which the current block belongs. Here, the size of the current block may be expressed by at least one of a width, a height, a maximum / minimum value of the width and the height, a product of the width and the height, a sum of the width and the height, or a ratio of the width and the height. The shape of the current block may mean whether the width and the height of the current block are the same. The position of the current block may mean whether the current block is located at a picture boundary.

[0105] For example, non-square quad partitioning may be allowed or applied when the size of the current block is greater than or equal to a predetermined threshold size (condition 1). Conversely, when the size of the current block is less than the predetermined threshold size, non-square quad partitioning may not be allowed or applied to the current block. The threshold size may refer to a minimum block size for which non-square quad partitioning is allowed. Alternatively, the threshold size may refer to a minimum block size for which non-square quad partitioning is applied. Information about the minimum block size for the non-square quad partitioning may be signaled in at least one of higher-level syntaxes, such as a sequence parameter set (SPS), a picture parameter set (PPS), a slice header (SH), etc. Alternatively, the minimum block size for the non-square quad partitioning may be a value predefined equally for an encoding device and a decoding device, and may be an integer of 8, 16, 32, 64, or a higher integer.

[0106] For example, if the width and height of the current block are different, non-square quad divisions may be allowed or applied (condition 2). Conversely, if the width and height of the current block are the same, non-square quad divisions may not be allowed.

[0107] For example, even if the width and height of the current block are different, if the ratio of the width and height of the current block corresponds to a predefined ratio, non-square quad partitioning may be allowed or applied (condition 3). Conversely, if the ratio of the width and height of the current block does not correspond to a predefined ratio, non-square quad partitioning may not be allowed for the current block. Here, the predefined ratio may be expressed as 1:M or M:1, and may include at least one of 1:2, 2:1, 1:3, 3:1, 1:4, 4:1, 1:5, 5:1, 1:6, 6:1, 1:7, or 7:1. For example, non-square quad partitioning may be allowed or applied if the ratio of the width and height of the current block is 1:2 or 2:1. Additionally, non-square quad partitioning may be allowed or applied when the width-to-height ratio of the current block is 1:4 or 4:1. Furthermore, asymmetric binary partitioning, described later, may be allowed when partitioning a coding block, and in this case, non-square quad partitioning may also be allowed or applied to a current block with a width-to-height ratio of 1:3 or 3:1.

[0108] For example, if the current block is located within a picture, non-square quad partitioning may be allowed or applied (condition 4). Conversely, if the current block is located at a picture boundary, non-square quad partitioning may not be allowed or applied for the current block. That is, if the right boundary of the current block extends beyond the right boundary of the picture and / or the bottom boundary of the current block extends beyond the bottom boundary of the picture, non-square quad partitioning may not be allowed for the current block. Alternatively, if the current block is located within a picture, or if the boundary of the current block extends beyond both the right and bottom boundaries of the picture, non-square quad partitioning may be allowed or applied. Conversely, if the boundary of the current block extends beyond either the right boundary or the bottom boundary of the picture, but not both, non-square quad partitioning may not be allowed. Alternatively, if the current block is located within a picture, or if the boundary of the current block extends beyond either the right boundary or the bottom boundary of the picture, but not both. Conversely, if the boundary of the current block extends beyond both the right and bottom boundaries of the picture, a non-square quad partition may not be permitted. However, this is not limited to the case where the right boundary of the current block extends beyond the right boundary of the picture and / or the bottom boundary of the current block extends beyond the bottom boundary of the picture, a non-square quad partition may be permitted for the current block.

[0109] For example, if a non-square coding block is generated by performing at least one partitioning based on binary partitioning or ternary partitioning on the coding block to which the current block belongs, a non-square quad partitioning may be allowed or applied to the non-square coding block (condition 5). That is, if the current block is a non-square coding block generated based on binary partitioning or ternary partitioning, a non-square quad partitioning may be allowed or applied to the current block.

[0110] We propose a case where a non-square quad partition is applied among various non-square coding blocks that can be generated in an MTT (multi-type tree) partitioning structure. Specifically, a non-square coding block can be generated by partitioning a square coding block based on binary partitioning, and a non-square quad partition can be allowed or applied to the generated non-square coding block. Alternatively, a non-square coding block can be generated by partitioning a square coding block based on ternary partitioning, and a non-square quad partition can be allowed or applied to the generated non-square coding block. In this case, a non-square quad partition can be allowed or applied to a coding block located at the center of three coding blocks generated through ternary partitioning, and a non-square quad partition can be restricted from being allowed or applied to the remaining coding blocks. Alternatively, a non-square quad partition can be allowed or applied to each of the three coding blocks generated through ternary partitioning.

[0111] For example, if a non-square coding block is split into multiple sub-blocks based on a non-square quad partition, the non-square quad partition may be restricted from being allowed or applied to the sub-blocks (condition 6). That is, if the current block is one of the four sub-blocks generated by splitting the coding block based on a non-square quad partition, the non-square quad partition may not be allowed or applied to the current block. Since the non-square quad partition is no longer allowed or applied to the four sub-blocks generated through the non-square quad partition, the split_qt_flag described below may not be signaled for the sub-blocks.

[0112] Specifically, a non-square coding block can be divided into four first sub-blocks based on a non-square quad partition. At least one of the four first sub-blocks can be divided into four second sub-blocks based on the non-square quad partition. However, if the non-square coding block is divided into four first sub-blocks based on the non-square quad partition, the non-square quad partition may be restricted from being allowed or applied any more to the first sub-blocks according to a rule pre-defined in the encoding device and the decoding device.

[0113] Alternatively, the non-square quad partitioning may be restricted to be performed within a predetermined number of times. Here, the predetermined number of times may be an integer greater than or equal to 1 (e.g., 1, 2, 3). The predetermined number of times may be a value predefined equally for the encoding device and the decoding device. Alternatively, information indicating the predetermined number of times may be signaled. The information may be signaled in at least one or more of the upper level syntaxes of the sequence parameter set (SPS), the picture parameter set (PPS), the picture header (PH), or the slice header (SH).

[0114] For example, a variable (nqtDepth) representing the number of times a non-square quad division has been applied may be defined. When a non-square quad division has been applied to a coding block with nqtDepth of 0, the coding block may be divided into four first sub-blocks. In this case, the value of nqtDepth is increased to 1, and the four first sub-blocks have nqtDepths with a value of 1. If the predetermined number of times mentioned above is 1, the nqtDepth of the first sub-block is equal to the predetermined number of times, and therefore, the non-square quad division may no longer be allowed or applied to the first sub-block. However, if the predetermined number of times mentioned above is 2, the nqtDepth of the first sub-block is less than the predetermined number of times, and therefore, the non-square quad division may be additionally allowed or applied to the first sub-block. When a non-square quad division is applied to the first sub-block, the first sub-block may be divided into four second sub-blocks. In this case, the value of nqtDepth is increased to 2, and the four second sub-blocks have an nqtDepth value of 2. Since the nqtDepth of the second sub-block is equal to a predetermined number of times, the non-square quad division may no longer be allowed or applied to the second sub-block.

[0115] However, additional non-square quad divisions are restricted for sub-blocks generated through non-square quad divisions, but binary divisions and / or ternary divisions may be permitted or applied to the sub-blocks. In this case, if the division depth of the sub-block is equal to the maximum division depth or the size of the block generated through binary division is smaller than the minimum binary division size, binary division may not be permitted or applied to the sub-block. Ternary division may not be permitted or applied if the division depth of the sub-block is equal to the maximum division depth or the size of the block generated through ternary division is smaller than the minimum ternary division size.

[0116] For example, based on the split depth of the current block, non-square quad splits may be restricted from being allowed or applied (condition 7). If the split depth (multi-type tree depth, MTTD) of the current block is greater than a predetermined threshold, non-square splits may not be allowed or applied to the current block. On the other hand, if the split depth of the current block is less than or equal to the predetermined threshold, non-square splits may be allowed or applied to the current block. Here, the split depth may refer to a split depth according to binary splitting and ternary splitting. However, the present invention is not limited thereto, and the split depth may refer to a split depth according to either binary splitting or ternary splitting. Alternatively, the split depth may refer to a split depth according to quad splitting, binary splitting, and ternary splitting. The threshold may refer to a maximum split depth at which non-square quad splitting is allowed. The above threshold value may be a value that is identically predefined for the encoding device and the decoding device. Alternatively, information for specifying the threshold value may be signaled via the bitstream. The information may be signaled in at least one or more of the upper-level syntaxes of a sequence parameter set (SPS), a picture parameter set (PPS), a picture header (PH), or a slice header (SH). The threshold value may be an integer greater than or equal to 1.

[0117] For example, a 4Nx4N coding block can be split into two 4Nx2N first sub-blocks based on horizontal binary partitioning. Assuming that the partition depth of the 4Nx4N coding block is 0, the partition depths of the two first sub-blocks can be set to 1. Any one of the two first sub-blocks can be split into three second sub-blocks based on ternary partitioning. The partition depths of the second sub-blocks can be set to 2. A block at a central position among the three second sub-blocks can be split into two third sub-blocks based on binary partitioning. The partition depths of the two third sub-blocks can be set to 3. Assuming that the threshold is 2, the partition depth of the third sub-block is greater than the threshold, so that non-square quad partitioning may not be allowed or applied to the third sub-block. On the other hand, since the segmentation depth of the other one of the two first sub-blocks is 1 and is less than the threshold, a non-square quad segmentation is allowed or can be applied to the first sub-block.

[0118] However, if the split depth of the sub-block to be split is equal to the maximum split depth or the size of the block generated through non-square quad splitting is smaller than the minimum block size, non-square quad splitting may not be allowed or applied to the sub-block.

[0119] Non-square quad partitioning according to the present disclosure may be allowed or applied when the encoding device and the decoding device satisfy the same pre-defined conditions. Here, the pre-defined conditions may include at least one of the conditions 1 to 7 described above. Non-square quad partitioning may be allowed or applied only when all of the pre-defined conditions are satisfied. Alternatively, non-square quad partitioning may be allowed or applied when any one of the pre-defined conditions is satisfied.

[0120] Quad splitting can 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 four coding blocks, and if the value of split_qt_flag is 0, the current block may not be split into four coding blocks.

[0121] The quad flag can be used to indicate whether a square quad partition is applied. Additionally, the quad flag can be used to indicate whether a non-square quad partition is applied, without signaling or deriving an additional flag to indicate whether a non-square quad partition is applied. For example, if the current block is square, the quad flag can indicate whether the square current block is divided into four square coding blocks. If the current block is non-square, the quad flag can indicate whether the non-square current block is divided into four non-square coding blocks.

[0122] When a square quad segmentation or a non-square quad segmentation is adaptively utilized based on a single syntax (i.e., a quad flag), a context model of the quad flag for the current block can be derived based on a segmentation depth of at least one of the current block or a neighboring block. The neighboring block is a block encoded before the current block, and can include at least one of an upper neighboring block, a left neighboring block, an upper-left neighboring block, a lower-left block, or an upper-right block.

[0123] For example, if the current block is a square coding block, a context model for square quad partitioning of the current block can be derived based on the partition depth of at least one of the current block or surrounding blocks. Here, the partition depth may refer to the partition depth according to the quad partitioning. The partition depth according to the quad partitioning may refer to a value obtained by adding the partition depth according to the square quad partitioning and the partition depth according to the non-square quad partitioning.

[0124] Alternatively, if the current block is a non-square coding block, a context model for non-square quad partitioning of the current block may be derived based on the partition depth of at least one of the current block or surrounding blocks. Here, the partition depth may refer to the partition depth according to the quad partitioning. The partition depth according to the quad partitioning may refer to a value obtained by adding the partition depth according to the square quad partitioning and the partition depth according to the non-square quad partitioning.

[0125] Alternatively, a context model for square quad segmentation of the current block can be derived based on the segmentation depth of at least one of the current block or surrounding blocks. Here, the segmentation depth may refer to a segmentation depth according to the quad segmentation. The segmentation depth according to the quad segmentation may refer to a segmentation depth according to the square quad segmentation.

[0126] Alternatively, a context model for non-square quad partitioning of the current block can be derived based on the partitioning depth of at least one of the current block or surrounding blocks. Here, the partitioning depth may refer to the partitioning depth according to the quad partitioning. The partitioning depth according to the quad partitioning may refer to the partitioning depth according to the non-square quad partitioning.

[0127] 2. Binary partitioning and ternary partitioning

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

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

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

[0131] Binary partitioning and ternary partitioning can be adaptively performed based on a binary flag (split_binary_flag). Here, the binary flag can indicate whether a coding block is split into two coding blocks. For example, if the value of the binary flag is 1, the coding block is split into two coding blocks based on binary partitioning, and if the value of the binary flag is 0, the coding block is split into three coding blocks based on ternary partitioning.

[0132] A split direction flag indicating the splitting direction of the binary or ternary split may be further utilized. Depending on the split direction flag, the current block may be split into two coding blocks based on horizontal binary splitting or vertical binary splitting. Similarly, depending on the split direction flag, the current block may 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 may be signaled after the binary flag is signaled.

[0133] Additionally, index information specifying the position of a dividing line for asymmetric binary division may be further utilized. The index information may specify any one of candidate positions predefined equally for the encoding device and the decoding device. The index information may be acquired when it is determined that binary division is applied to the current block. In this case, the predefined candidate positions may include the positions of dividing lines for symmetric binary division. Alternatively, the index information may be acquired only when it is determined that asymmetric binary division is applied to the current block, even when it is determined that binary division is applied to the current block. In this case, the predefined candidate positions may not include the positions of dividing lines for symmetric binary division, but may include the positions of dividing lines for asymmetric binary division.

[0134] Meanwhile, when binary partitioning according to the present disclosure is applied multiple times to a single coding block, partitioning may occur in a form identical to that of a square or non-square quad partition. To prevent such block partitioning in the same form, binary partitioning may be restricted so that it is not permitted when predefined conditions are met.

[0135] For example, if a horizontal binary division is applied to a square or non-square coding block to create two coding blocks, and a vertical binary division is applied to each of the two coding blocks, a block division of the same form as a square or non-square quad division can occur.

[0136] In this way, when one coding block is divided into two coding blocks through horizontal binary division (condition 1) and vertical binary division is applied to the upper coding block among the two coding blocks (condition 2), vertical binary division can be restricted from being applied to the lower coding block among the two coding blocks. To this end, division information for the lower coding block may not be signaled. Here, the division information may include at least one of a binary flag or a division direction flag.

[0137] Even if one coding block is split into two coding blocks through horizontal binary splitting (condition 1), if vertical binary splitting is not applied to the upper coding block among the two coding blocks, vertical binary splitting may be applied to the lower coding block among the two coding blocks, and for this purpose, splitting information may be signaled for the lower coding block. That is, if conditions 1 and 2 are satisfied, vertical binary splitting may be restricted from being applied to the lower coding block.

[0138] Alternatively, by applying a vertical binary partition to a square or non-square coding block to create two coding blocks, and applying a horizontal binary partition to each of the two coding blocks, a block partition of the same form as a square or non-square quad partition can be generated.

[0139] In this way, when one coding block is divided into two coding blocks through vertical binary division (condition 3) and horizontal binary division is applied to the left coding block among the two coding blocks (condition 4), horizontal binary division can be restricted from being applied to the right coding block among the two coding blocks. To this end, division information for the right coding block may not be signaled. Here, the division information may include at least one of a binary flag or a division direction flag.

[0140] Even if one coding block is split into two coding blocks through vertical binary splitting (condition 3), if horizontal binary splitting is not applied to the left coding block among the two coding blocks, horizontal binary splitting can be applied to the right coding block among the two coding blocks, and for this purpose, splitting information can be signaled for the right coding block. That is, if conditions 3 and 4 are satisfied, horizontal binary splitting can be restricted from being applied to the right coding block.

[0141] The above constraint may be adaptively applied based on at least one of the size of the coding tree unit (CTU) or the size of the current block. For example, if the size of the coding unit tree is 256x256, the constraint may be applied when the size of the current block is 64x64 or 128x128. Alternatively, if the size of the coding unit tree is 128x128, the constraint may be applied when the size of the current block is 32x32, 64x64, or 128x128.

[0142] Below, we will examine a method for signaling partition information for block partitioning based on the aforementioned partition type.

[0143] Information for a non-square quad partition of the current block can be signaled using information for a square quad partition. In video encoding / decoding methods and devices that utilize various block partitions, signaling syntax for the additional partition types may be required when utilizing additional partition types. However, the present disclosure proposes a method for signaling information for a non-square quad partition using existing syntax without signaling additional syntax for the non-square quad partition.

[0144] For example, the quad flag (split_qt_flag) described above can be used to signal information for non-square quad splitting in addition to information for square quad splitting.

[0145] Specifically, a split flag (split_cu_flag) indicating whether the current block is split into multiple coding blocks may be signaled. If the split flag indicates that the current block is not split, the current block may be determined as a leaf node of a split tree. If the current block is not split into multiple coding blocks, no additional split information is signaled for the current block, and the current block may be determined as a leaf node of a quad tree, a binary tree, or a ternary tree. On the other hand, if the split flag indicates that the current block is split into multiple coding blocks, additional split information may be signaled for the current block. Here, the split information may include at least one of the quad flag, the binary flag, the split direction flag, the flag indicating whether to apply a non-square quad split, the flag indicating whether to apply an asymmetric binary split, or index information for an asymmetric binary split.

[0146] If the split flag indicates that the current block is split into multiple coding blocks, a quad flag may be signaled for the current block. If the quad flag indicates that quad splitting is applied to the current block, the current block may be split into four sub-blocks of the same size. Here, if the current block is a square coding block, the current block may be split into four square sub-blocks. If the current block is a non-square coding block, the current block may be split into four non-square sub-blocks. That is, if the quad flag indicates that quad splitting is applied to the current block, either the square quad splitting or the non-square quad splitting may be selectively applied based on whether the shape of the current block is square. Depending on the size of the current block, either the square quad splitting or the non-square quad splitting may be selectively applied to the current block. When the quad flag indicates that quad partitioning is applied to the current block, a square quad partitioning that divides a 2Nx2N current block into four NxN coding blocks may be applied, a non-square quad partitioning that divides a 2NxN current block into four Nx(1 / 2N) coding blocks may be applied, and a non-square quad partitioning that divides a Nx2N current block into four (1 / 2N)xN coding blocks may be applied. That is, according to the present disclosure, different forms of block partitioning may be performed based on the size of the current block using one quad flag.

[0147] Even if the quad flag of the current block indicates that a quad partition is to be applied to the current block, the non-square quad partition may be applied only if the current block allows a non-square quad partition. A non-square quad partition may be allowed for the current block if the aforementioned predefined conditions are satisfied.

[0148] On the other hand, if the quad flag indicates that quad partitioning is not applied to the current block, the current block may not be partitioned into four sub-blocks. Furthermore, if the quad flag indicates that quad partitioning is not applied to the current block, this may indicate that the current block is partitioned based on a partitioning type other than quad partitioning. For this purpose, partitioning information regarding a partitioning type other than quad partitioning may be signaled.

[0149] A split direction flag (mtt_split_cu_vertical_flag) indicating a split direction of the binary split or ternary split may be signaled. A split direction flag having a first value (or true) may indicate that the current block is split in a vertical direction, and a split direction flag having a second value (or false) may indicate that the current block is split in a horizontal direction. Conversely, a split direction flag having a first value (or true) may indicate that the current block is split in a horizontal direction, and a split direction flag having a second value (or false) may indicate that the current block is split in a vertical direction.

[0150] A binary flag (mtt_split_cu_binary_flag) may be additionally signaled to indicate whether the current block is split into two coding blocks based on a binary partition. A binary flag having a first value (or true) may indicate that the current block is split into two coding blocks based on a binary partition, and a binary flag having a second value (or false) may indicate that the current block is not split based on a binary partition. Alternatively, a binary flag having a second value (or false) may indicate that the current block is split into three coding blocks based on a ternary partition. Conversely, a binary flag having a first value (or true) may indicate that the current block is not split based on a binary partition. Alternatively, a binary flag having a first value (or true) may indicate that the current block is split into three coding blocks based on a ternary partition. A binary flag with a second value (or false) may indicate that the current block is split into two coding blocks based on binary partitioning.

[0151] The binary flag may be signaled after the split direction flag is signaled. Alternatively, the binary flag may be signaled before the split direction flag is signaled. When the encoding device and the decoding device use only one of binary splitting and ternary splitting, the split type of the current block can be determined without signaling the binary flag.

[0152] Referring to FIG. 4, a plurality of coding blocks generated by dividing a coding block can be sequentially decoded according to a predetermined coding order (S410).

[0153] FIG. 5 illustrates a schematic configuration of a decoding device (300) that performs a decoding method according to the present disclosure.

[0154] Referring to FIG. 5, the decoding device (300) may include a block division unit (500) and a block decoding unit (510). The block division unit (500) may be provided in the entropy decoding unit (310), or may be provided in the decoding device (300) as a separate module connected to the entropy decoding unit (310).

[0155] The block division unit (500) can divide coding blocks based on a predetermined division type. The specific division method is as described with reference to FIG. 4, and a detailed description thereof will be omitted here.

[0156] The block partitioning unit (500) can partition a coding block using at least one of quad partitioning, binary partitioning, or ternary partitioning. Here, the quad partitioning can be divided into a square quad partitioning that divides a square block into four and a non-square quad partitioning that divides a non-square block into four. In addition, the binary partitioning can include at least one of a symmetric binary partitioning or an asymmetric binary partitioning.

[0157] The block division unit (500) may utilize predetermined division information for block division based on a predetermined division type. Here, the division information may include at least one of a division flag, a quad flag, a binary flag, a division direction flag, a flag indicating whether to apply non-square quad division, a flag indicating whether to apply asymmetric binary division, or index information for asymmetric binary division. The division information may be information signaled through a bitstream or information derived from a decoding device (300).

[0158] Meanwhile, when binary division according to the present disclosure is applied multiple times to a single coding block, divisions may occur in the same form as non-square quad divisions. To prevent such block divisions from occurring in the same form, the block division unit (500) may restrict binary divisions from being permitted when predefined conditions are met.

[0159] The block decoding unit (510) can sequentially decode a plurality of coding blocks generated through the block division unit (500) according to a predetermined coding order.

[0160] FIG. 6 illustrates an encoding method performed by an encoding device (200) as an embodiment according to the present disclosure.

[0161] Referring to FIG. 6, a coding block can be divided based on a predetermined division type (S600).

[0162] Here, the coding block may refer to a coding tree block. Alternatively, it may refer to a coding block generated through block division based on a predetermined division type. The division type according to the present disclosure may include at least one of quad division, binary division, or ternary division.

[0163] In addition, the coding tree block according to the present disclosure may be defined as a square block. However, the present disclosure is not limited thereto, and the coding tree block may also be defined as a non-square block. In addition, the coding block generated through block division based on a predetermined division type may be a square block or a non-square block. Depending on the shape of the current block, the number or range of division types allowed / applied to the current block may vary. The division types according to the present disclosure are as described with reference to FIG. 4, and redundant descriptions thereof will be omitted herein.

[0164] Quad splitting according to the present disclosure can be divided into square quad splitting that divides a square block into four and non-square quad splitting that divides a non-square block into four. If the width and height of the current block are different from each other, it can be determined whether non-square quad splitting is allowed / applied to the current block. For example, if the ratio of the width and height of the current block is 1:N or N:1, it can be determined that non-square quad splitting is allowed / applied. Here, N can be an integer of 2, 3, 4, 5, 6, or a higher number.

[0165] Whether or not the above non-square quad segmentation is allowed and / or applied can 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 size, shape, position, tree type, component type, or segmentation type of the coding block to which the current block belongs. This is as described with reference to FIG. 4, and a duplicate description will be omitted here.

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

[0167] The quad flag may be encoded to indicate whether a square quad partition is applied. Additionally, the quad flag may be encoded to indicate whether a non-square quad partition is applied, without signaling or deriving an additional flag 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 square current block is divided into four square coding blocks. If the current block is non-square, the quad flag may indicate whether the non-square current block is divided into four non-square coding blocks.

[0168] Meanwhile, the context model of the quad flag for the current block can be derived based on the segmentation depth of at least one of the current block or surrounding blocks, as described with reference to Fig. 4.

[0169] Binary partitioning according to the present disclosure may mean a partitioning type that partitions a current block into two coding blocks, and ternary partitioning may mean a partitioning type that partitions a current block into three coding blocks.

[0170] If it is determined that binary splitting or ternary splitting is 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 as 1, and if a coding block is split into three coding blocks, the value of the binary flag may be encoded as 0. A split direction flag indicating a 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 may be encoded after the binary flag is encoded. The binary flag may be encoded when the above-described quad flag (split_qt_flag) is 0.

[0171] In addition, when asymmetric binary division is allowed / applied, index information specifying the position of the division line for asymmetric binary division may be further encoded. The index information may specify any one of candidate positions pre-defined equally for the encoding device and the decoding device. In this case, the pre-defined candidate positions may include the position of the division line for symmetric binary division. Alternatively, the index information may be encoded only when it is determined that asymmetric binary division is applied to the current block, even when it is determined that binary division is applied to the current block. In this case, the pre-defined candidate positions may not include the position of the division line for symmetric binary division, but may include the positions of the division lines for asymmetric binary division.

[0172] Meanwhile, when binary partitioning according to the present disclosure is applied multiple times to a single coding block, partitioning may occur in a form identical to that of a non-square quad partition. To prevent such block partitioning in the same form, binary partitioning can be restricted so that it is not permitted when predefined conditions are met, as discussed with reference to FIG. 4.

[0173] Split information for the current block may be encoded. For example, it may be determined whether the current block is split into multiple coding blocks. A split flag (split_cu_flag) may be encoded based on the determination. If it is determined that the current block is not split, the current block may be determined as a leaf node of a split tree. If the current block is not split into multiple coding blocks, no additional split information is encoded for the current block, and the current block may be determined as a leaf node of a quad tree, a binary tree, or a ternary tree. On the other hand, if it is determined that the current block is split into multiple coding blocks, additional split information may be encoded for the current block. Here, the split information may include at least one of the quad flag, the binary flag, the split direction flag, the flag indicating whether non-square quad splitting is applied, the flag indicating whether asymmetric binary splitting is applied, or index information for asymmetric binary splitting.

[0174] If the split flag indicates that the current block is split into multiple coding blocks, it may be determined whether quad splitting is applied to the current block, and a quad flag for the current block may be encoded based on the determination. If it is determined that quad splitting is applied to the current block, the current block may be split into four sub-blocks having the same size. Here, if the current block is a square coding block, the current block may be split into four square sub-blocks. If the current block is a non-square coding block, the current block may be split into four non-square sub-blocks. That is, if it is determined that quad splitting is applied to the current block, either the square quad splitting or the non-square quad splitting may be selectively applied based on whether the shape of the current block is square. Depending on the size of the current block, either the square quad splitting or the non-square quad splitting may be selectively applied to the current block. If it is determined that a quad partitioning is applied to the current block, a square quad partitioning that divides the 2Nx2N current block into four NxN coding blocks may be applied, a non-square quad partitioning that divides the 2NxN current block into four Nx(1 / 2N) coding blocks may be applied, and a non-square quad partitioning that divides the Nx2N current block into four (1 / 2N)xN coding blocks may be applied. That is, according to the present disclosure, one quad flag is encoded, but different forms of block partitioning may be performed based on the size of the current block.

[0175] The above non-square quad partitioning can only be applied when non-square quad partitioning is allowed in the current block. Non-square quad partitioning is allowed in the current block when the aforementioned pre-defined conditions are satisfied, as discussed with reference to FIG. 4.

[0176] Conversely, if it is determined that quad partitioning is not applicable to the current block, the current block may not be partitioned into four sub-blocks. Furthermore, if it is determined that quad partitioning is not applicable to the current block, the current block may be partitioned based on a partitioning type other than quad partitioning. To this end, partitioning information regarding a partitioning type other than quad partitioning may be encoded.

[0177] A split direction flag (mtt_split_cu_vertical_flag) indicating a split direction of the binary split or ternary split may be encoded. A binary flag (mtt_split_cu_binary_flag) indicating whether the current block is split into two coding blocks based on binary split may be additionally encoded. The binary flag may be encoded after the split direction flag is encoded. Alternatively, the binary flag may be encoded before the split direction flag is encoded. When the encoding device and the decoding device use only one of binary split or ternary split, the split type of the current block may be determined without encoding the binary flag.

[0178] Referring to FIG. 6, a plurality of coding blocks generated by dividing a coding block can be sequentially encoded according to a predetermined coding order (S610).

[0179] FIG. 7 illustrates a schematic configuration of an encoding device (200) that performs an encoding method according to the present disclosure.

[0180] Referring to FIG. 7, the encoding device (200) may include a block division unit (700) and a block encoding unit (710). The block division unit (700) may be provided in the image division unit (210) or may be provided as a separate module within the encoding device (200).

[0181] The block division unit (700) can divide coding blocks based on a predetermined division type. The specific division method is as described with reference to FIG. 4, and a detailed description thereof will be omitted here.

[0182] The block partitioning unit (700) can partition a coding block using at least one of quad partitioning, binary partitioning, or ternary partitioning. Here, the quad partitioning can be divided into a square quad partitioning that divides a square block into four and a non-square quad partitioning that divides a non-square block into four. In addition, the binary partitioning can include at least one of a symmetric binary partitioning or an asymmetric binary partitioning.

[0183] The block division unit (700) can generate predetermined division information for block division based on a predetermined division type. Here, the division information can include at least one of a division flag, a quad flag, a binary flag, a division direction flag, a flag indicating whether to apply non-square quad division, a flag indicating whether to apply asymmetric binary division, or index information for asymmetric binary division. The division information can be encoded in the entropy encoding unit (240) and signaled through a bitstream. The encoding method of the division information is as described with reference to FIG. 6.

[0184] Meanwhile, when binary division according to the present disclosure is applied multiple times to a single coding block, divisions may occur in the same form as non-square quad divisions. To prevent such block divisions from occurring in the same form, the block division unit (700) may restrict binary divisions from being permitted when predefined conditions are met.

[0185] The block encoding unit (710) can sequentially encode a plurality of coding blocks generated through the block division unit (700) according to a predetermined coding order.

[0186] In the embodiments described above, the methods are described based on a flowchart as a series of steps or blocks. However, 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 described above. Furthermore, those skilled in the art will understand that the steps depicted in the flowchart are not exclusive, and other steps may be included, or one or more steps in the flowchart may be deleted without affecting the scope of the embodiments of this document.

[0187] The method according to the embodiments of the present document described above can be implemented in the form of software, and the encoding device and / or decoding device according to the present document can be included in a device that performs image processing, such as a TV, a computer, a smartphone, a set-top box, a display device, etc.

[0188] When the embodiments in this document are implemented as software, the above-described method can be implemented as a module (process, function, etc.) that performs the above-described function. The module can be stored in memory and executed by a processor. The memory can be internal or external to the processor and can be connected to the processor by various well-known means. The processor can include an application-specific integrated circuit (ASIC), another chipset, logic circuit, and / or data processing device. The memory can include a read-only memory (ROM), a random access memory (RAM), flash memory, a memory card, a storage medium, and / or other storage devices. That is, the embodiments described in this document can be implemented and performed on a processor, a microprocessor, a controller, or a chip. For example, the functional units illustrated in each drawing can be implemented and performed on a computer, a processor, a microprocessor, a controller, or a chip. In this case, information for implementation (e.g., information on instructions) or an algorithm can be stored on a digital storage medium.

[0189] In addition, the decoding device and encoding device to which the embodiment(s) of the present specification are applied may be included in a multimedia broadcasting transmitting and receiving device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video conversation device, a real-time communication device such as a video communication, a mobile streaming device, a storage medium, a camcorder, a video-on-demand (VoD) service providing device, an OTT (Over the top video) device, an Internet streaming service providing device, a three-dimensional (3D) video device, a VR (virtual reality) device, an AR (argumente reality) device, a video phone video device, a transportation terminal (ex. a vehicle (including an autonomous vehicle) terminal, an airplane terminal, a ship terminal, etc.), and a medical video device, and may be used to process a video signal or a data signal. For example, the OTT (Over the top video) device may include a game console, a Blu-ray player, an Internet-connected TV, a home theater system, a smartphone, a tablet PC, a DVR (Digital Video Recorder), etc.

[0190] In addition, the processing method to which the embodiment(s) of the present specification are applied can be produced in the form of a computer-executable program and can be stored in a computer-readable recording medium. Multimedia data having a data structure according to the embodiment(s) of the present specification can also be stored in a computer-readable recording medium. The computer-readable recording medium includes all types of storage devices and distributed storage devices in which computer-readable data is stored. The computer-readable recording medium can include, for example, a Blu-ray disc (BD), a universal serial bus (USB), a ROM, a PROM, an EPROM, an EEPROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device. In addition, the computer-readable recording medium includes a medium implemented in the form of a carrier wave (e.g., transmission via the Internet). In addition, a bitstream generated by an encoding method can be stored in a computer-readable recording medium or transmitted via a wired or wireless communication network.

[0191] Additionally, the embodiments of the present disclosure may be implemented as a computer program product by program code, and the program code may be executed on a computer by the embodiments of the present disclosure. The program code may be stored on a computer-readable carrier.

[0192] FIG. 8 illustrates an example of a content streaming system to which embodiments of the present disclosure can be applied.

[0193] Referring to FIG. 8, a content streaming system to which the embodiment(s) of the present specification are applied may largely include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.

[0194] The encoding server compresses content input from multimedia input devices such as smartphones, cameras, and camcorders into digital data, generates a bitstream, and transmits it to the streaming server. Alternatively, if multimedia input devices such as smartphones, cameras, and camcorders directly generate bitstreams, the encoding server may be omitted.

[0195] The above bitstream can be generated by an encoding method or a bitstream generation method to which the embodiment(s) of the present specification are applied, and the streaming server can temporarily store the bitstream during the process of transmitting or receiving the bitstream.

[0196] The streaming server transmits multimedia data to a user device based on a user request via a web server, and the web server acts as an intermediary to inform the user of available services. When a user requests a desired service from the web server, the web server transmits the request to the streaming server, and the streaming server transmits the multimedia data to the user. At this time, the content streaming system may include a separate control server, in which case the control server controls commands / responses between each device within the content streaming system.

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

[0198] Examples of the user devices may include mobile phones, smart phones, laptop computers, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation devices, slate PCs, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glasses, HMDs), digital TVs, desktop computers, digital signage, etc.

[0199] Each server within the above content streaming system can be operated as a distributed server, in which case data received from each server can be processed in a distributed manner.

[0200] The claims set forth in this specification may be combined in various ways. For example, the technical features of the method claims of this specification may be combined and implemented as a device, and the technical features of the device claims of this specification may be combined and implemented as a method. Furthermore, the technical features of the method claims and the technical features of the device claims of this specification may be combined and implemented as a device, and the technical features of the method claims and the technical features of the device claims of this specification may be combined and implemented as a method.

Claims

1. A step of dividing the current block based on a predetermined division type; and A step of decoding a plurality of coding blocks generated by dividing the current block, The above-described partition type includes at least one of quad partition, binary partition, or ternary partition, The above quad partitioning method includes a non-square quad partitioning that partitions a non-square coding block into four coding blocks.

2. In paragraph 1, A method in which whether the non-square quad division of the current block is allowed is determined based on whether the size of the current block is less than or equal to a predetermined threshold size.

3. In paragraph 1, A method in which whether the non-square quad division of the current block is allowed is determined based on whether the ratio of the width and height of the current block corresponds to a pre-defined ratio.

4. In paragraph 3, A method wherein the above-defined ratio comprises at least one of 1:2, 2:1, 1:4, or 4:

1.

5. In paragraph 3, A method wherein the above-described ratio comprises at least one of 1:3, 3:1, 1:5, 5:1, 1:6, 6:1, 1:7 or 7:

1.

6. In paragraph 1, A method in which the above non-square quad division is allowed when the current block is a non-square coding block generated by dividing a coding block based on the binary division or the ternary division.

7. In paragraph 1, A method in which the current block is generated by dividing a coding block based on the non-square quad division, wherein the non-square quad division is not allowed for the current block.

8. In paragraph 1, A method in which whether the non-square quad division is allowed in the current block is determined based on the division depth of the current block.

9. In paragraph 1, A method wherein the above non-square quad division is performed based on a quad flag indicating whether the quad division is applied to the current block.

10. In paragraph 9, The context model of the quad flag is derived based on the segmentation depth of at least one of the current block or a neighboring block adjacent to the current block, A method wherein the above segmentation depth includes at least one of a segmentation depth according to a square quad segmentation or a segmentation depth according to a non-square quad segmentation.

11. A step of dividing the current block based on a predetermined division type; and A step of encoding a plurality of coding blocks generated by dividing the current block, The above-described partition type includes at least one of quad partition, binary partition, or ternary partition, The above quad partitioning method includes a non-square quad partitioning that partitions a non-square coding block into four coding blocks.

12. A computer-readable storage medium storing a bitstream generated by the method according to Article 11.

13. A step of obtaining a bitstream for image information; wherein the bitstream is generated based on a step of dividing a current block based on a predetermined division type and a step of encoding a plurality of coding blocks generated by dividing the current block, and Including a step of transmitting data including the above bitstream, The above-described partition type includes at least one of quad partition, binary partition, or ternary partition, The above quad partitioning method includes a non-square quad partitioning that partitions a non-square coding block into four coding blocks.