WO2018217024A1 - 다양한 블록 크기를 지원하는 영상 부호화 또는 복호화를 위한 장치 및 방법 - Google Patents

다양한 블록 크기를 지원하는 영상 부호화 또는 복호화를 위한 장치 및 방법 Download PDF

Info

Publication number
WO2018217024A1
WO2018217024A1 PCT/KR2018/005879 KR2018005879W WO2018217024A1 WO 2018217024 A1 WO2018217024 A1 WO 2018217024A1 KR 2018005879 W KR2018005879 W KR 2018005879W WO 2018217024 A1 WO2018217024 A1 WO 2018217024A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
size
leaf node
split
block size
Prior art date
Application number
PCT/KR2018/005879
Other languages
English (en)
French (fr)
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
Priority claimed from KR1020170097259A external-priority patent/KR102435881B1/ko
Priority to CN202311302153.7A priority Critical patent/CN117201821A/zh
Priority to US16/617,250 priority patent/US11218697B2/en
Priority to CN202311297740.1A priority patent/CN117201818A/zh
Priority to CN201880036548.8A priority patent/CN110720217B/zh
Priority to CN202311300208.0A priority patent/CN117201819A/zh
Application filed by 에스케이텔레콤 주식회사 filed Critical 에스케이텔레콤 주식회사
Priority to CN202311302116.6A priority patent/CN117201820A/zh
Publication of WO2018217024A1 publication Critical patent/WO2018217024A1/ko
Priority to US17/365,079 priority patent/US11736691B2/en
Priority to US17/365,061 priority patent/US11665346B2/en
Priority to US17/944,707 priority patent/US11792397B2/en
Priority to US17/944,693 priority patent/US11818348B2/en

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/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 영상을 효율적으로 부호화하기 위한 영상 부호화 또는 복호화에 관한 것이다. 본 개시의 기술들은 바이너리 트리 (binary tree) 분할 및 쿼드 트리 (quad tree) 분할을 이용하여 결정되는 QTBT 블록 파티셔닝 구조에 포함되는 블록의 다양한 분할 모양과 블록들의 분할 형태를 표현하는 신택스(syntax)와, 이를 위한 상위 레벨에 표현되는 신택스 요소(syntax element)들과 관련되어 있다.

Description

