KR20240042245A - 삼각형 분할을 이용한 비디오 코딩을 위한 방법 및 장치 - Google Patents

삼각형 분할을 이용한 비디오 코딩을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20240042245A
KR20240042245A KR1020247009599A KR20247009599A KR20240042245A KR 20240042245 A KR20240042245 A KR 20240042245A KR 1020247009599 A KR1020247009599 A KR 1020247009599A KR 20247009599 A KR20247009599 A KR 20247009599A KR 20240042245 A KR20240042245 A KR 20240042245A
Authority
KR
South Korea
Prior art keywords
list
prediction
merge
motion vector
candidate
Prior art date
Application number
KR1020247009599A
Other languages
English (en)
Inventor
시앙린 왕
이-웬 첸
샤오위 시우
쭝-추안 마
홍-정 주
빙 유
Original Assignee
베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 filed Critical 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드
Publication of KR20240042245A publication Critical patent/KR20240042245A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/172Methods 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 picture, frame or field
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

비디오 코딩을 위한 방법 및 장치가 제공된다. 방법은 비디오 픽처를 복수의 CU로 분할하는 단계, 복수의 CU 중 적어도 하나는 적어도 하나의 기하학적 형태의 PU를 포함하는 2개의 PU로 추가로 분할되고; 복수의 후보를 포함하는 제 1 병합 리스트를 구성하는 단계, 복수의 후보들 각각은 리스트 0 MV 및/또는 리스트 1 MV를 포함하는 모션 벡터(MV)이며; 제 1 인덱스 및 제 2 인덱스에 따라 제 1 PU에 대한 제 1 후보 및 제 2 PU에 대한 제 2 후보를 각각 찾는 단계; 제 1 이진 참조 리스트 표시 플래그에 따라 제 1 후보의 리스트 X1 MV 를 선택함으로써 제 1 PU에 대한 제 1 단일 예측 MV를 획득하는 단계; 및 제 2 이진 참조 리스트 표시 플래그에 따라 제 2 후보의 리스트 X2 MV 를 선택함으로써 제 2 PU에 대한 제 2 단일 예측 MV를 획득하는 단계를 포함한다.

Description

