KR102695787B1 - 화면 내 블록 복사 모드 및 화면 간 예측 도구들 간의 상호작용 - Google Patents

화면 내 블록 복사 모드 및 화면 간 예측 도구들 간의 상호작용 Download PDF

Info

Publication number
KR102695787B1
KR102695787B1 KR1020217014518A KR20217014518A KR102695787B1 KR 102695787 B1 KR102695787 B1 KR 102695787B1 KR 1020217014518 A KR1020217014518 A KR 1020217014518A KR 20217014518 A KR20217014518 A KR 20217014518A KR 102695787 B1 KR102695787 B1 KR 102695787B1
Authority
KR
South Korea
Prior art keywords
block
mode
delete delete
prediction
current video
Prior art date
Application number
KR1020217014518A
Other languages
English (en)
Other versions
KR20210094530A (ko
Inventor
카이 장
리 장
홍빈 리우
유에 왕
Original Assignee
베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드
바이트댄스 아이엔씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드, 바이트댄스 아이엔씨 filed Critical 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드
Publication of KR20210094530A publication Critical patent/KR20210094530A/ko
Application granted granted Critical
Publication of KR102695787B1 publication Critical patent/KR102695787B1/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

본 개시는 화면 내 블록 복사 모드(intra block copy mode)와 화면간 예측 도구들 간의 상호작용에 관한 것이다. 비디오 프로세싱 방법이 제공되며, 이 방법은 IBC 모드가 비디오의 현재 비디오 블록에 적용된다고 결정하는 단계, 여기서 IBC 모드에서 상기 현재 비디오 블록에 의해 사용되는 적어도 하나의 참조 픽처는 상기 현재 비디오 블록이 위치하는 현재 픽처이고, 상기 현재 비디오 블록에 대해 특정 코딩 모드의 비활성화와 관련된 결정을 내리는 단계, 및 상기 현재 비디오 블록과 상기 비트스트림 표현 간의 변환을 수행하는 단계를 포함하되, 상기 특정 코딩 모드는 비디오 블록의 예측을 유도하기 위해 움직임 벡터 및 현재 픽처가 아닌(non-current) 픽처를 사용한다.

Description

화면 내 블록 복사 모드 및 화면 간 예측 도구들 간의 상호작용
관련 출원들에 대한 상호 참조
본 출원은 2018년 11월 29일에 제출된 국제 출원 PCT/CN2018/118167호의 우선권과 혜택을 적시에 주장하기 위해 만들어졌다. PCT/CN2018/118167호 국제 특허 출원의 전체 개시물은 본 출원의 개시의 일부로서 참고로 통합된다.
본 특허 문서는 비디오 코딩 기술들, 디바이스들 및 시스템들에 관한 것이다.
비디오 압축의 진보에도 불구하고 디지털 비디오는 여전히 인터넷 및 기타 디지털 통신 네트워크에서 가장 큰 대역폭 사용을 차지하고 있다. 비디오를 수신하고 표시할 수 있는 연결된 사용자 장치의 수가 증가함에 따라 디지털 비디오 사용에 대한 대역폭 수요는 계속 증가할 것으로 예상된다.
디지털 비디오 코딩, 보다 상세하게는, 비디오 및 이미지 코딩에서 움직임 벡터 유도 및 IBC(intra-block-copy)에 대한 시그널링과 연관된 디바이스들, 시스템들 및 방법들이 설명된다. 설명된 방법들은 기존 비디오 코딩 표준(예를 들어, High Efficiency Video Coding (HEVC)) 및 미래 비디오 코딩 표준들 및 비디오 코덱들 모두에 적용될 수 있다.
대표적인 측면에서, 개시된 기술은 비디오 프로세싱 방법을 제공하는데 사용될 수 있다. 이 방법은 IBC(intra-block-copy) 모드가 비디오의 현재 비디오 블록에 적용된다고 결정하는 단계, 여기서 현재 비디오 블록에 의해 사용되는 적어도 하나의 참조 픽처는 상기 현재 비디오 블록이 위치한 현재 픽처이고 상기 현재 블록에 대한 특정 코딩 모드의 비활성화에 관련한 결정을 내리는 단계; 및 상기 내려진 결정에 기반하여, 상기 현재 비디오 블록과 상기 비트스트림 표현 간의 변환을 수행하는 단계를 포함하되, 상기 특정 코딩 모드는 비디오 블록의 예측을 유도하기 위한 움직임 벡터 및 현재 픽처가 아닌(non-current) 픽처를 사용한다.
다른 대표적인 측면에서, 개시된 기술은 비디오 프로세싱 방법을 제공할 수 있다. 이 방법은 특정 코딩 모드를 이용하여 현재 비디오 블록이 코딩된다고 결정하는 단계, 상기 결정에 기반하여 상기 현재 블록에 대한 IBC(intra-block-copy) 모드의 비활성화와 관련하여 결정을 내리는 단계, 상기 IBC 모드에서, 상기 현재 비디오 블록에 의해 사용된 적어도 하나의 참조 픽처는 상기 현재 블록이 위치한 현재 픽처이고 상기 내려진 결정에 기초하여, 상기 현재 블록 및 상기 비트스트림 표현 간의 변환을 수행하는 단계를 포함하되, 상기 특정 코딩 모드는 상기 현재 블록의 예측을 유도하기 위한 움직임 벡터와 현재 픽처가 아닌(non-current) 픽처를 이용한다.
또다른 대표적인 측면에서, 개시된 기술은 비디오 프로세싱 방법을 제공할 수 있다. 이 방법은 상기 현재 비디오 블록의 어파인 모드를 결정하는 단계, 여기서 상기 현재 비디오 블록이 인접 블록으로부터 어파인 모드를 상속하는지는 참조 리스트에 기초하고, 상기 결정에 기반하여 비디오의 현재 비디오 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다.
또다른 대표적인 측면에서, 개시된 기술은 비디오 프로세싱 방법을 제공할 수 있다. 이 방법은 비디오의 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하되, 상기 변환 동안, IBC(intra-block-copy) 모드와 MMVD(merge with motion vector difference) 모드가 사용되고, 상기 IBC 모드에서, 상기 현재 비디오 블록에 의해 사용되는 적어도 하나의 참조 픽처는 상기 현재 비디오 블록이 위치한 현재 픽처이고, 상기 MMVD모드에서, 비디오 블록의 움직임 벡터가 머지 움직임 후보 리스트에 기반하여 유도되고 적어도 하나의 움직임 벡터 차분에 기반하여 개선된다.
또다른 대표적인 측면에서, 개시된 기술은 비디오 프로세싱 방법을 제공하는 데 사용될 수 있다. 이 방법은 비디오의 현재 비디오 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하되, 상기 변환 동안, IBC(intra-block-copy) 모드 및 화면 간-화면 내 예측 모드를 사용하고, 상기 IBC 모드에서, 상기 현재 비디오 블록에 의해 사용되는 적어도 하나의 참조 픽처는 상기 현재 비디오 블록이 위치하는 현재 픽처이고, 상기 화면 간-화면 내 예측 모드에서 상기 현재 비디오 블록의 예측 신호는 적어도 화면 내 예측 신호와 화면 간 예측 신호에 기반하여 생성된다.
또다른 대표적인 측면에서, 개시된 기술은 비디오 프로세싱 방법을 제공하는 데 사용될 수 있다. 이 방법은 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현 간의 변환 동안 IBC 모드와 상이한 적어도 하나의 코딩 방법의 디코딩된 정보를 결정하는 단계, 여기서 IBC 모드에서 상기 현재 비디오 블록에 의해 사용되는 적어도 하나의 참조 픽처는 상기 현재 비디오 블록이 위치하는 현재 픽처이고, 상기 디코딩된 정보에 기반하여, 상기 현재 비디오 블록의 비트스트림 표현에서 상기 현재 비디오 블록에 대해 IBC 플래그의 시그널링을 제외할 지 여부를 결정하는 단계, 여기서 IBC 플래그는 상기 IBC 모드에 연관되고, 상기 결정에 기반하여 상기 변환을 수행하는 단계를 포함한다.
또다른 대표적인 측면에서, 개시된 기술은 비디오 프로세싱 방법을 제공하는 데 사용될 수 있다. 이 방법은 여기서 현재 비디오 블록은 제1 코딩 구조 트리를 이용하여 코딩된 루마 구성요소 및 상기 제1 코딩 구조 트리와 상이한 제2 코딩 구조 트리를 이용하여 코딩된 크로마 구성요소를 포함하며, 상기 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현 간의 변환 동안, 상기 현재 비디오 블록의 상기 루마 구성요소의 하나 이상의 대응 블록들의 제2 움직임 정보로부터 크로마 블록에 대한 제1 움직임 벡터 정보를 유도하는 단계 및 상기 제1 움직임 벡터 정보와 상기 제2 움직임 벡터를 기반으로 상기 변환을 수행하는 단계를 포함한다.
또다른 대표적인 측면에서, 개시된 기술은 비디오 프로세싱 방법을 제공하는 데 사용될 수 있다. 이 방법은 상기 현재 비디오 블록에 의해 사용되는 적어도 하나의 참조 픽처가 상기 현재 비디오 블록이 위치한 픽처와 동일한 IBC(intra block copy) 모드가 현재 비디오 블록에 대해 적용되는지 여부를 결정하는 단계, 상기 IBC 모드가 상기 현재 비디오 블록에 대해 적용되는지 여부를 시그널링 하는 단계, 상기 현재 비디오 블록에 대해 상기 IBC 모드가 적용된다는 결정에 기반하여 예측 모드들의 그룹에 대한 플래그들을 시그널링하는 것을 제한하는 단계 및 상기 IBC 모드의 적용에 기반하여 상기 현재 비디오 블록에 대한 상기 변환을 수행하는 단계를 포함한다.
또다른 대표적인 측면에서, 개시된 기술은 비디오 프로세싱 방법을 제공하는 데 사용될 수 있다. 이 방법은 상기 현재 비디오 블록에 의해 사용되는 적어도 하나의 참조 픽처가 상기 현재 비디오 블록이 위치한 픽처와 동일한 IBC(intra block copy) 모드가 현재 비디오 블록에 대해 적용되는지 여부를 결정하기 위해 비트스트림을 파싱하는 단계 및 상기 IBC 모드의 적용에 기반하여 상기 현재 비디오 블록에 대한 상기 변환을 수행하는 단계를 포함하되, 예측 모드들의 그룹에 대한 플래그들은 상기 현재 비디오 블록에 대해 상기 CPR이 적용된다는 결정에 기반하여 상기 비트스트림으로부터 배제된다.
또다른 대표적인 측면에서, 개시된 기술은 비디오 프로세싱 방법을 제공하는 데 사용될 수 있다. 이 방법은 현재 비디오 블록의 움직임 정보를 획득하는 프로세스에서, 상기 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현 간의 변환 동안, 상기 현재 비디오 블록의 상기 움직임 정보는 상기 현재 비디오 블록의 적어도 하나의 인접 블록의 적어도 하나의 어파인 모델에 기반하며, 상기 현재 비디오 블록의 인접 블록이 상기 인접 비디오 블록에 의해 사용되는 적어도 하나의 참조 픽처가 상기 인접 블록이 위치한 픽처와 동일한 IBC(intra block copy) 모드를 상기 현재 비디오 블록의 인접 블록이 사용하는지 여부를 결정하는 단계 및 상기 현재 비디오 블록에 대해 상기 IBC 모드를 상기 인접 블록이 사용한다는 결정에 기반하여 상기 인접 블록으로부터 어파인 후보의 유도를 비활성화하는 단계 및 상기 현재 비디오 블록의 상기 움직임 정보에 기반하여 상기 변환을 수행하는 단계를 포함한다.
또다른 대표적인 측면에서, 개시된 기술은 비디오 프로세싱 방법을 제공하는 데 사용될 수 있다. 이 방법은 SbTMVP(subblock-based temporal motion vector prediction) 모드에 기반하여 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현 간의 변환 동안 현재 비디오 블록을 서브 블록들로 분할하는 단계, 상기 현재 비디오 블록의 공간적 인접 블록의 움직임 정보에 기반하여 시간적 벡터를 갖는 움직임 소스 픽처에서 서브 블록에 대한 대응 블록을 식별하는 단계, 상기 대응 블록의 코딩된 모드 정보에 기반하여, 상기 서브 블록의 상기 대응 블록으로부터 상기 서브 블록의 움직임 벡터 및 참조 색인을 생성하는 단계 및 상기 생성된 움직임 벡터와 참조 색인에 기반하여 상기 변환을 수행하는 단계를 포함한다.
또다른 대표적인 측면에서, 개시된 기술은 비디오 프로세싱 방법을 제공하는데 사용될 수 있다. 이 방법은 SbTMVP(subblock-based temporal motion vector prediction) 모드에 기반하여 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현 간의 변환 동안 현재 비디오 블록을 서브 블록들로 분할하는 단계, 상기 현재 비디오 블록의 공간적 인접 블록의 코딩된 모드 정보에 기반하여 시간적 벡터를 갖는 움직임 소스 픽처에서 서브 블록에 대한 대응 블록을 식별하는 단계, 상기 서브 블록의 상기 대응 블록으로부터 상기 서브 블록의 움직임 벡터 및 참조 색인을 생성하는 단계 및 상기 생성된 움직임 벡터와 참조 색인에 기반하여 상기 변환을 수행하는 단계를 포함한다.
또다른 대표적인 측면에서, 상기에서 설명된 방법은 프로세서 실행가능한 코드의 형태로 구현되고 컴퓨터 판독 가능한 프로그램 매체에 저장된다.
또다른 대표적인 측면에서, 상기에서 설명된 방법을 수행하도록 구성되거나 동작할 수 있는 디바이스가 개시된다. 디바이스는 이 방법을 구현하도록 프로그래밍된 프로세서를 포함할 수 있다.
또다른 대표적인 측면에서, 비디오 디코더 장치는 여기서 개시된 방법을 실행할 수 있다.
개시된 기술의 상기 및 다른 양상 및 특징은 도면, 설명 및 청구범위에서 보다 상세히 설명된다.
도 1은 머지 후보 리스트 구성의 예를 보여준다.
도 2는 공간적 후보들의 위치들의 예를 보여준다.
도 3은 공간적 머지 후보들의 중복 검사(redundancy check)를 받는 후보 쌍들의 예를 보여준다.
도 4a 및 4b는 현재 블록의 크기 및 형태에 기반하여 두 번째(제2) 예측 유닛(prediction unit, PU)의 위치의 예들을 보여준다.
도 5는 시간적 머지 후보들에 대한 움직임 벡터 스케일링의 예를 보여준다.
도 6은 시간적 머지 후보들에 대한 후보 위치들의 예를 보여준다.
도 7은 결합된 양 예측 머지 후보의 생성의 예를 보여준다.
도 8은 움직임 벡터 예측 후보들 구성의 예를 보여준다.
도 9는 공간적 움직임 벡터 후보들에 대한 움직임 벡터 스케일링의 예를 보여준다.
도 10은 코딩 유닛(coding unit, CU)에 대한 ATMVP(alternative temporal motion vector prediction, ATMVP) 알고리즘을 이용한 움직임 예측의 예를 보여준다.
도 11은 STMVP(spatial-temporal motion vector prediction) 알고리즘에서 사용되는 서브 블록들 및 인접 블록들을 갖는 코딩 유닛(CU)의 예를 보여준다.
도 12는 상이한 MV 정밀도들의 인코딩에 대한 예시적인 순서도를 보여준다.
도 13a 및 13b는 단순화된 7-파라미터 어파인 모델 및 단순화된 6-파라미터 어파인 모델의 예들을 각각 보여준다.
도 14는 서브 블록 당 어파인 움직임 벡터 필드(affine motion vector field, MVF)의 예를 보여준다.
도 15a 및 15b는 4-파라미터 및 6-파라미터 어파인 모델들의 예들을 각각 보여준다.
도 16은 상속된 어파인 후보들에 대한 AF_INTER의 움직임 벡터 예측의 예를 보여준다.
도 17은 구성된 어파인 후보들에 대한 AF_INTER의 움직임 벡터 예측의 예를 보여준다.
도 18a 및 18b는 AF_MERGE 어파인 움직임 모드에 대한 예시적인 후보들을 보여준다.
도 19는 어파인 머지 모드에 대한 후보 위치들의 예를 보여준다.
도 20은 화면 내 픽처(intra-picture block copy) 블록 복사의 예를 보여준다.
도 21은 동일 위치(collocated) 픽처에서 유효 대응 영역의 예를 보여준다.
도 22는 HMVP(history-based motion vector prediction) 후보들에 대한 코딩 흐름의 예를 보여준다.
도 23은 수정된 머지 리스트 구성 프로세스의 예를 보여준다.
도 24는 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다.
도 25는 다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다.
도 26은 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다.
도 27은 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다.
도 28은 본 문서에 개시된 시각 매체 디코딩 혹은 시각 매체 인코딩 기술을 구현하기 위한 하드웨어 플랫폼의 예시적인 블록도이다.
도 29는 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다.
도 30은 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다.
도 31은 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다.
도 32는 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다.
도 33은 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다.
도 34는 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다.
도 35는 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다.
도 36은 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다.
도 37은 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다.
도 38은 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다.
도 39는 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다.
도 40은 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다.
더 높은 해상도를 가진 비디오에 대한 수요가 계속 증가함에 따라, 비디오 코딩 방법 및 기법들은 현대 기술에서는 흔히 볼 수 있게 되었다. 비디오 코덱은 디지털 비디오를 압축하거나 푸는 소프트웨어 또는 전자 회로를 주로 포함하며 더 높은 코딩 효율을 제공하기 위해 지속적으로 개선되고 있다. 비디오 코덱은 압축되지 않은 비디오를 압축된 포맷으로 또는 그 반대로 변환시킨다. 비디오의 질, 비디오를 표현하는 데에 사용되는 데이터의 양(비트율에 의해 결정), 인코딩 및 디코딩 알고리즘들의 복잡성, 데이터 손실 및 에러에 대한 민감도, 편집 용이성, 랜덤 액세스, 그리고 단대단 지연 사이에는 복잡한 관계가 있다. 압축된 포맷은 대개의 경우 (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으로 분할되는 경우, 위치 은 고려되지 않는다.
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) numRef를 P슬라이스의 경우 리스트 0과 연관된 참조 픽처의 수로 설정하거나 B슬라이스의 경우 두 목록의 최소 참조 픽처 수로 설정한다.
(2) 반복되지 않는(non-repeated) 영 움직임 후보들을 추가한다:
0 부터 numRef-1인 변수 i에 있어서, MV가 (0,0)으로 설정되고, (P 슬라이스의 경우) 리스트 0(list 0)에 대해, (B 슬라이스의 경우) 두 목록에 대해 참조 픽처 색인이 i로 설정된 기본(default) 움직임 후보를 추가한다.
(3) MV가 (0,0)으로 설정되고, (P 슬라이스의 경우) 리스트 0(list 0)의 참조 픽처 색인이 0으로 설정되며, (B 슬라이스의 경우) 두 목록의 참조 픽처 색인들이 0으로 설정된, 반복된 영(zero) 움직임 후보들을 추가한다.
1.2 AMVP(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 JEM(Joint Exploration Model)에서 화면 간 예측 방법들의 예
일부 실시예들에서, 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 서브 CU 기반 움직임 벡터 예측의 예들
쿼드트리와 이진트리(quadtrees plus binary trees, QTBT)를 가지는 JEM에서, 각 CU는 각각의 예측 방향에 대해 움직임 파라미터들의 한 세트까지 가질 수 있다. 일부 실시예들에, 큰 CU를 서브 CU들로 분할하고 상기 큰 CU의 상기 모든 서브 CU들에 대해 움직임 정보를 유도함으로써, 두 개의 서브 CU 레벨 움직임 벡터 예측 방법들이 인코더에서 고려된다. 대안적인 시간적 움직임 벡터 예측(ATMVP) 방법은 각 CU가 동일 위치의 참조 픽처에 있는 현재 CU 보다 작은 복수의 블록들로부터 움직임 정보의 복수의 세트들을 불러오도록 허용한다. 시공간적 움직임 벡터 예측(STMVP) 방법에서, 서브 CU들의 움직임 벡터들은 시간적 움직임 벡터 예측자 및 공간적 주변 움직임 벡터를 사용하여 재귀적으로 유도된다. 일부 실시예들에서, 그리고 서브 CU 움직임 예측에 대해 좀 더 정확한 움직임 필드를 유지하기 위해, 참조 프레임들에 대한 움직임 압축이 비활성화 될 수 있다.
2.1.1 ATMVP(alternative temporal motion vector prediction)의 예들
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 STMVP(spatial-temporal motion vector prediction)의 예들
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(1101) 위에 있는 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)은 컨텍스트 기반 적응적 이항 산술 코딩(Context-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 VVC에서 코딩 블록 구조들의 예들
VVC에서 쿼드트리/이진트리/다중트리(QuadTree/BinaryTree/MulitpleTree, QT/BT/TT) 구조는 픽처를 정사각형 혹은 직사각형 블록들로 분할하기 위해 채택된다. QT/BT/TT외에, 별도의 트리(일명, 듀얼 코딩 트리)는 I 프레임들에 대한 VVC에서 채택될 수 있다. 별도의 트리들을 사용하면, 코딩 블록 구조가 루마 및 크로마 구성요소들에 대해 별도로 시그널링된다.
2.2.2 적응적 움직임 벡터 차분 해상도의 예들
일부 실시예들에서, (PU의 움직임 벡터와 예측된 움직임 벡터 간의) 움직임 벡터 차이들(MVDs)은, use_inter_my_flag가 슬라이스 헤더에서 0과 같을 경우, 1/4 루마 샘플들의 단위로 시그널링된다. JEM에서는 지역적으로 적응적인 움직임 벡터 해상도(locally adaptive motion vector resolution: LAMVR)가 도입된다. JEM에서, MVD는 1/4 루마 샘플들, 정수 루마 샘플들 또는 4 루마 샘플들의 단위로 코딩된다. MVD 해상도는 CU 레벨에서 제어되며, MVD 해상도 플래그들은 적어도 하나의 논-제로(non-zero, 영이 아닌) 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.3 어파인 움직임 보상 예측의 예들
HEVC에서, 오직 병진 움직임 모델만이 움직임 보상 예측(Motion Compensation Prediction: MCP)에 대해 적용된다. 하지만, 카메라 및 대상들은 줌 인/아웃, 회전, 원근적 움직임 및/또는 기타 불규칙 움직임들과 같은 여러 종류의 움직임을 가진다. VVC에서는, 단순화된 어파인 변환 움직임 보상 예측은 4-파라미터 어파인 모델 및 6-파라미터 어파인 모델로 적용된다. 도 13a 및 13b에 도시된 바와 같이, 블록의 어파인 움직임 필드는 각각 두 개의 (변수들 a, b, e, f를 사용하는 4-파라미터 어파인 모델) 혹은 세 개의(변수들 a, b, c, d, e, f를 사용하는 6-파라미터 어파인 모델) 제어 점 움직임 벡터들에 의해 설명된다.
블록의 움직임 벡터 필드(motion vector field, MVF)는 각각 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)에 대해, 대표 지점은 전체 서브 블록에 대한 움직임 벡터를 유도하는 데 활용된다.
도 14는 블록(1400)에 대한 서브 블록 당 어파인 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(list0) 혹은 리스트 1(list1))에 대해, 어파인 AMVP 후보 리스트는 하기의 순서에 따라 세 가지 유형의 어파인 예측자들로 구성된다. 여기서, 각 후보는 현재 블록의 추정된 CPMV들을 포함한다. 인코더측에서 발견된 최적의 CPMV들(예를 들어, 도 17의 )과 추정된 CPMV들에 대한 차분이 시그널링된다. 또한, 추정된 CPMV들이 유도된 어파인 AMVP 후보의 색인이 더 시그널링된다.
1) 상속된 어파인 움직임 예측자들
체크 순서는 HEVC AMVP 리스트 구성에서 공간적 MVP들의 순서와 유사하다. 먼저, 어파인 코딩되고 현재 블록과 동일한 참조 픽처를 갖는 {A1, A0}의 첫 번째(제1) 블록으로부터 좌측의 상속된 어파인 움직임 예측자가 유도된다. 두 번째로, 상단의 상속된 어파인 움직임 예측자는 어파인 코딩되고 현재 블록과 동일한 참조 픽처를 갖는 {B1, B0, B2}의 첫 번째(제1) 블록에서 유도된다. 다섯 블록들 A1, A0, B1, B0, B2가 도 16에 도시되어 있다.
인접 블록이 어파인 모드로 코딩된 것으로 밝혀지면, 인접 블록을 커버하는 코딩 유닛의 CPMV들은 현재 블록의 CPMV들의 예측자들을 유도하는 데 사용된다. 예를 들어, A1이 어파인 모드가 아닌 모드(non-affine mode)로 코딩되고, A0이 4-파라미터 어파인 모드로 코딩되면, 좌측의 상속된 어파인 MV 예측자는 A0으로부터 유도될 것이다. 이 경우, 도 18B에서 로 지시되는 좌측 상단의 CPMV 및 로 지시되는 우측 상단의 CPMV와 같은, A0을 커버하는 CU의 CPMV들은 현재 블록의 좌측 상단 (좌표 (x0, y0)), 우측 상단(좌표 (x1, y1)) 및 우측 하단(좌표 (x2, y2)) 위치들에 대해 로 지시되는 현재 블록의 추정된 CPMV들을 유도하는 데 활용된다.
2) 구성된 어파인 움직임 예측자들
구성된 어파인 움직임 예측자는 도 17에 도시된 바와 같이 동일한 참조 픽처를 갖는 인접 화면 간 코딩된 블록들로부터 유도된 CPMV(control point motion vectors)로 구성된다. 현재 어파인 움직임 모델이 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는 도 15a 및 도 15b에 도시된 바와 같이 이러한 제어 점들에 대해 코딩되어야 한다. 기존 구현에서, MV는 하기와 같이 유도될 수 있다. 예를 들어, 를 예측한다.
여기서, 는 도 18b에 도시된 바와 같이, 좌측 상단 픽셀 (i=0), 우측 상단 픽셀 (i=1), 혹은 좌측 하단 픽셀(i=2)의 각각 예측된 움직임 벡터, 움직임 벡터 차분(차이 혹은 차), 및 움직임 벡터이다. 일부 실시예들에서, 두 움직임 벡터들의 덧셈 (예를 들어, mvA(xA, yA) 및 mvB(xB, yB)) 은 두 구성요소들 각각의 합과 동일하다. 예를 들어, newMV = mvA + mvB는 newMV의 두 구성요소들이 각각 (xA + xB) 및 (yA + yB)로 됨을 암시한다.
2.2.6 AF_MERGE 모드의 예들
AF_MERGE 모드에서 CU가 적용되면, 유효한 인접 복원된 블록들로부터 어파인 모드로 코딩된 첫 번째(제1) 블록이 획득된다. 그리고 후보 블록에 대한 선택 순서는 도 18a에 도시된 바와 같이(순서대로 A, B, C, D, E로 지시됨) 좌측, 상단, 우측 상단, 좌측 하단에서 좌측 상단 순이다. 예를 들어, 인접 좌측 하단 블록이 도 18b에 A0으로 도시된 바와 같이 어파인 모드로 코딩되면, 블록 A를 포함하는 인접하는 CU/PU의 좌측 상단 모서리, 우측 상단 모서리 및 좌측 하단 모서리의 제어점 (Control Point: CP) 움직임 벡터들인 를 가져온다. 현재 CU/PU에서 좌측 상단 모서리/우측 상단/좌측 하단의 움직임 벡터 (6-파라미터 어파인 모델에 대해서만 사용됨)이를 기반으로 계산된다. 현재 블록이 어파인 코딩된 경우, 좌측 상단 모서리에 위치한 서브 블록(예를 들어, VTM에서 4x4 블록)은 mv0을 저장하고, 우측 상단 모서리에 위치한 서브 블록은 mv1을 저장한다. 현재 블록이 6-파라미터 어파인 모델로 코딩되는 경우, 좌측 하단 모서리에 위치한 서브 블록은 mv2를 저장한다. 그렇지 않은 경우, (4-파라미터 어파인 모델로 코딩), LB는 mv2'를 저장한다. 다른 서브 블록들은 MC를 위한 MV들을 저장한다.
현재 CU v0 및 v1의 CPMV가 어파인 움직임 모델에 따라 계산되고, 식 (1) 및 (2)에서 현재 CU의 MVF가 생성될 수 있다. 현재 CU가 AF_MERGE 모드로 코딩되었는지 여부를 식별하기 위해, 어파인 플래그는 어파인 모드에서 코딩된 적어도 하나의 인접 블록이 있는 경우 비트스트림으로 시그널링될 수 있다.
일부 실시예들에서, 어파인 머지 후보 리스트는 다음 단계에 따라 구성될 수 있다.
1) 상속된 어파인 후보들 삽입
상속된 어파인 후보는, 후보의 유효 인접 어파인 코딩된 블록의 어파인 움직임 모델로부터 유도된 후보를 의미한다. 일반적으로, 도 19에 도시된 바와 같이, 후보 위치들에 대한 스캔 순서는 A1, B1, B0, A0 및 B2순이다.
후보가 유도된 이후, 동일 후보가 리스트에 삽입되었는지 여부를 체크하기 위해 풀 프루닝(full pruning) 프로세스가 수행된다. 만약 동일 후보가 존재하면, 유도된 후보는 폐기된다.
2) 구성된 어파인 후보들 삽입
어파인 머지 후보 리스트에서 후보들의 수가 MaxNumAffineCand (여기서 5로 설정됨)보다 작은 경우, 구성된 어파인 후보들은 후보 리스트에 삽입된다. 구성된 어파인 후보는 각 제어점의 인접 움직임 정보를 결합하여 구성된 후보이다.
제어점들에 대한 움직임 정보는 먼저 도 19에 도시된 바와 같이 특정 공간적 이웃들 및 시간적 이웃으로부터 유도된다. 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가 사용된다. 반면에, 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)을 갖는 영 움직임 벡터들이 리스트가 가득 찰 때까지 후보 리스트에 삽입된다.
일부 실시예에서, 서브 블록 머지 후보 리스트에 대해, 4-파라미터 머지 후보는 MV가 (0, 0)으로 설정되고, 예측 방향은 리스트 0에 대한 단일 예측 (P슬라이스의 경우), 양 예측(B 슬라이스의 경우)로 설정된다.
2. 3 IBC(intra-block-copy)의 예들
현재 픽처 참조(current picture reference: CPR)로도 알려진 화면 내 블록 복사 (intra block copy: IBC, 혹은 화면 내 픽처 블록 보상)는 HEVC 스크린 콘텐츠 코딩 확장(screen content coding extensions: SCC)에서 채택되었다. 이러한 도구는, 동일한 픽처 내에서 빈번하게 발생하는 텍스트 및 그래픽이 풍부한 콘텐츠의 반복 패턴의 스크린 콘텐츠 비디오 코딩에 매우 효율적이다. 예측자와 동일하거나 유사한 패턴을 갖는 이전에 복원된 블록을 갖는 것은 예측 에러를 효율적으로 감소시킬 수 있고, 결과적으로 코딩 효율을 향상시킬 수 있다. 화면 내 블록 보상의 예는 도 20에 도시되어 있다.
HEVC SCC에서 CPR의 설계와 유사하게, VVC에서는, IBC 모드의 사용이 시퀀스 및 픽처 레벨 모두에서 시그널링된다. IBC 모드가 시퀀스 파라미터 세트 (sequence parameter set)에서 활성화되는 경우, 픽처 레벨에서 활성화될 수 있다. IBC 모드가 픽처 레벨에서 활성화되는 경우, 현재 복원된 픽처는 참조 픽처로 취급된다. 따라서, IBC 모드 사용을 시그널링하기 위해 기존 VVC 화면 간 모드 위에 블록 레벨에서의 구문 변경이 요구되지 않는다.
CPR의 일부 특징은 다음을 포함한다.
- 정상 화면 간 모드(normal inter mode)로 취급된다. 따라서, 머지 및 스킵 모드들은 IBC 모드에서도 허용된다. 머지 후보 리스트 구성은 통합(unified)되며, IBC 모드 혹은 HEVC 화면간 모드 모두에서 코딩된 인접 위치의 머지 후보들을 포함한다. 선택된 머지 색인에 기초하여, 머지 혹은 스킵 모드 하의 현재 블록은 IBC 모드 코딩된 인접 혹은 참조 픽처들인 다른 픽처들을 갖는 정상 화면 간 모드 코딩된 블록으로 병합될 수 있다.
- 모드에 대한 블록 벡터 예측 및 코딩 방식들은 HEVC 화면간 모드(AMVP 및 MVD 코딩)에서 움직임 벡터 예측 및 코딩에 사용되는 방식을 재사용한다.
- 블록 벡터로도 지칭되는 IBC 모드에서의 움직임 벡터는 정수-픽셀 정밀도로 코딩되나, 보간 및 디블록킹(deblocking) 단계에서 1/4-픽셀 정밀도가 필요하므로, 디코딩된 이후에는 1/16-픽셀 정밀도로 메모리에 저장된다. IBC 모드에서의 움직임 벡터 예측에 사용되면, 저장된 벡터 예측자는 오른쪽으로 4만큼 시프트(shifted)된다.
- 탐색 범위: 현재 CTU 내로 제한된다.
- 어파인 모드/삼각 모드(triangular mode)/GBI/가중 예측(weighted prediction)이 활성화되는 경우 CPR은 허용되지 않는다.
2.3.1 CPR과의 조화
PCT/CN2018/089920에서, 몇 가지 방법들이 CPR(일명 IBC)과 몇 가지 새로운 코딩 도구들을 조화시키기 위해 제안된다.
2.4 VVC에서 머지 리스트 설계의 예들
VVC에서 지원되는 상이한 세 가지 머지 리스트 구성 프로세스가 존재한다.
(1) 서브 블록 머지 후보 리스트: ATMVP 및 어파인 머지 후보들을 포함한다. 한 머지 리스트 구성 프로세스는 어파인 모드들 및 ATMVP 모드에 공유된다. 여기서, ATMVP 및 어파인 머지 후보들은 순서에 따라 추가된다. 서브 블록 머지 리스트 크기는 슬라이스 헤더에서 시그널링되며, 최대 값은 5이다.
(2) 단일 예측 TPM 머지 리스트: 삼각 예측 모드에서, 두 개의 분할들에 대한 하나의 머지 리스트 구성 프로세스는 두 개의 분할들이 각자의 머지 후보 색인을 선택할 수 있더라도 공유된다. 이 머지 리스트를 구성할 때, 공간적 인접 블록들 및 블록의 두 시간적 블록들이 체크된다. 공간적 이웃들과 시간적 블록들로부터 유도된 움직임 정보는 IDF에서 정규(regular) 움직임 후보들로 지칭된다. 이러한 정규 움직임 후보들은 다중 TPM 후보들을 유도하는 데 더 활용된다. 두 개의 분할들이 각자 자체 예측 블록들을 생성하기 위해 서로 다른 움직임 벡터를 사용할 수 있더라도 변환은 전체 블록 레벨에서 수행된다. 일부 실시예에서, 단일 예측 TPM 머지 리스트 크기는 5로 고정된다.
(3) 정규 머지 리스트: 나머지 코딩 블록들에 대해, 하나의 머지 리스트 구성 프로세스가 공유된다. 여기서, 공간적/시간적/HMVP, 페어와이즈(pairwise) 결합된 양 예측 머지 후보들 및 영 움직임 후보들이 순서대로 삽입된다. 정규 머지 리스트 크기는 슬라이스 헤더에서 시그널링되며, 최대 값은 6이다.
서브 블록 머지 후보 리스트
모든 서브 블록 관련 움직임 후보들을 논-서브블록(서브 블록이 아닌) 머지 후보들에 대한 정규 머지 리스트 외에 개별적인(별도의) 머지 리스트에 삽입하는 것이 제안된다.
서브 블록 관련 움직임 후보들은 '서브 블록 머지 후보 리스트'라는 별도의 머지 리스트에 삽입된다.
일 예로서, 서브 블록 머지 후보 리스트는 어파인 머지 후보들, ATMVP 후보 및/혹은 서브 블록 기반 STMVP 후보를 포함한다.
다른 일 예로서, 정상(normal) 머지 리스트의 ATMVP 머지 후보는 어파인 머지 리스트의 첫 번째(제1) 위치로 이동된다. 새로운 리스트(즉, 서브 블록 기반 머지 후보 리스트)의 모든 머지 후보들은 서브 블록 코딩 도구들을 기반으로 한다.
또다른 일 예로서, 정규 머지 후보 리스트 외에 서브 블록 머지 후보 리스트(일명 어파인 머지 후보 리스트)로 알려진 특별한 머지 후보 리스트가 추가된다. 서브 블록 머지 후보 리스트는 다음의 순서에 따라 후보들로 채워진다.
(a) ATMVP 후보 (아마도 사용 가능하거나, 사용 불가능할 수 있음)
(b) 상속된 어파인 후보들
(c) 구성된 어파인 후보들
(d) 영(zero) MV 4-파라미터 어파인 모델로 패딩
다음과 같이 유도된 서브 블록 머지 후보 리스트에서 후보들(ML로 지시됨)의 최대 수는,
(1) ATMVP 사용 플래그 (예를 들어, "sps_sbtmvp_enabled_flag"로 지칭될 수 있는 플래그) 가 켜지고(on)(1과 동일), 그러나 어파인 사용 플래그 (예를 들어, "sps_affine_enabled_flag"로 지칭될 수 있는 플래그)가 꺼진(off)(0과 동일) 경우, ML은 1로 설정된다.
(2) ATMVP 사용 플래그가 꺼지고(off)(0과 동일), 그러나 어파인 사용 플래그가 꺼진(off)(0과 동일) 경우, ML은 0으로 설정된다. 이 경우, 서브 블록 머지 후보 리스트는 사용되지 않는다.
(3) 반면에, (어파인 사용 플래그가 켜지고 (1과 동일), ATMVP 사용 플래그가 켜지거나(on) 혹은 꺼지는(off) 경우), ML은 인코더로부터 디코더로 시그널링된다. 유효 ML 은 이다.
서브 블록 머지 후보 리스트를 구성할 때, ATMVP 후보가 먼저 체크된다. 다음의 조건들 중 어느 하나가 참이면, ATMVP 후보는 생략되고 서브 블록 머지 후보 리스트에 삽입되지 않는다.
(1) ATMVP 사용 플래그가 꺼진다(off).
(2) 모든 TMVP 사용 플래그 (예를 들어, 슬라이스 레벨에서 시그널링되면 플래그가 "slice_temporal_mvp_enabled_flag" 로 지칭될 수 있다)가 꺼진다(off).
(3) 참조 리스트 0에서 참조 색인 0인 참조 픽처는 현재 픽처와 동일하다(이는, CPR).
상기에서 설명된 예에서 ATMVP는 JEM에서보다 더욱 단순하다. ATMVP 머지 후보가 생성되면, 다음 프로세스가 적용된다:
(a) 도 2에 도시된 바와 같이 인접 블록 A1, B1, B0, A0을 순서대로 체크하여 블록 X로 표시된 CPR 코딩되지 않은 첫 번째(제1) 화면 간 코딩된 블록을 찾는다.
(b) TMV=(0,0)로 초기화한다. 블록 X의 MV(Mvn으로 지시됨)가 존재하는 경우, 동일 위치 참조 픽처(슬라이스 헤더에서 시그널링됨)를 참조하고, TMV는MVn과 동일하게 설정된다.
(c) 현재 블록의 중심 점(center point)이 (x0, y0)이라고 가정하면, 동일 위치 픽처(collocated picture)에서 (x0, y0)의 대응 위치를 M=(x0+MV*x, y0+MV*y)로 찾고, M을 커버하는 블록 Z를 찾는다.
(i) Z가 화면 내 코딩되면, ATMVP는 사용 불가능하다.
(ii) Z가 화면 간 코딩되면, 블록 Z의 두 리스트에 대한 MVZ_0 및 MVZ_1는 MVdefault0, MVdefault1 로서 (Reflist 0 색인0) 및 (Reflist 1 색인 1) 로 스케일링되고 저장된다.
(d) 각 8x8 서브 블록에 대해, 그 중심 점이 (x0S, y0S)라고 가정하면, (x0S, y0S)의 해당 위치를 동일 위치 픽처에서 MS=(x0S+MV*x, y0S+MV*y)로 찾고, MS를 커버하는 블록 ZS를 찾는다.
(i) ZS이 화면 내 코딩되는 경우, MVdefault0, MVdefault1이 서브 블록에 할당된다.
(ii) ZS가 화면 간 코딩되면, 블록 ZS의 두 리스트들에 대한 MVZS_0 및 MVZS_1는 (Reflist 0 색인 0) 및 (Reflist 1 색인 0)으로 스케일링되며, 서브 블록에 할당된다.
ATMVP에서의 MV 클리핑 및 마스킹(masking): 동일 위치 픽처에서 M 혹은 MS와 같은 대응 위치를 찾는 경우, 기 정의된 영역 이내로 클리핑된다. CTU 크기는 SxS이고, 현재의 예에서 S=128이다. 동일 위치 CTU의 좌측 상단 위치를 (xCTU, yCTU)라고 가정하면, (xN, yN)에서의 대응 위치 M 혹은 MS는 인 유효 영역 내로 클리핑된다. 도 21은 이러한 유효 영역의 예를 보여준다.
클리핑 외에, (xN, yN)은 xN=xN&MASK, yN=yN&MASK로 마스킹되며, MASK는 인 정수이며, N=3로서 최하위 3 비트는 0으로 설정된다. xN 및 yN은 8의 배수여야 한다("~"는 비트 별 보수 연산자를 의미한다.).
정규 머지 리스트
머지 리스트 설계와 다르게, VVC에서는 HMVP(history-based motion vector prediction) 방법이 이용된다. 일부 실시예들에서, 결합 양 예측 머지 후보들은 페어와이즈(pairwise) 양 예측 머지 후보들로 대체된다.
HMVP
HMVP에서, 이전에 코딩된 움직임 정보가 저장된다. 이전에 코딩된 블록의 움직임 정보는 HMVP 후보로 정의된다. 다중 HMVP 후보들은 HMVP 테이블로 명명된 테이블에 저장되고, 이 테이블은 즉시 인코딩/디코딩 프로세스 동안 유지된다. HMVP 테이블은 새로운 슬라이스에 대한 코딩/디코딩이 시작될 때 비워진다. 화면 간 코딩된 블록이 존재할 때마다, 연관된 움직임 정보는 새로운 HMVP 후보로서 테이블의 마지막 엔트리로 추가된다. 전반적인 코딩 흐름은 도 22에 도시되었다.
HMVP 후보들은 AMVP 및 머지 후보 리스트 구성 프로세스들 둘 다에서 사용될 수 있다. 도 23은 수정된 머지 후보 리스트 구성 프로세스(회색으로 표현됨)를 도시한다. 머지 후보 리스트가 TMVP 후보 삽입 이후에도 가득 차지 않는 경우, HMVP 테이블에 저장된 HMVP 후보들은 머지 후보 리스트를 채우기 위해 활용될 수 있다. 주로 한 블록이 움직임 정보의 관점에서 가장 가까운 인접 블록과 상호연관이 가장 높음을 고려하면, 테이블에 있는 HMVP 후보들은 색인들의 내림차순으로 삽입된다. 테이블의 마지막 엔트리는 리스트에 가장 먼저 추가되고, 첫 번째 엔트리가 마지막에 추가된다. 마찬가지로, 중복 제거는 HMVP 후보들에 적용된다. 가용 머지 후보들의 총 수가 시그널링이 허용된 머지 후보들의 최대 수에 도달하면, 머지 후보 리스트 구성 프로세스는 종료된다.
2.5 GBi(generalized bi-prediction) 개선의 예들
일 예에서 제안된GBi(Generalized Bi-prediction improvement)이 제공된다.
GBi는 일 예로서 제안된다. GBi에 대한 이득-복잡도 트레이드 오프(trade-off)를 개선한 실시예는 양 예측 모드에서 L0 및 L1의 예측자들에 동일하지 않은 가중치들을 적용하는 것을 제안한다. 화면 간 예측 모드에서, 동일한 가중치 쌍 (1/2, 1/2)을 포함한 다중 가중치 쌍들은 RDO(rate-distortion optimization)에 기반하여 평가되고, 선택된 가중치 쌍의 GBi 색인은 디코더에 시그널링된다. 머지 모드에서, GBi 색인은 인접 CU로부터 상속된다. 이 실시예에서, 양 예측 모드에서 예측자 생성인 GBi는 하기 식과 같다.
여기서, PGBi는 GBi의 최종 예측자이다. W0 및 w1는 선택된 GBi 가중치 쌍이고, 리스트 0(L0) 및 리스트 1(L1)의 예측자들에 각각 적용된다. RoundingOffsetGBi 및 shiftNumGBi은 GBi에서 최종 예측자를 정상화(normalized)하는 데 사용된다. 지원된 w1 가중치 세트는 {-1/4, 3/8, 1/2, 5/8, 5/4}이고, 이 다섯 가중치들은 하나의 동일한 가중치 쌍 및 네 개의 동일하지 않는 가중치 쌍들에 대응된다. 예를 들어, w1 및 w0의 합과 같은 혼합 이득(blending gain)은 1.0으로 고정된다. 따라서, 대응되는 w0 가중치 세트는 {5/4, 5/8, 1/2, 3/8, -1/4}이다. 가중치 쌍 선택은 CU레벨에서 이루어진다.
저지연이 아닌(non-low delay) 픽처들에서, 가중치 세트 크기는 5에서 3으로 줄어들게 되고, w1 가중치 세트는 {3/8, 1/2, 5/8}이고 w0 가중치 세트는 {5/8, 1/2, 3/8}이다. 저지연이 아닌 픽처들에 대한 가중치 세트 크기 감소는 GBi 및 여기서의 모든 GBi 테스트에 적용된다.
일 실시예에서, GBi 성능을 더 향상시키기 위해 결합된 솔루션이 제안된다. 구체적으로, 본 실시예에서 기존의 GBi 설계 위에 다음과 같은 수정이 적용된다.
GBi 인코더 버그 수정
GBi 인코딩 시간을 줄이기 위해, 현재 인코더 설계에서는, 인코더는 4/8인 GBi 가중치로부터 추정된 단일 예측 움직임 벡터들을 저장하고, 다른 GBi 가중치들에 대한 단일 예측 탐색에 재사용한다. 이 신속한 인코딩 방법은 병진 움직임 모델 및 어파인 움직임 모델 모두에 적용된다. 일 예로서, 6-파라미터 어파인 모델은 4-파라미터 어파인 모델과 함께 채택된다. 인코더는 GBi 가중치가 4/8일 때 단일 예측 어파인 MV들을 저장하는 경우 4-파라미터 어파인 모델과 6-파라미터 어파인 모델을 구분하지 않는다. 따라서, 4-파라미터 어파인 MV들은 GBi 가중치 4/8로의 인코딩 이후 6-파라미터 어파인 MV들로 덮어쓸 수 있다. 저장된 6-파라미터 어파인 MV들은 다른 GBi 가중치들에 대한 4-파라미터 어파인 ME에 사용될 수 있으며, 혹은 저장된 4-파라미터 어파인 MV들이 6-파라미터 어파인 ME를 위해 사용될 수 있다. 제안된 GBi 인코더 버그 수정은 4-파라미터 및 6-파라미터 어파인 MV 스토리지를 분리하는 것이다. 인코더는 이 어파인 MV들을 GBi 가중치가 4/8일 때 어파인 모델 유형에 기반하여 저장하고, 다른 GBi 가중치들에 대해서는 어파인 모델 유형을 기반으로 대응되는 어파인 MV들을 재사용한다.
GBi에서 CU 크기 제한
이 방법에서, GBi는 작은 CU들에 대해 비활성화된다. 화면 간 예측 모드에서, 양 예측이 사용되고 CU 영역이 128루마 샘플들보다 작은 경우, GBi는 시그널링 없이 비활성화된다.
GBi와 머지모드
머지모드에서, GBi 색인은 시그널링되지 않는다. 대신, 머지 될 인접 블록으로부터 상속된다. TMVP 후보가 선택될 때, GBi는 이 블록에 대해 비활성화된다.
GBi와 어파인 예측
현재 블록이 어파인 예측으로 코딩되면, GBi가 사용될 수 있다. 어파인 화면 간 모드에서, GBi 색인이 시그널링된다. 어파인 머지 모드에서, GBi 색인은 머지 될 인접 블록으로부터 상속된다. 구성된 어파인 모델이 선택되면, GBi는 이 블록에서 비활성화된다.
2.6 IIP(inter-intra prediction) 모드의 예들
화면 간-화면 내 예측 모드에서, 다중 가설 예측은 하나의 화면 내 예측과 하나의 머지 인덱싱된 예측을 결합한다. 이러한 블록은 특별 화면 간 코딩된 블록으로 취급된다. 머지 CU에서, 한 플래그는 참일 때 화면 내 후보 리스트로부터 화면 내 모드를 선택하기 위해 머지 모드에 대해 시그널링된다. 루마 구성요소에 대해, 화면 내 후보 리스트는 DC, planar, 수평(horizontal) 및 수직(vertical) 모드들을 포함한 4 개의 화면 내 예측 모드들로부터 유도되며, 화면 내 후보 리스트의 크기는 블록 형태에 따라 3 혹은 4일 수 있다. CU 너비가 CU 높이의 두 배보다 큰 경우, 수평 모드는 화면 내 모드 리스트에서 제외되고 CU 높이가 CU너비의 두 배보다 큰 경우, 수직 모드가 화면 내 모드 리스트에서 제외된다. 화면 내 모드 색인에 의해 선택된 하나의 화면 내 예측 모드 및 머지 색인에 의해 선택된 하나의 머지 인덱싱된 예측은 가중 평균(weighted average)을 이용하여 결합된다. 크로마 구성요소에 대해, DM은 언제나 다른 시그널링 없이 적용된다.
결합된 예측에 대한 가중치는 다음에서 설명된다. DC 혹은 planar 모드가 선택되거나 CB 너비 혹은 높이가 4보다 작으면, 동일한 가중치가 적용된다. CB 너비 및 높이가 4 이상인 CB들의 경우 수평/수직 모드가 선택되면, 한 CB는 먼저 수직적으로/수평적으로 4 개의 동일한 면적의 영역으로 분할된다. (w_intrai, w_interi)로 지시되는 각 가중치 세트, 여기서 i는 1부터 4이고, (w_intra1, w_inter1) = (6, 2), (w_intra2, w_inter2) = (5, 3), (w_intra3, w_inter3) = (3, 5), 및 (w_intra4, w_inter4) = (2, 6)은 대응되는 영역에 적용될 것이다. (w_intra1, w_inter1)는 참조 샘플들에 가장 근접한 영역에 대한 것이고, (w_intra4, w_inter4)는 참조 샘플들로부터 가장 멀리 떨어진 영역에 대한 것이다. 이후, 두 가중 예측들을 합산하고 3비트만큼 오른쪽 시프트하여 결합된 예측이 계산될 수 있다. 또한, 예측자들의 화면 내 가설에 대한 화면 내 예측 모드는 다음과 같은 인접 CU들의 참조를 위해 저장될 수 있다.
예시적인 세부 설계
1. inter_intra_flag (새로운 하나의 컨텍스트)는 모든 조건들이 만족되면 시그널링 된다.
a. 스킵(skip)이 아닌 머지
b. 어파인이 아닐 것
c. MMVD가 아닐 것
d. W*H<64 및 W != 128 및 H != 128 (즉, 2*8 크로마 화면 내 예측이 있을 수 있음)
2. 화면 간-화면 내 예측은 삼각 예측에 적용될 수 있다.
3. 화면 간-화면 내 예측은Y, Cb 및 Cr에 적용될 수 있다.
4. inter_intra_flag 이 켜지면, 화면 내 예측 모드(the intra-prediction mode, IPM)가 시그널링된다. IPM 는 {DC, Planar, Ver, Hor}중 하나가 된다.
a. 3 MPMs가 연관된다.
b. W>2*H 혹은H>2*W이면, IPM는 3 MPMs 중 하나여야 하고, MPM-flag는 시그널링 되지 않는다. 반대의 경우, MPM-flag는 시그널링 된다. (새로운 하나의 컨텍스트, 왜 동일한 컨텍스트를 화면 내(intra)와 공유하지 않는가?)
i. MPM_flag가 켜지면, 선택된 MPM을 시그널링한다. 0, 10, 11는 세 MPMs를 나타낸다. (바이패스, bypass)
ii. 반대의 경우, {DC, Planar, Ver, Hor}에서 MPM 리스트에 존재하지 않는 하나의 IPM을 찾는다.
c. MPM 리스트 구성(화면 내 MPM 리스트와 상이)
i. LeftIPM=AboveIPM=DC로 설정한다.
ii. 좌측 인접 블록 (A2)이 화면 내 코딩되거나 화면 간-화면 내 코딩된 경우, leftIPM을 좌측 인접 블록의 IPM으로 설정한다.
iii. 상단 인접 블록(B3)이 화면 내 코딩되거나 화면 간-화면 내 코딩된 경우, aboveIPM을 상단 인접 블록의 IPM으로 설정한다.
iv. leftIPM = (leftIPM > DC_IDX)? ((leftIPM DIA_IDX) ? HOR_IDX : VER_IDX) : leftIPM;
v. aboveIPM (aboveIPM > DC_IDX)? ((aboveIPM DIA_IDX) ? HOR_IDX : VER_IDX) : aboveIPM;
(광각(wide-angle) 모드들은 어떤가?)
vi. leftIPM== aboveIPM이면,
1. leftIPM이 DC 혹은 planar가 아닌 경우,
a. MPM[0]=leftIPM, MPM[1]=Planar, MPM[2]=DC
2. 반대의 경우,
a. MPM[0]=DC, MPM[1]=Planar, MPM[2]=Ver
vii. 반대의 경우
1. MPM[0]=leftIPM, MPM[1]= aboveIPM
2. leftIPM 및 aboveIPM이 모두 planar가 아닌 경우,
MPM[2]=Planar
3. 반대의 경우: MPM[2]=( leftIPM+ aboveIPM)<2? Ver: DC
viii. W>2*H 이면,
1. MPM[x]==Hor이면, {DC, Planar, Ver, Hor}에서 ModeX를 찾고 MPM 리스트에서는 찾지 않는다. MPM[x]= ModeX로 설정한다;
ix. H>2*W이면,
1. MPM[x]==Ver이면, F{DC, Planar, Ver, Hor}에서 ModeX를 찾고, MPM 리스트에서는 찾지 않는다. MPM[x]= ModeX로 설정한다.
5. 화면 간-화면 내 예측에 의해 사용되는 IPM이 화면 내 코딩된 블록의 IPM 예측을 위해서는 사용되지 않을 수 있다.
a. 화면 내 코딩된 블록은 화면 간-화면 내 코딩된 블록을 화면 간 코딩된 것으로 처리한다.
6. 인접 샘플 필터링: 화면 내 예측으로,
a. DC/VER/HOR에 대해서는 필터링 하지 않음
b. W*H>32인 경우 Planar에 대한 필터링
c. PDPC이 유지됨
7. 가중 합 방법(Weighting sum method)
a. P(x,y) = Clip((W0(x,y)*P_Intra(x,y)+W1(x,y)*P_Inter(x,y))>>3)
8. 가중 값(Weighting values) (개선되거나 단순화될 수 있음)
a. mode == DC/Planar || W<4 || H<4이면, W0= W1= 4;
b. mode == HOR이면
i. x<W/4인 경우, W0=6, W1=2;
ii.
iii.
iv.
c. mode == VER이면
i.
ii.
iii.
iv.
2.7 UMVE(ultimate motion vector expression)의 예들
일부 실시예들에서, UMVE(ultimate motion vector expression)가 개시된다. UMVE는 제안된 움직임 벡터 표현 방법으로 스킵 혹은 머지 모드들에 사용된다.
UMVE는 VVC에서 정규(regular) 머지 후보 리스트에 포함된 후보들과 동일한 머지 후보들을 재사용한다. 머지 후보들 중에서, 베이스 후보(base candidate)가 선택될 수 있으며, 제안된 움직임 벡터 표현 방법에 의해 더 확장된다.
UMVE는 움직임 벡터 차분(motion vector difference, MVD)을 나타내는 데 시작점(starting point), 움직임 크기(motion magnitude) 및 움직임 방향을 사용하는 새로운 움직임 벡터 차분(MVD) 표현 방법을 제공한다.
제안된 기술은 머지 후보 리스트 그 자체를 이용한다. 그러나 기본(default) 머지 유형(MRG_TYPE_DEFAULT_N)인 후보들만이 UMVE 확장에 고려된다.
베이스 후보 색인은 시작점을 정의한다. 베이스 후보 색인은 다음 리스트의 후보들 가운데 최적의 후보를 지시한다.
베이스 후보의 수가 1이면, 베이스 후보 IDX는 시그널링되지 않는다.
거리 색인은 움직임 크기 정보이다. 거리 색인은 시작점 정보에서 기 정의된 거리를 지시한다. 기 정의된 거리는 다음과 같다.
방향 색인은 시작점에 상대적인 MVD의 방향을 나타낸다. 방향 색인은 하기의 네 방향들을 나타낼 수 있다.
스킵 플래그 혹은 머지 플래그의 송신 직후 UMVE 플래그가 시그널링된다. 스킵 혹은 머지 플래그가 참이면, UMVE 플래그가 파싱된다. UMVE 플래그가 1이면, UMVE 신택스들이 파싱된다. 그러나, 1이 아니면, AFFINE 플래그가 파싱된다. AFFINE 플래그가 1이면, AFFINE 모드이나, 1이 아니면, 스킵/머지 색인이 스킵/머지 모드로 파싱된다.
UMVE 후보로 인한 추가 라인 버퍼는 필요하지 않다. 소프트웨어의 스킵/머지 후보는 베이스 후보로 직접 사용되기 때문이다. 입력 UMVE 색인을 사용하여 움직임 보상 직전에 MV의 보충을 결정한다. 이를 위해 긴 라인 버퍼(long line buffer)를 유지할 필요가 없다.
현재 공통 테스트 조건에서, 머지 후보 리스트에서 첫 번째(제1) 혹은 두 번째(제2) 머지 후보가 베이스 후보로 선택될 수 있다.
UMVE는 MMVD(Merge with MVD)로도 알려져 있다.
3 기존 구현들의 단점들
기존 구현들에서(예를 들어, 현재 VVC 설계), CPR은 다음과 같은 문제점이 있다.
(1) CPR 및 어파인 간의 상호 작용이 여전히 불명확하다. (예를 들어, CPR 코딩된 블록의 경우, 머지 후보들은 서브 블록 머지 리스트 혹은 정규 머지 리스트에 삽입될 수 있다.)
(2) CPR 및 일반화된 양 예측(general bi-prediction) 간의 상호 작용이 여전히 불명확하다. (예를 들어, CPR 코딩된 블록의 경우, 항상 고정된 반-반(half-half) 가중치를 이용하므로, 가중치 색인을 시그널링할 필요가 없다)
(3) CPR 및 MMVD (일명, UMVE) 간의 상호 작용이 여전히 불명확하다.
(4) CPR 및 화면 간-화면 내 예측 간의 상호 작용이 여전히 불명확하다.
(5) ATMVP 및 CPR간의 상호작용.
(6) 듀얼(별도) 코딩 트리로 CPR 을 적용하는 방법이 여전히 불명확하다.
4 CPR에 대한 예시적인 움직임 벡터 유도와 시그널링 방법들
현재 개시된 기술의 실시예는 기존 구현들의 단점들을 극복함으로써 더 높은 코딩 효율로 비디오 코딩을 제공한다. 개시된 기술에 기초하여, 비디오 및 이미지 코딩에서 참조하는 현재 픽처를 위한 움직임 벡터 유도 및 시그널링의 사용은 기존 및 미래의 비디오 코딩 표준 모두를 향상시킬 수 있으며, 다양한 구현들에 대해 설명된 다음의 예들에서 설명된다. 아래에 제공된, 일반적인 개념들을 설명하는 개시된 기술의 예들은 제한하는 것으로 해석되지 않는다. 일 예로서, 명시적으로 반대의 경우를 지시하지 않는 한, 이러한 예들에서 설명된 다양한 특징들은 결합될 수 있다. "블록 혹은 후보가 CPR를 사용한다"는 다음을 의미할 수 있다.
(i) 블록 혹은 후보에 의해 사용되는 모든 참조 픽처들은 CPR임 혹은
(ii) 블록 혹은 후보에 의해 사용되는 적어도 하나의 참조 픽처가 CPR임.
예 1. 어파인 움직임 보상이 사용되는 경우 CPR 사용이 허용되지 않는다.
(a) 일 예로서, 적합성 비트스트림(conformance bit-stream)은 단일 블록에서 동시에 CPR 및 어파인 움직임 보상을 사용할 수 없다.
(b) 일 예로서, 파싱 프로세스에서, 블록 레벨 어파인 활성화/비활성화 플래그는 먼저 시그널링될 수 있다. 한 블록이 어파인 모드로 코딩되면, 현재 블록의 참조 픽처 색인이 현재 픽처가 연관된 색인과 동일한지 여부를 시그널링할 필요가 없다.
(c) 대안적으로, 참조 픽처 색인들은 블록 레벨 어파인 활성화/비활성화 플래그 이전에 시그널링 될 수 있다. 블록이 CPR를 사용하면, 어파인 플래그의 시그널링은 항상 생략된다.
(d) 대안적으로, 참조 픽처 색인들은 블록 레벨 어파인 활성화/비활성화 플래그 이전에 시그널링될 수 있다. 블록이 양 예측으로 코딩되고 오직 하나의 참조 픽처가 현재 참조 픽처이면, 어파인 플래그는 여전히 시그널링될 수 있다.
(i) 또한, 일 예로서, 그러한 블록에 대해서는 정수 움직임 벡터들이 사용되어야 한다.
예 2. 블록은 CPR를 사용하는 인접 블록에서 어파인 모델을 상속할 수 없다.
(a) 일 예로서, CPR를 사용하는 인접 블록은 서브 블록 머지 후보 리스트에서 어파인 머지 후보를 유도하는 데 사용될 수 없다.
(i) 일 예로서, CPR를 사용하는 인접 블록은 서브 블록 머지 후보 리스트 구성 프로세스에서 사용 불가능한 것으로 취급된다.
(b) 일 예로서, CPR를 사용하는 인접 블록은 어파인 AMVP 리스트에서 어파인 AMVP 후보를 유도하는 데 사용될 수 없다.
(i) 일 예로서, CPR를 사용하는 인접 블록은 어파인 AMVP 후보 리스트 구성 프로세스에서 사용 불가능한 것으로 취급된다.
예 3. 블록이 CPR를 사용하거나 사용하지 않는 인접 블록으로부터 어파인 모델을 상속할 수 있는지 여부는 참조 리스트에 따를 수 있다.
(a) 일 예로서, 인접 블록이 양 예측을 적용한다고 가정하면, 참조 리스트 X(X는 0 혹은 1)에서 참조 픽처는 현재 픽처이고 참조 픽처 리스트 (1-X)에서 참조 픽처는 현재 픽처가 아니며, 이후
(i) 참조 리스트 X를 참조하는 인접 블록의 움직임 정보는 서브 블록 머지 후보 리스트에서 어파인 머지 후보를 유도하는 데 사용될 수 없다.
(1) 일 예로서, 참조 리스트(1-X)를 참조하는 인접 블록의 움직임 정보는 서브 블록 머지 후보 리스트에서 어파인 머지 후보를 유도하는 데 사용될 수 있다.
(ii) 참조 리스트 X를 참조하는 인접 블록의 움직임 정보는 어파인 AMVP 리스트에서 어파인 AMVP 후보를 유도하는 데 사용될 수 없다.
(1) 예를 들어, 참조 리스트 X를 참조하는 인접 블록의 움직임 정보는 참조 리스트 X에 대한 어파인 AMVP 리스트에서 어파인 AMVP 후보를 유도하는 데 사용될 수 없다.
(iii) 참조 리스트 (1-X)를 참조하는 인접 블록의 움직임 정보는 어파인 AMVP 리스트에서 어파인 AMVP 후보를 유도하는 데 사용될 수 있다.
(1) 예를 들어, 참조 리스트 (1-X)를 참조하는 인접 블록의 움직임 정보는 참조 리스트 (1-X)에 대한 어파인 AMVP 리스트에서 어파인 AMVP 후보를 유도하는 데 사용될 수 있다.
예 4. CPR은 블록에 GBi가 적용되는(GBi 가중치 값들은 두 참조 픽처들에 대해 동일하지 않다) 경우 사용이 허용되지 않는다.
(a) 예를 들어, 적합성 비트스트림(conformance bit-stream)은 CPR 및 GBi를 단일 블록에서 동시에 사용할 수 없다.
(b) 예를 들어, CPR이 블록에서 사용되면, GBi 가중치 색인은 시그널링되지 않고 0으로 추론된다(가중치 값들은 두 참조 픽처들에 동일하다).
(c) 예를 들어, GBi에서 동일하지 않은(un-equal) 가중치들이 블록에서 적용(GBi 가중치 값들은 두 참조 픽처들에 대해 동일하지 않다)되면, CPR 지시는 시그널링되지 않고 0으로 추론된다(CPR이 사용되지 않는다).
예 5. MMVD가 블록에 적용되는 경우 CPR 사용이 허용되지 않는다.
(a) 일 예로서, 적합성 비트스트림(conformance bit-stream)은 단일 블록에서 동시에 CPR 및 MMVD를 사용할 수 없다.
(b) 일 예로서, CPR이 블록에서 사용되면, MMVD 플래그는 시그널링되지 않고 0으로 추론된다(가중치 값들은 두 참조 픽처들에 대해 동일하다).
(c) 일 예로서, MMVD가 블록에서 사용되면, CPR 지시는 시그널링되지 않고 0으로 추론된다(CPR이 사용되지 않는다).
예 6. MMVD가 블록에 적용되면 CPR 사용이 허용된다.
(a) 일 예로서, 베이스 MV 후보가 현재 픽처를 참조하는 적어도 하나의 참조 픽처들을 갖는 경우,
(i) 일 예로서, MMVD는 현재 픽처를 참조하는 MV를 기반으로 하고, 현재 픽처를 참조하지 않는 MV를 제거(존재 시)한다.
(ii) 일 예로서, MMVD에 의해 시그널링 되는 거리들은 오직 정수일 수 있다.
(iii) 일 예로서, MMVD는 단일 예측된다.
(b) 일 예로서, 베이스 MV 후보는 MV 현재 픽처를 참조하지 않는 적어도 하나의 참조 픽처들을 갖는 경우,
(i) 일 예로서, MMVD는 현재 픽처를 참조하지 않는 MV를 기반으로 하고, 현재 픽처를 참조하는 MV가 존재 시 제거한다.
예 7. CPR은 화면 간-화면 내 예측이 블록에 적용되는 경우 사용이 허용되지 않는다.
(a) 일 예로서, 적합성 비트스트림(conformance bit-stream)은 단일 블록에서 CPR 및 화면 간-화면 내 예측을 동시에 사용할 수 없다.
(b) 일 예로서, CPR이 블록에서 사용되면, 화면 간-화면 내 예측 플래그는 시그널링되지 않으며 0으로 추론 된다.
(c) 일 예로서, 화면 간-화면 내 예측이 블록에서 적용되면, CPR 지시는 시그널링되지 않으며 0으로 추론 된다(CPR은 사용되지 않는다).
예 8. 화면 간-화면 내 예측이 블록에서 적용되는 경우 CPR 사용이 허용된다.
(a) 일 예로서, 화면 간-화면 내 예측을 수행 할 머지 후보에 현재 픽처를 참조하는 참조 픽처가 하나 이상있는 경우
(i) 일 예로서, 화면 간-화면 내 예측은 현재 픽처를 참조하는 MV에 기반하며, 현재 픽처를 참조하지 않는 MV가 존재 시 제거한다.
(ii) 일 예로서, 화면 간-화면 내 예측의 화면 내 예측 부분은 다음과 같이 변경될 수 있다.
(1) 경계 필터링은 수행되지 않는다.
(2) PDPC(Position Dependent Prediction Combination)는 수행되지 않는다.
(3) 오직 다음 특정 모드들 만이 허용된다.
(iii) 일 예로서, 화면 간-화면 내 예측의 화면 간 예측 부분은 단일 예측된다.
(b) 일 예로서, 화면 간-화면 내 예측을 수행 할 머지 후보가 현재 픽처를 참조하지 않는 적어도 하나의 참조 픽처들을 갖는 경우
(i) 일 예로서, 화면 간-화면 내 예측은 현재 픽처를 참조하지 않는 MV를 기반으로 하고, 현재 픽처를 참조하는 MV가 존재 시 제거한다.
예 9. ATMVP 프로세스에서,
(a) 인접 블록이 CPR를 사용하는 경우 인접 블록은 가용하지 않은 것으로 취급된다.
(b) 동일 위치 픽처의 블록이 CPR을 사용하는 경우
(i) ATMVP 프로세스에서는 가용하지 않은 것으로 취급된다.
(ii) 가용한 것으로 취급될 수 있으며 MV'는 현재 블록 혹은 서브 블록에 대한 블록으로부터 유도될 수 있다.
(1) 일 예로서, MV'는 현재 픽처를 참조하며, 동일 위치 픽처의 블록으로부터 복사된다.
예 10. 화면 간, 화면내 모드들(참조 픽처 리스트에서 특정 참조 픽처로 지시되는 것 대신) 외에 CPR이 새로운 모드로 코딩되는 경우, CPR의 시그널링을 제외할 지 여부는 다른 코딩 방법들의 디코딩된 정보에 기반할 수 있다.
(a) 일 예로서, 다른 코딩 방법들은, 예를 들어, 어파인 플래그, 화면 간-화면 내 예측 플래그, 서로 다른 가중치들을 나타내는 GBI 색인, MMVD, ATMVP를 포함한다.
(b) 다른 코딩 방법 중 어느 하나가 한 블록에 적용되는 경우, 이 블록에 대한 CPR 모드의 시그널링은 생략된다.
(c) 대안적으로, 다른 코딩 방법들의 사용의 시그널링을 생략할지 여부는 CPR 모드의 디코딩된 정보에 기반할 수 있다.
예 11. 루마 구성요소 및 크로마 구성요소들이 별도의 코딩 구조 트리들로 코딩되는 경우
(a) 일 예로서, 크로마 구성요소들이 코딩되는 경우, 루마 구성 요소의 대응 블록의 MV 정보(MV는 현재 픽처를 참조할 수 있음)는 MV 예측 혹은 머지 후보로서 사용될 수 있다.
(i) 루마 구성요소의 대응 블록은 현재 크로마 블록에서 어느 위치(예를 들어, 좌측 상단, 우측 상단, 좌측 하단, 우측 하단 혹은 중앙)에 존재할 수 있다.
(1) 색상 포맷이 4:4:4가 아닌 경우, 현재 크로마 블록은 대응 루마 블록을 찾기 위해 스케일링되어야 한다.
(ii) 일 예로서, 현재 크로마 블록에 대한 MV 예측 혹은 머지 후보로서 절단되는 루마 구성요소의 여러 대응블록들로부터 MV 정보가 존재할 수 있다. 그들 중 어느 하나가 선택 되는지는 디코더에 시그널링 되거나 디코더에서 유도될 수 있다.
(b) CPR을 사용하는 크로마 블록의 너비/높이에는 제한이 있을 수 있다.
(i) 일 예로서, CPR을 사용하는 크로마 블록의 너비/높이는 화면 내 코딩된 크로마 블록과 상이하게 제한될 수 있다.
(ii) 일 예로서, 화면 내 코딩된 블록의 경우 너비 >2 && 높이 >2이고, CPR 코딩된 경우 이다.
상기 설명된 예들은 비디오 디코더 또는 인코더에서 구현될 수 있는 방법 2400, 2500, 2600 및 2700과 같은 아래 설명된 방법의 맥락에서 통합될 수 있다.
도 24는 예시적인 비디오 프로세싱 방법의 순서도를 보여준다. 방법 2400은 단계 2410로서 현재 비디오 블록의 코딩 혹은 디코딩 동안 CPR(현재 픽처 참조, current picture referencing)의 가능성을 특정하는 제1 코딩 규칙에 따라 현재 비디오 블록과 현재 비디오 블록의 비트스트림 표현 간의 변환을 수행하되, 제1 코딩 규칙은 (a) 변환 동안 CPR 및 어파인 움직임 보상 동시 사용을 제한하는 것, (b) 변환을 위해 코딩 시 CPR을 사용하는 인접 블록의 어파인 모델 상속을 비활성화하는 것, (c) 변환을 위해 코딩 조건이 맞을 때에만 인접 블록의 어파인 모델을 상속하는 것 혹은 (d) 변환을 위한 CPR 및 GBi(generalized bi-prediction)의 동시 사용을 제한하는 것, 여기서 GBi는 동일하지 않게 가중된 참조 픽처들을 사용하고, 혹은 (e) CPR 및 MMVD(merge with motion vector differences) 모드의 동시 사용을 제한 하는 것, 혹은 (f) CPR 및 MMVD 모드를 동시에 사용 하는 것, 혹은 (g) CPR 및 화면 간-화면 내 예측의 동시 사용을 제한 하는 것, 혹은 (h) CPR 및 화면 간-화면 내 예측을 동시에 사용하는 것 혹은 (i) 대안적인 시간적 움직임 벡터 예측자(alternative temporal motion vector predictor)를 동시에 사용하는 것 중 적어도 하나를 특정한다.
일부 실시예들에서, 예 1의 맥락에서, 정수 정밀도가 코딩 규칙 (a)에 사용된다.
일부 실시예들에서, 예 6의 맥락에서, 코딩 규칙들 (e) 혹은 (f)에 대해 MMVD 모드는 단일 예측을 포함한다.
일부 실시예들에서, 예 8의 맥락에서, 화면 간-화면 내 예측은 코딩 규칙 (g) 및 (h)에 대해 화면 내 예측 부분 및 화면 간 예측 부분을 포함한다. 일 예로서, 화면 내 예측 부분은 경계 필터링(boundary filtering)을 제외한다. 다른 예로서, 화면 내 예측 부분은 위치 기반 예측 조합(position dependent prediction combination)을 제외한다. 또다른 예로서, 화면 내 예측 부분은 MPM(most probable mode) 선택, DC 예측 모드, 수평 예측 모드 혹은 수직 예측 모드를 포함한다. 또 다른 예로서, 화면 간 예측 부분은 단일 예측을 포함한다.
도 25는 또다른 예시적인 비디오 프로세싱 방법의 순서도를 보여준다. 방법 2500은 단계2510로서 현재 비디오 블록의 인접 블록이 현재 픽처 참조 모드를 이용하여 코딩된다고 결정하는 단계를 포함한다.
방법 2500은 단계 2520로서, 결정에 기반하여 머지 후보를 유도하는 단계를 포함한다. 일부 실시예에서, 예 2의 맥락에서, 머지 후보는 인접 블록의 두 번째(제2) 어파인 모델과 상이한 첫 번째(제1) 어파인 모델을 포함한다. 일 예로서, 머지 후보는 어파인 머지 후보를 포함하고, 머지 후보 리스트는 서브 블록 머지 후보 리스트를 포함한다. 또다른 예로서, 머지 후보는 어파인 AMVP 후보를 포함하고, 머지 후보 리스트는 어파인 AMVP 후보 리스트를 포함한다.
일부 실시예들에서, 예 9의 맥락에서, 머지 후보는 대안적인 시간적 움직임 벡터 예측(alternative temporal motion vector prediction, ATMVP) 후보를 포함할 수 있다.
방법 2500은 단계 2530로서 머지 후보를 머지 후보 리스트에 삽입하는 단계를 포함한다.
방법 2500은 단계 2540로서 머지 후보 리스트에 기반하여 현재 비디오 블록을 복원하는 단계를 포함한다.
일부 실시예들에서, 예 3의 맥락에서, 인접 블록은 양 예측을 적용하고, 방법 2500은 제1참조 픽처 리스트 혹은 제2 참조 픽처 리스트에 기반하여 머지 후보의 어파인 모델을 결정하는 단계를 더 포함한다. 일 예로서, 제1 참조 픽처 리스트는 현재 비디오 블록의 현재 픽처를 포함하고 어파인 모델은 제2 참조 픽처 리스트에서 적어도 하나의 픽처를 기반으로 결정된다. 다른 예로서, 머지 후보는 AMVP 후보를 포함하고, 머지 후보 리스트는 어파인 AMVP 후보 리스트를 포함한다.
도 26은 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다. 방법 2600은 단계 2610로서 제1 코딩 모드로 코딩된 현재 비디오 블록의 제1 코딩 모드 및 제1 코딩 모드와 상이한 제2 코딩 모드를 디코딩 함으로써 디코딩된 정보를 생성하는 단계를 포함한다.
방법 2600은 단계 2620로서, 디코딩된 정보에 기반하여, 제1 코딩 모드 혹은 제2 코딩 모드가 현재 비디오 블록의 비트스트림 표현에서 시그널링 되었는지 여부를 결정하는 단계를 포함한다.
방법 2600은 단계 2630로서, 결정에 기반하여 현재 비디오 블록을 복원하는 단계를 포함한다.
일부 실시예들에서, 예 10의 맥락에서, 제1 코딩 모드는 어파인 코딩 모드, 화면 간-화면 내 예측 모드, 동일하지 않은 가중치에 따른 일반화된 양 예측 모드(generalized bi-prediction prediction mode with unequal weights), 움직임 벡터 차분을 갖는 머지 모드(merge with motion vector differences mode) 혹은 대안적인 시간적 움직임 벡터 예측 모드(alternative temporal motion vector prediction mode)를 포함하되, 제2 코딩 모드는 CPR 모드를 포함하고, 비트스트림 표현에는 CPR 모드를 위한 플래그를 제외한다.
일부 실시예들에서, 예 10의 맥락에서, 제1 코딩 모드는 현재 픽처 참조(current picture referencing, CPR) 모드, 제2 코딩 모드는 어파인 코딩 모드, 화면 간-화면 내 예측 모드, 동일하지 않은 가중치를 갖는 일반화된 양 예측(generalized bi-prediction prediction with unequal weights) 모드, 움직임 벡터 차분을 갖는 머지 모드(merge with motion vector differences mode) 혹은 대안적인 시간적 움직임 벡터 예측 모드(alternative temporal motion vector prediction mode)를 포함하되, 비트스트림 표현은 제2 코딩 모드를 위한 플래그를 제외한다.
도 27은 또다른 예시적인 비디오 프로세싱 방법의 순서도를 보여준다. 방법 2700은 단계 2710로서 현재 비디오 블록이 제1 코딩 구조 트리를 이용하여 코딩된 루마 구성요소와 제1 코딩 구조 트리와 상이한 제2 코딩 구조 트리를 이용하여 코딩된 크로마 구성요소를 포함한다고 결정하는 단계를 포함한다.
방법 2700은 단계 2720로서 결정에 기반하여 현재 비디오 블록을 복원하는 단계를 포함한다. 일부 실시예들에서, 예 11의 맥락에서, 위 복원하는 단계는 루마 구성 요소의 하나 이상의 대응 블록들로부터 유도된 움직임 벡터 정보에 기반하여 크로마 구성요소를 디코딩하는 것을 포함한다. 일 예로서, 루마 구성요소의 하나 이상의 대응 블록들은 현재 비디오 블록의 좌측 상단 위치, 우측 상단 위치, 좌측 하단 위치, 우측 하단 위치 혹은 중앙 위치에 존재한다. 또 다른 예로서, 방법 2700은 크로마 구성요소의 색상 포맷이 4:4:4 색상 포맷과 상이하다고 결정될 때, 루마 구성요소의 하나 이상의 대응 블록을 결정하기 위해 현재 비디오 블록을 스케일링하는 단계를 더 포함한다.
일부 실시예들에서, 예 11의 맥락에서, 현재 비디오 블록은 CPR(current picture referencing) 모드를 이용하여 코딩된다. 일 예로서, 현재 비디오 블록의 높이 및 너비에 대한 제1 제한 세트는 현재 비디오 블록과 상이한 화면 내 코딩된 비디오 블록의 높이 및 너비에 대한 제2 제한 세트와 상이하다.
5 개시된 기술의 예시적인 실시예들
도 28은 비디오 프로세싱 장치 2800의 블록도이다. 장치 2800은 여기서 개시된 하나 이상의 방법을 구현하는 데 사용된다. 장치 2800은 스마트폰, 타블렛(tablet), 컴퓨터, IoT(Internet of Things) 수신기 등으로 구현될 수 있다. 장치 2800은 하나 이상의 프로세서 2802, 하나 이상의 메모리 2804 및 비디오 프로세싱 하드웨어 2806을 포함할 수 있다. 프로세서(들) 2802는 하나 이상의 방법들(방법 2400, 2500, 2600, 2700을 포함하나 이에 제한되는 것은 아니다)을 구현할 수 있다. 메모리(메모리들) 2804는 여기에 개시된 방법들 및 기술들을 구현하기 위해 사용되는 데이터 및 코드들을 저장할 수 있다. 비디오 프로세싱 하드웨어 2806는 하드웨어 회로에서 본 문서에서 개시된 일부 기술들을 구현하는 데 사용될 수 있다.
도 29는 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다. 방법 2900는 단계 2910로서, IBC(intra-block-copy) 모드가 비디오의 현재 비디오 블록에 적용된다고 결정하는 단계를 포함하되, 여기서 IBC모드에서, 현재 비디오 블록이 위치한 현재 픽처가 현재 비디오 블록에 의해 사용되는 적어도 하나의 참조 픽처이다. 또한, 단계 2920로서, 현재 블록에 대한 특정 코딩 모드의 비활성화와 연관된 결정을 내리는 단계를 포함한다. 또한, 단계 2930로서, 결정에 기초하여 현재 비디오 블록과 비트스트림 표현 간의 변환을 수행하는 단계를 포함하되, 여기서 특정 코딩 모드는 움직임 벡터와 현재 픽처가 아닌(non-current) 픽처를 비디오 블록의 예측을 유도하기 위해 사용한다.
도 30은 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다. 방법 3000은 단계 3010로서 특정 코딩 모드를 사용하여 코딩된 현재 비디오 블록을 결정하는 단계를 포함하고, 단계 3020로서 결정에 기초하여 현재 비디오 블록에 대한 IBC(intra-block-copy) 모드의 비활성화와 관련하여 결정을 내리는 단계를 포함하되, IBC 모드에서, 현재 비디오 블록에 의해 사용되는 적어도 하나의 참조 픽처는 현재 비디오 블록이 위치한 현재 픽처이다. 또한, 단계 3030로서 결정에 기초하여 현재 블록 및 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다. 여기서 특정 코딩 모드는 움직임 벡터 및 현재 픽처가 아닌(non-current) 픽처를 현재 블록의 예측을 유도하기 위해 사용한다.
도 31은 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다. 방법 3100은 단계 3110로서, 현재 비디오 블록의 어파인 모드를 결정하는 단계를 포함하되, 여기서 현재 비디오 블록이 인접 블록으로부터 어파인 모드를 상속하는지 여부는 참조 리스트에 기초한다. 또한, 단계 3120로서, 위 결정에 기초하여 비디오의 현재 비디오 블록과 일관된 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다.
도 32는 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다. 방법 3200은 단계 3210로서 비디오의 현재 비디오 블록과 비디오 현재 블록의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하되, 변환 동안 IBC(intra-block-copy) 모드 및 MMVD(merge with motion vector difference) 모드가 사용되고, IBC 모드에서는, 현재 비디오 블록에 의해 사용되는 적어도 하나의 참조 픽처는 현재 비디오 블록이 위치한 현재 픽처이고, MMVD모드에서는, 비디오 블록의 움직임 벡터는 머지 움직임 후보 리스트에 기반하여 유도되며, 적어도 하나의 움직임 벡터 차분에 의해 개선된다.
도 33은 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다. 방법 3300은 단계 3310로서 비디오의 현재 비디오 블록과 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하되, 변환동안 IBC(intra-block-copy) 모드 및 화면 간-화면 내 예측 모드가 사용되며, IBC 모드에서, 현재 비디오 블록에 의해 사용되는 적어도 하나의 참조 픽처는 현재 비디오 블록이 위치한 현재 픽처이고, 화면 간-화면 내 예측 모드에서, 현재 비디오 블록의 예측 신호는 적어도 화면 내 예측 신호 및 화면 간 예측 신호에 기반하여 생성된다.
도 34는 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다. 방법 3400은 단계 3410로서 현재 비디오 블록과 현재 비디오 블록의 비트스트림 표현 간의 변환 동안 IBC 모드와 상이한 적어도 하나의 코딩 모드의 디코딩된 정보를 결정하는 단계를 포함하되, IBC 모드에서 현재 비디오 블록에 의해 사용되는 적어도 하나의 참조 픽처는 현재 비디오 블록이 위치한 현재 픽처이다. 또한, 단계 3420로서 디코딩된 정보에 기반하여 현재 비디오 블록의 비트스트림 표현에서 현재 비디오 블록에 대한 IBC 플래그의 시그널링의 제외 여부를 결정하는 단계를 포함하되, IBC 플래그는 IBC 모드와 연관된다. 또한, 단계 3430로서, 결정에 기초하여 변환을 수행하는 단계를 포함한다.
도 35는 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다. 방법 3500은 단계 3510로서 제1 코딩 구조 트리를 이용하여 코딩된 루마 구성요소와 제1 코딩 구조 트리와 상이한 제2 코딩 구조 트리를 이용하여 코딩된 크로마 구성요소를 포함하는 현재 비디오 블록에 있어서, 현재 비디오 블록과 현재 비디오 블록의 비트스트림 표현 간의 변환 동안, 현재 비디오 블록의 루마 구성요소의 하나 이상의 해당 블록들의 제2 움직임 벡터 정보로부터 크로마 블록에 대한 제1 움직임 벡터 정보를 유도하는 단계를 포함하고, 단계 3520로서 제1 움직임 벡터 정보 및 제2 움직임 벡터 정보에 기초하여 변환을 수행하는 단계를 포함한다.
도 36은 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다. 방법 3600은 단계 3610로서 현재 비디오 블록이 사용하는 적어도 하나의 참조 픽처가 현재 비디오 블록이 위치한 픽처와 동일한 IBC(Intra block copy) 모드가 현재 비디오 블록에 대해 적용되는지 여부를 결정하는 단계를 포함하며, 단계 3620로서 현재 비디오 블록에 대해 IBC 모드 적용 여부를 시그널링하는 단계를 포함하고, 단계 3630로서 현재 비디오 블록에 대해 IBC 모드가 적용된다는 결정에 기반하여 예측 모드들의 그룹에 대한 플래그를 시그널링하는 것을 제한하는 단계를 포함하며, 단계 3640로서 IBC 모드의 적용에 기반하여 현재 비디오 블록에 대한 변환을 수행하는 단계를 포함한다.
도 37은 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다. 방법 3700은 단계 3710로서 현재 비디오 블록에서 사용하는 적어도 하나의 참조 픽처가 현재 비디오 블록이 위치한 픽처와 동일한 IBC 모드가 현재 비디오 블록에 적용되는지 여부를 결정하기 위해 비트스트림을 파싱하는 단계를 포함하고, 단계 3720로서 IBC 모드의 적용에 기반하여 현재 비디오 블록에 대한 변환을 수행하는 단계를 포함하되, 여기서 예측 모드들의 그룹에 대한 플래그는 현재 비디오 블록에 대해 CPR이 적용된다는 결정에 기반하여 비트스트림으로부터 제외된다.
도 38은 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다. 방법 3800은 단계 3810로서 현재 비디오 블록의 움직임 정보를 획득하는 프로세스에서, 현재 비디오 블록과 현재 비디오 블록의 비트스트림 표현 간의 변환 동안 현재 비디오 블록의 움직임 정보는 현재 비디오 블록의 적어도 하나의 인접 블록의 적어도 하나의 어파인 모델에 기반하는 것을 포함하며, 단계 3820로서 현재 비디오 블록의 인접 블록이, 인접 비디오 블록에 의해 사용되는 적어도 하나의 참조 픽처와 인접 블록이 위치한 픽처와 동일한 IBC 모드를 사용하는지 여부를 결정하는 단계를 포함하고, 단계 3830로서, 현재 비디오 블록에 대해, 인접 블록이 IBC 모드를 사용한다는 결정에 기반하여 인접 블록으로부터 어파인 후보 유도를 비활성화하는 단계를 포함하며, 단계 3840로서 현재 비디오 블록의 움직임 정보에 기반하여 변환을 수행하는 단계를 포함한다.
도 39는 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다. 방법 3900은 단계 3910로서 SbTMVP(subblock-based temporal motion vector prediction) 모드에 기반한 현재 비디오 블록과 현재 비디오 블록의 비트스트림 간의 변환 동안 현재 비디오 블록을 서브 블록으로 분할하는 단계를 포함하고, 단계 3920로서 현재 비디오 블록의 공간적 인접 블록의 움직임 정보에 기반하여 시간적 벡터를 갖는 움직임 소스 픽처에서 서브 블록에 대한 대응 블록을 식별하는 단계를 포함하며, 단계 3930로서 대응 블록의 코딩된 모드 정보에 기반하여 서브 블록의 대응 블록으로부터 서브 블록의 움직임 벡터 및 참조 색인을 생성하는 단계를 포함하고, 단계 3940로서, 생성된 움직임 벡터 및 참조 색인에 기반하여 변환을 수행하는 단계를 포함한다.
도 40은 또다른 예시적인 비디오 프로세싱 방법의 흐름도를 보여준다. 방법 4000은 단계 4010로서 서브 블록 기반 시간적 움직임 벡터 예측(subblock-based temporal motion vector prediction, SbTMVP) 모드에 기반하여 현재 비디오 블록과 현재 비디오 블록의 비트스트림 표현 간의 변환 동안 현재 비디오 블록을 서브 블록들로 분할하는 단계를 포함하고, 단계 4020로서 현재 비디오 블록의 공간적 인접 블록의 코딩된 모드 정보에 기반하여 시간적 벡터를 갖는 움직임 소스 픽처에서 서브 블록에 대한 대응 블록을 식별하는 단계를 포함하며, 단계 4030로서 서브 블록의 대응 블록으로부터 서브 블록의 움직임 벡터와 참조 색인을 생성하는 단계를 포함하고, 단계 4040로서 생성된 움직임 벡터 및 참조 색인에 기반하여 변환을 수행하는 단계를 포함한다.
일부 실시예들에서, 비디오 코딩 방법들은 도 28에 도시된 바와 같은 하드웨어 플랫폼 상에서 구현되는 장치를 이용하여 구현될 수 있다.
일부 실시예들은 다음의 예들을 이용하여 설명될 수 있다.
1.1. 비디오 프로세싱 방법에 있어서, IBC(intra-block-copy) 모드가 비디오의 현재 비디오 블록에 적용된다고 결정하는 단계, 여기서 현재 비디오 블록에 의해 사용되는 적어도 하나의 참조 픽처는 상기 현재 비디오 블록이 위치한 현재 픽처이고; 상기 현재 블록에 대한 특정 코딩 모드의 비활성화에 관련한 결정을 내리는 단계; 및 상기 내려진 결정에 기반하여, 상기 현재 비디오 블록과 상기 비트스트림 표현 간의 변환을 수행하는 단계를 포함하되, 상기 특정 코딩 모드는 비디오 블록의 예측을 유도하기 위한 움직임 벡터 및 현재 픽처가 아닌(non-current) 픽처를 사용하는, 비디오 프로세싱 방법.
1.2. 예 1.1의 방법에 있어서, 상기 변환은 상기 현재 비디오 블록을 상기 비트스트림 표현으로 인코딩하는 것을 포함하는, 비디오 프로세싱 방법.
1.3. 예 1.1의 방법에 있어서, 상기 변환은 상기 현재 비디오 블록의 상기 비트스트림 표현을 상기 현재 비디오 블록의 픽셀 값들을 생성하기 위해 디코딩하는 것을 포함하는, 비디오 프로세싱 방법.
1.4. 예 1.1-1.3 중 어느 한 방법에 있어서, 상기 특정 코딩 모드는 어파인 움직임 보상 모드를 포함하고, 상기 어파인 움직임 보상 모드는 적어도 하나의 제어 점 움직임 벡터(control point motion vector)를 사용하는, 비디오 프로세싱 방법.
1.5. 예 1.4의 방법에 있어서, 상기 참조 픽처 색인들은 시그널링되며, 상기 현재 비디오 블록이 상기 IBC 모드를 사용하는 경우 어파인 플래그의 상기 시그널링은 제외되는, 비디오 프로세싱 방법.
1.6. 예 1.4의 방법에 있어서, 상기 어파인 플래그가 시그널링 되기 전에, 참조 픽처 색인들이 시그널링되고, 상기 현재 비디오 블록에 대해 양 예측 모드가 사용되는지 여부를 결정하는 단계를 포함하고, 양 예측 모드가 상기 현재 비디오 블록에 대해 사용되고 오직 하나의 참조 픽처가 상기 현재 참조 픽처인 경우, 상기 어파인 플래그는 시그널링되고, 양 예측 모드가 상기 현재 비디오 블록에 대해 사용되고, 참조 픽처들 모두가 상기 현재 참조 픽처인 경우, 상기 어파인 플래그는 시그널링되지 않는, 비디오 프로세싱 방법.
1.7. 예 1.6의 방법에 있어서, 정수 정밀도가 상기 현재 비디오 블록의 움직임 벡터들에 대해 사용되는, 비디오 프로세싱 방법.
1.8. 예 1.1-1.7 중 어느 한 방법에 있어서, 상기 특정 코딩 모드는 GBi 모드를 포함하되, 상기 GBI 모드에서, 서로 다른 가중치 값들은 서로 다른 참조 픽처들에 연관되는, 비디오 프로세싱 방법.
1.9. 예 1.8의 방법에 있어서, GBi 가중치 색인은 상기 현재 블록에서 상기 IBC 모드를 사용하는 경우 시그널링되지 않는, 비디오 프로세싱 방법.
1.10 예 1.8의 방법에 있어서, 상기 GBi 가중치 색인은 0으로 추론되는, 비디오 프로세싱 방법.
1.11. 예 1.1-1.10 중 어느 한 방법에 있어서, 상기 특정 코딩 모드는 MMVD(merge with motion vector difference) 모드를 포함하되, 상기 MMVD 모드에서, 비디오 블록의 움직임 벡터는 머지 움직임 후보 리스트에 기반하여 유도되고 적어도 하나의 움직임 벡터 차분에 의해 개선되는, 비디오 프로세싱 방법.
1.12. 예 1.11의 방법에 있어서, MMVD 플래그는 상기 현재 비디오 블록에서 상기 IBC 모드가 사용되는 경우 시그널링되지 않는, 비디오 프로세싱 방법.
1.13. 예 1.12의 방법에 있어서, 상기 MMVD 플래그는 0으로 추론되는, 비디오 프로세싱 방법.
1.14. 예 1.1-1.13 중 어느 한 방법에 있어서, 상기 특정 코딩 모드는 결합된 화면 간-화면 내 예측(combined inter-intra prediction: CIIP) 모드를 포함하되, 상기 CIIP 모드에서, 상기 현재 비디오 블록의 예측 신호는 적어도 화면 내 예측 신호 및 화면 간 예측 신호에 기반하여 생성되는, 비디오 프로세싱 방법.
1.15. 예 1.14의 방법에 있어서, 상기 현재 비디오 블록에 대한 CIIP 플래그는 상기 현재 블록에서 상기 IBC 모드가 사용되는 경우 시그널링되지 않는, 비디오 프로세싱 방법.
1.16. 예 1.15의 방법에 있어서, 상기 CIIP 플래그는 0으로 추론되는, 비디오 프로세싱 방법.
1.17. 비디오 프로세싱 방법에 있어서, 특정 코딩 모드를 이용하여 현재 비디오 블록이 코딩된다고 결정하는 단계; 상기 결정에 기반하여 상기 현재 블록에 대한 IBC(intra-block-copy) 모드의 비활성화와 관련하여 결정을 내리는 단계, 상기 IBC 모드에서, 상기 현재 비디오 블록에 의해 사용된 적어도 하나의 참조 픽처는 상기 현재 블록이 위치한 현재 픽처이고, 상기 내려진 결정에 기초하여, 상기 현재 블록 및 상기 비트스트림 표현 간의 변환을 수행하는 단계를 포함하되, 상기 특정 코딩 모드는 상기 현재 블록의 예측을 유도하기 위한 움직임 벡터와 현재 픽처가 아닌(non-current) 픽처를 이용하는, 비디오 프로세싱 방법.
1.18. 예 1.17의 방법에 있어서, 상기 변환은 상기 현재 비디오 블록을 상기 비트스트림 표현으로 인코딩하는 것을 포함하는, 비디오 프로세싱 방법.
1.19. 예 1.17의 방법에 있어서, 상기 변환은 상기 현재 비디오 블록의 픽셀 값들을 생성하기 위해 상기 현재 비디오 블록의 상기 비트스트림 표현을 디코딩하는 것을 포함하는, 비디오 프로세싱 방법.
1.20. 예 1.1-1.3 중 어느 한 방법에 있어서, 상기 특정 코딩 모드는 어파인 움직임 보상 모드를 포함하되, 상기 어파인 움직임 보상은 적어도 하나의 제어 점 움직임 벡터(control point motion vector)를 사용하는, 비디오 프로세싱 방법.
1.21. 예 1.20의 방법에 있어서, 블록 레벨에서 어파인 플래그는 상기 현재 비디오 블록에 대해 상기 어파인 움직임 보상 모드가 활성화되었는지 여부를 지시하는 비트스트림에서 시그널링되고, 상기 어파인 플래그가 상기 어파인 움직임 보상 모드가 상기 현재 비디오 블록에 대해 활성화됨을 지시하는 경우, 상기 IBC 모드가 적용되었는지 여부는 시그널링되지 않는, 비디오 프로세싱 방법.
1.22. 예 1.17-1.19 중 어느 한 방법에 있어서, 상기 특정 코딩 모드는 GBi 모드를 포함하되, 상기 GBi 모드에서, 서로 다른 가중치 값들은 서로 다른 참조 픽처들에 연관되는, 비디오 프로세싱 방법.
1.23. 예 1.22의 방법에 있어서, IBC 지시는 상기 GBi 모드가 적용되지 않는 경우 시그널링되지 않는, 비디오 프로세싱 방법.
1.24. 예 1.23의 방법에 있어서, IBC 지시는 0으로 추론되는, 비디오 프로세싱 방법.
1.25. 예 1.17-1.24 중 어느 한 방법에 있어서, 상기 특정 코딩 모드는 MMVD(merge with motion vector difference) 모드를 포함하고, 상기 MMVD 모드에서, 상기 현재 블록의 움직임 벡터는 머지 움직임 후보 리스트에 기반하여 유도되며, 적어도 하나의 움직임 벡터 차분에 의해 개선되는, 비디오 프로세싱 방법.
1.26. 예 1.25의 방법에 있어서, IBC 지시는 상기 현재 비디오 블록에서 상기 MMVD가 적용되는 경우 시그널링 되지 않는, 비디오 프로세싱 방법.
1.27. 예 1.26의 방법에 있어서, 상기 IBC 지시는 0으로 추론되는, 비디오 프로세싱 방법.
1.28. 예 1.17-1.27 중 어느 한 방법에 있어서, 상기 특정 모드는 결합된 화면 간- 화면 내 예측(combined inter-intra prediction: CIIP) 모드를 포함하되, 상기 CIIP 모드에서, 상기 현재 비디오 블록의 예측 신호는 적어도 화면 내 예측 신호 및 화면 간 예측 신호에 기반하여 생성되는, 비디오 프로세싱 방법.
1.29. 예 1.28의 방법에 있어서, 상기 현재 비디오 블록에 대한 IBC 플래그는 상기 화면 간-화면 내 예측 모드가 적용되는 경우 시그널링되지 않는, 비디오 프로세싱 방법.
1.30. 예 1.29의 방법에 있어서, 상기 IBC 플래그는 0으로 추론되는, 비디오 프로세싱 방법.
1.31. 비디오 프로세싱 방법에 있어서, 상기 현재 비디오 블록의 어파인 모드를 결정하는 단계, 여기서 상기 현재 비디오 블록이 인접 블록으로부터 어파인 모드를 상속하는지는 참조 리스트에 기초하고; 상기 결정에 기반하여 비디오의 현재 비디오 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계;를 포함하는, 비디오 프로세싱 방법.
1.32 예 1.31의 방법에 있어서, 상기 인접 블록은 양 예측을 적용하고, 참조 리스트 X의 참조 픽처가 상기 현재 픽처이고, 참조 리스트 (1-X)의 참조 픽처는 상기 현재 픽처가 아니며, X는 0 혹은 1인, 비디오 프로세싱 방법.
1.33. 예 1.32의 방법에 있어서, 상기 참조 리스트 X를 참조하는 상기 인접 블록은 움직임 정보는 서브 블록 머지 후보 리스트에서 어파인 머지 후보를 유도하기 위해 사용되지 않는, 비디오 프로세싱 방법.
1.34. 예 1.32 혹은 1.33의 방법에 있어서, 상기 참조 리스트(1-X)를 참조하는 상기 인접 블록의 움직임 정보는 상기 서브 블록 머지 후보 리스트에서 어파인 머지 후보를 유도하기위해 사용되는, 비디오 프로세싱 방법.
1.35. 예 1.32의 방법에 있어서, 상기 참조 리스트 X를 참조하는 상기 인접 블록의 움직임 정보는 어파인 AMVP 리스트에서 어파인 AMVP 후보를 유도하기 위해 사용되지 않는, 비디오 프로세싱 방법.
1.36. 예 1.35의 방법에 있어서, 상기 참조 리스트 X를 참조하는 상기 인접 블록의 상기 움직임 정보는 상기 참조 리스트 X에 대한 상기 어파인 AMVP 리스트의 상기 어파인 AMVP 후보를 유도하기 위해 사용되지 않는, 비디오 프로세싱 방법.
1.37. 예 1.32의 방법에 있어서, 상기 참조 리스트 (1-X)를 참조하는 상기 인접 블록의 움직임 정보는 어파인 AMVP 리스트에서 어파인 AMVP 후보를 유도하기 위해 사용되는, 비디오 프로세싱 방법.
1.38. 예 1.37의 방법에 있어서, 상기 참조 리스트(1-X)를 참조하는 상기 인접 블록의 상기 움직임 정보는 상기 참조 리스트(1-X)에 대한 상기 어파인 AMVP 리스트의 상기 어파인 AMVP 후보를 유도하기 위해 사용되는, 비디오 프로세싱 방법.
1.39. 비디오 프로세싱 방법에 있어서, 비디오의 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하되, 상기 변환 동안, IBC(intra-block-copy) 모드와 MMVD(merge with motion vector difference) 모드가 사용되고, 상기 IBC 모드에서, 상기 현재 비디오 블록에 의해 사용되는 적어도 하나의 참조 픽처는 상기 현재 비디오 블록이 위치한 현재 픽처이고, 상기 MMVD모드에서, 비디오 블록의 움직임 벡터가 머지 움직임 후보 리스트에 기반하여 유도되고 적어도 하나의 움직임 벡터 차분에 기반하여 개선되는, 비디오 프로세싱 방법.
1.40. 예 1.39의 방법에 있어서, 상기 MMVD 모드는 상기 현재 픽처를 참조하는 적어도 하나의 참조 픽처를 갖는 베이스(base) MV 후보를 사용하는, 비디오 프로세싱 방법.
1.41. 예 1.40의 방법에 있어서, 상기 MMVD는 상기 현재 픽처를 참조하는 적어도 하나의 MV에 기반하고, 상기 현재 픽처를 참조하지 않는 MV가 존재 시 제거되는 비디오 프로세싱 방법.
1.42. 예 1.41의 방법에 있어서, 상기 MMVD에 의해 시그널링된 거리들은 정수들인, 비디오 프로세싱 방법.
1.43. 예 1.41의 방법에 있어서, 제41 항에 있어서, 상기 MMVD는 단일 예측되는, 비디오 프로세싱 방법.
1.44. 예 1.39의 방법에 있어서, 상기 MMVD 모드는 상기 현재 픽처를 참조하지 않는 적어도 하나의 참조 픽처를 갖는 베이스(base) MV 후보를 사용하는 경우, 상기 MMVD는 상기 현재 픽처를 참조하지 않는 적어도 하나의 MV에 기반하고, 상기 현재 픽처를 참조하지 않는 MV가 존재 시 제거되는, 비디오 프로세싱 방법.
1.45. 비디오 프로세싱 방법에 있어서, 비디오의 현재 비디오 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계;를 포함하되, 상기 변환 동안, IBC(intra-block-copy) 모드 및 화면 간-화면 내 예측 모드를 사용하고, 상기 IBC 모드에서, 상기 현재 비디오 블록에 의해 사용되는 적어도 하나의 참조 픽처는 상기 현재 비디오 블록이 위치하는 현재 픽처이고, 상기 화면 간-화면 내 예측 모드에서 상기 현재 비디오 블록의 예측 신호는 적어도 화면 내 예측 신호와 화면 간 예측 신호에 기반하여 생성되는, 비디오 프로세싱 방법.
1.46. 예 1.45의 방법에 있어서, 화면 간-화면 내 예측된 머지 후보는 상기 현재 픽처를 참조하는 적어도 하나의 참조 픽처를 갖는, 비디오 프로세싱 방법.
1.47. 예 1.46의 방법에 있어서, 상기 화면 간-화면 내 예측은 상기 현재 픽처를 참조하는 적어도 하나의 MV에 기반하고, 상기 현재 픽처를 참조하지 않는 MV는 존재 시 제거되는, 비디오 프로세싱 방법.
1.48. 예 1.45의 방법에 있어서, 상기 화면 간-화면 내 예측 모드의 화면 내 예측 부분은 경계 필터링을 제외하는, 비디오 프로세싱 방법.
1.49. 예 1.45의 방법에 있어서, 상기 화면 간-화면 내 예측 모드의 화면 내 예측 부분은 PDPC(position dependent prediction combination)를 제외하는, 비디오 프로세싱 방법.
1.50. 예 1.45의 방법에 있어서, 상기 화면 간-화면 내 예측 모드의 화면 내 예측 부분은 MPM(most probable mode selection), DC 예측 모드, 수평 예측 모드 혹은 수직 예측 모드 중 적어도 하나를 포함하는, 비디오 프로세싱 방법.
1.51. 예 1.45의 방법에 있어서, 상기 화면 간-화면 내 예측 모드의 화면 간 예측 부분은 단일 예측되는, 비디오 프로세싱 방법.
1.52. 예 1.45-1.51 중 어느 한 방법에 있어서, 화면 간-화면 내 예측된 머지 후보가 상기 현재 픽처를 참조하지 않는 적어도 하나의 참조 픽처를 갖는 경우, 상기 현재 픽처를 참조하지 않는 적어도 하나의 MV를 기반으로 하는 화면 간-화면 내 예측이 수행되고 상기 현재 픽처를 참조하는 상기 MV는 존재 시 제거되는, 비디오 프로세싱 방법.
1.53. 비디오 프로세싱 방법에 있어서, 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현 간의 변환 동안 IBC 모드와 상이한 적어도 하나의 코딩 방법의 디코딩된 정보를 결정하는 단계, 여기서 IBC 모드에서 상기 현재 비디오 블록에 의해 사용되는 적어도 하나의 참조 픽처는 상기 현재 비디오 블록이 위치하는 현재 픽처이고; 상기 디코딩된 정보에 기반하여, 상기 현재 비디오 블록의 비트스트림 표현에서 상기 현재 비디오 블록에 대해 IBC 플래그의 시그널링을 제외할 지 여부를 결정하는 단계, 여기서 IBC 플래그는 상기 IBC 모드에 연관되고; 상기 결정에 기반하여 상기 변환을 수행하는 단계;를 포함하는, 비디오 프로세싱 방법.
1.54. 예 1.53의 방법에 있어서, 상기 변환은 상기 현재 비디오 블록을 상기 비트스트림 표현으로 인코딩하는 것을 포함하는, 비디오 프로세싱 방법.
1.55. 예 1.53의 방법에 있어서, 상기 변환은 상기 현재 비디오 블록의 상기 비트스트림 표현을 상기 현재 비디오 블록의 픽셀 값들을 생성하기 위해 디코딩하는 것을 포함하는, 비디오 프로세싱 방법.
1.56. 예 1.53-1.55 중 어느 한 방법에 있어서, 상기 결정 단계에서 상기 IBC 플래그의 시그널링이 제외되지 않는 것으로 결정되면, 상기 비트스트림 표현에서 상기 현재 비디오 블록에 대한 상기 IBC 플래그를 시그널링하는 단계; 및 반대의 경우, 상기 비트스트림 표현에서 상기 현재 비디오 블록에 대한 상기 IBC 플래그를 시그널링하는 것을 제한하는 단계;를 포함하는, 비디오 프로세싱 방법.
1.57. 예 1.53-1.56 중 어느 한 방법에 있어서, 코딩 방법의 상기 디코딩된 정보가 어파인 플래그, 화면 간-화면 내 예측 플래그, GBi(generalized bi-prediction) 색인, MMVD(merge with motion vector differences) 정보, ATMVP(alternative temporal motion vector prediction) 정보 중 적어도 하나를 포함하는 경우, 상기 IBC 플래그의 시그널링은 제외되는 것으로 결정되는, 비디오 프로세싱 방법.
1.58. 비디오 프로세싱 방법에 있어서, 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현 간의 변환 동안, 상기 현재 비디오 블록은 제1 코딩 구조 트리를 이용하여 코딩된 루마 구성요소와 제1 코딩 구조 트리와 상이한 제2 코딩 구조 트리를 이용하여 코딩된 크로마 구성요소를 포함하되, 상기 현재 비디오 블록의 상기 루마 구성요소의 하나 이상의 대응 블록들의 제2 움직임 벡터 정보로부터 크로마 블록에 대한 제1 움직임 벡터를 유도하는 단계; 및 상기 제1 움직임 벡터 정보 및 상기 제2 움직임 벡터 정보를 기반으로 상기 변환을 수행하는 단계;를 포함하는, 비디오 프로세싱 방법.
1.59. 예 1.58의 방법에 있어서, 상기 변환은 상기 현재 비디오 블록을 상기 비트스트림 표현으로 인코딩하는 것을 포함하는, 비디오 프로세싱 방법.
1.60. 예 1.58의 방법에 있어서, 상기 변환은 상기 현재 비디오 블록의 픽셀 값들을 생성하기 위해 상기 현재 비디오 블록의 상기 비트스트림 표현을 디코딩하는 것을 포함하는, 비디오 프로세싱 방법.
1.61. 예 1.58의 방법에 있어서, 상기 제1 움직임 벡터 정보는 상기 제2 움직임 벡터 정보를 유도하기 위한 MV 예측 혹은 머지 후보로 사용되는, 비디오 프로세싱 방법.
1.62. 예 1.58-1.61 중 어느 한 방법에 있어서, 상기 루마 구성요소의 상기 하나 이상의 대응 블록들은 상기 현재 비디오 블록의 좌측 상단 위치, 우측 상단 위치, 좌측 하단 위치, 우측 하단 위치 및/혹은 중앙 위치에 있는, 비디오 프로세싱 방법.
1.63. 예 1.62의 방법에 있어서, 상기 크로마 구성요소의 색상 포맷이 4:4:4 색상 포맷과 상이한지 여부를 결정하는 단계; 및 상기 크로마 구성요소의 상기 색상 포맷이 4:4:4 색상 포맷과 상이하다는 결정 하에, 상기 현재 비디오 블록을 상기 루마 구성요소의 상기 하나 이상의 대응 블록들을 결정하기 위해 스케일링하는 단계;를 포함하는, 비디오 프로세싱 방법.
1.64. 예 1.58-1.60 중 어느 한 방법에 있어서, 상기 현재 비디오 블록은 IBC(intra-block-copy) 모드를 이용하여 코딩되는, 비디오 프로세싱 방법.
1.65. 예 1.64의 방법에 있어서, 상기 현재 비디오 블록의 높이 및 너비에 대한 제1 제한 세트는 상기 현재 비디오 블록과 상이한 화면 내 코딩된 비디오 블록의 높이 및 너비에 대한 제2 제한 세트와 상이한, 비디오 프로세싱 방법.
1.66. 예 1.65의 방법에 있어서, 상기 현재 비디오 블록이 IBC(intra-block-copy) 모드로 코딩되는 경우 상기 현재 비디오 블록의 상기 너비는 2보다 크고, 상기 높이는 2보다 크며, 상기 현재 비디오 블록이 상기 IBC 모드로 코딩되는 경우 상기 현재 비디오 블록의 상기 너비는 2 이상이고, 상기 높이도 2 이상인, 비디오 프로세싱 방법.
1.67. 프로세서 및 명령어를 갖는 비-일시적 메모리를 포함하는 비디오 시스템의 장치에 있어서, 상기 명령어는 상기 프로세서에 의해 실행되되, 상기 프로세서가 예1.1 내지 예1.66 중 어느 한 방법을 구현하게 하는, 비디오 시스템의 장치.
1.68. 비-일시적 컴퓨터 판독 가능한 매체에 저장된 컴퓨터 프로그램 제품에 있어서, 예1.1 내지 예1.66 중 어느 한 방법을 실행하는 프로그램 코드를 포함하는, 컴퓨터 프로그램 제품.
2.1. 비디오 프로세싱 방법에 있어서, 현재 비디오 블록이 사용하는 적어도 하나의 참조 픽처가 상기 현재 비디오 블록이 위치한 픽처와 동일한 IBC(intra block copy) 모드가 상기 현재 비디오 블록에 적용되는지 여부를 결정하는 단계, 상기 IBC 모드가 상기 현재 비디오 블록에 적용되는지 여부를 시그널링하는 단계, 상기 현재 비디오 블록에 상기 IBC 모드가 적용된다는 결정에 기반하여 예측 모드들의 그룹에 대한 플래그들을 시그널링하는 것을 제한하는 단계, 상기 IBC 모드의 상기 적용에 기반하여 상기 현재 비디오 블록에 대해 상기 변환을 수행하는 단계를 포함하는 비디오 프로세싱 방법.
2.2. 예 2.1의 방법에 있어서, 상기 변환은 상기 현재 비디오 블록을 상기 비트스트림 표현으로 인코딩하는 것을 포함하는, 비디오 프로세싱 방법.
2.3. 예 2.1 혹은 2.2의 방법에 있어서, 상기 예측 모드들의 그룹은 어파인 모드를 포함하되, 상기 어파인 모드는 적어도 하나의 제어 점 움직임 벡터를 사용하는, 비디오 프로세싱 방법.
2.4. 예 2.3의 방법에 있어서, 상기 IBC 모드가 상기 현재 비디오 블록에 대해 적용되는지 여부를 결정하는 단계는 어파인 플래그가 시그널링 되기 이전에 수행되고, 상기 방법은 상기 현재 비디오 블록에 대해 상기 IBC 모드가 적용된다고 결정되는 경우, 상기 어파인 플래그 시그널링을 제한 하는 단계 및 반대의 경우, 상기 어파인 플래그를 시그널링하는 단계를 포함하는, 비디오 프로세싱 방법.
2.5. 예 2.4의 방법에 있어서, 상기 어파인 플래그는 시그널링되지 않고, 상기 어파인 플래그는 0으로 추론되는, 비디오 프로세싱 방법.
2.6. 예 2.1-2.5 중 어느 한 방법에 있어서, 상기 예측 모드들의 그룹은 GBi(generalized bi-prediction) 모드를 포함하고, 상기 GBi 모드에서, 서로 다른 가중치 값들은 서로 다른 참조 픽처들에 연관되는, 비디오 프로세싱 방법.
2.7. 예 2.6의 방법에 있어서, 상기 IBC 모드가 상기 현재 비디오 블록에 대해 적용되는지 여부는 GBi 색인이 시그널링되기 전에 결정되고, 상기 방법은 상기 IBC 모드가 상기 현재 비디오 블록에 대해 적용되는 것으로 결정되면, GBi 가중치 색인을 시그널링하는 것을 제한하고, 반대의 경우, 상기 GBi 가중치 색인을 시그널링 하는 단계를 포함하는, 비디오 프로세싱 방법.
2.8. 예 2.7의 방법에 있어서, 상기 GBi 가중치 색인이 시그널링되지 않는 경우, 상기 GBi에 의해 사용되는 상기 참조 픽처들의 상기 가중치 값들은 0으로 추론되는, 비디오 프로세싱 방법.
2.9. 비디오 프로세싱 방법에 있어서, 현재 비디오 블록이 사용하는 적어도 하나의 참조 픽처가 상기 현재 비디오 블록이 위치한 픽처와 동일한 IBC(intra block copy) 모드가 상기 현재 비디오 블록에 적용되는지 여부를 결정하기 위해 비트스트림을 파싱하는 단계, 여기서 예측 모드들의 그룹에 대한 플래그들은 상기 현재 비디오 블록에 상기 CPR이 적용된다는 결정에 기반하여 상기 비트스트림으로부터 제외되는, 비디오 프로세싱 방법.
2.10. 예 2.9의 방법에 있어서, 상기 변환은 상기 현재 비디오 블록의 픽셀 값들을 생성하기 위해 상기 현재 비디오 블록의 상기 비트스트림 표현을 디코딩 하는 것을 포함하는, 비디오 프로세싱 방법.
2.11. 예 2.9 혹은 2.10의 방법에 있어서, 상기 예측 모드에 대한 상기 플래그는 0으로 추론되는, 비디오 프로세싱 방법.
2.12. 예 2.9-2.11 중 어느 한 방법에 있어서, 상기 예측 모드들의 그룹은 적어도 하나의 제어점 움직임 벡터가 사용되는 어파인 모드, 상기 현재 비디오 블록의 예측 신호가 적어도 화면 내 예측 신호 및 화면 간 예측 신호에 기반하여 생성되는 화면 간-화면 내 예측 모드, 동일하지 않은 가중치들(unequal weights)을 갖는 GBi(a generalized bi-prediction) 예측 모드, 비디오 블록의 움직임 벡터가 머지 움직임 후보 리스트에 기반하여 유도되고 적어도 하나의 움직임 벡터 차분에 의해 더 개선되는 MMVD(merge with motion vector differences) 및 상기 현재 비디오 블록의 서브 블록의 움직임 정보가 상기 현재 비디오 블록의 공간적 인접 블록의 움직임 정보에 의해 결정되는 대응 블록에 기반하는 ATMVP(alternative temporal motion vector prediction, ATMVP) 모드 중 적어도 어느 하나를 포함하는, 비디오 프로세싱 방법.
2.13. 명령어를 포함하는 비 일시적 메모리 및 프로세서를 포함하는 비디오 시스템의 장치에 있어서, 상기 명령어는 상기 프로세서의 실행 하에, 상기 프로세서가 예 2.1 내지 2.12 중 어느 한 방법을 구현하게 하는, 비디오 시스템의 장치.
2.14. 비 일시적 컴퓨터 판독 가능한 매체에 저장된 컴퓨터 프로그램 제품에 있어서, 예 2.1 내지 2.12 중 어느 한 방법을 실행하는 프로그램 코드를 포함하는 상기 컴퓨터 프로그램 제품.
2.15. 예 2.1 내지 2.12 중 하나 이상의 방법을 구현하는 프로세서를 포함하는 비디오 디코딩 장치.
2.16. 예 2.1 내지 2.12 중 하나 이상의 방법을 구현하는 프로세서를 포함하는 비디오 인코딩 장치.
3.1. 비디오 프로세싱 방법에 있어서, 현재 비디오 블록의 움직임 정보를 획득하는 프로세스에서, 상기 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현 간의 변환 동안 상기 현재 비디오 블록의 상기 움직임 정보는 상기 현재 비디오 블록의 적어도 하나의 인접 블록의 적어도 하나의 어파인 모델에 기반하여, 상기 현재 비디오 블록의 인접 블록이 상기 인접 비디오 블록이 사용하는 적어도 하나의 참조 픽처가 상기 인접 블록이 위치한 픽처와 동일한 IBC(intra-block-copy) 모드를 사용하는지 여부를 결정하는 단계, 상기 현재 비디오 블록에 대해 상기 인접 블록이 상기 IBC 모드를 사용한다는 결정에 기반하여 상기 인접 블록으로부터 어파인 후보를 유도하는 것을 비활성화하는 단계 및 상기 현재 비디오 블록의 상기 움직임 정보에 기반하여 상기 변환을 수행하는 단계를 포함하는, 비디오 프로세싱 방법.
3.2. 예 3.1의 방법에 있어서, 상기 변환은 상기 현재 비디오 블록을 상기 비트스트림 표현으로 인코딩하는 것을 포함하는, 비디오 프로세싱 방법.
3.3. 예 3.1의 방법에 있어서, 상기 변환은 상기 현재 비디오 블록의 픽셀 값들을 생성하기 위해 상기 현재 비디오 블록의 상기 비트스트림 표현을 디코딩하는 것을 포함하는, 비디오 프로세싱 방법.
3.4. 예 3.1-3.3 중 어느 한 방법에 있어서, 상기 방법은 상기 IBC 모드를 상기 인접 블록이 사용하지 않는다는 결정에 기반하여 상기 인접 블록으로부터 상기 현재 비디오 블록에 대한 어파인 후보를 유도하는 단계를 더 포함하는, 비디오 프로세싱 방법.
3.5. 예 3.1-3.4 중 어느 한 방법에 있어서, 상기 어파인 후보는 어파인 머지 후보를 포함하고, 상기 어파인 머지 후보는 서브 블록 머지 후보 리스트에 포함되는, 비디오 프로세싱 방법.
3.6. 예 3.5의 방법에 있어서, 상기 인접 블록은 상기 인접 블록이 상기 IBC 모드를 사용한다는 결정에 기반하여 가용하지 않은 것으로 취급되는, 비디오 프로세싱 방법.
3.7. 예 3.1-3.4 중 어느 한 방법에 있어서, 상기 어파인 후보는 AMVP(affine Advanced Motion Vector Prediction, AMVP) 후보를 포함하고, 상기 어파인 후보는 어파인 AMVP 리스트에 포함되는, 비디오 프로세싱 방법.
3.8. 예 3.7의 방법에 있어서, 상기 인접 블록이 상기 IBC 모드를 사용한다는 결정에 기반하여 상기 인접 블록이 가용하지 않은 것으로 취급되는, 비디오 프로세싱 방법.
3.9. 명령어를 포함하는 비 일시적 메모리 및 프로세서를 포함하는 비디오 시스템의 장치에 있어서, 상기 명령어는 상기 프로세서의 실행 하에, 상기 프로세서가 예 3.1 내지 3.8 중 어느 한 방법을 구현하게 하는, 비디오 시스템의 장치.
3.10. 비 일시적 컴퓨터 판독 가능한 매체에 저장된 컴퓨터 프로그램 제품에 있어서, 예 3.1 내지 3.8 중 어느 한 방법을 실행하는 프로그램 코드를 포함하는 상기 컴퓨터 프로그램 제품.
3.11. 예 3.1 내지 3.8 중 하나 이상의 방법을 구현하는 프로세서를 포함하는 비디오 디코딩 장치.
3.12. 예 3.1 내지 3.8 중 하나 이상의 방법을 구현하는 프로세서를 포함하는 비디오 인코딩 장치.
4.1. 비디오 프로세싱 방법에 있어서, 서브블록 기반 시간적 움직임 벡터 예측 모드(subblock-based temporal motion vector prediction, SbTMVP)를 기반으로 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현 간의 변환 동안 상기 현재 비디오 블록을 서브 블록들로 분할하는 단계, 시간적 벡터를 갖는 움직임 소스 픽처에서 서브 블록에 대해 상기 현재 비디오 블록의 공간적 인접 블록의 움직임 정보에 기초하여 대응 블록을 식별하는 단계, 상기 대응 블록의 코딩된 드 정보에 기반하여 상기 서브 블록의 상기 대응 블록으로부터 서브 블록의 참조 색인 및 움직임 벡터를 생성하는 단계 및 상기 생성된 움직임 벡터 및 참조 색인에 기반하여 상기 변환을 수행하는 단계를 포함하는, 비디오 프로세싱 방법.
4.2. 예 4.1의 방법에 있어서, 상기 움직임 소스 픽처는 상기 현재 비디오 블록의 동일 위치(collocated) 참조 픽처인, 비디오 프로세싱 방법.
4.3. 예 4.1-4.2 중 어느 한 방법에 있어서, 상기 대응 블록은 IBC(Intra Block Copy) 모드로 코딩되며, 상기 대응 블록의 참조 블록은 상기 대응 블록을 포함하는 픽처의 적어도 한 픽셀을 포함하는, 비디오 프로세싱 방법.
4.4. 예 4.3의 방법에 있어서, 상기 변환 동안 상기 대응 블록은 가용하지 않은 것으로 취급하는 단계를 포함하는, 비디오 프로세싱 방법.
4.5. 예 4.4의 방법에 있어서, 상기 대응 블록으로부터 상기 서브 블록의 참조 픽처 및 움직임 벡터를 유도하는 것을 억제하는 단계를 더 포함하는, 비디오 프로세싱 방법.
4.6. 예 4.5의 방법에 있어서, 기본(default) 움직임 정보를 상기 현재 비디오 블록에 할당하는 단계를 더 포함하는, 비디오 프로세싱 방법.
4.7. 예 4.3의 방법에 있어서, 상기 대응 블록은 가용한 것으로 취급되고, 상기 서브 블록의 참조 픽처 및 움직임 벡터는 상기 대응 블록으로부터 유도되는, 비디오 프로세싱 방법.
4.8. 예 4.7의 방법에 있어서, 상기 서브 블록의 움직임 벡터는 상기 대응 블록과 연관된 것으로부터 복사되는, 비디오 프로세싱 방법.
4.9. 예 4.1의 방법에 있어서, 상기 공간적 인접 블록은 IBC 모드가 사용되면 가용하지 않은 것으로 취급되고, 상기 공간적 인접 블록의 참조 블록은 상기 공간적 인접 블록을 포함하는 픽처의 적어도 한 픽셀을 포함하는, 비디오 프로세싱 방법.
4.10. 비디오 프로세싱 방법에 있어서, 서브 블록 기반 시간적 움직임 벡터 예측(subblock-based temporal motion vector prediction, SbTMVP)을 기반으로 현재 비디오 블록과 상기 현재 비디오 블록의 비트스트림 표현 간의 변환 동안 상기 현재 비디오 블록을 서브 블록들로 분할하는 단계, 상기 현재 비디오 블록의 공간적 인접 블록의 코딩된 모드 정보에 기반하여 서브 블록에 대해, 시간적 벡터를 갖는 움직임 소스 픽처에서 대응 블록을 식별하는 단계, 상기 서브 블록의 상기 대응 블록으로부터 상기 서브 블록의 참조 색인 및 움직임 벡터를 생성하는 단계, 및 상기 생성된 움직임 벡터 및 참조 색인에 기반하여 상기 변환을 수행하는 단계를 포함하는, 비디오 프로세싱 방법.
4.11. 예 4.10의 방법에 있어서, 움직임 소스 픽처는 현재 비디오 블록의 동일위치(collocated) 참조 픽처인, 비디오 프로세싱 방법.
4.12. 예 4.10-4.11 중 어느 한 방법에 있어서, 상기 공간적 인접 블록은 IBC(intra block copy) 모드로 코딩되고, 상기 공간적 인접 블록의 참조 블록은 상기 공간적 인접 블록을 포함하는 픽처에서 적어도 하나의 픽셀을 포함하는, 비디오 프로세싱 방법.
4.13. 예 4.12의 방법에 있어서, 상기 변환 동안 상기 공간적 인접 블록은 가용하지 않은 것으로 취급하는 단계를 더 포함하는, 비디오 프로세싱 방법.
4.14. 예 4.13의 방법에 있어서, 상기 공간적 인접 블록의 움직임 벡터에 기반하여 상기 대응 블록을 식별하는 것을 제한하는 단계를 더 포함하는, 비디오 프로세싱 방법.
4.15. 예 4.14의 방법에 있어서, 기본(default) 움직임 정보가 상기 대응 블록을 식별하기 위해 할당되는, 비디오 프로세싱 방법.
4.16. 예 4.1 내지 4.15 중 어느 한 방법에 있어서, 상기 변환은 현재 비디오 블록을 비트스트림 표현으로 인코딩하는 것을 포함하는, 비디오 프로세싱 방법.
4.17. 예 4.1 내지 4.15 중 어느 한 방법에 있어서, 상기 변환은 상기 현재 비디오 블록의 픽셀 값들을 생성하기 위해 상기 현재 비디오 블록의 상기 비트스트림 표현을 디코딩하는 것을 포함하는, 비디오 프로세싱 방법.
4.18. 비디오 시스템의 프로세서 및 명령어를 포함한 비 일시적 메모리를 포함하는 장치에 있어서, 상기 명령어는 상기 프로세서의 실행 하에, 상기 프로세서가 예 4.1 내지 4.15의 어느 한 방법을 구현하게 하는, 비디오 시스템의 장치.
4.19. 비 일시적 컴퓨터 판독 가능한 매체에 저장된 컴퓨터 프로그램 제품에 있어서, 예 4.1 내지 4.15 중 어느 한 방법을 구현하는 프로그램 코드를 포함하는 컴퓨터 프로그램 제품.
4.20. 예 4.1 내지 4.15 중 하나 이상의 방법을 구현하는 프로세서를 포함하는 비디오 디코딩 장치.
4.21. 예 4.1 내지 4.15 중 하나 이상의 방법을 구현하는 프로세서를 포함하는 비디오 인코딩 장치.
상기로부터, 현재 개시된 기술의 구체적인 실시예들은 예시적인 설명의 목적으로 기재되었으며, 본 발명의 범위에서 벗어나지 않는 한 다양한 수정이 이루어질 수 있다는 점이 이해될 것이다. 따라서, 현재 개시된 기술은 첨부된 청구항들에 의하는 바를 제외하고는 한정되지 않는다.
본 특허 문서에 기재된 주제 및 기능적 작업들의 구현들은 다양한 시스템, 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있으며, 여기에는 본 명세서에서 개시된 구조들 및 구조적 등가물들, 또는 그 중 하나 이상의 조합이 포함될 수 있다. 본 명세서에 기재된 주제의 구현들은 하나 이상의 컴퓨터 프로그램 제품들로, 즉, 유형의, 비-일시적인 컴퓨터 판독 가능한 매체에 코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로서 구현되어, 데이터 처리 장치에 의해 실행하거나, 또는 상기 장치의 작동을 제어할 수 있다. 상기 컴퓨터 판독 가능한 매체는 기계 판독 가능한 저장 디바이스, 기계 판독 가능한 저장 기판, 메모리 디바이스, 기계 판독 가능한 전파 신호를 가져오는 물질의 조성, 또는 이들 중 하나 이상의 조합일 수 있다. 용어 "데이터 처리(프로세싱) 유닛" 또는 "데이터 처리(프로세싱) 장치”는, 데이터를 처리하기 위한 모든 장치, 디바이스 및 기계를 포괄하며, 예를 들어, 프로그래머블 프로세서, 컴퓨터, 또는 다중 프로세서 또는 컴퓨터들을 포함한다. 상기 장치는, 하드웨어 외에도, 당해 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드를 포함할 수 있고, 코드는 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 시스템, 또는 이들 중 하나 이상의 조합을 구성한다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드로도 알려짐)은 컴파일 또는 인터프리터 언어를 포함하는 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 또는 컴퓨터 환경에서 사용하기에 적합한 그 밖의 유닛을 포함하는 임의의 형태로도 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 상응해야 하는 것은 아니다. 프로그램은 다른 프로그램 또는 데이터를 보유하는 파일의 일부에 저장되거나(예를 들어, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트), 당해 프로그램 전용의 단일 파일에 저장되거나, 또는 다수의 조직화된 파일들(예를 들어, 하나 이상의 모듈, 서브프로그램, 코드의 부분을 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터에서, 또는 한 위치에 배치되거나 또는 다수의 위치에 걸쳐서 분산되고 통신 네트워크에 의해 접속된 다수의 컴퓨터에서 실행되도록 배치될 수 있다.
본 명세서에서 설명된 프로세스와 논리 흐름은 하나 이상의 프로그래머블 프로세서에 의해 수행될 수 있고, 이 프로그래머블 프로세서는 입력 데이터에 작용하여 출력을 생성함으로써 기능을 수행하는 하나 이상의 컴퓨터 프로그램들을 실행한다. 프로세서와 논리 흐름은, 예를 들어, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)과 같은 전용 논리 회로에 의해 수행될 수 있고, 장치 또한 전용 논리 회로로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는, 예를 들어, 범용 및 전용 마이크로프로세서 및 임의 종류의 디지털 컴퓨터의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리(ROM), 또는 랜덤 액세스 메모리(RAM), 또는 양자로부터 명령어들과 데이터를 수신한다. 컴퓨터의 필수 구성요소는 명령을 실행하는 프로세서 및 명령어와 데이터를 저장하는 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어, 자기 디스크, 광자기 디스크, 또는 광디스크를 포함하거나, 또는 이 디바이스와 데이터를 송수신하기 위하여 동작적으로(operatively) 결합될 수 있다. 하지만 컴퓨터는 이러한 디바이스를 구비할 필요는 없다. 컴퓨터 프로그램 명령어들과 데이터를 저장하기 적합한 컴퓨터 판독가능 매체에는, 예를 들어, 반도체 메모리 디바이스(예를 들어, EPROM, EEPROM, 플래시 메모리 디바이스), 자기 디스크(예를 들어, 내부 하드디스크, 착탈식 디스크), 광자기 디스크 및 CD ROM과 DVD-ROM 디스크를 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스가 포함된다. 프로세서와 메모리는 전용 논리 회로에 의해 보완되거나 또는 전용 논리 회로에 통합될 수 있다.
도면과 함께 본 명세서는 오직 예시적인 것으로 간주되어야 한다. 여기서, 본 문서에서 사용된 "또는”은 문맥이 명시적으로 달리 지시하지 않는 한 "및/또는”을 포함하는 것으로 의도되었다.
본 특허문서가 다수의 특정한 구현 세부사항을 포함하고 있지만, 이는 임의 발명의 범위나 청구할 사항의 범위에 대한 어떠한 제한으로도 이해되어서는 안 되며, 특정한 발명들의 특정한 실시예들에 고유할 수 있는 특징의 설명으로서 이해되어야 한다. 별개의 실시예들의 맥락에서 본 특허 문서에서 설명된 소정의 특징들은 조합되어 단일 실시예로 구현될 수도 있다. 반대로, 단일 실시예의 맥락에서 설명한 다양한 특징들은 복수의 실시예에서 별개로 구현되거나 어떤 적당한 하위 조합으로도 구현 가능하다. 또한, 앞에서 특징들이 특정 조합에서 동작하는 것으로서 설명되고 그와 같이 청구되기까지 하였지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우에 해당 조합으로부터 삭제될 수 있으며, 청구된 조합은 하위 조합이나 하위 조합의 변형으로 될 수 있다.
마찬가지로, 동작들이 도면들에서 특정한 순서로 묘사되고 있지만, 이는 그러한 동작들이 바람직한 결과를 얻기 위해, 도시한 특정 순서나 순차적인 순서로 수행되어야 한다거나, 도시된 모든 동작들이 수행되어야 한다는 것을 의미하지 않는다. 더욱이, 본 특허 문서에 기재된 실시예에 있어서 다양한 시스템 구성요소들의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안 된다.
단지 몇 가지 구현들 및 예시들이 기술되었으며, 기타 구현, 개선 및 변형은 본 특허 문서에 기술되고 도시된 것에 기초하여 이루어질 수 있다.

