KR20210025536A - Lut들을 업데이트하기 위한 조건들 - Google Patents

Lut들을 업데이트하기 위한 조건들 Download PDF

Info

Publication number
KR20210025536A
KR20210025536A KR1020207037770A KR20207037770A KR20210025536A KR 20210025536 A KR20210025536 A KR 20210025536A KR 1020207037770 A KR1020207037770 A KR 1020207037770A KR 20207037770 A KR20207037770 A KR 20207037770A KR 20210025536 A KR20210025536 A KR 20210025536A
Authority
KR
South Korea
Prior art keywords
video
motion
candidates
block
tables
Prior art date
Application number
KR1020207037770A
Other languages
English (en)
Inventor
리 장
카이 장
훙빈 류
웨 왕
Original Assignee
베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드
바이트댄스 아이엔씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드, 바이트댄스 아이엔씨 filed Critical 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드
Publication of KR20210025536A publication Critical patent/KR20210025536A/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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • 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/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/94Vector quantisation
    • 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

비디오를 처리하기 위한 디바이스들, 시스템들 및 방법들이 설명된다. 대표적인 양태에서, 비디오 처리 방법이 제공되며, 이 방법은: 테이블을 유지하는 단계- 각각의 테이블은 모션 후보들의 세트를 포함하고, 각각의 모션 후보는 대응하는 모션 정보와 연관됨 -; 테이블들에 기초하여 제1 비디오 블록과 제1 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계; 및 변환을 수행한 이후에, 업데이트 규칙에 기초하여 0개 이상의 테이블을 업데이트하는 단계를 포함한다.

Description

