KR20240005223A - 화면 내 블록 복사를 위한 히스토리 기반 움직임 후보 리스트 구성 - Google Patents

화면 내 블록 복사를 위한 히스토리 기반 움직임 후보 리스트 구성 Download PDF

Info

Publication number
KR20240005223A
KR20240005223A KR1020237044979A KR20237044979A KR20240005223A KR 20240005223 A KR20240005223 A KR 20240005223A KR 1020237044979 A KR1020237044979 A KR 1020237044979A KR 20237044979 A KR20237044979 A KR 20237044979A KR 20240005223 A KR20240005223 A KR 20240005223A
Authority
KR
South Korea
Prior art keywords
motion
candidate list
candidates
list
video
Prior art date
Application number
KR1020237044979A
Other languages
English (en)
Inventor
리 장
카이 장
홍빈 리우
지장 수
유에 왕
Original Assignee
베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드
바이트댄스 아이엔씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드, 바이트댄스 아이엔씨 filed Critical 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드
Publication of KR20240005223A publication Critical patent/KR20240005223A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • 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/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/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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)

Abstract

비디오 코딩을 위한 별도의 움직임 후보 리스트 구성을 포함하는 디지털 비디오 코딩을 위한 디바이스들, 시스템들 및 방법들 장치들, 시스템들 및 방법들이 설명된다. 비디오 프로세싱을 위한 예시적인 방법은 비디오의 제1 비디오 블록에 대해 히스토리 기반 움직임 벡터 예측(history-based motion vector prediction: HMVP) 후보들에만 연관된 움직임 후보들을 포함하는 제1 움직임 후보 리스트 구성 방법을 사용하여 제1 움직임 후보 리스트를 구성하는 단계 및 상기 제1 비디오 블록과 상기 제1 비디오 블록을 포함하는 상기 비디오의 비트스트림 표현 간의 변환을 상기 구성된 제1 움직임 후보 리스트에 따라 수행하는 단계를 포함한다.

Description