Claims (68)

  1. 비디오 데이터 코딩 방법에 있어서,
    비디오의 현재 비디오 블록에 IBC(intra block copy) 모드가 적용됨을 결정하는 단계, 상기 IBC 모드에서는 상기 현재 비디오 블록을 포함하는 비디오 영역의 참조 샘플들을 사용하고;
    상기 현재 비디오 블록에 대한 결합된 화면 간-화면 내 예측(combined inter-intra prediction) 모드의 비활성화에 관한 결정을 내리는 단계, 상기 결합된 화면 간-화면 내 예측 모드에서, 최종 예측은 적어도 중간 화면 내 예측 신호(intermediate intra prediction signal) 및 중간 화면 간 예측 신호(intermediate inter prediction signal)의 가중 합에 기초하여 생성되고;
    상기 결정에 기초하여, 상기 현재 비디오 블록과 상기 비디오의 비트스트림 간의 변환을 수행하는 단계;를 포함하되,
    상기 현재 비디오 블록에서 상기 IBC 모드가 사용되는 경우, 상기 현재 비디오 블록에 대한 결합된 화면 간-화면 내 예측 플래그는 상기 비트스트림에 포함되지 않는, 비디오 데이터 코딩 방법.
  2. 제1 항에 있어서,
    상기 비트스트림에 상기 결합된 화면 간-화면 내 예측 플래그가 포함되지 않는 경우, 상기 결합된 화면 간-화면 내 예측 플래그는 0으로 추론되는, 비디오 데이터 코딩 방법.
  3. 제1 항에 있어서,
    상기 현재 비디오 블록에 대해 특정 코딩 모드의 비활성화에 관한 결정을 내리는 단계;를 더 포함하는, 비디오 데이터 코딩 방법.
  4. 제3 항에 있어서,
    상기 현재 비디오 블록에서 상기 IBC 모드가 사용되는 경우, 상기 특정 코딩 모드에 대한 플래그는 상기 비트스트림에 포함되지 않는, 비디오 데이터 코딩 방법.
  5. 제4 항에 있어서,
    상기 플래그가 비트스트림에 포함되지 않는 경우, 상기 플래그는 0으로 추론되는, 비디오 데이터 코딩 방법.
  6. 제3 항에 있어서,
    상기 특정 코딩 모드는 CU 레벨 가중치 모드를 갖는 양 예측을 포함하고, 상기 CU 레벨 가중치 모드를 갖는 양 예측에서, 서로 다른 가중치 값들은 예측 유도 프로세스에서 서로 다른 참조 픽처들과 연관되는, 비디오 데이터 코딩 방법.
  7. 제6 항에 있어서,
    상기 현재 비디오 블록에서 상기 IBC 모드가 사용되는 경우, 상기 CU 레벨 가중치 모드를 갖는 상기 양 예측의 가중치 인덱스는 상기 비트스트림에 포함되지 않는, 비디오 데이터 코딩 방법.
  8. 제7 항에 있어서,
    상기 가중치 인덱스가 상기 비트스트림에 포함되지 않는 경우, 상기 가중치 인덱스는 0으로 추론되는, 비디오 데이터 코딩 방법.
  9. 제3 항에 있어서,
    상기 특정 코딩 모드는 MMVD(merge with motion vector difference) 모드를 포함하고, 상기 MMVD 모드에서, 비디오 블록의 움직임 벡터는 머지 움직임 후보 리스트에 기반하여 유도되고, 적어도 하나의 움직임 벡터 오프셋에 의해 더 개선되는, 비디오 데이터 코딩 방법.
  10. 제3 항에 있어서,
    상기 특정 코딩 모드는 어파인 모드를 포함하고,
    상기 어파인 모드는 적어도 하나의 제어 점 움직임 벡터(control point motion vector)를 사용하는, 비디오 데이터 코딩 방법.
  11. 제3 항에 있어서,
    상기 특정 코딩 모드는 서브 블록 기반 시간적 움직임 벡터 예측 모드(sub-block based temporal motion vector prediction mode)를 포함하고,
    상기 서브 블록 기반 시간적 움직임 벡터 예측 모드에서, 움직임 정보는 적어도 하나의 시간적 움직임 오프셋에 의해 결정되는 동일 위치 영역(collocated region)에 기반하여 유도되는, 비디오 데이터 코딩 방법.
  12. 제1 항에 있어서,
    상기 변환을 수행하는 단계 이전에,
    상기 현재 비디오 블록에 대한 블록 벡터를 유도하는 단계; 및
    상기 블록 벡터를 개선하기 위해 상기 비트스트림에 포함된 적어도 하나의 블록 벡터 차분을 이용하는 단계;를 더 포함하는, 비디오 데이터 코딩 방법.
  13. 제1 항에 있어서,
    상기 IBC 모드는 루마 구성요소 및 크로마 구성요소가 별개의 코딩 구조 트리들로 코딩되는 이중 코딩 트리(dual coding tree)를 갖는 비디오 블록에 적용되는, 비디오 데이터 코딩 방법.
  14. 제1 항에 있어서,
    상기 현재 비디오 블록의 너비는 2 이상이고, 높이는 2 이상인, 비디오 데이터 코딩 방법.
  15. 제1 항에 있어서,
    상기 변환은 상기 비트스트림 으로부터 상기 현재 비디오 블록을 디코딩하는 것을 포함하는, 비디오 데이터 코딩 방법.
  16. 제1 항에 있어서,
    상기 변환은 상기 현재 비디오 블록을 상기 비트스트림으로 인코딩하는 것을 포함하는, 비디오 데이터 코딩 방법.
  17. 프로세서 및 명령어들을 포함하는 비-일시적 메모리를 포함하는 비디오 데이터 프로세싱 장치에 있어서, 상기 명령어들은 상기 프로세서에 의해 실행되되, 상기 프로세서가,
    비디오의 현재 비디오 블록에 IBC(intra block copy) 모드가 적용됨을 결정하게 하고, 상기 IBC 모드에서는 상기 현재 비디오 블록을 포함하는 비디오 영역의 참조 샘플들을 사용하고;
    상기 현재 비디오 블록에 대한 결합된 화면 간-화면 내 예측(combined inter-intra prediction) 모드의 비활성화에 관한 결정을 내리게 하고, 상기 결합된 화면 간-화면 내 예측 모드에서, 최종 예측은 적어도 중간 화면 내 예측 신호(intermediate intra prediction signal) 및 중간 화면 간 예측 신호(intermediate inter prediction signal)의 가중 합에 기초하여 생성되고;
    상기 결정에 기초하여, 상기 현재 비디오 블록과 상기 비디오의 비트스트림 간의 변환을 수행하게 하되,
    상기 현재 비디오 블록에서 상기 IBC 모드가 사용되는 경우, 상기 현재 비디오 블록에 대한 결합된 화면 간-화면 내 예측 플래그는 상기 비트스트림에 포함되지 않는, 비디오 데이터 프로세싱 장치.
  18. 비디오 프로세싱 장치에 의해 수행되는 방법에 의해 생성된 비디오의 비트스트림이 저장된 비-일시적 컴퓨터 판독 가능한 기록 매체에 있어서, 상기 방법은
    비디오의 현재 비디오 블록에 IBC(intra block copy) 모드가 적용됨을 결정하는 단계, 상기 IBC 모드에서는 상기 현재 비디오 블록을 포함하는 비디오 영역의 참조 샘플들을 사용하고;
    상기 현재 비디오 블록에 대한 결합된 화면 간-화면 내 예측(combined inter-intra prediction) 모드의 비활성화에 관한 결정을 내리는 단계, 상기 결합된 화면 간-화면 내 예측 모드에서, 최종 예측은 적어도 중간 화면 내 예측 신호(intermediate intra prediction signal) 및 중간 화면 간 예측 신호(intermediate inter prediction signal)의 가중 합에 기초하여 생성되고;
    상기 결정에 기초하여, 상기 현재 비디오 블록으로부터 상기 비트스트림을 생성하는 단계;를 포함하되,
    상기 현재 비디오 블록에서 상기 IBC 모드가 사용되는 경우, 상기 현재 비디오 블록에 대한 결합된 화면 간-화면 내 예측 플래그는 상기 비트스트림에 포함되지 않는, 비-일시적 컴퓨터 판독 가능한 기록 매체.
  19. 명령어들이 저장된 비-일시적 컴퓨터 판독 가능한 저장 매체에 있어서, 상기 명령어들은 프로세서가,
    비디오의 현재 비디오 블록에 IBC(intra block copy) 모드가 적용됨을 결정하게 하고, 상기 IBC 모드에서는 상기 현재 비디오 블록을 포함하는 비디오 영역의 참조 샘플들을 사용하고;
    상기 현재 비디오 블록에 대한 결합된 화면 간-화면 내 예측(combined inter-intra prediction) 모드의 비활성화에 관한 결정을 내리게 하고, 상기 결합된 화면 간-화면 내 예측 모드에서, 최종 예측은 적어도 중간 화면 내 예측 신호(intermediate intra prediction signal) 및 중간 화면 간 예측 신호(intermediate inter prediction signal)의 가중 합에 기초하여 생성되고;
    상기 결정에 기초하여, 상기 현재 비디오 블록과 상기 비디오의 비트스트림 간의 변환을 수행하게 하되,
    상기 현재 비디오 블록에서 상기 IBC 모드가 사용되는 경우, 상기 현재 비디오 블록에 대한 결합된 화면 간-화면 내 예측 플래그는 상기 비트스트림에 포함되지 않는, 비-일시적 컴퓨터 판독 가능한 기록 매체.
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
  60. 삭제
  61. 삭제
  62. 삭제
  63. 삭제
  64. 삭제
  65. 삭제
  66. 삭제
  67. 삭제
  68. 삭제