LUT들을 업데이트하기 위한 조건들
관련 출원들에 대한 상호 참조
파리 조약에 따른 적용가능한 특허법 및/또는 규칙들 하에서, 본 출원은 2018년 6월 29일자로 출원된 국제 특허 출원 제PCT/CN2018/093663호, 2018년 7월 7일자로 출원된 국제 특허 출원 제PCT/CN2018/094929호, 2018년 8월 18일자로 출원된 국제 특허 출원 제PCT/CN2018/101220호 및 2018년 7월 2일자로 출원된 국제 특허 출원 제PCT/CN2018/093987호에 대한 우선권 및 이익을 적시에 주장하도록 이루어진다. 미국 특허법 하에서 모든 목적을 위해, 국제 특허 출원 번호 PCT/CN2018/093663, 국제 특허 출원 번호 PCT/CN2018/094929, 국제 특허 출원 번호 PCT/CN2018/101220 및 국제 특허 출원 번호 PCT/CN2018/093987의 전체 개시내용은 본 출원의 개시내용의 일부로서 참조로 포함된다.
기술 분야
본 특허 문서는 비디오 코딩 및 디코딩 기술, 디바이스 및 시스템에 관련한 것이다.
비디오 압축의 발전에도 불구하고, 디지털 비디오는 인터넷 및 다른 디지털 통신 네트워크들에서 여전히 가장 큰 대역폭 사용을 차지한다. 비디오를 수신 및 디스플레이할 수 있는 연결된 사용자 디바이스들의 수가 증가함에 따라, 디지털 비디오 사용에 대한 대역폭 수요가 계속 증가할 것으로 예상된다.
코딩 후보들을 포함하는 테이블들의 세트를 사용하여 디지털 비디오를 인코딩 및 디코딩하는 것에 관련된 디바이스들, 시스템들 및 방법들이 설명되어 있다. 설명된 방법들은 기존의 비디오 코딩 표준들(예컨대, 고효율 비디오 코딩(HEVC)) 및 장래의 비디오 코딩 표준들 또는 비디오 코덱들 둘 다에 적용될 수 있다.
하나의 대표적인 양태에서, 개시된 기술은 다음을 포함하는 비디오 처리 방법을 제공하는데 사용될 수 있다: 테이블을 유지하는 단계- 각각의 테이블은 모션 후보들의 세트를 포함하고, 각각의 모션 후보는 대응하는 모션 정보와 연관됨 -; 테이블들에 기초하여 제1 비디오 블록과 제1 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계; 및 변환을 수행한 이후에, 업데이트 규칙에 기초하여 0개 이상의 테이블을 업데이트하는 단계.
다른 대표적인 양태에서, 테이블들을 유지하는 단계- 각각의 테이블은 모션 후보들의 세트를 포함하고, 각각의 모션 후보는 대응하는 모션 정보와 연관됨 -; 테이블들에 기초하여 제1 비디오 블록과 제1 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계; 및 변환을 수행한 이후에, 업데이트 종료 기준이 충족될 때까지 비디오 내의 하나 이상의 비디오 영역에 기초하여 하나 이상의 테이블을 업데이트하는 단계를 포함한다.
다른 대표적인 양태에서, 개시된 기술은 다른 비디오 처리 방법을 제공하는데 사용될 수 있으며, 이 방법은 모션 후보들을 포함하는 하나 이상의 테이블을 유지하는 단계- 각각의 모션 후보는 대응하는 모션 정보와 연관됨 -; 하나 이상의 테이블 중 적어도 하나에서 모션 후보들을 재순서화하는 단계; 및 적어도 하나의 테이블 내의 재순서화된 모션 후보들에 기초하여, 제1 비디오 블록과 제1 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 양태에서, 개시된 기술은 다른 비디오 처리 방법을 제공하는데 사용될 수 있으며, 이 방법은 모션 후보들을 포함하는 하나 이상의 테이블을 유지하는 단계- 각각의 모션 후보는 대응하는 모션 정보와 연관됨 -; 테이블들 중 하나 이상에 기초하여, 하나 이상의 테이블을 사용하여 제1 비디오 블록과 제1 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계; 및 제1 비디오 블록의 변환에 기초하여, 추가적인 모션 후보를 테이블에 추가하고 및 테이블에서의 모션 후보들을 재순서화함으로써 하나 이상의 테이블을 업데이트하는 단계를 포함한다.
또 다른 대표적인 양태에서, 전술한 방법은 프로세서 실행가능 코드의 형태로 구현되고 컴퓨터 판독가능 프로그램 매체에 저장된다.
또 다른 대표적인 양태에서, 전술한 방법을 수행하도록 구성되거나 동작가능한 디바이스가 개시된다. 디바이스는 이 방법을 구현하도록 프로그래밍되는 프로세서를 포함할 수 있다.
또 다른 대표적인 양태에서, 비디오 디코더 장치는 본 명세서에 설명된 방법을 구현할 수 있다.
개시된 기술의 상기 및 다른 양태들 및 특징들은 도면들, 설명 및 청구항들에서 더 상세히 설명된다.
도 1은 전형적인 고효율 비디오 코딩(HEVC) 비디오 인코더 및 디코더의 예시적인 블록도를 도시한다.
도 2는 H.264/AVC에서의 매크로블록(MB) 파티션들의 예들을 도시한다.
도 3은 코딩 블록(CB)들을 예측 블록(PB)들로 분할하는 예를 도시한다.
도 4a 및 도 4b는 각각 CB들 및 변환 블록(TB)들로의 코딩 트리 블록(CTB)의 세분, 및 대응하는 쿼드트리의 예를 도시한다.
도 5a 및 도 5b는 최대 코딩 유닛(LCU)에 대한 세분화 및 대응하는 QTBT(quadtree plus binary tree)의 예를 도시한다.
도 6a 내지 도 6e는 코딩 블록 파티셔닝의 예를 도시한다.
도 7은 QTBT에 기초한 CB의 예시적인 세분화를 도시한다.
도 8a 및 도 8i는 QTBT의 일반화인 MTT(multi-tree type)를 지원한 CB의 파티션들의 예들을 도시한다.
도 9a는 트리-타입 시그널링의 예를 도시한다.
도 9b는 병합 후보 리스트를 구성하는 예를 도시한다.
도 10은 공간 후보들의 위치들의 예를 도시한다.
도 11은 공간 병합 후보들의 중복 검사를 받는 후보 쌍들의 예를 도시한다.
도 12a 및 12b는 현재 블록의 크기 및 형상에 기초한 제2 예측 유닛(PU)의 위치의 예들을 도시한다.
도 13은 시간 병합 후보들에 대한 모션 벡터 스케일링의 예를 도시한다.
도 14는 시간 병합 후보들에 대한 후보 위치들의 예를 도시한다.
도 15는 조합된 양방향 예측 병합 후보를 생성하는 예를 도시한다.
도 16a 및 도 16b는 모션 벡터 예측 후보에 대한 도출 프로세스의 예를 도시한다.
도 17은 공간 모션 벡터 후보에 대한 모션 벡터 스케일링의 예를 도시한다.
도 18a 및 도 18b는 코딩 유닛(CU)에 대한 ATMVP(alternative temporal motion vector prediction) 알고리즘을 사용하는 모션 예측의 예를 도시한다.
도 19는 소스 블록 및 소스 픽처의 식별의 예를 도시한다.
도 20은 STMVP(spatial-temporal motion vector prediction) 알고리즘에 의해 사용되는 서브 블록들 및 이웃 블록들을 갖는 코딩 유닛(CU)의 예를 도시한다.
도 21은 FRUC(frame-rate up conversion) 알고리즘에 기초한 특별 병합 모드인, PMMVD(pattern matched motion vector derivation) 모드에서의 양방향 매칭의 예를 도시한다.
도 22는 FRUC 알고리즘에서의 템플릿 매칭의 예를 도시한다.
도 23은 FRUC 알고리즘에서의 단방향 모션 추정의 예를 도시한다.
도 24는 양방향 템플릿 매칭에 기초한 DMVR(decoder-side motion vector refinement) 알고리즘의 예를 도시한다.
도 25는 조도 보상(IC) 파라미터들을 도출하는데 사용되는 이웃 샘플들의 예를 도시한다.
도 26은 공간 병합 후보들을 도출하는 데 사용되는 이웃 블록들의 예를 도시하는 도면이다.
도 27은 제안된 67개의 인트라 예측 모드의 예를 도시한다.
도 28은 최고 확률 모드 도출을 위한 이웃 블록들의 예를 도시한다.
도 29a 및 도 29b는 QTBT 구조를 갖는 I-슬라이스 내의 대응하는 루마 및 크로마 서브 블록들을 도시한다.
도 30은 룩업 테이블 업데이트들을 위한 대표적인 위치의 선택 방법의 예를 도시한다.
도 31a 및 도 31b는 새로운 모션 정보 세트로 룩업 테이블을 업데이트하는 예들을 예시한다.
도 32는 제안된 HMVP 방법을 갖는 디코딩 흐름도의 예를 도시한다.
도 33은 제안된 HMVP 방법을 사용하여 테이블들을 업데이트하는 예들을 도시한다.
도 34a 및 도 34b는 (하나의 중복 모션 후보가 제거된) 중복 제거 기반 LUT 업데이트 방법의 예들을 도시한다.
도 35a 및 도 35b는 (다수의 중복 모션 후보들이 제거된) 중복 제거 기반 LUT 업데이트 방법의 예들을 도시한다.
도 36은 하나의 블록 이후에 업데이트하는 것에 의한 LUT-기반 MVP/인트라 모드 예측/IC 파라미터들의 일 예에 대한 코딩 흐름을 도시한다.
도 37은 하나의 영역 이후에 업데이트하는 것에 의한 LUT-기반 MVP/인트라 모드 예측/IC 파라미터들의 일 예에 대한 코딩 흐름을 도시한다.
도 38a 내지 도 38d는 현재 개시된 기술에 따른 비디오 처리를 위한 예시적인 방법들의 흐름도들을 도시한다.
도 39는 본 문서에 설명된 비주얼 미디어 디코딩 또는 비주얼 미디어 인코딩 기술을 구현하는 하드웨어 플랫폼의 예의 블록도이다.
더 높은 해상도의 비디오의 수요가 증가함으로 인해, 비디오 코딩 방법들 및 기술들은 현대의 기술에서 보편화되어 있다. 비디오 코덱들은 전형적으로 디지털 비디오를 압축 또는 압축 해제하고, 더 높은 코딩 효율을 제공하도록 계속 개선되고 있는 전자 회로 또는 소프트웨어를 포함한다. 비디오 코덱은 압축되지 않은 비디오를 압축된 포맷으로 변환하거나, 그 반대로 변환한다. 비디오 품질, 비디오를 표현하기 위해 사용되는 데이터의 양(비트 레이트에 의해 결정됨), 인코딩 및 디코딩 알고리즘들의 복잡도, 데이터 손실들 및 에러들에 대한 민감도, 편집의 용이성, 랜덤 액세스, 및 종단간 지연(레이턴시) 사이에 복잡한 관계들이 존재한다. 압축된 포맷은 일반적으로 표준 비디오 압축 사양, 예를 들어, 고효율 비디오 코딩(HEVC) 표준(H.265 또는 MPEG-H 파트 2로도 알려짐), 완성될 다용도 비디오 코딩 표준, 또는 다른 현재 및/또는 장래의 비디오 코딩 표준들을 따른다.
개시된 기술의 실시예들은 기존의 비디오 코딩 표준들(예컨대, HEVC, H.265) 및 압축 성능을 향상시키기 위한 장래의 표준들에 적용될 수 있다. 섹션 제목들은 본 문서에서 설명의 가독성을 향상시키기 위해 사용되며, 설명 또는 실시예들(및/또는 구현들)을 결코 각각의 섹션들에만 제한하지 않는다.
1. 비디오 코딩의 예시적인 실시예들
도 1은 전형적인 HEVC 비디오 인코더 및 디코더(참조문헌 [1])의 예시적인 블록도를 도시한다. HEVC 준수 비트스트림을 생성하는 인코딩 알고리즘은 전형적으로 다음과 같이 진행할 것이다. 각각의 픽처는 블록 형상 영역들로 분할되며, 정확한 블록 파티셔닝이 디코더에 전달된다. 비디오 시퀀스의 제1 픽처(및 비디오 시퀀스로의 각각의 클린 랜덤 액세스 지점에서의 제1 픽처)는 인트라-픽처 예측(동일 픽처 내의 영역간에 공간적으로 데이터의 일부 예측을 사용하지만, 다른 픽처들에 의존하지는 않음)만을 사용하여 코딩된다. 시퀀스의 모든 나머지 픽처들에 대해 또는 랜덤 액세스 포인트들 사이에서, 인터-픽처 시간 예측 코딩 모드들은 전형적으로 대부분의 블록들에 대해 사용된다. 인터-픽처 예측을 위한 인코딩 프로세스는 각각의 블록의 샘플들을 예측하기 위해 적용될 선택된 참조 픽처 및 모션 벡터(MV)를 포함하는 모션 데이터를 선택하는 것으로 이루어진다. 인코더 및 디코더는 부가 정보로서 송신되는 MV 및 모드 결정 데이터를 사용하여 모션 보상(MC)을 적용함으로써 동일한 인터-픽처 예측 신호들을 생성한다.
원본 블록과 그 예측 사이의 차이인 인트라-픽처 또는 인터-픽처 예측의 잔차 신호는 선형 공간 변환에 의해 변환된다. 이어서, 변환 계수들은 예측 정보와 함께 스케일링, 양자화, 엔트로피 코딩되고 송신된다.
인코더는 디코더 처리 루프(도 1의 회색 음영 박스 참조)를 이중화하여, 이들 양자가 후속 데이터에 대해 동일한 예측들을 생성할 것이다. 따라서, 양자화된 변환 계수들은 역 스케일링에 의해 구성된 다음, 잔차 신호의 디코딩된 근사치를 이중화하기 위해 역 변환된다. 다음에, 잔차가 예측에 가산되고, 그 후, 그 가산의 결과가 하나 또는 두 개의 루프 필터에 공급되어 블록별 처리 및 양자화에 의해 유도된 아티팩트들을 평활화할 수 있다. 최종 픽처 표현(디코더의 출력의 이중본임)은 후속 픽처들의 예측에 사용될 디코딩된 픽처 버퍼에 저장된다. 일반적으로, 픽처의 인코딩 또는 디코딩 처리 순서는 종종 소스로부터 도달하는 순서와 다르고; 디코더에 대한 디코딩 순서(즉, 비트스트림 순서)와 출력 순서(즉, 디스플레이 순서) 사이의 구별이 필요하다.
HEVC에 의해 인코딩될 비디오 자료는 일반적으로 (인코딩 이전의 디인터레이싱으로부터 초래되거나 해당 포맷에서 유래되는 소스 비디오에 기인하는 것 중 어느 쪽이든의 이유로) 프로그레시브 스캔 이미지로서 입력될 것으로 예상된다. HEVC 설계에는 인터레이스 스캐닝의 사용을 지원하기 위한 명시적인 코딩 특징들이 존재하지 않는데, 이는 인터레이스 스캐닝이 더 이상 디스플레이들을 위해 사용되지 않고, 배포에 실질적으로 덜 일반화되어 가고 있기 때문이다. 그러나, 인터레이스 스캐닝된 비디오가 인터레이스 비디오의 각각의 필드(즉, 각각의 비디오 프레임의 짝수 또는 홀수 번호 라인들)를 별개의 픽처로서 코딩하여 전송되었다는 것, 또는 그것이 각각의 인터레이스된 프레임을 HEVC 코딩된 픽처로서 코딩하여 전송되었다는 것을 인코더가 나타낼 수 있게 하는 메타데이터 신택스가 HEVC에서 제공되어 있다. 이는 디코더들에게 이를 위한 특별한 디코딩 프로세스를 지원할 필요성에 대한 부담을 주지 않고 인터레이스 비디오를 코딩하는 효율적인 방법을 제공한다.
1.1. H.264/AVC에서의 파티션 트리 구조의 예들
이전 표준들에서의 코딩 층의 코어는 루마 샘플들의 16Х16 블록 및, 4:2:0 컬러 샘플링의 일반적인 경우에, 크로마 샘플들의 2개의 대응하는 8Х8 블록들을 포함하는 매크로블록이었다.
인트라-코딩된 블록은 픽셀들 간의 공간 상관을 활용하기 위해 공간 예측을 사용한다. 2개의 파티션, 즉 16x16 및 4x4가 정의된다.
인터-코딩된 블록은 픽처들 간의 모션을 추정함으로써 공간 예측 대신에 시간 예측을 사용한다. 모션은 16x16 매크로블록 또는 그의 서브-매크로블록 파티션들- 도 2에 도시된 바와 같이, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4 - 중 임의의 것 중 어느 쪽이든에 대해 독립적으로 추정될 수 있다(참조문헌 [2]). 서브-매크로블록 파티션당 단 하나의 모션 벡터(MV) 만이 허용된다.
1.2 HEVC에서의 파티션 트리 구조들의 예들
HEVC에서, 코딩 트리 유닛(CTU)은 다양한 로컬 특성들에 적응하기 위해 코딩 트리로서 표시된 쿼드트리 구조를 사용함으로써 코딩 유닛(CU)들로 분할된다. 인터-픽처(시간) 또는 인트라-픽처(공간) 예측 중 어느쪽을 사용하여 픽처 영역을 코딩할지의 결정은 CU 레벨에서 이루어진다. 각각의 CU는 PU 분할 타입에 따라 1개, 2개 또는 4개의 예측 유닛(PU)으로 추가로 분할될 수 있다. 하나의 PU 내부에서, 동일한 예측 프로세스가 적용되고 관련 정보가 PU 기준으로 디코더에 송신된다. PU 분할 타입에 기초하여 예측 프로세스를 적용함으로써 잔차 블록을 획득한 이후에, CU는 CU에 대한 코딩 트리와 유사한 다른 쿼드트리 구조에 따라 변환 유닛(TU)들로 파티셔닝될 수 있다. HEVC 구조의 주요 특징 중 하나는 그것이 CU, PU, 및 TU를 포함하는 다수의 파티션 개념들을 갖는다는 것이다.
HEVC를 사용하는 하이브리드 비디오 코딩에 수반되는 특정 특징들은 다음을 포함한다:
(1) 코딩 트리 유닛(CTU)들 및 코딩 트리 블록(CTB) 구조: HEVC에서의 유사한 구조는 인코더에 의해 선택된 크기를 가지며 전통적인 매크로블록보다 클 수 있는 코딩 트리 유닛(CTU)이다. CTU는 루마 CTB 및 대응하는 크로마 CTB들 및 신택스 엘리먼트들로 구성된다. 루마 CTB의 크기 LХL은 L= 16, 32 또는 64 샘플로서 선택될 수 있고, 더 큰 크기들은 전형적으로 더 양호한 압축을 가능하게 한다. HEVC는 이어서 트리 구조 및 쿼드트리형 시그널링을 사용하여 CTB들의 더 작은 블록들로의 파티셔닝을 지원한다.
(2) 코딩 유닛(CU)들 및 코딩 블록(CB)들: CTU의 쿼드트리 신택스는 그 루마 및 크로마 CB들의 크기 및 위치들을 지정한다. 쿼드트리의 루트는 CTU와 연관된다. 따라서, 루마 CTB의 크기는 루마 CB에 대해 가장 큰 지원되는 크기이다. 루마 및 크로마 CB들로의 CTU의 분할은 공동으로 시그널링된다. 하나의 루마 CB 및 통상적으로 2개의 크로마 CB들은 연관된 신택스와 함께 코딩 유닛(CU)을 형성한다. CTB는 단 하나의 CU만을 포함할 수 있거나 다수의 CU들을 형성하도록 분할될 수 있고, 각각의 CU는 예측 유닛(PU)들 및 변환 유닛(TU)들의 트리로의 연관된 파티셔닝을 갖는다.
(3) 예측 유닛들 및 예측 블록(PB)들: 인터 픽처 또는 인트라 픽처 예측 중 어느 쪽을 사용하여 픽처 영역을 코딩할지의 결정은 CU 레벨에서 이루어진다. PU 파티셔닝 구조는 CU 레벨에서 그의 루트를 갖는다. 기본 예측 타입 결정에 따라, 루마 및 크로마 CB들은 이어서 크기가 추가로 분할되고 루마 및 크로마 예측 블록(PB)들로부터 예측될 수 있다. HEVC는 64Х64에서 4Х4 샘플까지의 가변 PB 크기들을 지원한다. 도 3은 MХM CU에 대한 허용된 PB들의 예들을 도시한다.
(4) 변환 유닛(Tu)들 및 변환 블록: 예측 잔차는 블록 변환을 사용하여 코딩된다. TU 트리 구조는 CU 레벨에서 그의 루트를 갖는다. 루마 CB 잔차는 루마 변환 블록(TB)과 동일하거나 더 작은 루마 TB들로 추가로 분할될 수 있다. 이는 크로마 TB에도 적용된다. 이산 코사인 변환(DCT)의 것들과 유사한 정수 기저 함수들은 정사각형 TB 크기들 4Х4, 8Х8, 16Х16 및 32Х32에 대해 정의된다. 루마 인트라 픽처 예측 잔차들의 4Х4 변환의 경우, 이산 사인 변환(DST)의 형태로부터 도출된 정수 변환이 대안적으로 지정된다.
1.2.1. TU들 및 TB들로의 트리-구조 파티셔닝의 예들
잔차 코딩의 경우, CB는 변환 블록(TB)들로 재귀적으로 파티셔닝될 수 있다. 파티셔닝은 잔차 쿼드트리에 의해 시그널링된다. 정사각형 CB 및 TB 파티셔닝만이 지정되며, 여기서 블록은 도 4a 및 도 4b에 도시된 바와 같이 사분면들로 재귀적으로 분할될 수 있다. 크기 MХM의 주어진 루마 CB에 대해, 플래그는 그것이 크기 M/2ХM/2의 4개의 블록들로 분할되는지 여부를 시그널링한다. 시퀀스 파라미터 세트(SPS)에 표시되는 잔차 쿼드트리의 최대 깊이에 의해 시그널링되는 바와 같이, 추가의 분할이 가능하면, 각각의 사분면에는 이것이 4개의 사분면으로 분할되는지 여부를 표시하는 플래그가 할당된다. 잔차 쿼드트리로부터 얻어지는 리프 노드 블록들은 변환 코딩에 의해 추가로 처리되는 변환 블록들이다. 인코더는 사용할 최대 및 최소 루마 TB 크기를 나타낸다. CB 크기가 최대 TB 크기보다 클 때 분할은 암시적이다. 분할이 표시된 최소값보다 작은 루마 TB 크기를 초래할 때는 분할은 암시적이지 않다. 크로마 TB 크기는, 루마 TB 크기가 4Х4인 경우를 제외하고, 각 차원에서 루마 TB 크기의 절반이며, 이 경우 단일 4Х4 크로마 TB가 4개의 4Х4 루마 TB들에 의해 커버되는 영역에 사용된다. 인트라-픽처-예측된 CU들의 경우, (CB 내 또는 외부의) 가장 가까운-이웃하는 TB들의 디코딩된 샘플들이 인트라 픽처 예측을 위한 기준 데이터로서 사용된다.
이전의 표준들과 대조적으로, HEVC 설계는 TB가 쿼드트리 구조 TB 파티셔닝의 잠재적 코딩 효율 이점들을 최대화하기 위해 인터-픽처 예측 CU들에 대해 다수의 PB들에 걸쳐질 수 있게 한다.
1.2.2. 부모 및 자식 노드들
CTB는 그 노드들이 코딩 유닛들인 쿼드-트리 구조에 따라 분할된다. 쿼드-트리 구조 내의 복수의 노드들은 리프 노드들 및 비-리프 노드들을 포함한다. 리프 노드들은 트리 구조에서 자식 노드들을 갖지 않는다(즉, 리프 노드들은 추가로 분할되지 않는다). 비-리프 노드들은 트리 구조의 루트 노드를 포함한다. 루트 노드는 비디오 데이터(예를 들어, CTB)의 초기 비디오 블록에 대응한다. 복수의 노드들의 각각의 비루트 노드 각각에 대해, 각각의 비루트 노드는 각각의 비루트 노드의 트리 구조 내의 부모 노드에 대응하는 비디오 블록의 서브 블록인 비디오 블록에 대응한다. 복수의 비-리프 노드 중 각각의 비-리프 노드 각각은 트리 구조에서 하나 이상의 자식 노드를 갖는다.
1.3. JEM에서 더 큰 CTU들을 갖는 쿼드트리 + 이진 트리 블록 구조들의 예들
일부 실시예들에서, 장래의 비디오 코딩 기술들은 JEM(Joint Exploration Model)로서 알려진 참조 소프트웨어를 사용하여 탐구된다. 이진 트리 구조에 더하여, JEM은 QTBT(quadtree plus binary tree) 및 삼진 트리(TT) 구조들을 설명한다.
1.3.1. QTBT 블록 파티셔닝 구조의 예들
HEVC와 대조적으로, QTBT 구조는 다수의 파티션 타입들의 개념들을 제거하며, 즉, 이는 CU, PU 및 TU 개념들의 분리를 제거하고, CU 파티션 형상들에 대한 더 많은 유연성을 지원한다. QTBT 블록 구조에서, CU는 정사각형 또는 직사각형 형상 어느 쪽이든 가질 수 있다. 도 5a에 도시된 바와 같이, 코딩 트리 유닛(CTU)이 쿼드트리 구조에 의해 먼저 파티셔닝된다. 쿼드트리 리프 노드들은 이진 트리 구조에 의해 추가로 파티셔닝된다. 이진 트리 분할에는 대칭 수평 분할 및 대칭 수직 분할의 2가지 분할 타입이 있다. 이진 트리 리프 노드들은 코딩 유닛(CU)들이라고 불리며, 이러한 세그먼트화는 어떠한 추가적인 파티셔닝도 없이 예측 및 변환 처리를 위해 사용된다. 이는 CU, PU 및 TU가 QTBT 코딩 블록 구조에서 동일한 블록 크기를 갖는다는 것을 의미한다. JEM에서, CU는 때때로 상이한 컬러 성분들의 코딩 블록(CB)들로 구성되고, 예를 들어, 하나의 CU는 4:2:0 크로마 포맷의 P 및 B 슬라이스들의 경우에 하나의 루마 CB 및 2개의 크로마 CB를 포함하고, 때때로 단일 성분의 CB로 구성되며, 예를 들어, 하나의 CU는 I 슬라이스들의 경우에 단 하나의 루마 CB 또는 단지 2개의 크로마 CB를 포함한다.
QTBT 파티셔닝 방식에 대해 다음 파라미터들이 정의된다:
-- CTU 크기: 쿼드트리의 루트 노드 크기, HEVC에서와 동일한 개념
-- MinQTSize: 최소 허용 쿼드트리 리프 노드 크기
-- MaxBTSize: 최대 허용 이진 트리 루트 노드 크기
-- MaxBTDepth: 최대 허용 이진 트리 깊이
-- MinBTSize: 최소 허용 이진 트리 리프 노드 크기
QTBT 파티셔닝 구조의 일 예에서, CTU 크기는 128Х128 루마 샘플들과 2개의 대응하는 64Х64 블록의 크로마 샘플들로서 설정되고, MinQTSize은 16Х16으로 설정되고, MaxBTSize는 64Х64로 설정되고, MinBTSize (폭과 높이 둘 다에 대해)는 4Х4로 설정되고, MaxBTDepth는 4로 설정된다. 쿼드트리 파티셔닝이 먼저 CTU에 적용되어 쿼드트리 리프 노드들을 생성한다. 쿼드트리 리프 노드들은 16Х16(즉, MinQTSize) 내지 128Х128(즉, CTU 크기)의 크기를 가질 수 있다. 쿼드트리 리프 노드가 128Х128이면, 크기는 MaxBTSize(즉, 64Х64)를 초과하기 때문에 이진 트리에 의해 추가로 분할되지 않을 것이다. 그렇지 않으면, 쿼드트리 리프 노드는 이진 트리에 의해 추가로 파티셔닝될 수 있다. 따라서, 쿼드트리 리프 노드는 또한 이진 트리에 대한 루트 노드이고 그것은 0으로서 이진 트리 깊이를 갖는다. 이진 트리 깊이가 MaxBTDepth(즉, 4)에 도달할 때, 더 이상의 분할이 고려되지 않는다. 이진 트리 노드가 MinBTSize(즉, 4)와 동일한 폭을 가질 때, 더 이상 수평 분할이 고려되지 않는다. 유사하게, 이진 트리 노드가 MinBTSize와 동일한 높이를 갖는 경우, 더 이상 수직 분할이 고려되지 않는다. 이진 트리의 리프 노드들은 임의의 추가적인 파티셔닝 없이 예측 및 변환 처리에 의해 추가로 처리된다. JEM에서, 최대 CTU 크기는 256Х256 루마 샘플들이다.
도 5a는, QTBT를 사용한 블록 파티셔닝의 예를 도시하고, 도 5b는 대응하는 트리 표현을 도시한다. 실선들은 쿼드트리 분할을 나타내고 점선들은 이진 트리 분할을 나타낸다. 이진 트리의 각각의 분할(즉, 비-리프) 노드에서, 어느 분할 타입(즉, 수평 또는 수직)이 사용되는지를 나타내기 위해 하나의 플래그가 시그널링되며, 여기서 0은 수평 분할을 나타내고 1은 수직 분할을 나타낸다. 쿼드트리 분할의 경우, 분할 타입을 나타낼 필요가 없는데, 그 이유는 쿼드트리 분할이 항상 블록을 수평 및 수직 양자 모두로 분할하여 동일한 크기를 갖는 4개의 서브 블록을 생성하기 때문이다.
또한, QTBT 방식은 루마 및 크로마가 별개의 QTBT 구조를 갖는 능력을 지원한다. 현재, P 및 B 슬라이스들에 대해, 하나의 CTU 내의 루마 및 크로마 CTB들은 동일한 QTBT 구조를 공유한다. 그러나, I 슬라이스들에 대해, 루마 CTB는 QTBT 구조에 의해 CU들로 파티셔닝되고, 크로마 CTB들은 다른 QTBT 구조에 의해 크로마 CU들로 파티셔닝된다. 이것은 I 슬라이스 내의 CU가 루마 성분의 코딩 블록 또는 2개의 크로마 성분의 코딩 블록들로 구성되고, P 또는 B 슬라이스 내의 CU가 3개의 컬러 성분 모두의 코딩 블록들로 구성된다는 것을 의미한다.
HEVC에서, 작은 블록들에 대한 인터 예측이 제한되어 모션 보상의 메모리 액세스를 감소시키며, 그래서, 양방향 예측은 4Х8 및 8Х4 블록들에 대해 지원되지 않고, 인터 예측은 4Х4 블록들에 대해 지원되지 않는다. JEM의 QTBT에서, 이러한 제한들은 제거된다.
1.4. 다용도 비디오 코딩(VVC)을 위한 삼진-트리(TT)
도 6a는 쿼드-트리(QT) 파티셔닝의 예를 도시하고, 도 6b 및 도 6c는 각각 수직 및 수평 이진-트리(BT) 파티셔닝의 예를 도시한다. 일부 실시예들에서, 그리고 쿼드-트리 및 이진-트리에 더하여, 삼진 트리(TT) 파티션들, 예를 들어, (도 6d 및 도 6e에 도시된 바와 같은) 수평 및 수직 중심측 삼진-트리가 지원된다.
일부 구현들에서, 트리들의 2개의 레벨들이 지원된다: 영역 트리(쿼드-트리) 및 예측 트리(이진-트리 또는 삼진-트리). CTU는 먼저 영역 트리(RT)에 의해 파티셔닝된다. RT 리프는 예측 트리(PT)로 추가로 분할될 수 있다. PT 리프는 또한 최대 PT 깊이에 도달할 때까지 PT로 추가로 분할될 수 있다. PT 리프는 기본 코딩 유닛이다. 이는 편의상 여전히 CU라고 불린다. CU는 추가로 분할될 수 없다. 예측 및 변환은 둘 다 JEM과 동일한 방식으로 CU에 적용된다. 전체 파티션 구조는 "다중 타입 트리"로 명명된다.
1.5. 대체 비디오 코딩 기술들에서의 파티셔닝 구조들의 예들
일부 실시예들에서, QTBT의 일반화인 MTT(Multi-Tree Type) 라고 불리는 트리 구조가 지원된다. QTBT에서, 도 7에 도시된 바와 같이, 코딩 트리 유닛(CTU)은 먼저 쿼드-트리 구조에 의해 파티셔닝된다. 쿼드-트리 리프 노드들은 이진-트리 구조에 의해 추가로 파티셔닝된다.
MTT의 구조는 2가지 타입의 트리 노드, 즉, 영역 트리(RT) 및 예측 트리(PT)로 구성되어, 도 8에 도시된 바와 같이, 9개의 타입의 파티션들을 지원한다. 영역 트리는 CTU를 4x4 크기 영역 트리 리프 노드로 정사각형 블록들로 재귀적으로 분할할 수 있다. 영역 트리 내의 각각의 노드에서, 예측 트리는 3개의 트리 타입 중 하나로부터 형성될 수 있다: 이진 트리, 삼진 트리 및 비대칭 이진 트리. PT 분할에서, 예측 트리의 분기들에 쿼드트리 파티션을 갖는 것이 금지된다. JEM에서와 같이, 루마 트리 및 크로마 트리는 I 슬라이스들에서 분리된다. RT 및 PT에 대한 시그널링 방법이 도 9a에 예시된다.
2 HEVC/H.265에서의 인터 예측의 예들
비디오 코딩 표준들은 수년 동안 상당히 개선되었으며, 이제 부분적으로는 높은 코딩 효율을 제공하고 더 높은 해상도들을 지원한다. HEVC 및 H.265와 같은 최근의 표준들은 시간 예측 + 변환 코딩이 이용되는 하이브리드 비디오 코딩 구조에 기초한다.
2.1 예측 모드들의 예들
각각의 인터-예측된 예측 유닛(PU)은 1개 또는 2개의 참조 픽처 리스트에 대한 모션 파라미터를 갖는다. 일부 실시예들에서, 모션 파라미터들은 모션 벡터 및 참조 픽처 인덱스를 포함한다. 다른 실시예들에서, 2개의 참조 픽처 리스트 중 하나의 사용은 또한 inter_pred_idc를 사용하여 시그널링될 수 있다. 또 다른 실시예들에서, 모션 벡터들은 예측자들에 대한 델타들로서 명시적으로 코딩될 수 있다.
CU가 스킵 모드로 코딩될 때, 하나의 PU가 CU와 연관되고, 유의한 잔차 계수들이 없고, 코딩된 모션 벡터 델타 또는 참조 픽처 인덱스가 없다. 병합 모드가 지정되고, 이에 의해, 공간 및 시간 후보들을 포함하는 이웃하는 PU들로부터 현재 PU에 대한 모션 파라미터들이 획득된다. 병합 모드는 스킵 모드에 대해서뿐만 아니라 임의의 인터-예측된 PU에 적용될 수 있다. 병합 모드에 대한 대안은 모션 파라미터들의 명시적 송신이며, 여기서 모션 벡터, 각각의 참조 픽처 리스트에 대한 대응하는 참조 픽처 인덱스 및 참조 픽처 리스트 사용은 각각의 PU마다 명시적으로 시그널링된다.
시그널링이 2개의 참조 픽처 리스트 중 하나가 사용될 것임을 나타낼 때, PU는 샘플들의 하나의 블록으로부터 생성된다. 이것은 "단방향 예측"이라고 지칭된다. P-슬라이스 및 B-슬라이스 둘 다에 대해 단방향 예측이 사용가능하다.
시그널링이 양자 모두의 참조 픽처 리스트가 사용될 것을 나타내는 경우, PU는 샘플들의 2개의 블록으로부터 생성된다. 이것은 "양방향 예측"이라고 지칭된다. 양방향 예측은 B-슬라이스들에 대해서만 사용가능하다.
2.1.1 병합 모드를 위한 후보들을 구성하는 실시예들
PU가 병합 모드를 사용하여 예측될 때, 병합 후보 리스트 내의 엔트리를 가리키는 인덱스가 비트스트림으로부터 파싱되고 모션 정보를 검색하는 데 사용된다. 이 리스트의 구성은 다음 단계들의 시퀀스에 따라 요약될 수 있다.
단계 1: 초기 후보 도출
단계 1.1: 공간 후보 도출
단계 1.2: 공간 후보에 대한 중복 검사
단계 1.3: 시간 후보 도출
단계 2: 추가 후보 삽입
단계 2.1: 양방향 예측 후보들의 생성
단계 2.2: 제로 모션 후보들의 삽입
도 9b는 위에 요약된 단계들의 시퀀스에 기초하여 병합 후보 리스트를 구성하는 예를 도시한다. 공간 병합 후보 도출의 경우, 5개의 상이한 위치에 위치하는 후보들 중에서 최대 4개의 병합 후보가 선택된다. 시간 병합 후보 도출의 경우, 2개의 후보 중에서 최대 하나의 병합 후보가 선택된다. 각각의 PU에 대한 일정한 수의 후보들이 디코더에서 가정되기 때문에, 후보들의 수가 슬라이스 헤더에서 시그널링되는 병합 후보의 최대 수(MaxNumMergeCand)에 도달하지 않을 때 추가 후보들이 생성된다. 후보들의 수가 일정하기 때문에, 최상의 병합 후보의 인덱스는 절단 단항 이진화(TU)를 사용하여 인코딩된다. CU의 크기가 8과 동일한 경우, 현재 CU의 모든 PU들은 2NХ2N 예측 유닛의 병합 후보 리스트와 동일한 단일 병합 후보 리스트를 공유한다.
2.1.2 공간 병합 후보들의 구성
공간 병합 후보들의 도출에서, 도 10에 도시된 위치들에 배치된 후보들 중에서 최대 4개의 병합 후보가 선택된다. 도출 순서는 A1, B1, B0, A0 및 B2이다. 위치 B2는 위치 A1, B1, B0, A0의 임의의 PU가 사용가능하지 않거나(예를 들어, 다른 슬라이스 또는 타일에 속하기 때문에) 또는 인트라 코딩될 때에만 고려된다. 위치 A1에서의 후보가 추가된 이후에, 나머지 후보들의 추가는 동일한 모션 정보를 갖는 후보들이 리스트로부터 배제되어 코딩 효율이 향상되도록 보장하는 중복 검사를 받는다.
계산 복잡성을 감소시키기 위해, 모든 가능한 후보 쌍들이 언급된 중복 검사에서 고려되지는 않는다. 대신에, 도 11에서 화살표로 연결된 쌍들만이 고려되고, 중복 검사를 위해 사용되는 대응하는 후보가 동일한 모션 정보를 갖지 않는 경우에만 후보가 리스트에 추가된다. 이중 모션 정보의 다른 소스는 2Nx2N과 상이한 파티션들과 연관된 "제2 PU"이다. 예로서, 도 12a 및 도 12b는 각각 NХ2N 및 2NХN의 경우에 대한 제2 PU를 도시한다. 현재 PU가 NХ2N으로 파티셔닝되는 경우, 위치 A1에서의 후보는 리스트 구성을 위해 고려되지 않는다. 일부 실시예들에서, 이 후보를 추가하는 것은 동일한 모션 정보를 갖는 2개의 예측 유닛으로 이어질 수 있고, 이는 코딩 유닛에서 단지 하나의 PU를 가지는 경우 중복된다. 유사하게, 현재 PU가 2NХN으로 파티셔닝될 때, 위치 B1은 고려되지 않는다.
2.1.3 시간 병합 후보들의 구성
이 단계에서, 하나의 후보만이 리스트에 추가된다. 상세하게는, 이 시간 병합 후보의 도출에서, 주어진 참조 픽처 리스트 내의 현재 픽처와 가장 작은 POC 차이를 갖는 픽처에 속하는 병치된 PU에 기초하여 스케일링된 모션 벡터가 도출된다. 병치된 PU의 도출에 사용될 참조 픽처 리스트는 슬라이스 헤더에서 명시적으로 시그널링된다.
도 13은 POC 거리 tb 및 td를 사용하여 병치된 PU의 모션 벡터로부터 스케일링되는 시간 병합 후보에 대한 스케일링된 모션 벡터(점선)의 도출의 예를 도시하는 것이며, 여기서 tb는 현재 픽처의 참조 픽처와 현재 픽처 사이의 POC 차이인 것으로 정의되고, td는 병치된 픽처의 참조 픽처와 병치된 픽처 사이의 POC 차이인 것으로 정의된다. 시간 병합 후보의 참조 픽처 인덱스는 제로와 동일하게 설정된다. B-슬라이스의 경우, 2개의 모션 벡터- 하나는 참조 픽처 리스트 0에 대한 것이고 다른 하나는 참조 픽처 리스트 1에 대한 것임 -가 획득되고 조합되어 양방향 예측 병합 후보를 구성한다.
참조 프레임에 속하는 병치된 PU(Y)에서, 시간 후보에 대한 위치는 도 14에 도시된 바와 같이 후보들 C0과 C1 사이에서 선택된다. 위치 C0에서의 PU가 사용가능하지 않거나, 인트라 코딩되거나, 또는 현재 CTU의 외부에 있으면, 위치 C1가 사용된다. 그렇지 않으면, 위치 C0가 시간 병합 후보의 도출에서 사용된다.
2.1.4 추가적인 타입들의 병합 후보들의 구성
공간-시간 병합 후보들 이외에, 2개의 추가적인 타입의 병합 후보가 있다: 조합된 양방향 예측 병합 후보 및 제로 병합 후보. 조합된 양방향 예측 병합 후보들은 공간-시간 병합 후보들을 이용함으로써 생성된다. 조합된 양방향 예측 병합 후보는 B-슬라이스에 대해서만 사용된다. 조합된 양방향 예측 후보들은 초기 후보의 제1 참조 픽처 리스트 모션 파라미터들을 다른 후보의 제2 참조 픽처 리스트 모션 파라미터들과 조합함으로써 생성된다. 이들 2개의 튜플이 상이한 모션 가설을 제공하는 경우, 이들은 새로운 양방향 예측 후보를 형성할 것이다.
도 15는 이 프로세스의 예를 도시하며, 여기서, mvL0 및 refIdxL0 또는 mvL1 및 refIdxL1을 갖는, 원본 리스트(1510, 좌측) 내의 2개의 후보가 최종 리스트(1520, 우측)에 추가된 조합된 양방향 예측 병합 후보를 생성하는 데 사용된다.
병합 후보들 리스트 내의 나머지 엔트리들을 채우기 위해 제로 모션 후보들이 삽입되며, 따라서 MaxNumMergeCand 용량에 도달한다. 이러한 후보들은 제로 공간 변위 및 제로로부터 시작하고 새로운 제로 모션 후보가 리스트에 추가될 때마다 증가하는 참조 픽처 인덱스를 갖는다. 이러한 후보들에 의해 사용되는 참조 프레임들의 수는 단방향 및 양방향 예측을 위해 각각 1개 및 2개이다. 일부 실시예들에서, 이러한 후보들에 대해 중복 검사가 수행되지 않는다.
2.1.5 병렬 처리를 위한 모션 추정 영역의 예들
인코딩 프로세스의 속도를 높이기 위해, 모션 추정이 병렬로 수행될 수 있고, 그에 의해 주어진 영역 내의 모든 예측 유닛들에 대한 모션 벡터들이 동시에 도출된다. 공간적 이웃으로부터의 병합 후보들의 도출은 병렬 처리를 방해할 수 있는데, 그 이유는 하나의 예측 유닛이 그의 연관된 모션 추정이 완료될 때까지 인접한 PU로부터 모션 파라미터들을 도출할 수 없기 때문이다. 코딩 효율과 처리 레이턴시 사이의 트레이드-오프를 완화하기 위해, 모션 추정 영역(MER)이 정의될 수 있다. MER의 크기는 "log2_parallel_merge_level_minus2" 신택스 엘리먼트를 사용하여 픽처 파라미터 세트(PPS)에서 시그널링될 수 있다. MER이 정의될 때, 동일한 영역에 속하는 병합 후보들은 사용 불가능한 것으로 표시되고, 따라서 리스트 구성에서 고려되지 않는다.
픽처 파라미터 세트(PPS) 원시 바이트 시퀀스 페이로드(RBSP) 신택스가 표 1에 나타나있고, 여기서 log2_parallel_merge_level_minus2 + 2는 변수 Log2ParMrgLevel의 값을 지정하며, 이는 병합 모드에 대한 루마 모션 벡터들에 대한 도출 프로세스 및 기존의 비디오 코딩 표준에서 지정된 바와 같은 공간 병합 후보들에 대한 도출 프로세스에서 사용된다. log2_parallel_merge_level_minus2의 값은 0 내지 CtbLog2SizeY - 2(경계값 포함)의 범위에 있을 것이다.
변수 Log2ParMrgLevel은 다음과 같이 도출된다:
Log2ParMrgLevel = log2_parallel_merge_level_minus2 + 2
Log2ParMrgLevel의 값은 병합 후보 리스트들의 병렬 도출의 내장 능력을 나타낸다는 점에 유의한다. 예를 들어, Log2ParMrgLevel이 6과 같을 때, 64x64 블록에 포함된 모든 예측 유닛(PU)들 및 코딩 유닛(CU)들에 대한 병합 후보 리스트들이 병렬로 도출될 수 있다.
Figure pct00001
2.2 AMVP 모드에서의 모션 벡터 예측의 실시예들
모션 벡터 예측은 모션 파라미터의 명시적 송신을 위해 사용되는 이웃 PU와의 모션 벡터의 공간-시간 상관을 이용한다. 이것은 먼저 좌측, 상위의 시간적으로 이웃하는 PU 위치들에서 가용성을 검사하고, 중복 후보들을 제거하고, 제로 벡터를 추가하여 후보 리스트가 일정한 길이가 되게 함으로써 모션 벡터 후보 리스트를 구성한다. 이어서, 인코더는 후보 리스트로부터 최상의 예측자를 선택하고 선택된 후보를 나타내는 대응하는 인덱스를 송신할 수 있다. 병합 인덱스 시그널링과 유사하게, 최상의 모션 벡터 후보의 인덱스는 절단 단항(truncated unary)을 사용하여 인코딩된다.
2.2.1 모션 벡터 예측 후보를 구성하는 예들
도 16a 및 도 16b는 모션 벡터 예측 후보에 대한 도출 프로세스를 요약하며, refidx를 입력으로 하여 각각의 참조 픽처 리스트에 대해 구현될 수 있다.
모션 벡터 예측에서, 2가지 타입의 모션 벡터 후보가 고려된다: 공간 모션 벡터 후보 및 시간 모션 벡터 후보. 공간 모션 벡터 후보 도출의 경우, 2개의 모션 벡터 후보가 결국 도 10에 앞서 도시된 바와 같이 5개의 상이한 위치에 위치하는 각각의 PU의 모션 벡터에 기초하여 도출된다.
시간 모션 벡터 후보 도출에 대해, 2개의 상이한 병치된 위치에 기초하여 도출되는 2개의 후보로부터 하나의 모션 벡터 후보가 선택된다. 공간-시간 후보들의 제1 리스트가 형성된 이후에, 리스트 내의 이중화된 모션 벡터 후보들이 제거된다. 잠재적 후보들의 수가 2보다 큰 경우, 연관된 참조 픽처 리스트 내의 참조 픽처 인덱스가 1보다 큰 모션 벡터 후보들이 리스트로부터 제거된다. 공간-시간 모션 벡터 후보들의 수가 2보다 작으면, 추가적인 제로 모션 벡터 후보들이 리스트에 추가된다.
2.2.2 공간 모션 벡터 후보의 구성
공간 모션 벡터 후보들의 도출에서, 최대 2개의 후보들이 5개의 잠재적 후보들 중에서 고려되며, 이 후보들은 이전에 도 10에 도시된 바와 같은 위치들에 위치된 PU들로부터 도출되며, 그 위치들은 모션 병합의 위치들과 동일하다. 현재 PU의 좌측 측면에 대한 도출 순서는 A0, A1 및 스케일링된 A0, 스케일링된 A1로서 정의된다. 현재 PU의 상위 측면에 대한 도출 순서는 B0, B1, B2, 스케일링된 B0, 스케일링된 B1, 스케일링된 B2로서 정의된다. 따라서, 각각의 측면에 대해, 모션 벡터 후보로서 사용될 수 있는 4개의 경우가 있으며, 2개의 경우는 공간 스케일링을 사용할 필요가 없고, 2개의 경우는 공간 스케일링이 사용된다. 4개의 상이한 경우는 다음과 같이 요약된다:
-- 공간 스케일링 없음
(1) 동일한 참조 픽처 리스트, 및 동일한 참조 픽처 인덱스(동일한 POC)
(2) 상이한 참조 픽처 리스트, 그러나 동일한 참조 픽처(동일한 POC)
-- 공간 스케일링
(3) 동일한 참조 픽처 리스트, 그러나 상이한 참조 픽처(상이한 POC)
(4) 상이한 참조 픽처 리스트, 및 상이한 참조 픽처(상이한 POC)
공간 스케일링이 없는 경우들이 먼저 검사되고, 이어서 공간 스케일링을 허용하는 경우들이 검사된다. 참조 픽처 리스트에 관계없이 이웃 PU의 참조 픽처와 현재 PU의 참조 픽처 사이에 POC가 상이할 때 공간 스케일링이 고려된다. 좌측 후보들의 모든 PU들이 사용가능하지 않거나 인트라 코딩되는 경우, 좌측 및 상위 MV 후보들의 병렬 도출을 돕기 위해 상위 모션 벡터에 대한 스케일링이 허용된다. 그렇지 않으면, 상위 모션 벡터에 대해 공간 스케일링이 허용되지 않는다.
도 17의 예에 도시된 바와 같이, 공간 스케일링의 경우, 이웃 PU의 모션 벡터는 시간 스케일링에 대한 것과 유사한 방식으로 스케일링된다. 한 가지 차이는 현재 PU의 참조 픽처 리스트 및 인덱스가 입력으로서 주어진다는 것이며; 실제 스케일링 프로세스는 시간 스케일링의 것과 동일하다.
2.2.3 시간 모션 벡터 후보들의 구성
참조 픽처 인덱스 도출 이외에, 시간 병합 후보들의 도출을 위한 모든 프로세스들은 (도 14의 예에 도시된 바와 같은) 공간 모션 벡터 후보들의 도출과 동일하다. 일부 실시예들에서, 참조 픽처 인덱스가 디코더에 시그널링된다.
2.2.4 병합/AMVP 정보의 시그널링
AMVP 모드의 경우, 4개의 부분들, 예를 들어, 예측 방향, 참조 인덱스, MVD 및 mv 예측자 후보 인덱스가 비트스트림에서 시그널링될 수 있고, 이들은 표 2-4에 도시된 신택스에 관련하여 설명된다. 병합 모드의 경우, 단지 병합 인덱스만 시그널링하면 될 수 있다.
Figure pct00002
Figure pct00003
Figure pct00004
대응하는 시맨틱스는 다음을 포함한다:
five_minus_max_num_merge_cand은 5로부터 감산된 슬라이스에서 지원되는 병합 MVP 후보들의 최대 수를 지정한다. 병합 MVP 후보들의 최대 수, MaxNumMergeCand는 다음과 같이 도출된다:
MaxNumMergeCand = 5 - five_minus_max_num_merge_cand
MaxNumMergeCand의 값은 1 내지 5의 범위(경계값 포함)에 있을 것이다.
merge_flag[ x0 ][ y0 ]는 현재 예측 유닛에 대한 인터-예측 파라미터들이 이웃하는 인터-예측된 파티션으로부터 추론되는지를 지정한다. 어레이 인덱스들 x0, y0은 픽처의 상단-좌측 루마 샘플에 대한 고려된 예측 블록의 상단-좌측 루마 샘플의 위치(x0, y0)를 지정한다.
merge_flag[ x0 ][ y0 ]가 존재하지 않을 때, 이는 다음과 같이 추론된다:
-- CuPredMode[ x0 ][ y0 ]가 MODE_SKIP와 동일하면, merge_flag[ x0 ][ y0 ]는 1과 동일한 것으로 추론된다.
-- 그렇지 않으면, merge_flag[ x0 ][ y0 ]는 0인 것으로 추론된다.
merge_idx[ x0 ] [ y0 ]는 병합 후보 리스트의 병합 후보 인덱스를 지정하고, 여기서 x0, y0은 픽처의 상단-좌측 루마 샘플에 대한 고려된 예측 블록의 상단-좌측 루마 샘플의 위치(x0, y0)를 지정한다.
3. JEM(Joint Exploration Model)에서의 인터 예측 방법들의 예
일부 실시예들에서, 장래의 비디오 코딩 기술들은 JEM(Joint Exploration Model)로서 알려진 참조 소프트웨어를 사용하여 탐구된다. JEM에서, 아핀 예측, ATMVP(alternative temporal motion vector prediction), STMVP(spatial-temporal motion vector prediction), BIO(bi-directional optical flow), FRUC(Frame-Rate Up Conversion), LAMVR(Locally Adaptive Motion Vector Resolution), OBMC(Overlapped Block Motion Compensation), LIC(Local Illumination Compensation), 및 DMVR(Decoder-side Motion Vector Refinement)과 같은, 몇 가지 코딩 도구들에서 서브 블록 기반 예측이 채택된다.
3.1 서브-CU 기반 모션 벡터 예측의 예들
QTBT(quadtree plus binary tree)를 갖는 JEM에서, 각각의 CU는 각각의 예측 방향에 대해 많아야 하나의 모션 파라미터 세트를 가질 수 있다. 일부 실시예들에서, 큰 CU를 서브-CU들로 분할하고 큰 CU의 모든 서브-CU들에 대한 모션 정보를 도출함으로써 2개의 서브-CU 레벨 모션 벡터 예측 방법들이 인코더에서 고려된다. ATMVP(alternative temporal motion vector prediction) 방법은 각각의 CU가 병치된 참조 픽처에서 현재 CU보다 작은 다수의 블록들로부터 모션 정보의 다수의 세트들을 페치할 수 있게 한다. STMVP(spatial-temporal motion vector prediction) 방법에서, 서브-CU들의 모션 벡터들은 시간 모션 벡터 예측자 및 공간 이웃 모션 벡터를 사용함으로써 재귀적으로 도출된다. 일부 실시예들에서, 서브-CU 모션 예측을 위해 더 정확한 모션 필드를 보존하기 위해, 참조 프레임들에 대한 모션 압축은 디스에이블될 수 있다.
3.1.1 ATMVP(alternative temporal motion vector prediction)의 예들
ATMVP 방법에서, TMVP(temporal motion vector prediction) 방법은 현재의 CU보다 작은 블록들로부터 (모션 벡터들 및 참조 인덱스들을 포함하는) 모션 정보의 다수의 세트들을 페치함으로써 수정된다.
도 18은 CU(1800)에 대한 ATMVP 모션 예측 프로세스의 예를 도시한다. ATMVP 방법은 2개의 단계들에서 CU(1800) 내의 서브-CU들(1801)의 모션 벡터들을 예측한다. 제1 단계는 시간 벡터로 참조 픽처(1850) 내의 대응하는 블록(1851)을 식별하는 것이다. 참조 픽처(1850)는 또한 모션 소스 픽처라고도 지칭된다. 제2 단계는 현재 CU(1800)를 서브-CU들(1801)로 분할하고, 각각의 서브-CU에 대응하는 블록으로부터 각각의 서브-CU의 참조 인덱스들뿐만 아니라 모션 벡터들을 획득하는 것이다.
제1 단계에서, 참조 픽처(1850) 및 대응하는 블록은 현재 CU(1800)의 공간 이웃 블록들의 모션 정보에 의해 결정된다. 이웃 블록들의 반복 스캐닝 프로세스를 피하기 위해, 현재 CU(1800)의 병합 후보 리스트 내의 제1 병합 후보가 사용된다. 제1 사용가능한 모션 벡터 및 그의 관련 참조 인덱스는 시간 벡터 및 모션 소스 픽처에 대한 인덱스가 되도록 설정된다. 이러한 방식으로, 대응하는 블록은 TMVP와 비교하여 더 정확하게 식별될 수 있고, 대응하는 블록(때때로 병치된 블록이라고 불림)은 항상 현재 CU에 대해 하단-우측 또는 중심 위치에 있다.
일 예에서, 제1 병합 후보가 좌측 이웃 블록으로부터 온 것인 경우(즉, 도 19에서 A1), 소스 블록 및 소스 픽처를 식별하기 위해 연관된 MV 및 참조 픽처가 이용된다.
제2 단계에서, 서브-CU(1851)의 대응하는 블록은 현재 CU의 좌표에 시간 벡터를 추가함으로써 모션 소스 픽처(1850) 내의 시간 벡터에 의해 식별된다. 각각의 서브-CU에 대하여, 그 대응하는 블록의 모션 정보(예를 들어, 중심 샘플을 커버하는 최소 모션 그리드)는 서브-CU에 대한 모션 정보를 도출하기 위하여 사용된다. 대응하는 NХN 블록의 모션 정보가 식별된 이후에, 그것은 HEVC의 TMVP와 동일한 방식으로, 현재 서브-CU의 모션 벡터들 및 참조 인덱스들로 변환되고, 모션 스케일링 및 다른 절차들이 적용된다. 예를 들어, 디코더는 저지연 조건(예를 들어, 현재 픽처의 모든 참조 픽처들의 POC들이 현재 픽처의 POC보다 작음)이 충족되는지를 검사하고, 가능하게는 모션 벡터 MVx(예를 들어, 참조 픽처 리스트 X에 대응하는 모션 벡터)를 사용하여 각각의 서브-CU에 대한 모션 벡터 MVy(예를 들어, X는 0 또는 1과 같고 Y는 1-X와 같음)를 예측한다.
3.1.2 STMVP(spatial-temporal motion vector prediction)의 예들
STMVP 방법에서, 서브-CU들의 모션 벡터들은, 래스터 스캔 순서에 따라, 재귀적으로 도출된다. 도 20은 4개의 서브 블록 및 이웃 블록들을 갖는 하나의 CU의 예를 도시한다. 4개의 4Х4 서브-CU들 A(2001), B(2002), C(2003), 및 D(2004)를 포함하는 8Х8 CU(2000)를 고려한다. 현재 프레임 내의 이웃하는 4Х4 블록들은 a(2011), b(2012), c(2013) 및 d(2014)로 표시된다.
서브-CU A에 대한 모션 도출은 그의 2개의 공간 이웃들을 식별함으로써 시작된다. 제1 이웃은 서브-CU A(2001) 위의 NХN 블록이다(블록 c(2013)). 이 블록 c(2013)가 사용가능하지 않거나 인트라 코딩된 경우, 서브-CU A(2001) 위의 다른 NХN 블록들이 검사된다(블록 c(2013)에서 시작하여 좌측으로부터 우측으로). 제2 이웃은 서브-CU A(2001)의 좌측의 블록(블록 b(2012))이다. 블록 b(2012)가 사용가능하지 않거나 인트라 코딩되는 경우, 서브-CU A(2001)의 좌측에 대한 다른 블록들이 (블록 b(2012)에서 시작하여, 상단에서 하단으로) 검사된다. 각각의 리스트에 대해 이웃 블록들로부터 획득된 모션 정보는 주어진 리스트에 대해 제1 참조 프레임으로 스케일링된다. 다음으로, 서브 블록 A(2001)의 시간 모션 벡터 예측자(TMVP)는 HEVC에서 지정된 바와 같은 TMVP 도출의 동일한 절차를 따라 도출된다. 블록 D(2004)에서의 병치된 블록의 모션 정보가 그에 따라 페치되고 스케일링된다. 마지막으로, 모션 정보를 검색하고 스케일링한 이후에, 모든 사용가능한 모션 벡터는 각각의 참조 리스트에 대해 개별적으로 평균화된다. 평균 모션 벡터는 현재 서브-CU의 모션 벡터로서 할당된다.
3.1.3 서브-CU 모션 예측 모드 시그널링의 예들
일부 실시예들에서, 서브-CU 모드들은 추가적인 병합 후보들로서 인에이블되고 모드들을 시그널링하는데 요구되는 추가적인 신택스 엘리먼트가 없다. 각각의 CU의 병합 후보 리스트에 2개의 추가적인 병합 후보가 추가되어 ATMVP 모드 및 STMVP 모드를 표현한다. 다른 실시예들에서, 시퀀스 파라미터 세트가 ATMVP 및 STMVP가 인에이블되는 것을 나타내는 경우, 최대 7개의 병합 후보가 사용될 수 있다. 추가적인 병합 후보들의 인코딩 로직은 HM 내의 병합 후보들에 대한 것과 동일하며, 이는 P 또는 B 슬라이스 내의 각각의 CU에 대해, 2개의 추가적인 병합 후보에 대해 2회의 더 많은 RD 검사가 필요할 수 있음을 의미한다. 일부 실시예들, 예를 들어 JEM에서, 병합 인덱스의 모든 빈들은 CABAC(Context-based Adaptive Binary Arithmetic Coding)에 의해 컨텍스트 코딩된다. 다른 실시예들, 예를 들어, HEVC에서, 제1 빈만이 컨텍스트 코딩되고, 나머지 빈들은 컨텍스트 바이패스 코딩된다.
3.2 적응 모션 벡터 차이 분해능의 예들
일부 실시예들에서, (PU의 모션 벡터와 예측된 모션 벡터 사이의) 모션 벡터 차이(MVD)들은 use_integer_mv_flag가 슬라이스 헤더에서 0과 동일할 때 쿼터 루마 샘플들의 유닛들로 시그널링된다. JEM에서, LAMVR(locally adaptive motion vector resolution)이 도입된다. JEM에서, MVD는 쿼터 루마 샘플, 정수 루마 샘플 또는 4 루마 샘플의 유닛으로 코딩될 수 있다. MVD 분해능은 코딩 유닛(CU) 레벨에서 제어되고, MVD 분해능 플래그들은 적어도 하나의 비-제로 MVD 성분을 갖는 각각의 CU에 대해 조건부로 시그널링된다.
적어도 하나의 비-제로 MVD 성분을 갖는 CU에 대해, 제1 플래그는 CU에서 쿼터 루마 샘플 MV 정밀도가 사용되는지를 나타내기 위해 시그널링된다. 제1 플래그(1과 동일)가 쿼터 루마 샘플 MV 정밀도가 사용되지 않는다는 것을 나타낼 때, 정수 루마 샘플 MV 정밀도 또는 4 루마 샘플 MV 정밀도가 사용되는지를 나타내기 위해 다른 플래그가 시그널링된다.
CU의 제1 MVD 분해능 플래그가 0이거나 CU에 대해 코딩되지 않을 때(CU에서의 모든 MVD들이 0임을 의미함), 쿼터 루마 샘플 MV 분해능이 CU에 대해 사용된다. CU가 정수 루마 샘플 MV 정밀도 또는 4 루마 샘플 MV 정밀도를 사용할 때, CU에 대한 AMVP 후보 리스트 내의 MVP들은 대응하는 정밀도로 라운딩된다.
인코더에서, 어느 MVD 분해능이 CU에 대해 사용되어야 하는지를 결정하기 위해 CU-레벨 RD 검사들이 사용된다. 즉, CU-레벨 RD 검사는 각각의 MVD 분해능에 대해 3회 수행된다. 인코더 속도를 가속화하기 위해, 다음 인코딩 방식들이 JEM에서 적용된다:
-- 정상 쿼터 루마 샘플 MVD 분해능을 갖는 CU의 RD 검사 동안, 현재 CU의 모션 정보(정수 루마 샘플 정확도)가 저장된다. (라운딩 이후의) 저장된 모션 정보는 정수 루마 샘플 및 4 루마 샘플 MVD 분해능을 갖는 동일한 CU에 대한 RD 검사 동안 추가의 작은 범위 모션 벡터 정제를 위한 시작점으로서 사용되어, 시간 소모적인 모션 추정 프로세스가 3회 이중화되지 않도록 한다.
-- 4 루마 샘플 MVD 분해능을 갖는 CU에 대한 RD 검사가 조건부로 호출된다. CU의 경우, RD 비용 정수 루마 샘플 MVD 분해능이 쿼터 루마 샘플 MVD 분해능보다 훨씬 더 클 때, CU에 대한 4 루마 샘플 MVD 분해능의 RD 검사는 스킵된다.
3.2.1 AMVP 후보 리스트 구성의 예들
JEM에서, 절차는 HEVC 설계와 유사하다. 그러나, 현재 블록이 MV들의 더 낮은 정밀도(예를 들어, 정수-정밀도)를 선택할 때, 라운딩 동작들이 적용될 수 있다. 현재 구현에서, 공간 위치들로부터 2개의 후보를 선택한 이후에, 둘 다 사용가능한 경우, 이들 둘은 라운딩되고, 이어서 프루닝된다.
3.3 PMMVD(pattern matched motion vector derivation)의 예들
PMMVD 모드는 FRUC(Frame-Rate Up Conversion) 방법에 기초한 특별한 병합 모드이다. 이 모드에 의하면, 블록의 모션 정보가 시그널링되지 않고 디코더 측에서 도출된다.
FRUC 플래그는 그 병합 플래그가 참일 때 CU에 대해 시그널링될 수 있다. FRUC 플래그가 거짓일 때, 병합 인덱스가 시그널링될 수 있고 정규 병합 모드가 사용된다. FRUC 플래그가 참일 때, 블록에 대한 모션 정보를 도출하기 위해 어느 방법(예를 들어, 양방향 매칭 또는 템플릿 매칭)이 사용되어야 하는지를 나타내기 위해 추가의 FRUC 모드 플래그가 시그널링될 수 있다.
인코더 측에서, CU에 대해 FRUC 병합 모드를 사용하는지에 대한 결정은 정상 병합 후보에 대해 행해진 RD 비용 선택에 기초한다. 예를 들어, 다수의 매칭 모드들(예를 들어, 양방향 매칭 및 템플릿 매칭)은 RD 비용 선택을 사용하여 CU에 대해 검사된다. 최소 비용으로 이어지는 것이 다른 CU 모드들과 추가로 비교된다. FRUC 매칭 모드가 가장 효율적인 모드이면, CU에 대해 FRUC 플래그가 참으로 설정되고 관련된 매칭 모드가 사용된다.
전형적으로, FRUC 병합 모드에서의 모션 도출 프로세스는 2개의 단계들을 가진다: CU-레벨 모션 검색이 먼저 수행되고, 이어서 서브-CU 레벨 모션 정제가 뒤따른다. CU 레벨에서, 양방향 매칭 또는 템플릿 매칭에 기초하여 전체 CU에 대해 초기 모션 벡터가 도출된다. 먼저, MV 후보들의 리스트가 생성되고, 최소 매칭 비용을 초래하는 후보가 추가의 CU 레벨 정제를 위한 시작점으로서 선택된다. 그 후, 시작점 주위의 양방향 매칭 또는 템플릿 매칭에 기초한 로컬 검색이 수행된다. 최소 매칭 비용을 야기하는 MV가 전체 CU에 대한 MV로서 취해진다. 후속하여, 모션 정보는 도출된 CU 모션 벡터들을 시작점들로 하여 서브-CU 레벨에서 추가로 정제된다.
예를 들어, 다음의 도출 프로세스가
Figure pct00005
CU 모션 정보 도출에 대해 수행된다. 제1 스테이지에서, 전체
Figure pct00006
CU에 대한 MV가 도출된다. 제2 스테이지에서, CU는
Figure pct00007
서브-CU들로 추가로 분할된다.
Figure pct00008
의 값은 수학식 (3)에서와 같이 계산되고,
Figure pct00009
는 JEM에서 디폴트로 3으로 설정되는 미리 정의된 분할 깊이이다. 이어서, 각각의 서브-CU에 대한 MV가 도출된다.
Figure pct00010
수학식 (3)
도 21은 FRUC(Frame-Rate Up Conversion) 방법에서 사용된 양방향 매칭의 예를 도시한다. 양방향 매칭이 사용되어 2개의 상이한 참조 픽처(2110, 2111)에서 현재 CU(2100)의 모션 궤적을 따라 2개의 블록 사이의 가장 가까운 매칭을 발견함으로써 현재 CU의 모션 정보를 도출한다. 연속 모션 궤적의 가정 하에, 2개의 참조 블록들을 가리키는 모션 벡터들 MV0(2101) 및 MV1(2102)은 현재 픽처와 2개의 참조 픽처들 사이의 시간 거리들, 예를 들어, TD0(2103) 및 TD1(2104)에 비례한다. 일부 실시예들에서, 현재 픽처(2100)가 시간적으로 2개의 참조 픽처(2110, 2111) 사이에 있고 현재 픽처로부터 2개의 참조 픽처까지의 시간 거리가 동일할 때, 양방향 매칭은 미러 기반 양방향 MV가 된다.
도 22는 FRUC(Frame-Rate Up Conversion) 방법에서 사용된 템플릿 매칭의 예를 도시한다. 템플릿 매칭은 현재 픽처 내의 템플릿(예를 들어, 현재 CU의 상단 및/또는 좌측 이웃 블록들)과 참조 픽처(2210) 내의 블록(예를 들어, 템플릿과 동일한 크기) 사이의 가장 가까운 매칭을 발견함으로써 현재 CU(2200)의 모션 정보를 도출하는데 사용될 수 있다. 전술한 FRUC 병합 모드를 제외하고, 템플릿 매칭은 AMVP 모드에 또한 적용될 수 있다. JEM과 HEVC 양자 모두에서, AMVP는 2개의 후보를 갖는다. 템플릿 매칭 방법을 사용하여, 새로운 후보가 도출될 수 있다. 템플릿 매칭에 의해 새롭게 도출된 후보가 제1 기존의 AMVP 후보와 상이하면, 이는 AMVP 후보 리스트의 바로 시작점에 삽입되고, 그 다음으로, 리스트 크기는 (예를 들어, 제2 기존의 AMVP 후보를 제거함으로써) 2로 설정된다. AMVP 모드에 적용될 때, CU 레벨 검색만이 적용된다.
CU 레벨에서의 MV 후보 세트는 다음을 포함할 수 있다: (1) 현재 CU가 AMVP 모드에 있는 경우 원래의 AMVP 후보들, (2) 모든 병합 후보들, (3)보간된 MV 필드 내의 몇몇 MV들(후술됨), 및 상단 및 좌측 이웃 모션 벡터들.
양방향 매칭을 사용할 때, 병합 후보의 각각의 유효 MV는 양방향 매칭을 가정하여 MV 쌍을 생성하기 위한 입력으로서 사용될 수 있다. 예를 들어, 병합 후보의 하나의 유효 MV는 참조 리스트 A에서 (MVa, refa)이다. 이어서, 그의 쌍을 이룬 양방향 MV의 참조 픽처 refb는, refa 및 refb가 현재 픽처의 시간적으로 상이한 측면들에 있도록, 다른 참조 리스트 B에서 발견된다. 이러한 refb가 참조 리스트 B에서 사용가능하지 않다면, refb는 refa과는 상이한 참조로서 결정되고, 현재 픽처까지의 그 시간 거리는 리스트 B에서의 최소 거리이다. refb가 결정된 이후, MVb는 현재 픽처와 refa, refb 사이의 시간 거리에 기초하여 MVa를 스케일링함으로써 도출된다.
일부 구현들에서, 보간된 MV 필드로부터의 4개의 MV들이 또한 CU 레벨 후보 리스트에 추가될 수 있다. 보다 구체적으로, 현재 CU의 위치(0, 0), (W/2, 0), (0, H/2) 및 (W/2, H/2)에서의 보간된 MV들이 추가된다. FRUC가 AMVP 모드에서 적용될 때, 원래의 AMVP 후보들이 또한 CU 레벨 MV 후보 세트에 추가된다. 일부 구현들에서, CU 레벨에서, AMVP CU들에 대한 15 MV들 및 병합 CU들에 대한 13 MV들이 후보 리스트에 추가될 수 있다.
서브-CU 레벨에서의 MV 후보 세트는 CU-레벨 검색으로부터 결정된 MV, (2) 상단, 좌측, 상단-좌측 및 상단-우측 이웃 MV들, (3) 참조 픽처들로부터의 병치된 MV들의 스케일링된 버전들, (4) 하나 이상의 ATMVP 후보들(예를 들어, 최대 4개), 및 (5) 하나 이상의 STMVP 후보들(예를 들어, 최대 4개)을 포함한다. 참조 픽처들로부터의 스케일링된 MV들은 다음과 같이 도출된다. 양자 모두의 리스트 내의 참조 픽처는 순회된다. 참조 픽처에서의 서브-CU의 병치된 위치에서의 MV들은 시작 CU-레벨 MV의 참조에 대해 스케일링된다. ATMVP 및 STMVP 후보들은 4개의 첫 번째 것들일 수 있다. 서브-CU 레벨에서, 하나 이상의 MV(예를 들어, 최대 17개)가 후보 리스트에 추가된다.
보간된 MV 필드의 생성. 프레임을 코딩하기 전에, 단방향 ME에 기초하여 전체 픽처에 대해 보간된 모션 필드가 생성된다. 이어서, 모션 필드는 나중에 CU 레벨 또는 서브-CU 레벨 MV 후보로서 사용될 수 있다.
일부 실시예들에서, 양자 모두의 참조 리스트 내의 각 참조 픽처의 모션 필드는 4Х4 블록 레벨에서 순회된다. 도 23은 FRUC 방법에서의 단방향 모션 추정(ME)(2300)의 예를 도시한다. 각각의 4Х4 블록에 대해, 모션이 현재 픽처 내의 4Х4 블록을 통과하는 블록과 연관되고, 블록이 어떠한 보간된 모션도 할당받지 않은 경우, 참조 블록의 모션은 시간 거리 TD0 및 TD1에 따라 현재 픽처에 대해 스케일링되고(HEVC에서 TMVP의 MV 스케일링의 방식과 동일한 방식), 스케일링된 모션은 현재 프레임 내의 블록에 할당된다. 스케일링된 MV가 4Х4 블록에 할당되지 않으면, 블록의 모션은 보간된 모션 필드에서 사용 불가능한 것으로 표시된다.
보간 및 매칭 비용. 모션 벡터가 분수 샘플 위치를 가리킬 때, 모션 보상된 보간이 필요하다. 복잡도를 감소시키기 위해, 정규 8-탭 HEVC 보간 대신에 이중 선형 보간이 양방향 매칭 및 템플릿 매칭 둘 다를 위해 사용될 수 있다.
매칭 비용의 계산은 상이한 단계들에서 다소 상이하다. CU 레벨에서 후보 세트로부터 후보를 선택할 때, 매칭 비용은 양방향 매칭 또는 템플릿 매칭의 SAD(absolute sum difference)일 수 있다. 시작 MV가 결정된 이후에, 서브-CU 레벨 검색에서의 양방향 매칭의 매칭 비용 C는 다음과 같이 계산된다:
Figure pct00011
수학식 (4)
여기서, w는 가중 인자이다. 일부 실시예들에서, w는 경험적으로 4로 설정될 수 있다. MV 및 MVs는 각각 현재 MV 및 시작 MV를 나타낸다. SAD는 여전히 서브-CU 레벨 검색에서의 템플릿 매칭의 매칭 비용으로서 사용될 수 있다.
FRUC 모드에서, MV는 루마 샘플들만을 사용하여 도출된다. 도출된 모션은 MC 인터 예측을 위해 루마와 크로마 양자 모두에 사용될 것이다. MV가 결정된 이후에, 최종 MC는 루마에 대한 8-탭 보간 필터 및 크로마에 대한 4-탭 보간 필터를 사용하여 수행된다.
MV 정제는 양방향 매칭 비용 또는 템플릿 매칭 비용의 기준을 갖는 패턴 기반 MV 검색이다. JEM에서, 2개의 검색 패턴- UCBDS(unrestricted center-biased diamond search) 및 CU 레벨 및 서브-CU 레벨 각각에서의 MV 정제를 위한 적응적 교차 검색 -이 지원된다. CU 및 서브-CU 레벨 MV 정제 둘 다에 대해, MV는 쿼터 루마 샘플 MV 정확도에서 직접 검색되고, 이것에 이어서 1/8 루마 샘플 MV 정제가 뒤따른다. CU 및 서브-CU 단계에 대한 MV 정제의 검색 범위는 8 루마 샘플들과 동일하게 설정된다.
양방향 매칭 병합 모드에서, CU의 모션 정보가 2개의 상이한 참조 픽처들에서의 현재 CU의 모션 궤적을 따라 2개의 블록들 사이의 가장 가까운 매칭에 기초하여 도출되기 때문에 양방향 예측이 적용된다. 템플릿 매칭 병합 모드에서, 인코더는 list0으로부터의 단방향 예측, list1로부터의 단방향 예측, 또는 CU에 대한 양방향 예측 중에서 선택할 수 있다. 선택 ca는 다음과 같은 템플릿 매칭 비용에 기초할 수 있다:
만약, costBi <= factor * min (cost0, cost1)이면
양방향 예측 사용;
그렇지 않고, cost0 <= cost1이면
list0으로부터의 단방향 예측 사용;
그 이외의 경우,
list1로부터의 단방향 예측 사용;
여기서, cost0은 list0 템플릿 매칭의 SAD이고, cost1은 list1 템플릿 매칭의 SAD이고, costBi는 양방향 예측 템플릿 매칭의 SAD이다. 예를 들어, 인자의 값이 1.25와 같은 경우, 이는 선택 프로세스가 양방향 예측을 향해 바이어싱된다는 것을 의미한다. 인터 예측 방향 선택은 CU-레벨 템플릿 매칭 프로세스에 적용될 수 있다.
3.4 DMVR(decoder-side motion vector refinement)의 예들
양방향 예측 동작에서, 하나의 블록 영역의 예측에 대해, 각각 list0의 모션 벡터(MV) 및 list1의 MV를 사용하여 형성된 2개의 예측 블록이 조합되어 단일 예측 신호를 형성한다. DMVR(decoder-side motion vector refinement) 방법에서, 양방향 예측의 2개의 모션 벡터는 양방향 템플릿 매칭 프로세스에 의해 추가로 정제된다. 양방향 템플릿 매칭은 추가적인 모션 정보의 송신 없이 정제된 MV를 획득하기 위해 참조 픽처들 내의 재구성 샘플들과 양방향 템플릿 사이의 왜곡 기반 검색을 수행하기 위해 디코더에 적용된다.
DMVR에서, 양방향 템플릿은 도 24에 도시된 바와 같이, list0의 초기 MV0 및 list1의 MV1로부터, 각각, 2개의 예측 블록의 가중된 조합(즉, 평균)으로서 생성된다. 템플릿 매칭 동작은 생성된 템플릿과 참조 픽처에서의 (초기 예측 블록 주위의) 샘플 영역 사이의 비용 측정치들을 계산하는 것으로 구성된다. 2개의 참조 픽처 각각에 대해, 최소 템플릿 비용을 산출하는 MV가 원래의 것을 대체하기 위해 그 리스트의 업데이트된 MV로서 고려된다. JEM에서, 9개의 MV 후보가 각각의 리스트에 대해 검색된다. 9개의 MV 후보는 원래의 MV 및 수평 또는 수직 방향 중 어느 하나 또는 양자 모두에서 원래의 MV에 대한 하나의 루마 샘플 오프셋을 갖는 8개의 주위의 MV를 포함한다. 마지막으로, 2개의 새로운 MV들, 즉, 도 24에 도시된 바와 같은 MV0' 및 MV1' 이 최종 양방향 예측 결과들을 생성하기 위해 사용된다. SAD(sum of absolute differences)가 비용 측정치로서 사용된다.
DMVR은, 추가적인 신택스 엘리먼트들의 송신 없이, 과거의 참조 픽처로부터의 하나의 MV와 장래의 참조 픽처로부터의 다른 MV에 의한 양방향 예측의 병합 모드에 적용된다. JEM에서, LIC, 아핀 모션, FRUC, 또는 서브-CU 병합 후보가 CU에 대해 인에이블될 때, DMVR은 적용되지 않는다.
3.5 로컬 조도 보상
로컬 조도 보상(IC)은 스케일링 인자 a 및 오프셋 b를 사용하는 조도 변화에 대한 선형 모델에 기초한다. 그리고, 이것은 각각의 인터-모드 코딩된 코딩 유닛(CU)에 대해 적응적으로 인에이블되거나 디스에이블된다.
IC가 CU에 적용될 때, 현재 CU의 이웃 샘플들 및 그들의 대응하는 참조 샘플들을 사용하여 파라미터들 ab을 도출하기 위해 최소 제곱 오차 방법이 이용된다. 더 구체적으로, 도 25에 예시된 바와 같이, CU의 서브샘플링된(2:1 서브샘플링)이웃 샘플들 및 참조 픽처 내의 대응하는 샘플들(현재 CU 또는 서브-CU의 모션 정보에 의해 식별됨)이 사용된다. IC 파라미터들은 각각의 예측 방향에 대해 개별적으로 도출되고 적용된다.
CU가 병합 모드로 코딩될 때, 병합 모드에서의 모션 정보 복사와 유사한 방식으로, IC 플래그가 이웃 블록들로부터 복사되고; 그렇지 않으면, LIC가 적용되는지 여부를 나타내기 위해 CU에 대해 IC 플래그가 시그널링된다.
IC가 픽처에 대하여 인에이블될 때, LIC가 CU에 대하여 적용되는지 여부를 결정하기 위하여 추가적인 CU 레벨 RD 검사가 필요하다. IC가 CU에 대하여 인에이블될 때, 정수 펠 모션 검색 및 분수 펠 모션 검색 각각을 위하여, SAD 및 SATD 대신에, MR-SAD(mean-removed sum of absolute diffefference) 및 MR-SATD(mean-removed sum of absolute Hadamard-transformed difference)이 사용된다.
인코딩 복잡도를 감소시키기 위해, 다음 인코딩 방식이 JEM에서 적용된다. 현재 픽처와 그 참조 픽처들 사이에 명백한 조도 변화가 없을 때, IC는 전체 픽처에 대해 디스에이블된다. 이러한 상황을 식별하기 위해, 현재 픽처의 히스토그램들 및 현재 픽처의 모든 참조 픽처가 인코더에서 계산된다. 현재 픽처와 현재 픽처의 모든 참조 픽처 사이의 히스토그램 차이가 주어진 임계값보다 작으면, 현재 픽처에 대해 IC가 디스에이블되고; 그렇지 않으면, 현재 픽처에 대해 IC가 인에이블된다.
3.6 양방향 매칭 정제를 사용한 병합/스킵 모드의 예들
사용가능한 후보들의 수가 19의 최대 후보 크기에 도달할 때까지 중복 검사와 함께 공간 이웃 및 시간 이웃 블록들의 모션 벡터들 및 참조 인덱스들을 후보 리스트에 삽입함으로써 병합 후보 리스트가 먼저 구성된다. 병합/스킵 모드에 대한 병합 후보 리스트는 미리 정의된 삽입 순서에 따라 그리고 도 25에 도시된 번호가 매겨진 블록들에 관련하여 HEVC(조합된 후보들 및 제로 후보들)에서 사용되는 바와 같이 공간 후보들, 시간 후보들, 아핀 후보들, ATMVP(advanced temporal MVP) 후보, STMVP(spatial temporal MVP) 후보 및 추가 후보들을 삽입함으로써 구성된다.
(1) 블록 1-4에 대한 공간 후보들
(2) 블록들 1-4에 대한 외삽된 아핀 후보들
(3) ATMVP
(4) STMVP
(5) 가상 아핀 후보
(6) 공간 후보(블록 5)(사용가능한 후보들의 수가 6보다 작을 때에만 사용됨)
(7) 외삽된 아핀 후보(블록 5)
(8) 시간 후보(HEVC에서와 같이 도출됨)
(9) 외삽된 아핀 후보가 뒤따르는 비인접 공간 후보(블록 6 내지 블록 49)
(10) 조합된 후보들
(11) 제로 후보들
IC 플래그들은 또한 STMVP 및 아핀을 제외한 병합 후보들로부터 상속된다는 점에 유의한다. 또한, 처음 4개의 공간 후보에 대해, 양방향 예측 후보들은 단방향 예측을 갖는 후보들 전에 삽입된다.
4. 이진화 방법 및 병합 인덱스 코딩의 예들
일부 실시예들에서, 몇몇 이진화 방법들이 선택될 수 있다. 하나의 신택스 엘리먼트에 대해, 관련 값은 먼저 분포에 기초하여 빈 스트링으로 이진화되어야 한다. 각각의 빈에 대해, 이는 컨텍스트 또는 바이패스 코딩 방법들로 코딩될 수 있다.
4.1 예시적인 단항 및 절단 단항(TU)이진화 프로세스
각각의 부호없는 정수 값의 심볼 x ≥ 0에 대해, CABAC의 단항 코드 워드는 x "1" 비트 + 종료 "0" 비트로 구성된다. 절단 단항(TU) 코드는 0 ≤ x ≤ S인 x에 대해서만 정의되고, 여기서 x < S에 대해서는 코드가 단항 코드에 의해 주어지는 반면, x = S에 대해서는, x = S의 TU 코드가 x "1" 비트만으로 이루어진 코드워드에 의해 주어지도록 종료 "0" 비트가 무시된다.
Figure pct00012
Figure pct00013
EGk 이진화를 위해, k + 2 · l( x ) + 1의 동일한 코드 길이를 갖는 심볼들의 수가 기하학적으로 증가한다. 이상적인 코드 길이와 심볼 확률 사이의 샤논의 관계를 반전시킴으로써, 예를 들어, EG0이 pdf p(x) = ½ · (x + 1)-2- 여기서, x ≥ 0 -에 대한 최적 코드라는 것을 쉽게 추론할 수 있다. 이것은 적절히 선택된 파라미터 k에 대해, EGk 코드가 전형적으로 관찰되는 pdf의 테일들에 대한 이상적인 프리픽스-프리 코드의 상당히 양호한 1차 근사치를 나타낸다는 것을 암시한다.
Figure pct00014
4.3 예시적인 절단 라이스(TR)이진화 프로세스
이 프로세스에 대한 입력은 TR 이진화, cMax, 및 cRiceParam에 대한 요청이다.
이 프로세스의 출력은 각각의 값 symbolVal을 대응하는 빈 스트링과 연관시키는 TR 이진화이다.
TR 빈 스트링은 프리픽스 빈 스트링 및 서픽스 빈 스트링- 존재할 때 -의 연결이다.
프리픽스 빈 스트링의 도출을 위해, 다음이 적용된다:
-- symbolVal의 프리픽스 값 prefixVal은 다음과 같이 도출된다:
prefixVal = symbolVal >> cRiceParam
-- TR 빈 스트링의 프리픽스는 다음과 같이 지정된다.
prefixVal이 cMax >> cRiceParam보다 작은 경우, 프리픽스 빈 스트링은 binIdx에 의해 인덱싱된 길이 prefixVal + 1의 비트 스트링이다. prefixVal보다 작은 binIdx에 대한 빈들은 1과 같다. prefixVal과 동일한 binIdx를 갖는 빈은 0과 같다.
cMax가 symbolVal보다 크고 cRiceParam이 0보다 클 때, TR 빈 스트링의 서픽스가 존재하며, 이는 다음과 같이 도출된다:
-- 서픽스 값 suffixVal은 다음과 같이 도출된다:
suffixVal = symbolVal - ( ( prefixVal ) << cRiceParam )
-- TR 빈 스트링의 서픽스는 ( 1 << cRiceParam ) - 1과 동일한 cMax 값을 갖는 suffixVal에 대한 고정 길이(FL)이진화 프로세스를 호출함으로써 지정된다.
입력 파라미터 cRiceParam = 0에 대해, TR 이진화는 정확히 절단 단항 이진화이며, 디코딩되는 신택스 엘리먼트의 가능한 가장 큰 값과 동일한 cMax 값으로 항상 호출된다는 점에 유의한다.
4.4 예시적인 고정 길이(FL)이진화 프로세스
이 프로세스에 대한 입력들은 FL 이진화 및 cMax에 대한 요청이다.
이 프로세스의 출력은 각각의 값 symbolVal을 대응하는 빈 스트링과 연관시키는 FL 이진화이다.
FL 이진화는 심볼 값 symbolVal의 fixedLength비트 부호없는 정수 빈 스트링을 사용함으로써 구성되고, 여기서 fixedLength = Ceil( Log2( cMax + 1 ) )이다. FL 이진화를 위한 빈의 인덱싱은, 최하위 비트를 향해 binIdx 값을 증가시키면서 binIdx = 0이 최상위 비트와 관련되도록 하는 것이다.
Figure pct00015
4.5 merge_idx의 예시적인 코딩
HEVC 사양에 지정된 바와 같이, 총 허용된 병합 후보 수가 1보다 큰 경우, 병합 인덱스가 먼저 빈 스트링으로 이진화된다.
Figure pct00016
cRiceParam이 0과 같은 TR, 즉 TU가 사용된다. merge_idx의 제1 빈은 하나의 컨텍스트로 코딩되고, 나머지 빈들은, 존재한다면, 바이패스로 코딩된다.
5 JEM에서의 인트라 예측의 예시적인 실시예들
5.1 67개의 인트라 예측 모드를 갖는 인트라 모드 코딩의 예들
자연 비디오에 제시되는 임의의 에지 방향들을 캡처하기 위해, 방향성 인트라 모드들의 수는, HEVC에서 사용되는 바와 같이, 33으로부터 65로 확장된다. 추가적인 방향 모드들은 도 27에서 밝은 회색 점선 화살표들로 도시되며, 평면 및 DC 모드들은 동일하게 유지된다. 이러한 더 조밀한 방향성 인트라 예측 모드들은 모든 블록 크기들에 대해 그리고 루마 및 크로마 인트라 예측들 양자 모두에 대해 적용된다.
5.2 루마 인트라 모드 코딩의 예
JEM에서, 인트라 예측 모드들의 총 수는 HEVC에서의 35로부터 67로 증가되었다. 도 27은 67개의 인트라 예측 모드의 예를 도시한다.
증가된 수의 방향성 인트라 모드를 수용하기 위해, 6개의 MPM들(Most Probable Modes)을 갖는 인트라 모드 코딩 방법이 사용된다. 2개의 주요 기술적 양태들이 수반된다: 1) 6개의 MPM들의 도출, 및 2) 6개의 MPM들 및 비-MPM 모드들의 엔트로피 코딩.
JEM에서, MPM 리스트들에 포함된 모드들은 3개의 그룹으로 분류된다:
--이웃 인트라 모드들
--도출된 인트라 모드들
--디폴트 인트라 모드들
5개의 이웃 인트라 예측 모드가 MPM 리스트를 형성하는데 사용된다. 5개의 이웃 블록들의 위치들은 병합 모드에서 사용되는 것들과 동일하고, 즉, 도 28에 도시된 바와 같이 좌측(L), 상위(A), 하부-좌측(BL), 상위-우측(AR), 및 상위-좌측(AL)이다. 5개의 이웃 인트라 모드들 및 평면 및 DC 모드들을 MPM 리스트에 삽입함으로써 초기 MPM 리스트가 형성된다. 고유 모드들만이 MPM 리스트에 포함될 수 있도록 이중 모드들을 제거하기 위해 프루닝 프로세스가 사용된다. 초기 모드들이 포함되는 순서는 다음과 같다: 좌측, 상위, 평면, DC, 하부-좌측, 상위-우측, 및 그 후 상위-좌측.
MPM 리스트가 가득 차지 않은 경우(즉, 리스트에 6개보다 작은 MPM 후보들이 존재함), 도출된 모드들이 추가되고; 이러한 인트라 모드들은 MPM 리스트에 이미 포함된 각도 모드들에 -1 또는+1을 추가함으로써 획득된다. 이러한 추가적인 도출된 모드들은 비-각도 모드들(DC 또는 평면)로부터 생성되지 않는다.
마지막으로, MPM 리스트가 여전히 완료되지 않은 경우, 디폴트 모드들이 다음의 순서로 추가된다: 수직, 수평, 모드 2, 및 대각선 모드. 이 프로세스의 결과로서, 6개의 MPM 모드들의 고유 리스트가 생성된다.
6개의 MPM들을 사용하는 선택된 모드의 엔트로피 코딩에 대해, 절단 단항 이진화가 사용된다. 처음 3개의 빈들은 현재 시그널링되고 있는 빈과 관련된 MPM 모드에 의존하는 컨텍스트들로 코딩된다. MPM 모드는 3개의 카테고리 중 하나로 분류된다: (a) 주로 수평인 모드들(즉, MPM 모드 번호가 대각선 방향에 대한 모드 번호 이하임), (b) 주로 수직인 모드들(즉, MPM 모드가 대각선 방향에 대한 모드 번호보다 큼), 및 (c) 비-각도(DC 및 평면) 클래스. 따라서, 이러한 분류에 기초하여 MPM 인덱스를 시그널링하기 위해 3개의 컨텍스트들이 사용된다.
나머지 61개의 비-MPM들의 선택을 위한 코딩은 다음과 같이 행해진다. 61개의 비-MPM들은 2개의 세트들로 먼저 분할된다: 선택된 모드 세트 및 선택되지 않은 모드 세트. 선택된 모드 세트는 16개의 모드들을 포함하고 나머지(45개의 모드들)는 선택되지 않은 모드 세트에 할당된다. 현재 모드가 속하는 모드 세트는 플래그를 갖는 비트스트림에서 표시된다. 표시될 모드가 선택된 모드 세트 내에 있으면, 선택된 모드는 4-비트 고정 길이 코드로 시그널링되고, 표시될 모드가 선택되지 않은 세트로부터의 것이면, 선택된 모드는 절단 바이너리 코드로 시그널링된다. 선택된 모드 세트는 다음과 같이 61개의 비-MPM 모드들을 서브-샘플링함으로써 생성된다:
-- 선택된 모드 세트 = {0, 4, 8, 12, 16, 20 ... 60}
-- 선택되지 않은 모드 세트 = {1, 2, 3, 5, 6, 7, 9, 10 ... 59}
인코더 측에서, HM의 유사한 2-스테이지 인트라 모드 결정 프로세스가 사용된다. 제1 스테이지, 즉 인트라 모드 사전 선택 스테이지에서, 모든 사용가능한 인트라 모드들로부터 N 인트라 예측 모드들을 사전 선택하는데 더 낮은 복잡도의 SATD(Sum of Absolute Transform Difference) 비용이 사용된다. 제2 스테이지에서, 더 높은 복잡도의 R-D 비용 선택이 N 후보들로부터 하나의 인트라 예측 모드를 선택하는데 추가로 적용된다. 그러나, 67개의 인트라 예측 모드가 적용될 때, 사용가능한 모드들의 총 수가 대략 2배가 되기 때문에, HM의 동일한 인코더 모드 결정 프로세스가 직접 사용되는 경우, 인트라 모드 사전 선택 스테이지의 복잡도가 또한 증가될 것이다. 인코더 복잡도 증가를 최소화하기 위해, 2단계 인트라 모드 사전 선택 프로세스가 수행된다. 제1 단계에서, SATD(Sum of Absolute Transform Difference) 측정치에 기초하여 원래의 35개의 인트라 예측 모드들(도 27에서 흑색 실선 화살표들로 표시됨)로부터 N( N는 인트라 예측 블록 크기에 의존함) 모드들이 선택된다; 제2 단계에서, 선택된 N 모드들의 직접적인 이웃들(도 27에서 밝은 회색 점선 화살표들로 표시된 바와 같은 추가적인 인트라 예측 방향들)이 SATD에 의해 추가로 검사되고, 선택된 N 모드들의 리스트가 업데이트된다. 마지막으로, 이미 포함되어 있지 않은 경우 처음 M MPM들이 N 모드들에 추가되고, 후보 인트라 예측 모드들의 최종 리스트는 제2 스테이지 R-D 비용 검사를 위해 생성되며, 이는 HM과 동일한 방식으로 수행된다. M의 값은 HM에서의 원래 설정에 기초한 것만큼 증가되고, N는 아래의 표 10에 나타나있는 바와 같이 다소 감소된다.
Figure pct00017
5.3 크로마 인트라 모드 코딩의 예들
JEM에서, 총 11개의 인트라 모드가 크로마 CB 코딩을 위해 허용된다. 이러한 모드들은 5개의 전통적인 인트라 모드들 및 6개의 교차 성분 선형 모델 모드들을 포함한다. 크로마 모드 후보들의 리스트는 다음 3개의 부분을 포함한다:
ㆍ CCLM 모드
ㆍ DM 모드들, 현재 크로마 블록의 병치된 5개의 위치를 커버하는 루마 CB들로부터 도출되는 인트라 예측 모드들
- 순서대로 검사될 5개의 위치는 다음과 같다: I 슬라이스들에 대한 현재 크로마 블록의 대응하는 루마 블록 내의 중심(CR), 상단-좌측(TL), 상단-우측(TR), 하단-좌측(BL) 및 하단-우측(BR) 4Х4 블록. P 및 B 슬라이스들에 대해, 이들 5개의 서브 블록들 중 단 하나만이 검사되는데, 그 이유는 이들이 동일한 모드 인덱스를 갖기 때문이다. 5개의 병치된 루마 위치들의 예가 도 29a 및 도 29b에 도시된다.
ㆍ 공간 이웃 블록들로부터의 크로마 예측 모드들:
- 5 크로마 예측 모드들: 좌측으로부터, 상위, 하부-좌측, 상위-우측, 및 상위-좌측 공간 이웃 블록
- 평면 및 DC 모드들
- 도출된 모드들이 추가되고, 이러한 인트라 모드들은 리스트에 이미 포함된 각도 모드들에 -1 또는 +1을 추가함으로써 획득된다.
- 수직, 수평, 모드 2
새로운 크로마 인트라 모드가 후보 리스트에 추가될 때마다 프루닝 프로세스가 적용된다. 그 다음, 비-CCLM 크로마 인트라 모드 후보 리스트 크기는 5로 트리밍된다. 모드 시그널링의 경우, CCLM 모드들 중 하나 또는 전통적 크로마 인트라 예측 모드 중 하나 중 어느 쪽이 사용되는지 여부를 나타내기 위해 플래그가 먼저 시그널링된다. 이어서, 현재 크로마 CB들에 사용되는 정확한 크로마 예측 모드를 지정하기 위해 몇몇 더 많은 플래그들이 뒤따를 수 있다.
6. 기존 구현들의 예들
현재 HEVC 설계는 모션 정보를 더 양호하게 코딩하기 위해 (현재 블록 옆의) 그의 이웃 블록들의 현재 블록의 상관을 취할 수 있다. 그러나, 이웃 블록들은 상이한 모션 궤적들을 갖는 상이한 객체들에 대응하는 것이 가능하다. 이 경우, 그의 이웃 블록들로부터의 예측은 효율적이지 않다.
비인접 블록들의 모션 정보로부터의 예측은 모든 모션 정보(전형적으로 4x4 레벨)를 캐시에 저장하는 것을 댓가로 추가적인 코딩 이득을 발생시킬 수 있고, 이러한 저장은 하드웨어 구현에 대한 복잡도를 상당히 증가시킨다.
단항 이진화 방법은 더 적은 수의 허용된 병합 후보들에 대해 우수하게 작용한다. 그러나, 허용된 후보의 총 수가 더 커지면, 단항 이진화는 차선적일 수 있다.
AMVP 후보 리스트 구성 프로세스의 HEVC 설계는 단지 2개의 공간 AMVP 후보 중에서의 프루닝만을 호출한다. 풀 프루닝(사용가능한 후보 각각이 모든 다른 것들과 비교됨)은 제한된 프루닝에 기인한 코딩 손실이 무시가능한 수준이기 때문에 이용되지 않는다. 그러나, 사용가능한 더 많은 AMVP 후보들이 있을 경우, 프루닝이 중요하게 된다. 또한, LAMVR이 인에이블될 때, AVMP 후보 리스트를 구성하는 방법이 연구되어야 한다.
7. LUT-기반 모션 벡터 예측을 위한 예시적인 방법들
현재 개시된 기술의 실시예들은 기존 구현들의 단점들을 극복하고, 그에 의해 보다 높은 코딩 효율들을 갖는 비디오 코딩을 제공한다. 기존 구현들의 단점들을 극복하기 위해, 블록의 모션 정보를 예측하기 위해 저장된 적어도 하나의 모션 후보를 갖는 하나 이상의 테이블(예를 들어, 룩업 테이블)을 사용하는 LUT-기반 모션 벡터 예측 기술들이 보다 높은 코딩 효율들을 갖는 비디오 코딩을 제공하기 위해 다양한 실시예들에서 구현될 수 있다. 룩업 테이블은 블록의 모션 정보를 예측하기 위한 모션 후보들을 포함하도록 사용될 수 있는 테이블의 예이고, 다른 구현들이 또한 가능하다. 각각의 LUT는 각각이 대응하는 모션 정보와 연관되어 있는 하나 이상의 모션 후보를 포함할 수 있다. 모션 후보의 모션 정보는 예측 방향, 참조 인덱스들/픽처들, 모션 벡터들, LIC 플래그들, 아핀 플래그들, 모션 벡터 도출(MVD) 정밀도들, 및/또는 MVD 값들 중 일부 또는 전부를 포함할 수 있다. 모션 정보는 모션 정보가 어느 것으로부터 오는지를 나타내기 위해 블록 위치 정보를 추가로 포함할 수 있다.
기존 및 장래의 비디오 코딩 표준 양자 모두를 향상시킬 수 있는, 개시된 기술에 기초한 LUT-기반 모션 벡터 예측이 다양한 구현들에 대해 설명된 이하의 예들에서 설명된다. LUT들은 인코딩/디코딩 프로세스가 이력 데이터(예를 들어, 처리된 블록들)에 기초하여 수행될 수 있게 하기 때문에, LUT-기반 모션 벡터 예측은 또한 HMVP(History-based Motion Vector Prediction) 방법이라고도 지칭될 수 있다. LUT-기반 모션 벡터 예측 방법에서, 이전에 코딩된 블록들로부터의 모션 정보를 갖는 하나 또는 다수의 테이블이 인코딩/디코딩 프로세스 동안 유지된다. LUT들에 저장된 이러한 모션 후보들은 HMVP 후보들로 명명된다. 하나의 블록의 인코딩/디코딩 동안, LUT들에서의 연관된 모션 정보가 모션 후보 리스트들(예를 들어, 병합/AMVP 후보 리스트들)에 추가될 수 있고, 하나의 블록을 인코딩/디코딩한 이후에, LUT들이 업데이트될 수 있다. 업데이트된 LUT는 이어서 후속 블록을 코딩하는 데 사용된다. 따라서, LUT들에서의 모션 후보들의 업데이트는 블록들의 인코딩/디코딩 순서에 기초한다.
기존 및 장래의 비디오 코딩 표준 양자 모두를 향상시킬 수 있는, 개시된 기술에 기초한 LUT-기반 모션 벡터 예측이 다양한 구현들에 대해 설명된 이하의 예들에서 설명된다. 아래에 제공되는 개시된 기술의 예들은 일반적인 개념들을 설명하고 제한적인 것으로 해석되는 것을 의도하지 않는다. 한 예에서, 달리 명시적으로 표시되지 않는 한, 이들 예에서 설명된 다양한 특징들이 조합될 수 있다.
용어와 관련하여, 다음의 예에서 LUT의 엔트리는 모션 후보이다. 용어 모션 후보는 룩업 테이블에 저장된 모션 정보 세트를 나타내는데 사용된다. 종래의 AMVP 또는 병합 모드들에 대해, AMVP 또는 병합 후보들은 모션 정보를 저장하기 위해 사용된다. 후술하는 바와 같이, 그리고 비제한적인 예에서, 모션 벡터 예측을 위한 모션 후보들을 갖는 LUT들의 개념은 인트라 모드 코딩을 위한 인트라 예측 모드들을 갖는 LUT들로 확장되거나, IC 파라미터 코딩을 위한 조도 보상 파라미터들을 갖는 LUT들로 확장되거나, 필터 파라미터들을 갖는 LUT들로 확장된다. 모션 후보들에 대한 LUT-기반 방법들은 본 특허 문서, 기존 및 장래의 비디오 코딩 표준들에서 설명된 바와 같이 다른 타입들의 코딩 정보로 확장될 수 있다.
룩업 테이블의 예들
예 A: 각각의 룩업 테이블은 하나 이상의 모션 후보를 포함할 수 있고 여기서 각각의 후보는 그 모션 정보와 연관된다.
일 예에서, 테이블 크기(예를 들어, 모션 후보들의 최대 허용 엔트리들의 수) 및/또는 테이블들의 수는 시퀀스 분해능, 최대 코딩 유닛 크기, 병합 후보 리스트들의 크기에 의존할 수 있다.
룩업 테이블의 업데이트
예 B1: 모션 정보(즉, IntraBC 모드, 인터 코딩 모드)를 갖는 블록을 코딩한 이후에, 하나 또는 다수의 룩업 테이블이 업데이트될 수 있다.
a. 일 예에서, 룩업 테이블을 업데이트할지 여부는 룩업 테이블들을 선택하기 위한 규칙들을 재사용할 수 있는데, 예를 들어, 룩업 테이블이 현재 블록을 코딩하기 위해 선택될 수 있는 경우, 블록을 코딩/디코딩한 이후에, 선택된 룩업 테이블이 추가로 업데이트될 수 있다.
b. 업데이트될 룩업 테이블들은 코딩된 정보, 및/또는 블록/LCU의 위치들에 기초하여 선택될 수 있다.
c. 블록이 (AMVP 모드, 정상/아핀 인터 모드에 대한 MMVD 모드, 정상/아핀 인터 모드에 대한 AMVR 모드와 같이) 직접 시그널링된 모션 정보로 코딩되는 경우, 블록에 대한 모션 정보가 룩업 테이블에 추가될 수 있다.
i. 대안적으로, 블록이 어떠한 정제도 없이 공간 이웃 블록으로부터 직접 상속된 모션 정보로 코딩되면(예를 들어, 정제 없는 공간 병합 후보), 블록에 대한 모션 정보는 룩업 테이블에 추가되지 않아야 한다.
ii. 대안적으로, 블록이 정제를 갖는 공간 이웃 블록으로부터 직접 상속된 모션 정보로 코딩되면(예컨대, DMVR, FRUC와 같은), 블록에 대한 모션 정보는 임의의 룩업 테이블에 추가되지 않아야 한다.
iii. 대안적으로, 블록이 룩업 테이블에 저장된 모션 후보로부터 직접 상속된 모션 정보로 코딩되면, 블록에 대한 모션 정보는 임의의 룩업 테이블에 추가되지 않아야 한다.
iv. 일 예에서, 이러한 모션 정보는 룩업 테이블에, 예컨대, 테이블의 마지막 엔트리 또는 다음 사용가능한 모션 후보를 저장하는 데 사용되는 엔트리에 직접 추가될 수 있다.
v. 대안적으로, 이러한 모션 정보는 프루닝 없이, 예를 들어 어떠한 프루닝도 없이 룩업 테이블에 직접 추가될 수 있다.
vi. 대안적으로, 이러한 모션 정보는 룩업 테이블을 재순서화하기 위해 사용될 수 있다.
vii. 대안적으로, 이러한 모션 정보는 (예를 들어, 룩업 테이블 내의 가장 최근의 것과 비교하여) 제한된 프루닝으로 룩업 테이블을 업데이트하는 데 사용될 수 있다.
d. 블록 내의 M(M>=1) 개의 대표적인 위치가 선택되고, 이 대표와 연관된 모션 정보가 룩업 테이블들을 업데이트하는 데 사용된다.
i. 일 예에서, 대표적인 위치는 블록 내의 4개의 모서리 위치(예를 들어, 도 30의 C0-C3) 중 하나로서 정의된다.
ii. 일 예에서, 대표적인 위치는 블록 내의 중심 위치(예를 들어, 도 30의 Ca-Cd)로서 정의된다.
iii. 서브 블록 예측이 블록에 대해 허용되지 않을 때, M은 1로 설정된다.
iv. 서브 블록 예측이 블록에 대해 허용될 때, M은 1 또는 서브 블록들의 총 수 또는 [1, 서브 블록들의 수](경계값 제외) 사이의 임의의 다른 값으로 설정될 수 있다.
v. 대안적으로, 서브 블록 예측이 블록에 대해 허용될 때, M은 1로 설정될 수 있고, 대표 서브 블록의 선택은 다음에 기초한다:
1. 사용된 모션 정보의 빈도,
2. 그것이 양방향 예측 블록인지 여부
3. 참조 픽처 인덱스/참조 픽처에 기초
4. 다른 모션 벡터들과 비교되는 모션 벡터 차이들(예를 들어, 최대 MV 차이들을 선택)
5. 다른 코딩된 정보.
e. 룩업 테이블들을 업데이트하기 위해 M(M>=1) 개의 대표적인 위치 세트가 선택될 때, 이들을 룩업 테이블들에 대한 추가 모션 후보들로서 추가하기 전에 추가 조건들이 검사될 수 있다.
i. 프루닝은 룩업 테이블 내의 기존 모션 후보들에 대한 새로운 모션 정보 세트들에 적용될 수 있다.
ii. 일 예에서, 새로운 모션 정보 세트는 룩업 테이블 내의 기존 모션 후보들 중 임의의 것 또는 그 일부와 동일하지 않아야 한다.
iii. 대안적으로, 새로운 모션 정보 세트 및 하나의 기존 모션 후보로부터의 동일한 참조 픽처들에 대해, MV 차이는 하나/다수의 임계값들보다 더 작지 않아야 한다. 예를 들어, MV 차이의 수평 및/또는 수직 성분이 1-픽셀 거리보다 더 커야 한다.
iv. 대안적으로, 이전의 모션 후보를 재활성화시키는 것을 가능하게 하기 위해 K > L일 때 새로운 모션 정보 세트가 마지막 K개의 후보 또는 처음 K%L개의 기존 모션 후보만으로 프루닝된다.
v. 대안적으로, 프루닝이 적용되지 않는다.
f. M개의 모션 정보 세트가 룩업 테이블을 업데이트하는 데 사용되는 경우, 대응하는 카운터는 M만큼 증가되어야 한다.
g. 업데이트될 룩업 테이블의 카운터가 현재 블록을 코딩하기 전에 K로 표시되는 것으로 가정하면, 블록을 코딩한 이후에, 하나의 선택된 모션 정보 세트(위의 0에서 언급된 방법에서)에 대해, 이는 K%L과 동일한 인덱스를 갖는 추가적인 모션 후보로서 추가된다(여기서 L은 룩업 테이블 크기이다). 도 31a 및 도 31b에 예들이 도시된다.
i. 대안적으로, 이는 min(K+1, L-1)과 동일한 인덱스를 갖는 추가적인 모션 후보로서 추가된다. 대안적으로, 또한, K>=L이면, 제1 모션 후보(0과 동일한 인덱스)는 룩업 테이블로부터 제거되고, 다음 K개의 후보 인덱스는 1만큼 감소된다.
ii. 위의 양자 모두의 방법에 대해(K%L과 동일한 엔트리 인덱스에 새로운 모션 후보를 추가하거나 min(K+1, L-1)과 동일한 인덱스와 함께 이를 추가함), 이들은 동일한/유사한 모션 후보들이 있는지 여부에 관계없이 이전에 코딩된 블록들로부터 가장 최근의 몇몇 모션 정보 세트를 유지하려고 시도한다.
iii. 대안적으로, 모션 후보로서 새로운 모션 정보 세트를 LUT에 추가할 때, 중복 검사가 먼저 적용된다. 이 경우에, LUT는 이전에 코딩된 블록들로부터의 최근의 몇몇 모션 정보 세트들을 유지할 것이지만, 그러나, 중복된 것들은 LUT들로부터 제거될 수 있다. 이러한 방법은 중복 제거 기반 LUT 업데이트 방법이라고 불린다.
1. LUT에 중복 모션 후보들이 있는 경우, LUT와 연관된 카운터가 증가되거나 감소되지 않을 수 있다.
2. 중복 검사는 병합 후보 리스트 구성 프로세스에서 프루닝 프로세스로서 정의될 수 있는데, 예를 들어 참조 픽처들/참조 픽처 인덱스들이 동일한지 및 모션 벡터 차이들이 범위 내에 있거나 동일한지를 검사한다.
3. LUT에서 발견된 중복 모션 후보가 있는 경우, 중복 모션 후보가 그의 현재 위치로부터 LUT 중 마지막 위치로 이동된다.
a. 이와 유사하게, LUT에서 중복 모션 후보가 발견되는 경우, 이 중복 모션 후보가 LUT로부터 제거된다. 또한, 중복 모션 후보 이후의 LUT에 삽입된 모든 모션 후보가 앞으로 이동하여 중복 모션 후보의 제거된 엔트리를 다시 채운다. 시프팅 이후에, 새로운 모션 후보가 LUT에 추가된다.
b. 이 경우, 카운터는 변경되지 않은 채로 유지된다.
c. 중복 모션 후보가 LUT에서 식별되면, 중복 검사 프로세스는 종료된다.
4. 다수의 중복 모션 후보들이 식별될 수 있다. 이 경우, 이들 모두는 LUT로부터 제거된다. 또한, 나머지 모션 후보들 모두는 순서대로 앞으로 이동할 수 있다.
a. 이 경우, 카운터는 (중복 모션 후보들의 수 빼기 1) 만큼 감소된다.
b. 중복 검사 프로세스는 maxR 중복 모션 후보들을 식별한 이후에 종료된다(maxR는 양의 정수 변수이다).
5. 중복 검사 프로세스는 첫 번째 모션 후보로부터 마지막 모션 후보까지(즉, LUT들에 추가되는 순서로, 모션 정보가 나오는 블록들의 디코딩 프로세스의 순서로) 시작할 수 있다.
6. 대안적으로, LUT에 중복 모션 후보들이 있을 때, LUT들로부터의 중복 모션 후보들 중 하나 또는 다수를 제거하는 대신에, 가상 모션 후보들이 중복 모션 후보들로부터 도출될 수 있고 가상 모션 후보들이 중복 모션 후보들을 대체하도록 사용될 수 있다.
a. 가상 모션 후보는 하나 또는 다수의 모션 벡터의 수평 및/또는 수직 성분에 오프셋(들)을 추가함으로써, 또는 동일한 참조 픽처를 가리키는 경우에 2개의 모션 벡터의 평균에 의해 중복 모션 후보로부터 도출될 수 있다. 대안적으로, 가상 모션 후보는 입력으로서 룩업 테이블 내의 모션 벡터들을 갖는 임의의 함수로부터 도출될 수 있다. 예시적인 함수들은 다음과 같다: 2개 또는 모션 벡터들을 함께 가산하는 것; 2개 이상의 모션 벡터들을 평균화하는 것. 모션 벡터는 함수에 입력되기 전에 스케일링될 수 있다.
b. 가상 모션 후보들은 중복 모션 후보들과 동일한 위치에 추가될 수 있다.
c. 가상 모션 후보들은 모든 다른 모션 후보들 이전에(예를 들어, 제로와 같은 가장 작은 엔트리 인덱스들로부터 시작하여) 추가될 수 있다.
d. 일 예에서, 이는, 현재 LUT가 가득 차 있지 않을 때와 같은, 특정 조건들 하에서만 적용된다.
7. 중복 제거 기반 LUT 업데이트 방법은, 다음과 같은, 특정 조건들 하에서 호출될 수 있다.
a. 현재 블록이 병합 모드로 코딩됨,
b. 현재 블록이 AMVP 모드로 코딩되지만 MV 차이의 적어도 하나의 성분이 비-제로임;
c. 현재 블록이 서브 블록 기반 모션 예측/모션 보상 방법들로 코딩되거나 그렇지 않음(예를 들어, 아핀 모드로 코딩되지 않음)
d. 현재 블록이 병합 모드로 코딩되고, 모션 정보는 특정 타입과 연관됨(예를 들어, 공간 이웃 블록들로부터, 좌측 이웃 블록으로부터, 시간 블록으로부터).
h. 하나의 블록을 인코딩/디코딩한 이후에, 하나 이상의 룩업 테이블들은 단지 M개의 모션 정보 세트를 테이블의 끝에, 즉 모든 기존의 후보들 이후에 삽입함으로써 업데이트될 수 있다.
i. 대안적으로, 또한, 테이블에서의 일부 기존 모션 후보들이 제거될 수 있다.
1. 일 예에서, M개의 모션 정보 세트를 삽입한 이후에 테이블이 가득 차면, 처음 몇몇 모션 후보 엔트리가 테이블로부터 제거될 수 있다.
2. 일 예에서, M개의 모션 정보 세트를 삽입하기 전에 테이블이 가득 차면, 처음 몇몇 모션 후보 엔트리가 테이블로부터 제거될 수 있다.
ii. 대안적으로, 또한, 블록이 테이블로부터의 모션 후보로 코딩되면, 테이블 내의 모션 후보들은 선택된 모션 후보가 테이블의 마지막 엔트리에 놓여지도록 재순서화될 수 있다.
i. 일 예에서, 블록을 인코딩/디코딩하기 전에, 룩업 테이블은 HMVP0, HMVP1, HMVP2, ..., HMVPK-1, HMVPK, HMVPK+1, ..., HMVPL-1에 의해 표시되는 모션 후보들을 포함할 수 있고, 여기서, HMVPi는 룩업 테이블 내의 i번째 엔트리를 표시한다. 블록이 HMVPK(K는 범위 [0, L-1](경계값 포함) 내에 있다)로부터 예측되면, 이 블록을 인코딩/디코딩한 이후에, 룩업 테이블은 다음과 같이 재순서화된다: HMVP0, HMVP1, HMVP2, ..., HMVPK-1,
Figure pct00018
, HMVPK+1, ..., HMVPL-1, HMVPK.
j. 룩업 테이블은 하나의 인트라-제약된 블록을 코딩한 이후에 비워질 수 있다.
k. 모션 정보의 엔트리가 룩업 테이블에 추가되면, 모션 정보로부터의 도출에 의해 모션 정보의 더 많은 엔트리들이 또한 테이블에 추가될 수도 있다. 이 경우, 룩업 테이블과 연관된 카운터는 1보다 더 증가될 수 있다.
i. 일 예에서, 모션 정보의 엔트리의 MV가 스케일링되어 테이블에 넣어진다;
ii. 일 예에서, 모션 정보의 엔트리의 MV는 (dx, dy)에 의해 추가되고, 테이블에 넣어진다;
iii. 일 예에서, 모션 정보의 2개 이상의 엔트리들의 MV들의 평균이 계산되어 테이블에 넣어진다.
예 B2: 하나의 블록이 픽처/슬라이스/타일 경계에 위치하는 경우, 룩업 테이블들의 업데이트는 항상 허용되지 않을 수 있다.
예 B3: 현재 LCU 행을 코딩하기 위해 LCU 행들의 모션 정보가 디스에이블될 수 있다.
a. 이 경우에, 새로운 슬라이스/타일/LCU 행의 시작에서, 사용가능한 모션 후보들의 수는 0으로 리셋될 수 있다.
예 B4: 새로운 시간 레이어 인덱스로 슬라이스/타일을 코딩하는 시작부에서, 사용가능한 모션 후보들의 수는 0으로 리셋될 수 있다.
예 B5: 룩업 테이블은 동일한 시간 레이어 인덱스를 갖는 하나의 슬라이스/타일/LCU 행/슬라이스들로 연속적으로 업데이트될 수 있다.
a. 대안적으로, 룩업 테이블은 각각의 S(S>=1) CTU들/CTB들/CU들/CB들을 코딩/디코딩한 이후에만 또는 특정 영역(예를 들어, 8x8 또는 16x16과 동일한 크기)을 코딩/디코딩한 이후에만 업데이트될 수 있다.
b. 대안적으로, 룩업 테이블은 특정 모드들(예를 들어, S 인터-코딩된 블록들)을 갖는 각각의 S(S>=1) 블록들(예를 들어, CU들/CB들)을 코딩/디코딩한 이후에만 업데이트될 수 있다. 대안적으로, 룩업 테이블은 서브 블록 기반 모션 예측/모션 보상 방법으로 코딩되지 않은(예를 들어, 아핀 및/또는 ATMVP 모드로 코딩되지 않은) 각각의 S(S>=1) 인터-코딩된 블록들(예를 들어, CU들/CB들)을 코딩/디코딩한 이후에만 업데이트될 수 있다.
c. 대안적으로, 룩업 테이블은 코딩된/디코딩된 블록의 좌측-상단 좌표가 일부 조건들을 만족시킬 때에만 업데이트될 수 있다. 예를 들어, 룩업 테이블은 (x&M==0)&&(y&M==0)인 경우에만 업데이트되며, 여기서 (x, y)는 코딩된/디코딩된 블록의 좌측-상단 좌표이다. M은 2, 4, 8, 16, 32 또는 64와 같은 정수이다.
d. 대안적으로, 하나의 룩업 테이블은 그것이 최대 허용 카운터에 도달하면 업데이트를 중단할 수 있다.
e. 일 예에서, 카운터는 미리 정의될 수 있다. 대안적으로, 이는 비디오 파라미터 세트(VPS), 시퀀스 파라미터 세트(SPS), 픽처 파라미터 세트(PPS), 슬라이스 헤더, 타일 헤더, 코딩 트리 유닛(CTU), 코딩 트리 블록(CTB), 코딩 유닛(CU) 또는 예측 유닛(PU), 다수의 CTU/CTB/CU/PU들을 커버하는 영역에서 시그널링된다.
예 B6: LUT는 블록이 병합 또는 AMVP 모드로 코딩될 때 블록과 연관된 모션 정보로 업데이트될 수 있다.
예 B7: 코딩된 블록으로부터 획득된 모션 후보를 추가함으로써 LUT를 업데이트하기 전에, 프루닝이 적용될 수 있다.
예 B8: LUT는 주기적으로 업데이트될 수 있다.
예 C: LUT에서의 모션 후보들의 재순서화가 적용될 수 있다.
(a) 일 예에서, 하나의 블록을 코딩한 이후에, 이 블록으로부터 새로운 모션 후보가 획득될 수 있다. 이는 먼저 LUT들에 추가될 수 있고, 그 후 재순서화가 적용될 수 있다. 이 경우, 서브시퀀스 블록에 대해, 이는 재순서화된 LUT들을 이용할 것이다. 예를 들어, 재순서화는 특정 유닛(예를 들어, 하나의 LCU, 하나의 LCU 행, 다수의 LCU들 등)의 코딩을 완료한 이후에 발생한다.
(b) 일 예에서, LUT들에서의 모션 후보들은 재순서화되지 않는다. 그렇지만, 블록을 코딩할 때, 모션 후보들의 재순서화가 먼저 적용될 수 있고, 이어서 검사되고 병합/AMVP/또는 다른 종류의 모션 정보 후보 리스트에 삽입될 수 있다.
예 D: 모션 벡터 예측을 위한 모션 후보들을 갖는 LUT들의 사용과 유사하게, 하나 또는 다수의 LUT가 이전에 코딩된 블록들로부터의 인트라 예측 모드들을 저장하도록 구성 및/또는 업데이트될 수 있고 LUT들이 인트라-코딩된 블록을 코딩/디코딩하는 데 사용될 수 있다는 것이 제안된다.
8. LUT-기반 모션 벡터 예측을 위한 추가적인 실시예들
HMVP 후보가 이전에 코딩된 블록의 모션 정보로서 정의되는 이력-기반 MVP(HMVP) 방법이 제안된다. 인코딩/디코딩 프로세스 동안 다수의 HMVP 후보들을 갖는 테이블이 유지된다. 새로운 슬라이스를 만날 때 테이블이 비워진다. 인터-코딩된 블록이 있을 때마다, 연관된 모션 정보가 새로운 HMVP 후보로서 테이블의 마지막 엔트리에 추가된다. 전체 코딩 흐름이 도 32에 도시된다.
일 예에서, 테이블 크기는 L(예를 들어, L= 16 또는 6, 또는 44)로 설정되고, 이는 최대 L개의 HMVP 후보가 테이블에 추가될 수 있다는 것을 나타낸다.
일 실시예에서(예 B1.g.i에 대응), 이전에 코딩된 블록들로부터 L개보다 많은 HMVP 후보들이 있는 경우, 테이블이 가장 최근의 이전에 코딩된 L 모션 후보들을 항상 포함하도록 FIFO(First-In-First-Out) 규칙이 적용된다. 도 33은 FIFO 규칙이 적용되어 HMVP 후보를 제거하고 제안된 방법에서 사용된 테이블에 새로운 것을 추가하는 예를 도시한다.
또 다른 실시예에서(발명 B1.g.iii에 대응), (현재 블록이 인터-코딩되고 비-아핀 모드인 것과 같은) 새로운 모션 후보를 추가할 때마다, LUT들에 동일하거나 유사한 모션 후보들이 있는지를 식별하기 위해 중복 검사 프로세스가 먼저 적용된다.
일부 예들은 다음과 같이 도시된다:
도 34a는 새로운 모션 후보를 추가하기 전에 LUT가 가득 찬 경우의 예를 도시한다.
도 34b는 새로운 모션 후보를 추가하기 전에 LUT가 가득 차 있지 않을 때의 예를 도시한다.
도 34a 및 도 34b는 함께 (하나의 중복 모션 후보가 제거된) 중복 제거 기반 LUT 업데이트 방법의 일 예를 도시한다.
도 35a 및 도 35b는 중복 제거 기반 LUT 업데이트 방법의 2개의 경우에 대한 예시적인 구현을 도시한다(다수의 중복 모션 후보가 제거됨, 도면들에서 2개의 후보).
도 35a는 새로운 모션 후보를 추가하기 전에 LUT가 가득 찼을 때의 예시적인 경우를 도시한다.
도 35b는 새로운 모션 후보를 추가하기 전에 LUT가 가득 차지 않은 경우의 예시적인 경우를 도시한다.
병합 후보 리스트 구성 프로세스에서 HMVP 후보들이 사용될 수 있다. 테이블에서의 마지막 엔트리로부터 첫 번째 엔트리(또는 마지막 K0 HMVP, 예를 들어, K0는 16 또는 6과 같음)까지의 모든 HMVP 후보들은 TMVP 후보 이후에 삽입된다. 프루닝은 HMVP 후보들에 적용된다. 사용가능한 병합 후보들의 총 수가 시그널링된 최대 허용 병합 후보들에 도달하면, 병합 후보 리스트 구성 프로세스가 종료된다. 대안적으로, 추가된 모션 후보들의 총 수가 주어진 값에 도달하면, LUT들로부터의 모션 후보들의 페치가 종료된다.
유사하게, HMVP 후보들은 또한 AMVP 후보 리스트 구성 프로세스에서 사용될 수 있다. 테이블에서의 마지막 K1 HMVP 후보들의 모션 벡터들은 TMVP 후보 이후에 삽입된다. AMVP 타겟 참조 픽처와 동일한 참조 픽처를 갖는 HMVP 후보들만이 AMVP 후보 리스트를 구성하기 위해 사용된다. 프루닝은 HMVP 후보들에 적용된다. 일 예에서, K1은 4로 설정된다. LUT-기반 예측 방법에 대한 코딩 흐름의 예가 도 36에 도시되어 있다. 주기적 업데이트에 관련하여, 업데이트 프로세스는 영역을 디코딩한 이후에 행해진다. 자주 LUT를 업데이트하는 것을 피하기 위한 예가 도 37에 도시되어 있다.
앞서 설명된 예들은 후술되는 방법들, 예를 들어, 비디오 디코더 및/또는 비디오 인코더에서 구현될 수 있는 방법(3810, 3820, 3830, 3840)과 관련하여 포함될 수 있다.
도 38a는 비디오 처리를 위한 예시적인 방법의 흐름도를 도시한다. 방법(3810)은, 단계 3812에서, 테이블들을 유지하는 단계를 포함하고, 여기서, 각각의 테이블은 모션 후보들의 세트를 포함하고, 각각의 모션 후보는 대응하는 모션 정보와 연관된다. 방법(3810)은, 단계 3814에서, 테이블들에 기초하여 제1 비디오 블록과 제1 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 더 포함한다. 방법(3810)은, 단계 3816에서, 변환의 수행 이후에, 업데이트 규칙에 기초하여, 0개 이상의 테이블을 업데이트하는 단계를 더 포함한다.
도 38b는 비디오 처리를 위한 예시적인 방법의 다른 흐름도를 도시한다. 방법(3820)은, 단계 3822에서, 테이블들을 유지하는 단계를 포함하고, 여기서, 각각의 테이블은 모션 후보들의 세트를 포함하고, 각각의 모션 후보는 대응하는 모션 정보와 연관된다. 방법(3820)은, 단계 3824에서, 테이블들에 기초하여 제1 비디오 블록과 제1 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 더 포함한다. 방법(3820)은, 단계 3826에서, 변환의 수행 이후에, 업데이트 종료 기준이 충족될 때까지 비디오 내의 하나 이상의 비디오 영역에 기초하여 하나 이상의 테이블을 업데이트하는 단계를 더 포함한다.
도 38c는 비디오 처리를 위한 예시적인 방법의 다른 흐름도를 도시한다. 방법(3830)은, 단계 3832에서, 모션 후보들을 포함하는 하나 이상의 테이블을 유지하는 단계를 포함하고, 각각의 모션 후보는 대응하는 모션 정보와 연관된다. 방법(3830)은, 단계 3834에서, 모션 후보들을 하나 이상의 테이블 중 적어도 하나에 재순서화하는 단계를 더 포함한다. 방법(3830)은, 단계 3836에서, 재순서화된 테이블들 중 하나 이상에 기초하여, 하나 이상의 테이블을 사용하여 제1 비디오 블록과 제1 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 더 포함한다.
도 38d는 비디오 처리를 위한 예시적인 방법의 다른 흐름도를 도시한다. 방법(3840)은, 단계 3842에서, 모션 후보들을 포함하는 하나 이상의 테이블을 유지하는 단계를 포함하며, 각각의 모션 후보는 대응하는 모션 정보와 연관된다. 방법(3840)은, 단계 3844에서, 재순서화된 테이블들 중 하나 이상에 기초하여, 하나 이상의 테이블을 사용하여 제1 비디오 블록과 제1 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 더 포함한다. 방법(3840)은, 단계 3846에서, 제1 비디오 블록의 변환에 기초하여, 추가적인 모션 후보를 테이블에 추가하고 및 테이블에서의 모션 후보들을 재순서화함으로써 하나 이상의 테이블을 업데이트하는 단계를 더 포함한다.
9. 개시된 기술의 예시적인 구현들
도 39는 비디오 처리 장치(3900)의 블록도이다. 장치(3900)는 본 명세서에 설명된 방법들 중 하나 이상을 구현하는 데 사용될 수 있다. 장치(3900)는 스마트폰, 태블릿, 컴퓨터, 사물 인터넷(IoT) 수신기 등에서 구현될 수 있다. 장치(3900)는 하나 이상의 프로세서(3902), 하나 이상의 메모리(3904) 및 비디오 처리 하드웨어(3906)를 포함할 수 있다. 프로세서(들)(3902)는 본 문서에서 설명된 하나 이상의 방법(방법들(3810 내지 3840)을 포함하지만, 이들로 제한되지 않음)을 구현하도록 구성될 수 있다. 메모리(메모리들)(3904)는 본 명세서에 설명된 방법들 및 기술들을 구현하기 위해 사용되는 데이터 및 코드를 저장하는 데 사용될 수 있다. 비디오 처리 하드웨어(3906)는, 하드웨어 회로에서, 본 문서에 설명된 일부 기술들을 구현하는 데 사용될 수 있다.
일부 실시예들에서, 비디오 코딩 및 디코딩 방법들은 도 38a 내지 38d와 관련하여 설명된 바와 같이 하드웨어 플랫폼 상에 구현되는 장치를 사용하여 구현될 수 있다.
전술한 방법들/기술들의 추가적인 특징들 및 실시예들이 조항 기반 설명 포맷을 사용하여 후술된다.
1. 비디오 처리 방법으로서, 테이블을 유지하는 단계- 각각의 테이블은 모션 후보들의 세트를 포함하고, 각각의 모션 후보는 대응하는 모션 정보와 연관됨 -; 테이블들에 기초하여 제1 비디오 블록과 제1 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계; 및 변환을 수행한 이후에, 업데이트 규칙에 기초하여 0개 이상의 테이블을 업데이트하는 단계를 포함하는, 방법.
2. 조항 1에 있어서, 업데이트 규칙은 비디오의 픽처 또는 슬라이스 또는 타일 경계에 위치하는 비디오 블록들에 대한 테이블들의 업데이트를 허용하지 않는, 방법.
3. 비디오 처리 방법으로서, 테이블을 유지하는 단계- 각각의 테이블은 모션 후보들의 세트를 포함하고, 각각의 모션 후보는 대응하는 모션 정보와 연관됨 -; 테이블들에 기초하여 제1 비디오 블록과 제1 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계; 및 변환을 수행한 이후에, 업데이트 종료 기준이 충족될 때까지 비디오 내의 하나 이상의 비디오 영역에 기초하여 하나 이상의 테이블을 업데이트하는 단계를 포함하는, 방법.
4. 조항 1 또는 3에 있어서, 테이블은 슬라이스, 타일, 최대 코딩 유닛(LCU) 행, 또는 동일한 시간 레이어 인덱스를 갖는 슬라이스들 내에서만 업데이트되는, 방법.
5. 조항 1 또는 3에 있어서, 테이블은, S개의 비디오 영역에 대한 변환을 수행한 이후에 또는 특정 크기의 비디오 영역에 대한 변환을 수행한 이후에 업데이트되고, 여기서 S는 정수인, 방법.
6. 조항 3에 있어서, 업데이트 종료 기준은 업데이트되고 있는 테이블과 연관된 카운터가 최대 허용 수에 도달할 때 충족되는, 방법.
7. 조항 3에 있어서, 업데이트 종료 기준은 업데이트되고 있는 테이블과 연관된 카운터가 미리 정의된 값에 도달할 때 충족되는, 방법.
8. 조항 7에 있어서, 미리 정의된 값은 비디오 파라미터 세트(VPS), 시퀀스 파라미터 세트(SPS), 픽처 파라미터 세트(PPS), 슬라이스 헤더, 타일 헤더, 코딩 트리 유닛(CTU), 코딩 트리 블록(CTB), 코딩 유닛(CU) 또는 예측 유닛(PU), 또는 다수의 CTU, 다수의 CTB, 다수의 CU 또는 다수의 PU를 커버하는 비디오 영역에서 시그널링되는, 방법.
9. 조항 1 또는 3에 있어서, 업데이트 규칙은 제1 비디오 블록의 좌측-상단 좌표(x, y)가 업데이트 규칙에서 정의된 특정 조건을 만족할 때 테이블을 업데이트하는, 방법.
10. 조항 9에 있어서, 테이블은 (x & M==0) && (y&M==0)일 때 업데이트되고, 여기서 M은 2, 4, 8, 16, 32 또는 64인, 방법.
11. 조항 1 또는 3에 있어서, 업데이트 규칙은 S개의 비디오 블록에 대한 변환을 수행한 이후에 테이블을 업데이트하며, S는 1 이상인 정수인, 방법.
12. 조항 11에 있어서, S개의 비디오 블록은 인터-코딩된 블록인, 방법.
13. 조항 11에 있어서, S개의 비디오 블록은 서브 블록 기반 모션 예측 또는 서브 블록 기반 모션 보상 방법으로 코딩되지 않는, 방법.
14. 조항 11에 있어서, S개의 비디오 블록은 아핀 모드 또는 ATMVP(Alternative Temporal Motion Vector Prediction) 모드로 코딩되지 않는, 방법.
15. 비디오 처리 방법으로서, 모션 후보들을 포함하는 하나 이상의 테이블을 유지하는 단계- 각각의 모션 후보는 대응하는 모션 정보와 연관됨 -; 하나 이상의 테이블 중 적어도 하나에서 모션 후보들을 재순서화하는 단계; 및 적어도 하나의 테이블 내의 재순서화된 모션 후보들에 기초하여, 제1 비디오 블록과 제1 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하는, 방법.
16. 조항 15에 있어서, 변환에 기초하여, 하나 이상의 테이블을 업데이트하는 단계를 더 포함하는, 방법.
17. 비디오 처리 방법으로서, 모션 후보들을 포함하는 하나 이상의 테이블을 유지하는 단계- 각각의 모션 후보는 대응하는 모션 정보와 연관됨 -; 테이블들 중 하나 이상에 기초하여, 하나 이상의 테이블을 사용하여 제1 비디오 블록과 제1 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계; 및 제1 비디오 블록의 변환에 기초하여, 추가적인 모션 후보를 테이블에 추가하고 및 테이블에서의 모션 후보들을 재순서화함으로써 하나 이상의 테이블을 업데이트하는 단계를 포함하는, 방법.
18. 조항 15 또는 17에 있어서, 재순서화된 테이블에 기초하여 비디오의 후속 비디오 블록과 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 더 포함하는, 방법.
19. 조항 17에 있어서, 재순서화는 최대 코딩 유닛(LCU), LCU 행, 다수의 LCU 중 적어도 하나를 포함하는 비디오 유닛에 대해 변환을 수행한 이후에 수행되는, 방법.
20. 조항 1 내지 19 중 어느 하나에 있어서, 변환을 수행하는 단계는 제1 비디오 블록으로부터 비트스트림 표현을 생성하는 단계를 포함하는, 방법.
21. 조항 1 내지 19 중 어느 하나에 있어서, 변환을 수행하는 단계는 비트스트림 표현으로부터 제1 비디오 블록을 생성하는 단계를 포함하는, 방법.
22. 조항 1 내지 21 중 어느 하나에 있어서, 모션 후보는 예측 방향, 참조 픽처 인덱스, 모션 벡터 값, 강도 보상 플래그, 아핀 플래그, 모션 벡터 차이 정밀도, 또는 모션 벡터 차이 값 중 적어도 하나를 포함하는 모션 정보와 연관되는, 방법.
23. 조항 1 내지 14 및 16 내지 22 중 어느 하나에 있어서, 하나 이상의 테이블을 업데이트하는 단계는 변환을 수행한 이후에 제1 비디오 블록의 모션 정보에 기초하여 하나 이상의 테이블을 업데이트하는 단계를 포함하는, 방법.
24. 조항 23에 있어서, 업데이트된 테이블들에 기초하여 비디오의 후속 비디오 블록과 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 더 포함하는, 방법.
25. 프로세서 및 명령어들을 갖는 비일시적 메모리를 포함하는 장치로서, 명령어들은 프로세서에 의한 실행 시에, 프로세서로 하여금 조항 1 내지 24 중 어느 하나의 방법을 구현하게 하는, 장치.
26. 비일시적 컴퓨터 판독가능 매체 상에 저장되는 컴퓨터 프로그램 제품으로서, 컴퓨터 프로그램 제품은 조항 1 내지 24 중 어느 하나의 방법을 수행하기 위한 프로그램 코드를 포함하는, 컴퓨터 프로그램 제품.
전술한 설명으로부터, 현재 개시된 기술의 특정한 실시예들이 예시의 목적으로 본 명세서에 설명되었지만, 본 발명의 범위를 벗어나지 않고서 다양한 수정들이 이루어질 수 있다는 것을 알 것이다. 따라서, 현재 개시된 기술은 첨부된 청구항들에 의한 것을 제외하고는 제한되지 않는다.
본 특허 문서에 설명된 발명 대상 및 기능 동작들의 구현들은 본 명세서에 개시된 구조들 및 그들의 구조적 등가물들을 포함하는 다양한 시스템들, 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어로, 또는 이들 중 하나 이상의 조합들로 구현될 수 있다. 본 명세서에 설명된 발명 대상의 구현들은 하나 이상의 컴퓨터 프로그램 제품들, 즉 데이터 처리 장치에 의한 실행을 위해 또는 데이터 처리 장치의 동작을 제어하기 위해 유형의 비일시적 컴퓨터 판독가능 매체 상에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈들로서 구현될 수 있다. 컴퓨터 판독가능 매체는 머신 판독가능 저장 디바이스, 머신 판독가능 저장 기판, 메모리 디바이스, 머신 판독가능 전파 신호에 영향을 주는 물질의 조성, 또는 이들 중 하나 이상의 조합일 수 있다. 용어 "데이터 처리 유닛" 또는 "데이터 처리 장치"는 예로서 프로그래램가능 프로세서, 컴퓨터, 또는 다수의 프로세서들 또는 컴퓨터들을 포함하는, 데이터를 처리하기 위한 모든 장치, 디바이스들, 및 머신들을 포함한다. 장치는 하드웨어에 더하여, 해당 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다.
컴퓨터 프로그램(또한, 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트, 또는 코드라고도 알려져 있음)은 컴파일된 또는 해석된 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있고, 이는 독립형 프로그램(stand-alone program)으로서, 또는 모듈, 컴포넌트, 서브루틴, 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛으로서를 포함하여 임의의 형태로 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템 내의 파일에 반드시 대응하지는 않는다. 프로그램은 다른 프로그램들 또는 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트들)를 보유하는 파일의 일부 내에, 해당 프로그램에 전용된 단일 파일 내에, 또는 다수의 협력하는 파일들(예를 들어, 하나 이상의 모듈들, 서브 프로그램들, 또는 코드의 부분들을 저장하는 파일들) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서, 또는 한 장소에 위치하거나 다수의 위치에 걸쳐 분산되어 통신 네트워크에 의해 상호접속되는 다수의 컴퓨터 상에서 실행되도록 배치될 수 있다.
본 명세서에 설명된 프로세스들 및 로직 흐름들은 입력 데이터에 대해 동작하고 출력을 생성함으로써 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램가능 프로세서에 의해 수행될 수 있다. 프로세스들 및 로직 흐름들은 또한 특수 목적 로직 회로, 예를 들어, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있고, 장치는 또한 그들로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서들은, 예로서, 범용 및 특수 목적 마이크로프로세서 양자 모두, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은 명령어들을 수행하기 위한 프로세서 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어, 자기, 광자기 디스크들, 또는 광 디스크들을 포함하거나, 또는 이들로부터 데이터를 수신하거나 데이터를 이에 전송하거나, 또는 양자 모두를 수행하도록 동작적으로 결합될 것이다. 그러나, 컴퓨터가 이러한 디바이스들을 가질 필요는 없다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 컴퓨터 판독가능 매체는 예로서 반도체 메모리 디바이스들, 예를 들어 EPROM, EEPROM 및 플래시 메모리 디바이스들을 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로에 의해 보완되거나 그에 통합될 수 있다.
본 명세서는, 도면과 함께, 단지 예시적인 것으로 고려되는 것을 의도하며, 여기서, 예시적이라는 것은 일 예를 의미한다. 본 명세서에서 사용되는 바와 같이, 단수 형태들("a", "an" 및 "the")은, 문맥이 명확하게 달리 지시하지 않는 한, 복수 형태들도 포함하는 것을 의도한다. 추가적으로, "또는"의 사용은 문맥이 명확하게 달리 지시하지 않는 한 "및/또는"을 포함하는 것을 의도한다.
본 특허 문서가 많은 세부사항을 포함하고 있지만, 이들은 임의의 발명 또는 청구될 수 있는 것의 범위에 대한 제한으로서 해석되어서는 안되며, 오히려 특정의 발명의 특정 실시예에 특정될 수 있는 특징들에 대한 설명으로서 해석되어야 한다. 개별 실시예들에 관련하여 본 특허 문서에 설명되는 특정 특징들은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예에 관련하여 설명되는 다양한 특징들은 또한 다수의 실시예들에서 개별적으로 또는 임의의 적절한 하위조합으로 구현될 수 있다. 또한, 특징들이 특정 조합들로 작용하는 것으로 앞서 설명되고 심지어 처음에 이와 같이 청구될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우들에서 조합으로부터 삭제될 수 있고, 청구된 조합은 하위조합 또는 하위조합의 변형에 관련될 수 있다.
유사하게, 동작들이 특정 순서로 도면들에 도시되지만, 이것은 바람직한 결과들을 달성하기 위해, 그러한 동작들이 도시된 특정 순서로 또는 순차적인 순서로 수행되거나, 모든 예시된 동작들이 수행되는 것을 요구하는 것으로 이해되어서는 안 된다. 또한, 본 특허 문서에 설명된 실시예들에서의 다양한 시스템 컴포넌트들의 분리는 모든 실시예들에서 이러한 분리가 요구되는 것으로 이해하여서는 안 된다.
몇몇 구현들 및 예들만이 설명되고, 본 특허 문서에서 설명되고 예시된 것에 기초하여 다른 구현들, 향상들 및 변형들이 이루어질 수 있다.