화면 내 블록 복사를 위한 히스토리 기반 움직임 후보 리스트 구성 {HISTORY BASED MOTION CANDIDATE LIST CONSTRUCTION FOR INTRA BLOCK COPY}
본 출원은 2018년 11월 13일에 제출된 국제출원 No. PCT/CN2018/115176 의 우선권과 혜택을 주장하는, 2019년 11월 13일 출원된 국제 특허출원 No. PCT/CN2019/117907 의 국내단계 출원 No. 10-2021-7012713 에 대한 분할출원이다. 상기 출원들의 전체 개시물은 본 출원의 개시의 일부로서 참고로 통합된다.
본원 특허 문서는 비디오 코딩 기술들, 디바이스들, 및 시스템들에 관한 것이다.
비디오 압축의 진보에도 불구하고, 디지털 비디오는 여전히 인터넷 및 기타 디지털 통신 네트워크에서 가장 큰 대역폭 사용을 차지하고 있다. 비디오를 수신하고 표시할 수 있는 연결된 사용자 장치들의 수가 증가함에 따라, 디지털 비디오 사용에 대한 대역폭 수요는 계속 증가할 것으로 예상된다.
디지털 비디오 코딩, 특히 비디오 코딩을 위한 별도의 움직임 후보 리스트를 구성하는 것과 관련된 장치들, 시스템들 및 방법들이 설명된다. 설명되는 방법들은 기존 비디오 코딩 표준들(예를 들어, HEVC(High Efficiency Video Coding)) 및 향후 비디오 코딩 표준들 또는 비디오 코덱들 모두에 적용될 수 있다.
첫 번째(제1) 예시적인 실시예는, 비디오의 제1 비디오 블록에 대해, 공간적 블록들로부터만 유도된 움직임 후보들이 제외되는 제1 움직임 후보 리스트 구성 방법을 이용하여 제1 움직임 후보 리스트를 구성하는 단계, 및 상기 제1 비디오 블록과 상기 제1 비디오 블록을 포함하는 상기 비디오의 비트스트림 표현 간의 변환을 상기 구성된 제1 움직임 후보 리스트에 따라 수행하는 단계를 포함하는 비디오 프로세싱 방법에 대한 것이다.
첫번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 시간적 블록들로부터의 움직임 후보를 포함한다. 첫번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 시간적 블록들 및 공간적 블록들 모두를 기반으로 하는 움직임 후보를 포함한다. 첫번째 예시적인 실시예의 일부 구현에서, 상기 움직임 후보는 서브 블록 기반 시공간적 움직임 벡터 예측(sub-block based spatial temporal motion vector prediction: STMVP) 혹은 논-서브 블록 기반 STMVP에 사용된다. 첫번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 어파인 모델을 유도하기 위해 상기 제1 비디오 블록에 시간적으로 이웃하는 비디오 블록들로부터의 정보를 사용하는 어파인 머지 후보를 포함한다. 첫번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 어파인 모델을 유도하기 위해 상기 제1 비디오 블록에 시간적으로 이웃하는 비디오 블록들로부터의 정보를 사용하는 어파인 머지 후보를 제외한다.
첫번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 히스토리 기반 움직임 벡터 예측(history-based motion vector prediction: HMVP) 후보를 포함한다. 첫번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 시간적 움직임 후보 혹은 HMVP 후보로부터 유도되는 가상 후보(virtual candidate)를 포함한다. 첫번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 오직 움직임 후보들만을 포함하고, 각 움직임 후보는 상기 제1 비디오 블록 전체에 적용되는 움직임 정보의 한 세트에만 관련된다.
첫번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 오직 움직임 후보들만을 포함하되, 각 움직임 후보는 움직임 정보의 다중 세트들에 연관되고, 움직임 정보의 다중 세트들의 각각은 상기 제1 비디오 블록의 서브블록에 적용된다. 첫번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 동일한 참조 픽처의 복수의 시간적 블록들과 연관되는 복수의 움직임 후보들을 포함한다. 첫번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 각 참조 픽처 리스트의 한 참조 픽처와 연관되는 복수의 시간적 블록들과 연관되는 복수의 움직임 후보들을 포함한다.
첫번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 픽처에 위치한 복수의 시간적 블록들과 연관되는 복수의 움직임 후보들을 포함하되, 여기서 상기 픽처의 참조 색인은 기 정의되거나, 시퀀스 파라미터 세트 (sequence parameter set: SPS), 픽처 파라미터 세트 (a picture parameter set: PPS), 슬라이스 헤더(slice header), 타일 그룹 헤더(tile group header), 타일(tile), 코딩 트리 유닛(coding tree unit), 코딩 유닛(coding unit) 혹은 예측 유닛(prediction unit)에서 시그널링 된다. 첫번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 상기 제1 비디오 블록을 포함하는 대조(collated) 코딩 트리 유닛(coding tree unit: CTU) 행에 위치한 복수의 시간적 블록들과 연관되는 복수의 움직임 후보들을 포함한다.
첫번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 비디오 유닛이 중첩되지 않는(non-overlapped) MxN 영역들로 분할되는 경우MxN크기인 동일한 영역에 위치하는 복수의 시간적 블록들과 연관된 복수의 움직임 후보들을 포함하되, 여기서 M 및 N은 기 정의된 정수들이거나 시퀀스 파라미터 세트 (sequence parameter set: SPS), 픽처 파라미터 세트 (a picture parameter set: PPS), 슬라이스 헤더(slice header), 타일 그룹 헤더(tile group header), 타일(tile), 코딩 트리 유닛(coding tree unit), 코딩 유닛(coding unit) 혹은 예측 유닛(prediction unit)에서 시그널링 되는 정수들이다. 첫번째 예시적인 실시예의 일부 구현에서, 일반화된 양 예측(generalized bi-prediction; GBi)는 상기 제1 움직임 후보 리스트의 움직임 후보에 대해 비활성화되며, GBi 색인은 상기 제1 움직임 후보 리스트의 움직임 후보에 대해 0으로 설정된다.
첫번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 대안적인 시간적 움직임 벡터 예측(alternative temporal motion vector prediction: ATMVP) 후보를 포함한다. 첫번째 예시적인 실시예의 일부 구현에서, 상기 ATMVP 후보는 상기 제1 움직임 후보 리스트의 고정된 위치에 존재한다.
두번째(제2) 예시적인 실시예의 일부 구현은, 비디오의 제1 비디오 블록에 대해, 대안적인 시간적 움직임 벡터 예측(alternative temporal motion vector prediction: ATMVP) 후보를 포함하고, 어파인 후보는 제외하는 제1 움직임 후보 리스트를 구성하는 단계; 및 상기 제1 비디오 블록과 상기 제1 비디오 블록을 포함하는 상기 비디오의 비트스트림 표현 간의 변환을 상기 구성된 제1 움직임 후보 리스트에 따라 수행하는 단계를 포함하는 비디오 프로세싱 방법에 대한 것이다.
첫 번째 및 두 번째 예시적인 실시예의 일부 구현에서, 상기 방법은 상기 제1 비디오 블록에 대한 상기 제1 움직임 후보 리스트 구성 방법과 상이한 제2 움직임 후보 리스트 구성 방법을 사용하여 제2 움직임 후보 리스트를 구성하는 단계를 더 포함한다. 첫 번째 및 두 번째 예시적인 실시예의 일부 구현에서, 상기 비트스트림 표현은 상기 제1 및 제2 움직임 후보 리스트 구성 방법들을 포함하는 다중 움직임 후보 리스트 구성 방법들에 대응하는 다중 움직임 후보 리스트들의 한 세트 내의 리스트를 식별하는 리스트 색인을 포함한다. 첫 번째 및 두 번째 예시적인 실시예의 일부 구현에서, 상기 제1 비디오 블록의 이웃하는 비디오 블록에 대응하는 제1 리스트 색인은 상기 제1 비디오 블록의 제2 리스트 색인을 코딩하는데 사용된다. 첫 번째 및 두 번째 예시적인 실시예의 일부 구현에서, 상기 제1 비디오 블록의 이웃하는 비디오 블록에 대응되는 상기 제1 리스트 색인은 상기 제1 비디오 블록의 상기 제2 리스트 색인의 코딩을 위한 컨텍스트 선택에 사용된다.
첫 번째 및 두 번째 예시적인 실시예의 일부 구현에서, 리스트 색인에 대한 동일 값은 상기 비디오의 상이한 비디오 블록들에 대한 상이한 움직임 후보 리스트 구성 방법에 대응한다. 첫 번째 및 두 번째 예시적인 실시예의 일부 구현에서, 상기 리스트 색인 시그널링은 삼각 예측 모드(triangular prediction mode: TPM), 논-어파인 모드 혹은 논-TPM 모드를 포함하는, 코딩된 모드 정보를 기반으로 한다. 첫 번째 및 두 번째 예시적인 실시예의 일부 구현에서, 상기 다중 움직임 후보 리스트들의 상이한 움직임 후보 리스트들에서 상기 움직임 후보들에 프루닝(pruning) 작업을 수행하는 단계를 더 포함한다. 첫 번째 및 두 번째 예시적인 실시예의 일부 구현에서, 다중 움직임 후보 리스트 구성 방법을 사용하는 다중 움직임 후보 리스트들의 사용 혹은 하나의 움직임 후보 리스트 구성 방법을 사용하는 단 하나의 움직임 후보 리스트의 사용을 모드에 기반하여 결정하는 단계를 더 포함한다.
첫 번째 및 두 번째 예시적인 실시예의 일부 구현에서, 다중 움직임 후보 리스트 구성 방법들을 사용하는 다중 움직임 후보 리스트들의 사용이 비활성화된 경우, 상기 제1 움직임 후보에 대한 리스트 색인이 모드에 대해 비활성화 되고 시그널링되지 않는다. 첫 번째 및 두 번째 예시적인 실시예의 일부 구현에서, 상기 방법(들)은 모드에 기반하여 상기 제1 비디오 블록에 대한 상기 제1 움직임 후보 리스트 구성 방법이 활성화되는 것으로 결정하는 단계를 더 포함한다. 첫 번째 및 두 번째 예시적인 실시예의 일부 구현에서, 상기 모드는 머지 모드이다.
첫 번째 및 두 번째 예시적인 실시예의 일부 구현에서, 상기 모드는 향상된 움직임 벡터 예측(advanced motion vector prediction: AMVP) 모드이다. 첫 번째 및 두 번째 예시적인 실시예의 일부 구현에서, 상기 모드는 삼각 예측 모드(triangular prediction mode: TPM)이다. 첫 번째 및 두 번째 예시적인 실시예의 일부 구현에서, 상기 모드는 블록차원에 관련된다. 첫 번째 및 두 번째 예시적인 실시예의 일부 구현에서, 상기 블록 차원은 높이의 곱을 포함하고, 상기 제1 비디오 블록의 너비는 임계값보다 크거나 같다. 첫 번째 및 두 번째 예시적인 실시예의 일부 구현에서, 상기 임계값은 64이다. 첫 번째 및 두 번째 예시적인 실시예의 일부 구현에서, 상기 제1 비디오 블록의 높이가 제1 임계값보다 크거나 같고, 상기 제1 비디오 블록의 너비가 제2 임계값보다 크거나 같다. 첫 번째 및 두 번째 예시적인 실시예의 일부 구현에서, 상기 제1 임계값은 16이고, 상기 제2 임계값도 16이다.
첫 번째 및 두 번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 상기 모드로 코딩된 비디오 블록들에 대한 단일 움직임 후보 리스트를 포함한다. 첫 번째 및 두 번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 상기 모드로 코딩되지 않은 비디오 블록들에 대한 단일 움직임 후보 리스트를 포함한다. 첫 번째 및 두 번째 예시적인 실시예의 일부 구현에서, 상기 변환을 수행하는 단계는 상기 비트스트림 표현으로부터 상기 제1 비디오 블록의 픽셀 값들을 생성하는 단계를 포함한다. 첫 번째 및 두 번째 예시적인 실시예의 일부 구현에서, 상기 변환을 수행하는 단계는 상기 제1 비디오 블록의 픽셀 값들로부터 상기 비트스트림 표현을 생성하는 단계를 포함한다.
세 번째 예시적인 실시예는 공간적 블록들로부터만 유도된 움직임 후보들을 제외하는 제1 움직임 후보 리스트 구성 방법을 이용하여 비디오의 제1 비디오 블록에 대한 제1 움직임 후보 리스트를 구성하는 단계 및 상기 제1 비디오 블록과 상기 제1 비디오 블록을 포함하는 상기 비디오의 비트스트림 표현 간의 변환을 상기 구성된 제1 움직임 후보 리스트에 따라 수행하는 단계를 포함하는 비디오 프로세싱 방법에 대한 것이다.
세 번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 오직 공간적 블록들로부터의 움직임 후보만을 포함한다. 세 번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 히스토리 기반 움직임 벡터 예측(history-based motion vector prediction: HMVP) 후보를 포함한다. 세 번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 공간적 움직임 후보 혹은 HMVP 후보로부터 유도된 가상 후보(virtual candidate)를 포함한다. 세 번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 시간적 블록들 및 공간적 블록들 둘 다를 기반으로 하는 움직임 후보를 포함한다.
세 번째 예시적인 실시예의 일부 구현에서, 상기 움직임 후보는 서브 블록 기반 시공간적 움직임 벡터 예측(sub-block based spatial temporal motion vector prediction: STMVP) 혹은 논-서브 블록 기반 STMVP에 사용된다. 세 번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트의 리스트 크기는 상기 제1 움직임 후보 리스트에서 허용된 움직임 후보들의 기 정의된 최대 수이다. 세 번째 예시적인 실시예의 일부 구현에서, 상기 리스트 크기는 5 혹은 6이다. 세 번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트 구성 방법을 사용하는 상기 제1 움직임 후보 리스트의 제1 리스트 크기 혹은 제2 움직임 후보 리스트 구성 방법을 사용하는 적어도 하나 이상의 움직임 후보 리스트의 제2 리스트 크기는 개별적으로(별도로) 시그널링된다.
세 번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트 구성 방법을 사용하는 상기 제1 움직임 후보 리스트의 제1 리스트 크기 혹은 제2 움직임 후보 리스트 구성 방법을 사용하는 적어도 하나 이상의 움직임 후보 리스트의 제2 리스트 크기는 한 회 시그널링되고, 상기 제1움직임 후보 리스트와 상기 적어도 하나 이상의 움직임 후보 리스트를 포함하는 다중 유형의 움직임 후보 리스트들에 적용된다. 세 번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트 구성 방법을 사용하는 상기 제1 움직임 후보 리스트의 제1 리스트 크기 혹은 제2 움직임 후보 리스트 구성 방법을 사용하는 적어도 하나 이상의 움직임 후보 리스트의 제2 리스트 크기는 시퀀스 파라미터 세트 (sequence parameter set: SPS), 픽처 파라미터 세트 (a picture parameter set: PPS), 슬라이스 헤더(slice header), 타일 그룹 헤더(tile group header), 타일(tile), 코딩 트리 유닛(coding tree unit), 코딩 유닛(coding unit) 혹은 예측 유닛(prediction unit)을 사용하여 시그널링된다.
세 번째 예시적인 실시예의 일부 구현에서, 상기 적어도 하나 이상의 움직임 후보 리스트는 시간적 후보 리스트 혹은 공간적 후보 리스트 혹은 히스토리 기반 움직임 벡터 예측(history-based motion vector prediction: HMVP) 후보 리스트이다. 세 번째 예시적인 실시예의 일부 구현에서, 상기 방법은 상기 제1 비디오 블록에 대한 상기 제1 움직임 후보 리스트 구성 방법과 상이한 제2 움직임 후보 리스트 구성 방법을 사용하여 제2 움직임 후보 리스트를 구성하는 단계를 더 포함한다.
세 번째 예시적인 실시예의 일부 구현에서, 상기 제2 움직임 후보 리스트는 공간적으로 인접한 블록으로부터만 유도된 움직임 후보들을 제외한 시간적 후보 리스트이거나,공간적 혹은 시간적으로 인접한 블록으로부터만 유도된 움직임 후보들을 제외한 히스토리 기반 움직임 벡터 예측(HMVP) 후보 리스트이다. 세 번째 예시적인 실시예의 일부 구현에서,상기 비트스트림 표현은 상기 제1 및 제2 움직임 후보 리스트 구성 방법들을 포함하는 다중 움직임 후보 리스트 구성 방법들에 대응되는 다중 움직임 후보 리스트들의 한 세트 내의 리스트를 식별하는 리스트 색인을 포함한다.
세 번째 예시적인 실시예의 일부 구현에서,상기 방법은, 모드에 기반하여 다중 움직임 후보 리스트 구성 방법들을 사용하는 다중 움직임 후보 리스트들의 사용 혹은 하나의 움직임 후보 리스트 구성 방법을 사용하는 단 하나의 움직임 후보 리스트의 사용을 결정하는 단계를 더 포함한다. 세 번째 예시적인 실시예의 일부 구현에서, 상기 다중 움직임 후보 리스트 구성 방법들을 사용하는 상기 다중 움직임 후보 리스트들의 사용이 비활성화되면, 상기 제1 움직임 후보 리스트에 대한 리스트 색인은 모드에 대해 비활성화되고, 시그널링되지 않는다.
세 번째 예시적인 실시예의 일부 구현에서, 상기 방법은 모드에 기반하여 상기 제1 비디오 블록에 대한 상기 제1 움직임 후보 리스트 구성 방법을 활성화하도록 결정하는 단계를 더 포함한다. 세 번째 예시적인 실시예의 일부 구현에서, 상기 모드는 머지 모드이다. 세 번째 예시적인 실시예의 일부 구현에서, 상기 모드는 향상된 움직임 벡터 예측(advanced motion vector prediction: AMVP)모드이다. 세 번째 예시적인 실시예의 일부 구현에서, 상기 모드는 삼각 예측 모드(triangular prediction mode: TPM)이다. 세 번째 예시적인 실시예의 일부 구현에서, 상기 모드는 블록 차원에 관련된다.
세 번째 예시적인 실시예의 일부 구현에서, 상기 블록 차원은 높이의 곱을 포함하고, 상기 제1 비디오 블록의 너비는 임계값보다 크거나 같다. 세 번째 예시적인 실시예의 일부 구현에서, 상기 임계값은 64이다. 세 번째 예시적인 실시예의 일부 구현에서, 상기 제1 비디오 블록의 높이는 제1 임계값보다 크거나 같고, 상기 제1 비디오 블록의 너비는 제2 임계값보다 크거나 같다. 세 번째 예시적인 실시예의 일부 구현에서, 상기 제1 임계값은 16이고, 상기 제2 임계값은 16이다. 세 번째 예시적인 실시예의 일부 구현에서,상기 제1 움직임 후보 리스트는 상기 모드로 코딩된 비디오 블록들에 대한 단일 움직임 후보 리스트를 포함한다.
세 번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 상기 모드로 코딩되지 않은 비디오 블록들에 대한 단일 움직임 후보 리스트를 포함한다. 세 번째 예시적인 실시예의 일부 구현에서,상기 변환을 수행하는 단계는 상기 비트스트림 표현으로부터 상기 제1 비디오 블록의 픽셀 값들을 생성하는 단계를 포함한다. 세 번째 예시적인 실시예의 일부 구현에서, 상기 변환을 수행하는 단계는 상기 제1 비디오 블록의 픽셀 값들로부터 상기 비트스트림 표현을 생성하는 단계를 포함한다.
네 번째(제4) 예시적인 실시예는 비디오의 제1 비디오 블록에 대해 공간적 블록들로부터만 유도된 움직임 후보들을 제외하는 제1 움직임 후보 리스트 구성 방법을 사용하여 제1 움직임 후보 리스트를 구성하는 단계 및 상기 제1 비디오 블록과 상기 제1 비디오 블록을 포함하는 상기 비디오의 비트스트림 표현 간의 변환을 상기 구성된 제1 움직임 후보 리스트에 따라 수행하는 단계를 포함하는 비디오 프로세싱 방법에 대한 것이다.
네 번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 화면 내 블록 복사(intra block copy: IBC) 리스트이다. 네 번째 예시적인 실시예의 일부 구현에서, 동일한 참조 픽처는 현재 픽처 혹은 현재 타일 혹은 현재 슬라이스이며, 상기 제1 비디오 블록은 상기 현재 픽처, 상기 현재 타일, 상기 현재 슬라이스에 속한다. 네 번째 예시적인 실시예의 일부 구현에서, 상기 움직임 후보들 각각은 단일 예측 후보이다. 네 번째 예시적인 실시예의 일부 구현에서, 상기 움직임 후보들은 단일 예측 후보 및 양 예측 후보를 포함하되, 상기 단일 예측 후보 및 상기 양 예측 후보는 두 참조 픽처 리스트 모두에 대해 동일한 참조 픽처를 사용한다.
네 번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 공간적 블록들로부터의 움직임 정보를 갖는 움직임 후보를 포함한다. 네 번째(제4) 예시적인 실시예의 일부 구현에서, 상기 공간적 블록들은 상기 제1 비디오 블록에 인접하거나 인접하지 않다(non-adjacent). 네 번째 예시적인 실시예의 일부 구현에서, 상기 움직임 후보들은 히스토리 기반 움직임 벡터 예측(history-based motion vector prediction: HMVP) 후보를 포함한다. 네 번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 기 정의되거나 계산된 움직임 벡터들을 갖는 적어도 하나의 기본(default) 움직임 후보를 포함한다. 네 번째 예시적인 실시예의 일부 구현에서, 상기 기 정의되거나 계산된 움직임 벡터들은 (1) 상기 제1 비디오 블록의 위치 (2) 화면 내 블록 복사(Intra block copy: IBC)의 허용된 탐색 범위, 및 (3) 움직임 보상된 블록에서 최대로 허용된 유닛 크기 중 하나 이상에 기반한다.
네 번째 예시적인 실시예의 일부 구현에서, 상기 움직임 보상된 블록에서 상기 최대로 허용된 유닛 크기는 64x64 픽셀이다. 네 번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트의 리스트 크기는 상기 제1 움직임 후보 리스트에서 허용된 움직임 후보들의 기 정의된 최대 수이다. 네 번째 예시적인 실시예의 일부 구현에서, 상기 리스트의 크기는 5 혹은 6이다. 네 번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트 구성 방법을 사용하는 상기 제1 움직임 후보 리스트의 제1 리스트 크기 혹은 제2 움직임 후보 리스트 구성 방법을 사용하는 적어도 하나 이상의 움직임 후보 리스트의 제2 리스트 크기는 개별적으로(별도로) 시그널링된다.
네 번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트 구성 방법을 사용하는 상기 제1 움직임 후보 리스트의 제1 리스트 크기 혹은 제2 움직임 후보 리스트 구성 방법을 사용하는 적어도 하나 이상의 움직임 후보 리스트의 제2 리스트 크기는 한 회 시그널링되고, 상기 제1움직임 후보 리스트와 상기 적어도 하나 이상의 움직임 후보 리스트를 포함하는 다중 유형의 움직임 후보 리스트들에 적용된다. 네 번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트 구성 방법을 사용하는 상기 제1 움직임 후보 리스트의 제1 리스트 크기 혹은 제2 움직임 후보 리스트 구성 방법을 사용하는 적어도 하나 이상의 움직임 후보 리스트의 제2 리스트 크기는 시퀀스 파라미터 세트 (sequence parameter set: SPS), 픽처 파라미터 세트 (a picture parameter set: PPS), 슬라이스 헤더(slice header), 타일 그룹 헤더(tile group header), 타일(tile), 코딩 트리 유닛(coding tree unit), 코딩 유닛(coding unit) 혹은 예측 유닛(prediction unit)을 사용하여 시그널링된다.
네 번째 예시적인 실시예의 일부 구현에서, 상기 적어도 하나 이상의 움직임 후보 리스트는 공간적 인접 블록으로부터만 유도된 움직임 후보들이 제외된 시간적 후보 리스트 혹은 시간적 인접 블록으로부터만 유도된 움직임 후보들이 제외된 공간적 후보 리스트 혹은 시간적 혹은 공간적 인접 블록으로부터만 유도된 움직임 후보가 제외되고, 히스토리 기반 움직임 벡터 예측 (history-based motion vector prediction: HMVP) 후보를 포함하는 HMVP 후보 리스트이다. 네 번째 예시적인 실시예의 일부 구현에서, 상기 방법은 상기 제1 비디오 블록에 대한 상기 제1 움직임 후보 리스트 구성 방법과 상이한 제2 움직임 후보 리스트 구성 방법을 사용하여 제2 움직임 후보 리스트를 구성하는 단계를 더 포함한다. 네 번째 예시적인 실시예의 일부 구현에서, 상기 제2 움직임 후보 리스트는 시간적으로 이웃한 블록으로부터만 유도된 움직임 후보들을 제외한 시간적 후보 리스트이거나, 공간적 혹은 시간적으로 이웃한 블록으로부터만 유도된 움직임 후보들을 제외한 HMVP 후보 리스트이다.
네 번째 예시적인 실시예의 일부 구현에서, 상기 비트스트림 표현은 상기 제1 및 제2 움직임 후보 리스트 구성 방법들을 포함하는 다중 움직임 후보 리스트 구성 방법들에 대응하는 다중 움직임 후보 리스트들의 한 세트 내의 리스트를 식별하는 리스트 색인을 포함한다. 네 번째 예시적인 실시예의 일부 구현에서, 상기 방법은 모드에 기반하여 다중 움직임 후보 리스트 구성 방법들을 사용하는 다중 움직임 후보 리스트들의 사용 혹은 한 개의 움직임 후보 리스트 구성 방법을 사용하는 단 하나의 움직임 후보 리스트의 사용을 결정하는 단계를 더 포함한다.
네 번째 예시적인 실시예의 일부 구현에서, 상기 다중 움직임 후보 리스트 구성 방법들을 사용하는 상기 다중 움직임 후보 리스트들의 사용이 비활성화되면, 상기 제1 움직임 후보 리스트에 대한 리스트 색인은 모드에 대해 비활성화되며 시그널링되지 않는다. 네 번째 예시적인 실시예의 일부 구현에서, 상기 방법은 모드에 기반하여 상기 제1 비디오 블록에 대한 상기 제1 움직임 후보 리스트 구성 방법이 활성화되도록 결정하는 단계를 더 포함한다. 네 번째 예시적인 실시예의 일부 구현에서, 상기 모드는 머지 모드이다. 네 번째 예시적인 실시예의 일부 구현에서, 상기 모드는 향상된 움직임 벡터 예측(advanced motion vector prediction: AMVP) 모드이다. 네 번째 예시적인 실시예의 일부 구현에서, 상기 모드는 삼각 예측 모드(triangular prediction mode: TPM) 이다.
네 번째 예시적인 실시예의 일부 구현에서, 상기 모드는 블록차원에 관련된다. 네 번째 예시적인 실시예의 일부 구현에서, 상기 블록 차원은 높이의 곱을 포함하고, 상기 제1 비디오 블록의 너비는 임계값보다 크거나 같다. 네 번째 예시적인 실시예의 일부 구현에서, 상기 임계값은 64이다. 네 번째 예시적인 실시예의 일부 구현에서, 상기 제1 비디오 블록의 높이가 제1 임계값보다 크거나 같고, 상기 제1 비디오 블록의 너비가 제2 임계값보다 크거나 같다. 네 번째 예시적인 실시예의 일부 구현에서, 상기 제1 임계값은 16이고, 상기 제2 임계값도 16이다.
네 번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 상기 모드로 코딩된 비디오 블록들에 대한 단일 움직임 후보 리스트를 포함한다. 네 번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 상기 모드로 코딩되지 않은 비디오 블록들에 대한 단일 움직임 후보 리스트를 포함한다. 네 번째 예시적인 실시예의 일부 구현에서, 상기 변환을 수행하는 단계는 상기 비트스트림 표현으로부터 상기 제1 비디오 블록의 픽셀 값들을 생성하는 단계를 포함한다. 네 번째 예시적인 실시예의 일부 구현에서, 상기 변환을 수행하는 단계는 상기 제1 비디오 블록의 픽셀 값들로부터 상기 비트스트림 표현을 생성하는 단계를 포함한다.
다섯 번째(제5) 예시적인 실시예의 일부 구현은 비디오의 제1 비디오 블록에 대해 히스토리 기반 움직임 벡터 예측(history-based motion vector prediction: HMVP) 후보들과만 오직 연관된 움직임 후보들을 포함하는 제1 움직임 후보 리스트 구성 방법을 사용하여 제1 움직임 후보 리스트를 구성하는 단계 및 상기 제1 비디오 블록과 상기 제1 비디오 블록을 포함하는 상기 비디오의 비트스트림 표현 간의 변환을 상기 구성된 제1 움직임 후보 리스트에 따라 수행하는 단계를 포함하는 비디오 프로세싱 방법에 대한 것이다.
다섯 번째(제5) 예시적인 실시예의 일부 구현에서 상기 제1 움직임 후보 리스트는 기본(default) 움직임 벡터 후보를 포함한다. 다섯 번째(제5) 예시적인 실시예의 일부 구현에서, 상기 기본 움직임 벡터 후보는 영(zero) 움직임 벡터 후보를 포함한다. 다섯 번째(제5) 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 기존 HMVP 후보들로부터 유도된 후보들을 포함한다. 다섯 번째(제5) 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트의 리스트 크기는 상기 제1 움직임 후보 리스트에서 허용된 움직임 후보들의 기 정의된 최대 수이다. 다섯 번째(제5) 예시적인 실시예의 일부 구현에서, 상기 리스트 크기는 5 혹은 6이다. 다섯 번째(제5) 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트 구성 방법을 사용하는 상기 제1 움직임 후보 리스트의 제1 리스트 크기 혹은 제2 움직임 후보 리스트 구성 방법을 사용하는 적어도 하나 이상의 움직임 후보 리스트의 제2 리스트 크기는 개별적으로(별도로) 시그널링된다.
다섯 번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트 구성 방법을 사용하는 상기 제1 움직임 후보 리스트의 제1 리스트 크기 혹은 제2 움직임 후보 리스트 구성 방법을 사용하는 적어도 하나 이상의 움직임 후보 리스트의 제2 리스트 크기는 한 회 시그널링되고, 상기 제1움직임 후보 리스트와 상기 적어도 하나 이상의 움직임 후보 리스트를 포함하는 다중 유형의 움직임 후보 리스트들에 적용된다. 다섯 번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트 구성 방법을 사용하는 상기 제1 움직임 후보 리스트의 제1 리스트 크기 혹은 제2 움직임 후보 리스트 구성 방법을 사용하는 적어도 하나 이상의 움직임 후보 리스트의 제2 리스트 크기는 시퀀스 파라미터 세트 (sequence parameter set: SPS), 픽처 파라미터 세트 (a picture parameter set: PPS), 슬라이스 헤더(slice header), 타일 그룹 헤더(tile group header), 타일(tile), 코딩 트리 유닛(coding tree unit), 코딩 유닛(coding unit) 혹은 예측 유닛(prediction unit)을 사용하여 시그널링된다.
다섯 번째 예시적인 실시예의 일부 구현에서, 상기 적어도 하나 이상의 움직임 후보 리스트는 공간적 인접 블록으로부터만 유도된 움직임 후보들이 제외된 시간적 후보 리스트 혹은 시간적 인접 블록으로부터만 유도된 움직임 후보들이 제외된 공간적 후보 리스트 혹은 시간적 혹은 공간적 인접 블록으로부터만 유도된 움직임 후보를 제외하고, 히스토리 기반 움직임 벡터 예측 (history-based motion vector prediction: HMVP) 후보를 포함하는 HMVP 후보 리스트이다. 다섯 번째 예시적인 실시예의 일부 구현에서, 상기 방법은 상기 제1 비디오 블록에 대한 상기 제1 움직임 후보 리스트 구성 방법과 상이한 제2 움직임 후보 리스트 구성 방법을 사용하여 제2 움직임 후보 리스트를 구성하는 단계를 더 포함한다.
다섯 번째 예시적인 실시예의 일부 구현에서, 상기 제2 움직임 후보 리스트는 공간적 인접 블록으로부터만 유도된 움직임 후보들이 제외된 시간적 후보 리스트이거나 공간적 혹은 시간적 인접 블록으로부터만 유도된 움직임 후보들이 제외된 HMVP 후보 리스트이다. 다섯 번째 예시적인 실시예의 일부 구현에서, 상기 비트스트림 표현은 상기 제1 및 제2 움직임 후보 리스트 구성 방법들을 포함하는 다중 움직임 후보 리스트 구성 방법들에 대응되는 다중 움직임 후보 리스트들의 한 세트 내의 리스트를 식별하는 리스트 색인을 포함한다. 다섯 번째 예시적인 실시예의 일부 구현에서, 모드에 기반하여, 다중 움직임 후보 리스트 구성 방법들을 사용하는 다중 움직임 후보 리스트들의 사용 혹은 한 움직임 후보 리스트 구성 방법을 사용하는 단 하나의 움직임 후보 리스트의 사용을 결정하는 단계를 더 포함한다. 다섯 번째 예시적인 실시예의 일부 구현에서, 다중 움직임 후보 리스트 구성 방법들을 사용하는 다중 움직임 후보 리스트들의 사용이 비활성화된 경우, 상기 제1 움직임 후보에 대한 리스트 색인이 모드에 대해 비활성화 되고 시그널링되지 않는다.
다섯 번째 예시적인 실시예의 일부 구현에서, 상기 방법은 모드에 기반하여 상기 제1 비디오 블록에 대한 상기 제1 움직임 후보 리스트 구성 방법이 활성화되도록 결정하는 단계를 더 포함한다. 다섯 번째 예시적인 실시예의 일부 구현에서, 상기 모드는 머지 모드이다. 다섯 번째 예시적인 실시예의 일부 구현에서, 상기 모드는 향상된 움직임 벡터 예측(advanced motion vector prediction: AMVP) 모드이다. 다섯 번째 예시적인 실시예의 일부 구현에서,다섯 번째 예시적인 실시예의 일부 구현에서, 상기 모드는 삼각 예측 모드(triangular prediction mode: TPM)이다.
다섯 번째 예시적인 실시예의 일부 구현에서, 화면 내 블록 복사(intra block copy: IBC) 모드를 기반으로, 상기 제1 비디오 블록에 대한 움직임 벡터를 생성하되, IBC 모드는 현재 픽처, 혹은 현재 타일, 혹은 상기 제1 비디오 블록을 포함하는 현재 슬라이스를 참조 픽처로 사용한다. 다섯 번째 예시적인 실시예의 일부 구현에서, 상기 모드는 블록차원에 관련된다. 다섯 번째 예시적인 실시예의 일부 구현에서, 상기 블록 차원은 높이의 곱을 포함하고, 상기 제1 비디오 블록의 너비는 임계값보다 크거나 같다. 다섯 번째 예시적인 실시예의 일부 구현에서, 상기 블록 차원은 높이의 곱을 포함하고, 상기 제1 비디오 블록의 너비는 임계값보다 작다. 다섯 번째 예시적인 실시예의 일부 구현에서, 상기 임계값은 16 혹은 64이다.
다섯 번째 예시적인 실시예의 일부 구현에서, 상기 제1 비디오 블록의 높이는 제1 임계값보다 크거나 같고, 상기 제1 비디오 블록의 너비는 제2 임계값보다 크거나 같다. 다섯 번째 예시적인 실시예의 일부 구현에서, 상기 제1 임계값은 16이고, 상기 제2 임계값은 16이다. 다섯 번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 상기 모드로 코딩된 비디오 블록들에 대한 단일 움직임 후보 리스트를 포함한다. 다섯 번째 예시적인 실시예의 일부 구현에서, 상기 제1 움직임 후보 리스트는 상기 모드로 코딩되지 않은 비디오 블록들에 대한 단일 움직임 후보 리스트를 포함한다. 다섯 번째 예시적인 실시예의 일부 구현에서, 상기 변환을 수행하는 단계는 상기 비트스트림 표현으로부터 상기 제1 비디오 블록의 픽셀 값들을 생성하는 단계를 포함한다. 다섯 번째 예시적인 실시예의 일부 구현에서, 상기 변환을 수행하는 단계는 상기 비트스트림 표현을 상기 제1 비디오 블록의 픽셀 값들로부터 생성하는 단계를 포함한다.
다른 대표적인 양상에서, 상기 개시된 방법은 프로세서가 실행 가능한 코드의 형태로 구현되고 컴퓨터 읽기 가능한 프로그램 매체에 저장된다.
또 다른 대표적인 양상에서, 상기에서 설명한 방법을 수행하기 위해 구성되거나 작동가능한 장치가 개시된다. 이 장치에는 이 방법을 구현하도록 프로그래밍된 프로세서가 포함될 수 있다.
또 다른 대표적인 양상에서, 비디오 디코더 장치는 여기서 개시된 방법을 구현할 수 있다.
개시된 기술의 상기 및 다른 양상들 및 특징 등은 도면, 설명 및 청구항들에서 더 자세히 설명된다.
도 1은 머지 후보 리스트를 구성하는 예를 보여준다.
도 2는 공간적 후보들의 위치들의 예를 보여준다.
도 3은 공간적 머지 후보들의 중복성 검사(redundancy check: RD)를 받는 후보 쌍들의 예를 보여준다.
도 4a 및 4b는 현재 블록의 크기 및 형태에 기반하여 제2 예측 유닛(PU의 위치의 예들을 보여준다.
도 5는 시간적 머지 후보들에 대한 움직임 벡터 스케일링의 예를 보여준다.
도 6은 시간적 머지 후보들에 대한 후보 위치들의 예를 보여준다.
도 7은 결합된 양 예측 머지 후보를 생성하는 예를 보여준다.
도 8은 움직임 벡터 예측 후보를 구성하는 예를 보여준다.
도 9는 공간적 움직임 벡터 후보들에 대한 움직임 벡터 스케일링의 예를 보여준다.
도 10은 코딩 유닛(coding unit: CU)에 대한 대안적인 시간적 움직임 벡터 예측(alternative temporal motion vector prediction: ATMVP) 알고리즘을 사용하는 움직임 예측의 예를 보여준다.
도 11은 시공간적 움직임 벡터 예측(spatial-temporal motion vector prediction: STMVP) 알고리즘에 의해 사용되는 서브블록들 및 이웃 블록들을 갖는 코딩 유닛(CU)의 예를 보여준다.
도 12는 상이한 MV 정밀도들로 인코딩 흐름도의 예를 도시한다.
도 13a 및 13b는 코딩 유닛을 두 개의 삼각 예측 유닛(prediction unit: PU)들로 분할하는 예들을 보여준다.
도 14는 인접 블록들의 위치들의 예를 보여준다.
도 15는 삼각 예측 모드(triangular prediction mode: TPM) 플래그 코딩에서 컨텍스트 선택에 사용되는 인접 블록의 예를 보여준다.
도 16a 및 16b는 각각 단순화된 4-파라미터 어파인 (affine) 모델 및 단순화된 6-파라미터 어파인 모델의 예들을 보여준다.
도 17은 서브 블록 당 어파인 움직임 벡터 필드(motion vector field: MVF)의 예를 보여준다.
도 18a및 18b는 각각 4-파라미터 및 6-파라미터 어파인 모델들의 예들을 보여준다.
도 19는 상속된 어파인 후보들의 AF_INTER에 대한 움직임 벡터 예측의 예를 보여준다.
도 20은 구성된 어파인 후보들의 AF_INTER에 대한 움직임 벡터 예측의 예를 보여준다.
도 21a 및 21 b는 AF_MERGE 어파인 움직임 모드에 대한 후보들의 예를 보여준다.
도 22는 어파인 머지 모드에 대한 후보 위치들의 예를 보여준다.
도 23은 화면 내 픽처 블록 복사(intra-picture block copy)의 예를 보여준다.
도 24는 히스토리 기반 움직임 벡터 예측(history-based motion vector prediction: HMVP) 후보들에 대한 코딩 흐름의 예를 보여준다.
도 25는 수정된 머지 리스트 구성 프로세스(modified merge list construction process)의 예를 보여준다.
도 26a 내지 26e는 비디오 코딩에 대한 예시적인 방법들의 흐름도들을 보여준다.
도 27은 본 개시에서 설명된 시각적 매체 디코딩 혹은 시각적 매체 인코딩 기술을 구현하기 위한 하드웨어 플랫폼의 예시적인 블록도이다.
도 28은 개시된 기술들이 구현될 수 있는 비디오 프로세싱 시스템의 예시적인 블록도이다.
더 높은 해상도를 가진 비디오에 대한 수요가 계속 증가함에 따라, 비디오 코딩 방법 및 기법들은 현대 기술의 어디에서나 볼 수 있게 되었다. 비디오 코덱은 디지털 비디오를 압축하거나 푸는 소트프웨어 또는 전자 회로를 주로 포함하며 더 높은 코딩 효율을 제공하기 위해 지속적으로 개선되고 있다. 비디오 코덱은 압축되지 않은 비디오를 압축된 포멧으로 또는 그 반대로 변환시킨다. 비디오의 질, 비디오를 표현하는 데에 사용되는 데이터의 양(비트 레이트에 의해 결정), 인코딩 및 디코딩 알고리즘들의 복잡성, 데이터 손실 및 에러에 대한 민감도, 편집 용이성, 랜덤 액세스, 그리고 단대단 지연 사이에는 복잡한 관계가 있다. 압축된 포맷은 대개의 경우 (H265 또는 MPEG-H Part 2로도 알려진) HEVC (High Efficiency Video Coding) 표준, 최종 확정될 VVC (Versatile Video Coding) 또는 기타 현재 및/또는 미래의 비디오 코딩 표준들을 따른다.
개시된 기술의 실시예들은 압축 성능의 향상을 위해 기존 비디오 코딩 표준들 (예를 들어, HEVC, H 256) 및 미래의 표준들에 적용될 수 있다. 본 문서에서 섹션 제목들은 설명의 가독성을 높이기 위해 사용된 것이며 논의 또는 실시예들 (및/또는 구현들)의 해당 섹션들로 결코 제한하지 않는다.
1 HEVC/H.265에서 화면간 예측의 예들
비디오 코딩 표준들은 수 년간 상당히 발전하여 이제는 부분적으로 높은 코딩 효율을 제공하고 더 높은 해상도를 지원하고 있다. HEVC 및 H 265와 같은 최근 표준들은 시간적 예측과 변환 코딩이 활용되는 하이브리드 비디오 코딩 구조를 기반으로 한다.
1.1 예측 모드들의 예들
화면 내 예측된 각각의 예측 유닛(Prediction unit: PU)은 하나 또는 두 개의 참조 픽처 리스트에 대한 움직임 파라미터들을 가진다. 몇몇 실시예들에서, 움직임 파라미터들은 움직임 벡터 및 참조 픽처 색인을 포함한다. 다른 실시예들에서, 상기 두 참조 픽처 리스트들 중 하나의 사용은 inter_pred_idc를 사용하여 시그널링될 수 있다. 또 다른 실시예들에서, 움직임 벡터들은 예측자들에 상대적인 델타들(deltas)로 명시적으로 코딩될 수 있다.
코딩 유닛(CU)이 스킵 모드로 코딩될 경우, 하나의 PU가 상기 CU와 연관되며, 의미있는 잔여 계수들, 코딩된 움직임 벡터 델타 또는 참조 픽처 색인이 존재하지 않는다. 머지 모드가 지정되면, 현재 PU에 대한 움직임 파라미터들이 공간적 및 시간적 후보들을 포함하여 인접 PU들로부터 획득된다. 상기 머지 모드는 스킵 모드에 대해서 뿐만 아니라, 어떤 화면 간 예측된 PU에도 적용될 수 있다. 머지 모드의 대안은 움직임 파라미터들의 명시적인 전송으로, 이 경우 움직임 벡터, 각 참조 픽처 리스트에 대한 해당 참조 픽처 색인, 그리고 참조 픽처 리스트 사용이 각각의 PU별로 명시적으로 시그널링된다.
시그널링이 두 참조 픽처 리스트 중 하나를 사용함을 지시할 경우, 상기 PU는 샘플들 중 하나의 블록으로부터 생성된다. 이것을 '단일 예측'(uni-prediction)이라고 한다. 단일 예측은 P 슬라이스들과 B 슬라이스들 모두에서 사용할 수 있다.
시그널링이 두 참조 픽처 리스트 모두를 사용함을 지시할 경우, 상기 PU는 샘플들 중 두 개의 블록으로부터 생성된다. 이를 '양 예측'(bi-prediction)이라고 한다. 양 예측은 B-슬라이스들에서만 사용할 수 있다.
참조 픽처 리스트
HEVC에서, 화면 간 예측이라는 용어는 현재 디코딩된 픽처 외의 참조 픽처들의 데이터 요소들(예를 들어, 샘플 값들 혹은 움직임 벡터들)로부터 유도된 예측을 나타내는 데 사용된다. H.264/AVC에서와 같이, 픽처는 다중 참조 픽처들로부터 예측될 수 있다. 화면 간 예측에 사용되는 참조 픽처들은 하나 이상의 참조 픽처 리스트들로 조직된다. 참조 색인은 리스트의 어떤 참조 픽처들이 예측 신호를 생성하기 위해 사용되어야 할 지를 식별한다.
단일 참조 픽처 리스트인 리스트 0(list0)은 P 슬라이스에서 사용되며, 두 개의 참조 픽처 리스트들인 리스트 0 및 리스트 1(list1)은 B 슬라이스들에서 사용된다. 리스트 0/1에 포함된 참조 픽처들은 캡처(capturing)/표시(display) 순서의 측면에서 과거 및 미래의 픽처들일 수 있다.
1.1.1 머지 모드에 대한 후보들을 구성하는 실시예들
머지 모드를 사용하여 PU가 예측되는 경우, 머지 후보 리스트의 항목을 가리키는 색인은 비트 스트림으로부터 파싱되어 움직임 정보를 검색하는 데 사용된다. 이 리스트의 구성은 단계들의 아래 순서에 따라 요약될 수 있다.
단계 1: 초기 후보들 유도
단계 1.1: 공간적 후보들 유도
단계 1.2: 공간적 후보들에 대한 중복성 검사
단계 1.3: 시간적 후보들 유도
단계 2: 추가 후보들 삽입
단계 2.1: 양-예측(bi-predictive) 후보들 생성
단계 2.2: 영(zero) 움직임 후보들 삽입
도 1은 위에 요약된 단계들의 순서에 기반하여 머지 후보를 구성하는 일 예를 보여준다. 공간적 머지 후보 유도를 위해, 5개의 상이한 위치에 있는 후보들 중에서 최대 4개의 머지 후보들이 선택된다. 시간적 머지 후보 유도를 위해, 두 후보들 중 최대 하나의 머지 후보가 선택된다. 각 PU에 대해 일정한 수의 후보들이 디코더에서 가정되기 때문에, 상기 후보들의 수가 슬라이스 헤더에서 시그널링되는 머지 후보의 최대 수(MaxNumMergeCand)에 미치지 않으면, 추가 후보들이 생성된다. 후보의 수가 일정하기 때문에 최적 머지 후보의 색인은 절단된 단항 이진화(TU)를 사용하여 인코딩 된다. 만약 CU의 크기가 8이면, 현재 CU의 모든 PU들은 2N x 2N 예측 유닛의 머지 후보 리스트와 동일한 단일 머지 후보 리스트를 공유한다.
1.1.2 공간적 머지 후보들 구성
공간적 머지 후보들 유도 시, 최대 4개의 머지 후보들이 도 2에 도시된 위치들에 있는 후보들 가운데에서 선택된다. 유도 순서는 순이다. 위치 의 어느 한 PU가 사용될 수 없는 경우(예를 들어, 다른 슬라이스 또는 타일에 속하기 때문) 또는 화면 내 코딩된 경우에만, 위치 가 고려된다. 위치 의 후보가 추가된 후 나머지 후보들의 추가는 중복 검사를 거친다. 이를 통해, 동일한 움직임 정보를 가진 후보가 리스트에서 제외되어 코딩 효율이 향상된다.
계산 복잡성을 줄이기 위해, 상기 언급된 중복 검사에서 가능한 모든 후보 쌍들이 고려되는 것은 아니다. 그 대신, 도 3에서 화살표로 연결된 쌍들만이 고려되고, 중복 검사에 사용되는 해당 후보가 동일한 움직임 정보를 가지고 있지 않은 경우에만 후보가 리스트에 추가된다. 중복되는 운동 정보의 다른 소스는 2Nx2N과는 상이한 분할들과 관련된 "제2 PU " 이다. 일 예로, 도 4a 및 도 4b는 각각 Nx2N 및 2NxN의 경우에 대한 제2 PU를 도시한다. 현재 PU가 Nx2N으로 분할되면, A1 위치에서 후보는 리스트 구성에 고려되지 않는다. 일부 실시예들에서, 이 후보를 추가하는 것은 동일한 움직임 정보를 갖는 2개의 예측 유닛들로 귀결될 수 있으며, 이는 코딩 유닛에서 단지 하나의 PU를 갖는 것에 중복된다. 마찬가지로, 현재 PU가 2NxN으로 분할되는 경우, 위치 B1 은 고려되지 않는다.
1.1.3 시간적 머지 후보들 구성
이 단계에서는 오직 하나의 후보만이 상기 리스트에 추가된다. 특히, 이 시간적 머지 후보의 유도 시, 주어진 참조 픽처 리스트 내에서 현재 픽처와 가장 작은 POC(Picture Order Count) 차이를 갖는 픽처에 속하는 동일 위치의(co-located) PU를 기반으로, 스케일링된 움직임 벡터가 유도된다. 상기 동일 위치 PU의 유도에 사용될 상기 참조 픽처 리스트는 슬라이스 헤더에서 명시적으로 시그널링된다.
도 5는 (점선으로 표현된) 시간적 머지 후보에 대한 상기 스케일링된 움직임 벡터를 유도하는 일 예를 도시한다. 상기 움직임 벡터는 POC 거리들인 tb 및 td를 사용하여 상기 동일 위치 PU의 움직임 벡터로부터 스케일링 된다. 여기서, tb는 현재 픽처의 참조 픽처와 현재 픽처 사이의 POC 차이로 정의되고, td는 동일 위치 픽처의 참조 픽처와 동일 위치 픽처 사이의 POC 차이로 정의된다. 시간적 머지 후보의 참조 픽처 색인은 0으로 설정된다. B-슬라이스의 경우, 2개의 움직임 벡터 중 하나는 참조 픽처 리스트 0을 위해 다른 하나는 참조 픽처 리스트 1을 위해 획득되고, 이것들이 결합되어 양 예측(bi-predictive) 머지 후보가 만들어진다.
참조 프레임에 속하는 동일 위치 PU(Y)에서, 시간적 후보에 대한 위치는 도 6에 도시 된 바와 같이 후보 중에서 선택된다. 위치 의 PU가 사용될 수 없거나 화면 내 코딩되었거나 현재 CTU 외부에 있는 경우, 위치 이 사용된다. 그 외의 경우, 위치 이 시간적 머지 후보의 유도에 사용된다.
1.1.4 머지 후보들의 추가 유형 구성
시공간적 머지 후보들 외에도 결합 양-예측(bi-predictive) 머지 후보 및 영 머지 후보라는 두 가지 추가 유형의 머지 후보들이 있다. 결합 양-예측 머지 후보는 시공간적 머지 후보들을 활용하여 생성된다. 결합 양-예측 머지 후보는 오직 B 슬라이스에 대해서만 사용된다. 결합 양-예측 후보들은 최초 후보의 제1 참조 픽처 리스트 움직임 파라미터들과 다른 후보의 제2 참조 픽처 리스트 파라미터들을 결합하여 생성된다. 이 두 튜플들이 상이한 움직임 가설들을 제공하는 경우, 그것들은 새로운 양 예측 후보를 형성하게 된다.
도 7은 mvL0 및 refIdxL0 또는 mvL1 및 refIdxL1을 가지는 원본 리스트(710, 좌측)의 두 후보들이 최종 리스트(720, 우측)에 추가된 결합된 양 예측 후보를 생성하는 데 사용되는 절차의 일 예를 도시한다.
영(zero) 움직임 후보들이 삽입되어 머지 후보 리스트의 나머지 항목들을 채우고 이로써 MaxNumMergeCand 용량에 도달한다. 이 후보들은 0에서 시작하여 새로운 영 움직임 후보가 리스트에 추가될 때마다 증가하는 참조 픽처 색인과 영 공간 변위를 가진다. 이 후보들이 사용하는 참조 프레임의 수는 단일 방향 예측 및 양 방향 예측에 대해 각각 1개 및 2개이다. 일부 실시예에서, 중복 검사는 이러한 후보들에 대해 수행되지 않는다.
1.1.5 병렬 프로세싱을 위한 움직임 추정 영역들의 예들
인코딩 프로세스의 속도를 향상하기 위해, 움직임 추정이 병렬로 수행될 수 있으며, 이에 의해 주어진 영역 내의 모든 예측 단위에 대한 움직임 벡터가 동시에 도출된다. 하나의 예측 유닛의 관련 움직임 추정이 완료될 때까지, 인접 PU로부터 움직임 파라미터들을 도출할 수 없기 때문에 공간적 이웃으로부터 움직임 후보들의 유도는 병렬 처리를 방해할 수 있다. 코딩 효율과 처리 지연 사이의 균형을 맞추기 위해, MER(motion estimation region)이 정의될 수 있다. MER의 크기는 구문 요소 "log2_parallel_merge_level_minus2"를 사용하여 픽처 파라미터 세트(picture parameter set: PPS)에서 시그널링될 수 있다. MER이 정의되면 동일한 영역에 속하는 머지 후보는 사용할 수 없는 것으로 표시되므로, 리스트 구성에서 고려되지 않는다.
1.2 향상된 움직임 벡터 예측(advanced motion vector prediction: AMVP)의 구현 예들
AMVP는 움직임 파라미터들의 명시적 전송에 사용되는, 움직임 벡터와 인접 PU들의 시공간적 상관 관계를 활용한다. 그것은, 먼저 좌측, 상부에 시간적으로 인접한 PU 위치들의 가용성을 확인하고, 중복 후보들을 제거하고, 후보 리스트가 일정한 길이가 되도록 영 벡터를 추가함으로써, 움직임 벡터 후보 리스트를 구성한다. 다음으로, 인코더는 상기 후보 리스트에서 최상의 예측자를 선택하고 선택한 후보를 지시하는 해당 색인을 전송할 수 있다. 머지 색인 시그널링과 마찬가지로, 상기 최상의 움직임 벡터 후보의 색인은 절단된 단항(truncated unary)을 사용하여 인코딩된다. 이 경우 인코딩 될 최대 값은 2이다(도 8 참조). 아래 섹션들에서는 움직임 벡터 예측 후보의 유도 과정에 대해 상세히 설명한다.
1.2.1 AMVP 후보들을 유도하는 예들
도 8은 움직임 벡터 예측 후보에 대한 유도 과정을 요약한 것이며, refidx를 입력으로 하는 각 참조 픽처 리스트에 대해 실시될 수 있다.
움직임 벡터 예측 시, 공간적 움직임 벡터 후보와 시간적 움직임 벡터 후보라는 두 가지 유형의 움직임 벡터 후보들이 고려된다. 공간적 움직임 벡터 후보 유도를 위해, 도 2에 도시된 바와 같이 5개의 상이한 위치에 있는 각 PU의 모션 벡터들에 기반하여 2개의 움직임 벡터 후보가 최종적으로 유도된다.
시간적 움직임 벡터 후보 유도를 위해, 하나의 움직임 벡터 후보가 2개의 상이한 동등 위치들을(co-located positions) 기반으로 도출된 2개의 후보 중에서 선택된다. 시공간 후보들의 제1 리스트가 생성된 후, 중복된 움직임 벡터 후보들이 상기 리스트에서 제거된다. 만약 잠재적 후보의 수가 2보다 크면, 관련 참조 픽쳐 리스트 내의 참조 픽처 색인이 1보다 큰 움직임 벡터 후보는 상기 리스트에서 제거된다. 시공간적 움직임 벡터 후보의 수가 2 미만인 경우, 추가 영 움직임 벡터 후보가 상기 리스트에 추가된다.
1.2.2 공간적 움직임 벡터 후보들의 구성
공간적 움직임 벡터 후보의 유도 시, 최대 2개의 후보가 5개의 잠재적 후보 가운데에서 고려되며, 이 잠재적 후보들은 도 2에 도시된 위치들에 있는 PU들로부터 유도된다. 이 위치들은 움직임 머지의 위치들과 동일하다. 현재 PU의 좌측에 대한 유도 순서는 A0, A1, 스케일링된 A0, 스케일링된 A1 순으로 정의된다. 현재 PU의 위쪽에 대한 유도 순서는 B0, B1, B2, 스케일링된 B0, 스케일링된 B1, 스케일링된 B2 순으로 정의된다. 따라서, 각 측면에 대해 움직임 벡터 후보로 사용할 수 있는 4개의 경우가 있는데, 2개의 경우는 공간적 스케일링을 사용할 필요가 없는 경우이고, 2개의 경우는 공간적 스케일링이 사용되는 경우이다. 상기 4개의 서로 다른 경우들은 아래와 같이 요약된다.
-- 공간적 스케일링 없음
(1) 동일한 참조 픽처 리스트 및 동일한 참조 픽처 색인 (동일한 POC)
(2) 상이한 참조 픽처 리스트 및 동일한 참조 픽처 색인 (동일한 POC)
-- 공간적 스케일링
(3) 동일한 참조 픽처 리스트 및 상이한 참조 픽처 색인 (상이한 POC)
(4) 상이한 참조 픽처 리스트 및 상이한 참조 픽처 색인 (상이한 POC)
공간적 스케일링이 없는 경우를 먼저 확인한 다음 공간적 스케일링을 허용하는 경우들을 확인한다. 공간적 스케일링은 참조 픽처 리스트와 상관없이 주변 PU의 참조 픽처와 현재 PU의 참조 픽쳐 사이의 POC가 다를 때 고려된다. 좌측 후보들의 모든 PU가 사용될 수 없거나 화면 내 코딩 된 경우, 좌측 및 상부 MV 후보들의 병렬 유도를 돕기 위해 위쪽(상단) 움직임 벡터에 대한 스케일링이 허용된다. 그렇지 않은 경우, 공간적 스케일링은 위쪽(상단) 움직임 벡터에 대해 허용되지 않는다.
도 9의 예와 같이, 상기 공간적 스케일링에 대해, 주변 PU의 움직임 벡터는 시간적 스케일링의 경우와 유사한 방식으로 스케일링된다. 한 가지 차이점은 현재 PU의 참조 픽처 리스트와 색인이 입력으로 제공된다는 점이다. 실제 스케일링 프로세스는 시간적 스케일링 프로세스와 동일하다.
1.2.3 시간적 움직임 벡터 후보들의 구성
참조 픽처 색인 유도와는 별개로, (도 6의 예에서와 같이) 시간적 머지 후보들의 유도를 위한 모든 프로세스는 공간적 움직임 벡터 후보들의 유도를 위한 것과 같다. 일부 실시예들에서, 상기 참조 픽처 색인은 디코더로 시그널링된다.
2. 공동 탐구 모델(Joint Exploration Model: JEM)에서 화면 간 예측 방법들의 예
일부 실시예들에서, JEM으로 알려진 참조 소프트웨어를 사용하여 미래의 비디오 코딩 기술들이 탐구된다. JEM에서, 서브 블록 기반 예측은 어파인 예측(affine prediction), 대안적인 시간적 움직임 벡터 예측(alternative temporal motion vector prediction : ATMVP), 시공간적 움직임 벡터 예측(spatial-temporal motion vector prediction: STMVP), 양 방향 광학 흐름(bi-directional optical flow: BIO), 프레임율 상향 변환(Frame-Rate Up Conversion: FRUC), 지역적 적응 움직임 벡터 해상도(Locally Adaptive Motion Vector Resolution: LAMVR), 중첩된 블록 움직임 보상(Overlapped Block Motion Compensation: OBMC), 지역 조명 보상(Local Illumination Compensation: LIC) 및 디코더 측 움직임 벡터 개선(Decoder-side Motion Vector Refinement: DMVR)과 같은 몇몇 코딩 도구들에서 채택된다.
2.1 서브 블록 기반 움직임 벡터 예측의 예들
쿼드트리와 이진트리를 가지는 JEM에서, 각 CU는 각각의 예측 방향에 대해 움직임 파라미터들의 한 세트까지 가질 수 있다. 일부 실시예들에, 큰 CU를 서브 CU들로 분할하고 상기 큰 CU의 상기 모든 서브 CU들에 대해 움직임 정보를 유도함으로써, 두 개의 서브 CU 레벨 움직임 벡터 예측 방법들이 인코더에서 고려된다. 대안적인 시간적 움직임 벡터 예측(ATMVP) 방법은 각 CU가 동일 위치의 참조 픽처에 있는 현재 CU 보다 작은 복수의 블록들로부터 움직임 정보의 복수의 세트들을 불러오도록 허용한다. 시공간적 움직임 벡터 예측(STMVP) 방법에서, 서브 CU들의 움직임 벡터들은 시간적 움직임 벡터 예측자 및 공간적 주변 움직임 벡터를 사용하여 재귀적으로 유도된다. 일부 실시예들에서, 그리고 서브 CU 움직임 예측에 대해 좀 더 정확한 움직임 필드를 유지하기 위해, 참조 프레임들에 대한 움직임 압축이 비활성화 될 수 있다.
2.1.1 대안적인 시간적 움직임 벡터 예측(ATMVP)의 예들
ATMVP 방법에서, TMVP 예측 방법은 현재 CU 보다 작은 블록들로부터 (움직임 벡터들 및 참조 색인들을 포함하는) 움직임 정보의 복수의 세트들을 불러옴으로써 수정된다.
도 10은 CU (1000)에 대한 ATMVP 움직임 예측 과정의 일 예를 도시한다. 상기 ATMVP 방법은 CU(1000)에서 서브 CU들(1001)의 움직임 벡터들을 두 단계로 예측한다. 첫 번째 단계는 시간적 벡터를 가지는 참조 픽처(1050)에서 해당 블록 (1051)을 식별하는 것이다. 상기 참조 픽처(1050)는 또한 움직임 소스 픽처로도 지칭된다. 두 번째 단계는 현재 CU(1000)를 서브 CU들(1001)로 분할하고 각각의 서브 CU에 상응하는 블록으로부터 각 서브 CU의 참조 색인들뿐 아니라 움직임 벡터들을 획득하는 것이다.
첫 번째 단계에서, 참조 픽처(1050) 및 해당 블록은 현재 CU(1000)의 공간적 주변 블록들의 움직임 정보로 판단된다. 주변 블록들에 대한 반복적인 스캐닝 과정을 방지하기 위해, 현재 CU(1000)의 머지 후보 리스트 내의 제1 머지 후보가 사용된다. 제1 가용 움직임 벡터뿐 아니라 그것과 연관된 참조 색인이 상기 움직임 소스 픽처에 대한 시간적 벡터 및 색인으로 설정된다. 이러한 방식으로, 해당 블록은 TMVP에 비해 더 정확하게 식별될 수 있다. 이때, (간혹 동일 위치 블록으로 불리는) 해당 블록은 현재 CU에 대해 항상 우측 아래(하단) 또는 가운데(중앙) 위치에 있다.
두 번째 단계에서, 서브 CU(1051)의 해당 블록은 움직임 소스 픽처(1050)내의 시간적 벡터에 의해 또는 시간적 벡터에 현재 CU의 좌표를 추가함으로써 식별된다. 각각의 서브 CU에 대해, 그것에 상응하는 블록(예, 가운데 샘플을 덮은 최소 움직임 그리드)의 움직임 정보는 상기 서브 CU에 대한 움직임 정보를 유도하는 데에 사용된다. 해당 N x N블록의 움직임 정보가 식별된 후에, HEVC의 TMVP와 동일한 방식으로 현재 서브 CU의 움직임 벡터들 및 참조 색인들로 변환된다. 이때, 움직임 스케일링 및 기타 절차들이 적용된다. 예를 들어, 디코더는 저지연 조건(예를 들어, 현재 픽처의 모든 참조 픽처들의 POC들이 현재 픽처의 POC 보다 작다.)이 충족되는지 여부를 확인하고, 가능한 경우, 움직임 벡터 MVx(예를 들어, 참조 픽처 리스트 X에 해당하는 움직임 벡터)를 사용하여 각 서브 CU에 대해 움직임 벡터 MVy(이때, X는 0 또는 1과 같고, Y는 1-X와 같다)를 예측한다.
2.1.2 시공간적 움직임 벡터 예측(spatial-temporal motion vector prediction: STMVP) 의 예들
STMVP 방법에서, 서브 CU들의 움직임 벡터들은 래스터 스캔 순서를 따라 재귀적으로 유도된다. 도 11은 4개의 서브 블록들 및 주변 블록들을 가지는 하나의 CU의 일 예를 도시한다. 네 개의 4x4 서브 CU들인 A(1101), B(1102), C(1103) 및 D(1104)를 포함하는 8x8 CU(1100)를 살펴보자. 현재 프레임에서 주변 4x4 블록들은 a(1111), b(1112), c(1113) 및 d(1114)로 표시된다.
서브 CU A에 대한 움직임 유도는 그것의 두 공간적 이웃들을 식별하면서 시작된다. 첫 번째 이웃은 서브 CU A(1101i) 위에 있는 NxN 블록(블록 c(1113))이다. 만약 이 블록 c(1113)가 가용하지 않거나 화면 내 코딩된 것이라면, 서브 CU A(1101) 위의 다른 NxN 블록들을(블록 c(1113)에서 출발하여 좌측에서 우측으로) 확인한다. 두 번째 이웃은 서브 CU A(1101) 좌측에 있는 블록(블록 b(1112))이다. 만약 이 블록 b(1112)가 가용하지 않거나 화면 내 코딩된 것이라면, 서브 CU A(1101) 좌측의 다른 NxN 블록들을(블록 b(1112)에서 출발하여 위에서 아래로) 확인한다. 각각의 리스트에 대해 주변 블록들로부터 획득된 움직임 정보는 주어진 리스트에 대한 제1 참조 프레임으로 스케일링된다. 다음으로, 서브 블록 A(1101)의 시간적 움직임 벡터 예측자(TMVP)가 HEVC에 규정된 TMVP 유도와 같은 절차로 유도된다. 블록 D(1104)에서 동일 위치 블록의 움직임 정보가 획득되고 그에 맞게 스케일링된다. 마지막으로, 움직임 정보를 조회하여 스케일링한 후, 각 참조 리스트에 대해 개별적으로 모든 가용한 움직임 벡터들의 평균을 낸다. 평균화된 움직임 벡터는 현재 서브 CU의 움직임 벡터로 할당된다.
2.1.3 서브 CU 움직임 예측 모드 시그널링의 예들
일부 실시예들에서, 서브 CU 모드들은 추가적인 머지 후보들로서 가능하며, 상기 모드들을 시그널링하는데 요구되는 추가적인 구문 요소는 존재하지 않는다. ATMVP 모드 및 STMVP 모드를 나타내기 위해 각 CU의 머지 후보 리스트에 두 개의 추가적인 머지 후보들이 추가된다. 다른 실시예들에, 만약 시퀀스 파라미터 세트가 ATMVP 및 STMVP가 가능함을 지시한다면, 최대 7개의 머지 후보들까지 사용될 수 있다. 추가적인 머지 후보들의 인코딩 로직은 HM에서의 머지 후보들에 대한 것과 같다. 즉, P 또는 B 슬라이스에서의 각 CU에 대해, 두 개의 추가적인 머지 후보들에 대해 두 개의 추가적인 RD 확인이 필요하다. 일부 실시예들에서, 일 예로, JEM에서, 머지 색인의 모든 빈(bins)은 컨텍스트 기반 적응적 이항 산술 코딩(Contex-based Adaptive Binary Coding: CABAC)에 의해 컨텍스트 코딩된다. 다른 실시예들에서, 일 예로, HEVC에서, 오직 첫 번째 빈만이 컨텍스트 코딩되며, 나머지 빈들은 컨텍스트 바이패스 코딩된다.
2.2 VVC에서 화면 간 예측 방법들의 예
MVD 시그널링을 위한 적응적 움직임 벡터 차분(차이) 해상도(adaptive motion vector difference resolution: AMVR), 어파인 예측(affine prediction) 모드, 삼각 예측 모드(triangular prediction mode: TPM), ATMVP, 일반화된 양 예측(generalized bi-prediction: GBI), 양 방향 광학 흐름(bi-directional optical flow: BIO)과 같은 화면 간 예측의 발전을 위한 다양한 새로운 코딩 도구들이 있다.
2.2.1 적응적 움직임 벡터 차분 해상도의 예들
일부 실시예들에서, (PU의 움직임 벡터와 예측된 움직임 벡터 간의) 움직임 벡터 차이들(MVDs)은, use_inter_my_flag가 슬라이스 헤더에서 0과 같을 경우, 1/4 루마 샘플들의 단위로 시그널링된다. JEM에서는 지역적으로 적응적인 움직임 벡터 해상도(locally adaptive motion vector resolution: LAMVR)가 도입된다. JEM에서, MVD는 1/4 루마 샘플들, 정수 루마 샘플들 또는 4 루마 샘플들의 단위로 코딩된다. MVD 해상도는 CU 레벨에서 제어되며, MVD 해상도 플래그들은 적어도 하나의 논-제로 MVD 구성요소를 가지는 각 CU에 대해 조건적으로 시그널링된다.
적어도 하나의 논-제로 MVD 구성요소를 가지는 CU에 대해, 제1 플래그는 1/4 루마 샘플 MV 정밀도들이 상기 CU에서 사용되는지 여부를 지시하기 위해 시그널링된다. (1과 같은) 상기 제1 플래그가 1/4 루마 샘플 MV 정밀도가 사용되지 않음을 지시하는 경우, 정수 루마 샘플 MV 정밀도 또는 4 루마 샘플 MV 정밀도가 사용되는지 여부를 지시하기 위해 다른 플래그가 시그널링된다.
CU의 제1 MVD 해상도 플래그가 0이거나 CU에 대해 코딩되지 않은 경우(즉, 상기 CU의 모든 MVD들이 0), 1/4 루마 샘플 MV 해상도가 상기 CU에 대해 사용된다. CU가 정수 루마 샘플 MV 정밀도 또는 4 루마 샘플 MV 정밀도를 사용하는 경우, 상기 CU에 대한 AMVP 후보 리스트내의 MVP들은 해당 정밀도로 라운딩된다.
인코더에서, CU 레벨 RD 체크를 사용하여 어느 MVD 해상도가 CU를 위해 사용되는지를 판단한다. 즉, CU 레벨 RD 체크는 각 MVD 해상도에 대해 3회 실시된다. 인코더의 속도를 높이기 위해, 아래 인코딩 방식들이 JEM에서 적용된다.
-- 정상 1/4 루마 샘플 MVD 해상도를 가지는 CU의 RD 체크 동안, 현재 CU의 움직임 정보(정수 루마 샘플 정확도)가 저장된다. (라운딩 후) 상기 저장된 움직임 정보는, 정수 루마 샘플 및 4 루마 샘플 MVD 해상도를 가지는 동일한 CU에 대한 RD 체크 동안 추가 소범위 움직임 벡터 개선을 위한 출발점으로 사용되어 시간이 많이 소요되는 움직임 추정 과정이 3회 중복되지 않는다.
-- 4 루마 샘플 MVD 해상도를 가지는 CU의 RD 체크는 조건적으로 수행된다. CU에 대해, 만약 정수 루마 샘플 MVD 해상도의 RD 코스트가 1/4 샘플 MVD 해상도의 RD 코스트보다 훨씬 크다면, 상기 CU에 대한 4루마 샘플 MVD 해상도의 RD 체크는 생략된다.
인코딩 절차는 도 12에 도시된다. 우선, 1/4 픽셀 MV가 테스트되며, RD 코스트가 계산되고 RDCost0로 표시된다. 다음으로, 정수 MV가 테스트되고 RC 코스트가 계산되며 RDCost1으로 표시된다. 만약 RDCost1 < th * RDCost0 라면(이때, th는 양수 값인 임계 값), 4 픽셀 MV가 테스트되며, 그렇지 않을 경우, 4 픽셀 MV는 생략된다. 기본적으로, 정수 또는 4 픽셀 MV를 테스트하는 경우, 움직임 정보 및 RD 코스트 등은 1/4 픽셀 MV에 대해 이미 알려져 있으며, 정수 또는 4 픽셀 MV의 인코딩 절차의 속도를 높이기 위해 재사용 될 수 있다.
2.2.2 삼각 예측 유닛 모드(triangular prediction unit mode)의 예
삼각 예측 유닛 모드의 컨셉은 움직임 보상된 예측을 위한 새로운 삼각 분할을 도입하는 데 있다. 도 13a 및 13b에 도시된 바와 같이, 삼각 예측 유닛 모드는 대각선 방향 혹은 역 대각선 방향으로 CU를 두 개의 삼각 예측 유닛들로 분할한다. CU의 각 삼각 예측 유닛들은 단일 예측 후보 리스트로부터 유도된 자체 단일 예측 움직임 벡터 및 참조 프레임 색인을 사용하여 화면 간 예측된다. 적응적 가중 프로세스는 삼각 예측 유닛들을 예측한 이후에 대각선 엣지에 수행된다. 이후, 변환 및 양자화 프로세스는 전체 CU에 대해 적용된다. 이 모드는 오직 스킵 및 머지 모드들에만 적용된다.
TPM에 대한 단일 예측 후보 리스트
단일 예측 후보 리스트는 다섯 개의 단일 예측 움직임 벡터 후보들로 구성된다. 도 14에 도시된 바와 같이, 다섯 개의 공간적 이웃 블록들 (1 내지 5) 및 두 개의 시간적 동일 위치(co-located) 블록들 (6 내지 7)을 포함하는 일곱 개의 인접 블록들로부터 유도된다. 일곱 개의 인접 블록들의 움직임 벡터들은 수집되어 단일 예측 후보 리스트에 단일 예측 움직임 벡터들, 양 예측 움직임 벡터들의 L0 움직임 벡터, 양 예측 움직임 벡터들의 L1 움직임 벡터, 및 양 예측 움직임 벡터들의 L0, L1 움직임 벡터들의 평균 움직임 벡터 순으로 삽입된다. 후보들의 수가 5보다 적은 경우, 영(zero) 움직임 벡터는 리스트에 추가된다. TPM에 대해 리스트에 추가된 움직임 후보들은 TPM 후보들로 지칭되며, 공간적/시간적 블록들로부터 유도된 움직임 정보는 정규(regular) 움직임 후보들로 지칭된다.
보다 상세하게는, 하기의 단계들이 관련된다.
1) 프루닝 동작 없이, (도 14에서 블록 1-7에 대응됨)로부터 정규(regular) 움직임 후보들을 획득
2) 변수 numCurrMergeCand를 0으로 설정
3) 에서 유도된 각 정규 움직임 후보에 대해, numCurrMergeCand은 5보다 적으며, 정규 움직임 후보가 단일 예측(리스트 0 혹은 리스트 1 중 하나)인 경우, TPM 후보로서 머지 리스트에 직접 추가되며, numCurrMergeCand가 1만큼 증가된다. 이러한 TPM 후보를 '원래 단일 예측 후보(Originally uni-predicted candidate)'라 한다.
풀 프루닝이 적용된다.
4) 에서 유도된 각 움직임 후보에 대해, numCurrMergeCand은 5보다 적으며, 정규 움직임 후보가 양 예측인 경우, 리스트 0에서의 움직임 정보는 새로운 TPM 후보로서 TPM 머지 리스트에 추가되고(즉, 리스트 0의 단일 예측으로 수정됨) numCurrMergeCand는 1만큼 증가된다. 이러한 TPM 후보를 '절단된 리스트0-예측된 후보(Truncated List0-predicted candidate)'라 한다.
풀 프루닝이 적용된다.
5) 에서 유도된 각 움직임 후보에 대해, numCurrMergeCand은 5보다 적으며, 정규 움직임 후보는 양 예측인 경우, 리스트 1에서의 움직임 정보는 TPM 머지 리스트에 추가되고(즉, 리스트 1의 단일 예측으로 수정됨) numCurrMergeCand는 1만큼 증가된다. 이러한 TPM 후보를 '절단된 리스트1-예측된 후보(Truncated List1-predicted candidate)'라 한다.
풀 프루닝이 적용된다.
6) 에서 유도된 각 움직임 후보에 대해, numCurrMergeCand은 5보다 작으며, 정규 움직임 후보는 양 예측인 경우,
- 리스트 0 참조 픽처의 슬라이스 QP 가 리스트 1 참조 픽처의 슬라이스 QP보다 작은 경우, 리스트 1의 움직임 정보는 리스트 0 참조 픽처에 대해 먼저 스케일링되고, 두 MV들(원래 리스트 0의 MV와 리스트 1의 스케일링된 MV)의 평균이 TPM 머지 리스트에 추가된다. 이러한 TPM 후보는 리스트 0 움직임 후보로부터의 평균화된 단일 예측으로 지칭되며, numCurrMergeCand는 1만큼 증가한다.
- 반면, 리스트 0의 움직임 정보가 먼저 리스트 1에 대해 스케일링되어, 두 MV들(원래 리스트 1의 MV와 리스트 0의 스케일링된 MV)의 평균이 TPM 머지 리스트에 추가된다. 이러한 TPM 후보는 리스트 1 움직임 후보로부터의 평균화된 단일 예측으로 지칭되며, numCurrMergeCand는 1만큼 증가한다.
풀 프루닝이 적용된다.
7) numCurrMergeCand가 5보다 적으면, 영(zero) 움직임 벡터 후보들이 추가된다.
리스트에 후보를 삽입할 때, 이전에 추가된 후보들 중 하나와 동일한지 여부를 판단하기 위해 이전에 추가된 모든 후보들과 비교되어야 하는 경우, 이러한 프로세스를 풀 프루닝이라고 부른다.
적응적 가중 프로세스
각 삼각 예측 유닛의 예측 이후, 적응적 가중 프로세스는 전체 CU에 대한 최종 예측을 유도하기 위해 두 개의 삼각 예측 유닛들 간의 대각선 엣지(diagonal edge)에 적용된다. 두 개의 가중 인자 그룹들은 하기와 같이 나열된다.
- 제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 가중 인자 그룹은 두 개의 삼각 예측 유닛들의 참조 픽처가 서로 상이하거나 그들의 움직임 벡터 차가 16픽셀보다 큰 경우 사용된다.
삼각 예측 모드(triangular prediction mode: TPM) 시그널링
TPM이 사용되는지 여부를 지시하는 1비트 플래그가 먼저 시그널링될 수 있다. 이후, 두 개의 분할 패턴들(도 13a 및 13b에 도시된 바와 같이)의 지시 및 두 분할들 각각에 대한 선택된 머지 색인들이 더 시그널링된다.
TPM 플래그 시그널링
한 루마 블록의 너비 및 높이가 W 및 H로 각각 지시된다. W*H < 64이면, 삼각 예측 모드가 비활성화 된다.
한 블록이 어파인 모드로 코딩된 경우, 삼각 예측 모드도 비활성화된다.
한 블록이 머지 모드로 코딩된 경우, 1 비트 플래그는 삼각 예측 모드가 그 블록에 대해 활성화되었는지, 비활성화 되었는지 여부를 지시하기 위해 시그널링 될 수 있다.
플래그는 도 15의 관점에서 3개의 컨텍스트로 코딩되며, 하기 식을 기반으로 한다.
Ctx index = ( ( 좌측 블록L 사용 가능 && L이 TPM으로 코딩? ) 1: 0 )
+ ( ( 상단 블록 A 사용 가능 && A 이 TPM으로 코딩? ) 1: 0 );
두 개의 분할 패턴들과 선택된 머지 색인들의 지시 시그널링
분할 패턴(도 13a 및 13b에 도시됨), 두 분할들의 머지 색인들은 함께 코딩된다. 기존 구현에는, 두 개의 분할들은 동일한 참조 색인을 사용하지 못한다는 제한이 있다. 기존 구현에서, 두 개의 분할들이 동일한 참조 색인을 사용하지 못한다는 제한이 있었다. 그러므로, 2 (분할 패턴들) * N (머지 후보들의 최대 수) * (N-1) 가능성(possibilities)이 있으며, 여기서 N은 5로 설정된다. 단일의 지시가 코딩되고, 분할 패턴들과 두 개의 머지 색인들 및 코딩된 지시 사이의 매핑은 하기에서 정의된 배열(array)로부터 유도된다.
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 }};
분할 패턴들(splitting patterns)(45 도 or 135 도) = g_TriangleCombination[signaled indication][0];
후보 A의 머지 색인(Merge index of candidate A) = g_TriangleCombination[signaled indication][1];
후보 B의 머지 색인(Merge index of candidate B) = g_TriangleCombination[signaled indication][2];
두 개의 움직임 후보들 A 및 B가 유도되면, 두 개의 분할들(PU1 및 PU2)의 움직임 정보는 A 혹은 B 중 하나에서 설정될 수 있다. PU1이 머지 후보 A 혹은 B의 움직임 정보를 사용하는지 여부는 두 개의 움직임 후보들의 예측 방향에 기초한다. 표 1은 두 개의 분할들이 있는 두 개의 유도된 움직임 후보들 A 및 B 간의 관계를 보여준다.
표 1: 유도된 두 개의 머지 후보들 (A, B)에서 분할들의 움직임 정보 유도
지시의 엔트로피 코딩 (merge_triangle_idx로 표현)
merge_triangle_idx는 포괄적으로 범위 [0, 39] 내이며, K차 지수 골롬(Exponential Golomb: EG) 코드는 merge_triangle_idx의 이진화에 사용되며 K는 1로 설정된다.
K차 EG
더 적은 비트로 더 큰 수를 인코딩 하기 위해 (더 많은 비트를 사용하여 더 작은 수를 인코딩 하는 대가로), 음이 아닌 정수 파라미터 k를 사용하여 일반화될 수 있다. 음이 아닌 정수 x를 k차 지수 골롬 코드로 인코딩 하는 방법이 설명된다.
(1) 상기에서 설명된 0차 지수 골롬 코드를 이용하여 를 인코딩하면, 이후
(2) 를 이진수로 인코딩한다.
표 2: 지수-골롬-k 코딩 예들
2.2.3 어파인 움직임 보상 예측의 예들
HEVC에서, 오직 병진 움직임 모델만이 움직임 보상 예측(Motion Compensation Prediction: MCP)에 대해 적용된다. 하지만, 카메라 및 대상들은 줌 인/아웃, 회전, 원근적 움직임 및/또는 기타 불규칙 움직임들과 같은 여러 종류의 움직임을 가진다. VVC에서는, 단순화된 어파인 변환 움직임 보상 예측은 4-파라미터 어파인 모델 및 6-파라미터 어파인 모델로 적용된다. 도 16a 및 16b에 도시된 바와 같이, 블록의 어파인 움직임 필드는 각각 두 개의 (변수들 a, b, e, f를 사용하는 4-파라미터 어파인 모델) 혹은 세 개의(변수들 a, b, c, d, e, f를 사용하는 6-파라미터 어파인 모델) 제어 점 움직임 벡터들에 의해 설명된다.
블록의 움직임 벡터 필드는 각각 4-파라미터 어파인 모델 및 6-파라미터 어파인 모델에서 하기 식으로 설명된다.
여기서, 는 좌측 상단 모서리 제어점(control point: CP)의 움직임 벡터이고, 는 우측 상단 모서리 제어점(CP)의 움직임 벡터이며 는 좌측 하단 모서리 제어점(CP)의 움직임 벡터이다. (x, y)는 현재 블록 내에서 좌측 상단의 샘플에 상대적인 대표 지점(representative point)의 좌표를 나타낸다. CP 움직임 벡터들은 시그널링되거나, (어파인 AMVP 모드에서처럼) 혹은 즉석에서 유도될 수 있다(어파인 머지 모드에서처럼). wh는 현재 블록의 너비와 높이이다. 실제로, 분할은 라운딩 작업과 함께 오른쪽 시프트(right-shift)로 구현된다. VTM에서 대표 지점은 서브 블록의 중앙 지점으로 정의되는데, 예를 들어, 현재 블록 내의 좌측 상단의 샘플에 상대적인 서브 블록의 좌측 상단 모서리의 좌표가 (xs, ys)이면, 대표 지점의 좌표는 (xs+2, ys+2)로 정의된다. 각 서브 블록(예를 들어, VTM에서 4x4)에 대해, 대표 지점은 전체 서브 블록에 대한 움직임 벡터를 유도하는 데 활용된다.
도 17은 블록(1700)에 대한 서브 블록 당 어파인 MVF의 일 예를 보여준다. 여기서 움직임 보상 예측을 더 단순화하기 위해, 서브 블록 기반 어파인 변환 예측이 적용된다. 각 MxN 서브 블록의 움직임 벡터를 유도하기 위해, 각 서브 블록의 중앙 샘플의 움직임 벡터는 식 (1) 및 (2)에 따라 계산되어 움직임 벡터 분수 정확도(예를 들어, JEM에서 1/16)로 라운딩될 수 있다. 다음으로, 유도된 움직임 벡터를 가지는 각 서브 블록의 예측을 생성하기 위해 움직임 보상 보간 필터들이 적용될 수 있다. MCP 후에, 각 서브 블록의 고정확도 움직임 벡터는 정상 움직임 벡터(normal motion vector)와 동일한 정확도로 라운딩되고 보존된다.
2.2.4 어파인 예측의 시그널링에 대한 예들
병진 움직임 모델과 마찬가지로, 어파인 예측으로 인한 부가 정보를 시그널링하는 두 가지 모드도 존재한다. AFFINE_INTER 및 AFFINE_MERGE 모드이다.
2.2.5 AF_INTER 모드의 예들
폭과 높이가 모두 8보다 큰 CU들에 대해서는 AF_INTER 모드가 적용될 수 있다. CU 레벨에서 어파인 플래그는 AF_INTER 모드가 사용되는지 여부를 지시하기 위해 비트스트림으로 시그널링된다.
이 모드에서, 각 참조 픽처 리스트(리스트 0 혹은 리스트 1)에 대해, 어파인 AMVP 후보 리스트는 하기 순서로 어파인 움직임 예측자들의 세가지 유형으로 구성된다. 여기서, 각 후보는 현재 블록의 추정된 CPMV들을 포함한다.
인코더 측에서 발견된 최적의 CPMV들(예를 들어 도 20의의 차분들 및 추정된 CPMV들은 시그널링된다. 또한, 추정된 CPMV들이 유도된 어파인 AMVP 후보의 색인 이 더 시그널링 된다.
1) 상속된 어파인 움직임 예측자들
체크 순서는 HEVC AMVP 리스트 구성에서 공간적 MVP들의 그것과 유사하다. 첫 번째로, 좌측 상속된 어파인 움직임 예측자는 {A1, A0}의 어파인 코딩된 첫 번째(제1) 블록으로부터 유도되며, 현재 블록과 동일한 참조 픽처를 갖는다. 두 번째로, 상단 상속된 어파인 움직임 예측자는 {B1, B0, B2}의 어파인 코딩된 첫 번째(제1) 블록으로부터 유도되며, 현재 블록과 동일한 참조 픽처를 갖는다. 다섯 개의 블록들 A1, A0, B1, B0, B2은 도 19에 도시되어 있다.
인접 블록이 어파인 모드로 코딩된 것으로 확인되면 인접 블록을 포함하는 코딩 유닛의 CPMV들은 현재 블록의 CPMV들의 예측자들을 유도하는 데 사용된다.
예를 들어, A1이 논-어파인 모드로 코딩되고 A0이 4-파라미터 어파인 모델로 코딩되는 경우, 좌측 상속된 어파인 MV 예측자는 A0으로부터 유도될 것이다.
이러한 경우에서, 도 21b에서 좌측 상단 CPMV에 대해 및 우측 상단 CPMV에 대해 로 지시되는, A0을 커버하는 CU의 CPMV들은 현재 블록의 좌측 상단(좌표 (x0, y0)), 우측 상단(좌표 (x1, y1)) 및 우측 하단(좌표 (x2, y2) 위치들에 대해 , 로 지시되는 현재 블록의 추정된 CPMV들을 유도하는 데 활용된다.
2) 구성된 어파인 움직임 예측자들
구성된 움직임 예측자는 도 20에 도시된 바와 같이, 동일한 참조 픽처를 갖는 인접하는 화면 간 코딩된 블록들로부터 유도된 제어점 움직임 벡터(control-point motion vector: CPMV)들로 구성된다. 현재 어파인 움직임 모델이 4-파라미터 어파인이면, CPMV는 2 개이고, 현재 어파인 움직임 모델이 6-파라미터 어파인이면, CPMV는 3개이다. 좌측 상단 CPMV 는 화면 간 코딩되고 현재블록과 동일한 참조 픽처를 갖는 그룹 {A, B, C}의 첫 번째(제1) 블록의 MV에 의해 유도된다. 우측 상단의 CPMV 는 화면 간 코딩되고 현재 블록과 동일한 참조 픽처를 갖는 그룹 {D, E}의 첫 번째(제1) 블록의 MV에 의해 유도된다. 좌측 하단의 CPMV 는 화면 간 코딩되고 현재 블록과 동일한 참조 픽처를 갖는 그룹 {F, G}의 첫 번째(제1) 블록의 MV에 의해 유도된다.
- 현재 어파인 움직임 모델이 4-파라미터 어파인이면, 구성된 어파인 움직임 예측자는 이 모두 구축되는 경우에만 후보 리스트에 삽입된다. 즉, 는 현재 블록의 좌측 상단((x0, y0)의 좌표를 가짐), 우측 상단((x1, y1)의 좌표를 가짐) 위치들에 대한 추정된 CPMV들로 사용된다.
- 현재 어파인 움직임 모델이 6-파라미터 어파인이면, 구성된 어파인 움직임 예측자는 , 이 모두 구축되는 경우에만 후보 리스트에 삽입된다. 즉,, 는 현재 블록의 좌측 상단((x0, y0)의 좌표를 가짐), 우측 상단((x1, y1)의 좌표를 가짐) 및 우측 하단((x2, y2)의 좌표를 가짐) 위치들에 대한 추정된 CPMV들로 사용된다.
구성된 어파인 움직임 예측자가 후보 리스트에 삽입되는 경우, 프루닝 프로세스는 적용되지 않는다.
3) 정상(normal) AMVP 움직임 예측자들
어파인 움직임 예측자들의 수가 최대에 이를 때까지 하기의 사항들이 적용된다.
1) 가능한 경우 모든 CPMV들을 로 설정하여 어파인 움직임 예측자를 유도한다.
2) 가능한 경우 모든 CPMV들을 로 설정하여 어파인 움직임 예측자를 유도한다.
3) 가능한 경우 모든 CPMV들을 로 설정하여 어파인 움직임 예측자를 유도한다.
4) 가능한 경우 모든 CPMV들을 HEVC TMVP로 설정하여 어파인 움직임 예측자를 유도한다.
5) 모든 CPMV들을 영(zero) MV로 설정하여 어파인 움직임 예측자를 유도한다. 가 이미 구성된 어파인 움직임 예측자에서 유도되었다.
AF_INTER 모드에서, 4/6 파라미터 어파인 모드가 사용되는 경우, 2/3 제어점들이 필요하므로 2/3 MVD는 도 18a 및 도 18b에 도시된 바와 같이 이러한 제어 점들에 대해 코딩되어야 한다. 기존 구현에서, MV는 하기와 같이 유도될 수 있다. 예를 들어, mvd0로부터 mvd1 및 mvd2를 예측한다.
여기서, , 는 도 18b에 도시된 바와 같이, 좌측 상단 픽셀 (i=0), 우측 상단 픽셀 (i=1), 혹은 좌측 하단 픽셀(i=2)의 각각 예측된 움직임 벡터, 움직임 벡터 차분(차이 혹은 차), 및 움직임 벡터이다. 일부 실시예들에서, 두 움직임 벡터들의 덧셈 (예를 들어, mvA(xA, yA) 및 mvB(xB, yB)) 은 두 구성요소들 각각의 합과 동일하다. 예를 들어, newMV = mvA + mvB 는 newMV의 두 구성요소들이 각각 (xA + xB) 및 (yA + yB)로 됨을 암시한다.
AF_MERGE 모드의 예들
AF_MERGE 모드에서 CU가 적용되면, 유효한 인접 복원된 블록들로부터 어파인 모드로 코딩된 첫 번째(제1) 블록이 획득된다. 그리고 후보 블록에 대한 선택 순서는 도 21a에 도시된 바와 같이(순서대로 A, B, C, D, E로 지시됨) 좌측, 상단, 우측 상단, 좌측 하단에서 좌측 상단 순이다. 예를 들어, 인접 좌측 하단 블록이 도 21b에 A0으로 도시된 바와 같이 어파인 모드로 코딩되면, 블록 A를 포함하는 인접하는 CU/PU의 좌측 상단 모서리, 우측 상단 모서리 및 좌측 하단 모서리의 제어점 (Control Point: CP) 움직임 벡터들인 를 가져온다. 현재 CU/PU에서 좌측 상단 모서리/우측 상단/좌측 하단의 움직임 벡터 (6-파라미터 어파인 모델에 대해서만 사용됨)이 를 기반으로 계산된다. VTM-2.0에서 현재 블록이 어파인 코딩된 경우, 좌측 상단 모서리에 위치한 서브 블록(예를 들어, VTM에서 4x4 블록)은 mv0을 저장하고, 우측 상단 모서리에 위치한 서브 블록은 mv1을 저장한다. 현재 블록이 6-파라미터 어파인 모델로 코딩되는 경우, 좌측 하단 모서리에 위치한 서브 블록은 mv2를 저장한다. 그렇지 않은 경우, (4-파라미터 어파인 모델로 코딩), LB는 mv2'를 저장한다. 다른 서브 블록들은 MC를 위한 MV들을 저장한다.
식 (1) 및 (2)의 어파인 움직임 모델에 따라 현재 CU v0 및 v1의 CPMV가 계산된 이후, 현재 CU의 MVF가 생성될 수 있다. 현재 CU가 AF_MERGE 모드로 코딩 되었는지 여부를 식별하기 위해, 어파인 모드로 코딩된 적어도 하나의 인접 블록이 존재하는 경우, 어파인 플래그는 비트스트림에서 시그널링될 수 있다.
일부 실시예들에서(예를 들어, JVET-L0142 및 JVET-L0632), 어파인 머지 후보 리스트는 하기 단계들에 의해 구성될 수 있다.
1) 상속된 어파인 후보들 삽입
상속된 어파인 후보는 유효한 이웃 어파인 코딩 된 블록의 어파인 움직임 모델에서 유도된 후보를 의미한다. 일반적으로는, 도 24에 도시된 바와 같이 후보 위치들에 대한 스캔 순서는 A1, B1, B0, A0 및 B2 순이다.
후보가 유도된 이후, 동일한 후보가 리스트에 삽입되었는지 여부를 체크하기 위해 풀 프루닝 프로세스(full pruning process)가 수행된다. 동일한 후보가 존재하면, 유도된 후보는 폐기된다.
2) 구성된 어파인 후보들 삽입
어파인 머지 후보 리스트에서 후보들의 수가 MaxNumAffineCand (5로 설정됨)보다 작은 경우, 구성된 어파인 후보들은 후보 리스트에 삽입된다. 구성된 어파인 후보는 각 제어점의 인접 움직임 정보를 결합하여 구성된 후보이다.
제어점들에 대한 움직임 정보는 먼저 도 24에 도시된 바와 같이 특정 공간적 이웃들 및 시간적 이웃으로부터 유도된다. 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가 사용된다. 반면에, B2가 가용한 경우, B3이 사용된다. B2 및 B3 둘 다 가용하지 않은 경우, A2가 사용된다. 세 개의 후보 모두가 가용하지 않은 경우, CP1의 움직임 정보는 획득되지 않을 수 있다.
CP2에 대해, 체크 우선순위는이다.
CP3에 대해, 체크 우선순위는 이다.
CP4에 대해, T가 사용된다.
두 번째로, 제어 점들의 조합들은 어파인 머지 후보를 구성하기 위해 사용된다.
세 개의 제어 점들의 움직임 정보는 6-파라미터 어파인 후보를 구성하기 위해 필요하다. 세 개의 제어 점들은 네 개의 조합 ({CP1, CP2, CP4}, {CP1, CP2, CP3}, {CP2, CP3, CP4}, {CP1, CP3, CP4}) 중 하나로 선택될 수 있다. {CP1, CP2, CP3}, {CP2, CP3, CP4}, {CP1, CP3, CP4} 조합들은 좌측 상단, 우측 상단 및 좌측 하단 제어 점들로 표시되는 6-파라미터 움직임 모델로 변환된다.
두 제어점들의 움직임 정보는 4-파라미터 어파인 후보를 구성하기 위해 필요하다. 두 제어점들은 다음의 여섯 조합들 ({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의 참조 색인으로 선택되고, 차분 참조 픽처(difference reference picture)에 대한 움직임 벡터 점(motion vectors point)이 스케일링된다.
후보가 유도된 이후, 동일 후보가 리스트에 삽입되었는지 여부를 체크하기 위해 풀 프루닝 프로세스(full pruning process)가 수행된다. 만약 동일 후보가 존재하면, 유도된 후보는 폐기된다.
3) 영(zero) 움직임 벡터들로 패딩
어파인 머지 후보 리스트에서 후보들의 수가 5보다 적은 경우, 영 참조 색인들(zero reference indices)을 갖는 영 움직임 벡터들이 리스트가 가득 찰 때까지 후보 리스트에 삽입된다.
2.3 현재 픽처 참조(current picture referencing: CPR)의 예들
현재 픽처 참조(current picture reference: CPR)로도 알려진 화면 내 블록 복사 (intra block copy: IBC, 혹은 화면 내 픽처 블록 보상)는 HEVC 스크린 콘텐츠 코딩 확장(screen content coding extensions: SCC)에서 채택되었다. 이러한 도구는, 동일한 픽처 내에서 빈번하게 발생하는 텍스트 및 그래픽이 풍부한 콘텐츠의 반복 패턴의 스크린 콘텐츠 비디오 코딩에 매우 효율적이다. 예측자와 동일하거나 유사한 패턴을 갖는 이전에 복원된 블록을 갖는 것은 예측 에러를 효율적으로 감소시킬 수 있고, 결과적으로 코딩 효율을 향상시킬 수 있다. 화면 내 블록 보상의 예는 도 23에 도시되어 있다.
HEVC SCC에서 CPR의 설계와 유사하게, VVC에서는, IBC 모드의 사용이 시퀀스 및 픽처 레벨 모두에서 시그널링된다. IBC 모드가 시퀀스 파라미터 세트 (sequence parameter set)에서 활성화되는 경우, 픽처 레벨에서 활성화될 수 있다. IBC 모드가 픽처 레벨에서 활성화되는 경우, 현재 복원된 픽처는 참조 픽처로 취급된다. 따라서, IBC 모드 사용을 시그널링하기 위해 기존 VVC 화면 간 모드 위에 블록 레벨에서의 구문 변경이 요구되지 않는다.
CPR의 일부 특징은 다음을 포함한다.
*- 정상 화면 간 모드(normal inter mode)로 취급된다. 따라서, 머지 및 스킵 모드들은 IBC 모드에서도 허용된다. 머지 후보 리스트 구성은 통합(unified)되며, IBC 모드 혹은 HEVC 화면간 모드 모두에서 코딩된 인접 위치의 머지 후보들을 포함한다. 선택된 머지 색인에 기초하여, 머지 혹은 스킵 모드 하의 현재 블록은 IBC 모드 코딩된 인접 혹은 참조 픽처들인 다른 픽처들을 갖는 정상 화면 간 모드 코딩된 블록으로 병합될 수 있다.
- IBC 모드에 대한 블록 벡터 예측 및 코딩 방식들은 HEVC 화면간 모드(AMVP 및 MVD 코딩)에서 움직임 벡터 예측 및 코딩에 사용되는 방식을 재사용한다.
- 블록 벡터로도 지칭되는 IBC 모드에서의 움직임 벡터는 정수-픽셀 정밀도로 코딩되나, 보간 및 디블록킹(deblocking) 단계에서 1/4-픽셀 정밀도가 필요하므로, 디코딩된 이후에는 1/16-픽셀 정밀도로 메모리에 저장된다. IBC 모드에서의 움직임 벡터 예측에 사용되면, 저장된 벡터 예측자는 오른쪽으로 4만큼 시프트(shifted)된다.
- 탐색 범위: 현재 CTU 내로 제한된다.
- 어파인 모드/삼각 모드(triangular mode)/GBI/가중 예측(weighted prediction)이 활성화되는 경우 CPR은 허용되지 않는다.
2.4 VVC에서 머지 리스트 설계의 예들
VVC에서 지원되는 상이한 머지 리스트 구성 프로세스가 세 가지 존재한다.
(1) 서브 블록 머지 후보 리스트: ATMVP 및 어파인 머지 후보들을 포함한다. 한 머지 리스트 구성 프로세스는 어파인 모드들 및 ATMVP 모드에 공유된다. 여기서, ATMVP 및 어파인 머지 후보들은 순서에 따라 추가된다. 서브 블록 머지 리스트 크기는 슬라이스 헤더에서 시그널링되며, 최대 값은 5이다.
(2) 단일 예측 TPM 머지 리스트: 삼각 예측 모드에서, 두 개의 분할들에 대한 하나의 머지 리스트 구성 프로세스는 두 개의 분할들이 각자의 머지 후보 색인을 선택할 수 있더라도 공유된다. 이 머지 리스트를 구성할 때, 공간적 인접 블록들 및 블록의 두 시간적 블록들이 체크된다. 공간적 이웃들과 시간적 블록들로부터 유도된 움직임 정보는 IDF에서 정규(regular) 움직임 후보들로 지칭된다. 이러한 정규 움직임 후보들은 다중 TPM 후보들을 유도하는 데 더 활용된다. 두 개의 분할들이 각자 자체 예측 블록들을 생성하기 위해 서로 다른 움직임 벡터를 사용할 수 있더라도 변환은 전체 블록 레벨에서 수행된다. 일부 실시예에서, 단일 예측 TPM 머지 리스트 크기는 5로 고정된다.
(3) 정규 머지 리스트: 나머지 코딩 블록들에 대해, 하나의 머지 리스트 구성 프로세스가 공유된다. 여기서, 공간적/시간적/HMVP, 페어와이즈(pairwise) 결합된 양 예측 머지 후보들 및 영 움직임 후보들이 순서대로 삽입된다. 정규 머지 리스트 크기는 슬라이스 헤더에서 시그널링되며, 최대 값은 6이다.
서브 블록 머지 후보 리스트
모든 서브 블록 관련 움직임 후보들은 논-서브블록 머지 후보들에 대한 정규 머지 리스트 외에 개별적인(별도의) 머지 리스트에 삽입되는 것이 제안된다.
서브 블록 관련 움직임 후보들은 '서브 블록 머지 후보 리스트'라는 별도의 머지 리스트에 삽입된다.
일 예로서, 서브 블록 머지 후보 리스트는 어파인 머지 후보들, ATMVP 후보 및/혹은 서브 블록 기반 STMVP 후보를 포함한다.
JVET-L0278
여기에서, 정상(normal) 머지 리스트의 ATMVP 머지 후보는 어파인 머지 리스트의 첫 번째(제1) 위치로 이동된다. 새로운 리스트(즉, 서브 블록 기반 머지 후보 리스트)의 모든 머지 후보들은 서브 블록 코딩 도구들을 기반으로 한다.
정규 머지 리스트
VVC에서, 머지 리스트 설계와 달리, 히스토리 기반 움직임 벡터 예측(history-based motion vector prediction: HMVP) 방법이 사용된다.
HMVP에서, 이전에 코딩된 움직임 정보가 저장된다. 이전에 코딩된 블록의 움직임 정보는 HMVP 후보로 정의된다. 다중 HMVP 후보들은 HMVP 표로 불리는 표에 저장되며, 이 표는 인코딩/디코딩 프로세스 동안 즉시 유지된다. HMVP 표는 새로운 슬라이스를 코딩/디코딩 하기 시작할 때 비워진다. 화면 간 코딩된 블록이 존재할 때 마다, 연관된 움직임 정보는 새로운 HMVP 후보로서 표의 마지막 항목으로 추가된다. 전반적인 코딩 흐름은 도 24에 도시되어 있다.
HMVP 후보들은 AMVP 및 머지 후보 리스트 구성 프로세스들 둘 다에서 사용된다. 도 25는 수정된 머지 후보 리스트 구성 프로세스(회색으로 표시됨)을 도시한다. 머지 후보 리스트가 TMVP 후보 삽입 이후에도 가득 차지 않으면, HMVP 표에 저장된 HMVP 후보들은 머지 후보 리스트를 채워 넣는데 활용될 수 있다. 일반적으로 한 블록이 움직임 정보 측면에서 가장 가까운 인접 블록과 더 높은 상관 관계를 갖는다는 점을 고려하면, 표의 HMVP 후보들은 색인의 내림차순으로 삽입된다. 표의 마지막 항목은 가장 먼저 리스트에 삽입되고, 가장 첫 번째 항목은 마지막에 추가된다. 마찬가지로, 중복성 제거는 HMVP 후보들에 대해 적용된다. 사용할 수 있는 머지 후보들의 총 수가 시그널링이 허용된 최대 머지 후보 수에 도달하면, 머지 후보 리스트 구성 프로세스는 종료된다.
3 기존 구현들의 단점들
기존 VVC 구현에서는, 하드웨어 구현 비용을 증가시키는 서로 다른 절차들을 갖는 세 가지 서로 다른 머지 리스트가 활용된다.
- 세가지 머지 리스트들 모두는 공간적 블록들과 시간적 블록들에 접근해야할 필요가 있다. 예를 들어, 공간적 블록들과 시간적 들로부터의 움직임 정보 로딩을 위해 공간적 블록들과 시간적 블록들에 접근해야할 수 있다. 그러나, 시간적 블록들로부터 움직임 정보를 로딩하는 것은 일반적으로 훨씬 긴 시간을 필요로 하므로, 크리티컬 패스(critical path)를 증가시킨다.
4 비디오 코딩을 위한 별도의 움직임 후보 리스트들에 대한 예시적인 방법들
현재 개시된 기술의 실시 예들은 기존 구현들의 단점들을 극복함으로써 더 높은 코딩 효율로 비디오 코딩을 제공한다. 비디오 코딩을 위한 개별적인 움직임 후보 리스트들의 구성은, 개시된 기술에 기반하여, 기존 및 미래 비디오 코딩 표준들 모두를 향상시킬 수 있으며, 다양한 구현을 통한 다음의 실시예들을 통해 설명된다. 하기에 제공된 기술의 예들은 일반적인 개념들에 대하여 설명하나, 이는 본 개시를 제한하는 것으로 해석되는 것은 아니다. 일 예로서, 명시적으로 반대되는 지시가 없는 한, 이러한 예들에서 설명되는 다양한 특징들은 결합될 수 있다. 일부 제안된 기술들은 기존 후보 리스트 구성 프로세스에 적용될 수도 있다.
움직임 정보의 출처를 기반으로 한 다중 후보 리스트들
예 1. 시간적 후보 리스트로 불리는 별도의 후보 리스트는 오롯이 공간적 블록들로부터의 움직임 정보는 제외하여 구성된다.
(a) 일 예로서, 시간적 후보 리스트는 오직 시간적 블록들로부터의 움직임 정보(이러한 움직임 정보는 시간적 후보들로서 추가됨)만을 고려하여 구성된다.
(b) 일 예로서, 시간적 후보 리스트는 또한 시간적 블록들 및 공간적 블록들, 예를 들어 서브 블록 기반 STMVP 혹은 논-서브 블록 기반 STMVP에 접근해야하는 후보를 포함할 수 있다.
(c) 일 예로서, 시간적 머지 후보 리스트는 시간적 인접 블록 정보를 사용하여 어파인 모델을 유도하는 어파인 머지 후보들을 포함할 수 있다.
(i) 대안적으로, 시간적 인접 블록 정보를 사용하여 어파인 모델을 유도하는 어파인 머지 후보들은 별도의 머지 후보 리스트에 있다.
(d) 일 예로서, 시간적 후보 리스트는 HMVP 후보들 또한 포함할 수 있다.
(e) 일 예로서, 시간적 후보 리스트는 시간적 후보들 및/혹은 HMVP 후보들로부터 유도된 가상 후보들 또한 포함할 수 있다.
(f) 일 예로서, 시간적 후보 리스트는 후보들을 포함할 수 있는데, 한 후보만이 TMVP와 같은 전체 블록에 적용되는 움직임 정보의 한 세트와 연관된다.
(g) 일 예로서, 시간적 후보 리스트는 후보들을 포함할 수 있는데, 한 후보 만이 다중 움직임 정보 세트들과 연관되고, 각 세트는 ATMVP와 같은 전체 블록 내의 서브 블록에 적용된다.
(h) 일 예로서, 시간적 블록들에 접근해야 하는 모든 움직임 후보들에 대해, 모든 시간적 블록들은 동일한 참조 픽처로부터 기인한다. 대안적으로, 시간적 블록들에 접근해야하는 모든 움직임 후보들에 대해, 모든 시간적 블록들은 각 참조 픽처 리스트의 한 참조 픽처로부터 기인한다.
(i) 일 예로서, 시간적 블록들에 접근해야 하는 모든 움직임 후보들에 대해, 그 시간적 블록들이 위치한 픽처는 기 정의되거나(예를 들어, 0인 참조 색인), SPS/PPS/슬라이스 헤더/타일 그룹 헤더/타일/CTU/CU/PU에서 시그널링될 수 있다.
(j) 일 예로서, 시간적 블록들에 접근해야 하는 모든 움직임 후보들에 대해, 모든 시간적 블록들은 현재 블록과 동일 위치(collocated)에 배치되거나, 동일한 CTU(코딩 트리 유닛) 행에 위치한다.
(k) 일 예로서, 시간적 블록들에 접근해야 하는 모든 움직임 후보들에 대해, 비디오 유닛이 중첩되지 않는(non-overlapped) MxN 영역들로 분할될 때, 모든 시간적 블록들은 동일한 영역(크기는 MxN, 예를 들어, M=N=64)에 위치할 수 있는데, 여기서 M 및 N은 기 정의되거나 SPS/PPS/슬라이스 헤더/타일 그룹 헤더/타일/CTU/CU/PU에서 시그널링될 수 있다.
(l) 또한, 대안적으로, 일반화된 양 예측(generalized bi-prediction: GBi)은 이 리스트에서 움직임 후보들에 대해 비활성화 되며, GBi 색인은 움직임 후보 리스트의 움직임 후보에 대해 0으로 설정된다. GBi는 CU 레벨 가중치를 이용한 양 예측(Bi-prediction with CU-level Weights: BCW)으로도 알려져 있다.
예 2. 공간적 후보 리스트로 지칭되는 별도의 후보 리스트는, 시간적 블록들로부터의 움직임 정보가 제외되어 구성된다.
(a) 일 예로서, 공간적 후보 리스트는 오직 공간적 블록들로부터의 움직임 정보들(이러한 움직임 정보는 공간적 후보로서 추가됨)만을 고려하여 구성된다.
(b) 일 예로서, 공간적 후보 리스트는 HMVP 후보들 또한 포함할 수 있다.
(c) 일 예로서, 공간적 후보 리스트는 공간적 후보들 및/혹은 HMVP 후보들로부터 유도된 가상 후보들 또한 포함할 수 있다.
일부 실시예들에서, 움직임 후보 리스트는 시간적 블록들 및 공간적 블록들 모두에 기반한 움직임 후보를 포함한다. 일부 실시예들에서, 움직임 후보는 서브 블록 기반 시공간적 움직임 벡터 예측(sub-block based spatial temporal motion vector prediction: STMVP) 혹은 논-서브 블록 기반 STMVP에 대해 사용된다.
예 3. CPR 후보 리스트로 지칭되는 별도의 후보 리스트는 모든 후보들이 동일한 참조 픽처들과 연관되어 구성된다.
(a) 일 예로서, 동일한 참조 픽처는 현재 픽처/타일/슬라이스로 정의된다.
(b) 일 예로서, 모든 후보들은 단일 예측 후보들이다. 대안적으로, 단일 예측 및 양 예측 후보들을 모두 포함할 수 있으나, 참조 픽처는 두 참조 픽처 리스트들에 대해 여전히 동일하다.
(c) 이러한 후보 리스트는 공간적 블록들(인접 혹은 비인접(non-adjacent))로부터의 움직임 정보를 포함할 수 있다.
(d) 이러한 후보 리스트는 기 정의되거나 현재 블록의 위치, 및/혹은 CPR 모드(혹은 IBC 모드)의 허용된 탐색 영역, 및/혹은 움직임 보상된 블록(예를 들어 64x64)의 최대 허용된 유닛 크기에 기반하여 계산된 움직임 벡터를 갖는 일부 기본 움직임 후보들을 포함할 수 있다.
예 4. 일 예로서, ATMVP는 별도의 머지 후보 리스트에 존재한다. ATMVP는 서브 블록 TMVP(SbTMVP)로도 알려져 있다.
(a) 대안적으로, 시간적 머지 후보 리스트에 존재하나 항상 첫 번째와 같은 고정된 위치를 유지한다.
일부 실시예들에서, 비디오의 비디오 블록에 대한 움직임 후보 리스트들이 구성되며, 여기서 이러한 움직임 후보 리스트는 어파인 후보는 제외하고 ATMVP 후보를 포함한다.
예 5. 시간적 및/혹은 공간적 후보 리스트 및/혹은 다른 종류의 후보 리스트들(예를 들어, HMVP 후보 리스트)의 리스트 크기는, 예를 들어 K와 같도록 (예를 들어, K는 5 혹은 6) 기 정의될 수 있다. 기 정의된 리스트 크기는 첫 번째(제1) 움직임 후보 리스트에서 허용된 움직임 후보들의 최대 수를 설명할 수 있다.
(a) 대안적으로, 후보 리스트 크기들에 대한 별도의 시그널링이 사용될 수 있다.
(b) 대안적으로, 후보 리스트 크기는 한 회 시그널링 될 수 있으며 모든 종류의 후보 리스트들에 적용될 수 있다.
(c) 인코더로부터 디코더로의 시그널링은 SPS/PPS/슬라이스 헤더/타일 그룹 헤더/타일/CTU/CU/PU에서 수행될 수 있다.
예 6. HMVP 후보 리스트로 불리는 별도의 후보 리스트가 구성되며, 오직 HMVP 후보들만이 리스트에 포함될 수 있다.
(a) 또한, 대안적으로, 일부 기본 움직임 벡터 후보들(예를 들어, 영 움직임 벡터 후보들) 또한 포함될 수 있다.
(b) 또한, 대안적으로, 기존 HMVP 후보들로부터 유도된 일부 후보들 또한 포함될 수 있다.
예 7. 다중 후보 리스트들이 존재하면, 리스트 색인이 더 시그널링될 수 있다.
(a) 일 예로서, 인접 블록들의 리스트 색인은 컨텍스트에 사용되는 것과 같이 현재 블록의 리스트 색인을 코딩하는 데 활용될 수 있다.
(b) 시그널링된 리스트 색인과 동일한 값은 다른 블록에서는 다른 머지 리스트에 대응될 수 있다.
(c) 리스트 색인의 시그널링은 예를 들어 TPM, 논-어파인 및 논-TPM 모드들과 같은 코딩된 모드 정보에 기초할 수 있다.
일부 실시예들에서, 모드에 기반하여, 다중 움직임 후보 리스트 구성 방법들을 사용하는 다중 움직임 후보 리스트들의 사용이 결정될 수 있거나 단 하나의 움직임 후보 리스트 구성 방법을 이용하여 단 하나의 움직임 후보 리스트가 결정될 수 있다. 일부 실시예들에서, 모드에 기반하여, 제1 움직임 후보 리스트 구성 방법은 비디오 블록과 비디오 블록을 포함하는 비디오의 비트스트림 표현 간의 변환 동안 제1 비디오 블록에 대해 활성화되도록 결정될 수 있다.
예 8. 프루닝 작업은 서로 다른 후보 리스트들 간에 수행될 수 있다.
(a) 한 후보가 다른 후보 리스트의 후보와 동일하거나 유사한 경우 한 후보 리스트에 삽입되지 않을 수 있다.
예 9. 상기 방법들은 특정 모드들에 대해 적용할 수 있다.
(a) 모드에 대해 비활성화되는 경우, 머지 리스트 색인은 시그널링 되지 않는다.
(b) 일 예로서, 별도의 후보 리스트들이 머지 모드에 대해 활용될 수 있으나, AMVP 모드에 대해서는 아닐 수 있다.
(c) 일 예로서, 별도의 후보 리스트들은 TPM 모드에 대해 비활성화될 수 있다. 즉, 오직 한 리스트가 TPM 코딩된 블록들을 위해 구성된다.
(d) 상기에서 설명된 방법들은 특정 블록 크기들에 대해 적용할 수 있다. W 및 H가 각각 블록 너비 및 높이라고 가정하자. 상기에서 설명된 방법들은 하기와 같은 경우에 적용될 수 있다.
(i) W*H는 임계값(예를 들어, 64) 이상이다.
(ii) W >= T0 및/혹은 H >= T1이고, 예를 들어, T0 및 T1은 둘 다 16으로 설정된다.
상기에서 설명된 예시들은 비디오 디코더 또는 비디오 인코더에서 구현 될 수 있는 방법(들), 예를 들어, 2600A 내지 2600E와 같은 아래 설명 된 방법의 맥락에서 통합 될 수 있다.
도 26a는 비디오 프로세싱을 위한 예시적인 방법(2600A)의 제1 흐름도를 보여준다. 동작 2610에서, 제1 움직임 후보 리스트는 비디오의 제1 비디오 블록에 대해 오직 공간적 블록들로부터 유도된 움직임 후보들은 제외하는 제1 움직임 후보 리스트 구성 방법을 사용하여 구성된다. 동작 2615에서, 구성된 제1 움직임 후보 리스트에 따라 제1 비디오 블록과 제1 비디오 블록을 포함하는 비디오의 비트스트림 표현 간의 변환이 수행된다.
방법 2600A에 대한 일부 실시예들에서, 제1 움직임 후보 리스트는 오직 시간적 블록들로부터의 움직임 후보를 포함한다. 방법 2600A에 대한 일부 실시예들에서, 제1 움직임 후보 리스트는 시간적 블록들 및 공간적 블록들 둘 다에 기반하는 움직임 후보를 포함한다. 방법 2600A에 대한 일부 실시예들에서, 움직임 후보는 서브 블록 기반 시공간적 움직임 벡터 예측(STMVP) 혹은 논-서브블록 기반 STMVP에 대해 사용된다. 방법 2600A에 대한 일부 실시예들에서, 제1 움직임 후보 리스트는 어파인 모델을 유도하기 위해 제1 비디오 블록의 시간적으로 인접한 비디오 블록들로부터의 정보를 사용하는 어파인 머지 후보를 포함한다.
방법 2600A에 대한 일부 실시예들에서, 제1 움직임 후보 리스트는 어파인 모델을 유도하기 위해 제1 비디오 블록의 시간적으로 인접한 비디오 블록들로부터의 정보를 사용하는 어파인 머지 후보를 제외한다. 방법 2600A에 대한 일부 실시예들에서, 제1 움직임 후보 리스트는 히스토리 기반 움직임 벡터 예측(history-based motion vector prediction: HMVP) 후보를 포함한다. 방법 2600A에 대한 일부 실시예들에서, 제1 움직임 후보 리스트는 시간적 움직임 후보 혹은 HMVP 후보로부터 유도된 가상 후보를 포함한다. 방법 2600A에 대한 일부 실시예들에서, 제1 움직임 후보 리스트는 오직 움직임 후보들만을 포함하되, 각 움직임 후보는 제1 비디오 블록 전체에 적용되는 단일 세트의 움직임 정보에만 연관된다.
방법 2600A에 대한 일부 실시예들에서, 제1 움직임 후보 리스트는 오직 움직임 후보들만을 포함하되, 각 움직임 후보는 움직임 정보의 다중 세트에만 연관되고, 움직임 정보의 다중 세트 각각은 제1 비디오 블록의 서브 블록에 적용된다. 방법 2600A에 대한 일부 실시예들에서, 제1 움직임 후보 리스트는 동일 참조 픽처의 복수의 시간적 블록들에 연관된 복수의 움직임 후보들을 포함한다. 방법 2600A에 대한 일부 실시예들에서, 제1 움직임 후보 리스트는 각 참조 픽처 리스트의 한 참조 픽처와 연관된 복수의 시간적 블록들에 연관된 복수의 움직임 후보들을 포함한다.
방법 2600A에 대한 일부 실시예들에서, 제1 움직임 후보 리스트는 픽처에 위치하는 복수의 시간적 블록들과 연관된 복수의 움직임 후보들을 포함하되, 그 픽처의 참조 색인은 기 정의되거나 시퀀스 파라미터 세트(sequence parameter set: SPS), 픽처 파라미터 세트(picture parameter set: PPS), 슬라이스 헤더, 타일 그룹 헤더, 타일, 코딩 트리 유닛(coding tree unit: CTU), 코딩 유닛(coding unit: CU) 혹은 예측 유닛(prediction unit: PU)에서 시그널링된다. 방법 2600A에 대한 일부 실시예들에서, 제1 움직임 후보 리스트는 제1 비디오 블록을 포함하는 대조(collated) 코딩 트리 유닛(CTU) 행에 위치한 복수의 시간적 블록들과 연관된 복수의 움직임 후보들을 포함한다.
방법 2600A에 대한 일부 실시예들에서, 제1 움직임 후보 리스트는 비디오 유닛이 중첩되지 않는(non-overlapped) MxN 영역들로 분할되는 경우MxN크기인 동일한 영역에 위치하는 복수의 시간적 블록들과 연관된 복수의 움직임 후보들을 포함하되, 여기서 M 및 N은 기 정의된 정수들이거나 시퀀스 파라미터 세트 (sequence parameter set: SPS), 픽처 파라미터 세트 (a picture parameter set: PPS), 슬라이스 헤더(slice header), 타일 그룹 헤더(tile group header), 타일(tile), 코딩 트리 유닛(coding tree unit), 코딩 유닛(coding unit) 혹은 예측 유닛(prediction unit)에서 시그널링 되는 정수들이다. 방법 2600A에 대한 일부 실시예들에서, 일반화된 양 예측(generalized bi-prediction: GBi)는 제1 움직임 후보 리스트에서 움직임 후보들에 대해 비활성화 되며, GBi 색인은 제1 움직임 후보 리스트에서 움직임 후보에 대해 0으로 설정된다. 방법 2600A에 대한 일부 실시예들에서, 제1 움직임 후보 리스트는 대안적인 시간적 움직임 벡터 예측(alternative temporal motion vector prediction: ATMVP) 후보를 포함한다. 방법 2600A에 대한 일부 실시예들에서, ATMVP 후보는 제1 움직임 후보 리스트에서 고정된 위치에 존재한다.
도 26b는 비디오 프로세싱을 위한 예시적인 방법(2600B)의 제2 흐름도를 보여준다. 동작 2630에서, 비디오의 제1 비디오 블록에 대해, 대안적인 시간적 움직임 벡터 예측(alternative temporal motion vector prediction: ATMVP) 후보를 포함하고, 어파인 후보는 제외하는 제1 움직임 후보 리스트가 구성된다. 동작 2635에서, 상기 제1 비디오 블록과 상기 제1 비디오 블록을 포함하는 상기 비디오의 비트스트림 표현 간의 변환이 상기 구성된 제1 움직임 후보 리스트에 따라 수행된다.
방법(들) 2600A 및/혹은 2600B에 대한 일부 실시예들에서, 상기 방법은 상기 제1 비디오 블록에 대한 상기 제1 움직임 후보 리스트 구성 방법과 상이한 제2 움직임 후보 리스트 구성 방법을 사용하여 제2 움직임 후보 리스트를 구성하는 단계를 더 포함한다. 방법(들) 2600A 및/혹은 2600B에 대한 일부 실시예들에서, 상기 비트스트림 표현은 상기 제1 및 제2 움직임 후보 리스트 구성 방법들을 포함하는 다중 움직임 후보 리스트 구성 방법들에 대응하는 다중 움직임 후보 리스트들의 한 세트 내의 리스트를 식별하는 리스트 색인을 포함한다. 방법(들) 2600A 및/혹은 2600B에 대한 일부 실시예들에서, 상기 제1 비디오 블록의 이웃하는 비디오 블록에 대응하는 제1 리스트 색인은 상기 제1 비디오 블록의 제2 리스트 색인을 코딩하는데 사용된다.
방법(들) 2600A 및/혹은 2600B에 대한 일부 실시예들에서, 상기 제1 비디오 블록의 이웃하는 비디오 블록에 대응되는 상기 제1 리스트 색인은 상기 제1 비디오 블록의 상기 제2 리스트 색인의 코딩을 위한 컨텍스트 선택에 사용된다. 방법(들) 2600A 및/혹은 2600B에 대한 일부 실시예들에서, 리스트 색인에 대한 동일 값은 상기 비디오의 상이한 비디오 블록들에 대한 상이한 움직임 후보 리스트 구성 방법에 대응한다.
방법(들) 2600A 및/혹은 2600B에 대한 일부 실시예들에서, 상기 리스트 색인 시그널링은 삼각 예측 모드(triangular prediction mode: TPM), 논-어파인 모드 혹은 논-TPM 모드를 포함하는, 코딩된 모드 정보를 기반으로 한다. 방법(들) 2600A 및/혹은 2600B에 대한 일부 실시예들에서, 상기 다중 움직임 후보 리스트들의 상이한 움직임 후보 리스트들에서 상기 움직임 후보들에 프루닝(pruning) 작업을 수행하는 단계를 더 포함한다. 방법(들) 2600A 및/혹은 2600B에 대한 일부 실시예들에서, 다중 움직임 후보 리스트 구성 방법을 사용하는 다중 움직임 후보 리스트들의 사용 혹은 하나의 움직임 후보 리스트 구성 방법을 사용하는 단 하나의 움직임 후보 리스트의 사용을, 모드에 기반하여 결정하는 단계를 더 포함한다.
방법(들) 2600A 및/혹은 2600B에 대한 일부 실시예들에서, 다중 움직임 후보 리스트 구성 방법들을 사용하는 다중 움직임 후보 리스트들의 사용이 비활성화된 경우, 상기 제1 움직임 후보에 대한 리스트 색인이 모드에 대해 비활성화 되고 시그널링되지 않는다. 방법(들) 2600A 및/혹은 2600B에 대한 일부 실시예들에서, 상기 방법(들)은 모드에 기반하여 상기 제1 비디오 블록에 대한 상기 제1 움직임 후보 리스트 구성 방법이 활성화되는 것으로 결정하는 단계를 더 포함한다. 방법(들) 2600A 및/혹은 2600B에 대한 일부 실시예들에서, 상기 모드는 머지 모드이다. 방법(들) 2600A 및/혹은 2600B에 대한 일부 실시예들에서, 상기 모드는 향상된 움직임 벡터 예측(advanced motion vector prediction: AMVP) 모드이다. 방법(들) 2600A 및/혹은 2600B에 대한 일부 실시예들에서, 상기 모드는 삼각 예측 모드(triangular prediction mode: TPM)이다. 방법(들) 2600A 및/혹은 2600B에 대한 일부 실시예들에서, 상기 모드는 블록 차원에 관련된다. 방법(들) 2600A 및/혹은 2600B에 대한 일부 실시예들에서, 상기 블록 차원은 높이의 곱을 포함하고, 상기 제1 비디오 블록의 너비는 임계값보다 크거나 같다. 방법(들) 2600A 및/혹은 2600B에 대한 일부 실시예들에서, 상기 임계값은 64이다.
방법(들) 2600A 및/혹은 2600B에 대한 일부 실시예들에서, 상기 제1 비디오 블록의 높이가 제1 임계값보다 크거나 같고, 상기 제1 비디오 블록의 너비가 제2 임계값보다 크거나 같다. 방법(들) 2600A 및/혹은 2600B에 대한 일부 실시예들에서, 상기 제1 임계값은 16이고, 상기 제2 임계값도 16이다. 방법(들) 2600A 및/혹은 2600B에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트는 상기 모드로 코딩된 비디오 블록들에 대한 단일 움직임 후보 리스트를 포함한다. 방법(들) 2600A 및/혹은 2600B에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트는 상기 모드로 코딩되지 않은 비디오 블록들에 대한 단일 움직임 후보 리스트를 포함한다. 방법(들) 2600A 및/혹은 2600B에 대한 일부 실시예들에서, 상기 변환을 수행하는 단계는 상기 비트스트림 표현으로부터 상기 제1 비디오 블록의 픽셀 값들을 생성하는 단계를 포함한다. 방법(들) 2600A 및/혹은 2600B에 대한 일부 실시예들에서, 상기 변환을 수행하는 단계는 상기 제1 비디오 블록의 픽셀 값들로부터 상기 비트스트림 표현을 생성하는 단계를 포함한다.
도 26c는 비디오 프로세싱을 위한 예시적인 방법(2600C)의 제3 흐름도를 보여준다. 동작 2640에서, 공간적 블록들로부터만 유도된 움직임 후보들을 제외하는 제1 움직임 후보 리스트 구성 방법을 이용하여 비디오의 제1 비디오 블록에 대한 제1 움직임 후보 리스트가 구성된다. 동작 2645에서, 상기 제1 비디오 블록과 상기 제1 비디오 블록을 포함하는 상기 비디오의 비트스트림 표현 간의 변환이 상기 구성된 제1 움직임 후보 리스트에 따라 수행된다.
방법 2600C에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트는 오직 공간적 블록들로부터의 움직임 후보만을 포함한다. 방법 2600C에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트는 히스토리 기반 움직임 벡터 예측(history-based motion vector prediction: HMVP) 후보를 포함한다. 방법 2600C에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트는 공간적 움직임 후보 혹은 HMVP 후보로부터 유도된 가상 후보(virtual candidate)를 포함한다. 방법 2600C에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트는 시간적 블록들 및 공간적 블록들 모두를 기반으로 하는 움직임 후보를 포함한다.
방법 2600C에 대한 일부 실시예들에서, 상기 움직임 후보는 서브 블록 기반 시공간적 움직임 벡터 예측(sub-block based spatial temporal motion vector prediction: STMVP) 혹은 논-서브 블록 기반 STMVP에 사용된다. 방법 2600C에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트의 리스트 크기는 상기 제1 움직임 후보 리스트에서 허용된 움직임 후보들의 기 정의된 최대 수이다. 방법 2600C에 대한 일부 실시예들에서, 상기 리스트 크기는 5 혹은 6이다. 방법 2600C에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트 구성 방법을 사용하는 상기 제1 움직임 후보 리스트의 제1 리스트 크기 혹은 제2 움직임 후보 리스트 구성 방법을 사용하는 적어도 하나 이상의 움직임 후보 리스트의 제2 리스트 크기는 개별적으로(별도로) 시그널링된다.
방법 2600C에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트 구성 방법을 사용하는 상기 제1 움직임 후보 리스트의 제1 리스트 크기 혹은 제2 움직임 후보 리스트 구성 방법을 사용하는 적어도 하나 이상의 움직임 후보 리스트의 제2 리스트 크기는 한 회 시그널링되고, 상기 제1움직임 후보 리스트와 상기 적어도 하나 이상의 움직임 후보 리스트를 포함하는 다중 유형의 움직임 후보 리스트들에 적용된다. 방법 2600C에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트 구성 방법을 사용하는 상기 제1 움직임 후보 리스트의 제1 리스트 크기 혹은 제2 움직임 후보 리스트 구성 방법을 사용하는 적어도 하나 이상의 움직임 후보 리스트의 제2 리스트 크기는 시퀀스 파라미터 세트 (sequence parameter set: SPS), 픽처 파라미터 세트 (a picture parameter set: PPS), 슬라이스 헤더(slice header), 타일 그룹 헤더(tile group header), 타일(tile), 코딩 트리 유닛(coding tree unit), 코딩 유닛(coding unit) 혹은 예측 유닛(prediction unit)을 사용하여 시그널링된다.
방법 2600C에 대한 일부 실시예들에서, 상기 적어도 하나 이상의 움직임 후보 리스트는 시간적 후보 리스트 혹은 공간적 후보 리스트 혹은 히스토리 기반 움직임 벡터 예측(history-based motion vector prediction: HMVP) 후보 리스트이다. 방법 2600C에 대한 일부 실시예들에서, 상기 방법은 상기 제1 비디오 블록에 대한 상기 제1 움직임 후보 리스트 구성 방법과 상이한 제2 움직임 후보 리스트 구성 방법을 사용하여 제2 움직임 후보 리스트를 구성하는 단계를 더 포함한다.
방법 2600C에 대한 일부 실시예들에서, 상기 제2 움직임 후보 리스트는 공간적으로 인접한 블록으로부터만 유도된 움직임 후보들을 제외한 시간적 후보 리스트이거나, 공간적 혹은 시간적으로 인접한 블록으로부터만 유도된 움직임 후보들을 제외한 히스토리 기반 움직임 벡터 예측(HMVP) 후보 리스트이다. 방법 2600C에 대한 일부 실시예들에서, 상기 비트스트림 표현은 상기 제1 및 제2 움직임 후보 리스트 구성 방법들을 포함하는 다중 움직임 후보 리스트 구성 방법들에 대응되는 다중 움직임 후보 리스트들의 한 세트 내의 리스트를 식별하는 리스트 색인을 포함한다.
방법 2600C에 대한 일부 실시예들에서, 상기 방법은, 모드에 기반하여 다중 움직임 후보 리스트 구성 방법들을 사용하는 다중 움직임 후보 리스트들의 사용 혹은 하나의 움직임 후보 리스트 구성 방법을 사용하는 단 하나의 움직임 후보 리스트의 사용을 결정하는 단계를 더 포함한다. 방법 2600C에 대한 일부 실시예들에서, 상기 다중 움직임 후보 리스트 구성 방법들을 사용하는 상기 다중 움직임 후보 리스트들의 사용이 비활성화되면, 상기 제1 움직임 후보 리스트에 대한 리스트 색인은 모드에 대해 비활성화되고, 시그널링되지 않는다.
방법 2600C에 대한 일부 실시예들에서, 상기 방법은 모드에 기반하여 상기 제1 비디오 블록에 대한 상기 제1 움직임 후보 리스트 구성 방법이 활성화되도록 결정하는 단계를 더 포함한다. 방법 2600C에 대한 일부 실시예들에서, 상기 모드는 머지 모드이다. 방법 2600C에 대한 일부 실시예들에서, 상기 모드는 향상된 움직임 벡터 예측(advanced motion vector prediction: AMVP)모드이다. 방법 2600C에 대한 일부 실시예들에서, 상기 모드는 삼각 예측 모드(triangular prediction mode: TPM)이다. 방법 2600C에 대한 일부 실시예들에서, 상기 모드는 블록 차원에 관련된다
방법 2600C에 대한 일부 실시예들에서, 높이의 곱을 포함하고, 상기 제1 비디오 블록의 너비는 임계값보다 크거나 같다. 방법 2600C에 대한 일부 실시예들에서, 상기 임계값은 64이다. 방법 2600C에 대한 일부 실시예들에서, 상기 제1 비디오 블록의 높이는 제1 임계값보다 크거나 같고, 상기 제1 비디오 블록의 너비는 제2 임계값보다 크거나 같다. 방법 2600C에 대한 일부 실시예들에서, 상기 제1 임계값은 16이고, 상기 제2 임계값은 16이다. 방법 2600C에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트는 상기 모드로 코딩된 비디오 블록들에 대한 단일 움직임 후보 리스트를 포함한다.
방법 2600C에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트는 상기 모드로 코딩된 비디오 블록들에 대한 단일 움직임 후보 리스트를 포함한다. 방법 2600C에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트는 상기 모드로 코딩되지 않은 비디오 블록들에 대한 단일 움직임 후보 리스트를 포함한다. 방법 2600C에 대한 일부 실시예들에서, 상기 변환을 수행하는 단계는 상기 비트스트림 표현으로부터 상기 제1 비디오 블록의 픽셀 값들을 생성하는 단계를 포함한다. 방법 2600C에 대한 일부 실시예들에서, 상기 제1 비디오 블록의 픽셀 값들로부터 상기 비트스트림 표현을 생성하는 단계를 포함한다.
도 26d는 비디오 프로세싱을 위한 예시적인 방법(2600D)의 제4 흐름도를 보여준다. 동작 2650에서, 비디오의 제1 비디오 블록에 대해 공간적 블록들로부터만 유도된 움직임 후보들을 제외하는 제1 움직임 후보 리스트 구성 방법을 사용하여 제1 움직임 후보 리스트가 구성된다. 동작 2655에서, 상기 제1 비디오 블록과 상기 제1 비디오 블록을 포함하는 상기 비디오의 비트스트림 표현간의 변환이 상기 구성된 제1 움직임 후보 리스트에 따라 수행된다.
방법 2600D에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트는 화면 내 블록 복사(intra block copy: IBC) 리스트이다. 방법 2600D에 대한 일부 실시예들에서, 동일한 참조 픽처는 현재 픽처 혹은 현재 타일 혹은 현재 슬라이스이며, 상기 제1 비디오 블록은 상기 현재 픽처, 상기 현재 타일, 상기 현재 슬라이스에 속한다. 방법 2600D에 대한 일부 실시예들에서, 상기 움직임 후보들 각각은 단일 예측 후보이다. 방법 2600D에 대한 일부 실시예들에서, 상기 움직임 후보들은 단일 예측 후보 및 양 예측 후보를 포함하되, 상기 단일 예측 후보 및 상기 양 예측 후보는 두 참조 픽처 리스트 모두에 대해 상기 동일한 참조 픽처를 사용한다.
방법 2600D에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트는 공간적 블록들로부터의 움직임 정보를 갖는 움직임 후보를 포함한다. 방법 2600D에 대한 일부 실시예들에서, 상기 공간적 블록들은 상기 제1 비디오 블록에 인접하거나 인접하지 않다(non-adjacent). 방법 2600D에 대한 일부 실시예들에서, 상기 움직임 후보들은 히스토리 기반 움직임 벡터 예측(history-based motion vector prediction: HMVP) 후보를 포함한다. 방법 2600D에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트는 기 정의되거나 계산된 움직임 벡터들을 갖는 적어도 하나의 기본(default) 움직임 후보를 포함한다. 방법 2600D에 대한 일부 실시예들에서, 상기 기 정의되거나 계산된 움직임 벡터들은 (1) 상기 제1 비디오 블록의 위치 (2) 화면 내 블록 복사(Intra block copy: IBC)의 허용된 탐색 범위, 및 (3) 움직임 보상된 블록에서 최대로 허용된 유닛 크기 중 하나 이상에 기반한다.
방법 2600D에 대한 일부 실시예들에서, 상기 움직임 보상된 블록에서 상기 최대로 허용된 유닛 크기는 64x64 픽셀이다. 방법 2600D에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트의 리스트 크기는 상기 제1 움직임 후보 리스트에서 허용된 움직임 후보들의 기 정의된 최대 수이다. 방법 2600D에 대한 일부 실시예들에서, 상기 리스트의 크기는 5 혹은 6이다. 방법 2600D에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트 구성 방법을 사용하는 상기 제1 움직임 후보 리스트의 제1 리스트 크기 혹은 제2 움직임 후보 리스트 구성 방법을 사용하는 적어도 하나 이상의 움직임 후보 리스트의 제2 리스트 크기가 개별적으로(별도로) 시그널링된다.
방법 2600D에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트 구성 방법을 사용하는 상기 제1 움직임 후보 리스트의 제1 리스트 크기 혹은 제2 움직임 후보 리스트 구성 방법을 사용하는 적어도 하나 이상의 움직임 후보 리스트의 제2 리스트 크기는 한 회 시그널링되고, 상기 제1움직임 후보 리스트와 상기 적어도 하나 이상의 움직임 후보 리스트를 포함하는 다중 유형의 움직임 후보 리스트들에 적용된다. 방법 2600D에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트 구성 방법을 사용하는 상기 제1 움직임 후보 리스트의 제1 리스트 크기 혹은 제2 움직임 후보 리스트 구성 방법을 사용하는 적어도 하나 이상의 움직임 후보 리스트의 제2 리스트 크기는 시퀀스 파라미터 세트 (sequence parameter set: SPS), 픽처 파라미터 세트 (a picture parameter set: PPS), 슬라이스 헤더(slice header), 타일 그룹 헤더(tile group header), 타일(tile), 코딩 트리 유닛(coding tree unit), 코딩 유닛(coding unit) 혹은 예측 유닛(prediction unit)을 사용하여 시그널링된다.
방법 2600D에 대한 일부 실시예들에서, 상기 적어도 하나 이상의 움직임 후보 리스트는 공간적 인접 블록으로부터만 유도된 움직임 후보들이 제외된 시간적 후보 리스트 혹은 시간적 인접 블록으로부터만 유도된 움직임 후보들이 제외된 공간적 후보 리스트 혹은 시간적 혹은 공간적 인접 블록으로부터만 유도된 움직임 후보가 제외되고, 히스토리 기반 움직임 벡터 예측 (history-based motion vector prediction: HMVP) 후보를 포함하는 HMVP 후보 리스트이다. 방법 2600D에 대한 일부 실시예들에서, 상기 방법은 상기 제1 비디오 블록에 대한 상기 제1 움직임 후보 리스트 구성 방법과 상이한 제2 움직임 후보 리스트 구성 방법을 사용하여 제2 움직임 후보 리스트를 구성하는 단계를 더 포함한다. 방법 2600D에 대한 일부 실시예들에서, 상기 제2 움직임 후보 리스트는 시간적으로 이웃한 블록으로부터만 유도된 움직임 후보들을 제외한 시간적 후보 리스트이거나, 공간적 혹은 시간적으로 이웃한 블록으로부터만 유도된 움직임 후보들을 제외한 HMVP 후보 리스트이다.
방법 2600D에 대한 일부 실시예들에서, 상기 비트스트림 표현은 상기 제1 및 제2 움직임 후보 리스트 구성 방법들을 포함하는 다중 움직임 후보 리스트 구성 방법들에 대응하는 다중 움직임 후보 리스트들의 한 세트 내의 리스트를 식별하는 리스트 색인을 포함한다. 방법 2600D에 대한 일부 실시예들에서, 상기 방법은 모드에 기반하여 다중 움직임 후보 리스트 구성 방법들을 사용하는 다중 움직임 후보 리스트들의 사용 혹은 한 개의 움직임 후보 리스트 구성 방법을 사용하는 단 하나의 움직임 후보 리스트의 사용을 결정하는 단계를 더 포함한다.
방법 2600D에 대한 일부 실시예들에서, 상기 다중 움직임 후보 리스트 구성 방법들을 사용하는 상기 다중 움직임 후보 리스트들의 사용이 비활성화되면, 상기 제1 움직임 후보 리스트에 대한 리스트 색인은 모드에 대해 비활성화되며 시그널링되지 않는다. 방법 2600D에 대한 일부 실시예들에서, 상기 방법은 모드에 기반하여 상기 제1 비디오 블록에 대한 상기 제1 움직임 후보 리스트 구성 방법이 활성화되도록 결정하는 단계를 더 포함한다. 방법 2600D에 대한 일부 실시예들에서, 상기 모드는 머지 모드이다. 방법 2600D에 대한 일부 실시예들에서, 상기 모드는 향상된 움직임 벡터 예측(advanced motion vector prediction: AMVP) 모드이다. 방법 2600D에 대한 일부 실시예들에서, 상기 모드는 삼각 예측 모드(triangular prediction mode: TPM) 이다.
방법 2600D에 대한 일부 실시예들에서, 상기 모드는 블록차원에 관련된다. 방법 2600D에 대한 일부 실시예들에서, 상기 블록 차원은 높이의 곱을 포함하고, 상기 제1 비디오 블록의 너비는 임계값보다 크거나 같다. 방법 2600D에 대한 일부 실시예들에서, 상기 임계값은 64이다. 방법 2600D에 대한 일부 실시예들에서, 상기 제1 비디오 블록의 높이가 제1 임계값보다 크거나 같고, 상기 제1 비디오 블록의 너비가 제2 임계값보다 크거나 같다. 방법 2600D에 대한 일부 실시예들에서, 상기 제1 임계값은 16이고, 상기 제2 임계값도 16이다.
방법 2600D에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트는 상기 모드로 코딩된 비디오 블록들에 대한 단일 움직임 후보 리스트를 포함한다. 방법 2600D에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트는 상기 모드로 코딩되지 않은 비디오 블록들에 대한 단일 움직임 후보 리스트를 포함한다. 방법 2600D에 대한 일부 실시예들에서, 상기 변환을 수행하는 단계는 상기 비트스트림 표현으로부터 상기 제1 비디오 블록의 픽셀 값들을 생성하는 단계를 포함한다. 방법 2600D에 대한 일부 실시예들에서, 상기 변환을 수행하는 단계는 상기 제1 비디오 블록의 픽셀 값들로부터 상기 비트스트림 표현을 생성하는 단계를 포함한다.
도 26e는 비디오 프로세싱을 위한 예시적인 방법(2600e)의 제5 흐름도를 보여준다. 동작 2660에서, 비디오의 제1 비디오 블록에 대해 히스토리 기반 움직임 벡터 예측(history-based motion vector prediction: HMVP) 후보들과 오직 연관된 움직임 후보들을 포함하는 제1 움직임 후보 리스트 구성 방법을 사용하여 제1 움직임 후보 리스트가 구성된다. 동작 2665에서, 상기 제1 비디오 블록과 상기 제1 비디오 블록을 포함하는 상기 비디오의 비트스트림 표현 간의 변환이 상기 구성된 제1 움직임 후보 리스트에 따라 수행된다.
방법 2600E에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트는 기본(default) 움직임 벡터 후보를 포함한다. 방법 2600E에 대한 일부 실시예들에서, 상기 기본 움직임 벡터 후보는 영(zero) 움직임 벡터 후보를 포함한다. 방법 2600E에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트는 기존 HMVP 후보들로부터 유도된 후보들을 포함한다. 방법 2600E에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트의 리스트 크기는 상기 제1 움직임 후보 리스트에서 허용된 움직임 후보들의 기 정의된 최대 수이다. 방법 2600E에 대한 일부 실시예들에서, 상기 리스트 크기는 5 혹은 6이다. 방법 2600E에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트 구성 방법을 사용하는 상기 제1 움직임 후보 리스트의 제1 리스트 크기 혹은 제2 움직임 후보 리스트 구성 방법을 사용하는 적어도 하나 이상의 움직임 후보 리스트의 제2 리스트 크기는 개별적으로 시그널링된다.
방법 2600E에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트 구성 방법을 사용하는 상기 제1 움직임 후보 리스트의 제1 리스트 크기 혹은 제2 움직임 후보 리스트 구성 방법을 사용하는 적어도 하나 이상의 움직임 후보 리스트의 제2 리스트 크기는 한 회 시그널링되고, 상기 제1움직임 후보 리스트와 상기 적어도 하나 이상의 움직임 후보 리스트를 포함하는 다중 유형의 움직임 후보 리스트들에 적용된다. 방법 2600E에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트 구성 방법을 사용하는 상기 제1 움직임 후보 리스트의 제1 리스트 크기 혹은 제2 움직임 후보 리스트 구성 방법을 사용하는 적어도 하나 이상의 움직임 후보 리스트의 제2 리스트 크기는 시퀀스 파라미터 세트 (sequence parameter set: SPS), 픽처 파라미터 세트 (a picture parameter set: PPS), 슬라이스 헤더(slice header), 타일 그룹 헤더(tile group header), 타일(tile), 코딩 트리 유닛(coding tree unit), 코딩 유닛(coding unit) 혹은 예측 유닛(prediction unit)을 사용하여 시그널링된다.
방법 2600E에 대한 일부 실시예들에서, 상기 적어도 하나 이상의 움직임 후보 리스트는 공간적 인접 블록으로부터만 유도된 움직임 후보들이 제외된 시간적 후보 리스트 혹은 시간적 인접 블록으로부터만 유도된 움직임 후보들이 제외된 공간적 후보 리스트 혹은 시간적 혹은 공간적 인접 블록으로부터만 유도된 움직임 후보를 제외하고, 히스토리 기반 움직임 벡터 예측 (history-based motion vector prediction: HMVP) 후보를 포함하는 HMVP 후보 리스트이다. 방법 2600E에 대한 일부 실시예들에서, 상기 방법은 상기 제1 비디오 블록에 대한 상기 제1 움직임 후보 리스트 구성 방법과 상이한 제2 움직임 후보 리스트 구성 방법을 사용하여 제2 움직임 후보 리스트를 구성하는 단계를 더 포함한다.
방법 2600E에 대한 일부 실시예들에서, 상기 제2 움직임 후보 리스트는 공간적 인접 블록으로부터만 유도된 움직임 후보들이 제외된 시간적 후보 리스트이거나 공간적 혹은 시간적 인접 블록으로부터만 유도된 움직임 후보들이 제외된 HMVP 후보 리스트이다. 방법 2600E에 대한 일부 실시예들에서, 상기 비트스트림 표현은 상기 제1 및 제2 움직임 후보 리스트 구성 방법들을 포함하는 다중 움직임 후보 리스트 구성 방법들에 대응되는 다중 움직임 후보 리스트들의 한 세트 내의 리스트를 식별하는 리스트 색인을 포함한다. 방법 2600E에 대한 일부 실시예들에서, 상기 방법은, 모드에 기반하여, 다중 움직임 후보 리스트 구성 방법들을 사용하는 다중 움직임 후보 리스트들의 사용 혹은 한 움직임 후보 리스트 구성 방법을 사용하는 단 하나의 움직임 후보 리스트의 사용을 결정하는 단계를 더 포함한다. 방법 2600E에 대한 일부 실시예들에서, 다중 움직임 후보 리스트 구성 방법들을 사용하는 다중 움직임 후보 리스트들의 사용이 비활성화된 경우, 상기 제1 움직임 후보에 대한 리스트 색인이 모드에 대해 비활성화 되고 시그널링되지 않는다.
방법 2600E에 대한 일부 실시예들에서, 상기 방법은 모드에 기반하여 상기 제1 비디오 블록에 대한 상기 제1 움직임 후보 리스트 구성 방법이 활성화되도록 결정하는 단계를 더 포함한다. 방법 2600E에 대한 일부 실시예들에서, 상기 모드는 머지 모드이다.
방법 2600E에 대한 일부 실시예들에서, 상기 모드는 향상된 움직임 벡터 예측(advanced motion vector prediction: AMVP) 모드이다. 방법 2600E에 대한 일부 실시예들에서, 상기 모드는 삼각 예측 모드(triangular prediction mode: TPM)이다. 방법 2600E에 대한 일부 실시예들에서, 화면 내 블록 복사(intra block copy: IBC) 모드를 기반으로, 상기 제1 비디오 블록에 대한 움직임 벡터를 생성하되, IBC 모드는 현재 픽처, 혹은 현재 타일, 혹은 상기 제1 비디오 블록을 포함하는 현재 슬라이스를 참조 픽처로 사용한다. 방법 2600E에 대한 일부 실시예들에서, 상기 모드는 블록 차원에 관련된다. 방법 2600E에 대한 일부 실시예들에서, 상기 블록 차원은 높이의 곱을 포함하고, 상기 제1 비디오 블록의 너비는 임계값보다 크거나 같다. 방법 2600E에 대한 일부 실시예들에서, 상기 블록 차원은 높이의 곱을 포함하고, 상기 제1 비디오 블록의 너비는 임계값보다 작다. 방법 2600E에 대한 일부 실시예들에서, 상기 임계값은 16 혹은 64이다.
방법 2600E에 대한 일부 실시예들에서, 상기 제1 비디오 블록의 높이는 제1 임계값보다 크거나 같고, 상기 제1 비디오 블록의 너비는 제2 임계값보다 크거나 같다. 방법 2600E에 대한 일부 실시예들에서, 상기 제1 임계값은 16이고, 상기 제2 임계값은 16이다. 방법 2600E에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트는 상기 모드로 코딩된 비디오 블록들에 대한 단일 움직임 후보 리스트를 포함한다. 방법 2600E에 대한 일부 실시예들에서, 상기 제1 움직임 후보 리스트는 상기 모드로 코딩되지 않은 비디오 블록들에 대한 단일 움직임 후보 리스트를 포함한다. 방법 2600E에 대한 일부 실시예들에서, 상기 변환을 수행하는 단계는 상기 비트스트림 표현으로부터 상기 제1 비디오 블록의 픽셀 값들을 생성하는 단계를 포함한다. 방법 2600E에 대한 일부 실시예들에서, 상기 변환을 수행하는 단계는 상기 비트스트림 표현을 상기 제1 비디오 블록의 픽셀 값들로부터 생성하는 단계를 포함한다.
5 개시된 기술의 예시적 구현들
도 27은 비디오 처리 장치(2700)의 블록도의 일 예이다. 상기 장치(2700)는 여기서 기술된 하나 또는 그 이상의 방법들을 실행하는 데에 사용될 수 있다. 상기 장치(2700)는 스마트폰, 태블릿, 컴퓨터, IoT 수신기 등에서 구현될 수 있다. 상기 장치(2700)는 하나 또는 그 이상의 프로세서들(2702), 하나 또는 그 이상의 메모리들(2704) 그리고 비디오 처리 하드웨어(2706)을 포함할 수 있다. 상기 프로세서(들)(2702)은 현재 문서에 기술된 하나 또는 그 이상의 방법들(방법2600 A부터 방법2600E까지를 포함하지만 이에 한정되지 않음)을 실행하기 위해 구성될 수 있다. 상기 메모리(메모리들)(2704)은 여기서 기술된 방법들 및 기술들을 위해 사용되는 데이터 및 코드를 저장하는 데에 사용될 수 있다. 상기 비디오 처리 하드웨어(2706)는 본 문서에 기술된 몇몇 기술들을 하드웨어 회로에서 구현하는 데에 사용될 수 있다.
일부 구현들에서, 비디오 코딩 방법들은 도 27과 관련하여 설명된 하드웨어 플랫폼에서 구현되는 장치를 사용하여 구현될 수 있다.
도 28은 여기서 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 프로세싱 시스템(2800)을 보여주는 블록도이다. 다양한 구현들은 상기 시스템(2800)의 일부 또는 모든 구성품들을 포함할 수 있다. 상기 시스템(2800)은 비디오 콘텐츠를 수신하기 위한 입력(2802)을 포함할 수 있다. 상기 비디오 콘텐츠는 가공되지 않거나 압축되지 않은 포맷, 예를 들어, 8 또는 10 비트 다중 성분 픽셀 값들로 수신되거나 압축되거나 인코딩된 포맷으로 수신될 수 있다. 상기 입력(2802)은 네트워크 인터페이스, 주변 버스 인터페이스, 또는 저장 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예들은 이더넷, 수동 광학 네트워크(Passive Optical Network: PON) 등과 같은 유선 인터페이스들 및 와이파이 또는 셀룰러 인터페이스와 같은 무선 인터페이스들을 포함한다.
상기 시스템(2800)은 현재 문서에서 기술되는 다양한 코딩 또는 인코딩 방법들을 구현할 수 있는 코딩 구성요소(2804)을 포함할 수 있다. 상기 코딩 구성요소(2804)는 상기 코딩 구성요소(2804)의 상기 입력(2802)로부터 상기 출력까지의 비디오의 평균 비트율을 줄여 상기 비디오의 코딩된 표현을 산출할 수 있다. 따라서 코딩 기술들은 종종 비디오 압축 또는 비디오 트랜스코딩 기술들이라 불린다. 상기 코딩 구성요소(2804)의 출력은, 상기 구성요소(2806)에 의해 나타난 대로, 저장 또는 연결된 통신을 통해 송신될 수 있다. 상기 입력(2802)에서 수신된 상기 비디오의 상기 저장 또는 통신된 비트스트림(또는 코딩된) 표현은 디스플레이 인터페이스(2810)에 보내지는 디스플레이 가능한 비디오 또는 픽셀 값들을 생성하기 위해 상기 구성요소(2808)에 의해 사용될 수 있다. 사용자가 볼 수 있는 비디오를 상기 비트스트림 표현으로부터 생성시키는 절차는 종종 비디오 압축해제라 불린다. 더 나아가서, 특정 비디오 처리 작업들이 "코딩" 작업 또는 도구로 불리는 관계로, 상기 코딩 도구 또는 작업들이 인코더에서 사용되고 상응하는 디코딩 도구 또는 작업들은 코딩의 결과를 반전시키는 것들로써 디코더에서 실행된다는 것이 이해될 것이다.
주변 버스 인터페이스 또는 디스플레이 인터페이스의 예들은 범용 직렬 버스(Universal Serial Bus: USB) 또는 고화질 멀티미디어 인터페이스(High Definition Multimedia Interface: HDMI) 또는 디스플레이 포트 등을 포함할 수 있다. 저장 인터페이스의 예들은 SATA (serial advanced technology attachment), PCI, IDE 인터페이스 등을 포함한다. 본 문서에 설명된 기술들은 휴대폰, 노트북, 스마트폰, 또는 디지털 데이터 프로세싱 및/또는 비디오 디스플레이를 실행할 수 있는 디바이스들과 같은 다양한 전자 디바이스들에서 구현될 수 있다.
개시된 기술의 일부 구현들은 비디오 프로세싱 도구 혹은 모드를 활성화하는 결정 혹은 결단을 내리는 것을 포함한다. 일 예로서, 비디오 프로세싱 도구 혹은 모드가 활성화되면, 인코더는 비디오 블록의 처리에 도구 또는 모드를 사용할 수 있거나 구현할 수 있지만 도구 또는 모드의 사용에 따라 결과 비트 스트림을 반드시 수정하지는 않을 수 있다. 즉, 비디오의 블록으로부터 비디오의 비트스트림 표현으로의 변환은 위 결정 혹은 결단을 기반으로 비디오 프로세싱 도구 혹은 모드가 활성화되면, 비디오 프로세싱 도구 혹은 모드를 사용할 것이다. 다른 일 예로서, 비디오 프로세싱 도구 혹은 모드가 활성화되면, 디코더는 비트스트림이 비디오 프로세싱 도구 또는 모드를 기반으로 수정되었다는 것을 알고, 비트스트림을 처리할 것이다. 즉, 비디오의 위 결정 혹은 결단을 기반으로 활성화 된 비디오 프로세싱 도구 혹은 모드를 사용하여 비트스트림 표현으로부터 비디오의 블록으로의 변환이 수행된다.
개시된 기술의 일부 실시예들은 비디오 프로세싱 도구 혹은 모드를 비활성화하기 위한 결정 혹은 결단을 포함한다. 일 예로서, 비디오 프로세싱 도구 혹은 모드가 비활성화되면, 인코더는 비디오의 블록을 비디오의 비트스트림 표현으로 변환하는 데 도구나 모드를 사용하지 않게 된다. 다른 일 예로서, 비디오 프로세싱 도구 혹은 모드가 비활성화되면, 디코더는 결정 또는 결단에 기초하여 활성화된 비디오 프로세싱 도구 혹은 모드를 사용하여 비트스트림이 수정되지 않았다는 것을 알고 비트스트림을 처리할 것이다.
상기로부터, 현재 개시된 기술의 구체적인 실시예들은 여기서 설명의 목적을 위해 기재되었으며, 본 발명의 범위에서 벗어나지 않는 한 다양한 수정이 이루어질 수 있다는 점이 이해될 것이다. 따라서, 현재 개시된 기술은 첨부된 청구항들에 의하는 바를 제외하고는 한정되지 않는다.
본 특허 문서에 기재된 주제 및 기능적 작업들의 구현들은 다양한 시스템, 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있으며, 여기에는 본 명세서에서 개시된 구조들 및 구조적 등가물들, 또는 그 중 하나 이상의 조합이 포함될 수 있다. 본 명세서에 기재된 주제의 구현들은 하나 이상의 컴퓨터 프로그램 제품들로, 즉, 유형의, 비-일시적인 컴퓨터 판독 가능한 매체에 코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로서 구현되어, 데이터 처리 장치에 의해 실행하거나, 또는 상기 장치의 작동을 제어할 수 있다. 상기 컴퓨터 판독 가능한 매체는 기계 판독 가능한 저장 디바이스, 기계 판독 가능한 저장 기판, 메모리 디바이스, 기계 판독 가능한 전파 신호를 가져오는 물질의 조성, 또는 이들 중 하나 이상의 조합일 수 있다. 용어 "데이터 프로세싱 유닛" 또는 "데이터 프로세싱 장치"는, 데이터를 처리하기 위한 모든 장치, 디바이스 및 기계를 포괄하며, 예를 들어, 프로그래머블 프로세서, 컴퓨터, 또는 다중 프로세서 또는 컴퓨터들을 포함한다. 상기 장치는, 하드웨어 외에도, 당해 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드를 포함할 수 있고, 코드는 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 시스템, 또는 이들 중 하나 이상의 조합을 구성한다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드로도 알려짐)은 컴파일 또는 인터프리터 언어를 포함하는 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 또는 컴퓨터 환경에서 사용하기에 적합한 그 밖의 유닛을 포함하는 임의의 형태로도 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 상응해야 하는 것은 아니다. 프로그램은 다른 프로그램 또는 데이터를 보유하는 파일의 일부에 저장되거나(예를 들어, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트), 당해 프로그램 전용의 단일 파일에 저장되거나, 또는 다수의 조직화된 파일들(예를 들어, 하나 이상의 모듈, 서브프로그램, 코드의 부분을 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터에서, 또는 한 위치에 배치되거나 또는 다수의 위치에 걸쳐서 분산되고 통신 네트워크에 의해 접속된 다수의 컴퓨터에서 실행되도록 배치될 수 있다.
본 명세서에서 설명된 프로세스와 논리 흐름은 하나 이상의 프로그래머블 프로세서에 의해 수행될 수 있고, 이 프로그래머블 프로세서는 입력 데이터에 작용하여 출력을 생성함으로써 기능을 수행하는 하나 이상의 컴퓨터 프로그램들을 실행한다. 프로세서와 논리 흐름은, 예를 들어, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)과 같은 전용 논리 회로에 의해 수행될 수 있고, 장치 또한 전용 논리 회로로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는, 예를 들어, 범용 및 전용 마이크로프로세서 및 임의 종류의 디지털 컴퓨터의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리(ROM), 또는 랜덤 액세스 메모리(RAM), 또는 양자로부터 명령어들과 데이터를 수신한다. 컴퓨터의 필수 구성요소는 명령을 실행하는 프로세서 및 명령어와 데이터를 저장하는 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어, 자기 디스크, 광자기 디스크, 또는 광디스크를 포함하거나, 또는 이 디바이스와 데이터를 송수신하기 위하여 동작적으로(operatively) 결합될 수 있다. 하지만 컴퓨터는 이러한 디바이스를 구비할 필요는 없다. 컴퓨터 프로그램 명령어들과 데이터를 저장하기 적합한 컴퓨터 판독가능 매체에는, 예를 들어, 반도체 메모리 디바이스(예를 들어, EPROM, EEPROM, 플래시 메모리 디바이스)를 포함하는 모든 형태의 비 휘발성 메모리, 매체 및 메모리 디바이스를 포함된다. 프로세서와 메모리는 전용 논리 회로에 의해 보완되거나 또는 전용 논리 회로에 통합될 수 있다.
도면과 함께 본 명세서는 오직 예시적인 것으로 간주되어야 한다. 본 문서에서 사용된 "또는"은 문맥이 명시적으로 달리 지시하지 않는 한 "및/또는"을 포함하는 것으로 의도되었다.
본 특허문서가 다수의 특정한 구현 세부사항을 포함하고 있지만, 이는 임의 발명의 범위나 청구할 사항의 범위에 대한 어떠한 제한으로도 이해되어서는 안 되며, 특정한 발명들의 특정한 실시예들에 고유할 수 있는 특징의 설명으로서 이해되어야 한다. 별개의 실시예들의 맥락에서 본 특허 문서에서 설명된 소정의 특징들은 조합되어 단일 실시예로 구현될 수도 있다. 반대로, 단일 실시예의 맥락에서 설명한 다양한 특징들은 복수의 실시예에서 별개로 구현되거나 어떤 적당한 하위 조합으로도 구현 가능하다. 또한, 앞에서 특징들이 특정 조합에서 동작하는 것으로서 설명되고 그와 같이 청구되기까지 하였지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우에 해당 조합으로부터 삭제될 수 있으며, 청구된 조합은 하위 조합이나 하위 조합의 변형으로 될 수 있다.
마찬가지로, 동작들이 도면들에서 특정한 순서로 묘사되고 있지만, 이는 그러한 동작들이 바람직한 결과를 얻기 위해, 도시한 특정 순서나 순차적인 순서로 수행되어야 한다거나, 도시된 모든 동작들이 수행되어야 한다는 것을 의미하지 않는다. 더욱이, 본 특허 문서에 기재된 실시예에 있어서 다양한 시스템 구성요소들의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안 된다.
단지 몇 가지 구현들 및 예시들이 기술되었으며, 기타 구현, 개선 및 변형은 본 특허 문서에 기술되고 도시된 것에 기초하여 이루어질 수 있다.
단지 몇 가지 구현들 및 예시들이 기술되었으며, 기타 구현, 개선 및 변형은 본 특허 문서에 기술되고 도시된 것에 기초하여 이루어질 수 있다.

Claims (19)

  1. 비디오 데이터 프로세싱 방법에 있어서,
    비디오의 현재 블록과 상기 비디오의 비트스트림 간의 변환을 위해, 상기 현재 블록의 차원에 기반하여 시간적 블록으로부터의 움직임 후보를 제외하는 제1 움직임 후보 리스트를 구성하는 단계; 및
    상기 제1 움직임 후보 리스트에 기반하여 상기 변환을 수행하는 단계를 포함하는, 비디오 데이터 프로세싱 방법.
  2. 제1 항에 있어서,
    상기 제1 움직임 후보 리스트는 공간적 블록으로부터의 움직임 후보에 더 기반하여 구성되는, 비디오 데이터 프로세싱 방법.
  3. 제2 항에 있어서,
    상기 제1 움직임 후보 리스트내 움직임 후보의 개수가 기정의된 허용된 값에 미치지 못하는 경우, 상기 제1 움직임 후보 리스트는 히스토리 기반 움직임 벡터 예측 (HMVP) 후보에 더 기반하여 구성되고, 상기 제1 움직임 후보 리스트내 상기 움직임 후보의 개수는 업데이트되는, 비디오 데이터 프로세싱 방법.
  4. 제3 항에 있어서,
    상기 제1 움직임 후보 리스트내 상기 업데이트된 움직임 후보의 개수가 상기 제1 움직임 후보 리스트의 리스트 크기에 미치지 못하는 경우, 상기 제1 움직임 후보 리스트는 상기 HMVP 후보 및 상기 공간적 블록 으로부터의 움직임 후보에 기반하여 유도된 가상 후보(virtual candidate)에 더 기반하여 구성되고, 상기 가상 후보는 움직임 평균화 과정(motion averaging operation)에 기반하여 유도되는, 비디오 데이터 프로세싱 방법.
  5. 제1 항 내지 제4 항 중 어느 한 항에 있어서,
    상기 제1 움직임 후보 리스트의 리스트 크기가 기정의되는, 비디오 데이터 프로세싱 방법.
  6. 제1 항 내지 제5 항 중 어느 한 항에 있어서,
    상기 제1 움직임 후보 리스트의 리스트 크기가 시퀀스 파라미터 세트(SPS)를 이용하여 포함되는, 비디오 데이터 프로세싱 방법.
  7. 제1 항 내지 제6 항 중 어느 한 항에 있어서,
    상기 제1 움직임 후보 리스트는 서브 블록 기반 시간적 움직임 벡터 예측 후보를 더 제외하되, 상기 서브 블록 기반 시간적 움직임 벡터 예측 후보는 시간적 움직임 오프셋에 기반하여 유도되는 움직임 정보를 포함하는, 비디오 데이터 프로세싱 방법.
  8. 제1 항 내지 제8 항 중 어느 한 항에 있어서,
    상기 제1 움직임 후보 리스트는, 임계값 이하인 상기 현재 블록의 너비 및 높이의 곱에 기반하여 상기 시간적 블록으로부터의 움직임 후보를 제외하는, 비디오 데이터 프로세싱 방법.
  9. 제1 항에 있어서,
    상기 비디오의 상기 현재 블록은 제1 예측 모드를 이용하되, 상기 제1 예측 모드에서, 상기 현재 블록을 위한 예측 샘플을 유도하기 위해 상기 현재 블록을 포함하는 동일한 비디오 슬라이스의 샘플 값들 만이 이용되어지고,
    상기 방법은
    상기 현재 블록의 차원에 기반하여, 공간적 인접 블록들로부터 유도된 움직임 후보들이 상기 제1 움직임 후보 리스트에서 제외됨을 결정하는 단계; 및
    히스토리 기반 움직임 벡터 예측 (HMVP) 후보를 상기 제1 움직임 후보 리스트에 추가할지 여부를 결정하기 위해 상기 HMVP 후보를 확인하는 단계를 더 포함하는, 비디오 데이터 프로세싱 방법.
  10. 제9 항에 있어서,
    기 정의된 임계값 이하인 상기 현재 블록의 너비 및 높이의 곱에 기반하여, 상기 공간적 인접 블록들로부터 유도된 움직임 후보들이 상기 제1 움직임 후보 리스트에서 제외되는, 비디오 데이터 프로세싱 방법.
  11. 제9 항 또는 제10 항에 있어서,
    상기 제1 움직임 후보 리스트는 기본(default) 움직임 후보를 더 기반으로 하여 구성되는, 비디오 데이터 프로세싱 방법.
  12. 제11 항에 있어서,
    상기 기본 움직임 후보는 영(zero) 움직임 후보를 포함하는, 비디오 데이터 프로세싱 방법.
  13. 제9 항 내지 제12 항 중 어느 한 항에 있어서,
    움직임 탐색 범위에 기반하여 상기 변환을 수행하는 단계를 더 포함하는, 비디오 데이터 프로세싱 방법.
  14. 제13 항에 있어서,
    상기 움직임 탐색 범위는 상기 현재 블록을 포함하는 현재 CTU의 크기와 연관되는, 비디오 데이터 프로세싱 방법.
  15. 제1 항 내지 제14 항 중 어느 한 항에 있어서,
    상기 변환은 상기 현재 블록을 상기 비트스트림으로 인코딩하는 것을 포함하는, 비디오 데이터 프로세싱 방법.
  16. 제1 항 내지 제14 항 중 어느 한 항에 있어서,
    상기 변환은 상기 비트스트림으로부터 상기 현재 블록을 디코딩하는 것을 포함하는, 비디오 데이터 프로세싱 방법.
  17. 프로세서 및 명령을 포함하는 비-일시적 메모리를 포함하는 비디오 데이터 프로세싱 장치에 있어서, 상기 명령은 상기 프로세서에 의해 실행되며 상기 프로세서가,
    비디오의 현재 블록과 상기 비디오의 비트스트림 간의 변환을 위해, 상기 현재 블록의 차원에 기반하여 시간적 블록으로부터의 움직임 후보를 제외하는 제1 움직임 후보 리스트를 구성하게 하고; 및
    상기 제1 움직임 후보 리스트에 기반하여 상기 변환을 수행하게 하는, 비디오 데이터 프로세싱 장치.
  18. 비디오 프로세싱 장치에 의해 수행되는 방법에 의해 생성된 비디오의 비트스트림이 저장된 비-일시적 컴퓨터 판독 가능한 기록 매체에 있어서, 상기 방법은
    비디오의 현재 블록을 위해, 상기 현재 블록의 차원에 기반하여 시간적 블록으로부터의 움직임 후보를 제외하는 제1 움직임 후보 리스트를 구성하는 단계; 및
    상기 제1 움직임 후보 리스트에 기반하여 상기 현재 블록으로부터 상기 비트스트림을 생성하는 단계를 포함하는, 비-일시적 컴퓨터 판독 가능한 기록 매체.
  19. 명령이 저장된 비-일시적 컴퓨터 판독 가능한 저장 매체에 있어서, 상기 명령은 프로세서가,
    비디오의 현재 블록과 상기 비디오의 비트스트림 간의 변환을 위해, 상기 현재 블록의 차원에 기반하여 시간적 블록으로부터의 움직임 후보를 제외하는 제1 움직임 후보 리스트를 구성하게 하고; 및
    상기 제1 움직임 후보 리스트에 기반하여 상기 변환을 수행하게 하는, 비-일시적 컴퓨터 판독 가능한 저장 매체.