KR1020217014518A 2018-11-29 2019-11-29 화면 내 블록 복사 모드 및 화면 간 예측 도구들 간의 상호작용 KR102695787B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CNPCT/CN2018/118167 2018-11-29
CN2018118167 2018-11-29
PCT/CN2019/122183 WO2020108649A1 (en) 2018-11-29 2019-11-29 Interaction between intra block copy mode and inter prediction tools

Publications (2)

Publication Number Publication Date
KR20210094530A KR20210094530A (ko) 2021-07-29
KR102695787B1 true KR102695787B1 (ko) 2024-08-14

Family

ID=70851922

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217014518A KR102695787B1 (ko) 2018-11-29 2019-11-29 화면 내 블록 복사 모드 및 화면 간 예측 도구들 간의 상호작용

Country Status (6)

Country Link
US (4) US11095917B2 (ko)
EP (2) EP4307681A3 (ko)
JP (2) JP7212161B2 (ko)
KR (1) KR102695787B1 (ko)
CN (5) CN113170181B (ko)
WO (4) WO2020108650A1 (ko)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11317099B2 (en) 2018-10-05 2022-04-26 Tencent America LLC Method and apparatus for signaling an offset in video coding for intra block copy and/or inter prediction
SG11202104046TA (en) * 2018-10-27 2021-05-28 Huawei Tech Co Ltd Separate merge list and intra-inter techniques harmonization for video coding
JP7212161B2 (ja) 2018-11-29 2023-01-24 北京字節跳動網絡技術有限公司 イントラブロックコピーモードとインター予測ツールとの間の相互作用
MX2021007225A (es) 2018-12-17 2021-09-21 Interdigital Vc Holdings Inc Combinacion de herramientas de codificacion de diferencia de vector de movimiento con otros modos de movimiento.
US11758132B2 (en) * 2018-12-28 2023-09-12 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Encoder and decoder, encoding method and decoding method with complexity handling for flexibly sized picture partitions
CN113228645A (zh) * 2018-12-28 2021-08-06 韩国电子通信研究院 图像编码/解码方法和装置以及存储有比特流的记录介质
CN111385575A (zh) * 2018-12-29 2020-07-07 华为技术有限公司 帧间预测方法、装置以及相应的编码器和解码器
EP3731522A4 (en) * 2019-01-01 2021-04-14 LG Electronics Inc. METHOD AND APPARATUS FOR PROCESSING VIDEO SIGNAL BASED ON HISTORY-BASED MOTION VECTOR PREDICTION
CN111164976A (zh) * 2019-01-03 2020-05-15 北京大学 视频处理方法和装置
US11330283B2 (en) * 2019-02-01 2022-05-10 Tencent America LLC Method and apparatus for video coding
CN113383548A (zh) 2019-02-03 2021-09-10 北京字节跳动网络技术有限公司 Mv精度和mv差编解码之间的相互作用
EP3909239A4 (en) 2019-02-14 2022-04-20 Beijing Bytedance Network Technology Co., Ltd. SELECTIVE SIZE APPLICATION OF DECODER SIDE REFINING TOOLS
WO2020172342A1 (en) * 2019-02-20 2020-08-27 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatus of motion vector rounding, clipping and storage for inter prediction
KR20240027865A (ko) * 2019-03-11 2024-03-04 닛폰 호소 교카이 화상 부호화 장치, 화상 복호 장치 및 프로그램
EP3959873A4 (en) * 2019-04-25 2022-08-10 OP Solutions, LLC EFFICIENT CODING OF GLOBAL MOTION VECTORS
CN113853792A (zh) 2019-05-11 2021-12-28 北京字节跳动网络技术有限公司 带有参考图片重采样的编解码工具
EP3954119A4 (en) 2019-05-21 2022-06-22 Beijing Bytedance Network Technology Co., Ltd. SYNTAX SIGNALING IN A SUBBLOCK MERGE MODE
WO2020244658A1 (en) 2019-06-06 2020-12-10 Beijing Bytedance Network Technology Co., Ltd. Sub-block based intra block copy
KR20200144074A (ko) * 2019-06-17 2020-12-28 한국전자통신연구원 화면 내 블록 복사 기반 부호화 /복호화 방법, 장치 및 비트스트림 저장매체
WO2020259426A1 (en) 2019-06-22 2020-12-30 Beijing Bytedance Network Technology Co., Ltd. Motion candidate list construction for intra block copy mode
US20230018401A1 (en) * 2019-06-25 2023-01-19 Interdigital Vc Holdings France, Sas Motion vector prediction in video encoding and decoding
JP7322277B2 (ja) 2019-07-27 2023-08-07 北京字節跳動網絡技術有限公司 参照ピクチャタイプに従ったツールの使用制限
WO2021027767A1 (en) 2019-08-10 2021-02-18 Beijing Bytedance Network Technology Co., Ltd. Position restriction for inter coding mode
CN114365488A (zh) 2019-09-09 2022-04-15 北京字节跳动网络技术有限公司 视频编解码块的递归划分
JP2022552511A (ja) 2019-10-12 2022-12-16 北京字節跳動網絡技術有限公司 ビデオコーディングツールのための高レベルシンタックス
BR112022007408A2 (pt) 2019-10-18 2022-09-27 Beijing Bytedance Network Tech Co Ltd Método e aparelho de processamento de vídeo, e, meio legível por computador
EP4307669A3 (en) 2020-02-14 2024-06-05 Beijing Bytedance Network Technology Co., Ltd. Reference picture resampling activation in video coding
CN115336262A (zh) * 2020-03-19 2022-11-11 鸿颖创新有限公司 用于编码视频数据的设备和方法
CN115380529A (zh) * 2020-04-07 2022-11-22 鸿颖创新有限公司 用于编码视频数据的设备和方法
WO2021244419A1 (en) * 2020-05-31 2021-12-09 Beijing Bytedance Network Technology Co., Ltd. Constraint signaling using general constraint information syntax element
JP2023006877A (ja) * 2021-06-30 2023-01-18 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
WO2023038447A1 (ko) * 2021-09-08 2023-03-16 현대자동차주식회사 비디오 부호화/복호화 방법 및 장치
US20230079960A1 (en) * 2021-09-15 2023-03-16 Tencent America LLC On propagating intra prediction mode information of ibc block by using block vector
CN118355659A (zh) * 2021-09-25 2024-07-16 抖音视界有限公司 用于视频处理的方法、装置和介质
WO2023062614A1 (ko) * 2021-10-12 2023-04-20 엘지전자 주식회사 영상 디코딩 방법 및 그 장치
WO2023132614A1 (ko) * 2022-01-04 2023-07-13 현대자동차주식회사 머지 모드를 개선하는 비디오 부호화/복호화 방법 및 장치

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9948915B2 (en) * 2013-07-24 2018-04-17 Qualcomm Incorporated Sub-PU motion prediction for texture and depth coding
AU2013228045A1 (en) * 2013-09-13 2015-04-02 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding video data
US9762927B2 (en) * 2013-09-26 2017-09-12 Qualcomm Incorporated Sub-prediction unit (PU) based temporal motion vector prediction in HEVC and sub-PU design in 3D-HEVC
GB2519070A (en) * 2013-10-01 2015-04-15 Sony Corp Data encoding and decoding
EP3058736B1 (en) 2013-10-14 2019-02-27 Microsoft Technology Licensing, LLC Encoder-side options for intra block copy prediction mode for video and image coding
BR112016007151A2 (pt) 2013-10-14 2017-09-12 Microsoft Tech Licensing recursos de modo de predição de cópia intrabloco para codificação e decodificação de vídeo e de imagem
US10264290B2 (en) 2013-10-25 2019-04-16 Microsoft Technology Licensing, Llc Hash-based block matching in video and image coding
CN105684409B (zh) 2013-10-25 2019-08-13 微软技术许可有限责任公司 在视频和图像编码和解码中使用散列值来表示各块
WO2015074047A1 (en) * 2013-11-18 2015-05-21 Arris Enterprises, Inc. Intra block copy for intra slices in high efficiency video coding (hevc)
US9883197B2 (en) 2014-01-09 2018-01-30 Qualcomm Incorporated Intra prediction of chroma blocks using the same vector
US9860559B2 (en) * 2014-03-17 2018-01-02 Mediatek Singapore Pte. Ltd. Method of video coding using symmetric intra block copy
CN106416253A (zh) * 2014-05-22 2017-02-15 联发科技股份有限公司 用于图像以及视频编码的具有翻动的帧内块复制方法
US10897629B2 (en) 2014-06-19 2021-01-19 Vid Scale, Inc. Methods and systems for intra block copy search enhancement
CN105493505B (zh) * 2014-06-19 2019-08-06 微软技术许可有限责任公司 统一的帧内块复制和帧间预测模式
CN105392008B (zh) * 2014-08-22 2018-09-25 中兴通讯股份有限公司 一种预测编、解码方法和相应的编、解码器和电子设备
CN107079161B (zh) * 2014-09-01 2020-11-20 寰发股份有限公司 用于屏幕内容以及视频编码的帧内图片块复制的方法
JP2017532885A (ja) * 2014-09-26 2017-11-02 ヴィド スケール インコーポレイテッド 時間ブロックベクトル予測を用いたイントラブロックコピー符号化
US9918105B2 (en) * 2014-10-07 2018-03-13 Qualcomm Incorporated Intra BC and inter unification
KR20160059513A (ko) * 2014-11-18 2016-05-27 광운대학교 산학협력단 스크린 콘텐츠 코딩을 위한 고속 화면 내 부호화 모드 결정 방법
US10230980B2 (en) * 2015-01-26 2019-03-12 Qualcomm Incorporated Overlapped motion compensation for video coding
US11477477B2 (en) * 2015-01-26 2022-10-18 Qualcomm Incorporated Sub-prediction unit based advanced temporal motion vector prediction
US9591325B2 (en) 2015-01-27 2017-03-07 Microsoft Technology Licensing, Llc Special case handling for merged chroma blocks in intra block copy prediction mode
CN107409220B (zh) * 2015-01-29 2020-07-24 Vid拓展公司 块内拷贝搜索
EP3251353A1 (en) 2015-01-29 2017-12-06 VID SCALE, Inc. Palette coding modes and palette flipping
US10638140B2 (en) * 2015-05-29 2020-04-28 Qualcomm Incorporated Slice level intra block copy and other video coding improvements
WO2016196843A1 (en) * 2015-06-03 2016-12-08 Apple Inc. Techniques for resource conservation during performance of intra block copy prediction searches
TWI694714B (zh) * 2015-06-08 2020-05-21 美商Vid衡器股份有限公司 螢幕內容編碼區塊內複製模式
US10271064B2 (en) * 2015-06-11 2019-04-23 Qualcomm Incorporated Sub-prediction unit motion vector prediction using spatial and/or temporal motion information
US10178403B2 (en) 2015-06-23 2019-01-08 Qualcomm Incorporated Reference picture list construction in intra block copy mode
US10404992B2 (en) 2015-07-27 2019-09-03 Qualcomm Incorporated Methods and systems of restricting bi-prediction in video coding
WO2017016468A1 (en) * 2015-07-27 2017-02-02 Mediatek Inc. Method of system for video coding using intra block copy mode
US20170099490A1 (en) * 2015-10-02 2017-04-06 Qualcomm Incorporated Constrained intra-prediction for block copy mode
CN108432250A (zh) * 2016-01-07 2018-08-21 联发科技股份有限公司 用于视频编解码的仿射帧间预测的方法及装置
ES2692864B1 (es) * 2016-02-25 2019-10-21 Kt Corp Metodo y aparato para procesar senales de video
WO2017147765A1 (en) * 2016-03-01 2017-09-08 Mediatek Inc. Methods for affine motion compensation
EP3414900A4 (en) * 2016-03-15 2019-12-11 Mediatek Inc. METHOD AND DEVICE FOR VIDEO CODING WITH AFFINE MOTION COMPENSATION
US10560712B2 (en) * 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
WO2017206803A1 (en) * 2016-05-28 2017-12-07 Mediatek Inc. Method and apparatus of current picture referencing for video coding
US10477238B2 (en) * 2016-09-07 2019-11-12 Qualcomm Incorporated Sub-PU based bi-directional motion compensation in video coding
US20180109810A1 (en) * 2016-10-17 2018-04-19 Mediatek Inc. Method and Apparatus for Reference Picture Generation and Management in 3D Video Compression
US10681370B2 (en) * 2016-12-29 2020-06-09 Qualcomm Incorporated Motion vector generation for affine motion model for video coding
US10701390B2 (en) * 2017-03-14 2020-06-30 Qualcomm Incorporated Affine motion information derivation
US10582209B2 (en) * 2017-03-30 2020-03-03 Mediatek Inc. Sub-prediction unit temporal motion vector prediction (sub-PU TMVP) for video coding
US20180310017A1 (en) * 2017-04-21 2018-10-25 Mediatek Inc. Sub-prediction unit temporal motion vector prediction (sub-pu tmvp) for video coding
US10805630B2 (en) * 2017-04-28 2020-10-13 Qualcomm Incorporated Gradient based matching for motion search and derivation
CA3063746A1 (en) * 2017-05-18 2018-11-22 Mediatek, Inc. Method and apparatus of motion vector constraint for video coding
US10757420B2 (en) 2017-06-23 2020-08-25 Qualcomm Incorporated Combination of inter-prediction and intra-prediction in video coding
US10687071B2 (en) 2018-02-05 2020-06-16 Tencent America LLC Method and apparatus for video coding
WO2019234598A1 (en) 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Interaction between ibc and stmvp
EP3791586A1 (en) 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks
US10958934B2 (en) 2018-07-27 2021-03-23 Tencent America LLC History-based affine merge and motion vector prediction
JP7212161B2 (ja) 2018-11-29 2023-01-24 北京字節跳動網絡技術有限公司 イントラブロックコピーモードとインター予測ツールとの間の相互作用

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Benjamin Bross et al: "Versatile Video Coding (Draft 3)", JVET-L1001, 2018.10.12.
W-J Chien et al: "Methodology and reporting template for coding tool testing", JVET-L1005, 2018.10.27.