다양한 블록 크기를 지원하는 영상 부호화 또는 복호화를 위한 장치 및 방법
본 발명은 영상을 효율적으로 부호화하기 위한 영상 부호화 또는 복호화에 관한 것이다. 보다 상세하게는, QTBT(Quadtree plus Binary tree) 기반 블록 파티셔닝에 관한 분할 정보를 시그널링하는 기법에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래 기술을 구성하는 것은 아니다.
HEVC(High Efficiency Video Coding)에서 CTU(Coding Tree Unit)은 영상 내 다양한 로컬의 특성을 반영하기 위한 코딩 트리로 쿼드트리(QuadTree) 방식을 이용하여 CU(Coding Unit)로 나눈다. 이렇게 CU가 결정되면 인트라, 인터 코딩 예측도 CU 단위에서 이루어지게 된다. 각각의 CU는 다시 PU(Prediction Unit)으로 나뉘며 PU가 결정이 되고 예측 과정이 진행된 후 CU는 잔차 블록(residual block)에 대해 TU(Transformation Unit)으로 나뉘는 과정이 이루어진다.
도 1은 CTU가 쿼드트리(QuadTree) 방식으로 분할된 일례와 이를 트리(tree) 구조로 표현한 도면이다. 하나의 큰 블록 (CTU)을 네 개의 정사각형으로 사등분 분할하고, 분할된 좌상측 및 우상측 블록들은 더 이상의 분할이 발생하지 않았고, 좌하측 및 우하측 블록들은 한번의 사등분 분할이 더 발생하였다. 도 1의 (b)에서 블록을 의미하는 원 모양은 '노드(node)'라 지칭되며, '리프 노드(leaf node)'라 지칭되는 더 이상 분할되지 않은 최종 노드는 회색으로 채워져 있다. 즉, 모든 리프 노드들은 최종 부호화 블록인 CU를 의미한다.
앞에서 언급한 CTU 및 CU를 표현하는 high-level syntax로서, SPS (sequence parameter set)에는 <표 1>와 같이 2가지 신택스 요소(syntax element)가 명시된다.
seq_parameter_set_rbsp( ) { Descriptor
...
log2_min_luma_coding_block_size_minus3 ue(v)
log2_diff_max_min_luma_coding_block_size ue(v)
...
여기서, log2_min_luma_coding_block_size_minus3는 루마 블록 기준으로 허용되는 가장 작은 CU 블록의 크기(min_luma_coding_block_size)를 특정하며, log2_diff_max_min_luma_coding_block_size는 min_luma_coding_block_size와 루마 블록 기준으로 허용되는 가장 큰 CU 블록의 크기(max_luma_coding_block_size) 사이의 차이를 특정한다.상기 두 개의 신택스 요소를 이용하여, 실제 가장 작은 luma 블록의 크기 (MinCbSizeY)는 수학식 3과 같고, CTU 사이즈 (CtbSizeY)는 수학식 4와 같다.
MinCbLog2SizeY = log2_min_luma_coding_block_size_minus3 + 3 (1)
CtbLog2SizeY = MinCbLog2SizeY +
  log2_diff_max_min_luma_coding_block_size (2)
MinCbSizeY = 1  <<  MinCbLog2SizeY (3)
CtbSizeY = 1  <<  CtbLog2SizeY (4)
CTU 내 복수의 CU 블록의 분할 정보는, <표 2>와 같이, slice header 중 coding quadtree header 부분에 기록된다. 주어진 노드에 대해 쿼드 트리 분할이 적용되었는지 여부를 지시하는 데에는 1비트 플래그(split_cu_flag)가 사용된다. 상기 플래그 값이 "0"이면 분할되지 않았음을, 상기 플래그 값이 "1"이면 사등분으로 분할 되었음을 의미한다. 상기 플래그가 반복적으로 사용되면서 전체 CTU 내 분할된 CU 블록의 크기 및 위치 정보 등이 표시된다.
coding_quadtree( x0, y0, log2CbSize, cqtDepth ) { Descriptor
...
split_cu_flag[ x0 ][ y0 ] ae(v)
...
최근에 QTBT(Quadtree plus Binary tree) 구조가 새롭게 논의되고 있는데, 이러한 QTBT 구조는 기존의 CU, PU, TU 개념을 제거하면서도 비디오 데이터의 다양한 로컬 특징을 매칭하기 위해 CU 분할 모양에 유연성을 제공한다. 즉, QTBT에서 CU는 정사각형 혹은 직사각형의 모양이 될 수 있도록 정의할 수 있다. 또한, HEVC에서 CTU 사이즈는 64였으나 영상의 해상도가 커짐에 따라 128, 256 등 더 큰 블록 사이즈의 필요성이 논의되고 있는 바, CTU에서 블록이 최소 4x4까지 분할될 경우 이러한 분할 정보를 시그널링하는 데 소요되는 데이터량은 점점 더 증가하게 된다.
본 발명은 QTBT(Quadtree plus Binary tree) 기반 블록 파티셔닝에 관한 분할 정보를 효율적으로 시그널링하는 데 그 목적이 있다.
본 발명의 일 측면에 의하면, 영상 데이터의 블록에 대한 부호화된 데이터를 포함하는 비트스트림을 수신하는 단계; 상기 영상 데이터의 블록이 속하는 상위 레벨의 헤더 정보를 복호화하여, 상위 레벨에서 정의된 블록 파티셔닝에 관한 신택스 요소(syntax element)들을 파싱하는 단계; 상기 신택스 요소들로부터 블록 파티셔닝에 대한 파라미터들을 산출하는 단계; 산출된 파라미터들을 기초로, 상기 비트스트림으로부터 상기 영상 데이터의 블록에 대한 QTBT 블록 파티셔닝 구조를 도출하는 단계; 및 상기 영상 비트스트림을 기초로 QTBT의 리프 노드들에 대응하는 최종 서브 블록들을 복호화하는 단계를 포함하는 영상 복호화 방법을 제공한다.
본 발명의 다른 측면에 의하면, 영상 데이터의 블록에 대한 부호화된 데이터를 포함하는 비트스트림을 수신하는 단계; 상기 영상 데이터의 블록이 속하는 상위 레벨의 헤더 정보를 복호화하여, 상위 레벨에서 정의된 블록 파티셔닝에 관한 신택스 요소(syntax element)들을 파싱하는 단계; 상기 신택스 요소들로부터 블록 파티셔닝에 대한 파라미터들을 산출하는 단계, 산출된 파라미터들을 기초로, 상기 비트스트림으로부터 상기 영상 데이터의 블록에 대한 QTBT 블록 파티셔닝 구조를 도출하는 단계; 및 상기 영상 비트스트림을 기초로 QTBT의 리프 노드들에 대응하는 최종 서브 블록들을 복호화하는 단계를 포함하는 영상 복호화 방법을 제공한다.
일부 예시에서, 상기 블록 파티셔닝에 대한 파라미터들은 BT에서 허용되는 리프 노드(leaf node)의 최소 블록 크기를 가리키는 제1 파라미터, QT에서 허용되는 리프 노드의 최소 블록 크기를 가리키는 제2 파라미터, BT에서 허용되는 루트 노드(root node)의 최대 블록 크기를 가리키는 제3 파라미터, 및 상기 영상 데이터의 블록의 크기를 가리키는 제4 파라미터를 포함한다.
다른 일부 예시에서, 상기 블록 파티셔닝에 대한 파라미터들은 대칭 분할되어 생성된 BT 리프 노드의 최소 블록 크기를 가리키는 제1 파라미터, 비대칭 분할되어 생성된 BT 리프 노드의 최소 블록 크기를 가리키는 제2 파라미터, QT에서 허용되는 리프 노드의 최소 블록 크기를 가리키는 제3 파라미터, BT에서 허용되는 루트 노드의 최대 블록 크기를 가리키는 제4 파라미터, 상기 영상 데이터의 블록의 크기를 가리키는 제5 파라미터를 포함한다.
도 1은 CTU가 쿼드트리(QuadTree) 방식으로 분할된 일례와 이를 트리(tree) 구조로 표현한 도면이다.
도 2는 본 개시의 기술들을 구현할 수 있는 영상 부호화 장치의 예시적인 블록도이다.
도 3은 본 발명에서 제안하는 BT 분할 형태들을 예시한 도면이다.
도 4는 본 개시의 기술들을 구현할 수 있는 영상 복호화 장치의 예시적인 블록도이다.
도 5는 쿼드트리(QuadTree) 방식으로 분할된 일례와 이를 트리(tree) 구조로 표현한 도면이다.
도 6은 본 발명의 일 실시예에 따른 BT 분할 신택스에 대한 시맨틱스에서, 분할 형태에 따른 비트 할당 모습을 트리(tree)로 도시한 도면이다.
도 7은 본 발명의 다른 실시예에 따른 BT 분할 신택스에 대한 시맨틱스에서, 분할 형태에 따른 비트 할당 모습을 트리(tree)로 도시한 도면이다.
도 8은 본 발명의 또 다른 실시예에 따른 BT 분할 신택스에 대한 시맨틱스에서, 분할 형태에 따른 비트 할당 모습을 트리(tree)로 도시한 도면이다.
도 9는 본 발명의 또 다른 실시예에 따른 BT 분할 신택스에 대한 시맨틱스에서, 분할 형태에 따른 비트 할당 모습을 트리(tree)로 도시한 도면이다.
도 10은 본 발명의 또 다른 실시예에 따른 BT 분할 신택스에 대한 시맨틱스에서, 분할 형태에 따른 비트 할당 모습을 트리(tree)로 도시한 도면이다.
도 11은 본 발명의 일 실시예에 따른 영상 복호화 장치가 본 제약에 따른 두 번째 분할을 결정하는 방법을 예시한 흐름도이다.
도 12는 본 발명의 일 실시예에 따른 영상 복호화 장치가 본 제약에 따른 두 번째 분할을 결정하는 방법을 예시한 흐름도이다.
도 13은 주어진 블록이 세 영역으로 BT 분할된 형태와 두 영역으로 BT 분할된 형태를 예시한 도면이다.
도 14는 영상 복호화 장치가 BT_split_flag의 두 번째 이진수를 시그널링하지 않는 BT 예외에 대한 과정을 나타내는 흐름도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성 요소들에 식별 부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
이하의 기술들은 영상 신호(video signal)를 인코딩(encoding) 및/또는 디코딩하도록 구성된 영상 신호 처리 장치에서 사용될 수 있다. 일반적으로 영상 신호는 눈으로 인지가능한 이미지 신호(image signal) 또는 픽처들의 시퀀스를 지칭하지만, 본 명세서에서 영상 신호는 코딩된 픽처(picture)를 나타내는 비트들의 시퀀스(sequence) 또는 비트 시퀀스에 해당하는 비트스트림을 지칭하는 데 사용될 수 있다. 픽처(picture)는 샘플들의 배열(array)을 지칭할 수 있으며, 프레임(frame), 영상(image) 등으로 지칭될 수 있다. 보다 구체적으로, 픽처는 샘플들의 이차원 배열 또는 이차원 샘플 배열을 지칭할 수 있다. 샘플은 픽처를 구성하는 최소 단위를 지칭할 수 있고, 픽셀(pixel), 화소(picture element), 펠(pel) 등으로 지칭될 수 있다. 샘플은 휘도(luminance, luma) 성분 및/또는 색차(chrominance, chroma) 성분을 포함할 수 있다. 본 명세서에서, 코딩은 인코딩을 지칭하는 데 사용될 수도 있고, 혹은 인코딩/디코딩을 통칭할 수 있다.
픽처는 적어도 하나의 슬라이스를 포함할 수 있으며, 슬라이스는 적어도 하나의 블록을 포함할 수 있다. 슬라이스는 병렬 처리 등의 목적, 데이터 손실 등으로 인해 비트스트림이 훼손된 경우 디코딩의 재동기화 등의 목적을 위해 정수 개의 블록을 포함하도록 구성될 수 있으며, 각 슬라이스는 서로 독립적으로 코딩될 수 있다. 블록은 적어도 하나의 샘플을 포함할 수 있으며, 샘플들의 배열을 지칭할 수 있다. 블록은 픽처보다 작거나 같은 크기를 가질 수 있다. 블록은 유닛으로 지칭될 수 있다. 현재 코딩되는 픽처를 현재 픽처라고 지칭하고, 현재 코딩되는 블록을 현재 블록이라고 지칭할 수 있다.
코딩 트리 유닛(coding tree unit: CTU) 혹은 코딩 트리 블록(coding tree block: CTB)은 픽처를 구성하는 가장 기본적인 단위를 지칭하며, 픽처의 텍스처(texture)에 따라 코딩 효율을 높이기 위해 쿼드-트리(quad-tree) 형태의 코딩 블록들로 분할될 수 있다. 코딩 블록(coding block: CB) 혹은 코딩 유닛(coding unit: CU)은 코딩을 수행하는 기본 단위를 지칭할 수 있으며, 코딩 블록 단위로 인트라 코딩 또는 인터 코딩이 수행될 수 있다. 인트라 코딩은 인트라 예측을 이용하여 코딩을 수행하는 것을 지칭할 수 있으며, 인트라 예측은 동일한 픽처 또는 슬라이스 내에 포함된 샘플들을 이용하여 예측을 수행하는 것을 지칭할 수 있다. 인터 코딩은 인터 예측을 이용하여 코딩을 수행하는 것을 지칭할 수 있으며, 인터 예측은 현재 픽처와 서로 다른 픽처에 포함된 샘플들을 이용하여 예측을 수행하는 것을 지칭할 수 있다. 인트라 코딩을 이용하여 코딩되는 블록 또는 인트라 예측 모드로 코딩된 블록을 인트라 블록이라고 지칭할 수 있고, 인터 코딩을 이용하여 코딩되는 블록 또는 인터 예측 모드로 코딩된 블록을 인터 블록이라고 지칭할 수 있다. 또한, 인트라 예측을 이용한 코딩 모드를 인트라 모드라고 지칭할 수 있고, 인터 예측을 이용한 코딩 모드를 인터 모드라고 지칭할 수 있다.
본 개시의 기술들은 블록의 다양한 분할 모양과, 블록들의 분할 형태를 표현하는 신택스(syntax)와, 이를 위한 상위 레벨에 표현되는 신택스 요소(syntax element)들과 관련되어 있다.
도 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) 구조 및 상위 노드가 두 개의 하위 노드로 분할되는 바이너리트리(BinaryTree, BT) 구조를 혼용한 QTBT (QuadTree plus BinaryTree) 구조가 사용될 수 있다.
QTBT (QuadTree plus BinaryTree) 구조에서, CTU는 먼저 QT 구조로 분할될 수 있다. 쿼드트리 분할은 분할 블록(splitting block)의 크기가 QT에서 허용되는 리프 노드의 최소 블록 크기(MinQTSize)에 도달 할 때까지 반복 될 수 있다. 쿼드트리의 리프 노드가 BT에서 허용되는 루트 노드의 최대 블록 크기(MaxBTSize)보다 크지 않은 경우, BT 구조로 더 파티셔닝될 수 있다. BT에서는 복수의 분할 타입이 존재할 수 있다. 도 3은 본 발명에서 제안하는 BT 분할 형태를 예시한 도면이다. 예컨대, 일부 예시에서, 주어진 블록을 동일 크기의 두 개 블록으로 가로로 분할하는 타입(즉, symmetric horizontal splitting)과 세로로 분할하는 타입(즉, symmetric vertical splitting) 두 가지(도 3에서 1/2로 표시됨)가 존재할 수 있다. 또한, 주어진 블록을 서로 비대칭 형태의 두 개의 블록으로 분할하는 타입들이 추가로 더 존재할 수도 있다. 비대칭 형태로는 주어진 블록을 1:3의 크기 비율을 가지는 두 개의 직사각형 블록으로 분할하는 형태(도 3에서 1/4로 표시됨)를 포함할 수 있고, 혹은 주어진 블록을 3:1의 크기 비율을 가지는 두 개의 직사각형 블록으로 분할하는 형태(도 3에서 3/4로 표시됨)를 포함할 수 있고, 혹은 주어진 블록을 1:2:1의 크기 비율을 가지는 3개의 직사각형 블록으로 분할하는 형태(도 3에서 tri(1/4 & 3/4)로 표시됨)를 포함할 수도 있다. 나아가, 1:3, 3:1 이외에 더 작은 비대칭 분할(예컨대, 1:7, 7:1 등)이 포함될 수도 있다.
블록 분할부(210)가 QTBT 구조에 의해 CTU를 분할하여 생성하는 분할 정보는 부호화부(250)에 의해 부호화되어 영상 복호화 장치로 전달된다.
이하에서는, 부호화 또는 복호화하고자 하는 CU(즉, QTBT의 리프 노드)에 해당하는 블록을 '현재 블록'이라 칭한다.
예측부(220)는 현재 블록을 예측하여 예측블록을 생성한다. 예측부(220)는 인트라 예측부(222)와 인터 예측부(224)를 포함한다.
인트라 예측부(222)는 현재 블록이 포함된 현재 픽처 내에서 현재 블록의 주변에 위치한 픽셀(참조 픽셀)들을 이용하여 현재 블록 내의 픽셀들을 예측한다. 예측 방향에 따라 복수의 인트라 예측모드가 존재하며, 각 예측모드에 따라 사용할 주변 픽셀과 연산식이 다르게 정의된다. 특히, 인트라 예측부(222)는 현재 블록을 부호화하는데 사용할 인트라 예측 모드를 결정할 수 있다. 일부 예들에서, 인트라 예측부(222)는 여러 인트라 예측 모드들을 사용하여 현재 블록을 인코딩하고, 테스트된 모드들로부터 사용할 적절한 인트라 예측 모드를 선택할 수도 있다. 예를 들어, 인트라 예측부(222)는 여러 테스트된 인트라 예측 모드들에 대한 레이트 왜곡(rate-distortion) 분석을 사용하여 레이트 왜곡 값들을 계산하고, 테스트된 모드들 중 최선의 레이트 왜곡 특징들을 갖는 인트라 예측 모드를 선택할 수도 있다.
인터 예측부(224)는 현재 픽처보다 먼저 부호화 및 복호화된 참조 픽처 내에서 현재 블록과 가장 유사한 블록을 탐색하고, 그 탐색된 블록을 이용하여 현재 블록에 대한 예측블록을 생성한다. 그리고, 현재 픽처 내의 현재 블록과 참조 픽처 내의 예측블록 간의 변위(displacement)에 해당하는 움직임벡터(motion vector)를 생성한다. 현재 블록을 예측하기 위해 사용된 참조 픽처에 대한 정보 및 움직임벡터에 대한 정보를 포함하는 움직임 정보는 부호화부(250)에 의해 부호화되어 영상 복호화 장치로 전달된다.
감산기(230)는 현재 블록으로부터 인트라 예측부(222) 또는 인터 예측부(224)에 의해 생성된 예측블록을 감산하여 잔차 블록을 생성한다.
변환부(240)는 공간 영역의 픽셀 값들을 가지는 잔차 블록 내의 잔차 신호를 주파수 도메인의 변환 계수로 변환한다. 변환부(240)는 잔차 블록 내의 잔차 신호들을 현재 블록의 크기를 변환 단위로 사용하여 변환할 수 있으며, 또는 잔차 블록을 더 작은 복수의 서브블록을 분할하고 서브블록 크기의 변환 단위로 잔차 신호들을 변환할 수도 있다. 잔차 블록을 더 작은 서브블록으로 분할하는 방법은 다양하게 존재할 수 있다. 예컨대, 기정의된 동일한 크기의 서브블록으로 분할할 수도 있으며, 또는 잔차 블록을 루트 노드로 하는 QT(quadtree) 방식의 분할을 사용할 수도 있다.
양자화부(245)는 변환부(240)로부터 출력되는 변환 계수들을 양자화하고, 양자화된 변환 계수들을 부호화부(250)로 출력한다.
부호화부(250)는 양자화된 변환 계수들을 CABAC 등의 부호화 방식을 사용하여 부호화하여 비트스트림을 생성한다. 또한, 부호화부(250)는 블록 분할과 관련된 파라미터들(MinBtSizeY, SymMinBtSizeY, AsymMinBtSizeY, MinQtSizeY, MaxBtSizeY, CtbSizeY), QT 분할 플래그, BT 분할 플래그 등의 정보를 부호화하여, 영상 복호화 장치가 영상 부호화 장치와 동일하게 블록을 분할할 수 있도록 한다.
부호화부(250)는 현재 블록이 인트라 예측에 의해 부호화되었는지 아니면 인터 예측에 의해 부호화되었는지 여부를 지시하는 예측 타입에 대한 정보를 부호화하고, 예측 타입에 따라 인트라 예측정보 또는 인터 예측정보를 부호화한다.
역양자화부(260)는 양자화부(245)로부터 출력되는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 생성한다. 역변환부(265)는 역양자화부(260)로부터 출력되는 변환 계수들을 주파수 도메인으로부터 공간 도메인으로 변환하여 잔차블록을 복원한다.
가산부(270)는 복원된 잔차블록과 예측부(220)에 의해 생성된 예측블록을 가산하여 현재 블록을 복원한다. 복원된 현재 블록 내의 픽셀들은 다음 순서의 블록을 인트라 예측할 때 참조 픽셀로서 사용된다.
필터부(280)는 블록 단위의 부호화/복호화로 인해 발생하는 블록킹 현상(blocking artifact)을 제거하기 위해 복원된 블록 간의 경계를 디블록킹 필터링하고 메모리(290)에 저장한다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 부호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.
이하에서는 영상 복호화 장치에 대해 설명한다.
도 4는 본 개시의 기술들을 구현할 수 있는 영상 복호화 장치의 예시적인 블록도이다.
영상 복호화 장치는 복호화부(410), 역양자화부(420), 역변환부(430), 예측부(440), 가산기(450), 필터부(460) 및 메모리(470)를 포함한다. 도 2의 영상 부호화 장치와 마찬가지로, 영상 복호화 장치는 각 구성요소가 하드웨어 칩으로 구현될 수 있으며, 또는 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.
복호화부(410)는 영상 부호화 장치로부터 수신한 비트스트림을 복호화하여 블록 분할과 관련된 정보를 추출하여 복호화하고자 하는 현재 블록을 결정하고, 현재 블록을 복원하기 위해 필요한 예측 정보와 잔차신호에 대한 정보 등을 추출한다.
복호화부(410)는 SPS (Sequence Parameter Set) 또는 PPS (Picture Parameter Set)과 같은 하이 레벨 신택스(high level syntax)로부터 CTU size에 대한 정보를 추출하여 CTU의 크기를 결정하고, 픽처를 결정된 크기의 CTU로 분할한다. 그리고 CTU를 트리 구조의 최상위 레이어, 즉, 루트 노드로 결정하고, CTU에 대한 분할 정보를 추출함으로써 CTU를 트리 구조(예컨대, QTBT 구조)를 이용하여 분할한다.
복호화부(410)는 트리 구조의 분할을 통해 복호화하고자 하는 현재 블록(현재 블록)을 결정하게 되면, 현재 블록이 인트라 예측되었는지 아니면 인터 예측되었는지를 지시하는 예측 타입에 대한 정보를 추출한다.
예측 타입 정보가 인트라 예측을 지시하는 경우, 복호화부(410)는 현재 블록의 인트라 예측정보(인트라 예측 모드)에 대한 신택스 요소를 추출한다.
한편, 복호화부(410)는 잔차신호에 대한 정보로서 현재 블록의 양자화된 변환계수들에 대한 정보를 추출한다.
역양자화부(420)는 양자화된 변환계수들을 역양자화하고 역변환부(430)는 역양자화된 변환계수들을 주파수 도메인으로부터 공간 도메인으로 역변환하여 잔차신호들을 복원함으로써 현재 블록에 대한 잔차블록을 생성한다.
예측부(440)는 인트라 예측부(442) 및 인터 예측부(444)를 포함한다. 인트라 예측부(442)는 현재 블록의 예측 타입인 인트라 예측일 때 활성화되고, 인터 예측부(444)는 현재 블록의 예측 타입인 인트라 예측일 때 활성화된다.
인트라 예측부(442)는 복호화부(410)로부터 추출된 인트라 예측 모드에 대한 신택스 요소로부터 복수의 인트라 예측 모드 중 현재 블록의 인트라 예측 모드를 결정하고, 인트라 예측 모드에 따라 현재 블록 주변의 참조 픽셀들을 이용하여 현재 블록을 예측한다.
인터 예측부(444)는 복호화부(410)로부터 추출된 인트라 예측 모드에 대한 신택스 요소를 이용하여 현재 블록의 움직임정보를 결정하고, 결정된 움직임정보를 이용하여 현재 블록을 예측한다.
가산기(450)는 역변환부로부터 출력되는 잔차블록과 인터 예측부 또는 인트라 예측부로부터 출력되는 예측블록을 가산하여 현재 블록을 복원한다. 복원된 현재 블록 내의 픽셀들은 이후에 복호화할 블록을 인트라 예측할 때의 참조픽셀로서 활용된다.
필터부(460)는 블록 단위의 복호화로 인해 발생하는 블록킹 현상(blocking artifact)를 제거하기 위해 복원된 블록 간의 경계를 디블록킹 필터링하고 메모리(470)에 저장한다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 복호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.
본 개시의 예시들은 일반적으로 QTBT 블록 파티션 정보를 시그널링하는 기법과 QTBT 블록 파티션 정보로부터 블록 파티셔닝을 결정하는 기법에 관한 것이다. 본 개시의 소정의 기법들은 영상 부호화 장치의 부호화부(250) 및 영상 복호화 장치의 복호화부(410)에 의해 수행될 수도 있다. 즉, 예를 들어, 부호화부(250) 및 복호화부(410)는 아래의 도 5 내지 도 14에 대해 기술된 본 개시의 기법들을 수행할 수도 있다. 다른 예들에서, 영상 부호화 장치 및 영상 복호화 장치의 하나 이상의 다른 유닛들이 추가적이거나 대안적으로 본 개시의 기법들을 수행하는 것을 담당할 수도 있다.
먼저, QTBT 블록 분할 구조에서, QT 분할 정보를 표현하는 방법을 설명한다.
QTBT 구조에서, 루트 노드인 CTU는 먼저 QT 방식으로 분할될 수 있다. QT 방식의 분할은 재귀적으로 반복될 수 있다. 주어진 블록이 QT 방식으로 분할되는지 여부를 지시하기 위해 제1 플래그(QT 분할 플래그, QT_split_flag)가 사용된다. 예컨대, 표 3과 같이, 제1 플래그 = 1은 주어진 블록이 동일 크기의 네 개의 블록으로 분할됨을 나타내며, 제1 플래그 = 0은 주어진 블록이 QT 분할되지 않음을 의미한다.
QT split flag Value
No split 0
Split 1
도 5는 쿼드트리(QuadTree) 방식으로 분할된 일례와 이를 트리(tree) 구조로 표현한 도면이다. 각 노드의 표시된"0"또는 "1"을 해당 노드가 QT 분할되는지 여부를 나타내는 QT_split_flag의 값이다. 도 5의 (b)에서 회색으로 표시된 노드들은 QT의 리프 노드이며, 더이상 QT 분할되지 않는다. 이때, 블록들에 대한 QT_split_flag 는 z-scan 순서로 시그널링된다. 다시 말해, 도 5의 (b)에 예시된 트리 구조 내 노드들에 대해 "depth first search" 순서로 시그널링된다. 전술한 바와 같이, QTBT 분할 구조에서 QT의 리프 노드는 BT 구조로 더 파티셔닝될 수 있다. 즉, QT 분할을 마친 블록들에 대해 BT 분할이 재귀적으로 수행될 수 있다. BT에서는 복수의 분할 타입이 존재할 수 있다. 예컨대, 일부 예시에서, 주어진 블록을 동일 크기의 두 개 블록으로 수평 혹은 수직 분할하는 형태(도 3에서 1/2로 표시됨)가 존재할 수 있다. 또한, 주어진 블록을 서로 비대칭 형태의 두 개의 블록으로 분할하는 형태들이 추가로 더 존재할 수도 있다. 비대칭 형태로는 주어진 블록을 1:3의 크기 비율을 가지는 두 개의 직사각형 블록으로 분할하는 형태(도 3에서 1/4로 표시됨)와, 주어진 블록을 3:1의 크기 비율을 가지는 두 개의 직사각형 블록으로 분할하는 형태(도 3에서 3/4로 표시됨)가 존재할 수 있다. 또한, 비대칭 형태에는, 주어진 블록을 1:2:1의 크기 비율을 가지는 3개의 직사각형 블록으로 분할하는 형태(도 3에서 '1/4 & 3/4'로 표시됨)가 존재할 수 있다.
주어진 블록에 대한 BT 분할 정보는 제2 플래그(BT 분할 플래그, BT_split_flag)가 사용될 수 있다. BT 분할된 블록의 모양은 분할 방향과 분할 형태에 따라 달라지므로, 제2 플래그(BT_split_flag)는 주어진 블록이 BT 방식으로 분할되는지 여부와, BT 분할되는 경우에 그 분할 방향 및 그 분할 형태를 특정할 수 있어야 한다.
1. BT 분할 신택스에 대한 시맨틱스
제1 실시예
본 실시예에서는, 네 가지 분할 형태 중 1/2 형태가 가장 자주 출현함을 전제로, 1/2 형태에 가장 적은 비트들을 할당하고, 3/4 및 tri 형태에 상대적으로 많은 비트들을 할당하는 방식을 제안한다. 도 6은 분할 형태에 따른 비트 할당 모습을 트리(tree)로 보이고 있다. 표 4는 본 실시예에 따른 BT 분할 신택스에 대한 시맨틱스, 즉 BT 분할 플래그의 분할 형태별 코드워드(codeword)의 예시이다.
BT split flag Codeword
No_split 0
Split_Hor_1/2 100
Split_Hor_1/4 1010
Split_Hor_3/4 10110
Split_Hor_Tri 10111
Split_Ver_1/2 110
Split_Ver_1/4 1110
Split_Ver_3/4 11110
Split_Ver_Tri 11111
제2 실시예
본 실시예에서는, 도 3에 예시된 네 가지 분할 형태 중 1/2 형태가 가장 자주 출현함을 전제로, 1/2 형태에 가장 적은 비트들을 할당하고, 1/4 와 3/4 형태에 상대적으로 많은 비트들을 할당하는 방식을 제안한다. 도 7은 분할 형태에 따른 비트 할당 모습을 트리(tree)로 보이고 있다. 표 5는 본 실시예에 따른 BT 분할 신택스에 대한 시맨틱스, 즉 BT 분할 플래그의 분할 형태별 코드워드 (codeword)의 예시이다. 표 5의 코드워드들의 첫 번째 비트는 주어진 블록이 BT 방식으로 분할되는지 여부를 지시하는 것으로 볼 수 있으며, 첫번째 비트는 BT 분할되는 경우에 그 분할 방향을 특정하는 것으로 볼 수 있으며, 나머지 비트들은 그 분할 형태를 특정하는 것으로 볼 수 있다.
BT split flag Codeword
No_split 0
Split_Hor_1/2 100
Split_Hor_1/4 10110
Split_Hor_3/4 10111
Split_Hor_Tri 1010
Split_Ver_1/2 110
Split_Ver_1/4 11110
Split_Ver_3/4 11111
Split_Ver_Tri 1110
제3 실시예
본 실시예에서는, 네 가지 분할 형태가 골고루 분포되었음(즉, 출현 빈도가 유사함)을 전제로 각 분할 형태에 동일한 수의 비트들을 할당하는 방식을 제안한다. 도 8은 분할 형태에 따른 비트 할당 모습을 트리(tree)로 보이고 있다. 여기서, 네 가지 분할 형태의 위치는 서로 변경 가능하다. 표 6은 본 실시예에 따른 BT 분할 신택스에 대한 시맨틱스, 즉 BT 분할 플래그의 분할 형태별 코드워드(codeword)의 예시이다. 여기서, 네 가지 분할 형태의 위치가 서로 변경되면, 그에 대응하여 각 분할 형태별 코드워드의 비트 구성은 변하게 된다.
BT split flag Codeword
No_split 0
Split_Hor_1/2 1000
Split_Hor_1/4 1001
Split_Hor_3/4 1010
Split_Hor_Tri 1011
Split_Ver_1/2 1100
Split_Ver_1/4 1101
Split_Ver_3/4 1110
Split_Ver_Tri 1111
제4 실시예
본 실시예는, BT 분할 타입으로, 도 3에 예시된 네 가지 분할 형태 중 Tri를 제외한 세 가지 분할 형태(1/2, 1/4, 3/4)만이 사용되는 경우에, BT 분할 형태에 대한 시그널링 방법에 관한 것이다. 본 실시예에서는, 세 가지 분할 형태 중 1/2이 가장 자주 출현함을 전제로 1/2 형태에 가장 적은 비트들을 할당하고, 1/4 및 3/4 형태에 상대적으로 많은 비트들을 할당하는 방식을 제안한다. 도 9는 분할 형태에 따른 비트 할당 모습을 트리(tree)로 보이고 있다. 표 7은 본 실시예에 따른 BT 분할 신택스에 대한 시맨틱스, 즉 BT 분할 플래그에 따른 코드워드(codeword)의 예시이다.
BT split flag Codeword
No_split 0
Split_Hor_1/2 100
Split_Hor_1/4 1010
Split_Hor_3/4 1011
Split_Ver_1/2 110
Split_Ver_1/4 1110
Split_Ver_3/4 1111
제5 실시예
본 실시예는, BT 분할 타입으로, 도 3에 예시된 네 가지 분할 형태 중 1/4 및 3/4를 제외한 두 가지 분할 형태(1/2, Tri)만이 사용되는 경우에, BT 분할 형태에 대한 시그널링 방법에 관한 것이다. 본 실시예에서는, 두 가지 분할 형태의 출현 정도가 비슷하다는 전제로 두 형태에 동일한 수의 비트들을 할당하는 방식을 제안한다. 도 10은 분할 형태에 따른 비트 할당 모습을 트리(tree)로 보이고 있다. 표 8은 본 실시예에 따른 BT 분할 신택스에 대한 시맨틱스, 즉 BT 분할 플래그에 따른 코드워드(codeword)의 예시이다.
BT split flag Codeword
No_split 0
Split_Hor_1/2 100
Split_Hor_Tri 101
Split_Ver_1/2 110
Split_Ver_Tri 111
2. 재귀적 BT 분할 제약
일반적으로 BT 분할은 계층 구조를 가지면서 재귀적으로 분할되는 구조를 가진다. 본 발명의 일 측면에 따르면, 이러한 재귀적으로 분할되는 BT 구조에 대한 제약을 둠으로써, 분할 형태를 표현하는 신택스의 비트를 절감하는 기법을 제안한다. 이하에서는 다양한 제약을 가진 조건부 BT 분할 방법을 설명한다. 이하에서 설명하는 예시들에서는, BT 분할을 위한 분할 형태가, 도 3에 예시된 1/2, 1/4, 3/4, Tri를 포함하는, 총 4가지 형태로 구성되는 것으로 가정한다.
분할 제약 #1
BT 분할의 한 방법으로는 도 3의 (1/2를 제외한) 1/4, 3/4, 및 Tri 중 하나 이상의 형태를 리프 노드로 지정하는 것이다. 즉, 주어진 블록이 리프 노드로 지정된 분할 형태로 BT 분할되면, 주어진 블록의 서브 블록들은 더 이상 분할되지 않는다. 따라서, 주어진 블록의 분할 정보 외에, 그 서브 블록들에 대한 (no split을 나타내는) 분할 정보를 시그널링할 필요가 없다.
예를 들어, 이러한 제약이 부가되지 않은 일반적인 경우, 주어진 블록이 수평 방향으로 1/4 형태로 BT 분할이 일어나고, 서브 블록 중 하나가 'no split'이라면, 예컨대 표 2에 나열된 코드워드들에 따라, 이들 분할을 표현하는 비트들은 "1010" (split_hor_1/4) 및 "0" (no split)이 된다. 그러나, 1/4 형태를 리프 노드로 한정하는 제약 하에서는, 상기 분할들에 관한 비트들은 "1010" (split_hor_1/4)이 되고, 더이상 "0" (no split) 비트가 필요 없다. 따라서, 본 분할 제약으로 인해 1 비트를 절감하는 효과를 낼 수 있다.
분할 제약 #2
BT 분할의 다른 방법으로는, 1/2 형태의 블록 분할 시에는 해당 블록 분할 후 다시 일반적인 BT 분할 방식을 반복해서 적용하고, 1/4, 3/4, Tri 중 한 형태의 블록 분할 시에는 해당 분할된 블록에 대해서 다음 분할 시에 제한적인 분할 방식을 적용하는 것이다. 여기서, 제한적인 BT 분할 방식이란 현재의 BT 분할 형태가 수직 (1/4, 3/4, Tri 중 한 형태)이었다면, 다음 BT 분할 형태를 수평으로 제한하고, 반대로 현재의 BT 분할 형태가 수평 (1/4, 3/4, Tri 중 한 형태)이었다면, 다음 BT 분할 형태를 수직으로 제한함을 의미한다.
예를 들어, 이러한 제약이 부가되지 않은 일반적인 경우, 수평 방향으로 1/4 형태의 분할이 일어나고, 그 이후 서브 블록 중 하나가 수직 방향으로 1/2 형태의 분할이 일어났다면, 예컨대 표 2에 나열된 코드워드들에 따라, 이들 분할을 표현하는 비트들은 "1010" (split_hor_1/4) 및 "110" (split_ver_1/2)이 된다. 표 2에서 split_ver_1/2의 분할을 표시하는 코드워드("110")는 분할을 의미하는 "1", 수직을 의미하는 "1", 및 1/2을 의미하는 "0"으로 구성된다. 그러나 수평 방향의 1/4 분할 형태 이후 다음 분할을 수직으로 한정하는 제약 하에서는, 이들 분할을 표현하는 비트들은 "1010" (split_hor_1/4) 및 "10" (split_ver_1/2)이 된다. 즉, 수직을 의미하는 비트는 필요치 않게 되어, 결과적으로 split_ver_1/2 분할 형태는 "10"로 표현된다. 이로 인해, 1 비트를 절감하는 효과를 낼 수 있다.
표 2 내지 6과 관련된 상기 제1 내지 제5 실시예들에 대한 본 제약에 따른 새로운 분할 형태별 코드워드들을 정리하면 표 9과 같고, 영상 복호화 장치가 본 제약에 따른 두 번째 분할을 결정하는 방법은 도 11에 예시된 흐름도와 같다.
BT split flag 제1 실시예 제2 실시예 제3 실시예 제4 실시예 제5 실시예
No_split 0 0 0 0 0
Split_1/2 10 10 100 10 10
Split_1/4 110 1110 101 110 -
Split_3/4 1110 1111 110 111 -
Split_Tri 1111 110 111 - 11
도 11은 주어진 블록이 BT 분할된 후에, 그 서브 블록의 BT 분할을 결정하는 방법을 도시한 것으로, 첫 번째 블록 분할은 주어진 블록의 BT 분할을 가리키며, 두 번째 블록 분할은 그 서브 블록의 BT 분할을 가리킨다. 도 11에 예시된 바와 같이, 영상 복호화 장치는 먼저 BT 분할 플래그의 제1 이진수(즉, 첫 번째 비트)를 파싱한다(S1110). BT 분할 플래그의 제1 이진수는 서브 블록이 다시 BT 분할되는지 여부를 나타낸다. 제1 이진수가 0이면(S1120에서 "아니오"), 서브 블록은 BT 분할되지 않고, 서브 블록에 대한 분할은 그대로 종료된다. 제1 이진수가 1이면(S1120에서 "예"), 서브 블록이 BT 분할되는데, 영상 복호화 장치는 첫 번째 블록 분할이 수직 방향이었는지 여부를 판단한다(S1130). 첫 번째 블록 분할이 수직방향이었다면(S1130의 "예"), 본 분할 제약 #2에 따라 두 번째 블록 분할(즉, 서브블록의 BT 분할)은 수평 방향의 분할임을 추론할 수 있다. 따라서 영상 복호화 장치는 수평 방향의 4개의 분할 타입 중 하나를 결정하기 위해, BT 분할 플래그의 나머지 이진수들을 파싱한다(S1160). 첫 번째 블록 분할이 수평방향이었다면(S1130의 "아니오"), 본 분할 제약 #2에 따라 두 번째 블록 분할(즉, 서브블록의 BT 분할)은 수직 방향의 분할임을 추론할 수 있다. 따라서 영상 복호화 장치는 수직 방향의 4개의 분할 타입 중 하나를 결정하기 위해, BT 분할 플래그의 나머지 이진수들을 파싱한다(S1160).
분할 제약 #3
또 다른 제한적인 BT 분할 방식은 1/4, 3/4, Tri 중 한 형태의 블록 분할 시에는 해당 분할된 블록에 대해서 다음 분할 시에 1/2 분할 형태만 가능토록 제한하는 것이다. 즉, 현재의 BT 분할 형태가 1/4, 3/4, Tri 중 하나였다면 다음 BT 분할 형태는 1/2만 허용하는 것이다.
예를 들어, 이러한 제약이 부가되지 않은 일반적인 경우, 수평 방향으로 1/4 형태의 분할이 일어나고, 그 이후 서브 블록 중 하나가 수직 방향으로 1/2 형태의 분할이 일어났다면, 예컨대 표 2에 나열된 코드워드들에 따라, 이들 분할을 표현하는 비트들은 "1010" (split_hor_1/4) 및 "110" (split_ver_1/2)이 된다. 여기서, 표 2에서 split_ver_1/2의 분할을 표시하는 코드워드("110")는 분할을 의미하는 "1", 수직을 의미하는 "1", 및 1/2을 의미하는 "0"으로 구성된다. 그러나 수평 방향의 1/4 분할 형태 이후 분할을 1/2로 한정하는 제약 하에서는, 이들 분할을 표현하는 비트들은 "1010" (split_hor_1/4) 및 "11" (split_ver_1/2)이 된다. 즉, 1/2을 의미하는 비트는 필요치 않게 되어, 결과적으로 split_ver_1/2 분할 형태는 "11"로 표현된다. 이로 인해, 1 비트를 절감하는 효과를 낼 수 있다.
상기 제1 내지 제5 실시예들에 대한 본 제약에 따른 새로운 분할 형태별 코드워드들을 정리하면 표 10과 같고, 영상 복호화 장치가 본 제약에 따른 두 번째 분할을 결정하는 방법은 도 12에 예시된 흐름도와 같다.
BT split flag 제1 실시예 제2 실시예 제3 실시예 제4 실시예 제5 실시예
No_split 0 0 0 0 0
Split_Hor 10 10 10 10 10
Split_Ver 11 11 11 11 11
도 12에 예시된 바와 같이, 영상 복호화 장치는 먼저 BT 분할 플래그의 제1 이진수(즉, 첫 번째 비트)를 파싱한다(S1210). BT 분할 플래그의 제1 이진수는 서브 블록이 다시 BT 분할되는지 여부를 나타낸다. 제1 이진수가 0이면(S1220에서 "아니오"), 서브 블록은 BT 분할되지 않고, 서브 블록에 대한 분할은 그대로 종료된다. 제1 이진수가 1이면(S1220에서 "예"), 서브 블록이 BT 분할되는데, 영상 복호화 장치는 BT 분할 플래그의 제2 이진수(즉, 두 번째 비트)를 파싱한다(S1230). BT 분할 플래그의 제2 이진수는 두 번째 블록 분할(즉, 서브 블록의 BT 분할)의 분할 방향이 수평인지 아니면 수직인지를 나타낸다. 본 분할 제약 #2 하에서, 두 번째 블록 분할의 타입은 반드시 1/2 분할만 허용되므로, BT 분할 플래그의 제2 진수가 수평 방향의 분할을 지시하면, 두 번째 블록 분할은 split_hor_1/2임을 추론할 수 있다. 마찬가지로, BT 분할 플래그의 제2 이진수가 수직 방향의 분할을 지시하면, 두 번째 블록 분할은 split_ver _1/2임을 추론할 수 있다(S1240).
분할 제약 #4
BT 분할의 다른 방법으로는 방향성 제한과 1/2 형태만 허용하는 제한을 동시에 적용하는 것이다. 예를 들어, 현재의 BT 분할 형태가 수직 방향의 (1/4, 3/4, Tri 중 한 형태)이었다면, 다음 BT 분할 형태를 수평 방향의 (1/2)로 제한하고, 반대로 현재의 BT 분할 형태가 수평 방향의 (1/4, 3/4, Tri) 중 한 형태이었다면, 다음 BT 분할 형태를 수직 방향의 (1/2)로 제한한다. 최종적으로 본 제한 분할 형태에 대한 BT_split_flag 신택스에 대한 시맨틱스는 no split ("0") 및 split ("1")이며, 이때 split의 의미는 이전 BT 분할 형태에 따라 수평 방향의 (1/2) 혹은 수직 방향의 (1/2)이 될 수 있다.
예를 들어, 이러한 제약이 부가되지 않은 일반적인 경우, 수직 방향으로 1/4 형태의 분할이 일어나고, 그 이후 서브 블록 중 하나가 수직 방향으로 1/2 형태의 분할이 일어났다면, 예컨대 표 2에 나열된 코드워드들에 따라, 이들 분할을 표현하는 비트들은 "1010" (split_hor_1/4) 및 "110" (split_ver_1/2)이 된다. 표 2에서 split_ver_1/2의 분할을 표시하는 코드워드(110)는 분할을 의미하는 "1", 수직을 의미하는 "1", 및 1/2을 의미하는 "0"으로 구성된다. 그러나 수평 방향의 1/4 분할 형태 이후 분할을 수직 방향의 1/2로 한정하면, 이들 분할을 표현하는 비트들은 "1010" (split_hor_1/4) 및 "1" (split_ver_1/2)이 된다. 즉, 수직 및 1/2을 의미하는 비트들은 필요치 않게 되어, 결과적으로 split_ver_1/2 분할 형태는 "1"로 표현된다. 이로 인해, 2 비트를 절감하는 효과를 낼 수 있다.
상기 5개의 실시예 전체에 대한 이번 분할 제약 #4에 따른 새로운 분할 형태별 코드워드들을 정리하면 표 11와 같다.
BT split flag 제1 실시예 제2 실시예 제3 실시예 제4 실시예 제5 실시예
No_split 0 0 0 0 0
Split 1 1 1 1 1
BT의 재귀적인 분할 형태에 상기와 같이 제한함으로 인해 방향성을 표현하는 비트 및/또는 형태를 표현하는 비트를 절감할 수 있다. 표 9에서 표 11까지를 통해 일반적인 블록 분할 형태에 대한 코드워드보다 분할 형태 제한을 통해 더 적은 비트들이 할당될 수 있음을 알 수 있다. 전술한 분할 제약 #2 내지 분할 제약 #4에서는 첫 번째 (1/4, 3/4, Tri 중 한 형태) 분할 이후의 두 번째 분할에 대한 제약을 두었다. 상기 첫 번째 분할 이후의 블록은 도 13과 같은 형태이고, 첫 번째 분할 형태에 따라 블록이 세 부분 혹은 두 부분으로 나누어진다. 예를 들어, 첫 번째 분할이 Tri 이었다면, 도 13의 (a)와 같이 블록이 세 개의 서브 블록들(A, B, 및 C)으로 나누어지고, 첫 번째 분할이 1/4 혹은 3/4 이었다면, 도 13의 (b)와 같이 블록이 두 개의 서브 블록들(A, 및 B)로 나누어진다.
첫 번째 분할 이후의 두 번째 분할은 도 13과 같이 나누어진 (두 개 혹은 세 개의) 서브 블록들 각각에 대해 개별적으로 적용될 수도 있고, 서브 블록들 모두에 동일한 분할이 적용될 수도 있다. 예를 들어, 나누어진 서브 블록들 모두에서 동일한 분할이 발생한다고 가정하면, 도 13의 (a)처럼 세 개의 서브 블록들로 나누어진 경우에 대해서 한 번의 분할 정보만으로 세 개의 서브 블록들에 대한 분할 형태를 표현할 수 있다. 반대로, 나누어진 서브 블록들 각각을 개별적으로 분할한다고 가정하면, 도 13의 (a)처럼 세 개의 서브 블록으로 나누어진 경우에 대해서 A 서브 블록, B 서브 블록, 및 C 서브 블록에 대한 개별적인 두 번째 분할 정보가 필요하다.
본 발명에서, 분할 제약 #2 내지 분할 제약 #4는 상기 두 가지 경우(즉, 서브 블록들 모두에 동일한 분할이 적용되는 경우, 서브 블록들 각각에 개별적으로 분할이 적용되는 경우) 모두에 대해서 적용 가능하다. 예를 들어, 분할 제약 #4의 경우에, 첫 번째 분할이 Tri 형태였고, 두 번째 분할에서 나누어진 서브블록들(A 서브 블록, B 서브 블록, 및 C 서브 블록) 각각에 대해서 개별적으로 분할 정보를 발생시킨다면, A 서브 블록의 분할 정보를 위한 1 비트 (no split 또는 split), B 서브 블록의 분할 정보를 위한 1 비트, 및 C 서브 블록의 분할 정보를 위한 1 비트로 구성되는 총 3 비트가 필요하다. 반대로, 첫 번째 분할이 Tri 형태였고, 두 번째 분할에서 나누어진 서브 블록들 모두에 동일한 분할 정보를 발생시킨다면, A 서브 블록, B 서브 블록, 및 C 서브 블록 모두의 분할 정보를 표현하기 위해 총 1 비트가 필요하다.
지금까지 CTU에서 CU으로 분할되는 구조와, 해당 분할 정보를 표현하는 신택스(QT split flag 및 BT split flag)와, 해당 신택스에 대한 시맨틱스(즉, binarization) 방법에 대해서 살펴 보았다.
3. QTBT 블록 파티션을 위한 파라미터
QTBT 구조에 의한 블록 분할에 대한 정보를 더 효율적으로 시그널링하기 위해, 다음과 같은 파라미터들이 추가로 사용될 수 있다. 이들 파라미터들은 비디오 레벨, 시퀀스 레벨, 혹은 픽처 레벨로 특정될 수 있다.
QTBT 블록 파티셔닝 구조에서 도 3과 같은 BT 분할 형태들을 채용하는 일부 실시예들에서는 다음과 같은 파라미터들이 사용될 수 있다.
- MinBtSizeY: BT에서 허용되는 리프 노드의 최소 블록 크기
- MinQtSizeY: QT에서 허용되는 리프 노드의 최소 블록 크기
- MaxBtSizeY: BT에서 허용되는 루트 노드의 최대 블록 크기
- CtbSizeY: CTU 사이즈
대안적으로, QTBT 블록 파티셔닝 구조에서 도 3과 같은 BT 분할 형태들을 채용하는 일부 실시예들에서는 다음과 같은 파라미터들이 사용될 수 있다. 여기서, 도 3의 분할 형태 중 1/2은 대칭 형태이고, 1/4 및 3/4은 비대칭 형태로 분류되며, Tri 형태는 가운데 블록을 대칭 형태으로 분류하고 양쪽의 두 블록을 비대칭 형태로 분류함을 전제한다.
- SymMinBtSizeY: 대칭 분할되어 생성된 BT 리프 노드의 최소 블록 크기
- AsymMinBtSizeY: 비대칭 분할되어 생성된 BT 리프 노드의 최소 블록 크기
- MinQtSizeY: QT에서 허용되는 리프 노드의 최소 블록 크기
- MaxBtSizeY: BT에서 허용되는 루트 노드의 최대 블록 크기
- CtbSizeY: CTU 사이즈
이들 블록의 크기에 관한 파라미터들은, 다음과 같이, QTBT 구조에 의한 블록 분할에 대한 정보를 더 효율적으로 표현할 수 있게 한다. 여기서, MinBtSizeY는 CU의 허용되는 최소 크기를 가리키므로, 만약 CU가 대칭 및 비대칭으로 나누어 진다면, AsymMinBtSizeYMinBtSizeY을 의미한다고 볼 수 있다. 혹은 특정 상황에서는 SymMinBtSizeYMinBtSizeY을 의미할 수도 있다.
(1) CtbSizeY가 사전에 정의된 혹은 사전에 결정된 변환(transform) 최대 크기 보다 큰 경우, 영상 부호화 장치는 해당 CTB 블록에 대한 QT에 관한 분할 정보 (QT_split_flag)를 부호화하지 않고, 영상 복호화 장치는 그 값을 자동으로 1로 설정한다. 즉, 주어진 CTB는 변환 최대 크기까지 무조건 QT 분할된다. 상기 변환(transform) 최대 크기는 디폴트(default)로 사전에 정의되어 있거나, 헤더에 하나의 시맨틱 요소로 시그널링될 수 있다.
(2) QT에서 MaxBtSizeY 보다 큰 크기를 가지는 블록은 BT 분할이 허용되지 않는다. 따라서, QT의 리프 노드의 크기가 MaxBtSizeY 보다 크다면, 해당 블록은 BT 분할이 허용되지 않음을 유추할 수 있는 바, 영상 부호화 장치는 해당 블록에 대한 BT에 관한 분할 정보(BT_split_flag)를 시그널링하지 않는다. 또한, 영상 복호화 장치는 주어진 블록이 QT의 리프 노드이고, 그 크기가 MaxBtSizeY 보다 크다면, BT 분할 플래그(BT_split_flag)를 복호화하지 않고, 더 이상 해당 블록에 대한 추가적인 분할을 수행하지 않는다. 즉, 영상 복호화 장치는 해당 블록을 QTBT의 리프 노드(즉, CU)로 결정한다.
(3) QT에서 MinQtSizeY와 동일한 크기를 가지는 블록은 더 이상 분할되지 않는다. 따라서, 영상 부호화 장치는 해당 블록에 대한 QT에 관한 분할 정보(QT_split_flag)를 부호화하지 않는다. 즉, 반복적인 QT 분할을 실시하면서 블록이 MinQtSizeY 크기까지 분할 되었다면, 해당 블록은 더 이상의 QT 분할을 실시하지 않고, 해당 블록을 위한 더 이상의 QT 분할 정보를 부호화 하지 않는다. 여기서, 해당 QT 분할 정보는 no split ("0")을 의미하며, 부호화 하지 않는다. 또한, 영상 복호화 장치는 반복적인 QT 분할을 실시하면서 블록이 MinQtSizeY 크기까지 분할 되었다면, 해당 블록에 대한 QT에 관한 분할 정보(QT_split_flag)를 복호화 하지 않고(즉, 그 값을 자동으로 0으로 설정하고), 더 이상 해당 블록에 대한 추가적인 QT 분할을 실시하지 않는다.
(4) BT 분할 도중에, 주어진 블록의 너비(width) 및 높이(height) 모두가 MinBtSizeY (SymMinBtSizeY 혹은 AsymMinBtSizeY 포함)와 동일한 크기라면 더 이상 BT 분할되지 않는다. 따라서 영상 부호화 장치는 주어진 블록에 대한 BT에 관한 분할 정보(BT_split_flag)를 부호화하지 않고, 그 값을 자동으로 0으로 설정한다. 즉, 영상 복호화 장치는 반복적인 BT 분할을 실시하면서 블록의 너비 및 높이 가 모두 MinBtSizeY 크기까지 분할되었다면, 해당 블록에 대한 BT에 관한 분할 정보(BT_split_flag)를 복호화하지 않고(즉, 그 값을 자동으로 0으로 설정하고), 해당 블록을 QTBT의 리프 노드(즉, CU)로 결정한다.
(5) 주어진 블록의 너비 혹은 높이가 MinBtSizeY 와 같고 BT_split_flag의 첫 번째 이진수(first binary)가 "1"이라면, 주어진 블록에 대한 BT 분할 방향이 수평 방향인지 수직 방향인지를 유추할 수 있다. 따라서, BT 분할 방향을 나타내는 BT_split_flag의 두 번째 이진수(second binary)가 필요치 않다. 즉, 주어진 블록의 너비가 MinBtSizeY 와 같고 BT_split_flag의 첫 번째 이진수가 "1"이라면, 주어진 블록에 대한 BT 분할 방향이 수평 방향의 분할 ("0")이라 유추할 수 있으므로, 부호화 장치/복호화 장치는 주어진 블록에 대한 BT_split_flag의 두 번째 이진수를 부호화/복호화 하지 않는다. 반대로, 주어진 블록의 높이가 MinBtSizeY 와 같고 BT_split_flag의 첫 번째 이진수가 "1"이라면, 주어진 블록에 대한 BT 분할 방향이 수직 방향의 분할 ("1")이라 유추할 수 있으므로, 부호화 장치/복호화 장치는 주어진 블록에 대한 BT_split_flag의 두 번째 이진수를 부호화/복호화하지 않는다. 도 14는 영상 복호화 장치가 BT_split_flag의 두 번째 이진수를 시그널링하지 않는 BT 예외에 대한 과정을 나타내는 흐름도이다.
도 14에 예시된 바와 같이, 영상 복호화 장치는 먼저 BT 분할 플래그의 제1 이진수(즉, 첫 번째 비트)를 파싱한다(S1410). BT 분할 플래그의 제1 이진수는 주어진 블록이 BT 분할되는지 여부를 나타낸다. 제1 이진수가 0이면(S1420에서 "아니오"), 주어진 블록은 BT 분할되지 않고, 주어진 블록에 대한 분할은 그대로 종료된다. 제1 이진수가 1이면(S1420에서 "예"), 서브 블록이 BT 분할되는데, 영상 복호화 장치는 블록의 너비가 MinBtSizeY와 동일한지 여부를 판단한다(S1430). 주어진 블록의 너비가 MinBtSizeY와 동일하면(S1430에서 "예"), 주어진 블록의 BT 분할 방향을 수평으로 추론하고, 분할 타입(즉, 도 3의 (b) 중 어떠한 분할인지 여부)을 결정하기 위해 나머지 이진수들을 파싱한다(S1480). 주어진 블록의 너비가 MinBtSizeY와 동일하지 않으면(S1430에서 "아니오"), 주어진 블록의 높이가 MinBtSizeY와 동일하지 여부를 추가로 판단한다. 주어진 블록의 높이가 MinBtSizeY와 동일하면(S1440에서 "예"), 주어진 블록의 BT 분할 방향을 수직으로 추론하고, 분할 타입(즉, 도 3의 (a) 중 어떠한 분할인지 여부)을 결정하기 위해 나머지 이진수들을 파싱한다(S1480). 주어진 블록의 높이가 MinBtSizeY와 동일하지 않으면(S1440에서 "아니오"), BT 분할 플래그의 제2 이진수를 파싱한다. 이 경우 제 2 이진수는 주어진 블록의 BT 분할 방향을 나타낸다. 그리고 나머지 이진수들을 파싱하여 주어진 분할 타입을 결정한다(S1480).
4. high-level syntax (HLS)
전술한 바와 같이, 이들 파라미터들은 비디오 레벨, 시퀀스 레벨, 혹은 픽처 레벨로 특정될 수 있다. 따라서, 이들 파라미터들을 표현하는 정보들은 SPS(sequence parameter set), PPS(picture parameter set), 및 VPS(video parameter set)를 포함하는 상위 레벨의 헤더에 포함될 수 있다. 이하에서는, 이들 파라미터들을 효율적으로 표현하기 위한 high-level syntax (HLS)들을 제안한다.
제1 실시예(HLS)
본 실시예에서 제안하는 신택스 요소들은 다음과 같다. 일반적으로 블록의 크기는 2의 거듭제곱으로 표현될 수 있다는 점을 고려하여, 아래 신택스 요소들은 정의하고자 하는 실제 값의 밑(base)을 2로 하는 로그값으로 표현하고 있다.
1) log2 _ luma _min_BT_size_ minus1: 루마 블록 기준으로 BT에서 허용되는 최소 블록 크기(min BT block size)를 정의함
2) log2 _ diff _ luma _min_QT_min_BT_size: 루마 블록 기준으로, QT에서 허용되는 리프 노드의 최소 블록 크기(min QT block size)와 BT에서 허용되는 최소 블록 크기(min BT block size) 사이의 차이값(min QT block size - min BT block size)을 정의함
3) log2 _ diff _ luma _max_BT_min_QT_size: 루마 블록 기준으로, BT에서 허용되는 루트 노드의 최대 블록 크기(max BT block size)와 QT에서 허용되는 리프 노드의 최소 블록 크기(min QT block size) 사이의 차이값(max BT block size - min QT block size)을 정의함
4) log2 _ diff _ luma _max_QT_max_BT_size: 루마 블록 기준으로, QT에서 허용되는 최대 블록 크기(max QT block size)와 BT에서 허용되는 루트 노드의 최대 블록 크기(max BT block size) 사이의 차이값(max QT block size - max BT block size: 즉, CTU 블록의 크기)을 정의함
표 12은 상기 신택스 요소들이 SPS(sequence parameter set) 헤더에 정의되는 것을 예시한 것이다. 전술한 바와 같이, 상기 신택스 요소들이 PPS(picture parameter set) 헤더 등에 정의될 수도 있다.
seq_parameter_set_rbsp( ) { Descriptor
...
log2_luma_min_BT_size_minus1 ue(v)
log2_diff_luma_min_QT_min_BT_size ue(v)
log2_diff_luma_max_BT_min_QT_size ue(v)
log2_diff_luma_max_QT_max_BT_size ue(v)
...
상기 신택스 요소들로부터 유도되는, 실제 min BT luma 블록의 크기 (MinBtSizeY)는 수학식 5와 같고, 실제 min QT 블록의 크기 (MinQtSizeY)는 수학식 6과 같고, 실제 max BT 블록의 크기 (MaxBtSizeY)는 수학식 7과 같고, 실제 CTU 사이즈 (CtbSizeY)는 수학식 8과 같다.
MinBtLog2SizeY = log2_luma_min_BT_size_minus2 + 2
MinQtLog2SizeY = MinBtLog2SizeY + log2_diff_luma_min_QT_min_BT_size
MaxBtLog2SizeY = MinQtLog2SizeY + log2_diff_luma_max_BT_min_QT_size
CtbLog2SizeY = MaxBtLog2SizeY + log2_diff_luma_max_QT_max_BT_size
MinBtSizeY = 1  <<  MinBtLog2SizeY (5)
MinQtSizeY = 1  <<  MinQtLog2SizeY (6)
MaxBtSizeY = 1  <<  MaxBtLog2SizeY (7)
CtbSizeY = 1  <<  CtbLog2SizeY (8)
제2 실시예(HLS)
본 실시예에서 제안하는 신택스 요소들은 다음과 같다.
1) log2 _ sym _ luma _min_BT_size_ minus2: symmetric으로 분할된 루마 블록 기준으로 BT에서 허용되는 최소 블록 크기(symmetric min BT block size)를 정의함
2) log2 _ asym _ luma _min_BT_size_ minus1: asymmetric으로 분할된 루마 블록 기준으로 BT에서 허용되는 최소 블록 크기(asymmetric min BT block size)를 정의함
3) log2 _ diff _ luma _min_QT_min_BT_size: min BT 블록 크기와 min QT 블록 크기 사이의 차이값 (min QT block size - symmetric min BT block size)을 정의함
5) log2 _ diff _ luma _max_BT_min_QT_size: 루마 블록 기준으로, BT에서 허용되는 루트 노드의 최대 블록 크기(max BT block size)와 QT에서 허용되는 리프 노드의 최소 블록 크기(min QT block size) 사이의 차이값(max BT block size - min QT block size)을 정의함
6) log2 _ diff _ luma _max_QT_max_BT_size: 루마 블록 기준으로, QT에서 허용되는 최대 블록 크기(max QT block size)와 BT에서 허용되는 루트 노드의 최대 블록 크기(max BT block size) 사이의 차이값(max QT block size - max BT block size: 즉, CTU 블록의 크기)을 정의함
표 13은 상기 신택스 요소들이 SPS(sequence parameter set)에 정의되는 것을 예시한 것이다. 전술한 바와 같이, 상기 신택스 요소들은 PPS(picture parameter set) 등에 정의될 수도 있다.
seq_parameter_set_rbsp( ) { Descriptor
...
log2_sym_luma_min_BT_size_minus2 ue(v)
log2_asym_luma_min_BT_size_minus1 ue(v)
log2_diff_luma_min_QT_min_BT_size ue(v)
log2_diff_luma_max_BT_min_QT_size ue(v)
log2_diff_luma_max_QT_max_BT_size ue(v)
...
상기 신택스 요소들로부터 유도되는, 실제 symmetric한 min BT luma 블록의 크기 (SymMinBtSizeY)는 수학식 9와 같고, asymmetric한 min BT luma 블록의 크기 (AsymMinBtSizeY)는 수학식 10과 같으며, min QT 블록의 크기 (MinQtSizeY)는 수학식 11과 같고, max BT 블록의 크기 (MaxBtSizeY)는 수학식 12와 같고, CTU 사이즈 (CtbSizeY)는 수학식 13과 같다.
SymMinBtLog2SizeY = log2_sym_luma_min_BT_size_minus2 + 2
AsymMinBtLog2SizeY = log2_asym_luma_min_BT_size_minus1 + 1
MinQtLog2SizeY = SymMinBtLog2SizeY + log2_diff_luma_min_QT_min_BT_size
MaxBtLog2SizeY = MinQtLog2SizeY + log2_diff_luma_max_BT_min_QT_size
CtbLog2SizeY = MaxBtLog2SizeY + log2_diff_luma_max_QT_max_BT_size
SymMinBtSizeY = 1  <<  SymMinBtLog2SizeY (9)
AsymMinBtSizeY = 1  <<  AsymMinBtLog2SizeY (10)
MinQtSizeY = 1  <<  MinQtLog2SizeY (11)
MaxBtSizeY = 1  <<  MaxBtLog2SizeY (12)
CtbSizeY = 1  <<  CtbLog2SizeY (13)
제3 실시예(HLS)
본 실시예에서 제안하는 신택스 요소들은 다음과 같다.
1) log2 _ asym _ luma _min_BT_size_ minus1: asymmetric으로 분할된 루마 블록 기준으로 BT에서 허용되는 최소 블록 크기(asymmetric min BT block size)를 정의함
2) log2 _ diff _ luma _min_QT_min_BT_size: 루마 블록 기준으로, QT에서 허용되는 리프 노드의 최소 블록 크기(min QT block size)와 symmetric으로 분할된 루마 블록 기준으로 BT에서 허용되는 최소 블록 크기(symmetric min BT block size) 사이의 차이값 (symmetric min QT block size - min BT block size)
3) log2 _ diff _ luma _max_BT_min_QT_size: max BT 블록 크기와 min QT 블록 크기 사이의 차이값 (max BT block size - min QT block size)
4) log2 _ diff _ luma _max_QT_max_BT_size: max QT 블록 크기와 max BT 블록 크기 사이의 차이값 (max QT block size - max BT block size: 즉, CTU 블록의 크기)
표 14는 이러한 신택스 요소들이 SPS(sequence parameter set)에 정의되는 것을 예시한 것이다. 전술한 바와 같이, PPS(picture parameter set) 등에 정의될 수도 있다.
seq_parameter_set_rbsp( ) { Descriptor
...
log2_asym_luma_min_BT_size_minus1 ue(v)
log2_diff_luma_min_QT_min_BT_size ue(v)
log2_diff_luma_max_BT_min_QT_size ue(v)
log2_diff_luma_max_QT_max_BT_size ue(v)
...
상기 신택스 요소들로부터 유도되는, 실제 symmetric한 min BT luma 블록의 크기 (SymMinBtSizeY)는 수학식 14와 같고, asymmetric한 min BT luma 블록의 크기 (AsymMinBtSizeY)는 수학식 15와 같으며, min QT 블록의 크기 (MinQtSizeY)는 수학식 16와 같고, max BT 블록의 크기 (MaxBtSizeY)는 수학식 17과 같고, CTU 사이즈 (CtbSizeY)는 수학식 18과 같다.
SymMinBtLog2SizeY = log2_asym_luma_min_BT_size_minus1 + 2
AsymMinBtLog2SizeY = log2_asym_luma_min_BT_size_minus1 + 1
MinQtLog2SizeY = SymMinBtLog2SizeY + log2_diff_luma_min_QT_min_BT_size
MaxBtLog2SizeY = MinQtLog2SizeY + log2_diff_luma_max_BT_min_QT_size
CtbLog2SizeY = MaxBtLog2SizeY + log2_diff_luma_max_QT_max_BT_size
SymMinBtSizeY = 1  <<  SymMinBtLog2SizeY (14)
AsymMinBtSizeY = 1  <<  AsymMinBtLog2SizeY (15)
MinQtSizeY = 1  <<  MinQtLog2SizeY (16)
MaxBtSizeY = 1  <<  MaxBtLog2SizeY (17)
CtbSizeY = 1  <<  CtbLog2SizeY (18)
제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 공통 심도와의 차이값으로 표기될 수 있다.
이상에서 설명한 제1 실시예 내지 제3 실시예에 따르면, 블록의 크기에 관한 파라미터들은 영상 레벨, 시퀀스 레벨, 혹은 픽처 레벨로 정의될 수 있다. 이하의 제4 실시예 내지 제6 실시예들은, 제1 실시예 내지 제3 실시예에서 사용된 헤더보다 하위의 헤더에 전술한 파라미터들과의 차이값(즉, 오프셋)을 나타내는 추가적인 파라미터들을 정의함으로써, 하위 레벨에서 파라미터들을 조절할 수 있는 방식을 제안한다. 즉, 상위 헤더에 제1 실시예 내지 제3 실시예에서 제안한 신택스 요소들을 표현하고, 하위 헤더에 상위 헤더에 표현된 신택스 요소들에 대한 오프셋들을 정의하는 신택스 요소들을 표현하는 방식을 제안하다. 여기서 상위 헤더는 시퀀스 레벨 혹은 픽처 레벨의 헤더일 수 있다. 상기 상위 헤더가 시퀀스 레벨의 헤더인 경우에, 하위 헤더는 픽처 레벨의 헤더 혹은 슬라이스 헤더일 수 있다. 상위 헤더가 픽처 레벨의 헤더인 경우에 하위 헤더는 슬라이스 헤더일 수 있다.
이러한 방식에 따르면, 하위 헤더(예컨대, slice header)에 표현되는 신택스 값을 이용하여, 해당 레벨(예컨대, slice-level)로 min BT block size, min QT block size, max BT block size, 및/또는 max QT block size의 크기를 조절할 수 있다.
제4 실시예(HLS)
■ 상위 헤더의 신택스 요소
상위 헤더에 포함되는 신택스 요소들은 제1 실시예와 같다.
1) log2_luma_min_BT_size_minus1
2) log2_diff_luma_min_QT_min_BT_size
3) log2_diff_luma_max_BT_min_QT_size
4) log2_diff_luma_max_QT_max_BT_size
■ 하위 헤더의 신택스 요소
하위 헤더에 포함되는 신택스 요소들은 다음과 같다.
1) delta_ log2 _ luma _min_BT_size: luma 블록 기준으로 상위 헤더에 정의된 신택스 요소들에 의해 특정되는 min BT block size에 더해지는 오프셋(delta min BT block size)을 정의한다.
2) delta_ log2 _ luma _min_QT_size: 상위 헤더에 정의된 신택스 요소들에 의해 특정되는 min QT block size에 더해지는 오프셋 (delta min QT block size)을 정의한다.
3) delta_ log2 _ luma _max_BT_size: 상위 헤더에 정의된 신택스 요소들에 의해 특정되는 max BT block size에 더해지는 오프셋(delta max BT block size)을 정의한다.
4) delta_ log2 _ luma _max_QT_size: 상위 헤더에 정의된 신택스 요소들에 의해 특정되는 max QT block size에 더해지는 오프셋(delta max QT block size)을 정의한다.
상기 상위 헤더 및 상기 하위 헤더의 신택스 요소들로부터 유도되는, 실제 min BT luma 블록의 크기 (MinBtSizeY)는 수학식 19와 같고, 실제 min QT 블록의 크기 (MinQtSizeY)는 수학식 20과 같고, 실제 max BT 블록의 크기 (MaxBtSizeY)는 수학식 21과 같고, 실제 CTU 사이즈 (CtbSizeY)는 수학식 22와 같다.
MinBtLog2SizeY = log2_luma_min_BT_size_minus2 + 2
MinQtLog2SizeY = MinBtLog2SizeY + log2_diff_luma_min_QT_min_BT_size
MaxBtLog2SizeY = MinQtLog2SizeY + log2_diff_luma_max_BT_min_QT_size
CtbLog2SizeY = MaxBtLog2SizeY + log2_diff_luma_max_QT_max_BT_size
MinBtLog2SizeY = MinBtLog2SizeY + delta_log2_luma_min_BT_size
MinQtLog2SizeY = MinQtLog2SizeY + delta_log2_luma_min_QT_size
MaxBtLog2SizeY = MaxBtLog2SizeY + delta_log2_luma_max_BT_size
CtbLog2SizeY = CtbLog2SizeY + delta_log2_luma_max_QT_size
MinBtSizeY = 1  <<  MinBtLog2SizeY (19)
MinQtSizeY = 1  <<  MinQtLog2SizeY (20)
MaxBtSizeY = 1  <<  MaxBtLog2SizeY (21)
CtbSizeY = 1  <<  CtbLog2SizeY (22)
제5 실시예(HLS)
■ 상위 헤더의 신택스 요소
상위 헤더에 포함되는 신택스 요소들은 제2 실시예와 같다.
1) log2_sym_luma_min_BT_size_minus2
2) log2_asym_luma_min_BT_size_minus1
3) log2_diff_luma_min_QT_min_BT_size
4) log2_diff_luma_max_BT_min_QT_size
5) log2_diff_luma_max_QT_max_BT_size
■ 하위 헤더의 신택스 요소
하위 헤더에 포함되는 신택스 요소들은 다음과 같다.
1) delta_ log2 _ sym _ luma _min_BT_size: symmetric으로 분할된 루마 블록 기준으로 상위 헤더에 정의된 신택스 요소들에 의해 특정되는 symmetric min BT block size에 더해지는 오프셋(delta symmetric min BT block size)을 정의한다.
2) delta_ log2 _ asym _ luma _min_BT_size: asymmetric으로 분할된 루마 블록 기준으로 상위 헤더에 정의된 신택스 요소들에 의해 특정되는 symmetric min BT block size에 더해지는 오프셋(delta asymmetric min BT block size)을 정의한다.
3) delta_ log2 _ luma _min_QT_size: 상위 헤더에 정의된 신택스 요소들에 의해 특정되는 min QT block size에 더해지는 오프셋 (delta min QT block size)을 정의한다.
4) delta_ log2 _ luma _max_BT_size: 상위 헤더에 정의된 신택스 요소들에 의해 특정되는 max BT block size에 더해지는 오프셋(delta max BT block size)을 정의한다.
5) delta_ log2 _ luma _max_QT_size: 상위 헤더에 정의된 신택스 요소들에 의해 특정되는 max QT block size에 더해지는 오프셋(delta max QT block size)을 정의한다.
상기 상위 헤더 및 상기 하위 헤더의 신택스 요소들로부터 유도되는, 실제 symmetric한 min BT luma 블록의 크기 (SymMinBtSizeY)는 수학식 23와 같고, 실제 asymmetric한 min BT luma 블록의 크기 (AsymMinBtSizeY)는 수학식 24와 같으며, 실제 min QT 블록의 크기 (MinQtSizeY)는 수학식 25와 같고, 실제 max BT 블록의 크기 (MaxBtSizeY)는 수학식 26과 같고, 실제 CTU 사이즈 (CtbSizeY)는 수학식 27과 같다.
SymMinBtLog2SizeY = log2_sym_luma_min_BT_size_minus2 + 2
AsymMinBtLog2SizeY = log2_asym_luma_min_BT_size_minus1 + 1
MinQtLog2SizeY = SymMinBtLog2SizeY + log2_diff_luma_min_QT_min_BT_size
MaxBtLog2SizeY = MinQtLog2SizeY + log2_diff_luma_max_BT_min_QT_size
CtbLog2SizeY = MaxBtLog2SizeY + log2_diff_luma_max_QT_max_BT_size
SymMinBtLog2SizeY = SymMinBtLog2SizeY + delta_log2_sym_luma_min_BT_size
AsymMinBtLog2SizeY =
AsymMinBtLog2SizeY + delta_log2_asym_luma_min_BT_size
MinQtLog2SizeY = MinQtLog2SizeY + delta_log2_luma_min_QT_size
MaxBtLog2SizeY = MaxBtLog2SizeY + delta_log2_luma_max_BT_size
CtbLog2SizeY = CtbLog2SizeY + delta_log2_luma_max_QT_size
SymMinBtSizeY = 1  <<  SymMinBtLog2SizeY (23)
AsymMinBtSizeY = 1  <<  AsymMinBtLog2SizeY (24)
MinQtSizeY = 1  <<  MinQtLog2SizeY (25)
MaxBtSizeY = 1  <<  MaxBtLog2SizeY (26)
CtbSizeY = 1  <<  CtbLog2SizeY (27)
제6 실시예(HLS)
■ 상위 헤더의 신택스 요소(syntax elements)
상위 헤더에 포함되는 신택스 요소들은 제3 실시예와 같다.
1) log2_asym_luma_min_BT_size_minus1
2) log2_diff_luma_min_QT_min_BT_size
3) log2_diff_luma_max_BT_min_QT_size
4) log2_diff_luma_max_QT_max_BT_size
■ 하위 헤더의 신택스 요소
하위 헤더에 포함되는 신택스 요소들은 다음과 같다.
1) delta_ log2 _ asym _ luma _min_BT_size: luma 블록 기준으로 상위 헤더에 정의된 신택스 요소들에 의해 특정되는 asymmetric min BT block size 에 더해지는 오프셋(delta asymmetric min BT block size)을 정의한다.
2) delta_ log2 _ luma _min_QT_size: 상위 헤더에 정의된 신택스 요소들에 의해 특정되는 min QT 블록의 크기에 더해지는 오프셋 (delta min QT block size)을 정의한다.
3) delta_ log2 _ luma _max_BT_size: 상위 헤더에 정의된 신택스 요소들에 의해 특정되는 max BT block size에 더해지는 오프셋(delta max BT block size)을 정의한다.
4) delta_ log2 _ luma _max_QT_size: 상위 헤더에 정의된 신택스 요소들에 의해 특정되는 max QT block size에 더해지는 오프셋(delta max QT block size)을 정의한다.
상기 상위 헤더 및 상기 하위 헤더의 신택스 요소들로부터 유도되는, 실제 symmetric한 min BT luma 블록의 크기 (SymMinBtSizeY)는 수학식 28와 같고, 실제 asymmetric한 min BT luma 블록의 크기 (AsymMinBtSizeY)는 수학식 29와 같으며, 실제 min QT 블록의 크기 (MinQtSizeY)는 수학식 30과 같고, 실제 max BT 블록의 크기 (MaxBtSizeY)는 수학식 31과 같고, 실제 CTU 사이즈 (CtbSizeY)는 수학식 32와 같다.
SymMinBtLog2SizeY = log2_asym_luma_min_BT_size_minus1 + 2
AsymMinBtLog2SizeY = log2_asym_luma_min_BT_size_minus1 + 1
MinQtLog2SizeY = SymMinBtLog2SizeY + log2_diff_luma_min_QT_min_BT_size
MaxBtLog2SizeY = MinQtLog2SizeY + log2_diff_luma_max_BT_min_QT_size
CtbLog2SizeY = MaxBtLog2SizeY + log2_diff_luma_max_QT_max_BT_size
SymMinBtLog2SizeY
= SymMinBtLog2SizeY + delta_log2_asym_luma_min_BT_size + 1
AsymMinBtLog2SizeY = AsymMinBtLog2SizeY + delta_log2_luma_min_BT_size
MinQtLog2SizeY = MinQtLog2SizeY + delta_log2_luma_min_QT_size
MaxBtLog2SizeY = MaxBtLog2SizeY + delta_log2_luma_max_BT_size
CtbLog2SizeY = CtbLog2SizeY + delta_log2_luma_max_QT_size
SymMinBtSizeY = 1  <<  SymMinBtLog2SizeY (28)
AsymMinBtSizeY = 1  <<  AsymMinBtLog2SizeY (29)
MinQtSizeY = 1  <<  MinQtLog2SizeY (30)
MaxBtSizeY = 1  <<  MaxBtLog2SizeY (31)
CtbSizeY = 1  <<  CtbLog2SizeY (32)
이상에서 예시한 상위 레벨 신택스(HLS)의 정보를 이용하여, 영상 복호화 장치는 MinBtSizeY , SymMinBtSizeY , AsymMinBtSizeY , MinQtSizeY , MaxBtSizeY , CtbSizeY 등의 파라미터들을 산출할 수 있으며, 산출된 파라미터들을 기초로, 주어진 CTU 혹은 CTB의 QTBT 블록 분할 구조를 결정하는 과정에서, 일부 (서브) 블록에 대해 QT 분할이 적용되는지 여부 혹은 BT 분할이 적용되는지 여부를, QT_Split_flag 혹은 BT_Split_flag의 복호화 없이, 추론할 수 있다. 영상 부호화 장치는 영상 복호화 장치가 상기 파라미터들로부터 추론할 수 있는 일부 (서브) 블록에 대한 QT_Split_flag 혹은 BT_Split_flag를 시그널링하지 않는다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
CROSS-REFERENCE TO RELATED APPLICATION
본 특허출원은, 본 명세서에 그 전체가 참고로서 포함되는, 2017년 05월 26일자로 한국에 출원한 특허출원번호 제10-2017-0065495호 및 2017년 07월 31일자로 한국에 출원한 특허출원번호 제10-2017-0097259호에 대해 우선권을 주장한다.

