KR102662449B1 - 디코더 측 정제 툴들의 크기 선택 적용 - Google Patents

디코더 측 정제 툴들의 크기 선택 적용 Download PDF

Info

Publication number
KR102662449B1
KR102662449B1 KR1020217024205A KR20217024205A KR102662449B1 KR 102662449 B1 KR102662449 B1 KR 102662449B1 KR 1020217024205 A KR1020217024205 A KR 1020217024205A KR 20217024205 A KR20217024205 A KR 20217024205A KR 102662449 B1 KR102662449 B1 KR 102662449B1
Authority
KR
South Korea
Prior art keywords
block
video block
current video
delete delete
current
Prior art date
Application number
KR1020217024205A
Other languages
English (en)
Other versions
KR20210121060A (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 KR20210121060A publication Critical patent/KR20210121060A/ko
Application granted granted Critical
Publication of KR102662449B1 publication Critical patent/KR102662449B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures

Abstract

예시적인 비디오 프로세싱 방법은, 프로세서에 의해, 유도 규칙에 기초하여 파라미터를 유도함으로써 현재 비디오 블록과 현재 비디오 블록의 비트스트림 표현 간의 변환 동안 움직임 벡터 정제를 위한 디코더측 움직임 유도(DMVD) 방식을 구현하는 단계를 포함한다. 변환은 현재 비디오 블록을 비트스트림 표현으로 압축하거나 비트스트림 표현을 현재 비디오 블록의 픽셀 값으로 압축해제하는 것을 포함할 수 있다.

Description

디코더 측 정제 툴들의 크기 선택 적용
관련 출원의 상호 참조
본 출원은 2019년 2월 14일에 제출된 국제 특허 출원 번호 PCT/CN2019/075068 및 2019년 4월 13일에 제출된 국제 특허 출원 번호 PCT/CN2019/082585에 대한 우선권과 혜택을 청구하는 2020년 2월 14일에 출원된 국제 특허 출원 번호 PCT/CN2020/075235의 국내 단계이다. 상술한 출원의 전체 개시물은 본 출원의 개시의 일부로서 참고로 통합된다.
본 문서는 비디오 및 이미지 코딩 및 디코딩에 관한 것이다.
디지털 비디오는 인터넷 및 다른 디지털 통신 네트워크 상에서 가장 큰 대역폭 사용을 차지한다. 비디오를 수신하고 디스플레이할 수 있는 연결된 사용자 장치의 수가 증가함에 따라, 디지털 비디오 사용에 대한 대역폭 요구가 계속 증가할 것으로 기대된다.
본 문서는, 하나의 예시적인 양상에서, 궁극적인 움직임 벡터 표현 또는 일반화된 양예측(bi-prediction)에 관련된 현재 코딩 툴들의 코딩 효율을 개선하는 비디오 코딩 툴들을 개시한다.
제1예의 비디오 프로세싱 방법은 적어도 하나의 가중치 파라미터에 기초하여 디코더측 움직임 벡터 유도(DMVD) 방식을 구현함으로써 비디오의 현재 비디오 블록에 대한 정제된 움직임 정보를 얻는 단계 - 상기 가중치 파라미터는 상기 현재 비디오 블록에 대한 최종 예측 블록에 대한 생성 프로세스에서 예측 블록에 적용됨 - ; 및 적어도 상기 정제된 움직임 정보 및 가중치 파라미터를 이용하여 상기 현재 비디오 블록 및 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다.
제2예의 비디오 프로세싱 방법은 현재 비디오 블록에 대한 코딩 툴의 사용에 의한 비디오의 현재 비디오 블록 및 비디오의 코딩된 표현 간의 변환을 위해 디코더측 움직임 벡터 유도(DMVD) 방식의 사용이 비활성화되는 것을 결정하는 단계; 및 상기 결정에 기초하여 현재 비디오 블록 및 비디오의 비트스트림 표현 간의 변환을 수행하는 단계 - 상기 코딩 툴은 상기 현재 비디오 블록의 예측 블록에 동일하지 않은 가중 인자를 적용하는 것을 포함함 - 를 포함한다.
제3예의 비디오 프로세싱 방법은 비디오의 현재 비디오 블록의 하나 이상의 참조 픽처의 POC(picture order count) 값 및 현재 비디오 블록을 포함하는 현재 픽처의 POC 값에 기초하여, 현재 비디오 블록에 대하여 하나 이상의 DMVD 방식을 활성화 또는 비활성화하는지를 결정하는 단계; 및 상기 결정에 따라 상기 현재 비디오 블록 및 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다.
제4예의 비디오 프로세싱 방법은 현재 비디오 블록에 대한 디코더측 움직임 벡터 유도(DMVD) 방식을 구현함으로써, 비디오의 현재 비디오 블록에 대한 정제된 움직임 정보를 획득하는 단계 - 대칭 움직임 벡터 차 (SMVD) 모드는 현재 비디오 블록에 대하여 활성화됨 -; 및 정제된 움직임 정보를 이용하여 상기 현재 비디오 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다.
제5예의 비디오 프로세싱 방법은 현재 비디오 블록을 포함하는 비디오에 대한 비트스트림 표현 내의 필드에 기초하여, 상기 현재 비디오 블록에 대한 디코더측 움직임 벡터 유도(DMVD) 방식을 활성화할지 비활성화할지를 결정하는 단계 - 대칭 움직임 벡터 차(SMVD) 모드는 현재 비디오 블록에 대해 활성화됨 -; DMVD 방식이 활성화된 것으로 결정 한 후, 상기 현재 비디오 블록에 대한 DMVD 방식을 구현함으로써 상기 현재 비디오 블록에 대한 정제된 움직임 정보를 획득하는 단계; 및 정제된 움직임 정보를 이용하여 상기 현재 비디오 블록 및 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다.
제6예의 비디오 프로세싱 방법은 비디오의 현재 비디오 블록의 블록 차원을 이용하는 규칙에 기초하여, 상기 현재 비디오 블록과 상기 비디오의 비트스트림 표현 간의 변환을 위해 복수의 디코더측 움직임 벡터 유도 (DMVD) 방식이 활성화 또는 비활성화되는지를 결정하는 단계; 및 상기 결정에 기초하여 변환을 수행하는 단계를 포함한다.
제7예의 비디오 프로세싱 방법은 비디오의 현재 비디오 블록에 대하여 서브블록 레벨 또는 블록 레벨에서 복수의 디코더측 움직임 벡터 정제(DMVR) 방식을 수행할지를 결정하는 단계; 복수의 DMVD 방식이 서브레벨에서 수행된 후에, 현재 비디오 블록에 대하여 동일한 서브블록 레벨에서 복수의 DMVD 방식을 구현함으로써 현재 비디오 블록에 대한 정제된 움직임 정보를 획득하는 단계; 및 정제된 움직임 정보를 이용하여 상기 현재 비디오 블록 및 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다.
제8예의 비디오 프로세싱 방법은 비디오의 현재 비디오 블록의 복수의 컴포넌트에 대한 디코더측 움직임 벡터 유도(DMVD) 방식을 활성화 또는 비활성화할지를 결정하는 단계; DMVD 방식이 활성화되는 것으로 결정한 후, DMVD 방식을 구현함으로써 상기 현재 비디오 블록에 대한 정제된 움직임 정보를 획득하는 단계; 및 DMVD 방식을 구현하는 동안, 상기 현재 비디오 블록과 상기 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다.
다른 예시적인 양상에 있어서, 상술한 방법 및 본 특허 문서에 기재된 방법은 프로세서를 포함하는 비디오 인코더 장치 또는 비디오 디코더 장치에 의해 구현될 수 있다.
다른 예시적인 양상에 있어서, 상술한 방법 및 본 특허 문서에 기재된 방법은 프로세서 실행가능 명령의 형태로 비일시적인 컴퓨터 판독가능 프로그램 매체에 저장될 수 있다.
이 양상 및 다른 양상이 본 문서에 더 기술될 수 있다.
본 개시에 따르면, 궁극적인 움직임 벡터 표현 또는 일반화된 양예측(bi-prediction)에 관련된 현재 코딩 툴들의 코딩 효율을 개선하는 비디오 코딩 툴들을 제공할 수 있다.
도 1은 머지 후보 리스트 구성을 위한 예시적인 유도 프로세스를 나타내는 도면이다.
도 2는 공간적 머지 후보의 예시적인 위치를 나타내는 도면이다.
도 3은 공간적 머지 후보의 중복성 체크(redundancy check)를 위해 고려된 후보 쌍의 예를 나타내는 도면이다.
도 4a 내지 4b는 Nx2N 및 2NxN 분할(partitions)의 제2 PU에 대한 예시적인 위치를 나타내는 도면이다.
도 5는 시간적 머지 후보에 대한 움직임 벡터 스케일링을 나타내는 도면이다.
도 6은 시간적 머지 후보(C0 및 C1)에 대한 후보 위치의 예를 나타내는 도면이다.
도 7은 결합된 양예측 머지 후보의 예를 나타내는 도면이다.
도 8은 움직임 벡터 예측 후보에 대한 유도 프로세스를 요약한 도면이다.
도 9는 공간적 움직임 벡터 후보에 대한 움직임 벡터 스케일링을 나타내는 도면이다.
도 10은 IC(illumination compensation) 파라미터를 유도하는데 사용되는 인접 샘플의 예를 나타내는 도면이다.
도 11a 내지 11b는 4-파라미터 어파인(affine) 및 6-파라미터 어파인 모드에 대한 단순화된 어파인 움직임 모델을 각각 나타내는 도면이다.
도 12는 서브블록별 어파인 움직임 벡터 필드(MVF)의 예를 나타내는 도면이다.
도 13a 내지 13b는 4-파라미터 어파인 모델 및 6-파라미터 어파인 모델의 예를 각각 나타내는 도면이다.
도 14는 상속된(inherited) 어파인 후보에 대한 AF_INTER에 대한 움직임 벡터 예측기(MVP)를 나타내는 도면이다.
도 15는 구성된 어파인 후보에 대한 AF_INTER에 대한 MVP를 나타내는 도면이다.
도 16a 내지 16b는 AF_MERGE에 대한 후보의 예를 나타내는 도면이다.
도 17은 어파인 머지 모드에 대한 후보 위치의 예를 나타내는 도면이다.
도 18은 UMVE(ultimate motion vector expression) 탐색 프로세스의 예를 나타내는 도면이다.
도 19는 UMVE 탐색 포인트의 예를 나타내는 도면이다.
도 20은 양방향(bilateral) 템플릿 매칭에 기초한 디코더측 움직임 벡터 정제(DMVR; decoder side motion vector refinement)의 예를 나타내는 도면이다.
도 21은 DMVR 내의 list 0 및 list 1간의 미러링된 움직임 벡터차(MVD(0, 1)의 예를 나타내는 도면이다.
도 22는 한번의 반복에서 체크될 수 있는 MV들의 예를 나타내는 도면이다.
도 23은 본 문서에 기재된 기술을 구현하는 하드웨어 플랫폼의 예를 나타내는 도면이다.
도 24a 내지 24h는 비디오 프로세싱의 예시적인 방법에 대한 8개의 예시적인 플로우챠트이다.
도 25는 디코더측 움직임 벡터 유도의 대칭 모드의 예를 나타내는 도면이다.
도 26은 개시된 다양한 기술이 구현될 수 있는 예시적인 비디오 프로세싱 시스템을 나타내는 블록도이다.
도 27은 본 개시의 실시예들에 따른 비디오 코딩 시스템을 나타내는 블록도이다.
도 28은 본 개시의 실시예들에 따른 인코더를 나타내는 블록도이다.
도 29는 본 개시의 실시예들에 따른 디코더를 나타내는 블록도이다.
본 문서는 압축해제되거나 디코딩된 디지털 비디오의 품질을 개선하기 위해 비디오 비트스트림의 디코더의 의해 사용될 수 있는 다양한 기술을 제공한다. 또한, 비디오 인코더는 또한 추가의 인코딩을 위해 사용되는 디코딩된 프레임을 재구성하기 위하여 인코딩 프로세스 동안 이 기술들을 구현할 수 있다.
본 문서에서 이해의 편의를 위해 섹션 표제가 사용되지만 이는 실시예 및 기술을 해당 섹션으로 한정하는 것은 아니다. 따라서, 하나의 섹션의 실시예는 다른 섹션의 실시예와 결합될 수 있다.
1. 요약
본 발명은 비디오 코딩 기술에 관한 것이다. 구체적으로, 비디오 코딩에서의 예측 블록 및 움직임 벡터 정제(motion vector refinement)에 적용되는 동일하지 않은 가중치의 상호작용에 관한 것이다. 이것은 고효율 비디오 코딩(HEVC)과 같은 기존의 비디오 코딩 표준 또는 완결될 표준(Versatile Video coding)에 적용될 수 있다. 이는 또한 미래의 비디오 코딩 표준 또는 비디오 코덱에 적용될 수 있다.
2. 간략한 토론
비디오 코딩 표준은 주로 잘 알려진 ITU-T 및 ISO/IEC 표준의 개발을 통해 발전해왔다. ITU-T는 H.261 및 H.263을 제작하였고, ISO/IEC는 MPEG-1 및 MPEG-4 Visual을 제작하였고, 이들 두 조직은 공동으로 H.262/MPEG-2 Video 및 H.264/MPEG-4 Advanced Video Coding (AVC) 및 H.265/HEVC 표준을 제작하였다. H.262 이후, 비디오 코딩 표준은 시간 예측 및 변환 코딩이 이용되는 하이브리드 비디오 코딩 구조에 기초한다. HEVC 이후의 미래의 비디오 코딩 기술을 탐구하기 위하여, 2015년에 VCEG 및 MPEG가 공동으로 JVET(Joint Video Exploration Team)를 설립하였다. 그 후, 많은 새로운 방법이 JVET에 의해 채택되어 왔고, JEM(Joint Exploration Model)이라는 참조 소프트웨어에 적용되었다. 2018년 4월, VCEG (Q6/16) 및 ISO/IEC JTC1 SC29/WG11 (MPEG) 간의 JVET(Joint Video Expert Team)가 HEVC에 비해 50% 비트레이트 감소를 목표로 하는 VVC 표준에 작용하도록 생성되었다.
VVC 드래프트의 최신 버전, 즉, 다목적 비디오 코딩(Versatile Video Coding) (드래프트 2)는 http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/11_Ljubljana/wg11/JVET-K1001-v7.zip에서 찾을 수 있다. VTM이라 불리우는 VVC의 최신 참조 소프트웨어는 https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-2.1에서 찾을 수 있다.
2.1 HEVC/H.265에서의 인터 예측
각각의 인터 예측된 PU는 하나 또는 2개의 참조 픽처 리스트에 대한 움직임 파라미터를 갖는다. 움직임 파라미터는 움직임 벡터 및 참조 픽처 인덱스를 포함한다. 2개의 참조 픽처 리스트 중의 하나의 사용은 또한 inter_pred_idc 를 사용하여 시그널링될 수 있다. 움직임 벡터들은 예측기에 대하여 델타로서 명시적으로 코딩될 수 있다.
CU가 스킵 모드로 코딩되면, 하나의 PU가 CU와 연관되고, 중요한 잔여 계수, 코딩된 움직임 벡터 델타 또는 참조 픽처 인덱스가 없다. 머지 모드가 지정되어 현재 PU에 대한 움직임 파라미터들이 공간 및 시간적 후보를 포함하는 인접 PU들로부터 획득된다. 머지 모드는 스킵 모드 뿐만 아니라 임의의 인터 예측된 PU에 적용될 수 있다. 머지 모드에 대한 대안은 움직임 파라미터들의 명시적 전송이고, 여기서, 움직임 벡터(더 정확하게, 움직임 벡터 예측기와 비교하여 움직임 벡터 차(MVD)), 각 참조 픽처 리스트에 대한 해당 참조 픽처 인덱스 및 참조 픽처 리스트 사용은 각 PU마다 명시적으로 시그널링된다. 이러한 모드는 본 개시에서 AMVP (advanced motion vector prediction)로 명명된다.
시그널링이 2개의 참조 픽처 리스트 중의 하나가 사용된다는 것을 나타내면, PU는 샘플들의 한 블록으로부터 생성된다. 이것은 "단일 예측(uni-예측)"이라 한다. 단일 예측은 P-슬라이스 및 B 슬라이스 모두에 이용가능하다.
시그널링이 2개의 참조 픽처 리스트가 사용된다는 것을 나타내면, PU는 샘플들의 2 블록으로부터 생성된다. 이것은 "양 예측(bi-예측)"이라 한다. 양 예측은 B 슬라이스에만 이용가능하다.
다음 텍스트는 HEVC에 특정된 인터 예측 모드에 대한 세부 사항을 제공한다. 설명은 머지 모드로 시작한다.
2.1.1 참조 픽처 리스트
HEVC에서, 인터 예측이라는 용어는 현재 디코딩된 픽처 이외의 참조 픽처들의 데이터 요소(예를 들어, 샘플 값들 또는 움직임 벡터들)로부터 유도된 예측을 나타내는데 사용된다. H.264/AVC에서처럼, 픽처는 다수의 참조 픽처들로부터 예측될 수 있다. 인터 예측에 사용되는 참조 픽처는 하나 이상의참조 픽처 리스트들에서 조직된다. 참조 인덱스는 리스트 내의 참조 픽처들 중 어느 것이 예측 신호를 생성하는데 사용되어야 하는지를 식별한다.
하나의 참조 픽처 리스트 (List 0)는 P 슬라이스에 사용되며, 2개의 참조 픽처 리스트들(List 0 및 List 1)는 B 슬라이스에 사용된다. List 0/1에 포함되는 참조 픽처들은 캡쳐/디스플레이 순서에 있어서 과거 및 미래 픽처일 수 있다는 것에 유의해야 한다.
2.1.2 머지 모드
2.1.2.1 머지 모드에 대한 후보 유도
PU가 머지 모드를 이용하여 예측되면, 머지 후보 리스트 내의 엔트리(entry)를 가리키는 인덱스는 비트스트림으로부터 파싱되고 움직임 정보를 검색하는데 사용된다. 이 리스트의 구성은 HEVC 표준에 지정되어 있고, 다음 단계의 순서에 따라 요약될 수 있다.
1 단계: 초기 후보 유도
1.1 단계: 공간적 후보 유도
1.2 단계: 공간적 후보에 대한 중복성 체크
1.3 단계: 시간적 후보 유도
2 단계: 추가 후보 삽입
2.1 단계: 양예측 후보의 생성
2.2 단계: 제로 움직임 후보 삽입
이들 단계는 도 1에 개략적으로 도시된다. 공간적 머지 후보 유도를 위해, 5개의 상이한 위치에 위치하는 후보 중에서 최대 4개의 머지 후보가 선택된다. 시간적 머지 후보 유도를 위해, 2개의 후보 중에서 최대 1개의 머지 후보가 선택된다. 각 PU에 대한 일정한 수의 후보가 디코더에서 상정되므로, 1단계에서 얻어진 후보의 수가 슬라이스 헤더에서 시그널링된 머지 후보의 최대수(MaxNumMergeCand)에 도달하지 않으면 추가의 후보들이 생성된다. 후보의 수가 일정하면, 최상의 머지 후보의 인덱스는 TU(truncated unary binarization)를 이용하여 인코딩된다. CU의 크기가 8인 경우, 현재CU의 모든 PU들은 2NХ2N 예측 유닛의 머지 후보 리스트와 동일한 단일 머지 후보 리스트를 공유한다.
다음에서는 상술한 단계와 연관된 동작들이 상세히 기재된다.
도 1은 머지 후보 리스트 구성을 위한 예시적인 유도 프로세스를 나타내는 도면이다.
2.1.2.2 공간적 후보 유도
공간적 머지 모드의 유도에서, 도 2에 도시된 위치에 위치한 후보 중에서 최대 4개의 머지 후보가 선택된다. 유도의 순서는 A1, B1, B0, A0 및 B2이다. 위치 B2 는 위치(A1, B1, B0, A0)의 임의의 PU가 이용불가능한 경우(예를 들어, 다른 슬라이스 또는 타일에 속하기 때문에) 또는 인트라 코딩되는 경우에만 고려된다. 위치(A1)의 후보가 추가된 후, 나머지 후보들의 추가는 중복성 체크를 거치는데, 이는 동일한 움직임 정보를 갖는 후보들이 리스트로부터 제외되어 코딩 효율을 개선하는 것을 보장한다. 계산 복잡성을 줄이기 위해, 상술한 중복성 체크에서 모든 가능한 후보 쌍들이 고려되지 않는다. 대신 도 3에서 화살표로 링크된 쌍만이 고려되고, 중복성 체크에 사용되는 해당 후보가 동일한 움직임 정보를 갖지 않는 경우만 후보가 리스트에 추가된다. 중복(duplicate) 움직임 정보의 다른 소스는 2Nx2N과는 다른 분할(partition)과 연관된 "제2 PU"이다. 일 예로서, 도 4A 내지 4B는 각각 Nx2N 및 2NxN의 경우에 대한 제2 PU를 나타낸다. 현재 PU가 NХ2N로서 분할되면, 위치(A1)의 후보는 리스트 구성을 위해 고려되지 않는다. 사실, 이것을 추가함으로써, 후보는 동일한 움직임 정보를 갖는 2개의 예측 유닛을 초래하고, 이는 중복되어 코딩 유닛에 단지 하나의 PU를 갖게 된다. 마찬가지로, 위치(B1)는 현재 PU가 2NХN로서 분할될 때 고려되지 않는다.
도 2는 공간적 머지 후보들의 예시적인 위치들을 나타낸다.
도 3은 공간적 머지 후보의 중복성 체크(중복성 체크)를 위해 고려된 후보 쌍의 예들을 나타낸다.
도 4a 내지 4b는 Nx2N 및 2NxN 분할(partitions)의 제2 PU에 대한 예시적인 위치를 나타낸다.
2.1.2.3 시간적 후보 유도
이 단계에서, 단 하나의 후보만이 리스트에 추가된다. 특히, 이 시간적 머지 후보의 유도에서, 스케일링된 움직임 벡터는 주어진 참조 픽처 리스트 내에서 현재 픽처와의 POC 차가 가장 작은 픽처에 속하는 동일 위치의(col-located) PU에 기초하여 유도된다. 동일 위치의 PU의 유도에 사용될 참조 픽처 리스트는 슬라이스 헤더에서 명시적으로 시그널링된다. 시간적 머지 후보에 대한 스케일링된 움직임 벡터는 도 5의 점선에 도시된 바와 같이 획득되며, 이는 POC 거리들(tb 및 td)을 이용하여 동일 위치의 PU의 움직임 벡터로부터 스케일링되며, 여기서, tb는 현재 픽처의 참조 픽처 및 현재 픽처 간의 POC 차로 정의되고, td는 동일 위치의 픽처의 참조 픽처 및 동일 위치의 픽처 간의 POC차로 정의된다. 시간적 머지 후보의 참조 픽처 인덱스는 제로로 설정된다. 스케일링 프로세스의 실제 구현은 HEVC 사양에 기술된다. B 슬라이스의 경우, 2개의 움직임 벡터들, 즉, 참조 픽처 리스트 0에 대한 움직임 벡터 및 참조 픽처 리스트 1에 대한 움직임 벡터가 획득되고 결합되어 양예측 머지 후보가 생성된다.
도 5는 시간적 머지 후보에 대한 움직임 벡터 스케일링을 나타내는 도면이다.
참조 프레임에 속하는 동일 위치의 PU(Y)에서, 시간적 후보에 대한 위치는 도 6에 도시된 바와 같이 후보(C0 and C1) 중에서 선택된다. 위치(C0 )의 PU가 이용가능하지 않거나, 인트라 코딩이 되거나 현재 코딩 트리 유닛 (CTU, 가장 큰 코딩 유닛(LCU; largest coding unit) 행) 밖에 있는 경우, 위치(C1)가 이용된다. 그렇지 않으면, 위치(C0)가 시간적 머지 후보의 유도에 이용된다.
도 6은 시간적 머지 후보(C0 및 C1)에 대한 후보 위치의 예를 나타낸다.
2.1.2.4 추가 후보들 삽입
공간적 및 시간적 머지 후보 외에, 추가의 2가지 유형의 머지 후보, 즉, 결합 양예측 후보 및 제로 머지 후보가 있다. 결합 양예측 머지 후보는 공간적 및 시간적 머지 후보들을 이용함으로써 생성된다. 결합 양예측 머지 후보는 B 슬라이스에만 사용된다. 결합 양예측 후보는 초기 후보의 제1 참조 픽처 리스트 움직임 파라미터를 다른 후보의 제2 참조 픽처 리스트 움직임 파라미터와 결합함으로써 생성된다. 이들 두개의 튜플(tuple)이 상이한 움직임 가설을 제공한다면, 이들은 새로운 양예측 후보를 형성할 것이다. 일 예로서, 도 7은 mvL0 및 refIdxL0 또는 mvL1 및 refIdxL1를 갖는 원본 리스트(왼쪽)의 2개의 후보들이 최종 리스트(오른쪽)에 추가된 결합 양예측 머지 후보를 생성하는데 사용되는 경우를 나타낸다. 이들 추가의 머지 후보를 생성하는데 고려되는 결합에 관한 많은 규칙이 존재한다.
도 7은 결합된 양 예측 머지 후보의 예를 나타내는 도면이다
머지 후보 리스트 내의 나머지 엔트리를 채우기 위해 제로 움직임 후보들이 삽입되고, 따라서, MaxNumMergeCand 용량에 도달한다. 이들 후보들은, 제로 공간 변위, 및 제로로부터 시작하고 새로운 제로 움직임 후보가 리스트에 추가될 때마다 증가하는 참조 픽처 인덱스를 갖는다. 최종적으로, 이들 후보들에 대해서 중복성 체크가 수행되지 않는다.
2.1.3 AMVP
AMVP는 움직임 파라미터들의 명시적 전송에 사용되는 인접 PU들을 갖는 움직임 벡터의 시공간 상관을 이용한다. 각각의 참조 픽처 리스트에 대하여, 움직임 벡터 후보 리스트는, 먼저 좌측 상부의 시간적 인접 PU 위치의 이용가능성을 체크하고 중복 후보를 제거하고 제로 벡터를 추가하여 후보 리스트가 일정한 길이를 갖도록 함으로써 구성된다. 그 후, 인코더는 후보 리스트로부터 최상의 예측기를 선택하고 선택된 후보를 나타내는 해당 인덱스를 전송할 수 있다. 머지 인덱스 시그널링과 유사하게, 최상의 움직임 벡터 후보의 인덱스는 절단된 단항(truncated unary)을 이용하여 인코딩된다. 이 경우 인코딩될 최대 값은 2이다(도 8 참조). 다음 섹션에서, 움직임 벡터 예측 후보의 유도 프로세스에 관한 세부사항이 제공된다.
2.1.3.1 AMVP 후보들의 유도
도 8은 움직임 벡터 예측 후보에 대한 유도 프로세스를 요약한 도면이다.
움직임 벡터 예측에서, 2가지 유형의 움직임 벡터 후보, 즉, 공간적 움직임 벡터 후보 및 시간적 움직임 벡터 후보가 고려된다. 공간적 움직임 벡터 후보 유도를 위해, 도 2에 도시된 바와 같이 5개의 상이한 위치에 위치한 각각의 PU의 움직임 벡터들에 기초하여 2개의 움직임 벡터 벡터가 최종적으로 유도된다.
시간적 움직임 벡터 후보 유도를 위해, 하나의 움직임 벡터 후보가 2개의 상이한 동일 위치에 기초하여 유도된 2개의 후보로부터 선택된다. 시공간 후보의 제1 리스트가 만들어진 후, 리스트 내의 중복 움직임 벡터 후보들이 제거된다. 잠재적 후보의 수가 2보다 크면, 연관된 참조 픽처 리스트 내의 참조 픽처 인덱스가 1보다 큰 움직임 벡터 후보가 리스트로부터 제거된다. 시공간 움직임 벡터 후보의 수가 2보다 작으면, 추가의 제로 움직임 벡터 벡터가 리스트에 추가된다.
2.1.3.2 공간적 움직임 벡터 후보들
공간적 움직임 벡터 후보들의 유도에서, 도 2에 도시된 위치에 위치하는 PU들로부터 유도된 5개의 잠재적 후보들 중에서 최대 2개의 후보가 고려되고, 이들 위치는 움직임 머지의 위치와 동일하다. 현재 PU의 좌측에 대한 유도의 순서는 A0, A1,및 스케일링된 A0, 스케일링된 A1로 정의된다. 현재 PU의 상측에 대한 유도의 순서는 B0, B1, B2, 스케일링된 B0, 스케일링된 B1, 스케일링된 B2 로 정의된다. 각각의 측에 대하여, 움직임 벡터 후보로서 이용될 수 있는 4가지 경우가 존재하는데, 2가지 경우는 공간적 스케일링을 이용하도록 요구되지 않고, 2가지 경우는 공간적 스케일링이 사용되는 경우이다. 상이한 4가지 경우는 다음과 같이 요약된다.
공간적 스케일링 없음
(1) 동일한 참조 픽처 리스트, 및 동일한 참조 픽처 인덱스 (동일한 POC)
(2) 상이한 참조 픽처 리스트지만, 동일한 참조 픽처 (동일한 POC)
공간적 스케일링
(3) 동일한 참조 픽처 리스트이지만, 상이한 참조 픽처 (상이한 POC)
(4) 상이한 참조 픽처 리스트, 및 상이한 참조 픽처 (상이한 POC)
공간적 스케일링이 없는 경우가 먼저 체크된 후 공간적 스케일링이 수행된다. 공간적 스케일링은 참조 픽처 리스트와 관계없이 인접 PU의 참조 픽처와 현재 PU의 참조 픽처 사이에서 POC가 다를 때 고려된다. 좌측 후보의 모든 PU가 이용가능하지 않거나 인트라 코딩되는 경우, 상측 움직임 벡터에 대한 스케일링은 허용되어 좌측 및 상측 MV 후보의 병렬 유도를 돕는다. 그렇지 않으면, 공간적 스케일링은 상측 움직임 벡터에 대하여 허용되지 않는다.
도 9는 공간적 움직임 벡터 후보에 대한 움직임 벡터 스케일링을 나타내는 도면이다.
공간적 스케일링 프로세스에서, 인접 PU의 움직임 벡터는 도 9에 도시된 바와 같이 시간적 스케일링에 대한 것과 유사한 방식으로 스케일링된다. 주요 차이점은 현재 PU의 참조 픽처 리스트 및 인덱스가 입력으로 제공된다는 것이며, 실제 스케일링 프로세스는 시간적 스케일링 프로세스와 동일하다.
2.1.3.3 시간적 움직임 벡터 후보
참조 픽처 인덱스 유도를 제외하고, 시간적 머지 후보의 유도를 위한 모든 프로세스는 공간적 움직임 벡터 후보의 유도를 위한 것과 동일하다 (도 6 참조). 참조 픽처 인덱스는 디코더로 시그널링된다.
2.2 JEM에서의 LIC(Local Illumination Compensation)
LIC는 스케일링 인자(a) 및 오프셋(b)을 이용한 조도 변화(illumination changes)에 대한 선형 모델에 기초한다. 이는 각각의 인터-모드 코딩된 코딩 유닛(CU)에 대하여 적응적으로 활성화(enable) 또는 비활성화(disable)된다.
도 10은 IC 파라미터를 유도하는데 사용되는 인접 샘플의 예를 나타내는 도면이다.
LIC가 CU에 적용되면, 현재 CU의 인접 샘플 및 그들의 대응 참조 샘플을 이용하여 파라미터(ab)를 유도하도록 최소 자승 오차 방법(least square error method)이 채용된다. 특히, 도 12에 도시된 바와 같이, CU의 서브샘플링된 (2:1 서브샘플링) 인접 샘플들 및 참조 픽처 내의 (현재 CU 또는 서브 CU의 움직임 정보에 의해 식별되는) 대응하는 샘플들이 사용된다.
2.2.1 예측 블록들의 유도
IC 파라미터들은 예측 방향 마다 별도로 유도되고 적용된다. 예측 방향 마다, 디코딩된 움직임 정보를 갖는 제1 예측 블록이 생성된 후, LIC 모델을 적용함으로써, 임시 예측 블록이 획득된다. 그 후, 2개의 임시 예측 블록이 이용되어 최종 예측 블록을 유도한다.
CU가 머지 모드로 코딩되면, LIC 플래그는 머지 모드에서 움직임 정보 복사(copy)와 유사한 방식으로 인접 블록으로부터 복사되고; 그렇지 않으면, LIC가 적용되는지를 나타내기 위해 CU에 대하여 LIC 플래그가 시그널링된다.
픽처에 대해 LIC가 활성화되면, LIC가 CU에 대하여 적용되는지를 결정하기 위해 추가의 CU 레벨 RD 체크가 필요하다. CU에 대해 LIC가 활성화되면, 정수 픽셀(pel) 움직임 탐색 및 분수 픽셀 움직임 탐색을 위해, 각각, SAD 및 SATD 대신, MR-SAD(mean-removed sum of absolute difference) 및 MR-SATD(mean-removed sum of absolute Hadamard-transformed difference)가 사용된다.
인코딩 복잡성을 줄이기 위해, 다음의 인코딩 방식이 JEM에서 적용된다.
현재 픽처 및 그 참조 픽처 사이에서 명백한 조도 변화가 없는 경우, LIC가 전체 픽처에 대하여 비활성화된다. 이 상황을 식별하기 위하여, 현재 픽처 및 현재 픽처의 모든 참조 픽처의 히스토그램이 인코더에서 산출된다. 현재 픽처와 현재 픽처의 모든 참조 픽처 간의 히스토그램차가 주어진 임계치보다 작으면, LIC는 현재 픽처에 대하여 비활성화되고, 그렇지 않으면, LIC는 현재 픽처에 대하여 활성화된다.
2.3 VVC에서의 인터 예측 방법들
MVD, 어파인 예측 모드, 삼각 예측 모드(TPM), 어드밴스드 TMVP (ATMVP, SbTMVP라고도 함), GBI(generalized Bi-prediction), 양방향 광학 플로우 (BIO 또는 BDOF)를 시그널링하기 위한 AMVR(adaptive motion vector difference resolution (AMVR) 등의 인터 예측 개선을 위한 몇 개의 새로운 코딩 기술이 존재한다.
2.3.1 VVC에서 코딩 블록 구조
VVC에서, 픽처를 정사각형 또는 직사각형 블록으로 분할하는데 쿼드트리/바이너리트리/멀티플트리 (QT/BT/TT) 구조가 채택된다.
QT/BT/TT외에, I 프레임을 위한VVC에서 별도의 트리(듀얼 코딩 트리라 함)가 또한 채택된다. 별도의 트리에 대해서, 코딩 블록 구조가 루마 또는 크로마 컴포넌트에 대해 별도로 시그널링된다.
2.3.2 적응적 움직임 벡터 차 해상도
HEVC에서, (PU의 움직임 벡터 및 예측된 움직임 벡터 간의) 움직임 벡터 차 (MVD)는 슬라이스 헤더에서 use_integer_mv_flag가 0일 때 1/4 루마 샘플의 단위로 시그널링된다. VVC에서, 국부적 적응적 움직임 벡터 해상도(AMVR)가 도입된다. VVC에서, MVD는 1/4 루마 샘플, 정수 루마 샘플 또는 4개의 루마 샘플 (즉, 1/4-픽셀, 1-픽셀, 4-픽셀)의 단위로 코딩된다. MVD 해상도는 코딩 유닛(CU) 레벨에서 제어되고, MVD 해상도 플래그는 적어도 하나의 0이 아닌 MVD 컴포넌트를 갖는 각각의 CU에 대하여 조건적으로 시그널링된다.
적어도 하나의 0이 아닌 MVD 컴포넌트를 갖는 CU에 대하여, 1/4 루마 샘플 MV 정밀도가 CU에 사용되는지를 나타내기 위해 제1 플래그가 시그널링된다. (1과 동일한) 제1 플래그가 1/4 루마 샘플 MV 정밀도가 사용되지 않는다는 것을 나타내면, 정수 루마 샘플 MV 정밀도 또는 4개의 루마 샘플 MV 정밀도가 사용되는지를 나타내기 위해 또 다른 플래그가 시그널링된다.
CU의 제1 MVD 해상도 플래그가 제로이거나 CU에 대하여 코딩되지 않으면(CU내의 모든 MVD가 제로인 것을 의미한다), 1/4 루마 샘플 MV 해상도는 CU에 사용된다. CU가 정수 루마 샘플 MV 해상도 또는 4 루마 샘플 MV 해상도를 사용하면, CU에 대한 AMVP 후보 리스트 내의 MVP는 해당 정밀도로 반올림(rounded)된다.
2.3.3 어파인 움직임 보상 예측
HEVC에서, 움직임 보상 예측(MCP)에 대해 변환 움직임 모델(translation motion model)만이 적용된다. 현실 세계에서는, 많은 종류의 움직임, 예를 들어, 줌인/아웃, 회전, 원근 움직임 및 다른 불규칙한 움직임이 존재한다. VVC에서, 단순화된 어파인 변환 움직임 보상 예측은 4-파라미터 어파인 모델 및 6-파라미터 어파인 모델과 함께 적용된다. 도 13에 도시된 바와 같이, 블록의 어파인 움직임 필드는 4-파라미터 어파인 모델에 대한 2개의 제어 포인트 움직임 벡터(CPMV) 및 6-파라미터 어파인 모델에 대한 3개의 CPMV에 의해 기술된다.
도 11a 내지 11b는 4-파라미터 어파인(어파인) 및 6-파라미터 어파인 모드에 대한 단순화된 어파인 움직임 모델을 각각 나타내는 도면이다.
블록의 움직임 벡터 필드(MVF)는 식(1)의 4-파라미터 어파인 모델 (4-파라미터는 변수(a, b, e f)로서 정의됨) 및 식(2)의 6-파라미터 어파인 모델 (6-파라미터는 변수(a, b, c, d, e f)로서 정의됨)을 갖는 다음의 식에 의해 기술된다.
여기서 는 좌측 상단 코너 제어 포인트의 움직임 벡터이고, 는 우측 상단 코너 제어 포인트의 움직임 벡터이고, 는 좌측 하단 코너 제어 포인트의 움직임 벡터이며, 이들 3개의 움직임 벡터는 제어 포인트 움직임 벡터들 (CPMV)이라 불리우고, (x, y)는 현재 블록 내의 좌측 상단 샘플에 대한 대표 포인트의 좌표를 나타내고, 는 (x, y)에 위치한 샘플에 대하여 유도된 움직임 벡터이다. CP 움직임 벡터들은 (어파인 AMVP 모드에서처럼) 시그널링되거나 (어파인 머지 모드에서처럼) 즉석에서 유도될 수 있다. wh 는 현재 블록의 폭 및 높이이다. 실제로, 나눗셈(division)은 반올림 연산을 갖는 우측 시프트에 의해 구현된다. VTM에서, 대표 포인트는 서브블록의 중심 위치인 것으로 정의되며, 예를 들어, 현재 블록 내의 좌측 상단 샘플에 대한 서브블록의 좌측 상단 코너의 좌표가 (xs, ys)이면, 대표 포인트의 좌표는 (xs+2, ys+2)인 것으로 정의된다. 서브블록(즉, VTM에서 4x4)마다, 대표 포인트는 전체 서브블록에 대한 움직임 벡터를 유도하는데 이용된다.
움직임 보상 예측을 더 단순화하기 위하여, 서브블록 기반 어파인 변환 예측이 적용된다. MХN (M 및 N은 현재 VVC에서 4로 설정됨) 서브블록의 움직임 벡터를 유도하기 위하여, 도 14에 도시된 바와 같이, 각 서브블록의 센터 샘플의 움직임 벡터는 식(1) 및 (2)에 따라 산출되고 1/16 분수 정확도로 반올림된다. 1/16-픽셀에 대한 움직임 보상 보간이 적용되어 유도된 움직임 벡터를 갖는 각각의 서브블록의 예측을 생성한다. 1/16-픽셀에 대한 보간 필터는 어파인 모드에 의해 도입된다.
도 12는 서브블록별 어파인 움직임 벡터 필드(MVF)의 예를 나타내는 도면이다.
MCP 후에, 각각의 서브블록의 고정확도 움직임 벡터가 반올림되고 일반 움직임 벡터와 동일한 정확도로 저장된다.
2.3.3.1 어파인 예측의 시그널링
병진(translational) 움직임 모델과 유사하게, 어파인 예측에 의한 부가 정보(side information)을 시그널링하기 위한 2개의 모드가 존재한다. 이들은AFFINE_INTER 및 AFFINE-MERGE 모드이다.
2.3.3.2 AF_INTER 모드
8보다 큰 폭 및 높이를 갖는 CU의 경우, AF_INTER 모드가 적용될 수 있다. CU 레벨의 어파인 플래그는 AF_INTER 모드가 이용되는지를 나타내도록 비트스트림에서 시그널링된다.
이 모드에서, 각각의 참조 픽처 리스트 (List 0 또는 List 1)에 대하여, 어파인 AMVP 후보 리스트는 다음의 순서로 3가지 유형의 어파인 움직임 예측기로 구성되고, 각각의 후보는 현재 블록의 추정된 CPMV를 포함한다. 인코더측에서 발견된 최상의 CPMV (도 17의 ) 와 추정된 CPMV의 차가 시그널링된다. 또한, 추정된 CPMV가 유도되는 어파인 AMVP 후보의 인덱스가 추가로 시그널링된다.
1) 상속된 어파인 움직임 예측기
체킹 순서는 HEVC AMVP 리스트 구성에서의 공간 MVP의 체킹 순서와 유사하다. 먼저, 좌측의 상속된 어파인 움직임 예측기는, 어파인 코딩되고 현재 블록과 동일한 참조 픽처를 갖는 {A1, A0}의 첫번째 블록으로부터 유도된다. 둘째로, 상측의 상속된 어파인 움직임 예측기는, 어파인 코딩되고 현재 블록과 동일한 참조 픽처를 갖는 {B1, B0, B2}의 제1 블록으로부터 유도된다. 5개의 블록(A1, A0, B1, B0, B2)은 도 16에 도시된다.
인접 블록이 어파인 모드로 코딩되는 것으로 여겨지면, 인접 블록을 커버하는 코딩 블록의 CPMV는 현재 블록의 CPMV의 예측기를 유도하는데 사용된다. 예를 들어, A1이 넌-어파인 모드로 코딩되고 A0이 4-파라미터 어파인 모드로 코딩되면, 좌측의 상속된 어파인 MV 예측기는 A0로부터 유도된다. 이 경우, 도 17의 좌측 상단 CPMV에 대한 및 우측 상단 CPMV에 대한 로 표시된 A0를 커버하는 CU의 CPMV는 현재 블록의 (좌표(x0, y0)를 갖는) 좌측 상단, (좌표(x1, y1)를 갖는) 우측 상단 및 (좌표(x2, y2)를 갖는) 우측 하단에 대한 로 표시된 현재 블록의 추정된 CPMV를 유도하는데 이용된다.
구성된 어파인 움직임 예측기는, 도 17에 도시된 바와 같이, 동일한 참조 픽처를 갖는 인접하는 인터 코딩된 블록들로부터 유도된 제어 포인트 움직임 벡터(CPMVs)로 구성된다. 현재 어파인 움직임 모델이 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로서 사용되는 경우에만, 구성된 어파인 움직임 예측기가 후보 리스트에 삽입된다.
구성된 어파인 움직임 예측기를 후보 리스트에 삽입할 때 프루닝(pruning) 프로세스가 적용되지 않는다.
3) 일반 AMVP 움직임 예측기
어파인 움직임 예측기의 수가 최대로 도달할 때까지 다음이 적용된다.
1) 이용가능하면 모든 CPMV를 와 동일하게 설정함으로써 어파인 움직임 예측기를 유도한다.
2) 이용가능하면 모든 CPMV를 와 동일하게 설정함으로써 어파인 움직임 예측기를 유도한다.
3) 이용가능하면 모든 CPMV를 와 동일하게 설정함으로써 어파인 움직임 예측기를 유도한다.
4) 이용가능하면 모든 CPMV를 HEVC TMVP와 동일하게 설정함으로써 어파인 움직임 예측기를 유도한다.
5) 이용가능하면 모든 CPMV를 제로 MV와 동일하게 설정함으로써 어파인 움직임 예측기를 유도한다.
는 구성된 어파인 움직임 예측기에서 이미 유도되었다.
도 13a 내지 13b는 4-파라미터 어파인 모델 및 6-파라미터 어파인 모델의 예를 각각 나타내는 도면이다.
도 14는 상속된 어파인 후보에 대한 AF_INTER에 대한 움직임 벡터 예측기(MVP)를 나타내는 도면이다.
도 15는 구성된 어파인 후보에 대한 AF_INTER에 대한 MVP를 나타내는 도면이다.
도 16a 내지 16b는 AF_MERGE에 대한 후보의 예를 나타내는 도면이다.
AF_INTER 모드에서, 4/6-파라미터 어파인 모드가 이용되면, 2/3 제어 포인트가 필요하므로, 2/3 MVD는 도 15에 도시된 바와 같이 이들 제어 포인트들에 대해 코딩될 필요가 있다. JVET-K0337에서는, MV를 다음과 같이 유도할 것을 제안한다. 즉, 로부터 예측된다.
여기서, 는, 도 15B에 도시된 바와 같이, 좌측 상단 픽셀(i = 0), 우측 상단 픽셀(i = 1) 또는 좌측 하단 픽셀(i = 2)의 예측된 움직임 벡터, 움직임 벡터 차 및 움직임 벡터이다. 2개의 움직임 벡터들 (예를 들어, mvA(xA, yA) 및 mvB(xB, yB))의 추가는 2개의 컴포넌트를 별도로 합산하는 것, 즉, newMV = mvA + mvB, 과 동일하고, newMV의 2개의 컴포넌트는 각각 (xA + xB) 및 (yA + yB)로 설정된다.
2.3.3.3 AF_MERGE 모드
CU가 AF_MERGE 모드에서 적용되면, 유효한 인접 재구성된 블록으로부터 어파인 모드로 코딩된 제1 블록을 얻는다. 후보 블록에 대한 선택 순서는 도 17에 도시된 바와 같이 좌측, 상단, 우측 상단, 좌측 하단 및 좌측 상단이다(A, B, C, D, E의 순으로 표시). 예를 들어, 인접 좌측 하단 블록이 도 17에서 A0에 의해 표시된 바와 같이 어파인 모드로 코딩되면, 요소(B), 블록(A)을 포함하는 인접 CU/PU의 좌측 상단 코너, 우측 상단 코너 및 좌측 하단 코너의 제어 포인트(CP) 움직임 벡터들 mv 0 N, mv 1 Nmv 2 N 가 페치된다. 현재 CU/PU 상의 좌측 상단 코너/우측 상단/좌측 하단의 (6-파라미터 어파인 모델을 위해서만 사용되는) 움직임 벡터 에 기초하여 산출된다. VTM-2.0에서, 좌측 상단 코너에 위치하는 서브블록 (예를 들어, VTM의 4Х4 블록)은 mv0를 저장하고, 현재 블록이 어파인 코딩되면, 우측 상단 코더에 위치한 서브블록은 mv1을 저장한다. 현재 블록이 6-파라미터 어파인 모델로 코딩되면, 좌측 하단 코너에 위치하는 서브블록은 mv2을 저장하고; 그렇지 않으면(4-파라미터 어파인 모델로 코딩되면), LB는 mv2'를 저장한다. 다른 서브블록들은 MC에 사용되는 MV들을 저장한다.
현재 CU의 CPMV가 유도된 후, 단순화된 어파인 움직임 모델 식 (1) alc (2)에 따라, 현재 CU의 MVF가 생성된다. 현재 CU가 AF_MERGE 모드로 코딩되는지를 식별하기 위하여, 적어도 하나의 인접 블록이 어파인 모드로 코딩되는 경우, 어파인 플래그가 비트스트림에서 시그널링된다.
JVET-L0142 및 JVET-L0632에서, 어파인 머지 후보 리스트는 다음 단계로 구성된다.
1) 상속된 어파인 후보 삽입
상속된 어파인 후보는 그 유효한 인접 어파인 코딩된 블록의 어파인 움직임 모델로부터 후보가 유도됨을 의미한다. 최대 2개의 상속된 어파인 후보는 인접 블록들의 어파인 움직임 모델로부터 유도되어 후보 리스트에 삽입된다. 좌측 예측기의 경우, 스캔 순서는 {A0, A1}이고, 상측 예측기의 경우, 스캔 순서는 {B0, B1, B2}이다.
2) 구성된 어파인 후보 삽입
어파인 머지 후보 리스트 내의 후보의 수가 MaxNumAffineCand (예를 들어, 5)보다 작으면, 구성된 어파인 후보들은 후보 리스트에 삽입된다. 구성된 어파인 후보는, 각각의 제어 포인트의 인접 움직임 정보를 결합함으로써 후보가 구성된다는 것을 의미한다.
a) 제어 포인트에 대한 움직임 정보는 도 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는 현재 블록의 폭 및 높이이다.
도 17은 어파인 머지 모드에 대한 후보 위치의 예를 나타낸다.
각각의 제어 포인트의 움직임 정보는 다음의 우선순위에 따라 얻어진다.
- CP1의 경우, 체킹 우선순위는 B2->B3->A2이다. 이용가능하다면, B2가 이용된다. 그렇지 않으면, B2가 이용가능하면, B3이 이용된다. B2 및 B3가 이용가능하지 않으면, A2가 이용된다. 3개의 후보가 모두 이용가능하지 않으면, CP1의 움직임 정보가 얻어질 수 없다.
- CP2의 경우, 체킹 우선순위는 B1->B0이다.
- CP3의 경우, 체킹 우선순위는 A1->A0이다.
- CP4의 경우, T가 사용된다.
b) 둘째로, 제어 포인트들의 결합이 어파인 머지 후보를 구성하는데 사용된다.
I. 6-파라미터 어파인 후보를 구성하는데 3개의 제어 포인트의 움직임 정보가 필요하다. 3개의 제어 포인트는 다음 4개의 조합 ({CP1, CP2, CP4}, {CP1, CP2, CP3}, {CP2, CP3, CP4}, {CP1, CP3, CP4}) 중의 하나로부터 선택될 수 있다. 조합 {CP1, CP2, CP3}, {CP2, CP3, CP4}, {CP1, CP3, CP4}은 좌측 상단, 우측 상단 및 좌측 하단 제어 포인트로 표시되는 6-파라미터 움직임 모델로 변환될 것이다.
II. 4-파라미터 어파인 후보를 구성하는 2개의 제어 포인트의 움직임 정보가 필요하다. 2개의 제어 포인트는 2개의 조합 ({CP1, CP2}, {CP1, CP3}) 중의 하나로부터 선택될 수 있다. 2개의 조합은 좌측 상단 및 우측 상단 제어 포인트로 표시되는 4-파라미터 움직임 모델로 변환될 것이다.
III. 구성된 어파인 후보들의 조합들은 다음의 순서로 후보 리스트에 삽입된다.
{CP1, CP2, CP3}, {CP1, CP2, CP4}, {CP1, CP3, CP4}, {CP2, CP3, CP4}, {CP1, CP2}, {CP1, CP3}
i. 각 조합에 대해, 각 CP에 대한 list X의 참조 인덱스가 체크되고, 이들이 모두 동일하면, 이 조합은 list X에 대한 유효 CPMV를 갖는다. 리스트 0 및 리스트 1 둘 다에 대해 조합이 유효 CPMV를 갖지 않으면, 이 조합은 무효로 표시된다. 그렇지 않으면, 유효이고, CPMV는 서브블록 머지 리스트에 포함된다.
3) 제로 움직임 벡터들로 패딩(padding)
어파인 머지 후보 리스트 내의 후보의 수가 5보다 작으면, 제로 참조 인덱스를 갖는 제로 움직임 벡터들은 리스트가 가득 찰 때까지 후보 리스트에 삽입된다.
특히, 서브블록 머지 후보 리스트에 대하여, MV를 갖는 4-파라미터 머지 후보는 (0, 0)로 설정되고 예측 방향은 list 0 로부터의 단예측(P 슬라이스의 경우) 및 양 예측(B 슬라이스의 경우)로 설정된다.
2.3.4 움직임 벡터 차(MMVD)를 갖는 머지
JVET-L0054에서, 궁극적인 움직임 벡터 표현 (UMVE, MMVD라고도 함)이 제시된다. UMVE는 제안된 움직임 벡터 표현 방법을 갖는 스킵 또는 머지 모드에 사용된다.
UMVE는 VVC에서 레귤러 머지 후보 리스트에 포함된 것과 동일한 머지 후보를 재사용한다. 머지 후보중에서, 기본(base) 후보가 선택될 수 있고, 제안된 움직임 벡터 표현 방법에 의해 더 확장된다.
UMVE는 시작 포인트, 움직임 크기 및 움직임 방향이 MVD를 표현하는데 사용되는 새로운 움직임 벡터 차 (MVD) 표현 방법을 제공한다.
도 18은 UMVE 탐색 프로세스의 예를 나타낸다.
도 19는 UMVE 탐색 포인트의 예를 나타낸다.
이 제안 방법은 머지 후보 리스트를 그대로 이용한다. 그러나, 디폴트 머지 유형(MRG_TYPE_DEFAULT_N)인 후보만이 UMVE의 확장을 위해 고려된다.
기본(base) 후보 인덱스는 시작 포인트를 정의한다. 기본 후보 인덱스는 다음과 같이 리스트 내의 후보 중에서 최상의 후보를 나타낸다.
기본 후보의 수가 1이면, 기본 후보 IDX는 시그널링되지 않는다.
거리 인덱스는 움직임 크기 정보이다. 거리 인덱스는 시작 포인트 정보로부터 미리 정의된 거리를 나타낸다. 미리 정의된 거리는 다음과 같다.
방향 인덱스는 시작 포인트에 대한 MVD의 방향을 나타낸다. 방향 인덱스는 이하에 도시된 바와 같이 4 방향을 나타낼 수 있다.
UMVE 플래그는 스킵 플래그 또는 머지 플래그를 전송한 후에 시그널링된다. 스킵 또는 머지 플래그가 참이면, UMVE 플래그가 파싱(parse)된다. UMVE 플래그가 1이면, UMVE 신택스가 파싱된다. 그러나, 1이 아니면, 어파인 플래그가 파싱된다. 어파인 플래그가 1이면, 이는 어파인 모드이다. 그러나, 1이 아니면, VTM의 스킵/머지 모드에 대하여 스킵/머지 인덱스가 파싱된다.
UMVE 후보에 의한 추가의 라인 버퍼가 필요하지 않다. 소프트웨어의 스킵/머지 후보가 기본 후보로 직접 사용되기 때문이다. 입력 UMVE 인덱스를 이용하여, MV의 보완은 움직임 보상 직전에 결정된다. 이를 위해 긴 라인 버퍼를 보유할 필요는 없다.
현재 공통 테스트 조건에서, 머지 후보 리스트 내의 제1 또는 제2 머지 후보가 기본 후보로 선택될 수 있다.
UMVE는 MMVD(Merge with MV Differences)로 알려져 있다.
2.3.5 디코더측 움직임 벡터 정제 (DMVR)
양예측 동작에서, 하나의 블록 영역의 예측을 위해, list0의 움직임 벡터(MV) 및 list1의 MV를 이용하여 형성된 2개의 예측 블록들이 결합되어 단일 예측 신호를 형성한다. 디코더측 움직임 벡터 정제 (DMVR) 방법에서는, 양예측의 2개의 움직임 벡터가 더 정제된다.
2.3.5.1 JEM에서의 DMVR
JEM 설계에서, 움직임 벡터들은 양방향 템플릿 매칭 프로세스에 의해 정제된다. 추가의 움직임 정보의 전송없이 정제된 MV를 얻기 위하여, 양방향 템플릿 및 참조 픽처 내의 재구성 샘플 간의 왜곡 기반 탐색을 수행하도록 양방향 템플릿 매칭이 디코더에서 적용되었다. 예는 도 22에 도시된다. 양방향 템플릿은, 도 22에 도시된 바와 같이, list0의 초기 MV0 및 list1의 MV1로부터 2개의 예측 블록의 가중 결합(즉, 평균)으로서 생성된다. 템플릿 매칭 동작은 참조 픽처에서 생성된 템플릿 및 (초기 예측 블록 주변의) 샘플 영역 간의 비용 정도(cost measures)를 산출하는 것으로 구성된다. 2개의 참조 픽처의 각각에 대하여, 최소 템플릿 비용을 산출하는 MV는 원본을 대체하는 그 리스트의 업데이트된 MV로서 간주된다. JEM에서, 9개의 MV 후보들이 리스트마다 탐색된다. 9개의 MV 후보는 원본 MV 및 수평 또는 수직 방향으로 원본 MV에 대하여 하나의 루마 샘플 오프셋을 갖는 8개의 주변 MV를 포함한다. 최종적으로, 도 22에 도시된 바와 같이, 2개의 새로운 MV, 즉, 는 양예측 결과를 생성하는데 사용된다. SAD(sum of absolute differences)는 비용 정도로서 사용된다. 하나의 주변 MV에 의해 생성된 예측 블록의 비용을 산출할 때, (정수 픽셀(pel)로) 반올림된 MV는 실제 MV대신에 예측 블록을 얻는데 실제로 사용된다.
도 20은 양방향(bilateral) 템플릿 매칭에 기초한 DMVR의 예를 나타낸다.
2.3.5.2 VVC에서의 DMVR
VVC에서의 DMVR에 대하여, list 0 및 list 1 간의 MVD 미러링은 도 21에 도시된 바와 같이 가정되고, 양방향 매칭이 수행되어, MV를 정제, 즉, 몇 개의 MVD 후보들 중 최상의 MVD를 찾는다. MVL0(L0X, L0Y) 및 MVL1(L1X, L1Y)에 의해 2개의 참조 픽처 리스트에 대한 MV를 나타낸다. 비용 함수(예를 들어, SAD)를 최소화할 수 있는 list 0에 대한 (MvdX, MvdY)로 표시된 MVD는 최상의 MVD로서 정의된다. SAD 함수에 대하여, 이는 list 0 참조 픽처 내의 움직임 벡터 (L0X+MvdX, L0Y+MvdY)로 유도된 list 0의 참조 블록 및 list 1 참조 픽처 내의 움직임 벡터 (L1X-MvdX, L1Y-MvdY)로 유도된 list 1의 참조 블록 간의 SAD 로서 정의된다.
움직임 벡터 정제 프로세스는 두번 반복될 수 있다. 각 반복에서, (정수-픽셀 정밀도를 갖는) 최대 6개의 MVD가, 도 22에 도시된 바와 같이, 2 단계로 체크된다. 제1 단계에서, MVD (0, 0), (-1, 0), (1, 0), (0, -1), (0, 1)가 체크된다. 제2 단계에서, MVD (-1, -1), (-1, 1), (1, -1) or (1, 1) 중의 하나가 선택될 수 있고 추가로 체크된다. 함수 Sad(x, y)가 MVD (x, y)의 SAD 값을 반환하는 것으로 가정한다. 제2 단계에서 체크된 (MvdX, MvdY)로 표시된 MVD가 다음과 같이 결정된다.
MvdX = -1;
MvdY = -1;
If (Sad(1, 0) < Sad(-1, 0))
MvdX = 1;
If (Sad(0, 1) < Sad(0, -1))
MvdY = 1;
첫번째 반복에서, 시작 포인트는 시그널링된 MV이고, 두번째 반복에서, 시작 포인트는 시그널링된 MV + 첫번째 반복에서 선택된 최상의 MVD이다. DMVR는 하나의 참조 픽처가 선행 픽처이고 다른 참조 픽처가 후속 픽처인 경우에만 적용되고, 2개의 참조 픽처는 현재 픽처로부터 동일한 픽처 오더 카운트 거리를 갖는다.
도 21은 DMVR 내의 list 0 및 list 1간의 미러링된 움직임 벡터차 MVD(0, 1)의 예를 나타낸다.
도 22는 한번의 반복에서 체크될 수 있는 MV들의 예를 나타낸다.
DMVR의 프로세스를 더 단순화하기 위하여, JVET-M0147는 JEM의 설계에 대한 몇가지 변경을 제안하였다. 특히, (곧 출시될) VTM-4.0에 채택된 DMVR 설계는 다음의 주요 특징을 갖는다.
- list0 및 list1 간의 (0,0) 위치 SAD가 임계값보다 작을 때 조기 종료.
- list0 및 list1 간의 SAD가 어떤 위치에 대해 0일 때 조기 종료.
- DMVR에 대한 블록 크기: W*H>=64 && H>=8, 여기서, W 및 H는 블록의 폭 및 높이이다.
- CU 크기의 DMVR > 16*16의 DMVR에 대해 CU를 16x16 서브블록의 배수로 분할한다. CU의 폭 또는 높이만이 16보다 크면, 수직 또는 수평방향으로만 분할된다.
- 참조 블록 크기 (W+7)*(H+7) (루마용).
- 25 포인트 SAD-기반 정수-픽셀 탐색 (즉, (+-) 2 정제 검색 범위, 단일 스테이지)
- 바이리니어 보간 기반 DMVR.
- "파라메트릭 에러 면 방정식(Parametric error surface equation)" 기반 서브-픽셀 정제. 이 절차는 최소 SAD 비용이 제로가 아니고 최상의 MVD가 마지막 MV 정제 반복에서 (0, 0)인 경우에만 수행된다.
- 루마/크로마 MC w/ 참조 블록 패딩 (필요한 경우).
- MC 및 TMVPs에만 사용되는 정제된 MV.
2.3.5.2.1 DMVR의 사용
다음의 조건들이 모두 참이면, DMVR가 활성화될 수 있다.
- SPS 내의 DMVR 활성화 플래그 (즉, sps_dmvr_enabled_flag)가 1이다
- TPM 플래그, 인터-어파인 플래그 및 서브블록 머지 플래그 (ATMVP 또는 어파인 머지), MMVD 플래그 모드가 0이다
- 머지 플래그가 1이다
- 현재 블록이 양예측되고, 현재 픽처 및 list 1 내의 참조 픽처 간의 POC 거리는 list 0 내의 참조 픽처 및 현재 픽처 간의 POC 거리와 동일하다
- 현재 CU 높이는 8보다 크거나 같다
- 루마 샘플(CU 폭*높이)의 수가 64보다 크거나 같다.
2.3.5.2.2 "파라메트릭 에러 면 방정식" 기반 서브-픽셀 정제
방법은 다음과 같이 요약된다.
1. 파라미터 오차 면 피트(fit)는 중심 위치가 주어진 반복에서 최상의 비용 위치인 경우에만 계산된다.
2. 중심 위치 비용과 중심으로부터 (-1,0), (0,-1), (1,0) 및 (0,1) 위치의 비용은 다음 식의 2-D 포물선 오차 면 방정식을 맞추는데 사용된다
여기서, 는 최소 비용을 갖는 위치에 대응하고, C는 최소 비용 값에 대응한다. 5개의 식을 5개의 미지수로 풂으로써, 는 다음과 같이 계산된다:
는 나눗셈(division)이 수행되는 정밀도(즉, 몫의 얼마나 많은 비트가 계산되는지)를 조절함으로써 필요한 서브픽셀 정밀도로 계산될 수 있다. 1/16-픽셀 정확도의 경우, 몫의 절대값의 단지 4비트만이 계산될 필요가 있고, 이는 CU 당 요구되는 2 나누기(division)의 고속 시프트 감산 기반 구현(fast shifted subtraction based implementation)에 적합하다.
3. 계산된 는 정수 거리 정제 MV에 추가되어 서브픽셀 정확 정제 델타 MV를 얻는다.
2.3.6 결합된 인트라 및 인터 예측
JVET-L0100에서, 다중 가설 예측이 제안되고, 여기서, 결합된 인트라 및 인터 예측은 다중 가설을 생성하는 하나의 방법이다.
다중 가설 예측이 인트라 모드를 개선하기 위하여 적용되면, 다중 가설 예측은 하나의 인트라 예측 및 하나의 머지 인덱싱 예측을 결합한다. 머지CU에서, 머지 모드에 대하여 하나의 플래그가 시그널링되어, 플래그가 참일 때, 인트라 후보 리스트로부터 인트라 모드를 선택하도록 한다. 루마 컴포넌트에 대해서는, DC, 평면(planar), 수평(horizontal) 및 수직(vertical) 모드를 포함하는 4개의 인트라 예측 모드로부터 인트라 후보 리스트가 유도되고, 인트라 후보 리스트의 크기는 블록 형태에 따라 3 또는 4일 수 있다. CU 폭이 CU 높이의 2배보다 크면, 수평 모드는 인트라 모드 리스트에서 제외되고, CU 높이가 CU 폭의 2배보다 크면, 수직 모드가 인트라 모드 리스트에서 제거된다. 인트라 모드 인덱스에 의해 선택된 하나의 인트라 예측 모드 및 머지 인덱스에 의해 선택된 하나의 머지 인덱싱 예측은 가중 평균을 이용하려 결합된다. 크로마 컴포넌트에 대하여, DM은 항상 추가의 시그널링없이 적용된다. 예측들을 결합하는 가중치는 다음과 같이 설명된다. DC 또는 평면 모드가 선택되거나 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)는 참조 샘플에서 가장 먼 영역에 대한 것이다. 그 후, 결합된 예측은 2개의 가중치 예측을 합산하고 3비트를 우측 시프팅함으로써 산출될 수 있다. 또한, 예측기의 인트라 가설에 대한 인트라 에측 모드는 다음의 인접 CU의 참조를 위해 저장될 수 있다.
2.3.7. JVET-M0481에서의 대칭 움직임 벡터 차
JVET-M0481에서, 양예측에서의 움직임 정보 코딩을 위해 대칭 움직임 벡터 차(SMVD)가 제안된다.
처음으로, 슬라이스 레벨에서, 변수(variables BiDirPredFlag, RefIdxSymL0 and RefIdxSymL1)가 다음과 같이 유도된다.
- 현재 픽처에 가장 가까운 참조 픽처 리스트 0 내의 순방향 참조 픽처가 탐색된다. 발견되면, RefIdxSymL0는 순방향 픽처의 참조 인덱스와 동일하게 설정된다.
- 현재 픽처에 가장 가까운 참조 픽처 리스트 1 내의 역방향 참조 픽처가 탐색된다. 발견되면, RefIdxSymL1는 역방향 픽처의 참조 인덱스와 동일하게 설정된다.
- 순방향 및 역방향 픽처 둘다가 발견되면, BiDirPredFlag는 1과 동일하게 설정된다.
- 그렇지 않으면, 다음이 적용된다:
- 현재 픽처에 가장 가까운 참조 픽처 리스트 0 내의 역방향 참조 픽처가 탐색된다. 발견되면, RefIdxSymL0는 역방향 픽처의 참조 인덱스와 동일하게 설정된다.
- 현재 픽처에 가장 가까운 참조 픽처 리스트 1 내의 역방향 참조 픽처가 탐색된다. 발견되면, RefIdxSymL1는 역방향 픽처의 참조 인덱스와 동일하게 설정된다.
- 순방향 및 역방향 픽처 둘다가 발견되면, BiDirPredFlag는 1과 동일하게 설정된다. 그렇지 않으면, BiDirPredFlag는 0과 동일하게 설정된다.
두번째로, CU 레벨에서, CU에 대한 예측 방향이 양예측이고 BiDirPredFlag가 1이면, 대칭 모드가 사용되는지의 여부를 나타내는 대칭 모드 플래그가 명시적으로 시그널링된다.
플래그가 참이면, mvp_l0_flag, mvp_l1_flag 및 MVD0만이 명시적으로 시그널링된다. 참조 인덱스는 list 0 및 list 1에 대해 RefIdxSymL0, RefIdxSymL1와 동일하도록 설정된다. MVD1는-MVD0와 동일하게 설정된다. 최종 움직임 벡터들은 이하의 식에 도시된다.
도 25는 대칭 모드의 예를 나타낸다.
코딩 유닛 신택스 내의 변형은 표 4에 (볼드 이탤릭체로) 도시된다 .
표 4 - 코딩 유닛 신택스 내의 변형
3. 현재 비디오 코딩 기술의 문제점
현재 디코더측 움직임 벡터 유도(DMVD)는 다음과 같은 문제점을 가질 수 있다.
1. 현재 픽처에 대하여 가중 예측이 활성화되는 경우에도 DMVR이 활성화된다.
2. 2개의 참조 픽처가 현재 픽처로부터 상이한 POC 거리를 가질 때 DMVD가 비활성화된다.
3. DMVR 및 BIO는 서로 다른 블록 크기에 대해 활성화된다.
a. W * H >= 64 && H >= 8일 때 DMVR가 활성화된다
b. H >= 8 && !(W == 4 && H == 8)일 때 BIO가 활성화된다
4. DMVR 및 BIO는 상이한 서브블록 레벨에서 수행된다.
a. DMVR가 서브블록 레벨에서 수행될 수 있다. CU의 폭 및 높이 모두 16보다 크면, 16x16 서브블록으로 분할된다. 그렇지 않고 CU의 폭이 16보다 크면, 수직 방향으로 16xH 서브블록으로 분할되고, CU의 높이가 16보다 크면, 수평 방향으로 Wx16 서브블록으로 분할된다.
b. BIO는 블록 레벨에서 수행된다.
4. 예시적인 기술들 및 실시예들
이하의 상세한 설명은 일반적인 개념을 설명하기 위해 예로서 고려되어야 한다. 이들 기술은 협소한 의미로 해석되어서는 안된다. 또한, 이들 기술은 임의의 방식으로 결합될 수 있다.
이 문서에서, DMVD는 블록/서브블록 움직임 정보를 유도하고 정제하기 위하여 움직임 추정을 수행하는 DMVR 및 FRUC 같은 방법 및 샘플별 움직임 정제(sample-wise motion refinement)를 수행하는 BIO를 포함한다.
예측 블록에 적용되는 동일하지 않은 가중치는 2개의 예측 블록의 평균 대신에 예측 블록에 추가의 동작을 적용할 필요가 있는 코딩 툴의 GBI 프로세스, LIC 프로세스, 가중 예측 프로세스 또는 다른 인코딩/디코딩 프로세스에 사용되는 것을 지칭한다.
list 0 및 list 1 내의 참조 픽처가 각각 Ref0 및 Ref1이고, 현채 픽처 및 Ref0 간의 POC 거리가 PocDist0 (즉, 현재 픽처의 POC - Ref0의 POC), and Ref1 및 현재 픽처 간의 POC 거리가 PocDist1 (즉, Ref1의 POC - 현재 픽처의 POC)인 것으로 가정한다. 이 특허 문서에서, PocDist1는 PocDis1와 동일하고, PocDist0는 PocDis0와 동일하다. 블록의 폭과 높이는 각각 W 및 H로 표시된다. 함수 abs(x)는 x의 절대값을 반환하는 것으로 가정한다.
1. 최종 예측 블록 생성 프로세스에서 예측 블록에 적용되는 파라미터들(예를 들어, 가중치 정보)는 DMVD 프로세스에서 이용될 수 있다.
a. GBi 또는 가중 예측 등의 파라미터가 디코더로 시그널링될 수 있다. GBi는 또한 코딩 유닛(CU) 가중치를 갖는 양예측(BCW)으로 알려져 있다.
b. 파라미터는 LIC로 디코더에서 유도될 수 있다.
c. 파라미터는 샘플 값 세트를 다른 샘플 값 세트로 매핑하는 프로세스를 재구성(reshaping)하기 위한 것일 수 있다.
d. 일 예에서, 예측 블록에 적용되는 파라미터는 DMVD에서 적용될 수 있다.
i. 일 예에서, 비용 함수 (예를 들어, SAD, MR-SAD, 그래디언트)를 산출할 때, GBI 인덱스에 따른 가중 인자가 먼저 예측 블록에 적용된 후, 비용이 산출된다.
ii. 일 예에서, 비용 함수 (예를 들어, SAD, MR-SAD, 그래디언트)를 산출할 때, 가중 예측에 따른 가중 인자 및/또는 오프셋이 먼저 예측 블록에 적용된 후, 비용이 산출된다.
iii. 일 예에서, 비용 함수 (예를 들어, SAD, MR-SAD, 그래디언트)를 산출할 때, LIC 파라미터에 따른 가중 인자 및/또는 오프셋이 먼저 예측 블록에 적용된 후, 비용이 산출된다.
iv. 일 예에서, BIO에서 시간적 그래디언트 및 공간적 그래디언트를 산출할 때, GBI 인덱스에 따른 가중 인자가 먼저 예측 블록에 적용된 후, 이들 그래디언트가 산출된다.
v. 일 예에서, BIO에서 시간적 그래디언트 및 공간적 그래디언트를 산출할 때, 가중 예측에 따른 가중 인자 및/또는 오프셋이 먼저 예측 블록에 적용된 후, 이들 그래디언트가 산출된다.
vi. 일 예에서, BIO에서 시간적 그래디언트 및 공간적 그래디언트를 산출할 때, LIC 파라미터에 따른 가중 인자 및/또는 오프셋이 먼저 예측 블록에 적용된 후, 이들 그래디언트가 산출된다.
vii. 대안으로, 또한, 재구성(reshaped) 도메인에서 비용 산출(예를 들어, SAD, MR-SAD) /그래디언트 산출이 수행된다.
viii. 대안으로, 또한, 움직임 정보가 정제된 후, 정제된 움직임 정보로 생성된 예측 블록에 대해 재구성 프로세스가 비활성화된다.
e. 일 예에서, DMVD는 GBI 모드 또는/및 LIC 모드 또는/및 가중 예측 또는/및 다중 가설 예측에서 비활성화될 수 있다
f. 일 예에서, 2개의 참조 픽처의 가중 인자 및/또는 오프셋이 상이할 때 DMVD가 가중 예측에서 비활성화될 수 있다.
g. 일 예에서, 2개의 참조 블록의 가중 인자 및/또는 오프셋이 상이할 때 DMVD가 LIC에서 비활성화될 수 있다.
2. DMVD 프로세스 (예를 들어, DMVR 또는 BIO)는 제1 픽처 오더 카운트 거리(PocDis0)가 제2 픽처 오더 카운트 거리(PocDis1)와 동일하지 않을 때에도 양예측 블록에 적용될 수 있다.
a. 일 예에서, 모든 DMVD 프로세스가 PocDis0 및 PocDis1에 대한 동일한 규칙에 따라 활성화 또는 비활성화될 수 있다.
i. 예를 들어, 모든 DMVD 프로세스는 PocDis0가 PocDis1와 동일할 때 활성화될 수 있다.
ii. 예를 들어, 모든 DMVD 프로세스는 PocDis0가 PocDis1와 동일하지 않을 때 활성화될 수 있다.
1. 대안으로, 또한, 모든 DMVD 프로세스는 PocDis0 * PocDist1가 0보다 작을 때 비활성화될 수 있다.
iii. 예를 들어, 모든 DMVD 프로세스는 PocDis0가 PocDis1와 동일하지 않을 때 비활성화될 수 있다.
iv. 예를 들어, 모든 DMVD 프로세스는 PocDis0 * PocDist1가 0보다 작을 때 비활성화될 수 있다.
b. 일 예에서, PocDis0가 PocDis1와 동일한 현재 설계가 활성화된다.
i. 일 예에서, list 0의 MVD는 list 1로 미러링될 수 있다. 즉, (MvdX, MvdY)가 list 0에 사용되면, (-MvdX, -MvdY)가 list 1에 사용되어 2개의 참조 블록을 식별한다.
ii. 대안으로, list 1의 MVD는 는 list 0로 미러링될 수 있다. 즉, (MvdX, MvdY)가 list 1에 사용되면, (-MvdX, -MvdY)가 list 0에 사용되어 2개의 참조 블록을 식별한다.
c. 대안으로, list 0 및 list 1를 위한 미러링된 MVD를 사용하는 대신(즉, (MvdX, MvdY)가 list 0에 이용되면, (-MvdX, -MvdY)가 list 1에 사용될 수 있다), 대신 미러링되지 않은 MVD가 사용되어 2개의 참조 블록을 식별한다.
i. 일 예에서, list 0의 MVD는 PocDist0 및 PocDist1에 따라 list 1로 스케일링될 수 있다.
1. list 0의 선택된 MVD를 (MvdX, MvdY)로 표시한 후, (-MvdX*PocDist1/ PocDist0, -MvdY*PocDist1/ PocDist0)가 list 1에 적용된 MVD로서 선택된다.
ii. 일 예에서, list 1의 MVD는 PocDist0 및 PocDist1 에 따라 list 0으로 스케일링될 수 있다.
1. list 1의 선택된 MVD를 (MvdX, MvdY)로 표시한 후, (-MvdX*PocDist0 / PocDist1, -MvdY*PocDist0/ PocDist1)가 list 0에 적용된 MVD로서 선택된다.
iii. 스케일링의 나눗셈 연산은 룩업 테이블, 다중 연산 및 우측-우측 연산에 의해 구현될 수 있다.
d. 2개의 참조 픽처의 MVD를 정의하는 방법(예를 들어, 미러를 사용하는지 또는 MVD의 스케일링을 사용하는지)는 참조 픽처에 의존할 수 있다.
i. 일 예에서, abs(PocDist0)가 abs(PocDist1)보다 작거나 같으면, list 0의 MVD는 PocDist0 및 PocDist1에 따라 list 1로 스케일링될 수 있다.
ii. 일 예에서, abs(PocDist0)가 abs(PocDist1)보다 크거나 같으면, list 0의 MVD가 PocDist0 및 PocDist1에 따라 list 1로 스케일링될 수 있다.
iii. 일 예에서, abs(PocDist1)가 abs(PocDist0)보다 작거나 같으면, list 1의 MVD PocDist0 및 PocDist1에 따라 list 0으로 스케일링될 수 있다.
iv. 일 예에서, abs(PocDist1)가 abs(PocDist0)보다 크거나 같으면, list 1의 MVD는 PocDist0 및 PocDist1에 따라 list 0으로 스케일링될 수 있다.
v. 일 예에서, 하나의 참조 픽처가 선행 픽처이고 다른 참조 픽처가 현재 픽처의 다음 픽처이면, list 0의 MVD는 list 1에 미러링될 수 있고, MVD 스케일링이 수행되지 않는다.
e. 한 종류의 DMVD가 적용되는지 및 어떻게 적용되는지는 PocDist0의 부호 및 PocDist1의 부호에 의존할 수 있다.
i. 일 예에서, PocDist0 * PocDist1 < 0일 때 한 종류의 DMVD만이 수행될 수 있다.
ii. 일 예에서, PocDist0 * PocDist1 > 0일 때 한 종류의 DMVD만이 수행될 수 있다.
f. 대안으로, DMVD 프로세스(예를 들어, DMVR 또는 BIO)는 PocDist0가 PocDist1와 동일하지 않을 때 비활성화될 수 있다.
3. DMVR 또는/및 다른 DMVD 방법은 SMVD 모드에서 활성화될 수 있다.
a. 일 예에서, SMVD 모드에 따른 비트스트림으로부터의 디코딩된 MVD/MV는 하나의 블록을 디코딩하는데 사용되기 전에 더 정제될 수 있다.
b. 일 예에서, SMVD 모드에서, MV/MVD 정밀도가 N-픽셀이면, DMVR 또는/및 다른 DMVD 방법이 사용되어 mvdDmvr에 의해 MVD를 정제할 수 있다. mvdDmvr는 M-픽셀 정밀도를 갖는다. N, M = 1/16, 1/8, 1/4, 1/2, 1, 2, 4, 8, 16 등
i. 일 예에서, M은 N보다 작거나 같을 수 있다.
c. 일 예에서, MVD는 SMVD 모드에서 시그널링되지 않을 수 있고, 대신, DMVR 또는/및 다른 DMVD 방법이 적용되어 MVD를 생성할 수 있다.
i. 대안으로, 또한, AMVR 정보는 시그널링되지 않을 수 있고, MV/MVD 정밀도는 미리 정의된 값을 갖도록 유도될 수 있다 (예를 들어 MVD는 1/4-픽셀 정밀도를 갖는다).
1. 일 예에서, 미리 정의된 값의 표시는 시퀀스/픽처/타일 그룹/슬라이스/타일/비디오 데이터 유닛 레벨로 시그널링될 수 있다.
2. 일 예에서, 미리 정의된 값은 어파인 or 넌-어파인 움직임 등의 모드/움직임 정보에 의존할 수 있다.
d. 일 예에서, DMVR 또는/및 다른 DMVD 방법이 적용되는지의 표시는 SMVD-코딩 블록을 위해 시그널링될 수 있다.
i. DMVR 또는/및 다른 DMVD 방법이 적용되면, MVD는 시그널링되지 않을 수 있다.
ii. 일 예에서, 이러한 표시는 소정의 MV/MVD 정밀도를 위해 시그널링될 수 있다. 예를 들어, 이러한 표시는 1-픽셀 또는/및 4-픽셀 MV/MVD 정밀도를 위해 시그널링될 수 있다.
iii. 일 예에서, 이러한 표시는, PocDist0가 PocDist1와 동일하고 Ref0가 선행 픽처이고, Ref1가 디스플레이 순서에 있어서 현재 픽처의 다음 픽처일 때에만 시그널링될 수 있다.
iv. 일 예에서, 이러한 표시는, PocDist0가 PocDist1와 동일하고 Ref0가 다음 픽처이고, Ref1가 디스플레이 순서에 있어서 현재 픽처의 선행 픽처일 때에만 시그널링될 수 있다.
e. 일 예에서, DMVR 또는/및 다른 DMVD 방법이 SMVD-코딩 블록에 대해 적용되는지는 현재 블록 및/또는 인접 블록의 코딩 정보에 의존할 수 있다.
i. 예를 들어, DMVR 또는/및 다른 DMVD 방법이 SMVD-코딩 블록에 대해 적용되는지는 현재의 블록 차원에 의존할 수 있다.
ii. 예를 들어, DMVR 또는/및 다른 DMVD 방법이 SMVD-코딩 블록에 대해 적용되는지는 POC 등의 참조 픽처들의 정보에 의존할 수 있다.
iii. 예를 들어, DMVR 또는/및 다른 DMVD 방법이 SMVD-코딩 블록에 대해 적용되는지는 MVD 정보에 의존할 수 있다.
4. DMVR 또는/및 BIO 또는/및 모든 DMVD 방법은 블록 차원에 대한 동일한 규칙에 따라 활성화될 수 있다.
a. 일 예에서, DMVR 및 BIO 또는/및 모든 DMVD 방법 및/또는 제안된 방법은 W * H >= T1 && H >= T2일 때 활성화될 수 있다. 예를 들어, T1 = 64 및 T2 = 8.
b. 일 예에서, DMVR 및 BIO 또는/및 모든 DMVD 방법은 H >= T1 && !(W == T2 && H == T1)일 때 활성화될 수 있다. 예를 들어, T1= 8 및 T2 = 4.
c. 일 예에서, 블록 크기가 M*H 샘플 미만, 예를 들어, 16 또는 32 또는 64 루마 샘플을 포함하면, DMVR 및 BIO 또는/및 모든 DMVD 방법은 허용되지 않는다.
d. 일 예에서, 블록 크기가 M*H 샘플 보다 많은, 예를 들어, 16 또는 32 또는 64 루마 샘플을 포함하면, DMVR 및 BIO 또는/및 모든 DMVD 방법은 허용되지 않는다.
e. 대안으로, 블록의 폭 또는/및 높이의 최소 크기가 X보다 작거나 크지 않으면, DMVR 및 BIO 또는/및 모든 DMVD 방법은 허용되지 않는다. 일 예에서, X는 8로 설정된다.
f. 대안으로, 블록의 폭 > th1 또는 >=th1 및/또는 블록의 높이 > th2 또는 >=th2이면, DMVR 및 BIO 또는/및 모든 DMVD 방법은 허용되지 않는다. 일 예에서, th1 및/또는 th2는 64로 설정된다.
i. 예를 들어, DMVR 및 BIO 또는/및 모든 DMVD 방법은 MxM (예를 들어, 128x128) 블록에 대하여 비활성화된다.
ii. 예를 들어, DMVR 및 BIO 또는/및 모든 DMVD 방법은 NxM/MxN 블록에 대하여 비활성화된다. 예를 들어, N >= 64, M=128.
iii. 예를 들어, DMVR 및 BIO 또는/및 모든 DMVD 방법은 NxM/MxN block에 대하여 비활성화된다. 예를 들어, N >= 4, M=128.
g. 대안으로, 블록의 폭 < th1 또는 <=th1 및/또는 블록의 높이< th2 또는 <=th2이면, DMVR 및 BIO 또는/및 모든 DMVD 방법은 허용되지 않는다. 일 예에서, th1 및/또는 th2는 8로 설정된다.
5. DMVR 및 BIO 또는/및 모든 DMVD 방법은 동일한 서브 블록 레벨에서 수행될 수 있다.
a. DMVR 등의 움직임 벡터 정제 프로세스는 서브블록 레벨에서 수행될 수 있다.
i. 양방향 매칭은 전체 블록 레벨 대신에 서브블록 레벨에서 수행될 수 있다.
b. BIO는 서브블록 레벨에서 수행될 수 있다.
i. 일 예에서, BIO의 활성화/비활성화의 결정은 서브블록 레벨에서 수행될 수 있다.
ii. 일 예에서, BIO에서의 샘플 별 움직임 정제는 서브블록 레벨에서 수행될 수 있다.
iii. 일 예에서, BIO의 활성화/비활성화 결정 및 BIO에서의 샘플별 움직임 정제는 서브블록 레벨에서 수행될 수 있다.
c. 일 예에서, 블록이 폭 >= LW 또는 높이 >= LH 또는 폭 >= LW 및 높이 >=LH을 가지면, 블록은 다수의 서브블록으로 분할될 수 있다. 각각의 서브블록은 서브블록 크기와 동일한 크기를 갖는 일반 코딩 블록과 동일한 방식으로 취급된다.
i. 일 예에서, L은 64이고, 64x128/128x64 블록은 2개의 64x64 서브블록으로 분할되고, 128x128 블록은 4개의 64x64 서브블록으로 분할된다. 그러나, Nx128/128xN 블록(여기서, N < 64)은 서브블록으로 분할되지 않는다. L 값은 LH 및/또는 LW를 지칭할 수 있다.
ii. 일 예에서, L은 64이고, 64x128/128x64 블록은 2개의 64x64 서브블록으로 분할되고, 128x128 블록은 4개의 64x64 서브블록으로 분할된다. 한편, Nx128/128xN 블록(여기서, N < 64)은 2개의 Nx64/64xN 서브블록으로 분할된다. L 값은 LH 및/또는 LW를 지칭할 수 있다.
iii. 일 예에서, 폭(또는 높이)이 L보다 크면, 수직(또는 수평)으로 분할되고, 서브 블록의 폭 또는/및 높이는 L보다 크지 않다. L 값은 LH 및/또는 LW를 지칭할 수 있다.
d . 일 예에서, 블록의 크기(즉, 폭 * 높이)가 임계값(L1)보다 크면, 다수의 서브블록으로 분할될 수 있다. 각각의 서브블록은 서브블록 크기와 동일한 크기를 갖는 일반 코딩 블록과 동일한 방식으로 취급된다.
i. 일 예에서, 블록은 L1보다 크지 않은 동일한 크기를 갖는 서브블록으로 분할된다.
ii. 일 예에서, 블록의 폭(또는 높이)가 임계값(L2)보다 크지 않으면, 수직(또는 수평)으로 분할되지 않는다.
iii. 일 예에서, L1는 1024이고, L2는 32이다. 예를 들어, 16x128 블록은 2개의 16x64 서브블록으로 분할된다.
e. 임계값(L)은 SPS/PPS/픽처/슬라이스/타일 그룹/타일 레벨로 미리 정의되거나 시그널링될 수 있다.
f. 대안으로, 임계값은 블록 크기, 픽처 유형, 시간적 계층 인덱스 등의 소정의 코딩 정보에 의존할 수 있다.
6. 한 종류의 DMVD를 적용할지 또는 어떻게 적용할 지의 결정은 한번 이루어질 수 있고 모든 컬러 컴포넌트에 의해 공유되거나 상이한 컬러 컴포넌트를 위해 복수회 수행될 수 있다.
a. 일 예에서, DMVD에 대한 결정은 Y (또는 G) 컴포넌트의 정보에 기초하여 이루어지고 다른 컬러 컴포넌트가 뒤따른다.
b. 일 예에서, Y (또는 G) 컴포넌트에 적용되는 DMVD에 대한 결정은 Y (또는 G) 컴포넌트의 정보에 기초하여 이루어진다. Cb (또는 Cb, 또는 B, 또는 R) 컴포넌트에 적용되는 DMVD에 대한 결정은 Cb (또는 Cb, 또는 B, 또는 R) 컴포넌트의 정보에 기초하여 이루어진다.
도 23은 비디오 프로세싱 장치(2300)의 블록도이다. 장치(2300)는 여기에 기재된 방법 중의 하나 이상을 구현하는데 사용될 수 있다. 장치(2300)는 스마트폰, 태블릿, 컴퓨터, IoT 수신기 등에서 구현될 수 있다. 장치(2300)는 하나 이상의 프로세서(2302), 하나 이상의 메모리(2304) 및 비디오 프로세싱 하드웨어(2306)를 포함한다. 프로세서(들)(2302)는 본 문서에 기재된 하나 이상의 방법을 구현하도록 구성될 수 있다. 메모리(들)(2304)는 여기에 기재된 방법 및 기술을 구현하는데 사용되는 데이터 및 코드를 저장하는데 사용될 수 있다. 비디오 프로세싱 하드웨어(2306)는 본 문서에 기재된 임의의 기술을 하드웨어 회로로 구현하는데 사용될 수 있고, 부분적으로 또는 완전히 프로세서(2302)(예를 들어, 그래픽 프로세서 코어 GPU 또는 다른 신호 처리 회로)의 일부일 수 있다.
본 문서에서, "비디오 프로세싱"이라는 용어는 비디오 인코딩, 비디오 디코딩, 비디오 압축 또는 비디오 압축 해제를 지칭할 수 있다. 예를 들어, 비디오 압축 알고리즘은 비디오의 픽셀 표현으로부터 해당 비트스트림 표현으로의 변환 동안 또는 그 반대로 변환하는 동안 적용될 수 있다. 현재 비디오 블록의 비트스트림 표현은, 예를 들어, 신택스에 정의된 바와 같이, 비트스트림 내의 상이한 장소에 확산되거나 함께 위치하는 비트에 대응할 수 있다. 예를 들어, 매크로블록은 변환되고 코딩된 에러 잔여 값의 관점에서 또한 비트스트림 내의 헤더 및 다른 필드 내의 비트를 사용하여 인코딩될 수 있다.
본 문서에 개시된 기술의 사용을 허용함으로써, 스마트폰, 랩탑, 데스크탑 및 유사 장치 등의 비디오 프로세싱 장치 내에 통합된 비디오 인코더 및 디코더 실시예에 유익한 여러 기술이 개시됨을 알 수 있을 것이다.
도 24a는 비디오 프로세싱의 예시적인 방법(2400)의 플로우챠트이다. 방법(2400)은, 2402에서, 적어도 가중치 파라미터에 기초하여 디코더측 움직임 벡터 유도(DMVD)를 구현함으로써 비디오의 현재 비디오 블록에 대한 정제된 움직임 정보를 구하는 단계를 포함하고, 여기서, 가중치 파라미터는 현재 비디오 블록에 대한 최종 예측 블록에 대한 생성 프로세스에서 예측 블록에 적용된다. 방법(2400)은, 2404에서, 정제된 움직임 정보 및 가중치 파라미터를 적어도 이용하여 비디오의 비트스트림 표현 및 현재 비디오 블록 간의 변환을 수행하는 단계를 포함한다.
방법(2400)의 임의의 실시예에서, 비트스트림 표현 내의 필드는 가중치 파라미터를 나타낸다. 방법(2400)에 대한 임의의 실시예에서, 가중치 파라미터의 표시는 BCW(Coding unit Weights) 기술을 갖는 양예측을 이용하여 시그널링된다. 방법(2400)에 대한 임의의 실시예에서, 가중치 파라미터의 표시는 가중 예측 기술을 이용하여 시그널링된다. 방법(2400)에 대한 임의의 실시예에서, 가중치 파라미터가 유도된다. 방법(2400)에 대한 임의의 실시예에서, 가중치 파라미터가 LIC(Local Illumination Compensation) 기술을 이용하여 유도된다. 방법(2400)에 대한 임의의 실시예에서, 가중치 파라미터는 샘플 값 세트를 다른 샘플 값 세트를 매핑하는 재구성(reshaping) 프로세스와 연관된다. 방법(2400)에 대한 임의의 실시예에서, DMVD 방식은 가중치 파라미터를 현재 비디오 블록의 예측 블록에 적용함으로써 구현된다. 방법(2400)에 대한 임의의 실시예에서, 변환은, 먼저BCW 인덱스를 갖는 양예측에 따른 가중치 파라미터를 예측 블록에 적용한 후 예측 비용 함수를 산출함으로써, 현재 비디오 블록에 대한 예측 비용 함수를 산출하는 것을 포함한다.
방법(2400)에 대한 임의의 실시예에서, 변환은, 먼저 가중 예측 방식에 따른 가중치 파라미터를 예측 블록에 적용한 후 예측 비용 함수를 산출함으로써, 현재 비디오 블록에 대한 예측 비용 함수를 산출하는 것을 포함한다. 방법(2400)에 대한 임의의 실시예에서, 변환은, 먼저 LIC 방식에 따른 가중치 파라미터를 예측 블록에 적용한 후 예측 비용 함수를 산출함으로써, 현재 비디오 블록에 대한 예측 비용 함수를 산출하는 것을 포함한다. 방법(2400)에 대한 임의의 실시예에서, 예측 비용 함수는 그래디언트 함수이다. 예측 비용 함수는 SAD(sum of absolute difference) 비용 함수이다. 방법(2400)에 대한 임의의 실시예에서, 예측 비용 함수는 MR-SAD (mean-removed sum of absolute difference) 비용 함수이다.
방법(2400)에 대한 임의의 실시예에서, 변환은, 먼저 BCW 인덱스를 갖는 양예측에 따른 가중치 파라미터를 예측 블록에 적용한 후 시간적 그래디언트 및 공간적 그래디언트를 산출함으로써, 현재 비디오 블록에 대하여, BIO(Bi-directional Optical flow)의 시간적 그래디언트 및 공간적 그래디언트를 산출하는 것을 포함한다. 방법(2400)에 대한 임의의 실시예에서, 변환은, 먼저 가중 예측 방식에 따른 가중치 파라미터를 예측 블록에 적용한 후 시간적 그래디언트 및 공간적 그래디언트를 산출함으로써, 현재 비디오 블록에 대하여, BIO(Bi-directional Optical flow)의 시간적 그래디언트 및 공간적 그래디언트를 산출하는 것을 포함한다.
방법(2400)에 대한 임의의 실시예에서, 변환은, 먼저 LIC 방식에 따른 가중치 파라미터를 예측 블록에 적용한 후 시간적 그래디언트 및 공간적 그래디언트를 산출함으로써, 현재 비디오 블록에 대하여, BIO(Bi-directional Optical flow)의 시간적 그래디언트 및 공간적 그래디언트를 산출하는 것을 포함한다. 방법(2400)에 대한 임의의 실시예에서, 예측 비용 함수 또는 시간적 그래디언트 또는 공간적 그래디언트의 산출은 재구성(reshaped) 도메인에서 수행된다. 방법(2400)에 대한 임의의 실시예에서, 재구성(reshaping) 프로세스는 현재 비디오 블록에 대한 정제된 움직임 정보로 생성된 예측 블록에 대해 비활성화된다.
도 24b는 비디오 프로세싱의 예시적인 방법(2410)의 플로우챠트이다. 방법(2410)은, 2412에서, 현재 비디오 블록에 대한 코딩 툴의 사용에 의한 비디오의 현재 비디오 블록과 비디오의 코딩된 표현 간의 변환을 위해 디코더측 움직임 벡터 유도(DMVD) 방식의 사용이 비활성화되는 것을 결정하는 단계를 포함한다. 방법(2410)은, 2414에서, 상기 결정에 기초하여 현재 비디오 블록 및 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함하고, 여기서, 코딩 툴은 동일하지 않은 가중 인자를 현재 비디오 블록의 예측 블록에 적용하는 단계를 포함하고, 코딩 툴은 샘플 예측 프로세스에서 가중 인자를 이용하도록 구성된다.
방법(2410)에 대한 임의의 실시예에서, 코딩 툴은 BCW 모드를 갖는 양예측을 포함한다. 방법(2410)에 대한 임의의 실시예에서, BCW 모드의 2개의 예측 블록에 사용되는 2개의 가중 인자는 동일하지 않다. 방법(2410)에 대한 임의의 실시예에서, 가중 인자는 현재 비디오 블록을 갖는 비트스트림 표현 내의 필드에 표시된다. 일부 실시예에서, DMVD 방식은 예측 비용 함수에 기초하여 정제된 움직임 정보를 유도하는 디코더측 움직임 벡터 정제(DMVR) 코딩 모드를 포함한다. 일부 실시예에서, DMVD 방식은 그래디언트 산출에 기초하여 정제된 예측을 유도하는 BDOF(Bi-directional optical flow) 코딩 모드 코딩 툴을 포함한다. 방법(2410)에 대한 일부 실시예에서, 현재 비디오 블록에 의해 사용되는 BCW 모드는 BCW 인덱스 및 가중 인자의 인덱스를 나타내는 필드를 이용하는 것을 포함하고, BCW 인덱스는 0과 같지 않다.
방법(2410)에 대한 일부 실시예에서, 코딩 툴은 가중 예측 모드를 포함한다. 방법(2410)에 대한 일부 실시예에서, 현재 비디오 블록에 의해 사용되는 가중 예측 모드는 가중 예측을 현재 비디오 블록의 예측 블록 중의 적어도 하나에 적용하는 것을 포함한다. 방법(2410)에 대한 일부 실시예에서, 코딩 툴은 LIC 모드를 포함한다. 방법(2410)에 대한 일부 실시예에서, 코딩 툴은 다중 가설 예측 모드를 포함한다. 방법(2410)에 대한 일부 실시예에서, 제1 참조 픽처에 대한 제1 가중치 파라미터 및 제2 참조 픽처에 대한 제2 가중치 파라미터는 현재 비디오 블록에 대한 가중 예측 모드와 연관되고, DMVD 방식은 제2 가중치 파라미터와 다른 제1 가중치 파라미터에 응답하여 현재 비디오 블록에 대하여 비활성화되도록 결정된다.
방법(2410)에 대한 일부 실시예에서, 제1 가중치 파라미터 및/또는 제2 가중치 파라미터는 현재 비디오 블록을 포함하는 비디오 유닛을 갖는 비트스트림 표현 내의 필드에 표시되고, 비디오 유닛은 픽처 또는 슬라이스 중의 적어도 하나를 포함한다. 방법(2410)에 대한 일부 실시예에서, 현재 비디오 블록의 제1 참조 픽처에 대한 제1 선형 모델 파라미터 및 현재 비디오 블록의 제2 참조 픽처에 대한 제2 선형 모델 파라미터, DMVD 방식은 제2 선형 모델 파라미터와 다른 제1 선형 모델 파라미터에 응답하여 현재 비디오 블록에 대하여 비활성화되도록 결정된다.
도 24c는 비디오 프로세싱의 예시적인 방법(2420)의 플로우챠트이다. 방법(2420)은, 2422에서, 비디오의 현재 비디오 블록의 하나 이상의 참조 픽처의 POC(picture order count) 값 및 현재 비디오 블록을 포함하는 현재 픽처의 POC 값에 기초하여, 현재 비디오 블록에 대하여 하나 이상의 DMVD 방식을 활성화 또는 비활성화하는지를 결정하는 단계를 포함한다. 방법(2420)은, 2424에서, 상기 결정에 따라 현재 비디오 블록 및 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다.
방법(2420)에 대한 일부 실시예에서, 하나 이상의 DMVD 방식을 활성화 또는 비활성화할지를 결정하는 단계는 현재 비디오 블록의 제1 참조 픽처로부터 현재 픽처로의 제1 거리를 나타내는 제1 POC 거리(PocDis0) 및 현재 픽처로부터 현재 비디오 블록의 제2 참조 픽처로의 제2 거리를 나타내는 제2 POC 거리(PocDis1) 간의 관계에 기초한다. 방법(2420)에 대한 일부 실시예에서, 제1 참조 픽처는 현재 비디오 블록의 참조 픽처 리스트 0 이고, 제2 참조 픽처는 현재 비디오 블록의 참조 픽처 리스트 1이다.
방법(2420)에 대한 일부 실시예에서, PocDist0는 현재 픽처의 제1 POC 값 - 제1 참조 픽처의 제2 POC 값으로 설정되고, PocDist1는 제2 참조 픽처의 제3 POC 값 - 현재 픽처의 제1 POC 값으로 설정된다. 방법(2420)에 대한 일부 실시예에서, 하나 이상의 DMVD 방식은 PocDis0가 PocDis1와 같지 않은 것에 응답하여 활성화된다. 방법(2420)에 대한 일부 실시예에서, 하나 이상의 DMVD 방식 중 1보다 많은 DMVD 방식을 활성화할지 비활성화할지를 결정하는 단계는 PocDis0 및 PocDis1에 대하여 적용되는 동일한 규칙에 기초한다. 방법(2420)에 대한 일부 실시예에서, 하나 이상의 DMVD 방식은 PocDis0가 PocDis1와 동일하다는 것에 응답하여 활성화된다.
방법(2420)에 대한 일부 실시예에서, 하나 이상의 DMVD 방식은 PocDis0에 PocDis1를 곱한 것이 0보다 작은 것에 응답하여 비활성화된다. 방법(2420)에 대한 일부 실시예에서, 하나 이상의 DMVD 방식은 PocDis0가 PocDis1와 같지 않다는 것에 응답하여 비활성화된다. 방법(2420)에 대한 일부 실시예에서, 하나 이상의 DMVD 방식은, 변환 동안, 제1 참조 픽처 리스트에 대한 움직임 벡터차(MVD)의 제1 세트 및 제2 참조 픽처 리스트에 대한 MVD의 제2 세트를 이용하여 2개의 참조 블록을 식별하고, MVD의 제1 세트는 MVD의 제2 세트의 미러링된 버전이다. 방법(2420)에 대한 일부 실시예에서, 하나 이상의 DMVD 방식은, 변환 동안, 제1 픽처 리스트에 대한 MVD의 제1 세트와 제2 참조 픽처 리스트에 대한 MVD의 제2 세트를 이용하여 2개의 참조 블록을 식별하고, MVD의 제2 세트는 MVD의 제1 세트의 미러링된 버전이다.
방법(2420)에 대한 일부 실시예에서, 하나 이상의 DMVD 방식은, 변환 동안, 제1 참조 픽처 리스트에 대한 움직임 벡터차(MVD)의 제1 세트 및 제2 참조 픽처 리스트에 대한 MVD의 제2 세트를 이용하여 2개의 참조 블록을 식별하고, MVD의 제1 세트는 MVD의 제2 세트의 미러링되지 않은 버전이다. 방법(2420)에 대한 일부 실시예에서, MVD의 제1 세트는 PocDis0 및 PocDis1에 따라 MVD의 제2 세트로 스케일링된다. 방법(2420)에 대한 일부 실시예에서, (MvdX, MvdY)를 포함하는 MVD의 제1 세트는 (-MvdX*PocDis1 / PocDis0, -MvdY*PocDis1 / PocDis0)와 같이 산출된 MVD의 제2 세트로 스케일링된다. 방법(2420)에 대한 일부 실시예에서, MVD의 제2 세트는 PocDis0 및 PocDis1에 따라 MVD의 제1 세트로 스케일링된다. 방법(2420)에 대한 일부 실시예에서, (MvdX, MvdY)를 포함하는 MVD의 제2 세트는 (-MvdX*PocDis0 / PocDis1, -MvdY*PocDis0 / PocDis1)에 따라 산출된 MVD의 제1 세트로 스케일링된다.
방법(2420)에 대한 일부 실시예에서, 스케일링된 연산에 대한 나눗셈 연산은 룩업 테이블, 다중 연산 또는 우측-우측 연산을 이용하여 구현된다. 방법(2420)에 대한 일부 실시예에서, 하나 이상의 DMVD 방식은, DMVD 프로세스 동안, 현재 비디오 블록의 참조 픽처의 POC 값 및 현재 비디오 블록을 포함하는 현재 픽처의 POC 값에 기초하여, 제1 참조 픽처 리스트에 대한 움직임 벡터 차(MVD)의 제1 세트 및 비디오의 현재 비디오 블록에 대한 제2 참조 픽처 리스트에 대한 MVD의 제2 세트를 결정한다. 방법(2420)에 대한 일부 실시예에서, PocDis0의 제1 절대값이 PocDis1의 제2 절대값보다 작거나 같은 것에 응답하여, MVD의 제1 세트는 PocDis0 및 PocDis1에 따라 MVD의 제2 세트를 생성하도록 스케일링된다. 방법(2420)에 대한 일부 실시예에서, PocDis0의 제1 절대값이 PocDis1의 제2 절대값보다 크거나 같은 것에 응답하여, MVD의 제1 세트는 PocDis0 및 PocDis1에 따라 MVD의 제2 세트를 생성하도록 스케일링된다.
방법(2420)에 대한 일부 실시예에서, PocDis1의 제2 절대값이 PocDis0의 제1 절대값보다 작거나 같은 것에 응답하여, MVD의 제2 세트는 PocDis0 및 PocDis1에 따라 MVD의 제1 세트를 생성하도록 스케일링된다. 방법(2420)에 대한 일부 실시예에서, PocDis1의 제2 절대값이 PocDis0의 제1 절대값보다 크거나 같은 것에 응답하여, MVD의 제2 세트는 PocDis0 및 PocDis1에 따라 MVD의 제1 세트를 생성하도록 스케일링된다. 방법(2420)에 대한 일부 실시예에서, 현재 픽처를 선행하는 제1 참조 픽처 및 현재 픽처를 뒤따르는 제2 참조 픽처를 포함하는 2개의 참조 픽처에 응답하여, MVD의 제1 세트는 MVD의 제2 세트를 생성하도록 미러링되고, MVD의 제1 세트 또는 MVD의 제2 세트를 얻기 위해 스케일링이 수행되지 않는다. 방법(2420)에 대한 일부 실시예에서, 하나 이상의 DMVD 방식을 활성화 또는 비활성화할지를 결정하는 것은 현재 비디오 블록의 제1 참조 픽처로부터 현재 픽처로의 제1 거리를 나타내는 제1 POC 거리(PocDis0)의 제1 부호 및 현재 픽처로부터 현재 비디오 블록의 제2 참조 픽처로의 제2 거리를 나타내는 제2 POC(PocDis1)의 제2 부호에 기초한다.
방법(2420)에 대한 일부 실시예에서, 하나 이상의 DMVD 방식은 제1 부호를 갖는 PocDis0에 제2 부호를 갖는 PocDis1를 곱한 결과가 0보다 작은 것에 응답하여 활성화된다. 방법(2420)에 대한 일부 실시예에서, 하나 이상의 DMVD 방식은 제1 부호를 갖는 PocDis0에 제2 부호를 갖는 PocDis1를 곱한 결과가 0보다 큰 것에 응답하여 활성화된다. 방법(2420)에 대한 일부 실시예에서, 하나 이상의 DMVD 방식은 현재 비디오 블록의 제1 참조 픽처로부터 현재 픽처로의 제1 거리를 나타내는 제1 POC 거리(PocDis0)가 현재 픽처로부터 현재 비디오 블록의 제2 참조 픽처로의 제2 거리를 나타내는 제2 POC 거리(PocDis1)와 같지 않은 것에 응답하여 비활성화된다.
방법(2420)에 대한 일부 실시예에서, 제1 참조 픽처 리스트의 움직임 정보는 MVD의 제1 세트를 이용하여 정제되고 제2 참조 픽처 리스트의 움직임 정보는 MVD의 제2 세트를 이용하여 정제된다. 방법(2420)에 대한 일부 실시예에서, 제1 참조 픽처 리스트는 참조 픽처 리스트 0 이고 제2 참조 픽처 리스트는 참조 픽처 리스트 1이다.
도 24d는 비디오 프로세싱의 예시적인 방법(2430)의 플로우챠트이다. 방법(2430)은, 2432에서, 현재 비디오 블록에 대한 디코더측 움직임 벡터 유도(DMVD) 방식을 구현함으로써, 비디오의 현재 비디오 블록에 대한 정제된 움직임 정보를 획득하는 단계를 포함하고, 대칭 움직임 벡터 차 (SMVD) 모드는 현재 비디오 블록에 대하여 활성화된다. 방법(2430)은, 2434에서, 정제된 움직임 정보를 이용하여 현재 비디오 블록과 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다.
방법(2430)에 대한 일부 실시예에서, 비트스트림 표현은 정제된 움직임 정보에 대한 움직임 벡터 차(MVD)를 포함하고, MVD는 SMVD 모드에 따라 디코딩되고, 현재 비디오 블록을 디코딩하는데 사용되기 전에 더 정제된다. 방법(2430)에 대한 일부 실시예에서, SMVD 모드에서, DMVD 방식은 움직임 벡터(MV) 정밀도 또는 MVD 정밀도를 N-픽셀 정밀도로부터 M-픽셀 정밀도로 변경함으로써 정제된 움직임 정보에 대한 MVD를 정제하는데 사용되고, N 및 M는 1/16, 1/8, 1/4, 1/2, 1, 2, 4, 8, 또는 16과 동일하다. 방법(2430)에 대한 일부 실시예에서, M은 N보다 작거나 같다. 방법(2430)에 대한 일부 실시예에서, 비트스트림 표현은 SMVD 모드의 정제된 움직임 정보에 대한 움직임 벡터차(MVD)에 대한 시그널링을 포함하지 않고, MVD는 DMVD 방식을 이용하여 생성된다.
방법(2430)에 대한 일부 실시예에서, 적응적 움직임 벡터 차 해상도(AMVR) 정보는 SMVD 모드로 코딩된 비디오 블록에 대한 비트스트림 표현에서 시그널링되지 않고, 정제된 움직임 정보에 대한 움직임 벡터(MV) 정밀도 또는 움직임 벡터 차(MVD) 정밀도가 미리 정의된 값에 따라 유도된다. 방법(2430)에 대한 일부 실시예에서, MV 정밀도 또는 MVD 정밀도는 1/4-픽셀 정밀도이다. 방법(2430)에 대한 일부 실시예에서, 미리 정의된 값은 비트스트림 표현에서 시퀀스, 픽처, 타일 그룹, 슬라이스, 타일, 비디오 데이터 유닛 레벨에서 시그널링된다. 방법(2430)에 대한 일부 실시예에서, 미리 정의된 값은 모드 정보 또는 움직임 정보에 의존한다. 방법(2430)에 대한 일부 실시예에서, 모드 정보 또는 움직임 정보는 어파인 움직임 정보 또는 넌-어파인 움직임 정보를 포함한다.
도 24e는 비디오 프로세싱의 예시적인 방법(2440)의 플로우챠트이다. 방법(2440)은, 2442에서, 현재 비디오 블록을 포함하는 비디오에 대한 비트스트림 표현 내의 필드에 기초하여, 현재 비디오 블록에 대한 디코더측 움직임 벡터 유도(DMVD) 방식을 활성화할지 비활성화할지를 결정하는 단계를 포함하고, 대칭 움직임 벡터 차(SMVD) 모드는 현재 비디오 블록에 대해 활성화된다. 방법(2440)은, 2444에서, DMVD 방식이 활성화된 것으로 결정 한 후, 현재 비디오 블록에 대한 DMVD 방식을 구현함으로써 현재 비디오 블록에 대한 정제된 움직임 정보를 획득하는 단계를 포함한다. 방법(2440)은, 2446에서, 정제된 움직임 정보를 이용하여 현재 비디오 블록 및 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다.
방법(2440)에 대한 일부 실시예에서, 움직임 벡터 차(MVD)는 DMVD 방식이 활성화되는 것에 응답하여 비트스트림 표현에서 시그널링되지 않는다. 방법(2440)에 대한 일부 실시예에서, DMVD 방식이 활성화될지 비활성화될지를 나타내는 필드가 하나 이상의 움직임 벡터(MV) 정밀도 또는 움직임 벡터 차(MVD) 정밀도에 대한 비트스트림 표현에 존재한다. 방법(2440)에 대한 일부 실시예에서, 하나 이상의 MV 정밀도 또는 MVD 정밀도는 1-픽셀 및/또는 4-픽셀 정밀도를 포함한다.
방법(2440)에 대한 일부 실시예에서, DMVD 방식이 활성화될지 비활성화될지를 나타내는 필드가, 현재 비디오 블록의 제1 참조 픽처(Ref0)로부터 현채 픽처로의 제1 거리를 나타내는 제1 POC 거리(PocDis0)가 현재 픽처로부터 현재 비디오 블록의 제2 참조 픽처(Ref1)로의 제2 거리를 나타내는 제2 POC 거리(PocDis1)와 동일한 것에 응답하여 비트스트림 표현에 존재하고, 제1 참조 픽처(Ref0)는 현재 픽처를 선행하고, 제2 참조 픽처(Ref1)는 디스플레이 순서에서 현재 픽처를 뒤따른다.
방법(2440)에 대한 일부 실시예에서, DMVD 방식이 활성화될지 비활성화될지를 나타내는 필드가, 현재 비디오 블록의 제1 참조 픽처(Ref0)로부터 현채 픽처로의 제1 거리를 나타내는 제1 POC 거리(PocDis0)가 현재 픽처로부터 현재 비디오 블록의 제2 참조 픽처(Ref1)로의 제2 거리를 나타내는 제2 POC 거리(PocDis1)와 동일한 것에 응답하여 비트스트림 표현에 존재하고, 제2 참조 픽처(Ref1)는 현재 픽처를 선행하고, 제1 참조 픽처(Ref0)는 디스플레이 순서에서 현재 픽처를 뒤따른다.
방법(2440)에 대한 일부 실시예에서, DMVD 방식은 현재 비디오 블록 및/또는 하나 이상의 인접 블록의 코딩 정보에 기초하여 SMVD 모드에서 활성화된다. 방법(2440)에 대한 일부 실시예에서, DMVD 방식은 현재 비디오 블록의 블록 차원에 기초하여 SMVD 모드에서 활성화된다. 방법(2440)에 대한 일부 실시예에서, DMVD 방식은 현재 비디오 블록에 대한 참조 픽처에 관련된 정보에 기초하여 SMVD 모드에서 활성화된다. 방법(2440)에 대한 일부 실시예에서, 참조 픽처에 관련된 정보는 POC 정보를 포함한다. 방법(2440)에 대한 일부 실시예에서, DMVD 방식은 비트스트림 표현 내의 움직임 벡터차(MVD) 정보에 대한 시그널링에 기초하여 SMVD 모드에서 활성화된다. 방법(2420)에 대한 일부 실시예에서, 하나 이상의 DMVD 방식은 디코더측 움직임 벡터 정제 (DMVR) 방식을 포함한다. 방법(2430 및 2440)에 대한 일부 실시예에서, DMVD 방식은 디코더측 움직임 벡터 정제 (DMVR) 방식을 포함한다. 방법(2430)에 대한 일부 실시예에서, 하나 이상의 DMVD 방식은 BDOF 방식을 포함한다. 방법(2430 및 2440)에 대한 일부 실시예에서, DMVD 방식은 BDOF 방식을 포함한다.
도 24f는 비디오 프로세싱의 예시적인 방법(2450)의 플로우챠트이다. 방법(2450)은, 2452에서, 비디오의 현재 비디오 블록의 블록 차원을 이용하는 규칙에 기초하여, 현재 비디오 블록과 비디오의 비트스트림 표현 간의 변환을 위해 복수의 디코더측 움직임 벡터 유도 (DMVD) 방식이 활성화 또는 비활성화되는지를 결정하는 단계를 포함한다. 방법(2450)은, 2454에서, 상기 결정에 기초하여 변환을 수행하는 단계를 포함한다.
방법(2450)에 대한 일부 실시예에서, 복수의 DMVD 방식은 (W * H) >= T1 및 H >= T2에 응답하여 활성화되도록 결정되고, 여기서, W 및 H는 각각 현재 비디오 블록의 폭 및 높이이고, T1 및 T2는 유리수이다. 방법(2450)에 대한 일부 실시예에서, T1는 64이고 T2는 8이다. 방법(2450)에 대한 일부 실시예에서, 복수의 DMVD 방식은 H >= T1이고, W는 T2와 같지 않은 W 혹은 T1과 같지 않은 H에 응답하여 활성화되도록 결정되고, W 및 H은 각각 현재 비디오 블록의 폭 및 높이이고, T1 및 T2는 유리수이다. 방법(2450)에 대한 일부 실시예에서, T1는 8이고 T2는 4이다.
방법(2450)에 대한 일부 실시예에서, 복수의 DMVD 방식은 현재 비디오 블록의 제1 샘플수가 제2 샘플수보다 작은 것에 응답하여 비활성화되는 것으로 결정된다. 방법(2450)에 대한 일부 실시예에서, 복수의 DMVD 방식은 현재 비디오 블록의 제1 샘플수가 제2 샘플수보다 큰 것에 응답하여 비활성화되는 것으로 결정된다. 방법(2450)에 대한 일부 실시예에서, 제2샘플수는 16개의 루마 샘플 또는 32개의 루마 샘플 또는 64개의 루마 샘플 또는 128개의 루마 샘플이다. 방법(2450)에 대한 일부 실시예에서, 복수의 DMVD 방식은 현재 비디오 블록의 폭이 값보다 작은 것에 응답하여 비활성화되도록 결정된다.
방법(2450)에 대한 일부 실시예에서, 복수의 DMVD 방식은 현재 비디오 블록의 높이가 값보다 작은 것에 응답하여 비활성화되도록 결정된다. 방법(2450)에 대한 일부 실시예에서, 값은 8이다. 방법(2450)에 대한 일부 실시예에서, 복수의 DMVD 방식은 현재 비디오 블록의 폭이 제1 임계값보다 크거나 같은 것 및/또는 현재 비디오 블록의 높이가 제2 임계값보다 크거나 같은 것에 응답하여 비활성화되도록 결정된다. 방법(2450)에 대한 일부 실시예에서, 폭은 128이고 높이는 128이다. 방법(2450)에 대한 일부 실시예에서, 폭이 64보다 크거나 같고 높이가 128 이거나 폭이 128이고 높이가 64보다 크거나 같다. 방법(2450)에 대한 일부 실시예에서, 폭이 4보다 크거나 같고 높이가 128이거나 폭이 128이고 높이가 4보다 크거나 같다. 방법(2450)에 대한 일부 실시예에서, 제1 임계값 및 제2 임계값은 64이다.
방법(2450)에 대한 일부 실시예에서, 복수의 DMVD 방식은 현재 비디오 블록의 폭이 제1 임계값보다 작거나 같은 것 및/또는 현재 비디오 블록의 높이가 제2 임계값보다 작거나 같은 것에 응답하여 비활성화되도록 결정된다. 방법(2450)에 대한 일부 실시예에서, 제1 임계값 및 제2 임계값은 8이다. 일부 실시예에서, 복수의 DMVD 방식은 비용 함수에 기초하여 정제된 움직임 정보를 유도하는 디코더측 움직임 벡터 정제(DMVR) 방식을 포함한다. 일부 실시예에서, 복수의 DMVD 방식은 그래디언트 산출에 기초하여 정제된 움직임 정보를 유도하는 BDOF 방식을 포함한다.
도 24g는 비디오 프로세싱의 예시적인 방법(2460)의 플로우챠트이다. 방법(2460)은, 2462에서, 비디오의 현재 비디오 블록에 대하여 서브블록 레벨 또는 블록 레벨에서 복수의 디코더측 움직임 벡터 정제(DMVR) 방식을 수행할지를 결정하는 단계를 포함한다. 방법(2460)은, 2464에서, 복수의 DMVD 방식이 서브레벨에서 수행된 후에, 현재 비디오 블록에 대하여 동일한 서브블록 레벨에서 복수의 DMVD 방식을 구현함으로써 현재 비디오 블록에 대한 정제된 움직임 정보를 획득하는 단계를 포함한다. 방법(2460)은, 2466에서, 정제된 움직임 정보를 이용하여 현재 비디오 블록 및 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다.
방법(2460)에 대한 일부 실시예에서, 복수의 DMVD 방식은 디코더측 움직임 벡터 정제(DMVR) 방식을 포함한다. 방법(2460)에 대한 일부 실시예에서, 정제된 움직임 정보는 현재 비디오 블록에 대하여 서브블록 레벨에서 DMVR 방식의 양방향 매칭을 적용함으로써 얻어진다. 방법(2460)에 대한 일부 실시예에서, 복수의 DMVD 방식은 BDOF 코딩 방식을 포함한다. 방법(2460)에 대한 일부 실시예에서, BDOF 코딩 방식은 현재 비디오 블록에 대하여 서브블록 레벨에서 활성화 또는 비활성화되는 것으로 결정된다. 방법(2460)에 대한 일부 실시예에서, BDOF 코딩 방식은 활성화되는지가 결정되고, 정제된 움직임 정보는 BDOF 코딩 방식에서 현재 비디오 블록의 서브블록 레벨에서 수행된 움직임 정보의 샘플별 정제를 수행함으로써 획득된다.
방법(2460)에 대한 일부 실시예에서, BDOF 코딩 방식은 현재 비디오 블록의 서브블록 레벨에서 활성화 또는 비활성화되도록 결정되고, BDOF 코딩 방식의 샘플별 움직임 정보 정제 프로세스는 현재 비디오 블록의 서브블록 레벨에서 수행되도록 결정된다. 방법(2460)에 대한 일부 실시예에서, 서브블록의 폭과 높이는 16과 동일하다. 방법(2460)에 대한 일부 실시예에서, 현재 비디오 블록은, 현재 비디오 블록의 제1 폭이 값보다 크거나 같거나 현재 비디오 블록의 제1 높이가 값보다 크거나 같거나 제1 폭이 값보다 크거나 같고 제1 높이가 값보다 크거나 같은 것에 응답하여 다수의 서브블록으로 분할된다.
방법(2460)에 대한 일부 실시예에서, 다수의 서브블록의 각각은 서브블록 크기와 동일한 크기를 갖는 코딩 블록과 동일한 방식으로 하나 이상의 DMVD 방식에 의해 처리된다. 방법(2460)에 대한 일부 실시예에서, 값은 64이고, 현재 비디오 블록이 64인 제1 폭 및 128인 제1 높이를 갖거나 128인 제1 폭 및 64인 제1 높이를 갖는 것에 응답하여, 현재 비디오 블록은 2개의 서브블록으로 분할되고, 여기서, 2개의 서브블록의 각각은 64인 제2 폭 및 제2 높이를 갖는다. 방법(2460)에 대한 일부 실시예에서, 값은 64이고, 현재 비디오 블록이 128인 제1 폭 및 128인 제1 높이를 갖는 것에 응답하여, 현재 비디오 블록은 4개의 서브블록으로 분할되고, 2개의 서브블록의 각각은 64인 제2 폭 및 제2 높이를 갖는다.
방법(2460)에 대한 일부 실시예에서, 현재 비디오 블록이 N인 제1 폭 및 128인 제1 높이를 갖거나 128인 제1 폭 및 N인 제1 높이를 갖는 것에 응답하여 현재 비디오 블록이 서브블록으로 분할되지 않는다. 여기서, N은 64 미만이다. 방법(2460)에 대한 일부 실시예에서, 값은 64이고, 현재 비디오 블록이 N인 제1 폭 및 128인 제1 높이를 갖거나 128인 제1 폭 및 N(N은 64 미만이다)의 제1 높이를 갖는 것에 응답하여, 현재 비디오 블록은 2개의 서브블록으로 분할되고, 여기서, 2개의 서브블록의 각각은 N인 제2 폭 및 64인 제2 높이를 갖거나 64인 제2 폭 및 N인 제2 높이를 갖는다.
방법(2460)에 대한 일부 실시예에서, 현재 비디오 블록은 현재 비디오 블록의 제1 폭이 값보다 크다는 것과 현재 비디오 블록의 서브블록의 제2 폭보다 작거나 같은 것에 응답하여 수직으로 분할된다. 방법(2460)에 대한 일부 실시예에서, 현재 비디오 블록은 현재 비디오 블록의 제1 높이가 값보다 크다는 것과 현재 비디오 블록의 서브 블록의 제2 높이는 값보다 작거나 같다는 것에 응답하여 수평으로 분할된다. 방법(2460)에 대한 일부 실시예에서, 값은 16이다. 방법(2460)에 대한 일부 실시예에서, 현재 비디오 블록의 서브블록의 제2 폭은 16이다. 방법(2460)에 대한 일부 실시예에서, 현재 비디오 블록의 서브블록의 제2 높이는 16이다. 방법(2460)에 대한 일부 실시예에서, 현재 비디오 블록의 제1 크기가 제1 임계값 보다 큰 것에 응답하여 현재 비디오 블록은 다수의 서브블록으로 분할된다. 방법(2460)에 대한 일부 실시예에서, 다수의 서브블록의 각각은 서브블록 크기와 동일한 제2 크기를 갖는 코딩 블록과 동일한 방식으로 하나 이상의 DMVD 방식에 의해 프로세싱된다.
방법(2460)에 대한 일부 실시예에서, 다수의 서브블록의 각각은 제1 임계값 보다 작거나 같은 동일 크기를 갖는다. 방법(2450 및 2460)에 대한 일부 실시예에서, 현재 비디오 블록은 루마 비디오 블록이다. 방법(2450)에 대한 일부 실시예에서, 복수의 DMVD 방식을 활성화 또는 비활성화할지를 결정하는 것은 루마 비디오 블록에 대하여 수행되고 연관된 크로마 비디오 블록에 의해 공유된다. 방법(2460)에 대한 일부 실시예에서, 서브블록 레벨에서 복수의 DMVD 방식을 수행할지를 결정하는 것은 루마 비디오 블록에 대하여 수행되고 연관된 크로마 비디오 블록에 의해 공유된다. 방법(2460)에 대한 일부 실시예에서, 현재 비디오 블록의 높이 또는 폭이 제2 임계값보다 작거나 같은 것에 응답하여 현재 비디오 블록이 수평 또는 수직으로 다수의 서브블록으로 분할되지 않는 것으로 결정된다. 방법(2460)에 대한 일부 실시예에서, 제1 임계값은 1024이고 제2 임계값은 32이다.
방법(2460)에 대한 일부 실시예에서, 값은 미리 정의되거나 현재 비디오 블록에 대한 시퀀스 파라미터 세트(SPS), 픽처 파라미터 세트(PPS), 픽처, 슬라이스, 타일 그룹 또는 타일 레벨에서 시그널링된다. 방법(2460)에 대한 일부 실시예에서, 값 또는 제1 임계값 또는 제2 임계값은 현재 비디오 블록의 코딩 정보에 의존한다. 방법(2460)에 대한 일부 실시예에서, 서브블록 크기의 결정은 복수의 DMVD 방식에 대하여 동일하다. 방법(2460)에 대한 일부 실시예에서, 현재 비디오 블록의 코딩 정보는 블록 크기, 픽처 유형 또는 현재 비디오 블록의 시간적 계층 인덱스를 포함한다. 방법(2450 및 2460)에 대한 일부 실시예에서, 현재 비디오 블록에 대한 복수의 DMVD은 현재 비디오 블록에 대한 모든 DMVD 방식을 포함한다.
도 24h는 비디오 프로세싱의 예시적인 방법(2470)의 플로우챠트이다. 방법(2470)은, 2472에서, 비디오의 현재 비디오 블록의 복수의 컴포넌트에 대한 디코더측 움직임 벡터 유도(DMVD) 방식을 활성화 또는 비활성화할지를 결정하는 단계를 포함한다. 방법(2470)은, 2474에서, DMVD 방식이 활성화되는 것으로 결정한 후, DMVD 방식을 구현함으로써 현재 비디오 블록에 대한 정제된 움직임 정보를 획득하는 단계를 포함한다. 방법(2470)은, 2476에서, DMVD 방식을 구현하는 동안, 현재 비디오 블록과 비디오의 비트스트림 표현 간의 변환을 수행하는 단계를 포함한다.
방법(2470)에 대한 일부 실시예에서, DMVD 방식을 활성화 또는 비활성화할지를 결정하는 것은 한번 수행되고 복수의 컴포넌트에 의해 공유된다. 방법(2470)에 대한 일부 실시예에서, DMVD를 활성화 또는 비활성화할지를 결정하는 것은 다수회 수행되고 복수의 컴포넌트에 의해 공유된다. 방법(2470)에 대한 일부 실시예에서, DMVD를 활성화 또는 비활성화할지를 결정하는 것이 먼저 복수의 컴포넌트 중 하나의 컴포넌트에 대하여 수행된 후, 복수의 컴포넌트 중의 하나 이상의 나머지 컴포넌트에 대하여 수행되거나 그와 공유된다. 방법(2470)에 대한 일부 실시예에서, 하나의 컴포넌트는 루마 컴포넌트이거나 녹색 컴포넌트이다. 방법(2470)에 대한 일부 실시예에서, DMVD를 활성화 또는 비활성화할지를 결정하는 것은 하나의 컴포넌트의 정보에 기초하여 복수의 컴포넌트 중 하나의 컴포넌트에 대하여 수행된다. 방법(2470)에 대한 일부 실시예에서, 하나의 컴포넌트는 루마 컴포넌트, 크로마 컴포넌트, 녹색 컴포넌트, 청색 컴포넌트 또는 적색 컴포넌트다.
일부의 실시예는 다음의 조항(조항) 기반 포맷을 이용하여 설명될 수 있다.
조항 1. 프로세서에 의해, 유도 규칙에 기초하여 파라미터를 유도함으로써 현재 비디오 블록과 현재 비디오 블록의 비트스트림 표현 간의 변환 동안 움직임 벡터 정제를 위한 디코더측 움직임 유도(DMVD) 방식을 구현하는 단계를 포함하는 비디오 프로세싱 방법.
조항 2. 조항 1의 기술에 있어서, 상기 파라미터는 현재 비디오 블록에 대한 최종 예측 블록에 적용된 파라미터로부터 유도된 기술.
조항 3. 조항 1의 기술에 있어서, 상기 파라미터는 비트스트림 표현에서 시그널링되는 기술.
조항 4. 조항 1의 기술에 있어서, 상기 파라미터는 상기 프로세서에 의해 유도되는 기술.
조항 5. 조항 1 내지 4중 어느 하나에 있어서, 상기 유도 규칙은 DMVD 방식에 대한 최종 예측 블록을 유도하는데 파라미터를 사용하도록 특정하는 기술.
조항 6. 조항 5의 기술에 있어서, 상기 변환은 일반화된 양방향 코딩 가중치, 또는 가중 예측 방식의 가중치 또는 국부 조도 보상 방식의 가중치 또는 양방향 광 흐름 방식의 시간적 또는 공간적 그래디언트 중의 하나를 먼저 적용한 후 예측 비용 함수를 산출함으로써 현재 비디오 블록에 대한 예측 비용 함수를 산출하는 것을 포함하는 기술.
조항 7. 조항 6의 기술에 있어서, 예측 비용 함수는 그래디언트 함수 또는 SAD(sum of absolute difference) 비용 함수인 기술.
조항 8. 조항 2의 기술에 있어서, 상기 파라미터는 상기 최종 예측 블록의 국부 조도 보상(local illumination compensation)을 위한 파라미터인 기술.
조항 9. 활성화 규칙에 기반한 현재 비디오 블록 및 현재 비디오 블록의 비트스트림 표현 간의 변환 동안 움직임 벡터 정제를 위한 디코더측 움직임 벡터 유도(DMVD) 방식을 선택적으로 이용하는 단계를 포함하는 비디오 프로세싱 방법.
조항 10. 조항 9의 기술에 있어서, 상기 활성화 규칙은 상기 변환이 일반화된 양방향 코딩 모드 또는 국부 조도 보상 모드 또는 가중 예측 모드 또는 다중 가설 예측을 이용하는 경우 DMVD 방식을 비활성화하도록 특정하는 기술.
조항 11. 조항 9의 기술에 있어서, 상기 활성화 기술은 동일하지 않은 픽처 오더 카운트 거리를 이용하는 양예측 블록인 현재 비디오 블록에 대한 DMVD 방식을 이용하도록 특정하는 기술.
조항 12. 조항 9의 기술에 있어서, 상기 활성화 규칙은 현재 비디오 블록의 양방향 예측의 2개 방향을 나타내는 픽처 오더 카운트 거리(PocDis0 및 PocDis1) 간의 관계에 기초하여 DMVD 방식을 이용하도록 특정하는 기술.
조항 13. 조항 12의 기술에 있어서, 상기 활성화 규칙은 PocDis0 = PocDis1인 경우 DMVD 방식을 이용하도록 특정하는 기술.
조항 14. 조항 12의 기술에 있어서, 상기 활성화 규칙은 PocDis0가 PocDis1와 동일하지 않은 경우 DMVD 방식을 이용하도록 특정하는 기술.
조항 15. 조항 12의 기술에 있어서, 상기 활성화 규칙은 PocDis0에 PocDis1를 곱한 것이 1보다 작은 경우 DMVD 방식을 이용하도록 특정하는 기술.
조항 16. 조항 9 내지14 중 어느 하나에 있어서, DMVD 방식은 변환 동안 2개의 참조 픽처 리스트로서 list0 및 list1를 이용하고, list0는 list1의 미러링된 버전인 기술.
조항 17. 조항 15에 있어서, DMVD 방식은 PocDis0 및 PocDis1 거리에 기초한 스케일링에 따라 list0 및 list1의 움직임 벡터 차를 이용하는 것을 포함하는 기술.
조항 18. 조항 17에 있어서, DMVD 방식은 list1의 움직임 벡터 차로 스케일링된 list0의 움직임 벡터 차를 이용하는 것을 포함하는 기술.
조항 19. 조항 17에 있어서, DMVD 방식은 list0의 움직임 벡터 차로 스케일링된 list1의 움직임 벡터 차를 이용하는 것을 포함하는 기술.
조항 20. 조항 9 내지14 중 어느 하나에 있어서, DMVD 방식은 참조 픽처의 픽처 오더 카운트에 따라 참조 픽처를 이용하는 것을 포함하는 기술.
조항 21. 조항 9에 있어서, 상기 활성화 규칙은 현재 비디오 블록의 치수에 기초하는 기술.
조항 22. 조항 21에 있어서, DMVD 방식은 W * H >= T1 && H >= T2인 경우 활성화되는 디코더측 움직임 벡터 정제(DMVR)를 포함하고 여기서,W 및 H는 현재 비디오 블록의 폭 및 높이이고, T1 및 T2은 유리수인 기술.
조항 23. 조항 21에 있어서, DMVD 방식은 W * H >= T1 && H >= T2인 경우 활성화되는 BIO(bidirectional optical) 코딩 방법을 포함하고, 여기서, W 및 H는 현재 비디오 블록의 폭 및 높이이고 T1 및 T2는 유리수인 기술.
조항 24. 조항 21에 있어서, DMVD 방식은 H >= T1 && !(W == T2 && H == T1)인 경우 활성화되는 디코더측 움직임 벡터 정제(DMVR)를 포함하고, 여기서, W 및 H는 현재 비디오 블록의 폭 및 높이이고 T1 및 T2는 유리수인 기술.
조항 25. 조항 21에 있어서, DMVD 방식은 H >= T1 && !(W == T2 && H == T1)인 경우 활성화되는 BIO(bidirectional optical) 코딩 방법을 포함하고, 여기서, W 및 H는 현재 비디오 블록의 폭 및 높이이고 T1 및 T2는 유리수인 기술.
조항 26. 조항 9 내지 21 중 어느 하나에 있어서, DMVD 방식은 디코더측 움직임 벡터 정제(DMVR) 방식 또는 BIO(bidirectional optical) 코딩 방식이고, DMVD 방식은 현재 비디오 블록이 폭 > th1 또는 높이 > th2를 갖는 경우에 비활성화되는 기술.
조항 27. 규칙에 기초하여 DMVD 방식을 서브블록 레벨로서 적용함으로써, 현재 비디오 블록과 현재 비디오 블록의 비트스트림 표현 간의 변환 동안 움직임 벡터 정제를 위한 디코더측 움직임 벡터 유도 (DMVD) 방식을 선택적으로 이용하는 단계를 포함하는 비디오 프로세싱 기술.
조항 28. 조항 27에 있어서, DMVD 방식은 디코더측 움직임 벡터 정제(DMVR) 방식 또는 BIO(bidirectional optical) 방식인 기술.
조항 29. 조항 28에 있어서, DMVD 방식은 BIO 방식이고, 상기 규칙은 서브 블록 단위로 DMVD 방식의 적용가능성을 특정하는 기술.
조항 30. 조항 29에 있어서, 상기 현재 비디오 블록은 폭 >= LW 또는 높이 >= LH이거나 폭*높이는 임계값(L)보다 크고, 여기서, L1, L, W 및 H는 정수이고, 상기 변환은 상기 현재 비디오 블록을 DMVD 방식을 이용하여 더 프로세싱된 다수의 서브블록으로 분할함으로써 수행되는 기술.
조항 31. 조항 30에 있어서, 상기 분할은 현재 비디오 블록을 수평으로 분할하는 것을 포함하는 기술.
조항 32. 조항 30에 있어서, 상기 분할은 현재 비디오 블록을 수직으로 분할하는 것을 포함하는 기술.
조항 33. 조항 30 내지 32 중 어느 하나에 있어서, L은 시퀀스 파라미터 세트 레벨, 픽처 파라미터 세트 레벨, 픽처 레벨, 슬라이스 레벨, 타일 그룹 레벨 또는 타일 레벨에서 비트스트림 표현에서 시그널링되고, L은 현재 비디오 블록의 크기 또는 현재 비디오 블록을 포함하는 픽처의 유형 또는 현재 비디오 블록의 시간적 계층 인덱스에 기초하여 암시적으로 시그널링되는 기술.
조항 34. 조항 1 내지 33 중 어느 하나에 있어서, DMVD는 현재 비디오 블록의 루마 또는 크로마 유형에 기초하여 현재 비디오 블록에 적용되는 기술.
조항 35. 조항 1 내지 34 중 어느 한 항에 있어서, 상기 변환은 현재 비디오 블록에 대응하는 상이한 루마 또는 크로마 유형 또는 블록에 대한 DMVD를 이용하는 결정에 기초하여 결정되는 DMVD 방식을 이용하는 기술.
조항 36. 조항 1 내지 35 중 어느 하나에 있어서, DMVD 방식은 디코더측 움직임 벡터 정제 방식 또는 BIO 방식을 포함하는 기술.
조항 37. 현재 비디오 블록 및 현재 비디오 블록의 비트스트림 표현 간의 변환 동안 - 상기 현재 비디오 블록은 대칭 움직임 벡터 차 코덱 기술을 이용함 -, 현재 비디오 블록에 대한 움직임 벡터가 정제되는 디코더측 움직임 벡터 유도 기술을 이용하는 단계 - 상기 대칭 움직임 벡터 차 코덱 기술은 움직임 벡터 차 유도를 이용하는 단계; 및 상기 디코더측 움직임 벡터 유도 기술을 이용하여 상기 변환을 수행하는 단계를 포함하는 기술.
조항 38. 조항 37에 있어서, 상기 디코더측 움직임 벡터 유도 기술은 디코더측 움직임 벡터 정제를 포함하는 기술.
조항 39. 조항 37 내지 38 중 어느 하나에 있어서, 상기 디코더측 움직임 벡터 유도 기술은 대칭 움직임 벡터 차 코덱 기술에 사용되는 N-픽셀로부터의 움직임 벡터 정밀도를 M-픽셀 정밀도로 변경하고, 여기서, N 및 M는 정수 또는 분수이고, N 및 M는 1/16, 1/8, 1/4, 1/2, 1, 2, 4, 8, 또는 16와 동일한 기술.
조항 40. 조항 39에 있어서, M 은 N 이하인 기술.
조항 41. 조항37 내지 41에 있어서, 상기 비트스트림 표현은 현재 비디오 블록에 대한 움직임 벡터 차 표시를 배제하고, 상기 디코더측 움직임 벡터 유도 기술은 움직임 벡터 차를 유도하는데 사용되는 기술.
조항 42. 조항 37 내지 42 중 어느 하나에 있어서, 상기 비트스트림 표현은 상기 디코더측 움직임 벡터 유도 기술 및 대칭 움직임 벡터 유도 기술이 현재 비디오 블록의 변환에 사용되는지를 나타내는 기술.
조항 43. 조항 1 내지 42 중 어느 하나에 있어서, 상기 변환은 현재 비디오 블록으로부터 비트스트림 표현을 생성하거나 비트스트림 표현으로부터 현재 비디오 블록을 생성하는 것을 포함하는 기술.
조항 44. 조항 1 내지 43 중의 하나 이상의 방법을 구현하도록 구성되는 프로세서를 포함하는 비디오 인코딩 장치.
조항 45. 조항 1 내지 43 중의 하나 이상의 방법을 구현하도록 구성되는 프로세서를 포함하는 비디오 디코딩 장치.
조항 46. 실행시, 프로세서가 조항 1 내지 43 중의 하나 이상의 방법을 구현하도록 하는 코드가 저장된 컴퓨터 판독가능 매체.
도 26은 개시된 다양한 기술이 구현될 수 있는 예시적인 비디오 프로세싱 시스템(2100)을 나타내는 블록도이다. 다양한 구현예는 시스템(2100)의 컴포넌트의 일부 또는 전부를 포함할 수 있다. 시스템(2100)은 비디오 콘텐츠를 수신하는 입력(2102)을 포함할 수 있다. 비디오 콘텐츠는 로우(raw) 또는 비압축 포맷, 예를 들어, 8 또는 10비트 멀티-컴포넌트 픽셀 값으로 수신되거나 압축 또는 인코딩 형식으로 수신될 수 있다. 입력(2102)은 네트워크 인터페이스, 주변 버스 인터페이스 또는 저장 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예는 이더넷, 수동 광 네트워크(PON; passive optical network) 등의 유선 인터페이스 및 와이파이 또는 셀룰러 인터페이스 등의 무선 인터페이스를 포함한다.
시스템(2100)은 본 문서에 기재된 다양한 코딩 또는 인코딩 방법을 구현할 수 있는 코딩 컴포넌트(2104)를 포함할 수 있다. 코딩 컴포넌트(2104)는 입력(2102)으로부터 비디오의 평균 비트레이트를 코딩 컴포넌트(2104)의 출력으로 감소시켜 비디오의 코딩된 표현을 생성한다. 그러므로, 코딩 기술은 때때로 비디오 압축 또는 비디오 트랜스코딩 기술이라 한다. 코딩 컴포넌트(2104)의 출력은 저장되거나 컴포넌트(2106)로 표시된 바와 같이 연결된 통신을 통해 전송된다. 입력(2102)에서 수신된 비디오의 저장되거나 통신된 비트스트림(또는 코딩된) 표현은 디스플레이 인터페이스(2110)로 전송된 디스플레이가능한 비디오 또는 픽셀 값을 생성하는 컴포넌트(2108)에 의해 사용될 수 있다. 비트스트림 표현으로부터 사용자 시청가능 비디오를 생성하는 프로세스는 때때로 비디오 압축 해제라 한다. 또한, 소정의 비디오 프로세싱 동작은 "코딩" 동작 또는 툴이라 하지만, 코딩 툴 또는 동작은 인코더에서 사용되며, 코딩 결과를 역전시키는 해당 디코딩 툴 또는 동작은 디코더에 의해 수행될 것이다.
주변 버스 인터페이스 또는 디스플레이 인터페이스의 예는 USB(universal serial bus), HDMI(high definition multimedia interface) 또는 디스플레이포트(Displayport) 등을 포함한다. 저장 인터페이스의 예는 SATA (serial advanced technology attachment), PCI, IDE 인터페이스 등을 포함한다. 본 문서에 기재된 기술은 모바일 폰, 랩탑, 스마트폰 또는 디지털 데이터 프로세싱 및/또는 비디오 디스플레이를 수행할 수 있는 다른 장치 등의 다양한 전자 장치에서 구현될 수 있다.
개시된 기술의 일부의 실시예는 비디오 프로세싱 툴 또는 모드를 활성화할지에 대한 결정 또는 판단을 하는 단계를 포함한다. 일 예에서, 비디오 프로세싱 툴 또는 모드가 활성화되면, 인코더는 비디오의 블록의 프로세싱에서 툴 또는 모드를 사용 또는 구현할 것이지만, 툴 또는 모드의 사용에 기초하여 결과적인 비트스트림을 반드시 변경할 필요는 없다. 즉, 비디오의 블록으로부터 비디오의 비트스트림 표현으로의 변환은 결정 또는 판단에 기초하여 활성화될 때 비디오 프로세싱 툴 또는 모드를 이용할 것이다. 다른 예에서, 비디오 프로세싱 툴 또는 모드가 활성화되면, 디코더는 비디오 프로세싱 툴 또는 모드에 기초하여 비트스트림이 변경되었다는 지식으로 비트스트림으로 프로세싱할 것이다. 즉, 비디오의 비트스트림 표현으로부터 비디오의 블록으로의 변환은 결정 또는 판단에 기초하여 활성화되는 비디오 프로세싱 툴 또는 모드를 이용하여 수행될 것이다.
개시된 기술의 일부 실시예는 비디오 프로세싱 툴 또는 모드를 비활성화하는 것에 대한 결정 또는 판단을 포함한다. 일 예에서, 비디오 프로세싱 툴 또는 모드가 비활성화되면, 인코더는 비디오의 블록의 비디오의 비트스트림 표현으로의 변환에서 툴 또는 모드를 사용하지 않을 것이다. 다른 예에서, 비디오 프로세싱 툴 또는 모드가 비활성화되면, 디코더는 결정 또는 판단에 기초하여 비활성화되는 비디오 프로세싱 툴 또는 모드를 이용하여 비트스트림이 변경되지 않았다는 지식으로 비트스트림을 프로세싱할 것이다.
도 27은 본 개시의 기술을 이용할 수 있는 예시적인 비디오 코딩 시스템(100)을 나타내는 블록도이다. 도 27에 도시된 바와 같이, 비디오 코딩 시스템(100)은 소스 장치(110) 및 목적지 장치(120)를 포함할 수 있다. 소스 장치(110)는 인코딩된 비디오 데이터를 생성하며, 이는 비디오 인코딩 장치라 할 수 있다. 목적지 장치(120)는 소스 장치(110)에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수 있고, 이는 비디오 디코딩 장치라 할 수 있다. 소스 장치(110)는 비디오 소스(112), 비디오 인코더(114), 및 입출력 (I/O) 인터페이스(116)를 포함할 수 있다.
비디오 소스(112)는 비디오 캡쳐 장치, 비디오 컨텐츠 제공자로부터 비디오 데이터를 수신하는 인터페이스 및/또는 비디오 데이터를 생성하는 컴퓨터 그래픽 시스템 또는 이들 소스의 조합을 포함할 수 있다. 비디오 데이터는 하나 이상의 픽처를 포함할 수 있다. 비디오 인코더(114)는 비디오 소스(112)로부터의 비디오 데이터를 인코딩하여 비트스트림을 생성한다. 비트스트림은 비디오 데이터의 코딩된 표현을 형성하는 비트의 시퀀스를 포함할 수 있다. 비트스트림은 코딩된 픽처들 및 연관된 데이터를 포함할 수 있다. 코딩된 픽처는 픽처의 코딩된 표현이다. 연관된 데이터는 시퀀스 파라미터 세트, 픽처 파라미터 세트 및 다른 신택스 구조를 포함할 수 있다. I/O 인터페이스(116)는 변조기/복조기(모뎀) 및/또는 송신기를 포함할 수 있다. 인코딩된 비디오 데이터는 네트워크(130a)를 통해 I/O 인터페이스(116)를 통해 목적지 장치(120)로 직접 전송될 수 있다. 인코딩된 비디오 데이터는 또한 목적지 장치(120)에 의한 액세스를 위해 저장 매체/서버(130b) 상에 저장될 수 있다.
목적지 장치(120)는 I/O 인터페이스(126), 비디오 디코더(124), 및 디스플레이 장치(122)를 포함할 수 있다.
I/O 인터페이스(126)는 수신기 및/또는 모뎀을 포함할 수 있다. I/O 인터페이스(126)는 소스 장치(110) 또는 저장 매체/서버(130b)로부터 인코딩된 비디오 데이터를 획득할 수 있다. 비디오 디코더(124)는 인코딩된 비디오 데이터를 디코딩할 수 있다. 디스플레이 장치(122)는 디코딩된 비디오 데이터를 사용자에게 디스플레이할 수 있다. 디스플레이 장치(122)는 목적지 장치(120)와 통합되거나 외부 디스플레이 장치와 인터페이싱하도록 구성되는 목적지 장치(120)의 외부에 있을 수 있다.
비디오 인코더(114) 및 비디오 디코더(124)는 HEVC(High Efficiency Video Coding) 표준, VVM(Versatile Video Coding) 표준 및 다른 현재 및/또는 미래 표준 등의 비디오 압축 표준에 따라 동작할 수 있다.
도 28은 비디오 인코더(200)의 예를 나타내는 블록도이고, 이는 도 27에 도시된 시스템(100) 내의 비디오 인코더(114)일 수 있다.
비디오 인코더(200)는 본 개시의 기술의 일부 또는 전부를 수행하도록 구성될 수 있다. 도 28의 예에서, 비디오 인코더(200)는 복수의 기능 컴포넌트를 포함한다. 본 개시에 기재된 기술은 비디오 인코더(200)의 다양한 컴포넌트 사이에서 공유될 수 있다. 일부 예에서, 프로세서는 본 개시에 기재된 기술의 일부 또는 전부를 수행하도록 구성될 수 있다.
비디오 인코더(200)의 기능 컴포넌트는 분할부(201), 모드 선택부(203), 움직임 추정부(204), 움직임 보상부(205) 및 인트라 예측부(206)를 포함하는 예측부(202), 잔차 생성부(207), 변환부(208), 양자화부(209), 역양자화부(210), 역변환부(211), 재구성부(212), 버퍼(213) 및 엔트로피 인코딩부(214)를 포함할 수 있다.
다른 예에서, 비디오 인코더(200)는 더 많거나, 더 적거나 상이한 기능 컴포넌트를 포함할 수 있다. 일 예에서, 예측부(202)는 인트라 블록 카피(IBC)부를 포함할 수 있다. IBC 부는 적어도 하나의 참조 픽처가 현재 비디오 블록이 위치하는 픽처인 IBC 모드에서 예측을 수행할 수 있다.
또한, 움직임 추정부(204) 및 움직임 보상부(205) 등의 일부의 컴포넌트는 고도로 통합될 수 있지만, 설명의 목적으로 도 28의 예에서 별도로 표현된다.
분할부(201)는 픽처를 하나 이상의 비디오 블록으로 분할할 수 있다. 비디오 인코더(200) 및 비디오 디코더(300)는 다양한 비디오 블록 크기를 지원할 수 있다.
모드 선택부(203)는, 에러 결과에 기초하여, 코딩 모드 중의 하나, 예를 들어, 인트라 또는 인터를 선택하고, 결과적인 인트라 또는 인터 코딩된 블록을 잔차 생성부(207)에 제공하여 잔차 블록 데이터를 생성하고 재구성부(212)에 제공하여 참조 픽처로서 사용되도록 인코딩된 블록을 재구성한다. 일부 예에서, 모드 선택부(203)는 예측이 인터 예측 신호 및 인트라 예측 신호에 기초하는 CIIP(combination of intra and inter predication) 모드를 선택할 수 있다. 모드 선택부(203)는 또한 인터 예측의 경우 블록에 대하여 움직임 벡터에 대한 해상도(예를 들어, 서브픽셀 또는 정수 픽셀 정밀도)를 선택할 수 있다.
현재 비디오 블록에 대해 인터 예측을 수행하기 위해, 움직임 추정부(204)는, 버퍼(213)로부터의 하나 이상의 참조 프레임을 현재 비디오 블록과 비교함으로써 현재 비디오 블록에 대한 움직임 정보를 생성할 수 있다. 움직임 보상부(205)는 현재 비디오 블록과 연관된 픽처 이외의 버퍼(213)로부터의 픽처의 디코딩된 샘플 및 움직임 정보에 기초하여 현재 비디오 블록에 대한 예측된 비디오 블록을 결정할 수 있다.
움직임 추정부(204) 및 움직임 보상부(205)는, 예를 들어, 현재 비디오 블록이 I 슬라이스, P 슬라이스 또는 B 슬라이스인지에 따라, 현재 비디오 블록에 대하여 상이한 동작을 수행할 수 있다.
일부 예에서, 움직임 추정부(204)는 현재 비디오 블록에 대한 단방향 예측을 수행할 수 있고, 움직임 추정부(204)는 현재 비디오 블록에 대한 참조 비디오 블록에 대해 list 0 또는 list 1의 참조 픽처를 탐색할 수 있다. 그 후, 움직임 추정부(204)는 참조 비디오 블록을 포함하는 list 0 또는 list 1 내의 참조 픽처를 나타내는 참조 인덱스 및 현재 비디오 블록 및 참조 비디오 블록 간의 공간적 변위를 나타내는 움직임 벡터를 생성할 수 있다. 움직임 추정부(204)는 참조 인덱스, 예측 방향 지시기 및 움직임 벡터를 현재 비디오 블록의 움직임 정보로서 출력할 수 있다. 움직임 보상부(205)는 현재 비디오 블록의 움직임 정보에 의해 지시된 참조 비디오 블록에 기초하여 현재 블록의 예측된 비디오 블록을 생성할 수 있다.
다른 예에서, 움직임 추정부(204)는 현재 비디오 블록에 대한 양방향 예측을 수행할 수 있고, 움직임 추정부(204)는 현재 비디오 블록에 대한 참조 비디오 블록에 대해 list 0 내의 참조 픽처를 탐색하고, 또한 현재 비디오 블록에 대한 다른 참조 비디오 블록에 대해 list 1 내의 참조 픽처를 탐색할 수 있다. 움직임 추정부(204)는 참조 비디오 블록을 포함하는 list 0 및 list 1 내의 참조 픽처를 나타내는 참조 인덱스 및 참조 비디오 블록 및 현재 비디오 블록 간의 공간적 변위를 나타내는 움직임 벡터들을 생성할 수 있다. 움직임 추정부(204)는 현재 비디오 블록의 움직임 정보로서 참조 인덱스들 및 현재 비디오 블록의 움직임 벡터들을 출력할 수 있다. 움직임 보상부(205)는 현재 비디오 블록의 움직임 정보에 의해 지시된 참조 비디오 블록에 기초하여 현재 비디오 블록의 예측된 비디오 블록을 생성할 수 있다.
일부 예에서, 움직임 추정부(204)는 디코더의 디코딩 프로세싱을 위한 전체 움직인 정보 세트를 출력할 수 있다.
일부 예에서, 움직임 추정부(204)는 현재 비디오에 대한 전체 움직임 정보 세트를 출력하지 않을 수 있다. 오히려, 움직임 추정부(204)는 다른 비디오 블록의 움직임 정보를 참조하여 현재 비디오 블록의 움직임 정보를 시그널링할 수 있다. 예를 들어, 움직임 추정부(204)는 현재 비디오 블록의 움직임 정보가 인접 비디오 블록의 움직임 정보와 충분히 유사한 것으로 결정할 수 있다.
일 예에서, 움직임 추정부(204)는, 현재 비디오 블록과 연관된 신택스 구조에서, 현재 비디오 블록이 다른 비디오 블록과 동일한 움직임 정보를 갖는다는 것을 비디오 디코더(300)에 지시하는 값을 지시할 수 있다.
다른 예에서, 움직임 추정부(204)는, 현재 비디오 블록과 연관된 신택스 구조에서, 다른 비디오 블록 및 움직임 벡터 차(MVD)를 식별할 수 있다. 움직임 벡터 차는 현재 비디오 블록의 움직임 벡터 및 지시된 비디오 블록의 움직임 벡터 간의 차를 나타낸다. 비디오 디코더(300)는 지시된 비디오 블록의 움직임 벡터 및 움직임 벡터 차를 이용하여 현재 비디오 블록의 움직임 벡터를 결정할 수 있다.
상술한 바와 같이, 비디오 인코더(200)는 움직임 벡터를 예측적으로 시그널링할 수 있다. 비디오 인코더(200)에 의해 구현될 수 있는 예측 시그널링 기술의 예는 어드밴스드 움직임 벡터 예측(AMVP) 및 머지 모드 시그널링을 포함한다.
인트라 예측부(206)는 현재 비디오 블록에 대하여 인트라 예측을 수행할 수 있다. 인트라 예측부(206)가 현재 비디오 블록에 대하여 인트라 예측을 수행하면, 인트라 예측부(206)는 샘플 픽처 내의 다른 비디오 블록의 디코딩된 샘플에 기초하여 현재 비디오 블록에 대한 예측 데이터를 생성할 수 있다. 현재 비디오 블록에 대한 예측 데이터는 예측된 비디오 블록 및 다양한 신택스 요소를 포함할 수 있다.
잔차 생성부(207)는 현재 비디오 블록으로부터 현재 비디오 블록의 예측된 비디오 블록(들)을 감산(예를 들어, 마이너스 부호로 표시)함으로써 현재 비디오 블록에 대한 잔차 데이터를 생성할 수 있다. 현재 비디오 블록의 잔차 데이터는 현재 비디오 블록 내의 샘플의 상이한 샘플 컴포넌트에 대응하는 잔차 비디오 블록을 포함할 수 있다.
다른 예에서, 예를 들어, 스킵 모드에서, 현재 비디오 블록에 대한 잔차 데이터가 없을 수 있고, 잔차 생성부(207)는 감산 연산을 수행하지 않을 수 있다.
변환처리부(208)는 현재 비디오 블록과 연관된 잔차 비디오 블록에 하나 이상의 변환을 적용함으로써 현재 비디오 블록에 대한 하나 이상의 변환 계수 비디오 블록을 생성할 수 있다.
변환처리부(208)가 현재 비디오 블록과 연관된 변환 계수 비디오 블록을 생성한 후에, 양자화부(209)는 현재 비디오 블록과 연관된 하나 이상의 양자화 파라미터(QP) 값에 기초하여 현재 비디오 블록과 연관된 변환 계수 비디오 블록을 양자화할 수 있다.
역양자화부(210) 및 역변환부(211)는 변환 계수 비디오 블록에 각각 역양자화 및 역변환을 적용하여, 변환 계수 비디오 블록으로부터 잔차 비디오 블록을 재구성한다. 재구성부(212)는 예측부(202)에 의해 생성된 하나 이상의 예측된 비디오 블록으로부터의 해당 샘플에 재구성된 잔차 비디오 블록을 추가하여 버퍼(213)에 저장될 현재 블록에 연관된 재구성된 비디오 블록을 생성할 수 있다.
재구성부(212)가 비디오 블록을 재구성한 후, 루프 필터링 동작이 수행되어 비디오 블록 내의 비디오 블록 아티팩트(artifacts)를 줄일 수 있다.
엔트로피 인코딩부(214)는 비디오 인코더(200)의 다른 기능 컴포넌트로부터 데이터를 수신할 수 있다. 엔트로 인코딩부(214)가 데이터를 수신하면, 엔트로피 인코딩부(214)는 하나 이상의 엔트로피 인코딩 동작을 수행하여 엔트로피 인코딩된 데이터를 생성하고 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력할 수 있다.
도 29는 도 27에 도시된 시스템(100)의 비디오 인코더(114)일 수 있는 비디오 디코더(300)의 예를 나타내는 블록도이다.
비디오 디코더(300)는 본 개시의 기술의 일부 또는 모두를 수행하도록 구성된다. 도 29의 예에서, 비디오 디코더(300)는 복수의 기능 컴포넌트를 포함한다. 본 개시에 기재된 기술은 비디오 디코더(300)의 다양한 컴포넌트 사이에서 공유될 수 있다. 일부 예에서, 프로세서는 본 개시에 기재된 기술의 일부 또는 전부를 수행하도록 구성될 수 있다.
도 29의 예에서, 비디오 디코더(300)는 엔트로피 디코딩부(301), 움직임 보상부(302), 인트라 예측부(303), 역양자화부(304), 역변환부(305), 재구성부(306) 및 버퍼(307)를 포함한다. 비디오 디코더(300)는, 일부 예에서, 비디오 인코더(200) (도 28)에 대하여 기술된 인코딩 패스(pass)에 일반적으로 역인 디코딩 패스를 수행할 수 있다.
엔트로피 디코딩부(301)는 인코딩된 비트스트림을 검색할 수 있다. 인코딩된 비트스트림은 엔트로피 코딩된 비디오 데이터(예를 들어, 비디오 데이터의 인코딩된 블록)를 포함할 수 있다. 엔트로피 디코딩부(301)는 엔트로피 코딩된 비디오 데이터를 디코딩할 수 있고, 엔트로피 디코딩된 비디오 데이터로부터, 움직임 보상부(302)는 움직임 벡터들, 움직임 벡터 정밀도, 참조 픽처 리스트 인덱스들 및 다른 움직임 정보를 포함하는 움직임 정보를 결정할 수 있다. 움직임 보상부(302)는, 예를 들어, AMVP 및 머지 모드를 수행함으로써 이러한 정보를 결정할 수 있다.
움직임 보상부(302)는, 움직임 보상 블록을 생성할 수 있고, 가능하면, 보간 필터에 기초하여 보간을 수행할 수 있다. 서브픽셀 정밀도와 함께 사용될 보간 필터에 대한 식별자는 신택스 요소에 포함될 수 있다.
움직임 보상부(302)는 참조 블록의 서브-정수 픽셀에 대한 보간된 값을 산출하기 위하여 비디오 블록의 인코딩 동안 비디오 인코더(20)에 의해 사용되는 보간 필터를 사용할 수 있다. 움직임 보상부(302)는 수신된 신택스 정보에 따라 비디오 인코더(200)에 의해 사용되는 보간 필터를 결정하고 보간 필터를 이용하여 예측 블록을 생성할 수 있다.
움직임 보상부(302)는 신택스 정보의 일부를 이용하여 인코딩된 비디오 시퀀스의 프레임(들) 및/또는 슬라이스(들)를 인코딩하는데 사용되는 블록의 크기, 인코딩된 비디오 시퀀스의 픽처의 각 매크로블록이 어떻게 분할되는지를 기술하는 분할 정보, 각 분할이 인코딩되는 방법을 지시하는 모드, 각 인터 인코딩된 블록에 대한 하나 이상의 참조 프레임들(및 참조 프레임 리스트들) 및 인코딩된 비디오 시퀀스를 디코딩하는 다른 정보를 결정할 수 있다.
인트라 예측부(303)는 예를 들어 비트스트림에서 수신된 인트라 예측 모드를 이용하여 공간적으로 인접한 블록으로부터 예측 블록을 형성한다. 역양자화부(303)는 비트스트림에서 제공되는 양자화되고 엔트로피 디코딩부(301)에 의해 디코딩된 비디오 블록 계수를 역양자화한다. 역변환부(303)는 역 변환을 적용한다.
재구성부(306)는 잔차 블록을 움직임 보상부(202) 또는 인트라 예측부(303)에 의해 생성된 해당 예측 블록과 합산하여 디코딩된 블록을 형성할 수 있다. 원한다면, 블록성(blockiness) 아티팩트를 제거하기 위하여, 디블록킹 필터가 적용되어 디코딩 블록들을 필터링할 수 있다. 그 후, 디코딩된 비디오 블록들은 버퍼(307)에 저장되고, 버퍼는 후속의 움직임 보상/인트라 예측을 위한 참조 블록을 제공하고 디스플레이 장치 상에 제시될 디코딩된 비디오를 생성한다.
전술한 것으로부터, 현재 개시된 기술의 특정 실시예가 예시의 목적으로 여기에 설명되었지만, 본 발명의 범위를 벗어나지 않고 다양한 수정이 이루어질 수 있다는 것을 이해할 것이다. 따라서, 현재 개시된 기술은 첨부된 청구 범위를 제외하고는 제한되지 않는다.
이 문서에 설명된 개시된 및 다른 솔루션, 예, 실시예, 모듈 및 기능적 동작은 디지털 전자 회로, 본 문서에 개시된 구조, 그들의 구조적 동등물들을 포함하는 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어 또는 이들 중의 하나 이상의 조합으로 구현될 수 있다. 개시된 실시예 및 다른 실시예는 하나 이상의 컴퓨터 프로그램 제품, 즉, 데이터 프로세싱 장치에 의한 실행 또는 그의 동작의 제어를 위해 컴퓨터 판독가능 매체 상에 인코딩되는 컴퓨터 프로그램 명령의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독가능 매체는 머신-판독가능 저장 장치, 머신-판독가능 저장 기판, 메모리 장치, 머신-판독가능 전파 신호에 영향을 주는 물질의 구성 또는 그들 중의 하나 이상의 조합일 수 있다. 용어 "데이터 프로세싱 장치"는 데이터 처리를 위한 모든 장치, 디바이스 및 머신을 포함하며, 예를 들어 프로그램 가능한 프로세서, 컴퓨터 또는 다중 프로세서 또는 컴퓨터를 포함한다. 장치는 하드웨어에 더하여 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나의 조합을 구성하는 코드를 포함할 수 있다. 전파되는 신호는 인공적으로 생성된 신호, 예를 들어, 머신 생성 전기, 광, 또는 전자기 신호이며, 이는 적절한 수신기 장치로의 전송을 위한 정보를 인코딩하기 위해 생성된다.
컴퓨터 프로그램 (프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 함)은 컴파일된 언어 또는 해석된 언어를 포함하여 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립형 프로그램 또는 컴퓨터 환경에서 사용되기에 적합한 모듈, 컴포넌트, 서브루틴 또는 다른 유닛으로서 임의의 형태로 배치(deploy)될 수 있다. 컴퓨터 시스템은 파일 시스템 내의 파일에 반드시 대응되는 것은 아니다. 프로그램은 다른 프로그램 또는 데이터를 보유하는 파일의 일부(예를 들어 마크업 언어 문서에 저장된 하나 이상의 스크립트) 또는 문제의 프로그램의 전용인 단일 파일 또는 다중 편성(coordinated) 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드의 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은, 하나의 컴퓨터 또는 한 사이트에 위치하거나 다수의 사이트에 걸쳐 분배되고 통신 네트워크에 의해 상호 접속되는 다수의 컴퓨터 상에서 실행되도록 배치될 수 있다.
본 명세서에 설명된 프로세스 및 로직 흐름은 입력 데이터에 대해 작동하고 출력을 생성함으로써 기능을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍가능한 프로세서에 의해 수행될 수 있다. 프로세스 및 로직 흐름은 또한 FPGA (필드 프로그래밍 가능 게이트 어레이) 또는 ASIC (애플리케이션 특정 집적 회로)와 같은 특수 목적 로직 회로로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는 예를 들어 범용 및 특수 목적의 마이크로 프로세서와 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 리드 온리 메모리 또는 랜덤 액세스 메모리 또는 둘 다에서 명령과 데이터를 수신한다. 컴퓨터의 필수 요소는 명령을 수행하기위한 프로세서와 명령과 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치, 예를 들어 자기, 광 자기 디스크 또는 광 디스크로부터 데이터를 수신하거나 데이터를 전송하거나 둘 모두를 수행하도록 동작 가능하게 결합된다. 그러나 컴퓨터가 이러한 장치를 가질 필요는 없다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 비일시적 컴퓨터 판독 가능 매체는 예를 들어 EPROM, EEPROM 및 플래시 메모리 장치와 같은 반도체 메모리 장치; 내부 하드 디스크 또는 제거가능 디스크 등의 자기 디스크; 광자기 디스크 및 CD ROM 및 DVD-ROM 디스크를 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함한다. 프로세서와 메모리는 특수 목적 로직 회로에 의해 보완되거나 통합될 수 있다.
이 특허 문서에는 많은 세부 사항이 포함되어 있지만, 이는 임의의 발명의 범위 또는 청구 대상에 대한 제한으로 해석되어서는 안되며, 특정 발명의 특정 실시예에 특정될 수 있는 특징에 대한 설명으로 해석되어야 한다. 개별 실시예의 맥락에서 본 특허 문서에 설명된 특정 특징은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시 예의 맥락에서 설명된 다양한 특징은 또한 다중 실시 예에서 개별적으로 또는 임의의 적절한 하위 조합으로 구현될 수 있다. 더욱이, 특징이 특정 조합으로 작용하는 것으로 위에서 설명될 수 있고 심지어 처음에 그렇게 청구될 수도 있지만, 청구된 조합으로부터 하나 이상의 특징이 어떤 경우에는 조합으로부터 삭제될 수 있고, 청구된 조합은 하위 조합 또는 변형일 수 있다.
유사하게, 동작이 특정 순서로 도면에 도시되어 있지만, 이는 바람직한 결과를 달성하기 위해 그러한 동작이 도시된 특정 순서 또는 순차적인 순서로 수행되거나 모든 예시된 동작이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 더욱이, 이 특허 문헌에 설명된 실시예들에서 다양한 시스템 컴포넌트들의 분리는 모든 실시예들에서 그러한 분리를 요구하는 것으로 이해되어서는 안된다.
단지 몇 가지 구현예 및 예가 설명되고, 다른 구현예, 향상 및 변형이 특허 문서에 설명되고 예시된 것에 기초하여 이루어질 수 있다.