삼각형 분할을 이용한 비디오 코딩을 위한 방법 및 장치{METHODS AND APPARATUSES FOR VIDEO CODING USING TRIANGLE PARTITION}
관련 출원에 대한 상호 참조
본 출원은 2019년 10월 10일자로 출원된 "Video Coding with Triangle Prediction"이라는 명칭의 미국 가출원 제62/913,710호 및 2019년 12월 16일자로 출원된 "Video Coding with Triangle Prediction"이라는 명칭의 미국 가출원 제62/948,781호의 우선권을 주장하며, 상기 2개의 미국 가출원들은 모든 목적을 위해 참조로서 본 명세서에 통합된다.
본 출원은 일반적으로 비디오 코딩 및 압축에 관한 것이며, 보다 상세하게는 비디오 코딩에서 삼각형 예측 유닛(즉, 기하학적 분할 예측 유닛의 특별한 경우)을 사용하는 모션 보상된 예측을 위한 방법 및 장치에 관한 것이다.
디지털 비디오는 디지털 텔레비전, 랩톱 또는 데스크탑 컴퓨터, 태블릿 컴퓨터, 디지털 카메라, 디지털 레코딩 디바이스, 디지털 미디어 플레이어, 비디오 게임 콘솔, 스마트폰, 비디오 화상회의 디바이스, 비디오 스트리밍 디바이스 등의 다양한 전자 디바이스들에 의해서 지원된다. 전자 디바이스는 비디오 압축/압축해제를 구현함으로써 디지털 비디오 데이터를 전송, 수신, 인코딩, 디코딩 및/또는 저장한다. 디지털 비디오 디바이스는 다목적 비디오 코딩(VVC: Versatile Video Coding), 공동 탐색 테스트 모델(JEM: Joint Exploration Test Model), MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, 파트 10, 고급 비디오 코딩(AVC), ITU-T H.265/고효율 비디오 코딩(HEVC) 및 이러한 표준의 확장판에서 정의한 표준들에 설명된 것과 같은 비디오 코딩 기술을 구현한다.
비디오 코딩은 일반적으로 비디오 이미지 또는 시퀀스에 존재하는 리던던시를 이용하는 예측 방법(예를 들어, 인터 예측, 인트라 예측)을 사용한다. 비디오 코딩 기술의 중요한 목표는 비디오 품질 저하를 피하거나 최소화하면서 더 낮은 비트 전송률을 사용하는 형식으로 비디오 데이터를 압축하는 것이다. 끊임없이 진화하는 비디오 서비스가 이용가능해짐에 따라 더 나은 코딩 효율성을 가진 인코딩 기술이 필요하다. 각 표준의 블록 분할 방식도 진화하고 있다.
비디오 압축은 일반적으로 비디오 데이터에 고유한 중복성을 줄이거나 제거하기 위해 공간적(인트라 프레임) 예측 및/또는 시간적(인터 프레임) 예측을 수행하는 것을 포함한다. 블록 기반 비디오 코딩의 경우, 비디오 프레임은 하나 이상의 슬라이스로 분할되고, 각 슬라이스는 코딩 트리 단위(CTU)라고도 하는 다중 비디오 블록들을 갖는다. 각 CTU는 하나의 코딩 단위(CU)를 포함하거나 또는 미리 정의된 최소 CU 사이즈에 도달할 때까지 더 작은 CU들로 재귀적으로 분할될 수 있다. 각각의 CU(리프(leaf) CU라고도 함)는 하나 이상의 변환 유닛들(TU)을 포함하며, 각각의 CU는 또한 하나 이상의 예측 유닛(PU)을 포함한다. 각각의 CU는 인트라, 인터 또는 IBC 모드 중 하나로 코딩될 수 있다. 비디오 프레임의 인트라 코딩된(I) 슬라이스의 비디오 블록들은, 동일한 비디오 프레임 내의 이웃 블록들의 참조 샘플들에 대한 공간적 예측을 사용하여 인코딩된다. 비디오 프레임의 인터 코딩된(P 또는 B) 슬라이스의 비디오 블록들은, 동일한 비디오 프레임 내의 이웃 블록들의 참조 샘플들에 대한 공간적 예측을 사용하거나 또는 다른 앞선 및/또는 미래 참조 비디오 프레임들의 참조 샘플들에 대한 시간적 에측을 사용한다.
이전에 인코딩된 참조 블록(예를 들어, 이웃 블록)에 기초한 공간적 또는 시간적 예측은 코딩될 현재 비디오 블록에 대한 예측 블록을 초래한다. 참조 블록을 찾는 프로세스는, 블록 매칭 알고리즘에 의해 수행될 수 있다. 코딩될 현재 블록과 예측 블록 사이의 픽셀 차이들을 나타내는 잔차(residual) 데이터는 잔차 블록 또는 예측 에러로 지칭된다. 인터-코딩된 블록은 예측 블록을 형성하는 참조 프레임의 참조 블록 및 잔차 블록을 가리키는 모션 벡터에 따라 인코딩된다. 모션 벡터를 결정하는 프로세스는 일반적으로 모션 추정이라 지칭된다. 인트라 코딩된 블록은 인트라 예측 모드 및 잔차 블록에 따라 인코딩된다. 추가 압축을 위해, 잔차 블록은 픽셀 도메인에서 변환 도메인, 예를 들어 주파수 도메인으로 변환되어, 잔차 변환 계수(residual transform coefficients)를 생성하며, 이는 다음에 양자화될 수 있다. 처음에 2차원 어레이로 구성된 양자화된 변환 계수는 변환 계수의 1차원 벡터를 생성하기 위해 스캔될 수 있고, 그 다음 훨씬 더 많은 압축을 달성하기 위해 비디오 비트스트림으로 엔트로피 인코딩될 수 있다.
다음으로, 인코딩된 비디오 비트 스트림은 디지털 비디오 기능을 구비한 다른 전자 디바이스에 의해 액세스되는 컴퓨터 판독가능한 저장 매체(예를 들면, 플래시 메모리)에 저장되거나 또는 유선 또는 무선으로 전자 디바이스로 직접 전송된다. 그 다음, 전자 디바이스는, 예를 들어, 비트스트림으로부터 신택스 요소들을 획득하기 위해 인코딩된 비디오 비트스트림을 파싱하고 그리고 비트스트림으로부터 획득된 신택스 요소에 적어도 부분적으로 기초하여 인코딩된 비디오로부터 그것의 원래 포맷으로 디지털 비디오 데이터를 재구성함으로써(위에서 설명된 비디오 압축의 반대 프로세스인) 비디오 압축해제를 수행하고 그리고 재구성된 디지털 비디오 데이터를 전자 디바이스의 디스플레이 상에 렌더링한다.
디지털 비디오 품질이 고화질에서 4Kx2K 또는 8Kx4K까지 향상됨에 따라 인코딩/디코딩될 비디오 데이터의 양이 기하급수적으로 증가한다. 이것은, 디코딩된 비디오 데이터의 이미지 품질을 유지하면서 비디오 데이터를 보다 효율적으로 인코딩/디코딩할 수 있는 방법의 관점에서 끊임없는 도전이다.
조인트 비디오 전문가 팀(JVET: Joint Video Experts Team) 회의에서, JVET는 다목적 비디오 코딩(VVC: Versatile Video Coding) 및 VTM1(VVC Test Model 1) 인코딩 방법의 첫 번째 초안을 정의했다. VVC의 초기 신규 코딩 피처와 같이, 이진 및 삼진 분할 코딩 블록 구조를 사용하여 내포된(nested) 다중 유형 트리가 있는 쿼드트리를 포함하기로 결정되었다. 그 이후로, JVET 회의에서 인코딩 방법과 VVC 디코딩 프로세스 초안을 구현하기 위한 참조 소프트웨어 VTM이 개발되었다.
일반적으로, 본 개시는 비디오 코딩에서 기하학적 형태의 예측 유닛을 사용하는 모션 보상된 예측에 관한 기술들의 예들을 설명한다.
본 발명의 제 1 양상에 따르면, 기하학적 분할을 이용한 비디오 코딩을 위한 방법이 제공된다. 상기 방법은, 비디오 픽처들을 복수의 코딩 단위들(CUs)로 분할하는 단계, 복수의 코딩 단위들 중 적어도 하나는 적어도 하나의 기하학적 형태의 PU를 포함하는 제 1 PU 및 제 2 PU의 2개의 예측 단위(PU)로 추가로 분할되고; 일반 병합 예측을 위한 병합 리스트 구성 프로세스에 기초하여, 복수의 후보를 포함하는 제 1 병합 리스트를 구성하는 단계, 복수의 후보들 각각은 리스트 0 MV 및/또는 리스트 1 MV를 포함하는 모션 벡터(MV)이며; 제 1 인덱스에 따라 제 1 PU에 대한 제 1 후보를 찾는 단계; 제 2 인덱스에 따라 제 2 PU에 대한 제 2 후보를 찾는 단계; 제 1 이진 참조 리스트 표시 플래그에 따라 제 1 후보의 리스트 X1 MV 를 선택함으로써 제 1 PU에 대한 제 1 단일 예측 MV를 획득하는 단계, X1 은 0 또는 1의 값을 취하고 제 1 이진 참조 리스트 표시 플래그에 의해 표시되며; 그리고 제 2 이진 참조 리스트 표시 플래그에 따라 제 2 후보의 리스트 X2 MV 를 선택함으로써 제 2 PU에 대한 제 2 단일 예측 MV를 획득하는 단계 -X2 는 0 또는 1의 값을 취하고 제 2 이진 참조 리스트 표시 플래그에 의해 표시됨- 를 포함한다.
본 발명의 제 2 양상에 따르면, 기하학적 분할을 이용한 비디오 코딩을 위한 장치가 제공되며 상기 장치는 하나 이상의 프로세서들; 및 상기 하나 이상의 프로세서들에 의해 실행가능한 명령들을 저장하도록 구성된 메모리를 포함하며, 상기 하나 이상의 프로세서들은 상기 명령들의 실행시에: 비디오 픽처들을 복수의 코딩 단위들(CUs)로 분할하고, 복수의 코딩 단위들 중 적어도 하나는 적어도 하나의 기하학적 형태의 PU를 포함하는 제 1 PU 및 제 2 PU의 2개의 예측 단위(PU)로 추가로 분할되고; 일반 병합 예측을 위한 병합 리스트 구성 프로세스에 기초하여, 복수의 후보를 포함하는 제 1 병합 리스트를 구성하고, 복수의 후보들 각각은 리스트 0 MV 및/또는 리스트 1 MV를 포함하는 모션 벡터(MV)이며; 제 1 인덱스에 따라 제 1 PU에 대한 제 1 후보를 찾고; 제 2 인덱스에 따라 제 2 PU에 대한 제 2 후보를 찾고; 제 1 이진 참조 리스트 표시 플래그에 따라 제 1 후보의 리스트 X1 MV 를 선택함으로써 제 1 PU에 대한 제 1 단일 예측 MV를 획득하고, X1 은 0 또는 1의 값을 취하고 제 1 이진 참조 리스트 표시 플래그에 의해 표시되며; 그리고 제 2 이진 참조 리스트 표시 플래그에 따라 제 2 후보의 리스트 X2 MV 를 선택함으로써 제 2 PU에 대한 제 2 단일 예측 MV를 획득하도록 구성되며, X2 는 0 또는 1의 값을 취하고 제 2 이진 참조 리스트 표시 플래그에 의해 표시된다.
본 발명의 제 3 양상에 따르면, 컴퓨터 실행가능한 명령들을 저장하는 기하학적 분할을 이용한 비디오 코딩을 위한 비일시적인 컴퓨터 판독가능 저장 매체가 제공되며, 상기 명령들은 하나 이상의 컴퓨터 프로세서들에 의해 실행될 때 상기 하나 이상의 컴퓨터 프로세서들로 하여금: 비디오 픽처들을 복수의 코딩 단위들(CUs)로 분할하는 동작, 복수의 코딩 단위들 중 적어도 하나는 적어도 하나의 기하학적 형태의 PU를 포함하는 제 1 PU 및 제 2 PU의 2개의 예측 단위(PU)로 추가로 분할되고; 일반 병합 예측을 위한 병합 리스트 구성 프로세스에 기초하여, 복수의 후보를 포함하는 제 1 병합 리스트를 구성하는 동작, 복수의 후보들 각각은 리스트 0 MV 및/또는 리스트 1 MV를 포함하는 모션 벡터(MV)이며; 제 1 인덱스에 따라 제 1 PU에 대한 제 1 후보를 찾는 동작; 제 2 인덱스에 따라 제 2 PU에 대한 제 2 후보를 찾는 동작; 제 1 이진 참조 리스트 표시 플래그에 따라 제 1 후보의 리스트 X1 MV 를 선택함으로써 제 1 PU에 대한 제 1 단일 예측 MV를 획득하는 동작, X1 은 0 또는 1의 값을 취하고 제 1 이진 참조 리스트 표시 플래그에 의해 표시되며; 그리고 제 2 이진 참조 리스트 표시 플래그에 따라 제 2 후보의 리스트 X2 MV 를 선택함으로써 제 2 PU에 대한 제 2 단일 예측 MV를 획득하는 동작 -X2 는 0 또는 1의 값을 취하고 제 2 이진 참조 리스트 표시 플래그에 의해 표시됨- 을 포함하는 동작들을 수행하게 한다.
본 개시의 일례에 대한 보다 구체적인 설명은 첨부된 도면에 예시된 특정 일례를 참조하여 제공될 것이다. 이들 도면이 단지 일부 일례를 도시하고 따라서 범위를 제한하는 것으로 간주되지 않는다는 점을 감안할 때, 일례들은 첨부 도면의 사용을 통해 추가의 특정성 및 세부사항으로 설명되고 설명될 것이다.
도 1은 본 개시의 일부 구현들에 따른 예시적인 비디오 인코더를 예시하는 블록도이다.
도 2는 본 개시의 일부 구현들에 따른 예시적인 비디오 디코더를 예시하는 블록도이다.
도 3은 본 개시의 일부 구현들에 따른 쿼드트리 플러스 이진 트리(QTBT) 구조를 예시하는 개략도이다.
도 4는 본 개시의 일부 구현들에 따라 CTU들로 분할된 픽처의 예를 예시하는 개략도이다.
도 5는 본 개시의 일부 구현들에 따른 다중-타입 트리 분할 모드를 예시하는 개략도이다.
도 6은 본 개시의 일부 구현들에 따라 CU를 삼각형 예측 유닛들로 분할하는 것을 예시하는 개략도이다.
도 7은 본 개시의 일부 구현들에 따른 이웃 블록들의 위치들을 예시하는 개략도이다.
도 8은 본 개시의 일부 구현들에 따른 기하학적 파티션들의 예들을 예시하는 개략도이다.
도 9는 본 개시의 일부 구현들에 따른 기하학적 파티션 표현의 예를 나타내는 개략도이다.
도 10은 본 개시의 일부 구현들에 따른 공간적 병합 후보들의 위치들을 예시하는 개략도이다.
도 11은 본 개시의 일부 구현들에 따른 시간적 병합 후보에 대한 모션 벡터 스케일링을 예시하는 개략도이다.
도 12는 본 개시의 일부 구현들에 따른 시간적 병합 후보에 대한 후보 위치들을 예시하는 개략도이다.
도 13a 내지 도 13b는 본 개시의 일부 구현들에 따른 삼각형 예측 모드에 대한 단일 예측 모션 벡터(MV) 선택의 예들을 예시하는 개략도들이다.
도 14a 내지 도 14d는 본 개시의 일부 구현들에 따른 삼각형 예측 모드에 대한 단일 예측 MV 선택의 예들을 예시하는 개략도들이다.
도 15a 내지 도 15b는 본 개시의 일부 구현들에 따른 삼각형 예측 모드에 대한 단일 예측 MV 선택의 예들을 예시하는 개략도들이다.
도 16은 본 개시의 일부 구현들에 따른 삼각형 예측 모드에 대한 유연한 단일 예측 MV 선택의 예를 예시하는 개략도이다.
도 17본 개시의 일부 구현들에 따른 예시적인 비디오 코딩을 위한 장치를 예시하는 블록도이다.
도 18은 본 발명의 일부 구현들에 따른 기하학적 예측 유닛을 사용하는 모션 보상된 예측을 위한 비디오 코딩을 예시하는 흐름도이다.
이제 특정 구현예들에 대해 상세히 참조될 것이며, 그 예는 첨부 도면에 예시되어 있다. 다음의 상세한 설명에서, 여기에 제시된 주제를 이해하는 것을 돕기 위해 다수의 비제한적인 특정 세부 사항이 설명된다. 그러나 다양한 대안들이 사용될 수 있음은 당업자에게 명백할 것이다. 예를 들어, 여기에 제시된 주제는 디지털 비디오 능력을 가진 많은 유형의 전자 장치에서 구현될 수 있다는 것이 당업자에게 명백할 것이다.
본 명세서 전체에서 "일 실시예", "일 실시예", "실시예", "일례", "일부 일례들" 또는 유사한 언어에 대한 참조는 설명된 특정한 피처들, 구조들 또는 특성들이 적어도 하나의 실시예 또는 일례에 포함된다는 것을 의미한다. 하나의 실시예 또는 일부 실시예들과 관련하여 설명된 피처들, 구조들, 요소들 또는 특성은 달리 명시적으로 지정되지 않는 한 다른 실시예에도 적용될 수 있다.
본 명세서 전반에 걸쳐, "제 1", "제 2", "제 3" 등의 용어는 모두, 달리 명시적으로 특정되지 않는 한 임의의 공간적 또는 시간적 순서를 암시함이 없이, 디바이스들, 구성요소들, 조성들, 단계들 등과 같은 관련 요소들을 단지 참조하기 위한 명명법으로 사용된다. 예를 들어, "제 1 디바이스" 및 "제 2 디바이스"는 별도로 형성된 두 개의 디바이스들을 의미하거나 또는 동일한 장치의 두 부분, 구성 요소 또는 작동 상태를 의미할 수 있으며, 임의로 명명될 수 있다.
본 명세서에 사용된 바와 같이, "만약" 또는 "~할 때"라는 용어는 문맥에 따라 "~하면," 또는 "~에 응답하여"를 의미하는 것으로 이해될 수 있다. 이러한 용어는 청구항에 표시되는 경우 관련 제한 또는 기능이 조건부 또는 선택 사항임을 나타내지 않을 수 있다.
" 모듈 ", "서브 모듈", "회로", "서브 회로", "회로", "서브 회로", "유닛" 또는 "서브 유닛"이라는 용어는 하나 이상의 프로세서에 의해 실행될 수 있는 코드 또는 명령을 저장하는 메모리(공유 , 전용 또는 그룹)를 포함할 수 있다. 모듈은 저장된 코드 또는 명령들이 있거나 없는 하나 이상의 회로를 포함할 수 있다. 모듈 또는 회로는 직접 또는 간접적으로 연결된 하나 이상의 구성 요소를 포함할 수 있다. 이러한 구성 요소는 물리적으로 부착되거나 인접하지 않을 수 있다.
유닛 또는 모듈은 순수하게 소프트웨어에 의해, 순수하게 하드웨어에 의해, 또는 하드웨어와 소프트웨어의 조합에 의해 구현될 수 있다. 예를 들어, 순수한 소프트웨어 구현에서, 유닛 또는 모듈은 특정 기능을 수행하기 위해 직간접적으로 함께 연결된 기능적으로 관련된 코드 블록 또는 소프트웨어 구성요소를 포함할 수 있다.
도 1은 블록 기반 프로세싱을 사용하는 많은 비디오 코딩 표준과 함께 사용될 수 있는 예시적인 블록 기반 하이브리드 비디오 인코더(100)를 도시하는 블록도이다. 인코더(100)에서, 비디오 프레임은 프로세싱을 위해 복수의 비디오 블록으로 분할된다. 각각의 주어진 비디오 블록에 대해 인터 예측 접근법 또는 인트라 예측 접근법에 기초하여 예측이 형성된다. 인터 예측에서는 이전에 재구성된 프레임들로부터의 픽셀들에 기초하여 모션 추정 및 모션 보상을 통해 하나 이상의 예측자들이 형성된다. 인트라 예측에서는 현재 프레임의 재구성된 픽셀에 기초하여 예측자들이 형성된다. 모드 결정을 통해, 현재 블록을 예측하기 위한 최상의 예측자가 선택될 수 있다.
현재 비디오 블록과 그 예측자 사이의 차이를 나타내는 예측 잔차가 변환 회로(102)로 전송된다. 변환 계수는 엔트로피 감소를 위해 변환 회로(102)에서 양자화 회로(104)로 전송된다. 양자화된 계수는 엔트로피 코딩 회로(106)에 공급되어 압축된 비디오 비트스트림을 생성한다. 도 1에 도시된 바와 같이, 비디오 블록 분할 정보, 모션 벡터, 참조 픽처 인덱스 및 인트라 예측 모드와 같은 인터 예측 회로 및/또는 인트라 예측 회로(112)로부터의 예측 관련 정보(110)도 엔트로피 코딩 회로(106)를 통해 공급되고 압축된 비디오 비트스트림(114)에 저장된다.
인코더(100)에서, 예측을 위해 픽셀을 재구성하기 위해 디코더 관련 회로도 또한 필요하다. 먼저, 예측 잔차가 역양자화(116) 및 역변환 회로(118)를 통해 재구성된다. 이러한 재구성된 예측 잔차는 현재 비디오 블록에 대한 필터링되지 않은 재구성된 픽셀을 생성하기 위해 블록 예측기(120)와 결합된다.
공간적 예측(또는 "인트라 예측")은 현재 비디오 블록과 동일한 비디오 프레임 내의 이미 코딩된 이웃 블록(참조 샘플이라고 함)의 샘플로부터의 픽셀을 사용하여 현재 비디오 블록을 예측한다.
시간적 예측("인터 예측"이라고도 함)은 이미 코딩된 비디오 픽처로부터 재구성된 픽셀을 사용하여, 현재 비디오 블록을 예측한다. 시간적 예측은 비디오 신호에 내재된 시간적 중복성을 감소시킨다. 주어진 코딩 단위(CU) 또는 코딩 블록에 대한 시간적 예측 신호는, 일반적으로 현재 CU와 그것의 시간적 참조 사이의 모션의 양 및 방향을 나타내는 하나 이상의 모션 벡터(MV)에 의해 시그널링된다. 또한, 여러 참조 픽처가 지원되는 경우, 하나의 참조 픽처 인덱스가 추가로 전송되며, 이는 참조 픽처 스토어의 어떤 참조 픽처로부터 시간적 예측 신호가 오는지를 식별하는데 사용된다.
공간적 및/또는 시간적 예측이 수행된 후, 인코더(100)의 인트라/인터 모드 결정 회로(121)는 예를 들어 레이트-왜곡 최적화 방법에 기초하여 최상의 예측 모드를 선택한다. 그 다음, 블록 예측기(120)는 현재 비디오 블록에서 감산되고; 결과적인 예측 잔차는 변환 회로(102) 및 양자화 회로(104)를 사용하여 역상관된다. 결과적인 양자화된 잔차 계수는 역양자화 회로(116)에 의해 역양자화되고 역변환 회로(118)에 의해 역변환되어 재구성된 잔차를 형성하고, 이것은 예측 블록에 다시 추가되어 CU의 재구성된 신호를 형성한다. 또한, 디블록킹 필터, 샘플 적응형 오프셋(SAO) 및 적응형 인-루프 필터(ALF)와 같은 추가적인 인-루프 필터링(115)이 재구성된 CU에 적용될 수 있다(상기 재구성된 CU가 픽처 버퍼(117)의 참조 픽처 스토어에 투입되어 미래의 비디오 블록을 코딩하는데 사용되기 전에). 출력 비디오 비트스트림(114)을 형성하기 위해, 코딩 모드(인터 또는 인트라), 예측 모드 정보, 모션 정보 및 양자화된 잔차 계수들 모두가 엔트로피 코딩 유닛(106)으로 전송되어, 비트스트림을 형성하기 위해 추가로 압축되고 패킹된다.
예를 들어, 디블로킹 필터는 AVC, HEVC 뿐만 아니라 현재의 VVC 버전에서도 이용가능하다. HEVC에서는 코딩 효율성을 더욱 향상시키기 위해 SAO(샘플 적응형 오프셋)이라는 추가 인루프 필터가 정의된다. 현재 버전의 VVC 표준에서는, ALF(적응형 루프 필터)라 지칭되는 또 다른 인루프 필터가 활발히 연구되고 있으며, 이는 최종 표준에 포함될 가능성이 크다.
이러한 인루프 필터 동작은 선택 사항이다. 이러한 작업을 수행하면 코딩 효율성과 시각적 품질을 개선하는데 도움이 된다. 그것들은 또한 계산 복잡성을 줄이기 위해 인코더(100)에 의해 렌더링된 결정으로서 턴오프될 수 있다.
인트라 예측은 일반적으로 필터링되지 않은 재구성된 픽셀을 기반으로 하는 반면, 인터 예측은 이러한 필터 옵션이 인코더(100)에 의해 턴온된 경우 필터링된 재구성된 픽셀을 기반으로 한다는 점에 유의해야 한다.
도 2는 많은 비디오 코딩 표준과 함께 사용될 수 있는 예시적인 블록 기반 비디오 디코더(200)를 도시하는 블록도이다. 이러한 디코더(200)는 도 1의 인코더(100)에 상주하는 재구성 관련 섹션과 유사하다. 디코더(200)에서, 들어오는 비디오 비트스트림(201)은 양자화된 계수 레벨 및 예측 관련 정보를 도출하도록 엔트로피 디코딩(202)을 통해 먼저 디코딩된다. 다음으로, 양자화된 계수 레벨은 역 양자화(204) 및 역 변환(206)을 통해 프로세싱되어 재구성된 예측 잔차가 획득된다. 인트라/인터 모드 선택기(212)에서 구현되는 블록 예측기 메커니즘은 디코딩된 예측 정보에 기초하여 인트라 예측(208) 또는 모션 보상(210)을 수행하도록 구성된다. 역변환(206)으로부터의 재구성된 예측 잔차와 블록 예측기 메커니즘에 의해 생성된 예측 출력을 가산기(214)를 이용하여 합산함으로써 필터링되지 않은 재구성된 픽셀 세트가 획득된다.
재구성된 블록은 참조 픽처 저장소로 기능하는 픽처 버퍼(213)에 저장되기 전에 인루프 필터(209)를 더 거칠 수 있다. 픽처 버퍼(213)의 재구성된 비디오는 디스플레이 디바이스를 구동하기 위해 전송될 수 있을 뿐만 아니라 미래의 비디오 블록을 예측하기 위해 사용될 수 있다. 인루프 필터(209)가 턴온된 상황에서, 최종 재구성된 비디오 출력(222)을 유도하기 위해 이러한 재구성된 픽셀에 필터링 작업이 수행된다.
VVC, JEM, HEVC, MPEG-4, Part 10 과 같은 위에서 언급된 비디오 코딩/디코딩 표준은 개념적으로 유사하다. 예를 들어, 이들 모두는 블록 기반 프로세싱을 사용한다. 일부 표준들의 블록 분할 방식은 아래에 자세히 설명되어 있다.
고효율 비디오 코딩(HEVC)
HEVC 는 하이브리드 블록 기반의 모션 보상 변환 코딩 아키텍처를 기반으로 한다. 압축의 기본 단위는 CTU(코딩 트리 단위)라 지칭된다. 최대 CTU 크기는 4:2:0 크로마 형식의 경우 최대 64 x 64 루마 픽셀과 32 x 32 크로마 픽셀의 2개의 블록으로 정의된다. 각 CTU는 하나의 코딩 단위(CU)를 포함하거나 미리 정의된 최소 CU 크기에 도달할 때까지 4개의 더 작은 CU로 재귀적으로 분할될 수 있다. 각 CU(리프 CU라고도 함)는 하나 이상의 예측 단위(PU)와 변환 단위(TU) 트리를 포함한다.
일반적으로, 모노크롬 콘텐츠를 제외하고, CTU는 하나의 루마 코딩 트리 블록(CTB) 및 2개의 대응하는 크로마 CTB를 포함할 수 있고; CU는 하나의 루마코딩 블록(CB) 및 2개의 대응하는 크로마 CB를 포함할 수 있고; PU는 하나의 루마 예측 블록(PB) 및 2개의 대응하는 크로마 PB를 포함할 수 있고; TU는 하나의 루마 변환 블록(TB) 및 2개의 대응하는 크로마 TB를 포함할 수 있다. 하지만, 예외가 있을 수 있는데, 최소 TB 크기가 루마와 크로마 모두에 대해 4x4이고(즉, 4:2:0 색상 포맷에 대해 2x2 크로마 TB가 지원되지 않음) 그리고 대응하는 인트라 루마 CB의 인트라 루마 PB의 개수에 상관없이 각각의 인트라 크로마 CB는 항상 오직 하나의 인트라 크로마 PB를 갖기 때문이다.
인트라 CU의 경우, 루마 CB는 하나 또는 4개의 루마 PB에 의해 예측될 수 있고, 2개의 크로마 CB 각각은 항상 하나의 크로마 PB에 의해 예측되며, 여기서 각각의 루마 PB는 하나의 인트라 루마 예측 모드를 가지며 2개의 크로마 PB는 하나의 인트라 크로마 예측 모드를 공유한다. 또한, 인트라 CU의 경우, TB 크기가 PB 크기보다 클 수 없다. 각 PB에서, TB의 이웃하는 재구성된 샘플들로부터 PB 내부의 각 TB의 샘플들을 예측하기 위해 인트라 예측이 적용된다. 각 PB에 대해, 33개의 방향성 인트라 예측 모드들 외에도, DC 및 평면 모드들도 또한 지원되어 평평한 영역과 점진적으로 변화하는 영역을 각각 예측한다.
각각의 인터 PU의 경우, 인터, 스킵, 병합을 포함하는 3개의 예측 모드들 중 하나가 선택될 수 있다. 일반적으로 말해서, 모션 벡터 경쟁(MVC) 방식이 도입되어, 공간적 및 시간적 모션 후보를 포함하는 소정의 후보 세트로부터 모션 후보를 선택한다. 모션 추정에 대한 다중 참조들은, 2개의 가능한 재구성된 참조 픽처 리스트(즉, 리스트 0(List 0) 및 리스트 1(List 1))에서 최상의 참조를 찾는 것을 허용한다. 인터 모드(AMVP 모드라고 함, 여기서 AMVP는 고급 모션 벡터 예측을 나타냄)의 경우, 인터 예측 표시자(리스트 0, 리스트 1 또는 양방향 예측), 참조 인덱스, 모션 후보 인덱스, MVD(모션 벡터 차이) 및 예측 잔차가 전송된다. 스킵 모드와 병합 모드의 경우, 병합 인덱스만 전송되며, 현재 PU는 코딩된 병합 인덱스에 의해 참조되는 이웃 PU로부터 인터 예측 표시자, 참조 인덱스 및 모션 벡터를 상속한다. 스킵 코딩된 CU의 경우, 잔차 신호가 또한 생략된다.
공동 탐사 테스트 모델(JEM)
JEM(Joint Exploration Test Model)은 HEVC 테스트 모델 위에 구축된다. HEVC의 기본 인코딩 및 디코딩 흐름도는 JEM에서 변경되지 않고 유지된다. 그러나 블록 구조, 인트라 및 인터 예측, 잔차 변환, 루프 필터 및 엔트로피 코딩의 모듈들을 포함하여 가장 중요한 모듈들의 설계 요소들이 다소 수정되고 추가 코딩 툴들이 추가된다. JEM에는 다음과 같은 새로운 코딩 피처가 포함된다.
HEVC에서, CTU는 다양한 로컬 특성에 적응하기 위해 코딩 트리로 표시되는 쿼드 트리 구조를 사용하여 CU로 분할된다. 인터 픽처(시간) 또는 인트라 픽처(공간) 예측을 사용하여 픽처 영역을 코딩할지 여부는 CU 레벨에서 결정된다. 각각의 CU는 PU 분할 유형에 따라 1개, 2개 또는 4개의 PU로 더 분할될 수 있다. 하나의 PU 내에서도, 동일한 예측 과정이 적용되고 해당 정보는 PU 단위로 디코더로 전송된다. PU 분할 유형에 기초한 예측 프로세스를 적용하여 잔차 블록을 획득한 후, CU는 CU에 대한 코딩 트리와 유사한 또 다른 쿼드트리 구조에 따라 변환 단위(TU)로 분할될 수 있다. HEVC 구조의 주요 특징 중 하나는 CU, PU 및 TU를 포함한 다수의 분할 개념을 갖는다는 것이다.
도 3은 본 개시의 일부 구현들에 따른 쿼드트리 플러스 이진 트리(QTBT) 구조를 예시하는 개략도이다.
QTBT 구조는 다중 분할 유형의 개념을 제거한다. 즉, QTBT 구조는 CU, PU 및 TU 개념의 분리를 제거하고 CU 분할 형상에 대해 더 많은 유연성을 지원한다. QTBT 블록 구조에서 CU는 정사각형 또는 직사각형 중 하나를 가질 수 있다. 도 3에 도시된 바와 같이, 코딩 트리 유닛(CTU)은 먼저 4차(quaternary) 트리(즉, 쿼드트리) 구조에 의해 분할된다. 쿼드트리 리프 노드는 이진 트리 구조에 의해 더 분할될 수 있다. 이진 트리 분할에는 대칭 수평 분할과 대칭 수직 분할의 2가지 분할 유형이 있다. 이진 트리 리프 노드를 CU(코딩 단위)라고 하며, 해당 분할은 추가 분할 없이 예측 및 변환 프로세싱에 사용된다. 이는 QTBT 코딩 블록 구조에서 CU, PU 및 TU가 동일한 블록 크기를 갖는다는 것을 의미한다. JEM에서, CU는 때때로 서로 다른 색상 요소들의 코딩 블록(CB)으로 구성된다. 예를 들어, 4:2:0 크로마 포맷의 P 및 B 슬라이스의 경우, 하나의 CU는 하나의 루마 CB와 2개의 크로마 CB를 포함한다. 때로는 단일 구성 요소의 CB로 구성되는바, 예를 들어, I 슬라이스들의 경우, 하나의 CU는 하나의 루마 CB만을 포함하거나 또는 단지 2개의 크로마 CB만을 포함한다.
QTBT 분할 방식에 대해 다음과 같은 파라미터가 정의된다.
- CTU 크기: 쿼드트리의 루트 노드 크기, HEVC와 동일한 개념;
- MinQTSize: 최소 허용 쿼드트리 리프 노드 크기;
- MaxBTSize: 최대 허용 바이너리 트리 루트 노드 크기;
- MaxBTDepth: 최대 허용 바이너리 트리 깊이;
- MinBTSize: 최소 허용 바이너리 트리 리프 노드 크기.
QTBT 분할 구조의 일례에서, CTU 크기는 2개의 대응하는 64x64 크로마 샘플 블록(4:2:0 크로마 포맷)이 있는 128x128 루마 샘플들로 설정되고, MinQTSize는 16x16로 설정되고, MaxBTSize는 64×64로, MinBTSize(너비와 높이 모두)는 4×4로, MaxBTDepth는 4로 설정된다. 쿼드트리 분할은 쿼드트리 리프 노드를 생성하기 위해 먼저 CTU에 적용된다. 쿼드트리 리프 노드는 16×16(즉, MinQTSize) 내지 128×128(즉, CTU 크기)의 크기를 가질 수 있다. 쿼드트리 리프 노드가 128x128 인 경우, 크기가 MaxBTSize(즉, 64x64)를 초과하므로 이진 트리에 의해 추가로 분할되지 않을 것이다. 그렇지 않으면, 쿼드트리 리프 노드는 이진 트리로 더 분할될 수 있다. 따라서, 쿼드트리 리프 노드는 이진 트리의 루트 노드(root node)이기도 하며, 이진 트리 깊이는 0이다. 이진 트리 깊이가 MaxBTDepth(즉, 4)에 도달하면, 더 이상의 분할이 고려되지 않는다. 이진 트리 노드의 너비가 MinBTSize(즉, 4)와 같으면, 더 이상의 수평 분할이 고려되지 않는다. 마찬가지로, 이진 트리 노드의 높이가 MinBTSize와 같으면, 더 이상의 수직 분할이 고려되지 않는다. 이진 트리의 리프 노드는 추가 분할 없이 예측 및 변환 프로세싱에 의해 추가로 프로세싱된다. JEM에서, 최대 CTU 크기는 256×256 루마 샘플이다.
QTBT 방식을 이용한 블록 분할의 일례와 해당 트리 표현이 도 3에 예시되어 있다. 실선은 쿼드트리 분할을 나타내고 점선은 이진 트리 분할을 나타낸다. 도 3에 도시된 바와 같이, 코딩 트리 유닛(CTU)(300)은 먼저 쿼드트리 구조에 의해 분할되고, 4개의 쿼드트리 리프 노드(302, 304, 306, 308) 중 3개는 쿼드트리 구조 또는 이진 트리 구조에 의해 추가로 분할된다. 예를 들어, 쿼드트리 리프 노드(306)는 쿼드트리 분할에 의해 추가로 분할되며; 쿼드트리 리프 노드(304)는 이진 트리 분할에 의해 2개의 리프 노드(304a, 304b)로 더 분할되며; 쿼드트리 리프 노드(302)는 또한 이진 트리 분할에 의해 더 분할된다. 이진 트리의 각각의 분할(즉, 리프가 아닌) 노드에서, 어떤 분할 유형(즉, 수평 또는 수직)이 사용되는지를 나타내기 위해 하나의 플래그가 시그널링되는바, 0은 수평 분할을 나타내고 1은 수직 분할을 나타낸다. 예를 들어, 쿼드트리 리프 노드(304)의 경우, 0은 수평 분할을 나타내기 위해 시그널링되고, 쿼드트리 리프 노드(302)의 경우, 1은 수직 분할을 나타내기 위해 시그널링된다. 쿼드트리 분할의 경우 분할 유형을 표시할 필요가 없는데, 왜냐하면 쿼드트리 분할은 항상 블록을 수평 및 수직으로 분할하여 동일한 크기의 4개의 하위 블록을 생성하기 때문이다.
또한 , QTBT 방식은 루마와 크로마가 별도의 QTBT 구조를 가질 수 있는 능력을 지원한다. 현재 P 및 B 슬라이스들의 경우, 하나의 CTU에 있는 루마 및 크로마 CTB들은 동일한 QTBT 구조를 공유한다. 그러나 I 슬라이스의 경우, 루마 CTB는 QTBT 구조에 의해 CU로 분할되고, 크로마 CTB는 다른 QTBT 구조에 의해 크로마 CU로 분할된다. 이것은 다음을 의미하는바, I 슬라이스의 CU는 루마 성분의 코딩 블록 또는 2개의 크로마 성분의 코딩 블록으로 구성되고, P 또는 B 슬라이스의 CU는 3개의 컬러 성분들 모두의 코딩 블록으로 구성됨을 의미한다.
다목적 비디오 코딩(VVC: Versatile Video Coding)
JVET(Joint Video Experts Team) 회의에서, JVET는 VVC 및 VTM1(VVC Test Model 1) 인코딩 방법의 제 1 초안을 정의했다. VVC의 초기 신규 코딩 피처와 같이, 이진(binary) 및 삼진(ternary) 분할 코딩 블록 구조를 이용한 내포된 다중 유형 트리를 구비한 쿼드트리를 포함하기로 결정했다.
VVC에서, 픽처 분할 구조는 입력 비디오를 코딩 트리 단위(CTU)라 지칭되는 블록들로 나눈다. CTU는 내포된(nested) 다중 유형 트리 구조를 구비한 쿼드트리를 사용하여 코딩 단위(CU)로 분할되며, 동일한 예측 모드(예: 인트라 또는 인터)를 공유하는 영역을 정의하는 리프 코딩 단위(CU)가 존재한다. 여기서 "단위(unit)"라는 용어는 모든 구성요소들을 커버하는 이미지의 영역을 정의한다. "블록"이라는 용어는 특정 구성요소(예컨대, 루마)를 커버하는 영역을 정의하는데 사용되며, 4:2:0과 같은 크로마 샘플링 포맷을 고려할 때 공간적 위치가 다를 수 있다.
픽처를 CTU로 분할
도 4는 본 개시의 일부 구현들에 따라 CTU들로 분할된 픽처의 일례를 예시하는 개략도이다.
VVC에서, 픽처들은 CTU들의 시퀀스로 분할되며, CTU 개념은 HEVC와 동일하다. 3개의 샘플 어레이를 갖는 픽처의 경우, CTU는 크로마 샘플들의 대응하는 2개의 블록들과 함께 루마 샘플들의 N×N 블록으로 구성된다. 도 4는 CTU(402)로 분할된 픽처(400)의 일례를 도시한다.
CTU에서 루마 블록의 최대 허용 크기는 128x128로 지정된다(루마 변환 블록의 최대 크기는 64x64이지만).
트리 구조를 사용한 CTU 분할
도 5는 본 개시의 일부 구현들에 따른 다중-유형 트리 분할 모드를 예시하는 개략도이다.
HEVC에서, CTU는 다양한 로컬 특성에 적응하기 위해 코딩 트리로 표시되는 4차-트리(quaternary-tree) 트리 구조를 사용하여 CU로 분할된다. 인터-픽처(시간적) 또는 인트라-픽처(공간적) 예측을 사용하여 픽처 영역을 코딩할지의 여부는 리프 CU 레벨에서 결정된다. 각각의 리프 CU는 PU 분할 유형에 따라 1개, 2개 또는 4개의 PU로 더 분할될 수 있다. 하나의 PU 내에서도 동일한 예측 과정이 적용되며, 해당 정보는 PU 단위로 디코더로 전달된다. PU 분할 유형에 기반한 예측 프로세스를 적용하여 잔차 블록을 획득한 이후, CU에 대한 코딩 트리와 유사한 다른 4차 트리 구조에 따라 리프 CU는 변환 단위(TU)로 분할될 수 있다. HEVC 구조의 주요 특징 중 하나는 CU, PU, 및 TU를 포함하는 다중 분할 개념들을 HEVC 구조가 갖는다는 점이다.
VVC에서 이진 및 삼진 분할 세그멘테이션 구조를 사용하는 내포된 다중 유형 트리가 있는 쿼드트리는 다중 분할 단위 유형의 개념을 대체한다. 즉, 최대 변환 길이에 대해 너무 큰 사이즈를 갖는 CU에 필요한 경우를 제외하고, CU, PU 및 TU 개념들의 분리를 제거하며 그리고 CU 분할 형상에 대해 더 많은 유연성을 지원한다. 코딩 트리 구조에서 CU는 정사각형 또는 직사각형 중 하나를 가질 수 있다. 코딩 트리 유닛(CTU)은 먼저 4차 트리(즉, 쿼드트리) 구조로 분할된다. 그런 다음 4차 트리 리프 노드들은 다중 유형 트리 구조에 의해 더 분할될 수 있다. 도 5에 도시된 바와 같이, 다중 유형 트리 구조에는 4가지 분할 유형이 있다. 수직 이진 분할(502)(SPLIT_BT_VER), 수평 이진 분할(504)(SPLIT_BT_HOR), 수직 삼진 분할(506)(SPLIT_TT_VER), 및 수평 삼진 분할(508)(SPLIT_TT_HOR)이 그것이다. 다중 유형 트리 리프 노드들은 CU(코딩 단위)들이라 지칭되며, 그리고 CU가 최대 변환 길이에 비해 너무 크지 않은 한, 이러한 세그멘테이션은 추가 분할 없이 예측 및 변환 프로세싱에 사용된다. 이것은 다음을 의미하는바, 대부분의 경우 CU, PU 및 TU는, 내포된 다중 유형 트리 코딩 블록 구조를 갖는 쿼드트리에서 동일한 블록 크기를 갖는다는 것을 의미한다. 지원되는 최대 변환 길이가 CU의 컬러 성분의 너비 또는 높이보다 작은 경우에 예외가 발생한다. VTM1에서, CU는 상이한 컬러 성분들의 코딩 블록들(CBs)로 구성되는바, 예를 들어, 하나의 CU는 하나의 루마 CB와 두 개의 크로마 CB를 포함한다(비디오가 모노크롬이 아닌 경우, 즉 하나의 컬러 성분만을 갖는 경우 제외).
CU를 여러 예측 단위들로 분할
VVC 에서, 앞서 예시된 구조에 기초하여 분할된 각각의 CU에 대해, 블록 콘텐츠의 예측은 전체 CU 블록에 대해 또는 다음 단락에서 설명되는 서브-블록 방식으로 수행될 수 있다. 이러한 예측의 연산 단위를 예측 단위(또는 PU)라고 한다.
인트라 예측(또는 인트라 프레임 예측)의 경우, 일반적으로 PU의 크기는 CU의 크기와 동일하다. 즉, 전체 CU 블록에 대해 예측이 수행된다. 인터 예측(또는 인터 프레임 예측)의 경우, PU의 크기는 CU의 크기와 같거나 작을 수 있다. 즉, 예측을 위해 CU가 여러 PU로 분할될 수 있는 경우가 있을 수 있다.
CU 보다 작은 PU 크기를 갖는 일부 실시예는 아핀(affine) 예측 모드, 고급 시간 레벨 모션 벡터 예측(ATMVP: Advanced Temporal Level Motion Vector Prediction) 모드 및 삼각형 예측 모드 등을 포함한다.
아핀 예측 모드 하에서, CU는 예측을 위해 다수의 4x4 PU로 분할될 수 있다. 모션 벡터는 각각의 4x4 PU에 대해 유도될 수 있고 모션 보상은 그에 따라 4x4 PU에 대해 수행될 수 있다. ATMVP 모드에서 CU는 예측을 위해 하나 또는 여러 개의 8x8 PU로 분할될 수 있다. 모션 벡터는 각각의 8x8 PU에 대해 유도될 수 있고 모션 보상은 그에 따라 8x8 PU에 대해 수행될 수 있다. 삼각형 예측 모드에서 CU는 2개의 삼각형 형상 예측 단위로 분할될 수 있다. 각각의 PU에 대해 모션 벡터가 도출되고 그에 따라 모션 보상이 수행된다. 삼각형 예측 모드는 인터 예측에 지원된다. 삼각형 예측 모드에 대한 자세한 내용은 아래에 설명되어 있다.
삼각형 예측 모드
도 6은 본 개시의 일부 구현들에 따라 CU를 삼각형 예측 유닛들로 분할하는 것을 예시하는 개략도이다.
삼각형 예측 모드의 개념은 모션 보상 예측을 위해 삼각형 분할을 도입하는 것이다. 삼각형 예측 모드는 삼각형 예측 단위 모드로 명명될 수도 있다. 도 6에 도시된 바와 같이, CU(602 또는 604)는 대각선 방향 또는 역대각선 방향으로 2개의 삼각형 예측 유닛 PU1 및 PU2 로 분할된다(즉, CU 602에 표시된 것처럼 왼쪽 상단 모서리에서 오른쪽 하단 모서리로 분할하거나, CU 604에 표시된 것처럼 오른쪽 상단 모서리에서 왼쪽 하단 모서리로 분할됨). CU의 각각의 삼각형 예측 단위는 단일 예측 후보 리스트에서 유도된 그 자신의 단일 예측 모션 벡터 및 참조 프레임 인덱스를 사용하여 인터 예측된다. 삼각형 예측 단위들을 예측한 이후에, 적응형 가중 프로세스가 대각선 에지에 수행된다. 그런 다음 변환 및 양자화 프로세스가 전체 CU에 적용된다. 다음을 유의해야 하는바, 이러한 모드는 현재 VVC에서 스킵 및 병합 모드에만 적용된다. 비록 도 6에서, CU는 정사각형 블록으로 도시되지만, 삼각형 예측 모드는 정사각형이 아닌(즉, 직사각형) 형상의 CU에도 적용될 수 있다.
단일 예측 후보 리스트(uni-prediction candidate list)는 하나 이상의 후보를 포함할 수 있고, 각각의 후보는 모션 벡터일 수 있다. 따라서, 본 명세서 전체에 걸쳐 "단일 예측 후보 리스트", "단일 예측 모션 벡터 후보 리스트" 및 "단일 예측 병합 리스트"라는 용어는 상호교환적으로 사용될 수 있고; "단일 예측 병합 후보" 및 "단일 예측 모션 벡터"라는 용어는 또한 상호교환적으로 사용될 수 있다.
단일 예측 모션 벡터 후보 리스트
도 7은 본 개시의 일부 구현들에 따른 이웃 블록들의 위치들을 예시하는 개략도이다.
일부 예들에서, 단일 예측 모션 벡터 후보 리스트는 2개 내지 5개의 단일 예측 모션 벡터 후보들을 포함할 수도 있다. 일부 다른 예들에서, 다른 개수도 또한 가능할 수 있다. 이것은 이웃 블록들로부터 유도된다. 단일 예측 모션 벡터 후보 리스트는 도 7에 도시된 바와 같이, 5개의 공간적 이웃 블록들(1 내지 5) 및 2개의 시간적 공존(co-located) 블록들(6 내지 7)을 포함하는 7개의 이웃 블록들로부터 유도된다. 7개의 이웃 블록의 모션 벡터는 제 1 병합 리스트 내로 수집된다. 이후, 특정 순서에 따라 제 1 병합 리스트 모션 벡터를 기반으로 단일 예측 후보 리스트가 형성된다. 순서에 기초하여, 제 1 병합 리스트의 단일 예측 모션 벡터가 먼저 단일 예측 모션 벡터 후보 리스트에 배치되고, 그 다음이 양방향 예측 모션 벡터의 참조 픽처 리스트 0 또는 L0 모션 벡터가 후속하고, 양방향 예측 모션 벡터의 참조 픽처 리스트 1 또는 L1 모션 벡터가 후속하고, 그리고 양방향 예측 모션 벡터의 L0 및 L1 모션 벡터의 평균화된 모션 벡터가 후속된다. 이 시점에서, 후보들의 개수가 여전히 타겟 숫자(5개일 수 있음)보다 적다면, 타겟 숫자를 충족시키기 위해 제로 모션 벡터가 리스트에 추가된다.
예측자는 모션 벡터에 기초하여 삼각형 PU 각각에 대해 유도된다. 유도된 예측자가 실제 삼각형 PU보다 더 큰 영역을 커버하므로 2개의 삼각형 PU의 공유 대각선 에지를 따라 2개의 예측자의 중첩 영역이 있다는 점은 주목할 가치가 있다. CU에 대한 최종 예측을 유도하기 위해 2개의 예측자 사이의 대각선 에지 영역에 가중 프로세스가 적용된다. 휘도(luminance) 및 색차(chrominance) 샘플들에 대해 현재 사용되는 가중 팩터들은 각각 {7/8, 6/8, 5/8, 4/8, 3/8, 2/8, 1/8} 및 {6/8, 4/8, 2/8} 이다.
삼각형 예측 모드 신택스 및 시그널링
삼각형 예측 모드는 삼각형 예측 플래그를 사용하여 시그널링된다. 삼각형 예측 플래그는 CU가 스킵 모드 또는 병합 모드에서 코딩될 때 시그널링된다. 소정의 CU에 대해, 삼각형 예측 플래그의 값이 1 이라면, 이것은 해당 CU가 삼각형 예측 모드를 사용하여 코딩됨을 의미한다. 그렇지 않으면, CU는 삼각형 예측 모드 이외의 예측 모드를 사용하여 코딩된다.
예를 들어, 삼각형 예측 플래그는 스킵(skip) 모드 또는 병합 모드에서 조건부로 시그널링된다. 첫째, 삼각형 예측 도구 활성화/비활성화 플래그가 시퀀스 파라미터 세트(또는 SPS)에서 시그널링된다. 이러한 삼각형 예측 도구 활성화/비활성화 플래그가 참(true)인 경우에만, 삼각형 예측 플래그가 CU 레벨에서 시그널링된다. 둘째, 삼각형 예측 도구는 B-슬라이스에서만 허용된다. 따라서 B-슬라이스에서만, 삼각형 예측 플래그가 CU 레벨에서 시그널링된다. 셋째, 삼각형 예측 모드는 특정 임계값 이상의 크기를 갖는 CU에 대해서만 시그널링된다. CU가 해당 임계값 보다 작은 크기를 갖는 경우, 삼각형 예측 플래그는 시그널링되지 않는다. 넷째, 삼각형 예측 모드는 CU가 아핀 모드와 ATMVP 모드를 모두 포함하는 서브-블록 병합 모드로 코딩되지 않은 경우에만 그 CU에 대해 시그널링될 수 있다. 전술한 4개의 경우들에서, 삼각형 예측 플래그가 시그널링되지 않는 경우, 디코더 측에서 0으로 추론된다.
삼각형 예측 플래그가 시그널링될 때, 삼각형 예측 플래그는 특정 컨텍스트를 갖는 컨텍스트-적응형 이진 산술 코딩(CABAC) 엔트로피 코더를 사용하여 시그널링된다. 컨텍스트는 현재 CU에 대한 상단 및 왼쪽 블록의 삼각형 예측 플래그 값을 기반으로 형성된다.
현재 블록(또는 현재 CU)에 대한 삼각형 예측 플래그를 코딩하기 위해(즉, 인코더 또는 디코딩), 상단 및 왼쪽 블록(또는 CU) 모두로부터의 삼각형 예측 플래그들이 유도되고 그 값들이 합산된다. 그 결과 다음의 경우들에 해당하는 3개의 가능한 컨텍스트들이 생성된다.
1) 왼쪽 블록과 상단 블록 모두 0이라는 삼각형 예측 플래그를 갖는다.
2) 왼쪽 블록과 상단 블록 모두 1이라는 삼각형 예측 플래그를 갖는다.
3) 그렇지 않은 경우.
3개의 컨텍스트들 각각에 대해 별도의 확률들이 유지된다. 현재 블록에 대한 컨텍스트 값이 결정되면, 현재 블록의 삼각형 예측 플래그는 해당 컨텍스트 값에 대응하는 CABAC 확률 모델을 사용하여 코딩된다.
삼각형 예측 플래그가 참(true)인 경우, 분할(partition)이 왼쪽 상단 모서리에서 오른쪽 하단 모서리로의 방향인지 또는 오른쪽 상단 모서리에서 왼쪽 하단 모서리로의 방향인지를 나타내기 위해 삼각형 분할 방향 플래그가 시그널링된다.
CU에 대해 삼각형 예측 모드가 사용되는 경우, 삼각형 예측을 위한 제 1 및 제 2 단일 예측 병합 후보의 인덱스 값을 각각 나타내기 위해 2개의 인덱스 값들이 시그널링된다. 이들 2개의 인덱스 값은 각각 제 1 및 제 2 분할에 대해 전술한 단일 예측 모션 벡터 후보 리스트로부터 2개의 병합 후보를 찾는데 사용된다. 삼각형 예측의 경우, 2개의 인덱스 값들이 서로 달라야 하는바, 따라서 2개의 삼각형 분할들의 2개의 예측자들이 서로 다를 수 있다. 결과적으로, 제 1 인덱스 값이 직접 시그널링된다. 제 2 인덱스 값을 시그널링하기 위하여, 제 2 인덱스 값이 제 1인덱스 값보다 작으면, 그 값이 직접 시그널링된다. 그렇지 않으면, 디코더로 시그널링되기 전에, 그 값으로부터 1 만큼 감산한다. 디코더 측에서, 제 1 인덱스는 디코딩되어 직접 사용된다. 제 2 인덱스 값을 디코딩하기 위해, "idx"로 명명된 값이 CABAC 엔진에서 먼저 디코딩된다. idx가 제 1 인덱스 값보다 작은 경우, 제 2 인덱스 값은 idx의 값과 같을 것이다. 그렇지 않으면, 제 2 인덱스 값은 (idx+1)과 동일하다.
기하학적 병합 모드(Geometric merge mode)
기하학적 병합 모드(즉, GEO)에서, CU는 기하학적 분할에 따라 2개의 예측 유닛들(즉, 기하학적 PU들)으로 분할될 수 있다. 도 8은 본 개시의 일부 구현들에 따른 기하학적 분할의 일부 예들을 예시한다. 도 8에 도시된 바와 같이, CU는 정확히는 대각선이 아닌 라인을 따라 2개의 PU로 분할될 수 있고, 2개의 PU는 삼각형, 쐐기형 또는 사다리꼴 형태와 같은 기하학적 형태를 가질 수 있다. 기하학적 병합 모드는 삼각형 예측 모드의 확장 또는 삼각형 예측 모드의 상위집합(superset)으로 간주될 수 있다.
도 9는 본 개시의 일부 구현들에 따른 기하학적 분할 표현의 일례를 예시하는 개략도이다. 도 9에 도시된 바와 같이, GEO 분할이 주어지면, 분할에 대한 시그널링은, 각도 a 에 대한 시그널링과 블록의 중심에 대한 분리 라인 변위(ρ로 표시됨)에 대한 시그널링을 필요로 한다. 여기서, a 는 0도에서 360도 사이의 양자화된 각도를 나타낸다.
삼각형 예측 모드와 유사하게, GEO 분할에서는, 2개의 GEO 분할 각각에 대해 오직 단일 예측만이 허용되며, 따라서 이러한 모드에서의 메모리 대역폭 요건은 디코더 측의 양방향 예측 블록에 대한 요건을 초과하지 않는다. GEO 분할을 위한 모션 벡터 예측은 삼각형 예측 모드와 정렬된다. 또한 삼각형 예측 모드와 유사하게, 가중 평균에 기초한 블렌딩 동작이 기하학적 병합 모드에서의 2개의 분할들 사이의 내부 경계에 적용될 수 있다. 따라서, 삼각형 예측 단위를 이용한 모션 보상 예측과 관련된 기술은 기하학적 형태의 예측 단위를 이용한 모션 보상 예측에도 적용될 수 있다.
일반(regular) 병합 모드 모션 벡터 후보 리스트
현재 VVC에 따르면, 하나 이상의 PU로 분할됨이 없이 전체 CU가 예측되는 일반 병합 모드에서, 모션 벡터 후보 리스트 또는 병합 후보 리스트는 삼각형 예측 모드와 다른 절차를 사용하여 구성된다.
먼저, 공간적 모션 벡터 후보는 도 10에 도시된 바와 같이 이웃 블록들로부터의 모션 벡터들에 기초하여 선택되며, 도 10은 본 개시의 일부 구현들에 따른 공간 병합 후보들의 위치들을 예시하는 개략도이다. 현재 블록(1002)의 공간적 병합 후보들의 유도에 있어서, 도 10에 도시된 바와 같은 포지션들에 위치한 후보들 중 최대 4개의 병합 후보들이 선택된다. 이들 후보들은 소정 순서에 따라 선택된다. 하나의 예시적인 유도 순서는 A1 -> B1 -> B0 -> A0 -> B2 이다. B2의 위치는 A1, B1, B0, A0의 위치들의 임의의 PU를 사용할 수 없거나 인트라 코딩된 경우에만 고려된다. 다른 순서들도 또한 사용될 수 있다는 점에 유의해야 한다.
다음으로, 시간적 병합 후보가 유도된다. 시간적 병합 후보의 유도에서, 스케일링된 모션 벡터는 소정의 참조 픽처 리스트 내에서 현재 픽처와 가장 작은 POC(Picture Order Count) 차이를 갖는 픽처에 속하는 공존(co-located) PU에 기초하여 유도된다. 공존 PU의 유도에 사용되는 참조 픽처 리스트는 슬라이스 헤더에서 명시적으로 시그널링된다. 시간적 병합 후보에 대한 스케일링된 모션 벡터는 도 11의 점선으로 도시된 바와 같이 획득되며, 도 11은 본 개시의 일부 구현들에 따른 시간적 병합 후보에 대한 모션 벡터 스케일링을 예시한다. 시간적 병합 후보에 대한 스케일링된 모션 벡터는 POC 거리(tb 및 td)를 사용하여 공존 PU(col_PU)의 모션 벡터로부터 스케일링되며, 여기서 tb는 현재 픽처의 참조 픽처(curr_ref)와 현재 픽처(curr_pic) 사이의 POC 차이값으로 정의되고, 그리고 td는 공존 픽처의 참조 픽처(col_ref)와 공존 픽처(col_pic) 사이의 POC 차이값으로 정의된다. 시간적 병합 후보의 참조 픽처 인덱스는 0으로 설정된다. 스케일링 프로세스의 실제적인 구현은 HEVC 드래프트 사양서에 설명되어 있다. B-슬라이스의 경우, 2개의 모션 벡터들(하나는 참조 픽처 리스트 0에 대한 것이고 다른 하나는 참조 픽처 리스트 1에 대한 것임)이 획득되고 그리고 결합되어 양방향 예측 병합 후보를 구성한다.
도 12는 본 개시의 일부 구현들에 따른 시간적 병합 후보에 대한 후보 위치들을 예시하는 개략도이다.
도 12에 도시된 바와 같이, 2개의 후보 위치들 C3 및 H 사이에서, 공존 PU의 위치가 선택된다. 위치 H의 PU가 이용가능하지 않거나, 인트라 코딩되었거나, 현재 CTU 밖에 있는 경우, 위치 C3이 시간적 병합 후보의 유도에 사용된다. 그렇지 않으면, 위치 H가 시간적 병합 후보의 유도를 위해 사용된다.
상술한 바와 같이, 공간적 모션 벡터와 시간적 모션 벡터를 둘다를 병합 후보 리스트에 삽입한 이후, 히스토리 기반의 병합 후보들이 추가된다. 소위 히스토리 기반의 병합 후보들은, 별도의 모션 벡터 리스트에서 유지되고 특정 규칙에 따라 관리되는, 이전에 코딩된 CU들의 모션 벡터들을 포함한다.
히스토리 기반의 후보들을 삽입한 후, 병합 후보 리스트가 가득 차지 않은 경우에는, 쌍별(pairwise) 평균 모션 벡터 후보들이 리스트에 더 추가된다. 이름에서 알 수 있듯이, 이러한 유형의 후보는 현재 리스트에 이미 있는 후보들 평균화하여 구성된다. 보다 구체적으로, 소정 순서 또는 규칙에 기초하여, 병합 후보 리스트 내의 2개의 후보들이 매번 취해지며 그리고 2개의 후보들의 평균 모션 벡터가 현재 리스트에 추가된다.
쌍별 평균 모션 벡터들을 삽입한 이후, 병합 후보 리스트가 여전히 가득 차지 않는다면, 리스트를 가득 채우도록 제로 모션 벡터들이 추가될 것이다.
삼각형 예측에 대한 제 1 병합 리스트 구성하기 위한 일반 병합 리스트 구성 프로세스의 이용
현재 VVC의 삼각형 예측 모드는, 예측자를 형성하는 전체적인 절차에서, 일반 병합 예측 모드와 일부 유사성들을 공유한다. 예를 들어, 2개의 예측 모드들 하에서, 현재 CU의 이웃하는 공간적 모션 벡터들 및 공존 모션 벡터들에 적어도 일부 기초하여 병합 리스트가 구성될 필요가 있다. 이와 동시에, 삼각형 예측 모드는 또한 일반 병합 예측 모드와 다른 몇 가지 측면도 있다.
예를 들어, 비록 삼각형 예측 모드와 일반 병합 예측 모드 둘다에서 병합 리스트를 구성해야 하지만, 이러한 리스트를 구성하는 구체적인 절차는 서로 다르다.
이러한 차이점은 추가적인 로직이 필요하기 때문에 코덱 구현에 추가 비용을 유발한다. 병합 리스트를 구성하는 절차들과 로직들은 삼각형 예측 모드와 일반 병합 예측 모드 간에 통일되어 공유될 수 있다.
일부 일례들에서, 삼각형 예측 모드에 대한 단방향 예측(단일 예측이라고도 함) 병합 리스트을 형성함에 있어서, 새로운 모션 벡터를 병합 리스트에 추가하기 전에, 새로운 모션 벡터는 상기 리스트에 이미 있는 모션 벡터들에 대해서 완전히 프루닝된다(fully pruned). 달리 말하면, 새로운 모션 벡터는 단일 예측 병합 리스트에 이미 있는 각각의 모션 벡터와 비교되고, 그리고 해당 병합 리스트 내의 모든 모션 벡터와 다른 경우에만 리스트에 추가된다. 그렇지 않으면, 새로운 모션 벡터는 리스트에 추가되지 않는다.
본 개시의 일부 일례들에 따르면, 삼각형 예측 모드 하에서, 단방향 예측 병합 리스트는 일반 병합 리스트로 지칭될 수 있는 일반 병합 모드 모션 벡터 후보 리스트로부터 구성된다.
보다 구체적으로, 삼각형 예측 모드를 위한 병합 후보 리스트를 구성하기 위해서, 일반 병합 예측을 위한 병합 리스트 구성 프로세스에 기초하여 제 1 병합 리스트가 먼저 구성된다. 제 1 병합 리스트는 복수의 후보들을 포함하며, 그 각각은 모션 벡터이다. 그 다음, 삼각형 예측 모드에 대한 단방향 예측 병합 리스트가, 제 1 병합 리스트의 모션 벡터들을 사용하여 추가로 구성된다.
다음을 유의해야 하는바, 이 경우에 구성된 제 1 병합 리스트는 범용 병합 모드 또는 일반 병합 모드에 대한 리스트 크기와 다른 리스트 크기를 선택할 수 있다. 본 발명의 일 실시예에서, 제 1 병합 리스트는 일반 병합 모드와 동일한 크기를 갖는다. 본 발명의 다른 예에서, 생성된 제 1 병합 리스트는 일반 병합 모드와 다른 리스트 크기를 갖는다.
제 1 병합 리스트로부터 단방향 예측 병합 리스트의 구성
본 개시의 일부 예에 따르면, 삼각형 예측 모드에 대한 단방향 예측 병합 리스트는 다음의 방법들 중 하나에 기초하여 제 1 병합 리스트로부터 구성될 수 있다.
본 개시의 일례에서, 단방향 예측 병합 리스트를 구성하기 위해, 제 1 병합 리스트의 후보들의 예측 리스트 0 모션 벡터들이 먼저 체크되어 단방향 예측 병합 리스트 내로 선택된다. 이러한 프로세스 이후에 단방향 예측 병합 리스트가 가득 차지 않은 경우(예컨대, 상기 리스트 내의 후보들의 개수가 여전히 목표 수보다 작음), 제 1 병합 리스트에 있는 후보들의 예측 리스트 1 모션 벡터들이 체크되어 단방향 예측 병합 리스트 내로 선택된다. 단방향 예측 병합 리스트가 여전히 가득 차지 않는 경우, 예측 리스트 0 제로 벡터들이 단방향 예측 병합 리스트에 추가된다. 단방향 예측 병합 리스트가 여전히 가득 차지 않는 경우, 예측 리스트 1 제로 벡터들이 단방향 예측 병합 리스트에 추가된다.
본 개시의 다른 일례에서, 제 1 병합 리스트의 각 후보에 대해, 예측 리스트 0 모션 벡터 및 예측 리스트 1 모션 벡터가 단방향 예측 병합 리스트에 인터리빙 방식으로 추가된다. 보다 구체적으로, 제 1 병합 리스트의 각 후보에 대해, 후보가 단방향 예측 모션 벡터인 경우, 상기 후보는 단방향 예측 병합 리스트에 직접 추가된다. 그렇지 않고, 후보가 제 1 병합 리스트의 양방향 예측 모션 벡터인 경우, 상기 후보의 예측 리스트 0 모션 벡터가 단방향 예측 병합 리스트에 먼저 추가되고, 그 다음에 예측 리스트 1 모션 벡터가 추가된다. 제 1 병합 리스트의 모든 모션 벡터 후보들이 체크되고 추가되었지만, 단방향 예측 병합 리스트가 아직 가득 차지않은 경우, 단방향 예측 제로 모션 벡터들이 추가될 수 있다. 예를 들어, 각각의 참조 프레임 인덱스에 대해, 예측 리스트 0 제로 모션 벡터와 예측 리스트 1 제로 모션 벡터가 리스트가 찰 때까지 단방향 예측 병합 리스트에 별도로 추가될 수 있다.
본 개시의 또 다른 일례에서, 제 1 병합 리스트로부터의 단방향 예측 모션 벡터들이 단방향 예측 병합 리스트 내로 먼저 선택된다. 이러한 프로세스 이후에도 단방향 예측 병합 리스트가 가득 차지 않으면, 제 1 병합 리스트의 각각의 양방향 예측 모션 벡터들에 대해, 예측 리스트 0 모션 벡터가 먼저 단방향 예측 병합 리스트에 추가되고 그 다음으로 예측 리스트 1 모션 벡터가 추가된다. 이러한 프로세스 이후에, 단방향 예측 병합 리스트가 아직 가득 차지 않은 경우, 단방향 예측 제로 모션 벡터가 추가될 수 있다. 예를 들어, 각각의 참조 프레임 인덱스에 대해, 예측 리스트 0 제로 모션 벡터와 예측 리스트 1 제로 모션 벡터가 리스트가 찰 때까지 단방향 예측 병합 리스트에 별도로 추가될 수 있다.
전술한 설명에서, 단방향 예측 모션 벡터가 단방향 예측 병합 리스트에 추가되는 경우, 모션 벡터 프루닝(motion vector pruning) 프로세스가 수행되어, 추가될 새로운 모션 벡터가 단방향 예측 병합 리스트에 이미 있는 모션 벡터들과 다른지를 확인할 수 있다. 이러한 모션 벡터 프루닝 프로세스는 또한 더 낮은 복잡성을 위해 부분적인 방식으로 수행될 수 있다, 예를 들어, 단방향 예측 병합 리스트에 이미 있는 모든 모션 벡터가 아니라 일부에 대해서만 추가될 새로운 모션 벡터를 검사한다. 극단적인 경우, 그 과정에서 모션 벡터 프루닝(즉, 모션 벡터 비교 연산)이 수행되지 않는다.
픽처 예측 구성에 기초하여 제 1 병합 리스트로부터 단방향 예측 병합 리스트의 구성
본 개시의 일부 일례들에서, 단일 예측 병합 리스트는 현재 픽처가 역방향(backward) 예측을 사용하는지 여부에 기초하여 적응형 방식으로 구성될 수도 있다. 예를 들어, 단일 예측 병합 리스트는 현재 픽처가 역방향 예측을 사용하는지 여부에 따라 다른 방법들을 이용하여 구성될 수 있다. 모든 참조 픽처들의 픽처 오더 카운트(POC: Picture Order Count) 값이 현재 픽처의 POC 값보다 크지 않다면, 이것은 현재 픽처가 역방향 예측을 사용하지 않음을 의미한다.
본 개시의 일례에서, 현재 픽처가 역방향 예측을 사용하지 않는 경우, 또는 현재 픽처가 역방향 예측을 사용하지 않는 것으로 결정되면, 제 1 병합 리스트에 있는 후보들의 예측 리스트 0 모션 벡터들이 체크되고 단방향 예측 병합 리스트 내로 먼저 선택되며 다음으로 상기 후보들의 예측 리스트 1 모션 벡터들이 후속된다. 그리고 단방향 예측 병합 리스트가 여전히 가득 차지 않으면, 단방향 예측 제로 모션 벡터들이 추가될 수 있다. 그렇지 않고, 현재 픽처가 역방향 예측을 사용하는 경우, 제 1 병합 리스트의 각 후보의 예측 리스트 0 및 리스트 1 모션 벡터들이 체크되고 그리고 앞서 설명한 인터리빙 방식으로 단방향 예측 병합 리스트 내로 선택된다. 즉, 제 1 병합 리스트 내의 제 1 후보의 예측 리스트 0 모션 벡터가 추가되고, 다음으로 제 1 후보의 예측 리스트 1 모션 벡터가 추가되고, 다음으로 제 2 후보의 예측 리스트 0 모션 벡터가 추가되고, 다음으로 제 2 후보의 예측 리스트 1 모션 벡터가 추가되고, 기타 등등이 수행된다. 프로세스의 말미에서, 단방향 예측 병합 리스트가 여전히 가득 차지않은 경우, 단방향 예측 제로 벡터들이 추가될 수 있다.
본 개시의 다른 일례에서, 현재 픽처가 역방향 예측을 사용하지 않는 경우, 제 1 병합 리스트에 있는 후보들의 예측 리스트 1 모션 벡터들이 먼저 체크되고 그리고 단방향 예측 병합 리스트 내로 선택되고, 다음으로 이들 후보들의 예측 리스트 0 모션 벡터들이 후속되며; 그리고 단방향 예측 병합 리스트가 여전히 가득 차지 않으면, 단방향 예측 제로 모션 벡터들이 추가될 수 있다. 그렇지 않고, 현재 픽처가 역방향 예측을 사용하는 경우, 제 1 병합 리스트 내의 각 후보의 예측 리스트 0과 리스트 1 모션 벡터가 먼저 체크되고 그리고 앞서 설명한 인터리빙 방식으로 단방향 예측 병합 리스트 내로 선택될 수 있다. 즉, 제 1 병합 리스트 내의 제 1 후보의 예측 리스트 0 모션 벡터가 추가되고, 다음으로 제 1 후보의 예측 리스트 1 모션 벡터가 후속되고, 제 2 후보의 예측 리스트 0 모션 벡터가 추가되고, 다음으로 제 2 후보의 예측 리스트 1 모션 벡터가 후속되고 기타 등등이 수행된다. 프로세스의 말미에서, 단방향 예측 병합 리스트가 아직 가득 차지않는 경우, 단방향 예측 제로 벡터들이 추가될 수 있다.
본 개시의 또 다른 일례에서, 현재 픽처가 역방향 예측을 사용하지 않는 경우, 제 1 병합 리스트 내의 후보들의 예측 리스트 0 모션 벡터만이 먼저 체크되고 그리고 단방향 예측 병합 리스트 내로 선택되며, 그리고 단방향 예측 병합 리스트가 여전히 가득 차지 않는 경우, 단방향 예측 제로 모션 벡터가 추가될 수 있다. 또는, 현재 픽처가 역방향 예측을 사용하는 경우, 제 1 병합 리스트 내의 각 후보의 예측 리스트 0과 리스트 1 모션 벡터들이 먼저 체크되고 그리고 앞서 설명한 인터리빙 방식으로 단방향 예측 병합 리스트 내로 선택될 수 있다. 즉, 제 1 병합 리스트 내의 제 1 후보의 예측 리스트 0 모션 벡터가 추가되고, 다음으로 제 1 후보의 예측 리스트 1 모션 벡터가 추가되고, 다음으로 제 2 후보의 예측 리스트 0 모션 벡터가 추가되고, 다음으로 제 2 후보의 예측 리스트 1 모션 벡터가 추가되고 기타 등등이 수행된다. 프로세스의 말미에서, 단방향 예측 병합 리스트가 아직 가득 차지않은 경우, 단방향 예측 제로 벡터들이 추가될 수 있다.
본 개시의 또 다른 일례에서, 현재 픽처가 역방향 예측을 사용하지 않는 경우, 제 1 병합 리스트 내의 후보들의 예측 리스트 1 모션 벡터만이 먼저 체크되고 그리고 단방향 예측 병합 리스트 내로 선택되고, 단방향 예측 병합 리스트가 아직 가득 차지않은 경우, 단방향 예측 제로 모션 벡터가 추가될 수 있다. 또는, 현재 픽처가 역방향 예측을 사용하는 경우, 제 1 병합 리스트 내의 각 후보의 예측 리스트 0과 리스트 1 모션 벡터가 체크되고 그리고 앞서 설명한 인터리빙 방식으로 단방향 예측 병합 리스트 내로 선택될 수 있다. 즉, 제 1 병합 리스트 내의 제 1 후보의 예측 리스트 0 모션 벡터가 추가되고, 다음으로 제 1 후보의 예측 리스트 1 모션 벡터가 추가되고, 다음으로 제 2 후보의 예측 리스트 0 모션 벡터가 추가되고, 다음으로 제 2 후보의 예측 리스트 1 모션 벡터가 추가되는 방식이다. 프로세스의 말미에서, 단방향 예측 병합 리스트가 아직 가득 차지않은 경우, 단방향 예측 제로 벡터들이 추가될 수 있다.
위의 일례에서, 삼각형 예측을 위한 단방향 예측 병합 리스트는 제 1 병합 리스트의 모션 벡터들을 단방향 예측 병합 리스트 내로 선택함으로써 구성된다. 하지만, 실제로는, 단방향 예측(또는 단일 예측) 병합 리스트가 물리적으로 형성되거나 형성되지 않고, 상이한 방식들로 방법들이 구현될 수 있다. 일부 예들에서, 제 1 병합 리스트은 단방향 예측 병합 리스트를 물리적으로 생성하지 않고 직접 사용될 수도 있다. 예를 들어, 제 1 병합 리스트의 각 후보의 리스트 0 및/또는 리스트 1 모션 벡터는 특정 순서에 따라 간단히 인덱싱되고 제 1 병합 리스트로부터 직접 액세스될 수 있다. 즉, 일반 병합 예측을 위한 병합 리스트 구성 프로세스에 기초하여, 그 각각이 하나 이상의 모션 벡터인 복수의 후보들을 포함하는 제 1 병합 리스트를 구성한 이후에, 단방향 예측 병합 리스트가 구성되지 않으며, 대신에 복수의 참조 인덱스들을 포함하는 인덱스 리스팅이 형성된다(각각의 참조 인덱스는 제 1 병합 리스트 내의 후보의 모션 벡터에 대한 참조임). 인덱싱 순서는 단방향 예측 병합 리스트가 구성되는 일례에서 설명된 선택 순서들 중 임의의 순서를 따를 수 있다는 점에 유의해야 한다.
본 개시의 일 예에서, 현재 픽처가 역방향 예측을 사용하지 않는 경우, 제 1 병합 리스트의 후보들의 예측 리스트 0 모션 벡터들은, 단방향 예측 병합 후보들로 사용되며, 제 1 병합 리스트에 있는 것과 같은 동일한 인덱스 순서에 따라 인덱싱된다. 즉, 현재 픽처의 POC가 참조 픽처들의 POC 각각 보다 크다고 판단되면, 참조 인덱스들은 제 1 병합 리스트에 있는 후보들의 리스트 0 모션 벡터와 동일한 순서에 따라 정렬된다. 그렇지 않고, 현재 픽처가 역방향 예측을 사용하는 경우, 제 1 병합 리스트의 각 후보의 리스트 0 및 리스트 1 모션 벡터는, 단방향 예측 병합 후보들로서 이용되고 그리고 인터리빙 방식에 기초하여 인덱싱된다. 즉, 제 1 병합 리스트의 제 1 후보의 리스트 0 모션 벡터, 다음으로 제 1 후보의 리스트 1 모션 벡터, 다음으로 제 2 후보의 리스트 0 모션 벡터, 다음으로 제 2 후보의 리스트 1 모션 벡터, 기타 등등의 순서이다. 즉, 현재 픽처의 POC가 참조 픽처들의 POC들 중 적어도 하나보다 작다고 판단되면, 참조 인덱스들은 제 1 병합 리스트 내의 각 후보의 리스트 0 및 리스트 1 모션 벡터들의 인터리빙 방식에 따라 배열되고, 여기서 후보는 양방향 예측 모션 벡터이다. 제 1 병합 리스트의 후보가 단방향 모션 벡터인 경우, 제로 모션 벡터는 그 후보의 모션 벡터를 뒤따르는 단방향 예측 병합 후보로서 인덱싱된다. 이것은 현재 픽처가 역방향 예측을 사용하는 경우, 양방향 또는 단방향 예측 모션 벡터인지에 관계없이, 제 1 병합 리스트 내의 각 후보가 단방향 예측 병합 후보들과 같은 2개의 단방향 모션 벡터를 제공함을 보장한다.
본 개시의 다른 예에서, 현재 픽처가 역방향 예측을 사용하지 않는 경우, 제 1 병합 리스트에 있는 후보들의 예측 리스트 0 모션 벡터들은 단방향 예측 병합 후보들로서 이용되고, 이들의 제 1 병합 리스트 내에서의 순서와 동일한 인덱스 순서에 따라 인덱싱된다. 또는, 현재 픽처가 역방향 예측을 사용하는 경우, 제 1 병합 리스트의 각 후보의 리스트 0 및 리스트 1 모션 벡터가 단방향 예측 병합 후보로 사용되며, 앞서 설명한 바와 같이 인터리빙 방식으로 인덱싱된다. 즉, 제 1 병합 리스트의 제 1 후보의 리스트 0 모션 벡터, 다음으로 제 1 후보의 리스트 1 모션 벡터, 다음으로 제 2 후보의 리스트 0 모션 벡터, 다음으로 제 2 후보의 리스트 1 모션 벡터, 이런 식으로 계속된다. 제 1 병합 리스트의 후보가 단방향 모션 벡터인 경우, 일정한 모션 오프셋을 모션 벡터에 합산한 값이, 후보의 모션 벡터에 후속하는 단방향 예측 병합 후보로서 인덱싱된다.
전술한 프로세스에서, 단방향 예측 병합 리스트에 추가될 새로운 모션 벡터를 체크할 때, 프루닝(pruning)은 전체적으로 또는 부분적으로 수행될 수 있다. 프루닝이 부분적으로 수행된다는 것은, 단일 예측 병합 리스트에 이미 있는 모션 벡터들의 전부가 아닌 일부와 새로운 모션 벡터가 비교된다는 것을 의미한다. 극단적인 경우, 그 어떤 모션 벡터 프루닝(즉, 모션 벡터 비교 연산)도 상기 프로세스에서 수행되지 않는다.
모션 벡터 프루닝은 또한 현재 픽처가 역방향 예측을 사용하는지 여부에 기초하여, 단일 예측 병합 리스트를 형성함에 있어서 적응적으로 수행될 수도 있다. 예를 들어, 픽처 예측 구성에 기초한 인덱스 리스팅 구성에 관한 본 개시의 일례에 대해, 현재 픽처가 역방향 예측을 사용하지 않는 경우, 모션 벡터 프루닝 동작은 전체적 또는 부분적으로 수행된다. 현재 픽처가 역방향 예측을 사용하는 경우, 모션 벡터 프루닝(pruning) 동작이 수행되지 않는다.
삼각형 예측 모드에 대한 단일 예측 병합 후보들의 선택
전술한 일례들에 더하여, 단일 예측 병합 리스트 구성 또는 단일 예측 병합 후보 선택의 다른 방법들이 개시된다.
본 개시의 일례에서, 일반 병합 모드에 대한 제 1 병합 리스트가 구성되면, 다음의 규칙들에 따라 삼각형 예측을 위한 단일 예측 병합 후보들이 선택될 수 있다:
제 1 병합 리스트의 모션 벡터 후보에 대해, 그것의 리스트 0 또는 리스트 1 모션 벡터 중 하나만이 삼각형 예측에 사용된다;
제 1 병합 리스트의 주어진 모션 벡터 후보에 대해, 리스트의 병합 인덱스 값이 짝수이면, 리스트 0 모션 벡터가 사용가능한 경우 리스트 0 모션 벡터가 삼각형 예측에 사용되며, 그리고 이러한 모션 벡터 후보가 리스트 1 모션 벡터를 갖지 않는 경우, 그것의 리스트 0 모션 벡터가 삼각형 예측에 사용된다; 그리고
제 1 병합 리스트의 주어진 모션 벡터 후보에 대해, 리스트의 병합 인덱스 값이 홀수이면, 리스트 1 모션 벡터가 사용가능한 경우 리스트 1 모션 벡터가 삼각형 예측에 사용되며, 그리고 이러한 모션 벡터 후보가 리스트 1 모션 벡터를 갖지 않는 경우, 그것의 리스트 0 모션 벡터가 삼각형 예측에 사용된다.
도 13a은 삼각형 예측 모드에 대한 예측 모션 벡터(MV) 선택(또는 단일 예측 병합 후보 선택)의 일례를 도시한다. 본 일례에서, 제 1 병합 리스트로부터 유도된 제 1 N개(예를 들어, N은 5와 같음)의 병합 MV 후보들은 0에서 (N-1)까지 인덱싱된다; 그리고 각각의 로우(row)는 제 1 병합 리스트의 후보에 대한 리스트 0 및 리스트 1 모션 벡터를 각각 나타내는 2개의 컬럼을 갖는다. 두 개의 열을가지고 있다. 리스트의 각각의 후보는 단일 예측 또는 양방향 예측일 수 있다. 단일 예측 후보의 경우, 이것은 리스트 0 또는 리스트 1 모션 벡터만을 가지며 둘 다 가질 수는 없다. 양방향 예측 후보의 경우, 이것은 리스트 0과 리스트 1 모션 벡터를 모두 갖는다. 도 13a에 도시된 바와 같이, 각 병합 인덱스에 대해, "x"로 마킹된 모션 벡터들은 이들이 사용가능한 경우 삼각형 예측에 먼저 사용되는 모션 벡터들이다. 만일, "x"로 마킹된 모션 벡터들이 사용불가능한 경우, 동일한 병합 인덱스에 대응하는 마킹되지 않은 모션 벡터가 삼각형 예측에 사용된다.
상기 개념은 다른 일례에 확장될 수 있다. 도 13b는 삼각형 예측 모드를 위한 단일 예측 모션 벡터(MV) 선택의 또 다른 일례를 도시한다. 도 13b에 따르면, 삼각형 예측을 위한 단일 예측 병합 후보를 선택하는 규칙들은 다음과 같다:
제 1 병합 리스트의 주어진 모션 벡터 후보에 대해, 리스트 내의 그것의 병합 인덱스 값이 짝수이면, 그것의 리스트 1 모션 벡터가 사용가능한 경우 리스트 1 모션 벡터가 삼각형 예측에 사용되며, 그리고 이러한 모션 벡터 후보가 리스트 1 모션 벡터를 갖지 않는 경우, 그것의 리스트 0 모션 벡터가 삼각형 예측에 사용된다; 그리고
제 1 병합 리스트의 주어진 모션 벡터 후보에 대해, 리스트 내의 그것의 병합 인덱스 값이 홀수이면, 그것의 리스트 0 모션 벡터가 사용가능한 경우 리스트 0 모션 벡터가 삼각형 예측에 사용되며, 그리고 이러한 모션 벡터 후보가 리스트 0 모션 벡터를 갖지 않는 경우, 그것의 리스트 1 모션 벡터가 삼각형 예측에 사용된다.
일부 일례들에서, 다른 상이한 순서들이 정의될 수 있으며 그리고 제 1 병합 리스트의 모션 벡터 후보들로부터 삼각형 예측을 위한 단일 예측 병합 후보들을 선택하기 위해 사용될 수도 있다. 보다 구체적으로, 제 1 병합 리스트의 주어진 모션 벡터 후보에 대해, 삼각형 예측에 이용가능한 경우 그것의 리스트 0 또는 리스트 1 모션 벡터가 먼저 사용되는지의 여부는, 전술한 바와 같이 제 1 병합 리스트 내의 후보의 인덱스 값의 패리티에 의존할 필요가 없다. 예를 들어, 다음의 규칙들이 또한 사용될 수 있다:
제 1 병합 리스트의 모션 벡터 후보에 대해, 그것의 리스트 0 또는 리스트 1 모션 벡터 중 하나만이 삼각형 예측에 사용된다;
소정의 미리 정의된 패턴에 기초하여, 제 1 병합 리스트의 다수의 모션 벡터 후보들에 대해, 이용가능한 경우 그들의 리스트 0 모션 벡터들이 삼각형 예측에 사용되며, 그리고 리스트 0 모션 벡터가 없는 경우에는 대응하는 리스트 1 모션 벡터가 삼각형 예측에 사용된다; 그리고
동일한 미리 정의된 패턴에 기초하여, 제 1 병합 리스트의 나머지 모션 벡터 후보들에 대해, 이용가능한 경우 그들의 리스트 1 모션 벡터가 삼각형 예측에 사용되며, 그리고 리스트 1 모션 벡터가 없는 경우에는 대응하는 리스트 0 모션 벡터가 삼각형 예측에 사용된다.
도 14a 내지 도 14d는 삼각형 예측 모드를 위한 단일 예측 모션 벡터(MV) 선택에 있어서의 미리 정의된 패턴들의 일부 실시예를 도시한다. 각 병합 인덱스에 대해, "x"로 마킹된 모션 벡터는 이용가능한 경우 삼각형 예측에 먼저 사용되는 모션 벡터이다. x로 마킹된 모션 벡터를 사용할 수 없는 경우 동일한 병합 인덱스에 대응하는 마킹되지 않은 모션 벡터가 삼각형 예측에 사용된다.
도 14a에서, 제 1 병합 리스트의 처음 3개의 모션 벡터 후보들에 대해, 그들의 리스트 0 모션 벡터들이 먼저 체크된다. 리스트 0 모션 벡터를 사용할 수 없는 경우에만, 대응하는 리스트 1 모션 벡터가 삼각형 예측에 사용된다. 제 1 병합 리스트의 네 번째 및 다섯 번째 모션 벡터 후보에 대해, 그들의 리스트 1 모션 벡터가 먼저 체크된다. 리스트 1 모션 벡터를 사용할 수 없는 경우에만 대응하는 리스트 0 모션 벡터가 삼각형 예측에 사용된다. 도 14b 내지 도 14d는 제 1 병합 리스트로부터 단일 예측 병합 후보를 선택함에 있어 3가지 다른 패턴을 나타낸다. 도면들에 도시된 일례는 제한적이지 않으며, 추가적인 일례가 존재한다. 예를 들어, 도 14a 내지 도 14d에 도시된 패턴들의 수평 및/또는 수직 미러 버전들이 또한 사용될 수 있다.
일례들 중 일부에 예시된 개념은 본 개시의 일부 다른 일례들에 의해 예시된 개념과 함께 사용될 수 있다. 본 개시의 일 예에 따르면, 제 1 병합 리스트의 주어진 모션 벡터 후보에 대해, 삼각형 및/또는 기하학적 예측에 이용가능할 때 그것의 리스트 0 또는 리스트 1 모션 벡터가 먼저 사용되는지 여부에 대한 결정은, 현재 픽처 및/또는 슬라이스가 역방향 예측을 사용하는지에 추가적으로 의존할 수 있다. 도 15a 내지 도 15b는 본 개시의 일부 구현들에 따른 삼각형 예측 모드에 대한 단일 예측 MV 선택의 일례들을 예시하는 개략도이다. 도 15a에 도시된 바와 같이, 현재 픽처 및/또는 슬라이스가 역방향 예측을 사용하는 경우, 후보의 리스트 0 및 리스트 1 모션 벡터 사이의 선택 순서는 제 1 병합 리스트 내의 후보의 인덱스 값의 패리티에 기초한다. 현재 픽처 및/또는 슬라이스가 역방향 예측을 사용하지 않는 경우, 후보의 리스트 x(x는 0 또는 1) 모션 벡터가 선호되고 이용가능한 경우 먼저 선택되며, x가 0인 일례가 도 15b에 도시된다. 앞서 설명한 다른 예와 유사하게, 제 1 병합 리스트의 특정 후보에 대해 단일 예측 모션 벡터를 사용할 수 없는 경우, 동일한 후보의 대응하는 단일 예측 모션 벡터가 다른 참조 리스트로부터 선택된다. 결과적으로, 제 1 병합 리스트의 각 후보에 대해, 단일 예측 모션 벡터가 획득될 수 있으며, 삼각형 및/또는 기하학적 예측 모드에 사용될 수 있다. 획득된 단일 예측 모션 벡터는 제 1 병합 리스트의 병합 후보와 동일한 인덱스 값을 공유한다.
삼각형 예측 모드를 위한 유연한 병합 리스트 구성 및 후보 인덱스 시그널링
본 개시의 일 예에서, 일반 병합 모드에 대한 제 1 병합 리스트가 일단 구성되면, 삼각형 예측을 위한 단일 예측 모션 벡터가 그 리스트로부터 직접 선택된다. 삼각형 예측에 사용되는 소정의 리스트 0 또는 리스트 1 모션 벡터를 나타내기 위해, 먼저 인덱스 값이 시그널링되어 제 1 병합 리스트에서 어떤 후보가 선택되었는지를 나타낸다. 그런 다음, 이진 참조 리스트 표시 플래그(L0L1_flag로 지칭됨)가 시그널링되어, 제 1 병합 리스트에서 선택된 그 후보의 리스트 0 또는 리스트 1 모션 벡터가 삼각형 예측의 제 1 분할을 위해 선택되는지를 나타낸다. 삼각형 예측의 제 2 분할에 사용될 제 2 리스트 0 또는 리스트 1 모션 벡터를 나타내기 위해 동일한 시그널링 방법이 사용된다. 예를 들어, 삼각형 모드 코딩된 CU에 대해 시그널링된 신택스는 index1, L0L1_flag1, index2, L0L1_flag2를 포함할 수 있다. 여기서, index1과 index2는 각각 제 1 분할 및 제 2 분할을 위해 제 1 병합 리스트로부터 선택된 2개의 후보들의 병합 인덱스 값들이다. Index1 및 index2는 각각 제 1 분할 및 제 2 분할에 대한 후보(즉, 제 1 후보 및 제 2 후보)를 찾는데 사용된다. L0L1_flag1은 제 1 분할에 대한 이진 플래그로서, 제 1 병합 리스트에서 index1에 기초하여 선택된 후보의 리스트 0 또는 리스트 1 모션 벡터가 선택되었는지를 나타낸다. L0L1_flag2는 제 2 분할에 대한 이진 플래그로서, 제 1 병합 리스트에서 index2에 기초하여 선택된 후보의 리스트 0 또는 리스트 1 모션 벡터가 선택되었는지를 나타낸다. 제 1 이진 참조 리스트 표시 플래그 L0L1_flag1 에 따라 제 1 후보의 리스트 X1 MV를 선택함으로써, 제 1 분할에 대한 단일 예측 MV가 획득되며, 여기서 X1 은 0 또는 1의 값이다. 제 2 이진 참조 리스트 표시 플래그 L0L1_flag2 에 따라 제 2 후보의 리스트 X2 MV를 선택함으로써, 제 2 분할에 대한 단일 예측 MV가 획득되며, 여기서 X2 은 0 또는 1의 값이다.
도 16은 본 개시의 일부 구현들에 따른 삼각형 예측 모드에 대한 유연한 단일 예측 MV 선택의 일례를 예시하는 개략도이다. 도 16에 도시된 바와 같이, 직사각형 상자에서 심볼 "x"로 표시된 모든 리스트 0 및/또는 리스트 1 모션 벡터는 제 1 분할에 대한 예측을 유도하기 위해 디코더에 지시/시그널링될 수 있으며, 그리고 직사각형 상자에서 심볼 "x"로 표시된 모든 리스트 0 및/또는 리스트 1 모션 벡터는 삼각형 예측 모드 하에서 제 2 분할에 대한 예측을 유도하기 위해 디코더에 지시/시그널링될 수 있다. 그 결과, 제 1 병합 리스트로부터 단일 예측 모션 벡터를 선택하는 것이 매우 유연해진다. N개의 후보들의 크기를 갖는 제 1 병합 리스트가 주어지면, 2개의 삼각형 분할 각각에 대해 최대 2N개의 단일 예측 모션 벡터들이 사용될 수 있다. 삼각형 예측 모드에서 2개의 분할들에 대한 2개의 병합 인덱스 값들은 서로 다를 필요가 없다. 즉, 이들은 서로 같은 값을 가질 수 있다. 인덱스 값들은 시그널링 전에 조정 없이 직접 시그널링된다. 보다 구체적으로, 현재 VVC에서 정의된 것과 달리, 제 2 인덱스 값은 시그널링 이전에 값에 대한 임의의 조정을 수행함이 없이, 디코더로 직접 시그널링된다.
본 개시의 다른 일례에서, 2개의 인덱스 값들이 동일한 경우, 제 2 분할에 대한 이진 플래그, L0L1_flag2는 시그널링될 필요가 없다. 대신에, 이것은 제 1 분할에 대한 이진 플래그인 L0L1_flag1 와 반대되는 값을 갖는 것으로 유추된다. 즉, 이 경우 L0L1_flag2는 (1-L0L1_flag1)의 값을 가질 수 있다.
본 개시의 또 다른 일례에서, 이진 참조 리스트 표시 플래그, 즉 L0L1_flag1 및 L0L1_flag2는 CABAC 컨텍스트 빈(CABAC context bins)으로서 코딩될 수 있다. L0L1_flag1에 사용되는 컨텍스트는 L0L1_flag2에 사용되는 컨텍스트와 별개이 수 있다. 각각의 컨텍스트 하에서 CABAC 확률은 비디오 시퀀스의 시작에서, 및/또는 픽처의 시작에서, 및/또는 타일 그룹의 시작에서 초기화될 수 있다. 본 일례에서, 이들 2개의 플래그들을 코딩하기 위해 상이한 컨텍스트 모델링 방법들이 사용될 수 있다. 하나의 방법에서, 제 2 플래그에 대한 컨텍스트 모델 선택은 제 1 플래그의 값에 의존할 수 있다. 다시 말해서, 적어도 2개의 컨텍스트 모델들이 제 2 플래그를 코딩하는데 사용될 수 있으며, 여기서 컨텍스트 모델은 시그널링된 제 1 플래그의 값에 기초하여 선택된다. 다른 하나의 방법에서, 각각의 컨텍스트 모델 하에서의 CABAC 확률은 현재 픽처가 역방향 예측을 사용하는지의 여부에 따라 다르게 초기화될 수 있다. 픽처가 역방향 예측을 사용하는 경우, 플래그가 특정 리스트, 예를 들어 리스트 0을 나타낼 확률이 더 높게 초기화될 수 있다. 또 다른 방법에서, 제 1 플래그는 바이패스 빈(bypass bin)으로 코딩될 수 있고, 제 2 플래그이만 컨텍스트 빈으로 코딩된다. 전술한 방법들은 개별적으로 또는 함께 사용될 수 있다.
본 개시의 또 다른 일례에서, 병합 인덱스 값 및 연관된 이진 참조 리스트 지시 플래그, 즉 L0L1_flag에 의해 표시되는 모션 벡터가 존재하지 않는 경우, 단일 예측 제로 모션 벡터가 대신 사용될 수 있다. 즉, 제 1 후보의 리스트 X1 MV가 존재하지 않는다고 결정되면 단일 예측 제로 MV가 제 1 분할에 대한 단일 예측 MV로 선택되며; 및/또는 제 2 후보의 리스트 X2 MV가 존재하지 않는다고 결정되면 단일 예측 제로 MV가 제 2 분할에 대한 단일 예측 MV로서 선택된다.
본 개시의 또 다른 일례에서, 병합 인덱스 값 및 연관된 L0L1_flag에 의해 표시되는 모션 벡터가 존재하지 않는 경우, 동일한 병합 인덱스 값에 의해 표시되지만 다른 리스트로부터의 대응 모션 벡터 즉, List(1 -L0L1_flag)가 대신 사용될 수 있다. 즉, 제 1 후보의 리스트 X1 MV가 존재하지 않는 것으로 결정되면, 제 1 후보의 리스트 (1-X1) MV를 선택함으로써 제 1 분할에 대한 단일 예측 MV가 획득되며; 및/또는 제 2 후보의 리스트 X2 MV가 존재하지 않는 것으로 결정되면, 제 2 후보의 리스트 (1-X2) MV를 선택함으로써 제 2 분할에 대한 단일 예측 MV가 획득된다.
본 개시의 또 다른 일례에서, 삼각형 모드 코딩된 CU에 대해, 제 2 인덱스(즉, 인덱스2)와 연관된 제 2 L0L1_flag(즉, L0L1_flag2)는 시그널링되지 않고 항상 추론된다. 이 경우, index1, L0L1_flag1 및 index2 신택스들은 여전히 시그널링될 필요가 있다. 하나의 방법에서, L0L1_flag2는 L0L1_flag1의 값과 현재 픽처가 역방향 예측을 사용하는지 여부에 기초하여 추론된다. 보다 구체적으로, 삼각형 모드 코딩된 CU에 대해, 현재 픽처가 역방향 예측을 사용하는 경우, L0L1_flag2의 값은 L0L1_flag1의 값과 반대인 이진값(즉, 1 - L0L1_flag1)인 것으로 추론되고; 현재 픽처가 역방향 예측을 사용하지 않는 경우, L0L1_flag2의 값은 L0L1_flag1의 값과 동일한 것으로 추론된다. 또한 현재 픽처가 역방향 예측을 사용하지 않는 경우, 2개의 모션 벡터(각 삼각형 분할에 대해 하나씩)가 모두 동일한 예측 리스트로부터 온 것이기 때문에 index2의 값이 index1의 값과 다른 것으로 추가로 시행될 수 있다. index2가 index1과 같은 값을 갖는다면, 동일한 모션 벡터가 2개의 삼각형 분할들 둘다에서 사용된다는 것을 의미하며, 이는 코딩 효율성 측면에서 유용하지 않다. 이 경우, index2의 값을 시그널링함에 있어서, 인덱스 이진화 이전에 index2의 값에 대한 해당 조정이 수행될 수 있으며, 이는 index2 시그널링을 위한 현재 VVC 설계와 동일한 것이다. 예를 들어, index1의 실제 값이 index2의 값보다 작은 경우, index2의 값을 시그널링하기 위해 (index2-1)에 해당하는 CABAC 이진화 코드워드가 사용되며; 그렇지 않으면, index2에 대응하는 CABAC 이진화 코드워드가 index2의 값을 시그널링하기 위해 사용된다. 본 개시의 일례에 기초하여, 대안적으로, CABAC 이진화를 위한 동일한 index2 값 조정과 함께, 현재 픽처가 역방향 예측을 사용하는 경우에도, index1과 다른 값을 갖는 index2의 시행이 또한 적용될 수 있다.
본 개시의 또 다른 일례에서, 삼각형 모드 코딩된 CU에 대해, L0L1_flags 중 어떤 것도 시그널링되지 않는다. 대신에, 둘 다 추론된다. 이 경우, index1 및 index2 신택스들은 여전히 시그널링될 필요가 있으며, 이들은 제 1 및 제 2 분할에 대해 제 1 병합 리스트로부터 선택된 2개의 후보들의 병합 인덱스 값들을 나타낸다. 병합 후보 인덱스 값이 주어지면, 삼각형 모드 예측을 위해 제 1 리스트로부터의 대응하는 병합 후보의 리스트 0 모션 벡터 또는 리스트 1 모션 벡터가 선택되는지를 결정함에 있어 소정 접근법들이 정의되거나 사용될 수 있다. 하나의 접근법에서, index1에 대해, 도 13a에 도시된 패턴이 삼각형 모드 예측을 위해 병합 후보의 모션 벡터가 어떤 예측 리스트로부터 선택되는지를 결정하는데 사용되며; index2의 경우, 도 13b에 도시된 패턴이 삼각형 모드 예측을 위해 병합 후보의 모션 벡터가 어떤 예측 리스트로부터 선택되는지를 결정하는데 사용된다. 즉, index1이 짝수 값이면 index1에 의해 표시된 후보의 리스트 0 모션 벡터가 선택되고, index1이 홀수 값이면 index1에 의해 표시된 후보의 리스트 1 모션 벡터가 선택된다. index2의 경우, index2가 짝수 값이면 리스트 1 모션 벡터가 선택되고, 홀수 값이면 리스트 0 모션 벡터가 선택된다. 특정 예측 리스트에 대응하는 모션 벡터가 존재하지 않는 경우, 특정 디폴트 모션 벡터, 예를 들어 제로 모션 벡터, 또는 다른 예측 리스트의 대응하는 모션 벡터 등이 대신 사용될 수 있다. 다음과 같은 것도 또한 가능한바, 삼각형 모드 예측을 위해 병합 후보의 모션 벡터가 어느 예측 리스트로부터 선택되는지를 결정함에 있어서, 도 13b에 도시된 패턴이 인덱스1에 대해 이용되고, 도 13a에 도시된 패턴이 인덱스2에 대해 이용될 수 있다. 즉, L0L1_flags는 index1과 index2의 값들에 기초하여 결정될 수 있다.
비록 본 개시의 방법들이 삼각형 예측 모드를 일례로 사용하여 예시되어 있지만, 기하학적 병합 모드가 삼각형 예측 모드의 확장판 또는 상위집합으로서 고려될 수 있다는 점을 감안할 때, 본 개시에서 예시된 방법들은 자연스럽게 기하학적 병합 모드에도 적용가능하다. 본 개시에서 설명하는 모든 병합 리스트 구성 방법은 임의의 변형 없이 기하학적 병합 모드에 자연스럽게 사용될 수 있다. 마찬가지로, 본 개시에서 설명하는 모든 병합 인덱스 시그널링 방법은 임의의 변형 없이 기하학적 병합 모드에도 자연스럽게 사용될 수 있다. 일 예에서, 도 13a에 따른 동일한 병합 리스트 구성 프로세스가 기하학적 병합 모드에 사용된다. 다른 예에서, 도 13b에 따른 동일한 병합 리스트 구성 프로세스가 기하학적 병합 모드에 사용된다. 또한, 동일한 병합 리스트 구성 프로세스가 삼각형 예측 모드와 기하학적 병합 모드 모두를 위해 공유 및 이용될 수 있다는 점을 언급할 가치가 있다(VVC에 2개의 모드들이 모두 존재하는 경우).
5개의 병합 후보를 포함하는 제 1 병합 리스트가 본 개시의 일부 예에서 사용되었지만, 실제로 제 1 병합 리스트의 크기는 예를 들어, 6 또는 4, 또는 일부 다른 값과 같이 상이하게 정의될 수 있음을 유의해야 한다. 일례들에서 설명한 방법은 제 1 병합 리스트의 크기가 5가 아닌 경우에도 적용될 수 있다.
앞선 일례들에서, 모션 벡터 프루닝(pruning)이 또한 수행될 수 있다. 이러한 프루닝은 완전히 또는 부분적으로 수행될 수 있다. 부분적으로 수행될 수 있다. 프루닝이 부분적으로 수행된다는 것은, 단일 예측 병합 리스트에 이미 있는 모션 벡터들의 전부가 아닌 일부와 새로운 모션 벡터가 비교된다는 것을 의미한다. 이것을 또한 다음을 의미할 수도 있는바, 삼각형 예측을 위한 병합 후보로 사용되기 전에, 전부가 아닌 오직 일부만의 새로운 모션 벡터가 프루닝을 위해 체크될 필요가 있음을 의미한다. 하나의 구체적인 일례는 삼각형 예측을 위한 병합 후보로 사용되기 전에 프루닝을 위해 제 1 모션 벡터에 대해 제 2 모션 벡터만이 체크되는 반면, 다른 모든 모션 벡터들은 프루닝를 위해 체크되지 않는다. 극단적인 경우, 그 과정에서 모션 벡터 프루닝(즉, 모션 벡터 비교 연산)이 수행되지 않는다.
도 17은 본 개시의 일부 구현들에 따른 비디오 코딩을 위한 장치를 예시하는 블록도이다. 장치(1700)는 휴대폰, 태블릿 컴퓨터, 디지털 방송 단말기, 태블릿 디바이스 또는 개인 휴대 정보 단말기와 같은 단말기일 수 있다.
도 17에 도시된 바와 같이, 장치(1700)는 다음 컴포넌트들 중 하나 이상을 포함할 수 있다: 프로세싱 컴포넌트(1702), 메모리(1704), 전원 컴포넌트(1706), 멀티미디어 컴포넌트(1408), 오디오 컴포넌트(1710), 입/출력(I/O) 인터페이스(1712), 센서 컴포넌트(1714), 및 통신 컴포넌트(1716).
프로세싱 컴포넌트(1702) 는 일반적으로 디스플레이, 전화 통화, 데이터 통신, 카메라 동작 및 녹음 동작과 관련된 동작들과 같은 장치(1700)의 전체 동작을 제어한다. 프로세싱 컴포넌트(1702)는 위의 방법의 단계들의 전부 또는 일부를 완료하기 위한 명령을 실행하기 위한 하나 이상의 프로세서(1720)를 포함할 수 있다. 또한, 프로세싱 컴포넌트(1702)는 프로세싱 컴포넌트(1702)와 다른 컴포넌트들 사이의 상호작용을 용이하게 하기 위한 하나 이상의 모듈을 포함할 수 있다. 예를 들어, 프로세싱 컴포넌트(1702)는 멀티미디어 컴포넌트(1708)와 프로세싱 컴포넌트(1702) 사이의 상호작용을 용이하게 하기 위한 멀티미디어 모듈을 포함할 수 있다.
메모리(1704)는 장치(1700)의 동작을 지원하기 위해 상이한 유형의 데이터를 저장하도록 구성된다. 이러한 데이터의 일례는 장치(1700)에서 작동하는 임의의 임의의 애플리케이션 또는 방법을 위한 명령들, 연락처 데이터, 전화번호부 데이터, 메시지, 사진, 비디오 등을 포함한다. 메모리(1704)는 임의의 유형의 휘발성 또는 비휘발성 저장 디바이스 또는 이들의 조합에 의해 구현될 수 있고, 메모리(1704)는 정적 랜덤 액세스 메모리(SRAM: Static Random Access Memory), 전기적으로 소거 및 프로그램 가능한 판독 전용 메모리(EEPROM), 소거 및 프로그램 가능한 판독 전용 메모리(EPROM), 프로그래밍 가능한 판독 전용 메모리(PROM), 판독 전용 메모리(ROM), 자기 메모리, 플래시 메모리, 자기 디스크 또는 컴팩트 디스크를 포함할 수 있다.
전원 컴포넌트(1706)는 장치(1700)의 다른 컴포넌트에 전원을 공급한다. 전원 컴포넌트(1706)는 전원 관리 시스템, 하나 이상의 전원, 및 장치(1700)의 전원을 생성, 관리 및 분배하는 것과 관련된 다른 컴포넌트를 포함할 수 있다.
멀티미디어 컴포넌트(1708)는 장치(1700)와 사용자 사이의 출력 인터페이스를 제공하는 스크린을 포함한다. 일부 예에서, 스크린은 LCD(Liquid Crystal Display) 및 TP(Touch Panel)를 포함할 수 있다. 스크린이 터치 패널을 포함하는 경우, 스크린은 사용자로부터 입력 신호를 수신하는 터치 스크린으로 구현될 수 있다. 터치 패널은 터치 패널 상의 터치, 슬라이드 및 제스처를 감지하기 위한 하나 이상의 터치 센서를 포함할 수 있다. 터치 센서는 터치 또는 슬라이딩 동작의 경계를 감지할 뿐만 아니라 터치 또는 슬라이딩 동작과 관련된 지속 시간 및 압력을 감지할 수 있다. 일부 예들에서, 멀티미디어 컴포넌트(1708)는 전면 카메라 및/또는 후면 카메라를 포함할 수 있다. 장치(1700)가 촬영 모드 또는 비디오 모드와 같은 동작 모드에 있는 경우, 전면 카메라 및/또는 후면 카메라는 외부 멀티미디어 데이터를 수신할 수 있다.
오디오 컴포넌트(1710)는 오디오 신호를 출력 및/또는 입력하도록 구성된다. 예를 들어, 오디오 컴포넌트(1710)는 마이크(MIC)를 포함한다. 장치(1700)가 통화 모드, 녹음 모드 및 음성 인식 모드와 같은 동작 모드에 있을 때, 마이크로폰은 외부 오디오 신호를 수신하도록 구성된다. 수신된 오디오 신호는 메모리(1704)에 저장되거나 통신 컴포넌트(1716)를 통해 전송될 수 있다. 일부 예들에서, 오디오 컴포넌트(1710)는 오디오 신호를 출력하기 위한 스피커를 더 포함한다.
I/O 인터페이스(1712)는 프로세싱 컴포넌트(1702)와 주변 인터페이스 모듈 사이의 인터페이스를 제공한다. 상기 주변 인터페이스 모듈은 키보드, 클릭 휠, 버튼 등이 될 수 있다. 이러한 버튼에는 홈 버튼, 볼륨 버튼, 시작 버튼 및 잠금 버튼이 포함될 수 있지만 이에 국한되지 않는다.
센서 컴포넌트(1714)는 장치(1700)에 대한 상이한 양상들에서 상태 평가를 제공하기 위한 하나 이상의 센서들을 포함한다. 예를 들어, 센서 컴포넌트(1714)는 장치(1700)의 온/오프 상태 및 컴포넌트들의 상대 위치를 검출할 수 있다. 예를 들어, 컴포넌트는 장치(1700)의 디스플레이 및 키패드이다. 센서 컴포넌트(1714)는 또한 장치(1700) 또는 장치(1700)의 컴포넌트의 위치 변경, 장치(1700) 상의 사용자 접촉의 존재 또는 부재, 장치(1700)의 방향 또는 가속/감속, 및 장치(1700)의 온도 변화를 검출할 수 있다. 센서 컴포넌트(1714)는 물리적인 접촉 없이 가까운 물체의 존재를 검출하도록 구성된 근접 센서를 포함할 수 있다. 센서 컴포넌트(1714)는 이미징 애플리케이션에서 사용되는 CMOS 또는 CCD 이미지 센서와 같은 광학 센서를 더 포함할 수 있다. 일부 예들에서, 센서 컴포넌트(1714)는 가속도 센서, 자이로스코프 센서, 자기 센서, 압력 센서, 또는 온도 센서를 더 포함할 수 있다.
통신 컴포넌트(1716)는 장치(1700)와 다른 디바이스들 사이의 유선 또는 무선 통신을 용이하게 하도록 구성된다. 장치(1700)는 WiFi, 4G 또는 이들의 조합과 같은 통신 규격에 기반한 무선 네트워크에 접속할 수 있다. 일례에서, 통신 컴포넌트(1716)는 방송 채널을 통해 외부 방송 관리 시스템으로부터 방송 신호 또는 방송 관련 정보를 수신한다. 예에서, 통신 컴포넌트(1716)는 근거리 통신을 촉진하기 위한 NFC(Near Field Communication) 모듈을 더 포함할 수 있다. 예를 들어, NFC 모듈은 무선 주파수 식별 기술(RFID: Radio Frequency Identification), 적외선 데이터 연관 기술(IrDA: Infrared Data Association), 광대역 기술(UWB: Ultra-Wide Band), 블루투스 기술(Bluetooth) 등을 기반으로 구현될 수 있다.
일례에서, 장치(1700)는 주문형 집적 회로(ASIC), 디지털 신호 프로세서(DSP), 디지털 신호 프로세싱 디바이스(DSPD), 프로그램가능 로직 디바이스(PLD), 필드 프로그램가능 게이트 어레이(FPGA), 컨트롤러, 마이크로컨트롤러, 마이크로프로세서 또는 위의 방법을 수행하는 기타 전자 소자 중 하나 이상에 의해 구현될 수 있다.
비일시적 컴퓨터 판독가능 저장 매체는 예를 들어, 하드 디스크 드라이브(HDD), 솔리드 스테이트 드라이브(SSD), 플래시 메모리, 하이브리드 드라이브 또는 솔리드 스테이트 하이브리드 드라이브(SSHD), 읽기 전용 메모리(ROM), 컴팩트 디스크 읽기 전용 메모리(CD-ROM), 자기 테이프, 플로피 디스크 등을 포함할 수 있다.
도 18은 본 개시의 일부 구현들에 따른 기하학적 분할을 사용하는 모션 보상된 예측을 위한 비디오 코딩를 예시하는 흐름도이다.
단계 1802에서, 프로세서(1720)는 비디오 픽처를 복수의 코딩 단위(CU)들로 분할하고, 코딩 단위들 중 적어도 하나는 2개의 예측 단위(PU)들로 더 분할된다. 2개의 PU는 적어도 하나의 기하학적 형태의 PU를 포함할 수 있다. 예를 들어, 기하학적 형태의 PU는 한 쌍의 삼각형 형태의 PU, 한 쌍의 쐐기형 PU, 또는 다른 기하학적 형태의 PU를 포함할 수 있다.
단계 1804 에서, 프로세서(1720)는 복수의 후보를 포함하는 제 1 병합 리스트를 구성한다. 각각의 후보는 리스트 0 모션 벡터 및/또는 리스트 1 모션 벡터를 포함하는 모션 벡터이다. 예를 들어, 프로세서(1720)는 일반 병합 예측을 위한 병합 리스트 구성 프로세스에 기초하여 제 1 병합 리스트를 구성할 수 있다. 프로세서(1720)는 또한 다른 전자 디바이스 또는 저장 디바이스로부터 제 1 병합 리스트을 획득할 수 있다.
단계 1806에서, 프로세서(1720)는 제 1 인덱스에 따라 제 1 PU에 대한 제 1 후보를 찾는다.
단계 1808 에서, 프로세서(1720)는 제 2 인덱스에 따라 제 2 PU에 대한 제 2 후보를 찾는다.
단계 1810에서, 프로세서(1720)는 제 1 이진 참조 리스트 표시 플래그에 따라 제 1 후보의 리스트 X1 MV를 선택함으로써 제 1 PU에 대한 제 1 단일 예측 MV를 획득하며, 여기서 X1 은 0 또는 1의 값이며 제 1 이진 참조 리스트 표시 플래그에 의해 표시된다.
단계 1812에서, 프로세서(1720) 는 제 2 이진 참조 리스트 표시 플래그에 따라 제 2 후보의 리스트 X2 MV 를 선택함으로써 제 2 PU에 대한 제 2 단일 예측 MV를 획득하며, 여기서 X2 는 0 또는 1의 값이며 제 2 이진 참조 리스트 표시 플래그에 의해 표시된다.
일부 예들에서, 비디오 코딩을 위한 장치가 제공된다. 장치는 프로세서(1720); 및 프로세서에 의해 실행가능한 명령들을 저장하도록 구성된 메모리(1704)를 포함하며, 프로세서는 상기 명령들의 실행시에 도 18에 예시된 바와 같은 방법을 수행하도록 구성된다.
일부 다른 일례에서, 명령들이 저장된 비일시적 컴퓨터 판독가능 저장 매체(1704)가 제공된다. 명령들이 프로세서(1720)에 의해 실행될 때, 명령들은 프로세서로 하여금 도 18에 예시된 바와 같은 방법을 수행하게 한다.
본 개시의 설명은 예시의 목적으로 제시되었으며, 본 개시를 완전하게 하거나 제한하도록 의도된 것은 아니다. 많은 수정예들, 변형예들 및 대안적인 구현예들이 전술한 설명 및 관련 도면에 제시된 교시의 이점을 갖는 당업자에게 명백할 것이다.
본 개시의 원리를 설명하고, 당업자가 다양한 구현예들을 이해할 수 있게하고, 그리고 고려되는 특정 용도에 적합한 다양한 수정예들과 함께 기본 원리 및 다양한 구현예들을 가장 잘 활용할 수 있도록 하기 위해 실시예들이 선택 및 설명되었다. 따라서, 본 개시의 범위는 개시된 구현의 특정 일례에 제한되지 않고 수정예들 및 다른 구현예들이 본 개시의 범위 내에 포함되도록 의도되는 것으로 이해되어야 한다.

Claims (1)

  1. 기하학적 분할을 이용한 비디오 디코딩 방법으로서,
    비디오 픽처들을 복수의 코딩 단위들(CUs)로 분할하는 단계, 복수의 코딩 단위들 중 적어도 하나는 적어도 하나의 기하학적 형태의 PU를 포함하는 제 1 PU 및 제 2 PU의 2개의 예측 단위(PU)로 추가로 분할되고;
    일반 병합 예측을 위한 병합 리스트 구성 프로세스에 기초하여, 복수의 후보를 포함하는 제 1 병합 리스트를 구성하는 단계, 복수의 후보들 각각은 리스트 0 MV 또는 리스트 1 MV를 포함하는 모션 벡터(MV)이며;
    제 1 인덱스에 따라 제 1 PU에 대한 제 1 후보를 찾는 단계;
    제 2 인덱스에 따라 제 2 PU에 대한 제 2 후보를 찾는 단계;
    제 1 이진 참조 리스트 표시 플래그에 따라 제 1 후보의 리스트 X1 MV 를 결정함으로써 제 1 PU에 대한 제 1 단일 예측 MV를 획득하는 단계, X1 은 0 또는 1의 값을 취하고 제 1 이진 참조 리스트 표시 플래그에 의해 표시되며; 그리고
    제 2 이진 참조 리스트 표시 플래그에 따라 제 2 후보의 리스트 X2 MV 를 결정함으로써 제 2 PU에 대한 제 2 단일 예측 MV를 획득하는 단계 -X2 는 0 또는 1의 값을 취하고 제 2 이진 참조 리스트 표시 플래그에 의해 표시됨-
    를 포함하며,
    상기 제 1 PU에 대한 제 1 단일 예측 MV를 획득하는 단계는, 제 1 후보의 리스트 X1 MV 가 존재하지 않는다고 결정되면 제 1 후보의 리스트 (1-X1) MV 를 선택하는 단계를 포함하고,
    상기 제 2 PU에 대한 제 2 단일 예측 MV를 획득하는 단계는, 제 2 후보의 리스트 X2 MV 가 존재하지 않는다고 결정되면 제 2 후보의 리스트 (1-X2) MV 를 선택하는 단계를 포함하는 것을 특징으로 하는 기하학적 분할을 이용한 비디오 디코딩 방법.
KR1020247009599A 2019-10-10 2020-10-12 삼각형 분할을 이용한 비디오 코딩을 위한 방법 및 장치 KR20240042245A (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201962913710P 2019-10-10 2019-10-10
US62/913,710 2019-10-10
US201962948781P 2019-12-16 2019-12-16
US62/948,781 2019-12-16
PCT/US2020/055259 WO2021072375A1 (en) 2019-10-10 2020-10-12 Methods and apparatuses for video coding using triangle partition
KR1020227014846A KR20220070530A (ko) 2019-10-10 2020-10-12 삼각형 분할을 이용한 비디오 코딩을 위한 방법 및 장치

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020227014846A Division KR20220070530A (ko) 2019-10-10 2020-10-12 삼각형 분할을 이용한 비디오 코딩을 위한 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20240042245A true KR20240042245A (ko) 2024-04-01

Family

ID=75437576

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020247009599A KR20240042245A (ko) 2019-10-10 2020-10-12 삼각형 분할을 이용한 비디오 코딩을 위한 방법 및 장치
KR1020227014846A KR20220070530A (ko) 2019-10-10 2020-10-12 삼각형 분할을 이용한 비디오 코딩을 위한 방법 및 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020227014846A KR20220070530A (ko) 2019-10-10 2020-10-12 삼각형 분할을 이용한 비디오 코딩을 위한 방법 및 장치

Country Status (7)

Country Link
US (1) US20220239902A1 (ko)
EP (1) EP4042686A4 (ko)
JP (1) JP2022541687A (ko)
KR (2) KR20240042245A (ko)
CN (2) CN114788274A (ko)
MX (1) MX2022004267A (ko)
WO (1) WO2021072375A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220070475A1 (en) * 2018-12-18 2022-03-03 Electronics And Telecommunications Research Institute Image encoding/decoding method and apparatus, and recording media storing bitstream

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101431679B (zh) * 2002-03-04 2011-08-10 松下电器产业株式会社 图像编码方法及图像编码装置
EP2164261A3 (en) * 2002-07-11 2011-08-17 Panasonic Corporation Filtering strength determination method, moving picture coding and decoding method
JP2011501508A (ja) * 2007-10-12 2011-01-06 トムソン ライセンシング 幾何学分割された双方向予測モードパーティションのビデオエンコーディング及びデコーディングのための方法及び装置
WO2011096770A2 (ko) * 2010-02-02 2011-08-11 (주)휴맥스 영상 부호화/복호화 장치 및 방법
JP5718453B2 (ja) * 2010-04-13 2015-05-13 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン 復号化方法
CN104853201A (zh) * 2010-07-02 2015-08-19 数码士控股有限公司 用于帧内预测的编码/解码图像的装置和方法
US9066110B2 (en) * 2011-03-08 2015-06-23 Texas Instruments Incorporated Parsing friendly and error resilient merge flag coding in video coding
US9426463B2 (en) * 2012-02-08 2016-08-23 Qualcomm Incorporated Restriction of prediction units in B slices to uni-directional inter prediction
US9451277B2 (en) * 2012-02-08 2016-09-20 Qualcomm Incorporated Restriction of prediction units in B slices to uni-directional inter prediction
JP5997363B2 (ja) * 2012-04-15 2016-09-28 サムスン エレクトロニクス カンパニー リミテッド ビデオ復号化方法及びビデオ復号化装置
CN103024402B (zh) * 2012-11-29 2015-10-28 宁波大学 一种自由视点视频整帧丢失错误隐藏方法
US9648319B2 (en) * 2012-12-12 2017-05-09 Qualcomm Incorporated Device and method for scalable coding of video information based on high efficiency video coding
US9674542B2 (en) * 2013-01-02 2017-06-06 Qualcomm Incorporated Motion vector prediction for video coding
US9826244B2 (en) * 2013-01-08 2017-11-21 Qualcomm Incorporated Device and method for scalable coding of video information based on high efficiency video coding
CN109982094A (zh) * 2013-04-02 2019-07-05 Vid拓展公司 针对可伸缩视频编码的增强型时间运动向量预测
US9762927B2 (en) * 2013-09-26 2017-09-12 Qualcomm Incorporated Sub-prediction unit (PU) based temporal motion vector prediction in HEVC and sub-PU design in 3D-HEVC
BR112017011890A2 (pt) * 2014-12-09 2018-07-03 Mediatek Inc método de derivação de preditor de vetor de movimento ou de candidato a fusão em codificação de vídeo
US11477477B2 (en) * 2015-01-26 2022-10-18 Qualcomm Incorporated Sub-prediction unit based advanced temporal motion vector prediction
WO2018049594A1 (en) * 2016-09-14 2018-03-22 Mediatek Inc. Methods of encoder decision for quad-tree plus binary tree structure
CN118214853A (zh) * 2017-10-26 2024-06-18 英迪股份有限公司 用于基于非对称子块的图像编码/解码的方法及装置
JP7328328B2 (ja) * 2018-10-08 2023-08-16 ホアウェイ・テクノロジーズ・カンパニー・リミテッド コーディングブロックの三角形パーティションのインター予測のための装置および方法
CN113924774A (zh) * 2019-05-10 2022-01-11 北京达佳互联信息技术有限公司 用于利用三角形预测进行视频编解码的方法和装置
US11310497B2 (en) * 2019-11-15 2022-04-19 Qualcomm Incorporated Geometric partition mode with increased efficiency
JP7499854B2 (ja) * 2019-12-30 2024-06-14 鴻穎創新有限公司 ビデオデータをコーディングするデバイス及び方法

Also Published As

Publication number Publication date
MX2022004267A (es) 2022-07-04
CN114788274A (zh) 2022-07-22
KR20220070530A (ko) 2022-05-31
EP4042686A4 (en) 2022-12-07
EP4042686A1 (en) 2022-08-17
US20220239902A1 (en) 2022-07-28
CN115623206B (zh) 2024-02-27
JP2022541687A (ja) 2022-09-26
CN115623206A (zh) 2023-01-17
WO2021072375A1 (en) 2021-04-15

Similar Documents

Publication Publication Date Title
EP3915254B1 (en) Video coding for geometric inter partition prediction
KR102658346B1 (ko) 삼각형 예측을 위한 비디오 코딩 방법 및 장치
US20230089782A1 (en) Methods and apparatuses for video coding using geometric partition
US20220239902A1 (en) Methods and apparatuses for video coding using triangle partition
EP3967035A1 (en) Methods and apparatuses for video coding with triangle prediction
US12034913B2 (en) Methods and apparatuses for video coding with triangle prediction
US12028547B2 (en) Methods and apparatus of video coding for triangle prediction
US20220014780A1 (en) Methods and apparatus of video coding for triangle prediction
CN113994672B (zh) 用于利用三角形预测进行视频编解码的方法和装置
WO2021138605A1 (en) Methods and apparatuses for video coding using triangle partition
WO2020236991A1 (en) Methods and apparatuses for video coding using triangle partition
WO2021003126A1 (en) Methods and apparatuses for video coding using triangle partition