Claims (13)

  1. 영상 데이터를 복호화하는 방법에 있어서,
    영상 데이터의 블록에 대한 부호화된 데이터를 포함하는 비트스트림을 수신하는 단계;
    상기 영상 데이터의 블록이 속하는 상위 레벨의 헤더 정보를 복호화하여, 상위 레벨에서 정의된 블록 파티셔닝에 관한 신택스 요소(syntax element)들을 파싱하는 단계;
    상기 신택스 요소들로부터 블록 파티셔닝에 대한 파라미터들을 산출하는 단계, 여기서 상기 블록 파티셔닝에 대한 파라미터들은 BT(binary tree)에서 허용되는 리프 노드(leaf node)의 최소 블록 크기를 가리키는 제1 파라미터, QT(quad tree)에서 허용되는 리프 노드의 최소 블록 크기를 가리키는 제2 파라미터, BT에서 허용되는 루트 노드(root node)의 최대 블록 크기를 가리키는 제3 파라미터, 및 상기 영상 데이터의 블록의 크기를 가리키는 제4 파라미터를 포함함;
    산출된 파라미터들을 기초로, 상기 비트스트림으로부터 상기 영상 데이터의 블록에 대한 QTBT 블록 파티셔닝 구조를 도출하는 단계, 여기서 상기 QTBT 블록 파티셔닝 구조는 QT의 리프 노드로부터 BT가 루트된(rooted) 구조임; 및
    상기 영상 비트스트림을 기초로 QTBT의 리프 노드들에 대응하는 최종 서브 블록들을 복호화하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 QTBT 블록 파티셔닝 구조를 도출하는 단계는,
    주어진 서브 블록의 너비 및 높이가 상기 제1 파라미터가 가리키는 크기와 동일하면, 상기 주어진 서브 블록이 더이상 BT 분할되지 않는 것으로 추론하는 단계를 포함하는 것을 특징으로 하는, 방법.
  3. 제1항에 있어서,
    상기 QTBT 블록 파티셔닝 구조를 도출하는 단계는,
    주어진 서브 블록의 높이가 상기 제1 파라미터가 가리키는 크기와 동일하고, 상기 주어진 서브 블록이 BT 분할되는 경우에, 상기 주어진 서브 블록이 수직 방향으로 분할되는 것으로 추론하는 단계를 포함하는 것을 특징으로 하는, 방법.
  4. 제1항에 있어서,
    상기 QTBT 블록 파티셔닝 구조를 도출하는 단계는,
    주어진 서브 블록의 너비가 상기 제1 파라미터가 가리키는 크기와 동일하고, 상기 주어진 서브 블록이 BT 분할되는 경우에, 상기 주어진 서브 블록이 수평 방향으로 분할되는 것으로 추론하는 단계를 포함하는 것을 특징으로 하는, 방법.
  5. 제1항에 있어서,
    상기 QTBT 블록 파티셔닝 구조를 도출하는 단계는,
    주어진 서브 블록이 상기 제2 파라미터가 가리키는 크기와 동일하면, 상기 주어진 서브 블록이 더이상 QT 분할되지 않는 것으로 추론하는 단계를 포함하는 것을 특징으로 하는, 방법.
  6. 제1항에 있어서,
    상기 QTBT 블록 파티셔닝 구조를 도출하는 단계는,
    상기 QT의 리프 노드의 크기가 상기 제3 파라미터가 가리키는 크기보다 크면, 상기 QT의 리프 노드를 상기 QTBT의 리프 노드로 추론하는 단계를 포함하는 것을 특징으로 하는, 방법.
  7. 제1항에 있어서,
    상기 QTBT 블록 파티셔닝 구조를 도출하는 단계는,
    상기 제4 파라미터가 가리키는 크기가 사전에 정의된 혹은 사전에 결정된 변환(transform) 최대 크기보다 큰 경우, 상기 영상 데이터의 블록이 상기 변환 최대 크기까지 재귀적으로 QT 분할하는 것으로 추론하는 단계를 포함하는 것을 특징으로 하는, 방법.
  8. 제1항에 있어서,
    상기 신택스 요소들은,
    BT에서 허용되는 리프 노드의 최소 블록 크기를 지시하는 요소;
    BT에서 허용되는 리프 노드의 최소 블록 크기와 QT에서 허용되는 리프 노드의 최소 블록 크기 간의 차이를 지시하는 요소;
    BT에서 허용되는 루트 노드의 최대 블록 크기와 QT에서 허용되는 리프 노드의 최소 블록 크기 간의 차이를 지시하는 요소; 및
    QT에서 허용되는 루트 노드의 최대 블록 크기와 BT에서 허용되는 루트 노드의 최대 블록 크기 간의 차이를 지시하는 요소
    를 포함하는 것을 특징으로 하는, 방법.
  9. 영상 데이터를 복호화하는 방법에 있어서,
    영상 데이터의 블록에 대한 부호화된 데이터를 포함하는 비트스트림을 수신하는 단계;
    상기 영상 데이터의 블록의 속하는 상위 레벨의 제1 헤더 정보를 복호화하여, 상기 상위 레벨에서 정의된 블록 파티셔닝에 관한 제1 신택스 요소(syntax element)들을 파싱하는 단계;
    상기 상위 레벨에 속하는 하위 레벨의 제2 헤더 정보를 복호화하여, 상기 제1 신택스 요소들에 대한 오프셋에 관한 제2 신택스 요소들을 파싱하는 단계;
    상기 제1 신택스 요소들 및 제2 신택스 요소들로부터 블록 파티셔닝에 대한 파라미터들을 산출하는 단계, 여기서 상기 블록 파티셔닝에 대한 파라미터들은 BT에서 허용되는 리프 노드(leaf node)의 최소 블록 크기를 가리키는 제1 파라미터, QT에서 허용되는 리프 노드의 최소 블록 크기를 가리키는 제2 파라미터, BT에서 허용되는 루트 노드(root node)의 최대 블록 크기를 가리키는 제3 파라미터, 및 상기 영상 데이터의 블록의 크기를 가리키는 제4 파라미터를 포함함;
    산출된 파라미터들을 기초로, 상기 비트스트림으로부터 상기 영상 데이터의 블록에 대한 QTBT 블록 파티셔닝 구조를 도출하는 단계, 여기서 상기 QTBT 블록 파티셔닝 구조는 QT의 리프 노드로부터 BT가 루트된(rooted) 구조임; 및
    상기 영상 비트스트림을 기초로 QTBT의 리프 노드들에 대응하는 최종 서브 블록들을 복호화하는 단계
    를 포함하는 방법.
  10. 영상 데이터를 복호화하는 방법에 있어서,
    영상 데이터의 블록에 대한 부호화된 데이터를 포함하는 비트스트림을 수신하는 단계;
    상기 영상 데이터의 블록의 속하는 상위 레벨의 헤더 정보를 복호화하여, 상위 레벨에서 정의된 블록 파티셔닝에 관한 신택스 요소(syntax element)들을 파싱하는 단계;
    상기 신택스 요소들로부터 블록 파티셔닝에 대한 파라미터들을 산출하는 단계, 여기서 상기 블록 파티셔닝에 대한 파라미터들은 대칭 분할되어 생성된 BT 리프 노드의 최소 블록 크기를 가리키는 제1 파라미터, 비대칭 분할되어 생성된 BT 리프 노드의 최소 블록 크기를 가리키는 제2 파라미터, QT에서 허용되는 리프 노드의 최소 블록 크기를 가리키는 제3 파라미터, BT에서 허용되는 루트 노드의 최대 블록 크기를 가리키는 제4 파라미터, 상기 영상 데이터의 블록의 크기를 가리키는 제5 파라미터를 포함함;
    산출된 파라미터들을 기초로, 상기 비트스트림으로부터 상기 영상 데이터의 블록에 대한 QTBT 블록 파티셔닝 구조를 도출하는 단계, 여기서 상기 QTBT 블록 파티셔닝 구조는 QT의 리프 노드로부터 BT가 루트된(rooted) 구조임; 및
    상기 영상 비트스트림을 기초로 QTBT의 리프 노드들에 대응하는 최종 서브 블록들을 복호화하는 단계
    를 포함하는 방법.
  11. 제10항에 있어서,
    상기 신택스 요소들은,
    대칭 분할되어 생성된 BT 리프 노드의 최소 블록 크기를 가리키는 요소;
    비대칭 분할되어 생성된 BT 리프 노드의 최소 블록 크기를 가리키는 요소;
    BT에서 허용되는 리프 노드의 최소 블록 크기와 QT에서 허용되는 리프 노드의 최소 블록 크기 간의 차이를 가리키는 요소;
    BT에서 허용되는 루트 노드의 최대 블록 크기와 QT에서 허용되는 리프 노드의 최소 블록 크기 간의 차이를 가리키는 요소; 및
    QT에서 허용되는 루트 노드의 최대 블록 크기와 BT에서 허용되는 루트 노드의 최대 블록 크기 간의 차이를 가리키는 요소
    를 포함하는 것을 특징으로 하는, 방법.
  12. 제10항에 있어서,
    상기 신택스 요소들은,
    비대칭 분할되어 생성된 BT 리프 노드의 최소 블록 크기를 가리키는 요소;
    대칭 분할되어 생성된 BT 리프 노드의 최소 블록 크기와 QT에서 허용되는 리프 노드의 최소 블록 크기 간의 차이를 가리키는 요소;
    BT에서 허용되는 루트 노드의 최대 블록 크기와 QT에서 허용되는 리프 노드의 최소 블록 크기 간의 차이를 가리키는 요소; 및
    QT에서 허용되는 루트 노드의 최대 블록 크기와 BT에서 허용되는 루트 노드의 최대 블록 크기 간의 차이를 가리키는 요소
    를 포함하는 것을 특징으로 하는, 방법.
  13. 영상 데이터를 복호화하는 방법에 있어서,
    영상 데이터의 블록에 대한 부호화된 데이터를 포함하는 비트스트림을 수신하는 단계;
    상기 영상 데이터의 블록이 속하는 상위 레벨의 제1 헤더 정보를 복호화하여, 상기 상위 레벨에서 정의된 블록 파티셔닝에 관한 제1 신택스 요소(syntax element)들을 파싱하는 단계;
    상기 상위 레벨에 속하는 하위 레벨의 제2 헤더 정보를 복호화하여, 상기 제1 신택스 요소들에 대한 오프셋에 관한 제2 신택스 요소들을 파싱하는 단계;
    상기 제1 신택스 요소들 및 제2 신택스 요소들로부터 블록 파티셔닝에 대한 파라미터들을 산출하는 단계, 여기서 상기 블록 파티셔닝에 대한 파라미터들은 대칭 분할되어 생성된 BT 리프 노드의 최소 블록 크기를 가리키는 제1 파라미터, 비대칭 분할되어 생성된 BT 리프 노드의 최소 블록 크기를 가리키는 제2 파라미터, QT에서 허용되는 리프 노드의 최소 블록 크기를 가리키는 제3 파라미터, BT에서 허용되는 루트 노드의 최대 블록 크기를 가리키는 제4 파라미터, 상기 영상 데이터의 블록의 크기를 가리키는 제5 파라미터를 포함함;
    산출된 파라미터들을 기초로, 상기 비트스트림으로부터 상기 영상 데이터의 블록에 대한 QTBT 블록 파티셔닝 구조를 도출하는 단계, 여기서 상기 QTBT 블록 파티셔닝 구조는 QT의 리프 노드로부터 BT가 루트된(rooted) 구조임; 및
    상기 영상 비트스트림을 기초로 QTBT의 리프 노드들에 대응하는 최종 서브 블록들을 복호화하는 단계
    를 포함하는, 방법.
