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

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

Info

Publication number
KR102590840B1
KR102590840B1 KR1020230003499A KR20230003499A KR102590840B1 KR 102590840 B1 KR102590840 B1 KR 102590840B1 KR 1020230003499 A KR1020230003499 A KR 1020230003499A KR 20230003499 A KR20230003499 A KR 20230003499A KR 102590840 B1 KR102590840 B1 KR 102590840B1
Authority
KR
South Korea
Prior art keywords
block
size
split
partitioning
syntax elements
Prior art date
Application number
KR1020230003499A
Other languages
English (en)
Other versions
KR20230010058A (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
Priority claimed from KR1020220102168A external-priority patent/KR102515610B1/ko
Application filed by 에스케이텔레콤 주식회사 filed Critical 에스케이텔레콤 주식회사
Publication of KR20230010058A publication Critical patent/KR20230010058A/ko
Application granted granted Critical
Publication of KR102590840B1 publication Critical patent/KR102590840B1/ko

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

Abstract

본 발명은 영상을 효율적으로 부호화하기 위한 영상 부호화 또는 복호화에 관한 것이다. 본 개시의 기술들은 블록의 다양한 분할 모양과, 블록들의 분할 형태를 표현하는 신택스(syntax)와, 이를 위한 상위 레벨에 표현되는 신택스 요소(syntax element)들과 관련되어 있다.

Description

영상 부호화 또는 복호화하기 위한 장치 및 방법{Apparatus and Method for Video Encoding or Decoding}
본 발명은 영상을 효율적으로 부호화하기 위한 영상 부호화 또는 복호화에 관한 것이다. 보다 상세하게는, 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)는 샘플들의 배열을 지칭할 수 있으며, 프레임(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를 시그널링하지 않는다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (6)

  1. 영상 데이터를 복호화하는 방법에 있어서,
    영상 데이터의 블록에 대한 부호화된 데이터를 포함하는 비트스트림을 수신하는 단계;
    상기 비트스트림으로부터 상기 영상 데이터의 블록이 속하는 상위 레벨에서 정의된 블록 파티셔닝에 대한 파라미터들을 특정하는 제1 신택스 요소(syntax element)들을 파싱하는 단계, 상기 블록 파티셔닝은 QT(quad tree)의 리프 노드로부터 멀티 타입 트리가 루트(root)되는 파티셔닝 구조에 기초하며, 상기 멀티 타입 트리는 부모 노드에 대응되는 하나의 블록이 2개의 자식 노드에 대응하는 2개의 서브블록으로 분할되는 BT(binary tree)와 부모 노드에 대응되는 하나의 블록이 3개의 자식 노드에 대응하는 3개의 서브블록으로 분할되는 TT(triple tree)를 포함함;
    상기 비트스트림으로부터 상기 상위 레벨에 속하는 하위 레벨의 헤더 정보에 정의된 제2 신택스 요소들을 파싱하는 단계, 상기 제2 신택스 요소들은 상기 제1 신택스 요소들에 의해 특정되는 상기 블록 파티셔닝에 대한 파라미터들 중 일부에 대한 상기 하위 레벨에서의 변경을 지시함;
    상기 제1 신택스 요소들 및 상기 제2 신택스 요소들로부터 상기 블록 파티셔닝에 대한 파라미터들을 산출하는 과정, 여기서 상기 블록 파티셔닝에 대한 파라미터들은 BT(binary tree)에서 허용되는 리프 노드(leaf node)의 최소 블록 크기를 가리키는 제1 파라미터, QT에서 허용되는 리프 노드의 최소 블록 크기를 가리키는 제2 파라미터, BT에서 허용되는 루트 노드(root node)의 최대 블록 크기를 가리키는 제3 파라미터, 및 상기 영상 데이터의 블록의 크기를 가리키는 제4 파라미터를 포함함;
    상기 하위 레벨에 속하는 영상 데이터의 블록에 대한 파티셔닝 구조를 도출하기 위해, 상기 블록 파티셔닝에 대한 파라미터들에 기초하여 부가된 제약하에서 상기 비트스트림으로부터 상기 영상 데이터의 블록에 대한 파티셔닝 구조를 특정하는 제3 신택스 요소들을 파싱하는 단계; 및
    상기 비트스트림으로부터 상기 영상 데이터의 블록에 대한 파티셔닝 구조의 리프 노드들에 대응하는 서브 블록들을 복호화하는 과정
    을 포함하고,
    상기 영상 데이터의 블록에 대한 파티셔닝 구조에서, 주어진 서브 블록의 너비가 상기 제1 파라미터가 가리키는 크기와 동일하고 상기 주어진 서브 블록이 BT 분할되는 경우에, 상기 주어진 서브 블록이 수평 방향으로 분할되는 것으로 추론되는 것을 특징으로 하는, 방법.
  2. 제1항에 있어서,
    상기 제1 신택스 요소들은 적어도,
    상기 영상 데이터의 블록의 크기;
    BT에서 허용되는 리프 노드의 최소 블록 크기;
    BT에서 허용되는 리프 노드의 최소 블록 크기와 QT에서 허용되는 리프 노드의 최소 블록 크기 간의 차이; 및
    BT에서 허용되는 루트 노드의 최대 블록 크기와 QT에서 허용되는 리프 노드의 최소 블록 크기 간의 차이
    를 지시하는 것을 특징으로 하는, 방법.
  3. 영상 데이터를 부호화하는 방법에 있어서,
    상위 레벨에서 블록 파티셔닝에 대한 파라미터들을 결정하는 단계, 상기 블록 파티셔닝은 QT(quad tree)의 리프 노드로부터 멀티 타입 트리가 루트(root)되는 파티셔닝 구조에 기초하며, 상기 멀티 타입 트리는 부모 노드에 대응되는 하나의 블록이 2개의 자식 노드에 대응하는 2개의 서브블록으로 분할되는 BT(binary tree)와 부모 노드에 대응되는 하나의 블록이 3개의 자식 노드에 대응하는 3개의 서브블록으로 분할되는 TT(triple tree)를 포함함;
    상기 상위 레벨의 신택스 정보로서, 상기 블록 파티셔닝에 대한 파라미터들을 특정하기 위한 제1 신택스 요소들을 부호화하는 단계;
    상기 상위 레벨에 속하는 하위 레벨에서 상기 블록 파티셔닝에 대한 파라미터들을 결정하는 단계;
    상기 하위 레벨의 신택스 정보로서, 상기 제1 신택스 요소들에 의해 특정되는 상기 블록 파티셔닝에 대한 파라미터들 중 일부에 대한 상기 하위 레벨에서의 변경을 위한 제2 신택스 요소들을 부호화하는 단계;
    상기 블록 파티셔닝에 대한 파라미터들에 기초하여 부가된 제약하에서, 상기 하위 레벨에 속하는 상기 영상 데이터의 블록에 대한 파티셔닝 구조를 특정하기 위한 제3 신택스 요소들을 부호화하는 단계; 및
    상기 영상 데이터의 블록에 대한 상기 파티셔닝 구조의 리프 노드들에 대응하는 서브블록들을 부호화하는 단계
    를 포함하고,
    상기 블록 파티셔닝에 대한 파라미터들은 BT(binary tree)에서 허용되는 리프 노드(leaf node)의 최소 블록 크기를 가리키는 제1 파라미터, QT에서 허용되는 리프 노드의 최소 블록 크기를 가리키는 제2 파라미터, BT에서 허용되는 루트 노드(root node)의 최대 블록 크기를 가리키는 제3 파라미터, 및 상기 영상 데이터의 블록의 크기를 가리키는 제4 파라미터를 포함하고,
    상기 영상 데이터의 블록에 대한 파티셔닝 구조에서, 주어진 서브 블록의 너비가 상기 제1 파라미터가 가리키는 크기와 동일하고 상기 주어진 서브 블록이 BT 분할되는 경우에, 상기 주어진 서브 블록이 수평 방향으로 분할되는 것으로 추론되는 것을 특징으로 하는, 방법.
  4. 제3항에 있어서,
    상기 제1 신택스 요소들은 적어도,
    상기 영상 데이터의 블록의 크기;
    BT에서 허용되는 리프 노드의 최소 블록 크기;
    BT에서 허용되는 리프 노드의 최소 블록 크기와 QT에서 허용되는 리프 노드의 최소 블록 크기 간의 차이; 및
    BT에서 허용되는 루트 노드의 최대 블록 크기와 QT에서 허용되는 리프 노드의 최소 블록 크기 간의 차이
    를 지시하는 것을 특징으로 하는, 방법.
  5. 영상 데이터의 블록에 대한 부호화된 데이터를 포함하는 비트스트림을 기록한 컴퓨터 판독 가능한 비일시적인 기록매체로서, 상기 비트스트림은,
    상위 레벨에서 블록 파티셔닝에 대한 파라미터들을 결정하는 단계, 상기 블록 파티셔닝은 QT(quad tree)의 리프 노드로부터 멀티 타입 트리가 루트(root)되는 파티셔닝 구조에 기초하며, 상기 멀티 타입 트리는 부모 노드에 대응되는 하나의 블록이 2개의 자식 노드에 대응하는 2개의 서브블록으로 분할되는 BT(binary tree)와 부모 노드에 대응되는 하나의 블록이 3개의 자식 노드에 대응하는 3개의 서브블록으로 분할되는 TT(triple tree)를 포함함;
    상기 상위 레벨의 신택스 정보로서, 상기 블록 파티셔닝에 대한 파라미터들을 특정하기 위한 제1 신택스 요소들을 부호화하는 단계;
    상기 상위 레벨에 속하는 하위 레벨에서 상기 블록 파티셔닝에 대한 파라미터들을 결정하는 단계;
    상기 하위 레벨의 신택스 정보로서, 상기 제1 신택스 요소들에 의해 특정되는 상기 블록 파티셔닝에 대한 파라미터들 중 일부에 대한 상기 하위 레벨에서의 변경을 위한 제2 신택스 요소들을 부호화하는 단계;
    상기 블록 파티셔닝에 대한 파라미터들에 기초하여 부가된 제약하에서, 상기 하위 레벨에 속하는 상기 영상 데이터의 블록에 대한 파티셔닝 구조를 특정하기 위한 제3 신택스 요소들을 부호화하는 단계; 및
    상기 영상 데이터의 블록에 대한 상기 파티셔닝 구조의 리프 노드들에 대응하는 서브블록들을 부호화하는 단계
    를 포함하는 부호화 프로세스에 의해 생성된 것이며,
    상기 블록 파티셔닝에 대한 파라미터들은 BT(binary tree)에서 허용되는 리프 노드(leaf node)의 최소 블록 크기를 가리키는 제1 파라미터, QT에서 허용되는 리프 노드의 최소 블록 크기를 가리키는 제2 파라미터, BT에서 허용되는 루트 노드(root node)의 최대 블록 크기를 가리키는 제3 파라미터, 및 상기 영상 데이터의 블록의 크기를 가리키는 제4 파라미터를 포함하고,
    상기 영상 데이터의 블록에 대한 파티셔닝 구조에서, 주어진 서브 블록의 너비가 상기 제1 파라미터가 가리키는 크기와 동일하고 상기 주어진 서브 블록이 BT 분할되는 경우에, 상기 주어진 서브 블록이 수평 방향으로 분할되는 것으로 추론되는 것을 특징으로 하는, 컴퓨터 판독 가능한 비일시적인 기록매체.
  6. 제5항에 있어서,
    상기 제1 신택스 요소들은 적어도,
    상기 영상 데이터의 블록의 크기;
    BT에서 허용되는 리프 노드의 최소 블록 크기;
    BT에서 허용되는 리프 노드의 최소 블록 크기와 QT에서 허용되는 리프 노드의 최소 블록 크기 간의 차이; 및
    BT에서 허용되는 루트 노드의 최대 블록 크기와 QT에서 허용되는 리프 노드의 최소 블록 크기 간의 차이
    를 지시하는 것을 특징으로 하는, 컴퓨터 판독 가능한 비일시적인 기록매체.
KR1020230003499A 2017-05-26 2023-01-10 영상 부호화 또는 복호화하기 위한 장치 및 방법 KR102590840B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020170065495 2017-05-26
KR20170065495 2017-05-26
KR1020220102168A KR102515610B1 (ko) 2017-05-26 2022-08-16 영상 부호화 또는 복호화하기 위한 장치 및 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020220102168A Division KR102515610B1 (ko) 2017-05-26 2022-08-16 영상 부호화 또는 복호화하기 위한 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20230010058A KR20230010058A (ko) 2023-01-17
KR102590840B1 true KR102590840B1 (ko) 2023-10-19

Family

ID=64743787

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020170097259A KR102435881B1 (ko) 2017-05-26 2017-07-31 영상 부호화 또는 복호화하기 위한 장치 및 방법
KR1020210147399A KR102435895B1 (ko) 2017-05-26 2021-10-29 영상 부호화 또는 복호화하기 위한 장치 및 방법
KR1020230003499A KR102590840B1 (ko) 2017-05-26 2023-01-10 영상 부호화 또는 복호화하기 위한 장치 및 방법

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020170097259A KR102435881B1 (ko) 2017-05-26 2017-07-31 영상 부호화 또는 복호화하기 위한 장치 및 방법
KR1020210147399A KR102435895B1 (ko) 2017-05-26 2021-10-29 영상 부호화 또는 복호화하기 위한 장치 및 방법

Country Status (3)

Country Link
US (2) US11665346B2 (ko)
KR (3) KR102435881B1 (ko)
CN (1) CN110720217B (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11677940B2 (en) * 2017-09-20 2023-06-13 Electronics And Telecommunications Research Institute Method and device for encoding/decoding image, and recording medium having stored bitstream
WO2020156574A1 (en) * 2019-02-03 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Signaling for video block partition mode
WO2021006617A1 (ko) 2019-07-08 2021-01-14 현대자동차주식회사 인터 예측을 이용하여 비디오를 부호화 및 복호화하는 방법 및 장치
WO2021029646A1 (ko) * 2019-08-12 2021-02-18 한국항공대학교산학협력단 하이 레벨 영상 분할과 영상 부호화/복호화 방법 및 장치
US11496774B2 (en) * 2019-08-27 2022-11-08 Tencent America LLC Header syntax for QT/BT/TT size
KR102609308B1 (ko) * 2019-10-02 2023-12-05 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 비트스트림에서의 서브픽처 시그널링을 위한 신택스
EP4032290A4 (en) 2019-10-18 2022-11-30 Beijing Bytedance Network Technology Co., Ltd. SYNTAX CONSTRAINTS IN REPORTING SUBPICTURE PARAMETER SETS
US11496770B2 (en) * 2019-12-19 2022-11-08 Apple Inc. Media object compression/decompression with adaptive processing for block-level sub-errors and/or decomposed block-level sub-errors

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
HUE051313T2 (hu) * 2009-10-01 2021-03-01 Sk Telecom Co Ltd Eljárás és készülék képek változtatható méretû makroblokkok használatával történõ kódolására/dekódolására
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
US20150189269A1 (en) 2013-12-30 2015-07-02 Google Inc. Recursive block partitioning
EP3157258B1 (en) 2014-06-11 2020-08-05 LG Electronics Inc. Method and device for encoding and decoding video signal by using embedded block partitioning
WO2016090568A1 (en) * 2014-12-10 2016-06-16 Mediatek Singapore Pte. Ltd. Binary tree block partitioning structure
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
KR101718969B1 (ko) 2015-10-02 2017-03-23 인하대학교 산학협력단 Hevc 인트라 예측의 속도 향상을 위한 블록 사이즈 후보 조기 결정 방법
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
US10326989B2 (en) 2016-05-25 2019-06-18 Arris Enterprises Llc General block partitioning method
MX2018014493A (es) 2016-05-25 2019-08-12 Arris Entpr Llc Particionamiento binario, ternario, cuaternario para jvet.

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
F. Le Léannec et al., Asymmetric coding Units in QTBT, Joint Video exploration Team(JVET), JVET-D0064, 2016-10-05, pp. 1-8*
High Efficiency Video coding, H.265(04/2013), ITU-T, 2013-06-07, pp. 1-300*
Jianle chen, et al. Algorithm description of Joint Exploration Test Model 2, Joint Video exploration Team(JVET), JVET-B1001-v1, 2016-03-08, pp. 1-28*
Krit Panusopone, et al. Efficient Transform Unit Representation, JCT-VC of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JCTVC-D250_r2, 2011-01-22, pp 1-3*

Also Published As

Publication number Publication date
KR102435881B1 (ko) 2022-08-24
CN110720217A (zh) 2020-01-21
KR20230010058A (ko) 2023-01-17
US11665346B2 (en) 2023-05-30
KR102435895B1 (ko) 2022-08-24
KR20210133937A (ko) 2021-11-08
CN110720217B (zh) 2023-10-24
US11736691B2 (en) 2023-08-22
US20210329241A1 (en) 2021-10-21
US20210329240A1 (en) 2021-10-21
KR20180129584A (ko) 2018-12-05

Similar Documents

Publication Publication Date Title
KR102515610B1 (ko) 영상 부호화 또는 복호화하기 위한 장치 및 방법
KR102590840B1 (ko) 영상 부호화 또는 복호화하기 위한 장치 및 방법
US11882286B2 (en) Image processing method, and device for same
US20190356915A1 (en) Method and apparatus for encoding/decoding video signal using secondary transform
KR102586674B1 (ko) 경계 강제 파티션에 대한 개선
US20190306538A1 (en) Multi-type-tree framework for transform in video coding
KR102390384B1 (ko) 영상 부호화 또는 복호화하기 위한 장치 및 방법
RU2783332C1 (ru) Способ обработки изображений и устройство для этого

Legal Events

Date Code Title Description
A107 Divisional application of patent
E701 Decision to grant or registration of patent right