[go: up one dir, main page]

KR102390384B1 - 영상 부호화 또는 복호화하기 위한 장치 및 방법 - Google Patents

영상 부호화 또는 복호화하기 위한 장치 및 방법 Download PDF

Info

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
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
KR1020170031234A
Other languages
English (en)
Other versions
KR20180104451A (ko
Inventor
임정연
김형덕
손세훈
신재섭
이선영
Original Assignee
에스케이텔레콤 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이텔레콤 주식회사 filed Critical 에스케이텔레콤 주식회사
Priority to KR1020170031234A priority Critical patent/KR102390384B1/ko
Priority to PCT/KR2018/002891 priority patent/WO2018169267A1/ko
Publication of KR20180104451A publication Critical patent/KR20180104451A/ko
Application granted granted Critical
Publication of KR102390384B1 publication Critical patent/KR102390384B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/186Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/423Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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 리프노드 심도를 나타내는 심도 정보를 시그널링한다.

Description

영상 부호화 또는 복호화하기 위한 장치 및 방법{Apparatus and Method for Video Encoding or Decoding}
본 발명은 영상을 효율적으로 부호화하기 위한 영상 부호화 또는 복호화에 관한 것이다. 보다 상세하게는, QTBT(Quadtree plus Binary tree) 기반 블록 파티셔닝에 관한 분할 정보를 시그널링하는 기법에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래 기술을 구성하는 것은 아니다.
도 1은 CTU에 대한 쿼드 트리 분할 구조의 일례와 이를 트리 구조로 나타내는 도면이다. HEVC에서 CTU(Coding Tree Unit)은 영상 내 다양한 로컬의 특성을 반영하기 위한 코딩 트리로 쿼드트리(quadtree) 구조 방식을 이용하여 CU(Coding Unit)로 나눈다. 이렇게 CU가 결정되면 인트라, 인터 코딩 예측도 CU 단위에서 이루어지게 된다. 각각의 CU는 다시 PU(Prediction Unit)으로 나뉘며 PU가 결정이 되고 예측 과정이 진행된 후 CU는 잔차 블록(residual block)에 대해 TU(Transformation Unit)으로 나뉘는 과정이 이루어진다.
최근에 QTBT(Quadtree plus Binary tree) 구조가 새롭게 논의되고 있는데, 이러한 QTBT 구조는 기존의 CU, PU, TU 개념을 제거하면서도 비디오 데이터의 다양한 로컬 특징을 매칭하기 위해 다양한 CU 분할 모양을 제안한다. 즉, QTBT에서 CU는 정사각형 혹은 직사각형의 모양이 될 수 있도록 정의할 수 있다.
또한 HEVC에서 CTU 사이즈는 64였으나 영상의 해상도가 커짐에 따라 128, 256 등 더 큰 블록 사이즈의 필요성이 논의되고 있는 바, CTU에서 블록이 최소 4x4까지 분할될 경우 이러한 분할 정보를 시그널링하는 데 소요되는 데이터량은 점점 더 증가하게 된다.
본 발명은 QTBT(Quadtree plus Binary tree) 기반 블록 파티셔닝에 관한 분할 정보를 효율적으로 시그널링하는 데 그 목적이 있다.
본 발명의 일 측면에 따르면, 영상 데이터의 블록을 부호화하기 위한 QTBT(QuadTree plus BinaryTree) 블록 파티셔닝 구조를 결정하는 단계; 및 상기 결정된 블록 파티셔닝 구조에 기초하여, 상기 영상 데이터의 블록과 상기 결정된 블록 파티셔닝 구조를 표현하는 분할 정보를 부호화하는 단계를 포함하는 영상 데이터를 부호화하는 방법을 제공한다. 상기 QTBT 블록 파티셔닝 구조는 쿼드트리의 리프 노드(leaf node)로부터 바이너리트리가 루트된(rooted) 구조이다. 상기 분할 정보를 부호화하는 것은 상기 결정된 블록 파티셔닝 구조에서, 쿼드트리의 리프 노드가 적어도 하나 존재하는 심도(depth)들 중 가장 상위의 심도(이하 “최상위 QT 리프노드 심도”로 지칭함)를 판단하는 단계; 및 상기 결정된 블록 파티셔닝 구조에서 루트 노드로부터 상기 최상위 QT 리프노드 심도에 속하는 노드들의 부모 노드까지의 쿼드트리 분할 정보로서, 상기 최상위 QT 리프노드 심도를 나타내는 심도 정보를 부호화하는 단계를 포함한다.
본 발명의 다른 측면에 따르면, 부호화된 영상 데이터의 블록 및 상기 영상 데이터의 블록과 관련된 분할 정보를 파싱하는 단계; 상기 분할 정보를 이용하여 상기 QTBT를 결정하면서 상기 결정된 QTBT의 각 리프 노드별로 상기 부호화된 영상 데이터의 블록을 복호화하는 단계를 포함하는 영상 데이터를 복호화하는 방법을 제공한다. 상기 부호화된 영상 데이터의 블록은 QTBT(quadtree plus binarytree) 블록 파티셔닝 구조에 따라 복수의 분할 블록으로 분할되어 있으며, 상기 QTBT 블록 파티셔닝 구조는 쿼드트리(quadtree)의 리프 노드(leaf node)로부터 바이너리트리(binarytree)가 루트된(rooted) 구조이다. 상기 분할 정보는 상기 QTBT 블록 파티셔닝 구조에서 쿼드트리의 리프 노드가 적어도 하나 존재하는 심도(depth)들 중 가장 상위의 심도(이하 “최상위 QT 리프노드 심도”로 지칭함)를 나타내는 심도 정보를 포함한다. 상기 QTBT를 결정하는 단계는, 상기 최상위 QT 리프노드 심도를 나타내는 심도 정보를 이용하여, 상기 QTBT의 루트 노드로부터 상기 최상위 QT 리프노드 심도에 속하는 노드들의 부모 노드까지의 모든 노드들에 대해 쿼드트리 분할을 수행하는 단계를 포함한다.
본 발명의 다른 측면에 따르면, 영상 데이터를 복호화하는 장치를 제공한다. 복호화 장치는 메모리 및 하나 이상의 프로세서들을 포함하며, 상기 하나 이상의 프로세서들은, 부호화된 영상 데이터의 블록 및 상기 영상 데이터의 블록과 관련된 분할 정보를 파싱하는 단계와 상기 분할 정보를 이용하여 상기 QTBT를 결정하면서, 상기 QTBT의 각 리프 노드별로 상기 부호화된 영상 데이터의 블록을 복호화하는 단계를 수행하도록 구성된다.
도 1은 CTU에 대한 쿼드 트리 분할 구조의 일례와 이를 트리 구조로 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록도이다.
도 3은 복수의 인트라 예측 모드에 대한 예시를 나타낸다.
도 4는 현재 블록의 주변블록에 대한 예시도이다.
도 5는 본 발명의 일 실시예에 따른 영상 복호화 장치를 도시한 것이다.
도 6은 영상 부호화 장치가 영상을 부호화하는 예시적인 동작을 도시한 흐름도이다.
도 7은 영상 복호화 장치가 영상을 복호화하는 예시적인 동작을 도시한 흐름도이다.
도 8은 CTU의 QTBT 분할 구조의 일례와 이를 트리 구조로 나타내는 도면이다.
도 9는 하나의 CU에서 BT로 표현될 수 있는 가짓수를 도시한 도면이다.
도 10은 CTU의 예시적인 QTBT 분할 구조를 트리 구조로 도시한 도면이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성 요소들에 식별 부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록도이다.
영상 부호화 장치는 블록 분할부(210), 예측부(220), 감산기(230), 변환부(240), 양자화부(245), 부호화부(250), 역양자화부(260), 역변환부(265), 가산기(270), 필터부(280) 및 메모리(290)를 포함한다. 영상 부호화 장치는 각 구성요소는 하드웨어 칩으로 구현될 수 있으며, 또는 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.
블록 분할부(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를 사용할 수 있다.
QTBT (QuadTree plus BinaryTree) 구조에서, CTU는 먼저 QT 구조로 분할될 수 있다. 쿼드트리 분할은 분할 블록(splitting block)의 크기가 QT에서 허용되는 리프 노드의 최소 블록 크기(MinQTSize)에 도달 할 때까지 반복 될 수 있다. 쿼드트리의 리프 노드가 BT에서 허용되는 루트 노드의 최대 블록 크기(MaxBTSize)보다 크지 크지 않은 경우, BT 구조로 더 파티셔닝될 수 있다. BT에서는 복수의 분할 타입이 존재할 수 있다. 예컨대, 일부 예시에서, 해당 노드의 블록을 동일 크기의 두 개 블록으로 가로로 분할하는 타입(즉, symmetric horizontal splitting)과 세로로 분할하는 타입(즉, symmetric vertical splitting) 두 가지가 존재할 수 있다. 또한, 해당 노드의 블록을 서로 비대칭 형태의 두 개의 블록으로 분할하는 타입이 추가로 더 존재할 수도 있다. 비대칭 형태로는 해당 노드의 블록을 1:3의 크기 비율을 가지는 두 개의 직사각형 블록으로 분할하는 형태를 포함할 수 있고, 혹은 해당 노드의 블록을 대각선 방향으로 분할하는 형태를 포함할 수도 있다.
블록 분할부(210)가 QTBT 구조에 의해 CTU를 분할하여 생성하는 분할 정보는 부호화부(250)에 의해 부호화되어 영상 복호화 장치로 전달된다. 본 개시의 예시들은 일반적으로 QTBT 블록 파티션 정보의 시그널링하는 기법과 QTBT 블록 파티션 정보로부터 블록 파티셔닝을 결정하는 기법에 관한 것이다. 이와 같이, 본 개시의 소정의 기법들은 부호화부(250)에 의해 수행될 수도 있다. 즉, 예를 들어, 부호화부(250)는 아래의 도 8 내지 도 10에 대해 기술된 본 개시의 기법들을 수행할 수도 있다. 다른 예들에서, 부호화 장치의 하나 이상의 다른 유닛들이 추가적이거나 대안적으로 본 개시의 기법들을 수행하는 것을 담당할 수도 있다.
이하에서는, 부호화 또는 복호화하고자 하는 CU(즉, QTBT의 리프 노드)에 해당하는 블록을 '현재 블록'이라 칭한다.
예측부(220)는 현재 블록을 예측하여 예측블록을 생성한다. 예측부(220)는 인트라 예측부(222)와 인터 예측부(224)를 포함한다.
인트라 예측부(222)는 현재 블록이 포함된 현재 픽처 내에서 현재 블록의 주변에 위치한 픽셀(참조 픽셀)들을 이용하여 현재 블록 내의 픽셀들을 예측한다. 예측 방향에 따라 복수의 인트라 예측모드가 존재하며, 각 예측모드에 따라 사용할 주변 픽셀과 연산식이 다르게 정의된다. 특히, 인트라 예측부(222)는 현재 블록을 부호화하는데 사용할 인트라 예측 모드를 결정할 수 있다. 일부 예들에서, 인트라 예측부(222)는 여러 인트라 예측 모드들을 사용하여 현재 블록을 인코딩하고, 테스트된 모드들로부터 사용할 적절한 인트라 예측 모드를 선택할 수도 있다. 예를 들어, 인트라 예측부(222)는 여러 테스트된 인트라 예측 모드들에 대한 레이트 왜곡(rate-distortion) 분석을 사용하여 레이트 왜곡 값들을 계산하고, 테스트된 모드들 중 최선의 레이트 왜곡 특징들을 갖는 인트라 예측 모드를 선택할 수도 있다.
도 3은 복수의 인트라 예측 모드에 대한 예시를 나타낸다.
도 3에서 보는 바와 같이, 복수의 인트라 예측 모드는 2개의 비방향성 모드(planar 모드 및 DC 모드)와 65개의 방향성 모드를 포함할 수 있다.
인트라 예측부(222)는 복수의 인트라 예측 모드 중에서 하나의 인트라 예측 모드를 선택하고, 선택된 인트라 예측 모드에 따라 결정되는 주변 픽셀(참조 픽셀)과 연산식을 사용하여 현재 블록을 예측한다. 선택된 인트라 예측 모드에 대한 정보는 부호화부(250)에 의해 부호화되어 영상 복호화 장치로 전달된다.
한편, 인트라 예측부(222)는, 복수의 인트라 예측 모드 중 어느 모드가 현재 블록의 인트라 예측 모드로 사용되었는지를 지시하는 인트라 예측 모드 정보를 효율적으로 부호화하기 위해, 복수의 인트라 예측 모드 중 현재 블록의 인트라 예측 모드로서 가능성이 높은 일부의 모드를 MPM(most probable mode)으로 결정할 수 있다. 그리고, 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되는지 여부를 지시하는 모드 정보를 생성하여 부호화부(250)로 전달한다. 일반적으로, 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되는 경우, MPM 중 어느 모드가 현재 블록의 인트라 예측 모드로 선택되었는지를 지시하기 위한 제1 인트라 식별정보를 부호화부로 전달한다. 반면 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되지 않은 경우, MPM이 아닌 나머지 모드들 중 어느 모드가 현재 블록의 인트라 예측 모드로 선택되었는지를 지시하기 위한 제2 인트라 식별정보를 부호화부로 전달한다. 대안적으로, 본 발명의 일 측면에 따른 인트라 예측부(222)는 MPM들 및/또는 non-MPM들 중에서 어느 모드가 현재 블록을 예측하기 위한 인트라 예측 모드로 선택되었는지를 명시적으로 시그널링하는 대신에, MPM들 및/또는 non-MPM들을 그룹화하고, 현재 블록을 예측하기 위한 인트라 모드가 속하는 그룹의 인덱스를 시그널링할 수 있다.
이하에서는, MPM 리스트를 구성하는 방법을 설명한다. 여기서는, 6개의 MPM으로 MPM 리스트를 구성하는 것을 예로 설명하나, 본 발명이 이에 한정되는 것은 아니며 MPM 리스트에 포함되는 MPM의 개수는 3개 내지 10개의 범위 내에서 선택될 수 있다.
먼저, 현재 블록의 주변블록들의 인트라 예측 모드를 이용하여 MPM 리스트를 구성한다. 주변블록은, 예컨대 도 4에 도시된 바와 같이, 현재 블록의 좌측블록(L), 상단블록(A), 좌하단블록(BL), 우상단블록(AR), 좌상단블록(AL) 중에서 전부 또는 일부를 포함할 수 있다.
이 주변블록들의 인트라 예측 모드가 MPM 리스트에 포함된다. 여기서, 좌측블록(L), 상단블록(A), 좌하단블록(BL), 우상단블록(AR), 좌상단블록(AL)의 순서로 유효한 블록의 인트라 예측모드가 MPM 리스트에 포함되고, 이 주변블록들의 인트라 예측 모드들에 planar 모드 및 DC 모드를 추가하여 후보를 구성한다. 또는, 좌측블록(L), 상단블록(A), planar 모드, DC 모드, 좌하단블록(BL), 우상단블록(AR), 좌상단블록(AL)의 순으로 유효한 모드가 MPM 리스트에 추가될 수도 있다.
MPM 리스트에는 서로 다른 인트라 예측 모드만이 포함된다. 즉, 중복된 모드(duplicated mode)가 존재하는 경우 그 중 하나의 모드만이 MPM 리스트에 포함된다.
만약, 리스트 내의 MPM의 개수가 기결정된 개수(예컨대, 6)보다 작은 경우에는, 리스트 내의 방향성 모드들에 -1 또는 +1을 가산하여 MPM을 유도할 수도 있다. 또한, 리스트 내의 MPM의 개수가 기결정된 개수보다 작은 경우에는, 수직 모드(vertical mode), 수직 모드(horizontal mode), 대각선 모드(diagonal mode) 등의 순서로 부족한 개수 만큼의 모드를 MPM 리스트에 추가할 수도 있다.
인터 예측부(224)는 현재 픽처보다 먼저 부호화 및 복호화된 참조 픽처 내에서 현재 블록과 가장 유사한 블록을 탐색하고, 그 탐색된 블록을 이용하여 현재 블록에 대한 예측블록을 생성한다. 그리고, 현재 픽처 내의 현재 블록과 참조 픽처 내의 예측블록 간의 변위(displacement)에 해당하는 움직임벡터(motion vector)를 생성한다. 현재 블록을 예측하기 위해 사용된 참조 픽처에 대한 정보 및 움직임벡터에 대한 정보를 포함하는 움직임 정보는 부호화부(250)에 의해 부호화되어 영상 복호화 장치로 전달된다.
감산기(230)는 현재 블록으로부터 인트라 예측부(222) 또는 인터 예측부(224)에 의해 생성된 예측블록을 감산하여 잔차 블록을 생성한다.
변환부(240)는 공간 영역의 픽셀 값들을 가지는 잔차 블록 내의 잔차 신호를 주파수 도메인의 변환 계수로 변환한다. 변환부(240)는 잔차 블록 내의 잔차 신호들을 현재 블록의 크기를 변환 단위로 사용하여 변환할 수 있으며, 또는 잔차 블록을 더 작은 복수의 서브블록을 분할하고 서브블록 크기의 변환 단위로 잔차 신호들을 변환할 수도 있다. 잔차 블록을 더 작은 서브블록으로 분할하는 방법은 다양하게 존재할 수 있다. 예컨대, 기정의된 동일한 크기의 서브블록으로 분할할 수도 있으며, 또는 잔차 블록을 루트 노드로 하는 QT(quadtree) 방식의 분할을 사용할 수도 있다.
양자화부(245)는 변환부(240)로부터 출력되는 변환 계수들을 양자화하고, 양자화된 변환 계수들을 부호화부(250)로 출력한다.
부호화부(250)는 양자화된 변환 계수들을 CABAC 등의 부호화 방식을 사용하여 부호화하여 비트스트림을 생성한다. 또한, 부호화부(250)는 블록 분할과 관련된 CTU size, MinQTSize, MaxBTSize, MaxBTDepth, MinBTSize, QT 분할 플래그, BT 분할 플래그, 분할 타입 등의 정보를 부호화하여, 영상 복호화 장치가 영상 부호화 장치와 동일하게 블록을 분할할 수 있도록 한다.
부호화부(250)는 현재 블록이 인트라 예측에 의해 부호화되었는지 아니면 인터 예측에 의해 부호화되었는지 여부를 지시하는 예측 타입에 대한 정보를 부호화하고, 예측 타입에 따라 인트라 예측정보 또는 인터 예측정보를 부호화한다.
역양자화부(260)는 양자화부(245)로부터 출력되는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 생성한다. 역변환부(265)는 역양자화부(260)로부터 출력되는 변환 계수들을 주파수 도메인으로부터 공간 도메인으로 변환하여 잔차블록을 복원한다.
가산부(270)는 복원된 잔차블록과 예측부(220)에 의해 생성된 예측블록을 가산하여 현재 블록을 복원한다. 복원된 현재 블록 내의 픽셀들은 다음 순서의 블록을 인트라 예측할 때 참조 픽셀로서 사용된다.
필터부(280)는 블록 단위의 부호화/복호화로 인해 발생하는 블록킹 현상(blocking artifact)을 제거하기 위해 복원된 블록 간의 경계를 디블록킹 필터링하고 메모리(290)에 저장한다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 부호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.
이하에서는 영상 복호화 장치에 대해 설명한다.
도 5는 본 발명의 실시예에 따른 영상 복호화 장치를 도시한 것이다.
영상 복호화 장치는 복호화부(510), 역양자화부(520), 역변환부(530), 예측부(540), 가산기(550), 필터부(560) 및 메모리(570)를 포함한다. 도 2의 영상 부호화 장치와 마찬가지로, 영상 복호화 장치는 각 구성요소가 하드웨어 칩으로 구현될 수 있으며, 또는 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.
복호화부(510)는 영상 부호화 장치로부터 수신한 비트스트림을 복호화하여 블록 분할과 관련된 정보를 추출하여 복호화하고자 하는 현재 블록을 결정하고, 현재 블록을 복원하기 위해 필요한 예측 정보와 잔차신호에 대한 정보 등을 추출한다.
복호화부(510)는 SPS (Sequence Parameter Set) 또는 PPS (Picture Parameter Set)과 같은 하이 레벨 신택스(high level syntax)로부터 CTU size에 대한 정보를 추출하여 CTU의 크기를 결정하고, 픽처를 결정된 크기의 CTU로 분할한다. 그리고 CTU를 트리 구조의 최상위 레이어, 즉, 루트 노드로 결정하고, CTU에 대한 분할 정보를 추출함으로써 CTU를 트리 구조(예컨대, QTBT 구조)를 이용하여 분할한다.
본 개시의 예시들은 일반적으로 QTBT 블록 파티션 정보의 시그널링하는 기법과 QTBT 블록 파티션 정보로부터 블록 파티셔닝을 결정하는 기법에 관한 것이다. 이와 같이, 본 개시의 소정의 기법들은 복호화부(510)에 의해 수행될 수도 있다. 즉, 예를 들어, 복호화부(510)는 아래의 도 8 내지 도 10에 대해 기술된 본 개시의 기법들을 수행할 수도 있다. 다른 예들에서, 복호화 장치의 하나 이상의 다른 유닛들이 추가적이거나 대안적으로 본 개시의 기법들을 수행하는 것을 담당할 수도 있다.
복호화부(510)는 트리 구조의 분할을 통해 복호화하고자 하는 현재 블록(현재 블록)을 결정하게 되면, 현재 블록이 인트라 예측되었는지 아니면 인터 예측되었는지를 지시하는 예측 타입에 대한 정보를 추출한다.
예측 타입 정보가 인트라 예측을 지시하는 경우, 복호화부(510)는 현재 블록의 인트라 예측정보(인트라 예측 모드)에 대한 신택스 요소를 추출한다. 먼저, 복호화부(510)는 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되는지 여부를 지시하는 모드 정보(즉, MPM 플래그)를 추출한다. 또한, 일반적으로, 인트라 모드 부호화 정보가 현재 블록의 인트라 예측 모드가 MPM 중에서 선택됨을 지시하는 경우, MPM 중 어느 모드가 현재 블록의 인트라 예측 모드로 선택되었는지를 지시하기 위한 제1 인트라 식별정보를 추출하고, 인트라 모드 부호화 정보가 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되지 않음을 지시하는 경우, MPM이 아닌 나머지 모드들 중 어느 모드가 현재 블록의 인트라 예측 모드로 선택되었는지를 지시하기 위한 제2 인트라 식별정보를 추출한다. 대안적으로, 본 발명의 일 측면에 따른 인트라 예측부(222)는, MPM들 및/또는 non-MPM들 중에서 어느 모드가 현재 블록을 예측하기 위한 인트라 예측 모드로 선택되었는지를 지시하는 인트라 식별정보를 추출하는 대신에, MPM들 및/또는 non-MPM들을 그룹화하고, 현재 블록을 예측하기 위한 인트라 모드가 속하는지를 지시하는 인트라 식별정보(예컨대, 그룹의 인덱스 등)를 추출한다.
한편, 복호화부(510)는 잔차신호에 대한 정보로서 현재 블록의 양자화된 변환계수들에 대한 정보를 추출한다.
역양자화부(520)는 양자화된 변환계수들을 역양자화하고 역변환부(530)는 역양자화된 변환계수들을 주파수 도메인으로부터 공간 도메인으로 역변환하여 잔차신호들을 복원함으로써 현재 블록에 대한 잔차블록을 생성한다.
예측부(540)는 인트라 예측부(542) 및 인터 예측부(544)를 포함한다. 인트라 예측부(542)는 현재 블록의 예측 타입인 인트라 예측일 때 활성화되고, 인터 예측부(544)는 현재 블록의 예측 타입인 인트라 예측일 때 활성화된다.
인트라 예측부(542)는 복호화부(510)로부터 추출된 인트라 예측 모드에 대한 신택스 요소로부터 복수의 인트라 예측 모드 중 현재 블록의 인트라 예측 모드를 결정하고, 인트라 예측 모드에 따라 현재 블록 주변의 참조 픽셀들을 이용하여 현재 블록을 예측한다.
현재 블록의 인트라 예측 모드를 결정하기 위해, 인트라 예측부(542)는 현재 블록의 주변블록으로부터 기 결정된 개수의 MPM들을 포함하는 MPM 리스트를 구성한다. MPM 리스트를 구성하는 방법은 도 2의 인트라 예측부(222)와 동일하다.
일반적으로, 인트라 예측의 모드 정보(즉, MPM 플래그)가 현재 블록의 인트라 예측 모드가 MPM 중에서 선택됨을 지시하는 경우에는, 인트라 예측부(542)는 MPM 리스트 내의 MPM들 중 제1 인트라 식별정보에 의해 지시되는 MPM을 현재 블록의 인트라 예측 모드로 선택한다. 반면, 모드 정보가 현재 블록의 인트라 예측 모드가 MPM으로부터 선택되지 않음을 지시하는 경우, 제2 인트라 식별정보를 이용하여 MPM 리스트 내의 MPM들을 제외한 나머지 인트라 예측 모드들 중에서 현재 블록의 인트라 예측 모드를 결정한다.
대안적으로, 본 발명의 일 측면에 따른 영상 부호화 장치의 인트라 예측부(222)는, 전술한 바와 같이, MPM들 및/또는 non-MPM들 중에서 어느 모드가 현재 블록을 예측하기 위한 인트라 예측 모드로 선택되었는지를 명시적으로 시그널링하는 대신에, MPM들 및/또는 non-MPM들을 그룹화하고, 현재 블록을 예측하기 위한 인트라 모드가 속하는 그룹의 인덱스를 시그널링한다. 이 경우, 영상 복호화 장치의 인트라 예측부(542)는 해당 그룹에 속한 인트라 모드들을 평가하여 최종 인트라 모드(즉, 현재 블록을 예측하기 위한 인트라 모드)를 결정할 수 있다. 예컨대, 일부 예들에서, 인트라 예측부(542)는 한 그룹에 속한 다수 개의 인트라 모드에 대해, 복원 블록(reconstructed block)을 생성하고, 복원 블록들을 평가하여 최종 인트라 모드를 결정할 수 있다.
인터 예측부(544)는 복호화부(510)로부터 추출된 인트라 예측 모드에 대한 신택스 요소를 이용하여 현재 블록의 움직임정보를 결정하고, 결정된 움직임정보를 이용하여 현재 블록을 예측한다.
가산기(550)는 역변환부로부터 출력되는 잔차블록과 인터 예측부 또는 인트라 예측부로부터 출력되는 예측블록을 가산하여 현재 블록을 복원한다. 복원된 현재 블록 내의 픽셀들은 이후에 복호화할 블록을 인트라 예측할 때의 참조픽셀로서 활용된다.
필터부(560)는 블록 단위의 복호화로 인해 발생하는 블록킹 현상(blocking artifact)를 제거하기 위해 복원된 블록 간의 경계를 디블록킹 필터링하고 메모리(570)에 저장한다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 복호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.
도 6은 영상 부호화 장치가 영상을 부호화하는 예시적인 동작을 도시한 흐름도이다. 도 6의 예에서, 영상 부호화 장치는 영상 데이터의 블록을 부호화하기 위한 QTBT 블록 파티셔닝 구조를 결정한다(S610). 여기서 상기 QTBT 블록 파티셔닝 구조는 쿼드트리의 리프 노드(leaf node)로부터 바이너리트리가 루트되는(rooted) 구조이다. 영상 부호화 장치는 상기 결정된 블록 파티셔닝 구조에 기초하여, 상기 영상 데이터의 블록과 상기 결정된 블록 파티셔닝 구조를 표현하는 분할 정보를 포함하는 부호화된 비트스트림을 생성한다(S620).
도 7은 영상 복호화 장치가 영상을 복호화하는 예시적인 동작을 도시한 흐름도이다. 도 7의 예에서, 영상 복호화 장치는 비트스트림으로부터 부호화된 영상 데이터의 블록 및 상기 영상 데이터의 블록과 관련된 분할 정보를 파싱한다(S710). 여기서 상기 부호화된 영상 데이터의 블록은 QTBT 블록 파티셔닝 구조에 따라 복수의 분할 블록으로 분할되어 있으며, 상기 QTBT 블록 파티셔닝 구조는 쿼드트리의 리프 노드로부터 바이너리트리가 루트되는 구조이다. 영상 복호화 장치는 상기 분할 정보를 이용하여 상기 QTBT의 리프 노드들을 결정하면서, QTBT의 각 리프 노드별로 상기 부호화된 영상 데이터의 블록을 복호화한다(S720).
이하에 개시된 기법들은 도 6의 S620 단계에 적용되는 QTBT 블록 파티션 정보를 시그널링하는 기법과, 도 7의 S720 단계에 적용되는 QTBT 블록 파티션 정보로부터 블록 파티셔닝을 결정하는 기법에 관한 것이다. 본 개시의 기법들은 예를 들어, 도 2 및 도 5에 대해 도시되고 기술된 영상 부호화 장치 및 영상 복호화 장치에 의해 수행될 수 있다. 즉, 일 예에서, 도 2에 대해 기술된 부호화부는 영상 데이터의 블록을 부호화하기 위해 블록 파티셔닝을 결정할 때 이하에 설명되는 소정의 기법들을 수행할 수도 있다. 다른 예에서, 도 5에 대해 기술된 복호화부는 영상 데이터의 블록을 복호화하기 위해 블록 파티셔닝을 결정할 때 아래에 기술된 소정의 기법들을 수행할 수도 있다. 상기 QTBT 블록 파티셔닝은 CTU를 CU들로 파티셔닝하는데 사용될 수 있다. 즉, QTBT의 루트 노드(root node)는 CTU 일 수 있으며, QTBT의 리프 노드는 CU일 수 있다.
이제, 도 8 내지 도 10을 참조하여, 부호화 장치가 CTU를 복수의 CU로 분할한 분할 정보를 시그널링하는 방식과, 이에 대응하여, 복호화 장치가 시그널링된 분할 정보를 이용하여 CTU를 복수의 CU로 분할하는 파티셔닝을 결정하는 실시예들을 설명한다.
제1 실시예
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 분할 타입을 지시하는 분할 타입 정보를 추가로 사용한다.
도 8은 CTU의 QTBT 분할 구조의 일례와 이를 트리 구조로 나타내는 도면이다. 도 8에서 실선은 QT 구조에 의한 분할을, 점선은 BT 구조에 의한 분할을 나타낸다. 도 8에서는 BT 분할이 두 가지 분할 타입 즉, 해당 노드의 블록을 동일 크기의 두 개 블록으로 가로로 분할하는 타입과 세로로 분할하는 타입이 존재하는 것으로 가정하고 있음에 유의한다.
도 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를 부호화한다.
도 8에서, 심도 2의 첫 번째 노드에 해당하는 블록은 BT 분할된 부모 노드(즉, 심도 1의 첫 번째 노드)의 자식 노드로서, 재차 BT 분할되어 있다. BT 분할은 재귀적으로 반복될 수 있으나, BT 분할된 노드의 자식 노드들은 다시 QT 분할되지는 않음에 유의한다. 따라서, BT 분할된 노드의 자식노드들에 대해 분할정보를 생성함에 있어서, 해당 블록이 QT 분할되지 않음을 명시적으로 시그널링할 필요가 없다. 예컨대, 도 8에서, 심도 2의 첫 번째 노드에 해당하는 블록의 분할 정보를 시그널링함에 있어서, 부호화 장치는 QT 분할 플래그(QT_split_flag) 생략하고, BT 분할 플래그(BT_split_flag) = 1과 BT 분할 타입이 세로 타입임을 지시하는 BT 분할 타입 정보 1를 부호화한다.
도 8에서, 심도 3의 첫 번째 노드에 해당하는 블록은 BT 분할된 부모 노드(즉, 심도 2의 첫 번째 노드)의 자식 노드로서, 더 이상 BT 분할되어 있지 않다. 따라서, 부호화 장치는 해당 블록이 BT 분할되지 않음을 지시하는 BT 분할 플래그(BT_split_flag) = 0만을 부호화한다.
그 결과, 깊이 우선 스캔(Depth-First Search) 방식으로 도 8의 분할 구조를 기록하면, 다음과 같이, 총 34 bits가 필요하다. 여기서, 밑줄 표시된 비트는 BT 분할에 관한 것이고, 나머지 비트들은 QT 분할에 관한 것이다.
1 ( QTBT의 리프 노드) 0 11 11 0 0 0 (심도 1의 첫 번째 노드와 이에 루트된 노드들) 0 10 0 0 (심도 1의 두 번째 노드와 이에 루트된 노드들) 1 0 11 0 10 0 0 0 0 0 0 0 10 0 0 (심도 1의 세 번째 노드와 이에 루트된 노드들) 0 0 (심도 1의 네 번째 노드)
이제, 본 실시예에서 부호화 장치로부터 시그널링된 분할 정보를 이용하여, 복호화 장치가, CTU를 복수의 CU로 분할하는 파티셔닝을 결정하는 방식을 설명한다.
복호화 장치는 먼저 QT의 분할과 관련된 제1 플래그(QT_split_flag)를 추출하여, 제1 플래그가 QT 분할을 지시하면 대응하는 노드를 하위 심도의 네 개의 노드로 분할한다. 그리고, QT의 리프 노드에 해당하는 노드에 대해서는 BT의 분할과 관련된 제2 플래그(BT_split_flag) 및 분할 타입 정보를 추출하여 해당 리프 노드를 BT 구조로 분할한다.
도 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 구조로 분할되지 않는다.
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에 의해 분할되지 않는다.
이렇게, 복호화부(510)는 먼저 QT 분할 플래그(QT_split_flag)를 반복적으로(recursively) 추출하여 CTU를 QT 구조로 분할한다. 그리고 QT의 리프 노드에 대해서는 BT 분할 플래그(BT_split_flag)를 추출하고, BT 분할 플래그(BT_split_flag)가 분할을 지시하면 분할 타입 정보를 추출한다. 이러한 방식을 통해 복호화 장치는 CTU가 도 8의 (a)와 같은 구조로 부호화 장치에 의해 분할되었음을 확인할 수 있다.
제2 실시예
CTU 사이즈가 커짐에 따라, QTBT 분할 구조에서, 분할된 블록들의 사이즈가 일정 수준 이하로 작아질 때까지 모든 노드들이 재차 QT 분할될 가능성이 높다. 전술한 제1 실시예에 따르면, QT 분할이 반복되는 횟수가 증가함에 따라, QT 분할 플래그를 이용하여 이들 QT 분할 정보를 표현하는 데 필요한 비트수는 4의 n승으로 증가하게 된다. 본 실시예는, 최상위 심도(즉, depth 0)부터 어느 하위 심도까지 모든 노드가 공통적으로 QT 분할되는 경우에, 이들 노드들의 QT 분할 정보를 줄이는 데 목적이 있다.
본 실시예에서, 분할된 블록이 어느 심도에 이를 때까지 루트 노드가 재귀적으로 QT 분할되는 경우에, 부호화 장치는, QT 분할 플래그를 이용하여 이들 QT 분할 정보를 표현하는 대신에, 그 심도를 특정하는 심도 정보를 시그널링할 수 있다.
부호화 장치는 상기 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 분할 정보로서 기능할 수 있다.
상기 심도 정보는, 예컨대, 절삭된 유너리(truncated unary) 방식으로 표기될 수 있다. 심도 정보는 CTU Header에 표현될 수 있다. 심도(depth) 별 예시적인 코드워드(codeword)는 다음과 같다.
Depth Codeword (Max=3)
0 0
1 10
2 110
3 111
위와 같이 최상위 QT 리프노드 심도를 사용하는 경우에, 루트 노드로부터 반복되는 QT 구조는 너비 우선 스캔(Breath First Scan) 방식으로 표현이 가능하고, 나머지 하위 QT나 BT는, 실시예 1과 유사하게, QT 분할 플래그, BT 분할 플래그 및 BT 분할 타입 정보를 이용하여 깊이 우선 스캔(Depth First Scan) 방식으로 표현이 가능하다.
도 8의 예시적인 QTBT 분할 구조는 루트 노드가 QT 분할되고, 심도 1의 첫 번째 노드와 두 번째 노드와 네번째 노드가 더 이상 QT 분할되지 않는, QT의 리프 노드들이다. 따라서, 도 8의 예시적인 QTBT 분할 구조에서 최상위 QT 리프 노드 심도는 1이다. 도 8의 QTBT 분할 구조를 표현함에 있어서, 최상위 QT 리프노드 심도를 표 1의 코드워드를 이용하여 별도로 표기하면, 다음과 같이, 총 35 bits가 필요하다. 여기서, 밑줄 표시된 비트는 BT 분할에 관한 것이고, 나머지 비트들은 QT 분할에 관한 것이다.
1 0 (최상위 QT 리프노드 심도) 0 11 11 0 0 0 (심도 1의 첫 번째 노드와 이에 루트된 노드들) 0 10 0 0 (심도 1의 두 번째 노드와 이에 루트된 노드들) 1 0 11 0 10 0 0 0 0 0 0 0 10 0 0 (심도 1의 세 번째 노드와 이에 루트된 노드들) 0 0 (심도 1의 네 번째 노드)
최상위 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 분할될 가능성이 높다는 점에 유의하라.
위와 같이, 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 분할 타입 정보를 이용하여 표현될 수 있다.
이해를 돕기 위해, 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분할됨을 나타내는 정보를 표현할 수 있다.
유사하게, 하나의 Picture에 포함된 모든 CTU들의 QTBT 분할 구조에서, 어느 심도까지 모든 노드들이 재귀적으로 QT 분할되는 경우에, 그 심도를 픽처-레벨 헤더 정보에(예를 들어, 픽처 파라미터 세트들(picture parameter set; PPS) 내에) 표현할 수 있다. 나아가, 하나의 Sequence에 포함된 모든 CTU들의 QTBT 분할 구조에서, 어느 심도까지 모든 노드들이 재귀적으로 QT 분할되는 경우에, 그 심도를 시퀀스-레벨 헤더 정보에(예를 들어, 시퀀스 파라미터 세트(sequence 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에 포함될 수 있다.
seq_parameter_set_rbsp( ) {
...
QT_depth_signal_flag
if(QT_depth_signal_flag) {
QT_ comm _depth_ minus3
...
다른 일부 예시들에서, 픽쳐-레벨 헤더 정보, 시퀀스-레벨 헤더 정보, 혹은 시퀀스-레벨 헤더 정보에 표현되는 QT 공통 심도는, 해당 레벨의 모든 CTU들이 실제로 그 QT 공통 심도까지 동일한 형태로 분할되는지 여부와 관계없이, 사전에 결정된 디폴트(default) 값일 수 있다. 이 경우, 부호화 장치는 SPS, PPS, 혹은 Slice에 디폴트 설정된 QT 공통 심도와 각 CTU의 최상위 QT 리프노드 심도 간의 차이값을 추가적으로 시그널링할 수 있다. 디폴트 값은 해당 레벨에 포함된 CTU들의 최상위 QT 리프노드 심도와 일치할 가능성과 관련된 통계에 기초하여 사전에 결정된 것일 수 있다. CTU 사이즈가 256x256 또는 128x128로 커짐에 따라, QT의 리프 노드의 사이즈가 32x32 또는 16x16로 될 때 까지는 모든 노드들이 QT 분할될 가능성이 높다는 점을 고려할 때, 심도 3 혹은 심도 4를 디폴트 값으로 설정하는 것이 비트 절감에 효율적일 수 있다. 또한, 디폴트 값은 해당 레벨에 포함된 모든 CTU들의 최상위 QT 리프노드 심도의 평균에 기초하여 결정될 수도 있다.
이제, 본 실시예에서 부호화 장치로부터 시그널링된 분할 정보를 이용하여, 복호화 장치가, CTU를 복수의 CU로 분할하는 파티셔닝을 결정하는 방식을 설명한다.
복호화 장치는 먼저 QTBT 구조에서 쿼드트리의 리프 노드가 적어도 하나 존재하는 심도(depth)들 중 가장 상위의 심도(즉, 최상위 QT 리프노드 심도)를 나타내는 심도 정보를 부호화된 비트스트림으로부터 추출한다. 상기 최상위 QT 리프노드 심도를 나타내는 심도 정보를 이용하여, 복호화 장치는 상기 QTBT의 루트 노드로부터 상기 최상위 QT 리프노드 심도에 속하는 노드들의 부모 노드까지의 모든 노드들에 대해 QT 분할을 수행한다. 예컨대, 최상위 QT 리프노드 심도가 2인 경우, 루트 노드를 QT 분할하고, 루트 노드의 (심도 1에 속하는) 4개의 자식 노드들을 각각 QT 분할한다.
최상위 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)로 결정된다.
나아가, 전술한 바와 같이, QT 공통 심도를 시그널링하는 기법이 Slice, Picture, 혹은 Sequence 레벨에 적용된 경우에, 복호화 장치는 비트스트림을 파싱하여 SPS(Sequence Parameter Set), PPS(Picture Parameter Set) 혹은 Slice Header에 표현된 심도정보를 추출한다. 추출된 심도정보를 이용하여, 복호화 장치는 심도정보가 지시하는 심도에 이를 때까지 모든 노드들을 재귀적으로 QT 분할할 수 있다.
제3 실시예
전술한 바와 같이, QTBT 분할 구조에서 쿼드트리의 리프 노드는 BT 구조로 더 파티셔닝될 수 있다. BT에서는 복수의 분할 타입이 존재할 수 있으며, 예컨대 해당 노드의 블록을 동일 크기의 두 개 블록으로 가로로 분할하는 타입(즉, 대칭 수평 분할; symmetric horizontal splitting)과 세로로 분할하는 타입(즉, 대칭 수직 분할; symmetric vertical splitting) 두 가지가 존재할 수 있다. 본 실시예에서는 이러한 BT를 표현하는 비트량을 줄일 수 있는 기법을 제안한다. 본 실시예에서 제안하는 BT 분할 정보의 표현 기법은 제1 실시예 혹은 제2 실시예에 예시된 QT 분할 정보의 표현 기법과 함께 사용될 수 있다.
도 9은 하나의 CU에서 BT로 표현될 수 있는 가짓수를 도시한 도면이다.
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으로 표현되어 있다.
도 9에서 수평 또는 수직으로 나뉜 부모 노드에서 자식 노드가 반복적으로 표현되는 점에 유의한다. 이에 착안하여, 본 발명은 부모 노드를 2 bits로 표현하고 자식 노드를 3 bits의 고정 길이(fixed length) 코드워드로 표현함으로써, 이들 부모 노드 및 자식 노드의 조합들을 표현하는 비트량을 줄이는 방식을 채용한다. 표 3에 예시적인 코드워드가 나열되어 있다. 부모 노드와 자식 노드가 같은 형태로 나눠지는 “10 10 10”와 “11 11 11”의 경우 리프 노드는 다르지만, 자식 노드를 특정 비트로 표기하면, 앞의 첫 두 비트(부모 노드의 2bit)로 분할 방법의 예측이 가능하다.
부모 노드(2bits) 자식노드 (제1실시예, 2 ~ 4 bits) 자식노드 (제3실시예, 3 bits)
10/11 0 0 000
0 10 001 ~ 110




0 11
10 0
10 11
11 0
11 10
10 10 10 111
11 11 11
예를 들어, 도 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)으로 표현될 수 있다.
이상에서 설명한 제1 실시예 내지 제3 실시예에서, QTBT 구조에 의한 블록 분할에 대한 정보를 효율적으로 시그널링하기 위해, 다음의 정보가 추가로 사용될 수 있다. 이 정보들은 영상의 헤더 정보로서 부호화되는데, 예컨대 SPS (Sequence Parameter Set)이나 PPS (Picture Parameter Set)로 부호화될 수 있다.
- CTU size: QTBT의 최상위 레이어, 즉, 루트 노드의 블록 크기
- MinQTSize: QT에서 허용되는 리프 노드의 최소 블록 크기
- MaxBTSize: BT에서 허용되는 루트 노드의 최대 블록 크기
- MaxBTDepth: BT에서 허용되는 최대 심도(Depth)
- MinBTSize: 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의 분할 여부나 분할 타입을 지시하는 정보들에 대한 부호화량을 줄일 수 있다.
이와 같이, SPS 또는 PPS에 MinQTSize, MaxBTSize, MaxBTDepth, MinBTSize 등의 정보가 추가로 정의되어 있는 경우에는, 복호화 장치는 해당 정보를 추출하고 QT 및 BT에 대한 분할 정보를 추출할 때 이 정보를 반영할 수 있다.
예컨대, QT에서 MinQTSize 과 동일한 크기를 가지는 블록은 더 이상 분할되지 않는다. 따라서 복호화 장치는 해당 블록의 QT에 관한 분할 정보(QT 분할 플래그)를 비트스트림으로부터 추출하지 않으며(즉, 비트스트림에는 해당 블록의 QT 분할 플래그가 존재하지 않음), 그 값을 자동으로 0으로 설정한다. 또한, QT에서 MaxBTSize보다 큰 크기를 가지는 블록은 BT가 존재하지 않는다. 따라서, 복호화 장치는 QT에서 MaxBTSize보다 큰 크기의 블록을 가지는 리프 노드에 대한 BT 분할 플래그가 추출하지 않으며, BT 분할 플래그를 자동으로 0으로 설정한다. 또한, BT의 해당 노드의 심도(depth)가 MaxBTDepth에 도달하면, 해당 노드의 블록은 더 이상 분할되지 않는다. 따라서, 해당 노드의 BT 분할 플래그를 비트스트림으로부터 추출되지 않으며, 그 값을 자동으로 0으로 설정한다. 또한, BT에서 MinBTSize와 동일한 크기를 가지는 블록은 더 이상 분할되지 않는다. 따라서, 복호화 장치는 MinBTSize와 동일한 크기를 가지는 블록의 BT 분할 플래그를 비트스트림으로부터 추출되지 않으며, 그 값을 자동으로 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를 포함한 휘도의 전체 블록 파티션 정보를 색차에서 그대로 활용할 수 있다.
또한, 색차 정보가 휘도 정보와 달리 세부적인 블록 파티션이 필요하지 않을 수 있다. 이를 고려하여, 일부 예시들에서, 휘도의 전체 블록 파티션 정보 중에서(즉, QTBT 파티션 정보 중에서) QT 파티션 정보만을 색차 CB의 블록 파티션 정보로 활용할 수 있다. 예컨대, CTU를 표현한 신택스(syntax)에 별도의 신택스 (split_cb_flag_for_QT_in_CTU)를 추가하여, 이 값이 0인 경우에는 복호화 장치에서 휘도에 대한 전체 블록 파티션 정보 중에서 QT 파티션 정보을 휘도 CB에 대한 QT 파티션 정보를 색차 CB의 QT 블록 파티션 정보로써 사용하고, 이 값이 1인 경우에는 기존과 같이 서로 다른 블록 파티션 정보를 복호화 장치에 보낼 수 있다.
제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 공통 심도와의 차이값으로 표기될 수 있다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (15)

  1. 영상 데이터를 부호화하는 방법으로서,
    영상 데이터의 블록을 부호화하기 위한 QTBT(QuadTree plus BinaryTree) 블록 파티셔닝 구조를 결정하는 단계, 여기서 상기 QTBT 블록 파티셔닝 구조는 쿼드트리의 리프 노드(leaf node)로부터 바이너리트리가 루트된(rooted) 구조임; 및
    상기 결정된 블록 파티셔닝 구조에 기초하여, 상기 영상 데이터의 블록과 상기 결정된 블록 파티셔닝 구조를 표현하는 분할 정보를 부호화하는 단계를 포함하고,
    상기 분할 정보를 부호화하는 것은,
    상기 결정된 블록 파티셔닝 구조에서, 쿼드트리의 리프 노드가 적어도 하나 존재하는 심도(depth)들 중 가장 상위의 심도(이하 “최상위 QT 리프노드 심도”로 지칭함)를 판단하는 단계; 및
    상기 결정된 블록 파티셔닝 구조에서 루트 노드로부터 상기 최상위 QT 리프노드 심도에 속하는 노드들의 부모 노드까지의 쿼드트리 분할 정보로서, 상기 최상위 QT 리프노드 심도를 나타내는 심도 정보를 부호화하는 단계를 포함하는, 영상 데이터를 부호화하는 방법.
  2. 제1항에 있어서,
    상기 최상위 QT 리프노드 심도를 나타내는 심도 정보는,
    절삭된 유너리(truncated unary) 코드워드로 표현되어, 상기 QTBT의 심도들 중에서 상기 최상위 QT 리프노드 심도를 특정하는 것임을 특징으로 하는, 영상 데이터를 부호화하는 방법.
  3. 제1항에 있어서,
    상기 바이너리트리는 부모 노드를 2개의 자식 노드로 분할하는 분할 타입들에 의해 정의되며, 상기 분할 타입들은 대칭 수평 분할 및 대칭 수직 분할을 포함하는, 영상 데이터를 부호화하는 방법.
  4. 제3항에 있어서,
    상기 분할 정보를 부호화하는 단계는,
    상기 부모 노드의 분할과 상기 자식 노드의 분할의 가능한 조합들 중에서 어느 하나를 특정하는 방식으로, 상기 결정된 블록 파티셔닝 구조에서 바이너리트리를 표현하는 바이너리트리 분할 정보를 부호화하는 단계를 더 포함하는 것을 특징으로 하는, 영상 데이터를 부호화하는 방법.
  5. 제4항에 있어서,
    상기 부모 노드의 분할과 상기 자식 노드의 분할의 가능한 조합은,
    상기 부모 노드의 분할을 나타내는 고정길이 코드워드와 상기 자식 노드의 분할을 나타내는 고정길이 코드워드로 구분되는 것을 특징으로 하는, 영상 데이터를 부호화하는 방법.
  6. 제1항에 있어서,
    상기 영상 데이터의 블록을 부호화하기 위한 QTBT 블록 파티셔닝 구조를 결정하는 단계는,
    상기 영상 데이터의 블록의 휘도(luma) 성분과 색차(chroma) 성분에 대해 개별적으로 상기 QTBT 블록 파티셔닝 구조를 결정하는 단계를 더 포함하는 것을 특징으로 하는, 영상 데이터를 부호화하는 방법.
  7. 제6항에 있어서,
    상기 분할 정보를 부호화하는 단계는,
    상기 휘도 성분에 대해 결정된 QTBT 블록 파티셔닝 구조와 상기 색차 성분에 대해 결정된 QTBT 블록 파티셔닝 구조 간의 동일 여부를 나타내는 플래그를 부호화하는 단계; 및
    상기 휘도 성분에 대해 결정된 QTBT 블록 파티셔닝 구조와 상기 색차 성분에 대해 결정된 QTBT 블록 파티셔닝 구조가 서로 동일한 경우에, 상기 휘도 성분에 대해 결정된 QTBT 블록 파티셔닝 구조와 상기 색차 성분에 대해 결정된 QTBT 블록 파티셔닝 구조 중 어느 하나만의 분할 정보를 부호화하는 단계
    를 더 포함하는 것을 특징으로 하는, 영상 데이터를 부호화하는 방법.
  8. 영상 데이터를 복호화하는 방법으로서,
    부호화된 영상 데이터의 블록 및 상기 영상 데이터의 블록과 관련된 분할 정보를 파싱하는 단계, 여기서 상기 부호화된 영상 데이터의 블록은 QTBT(quadtree plus binarytree) 블록 파티셔닝 구조에 따라 복수의 분할 블록으로 분할되어 있으며, 상기 QTBT 블록 파티셔닝 구조는 쿼드트리(quadtree)의 리프 노드(leaf node)로부터 바이너리트리(binarytree)가 루트된(rooted) 구조임; 및
    상기 분할 정보를 이용하여 상기 QTBT를 결정하면서 상기 QTBT의 각 리프 노드별로 상기 부호화된 영상 데이터의 블록을 복호화하는 단계를 포함하고,
    상기 분할 정보는 상기 QTBT 블록 파티셔닝 구조에서 쿼드트리의 리프 노드가 적어도 하나 존재하는 심도(depth)들 중 가장 상위의 심도(이하 “최상위 QT 리프노드 심도”로 지칭함)를 나타내는 심도 정보를 포함하며,
    상기 QTBT를 결정하는 것은, 상기 최상위 QT 리프노드 심도를 나타내는 심도 정보를 이용하여, 상기 QTBT의 루트 노드로부터 상기 최상위 QT 리프노드 심도에 속하는 노드들의 부모 노드까지의 모든 노드들에 대해 쿼드트리 분할을 수행하는 단계를 포함하는, 영상 데이터를 복호화하는 방법.
  9. 제8항에 있어서,
    상기 최상위 QT 리프노드 심도를 나타내는 심도 정보는,
    절삭된 유너리(truncated unary) 코드워드로 표현되어, 상기 QTBT의 심도들 중에서 상기 최상위 QT 리프노드 심도를 특정하는 것을 특징으로 하는, 영상 데이터를 복호화하는 방법.
  10. 제8항에 있어서,
    상기 바이너리트리는 부모 노드를 2개의 자식 노드로 분할하는 분할 타입들에 의해 정의되며, 상기 분할 타입들은 대칭 수평 분할 및 대칭 수직 분할을 포함하는 것을 특징으로 하는, 영상 데이터를 복호화하는 방법.
  11. 제10항에 있어서,
    상기 분할 정보는 상기 QTBT 블록 파티셔닝 구조에서 바이너리트리 분할 정보를 포함하고, 상기 바이너리트리 분할 정보는 상기 부모 노드의 분할과 상기 자식 노드의 분할의 가능한 조합들 중에서 어느 하나를 특정하는 방식으로 표현된 것을 특징으로 하는, 영상 데이터를 복호화하는 방법.
  12. 제11항에 있어서,
    상기 부모 노드의 분할과 상기 자식 노드의 분할의 가능한 조합은,
    상기 부모 노드의 분할을 나타내는 고정길이 코드워드와 상기 자식 노드의 분할을 나타내는 고정길이 코드워드로 구분되는 것을 특징으로 하는, 영상 데이터를 복호화하는 방법.
  13. 제11항에 있어서,
    상기 부호화된 영상 데이터의 블록을 복호화하는 단계는,
    상기 바이너리트리 분할 정보를 이용하여, 상기 쿼드트리의 리프 노드들에 대해 바이너리 분할을 수행하는 단계를 포함하는 것을 특징으로 하는, 영상 데이터를 복호화하는 방법.
  14. 제8항에 있어서,
    상기 분할 정보는 상기 영상 데이터의 블록에서 휘도 성분에 대한 QTBT 블록 파티셔닝 구조와 색차 성분에 대한 QTBT 블록 파티셔닝 구조 간의 동일 여부를 나타내는 플래그를 포함하고,
    상기 QTBT의 각 리프 노드별로 상기 부호화된 영상 데이터의 블록을 복호화하는 단계는, 상기 플래그가 상기 휘도 성분에 대한 QTBT 블록 파티셔닝 구조와 상기 색차 성분에 대한 QTBT 블록 파티셔닝 구조가 서로 동일하다고 지시하는 경우에, 상기 QTBT의 각 리프 노드별로 상기 부호화된 영상 데이터의 블록의 휘도(luma) 성분과 색차(chroma) 성분에 대해 복호화하는 단계를 포함하는, 영상 데이터를 복호화하는 방법.
  15. 영상 데이터를 복호화하는 장치로서,
    메모리; 및
    하나 이상의 프로세서들을 포함하며,
    상기 하나 이상의 프로세서들은,
    부호화된 영상 데이터의 블록 및 상기 영상 데이터의 블록과 관련된 분할 정보를 파싱하는 단계, 여기서 상기 부호화된 영상 데이터의 블록은 QTBT(quadtree plus binarytree) 블록 파티셔닝 구조에 따라 복수의 분할 블록으로 분할되어 있고, 상기 QTBT 블록 파티셔닝 구조는 쿼드트리(quadtree)의 리프 노드(leaf node)로부터 바이너리트리(binarytree)가 루트된(rooted) 구조이며, 상기 분할 정보는 상기 QTBT 블록 파티셔닝 구조에서 쿼드트리의 리프 노드가 적어도 하나 존재하는 심도(depth)들 중 가장 상위의 심도(이하 “최상위 QT 리프노드 심도”로 지칭함)를 나타내는 심도 정보를 포함함; 및
    상기 분할 정보를 이용하여 상기 QTBT를 결정하면서, 상기 QTBT의 각 리프 노드별로 상기 부호화된 영상 데이터의 블록을 복호화하는 단계를 수행하도록 구성되되,
    상기 QTBT를 결정하는 것은,
    상기 최상위 QT 리프노드 심도를 나타내는 심도 정보를 이용하여, 상기 QTBT의 루트 노드로부터 상기 최상위 QT 리프노드 심도에 속하는 노드들의 부모 노드까지의 모든 노드들에 대해 쿼드트리 분할을 수행하는 단계를 포함하는, 영상 데이터를 복호화하는 장치.
KR1020170031234A 2017-03-13 2017-03-13 영상 부호화 또는 복호화하기 위한 장치 및 방법 Active KR102390384B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170031234A KR102390384B1 (ko) 2017-03-13 2017-03-13 영상 부호화 또는 복호화하기 위한 장치 및 방법
PCT/KR2018/002891 WO2018169267A1 (ko) 2017-03-13 2018-03-12 영상 부호화 또는 복호화하기 위한 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170031234A KR102390384B1 (ko) 2017-03-13 2017-03-13 영상 부호화 또는 복호화하기 위한 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20180104451A KR20180104451A (ko) 2018-09-21
KR102390384B1 true KR102390384B1 (ko) 2022-04-22

Family

ID=63522489

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170031234A Active KR102390384B1 (ko) 2017-03-13 2017-03-13 영상 부호화 또는 복호화하기 위한 장치 및 방법

Country Status (2)

Country Link
KR (1) KR102390384B1 (ko)
WO (1) WO2018169267A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116962692A (zh) 2018-09-21 2023-10-27 Lg电子株式会社 解码和编码设备、存储介质及发送用于图像的数据的设备
WO2020084601A1 (en) * 2018-10-26 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Redundancy reduction in block partition
WO2020164480A1 (en) 2019-02-11 2020-08-20 Beijing Bytedance Network Technology Co., Ltd. Condition dependent video block partition
WO2020256485A1 (ko) * 2019-06-19 2020-12-24 엘지전자 주식회사 크로마 블록의 적응적 크기 제한을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법

Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101959482B1 (ko) * 2011-09-16 2019-03-18 한국항공대학교산학협력단 영상 부호화/복호화 방법 및 그 장치
US9462275B2 (en) * 2012-01-30 2016-10-04 Qualcomm Incorporated Residual quad tree (RQT) coding for video coding
KR101789954B1 (ko) * 2013-12-27 2017-10-25 인텔 코포레이션 차세대 비디오 코딩을 위한 콘텐츠 적응적 이득 보상된 예측
US9794626B2 (en) * 2014-05-01 2017-10-17 Qualcomm Incorporated Partitioning schemes in multi-layer video coding
KR101801255B1 (ko) * 2017-02-07 2017-11-27 인텔렉추얼디스커버리 주식회사 쿼드트리 구조 기반의 적응적 양자화 파라미터 부호화 및 복호화 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
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
WO2018169267A1 (ko) 2018-09-20
KR20180104451A (ko) 2018-09-21

Similar Documents

Publication Publication Date Title
US11882286B2 (en) Image processing method, and device for same
KR102515610B1 (ko) 영상 부호화 또는 복호화하기 위한 장치 및 방법
KR102435895B1 (ko) 영상 부호화 또는 복호화하기 위한 장치 및 방법
US10979708B2 (en) Apparatus and method for video encoding or decoding
KR20250053829A (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
US20190356915A1 (en) Method and apparatus for encoding/decoding video signal using secondary transform
US20210144407A1 (en) Method and device for encoding or decoding video
US11272220B2 (en) Boundary forced partition
KR20180082330A (ko) 영상 부호화 또는 복호화하기 위한 장치 및 방법
WO2019195280A1 (en) Multi-type-tree framework for transform in video coding
KR102390384B1 (ko) 영상 부호화 또는 복호화하기 위한 장치 및 방법
US20220353505A1 (en) Method for reconstructing residual blocks of chroma blocks, and video decoding apparatus
US11089312B2 (en) Method for processing image and apparatus therefor

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20170313

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20200304

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20170313

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20210708

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20220126

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20220420

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20220420

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20250319

Start annual number: 4

End annual number: 4