PCT/KR2018/005879 2017-05-26 2018-05-24 다양한 블록 크기를 지원하는 영상 부호화 또는 복호화를 위한 장치 및 방법 WO2018217024A1 (ko)

Priority Applications (10)

Application Number Priority Date Filing Date Title
CN202311302116.6A CN117201820A (zh) 2017-05-26 2018-05-24 对视频数据进行编码或解码的方法和发送比特流的方法
US16/617,250 US11218697B2 (en) 2017-05-26 2018-05-24 Apparatus and method for video encoding or decoding supporting various block sizes
CN202311297740.1A CN117201818A (zh) 2017-05-26 2018-05-24 对视频数据进行编码或解码的方法和发送比特流的方法
CN201880036548.8A CN110720217B (zh) 2017-05-26 2018-05-24 用于支持各种块大小的图像编码或解码的设备和方法
CN202311300208.0A CN117201819A (zh) 2017-05-26 2018-05-24 对视频数据进行编码或解码的方法和存储比特流的方法
CN202311302153.7A CN117201821A (zh) 2017-05-26 2018-05-24 对视频数据进行编码或解码的设备和存储比特流的方法
US17/365,079 US11736691B2 (en) 2017-05-26 2021-07-01 Apparatus and method for video encoding or decoding supporting various block sizes
US17/365,061 US11665346B2 (en) 2017-05-26 2021-07-01 Apparatus and method for video encoding or decoding supporting various block sizes
US17/944,707 US11792397B2 (en) 2017-05-26 2022-09-14 Apparatus and method for video encoding or decoding supporting various block sizes
US17/944,693 US11818348B2 (en) 2017-05-26 2022-09-14 Apparatus and method for video encoding or decoding supporting various block sizes

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2017-0065495 2017-05-26
KR20170065495 2017-05-26
KR1020170097259A KR102435881B1 (ko) 2017-05-26 2017-07-31 영상 부호화 또는 복호화하기 위한 장치 및 방법
KR10-2017-0097259 2017-07-31

Related Child Applications (3)

Application Number Title Priority Date Filing Date
US16/617,250 A-371-Of-International US11218697B2 (en) 2017-05-26 2018-05-24 Apparatus and method for video encoding or decoding supporting various block sizes
US17/365,079 Continuation US11736691B2 (en) 2017-05-26 2021-07-01 Apparatus and method for video encoding or decoding supporting various block sizes
US17/365,061 Continuation US11665346B2 (en) 2017-05-26 2021-07-01 Apparatus and method for video encoding or decoding supporting various block sizes

Publications (1)

Publication Number Publication Date
WO2018217024A1 true WO2018217024A1 (ko) 2018-11-29

Family

ID=64396840

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2018/005879 WO2018217024A1 (ko) 2017-05-26 2018-05-24 다양한 블록 크기를 지원하는 영상 부호화 또는 복호화를 위한 장치 및 방법

Country Status (4)

Country Link
US (3) US11218697B2 (ko)
KR (3) KR102515601B1 (ko)
CN (4) CN117201820A (ko)
WO (1) WO2018217024A1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021018081A1 (en) * 2019-07-26 2021-02-04 Beijing Bytedance Network Technology Co., Ltd. Configurable coding tree unit size in video coding
WO2021047542A1 (en) * 2019-09-09 2021-03-18 Beijing Bytedance Network Technology Co., Ltd. Recursive splitting of video coding blocks
CN113826391A (zh) * 2019-10-30 2021-12-21 腾讯美国有限责任公司 视频编解码中最小编码块大小的范围
CN113841393A (zh) * 2019-08-27 2021-12-24 腾讯美国有限责任公司 用于qt/bt/tt大小的改进的头语法
US11539949B2 (en) 2019-07-26 2022-12-27 Beijing Bytedance Network Technology Co., Ltd. Determination of picture partition mode based on block size
RU2815443C2 (ru) * 2019-07-26 2024-03-15 Бейджин Байтдэнс Нетворк Текнолоджи Ко., Лтд. Определение режима разделения изображения на основе размера блока

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200144131A (ko) * 2018-05-17 2020-12-28 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) 암시적 변환 유닛 경계들의 디블로킹
WO2019234604A1 (en) 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Extended quad-tree with asymmetric sub-blocks
WO2019244116A1 (en) * 2018-06-21 2019-12-26 Beijing Bytedance Network Technology Co., Ltd. Border partition in video coding
BR112021016410A2 (pt) * 2019-03-21 2021-11-09 Samsung Electronics Co Ltd Método de decodificação de vídeo, aparelho de decodificação de vídeo, e método de codificação de vídeo
US11412264B2 (en) * 2019-09-24 2022-08-09 Qualcomm Incorporated Parameter set signaling for video coding
WO2023132991A1 (en) * 2022-01-10 2023-07-13 Innopeak Technology, Inc. Signaling general constraints information for video coding
WO2024016171A1 (zh) * 2022-07-19 2024-01-25 Oppo广东移动通信有限公司 一种视频编码方法、设备、存储介质及码流

