WO2019194463A1 - 영상의 처리 방법 및 이를 위한 장치 - Google Patents
영상의 처리 방법 및 이를 위한 장치 Download PDFInfo
- Publication number
- WO2019194463A1 WO2019194463A1 PCT/KR2019/003606 KR2019003606W WO2019194463A1 WO 2019194463 A1 WO2019194463 A1 WO 2019194463A1 KR 2019003606 W KR2019003606 W KR 2019003606W WO 2019194463 A1 WO2019194463 A1 WO 2019194463A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- block
- syntax element
- current block
- split
- syntax
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/1883—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Definitions
- the present invention relates to a still image or moving image processing method, and more particularly, to a method for determining a partition structure of a block in which encoding / decoding is performed and an apparatus supporting the same.
- Compression coding refers to a series of signal processing techniques for transmitting digitized information through a communication line or for storing in a form suitable for a storage medium.
- Media such as an image, an image, an audio, and the like may be a target of compression encoding.
- a technique of performing compression encoding on an image is called video image compression.
- Next-generation video content will be characterized by high spatial resolution, high frame rate and high dimensionality of scene representation. Processing such content would result in a tremendous increase in terms of memory storage, memory access rate, and processing power.
- An object of the present invention is to propose a method for efficiently adjusting block partitioning in performing block partitioning with a QTBT structure.
- ST stripe tree
- a first syntax element indicating whether the current block is divided into a plurality of subblocks is provided. Parsing; Parsing a second syntax element indicating whether the current block is divided using a quad-tree structure when the first syntax element indicates that the current block is to be divided; If the second syntax element indicates that the current block is not split using a quad tree structure, whether the current block is split using a binary-tree structure or a ternary-tree Parsing at least one of a third syntax element indicating whether to divide using a structure and a fourth syntax element indicating a division direction of the current block; And determining a split mode of the current block based on at least one of the first syntax element, the second syntax element, the third syntax element, and the fourth syntax element.
- the method may further include calling a coding unit syntax for the decoding process of the current block.
- the current block is not divided. If the value of the first syntax element is 1, the current block is divided into four sub-blocks using a quad tree structure or a binary tree. The structure may be divided into two sub blocks using the structure, or may be divided into three sub blocks using the ternary tree structure.
- the method may further include calling a coding tree unit syntax for determining a partition structure of a sub-block divided from the current block based on the split mode.
- the first syntax element, the second syntax element, the third syntax element, and the fourth syntax element may be parsed at the same level of syntax.
- the preset condition is a value obtained by adding the width of the current block to the horizontal coordinates of the upper left sample of the current block, which is smaller than or equal to the width of the current picture, and the upper left sample of the current block. It may be satisfied when the height of the current block is added to the vertical coordinate is less than or equal to the height of the current picture.
- the method may further include parsing a fifth syntax element indicating whether to divide the current block divided from a block of a higher node using a binary tree structure or a ternary tree structure using a quad tree structure. have.
- a first syntax element indicating whether the current block is divided into a plurality of sub-blocks Parse a second syntax element, and if the first syntax element indicates that the current block is to be split, parsing a second syntax element indicating whether the current block is split using a quad-tree structure, If a second syntax element indicates that the current block is not split using a quad tree structure, whether the current block is split using a binary-tree structure or a ternary-tree structure Parsing at least one of a third syntax element indicating whether to be partitioned using the second syntax element and a fourth syntax element indicating a splitting direction of the current block; Syntax element parsing; And a split mode determiner configured to determine a split mode of the current block based on at least one of the first syntax element, the second syntax element, the third syntax element, and the fourth syntax element. have.
- the apparatus may further include a coding unit syntax caller that calls a coding unit syntax for a decoding process of the current block. .
- the current block is not divided. If the value of the first syntax element is 1, the current block is divided into four sub-blocks using a quad tree structure or a binary tree. The structure may be divided into two sub blocks using the structure, or may be divided into three sub blocks using the ternary tree structure.
- the method may further include a coding tree unit syntax caller that calls a coding tree unit syntax for determining a partition structure of a sub-block divided from the current block based on the split mode.
- a coding tree unit syntax caller that calls a coding tree unit syntax for determining a partition structure of a sub-block divided from the current block based on the split mode.
- the first syntax element, the second syntax element, the third syntax element, and the fourth syntax element may be parsed at the same level of syntax.
- the preset condition is a value obtained by adding the width of the current block to the horizontal coordinates of the upper left sample of the current block, which is smaller than or equal to the width of the current picture, and the upper left sample of the current block. It may be satisfied when the height of the current block is added to the vertical coordinate is less than or equal to the height of the current picture.
- the syntax element parsing unit may parse a fifth syntax element indicating whether to divide the current block divided from a block of an upper node using a quad tree structure using a binary tree structure or a ternary tree structure. have.
- compression performance can be improved by effectively determining the QTBT splitting structure and signaling related information.
- FIG. 1 is a schematic block diagram of an encoding apparatus in which an encoding of a video / image signal is performed, according to an embodiment to which the present invention is applied.
- FIG. 2 is a schematic block diagram of a decoding apparatus in which an embodiment of the present invention is applied and decoding of a video / image signal is performed.
- FIG. 3 is a diagram illustrating an example of a multi-type tree structure as an embodiment to which the present invention can be applied.
- FIG. 4 is a diagram illustrating a signaling mechanism of partition partition information of a quadtree with nested multi-type tree structure according to an embodiment to which the present invention may be applied.
- FIG. 5 is a diagram illustrating a method of dividing a CTU into multiple CUs based on a quadtree and accompanying multi-type tree structure as an embodiment to which the present invention may be applied.
- FIG. 6 is a diagram illustrating a method of limiting ternary-tree splitting as an embodiment to which the present invention may be applied.
- FIG. 7 is a diagram illustrating redundant division patterns that may occur in binary tree division and ternary tree division, as an embodiment to which the present invention may be applied.
- FIG. 8 is a diagram illustrating a method of dividing a block based on a quadtree and nested multi-type tree structure according to an embodiment to which the present invention is applied.
- FIG. 9 is a diagram illustrating a quad-tree based block division structure according to an embodiment to which the present invention is applied.
- FIG. 10 is a diagram illustrating a binary-tree based block partitioning structure according to an embodiment to which the present invention is applied.
- FIG. 11 is a diagram illustrating a ternary-tree based block splitting structure according to an embodiment to which the present invention is applied.
- FIG. 12 is a diagram illustrating a binary-tree and ternary-tree based block partitioning structure according to an embodiment to which the present invention is applied.
- FIG. 13 is a diagram illustrating a method of dividing a block based on a stripe tree structure according to an embodiment to which the present invention is applied.
- FIG. 14 is a diagram illustrating a reference position of a current block and a neighboring block as an embodiment to which the present invention may be applied.
- 15 is a flowchart illustrating a method of decoding a video signal according to an embodiment to which the present invention is applied.
- 16 is a diagram illustrating an apparatus for decoding a video signal according to an embodiment to which the present invention is applied.
- FIG. 17 shows a video coding system to which the present invention is applied.
- FIG. 18 is a diagram illustrating a structure of a content streaming system according to an embodiment to which the present invention is applied.
- the 'processing unit' refers to a unit in which a process of encoding / decoding such as prediction, transformation, and / or quantization is performed.
- the processing unit may be referred to as a 'processing block' or 'block'.
- the processing unit may be interpreted to include a unit for the luma component and a unit for the chroma component.
- the processing unit may correspond to a Coding Tree Unit (CTU), a Coding Unit (CU), a Prediction Unit (PU), or a Transform Unit (TU).
- CTU Coding Tree Unit
- CU Coding Unit
- PU Prediction Unit
- TU Transform Unit
- the processing unit may be interpreted as a unit for a luma component or a unit for a chroma component.
- the processing unit may be a coding tree block (CTB), a coding block (CB), a prediction block (PU), or a transform block (TB) for a luma component. May correspond to. Or, it may correspond to a coding tree block (CTB), a coding block (CB), a prediction block (PU), or a transform block (TB) for a chroma component.
- CTB coding tree block
- CB coding block
- PU prediction block
- TB transform block
- the present invention is not limited thereto, and the processing unit may be interpreted to include a unit for a luma component and a unit for a chroma component.
- processing unit is not necessarily limited to square blocks, but may also be configured in a polygonal form having three or more vertices.
- a pixel, a pixel, and the like are referred to collectively as a sample.
- using a sample may mean using a pixel value or a pixel value.
- FIG. 1 is a schematic block diagram of an encoding apparatus in which an encoding of a video / image signal is performed, according to an embodiment to which the present invention is applied.
- the encoding apparatus 100 may include an image splitter 110, a subtractor 115, a transformer 120, a quantizer 130, an inverse quantizer 140, an inverse transformer 150,
- the adder 155, the filter 160, the memory 170, the inter predictor 180, the intra predictor 185, and the entropy encoder 190 may be configured.
- the inter predictor 180 and the intra predictor 185 may be collectively referred to as a predictor.
- the predictor may include an inter predictor 180 and an intra predictor 185.
- the transform unit 120, the quantization unit 130, the inverse quantization unit 140, and the inverse transform unit 150 may be included in the residual processing unit.
- the residual processing unit may further include a subtracting unit 115.
- the image divider 110, the subtractor 115, the transformer 120, the quantizer 130, the inverse quantizer 140, the inverse transformer 150, and the adder 155 may be described.
- the filtering unit 160, the inter prediction unit 180, the intra prediction unit 185, and the entropy encoding unit 190 may be configured by one hardware component (eg, an encoder or a processor).
- the memory 170 may include a decoded picture buffer (DPB) or may be configured by a digital storage medium.
- DPB decoded picture buffer
- the image divider 110 may divide the input image (or picture or frame) input to the encoding apparatus 100 into one or more processing units.
- the processing unit may be called a coding unit (CU).
- the coding unit may be recursively divided according to a quad-tree binary-tree (QTBT) structure from a coding tree unit (CTU) or a largest coding unit (LCU).
- QTBT quad-tree binary-tree
- CTU coding tree unit
- LCU largest coding unit
- one coding unit may be divided into a plurality of coding units of a deeper depth based on a quad tree structure and / or a binary tree structure.
- the quad tree structure may be applied first and the binary tree structure may be applied later.
- the binary tree structure may be applied first.
- the coding procedure according to the present invention may be performed based on the final coding unit that is no longer split.
- the maximum coding unit may be used as the final coding unit immediately based on coding efficiency according to the image characteristic, or if necessary, the coding unit is recursively divided into coding units of lower depths and optimized.
- a coding unit of size may be used as the final coding unit.
- the coding procedure may include a procedure of prediction, transform, and reconstruction, which will be described later.
- the processing unit may further include a prediction unit (PU) or a transform unit (TU).
- the prediction unit and the transform unit may be partitioned or partitioned from the aforementioned final coding unit, respectively.
- the prediction unit may be a unit of sample prediction
- the transformation unit may be a unit for deriving a transform coefficient and / or a unit for deriving a residual signal from the transform coefficient.
- an M ⁇ N block may represent a set of samples or transform coefficients composed of M columns and N rows.
- a sample may generally represent a pixel or a value of a pixel, and may only represent pixel / pixel values of the luma component, or only pixel / pixel values of the chroma component.
- a sample may be used as a term corresponding to one picture (or image) for a pixel or a pel.
- the encoding apparatus 100 subtracts the prediction signal (predicted block, prediction sample array) output from the inter prediction unit 180 or the intra prediction unit 185 from the input image signal (original block, original sample array).
- a signal may be generated (residual signal, residual block, residual sample array), and the generated residual signal is transmitted to the converter 120.
- a unit that subtracts a prediction signal (prediction block, prediction sample array) from an input image signal (original block, original sample array) in the encoder 100 may be called a subtraction unit 115.
- the prediction unit may 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 may determine whether intra prediction or inter prediction is applied on a current block or CU basis. As described later in the description of each prediction mode, the prediction unit may generate various information related to prediction, such as prediction mode information, and transmit the generated information to the entropy encoding unit 190. The information about the prediction may be encoded in the entropy encoding unit 190 and output in the form of a bitstream.
- the intra predictor 185 may predict the current block by referring to the samples in the current picture.
- the referenced samples may be located in the neighborhood of the current block or may be located apart according to the prediction mode.
- prediction modes may include a plurality of non-directional modes and a plurality of directional modes.
- Non-directional mode may include, for example, DC mode and planner mode (Planar mode).
- the directional mode may include, for example, 33 directional prediction modes or 65 directional prediction modes according to the degree of detail of the prediction direction. However, as an example, more or less directional prediction modes may be used depending on the setting.
- the intra predictor 185 may determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring block.
- the inter predictor 180 may derive the predicted block with respect to the current block based on the reference block (reference sample array) specified by the motion vector on the reference picture.
- the motion information may be predicted in units of blocks, subblocks, or samples based on the correlation of the motion information between the neighboring block and the current block.
- the motion information may include a motion vector and a reference picture index.
- the motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information.
- the neighboring block may include a spatial neighboring block existing in the current picture and a temporal neighboring block present 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 temporal neighboring block may be referred to as a collocated reference block, a collocated CU (colCU), and the like, and a reference picture including the temporal neighboring block is called a collocated picture (colPic). It may be.
- the inter prediction unit 180 constructs a motion information candidate list based on neighboring blocks and provides information indicating which candidates are used to derive a motion vector and / or a reference picture index of the current block. Can be generated. Inter prediction may be performed based on various prediction modes.
- the inter prediction unit 180 may use motion information of a neighboring block as motion information of a current block.
- the residual signal may not be transmitted.
- the motion vector of the neighboring block is used as a motion vector predictor and the motion vector difference is signaled by signaling a motion vector difference. Can be directed.
- the prediction signal generated by the inter predictor 180 or the intra predictor 185 may be used to generate a reconstruction signal or to generate a residual signal.
- the transformer 120 may apply transform techniques to the residual signal to generate transform coefficients.
- the transformation technique may 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).
- DCT discrete cosine transform
- DST discrete sine transform
- KLT karhunen-loeve transform
- GBT graph-based transform
- CNT conditionally non-linear transform
- GBT means a conversion obtained from this graph when the relationship information between pixels is represented by a graph.
- CNT refers to a transform that is generated based on and generates a prediction signal using all previously reconstructed pixels.
- the conversion process may be applied to pixel blocks having the same size as the square, or may be applied to blocks of variable size rather than square.
- the quantization unit 130 quantizes the transform coefficients and transmits them to the entropy encoding unit 190.
- the entropy encoding unit 190 encodes the quantized signal (information about the quantized transform coefficients) and outputs the bitstream. have.
- the information about the quantized transform coefficients may be referred to as residual information.
- the quantization unit 130 may rearrange block quantized transform coefficients into a one-dimensional vector form based on a coefficient scan order, and quantize the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form. Information about transform coefficients may be generated.
- the entropy encoding unit 190 may perform various encoding methods such as, for example, exponential Golomb, context-adaptive variable length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), and the like.
- the entropy encoding unit 190 may encode information necessary for video / image reconstruction other than quantized transform coefficients (for example, values of syntax elements) together or separately.
- Encoded information eg, encoded video / image information
- NALs network abstraction layer
- the network may include a broadcasting network and / or a communication network
- the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, and the like.
- the signal output from the entropy encoding unit 190 may include a transmitting unit (not shown) for transmitting and / or a storing unit (not shown) for storing as an internal / external element of the encoding apparatus 100, or the transmitting unit It may be a component of the entropy encoding unit 190.
- the quantized transform coefficients output from the quantization unit 130 may be used to generate a prediction signal.
- the quantized transform coefficients may be reconstructed in the residual signal by applying inverse quantization and inverse transform through inverse quantization unit 140 and inverse transform unit 150 in a loop.
- the adder 155 adds the reconstructed residual signal to the predicted signal output from the inter predictor 180 or the intra predictor 185 so that a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) is added. Can be generated. If there is no residual for the block to be processed, such as when the skip mode is applied, the predicted block may be used as the reconstructed block.
- the adder 155 may be called a restoration unit or a restoration block generation unit.
- the generated reconstruction signal may be used for intra prediction of a next processing target block in a current picture, and may be used for inter prediction of a next picture through filtering as described below.
- the filtering unit 160 may improve subjective / objective image quality by applying filtering to the reconstruction signal.
- the filtering unit 160 may generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture, and the modified reconstructed picture is stored in the memory 170, specifically, the DPB of the memory 170.
- the various filtering methods may include, for example, deblocking filtering, a sample adaptive offset, an adaptive loop filter, a bilateral filter, and the like.
- the filtering unit 160 may generate various information about the filtering and transmit the generated information to the entropy encoding unit 190.
- the filtering information may be encoded in the entropy encoding unit 190 and output in the form of a bitstream.
- the modified reconstructed picture transmitted to the memory 170 may be used as the reference picture in the inter predictor 180.
- the encoding apparatus may avoid prediction mismatch between the encoding apparatus 100 and the decoding apparatus, and may improve encoding efficiency.
- the memory 170 DPB may store the modified reconstructed picture for use as a reference picture in the inter predictor 180.
- the memory 170 may store the motion information of the block from which the motion information in the current picture is derived (or encoded) and / or the motion information of the blocks in the picture that have already been reconstructed.
- the stored motion information may be transmitted to the inter predictor 180 to use the motion information of the spatial neighboring block or the motion information of the temporal neighboring block.
- the memory 170 may store reconstructed samples of reconstructed blocks in the current picture, and transfer the reconstructed samples to the intra predictor 185.
- FIG. 2 is a schematic block diagram of a decoding apparatus in which an embodiment of the present invention is applied and decoding of a video / image signal is performed.
- the decoding apparatus 200 includes an entropy decoding unit 210, an inverse quantizer 220, an inverse transform unit 230, an adder 235, a filter 240, a memory 250, and an inter
- the prediction unit 260 and the intra prediction unit 265 may be configured.
- the inter predictor 260 and the intra predictor 265 may be collectively called a predictor. That is, the predictor may include an inter predictor 180 and an intra predictor 185.
- the inverse quantization unit 220 and the inverse transform unit 230 may be collectively called a residual processing unit. That is, the residual processing unit may include an inverse quantization unit 220 and an inverse transformation unit 230.
- the entropy decoder 210, the inverse quantizer 220, the inverse transformer 230, the adder 235, the filter 240, the inter predictor 260, and the intra predictor 265 are described in the embodiment. Can be configured by one hardware component (eg, decoder or processor).
- the memory 170 may include a decoded picture buffer (DPB) or may be configured by a digital storage medium.
- DPB decoded picture buffer
- the decoding apparatus 200 may reconstruct an image corresponding to a process in which video / image information is processed in the encoding apparatus of FIG. 1.
- the decoding apparatus 200 may perform decoding using a processing unit applied in the encoding apparatus.
- the processing unit of decoding may be a coding unit, for example, which may be split along a quad tree structure and / or a binary tree structure from a coding tree unit or a maximum coding unit.
- the reconstructed video signal decoded and output through the decoding apparatus 200 may be reproduced through the reproducing apparatus.
- the decoding apparatus 200 may receive a signal output from the encoding apparatus of FIG. 1 in the form of a bitstream, and the received signal may be decoded through the entropy decoding unit 210.
- the entropy decoding unit 210 may parse the bitstream to derive information (eg, video / image information) necessary for image reconstruction (or picture reconstruction).
- the entropy decoding unit 210 decodes information in a bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, quantized values of syntax elements required for image reconstruction, and transform coefficients for residuals. Can be output.
- the CABAC entropy decoding method receives a bin corresponding to each syntax element in a bitstream, and decodes syntax element information and decoding information of neighboring and decoding target blocks or information of symbols / bins decoded in a previous step.
- the context model may be determined using the context model, the probability of occurrence of a bin may be predicted according to the determined context model, and arithmetic decoding of the bin may be performed to generate a symbol corresponding to the value of each syntax element. have.
- the CABAC entropy decoding method may update the context model by using the information of the decoded symbol / bin for the context model of the next symbol / bean after determining the context model.
- the information related to the prediction among the information decoded by the entropy decoding unit 2110 is provided to the prediction unit (the inter prediction unit 260 and the intra prediction unit 265), and the entropy decoding performed by the entropy decoding unit 210 is performed. Dual values, that is, quantized transform coefficients and related parameter information, may be input to the inverse quantizer 220.
- information on filtering among information decoded by the entropy decoding unit 210 may be provided to the filtering unit 240.
- a receiver (not shown) that receives a signal output from the encoding apparatus may be further configured as an internal / external element of the decoding apparatus 200, or the receiver may be a component of the entropy decoding unit 210.
- the inverse quantization unit 220 may dequantize the quantized transform coefficients and output the transform coefficients.
- the inverse quantization unit 220 may rearrange the quantized transform coefficients in the form of a two-dimensional block. In this case, the reordering may be performed based on the coefficient scan order performed by the encoding apparatus.
- the inverse quantization unit 220 may perform inverse quantization on quantized transform coefficients using a quantization parameter (for example, quantization step size information), and may obtain transform coefficients.
- a quantization parameter for example, quantization step size information
- the inverse transformer 230 inversely transforms the transform coefficients to obtain a residual signal (residual block, residual sample array).
- the prediction unit may perform prediction on the current block and generate a predicted block including prediction samples for the current block.
- the prediction unit may determine whether intra prediction or inter prediction is applied to the current block based on the information about the prediction output from the entropy decoding unit 210, and may determine a specific intra / inter prediction mode.
- the intra predictor 265 may 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 apart according to the prediction mode.
- prediction modes may include a plurality of non-directional modes and a plurality of directional modes.
- the intra predictor 265 may determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring block.
- the inter prediction unit 260 may derive the predicted block for the current block based on the reference block (reference sample array) specified by the motion vector on the reference picture.
- the motion information may be predicted in units of blocks, subblocks, or samples based on the correlation of the motion information between the neighboring block and the current block.
- the motion information may include a motion vector and a reference picture index.
- the motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information.
- the neighboring block may include a spatial neighboring block existing in the current picture and a temporal neighboring block present in the reference picture.
- the inter prediction unit 260 may construct a motion information candidate list based on neighboring blocks and derive a motion vector and / or a reference picture index of the current block based on the received candidate selection information. Inter prediction may be performed based on various prediction modes, and the information about the prediction may include information indicating a mode of inter prediction for the current block.
- the adder 235 adds the obtained residual signal to the predictive signal (predicted block, predictive sample array) output from the inter predictor 260 or the intra predictor 265 to restore the reconstructed signal (restored picture, reconstructed block). , Restore sample array). If there is no residual for the block to be processed, such as when the skip mode is applied, the predicted block may be used as the reconstructed block.
- the adder 235 may be called a restoration unit or a restoration block generation unit.
- the generated reconstruction signal may be used for intra prediction of a next processing target block in a current picture, and may be used for inter prediction of a next picture through filtering as described below.
- the filtering unit 240 may improve subjective / objective image quality by applying filtering to the reconstruction signal.
- the filtering unit 240 may generate a modified reconstructed picture by applying various filtering methods to the reconstructed picture, and the modified reconstructed picture may be stored in the memory 250, specifically, the DPB of the memory 250. Can be sent to.
- the various filtering methods may include, for example, deblocking filtering, a sample adaptive offset, an adaptive loop filter, a bilateral filter, and the like.
- the (modified) reconstructed picture stored in the DPB of the memory 250 may be used as the reference picture in the inter predictor 260.
- the memory 250 may store the motion information of the block from which the motion information in the current picture is derived (or decoded) and / or the motion information of the blocks in the picture that are already reconstructed.
- the stored motion information may be transmitted to the inter predictor 260 to use the motion information of the spatial neighboring block or the motion information of the temporal neighboring block.
- the memory 170 may store reconstructed samples of reconstructed blocks in the current picture, and transfer the reconstructed samples to the intra predictor 265.
- the embodiments described by the filtering unit 160, the inter prediction unit 180, and the intra prediction unit 185 of the encoding apparatus 100 are respectively the filtering unit 240 and the inter prediction of the decoding apparatus 200. The same may also apply to the unit 260 and the intra predictor 265.
- the video / image coding method according to this document may be performed based on various detailed techniques, and each detailed technique will be described as follows. Techniques described below include prediction, residual processing ((inverse) transformation, (inverse) quantization, etc.), syntax element coding, filtering, partitioning / division, etc. in the video / image encoding / decoding procedures described above and / or described below. It will be apparent to those skilled in the art that they may be involved in related procedures.
- the block partitioning procedure according to this document may be performed by the image splitter 110 of the encoding apparatus described above, and the partitioning related information may be processed (encoded) by the entropy encoding unit 190 and transmitted to the decoding apparatus in the form of a bitstream. .
- the entropy decoding unit 210 of the decoding apparatus derives a block partitioning structure of the current picture based on the partitioning related information obtained from the bitstream, and based on this, a series of procedures (eg, prediction and residual) for image decoding. Processing, block reconstruction, in-loop filtering, etc.).
- the CTU may correspond to a coding tree block (CTB).
- CTB coding tree block
- the CTU may include a coding tree block of luma samples and two coding tree blocks of corresponding chroma samples.
- the CTU may include an N ⁇ N block of luma samples and two corresponding blocks of chroma samples.
- the maximum allowable size of the CTU for coding and prediction may be different from the maximum allowable size of the CTU for transform.
- the maximum allowable size of the luma block in the CTU may be 128x128.
- the CTU may be divided into CUs based on a quad-tree (QT) structure.
- the quadtree structure may be referred to as a quaternary tree structure. This is to reflect various local characteristics.
- the CTU may be divided based on a multitype tree structure partition including a binary tree (BT) and a ternary tree (TT) as well as a quad tree.
- the QTBT structure may include a quadtree and binary tree based partition structure
- the QTBTTT may include a quadtree, binary tree, and ternary tree based partition structure.
- the QTBT structure may include a quadtree, binary tree and ternary tree based partitioning structure.
- a coding tree structure a CU may have a square or rectangular shape.
- the CTU may first be divided into quadtree structures. After that, the leaf nodes of the quadtree structure may be further divided by the multitype tree structure.
- FIG. 3 is a diagram illustrating an example of a multi-type tree structure as an embodiment to which the present invention can be applied.
- the multitype tree structure may include four partition types as shown in FIG.
- the four types of split include vertical binary splitting (SPLIT_BT_VER), horizontal binary splitting (SPLIT_BT_HOR), vertical ternary splitting (SPLIT_TT_VER), and horizontal ternary splitting (SPLIT_TT_HOR). ) May be included.
- Leaf nodes of the multitype tree structure may be called CUs. These CUs can be used for prediction and transform procedures.
- CU, PU, and TU may have the same block size in this document. However, when the maximum supported transform length is smaller than the width or height of the color component of the CU, the CU and the TU may have different block sizes.
- FIG. 4 is a diagram illustrating a signaling mechanism of partition partition information of a quadtree with nested multi-type tree structure according to an embodiment to which the present invention may be applied.
- the CTU is treated as the root of the quadtree, and is partitioned for the first time into a quadtree structure.
- Each quadtree leaf node may then be further partitioned into a multitype tree structure.
- a first flag (ex. Mtt_split_cu_flag) is signaled to indicate whether the node is additionally partitioned.
- a second flag (ex. Mtt_split_cu_verticla_flag) may be signaled to indicate the splitting direction.
- a third flag (ex. Mtt_split_cu_binary_flag) may be signaled to indicate whether the partition type is binary partition or ternary partition.
- a multi-type tree splitting mode (MttSplitMode) of a CU may be derived as shown in Table 1 below.
- FIG. 5 is a diagram illustrating a method of dividing a CTU into multiple CUs based on a quadtree and accompanying multi-type tree structure as an embodiment to which the present invention may be applied.
- the CU may correspond to a coding block (CB).
- the CU may include a coding block of luma samples and two coding blocks of corresponding chroma samples.
- the size of a CU may be as large as CTU, or may be cut by 4 ⁇ 4 in luma sample units. For example, in the 4: 2: 0 color format (or chroma format), the maximum chroma CB size may be 64x64 and the minimum chroma CB size may be 2x2.
- the maximum allowable luma TB size may be 64x64 and the maximum allowable chroma TB size may be 32x32. If the width or height of the CB divided according to the tree structure is larger than the maximum transform width or height, the CB may be automatically (or implicitly) split until the TB size limit in the horizontal and vertical directions is satisfied.
- the following parameters may be defined and identified as SPS syntax elements.
- CTU size the root node size of a quaternary tree
- MinQTSize the minimum allowed quaternary tree leaf node size
- MaxBtSize the maximum allowed binary tree root node size
- MaxTtSize the maximum allowed ternary tree root node size
- MaxMttDepth the maximum allowed hierarchy depth of multi-type tree splitting from a quadtree leaf
- MinBtSize the minimum allowed binary tree leaf node size
- MinTtSize the minimum allowed ternary tree leaf node size
- the CTU size may be set to 64x64 blocks of 128x128 luma samples and two corresponding chroma samples (in 4: 2: 0 chroma format).
- MinOTSize can be set to 16x16
- MaxBtSize to 128x128, MaxTtSzie to 64x64
- MinBtSize and MinTtSize (for both width and height) to 4x4, and MaxMttDepth to 4.
- Quarttree partitioning may be applied to the CTU to generate quadtree leaf nodes.
- the quadtree leaf node may be called a leaf QT node.
- Quadtree leaf nodes may have a 128x128 size (i.e. the CTU size) from a 16x16 size (i.e. the MinOTSize). If the leaf QT node is 128x128, it may not be additionally divided into a binary tree / a ternary tree. This is because in this case, even if split, it exceeds MaxBtsize and MaxTtszie (i.e. 64x64). In other cases, leaf QT nodes may be further partitioned into a multitype tree. Therefore, the leaf QT node is the root node for the multitype tree, and the leaf QT node may have a multitype tree depth (mttDepth) 0 value.
- mttDepth multitype tree depth
- FIG. 6 is a diagram illustrating a method of limiting ternary-tree splitting as an embodiment to which the present invention may be applied.
- TT partitioning may be limited in certain cases. For example, when the width or height of the luma coding block is greater than a predetermined specific value (eg, 32 and 64), TT partitioning may be limited as shown in FIG. 6.
- a predetermined specific value e.g, 32 and 64
- the coding tree scheme may support that the luma and chroma blocks have separate block tree structures.
- luma and chroma CTBs in one CTU may be limited to have the same coding tree structure.
- luma and chroma blocks may have a separate block tree structure from each other. If an individual block tree mode is applied, the luma CTB may be split into CUs based on a particular coding tree structure, and the chroma CTB may be split into chroma CUs based on another coding tree structure. This may mean that a CU in an I slice may consist of a coding block of a luma component or coding blocks of two chroma components, and a CU of a P or B slice may be composed of blocks of three color components.
- a quadtree coding tree structure involving a multitype tree has been described, but a structure in which a CU is divided is not limited thereto.
- the BT structure and the TT structure may be interpreted as a concept included in a multiple partitioning tree (MPT) structure, and the CU may be interpreted to be divided through the QT structure and the MPT structure.
- MPT multiple partitioning tree
- a syntax element eg, MPT_split_type
- MPT_split_mode a syntax element that contains information about which direction is divided into and horizontally.
- the CU may be partitioned in a different way than the QT structure, BT structure or TT structure. That is, according to the QT structure, the CU of the lower depth is divided into 1/4 size of the CU of the upper depth, or the CU of the lower depth is divided into 1/2 size of the CU of the upper depth according to the BT structure, or according to the TT structure. Unlike the CU of the lower depth is divided into 1/4 or 1/2 size of the CU of the upper depth, the CU of the lower depth is sometimes 1/5, 1/3, 3/8, 3 of the CU of the upper depth. It can be divided into / 5, 2/3 or 5/8 size, the way in which the CU is divided is not limited to this.
- the tree node block is placed so that all samples of all coded CUs are located within the picture boundaries. May be limited. In this case, for example, the following division rule may be applied.
- the block is forced to be split with QT split mode.
- the block is forced to be split with SPLIT_BT_HOR mode
- the block is forced to be split with QT split mode.
- the block is a QT node, and the size of the block is larger than the minimum QT size and the size of the block is smaller than or equal to the maximum BT size, the block is forced to be split with QT split mode or SPLIT_BT_HOR mode.
- the block is forced to be split with SPLIT_BT_HOR mode.
- the block is forced to be split with QT split mode.
- the block is a QT node, and the size of the block is larger than the minimum QT size and the size of the block is smaller than or equal to the maximum BT size, the block is forced to be split with QT split mode or SPLIT_BT_VER mode.
- the block is forced to be split with SPLIT_BT_VER mode.
- the quadtree coded block structure with the multi-type tree described above can provide a very flexible block partitioning structure. Because of the partition types supported in a multitype tree, different partition patterns can sometimes lead to potentially identical coding block structure results. By limiting the occurrence of such redundant partition patterns, the data amount of partitioning information can be reduced. It demonstrates with reference to the following drawings.
- FIG. 7 is a diagram illustrating redundant division patterns that may occur in binary tree division and ternary tree division, as an embodiment to which the present invention may be applied.
- two levels of consecutive binary splits in one direction have the same coding block structure as the binary split for the center partition after the ternary split.
- the binary tree split in the given direction for the center partition of the ternary tree split may be limited. This restriction can be applied for CUs of all pictures. If this particular partitioning is restricted, the signaling of the corresponding syntax elements can be modified to reflect this limited case, thereby reducing the number of bits signaled for partitioning. For example, as shown in FIG.
- an mtt_split_cu_binary_flag syntax element indicating whether a split is a binary split or a tenary split is not signaled, and a value thereof Can be inferred by the decoder to zero.
- the CTU or Coding Tree Block (CTB), CU (C, CB) includes not only quadtree but also binary-tree (BT) and ternary-tree (TT).
- CTB Coding Tree Block
- CU C, CB
- BT binary-tree
- TT ternary-tree
- An object of the present invention is to propose a method for efficiently adjusting block partitioning in performing block partitioning with a QTBT structure.
- ST stripe tree
- the compression performance can be further improved by effectively determining the QTBT partition structure and signaling related information.
- the encoder / decoder may perform block division into a binary-tree (BT) or ternary-tree (TT) structure (ie, a multitype tree structure).
- BT binary-tree
- TT ternary-tree
- the CTU or one QT end block ie, leaf node block of QT structure
- the CTU or one QT end block can be divided into three sub-blocks by the TT.
- FIG. 8 is a diagram illustrating a method of dividing a block based on a quadtree and nested multi-type tree structure according to an embodiment to which the present invention is applied.
- FIG. 8 a splitting method by BT and TT is illustrated.
- the square block is divided in the horizontal or vertical direction, but the present invention is not limited thereto, and the square block may be divided in the same manner.
- one block When divided into the BT structure, one block may be divided into two sub-blocks in a horizontal direction or a vertical direction as shown in FIG. 8 (a) or (b). That is, it may have two Nx2N forms or two 2NxN forms.
- one block When divided into a TT structure, one block may be divided into three sub-blocks in a horizontal direction or a vertical direction as shown in FIG. 8 (c) or (d). When one block is divided into three, one block may be large and two blocks may be small, or three blocks may be equally divided. For example, in the case of horizontal division, the height may be divided in a 1: 2: 1 ratio, and in the case of vertical division, the width may be divided in a 1: 2: 1 ratio.
- the encoder may transmit at least one of a maximum QT block size MaxQTSize, a minimum QT block size MinQTSize, and a maximum QT block division depth MaxQTDepth syntax (or syntax element) to the decoder.
- the maximum QT block size represents the maximum size of a block in which QT partitioning may be performed and may be expressed in the form of a log scale (eg, log2).
- the minimum QT block size indicates a minimum size of a block in which QT partitioning may be performed and may be expressed in the form of a log scale (eg, log2).
- the maximum QT splitting depth indicates how many QT splittings are allowed from the maximum QT block size.
- Each syntax information includes a sequence parameter set (SPS), a picture parameter set (PSP), and a slice header (Slice) according to the type of a slice (or a tile group), a tile, and a picture component.
- the header may be transmitted through a header (SH) (or a tile group header (TGH), a header of a network abstract layer (NAL)), or the like.
- the encoder can signal the maximum QT block size and the minimum QT block size syntax (or syntax element) to the decoder, and the decoder can use the maximum QT block size and the minimum QT block size to maximize the QT block.
- the split depth value can be derived.
- the encoder can signal the maximum QT block size and the maximum QT block division depth syntax to the decoder. Using the maximum QT block size and the maximum QT block division depth, the decoder can derive the minimum QT block size value.
- the encoder may signal the minimum QT block size and the maximum QT block division depth syntax to the decoder.
- the decoder can derive the maximum QT block size value.
- the encoder may transmit all three syntaxes.
- the value of the maximum QT block division depth may be equal to the difference between the maximum QT block size and the minimum QT block size.
- the encoder / decoder may transmit a syntax for adjusting the degree of BT partitioning in consideration of a relationship between performance and complexity.
- the encoder may transmit at least one of a maximum BT block size MaxBTSize, a minimum BT block size MinBTSize, and a maximum BT block division depth MaxBTDepth syntax (or syntax element) to the decoder.
- the maximum BT block size indicates the maximum size of a block that allows BT division and may be expressed in the form of a log scale (eg, log2).
- the minimum BT block size indicates a minimum size of a block in which BT splitting is allowed and may be expressed in the form of a log scale (eg, log2).
- the maximum BT split depth indicates how many BT splits are allowed from the maximum BT block size.
- Each syntax information includes a sequence parameter set (SPS), a picture parameter set (PSP), and a slice header (Slice) according to the type of a slice (or a tile group), a tile, and an image component.
- the header may be transmitted through a header (SH) (or a tile group header (TGH), or a header of a network abstract layer (NAL)).
- SH sequence parameter set
- TGH tile group header
- NAL network abstract layer
- the encoder can signal the maximum BT block size and the minimum BT block size syntax (or syntax element) to the decoder, and the decoder uses the maximum BT block size and the minimum BT block size to maximize the BT block.
- the split depth value can be derived.
- the encoder may signal the maximum BT block size and the maximum BT block division depth syntax to the decoder. Using the maximum BT block partition depth below the maximum BT block size, the decoder can derive the minimum BT block size value.
- the encoder can signal the minimum BT block size and the maximum BT block division depth syntax to the decoder.
- the decoder can derive the maximum BT block size value.
- the encoder may transmit all three syntaxes.
- the value of the maximum BT block division depth may be different from the difference between the maximum BT block size and the minimum BT block size. This is because the size of the block from which the BT split begins is dependent on the QT split.
- the maximum BT block division depth signaled in the above (2) to (4) may be signaled as the maximum depth of the multi-type tree partition including the BT structure and the TT structure.
- the maximum BT block division depth may be equal to the maximum MTT block division depth.
- the encoder / decoder can use the maximum BT block division depth value to adjust (or adjust) the performance and complexity.
- the minimum BT block size may be reached before the maximum BT block split depth. In this case, the block is no longer allowed for BT division.
- the encoder / decoder may transmit a syntax for adjusting the degree of TT partitioning in consideration of a relationship between performance and complexity.
- the encoder may transmit at least one of a maximum TT block size MaxTTSize, a minimum TT block size MinTTSize, and a maximum TT block division depth MaxTTDepth syntax (or syntax element) to the decoder.
- the maximum TT block size represents the maximum size of a block that allows TT partitioning and may be expressed in the form of a log scale (eg, log2).
- the minimum TT block size represents the minimum size of a block that allows TT partitioning and may be expressed in the form of a log scale (eg, log2).
- the maximum TT splitting depth indicates how many TT splittings are allowed from the maximum TT block size.
- Each syntax information includes a sequence parameter set (SPS), a picture parameter set (PSP), and a slice header (Slice) according to the type of a slice (or a tile group), a tile, and a picture component.
- SPS sequence parameter set
- PSP picture parameter set
- Slice slice header
- Header, SH Tile Group Header, TGH
- NAL network abstract layer
- the encoder can signal the maximum TT block size and the minimum TT block size syntax (or syntax element) to the decoder, and the decoder can use the maximum TT block size and the minimum TT block size to maximize the TT block.
- the split depth value can be derived.
- the encoder may signal the maximum TT block size and the maximum TT block division depth syntax to the decoder. Using the maximum TT block size and the maximum TT block partition depth, the decoder can derive the minimum TT block size value.
- the encoder may signal the minimum TT block size and the maximum TT block division depth syntax to the decoder. Using the minimum TT block size and the maximum TT block division depth, the decoder may derive the maximum TT block size value.
- the encoder may transmit all three syntaxes.
- the value of the maximum TT block division depth may be different from the difference between the maximum TT block size and the minimum TT block size. This is because the size of the block in which TT partitioning starts is dependent on the QT partitioning.
- the encoder / decoder can use the maximum TT block division depth value to adjust (or adjust) the performance and complexity.
- the minimum TT block size may be reached before the maximum TT block partitioning depth. In this case, the block is no longer allowed for TT partitioning.
- the maximum TT block partition depth signaled in (2) to (4) described above may be signaled as the maximum depth of multi-type tree partition including the BT structure and the TT structure.
- the maximum BT block division depth may be equal to the maximum MTT block division depth.
- the minimum TT block size may be defined as 16 ⁇ 16. In this case, one length of the TT block may be defined as 4, 8, 4.
- the minimum TT block size may be expressed as log2_min_luma_TT_block_size_minus4, and the difference between the minimum TT block size and the maximum TT block size may be expressed as log2_diff_max_min_luma_TT_block_size.
- the decoder may derive the TT block size variable (TTbLog2SizeY) using the minimum TT block size.
- the TT block size variable TTbLog2SizeY may be derived using the following equations (1) and (2).
- the TT block size variable (TTbLog2SizeY) derived through the above equation may be used in a subsequent decoding process. For example, it may be used in intra prediction, inter prediction, filtering, transformation, quantization, and entropy decoding.
- the encoder / decoder takes into account the relationship between performance and complexity in performing block partitioning based on the BT and TT structures (which may be referred to as MTT or BTT as a multitype tree structure).
- MTT BT and TT structures
- BTT BTT as a multitype tree structure
- the encoder may transmit at least one of a maximum MTT block size (MaxMTTSize), a minimum MTT block size (MinMTTSize), and a maximum MTT block division depth (MaxBTTDepth) syntax (or syntax element) to the decoder.
- the maximum MTT block size represents the maximum size of a block that MTT splitting is allowed and may be expressed in the form of a log scale (eg, log2).
- the minimum MTT block size indicates a minimum size of a block in which MTT splitting is allowed and may be expressed in the form of a log scale (eg, log2).
- the maximum MTT splitting depth indicates how many MTT splittings are allowed from the maximum MTT block size.
- Each syntax information includes a sequence parameter set (SPS), a picture parameter set (PSP), and a slice header (Slice) according to the type of a slice (or a tile group), a tile, and a picture component.
- SPS sequence parameter set
- PSP picture parameter set
- Slice slice header
- Header, SH Tile Group Header, TGH
- NAL network abstract layer
- the encoder may signal a decoder with a maximum MTT block size and a minimum MTT block size syntax (or syntax element), and the decoder may use the maximum MTT block size and the minimum MTT block size to maximize the MTT block size.
- the split depth value can be derived.
- the encoder may signal the maximum MTT block size and the maximum MTT block division depth syntax to the decoder.
- the decoder may derive the minimum MTT block size value using the maximum MTT block size and the maximum MTT block partition depth.
- the encoder may signal the minimum MTT block size and the maximum MTT block division depth syntax to the decoder.
- the decoder may derive the maximum MTT block size value using the minimum MTT block size and the maximum MTT block partition depth.
- the encoder may transmit all three syntaxes.
- the value of the maximum MTT block division depth may be different from the difference between the maximum MTT block size and the minimum MTT block size. This is because the size of the block at which the MTT split starts is dependent on the QT split.
- the encoder / decoder can use the maximum MTT block division depth value to adjust (or adjust) the performance and complexity.
- the minimum MTT block size may be reached before the maximum MTT block split depth. In this case, the block is no longer allowed for MTT partitioning.
- FIG. 9 is a diagram illustrating a quad-tree based block division structure according to an embodiment to which the present invention is applied.
- one block may be divided on a quad-tree (QT) basis.
- one sub block divided into a QT structure may be further recursively divided into a QT structure.
- Terminal blocks (which may be referred to as leaf blocks, leaf node blocks) that are no longer split into QT structures are binary tree (BT), ternary tree (TT), or asymmetric tree (AT). May be divided by at least one.
- block A may be divided into four sub-blocks A0, A1, A2, and A3 in a QT structure.
- Sub-block A1 may be further divided into four sub-blocks B0, B1, B2, and B3 in a QT structure.
- FIG. 10 is a diagram illustrating a binary-tree based block partitioning structure according to an embodiment to which the present invention is applied.
- the BT may have two types of divisions, a horizontal direction BT (eg, 2NxN, 2NxN) and a vertical direction BT (eg, Nx2N, Nx2N).
- a horizontal direction BT eg, 2NxN, 2NxN
- a vertical direction BT eg, Nx2N, Nx2N
- a block B3 which is no longer divided into a QT structure (ie, a leaf node block) B3 may be divided into a vertical direction BT (C0, C1) or a horizontal direction BT (D0, D1).
- each sub-block like the block C0 may be recursively divided in the form of the horizontal direction BT (E0, E1) or the vertical direction BT (F0, F1).
- FIG. 11 is a diagram illustrating a ternary-tree based block splitting structure according to an embodiment to which the present invention is applied.
- TT has two types of horizontal TT (eg, 2Nx1 / 2N, 2NxN, 2Nx1 / 2N) and vertical TT (eg, 1 / 2Nx2N, Nx2N, 1 / 2Nx2N). May have a split.
- the block B3, which is no longer divided by QT may be divided into a vertical direction TT (C0, C1, C2) or a horizontal direction TT (D0, D1, D2).
- the block C1 may be recursively divided in the form of a horizontal direction TT (E0, E1, E2) or a vertical direction TT (F0, F1, F2).
- the AT is a horizontal-up AT (2Nx1 / 2N, 2Nx3 / 2N), a horizontal-down AT (2Nx3 / 2N, 2Nx1 / 2N), and a vertical upward AT (1 / 2Nx2N, 3 / 2N ⁇ 2N) and vertical-right AT (3 / 2N ⁇ 2N, 1 / 2N ⁇ 2N) may have four types of partition structures.
- Each BT, TT, AT may be further recursively divided using BT, TT, AT.
- FIG. 12 is a diagram illustrating a binary-tree and ternary-tree based block partitioning structure according to an embodiment to which the present invention is applied.
- a processing block may be divided using a BT and a TT partitioning structure.
- the sub block divided into the BT structure may be divided into the TT structure.
- the sub block divided into the TT structure may be divided into the BT structure.
- the thin solid line represents the split represented by the first division
- the division represented by the thick dotted line represents the second division performed in the sub-block created in the first division.
- Table 2 shows the coding quadtree syntax structure
- Table 3 shows the syntax for the coding tree.
- the coding quadtree syntax (or function) may be called by inputting the upper left coordinate (x0, y0) of the current block, the size of the current block (log2CbSize), and the depth of the current quadtree split.
- the decoder parses the split_qt_flag syntax element.
- the split_qt_flag syntax element indicates whether the current block is divided into four quad tree structures. For example, if the split_qt_flag value is 0, it means no splitting. If the split_qt_flag value is 1, it indicates that the block is divided into 4 pieces having half the width and half the height. x0 and y0 represent the top-left positions of the luminance image.
- the decoder When parsing determines that the current block is divided into quad tree structures, the decoder calls the coding quadtree syntax (or function) on four sub-blocks divided from the current block.
- the decoder calls the coding tree syntax (or function) on the current block for subsequent partition structure (ie, multi-type tree structure) determination.
- the coding tree syntax (or function) may be called by inputting the upper left coordinate (x0, y0) of the current block, the width of the current block (log2CbSizeW), and the width of the current block (log2CbSizeH).
- the decoder parses a split_fur_flag syntax element.
- the split_fur_flag syntax indicates whether the current block is additionally split. For example, if the split_fur_flag value is 0, it means no further splitting. If the split_fur_flag value is 1, it means that the block is split.
- the decoder parses the split_bt_flag and split_dir syntax elements.
- the split_bt_flag syntax indicates whether to be split into a BT structure or a TT structure. For example, if the split_bt_flag value is 1, it means that the block is split by BT, and if the split_bt_flag value is 0, it means that the block is split by TT.
- the split type of the current block may be determined as shown in Table 4 below based on the split_fur_flag syntax and the split_bt_flag syntax.
- the split_dir syntax element indicates a split direction. For example, if the split_dir value is 0, the block is split in the horizontal direction. If the split_dir value is 1, the block is split in the vertical direction.
- the final block split mode (SplitMode) MTT split from the current block can be derived as shown in Table 5 below.
- the decoder calls the coding tree syntax (or function) again for the divided subblocks according to the finally determined partition structure.
- a method for allowing QT partitioning in the middle of the partition is proposed.
- the allowance of the QT partitioning after the BT and TT partitioning is performed may be selectively used through flag signaling in a sequence parameter set (SPS), as shown in Table 6 below.
- SPS sequence parameter set
- the nesting_split_qt_enable_falg syntax element indicates whether split_qt_flag is transmitted for QT splitting in a low level syntax (eg, coding tree) after QT splitting. For example, if the nesting_split_qt_enable_falg value is 0, split_qt_flag is not transmitted in the coding tree unit. If the nesting_split_qt_enable_falg value is 1, split_qt_flag may be transmitted in a coding tree unit.
- Table 6 above is an example, and the present invention is not limited thereto, and the nesting_split_qt_enable_falg syntax may be used in addition to the SPS, a picture parameter set (PPS), a slice header (or a tile group header), or another network abstraction layer ( network abstract layer (NAL) may be signaled using a unit header.
- PPS picture parameter set
- NAL network abstraction layer
- Table 7 shows a syntax structure of a coding tree according to an embodiment of the present invention.
- the coding tree syntax (or function) may be called by inputting the upper left coordinate (x0, y0) of the current block, the width of the current block (log2CbSizeW), and the width of the current block (log2CbSizeH).
- the decoder checks whether the current block does not exceed the width or height of the current picture, and whether the current block is larger than the minimum size BTT block (or MTT block).
- the nesting_split_qt_enable_falg value parsed in the upper level syntax is 1, bttDepth is greater than 0, and the width of the block is When the heights are the same length, the decoder may parse the nesting_split_qt_flag.
- bttDepth means a depth of a block divided by BT or TT and may be calculated as a ratio of the size of the current block based on the width and height of the block at which the BT or TT splitting starts.
- the nesting_split_qt_flag syntax indicates whether the current coding block is divided into 4 in QT form. For example, if the nesting_split_qt_flag value is 0, it means no splitting. If the nesting_split_qt_flag value is 1, it indicates that the block is divided into 4 pieces having half width and half height.
- nesting_split_qt_flag does not appear in the bitstream, it may be derived to zero. Then, when the nesting_split_qt_flag value is 0, the decoder parses the split_fur_flag. If it is determined that the current block is additionally split according to the split_fur_flag value, the decoder parses the split_bt_flag and split_dir syntax elements.
- the split_fur_flag syntax indicates whether the current coding block is additionally split. For example, if the split_fur_flag value is 0, it means no further splitting. If the split_fur_flag value is 1, it indicates that the block is split.
- the split_bt_flag syntax indicates whether to split into a BT or TT structure. For example, a split_bt_flag value of 1 indicates that the block is split by BT, and a split_bt_flag value of 0 indicates that the block is split by TT.
- the split type of the current block may be determined as shown in Table 8 below based on the split_fur_flag syntax and the split_bt_flag syntax.
- the split_dir syntax element indicates a split direction. For example, if the split_dir value is 0, the block is split in the horizontal direction. If the split_dir value is 1, the block is split in the vertical direction.
- the final block split mode (SplitMode) MTT split from the current block may be derived as shown in Table 9 below.
- the decoder calls the coding tree syntax (or function) again for the divided subblocks according to the finally determined partition structure.
- FIG. 13 is a diagram illustrating a method of dividing a block based on a stripe tree structure according to an embodiment to which the present invention is applied.
- an embodiment of the present invention proposes a stripe tree (ST) block partitioning structure in which a non-square block is divided into four blocks having the same size.
- the encoder / decoder divides the non-square block into four blocks of the same size in the vertical direction (Fig. 13 (a)) or the horizontal direction (Fig. 13 (b)) in the ST structure, as shown in FIG. can do.
- the permission of ST partitioning may be selectively used through flag signaling in a sequence parameter set (SPS), as shown in Table 10 below.
- SPS sequence parameter set
- the split_st_enable_falg syntax element indicates whether split_st_flag is transmitted for ST splitting in a low level syntax (eg, coding tree). For example, if the split_st_enable_falg value is 0, split_st_flag is not transmitted in the coding tree unit. If the split_st_enable_falg value is 1, split_st_flag may be transmitted in a coding tree unit.
- split_st_enable_falg syntax may include a picture parameter set (PPS), a slice header (or a tile group header), or another network abstraction layer (in addition to the SPS).
- network abstract layer may be signaled using a unit header.
- Table 11 shows a syntax structure of a coding tree according to an embodiment of the present invention.
- the coding tree syntax (or function) may be called by inputting the upper left coordinates (x0, y0) of the current block, the width of the current block (log2CbSizeW), and the width of the current block (log2CbSizeH).
- the description overlapping with the above-described Table 7 will be omitted.
- the decoder parses split_st_flag when the split_st_enable_falg value parsed by the high level syntax is 1 and the width of the current block is four times larger than the height or the height of the current block is four times larger than the nuber.
- the split_st_flag syntax element indicates whether the current coding block is divided into four in the ST form.
- split_st_flag 0 if the split_st_flag value is 0, it means no splitting. If the split_st_flag value is 1, it means splitting into four blocks having the same size in the horizontal or vertical direction. If split_st_flag does not appear in the bitstream, it may be derived to zero. Thereafter, the split_fur_flag, split_bt_flag, and split_dir syntax may be transmitted when the split_st_flag value is zero.
- the split_fur_flag syntax indicates whether the current coding block is additionally split. For example, if the split_fur_flag value is 0, it means no further splitting. If the split_fur_flag value is 1, it indicates that the block is split.
- the split type of the current block may be determined as shown in Table 12 below based on the split_fur_flag syntax and the split_bt_flag syntax.
- the split_dir syntax element indicates a split direction. For example, if the split_dir value is 0, the block is split in the horizontal direction. If the split_dir value is 1, the block is split in the vertical direction.
- the final block split mode (SplitMode) MTT split from the current block may be derived as shown in Table 13 below.
- split_st_flag syntax element may be located after the split_fur_flag syntax, as shown in Table 14 below.
- the decoder when the current block is further split according to split_fur_flag, the decoder has a split_st_enable_falg value parsed by a high level syntax of 1, and the width of the current block is four times greater than the height, or the height of the current block is If it is four times larger than the nuber, then split_st_flag can be parsed.
- ST transmits (or parses) split_st_flag assuming that the difference in width and height is 4 times, but the present invention is not limited thereto, and 1 times (same size), 2
- the split_st_flag may be transmitted (or parsed) in the case of fold, 8 times, or 16 times difference.
- a combination of two or three ratios may be set and split_st_flag may be transmitted.
- split_st_flag may be transmitted.
- split_st_flag of the present embodiment may be used together with the nesting_split_qt_flag of the seventh embodiment described above.
- the syntax structure when two syntax elements are used together may be represented as shown in Table 15 below.
- split_st_flag can be parsed.
- a method of dividing structures of QT, BT, and TT is transmitted in the same syntax structure (ie, syntax of the same level).
- the encoder / decoder is capable of QT structure division from the highest node (e.g., CTU), regardless of whether it is a square block or a non-square block.
- splitting is possible from the highest node regardless of whether the BT and TT structure regions are leaf nodes of the QT split.
- Table 16 shows syntax for a coding quadtree according to an embodiment of the present invention.
- a coding quadtree syntax (or function) may be called by inputting the upper left coordinates (x0, y0) of the current block, the size of the current block (log2CbSize), and the depth of the current quadtree split.
- the decoder parses the split_fur_flag syntax element.
- the split_fur_flag syntax element indicates whether the current block is additionally split.
- split_fur_flag value if the split_fur_flag value is 0, it indicates no further splitting. If the split_fur_flag value is 1, this indicates that the current block is split into blocks of lower depths. In the present embodiment, when the split_fur_flag value is 1, the split_qt_flag syntax element may be transmitted.
- the decoder checks the split_fur_flag value, and if the value is 1, parses the split_qt_flag syntax element.
- the split_qt_flag syntax element indicates whether the current block is divided into 4 into a QT structure.
- the decoder may first determine whether the current block is divided into a QT structure. For example, if the split_qt_flag value is 0, the split_qt_flag value is not split into a QT structure, and if the split_qt_flag value is 1, it is divided into 4 lower blocks having half the width and half the height of the current block.
- split_qt_flag value when the split_qt_flag value is 0, split_bt_flag may be transmitted. In other words, when the current block is not divided into the QT structure, the decoder may check whether the current block is divided into the MTT structure.
- the decoder may parse the split_bt_flag and / or split_dir syntax elements.
- the split_bt_flag syntax element indicates whether the split_bt_flag syntax element is split into a multi-type tree structure (ie, BT or TT). For example, a split_bt_flag value of 1 indicates that the block is split by BT, and a split_bt_flag value of 0 indicates that the block is split by TT. Or, if the split_bt_flag value is 0, this indicates that the block is split by BT, and if the split_bt_flag value is 1, it indicates that the block is split by TT.
- the split type of the current block may be determined as shown in Table 17 below based on the split_fur_flag, split_qt_flag, and split_bt_flag syntax elements.
- the TT block size parameter TTbLog2SizeY described in Embodiment 4 may be used in the process of deriving an intra prediction mode in intra prediction.
- the TT block size variable TTbLog2SizeY may be used in the process of deriving a candidate intra prediction mode.
- the candidate intra prediction mode of the upper neighboring block may be set to INTRA_DC. More specific embodiments may be as follows, but the present invention is not limited thereto.
- FIG. 14 is a diagram illustrating a reference position of a current block and a neighboring block as an embodiment to which the present invention may be applied.
- (xPb, yPb) represents the position of the prediction block
- (xNbB, yNbB) represents the position of the sample adjacent to the upper side
- (xNbA, yNbA) represents the position of the sample adjacent to the left side.
- (xNbA, yNbA) may be set to (xPb-1, yPb) and (xNbB, yNbB) to (xPb, yPb-1).
- the candidate intra prediction mode of the upper neighboring block may be set to INTRA_DC.
- TTbLog2SizeY a candidate intra prediction mode is derived, and the candidate intra prediction mode may be used to derive the intra prediction mode of the current block.
- a prediction block is generated based on the derived intra prediction mode, and the decoder may reconstruct the video signal by adding the residual block and the prediction block.
- the TT block size variable TTbLog2SizeY may be used in the process of predicting a temporal motion vector in inter prediction.
- the TT block size variable (TTbLog2SizeY) may be used in the process of deriving a collocated motion vector of the lower right block.
- TTbLog2SizeY a collocated motion vector of the lower right block is derived, and a collocated motion vector of the lower right block may be used to generate a motion vector prediction value of the current prediction block.
- the encoder / decoder may generate a motion vector by adding the motion vector prediction value and the motion vector difference value and generate an inter prediction block using the motion vector.
- the decoder may reconstruct a video signal by adding a residual block and the inter prediction block.
- the TT block size variable may be used in the process of deriving a quantization parameter.
- the TT block size variable TTbLog2SizeY may be used in a process of deriving a quantization parameter of a left neighboring block or an upper neighboring block.
- the TT block size variable (TTbLog2SizeY) may be used in the process of performing a sample adaptive offset (SAO).
- the split_dir syntax element indicates a split direction. For example, if the split_dir value is 0, the block is split in the horizontal direction. If the split_dir value is 1, the block is split in the vertical direction.
- the final block split mode split from the current block can be derived as shown in Table 18 below.
- the decoder may call the coding quadtree syntax (or function) again for the divided subblock according to the finally determined partition structure.
- Embodiments of the present invention described above have been described separately for the convenience of description, but the present invention is not limited thereto. In other words, embodiments 1 to 9 described above may be performed independently, or one or more embodiments may be combined and performed.
- 15 is a flowchart illustrating a method of decoding a video signal according to an embodiment to which the present invention is applied.
- a decoder is described for convenience of description, but the present invention is not limited thereto, and the method of decoding a video signal according to an embodiment of the present invention may be performed in the same manner in the encoder and the decoder.
- the decoder parses a first syntax element indicating whether the current block is divided into a plurality of sub-blocks (S1501).
- the current block is not divided. If the value of the first syntax element is 1, the current block is divided into four sub-blocks using a quad tree structure. May be divided into two sub-blocks using a binary tree structure, or divided into three sub-blocks using a ternary tree structure.
- the preset condition is obtained by adding the width of the current block to the horizontal coordinate of the upper left sample of the current block.
- the value may be satisfied if the value is less than or equal to the width of the current picture, and a value obtained by adding the height of the current block to the vertical coordinates of the upper left sample of the current block is less than or equal to the height of the current picture.
- the decoder may call the coding tree unit syntax for determining the partition structure of the current block.
- calling the coding tree unit syntax for the current block may be performed before step S1501.
- the decoder parses a second syntax element indicating whether the current block is split using a quad-tree structure (S1502).
- the decoder may call a coding unit syntax for the decoding process of the current block. have.
- the decoder determines whether the current block is split using a binary-tree structure or a ternary-tree structure. Parse at least one of a third syntax element indicating whether to be divided using a fourth syntax element indicating a division direction of the current block (S1503).
- the decoder determines a split mode (or split type) of the current block based on at least one of the first syntax element, the second syntax element, the third syntax element, and the fourth syntax element (S1504).
- the division type may include Tables 4, 5, 8, 9, 12, 13, and 17 described above according to the first syntax element, the second syntax element, the third syntax element, and the fourth syntax element. Can be determined as well.
- the decoder may call a coding tree unit syntax for determining a partition structure of a subblock partitioned from the current block based on the partition mode.
- the first syntax element, the second syntax element, the third syntax element, and the fourth syntax element may be parsed at the same level of syntax.
- the decoder uses the binary tree structure or the ternary tree structure to indicate whether to divide the current block divided from the block of the upper node by using the quad tree structure. Can be parsed.
- 16 is a diagram illustrating an apparatus for decoding a video signal according to an embodiment to which the present invention is applied.
- the decoding apparatus is illustrated as one block for convenience of description, but the decoding apparatus illustrated in FIG. 16 may be implemented in a configuration included in the encoder and / or the decoder.
- the decoding apparatus implements the functions, processes, and / or methods proposed in FIGS. 1 to 15.
- the decoding apparatus may include a syntax element parser 1601 and a split mode determiner 1602.
- the syntax element parser 1601 may be a component included in the split mode determiner 1602.
- the syntax element parsing unit 1601 parses a first syntax element indicating whether the current block is divided into a plurality of sub-blocks).
- the current block is not divided. If the value of the first syntax element is 1, the current block is divided into four sub-blocks using a quad tree structure. May be divided into two sub-blocks using a binary tree structure, or divided into three sub-blocks using a ternary tree structure.
- the preset condition is obtained by adding the width of the current block to the horizontal coordinate of the upper left sample of the current block.
- the value may be satisfied if the value is less than or equal to the width of the current picture, and a value obtained by adding the height of the current block to the vertical coordinates of the upper left sample of the current block is less than or equal to the height of the current picture.
- syntax element parser 1601 may call a coding tree unit syntax for determining a partition structure of the current block.
- the syntax element parsing unit 1601 parses a second syntax element indicating whether the current block is divided using a quad-tree structure. .
- the syntax element parsing unit 1601 may include a coding unit syntax for a decoding process of the current block. syntax) can be called.
- the syntax element parsing unit 1601 may determine whether the current block is split using a binary-tree structure or a ternary tree. Parse at least one of a third syntax element indicating whether to split using a ternary-tree structure and a fourth syntax element indicating a split direction of the current block.
- the split mode determiner 1602 may split the current block (or split type) based on at least one of the first syntax element, the second syntax element, the third syntax element, and the fourth syntax element. Is determined.
- the division type may include Tables 4, 5, 8, 9, 12, 13, and 17 described above according to the first syntax element, the second syntax element, the third syntax element, and the fourth syntax element. Can be determined as well.
- the split mode determination unit 1602 applies a coding tree unit syntax for determining a split structure of a sub-block divided from the current block based on the split mode. Can be called.
- the first syntax element, the second syntax element, the third syntax element, and the fourth syntax element may be parsed at the same level of syntax.
- the split mode determination unit 1602 determines whether to divide a current block divided from a block of an upper node using a quad tree structure using a binary tree structure or a ternary tree structure.
- the pointing fifth syntax element may be parsed.
- FIG. 17 shows a video coding system to which the present invention is applied.
- the video coding system can include a source device and a receiving device.
- the source device may deliver the encoded video / image information or data to a receiving device through a digital storage medium or network in a file or streaming form.
- the source device may include a video source, an encoding apparatus, and a transmitter.
- the receiving device may include a receiver, a decoding apparatus, and a renderer.
- the encoding device may be called a video / image encoding device, and the decoding device may be called a video / image decoding device.
- the transmitter may be included in the encoding device.
- the receiver may be included in the decoding device.
- the renderer may include a display unit, and the display unit may be configured as a separate device or an external component.
- the video source may acquire the video / image through a process of capturing, synthesizing, or generating the video / image.
- the video source may comprise a video / image capture device and / or a video / image generation device.
- the video / image capture device may include, for example, one or more cameras, video / image archives including previously captured video / images, and the like.
- Video / image generation devices may include, for example, computers, tablets and smartphones, and may (electronically) generate video / images.
- a virtual video / image may be generated through a computer or the like. In this case, the video / image capturing process may be replaced by a process of generating related data.
- the encoding device may encode the input video / image.
- the encoding apparatus may perform a series of procedures such as prediction, transform, and quantization for compression and coding efficiency.
- the encoded data (encoded video / image information) may be output in the form of a bitstream.
- the transmitter may transmit the encoded video / video information or data output in the form of a bitstream to the receiver of the receiving device through a digital storage medium or a network in the form of a file or streaming.
- the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, and the like.
- the transmission unit may include an element for generating a media file through a predetermined file format, and may include an element for transmission through a broadcast / communication network.
- the receiver may extract the bitstream and transmit the extracted bitstream to the decoding apparatus.
- the decoding apparatus may 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 apparatus.
- the renderer may render the decoded video / image.
- the rendered video / image may be displayed through the display unit.
- FIG. 18 is a diagram illustrating a structure of a content streaming system according to an embodiment to which the present invention is applied.
- a content streaming system to which the present invention is applied may largely include an encoding server, a streaming server, a web server, a media storage, a user device, and a multimedia input device.
- the encoding server compresses content input from multimedia input devices such as a smart phone, a camera, a camcorder, etc. into digital data to generate a bitstream and transmit the bitstream to the streaming server.
- multimedia input devices such as smart phones, cameras, camcorders, etc. directly generate a bitstream
- the encoding server may be omitted.
- the bitstream may be generated by an encoding method or a bitstream generation method to which the present invention is applied, and the streaming server may temporarily store the bitstream in the process of transmitting or receiving the bitstream.
- the streaming server transmits the multimedia data to the user device based on the user's request through the web server, and the web server serves as a medium for informing the user of what service.
- the web server delivers it to a streaming server, and the streaming server transmits multimedia data to the user.
- the content streaming system may include a separate control server.
- the control server plays a role of controlling a command / response between devices in the content streaming system.
- the streaming server may receive content from a media store and / or an encoding server. For example, when the content is received from the encoding server, the content may be received in real time. In this case, in order to provide a smooth streaming service, the streaming server may store the bitstream for a predetermined time.
- Examples of the user device include a mobile phone, a smart phone, a laptop computer, a digital broadcasting terminal, a personal digital assistant (PDA), a portable multimedia player (PMP), navigation, a slate PC, Tablet PCs, ultrabooks, wearable devices, such as smartwatches, glass glasses, head mounted displays, digital TVs, desktops Computer, digital signage, and the like.
- PDA personal digital assistant
- PMP portable multimedia player
- slate PC slate PC
- Tablet PCs ultrabooks
- wearable devices such as smartwatches, glass glasses, head mounted displays, digital TVs, desktops Computer, digital signage, and the like.
- Each server in the content streaming system may be operated as a distributed server, in which case data received from each server may be distributed.
- the embodiments described herein may be implemented and performed on a processor, microprocessor, controller, or chip.
- the functional units shown in each drawing may be implemented and performed on a computer, processor, microprocessor, controller, or chip.
- the decoder and encoder to which the present invention is applied include 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 chat device, a real time communication device such as video communication, a mobile streaming device, Storage media, camcorders, video on demand (VoD) service providing devices, OTT video (Over the top video) devices, Internet streaming service providing devices, three-dimensional (3D) video devices, video telephony video devices, and medical video devices. It can be used to process video signals or data signals.
- the OTT video device may include a game console, a Blu-ray player, an internet access TV, a home theater system, a smartphone, a tablet PC, a digital video recorder (DVR), and the like.
- the processing method to which the present invention is applied can be produced in the form of a program executed by a computer, and can be stored in a computer-readable recording medium.
- Multimedia data having a data structure according to the present invention can also be stored in a computer-readable recording medium.
- the computer readable recording medium includes all kinds of storage devices and distributed storage devices in which computer readable data is stored.
- the computer-readable recording medium may be, 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 disc. It may include a data storage device.
- the computer-readable recording medium also includes media embodied in the form of a carrier wave (eg, transmission over the Internet).
- the bitstream generated by the encoding method may be stored in a computer-readable recording medium or transmitted through a wired or wireless communication network.
- embodiments of the present invention may be implemented as a computer program product by a program code, the program code may be performed on a computer by an embodiment of the present invention.
- the program code may be stored on a carrier readable by a computer.
- each component or feature is to be considered optional unless stated otherwise.
- Each component or feature may be embodied in a form that is not combined with other components or features. It is also possible to combine some of the components and / or features to form an embodiment of the invention.
- the order of the operations described in the embodiments of the present invention may be changed. Some components or features of one embodiment may be included in another embodiment or may be replaced with corresponding components or features of another embodiment. It is obvious that the claims may be combined to form an embodiment by combining claims that do not have an explicit citation relationship in the claims or as new claims by post-application correction.
- Embodiments according to the present invention may be implemented by various means, for example, hardware, firmware, software, or a combination thereof.
- an embodiment of the present invention may include one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), FPGAs ( field programmable gate arrays), processors, controllers, microcontrollers, microprocessors, and the like.
- ASICs application specific integrated circuits
- DSPs digital signal processors
- DSPDs digital signal processing devices
- PLDs programmable logic devices
- FPGAs field programmable gate arrays
- processors controllers, microcontrollers, microprocessors, and the like.
- an embodiment of the present invention may be implemented in the form of a module, procedure, function, etc. that performs the functions or operations described above.
- the software code may be stored in memory and driven by the processor.
- the memory may be located inside or outside the processor, and may exchange data with the processor by various known means.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
Claims (14)
- 영상을 디코딩하는 방법에 있어서,현재 블록이 미리 설정된 조건을 만족하는 경우, 상기 현재 블록이 복수의 서브 블록으로 분할되는지 여부를 지시하는 제1 신택스 요소(syntax element)를 파싱하는 단계;상기 제1 신택스 요소가 상기 현재 블록이 분할됨을 지시하는 경우, 상기 현재 블록이 쿼드 트리(quad-tree) 구조를 이용하여 분할되는지 여부를 지시하는 제2 신택스 요소를 파싱하는 단계;상기 제2 신택스 요소가 상기 현재 블록이 쿼드 트리 구조를 이용하여 분할되지 않음을 지시하는 경우, 상기 현재 블록이 바이너리 트리(bunary-tree) 구조를 이용하여 분할되는지 또는 터너리 트리(ternary-tree) 구조를 이용하여 분할되는지를 지시하는 제3 신택스 요소 및 상기 현재 블록의 분할 방향을 지시하는 제4 신택스 요소 중 적어도 하나를 파싱하는 단계; 및상기 제1 신택스 요소, 상기 제2 신택스 요소, 상기 제3 신택스 요소 및 상기 제4 신택스 요소 중 적어도 하나에 기초하여 상기 현재 블록의 분할 모드(split mode)를 결정하는 단계를 포함하는, 영상의 디코딩 방법.
- 제1항에 있어서,상기 제1 신택스 요소가 상기 현재 블록이 분할되지 않음을 지시하는 경우, 상기 현재 블록의 디코딩 프로세스를 위한 코딩 유닛 신택스(coding unit syntax)를 호출하는 단계를 더 포함하는, 영상의 디코딩 방법.
- 제1항에 있어서,상기 제1 신택스 요소 값이 0이면 상기 현재 블록은 분할되지 않고, 상기 제1 신택스 요소 값이 1이면, 상기 현재 블록은 쿼드 트리 구조를 이용하여 4개의 서브 블록으로 분할되거나, 바이너리 트리 구조를 이용하여 2개의 서브 블록으로 분할되거나, 또는 터너리 트리 구조를 이용하여 3개의 서브 블록으로 분할되는, 영상의 디코딩 방법.
- 제3항에 있어서,상기 분할 모드에 기초하여 상기 현재 블록으로부터 분할된 서브 블록의 분할 구조 결정을 위한 코딩 트리 유닛(coding tree unit) 신택스를 호출하는 단계를 더 포함하는, 영상의 디코딩 방법.
- 제1항에 있어서,상기 제1 신택스 요소, 상기 제2 신택스 요소, 상기 제3 신택스 요소 및 상기 제4 신택스 요소는 동일한 레벨의 신택스에서 파싱되는 것을 특징으로 하는, 영상의 디코딩 방법.
- 제1항에 있어서,상기 미리 설정된 조건은 상기 현재 블록의 좌상단 샘플의 수평 방향 좌표에 상기 현재 블록의 너비(width)를 가산한 값이 현재 픽쳐의 너비보다 작거나 같고, 그리고, 상기 현재 블록의 좌상단 샘플의 수직 방향 좌표에 상기 현재 블록의 높이(height)를 가산한 값이 상기 현재 픽쳐의 높이보다 작거나 같은 경우 만족되는, 영상의 디코딩 방법.
- 제1항에 있어서,바이너리 트리 구조 또는 터너리 트리 구조를 이용하여 상위 노드의 블록으로부터 분할된 상기 현재 블록을 쿼드 트리 구조를 이용하여 분할할지 여부를 지시하는 제5 신택스 요소를 파싱하는 단계를 더 포함하는, 영상의 디코딩 방법.
- 영상을 디코딩하는 장치에 있어서,현재 블록이 미리 설정된 조건을 만족하는 경우, 상기 현재 블록이 복수의 서브 블록으로 분할되는지 여부를 지시하는 제1 신택스 요소(syntax element)를 파싱하고,상기 제1 신택스 요소가 상기 현재 블록이 분할됨을 지시하는 경우, 상기 현재 블록이 쿼드 트리(quad-tree) 구조를 이용하여 분할되는지 여부를 지시하는 제2 신택스 요소를 파싱하고,상기 제2 신택스 요소가 상기 현재 블록이 쿼드 트리 구조를 이용하여 분할되지 않음을 지시하는 경우, 상기 현재 블록이 바이너리 트리(bunary-tree) 구조를 이용하여 분할되는지 또는 터너리 트리(ternary-tree) 구조를 이용하여 분할되는지를 지시하는 제3 신택스 요소 및 상기 현재 블록의 분할 방향을 지시하는 제4 신택스 요소 중 적어도 하나를 파싱하는 신택스 요소 파싱부; 및상기 제1 신택스 요소, 상기 제2 신택스 요소, 상기 제3 신택스 요소 및 상기 제4 신택스 요소 중 적어도 하나에 기초하여 상기 현재 블록의 분할 모드(split mode)를 결정하는 분할 모드 결정부를 포함하는, 영상의 디코딩 장치.
- 제8항에 있어서,상기 제1 신택스 요소가 상기 현재 블록이 분할되지 않음을 지시하는 경우, 상기 현재 블록의 디코딩 프로세스를 위한 코딩 유닛 신택스(coding unit syntax)를 호출하는 코딩 유닛 신택스 호출부를 더 포함하는, 영상의 디코딩 장치.
- 제8항에 있어서,상기 제1 신택스 요소 값이 0이면 상기 현재 블록은 분할되지 않고, 상기 제1 신택스 요소 값이 1이면, 상기 현재 블록은 쿼드 트리 구조를 이용하여 4개의 서브 블록으로 분할되거나, 바이너리 트리 구조를 이용하여 2개의 서브 블록으로 분할되거나, 또는 터너리 트리 구조를 이용하여 3개의 서브 블록으로 분할되는, 영상의 디코딩 장치.
- 제10항에 있어서,상기 분할 모드에 기초하여 상기 현재 블록으로부터 분할된 서브 블록의 분할 구조 결정을 위한 코딩 트리 유닛(coding tree unit) 신택스를 호출하는 코딩 트리 유닛 신택스 호출부를 더 포함하는, 영상의 디코딩 장치.
- 제8항에 있어서,상기 제1 신택스 요소, 상기 제2 신택스 요소, 상기 제3 신택스 요소 및 상기 제4 신택스 요소는 동일한 레벨의 신택스에서 파싱되는 것을 특징으로 하는, 영상의 디코딩 장치.
- 제8항에 있어서,상기 미리 설정된 조건은 상기 현재 블록의 좌상단 샘플의 수평 방향 좌표에 상기 현재 블록의 너비(width)를 가산한 값이 현재 픽쳐의 너비보다 작거나 같고, 그리고, 상기 현재 블록의 좌상단 샘플의 수직 방향 좌표에 상기 현재 블록의 높이(height)를 가산한 값이 상기 현재 픽쳐의 높이보다 작거나 같은 경우 만족되는, 영상의 디코딩 장치.
- 제8항에 있어서,상기 신택스 요소 파싱부는 바이너리 트리 구조 또는 터너리 트리 구조를 이용하여 상위 노드의 블록으로부터 분할된 상기 현재 블록을 쿼드 트리 구조를 이용하여 분할할지 여부를 지시하는 제5 신택스 요소를 파싱하는, 영상의 디코딩 장치.
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201980035375.2A CN112166606B (zh) | 2018-04-01 | 2019-03-27 | 用于处理图像的方法及其设备 |
KR1020207030301A KR20200132979A (ko) | 2018-04-01 | 2019-03-27 | 영상의 처리 방법 및 이를 위한 장치 |
CN202311871235.3A CN117793359A (zh) | 2018-04-01 | 2019-03-27 | 视频编解码方法、计算机可读存储介质和数据发送方法 |
EP19782110.1A EP3767955B1 (en) | 2018-04-01 | 2019-03-27 | Method for processing image and apparatus therefor |
JP2020553479A JP2021518077A (ja) | 2018-04-01 | 2019-03-27 | 映像の処理方法、及びこのための装置 |
CN202311851497.3A CN117793383A (zh) | 2018-04-01 | 2019-03-27 | 视频信号编解码设备、存储介质和数据发送设备 |
US17/060,598 US11589064B2 (en) | 2018-04-01 | 2020-10-01 | Method for processing image and apparatus therefor |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862651239P | 2018-04-01 | 2018-04-01 | |
US62/651,239 | 2018-04-01 | ||
US201862658541P | 2018-04-16 | 2018-04-16 | |
US62/658,541 | 2018-04-16 | ||
KR10-2018-0059166 | 2018-05-24 | ||
KR20180059166 | 2018-05-24 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/060,598 Continuation US11589064B2 (en) | 2018-04-01 | 2020-10-01 | Method for processing image and apparatus therefor |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019194463A1 true WO2019194463A1 (ko) | 2019-10-10 |
Family
ID=68100841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2019/003606 WO2019194463A1 (ko) | 2018-04-01 | 2019-03-27 | 영상의 처리 방법 및 이를 위한 장치 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11589064B2 (ko) |
EP (1) | EP3767955B1 (ko) |
JP (1) | JP2021518077A (ko) |
KR (1) | KR20200132979A (ko) |
CN (3) | CN117793383A (ko) |
WO (1) | WO2019194463A1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021532643A (ja) * | 2018-07-17 | 2021-11-25 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | ビデオコーディング用の制約付きコーディングツリー |
WO2022213920A1 (en) * | 2021-04-06 | 2022-10-13 | Beijing Bytedance Network Technology Co., Ltd. | Partition signaling in video coding |
JP2022549607A (ja) * | 2019-09-20 | 2022-11-28 | 北京字節跳動網絡技術有限公司 | コーディング・ブロックのスケーリング・プロセス |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023197998A1 (en) * | 2022-04-13 | 2023-10-19 | Mediatek Inc. | Extended block partition types for video coding |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130272381A1 (en) * | 2012-04-16 | 2013-10-17 | Qualcomm Incorporated | Simplified non-square quadtree transforms for video coding |
WO2016090568A1 (en) * | 2014-12-10 | 2016-06-16 | Mediatek Singapore Pte. Ltd. | Binary tree block partitioning structure |
US20170111646A1 (en) * | 2010-10-04 | 2017-04-20 | Electronics And Telecommunications Research Institute | Method for encoding/decoding block information using quad tree, and device for using same |
US20170347128A1 (en) * | 2016-05-25 | 2017-11-30 | Arris Enterprises Llc | Binary ternary quad tree partitioning for jvet |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9185405B2 (en) * | 2012-03-23 | 2015-11-10 | Qualcomm Incorporated | Coded block flag inference in video coding |
CN102761742B (zh) * | 2012-07-03 | 2017-06-06 | 华为技术有限公司 | 变换块划分方法,变换块划分参数的编码方法及解码方法 |
ES2671972T3 (es) * | 2013-01-07 | 2018-06-11 | Nec Corporation | Señalización de división de unidad de codificación para bloques codificados PCM |
CN103428499B (zh) * | 2013-08-23 | 2016-08-17 | 清华大学深圳研究生院 | 编码单元的划分方法及使用该方法的多视点视频编码方法 |
GB201321851D0 (en) * | 2013-12-10 | 2014-01-22 | Canon Kk | Run length parameters coding for palette mode |
US11368681B2 (en) * | 2016-07-18 | 2022-06-21 | Electronics And Telecommunications Research Institute | Image encoding/decoding method and device, and recording medium in which bitstream is stored |
JP6995760B2 (ja) * | 2016-08-26 | 2022-01-17 | シャープ株式会社 | 画像復号装置 |
US10735730B2 (en) * | 2018-03-07 | 2020-08-04 | Tencent America LLC | Flexible tree structure |
-
2019
- 2019-03-27 EP EP19782110.1A patent/EP3767955B1/en active Active
- 2019-03-27 WO PCT/KR2019/003606 patent/WO2019194463A1/ko unknown
- 2019-03-27 JP JP2020553479A patent/JP2021518077A/ja active Pending
- 2019-03-27 KR KR1020207030301A patent/KR20200132979A/ko not_active Application Discontinuation
- 2019-03-27 CN CN202311851497.3A patent/CN117793383A/zh active Pending
- 2019-03-27 CN CN201980035375.2A patent/CN112166606B/zh active Active
- 2019-03-27 CN CN202311871235.3A patent/CN117793359A/zh active Pending
-
2020
- 2020-10-01 US US17/060,598 patent/US11589064B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170111646A1 (en) * | 2010-10-04 | 2017-04-20 | Electronics And Telecommunications Research Institute | Method for encoding/decoding block information using quad tree, and device for using same |
US20130272381A1 (en) * | 2012-04-16 | 2013-10-17 | Qualcomm Incorporated | Simplified non-square quadtree transforms for video coding |
WO2016090568A1 (en) * | 2014-12-10 | 2016-06-16 | Mediatek Singapore Pte. Ltd. | Binary tree block partitioning structure |
US20170347128A1 (en) * | 2016-05-25 | 2017-11-30 | Arris Enterprises Llc | Binary ternary quad tree partitioning for jvet |
Non-Patent Citations (2)
Title |
---|
F. LE LEANNEC: "Asymmetric Coding Units in QTBT", JOINT VIDEO EXPLORATION TEAM (JVET) OF ITU-T SG 16 WP ,3 AND ISO/IEC JTC 1/SC 29/WG 11, JVET-D0064, 21 October 2016 (2016-10-21), Chengdu, CN, pages 1 - 3, XP030150297, Retrieved from the Internet <URL:http://phenix.int-evry.fr/jvet> * |
See also references of EP3767955A4 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021532643A (ja) * | 2018-07-17 | 2021-11-25 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | ビデオコーディング用の制約付きコーディングツリー |
JP2022549607A (ja) * | 2019-09-20 | 2022-11-28 | 北京字節跳動網絡技術有限公司 | コーディング・ブロックのスケーリング・プロセス |
US11716491B2 (en) | 2019-09-20 | 2023-08-01 | Beijing Bytedance Network Technology Co., Ltd | Scaling process for coding block |
JP7479456B2 (ja) | 2019-09-20 | 2024-05-08 | 北京字節跳動網絡技術有限公司 | ビデオ・データ処理方法及び装置並びに記憶媒体及び方法 |
WO2022213920A1 (en) * | 2021-04-06 | 2022-10-13 | Beijing Bytedance Network Technology Co., Ltd. | Partition signaling in video coding |
Also Published As
Publication number | Publication date |
---|---|
EP3767955A1 (en) | 2021-01-20 |
CN112166606B (zh) | 2023-12-26 |
CN112166606A (zh) | 2021-01-01 |
KR20200132979A (ko) | 2020-11-25 |
EP3767955B1 (en) | 2023-08-09 |
CN117793359A (zh) | 2024-03-29 |
US20210021848A1 (en) | 2021-01-21 |
JP2021518077A (ja) | 2021-07-29 |
EP3767955A4 (en) | 2021-01-20 |
US11589064B2 (en) | 2023-02-21 |
CN117793383A (zh) | 2024-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020162690A1 (ko) | 축소된 변환을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치 | |
WO2021040484A1 (ko) | 크로스-컴포넌트 적응적 루프 필터링 기반 영상 코딩 장치 및 방법 | |
WO2020004990A1 (ko) | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 | |
WO2020046092A1 (ko) | 비디오 신호의 부호화/복호화 방법 및 이를 위한 장치 | |
WO2019203610A1 (ko) | 영상의 처리 방법 및 이를 위한 장치 | |
WO2019194514A1 (ko) | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 | |
WO2019216714A1 (ko) | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 | |
WO2019235822A1 (ko) | 어파인 움직임 예측을 이용하여 비디오 신호를 처리하는 방법 및 장치 | |
WO2020050651A1 (ko) | 다중 변환 선택에 기반한 영상 코딩 방법 및 그 장치 | |
WO2019194463A1 (ko) | 영상의 처리 방법 및 이를 위한 장치 | |
WO2021060847A1 (ko) | 컬러 포맷에 기반하여 분할 모드를 결정하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
WO2020180143A1 (ko) | 루마 맵핑 및 크로마 스케일링 기반 비디오 또는 영상 코딩 | |
WO2020184928A1 (ko) | 루마 맵핑 및 크로마 스케일링 기반 비디오 또는 영상 코딩 | |
WO2020171673A1 (ko) | 인트라 예측을 위한 비디오 신호의 처리 방법 및 장치 | |
WO2020251278A1 (ko) | 크로마 양자화 파라미터 데이터 기반 영상 디코딩 방법 및 그 장치 | |
WO2021040487A1 (ko) | 영상 코딩 시스템에서 레지듀얼 데이터 코딩에 대한 영상 디코딩 방법 및 그 장치 | |
WO2020180122A1 (ko) | 조건적으로 파싱되는 alf 모델 및 리셰이핑 모델 기반 비디오 또는 영상 코딩 | |
WO2021141226A1 (ko) | 루마 성분 및 크로마 성분에 대한 bdpcm 기반 영상 디코딩 방법 및 그 장치 | |
WO2021040410A1 (ko) | 레지듀얼 코딩에 대한 영상 디코딩 방법 및 그 장치 | |
WO2020262902A1 (ko) | 쌍 예측을 적용하는 영상 디코딩 방법 및 그 장치 | |
WO2020009447A1 (ko) | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 | |
WO2019194515A1 (ko) | 영상의 처리 방법 및 이를 위한 장치 | |
WO2021006700A1 (ko) | 영상 코딩 시스템에서 레지듀얼 코딩 방법에 대한 플래그를 사용하는 영상 디코딩 방법 및 그 장치 | |
WO2020197207A1 (ko) | 맵핑을 포함하는 필터링 기반 비디오 또는 영상 코딩 | |
WO2019216736A1 (ko) | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19782110 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2020553479 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 20207030301 Country of ref document: KR Kind code of ref document: A |
|
ENP | Entry into the national phase |
Ref document number: 2019782110 Country of ref document: EP Effective date: 20201014 |