Claims (26)

  1. 비디오 처리 방법으로서,
    테이블을 유지하는 단계- 각각의 테이블은 모션 후보들의 세트를 포함하고, 각각의 모션 후보는 대응하는 모션 정보와 연관됨 -;
    상기 테이블들에 기초하여 제1 비디오 블록과 상기 제1 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계; 및
    상기 변환을 수행한 이후에, 업데이트 규칙에 기초하여 0개 이상의 테이블을 업데이트하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 업데이트 규칙은 상기 비디오의 픽처 또는 슬라이스 또는 타일 경계에 위치하는 비디오 블록들에 대한 테이블들의 업데이트를 허용하지 않는, 방법.
  3. 비디오 처리 방법으로서,
    테이블을 유지하는 단계- 각각의 테이블은 모션 후보들의 세트를 포함하고, 각각의 모션 후보는 대응하는 모션 정보와 연관됨 -;
    상기 테이블들에 기초하여 제1 비디오 블록과 상기 제1 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계; 및
    상기 변환을 수행한 이후에, 업데이트 종료 기준이 충족될 때까지 비디오 내의 하나 이상의 비디오 영역에 기초하여 하나 이상의 테이블을 업데이트하는 단계를 포함하는, 방법.
  4. 제1항 또는 제3항에 있어서, 테이블은 슬라이스, 타일, 최대 코딩 유닛(LCU) 행, 또는 동일한 시간 레이어 인덱스를 갖는 슬라이스들 내에서만 업데이트되는, 방법.
  5. 제1항 또는 제3항에 있어서, 테이블은, S개의 비디오 영역에 대한 상기 변환을 수행한 이후에 또는 특정 크기의 비디오 영역에 대한 상기 변환을 수행한 이후에 업데이트되고, 여기서 S는 정수인, 방법.
  6. 제3항에 있어서, 상기 업데이트 종료 기준은 업데이트되고 있는 테이블과 연관된 카운터가 최대 허용 수에 도달할 때 충족되는, 방법.
  7. 제3항에 있어서, 상기 업데이트 종료 기준은 업데이트되고 있는 테이블과 연관된 카운터가 미리 정의된 값에 도달할 때 충족되는, 방법.
  8. 제7항에 있어서, 상기 미리 정의된 값은 비디오 파라미터 세트(VPS), 시퀀스 파라미터 세트(SPS), 픽처 파라미터 세트(PPS), 슬라이스 헤더, 타일 헤더, 코딩 트리 유닛(CTU), 코딩 트리 블록(CTB), 코딩 유닛(CU) 또는 예측 유닛(PU) 또는 다수의 CTU, 다수의 CTB, 다수의 CU 또는 다수의 PU를 커버하는 비디오 영역에서 시그널링되는, 방법.
  9. 제1항 또는 제3항에 있어서, 상기 업데이트 규칙은 상기 제1 비디오 블록의 좌측-상단 좌표(x, y)가 상기 업데이트 규칙에서 정의된 특정 조건을 만족할 때 테이블을 업데이트하는, 방법.
  10. 제9항에 있어서, 상기 테이블은 (x & M==0) && (y&M==0)일 때 업데이트되고, 여기서 M은 2, 4, 8, 16, 32 또는 64인, 방법.
  11. 제1항 또는 제3항에 있어서, 상기 업데이트 규칙은 S개의 비디오 블록에 대한 상기 변환을 수행한 이후에 테이블을 업데이트하며, S는 1 이상인 정수인, 방법.
  12. 제11항에 있어서, 상기 S개의 비디오 블록은 인터-코딩된 블록인, 방법.
  13. 제11항에 있어서, 상기 S개의 비디오 블록은 서브 블록 기반 모션 예측 또는 서브 블록 기반 모션 보상 방법으로 코딩되지 않는, 방법.
  14. 제11항에 있어서, 상기 S개의 비디오 블록은 아핀 모드 또는 ATMVP(Alternative Temporal Motion Vector Prediction) 모드로 코딩되지 않는, 방법.
  15. 비디오 처리 방법으로서,
    모션 후보들을 포함하는 하나 이상의 테이블을 유지하는 단계- 각각의 모션 후보는 대응하는 모션 정보와 연관됨 -;
    하나 이상의 테이블 중 적어도 하나에서 모션 후보들을 재순서화하는 단계; 및
    적어도 하나의 테이블 내의 재순서화된 모션 후보들에 기초하여, 제1 비디오 블록과 상기 제1 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하는, 방법.
  16. 제15항에 있어서, 상기 변환에 기초하여, 하나 이상의 테이블을 업데이트하는 단계를 더 포함하는, 방법.
  17. 비디오 처리 방법으로서,
    모션 후보들을 포함하는 하나 이상의 테이블을 유지하는 단계- 각각의 모션 후보는 대응하는 모션 정보와 연관됨 -;
    상기 테이블들 중 하나 이상에 기초하여, 하나 이상의 테이블을 사용하여 제1 비디오 블록과 상기 제1 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계; 및
    상기 제1 비디오 블록의 상기 변환에 기초하여, 추가적인 모션 후보를 상기 테이블에 추가하고 및 상기 테이블에서의 상기 모션 후보들을 재순서화함으로써 하나 이상의 테이블을 업데이트하는 단계를 포함하는, 방법.
  18. 제15항 또는 제17항에 있어서,
    상기 재순서화된 테이블에 기초하여 상기 비디오의 후속 비디오 블록과 상기 비디오의 상기 비트스트림 표현 사이의 변환을 수행하는 단계를 더 포함하는, 방법.
  19. 제17항에 있어서, 상기 재순서화는 최대 코딩 유닛(LCU), LCU 행, 다수의 LCU 중 적어도 하나를 포함하는 비디오 유닛에 대해 상기 변환을 수행한 이후에 수행되는, 방법.
  20. 제1항 내지 제19항 중 어느 한 항에 있어서, 상기 변환을 수행하는 단계는 상기 제1 비디오 블록으로부터 상기 비트스트림 표현을 생성하는 단계를 포함하는, 방법.
  21. 제1항 내지 제19항 중 어느 한 항에 있어서, 상기 변환을 수행하는 단계는 상기 비트스트림 표현으로부터 상기 제1 비디오 블록을 생성하는 단계를 포함하는, 방법.
  22. 제1항 내지 제21항 중 어느 한 항에 있어서, 모션 후보는 예측 방향, 참조 픽처 인덱스, 모션 벡터 값, 강도 보상 플래그, 아핀 플래그, 모션 벡터 차이 정밀도, 또는 모션 벡터 차이 값 중 적어도 하나를 포함하는 모션 정보와 연관되는, 방법.
  23. 제1항 내지 제14항 및 제16항 내지 제22항 중 어느 한 항에 있어서, 하나 이상의 테이블을 업데이트하는 상기 단계는 상기 변환을 수행한 이후에 상기 제1 비디오 블록의 상기 모션 정보에 기초하여 하나 이상의 테이블을 업데이트하는 단계를 포함하는, 방법.
  24. 제23항에 있어서,
    상기 업데이트된 테이블들에 기초하여 비디오의 후속 비디오 블록과 상기 비디오의 상기 비트스트림 표현 사이의 변환을 수행하는 단계를 더 포함하는, 방법.
  25. 프로세서 및 명령어들을 갖는 비일시적 메모리를 포함하는 장치로서, 상기 명령어들은 상기 프로세서에 의한 실행 시에 상기 프로세서로 하여금 제1항 내지 제24항 중 어느 하나 이상에 기재된 방법을 구현하게 하는, 장치.
  26. 비일시적 컴퓨터 판독가능 매체 상에 저장되는 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 프로그램 제품은 제1항 내지 제24항 중 어느 하나 이상에 기재된 방법을 수행하기 위한 프로그램 코드를 포함하는, 컴퓨터 프로그램 제품.
KR1020207037770A 2018-06-29 2019-07-01 Lut들을 업데이트하기 위한 조건들 KR20210025536A (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
CN2018093663 2018-06-29
CNPCT/CN2018/093663 2018-06-29
CN2018093987 2018-07-02
CNPCT/CN2018/093987 2018-07-02
CN2018094929 2018-07-07
CNPCT/CN2018/094929 2018-07-07
CNPCT/CN2018/101220 2018-08-18
CN2018101220 2018-08-18
PCT/IB2019/055593 WO2020003283A1 (en) 2018-06-29 2019-07-01 Conditions for updating luts

Publications (1)

Publication Number Publication Date
KR20210025536A true KR20210025536A (ko) 2021-03-09

Family

ID=67303487

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207037770A KR20210025536A (ko) 2018-06-29 2019-07-01 Lut들을 업데이트하기 위한 조건들

Country Status (7)

Country Link
US (2) US11159817B2 (ko)
EP (1) EP3794824A1 (ko)
JP (1) JP7460617B2 (ko)
KR (1) KR20210025536A (ko)
CN (2) CN110662052B (ko)
TW (1) TWI744662B (ko)
WO (1) WO2020003283A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI719523B (zh) 2018-06-29 2021-02-21 大陸商北京字節跳動網絡技術有限公司 哪個查找表需要更新或不更新
CA3101730A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Partial/full pruning when adding a hmvp candidate to merge/amvp
EP4325862A3 (en) 2018-06-29 2024-03-06 Beijing Bytedance Network Technology Co., Ltd. Checking order of motion candidates in lut
AU2019293670B2 (en) 2018-06-29 2023-06-08 Beijing Bytedance Network Technology Co., Ltd. Update of look up table: FIFO, constrained FIFO
KR102641872B1 (ko) 2018-06-29 2024-02-29 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut와 amvp 사이의 상호작용
GB2588531B (en) 2018-06-29 2023-02-01 Beijing Bytedance Network Tech Co Ltd Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks
TWI728390B (zh) 2018-06-29 2021-05-21 大陸商北京字節跳動網絡技術有限公司 查找表尺寸
CN110677662B (zh) 2018-07-02 2022-09-02 北京字节跳动网络技术有限公司 Hmvp和非相邻运动的组合使用方法
BR112021000004A8 (pt) * 2018-07-06 2023-02-07 Mediatek Inc Informações de movimento herdadas para decodificar uma unidade de codificação atual em um sistema de codificação de vídeo
CN111064959B (zh) 2018-09-12 2023-09-01 北京字节跳动网络技术有限公司 要检查多少个hmvp候选
US11178396B2 (en) 2018-11-14 2021-11-16 Tencent America LLC Constrained intra prediction and unified most probable mode list generation
CN113228676A (zh) * 2018-11-29 2021-08-06 交互数字Vc控股公司 在合并列表中运动矢量预测量候选排序
CN113170182B (zh) 2018-12-03 2024-01-26 北京字节跳动网络技术有限公司 不同预测模式下的修剪方法
GB2580084B (en) * 2018-12-20 2022-12-28 Canon Kk Video coding and decoding
JP2021513795A (ja) * 2019-01-01 2021-05-27 エルジー エレクトロニクス インコーポレイティド 履歴ベース動きベクトル予測に基づいてビデオ信号を処理するための方法及び装置
JP7275286B2 (ja) 2019-01-10 2023-05-17 北京字節跳動網絡技術有限公司 Lut更新の起動
WO2020143824A1 (en) 2019-01-13 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and shared merge list
CN113302937A (zh) 2019-01-16 2021-08-24 北京字节跳动网络技术有限公司 运动候选推导
CN111698506B (zh) * 2019-03-11 2022-04-26 杭州海康威视数字技术股份有限公司 运动信息候选者列表构建方法、三角预测解码方法及装置
CN113615193A (zh) 2019-03-22 2021-11-05 北京字节跳动网络技术有限公司 Merge列表构建和其他工具之间的交互
AU2020262284B2 (en) 2019-04-24 2023-09-21 Bytedance Inc. Constraints on quantized residual differential pulse code modulation representation of coded video
KR20220002292A (ko) * 2019-05-01 2022-01-06 바이트댄스 아이엔씨 양자화된 잔차 차동 펄스 코드 변조 코딩을 사용하는 인트라 코딩된 비디오
EP3948663A4 (en) 2019-05-02 2022-06-08 ByteDance Inc. CODING MODE BASED ON A CODING TREE STRUCTURE TYPE
CN113365077B (zh) * 2020-03-04 2023-02-21 Oppo广东移动通信有限公司 帧间预测方法、编码器、解码器、计算机可读存储介质
US11595694B2 (en) * 2020-04-01 2023-02-28 Tencent America LLC Method and apparatus for video coding
WO2022214075A1 (en) * 2021-04-10 2022-10-13 Beijing Bytedance Network Technology Co., Ltd. Method, device, and medium for video processing
WO2023072283A1 (en) * 2021-10-29 2023-05-04 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing

Family Cites Families (194)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100545892C (zh) 2003-12-18 2009-09-30 汤姆森特许公司 生成视频图像场中的查找表的方法和装置
US20070025444A1 (en) 2005-07-28 2007-02-01 Shigeyuki Okada Coding Method
CN100539693C (zh) 2005-08-30 2009-09-09 深圳清华大学研究院 快速运动估计方法
KR100856411B1 (ko) 2006-12-01 2008-09-04 삼성전자주식회사 조도 보상 방법 및 그 장치와 그 방법을 기록한 컴퓨터로 읽을 수 있는 기록매체
US8228990B2 (en) 2008-01-16 2012-07-24 Sony Corporation Template matching scheme using multiple predictors as candidates for intra-prediction
US8855196B2 (en) 2008-01-22 2014-10-07 Dolby Laboratories Licensing Corporation Adaptive motion information cost estimation with dynamic look-up table updating
EP3809703B1 (en) 2009-06-18 2023-09-13 Kabushiki Kaisha Toshiba Video encoding
KR20110008653A (ko) * 2009-07-20 2011-01-27 삼성전자주식회사 움직임 벡터 예측 방법과 이를 이용한 영상 부호화/복호화 장치 및 방법
ES2747977T3 (es) 2009-10-01 2020-03-12 Sk Telecom Co Ltd Procedimiento y aparato para codificación / decodificación de imagen utilizando macrobloques de tamaño variable
KR101600818B1 (ko) 2009-11-06 2016-03-09 삼성디스플레이 주식회사 3차원 광학 모듈 및 이를 포함하는 디스플레이 장치
BR112012019560B1 (pt) * 2010-02-05 2021-08-24 Telefonaktiebolaget Lm Ericsson Método para gerenciar candidatos a vetor de movimento predito, e, aparelhos de codificação e de decodificação de vídeo
WO2011146451A1 (en) 2010-05-20 2011-11-24 Thomson Licensing Methods and apparatus for adaptive motion vector candidate ordering for video encoding and decoding
KR20120016991A (ko) 2010-08-17 2012-02-27 오수미 인터 프리딕션 방법
US10104391B2 (en) 2010-10-01 2018-10-16 Dolby International Ab System for nested entropy encoding
US8711940B2 (en) 2010-11-29 2014-04-29 Mediatek Inc. Method and apparatus of motion vector prediction with extended motion vector predictor
WO2012074344A2 (ko) 2010-12-03 2012-06-07 엘지전자 주식회사 움직임 정보 리스트 인덱싱 방법 및 이러한 방법을 사용하는 장치
CN107105280B (zh) 2010-12-14 2020-01-03 M&K控股株式会社 用于编码运动画面的设备
US9049455B2 (en) 2010-12-28 2015-06-02 Panasonic Intellectual Property Corporation Of America Image coding method of coding a current picture with prediction using one or both of a first reference picture list including a first current reference picture for a current block and a second reference picture list including a second current reference picture for the current block
GB2492778A (en) 2011-07-11 2013-01-16 Canon Kk Motion compensated image coding by combining motion information predictors
US9319716B2 (en) 2011-01-27 2016-04-19 Qualcomm Incorporated Performing motion vector prediction for video coding
KR102109803B1 (ko) 2011-02-09 2020-05-12 엘지전자 주식회사 움직임 정보 저장 방법 및 이를 이용한 시간적 움직임 벡터 예측자 유도 방법
EP2490448A1 (de) 2011-02-18 2012-08-22 Siemens Aktiengesellschaft Kodierverfahren und Bildkodiervorrichtung zur Kompression einer Bildsequenz
US9066110B2 (en) 2011-03-08 2015-06-23 Texas Instruments Incorporated Parsing friendly and error resilient merge flag coding in video coding
GB2501835B (en) 2011-03-09 2014-09-03 Canon Kk Video encoding and decoding
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
EP2717573B1 (en) 2011-05-24 2018-03-28 Velos Media International Limited Image encoding method, image encoding apparatus, image decoding method, image decoding apparatus, and image encoding/decoding apparatus
DK2717574T3 (da) 2011-05-31 2021-03-15 Jvc Kenwood Corp Apparat til dekodning af bevægelige billeder (film), fremgangsmåde til dekodning af bevægelige billeder og program til dekodning af bevægelige billeder
MX2013012209A (es) * 2011-05-31 2013-11-01 Panasonic Corp Metodo de codificacion de video, aparato de codificacion de video, metodo de decodificacion de video, aparato de decodificacion de video y aparato de codificacion/decodificacion de video.
US9866859B2 (en) 2011-06-14 2018-01-09 Texas Instruments Incorporated Inter-prediction candidate index coding independent of inter-prediction candidate list construction in video coding
JP5786478B2 (ja) 2011-06-15 2015-09-30 富士通株式会社 動画像復号装置、動画像復号方法、及び動画像復号プログラム
WO2012173315A1 (ko) 2011-06-17 2012-12-20 엘지전자 주식회사 인트라 예측 모드 부호화/복호화 방법 및 장치
US9131239B2 (en) 2011-06-20 2015-09-08 Qualcomm Incorporated Unified merge mode and adaptive motion vector prediction mode candidates selection
PL3419290T3 (pl) 2011-06-30 2021-05-31 JVC Kenwood Corporation Urządzenie do kodowania obrazu, sposób kodowania obrazu, program do kodowania obrazu, urządzenie do dekodowania obrazu, sposób dekodowania obrazu i program do dekodowania obrazu
MY181718A (en) 2011-06-30 2021-01-05 Sun Patent Trust Image decoding method, image encoding method, image decoding device, image encoding device, and image encoding/decoding device
CN103636218B (zh) 2011-06-30 2017-07-28 Jvc建伍株式会社 图像解码装置和图像解码方法
CA2843560C (en) 2011-08-03 2020-09-22 Panasonic Corporation Video encoding method, video encoding apparatus, video decoding method, video decoding apparatus, and video encoding/decoding apparatus
GB2493755B (en) 2011-08-17 2016-10-19 Canon Kk Method and device for encoding a sequence of images and method and device for decoding a sequence of images
MX365013B (es) 2011-08-29 2019-05-20 Ibex Pt Holdings Co Ltd Metodo para generar un bloque de prediccion en modo de prediccion de vector de movimiento avanzada (amvp).
PL2755389T3 (pl) 2011-09-09 2019-06-28 Lg Electronics Inc. Sposób predykcji inter i urządzenie do niego
US20130070855A1 (en) 2011-09-17 2013-03-21 Qualcomm Incorporated Hybrid motion vector coding modes for video coding
MY164898A (en) 2011-09-29 2018-01-30 Sharp Kk Image decoding device, image decoding method, and image encoding device
US20140241434A1 (en) 2011-10-11 2014-08-28 Mediatek Inc Method and apparatus of motion and disparity vector derivation for 3d video coding and hevc
CN107959857B (zh) 2011-10-18 2022-03-01 株式会社Kt 视频信号解码方法
US9838692B2 (en) 2011-10-18 2017-12-05 Qualcomm Incorporated Detecting availabilities of neighboring video units for video coding
AU2012325419B2 (en) 2011-10-19 2015-11-05 Hfi Innovation Inc. Method and apparatus for derivation of motion vector predictor candidate set
US9462298B2 (en) 2011-10-21 2016-10-04 Qualcomm Incorporated Loop filtering around slice boundaries or tile boundaries in video coding
WO2013061549A1 (ja) 2011-10-28 2013-05-02 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置および画像復号装置
US9571833B2 (en) 2011-11-04 2017-02-14 Nokia Technologies Oy Method for coding and an apparatus
US20130114717A1 (en) 2011-11-07 2013-05-09 Qualcomm Incorporated Generating additional merge candidates
KR20130050406A (ko) 2011-11-07 2013-05-16 오수미 머지 모드에서의 움직임 정보 생성 방법
KR20130050407A (ko) 2011-11-07 2013-05-16 오수미 인터 모드에서의 움직임 정보 생성 방법
KR102641723B1 (ko) 2011-11-11 2024-02-29 지이 비디오 컴프레션, 엘엘씨 깊이-맵 추정 및 업데이트를 사용한 효율적인 멀티-뷰 코딩
US9762904B2 (en) 2011-12-22 2017-09-12 Qualcomm Incorporated Performing motion vector prediction for video coding
RU2623796C9 (ru) 2011-12-28 2017-11-15 ДжейВиСи КЕНВУД КОРПОРЕЙШН Устройство кодирования движущегося изображения, способ кодирования движущегося изображения и программа кодирования движущегося изображения, а также устройство декодирования движущегося изображения, способ декодирования движущегося изображения и программа декодирования движущегося изображения
US20130188715A1 (en) 2012-01-09 2013-07-25 Qualcomm Incorporated Device and methods for merge list reordering in video coding
RS61219B1 (sr) * 2012-01-19 2021-01-29 Electronics & Telecommunications Res Inst Postupak za kodiranje/dekodiranje slike
TWI775701B (zh) 2012-01-20 2022-08-21 美商Ge影像壓縮有限公司 允許平行處理之編碼器、解碼器、傳送解多工器、系統、儲存媒體、方法及電腦程式
PL3512197T3 (pl) 2012-01-20 2020-12-28 Dolby Laboratories Licensing Corporation Sposób odwzorowywania trybu predykcji wewnątrzramkowej
US9544592B2 (en) 2012-02-10 2017-01-10 Texas Instruments Incorporated Methods and systems for encoding pictures associated with video data
US9445076B2 (en) 2012-03-14 2016-09-13 Qualcomm Incorporated Disparity vector construction method for 3D-HEVC
US10200709B2 (en) 2012-03-16 2019-02-05 Qualcomm Incorporated High-level syntax extensions for high efficiency video coding
US9503720B2 (en) 2012-03-16 2016-11-22 Qualcomm Incorporated Motion vector coding and bi-prediction in HEVC and its extensions
WO2013140807A1 (ja) 2012-03-23 2013-09-26 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム、並びに動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム
US9264706B2 (en) 2012-04-11 2016-02-16 Qualcomm Incorporated Bypass bins for reference index coding in video coding
US9325991B2 (en) 2012-04-11 2016-04-26 Qualcomm Incorporated Motion vector rounding
US20130272412A1 (en) 2012-04-12 2013-10-17 Qualcomm Incorporated Common motion information candidate list construction process
SI3833022T1 (sl) 2012-04-12 2022-06-30 Jvckenwood Corporation Konstruiranje seznama kandidatov za spajanje
US9338451B2 (en) 2012-04-12 2016-05-10 Qualcomm Incorporated Common spatial candidate blocks for parallel motion estimation
US10341677B2 (en) 2012-05-10 2019-07-02 Lg Electronics Inc. Method and apparatus for processing video signals using inter-view inter-prediction
US11317101B2 (en) * 2012-06-12 2022-04-26 Google Inc. Inter frame candidate selection for a video encoder
US9258562B2 (en) 2012-06-13 2016-02-09 Qualcomm Incorporated Derivation of depth map estimate
US20130336406A1 (en) 2012-06-14 2013-12-19 Qualcomm Incorporated Redundancy removal for merge/skip mode motion information candidate list construction
US20130343459A1 (en) 2012-06-22 2013-12-26 Nokia Corporation Method and apparatus for video coding
MY169873A (en) 2012-07-02 2019-05-28 Samsung Electronics Co Ltd Method and apparatus for predicting motion vector for coding video or decoding video
EP2898696B1 (en) 2012-09-19 2022-09-07 Qualcomm Incorporated Selection of pictures for disparity vector derivation
WO2014049196A1 (en) 2012-09-27 2014-04-03 Nokia Corporation Method and techniqal equipment for scalable video coding
CN104704835B (zh) 2012-10-03 2017-11-24 联发科技股份有限公司 视频编码中运动信息管理的装置与方法
CN102883163B (zh) 2012-10-08 2014-05-28 华为技术有限公司 用于运动矢量预测的运动矢量列表建立的方法、装置
US9854234B2 (en) 2012-10-25 2017-12-26 Qualcomm Incorporated Reference picture status for video coding
US9357214B2 (en) 2012-12-07 2016-05-31 Qualcomm Incorporated Advanced merge/skip mode and advanced motion vector prediction (AMVP) mode for 3D video
US9544566B2 (en) 2012-12-14 2017-01-10 Qualcomm Incorporated Disparity vector derivation
US10021414B2 (en) 2013-01-04 2018-07-10 Qualcomm Incorporated Bitstream constraints and motion vector restriction for inter-view or inter-layer reference pictures
EP3490259B1 (en) 2013-04-02 2021-10-13 InterDigital Madison Patent Holdings, SAS Enhanced temporal motion vector prediction for scalable video coding
CN104125463A (zh) 2013-04-26 2014-10-29 华为技术有限公司 一种图像预测编码方法及图像编码器
US9667990B2 (en) 2013-05-31 2017-05-30 Qualcomm Incorporated Parallel derived disparity vector for 3D video coding with neighbor-based disparity vector derivation
KR101854003B1 (ko) * 2013-07-02 2018-06-14 경희대학교 산학협력단 복수의 레이어를 포함하는 영상의 부호화 및 복호화 방법
WO2015006920A1 (en) 2013-07-16 2015-01-22 Mediatek Singapore Pte. Ltd. An adaptive disparity vector derivation method
US9955174B2 (en) 2013-09-20 2018-04-24 Vid Scale, Inc. Systems and methods for providing 3D look-up table coding for color gamut scalability
GB2519514A (en) 2013-10-11 2015-04-29 Canon Kk Method and apparatus for displacement vector component prediction in video coding and decoding
CN105659604B (zh) 2013-10-18 2018-12-21 Lg电子株式会社 在多视图视频编译中预测视图合成的方法和用于通过使用其构建合并候选列表的方法
MX360926B (es) * 2014-01-03 2018-11-22 Microsoft Technology Licensing Llc Prediccion de vector de bloque en codificacion/descodificacion de video e imagen.
KR101847899B1 (ko) 2014-02-12 2018-04-12 주식회사 칩스앤미디어 동영상 처리 방법 및 장치
US10368092B2 (en) 2014-03-04 2019-07-30 Microsoft Technology Licensing, Llc Encoder-side decisions for block flipping and skip mode in intra block copy prediction
KR102329126B1 (ko) 2014-03-14 2021-11-19 삼성전자주식회사 인터 레이어 비디오의 복호화 및 부호화를 위한 머지 후보 리스트 구성 방법 및 장치
US10554967B2 (en) 2014-03-21 2020-02-04 Futurewei Technologies, Inc. Illumination compensation (IC) refinement based on positional pairings among pixels
CN110099281B (zh) 2014-05-06 2021-06-25 寰发股份有限公司 用于块内复制模式编码的块向量预测方法
US10382749B2 (en) 2014-05-23 2019-08-13 Qualcomm Incorporated Coding run values based on palette index in palette-based video coding
US10021418B2 (en) 2014-06-19 2018-07-10 Hfi Innovation Inc. Method and apparatus of candidate generation for single sample mode in video coding
CN105706450B (zh) 2014-06-23 2019-07-16 微软技术许可有限责任公司 根据基于散列的块匹配的结果的编码器决定
CN104079944B (zh) * 2014-06-30 2017-12-01 华为技术有限公司 视频编码的运动矢量列表构建方法和系统
WO2016008161A1 (en) 2014-07-18 2016-01-21 Mediatek Singapore Pte. Ltd. Temporal derived bi-directional motion vector predictor
WO2016008157A1 (en) 2014-07-18 2016-01-21 Mediatek Singapore Pte. Ltd. Methods for motion compensation using high order motion model
KR102276854B1 (ko) 2014-07-31 2021-07-13 삼성전자주식회사 인루프 필터 파라미터 예측을 사용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
CN107079161B (zh) 2014-09-01 2020-11-20 寰发股份有限公司 用于屏幕内容以及视频编码的帧内图片块复制的方法
KR102008592B1 (ko) 2014-09-15 2019-08-07 에이치에프아이 이노베이션 인크. 비디오 코딩에서의 인트라 블록 복사를 위한 디블로킹 방법
KR20170041220A (ko) 2014-10-09 2017-04-14 에이치에프아이 이노베이션 인크. 뷰 합성 예측을 포함하는 3d 또는 다중뷰 비디오 코딩 방법
JP6837965B2 (ja) 2014-10-31 2021-03-03 サムスン エレクトロニクス カンパニー リミテッド 符号化装置及び復号装置
US10182240B2 (en) 2014-11-18 2019-01-15 Mediatek Inc. Method of bi-prediction video coding based on motion vectors from uni-prediction and merge candidate
CN107113446A (zh) 2014-12-09 2017-08-29 联发科技股份有限公司 视频编码中的运动矢量预测子或合并候选的推导方法
WO2016090568A1 (en) 2014-12-10 2016-06-16 Mediatek Singapore Pte. Ltd. Binary tree block partitioning structure
US11477477B2 (en) 2015-01-26 2022-10-18 Qualcomm Incorporated Sub-prediction unit based advanced temporal motion vector prediction
US10070130B2 (en) 2015-01-30 2018-09-04 Qualcomm Incorporated Flexible partitioning of prediction units
CN104915966B (zh) 2015-05-08 2018-02-09 上海交通大学 基于卡尔曼滤波的帧率上变换运动估计方法及系统
US10200713B2 (en) 2015-05-11 2019-02-05 Qualcomm Incorporated Search region determination for inter coding within a particular picture of video data
US10356416B2 (en) 2015-06-09 2019-07-16 Qualcomm Incorporated Systems and methods of determining illumination compensation status for video coding
US10887597B2 (en) 2015-06-09 2021-01-05 Qualcomm Incorporated Systems and methods of determining illumination compensation parameters for video coding
US10271064B2 (en) 2015-06-11 2019-04-23 Qualcomm Incorporated Sub-prediction unit motion vector prediction using spatial and/or temporal motion information
US9918102B1 (en) 2015-06-22 2018-03-13 Ambarella, Inc. Inter-prediction candidate selection in a mode decision
WO2017043734A1 (ko) 2015-09-07 2017-03-16 엘지전자(주) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US10812822B2 (en) 2015-10-02 2020-10-20 Qualcomm Incorporated Intra block copy merge mode and padding of unavailable IBC reference region
EP4192009A1 (en) 2015-11-19 2023-06-07 LX Semicon Co., Ltd. Method and apparatus for encoding/decoding intra prediction mode
CN105681807B (zh) 2016-01-06 2018-11-02 福州瑞芯微电子股份有限公司 一种基于h264协议的分像素运动矢量计算方法和装置
JP6495835B2 (ja) 2016-01-06 2019-04-03 日本電信電話株式会社 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法、映像符号化プログラム及び映像復号プログラム
WO2017142448A1 (en) 2016-02-17 2017-08-24 Telefonaktiebolaget Lm Ericsson (Publ) Methods and devices for encoding and decoding video pictures
US11259047B2 (en) 2016-04-06 2022-02-22 Kt Corporation Method and apparatus for processing video signal
KR20170115969A (ko) 2016-04-08 2017-10-18 한국전자통신연구원 움직임 예측 정보를 유도하는 방법 및 장치
CN114189681A (zh) 2016-04-26 2022-03-15 英迪股份有限公司 图像解码方法、图像编码方法以及传输比特流的方法
US10142652B2 (en) 2016-05-05 2018-11-27 Google Llc Entropy coding motion vector residuals obtained using reference motion vectors
US10547854B2 (en) 2016-05-13 2020-01-28 Qualcomm Incorporated Neighbor based signaling of intra prediction modes
US10560718B2 (en) 2016-05-13 2020-02-11 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
US10419755B2 (en) 2016-05-16 2019-09-17 Qualcomm Incorporated Confusion of multiple filters in adaptive loop filtering in video coding
US10560712B2 (en) * 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
CN116567261A (zh) 2016-05-24 2023-08-08 韩国电子通信研究院 图像编码/解码方法和用于所述方法的记录介质
WO2018012851A1 (ko) 2016-07-12 2018-01-18 한국전자통신연구원 영상 부호화/복호화 방법 및 이를 위한 기록 매체
US11509930B2 (en) 2016-07-12 2022-11-22 Electronics And Telecommunications Research Institute Image encoding/decoding method and recording medium therefor
US11638027B2 (en) 2016-08-08 2023-04-25 Hfi Innovation, Inc. Pattern-based motion vector derivation for video coding
US10721489B2 (en) 2016-09-06 2020-07-21 Qualcomm Incorporated Geometry-based priority for the construction of candidate lists
WO2018061522A1 (ja) 2016-09-27 2018-04-05 シャープ株式会社 動きベクトル生成装置、予測画像生成装置、動画像復号装置、および動画像符号化装置
EP3509304B1 (en) 2016-09-30 2023-11-01 Huawei Technologies Co., Ltd. Method for image decoding and device for image coding and decoding for inter-frame prediction
CN109691098A (zh) 2016-09-30 2019-04-26 华为技术有限公司 视频编码方法、解码方法及终端
US10448010B2 (en) 2016-10-05 2019-10-15 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding
KR102283517B1 (ko) 2016-11-28 2021-07-29 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
CN116527886A (zh) 2016-12-05 2023-08-01 Lg电子株式会社 解码设备、编码设备以及数据发送设备
WO2018117706A1 (ko) 2016-12-22 2018-06-28 주식회사 케이티 비디오 신호 처리 방법 및 장치
KR20180074000A (ko) 2016-12-23 2018-07-03 삼성전자주식회사 비디오 디코딩 방법, 이를 수행하는 비디오 디코더, 비디오 인코딩 방법, 및 이를 수행하는 비디오 인코더
CN106851046A (zh) 2016-12-28 2017-06-13 中国科学院自动化研究所 视频动态超分辨率处理方法及系统
US10681370B2 (en) 2016-12-29 2020-06-09 Qualcomm Incorporated Motion vector generation for affine motion model for video coding
US20180192071A1 (en) 2017-01-05 2018-07-05 Mediatek Inc. Decoder-side motion vector restoration for video coding
US10595035B2 (en) 2017-03-22 2020-03-17 Qualcomm Incorporated Constraining motion vector information derived by decoder-side motion vector derivation
US11102509B2 (en) 2017-04-28 2021-08-24 Electronics And Telecommunications Research Institute Image encoding/decoding method and device, and recording medium storing bit stream
US10742975B2 (en) 2017-05-09 2020-08-11 Futurewei Technologies, Inc. Intra-prediction with multiple reference lines
US20180332312A1 (en) 2017-05-09 2018-11-15 Futurewei Technologies, Inc. Devices And Methods For Video Processing
US10523934B2 (en) 2017-05-31 2019-12-31 Mediatek Inc. Split based motion vector operation reduction
EP3410717A1 (en) 2017-05-31 2018-12-05 Thomson Licensing Methods and apparatus for candidate list pruning
US11616976B2 (en) 2017-06-09 2023-03-28 Electronics And Telecommunications Research Institute Video encoding/decoding method and device, and recording medium storing bit stream
CN109089119B (zh) 2017-06-13 2021-08-13 浙江大学 一种运动矢量预测的方法及设备
US10602180B2 (en) 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
US10757420B2 (en) 2017-06-23 2020-08-25 Qualcomm Incorporated Combination of inter-prediction and intra-prediction in video coding
US10911769B2 (en) 2017-06-23 2021-02-02 Qualcomm Incorporated Motion-based priority for the construction of candidate lists in video coding
EP3422716A1 (en) 2017-06-26 2019-01-02 Thomson Licensing Method and apparatus for most probable mode (mpm) sorting and signaling in video encoding and decoding
US10687077B2 (en) 2017-06-26 2020-06-16 Qualcomm Incorporated Motion information propagation in video coding
CN107295348A (zh) 2017-07-31 2017-10-24 南通海鑫信息科技有限公司 一种图像编码方法
US10284869B2 (en) * 2017-09-28 2019-05-07 Google Llc Constrained motion field estimation for hardware efficiency
US11082716B2 (en) 2017-10-10 2021-08-03 Electronics And Telecommunications Research Institute Method and device using inter prediction information
KR20190046704A (ko) 2017-10-26 2019-05-07 한국전자통신연구원 비대칭 서브 블록 기반 영상 부호화/복호화 방법 및 장치
KR102387363B1 (ko) 2017-11-30 2022-04-18 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측에 따른 영상 디코딩 방법 및 장치
US10652571B2 (en) 2018-01-25 2020-05-12 Qualcomm Incorporated Advanced motion vector prediction speedups for video coding
WO2019194440A1 (ko) 2018-04-02 2019-10-10 엘지전자 주식회사 인트라 예측 모드에 대한 룩업 테이블을 이용한 영상 코딩 방법 및 그 장치
US10986343B2 (en) * 2018-04-15 2021-04-20 Arris Enterprises Llc Reducing overhead for multiple-hypothesis temporal prediction
US11895291B2 (en) 2018-05-23 2024-02-06 Hfi Innovation Inc. Method and apparatus of video coding using bi-directional CU weight
TWI728390B (zh) 2018-06-29 2021-05-21 大陸商北京字節跳動網絡技術有限公司 查找表尺寸
AU2019293670B2 (en) 2018-06-29 2023-06-08 Beijing Bytedance Network Technology Co., Ltd. Update of look up table: FIFO, constrained FIFO
EP4325862A3 (en) 2018-06-29 2024-03-06 Beijing Bytedance Network Technology Co., Ltd. Checking order of motion candidates in lut
GB2588531B (en) 2018-06-29 2023-02-01 Beijing Bytedance Network Tech Co Ltd Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks
TWI719523B (zh) 2018-06-29 2021-02-21 大陸商北京字節跳動網絡技術有限公司 哪個查找表需要更新或不更新
CA3101730A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Partial/full pruning when adding a hmvp candidate to merge/amvp
TWI723443B (zh) 2018-06-29 2021-04-01 大陸商北京字節跳動網絡技術有限公司 每條帶/片/lcu行的查找表的重置
KR102641872B1 (ko) 2018-06-29 2024-02-29 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut와 amvp 사이의 상호작용
CN110677662B (zh) 2018-07-02 2022-09-02 北京字节跳动网络技术有限公司 Hmvp和非相邻运动的组合使用方法
BR112021000004A8 (pt) 2018-07-06 2023-02-07 Mediatek Inc Informações de movimento herdadas para decodificar uma unidade de codificação atual em um sistema de codificação de vídeo
US10491902B1 (en) 2018-07-16 2019-11-26 Tencent America LLC Method and apparatus for history-based motion vector prediction
US10440378B1 (en) 2018-07-17 2019-10-08 Tencent America LLC Method and apparatus for history-based motion vector prediction with parallel processing
US11381833B2 (en) 2018-07-19 2022-07-05 Tencent America LLC Method and apparatus for video coding
US10958934B2 (en) 2018-07-27 2021-03-23 Tencent America LLC History-based affine merge and motion vector prediction
US10362330B1 (en) 2018-07-30 2019-07-23 Tencent America LLC Combining history-based motion vector prediction and non-adjacent merge prediction
WO2020050678A1 (ko) 2018-09-06 2020-03-12 엘지전자 주식회사 Mpm 리스트를 사용하는 인트라 예측 기반 영상 코딩 방법 및 그 장치
CN111064959B (zh) 2018-09-12 2023-09-01 北京字节跳动网络技术有限公司 要检查多少个hmvp候选
US11212550B2 (en) 2018-09-21 2021-12-28 Qualcomm Incorporated History-based motion vector prediction for affine mode
US20200112715A1 (en) * 2018-10-05 2020-04-09 Qualcomm Incorporated History-based motion vector prediction for inter prediction coding
US11051034B2 (en) 2018-10-08 2021-06-29 Qualcomm Incorporated History-based motion vector predictor
US11284066B2 (en) 2018-10-10 2022-03-22 Tencent America LLC Method and apparatus for intra block copy in intra-inter blending mode and triangle prediction unit mode
US11184633B2 (en) * 2018-11-27 2021-11-23 Qualcomm Incorporated Simplification of history-based motion vector prediction
WO2020143824A1 (en) 2019-01-13 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and shared merge list

Also Published As

Publication number Publication date
CN110662052B (zh) 2022-07-08
TW202015420A (zh) 2020-04-16
US20210360278A1 (en) 2021-11-18
CN115134599A (zh) 2022-09-30
US11159817B2 (en) 2021-10-26
CN110662052A (zh) 2020-01-07
WO2020003283A1 (en) 2020-01-02
TWI744662B (zh) 2021-11-01
JP7460617B2 (ja) 2024-04-02
US20210014520A1 (en) 2021-01-14
JP2021530939A (ja) 2021-11-11
EP3794824A1 (en) 2021-03-24

Similar Documents

Publication Publication Date Title
KR102648576B1 (ko) 인트라 예측 모드들을 갖는 lut들 및 비인접 블록들로부터의 인트라 모드 예측
US11159817B2 (en) Conditions for updating LUTS
US11895318B2 (en) Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks
US11159807B2 (en) Number of motion candidates in a look up table to be checked according to mode
KR20210025538A (ko) 룩업 테이블의 업데이트: fifo, 제약된 fifo
US20210127129A1 (en) Priority-based non-adjacent merge design

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right