Citations (5)

* 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
KR101635830B1 (ko) * 2009-10-01 2016-07-05 에스케이텔레콤 주식회사 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
KR20160104706A (ko) * 2013-12-30 2016-09-05 구글 인코포레이티드 재귀적 블록 파티셔닝
KR20170002460A (ko) * 2014-06-11 2017-01-06 엘지전자 주식회사 임베디드 블록 파티셔닝을 이용하여 비디오 신호를 인코딩, 디코딩하는 방법 및 장치
KR101718969B1 (ko) * 2015-10-02 2017-03-23 인하대학교 산학협력단 Hevc 인트라 예측의 속도 향상을 위한 블록 사이즈 후보 조기 결정 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101379188B1 (ko) 2010-05-17 2014-04-18 에스케이 텔레콤주식회사 인트라 블록 및 인터 블록이 혼합된 코딩블록을 이용하는 영상 부호화/복호화 장치 및 그 방법
US9848197B2 (en) * 2011-03-10 2017-12-19 Qualcomm Incorporated Transforms in video coding
US20130016769A1 (en) * 2011-07-17 2013-01-17 Qualcomm Incorporated Signaling picture size in video coding
US20130089152A1 (en) * 2011-10-05 2013-04-11 Qualcomm Incorporated Signaling picture identification for video coding
US9451252B2 (en) * 2012-01-14 2016-09-20 Qualcomm Incorporated Coding parameter sets and NAL unit headers for video coding
US20130294524A1 (en) * 2012-05-04 2013-11-07 Qualcomm Incorporated Transform skipping and lossless coding unification
US9253483B2 (en) * 2012-09-25 2016-02-02 Google Technology Holdings LLC Signaling of scaling list
CN104702974B (zh) 2015-02-02 2018-04-06 电子科技大学 基于模糊逻辑的码率控制方法及视频编码方法
WO2017008263A1 (en) 2015-07-15 2017-01-19 Mediatek Singapore Pte. Ltd. Conditional binary tree block partitioning structure
US10212444B2 (en) * 2016-01-15 2019-02-19 Qualcomm Incorporated Multi-type-tree framework for video coding
EP3220643A1 (en) * 2016-03-14 2017-09-20 Thomson Licensing Method and device for encoding at least one image unit, and method and device for decoding a stream representative of at least one image unit
US10448011B2 (en) * 2016-03-18 2019-10-15 Mediatek Inc. Method and apparatus of intra prediction in image and video processing
US10623774B2 (en) * 2016-03-22 2020-04-14 Qualcomm Incorporated Constrained block-level optimization and signaling for video coding tools
WO2017205704A1 (en) * 2016-05-25 2017-11-30 Arris Enterprises Llc General block partitioning method
US10567808B2 (en) * 2016-05-25 2020-02-18 Arris Enterprises Llc Binary ternary quad tree partitioning for JVET

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101635830B1 (ko) * 2009-10-01 2016-07-05 에스케이텔레콤 주식회사 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
KR20160104706A (ko) * 2013-12-30 2016-09-05 구글 인코포레이티드 재귀적 블록 파티셔닝
KR20170002460A (ko) * 2014-06-11 2017-01-06 엘지전자 주식회사 임베디드 블록 파티셔닝을 이용하여 비디오 신호를 인코딩, 디코딩하는 방법 및 장치
WO2016091161A1 (en) * 2014-12-10 2016-06-16 Mediatek Singapore Pte. Ltd. Method of video coding using binary tree block partitioning
KR101718969B1 (ko) * 2015-10-02 2017-03-23 인하대학교 산학협력단 Hevc 인트라 예측의 속도 향상을 위한 블록 사이즈 후보 조기 결정 방법

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021018081A1 (en) * 2019-07-26 2021-02-04 Beijing Bytedance Network Technology Co., Ltd. Configurable coding tree unit size in video coding
US11539949B2 (en) 2019-07-26 2022-12-27 Beijing Bytedance Network Technology Co., Ltd. Determination of picture partition mode based on block size
US11659179B2 (en) 2019-07-26 2023-05-23 Beijing Bytedance Network Technology Co., Ltd. Determination of picture partition mode based on block size
US11930175B2 (en) 2019-07-26 2024-03-12 Beijing Bytedance Network Technology Co., Ltd Block size dependent use of video coding mode
RU2815443C2 (ru) * 2019-07-26 2024-03-15 Бейджин Байтдэнс Нетворк Текнолоджи Ко., Лтд. Определение режима разделения изображения на основе размера блока
CN113841393A (zh) * 2019-08-27 2021-12-24 腾讯美国有限责任公司 用于qt/bt/tt大小的改进的头语法
CN113841393B (zh) * 2019-08-27 2024-04-02 腾讯美国有限责任公司 视频编解码方法、装置、计算机设备和存储介质
WO2021047542A1 (en) * 2019-09-09 2021-03-18 Beijing Bytedance Network Technology Co., Ltd. Recursive splitting of video coding blocks
US11930216B2 (en) 2019-09-09 2024-03-12 Beijing Bytedance Network Technology Co., Ltd Recursive splitting of video coding blocks
CN113826391A (zh) * 2019-10-30 2021-12-21 腾讯美国有限责任公司 视频编解码中最小编码块大小的范围