KR1020237044979A 2018-11-13 2019-11-13 화면 내 블록 복사를 위한 히스토리 기반 움직임 후보 리스트 구성 KR20240005223A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN2018115176 2018-11-13
CNPCT/CN2018/115176 2018-11-13
PCT/CN2019/117907 WO2020098677A1 (en) 2018-11-13 2019-11-13 History based motion candidate list construction for intra block copy
KR1020217012713A KR20210089153A (ko) 2018-11-13 2019-11-13 화면 내 블록 복사를 위한 히스토리 기반 움직임 후보 리스트 구성

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020217012713A Division KR20210089153A (ko) 2018-11-13 2019-11-13 화면 내 블록 복사를 위한 히스토리 기반 움직임 후보 리스트 구성

Publications (1)

Publication Number Publication Date
KR20240005223A true KR20240005223A (ko) 2024-01-11

Family

ID=70730365

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217012713A KR20210089153A (ko) 2018-11-13 2019-11-13 화면 내 블록 복사를 위한 히스토리 기반 움직임 후보 리스트 구성
KR1020237044979A KR20240005223A (ko) 2018-11-13 2019-11-13 화면 내 블록 복사를 위한 히스토리 기반 움직임 후보 리스트 구성

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020217012713A KR20210089153A (ko) 2018-11-13 2019-11-13 화면 내 블록 복사를 위한 히스토리 기반 움직임 후보 리스트 구성