Claims (55)

  1. 비디오 프로세싱 방법에 있어서,
    비디오의 현재 비디오 블록의 블록 차원을 이용하는 규칙에 기초하여, 상기 현재 비디오 블록과 상기 비디오의 비트스트림 간의 변환을 위해 제1 방식이 활성화되는지 혹은 비활성화되는지 여부에 대한 제1 결정을 내리는 단계, 상기 제1 방식은 리스트 0에 대한 적어도 하나의 참조 샘플과 리스트 1에 대한 적어도 하나의 참조 샘플 간의 비용에 기초하여 개선된 움직임 정보를 유도하는 데 사용되는 디코더측 움직임 벡터 정제 (DMVR; Decoder-side Motion Vector Refinement) 방식 이고;
    상기 동일한 규칙에 기초하여, 상기 변환에 대해 제2 방식이 활성화되는지 혹은 비활성화되는지 여부에 대한 제2 결정을 내리는 단계, 상기 제2 방식은 양방향 광 흐름(bi-directional optical flow) 방식이고;
    상기 제1 결정 및 상기 제2 결정에 기초하여 상기 변환을 수행하는 단계;를 포함하되,
    상기 제1 방식 및 상기 제2 방식은,
    상기 현재 비디오 블록의 제1 샘플 개수가 제2 샘플 개수보다 작은 경우, 또는
    상기 현재 비디오 블록의 너비가 어느 값보다 작은 경우 또는 상기 현재 비디오 블록의 높이가 어느 값보다 작은 경우,
    중 적어도 어느 하나에 응답하여 비활성화되는 것으로 결정되는, 비디오 프로세싱 방법.
  2. 제1 항에 있어서,
    상기 값은 8인, 비디오 프로세싱 방법.
  3. 제1 항에 있어서,
    상기 제1 방식 및 상기 제2 방식은 (W * H) >= T1 및 H >= T2에 기초하여 활성화되는 것으로 결정되고, W 및 H는 각각 현재 비디오 블록의 너비 및 높이이고, T1 및 T2는 유리수인, 비디오 프로세싱 방법.
  4. 제1 항에 있어서,
    T2는 8인, 비디오 프로세싱 방법.
  5. 제1 항에 있어서,
    상기 제1 방식 및 상기 제2 방식은 상기 현재 비디오 블록에 대해 동일한 서브 블록 레벨에서 수행되는, 비디오 프로세싱 방법.
  6. 제5 항에 있어서,
    상기 서브 블록 크기의 결정은 상기 제1 방식 및 상기 제2 방식에 대해 동일한, 비디오 프로세싱 방법.
  7. 제5 항에 있어서,
    상기 현재 비디오 블록은 상기 현재 비디오 블록의 너비가 어느 값보다 큰 경우 수직으로 분할되며, 상기 현재 비디오 블록의 서브 블록의 너비는 상기 값 이하이고, 또는
    상기 현재 비디오 블록은 상기 현재 비디오 블록의 높이가 어느 값보다 큰 경우 수평으로 분할되며, 상기 현재 비디오 블록의 서브 블록의 높이는 상기 값 이하인, 비디오 프로세싱 방법.
  8. 제5 항에 있어서,
    상기 서브 블록은 서브 블록 크기와 동일한 크기를 갖는 코딩 블록과 동일한 방식으로 상기 제1 방식 및 상기 제2 방식에 의해 프로세싱 되는, 비디오 프로세싱 방법.
  9. 제7 항에 있어서,
    상기 값은 16인, 비디오 프로세싱 방법.
  10. 제1 항에 있어서,
    상기 현재 비디오 블록은 루마 비디오 블록이고 상기 제1 방식 및/혹은 상기 제2 방식이 활성화 혹은 비활성화되는지 여부를 결정하는 단계는 연관된 크로마 비디오 블록들의 정보를 이용하지 않고 상기 루마 비디오 블록의 정보에 기초하여 수행되는, 비디오 프로세싱 방법.
  11. 제5 항에 있어서,
    상기 제1 방식은 디코더측 움직임 벡터 정제 방식이고, 상기 개선된 움직임 정보는 상기 현재 비디오 블록에 대한 상기 서브 블록 레벨에서 상기 디코더 측 움직임 벡터 정제 방식에서 양자 매칭(bilateral matching)을 적용함으로써 획득되는, 비디오 프로세싱 방법.
  12. 제5 항에 있어서,
    상기 제2 방식은 활성화되는 것으로 결정되고 상기 개선된 움직임 정보는 상기 제2 방식에서 상기 현재 비디오 블록의 상기 서브 블록 레벨에서 수행되는 상기 움직임 정보의 샘플 별(sample-wise) 개선을 수행함으로써 획득되는, 비디오 프로세싱 방법.
  13. 제5 항에 있어서,
    상기 제2 방식은 상기 현재 비디오 블록에 대한 서브 블록 레벨에서 활성화 또는 비활성화 되도록 결정되는, 비디오 프로세싱 방법.
  14. 제1 항에 있어서,
    상기 변환은 상기 현재 비디오 블록을 상기 비트스트림으로 인코딩하는 것을 포함하는, 비디오 프로세싱 방법.
  15. 제1 항에 있어서,
    상기 변환은 상기 비트스트림으로부터 상기 현재 비디오 블록을 디코딩하는 것을 포함하는, 비디오 프로세싱 방법.
  16. 프로세서 및 명령을 포함하는 비 일시적 메모리를 포함하는 비디오 데이터 프로세싱 장치에 있어서, 상기 명령은 상기 프로세서에 의해 실행되되, 상기 프로세서가
    비디오의 현재 비디오 블록의 블록 차원을 이용하는 규칙에 기초하여, 상기 현재 비디오 블록과 상기 비디오의 비트스트림 간의 변환을 위해 제1 방식이 활성화되는지 혹은 비활성화되는지 여부에 대한 제1 결정을 내리게 하고, 상기 제1 방식은 리스트 0에 대한 적어도 하나의 참조 샘플과 리스트 1에 대한 적어도 하나의 참조 샘플 간의 비용에 기초하여 개선된 움직임 정보를 유도하는 데 사용되는 디코더측 움직임 벡터 정제 (DMVR) 방식 이고;
    상기 동일한 규칙에 기초하여, 상기 변환에 대해 제2 방식이 활성화되는지 혹은 비활성화되는지 여부에 대한 제2 결정을 내리게 하고, 상기 제2 방식은 양방향 광 흐름(bi-directional optical flow) 방식이고;
    상기 제1 결정 및 상기 제2 결정에 기초하여 상기 변환을 수행하게 하되,
    상기 제1 방식 및 상기 제2 방식은,
    상기 현재 비디오 블록의 제1 샘플 개수가 제2 샘플 개수보다 작은 경우, 또는
    상기 현재 비디오 블록의 너비가 어느 값보다 작은 경우 또는 상기 현재 비디오 블록의 높이가 어느 값보다 작은 경우,
    중 적어도 어느 하나에 응답하여 비활성화되는 것으로 결정되는, 비디오 데이터 프로세싱 장치.
  17. 명령을 저장하는 비 일시적 컴퓨터 판독 가능한 저장 매체에 있어서, 상기 명령은 프로세서가,
    비디오의 현재 비디오 블록의 블록 차원을 이용하는 규칙에 기초하여, 상기 현재 비디오 블록과 상기 비디오의 비트스트림 간의 변환을 위해 제1 방식이 활성화되는지 혹은 비활성화되는지 여부에 대한 제1 결정을 내리게 하고, 상기 제1 방식은 리스트 0에 대한 적어도 하나의 참조 샘플과 리스트 1에 대한 적어도 하나의 참조 샘플 간의 비용에 기초하여 개선된 움직임 정보를 유도하는 데 사용되는 디코더측 움직임 벡터 정제 (DMVR) 방식 이고;
    상기 동일한 규칙에 기초하여, 상기 변환에 대해 제2 방식이 활성화되는지 혹은 비활성화되는지 여부에 대한 제2 결정을 내리게 하고, 상기 제2 방식은 양방향 광 흐름(bi-directional optical flow) 방식이고;
    상기 제1 결정 및 상기 제2 결정에 기초하여 상기 변환을 수행하게 하되,
    상기 제1 방식 및 상기 제2 방식은,
    상기 현재 비디오 블록의 제1 샘플 개수가 제2 샘플 개수보다 작은 경우, 또는
    상기 현재 비디오 블록의 너비가 어느 값보다 작은 경우 또는 상기 현재 비디오 블록의 높이가 어느 값보다 작은 경우,
    중 적어도 어느 하나에 응답하여 비활성화되는 것으로 결정되는, 비 일시적 컴퓨터 판독 가능한 저장 매체.
  18. 비디오 프로세싱 장치가 수행하는 방법에 의해 생성된 비디오의 비트스트림을 저장하는 비 일시적 컴퓨터 판독 가능한 기록 매체에 있어서, 상기 방법은,
    비디오의 현재 비디오 블록의 블록 차원을 이용하는 규칙에 기초하여, 제1 방식이 활성화되는지 혹은 비활성화되는지 여부에 대한 제1 결정을 내리는 단계, 상기 제1 방식은 리스트 0에 대한 적어도 하나의 참조 샘플과 리스트 1에 대한 적어도 하나의 참조 샘플 간의 비용에 기초하여 개선된 움직임 정보를 유도하는 데 사용되는 디코더측 움직임 벡터 정제 (DMVR) 방식 이고;
    상기 동일한 규칙에 기초하여, 제2 방식이 활성화되는지 혹은 비활성화되는지 여부에 대한 제2 결정을 내리는 단계, 상기 제2 방식은 양방향 광 흐름(bi-directional optical flow) 방식이고;
    상기 제1 결정 및 상기 제2 결정에 기초하여 상기 비트스트림을 생성하는 단계;를 포함하되,
    상기 제1 방식 및 상기 제2 방식은,
    상기 현재 비디오 블록의 제1 샘플 개수가 제2 샘플 개수보다 작은 경우, 또는
    상기 현재 비디오 블록의 너비가 어느 값보다 작은 경우 또는 상기 현재 비디오 블록의 높이가 어느 값보다 작은 경우,
    중 적어도 어느 하나에 응답하여 비활성화되는 것으로 결정되는, 비 일시적 컴퓨터 판독 가능한 기록 매체.
  19. 삭제
  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. 삭제