Also Published As

Publication number Publication date
KR20220119572A (ko) 2022-08-30
CN117201821A (zh) 2023-12-08
US20230068604A1 (en) 2023-03-02
US11818348B2 (en) 2023-11-14
KR102515601B1 (ko) 2023-03-29
US20230016264A1 (en) 2023-01-19
CN117201818A (zh) 2023-12-08
CN117201820A (zh) 2023-12-08
US11792397B2 (en) 2023-10-17
KR20220119573A (ko) 2022-08-30
KR20220116139A (ko) 2022-08-22
US20210136369A1 (en) 2021-05-06
US11218697B2 (en) 2022-01-04
KR102515610B1 (ko) 2023-03-29
CN117201819A (zh) 2023-12-08
KR102505904B1 (ko) 2023-03-03

Similar Documents

Publication Publication Date Title
WO2018217024A1 (ko) 다양한 블록 크기를 지원하는 영상 부호화 또는 복호화를 위한 장치 및 방법
WO2021015523A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018030599A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2017018664A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2018070742A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2014003423A4 (ko) 영상 부호화/복호화 방법 및 장치
WO2018062788A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2012043989A2 (ko) 블록 분할 방법 및 복호화 장치
WO2013157825A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2018070713A1 (ko) 크로마 성분에 대한 인트라 예측 모드를 유도하는 방법 및 장치
WO2016200234A1 (ko) 영상의 부호화/복호화 방법 및 이를 위한 장치
WO2020055014A1 (ko) 레지듀얼 코딩 방법 및 그 장치
WO2015137785A1 (ko) 샘플값 보상을 위한 영상 부호화 방법과 그 장치, 및 샘플값 보상을 위한 영상 복호화 방법과 그 장치
WO2016190627A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018174457A1 (ko) 영상 처리 방법 및 이를 위한 장치
WO2020171681A1 (ko) 인트라 예측 기반 비디오 신호 처리 방법 및 장치
WO2015056941A1 (ko) 다계층 기반의 영상 부호화/복호화 방법 및 장치
WO2021125912A1 (ko) 비디오 신호 처리 방법 및 이를 위한 장치
WO2021054807A1 (ko) 참조 샘플 필터링을 이용하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2017065422A1 (ko) 영상 처리 방법 및 이를 위한 장치
WO2021040319A1 (ko) 비디오/영상 코딩 시스템에서 라이스 파라미터 도출 방법 및 장치
WO2013157769A1 (ko) 엔트로피 부복호화 방법 및 이러한 방법을 사용하는 장치
WO2018062881A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2016204524A1 (ko) 영상의 부호화/복호화 방법 및 이를 위한 장치
WO2021172912A1 (ko) 사인 데이터 하이딩 관련 영상 디코딩 방법 및 그 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18806771

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18806771

Country of ref document: EP

Kind code of ref document: A1