KR102519778B1 - 비디오 코딩에서의 모션 정보 유도 모드 결정 - Google Patents

비디오 코딩에서의 모션 정보 유도 모드 결정 Download PDF

Info

Publication number
KR102519778B1
KR102519778B1 KR1020177026965A KR20177026965A KR102519778B1 KR 102519778 B1 KR102519778 B1 KR 102519778B1 KR 1020177026965 A KR1020177026965 A KR 1020177026965A KR 20177026965 A KR20177026965 A KR 20177026965A KR 102519778 B1 KR102519778 B1 KR 102519778B1
Authority
KR
South Korea
Prior art keywords
motion information
video data
motion
current block
mode
Prior art date
Application number
KR1020177026965A
Other languages
English (en)
Other versions
KR20170131446A (ko
Inventor
샹 리
잉 천
리 장
홍빈 리우
지안레 천
마르타 카르체비츠
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20170131446A publication Critical patent/KR20170131446A/ko
Application granted granted Critical
Publication of KR102519778B1 publication Critical patent/KR102519778B1/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/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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
    • 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/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/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/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/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/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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/57Motion estimation characterised by a search window with variable size or shape
    • 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

예에서, 비디오 데이터를 디코딩하는 방법은, 현재의 블록에 대한 모션 정보를 결정하기 위한 복수의 모션 정보 유도 모드들로부터 모션 정보 유도 모드를 선택하는 단계를 포함하고, 여기서, 복수 중의 각각의 모션 정보 유도 모드는 현재의 블록의 외부의 참조 데이터의 제 2 세트에 대응하는 참조 데이터의 제 1 세트에 대한 모션 탐색을 수행하는 것을 포함하고, 여기서, 모션 정보는 참조 비디오 데이터에 관하여 현재의 블록의 모션을 표시한다. 방법은 또한, 선택된 모션 정보 유도 모드를 이용하여 현재의 블록에 대한 모션 정보를 결정하는 단계를 포함한다. 방법은 또한, 모션 정보를 표현하는 신택스 엘리먼트들을 디코딩하지 않으면서, 결정된 모션 정보를 이용하여 현재의 블록을 디코딩하는 단계를 포함한다.

Description

비디오 코딩에서의 모션 정보 유도 모드 결정
이 출원은 2015 년 3 월 27 일자로 출원된 미국 가출원 제 62/139,572 호 및 2015 년 6 월 19 일자로 출원된 미국 가출원 제 62/182,367 호의 이익을 주장하고, 그 전체 내용들은 참조로 본원에 편입된다.
이 개시물은 비디오 코딩에 관한 것이다.
디지털 비디오 기능들은, 디지털 텔레비전들, 디지털 다이렉트 브로드캐스트 시스템 (digital direct broadcast system) 들, 무선 브로드캐스트 시스템들, 개인 정보 단말 (personal digital assistant; PDA) 들, 랩톱 또는 데스크톱 컴퓨터들, 태블릿 컴퓨터들, 전자책 (e-book) 리더들, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게임용 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 라디오 전화들, 소위 "스마트폰들", 화상 원격회의 디바이스들, 비디오 스트리밍 디바이스들 등을 포함하는 광범위한 디바이스들 내로 편입될 수 있다. 디지털 비디오 디바이스들은 MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Part 10, 진보된 비디오 코딩 (Advanced Video Coding; AVC) 에 의해 정의된 표준들, 고효율 비디오 코딩 (High Efficiency Video Coding; HEVC) 표준, 및 이러한 표준들의 확장들에서 설명된 것들과 같은 비디오 코딩 기법들을 구현한다. 비디오 디바이스들은 이러한 비디오 코딩 기법들을 구현함으로써 디지털 비디오 정보를 더 효율적으로 송신할 수도 있고, 수신할 수도 있고, 인코딩할 수도 있고, 디코딩할 수도 있고, 및/또는 저장할 수도 있다.
비디오 코딩 기법들은 비디오 시퀀스들에 내재된 중복성을 감소시키거나 제거하기 위한 공간적 (인트라-픽처 (intra-picture)) 예측 및/또는 시간적 (인터-픽처 (inter-picture)) 예측을 포함한다. 블록-기반 비디오 코딩을 위하여, 비디오 슬라이스 (예컨대, 비디오 프레임 또는 비디오 프레임의 부분) 는 비디오 블록들로 파티셔닝 (partitioning) 될 수도 있으며, 일부 기법들에 대한 비디오 블록들은 또한, 트리블록 (treeblock) 들, 코딩 유닛 (coding unit; CU) 들, 및/또는 코딩 노드들로서 지칭될 수도 있다. 픽처의 인트라-코딩된 (I) 슬라이스에서의 비디오 블록들은 동일한 픽처에서의 이웃하는 블록들 내의 참조 샘플들에 대한 공간적 예측을 이용하여 인코딩된다. 픽처의 인터-코딩된 (P 또는 B) 슬라이스 내의 비디오 블록들은 동일한 픽처에서의 이웃하는 블록들 내의 참조 샘플들에 대한 공간적 예측, 또는 다른 참조 픽처들에서의 참조 샘플들에 대한 시간적 예측을 이용할 수도 있다. 픽처들은 프레임들로서 지칭될 수도 있고, 참조 픽처들은 참조 프레임들로서 지칭될 수도 있다.
공간적 또는 시간적 예측은 코딩되어야 할 블록에 대한 예측 블록으로 귀착된다. 잔차 데이터 (residual data) 는 코딩되어야 할 원래의 블록과 예측 블록 사이의 픽셀 차이들을 표현한다. 인터-코딩된 블록은 예측 블록을 형성하는 참조 샘플들의 블록을 지시하는 모션 벡터와, 코딩된 블록과 예측 블록과의 사이의 차이를 표시하는 잔차 데이터에 따라 인코딩된다. 인트라-코딩된 블록은 인트라-코딩 모드 및 잔차 데이터에 따라 인코딩된다. 추가의 압축을 위하여, 잔차 데이터는 픽셀 도메인으로부터 변환 도메인으로 변환되어 잔차 변환 계수들로 귀착될 수도 있고, 다음으로, 이들은 양자화될 수도 있다. 초기에 2 차원 어레이로 배치된 양자화된 변환 계수들은 변환 계수들의 1 차원 벡터를 생성하기 위하여 스캔될 수도 있고, 엔트로피 코딩은 훨씬 더 많은 압축을 달성하기 위하여 적용될 수도 있다.
이 개시물의 기법들은 비디오 코딩에서 모션 정보를 유도하는 것에 관한 것이다. 예를 들어, 비디오 코더 (비디오 인코더 또는 비디오 디코더) 는 비트스트림 내에 포함되는 비디오 데이터를 코딩하기 위하여, 비트스트림 내에 포함되지 않은 모션 정보를 생성할 수도 있다. 인코딩 또는 디코딩 루프에서 모션 정보를 유도함으로써, 전통적인 인터-예측 기법들과 같은, 비트스트림에서 모션 정보를 포함하는 기법들에 비해, 비트 절감들이 달성될 수도 있다.
하나의 예에서, 비디오 데이터를 디코딩하는 방법은, 현재의 블록에 대한 모션 정보를 결정하기 위한 복수의 모션 정보 유도 모드들로부터 모션 정보 유도 모드를 선택하는 단계로서, 복수 중의 각각의 모션 정보 유도 모드는 현재의 블록의 외부의 참조 데이터의 제 2 세트에 대응하는 참조 데이터의 제 1 세트에 대한 모션 탐색을 수행하는 것을 포함하고, 모션 정보는 참조 비디오 데이터에 관하여 현재의 블록의 모션을 표시하는, 상기 복수의 모션 정보 유도 모드들로부터 모션 정보 유도 모드를 선택하는 단계, 선택된 모션 정보 유도 모드를 이용하여 현재의 블록에 대한 모션 정보를 결정하는 단계, 및 모션 정보를 표현하는 신택스 엘리먼트들을 디코딩하지 않으면서, 결정된 모션 정보를 이용하여 현재의 블록을 디코딩하는 단계를 포함한다.
또 다른 예에서, 비디오 데이터를 인코딩하는 방법은, 현재의 블록에 대한 모션 정보를 결정하기 위한 복수의 모션 정보 유도 모드들로부터 모션 정보 유도 모드를 선택하는 단계로서, 복수 중의 각각의 모션 정보 유도 모드는 현재의 블록의 외부의 참조 데이터의 제 2 세트에 대응하는 참조 데이터의 제 1 세트에 대한 모션 탐색을 수행하는 것을 포함하고, 모션 정보는 참조 비디오 데이터에 관하여 현재의 블록의 모션을 표시하는, 상기 복수의 모션 정보 유도 모드들로부터 모션 정보 유도 모드를 선택하는 단계, 및 선택된 모션 정보 유도 모드를 이용하여 현재의 블록에 대한 모션 정보를 결정하는 단계, 및 모션 정보를 표현하는 신택스 엘리먼트들을 인코딩하지 않으면서, 결정된 모션 정보를 이용하여 현재의 블록을 인코딩하는 단계를 포함한다.
또 다른 예에서, 비디오 데이터를 코딩하기 위한 디바이스는, 비디오 데이터의 현재의 블록을 저장하도록 구성된 메모리, 및 현재의 블록에 대한 모션 정보를 결정하기 위한 복수의 모션 정보 유도 모드들로부터 모션 정보 유도 모드를 선택하는 것으로서, 복수 중의 각각의 모션 정보 유도 모드는 현재의 블록의 외부의 참조 데이터의 제 2 세트에 대응하는 참조 데이터의 제 1 세트에 대한 모션 탐색을 수행하는 것을 포함하고, 모션 정보는 참조 비디오 데이터에 관하여 현재의 블록의 모션을 표시하는, 상기 복수의 모션 정보 유도 모드들로부터 모션 정보 유도 모드를 선택하고, 선택된 모션 정보 유도 모드를 이용하여 현재의 블록에 대한 모션 정보를 결정하고, 그리고 모션 정보를 표현하는 신택스 엘리먼트들을 코딩하지 않으면서, 결정된 모션 정보를 이용하여 현재의 블록을 코딩하도록 구성된 하나 이상의 프로세서들을 포함한다.
또 다른 예에서, 비디오 데이터를 코딩하기 위한 장치는, 현재의 블록에 대한 모션 정보를 결정하기 위한 복수의 모션 정보 유도 모드들로부터 모션 정보 유도 모드를 선택하기 위한 수단으로서, 복수 중의 각각의 모션 정보 유도 모드는 현재의 블록의 외부의 참조 데이터의 제 2 세트에 대응하는 참조 데이터의 제 1 세트에 대한 모션 탐색을 수행하는 것을 포함하고, 모션 정보는 참조 비디오 데이터에 관하여 현재의 블록의 모션을 표시하는, 상기 복수의 모션 정보 유도 모드들로부터 모션 정보 유도 모드를 선택하기 위한 수단, 선택된 모션 정보 유도 모드를 이용하여 현재의 블록에 대한 모션 정보를 결정하기 위한 수단, 및 모션 정보를 표현하는 신택스 엘리먼트들을 디코딩하지 않으면서, 결정된 모션 정보를 이용하여 현재의 블록을 코딩하기 위한 수단을 포함한다.
또 다른 예에서, 비-일시적 컴퓨터-판독가능 매체는, 실행될 경우, 하나 이상의 프로세서들로 하여금, 현재의 블록에 대한 모션 정보를 결정하기 위한 복수의 모션 정보 유도 모드들로부터 모션 정보 유도 모드를 선택하게 하는 것으로서, 복수 중의 각각의 모션 정보 유도 모드는 현재의 블록의 외부의 참조 데이터의 제 2 세트에 대응하는 참조 데이터의 제 1 세트에 대한 모션 탐색을 수행하는 것을 포함하고, 모션 정보는 참조 비디오 데이터에 관하여 현재의 블록의 모션을 표시하는, 상기 복수의 모션 정보 유도 모드들로부터 모션 정보 유도 모드를 선택하게 하고, 선택된 모션 정보 유도 모드를 이용하여 현재의 블록에 대한 모션 정보를 결정하게 하고, 그리고 모션 정보를 표현하는 신택스 엘리먼트들을 디코딩하지 않으면서, 결정된 모션 정보를 이용하여 현재의 블록을 코딩하게 하는 그 상에 저장된 명령들을 가진다.
또 다른 예에서, 비디오 데이터를 프로세싱하는 방법은, 비디오 데이터의 현재의 블록의 모션 정보를 유도하기 위한 후보 모션 벡터를 결정하는 단계로서, 모션 정보는 참조 비디오 데이터에 관하여 현재의 블록의 모션을 표시하는, 상기 후보 모션 벡터를 결정하는 단계, 및 결정된 후보 모션 벡터에 기초하여 현재의 블록에 대한 유도된 모션 벡터를 결정하는 단계로서, 유도된 모션 벡터를 결정하는 단계는 현재의 블록의 외부의 참조 데이터의 제 2 세트에 대응하는 참조 데이터의 제 1 세트에 대한 모션 탐색을 수행하는 단계를 포함하는, 상기 유도된 모션 벡터를 결정하는 단계를 포함한다.
또 다른 예에서, 비디오 데이터를 프로세싱하기 위한 디바이스는, 비디오 데이터의 현재의 블록을 저장하도록 구성된 메모리, 및 비디오 데이터의 현재의 블록의 모션 정보를 유도하기 위한 후보 모션 벡터를 결정하는 것으로서, 모션 정보는 참조 비디오 데이터에 관하여 현재의 블록의 모션을 표시하는, 상기 후보 모션 벡터를 결정하고, 그리고 결정된 후보 모션 벡터에 기초하여 현재의 블록에 대한 유도된 모션 벡터를 결정하는 것으로서, 유도된 모션 벡터를 결정하는 것은 현재의 블록의 외부의 참조 데이터의 제 2 세트에 대응하는 참조 데이터의 제 1 세트에 대한 모션 탐색을 수행하는 것을 포함하는, 상기 유도된 모션 벡터를 결정하도록 구성된 하나 이상의 프로세서들을 포함한다.
또 다른 예에서, 비디오 데이터를 프로세싱하기 위한 장치는, 비디오 데이터의 현재의 블록의 모션 정보를 유도하기 위한 후보 모션 벡터를 결정하기 위한 수단으로서, 모션 정보는 참조 비디오 데이터에 관하여 현재의 블록의 모션을 표시하는, 상기 후보 모션 벡터를 결정하기 위한 수단, 및 결정된 후보 모션 벡터에 기초하여 현재의 블록에 대한 유도된 모션 벡터를 결정하기 위한 수단으로서, 유도된 모션 벡터를 결정하기 위한 수단은 현재의 블록의 외부의 참조 데이터의 제 2 세트에 대응하는 참조 데이터의 제 1 세트에 대한 모션 탐색을 수행하기 위한 수단을 포함하는, 상기 유도된 모션 벡터를 결정하기 위한 수단을 포함한다.
또 다른 예에서, 비-일시적 컴퓨터-판독가능 매체는, 실행될 경우, 하나 이상의 프로세서들로 하여금, 비디오 데이터의 현재의 블록의 모션 정보를 유도하기 위한 후보 모션 벡터를 결정하게 하는 것으로서, 모션 정보는 참조 비디오 데이터에 관하여 현재의 블록의 모션을 표시하는, 상기 후보 모션 벡터를 결정하게 하고, 그리고 결정된 후보 모션 벡터에 기초하여 현재의 블록에 대한 유도된 모션 벡터를 결정하게 하는 것으로서, 유도된 모션 벡터를 결정하기 위하여, 명령들은 하나 이상의 프로세서들로 하여금, 현재의 블록의 외부의 참조 데이터의 제 2 세트에 대응하는 참조 데이터의 제 1 세트에 대한 모션 탐색을 수행하게 하는, 상기 유도된 모션 벡터를 결정하게 하는 그 상에 저장된 명령들을 가진다.
또 다른 예에서, 비디오 데이터를 프로세싱하는 방법은, 비디오 데이터의 현재의 블록을, 현재의 블록의 모션 정보를 유도하기 위한 복수의 서브-블록들로 분할하는 단계로서, 모션 정보는 참조 비디오 데이터에 관하여 현재의 블록의 모션을 표시하는, 상기 비디오 데이터의 현재의 블록을 복수의 서브-블록들로 분할하는 단계, 복수의 서브-블록들의 각각의 개개의 서브-블록에 대하여 별도로, 각각의 개개의 서브-블록의 외부의 참조 데이터의 제 2 세트에 대응하는 참조 데이터의 제 1 세트에 대한 모션 탐색을 수행하는 것을 포함하는 모션 정보를 유도하는 단계, 및 모션 정보를 표현하는 신택스 엘리먼트들을 디코딩하지 않으면서, 유도된 모션 정보에 기초하여 복수의 서브-블록들을 디코딩하는 단계를 포함한다.
또 다른 예에서, 비디오 데이터를 프로세싱하는 방법은, 비디오 데이터의 현재의 블록을, 현재의 블록의 모션 정보를 유도하기 위한 복수의 서브-블록들로 분할하는 단계로서, 모션 정보는 참조 비디오 데이터에 관하여 현재의 블록의 모션을 표시하는, 상기 비디오 데이터의 현재의 블록을 복수의 서브-블록들로 분할하는 단계, 복수의 서브-블록들의 각각의 개개의 서브-블록에 대하여 별도로, 각각의 개개의 서브-블록의 외부의 참조 데이터의 제 2 세트에 대응하는 참조 데이터의 제 1 세트에 대한 모션 탐색을 수행하는 것을 포함하는 모션 정보를 유도하는 단계, 및 모션 정보를 표현하는 신택스 엘리먼트들을 인코딩하지 않으면서, 유도된 모션 정보에 기초하여 복수의 서브-블록들을 인코딩하는 단계를 포함한다.
또 다른 예에서, 비디오 데이터를 프로세싱하기 위한 디바이스는, 비디오 데이터의 현재의 블록을 저장하도록 구성된 메모리, 및 비디오 데이터의 현재의 블록을, 현재의 블록의 모션 정보를 유도하기 위한 복수의 서브-블록들로 분할하는 것으로서, 모션 정보는 참조 비디오 데이터에 관하여 현재의 블록의 모션을 표시하는, 상기 비디오 데이터의 현재의 블록을 복수의 서브-블록들로 분할하고, 복수의 서브-블록들의 각각의 개개의 서브-블록에 대하여 별도로, 각각의 개개의 서브-블록의 외부의 참조 데이터의 제 2 세트에 대응하는 참조 데이터의 제 1 세트에 대한 모션 탐색을 수행하는 것을 포함하는 모션 정보를 유도하고, 그리고 모션 정보를 표현하는 신택스 엘리먼트들을 코딩하지 않으면서, 유도된 모션 정보에 기초하여 복수의 서브-블록들을 코딩하도록 구성된 하나 이상의 프로세서들을 포함한다.
또 다른 예에서, 비-일시적 컴퓨터-판독가능 매체는, 실행될 경우, 하나 이상의 프로세서들로 하여금, 비디오 데이터의 현재의 블록을, 현재의 블록의 모션 정보를 유도하기 위한 복수의 서브-블록들로 분할하게 하는 것으로서, 모션 정보는 참조 비디오 데이터에 관하여 현재의 블록의 모션을 표시하는, 상기 비디오 데이터의 현재의 블록을 복수의 서브-블록들로 분할하게 하고, 복수의 서브-블록들의 각각의 개개의 서브-블록에 대하여 별도로, 각각의 개개의 서브-블록의 외부의 참조 데이터의 제 2 세트에 대응하는 참조 데이터의 제 1 세트에 대한 모션 탐색을 수행하는 것을 포함하는 모션 정보를 유도하게 하고, 그리고 모션 정보를 표현하는 신택스 엘리먼트들을 디코딩하지 않으면서, 유도된 모션 정보에 기초하여 복수의 서브-블록들을 디코딩하게 하는 그 상에 저장된 명령들을 가진다.
또 다른 예에서, 비디오 데이터를 프로세싱하기 위한 디바이스는, 현재의 픽처를 저장하도록 구성된 메모리, 및 복수의 코딩된 픽처들을 포함하는 인코딩된 비트스트림을 획득하고, 인코딩된 비트스트림 내에 포함되지 않은 하나 이상의 참조 픽처들을 보간하고, 그리고 보간된 하나 이상의 참조 픽처들에 기초하여 인코딩된 비트스트림의 현재의 픽처의 비디오 데이터를 디코딩하도록 구성된 하나 이상의 프로세서들을 포함한다.
개시물의 하나 이상의 예들의 세부 사항들은 동반된 도면들 및 이하의 설명에서 기재된다. 다른 특징들, 목적들, 및 장점들은 설명 , 도면들, 및 청구항들로부터 명백할 것이다.
도 1 은 이 개시물의 기법들을 구현할 수도 있는 일 예의 비디오 인코딩 및 디코딩 시스템을 예시하는 블록도이다.
도 2 는 이 개시물의 기법들을 구현할 수도 있는 비디오 인코더의 예를 예시하는 블록도이다.
도 3 은 이 개시물의 기법들을 구현할 수도 있는 비디오 디코더의 예를 예시하는 블록도이다.
도 4a 및 도 4b 는 병합 모드 및 진보된 모션 벡터 예측 (advanced motion vector prediction; AMVP) 모드에 대한 일 예의 공간적으로 이웃하는 모션 벡터 후보들을 예시하는 개념도들이다.
도 5a 및 도 5b 는 일 예의 시간적 모션 벡터 예측자 (temporal motion vector predictor; TMVP) 후보 및 모션 벡터 스케일링을 예시하는 개념도들이다.
도 6 은 프레임 레이트 업-변환 (frame rate up-conversion; FRUC) 에서의 일방적 모션 추정 (motion estimation; ME) 의 예를 예시하는 개념도이다.
도 7 은 FRUC 에서의 쌍방적 모션 추정 (ME) 의 예를 예시하는 개념도이다.
도 8 은 템플릿 정합 기반 디코더측 모션 벡터 유도 (decoder side motion vector derivation; DMVD) 의 예를 예시하는 개념도이다.
도 9 는 DMVD 에서의 미러 기반 양방향 모션 벡터 유도의 예를 예시하는 개념도이다.
도 10 은 확장된 쌍방적 정합 기반 모션 벡터 유도를 예시하는 개념도이다.
도 11 은 DMVD 를 이용하여 예측 유닛 (prediction unit; PU) 을 디코딩하는 예를 예시하는 플로우차트이다.
도 12 는 비디오 데이터의 블록을 코딩하기 위한 모션 정보 유도 모드를 결정하기 위한 일 예의 프로세스를 예시하는 플로우차트이다.
도 13 은 비디오 데이터의 블록을 코딩하기 위한 모션 벡터를 유도하기 위한 일 예의 프로세스를 예시하는 플로우차트이다.
도 14 는 비디오 데이터의 블록의 서브-블록들에 대한 모션 정보를 유도하기 위한 일 예의 프로세스를 예시하는 플로우차트이다.
이 개시물의 기법들은 볼륵 기반 비디오 코딩에서의 디코더측 모션 정보 유도, 블록 파티션, 및/또는 비디오 데이터 보간에 관한 것이다. 기법들은 고효율 비디오 코딩 (HEVC) 과 같은 현존하는 비디오 코덱들 중의 임의의 것에 적용될 수도 있거나, 임의의 미래의 비디오 코딩 표준들을 위한 효율적인 코딩 툴일 수도 있다.
비디오 코딩 디바이스들은 비디오 데이터를 효율적으로 인코딩하고 디코딩하기 위한 비디오 압축 기법들을 구현한다. 비디오 압축 기법들은 비디오 시퀀스들에 내재된 중복성을 감소시키거나 제거하기 위한 공간적 예측 (예컨대, 인트라-프레임 예측), 시간적 예측 (예컨대, 인터-프레임 예측), 및/또는 다른 예측 기법들을 적용하는 것을 포함할 수도 있다. 비디오 인코더는 전형적으로, 원래의 비디오 시퀀스의 각각의 픽처를 (이하에서 더욱 상세하게 설명된) 비디오 블록들 또는 코딩 유닛들로서 지칭된 직사각형 영역들로 파티셔닝한다. 이 비디오 블록들은 특정한 예측 모드를 이용하여 인코딩될 수도 있다.
인터-예측 모드들에 대하여, 비디오 인코더는 전형적으로, 참조 프레임으로서 지칭된, 또 다른 시간적 로케이션에서의 프레임에서 인코딩되고 있는 것과 유사한 블록을 탐색한다. 비디오 인코더는 탐색을, 인코딩되어야 할 블록으로부터의 어떤 공간적 변위로 한정할 수도 있다. 최상의 정합은 수평 변위 컴포넌트 및 수직 변위 컴포넌트를 포함하는 2 차원 (2D) 모션 벡터를 이용하여 위치될 수도 있다. 인트라-예측 모드에 대하여, 비디오 인코더는 동일한 픽처 내의 이전의 인코딩된 이웃하는 블록들로부터의 데이터에 기초하여 공간적 예측 기법들을 이용하여 예측된 블록을 형성할 수도 있다.
비디오 인코더는 예측 에러, 즉, 인코딩되고 있는 블록 및 예측된 블록에서의 픽셀 값들 사이의 차이 (또한, 잔차로서 지칭됨) 를 결정할 수도 있다. 비디오 인코더는 또한, 변환 계수들을 생성하기 위하여, 이산 코사인 변환 (discrete cosine transform; DCT) 과 같은 변환을 예측 에러에 적용할 수도 있다. 변환 후, 비디오 인코더는 변환 계수들을 양자화할 수도 있다. 양자화된 변환 계수들 및 모션 벡터들은 신택스 엘리먼트들을 이용하여 표현될 수도 있고, 제어 정보와 함께, 비디오 시퀀스의 코딩된 표현을 형성할 수도 있다. 일부 사례들에서, 비디오 인코더는 신택스 엘리먼트들을 엔트로피 코딩할 수도 있음으로써, 그 표현을 위하여 필요하게 된 비트들의 수를 추가로 감소시킬 수도 있다.
비디오 디코더는 위에서 논의된 신택스 엘리먼트들 및 제어 정보를 이용하여, 현재의 프레임을 디코딩하기 위한 예측 데이터 (예컨대, 예측 블록) 를 구성할 수도 있다. 예를 들어, 비디오 디코더는 예측된 블록 및 압축된 예측 에러를 가산할 수도 있다. 비디오 디코더는 양자화된 계수들을 이용하여 변환 기초 함수들을 가중화함으로써 압축된 예측 에러를 결정할 수도 있다. 복원된 프레임과 원래의 프레임과의 사이의 차이는 복원 에러로 칭해진다.
일부 사례들에서, 비디오 디코더 또는 포스트-프로세싱 디바이스는 하나 이상의 참조 픽처들에 기초하여 픽처들을 보간할 수도 있다. 이러한 보간된 픽처들은 인코딩된 비트스트림 내에 포함되지 않는다. 비디오 디코더 또는 포스트-프로세싱 디바이스는 인코딩된 비트스트림의 원래의 프레임 레이트를 업-변환하기 위하여 픽처들을 보간할 수도 있다. 이 프로세스는 프레임 레이트 업-변환 (FRUC) 으로서 지칭될 수도 있다. 대안적으로, 비디오 디코더 또는 포스트-프로세싱 디바이스는 감소된 프레임 레이트에서 비디오 시퀀스를 인코딩하기 위해 비디오 인코더에 의해 스킵 (skip) 되었던 하나 이상의 픽처들을 삽입하기 위하여 픽처들을 보간할 수도 있다. 어느 하나의 경우에 있어서, 비디오 디코더 또는 포스트-프로세싱 디바이스는 비디오 디코더에 의해 수신되었던 인코딩된 비트스트림 내에 포함되지 않은 프레임들을 보간한다. 비디오 디코더 또는 포스트-프로세싱 디바이스는 다수의 보간 기법들 중의 임의의 것을 이용하여, 예컨대, 모션 보상된 프레임 보간, 프레임 반복, 또는 프레임 평균화를 이용하여 픽처들을 보간할 수도 있다.
픽처들을 보간하기 위한 어떤 기법들은 업-변환의 목적들을 위하여 이용되었지만, 이러한 기법들은 예컨대, 인코딩된 비트스트림 내에 포함되는 비디오 데이터를 코딩하기 위하여, 비디오 코딩 동안에 널리 이용되지 않았다. 예를 들어, 픽처들을 보간하기 위한 기법들은 비교적 시간 집약적일 수도 있고 및/또는 비교적 큰 양의 프로세싱 파워를 요구할 수도 있다. 따라서, 이러한 기법들은 전형적으로, 비디오 데이터를 디코딩할 때에 인-루프 (in-loop) 에서 수행되지 않았다.
이 개시물의 양태들에 따르면, 비디오 코더 (예컨대, 비디오 인코더 또는 비디오 디코더) 는 비트스트림을 코딩할 때에 모션 정보를 유도할 수도 있다. 예를 들어, 비디오 코더는 비트스트림 내에 포함되는 비디오 데이터를 코딩하기 위하여, 비트스트림 내에 포함되지 않은 모션 정보를 생성할 수도 있다. 인코딩 또는 디코딩 루프에서 모션 정보를 유도함으로써, (상기 언급된 인터-예측 기법들과 같은) 비트스트림에서 모션 정보를 포함하는 기법들에 비해, 비트 절감들이 달성될 수도 있다.
이 개시물의 일부 양태들에 따르면, 비디오 코더는 코딩 동안에 복수의 모션 정보 유도 기법들을 사용할 수도 있다. 이러한 예들에서, 비디오 코더는 현재의 블록에 대한 모션 정보를 결정할 때에 어느 모션 정보 유도 기법들을 이용할 것인지를 결정하기 위하여, 모션 정보 유도 모드를 결정할 수도 있다. 일반적으로, 모션 정보를 유도하기 위하여 모션 정보 유도 모드를 이용하는 것은 현재의 블록의 외부의 참조 데이터의 제 2 세트에 대응하는 참조 데이터의 제 1 세트에 대한 모션 탐색을 수행하는 것을 포함할 수도 있다. 예를 들어, 모션 정보 유도 모드 (예컨대, 이하에서 더욱 상세하게 설명된 바와 같은, 쌍방적 정합 기법, 템플릿 정합 기법, 또는 또 다른 기법) 를 이용하면, 비디오 코더는 모션 벡터 후보들의 리스트에서 모션 벡터 후보를 선택할 수도 있다. 비디오 코더는 (참조 데이터의 "최상의 정합" 을 결정하는 것으로서 지칭될 수도 있는) 현재의 픽처의 데이터와 비교적 근접하게 정합하는 참조 픽처에서의 참조 데이터를 식별하는 모션 벡터 후보에 기초하여 모션 벡터 후보를 선택할 수도 있다.
일부 사례들에서, 비디오 코더는 참조 픽처에서 탐색 윈도우를 식별하기 위하여 선택된 모션 벡터 후보를 이용할 수도 있다. 비디오 코더는 현재의 픽처에서의 대응하는 데이터와 비교적 근접하게 정합하는 탐색 윈도우에서의 참조 데이터에 기초하여 모션 벡터 후보를 세분화할 수도 있다. 즉, 비디오 코더는 현재의 픽처에서의 데이터와 근접하게 정합하는 탐색 윈도우에서의 참조 데이터 사이의 모션에 기초하여 현재의 블록에 대한 새로운 모션 정보를 유도할 수도 있다. 다음으로, 비디오 코더는 유도된 모션 정보를 이용하여 현재의 블록에 대한 모션 보상을 수행할 수도 있다. 이러한 방법으로, 비디오 코더는 모션 정보가 인코딩된 비트스트림으로 시그널링되지 않으면서, 현재의 블록에 대한 모션 정보를 유도할 수도 있다.
이 개시물의 양태들에 따르면, 일부 예들에서, 비디오 코더는 모션 정보를 유도할 때에, 비디오 데이터의 블록을 서브-블록들로 분할할 수도 있다. 예를 들어, 비디오 코더는 더 큰 블록의 각각의 서브-블록에 대한 모션 정보를 별도로 유도할 수도 있다. 일부 사례들에서, 비디오 코더는 블록에 대한 모션 정보를 초기에 결정할 수도 있고, 유도된 모션 정보를 서브-블록들의 각각에 대한 후보 모션 정보로서 이용할 수도 있다. 비디오 코더는 예컨대, 모션 정보 유도 모드 (예컨대, 이하에서 더욱 상세하게 설명된 바와 같은, 쌍방적 정합 기법, 템플릿 정합 기법, 또는 또 다른 기법) 를 이용하여 서브-블록들의 각각에 대한 유도된 모션 정보를 추가로 세분화할 수도 있다.
이 개시물의 기법들은 또한, 픽처들을 보간하기 위한 기법들을 포함할 수도 있다. 일부 사례들에서, 상기 기법들의 임의의 조합은 예컨대, 프레임 레이트 업-변환과 유사하게, 비트스트림 내에 포함되지 않은 픽처를 보간하기 위하여 이용될 수도 있다. 그러나, 보간된 픽처를 비디오 시퀀스에 간단하게 추가하는 것이 아니라, 비디오 디코더는 코딩 동안에 보간된 프레임을 이용할 수도 있다. 예를 들어, 비디오 디코더는 보간된 픽처의 적어도 부분에 기초하여 현재의 픽처의 데이터를 디코딩할 수도 있다. 일부 사례들에서, 비디오 디코더는 보간된 픽처를 현재의 픽처와 동일하게 설정할 수도 있다. 예를 들어, 비디오 디코더는 비트스트림 내에 포함되는 현재의 픽처에 대한 신택스 데이터 (예컨대, 슬라이스 헤더 데이터 등) 를 디코딩할 수도 있고, 픽처를 보간할 수도 있고, 보간된 픽처를 현재의 픽처로서 설정할 수도 있다. 다른 사례들에서, 비디오 디코더는 픽처를 보간할 수도 있고, 보간된 픽처에 관하여 현재의 픽처에 대한 데이터를 디코딩할 수도 있다. 이 사례에서, 비디오 디코더는 예측의 목적들을 위하여 보간된 픽처를 참조 픽처 메모리에 추가할 수도 있다.
이 때문에, FRUC 를 참조하여 본원에서 설명된 어떤 기법들은 일부 예들에서, (예컨대, 디코더-측 모션 정보 유도 프로세스에서) 모션 정보를 결정하기 위하여 이용될 수도 있다. 다른 예들에서, FRUC 를 참조하여 본원에서 설명된 기법들은 예컨대, 비디오 데이터를 코딩하기 위한 참조를 위하여, 또는 출력을 위하여, 비디오 데이터를 보간하기 위하여 이용될 수도 있다.
도 1 은 모션 정보를 유도하고, 블록 파티셔닝을 수행하고, 및/또는 비디오 데이터를 보간하기 위한 기법들을 사용할 수도 있는 일 예의 비디오 인코딩 및 디코딩 시스템 (10) 을 예시하는 블록도이다. 도 1 에서 도시된 바와 같이, 시스템 (10) 은 목적지 디바이스 (14) 에 의해 더 이후의 시간에 디코딩되어야 할 인코딩된 비디오 데이터를 제공하는 소스 디바이스 (12) 를 포함한다. 특히, 소스 디바이스 (12) 는 컴퓨터-판독가능 매체 (16) 를 통해 비디오 데이터를 목적지 디바이스 (14) 에 제공한다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는, 데스크톱 컴퓨터들, 노트북 (즉, 랩톱) 컴퓨터들, 태블릿 컴퓨터들, 셋톱 (set-top) 박스들, 소위 "스마트" 폰들과 같은 전화 핸드셋들, 소위 "스마트" 패드들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게임용 콘솔들, 비디오 스트리밍 디바이스들 등을 포함하는 광범위한 디바이스들 중의 임의의 것을 포함할 수도 있다. 일부 경우들에는, 소스 디바이스 (12) 및 목적지 디바이스 (14) 가 무선 통신을 위하여 구비될 수도 있다.
목적지 디바이스 (14) 는 컴퓨터-판독가능 매체 (16) 를 통해, 디코딩되어야 할 인코딩된 비디오 데이터를 수신할 수도 있다. 컴퓨터-판독가능 매체 (16) 는 인코딩된 비디오 데이터를 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 이동시킬 수 있는 임의의 타입의 매체 또는 디바이스를 포함할 수도 있다. 하나의 예에서, 컴퓨터-판독가능 매체 (16) 는 소스 디바이스 (12) 가 인코딩된 비디오 데이터를 실시간으로 목적지 디바이스 (14) 로 직접 송신하는 것을 가능하게 하기 위한 통신 매체를 포함할 수도 있다. 인코딩된 비디오 데이터는 무선 통신 프로토콜과 같은 통신 표준에 따라 변조될 수도 있고, 목적지 디바이스 (14) 로 송신될 수도 있다. 통신 매체는 라디오 주파수 (radio frequency; RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들과 같은 임의의 무선 또는 유선 통신 매체를 포함할 수도 있다. 통신 매체는 로컬 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷-기반 네트워크의 일부를 형성할 수도 있다. 통신 매체는 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 가능하게 하기 위해 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다.
일부 예들에서, 인코딩된 데이터는 출력 인터페이스 (22) 로부터 저장 디바이스로 출력될 수도 있다. 유사하게, 인코딩된 데이터는 입력 인터페이스에 의해 저장 디바이스로부터 액세스될 수도 있다. 저장 디바이스는 하드 드라이브, 블루-레이 (Blu-ray) 디스크들, DVD 들, CD-ROM 들, 플래시 메모리, 휘발성 또는 비-휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적당한 디지털 저장 매체들과 같은, 다양한 분산되거나 국소적으로 액세스된 데이터 저장 매체들 중의 임의의 것을 포함할 수도 있다. 추가의 예에서, 저장 디바이스는 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오를 저장할 수도 있는 파일 서버 또는 또 다른 중간 저장 디바이스에 대응할 수도 있다. 목적지 디바이스 (14) 는 스트리밍 또는 다운로드를 통해 저장 디바이스로부터 저장된 비디오 데이터를 액세스할 수도 있다. 파일 서버는 인코딩된 비디오 데이터를 저장할 수 있으며 그 인코딩된 비디오 데이터를 목적지 디바이스 (14) 로 송신할 수 있는 임의의 타입의 서버일 수도 있다. 일 예의 파일 서버들은 (예컨대, 웹사이트를 위한) 웹 서버, FTP 서버, 네트워크 부착 스토리지 (network attached storage; NAS) 디바이스들, 또는 로컬 디스크 드라이브를 포함한다. 목적지 디바이스 (14) 는 인터넷 접속을 포함하는 임의의 표준 데이터 접속을 통해 인코딩된 비디오 데이터를 액세스할 수도 있다. 이것은, 파일 서버 상에 저장된 인코딩된 비디오 데이터를 액세스하기 위해 적당한 무선 채널 (예컨대, Wi-Fi 접속), 유선 접속 (예컨대, DSL, 케이블 모뎀 등), 또는 양자의 조합을 포함할 수도 있다. 저장 디바이스로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 그 조합일 수도 있다.
이 개시물의 기법들은 무선 애플리케이션들 또는 세팅들로 반드시 제한되는 것은 아니다. 기법들은 오버-디-에어 (over-the-air) 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, HTTP 를 통한 동적 적응 스트리밍 (dynamic adaptive streaming over HTTP; DASH) 과 같은 인터넷 스트리밍 비디오 송신들, 데이터 저장 매체 상으로 인코딩되는 디지털 비디오, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩, 또는 다른 애플리케이션들과 같은, 다양한 멀티미디어 애플리케이션들 중의 임의의 것의 지원 하에서 비디오 코딩에 적용될 수도 있다. 일부 예들에서, 시스템 (10) 은 비디오 스트리밍, 비디오 재생, 비디오 브로드캐스팅, 및/또는 화상 통화 (video telephony) 와 같은 애플리케이션들을 지원하기 위하여 일방향 (one-way) 또는 양방향 (two-way) 비디오 송신을 지원하도록 구성될 수도 있다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20), 및 출력 인터페이스 (22) 를 포함한다. 목적지 디바이스 (14) 는 입력 인터페이스 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 포함한다. 이 개시물에 따르면, 소스 디바이스 (12) 의 비디오 인코더 (20) 는 모션 정보를 유도하고, 블록 파티셔닝을 수행하고, 및/또는 비디오 데이터를 보간하기 위한 기법들을 적용하도록 구성될 수도 있다. 다른 예들에서, 소스 디바이스 및 목적지 디바이스는 다른 컴포넌트들 또는 배열들을 포함할 수도 있다. 예를 들어, 소스 디바이스 (12) 는 외부 카메라와 같은 외부 비디오 소스 (18) 로부터 비디오 데이터를 수신할 수도 있다. 마찬가지로, 목적지 디바이스 (14) 는 통합된 디스플레이 디바이스를 포함하는 것이 아니라, 외부 디스플레이 디바이스와 인터페이스할 수도 있다.
도 1 의 예시된 시스템 (10) 은 단지 하나의 예이다. 모션 정보를 유도하고, 블록 파티셔닝을 수행하고, 및/또는 비디오 데이터를 보간하기 위한 기법들은 임의의 디지털 비디오 인코딩 및/또는 디코딩 디바이스에 의해 수행될 수도 있다. 일반적으로, 이 개시물의 기법들은 비디오 인코딩 디바이스에 의해 수행되지만, 기법들은 또한, "CODEC" 으로서 전형적으로 지칭된 비디오 인코더/디코더에 의해 수행될 수도 있다. 또한, 이 개시물의 기법들은 또한, 비디오 프리프로세서 (video preprocessor) 에 의해 수행될 수도 있다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는, 소스 디바이스 (12) 가 목적지 디바이스 (14) 로의 송신을 위한 코딩된 비디오 데이터를 생성하는 이러한 코딩 디바이스들의 단지 예들이다. 일부 예들에서, 디바이스들 (12, 14) 은, 디바이스들 (12, 14) 의 각각이 비디오 인코딩 및 디코딩 컴포넌트들을 포함하도록 실질적으로 대칭적인 방식으로 동작할 수도 있다. 이 때문에, 시스템 (10) 은 예컨대, 비디오 스트리밍, 비디오 재생, 비디오 브로드캐스팅, 또는 화상 통화를 위하여, 비디오 디바이스들 (12, 14) 사이의 일방향 또는 양방향 비디오 송신을 지원할 수도 있다.
소스 디바이스 (12) 의 비디오 소스 (18) 는 비디오 카메라와 같은 비디오 캡처 디바이스, 이전에 캡처된 비디오를 포함하는 비디오 아카이브 (video archive), 및/또는 비디오 컨텐츠 제공자로부터 비디오를 수신하기 위한 비디오 공급 인터페이스를 포함할 수도 있다. 추가의 대안으로서, 비디오 소스 (18) 는 소스 비디오로서, 또는 라이브 비디오 (live video), 아카이빙된 비디오 (archived video), 및 컴퓨터-생성된 비디오의 조합으로서, 컴퓨터 그래픽-기반 (computer graphics-based) 데이터를 생성할 수도 있다. 일부 경우들에는, 비디오 소스 (18) 가 비디오 카메라일 경우, 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 소위 카메라 폰들 또는 비디오 폰들을 형성할 수도 있다. 그러나, 위에서 언급된 바와 같이, 이 개시물에서 설명된 기법들은 일반적으로 비디오 코딩에 적용가능할 수도 있고, 무선 및/또는 유선 애플리케이션들에 적용될 수도 있다. 각각의 경우에 있어서, 캡처된, 프리-캡처된 (pre-captured), 또는 컴퓨터-생성된 비디오는 비디오 인코더 (20) 에 의해 인코딩될 수도 있다. 다음으로, 인코딩된 비디오 정보는 출력 인터페이스 (22) 에 의해 컴퓨터-판독가능 매체 (16) 상으로 출력될 수도 있다.
컴퓨터-판독가능 매체 (16) 는 무선 브로드캐스트 또는 유선 네트워크 송신과 같은 순시적 매체 (transient medium) 들, 또는 하드 디스크, 플래시 드라이브, 컴팩트 디스크, 디지털 비디오 디스크, 블루-레이 디스크, 또는 다른 컴퓨터-판독가능 매체들과 같은 저장 매체들 (즉, 비-일시적 저장 매체들) 을 포함할 수도 있다. 일부 예들에서, 네트워크 서버 (도시되지 않음) 는 예컨대, 네트워크 송신을 통해, 소스 디바이스 (12) 로부터 인코딩된 비디오 데이터를 수신할 수도 있으며 인코딩된 비디오 데이터를 목적지 디바이스 (14) 에 제공할 수도 있다. 유사하게, 디스크 스탬핑 (disc stamping) 설비와 같은 매체 생산 설비의 컴퓨팅 디바이스는 소스 디바이스 (12) 로부터 인코딩된 비디오 데이터를 수신할 수도 있고, 인코딩된 비디오 데이터를 포함하는 디스크를 생산할 수도 있다. 그러므로, 컴퓨터-판독가능 매체 (16) 는 다양한 예들에서, 다양한 형태들의 하나 이상의 컴퓨터-판독가능 매체들을 포함하는 것으로 이해될 수도 있다.
목적지 디바이스 (14) 의 입력 인터페이스 (28) 는 컴퓨터-판독가능 매체 (16) 로부터 정보를 수신한다. 컴퓨터-판독가능 매체 (16) 의 정보는, 블록들 및 다른 코딩된 유닛들, 예컨대, GOP 들의 특성들 및/또는 프로세싱을 설명하는 신택스 엘리먼트들을 포함하는 신택스 정보로서, 비디오 인코더 (20) 에 의해 정의되며 또한, 비디오 디코더 (30) 에 의해 이용되는 상기 신택스 정보를 포함할 수도 있다. 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 음극선관 (cathode ray tube; CRT), 액정 디스플레이 (liquid crystal display; LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (organic light emitting diode; OLED) 디스플레이, 또는 또 다른 타입의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들 중의 임의의 것을 포함할 수도 있다.
도 1 에서 도시되지 않았지만, 일부의 양태들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 각각 오디오 인코더 및 디코더와 통합될 수도 있고, 공통의 데이터 스트림 또는 별도의 데이터 스트림들에서 오디오 및 비디오 양자의 인코딩을 핸들링하기 위한 적절한 MUX-DEMUX 유닛들, 또는 다른 하드웨어 및 소프트웨어를 포함할 수도 있다. 적용가능한 경우, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜, 또는 사용자 데이터그램 프로토콜 (user datagram protocol; UDP) 과 같은 다른 프로토콜들을 준수할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 는 각각, 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서 (digital signal processor; DSP) 들, 애플리케이션 특정 집적 회로 (application specific integrated circuit; ASIC) 들, 필드 프로그래밍가능한 게이트 어레이 (field programmable gate array; FPGA) 들, 개별 로직, 소프트웨어, 하드웨어, 펌웨어 또는 그 임의의 조합들과 같은 다양한 적당한 인코더 회로부 중의 임의의 것으로서 구현될 수도 있다. 기법들이 소프트웨어로 부분적으로 구현될 때, 디바이스는 소프트웨어를 위한 명령들을 적당한 비-일시적인 컴퓨터-판독가능한 매체에 저장할 수도 있고, 이 개시물의 기법들을 수행하기 위하여 하나 이상의 프로세서들을 이용하여 명령들을 하드웨어로 실행할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 의 각각은 하나 이상의 인코더들 또는 디코더들 내에 포함될 수도 있고, 인코더들 또는 디코더들 중의 어느 하나는 조합된 인코더/디코더 (combined encoder/decoder; CODEC) 의 일부로서 각각의 디바이스 내에 통합될 수도 있다.
이 개시물은 일반적으로, 비디오 인코더 (20) 가 어떤 정보를 비디오 디코더 (30) 와 같은 또 다른 디바이스로 "시그널링하는 것" 을 지칭할 수도 있다. 용어 "시그널링" 은 일반적으로, 압축된 비디오 데이터를 디코딩하기 위하여 이용된 신택스 엘리먼트들 및/또는 다른 데이터의 통신을 지칭할 수도 있다. 이러한 통신은 실시간 또는 실시간에 근접하게 발생할 수도 있다. 대안적으로, 이러한 통신은, 인코딩 시에 인코딩된 비트스트림으로, 신택스 엘리먼트들을 컴퓨터-판독가능 저장 매체에 저장하고, 다음으로, 이러한 신택스 엘리먼트들이 이 매체에 저장된 후의 임의의 시간에 디코딩 디바이스에 의해 취출 (retrieve) 될 수도 있을 때에 발생할 수도 있는 것과 같이, 시간의 기간에 걸쳐 발생할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 는 비디오 코딩 표준들에 따라 동작할 수도 있다. ITU-T 비디오 코딩 전문 그룹 (Video Coding Experts Group; VCEG) 및 ISO/IEC 모션 픽처 전문가 그룹 (Motion Picture Experts Group; MPEG) 의 비디오 코딩에 관한 합동 협력팀 (Joint Collaboration Team on Video Coding; JCT-VC) 뿐만 아니라, 3D 비디오 코딩 확장 개발에 관한 합동 협력팀 (Joint Collaboration Team on 3D Video Coding Extension Development; JCT-3V) 에 의해 개발된 일 예의 비디오 코딩 표준들은 그 범위 확장, 멀티뷰 확장 (multiview extension; MV-HEVC), 및 스케일러블 확장 (scalable extension; SHVC) 을 포함하는 고효율 비디오 코딩 (HEVC) 또는 ITU-T H.265 를 포함한다. 완결된 표준 문서는 "ITU-T H.265, SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS Infrastructure of audiovisual services - Coding of moving video - High efficiency video coding (오디오비주얼 및 멀티미디어 시스템들, 오디오비주얼 서비스들의 기반구조 - 동화상의 코딩 - 고효율 비디오 코딩)", 국제 전기통신 연합 (ITU) 의 전기통신 표준화 섹터, 2013 년 4 월자로서 발표되어 있다. 대안적으로, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 그 스케일러블 비디오 코딩 (Scalable Video Coding; SVC) 확장 및 멀티뷰 비디오 코딩 (Multiview Video Coding; MVC) 확장을 포함하는 ISO/IEC MPEG-4 비주얼 (Visual) 및 ITU-T H.264 (또한, ISO/IEC MPEG-4 AVC 로서 알려짐) 와 같은 다른 독점 또는 산업 표준들에 따라 동작할 수도 있다. 그러나, 이 개시물의 기법들은 임의의 특정한 코딩 표준으로 제한되지는 않는다. 예를 들어, 이 개시물의 기법들은 다양한 다른 독점 또는 비-독점 비디오 코딩 기법들 또는 ITU-T H.266 과 같은 추후의 표준들과 함께 이용될 수도 있다.
위에서 언급된 바와 같이, 인터-예측 모드들에 대하여, 비디오 인코더 (20) 는 참조 픽처로서 지칭된, 또 다른 시간적 로케이션의 픽처에서 인코딩되고 있는 것 ("현재의 블록") 과 유사한 블록을 탐색할 수도 있다. 참조 픽처를 식별하기 위하여 이용된 정보는 모션 정보로서 지칭될 수도 있다. 예를 들어, 각각의 블록에 대하여, 모션 정보의 세트가 이용가능할 수 있다. 모션 정보의 세트는 순방향 및 역방향 예측 방향들에 대한 모션 정보를 포함한다. 여기서, 순방향 및 역방향 예측 방향들은 양방향 예측 모드의 2 개의 예측 방향들이고, 용어들 "순방향" 및 "역방향" 은 기하학적 의미를 반드시 가지지는 않으며; 그 대신에, 그것들은 현재의 픽처의 참조 픽처 리스트 0 (RefPicList0) 및 참조 픽처 리스트 1 (RefPicList1) 에 대응한다. 오직 하나의 참조 픽처 리스트가 픽처 또는 슬라이스에 대해 이용가능할 때, 오직 RefPicList0 가 이용가능하고, 슬라이스의 각각의 블록의 모션 정보는 항상 순방향이다.
일부 경우들에는, 그 참조 인덱스와 함께 모션 벡터가 디코딩 프로세스들에서 이용되고, 연관된 참조 인덱스를 갖는 이러한 모션 벡터는 모션 정보의 단방향-예측 세트로서 나타내어진다.
각각의 예측 방향에 대하여, 모션 정보는 참조 인덱스 및 모션 벡터를 포함해야 한다. 일부 경우들에는, 단순화를 위하여, 모션 벡터 자체는 그것이 연관된 참조 인덱스를 가지는 것으로 가정되는 방법으로 지칭될 수도 있다. 참조 인덱스는 현재의 참조 픽처 리스트 (RefPicList0 또는 RefPicList1) 에서 참조 픽처를 식별하기 위하여 이용된다. 모션 벡터는 수평 및 수직 컴포넌트를 가진다.
픽처 순서 카운트 (picture order count; POC) 는 픽처의 디스플레이 순서를 식별하기 위하여 비디오 코딩 표준들에서 널리 이용된다. 하나의 코딩된 비디오 시퀀스 내의 2 개의 픽처들이 동일한 POC 값을 가질 수도 있는 경우들이 있지만, 그것은 전형적으로 코딩된 비디오 시퀀스 내에서 발생하지 않는다. 다수의 코딩된 비디오 시퀀스들이 비트스트림에서 존재할 때, POC 의 동일한 값을 갖는 픽처들은 디코딩 순서의 측면에서 서로 더욱 근접할 수도 있다. 픽처들의 POC 값들은 전형적으로, 참조 픽처 리스트 구성, HEVC 에서와 같은 참조 픽처 세트의 유도, 및 모션 벡터 스케일링을 위하여 이용된다.
H.264/AVC 에서는, 각각의 인터 매크로블록 (MB) 이: 하나의 16x16 MB 파티션; 2 개의 16x8 MB 파티션들; 2 개의 8x16 MB 파티션들; 및 4 개의 8x8 MB 파티션들을 포함하는 4 개의 상이한 방법들로 파티셔닝될 수도 있다. 하나의 MB 에서의 상이한 MB 파티션들은 각각의 방향에 대해 상이한 참조 인덱스 값들을 가질 수도 있다 (RefPicList0 또는 RefPicList1). MB 가 4 개의 8x8 MB 파티션들로 파티셔닝되지 않을 때, MB 는 각각의 방향에서 각각의 MB 파티션에 대해 오직 하나의 모션 벡터를 가진다.
MB 가 4 개의 8x8 MB 파티션들로 파티셔닝될 때, 각각의 8x8 MB 파티션은 서브-블록들로 추가로 파티셔닝될 수 있고, 이러한 서브-블록들의 각각은 각각의 방향에서 상이한 모션 벡터를 가질 수 있다. 하나의 8x8 서브-블록; 2 개의 8x4 서브-블록들; 2 개의 4x8 서브-블록들; 및 4 개의 4x4 서브-블록들을 포함하는, 8x8 MB 파티션으로부터 서브-블록들을 얻기 위한 4 개의 상이한 방법들이 있다. 각각의 서브-블록은 각각의 방향에서 상이한 모션 벡터를 가질 수 있다. 그러므로, 모션 벡터는 서브-블록과 동일 내지 더 높은 레벨에서 존재한다.
AVC 에서, 시간적 직접 모드는 B 슬라이스들 내의 스킵 또는 직접 모드들에 대한 MB 또는 MB 파티션 레벨의 어느 하나에서 인에이블될 수 있다. 각각의 MB 파티션에 대하여, 현재의 블록의 RefPicList1[ 0 ] 에서의 현재의 MB 파티션과 공동위치된 (co-located) 블록의 모션 벡터들은 모션 벡터들을 유도하기 위하여 이용된다. 공동위치된 블록에서의 각각의 모션 벡터는 POC 거리들에 기초하여 스케일링된다. AVC 에서, 직접 모드는 또한, 공간적 이웃들로부터 모션 정보를 예측할 수 있고, 이것은 공간적 직접 모드로서 지칭될 수도 있다.
HEVC 에서, 픽처의 인코딩된 표현을 생성하기 위하여, 비디오 인코더 (20) 는 코딩 트리 유닛 (coding tree unit; CTU) 들의 세트를 생성할 수도 있다. CTU 들의 각각은 루마 샘플들의 코딩 트리 블록 (coding tree block; CTB), 크로마 샘플들의 2 개의 대응하는 CTB 들, 및 CTB 들의 샘플들을 코딩하기 위하여 이용된 신택스 구조들을 포함할 수도 있다. 단색 픽처들, 또는 3 개의 별도의 컬러 평면들을 가지는 픽처들에서는, CTU 가 단일 CTB 블록과, 코딩 트리 블록의 샘플들을 코딩하기 위하여 이용된 신택스 구조들을 포함할 수도 있다.
코딩 트리 블록은 샘플들의 NxN 블록일 수도 있다. (기술적으로, 8x8 CTB 크기들이 지원될 수 있지만) CTB 의 크기는 HEVC 주요 프로파일에서 16x16 으로부터 64x64 까지의 범위일 수 있다. 코딩 유닛 (coding unit; CU) 은 CTB 와 동일한 크기일 수 있지만, 그리고 8x8 만큼 작을 수 있다. 각각의 코딩 유닛은 하나의 모드로 코딩된다. CTU 는 또한, "트리 블록" 또는 "최대 코딩 유닛 (largest coding unit)" (LCU) 으로서 지칭될 수도 있다. HEVC 의 CTU 들은 H.264/AVC 와 같은 다른 표준들의 매크로블록들과 대략 유사할 수도 있다. 그러나, CTU 는 반드시 특정한 크기로 제한되는 것은 아니고, 하나 이상의 코딩 유닛 (CU) 들을 포함할 수도 있다. 슬라이스는 래스터 스캔 순서 (raster scan order) 로 연속으로 순서화된 정수 (integer number) 의 CTU 들을 포함할 수도 있다.
코딩된 CTU 를 생성하기 위하여, 비디오 인코더 (20) 는 코딩 트리 블록들을 코딩 블록들, 이 때문에, 명칭 "코딩 트리 유닛들" 로 분할하기 위하여, CTU 의 코딩 트리 블록들에 대해 쿼드-트리 파티셔닝 (quad-tree partitioning) 을 재귀적으로 수행할 수도 있다. 코딩 블록은 샘플들의 NxN 블록일 수도 있다. CU 는, 루마 샘플들의 코딩 블록과, 루마 샘플 어레이, Cb 샘플 어레이, 및 Cr 샘플 어레이를 가지는 픽처의 크로마 샘플들의 2 개의 대응하는 코딩 블록들과, 코딩 블록들의 샘플들을 코딩하기 위하여 이용된 신택스 구조들을 포함할 수도 있다. 단색 픽처들, 또는 3 개의 별도의 컬러 평면들을 가지는 픽처들에서는, CU 가 단일 코딩 블록과, 코딩 블록의 샘플들을 코딩하기 위하여 이용된 신택스 구조들을 포함할 수도 있다.
비디오 인코더 (20) 는 CU 의 코딩 블록을 하나 이상의 예측 블록들로 파티셔닝할 수도 있다. 예측 블록은 동일한 예측이 적용되는 샘플들의 직사각형 (즉, 정사각형 또는 비-정사각형) 블록이다. CU 의 예측 유닛 (PU) 은 루마 샘플들의 예측 블록, 크로마 샘플들의 2 개의 대응하는 예측 블록들, 및 예측 블록들을 예측하기 위하여 이용된 신택스 구조들을 포함할 수도 있다. 단색 픽처들, 또는 3 개의 별도의 컬러 평면들을 가지는 픽처들에서는, PU 가 단일 예측 블록과, 예측 블록을 예측하기 위하여 이용된 신택스 구조들을 포함할 수도 있다. 비디오 인코더 (20) 는 CU 의 각각의 PU 의 루마, Cb, 및 Cr 예측 블록들에 대한 예측 루마, Cb, 및 Cr 블록들을 생성할 수도 있다.
비디오 인코더 (20) 는 PU 에 대한 예측 블록들을 생성하기 위하여 인트라 예측 또는 인터 예측을 이용할 수도 있다. 비디오 인코더 (20) 가 PU 의 예측 블록들을 생성하기 위하여 인트라 예측을 이용할 경우, 비디오 인코더 (20) 는 PU 와 연관된 픽처의 디코딩된 샘플들에 기초하여 PU 의 예측 블록들을 생성할 수도 있다. 비디오 인코더 (20) 가 PU 의 예측 블록들을 생성하기 위하여 인터 예측을 이용할 경우, 비디오 인코더 (20) 는 PU 와 연관된 픽처 이외의 하나 이상의 픽처들의 디코딩된 샘플들에 기초하여 PU 의 예측 블록들을 생성할 수도 있다. CU 가 인터 코딩될 때, CU 는 2 개 또는 4 개의 PU 들로 추가로 파티셔닝될 수도 있다. 2 개의 PU 들이 하나의 CU 에서 존재할 때, PU 들은 일부 사례들에서, CU 의 1/4 또는 3/4 크기를 갖는 1/2 크기 직사각형들 또는 2 직사각형 크기일 수도 있다.
비디오 인코더 (20) 가 CU 의 하나 이상의 PU 들에 대한 예측 루마, Cb, 및 Cr 블록들을 생성한 후, 비디오 인코더 (20) 는 CU 에 대한 루마 잔차 블록 (luma residual block) 을 생성할 수도 있다. CU 의 루마 잔차 블록에서의 각각의 샘플은 CU 의 예측 루마 블록들 중의 하나에서의 루마 샘플과, CU 의 원래의 루마 코딩 블록에서의 대응하는 샘플과의 사이의 차이를 표시한다. 게다가, 비디오 인코더 (20) 는 CU 에 대한 Cb 잔차 블록을 생성할 수도 있다. CU 의 Cb 잔차 블록에서의 각각의 샘플은 CU 의 예측 Cb 블록들 중의 하나에서의 Cb 샘플과, CU 의 원래의 Cb 코딩 블록에서의 대응하는 샘플과의 사이의 차이를 표시할 수도 있다. 비디오 인코더 (20) 는 또한, CU 에 대한 Cr 잔차 블록을 생성할 수도 있다. CU 의 Cr 잔차 블록에서의 각각의 샘플은 CU 의 예측 Cr 블록들 중의 하나에서의 Cr 샘플과, CU 의 원래의 Cr 코딩 블록에서의 대응하는 샘플과의 사이의 차이를 표시할 수도 있다.
또한, 비디오 인코더 (20) 는 CU 의 루마, Cb 및 Cr 잔차 블록들을 하나 이상의 루마, Cb 및 Cr 변환 블록들로 분해하기 위하여 쿼드-트리 파티셔닝을 이용할 수도 있다. 변환 블록은 동일한 변환이 적용되는 샘플들의 직사각형 (예컨대, 정사각형 또는 비-정사각형) 블록이다. CU 의 변환 유닛 (TU) 은 루마 샘플들의 변환 블록, 크로마 샘플들의 2 개의 대응하는 변환 블록들, 및 변환 블록 샘플들을 변환하기 위하여 이용된 신택스 구조들을 포함할 수도 있다. 이에 따라, CU 의 각각의 TU 는 루마 변환 블록, Cb 변환 블록, 및 Cr 변환 블록과 연관될 수도 있다. TU 와 연관된 루마 변환 블록은 CU 의 루마 잔차 블록의 서브-블록 (sub-block) 일 수도 있다. Cb 변환 블록은 CU 의 Cb 잔차 블록의 서브-블록일 수도 있다. Cr 변환 블록은 CU 의 Cr 잔차 블록의 서브-블록일 수도 있다. 단색 픽처들, 또는 3 개의 별도의 컬러 평면들을 가지는 픽처들에서는, TU 가 단일 변환 블록과, 변환 블록의 샘플들을 변환하기 위하여 이용된 신택스 구조들을 포함할 수도 있다.
비디오 인코더 (20) 는 TU 에 대한 루마 계수 블록을 생성하기 위하여 하나 이상의 변환들을 TU 의 루마 변환 블록에 적용할 수도 있다. 계수 블록은 변환 계수들의 2 차원 어레이일 수도 있다. 변환 계수는 스칼라량 (scalar quantity) 일 수도 있다. 비디오 인코더 (20) 는 TU 에 대한 Cb 계수 블록을 생성하기 위하여 하나 이상의 변환들을 TU 의 Cb 변환 블록에 적용할 수도 있다. 비디오 인코더 (20) 는 TU 에 대한 Cr 계수 블록을 생성하기 위하여 하나 이상의 변환들을 TU 의 Cr 변환 블록에 적용할 수도 있다.
계수 블록 (예컨대, 루마 계수 블록, Cb 계수 블록, 또는 Cr 계수 블록) 을 생성한 후, 비디오 인코더 (20) 는 계수 블록을 양자화할 수도 있다. 양자화는 일반적으로, 변환 계수들을 표현하기 위하여 이용된 데이터의 양을 가능한 대로 감소시키기 위하여 변환 계수들이 양자화되어 추가의 압축을 제공하는 프로세스를 지칭한다. 비디오 인코더 (20) 가 계수 블록을 양자화한 후, 비디오 인코더 (20) 는 양자화된 변환 계수들을 표시하는 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 양자화된 변환 계수들을 표시하는 신택스 엘리먼트들에 대해 컨텍스트-적응 2진 산술 코딩 (Context-Adaptive Binary Arithmetic Coding; CABAC) 을 수행할 수도 있다.
비디오 인코더 (20) 는 코딩된 픽처들 및 연관된 데이터의 표현을 형성하는 비트들의 시퀀스를 포함하는 비트스트림을 출력할 수도 있다. 비트스트림은 네트워크 추상화 계층 (network abstraction layer; NAL) 유닛들의 시퀀스를 포함할 수도 있다. NAL 유닛은 에뮬레이션 방지 비트들이 필요에 따라 산재된 원시 바이트 시퀀스 페이로드 (RBSP) 의 형태로, NAL 유닛에서의 데이터의 타입의 표시 및 그 데이터를 포함하는 바이트들을 포함하는 신택스 구조이다. NAL 유닛들의 각각은 NAL 유닛 헤더를 포함하고 RBSP 를 캡슐화 (encapsulate) 한다.
상이한 타입들의 NAL 유닛들은 상이한 타입들의 RBSP 들을 캡슐화할 수도 있다. 예를 들어, NAL 유닛의 제 1 타입은 픽처 파라미터 세트 (PPS) 에 대한 RBSP 를 캡슐화할 수도 있고, NAL 유닛의 제 2 타입은 코딩된 슬라이스에 대한 RBSP 를 캡슐화할 수도 있고, NAL 유닛의 제 3 타입은 SEI 에 대한 RBSP 를 캡슐화할 수도 있는 등과 같다. (파라미터 세트들 및 SEI 메시지들에 대한 RBSP들과 대조적으로) 비디오 코딩 데이터에 대한 RBSP들을 캡슐화하는 NAL 유닛들은 비디오 코딩 계층 (video coding layer; VCL) NAL 유닛들로서 지칭될 수도 있다.
비디오 디코더 (30) 는 비디오 인코더 (20) 에 의해 생성된 비트스트림을 수신할 수도 있다. 게다가, 비디오 디코더 (30) 는 비트스트림으로부터 신택스 엘리먼트들을 획득하기 위하여 비트스트림을 파싱 (parse) 할 수도 있다. 비디오 디코더 (30) 는 비트스트림으로부터 획득된 신택스 엘리먼트들에 적어도 부분적으로 기초하여 비디오 데이터의 픽처들을 복원할 수도 있다. 비디오 데이터를 복원하기 위한 프로세스는 비디오 인코더 (20) 에 의해 수행된 프로세스와 일반적으로 상반적일 수도 있다. 게다가, 비디오 디코더 (30) 는 현재의 CU 의 TU 들과 연관된 계수 블록들을 역양자화할 수도 있다. 비디오 디코더 (30) 는 현재의 CU 의 TU 들과 연관된 변환 블록들을 복원하기 위하여 계수 블록들에 대해 역변환들을 수행할 수도 있다. 비디오 디코더 (30) 는 현재의 CU 의 PU 들에 대한 예측 블록들의 샘플들을 현재의 CU 의 TU 들의 변환 블록들의 대응하는 샘플들에 추가함으로써, 현재의 CU 의 코딩 블록들을 복원할 수도 있다. 픽처의 각각의 CU 에 대한 코딩 블록들을 복원함으로써, 비디오 디코더 (30) 는 픽처를 복원할 수도 있다.
CU 가 인터 코딩될 때, 모션 정보의 하나의 세트는 각각의 PU 에 대해 존재한다. 게다가, 각각의 PU 는 모션 정보의 세트를 유도하기 위하여 고유의 인터-예측 모드로 코딩된다. HEVC 표준에서는, 예측 유닛 (PU) 에 대한 병합 (스킵은 병합의 특수한 경우로서 고려됨) 및 진보된 모션 벡터 예측 (AMVP) 모드들로 각각 명명된 2 개의 인터 예측 모드들이 있다.
AMVP 또는 병합 모드의 어느 하나에서는, 모션 벡터 (motion vector; MV) 후보 리스트가 다수의 모션 벡터 예측자 (motion vector predictor) 들에 대하여 유지된다. 현재의 PU 의 모션 벡터 (들) 뿐만 아니라, 병합 모드에서의 참조 인덱스들도 MV 후보 리스트로부터 하나의 후보를 취함으로써 생성된다.
MV 후보 리스트는 병합 모드에 대한 5 개에 이르는 후보들과, AMVP 모드에 대한 2 개의 후보들을 포함한다. 병합 후보는 모션 정보의 세트, 예컨대, 참조 픽처 리스트들 (리스트 0 및 리스트 1) 및 참조 인덱스들의 양자에 대응하는 모션 벡터들을 포함할 수도 있다. 병합 후보가 병합 인덱스에 의해 식별될 경우, 참조 픽처들은 현재의 블록들의 예측을 위하여 이용될 뿐만 아니라, 연관된 모션 벡터들이 결정된다. 그러나, 리스트 0 또는 리스트 1 의 어느 하나로부터의 각각의 잠재적인 예측 방향에 대한 AMVP 모드 하에서는, AMVP 후보가 모션 벡터만을 포함하므로, MV 후보 리스트에 대한 MVP 인덱스와 함께, 참조 인덱스가 명시적으로 시그널링될 필요가 있다. AMVP 모드에서는, 예측된 모션 벡터들이 추가로 세분화될 수 있다.
위에서 알 수 있는 바와 같이, 병합 후보는 모션 정보의 완전한 세트에 대응하는 반면, AMVP 후보는 특정 예측 방향 및 참조 인덱스에 대하여 단지 하나의 모션 벡터를 포함한다. 양자의 모드들에 대한 후보들은 이하의 도 4 및 도 5 에 대하여 설명된 바와 같이, 동일한 공간적 및 시간적 이웃하는 블록들로부터 유사하게 유도된다.
이 개시물의 양태들에 따르면, 이하에서 더욱 상세하게 설명된 바와 같이, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 모션 정보를 유도하고, 블록 파티셔닝을 수행하고, 및/또는 비디오 데이터를 보간하기 위한 본원에서 설명된 기법들의 임의의 조합을 수행하도록 구성될 수도 있다. 모션 정보 유도에 대하여, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 현재의 블록의 외부의 참조 데이터의 제 2 세트에 대응하는 참조 데이터의 제 1 세트에 대한 모션 탐색을 수행함으로써 모션 정보를 유도하도록 구성될 수도 있다. 대응관계는 참조 데이터 사이의 유사도의 양에 기초하여 결정될 수도 있고, "정합" 또는 "최상의 정합" 을 결정하는 것으로서 본원에서 지칭될 수도 있다.
일부 예들에서, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 초기에, 모션 유도 프로세스가 인에이블되는지 여부를 표시하는 하나 이상의 신택스 엘리먼트들을 코딩할 수도 있다. 일부 사례들에서, 하나 이상의 신택스 엘리먼트들은 위에서 설명된 병합 모드와 같은 또 다른 모드와 함께 편입될 수도 있다. 예를 들어, 도 10 의 예에 대하여 더욱 상세하게 설명된 바와 같이, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 모션 유도를 수행할 것인지 여부를 표시하는 병합 모드 (예컨대, 플래그, 병합 후보 리스트에서의 인덱스 등) 를 수행할 때에 하나 이상의 신택스 엘리먼트들을 코딩한다.
모션 유도가 인에이블되는 사례들에서는, 이 개시물의 양태들에 따르면, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 가 패턴-정합된 모션 벡터 유도를 수행할 수도 있다. 예를 들어, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 복수의 모션 정보 유도 모드들로부터 어느 모션 정보 유도 모드를 적용할 것인지를 표시하는 하나 이상의 신택스 엘리먼트들을 코딩할 수도 있다. 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 2 개의 모션 유도 정보 모드들 사이를 구별하기 위한 플래그, 또는 2 개를 초과하는 모션 정보 유도 모드들 사이를 구별하기 위한 인덱스를 코딩할 수도 있다. 본원에서 설명된 바와 같이, 일 예의 패턴 정합된 모션 정보 유도 모드들은 쌍방적 정합 또는 템플릿 정합을 포함한다.
모션 유도 프로세스 동안에는, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 가 선택된 모션 유도 프로세스에 기초하여 전체적인 블록 (예컨대, 전체 PU) 에 대한 초기 모션 벡터를 유도할 수도 있다. 예를 들어, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 병합 모드와 연관된 후보 리스트로부터의 모션 벡터들을 이용할 수도 있고, 후보 리스트로부터의 어느 모션 벡터가 최상의 정합으로 귀착되는지를 결정할 수도 있다. 즉, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 후보 리스트로부터의 어느 모션 벡터가, 선택된 모션 유도 프로세스에서 이용될 때, 현재의 블록의 외부의 참조 데이터, 예컨대, 현재의 픽처 또는 또 다른 참조 픽처에서의 데이터와 근접하게 정합하는 참조 데이터의 제 2 세트에 대응하는 참조 데이터의 제 1 세트로 귀착되는지를 결정할 수도 있다. 일반적으로, "최상의 정합" 은 픽셀 차이들의 측면에서 가장 유사한 비디오 데이터를 지칭할 수도 있다.
예시의 목적을 위한 예로서, 도 8 에 대하여 더욱 상세하게 설명된 바와 같이, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 템플릿 정합 모션 정보 유도 모드를 선택할 수도 있다. 이 예에서, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 참조 픽처에서의 템플릿과 가장 근접하게 정합하는 템플릿으로 귀착되는 최다 벡터 후보에 기초하여 병합 모드로부터 모션 벡터 후보를 선택할 수도 있다. 예를 들어, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 현재의 블록의 외부의 참조 데이터의 제 2 세트에 대응하는 참조 데이터의 제 1 세트에 대한 모션 탐색을 수행하도록 구성될 수도 있고, 여기서, 데이터의 제 1 세트는 현재의 픽처에서의 템플릿을 포함하고, 참조 데이터의 제 2 세트는 참조 픽처에서의 템플릿을 포함한다. 일부 사례들에서, 이하에서 더욱 상세하게 설명된 바와 같이, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 추가적으로 또는 대안적으로, 최소 정합 코스트 (minimum matching cost) 에 기초하여 후보 모션 벡터를 선택할 수도 있다.
이 개시물의 양태들에 따르면, 후보 모션 벡터를 결정한 후, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 현재의 블록에 대한 모션 정보를 유도하기 위하여 후보 모션 벡터를 추가로 세분화할 수도 있다. 예를 들어, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 후보 모션 벡터에 의해 표시된 참조 픽처의 미리 정의된 구역에서 탐색 (예컨대, 모션 정보 유도 모드를 이용한 탐색) 을 수행할 수도 있다. 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 현재의 픽처의 비디오 데이터와의 최상의 정합 및/또는 최소 정합 코스트를 가지는 미리 정의된 구역에서 참조 데이터를 표시하는 모션 벡터에 기초하여 현재의 블록에 대한 모션 정보를 유도할 수도 있다.
일부 사례들에서, 이 개시물의 양태들에 따르면, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 모션 정보를 유도할 때에, 비디오 데이터의 블록을 서브-블록들로 분할할 수도 있다. 예를 들어, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 더 큰 블록의 각각의 서브-블록에 대한 모션 정보를 별도로 유도할 수도 있다. 일부 사례들에서, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 (예컨대, 상기 설명된 프로세스를 이용하여) 블록에 대하여 유도된 모션 정보를, 서브-블록들의 각각에 대한 후보 모션 정보로서 이용할 수도 있다. 다음으로, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 예컨대, 특정한 모션 정보 유도 모드 (예컨대, 이하에서 더욱 상세하게 설명된 바와 같은, 쌍방적 정합 기법, 템플릿 정합 기법, 또는 또 다른 기법) 를 이용하여 서브-블록들의 각각에 대한 유도된 모션 정보를 추가로 세분화할 수도 있다.
도 2 는 모션 정보를 유도하고, 블록 파티셔닝을 수행하고, 및/또는 비디오 데이터를 보간하기 위한 기법들을 구현할 수도 있는 비디오 인코더 (20) 의 예를 예시하는 블록도이다. 비디오 인코더 (20) 는 비디오 슬라이스들 내의 비디오 블록들의 인트라-코딩 및 인터-코딩을 수행할 수도 있다. 인트라-코딩은 소정의 비디오 프레임 또는 픽처 내의 비디오에서의 공간적 중복성을 감소시키거나 제거하기 위하여 공간적 예측에 의존한다. 인터-코딩은 비디오 시퀀스의 인접한 프레임들 또는 픽처들 내에서의 비디오에 있어서의 시간적 중복성을 감소시키거나 제거하기 위하여 시간적 예측에 의존한다. 인트라-모드 (I 모드) 는 몇몇 공간 기반 코딩 모드들 중의 임의의 것을 지칭할 수도 있다. 단방향 예측 (P 모드) 또는 양방향-예측 (B 모드) 과 같은 인터-모드들은 몇몇 시간-기반 코딩 모드들 중의 임의의 것을 지칭할 수도 있다.
도 2 에서 도시된 바와 같이, 비디오 인코더 (20) 는 인코딩되어야 할 비디오 프레임 내의 현재의 비디오 블록을 수신한다. 도 2 의 예에서, 비디오 인코더 (20) 는 비디오 데이터 메모리 (38), 모드 선택 유닛 (40), 참조 픽처 메모리 (64), 합산기 (50), 변환 프로세싱 유닛 (52), 양자화 유닛 (54), 및 엔트로피 인코딩 유닛 (56) 을 포함한다. 모드 선택 유닛 (40) 은 궁극적으로, 모션 보상 유닛 (44), 모션 추정 유닛 (42), 인트라 예측 유닛 (46), 및 파티션 유닛 (48) 을 포함한다. 비디오 블록 복원을 위하여, 비디오 인코더 (20) 는 또한, 역양자화 유닛 (58), 역변환 유닛 (60), 및 합산기 (62) 를 포함한다. 디블록킹 필터 (deblocking filter; 도 2 에서 도시되지 않음) 는 또한, 블록 경계들을 필터링하여 복원된 비디오로부터 블록화 아티팩트 (blockiness artifact) 들을 제거하기 위하여 포함될 수도 있다. 희망하는 경우, 디블록킹 필터는 전형적으로 합산기 (62) 의 출력을 필터링할 것이다. (루프 내의 또는 루프 이후의) 추가적인 필터들은 또한, 디블록킹 필터에 추가하여 이용될 수도 있다. 이러한 필터들은 간결함을 위하여 도시되어 있지 않지만, 희망하는 경우, (인-루프 (in-loop) 필터로서) 합산기 (50) 의 출력을 필터링할 수도 있다.
인코딩 프로세스 동안, 비디오 인코더 (20) 는 코딩되어야 할 비디오 프레임 또는 슬라이스를 수신한다. 프레임 또는 슬라이스는 다수의 비디오 블록들로 분할될 수도 있다. 비디오 데이터 메모리 (38) 는 비디오 인코더 (20) 의 컴포넌트들에 의해 인코딩되어야 할 비디오 데이터를 저장할 수도 있다. 비디오 데이터 메모리 (38) 내에 저장된 비디오 데이터는 예를 들어, 비디오 소스 (18) 로부터 획득될 수도 있다. 참조 픽처 메모리 (64) 는 예컨대, 인트라-코딩 또는 인터-코딩 모드들에서 비디오 인코더 (20) 에 의해 비디오 데이터를 인코딩함에 있어서의 이용을 위한 참조 비디오 데이터를 저장하는 DPB 로서 지칭될 수도 있다. 비디오 데이터 메모리 (38) 및 참조 픽처 버퍼 (64) 는 동기식 DRAM (synchronous DRAM; SDRAM) 을 포함하는 동적 랜덤 액세스 메모리 (dynamic random access memory; DRAM), 자기저항 RAM (magnetoresistive RAM; MRAM), 저항 RAM (resistive RAM; RRAM), 또는 다른 타입들의 메모리 디바이스들과 같은 다양한 메모리 디바이스들 중의 임의의 것에 의해 형성될 수도 있다. 비디오 데이터 메모리 (38) 및 참조 픽처 메모리 (64) 는 동일한 메모리 디바이스 또는 별도의 메모리 디바이스들에 의해 제공될 수도 있다. 다양한 예들에서, 비디오 데이터 메모리 (38) 는 비디오 인코더 (20) 의 다른 컴포넌트들과 온-칩 (on-chip) 일 수도 있거나, 그 컴포넌트들에 관하여 오프-칩 (off-chip) 일 수도 있다.
모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 시간적 예측을 제공하기 위하여, 하나 이상의 참조 프레임들 내의 하나 이상의 블록들에 관하여 수신된 비디오 블록의 인터-예측 코딩을 수행한다. 인트라 예측 유닛 (46) 은 대안적으로, 공간적 예측을 제공하기 위하여, 코딩되어야 할 블록과 동일한 프레임 또는 슬라이스에서의 하나 이상의 이웃하는 블록들에 관하여 수신된 비디오 블록의 인트라-예측 코딩을 수행할 수도 있다. 비디오 인코더 (20) 는 예컨대, 비디오 데이터의 각각의 블록에 대한 적절한 코딩 모드를 선택하기 위하여, 다수의 코딩 패스 (coding pass) 들을 수행할 수도 있다.
또한, 파티션 유닛 (48) 은 이전의 코딩 패스들에서의 이전의 파티셔닝 방식들의 평가에 기초하여, 비디오 데이터의 블록들을 서브-블록들로 파티셔닝할 수도 있다. 예를 들어, 파티션 유닛 (48) 은 초기에, 프레임 또는 슬라이스를 LCU 들로 파티셔닝할 수도 있고, 레이트-왜곡 (rate-distortion) 분석 (예컨대, 레이트-왜곡 최적화) 에 기초하여 LCU 들의 각각을 서브-CU 들로 파티셔닝할 수도 있다. 모드 선택 유닛 (40) 은 서브-CU 들로의 LCU 의 파티셔닝을 표시하는 쿼드트리 데이터 구조를 추가로 생성할 수도 있다. 쿼드트리의 리프-노드 CU 들은 하나 이상의 PU 들 및 하나 이상의 TU 들을 포함할 수도 있다.
모드 선택 유닛 (40) 은 예컨대, 에러 결과들에 기초하여 코딩 모드들 중의 하나, 인트라 또는 인터를 선택할 수도 있고, 결과적인 인트라-코딩된 또는 인터-코딩된 블록을, 잔차 블록 데이터를 생성하기 위하여 합산기 (50) 에, 그리고 참조 프레임으로서의 이용을 위한 인코딩된 블록을 복원하기 위하여 합산기 (62) 에 제공한다. 모드 선택 유닛 (40) 은 또한, 모션 벡터들, 인트라-모드 표시자들, 파티션 정보, 및 다른 이러한 신택스 정보와 같은 신택스 엘리먼트들을 엔트로피 인코딩 유닛 (56) 에 제공한다.
모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 고도로 통합될 수도 있지만, 개념적인 목적들을 위하여 별도로 예시되어 있다. 모션 추정 유닛 (42) 에 의해 수행된 모션 추정은 비디오 블록들에 대한 모션을 추정하는 모션 벡터들을 생성하는 프로세스이다. 예를 들어, 모션 벡터는 현재의 프레임 (또는 다른 코딩된 유닛) 내에서 코딩되고 있는 현재의 블록에 대한 참조 프레임 (또는 다른 코딩된 유닛) 내의 예측 블록에 관하여 현재의 비디오 프레임 또는 픽처 내의 비디오 블록의 PU 의 변위를 표시할 수도 있다. 예측 블록은, 절대차의 합 (sum of absolute difference; SAD), 제곱차의 합 (sum of square difference; SSD), 또는 다른 차이 메트릭들에 의해 결정될 수도 있는 픽셀 차이의 측면에서, 코딩되어야 할 블록과 근접하게 정합하는 것으로 구해지는 블록이다.
일부 예들에서, 비디오 인코더 (20) 는 블록의 모션 벡터를 결정하기 위하여 고속 모션 탐색을 수행할 수도 있다. 예를 들어, Lurng-Kuo Liu, Ephraim Feig, "A block-based gradient descent search algorithm for block motion estimation in video coding (비디오 코딩에서의 블록 모션 추정을 위한 블록-기반 그래디언트 하강 탐색 알고리즘)", IEEE Trans. Circuits Syst. Video Technol., vol. 6, pp, 419-422, Aug.1996 에서 설명된 바와 같은 블록-기반 그래디언트 하강 탐색 (Block-Based Gradient Descent Search; BBGDS), 예를 들어, Jo Yew Tham, Surendra Ranganath, Maitreya Ranganath, 및 Ashraf Ali Kassim, "A novel unrestricted center-biased diamond search algorithm for block motion estimation (블록 모션 추정을 위한 신규한 비한정된 중심-바이어싱된 다이아몬드 탐색 알고리즘)", IEEE Trans. Circuits Syst. Video Technol., vol. 8, pp. 369-377, Aug. 1998 에서 설명된 바와 같은 비한정된 중심-바이어싱된 다이아몬드 탐색 (Unrestricted Center-Biased Diamond Search; UCBDS), 및 예를 들어, Ce Zhu, Xiao Lin, 및 Lap-Pui Chau, " Hexagon-Based Search Pattern for Fast Block Motion Estimation (고속 블록 모션 추정을 위한 6각형-기반 탐색 패턴)", IEEE Trans. Circuits Syst. Video Technol., vol. 12, pp. 349-355, May 2002 에서 설명된 바와 같은 6각형-기반 탐색 (HEXagon-Based Search; HEBS) 과 같은, 문헌에서 제안된 다수의 고속 모션 탐색 방법이 있다. 기본적으로, 이 기법들은 미리 정의된 탐색 패턴들에 기초하여 탐색 윈도우 내부의 어떤 수의 위치들을 오직 탐색하는 것을 포함한다. 이 기법들은 모션이 작고 중간일 때에 양호하게 정상적으로 작동한다.
일부 예들에서, 비디오 인코더 (20) 는 참조 픽처 메모리 (64) 내에 저장된 참조 픽처들의 정수-미만 (sub-integer) 픽셀 위치들에 대한 값들을 계산할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 참조 픽처의 1/4 픽셀 위치들, 1/8 픽셀 위치들, 또는 다른 분수 픽셀 위치들의 값들을 보간할 수도 있다. 그러므로, 모션 추정 유닛 (42) 은 전체 픽셀 위치들 및 분수 픽셀 위치들에 관하여 모션 탐색을 수행할 수도 있고, 분수 픽셀 정밀도를 갖는 모션 벡터를 출력할 수도 있다.
모션 추정 유닛 (42) 은 PU 의 위치를 참조 픽처의 예측 블록의 위치와 비교함으로써, 인터-코딩된 슬라이스에서의 비디오 블록의 PU 에 대한 모션 벡터를 계산한다. 참조 픽처는 제 1 참조 픽처 리스트 (List 0) 또는 제 2 참조 픽처 리스트 (List 1) 로부터 선택될 수도 있고, 이들의 각각은 참조 픽처 메모리 (64) 내에 저장된 하나 이상의 참조 픽처들을 식별한다. 모션 추정 유닛 (42) 은 계산된 모션 벡터를 엔트로피 인코딩 유닛 (56) 및 모션 보상 유닛 (44) 으로 전송한다.
모션 보상 유닛 (44) 에 의해 수행된 모션 보상은 모션 추정 유닛 (42) 에 의해 결정된 모션 벡터에 기초하여 예측 블록을 페치 (fetch) 하거나 생성하는 것을 수반할 수도 있다. 또한, 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 일부 예들에서, 기능적으로 통합될 수도 있다. 현재의 비디오 블록의 PU 에 대한 모션 벡터를 수신할 시에, 모션 보상 유닛 (44) 은 모션 벡터가 참조 픽처 리스트들 중의 하나에서 지시하는 예측 블록을 위치시킬 수도 있다. 합산기 (50) 는 이하에서 논의된 바와 같이, 코딩되고 있는 현재의 비디오 블록의 픽셀 값들로부터 예측 블록의 픽셀 값들을 감산하여 픽셀 차이 값들을 형성함으로써 잔차 비디오 블록을 형성한다. 일반적으로, 모션 추정 유닛 (42) 은 루마 컴포넌트들에 관하여 모션 추정을 수행하고, 모션 보상 유닛 (44) 은 크로마 컴포넌트들 및 루마 컴포넌트들의 양자에 대한 루마 컴포넌트들에 기초하여 계산된 모션 벡터들을 이용한다. 모드 선택 유닛 (40) 은 또한, 비디오 슬라이스의 비디오 블록들을 디코딩함에 있어서 비디오 디코더 (30) 에 의한 이용을 위한 비디오 블록들 및 비디오 슬라이스와 연관된 신택스 엘리먼트들을 생성할 수도 있다.
인트라 예측 유닛 (46) 은 위에서 설명된 바와 같이, 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 수행된 인터-예측에 대한 대안으로서, 현재의 블록을 인트라-예측할 수도 있다. 특히, 인트라 예측 유닛 (46) 은 현재의 블록을 인코딩하기 위하여 이용하기 위한 인트라-예측 모드를 결정할 수도 있다. 일부 예들에서, 인트라 예측 유닛 (46) 은 예컨대, 별도의 인코딩 패스들 동안에 다양한 인트라-예측 모드들을 이용하여 현재의 블록을 인코딩할 수도 있고, 인트라 예측 유닛 (46) (또는 일부 예들에서, 모드 선택 유닛 (40)) 은 테스팅된 모드들로부터 이용하기 위한 적절한 인트라-예측 모드를 선택할 수도 있다.
예를 들어, 인트라 예측 유닛 (46) 은 다양한 테스팅된 인트라-예측 모드들에 대한 레이트-왜곡 분석을 이용하여 레이트-왜곡 값들을 계산할 수도 있고, 테스팅된 모드들 중에서 최상의 레이트-왜곡 특성들을 가지는 인트라-예측 모드를 선택할 수도 있다. 레이트-왜곡 분석은 일반적으로, 인코딩된 블록과, 인코딩된 블록을 생성하기 위하여 인코딩되었던 원래의 인코딩되지 않은 블록과의 사이의 왜곡 (또는 에러) 의 양뿐만 아니라, 인코딩된 블록을 생성하기 위하여 이용된 비트레이트 (즉, 비트들의 수) 를 결정한다. 인트라 예측 유닛 (46) 은 어느 인트라-예측 모드가 블록에 대한 최상의 레이트-왜곡 값을 나타내는지를 결정하기 위하여 다양한 인코딩된 블록들에 대한 왜곡들 및 레이트들로부터 비율 (ratio) 들을 계산할 수도 있다.
블록에 대한 인트라-예측 모드를 선택한 후, 인트라 예측 유닛 (46) 은 블록에 대한 선택된 인트라-예측 모드를 표시하는 정보를 엔트로피 인코딩 유닛 (56) 에 제공할 수도 있다. 엔트로피 인코딩 유닛 (56) 은 선택된 인트라-예측 모드를 표시하는 정보를 인코딩할 수도 있다. 비디오 인코더 (20) 는 복수의 인트라-예측 모드 인덱스 표들 및 복수의 수정된 인트라-예측 모드 인덱스 표들 (또한 코드워드 맵핑 표 (codeword mapping table) 들로서 지칭됨) 을 포함할 수도 있는 송신된 비트스트림 구성 데이터에서, 다양한 블록들에 대한 인코딩 컨텍스트들의 정의들과, 컨텍스트들의 각각에 대해 이용하기 위한 가장 가능성 있는 인트라-예측 모드, 인트라-예측 모드 인덱스 표, 및 수정된 인트라-예측 모드 인덱스 표의 표시들을 포함할 수도 있다.
이 개시물의 양태들에 따르면, 본원에서 설명된 바와 같이, 비디오 인코더 (20) 는 모션 정보를 유도하고, 블록 파티셔닝을 수행하고, 및/또는 비디오 데이터를 보간하기 위한 본원에서 설명된 기법들의 임의의 조합을 수행하도록 구성될 수도 있다. 특히, 이 개시물의 어떤 기법들은 유도 유닛 (49) 에 의해 수행될 수도 있다. 예를 들어, 유도 유닛 (49) 은 비트스트림에서 모션 정보를 표시하는 데이터를 포함하지 않으면서, 현재의 블록에 대한 모션 정보를 결정하도록 구성될 수도 있다.
일부 사례들에서, 유도 유닛 (49) (및/또는 모드 선택 유닛 (40)) 은 레이트 왜곡 분석에 기초하여, (예컨대, 인트라-예측 또는 전통적인 인터-예측에 대하여) 특정한 블록에 대한 모션 유도를 수행할 것인지 여부를 결정할 수도 있다. 예를 들어, 유도 유닛 (49) 은 병합 모드에서 병합 후보들에 대하여 수행되는 바와 같이, 레이트 왜곡 코스트 선택과 유사한 방식으로 모션 유도를 수행할 것인지 여부를 결정할 수도 있다. 이 예에서, 유도 유닛 (49) 은 레이트 왜곡 코스트 선택을 이용하여 복수의 모션 정보 유도 모드들 (예컨대, 쌍방적 정합 모드, 템플릿 정합 모드 등) 의 각각의 모션 정보 유도 모드를 체크할 수도 있다. 유도 유닛 (49) 은 최소 코스트를 가지는 모션 정보 유도 모드를 다른 PU 모드들 (예컨대, 인트라-예측 모드들, 전통적인 인터-예측 모드, 팔레트 코딩 모드 등) 과 추가로 비교할 수도 있다. 모션 유도 모드가 코딩 효율의 측면에서 가장 효율적인 모드인 사례들에서, 비디오 인코더 (20) 는 모션 정보가 현재의 블록에 대하여 (시그널링되는 것이 아니라) 유도된다는 것을 표시하는 하나 이상의 신택스 엘리먼트들을 인코딩할 수도 있다. 비디오 인코더 (20) 는 또한, 복수의 모션 정보 유도 모드들로부터의 모션 유도 모드를 표시하기 위하여 하나 이상의 신택스 엘리먼트들을 인코딩할 수도 있다.
다른 예들에서, 이 개시물의 양태들에 따르면, 유도 유닛 (49) 은 비디오 시퀀스에 대한 인코딩된 비트스트림 내에 포함되지 않은 비디오 데이터를 보간할 수도 있다. 예를 들어, 유도 유닛 (49) 은 예컨대, 프레임 레이트 업-변환과 유사한, 비트스트림 내에 포함되지 않은 픽처를 보간하기 위한 모션 유도 기법들의 임의의 조합을 수행할 수도 있다. 일부 사례들에서, 비디오 인코더 (20) 는 인코딩하는 동안에 보간된 픽처를 이용할 수도 있다. 예를 들어, 유도 유닛 (49) 은 픽처를 보간할 수도 있고, 비디오 인코더 (20) 는 보간된 픽처에 관하여 현재의 픽처에 대한 데이터를 인코딩할 수도 있다. 이 예에서, 비디오 인코더 (20) 는 보간된 픽처를 참조 픽처 메모리 (64) 에 추가할 수도 있고, 보간된 픽처의 적어도 부분에 기초하여 다른 픽처들의 데이터를 인코딩할 수도 있다.
다른 예들에서, 유도 유닛 (49) 은 픽처를 보간할 수도 있고, 비디오 인코더 (20) 는 보간된 픽처를 현재의 픽처와 동일하게 설정할 수도 있다. 예를 들어, 유도 유닛 (49) 은 현재의 픽처를 보간할 수도 있고, 비디오 인코더 (20) 는 비트스트림 내에 포함되어야 할 현재의 픽처에 대한 신택스 데이터 (예컨대, 슬라이스 헤더 데이터 등) 를 인코딩할 수도 있지만, 현재의 픽처에 대한 비디오 데이터의 인코딩을 스킵할 수도 있다.
유도 유닛 (49) 은 본원에서 설명된 바와 같이, 어떤 유도 및/또는 보간 기법들을 수행하도록 구성될 수도 있지만, 비디오 인코더 (20) 의 하나 이상의 다른 유닛들은 또한, 또는 대안적으로, 데이터를 보간하도록 구성될 수도 있다는 것이 이해되어야 한다. 예를 들어, 비디오 인코더 (20) 는 예컨대, 모션 보상 동안에 서브-픽셀 (서브-펠) 로케이션에서 픽셀을 보간하기 위한 다양한 다른 보간기들 또는 필터들을 포함할 수도 있다.
비디오 인코더 (20) 는 코딩되고 있는 원래의 비디오 블록으로부터 모드 선택 유닛 (40) 으로부터의 예측 데이터를 감산함으로써 잔차 비디오 블록을 형성한다. 합산기 (50) 는 이 감산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 표현한다. 변환 프로세싱 유닛 (52) 은 이산 코사인 변환 (DCT) 또는 개념적으로 유사한 변환과 같은 변환을 잔차 블록에 적용하여, 잔차 변환 계수 값들을 포함하는 비디오 블록을 생성한다. 변환 프로세싱 유닛 (52) 은 DCT 와 개념적으로 유사한 다른 변환들을 수행할 수도 있다. 웨이블렛 변환 (wavelet transform) 들, 정수 변환 (integer transform) 들, 서브-대역 변환 (sub-band transform) 들 또는 다른 타입들의 변환들이 또한 이용될 수 있다.
어떤 경우에도, 변환 프로세싱 유닛 (52) 은 변환을 잔차 블록에 적용하여, 잔차 변환 계수들의 블록을 생성한다. 변환은 잔차 정보를 픽셀 값 도메인으로부터, 주파수 도메인과 같은 변환 도메인으로 변환할 수도 있다. 변환 프로세싱 유닛 (52) 은 결과적인 변환 계수들을 양자화 유닛 (54) 으로 전송할 수도 있다. 양자화 유닛 (54) 은 비트 레이트를 추가로 감소시키기 위하여 변환 계수들을 양자화한다. 양자화 프로세스는 계수들의 일부 또는 전부와 연관된 비트 심도를 감소시킬 수도 있다. 양자화도는 양자화 파라미터를 조절함으로써 수정될 수도 있다. 일부 예들에서, 다음으로, 양자화 유닛 (54) 은 양자화된 변환 계수들을 포함하는 행렬의 스캔을 수행할 수도 있다. 대안적으로, 엔트로피 인코딩 유닛 (56) 은 스캔을 수행할 수도 있다.
양자화에 후속하여, 엔트로피 인코딩 유닛 (56) 은 양자화된 변환 계수들을 엔트로피 코딩한다. 예를 들어, 엔트로피 인코딩 유닛 (56) 은 컨텍스트 적응 가변 길이 코딩 (context adaptive variable length coding; CAVLC), 컨텍스트 적응 2 진 산술 코딩 (context adaptive binary arithmetic coding; CABAC), 신택스-기반 컨텍스트-적응 2 진 산술 코딩 (syntax-based context-adaptive binary arithmetic coding; SBAC), 확률 간격 파티셔닝 엔트로피 (probability interval partitioning entropy; PIPE) 코딩, 또는 또 다른 엔트로피 코딩 기법을 수행할 수도 있다. 컨텍스트-기반 엔트로피 코딩의 경우, 컨텍스트는 이웃하는 블록들에 기초할 수도 있다. 엔트로피 인코딩 유닛 (56) 에 의한 엔트로피 코딩에 후속하여, 인코딩된 비트스트림은 또 다른 디바이스 (예컨대, 비디오 디코더 (30)) 에 송신될 수도 있거나, 더 이후의 송신 또는 취출을 위하여 아카이빙될 수도 있다.
역양자화 유닛 (58) 및 역변환 유닛 (60) 은 예컨대, 참조 블록으로서의 더 이후의 이용을 위한 픽셀 도메인에서의 잔차 블록을 복원하기 위하여 역양자화 및 역변환을 각각 적용한다. 모션 보상 유닛 (44) 은 잔차 블록을 참조 픽처 메모리 (64) 의 프레임들 중의 하나의 프레임의 예측 블록에 추가함으로써 참조 블록을 계산할 수도 있다. 모션 보상 유닛 (44) 은 또한, 모션 추정에서의 이용을 위한 정수-미만 픽셀 값들을 계산하기 위하여 하나 이상의 보간 필터들을 복원된 잔차 블록에 적용할 수도 있다. 합산기 (62) 는 참조 픽처 메모리 (64) 에서의 저장을 위한 복원된 비디오 블록을 생성하기 위하여, 복원된 잔차 블록을 모션 보상 유닛 (44) 에 의해 생성된 모션 보상된 예측 블록에 추가한다. 복원된 비디오 블록은 추후의 비디오 프레임에서의 블록을 인터-코딩하기 위하여, 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 참조 블록으로서 이용될 수도 있다.
도 3 은 모션 정보를 유도하고, 블록 파티셔닝을 수행하고, 및/또는 비디오 데이터를 보간하기 위한 기법들을 구현할 수도 있는 비디오 디코더 (30) 의 예를 예시하는 블록도이다. 도 3 의 예에서, 비디오 디코더 (30) 는 비디오 데이터 메모리 (68), 엔트로피 디코딩 유닛 (70), 모션 보상 유닛 (72), 인트라 예측 유닛 (74), 역양자화 유닛 (76), 역변환 유닛 (78), 참조 픽처 메모리 (82), 및 합산기 (80) 를 포함한다. 일부 예들에서, 비디오 디코더 (30) 는 비디오 인코더 (20) (도 2) 에 대하여 설명된 인코딩 패스와 일반적으로 상반되는 디코딩 패스를 수행할 수도 있다. 모션 보상 유닛 (72) 은 엔트로피 디코딩 유닛 (70) 으로부터 수신된 모션 벡터들에 기초하여 예측 데이터를 생성할 수도 있는 반면, 인트라 예측 유닛 (74) 은 엔트로피 디코딩 유닛 (70) 으로부터 수신된 인트라-예측 모드 표시자들에 기초하여 예측 데이터를 생성할 수도 있다.
디코딩 프로세스 동안, 비디오 디코더 (30) 는 인코딩된 비디오 슬라이스의 비디오 블록들 및 연관된 신택스 엘리먼트들을 표현하는 인코딩된 비디오 비트스트림을 비디오 인코더 (20) 로부터 수신한다. 비디오 데이터 메모리 (68) 내에 저장된 비디오 데이터는 예를 들어, 컴퓨터-판독가능 매체로부터, 예컨대, 카메라와 같은 로컬 비디오 소스로부터, 비디오 데이터의 유선 또는 무선 네트워크 통신을 통해, 또는 물리적 데이터 저장 매체들을 액세스함으로써 획득될 수도 있다. 비디오 데이터 메모리 (68) 는 인코딩된 비디오 비트스트림으로부터의 인코딩된 비디오 데이터를 저장하는 코딩된 픽처 버퍼 (coded picture buffer; CPB) 를 형성할 수도 있다.
참조 픽처 메모리 (82) 는 예컨대, 인트라-코딩 또는 인터-코딩 모드들에서 비디오 디코더 (30) 에 의해 비디오 데이터를 인코딩함에 있어서의 이용을 위한 참조 비디오 데이터를 저장하는 DPB 로서 지칭될 수도 있다. 비디오 데이터 메모리 (68) 및 참조 픽처 버퍼 (82) 는 동기식 DRAM (SDRAM) 을 포함하는 동적 랜덤 액세스 메모리 (DRAM), 자기저항 RAM (MRAM), 저항 RAM (RRAM), 또는 다른 타입들의 메모리 디바이스들과 같은 다양한 메모리 디바이스들 중의 임의의 것에 의해 형성될 수도 있다. 비디오 데이터 메모리 (68) 및 참조 픽처 메모리 (82) 는 동일한 메모리 디바이스 또는 별도의 메모리 디바이스들에 의해 제공될 수도 있다. 다양한 예들에서, 비디오 데이터 메모리 (68) 는 비디오 디코더 (30) 의 다른 컴포넌트들과 온-칩일 수도 있거나, 그 컴포넌트들에 관하여 오프-칩일 수도 있다.
비디오 디코더 (30) 의 엔트로피 디코딩 유닛 (70) 은 양자화된 계수들, 모션 벡터들 또는 인트라-예측 모드 표시자들, 및 다른 신택스 엘리먼트들을 생성하기 위하여 비트스트림을 엔트로피 디코딩한다. 엔트로피 디코딩 유닛 (70) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 모션 보상 유닛 (72) 으로 포워딩한다. 비디오 디코더 (30) 는 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨에서 신택스 엘리먼트들을 수신할 수도 있다.
비디오 슬라이스가 인트라-코딩된 (I) 슬라이스로서 코딩될 때, 인트라 예측 유닛 (74) 은 시그널링된 인트라 예측 모드와, 현재의 프레임 또는 픽처의 이전에 디코딩된 블록들로부터의 데이터에 기초하여, 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 데이터를 생성할 수도 있다. 비디오 프레임이 인터-코딩된 (즉, B, P, 또는 GPB) 슬라이스로서 코딩될 때, 모션 보상 유닛 (72) 은 모션 벡터들과, 엔트로피 디코딩 유닛 (70) 으로부터 수신된 다른 신택스 엘리먼트들에 기초하여, 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 블록들을 생성한다. 예측 블록들은 참조 픽처 리스트들 중의 하나 내의 참조 픽처들 중의 하나로부터 생성될 수도 있다. 비디오 디코더 (30) 는 참조 픽처 메모리 (82) 내에 저장된 참조 픽처들에 기초하여, 디폴트 구성 (default construction) 기법들을 이용하여 참조 프레임 리스트들, List 0 및 List 1 을 구성할 수도 있다.
모션 보상 유닛 (72) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 파싱 (parsing) 함으로써 현재의 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하고, 디코딩되고 있는 현재의 비디오 블록에 대한 예측 블록들을 생성하기 위하여 예측 정보를 이용한다. 예를 들어, 모션 보상 유닛 (72) 은 비디오 슬라이스의 비디오 블록들을 코딩하기 위해 이용된 예측 모드 (예컨대, 인트라-예측 또는 인터-예측), 인터-예측 슬라이스 타입 (예컨대, B 슬라이스, P 슬라이스, 또는 GPB 슬라이스), 슬라이스에 대한 참조 픽처 리스트들 중의 하나 이상에 대한 구성 정보, 슬라이스의 각각의 인터-인코딩된 비디오 블록에 대한 모션 벡터들, 슬라이스의 각각의 인터-코딩된 비디오 블록에 대한 인터-예측 상태, 및 현재의 비디오 슬라이스에서의 비디오 블록들을 디코딩하기 위한 다른 정보를 결정하기 위하여, 수신된 신택스 엘리먼트들의 일부를 이용한다.
모션 보상 유닛 (72) 은 또한, 보간 필터들에 기초하여 보간을 수행할 수도 있다. 모션 보상 유닛 (72) 은 참조 블록들의 정수-미만 픽셀들에 대한 보간된 값들을 계산하기 위하여, 비디오 블록들의 인코딩 동안에 비디오 인코더 (20) 에 의해 이용된 바와 같은 보간 필터들을 이용할 수도 있다. 이 경우, 모션 보상 유닛 (72) 은 수신된 신택스 엘리먼트들로부터 비디오 인코더 (20) 에 의해 이용된 보간 필터들을 결정할 수도 있고, 예측 블록들을 생성하기 위하여 보간 필터들을 이용할 수도 있다.
이 개시물의 양태들에 따르면, 비디오 디코더 (30) 는 모션 정보를 유도하고, 블록 파티셔닝을 수행하고, 및/또는 비디오 데이터를 보간하기 위한 본원에서 설명된 기법들의 임의의 조합을 수행하도록 구성될 수도 있다. 특히, 이 개시물의 어떤 기법들은 유도 유닛 (75) 에 의해 수행될 수도 있다. 예를 들어, 이 개시물의 양태들에 따르면, 유도 유닛 (75) 은 인코딩된 비트스트림으로부터의 모션 정보를 디코딩하지 않으면서, 현재의 블록에 대한 모션 정보를 결정하도록 구성될 수도 있다.
일부 사례들에서, 유도 유닛 (75) 은 (예컨대, 인트라-예측 또는 전통적인 인터-예측에 대하여) 특정한 블록에 대한 모션 유도를 수행할 것인지 여부를 결정할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 모션 정보가 디코딩되고 있는 블록에 대하여 (시그널링되는 것이 아니라) 유도된다는 것을 표시하는 하나 이상의 신택스 엘리먼트들을 디코딩할 수도 있다. 비디오 디코더 (30) 는 또한, 블록을 디코딩하기 위하여 이용되어야 할 복수의 모션 정보 유도 모드들로부터의 하나의 모션 정보 유도 모드를 표시하는 하나 이상의 신택스 엘리먼트들을 디코딩할 수도 있다. 유도 모드 (75) 는 디코딩된 신택스에 기초하여, 모션 유도를 수행할 것인지 여부와, 블록에 대한 모션 정보 유도 모드를 결정할 수도 있다. 일부 예들에서, 본원에서 설명된 바와 같이, 신택스는 병합 모드, AMVP, 또는 다른 디코딩 기능들과 같은 하나 이상의 다른 모드들과 연관될 수도 있다.
이 개시물의 다른 양태들에 따르면, 유도 유닛 (75) 은 비디오 시퀀스에 대한 인코딩된 비트스트림 내에 포함되지 않은 비디오 데이터를 보간할 수도 있다. 예를 들어, 유도 유닛 (75) 은 예컨대, 프레임 레이트 업-변환과 유사한, 파싱된 비트스트림 내에 포함되지 않은 픽처를 보간하기 위한 모션 유도 기법들의 임의의 조합을 수행할 수도 있다. 일부 사례들에서, 비디오 디코더 (30) 는 인코딩하는 동안에 보간된 픽처를 이용할 수도 있다. 예를 들어, 유도 유닛 (75) 은 픽처를 보간할 수도 있고, 비디오 디코더 (30) 는 보간된 픽처에 관하여 현재의 픽처에 대한 데이터를 디코딩할 수도 있다. 이 예에서, 비디오 디코더 (30) 는 보간된 픽처를 참조 픽처 메모리 (82) 에 추가할 수도 있고, 보간된 픽처의 적어도 부분에 기초하여 다른 픽처들의 데이터를 디코딩할 수도 있다.
다른 예들에서, 유도 유닛 (75) 은 픽처를 보간할 수도 있고, 비디오 디코더 (30) 는 보간된 픽처를 현재의 픽처와 동일하게 설정할 수도 있다. 예를 들어, 유도 유닛 (75) 은 현재의 픽처를 보간할 수도 있고, 비디오 디코더 (30) 는 인코딩된 비트스트림으로부터의 현재의 픽처에 대한 신택스 엘리먼트들 (예컨대, 슬라이스 헤더 데이터 등) 을 디코딩할 수도 있지만, 현재의 픽처에 대한 비디오 데이터의 디코딩을 스킵할 수도 있지만, 그 대신에, 현재의 픽처를 보간할 수도 있다.
유도 유닛 (75) 은 본원에서 설명된 바와 같이, 어떤 보간 기법들을 수행하도록 구성될 수도 있지만, 비디오 디코더 (30) 의 하나 이상의 다른 유닛들은 또한, 또는 대안적으로, 데이터를 보간하도록 구성될 수도 있다는 것이 이해되어야 한다. 예를 들어, 비디오 디코더 (30) 는 예컨대, 모션 보상 동안에 서브-픽셀 (서브-펠) 로케이션에서 픽셀을 보간하기 위한 다양한 다른 보간기들 또는 필터들을 포함할 수도 있다.
역양자화 유닛 (76) 은, 비트스트림에서 제공되며 엔트로피 디코딩 유닛 (70) 에 의해 디코딩된 양자화된 변환 계수들을 역양자화, 즉, 탈양자화 (de-quantize) 한다. 역양자화 프로세스는 적용되어야 할 양자화도와, 마찬가지로, 역양자화도를 결정하기 위하여, 비디오 슬라이스에서의 각각의 비디오 블록에 대해 비디오 디코더 (30) 에 의해 계산된 양자화 파라미터 QPY 의 이용을 포함할 수도 있다.
역변환 유닛 (78) 은 픽셀 도메인에서 잔차 블록들을 생성하기 위하여, 역변환, 예컨대, 역 DCT, 역정수 변환, 또는 개념적으로 유사한 역변환 프로세스를 변환 계수들에 적용한다.
모션 보상 유닛 (72) 이 모션 벡터들 및 다른 신택스 엘리먼트들에 기초하여 현재의 비디오 블록에 대한 예측 블록을 생성한 후, 비디오 디코더 (30) 는 역변환 유닛 (78) 으로부터의 잔차 블록들을 모션 보상 유닛 (72) 에 의해 생성된 대응하는 예측 블록들과 합산함으로써 디코딩된 비디오 블록을 형성한다. 합산기 (80) 는 이 합산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 표현한다. 희망하는 경우, 디블록킹 필터는 또한, 블록화 아티팩트들을 제거하기 위하여 디코딩된 블록들을 필터링하도록 적용될 수도 있다. (코딩 루프 내 또는 코딩 루프 이후 중의 어느 하나에서의) 다른 루프 필터들은 또한, 픽셀 천이 (pixel transition) 들을 평탄화하거나, 또는 이와 다르게 비디오 품질을 개선시키기 위하여 이용될 수도 있다. 다음으로, 소정의 프레임 또는 픽처에서의 디코딩된 비디오 블록들은, 추후의 모션 보상을 위하여 이용된 참조 픽처들을 저장하는 참조 픽처 메모리 (82) 내에 저장된다. 참조 픽처 메모리 (82) 는 또한, 도 1 의 디스플레이 디바이스 (32) 와 같은 디스플레이 디바이스 상에서의 더 이후의 제시를 위한 디코딩된 비디오를 저장한다.
도 4a 및 도 4b 는 HEVC 에서의 공간적 이웃하는 후보들을 예시하는 개념도들이다. 일부 예들에서, 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 는 PU0 에 대한 이웃하는 블록 0, 이웃하는 블록 1, 이웃하는 블록 2, 이웃하는 블록 3, 또는 이웃하는 블록 4 로부터 공간적 모션 벡터 (MV) 후보들을 유도할 수도 있다.
일부 사례들에서, 블록들로부터 MV 후보들을 생성하기 위한 기법들은 병합 및 AMVP 모드들에 대하여 상이하다. 도 4a 는 병합 모드에 대한 하나의 예를 예시한다. 예를 들어, HEVC 에서, (예컨대, 도 1 내지 도 3 의 비디오 인코더 (20) 및/또는 비디오 디코더 (30) 와 같은) 비디오 코더는 4 개에 이르는 공간적 MV 후보들을 유도할 수도 있다. 후보들은 특정한 순서를 가지는 후보 리스트 내에 포함될 수도 있다. 하나의 예에서, 도 4a 의 예에 대한 순서는 이웃하는 블록 0 (A1), 이웃하는 블록 1 (B1), 이웃하는 블록 2 (B0), 이웃하는 블록 3 (A0), 및 이웃하는 블록 4 (B2) 일 수도 있다.
도 4b 는 AMVP 모드에 대한 하나의 예를 예시한다. 예를 들어, HEVC 에서, 비디오 코더는 이웃하는 블록들을 2 개의 그룹들: 이웃하는 블록 0 및 이웃하는 블록 1 을 포함하는 좌측 그룹, 및 이웃하는 블록 2, 이웃하는 블록 3, 및 이웃하는 블록 4 를 포함하는 상부 그룹으로 분할할 수도 있다. 각각의 그룹에 대하여, (현재 코딩되고 있는 블록에 대한) 시그널링된 참조 인덱스에 의해 표시된 것과 동일한 참조 픽처를 참조하는 이웃하는 블록과 연관된 잠재적인 모션 벡터 후보는 그룹의 최종 후보를 형성하기 위하여 선택되어야 할 최고 우선순위를 가질 수도 있다. 이웃하는 블록의 어떤 것도 동일한 참조 픽처를 지시하는 모션 벡터를 포함하지 않는 것이 가능하다. 그러므로, 이러한 후보가 구해질 수 없을 경우, 비디오 코더는 최종 후보를 형성하기 위하여 최초의 이용가능한 후보를 스케일링할 수도 있고, 이에 따라, 시간적 거리 차이들이 보상될 수도 있다.
이 개시물의 양태들에 따르면, 도 4a 및 도 4b 에서 도시된 이웃하는 블록들과 연관된 모션 벡터들과 같은 모션 벡터 후보들은 블록에 대한 모션 벡터를 유도하기 위하여 이용될 수도 있다. 예를 들어, 비디오 코더는 도 4a 및 도 4b 에서 도시된 이웃하는 블록들로부터 모션 벡터 후보들을 포함하는 후보 리스트를 생성할 수도 있다. 이 예에서, 비디오 코더는 후보 리스트의 후보들 중의 하나 이상을 모션 정보 유도 프로세스 (예컨대, 쌍방적 정합, 템플릿 정합 등) 에서 초기 모션 벡터로서 이용할 수도 있다. 비디오 코더는 참조 데이터를 식별하기 위하여, 모션 벡터 유도 프로세스의 모션 탐색에서 모션 벡터 후보들 중의 하나 이상을 적용할 수도 있다. 비디오 코더는 (예컨대, 이하의 도 8 내지 도 9 에 대하여 설명된 바와 같이) 근접하게 정합하는 참조 데이터를 식별하는 리스트로부터 후보를 선택할 수도 있다. 예를 들어, 비디오 코더는 현재의 블록의 외부의 참조 데이터의 제 2 세트에 대응하는 참조 데이터의 제 1 세트에 대한 모션 탐색을 수행할 수도 있다. 비디오 코더는 일부 사례들에서, 모션 정보 유도 프로세스를 이용하여 유도된 모션 벡터를 결정하기 위하여, 예컨대, 선택된 후보에 의해 표시된 구역에서 추가적인 모션 탐색을 수행함으로써, 후보를 추가로 세분화할 수도 있다.
도 5a 및 도 5b 는 HEVC 에서의 시간적 모션 벡터 예측을 예시하는 개념도들이다. 시간적 모션 벡터 예측자 (TMVP) 후보는, 인에이블되고 이용가능할 경우, 공간적 모션 벡터 후보들 이후의 MV 후보 리스트에 추가된다. HEVC 에서, TMVP 후보에 대한 모션 벡터 유도의 프로세스는 병합 및 AMVP 모드들의 양자에 대하여 동일하지만, 그러나, 병합 모드에서의 TMVP 후보에 대한 타겟 참조 인덱스는 전형적으로 제로로 설정된다.
도 5a 는 공동위치된 PU 의 외부의 하부 우측 블록인, TMVP 후보에 대한 주 블록 로케이션 (블록 "T" 로서 도시됨) 을 예시한다. 로케이션은 공간적 이웃하는 후보들을 생성하기 위하여 이용된 상부 및 좌측 블록들에 대한 바이어스 (bias) 를 보상할 수도 있다. 그러나, 블록 T 가 현재의 CTB 행의 외부에 위치되거나 모션 정보가 이용가능하지 않을 경우, 블록은 도 5a 에서 블록 T 로부터의 점선 화살표들에 의해 표시된 바와 같이, PU 의 중심 블록으로 치환된다.
도 5b 는 (예컨대, 슬라이스 헤더에서) 슬라이스 레벨에서 표시된 바와 같이, 공동위치된 픽처 (92) 의 공동위치된 PU (90) 로부터 현재의 픽처 (88) 의 현재의 블록 (86) 에 대한 TMVP 후보 (84) 를 유도하는 것을 예시한다. AVC 에서의 시간적 직접 모드와 유사하게, TMVP 후보의 모션 벡터는, 거리 차이들, 예컨대, 픽처들 사이의 시간적 거리들을 보상하도록 수행되는 모션 벡터 스케일링을 겪을 수도 있다. 모션 벡터 스케일링에 대하여, (비디오 인코더 (20) 및/또는 비디오 디코더 (30) 와 같은) 비디오 코더는 모션 벡터들의 값이 제시 시간에서 픽처들의 거리에 비례하는 것으로 초기에 결정하도록 구성될 수도 있다. 모션 벡터는 2 개의 픽처들, 참조 픽처와, 모션 벡터를 포함하는 픽처 (즉, 포함 픽처) 를 연관시킨다. 모션 벡터가 다른 모션 벡터를 예측하기 위하여 사용될 때, 포함 픽처 및 참조 픽처의 거리는 픽처 순서 카운트 (POC) 값들에 기초하여 계산된다.
예측되어야 할 모션 벡터에 대하여, 모션 벡터에 대한 연관된 포함 픽처 및 모션 벡터의 참조 픽처의 양자는 상이할 수도 있다. 그러므로, 비디오 코더는 POC 값들에 기초하여 새로운 거리를 계산할 수도 있고, 비디오 코더는 이 2 개의 POC 거리들에 기초하여 모션 벡터를 스케일링할 수도 있다. 공간적 이웃하는 후보에 대하여, 2 개의 모션 벡터들에 대한 포함 픽처들은 동일한 반면, 참조 픽처들은 상이하다. HEVC 에서는, 모션 벡터 스케일링이 공간적 및 시간적으로 이웃하는 후보들에 대한 TMVP 및 AMVP 양자에 대해 적용된다.
일부 예들에서, 비디오 코더는 하나 이상의 인위적인 모션 벡터 후보들을 결정하도록 구성될 수도 있다. 예를 들어, 모션 벡터 후보 리스트가 완전하지 않을 경우, 비디오 코더는 인위적인 모션 벡터 후보들을 생성할 수도 있고, 리스트가 미리 결정된 수의 엔트리들을 포함할 때까지 리스트의 종료부에서 인위적인 모션 벡터 후보들을 삽입할 수도 있다. 병합 모드에서는, 오직 B-슬라이스들에 대하여 유도된 조합된 후보 및 제로 후보를 포함하는 2 개의 타입들의 인위적인 MV 후보들이 있다. 일부 사례들에서, 제로 후보는 조합된 타입이 충분한 인위적인 후보들을 제공하지 않을 경우에 오직 AMVP 를 위하여 이용된다.
이미 후보 리스트 내에 있고 필요한 모션 정보를 가지는 후보들의 각각의 쌍에 대하여, 양방향 조합된 모션 벡터 후보들은 리스트 0 에서의 픽처를 참조하는 제 1 후보의 모션 벡터와, 리스트 1 에서의 픽처를 참조하는 제 2 후보의 모션 벡터의 조합에 의해 유도된다.
이 개시물의 양태들에 따르면, 도 5a 및 도 5b 에서 도시된 TMVP 와 같은 모션 벡터 후보들은 블록에 대한 모션 벡터를 유도하기 위하여 이용될 수도 있다. 예를 들어, 비디오 코더는 위에서 설명된 프로세스에 따라 결정된 TMVP 를 포함하는 후보 리스트를 생성할 수도 있다. 이 예에서, 비디오 코더는 TMVP 를 모션 정보 유도 프로세스 (예컨대, 쌍방적 정합, 템플릿 정합 등) 에서 초기 모션 벡터로서 이용할 수도 있다. 비디오 코더는 참조 데이터를 식별하기 위하여 모션 벡터 유도 프로세스에서 TMVP 를 적용할 수도 있다. 비디오 코더는 (이하의 도 8 내지 도 9 에 대하여 설명된 바와 같이) TMVP 가 근접하게 정합하는 참조 데이터를 식별하는 사례들에서 TMVP 를 선택할 수도 있다. 비디오 코더는 일부 사례들에서, 모션 정보 유도 프로세스를 이용하여 유도된 모션 벡터를 결정하기 위하여 TMVP 를 추가로 세분화할 수도 있다.
일부 예들에서, 비디오 코더는 (도 4a 내지 도 5b 에 대하여 설명된 것들과 같은) 모션 벡터 후보들을 포함하는 후보 리스트를 프루닝 (prune) 할 수도 있다. 예를 들어, 일부 사례들에서, 상이한 블록들로부터의 후보들은 동일하게 될 수도 있고, 이것은 병합/AMVP 후보 리스트의 효율을 감소시킨다. 비디오 코드는 이 문제를 해결하기 위하여 프루닝 프로세스를 적용할 수도 있다. 비디오 코더는 동일한 후보를 삽입하는 것을 회피하기 위하여, 현재의 후보 리스트에서의 다른 것들에 대하여 하나의 후보를 비교할 수도 있다. 복잡도를 감소시키기 위하여, 비디오 코더는 각각의 잠재적인 하나를 모든 다른 현존하는 것과 비교하는 대신에, 오직 제한된 수들의 프루닝 프로세스들을 적용할 수도 있다.
도 6 은 프레임 레이트 업-변환 (FRUC) 에서의 일방적 모션 추정 (ME) 의 예를 예시하는 개념도이다. 특히, 도 6 은 현재의 프레임 (100), 참조 프레임 (102), 및 보간된 프레임 (104) 을 예시한다. 일부 사례들에서, 비디오 디코더 또는 포스트-프로세싱 디바이스는 하나 이상의 참조 픽처들에 기초하여 픽처들을 보간할 수도 있다. 비디오 디코더 또는 포스트-프로세싱 디바이스는 인코딩된 비트스트림의 원래의 프레임 레이트를 업-변환하기 위하여 픽처들을 보간할 수도 있다. 대안적으로, 비디오 디코더 또는 포스트-프로세싱 디바이스는 감소된 프레임 레이트에서 비디오 시퀀스를 인코딩하기 위해 비디오 인코더에 의해 스킵되었던 하나 이상의 픽처들을 삽입하기 위하여 픽처들을 보간할 수도 있다. 어느 하나의 경우에 있어서, 비디오 디코더 또는 포스트-프로세싱 디바이스는 (현재의 프레임 (100) 및 참조 프레임 (102) 과 같은) 디코딩되지 않았던 픽처들을 이용하여 비디오 디코더에 의해 수신되었던 인코딩된 비트스트림 내에 포함되지 않은 (보간된 프레임 (104) 과 같은) 프레임들을 보간한다. 비디오 디코더 또는 포스트-프로세싱 디바이스는 다수의 보간 기법들 중의 임의의 것을 이용하여, 예컨대, 모션 보상된 프레임 보간, 프레임 반복, 또는 프레임 평균화를 이용하여 픽처들을 보간할 수도 있다.
상기 언급된 프레임 보간 기법들은 전형적으로 포스트-루프로 구현된다. 예를 들어, 비디오 디코더는 전형적으로, 현재의 프레임 (100) 및 참조 프레임 (102) 을 포함하는 비디오 시퀀스의 복원된 표현을 생성하기 위하여, 인코딩된 비트스트림을 수신하고 디코딩한다. 디코딩 루프에 후속하여, 비디오 디코더 또는 또 다른 포스트 프로세싱 디바이스는 보간된 프레임 (104) 을 포함하는 복원된 표현과 함께 포함되어야 할 픽처들을 보간할 수도 있다. 일부 사례들에서는, 픽처들의 결과적인 시퀀스가 인코딩된 비트스트림 내에 포함되지 않았던 추가적인 (보간된) 픽처들을 포함하므로, 픽처를 보간하는 프로세스가 프레임 레이트 업-변환 (FRUC) 으로서 지칭될 수도 있다.
따라서, FRUC 기술은 낮은-프레임-레이트 비디오들에 기초하여 높은-프레임-레이트 비디오들을 생성하기 위하여 이용될 수도 있다. FRUC 는 디스플레이 산업에서 이용되었다. 예들은 H. Liu, R. Xiong, D. Zhao, S. Ma, W. Gao, "Multiple Hypotheses Bayesian Frame Rate Up-Conversion by Adaptive Fusion of Motion-Compensated Interpolations (모션-보상된 보간들의 적응적 융합에 의한 다수 가설 베이시안 프레임 레이트 업-변환)", 비디오 기술에 대한 회로들 및 시스템들에 관한 IEEE 트랜잭션들, vol. 22, No. 8, Aug. 2012; W. H. Lee, K. Choi, J. B. Ra, "Frame rate up conversion based on variational image fusion (변형 이미지 융합에 기초한 프레임 레이트 업 변환)", 이미지 프로세싱에 관한 IEEE 트랜잭션들, vol. 23, No. 1, Jan. 2014; 및 U. S. Kim, M. H. Sunwoo, "New frame rate up-conversion algorithms with low computational complexity (낮은 연산 복잡도를 갖는 새로운 프레임 레이트 업-변환 알고리즘들)", 비디오 기술에 대한 회로들 및 시스템들에 관한 IEEE 트랜잭션들, vol. 24, No. 3, Mar. 2014 를 포함한다.
FRUC 알고리즘들은 2 개의 타입들로 분할될 수도 있다. 하나의 타입의 방법들은 간단한 프레임 반복 또는 평균화에 의해 중간 프레임들을 보간한다. 그러나, 이 방법은 많은 모션을 포함하는 픽처에서 부적당한 결과들을 제공한다. 모션-보상된 FRUC (motion-compensated FRUC; MC-FRUC) 로 칭해진 다른 타입의 방법은, 그것이 중간 프레임들을 생성하고 2 개의 단계들: 모션 추정 (ME) 및 모션-보상된 보간 (motion-compensated interpolation; MCI) 으로 구성될 때에 객체 이동을 고려한다. ME 는 벡터들을 이용하여 객체 모션을 표현하는 모션 벡터 (MV) 들을 생성하는 반면, MCI 는 중간 프레임들을 생성하기 위하여 MV 들을 이용한다.
블록-정합 알고리즘 (block-matching algorithm; BMA) 은 그것이 구현하기 위하여 간단하기 때문에 MC-FRUC 에서 ME 를 위하여 널리 이용된다. BMA 는 이미지를 블록들로 분할하고, 예컨대, 블록들이 대응하는지 여부를 결정하기 위하여 그 블록들의 이동을 검출한다. 2 개의 종류들의 ME 는 BMA 를 위하여 주로 이용된다: 일방적 ME 및 쌍방적 ME.
도 6 에서 도시된 바와 같이, 일방적 ME 는 현재의 프레임 (100) 의 참조 프레임 (102) 으로부터 최상의 정합하는 블록을 탐색함으로써 MV 들을 획득한다. 다음으로, 보간된 프레임에서의 모션 궤도 상의 블록은 MV 가 달성되도록 위치될 수 있다. 도 6 에서 도시된 바와 같이, 각각 현재의 프레임 (100), 참조 프레임 (102), 및 보간된 프레임 (104) 으로부터의 106A, 106B, 및 106C 를 포함하는 3 개의 블록들은 모션 궤도에 후속하여 수반된다. 현재의 프레임 (100) 에서의 블록 (106A) 은 코딩된 블록에 속하지만, 참조 프레임 (102) 에서의 최상의 정합하는 블록 (106B) 은 코딩된 블록에 완전히 속하지 않을 수도 있고, 보간된 프레임 (104) 에서의 블록 (106C) 에도 속하지 않는다. 결과적으로, 블록들의 중첩된 영역들 및 비-충전된 (구멍 (hole) 들) 영역들이 보간된 프레임에서 발생할 수도 있다.
중첩들을 핸들링하기 위하여, 간단한 FRUC 알고리즘들은 중첩된 픽셀들을 평균화하는 것과 겹쳐쓰기 하는 것을 단지 수반한다. 또한, 구멍들은 참조 또는 현재의 프레임으로부터의 픽셀 값들에 의해 커버된다. 그러나, 이 알고리즘들은 블록킹 아티팩트들 및 블러링 (blurring) 으로 귀착된다. 이 때문에, 모션 필드 세그먼트화, 이산 하틀리 변환 (discrete Hartley transform) 을 이용한 연속적 외삽 (successive extrapolation), 및 이미지 인페인팅 (image inpainting) 은 블록킹 아티팩트들 및 블러링을 증가시키지 않으면서 구멍들 및 중첩들을 핸들링하기 위하여 제안된다.
이 개시물의 양태들에 따르면, (비디오 인코더 (20) 및/또는 비디오 디코더 (30) 와 같은) 비디오 코더는 도 6 에서 도시된 일방적 정합 기법을 이용하여 인코딩 또는 디코딩 루프에서 보간된 프레임 (104) 을 생성할 수도 있다. 예를 들어, 비디오 코더는 복원된 픽셀 어레이를 이용하여, 보간된 프레임 (104) 을 현재의 픽처의 예측자로서 보간하기 위하여 픽처 레벨 FRUC 를 이용할 수도 있다. 일부 예들에서, 이러한 보간된 픽처는 참조 픽처 또는 현재의 프레임 (100) 의 복원으로서 고려될 수도 있다. 다른 예들에서, 비디오 코더는 현재의 픽처를 보간된 픽처와 동일하게 설정할 수도 있다. 이러한 픽처는 신택스 엘리먼트들 또는 디코딩 프로세스들에 의해 폐기가능한 픽처 및/또는 비-참조 픽처로서 표기될 수도 있다.
일부 예들에서, 비디오 코더는 FRUC 모드가 오직 허용된 모드가 되도록, 현재의 픽처를 보간할 수도 있고, 여기서, FRUC 모드는 도 6 에서 도시된 일방적 정합 기법, 또는 본원에서 설명된 임의의 다른 모션 정보 유도 또는 보간 기법들을 표시한다. 이 때문에, 쿼드-트리 기반 CU 구조 시그널링 대신에, 모든 블록들은 동일한 미리 정의된 또는 시그널링된 크기를 가질 수도 있다. 일부 사례들에서는, 규칙적인 스킵, 규칙적인 병합, FRUC 모드, 및 인트라 모드와 같은 유효한 CU 코딩 모드들의 오직 서브세트가 허용될 수도 있다. 대안적으로 또는 추가적으로, FRUC 를 위한 구멍 충전 모드 (hole filling mode) 는 이러한 픽처 또는 슬라이스에서 허용될 수도 있다.
이 개시물의 양태들에 따르면, SEI 메시지는 어느 픽처들 또는 픽처들의 서브-시퀀스가 픽처 레벨 FRUC 에 의해 코딩되는지를 표시하기 위하여 도입될 수도 있다. 이러한 픽처들은 다른 픽처들의 품질에 영향을 주지 않으면서 폐기될 수도 있다. 이러한 SEI 메시지는 어느 시간적 레벨 (들) 이 FRUC 코딩된 픽처들을 포함하는지, 또는 오직 FRUC 코딩된 픽처들을 포함하는지를 표시 (또는 추가적으로 표시) 할 수도 있다. SEI 메시지에서의 이러한 정보는 또한, PPS, SPS, 및 VPS 와 같은, 하이 레벨 신택스 (high level syntax) 의 다른 장소들로서 존재할 수도 있다.
일부 예들에서, 비디오 코더는 픽처의 부분을 코딩할 수도 있고, 나머지 비디오 데이터를 보간할 수도 있다. 예를 들어, 비디오 코더는, 스마트 또는 자원 풍부한 디코더들이 FRUC 프레임들을 임의적으로 생성하는 것을 허용할 수도 있는 디코더측 프레임 레이트 업-변환을 위한 소위 "힌트 (hint)" 를 코딩할 수도 있다. 예를 들어, (직사각형 영역들과 같은) 몇몇 핵심 영역들은 이러한 FRUC 프레임들에 대한 힌트로서 시그널링될 수 있다. 힌트가 수신되고 임의적으로 프로세싱될 때, 디코더의 일부로서 특정된 FRUC 방법은 핵심 영역들이 아닌 영역들에 대하여 먼저 이용될 수도 있는 반면, 핵심 영역들은 구멍 충전 방법들과 같은, 디코더에 의해 특정되지 않을 수도 있는 수단에 의해 추가로 프로세싱되어야 한다.
구멍 충전에 대하여, 이 개시물의 양태들에 따르면, 비디오 코더는 블록-기반 구멍 충전 기법들을 구현할 수도 있다. 예를 들어, 하나의 구멍 충전 기법은 동일한 CTU 에서 현재의 인트라 블록을 예측하기 위하여 공간적으로 이웃하는 인터 블록들을 이용하기 위한 것이다. 예를 들어, 비디오 코더는 CTU 를 2 번 인코딩/디코딩할 수도 있다. 최초의 인코딩/디코딩은 정상적인 것과 같다. 두 번째 라운드에서는, 오직 인트라 블록들이 인코딩/디코딩되고 겹쳐쓰기 된다. 인트라 블록에 대하여, 현재의 블록의 하부-우측의 것들을 포함하는, 동일한 CTU 에서의 모든 그 공간적으로 이웃하는 인터 블록들은 인트라 예측을 위하여 이용가능한 것으로서 표기된다. 구멍 충전 방법은 또한, 슬라이스, 타일, 픽처, 다른 임의의 다른 레벨일 수 있다. 또 다른 구멍 충전 방법은 이미지 인프린팅 기법을 이용할 수도 있다. 다른 구멍 충전 기법들이 또한 적용될 수도 있다.
도 7 은 FRUC 에서의 쌍방적 모션 추정 (ME) 의 예를 예시하는 개념도이다. 특히, 도 7 은 현재의 프레임 (114) 의 현재의 블록 (112) 및 참조 프레임 (118) 의 참조 블록 (116) 으로부터 보간되는 보간된 프레임 (110) 의 보간된 블록 (108) 을 예시한다. 도 7 에서 도시된 바와 같이, 쌍방적 ME 는 도 6 에서 도시된 중첩들 및 구멍들에 의해 야기된 문제들을 회피하기 위하여 이용될 수 있는 (MC-FRUC 에서의) 또 다른 해결책이다. 쌍방적 ME 는 각각 현재의 프레임 (114) 및 참조 프레임 (118) 의 블록들 (112 및 116) 사이의 시간적 대칭성을 이용하여 보간된 블록 (108) 을 통과하는 MV 들을 획득한다. 그 결과, 그것은 중첩들 및 구멍들을 생성하지 않는다. 예컨대, 비디오 코딩의 경우에서와 같이, 현재의 블록이 어떤 순서로 프로세싱되고 있는 블록인 것으로 가정되므로, 이러한 블록들의 시퀀스는 중첩 없이 전체 중간 픽처를 커버할 것이다. 예를 들어, 비디오 코딩의 경우, 블록들은 디코딩 순서로 프로세싱될 수 있다.
이 개시물의 양태들에 따르면, 도 7 의 예에서 도시된 쌍방적 모션 추정은 모션 정보를 유도하기 위하여 활용될 수도 있다. 예를 들어, 이하의 도 9 에 대하여 더욱 상세하게 설명된 바와 같이, (비디오 인코더 (20) 또는 비디오 디코더 (30) 와 같은) 비디오 코더는 코딩하는 동안에 모션 정보를 유도하기 위하여, 쌍방적 정합을 모션 정보 유도 모드로서 적용할 수도 있다. 쌍방적 정합에서, 비디오 코더는 제 2 참조 픽처에서의 참조 데이터의 제 2 세트에 대응하는 제 1 참조 픽처에서의 참조 데이터의 제 1 세트에 대한 모션 탐색을 수행할 수도 있다.
이 개시물의 다른 양태들에 따르면, (비디오 인코더 (20) 및/또는 비디오 디코더 (30) 와 같은) 비디오 코더는 도 7 에서 도시된 쌍방적 정합 기법을 이용하여 인코딩 또는 디코딩 루프에서 보간된 프레임을 생성할 수도 있다. 예를 들어, 비디오 코더는 복원된 픽셀 어레이를 이용하여, 보간된 픽처를 현재의 픽처의 예측자로서 보간하기 위하여 픽처 레벨 FRUC 를 이용할 수도 있다. 일부 예들에서, 이러한 보간된 픽처는 참조 픽처 또는 현재의 픽처의 복원으로서 고려될 수도 있다. 다른 예들에서, 비디오 코더는 현재의 픽처를 보간된 픽처와 동일하게 설정할 수도 있다. 이러한 픽처는 신택스 엘리먼트들 또는 디코딩 프로세스들에 의해 폐기가능한 픽처 및/또는 비-참조 픽처로서 표기될 수도 있다.
도 8 은 템플릿 정합 기반 디코더측 모션 벡터 유도 (DMVD) 의 예를 예시하는 개념도이다. 진보된 비디오 코덱들로, 비트스트림에서의 모션 정보의 비트 백분율은 더욱 더 많아진다. 일부 사례들에서, DMVD 는 모션 정보의 비트 코스트를 감소시킬 수도 있다. 템플릿 정합 기반 DMVD 는 예를 들어, S. Kamp, M. Wien, "Decoder-side motion vector derivation for block-based video coding (블록-기반 비디오 코딩을 위한 디코더-측 모션 벡터 유도)", 비디오 기술에 대한 회로들 및 시스템들에 관한 IEEE 트랜잭션들, vol. 22, No. 12, Dec. 2012 에서 설명된 바와 같이, 코딩 효율 개선을 나타낼 수도 있다.
도 8 의 예에서, 현재의 픽처 (120) 는 예측 타겟 (122) (예컨대, 현재 코딩되고 있는 블록) 및 템플릿 (124) 을 포함한다. 참조 픽처들 (126) 은 공동위치된 템플릿 (128), 최상의 정합 (130), 및 변위 벡터 (132) 를 포함한다. (비디오 인코더 (20) 및/또는 비디오 디코더 (30) 와 같은) 비디오 코더는 (예컨대, 아직 코딩되어야 하는 예측 타겟 (122) 자체를 이용하는 것이 아니라) 예측 타겟 (122) 에 대한 최상의 정합을 탐색하기 위하여 템플릿 (124) 을 이용할 수도 있다. 예를 들어, 비디오 코더는 예측 타겟 (122) (예컨대, 템플릿 (124) 의 외부의 참조 데이터의 제 2 세트에 대응하는 참조 데이터 (예컨대, 최상의 정합 (130)) 의 제 1 세트를 식별하기 위하여 모션 탐색을 수행할 수도 있다. 위에서 언급된 바와 같이, 대응관계는 참조 데이터 사이의 유사도의 양에 기초하여 결정될 수도 있고, "정합" 또는 "최상의 정합" 을 결정하는 것으로서 본원에서 지칭될 수도 있다.
도시된 예에서, 비디오 코더는 참조 픽처들 (126) 에서 공동위치된 템플릿 (128) 을 식별할 수도 있다. 다음으로, 비디오 코더는 템플릿 (124) 과 유사한 픽셀 값들을 포함하는 최상의 정합 (130) 을 탐색할 수도 있다. 비디오 코더는 참조 픽처들 (126) 에서의 공동위치된 템플릿 (128) 및 최상의 정합 (130) 의 변위에 기초하여 변위 벡터 (132) 를 결정할 수도 있다.
템플릿 (124) 및 예측 타겟 (122) 이 동일한 객체로부터의 것이라고 가정하면, 템플릿의 모션 벡터는 예측 타겟의 모션 벡터로서 이용될 수 있다. 이 때문에, 도 8 의 예에서, 비디오 코더는 변위 벡터 (132) 를 예측 타겟 (122) 에 적용할 수도 있다. 템플릿 정합이 비디오 인코더 및 비디오 디코더의 양자에서 행해지므로, 모션 벡터는 시그널링 코스트를 회피하기 위하여 디코더 측에서 유도될 수 있다.
이 개시물의 양태들에 따르면, 비디오 코더는 템플릿 정합을 모션 정보 유도 모드로서 적용할 수도 있다. 예를 들어, 비디오 코더는 현재의 픽처의 템플릿 (124) 과 참조 픽처들 (126) 에서의 대응하는 참조 데이터 사이에 최상의 정합을 위치시킴으로써 현재의 블록의 모션 정보를 유도하기 위하여 템플릿 정합을 적용할 수도 있다. 도 8 의 예는 템플릿 (124) 을 비디오 데이터의 L-형상 블록으로서 예시하지만, 다른 템플릿들이 이용될 수도 있다는 것이 이해되어야 한다. 예를 들어, 비디오 코더는 다수의 블록들, 예컨대, 예측 타겟 (122) 의 좌측에 위치된 하나 이상의 블록들 및 예측 타겟 (122) 상부에 위치된 하나 이상의 블록들을 템플릿으로서 이용할 수도 있다.
이 개시물의 양태들에 따르면, 비디오 코더는 모션 벡터들의 후보 리스트로부터의 하나 이상의 모션 벡터들을 이용하여 도 8 에서 도시된 템플릿 정합 기법들을 적용할 수도 있다. 예를 들어, 비디오 코더는 본원에서 설명된 기법들의 임의의 조합을 이용하여 하나 이상의 후보 모션 벡터들을 결정하도록 구성될 수도 있다 (예컨대, 병합 모드 후보들, AMVP 후보들, TMVP 등). 다음으로, 비디오 코더는 공동위치된 템플릿 (128) 을 위치시키기 위하여 후보 모션 벡터들 중의 하나 이상을 템플릿 (124) 에 적용하도록 구성될 수도 있다 (이 예에서, 공동위치된 템플릿 (128) 의 로케이션은 하나 이상의 후보 모션 벡터들에 의해 기술되고, 반드시 엄격하게 공동위치되지는 않음). 비디오 코더는 후보 모션 벡터들 중의 어느 것이 템플릿 (124) 과 공동위치된 템플릿 (128) 사이의 최상의 정합으로 귀착되는지를 결정하도록 구성될 수도 있다.
이 개시물의 양태들에 따르면, 다음으로, 비디오 코더는 예측 타겟 (122) 에 대한 모션 정보를 유도하기 위하여 후보 모션 벡터를 세분화하도록 구성될 수도 있다. 예를 들어, 비디오 코더는 후보 모션 벡터에 의해 식별된 참조 픽처들 (126) 의 영역에서 템플릿 (124) 을 탐색할 수도 있다. 최상의 정합을 결정할 시에, 비디오 코더는 템플릿 (124) 과 결정된 기반 정합 사이의 변위를 결정할 수도 있다. 비디오 코더는 변위를 예측 타겟 (122) 에 대한 유도된 모션 벡터로서 지정할 수도 있다.
도 9 는 DMVD 에서의 양방향 모션 벡터 유도의 예를 예시하는 개념도이다. DMVD 의 또 다른 카테고리는 예를 들어, Y.-J. Chiu, L. Xu, W. Zhang, H. Jiang, "Decoder-side Motion Estimation and Wiener filter for HEVC (HEVC 를 위한 디코더-측 모션 추정 및 위너 필터)", 시각적 통신들 및 이미지 프로세싱 (Visual communications and Image Processing; VCIP), 2013 에서 설명된 바와 같이, 미러 기반 양방향 MV 유도이다. DMVD 에서의 양방향 모션 벡터 유도의 개념은 FRUC 에서의 쌍방적 ME 와 유사할 수도 있다. 예를 들어, 미러-기반 MV 유도는 분수 샘플 정확도에서의 탐색 중심들 근처에서의 중심-대칭적 모션 추정에 의해 적용될 수도 있다.
도 9 의 예는 현재의 블록 (142) (현재 코딩되고 있는 블록) 을 가지는 현재의 픽처 (140), 제 1 참조 픽처 (146) (L0 ref) 의 제 1 템플릿 블록 (144) 을 식별하는 제 1 후보 모션 벡터 PMV0, 및 제 2 참조 픽처 (150) 의 제 2 템플릿 블록 (148) 을 식별하는 제 2 후보 모션 벡터 PMV1 을 포함한다. 비디오 코더는 제 1 참조 픽처 (146) 의 탐색 윈도우 (154) 에서 제 1 참조 블록 (152) 을 위치시키기 위하여, 그리고 제 2 참조 픽처 (150) 의 탐색 윈도우 (158) 에서 제 2 참조 블록 (156) 을 위치시키기 위하여, dMV 를 오프셋으로서 적용할 수도 있다.
예를 들어, 비디오 코더는 MV 쌍, MV0 및 MV1 을 생성하기 위하여, dMV 를 PMV0 에 가산할 수도 있고 PMV1 로부터 dMV 를 감산할 수도 있다. 비디오 코더는 dMV 의 어느 값이 L0 ref 의 제 1 참조 블록 (152) (예컨대, 참조 데이터의 제 1 세트) 과 L1 ref 의 제 2 참조 블록 (156) (예컨대, 참조 데이터의 제 2 세트) 사이의 최상의 정합으로 귀착되는지를 결정하기 위하여 탐색 윈도우 (154 및 158) 내부의 dMV 의 모든 값들을 체크할 수도 있다. 일부 예들에서, 비디오 코더는 절대차의 합 (SAD) 에 기초하여 최상의 정합을 결정할 수도 있다. 다른 예들에서, 비디오 코더는 최상의 정합을 결정하기 위하여 또 다른 메트릭 (metric) 을 이용할 수도 있다. 탐색 윈도우들 (154 및 158) 의 크기 및 로케이션은 미리 정의될 수도 있거나, 비트스트림에서 시그널링될 수도 있다.
비디오 코더는 최소 SAD 를 갖는 MV 쌍을 중심-대칭적 모션 추정의 출력으로서 선택할 수도 있다. 이 기법은 SAD 정합에 대한 미래의 참조 (현재의 프레임보다 더 이후의 시간적 위치에서의 참조) 및 더 이전의 참조 (현재의 프레임보다 더 이전의 시간적 위치에서의 참조) 를 이용하므로, 그것은 오직 전자의 참조가 이용가능한 P 프레임 또는 낮은-지연 B 프레임들에 적용될 수 없다.
이 개시물의 양태들에 따르면, 비디오 코더는 양방향 모션 벡터 유도 기법들을 모션 정보 유도 모드로서 적용할 수도 있다. 일부 예들에서, 비디오 코더는 모션 벡터들의 후보 리스트로부터의 하나 이상의 모션 벡터들을 이용하여 도 9 에서 도시된 기법들을 적용할 수도 있다. 예를 들어, 비디오 코더는 본원에서 설명된 기법들의 임의의 조합을 이용하여 하나 이상의 후보 모션 벡터들을 결정하도록 구성될 수도 있다 (예컨대, 병합 모드 후보들, AMVP 후보들, TMVP 등). 다음으로, 비디오 코더는 제 1 템플릿 블록 (144) 및 제 2 템플릿 블록 (148) 을 위치시키기 위하여 후보 모션 벡터들 중의 하나 이상을 PMV0 및/또는 PMV1 로서 적용하도록 구성될 수도 있다. 비디오 코더는 후보 모션 벡터들 중의 어느 것이 제 1 템플릿 블록 (144) 과 제 2 템플릿 블록 (148) 사이의 최상의 정합으로 귀착되는지를 결정하도록 구성될 수도 있다.
이 개시물의 양태들에 따르면, 다음으로, 비디오 코더는 현재의 블록 (142) 에 대한 모션 정보를 유도하기 위하여 후보 모션 벡터를 세분화하도록 구성될 수도 있다. 예를 들어, 비디오 코더는 위에서 설명된 방식으로서, dMV 의 다양한 값들을 적용함으로써 최상의 정합을 탐색할 수도 있다. 이러한 방법으로, 비디오 코더는 MV 쌍, MV0 및 MV1 을 유도할 수도 있다.
도 11 은 확장된 쌍방적 정합 기반 모션 벡터 유도를 예시하는 개념도이다. (예컨대, 도 10 에서 도시된 바와 같은) 미러 기반 양방향 MV 유도의 하나의 잠재적인 단점은, 그것이 현재의 픽처의 2 개의 참조들이 양자 모두 더 이전이거나, 양자 모두 현재의 픽처보다 더 이후일 때에 작동하지 않는다는 것이다. 본원에서 설명된 확장된 쌍방적 정합 기법들은 일부 사례들에서, 현재의 픽처의 모든 참조 픽처들이 현재의 픽처와 (디스플레이 순서에서) 동일한 측에 있다는 단점을 극복한다.
도 11 의 예는 현재의 블록 (162) 을 포함하는 현재의 픽처 (160), 제 1 참조 블록 (166) 을 포함하는 제 1 참조 픽처 (Ref0) (164), 및 제 2 참조 블록 (170) 을 포함하는 제 2 참조 픽처 (Ref1) (168) 를 포함한다. 도 11 에서 도시된 바와 같이, 제 1 참조 픽처 (Ref0) (164) 및 제 2 참조 픽처 (Ref1) (168) 는 시간적 방향에서 현재의 픽처 이전에 양자 모두 위치된다. 제 1 참조 블록 (166), 제 2 참조 블록 (170), 및 현재의 블록 (162) 이 동일한 모션 궤도를 따르는 것으로 가정하면, MV0 및 MV1 사이의 비율은 시간적 거리 TD0 및 TD1 사이의 비율과 동일할 것이다. 다시 말해서, Ref0 에서의 임의의 MV0 에 대하여, 현재의 픽처까지의 시간적 거리 TD0 및 TD1 을 갖는 2 개의 참조들 Ref0 및 Ref1 이 주어지면, Ref1 에서의 MV1 은 MV0 를 스케일링하여 결정될 수도 있다.
비디오 코더는 (예컨대, 도 10 에 대하여 위에서 설명된 바와 같이) 최종적인 MV0 및 MV1 쌍을, MV0 및 MV1 에 의해 지시된 블록 쌍 사이의 정합 코스트를 최소화하는 쌍으로서 선택할 수도 있다. 이론적으로, 현재의 블록 (162) 은 제 1 참조 블록 (166) 및 제 2 참조 블록 (170) 에 기초하여 외삽된 블록으로서 간주될 수도 있다. 확장된 쌍방적 정합은 또한, 현재의 픽처가 시간적으로 2 개의 참조들 사이에 있는 정상적인 양방향의 경우에 작동한다는 것이 주목되어야 한다. 이 경우, 현재의 블록 (162) 은 제 1 참조 블록 (166) 및 제 2 참조 블록 (170) 에 기초하여 보간된 블록으로서 간주될 수도 있다. 또한, 본원에서 설명된 쌍방적 정합 기법들은 심지어 양방향의 경우에도, MV0 및 MV1 사이의 "미러 관계" 를 요구하지 않는다. 쌍방적 정합의 가정은, MV0 및 MV1 사이의 비율이 Ref0 으로부터 현재의 픽처까지와, Ref1 로부터 현재의 픽처까지의 시간적 거리 사이의 비율에 비례한다는 것이다.
명확하게, 제 1 참조 블록 (166) 및 제 2 참조 블록 (170) 이외의 참조 블록들에 대하여, 비디오 코더는 상이한 MV 쌍을 유도할 수도 있다. 하나의 예에서, 비디오 디코더는 참조 픽처들이 참조 픽처 리스트에서 나타나는 순서에 따라 쌍방적 정합을 수행하기 위한 참조 픽처들을 선택할 수도 있다. 예를 들어, 비디오 코더는 참조 리스트 0 에서의 제 1 참조를 Ref0 으로서, 그리고 참조 리스트 1 에서의 제 1 참조를 Ref1 로서 선택할 수도 있다. 다음으로, 비디오 코더는 MV 쌍 (MV0, MV1) 을 탐색할 수도 있다. 또 다른 예에서, 비디오 코더는 초기 리스트 (예컨대, 초기 모션 벡터 후보 리스트) 에서의 엔트리에 기초하여 Ref0 을 선택한다. 다음으로, 비디오 코더는 Ref1 을, 현재의 픽처에 시간적으로 가장 근접한 다른 참조 픽처 리스트에서의 참조 픽처로 설정할 수도 있다. 결과적으로, 비디오 코더는 Ref0 및 Ref1 에서 MV 쌍 (MV0, MV1) 을 탐색할 수도 있다.
이 때문에, 이 개시물의 양태들에 따르면, 비디오 코더는 도 11 에서 예시된 확장된 양방향 모션 유도 기법들을 모션 정보 유도 모드로서 적용할 수도 있다. 예를 들어, 비디오 코더는 2 개의 상이한 참조 픽처들에서의 현재의 블록의 모션 궤도를 따라 (예컨대, 제 1 참조 블록 (166) 및 제 2 참조 블록 (170) 과 같은) 2 개의 블록들 사이의 최상의 정합을 구함으로써, 현재의 블록 (162) 의 모션 정보를 유도하기 위하여 쌍방적 정합을 이용할 수도 있다. 연속적인 모션 궤도의 가정 하에서, 2 개의 참조 블록들, 제 1 참조 블록 (166) 및 제 2 참조 블록 (170) 을 지시하는 모션 벡터들 MV0 및 MV1 은 현재의 픽처와 2 개의 참조 픽처들 사이의 시간적 거리들, 즉, TD0 및 TD1 에 비례할 것이다. 특수한 경우로서, 현재의 픽처 (160) 가 시간적으로 (도 10 의 예에서 도시된 바와 같은) 2 개의 참조 픽처들 사이에 있고 현재의 픽처로부터 2 개의 참조 픽처들까지의 시간적 거리가 동일할 때, 쌍방적 정합은 미러 기반 양방향 MV 가 된다.
도 11 은 DMVD 를 이용하여 예측 유닛 (PU) 을 디코딩하는 예를 예시하는 플로우차트이다. Y.-J. Chiu, L. Xu, W. Zhang, H. Jiang, "Decoder-side Motion Estimation and Wiener filter for HEVC (HEVC 를 위한 디코더-측 모션 추정 및 위너 필터)", 시각적 통신 및 이미지 프로세싱 (Visual communications and Image Processing; VCIP), 2013 에서는, 미러 기반 양방향 MV 유도를 HEVC 에서의 병합 모드와 조합하는 것이 추가로 제안되었다. 제안된 기법에서, pu_dmvd_flag 로 칭해진 플래그는 DMVD 모드가 현재의 PU 에 적용되는지를 표시하기 위하여 B 슬라이스들의 PU 에 대하여 추가된다. DMVD 모드는 비트스트림에서 임의의 MV 정보를 명시적으로 송신하지 않으므로, pu_dmvd_flag 신택스 엘리먼트는 (모션 벡터 자체가 아니라 모션 벡터를 표현하는 데이터에 대한 인덱스를 이용하는) HEVC 에서의 병합 모드의 신택스와 통합된다.
도 11 의 예에서, (비디오 디코더 (30) 와 같은) 비디오 디코더는 PU 를 디코딩하는 것을 시작할 수도 있다 (180). 비디오 디코더 (30) 는 예컨대, PU 를 포함하는 비트스트림 내에 포함된 신택스에 기초하여, PU 를 디코딩하기 위하여 이용된 모드가 병합 모드인지 여부를 결정할 수도 있다 (182). 병합 모드가 이용되지 않을 경우 (단계 (182) 의 "아니오" 가지), 비디오 디코더 (30) 는 PU 를 디코딩하기 위하여 비-병합 PU 에 대한 규칙적인 프로세스를 이용할 수도 있고 (184), 프로세스를 완료할 수도 있다 (186).
병합 모드가 이용될 경우 (단계 (182) 의 "예" 가지), 비디오 디코더 (30) 는 pu_dmvd_flag 신택스 엘리먼트의 값에 기초하여, DMVD 가 PU 에 대한 모션 정보를 결정하기 위하여 이용되는지 여부를 결정할 수도 있다 (188). DMVD 가 이용되지 않을 경우 (단계 (188) 의 "아니오" 가지), 비디오 디코더 (30) 는 PU 를 디코딩하기 위하여 규칙적인 병합 모드를 이용할 수도 있고 (190), 프로세스를 완료할 수도 있다 (186). DMVD 가 이용될 경우 (단계 (188) 의 "예" 가지), 비디오 디코더 (30) 는 PU 에 대한 모션 정보를 결정하기 위하여 DMVD 프로세스를 적용할 수도 있고 (192), 프로세스를 완료할 수도 있다 (186).
일부 사례들에서, 현재의 비디오 코딩 기법들은 어떤 제한들을 가질 수도 있다. 예를 들어, 어떤 DMVD 기법들은 FRUC 기술의 서브세트로서 간주될 수도 있다. DMVD 가 비디오 코딩에서 적용되었지만, 다른 효율적인 FRUC 기법들은 비디오 코딩에서, 예컨대, 비디오 인코더 또는 비디오 디코더에 의한 비디오 코딩 루프에서 구현되지 않았다. 게다가, DMVD 의 상이한 기법들이 제안되었지만, 이러한 기법들의 상호작용 및 중첩은 디코더에서 활용되지 않는다. 즉, 오직 하나의 DMVD 모드는 다른 비디오 코딩 시스템들에서 이용되었다. 코딩 효율을 추가로 개선시키기 위하여 복수의 DMVD 기법들을 이용하기 위한 방식은 연구되지 않았다.
또 다른 잠재적인 제한으로서, DMVD 는 비디오 데이터의 비교적 큰 블록들에 오직 적용할 수도 있고, 그러므로, 매우 효율적이지 않을 수도 있다. 더 작은 블록들에 대하여 이러한 방법들을 적용하는 것은 시그널링 코스트로 인한 상당한 오버헤드를 초래할 수도 있다. 일부 사례들에서, 전통적인 DMVD 기법들에 대한 탐색 범위는 비교적 작을 수도 있고, 오직 몇몇 포인트들, 예컨대, 16 포인트들이 탐색된다. 게다가, 위에서 언급된 바와 같이, 현재의 픽처 이전 및 이후의 디스플레이 순서를 갖는 2 개의 참조픽처들이 식별될 필요가 있고 이것은 낮은 지연의 경우에 가능하지 않으므로, 미러 기반 양방향 MV 유도는 낮은 지연-B 의 경우에 적용될 수 없다.
또 다른 잠재적인 제한은, 디코더에서, 전통적인 DMVD 기법들의 정합 코스트가 왜곡을 오직 고려할 수도 있다는 것일 수도 있다. 그러나, 모션 벡터 크기는 정합 코스트에서 고려되지 않았고, 이것은 예컨대, 픽셀 도메인에서의 잡음으로 인해, 국소적인 최적화 또는 정합의 부정확한 결과를 초래할 수도 있다. 또한, 전통적인 DMVD 기법들의 복잡도는 특히, 보간이 디코더에서의 탐색 동안에 분수-펠 모션 벡터들에 대하여 필요하게 된다는 사실로 인해, 메모리 대역폭 및 연산 복잡도의 양자의 측면에서 비교적 높을 수도 있다.
이 개시물의 기법들은 위에서 설명된 잠재적인 제한들 중의 하나 이상을 다룰 수도 있다. 일부 예들에서, 모션 정보를 유도하기 위한 기법들은 개별적으로 적용될 수도 있다. 대안적으로, 본원에서 설명된 기법들의 임의의 조합은 함께 적용될 수도 있다. 본원에서 설명된 바와 같이, 참조 인덱스 정보는 일반적으로 모션 정보의 일부로서 간주될 수도 있다. 일부 사례들에서, 모션 벡터 정보 및 참조 인덱스 정보는 모션 정보의 세트로서 지칭될 수도 있다.
이 개시물의 어떤 기법들은 복수의 잠재적인 모션 유도 모드들로부터 모션 유도 모드를 선택하는 것을 포함한다. 예를 들어, 이 개시물의 양태들에 따르면, 비디오 코더 (예컨대, 비디오 인코더 (20) 또는 비디오 디코더 (30)) 는 비트스트림에서의 모션 정보의 시그널링을 회피하기 위하여, 비디오 디코더에서 모션 정보의 더욱 양호한 예측을 제공하기 위한 2 개 이상의 모션 유도 기법들을 이용할 수도 있다. 2 개 이상의 모션 유도 기법들은 쌍방적 정합, 템플릿 정합, 및 임의의 다른 정합 방법을 포함할 수도 있지만, 이것으로 제한되지 않는다. 이 기법들은 일반적으로, 모션 정보 유도 모드들 또는 FRUC 모드들로서 지칭될 수도 있다. 이 때문에, 일부 사례들에서, FRUC 모드로서 지칭된 기법은 그 대신에 (예컨대, 비디오 데이터의 새로운 블록을 보간하는 것이 아니라) 현재의 블록에 대한 모션 정보를 보간하기 위하여 이용될 수도 있다는 것이 이해되어야 한다.
일부 예들에서, 상이한 유도 방법들에 대한 상이한 최적화 방법들을 가지는 대신에, 다수의 모션 유도 방법들이 이용될 때, 모션 유도 방법들의 2 개 이상에 대한 최상의 모션을 구하기 위한 프로세스는 탐색을 위한 시작 포인트들의 선택과, 시작 포인트들 주위에서 어떻게 탐색할 것인지의 측면에서 정렬될 수도 있다. 예를 들어, 비디오 코더는 모션 벡터 후보 리스트를 구성할 수도 있고, 리스트로부터 초기 후보를 선택할 수도 있고, 동일한 탐색 및 정합 기법들을 이용하여 후보를 세분화할 수도 있다. 이 예에서, 양방향 모션 유도 및 템플릿 정합 기반 모션 유도는 디코더 측에서 적응적 방식으로 이용될 수도 있다.
이 개시물의 양태들에 따르면, 블록-레벨에서의 추가적인 시그널링은 어느 모션 유도 방법이 현재의 블록을 코딩하기 위하여 이용되는지를 식별하기 위하여 도입된다. 예를 들어, 비디오 코더는 모션 정보 유도가 인에이블되는지 여부를 표시하기 위하여 하나 이상의 신택스 엘리먼트들을 코딩할 수도 있다. 비디오 코더는 또한, 복수의 잠재적인 모드들로부터의 특정한 모션 정보 유도 모드를 표시하기 위하여 하나 이상의 신택스 엘리먼트들을 코딩할 수도 있다. 다른 예들에서, 이용되어야 할 모션 정보 유도 기법은 시그널링되는 것이 아니라, 예를 들어, 현재의 블록이 디코딩되기 전에 이용가능한 예측 모드 또는 다른 정보에 기초하여 비디오 디코더에서 유도될 수도 있다. 또 다른 예들에서, 비디오 코더는 다수의 모션 정보 유도 모드들을 수행할 수도 있고, 현재의 블록을 코딩하기 위하여 2 개 이상의 유도 기법들로부터 예측들의 가중화된 평균을 결정할 수도 있다.
예시의 목적들을 위한 예에서, 비디오 디코더 (30) 와 같은 비디오 디코더는 (예컨대, 비트스트림에서의 신택스에 기초하여) 모션 정보 보간 모드를 적용할 것인지 여부를 먼저 식별할 수도 있다. 다음으로, 비디오 디코더 (30) 는 (예컨대, 비트스트림에서의 신택스에 기초하여) 어느 모션 정보 유도 모드가 적용되어야 하는지를 식별할 수도 있다. 하나의 예에서, 다수의 모션 유도 방법들, 예컨대, 확장된 쌍방적 정합 및 템플릿 정합 모드들의 양자가 동시에 지원될 때, 인덱스 값은 어느 모션 유도 방법이 현재의 블록에 대하여 실제적으로 이용 중인지를 표시하기 위하여 비트스트림에서 시그널링될 수도 있다. 인덱스는 오프 (off), 확장된 쌍방적 정합, 및 템플릿 정합을 포함하는 3 개의 값들을 가질 수도 있다.
CABAC 코딩을 이용할 때, 2 개의 빈 (bin) 들은 인덱스를 표현하기 위하여 이용될 수도 있다. 2 개의 빈들은 양자 모두 공간적 이웃들을 컨텍스트들로서 이용할 수도 있거나, 이것들 중의 오직 하나는 공간적 이웃들 컨텍스트들을 이용할 수도 있다. 대안적으로, 하나 또는 양자의 빈들은 CU 심도와 같은 다른 코딩된 정보를 컨텍스트들로서 이용할 수도 있다. 인덱스의 2진화 (binarization) 오프에 대하여 "0", 확장된 쌍방적 정합에 대하여 "10", 및 템플릿 정합에 대하여 "11"과 같이, 미리 정의될 수도 있다. 대안적으로, 인덱스의 2진화는 슬라이스 헤더에서 시그널링될 수도 있거나, 슬라이스 타입, 시간적 레벨, 또는 QP 정보와 같은 코딩된 정보로부터 유도될 수도 있다.
이 개시물의 양태들에 따르면, 모션 정보 유도 모드를 표시하는 신택스는 또 다른 코딩 모드와 함께 포함될 수도 있다. 하나의 예에서, 모션 정보 유도 모드는 특정한 병합 후보로 고려될 수도 있고, 이에 따라, 병합 인덱스에 의해 표시될 수도 있다. 이 경우, 병합 후보 리스트의 크기는 추가적인 인덱스를 수용하기 위하여 증가될 수도 있다. 모션 정보 유도 모드에 대한 병합 후보 인덱스는 미리 정의될 수도 있거나, 비트스트림에서 시그널링될 수도 있다.
일부 예들에서, 확장된 쌍방적 정합 및 템플릿 정합은 양자 모두 병합 모드로 지원된다. 이러한 예들에서, merge_flag 가 1 과 동일할 때, 새로운 모션 정보 유도 플래그는 모션 정보가 현재의 PU 에 대하여 유도되는지 여부를 표시하기 위하여 시그널링된다. 플래그는 상부 및 좌측 블록들과 같은 그 공간적 이웃의 동일한 플래그를 CABAC 코딩 컨텍스트들로서 이용할 수도 있다. 이 플래그가 온 (on) 일 때, 제 2 플래그는 어느 모션 정보 유도 모드 (예컨대, 확장된 쌍방적 정합 또는 템플릿 정합) 가 블록의 모션 정보를 유도하기 위하여 이용되는지를 표시하기 위하여 시그널링된다. 모션 유도가 온 일 때, 현재의 모드가 병합 모드이더라도, 병합 인덱스가 시그널링되지 않는다. 대안적으로 또는 추가적으로, (예컨대, 템플릿 정합과 같은) 특정한 모션 정보 유도는 PU 가 디코딩 순서에서 CU 의 제 1 PU 가 아닐 경우에 허용되지 않는다. 이 경우, 오직 플래그는 확장된 쌍방적 정합이 PU 에 대하여 이용되는지 아닌지 여부를 표시하기 위하여 시그널링될 필요가 있다.
또 다른 예에서, 모션 정보 유도 모드는 예컨대, PU 레벨에서, AMVP 모드와 조합될 수도 있다. 하나의 예에서, 추가적으로, 신택스 엘리먼트들 (예컨대, 추가적인 플래그) 은 모션 정보 유도 모드를 표시하기 위하여 시그널링될 수도 있다. 이 모드가 온 일 때, AMVP 인덱스는 비트스트림에서 시그널링되지 않을 수도 있다. 그렇지 않을 경우, 규칙적인 AMVP 인덱스가 비트스트림에서 시그널링될 수도 있다. 또 다른 예에서, 모션 정보 유도 모드는 AMVP 후보 리스트에서, 최초 AMVP 후보와 같은 특정한 AMVP 후보로서 간주될 수도 있다. 일부 사례들에서, AMVP 모드와 조합될 때, 모션 벡터는 서브-PU 레벨에서 유도되지 않을 수도 있다.
다른 양태들에 따르면, 비디오 코더는 현재의 CU 내의 모든 PU 들이 모션 정보 유도 모드를 이용하는지 여부를 표시하기 위하여 (예컨대, 인터-코딩된 CU 에 대하여) CU 레벨 플래그를 초기에 조건부로 코딩할 수도 있다. 하나의 예에서, PU 레벨 플래그는 시그널링되지 않는다. 또 다른 예에서, CU 플래그가 0 과 동일할 때 (즉, 모든 PU 들이 모드로 코딩되지는 않음), 제 1 PU 의 PU-레벨 플래그는 추가로 시그널링되는 반면, 제 2 PU 는 PU-레벨 플래그를 포함하지 않는다.
일부 예들에서, 모션 정보 유도 모드는 특정 슬라이스 타입들, 시간적 레벨들, 블록 타입들, 또는 블록 크기들에 대하여 디스에이블될 수도 있다. 하나의 예에서, 모션 정보 유도는 현재의 슬라이스가 시간적 위치들이 모두 현재의 픽처의 이전 또는 이후인 참조 픽처들을 오직 포함할 때에 허용되지 않는다. 또 다른 예에서, 모션 정보 유도는 비-2Nx2N PU 들에 대하여 허용되지 않는다. 모션 정보 유도를 디스에이블할 때, 모션 정보 유도에 관련된 블록-레벨 시그널링은 필요하지 않다.
이 개시물의 양태들에 따르면, 본원에서 설명된 모션 정보 유도 기법들을 인에이블하거나 디스에이블하는 것은 더욱 양호한 복잡도 대 코딩 효율 절충 및/또는 인코더/디코더 신축성을 제공하기 위하여 하이-레벨 신택스에 의해 제어될 수도 있다. 하나의 예에서, 플래그는 모션 정보 유도 모드의 사용을 표시하기 위하여, SPS, PPS, 슬라이스 헤더, 또는 임의의 다른 하이 레벨 신택스 헤더에서 시그널링될 수도 있다. 이 플래그가 이 코딩 모드가 인에이블되지 않는다는 것을 표시할 때, CU/PU 레벨 플래그들은 비트스트림에서 코딩되지 않을 수도 있다.
일부 사례들에서, 하이 레벨 신택스는 추가적으로 또는 대안적으로, 모션 정보 유도의 다른 파라미터들을 표시하기 위하여 이용될 수도 있다. 예를 들어, PU-레벨 모션 벡터를 탐색하기 위하여 이용되어야 하는 탐색 알고리즘의 인덱스는 SPS, PPS, 또는 슬라이스 헤더 내의 비트스트림에서 코딩될 수도 있다. 일부 사례들에서, 서브-블록 레벨 모션 벡터를 탐색하기 위하여 이용되는 탐색 알고리즘 인덱스는 SPS, PPS, 또는 슬라이스 헤더 내의 비트스트림에서 코딩될 수도 있다. 일부 예들에서, 디코더 측에서 낮은 연산 복잡도를 유지하기 위하여, PU 레벨에서의 블록/파티션 정합의 최대 수들, 서브-PU 레벨에서의 블록/파티션 정합의 최대 수들, 및/또는 PU 및 서브-PU 레벨 양자의 총 정합 수는 제약될 수도 있다. 일부 사례들에서, 이러한 최대 수들은 미리 정의될 수도 있거나, 비트스트림에서 시그널링될 수도 있다.
이 개시물의 기법들은 모션 정보를 유도하기 위한 다양한 기법들을 포함한다. 일부 예들에서, 비디오 코더는 모션 벡터들을 포함하는 엔트리들의 초기 리스트 (시작 후보 리스트) 를 결정할 수도 있고, 최상의 시작 포인트는 초기 리스트로부터의 엔트리로서 식별된다. 모션 벡터들을 포함하는 엔트리들은 공간적 이웃들, 시간적 이웃들, 및/또는 다른 수단에 의해 유도된 모션 벡터들로부터의 모션 벡터들일 수도 있다. 대안적으로, 최상의 시작 포인트 (또는 최상의 시작 포인트의 인덱스) 는 디코더로 시그널링될 수도 있다.
일부 예들에서, 초기 리스트는 공간적 및또는 시간적 이웃들로부터의 모션 벡터들을 포함할 수도 있다. 초기 리스트의 각각의 엔트리는 하나의 모션 벡터 및 그 참조 인덱스를 포함하는 모션 정보의 단방향-예측 세트일 수도 있다. 하나의 예에서, 초기 리스트는 예를 들어, 병합 후보 리스트와 동일한, 또 다른 코딩 모드에서 이용된 모션 예측 후보 리스트와 동일한 방법으로 생성될 수도 있다. 이 경우, 각각의 병합 후보의 2 개에 이르는 모션 벡터들은 초기 리스트에서의 2 개에 이르는 엔트리들을 생성하기 위하여 이용될 수 있다. 일부 사례들에서, 초기 리스트에서의 엔트리들은 또 다른 코딩 모드에서 이용된 리스트에서의 모션 예측 후보들의 서브세트, 예를 들어, 병합 후보 리스트의 서브세트로부터 생성될 수도 있다.
또 다른 예에서, 추가적인 모션 벡터들은 또 다른 코딩 모드에서 이용된 모션 예측 후보들 리스트에서의 것들에 추가하여, 예를 들어, 병합 후보 리스트에서의 것들에 추가하여, 초기 리스트 내로 추가될 수도 있다. 대안적으로 또는 추가적으로, 상부 블록, 좌측 블록, 상부 우측 블록, 또는 또 다른 블록과 같은, 현재의 블록의 공간적 이웃들의 모션 벡터들은 초기 리스트에 추가될 수도 있다. 일부 사례들에서는, 상이한 참조 픽처 인덱스들을 갖는 제로 모션 벡터들이 또한 리스트에 추가될 수도 있다.
대안적으로 또는 추가적으로, 현재의 블록 (예컨대, 현재의 블록에 대한 TMVP) 의 시간적으로 공동위치된 블록들의 모션 벡터들, 및/또는 참조 픽처들에서의 현재의 블록의 시간적으로 하부-우측 공동위치된 블록들의 모션 벡터들은 초기 리스트에 추가될 수도 있다. 특정한 후보 모션 벡터를 리스트에 추가하기 전에, 모션 벡터들은 시간적 거리에 기초하여 스케일링될 수도 있거나, 스케일링되지 않을 수도 있다.
일부 양태들에 따르면, 모션 벡터는 참조 픽처로부터 보간될 수도 있고 및/또는 외삽될 수도 있고, 초기 리스트에서 추가될 수도 있다. 예를 들어, 인터 픽처를 코딩하기 전에, 픽처의 보간된 및/또는 외삽된 모션 필드는 일방적 ME-유사 기법으로 그 참조 픽처들에 기초하여 생성될 수도 있다. 블록의 보간된 및/또는 외삽된 모션 필드는 MV 예측을 위하여 이용될 수도 있거나, 모션 정보 유도 모드의 MV 탐색에서 추가적인 시작 후보들로서 이용될 수도 있다. 보간된 및/또는 외삽된 모션 필드는 4x4 또는 8x8 또는 임의의 다른 미리 정의된/시그널링 블록 레벨의 단위로 저장되고, PU 는 다수의 보간된 및/또는 외삽된 MV 들이 이용될 수도 있도록, 다수의 이러한 블록들을 포함할 수도 있다는 것에 주목한다.
하나의 예에서, 양자의 참조 리스트들에서의 각각의 참조 픽처들의 모션 필드는 NxN 블록 대 NxN 블록으로 횡단되고, 여기서, N 은 4, 8, 또는 16 과 같이 미리 정의될 수도 있거나, 시그널링될 수도 있다. 각각의 블록에 대하여, 블록에 연관된 모션이 현재의 픽처에서의 NxN 블록을 통과하고 블록에는 임의의 보간된 모션이 배정되지 않았을 경우, 참조 블록의 모션은 TMVP 에서의 MV 스케일링의 그것과 동일한 방법으로 현재의 픽처로 스케일링되고, 스케일링된 모션은 현재의 프레임에서 블록에 배정된다. 스케일링된 MV 가 NxN 블록에 배정되지 않을 경우, 블록의 모션은 보간된 모션 필드에서 이용불가능한 것으로서 표기된다. 또 다른 예에서, 현재의 픽처에서의 NxN 블록에는, 보간된 모션 필드에서의 다수의 모션 벡터들이 배정될 수도 있다.
일부 사례들에서, 비디오 코더는 후보 리스트로부터 하나 이상의 후보들을 프루닝할 수도 있다. 프루닝은 최상의 시작 포인트 선택 프로세스 전에, 예컨대, 리스트의 각각의 후보에 대한 정합 코스트를 계산하기 전에, 초기 리스트로부터 동일한 엔트리들을 제거하기 위하여 적용될 수도 있다.
일부 사례들에서, 각각의 참조 리스트에서의 최초 픽처는 참조 픽처로서 이용될 수도 있고, 모션 벡터 후보들은 필요한 경우에 이에 따라 스케일링된다. 이러한 경우, 초기 리스트의 각각의 엔트리의 참조 인덱스는 모션 벡터가 예컨대, TMVP 에서와 유사한 POC 거리에 기초하여 스케일링된 후에 수정될 수도 있다. 일부 사례들에서, 각각의 엔트리의 참조 인덱스는 1 개 또는 2 개의 픽처들에 고정될 수 있고, 연관된 모션 벡터들은 이러한 픽처들을 향해 스케일링될 수 있다.
하나의 예에서, 쌍방적 정합에 대하여, 모션 벡터들과, 각각 참조 리스트 0 및 리스트 1 에 대한 그 연관된 참조 인덱스들의 양자를 포함하는 모션 정보의 전체 세트인 모션 벡터 쌍은 초기 후보 리스트의 각각의 엔트리에 기초하여 획득될 수도 있다. 다음으로, 비디오 코더는 초기 리스트에서의 모든 엔트리들로부터 생성된 모든 MV 쌍들에 대한 쌍방적 정합을 수행할 수도 있고, 최소 정합 코스트를 초래하는 후보를 선택할 수도 있다.
MV 쌍을 생성하기 위하여, 비디오 코더는 초기 리스트의 엔트리를 제 1 모션 벡터로서 선택할 수도 있고, 제 2 모션 벡터를 생성할 수도 있다. 예를 들어, 하나의 엔트리는 현재의 제 1 모션 벡터 MVA 를 포함하고, 그것은 참조 픽처 리스트 A (A 는 0 또는 1 과 동일함) 에서의 제 1 참조 픽처에 대한 (POC 값 POCA 을 갖는) 연관된 참조 인덱스인 것을 가정한다. 현재의 픽처의 POC 값이 POCC 인 것을 가정하면, 비디오 코더는 그 POC 값 POCB 이 (2 × POCC - POCA) 과 동일하도록, 참조 픽처 리스트 B (B 는 1-A 와 동일함) 로부터 제 2 참조 픽처를 구하도록 구성될 수도 있다. 참조 픽처 리스트 B 에서의 참조 픽처가 (2× POCC-POC0) 과 동일한 POC 값을 가지지 않을 경우, 비디오 코더는 POCB 가 POCA 와 동일하지 않고 POCC-POCB 의 절대 값이 최소가 되도록 리스트 B 에서의 모든 참조 픽처들을 체크함으로써, 제 2 참조 픽처를 선택할 수도 있다. 요약하면, 비디오 코더는 동일한 POC 거리를 가지는 (디스플레이 순서에서의) 현재의 픽처의 다른 측 상에 위치된 픽처를 선택할 수도 있다. 이용가능하지 않을 경우, 비디오 코더는 현재의 픽처까지의 최소 거리를 가지는 다른 측 상의 픽처를 선택할 수도 있다. 모든 참조 픽처들이 현재의 픽처와 비교될 때, POCA 를 갖는 제 1 참조와 동일한 시간적 측 상에 있을 경우, 비디오 코더는 현재의 픽처에 시간적으로 가장 근접하고 POCA 이외의 POC 를 가지는 참조를 선택할 수도 있다. 상기한 가정들 하에서, 비디오 코더는 예컨대, TMVP 에서와 같은 POC 차이에 기초하여, 제 2 참조 픽처와 연관된 제 2 모션 벡터를 생성하기 위하여, 제 1 모션 벡터 MVA 를 스케일링할 수도 있다. 대안적으로, 쌍방적 MV 가정에 기초한 임의의 기법들은 제 2 참조 픽처 및 그 모션 벡터를 생성하기 위하여 이용될 수도 있다.
일부 양태들에 따르면, 2 개의 시작 모션 벡터들은 초기 리스트로부터 선택될 수도 있다. 이 2 개의 모션 벡터들의 각각은 초기 리스트의 2 개의 서브세트들에서의 엔트리들로부터 (최소 정합 코스트의 측면에서) 선택된다. 각각의 서브 서브세트는 오직 참조 픽처 리스트 0 에 대한, 또는 오직 참조 픽처 리스트 1 에 대한 참조 인덱스와 연관된 모션 벡터들을 포함한다.
이 개시물의 양태들에 따르면, 비디오 코더는 모션 벡터와 연관된 정합 코스트에 기초하여 후보로부터 후보를 선택하도록 구성될 수도 있다. 게다가, 후보 리스트로부터 후보를 선택한 후, 비디오 코더는 블록에 대한 모션 정보를 유도하기 위하여 후보 모션 벡터를 세분화할 수도 있다. 예를 들어, 후보 모션 벡터는, 그 후에 정합 코스트에 기초하여 최상의 정합을 구하기 위하여 탐색될 수도 있는 참조 픽처의 시작 포인트를 표시하기 위하여 이용될 수도 있다.
이 개시물의 양태들에 따르면, 다양한 정합 코스트들은 예컨대, 초기 모션 벡터 후보에 대한 최상의 정합을 결정할 때, 및/또는 초기 모션 벡터 후보를 세분화할 때에 이용될 수도 있다. 하나의 예에서, 블록의 모션을 탐색할 때, MV 코스트는 잡음에 의한 부정적인 영향을 회피하기 위하여 정합 코스트 내에 포함될 수도 있다. 예를 들어, MVR 로서 나타낸 모션 벡터의 세분화 부분 (예컨대, 현재의 MV 와 탐색 중심 사이의 차이) 은 코스트를 계산하기 위하여 이용될 수도 있다. 이 예에서, 코스트는 w*(|MVR[0]|+|MVR[1]|) 일 수도 있고, 여기서, w 는 시그널링될 수도 있거나 미리 정의될 수도 있는 가중화 인자이고, MVR[0] 및 MVR[1] 은 MVR 의 2 개의 컴포넌트들이다. 대안적으로, 세분화된 모션 벡터 MV 는 코스트를 예컨대, w*(|MV[0]|+|MV[1]|) 로서 계산하기 위하여 이용될 수 있다.
일부 예들에서, 블록이 비교적 작을 때, 예컨대, 4x4 또는 더 작을 때, 블록 (예컨대, 확장된 경계들을 갖는 블록) 을 커버하는 더 큰 블록은 잡음을 억압하기 위하여 정합 코스트 계산에서 이용될 수도 있다. 예를 들어, 4x4 블록에 대한 최상의 정합을 탐색할 때, 정합 코스트는 블록인 중심 블록을 갖는 8x8 블록에 기초하여 계산될 수도 있다.
일부 예들에서, 정합 코스트는 절대차의 합 (SAD), 예측의 제곱된 에러들의 합 (sum of squared errors of prediction; SSE), 또는 절대 변환된 차이들의 합 (sum of absolute transformed differences; SATD) 과 같은 임의의 종류의 거리/코스트일 수도 있다. 연산 복잡도를 감소시키기 위하여, SAD, SSE, 또는 다른 코스트는 수평, 수직, 또는 양자의 방향들에서의 감소된 해상도로 계산될 수도 있다. 예를 들어, 8x8 블록에 대하여, SAD 는 오직 홀수 행들에 기초하여 계산될 수도 있다. 또 다른 예에서, 정합 코스트는 블록의 선택된 서브세트에 기초하여 계산될 수도 있고, 예를 들어, 그것의 오직 중심 영역이 이용될 수도 있다.
이 개시물의 양태들에 따르면, 최상의 정합 (예컨대, 정합 코스트에 기초한 선택된 후보) 에 대한 세분화 프로세스는 더욱 효율적이지만 낮은 복잡도의 탐색을 달성하기 위하여 예컨대, 2x2 윈도우 (여기서, 유닛은 픽셀이고, 분수 모션 벡터들은 윈도우 내에서 탐색될 수 있음) 내에서, 작은 윈도우를 항상 이용하는 대신에, 미리 정의된 또는 시그널링된 탐색 윈도우 내에서 수행될 수도 있다. 이 예에서, (예컨대, 16x16 의 크기를 갖는) 탐색 윈도우의 범위는 미리 정의될 수도 있거나, 비트스트림에서 시그널링될 수도 있다.
탐색하기 위한 탐색 알고리즘은 전체 탐색, 3-단계 탐색, 다이아몬드 탐색, 예를 들어, Lurng-Kuo Liu, Ephraim Feig, "A block-based gradient descent search algorithm for block motion estimation in video coding (비디오 코딩에서의 블록 모션 추정을 위한 블록-기반 그래디언트 하강 탐색 알고리즘)", IEEE Trans. Circuits Syst. Video Technol., vol. 6, pp, 419-422, Aug.1996 에서 설명된 바와 같은 블록-기반 그래디언트 하강 탐색 알고리즘 (BBGDS), 또는 예를 들어, Jo Yew Tham, Surendra Ranganath, Maitreya Ranganath, 및 Ashraf Ali Kassim, "A novel unrestricted center-biased diamond search algorithm for block motion estimation (블록 모션 추정을 위한 신규한 비한정된 중심-기반 다이아몬드 탐색 알고리즘)", IEEE Trans. Circuits Syst. Video Technol., vol. 8, pp. 369-377, Aug. 1998 에서 설명된 바와 같은 비한정된 중심-기반 다이아몬드 탐색 알고리즘 (UCBDS) 과 같이, 미리 정의될 수도 있다.
일부 사례들에서, 차이 탐색 기법들은 시그널링 또는 미리 정의된 기준들에 기초하여 상이한 사례들에서 이용될 수도 있다. 예를 들어, 전체 PU 를 탐색하기 위하여, 다이아몬드 탐색이 이용될 수도 있다. 서브-PU 를 탐색하기 위하여, 작은 다이아몬드 탐색이 이용될 수도 있다. 추가적으로 또는 대안적으로, 조기 정지는 탐색하는 동안에, 예컨대, 정합 코스트가 미리 정의된 또는 적응적 임계치들 미만일 때에 적용될 수도 있다. 템플릿 정합을 이용할 때, 세분화 후의 2 개의 참조 리스트들의 2 개의 모션 벡터들이 동일한 참조 픽처에서 동일한 블록을 지시하지 않을 것이라는 제약이 추가로 적용될 수도 있다.
위에서 언급된 바와 같이, 이 개시물은 현존하는 DMVD 프로세스들에 대한 어떤 최적화 기법들을 설명한다. 예를 들어, 도 10 의 예에 대하여 위에서 설명된 바와 같이, 기법들은 쌍방적 정합을 양방향 예측으로부터 단방향 예측으로 확장하는 것을 포함한다. 쌍방적 정합은 또한, 2 개의 참조 픽처들의 시간적 위치들이 양자 모두 현재의 슬라이스의 시간적 위치 이전 또는 이후에 있을 때 (즉, POC 값들은 현재의 픽처의 그것보다 더 작거나 더 큼) 에 적용될 수도 있다. 이러한 기법들은 확장된 쌍방적 정합으로서 본원에서 집합적으로 지칭될 수도 있다.
이 개시물의 다른 양태들은 보간 기법들에 관한 것이다. 예를 들어, 이 개시물의 양태들에 따르면, 보간 기법들은 복잡도를 감소시키기 위하여 단순화될 수도 있다. 도 2 에 대하여 위에서 언급된 바와 같이, 모션 탐색은 전형적으로 서브-픽셀 정밀도를 이용하여 수행된다. 추가적으로, 보간은 비-정수 픽셀 위치들에 대하여 필요하게 된다. 연산 복잡도를 감소시키기 위하여, 이 개시물의 양태들에 따르면, 비디오 코더는 정상적인 모션 보상 보간에 비해 더 짧은 탭 (tap) 들을 갖는 보간 필터를 이용할 수도 있다. 하나의 예에서, 비디오 코더는 모션 탐색 동안에, 예컨대, 초기 후보 모션 벡터들을 적용하거나 이러한 모션 벡터들을 세분화할 때에 이중선형 보간 필터 (bilinear interpolation filter) 를 이용할 수도 있다. 또 다른 예에서, 비디오 코더는 정수-픽셀 위치들을 이용하여 모션 탐색을 초기에 수행하고, 그 후에, 시작 포인트로서 정수-픽셀 위치의 최상의 정합을 갖는 분수-픽셀 위치들에서 모션 탐색을 수행하도록 구성될 수도 있다.
이 개시물의 다른 기법들은 서브-블록들에 대한 모션 정보를 유도하는 것에 관한 것이다. 예를 들어, 이 개시물의 양태들에 따르면, 비디오 코더는 임의의 모션 유도 기법에 기초하여 블록/PU 를 (비-중첩된) 서브-PU 들/서브-블록들로 분할할 수도 있다. PU 가 다수의 더 작은 크기의 서브-PU 들로 분할될 때, 비디오 코더는 각각의 서브-PU 에 대한 모션 정보의 고유의 세트를 유도할 수도 있다.
예시의 목적들을 위한 예에서, 32x32 PU 는 16 개의 8x8 서브-PU 들로 분할될 수도 있다. 이 예에서, 비디오 코더는 8x8 서브-PU 들의 각각에 대한 상이한 참조 인덱스들 및/또는 모션 벡터들을 결정할 수도 있다. 다른 예들에서, 서브-PU 들은 다른 크기들, 예컨대, 4x4, 2x2, 또는 1x1 을 가질 수도 있다.
일부 사례들에서, 서브-블록/서브-PU 의 크기는 블록/PU 의 크기에 관계 없이 미리 정의될 수도 있고 고정될 수도 있다. 다른 예들에서, PU 가 쿼드트리 구조에 따라 분할될 수도 있는 횟수를 제어하는 PU 들에 대한 분할된 심도 D 가 정의될 수도 있다. 일부 예들에서, 최소 서브-PU/서브-블록 크기는 현재의 블록/PU 가 분할될 서브-블록/서브-PU 의 타겟 크기를 표시하기 위하여 미리 정의될 수도 있거나 시그널링될 수도 있다. 타겟 크기는 최소 서브-PU /서브-블록 크기와, 쿼드트리 구조에 따라 현재의 블록을 D 회 분할함으로써 획득된 크기 사이에서 더 큰 것일 수도 있다.
이 개시물의 양태들에 따르면, 비디오 코더는 PU 의 서브-PU 들에 대한 모션 정보를 유도할 때에 PU 에 대한 유도된 모션 정보를 활용할 수도 있다. 예를 들어, 비디오 코더는 각각의 서브-PU 에 대하여, 전체 블록의 모션 정보를 탐색 중심 (초기 탐색 포인트) 로서 설정함으로써 개개의 고유의 모션 정보를 탐색할 수도 있다. 다음으로, 비디오 코더는 각각의 서브-PU 에 대한 모션을 세분화할 수도 있다. 대안적으로, 각각의 서브-PU 의 탐색 중심은 시작 포인트 후보들의 리스트로부터 유도될 수도 있다.
또 다른 예에서, 모션 벡터 후보 리스트는 본원에서 설명된 기법들 중의 임의의 것을 이용하여 서브-PU 에 대하여 생성될 수도 있다. 다음으로, 비디오 코더는 탐색 중심 (예컨대, PU 로부터 유도된 초기 탐색 포인트) 을 체크한 후에 리스트에서의 각각의 후보를 체크할 수도 있다. 이 개시물의 양태들에 따르면, 서브-PU 들은 규칙적인 블록들에 적용가능한 바와 같은 본원에서 설명된 기법들 중의 임의의 것을 이용하여 세분화될 수도 있다. 다른 예들에서, 세분화는 위에서 설명된 방식으로 최상의 정합에 대한 모션 벡터 후보 리스트를 체크한 후에 서브-PU 들에 대하여 항상 또는 조건부로 스킵될 수도 있다. 하나의 가능한 조건은 최상의 정합이 후보 리스트를 체크한 후에 PU 의 모션 정보 (예컨대, 초기 탐색 포인트) 에 의해 표시된 후보로 남아 있는지 여부일 수도 있다. 참 (true) 일 경우, 비디오 코더는 세분화를 스킵할 수도 있다. 그렇지 않을 경우, 비디오 코더는 세분화를 수행할 수도 있다.
일부 예들에서, 모션 벡터 필터링은 격리된 잘못된 모션 벡터를 보정하기 위하여 서브-PU 에 대하여 수행될 수도 있다. 예를 들어, 비디오 코더는 현재의 서브-PU 의 모션 벡터 및 4 개에 이르는 이웃하는 서브-PU 들의 모션 벡터들을 갖는 중간값 필터 (median filter) 를 이용할 수도 있다. 이 개시물의 양태들에 따르면, 변환들을 적용할 때, 비디오 코더는 변환이 서브-PU 경계들을 교차할 수도 있도록, 전체 PU 를 전체 블록으로서 간주할 수도 있다. 다른 예들에서, 비디오 코더는 변환 크기가 서브-PU 크기보다 더 크지 않도록, 변환들을 각각의 서브-PU 에 적용할 수도 있다. 일부 사례들에서, 템플릿 정합이 이용될 때, 전체 PU 는 또한, 더 작은 서브-PU 들로 추가로 분할될 수도 있다. 공간적 이웃들이 모두 현재의 PU 내에 있는 (그 템플릿들은 이용가능하지 않음) 서브-PU 들에 대하여, 비디오 코더는 그 모션 벡터들을 전체 PU 에 대하여 유도된 모션 벡터들로 설정할 수도 있다.
일부 예들에서, 비디오 코더는 특정한 블록이 분할되는지 여부를 표시하는 별도의 신택스 엘리먼트들을 코딩할 수도 있다. 또 다른 예에서, 확장된 쌍방적 정합 모드를 갖는 모든 2Nx2N 블록들은 작은 파티션들로 추가로 분할되고, 추가적인 플래그가 시그널링되지 않는다. 서브-블록의 크기는 미리 정의될 수도 있거나 시그널링될 수도 있다. 대안적으로, 서브-블록의 크기는 현재의 블록의 크기에 기초할 수도 있다. 예를 들어, 서브-블록의 크기는 2 개의 값들의 더 큰 수로서 유도될 수도 있다. 제 1 값은 (예컨대, 4x4 또는 8x8 과 같은) 미리 정의되거나 시그널링된 최소 서브-블록 크기이다. 제 2 값은 (S>>d)x(S>>d) 과 같이, 현재의 블록에 대한 상대적인 크기이고, 여기서, SxS 는 현재의 블록 크기인 반면, d 는 현재의 블록이 서브-블록들로 분할되도록 하는 쿼드-트리 심도를 표시하기 위한 미리 정의되거나 시그널링된 값이다. 상기 예에서, 용어 PU 는 용어 블록과 상호 교환가능하게 이용되고, 용어 서브-PU 는 용어 서브-블록과 상호 교환가능하게 이용된다는 것이 이해되어야 한다.
위에서 언급된 바와 같이, 본원에서 설명된 기법들은 독립적으로 또는 조합하여 이용될 수도 있다. 예로서, 모션 정보 유도 모드 (예컨대, 확장된 쌍방적 정합 모드, 템플릿 정합 모드, 또는 임의의 다른 모드) 와 연관된 모션 정보 유도 프로세스는 3 개의 단계들을 포함할 수도 있지만, 제 3 단계는 슬라이스 타입, 시간적 레벨, 블록 타입, 블록 크기, 또는 비트스트림에서 정의된 신택스에 기초하여 조건부로 수행될 수도 있다.
제 1 단계에서, 비디오 코더는 현재의 블록에 대한 모션 정보의 단방향-예측 세트들의 초기 후보 리스트를 공식화할 수도 있다. 비디오 코더는 예컨대, 정합 코스트에 기초하여, 리스트로부터 최상의 시작 포인트를 가지는 후보를 선택할 수도 있다. 제 2 단계에서, 비디오 코더는 현재의 블록에 대한 모션 정보를 유도하기 위하여 선택된 후보를 세분화할 수도 있다. 세분화는 또한, 본원에서 설명된 바와 같이, 정합 코스트에 기초할 수도 있다. 다음으로, 비디오 코더는 본원에서 설명된 바와 같이, 현재의 블록을 서브-블록들로 임의적으로 추가로 분할할 수도 있고, 각각의 서브-블록에 대한 각각의 모션 벡터를 세분화할 수도 있다. 최종적으로, 비디오 코더는 유도된 모션 정보를 이용하여 현재의 블록에 대한 모션 보상을 적용할 수도 있다. 분할이 수행되었을 경우, 비디오 코더는 서브-블록 대 서브-블록에 기초하여 모션 보상을 적용할 수도 있다.
하나의 예에서, 다음의 의사 코드 (pseudo code) 는 모션 정보 유도 모드를 이용하여 블록을 복원하기 위하여 이용될 수도 있고, 여기서, 모션 정보는 쌍방적 정합 또는 템플릿 정합의 어느 하나에 의해 유도된다. 쌍방적 정합이 이용될 때, 블록은 서브-블록들로 추가로 분할된다 (여기에서의 MV 는 참조 정보를 포함한다는 것에 주목함):
FRUC 에서의 (크기 WxH 를 갖는) 복원된 블록 B
초기 리스트 구성
B 가 쌍방적 정합일 경우
{
초기 리스트에서의 최상의 정합 (예컨대, 쌍방적 정합) 을, 쌍방적 정합의 측정에 있어서의 시작 포인트로서 구함
블록 B 에 대한 모션 벡터 MVB 를 얻기 위하여, 쌍방적 정합에 있어서의 시작 포인트에 기초하여 MV 를 세분화
블록 B 에서의 각각의 서브-블록에 대하여
{
MVB 를 시작 포인트로서 취하여, 각각의 서브-블록에 대한 MV 를 세분화
유도된 MV 정보를 갖는 서브-블록에 대한 모션 보상을 행함
}
}
else // 템플릿 정합
{
초기 리스트에서의 최상의 정합 (예컨대, 템플릿 정합) 을, 템플릿 정합의 측정에 있어서의 시작 포인트로서 구함
템플릿 정합에 있어서의 시작 포인트에 기초하여 MV 를 세분화
}
이 때문에, 이 개시물의 양태들에 따르면, 비디오 인코더 (20) 또는 비디오 디코더 (30) 는 현재의 블록 (현재 인코딩되거나 디코딩되고 있는 블록) 에 대한 모션 정보를 결정하기 위한 모션 정보 보간 모드를 결정할 수도 있다. 모션 정보 보간 모드 (예컨대, 쌍방적 정합, 템플릿 정합, 또는 또 다른 기법) 을 이용하면, 비디오 인코더 (20) 또는 비디오 디코더 (30) 는 모션 벡터 후보들의 리스트에서의 최상의 모션 벡터 후보, 예컨대, 현재의 블록과 근접하게 정합하는 참조 블록을 식별하는 모션 벡터를 결정할 수도 있다. 비디오 인코더 (20) 또는 비디오 디코더 (30) 는 참조 픽처에서 탐색 윈도우를 식별하기 위하여 모션 벡터 후보를 이용할 수도 있다.
비디오 인코더 (20) 또는 비디오 디코더 (30) 는 현재의 블록과 근접하게 정합하는 탐색 윈도우에서의 참조 블록에 기초하여 모션 벡터 후보를 세분화할 수도 있다. 즉, 비디오 인코더 (20) 또는 비디오 디코더 (30) 는 현재의 블록과 근접하게 정합하는 탐색 윈도우에서의 참조 블록과 현재의 블록 사이의 모션에 기초하여 현재의 블록에 대한 새로운 보간된 모션 벡터를 결정할 수도 있다. 다음으로, 비디오 인코더 (20) 또는 비디오 디코더 (30) 는 보간된 모션 벡터를 이용하여 현재의 블록에 대한 모션 보상을 수행할 수도 있다.
일부 사례들에서, 비디오 인코더 (20) 또는 비디오 디코더 (30) 는 현재의 블록을, 예측의 목적들을 위한 하나를 초과하는 서브-블록으로 분할할 수도 있다. 또한, 다른 예들에서, 비디오 인코더 (20) 또는 비디오 디코더 (30) 는 모션 정보를 보간하기 위한 기법들의 더 많거나, 더 적거나, 또는 상이한 배열을 수행할 수도 있다.
이 때문에, 현재의 픽처가 FRUC 에서 참조 픽처들에 의해 보간되는 것으로 고려될 수도 있는 것과 유사한 방법으로, 현재의 픽처의 현재의 블록이 참조 픽처들에 의해 예측되는 것으로 고려될 수도 있다는 가정이 주어지면, 이 개시물의 어떤 기법들은 FRUC 로부터의 어떤 개념들을 활용하는 블록-레벨 코딩 툴로서 일반화될 수도 있다. 하나의 예에서, 오직 모션 기반 프로세스들은 블록-레벨 코딩 툴을 위하여 이용된다. 또 다른 예에서, 오직 픽셀 기반 프로세스들은 블록-레벨 코딩 툴을 위하여 이용된다. 또 다른 예에서, 모션 기반 프로세스들 또는 픽셀 기반 프로세스들의 어느 하나는 소정의 블록에 대하여 이용된다. 또 다른 예에서, 픽셀 기반 프로세스들 및 모션 기반 프로세스들의 양자는 블록-레벨 코딩 툴을 위하여 이용된다. 또 다른 예에서, 다른 신택스는 재이용될 수도 있거나 다른 시간적 프레임들로부터 예측될 수도 있고, 코딩 트리의 정보, SAO, ALF, RQT 정보와 같이, 코딩 툴을 위하여 이용될 수도 있다.
도 12 는 비디오 데이터의 블록을 코딩하기 위한 모션 정보 유도 모드를 결정하기 위한 일 예의 프로세스를 예시하는 플로우차트이다. 도 12 의 일 예의 프로세스는, 비디오 인코더 (20), 비디오 디코더 (30), 또는 또 다른 프로세서로서 구성될 수도 있는 비디오 코더에 대하여 설명된다.
도 12 의 예에서, 비디오 코더는 복수의 모션 유도 모드들로부터 모션 유도 모드를 선택할 수도 있다 (200). 일반적으로, 모션 유도 모드들의 각각은 현재의 블록의 외부의 참조 데이터의 제 2 세트에 대응하는 참조 데이터의 제 1 세트에 대한 모션 탐색을 수행하는 것을 포함할 수도 있다. 예를 들어, 템플릿 정합에 대하여, 비디오 코더는 참조 픽처 (예컨대, 참조 데이터의 제 2 세트) 에서의 템플릿에 대응하는 현재의 픽처 (예컨대, 참조 데이터의 제 1 세트) 에서의 템플릿을 식별하기 위하여 모션 탐색을 수행할 수도 있다. 또 다른 예에서, 쌍방적 모니터링에 대하여, 비디오 코더는 제 2 참조 픽처 (예컨대, 참조 데이터의 제 2 세트) 에서의 제 2 참조 블록에 대응하는 제 1 참조 픽처 (예컨대, 참조 데이터의 제 1 세트) 에서의 참조 블록을 식별하기 위하여 모션 탐색을 수행할 수도 있다. 일 예의 모션 유도 모드들은 일방적 모션 추정 모드, 쌍방적 정합 모드, 템플릿 정합 모드, 또는 미러 기반 모드를 포함할 수도 있다.
일부 양태들에 따르면, 비디오 코더는 비트스트림 내에 포함된 하나 이상의 신택스 엘리먼트들에 따라 모션 정보 유도 모드를 선택할 수도 있다. 예를 들어, 비디오 디코더는 비트스트림으로부터의 하나 이상의 신택스 엘리먼트들을 파싱할 수도 있고 디코딩할 수도 있고, 신택스에 기초하여 모션 정보 유도 모드를 결정할 수도 있다. 비디오 인코더는 복수의 모션 정보 유도 모드들을 테스트할 수도 있고, 최상의 RD 코스트를 가지는 모드를 선택할 수도 있고, 선택된 모드를 표시하는 비트스트림에서의 하나 이상의 신택스 엘리먼트들을 인코딩할 수도 있다.
비디오 코더는 선택된 모션 유도 모드를 이용하여 블록에 대한 모션 정보를 결정할 수도 있고, 이것은 선택된 모드를 이용하여 초기 모션 정보를 결정하는 것 (202) 과, 초기 모션 정보를 세분화하기 위하여 최적화 프로세스를 이용하는 것 (204) 을 포함할 수도 있다. 예를 들어, 비디오 코더는 초기 모션 정보를 결정하기 위한 후보들로 모션 벡터 후보 리스트를 구성할 수도 있다. 초기 모션 정보는 본원에서 설명된 바와 같이, 모션 정보를 세분화하기 위한 시작 포인트를 제공할 수도 있다.
다음으로, 비디오 코더는 모션 정보를 표현하는 신택스를 코딩하지 않으면서, 결정된 모션 정보를 이용하여 블록을 코딩할 수도 있다 (206). 예를 들어, 비디오 코더가 비디오 디코더를 포함하는 사례들에서, 비디오 디코더는 결정된 모션 정보에 기초하여 참조 픽처에서의 참조 블록을 결정할 수도 있고, 인코딩된 비트스트림으로부터의 잔차 데이터를 디코딩할 수도 있고, 현재의 블록을 복원하기 위하여 디코딩된 잔차 및 결정된 참조 블록을 조합할 수도 있다. 비디오 코더가 비디오 인코더를 포함하는 사례들에서, 비디오 인코더는 잔차 데이터에 대한 참조 인덱스들 또는 모션 벡터들을 코딩하지 않으면서, 인코딩된 비트스트림에서의 현재의 블록에 대한 잔차 데이터를 인코딩할 수도 있다.
도 13 은 비디오 데이터의 블록을 코딩하기 위한 모션 벡터를 유도하기 위한 일 예의 프로세스를 예시하는 플로우차트이다. 도 13 의 일 예의 프로세스는, 비디오 인코더 (20), 비디오 디코더 (30), 또는 또 다른 프로세서로서 구성될 수도 있는 비디오 코더에 대하여 설명된다.
비디오 코더는 후보 모션 벡터 리스트를 생성할 수도 있다 (210). 후보 모션 벡터 리스트는 현재의 블록에 대한 모션 정보를 유도하기 위하여 이용될 수도 있는 하나 이상의 모션 벡터 후보들을 포함할 수도 있다. 일부 예들에서, 모션 벡터 후보들은 공간적으로 이웃하는 블록들, 시간적 블록들로부터, 또는 다른 로케이션들로부터 결정될 수도 있다.
비디오 코더는 모션 정보를 유도하기 위한 리스트로부터 후보를 결정할 수도 있다 (212). 일부 예들에서, 비디오 코더는 특정한 모션 유도 모드를 이용하여 후보를 결정하기 위하여 하나 이상의 코스트 계산들을 수행할 수도 있다. 예를 들어, 비디오 코더는, 본원에서 설명된 바와 같이, 개개의 모션 벡터들과 연관된 코스트를 포함할 수도 있는, 참조 데이터의 제 1 세트 및 참조 데이터의 제 2 세트에 대한 정합 코스트를 결정할 수도 있다.
다음으로, 비디오 코더는 결정된 후보에 기초하여 유도된 모션 벡터를 결정할 수도 있다 (214). 예를 들어, 비디오 코더는 모션 유도 모드를 이용하여 유도된 모션 벡터를 결정하기 위하여 결정된 후보를 세분화할 수도 있다. 다음으로, 비디오 코더는 유도된 모션 벡터를 이용하여 블록을 코딩할 수도 있다 (216). 예를 들어, 비디오 코더가 비디오 디코더를 포함하는 사례들에서, 비디오 디코더는 유도된 모션 벡터에 기초하여 참조 픽처에서의 참조 블록을 결정할 수도 있고, 인코딩된 비트스트림으로부터의 잔차 데이터를 디코딩할 수도 있고, 현재의 블록을 복원하기 위하여 디코딩된 잔차 및 결정된 참조 블록을 조합할 수도 있다. 비디오 코더가 비디오 인코더를 포함하는 사례들에서, 비디오 인코더는 유도된 모션 벡터를 코딩하지 않으면서, 인코딩된 비트스트림에서의 현재의 블록에 대한 잔차 데이터를 인코딩할 수도 있다.
도 14 는 비디오 데이터의 블록의 서브-블록들에 대한 모션 정보를 유도하기 위한 일 예의 프로세스를 예시하는 플로우차트이다. 도 14 의 일 예의 프로세스는, 비디오 인코더 (20), 비디오 디코더 (30), 또는 또 다른 프로세서로서 구성될 수도 있는 비디오 코더에 대하여 설명된다.
비디오 코더는 현재의 블록에 대한 모션 정보를 유도할 수도 있다 (220). 일부 예들에서, 비디오 코더는 모션 정보를 유도하기 위하여 본원에서 설명된 모션 정보 유도 기법들의 임의의 조합을 이용할 수도 있다. 예를 들어, 비디오 코더는 현재의 블록의 외부의 참조 데이터의 제 2 세트에 대응하는 참조 데이터의 제 1 세트에 대한 모션 탐색을 수행하기 위하여 본원에서 설명된 기법들 중의 임의의 것을 이용할 수도 있다 (예컨대, 템플릿 정합, 쌍방적 정합 등).
이 개시물의 양태들에 따르면, 비디오 코더는 또한, 블록을 복수의 서브-블록들로 분할할 수도 있다 (222). 비디오 코더는 개개의 서브-블록들에 대한 모션 정보를 별도로 유도할 수도 있고, 이는 각각의 개개의 서브-블록의 외부의 참조 데이터의 제 2 세트에 대응하는 참조 데이터의 제 1 세트에 대한 모션 탐색을 수행하는 것을 포함할 수도 있다 (224). 또한, 비디오 코더는 예를 들어, 템플릿 정합, 쌍방적 정합 등과 같이, 모션 정보를 유도하기 위하여 본원에서 설명된 임의의 기법들을 이용할 수도 있다. 예를 들어, 비디오 코더는 유도된 모션 벡터를, 서브-블록들의 각각에 대한 모션 정보를 유도하기 위한 시작 포인트로서 이용할 수도 있고, 본원에서 설명된 모션 정보 유도 기법들의 임의의 조합을 이용하여 유도된 모션 정보를 추가로 세분화할 수도 있다.
다음으로, 비디오 코더는 모션 정보를 표현하는 신택스 엘리먼트들을 코딩하지 않으면서, 유도된 모션 정보에 기초하여 서브-블록들의 각각의 코딩할 수도 있다 (226). 예를 들어, 비디오 코더가 비디오 디코더를 포함하는 사례들에서, 비디오 디코더는 결정된 모션 정보에 기초하여 각각의 서브-블록에 대한 참조 픽처에서의 참조 블록을 결정할 수도 있고, 인코딩된 비트스트림으로부터의 각각의 서브-블록에 대한 잔차 데이터를 디코딩할 수도 있고, 각각의 서브-블록을 복원하기 위하여 디코딩된 잔차 및 결정된 참조 블록을 조합할 수도 있다. 비디오 코더가 비디오 인코더를 포함하는 사례들에서, 비디오 인코더는 잔차 데이터에 대한 참조 인덱스들 또는 모션 벡터들을 코딩하지 않으면서, 인코딩된 비트스트림에서의 각각의 서브-블록에 대한 잔차 데이터를 인코딩할 수도 있다.
예에 따라서는, 본원에서 설명된 기법들 중의 임의의 것의 어떤 액트 (act) 들 또는 이벤트 (event) 들이 상이한 시퀀스에서 수행될 수 있거나, 추가될 수도 있거나, 병합될 수도 있거나, 또는 모두 배제 (예컨대, 모든 설명된 액트들 또는 이벤트들이 기법들의 실시를 위해 필요한 것은 아님) 될 수도 있다는 것이 인식되어야 한다. 또한, 어떤 예들에서는, 액트들 또는 이벤트들이 순차적인 것이 아니라, 예컨대, 멀티-스레딩된 (multi-threaded) 프로세싱, 인터럽트 프로세싱, 또는 다수의 프로세서들을 통해 동시에 수행될 수도 있다.
하나 이상의 예들에서는, 설명된 기능들이 하드웨어, 소프트웨어, 펌웨어, 또는 그 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현될 경우, 기능들은 하나 이상의 명령들 또는 코드로서, 컴퓨터-판독가능 매체 상에 저장되거나 컴퓨터-판독가능 매체를 통해 송신될 수도 있고, 하드웨어-기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터-판독가능 매체들은 데이터 저장 매체들과 같은 유형의 매체에 대응하는 컴퓨터-판독가능 저장 매체들, 또는 예컨대, 통신 프로토콜에 따라 하나의 장소로부터 또 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체들을 포함할 수도 있다. 이 방식으로, 컴퓨터-판독가능 매체들은 일반적으로 (1) 비-일시적인 유형의 컴퓨터-판독가능 저장 매체들, 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체들은 이 개시물에서 설명된 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터-판독가능 매체를 포함할 수도 있다.
제한이 아닌 예로서, 이러한 컴퓨터-판독가능 저장 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장, 자기 디스크 저장, 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 명령들 또는 데이터 구조들의 형태로 희망하는 프로그램 코드를 저장하기 위하여 이용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속은 컴퓨터-판독가능 매체로 적절하게 칭해진다. 예를 들어, 동축 케이블, 광섬유 케이블, 트위스트 페어 (twisted pair), 디지털 가입자 회선 (digital subscriber line; DSL), 또는 적외선, 라디오 (radio), 및 마이크로파 (microwave) 와 같은 무선 기술들을 이용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 명령들이 송신될 경우, 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL, 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술들은 매체의 정의 내에 포함된다. 그러나, 컴퓨터-판독가능 저장 매체들 및 데이터 저장 매체들은 접속들, 반송파들, 신호들, 또는 다른 일시적 매체들을 포함하는 것이 아니라, 그 대신에, 비-일시적, 유형의 저장 매체들에 관한 것이라는 것을 이해해야 한다. 본원에서 이용된 바와 같은 디스크 (disk) 및 디스크 (disc) 는 컴팩트 디스크 (compact disc; CD), 레이저 디스크 (laser disc), 광학 디스크 (optical disc), 디지털 다기능 디스크 (digital versatile disc; DVD), 플로피 디스크 (floppy disk) 및 블루레이 디스크 (Blu-ray disc) 를 포함하고, 여기서 디스크 (disk) 들은 통상 데이터를 자기적으로 재생하는 반면, 디스크 (disc) 들은 데이터를 레이저들로 광학적으로 재생한다. 상기의 조합들은 컴퓨터-판독가능 매체들의 범위 내에 또한 포함되어야 한다.
명령들은 하나 이상의 디지털 신호 프로세서 (digital signal processor; DSP) 들, 범용 마이크로프로세서들, 주문형 집적 회로 (application specific integrated circuit; ASIC) 들, 필드 프로그래밍가능한 게이트 어레이 (field programmable gatec array; FPGA) 들, 또는 다른 등가의 통합된 또는 개별 로직 회로부와 같은 하나 이상의 프로세서들에 의해 실행될 수도 있다. 따라서, 본원에서 이용된 바와 같은 용어 "프로세서" 는 상기한 구조, 또는 본원에서 설명된 기법들의 구현을 위해 적당한 임의의 다른 구조 중의 임의의 것을 지칭할 수도 있다. 게다가, 일부 양태들에서는, 본원에서 설명된 기능성이 인코딩 및 디코딩을 위해 구성되거나 조합된 코덱 내에 통합된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에서 제공될 수도 있다. 또한, 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들에서 완전히 구현될 수 있다.
이 개시물의 기법들은 무선 핸드셋, 집적 회로 (IC) 또는 IC 들의 세트 (예컨대, 칩셋) 를 포함하는 광범위한 디바이스들 또는 장치들에서 구현될 수도 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들은 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위하여 이 개시물에서 설명되어 있지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 요구하지는 않는다. 오히려, 위에서 설명된 바와 같이, 다양한 유닛들은 코덱 하드웨어 유닛 내에 조합될 수도 있거나, 적당한 소프트웨어 및/또는 펌웨어와 함께, 위에서 설명된 바와 같은 하나 이상의 프로세서들을 포함하는 상호동작하는 하드웨어 유닛들의 집합에 의해 제공될 수도 있다.
다양한 예들이 설명되었다. 이러한 그리고 다른 예들은 다음의 청구항들의 범위 내에 있다.

Claims (60)

  1. 비디오 데이터를 디코딩하는 방법으로서,
    현재의 픽처의 비디오 데이터의 현재의 블록에 대해, 상기 현재의 블록에 대한 모션 정보를 결정하기 위한 복수의 모션 정보 유도 모드들로부터 모션 정보 유도 모드를 선택하는 단계로서, 상기 모션 정보는 상기 현재의 블록의 참조 비디오 데이터에 대한 상기 현재의 블록의 모션을 표시하고, 상기 모션 정보는 제 1 세트의 참조 비디오 데이터 및 제 2 세트의 참조 비디오 데이터에 기초하고, 상기 복수의 모션 정보 유도 모드들 중의 각각의 모션 정보 유도 모드는 상기 제 2 세트의 참조 비디오 데이터에 기초하여 상기 제 1 세트의 참조 비디오 데이터에 대한 모션 탐색을 수행하는 것을 포함하는, 상기 복수의 모션 정보 유도 모드들로부터 모션 정보 유도 모드를 선택하는 단계;
    상기 선택된 모션 정보 유도 모드를 이용하여 상기 현재의 블록에 대한 상기 모션 정보를 결정하는 단계; 및
    상기 모션 정보를 표현하는 신택스 엘리먼트들을 디코딩하지 않고, 상기 결정된 모션 정보를 이용하여 상기 현재의 블록을 디코딩하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  2. 제 1 항에 있어서,
    상기 복수의 모션 정보 유도 모드들은 일방적 모션 추정 모드, 쌍방적 정합 모드, 템플릿 정합 모드, 또는 미러 기반 모드 중의 2 개 이상을 포함하는, 비디오 데이터를 디코딩하는 방법.
  3. 제 1 항에 있어서,
    상기 현재의 블록에 대한 상기 모션 정보를 결정하는 단계는 초기 모션 정보를 세분화하기 위하여 최적화 프로세스를 이용하는 단계를 포함하고, 상기 최적화 프로세스는 상기 모션 정보 유도 모드들의 각각에 대하여 동일한, 비디오 데이터를 디코딩하는 방법.
  4. 제 1 항에 있어서,
    상기 현재의 블록에 대한 모션 유도를 수행할 것인지 여부를 표시하는 하나 이상의 신택스 엘리먼트들을 디코딩하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  5. 제 1 항에 있어서,
    상기 복수의 모션 정보 유도 모드들로부터의 상기 모션 정보 유도 모드를 표시하는 하나 이상의 신택스 엘리먼트들을 디코딩하는 단계를 더 포함하고, 상기 모션 정보 유도 모드를 선택하는 단계는 상기 하나 이상의 신택스 엘리먼트들에 따라 상기 모션 정보 유도 모드를 선택하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  6. 제 5 항에 있어서,
    상기 모션 정보 유도 모드를 표시하는 하나 이상의 신택스 엘리먼트들을 디코딩하는 단계는 쌍방적 정합 모드 또는 템플릿 정합 모드 중의 하나를 상기 모션 정보 유도 모드로서 표시하는 플래그를 디코딩하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  7. 제 5 항에 있어서,
    상기 모션 정보 유도 모드를 표시하는 하나 이상의 신택스 엘리먼트들을 디코딩하는 단계는 상기 모션 정보 유도 모드를 표시하는 인덱스를 디코딩하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  8. 제 7 항에 있어서,
    상기 인덱스를 디코딩하는 단계는 상기 인덱스를 컨텍스트 적응 엔트로피 디코딩하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  9. 제 1 항에 있어서,
    상기 현재의 블록에 대한 병합 모드 또는 진보된 모션 벡터 예측 (advanced motion vector prediction; AMVP) 후보 리스트를 결정하는 단계로서, 상기 후보 리스트는 하나 이상의 모션 벡터 후보들, 및 상기 모션 정보 유도 모드에 배정되는 후보를 포함하는, 상기 현재의 블록에 대한 병합 모드 또는 진보된 모션 벡터 예측 (AMVP) 후보 리스트를 결정하는 단계를 더 포함하고; 그리고
    상기 모션 정보 유도 모드를 선택하는 단계는 상기 병합 모드 또는 AMVP 리스트로부터, 상기 모션 정보 유도 모드에 배정되는 상기 후보를 선택하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  10. 제 1 항에 있어서,
    모션 정보 유도가 비디오 데이터의 상기 현재의 블록에 대하여 인에이블되는지 여부를 표시하는, 시퀀스 파라미터 세트 (sequence parameter set; SPS), 픽처 파라미터 세트 (picture parameter set; PPS), 또는 슬라이스 헤더 내의 하나 이상의 신택스 엘리먼트들을 디코딩하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  11. 제 10 항에 있어서,
    상기 하나 이상의 신택스 엘리먼트들이 모션 정보 유도가 인에이블되지 않는다는 것을 표시할 때, 상기 방법은 디코딩 유닛 (CU) 또는 예측 유닛 (prediction unit; PU) 레벨에서의 모션 정보 유도의 디코딩을 스킵하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  12. 제 1 항에 있어서,
    상기 모션 정보 유도 모드를 선택하는 단계는 쌍방적 정합 모드를 선택하는 단계를 포함하고, 상기 선택된 모션 정보 유도 모드를 이용하여 상기 현재의 블록에 대한 상기 모션 정보를 결정하는 단계는:
    양자의 참조 픽처들의 시간적 위치들이 상기 현재의 블록을 포함하는 현재의 픽처 이전 또는 이후에 발생하도록, 쌍방적 정합을 수행하는 단계;
    상기 참조 픽처들에 기초하여 상기 현재의 블록에 대한 2 개의 보간된 모션 벡터들을 결정하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  13. 제 1 항에 있어서,
    상기 선택된 모션 정보 유도 모드를 이용하여 상기 현재의 블록에 대한 상기 모션 정보를 결정하는 단계는:
    상기 선택된 모션 정보 유도 모드를 이용하여 식별된 상기 제 1 세트의 참조 비디오 데이터와 상기 제 2 세트의 참조 비디오 데이터 사이의 최상의 정합을 탐색하는 단계를 포함하고; 그리고
    상기 선택된 모션 정보 유도 모드를 이용하여 상기 현재의 블록에 대한 상기 모션 정보를 결정하는 단계는 상기 최상의 정합 참조 데이터를 표시하는 모션 벡터를 결정하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  14. 제 13 항에 있어서,
    상기 제 1 세트의 참조 비디오 데이터는 상기 현재의 블록을 포함하는 픽처 내에 포함된 템플릿을 포함하고, 상기 제 2 세트의 참조 비디오 데이터는 참조 픽처 내에 포함된 템플릿을 포함하고, 상기 최상의 정합을 탐색하는 단계는 템플릿 정합을 수행하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  15. 제 13 항에 있어서,
    상기 제 1 세트의 참조 비디오 데이터는 제 1 참조 픽처 내에 포함된 참조 블록을 포함하고, 상기 제 2 세트의 참조 비디오 데이터는 제 2 참조 픽처 내에 포함된 제 2 참조 블록을 포함하고, 상기 최상의 정합을 탐색하는 단계는 쌍방적 정합을 수행하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  16. 제 13 항에 있어서,
    상기 최상의 정합 참조 데이터를 탐색하는 단계는 상기 현재의 블록에 대한 모션 보상을 수행하기 위하여 이용된 보간 필터와는 상이한 보간 필터를 이용하여 수행되는, 비디오 데이터를 디코딩하는 방법.
  17. 제 16 항에 있어서,
    상기 최상의 정합 참조 데이터를 탐색하는 단계는 서브-픽셀 로케이션에서 상기 제 1 세트의 참조 비디오 데이터 또는 상기 제 2 세트의 참조 비디오 데이터의 픽셀 값들을 결정하기 위하여 이중선형 필터를 이용하여 수행되는, 비디오 데이터를 디코딩하는 방법.
  18. 제 1 항에 있어서,
    상기 현재의 블록을 디코딩하는 단계는:
    상기 현재의 블록에 대한 상기 모션 정보 유도 모드를 표시하는 하나 이상의 신택스 엘리먼트들을 디코딩하는 단계를 포함하고;
    상기 모션 정보 유도 모드를 선택하는 단계는, 상기 디코딩된 하나 이상의 신택스 엘리먼트들에 기초하여 상기 모션 정보 유도 모드를 선택하는 단계;
    상기 결정된 모션 정보에 기초하여 참조 픽처에서의 참조 블록을 결정하는 단계;
    인코딩된 비트스트림으로부터의 잔차 데이터를 디코딩하는 단계로서, 상기 인코딩된 비트스트림은 상기 모션 정보를 표현하는 상기 신택스 엘리먼트들을 포함하지 않는, 상기 인코딩된 비트스트림으로부터의 잔차 데이터를 디코딩하는 단계; 및
    상기 현재의 블록을 복원하기 위하여 상기 디코딩된 잔차 및 상기 결정된 참조 블록을 조합하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  19. 비디오 데이터를 인코딩하는 방법으로서,
    현재의 픽처의 비디오 데이터의 현재의 블록에 대해, 상기 현재의 블록에 대한 모션 정보를 결정하기 위한 복수의 모션 정보 유도 모드들로부터 모션 정보 유도 모드를 선택하는 단계로서, 상기 모션 정보는 상기 현재의 블록의 참조 비디오 데이터에 대한 상기 현재의 블록의 모션을 표시하고, 상기 모션 정보는 제 1 세트의 참조 비디오 데이터 및 제 2 세트의 참조 비디오 데이터에 기초하고, 상기 복수의 모션 정보 유도 모드들 중의 각각의 모션 정보 유도 모드는 상기 제 2 세트의 참조 비디오 데이터에 기초하여 상기 제 1 세트의 참조 비디오 데이터에 대한 모션 탐색을 수행하는 것을 포함하는, 상기 복수의 모션 정보 유도 모드들로부터 모션 정보 유도 모드를 선택하는 단계;
    상기 선택된 모션 정보 유도 모드를 이용하여 상기 현재의 블록에 대한 상기 모션 정보를 결정하는 단계; 및
    상기 모션 정보를 표현하는 신택스 엘리먼트들을 인코딩하지 않고, 상기 결정된 모션 정보를 이용하여 상기 현재의 블록을 인코딩하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  20. 제 19 항에 있어서,
    상기 복수의 모션 정보 유도 모드들은 일방적 모션 추정 모드, 쌍방적 정합 모드, 템플릿 정합 모드, 또는 미러 기반 모드 중의 2 개 이상을 포함하는, 비디오 데이터를 인코딩하는 방법.
  21. 제 19 항에 있어서,
    상기 현재의 블록에 대한 상기 모션 정보를 결정하는 단계는 초기 모션 정보를 세분화하기 위하여 최적화 프로세스를 이용하는 단계를 포함하고, 상기 최적화 프로세스는 상기 모션 정보 유도 모드들의 각각에 대하여 동일한, 비디오 데이터를 인코딩하는 방법.
  22. 제 19 항에 있어서,
    상기 현재의 블록에 대한 모션 유도를 수행할 것인지 여부를 표시하는 하나 이상의 신택스 엘리먼트들을 인코딩하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  23. 제 19 항에 있어서,
    상기 복수의 모션 정보 유도 모드들로부터의 상기 모션 정보 유도 모드를 표시하는 하나 이상의 신택스 엘리먼트들을 인코딩하는 단계를 더 포함하고, 상기 모션 정보 유도 모드를 선택하는 단계는 상기 하나 이상의 신택스 엘리먼트들에 따라 상기 모션 정보 유도 모드를 선택하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  24. 제 23 항에 있어서,
    상기 모션 정보 유도 모드를 표시하는 하나 이상의 신택스 엘리먼트들을 인코딩하는 단계는 쌍방적 정합 모드 또는 템플릿 정합 모드 중의 하나를 상기 모션 정보 유도 모드로서 표시하는 플래그를 인코딩하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  25. 제 23 항에 있어서,
    상기 모션 정보 유도 모드를 표시하는 하나 이상의 신택스 엘리먼트들을 인코딩하는 단계는 상기 모션 정보 유도 모드를 표시하는 인덱스를 인코딩하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  26. 제 25 항에 있어서,
    상기 인덱스를 인코딩하는 단계는 상기 인덱스를 컨텍스트 적응 엔트로피 인코딩하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  27. 제 19 항에 있어서,
    상기 현재의 블록에 대한 병합 모드 또는 진보된 모션 벡터 예측 (AMVP) 후보 리스트를 결정하는 단계로서, 상기 후보 리스트는 하나 이상의 모션 벡터 후보들, 및 상기 모션 정보 유도 모드에 배정되는 후보를 포함하는, 상기 현재의 블록에 대한 병합 모드 또는 진보된 모션 벡터 예측 (AMVP) 후보 리스트를 결정하는 단계를 더 포함하고; 그리고
    상기 모션 정보 유도 모드를 선택하는 단계는 상기 병합 모드 또는 AMVP 리스트로부터, 상기 모션 정보 유도 모드에 배정되는 상기 후보를 선택하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  28. 제 19 항에 있어서,
    모션 정보 유도가 비디오 데이터의 상기 현재의 블록에 대하여 인에이블되는지 여부를 표시하는, 시퀀스 파라미터 세트 (SPS), 픽처 파라미터 세트 (PPS), 또는 슬라이스 헤더 내의 하나 이상의 신택스 엘리먼트들을 인코딩하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  29. 제 28 항에 있어서,
    상기 하나 이상의 신택스 엘리먼트들이 모션 정보 유도가 인에이블되지 않는다는 것을 표시할 때, 상기 방법은 인코딩 유닛 (CU) 또는 예측 유닛 (PU) 레벨에서의 모션 정보 유도의 인코딩을 스킵하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  30. 제 19 항에 있어서,
    상기 모션 정보 유도 모드를 선택하는 단계는 쌍방적 정합 모드를 선택하는 단계를 포함하고, 상기 선택된 모션 정보 유도 모드를 이용하여 상기 현재의 블록에 대한 상기 모션 정보를 결정하는 단계는:
    양자의 참조 픽처들의 시간적 위치들이 상기 현재의 블록을 포함하는 현재의 픽처 이전 또는 이후에 발생하도록, 쌍방적 정합을 수행하는 단계;
    상기 참조 픽처들에 기초하여 상기 현재의 블록에 대한 2 개의 보간된 모션 벡터들을 결정하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  31. 제 19 항에 있어서,
    상기 선택된 모션 정보 유도 모드를 이용하여 상기 현재의 블록에 대한 상기 모션 정보를 결정하는 단계는:
    상기 선택된 모션 정보 유도 모드를 이용하여 식별된 상기 제 1 세트의 참조 비디오 데이터와 상기 제 2 세트의 참조 비디오 데이터 사이의 최상의 정합을 탐색하는 단계를 포함하고; 그리고
    상기 선택된 모션 정보 유도 모드를 이용하여 상기 현재의 블록에 대한 상기 모션 정보를 결정하는 단계는 상기 최상의 정합 참조 데이터를 표시하는 모션 벡터를 결정하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  32. 제 31 항에 있어서,
    상기 제 1 세트의 참조 비디오 데이터는 상기 현재의 블록을 포함하는 픽처 내에 포함된 템플릿을 포함하고, 상기 제 2 세트의 참조 비디오 데이터는 참조 픽처 내에 포함된 템플릿을 포함하고, 상기 최상의 정합을 탐색하는 단계는 템플릿 정합을 수행하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  33. 제 31 항에 있어서,
    상기 제 1 세트의 참조 비디오 데이터는 제 1 참조 픽처 내에 포함된 참조 블록을 포함하고, 상기 제 2 세트의 참조 비디오 데이터는 제 2 참조 픽처 내에 포함된 제 2 참조 블록을 포함하고, 상기 최상의 정합을 탐색하는 단계는 쌍방적 정합을 수행하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  34. 제 31 항에 있어서,
    상기 최상의 정합 참조 데이터를 탐색하는 단계는 상기 현재의 블록에 대한 모션 보상을 수행하기 위하여 이용된 보간 필터와는 상이한 보간 필터를 이용하여 수행되는, 비디오 데이터를 인코딩하는 방법.
  35. 제 34 항에 있어서,
    상기 최상의 정합 참조 데이터를 탐색하는 단계는 서브-픽셀 로케이션에서 상기 제 1 세트의 참조 비디오 데이터 또는 상기 제 2 세트의 참조 비디오 데이터의 픽셀 값들을 결정하기 위하여 이중선형 필터를 이용하여 수행되는, 비디오 데이터를 인코딩하는 방법.
  36. 제 19 항에 있어서,
    상기 현재의 블록을 인코딩하는 단계는 인코딩된 비트스트림에서의 상기 현재의 블록에 대한 잔차 데이터를 인코딩하는 단계를 포함하고, 상기 인코딩된 비트스트림은 상기 모션 정보를 표현하는 코딩 신택스 엘리먼트들을 포함하지 않는, 비디오 데이터를 인코딩하는 방법.
  37. 비디오 데이터를 코딩하기 위한 디바이스로서,
    비디오 데이터의 현재의 블록을 저장하도록 구성된 메모리; 및
    하나 이상의 프로세서들을 포함하고,
    상기 하나 이상의 프로세서들은,
    현재의 픽처의 비디오 데이터의 상기 현재의 블록에 대해, 상기 현재의 블록에 대한 모션 정보를 결정하기 위한 복수의 모션 정보 유도 모드들로부터 모션 정보 유도 모드를 선택하는 것으로서, 상기 모션 정보는 상기 현재의 블록의 참조 비디오 데이터에 대한 상기 현재의 블록의 모션을 표시하고, 상기 모션 정보는 제 1 세트의 참조 비디오 데이터 및 제 2 세트의 참조 비디오 데이터에 기초하고, 상기 복수의 모션 정보 유도 모드들 중의 각각의 모션 정보 유도 모드는 상기 제 2 세트의 참조 비디오 데이터에 기초하여 상기 제 1 세트의 참조 비디오 데이터에 대한 모션 탐색을 수행하는 것을 포함하는, 상기 복수의 모션 정보 유도 모드들로부터 모션 정보 유도 모드를 선택하고;
    상기 선택된 모션 정보 유도 모드를 이용하여 상기 현재의 블록에 대한 상기 모션 정보를 결정하고; 그리고
    상기 모션 정보를 표현하는 신택스 엘리먼트들을 코딩하지 않고, 상기 결정된 모션 정보를 이용하여 상기 현재의 블록을 코딩하도록 구성되는, 비디오 데이터를 코딩하기 위한 디바이스.
  38. 제 37 항에 있어서,
    상기 복수의 모션 정보 유도 모드들은 일방적 모션 추정 모드, 쌍방적 정합 모드, 템플릿 정합 모드, 또는 미러 기반 모드 중의 2 개 이상을 포함하는, 비디오 데이터를 코딩하기 위한 디바이스.
  39. 제 37 항에 있어서,
    상기 현재의 블록에 대한 상기 모션 정보를 결정하기 위하여, 상기 하나 이상의 프로세서들은 초기 모션 정보를 세분화하기 위하여 최적화 프로세스를 이용하도록 구성되고, 상기 최적화 프로세스는 상기 모션 정보 유도 모드들의 각각에 대하여 동일한, 비디오 데이터를 코딩하기 위한 디바이스.
  40. 제 37 항에 있어서,
    상기 하나 이상의 프로세서들은 상기 현재의 블록에 대한 모션 유도를 수행할 것인지 여부를 표시하는 하나 이상의 신택스 엘리먼트들을 코딩하도록 추가로 구성되는, 비디오 데이터를 코딩하기 위한 디바이스.
  41. 제 37 항에 있어서,
    상기 하나 이상의 프로세서들은 상기 복수의 모션 정보 유도 모드들로부터의 상기 모션 정보 유도 모드를 표시하는 하나 이상의 신택스 엘리먼트들을 코딩하도록 추가로 구성되고, 상기 모션 정보 유도 모드를 선택하기 위하여, 상기 하나 이상의 프로세서들은 상기 하나 이상의 신택스 엘리먼트들에 따라 상기 모션 정보 유도 모드를 선택하도록 구성되는, 비디오 데이터를 코딩하기 위한 디바이스.
  42. 제 41 항에 있어서,
    상기 모션 정보 유도 모드를 표시하는 하나 이상의 신택스 엘리먼트들을 코딩하기 위하여, 상기 하나 이상의 프로세서들은 쌍방적 정합 모드 또는 템플릿 정합 모드 중의 하나를 상기 모션 정보 유도 모드로서 표시하는 플래그를 코딩하도록 구성되는, 비디오 데이터를 코딩하기 위한 디바이스.
  43. 제 41 항에 있어서,
    상기 모션 정보 유도 모드를 표시하는 하나 이상의 신택스 엘리먼트들을 코딩하기 위하여, 상기 하나 이상의 프로세서들은 상기 모션 정보 유도 모드를 표시하는 인덱스를 코딩하도록 구성되는, 비디오 데이터를 코딩하기 위한 디바이스.
  44. 제 43 항에 있어서,
    상기 인덱스를 코딩하기 위하여, 상기 하나 이상의 프로세서들은 상기 인덱스를 컨텍스트 적응 엔트로피 코딩하도록 구성되는, 비디오 데이터를 코딩하기 위한 디바이스.
  45. 제 41 항에 있어서,
    상기 하나 이상의 프로세서들은:
    상기 현재의 블록에 대한 병합 모드 또는 진보된 모션 벡터 예측 (AMVP) 후보 리스트를 결정하는 것으로서, 상기 후보 리스트는 하나 이상의 모션 벡터 후보들, 및 상기 모션 정보 유도 모드에 배정되는 후보를 포함하는, 상기 현재의 블록에 대한 병합 모드 또는 진보된 모션 벡터 예측 (AMVP) 후보 리스트를 결정하도록 추가로 구성되고; 그리고
    상기 모션 정보 유도 모드를 선택하기 위하여, 상기 하나 이상의 프로세서들은 상기 병합 모드 또는 AMVP 리스트로부터, 상기 모션 정보 유도 모드에 배정되는 상기 후보를 선택하도록 구성되는, 비디오 데이터를 코딩하기 위한 디바이스.
  46. 제 37 항에 있어서,
    상기 하나 이상의 프로세서들은 모션 정보 유도가 비디오 데이터의 상기 현재의 블록에 대하여 인에이블되는지 여부를 표시하는, 시퀀스 파라미터 세트 (SPS), 픽처 파라미터 세트 (PPS), 또는 슬라이스 헤더 내의 하나 이상의 신택스 엘리먼트들을 인코딩하도록 추가로 구성되는, 비디오 데이터를 코딩하기 위한 디바이스.
  47. 제 46 항에 있어서,
    상기 하나 이상의 신택스 엘리먼트들이 모션 정보 유도가 인에이블되지 않는다는 것을 표시할 때, 상기 하나 이상의 프로세서들은 코딩 유닛 (CU) 또는 예측 유닛 (PU) 레벨에서의 모션 정보 유도의 코딩을 스킵하도록 추가로 구성되는, 비디오 데이터를 코딩하기 위한 디바이스.
  48. 제 37 항에 있어서,
    상기 모션 정보 유도 모드를 선택하기 위하여, 상기 하나 이상의 프로세서들은 쌍방적 정합 모드를 선택하도록 구성되고, 상기 선택된 모션 정보 유도 모드를 이용하여 상기 현재의 블록에 대한 상기 모션 정보를 결정하기 위하여, 상기 하나 이상의 프로세서들은:
    양자의 참조 픽처들의 시간적 위치들이 상기 현재의 블록을 포함하는 현재의 픽처 이전 또는 이후에 발생하도록, 쌍방적 정합을 수행하고;
    상기 참조 픽처들에 기초하여 상기 현재의 블록에 대한 2 개의 보간된 모션 벡터들을 결정하도록 구성되는, 비디오 데이터를 코딩하기 위한 디바이스.
  49. 제 37 항에 있어서,
    상기 선택된 모션 정보 유도 모드를 이용하여 상기 현재의 블록에 대한 상기 모션 정보를 결정하기 위하여, 상기 하나 이상의 프로세서들은:
    상기 선택된 모션 정보 유도 모드를 이용하여 식별된 상기 제 1 세트의 참조 비디오 데이터와 상기 제 2 세트의 참조 비디오 데이터 사이의 최상의 정합을 탐색하도록 구성되고; 그리고
    상기 선택된 모션 정보 유도 모드를 이용하여 상기 현재의 블록에 대한 상기 모션 정보를 결정하기 위하여, 상기 하나 이상의 프로세서들은 최상의 정합 참조 데이터를 표시하는 모션 벡터를 결정하도록 구성되는, 비디오 데이터를 코딩하기 위한 디바이스.
  50. 제 49 항에 있어서,
    상기 제 1 세트의 참조 비디오 데이터는 상기 현재의 블록을 포함하는 픽처 내에 포함된 템플릿을 포함하고, 상기 제 2 세트의 참조 비디오 데이터는 참조 픽처 내에 포함된 템플릿을 포함하고, 상기 최상의 정합을 탐색하기 위하여, 상기 하나 이상의 프로세서들은 템플릿 정합을 수행하도록 구성되는, 비디오 데이터를 코딩하기 위한 디바이스.
  51. 제 49 항에 있어서,
    상기 제 1 세트의 참조 비디오 데이터는 제 1 참조 픽처 내에 포함된 참조 블록을 포함하고, 상기 제 2 세트의 참조 비디오 데이터는 제 2 참조 픽처 내에 포함된 제 2 참조 블록을 포함하고, 상기 최상의 정합을 탐색하기 위하여, 상기 하나 이상의 프로세서들은 쌍방적 정합을 수행하도록 구성되는, 비디오 데이터를 코딩하기 위한 디바이스.
  52. 제 49 항에 있어서,
    상기 최상의 정합 참조 데이터를 탐색하기 위하여, 상기 하나 이상의 프로세서들은 상기 현재의 블록에 대한 모션 보상을 수행하기 위하여 이용된 보간 필터와는 상이한 보간 필터를 이용하도록 구성되는, 비디오 데이터를 코딩하기 위한 디바이스.
  53. 제 52 항에 있어서,
    상기 최상의 정합 참조 데이터를 탐색하기 위하여, 상기 하나 이상의 프로세서들은 서브-픽셀 로케이션에서 상기 제 1 세트의 참조 비디오 데이터 또는 상기 제 2 세트의 참조 비디오 데이터의 픽셀 값들을 결정하기 위하여 이중선형 필터를 이용하도록 구성되는, 비디오 데이터를 코딩하기 위한 디바이스.
  54. 제 37 항에 있어서,
    코딩은 디코딩을 포함하고, 상기 현재의 블록을 디코딩하기 위하여, 상기 하나 이상의 프로세서들은:
    상기 현재의 블록에 대한 상기 모션 정보 유도 모드를 표시하는 하나 이상의 신택스 엘리먼트들을 디코딩하도록 구성되고;
    상기 모션 정보 유도 모드를 선택하기 위하여, 상기 하나 이상의 프로세서들은 상기 디코딩된 하나 이상의 신택스 엘리먼트들에 기초하여 상기 모션 정보 유도 모드를 선택하고;
    상기 결정된 모션 정보에 기초하여 참조 픽처에서의 참조 블록을 결정하고;
    인코딩된 비트스트림으로부터의 잔차 데이터를 디코딩하는 것으로서, 상기 인코딩된 비트스트림은 상기 모션 정보를 표현하는 상기 신택스 엘리먼트들을 포함하지 않는, 상기 인코딩된 비트스트림으로부터의 잔차 데이터를 디코딩하고; 그리고
    상기 현재의 블록을 복원하기 위하여 상기 디코딩된 잔차 및 상기 결정된 참조 블록을 조합하도록 구성되는, 비디오 데이터를 코딩하기 위한 디바이스.
  55. 제 54 항에 있어서,
    상기 디코딩된 블록을 디스플레이하도록 구성된 디스플레이를 더 포함하는, 비디오 데이터를 코딩하기 위한 디바이스.
  56. 제 37 항에 있어서,
    코딩은 인코딩을 포함하고, 상기 현재의 블록을 인코딩하기 위하여, 상기 하나 이상의 프로세서들은 인코딩된 비트스트림에서의 상기 현재의 블록에 대한 잔차 데이터를 인코딩하도록 구성되고, 상기 인코딩된 비트스트림은 상기 모션 정보를 표현하는 코딩 신택스 엘리먼트들을 포함하지 않는, 비디오 데이터를 코딩하기 위한 디바이스.
  57. 제 56 항에 있어서,
    비디오 데이터의 상기 블록을 포함하는 픽처를 캡처하도록 구성된 카메라를 더 포함하는, 비디오 데이터를 코딩하기 위한 디바이스.
  58. 제 37 항에 있어서,
    상기 디바이스는,
    집적 회로;
    마이크로프로세서; 또는
    무선 통신 디바이스 중의 적어도 하나를 포함하는, 비디오 데이터를 코딩하기 위한 디바이스.
  59. 비디오 데이터를 코딩하기 위한 장치로서,
    현재의 픽처의 비디오 데이터의 현재의 블록에 대해, 상기 현재의 블록에 대한 모션 정보를 결정하기 위한 복수의 모션 정보 유도 모드들로부터 모션 정보 유도 모드를 선택하기 위한 수단으로서, 상기 모션 정보는 상기 현재의 블록의 참조 비디오 데이터에 대한 상기 현재의 블록의 모션을 표시하고, 상기 모션 정보는 제 1 세트의 참조 비디오 데이터 및 제 2 세트의 참조 비디오 데이터에 기초하고, 상기 복수의 모션 정보 유도 모드들 중의 각각의 모션 정보 유도 모드는 상기 제 2 세트의 참조 비디오 데이터에 기초하여 상기 제 1 세트의 참조 비디오 데이터에 대한 모션 탐색을 수행하는 것을 포함하는, 상기 복수의 모션 정보 유도 모드들로부터 모션 정보 유도 모드를 선택하기 위한 수단;
    상기 선택된 모션 정보 유도 모드를 이용하여 상기 현재의 블록에 대한 상기 모션 정보를 결정하기 위한 수단; 및
    상기 모션 정보를 표현하는 신택스 엘리먼트들을 디코딩하지 않고, 상기 결정된 모션 정보를 이용하여 상기 현재의 블록을 코딩하기 위한 수단을 포함하는, 비디오 데이터를 코딩하기 위한 장치.
  60. 명령들을 저장한 비-일시적 컴퓨터-판독가능 저장 매체로서,
    상기 명령들은, 실행될 경우, 하나 이상의 프로세서들로 하여금,
    현재의 픽처의 비디오 데이터의 현재의 블록에 대해, 상기 현재의 블록에 대한 모션 정보를 결정하기 위한 복수의 모션 정보 유도 모드들로부터 모션 정보 유도 모드를 선택하게 하는 것으로서, 상기 모션 정보는 상기 현재의 블록의 참조 비디오 데이터에 대한 상기 현재의 블록의 모션을 표시하고, 상기 모션 정보는 제 1 세트의 참조 비디오 데이터 및 제 2 세트의 참조 비디오 데이터에 기초하고, 상기 복수의 모션 정보 유도 모드들 중의 각각의 모션 정보 유도 모드는 상기 제 2 세트의 참조 비디오 데이터에 기초하여 상기 제 1 세트의 참조 비디오 데이터에 대한 모션 탐색을 수행하는 것을 포함하는, 상기 복수의 모션 정보 유도 모드들로부터 모션 정보 유도 모드를 선택하게 하고;
    상기 선택된 모션 정보 유도 모드를 이용하여 상기 현재의 블록에 대한 상기 모션 정보를 결정하게 하고; 그리고
    상기 모션 정보를 표현하는 신택스 엘리먼트들을 디코딩하지 않고, 상기 결정된 모션 정보를 이용하여 상기 현재의 블록을 코딩하게 하는, 비-일시적 컴퓨터-판독가능 저장 매체.
KR1020177026965A 2015-03-27 2016-03-25 비디오 코딩에서의 모션 정보 유도 모드 결정 KR102519778B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201562139572P 2015-03-27 2015-03-27
US62/139,572 2015-03-27
US201562182367P 2015-06-19 2015-06-19
US62/182,367 2015-06-19
US15/080,479 2016-03-24
US15/080,479 US10958927B2 (en) 2015-03-27 2016-03-24 Motion information derivation mode determination in video coding
PCT/US2016/024334 WO2016160609A1 (en) 2015-03-27 2016-03-25 Motion information derivation mode determination in video coding

Publications (2)

Publication Number Publication Date
KR20170131446A KR20170131446A (ko) 2017-11-29
KR102519778B1 true KR102519778B1 (ko) 2023-04-07

Family

ID=56974464

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020177026967A KR102519779B1 (ko) 2015-03-27 2016-03-25 비디오 코딩에서의 서브-블록들에 대한 모션 정보 유도
KR1020177026965A KR102519778B1 (ko) 2015-03-27 2016-03-25 비디오 코딩에서의 모션 정보 유도 모드 결정
KR1020177026966A KR102520296B1 (ko) 2015-03-27 2016-03-25 비디오 코딩에서의 모션 벡터 유도

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020177026967A KR102519779B1 (ko) 2015-03-27 2016-03-25 비디오 코딩에서의 서브-블록들에 대한 모션 정보 유도

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020177026966A KR102520296B1 (ko) 2015-03-27 2016-03-25 비디오 코딩에서의 모션 벡터 유도

Country Status (27)

Country Link
US (3) US10200711B2 (ko)
EP (3) EP3275186B1 (ko)
JP (3) JP6783788B2 (ko)
KR (3) KR102519779B1 (ko)
CN (3) CN107409225B (ko)
AU (5) AU2016243518B2 (ko)
BR (3) BR112017020632A2 (ko)
CA (3) CA2976828A1 (ko)
CL (3) CL2017002383A1 (ko)
CO (3) CO2017009672A2 (ko)
DK (2) DK3275188T3 (ko)
ES (2) ES2898862T3 (ko)
HK (1) HK1243259A1 (ko)
HU (2) HUE056702T2 (ko)
IL (1) IL253849B (ko)
MX (3) MX368146B (ko)
MY (3) MY187812A (ko)
NZ (2) NZ734552A (ko)
PH (3) PH12017501440A1 (ko)
PL (2) PL3275188T3 (ko)
PT (2) PT3275188T (ko)
RU (3) RU2719296C2 (ko)
SA (3) SA517382335B1 (ko)
SG (3) SG11201706539PA (ko)
SI (2) SI3275186T1 (ko)
TW (3) TWI705703B (ko)
WO (3) WO2016160605A1 (ko)

Families Citing this family (213)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014082541A (ja) * 2012-10-12 2014-05-08 National Institute Of Information & Communication Technology 互いに類似した情報を含む複数画像のデータサイズを低減する方法、プログラムおよび装置
US10200711B2 (en) 2015-03-27 2019-02-05 Qualcomm Incorporated Motion vector derivation in video coding
US10375413B2 (en) 2015-09-28 2019-08-06 Qualcomm Incorporated Bi-directional optical flow for video coding
US10390038B2 (en) * 2016-02-17 2019-08-20 Telefonaktiebolaget Lm Ericsson (Publ) Methods and devices for encoding and decoding video pictures using a denoised reference picture
CN108781295B (zh) * 2016-03-16 2022-02-18 联发科技股份有限公司 视频编码的样式基础的运动向量推导之方法及装置
US11095898B2 (en) * 2016-03-28 2021-08-17 Lg Electronics Inc. Inter-prediction mode based image processing method, and apparatus therefor
US10939099B2 (en) * 2016-04-22 2021-03-02 Lg Electronics Inc. Inter prediction mode-based image processing method and device therefor
US10593015B2 (en) 2016-05-04 2020-03-17 Texas Instruments Incorporated Apparatus and method for efficient motion estimation
CN109565592B (zh) * 2016-06-24 2020-11-17 华为技术有限公司 一种使用基于分割的视频编码块划分的视频编码设备和方法
CN116708784A (zh) * 2016-07-12 2023-09-05 韩国电子通信研究院 图像编码/解码方法以及用于该方法的记录介质
CN116567217A (zh) * 2016-08-11 2023-08-08 Lx 半导体科技有限公司 图像编码/解码方法以及图像数据的发送方法
US10368087B2 (en) * 2016-09-20 2019-07-30 Ati Technologies Ulc Dynamic reload of video encoder motion estimation search window under performance/power constraints
WO2018058622A1 (zh) * 2016-09-30 2018-04-05 华为技术有限公司 一种帧间预测的图像编解码方法和装置
US10778999B2 (en) * 2016-09-30 2020-09-15 Qualcomm Incorporated Frame rate up-conversion coding mode with affine motion model
JP6968228B2 (ja) * 2016-09-30 2021-11-17 華為技術有限公司Huawei Technologies Co., Ltd. インター予測を介する画像符号化および復号のための方法および装置
US10616582B2 (en) 2016-09-30 2020-04-07 Qualcomm Incorporated Memory and bandwidth reduction of stored data in image/video coding
WO2018068264A1 (zh) * 2016-10-13 2018-04-19 富士通株式会社 图像编码/解码方法、装置以及图像处理设备
CN106780363B (zh) * 2016-11-21 2019-07-23 北京金山安全软件有限公司 一种图片处理方法、装置及电子设备
CN109997363B (zh) * 2016-11-28 2023-12-05 英迪股份有限公司 图像编码/解码方法和装置以及存储有比特流的记录介质
US20210136400A1 (en) * 2016-11-29 2021-05-06 Mediatek Inc. Method and apparatus of merge mode derivation for video coding
CN116527886A (zh) 2016-12-05 2023-08-01 Lg电子株式会社 解码设备、编码设备以及数据发送设备
WO2018110180A1 (ja) * 2016-12-15 2018-06-21 シャープ株式会社 動きベクトル生成装置、予測画像生成装置、動画像復号装置、および動画像符号化装置
CN110140355B (zh) * 2016-12-27 2022-03-08 联发科技股份有限公司 用于视频编解码的双向模板运动向量微调的方法及装置
US10291928B2 (en) * 2017-01-10 2019-05-14 Blackberry Limited Methods and devices for inter-prediction using motion vectors for video coding
CN116866553A (zh) 2017-01-16 2023-10-10 世宗大学校产学协力团 影像解码/编码方法以及传送比特流的方法
CN110383840A (zh) * 2017-03-10 2019-10-25 索尼公司 图像处理装置和方法
EP3595313A1 (en) * 2017-03-10 2020-01-15 Sony Corporation Image processing device and method
WO2018172609A2 (en) * 2017-03-21 2018-09-27 Nokia Technologies Oy Motion compensation in video encoding and decoding
WO2018173895A1 (ja) * 2017-03-21 2018-09-27 シャープ株式会社 予測画像生成装置、動画像復号装置、および動画像符号化装置
WO2018174618A1 (ko) * 2017-03-22 2018-09-27 한국전자통신연구원 참조 블록을 사용하는 예측 방법 및 장치
US10491917B2 (en) * 2017-03-22 2019-11-26 Qualcomm Incorporated Decoder-side motion vector derivation
US10595035B2 (en) * 2017-03-22 2020-03-17 Qualcomm Incorporated Constraining motion vector information derived by decoder-side motion vector derivation
TWI782974B (zh) * 2017-04-13 2022-11-11 美商松下電器(美國)知識產權公司 解碼裝置、解碼方法及非暫時性電腦可讀取媒體
JP6946419B2 (ja) * 2017-04-13 2021-10-06 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 復号装置、復号方法及びプログラム
WO2018193968A1 (ja) 2017-04-19 2018-10-25 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
WO2018193967A1 (ja) * 2017-04-19 2018-10-25 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
CN117014632A (zh) * 2017-04-27 2023-11-07 松下电器(美国)知识产权公司 解码装置、编码装置以及非暂时性记录介质
US10805630B2 (en) 2017-04-28 2020-10-13 Qualcomm Incorporated Gradient based matching for motion search and derivation
US10735761B2 (en) * 2017-05-19 2020-08-04 Mediatek Inc Method and apparatus of video coding
EP3637772A4 (en) * 2017-06-09 2020-12-09 Electronics and Telecommunications Research Institute VIDEO ENCODING / DECODING METHOD AND DEVICE AND RECORDING MEDIUM FOR STORING BITSTREAM
CN109089119B (zh) 2017-06-13 2021-08-13 浙江大学 一种运动矢量预测的方法及设备
US11252464B2 (en) 2017-06-14 2022-02-15 Mellanox Technologies, Ltd. Regrouping of video data in host memory
US20200014918A1 (en) * 2018-07-08 2020-01-09 Mellanox Technologies, Ltd. Application accelerator
US20200014945A1 (en) * 2018-07-08 2020-01-09 Mellanox Technologies, Ltd. Application acceleration
US20190007699A1 (en) * 2017-06-28 2019-01-03 Futurewei Technologies, Inc. Decoder Side Motion Vector Derivation in Video Coding
WO2019001741A1 (en) * 2017-06-30 2019-01-03 Huawei Technologies Co., Ltd. MOTION VECTOR REFINEMENT FOR MULTI-REFERENCE PREDICTION
GB2563936A (en) * 2017-06-30 2019-01-02 Canon Kk Method and apparatus for encoding or decoding a flag during video data encoding
BR112019028012A2 (pt) * 2017-06-30 2020-07-07 Huawei Technologies Co., Ltd. dispositivo e método para determinar um vetor de movimento, codificador e decodificador de vídeo para codificar e decodificar uma pluralidade de fotos
KR102376069B1 (ko) * 2017-06-30 2022-03-17 후아웨이 테크놀러지 컴퍼니 리미티드 디코더 측 움직임 벡터 도출을 위한 오류 내성 및 병렬 처리
WO2019009567A1 (ko) * 2017-07-03 2019-01-10 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측에 따른 영상 디코딩 방법 및 장치
GB2564133B (en) * 2017-07-04 2021-03-17 Canon Kk Method and apparatus for encoding or decoding video data with sub-pixel motion vector refinement
GB2588563B (en) * 2017-07-04 2021-10-20 Canon Kk Method and apparatus for encoding or decoding video data with sub-pixel motion vector refinement
KR20200014913A (ko) * 2017-07-04 2020-02-11 엘지전자 주식회사 인터 예측 기반의 영상 처리 방법 및 이를 위한 장치
WO2019010634A1 (zh) * 2017-07-11 2019-01-17 华为技术有限公司 一种基于模板匹配的解码方法及装置
CN110999293B (zh) * 2017-07-31 2022-11-04 韩国电子通信研究院 图像编码/解码方法和装置以及存储比特流的记录介质
WO2019032765A1 (en) * 2017-08-09 2019-02-14 Vid Scale, Inc. CONVERSION-ELEVATION OF FRAME FREQUENCY WITH REDUCED COMPLEXITY
JP6994868B2 (ja) 2017-08-09 2022-01-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法、および復号方法
US10659788B2 (en) 2017-11-20 2020-05-19 Google Llc Block-based optical flow estimation for motion compensated prediction in video coding
US11917128B2 (en) * 2017-08-22 2024-02-27 Google Llc Motion field estimation based on motion trajectory derivation
CN117615153A (zh) * 2017-08-29 2024-02-27 株式会社Kt 视频解码和编码方法及用于存储压缩视频数据的装置
EP3451669A1 (en) * 2017-08-29 2019-03-06 Thomson Licensing Methods and apparatus for improved compression/decompression using frame rate up conversion tools
EP3451665A1 (en) * 2017-09-01 2019-03-06 Thomson Licensing Refinement of internal sub-blocks of a coding unit
JP6806916B2 (ja) 2017-09-26 2021-01-06 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 復号装置及び復号方法
WO2019066602A1 (ko) * 2017-09-29 2019-04-04 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측 방법 및 장치
WO2019072373A1 (en) * 2017-10-09 2019-04-18 Huawei Technologies Co., Ltd. UPDATING MODELS FOR REFINING MOTION VECTORS
EP3682635A1 (en) * 2017-10-09 2020-07-22 Huawei Technologies Co., Ltd. Memory access window for sub prediction block motion vector derivation
WO2019072369A1 (en) * 2017-10-09 2019-04-18 Huawei Technologies Co., Ltd. PRUNING MOTION VECTOR LIST
WO2019072368A1 (en) * 2017-10-09 2019-04-18 Huawei Technologies Co., Ltd. LIMITED MEMORY ACCESS WINDOW FOR MOTION VECTOR REFINEMENT
CN111201795B (zh) 2017-10-09 2022-07-26 华为技术有限公司 存储访问窗口和用于运动矢量修正的填充
EP3682634A1 (en) * 2017-10-09 2020-07-22 Huawei Technologies Co., Ltd. Motion vector refinement of a motion vector pointing to a fractional sample position
US10785494B2 (en) 2017-10-11 2020-09-22 Qualcomm Incorporated Low-complexity design for FRUC
WO2019087978A1 (ja) * 2017-10-30 2019-05-09 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
KR20230161531A (ko) * 2017-11-09 2023-11-27 삼성전자주식회사 움직임 정보의 부호화 장치 및 방법, 및 복호화 장치 및 방법
WO2019103564A1 (ko) * 2017-11-27 2019-05-31 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측에 따른 영상 디코딩 방법 및 장치
CN109996081B (zh) * 2017-12-31 2023-09-12 华为技术有限公司 图像预测方法、装置以及编解码器
KR20200098520A (ko) * 2018-01-08 2020-08-20 삼성전자주식회사 움직임 정보의 부호화 및 복호화 방법, 및 움직임 정보의 부호화 및 복호화 장치
CN111886867B (zh) * 2018-01-09 2023-12-19 夏普株式会社 运动矢量推导装置、运动图像解码装置以及运动图像编码装置
US11265551B2 (en) * 2018-01-18 2022-03-01 Qualcomm Incorporated Decoder-side motion vector derivation
WO2019147079A1 (ko) * 2018-01-25 2019-08-01 주식회사 윌러스표준기술연구소 서브블록 기반의 모션 보상을 이용한 비디오 신호 처리 방법 및 장치
US11310526B2 (en) * 2018-01-26 2022-04-19 Mediatek Inc. Hardware friendly constrained motion vector refinement
WO2019146718A1 (ja) * 2018-01-29 2019-08-01 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US10523948B2 (en) * 2018-02-05 2019-12-31 Tencent America LLC Method and apparatus for video coding
MX2020008575A (es) * 2018-02-15 2020-11-12 Arris Entpr Llc Tamaño de plantilla variable para coincidencia de plantilla.
US11233996B2 (en) 2018-02-22 2022-01-25 Lg Electronics Inc. Image decoding method and apparatus according to block division structure in image coding system
SG11202007843YA (en) * 2018-03-19 2020-10-29 Qualcomm Inc Improvements to advanced temporal motion vector prediction
CN117336506A (zh) * 2018-03-19 2024-01-02 英迪股份有限公司 图像解码方法、图像编码方法和存储比特流的记录介质
CN112040244B (zh) * 2018-03-29 2021-06-29 华为技术有限公司 一种双向帧间预测方法及装置
EP3780604A4 (en) * 2018-03-29 2021-12-22 Industry Academy Cooperation Foundation Of Sejong University IMAGE CODING / DECODING PROCESS AND APPARATUS
WO2019187096A1 (ja) * 2018-03-30 2019-10-03 株式会社ソシオネクスト 復号方法、復号装置、符号化装置及びプログラム
KR102643116B1 (ko) * 2018-03-30 2024-03-04 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2019188942A1 (en) * 2018-03-30 2019-10-03 Sharp Kabushiki Kaisha Systems and methods for performing motion compensated prediction for video coding
US10992930B2 (en) * 2018-03-30 2021-04-27 Hulu, LLC Template refined bi-prediction for video coding
WO2019192491A1 (en) * 2018-04-02 2019-10-10 Mediatek Inc. Video processing methods and apparatuses for sub-block motion compensation in video coding systems
CN110337810B (zh) * 2018-04-02 2022-01-14 北京大学 用于视频处理的方法和设备
CN112055965A (zh) 2018-04-04 2020-12-08 日本放送协会 预测图像校正装置、图像编码装置、图像解码装置以及程序
US10958928B2 (en) * 2018-04-10 2021-03-23 Qualcomm Incorporated Decoder-side motion vector derivation for video coding
CN112655214A (zh) * 2018-04-12 2021-04-13 艾锐势有限责任公司 用于视频编码和信令通知的运动信息存储
WO2019203517A1 (ko) * 2018-04-15 2019-10-24 엘지전자 주식회사 영상 코딩 시스템에서 움직임 정보 도출 방법 및 장치
WO2019203513A1 (ko) * 2018-04-16 2019-10-24 엘지전자 주식회사 영상 코딩 시스템에서 dmvd 를 이용한 인터 예측에 따른 영상 디코딩 방법 및 장치
US10779002B2 (en) 2018-04-17 2020-09-15 Qualcomm Incorporated Limitation of the MVP derivation based on decoder-side motion vector derivation
WO2019201264A1 (en) * 2018-04-18 2019-10-24 Mediatek Inc. Candidate reorganizing with advanced control in video coding
WO2019225932A1 (ko) * 2018-05-21 2019-11-28 엘지전자 주식회사 영상 코딩 시스템에서 dmvr을 사용하는 영상 디코딩 방법 및 그 장치
US20210136398A1 (en) * 2018-05-28 2021-05-06 Interdigital Vc Holdings. Inc. Data dependency in coding/decoding
EP3804329A1 (en) 2018-06-01 2021-04-14 FRAUNHOFER-GESELLSCHAFT zur Förderung der angewandten Forschung e.V. Video codec using template matching prediction
GB2588003B (en) 2018-06-05 2023-04-19 Beijing Bytedance Network Tech Co Ltd Interaction between pairwise average merging candidates and IBC
WO2019234673A1 (en) * 2018-06-07 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Chroma dmvr
WO2019236335A1 (en) * 2018-06-07 2019-12-12 Interdigital Vc Holdings, Inc. Syntax elements for video encoding or decoding
EP3591969A1 (en) * 2018-07-02 2020-01-08 InterDigital VC Holdings, Inc. Syntax elements for video encoding or decoding
GB2613272B (en) * 2018-06-08 2023-11-15 Kt Corp Method and apparatus for processing a video signal
EP3809701A4 (en) * 2018-06-18 2022-06-22 Industry Academy Cooperation Foundation Of Sejong University METHOD AND APPARATUS FOR ENCODING/DECODING AN IMAGE
CN110620933B (zh) * 2018-06-19 2022-05-31 北京字节跳动网络技术有限公司 不同参考列表的不同精度
WO2019244117A1 (en) 2018-06-21 2019-12-26 Beijing Bytedance Network Technology Co., Ltd. Unified constrains for the merge affine mode and the non-merge affine mode
WO2019244118A1 (en) 2018-06-21 2019-12-26 Beijing Bytedance Network Technology Co., Ltd. Component-dependent sub-block dividing
WO2020004931A1 (ko) * 2018-06-27 2020-01-02 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측에 따른 영상 처리 방법 및 장치
WO2020005002A1 (ko) * 2018-06-28 2020-01-02 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측에 따른 템플릿 영역 도출 방법 및 장치
SG11202012700UA (en) * 2018-06-28 2021-01-28 Huawei Tech Co Ltd Memory access window and padding for motion vector refinement and motion compensation
SG11202011714RA (en) 2018-06-29 2020-12-30 Beijing Bytedance Network Technology Co Ltd Partial/full pruning when adding a hmvp candidate to merge/amvp
CN110662046B (zh) * 2018-06-29 2022-03-25 北京字节跳动网络技术有限公司 视频处理方法、装置和可读存储介质
SG11202013028PA (en) 2018-06-29 2021-01-28 Beijing Bytedance Network Technology Co Ltd Interaction between lut and amvp
KR102646649B1 (ko) 2018-06-29 2024-03-13 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut에서의 모션 후보들의 검사 순서
TWI724442B (zh) 2018-06-29 2021-04-11 大陸商北京字節跳動網絡技術有限公司 用於查找表更新的編碼的運動信息的選擇
KR20200002701A (ko) * 2018-06-29 2020-01-08 인텔렉추얼디스커버리 주식회사 디코더 측면의 움직임 보정을 사용하는 비디오 코딩 방법 및 장치
TWI728390B (zh) 2018-06-29 2021-05-21 大陸商北京字節跳動網絡技術有限公司 查找表尺寸
JP7460617B2 (ja) 2018-06-29 2024-04-02 北京字節跳動網絡技術有限公司 Lut更新条件
CN114845108A (zh) 2018-06-29 2022-08-02 抖音视界(北京)有限公司 查找表的更新:fifo、约束的fifo
WO2020005035A1 (ko) * 2018-06-29 2020-01-02 한국전자통신연구원 처리율 향상을 위한 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
TWI750486B (zh) 2018-06-29 2021-12-21 大陸商北京字節跳動網絡技術有限公司 運動資訊共用的限制
CN112369035A (zh) * 2018-06-30 2021-02-12 金起佰 图像编码/解码方法和设备
CN115396677A (zh) * 2018-06-30 2022-11-25 抖音视界有限公司 用于视频编解码的对称性双向预测模式
WO2020009427A1 (ko) * 2018-07-02 2020-01-09 엘지전자 주식회사 영상 코딩 시스템의 인터 예측에서 템플릿 기반의 후보 리스트 재정렬 방법 및 장치
US10638153B2 (en) * 2018-07-02 2020-04-28 Tencent America LLC For decoder side MV derivation and refinement
TWI731364B (zh) 2018-07-02 2021-06-21 大陸商北京字節跳動網絡技術有限公司 Hmvp+非相鄰運動
US10516885B1 (en) 2018-07-11 2019-12-24 Tencent America LLC Method and apparatus for video coding
US10701384B2 (en) 2018-08-01 2020-06-30 Tencent America LLC Method and apparatus for improvement on decoder side motion derivation and refinement
US11336914B2 (en) * 2018-08-16 2022-05-17 Qualcomm Incorporated History-based candidate list with classification
CN111064959B (zh) 2018-09-12 2023-09-01 北京字节跳动网络技术有限公司 要检查多少个hmvp候选
US10958932B2 (en) * 2018-09-12 2021-03-23 Qualcomm Incorporated Inter-prediction coding of video data using generated motion vector predictor list including non-adjacent blocks
JP7297874B2 (ja) * 2018-09-13 2023-06-26 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ビデオコーディングにおける条件付きデコーダ側動きベクトル精緻化のための装置および方法
TWI815967B (zh) 2018-09-19 2023-09-21 大陸商北京字節跳動網絡技術有限公司 仿射模式編解碼的模式相關自適應調整運動矢量分辨率
JP6976916B2 (ja) 2018-09-21 2021-12-08 Kddi株式会社 画像復号装置、画像符号化装置、画像処理システム及びプログラム
WO2020065518A1 (en) 2018-09-24 2020-04-02 Beijing Bytedance Network Technology Co., Ltd. Bi-prediction with weights in video coding and decoding
WO2020070730A2 (en) * 2018-10-06 2020-04-09 Beijing Bytedance Network Technology Co., Ltd. Size restriction based on affine motion information
CN111083491A (zh) 2018-10-22 2020-04-28 北京字节跳动网络技术有限公司 细化运动矢量的利用
WO2020084465A1 (en) * 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Simplified coding of generalized bi-directional index
WO2020084476A1 (en) * 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Sub-block based prediction
WO2020084554A1 (en) 2018-10-24 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Searching based motion candidate derivation for sub-block motion vector prediction
CN112219400B (zh) * 2018-11-06 2024-03-26 北京字节跳动网络技术有限公司 依赖位置的对运动信息的存储
EP3878175B1 (en) * 2018-11-08 2024-03-27 InterDigital VC Holdings, Inc. Quantization for video encoding or decoding based on the surface of a block
MX2021005267A (es) 2018-11-08 2021-06-18 Guangdong Oppo Mobile Telecommunications Corp Ltd Metodo para codificar/decodificar se?al de imagen y dispositivo para la misma.
CN112970262B (zh) * 2018-11-10 2024-02-20 北京字节跳动网络技术有限公司 三角预测模式中的取整
WO2020098643A1 (en) 2018-11-12 2020-05-22 Beijing Bytedance Network Technology Co., Ltd. Simplification of combined inter-intra prediction
EP3861742A4 (en) * 2018-11-20 2022-04-13 Beijing Bytedance Network Technology Co., Ltd. DIFFERENCE CALCULATION BASED ON SPATIAL POSITION
CN113170171B (zh) 2018-11-20 2024-04-12 北京字节跳动网络技术有限公司 组合帧间帧内预测模式的预测细化
JP7319365B2 (ja) 2018-11-22 2023-08-01 北京字節跳動網絡技術有限公司 サブブロックに基づくインター予測のための調整方法
CN113170184A (zh) 2018-11-22 2021-07-23 北京字节跳动网络技术有限公司 默认运动候选的配置方法
US10778977B2 (en) * 2018-12-05 2020-09-15 Qualcomm Incorporated Triangle motion information for video coding
US20220150511A1 (en) * 2018-12-21 2022-05-12 Electronics And Telecommunications Research Institute Image encoding/decoding method and device, and recording medium having bitstream stored therein
WO2020125751A1 (en) * 2018-12-21 2020-06-25 Beijing Bytedance Network Technology Co., Ltd. Information signaling in current picture referencing mode
PT3884675T (pt) * 2018-12-21 2024-02-02 Beijing Dajia Internet Information Tech Co Ltd Métodos e aparelhos de codificação de vídeo para derivação de vetores de movimento afins para componentes de croma
WO2020135465A1 (en) 2018-12-28 2020-07-02 Beijing Bytedance Network Technology Co., Ltd. Modified history based motion prediction
CN113302935A (zh) 2019-01-02 2021-08-24 瑞典爱立信有限公司 视频编码/解码系统中的端运动细化
CN111357290B (zh) 2019-01-03 2023-08-22 北京大学 视频图像处理方法与装置
CN113545050B (zh) * 2019-01-03 2023-05-30 北京达佳互联信息技术有限公司 利用三角形预测的视频编解码方法及装置
CN113273186A (zh) 2019-01-10 2021-08-17 北京字节跳动网络技术有限公司 Lut更新的调用
WO2020143824A1 (en) 2019-01-13 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and shared merge list
WO2020147773A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Inserting order of motion candidates in lut
US11849106B2 (en) 2019-01-18 2023-12-19 Wilus Institute Of Standards And Technology Inc. Video signal processing method and device using motion compensation
CN117336505A (zh) * 2019-02-14 2024-01-02 北京字节跳动网络技术有限公司 解码器侧细化工具的尺寸选择性应用
WO2020173196A1 (en) 2019-02-28 2020-09-03 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods for inter prediction
WO2020177756A1 (en) 2019-03-06 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Size dependent inter coding
WO2020185506A1 (en) * 2019-03-08 2020-09-17 Beijing Dajia Internet Information Technology Co., Ltd. Bi-directional optical flow and decoder-side motion vector refinement for video coding
CN112468812B (zh) 2019-03-11 2022-07-01 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
EP4274229A1 (en) * 2019-03-12 2023-11-08 LG Electronics Inc. Inter-prediction method and device based on dmvr and bdof
CN113615193A (zh) 2019-03-22 2021-11-05 北京字节跳动网络技术有限公司 Merge列表构建和其他工具之间的交互
EP3922014A4 (en) 2019-04-02 2022-04-06 Beijing Bytedance Network Technology Co., Ltd. DECODER SIDE MOTION VECTOR BYPASS
EP3935839A4 (en) * 2019-04-09 2022-06-22 Beijing Dajia Internet Information Technology Co., Ltd. METHODS AND DEVICES FOR SIGNALING MERGE MODES IN VIDEO ENCODING
SG11202110936PA (en) 2019-04-12 2021-11-29 Beijing Bytedance Network Technology Co Ltd Chroma coding mode determination based on matrix-based intra prediction
JP7403555B2 (ja) 2019-04-16 2023-12-22 北京字節跳動網絡技術有限公司 イントラコーディングモードにおけるマトリクスの導出
JP7303330B2 (ja) 2019-04-28 2023-07-04 北京字節跳動網絡技術有限公司 対称動きベクトル差分符号化
WO2020221256A1 (en) * 2019-04-28 2020-11-05 Beijing Bytedance Network Technology Co., Ltd. Symmetric motion vector difference coding
CN117097912A (zh) 2019-05-01 2023-11-21 北京字节跳动网络技术有限公司 基于矩阵的帧内预测的上下文编码
CN113812150B (zh) 2019-05-01 2023-11-28 北京字节跳动网络技术有限公司 使用滤波的基于矩阵的帧内预测
BR112021022868A2 (pt) 2019-05-22 2022-01-04 Beijing Bytedance Network Tech Co Ltd Método de processamento de vídeos, aparelho para processar dados de vídeo e meios de armazenamento e gravação não transitórios legíveis por computador
WO2020243100A1 (en) * 2019-05-26 2020-12-03 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatus for improving motion estimation in video coding
CN113924775B (zh) 2019-05-31 2023-11-14 北京字节跳动网络技术有限公司 基于矩阵的帧内预测中的限制的上采样
WO2020244610A1 (en) 2019-06-05 2020-12-10 Beijing Bytedance Network Technology Co., Ltd. Context determination for matrix-based intra prediction
WO2020263038A1 (ko) * 2019-06-27 2020-12-30 삼성전자주식회사 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치
JP7359936B2 (ja) 2019-07-20 2023-10-11 北京字節跳動網絡技術有限公司 パレットモードの使用の指示の条件依存符号化
CN114145013B (zh) * 2019-07-23 2023-11-14 北京字节跳动网络技术有限公司 调色板模式编解码的模式确定
CN114175655B (zh) 2019-07-27 2024-01-02 北京字节跳动网络技术有限公司 根据参考图片类型使用工具的限制
JP7481430B2 (ja) 2019-08-13 2024-05-10 北京字節跳動網絡技術有限公司 サブブロックに基づくインター予測における動き精度
CN114762330A (zh) 2019-09-22 2022-07-15 北京字节跳动网络技术有限公司 视频的子图片编码和解码
WO2021061023A1 (en) * 2019-09-23 2021-04-01 Huawei Technologies Co., Ltd. Signaling for motion vector refinement
US20210092427A1 (en) * 2019-09-23 2021-03-25 Qualcomm Incorporated Harmonized early termination in bdof and dmvr in video coding
CN112204983A (zh) * 2019-09-24 2021-01-08 北京大学 一种视频处理方法、设备及存储介质
CN110730350B (zh) * 2019-09-25 2021-08-24 杭州电子科技大学 结合编码深度估计和贝叶斯判决的shvc快速编码方法
WO2021056438A1 (zh) * 2019-09-27 2021-04-01 深圳市大疆创新科技有限公司 点云数据处理方法及其装置、激光雷达、可移动平台
WO2020251418A2 (en) * 2019-10-01 2020-12-17 Huawei Technologies Co., Ltd. Method and apparatus of slice-level signaling for bi-directional optical flow and decoder side motion vector refinement
WO2020256601A2 (en) * 2019-10-03 2020-12-24 Huawei Technologies Co., Ltd. Method and apparatus of picture-level signaling for bidirectional optical flow and decoder side motion vector refinement
EP4042689A4 (en) 2019-10-28 2023-06-07 Beijing Bytedance Network Technology Co., Ltd. SIGNALING AND SYNTAX ANALYSIS BASED ON A COLOR COMPONENT
US11936899B2 (en) * 2021-03-12 2024-03-19 Lemon Inc. Methods and systems for motion candidate derivation
US11671616B2 (en) 2021-03-12 2023-06-06 Lemon Inc. Motion candidate derivation
WO2022211492A1 (ko) * 2021-04-02 2022-10-06 현대자동차주식회사 디코더 측면의 움직임 보상을 이용하는 비디오 코딩방법 및 장치
US11936877B2 (en) * 2021-04-12 2024-03-19 Qualcomm Incorporated Template matching based affine prediction for video coding
US20230139186A1 (en) * 2021-10-28 2023-05-04 Tencent America LLC Template-matching based adaptive motion vector resolution (amvr)
WO2023104083A1 (en) * 2021-12-07 2023-06-15 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing
WO2023163386A1 (ko) * 2022-02-24 2023-08-31 현대자동차주식회사 블록 경계 불연속성을 감소시키는 비디오 코딩을 위한 방법 및 장치
US20230300364A1 (en) * 2022-03-15 2023-09-21 Tencent America LLC Temporal based subblock type motion vector predictor
US11968356B2 (en) * 2022-03-16 2024-04-23 Qualcomm Incorporated Decoder-side motion vector refinement (DMVR) inter prediction using shared interpolation filters and reference pixels
US20230328225A1 (en) * 2022-04-11 2023-10-12 Tencent America LLC Bilateral matching with affine motion
US20230370604A1 (en) * 2022-05-16 2023-11-16 Tencent America LLC Flexible scaling factors for joint mvd coding
US20230421751A1 (en) * 2022-05-23 2023-12-28 Tencent America LLC Subblock-based motion vector predictor with mv offset derived by template matching
US20240022711A1 (en) * 2022-07-13 2024-01-18 Tencent America LLC Block vector refinement method for intra block copy

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110176611A1 (en) 2010-01-15 2011-07-21 Yu-Wen Huang Methods for decoder-side motion vector derivation

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1578136A3 (en) 1998-01-27 2005-10-19 AT&T Corp. Method and apparatus for encoding video shape and texture information
US6438168B2 (en) 2000-06-27 2002-08-20 Bamboo Media Casting, Inc. Bandwidth scaling of a compressed video stream
CN101448162B (zh) 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
US20040001546A1 (en) 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7728909B2 (en) 2005-06-13 2010-06-01 Seiko Epson Corporation Method and system for estimating motion and compensating for perceived motion blur in digital video
EP1775954A1 (en) 2005-10-14 2007-04-18 Thomson Licensing Method and apparatus for reconstructing a video frame for spatial multi-layer video sequence
WO2008150498A1 (en) 2007-05-30 2008-12-11 University Of Georgia Research Foundation Inc. Human embryonic stem cell derived mesoderm-like epithelium transitions to mesenchymal progenitor cells
RU2505938C2 (ru) * 2008-04-10 2014-01-27 Квэлкомм Инкорпорейтед Интерполяция на основе искажений в зависимости от скорости передачи для кодирования видео на основе неперестраиваемого фильтра или адаптивного фильтра
US9077971B2 (en) 2008-04-10 2015-07-07 Qualcomm Incorporated Interpolation-like filtering of integer-pixel positions in video coding
US8705622B2 (en) 2008-04-10 2014-04-22 Qualcomm Incorporated Interpolation filter support for sub-pixel resolution in video coding
JP5406465B2 (ja) 2008-04-24 2014-02-05 株式会社Nttドコモ 画像予測符号化装置、画像予測符号化方法、画像予測符号化プログラム、画像予測復号装置、画像予測復号方法及び画像予測復号プログラム
US8055025B2 (en) 2008-06-14 2011-11-08 City University Of Hong Kong Motion estimation method
CN101686393B (zh) 2008-09-28 2012-10-17 华为技术有限公司 应用于模板匹配的快速运动搜索方法及装置
KR101279573B1 (ko) 2008-10-31 2013-06-27 에스케이텔레콤 주식회사 움직임 벡터 부호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
TWI405469B (zh) 2009-02-20 2013-08-11 Sony Corp Image processing apparatus and method
JP2010268259A (ja) 2009-05-15 2010-11-25 Sony Corp 画像処理装置および方法、並びにプログラム
KR101671460B1 (ko) 2009-09-10 2016-11-02 에스케이 텔레콤주식회사 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
JPWO2011048904A1 (ja) 2009-10-20 2013-03-07 シャープ株式会社 画像符号化装置、画像復号装置、および、符号化データのデータ構造
CN105791823B (zh) 2009-12-08 2019-11-29 交互数字麦迪逊专利控股公司 视频编码和解码的自适应模版匹配预测的方法和装置
CN102131091B (zh) 2010-01-15 2013-01-23 联发科技股份有限公司 解码端运动向量导出方法
WO2011094871A1 (en) * 2010-02-05 2011-08-11 Sensio Technologies Inc. Method and apparatus of frame interpolation
JP5609737B2 (ja) 2010-04-13 2014-10-22 ソニー株式会社 信号処理装置および方法、符号化装置および方法、復号装置および方法、並びにプログラム
US8837592B2 (en) * 2010-04-14 2014-09-16 Mediatek Inc. Method for performing local motion vector derivation during video coding of a coding unit, and associated apparatus
US9503743B2 (en) 2010-05-12 2016-11-22 Thomson Licensing Methods and apparatus for uni-prediction of self-derivation of motion estimation
HUE055116T2 (hu) 2010-09-02 2021-10-28 Lg Electronics Inc Videó kódolási és dekódolási eljárás
EP2625858A4 (en) 2010-10-06 2015-01-14 Intel Corp SYSTEM AND METHOD FOR MOVING VECTOR REMOVAL WITH LOW COMPLEXITY
MX2013008691A (es) 2011-02-10 2013-08-21 Panasonic Corp Metodo de codificacion de imagenes en movimiento, aparato de codificacion de imagenes en movimiento, metodo de decodificacion de imagenes en movimiento, aparato de decodificacion de imagenes en movimiento y aparato de codificacion y decodificacion de imagenes en movimiento.
CN102685504B (zh) 2011-03-10 2015-08-19 华为技术有限公司 视频图像的编解码方法、编码装置、解码装置及其系统
AU2011362447B2 (en) 2011-03-14 2015-09-24 Hfi Innovation Inc. Method and apparatus for deriving temporal motion vector prediction
US20130287111A1 (en) * 2011-03-15 2013-10-31 Lidong Xu Low memory access motion vector derivation
US9143795B2 (en) 2011-04-11 2015-09-22 Texas Instruments Incorporated Parallel motion estimation in video coding
US9247266B2 (en) 2011-04-18 2016-01-26 Texas Instruments Incorporated Temporal motion data candidate derivation in video coding
CA2839560C (en) 2011-06-16 2016-10-04 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Entropy coding of motion vector differences
US20130114717A1 (en) 2011-11-07 2013-05-09 Qualcomm Incorporated Generating additional merge candidates
RU2710303C2 (ru) 2011-11-08 2019-12-25 Кт Корпорейшен Способ декодирования видеосигнала
WO2013095180A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Complexity scalable frame rate up-conversion
US20140010307A1 (en) * 2011-12-30 2014-01-09 Marat Ravilevich Gilmutdinov Method of and apparatus for complexity scalable frame rate up-conversion
US20130188715A1 (en) * 2012-01-09 2013-07-25 Qualcomm Incorporated Device and methods for merge list reordering in video coding
US9332259B2 (en) 2012-01-18 2016-05-03 Qualcomm Incorporated Indication of use of wavefront parallel processing 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
US9998726B2 (en) 2012-06-20 2018-06-12 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
US9325990B2 (en) 2012-07-09 2016-04-26 Qualcomm Incorporated Temporal motion vector prediction in video coding extensions
US9998755B2 (en) 2012-10-03 2018-06-12 Mediatek Inc. Method and apparatus for motion information inheritance in three-dimensional video coding
US10375405B2 (en) 2012-10-05 2019-08-06 Qualcomm Incorporated Motion field upsampling for scalable coding based on high efficiency video coding
US9438928B2 (en) * 2012-11-05 2016-09-06 Lifesize, Inc. Mechanism for video encoding based on estimates of statistically-popular motion vectors in frame
US9819965B2 (en) 2012-11-13 2017-11-14 Intel Corporation Content adaptive transform coding for next generation video
US9948939B2 (en) 2012-12-07 2018-04-17 Qualcomm Incorporated Advanced residual prediction in scalable and multi-view video coding
US9350970B2 (en) 2012-12-14 2016-05-24 Qualcomm Incorporated Disparity vector derivation
CN104104960B (zh) 2013-04-03 2017-06-27 华为技术有限公司 多级双向运动估计方法及设备
WO2015015436A2 (en) * 2013-07-30 2015-02-05 Riversilica Technologies Pvt Ltd System and method for performing optimal temporal predictive mode decision in h.264 video coding
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
US9967558B1 (en) * 2013-12-17 2018-05-08 Google Llc Adaptive motion search control for variable block size partitions in video coding
US10531116B2 (en) 2014-01-09 2020-01-07 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding
US9967592B2 (en) * 2014-01-11 2018-05-08 Qualcomm Incorporated Block-based advanced residual prediction for 3D video coding
WO2015109598A1 (en) 2014-01-27 2015-07-30 Mediatek Singapore Pte. Ltd. Methods for motion parameter hole filling
US10412387B2 (en) 2014-08-22 2019-09-10 Qualcomm Incorporated Unified intra-block copy and inter-prediction
US10200711B2 (en) 2015-03-27 2019-02-05 Qualcomm Incorporated Motion vector derivation in video coding
US10778999B2 (en) 2016-09-30 2020-09-15 Qualcomm Incorporated Frame rate up-conversion coding mode with affine motion model
US10616582B2 (en) 2016-09-30 2020-04-07 Qualcomm Incorporated Memory and bandwidth reduction of stored data in image/video coding
US10805630B2 (en) 2017-04-28 2020-10-13 Qualcomm Incorporated Gradient based matching for motion search and derivation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110176611A1 (en) 2010-01-15 2011-07-21 Yu-Wen Huang Methods for decoder-side motion vector derivation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LIN S et al: "TE1: Huawei report on DMVD improvements", JCTVC-B037, 2010.7.23.

Also Published As

Publication number Publication date
PH12017501470A1 (en) 2018-01-15
CN107409225B (zh) 2020-01-07
JP2018513611A (ja) 2018-05-24
SG11201706539PA (en) 2017-10-30
SI3275188T1 (sl) 2022-01-31
MY188593A (en) 2021-12-22
PH12017501471A1 (en) 2018-01-29
ES2900029T3 (es) 2022-03-15
RU2705428C2 (ru) 2019-11-07
EP3275186A1 (en) 2018-01-31
HUE057250T2 (hu) 2022-04-28
SG11201706534TA (en) 2017-10-30
SA517382337B1 (ar) 2021-05-30
EP3275187A1 (en) 2018-01-31
US11330284B2 (en) 2022-05-10
BR112017020632A2 (pt) 2018-06-26
SI3275186T1 (sl) 2021-12-31
EP3275188A1 (en) 2018-01-31
PT3275186T (pt) 2021-11-25
RU2719296C2 (ru) 2020-04-17
SA517382335B1 (ar) 2022-02-06
AU2020207821B2 (en) 2022-04-07
JP2018513612A (ja) 2018-05-24
JP6783788B2 (ja) 2020-11-11
US10958927B2 (en) 2021-03-23
CN107431820B (zh) 2020-01-10
AU2020204590A1 (en) 2020-07-30
AU2016243520A1 (en) 2017-08-31
BR112017020627A2 (pt) 2018-07-03
US10200711B2 (en) 2019-02-05
MX368146B (es) 2019-09-20
BR112017020635A2 (pt) 2018-06-26
KR20170131446A (ko) 2017-11-29
KR20170131448A (ko) 2017-11-29
MX2017012060A (es) 2018-01-12
PL3275188T3 (pl) 2022-01-31
DK3275188T3 (da) 2021-12-13
DK3275186T3 (da) 2021-11-22
CO2017009676A2 (es) 2017-12-15
CN107409225A (zh) 2017-11-28
RU2017133236A3 (ko) 2019-09-20
SG11201706537WA (en) 2017-10-30
CL2017002384A1 (es) 2018-06-15
JP6740243B2 (ja) 2020-08-12
IL253849A0 (en) 2017-09-28
EP3275186B1 (en) 2021-10-20
EP3275187B1 (en) 2021-09-29
NZ734552A (en) 2023-04-28
AU2016243518A1 (en) 2017-08-31
MX2017012059A (es) 2018-01-12
CL2017002383A1 (es) 2018-06-15
CO2017009675A2 (es) 2017-12-15
RU2017133236A (ru) 2019-04-05
WO2016160609A1 (en) 2016-10-06
WO2016160608A1 (en) 2016-10-06
WO2016160605A1 (en) 2016-10-06
CA2976828A1 (en) 2016-10-06
HUE056702T2 (hu) 2022-03-28
EP3275188B1 (en) 2021-11-17
KR102520296B1 (ko) 2023-04-10
PH12017501440A1 (en) 2018-01-15
ES2898862T3 (es) 2022-03-09
CA2976818A1 (en) 2016-10-06
IL253849B (en) 2021-03-25
CN107534766B (zh) 2020-05-08
CN107431820A (zh) 2017-12-01
MY187426A (en) 2021-09-22
HK1243259A1 (zh) 2018-07-06
PT3275188T (pt) 2021-12-17
TW201639369A (zh) 2016-11-01
TWI705703B (zh) 2020-09-21
RU2017132847A (ru) 2019-04-10
AU2016243521A1 (en) 2017-08-31
US20160286232A1 (en) 2016-09-29
CL2017002423A1 (es) 2018-07-13
US20160286230A1 (en) 2016-09-29
CA2976827C (en) 2023-08-29
TWI714565B (zh) 2021-01-01
CO2017009672A2 (es) 2017-12-15
PL3275186T3 (pl) 2022-01-24
MX2017012065A (es) 2018-01-12
RU2017133106A (ru) 2019-04-04
RU2017133106A3 (ko) 2019-09-11
CN107534766A (zh) 2018-01-02
TW201639368A (zh) 2016-11-01
TW201639370A (zh) 2016-11-01
AU2020207821A1 (en) 2020-08-06
RU2742298C2 (ru) 2021-02-04
KR102519779B1 (ko) 2023-04-07
MY187812A (en) 2021-10-26
AU2016243518B2 (en) 2020-07-30
NZ734554A (en) 2023-03-31
JP2018512810A (ja) 2018-05-17
SA517382334B1 (ar) 2021-10-24
US20160286229A1 (en) 2016-09-29
RU2017132847A3 (ko) 2019-09-25
KR20170131447A (ko) 2017-11-29
CA2976827A1 (en) 2016-10-06

Similar Documents

Publication Publication Date Title
AU2020207821B2 (en) Motion vector derivation in video coding
CN110431845B (zh) 约束通过解码器侧运动向量推导导出的运动向量信息
CN107690810B (zh) 确定用于视频译码的照明补偿状态的系统及方法
CN107710764B (zh) 确定用于视频译码的照明补偿状态的系统及方法
KR20190103171A (ko) 양방향 옵티컬 플로우 (bio) 를 위한 모션 벡터 재구성
WO2018200960A1 (en) Gradient based matching for motion search and derivation

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant