KR102608615B1 - Hmvp 후보 저장을 위한 표 유지 - Google Patents

Hmvp 후보 저장을 위한 표 유지 Download PDF

Info

Publication number
KR102608615B1
KR102608615B1 KR1020217012211A KR20217012211A KR102608615B1 KR 102608615 B1 KR102608615 B1 KR 102608615B1 KR 1020217012211 A KR1020217012211 A KR 1020217012211A KR 20217012211 A KR20217012211 A KR 20217012211A KR 102608615 B1 KR102608615 B1 KR 102608615B1
Authority
KR
South Korea
Prior art keywords
motion
block
candidates
prediction
hmvp
Prior art date
Application number
KR1020217012211A
Other languages
English (en)
Other versions
KR20210087935A (ko
Inventor
리 장
카이 장
훙빈 류
웨 왕
Original Assignee
베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드
바이트댄스 아이엔씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드, 바이트댄스 아이엔씨 filed Critical 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드
Priority to KR1020237036239A priority Critical patent/KR20230155014A/ko
Publication of KR20210087935A publication Critical patent/KR20210087935A/ko
Application granted granted Critical
Publication of KR102608615B1 publication Critical patent/KR102608615B1/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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/186Methods 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 a colour or a chrominance component
    • 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/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting 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/537Motion estimation other than block-based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Processing Or Creating Images (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

본 개시내용은 HMVP 후보 저장을 위한 표 유지에 관한 것이다. 비디오를 처리하기 위한 방법은: 비주얼 미디어 데이터의 제1 블록과 상기 비주얼 미디어 데이터의 대응하는 코딩된 표현 간의 변환 동안, 상기 제1 블록이 기하학적 파티션 모드로 코딩되어 있다고 결정하는 단계; 이전에 코딩된 블록들에 기초한 모션 정보를 포함하는 이력 기반 모션 벡터 예측(HMVP) 후보들을 저장하는 적어도 하나의 표에 기초하여, 상기 제1 블록의 적어도 하나의 서브-부분의 모션 정보를 결정하는 단계; 상기 결정된 모션 정보를 사용하여 상기 제1 블록의 변환을 수행하는 단계를 포함한다.

Description

HMVP 후보 저장을 위한 표 유지
관련 출원들에 대한 상호 참조
파리 조약에 따른 적용가능한 특허법 및/또는 규칙들 하에서, 본 출원은 2019년 11월 2일에 출원된 국제 특허 출원 번호 PCT/CN2018/113716, 2019년 5월 9일에 출원된 국제 특허 출원 번호 PCT/CN2019/086174에 대한 우선권 및 이익을 적시에 주장하기 위해 출원되었다. 위에 언급된 출원들의 전체 개시내용은 본 출원의 개시내용의 일부로서 인용에 의해 포함된다.
본 문서는 비디오 및 이미지 코딩 및 디코딩 기술들에 관한 것이다.
디지털 비디오는 인터넷 및 다른 디지털 통신 네트워크들에서 가장 큰 대역폭 사용을 차지한다. 비디오를 수신 및 디스플레이할 수 있는 연결된 사용자 디바이스들의 수가 증가함에 따라, 디지털 비디오 사용에 대한 대역폭 수요가 계속 증가할 것으로 예상된다.
개시된 기법들은 이력 기반 모션 벡터 예측(history based motion vector prediction, HMVP)을 갖는 기하학적 파티션들이 사용되는 비디오 또는 이미지 디코더 또는 인코더 실시예들에 의해 사용될 수 있다.
하나의 예시적인 양태에서, 비디오를 처리하는 방법이 개시된다. 이 방법은, 프로세서에 의해, 제1 비디오 블록이 인트라-코딩 또는 비-병합 인터-코딩되어 있다는 결정을 수행하는 단계; 상기 프로세서에 의해, 상기 제1 비디오 블록이 인트라-코딩 또는 비-병합 인터-코딩되어 있다는 결정에 기초하여 상기 제1 비디오 블록에 대한 제1 서브-부분 및 제2 서브-부분을 결정하는 단계 - 상기 제1 서브-부분 또는 상기 제2 서브-부분 중 하나 또는 둘 다는 상기 제1 비디오 블록의 비-직사각형 및 비-정사각형 부분들임 -; 및 상기 제1 서브-부분 및 상기 제2 서브-부분을 사용하여 상기 제1 비디오 블록의 추가 처리를 수행하는 단계를 포함한다.
다른 예시적인 양태에서, 비디오를 처리하는 방법은, 프로세서에 의해, 제1 비디오 블록이 인트라-코딩 또는 비-병합 인터-코딩되어 있다는 결정을 수행하는 단계; 상기 프로세서에 의해, 상기 제1 비디오 블록에 대한 제1 서브-부분 및 제2 서브-부분을 결정하는 단계 - 상기 제1 서브-부분 또는 상기 제2 서브-부분 중 하나 또는 둘 다는 상기 제1 비디오 블록의 비-직사각형 및 비-정사각형 부분들임 -; 및 상기 제1 서브-부분 및 상기 제2 서브-부분을 사용하여 상기 제1 비디오 블록의 추가 처리를 수행하는 단계를 포함하고, 적어도 하나의 서브-부분은 현재 이미지를 참조 이미지로서 사용하여 병합 또는 비-병합 인터 코딩된다.
다른 예시적인 양태에서, 비디오를 처리하는 방법은, 프로세서에 의해, 제1 비디오 블록이 인트라-코딩 또는 비-병합 인터-코딩되어 있다는 결정을 수행하는 단계; 상기 프로세서에 의해, 상기 제1 비디오 블록에 대한 제1 서브-부분 및 제2 서브-부분을 결정하는 단계 - 상기 제1 서브-부분 또는 상기 제2 서브-부분 중 하나 또는 둘 다는 상기 제1 비디오 블록의 비-직사각형 및 비-정사각형 부분들임 -; 및 상기 제1 서브-부분 및 상기 제2 서브-부분을 사용하여 상기 제1 비디오 블록의 추가 처리를 수행하는 단계를 포함하고, 상기 제1 서브-부분 및 상기 제2 서브-부분을 사용하여 상기 제1 비디오 블록의 추가 처리를 수행하는 단계는 상기 제1 비디오 블록과 관련하여 비-인접 공간 비디오 블록들의 인터 또는 인트라 코딩된 정보에 기초한다.
다른 예시적인 양태에서, 비디오를 처리하는 방법은 제1 비디오 블록이 상기 제1 비디오 블록의 삼각형 예측 부분을 사용하여 삼각형 부분 모드(TPM)로 코딩되고 제2 비디오 블록이 상기 제2 비디오 블록의 비-삼각형 예측 부분을 사용하여 비-TPM을 사용하여 코딩되어 있다는 결정을 수행하는 단계; 저장된 HMVP 후보들을 사용하여 상기 제1 비디오 블록 및 상기 제2 비디오 블록의 추가 처리를 수행하고 상기 제1 비디오 블록 및 상기 제2 비디오 블록과 연관된 HMVP 후보들을 저장하는 단계를 포함한다.
다른 예시적인 양태에서, 비디오를 처리하는 방법은, 프로세서에 의해, 제1 비디오 블록이 상기 제1 비디오 블록의 비-직사각형 및 비-정사각형 부분들인 예측 부분들을 포함한다는 결정을 수행하는 단계; HMVP 후보를 식별하는 단계; 비-직사각형 및 비-정사각형인 예측 부분들을 포함하는 비디오 블록들과 연관된 병합 리스트에 상기 HMVP 후보로부터 도출된 하나 이상의 모션 후보를 추가하는 단계; 및 상기 병합 리스트를 사용하여 상기 제1 비디오 블록의 추가 처리를 수행하는 단계를 포함한다.
다른 예시적인 양태에서, 비디오를 처리하기 위한 방법은: 비주얼 미디어 데이터의 현재 블록과 상기 비주얼 미디어 데이터의 대응하는 코딩된 표현 간의 변환 동안, 상기 현재 블록에 대한 다수의 서브-부분을 결정하는 단계; 상기 다수의 서브-부분의 인트라 예측 정보를 결정하는 단계; 상기 다수의 서브-부분의 인트라 예측 정보를 사용하여 상기 현재 블록의 변환을 수행하는 단계를 포함하고; 상기 현재 블록은 인트라-코딩되고, 상기 다수의 서브-부분 중 적어도 하나의 서브-부분은 비-직사각형 및 비-정사각형 서브-부분이다.
다른 예시적인 양태에서, 비디오를 처리하기 위한 방법은: 비주얼 미디어 데이터의 현재 블록과 상기 비주얼 미디어 데이터의 대응하는 코딩된 표현 간의 변환 동안, 상기 현재 블록에 대한 다수의 서브-부분을 결정하는 단계; 상기 다수의 서브-부분의 모션 정보를 결정하는 단계; 상기 다수의 서브-부분의 모션 정보를 사용하여 상기 현재 블록의 변환을 수행하는 단계를 포함하고; 상기 현재 블록은 비-병합 인터-코딩되고, 상기 다수의 서브-부분 중 적어도 하나의 서브-부분은 비-직사각형 및 비-정사각형 서브-부분이다.
다른 예시적인 양태에서, 비디오 처리 방법은: 비주얼 미디어 데이터의 현재 블록과 상기 비주얼 미디어 데이터의 대응하는 코딩된 표현 간의 변환을 수행하는 단계 - 상기 현재 블록은 제1 서브-부분이 비-직사각형, 비-정사각형 형상을 갖는 분할 패턴에 따라 다수의 서브-부분으로 파티셔닝됨 -; 인트라 코딩 모드로 제1 서브-부분을 처리하는 단계; 및 인터 코딩 모드로 제2 서브-부분을 처리하는 단계를 포함한다.
다른 예시적인 양태에서, 비디오 처리 방법은: 비주얼 미디어 데이터의 현재 블록과 상기 비주얼 미디어 데이터의 대응하는 코딩된 표현 간의 변환을 수행하는 단계를 포함하고, 상기 현재 블록은 제1 서브-부분이 비-직사각형, 비-정사각형 형상을 갖는 분할 패턴에 따라 다수의 서브-부분으로 파티셔닝되고; 상기 다수의 서브-부분 중 적어도 하나의 서브-부분은 병합 또는 비-병합 인터 코딩되고 현재 화상을 참조 화상으로서 사용한다.
다른 예시적인 양태에서, 비디오 처리 방법은: 비주얼 미디어 데이터의 현재 블록과 상기 비주얼 미디어 데이터의 대응하는 코딩된 표현 간의 변환을 수행하는 단계 - 상기 현재 블록은 제1 예측 파티션이 비-직사각형, 비-정사각형 형상을 갖는 분할 패턴에 따라 다수의 서브-부분으로 파티셔닝됨 -; 및 하나 이상의 비-인접 공간 블록의 인터 또는 인트라 코딩된 정보를 사용하여 상기 변환을 수행하는 단계를 포함한다.
다른 예시적인 양태에서, 비디오를 처리하기 위한 방법은: 비주얼 미디어 데이터의 제1 블록과 상기 비주얼 미디어 데이터의 대응하는 코딩된 표현 간의 변환 동안, 상기 제1 블록이 기하학적 파티션 모드로 코딩되어 있다고 결정하는 단계; 이전에 코딩된 블록들에 기초한 모션 정보를 포함하는 이력 기반 모션 벡터 예측(HMVP) 후보들을 저장하는 적어도 하나의 표에 기초하여, 상기 제1 블록의 적어도 하나의 서브-부분의 모션 정보를 결정하는 단계; 상기 결정된 모션 정보를 사용하여 상기 제1 블록의 변환을 수행하는 단계를 포함한다.
다른 예시적인 양태에서, 비디오를 처리하기 위한 방법은: 비주얼 미디어 데이터의 제1 블록과 상기 비주얼 미디어 데이터의 대응하는 코딩된 표현 간의 변환 동안, 상기 제1 블록이 기하학적 파티션 모드로 코딩되어 있다고 결정하는 단계; 상기 제1 블록의 적어도 하나의 서브-부분의 모션 정보를 결정하는 단계; 상기 적어도 하나의 서브-부분의 모션 정보를 사용하여 상기 제1 블록의 변환을 수행하는 단계를 포함하고; 적어도 하나의 서브-부분의 모션 정보를 결정하는 단계는 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 이력 기반 모션 벡터 예측(HMVP) 후보를 사용하여 모션 후보 리스트를 구성하는 단계 및 상기 모션 후보 리스트로부터 상기 모션 정보를 결정하는 단계를 포함한다.
다른 예시적인 양태에서, 전술한 방법은 프로세서를 포함하는 비디오 인코더 장치에 의해 구현될 수 있다.
다른 예시적인 양태에서, 전술한 방법은 프로세서를 포함하는 비디오 디코더 장치에 의해 구현될 수 있다.
또 다른 예시적인 양태에서, 이들 방법은 프로세서 실행가능 명령어들의 형식으로 구현되고 컴퓨터 판독가능 프로그램 매체 상에 저장될 수 있다.
이들 및 다른 양태들은 본 문서에서 더 설명된다.
도 1은 병합 후보들 리스트 구성을 위한 도출 프로세스의 예를 보여준다.
도 2는 공간 병합 후보들의 위치들의 예를 보여준다.
도 3은 공간 병합 후보들의 중복 검사를 위해 고려되는 후보 쌍들의 예를 보여준다.
도 4는 N×2N 및 2N×N 파티션들의 제2 PU에 대한 위치들의 예를 보여준다.
도 5는 시간 병합 후보에 대한 모션 벡터 스케일링의 예를 보여준다.
도 6은 시간 병합 후보 C0 및 C1에 대한 후보 위치들의 예를 보여준다.
도 7은 조합된 양방향 예측 병합 후보의 예를 보여준다.
도 8은 모션 벡터 예측 후보들에 대한 도출 프로세스의 예를 보여준다.
도 9는 공간 모션 벡터 후보에 대한 모션 벡터 스케일링의 예를 보여준다.
도 10은 CU에 대한 ATMVP 모션 예측의 예를 보여준다.
도 11은 4개의 서브-블록(A-D) 및 그의 이웃 블록들(a-d)을 갖는 하나의 CU의 예를 보여준다.
도 12는 상이한 MV 정밀도로 인코딩하는 흐름도의 예를 보여준다.
도 13은 CU를 2개의 삼각형 예측 단위(2개의 파티션 유형)로 분할하는 예들을 도시한다.
도 14는 이웃 블록들의 위치의 예를 보여준다.
도 15는 제1 가중치 그룹을 적용하는 CU의 예를 보여준다.
도 16은 모션 벡터 저장의 예를 보여준다.
도 17은 TPM 플래그 코딩에서 컨텍스트 선택을 위해 사용되는 이웃 블록들(A 및 L)의 예를 보여준다.
도 18은 OBMC가 적용되는 서브-블록들의 예를 보여준다.
도 19는 IC 파라미터들을 도출하기 위해 사용되는 이웃 샘플들의 예를 보여준다.
도 20은 단순화된 아핀 모션 모델의 예를 보여준다.
도 21은 서브-블록당 아핀 MVF의 예를 보여준다.
도 22는 4-파라미터 아핀 모델 (a) 및 6-파라미터 아핀 모델 (b)의 예를 보여준다.
도 23은 AF_INTER에 대한 MVP의 예를 보여준다.
도 24는 AF_MERGE에 대한 후보들의 예를 보여준다.
도 25는 아핀 병합 모드에 대한 후보들 위치의 예를 보여준다.
도 26은 광학 흐름 궤적(optical flow trajectory)의 예를 보여준다.
도 27은 블록 확장이 있는/없는 BIO의 예를 보여준다: a) 블록 외부의 액세스 위치들; b) 추가의 메모리 액세스 및 계산을 피하기 위해 패딩이 사용된다.
도 28은 쌍방 템플릿 매칭에 기초한 DMVR의 예를 보여준다.
도 29는 비디오 처리 장치의 예의 블록도이다.
도 30은 비디오 인코더의 예시적인 구현의 블록도를 도시한다.
도 31은 비디오 처리 방법의 예에 대한 흐름도이다.
도 32는 비디오 처리 방법의 예에 대한 흐름도이다.
도 33은 비디오 처리 방법의 예에 대한 흐름도이다.
도 34는 비디오 처리 방법의 예에 대한 흐름도이다.
도 35는 비디오 처리 방법의 예에 대한 흐름도이다.
도 36은 비디오 처리 방법의 예에 대한 흐름도이다.
도 37은 비디오 처리 방법의 예에 대한 흐름도이다.
도 38은 비디오 처리 방법의 예에 대한 흐름도이다.
도 39는 비디오 처리 방법의 예에 대한 흐름도이다.
도 40은 비디오 처리 방법의 예에 대한 흐름도이다.
도 41은 비디오 처리 방법의 예에 대한 흐름도이다.
도 42는 비디오 처리 방법의 예에 대한 흐름도이다.
본 문서는 압축해제된 또는 디코딩된 디지털 비디오 또는 이미지들의 품질을 개선하기 위해 이미지 또는 비디오 비트스트림들의 디코더에 의해 사용될 수 있는 다양한 기법들을 제공한다. 간략함을 위해, "비디오"라는 용어는 본 명세서에서 화상들의 시퀀스(전통적으로 비디오라고 불림) 및 개별 이미지들 둘 다를 포함하기 위해 사용된다. 더욱이, 비디오 인코더는 또한 추가 인코딩을 위해 사용되는 디코딩된 프레임들을 재구성하기 위해 인코딩 프로세스 동안 이들 기법을 구현할 수 있다.
섹션 제목들은 이해의 편의를 위해 본 문서에서 사용되고 실시예들 및 기법들을 대응하는 섹션들로 제한하지 않는다. 그에 따라, 하나의 섹션으로부터의 실시예들은 다른 섹션들로부터의 실시예들과 조합될 수 있다.
1. 요약
본 특허 문서는 비디오 코딩 기술들에 관한 것이다. 구체적으로는, 그것은 비디오 코딩에서 기하학적 파티션 하의 모션 벡터 코딩에 관한 것이다. 그것은 HEVC와 같은 기존의 비디오 코딩 표준, 또는 완성될 표준(Versatile Video Coding)에 적용될 수 있다. 그것은 미래의 비디오 코딩 표준들 또는 비디오 코덱에도 적용가능할 수 있다.
2. 배경
비디오 코딩 표준들은 주로 잘 알려진 ITU-T 및 ISO/IEC 표준들의 개발을 통해 발전했다. ITU-T는 H.261 및 H.263을 생성하였고, ISO/IEC는 MPEG-1 및 MPEG-4 Visual을 생성하였고, 이 2개의 조직은 H.262/MPEG-2 비디오 및 H.264/MPEG-4 AVC(Advanced Video Coding) 및 H.265/HEVC 표준들을 공동으로 생성하였다. H.262 이후, 비디오 코딩 표준들은 시간 예측 플러스 변환 코딩이 이용되는 하이브리드 비디오 코딩 구조에 기초한다. HEVC 이후 미래의 비디오 코딩 기술들을 탐구하기 위해, JVET(Joint Video Exploration Team)가 2015년 공동으로 VCEG 및 MPEG에 의해 설립되었다. 그때 이후, 많은 새로운 방법들이 JVET에 의해 채택되어 JEM(Joint Exploration Model)이라고 명명된 기준 소프트웨어에 넣어졌다. 2018년 4월에, VCEG(Q6/16)와 ISO/IEC JTC1 SC29/WG11(MPEG) 사이의 JVET(Joint Video Expert Team)는 HEVC에 비해 50% 비트레이트 감소를 목표로 하는 VVC 표준에 대해 연구하기 위해 생성되었다.
도 30은 비디오 인코더의 예시적인 구현의 블록도이다. 도 30은 인코더 구현이 비디오 인코더가 또한 비디오 디코딩 기능성을 수행하는(다음 비디오 데이터를 인코딩하기 위해 사용하기 위한 비디오 데이터의 압축된 표현을 재구성하는) 내장된 피드백 경로를 갖는 것을 보여준다.
2.1 HEVC/H.265에서의 인터 예측
각각의 인터-예측된 PU는 1개 또는 2개의 참조 화상 리스트에 대한 모션 파라미터들을 갖는다. 모션 파라미터들은 모션 벡터 및 참조 화상 인덱스를 포함한다. 2개의 참조 화상 리스트 중 하나의 사용은 inter_pred_idc를 사용하여 시그널링될 수도 있다. 모션 벡터들은 예측자들에 대해 델타로서 명시적으로 코딩될 수 있다.
CU가 스킵 모드로 코딩될 때, 하나의 PU는 CU와 연관되고, 중요한 잔여 계수들이 없고, 코딩된 모션 벡터 델타 또는 참조 화상 인덱스가 없다. 병합 모드가 특정되고, 그에 의해 현재 PU에 대한 모션 파라미터들이 공간 및 시간 후보들을 포함하는 이웃 PU들로부터 획득된다. 병합 모드는 스킵 모드에 대해서뿐만 아니라 임의의 인터-예측된 PU에 적용될 수 있다. 병합 모드에 대한 대안은 모션 파라미터들의 명시적 송신이고, 여기서 모션 벡터(더 정확하게는, 모션 벡터 예측자에 비해 모션 벡터 차이), 각각의 참조 화상 리스트 및 참조 화상 리스트 사용에 대한 대응하는 참조 화상 인덱스가 각각의 PU마다 명시적으로 시그널링된다. 그러한 모드는 본 개시내용에서 고급 모션 벡터 예측(Advanced motion vector prediction, AMVP)라고 명명된다.
시그널링이 2개의 참조 화상 리스트 중 하나가 사용될 것임을 지시할 때, PU는 하나의 샘플 블록으로부터 생성된다. 이는 '단방향 예측(uni-prediction)'이라고 지칭된다. 단방향 예측은 P-슬라이스들 및 B-슬라이스들 둘 다에 대해 이용가능하다.
시그널링이 둘 다의 참조 화상 리스트들이 사용될 것임을 지시할 때, PU는 2개의 샘플 블록으로부터 생성된다. 이는 '양방향 예측(bi-prediction)'이라고 지칭된다. 양방향 예측은 B-슬라이스들에 대해서만 이용가능하다.
다음의 텍스트는 HEVC에서 특정된 인터 예측 모드들에 대한 상세 사항들을 제공한다. 설명은 병합 모드로 시작될 것이다.
2.1.1. 참조 화상 리스트
HEVC에서, 인터 예측이라는 용어는 현재 디코딩된 화상 이외의 참조 화상들의 데이터 요소들(예를 들어, 샘플 값들 또는 모션 벡터들)로부터 도출된 예측을 나타내기 위해 사용된다. H.264/AVC에서와 같이, 화상은 다수의 참조 화상으로부터 예측될 수 있다. 인터 예측을 위해 사용되는 참조 화상들은 하나 이상의 참조 화상 리스트로 조직된다. 참조 인덱스는 리스트 내의 참조 화상들 중 어느 것이 예측 신호를 생성하기 위해 사용되어야 하는지를 식별한다.
단일 참조 화상 리스트, List 0은 P 슬라이스를 위해 사용되고 2개의 참조 화상 리스트, List 0 및 List 1은 B 슬라이스들을 위해 사용된다. List 0/1에 포함된 참조 화상들은 캡처링/디스플레이 순서의 관점에서 과거 및 미래 화상들로부터의 것일 수 있다는 점에 유의해야 한다.
2.1.2 병합 모드
2.1.2.1 병합 모드에 대한 후보들의 도출
PU가 병합 모드를 사용하여 예측될 때, 병합 후보들 리스트 내의 엔트리를 가리키는 인덱스가 비트스트림으로부터 파싱되고 모션 정보를 검색하기 위해 사용된다. 이 리스트의 구성은 HEVC 표준에 특정되고 다음의 단계들의 시퀀스에 따라 요약될 수 있다:
단계 1: 초기 후보들 도출
단계 1.1: 공간 후보들 도출
단계 1.2: 공간 후보들에 대한 중복 검사
단계 1.3: 시간 후보들 도출
단계 2: 추가적인 후보들 삽입
단계 2.1: 양방향 예측 후보들의 생성
단계 2.2: 제로 모션 후보들의 삽입
이들 단계는 또한 도 1에 개략적으로 묘사되어 있다. 공간 병합 후보 도출을 위해, 5개의 상이한 위치에 위치되는 후보들 중에서 최대 4개의 병합 후보가 선택된다. 시간 병합 후보 도출을 위해, 2개의 후보 중에서 최대 하나의 병합 후보가 선택된다. 디코더에서 각각의 PU에 대한 일정한 수의 후보들이 가정되기 때문에, 단계 1로부터 획득된 후보들의 수가 슬라이스 헤더에서 시그널링되는 병합 후보의 최대 수(MaxNumMergeCand)에 도달하지 않을 때 추가적인 후보들이 생성된다. 후보들의 수가 일정하기 때문에, 최상의 병합 후보의 인덱스는 절단된 단항 이진화(truncated unary binarization, TU)를 사용하여 인코딩된다. CU의 크기가 8과 동등하다면, 현재 CU의 모든 PU들은 2N×2N 예측 단위의 병합 후보 리스트와 동일한 단일 병합 후보 리스트를 공유한다.
이하에서는, 위에 언급된 단계들과 연관된 동작들이 상세히 설명된다.
도 1은 병합 후보들 리스트 구성을 위한 도출 프로세스의 예를 보여준다.
2.1.2.2. 공간 후보들 도출
공간 병합 후보들의 도출에서는, 도 2에 묘사된 위치들에 위치된 후보들 중에서 최대 4개의 병합 후보가 선택된다. 도출 순서는 A1, B1, B0, A0 및 B2이다. 위치 B2는 위치 A1, B1, B0, A0의 임의의 PU가 이용가능하지 않거나(예를 들어, 그것이 다른 슬라이스 또는 타일에 속하기 때문에) 또는 인트라 코딩될 때에만 고려된다. 위치 A1에서의 후보가 추가된 후에, 나머지 후보들의 추가는 코딩 효율이 개선되도록 동일 모션 정보를 갖는 후보들이 리스트로부터 제외되는 것을 보장하는 중복 검사를 거친다. 계산 복잡성을 감소시키기 위해, 모든 가능한 후보 쌍들이 언급된 중복 검사에서 고려되지는 않는다. 대신에 도 3에서 화살표와 연결된 쌍들만이 고려되고, 중복 검사를 위해 사용되는 대응하는 후보가 동일한 모션 정보를 갖지 않는 경우에만 후보가 리스트에 추가된다. 중복 모션 정보의 다른 소스는 2Nx2N과는 상이한 파티션들과 연관된 "제2 PU"이다. 예로서, 도 4는 N×2N 및 2N×N의 경우 각각에 대한 제2 PU를 묘사한다. 현재 PU가 N×2N으로 파티셔닝될 때, 위치 A1에서의 후보는 리스트 구성에 고려되지 않는다. 사실, 이 후보를 추가하는 것에 의해 동일한 모션 정보를 갖는 2개의 예측 단위로 이어질 것이고, 이는 코딩 단위에서 하나의 PU만을 갖도록 중복된다. 유사하게, 현재 PU가 2N×N으로 파티셔닝될 때 위치 B1은 고려되지 않는다.
도 2는 공간 병합 후보들의 위치들의 예를 보여준다.
도 3은 공간 병합 후보들의 중복 검사를 위해 고려되는 후보 쌍들의 예를 보여준다.
도 4는 N×2N 및 2N×N 파티션들의 제2 PU에 대한 위치들의 예를 보여준다.
2.1.2.3. 시간 후보들 도출
이 단계에서는, 단 하나의 후보만이 리스트에 추가된다. 특히, 이 시간 병합 후보의 도출에서는, 주어진 참조 화상 리스트 내의 현재 화상과 가장 작은 POC 차이를 갖는 화상에 속하는 동위치(co-located) PU에 기초하여 스케일링된 모션 벡터가 도출된다. 동위치 PU의 도출을 위해 사용될 참조 화상 리스트는 슬라이스 헤더에서 명시적으로 시그널링된다. 시간 병합 후보에 대한 스케일링된 모션 벡터는 도 5에서 점선으로 예시된 바와 같이 획득되고, 이는 POC 거리들 tb 및 td를 사용하여 동위치 PU의 모션 벡터로부터 스케일링되고, 여기서 tb는 현재 화상의 참조 화상과 현재 화상 간의 POC 차이인 것으로 정의되고, td는 동위치 화상의 참조 화상과 동위치 화상 간의 POC 차이인 것으로 정의된다. 시간 병합 후보의 참조 화상 인덱스는 제로와 동등하게 설정된다. 스케일링 프로세스의 실제적인 실현은 HEVC 사양에서 설명된다. B-슬라이스에 대해, 2개의 모션 벡터 - 하나는 참조 화상 리스트 0에 대한 것이고 다른 하나는 참조 화상 리스트 1에 대한 것임 - 가 획득되고 조합되어 양방향 예측 병합 후보를 만든다.
도 5는 시간 병합 후보에 대한 모션 벡터 스케일링의 예를 보여준다.
참조 프레임에 속하는 동위치 PU(Y)에서, 시간 후보에 대한 위치는, 도 6에 묘사된 바와 같이, 후보들 C0 및 C1 사이에서 선택된다. 위치 C0에서의 PU가 이용가능하지 않거나, 인트라 코딩되거나, 현재 CTU 행의 외부에 있으면, 위치 C1이 사용된다. 그렇지 않으면, 위치 C0이 시간 병합 후보의 도출에서 사용된다.
도 6은 시간 병합 후보 C0 및 C1에 대한 후보 위치들의 예를 보여준다.
2.1.2.4. 추가적인 후보들 삽입
공간 및 시간 병합 후보들 이외에, 2개의 추가적인 유형의 병합 후보들의 있다: 조합된 양방향 예측 병합 후보 및 제로 병합 후보. 조합된 양방향 예측 병합 후보들은 공간 및 시간 병합 후보들을 이용하여 생성된다. 조합된 양방향 예측 병합 후보는 B-슬라이스에 대해서만 사용된다. 조합된 양방향 예측 후보들은 초기 후보의 제1 참조 화상 리스트 모션 파라미터들을 다른 것의 제2 참조 화상 리스트 모션 파라미터들과 조합하는 것에 의해 생성된다. 이들 2개의 튜플이 상이한 모션 가설을 제공한다면, 그것들은 새로운 양방향 예측 후보를 형성할 것이다. 예로서, 도 7은 mvL0 및 refIdxL0 또는 mvL1 및 refIdxL1을 갖는, 원래의 리스트(왼쪽) 내의 2개의 후보가 최종 리스트(오른쪽)에 추가된 조합된 양방향 예측 병합 후보를 생성하기 위해 사용되는 경우를 묘사한다. 이들 추가적인 병합 후보를 생성하기 위해 고려되는 조합들에 관한 다수의 규칙이 존재한다.
도 7은 조합된 양방향 예측 병합 후보의 예를 보여준다.
병합 후보들 리스트 내의 나머지 엔트리들을 채우고 따라서 MaxNumMergeCand 용량에 달하도록 제로 모션 후보들이 삽입된다. 이들 후보는 제로 공간 변위 및 제로로부터 시작되고 새로운 제로 모션 후보가 리스트에 추가될 때마다 증가하는 참조 화상 인덱스를 갖는다. 이들 후보에 의해 사용되는 참조 프레임들의 수는 단방향 및 양방향 예측에 대해 각각 1 및 2이다. 마지막으로, 이들 후보에 대해 중복 검사가 수행되지 않는다.
2.1.2.5. 병렬 처리를 위한 모션 추정 영역들
인코딩 프로세스의 속도를 높이기 위해, 모션 추정이 병렬로 수행될 수 있고, 그에 의해 주어진 영역 내부의 모든 예측 단위들에 대한 모션 벡터들이 동시에 도출된다. 공간 이웃으로부터의 병합 후보들의 도출은 병렬 처리를 방해할 수 있는데, 그 이유는 하나의 예측 단위가 그의 연관된 모션 추정이 완료될 때까지 인접한 PU로부터 모션 파라미터들을 도출할 수 없기 때문이다. 코딩 효율과 처리 레이턴시 간의 절충을 완화하기 위해, HEVC는 "log2_parallel_merge_level_minus2" 구문 요소를 사용하여 화상 파라미터 세트에서 그 크기가 시그널링되는 모션 추정 영역(MER)을 정의한다. MER이 정의될 때, 동일한 영역에 속하는 병합 후보들은 이용불가능한 것으로 표시되고 따라서 리스트 구성에서 고려되지 않는다.
2.1.3. AMVP
AMVP는 이웃 PU들과의 모션 벡터의 공간-시간 상관을 이용하고, 이는 모션 파라미터들의 명시적 송신을 위해 사용된다. 각각의 참조 화상 리스트에 대해, 모션 벡터 후보 리스트는 먼저 왼쪽, 위의 시간적으로 이웃 PU 위치들의 이용가능성을 검사하고, 중복 후보들을 제거하고 제로 벡터를 추가하여 후보 리스트를 일정한 길이가 되도록 만드는 것에 의해 구성된다. 그 후, 인코더는 후보 리스트로부터 최상의 예측자를 선택하고 선택된 후보를 지시하는 대응하는 인덱스를 송신할 수 있다. 병합 인덱스 시그널링과 유사하게, 최상의 모션 벡터 후보의 인덱스는 절단된 단항(truncated unary)을 사용하여 인코딩된다. 이 경우에 인코딩될 최대 값은 2이다(도 8 참조). 다음의 섹션들에서는, 모션 벡터 예측 후보의 도출 프로세스에 관한 상세 사항들이 제공된다.
2.1.3.1 AMVP 후보들의 도출
도 8은 모션 벡터 예측 후보에 대한 도출 프로세스를 요약한다.
모션 벡터 예측에서는, 2가지 유형의 모션 벡터 후보가 고려된다: 공간 모션 벡터 후보 및 시간 모션 벡터 후보. 공간 모션 벡터 후보 도출을 위해, 도 2에 묘사된 바와 같이 5개의 상이한 위치에 위치되는 각각의 PU의 모션 벡터에 기초하여 2개의 모션 벡터 후보가 결국 도출된다.
시간 모션 벡터 후보 도출을 위해, 2개의 상이한 동위치 위치에 기초하여 도출되는 2개의 후보로부터 하나의 모션 벡터 후보가 선택된다. 공간-시간 후보들의 제1 리스트가 만들어진 후에, 리스트 내의 중복된 모션 벡터 후보들이 제거된다. 잠재적 후보들의 수가 2보다 크면, 연관된 참조 화상 리스트 내의 참조 화상 인덱스가 1보다 큰 모션 벡터 후보들이 리스트로부터 제거된다. 공간-시간 모션 벡터 후보들의 수가 2보다 작으면, 추가적인 제로 모션 벡터 후보들이 리스트에 추가된다.
2.1.3.2. 공간 모션 벡터 후보들
공간 모션 벡터 후보들의 도출에서는, 도 2에 묘사된 바와 같은 위치들에 위치된 PU들로부터 도출되는 5개의 잠재적 후보들 중에서 최대 2개의 후보가 고려되고, 해당 위치들은 모션 병합의 위치들과 동일하다. 현재 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 후보들의 병렬 도출을 돕기 위해 위의 모션 벡터에 대한 스케일링이 허용된다. 그렇지 않으면, 위의 모션 벡터에 대해 공간 스케일링이 허용되지 않는다.
도 9는 공간 모션 벡터 후보에 대한 모션 벡터 스케일링의 예를 보여준다.
공간 스케일링 프로세스에서는, 이웃 PU의 모션 벡터는 도 9에 묘사된 바와 같이 시간 스케일링에 대한 것과 유사한 방식으로 스케일링된다. 주요 차이는 현재 PU의 인덱스 및 참조 화상 리스트가 입력으로서 주어진다는 것이다; 실제 스케일링 프로세스는 시간 스케일링의 것과 동일하다.
2.1.3.3. 시간 모션 벡터 후보들
참조 화상 인덱스 도출 이외에, 시간 병합 후보들의 도출을 위한 모든 프로세스들은 공간 모션 벡터 후보들의 도출에 대한 것과 동일하다(도 6 참조). 참조 화상 인덱스는 디코더에 시그널링된다.
2.2. JEM에서의 새로운 인터 예측 방법들
2.2.1. 서브-CU 기반 모션 벡터 예측
QTBT를 갖는 JEM에서, 각각의 CU는 각각의 예측 방향에 대해 많아야 하나의 모션 파라미터 세트를 가질 수 있다. 큰 CU를 서브-CU들로 분할하고 큰 CU의 모든 서브-CU들에 대한 모션 정보를 도출하는 것에 의해 인코더에서 2개의 서브-CU 레벨 모션 벡터 예측 방법이 고려된다. 대안적인 시간 모션 벡터 예측(ATMVP) 방법은 각각의 CU가 동위치 참조 화상에서의 현재 CU보다 작은 다수의 블록들로부터 다수의 모션 정보 세트를 페치하는 것을 허용한다. 공간-시간 모션 벡터 예측(spatial-temporal motion vector prediction, STMVP) 방법에서는 서브-CU들의 모션 벡터들이 시간 모션 벡터 예측자 및 공간 이웃 모션 벡터를 사용하여 재귀적으로 도출된다.
서브-CU 모션 예측을 위한 더 정확한 모션 필드를 보존하기 위해, 참조 프레임들에 대한 모션 압축은 현재 디스에이블된다.
도 10은 CU에 대한 ATMVP 모션 예측의 예를 보여준다.
2.2.1.1. 대안적인 시간 모션 벡터 예측
대안적인 시간 모션 벡터 예측(ATMVP) 방법에서는, 모션 벡터들 시간 모션 벡터 예측(TMVP)은 현재 CU보다 작은 블록들로부터 다수의 모션 정보 세트(모션 벡터들 및 참조 인덱스들을 포함함)를 페치하는 것에 의해 수정된다. 서브-CU들은 정사각형 N×N 블록들이다(N은 디폴트로 4로 설정된다).
ATMVP는 2개의 단계에서 CU 내의 서브-CU들의 모션 벡터들을 예측한다. 제1 단계는 소위 시간 벡터로 참조 화상 내의 대응하는 블록을 식별하는 것이다. 참조 화상은 모션 소스 화상이라고 불린다. 제2 단계는 현재 CU를 서브-CU들로 분할하고 각각의 서브-CU에 대응하는 블록으로부터 각각의 서브-CU의 참조 인덱스들뿐만 아니라 모션 벡터들을 획득하는 것이다.
제1 단계에서, 참조 화상 및 대응하는 블록은 현재 CU의 공간 이웃 블록들의 모션 정보에 의해 결정된다. 이웃 블록들의 반복 스캐닝 프로세스를 피하기 위해, 현재 CU의 병합 후보 리스트 내의 제1 병합 후보가 사용된다. 제1 이용가능한 모션 벡터뿐만 아니라 그의 연관된 참조 인덱스는 시간 벡터 및 모션 소스 화상에 대한 인덱스로 설정된다. 이러한 방식으로, ATMVP에서, 대응하는 블록은 TMVP와 비교하여 더 정확하게 식별될 수 있고, 여기서 대응하는 블록(때때로 동위치 블록이라고 불림)은 항상 현재 CU에 대해 오른쪽 하단 또는 중심 위치에 있다.
제2 단계에서, 현재 CU의 좌표에 시간 벡터를 추가하는 것에 의해, 모션 소스 화상에서의 시간 벡터에 의해 서브-CU의 대응하는 블록이 식별된다. 각각의 서브-CU에 대해, 그의 대응하는 블록(중심 샘플을 커버하는 가장 작은 모션 그리드)의 모션 정보는 서브-CU에 대한 모션 정보를 도출하기 위해 사용된다. 대응하는 N×N 블록의 모션 정보가 식별된 후에, 그것은 HEVC의 TMVP와 동일한 방식으로, 현재 서브-CU의 모션 벡터들 및 참조 인덱스들로 변환되고, 여기서 모션 스케일링 및 다른 절차들이 적용된다. 예를 들어, 디코더는 저지연 조건(즉, 현재 화상의 모든 참조 화상들의 POC들이 현재 화상의 POC보다 작은 것)이 충족되는지를 검사하고, 어쩌면 모션 벡터 MVx (참조 화상 리스트 X에 대응하는 모션 벡터)를 사용하여 각각의 서브-CU에 대해 모션 벡터 MVy(X는 0 또는 1과 동등하고 Y는 1-X와 동등함)를 예측한다.
2.2.1.2. 공간-시간 모션 벡터 예측(STMVP)
이 방법에서, 서브-CU들의 모션 벡터들은, 래스터 스캔 순서에 따라, 재귀적으로 도출된다. 도 11은 이 개념을 예시한다. 4개의 4×4 서브-CU들 A, B, C, 및 D를 포함하는 8×8 CU를 고려해보자. 현재 프레임 내의 이웃 4×4 블록들은 a, b, c, 및 d로 라벨링된다.
서브-CU A에 대한 모션 도출은 그것의 2개의 공간 이웃을 식별하는 것에 의해 시작된다. 제1 이웃은 서브-CU A 위의 N×N 블록이다(블록 c). 이 블록 c가 이용가능하지 않거나 인트라 코딩되면 서브-CU A 위의 다른 N×N 블록들이 검사된다(블록 c에서 시작하여, 왼쪽에서 오른쪽으로). 제2 이웃은 서브-CU A의 왼쪽의 블록(블록 b)이다. 블록 b가 이용가능하지 않거나 인트라 코딩되면 서브-CU A의 왼쪽의 다른 블록들이 검사된다(블록 b에서 시작하여, 위에서 아래로). 각각의 리스트에 대해 이웃 블록들로부터 획득된 모션 정보는 주어진 리스트에 대해 제1 참조 프레임으로 스케일링된다. 다음으로, HEVC에서 특정된 바와 같은 TMVP 도출의 동일한 절차를 따르는 것에 의해 서브-블록 A의 시간 모션 벡터 예측자(TMVP)가 도출된다. 위치 D에서의 동위치 블록의 모션 정보는 그에 따라 페치되고 스케일링된다. 마지막으로, 모션 정보를 검색하고 스케일링한 후에, 모든 이용가능한 모션 벡터(최대 3개)가 각각의 참조 리스트에 대해 개별적으로 평균된다. 평균된 모션 벡터는 현재 서브-CU의 모션 벡터로서 할당된다.
2.2.1.3. 서브-CU 모션 예측 모드 시그널링
서브-CU 모드들은 추가적인 병합 후보들로서 인에이블되고 모드들을 시그널링하기 위해 필요한 추가적인 구문 요소가 없다. 각각의 CU의 병합 후보들 리스트에 2개의 추가적인 병합 후보가 추가되어 ATMVP 모드 및 STMVP 모드를 표현한다. 시퀀스 파라미터 세트가 ATMVP 및 STMVP가 인에이블되는 것을 지시한다면, 최대 7개의 병합 후보가 사용된다. 추가적인 병합 후보들의 인코딩 로직은 HM에서의 병합 후보들에 대한 것과 동일하고, 이는 P 또는 B 슬라이스 내의 각각의 CU에 대해, 2개의 추가적인 병합 후보에 대해 2개 이상의 RD 검사가 필요함을 의미한다.
JEM에서, 병합 인덱스의 모든 빈들은 CABAC에 의해 컨텍스트 코딩된다. HEVC에서는, 제1 빈만이 컨텍스트 코딩되고 나머지 빈들은 컨텍스트 바이-패스(context by-pass) 코딩된다.
2.2.2. 적응 모션 벡터 차이 해상도
HEVC에서, 모션 벡터 차이(motion vector difference, MVD)(모션 벡터와 PU의 예측된 모션 벡터 간)들은 use_integer_mv_flag가 슬라이스 헤더에서 0과 동등할 때 쿼터 루마 샘플들의 단위로 시그널링된다. JEM에서, 로컬 적응 모션 벡터 해상도(locally adaptive motion vector resolution, LAMVR)가 도입된다. JEM에서, MVD는 쿼터 루마 샘플들, 정수 루마 샘플들 또는 4 루마 샘플들의 단위로 코딩될 수 있다. MVD 해상도는 코딩 단위(CU) 레벨에서 제어되고, MVD 해상도 플래그들은 적어도 하나의 비-제로 MVD 성분을 갖는 각각의 CU에 대해 조건부로 시그널링된다.
적어도 하나의 비-제로 MVD 성분을 갖는 CU에 대해, 제1 플래그는 CU에서 쿼터 루마 샘플 MV 정밀도가 사용되는지를 지시하기 위해 시그널링된다. 제1 플래그(1과 동등)가 쿼터 루마 샘플 MV 정밀도가 사용되지 않는다는 것을 지시할 때, 정수 루마 샘플 MV 정밀도 또는 4 루마 샘플 MV 정밀도가 사용되는지를 지시하기 위해 다른 플래그가 시그널링된다.
CU의 제1 MVD 해상도 플래그가 제로이거나, CU에 대해 코딩되지 않을 때(CU에서의 모든 MVD들이 제로임을 의미함), 쿼터 루마 샘플 MV 해상도가 CU에 대해 사용된다. CU가 정수-루마 샘플 MV 정밀도 또는 4-루마-샘플 MV 정밀도를 사용할 때, CU에 대한 AMVP 후보 리스트 내의 MVP들은 대응하는 정밀도로 라운딩된다.
인코더에서, 어느 MVD 해상도가 CU에 대해 사용되어야 하는지를 결정하기 위해 CU-레벨 RD 검사들이 사용된다. 즉, CU-레벨 RD 검사는 각각의 MVD 해상도에 대해 3회 수행된다. 인코더 속도를 가속화하기 위해, 다음의 인코딩 스킴들이 JEM에서 적용된다.
정상 쿼터 루마 샘플 MVD 해상도를 갖는 CU의 RD 검사 동안, 현재 CU의 모션 정보(정수 루마 샘플 정확도)가 저장된다. 저장된 모션 정보(라운딩 후)는 시간 소모적인 모션 추정 프로세스가 3회 중복되지 않도록 정수 루마 샘플 및 4 루마 샘플 MVD 해상도를 갖는 동일한 CU에 대한 RD 검사 동안 추가의 작은 범위 모션 벡터 리파인먼트를 위한 시작점으로서 사용된다.
4 루마 샘플 MVD 해상도를 갖는 CU의 RD 검사가 조건부로 호출된다. CU에 대해, RD 비용 정수 루마 샘플 MVD 해상도가 쿼터 루마 샘플 MVD 해상도보다 훨씬 클 때, CU에 대한 4 루마 샘플 MVD 해상도의 RD 검사는 스킵된다.
인코딩 프로세스는 도 12에 도시되어 있다. 먼저, 1/4 pel MV가 테스트되고, RD 비용이 계산되고 RDCost0으로 표시되고, 그 후 정수 MV가 테스트되고 RD 비용이 RDCost1로 표시된다. RDCost1 < th * RDCost0(여기서 th는 양의 값임)이면, 4-pel MV가 테스트된다; 그렇지 않으면, 4-pel MV가 스킵된다. 기본적으로, 모션 정보 및 RD 비용 등은 정수 또는 4-pel MV를 검사할 때 1/4 pel MV에 대해 이미 알려져 있고, 이는 정수 또는 4-pel MV의 인코딩 프로세스의 속도를 높이기 위해 재사용될 수 있다.
2.2.3. 삼각형 예측 모드
삼각형 예측 모드(triangular prediction mode, TPM)의 개념은 모션 보상 예측을 위한 새로운 삼각형 파티션을 도입하는 것이다. 도 13에 도시된 바와 같이, 이는 CU를 대각선 또는 역 대각선 방향으로 2개의 삼각형 예측 단위로 분할한다. CU 내의 각각의 삼각형 예측 단위는 단방향 예측 후보 리스트로부터 도출되는 그 자신의 단방향 예측 모션 벡터 및 참조 프레임 인덱스를 사용하여 인터-예측된다. 삼각형 예측 단위들을 예측한 후에 대각선 에지에 대해 적응 가중 프로세스가 수행된다. 그 후, 변환 및 양자화 프로세스가 전체 CU에 적용된다. 이 모드는 스킵 및 병합 모드들에만 적용된다는 점에 유의한다.
2.2.3.1 TPM을 위한 단방향 예측 후보 리스트
단방향 예측 후보 리스트는 5개의 단방향 예측 모션 벡터 후보로 구성된다. 그것은, 도 14에 도시된 바와 같이, 5개의 공간 이웃 블록(1 내지 5) 및 2개의 시간 동위치 블록들(6 내지 7)을 포함하는 7개의 이웃 블록으로부터 도출된다. 7개의 이웃 블록의 모션 벡터들이 수집되어 단방향 예측 모션 벡터들, 양방향 예측 모션 벡터들의 L0 모션 벡터, 양방향 예측 모션 벡터들의 L1 모션 벡터, 및 양방향 예측 모션 벡터들의 L0 및 L1 모션 벡터들의 평균된 모션 벡터의 순서에 따라 단방향 예측 후보 리스트에 넣어진다. 후보들의 수가 5보다 작으면, 제로 모션 벡터가 리스트에 추가된다.
더 구체적으로, 다음의 단계들이 수반된다:
어떠한 프루닝 동작들도 없이 A1, B1, B0, A0, B2, Col 및 Col2(도 14의 블록 1-7에 대응함)로부터 모션 후보들을 획득한다.
변수 numCurrMergeCand = 0으로 설정한다
numCurrMergeCand가 5보다 작고 A1, B1, B0, A0, B2, Col 및 Col2로부터 도출된 각각의 모션 후보들에 대해, 모션 후보가 단방향 예측이면(List 0 또는 List 1 중 어느 하나로부터의), 그것은 병합 리스트에 추가되고 numCurrMergeCand가 1만큼 증가된다. 그러한 추가된 모션 후보들은 '원래 단방향 예측된 후보'라고 명명된다.
풀 프루닝(full pruning)이 적용된다.
numCurrMergeCand가 5보다 작고 A1, B1, B0, A0, B2, Col 및 Col2로부터 도출된 각각의 모션 후보들에 대해, 모션 후보가 양방향 예측이면, List 0으로부터의 모션 정보가 병합 리스트에 추가되고(즉, List 0으로부터의 단방향 예측으로 수정됨), numCurrMergeCand는 1만큼 증가된다. 그러한 추가된 모션 후보들은 '절단된 List0-예측된 후보'라고 명명된다.
풀 프루닝이 적용된다.
numCurrMergeCand가 5보다 작고 A1, B1, B0, A0, B2, Col 및 Col2로부터 도출된 각각의 모션 후보들에 대해, 모션 후보가 양방향 예측이면, List 1로부터의 모션 정보가 병합 리스트에 추가되고(즉, List 1로부터의 단방향 예측으로 수정됨), numCurrMergeCand는 1만큼 증가된다. 그러한 추가된 모션 후보들은 '절단된 List1-예측된 후보'라고 명명된다.
풀 프루닝이 적용된다.
numCurrMergeCand가 5보다 작고 A1, B1, B0, A0, B2, Col 및 Col2로부터 도출된 각각의 모션 후보들에 대해, 모션 후보가 양방향 예측이면,
List 0 참조 화상의 슬라이스 QP가 List 1 참조 화상의 슬라이스 QP보다 작으면, List 1의 모션 정보는 List 0 참조 화상으로 먼저 스케일링되고, 2개의 MV의 평균(하나는 원래의 List 0으로부터의 것이고, 다른 하나는 List 1로부터의 스케일링된 MV임)은 병합 리스트에 추가되고, 즉 List 0 모션 후보로부터의 평균된 단방향 예측이고 numCurrMergeCand가 1만큼 증가된다.
그렇지 않으면, List 0의 모션 정보가 먼저 List 1 참조 화상으로 스케일링되고, 2개의 MV의 평균(하나는 원래의 List 1로부터의 것이고, 다른 하나는 List 0으로부터의 스케일링된 MV임)이 병합 리스트에 추가되고, 즉 List 1 모션 후보로부터의 평균된 단방향 예측이고 numCurrMergeCand가 1만큼 증가된다.
풀 프루닝이 적용된다.
numCurrMergeCand가 5보다 작으면, 제로 모션 벡터 후보들이 추가된다.
2.2.3.2. 적응 가중 프로세스
각각의 삼각형 예측 단위를 예측한 후에, 2개의 삼각형 예측 단위들 사이의 대각선 에지에 적응 가중 프로세스가 적용되어 전체 CU에 대한 최종 예측을 도출한다. 2개의 가중치 그룹은 다음과 같이 정의된다:
제1 가중치 그룹: {7/8, 6/8, 4/8, 2/8, 1/8} 및 {7/8, 4/8, 1/8}은 각각 휘도(luminance) 및 색차(chrominance) 샘플들에 대해 사용되고;
제2 가중치 그룹: {7/8, 6/8, 5/8, 4/8, 3/8, 2/8, 1/8} 및 {6/8, 4/8, 2/8}은 각각 휘도 및 색차 샘플들에 대해 사용되고;
가중치 그룹은 2개의 삼각형 예측 단위의 모션 벡터들의 비교에 기초하여 선택된다. 제2 가중치 그룹은 2개의 삼각형 예측 단위의 참조 화상들이 서로 상이하거나 그들의 모션 벡터 차이가 16 픽셀들보다 클 때 사용된다. 그렇지 않으면, 제1 가중치 그룹이 사용된다. 예가 도 15에 도시되어 있다.
2.2.3.3. 모션 벡터 저장
삼각형 예측 단위들의 모션 벡터들(도 16에서 Mv1 및 Mv2)은 4×4 그리드들로 저장된다. 각각의 4×4 그리드에 대해, CU에서의 4×4 그리드의 위치에 따라 단방향 예측 또는 양방향 예측 모션 벡터가 저장된다. 도 16에 도시된 바와 같이, 비-가중 영역에 위치된(즉, 대각선 에지에 위치되지 않은) 4×4 그리드에 대해 Mv1 또는 Mv2 중 어느 하나인 단방향 예측 모션 벡터가 저장된다. 다른 한편으로, 가중 영역에 위치된 4×4 그리드에 대해 양방향 예측 모션 벡터가 저장된다. 양방향 예측 모션 벡터는 다음의 규칙에 따라 Mv1 및 Mv2로부터 도출된다:
Mv1 및 Mv2가 상이한 방향들(L0 또는 L1)로부터의 모션 벡터를 갖는 경우, Mv1 및 Mv2는 단순히 조합되어 양방향 예측 모션 벡터를 형성한다.
Mv1 및 Mv2 둘 다가 동일한 L0(또는 L1) 방향으로부터의 것인 경우,
Mv2의 참조 화상이 L1(또는 L0) 참조 화상 리스트 내의 화상과 동일하면, Mv2는 화상으로 스케일링된다. Mv1 및 스케일링된 Mv2가 조합되어 양방향 예측 모션 벡터를 형성한다.
Mv1의 참조 화상이 L1(또는 L0) 참조 화상 리스트 내의 화상과 동일하면, Mv1은 화상으로 스케일링된다. 스케일링된 Mv1 및 Mv2가 조합되어 양방향 예측 모션 벡터를 형성한다.
그렇지 않으면, 가중 영역에 대해 Mv1만이 저장된다.
2.2.3.4. 삼각형 예측 모드(TPM)의 시그널링
TPM이 사용되는지를 지시하는 1 비트 플래그가 먼저 시그널링될 수 있다. 그 후, 2개의 분할 패턴(도 13에 묘사된 바와 같은)의 지시, 및 2개의 파티션 각각에 대한 선택된 병합 인덱스들이 추가로 시그널링된다.
2.2.3.4.1 TPM 플래그의 시그널링
하나의 루마 블록의 폭 및 높이를 각각 W 및 H로 표시하자. W*H < 64이면, 삼각형 예측 모드가 디스에이블된다.
하나의 블록이 아핀 모드로 코딩될 때, 삼각형 예측 모드가 또한 디스에이블된다.
하나의 블록이 병합 모드로 코딩될 때, 그 블록에 대해 삼각형 예측 모드가 인에이블되는지 또는 디스에이블되는지를 지시하기 위해 1 비트 플래그가 시그널링될 수 있다.
플래그는 다음 수학식에 기초하여 3개의 컨텍스트로 코딩된다:
Ctx 인덱스 = ( (이용가능한 왼쪽 블록 L && L이 TPM으로 코딩됨?) ) 1: 0 )
+ ( (이용가능한 위의 블록 A && A가 TPM으로 코딩됨?) ) 1: 0 );
2.2.3.4.2. 2개의 분할 패턴(도 13에 묘사된 바와 같은)의 지시, 및 2개의 파티션 각각에 대한 선택된 병합 인덱스들의 시그널링
분할 패턴들, 2개의 파티션의 병합 인덱스들은 공동으로 코딩된다는 점에 유의한다. 2개의 파티션이 동일한 참조 인덱스를 사용할 수 없는 것이 제한된다. 따라서, 2(분할 패턴) * N(병합 후보들의 최대 수) * (N-1)개의 가능성이 있고, 여기서 N은 5로 설정된다. 하나의 지시가 코딩되고, 파티션 유형 간의 맵핑에서, 2개의 병합 인덱스가 아래에 정의된 어레이로부터 도출된다:
const uint8_t g_TriangleCombination[TRIANGLE_MAX_NUM_CANDS][3] = {
{ 0, 1, 0 }, { 1, 0, 1 }, { 1, 0, 2 }, { 0, 0, 1 }, { 0, 2, 0 },
{ 1, 0, 3 }, { 1, 0, 4 }, { 1, 1, 0 }, { 0, 3, 0 }, { 0, 4, 0 },
{ 0, 0, 2 }, { 0, 1, 2 }, { 1, 1, 2 }, { 0, 0, 4 }, { 0, 0, 3 },
{ 0, 1, 3 }, { 0, 1, 4 }, { 1, 1, 4 }, { 1, 1, 3 }, { 1, 2, 1 },
{ 1, 2, 0 }, { 0, 2, 1 }, { 0, 4, 3 }, { 1, 3, 0 }, { 1, 3, 2 },
{ 1, 3, 4 }, { 1, 4, 0 }, { 1, 3, 1 }, { 1, 2, 3 }, { 1, 4, 1 },
{ 0, 4, 1 }, { 0, 2, 3 }, { 1, 4, 2 }, { 0, 3, 2 }, { 1, 4, 3 },
{ 0, 3, 1 }, { 0, 2, 4 }, { 1, 2, 4 }, { 0, 4, 2 }, { 0, 3, 4 }};
파티션 유형(45도 또는 135도) = g_TriangleCombination[시그널링된 지시][0];
후보 A의 병합 인덱스 = g_TriangleCombination[시그널링된 지시][1];
후보 B의 병합 인덱스 = g_TriangleCombination[시그널링된 지시][2];
2개의 모션 후보 A 및 B가 도출되면, 2개의 파티션의 (PU1 및 PU2) 모션 정보가 A 또는 B 중 어느 하나로부터 설정될 수 있다. PU1이 병합 후보 A 또는 B의 모션 정보를 사용하는지는 2개의 모션 후보의 예측 방향들에 의존한다. 표 1은 2개의 도출된 모션 후보 A 및 B, 그리고 2개의 파티션 간의 관계를 보여준다.
표 1: 도출된 2개의 병합 후보(A, B)로부터의 파티션의 모션 정보의 도출
2.2.3.4.3. 지시(merge_triangle_idx로 표시됨)의 엔트로피 코딩
merge_triangle_idx는 범위 [0, 39] 내에 있다(언급된 수 포함). K차 EG(Exponential Golomb) 코드가 merge_triangle_idx의 이진화를 위해 사용되고, 여기서 K는 1로 설정된다.
K차 EG
더 적은 수의 비트들로 더 큰 수들을 인코딩하기 위해(더 작은 수들을 인코딩하기 위해 더 많은 비트들을 사용하는 대가로), 이는 음이 아닌 정수 파라미터 k를 사용하여 일반화될 수 있다. 차수-k exp-Golomb 코드로 음이 아닌 정수 x를 인코딩하기 위해:
위에 기술된 차수-0 exp-Golomb 코드를 사용하여 를 인코딩하고, 그 후
이진으로 x mod 2k를 인코딩한다
표 2: Exp-Golomb-k 코딩 예들
2.2.4. 오버랩 블록 모션 보상
오버랩 블록 모션 보상(OBMC)은 H.263에서 이전에 사용되었다. JEM에서는, H.263에서와 달리, OBMC는 CU 레벨에서의 구문을 사용하여 스위치 온 및 오프될 수 있다. JEM에서 OBMC가 사용될 때, OBMC는 CU의 오른쪽 및 하단 경계들을 제외한 모든 모션 보상(MC) 블록 경계들에 대해 수행된다. 더욱이, 그것은 루마 성분 및 크로마 성분 둘 다에 적용된다. JEM에서, MC 블록은 코딩 블록에 대응한다. CU가 서브-CU 모드(서브-CU 병합, 아핀 및 FRUC 모드를 포함함)로 코딩될 때, CU의 각각의 서브-블록은 MC 블록이다. 균일한 방식으로 CU 경계들을 처리하기 위해, OBMC는 모든 MC 블록 경계들에 대해 서브-블록 레벨에서 수행되고, 여기서 서브-블록 크기는 도 18에 예시된 바와 같이 4×4와 동등하게 설정된다.
OBMC가 현재 서브-블록에 적용될 때, 현재 모션 벡터들 이외에, 4개의 연결된 이웃 서브-블록들의 모션 벡터들은, 이용가능하고 현재 모션 벡터와 동일하지 않다면, 또한 현재 서브-블록에 대한 예측 블록을 도출하기 위해 사용된다. 다수의 모션 벡터에 기초한 이들 다수의 예측 블록은 현재 서브-블록의 최종 예측 신호를 생성하기 위해 조합된다.
이웃 서브-블록의 모션 벡터들에 기초한 예측 블록은 PN으로서 표시되고, N은 이웃하는 위, 아래, 왼쪽 오른쪽 서브-블록에 대한 인덱스를 지시하고, 현재 서브-블록의 모션 벡터에 기초한 예측 블록은 PC로서 표시된다. PN이 현재 서브-블록에 대해 동일한 모션 정보를 포함하는 이웃 서브-블록의 모션 정보에 기초할 때, OBMC는 PN으로부터 수행되지 않는다. 그렇지 않으면, 모든 PN 샘플이 PC 내의 동일한 샘플에 추가되는데, 즉, PN의 4개의 행/열이 PC에 추가된다. 가중치 {1/4, 1/8, 1/16, 1/32}은 PN을 위해 사용되고 가중치 {3/4, 7/8, 15/16, 31/32}은 PC를 위해 사용된다. 예외는 작은 MC 블록들이고(즉, 코딩 블록의 높이 또는 폭이 4와 동등하거나 CU가 서브-CU 모드로 코딩될 때), 이에 대해 PN의 2개의 행/열만이 PC에 추가된다. 이 경우 가중치 {1/4, 1/8}은 PN을 위해 사용되고 가중치 {3/4, 7/8}은 PC를 위해 사용된다. 수직으로(수평으로) 이웃 서브-블록의 모션 벡터들에 기초하여 생성되는 PN에 대해, PN의 동일한 행(열) 내의 샘플들이 동일한 가중치를 이용하여 PC에 추가된다.
JEM에서, 256개 루마 샘플보다 적거나 그와 동등한 크기를 갖는 CU에 대해, 현재 CU에 대해 OBMC가 적용되는지 여부를 지시하기 위해 CU 레벨 플래그가 시그널링된다. 256개 루마 샘플보다 큰 크기를 갖거나 AMVP 모드로 코딩되지 않은 CU들에 대해, OBMC가 디폴트로 적용된다. 인코더에서, OBMC가 CU에 적용될 때, 모션 추정 스테이지 동안 그의 영향이 고려된다. 상단 이웃 블록 및 왼쪽 이웃 블록의 모션 정보를 사용하여 OBMC에 의해 형성된 예측 신호는 현재 CU의 원래 신호의 상단 및 왼쪽 경계들을 보상하기 위해 사용되고, 그 후 정상 모션 추정 프로세스가 적용된다.
2.2.5. 로컬 조명 보상
로컬 조명 보상(Local Illumination Compensation, LIC)은, 스케일링 인자 a 및 오프셋 b를 사용하여, 조명 변화에 대한 선형 모델에 기초한다. 그리고 그것은 각각의 인터-모드 코딩된 코딩 단위(CU)에 대해 적응적으로 인에이블되거나 디스에이블된다.
LIC가 CU에 적용될 때, 현재 CU의 이웃 샘플들 및 그들의 대응하는 참조 샘플들을 사용하여 파라미터들 a 및 b를 도출하기 위해 최소 제곱 오차 방법이 이용된다. 더 구체적으로, 도 19에 예시된 바와 같이, CU의 서브샘플링된(2:1 서브샘플링) 이웃 샘플들 및 참조 화상 내의 대응하는 샘플들(현재 CU 또는 서브-CU의 모션 정보에 의해 식별됨)이 사용된다. IC 파라미터들은 각각의 예측 방향에 대해 개별적으로 도출되고 적용된다.
CU가 병합 모드로 코딩될 때, 병합 모드에서의 모션 정보 사본과 유사한 방식으로, LIC 플래그는 이웃 블록들로부터 복사된다; 그렇지 않으면, LIC가 적용되는지 여부를 지시하기 위해 LIC 플래그가 CU에 대해 시그널링된다.
LIC가 화상에 대해 인에이블될 때, LIC가 CU에 대해 적용되는지 여부를 결정하기 위해 추가적인 CU 레벨 RD 검사가 필요하다. LIC가 CU에 대해 인에이블될 때, 정수 pel 모션 탐색 및 분수 pel 모션 탐색을 위해 각각, SAD 및 SATD 대신에, 평균-제거된 절대 차이의 합(mean-removed sum of absolute difference, MR-SAD) 및 평균-제거된 절대 하다마르-변환된 차이의 합(mean-removed sum of absolute Hadamard-transformed difference, MR-SATD)이 사용된다.
인코딩 복잡성을 감소시키기 위해, 다음의 인코딩 스킴이 JEM에서 적용된다.
현재 화상과 그것의 참조 화상들 사이에 명백한 조명 변화가 없을 때 전체 화상에 대해 LIC가 디스에이블된다. 이러한 상황을 식별하기 위해, 현재 화상의 히스토그램들 및 현재 화상의 모든 참조 화상이 인코더에서 계산된다. 현재 화상과 현재 화상의 모든 참조 화상 사이의 히스토그램 차이가 주어진 임계치보다 작으면, 현재 화상에 대해 LIC가 디스에이블된다; 그렇지 않으면, 현재 화상에 대해 LIC가 인에이블된다.
2.2.6. 아핀 모션 보상 예측
HEVC에서, 병진 모션 모델만이 모션 보상 예측(MCP)에 적용된다. 현실 세계에 있는 동안, 많은 종류의 모션, 예를 들어, 줌 인/아웃, 회전, 원근(perspective) 모션들 및 다른 비정규 모션들이 있다. JEM에서는, 단순화된 아핀 변환 모션 보상 예측이 적용된다. 도 20에 도시된 바와 같이, 블록의 아핀 모션 필드는 2개의 제어 포인트 모션 벡터들에 의해 기술된다.
블록의 모션 벡터 필드(MVF)는 다음의 수학식에 의해 기술된다:
6-파라미터 아핀에 대해,
여기서 (v0x, v0y)는 왼쪽 상단 모서리 제어 포인트의 모션 벡터이고, (v1x, v1y)은 오른쪽 상단 모서리 제어 포인트의 모션 벡터이고, (v2x, v2y)는 왼쪽 하단 모서리 제어 포인트의 모션 벡터이고, (x, y)는 현재 블록 내의 왼쪽 상단 샘플에 대한 대표 포인트의 좌표를 나타낸다. VTM에서, 대표 포인트는 서브-블록의 중심 위치로 정의되는데, 예를 들어, 현재 블록 내의 왼쪽 상단 샘플에 대한 서브-블록의 왼쪽 상단 모서리의 좌표가 (xs, ys)일 때, 대표 포인트의 좌표는 (xs+2, ys+2)로 정의된다.
모션 보상 예측을 더 단순화하기 위해, 서브-블록 기반 아핀 변환 예측이 적용된다. 서브-블록 크기 M × N은 수학식 2에서와 같이 도출되고, 여기서 MvPre는 모션 벡터 분수 정확도(JEM에서 1/16)이고, (v2x, v2y)는 수학식 1에 따라 계산된 왼쪽 하단 제어 포인트의 모션 벡터이다.
수학식 2에 의해 도출된 후에, M 및 N은 필요하다면 그것을 w 및 h의 제수(divisor)로 각각 만들기 위해 하향 조정되어야 한다.
각각의 M×N 서브-블록의 모션 벡터를 도출하기 위해, 도 21에 도시된 바와 같이, 각각의 서브-블록의 중심 샘플의 모션 벡터는 수학식 1에 따라 계산되고, 1/16 분수 정확도로 라운딩된다. 그 후 본 명세서의 다른 곳에서 언급되는 모션 보상 보간 필터들을 적용하여, 도출된 모션 벡터를 갖는 각각의 서브-블록의 예측을 생성한다.
MCP 후에, 각각의 서브-블록의 높은 정확도의 모션 벡터는 라운딩되어 정상 모션 벡터와 동일한 정확도로 저장된다.
2.2.6.1. AF_INTER 모드
JEM에서는, 2개의 아핀 모션 모드: AF_INTER 모드 및 AF_MERGE 모드가 있다. 폭 및 높이 둘 다가 8보다 큰 CU들에 대해, AF_INTER 모드가 적용될 수 있다. AF_INTER 모드가 사용되는지를 지시하기 위해 비트스트림에서 CU 레벨에서의 아핀 플래그가 시그널링된다. 이 모드에서, 모션 벡터 쌍 를 갖는 후보 리스트가 이웃 블록들을 사용하여 구성된다. 도 23에 도시된 바와 같이, v0은 블록 A, B 또는 C의 모션 벡터들로부터 선택된다. 이웃 블록으로부터의 모션 벡터는 참조 리스트 및 이웃 블록에 대한 참조의 POC, 현재 CU에 대한 참조의 POC 및 현재 CU의 POC 간의 관계에 따라 스케일링된다. 그리고 이웃 블록 D 및 E로부터 v1을 선택하는 접근법은 유사하다. 후보 리스트의 수가 2보다 작으면, 리스트는 AMVP 후보들 각각을 중복시키는 것에 의해 구성된 모션 벡터 쌍에 의해 패딩된다. 후보 리스트가 2보다 큰 경우, 후보들은 먼저 이웃 모션 벡터들의 일관성(쌍 후보에서의 2개의 모션 벡터의 유사성)에 따라 분류되고 처음 2개의 후보만이 유지된다. 어느 모션 벡터 쌍 후보가 현재 CU의 제어 포인트 모션 벡터 예측(CPMVP)으로서 선택되는지를 결정하기 위해 RD 비용 검사가 사용된다. 그리고 후보 리스트에서의 CPMVP의 위치를 지시하는 인덱스가 비트스트림에서 시그널링된다. 현재 아핀 CU의 CPMVP가 결정된 후에, 아핀 모션 추정이 적용되고 제어 포인트 모션 벡터(CPMV)가 발견된다. 그 후 CPMV와 CPMVP의 차이가 비트스트림에서 시그널링된다.
AF_INTER 모드에서, 4/6 파라미터 아핀 모드가 사용될 때, 2/3 제어 포인트들이 요구되고, 따라서 도 22에 도시된 바와 같이, 이들 제어 포인트에 대해 2/3 MVD가 코딩될 필요가 있다. MV를 다음과 같이 도출하는 것이 제안되는데, 즉, mvd0으로부터 mvd1 및 mvd2가 예측된다.
여기서 , mvdi 및 mv1은, 도 22b에 도시된 바와 같이, 각각 왼쪽 상단 픽셀(i = 0), 오른쪽 상단 픽셀(i = 1) 또는 왼쪽 하단 픽셀(i = 2)의 예측된 모션 벡터, 모션 벡터 차이 및 모션 벡터이다. 2개의 모션 벡터(예를 들어, mvA(xA, yA) 및 mvB(xB, yB))의 추가는 2개의 성분의 합산과 개별적으로 동등한데, 즉, newMV = mvA + mvB이고 newMV의 2개의 성분은 (xA + xB) 및 (yA + yB)로 각각 설정된다는 점에 유의한다.
2.2.6.2. AF_MERGE 모드
CU가 AF_MERGE 모드에서 적용될 때, 그것은 유효 이웃 재구성된 블록들로부터 아핀 모드로 코딩된 제1 블록을 얻는다. 그리고 후보 블록에 대한 선택 순서는 도 24 a에 도시된 바와 같이 왼쪽, 위, 오른쪽 위, 왼쪽 하단에서 왼쪽 위이다. 도 24 b에 도시된 바와 같이 이웃 왼쪽 하단 블록 A가 아핀 모드로 코딩되면, 블록 A를 포함하는 CU의 왼쪽 상단 모서리, 오른쪽 위 모서리 및 왼쪽 하단 모서리의 모션 벡터들 v2, v3 및 v4가 도출된다. 그리고 현재 CU 상의 왼쪽 상단 모서리의 모션 벡터 v0이 v2, v3 및 v4에 따라 계산된다. 둘째로, 현재 CU의 오른쪽 위의 모션 벡터 v1이 계산된다.
현재 CU v0 및 v1의 CPMV가 도출된 후에, 단순화된 아핀 모션 모델 수학식 1에 따라, 현재 CU의 MVF가 생성된다. 현재 CU가 AF_MERGE 모드로 코딩되는지를 식별하기 위해, 아핀 모드에서 적어도 하나의 이웃 블록이 코딩될 때 아핀 플래그가 비트스트림에서 시그널링된다.
아핀 병합 후보 리스트는 다음의 단계들로 구성된다:
상속된 아핀 후보들을 삽입한다
상속된 아핀 후보는 후보가 그의 유효 이웃 아핀 코딩된 블록의 아핀 모션 모델로부터 도출된다는 것을 의미한다. 공통 베이스에서, 도 25에 도시된 바와 같이, 후보 위치들에 대한 스캔 순서는: A1, B1, B0, A0 및 B2이다.
후보가 도출된 후에, 동일한 후보가 리스트에 삽입되었는지를 검사하기 위해 풀 프루닝 프로세스가 수행된다. 동일한 후보가 존재한다면, 도출된 후보는 폐기된다.
구성된 아핀 후보들을 삽입한다
아핀 병합 후보 리스트 내의 후보들의 수가 MaxNumAffineCand(이 기고문에서 5로 설정됨)보다 작으면, 구성된 아핀 후보들이 후보 리스트에 삽입된다. 구성된 아핀 후보는 각각의 제어 포인트의 이웃 모션 정보를 조합하는 것에 의해 후보가 구성되는 것을 의미한다.
제어 포인트에 대한 모션 정보는 먼저 도 25에 도시된 특정된 공간 이웃 및 시간 이웃으로부터 도출된다. CPk(k=1, 2, 3, 4)는 k번째 제어 포인트를 나타낸다. A0, A1, A2, B0, B1, B2 및 B3은 CPk(k=1, 2, 3)를 예측하기 위한 공간 위치들이고; T는 CP4를 예측하기 위한 시간 위치이다.
CP1, CP2, CP3 및 CP4의 좌표들은 각각 (0, 0), (W, 0), (H, 0) 및 (W, H)이고, 여기서 W 및 H는 현재 블록의 폭 및 높이이다.
각각의 제어 포인트의 모션 정보는 다음의 우선순위 순서에 따라 획득된다:
CP1에 대해, 검사 우선순위는 B2->B3->A2이다. B2는 이용가능하다면 사용된다. 그렇지 않고, B2가 이용가능하다면, B3이 사용된다. B2 및 B3 둘 다 이용불가능하다면, A2가 사용된다. 3개의 후보 모두가 이용불가능하다면, CP1의 모션 정보가 획득될 수 없다.
CP2에 대해, 검사 우선순위는 B1->B0이다.
CP3에 대해, 검사 우선순위는 A1->A0이다.
CP4에 대해, T가 사용된다.
둘째로, 제어 포인트들의 조합들은 아핀 병합 후보를 구성하기 위해 사용된다.
6-파라미터 아핀 후보를 구성하기 위해 3개의 제어 포인트의 모션 정보가 필요하다. 3개의 제어 포인트는 다음 4개의 조합({CP1, CP2, CP4}, {CP1, CP2, CP3}, {CP2, CP3, CP4}, {CP1, CP3, CP4}) 중 하나로부터 선택될 수 있다. 조합들 {CP1, CP2, CP3}, {CP2, CP3, CP4}, {CP1, CP3, CP4}는 왼쪽 상단, 오른쪽 상단 및 왼쪽 하단 제어 포인트들에 의해 표현되는 6-파라미터 모션 모델로 변환될 것이다.
4-파라미터 아핀 후보를 구성하기 위해 2개의 제어 포인트의 모션 정보가 필요하다. 2개의 제어 포인트는 다음 6개의 조합({CP1, CP4}, {CP2, CP3}, {CP1, CP2}, {CP2, CP4}, {CP1, CP3}, {CP3, CP4}) 중 하나로부터 선택될 수 있다. 조합들 {CP1, CP4}, {CP2, CP3}, {CP2, CP4}, {CP1, CP3}, {CP3, CP4}는 왼쪽 상단 및 오른쪽 상단 제어 포인트들에 의해 표현되는 4-파라미터 모션 모델로 변환될 것이다.
구성된 아핀 후보들의 조합들은 다음의 순서로 후보 리스트에 삽입된다:
{CP1, CP2, CP3}, {CP1, CP2, CP4}, {CP1, CP3, CP4}, {CP2, CP3, CP4}, {CP1, CP2}, {CP1, CP3}, {CP2, CP3}, {CP1, CP4}, {CP2, CP4}, {CP3, CP4}
조합의 참조 리스트 X(X는 0 또는 1임)에 대해, 제어 포인트들에서 가장 높은 사용 비율을 갖는 참조 인덱스는 리스트 X의 참조 인덱스로서 선택되고, 모션 벡터들은 참조 화상이 스케일링될 차이를 가리킨다.
후보가 도출된 후에, 동일한 후보가 리스트에 삽입되었는지를 검사하기 위해 풀 프루닝 프로세스가 수행된다. 동일한 후보가 존재한다면, 도출된 후보는 폐기된다.
제로 모션 벡터들을 이용한 패딩
아핀 병합 후보 리스트 내의 후보들의 수가 5보다 작으면, 제로 참조 인덱스들을 갖는 제로 모션 벡터들이, 리스트가 가득 찰 때까지, 후보 리스트에 삽입된다.
2.2.7. 양방향 광학 흐름
양방향 광학 흐름(Bi-directional Optical flow, BIO)은 양방향 예측을 위한 블록 단위(block-wise) 모션 보상에 더하여 수행되는 샘플 단위(sample-wise) 모션 리파인먼트이다. 샘플-레벨 모션 리파인먼트는 시그널링을 사용하지 않는다.
를 블록 모션 보상 후에 참조 k(k=0, 1)로부터의 루마 값이고, , 는 각각 기울기의 수평 및 수직 성분들이라고 하자. 광학 흐름이 유효하다고 가정하면, 모션 벡터 필드 는 다음 수학식에 의해 주어진다.
이러한 광학 흐름 수학식을 각각의 샘플의 모션 궤적에 대한 에르미트 보간과 조합하면 결국에는 함수 값들 및 도함수들 , 둘 다와 매칭되는 고유한 3차 다항식을 야기한다. t=0에서 이 다항식의 값은 BIO 예측이다:
여기서, 는 도 26에 도시된 바와 같은 참조 프레임들까지의 거리들을 나타낸다. 거리들 는 Ref0 및 Ref1에 대한 POC에 기초하여 계산된다: τ0=POC(current) - POC(Ref0), τ1= POC(Ref1) - POC(current). 양쪽 예측들이 동일한 시간 방향으로부터 유래한다면(둘 다 과거로부터 또는 둘 다 미래로부터), 부호들은 상이하다(즉, ). 이 경우, BIO는 예측이 동일한 시간 순간으로부터 유래하지 않는 경우(즉, )에만 적용되고, 양쪽 참조된 영역들은 비-제로 모션()을 갖고 블록 모션 벡터들은 시간 거리()에 비례한다.
모션 벡터 필드 는 포인트들 A 및 B에서의 값들 간의 차이 Δ를 최소화하는 것에 의해 결정된다(도 9에서 모션 궤적과 참조 프레임 평면들의 교차). 모델은 Δ에 대한 로컬 테일러 급수의 제1 선형 항만을 사용한다:
수학식 5에서의 모든 값들은 지금까지의 표기법으로부터 생략된 샘플 위치 에 의존한다. 모션이 로컬 주변 영역에서 일관된다고 가정하면, 현재 예측된 포인트 에 중심을 둔 (2M+1)x(2M+1) 정사각형 윈도우 Ω 내부에서 Δ를 최소화하고, 여기서 M은 2와 동등하다:
이 최적화 문제에 대해, JEM은 먼저 수직 방향에서 그리고 그 후 수평 방향에서 최소화를 행하는 단순화된 접근법을 사용한다. 이는 다음을 야기하고
여기서,
제로 또는 매우 작은 값에 의한 나눗셈을 피하기 위해, 규칙화 파라미터들 r 및 m이 수학식 7 및 수학식 8에 도입된다.
여기서 d는 비디오 샘플들의 비트 깊이이다.
BIO에 대한 메모리 액세스를 정규 양방향 예측 모션 보상에 대한 것과 동일하게 유지하기 위해, 모든 예측 및 기울기 값들 가 현재 블록 내부의 위치들에 대해서만 계산된다. 수학식 9에서, 예측 블록의 경계 상의 현재 예측 포인트에 중심을 둔 (2M+1)x(2M+1) 정사각형 윈도 Ω는(도 27 (a)에 도시된 바와 같이) 블록 외부의 위치들에 액세스할 필요가 있다. JEM에서, 블록 외부의 의 값들은 블록 내부의 가장 가까운 이용가능한 값과 동등하게 설정된다. 예를 들어, 이는 도 27 (b)에 도시된 바와 같이 패딩으로서 구현될 수 있다.
BIO에 의해, 모션 필드가 각각의 샘플에 대해 리파인될 수 있는 것이 가능하다. 계산 복잡성을 감소시키기 위해, BIO의 블록 기반 설계가 JEM에서 사용된다. 모션 리파인먼트는 4x4 블록에 기초하여 계산된다. 블록 기반 BIO에서, 4x4 블록 내의 모든 샘플들의 수학식 9에서의 sn의 값들이 집계되고, 그 후 sn의 집계된 값들이 4x4 블록에 대한 BIO 모션 벡터 오프셋을 도출하기 위해 사용된다. 더 구체적으로, 다음의 공식이 블록 기반 BIO 도출을 위해 사용된다:
여기서 bk는 예측된 블록의 k번째 4x4 블록에 속하는 샘플들의 세트를 나타낸다. 수학식 7 및 8에서의 sn은 연관된 모션 벡터 오프셋들을 도출하기 위해 ( (sn,bk) >> 4 )로 대체된다.
일부 경우들에서, BIO의 MV 연대(regiment)는 잡음 또는 비정규 모션으로 인해 신뢰할 수 없을 수 있다. 따라서, BIO에서, MV 연대의 크기는 임계치 값 thBIO로 클리핑된다. 임계치 값은 현재 화상의 참조 화상들이 모두 한 방향으로부터 유래한 것인지에 기초하여 결정된다. 현재 화상의 모든 참조 화상이 한 방향으로부터 유래한 것이면, 임계치의 값은 12×214-d로 설정된다; 그렇지 않으면, 그것은 12×213-d로 설정된다.
BIO에 대한 기울기들은 HEVC 모션 보상 프로세스(2D 분리가능 FIR)와 부합하는 연산들을 사용하는 모션 보상 보간과 동시에 계산된다. 이 2D 분리가능 FIR에 대한 입력은 모션 보상 프로세스 및 블록 모션 벡터의 분수 부분에 따른 분수 위치(fracX, fracY)에 대한 것과 동일한 참조 프레임 샘플이다. 수평 기울기 신호의 경우 먼저 디-스케일링 시프트 d-8을 갖는 분수 위치 fracY에 대응하는 BIOfilterS를 사용하여 수직으로 보간되고, 그 후 18-d만큼 디-스케일링 시프트를 갖는 분수 위치 fracX에 대응하는 수평 방향으로 기울기 필터 BIOfilterG가 적용된다. 수직 기울기 의 경우 먼저 디-스케일링 시프트 d-8을 갖는 분수 위치 fracY에 대응하는 BIOfilterG를 사용하여 수직으로 기울기 필터가 적용되고, 그 후 18-d만큼 디-스케일링 시프트를 갖는 분수 위치 fracX에 대응하는 수평 방향으로 BIOfilterS를 사용하여 신호 변위가 수행된다. 기울기 계산 BIOfilterG 및 신호 변위 BIOfilterF를 위한 보간 필터의 길이는 합리적인 복잡성을 유지하기 위해 더 짧다(6-탭). 표 3은 BIO에서 블록 모션 벡터의 상이한 분수 위치들에 대한 기울기 계산을 위해 사용되는 필터들을 보여준다. 표 4는 BIO에서의 예측 신호 생성을 위해 사용되는 보간 필터들을 보여준다.
표 1: BIO에서의 기울기 계산을 위한 필터들
표 2: BIO에서의 예측 신호 생성을 위한 보간 필터들
JEM에서, BIO는 2개의 예측이 상이한 참조 화상으로부터 유래한 것일 때 모든 양방향 예측된 블록에 적용된다. LIC가 CU에 대해 인에이블될 때, BIO는 디스에이블된다.
JEM에서, OBMC는 정상 MC 프로세스 후에 블록에 대해 적용된다. 계산 복잡성을 감소시키기 위해, OBMC 프로세스 동안 BIO가 적용되지 않는다. 이는 BIO가 그 자신의 MV를 사용할 때만 블록에 대해 MC 프로세스에서 적용되고 이웃 블록의 MV가 OBMC 프로세스 동안 사용될 때에는 MC 프로세스에서 적용되지 않는다는 것을 의미한다.
2.2.8. 디코더 측 모션 벡터 리파인먼트
양방향 예측 동작에서, 하나의 블록 영역의 예측에 대해, 각각 list0의 모션 벡터(MV) 및 list1의 MV를 사용하여 형성된 2개의 예측 블록이 조합되어 단일 예측 신호를 형성한다. 디코더 측 모션 벡터 리파인먼트(decoder-side motion vector refinement, DMVR) 방법에서, 양방향 예측의 2개의 모션 벡터는 쌍방 템플릿 매칭 프로세스에 의해 추가로 리파인된다. 쌍방 템플릿 매칭은 추가적인 모션 정보의 송신 없이 리파인된 MV를 획득하기 위해 참조 화상들 내의 재구성 샘플들과 쌍방 템플릿 간의 왜곡 기반 탐색을 수행하기 위해 디코더에서 적용된다.
DMVR에서, 쌍방 템플릿은, 도 28에 도시된 바와 같이, 각각, list0의 초기 MV0 및 list1의 MV1로부터, 2개의 예측 블록의 가중된 조합(즉, 평균)으로서 생성된다. 템플릿 매칭 동작은 생성된 템플릿과 참조 화상에서의 샘플 영역(초기 예측 블록 주위의) 사이의 비용 측정치들을 계산하는 것으로 구성된다. 2개의 참조 화상 각각에 대해, 최소 템플릿 비용을 산출하는 MV가 원래의 것을 대체하기 위해 해당 리스트의 업데이트된 MV로서 간주된다. JEM에서, 9개의 MV 후보가 각각의 리스트에 대해 탐색된다. 9개의 MV 후보는 원래의 MV 및 수평 또는 수직 방향 중 어느 하나 또는 둘 다에서 원래의 MV에 대한 하나의 루마 샘플 오프셋을 갖는 8개의 주위의 MV를 포함한다. 마지막으로, 2개의 새로운 MV, 즉, 도 28에 도시된 바와 같은 MV0' 및 MV1'이 최종 양방향 예측 결과들을 생성하기 위해 사용된다. 절대 차이들의 합(SAD)이 비용 측정치로서 사용된다. 하나의 주위의 MV에 의해 생성되는 예측 블록의 비용을 계산할 때, (정수 pel로의) 라운딩된 MV는 실제 MV 대신에 예측 블록을 획득하기 위해 실제로 사용된다는 점에 유의한다.
DMVR은, 추가적인 구문 요소들의 송신 없이, 과거의 참조 화상으로부터의 하나의 MV와 미래의 참조 화상으로부터의 다른 MV와의 양방향 예측의 병합 모드에 적용된다. JEM에서, LIC, 아핀 모션, FRUC, 또는 서브-CU 병합 후보가 CU에 대해 인에이블될 때, DMVR은 적용되지 않는다.
기존의 비디오 코딩 표준 및 미래의 비디오 코딩 표준 둘 다를 향상시킬 수 있는, 개시된 기술에 기초한 LUT 기반 모션 벡터 예측이 다양한 구현들에 대해 기술된 이하의 예들에서 설명된다. LUT들은 인코딩/디코딩 프로세스가 이력 데이터(예를 들어, 처리된 블록들)에 기초하여 수행되는 것을 허용하기 때문에, LUT 기반 모션 벡터 예측은 이력 기반 모션 벡터 예측(HMVP) 방법이라고도 지칭될 수 있다. LUT 기반 모션 벡터 예측 방법에서는, 이전에 코딩된 블록들로부터의 모션 정보를 갖는 하나 또는 다수의 표가 인코딩/디코딩 프로세스 동안 유지된다. LUT들에 저장된 이들 모션 후보는 HMVP 후보들이라고 명명된다. 하나의 블록의 인코딩/디코딩 동안, LUT들에서의 연관된 모션 정보가 모션 후보 리스트들(예를 들어, 병합/AMVP 후보 리스트들)에 추가될 수 있고, 하나의 블록을 인코딩/디코딩한 후에, LUT들이 업데이트될 수 있다. 그 후 업데이트된 LUT들은 후속 블록들을 코딩하기 위해 사용된다. 즉, LUT들에서의 모션 후보들의 업데이트는 블록들의 인코딩/디코딩 순서에 기초한다. 아래의 예들은 일반적인 개념들을 설명하기 위한 예들로서 간주되어야 한다. 이들 예는 좁은 방식으로 해석되어서는 안 된다. 더욱이, 이들 예는 임의의 방식으로 조합될 수 있다.
3. 실시예들에 의해 해결된 문제들의 예들
삼각형 파티션의 설계에서, 하나의 블록은 2개의 파티션으로 분할될 수 있다. 모션 보상으로 인한 메모리 대역폭을 절약하기 위해, 2개의 파티션이 단방향 예측되어야 하는 것이 요구된다. 모션 보상 프로세스 동안, 대각선 에지에 대해 양방향 예측이 사용되고 모든 다른 나머지 부분들에 대해 단방향 예측이 사용된다. 각각의 파티션에 대해 양방향 예측이 허용되면, 대각선 에지에 위치된 샘플들은 4개의 MV를 가질 것이고, 이들 중 2개는 하나의 파티션으로부터 유래한 것이고 이들 중 2개는 다른 파티션으로부터 유래한 것이다. 그러한 설계는 다음의 문제들을 갖는다:
병합 리스트 구성 프로세스에서는 공간 이웃 블록들 및 시간 블록들만이 검사된다.
이력 기반 모션 벡터 예측 기술은 삼각형 파티션에 대해 허용되지 않는다.
인트라 블록 복사 모드로 삼각형 파티션 모드를 어떻게 핸들링할지는 알려져 있지 않다.
4. 실시예들의 예들
제안된 기법들은 비-정사각형/비-직사각형 파티션들, 예를 들어, 기하학적 파티션들 중 임의의 것에 적용될 수 있다. 다음의 설명들에서, "삼각형 파티션 모드"를 사용하여 비-정사각형/비-직사각형 파티션 모드(TPM)의 예로서 하나를 나타낸다. 다른 종류의 파티션들도 적용가능할 수 있다는 점에 유의해야 한다.
아래의 상세한 기법들은 일반적인 개념들을 설명하기 위한 예들로서 간주되어야 한다. 이들 기법은 좁은 방식으로 해석되어서는 안 된다. 더욱이, 이들 방법은 임의의 방식으로 조합될 수 있다. 블록 크기를 WxH로 표시한다.
1. 병합 모드로 삼각형 예측 모드를 항상 적용하는 대신에, 인트라-코딩된 블록들, 또는 비-병합 인터-코딩된 블록들에 대해 삼각형 예측 모드를 인에이블하는 것이 제안된다.
a. 일 예에서, 2개의 파티션은 상이한 인트라 예측 모드들로 예측된다.
b. 대안적으로, 더욱이, 에지 경계들을 따른 샘플들의 예측 값들이 추가로 필터링될 수 있다.
c. 일 예에서, 2개의 삼각형 파티션의 모션 정보(예컨대 MV)는 서로를 예측할 수 없다;
i. 대안적으로, 하나의 삼각형 파티션의 모션 정보(예컨대 MV)가 다른 파티션을 예측하기 위해 사용될 수 있다.
2. 하나의 블록이 2개의 기하학적 파티션으로 분할될 때, 하나의 파티션은 인트라 모드로 코딩될 수 있고 다른 것은 인터 모드로 코딩될 수 있는 것이 제안된다.
a. 일 예에서, 인터-코딩된 파티션에 대해, 양방향 예측이 또한 적용될 수 있다.
b. 일 예에서, 그러한 방법은 현재 블록이 병합 모드로 코딩될 때 시그널링될 수 있는데, 즉, 인터-코딩된 파티션에 대해, 병합 인덱스와 함께 모션 정보가 시그널링될 수 있다.
c. 대안적으로, 더욱이, 에지 경계들을 따른 샘플들의 예측 값들이 추가로 필터링될 수 있다.
d. 일 예에서, 인트라 예측 모드들의 서브세트만이 적용될 수 있다.
i. 서브세트들은 2개의 파티션에 대해 상이할 수 있다.
ii. 서브세트들은 파티션의 위치에 의존할 수 있다.
iii. 서브세트들은 블록 크기 및/또는 블록 형상에 의존할 수 있다.
3. 불릿 1 및 불릿 2에 개시된 바와 같이, 병합 또는 비-병합 인터-코딩된 블록은 현재 화상을 참조 화상으로서 사용할 수 있다.
4. 하나의 블록을 삼각형 파티션 모드로 코딩할 때, 비-인접 공간 블록들의 인터/인트라 코딩된 정보가 또한 현재 블록을 코딩하기 위한 예측자들로서 취급될 수 있는 것이 제안된다.
a. 일 예에서, 비-인접 공간 블록들의 모션 정보가 이용될 수 있다.
b. 일 예에서, 비-인접 공간 블록들의 인트라 예측 모드가 이용될 수 있다.
c. 대안적으로, 시간 블록들의 코딩된 정보가 하나의 블록을 TPM으로 코딩하기 위해 추가로 이용될 수 있다.
5. TPM 코딩된 블록들에 대한 병합 리스트 구성 프로세스에서 HMVP 후보들로부터 도출된 모션 후보들을 추가하는 것이 제안되고, 여기서 HMVP(이력 기반 모션 벡터 예측) 후보는 이전에 코딩된 블록들로부터 도출되거나 상속된 모션 정보이다.
HMVP 후보 저장을 위한 표 유지
a. HMVP 후보들의 유지 및/또는 저장하기 위한 표들의 업데이트 및/또는 HMVP 후보들은 정상 모션 벡터에 대한 HMVP와 동일할 수 있다.
b. 일 예에서, 비-TPM 코딩된 블록들 및 TPM 코딩된 블록들 둘 다에 대해 이용될 수 있는 HMVP 후보들 저장을 위해 동일한 표가 유지될 수 있다.
i. 일 예에서, TPM에 의해 사용되는 모션 정보는 HMVP 저장에 넣어지지 않는다. HMVP 표(들)는 TPM 코딩된 블록을 인코딩/디코딩한 후에 업데이트되지 않는다.
c. 일 예에서, TPM 코딩된 블록들을 코딩하기 위한 HMVP 후보들을 저장하기 위한 별개의 표들이 유지될 수 있다.
i. 순수하게 TPM 코딩된 블록들로부터의 모션 정보로 HMVP 후보들 저장을 위한 표들이 유지될 수 있다.
ii. 방향 및 양방향 예측 HMVP 후보들을 각각 저장하기 위한 2개의 표가 유지될 수 있다.
iii. 제1 및 제2 파티션들의 모션 정보를 각각 저장하기 위한 2개의 표가 유지될 수 있다.
iv. List 0 및 List 1 모션 정보의 모션 정보를 각각 저장하기 위한 2개의 표가 유지될 수 있다.
v. 대안적으로, List 0으로부터 단방향 예측된, L1로부터 단방향 예측된, 및 양방향 예측된 HMVP 후보들을 각각 저장하기 위한 3개의 표가 유지될 수 있다.
d. TPM 코딩된 블록으로 코딩한 후에, HMVP 후보들 저장을 위한 표들은 업데이트되지 않을 수 있다.
i. 대안적으로, HMVP 후보들 저장을 위한 하나/다수의 표가 제1 파티션의 모션 정보로 업데이트될 수 있다.
ii. 대안적으로, HMVP 후보들 저장을 위한 하나/다수의 표가 제2 파티션의 모션 정보로 업데이트될 수 있다.
iii. 대안적으로, 2개의 HMVP 후보를 추가하는 것에 의해, HMVP 후보들 저장을 위한 하나/다수의 표가 양쪽 파티션으로부터의 모션 정보로 업데이트될 수 있다.
iv. 대안적으로, (예를 들어, 2개의 파티션이 2개의 참조 화상 리스트로부터 예측될 때) 하나의 HMVP 후보를 추가하는 것에 의해, HMVP 후보들 저장을 위한 하나/다수의 표가 양쪽 파티션으로부터의 모션 정보로 업데이트될 수 있다.
v. 1개 또는 2개의 모션 후보를 HMVP 표에 추가할지는 2개의 파티션이 동일한 참조 화상 리스트들로부터 및/또는 동일한 참조 화상으로부터 예측되는지에 의존할 수 있다.
vi. HMVP 표에 제1 파티션의 모션 정보를 추가할지 또는 제2 파티션의 모션 정보를 추가할지는 참조 화상들과 현재 화상 간의 POC 차이에 의존할 수 있다.
e. TPM- 및 비-TPM 코딩된 블록들을 코딩하기 위해 별개의 표들이 유지될 때, 표들의 업데이트는 하나의 블록의 모드에 기초하여 호출될 수 있다.
i. 일 예에서, TPM 코딩된 블록을 디코딩한 후에, 모션 정보는 TPM-코딩된 블록들을 코딩하기 위한 표를 업데이트하기 위해 사용될 수 있다.
ii. 일 예에서, 비-TPM 코딩된 블록을 디코딩한 후에, 모션 정보는 비-TPM-코딩된 블록들을 코딩하기 위한 표를 업데이트하기 위해 사용될 수 있다.
iii. 대안적으로, 더욱이, 비-TPM 코딩된 블록을 디코딩한 후에, 모션 정보는 TPM-코딩된 블록들을 코딩하기 위한 표를 업데이트하기 위해 사용될 수 있다.
TPM 코딩된 블록들에서의 HMVP 후보들의 사용
f. HMVP 후보가 TPM-코딩된 블록들에 대한 병합 리스트에 직접 추가될 수 있다.
i. 대안적으로, 하나의 HMVP 후보는 2개의 모션 후보를 도출하기 위하여 이용될 수 있고, 예를 들어, 하나는 List 0 모션 정보를 갖는 단방향 예측이고, 다른 하나는 HMVP 후보의 List 1 모션 정보를 갖는 단방향 예측이다.
ii. HMVP 후보로부터 도출/상속된 모션 후보를 공간 또는 시간 블록들로부터 도출/상속된 다른 모션 후보들과 삽입할 때 프루닝이 적용될 수 있다.
iii. HMVP 후보로부터 도출/상속된 모션 후보를 다른 HMVP 후보로부터 도출/상속된 모션 후보와 삽입할 때 프루닝이 적용될 수 있다.
iv. HMVP 후보로부터 도출/상속된 모션 후보를 동일한 HMVP 후보로부터 도출/상속된 다른 모션 후보와 삽입할 때 프루닝이 적용될 수 있다.
g. 일 예에서, 하나 또는 다수의 HMVP 후보로부터 도출된 하나 또는 다수의 모션 후보가 도 14의 블록 1-7과 같은 공간 및/또는 시간 블록들로부터 도출된 모션 후보들 후에 추가될 수 있다. 이 경우, HMVP 후보는 다른 공간/시간 병합 후보들과 동일한 방식으로 취급된다.
h. HMVP 후보들로부터 상속/도출된 모션 후보들은 공간/시간 블록들의 모션 정보에 의존하는 병합 리스트 구성 프로세스에서의 특정 단계 바로 후에 또는 전에 병합 리스트에 추가될 수 있다.
i. 대안적으로, HMVP 후보들로부터 상속/도출된 모션 후보들은 수 개의 사전 정의된 단계들 바로 후에 또는 전에 병합 리스트에 추가될 수 있다.
ii. 일 예에서, 단방향 예측을 갖는 하나 또는 다수의 HMVP 후보가 현재 설계를 갖는 모든 원래 단방향 예측된 후보들 바로 후에 추가될 수 있다.
iii. 일 예에서, 양방향 예측 또는 L0으로부터의 단방향 예측을 갖는 하나 또는 다수의 HMVP 후보가 모든 절단된 List0 예측된 후보들 바로 후에 추가될 수 있다. 대안적으로, 더욱이, HMVP 후보가 양방향 예측을 갖는 경우, List 0 모션 정보만이 유지될 수 있다.
iv. 일 예에서, 양방향 예측 또는 L1로부터의 단방향 예측을 갖는 하나 또는 다수의 HMVP 후보가 모든 절단된 List1 예측된 후보들 바로 후에 추가될 수 있다. 대안적으로, 더욱이, HMVP 후보가 양방향 예측을 갖는 경우, List 1 모션 정보만이 유지될 수 있다.
v. 일 예에서, List 0 또는 List 1 모션 후보들로부터의 모든 평균된 단방향 예측 바로 후에 하나 또는 다수의 HMVP 후보들이 추가될 수 있다.
vi. 일 예에서, List 0 또는 List 1 모션 후보들로부터의 모든 평균된 단방향 예측 바로 전에 하나 또는 다수의 HMVP 후보들이 추가될 수 있다.
i. HMVP 후보들로부터 상속된/도출된 모션 후보들이 공간/시간 블록들의 모션 정보로부터 상속된/도출된 모션 후보들과 인터리빙된 방식으로 병합 리스트에 추가될 수 있다.
j. 일 예에서, 각각의 HMVP 후보의 List 0 및 List 1로부터 도출된 모션 후보들이 다른 HMVP 후보의 List 0 및 List 1로부터 도출된 모션 후보들 전에 순서대로 추가될 수 있다.
k. 일 예에서, HMVP 후보들의 제1 세트의 List 0으로부터 도출된 모션 후보들이 HMVP 후보들의 제2 세트의 List 1로부터 도출된 것들 전에 순서대로 추가될 수 있다.
i. 일 예에서, 상기 제1 세트와 상기 제2 세트는 동일한 세트, 즉 모든 이용가능한 HMVP 후보들이다.
ii. 대안적으로, 상기 제1 세트와 상기 제2 세트는 상이할 수 있는데, 예컨대 상기 HMVP 후보들의 제1 세트가 양방향 예측 및 List 0으로부터의 단방향 예측을 갖는 HMVP 후보들을 포함하는 반면; 상기 HMVP 후보들의 제2 세트는 양방향 예측 및 List 1로부터의 단방향 예측을 갖는 HMVP 후보들을 포함한다.
iii. 제1 및 제2 세트와 연관된 HMVP 후보들의 수는 상이할 수 있다.
l. 리스트 LX의 HMVP 후보들은 리스트 L(1-X)로 먼저 스케일링되고 그 후 리스트 L(1-X)를 위해 사용될 수 있다.
i. 스케일링된 후보들은 모든 다른 후보들 후에 삽입될 수 있다.
ii. 스케일링된 후보들은 시간 후보들을 제외한 모든 다른 후보들 후에 삽입될 수 있다.
m. TPM 병합 리스트에 추가될 모션 후보들을 도출하기 위해 사용될 HMVP 후보들의 검사 순서는 HMVP 후보들의 인덱스들에 의존할 수 있다.
i. 대안적으로, 그것은 예측 방향들에 의존할 수 있다.
ii. 대안적으로, 그것은 모션 정보에 의존할 수 있다.
6. TPM 병합 리스트 구성 프로세스에서 얼마나 많은 HMVP가 검사될지는 사전 정의될 수 있다(예를 들어, 5).
a. TPM 병합 리스트 구성 프로세스에서 검사될 HMVP 후보의 수는 블록 크기/블록 형상/HMVP 후보들을 검사하기 전에 얼마나 많은 후보들이 이용가능한지에 의존할 수 있다.
b. TPM 병합 리스트 구성 프로세스에서 검사될 HMVP 후보의 수는 SPS/VPS/PPS/화상 헤더/슬라이스 헤더/타일 그룹 헤더/CTU 행들/CTU/CTU들의 그룹에서 시그널링될 수 있다.
c. 이용가능한 HMVP 후보들의 일부가 TPM 병합 리스트 구성 프로세스에서 검사되어야 할 때, HMVP 후보들의 선택은 후보 인덱스 및/또는 후보의 현재 화상 및 참조 화상의 예측 방향/MV 정보/참조 화상 인덱스/POC 거리들에 의존할 수 있다.
7. TPM 코딩된 블록에 HMVP를 적용할지 및 어떻게 적용할지는 블록 크기(예를 들어, 폭 및/또는 높이, 폭 및 높이의 비율) 또는 블록 형상(예를 들어, 정사각형 또는 비-정사각형)에 의존할 수 있다.
8. 제안된 방법들은 또한 기하학적 파티션들을 위한 다른 종류의 모션 후보 리스트들(예컨대 AMVP 리스트)에 적용가능할 수 있다.
9. HMVP 표 크기(즉, 최대 수의 이력 모션 후보들이 저장될 수 있음)는 하나 또는 다수의 모션 후보 리스트 크기의 함수에 의존할 수 있다.
a. 일 예에서, HMVP 표 크기는 정규 병합 리스트 크기, TPM 병합 리스트 크기, IBC 병합 리스트 크기, 정규 인터 AMVP 리스트 크기, 정규 인터 IBC 리스트 크기 등에 의존할 수 있다.
b. 일 예에서, HMVP 표 크기는 동일한 HMVP 표에 액세스하는 해당 모션 후보 리스트들에 의존할 수 있다.
c. 일 예에서, 함수는 수 개의 입력들 중 최대 값을 반환하는 함수 Max(입력들)일 수 있다.
d. 일 예에서, HMVP 표 크기는 Max(정규 병합 리스트 크기 - K0, TPM 병합 리스트 크기 - K1, IBC 병합 리스트 크기 - K2)로서 정의될 수 있다.
i. 일 예에서, K0=K1=K2 = 1이다.
10. HMVP 표 크기(즉, 최대 수의 이력 모션 후보들이 저장될 수 있음)는 모션 후보 리스트들에 추가될 수 있는 하나 또는 다수의 HMVP 후보 수(numHMVP에 의해 표시됨)의 함수에 의존할 수 있다.
a. 일 예에서, 그것은 모션 후보 리스트들에 추가될 수 있는 HMVP 후보들의 수(예를 들어, 정규 병합 리스트, TPM 병합 리스트, IBC 병합 리스트, 정규 인터 AMVP 리스트, 정규 인터 IBC 리스트 등)에 의존할 수 있다.
b. 일 예에서, 함수는 수 개의 입력들 중 최대 값을 반환하는 함수 Max(입력들)일 수 있다.
c. 일 예에서, HMVP 표 크기는 Max(정규 병합 리스트에 대한 numHMVP - K0, 정규 AMVP 리스트에 대한 numHMVP - K1)로서 정의될 수 있다.
ii. 일 예에서, K0=1 및 K1=0이다.
d. 일 예에서, HMVP 표 크기는 Max(정규 병합 리스트에 대한 numHMVP - K0, TPM 병합 리스트에 대한 numHMVP - K1, IBC 병합 리스트 크기에 대한 numHMVP - K2)로서 정의될 수 있다.
iii. 일 예에서, K0=K1=K2 = 1이다.
11. 하나의 코딩 모드에 대한 HMVP 표 크기는 다른 코딩 모드와 상이할 수 있고, 그것은 모션 후보 리스트 크기에 의존할 수 있다.
a. 일 예에서, 정규 병합 및 TPM 병합 리스트들에 대한 HMVP 표 크기는 정규 병합 리스트 크기에 의존할 수 있다.
iv. 일 예에서, HMVP 표 크기는 정규 병합 리스트 크기 - K0(예를 들어, K0 = 1)과 동등할 수 있다.
b. 일 예에서, 정규 병합 및 TPM 병합 리스트들에 대한 HMVP 표 크기는 정규 병합 리스트 크기 및 TPM 병합 리스트 크기에 의존할 수 있다.
v. 일 예에서, 그것은 Max(정규 병합 리스트 크기 - K0, TPM 병합 리스트 크기 - K1)로서 정의될 수 있다.
vi. 일 예에서, 정상 인터-AMVP에 대한 HVMP 표는 정규 병합 및 TPM 병합 리스트들에 대해 사용되는 것을 따른다.
c. 일 예에서, IBC-코딩된 블록들에 대한 HMVP 표 크기는 정규 병합 리스트 및/또는 TPM 병합 리스트에 대한 것에 의존한다.
vii. 예를 들어, IBC-코딩된 블록들에 대한 HMVP 표 크기는 정규 병합 리스트 및/또는 TPM 병합 리스트에 대한 것과 동등하다.
viii. 대안적으로, IBC-코딩된 병합/AVMP 블록들에 대한 HMVP 표 크기는 IBC 병합/AMVP 후보 리스트 크기의 크기에 의존할 수 있다.
d. HMVP 표 크기들의 지시들은 비트스트림에서 시그널링될 수 있다.
ix. 시그널링된 크기가 0과 동등할 때, HMVP 후보들은 어떠한 모션 후보 리스트들에도 삽입되지 않는다.
x. 일 예에서, HMVP 표 크기는 0인 것이 허용되지 않는다.
xi. 대안적으로, HMVP 표 크기 - K0이 시그널링되는데, 예를 들어, K0=1이다.
12. 모션 후보 리스트들에 추가될 수 있는 허용된 HMVP 후보들의 수의 지시들은 비트스트림에서 시그널링될 수 있다.
a. 일 예에서, 각각의 모드(예를 들어, IBC 또는 비-IBC; AMVP 병합 없음)에 대해, 허용된 HMVP 후보들의 수의 지시는 독립적으로 시그널링될 수 있다.
b. 대안적으로, 허용된 HMVP 후보들의 수의 지시들은 예측 방식으로 시그널링될 수 있다.
c. 대안적으로, 더욱이, HMVP 표 크기들은 허용된 HMVP 후보들의 수에 의존할 수 있다.
d. 예를 들어, 모션 후보 리스트들에 추가될 수 있는 허용된 HMVP 후보들의 수는 0인 것이 허용되지 않는다.
e. 대안적으로, 모션 후보 리스트들에 추가될 수 있는 허용된 HMVP 후보들의 수 - K0이 시그널링될 수 있는데, 예를 들어, K0=1이다.
f. 대안적으로, 모션 후보 리스트에 추가될 수 있는 허용된 HMVP 후보들의 수(numHMVP에 의해 표시됨) 및 모션 후보 리스트 내의 최대 모션 후보의 수(numMotionList에 의해 표시됨)의 예측 코딩이 적용될 수 있다.
xii. 일 예에서, numMotionList와 numHMVP 간의 차이가 코딩될 수 있다.
xiii. 일 예에서, (numMotionList-K0)과 numHMVP 간의 차이가 코딩될 수 있는데, 예를 들어, K0 = 1이다.
13. 모션 후보 리스트들에 추가될 수 있는 허용된 HMVP 후보들의 수는 모션 후보 리스트 크기들에 의존할 수 있다.
a. 일 예에서, 그것은 (리스트 크기 - K0)과 같은 대응하는 모션 후보 리스트 크기로부터 도출될 수 있는데, 예를 들어, K0=0 또는 1이다.
b. 일 예에서, 그것은 (표 크기 - K0)과 같은, 모션 후보 리스트에 의해 사용되는 대응하는 HMVP 표의 크기로부터 도출될 수 있는데, 예를 들어, K0=0 또는 1이다.
14. 적합성 비트스트림(conformance bitstream)은 모션 후보 리스트에 추가될 수 있는 허용된 HMVP 후보들의 수가 모션 후보 리스트 내의 최대 모션 후보의 수보다 크지 않다는 것을 만족시켜야 한다.
a. 대안적으로, 적합성 비트스트림은 모션 후보 리스트에 추가될 수 있는 허용된 HMVP 후보들의 수가 (모션 후보 리스트 내의 최대 모션 후보의 수 - K0)보다 크지 않다는 것을 만족시켜야 하는데, 예를 들어, K0=1이다.
도 29는 비디오 처리 장치(2900)의 블록도이다. 장치(2900)는 본 명세서에서 설명된 방법들 중 하나 이상을 구현하기 위해 사용될 수 있다. 장치(2900)는 스마트폰, 태블릿, 컴퓨터, 사물 인터넷(IoT) 수신기 등에서 구현될 수 있다. 장치(2900)는 하나 이상의 프로세서(2902), 하나 이상의 메모리(2904) 및 비디오 처리 하드웨어(2906)를 포함할 수 있다. 프로세서(들)(2902)는 본 문서에서 설명된 하나 이상의 방법을 구현하도록 구성될 수 있다. 메모리(메모리들)(2904)는 본 명세서에서 설명된 방법들 및 기법들을 구현하기 위해 사용되는 코드 및 데이터를 저장하기 위해 사용될 수 있다. 비디오 처리 하드웨어(2906)는 본 문서에서 설명된 일부 기법들을 하드웨어 회로로 구현하기 위해 사용될 수 있다.
도 31은 비디오를 처리하는 방법(3100)에 대한 흐름도이다. 이 방법(3100)은 제1 비디오 블록이 인트라-코딩 또는 비-병합 인터-코딩되어 있다는 결정을 수행하는 단계(3105), 제1 비디오 블록이 인트라-코딩 또는 비-병합 인터-코딩되어 있다는 결정에 기초하여 제1 비디오 블록에 대한 제1 예측 부분 및 제2 예측 부분을 결정하는 단계(3110) - 제1 예측 부분 또는 제2 예측 부분 중 하나 또는 둘 다는 제1 비디오 블록의 비-직사각형 및 비-정사각형 부분들임 -, 및 제1 예측 부분 및 제2 예측 부분을 사용하여 제1 비디오 블록의 추가 처리를 수행하는 단계(3115)를 포함한다.
도 32는 비디오를 처리하는 방법(3200)에 대한 흐름도이다. 이 방법(3200)은 제1 비디오 블록이 인트라-코딩 또는 비-병합 인터-코딩되어 있다는 결정을 수행하는 단계(3205), 제1 비디오 블록에 대한 제1 예측 부분 및 제2 예측 부분을 결정하는 단계(3210) - 제1 예측 부분 또는 제2 예측 부분 중 하나 또는 둘 다는 제1 비디오 블록의 비-직사각형 및 비-정사각형 부분들임 -, 및 제1 예측 부분 및 제2 예측 부분을 사용하여 제1 비디오 블록의 추가 처리를 수행하는 단계(3215)를 포함하고, 적어도 하나의 예측 부분은 현재 이미지를 참조 이미지로서 사용하여 병합 또는 비-병합 인터 코딩된다.
도 33은 비디오를 처리하는 방법(3300)에 대한 흐름도이다. 이 방법(3300)은 제1 비디오 블록이 인트라-코딩 또는 비-병합 인터-코딩되어 있다는 결정을 수행하는 단계(3305), 제1 비디오 블록에 대한 제1 예측 부분 및 제2 예측 부분을 결정하는 단계(3310) - 제1 예측 부분 또는 제2 예측 부분 중 하나 또는 둘 다는 제1 비디오 블록의 비-직사각형 및 비-정사각형 부분들임 -, 및 제1 예측 부분 및 제2 예측 부분을 사용하여 제1 비디오 블록의 추가 처리를 수행하는 단계(3315)를 포함하고, 제1 예측 부분 및 제2 예측 부분을 사용하여 제1 비디오 블록의 추가 처리를 수행하는 단계는 제1 비디오 블록과 관련하여 비-인접 공간 블록들의 인터 또는 인트라 코딩된 정보에 기초한다.
도 34는 비디오를 처리하는 방법(3400)에 대한 흐름도이다. 이 방법(3400)은 제1 비디오 블록이 제1 비디오 블록의 삼각형 예측 부분을 사용하여 삼각형 부분 모드(TPM)로 코딩되고 제2 비디오 블록이 제2 비디오 블록의 비-삼각형 예측 부분을 사용하여 비-TPM을 사용하여 코딩되어 있다는 결정을 수행하는 단계(3405), 저장된 HMVP 후보들을 사용하여 제1 비디오 블록 및 제2 비디오 블록의 추가 처리를 수행하는 단계(3410), 및 제1 비디오 블록 및 제2 비디오 블록과 연관된 HMVP 후보들을 저장하는 단계(3415)를 포함한다.
도 35는 비디오를 처리하는 방법(3500)에 대한 흐름도이다. 이 방법(3500)은 제1 비디오 블록이 제1 비디오 블록의 비-직사각형 및 비-정사각형 부분들인 예측 부분들을 포함한다는 결정을 수행하는 단계(3505), HMVP 후보를 식별하는 단계(3510), HMVP 후보로부터 도출된 하나 이상의 모션 후보를 비-직사각형 및 비-정사각형인 예측 부분들을 포함하는 비디오 블록들과 연관된 병합 리스트에 추가하는 단계(3515), 및 병합 리스트를 사용하여 제1 비디오 블록의 추가 처리를 수행하는 단계(3520)를 포함한다.
방법들 3100, 3200, 3300, 3400, 및 3500을 참조하여, 인코딩에 대한 후보 및 그들의 사용을 결정하는 일부 예들이 본 문서의 섹션 4에 설명되어 있다. 예를 들어, 섹션 4에 설명된 바와 같이, 비디오 블록들은 비-정사각형 및 비-직사각형인 예측 부분들을 사용하여 처리될 수 있다.
방법들 3100, 3200, 3300, 3400, 및 3500을 참조하여, 비디오 블록은 모션 정보 예측과 관련된 비트스트림 생성 규칙을 사용하는 것에 의해 비트 효율이 달성될 수 있는 비디오 비트스트림에서 인코딩될 수 있다.
이 방법들은 제1 인트라 예측 모드를 사용하여 상기 제1 예측 부분의 이미지 정보를 결정하는 단계; 및 제2 인트라 예측 모드를 사용하여 상기 제2 예측 부분의 이미지 정보를 결정하는 단계를 포함할 수 있고, 상기 제1 인트라 예측 모드는 상기 제2 인트라 예측 모드와 상이하다.
이 방법들은 상기 제1 예측 부분과 상기 제2 예측 부분 사이의 에지 경계를 따라 상기 제1 예측 부분 및 상기 제2 예측 부분에 관련된 예측 값들을 필터링하는 단계를 포함할 수 있다.
이 방법들은, 상기 프로세서에 의해, 상기 제1 예측 부분의 제1 모션 정보를 결정하는 단계; 및 상기 프로세서에 의해, 상기 제2 예측 부분의 제2 모션 정보를 결정하는 단계를 포함할 수 있고, 상기 제1 모션 정보는 상기 제2 모션 정보를 사용하지 않고 결정되고, 상기 제2 모션 정보는 상기 제1 모션 정보를 사용하지 않고 결정된다.
이 방법들은, 상기 프로세서에 의해, 상기 제1 예측 부분의 제1 모션 정보를 결정하는 단계; 및 상기 프로세서에 의해, 상기 제2 예측 부분의 제2 모션 정보를 결정하는 단계를 포함할 수 있고, 상기 제2 모션 정보는 상기 제1 모션 정보를 사용하여 결정된다.
이 방법들은 인트라 모드 코딩으로 상기 제1 예측 부분을 처리하는 단계; 및 상기 제2 예측 부분을 인터 모드 코딩으로 처리하는 단계를 포함할 수 있다.
이 방법들은 상기 제2 예측 부분을 처리하는 단계가 양방향 예측을 적용하는 단계를 포함하는 것을 포함할 수 있다.
이 방법들은 상기 제2 예측 부분을 처리하는 단계가 병합 인덱스와 함께 시그널링된 모션 정보를 결정하는 단계를 포함하는 것을 포함할 수 있다.
이 방법들은 상기 제1 예측 부분과 상기 제2 예측 부분 사이의 에지 경계를 따라 상기 제1 예측 부분 및 상기 제2 예측 부분에 관련된 예측 값들을 필터링하는 단계를 포함할 수 있다.
이 방법들은 인트라 모드 코딩의 서브세트가 사용되는 것을 포함할 수 있다.
이 방법들은 상기 제1 예측 부분 및 상기 제2 예측 부분이 인트라 모드 코딩의 상이한 서브세트들과 연관되는 것을 포함할 수 있다.
이 방법들은 상기 제1 예측 부분 및 상기 제2 예측 부분이 상기 제1 예측 부분 및 상기 제2 예측 부분의 위치들에 기초하여 인트라 모드 코딩의 상이한 서브세트들과 연관되는 것을 포함할 수 있다.
이 방법들은 상기 제1 예측 부분 및 상기 제2 예측 부분이 상기 제1 비디오 블록의 크기, 또는 상기 제1 비디오 블록의 형상 중 하나 이상에 기초하여 인트라 모드 코딩의 상이한 서브세트들과 연관되는 것을 포함할 수 있다.
이 방법들은 비-인접 공간 비디오 블록의 인터 또는 인트라 코딩된 정보가 비-인접 공간 비디오 블록의 모션 정보를 포함하는 것을 포함할 수 있다.
이 방법들은 상기 비-인접 공간 비디오 블록들의 인트라 예측 모드가 사용되는 것을 포함할 수 있다.
이 방법들은 시간 블록들의 코딩된 정보가 사용되는 것을 포함할 수 있다.
이 방법들은 이력 기반 모션 벡터 예측(HMVP) 후보들을 모션 벡터 예측 후보 리스트에 추가하는 단계 - 상기 HMVP 후보들은 이전에 코딩된 비디오 블록들에 기초한 모션 정보를 포함함 -; 및 상기 HMVP 후보들에 기초하여 상기 제1 비디오 블록을 디코딩하는 단계를 포함할 수 있다.
이 방법들은 상기 HMVP 후보들이 표에 저장되고, TPM에 의해 사용되는 모션 정보가 표에 저장되지 않는 것을 포함할 수 있다.
이 방법들은 TPM을 사용하여 상기 제1 비디오 블록을 인코딩 또는 디코딩한 후에 상기 표가 업데이트되지 않는 것을 포함할 수 있다.
이 방법들은 상기 HMVP 후보들이 제1 표 및 제2 표에 저장되고, 상기 제1 표는 TPM에 대한 HMVP 후보들을 저장하고, 상기 제2 표는 비-TPM에 대한 HMVP 후보들을 저장하는 것을 포함할 수 있다.
이 방법들은, 상기 제1 표 또는 상기 제2 표 중 하나가 단방향 예측된 HMVP 후보들을 저장하고, 다른 하나가 양방향 예측된 HMVP 후보들을 저장하는 것을 포함할 수 있다.
이 방법들은 상기 제1 표 또는 상기 제2 표 중 하나가 상기 제1 파티션 부분의 모션 정보를 저장하고, 다른 하나가 상기 제2 파티션 부분의 모션 정보를 저장하는 것을 포함할 수 있다.
이 방법들은 상기 제1 표 또는 상기 제2 표 중 하나가 List 0의 모션 정보를 저장하고, 다른 하나가 List 1의 모션 정보를 저장하는 것을 포함할 수 있다.
이 방법들은 상기 제1 표가 List 0으로부터의 단방향 예측된 HMVP 후보들을 저장하고, 상기 제2 표가 List 1로부터의 단방향 예측된 HMVP 후보들을 저장하고, 제3 표가 양방향 예측된 HMVP 후보들을 저장하는 것을 포함할 수 있다.
이 방법들은 상기 제1 예측 부분 또는 상기 제2 예측 부분 중 하나 또는 둘 다가 상기 제1 비디오 블록의 비-직사각형 및 비-정사각형 기하 부분들인 것에 기초하여 HMVP 후보 저장을 위한 표들이 업데이트되지 않는 것을 포함할 수 있다.
이 방법들은 상기 제1 파티션 부분의 모션 정보로 HMVP 후보들 저장을 위한 상기 제1 표 또는 상기 제2 표 중 하나 이상을 업데이트하는 단계를 포함할 수 있다.
이 방법들은 상기 제2 파티션 부분의 모션 정보로 HMVP 후보들 저장을 위한 상기 제1 표 또는 상기 제2 표 중 하나 이상을 업데이트하는 단계를 포함할 수 있다.
이 방법들은 상기 제1 파티션 부분의 모션 정보 및 상기 제2 파티션 부분의 모션 정보로 HMVP 후보들 저장을 위한 상기 제1 표 또는 상기 제2 표 중 하나 이상을 업데이트하는 단계를 포함할 수 있다.
이 방법들은 상기 제1 파티션 부분 및 상기 제2 파티션 부분이 2개의 참조 화상 리스트로부터 예측된다고 결정하는 단계; 및 상기 제1 파티션 부분 및 상기 제2 파티션 부분이 2개의 참조 화상 리스트로부터 예측된다는 결정에 기초하여 하나의 HMVP 후보의 모션 정보로 HMVP 후보들 저장을 위한 하나 이상의 표를 업데이트하는 단계를 포함할 수 있다.
이 방법들은 상기 제1 파티션 부분 및 상기 제2 파티션 부분이 동일한 참조 화상 리스트 또는 동일한 참조 화상을 사용하여 예측된다고 결정하는 단계를 포함할 수 있고, 상기 표들은 상기 제1 파티션 부분 및 상기 제2 파티션 부분이 동일한 참조 화상 리스트 또는 동일한 참조 화상을 사용하여 예측된다는 결정에 기초하여 업데이트된다.
이 방법들은 참조 화상과 현재 화상 간의 화상 순서 카운트(picture order count, POC) 차이를 결정하는 단계를 포함할 수 있고, 상기 POC 차이에 기초하여 상기 제1 파티션 부분 또는 상기 제2 파티션 부분의 모션 정보가 상기 하나 이상의 표에 추가된다.
이 방법들은 상기 제1 비디오 블록의 코딩에 관한 특성들을 결정하는 단계; 상기 제1 비디오 블록의 코딩에 관한 특성들에 기초하여 상기 제1 표 또는 상기 제2 표 중 하나 또는 둘 다를 업데이트하는 단계를 포함할 수 있다.
이 방법들은 TPM 비디오 블록의 디코딩 후에 TPM 비디오 블록들과 연관된 표를 업데이트하기 위해 모션 정보가 사용되는 것을 포함할 수 있다.
이 방법들은 비-TPM 비디오 블록의 디코딩 후에 비-TPM 비디오 블록들과 연관된 표를 업데이트하기 위해 모션 정보가 사용되는 것을 포함할 수 있다.
이 방법들은 비-TPM 비디오 블록의 디코딩 후에 TPM 비디오 블록들과 연관된 표를 업데이트하기 위해 모션 정보가 사용되는 것을 포함할 수 있다.
이 방법들은 상기 HMVP 후보로부터 제1 모션 후보 및 제2 모션 후보를 결정하는 단계를 포함할 수 있고, 상기 제1 병합 후보 또는 상기 제2 병합 후보 중 하나는 상기 HMVP 후보의 List 0 모션 정보를 갖는 단방향 예측이고, 다른 하나는 상기 HMVP 후보의 List 1 모션 정보를 갖는 단방향 예측이다.
이 방법들은 공간 또는 시간 비디오 블록들에 기초하는 다른 모션 후보들과 상기 HMVP 후보로부터 도출된 모션 후보의 삽입에 기초하여 프루닝하는 단계를 포함할 수 있다.
이 방법들은 다른 HMVP 후보들에 기초하는 다른 모션 후보들과 상기 HMVP 후보로부터 도출된 모션 후보의 삽입에 기초하여 프루닝하는 단계를 포함할 수 있다.
이 방법들은 상기 HMVP 후보에 기초하는 다른 모션 후보들과 상기 HMVP 후보로부터 도출된 모션 후보의 삽입에 기초하여 프루닝하는 단계를 포함할 수 있다.
이 방법들은 공간 또는 시간 비디오 블록들 중 하나 또는 둘 다로부터 도출된 모션 후보들 후에 상기 제1 비디오 블록과 연관된 HMVP 후보로부터 도출된 모션 후보들을 병합 리스트에 추가하는 단계를 포함할 수 있다.
이 방법들은 공간 또는 시간 비디오 블록들의 모션 정보에 기초하여 병합 리스트 구성 프로세스 후에 또는 전에 상기 HMVP 후보로부터 도출된 모션 후보를 상기 병합 리스트에 추가하는 단계를 포함할 수 있다.
이 방법들은 사전 정의된 단계 후에 또는 전에 상기 HMVP 후보로부터 도출된 모션 후보를 상기 병합 리스트에 추가하는 단계를 포함할 수 있다.
이 방법들은 다른 원래 단방향 예측된 후보 후에 단방향 예측을 갖는 상기 HMVP 후보로부터 도출된 모션 후보들을 추가하는 단계를 포함할 수 있다.
이 방법들은 절단된 List 0 예측된 후보들 후에 양방향 예측 또는 List 0으로부터의 단방향 예측을 갖는 상기 HMVP 후보로부터 도출된 모션 후보들을 추가하는 단계를 포함할 수 있다.
이 방법들은 절단된 List 1 예측된 후보들 후에 양방향 예측 또는 List 1로부터의 단방향 예측을 갖는 상기 HMVP 후보로부터 도출된 모션 후보들을 추가하는 단계를 포함할 수 있다.
이 방법들은 List 0 또는 List 1 모션 후보들로부터의 평균된 단방향 예측 후에 상기 HMVP 후보로부터 도출된 모션 후보들을 추가하는 단계를 포함할 수 있다.
이 방법들은 List 0 또는 List 1 모션 후보들로부터의 평균된 단방향 예측 전에 상기 HMVP 후보로부터 도출된 모션 후보들을 추가하는 단계를 포함할 수 있다.
이 방법들은 HMVP 후보들로부터 도출된 모션 후보들이 상기 제1 비디오 블록과 관련하여 공간 또는 시간 비디오 블록들의 모션 정보에 기초하는 모션 후보들과의 인터리빙에 따라 상기 병합 리스트에 추가되는 것을 포함할 수 있다.
이 방법들은 상기 HMVP 후보의 List 0 및 List 1로부터 도출된 모션 후보들이 다른 HMVP 후보의 List 0 및 List 1로부터 도출된 모션 후보들 전에 순서대로 추가되는 것을 포함할 수 있다.
이 방법들은 HMVP 후보들의 제1 세트의 List 0으로부터 도출된 모션 후보들이 HMVP 후보들의 제2 세트의 List 1로부터 도출된 모션 후보들 전에 순서대로 추가되는 것을 포함할 수 있다.
이 방법들은 상기 제1 세트와 상기 제2 세트가 동일하고, 상기 제1 세트와 상기 제2 세트가 모든 이용가능한 HMVP 후보들을 포함하는 것을 포함할 수 있다.
이 방법들은 상기 제1 세트와 상기 제2 세트가 상이하고, 상기 제1 세트는 양방향 예측 및 List 0으로부터의 단방향 예측을 갖는 HMVP 후보들을 포함하고, 상기 제2 세트는 양방향 예측 및 List 1로부터의 단방향 예측을 갖는 HMVP 후보들을 포함하는 것을 포함할 수 있다.
이 방법들은 상기 제1 세트가 제1 수의 HMVP 후보들을 포함하고, 상기 제2 세트가 제2 수의 HMVP 후보들을 포함하고, 상기 제1 수와 상기 제2 수가 상이한 것을 포함할 수 있다.
이 방법들은 HMVP 후보로부터 리스트 LX의 그것의 모션 벡터를 리스트 L(1-X)로 스케일링하는 것에 의해 스케일링된 모션 후보가 도출될 수 있고 상기 스케일링된 모션 후보에 상기 스케일링된 모션 벡터 및 리스트 L(1-X)이 할당되는 것을 포함할 수 있다.
이 방법들은 HMVP 후보들로부터 도출된 스케일링된 모션 후보들이 HMVP 후보들로부터 도출된 다른 모션 후보들 후에 삽입되는 것을 포함할 수 있다.
이 방법들은 HMVP 후보들로부터 도출된 스케일링된 모션 후보들이 시간 후보들 전에 삽입되는 것을 포함할 수 있다.
이 방법들은 상기 병합 리스트에 추가될 HMVP 후보들의 검사 순서가 상기 HMVP 후보들의 인덱스들에 기초하는 것을 포함할 수 있다.
이 방법들은 상기 병합 리스트에 추가될 HMVP 후보들의 검사 순서가 예측 방향들에 기초하는 것을 포함할 수 있다.
이 방법들은 상기 병합 리스트에 추가될 HMVP 후보들의 검사 순서가 모션 정보에 기초하는 것을 포함할 수 있다.
이 방법들은 TPM 병합 리스트 구성 프로세스에서 검사될 HMVP 후보들의 수가 사전 정의되는 것을 포함할 수 있다.
이 방법들은 TPM 병합 리스트 구성 프로세스에서 검사될 HMVP 후보들의 수가 상기 제1 비디오 블록의 블록 크기, 상기 제1 비디오 블록의 블록 형상, 또는 HMVP 후보들을 검사하기 전에 이용가능한 후보들의 수에 기초하는 것을 포함할 수 있다.
이 방법들은 TPM 병합 리스트 구성 프로세스에서 검사될 HMVP 후보들의 수가 비디오 파라미터 세트(VPS), 시퀀스 파라미터 세트(SPS), 화상 파라미터 세트(PPS), 화상 헤더, 타일 그룹 헤더, 슬라이스 헤더, 코딩 트리 단위(CTU)들의 행들의 그룹, CTU, 또는 CTU들의 그룹에서 시그널링되는 것을 포함할 수 있다.
이 방법들은 상기 HMVP 후보들의 선택이 후보 인덱스, 또는 후보 중 하나 또는 둘 다의 현재 화상 및 참조 화상의 예측 방향, 모션 벡터(MV) 정보, 참조 화상 인덱스, POC 거리들에 기초하는 것을 포함할 수 있다.
이 방법들은 상기 제1 비디오 블록과 연관된 HMVP의 적용이 상기 제1 비디오 블록의 블록 크기 또는 상기 제1 비디오 블록의 블록 형상에 기초하는 것을 포함할 수 있다.
이 방법들은 상기 비-직사각형 및 비-정사각형 부분들이 삼각형인 것을 포함할 수 있다.
개시된 기법들은 압축되고 있는 코딩 단위들이 전통적인 정사각형 형상의 블록들 또는 반-정사각형 형상인 직사각형 블록들과 상당히 상이한 형상을 가질 때 압축 효율을 개선하기 위해 비디오 인코더들 또는 디코더들에서 구현될 수 있다는 것이 이해될 것이다. 예를 들어, 4x32 또는 32x4 크기의 단위들과 같은 긴 또는 높은 코딩 단위들을 사용하는 새로운 코딩 툴들이 개시된 기법들로부터 이익을 얻을 수 있다.
도 36은 비디오를 처리하는 방법(3600)에 대한 흐름도이다. 이 방법(3600)은, 비주얼 미디어 데이터의 현재 블록과 상기 비주얼 미디어 데이터의 대응하는 코딩된 표현 간의 변환 동안, 상기 현재 블록에 대한 다수의 서브-부분을 결정하는 단계(3605); 상기 다수의 서브-부분의 인트라 예측 정보를 결정하는 단계(3610); 및 상기 다수의 서브-부분의 인트라 예측 정보를 사용하여 상기 현재 블록의 변환을 수행하는 것을 수행하는 단계(3615)를 포함하고; 상기 현재 블록은 인트라-코딩되고, 상기 다수의 서브-부분 중 적어도 하나의 서브-부분은 비-직사각형 및 비-정사각형 서브-부분이다. 상기 서브-부분은 위의 예측 부분과 동등할 수 있다는 점에 유의해야 한다.
일부 구현들에서, 방법(3600)에 대해 추가적인 수정들이 수행될 수 있다. 예를 들어, 상기 다수의 서브-부분의 인트라 예측 정보를 결정하는 단계는: 제1 인트라 예측 모드를 사용하여 상기 다수의 서브-부분 중 제1 서브-부분의 제1 인트라 예측 정보를 결정하는 단계; 제2 인트라 예측 모드를 사용하여 상기 다수의 서브-부분 중 제2 서브-부분의 제2 인트라 예측 정보를 결정하는 단계를 포함하고; 상기 제1 인트라 예측 모드는 상기 제2 인트라 예측 모드와 상이하다. 상기 제1 인트라 예측 정보는 인트라 예측 모드들의 제1 서브세트를 사용하여 결정되고, 상기 제2 인트라 예측 정보는 인트라 예측 모드들의 제2 서브세트를 사용하여 결정되고; 상기 인트라 예측 모드들의 제1 서브세트는 상기 인트라 예측 모드들의 제2 서브세트와 상이하다. 상기 인트라 예측 모드들의 서브세트는 제1 서브-부분 및/또는 제2 서브-부분의 위치, 크기 및 형상 중 적어도 하나에 기초한다. 상기 다수의 서브-부분의 인트라 예측 정보를 결정하는 단계는: 상기 다수의 서브-부분 중 적어도 하나의 서브-부분의 에지 경계를 따라 샘플들의 예측 값들을 필터링하는 단계를 추가로 포함한다. 상기 다수의 서브-부분 중 제1 서브-부분의 제1 인트라 예측 정보는 상기 다수의 서브-부분 중 제2 서브-부분의 제2 인트라 예측 정보를 사용하지 않고 결정되고, 상기 제2 서브-부분의 제2 인트라 예측 정보는 상기 제1 서브-부분의 제1 인트라 예측 정보를 사용하지 않고 결정된다. 상기 다수의 서브-부분 중 제1 서브-부분의 제1 인트라 예측 정보는 상기 다수의 서브-부분 중 제2 서브-부분의 제2 인트라 예측 정보를 사용하여 결정되고, 상기 제2 서브-부분의 제2 인트라 예측 정보는 상기 제1 서브-부분의 제1 인트라 예측 정보를 사용하여 결정된다.
도 37은 비디오를 처리하는 방법(3700)에 대한 흐름도이다. 이 방법(3700)은, 비주얼 미디어 데이터의 현재 블록과 상기 비주얼 미디어 데이터의 대응하는 코딩된 표현 간의 변환 동안, 상기 현재 블록에 대한 다수의 서브-부분을 결정하는 단계(3705); 상기 다수의 서브-부분의 모션 정보를 결정하는 단계(3710); 상기 다수의 서브-부분의 모션 정보를 사용하여 상기 현재 블록의 변환을 수행하는 단계(3715)를 포함하고; 상기 현재 블록은 비-병합 인터-코딩되고, 상기 다수의 서브-부분 중 적어도 하나의 서브-부분은 비-직사각형 및 비-정사각형 서브-부분이다.
일부 구현들에서, 방법(3700)에 대해 추가적인 수정들이 수행될 수 있다. 예를 들어, 상기 다수의 서브-부분의 모션 정보를 결정하는 단계는: 제1 인트라 예측 모드를 사용하여 상기 다수의 서브-부분 중 제1 서브-부분의 제1 모션 정보를 결정하는 단계; 제2 인트라 예측 모드를 사용하여 상기 다수의 서브-부분 중 제2 서브-부분의 제2 모션 정보를 결정하는 단계를 포함한다. 상기 다수의 서브-부분의 인트라 예측을 결정하는 단계는: 상기 다수의 서브-부분 중 적어도 하나의 서브-부분의 에지 경계를 따라 샘플들의 예측 값들을 필터링하는 단계를 추가로 포함한다. 상기 제1 서브-부분의 제1 모션 정보는 상기 제2 서브-부분의 제2 모션 정보를 사용하지 않고 결정되고, 상기 제2 서브-부분의 제2 모션 정보는 상기 제1 서브-부분의 제1 모션 정보를 사용하지 않고 결정된다. 상기 제1 서브-부분의 제1 모션 정보는 상기 제2 예측의 제2 모션 정보를 사용하여 결정되고/되거나, 상기 제2 서브-부분의 제2 모션 정보는 상기 제1 서브-부분의 제1 모션 정보를 사용하여 결정된다.
도 38은 비디오를 처리하는 방법(3800)에 대한 흐름도이다. 이 방법(3800)은 비주얼 미디어 데이터의 현재 블록과 상기 비주얼 미디어 데이터의 대응하는 코딩된 표현 간의 변환을 수행하는 단계(3805) - 상기 현재 블록은 제1 서브-부분이 비-직사각형, 비-정사각형 형상을 갖는 분할 패턴에 따라 다수의 서브-부분으로 파티셔닝됨 -; 인트라 코딩 모드로 제1 서브-부분을 처리하는 단계(3810); 및 인터 코딩 모드로 제2 서브-부분을 처리하는 단계(3815)를 포함한다.
일부 구현들에서, 방법(3800)에 대해 추가적인 수정들이 수행될 수 있다. 예를 들어, 상기 제2 서브-부분은 양방향 예측을 적용하는 것에 의해 처리된다. 상기 현재 블록이 병합 모드로 코딩되는 것에 응답하여 병합 인덱스와 함께 모션 정보를 시그널링한다. 인트라 예측 모드의 서브세트를 사용하여 상기 제1 예측 부분의 모션 정보를 결정한다. 상기 인트라 예측 모드들의 서브세트는 제1 예측 부분의 위치, 제1 예측 부분의 크기 및 제1 예측 부분의 형상 중 적어도 하나에 기초한다.
도 39는 비디오를 처리하는 방법(3900)에 대한 흐름도이다. 이 방법(3900)은 비주얼 미디어 데이터의 현재 블록과 상기 비주얼 미디어 데이터의 대응하는 코딩된 표현 간의 변환을 수행하는 단계(3905)를 포함하고, 상기 현재 블록은 제1 서브-부분이 비-직사각형, 비-정사각형 형상을 갖는 분할 패턴에 따라 다수의 서브-부분으로 파티셔닝되고; 상기 다수의 서브-부분 중 적어도 하나의 서브-부분은 병합 또는 비-병합 인터 코딩되고 현재 화상을 참조 화상으로서 사용한다.
도 40은 비디오를 처리하는 방법(4000)에 대한 흐름도이다. 이 방법(4000)은 비주얼 미디어 데이터의 현재 블록과 상기 비주얼 미디어 데이터의 대응하는 코딩된 표현 간의 변환을 수행하는 단계(4005) - 상기 현재 블록은 제1 예측 파티션이 비-직사각형, 비-정사각형 형상을 갖는 분할 패턴에 따라 다수의 서브-부분으로 파티셔닝됨 -; 및 하나 이상의 비-인접 공간 블록의 인터 또는 인트라 코딩된 정보를 사용하여 상기 변환을 수행하는 단계(4010)를 포함한다.
일부 구현들에서, 방법(4000)에 대해 추가적인 수정들이 수행될 수 있다. 예를 들어, 하나 이상의 비-인접 공간 블록의 인터 또는 인트라 코딩된 정보는 하나 이상의 비-인접 공간 블록의 모션 정보를 포함한다. 하나 이상의 비-인접 공간 블록의 인터 또는 인트라 코딩된 정보를 사용하여 현재 블록의 변환을 수행하는 단계는: 하나 이상의 비-인접 공간 블록의 인트라 예측 모드를 사용하여 현재 블록의 변환을 수행하는 단계를 포함한다. 시간 블록들의 코딩된 정보가 사용된다.
도 41은 비디오를 처리하는 방법(4100)에 대한 흐름도이다. 이 방법(4100)은: 비주얼 미디어 데이터의 제1 블록과 상기 비주얼 미디어 데이터의 대응하는 코딩된 표현 간의 변환 동안, 상기 제1 블록이 기하학적 파티션 모드로 코딩되어 있다고 결정하는 단계(4105); 이전에 코딩된 블록들에 기초한 모션 정보를 포함하는 이력 기반 모션 벡터 예측(HMVP) 후보들을 저장하는 적어도 하나의 표에 기초하여, 상기 제1 블록의 적어도 하나의 서브-부분의 모션 정보를 결정하는 단계(4110); 상기 결정된 모션 정보를 사용하여 상기 제1 블록의 변환을 수행하는 단계(4115)를 포함한다.
일부 구현들에서, 방법(4100)에 대해 추가적인 수정들이 수행될 수 있다. 예를 들어, 상기 제1 블록이 기하학적 파티션 모드로 코딩되어 있는 것은: 상기 제1 블록을 다수의 서브-부분으로 분할하는 것을 포함하고; 상기 다수의 서브-부분 중 적어도 하나의 서브-부분은 비-직사각형 및 비-정사각형 부분이다. 상기 비주얼 미디어 데이터의 제2 블록과 상기 비주얼 미디어 데이터의 대응하는 코딩된 표현 간의 변환 동안, 상기 제1 블록에 대해 사용되는 동일한 표에 기초하여 상기 제2 블록의 모션 정보를 결정하고, 상기 제2 블록은 상기 기하학적 파티션 모드를 사용하지 않는다. 상기 제1 블록에 의해 사용되는 모션 정보는 상기 적어도 하나의 표에 저장되는 것이 억제된다. 상기 적어도 하나의 표는 상기 제1 블록의 변환 후에 업데이트되지 않는다. 상기 적어도 하나의 표는 상기 기하학적 파티션 모드를 갖는 블록들에 대해 상기 HMVP 후보들을 저장하기 위해 유지되는 다수의 표를 포함한다. 상기 적어도 하나의 표에 대해, 상기 저장된 HMVP 후보들은 상기 기하학적 파티션 모드를 갖는 블록들에 의해 사용되는 것에 따른 모션 정보만을 갖는다. 상기 적어도 하나의 표는 단방향 예측된 HMVP 후보들 및 양방향 예측된 HMVP 후보들을 각각 저장하기 위해 유지되는 2개의 표를 포함한다. 상기 적어도 하나의 표는 제1 블록의 제1 서브-부분 및 제2 서브-부분의 모션 정보를 각각 저장하기 위해 유지되는 2개의 표를 포함한다. 상기 적어도 하나의 표는 List 0 및 List 1의 모션 정보를 각각 저장하기 위해 유지되는 2개의 표를 포함한다. 상기 적어도 하나의 표는 List 0으로부터의 단방향 예측된 HMVP 후보들, List 1로부터의 단방향 예측된 HMVP 후보들, 및 양방향 예측된 HMVP 후보들을 각각 저장하기 위해 유지되는 3개의 표를 포함한다. 상기 적어도 하나의 표는 상기 제1 블록의 서브-부분들의 일부의 모션 정보로 업데이트된다. 상기 적어도 하나의 표는 제1 서브-부분의 모션 정보 및 제2 서브-부분의 모션 정보로 업데이트되고, 상기 제1 서브-부분 및 상기 제2 서브-부분은 상기 제1 블록의 서브-부분들이다. 상기 적어도 하나의 표는 하나의 HMVP 후보를 추가하는 것에 의해 제1 서브-부분의 모션 정보 및 제2 서브-부분의 모션 정보로 업데이트된다. 1개 또는 2개의 모션 후보를 추가하는 것에 의해 상기 적어도 하나의 표를 업데이트할지는 상기 제1 서브-부분 및 상기 제2 서브-부분이 동일한 참조 화상 리스트 또는 동일한 참조 화상을 사용하고 있는지에 의존한다. 상기 제1 서브-부분 또는 상기 제2 서브-부분의 모션 정보를 추가하는 것에 의해 상기 적어도 하나의 표를 업데이트할지는 참조 화상과 현재 화상 간의 화상 순서 카운트(POC) 차이에 의존한다. 상기 비-직사각형 및 비-정사각형 부분을 갖는 상기 블록을 처리한 후에, 상기 비-직사각형 및 비-정사각형 부분을 갖는 상기 블록의 모션 정보는 상기 비-직사각형 및 비-정사각형 부분을 갖는 블록에 대해 상기 HMVP 후보들을 저장하기 위해 유지되는 표를 업데이트하기 위해 사용된다. 상기 비-직사각형 및 비-정사각형 부분이 없는 상기 블록을 처리한 후에, 상기 비-직사각형 및 비-정사각형 부분이 없는 상기 블록의 모션 정보는 상기 비-직사각형 및 비-정사각형 부분이 없는 블록에 대해 상기 HMVP 후보들을 저장하기 위해 유지되는 표를 업데이트하기 위해 사용된다. 상기 비-직사각형 및 비-정사각형 부분이 없는 상기 블록을 처리한 후에, 상기 비-직사각형 및 비-정사각형 부분이 없는 상기 블록의 모션 정보는 상기 비-직사각형 및 비-정사각형 부분을 갖는 블록에 대해 상기 모션 벡터 예측(HMVP) 후보들을 저장하기 위해 유지되는 표를 업데이트하기 위해 사용된다. 상기 기하학적 파티션 모드는 삼각형 파티션 모드를 포함한다. 이 방법은 다른 종류의 모션 후보 리스트들에 적용가능하다.
도 42는 비디오를 처리하는 방법(4200)에 대한 흐름도이다. 이 방법(4200)은: 비주얼 미디어 데이터의 제1 블록과 상기 비주얼 미디어 데이터의 대응하는 코딩된 표현 간의 변환 동안, 상기 제1 블록이 기하학적 파티션 모드로 코딩되어 있다고 결정하는 단계(4205); 상기 제1 블록의 적어도 하나의 서브-부분의 모션 정보를 결정하는 단계(4210); 상기 적어도 하나의 서브-부분의 모션 정보를 사용하여 상기 제1 블록의 변환을 수행하는 것을 수행하는 단계(4215)를 포함하고; 적어도 하나의 서브-부분의 모션 정보를 결정하는 단계는 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 이력 기반 모션 벡터 예측(HMVP) 후보를 사용하여 모션 후보 리스트를 구성하는 단계 및 상기 모션 후보 리스트로부터 상기 모션 정보를 결정하는 단계를 포함한다.
일부 구현들에서, 방법(4200)에 대해 추가적인 수정들이 수행될 수 있다. 예를 들어, 상기 제1 블록이 기하학적 파티션 모드로 코딩되어 있는 것은: 상기 제1 블록을 다수의 서브-부분으로 분할하는 것을 포함하고; 상기 다수의 서브-부분 중 적어도 하나의 서브-부분은 비-직사각형 및 비-정사각형 부분이다. 상기 적어도 하나의 HMVP 후보가 상기 모션 후보 리스트에 직접 추가된다. 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는: 하나의 HMVP 후보를 사용하여 제1 모션 후보 및 제2 모션 후보를 결정하는 단계를 포함하고, 상기 제1 모션 후보 및 상기 제2 모션 후보 중 하나는 상기 HMVP 후보의 List 0 모션 정보를 갖는 단방향 예측이고, 다른 하나는 상기 HMVP 후보의 List 1 모션 정보를 갖는 단방향 예측이다. 이 방법들은 공간 또는 시간 비디오 블록들에 기초하는 다른 모션 후보들과 상기 HMVP 후보로부터 도출된 모션 후보를 삽입하는 것에 응답하여 프루닝을 수행한다. 다른 HMVP 후보들에 기초하는 다른 모션 후보들과 상기 HMVP 후보로부터 도출된 모션 후보를 삽입하는 것에 응답하여 프루닝을 수행한다. 상기 HMVP 후보에 기초하는 다른 모션 후보들과 상기 HMVP 후보로부터 도출된 모션 후보를 삽입하는 것에 응답하여 프루닝을 수행한다. 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는: 공간 또는 시간 블록들 중 하나 또는 둘 다로부터 도출된 모션 후보들 후에 상기 HMVP 후보로부터 도출된 적어도 하나의 모션 후보를 상기 모션 후보 리스트에 추가하는 단계를 포함한다. 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는: 공간 또는 시간 블록들의 모션 정보에 기초하여 모션 후보 리스트 구성 프로세스에서 사전 정의된 단계 후에 또는 전에 상기 HMVP 후보로부터 도출된 적어도 하나의 모션 후보를 상기 모션 후보 리스트에 추가하는 단계를 포함한다. 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는: 공간 또는 시간 블록들의 모션 정보에 기초하여 모션 후보 리스트 구성 프로세스에서 다수의 사전 정의된 단계 후에 또는 전에 상기 HMVP 후보로부터 도출된 적어도 하나의 모션 후보를 상기 모션 후보 리스트에 추가하는 단계를 포함한다. 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는: 모든 원래 단방향 예측된 후보들 후에 단방향 예측을 갖는 상기 HMVP 후보로부터 도출된 적어도 하나의 모션 후보를 상기 모션 후보 리스트에 추가하는 단계를 포함한다. 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는: 절단된 List 0 예측된 후보들 후에 양방향 예측 또는 List 0으로부터의 단방향 예측을 갖는 상기 HMVP 후보로부터 도출된 적어도 하나의 모션 후보를 상기 모션 후보 리스트에 추가하는 단계를 포함한다. 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는: 절단된 List 1 예측된 후보들 후에 양방향 예측 또는 List 1로부터의 단방향 예측을 갖는 상기 HMVP 후보로부터 도출된 적어도 하나의 모션 후보를 상기 모션 후보 리스트에 추가하는 단계를 포함한다. 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는: List 0 또는 List 1 모션 후보들로부터의 평균된 단방향 예측 후에 상기 적어도 하나의 HMVP 후보로부터 도출된 적어도 하나의 모션 후보를 상기 모션 후보 리스트에 추가하는 단계를 포함한다. 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는: List 0 또는 List 1 모션 후보들로부터의 평균된 단방향 예측 전에 상기 적어도 하나의 HMVP 후보로부터 도출된 적어도 하나의 모션 후보를 상기 모션 후보 리스트에 추가하는 단계를 포함한다. 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는: 현재 블록과 관련하여 공간 또는 시간 블록들의 모션 정보에 기초하는 모션 후보들과의 인터리빙에 따라 상기 HMVP 후보로부터 도출된 적어도 하나의 모션 후보를 상기 모션 후보 리스트에 추가하는 단계를 포함한다. HMVP 후보로부터 도출된 모션 후보는 HMVP 후보와 동등하게 설정된다. 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는: 다른 HMVP 후보의 List 0 및 List 1로부터 도출된 모션 후보들 전에 상기 HMVP 후보의 List 0 및 List 1로부터 도출된 적어도 하나의 모션 후보를 상기 모션 후보 리스트에 추가하는 단계를 포함한다. 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는: HMVP 후보들의 제2 세트의 List 1로부터 도출된 모션 후보들 전에 HMVP 후보들의 제1 세트의 List 0으로부터 도출된 적어도 하나의 모션 후보를 상기 모션 후보 리스트에 추가하는 단계를 포함한다. 상기 제1 세트와 상기 제2 세트는 동일하다. 상기 제1 세트와 상기 제2 세트는 상이하고, 상기 제1 세트는 양방향 예측 및 List 0으로부터의 단방향 예측을 갖는 HMVP 후보들을 포함하고, 상기 제2 세트는 양방향 예측 및 List 1로부터의 단방향 예측을 갖는 HMVP 후보들을 포함한다. 상기 제1 세트는 제1 수의 HMVP 후보들을 포함하고, 상기 제2 세트는 제2 수의 HMVP 후보들을 포함하고, 상기 제1 수와 상기 제2 수는 상이하다. 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는: 리스트 LX의 HMVP 후보들을 리스트 L(1-X)로 스케일링하여 L(1-X)를 위해 사용되는 스케일링된 HMVP 후보들을 생성하는 단계를 포함한다. 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는: HMVP 후보들로부터 도출된 다른 모션 후보들 후에 상기 스케일링된 HMVP 후보들을 추가하는 단계를 포함한다. 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는: HMVP 후보들로부터 도출된 다른 모션 후보들 후에 그리고 시간 후보들 전에 상기 스케일링된 HMVP 후보들을 추가하는 단계를 포함한다. 상기 모션 후보 리스트에 추가될 HMVP 후보들의 검사 순서는 상기 HMVP 후보들의 인덱스들에 기초한다. 상기 모션 후보 리스트에 추가될 HMVP 후보들의 검사 순서는 예측 방향들에 기초한다. 상기 모션 후보 리스트에 추가될 HMVP 후보들의 검사 순서는 모션 정보에 기초한다. 상기 모션 후보 리스트 구성 프로세스에서 검사될 HMVP 후보들의 수는 사전 정의된다. 모션 후보 리스트 구성 프로세스에서 검사될 HMVP 후보들의 수는 현재 블록의 블록 크기, 현재 블록의 블록 형상, 또는 HMVP 후보들을 검사하기 전에 이용가능한 후보들의 수에 기초한다. 상기 모션 후보 리스트 구성 프로세스에서 검사될 HMVP 후보들의 수는 비디오 파라미터 세트(VPS), 시퀀스 파라미터 세트(SPS), 화상 파라미터 세트(PPS), 화상 헤더, 타일 그룹 헤더, 슬라이스 헤더, 코딩 트리 단위(CTU)들의 행들의 그룹, CTU, 또는 CTU들의 그룹에서 시그널링된다. 상기 모션 후보 리스트에서 검사되도록 선택된 HMVP 후보들은 후보 인덱스 및 후보의 현재 화상 및 참조 화상의 예측 방향, 모션 벡터(MV) 정보, 참조 화상 인덱스, POC 거리들 중 적어도 하나에 기초한다. 상기 현재 블록에 대한 HMVP의 적용은 상기 현재 블록의 블록 크기 또는 상기 현재 블록의 블록 형상에 기초한다. 상기 모션 후보 리스트는 병합 리스트를 포함한다. 상기 모션 후보 리스트는 병합 후보 리스트를 제외한 다른 종류의 모션 후보 리스트들에 적용가능하다.
일부 실시예들에 의해 바람직하게 구현되는 일부 특징들이 이제 항 기반 포맷으로 개시된다.
1. 비디오를 처리하기 위한 방법으로서,
비주얼 미디어 데이터의 현재 블록과 상기 비주얼 미디어 데이터의 대응하는 코딩된 표현 간의 변환 동안, 상기 현재 블록에 대한 다수의 서브-부분을 결정하는 단계;
상기 다수의 서브-부분의 인트라 예측 정보를 결정하는 단계;
상기 다수의 서브-부분의 인트라 예측 정보를 사용하여 상기 현재 블록의 변환을 수행하는 단계를 포함하고; 및
상기 현재 블록은 인트라-코딩되고, 상기 다수의 서브-부분 중 적어도 하나의 서브-부분은 비-직사각형 및 비-정사각형 서브-부분인, 방법.
2. 제1항에 있어서, 상기 다수의 서브-부분의 인트라 예측 정보를 결정하는 단계는:
제1 인트라 예측 모드를 사용하여 상기 다수의 서브-부분 중 제1 서브-부분의 제1 인트라 예측 정보를 결정하는 단계;
제2 인트라 예측 모드를 사용하여 상기 다수의 서브-부분 중 제2 서브-부분의 제2 인트라 예측 정보를 결정하는 단계를 포함하고;
상기 제1 인트라 예측 모드는 상기 제2 인트라 예측 모드와 상이한, 방법.
3. 제2항에 있어서, 상기 제1 인트라 예측 정보는 인트라 예측 모드들의 제1 서브세트를 사용하여 결정되고, 상기 제2 인트라 예측 정보는 인트라 예측 모드들의 제2 서브세트를 사용하여 결정되고;
상기 인트라 예측 모드들의 제1 서브세트는 상기 인트라 예측 모드들의 제2 서브세트와 상이한, 방법.
4. 제3항에 있어서, 상기 인트라 예측 모드들의 서브세트는 상기 제1 서브-부분 및/또는 제2 서브-부분의 위치, 크기 및 형상 중 적어도 하나에 기초하는, 방법.
5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 다수의 서브-부분의 인트라 예측 정보를 결정하는 단계는:
상기 다수의 서브-부분 중 적어도 하나의 서브-부분의 에지 경계를 따라 샘플들의 예측 값들을 필터링하는 단계를 추가로 포함하는, 방법.
6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 다수의 서브-부분 중 제1 서브-부분의 제1 인트라 예측 정보는 상기 다수의 서브-부분 중 제2 서브-부분의 제2 인트라 예측 정보를 사용하지 않고 결정되고, 상기 제2 서브-부분의 제2 인트라 예측 정보는 상기 제1 서브-부분의 제1 인트라 예측 정보를 사용하지 않고 결정되는, 방법.
7. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 다수의 서브-부분 중 제1 서브-부분의 제1 인트라 예측 정보는 상기 다수의 서브-부분 중 제2 서브-부분의 제2 인트라 예측 정보를 사용하여 결정되고, 상기 제2 서브-부분의 제2 인트라 예측 정보는 상기 제1 서브-부분의 제1 인트라 예측 정보를 사용하여 결정되는, 방법.
8. 비디오를 처리하기 위한 방법으로서,
비주얼 미디어 데이터의 현재 블록과 상기 비주얼 미디어 데이터의 대응하는 코딩된 표현 간의 변환 동안, 상기 현재 블록에 대한 다수의 서브-부분을 결정하는 단계;
상기 다수의 서브-부분의 모션 정보를 결정하는 단계;
상기 다수의 서브-부분의 모션 정보를 사용하여 상기 현재 블록의 변환을 수행하는 단계를 포함하고; 및
상기 현재 블록은 비-병합 인터-코딩되고, 상기 다수의 서브-부분 중 적어도 하나의 서브-부분은 비-직사각형 및 비-정사각형 서브-부분인, 방법.
9. 제8항에 있어서, 상기 다수의 서브-부분의 모션 정보를 결정하는 단계는:
제1 인트라 예측 모드를 사용하여 상기 다수의 서브-부분 중 제1 서브-부분의 제1 모션 정보를 결정하는 단계;
제2 인트라 예측 모드를 사용하여 상기 다수의 서브-부분 중 제2 서브-부분의 제2 모션 정보를 결정하는 단계를 포함하는, 방법.
10. 제8항 또는 제9항에 있어서, 상기 다수의 서브-부분의 인트라 예측을 결정하는 단계는:
상기 다수의 서브-부분 중 적어도 하나의 서브-부분의 에지 경계를 따라 샘플들의 예측 값들을 필터링하는 단계를 추가로 포함하는, 방법.
11. 제8항 또는 제9항에 있어서, 상기 제1 서브-부분의 제1 모션 정보는 상기 제2 서브-부분의 제2 모션 정보를 사용하지 않고 결정되고, 상기 제2 서브-부분의 제2 모션 정보는 상기 제1 서브-부분의 제1 모션 정보를 사용하지 않고 결정되는, 방법.
12. 제8항 또는 제9항에 있어서, 상기 제1 서브-부분의 제1 모션 정보는 상기 제2 예측의 제2 모션 정보를 사용하여 결정되고/되거나, 상기 제2 서브-부분의 제2 모션 정보는 상기 제1 서브-부분의 제1 모션 정보를 사용하여 결정되는, 방법.
13. 비디오 처리 방법으로서,
비주얼 미디어 데이터의 현재 블록과 상기 비주얼 미디어 데이터의 대응하는 코딩된 표현 간의 변환을 수행하는 단계 - 상기 현재 블록은 제1 서브-부분이 비-직사각형, 비-정사각형 형상을 갖는 분할 패턴에 따라 다수의 서브-부분으로 파티셔닝됨 -;
인트라 코딩 모드로 제1 서브-부분을 처리하는 단계; 및
인터 코딩 모드로 제2 서브-부분을 처리하는 단계를 포함하는, 방법.
14. 제13항에 있어서, 상기 제2 서브-부분은 양방향 예측을 적용하는 것에 의해 처리되는, 방법.
15. 제13항 또는 제14항에 있어서,
상기 현재 블록이 병합 모드로 코딩되는 것에 응답하여 병합 인덱스와 함께 모션 정보를 시그널링하는 단계를 추가로 포함하는, 방법.
16. 제13항 내지 제15항 중 어느 한 항에 있어서,
인트라 예측 모드의 서브세트를 사용하여 상기 제1 예측 부분의 모션 정보를 결정하는 단계를 추가로 포함하는, 방법.
17. 제16항에 있어서, 상기 인트라 예측 모드들의 서브세트는 제1 예측 부분의 위치, 제1 예측 부분의 크기 및 제1 예측 부분의 형상 중 적어도 하나에 기초하는, 방법.
18. 비디오 처리 방법으로서,
비주얼 미디어 데이터의 현재 블록과 상기 비주얼 미디어 데이터의 대응하는 코딩된 표현 간의 변환을 수행하는 단계를 포함하고, 상기 현재 블록은 제1 서브-부분이 비-직사각형, 비-정사각형 형상을 갖는 분할 패턴에 따라 다수의 서브-부분으로 파티셔닝되고;
상기 다수의 서브-부분 중 적어도 하나의 서브-부분은 병합 또는 비-병합 인터 코딩되고 현재 화상을 참조 화상으로서 사용하는, 방법.
19. 비디오 처리 방법으로서,
비주얼 미디어 데이터의 현재 블록과 상기 비주얼 미디어 데이터의 대응하는 코딩된 표현 간의 변환을 수행하는 단계 - 상기 현재 블록은 제1 예측 파티션이 비-직사각형, 비-정사각형 형상을 갖는 분할 패턴에 따라 다수의 서브-부분으로 파티셔닝됨 -;
및 하나 이상의 비-인접 공간 블록의 인터 또는 인트라 코딩된 정보를 사용하여 상기 변환을 수행하는 단계를 포함하는, 방법.
20. 제19항에 있어서, 하나 이상의 비-인접 공간 블록의 인터 또는 인트라 코딩된 정보는 상기 하나 이상의 비-인접 공간 블록의 모션 정보를 포함하는, 방법.
21. 제19항에 있어서, 하나 이상의 비-인접 공간 블록의 인터 또는 인트라 코딩된 정보를 사용하여 상기 현재 블록의 변환을 수행하는 단계는:
상기 하나 이상의 비-인접 공간 블록의 인트라 예측 모드를 사용하여 상기 현재 블록의 변환을 수행하는 단계를 포함하는, 방법.
22. 제19항에 있어서, 시간 블록들의 코딩된 정보가 사용되는, 방법.
23. 제1항 내지 제22항 중 어느 한 항에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 처리 장치.
24. 제23항에 있어서, 상기 장치는 비디오 인코더인, 장치.
25. 제23항에 있어서, 상기 장치는 비디오 디코더인, 장치.
26. 코드를 포함하는 프로그램이 기록된 컴퓨터 판독가능 기록 매체로서, 상기 프로그램은 프로세서가 제1항 내지 제22항 중 어느 한 항에 기재된 방법을 수행하기 위한 것인, 컴퓨터 판독가능 기록 매체.
일부 실시예들에 의해 바람직하게 구현되는 일부 특징들이 이제 항 기반 포맷으로 개시된다.
1. 비디오를 처리하기 위한 방법으로서,
비주얼 미디어 데이터의 제1 블록과 상기 비주얼 미디어 데이터의 대응하는 코딩된 표현 간의 변환 동안, 상기 제1 블록이 기하학적 파티션 모드로 코딩되어 있다고 결정하는 단계;
이전에 코딩된 블록들에 기초한 모션 정보를 포함하는 이력 기반 모션 벡터 예측(HMVP) 후보들을 저장하는 적어도 하나의 표에 기초하여, 상기 제1 블록의 적어도 하나의 서브-부분의 모션 정보를 결정하는 단계;
상기 결정된 모션 정보를 사용하여 상기 제1 블록의 변환을 수행하는 단계를 포함하는, 방법.
2 제1항에 있어서, 상기 제1 블록이 기하학적 파티션 모드로 코딩되어 있는 것은:
상기 제1 블록을 다수의 서브-부분으로 분할하는 단계를 포함하고;
상기 다수의 서브-부분 중 적어도 하나의 서브-부분은 비-직사각형 및 비-정사각형 부분인, 방법.
3. 제1항에 있어서,
상기 비주얼 미디어 데이터의 제2 블록과 상기 비주얼 미디어 데이터의 대응하는 코딩된 표현 간의 변환 동안, 상기 제1 블록에 대해 사용되는 동일한 표에 기초하여 상기 제2 블록의 모션 정보를 결정하는 단계를 추가로 포함하고,
상기 제2 블록은 상기 기하학적 파티션 모드를 사용하지 않는, 방법.
4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 제1 블록에 의해 사용되는 상기 모션 정보는 상기 적어도 하나의 표에 저장되는 것이 억제되는, 방법.
5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 적어도 하나의 표는 상기 제1 블록의 변환 후에 업데이트되지 않는, 방법.
6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 적어도 하나의 표는 상기 기하학적 파티션 모드를 갖는 블록들에 대해 상기 HMVP 후보들을 저장하기 위해 유지되는 다수의 표를 포함하는, 방법.
7. 제6항에 있어서, 상기 적어도 하나의 표에 대해, 상기 저장된 HMVP 후보들은 상기 기하학적 파티션 모드를 갖는 블록들에 의해 사용되는 것에 따른 모션 정보만을 갖는, 방법.
8. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 적어도 하나의 표는 단방향 예측된 HMVP 후보들 및 양방향 예측된 HMVP 후보들을 각각 저장하기 위해 유지되는 2개의 표를 포함하는, 방법.
9. 제1항 내지 제8항 중 어느 한 항에 있어서, 상기 적어도 하나의 표는 제1 블록의 제1 서브-부분 및 제2 서브-부분의 모션 정보를 각각 저장하기 위해 유지되는 2개의 표를 포함하는, 방법.
10. 제1항 내지 제9항 중 어느 한 항에 있어서, 상기 적어도 하나의 표는 List 0 및 List 1의 모션 정보를 각각 저장하기 위해 유지되는 2개의 표를 포함하는, 방법.
11. 제1항 내지 제10항 중 어느 한 항에 있어서, 상기 적어도 하나의 표는 List 0으로부터의 단방향 예측된 HMVP 후보들, List 1로부터의 단방향 예측된 HMVP 후보들, 및 양방향 예측된 HMVP 후보들을 각각 저장하기 위해 유지되는 3개의 표를 포함하는, 방법.
12. 제1항 내지 제11항 중 어느 한 항에 있어서, 상기 적어도 하나의 표는 상기 제1 블록의 서브-부분들의 일부의 모션 정보로 업데이트되는, 방법.
13. 제1항 내지 제12항 중 어느 한 항에 있어서, 상기 적어도 하나의 표는 제1 서브-부분의 모션 정보 및 제2 서브-부분의 모션 정보로 업데이트되고, 상기 제1 서브-부분 및 상기 제2 서브-부분은 상기 제1 블록의 서브-부분들인, 방법.
14. 제13항에 있어서, 상기 적어도 하나의 표는 하나의 HMVP 후보를 추가하는 것에 의해 제1 서브-부분의 모션 정보 및 제2 서브-부분의 모션 정보로 업데이트되는, 방법.
15. 제14항에 있어서, 1개 또는 2개의 모션 후보를 추가하는 것에 의해 상기 적어도 하나의 표를 업데이트할지는 상기 제1 서브-부분 및 상기 제2 서브-부분이 동일한 참조 화상 리스트 또는 동일한 참조 화상을 사용하고 있는지에 의존하는, 방법.
16. 제14항에 있어서, 상기 제1 서브-부분 또는 상기 제2 서브-부분의 모션 정보를 추가하는 것에 의해 상기 적어도 하나의 표를 업데이트할지는 참조 화상과 현재 화상 간의 화상 순서 카운트(POC) 차이에 의존하는, 방법.
17. 제1항 내지 제16항 중 어느 한 항에 있어서, 상기 방법은:
상기 비-직사각형 및 비-정사각형 부분을 갖는 상기 블록을 처리한 후에, 상기 비-직사각형 및 비-정사각형 부분을 갖는 상기 블록의 모션 정보는 상기 비-직사각형 및 비-정사각형 부분을 갖는 블록에 대해 상기 HMVP 후보들을 저장하기 위해 유지되는 표를 업데이트하기 위해 사용되는 것을 추가로 포함하는, 방법.
18. 제1항 내지 제16항 중 어느 한 항에 있어서, 상기 방법은:
상기 비-직사각형 및 비-정사각형 부분이 없는 상기 블록을 처리한 후에, 상기 비-직사각형 및 비-정사각형 부분이 없는 상기 블록의 모션 정보는 상기 비-직사각형 및 비-정사각형 부분이 없는 블록에 대해 상기 HMVP 후보들을 저장하기 위해 유지되는 표를 업데이트하기 위해 사용되는 것을 추가로 포함하는, 방법.
19. 제1항 내지 제16항 중 어느 한 항에 있어서, 상기 방법은:
상기 비-직사각형 및 비-정사각형 부분이 없는 상기 블록을 처리한 후에, 상기 비-직사각형 및 비-정사각형 부분이 없는 상기 블록의 모션 정보는 상기 비-직사각형 및 비-정사각형 부분을 갖는 블록에 대해 상기 모션 벡터 예측(HMVP) 후보들을 저장하기 위해 유지되는 표를 업데이트하기 위해 사용되는 것을 추가로 포함하는, 방법.
20. 제1항 내지 제19항 중 어느 한 항에 있어서, 상기 기하학적 파티션 모드는 삼각형 파티션 모드를 포함하는, 방법.
21. 제1항 내지 제20항 중 어느 한 항에 있어서, 상기 방법은 다른 종류의 모션 후보 리스트들에 적용가능한, 방법.
22. 제1항 내지 제21항 중 어느 한 항에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 처리 장치.
23. 제22항에 있어서, 상기 장치는 비디오 인코더인, 장치.
24. 제22항에 있어서, 상기 장치는 비디오 디코더인, 장치.
25. 코드를 포함하는 프로그램이 기록된 컴퓨터 판독가능 기록 매체로서, 상기 프로그램은 프로세서가 제1항 내지 제21항 중 어느 한 항에 기재된 방법을 수행하기 위한 것인, 컴퓨터 판독가능 기록 매체.
일부 실시예들에 의해 바람직하게 구현되는 일부 특징들이 이제 항 기반 포맷으로 개시된다.
1. 비디오를 처리하기 위한 방법으로서,
비주얼 미디어 데이터의 제1 블록과 상기 비주얼 미디어 데이터의 대응하는 코딩된 표현 간의 변환 동안, 상기 제1 블록이 기하학적 파티션 모드로 코딩되어 있다고 결정하는 단계;
상기 제1 블록의 적어도 하나의 서브-부분의 모션 정보를 결정하는 단계;
상기 적어도 하나의 서브-부분의 모션 정보를 사용하여 상기 제1 블록의 변환을 수행하는 단계를 포함하고;
적어도 하나의 서브-부분의 모션 정보를 결정하는 단계는 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 이력 기반 모션 벡터 예측(HMVP) 후보를 사용하여 모션 후보 리스트를 구성하는 단계 및 상기 모션 후보 리스트로부터 상기 모션 정보를 결정하는 단계를 포함하는, 방법.
2 제1항에 있어서, 상기 제1 블록이 기하학적 파티션 모드로 코딩되어 있는 것은:
상기 제1 블록을 다수의 서브-부분으로 분할하는 단계를 포함하고;
상기 다수의 서브-부분 중 적어도 하나의 서브-부분은 비-직사각형 및 비-정사각형 부분인, 방법.
3. 제1항에 있어서,
상기 적어도 하나의 HMVP 후보가 상기 모션 후보 리스트에 직접 추가되는, 방법.
4. 제1항 내지 제3항 중 어느 한 항에 있어서, 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는:
하나의 HMVP 후보를 사용하여 제1 모션 후보 및 제2 모션 후보를 결정하는 단계를 포함하고, 상기 제1 모션 후보 및 상기 제2 모션 후보 중 하나는 상기 HMVP 후보의 List 0 모션 정보를 갖는 단방향 예측이고, 다른 하나는 상기 HMVP 후보의 List 1 모션 정보를 갖는 단방향 예측인, 방법.
5. 제1항 내지 제4항 중 어느 한 항에 있어서,
공간 또는 시간 비디오 블록들에 기초하는 다른 모션 후보들과 상기 HMVP 후보로부터 도출된 모션 후보를 삽입하는 것에 응답하여 프루닝을 수행하는 단계를 추가로 포함하는, 방법.
6. 제1항 내지 제5항 중 어느 한 항에 있어서,
다른 HMVP 후보들에 기초하는 다른 모션 후보들과 상기 HMVP 후보로부터 도출된 모션 후보를 삽입하는 것에 응답하여 프루닝을 수행하는 단계를 추가로 포함하는, 방법.
7. 제1항 내지 제6항 중 어느 한 항에 있어서,
상기 HMVP 후보에 기초하는 다른 모션 후보들과 상기 HMVP 후보로부터 도출된 모션 후보를 삽입하는 것에 응답하여 프루닝을 수행하는 단계를 추가로 포함하는, 방법.
8. 제1항 내지 제7항 중 어느 한 항에 있어서, 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는:
공간 또는 시간 블록들 중 하나 또는 둘 다로부터 도출된 모션 후보들 후에 상기 HMVP 후보로부터 도출된 적어도 하나의 모션 후보를 상기 모션 후보 리스트에 추가하는 단계를 포함하는, 방법.
9. 제1항 내지 제8항 중 어느 한 항에 있어서, 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는:
공간 또는 시간 블록들의 모션 정보에 기초하여 모션 후보 리스트 구성 프로세스에서 사전 정의된 단계 후에 또는 전에 상기 HMVP 후보로부터 도출된 적어도 하나의 모션 후보를 상기 모션 후보 리스트에 추가하는 단계를 포함하는, 방법.
10. 제1항 내지 제9항 중 어느 한 항에 있어서, 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는:
공간 또는 시간 블록들의 모션 정보에 기초하여 모션 후보 리스트 구성 프로세스에서 다수의 사전 정의된 단계 후에 또는 전에 상기 HMVP 후보로부터 도출된 적어도 하나의 모션 후보를 상기 모션 후보 리스트에 추가하는 단계를 포함하는, 방법.
11. 제1항 내지 제10항 중 어느 한 항에 있어서, 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는:
모든 원래 단방향 예측된 후보들 후에 단방향 예측을 갖는 상기 HMVP 후보로부터 도출된 적어도 하나의 모션 후보를 상기 모션 후보 리스트에 추가하는 단계를 포함하는, 방법.
12. 제1항 내지 제11항 중 어느 한 항에 있어서, 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는:
절단된 List 0 예측된 후보들 후에 양방향 예측 또는 List 0으로부터의 단방향 예측을 갖는 상기 HMVP 후보로부터 도출된 적어도 하나의 모션 후보를 상기 모션 후보 리스트에 추가하는 단계를 포함하는, 방법.
13. 제1항 내지 제12항 중 어느 한 항에 있어서, 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는:
절단된 List 1 예측된 후보들 후에 양방향 예측 또는 List 1로부터의 단방향 예측을 갖는 상기 HMVP 후보로부터 도출된 적어도 하나의 모션 후보를 상기 모션 후보 리스트에 추가하는 단계를 포함하는, 방법.
14. 제1항 내지 제13항 중 어느 한 항에 있어서, 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는:
List 0 또는 List 1 모션 후보들로부터의 평균된 단방향 예측 후에 상기 적어도 하나의 HMVP 후보로부터 도출된 적어도 하나의 모션 후보를 상기 모션 후보 리스트에 추가하는 단계를 포함하는, 방법.
15. 제1항 내지 제14항 중 어느 한 항에 있어서, 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는:
List 0 또는 List 1 모션 후보들로부터의 평균된 단방향 예측 전에 상기 적어도 하나의 HMVP 후보로부터 도출된 적어도 하나의 모션 후보를 상기 모션 후보 리스트에 추가하는 단계를 포함하는, 방법.
16. 제1항 내지 제15항 중 어느 한 항에 있어서, 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는:
현재 블록과 관련하여 공간 또는 시간 블록들의 모션 정보에 기초하는 모션 후보들과의 인터리빙에 따라 상기 HMVP 후보로부터 도출된 적어도 하나의 모션 후보를 상기 모션 후보 리스트에 추가하는 단계를 포함하는, 방법.
17. 제8항 내지 제16항 중 어느 한 항에 있어서,
HMVP 후보로부터 도출된 모션 후보는 상기 HMVP 후보와 동등하게 설정되는, 방법.
18. 제1항 내지 제17항 중 어느 한 항에 있어서, 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는:
다른 HMVP 후보의 List 0 및 List 1로부터 도출된 모션 후보들 전에 상기 HMVP 후보의 List 0 및 List 1로부터 도출된 적어도 하나의 모션 후보를 상기 모션 후보 리스트에 추가하는 단계를 포함하는, 방법.
19. 제1항 내지 제18항 중 어느 한 항에 있어서, 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는:
HMVP 후보들의 제2 세트의 List 1로부터 도출된 모션 후보들 전에 HMVP 후보들의 제1 세트의 List 0으로부터 도출된 적어도 하나의 모션 후보를 상기 모션 후보 리스트에 추가하는 단계를 포함하는, 방법.
20. 제19항에 있어서, 상기 제1 세트와 상기 제2 세트는 동일한, 방법.
21. 제19항에 있어서, 상기 제1 세트와 상기 제2 세트는 상이하고, 상기 제1 세트는 양방향 예측 및 List 0으로부터의 단방향 예측을 갖는 HMVP 후보들을 포함하고, 상기 제2 세트는 양방향 예측 및 List 1로부터의 단방향 예측을 갖는 HMVP 후보들을 포함하는, 방법.
22. 제19항에 있어서, 상기 제1 세트는 제1 수의 HMVP 후보들을 포함하고, 상기 제2 세트는 제2 수의 HMVP 후보들을 포함하고, 상기 제1 수와 상기 제2 수는 상이한, 방법.
23. 제1항 내지 제22항 중 어느 한 항에 있어서, 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는:
리스트 LX의 HMVP 후보들을 리스트 L(1-X)로 스케일링하여 L(1-X)를 위해 사용되는 스케일링된 HMVP 후보들을 생성하는 단계를 포함하는, 방법.
24. 제23항에 있어서, 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는:
HMVP 후보들로부터 도출된 다른 모션 후보들 후에 상기 스케일링된 HMVP 후보들을 추가하는 단계를 포함하는, 방법.
25. 제23항에 있어서, 이전에 코딩된 블록에 기초한 모션 정보를 포함하는 적어도 하나의 HMVP 후보를 사용하여 모션 후보 리스트를 구성하는 단계는:
HMVP 후보들로부터 도출된 다른 모션 후보들 후에 그리고 시간 후보들 전에 상기 스케일링된 HMVP 후보들을 추가하는 단계를 포함하는, 방법.
26. 제1항 내지 제25항 중 어느 한 항에 있어서, 상기 모션 후보 리스트에 추가될 HMVP 후보들의 검사 순서는 상기 HMVP 후보들의 인덱스들에 기초하는, 방법.
27. 제1항 내지 제25항 중 어느 한 항에 있어서, 상기 모션 후보 리스트에 추가될 HMVP 후보들의 검사 순서는 예측 방향들에 기초하는, 방법.
28. 제1항 내지 제25항 중 어느 한 항에 있어서, 상기 모션 후보 리스트에 추가될 HMVP 후보들의 검사 순서는 모션 정보에 기초하는, 방법.
29. 제1항 내지 제28항 중 어느 한 항에 있어서, 상기 모션 후보 리스트 구성 프로세스에서 검사될 HMVP 후보들의 수는 사전 정의되는, 방법.
30. 제1항 내지 제28항 중 어느 한 항에 있어서, 모션 후보 리스트 구성 프로세스에서 검사될 HMVP 후보들의 수는 현재 블록의 블록 크기, 현재 블록의 블록 형상, 또는 HMVP 후보들을 검사하기 전에 이용가능한 후보들의 수에 기초하는, 방법.
31. 제1항 내지 제28항 중 어느 한 항에 있어서, 상기 모션 후보 리스트 구성 프로세스에서 검사될 HMVP 후보들의 수는 비디오 파라미터 세트(VPS), 시퀀스 파라미터 세트(SPS), 화상 파라미터 세트(PPS), 화상 헤더, 타일 그룹 헤더, 슬라이스 헤더, 코딩 트리 단위(CTU)들의 행들의 그룹, CTU, 또는 CTU들의 그룹에서 시그널링되는, 방법.
32. 제1항 내지 제28항 중 어느 한 항에 있어서, 상기 모션 후보 리스트에서 검사되도록 선택된 HMVP 후보들은 후보 인덱스 및 후보의 현재 화상 및 참조 화상의 예측 방향, 모션 벡터(MV) 정보, 참조 화상 인덱스, POC 거리들 중 적어도 하나에 기초하는, 방법.
33. 제1항 내지 제28항 중 어느 한 항에 있어서, 상기 현재 블록에 대한 HMVP의 적용은 상기 현재 블록의 블록 크기 또는 상기 현재 블록의 블록 형상에 기초하는, 방법.
34. 제1항 내지 제33항 중 어느 한 항에 있어서, 상기 모션 후보 리스트는 병합 리스트를 포함하는, 방법.
35. 제1항 내지 제33항 중 어느 한 항에 있어서, 상기 모션 후보 리스트는 상기 병합 후보 리스트를 제외한 다른 종류의 모션 후보 리스트들에 적용가능한, 방법.
36. 제1항 내지 제35항 중 어느 한 항에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 처리 장치.
37. 제36항에 있어서, 상기 장치는 비디오 인코더인, 장치.
38. 제36항에 있어서, 상기 장치는 비디오 디코더인, 장치.
39. 코드를 포함하는 프로그램이 기록된 컴퓨터 판독가능 기록 매체로서, 상기 프로그램은 프로세서가 제1항 내지 제35항 중 어느 한 항에 기재된 방법을 수행하기 위한 것인, 컴퓨터 판독가능 기록 매체.
본 문서에서 설명된 개시된 그리고 다른 솔루션들, 예들, 실시예들, 모듈들 및 기능 동작들은 디지털 전자 회로에서, 또는 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어에서 - 이 문서에 개시된 구조들 및 그들의 구조적 등가물들을 포함하여 -, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 개시된 그리고 다른 실시예들은 하나 이상의 컴퓨터 프로그램 제품, 즉, 데이터 처리 장치에 의한 실행을 위해, 또는 데이터 처리 장치의 동작을 제어하기 위해 컴퓨터 판독가능 매체 상에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독가능 매체는 머신 판독가능 저장 디바이스, 머신 판독가능 저장 기판, 메모리 디바이스, 머신 판독가능 전파 신호에 영향을 주는 물질 조성, 또는 이들 중 하나 이상의 조합일 수 있다. "데이터 처리 장치"라는 용어는 예로서 프로그램 가능 프로세서, 컴퓨터, 또는 다수의 프로세서 또는 컴퓨터를 포함하는, 데이터를 처리하기 위한 모든 장치, 디바이스, 및 머신을 포함한다. 장치는, 하드웨어에 더하여, 해당 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 전파 신호는 적합한 수신기 장치로의 송신을 위해 정보를 인코딩하도록 생성되는 인위적으로 생성된 신호, 예를 들어, 머신 생성 전기, 광학, 또는 전자기 신호이다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트, 또는 코드라고도 알려져 있음)은, 컴파일된 또는 해석된 언어들을 포함하는 임의의 형식의 프로그래밍 언어로 작성될 수 있고, 그것은 독립형 프로그램(stand-alone program)으로서, 또는 모듈, 컴포넌트, 서브루틴, 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛으로서 배치되는 것을 포함하여, 임의의 형식으로 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템 내의 파일에 반드시 대응하지는 않는다. 프로그램은 다른 프로그램들 또는 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하는 파일의 일부 내에, 해당 프로그램에 전용되는 단일 파일 내에, 또는 다수의 코디네이션된 파일들(예를 들어, 하나 이상의 모듈, 서브 프로그램들, 또는 코드의 부분들을 저장하는 파일들) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서, 또는 한 장소에 위치하거나 다수의 장소에 걸쳐 분산되어 통신 네트워크에 의해 상호연결되는 다수의 컴퓨터 상에서 실행되도록 배치될 수 있다.
본 문서에서 설명된 프로세스들 및 로직 흐름들은 입력 데이터에 대해 동작하고 출력을 생성하는 것에 의해 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 프로세서에 의해 수행될 수 있다. 프로세스들 및 로직 흐름들은 또한 특수 목적 로직 회로, 예를 들어, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있고, 장치가 또한 그것들로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서들은, 예로서, 범용 및 특수 목적 마이크로프로세서 둘 다, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은 명령어들을 수행하기 위한 프로세서 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어, 자기, 광자기 디스크들, 또는 광 디스크들을 포함하거나, 또는 이들로부터 데이터를 수신하거나 데이터를 이들에 전송하거나, 또는 이들 둘 다를 수행하도록 동작적으로 결합될 것이다. 그러나, 컴퓨터는 그러한 디바이스들을 가질 필요는 없다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 컴퓨터 판독가능 매체는, 예로서 반도체 메모리 디바이스들, 예를 들어, EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크들, 예를 들어, 내부 하드 디스크들 또는 이동식 디스크들; 광자기 디스크들; 및 CD ROM 및 DVD-ROM 디스크들을 포함하는 모든 형식의 비-휘발성 메모리, 매체 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로에 의해 보완되거나 그에 통합될 수 있다.
본 특허 문서가 많은 세부 사항들을 포함하고 있지만, 이들이 임의의 주제의 또는 청구될 수 있는 것의 범위에 대한 제한으로서 해석되어서는 안 되고, 오히려 특정 기법들의 특정 실시예들에 특정적일 수 있는 특징들의 설명으로서 해석되어야 한다. 개별 실시예들의 컨텍스트에서 본 특허 문서에서 설명되는 특정 특징들은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 컨텍스트에서 설명되는 다양한 특징들은 또한 다수의 실시예에서 개별적으로 또는 임의의 적합한 부분조합으로 구현될 수 있다. 더욱이, 특징들이 특정 조합들로 작용하는 것으로 위에서 설명되고 심지어 처음에는 그와 같이 청구될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우들에서 조합으로부터 삭제될 수 있고, 청구된 조합은 부분조합 또는 부분조합의 변형에 관한 것일 수 있다.
유사하게, 동작들이 특정 순서로 도면들에 묘사되지만, 이는 바람직한 결과들을 달성하기 위해, 그러한 동작들이 도시된 특정 순서로 또는 순차적인 순서로 수행되거나, 모든 예시된 동작들이 수행되는 것을 요구하는 것으로 이해되어서는 안 된다. 더욱이, 본 특허 문서에서 설명된 실시예들에서의 다양한 시스템 컴포넌트들의 분리는 모든 실시예들에서 그러한 분리를 요구하는 것으로 이해되어서는 안 된다.
몇몇 구현들 및 예들만이 설명되고, 본 특허 문서에서 설명되고 예시된 것에 기초하여 다른 구현들, 향상들 및 변형들이 이루어질 수 있다.

Claims (25)

  1. 비디오 데이터 코딩 방법으로서,
    비주얼 미디어 데이터의 제1 블록과 상기 비주얼 미디어 데이터의 대응하는 비트스트림 간의 변환 동안, 코딩 유닛인 상기 제1 블록이 상기 코딩 유닛에 대한 예측 모드인 기하학적 파티션 모드로 코딩되어 있다고 결정하는 단계;
    이전에 코딩된 블록들에 기초한 모션 정보와 연관된 하나 또는 다수의 모션 후보들을 저장하는 표에 기초하여, 병합 후보 리스트에 대응하는 모션 후보 리스트를 구성하는 단계 - 상기 표는 이력 기반 모션 벡터 예측(history based motion vector prediction, HMVP) 표를 포함함 -;
    상기 제1 블록의 기하학적 파티션들에 대한 기하학적 파티션 모드 병합 인덱스가 상기 대응하는 비트스트림에 포함되어 있다고 결정하는 단계 - 상기 기하학적 파티션 모드 병합 인덱스 및 상기 모션 후보 리스트는 상기 제1 블록의 모션 정보와 관련됨 -; 및
    상기 제1 블록의 모션 정보를 사용하여 상기 제1 블록의 변환을 수행하는 단계
    를 포함하고,
    상기 표는 상기 제1 블록의 변환 후에 업데이트되지 않는, 방법.
  2. 제1항에 있어서,
    상기 제1 블록에 의해 사용되는 상기 모션 정보는 상기 표에 저장되는 것이 억제되는, 방법.
  3. 제1항에 있어서,
    상기 비주얼 미디어 데이터의 제2 블록과 상기 비주얼 미디어 데이터의 대응하는 비트스트림 간의 변환 동안, 상기 제1 블록에 사용되는 동일한 표에 기초하여 상기 제2 블록의 모션 정보를 결정하는 단계를 더 포함하고,
    상기 제2 블록은 상기 기하학적 파티션 모드를 사용하여 코딩되지 않는, 방법.
  4. 제1항에 있어서,
    상기 모션 후보 리스트를 구성하는 단계는 공간 및/또는 시간 블록들로부터 도출된 모션 후보들에 기초하여 상기 모션 후보 리스트를 구성하는 단계를 더 포함하는, 방법.
  5. 제1항에 있어서,
    이전에 코딩된 블록들에 기초한 모션 정보와 연관된 하나 또는 다수의 모션 후보들을 저장하는 표에 기초하여, 병합 후보 리스트에 대응하는 모션 후보 리스트를 구성하는 상기 단계는:
    상기 제1 블록에 대해 상기 표로부터 도출된 적어도 하나의 모션 후보를 추가하는 단계를 포함하는, 방법.
  6. 제5항에 있어서,
    상기 제1 블록에 대해 상기 표로부터 도출된 모션 후보들을 추가하는 단계는:
    공간 블록들 또는 시간 블록들 중 하나 또는 둘 다로부터 도출된 모션 후보들 후에 상기 표로부터 도출된 적어도 하나의 모션 후보를 상기 모션 후보 리스트에 추가하는 단계를 포함하는, 방법.
  7. 제5항에 있어서,
    상기 표로부터 상기 도출된 적어도 하나의 모션 후보는 상기 표 내의 대응하는 적어도 하나의 모션 후보와 동일하게 설정되는, 방법.
  8. 제5항에 있어서,
    상기 모션 후보 리스트에 추가될 상기 표 내의 모션 후보들의 검사 순서는 상기 표 내의 모션 후보들의 인덱스들에 기초하는, 방법.
  9. 제1항에 있어서,
    상기 기하학적 파티션 모드는 다수의 파티션 스킴을 포함하고, 적어도 하나의 파티션 스킴은 상기 제1 블록을 2개의 기하학적 파티션으로 분할하고, 상기 2개의 기하학적 파티션 중 적어도 하나는 비-정사각형 및 비-직사각형인, 방법.
  10. 제1항에 있어서,
    상기 기하학적 파티션 모드는 삼각형 파티션 모드를 포함하는, 방법.
  11. 제1항에 있어서,
    상기 변환은 상기 대응하는 비트스트림으로부터 상기 제1 블록을 디코딩하는 단계를 포함하는, 방법.
  12. 제1항에 있어서,
    상기 변환은 상기 제1 블록을 상기 대응하는 비트스트림으로 인코딩하는 단계를 포함하는, 방법.
  13. 프로세서 및 명령어들을 갖는 비-일시적 메모리를 포함하는 비디오 데이터 코딩 장치로서, 상기 명령어들은 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금:
    비주얼 미디어 데이터의 제1 블록과 상기 비주얼 미디어 데이터의 대응하는 비트스트림 간의 변환 동안, 코딩 유닛인 상기 제1 블록이 상기 코딩 유닛에 대한 예측 모드인 기하학적 파티션 모드로 코딩되어 있다고 결정하고;
    이전에 코딩된 블록들에 기초한 모션 정보와 연관된 하나 또는 다수의 모션 후보들을 저장하는 표에 기초하여, 병합 후보 리스트에 대응하는 모션 후보 리스트를 구성하고 - 상기 표는 이력 기반 모션 벡터 예측(history based motion vector prediction, HMVP) 표를 포함함 -;
    상기 제1 블록의 기하학적 파티션들에 대한 기하학적 파티션 모드 병합 인덱스가 상기 대응하는 비트스트림에 포함되어 있다고 결정하고 - 상기 기하학적 파티션 모드 병합 인덱스 및 상기 모션 후보 리스트는 상기 제1 블록의 모션 정보와 관련됨 -; 그리고
    상기 제1 블록의 모션 정보를 사용하여 상기 제1 블록의 변환을 수행하도록 하고,
    상기 표는 상기 제1 블록의 변환 후에 업데이트되지 않는, 비디오 데이터 코딩 장치.
  14. 명령어들을 저장하는 비-일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령어들은 프로세서로 하여금:
    비주얼 미디어 데이터의 제1 블록과 상기 비주얼 미디어 데이터의 대응하는 비트스트림 간의 변환 동안, 코딩 유닛인 상기 제1 블록이 상기 코딩 유닛에 대한 예측 모드인 기하학적 파티션 모드로 코딩되어 있다고 결정하고;
    이전에 코딩된 블록들에 기초한 모션 정보와 연관된 하나 또는 다수의 모션 후보들을 저장하는 표에 기초하여, 병합 후보 리스트에 대응하는 모션 후보 리스트를 구성하고 - 상기 표는 이력 기반 모션 벡터 예측(history based motion vector prediction, HMVP) 표를 포함함 -;
    상기 제1 블록의 기하학적 파티션들에 대한 기하학적 파티션 모드 병합 인덱스가 상기 대응하는 비트스트림에 포함되어 있다고 결정하고 - 상기 기하학적 파티션 모드 병합 인덱스 및 상기 모션 후보 리스트는 상기 제1 블록의 모션 정보와 관련됨 -; 그리고
    상기 제1 블록의 모션 정보를 사용하여 상기 제1 블록의 변환을 수행하도록 하고,
    상기 표는 상기 제1 블록의 변환 후에 업데이트되지 않는, 비-일시적 컴퓨터 판독가능 저장 매체.
  15. 비디오 처리 장치에 의해 수행되는 방법에 의해 생성되는 비트스트림을 저장하는 비-일시적 컴퓨터 판독가능 기록 매체로서, 상기 방법은:
    비주얼 미디어 데이터의 제1 블록으로부터 비주얼 미디어 데이터의 대응하는 비트스트림의 생성 동안, 코딩 유닛인 상기 제1 블록이 상기 코딩 유닛에 대한 예측 모드인 기하학적 파티션 모드로 코딩되어 있다고 결정하는 단계;
    이전에 코딩된 블록들에 기초한 모션 정보와 연관된 하나 또는 다수의 모션 후보들을 저장하는 표에 기초하여, 병합 후보 리스트에 대응하는 모션 후보 리스트를 구성하는 단계 - 상기 표는 이력 기반 모션 벡터 예측(history based motion vector prediction, HMVP) 표를 포함함 -;
    상기 제1 블록의 기하학적 파티션들에 대한 기하학적 파티션 모드 병합 인덱스가 상기 대응하는 비트스트림에 포함되어 있다고 결정하는 단계 - 상기 기하학적 파티션 모드 병합 인덱스 및 상기 모션 후보 리스트는 상기 제1 블록의 모션 정보와 관련됨 -; 및
    상기 제1 블록의 모션 정보를 사용하여 상기 제1 블록으로부터 상기 대응하는 비트스트림을 생성하는 단계
    를 포함하고,
    상기 표는 상기 제1 블록의 모션 정보에 기초하여 업데이트되지 않는, 비-일시적 컴퓨터 판독가능 기록 매체.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
KR1020217012211A 2018-11-02 2019-11-04 Hmvp 후보 저장을 위한 표 유지 KR102608615B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237036239A KR20230155014A (ko) 2018-11-02 2019-11-04 Hmvp 후보 저장을 위한 표 유지

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN2018113716 2018-11-02
CNPCT/CN2018/113716 2018-11-02
CN2019086174 2019-05-09
CNPCT/CN2019/086174 2019-05-09
PCT/CN2019/115453 WO2020088690A1 (en) 2018-11-02 2019-11-04 Table maintenance for hmvp candidate storage

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237036239A Division KR20230155014A (ko) 2018-11-02 2019-11-04 Hmvp 후보 저장을 위한 표 유지

Publications (2)

Publication Number Publication Date
KR20210087935A KR20210087935A (ko) 2021-07-13
KR102608615B1 true KR102608615B1 (ko) 2023-12-05

Family

ID=70463851

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217012211A KR102608615B1 (ko) 2018-11-02 2019-11-04 Hmvp 후보 저장을 위한 표 유지
KR1020237036239A KR20230155014A (ko) 2018-11-02 2019-11-04 Hmvp 후보 저장을 위한 표 유지

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020237036239A KR20230155014A (ko) 2018-11-02 2019-11-04 Hmvp 후보 저장을 위한 표 유지

Country Status (9)

Country Link
US (3) US11122266B2 (ko)
EP (1) EP3854092A4 (ko)
JP (2) JP7277579B2 (ko)
KR (2) KR102608615B1 (ko)
CN (3) CN111147855A (ko)
BR (1) BR112021007863A2 (ko)
MX (1) MX2021004677A (ko)
SG (1) SG11202104022XA (ko)
WO (3) WO2020088689A1 (ko)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019151297A1 (ja) * 2018-01-30 2019-08-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
WO2019234607A1 (en) 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Interaction between ibc and affine
TWI739120B (zh) 2018-06-21 2021-09-11 大陸商北京字節跳動網絡技術有限公司 合併仿射模式與非合併仿射模式的統一拘束
EP3788782A1 (en) 2018-06-21 2021-03-10 Beijing Bytedance Network Technology Co. Ltd. Sub-block mv inheritance between color components
KR20240005240A (ko) 2018-06-29 2024-01-11 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut에서의 모션 후보들의 검사 순서
KR20210024502A (ko) 2018-06-29 2021-03-05 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Hmvp 후보를 병합/amvp에 추가할 때의 부분/풀 프루닝
KR102660666B1 (ko) 2018-06-29 2024-04-26 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut들을 업데이트하기 위한 조건들
WO2020003280A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Which lut to be updated or no updating
WO2020003284A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and amvp
CN110662053B (zh) 2018-06-29 2022-03-25 北京字节跳动网络技术有限公司 使用查找表的视频处理方法、装置和存储介质
BR112020024202A2 (pt) 2018-06-29 2021-02-17 Beijing Bytedance Network Technology Co., Ltd. método de processamento de dados de vídeo, aparelho de processamento de vídeo e meios de armazenamento e gravação legíveis por computador não transitório
EP4307679A2 (en) 2018-07-02 2024-01-17 Beijing Bytedance Network Technology Co., Ltd. Luts with intra prediction modes and intra mode prediction from non-adjacent blocks
TWI820211B (zh) 2018-09-12 2023-11-01 大陸商北京字節跳動網絡技術有限公司 取決於總數減去k的開始檢查hmvp候選的條件
US11297330B2 (en) * 2018-09-22 2022-04-05 Lg Electronics Inc. Method and apparatus for processing video signal based on inter prediction
TWI818086B (zh) 2018-09-24 2023-10-11 大陸商北京字節跳動網絡技術有限公司 擴展Merge預測
WO2020073896A1 (en) * 2018-10-08 2020-04-16 Huawei Technologies Co., Ltd. Apparatuses and methods for inter prediction of a triangle partition of a coding block
EP3854092A4 (en) 2018-11-02 2021-11-17 Beijing Bytedance Network Technology Co. Ltd. KEEPING TABLES FOR THE STORAGE OF HMVP CANDIDATES
WO2020094074A1 (en) 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Position-depending ordering of motion candidate list for geometric partitioning mode
CN113056917B (zh) 2018-11-06 2024-02-06 北京字节跳动网络技术有限公司 为视频处理使用具有几何分割的帧间预测
CN112997480B (zh) 2018-11-10 2023-08-22 北京字节跳动网络技术有限公司 成对平均候选计算中的取整
WO2020103935A1 (en) 2018-11-22 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Blending method for inter prediction with geometry partition
SG11202105354YA (en) * 2018-11-22 2021-06-29 Huawei Tech Co Ltd An encoder, a decoder and corresponding methods for inter prediction
WO2020117016A1 (ko) * 2018-12-06 2020-06-11 엘지전자 주식회사 인터 예측을 기반으로 비디오 신호를 처리하기 위한 방법 및 장치
US11122272B2 (en) * 2018-12-26 2021-09-14 Mediatek Inc. Triangle prediction with applied-block settings and motion storage settings
CN112470476A (zh) 2018-12-28 2021-03-09 Jvc建伍株式会社 图像编码装置、图像编码方法、图像编码程序、图像解码装置、图像解码方法及图像解码程序
US11102476B2 (en) * 2018-12-28 2021-08-24 Qualcomm Incorporated Subblock based affine motion model
CN113261290B (zh) 2018-12-28 2024-03-12 北京字节跳动网络技术有限公司 基于修改历史的运动预测
CN113170166B (zh) 2018-12-30 2023-06-09 北京字节跳动网络技术有限公司 具有几何分割的帧间预测在视频处理中有条件的应用
EP3731522A4 (en) * 2019-01-01 2021-04-14 LG Electronics Inc. METHOD AND APPARATUS FOR PROCESSING VIDEO SIGNAL BASED ON HISTORY-BASED MOTION VECTOR PREDICTION
EP3888355A4 (en) 2019-01-10 2022-03-23 Beijing Bytedance Network Technology Co., Ltd. LOOKUP TABLE UPDATE INVOCATION
CN113383554B (zh) 2019-01-13 2022-12-16 北京字节跳动网络技术有限公司 LUT和共享Merge列表之间的交互
WO2020147772A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Motion candidates derivation
SG11202108103WA (en) * 2019-01-28 2021-08-30 Op Solutions Llc Inter prediction in geometric partitioning with an adaptive number of regions
TWI737142B (zh) * 2019-01-31 2021-08-21 聯發科技股份有限公司 視訊編碼中結合畫面間和畫面內預測之方法和裝置
CN113475075B (zh) 2019-02-13 2023-09-08 北京字节跳动网络技术有限公司 基于共享Merge列表的运动预测
KR102617439B1 (ko) 2019-02-26 2023-12-26 애플 인크. 영상 신호 부호화/복호화 방법 및 이를 위한 장치
CN113615193A (zh) 2019-03-22 2021-11-05 北京字节跳动网络技术有限公司 Merge列表构建和其他工具之间的交互
WO2020244568A1 (en) 2019-06-04 2020-12-10 Beijing Bytedance Network Technology Co., Ltd. Motion candidate list with geometric partition mode coding
EP3963890A4 (en) 2019-06-04 2022-11-02 Beijing Bytedance Network Technology Co., Ltd. BUILDING A LIST OF MOVEMENT CANDIDATES USING NEIGHBOR BLOCK INFORMATION
WO2020244660A1 (en) 2019-06-06 2020-12-10 Beijing Bytedance Network Technology Co., Ltd. Motion candidate list construction for video coding
CA3140818A1 (en) * 2019-06-21 2020-12-24 Semih Esenlik An encoder, a decoder and corresponding methods for sub-block partitioning mode
WO2021008513A1 (en) 2019-07-14 2021-01-21 Beijing Bytedance Network Technology Co., Ltd. Transform block size restriction in video coding
KR20220036939A (ko) 2019-07-26 2022-03-23 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩 모드의 블록 크기 종속적 사용
WO2021057996A1 (en) 2019-09-28 2021-04-01 Beijing Bytedance Network Technology Co., Ltd. Geometric partitioning mode in video coding
CN114556926A (zh) 2019-10-10 2022-05-27 北京字节跳动网络技术有限公司 几何分割模式中的运动矢量处理
CN117729330A (zh) 2019-11-30 2024-03-19 抖音视界(北京)有限公司 使用几何分割的简化的帧间预测
WO2021129694A1 (en) 2019-12-24 2021-07-01 Beijing Bytedance Network Technology Co., Ltd. High level syntax for inter prediction with geometric partitioning
US11722692B2 (en) * 2019-12-31 2023-08-08 Qualcomm Incorporated History-based motion vector predictor constraint for merge estimation region
US11871143B2 (en) 2020-09-17 2024-01-09 Lemon Inc. Subpicture tracks in coded video
CN113099229B (zh) * 2021-02-22 2022-08-09 浙江大华技术股份有限公司 块划分方法、帧间预测方法、视频编码方法及相关装置
WO2022141278A1 (zh) * 2020-12-30 2022-07-07 深圳市大疆创新科技有限公司 视频处理方法和编码装置
WO2022214092A1 (en) * 2021-04-09 2022-10-13 Beijing Bytedance Network Technology Co., Ltd. Method, device, and medium for video processing
WO2023284695A1 (en) * 2021-07-14 2023-01-19 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing
US11949863B2 (en) * 2021-08-02 2024-04-02 Tencent America LLC Geometric partition mode with intra block copy

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7068850B2 (en) 2001-06-29 2006-06-27 Equator Technologies, Inc. Decoding of predicted DC coefficient without division
US7227901B2 (en) 2002-11-21 2007-06-05 Ub Video Inc. Low-complexity deblocking filter
KR100843080B1 (ko) 2006-02-24 2008-07-02 삼성전자주식회사 비디오 트랜스코딩 방법 및 장치
BRPI0714859A2 (pt) * 2006-08-02 2013-05-21 Thomson Licensing mÉtodo e aparelho para particionamento geomÉtrico adaptativo para codificaÇço de vÍdeo e estrutura de sinal de vÍdeo para codificaÇço de vÍdeo
MX2009003333A (es) * 2006-09-29 2009-05-12 Thomson Licensing Intra prediccion geometrica.
US20100208827A1 (en) * 2007-10-16 2010-08-19 Thomson Licensing Methods and apparatus for video encoding and decoding geometerically partitioned super macroblocks
CN101257625B (zh) 2008-04-01 2011-04-20 海信集团有限公司 视频编解码中的位置索引方法及视频解码器
US9078007B2 (en) * 2008-10-03 2015-07-07 Qualcomm Incorporated Digital video coding with interpolation filters and offsets
KR101740039B1 (ko) * 2009-06-26 2017-05-25 톰슨 라이센싱 적응형 기하학적 분할을 이용한 비디오 인코딩 및 디코딩 방법 및 장치
CN102026002B (zh) 2009-09-14 2014-02-19 富士通株式会社 帧率下采样转码方法和装置以及矢量重建方法和装置
KR20120010367A (ko) * 2010-07-26 2012-02-03 (주)휴맥스 정밀한 단위의 보간 필터 선택을 적용한 영상 부호화/복호화 장치 및 방법
EP2532160A1 (en) 2010-02-05 2012-12-12 Telefonaktiebolaget L M Ericsson (PUBL) Managing predicted motion vector candidates
US8879632B2 (en) * 2010-02-18 2014-11-04 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
WO2011130186A2 (en) * 2010-04-12 2011-10-20 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
EP2421266A1 (en) * 2010-08-19 2012-02-22 Thomson Licensing Method for reconstructing a current block of an image and corresponding encoding method, corresponding devices as well as storage medium carrying an images encoded in a bit stream
US9071851B2 (en) * 2011-01-10 2015-06-30 Qualcomm Incorporated Adaptively performing smoothing operations
AU2015202844B2 (en) * 2011-01-12 2016-03-17 Ntt Docomo, Inc. Image predict coding method, image predict coding device, image predict coding program, image predict decoding method, image predict decoding device, and image predict decoding program
US9319716B2 (en) 2011-01-27 2016-04-19 Qualcomm Incorporated Performing motion vector prediction for video coding
US9143795B2 (en) 2011-04-11 2015-09-22 Texas Instruments Incorporated Parallel motion estimation in video coding
US20140098880A1 (en) * 2012-10-05 2014-04-10 Qualcomm Incorporated Prediction mode information upsampling for scalable video coding
CN102946536B (zh) 2012-10-09 2015-09-30 华为技术有限公司 候选矢量列表构建的方法及装置
US9253503B2 (en) * 2012-12-18 2016-02-02 Xerox Corporation Computationally efficient motion estimation with learning capabilities for video compression in transportation and regularized environments
KR101980349B1 (ko) * 2014-03-05 2019-05-20 엘지전자 주식회사 폴리곤 유닛 기반 영상 인코딩/디코딩 방법 및 이를 위한 장치
JP6345805B2 (ja) * 2014-05-06 2018-06-20 寰發股▲ふん▼有限公司HFI Innovation Inc. Intraブロックコピーモード符号化のブロックベクトル予測の方法
US10027981B2 (en) * 2014-09-01 2018-07-17 Hfi Innovation Inc. Method of intra picture block copy for screen content and video coding
CN104363451B (zh) * 2014-10-27 2019-01-25 华为技术有限公司 图像预测方法及相关装置
FR3029381A1 (fr) * 2014-11-27 2016-06-03 Orange Procede de composition d’une representation video intermediaire
WO2016090568A1 (en) 2014-12-10 2016-06-16 Mediatek Singapore Pte. Ltd. Binary tree block partitioning structure
US10200715B2 (en) * 2016-02-17 2019-02-05 Telefonaktiebolaget Lm Ericsson (Publ) Methods and devices for encoding and decoding video pictures
KR20170108367A (ko) * 2016-03-17 2017-09-27 세종대학교산학협력단 인트라 예측 기반의 비디오 신호 처리 방법 및 장치
US10560718B2 (en) 2016-05-13 2020-02-11 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
US10560712B2 (en) * 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
US10721489B2 (en) * 2016-09-06 2020-07-21 Qualcomm Incorporated Geometry-based priority for the construction of candidate lists
US10477238B2 (en) * 2016-09-07 2019-11-12 Qualcomm Incorporated Sub-PU based bi-directional motion compensation in video coding
EP3979646A3 (en) 2017-01-05 2022-05-18 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
WO2018128466A1 (ko) * 2017-01-09 2018-07-12 에스케이텔레콤 주식회사 영상 부호화 또는 복호화하기 위한 장치 및 방법
EP3349467B1 (en) * 2017-01-10 2019-09-04 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
CN108345147B (zh) 2017-01-23 2023-06-20 京东方科技集团股份有限公司 显示基板及其制作方法、显示面板
EP4307679A2 (en) * 2018-07-02 2024-01-17 Beijing Bytedance Network Technology Co., Ltd. Luts with intra prediction modes and intra mode prediction from non-adjacent blocks
US11212550B2 (en) * 2018-09-21 2021-12-28 Qualcomm Incorporated History-based motion vector prediction for affine mode
US11297330B2 (en) * 2018-09-22 2022-04-05 Lg Electronics Inc. Method and apparatus for processing video signal based on inter prediction
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
EP3854092A4 (en) 2018-11-02 2021-11-17 Beijing Bytedance Network Technology Co. Ltd. KEEPING TABLES FOR THE STORAGE OF HMVP CANDIDATES
WO2020094074A1 (en) 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Position-depending ordering of motion candidate list for geometric partitioning mode
CN113056917B (zh) 2018-11-06 2024-02-06 北京字节跳动网络技术有限公司 为视频处理使用具有几何分割的帧间预测
WO2020103935A1 (en) 2018-11-22 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Blending method for inter prediction with geometry partition
TWI737142B (zh) * 2019-01-31 2021-08-21 聯發科技股份有限公司 視訊編碼中結合畫面間和畫面內預測之方法和裝置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Li Zhang et al, "CE4-related: History-based Motion Vector Prediction", JVET of ITU-T and ISO/IEC, JVET-K0104-v5(2018.07.18.)*
Ru-Ling Liao, "CE10.3.1.b: Triangular prediction unit mode", JVET of ITU-T and ISO/IEC, JVET-L0124-v1(2018.09.24.)*