Country Status (6)

Country Link
US (3) US11128882B2 (ko)
EP (1) EP3861744A4 (ko)
JP (2) JP7231729B2 (ko)
KR (2) KR20210089153A (ko)
CN (5) CN113016183A (ko)
WO (4) WO2020098695A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020098695A1 (en) 2018-11-13 2020-05-22 Beijing Bytedance Network Technology Co., Ltd. Construction method for a single type motion candidate list
AU2019383290B2 (en) 2018-11-20 2023-07-06 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods for merge mode
WO2020103936A1 (en) 2018-11-22 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Pruning method for inter prediction with geometry partition
US11632542B2 (en) * 2019-02-26 2023-04-18 Apple Inc. Method for encoding/decoding video signal, and apparatus therefor
CN117395397A (zh) 2019-06-04 2024-01-12 北京字节跳动网络技术有限公司 使用临近块信息的运动候选列表构建
CN114097228B (zh) 2019-06-04 2023-12-15 北京字节跳动网络技术有限公司 具有几何分割模式编解码的运动候选列表
JP7460661B2 (ja) 2019-06-06 2024-04-02 北京字節跳動網絡技術有限公司 映像符号化のための動き候補リストの構成
WO2020259589A1 (en) * 2019-06-25 2020-12-30 Zhejiang Dahua Technology Co., Ltd. Systems and methods for inter-frame prediction
CN114175636B (zh) 2019-07-14 2024-01-12 北京字节跳动网络技术有限公司 自适应参数集中的自适应环路滤波的指示
WO2021057996A1 (en) 2019-09-28 2021-04-01 Beijing Bytedance Network Technology Co., Ltd. Geometric partitioning mode in video coding
WO2023179783A1 (en) * 2022-03-25 2023-09-28 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing
WO2023237017A1 (en) * 2022-06-07 2023-12-14 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101630688B1 (ko) * 2010-02-17 2016-06-16 삼성전자주식회사 움직임 예측 장치 및 방법과 영상 처리 장치
JP5682582B2 (ja) 2011-03-08 2015-03-11 株式会社Jvcケンウッド 動画像復号装置、動画像復号方法及び動画像復号プログラム、並びに、受信装置、受信方法及び受信プログラム
US9736489B2 (en) * 2011-09-17 2017-08-15 Qualcomm Incorporated Motion vector determination for video coding
US20130114717A1 (en) * 2011-11-07 2013-05-09 Qualcomm Incorporated Generating additional merge candidates
TWI618401B (zh) 2011-12-28 2018-03-11 Jvc Kenwood Corp Motion picture coding device, motion picture coding method and memory medium
US9729873B2 (en) * 2012-01-24 2017-08-08 Qualcomm Incorporated Video coding using parallel motion estimation
JP6422011B2 (ja) 2012-05-11 2018-11-14 サン パテント トラスト 動画像符号化方法、動画像復号化方法、動画像符号化装置および動画像復号化装置
US9491461B2 (en) 2012-09-27 2016-11-08 Qualcomm Incorporated Scalable extensions to HEVC and temporal motion vector prediction
WO2014053086A1 (en) * 2012-10-05 2014-04-10 Mediatek Singapore Pte. Ltd. Method and apparatus of motion vector derivation 3d video coding
CN102946536B (zh) * 2012-10-09 2015-09-30 华为技术有限公司 候选矢量列表构建的方法及装置
US9826244B2 (en) * 2013-01-08 2017-11-21 Qualcomm Incorporated Device and method for scalable coding of video information based on high efficiency video coding
US10616607B2 (en) * 2013-02-25 2020-04-07 Lg Electronics Inc. Method for encoding video of multi-layer structure supporting scalability and method for decoding same and apparatus therefor
JP2015019204A (ja) * 2013-07-10 2015-01-29 ソニー株式会社 画像処理装置および画像処理方法
GB2519514A (en) * 2013-10-11 2015-04-29 Canon Kk Method and apparatus for displacement vector component prediction in video coding and decoding
CN105659602B (zh) * 2013-10-14 2019-10-08 微软技术许可有限责任公司 用于视频和图像编码的帧内块复制预测模式的编码器侧选项
AU2013403224B2 (en) 2013-10-14 2018-10-18 Microsoft Technology Licensing, Llc Features of intra block copy prediction mode for video and image coding and decoding
CN105659604B (zh) * 2013-10-18 2018-12-21 Lg电子株式会社 在多视图视频编译中预测视图合成的方法和用于通过使用其构建合并候选列表的方法
US20150271515A1 (en) * 2014-01-10 2015-09-24 Qualcomm Incorporated Block vector coding for intra block copy in video coding
US11284103B2 (en) * 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
US10187657B2 (en) * 2014-03-14 2019-01-22 Samsung Electronics Co., Ltd. Method and device for configuring merge candidate list for decoding and encoding of interlayer video
US9860559B2 (en) 2014-03-17 2018-01-02 Mediatek Singapore Pte. Ltd. Method of video coding using symmetric intra block copy
EP3158753B1 (en) 2014-06-19 2021-12-08 VID SCALE, Inc. Intra block copy coding with block vector derivation
WO2015195944A1 (en) 2014-06-19 2015-12-23 Vid Scale, Inc. Methods and systems for intra block copy search enhancement
US10412387B2 (en) * 2014-08-22 2019-09-10 Qualcomm Incorporated Unified intra-block copy and inter-prediction
US10027981B2 (en) * 2014-09-01 2018-07-17 Hfi Innovation Inc. Method of intra picture block copy for screen content and video coding
EP3198872A1 (en) 2014-09-26 2017-08-02 VID SCALE, Inc. Intra block copy coding with temporal block vector prediction
US9854237B2 (en) * 2014-10-14 2017-12-26 Qualcomm Incorporated AMVP and merge candidate list derivation for intra BC and inter prediction unification
CN104363451B (zh) * 2014-10-27 2019-01-25 华为技术有限公司 图像预测方法及相关装置
WO2016078511A1 (en) * 2014-11-18 2016-05-26 Mediatek Inc. Method of bi-prediction video coding based on motion vectors from uni-prediction and merge candidate
US11477477B2 (en) * 2015-01-26 2022-10-18 Qualcomm Incorporated Sub-prediction unit based advanced temporal motion vector prediction
KR102131142B1 (ko) 2015-01-29 2020-07-07 브이아이디 스케일, 인크. 인트라-블록 카피 검색
KR102206504B1 (ko) * 2015-04-29 2021-01-22 에이치에프아이 이노베이션 인크. 인트라 블록 복사 참조 리스트 구축을 위한 방법 및 장치
US10178403B2 (en) 2015-06-23 2019-01-08 Qualcomm Incorporated Reference picture list construction in intra block copy mode
EP3357245A4 (en) * 2015-11-05 2019-03-13 MediaTek Inc. METHOD AND DEVICE OF INTERPRESSATION USING AN AVERAGE MOTION VECTOR FOR VIDEO CODING
CN108293131B (zh) * 2015-11-20 2021-08-31 联发科技股份有限公司 基于优先级运动矢量预测子推导的方法及装置
US10194170B2 (en) * 2015-11-20 2019-01-29 Mediatek Inc. Method and apparatus for video coding using filter coefficients determined based on pixel projection phase
US20190028731A1 (en) * 2016-01-07 2019-01-24 Mediatek Inc. Method and apparatus for affine inter prediction for video coding system
US10462457B2 (en) * 2016-01-29 2019-10-29 Google Llc Dynamic reference motion vector coding mode
RU2696551C1 (ru) * 2016-03-15 2019-08-02 МедиаТек Инк. Способ и устройство для кодирования видео с компенсацией аффинного движения
US10560718B2 (en) * 2016-05-13 2020-02-11 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
CN116708782A (zh) * 2016-07-12 2023-09-05 韩国电子通信研究院 图像编码/解码方法以及用于该方法的记录介质
CN116614641A (zh) 2016-07-12 2023-08-18 韩国电子通信研究院 图像编码/解码方法和用于所述方法的记录介质
US10721489B2 (en) * 2016-09-06 2020-07-21 Qualcomm Incorporated Geometry-based priority for the construction of candidate lists
US20200077099A1 (en) * 2016-12-16 2020-03-05 Sharp Kabushiki Kaisha Image decoding device and image coding device
CN116320477A (zh) * 2016-12-22 2023-06-23 株式会社Kt 对视频进行解码或编码的方法和发送视频数据的方法
EP3343925A1 (en) * 2017-01-03 2018-07-04 Thomson Licensing Method and apparatus for encoding and decoding motion information
EP3343924A1 (en) * 2017-01-03 2018-07-04 Thomson Licensing Method and apparatus for encoding and decoding motion information
US20180199057A1 (en) 2017-01-12 2018-07-12 Mediatek Inc. Method and Apparatus of Candidate Skipping for Predictor Refinement in Video Coding
KR20180084663A (ko) * 2017-01-16 2018-07-25 세종대학교산학협력단 영상 신호 부호화/복호화 방법 및 장치
US10602180B2 (en) * 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
EP3451669A1 (en) * 2017-08-29 2019-03-06 Thomson Licensing Methods and apparatus for improved compression/decompression using frame rate up conversion tools
US10735758B2 (en) * 2017-12-07 2020-08-04 Tencent America LLC Method and apparatus for video coding
US10931963B2 (en) * 2017-12-07 2021-02-23 Tencent America LLC Method and apparatus for video coding
US11012715B2 (en) 2018-02-08 2021-05-18 Qualcomm Incorporated Intra block copy for video coding
JP7104186B2 (ja) 2018-06-05 2022-07-20 北京字節跳動網絡技術有限公司 Ibcとatmvpとの間でのインタラクション
US20200021836A1 (en) 2018-07-10 2020-01-16 Tencent America LLC Method and apparatus for ordering and selection of affine merge candidates in motion compensation
US11336914B2 (en) * 2018-08-16 2022-05-17 Qualcomm Incorporated History-based candidate list with classification
CN118055249A (zh) * 2018-09-22 2024-05-17 Lg 电子株式会社 使用间预测处理视频信号的方法和装置
WO2020098695A1 (en) 2018-11-13 2020-05-22 Beijing Bytedance Network Technology Co., Ltd. Construction method for a single type motion candidate list

Also Published As

Publication number Publication date
CN112997493A (zh) 2021-06-18
CN113261293B (zh) 2023-11-03
CN117880493A (zh) 2024-04-12
CN113261293A (zh) 2021-08-13
JP2022507131A (ja) 2022-01-18
US20210160532A1 (en) 2021-05-27
US11128882B2 (en) 2021-09-21
US20210160529A1 (en) 2021-05-27
CN112997493B (zh) 2024-01-05
WO2020098677A1 (en) 2020-05-22
JP7231729B2 (ja) 2023-03-01
EP3861744A1 (en) 2021-08-11
US20230164347A1 (en) 2023-05-25
JP2023054111A (ja) 2023-04-13
US11563972B2 (en) 2023-01-24
CN113228635A (zh) 2021-08-06
CN113228635B (zh) 2024-01-05
KR20210089153A (ko) 2021-07-15
WO2020098694A1 (en) 2020-05-22
WO2020098695A1 (en) 2020-05-22
JP7478864B2 (ja) 2024-05-07
EP3861744A4 (en) 2021-12-08
WO2020098683A1 (en) 2020-05-22
CN113016183A (zh) 2021-06-22

Similar Documents

Publication Publication Date Title
US11924421B2 (en) Blending method for inter prediction with geometry partition
KR102613889B1 (ko) 적응적 움직임 벡터 해상도를 갖는 움직임 벡터 수정
US11671586B2 (en) Modified history based motion prediction
KR20240005223A (ko) 화면 내 블록 복사를 위한 히스토리 기반 움직임 후보 리스트 구성
KR20210094530A (ko) 화면 내 블록 복사 모드 및 화면 간 예측 도구들 간의 상호작용
KR20240005178A (ko) 적응적 움직임 벡터 해상도를 가지는 어파인 모드에 대한 구문 재사용
CN113906738B (zh) 仿射模式的自适应运动矢量差分辨率
CN112997496A (zh) 仿射预测模式的改进

Legal Events

Date Code Title Description
A107 Divisional application of patent