Also Published As

Publication number Publication date
US11095917B2 (en) 2021-08-17
WO2020108652A1 (en) 2020-06-04
US20240056599A1 (en) 2024-02-15
EP3871410A4 (en) 2021-12-22
CN113170181A (zh) 2021-07-23
CN113170167A (zh) 2021-07-23
JP2022508177A (ja) 2022-01-19
WO2020108651A1 (en) 2020-06-04
WO2020108649A1 (en) 2020-06-04
WO2020108650A1 (en) 2020-06-04
CN113170181B (zh) 2023-12-08
JP2023052340A (ja) 2023-04-11
CN113196772B (zh) 2024-08-02
EP4307681A2 (en) 2024-01-17
US11115676B2 (en) 2021-09-07
US20210160533A1 (en) 2021-05-27
EP4307681A3 (en) 2024-04-03
CN113196772A (zh) 2021-07-30
CN113170099A (zh) 2021-07-23
US20210377561A1 (en) 2021-12-02
KR20210094530A (ko) 2021-07-29
US20210160525A1 (en) 2021-05-27
JP7212161B2 (ja) 2023-01-24
CN117915083A (zh) 2024-04-19
EP3871410A1 (en) 2021-09-01
CN113170099B (zh) 2024-03-29
US11825113B2 (en) 2023-11-21

Similar Documents

Publication Publication Date Title
KR102695787B1 (ko) 화면 내 블록 복사 모드 및 화면 간 예측 도구들 간의 상호작용
US11924421B2 (en) Blending method for inter prediction with geometry partition
US11856185B2 (en) Pruning method in different prediction mode
US11671586B2 (en) Modified history based motion prediction
US11563972B2 (en) Construction method for a spatial motion candidate list
WO2020233660A1 (en) Syntax-based motion candidate derivation in sub-block merge mode
WO2020164544A1 (en) Updating of history based motion vector prediction tables
KR102711349B1 (ko) 화면 내 블록 복사를 위한 히스토리 기반 움직임 후보 리스트 구성

Legal Events

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