Also Published As

Publication number Publication date
KR20230155014A (ko) 2023-11-09
US20230353737A1 (en) 2023-11-02
WO2020088689A1 (en) 2020-05-07
US20210006787A1 (en) 2021-01-07
US11122266B2 (en) 2021-09-14
CN111147855A (zh) 2020-05-12
BR112021007863A2 (pt) 2021-07-27
KR20210087935A (ko) 2021-07-13
CN111147850B (zh) 2022-10-11
CN115514958A (zh) 2022-12-23
US11700371B2 (en) 2023-07-11
JP2022505731A (ja) 2022-01-14
JP7277579B2 (ja) 2023-05-19
EP3854092A4 (en) 2021-11-17
US20210385451A1 (en) 2021-12-09
MX2021004677A (es) 2021-06-04
CN111147850A (zh) 2020-05-12
WO2020088690A1 (en) 2020-05-07
CN111147847A (zh) 2020-05-12
WO2020088691A1 (en) 2020-05-07
SG11202104022XA (en) 2021-05-28
EP3854092A1 (en) 2021-07-28
JP2023103329A (ja) 2023-07-26

Similar Documents

Publication Publication Date Title
KR102608615B1 (ko) Hmvp 후보 저장을 위한 표 유지
US11070820B2 (en) Condition dependent inter prediction with geometric partitioning
CN112219400B (zh) 依赖位置的对运动信息的存储
WO2020140862A1 (en) Conditional application of inter prediction with geometric partitioning in video processing
WO2020143742A1 (en) Simplified context modeling for context adaptive binary arithmetic coding
WO2020224639A1 (en) Improvement on hmvp table
RU2808631C2 (ru) Ведение таблиц для хранения кандидатов предсказания вектора движения на основе истории
CN112997496B (zh) 仿射预测模式的改进

Legal Events

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