KR1020217024205A 2019-02-14 2020-02-14 디코더 측 정제 툴들의 크기 선택 적용 KR102662449B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN2019075068 2019-02-14
CNPCT/CN2019/075068 2019-02-14
CN2019082585 2019-04-13
CNPCT/CN2019/082585 2019-04-13
PCT/CN2020/075235 WO2020164580A1 (en) 2019-02-14 2020-02-14 Size selective application of decoder side refining tools

Publications (2)

Publication Number Publication Date
KR20210121060A KR20210121060A (ko) 2021-10-07
KR102662449B1 true KR102662449B1 (ko) 2024-04-30

Family

ID=72043749

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217024205A KR102662449B1 (ko) 2019-02-14 2020-02-14 디코더 측 정제 툴들의 크기 선택 적용

Country Status (6)

Country Link
US (5) US11425417B2 (ko)
EP (2) EP3909239A4 (ko)
JP (2) JP7263529B2 (ko)
KR (1) KR102662449B1 (ko)
CN (5) CN117336505A (ko)
WO (4) WO2020164580A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9900615B2 (en) * 2011-12-28 2018-02-20 Microsoft Technology Licensing, Llc Representative motion information for temporal motion prediction in video encoding and decoding
CN117336505A (zh) 2019-02-14 2024-01-02 北京字节跳动网络技术有限公司 解码器侧细化工具的尺寸选择性应用
FI3912357T3 (fi) * 2019-02-20 2023-12-19 Beijing Dajia Internet Information Tech Co Ltd Rajoitettu liikevektorin derivaatio pitkän aikavälin referenssikuville videokoodauksessa
EP3941061A4 (en) * 2019-03-15 2022-05-04 Lg Electronics Inc. BDOF-BASED INTERPREDITION METHOD AND DEVICE
EP3959886A4 (en) * 2019-04-25 2022-06-22 OP Solutions, LLC SIGNALING A GLOBAL MOTION VECTOR IN AN IMAGE HEAD
CN117615155A (zh) 2019-09-19 2024-02-27 北京字节跳动网络技术有限公司 视频编解码中的参考样点位置推导
EP4026336A4 (en) 2019-10-05 2022-12-07 Beijing Bytedance Network Technology Co., Ltd. LEVEL-BASED SIGNALING OF VIDEO CODING TOOLS
JP7391203B2 (ja) 2019-10-12 2023-12-04 北京字節跳動網絡技術有限公司 ビデオコーディングツールを洗練する使用およびシグナリング
MX2022004200A (es) * 2019-10-13 2022-05-02 Beijing Bytedance Network Tech Co Ltd Interaccion entre remuestreo de imagen de referencia y herramientas de codificacion de video.
US20220248047A1 (en) * 2021-01-29 2022-08-04 Qualcomm Incorporated Model-based motion vector difference derivation and template matching prediction for video coding
WO2023091775A1 (en) * 2021-11-22 2023-05-25 Beijing Dajia Internet Information Technology Co., Ltd. Decoder side motion information derivation
WO2023116778A1 (en) * 2021-12-22 2023-06-29 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing
WO2023136655A1 (ko) * 2022-01-13 2023-07-20 엘지전자 주식회사 영상 인코딩/디코딩 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체
WO2023182781A1 (ko) * 2022-03-21 2023-09-28 주식회사 윌러스표준기술연구소 템플릿 매칭에 기초한 비디오 신호 처리 방법 및 이를 위한 장치
US20240007615A1 (en) * 2022-07-04 2024-01-04 Alibaba (China) Co., Ltd. Deriving bi-prediction with coding unit-level weight indices for merge candidates
WO2024080747A1 (ko) * 2022-10-11 2024-04-18 한국전자통신연구원 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018121506A1 (en) * 2016-12-27 2018-07-05 Mediatek Inc. Method and apparatus of bilateral template mv refinement for video coding
US20180241998A1 (en) * 2017-02-21 2018-08-23 Qualcomm Incorporated Deriving motion vector information at a video decoder

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7627037B2 (en) 2004-02-27 2009-12-01 Microsoft Corporation Barbell lifting for multi-layer wavelet coding
KR101246915B1 (ko) * 2005-04-18 2013-03-25 삼성전자주식회사 동영상 부호화 또는 복호화 방법 및 장치
WO2007108661A1 (en) * 2006-03-22 2007-09-27 Electronics And Telecommunications Research Institute Method and apparatus for encoding and decoding the compensated illumination change
US8254455B2 (en) * 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
BRPI0818444A2 (pt) * 2007-10-12 2016-10-11 Qualcomm Inc codificação adaptativa de informação de cabeçalho de bloco de vídeo
WO2009091383A2 (en) * 2008-01-11 2009-07-23 Thomson Licensing Video and depth coding
US8208563B2 (en) * 2008-04-23 2012-06-26 Qualcomm Incorporated Boundary artifact correction within video units
US8339475B2 (en) * 2008-12-19 2012-12-25 Qualcomm Incorporated High dynamic range image combining
US20110176611A1 (en) * 2010-01-15 2011-07-21 Yu-Wen Huang Methods for decoder-side motion vector derivation
CN102215386B (zh) * 2010-04-09 2013-03-27 华为技术有限公司 视频图像块处理方法及装置
EP2642755B1 (en) 2012-03-20 2018-01-03 Dolby Laboratories Licensing Corporation Complexity scalable multilayer video coding
KR20150038249A (ko) 2012-09-28 2015-04-08 인텔 코포레이션 계층간 화소 샘플 예측
CN104584553A (zh) 2012-09-28 2015-04-29 英特尔公司 层间残差预测
US9294777B2 (en) 2012-12-30 2016-03-22 Qualcomm Incorporated Progressive refinement with temporal scalability support in video coding
US9521425B2 (en) 2013-03-19 2016-12-13 Qualcomm Incorporated Disparity vector derivation in 3D video coding for skip and direct modes
CA2896810C (en) * 2013-04-10 2017-12-19 Mediatek Inc. Method and apparatus for bi-prediction of illumination compensation
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
US9667996B2 (en) 2013-09-26 2017-05-30 Qualcomm Incorporated Sub-prediction unit (PU) based temporal motion vector prediction in HEVC and sub-PU design in 3D-HEVC
US9838712B2 (en) 2014-03-17 2017-12-05 Hfi Innovation Inc. Method of signaling for depth-based block partitioning
CN104301724B (zh) 2014-10-17 2017-12-01 华为技术有限公司 视频处理方法、编码设备和解码设备
US10200711B2 (en) * 2015-03-27 2019-02-05 Qualcomm Incorporated Motion vector derivation in video coding
US10356416B2 (en) * 2015-06-09 2019-07-16 Qualcomm Incorporated Systems and methods of determining illumination compensation status for video coding
US10887597B2 (en) * 2015-06-09 2021-01-05 Qualcomm Incorporated Systems and methods of determining illumination compensation parameters for video coding
WO2017036414A1 (en) * 2015-09-02 2017-03-09 Mediatek Inc. Method and apparatus of decoder side motion derivation for video coding
WO2017084512A1 (en) * 2015-11-20 2017-05-26 Mediatek Inc. Method and apparatus of motion vector prediction or merge candidate derivation for video coding
CN115118971A (zh) * 2016-05-13 2022-09-27 Vid拓展公司 用于视频编码的通用式多假设预测的系统及方法
US20170339405A1 (en) * 2016-05-20 2017-11-23 Arris Enterprises Llc System and method for intra coding
US11638027B2 (en) * 2016-08-08 2023-04-25 Hfi Innovation, Inc. Pattern-based motion vector derivation for video coding
US9832351B1 (en) 2016-09-09 2017-11-28 Cisco Technology, Inc. Reduced complexity video filtering using stepped overlapped transforms
WO2018048265A1 (ko) * 2016-09-11 2018-03-15 엘지전자 주식회사 향상된 옵티컬 플로우 움직임 백터를 이용하여 비디오 신호를 처리하는 방법 및 장치
KR102543752B1 (ko) * 2016-12-22 2023-06-14 주식회사 케이티 비디오 신호 처리 방법 및 장치
WO2018113658A1 (en) * 2016-12-22 2018-06-28 Mediatek Inc. Method and apparatus of motion refinement for video coding
US10750203B2 (en) * 2016-12-22 2020-08-18 Mediatek Inc. Method and apparatus of adaptive bi-prediction for video coding
US20180192071A1 (en) * 2017-01-05 2018-07-05 Mediatek Inc. Decoder-side motion vector restoration for video coding
US20180199057A1 (en) * 2017-01-12 2018-07-12 Mediatek Inc. Method and Apparatus of Candidate Skipping for Predictor Refinement in Video Coding
US10523964B2 (en) * 2017-03-13 2019-12-31 Qualcomm Incorporated Inter prediction refinement based on bi-directional optical flow (BIO)
US10701390B2 (en) * 2017-03-14 2020-06-30 Qualcomm Incorporated Affine motion information derivation
US10595035B2 (en) * 2017-03-22 2020-03-17 Qualcomm Incorporated Constraining motion vector information derived by decoder-side motion vector derivation
US10491917B2 (en) * 2017-03-22 2019-11-26 Qualcomm Incorporated Decoder-side motion vector derivation
CN117014632A (zh) * 2017-04-27 2023-11-07 松下电器(美国)知识产权公司 解码装置、编码装置以及非暂时性记录介质
US20180332298A1 (en) * 2017-05-10 2018-11-15 Futurewei Technologies, Inc. Bidirectional Prediction In Video Compression
US10904565B2 (en) * 2017-06-23 2021-01-26 Qualcomm Incorporated Memory-bandwidth-efficient design for bi-directional optical flow (BIO)
US10477237B2 (en) * 2017-06-28 2019-11-12 Futurewei Technologies, Inc. Decoder side motion vector refinement in video coding
US11750832B2 (en) * 2017-11-02 2023-09-05 Hfi Innovation Inc. Method and apparatus for video coding
WO2019131807A1 (en) 2017-12-29 2019-07-04 Sharp Kabushiki Kaisha Systems and methods for partitioning video blocks for video coding
US11265551B2 (en) * 2018-01-18 2022-03-01 Qualcomm Incorporated Decoder-side motion vector derivation
US20190306502A1 (en) 2018-04-02 2019-10-03 Qualcomm Incorporated System and method for improved adaptive loop filtering
US10779002B2 (en) 2018-04-17 2020-09-15 Qualcomm Incorporated Limitation of the MVP derivation based on decoder-side motion vector derivation
WO2019234673A1 (en) * 2018-06-07 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Chroma dmvr
US10958934B2 (en) * 2018-07-27 2021-03-23 Tencent America LLC History-based affine merge and motion vector prediction
WO2020084465A1 (en) 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Simplified coding of generalized bi-directional index
CN112956197A (zh) 2018-10-22 2021-06-11 北京字节跳动网络技术有限公司 基于编解码信息的解码器侧运动矢量推导的限制
CN112970259A (zh) 2018-11-05 2021-06-15 北京字节跳动网络技术有限公司 视频处理中具有细化的帧间预测
CN112913244A (zh) * 2018-11-05 2021-06-04 交互数字Vc控股公司 使用用于重叠块运动补偿的块扩展的视频编码或解码
US11146810B2 (en) * 2018-11-27 2021-10-12 Qualcomm Incorporated Decoder-side motion vector refinement
CN113273209A (zh) * 2018-12-17 2021-08-17 交互数字Vc控股公司 Mmvd和smvd与运动和预测模型的组合
WO2020132556A2 (en) * 2018-12-21 2020-06-25 Vid Scale, Inc. Methods, architectures, apparatuses and systems directed to improved linear model estimation for template based video coding
CN117336505A (zh) 2019-02-14 2024-01-02 北京字节跳动网络技术有限公司 解码器侧细化工具的尺寸选择性应用
CN113491124A (zh) * 2019-02-14 2021-10-08 Lg 电子株式会社 基于dmvr的帧间预测方法和设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018121506A1 (en) * 2016-12-27 2018-07-05 Mediatek Inc. Method and apparatus of bilateral template mv refinement for video coding
US20180241998A1 (en) * 2017-02-21 2018-08-23 Qualcomm Incorporated Deriving motion vector information at a video decoder

Also Published As

Publication number Publication date
JP2023076744A (ja) 2023-06-01
US11425417B2 (en) 2022-08-23
US11240531B2 (en) 2022-02-01
CN113424533A (zh) 2021-09-21
US20210377559A1 (en) 2021-12-02
CN113424525B (zh) 2023-11-10
KR20210121060A (ko) 2021-10-07
WO2020164575A1 (en) 2020-08-20
WO2020164580A1 (en) 2020-08-20
CN117336505A (zh) 2024-01-02
US20210274212A1 (en) 2021-09-02
US20210368181A1 (en) 2021-11-25
EP3909239A1 (en) 2021-11-17
JP2022519883A (ja) 2022-03-25
CN113424525A (zh) 2021-09-21
JP7263529B2 (ja) 2023-04-24
WO2020164582A1 (en) 2020-08-20
US11876932B2 (en) 2024-01-16
WO2020164577A1 (en) 2020-08-20
EP3909239A4 (en) 2022-04-20
EP4300953A2 (en) 2024-01-03
EP4300953A3 (en) 2024-03-06
CN111837395A (zh) 2020-10-27
US20220116650A1 (en) 2022-04-14
CN113424538A (zh) 2021-09-21
US20210274211A1 (en) 2021-09-02

Similar Documents

Publication Publication Date Title
KR102662449B1 (ko) 디코더 측 정제 툴들의 크기 선택 적용
US20210029366A1 (en) Using inter prediction with geometric partitioning for video processing
WO2020187198A1 (en) Prediction refinement based on optical flow
KR20220016839A (ko) 기하학적 분할 모드 코딩을 갖는 모션 후보 리스트
KR20220030995A (ko) 비디오 코딩에서 변환 블록 크기 제한
KR102627821B1 (ko) 이웃 블록 정보를 사용한 모션 후보 리스트 구성
WO2020140862A1 (en) Conditional application of inter prediction with geometric partitioning in video processing
JP2024023522A (ja) 映像符号化のための動き候補リストの構成
CN115280774A (zh) 在仿射模式下与运动向量差分merge
WO2020143742A1 (en) Simplified context modeling for context adaptive binary arithmetic coding
CN113994682A (zh) 具有默认参数的基于历史的运动矢量预测

Legal Events

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