KR102390384B1 - Apparatus and Method for Video Encoding or Decoding - Google Patents
Apparatus and Method for Video Encoding or Decoding Download PDFInfo
- Publication number
- KR102390384B1 KR102390384B1 KR1020170031234A KR20170031234A KR102390384B1 KR 102390384 B1 KR102390384 B1 KR 102390384B1 KR 1020170031234 A KR1020170031234 A KR 1020170031234A KR 20170031234 A KR20170031234 A KR 20170031234A KR 102390384 B1 KR102390384 B1 KR 102390384B1
- Authority
- KR
- South Korea
- Prior art keywords
- block
- depth
- qtbt
- node
- image data
- 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/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/186—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 a colour or a chrominance component
-
- 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/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 QTBT(Quadtree plus Binary tree) 기반 블록 파티셔닝에 관한 분할 정보를 효율적으로 시그널링하는 것과 관련이 있다. 본 발명의 일 측면에 따르면, 영상 부호화 장치는 결정된 블록 파티셔닝 구조에서 쿼드트리의 리프 노드가 적어도 하나 존재하는 심도(depth)들 중 가장 상위의 심도를 지칭하는 최상위 QT 리프노드 심도를 판단하고, 상기 결정된 블록 파티셔닝 구조에서 루트 노드로부터 상기 최상위 QT 리프노드 심도에 속하는 노드들의 부모 노드까지의 모든 노드들에 대한 쿼드트리 분할 정보로서, 상기 최상위 QT 리프노드 심도를 나타내는 심도 정보를 시그널링한다.The present invention relates to efficient signaling of partition information related to quadtree plus binary tree (QTBT)-based block partitioning. According to one aspect of the present invention, the image encoding apparatus determines the highest QT leaf node depth indicating the highest depth among the depths in which at least one leaf node of the quadtree exists in the determined block partitioning structure, and As quadtree partition information for all nodes from the root node to the parent node of nodes belonging to the highest QT leaf node depth in the determined block partitioning structure, depth information indicating the highest QT leaf node depth is signaled.
Description
본 발명은 영상을 효율적으로 부호화하기 위한 영상 부호화 또는 복호화에 관한 것이다. 보다 상세하게는, QTBT(Quadtree plus Binary tree) 기반 블록 파티셔닝에 관한 분할 정보를 시그널링하는 기법에 관한 것이다.The present invention relates to image encoding or decoding for efficiently encoding an image. More specifically, it relates to a technique for signaling partition information related to quadtree plus binary tree (QTBT)-based block partitioning.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래 기술을 구성하는 것은 아니다. The content described in this section merely provides background information for the present embodiment and does not constitute the prior art.
도 1은 CTU에 대한 쿼드 트리 분할 구조의 일례와 이를 트리 구조로 나타내는 도면이다. HEVC에서 CTU(Coding Tree Unit)은 영상 내 다양한 로컬의 특성을 반영하기 위한 코딩 트리로 쿼드트리(quadtree) 구조 방식을 이용하여 CU(Coding Unit)로 나눈다. 이렇게 CU가 결정되면 인트라, 인터 코딩 예측도 CU 단위에서 이루어지게 된다. 각각의 CU는 다시 PU(Prediction Unit)으로 나뉘며 PU가 결정이 되고 예측 과정이 진행된 후 CU는 잔차 블록(residual block)에 대해 TU(Transformation Unit)으로 나뉘는 과정이 이루어진다. 1 is a diagram illustrating an example of a quad-tree division structure for a CTU and a tree structure thereof. In HEVC, a coding tree unit (CTU) is a coding tree for reflecting various local characteristics in an image, and is divided into coding units (CUs) using a quadtree structure method. When the CU is determined in this way, intra and inter coding prediction is also performed in units of CUs. Each CU is again divided into a PU (Prediction Unit), and after the PU is determined and a prediction process is performed, the CU is divided into a TU (Transformation Unit) for a residual block.
최근에 QTBT(Quadtree plus Binary tree) 구조가 새롭게 논의되고 있는데, 이러한 QTBT 구조는 기존의 CU, PU, TU 개념을 제거하면서도 비디오 데이터의 다양한 로컬 특징을 매칭하기 위해 다양한 CU 분할 모양을 제안한다. 즉, QTBT에서 CU는 정사각형 혹은 직사각형의 모양이 될 수 있도록 정의할 수 있다. Recently, a quadtree plus binary tree (QTBT) structure has been newly discussed. This QTBT structure proposes various CU segmentation shapes to match various local features of video data while removing the existing concepts of CU, PU, and TU. That is, in QTBT, a CU can be defined to have a square or rectangular shape.
또한 HEVC에서 CTU 사이즈는 64였으나 영상의 해상도가 커짐에 따라 128, 256 등 더 큰 블록 사이즈의 필요성이 논의되고 있는 바, CTU에서 블록이 최소 4x4까지 분할될 경우 이러한 분할 정보를 시그널링하는 데 소요되는 데이터량은 점점 더 증가하게 된다.Also, in HEVC, the CTU size was 64, but as the resolution of the image increases, the need for a larger block size such as 128 or 256 is being discussed. The amount of data gradually increases.
본 발명은 QTBT(Quadtree plus Binary tree) 기반 블록 파티셔닝에 관한 분할 정보를 효율적으로 시그널링하는 데 그 목적이 있다.An object of the present invention is to efficiently signal partition information related to quadtree plus binary tree (QTBT)-based block partitioning.
본 발명의 일 측면에 따르면, 영상 데이터의 블록을 부호화하기 위한 QTBT(QuadTree plus BinaryTree) 블록 파티셔닝 구조를 결정하는 단계; 및 상기 결정된 블록 파티셔닝 구조에 기초하여, 상기 영상 데이터의 블록과 상기 결정된 블록 파티셔닝 구조를 표현하는 분할 정보를 부호화하는 단계를 포함하는 영상 데이터를 부호화하는 방법을 제공한다. 상기 QTBT 블록 파티셔닝 구조는 쿼드트리의 리프 노드(leaf node)로부터 바이너리트리가 루트된(rooted) 구조이다. 상기 분할 정보를 부호화하는 것은 상기 결정된 블록 파티셔닝 구조에서, 쿼드트리의 리프 노드가 적어도 하나 존재하는 심도(depth)들 중 가장 상위의 심도(이하 “최상위 QT 리프노드 심도”로 지칭함)를 판단하는 단계; 및 상기 결정된 블록 파티셔닝 구조에서 루트 노드로부터 상기 최상위 QT 리프노드 심도에 속하는 노드들의 부모 노드까지의 쿼드트리 분할 정보로서, 상기 최상위 QT 리프노드 심도를 나타내는 심도 정보를 부호화하는 단계를 포함한다.According to an aspect of the present invention, the method comprising: determining a QTBT (QuadTree plus BinaryTree) block partitioning structure for encoding a block of image data; and encoding a block of the image data and partition information representing the determined block partitioning structure based on the determined block partitioning structure. The QTBT block partitioning structure is a structure in which a binary tree is rooted from a leaf node of a quadtree. The encoding of the partition information includes determining the highest depth (hereinafter referred to as “the highest QT leaf node depth”) among the depths in which at least one leaf node of a quadtree exists in the determined block partitioning structure. ; and encoding depth information indicating the depth of the highest QT leaf node as quadtree partition information from a root node to a parent node of nodes belonging to the highest QT leaf node depth in the determined block partitioning structure.
본 발명의 다른 측면에 따르면, 부호화된 영상 데이터의 블록 및 상기 영상 데이터의 블록과 관련된 분할 정보를 파싱하는 단계; 상기 분할 정보를 이용하여 상기 QTBT를 결정하면서 상기 결정된 QTBT의 각 리프 노드별로 상기 부호화된 영상 데이터의 블록을 복호화하는 단계를 포함하는 영상 데이터를 복호화하는 방법을 제공한다. 상기 부호화된 영상 데이터의 블록은 QTBT(quadtree plus binarytree) 블록 파티셔닝 구조에 따라 복수의 분할 블록으로 분할되어 있으며, 상기 QTBT 블록 파티셔닝 구조는 쿼드트리(quadtree)의 리프 노드(leaf node)로부터 바이너리트리(binarytree)가 루트된(rooted) 구조이다. 상기 분할 정보는 상기 QTBT 블록 파티셔닝 구조에서 쿼드트리의 리프 노드가 적어도 하나 존재하는 심도(depth)들 중 가장 상위의 심도(이하 “최상위 QT 리프노드 심도”로 지칭함)를 나타내는 심도 정보를 포함한다. 상기 QTBT를 결정하는 단계는, 상기 최상위 QT 리프노드 심도를 나타내는 심도 정보를 이용하여, 상기 QTBT의 루트 노드로부터 상기 최상위 QT 리프노드 심도에 속하는 노드들의 부모 노드까지의 모든 노드들에 대해 쿼드트리 분할을 수행하는 단계를 포함한다.According to another aspect of the present invention, the method comprising: parsing a block of encoded image data and segmentation information related to the block of image data; There is provided a method of decoding image data, comprising decoding the block of the encoded image data for each leaf node of the determined QTBT while determining the QTBT using the division information. The block of the encoded image data is divided into a plurality of divided blocks according to a quadtree plus binarytree (QTBT) block partitioning structure, and the QTBT block partitioning structure is a binary tree ( binarytree) is a rooted structure. The partition information includes depth information indicating the highest depth among the depths in which at least one leaf node of the quadtree exists in the QTBT block partitioning structure (hereinafter referred to as “the highest QT leaf node depth”). In the determining of the QTBT, using depth information indicating the depth of the highest QT leaf node, a quadtree is divided for all nodes from the root node of the QTBT to the parent node of the nodes belonging to the highest QT leaf node depth. It includes the step of performing
본 발명의 다른 측면에 따르면, 영상 데이터를 복호화하는 장치를 제공한다. 복호화 장치는 메모리 및 하나 이상의 프로세서들을 포함하며, 상기 하나 이상의 프로세서들은, 부호화된 영상 데이터의 블록 및 상기 영상 데이터의 블록과 관련된 분할 정보를 파싱하는 단계와 상기 분할 정보를 이용하여 상기 QTBT를 결정하면서, 상기 QTBT의 각 리프 노드별로 상기 부호화된 영상 데이터의 블록을 복호화하는 단계를 수행하도록 구성된다.According to another aspect of the present invention, there is provided an apparatus for decoding image data. The decoding apparatus includes a memory and one or more processors, wherein the one or more processors perform the steps of parsing a block of encoded image data and segmentation information related to the block of image data, and determining the QTBT using the segmentation information. , decoding the block of the encoded image data for each leaf node of the QTBT.
도 1은 CTU에 대한 쿼드 트리 분할 구조의 일례와 이를 트리 구조로 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록도이다.
도 3은 복수의 인트라 예측 모드에 대한 예시를 나타낸다.
도 4는 현재 블록의 주변블록에 대한 예시도이다.
도 5는 본 발명의 일 실시예에 따른 영상 복호화 장치를 도시한 것이다.
도 6은 영상 부호화 장치가 영상을 부호화하는 예시적인 동작을 도시한 흐름도이다.
도 7은 영상 복호화 장치가 영상을 복호화하는 예시적인 동작을 도시한 흐름도이다.
도 8은 CTU의 QTBT 분할 구조의 일례와 이를 트리 구조로 나타내는 도면이다.
도 9는 하나의 CU에서 BT로 표현될 수 있는 가짓수를 도시한 도면이다.
도 10은 CTU의 예시적인 QTBT 분할 구조를 트리 구조로 도시한 도면이다.1 is a diagram illustrating an example of a quad-tree division structure for a CTU and a tree structure thereof.
2 is a block diagram of an image encoding apparatus according to an embodiment of the present invention.
3 shows an example for a plurality of intra prediction modes.
4 is an exemplary diagram of a neighboring block of a current block.
5 illustrates an image decoding apparatus according to an embodiment of the present invention.
6 is a flowchart illustrating an exemplary operation of encoding an image by an image encoding apparatus.
7 is a flowchart illustrating an exemplary operation in which an image decoding apparatus decodes an image.
8 is a diagram illustrating an example of a QTBT division structure of a CTU and a tree structure thereof.
9 is a diagram illustrating the number of items that can be expressed as BT in one CU.
10 is a diagram illustrating an exemplary QTBT partition structure of a CTU in a tree structure.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성 요소들에 식별 부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Hereinafter, some embodiments of the present invention will be described in detail with reference to exemplary drawings. It should be noted that in adding identification codes to the components of each drawing, the same components are to have the same reference numerals as much as possible even though they are indicated on different drawings. In addition, in describing the present invention, if it is determined that a detailed description of a related known configuration or function may obscure the gist of the present invention, the detailed description thereof will be omitted.
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록도이다.2 is a block diagram of an image encoding apparatus according to an embodiment of the present invention.
영상 부호화 장치는 블록 분할부(210), 예측부(220), 감산기(230), 변환부(240), 양자화부(245), 부호화부(250), 역양자화부(260), 역변환부(265), 가산기(270), 필터부(280) 및 메모리(290)를 포함한다. 영상 부호화 장치는 각 구성요소는 하드웨어 칩으로 구현될 수 있으며, 또는 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.The image encoding apparatus includes a
블록 분할부(210)는 영상을 구성하는 각 픽처(picture)를 복수의 CTU(Coding Tree Unit)으로 분할한 이후에, CTU를 트리 구조(tree structure)를 이용하여 반복적으로(recursively) 분할한다. 트리 구조에서의 리프 노드(leaf node)가 부호화의 기본 단위인 CU (coding unit)가 된다. 트리 구조로는 상위 노드(혹은 부모 노드)가 동일한 크기의 네 개의 하위 노드(혹은 자식 노드)로 분할되는 쿼드트리(QuadTree, QT), 또는 이러한 QT 구조 및 상위 노드가 두 개의 하위 노드로 분할되는 바이너리트리(BinaryTree, BT) 구조를 혼용한 QTBT (QuadTree plus BinaryTree) 구조가 사용될 수 있다. 즉, CTU를 다수의 CU로 분할하기 위해 QTBT를 사용할 수 있다.The
QTBT (QuadTree plus BinaryTree) 구조에서, CTU는 먼저 QT 구조로 분할될 수 있다. 쿼드트리 분할은 분할 블록(splitting block)의 크기가 QT에서 허용되는 리프 노드의 최소 블록 크기(MinQTSize)에 도달 할 때까지 반복 될 수 있다. 쿼드트리의 리프 노드가 BT에서 허용되는 루트 노드의 최대 블록 크기(MaxBTSize)보다 크지 크지 않은 경우, BT 구조로 더 파티셔닝될 수 있다. BT에서는 복수의 분할 타입이 존재할 수 있다. 예컨대, 일부 예시에서, 해당 노드의 블록을 동일 크기의 두 개 블록으로 가로로 분할하는 타입(즉, symmetric horizontal splitting)과 세로로 분할하는 타입(즉, symmetric vertical splitting) 두 가지가 존재할 수 있다. 또한, 해당 노드의 블록을 서로 비대칭 형태의 두 개의 블록으로 분할하는 타입이 추가로 더 존재할 수도 있다. 비대칭 형태로는 해당 노드의 블록을 1:3의 크기 비율을 가지는 두 개의 직사각형 블록으로 분할하는 형태를 포함할 수 있고, 혹은 해당 노드의 블록을 대각선 방향으로 분할하는 형태를 포함할 수도 있다.In a QTBT (QuadTree plus BinaryTree) structure, a CTU may first be divided into a QT structure. The quadtree splitting may be repeated until the size of a splitting block reaches the minimum block size of a leaf node (MinQTSize) allowed in QT. If the leaf node of the quadtree is not larger than the maximum block size (MaxBTSize) of the root node allowed in the BT, it may be further partitioned into the BT structure. In BT, a plurality of partition types may exist. For example, in some examples, there may be two types of horizontally splitting a block of a corresponding node into two blocks of the same size (ie, symmetric horizontal splitting) and a vertical splitting type (ie, symmetric vertical splitting). In addition, there may be further types in which the block of the corresponding node is divided into two blocks having an asymmetric shape. The asymmetric form may include a form in which the block of the corresponding node is divided into two rectangular blocks having a size ratio of 1:3, or may include a form in which the block of the corresponding node is divided in a diagonal direction.
블록 분할부(210)가 QTBT 구조에 의해 CTU를 분할하여 생성하는 분할 정보는 부호화부(250)에 의해 부호화되어 영상 복호화 장치로 전달된다. 본 개시의 예시들은 일반적으로 QTBT 블록 파티션 정보의 시그널링하는 기법과 QTBT 블록 파티션 정보로부터 블록 파티셔닝을 결정하는 기법에 관한 것이다. 이와 같이, 본 개시의 소정의 기법들은 부호화부(250)에 의해 수행될 수도 있다. 즉, 예를 들어, 부호화부(250)는 아래의 도 8 내지 도 10에 대해 기술된 본 개시의 기법들을 수행할 수도 있다. 다른 예들에서, 부호화 장치의 하나 이상의 다른 유닛들이 추가적이거나 대안적으로 본 개시의 기법들을 수행하는 것을 담당할 수도 있다.The division information generated by the
이하에서는, 부호화 또는 복호화하고자 하는 CU(즉, QTBT의 리프 노드)에 해당하는 블록을 '현재 블록'이라 칭한다.Hereinafter, a block corresponding to a CU to be encoded or decoded (ie, a leaf node of QTBT) is referred to as a 'current block'.
예측부(220)는 현재 블록을 예측하여 예측블록을 생성한다. 예측부(220)는 인트라 예측부(222)와 인터 예측부(224)를 포함한다. The
인트라 예측부(222)는 현재 블록이 포함된 현재 픽처 내에서 현재 블록의 주변에 위치한 픽셀(참조 픽셀)들을 이용하여 현재 블록 내의 픽셀들을 예측한다. 예측 방향에 따라 복수의 인트라 예측모드가 존재하며, 각 예측모드에 따라 사용할 주변 픽셀과 연산식이 다르게 정의된다. 특히, 인트라 예측부(222)는 현재 블록을 부호화하는데 사용할 인트라 예측 모드를 결정할 수 있다. 일부 예들에서, 인트라 예측부(222)는 여러 인트라 예측 모드들을 사용하여 현재 블록을 인코딩하고, 테스트된 모드들로부터 사용할 적절한 인트라 예측 모드를 선택할 수도 있다. 예를 들어, 인트라 예측부(222)는 여러 테스트된 인트라 예측 모드들에 대한 레이트 왜곡(rate-distortion) 분석을 사용하여 레이트 왜곡 값들을 계산하고, 테스트된 모드들 중 최선의 레이트 왜곡 특징들을 갖는 인트라 예측 모드를 선택할 수도 있다. The
도 3은 복수의 인트라 예측 모드에 대한 예시를 나타낸다. 3 shows an example for a plurality of intra prediction modes.
도 3에서 보는 바와 같이, 복수의 인트라 예측 모드는 2개의 비방향성 모드(planar 모드 및 DC 모드)와 65개의 방향성 모드를 포함할 수 있다.As shown in FIG. 3 , the plurality of intra prediction modes may include two non-directional modes (planar mode and DC mode) and 65 directional modes.
인트라 예측부(222)는 복수의 인트라 예측 모드 중에서 하나의 인트라 예측 모드를 선택하고, 선택된 인트라 예측 모드에 따라 결정되는 주변 픽셀(참조 픽셀)과 연산식을 사용하여 현재 블록을 예측한다. 선택된 인트라 예측 모드에 대한 정보는 부호화부(250)에 의해 부호화되어 영상 복호화 장치로 전달된다.The
한편, 인트라 예측부(222)는, 복수의 인트라 예측 모드 중 어느 모드가 현재 블록의 인트라 예측 모드로 사용되었는지를 지시하는 인트라 예측 모드 정보를 효율적으로 부호화하기 위해, 복수의 인트라 예측 모드 중 현재 블록의 인트라 예측 모드로서 가능성이 높은 일부의 모드를 MPM(most probable mode)으로 결정할 수 있다. 그리고, 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되는지 여부를 지시하는 모드 정보를 생성하여 부호화부(250)로 전달한다. 일반적으로, 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되는 경우, MPM 중 어느 모드가 현재 블록의 인트라 예측 모드로 선택되었는지를 지시하기 위한 제1 인트라 식별정보를 부호화부로 전달한다. 반면 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되지 않은 경우, MPM이 아닌 나머지 모드들 중 어느 모드가 현재 블록의 인트라 예측 모드로 선택되었는지를 지시하기 위한 제2 인트라 식별정보를 부호화부로 전달한다. 대안적으로, 본 발명의 일 측면에 따른 인트라 예측부(222)는 MPM들 및/또는 non-MPM들 중에서 어느 모드가 현재 블록을 예측하기 위한 인트라 예측 모드로 선택되었는지를 명시적으로 시그널링하는 대신에, MPM들 및/또는 non-MPM들을 그룹화하고, 현재 블록을 예측하기 위한 인트라 모드가 속하는 그룹의 인덱스를 시그널링할 수 있다.Meanwhile, the
이하에서는, MPM 리스트를 구성하는 방법을 설명한다. 여기서는, 6개의 MPM으로 MPM 리스트를 구성하는 것을 예로 설명하나, 본 발명이 이에 한정되는 것은 아니며 MPM 리스트에 포함되는 MPM의 개수는 3개 내지 10개의 범위 내에서 선택될 수 있다.Hereinafter, a method for configuring the MPM list will be described. Here, the configuration of the MPM list with 6 MPMs is described as an example, but the present invention is not limited thereto, and the number of MPMs included in the MPM list may be selected within the range of 3 to 10.
먼저, 현재 블록의 주변블록들의 인트라 예측 모드를 이용하여 MPM 리스트를 구성한다. 주변블록은, 예컨대 도 4에 도시된 바와 같이, 현재 블록의 좌측블록(L), 상단블록(A), 좌하단블록(BL), 우상단블록(AR), 좌상단블록(AL) 중에서 전부 또는 일부를 포함할 수 있다. First, an MPM list is constructed using intra prediction modes of neighboring blocks of the current block. The neighboring blocks are, for example, all or part of the left block (L), the upper block (A), the lower left block (BL), the upper right block (AR), and the upper left block (AL) of the current block, as shown in FIG. 4 . may include
이 주변블록들의 인트라 예측 모드가 MPM 리스트에 포함된다. 여기서, 좌측블록(L), 상단블록(A), 좌하단블록(BL), 우상단블록(AR), 좌상단블록(AL)의 순서로 유효한 블록의 인트라 예측모드가 MPM 리스트에 포함되고, 이 주변블록들의 인트라 예측 모드들에 planar 모드 및 DC 모드를 추가하여 후보를 구성한다. 또는, 좌측블록(L), 상단블록(A), planar 모드, DC 모드, 좌하단블록(BL), 우상단블록(AR), 좌상단블록(AL)의 순으로 유효한 모드가 MPM 리스트에 추가될 수도 있다. The intra prediction modes of these neighboring blocks are included in the MPM list. Here, the intra prediction mode of the effective block in the order of the left block (L), the upper block (A), the lower left block (BL), the upper right block (AR), and the upper left block (AL) is included in the MPM list, and around this A candidate is constructed by adding a planar mode and a DC mode to the intra prediction modes of blocks. Alternatively, valid modes may be added to the MPM list in the order of left block (L), upper block (A), planar mode, DC mode, lower left block (BL), upper right block (AR), and upper left block (AL). there is.
MPM 리스트에는 서로 다른 인트라 예측 모드만이 포함된다. 즉, 중복된 모드(duplicated mode)가 존재하는 경우 그 중 하나의 모드만이 MPM 리스트에 포함된다.The MPM list includes only different intra prediction modes. That is, when duplicated modes exist, only one of them is included in the MPM list.
만약, 리스트 내의 MPM의 개수가 기결정된 개수(예컨대, 6)보다 작은 경우에는, 리스트 내의 방향성 모드들에 -1 또는 +1을 가산하여 MPM을 유도할 수도 있다. 또한, 리스트 내의 MPM의 개수가 기결정된 개수보다 작은 경우에는, 수직 모드(vertical mode), 수직 모드(horizontal mode), 대각선 모드(diagonal mode) 등의 순서로 부족한 개수 만큼의 모드를 MPM 리스트에 추가할 수도 있다.If the number of MPMs in the list is smaller than a predetermined number (eg, 6), MPMs may be derived by adding -1 or +1 to the directional modes in the list. In addition, if the number of MPMs in the list is smaller than the predetermined number, add the insufficient number of modes to the MPM list in the order of a vertical mode, a vertical mode, a diagonal mode, etc. You may.
인터 예측부(224)는 현재 픽처보다 먼저 부호화 및 복호화된 참조 픽처 내에서 현재 블록과 가장 유사한 블록을 탐색하고, 그 탐색된 블록을 이용하여 현재 블록에 대한 예측블록을 생성한다. 그리고, 현재 픽처 내의 현재 블록과 참조 픽처 내의 예측블록 간의 변위(displacement)에 해당하는 움직임벡터(motion vector)를 생성한다. 현재 블록을 예측하기 위해 사용된 참조 픽처에 대한 정보 및 움직임벡터에 대한 정보를 포함하는 움직임 정보는 부호화부(250)에 의해 부호화되어 영상 복호화 장치로 전달된다.The
감산기(230)는 현재 블록으로부터 인트라 예측부(222) 또는 인터 예측부(224)에 의해 생성된 예측블록을 감산하여 잔차 블록을 생성한다.The
변환부(240)는 공간 영역의 픽셀 값들을 가지는 잔차 블록 내의 잔차 신호를 주파수 도메인의 변환 계수로 변환한다. 변환부(240)는 잔차 블록 내의 잔차 신호들을 현재 블록의 크기를 변환 단위로 사용하여 변환할 수 있으며, 또는 잔차 블록을 더 작은 복수의 서브블록을 분할하고 서브블록 크기의 변환 단위로 잔차 신호들을 변환할 수도 있다. 잔차 블록을 더 작은 서브블록으로 분할하는 방법은 다양하게 존재할 수 있다. 예컨대, 기정의된 동일한 크기의 서브블록으로 분할할 수도 있으며, 또는 잔차 블록을 루트 노드로 하는 QT(quadtree) 방식의 분할을 사용할 수도 있다. The
양자화부(245)는 변환부(240)로부터 출력되는 변환 계수들을 양자화하고, 양자화된 변환 계수들을 부호화부(250)로 출력한다.The
부호화부(250)는 양자화된 변환 계수들을 CABAC 등의 부호화 방식을 사용하여 부호화하여 비트스트림을 생성한다. 또한, 부호화부(250)는 블록 분할과 관련된 CTU size, MinQTSize, MaxBTSize, MaxBTDepth, MinBTSize, QT 분할 플래그, BT 분할 플래그, 분할 타입 등의 정보를 부호화하여, 영상 복호화 장치가 영상 부호화 장치와 동일하게 블록을 분할할 수 있도록 한다.The
부호화부(250)는 현재 블록이 인트라 예측에 의해 부호화되었는지 아니면 인터 예측에 의해 부호화되었는지 여부를 지시하는 예측 타입에 대한 정보를 부호화하고, 예측 타입에 따라 인트라 예측정보 또는 인터 예측정보를 부호화한다. The
역양자화부(260)는 양자화부(245)로부터 출력되는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 생성한다. 역변환부(265)는 역양자화부(260)로부터 출력되는 변환 계수들을 주파수 도메인으로부터 공간 도메인으로 변환하여 잔차블록을 복원한다.The
가산부(270)는 복원된 잔차블록과 예측부(220)에 의해 생성된 예측블록을 가산하여 현재 블록을 복원한다. 복원된 현재 블록 내의 픽셀들은 다음 순서의 블록을 인트라 예측할 때 참조 픽셀로서 사용된다.The
필터부(280)는 블록 단위의 부호화/복호화로 인해 발생하는 블록킹 현상(blocking artifact)을 제거하기 위해 복원된 블록 간의 경계를 디블록킹 필터링하고 메모리(290)에 저장한다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 부호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.The
이하에서는 영상 복호화 장치에 대해 설명한다.Hereinafter, an image decoding apparatus will be described.
도 5는 본 발명의 실시예에 따른 영상 복호화 장치를 도시한 것이다.5 illustrates an image decoding apparatus according to an embodiment of the present invention.
영상 복호화 장치는 복호화부(510), 역양자화부(520), 역변환부(530), 예측부(540), 가산기(550), 필터부(560) 및 메모리(570)를 포함한다. 도 2의 영상 부호화 장치와 마찬가지로, 영상 복호화 장치는 각 구성요소가 하드웨어 칩으로 구현될 수 있으며, 또는 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.The image decoding apparatus includes a
복호화부(510)는 영상 부호화 장치로부터 수신한 비트스트림을 복호화하여 블록 분할과 관련된 정보를 추출하여 복호화하고자 하는 현재 블록을 결정하고, 현재 블록을 복원하기 위해 필요한 예측 정보와 잔차신호에 대한 정보 등을 추출한다.The
복호화부(510)는 SPS (Sequence Parameter Set) 또는 PPS (Picture Parameter Set)과 같은 하이 레벨 신택스(high level syntax)로부터 CTU size에 대한 정보를 추출하여 CTU의 크기를 결정하고, 픽처를 결정된 크기의 CTU로 분할한다. 그리고 CTU를 트리 구조의 최상위 레이어, 즉, 루트 노드로 결정하고, CTU에 대한 분할 정보를 추출함으로써 CTU를 트리 구조(예컨대, QTBT 구조)를 이용하여 분할한다. The
본 개시의 예시들은 일반적으로 QTBT 블록 파티션 정보의 시그널링하는 기법과 QTBT 블록 파티션 정보로부터 블록 파티셔닝을 결정하는 기법에 관한 것이다. 이와 같이, 본 개시의 소정의 기법들은 복호화부(510)에 의해 수행될 수도 있다. 즉, 예를 들어, 복호화부(510)는 아래의 도 8 내지 도 10에 대해 기술된 본 개시의 기법들을 수행할 수도 있다. 다른 예들에서, 복호화 장치의 하나 이상의 다른 유닛들이 추가적이거나 대안적으로 본 개시의 기법들을 수행하는 것을 담당할 수도 있다.Examples of the present disclosure generally relate to a signaling technique of QTBT block partition information and a technique for determining block partitioning from QTBT block partition information. As such, certain techniques of the present disclosure may be performed by the
복호화부(510)는 트리 구조의 분할을 통해 복호화하고자 하는 현재 블록(현재 블록)을 결정하게 되면, 현재 블록이 인트라 예측되었는지 아니면 인터 예측되었는지를 지시하는 예측 타입에 대한 정보를 추출한다. When the
예측 타입 정보가 인트라 예측을 지시하는 경우, 복호화부(510)는 현재 블록의 인트라 예측정보(인트라 예측 모드)에 대한 신택스 요소를 추출한다. 먼저, 복호화부(510)는 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되는지 여부를 지시하는 모드 정보(즉, MPM 플래그)를 추출한다. 또한, 일반적으로, 인트라 모드 부호화 정보가 현재 블록의 인트라 예측 모드가 MPM 중에서 선택됨을 지시하는 경우, MPM 중 어느 모드가 현재 블록의 인트라 예측 모드로 선택되었는지를 지시하기 위한 제1 인트라 식별정보를 추출하고, 인트라 모드 부호화 정보가 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되지 않음을 지시하는 경우, MPM이 아닌 나머지 모드들 중 어느 모드가 현재 블록의 인트라 예측 모드로 선택되었는지를 지시하기 위한 제2 인트라 식별정보를 추출한다. 대안적으로, 본 발명의 일 측면에 따른 인트라 예측부(222)는, MPM들 및/또는 non-MPM들 중에서 어느 모드가 현재 블록을 예측하기 위한 인트라 예측 모드로 선택되었는지를 지시하는 인트라 식별정보를 추출하는 대신에, MPM들 및/또는 non-MPM들을 그룹화하고, 현재 블록을 예측하기 위한 인트라 모드가 속하는지를 지시하는 인트라 식별정보(예컨대, 그룹의 인덱스 등)를 추출한다. When the prediction type information indicates intra prediction, the
한편, 복호화부(510)는 잔차신호에 대한 정보로서 현재 블록의 양자화된 변환계수들에 대한 정보를 추출한다.Meanwhile, the
역양자화부(520)는 양자화된 변환계수들을 역양자화하고 역변환부(530)는 역양자화된 변환계수들을 주파수 도메인으로부터 공간 도메인으로 역변환하여 잔차신호들을 복원함으로써 현재 블록에 대한 잔차블록을 생성한다.The
예측부(540)는 인트라 예측부(542) 및 인터 예측부(544)를 포함한다. 인트라 예측부(542)는 현재 블록의 예측 타입인 인트라 예측일 때 활성화되고, 인터 예측부(544)는 현재 블록의 예측 타입인 인트라 예측일 때 활성화된다.The
인트라 예측부(542)는 복호화부(510)로부터 추출된 인트라 예측 모드에 대한 신택스 요소로부터 복수의 인트라 예측 모드 중 현재 블록의 인트라 예측 모드를 결정하고, 인트라 예측 모드에 따라 현재 블록 주변의 참조 픽셀들을 이용하여 현재 블록을 예측한다. The
현재 블록의 인트라 예측 모드를 결정하기 위해, 인트라 예측부(542)는 현재 블록의 주변블록으로부터 기 결정된 개수의 MPM들을 포함하는 MPM 리스트를 구성한다. MPM 리스트를 구성하는 방법은 도 2의 인트라 예측부(222)와 동일하다. In order to determine the intra prediction mode of the current block, the
일반적으로, 인트라 예측의 모드 정보(즉, MPM 플래그)가 현재 블록의 인트라 예측 모드가 MPM 중에서 선택됨을 지시하는 경우에는, 인트라 예측부(542)는 MPM 리스트 내의 MPM들 중 제1 인트라 식별정보에 의해 지시되는 MPM을 현재 블록의 인트라 예측 모드로 선택한다. 반면, 모드 정보가 현재 블록의 인트라 예측 모드가 MPM으로부터 선택되지 않음을 지시하는 경우, 제2 인트라 식별정보를 이용하여 MPM 리스트 내의 MPM들을 제외한 나머지 인트라 예측 모드들 중에서 현재 블록의 인트라 예측 모드를 결정한다. In general, when the intra prediction mode information (that is, the MPM flag) indicates that the intra prediction mode of the current block is selected from among the MPMs, the
대안적으로, 본 발명의 일 측면에 따른 영상 부호화 장치의 인트라 예측부(222)는, 전술한 바와 같이, MPM들 및/또는 non-MPM들 중에서 어느 모드가 현재 블록을 예측하기 위한 인트라 예측 모드로 선택되었는지를 명시적으로 시그널링하는 대신에, MPM들 및/또는 non-MPM들을 그룹화하고, 현재 블록을 예측하기 위한 인트라 모드가 속하는 그룹의 인덱스를 시그널링한다. 이 경우, 영상 복호화 장치의 인트라 예측부(542)는 해당 그룹에 속한 인트라 모드들을 평가하여 최종 인트라 모드(즉, 현재 블록을 예측하기 위한 인트라 모드)를 결정할 수 있다. 예컨대, 일부 예들에서, 인트라 예측부(542)는 한 그룹에 속한 다수 개의 인트라 모드에 대해, 복원 블록(reconstructed block)을 생성하고, 복원 블록들을 평가하여 최종 인트라 모드를 결정할 수 있다. Alternatively, as described above, the
인터 예측부(544)는 복호화부(510)로부터 추출된 인트라 예측 모드에 대한 신택스 요소를 이용하여 현재 블록의 움직임정보를 결정하고, 결정된 움직임정보를 이용하여 현재 블록을 예측한다.The
가산기(550)는 역변환부로부터 출력되는 잔차블록과 인터 예측부 또는 인트라 예측부로부터 출력되는 예측블록을 가산하여 현재 블록을 복원한다. 복원된 현재 블록 내의 픽셀들은 이후에 복호화할 블록을 인트라 예측할 때의 참조픽셀로서 활용된다.The
필터부(560)는 블록 단위의 복호화로 인해 발생하는 블록킹 현상(blocking artifact)를 제거하기 위해 복원된 블록 간의 경계를 디블록킹 필터링하고 메모리(570)에 저장한다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 복호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.The
도 6은 영상 부호화 장치가 영상을 부호화하는 예시적인 동작을 도시한 흐름도이다. 도 6의 예에서, 영상 부호화 장치는 영상 데이터의 블록을 부호화하기 위한 QTBT 블록 파티셔닝 구조를 결정한다(S610). 여기서 상기 QTBT 블록 파티셔닝 구조는 쿼드트리의 리프 노드(leaf node)로부터 바이너리트리가 루트되는(rooted) 구조이다. 영상 부호화 장치는 상기 결정된 블록 파티셔닝 구조에 기초하여, 상기 영상 데이터의 블록과 상기 결정된 블록 파티셔닝 구조를 표현하는 분할 정보를 포함하는 부호화된 비트스트림을 생성한다(S620).6 is a flowchart illustrating an exemplary operation of an image encoding apparatus encoding an image. In the example of FIG. 6 , the image encoding apparatus determines a QTBT block partitioning structure for encoding a block of image data ( S610 ). Here, the QTBT block partitioning structure is a structure in which a binary tree is rooted from a leaf node of a quadtree. The image encoding apparatus generates an encoded bitstream including a block of the image data and partition information representing the determined block partitioning structure based on the determined block partitioning structure (S620).
도 7은 영상 복호화 장치가 영상을 복호화하는 예시적인 동작을 도시한 흐름도이다. 도 7의 예에서, 영상 복호화 장치는 비트스트림으로부터 부호화된 영상 데이터의 블록 및 상기 영상 데이터의 블록과 관련된 분할 정보를 파싱한다(S710). 여기서 상기 부호화된 영상 데이터의 블록은 QTBT 블록 파티셔닝 구조에 따라 복수의 분할 블록으로 분할되어 있으며, 상기 QTBT 블록 파티셔닝 구조는 쿼드트리의 리프 노드로부터 바이너리트리가 루트되는 구조이다. 영상 복호화 장치는 상기 분할 정보를 이용하여 상기 QTBT의 리프 노드들을 결정하면서, QTBT의 각 리프 노드별로 상기 부호화된 영상 데이터의 블록을 복호화한다(S720). 7 is a flowchart illustrating an exemplary operation in which an image decoding apparatus decodes an image. In the example of FIG. 7 , the image decoding apparatus parses a block of encoded image data from a bitstream and segmentation information related to the block of image data ( S710 ). Here, the coded image data block is divided into a plurality of divided blocks according to a QTBT block partitioning structure, and the QTBT block partitioning structure is a structure in which a binary tree is rooted from a leaf node of a quadtree. The image decoding apparatus decodes the encoded image data block for each leaf node of the QTBT while determining the leaf nodes of the QTBT using the division information (S720).
이하에 개시된 기법들은 도 6의 S620 단계에 적용되는 QTBT 블록 파티션 정보를 시그널링하는 기법과, 도 7의 S720 단계에 적용되는 QTBT 블록 파티션 정보로부터 블록 파티셔닝을 결정하는 기법에 관한 것이다. 본 개시의 기법들은 예를 들어, 도 2 및 도 5에 대해 도시되고 기술된 영상 부호화 장치 및 영상 복호화 장치에 의해 수행될 수 있다. 즉, 일 예에서, 도 2에 대해 기술된 부호화부는 영상 데이터의 블록을 부호화하기 위해 블록 파티셔닝을 결정할 때 이하에 설명되는 소정의 기법들을 수행할 수도 있다. 다른 예에서, 도 5에 대해 기술된 복호화부는 영상 데이터의 블록을 복호화하기 위해 블록 파티셔닝을 결정할 때 아래에 기술된 소정의 기법들을 수행할 수도 있다. 상기 QTBT 블록 파티셔닝은 CTU를 CU들로 파티셔닝하는데 사용될 수 있다. 즉, QTBT의 루트 노드(root node)는 CTU 일 수 있으며, QTBT의 리프 노드는 CU일 수 있다.Techniques disclosed below relate to a technique for signaling QTBT block partition information applied to step S620 of FIG. 6 and a technique for determining block partitioning from QTBT block partition information applied to step S720 of FIG. 7 . The techniques of the present disclosure may be performed by, for example, the image encoding apparatus and the image decoding apparatus illustrated and described with respect to FIGS. 2 and 5 . That is, in an example, the encoder described with reference to FIG. 2 may perform predetermined techniques described below when determining block partitioning to encode a block of image data. In another example, the decoder described with reference to FIG. 5 may perform predetermined techniques described below when determining block partitioning to decode a block of image data. The QTBT block partitioning may be used to partition a CTU into CUs. That is, a root node of QTBT may be a CTU, and a leaf node of QTBT may be a CU.
이제, 도 8 내지 도 10을 참조하여, 부호화 장치가 CTU를 복수의 CU로 분할한 분할 정보를 시그널링하는 방식과, 이에 대응하여, 복호화 장치가 시그널링된 분할 정보를 이용하여 CTU를 복수의 CU로 분할하는 파티셔닝을 결정하는 실시예들을 설명한다. Now, with reference to FIGS. 8 to 10 , a scheme in which an encoding device signals partition information obtained by dividing a CTU into a plurality of CUs, and correspondingly, a CTU into a plurality of CUs by using the signaled partition information by a decoding device Embodiments for determining partitioning to divide will be described.
제1 first 실시예Example
QTBT 구조에서, 루트 노드인 CTU는 먼저 QT 구조로 분할될 수 있다. 부호화 장치는 QTBT의 루트 노드가 QT 구조로 분할되는지 여부를 지시하기 위해 제1 플래그(QT 분할 플래그, QT_split_flag)를 사용한다. 예컨대, 제1 플래그 = 1은 루트 노드가 동일 크기의 네 개의 블록으로 분할됨을 나타내며, 제1 플래그 = 0은 루트 노드가 QT 분할되지 않음을 의미한다. 각 노드들의 QT 분할은 재귀적으로 반복될 수 있다. QT 분할되지 않는 블록들은 BT 분할이 수행될 수 있다. 부호화 장치는 어떤 블록이 BT 구조로 분할되는지 여부를 지시하기 위해 제2 플래그(BT 분할 플래그, BT_split_flag)를 추가로 사용한다. BT 분할은 복수의 분할 타입을 가질 수 있다. 이 경우, 블록이 BT 구조로 분할되면, 부호화 장치는 해당 블록의 BT 분할 타입을 지시하는 분할 타입 정보를 추가로 사용한다.In the QTBT structure, a CTU, which is a root node, may first be divided into a QT structure. The encoding apparatus uses a first flag (QT split flag, QT_split_flag) to indicate whether the root node of QTBT is split into a QT structure. For example, the first flag = 1 indicates that the root node is divided into four blocks of the same size, and the first flag = 0 means that the root node is not QT divided. The QT division of each node may be repeated recursively. Blocks that are not QT partitioned may be BT partitioned. The encoding apparatus additionally uses a second flag (BT split flag, BT_split_flag) to indicate whether a block is split into a BT structure. The BT partition may have a plurality of partition types. In this case, when a block is divided into a BT structure, the encoding apparatus additionally uses division type information indicating a BT division type of the corresponding block.
도 8은 CTU의 QTBT 분할 구조의 일례와 이를 트리 구조로 나타내는 도면이다. 도 8에서 실선은 QT 구조에 의한 분할을, 점선은 BT 구조에 의한 분할을 나타낸다. 도 8에서는 BT 분할이 두 가지 분할 타입 즉, 해당 노드의 블록을 동일 크기의 두 개 블록으로 가로로 분할하는 타입과 세로로 분할하는 타입이 존재하는 것으로 가정하고 있음에 유의한다.8 is a diagram illustrating an example of a QTBT division structure of a CTU and a tree structure thereof. In FIG. 8 , the solid line indicates division by the QT structure, and the dotted line indicates division by the BT structure. Note that in FIG. 8 , it is assumed that there are two types of BT division, that is, a type in which a block of a corresponding node is divided horizontally into two blocks of the same size and a type in which a block of a corresponding node is divided vertically.
도 8에 예시된 QTBT 분할 구조에서, QTBT의 루트 노드(root node)에 해당하는 CTU는 심도 1에 속하는 네 개의 자식 노드로 분할되어 있다. 이에 따라 부호화 장치는 CTU가 QT 분할됨을 지시하는 QT 분할 플래그(QT_split_flag = 1)를 부호화한다. 심도 1의 첫 번째 노드에 해당하는 블록은 더 이상 QT에 의해 분할되지 않고, BT 분할되어 있으며, 그 BT 분할 타입은 세로 타입이다. 따라서, 부호화 장치는 심도 1의 첫 번째 노드에 해당하는 블록에 대해, 해당 블록이 QT 분할되지 않음을 지시하는 QT 분할 플래그(QT_split_flag) = 0과, 해당 블록이 BT 분할됨을 지시하는 BT 분할 플래그(BT_split_flag) = 1과, 해당 블록의 BT 분할 타입이 세로 타입임을 지시하는 BT 분할 타입 정보 1를 부호화한다. In the QTBT partition structure illustrated in FIG. 8 , a CTU corresponding to a root node of QTBT is partitioned into four child nodes belonging to
도 8에서, 심도 2의 첫 번째 노드에 해당하는 블록은 BT 분할된 부모 노드(즉, 심도 1의 첫 번째 노드)의 자식 노드로서, 재차 BT 분할되어 있다. BT 분할은 재귀적으로 반복될 수 있으나, BT 분할된 노드의 자식 노드들은 다시 QT 분할되지는 않음에 유의한다. 따라서, BT 분할된 노드의 자식노드들에 대해 분할정보를 생성함에 있어서, 해당 블록이 QT 분할되지 않음을 명시적으로 시그널링할 필요가 없다. 예컨대, 도 8에서, 심도 2의 첫 번째 노드에 해당하는 블록의 분할 정보를 시그널링함에 있어서, 부호화 장치는 QT 분할 플래그(QT_split_flag) 생략하고, BT 분할 플래그(BT_split_flag) = 1과 BT 분할 타입이 세로 타입임을 지시하는 BT 분할 타입 정보 1를 부호화한다.In FIG. 8 , a block corresponding to the first node of
도 8에서, 심도 3의 첫 번째 노드에 해당하는 블록은 BT 분할된 부모 노드(즉, 심도 2의 첫 번째 노드)의 자식 노드로서, 더 이상 BT 분할되어 있지 않다. 따라서, 부호화 장치는 해당 블록이 BT 분할되지 않음을 지시하는 BT 분할 플래그(BT_split_flag) = 0만을 부호화한다.In FIG. 8 , a block corresponding to the first node of
그 결과, 깊이 우선 스캔(Depth-First Search) 방식으로 도 8의 분할 구조를 기록하면, 다음과 같이, 총 34 bits가 필요하다. 여기서, 밑줄 표시된 비트는 BT 분할에 관한 것이고, 나머지 비트들은 QT 분할에 관한 것이다.As a result, when the division structure of FIG. 8 is recorded using a depth-first scan method, a total of 34 bits are required as follows. Here, the underlined bits relate to the BT partition, and the remaining bits relate to the QT partition.
1 (One (
QTBT의QTBT's
리프leaf
노드) 0 node) 0
11 1111 11
0 0 0 0 0 0
(심도 1의 첫 번째 노드와 이에 (The first node of
이제, 본 실시예에서 부호화 장치로부터 시그널링된 분할 정보를 이용하여, 복호화 장치가, CTU를 복수의 CU로 분할하는 파티셔닝을 결정하는 방식을 설명한다.Now, a description will be given of a method in which the decoding apparatus determines partitioning for dividing a CTU into a plurality of CUs by using the partitioning information signaled from the encoding apparatus in the present embodiment.
복호화 장치는 먼저 QT의 분할과 관련된 제1 플래그(QT_split_flag)를 추출하여, 제1 플래그가 QT 분할을 지시하면 대응하는 노드를 하위 심도의 네 개의 노드로 분할한다. 그리고, QT의 리프 노드에 해당하는 노드에 대해서는 BT의 분할과 관련된 제2 플래그(BT_split_flag) 및 분할 타입 정보를 추출하여 해당 리프 노드를 BT 구조로 분할한다.The decoding apparatus first extracts a first flag (QT_split_flag) related to QT splitting, and when the first flag indicates QT splitting, the corresponding node is split into four nodes of lower depth. And, for a node corresponding to a leaf node of QT, a second flag (BT_split_flag) related to BT splitting and split type information are extracted and the corresponding leaf node is split into a BT structure.
도 8의 블록 분할 구조를 예로 들면, 복화화 장치는 QTBT 구조의 최상위 심도의 노드에 대응하는 QT 분할 플래그(QT_split_flag)를 추출한다. 추출된 QT 분할 플래그(QT_split_flag)의 값은 1이므로, 최상위 심도의 노드는 하위 심도(QT의 심도 1)의 네 개의 노드로 분할된다. 그리고, 심도 1의 첫 번째 노드에 대한 QT 분할 플래그(QT_split_flag)를 추출한다. 추출된 QT 분할 플래그(QT_split_flag) 값은 0이므로, 심도 1의 첫 번째 노드는 더 이상 QT 구조로 분할되지 않는다. Taking the block split structure of FIG. 8 as an example, the decoding apparatus extracts a QT split flag (QT_split_flag) corresponding to a node of the highest depth of the QTBT structure. Since the extracted value of the QT split flag (QT_split_flag) is 1, the node of the highest depth is divided into four nodes of the lower depth (
QT의 심도 1의 첫 번째 노드는 QT의 리프 노드가 되므로, QT의 심도 1의 첫 번째 노드를 BT의 루트 노드로 하는 BT로 진행한다. BT의 루트 노드(즉, 심도 0)에 대응하는 BT 분할 플래그(BT_split_flag)를 추출한다. BT 분할 플래그(BT_split_flag)는 1이므로, BT의 루트 노드는 심도 1의 두 개의 노드로 분할된다. BT의 루트 노드가 분할되므로, BT의 루트 노드에 대응하는 블록이 세로로 분할되는지 아니면 가로로 분할되는지 여부를 지시하는 분할 타입 정보를 추출한다. 분할 타입 정보가 1이므로, BT의 루트 노드에 대응하는 블록은 세로로 분할된다. 이후, BT의 루트 노드로부터 분할된 심도 1의 첫 번째 노드에 대한 BT 분할 플래그(BT_split_flag)를 추출한다. BT 분할 플래그(BT_split_flag)가 1이므로, 심도 1의 첫 번째 노드의 블록의 분할 타입 정보를 추출한다. 심도 1의 첫 번째 노드의 블록의 분할 타입 정보가 1이므로 심도 1의 첫 번째 노드의 블록은 세로로 분할된다. 이후, BT의 루트 노드로부터 분할된 심도 1의 두 번째 노드의 BT 분할 플래그(BT_split_flag)를 추출한다. BT 분할 플래그(BT_split_flag)가 0이므로, 더 이상 BT에 의해 분할되지 않는다.Since the first node of
이렇게, 복호화부(510)는 먼저 QT 분할 플래그(QT_split_flag)를 반복적으로(recursively) 추출하여 CTU를 QT 구조로 분할한다. 그리고 QT의 리프 노드에 대해서는 BT 분할 플래그(BT_split_flag)를 추출하고, BT 분할 플래그(BT_split_flag)가 분할을 지시하면 분할 타입 정보를 추출한다. 이러한 방식을 통해 복호화 장치는 CTU가 도 8의 (a)와 같은 구조로 부호화 장치에 의해 분할되었음을 확인할 수 있다.In this way, the
제2 second 실시예Example
CTU 사이즈가 커짐에 따라, QTBT 분할 구조에서, 분할된 블록들의 사이즈가 일정 수준 이하로 작아질 때까지 모든 노드들이 재차 QT 분할될 가능성이 높다. 전술한 제1 실시예에 따르면, QT 분할이 반복되는 횟수가 증가함에 따라, QT 분할 플래그를 이용하여 이들 QT 분할 정보를 표현하는 데 필요한 비트수는 4의 n승으로 증가하게 된다. 본 실시예는, 최상위 심도(즉, depth 0)부터 어느 하위 심도까지 모든 노드가 공통적으로 QT 분할되는 경우에, 이들 노드들의 QT 분할 정보를 줄이는 데 목적이 있다. As the CTU size increases, in the QTBT partition structure, it is highly likely that all nodes will be QT partitioned again until the size of the partitioned blocks becomes smaller than a certain level. According to the above-described first embodiment, as the number of times QT division is repeated increases, the number of bits required to express these QT division information using the QT division flag increases to the nth power of 4. This embodiment aims to reduce QT partitioning information of all nodes from the highest depth (ie, depth 0) to a certain lower depth in common QT partitioning.
본 실시예에서, 분할된 블록이 어느 심도에 이를 때까지 루트 노드가 재귀적으로 QT 분할되는 경우에, 부호화 장치는, QT 분할 플래그를 이용하여 이들 QT 분할 정보를 표현하는 대신에, 그 심도를 특정하는 심도 정보를 시그널링할 수 있다.In the present embodiment, in the case where the root node is recursively QT-divided until the divided block reaches a certain depth, the encoding device uses the QT split flag to express these QT split information instead of expressing the depth. The specified depth information can be signaled.
부호화 장치는 상기 QTBT 분할 구조의 심도들 중에서 QT의 리프 노드가 존재하는 가장 상위의 심도를 나타내는 심도 정보를 시그널링할 수 있다. 이하에서는, 상기 QTBT 분할 구조의 심도들 중에서 QT의 리프 노드가 존재하는 가장 상위의 심도를 '최상위 QT 리프노드 심도'로 지칭할 수 있다. 예를 들어, '최상위 QT 리프노드 심도 = 2' 라는 것은, QTBT의 최상위 심도(0)에 속하는 QTBT의 루트 노드가 QT 분할되고, 루트 노드의 (심도 1에 속하는) 4개의 자식 노드들도 각각 QT 분할됨을 의미하고, 나아가 심도 2에 속하는 노드들 중 적어도 일부는 QT 분할되지 않는 QT의 리프임을 의미한다. 즉, 최상위 QT 리프노드 심도 = 2의 QTBT 분할 구조에서, 심도 2에 속하는 노드들 중 일부는 BT 분할되거나, QT 분할도 BT 분할도 되지 않는다. 따라서, 상기 심도 정보는 상기 QTBT 파티셔닝 구조에서 루트 노드로부터 상기 최상위 QT 리프노드 심도에 속하는 노드들의 부모 노드까지의 QT 분할 정보로서 기능할 수 있다.The encoding apparatus may signal depth information indicating the highest depth in which a leaf node of QT exists among the depths of the QTBT split structure. Hereinafter, the highest depth in which a leaf node of QT exists among the depths of the QTBT partition structure may be referred to as a 'topmost QT leaf node depth'. For example, 'top QT leaf node depth = 2' means that the root node of QTBT belonging to the highest depth (0) of QTBT is QT partitioned, and 4 child nodes (belonging to depth 1) of the root node are also each This means that QT is split, and further, at least some of the nodes belonging to
상기 심도 정보는, 예컨대, 절삭된 유너리(truncated unary) 방식으로 표기될 수 있다. 심도 정보는 CTU Header에 표현될 수 있다. 심도(depth) 별 예시적인 코드워드(codeword)는 다음과 같다.The depth information may be expressed in, for example, a truncated unary method. Depth information may be expressed in the CTU Header. Exemplary codewords for each depth are as follows.
위와 같이 최상위 QT 리프노드 심도를 사용하는 경우에, 루트 노드로부터 반복되는 QT 구조는 너비 우선 스캔(Breath First Scan) 방식으로 표현이 가능하고, 나머지 하위 QT나 BT는, 실시예 1과 유사하게, QT 분할 플래그, BT 분할 플래그 및 BT 분할 타입 정보를 이용하여 깊이 우선 스캔(Depth First Scan) 방식으로 표현이 가능하다. In the case of using the highest QT leaf node depth as above, the QT structure repeated from the root node can be expressed by a breath first scan method, and the remaining lower QTs or BTs are similar to Example 1, It can be expressed in a Depth First Scan method using the QT division flag, the BT division flag, and the BT division type information.
도 8의 예시적인 QTBT 분할 구조는 루트 노드가 QT 분할되고, 심도 1의 첫 번째 노드와 두 번째 노드와 네번째 노드가 더 이상 QT 분할되지 않는, QT의 리프 노드들이다. 따라서, 도 8의 예시적인 QTBT 분할 구조에서 최상위 QT 리프 노드 심도는 1이다. 도 8의 QTBT 분할 구조를 표현함에 있어서, 최상위 QT 리프노드 심도를 표 1의 코드워드를 이용하여 별도로 표기하면, 다음과 같이, 총 35 bits가 필요하다. 여기서, 밑줄 표시된 비트는 BT 분할에 관한 것이고, 나머지 비트들은 QT 분할에 관한 것이다.The exemplary QTBT partitioning structure of FIG. 8 is leaf nodes of QT, in which the root node is QT partitioned, and the first node, the second node, and the fourth node of
1 0 (최상위 QT 1 0 (top QT
리프노드leaf node
심도) 0 depth) 0
11 1111 11
0 0 0 0 0 0
(심도 1의 첫 번째 노드와 이에 (The first node of
최상위 QT 리프노드 심도가 1인 도 8의 예시적인 분할 구조를 표현함에 있어서, 제2 실시예의 방식에 따르면 제1 실시예에 비해 1 bit가 추가로 소요됨을 알 수 있다. 그러나 최상위 QT 리프노드 심도가 2인 경우, 제1 실시예는 심도 0 및 심도 1의 노드들의 QT 분할 플래그들을 표현하기 위해 1 + 4 = 5 bit를 필요로 하지만, 제2 실시예는 공통 QT의 심도를 나타내는 3 bits (표 1의 “110”)로 표현이 가능하다. 또한, 최상위 QT 리프노드 심도가 3인 경우, 제1 실시예는 심도 0, 심도 1 및 심도 2의 노드들의 QT 분할 플래그들을 표현하기 위해 1 + 4 + 16 = 21 bits를 필요로 하지만, 제2 실시예의 경우 최상위 QT 리프노드 심도를 나타내는 3 bits (표 1의 “111”)로 표현이 가능하다. 즉, 최상위 QT 리프노드 심도가 증가함에 따라, QT는 4의 n승으로 증가하기 때문에, 공통으로 쓰이는 QT의 심도를 깊이 우선 방식이 아닌 심도로만 표기하는 경우 데이터량을 절감할 수 있다. CTU 사이즈가 256x256 또는 128x128로 커짐에 따라, 분할된 블록의 사이즈가 32x32 또는 16x16로 될 때 까지는 모든 노드들이 반복적으로 QT 분할될 가능성이 높다는 점에 유의하라. In expressing the exemplary partition structure of FIG. 8 in which the highest QT leaf node depth is 1, it can be seen that according to the method of the second embodiment, 1 bit is additionally required compared to that of the first embodiment. However, when the highest QT leaf node depth is 2, the first embodiment requires 1 + 4 = 5 bits to express the QT split flags of the nodes of
위와 같이, QTBT 블록 파티셔닝 구조에서 QT 분할 구조를 표현함에 있어서, 심도 정보로 시그널링하는 기법은 슬라이스(Slice), 픽쳐(Picture), 혹은 시퀀스(Sequence) 레벨로 확장될 수 있다. 예컨대, 하나의 슬라이스(Slice)에 포함된 모든 CTU들이, 공통적으로, 최상위 심도부터 어느 심도까지의 모든 노드들이 재귀적으로 QT 분할되는 경우에, (예컨대, 표 1과 같은 code word를 사용하여) 그 심도를 Slice Header에 표현할 수 있다. Slice Header에 표현된 심도는 해당 Slice에 포함된 모든 CTU들에 대해, 최상위 심도부터 Slice Header에 표현된 심도 사이의 존재하는 모든 노드들에 대한 QT 분할 정보로서 기능할 수 있다. 나머지 하위 QT나 BT는, 실시예 1과 유사하게, QT 분할 플래그, BT 분할 플래그 및 BT 분할 타입 정보를 이용하여 표현될 수 있다.As described above, in expressing the QT partition structure in the QTBT block partitioning structure, the signaling technique with depth information may be extended to a slice, a picture, or a sequence level. For example, when all CTUs included in one slice are QT-divided recursively from the highest depth to a certain depth in common, (eg, using a code word as shown in Table 1) The depth can be expressed in the Slice Header. The depth expressed in the Slice Header may function as QT partition information for all nodes existing between the highest depth and the depth expressed in the Slice Header for all CTUs included in the corresponding Slice. The remaining lower QTs or BTs may be expressed using the QT split flag, the BT split flag, and the BT split type information, similarly to the first embodiment.
이해를 돕기 위해, 4개의 CTU로 구성된 Slice에 대해 예시적으로 설명하면, 1번 CTU의 최상위 QT 리프노드 심도가 3이고, 2번 CTU의 최상위 QT 리프노드 심도가 2이고, 3번 CTU의 최상위 QT 리프노드 심도가 4이며, 4번 CTU의 최상위 QT 리프노드 심도가 3이라고 가정하자. 이 경우, 4개의 CTU들은 심도 2까지는 모두 동일한 형태로 분할된다. 즉, 모든 CTU들은 공통적으로 분할된 블록이 심도 2에 이를 때까지 모든 노드들이 재귀적으로 QT 분할된다. 따라서, 부호화 장치는 Slice Header에, 해당 Slice의 모든 CTU들이 심도 2까지 QT분할됨을 나타내는 정보를 표현할 수 있다. For better understanding, if a Slice consisting of 4 CTUs is exemplarily described, the highest QT leaf node depth of
유사하게, 하나의 Picture에 포함된 모든 CTU들의 QTBT 분할 구조에서, 어느 심도까지 모든 노드들이 재귀적으로 QT 분할되는 경우에, 그 심도를 픽처-레벨 헤더 정보에(예를 들어, 픽처 파라미터 세트들(picture parameter set; PPS) 내에) 표현할 수 있다. 나아가, 하나의 Sequence에 포함된 모든 CTU들의 QTBT 분할 구조에서, 어느 심도까지 모든 노드들이 재귀적으로 QT 분할되는 경우에, 그 심도를 시퀀스-레벨 헤더 정보에(예를 들어, 시퀀스 파라미터 세트(sequence parameter set; SPS) 내에) 표현할 수 있다. Similarly, in the QTBT partition structure of all CTUs included in one Picture, when all nodes are recursively QT partitioned up to a certain depth, the depth is included in the picture-level header information (eg, picture parameter sets). (in the picture parameter set; PPS). Furthermore, in the QTBT partition structure of all CTUs included in one sequence, when all nodes are recursively QT partitioned to a certain depth, the depth is included in the sequence-level header information (eg, a sequence parameter set (sequence in a parameter set (SPS)).
이와 같이 픽쳐-레벨 헤더 정보, 시퀀스-레벨 헤더 정보, 시퀀스-레벨 헤더 정보에 표현되는 심도는, 이하에서 “QT 공통 심도”로 지칭된다. QT 공통 심도는 해당 레벨에 포함된 모든 CTU에 대해 QTBT 분할 정보의 일부로 사용된다. 표 2에는 SPS(Sequence Parameter Set)에 QT 공통 심도를 표기하는 예시적인 신택스 요소가 표현되어 있다. 표 2와 같이, QT 공통 심도를 시그널링 하기 위해, QT 공통 심도가 존재함을 나타내는 플래그(QT_depth_signal_flag)와 QT 공통 심도를 특정하는 파라미터(QT_comm_depth_minus3)가 사용될 수 있다. 유사한 신택스 요소가 PPS(Picture Parameter Set) 혹은 Slice Header에 포함될 수 있다.As described above, the depth expressed in the picture-level header information, the sequence-level header information, and the sequence-level header information is referred to as a “QT common depth” hereinafter. The QT common depth is used as part of the QTBT partitioning information for all CTUs included in the corresponding level. Table 2 shows exemplary syntax elements indicating the QT common depth in a sequence parameter set (SPS). As shown in Table 2, in order to signal the QT common depth, a flag (QT_depth_signal_flag) indicating the existence of the QT common depth and a parameter (QT_comm_depth_minus3) specifying the QT common depth may be used. A similar syntax element may be included in a picture parameter set (PPS) or a slice header.
다른 일부 예시들에서, 픽쳐-레벨 헤더 정보, 시퀀스-레벨 헤더 정보, 혹은 시퀀스-레벨 헤더 정보에 표현되는 QT 공통 심도는, 해당 레벨의 모든 CTU들이 실제로 그 QT 공통 심도까지 동일한 형태로 분할되는지 여부와 관계없이, 사전에 결정된 디폴트(default) 값일 수 있다. 이 경우, 부호화 장치는 SPS, PPS, 혹은 Slice에 디폴트 설정된 QT 공통 심도와 각 CTU의 최상위 QT 리프노드 심도 간의 차이값을 추가적으로 시그널링할 수 있다. 디폴트 값은 해당 레벨에 포함된 CTU들의 최상위 QT 리프노드 심도와 일치할 가능성과 관련된 통계에 기초하여 사전에 결정된 것일 수 있다. CTU 사이즈가 256x256 또는 128x128로 커짐에 따라, QT의 리프 노드의 사이즈가 32x32 또는 16x16로 될 때 까지는 모든 노드들이 QT 분할될 가능성이 높다는 점을 고려할 때, 심도 3 혹은 심도 4를 디폴트 값으로 설정하는 것이 비트 절감에 효율적일 수 있다. 또한, 디폴트 값은 해당 레벨에 포함된 모든 CTU들의 최상위 QT 리프노드 심도의 평균에 기초하여 결정될 수도 있다.In some other examples, the QT common depth expressed in the picture-level header information, the sequence-level header information, or the sequence-level header information is determined whether all CTUs of the corresponding level are actually divided in the same form up to the QT common depth. Regardless of , it may be a predetermined default value. In this case, the encoding apparatus may additionally signal a difference value between the QT common depth defaulted to SPS, PPS, or Slice and the depth of the highest QT leaf node of each CTU. The default value may be predetermined based on statistics related to the likelihood of matching the depth of the highest QT leaf node of CTUs included in the corresponding level. Considering that as the CTU size increases to 256x256 or 128x128, all nodes are highly likely to be QT split until the size of the leaf node of QT becomes 32x32 or 16x16, to set
이제, 본 실시예에서 부호화 장치로부터 시그널링된 분할 정보를 이용하여, 복호화 장치가, CTU를 복수의 CU로 분할하는 파티셔닝을 결정하는 방식을 설명한다.Now, a description will be given of a method in which the decoding apparatus determines partitioning for dividing a CTU into a plurality of CUs by using the partitioning information signaled from the encoding apparatus in the present embodiment.
복호화 장치는 먼저 QTBT 구조에서 쿼드트리의 리프 노드가 적어도 하나 존재하는 심도(depth)들 중 가장 상위의 심도(즉, 최상위 QT 리프노드 심도)를 나타내는 심도 정보를 부호화된 비트스트림으로부터 추출한다. 상기 최상위 QT 리프노드 심도를 나타내는 심도 정보를 이용하여, 복호화 장치는 상기 QTBT의 루트 노드로부터 상기 최상위 QT 리프노드 심도에 속하는 노드들의 부모 노드까지의 모든 노드들에 대해 QT 분할을 수행한다. 예컨대, 최상위 QT 리프노드 심도가 2인 경우, 루트 노드를 QT 분할하고, 루트 노드의 (심도 1에 속하는) 4개의 자식 노드들을 각각 QT 분할한다. The decoding apparatus first extracts, from the encoded bitstream, depth information indicating the highest depth (ie, the highest QT leaf node depth) among the depths in which at least one leaf node of the quadtree exists in the QTBT structure. Using the depth information indicating the depth of the highest QT leaf node, the decoding apparatus performs QT division on all nodes from the root node of the QTBT to the parent node of the nodes belonging to the highest QT leaf node depth. For example, when the highest QT leaf node has a depth of 2, the root node is QT partitioned, and 4 child nodes (belonging to depth 1) of the root node are QT partitioned, respectively.
최상위 QT 리프노드 심도의 정의에 의해, 상기 최상위 QT 리프노드 심도에 속하는 노드들 중 적어도 일부는 QT 분할되지 않는다. 또한, 상기 최상위 QT 리프노드 심도에 속하는 노드들 중 일부는 BT 분할되거나, QT분할도 BT 분할도 되지 않는다. 다시 말해, 상기 최상위 QT 리프노드 심도에 속하는 노드들 중 일부는 추가로 QT 분할될 수도, BT 분할될 수도, (QT 분할도 BT 분할도 되지 않는) QTBT의 리프 노드일 수도 있다. 따라서, 상기 최상위 QT 리프노드 심도에 속하는 노드들부터는 전술한 제1실시예와 실질적으로 동일한 방식으로 분할 구조를 결정하게 된다. 즉, 복호화부(510)는 상기 최상위 QT 리프노드 심도에 속하는 노드들에 대해, QT의 분할과 관련된 제1 플래그(QT_split_flag)를 추출한다. 제1플래그가 QT 분할됨을 지시(QT_split_flag = 1)하면, 대응되는 노드를 재차 QT 분할한다. 제1플래그가 QT 분할되지 않음을 지시(QT_split_flag = 0)하면, BT 분할과 관련된 제2 플래그(BT_split_flag)를 추출한다. 제2플래그가 BT 분할됨을 지시(BT_split_flag = 1)하면, BT 분할 타입 정보를 추가로 추출하여, 추출된 BT 분할 타입 정보에 따라 대응되는 노드를 BT 분할한다. 제2플래그가 QT 분할되지 않음을 지시(BT_split_flag = 0)하면 대응되는 노드는 더 이상 분할되지 않고, QTBT의 리프 노드(즉, CU)로 결정된다.By definition of the highest QT leaf node depth, at least some of the nodes belonging to the highest QT leaf node depth are not QT split. In addition, some of the nodes belonging to the depth of the highest QT leaf node are BT partitioned or neither QT partitioned nor BT partitioned. In other words, some of the nodes belonging to the highest QT leaf node depth may be further QT split, BT split, or QTBT leaf nodes (neither QT split nor BT split). Accordingly, from the nodes belonging to the highest QT leaf node depth, the partition structure is determined in substantially the same manner as in the first embodiment. That is, the
나아가, 전술한 바와 같이, QT 공통 심도를 시그널링하는 기법이 Slice, Picture, 혹은 Sequence 레벨에 적용된 경우에, 복호화 장치는 비트스트림을 파싱하여 SPS(Sequence Parameter Set), PPS(Picture Parameter Set) 혹은 Slice Header에 표현된 심도정보를 추출한다. 추출된 심도정보를 이용하여, 복호화 장치는 심도정보가 지시하는 심도에 이를 때까지 모든 노드들을 재귀적으로 QT 분할할 수 있다. Furthermore, as described above, when the technique of signaling the QT common depth is applied to the Slice, Picture, or Sequence level, the decoding apparatus parses the bitstream to obtain a Sequence Parameter Set (SPS), Picture Parameter Set (PPS) or Slice Extracts the depth information expressed in the header. Using the extracted depth information, the decoding apparatus may recursively perform QT partitioning of all nodes until the depth indicated by the depth information is reached.
제3 실시예third embodiment
전술한 바와 같이, QTBT 분할 구조에서 쿼드트리의 리프 노드는 BT 구조로 더 파티셔닝될 수 있다. BT에서는 복수의 분할 타입이 존재할 수 있으며, 예컨대 해당 노드의 블록을 동일 크기의 두 개 블록으로 가로로 분할하는 타입(즉, 대칭 수평 분할; symmetric horizontal splitting)과 세로로 분할하는 타입(즉, 대칭 수직 분할; symmetric vertical splitting) 두 가지가 존재할 수 있다. 본 실시예에서는 이러한 BT를 표현하는 비트량을 줄일 수 있는 기법을 제안한다. 본 실시예에서 제안하는 BT 분할 정보의 표현 기법은 제1 실시예 혹은 제2 실시예에 예시된 QT 분할 정보의 표현 기법과 함께 사용될 수 있다.As described above, the leaf nodes of the quadtree in the QTBT partition structure may be further partitioned into the BT structure. In BT, a plurality of splitting types may exist, for example, a type that horizontally splits the block of the corresponding node into two blocks of the same size (ie, symmetric horizontal splitting) and a type that splits vertically (ie, symmetrical) There may be two types of vertical splitting: symmetric vertical splitting. This embodiment proposes a technique capable of reducing the amount of bits expressing such BT. The expression technique of the BT partition information proposed in this embodiment may be used together with the expression technique of the QT partition information illustrated in the first embodiment or the second embodiment.
도 9은 하나의 CU에서 BT로 표현될 수 있는 가짓수를 도시한 도면이다.9 is a diagram illustrating the number of items that can be expressed as BT in one CU.
BT는 분할되는 경우 2 bits로 표현되는데, 첫번째 비트는 QT가 0인 이후 분할이 끝났는지(no split = 0) 혹은 BT가 시작됨(1)을 나타내고, 첫 번째 비트가 1인 경우 두 번째 비트는 BT의 분할 타입을 나타낸다. 예컨대, 0은 대칭 수평 분할을, 1은 대칭 수직 분할을 나타낸다. 부모 노드와 자식 노드의 가능한 조합을 고려하면, 부모 노드가 각각 대칭 수평 분할과 대칭 수직 분할로 나뉘어지는 경우에, 도 9과 같이, 자식 노드의 분할 방식은 각각 8가지로 구별된다. 여기서, QT 종료 후 BT가 시작되면, QT가 다시 반복되지 않는 것을 전제하고 있음에 유의한다. 즉, QT의 반복형태로 볼 수 있는, 부모 노드가 수평(상, 하)으로 나뉘고 자식 노드는 수직(좌, 우)으로 나뉘거나, 부모 노드가 수직(좌, 우)으로 나뉘고 자식 노드는 수평(상, 하)으로 나뉘는 것은 고려하지 않는다. 부모 노드와 자식 노드의 분할들의 조합을 고려할 경우 총 16가지 표현이 가능하다. 도 9에는 이들 조합들이, BT 분할 플래그와 BT 분할 타입 플래그를 이용하여, 4 bits ~ 6 bits으로 표현되어 있다. When BT is split, it is expressed as 2 bits. The first bit indicates whether the split ends after QT is 0 (no split = 0) or BT starts (1), and when the first bit is 1, the second bit is Indicates the division type of BT. For example, 0 indicates symmetric horizontal division and 1 indicates symmetric vertical division. Considering possible combinations of parent nodes and child nodes, when a parent node is divided into symmetric horizontal division and symmetric vertical division, respectively, as shown in FIG. 9 , 8 types of division methods of child nodes are distinguished. Note that, when BT is started after QT is finished, it is assumed that QT is not repeated again. That is, it can be seen as a repeating form of QT, in which the parent node is divided horizontally (top, bottom) and the child node is divided vertically (left, right), or the parent node is divided vertically (left, right) and the child node is horizontal (top, bottom) is not considered. When considering the combination of divisions of parent and child nodes, a total of 16 expressions are possible. In FIG. 9 , these combinations are expressed as 4 bits to 6 bits using the BT division flag and the BT division type flag.
도 9에서 수평 또는 수직으로 나뉜 부모 노드에서 자식 노드가 반복적으로 표현되는 점에 유의한다. 이에 착안하여, 본 발명은 부모 노드를 2 bits로 표현하고 자식 노드를 3 bits의 고정 길이(fixed length) 코드워드로 표현함으로써, 이들 부모 노드 및 자식 노드의 조합들을 표현하는 비트량을 줄이는 방식을 채용한다. 표 3에 예시적인 코드워드가 나열되어 있다. 부모 노드와 자식 노드가 같은 형태로 나눠지는 “10 10 10”와 “11 11 11”의 경우 리프 노드는 다르지만, 자식 노드를 특정 비트로 표기하면, 앞의 첫 두 비트(부모 노드의 2bit)로 분할 방법의 예측이 가능하다.Note that in FIG. 9 , child nodes are repeatedly expressed in parent nodes divided horizontally or vertically. Taking this into consideration, the present invention provides a method of reducing the amount of bits expressing combinations of these parent nodes and child nodes by expressing a parent node with 2 bits and a child node with a fixed length codeword of 3 bits. hire Table 3 lists example codewords. In the case of “10 10 10” and “11 11 11”, in which the parent and child nodes are divided in the same form, the leaf nodes are different, but if the child node is expressed as a specific bit, it is divided into the first two bits (2 bits of the parent node). method can be predicted.
001 to 110
111
예를 들어, 도 10와 같은 블록 분할 구조에 대해, 제1 실시예에서 설명한 방식에 따르면, 깊이 우선 방식으로 1 0 11 11 0 0 0 (1번 BT), 0 10 0 0 (2번 BT), 1 0 11 10 11 11 0 0 10 0 0 0 11 0 0 (3, 4번 BT) 00 00 0 10 10 0 0 10 0 0(5번 BT) 00 (총 52 bit)으로 표현될 수 있다. 본 실시예에서 제안하는 방식에 따라, 부모 노드(2 bits) + 자식 노드(3 bits)의 고정 비트로 표기할 경우, 1 0 11 101 (자식 노드 3 bits) 0 0 (1번 BT), 0 10 000 (2번 BT), 1 0 11 100 (3번 BT) 11 110 (4번 BT) 0 0 0 0 0 0 0 , 00 00 , 0 10 111 0 0 0 0 (5번 BT) 00 (총 50bit)으로 표현될 수 있다.For example, according to the method described in the first embodiment with respect to the block division structure as shown in FIG. 10, 1 0 11 11 0 0 0 (BT No. 1), 0 10 0 0 (BT No. 2) in the depth-first method. , 1 0 11 10 11 11 0 0 10 0 0 0 11 0 0 (
이상에서 설명한 제1 실시예 내지 제3 실시예에서, QTBT 구조에 의한 블록 분할에 대한 정보를 효율적으로 시그널링하기 위해, 다음의 정보가 추가로 사용될 수 있다. 이 정보들은 영상의 헤더 정보로서 부호화되는데, 예컨대 SPS (Sequence Parameter Set)이나 PPS (Picture Parameter Set)로 부호화될 수 있다.In the first to third embodiments described above, the following information may be additionally used to efficiently signal information on block division by the QTBT structure. This information is encoded as header information of an image, and may be encoded as, for example, a sequence parameter set (SPS) or a picture parameter set (PPS).
- CTU size: QTBT의 최상위 레이어, 즉, 루트 노드의 블록 크기- CTU size: block size of the top layer of QTBT, that is, the root node
- MinQTSize: QT에서 허용되는 리프 노드의 최소 블록 크기- MinQTSize: Minimum block size of leaf nodes allowed in QT
- MaxBTSize: BT에서 허용되는 루트 노드의 최대 블록 크기- MaxBTSize: Maximum block size of root node allowed in BT
- MaxBTDepth: BT에서 허용되는 최대 심도(Depth)- MaxBTDepth: The maximum depth allowed by BT (Depth)
- MinBTSize: BT에서 허용되는 리프 노드의 최소 블록 크기- MinBTSize: Minimum block size of leaf nodes allowed in BT
QT에서 MinQTSize와 동일한 크기를 가지는 블록은 더 이상 분할되지 않으며, 따라서 해당 블록에 대응하는 QT에 관한 분할 정보(제1 플래그)는 부호화되지 않는다. 또한, QT에서 MaxBTSize보다 큰 크기를 가지는 블록은 BT가 존재하지 않는다. 따라서, 해당 블록에 대응하는 BT에 관한 분할 정보(제2 플래그, 분할 타입 정보)는 부호화되지 않는다. 또한, BT의 해당 노드의 심도(depth)가 MaxBTDepth에 도달하면, 해당 노드의 블록은 더 이상 분할되지 않으며 해당 노드의 BT에 관한 분할 정보(제2 플래그, 분할 타입 정보) 또한 부호화되지 않는다. 또한, BT에서 MinBTSize와 동일한 크기를 가지는 블록은 더 이상 분할되지 않으며 BT에 관한 분할 정보(제2 플래그, 분할 타입 정보) 또한 부호화되지 않는다. 이렇게, QT와 BT의 루프나 리프 노드가 가질 수 있는 최대 또는 최소 블록 크기를 SPS (Sequence Parameter Set)이나 PPS (Picture Parameter Set) 등의 하이 레벨(high level)에서 정의함으로써, CTU의 분할 여부나 분할 타입을 지시하는 정보들에 대한 부호화량을 줄일 수 있다.In QT, a block having the same size as MinQTSize is no longer divided, and therefore, partition information (a first flag) regarding QT corresponding to the block is not coded. In addition, BT does not exist in a block having a size larger than MaxBTSize in QT. Accordingly, partition information (second flag, partition type information) on the BT corresponding to the block is not encoded. In addition, when the depth of the corresponding node of the BT reaches MaxBTDepth, the block of the corresponding node is not divided any more, and partition information (second flag, partition type information) about the BT of the corresponding node is also not encoded. In addition, a block having the same size as MinBTSize in BT is no longer divided, and division information (second flag, division type information) about BT is also not coded. In this way, by defining the maximum or minimum block size that a loop or leaf node of QT and BT can have at a high level such as SPS (Sequence Parameter Set) or PPS (Picture Parameter Set), whether the CTU is divided or not It is possible to reduce the amount of encoding for information indicating the partition type.
이와 같이, SPS 또는 PPS에 MinQTSize, MaxBTSize, MaxBTDepth, MinBTSize 등의 정보가 추가로 정의되어 있는 경우에는, 복호화 장치는 해당 정보를 추출하고 QT 및 BT에 대한 분할 정보를 추출할 때 이 정보를 반영할 수 있다.As such, when information such as MinQTSize, MaxBTSize, MaxBTDepth, and MinBTSize is additionally defined in the SPS or PPS, the decoding device extracts the corresponding information and reflects this information when extracting the partitioning information for QT and BT. can
예컨대, QT에서 MinQTSize 과 동일한 크기를 가지는 블록은 더 이상 분할되지 않는다. 따라서 복호화 장치는 해당 블록의 QT에 관한 분할 정보(QT 분할 플래그)를 비트스트림으로부터 추출하지 않으며(즉, 비트스트림에는 해당 블록의 QT 분할 플래그가 존재하지 않음), 그 값을 자동으로 0으로 설정한다. 또한, QT에서 MaxBTSize보다 큰 크기를 가지는 블록은 BT가 존재하지 않는다. 따라서, 복호화 장치는 QT에서 MaxBTSize보다 큰 크기의 블록을 가지는 리프 노드에 대한 BT 분할 플래그가 추출하지 않으며, BT 분할 플래그를 자동으로 0으로 설정한다. 또한, BT의 해당 노드의 심도(depth)가 MaxBTDepth에 도달하면, 해당 노드의 블록은 더 이상 분할되지 않는다. 따라서, 해당 노드의 BT 분할 플래그를 비트스트림으로부터 추출되지 않으며, 그 값을 자동으로 0으로 설정한다. 또한, BT에서 MinBTSize와 동일한 크기를 가지는 블록은 더 이상 분할되지 않는다. 따라서, 복호화 장치는 MinBTSize와 동일한 크기를 가지는 블록의 BT 분할 플래그를 비트스트림으로부터 추출되지 않으며, 그 값을 자동으로 0으로 설정한다.For example, in QT, a block having the same size as MinQTSize is no longer divided. Accordingly, the decoding apparatus does not extract QT-related partitioning information (QT partitioning flag) of the corresponding block from the bitstream (that is, the QT partitioning flag of the corresponding block does not exist in the bitstream), and automatically sets the value to 0 do. In addition, BT does not exist in a block having a size larger than MaxBTSize in QT. Accordingly, the decoding apparatus does not extract the BT split flag for a leaf node having a block size larger than MaxBTSize in QT, and automatically sets the BT split flag to 0. In addition, when the depth of the corresponding node of BT reaches MaxBTDepth, the block of the corresponding node is no longer divided. Therefore, the BT split flag of the corresponding node is not extracted from the bitstream, and its value is automatically set to 0. Also, a block having the same size as MinBTSize in BT is no longer divided. Accordingly, the decoding apparatus does not extract the BT split flag of a block having the same size as MinBTSize from the bitstream, and automatically sets the value to 0.
한편, 일부 예시들에서, CTU의 휘도(luma) 성분과 색차(chroma) 성분은 동일한 QTBT 구조로 분할될 수 있다. 다른 예시들에서, 휘도 성분과 색차 성분이 각각 별개의 QTBT 구조로 분할될 수 있다. 예컨대, I (Intra) 슬라이스의 경우에는 휘도 성분과 색차 성분이 서로 다른 QTBT 구조로 분할될 수도 있다. 즉, CTU를 휘도 CB(Coding Block)와 색차 CB로 분리하여 블록 파티셔닝을 수행하고, 블록 파티션 정보를 각 CB별로 생성하여 복호화 장치에 전달할 수 있다. 이 경우에 한 픽쳐 내의 CTU 중 휘도와 색차의 블록 파티션의 모양이 같다면, 동일한 블록 파티션 정보를 중복으로 전달하는 것이 되므로 비트 효율성이 떨어지게 된다. 이를 고려하여, 본 발명의 일부 예시에서는, CTU를 표현한 신택스(syntax)에 별도의 신택스(split_cb_flag_in_CTU)를 추가하여, 이 값이 0인 경우에는 복호화 장치에서 휘도 CB에 대한 블록 파티션 정보를 색차 CB의 블록 파티션 정보로써 사용하고, 이 값이 1인 경우에는 기존과 같이 서로 다른 블록 파티션 정보를 복화화 장치에 보낼 수 있다. 즉, QTBT를 포함한 휘도의 전체 블록 파티션 정보를 색차에서 그대로 활용할 수 있다.Meanwhile, in some examples, the luminance (luma) component and the chroma component of the CTU may be divided into the same QTBT structure. In other examples, the luminance component and the chrominance component may be divided into separate QTBT structures. For example, in the case of an I (Intra) slice, the luminance component and the chrominance component may be divided into different QTBT structures. That is, the CTU may be divided into a luminance coding block (CB) and a chrominance CB to perform block partitioning, and block partition information may be generated for each CB and transmitted to the decoding apparatus. In this case, if the shape of the block partition of the luminance and the chrominance among the CTUs in one picture is the same, the same block partition information is transmitted in duplicate, so that the bit efficiency decreases. In consideration of this, in some examples of the present invention, a separate syntax (split_cb_flag_in_CTU) is added to the syntax expressing the CTU, and when this value is 0, the decoding apparatus transmits block partition information for the luminance CB to the chrominance CB. It is used as block partition information, and when this value is 1, different block partition information can be sent to the decryption device as before. That is, the entire block partition information of the luminance including QTBT can be used as it is in the color difference.
또한, 색차 정보가 휘도 정보와 달리 세부적인 블록 파티션이 필요하지 않을 수 있다. 이를 고려하여, 일부 예시들에서, 휘도의 전체 블록 파티션 정보 중에서(즉, QTBT 파티션 정보 중에서) QT 파티션 정보만을 색차 CB의 블록 파티션 정보로 활용할 수 있다. 예컨대, CTU를 표현한 신택스(syntax)에 별도의 신택스 (split_cb_flag_for_QT_in_CTU)를 추가하여, 이 값이 0인 경우에는 복호화 장치에서 휘도에 대한 전체 블록 파티션 정보 중에서 QT 파티션 정보을 휘도 CB에 대한 QT 파티션 정보를 색차 CB의 QT 블록 파티션 정보로써 사용하고, 이 값이 1인 경우에는 기존과 같이 서로 다른 블록 파티션 정보를 복호화 장치에 보낼 수 있다.Also, unlike luminance information for color difference information, a detailed block partition may not be required. In consideration of this, in some examples, only QT partition information among all block partition information of luminance (ie, among QTBT partition information) may be used as block partition information of color difference CB. For example, a separate syntax (split_cb_flag_for_QT_in_CTU) is added to the syntax expressing CTU, and when this value is 0, the decoding apparatus uses QT partition information among all block partition information for luminance and QT partition information for luminance CB as color difference It is used as the QT block partition information of the CB, and when this value is 1, different block partition information can be sent to the decoding device as before.
제2실시예와 관련하여 설명한 바와 같이, QT의 QT 공통 심도가 SPS(Sequence Parameter Set), PPS(Picture Parameter Set) 및 Slice Header 중 어느 하나에 표현되는 경우에, 일부 예시에서, CTU 단위 내 휘도 및 색차에 대한 QT 공통 심도는 CTU 보다 상위에서 설정한(즉, SPS, PPS, 혹은 Slice Header에 설정한) QT 공통 심도를 그대로 참조할 수 있다. 다른 일부 예시들에서, CTU 단위 내 휘도 및 색차에 대한 QT 공통 심도는 CTU 보다 상위에서 설정한 QT 공통 심도와의 차이값으로 표기될 수 있다.As described in relation to the second embodiment, when the QT common depth of QT is expressed in any one of Sequence Parameter Set (SPS), Picture Parameter Set (PPS), and Slice Header, in some examples, luminance within the CTU unit And the QT common depth for color difference may refer to the QT common depth set higher than the CTU (ie, set in the SPS, PPS, or Slice Header) as it is. In some other examples, the QT common depth for luminance and chrominance within a CTU unit may be expressed as a difference value from the QT common depth set higher than the CTU.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea of this embodiment, and a person skilled in the art to which this embodiment belongs may make various modifications and variations without departing from the essential characteristics of the present embodiment. Accordingly, the present embodiments are intended to explain rather than limit the technical spirit of the present embodiment, and the scope of the technical spirit of the present embodiment is not limited by these embodiments. The protection scope of this embodiment should be interpreted by the following claims, and all technical ideas within the scope equivalent thereto should be interpreted as being included in the scope of the present embodiment.
Claims (15)
영상 데이터의 블록을 부호화하기 위한 QTBT(QuadTree plus BinaryTree) 블록 파티셔닝 구조를 결정하는 단계, 여기서 상기 QTBT 블록 파티셔닝 구조는 쿼드트리의 리프 노드(leaf node)로부터 바이너리트리가 루트된(rooted) 구조임; 및
상기 결정된 블록 파티셔닝 구조에 기초하여, 상기 영상 데이터의 블록과 상기 결정된 블록 파티셔닝 구조를 표현하는 분할 정보를 부호화하는 단계를 포함하고,
상기 분할 정보를 부호화하는 것은,
상기 결정된 블록 파티셔닝 구조에서, 쿼드트리의 리프 노드가 적어도 하나 존재하는 심도(depth)들 중 가장 상위의 심도(이하 “최상위 QT 리프노드 심도”로 지칭함)를 판단하는 단계; 및
상기 결정된 블록 파티셔닝 구조에서 루트 노드로부터 상기 최상위 QT 리프노드 심도에 속하는 노드들의 부모 노드까지의 쿼드트리 분할 정보로서, 상기 최상위 QT 리프노드 심도를 나타내는 심도 정보를 부호화하는 단계를 포함하는, 영상 데이터를 부호화하는 방법.A method of encoding image data, comprising:
determining a QTBT (QuadTree plus BinaryTree) block partitioning structure for encoding a block of image data, wherein the QTBT block partitioning structure is a structure in which a binary tree is rooted from a leaf node of the quadtree; and
encoding the block of the image data and partition information representing the determined block partitioning structure based on the determined block partitioning structure;
Encoding the segmentation information comprises:
determining, in the determined block partitioning structure, the highest depth (hereinafter, referred to as “the highest QT leaf node depth”) among depths in which at least one leaf node of the quadtree exists; and
In the determined block partitioning structure, as quadtree partition information from a root node to a parent node of nodes belonging to the highest QT leaf node depth, encoding depth information indicating the highest QT leaf node depth image data, How to encode.
상기 최상위 QT 리프노드 심도를 나타내는 심도 정보는,
절삭된 유너리(truncated unary) 코드워드로 표현되어, 상기 QTBT의 심도들 중에서 상기 최상위 QT 리프노드 심도를 특정하는 것임을 특징으로 하는, 영상 데이터를 부호화하는 방법.According to claim 1,
The depth information indicating the depth of the highest QT leaf node is,
A method of encoding image data, characterized in that it is expressed as a truncated unary codeword to specify the depth of the highest QT leaf node among the depths of the QTBT.
상기 바이너리트리는 부모 노드를 2개의 자식 노드로 분할하는 분할 타입들에 의해 정의되며, 상기 분할 타입들은 대칭 수평 분할 및 대칭 수직 분할을 포함하는, 영상 데이터를 부호화하는 방법.According to claim 1,
The binary tree is defined by division types that divide a parent node into two child nodes, wherein the division types include symmetric horizontal division and symmetric vertical division.
상기 분할 정보를 부호화하는 단계는,
상기 부모 노드의 분할과 상기 자식 노드의 분할의 가능한 조합들 중에서 어느 하나를 특정하는 방식으로, 상기 결정된 블록 파티셔닝 구조에서 바이너리트리를 표현하는 바이너리트리 분할 정보를 부호화하는 단계를 더 포함하는 것을 특징으로 하는, 영상 데이터를 부호화하는 방법.4. The method of claim 3,
The step of encoding the segmentation information comprises:
The method further comprises encoding binary tree partitioning information representing a binary tree in the determined block partitioning structure in a manner that specifies any one of possible combinations of partitioning of the parent node and partitioning of the child node. A method of encoding image data.
상기 부모 노드의 분할과 상기 자식 노드의 분할의 가능한 조합은,
상기 부모 노드의 분할을 나타내는 고정길이 코드워드와 상기 자식 노드의 분할을 나타내는 고정길이 코드워드로 구분되는 것을 특징으로 하는, 영상 데이터를 부호화하는 방법.5. The method of claim 4,
A possible combination of partitioning of the parent node and partitioning of the child node is:
A method for encoding image data, characterized in that the codeword is divided into a fixed-length codeword indicating division of the parent node and a fixed-length codeword indicating division of the child node.
상기 영상 데이터의 블록을 부호화하기 위한 QTBT 블록 파티셔닝 구조를 결정하는 단계는,
상기 영상 데이터의 블록의 휘도(luma) 성분과 색차(chroma) 성분에 대해 개별적으로 상기 QTBT 블록 파티셔닝 구조를 결정하는 단계를 더 포함하는 것을 특징으로 하는, 영상 데이터를 부호화하는 방법.According to claim 1,
Determining a QTBT block partitioning structure for encoding the block of image data comprises:
The method of encoding image data, further comprising: individually determining the QTBT block partitioning structure for a luma component and a chroma component of the block of the image data.
상기 분할 정보를 부호화하는 단계는,
상기 휘도 성분에 대해 결정된 QTBT 블록 파티셔닝 구조와 상기 색차 성분에 대해 결정된 QTBT 블록 파티셔닝 구조 간의 동일 여부를 나타내는 플래그를 부호화하는 단계; 및
상기 휘도 성분에 대해 결정된 QTBT 블록 파티셔닝 구조와 상기 색차 성분에 대해 결정된 QTBT 블록 파티셔닝 구조가 서로 동일한 경우에, 상기 휘도 성분에 대해 결정된 QTBT 블록 파티셔닝 구조와 상기 색차 성분에 대해 결정된 QTBT 블록 파티셔닝 구조 중 어느 하나만의 분할 정보를 부호화하는 단계
를 더 포함하는 것을 특징으로 하는, 영상 데이터를 부호화하는 방법.7. The method of claim 6,
The step of encoding the segmentation information comprises:
encoding a flag indicating whether the QTBT block partitioning structure determined for the luminance component and the QTBT block partitioning structure determined for the chrominance component are identical; and
When the QTBT block partitioning structure determined for the luminance component and the QTBT block partitioning structure determined for the chrominance component are identical to each other, any of the QTBT block partitioning structure determined for the luminance component and the QTBT block partitioning structure determined for the chrominance component Encoding only one piece of segmentation information
Method for encoding image data, characterized in that it further comprises.
부호화된 영상 데이터의 블록 및 상기 영상 데이터의 블록과 관련된 분할 정보를 파싱하는 단계, 여기서 상기 부호화된 영상 데이터의 블록은 QTBT(quadtree plus binarytree) 블록 파티셔닝 구조에 따라 복수의 분할 블록으로 분할되어 있으며, 상기 QTBT 블록 파티셔닝 구조는 쿼드트리(quadtree)의 리프 노드(leaf node)로부터 바이너리트리(binarytree)가 루트된(rooted) 구조임; 및
상기 분할 정보를 이용하여 상기 QTBT를 결정하면서 상기 QTBT의 각 리프 노드별로 상기 부호화된 영상 데이터의 블록을 복호화하는 단계를 포함하고,
상기 분할 정보는 상기 QTBT 블록 파티셔닝 구조에서 쿼드트리의 리프 노드가 적어도 하나 존재하는 심도(depth)들 중 가장 상위의 심도(이하 “최상위 QT 리프노드 심도”로 지칭함)를 나타내는 심도 정보를 포함하며,
상기 QTBT를 결정하는 것은, 상기 최상위 QT 리프노드 심도를 나타내는 심도 정보를 이용하여, 상기 QTBT의 루트 노드로부터 상기 최상위 QT 리프노드 심도에 속하는 노드들의 부모 노드까지의 모든 노드들에 대해 쿼드트리 분할을 수행하는 단계를 포함하는, 영상 데이터를 복호화하는 방법.A method of decoding image data, comprising:
Parsing a block of encoded image data and segmentation information related to the block of image data, wherein the block of encoded image data is divided into a plurality of segmentation blocks according to a quadtree plus binarytree (QTBT) block partitioning structure, The QTBT block partitioning structure is a structure in which a binary tree is rooted from a leaf node of a quadtree; and
Decoding the block of the encoded image data for each leaf node of the QTBT while determining the QTBT using the partition information,
The partitioning information includes depth information indicating the highest depth (hereinafter referred to as “the highest QT leaf node depth”) among the depths in which at least one leaf node of the quadtree exists in the QTBT block partitioning structure,
Determining the QTBT includes using depth information indicating the depth of the highest QT leaf node to divide a quadtree for all nodes from the root node of the QTBT to the parent node of the nodes belonging to the highest QT leaf node depth. A method of decoding image data, comprising the step of performing.
상기 최상위 QT 리프노드 심도를 나타내는 심도 정보는,
절삭된 유너리(truncated unary) 코드워드로 표현되어, 상기 QTBT의 심도들 중에서 상기 최상위 QT 리프노드 심도를 특정하는 것을 특징으로 하는, 영상 데이터를 복호화하는 방법.9. The method of claim 8,
The depth information indicating the depth of the highest QT leaf node is,
A method of decoding image data, characterized in that it is expressed as a truncated unary codeword to specify the depth of the highest QT leaf node among the depths of the QTBT.
상기 바이너리트리는 부모 노드를 2개의 자식 노드로 분할하는 분할 타입들에 의해 정의되며, 상기 분할 타입들은 대칭 수평 분할 및 대칭 수직 분할을 포함하는 것을 특징으로 하는, 영상 데이터를 복호화하는 방법.9. The method of claim 8,
The binary tree is defined by division types that divide a parent node into two child nodes, wherein the division types include symmetric horizontal division and symmetric vertical division.
상기 분할 정보는 상기 QTBT 블록 파티셔닝 구조에서 바이너리트리 분할 정보를 포함하고, 상기 바이너리트리 분할 정보는 상기 부모 노드의 분할과 상기 자식 노드의 분할의 가능한 조합들 중에서 어느 하나를 특정하는 방식으로 표현된 것을 특징으로 하는, 영상 데이터를 복호화하는 방법.11. The method of claim 10,
The partitioning information includes binary tree partitioning information in the QTBT block partitioning structure, and the binary tree partitioning information is expressed in a way that specifies any one of possible combinations of partitioning of the parent node and partitioning of the child node. A method of decoding image data, characterized in that.
상기 부모 노드의 분할과 상기 자식 노드의 분할의 가능한 조합은,
상기 부모 노드의 분할을 나타내는 고정길이 코드워드와 상기 자식 노드의 분할을 나타내는 고정길이 코드워드로 구분되는 것을 특징으로 하는, 영상 데이터를 복호화하는 방법.12. The method of claim 11,
A possible combination of partitioning of the parent node and partitioning of the child node is:
A method for decoding image data, characterized in that it is divided into a fixed-length codeword indicating division of the parent node and a fixed-length codeword indicating division of the child node.
상기 부호화된 영상 데이터의 블록을 복호화하는 단계는,
상기 바이너리트리 분할 정보를 이용하여, 상기 쿼드트리의 리프 노드들에 대해 바이너리 분할을 수행하는 단계를 포함하는 것을 특징으로 하는, 영상 데이터를 복호화하는 방법.12. The method of claim 11,
The decoding of the block of the encoded image data comprises:
and performing binary division on leaf nodes of the quadtree by using the binary tree division information.
상기 분할 정보는 상기 영상 데이터의 블록에서 휘도 성분에 대한 QTBT 블록 파티셔닝 구조와 색차 성분에 대한 QTBT 블록 파티셔닝 구조 간의 동일 여부를 나타내는 플래그를 포함하고,
상기 QTBT의 각 리프 노드별로 상기 부호화된 영상 데이터의 블록을 복호화하는 단계는, 상기 플래그가 상기 휘도 성분에 대한 QTBT 블록 파티셔닝 구조와 상기 색차 성분에 대한 QTBT 블록 파티셔닝 구조가 서로 동일하다고 지시하는 경우에, 상기 QTBT의 각 리프 노드별로 상기 부호화된 영상 데이터의 블록의 휘도(luma) 성분과 색차(chroma) 성분에 대해 복호화하는 단계를 포함하는, 영상 데이터를 복호화하는 방법.9. The method of claim 8,
The division information includes a flag indicating whether the QTBT block partitioning structure for the luminance component and the QTBT block partitioning structure for the chrominance component are identical in the block of the image data,
The decoding of the block of the encoded image data for each leaf node of the QTBT may be performed when the flag indicates that the QTBT block partitioning structure for the luminance component and the QTBT block partitioning structure for the chrominance component are identical to each other. , decoding the luminance (luma) component and the chrominance (chroma) component of the block of the encoded image data for each leaf node of the QTBT.
메모리; 및
하나 이상의 프로세서들을 포함하며,
상기 하나 이상의 프로세서들은,
부호화된 영상 데이터의 블록 및 상기 영상 데이터의 블록과 관련된 분할 정보를 파싱하는 단계, 여기서 상기 부호화된 영상 데이터의 블록은 QTBT(quadtree plus binarytree) 블록 파티셔닝 구조에 따라 복수의 분할 블록으로 분할되어 있고, 상기 QTBT 블록 파티셔닝 구조는 쿼드트리(quadtree)의 리프 노드(leaf node)로부터 바이너리트리(binarytree)가 루트된(rooted) 구조이며, 상기 분할 정보는 상기 QTBT 블록 파티셔닝 구조에서 쿼드트리의 리프 노드가 적어도 하나 존재하는 심도(depth)들 중 가장 상위의 심도(이하 “최상위 QT 리프노드 심도”로 지칭함)를 나타내는 심도 정보를 포함함; 및
상기 분할 정보를 이용하여 상기 QTBT를 결정하면서, 상기 QTBT의 각 리프 노드별로 상기 부호화된 영상 데이터의 블록을 복호화하는 단계를 수행하도록 구성되되,
상기 QTBT를 결정하는 것은,
상기 최상위 QT 리프노드 심도를 나타내는 심도 정보를 이용하여, 상기 QTBT의 루트 노드로부터 상기 최상위 QT 리프노드 심도에 속하는 노드들의 부모 노드까지의 모든 노드들에 대해 쿼드트리 분할을 수행하는 단계를 포함하는, 영상 데이터를 복호화하는 장치.An apparatus for decoding image data, comprising:
Memory; and
one or more processors,
the one or more processors,
Parsing a block of encoded image data and segmentation information related to the block of image data, wherein the block of encoded image data is divided into a plurality of segmentation blocks according to a quadtree plus binarytree (QTBT) block partitioning structure, The QTBT block partitioning structure is a structure in which a binary tree is rooted from a leaf node of a quadtree, and the partition information is at least a leaf node of the quadtree in the QTBT block partitioning structure. one includes depth information indicating the highest depth among existing depths (hereinafter referred to as “the highest QT leaf node depth”); and
and decoding the coded image data block for each leaf node of the QTBT while determining the QTBT using the segmentation information,
Determining the QTBT is,
Using the depth information indicating the depth of the highest QT leaf node, performing quadtree division on all nodes from the root node of the QTBT to the parent node of nodes belonging to the depth of the highest QT leaf node. A device for decoding video data.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170031234A KR102390384B1 (en) | 2017-03-13 | 2017-03-13 | Apparatus and Method for Video Encoding or Decoding |
PCT/KR2018/002891 WO2018169267A1 (en) | 2017-03-13 | 2018-03-12 | Device and method for encoding or decoding image |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170031234A KR102390384B1 (en) | 2017-03-13 | 2017-03-13 | Apparatus and Method for Video Encoding or Decoding |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180104451A KR20180104451A (en) | 2018-09-21 |
KR102390384B1 true KR102390384B1 (en) | 2022-04-22 |
Family
ID=63522489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170031234A KR102390384B1 (en) | 2017-03-13 | 2017-03-13 | Apparatus and Method for Video Encoding or Decoding |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102390384B1 (en) |
WO (1) | WO2018169267A1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117041575A (en) * | 2018-09-21 | 2023-11-10 | Lg电子株式会社 | Video decoding and encoding method, storage medium, and data transmission method |
CN111107358A (en) * | 2018-10-26 | 2020-05-05 | 北京字节跳动网络技术有限公司 | Redundancy reduction in block partitioning |
KR20230013160A (en) * | 2019-06-19 | 2023-01-26 | 엘지전자 주식회사 | Image encoding/decoding method, apparatus and method for transmitting bitstream using adaptive size limitation of chroma block |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016091161A1 (en) * | 2014-12-10 | 2016-06-16 | Mediatek Singapore Pte. Ltd. | Method of video coding using binary tree block partitioning |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101959482B1 (en) * | 2011-09-16 | 2019-03-18 | 한국항공대학교산학협력단 | Method for image encoding/decoding and apparatus thereof |
US9462275B2 (en) * | 2012-01-30 | 2016-10-04 | Qualcomm Incorporated | Residual quad tree (RQT) coding for video coding |
KR101789954B1 (en) * | 2013-12-27 | 2017-10-25 | 인텔 코포레이션 | Content adaptive gain compensated prediction for next generation video coding |
US10390087B2 (en) * | 2014-05-01 | 2019-08-20 | Qualcomm Incorporated | Hypothetical reference decoder parameters for partitioning schemes in video coding |
KR101801255B1 (en) * | 2017-02-07 | 2017-11-27 | 인텔렉추얼디스커버리 주식회사 | Apparatus and Method of Adaptive Quantization Parameter Encoding and Decoder based on Quad Tree Structure |
-
2017
- 2017-03-13 KR KR1020170031234A patent/KR102390384B1/en active IP Right Grant
-
2018
- 2018-03-12 WO PCT/KR2018/002891 patent/WO2018169267A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016091161A1 (en) * | 2014-12-10 | 2016-06-16 | Mediatek Singapore Pte. Ltd. | Method of video coding using binary tree block partitioning |
Also Published As
Publication number | Publication date |
---|---|
KR20180104451A (en) | 2018-09-21 |
WO2018169267A1 (en) | 2018-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102515610B1 (en) | Apparatus and Method for Video Encoding or Decoding | |
US10979708B2 (en) | Apparatus and method for video encoding or decoding | |
US20190356915A1 (en) | Method and apparatus for encoding/decoding video signal using secondary transform | |
KR102435895B1 (en) | Apparatus and Method for Video Encoding or Decoding | |
US20210144407A1 (en) | Method and device for encoding or decoding video | |
KR20180082330A (en) | Apparatus and Method for Video Encoding or Decoding | |
US11272220B2 (en) | Boundary forced partition | |
EP3772262A1 (en) | Multi-type-tree framework for transform in video coding | |
KR102390384B1 (en) | Apparatus and Method for Video Encoding or Decoding | |
US20210021840A1 (en) | Method for processing image and apparatus therefor | |
US20220353505A1 (en) | Method for reconstructing residual blocks of chroma blocks, and video decoding apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |