KR102662024B1 - 상이한 모션 벡터 정제의 그레디언트 계산 - Google Patents

상이한 모션 벡터 정제의 그레디언트 계산 Download PDF

Info

Publication number
KR102662024B1
KR102662024B1 KR1020217031768A KR20217031768A KR102662024B1 KR 102662024 B1 KR102662024 B1 KR 102662024B1 KR 1020217031768 A KR1020217031768 A KR 1020217031768A KR 20217031768 A KR20217031768 A KR 20217031768A KR 102662024 B1 KR102662024 B1 KR 102662024B1
Authority
KR
South Korea
Prior art keywords
block
prediction
video
optical flow
gradient
Prior art date
Application number
KR1020217031768A
Other languages
English (en)
Other versions
KR20210152470A (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 KR20210152470A publication Critical patent/KR20210152470A/ko
Application granted granted Critical
Publication of KR102662024B1 publication Critical patent/KR102662024B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/563Motion estimation with padding, i.e. with filling of non-object values in an arbitrarily shaped picture block or region for estimation purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/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/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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/527Global motion vector estimation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

비디오 처리 방법은, 비디오의 현재 비디오 블록에 대해, 정밀도 규칙(precision rule)에 따른 초기 예측 샘플의 그레디언트에 기초한 광학 흐름 계산을 사용하여 현재 비디오 블록에 대한 하나 이상의 초기 예측을 정제하여 현재 비디오 블록에 대한 최종 예측 블록을 결정하는 단계; 및 현재 비디오 블록과 최종 예측 블록을 사용하여 코딩 된 표현 사이의 변환을 수행하는 단계를 포함하고, 광학 흐름 계산은 광학 흐름(PROF) 절차 또는 양방향 광학 흐름(BDOF) 절차를 통한 예측 정제를 포함하고, 정밀도 규칙은 PROF 절차 및 BDOF 절차 모두에 대한 그레디언트를 나타내는 데 동일한 정밀도를 사용하도록 지정하는 방법이 제공된다.

Description

상이한 모션 벡터 정제의 그레디언트 계산
이 특허 문서는 비디오 처리 기술, 장치 및 시스템과 관련이 있다.
이 출원은 2019년 4월 19일에 출원된 국제 특허출원 번호 PCT/CN2019/083434, 및 2019년 6월 25일에 출원된 국제 특허 출원 번호 PCT/CN2019/092762의 우선권 및 혜택을 적시에 주장하는 2020년 4월 20일에 출원된, PCT/CN2020/085662의 국내 단계이다. 상기 출원의 전체 공개는 이 출원의 공개의 일환으로 참조하여 통합된다.
비디오 압축의 발전에도 불구하고 디지털 비디오는 여전히 인터넷 및 기타 디지털 통신 네트워크에서 가장 큰 대역폭 사용을 차지한다. 비디오를 수신하고 표시할 수 있는 연결된 사용자 장치의 수가 증가함에 따라 디지털 비디오 사용에 대한 대역폭 수요가 계속 증가할 것으로 예상된다.
디지털 비디오 처리와 관련된 장치, 시스템 및 방법. 상기 기술된 방법은 기존 비디오 코딩 표준(예를 들어, 고효율 비디오 코딩(예를 들어) 및 미래의 비디오 코딩 표준 또는 비디오 코덱 모두에 적용될 수 있다.
하나의 대표적인 측면에서, 개시된 기술은 비디오 처리(video processing) 방법을 제공하는 데 사용될 수 있다. 이 방법은 현재 비디오 블록(current video block)의 서브 블록 레벨(sub-block level)에서 수행되는 아핀(affine) 모드 모션 보상(motion compensation)을 사용하여 비디오의 현재 비디오 블록에 대한 예측 블록(prediction block)을 생성하는 단계; 광학 흐름 (Prediction Refinement with Optical Flow)(PROF) 절차를 통해 예측 정제(prediction refinement)를 사용하여 예측 블록을 정제하기 위해 현재 비디오 블록의 영역에 대한 그레디언트 계산(gradient calculation)을 수행하는 단계 - 영역의 크기(MХN)는 현재 비디오 블록의 서브 블록의 크기와 상이하고, 여기서 M 및 N은 양의 정수임 -; 및 그레디언트 계산에 기초하여, 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은, 제1 크기를 갖는 비디오의 현재 비디오 블록에 대해, 규칙(rule)에 따라 제2 크기를 갖는 비디오 영역(video region)에 대해 수행된 그레디언트 계산을 사용하여 하나 이상의 중간 예측 블록(intermediate prediction block)을 정제하여 컴퓨팅 되는 최종 예측 블록(final prediction block)을 유도하는 단계 - 정제는 광학 흐름 절차를 사용함 -; 및 최종 예측 블록을 사용하여 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은, 비디오의 현재 비디오 블록에 대해, 양방향 광학 흐름 (bidirectional optical flow)(BDOF) 또는 광학 흐름을 통한 예측 정제(Prediction Refinement with Optical Flow)(PROF)를 사용하여 모션 정보(motion information)를 유도하는 단계: 영역 내의 적어도 하나의 샘플이 그레디언트 계산에서 생략되도록 현재 비디오 블록의 영역 내의 샘플들에 대해 그레디언트 계산을 수행하는 단계; 및 그레디언트 계산에 기초하여, 현재 비디오 블록과 현재 비디오 블록을 포함하는 비디오의 코딩 된 표현 사이의 변환을 수행하는 단계를 포함하고, 현재 비디오 블록에 대한 하나 이상의 초기 예측이 서브 블록 레벨에서 계산되고 PROF 동안 광학 흐름 계산을 사용하여 정제되거나 또는 하나 이상의 초기 예측이 BDOF 동안 공간적 및 시간적 그레디언트를 사용하여 정제된다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은, 비디오의 현재 비디오 블록에 대해, 정밀도 규칙(precision rule)에 따른 초기 예측 샘플의 그레디언트에 기초한 광학 흐름 계산을 사용하여 현재 비디오 블록에 대한 하나 이상의 초기 예측을 정제하여 현재 비디오 블록에 대한 최종 예측 블록을 결정하는 단계; 및 현재 비디오 블록과 최종 예측 블록을 사용하여 코딩 된 표현 사이의 변환을 수행하는 단계를 포함하고, 광학 흐름 계산은 광학 흐름(PROF) 절차 또는 양방향 광학 흐름(BDOF) 절차를 통한 예측 정제를 포함하고, 정밀도 규칙은 PROF 절차 및 BDOF 절차 모두에 대한 그레디언트를 나타내는 데 동일한 정밀도를 사용하도록 지정한다.
또 다른 대표적인 측면에서, 개시된 기술은 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은, 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 광학 흐름 계산을 사용하여 현재 비디오 블록에 대한 하나 이상의 초기 예측을 정제함으로써 현재 비디오 블록에 대한 최종 예측 블록을 결정하는 단계; 및 최종 예측 블록을 사용하여 변환을 수행하는 단계를 포함하고, 광학 흐름 계산은 광학 흐름(PROF) 절차 및/또는 양방향 광학 흐름(BDOF) 절차를 통한 예측 정제를 포함하고, 광학 흐름 계산은 패딩 샘플(padding sample)을 유도하기 위한 규칙에 따라 PROF 절차 또는 BDOF 절차 중 적어도 하나에 적용 가능한 패딩 작업(padding operation)을 더 포함한다.
또 다른 대표적인 측면에서, 전술한 방법은 프로세서 실행 코드 형태로 구현되고 컴퓨터 판독 가능한 프로그램 매체에 저장된다.
또 다른 대표적인 측면에서, 전술한 방법을 수행하도록 구성되거나 작업 가능한 장치가 개시된다. 장치는 이 방법을 구현하도록 프로그래밍된 프로세서를 포함할 수 있다.
또 다른 대표적인 측면에서, 비디오 디코더 장치는 본 명세서에서 기재된 바와 같은 방법을 구현할 수 있다.
상기 및 개시된 기술의 다른 측면 및 특징은 도면, 설명 및 클레임에서 더 자세히 설명된다.
도 1은 병합 후보 목록을 구성하는 예를 나타낸다.
도 2는 공간적 후보의 위치의 예를 나타낸다.
도 3은 공간적 병합 후보의 중복성 검사를 받는 후보 쌍의 예를 나타낸다.
도 4a 및 도 4b는 현재 블록의 크기 및 형태에 따른 제2 예측 유닛(PU)의 위치의 예를 나타낸다.
도 5는 시간적 병합 후보에 대한 모션 벡터 스케일링의 예를 나타낸다.
도 6은 시간적 병합 후보에 대한 후보 위치의 예를 나타낸다.
도 7은 결합된 이중 예측 병합 후보를 생성하는 예를 나타낸다.
도 8은 모션 벡터 예측 후보를 구성하는 예를 나타낸다.
도 9는 공간적 모션 벡터 후보에 대한 모션 벡터 스케일링의 예를 나타낸다.
도 10은 코딩 유닛(CU)에 대한 대체 시간적 모션 벡터 예측(ATMVP) 알고리즘을 사용한 모션 예측의 예를 나타낸다.
도 11은 공간-시간적 모션 벡터 예측(Spatial-Temporal Motion Vector Prediction)(STMVP) 알고리즘에 의해 사용되는 서브 블록 및 이웃 블록을 갖는 코딩 유닛(CU)의 예를 나타낸다.
도 12a 및 12b는 중첩 블록 모션 보상(OBMC) 알고리즘을 사용할 때 서브 블록의 예시적인 스냅샷을 나타낸다.
도 13은 국부 조명 보상(LIC) 알고리즘에 대한 파라미터를 유도하기 위해 사용되는 이웃 샘플의 예를 나타낸다.
도 14는 단순화된 아핀 모션 모델의 예를 나타낸다.
도 15는 서브 블록당 MVF(Affine Motion Vector Field)의 예를 나타낸다.
도 16은 AF_INTER 아핀 모션 모드에 대한 MVP(Motion Vector Prediction)의 예를 나타낸다.
도 17a 및 17b는 AF_MERGE 아핀 모션 모드에 대한 예시적인 후보를 나타낸다.
도 18은 FRUC(Frame-Rate Up Conversion) 알고리즘에 기반한 특수 병합 모드인 PMMVD(Pattern Matched Motion Vector derivation) 모드에서 양방향 매칭의 예를 나타낸다.
도 19는 FRUC 알고리즘에서 템플릿 매칭의 예를 나타낸다.
도 20은 FRUC 알고리즘에서 일방적인 모션 추정의 예를 나타낸다.
도 21은 양방향 광학 흐름(BIO) 알고리즘에 의해 사용되는 광학 흐름 궤적의 예를 나타낸다.
도 22a 및 22b는 블록 확장 없이 양방향 광학 흐름(BIO) 알고리즘을 사용하는 예시적인 스냅샷을 보여준다.
도 23은 BIO에서 사용되는 보간 샘플의 예를 나타낸다.
도 24는 이중층 템플릿 매칭에 기초하는 디코더측 모션 벡터 정제)(Decoder-Side Motion Vector Refinement)(DMVR) 알고리즘의 일 예를 나타낸다.
도 25는 서브 블록 MV VSB 및 픽셀 (i,j)의 예를 나타낸다.
도 26은 위상 변동 수평 필터링의 예를 나타낸다.
도 27은 8-탭 수평 필터링의 하나의 인스턴스를 적용한 예를 나타낸다.
도 28은 비균일 위상 수직 필터링의 예를 나타낸다.
도 29a 내지 29e는 비디오 처리를 위한 예시적인 방법의 흐름도를 나타낸다.
도 30a 및 30b는 본 문서에서 설명하는 비주얼 미디어 디코딩 또는 비주얼 미디어 인코딩 기술을 구현하기 위한 하드웨어 플랫폼의 예들의 블록도이다.
도 31은 16Х16 영역에서 16개의 4Х4 서브 블록의 예를 나타낸다.
고해상도 비디오의 수요가 증가함에 따라 비디오 처리 방법과 기술은 현대 기술에서 유비쿼터스이다. 비디오 코덱에는 일반적으로 디지털 비디오를 압축하거나 압축 해제하는 전자 회로 또는 소프트웨어가 포함되며 코딩 효율성을 높이기 위해 지속적으로 개선되고 있다. 비디오 코덱은 압축되지 않은 비디오를 압축 형식으로 변환하거나 그 반대의 경우도 마찬가지이다. 비디오 품질, 비디오(비트 전송률에 의해 결정됨), 인코딩 및 디코딩 알고리즘의 복잡성, 데이터 손실 및 오류에 대한 민감도, 편집 용이성, 무작위 액세스 및 종단 간 지연(대기 시간)사이에는 복잡한 관계가 있다. 압축 형식은 일반적으로 표준 비디오 압축 사양(예를 들어, HEVC) 표준(H.265 또는 MPEG-H 파트 2라고도 함), 최종 확정될 다목적 비디오 코딩 표준 또는 기타 현재 및/또는 미래의 비디오 코딩 표준을 준수한다.
개시된 기술의 실시예는 압축 성능을 향상시키기 위해 기존 비디오 코딩 표준(예를 들어, HEVC, H.265)과 미래 표준에 적용될 수 있다. 섹션 제목은 설명의 가독성을 향상시키기 위해 본 문서에서 사용되며, 토론 또는 실시예(및/또는 구현)를 각 섹션으로만 제한하지 않는다.
1. HEVC/H.265의 인터 예측의 예
비디오 코딩 표준은 수년에 걸쳐 크게 개선되었으며, 현재는 높은 코딩 효율성과 더 높은 해상도에 대한 지원을 제공한다. HEVC 및 H.265와 같은 최근 표준은 시간 예측 과 변환 코딩이 사용되는 하이브리드 비디오 코딩 구조에 기초하여 한다.
1.1 예측 모드의 예
각 인터 예측된 PU(예측 유닛)에는 하나 또는 두 개의 레퍼런스 픽처 목록에 대한 모션 파라미터가 있다. 일부 실시예에서, 모션 파라미터는 모션 벡터 및 레퍼런스 픽처 인덱스를 포함한다. 다른 실시예에서, 두 레퍼런스 픽처 목록 중 하나의 사용은 또한 inter_pred_idc사용하여 시그널링 될 수 있다. 그러나 다른 실시예에서 모션 벡터는 예측 변수에 비해 델타로 명시적으로 코딩 될 수 있다.
CU가 스킵 모드로 코딩 되면 하나의 PU가 CU와 연결되어 있으며 상당한 잔류 계수가 없으며 코딩 된 모션 벡터 델타 또는 레퍼런스 픽처 인덱스가 없다. 병합 모드는 현재 PU에 대한 모션 파라미터가 공간 및 시간적 후보를 포함하여 이웃 PU에서 얻어지는 경우 지정된다. 병합 모드는 스킵 모드뿐만 아니라 인터 예측된 PU에 적용할 수 있다. 병합 모드의 대안은 모션 파라미터의 명시적 전송이며, 각 레퍼런스 픽처 목록에 대한 모션 벡터, 대응하는 레퍼런스 픽처 인덱스 및 레퍼런스 픽처 목록 사용량은 각 PU당 명시적으로 시그널링 된다.
시그널링이 두 레퍼런스 픽처 목록 중 하나를 사용했음을 나타내면 PU는 한 블록의 샘플에서 생성된다. 이를 '단일 예측(uni-prediction)'이라고 한다. 담일 예측은 P 슬라이스와 B 슬라이스 모두에 사용할 수 있다.
시그널링이 두 레퍼런스 픽처 목록을 모두 사용했음을 나타내면 PU는 두 블록의 샘플에서 생성된다. 이를 '이중 예측(bi-prediction)'이라고 한다. 이중 예측은 B-슬라이스에만 사용할 수 있다.
1.1.1 병합 모드에 대한 후보를 구성하는 실시예
병합 모드를 사용하여 PU를 예측하면 병합 후보 목록의 항목을 가리키는 인덱스가 비트스트림에서 신택스 분석되어 모션 정보를 검색하는 데 사용된다. 이 목록의 구성은 다음 단계 순서에 따라 요약할 수 있다.
1단계: 초기 후보 유도
1.1 단계: 공간적 후보 유도
1.2 단계: 공간적 후보에 대한 중복 검사
1.3단계: 시간적 후보 유도
2단계: 추가 후보 삽입
2.1 단계: 이중 예측 후보 생성
2.2단계: 제로 모션 후보 삽입
도 1은 위에 요약된 단계의 순서에 기초하여 병합 후보 목록을 구성하는 예를 나타낸다. 공간적 병합 후보 유도의 경우 5개의 서로 다른 위치에 있는 후보 중 최대 4명의 병합 후보가 선택된다. 시간적 병합 후보 유도의 경우 두 후보 중 최대 1개의 병합 후보가 선택된다. 각 PU의 일정 수의 후보가 디코더에서 가정되므로, 후보 수가 슬라이스 헤더로 시그널링 되는 최대 병합 후보 수(MaxNumMergeCand)에 도달하지 못하면 추가 후보가 생성된다. 후보 수가 일정하기 때문에 가장 적합한 병합 후보의 인덱스는 잘린 단항 이진화(truncated unary binarization)(TU)를 사용하여 인코딩 된다. CU의 크기가 8과 같으면 현재 CU의 모든 CU가 단일 병합 후보 목록을 공유하며, 이는 2NХ2N 예측 유닛의 병합 후보 목록과 동일하다.
1.1.2 공간적 병합 후보 생성
공간적 병합 후보의 유도에서, 최대 4 개의 병합 후보가 도 2에 묘사 된 위치에있는 후보 중 선택된다. 유도 순서는 A1, B1, B0, A0 및 B2이다. 위치 B2는 위치 A1, B1, B0, A0의 PU를 사용할 수 없는 경우(예를 들어, 다른 슬라이스 또는 타일에 속하기 때문에) 또는 인트라 코딩 된 경우에만 고려된다. A1위치에서 후보 추가후, 나머지 후보의 추가는 중복 검사의 대상이 되므로 동일한 작업 정보를 가진 후보는 목록에서 제외되어 코딩 효율이 향상된다.
계산 복잡성을 줄이기 위해 언급된 중복성 검사(redundancy check)에서 가능한 모든 후보 쌍을 고려하는 것은 아니다. 대신 도 3에서 화살표와 연결된 쌍만 고려되고 중복 검사에 사용되는 대응하는 후보가 동일한 모션 정보가 없는 경우에만 후보가 목록에 추가된다. 중복 모션 정보(duplicate motion information)의 또 다른 소스는 2Nx2N과 다른 파티션과 연관된"제2 PU"이다. 예를 들어, 도 4a 및 4b는 각각 NХ2N 및 2NХN의 경우의 wp2 PU를 묘사한다. 현재 PU가 NХ2N으로 분할되면 위치 A1의 후보는 후보 목록 구성에 대해 고려되지 않는다. 일부 실시예에서, 이 후보를 추가하면 코딩 유닛에 하나의 PU만 있는 것과 중복되는 동일한 작업 정보를 갖는 두 개의 예측 유닛으로 이어질 수 있다. 마찬가지로 위치 B1은 현재 PU가 2NХN으로 분할될 때 고려되지 않는다.
1.1.3 시간적 병합 후보 구성
이 단계에서는 하나의 후보만 목록에 추가된다. 특히, 이러한 시간적 병합 후보의 유도에서, 스케일링 된 모션 벡터는 주어진 레퍼런스 픽처 목록 내에서 현재의 픽처와 가장 작은 POC 차이를 가진 픽처에 속하는 공동 위치 PU에 기초하여 유도된다. 공동 위치 PU의 유도에 사용되는 레퍼런스 픽처 목록은 슬라이스 헤더에 명시적으로 시그널링 된다.
도 5는 POC 거리, tb 및 td를 사용하여 공동 위치 PU의 모션 벡터로부터 스케일링 되는 시간적 병합 후보(점선)에 대한 스케일링된 모션 벡터의 유도의 예를 보여, tb가 현재 픽처의 레퍼런스 픽처와 현재 픽처 및 td 사이의 POC 차이로 정의되는 경우 공동 위치 픽처와 공동 위치 픽처의 레퍼런스 픽처 간의 POC 차이로 정의된다. 시간적 병합 후보의 레퍼런스 픽처 인덱스는 0과 동일하게 설정된다. B-슬라이스의 경우, 두 개의 모션 벡터의 경우, 하나는 레퍼런스 픽처 목록 0이고 다른 하나는 레퍼런스 픽처 목록 1이며, 이중 예측 병합 후보(bi-predictive merge candidate)를 만들기 위해 얻어지고 결합된다.
레퍼런스 프레임에 속하는 공동 위치 PU(Y)에서, 도 6에 묘사된 바와 같이, 시간적 후보의 위치는 후보 C0과 C1, 사이에서 선택된다. 위치 C0에서 PU를 사용할 수 없거나 인트라 코딩 또는 현재 CTU 외부에 있는 경우 위치 C1이 사용된다. 그렇지 않으면, 위치 C0은 시간적 병합 후보의 유도에 사용된다.
1.1.4 추가 유형의 병합 후보 구성
공간-시간적 병합 후보 외에도 합병 후보의 두 가지 추가 유형이 있다: 결합된 이중 예측 병합 후보와 제로 병합 후보. 결합된 이중 예측 병합 후보는 공간-시간적 병합 후보를 활용하여 생성된다. 결합된 이중 예측 병합 후보는 B-슬라이스에만 사용된다. 결합된 이중 예측 후보는 초기 후보의 제1 레퍼런스 픽처 목록 모션 파라미터와 다른 후보의 두 번째 레퍼런스 픽처 목록 모션 파라미터를 결합하여 생성된다. 이 두 쌍(tuples)이 서로 다른 모션 가설을 제공하는 경우, 그들은 새로운 이중 예측 후보(bi-predictive candidate)를 형성한다.
도 7은 mvL0 및 refIdxL0 또는 mvL1 및 refIdxL1을 갖는 원본 목록(710, 왼쪽)의 두 후보가 최종 목록(720, 오른쪽)에 추가된 복합 이중 예측 병합 후보를 만드는 데 사용되는 이 프로세스의 예를 나타낸다.
제로 모션 후보가 병합 후보 목록의 나머지 항목을 채우기 위해 삽입되므로 MaxNumMergeCand 용량에 도달한다. 이러한 후보는 0에서 시작하여 새 제로 모션 후보가 목록에 추가될 때마다 증가하는 공간 변위가 전혀 없다. 이러한 후보가 사용하는 레퍼런스 프레임 수는 각각 단일 및 이중 예측에 대해 하나 및 둘이다. 일부 실시예에서는 이러한 후보에 대해 중복 검사가 수행되지 않는다.
1.1.5 병렬 처리를 위한 모션 추정 영역의 예
인코딩 프로세스의 속도를 높이기 위해, 모션 추정은 병렬로 수행될 수 있으며, 이에 따라 주어진 영역 내부의 모든 예측 유닛에 대한 모션 벡터가 동시에 유도된다. 공간 적 동네에서 병합 후보의 유도는 하나의 예측 유닛이 관련 모션 추정이 완료될 때까지 인접한 PU에서 모션 파라미터를 유도할 수 없기 때문에 병렬 처리를 방해할 수 있다. 코딩 효율과 처리 대기 시간 간의 절충을 완화하기 위해 MER(모션 추정 영역)가 정의될 수 있다. MER의 크기는 "log2_parallel_merge_level_minus2" 신택스 요소를 사용하여 픽처 파라미터 세트(PPS)에서 시그널링 될 수 있다. MER가 정의되면 동일한 영역에 속하는 병합 후보를 사용할 수 없는 것으로 표시되므로 목록 구성에서는 고려되지 않는다.
1.2 고급 모션 벡터 예측의 실시예(AMVP)
AMVP는 모션 파라미터의 명시적 전송에 사용되는 이웃 PU와 모션 벡터의 공간-시간적 상관 관계를 악용한다. 먼저 왼쪽의 가용성을 먼저 확인하고, 시간적으로 이웃 PU 위치 위에, 중복 후보를 제거하고 0 벡터를 추가하여 후보 목록을 일정한 길이로 만들어 모션 벡터 후보 목록을 구성한다. 그런 다음 인코더는 후보 목록에서 최상의 예측 변수를 선택하고 선택한 후보를 나타내는 대응하는 인덱스를 전송할 수 있다. 병합 인덱스 시그널링과 마찬가지로 최상의 모션 벡터 후보의 인덱스는 잘린 단항을 사용하여 인코딩 된다. 이 경우 인코딩할 최대 값은 2이다(픽처.8 참조). 다음 섹션에서는 모션 벡터 예측 후보의 유도 프로세스에 대한 세부 정보가 제공된다.
1.2.1 모션 벡터 예측 후보 구성의 예
도 8은 모션 벡터 예측 후보에 대한 유도 프로세스를 요약하고, 입력으로 refidx를 가진 각 레퍼런스 픽처 목록에 대해 구현될 수 있다.
모션 벡터 예측에서 공간 모션 벡터 후보 및 시간적 모션 벡터 후보라는 두 가지 유형의 모션 벡터 후보가 고려된다. 공간 모션 벡터 후보 유도의 경우, 두 개의 모션 벡터 후보는 결국 도 2에 도시된 바와 같이 다섯 개의 서로 다른 위치에 있는 각 PU의 모션 벡터에 기초하여 유도된다.
시간적 모션 벡터 후보 유도의 경우, 두 개의 서로 다른 공동 위치 위치에 따라 유도되는 두 후보로부터 하나의 모션 벡터 후보가 선택된다. 공간-시간적 후보의 제1 목록이 만들어진 후 목록에서 중복된 모션 벡터 후보가 제거된다. 잠재 후보 수가 두 개보다 큰 경우 관련 레퍼런스 픽처 목록 내의 레퍼런스 픽처 인덱스가 1보다 큰 모션 벡터 후보가 목록에서 제거된다. 공간-시간적 모션 벡터 후보 수가 2개 보다 작으면 추가 제로 모션 벡터 후보가 목록에 추가된다.
1.2.2 공간 모션 벡터 후보 구성
공간 모션 벡터 후보의 유도에서, 최대 두 명의 후보는 5명의 잠재적 후보 중에서 고려되며, 이는 이전에 도2에 나타난 바와 같은 위치에 있는 PU에서 유도되며, 이러한 위치는 모션 병합의 위치와 동일하다. 현재 PU의 왼쪽에 대한 유도 순서는 A0, A1 및 스케일링 된 A0, 스케일링 된 A1로 정의된다. 현재 PU의 위쪽 측면에 대한 유도 순서는 B0, B1, B2, 스케일링된 B0, 스케일링 된 B1, 스케일링 된 B2로 정의된다. 따라서 각 측면에 대해 모션 벡터 후보로 사용할 수 있는 4개의 케이스가 있으며, 공간 스케일링을 사용할 필요가 없는 두 가지 경우와 공간 스케일링이 사용되는 두 가지 경우가 있다. 네 가지 다른 사례는 다음과 같이 요약된다:
-- 공간 스케일링 없음
(1) 동일한 레퍼런스 픽처 목록 및 동일한 레퍼런스 픽처 인덱스(동일한 POC)
(2) 다른 레퍼런스 픽처 목록이지만, 동일한 레퍼런스 픽처 (동일한 POC)
-- 공간 스케일링
(3) 동일한 레퍼런스 픽처 목록이지만 다른 레퍼런스 픽처(다른 POC)
(4) 상이한 레퍼런스 픽처 목록 및 상이한 레퍼런스 픽처(다른 POC)
공간 스케일링 없는 사례는 다음에 공간 스케일링을 허용하는 경우를 먼저 검사한다. 공간 스케일링은 POC가 레퍼런스 픽처 목록에 관계없이 이웃 PU의 레퍼런스 픽처와 현재 PU의 레퍼런스 픽처 간에 다른 경우 고려된다. 왼쪽 후보의 모든 PU를 사용할 수 없거나 인트라 코딩 된 경우, 위의 모션 벡터에 대한 스케일링이 MV 후보 이상의 병렬 유도를 도울 수 있다. 그렇지 않으면 위의 모션 벡터에 대해 공간 스케일링이 허용되지 않는다.
도 9의 예에서 와 같이 공간 스케일링 케이스의 경우, 이웃 PU의 모션 벡터는 시간적 스케일링과 유사한 방식으로 스케일링 한다. 한 가지 차이점은 현재 PU의 레퍼런스 픽처 목록과 인덱스가 입력으로 주어진다는 것이다: 실제 스케일링 프로세스는 시간 적 스케일링의 프로세스와 동일하다.
1.2.3 시간적 모션 벡터 후보 구성
레퍼런스 픽처 인덱스 유도 외에도, 시간적 병합 후보의 유도를 위한 모든 프로세스는 공간 모션 벡터 후보의 유도와 동일하다(도 6의 예와 같이). 일부 실시예에서, 레퍼런스 픽처 인덱스는 디코더에 시그널링 된다.
2. 공동 연구 모델(JEM)의 인터 예측 방법의 예
일부 실시예에서는 공동 연구 모델(JEM)으로 알려진 참조 소프트웨어를 사용하여 향후 비디오 코딩 기술을 탐구한다. JEM에서, 서브 블록 기반 예측은 아핀 예측(affine prediction), 대체 시간적 모션 벡터 예측(alternative temporal motion vector prediction)(ATMVP), 공간-시간적 모션 벡터 예측(spatial-temporal motion vector prediction)(STMVP), 양방향 광학 흐름(bi-directional optical flow)(BIO), 프레임 속도 업 변환(Frame-Rate Up Conversion)(FRUC), 로컬 적응형 모션 벡터 해상도(Locally Adaptive Motion Vector Resolution)(LAMVR), 오버랩 블록 모션 보상(Overlapped Block Motion Compensation)(OBMC), 로컬 조명 모션 보상(Local Illumination Compensation) 및 디코더측 모션 벡터 정제(Decoder-side Motion Vector Refinement (DMVR))(DMVR)과 같은 여러 코딩 툴에서 채택된다.
2.1 서브 CU 기반 모션 벡터 예측의 예
쿼드 트리와 이진 트리(QTBT)가 있는 JEM에서, 각 CU는 각 예측 방향에 대해 대부분의 모션 파라미터 세트를 가질 수 있다. 일부 실시예에서, 2개의 서브 CU 레벨 모션 벡터 예측 방법은 큰 CU를 서브 CU로 분할하고 큰 CU의 모든 서브 CU에 대한 모션 정보를 유도함으로써 인코더에서 고려된다. 대체 시간 모션 벡터 예측(ATMVP) 방법은 각 CU가 배치된 레퍼런스 픽처의 현재 CU보다 작은 여러 블록에서 모션 정보의 여러 세트를 가져올 수 있도록 한다. 공간-시간적 모션 벡터 예측(STMVP) 방법에서 서브 CU의 작업 벡터는 시간적 모션 벡터 예측기(temporal motion vector predictor) 및 공간 이웃 모션 벡터(spatial neighbouring motion vector)를 사용하여 재귀적으로 유도된다. 일부 실시예에서, 서브 CU 모션 예측을 위한 보다 정확한 모션 필드를 보존하기 위해, 레퍼런스 프레임에 대한 모션 압축이 비활성화될 수 있다.
2.1.1 대체 시간적 모션 벡터 예측(ATMVP)의 예
ATMVP 방법에서, 시간적 모션 벡터 예측(TMVP) 방법은 현재 CU 보다 작은 블록으로부터 여러 모션 정보(모션 벡터 및 레퍼런스 인덱스 포함)를 가져와서 수정된다.
도 10 현재 CU(1000)에 대한 ATMVP 모션 예측 프로세스의 예를 나타낸다. ATMVP 방법은 CU(1000) 내의 서브 CU(1001)의 모션 벡터를 두 단계로 예측한다. 첫 번째 단계는 시간적 벡터를 사용하여 레퍼런스 픽처(reference picture)(1050)에서 대응하는 블록(1051)을 식별하는 것이다. 레퍼런스 픽처(1050)은 모션 소스 픽업이라고도 한다. 두 번째 단계는 현재 CU(1000)를 서브 CU(1001)로 분할하고 각 서브 CU에 대응하는 블록으로부터 각 서브 CU의 레퍼런스 인덱스뿐만 아니라 모션 벡터를 획득하는 것이다.
첫 번째 단계에서, 레퍼런스 픽처(1050) 및 대응하는 블록은 현재 CU(1000)의 공간 이웃 블록의 작업 정보에 의해 결정된다. 이웃 블록의 반복적인 스캐닝 프로세스를 피하기 위해 현재 CU(1000)의 병합 후보 목록에서 제1 병합 후보가 사용된다. 제1 사용 가능한 모션 벡터와 관련 레퍼런스 인덱스는 시간 벡터 및 모션 소스 픽처에 대한 인덱스로 설정된다. 이러한 방식으로, 대응하는 블록은 TMVP와 비교하여 보다 정확하게 식별될 수 있으며, 여기서 대응하는 블록(배치 블록(collocated block)이라고도 함)은 항상 현재 CU에 비해 오른쪽 아래 또는 중앙 위치에 있다.
제2 단계에서, 서브 CU(1051)의 대응하는 블록은 현재 CU의 좌표에 시간적 벡터를 추가하여, 모션 소스 픽처(motion source picture)(1050)의 시간적 벡터에 의해 식별된다. 각 서브 CU에 대해, 대응하는 블록의 모션 정보(예를 들어, 중앙 샘플을 커버하는 가장 작은 모션 그리드)는 서브 CU에 대한 모션 정보를 유도하는 데 사용된다. 대응하는 NХN 블록의 모션 정보가 식별된 후, 현재 서브 CU의 모션 벡터 및 레퍼런스 인덱스로 변환되며, HEVC의 TMVP와 동일한 방식으로 모션 스케일링 및 기타 절차가 적용된다. 예를 들어, 디코더는 각 서브 CU에 대해 예측 모션 벡터 MVy(예를 들어, X가 0 또는 1과 동일하고 Y가 1-X와 동일한)를 예측하기 위해, 저지연 조건(예를 들어 현재 픽처의 모든 레퍼런스 픽처의 POC이 현재 픽처의 POC보다 작음)이 충족되는지 및 모션 벡터 MVx(예를 들어, 레퍼런스 픽처 목록 X에 대응하는 모션 벡터)를 사용할 수 있는지를 확인한다.
2.1.2 공간-시간적 모션 벡터 예측의 예(STMVP)
STMVP 방법에서, 서브 CU의 모션 벡터는 래스터 스캔 순서에 따라 재귀적으로 유도된다. 도 11은 4개의 서브 블록과 이웃 블록을 가진 하나의 CU의 예를 나타낸다. 4개의 4Х4 서브 CU A(1101), B(1102), C(1103), D(1104)를 포함하는 8Х8 CU (1100)을 고려하라. 현재 프레임의 이웃 4Х4 블록은 (1111), b (1112), c (1113) 및 d (1114)로 레이블 된다.
서브 CU A에 대한 모션 유도는 두 개의 공간 이웃을 식별하여 시작한다. 제1 이웃은 서브 CU A (1101)(블록 c(1113)) 위의 NХN 블록이다. 이 블록 c(1113)를 사용할 수 없거나 서브 CU A(1101) 위의 다른 NХN 블록에 인트라 코딩 된 경우(블록 c(1113)에서 시작하여 왼쪽에서 오른쪽으로), 서브 CU A(1101) 위의 다른 NxN 블록이 검사된다 (블록 c(1113)에서 시작하여 왼쪽에서 오른쪽으로). 두 번째 이웃은 서브 CU A 1101(블록 b 1112)의 왼쪽 블록이다. 블록 b(1112)를 사용할 수 없거나 인트라 코딩 된 경우, 서브 CU A(1101)의 왼쪽에 있는 다른 블록이 검사된다(블록 b(1112)를 바라보면서 위에서 아래로). 각 목록의 이웃 블록에서 얻은 모션 정보는 지정된 목록의 제1 레퍼런스 프레임으로 스케일링 된다. 다음으로, 서브 블록 A (1101)의 시간적 모션 벡터 예측기(TMVP)는 HEVC에 명시된 것과 동일한 TMVP 유도 절차를 따라 유도된다. 블록 D (1104)에서 콜위치 블록의 작업 정보를 가져와서 그에 따라 스케일링 된다. 마지막으로 모션 정보를 검색하고 확장한 후, 사용 가능한 모든 모션 벡터는 각 레퍼런스 목록에 대해 개별적으로 평균화된다. 평균 모션 벡터는 현재 서브 CU의 모션 벡터로 할당된다.
2.1.3 서브 CU 모션 예측 모드 시그널링의 예
일부 실시예에서 서브 CU 모드는 추가 병합 후보로 활성화되며 모드 신호를 유도하는 데 필요한 추가 신택스 요소가 없다. ATMVP 모드및 STMVP 모드를 나타내기 위해 각 CU의 후보 목록을 병합하기 위해 두 개의 추가 병합 후보가 추가된다. 다른 실시예에서, 서열 파라미터 세트가 ATMVP 및 STMVP가 활성화되어 있음을 나타내는 경우 최대 7개의 병합 후보를 사용할 수 있다. 추가 병합 후보의 인코딩 논리는 HM의 병합 후보와 동일하며, 이는 P 또는 B 슬라이스의 각 CU에 대해 두 개의 추가 병합 후보에 대해 두 개의 RRD 검사가 더 필요할 수 있음을 의미한다. 일부 실시예에서, 예를 들어, JEM, 병합 인덱스의 모든 빈은 CABAC에 의해 코딩 된 컨텍스트(컨텍스트 기반 적응 이진 산술 코딩(Context-based Adaptive Binary Arithmetic Coding)). 다른 실시예에서, 예를 들어, HEVC, 제1 빈만 컨텍스트 코딩 되고 나머지 저장소는 컨텍스트 바이패스 코드(context by-pass coded)이다.
2.2 적응형 모션 벡터 차이 해상도의 예
일부 실시예에서, 모션 벡터 차이(MVDs)(모션 벡터와 PU의 예측 모션 벡터 사이)는 use_integer_mv_flag 슬라이스 헤더에서 0과 같을 때 쿼터 루마 샘플 유닛(units of quarter luma sample)으로 시그널링 된다. JEM에서는 로컬 적응형 모션 벡터 해상도(locally adaptive motion vector resolution)(LAMVR)가 도입된다. JEM에서 MVD는 쿼터 루마 샘플, 정수 루마 샘플 또는 4개의 루마 샘플 유닛으로 코딩 될 수 있다. MVD 해상도는 코딩 장치(CU) 레벨에서 제어되며 MVD 해상도 플래그는 적어도 하나 이상의 0MVD 구성 요소가 있는 각 CU에 대해 조건부 시그널링 된다.
0이 아닌 MVD 구성 요소가 하나 이상 있는 CU의 경우, 제1 플래그는 쿼터 루마 샘플 MV 정밀도가 CU에 사용되는지 여부를 나타내도록 시그널링 된다. 제1 플래그(1과 동일)가 쿼터루마 샘플 MV 정밀도가 사용되지 않음을 나타내면, 다른 플래그는 정수 루마 샘플 MV 정밀도 또는 4개의 루마 샘플 MV 정밀도가 사용되는지 여부를 나타내기 위해 시그널링 된다.
CU의 제1 MVD 해상도 플래그가 0이거나 CU에 대해 코딩 되지 않은 경우(CU의 모든 MVD가 0임을 의미함), 쿼터 루마 샘플 MV 해상도는 CU에 사용된다. CU가 정수 루마 샘플 MV 정밀도 또는 4루마 샘플 MV 정밀도를 사용하는 경우 CU의 AMVP 후보 목록의 MVP는 대응하는 정밀도로 반올림된다.
인코더에서 CU 레벨 RD 검사는 CU에 사용할 MVD 해상도를 결정하는 데 사용된다. 즉, CU 레벨 RD 검사는 각 MVD 해상도에 대해 세 번 수행된다. 인코더 속도를 가속화하기 위해 JEM에 다음과 같은 인코딩 스키마가 적용된다.
-- 일반 쿼터 루마 샘플 MVD 해상도를 가진 CU의 RD 검사 중에 현재 CU(정수 루마 샘플 정확도(integer luma sample accuracy))의 작업 정보가 저장된다. 저장된 모션 정보(반올림 후)는 정수 루마 샘플과 4루마 샘플 MVD 해상도를 가진 동일한 CU에 대한 RD 검사 중에 더 작은 범위 모션 벡터 정제를 위한 출발점으로 사용되어 시간이 많이 소요되는 모션 추정 프로세스가 세 번 중복되지 않도록 한다.
-- 4루마 샘플 MVD 해상도를 가진 CU의 RD 검사는 조건부 호출된다. CU의 경우, RD 비용 정수 루마 샘플 MVD 해상도가 쿼터 루마 샘플 MVD 해상도보다 훨씬 크면 CU에 대한 4개의 루마 샘플 MVD 해상도의 RD 검사를 스킵 한다.
2.3 더 높은 모션 벡터 스토리지 정확도의 예
HEVC에서 모션 벡터 정확도(motion vector accuracy)는 1/4 펠(pel)(1/4 루마 샘플 및 4:2:0 비디오의 1/8 크로마 샘플)이다. JEM에서, 내부 모션 벡터 스토리지(internal motion vector storage) 및 병합 후보에 대한 정확도는 1/16 펠로 증가한다. 더 높은 모션 벡터 정확도(1/16 펠(pel))는 스킵/병합 모드로 코딩 된 CU에 대한 모션 보상 인터 예측에 사용된다. 일반 AMVP 모드로 코딩 된 CU의 경우 정수 펠 또는 쿼터 펠 모션이 사용된다.
HEVC 모션 보상 보간 필터와 동일한 필터 길이 및 정규화 계수를 갖는 SHVC 업샘플링 보간 필터는 추가 분수 펠 위치에 대한 모션 보상 보간 필터로 사용된다. 크로마 컴포넌트 모션 벡터 정확도는 JEM에서 1/32 샘플이며, 1/32 펠 분수 위치의 추가 보간 필터는 두 개의 이웃 1/16 펠 분수 위치의 필터의 평균을 사용하여 유도된다.
2.4 겹치는 블록 모션 보상(OBMC)의 예
JEM에서 OBMC는 CU 레벨에서 신택스를 사용하여 켜고 끌 수 있다. OBMC를 JEM에서 사용하는 경우 OBMC는 CU의 오른쪽 및 하단 경계를 제외한 모든 모션 보상(MC) 블록 경계에 대해 수행된다. 더욱이, 루마와 크로마 컴포넌트 모두에 적용된다. JEM에서 MC 블록은 코딩 블록에 대응한다. CU가 서브 CU 모드(서브 CU 병합, 아핀 및 FRUC 모드 포함)로 코딩 되는 경우 CU의 각 서브 블록은 MC 블록이다. CU 경계를 균일하게 처리하기 위해 OBMC는 도 12a 및 12b와 같이 서브 블록 크기가 4Х4로 설정된 모든 MC 블록 경계에 대한 서브 블록 레벨에서 수행된다.
도 12a는 CU/PU 경계에서 서브 블록을 표시하고 해치된 서브 블록은 OBMC가 적용되는 위치이다. 마찬가지로, 도 12b는 ATMVP 모드에서 서브 푸스(sub-Pus)를 보여준다.
OBMC가 현재의 서브 블록에 적용되는 경우, 현재 모션 벡터 외에, 4개의 연결된 이웃 서브 블록의 모션 벡터가 사용 가능하고 현재 모션 벡터와 동일하지 않은 경우, 현재 서브 블록에 대한 예측 블록을 유도하는 데도 사용된다. 다중 모션 벡터에 기초하는 이러한 다중 예측 블록이 결합되어 현재 서브 블록의 최종 예측 신호를 생성한다.
이웃 서브 블록의 모션 벡터에 기초하는 예측 블록은 PN으로 표시되며, N은 현재 서브 블록의 모션 벡터에 기초하여 위쪽, 하부, 왼쪽 및 오른쪽 서브 블록 및 예측 블록에 대한 인덱스를 나타내는 PC로 표시된다. PN이 현재 서브 블록에 동일한 모션 정보를 포함하는 이웃 서브 블록의 모션 정보에 기초하는 경우 OBMC는 PN에서 수행되지 않는다. 그렇지 않으면, PN의 모든 샘플은 PC의 동일 샘플에 추가, 즉, PN의 4 개의 행/열은 PC에 추가된다. 가중치 요인 {1/4, 1/8, 1/16, 1/32}는 PN에 사용되며 가중치 요인 {3/4, 7/8, 15/16, 31/32}가 PC에 사용된다. 예외는 작은 MC 블록(즉, 코딩 블록의 높이 또는 너비가 4와 같거나 CU가 서브 CU 모드로 코딩 되는 경우)이며, PN의 두 행/열만 PC에 추가된다. 이 경우 가중치 요소 {1/4, 1/8}는 PN에 사용되며 가중치 요인 {3/4, 7/8}는 PC에 사용된다. 수직(수평) 이웃 서브 블록의 모션 벡터에 기초하여 생성된 PN의 경우 PN의 동일한 행(열)의 샘플이 동일한 가중치를 가진 PC에 추가된다.
JEM에서 크기가 256루마 샘플보다 작거나 같을 수 있는 CU의 경우 CU 레벨 플래그는 현재 CU에 대한 OBMC가 적용되는지 여부를 나타내도록 시그널링 된다. 크기가 256개 이상의 루마 샘플이거나 AMVP 모드로 코딩 되지 않은 CO의 경우 기본적으로 OBMC가 적용된다. 인코더에서는 OBMC가 CU에 적용되면 모션 추정 단계에서 그 영향을 고려한다. OBMC가 형성한 예측 신호는 상단 이웃 블록및 좌측 이웃 블록의 모션 정보를 사용하여 현재 CU의 원본 신호의 상과 좌측 경계를 보상하는 데 사용되며, 그 다음에는 정상 모션 추정 프로세스가 적용된다.
2.5 로컬 조명 보상의 예 (LIC)
LIC는 스케일링 계수 a 및 오프셋 b를 사용하여 조명 변경을 위한 선형 모델에 기초한다. 또한 각 모드 간 코딩 장치(CU)에 대해 적응적으로 사용 또는 비활성화된다.
LIC가 CU에 적용되는 경우, 현재 CU 및 대응하는 레퍼런스 샘플의 이웃 샘플을 사용하여 파라미터 a 및 b를 유도하기 위해 최소 제곱 오차 방법이 사용된다. 도 13은 IC 알고리즘의 파라미터를 유도하는 데 사용되는 이웃 샘플의 예를 나타낸다. 구체적으로, 도 13에 도시된 바와 같이, CU및 대응하는 샘플(현재 CU 또는 서브 CU의 모션 정보에 의해 식별됨)의 이웃 샘플(2:1 서브샘플링)이 레퍼런스 픽처에서 사용된다. IC 파라미터는 각 예측 방향에 대해 따로 유도되고 적용된다.
CU가 병합 모드로 코딩 되면 병합 모드에서 모션 정보 복사와 유사한 방식으로 LIC 플래그가 이웃 블록에서 복사된다. 그렇지 않으면 CU에 대해 LIC 플래그가 시그널링 되어 LIC가 적용되는지 여부를 나타낸다.
픽처에 LIC를 사용하도록 설정하면 CU에 LIC가 적용되는지 여부를 결정하기 위해 추가 CU 레벨 RD 검사가 필요하다. LIC가 CU에 대해 활성화되면, 정수 펠 모션 검색 및 분수 펠 모션 검색을 위해 SAD 및 SATD 대신 절대적 차이(MR-SAD) 및 평균 제거된 합계(MR-SATD)의 평균 제거 합계가 사용된다.
인코딩 복잡성을 줄이기 위해 JEM에 다음 인코딩 스키마가 적용된다:
-- LIC는 현재 픽처와 레퍼런스 픽처 사이에 명백한 조명 변화가 없을 때 전체 픽처에 대해 비활성화된다. 이러한 상황을 식별하려면 현재 픽처의 히스토그램과 현재 픽처의 모든 레퍼런스 픽처가 인코더에서 계산된다. 현재 픽처와 현재 픽처의 모든 레퍼런스 픽처 간의 히스토그램 차이가 지정된 임계값보다 작으면 현재 픽처에 대해 LIC이 비활성화된다. 그렇지 않으면 현재 픽처에 대해 LIC가 활성화된다.
2.6 아핀 모션 보상 예측의 예
HEVC에서는 모션 보상 예측(MCP)에 대한 번역 모션 모델만 적용된다. 그러나 카메라와 오브젝트에는 확대/축소, 회전, 원근 작업 및/또는 기타 불규칙한 모션과 같은 다양한 종류의 모션이 있을 수 있다. 반면 JEM은 단순화된 아핀 변환 모션 보상 예측을 적용한다. 도 14는 두 개의 제어점 모션 벡터 V0 및 V1에의해 기재된 블록(1400)의 아핀 모션 필드의 예를 나타낸다. 블록(1400)의 모션 벡터 필드(MVF)는 다음 식에 의해 설명될 수 있다.
식(1)
도 14에 도시된 바와 같이, (v0x, v0y)는 왼쪽 상단 모서리 제어점의 모션 벡터이며(v1x, v1y)는 오른쪽 상단 모서리 제어점의 모션 벡터이다. 모션 보상 예측을 단순화하기 위해 서브 블록 기반 아핀 변환 예측을 적용할 수 있다. 서브 블록 크기 MХN은 다음과 같이 유도된다:
식(2)
여기서, MvPre는 모션 벡터 분수 정확도(vector fraction accuracy)(예를 들어, JEM에서 1/16)이다. (v2x, v2y)는 식(1)에 따라 계산된 왼쪽 하단 제어점의 모션 벡터이다. M과 N은 각각 w와 h의 제수를 만들기 위해 필요한 경우 하향 조정할 수 있다.
도 15는 블록(1500)에 대한 서브 블록당 아핀 MVF의 예를 나타낸다. 각 MХN 서브 블록의 모션 벡터를 유도하기 위해 각 서브 블록의 중심 샘플의 모션 벡터는 식(1)에 따라 계산될 수 있고, 모션 벡터 분수 정확도(예를 들어, JEM에서 1/16)로 반올림한다. 그런 다음 모션 보상 보간 필터를 적용하여 유도된 모션 벡터를 사용하여 각 서브 블록의 예측을 생성할 수 있다. MCP 후 각 서브 블록의 고정밀 모션 벡터는 정상 모션 벡터와 동일한 정확도로 반올림되고 저장된다.
2.6.1 AF_INTER 모드의 실시예
JEM에는 두 가지 아핀 모션 모드가 있다. AF_INTER 모드 및 AF_MERGE 모드이다. 너비와 높이가 8보다 큰 CU의 경우 AF_INTER 모드를 적용할 수 있다. CU 레벨의 아핀 플래그는 비트스트림에 시그널링 되어 AF_INTER 모드가 사용되는지 여부를 나타낸다. AF_INTER 모드에서는 모션 벡터 쌍이 있는 후보 목록이 이웃 블록을 사용하여 구성된다.
도 16은 AF_INTER 모드에서 블록(1600)에 대한 모션 벡터 예측(MVP)의 예를 나타낸다. 도 16에 도시된 바와 같이, v0은 서브 블록 A, B 또는 C의 모션 벡터로부터 선택된다. 레퍼런스 목록에 따라 이웃 블록의 모션 벡터를 확장할 수 있다. 모션 벡터는 또한 이웃 블록에 대한 레퍼런스의 픽처 주문 수(POC) 간의 관계, 현재 CU에 대한 레퍼런스의 POC 및 현재 CU의 POC 간의 관계에 따라 스케일링을 조정할 수 있다. 이웃 서브 블록 D 및 E에서 v1을 선택하는 방법은 비슷한다. 후보 목록 수가 2보다 작은 경우 각 AMVP 후보를 복제하여 구성된 모션 벡터 쌍에 의해 목록이 패딩된다. 후보 목록이 2보다 크면, 후보는 먼저 이웃 모션 벡터에 따라 정렬될 수 있다(예를 들어, 쌍 후보에서 두 모션 벡터의 유사성에 따라). 일부 구현에서는 처음 두 후보가 유지된다. 일부 실시예에서, 속도 왜곡(RD) 비용 검사는 현재 CU의 제어점 모션 벡터 예측(CPMVP)으로 선택되는 모션 벡터 쌍 후보를 결정하는 데 사용된다. 후보 목록에서 CPMVP의 위치를 나타내는 인덱스는 비트스트림에서 신호를 볼 수 있다. 현재 아핀 CU의 CPMVP가 결정된 후, 아핀 모션 추정이 적용되고 제어점 모션 벡터(CPMV)가 발견된다. 그런 다음 CPMV와 CPMVP의 차이점이 비트스트림에 시그널링 된다.
2.6.3 AF_MERGE 모드의 실시예
cu가 AF_MERGE 모드에 적용되면 유효한 이웃 재구성된 블록에서 아핀 모드로 코딩 된 제1 블록을 가져온다. 도 17a는 현재 CU(1700)에 대한 후보 블록의 선택 순서의 예를 나타낸다. 도 17a에 도시된 바와 같이, 선택 순서는 현재 CU(1700)의 왼쪽(1701), 위(1702), 오른쪽 위(1703), 왼쪽 바닥(1704)에서 왼쪽(1705)까지일 수 있다. 도 17b는 AF_MERGE 모드에서 현재 CU(1700)에 대한 후보 블록의 또 다른 예를 나타낸다. 이웃 왼쪽 하단 블록(1801)이 아핀 모드로 코딩 되는 경우, 도 17b에 도시된 바와 같이, 모션 벡터 v2, v3 및 v4 왼쪽 상단 모서리, 오른쪽 모서리 위쪽, 및 서브 블록(1701)을 포함하는 CU의 왼쪽 하단 모서리가 유도된다. 현재 CU(1700)의 왼쪽 상단 모서리의 모션 벡터 v0은 v2, v3 및 v4를 기준으로 계산된다. 현재 CU의 위쪽 오른쪽의 모션 벡터 v1은 그에 따라 계산될 수 있다.
현재 CU v0 및 v1의 CPMV가 식(1)의 아핀 모션 모델에 따라 계산된 후, 현재 CU의 MVF가 생성될 수 있다. 현재 CU가 AF_MERGE 모드로 코딩 되는지 여부를 식별하기 위해 적어도 하나의 이웃 블록이 아핀 모드로 코딩 되면 비트스트림에서 아핀 플래그를 신호를 표시할 수 있다.
2.7 패턴 매칭 모션 벡터 유도의 예 (PMMVD)
PMMVD 모드는 FRUC(프레임 속도 변환) 메서드에 기초하는 특수 병합 모드이다. 이 모드를 사용하면 블록의 모션 정보가 신호가 아니라 디코더 측에서 유도된다.
병합 플래그가 참(true)일 때 FRUC 플래그를 CU에 대해 신호를 표시할 수 있다. FRUC 플래그가 거짓(false)인 경우 병합 인덱스를 표시하고 일반 병합 모드를 사용할 수 있다. FRUC 플래그가 참인 경우 추가 FRUC 모드 플래그를 지정하여 블록에 대한 모션 정보를 유도하는 데 사용되는 방법(예를 들어, 이중층 매칭(bilateral matching) 또는 템플릿 매칭(template matching))을 나타낼 수 있다.
인코더 측에서는 CU에 FRUC 병합 모드를 사용하는지 여부에 대한 결정은 일반 병합 후보에 대해 수행된 대로 RD 비용 선택에 기초한다. 예를 들어 여러 매칭 모드(예를 들어, 이중층 매칭 및 템플릿 매칭)는 RD 비용 선택을 사용하여 CU를 검사한다. 최소한의 비용으로 이어지는 것은 다른 CU 모드에 비해 더 많은 것이다. FRUC 매칭 모드가 가장 효율적인 모드인 경우 CU에 대해 FRUC 플래그가 참으로 설정되고 관련 매칭 모드가 사용된다.
일반적으로 FRUC 병합 모드에서의 모션 유도 프로세스에는 CU 레벨 모션 검색이 먼저 수행된 다음 서브 CU 레벨 모션 구체화의 두 단계가 있다. CU 레벨에서 초기 모션 벡터는 이중층 매칭 또는 템플릿 매칭에 기초하여 전체 CU에 대해 유도된다. 첫째, MV 후보 목록이 생성되고 최소 매칭 비용으로 이어지는 후보가 추가 CU 레벨 개선을 위한 출발점으로 선택된다. 그런 다음 시작점 주위의 이중층 매칭 또는 템플릿 매칭에 기초하여 로컬 검색이 수행된다. MV 결과 최소 매칭 비용은 전체 CU의 MV로 수행된다. 이어서, 모션 정보는 유도된 CU 모션 벡터를 시작점으로 서브 CU 레벨에서 더욱 정제한다.
예를 들어, WxH CU 모션 정보 유도를 위해 다음과 같은 유도 프로세스가 수행된다. 제1 단계에서 전체 WxH CU에 대한 MV가 유도된다. 제2 단계에서 CU는 MxM 서브CU로 더 분할된다. M 값은 식(3)에서와 같이 계산된다. D는 JEM에서 기본적으로 3으로 설정된 미리 정의된 분할 깊이이다. 그런 다음 각 서브 CU에 대한 MV가 유도된다.
식(3)
도 18은 프레임 속도 업 변환(FRUC) 방법에 사용되는 이중층 매칭의 예를 나타낸다. 이중층 매칭은 두 개의 상이한 레퍼런스 픽처(1810, 1811)에서 현재 CU(1800)의 모션 궤적을 따라 두 블록 사이의 가장 가까운 매칭을 찾아 현재 CU의 모션 정보를 유도하는 데 사용된다. 연속 모션 궤적의 가정하에, 두 개의 레퍼런스 블록을 가리키는 모션 벡터 MV0(1801)과 MV1(1802)은 현재 픽처와 두 개의 레퍼런스 픽처 사이의 시간적 거리(예를 들어, TD0(1803) 및 TD1(1804)에 비례한다. 일부 실시예에서, 현재 픽처(1800)이 두 레퍼런스 픽처(1810, 1811)과 현재 픽처에서 두 개의 레퍼런스 픽처까지의 시간적 거리가 동일할 때, 이중층 매칭은 거울 기반의 양방향 MV가 된다.
도 19는 FRUC(프레임 속도 변환) 메서드에 사용되는 템플릿 매칭의 예를 나타낸다. 템플릿 매칭은 현재 픽처및 블록(예를 들어, 템플릿에 동일한 크기)에서 템플릿(예를 들어, 현재 CU의 상단 및/또는 좌측 이웃 블록)과 레퍼런스 픽처(예를 들어, 템플릿에 동일한 크기)을 찾아 현재 CU(1900)의 모션 정보를 유도하는 데 사용할 수 있다. 앞서 언급한 FRUC 병합 모드를 제외하고, 템플릿 매칭도 AMVP 모드에 적용할 수 있다. JEM과 HEVC 모두에서 AMVP에는 두 명의 후보가 있다. 템플릿 매칭 방법을 사용하면 새 후보를 유도할 수 있다. 템플릿 매칭에 의해 새로 유도된 후보가 제1 기존 AMVP 후보와 다른 경우 AMVP 후보 목록의 초기에 삽입된 다음 목록 크기는 두 가지(예를 들어, 두 번째 기존 AMVP 후보를 제거하여)로 설정된다. AMVP 모드에 적용하면 CU 레벨 검색만 적용된다: CU 레벨에서 설정된 MV 후보는 다음을 포함할 수 있다. (1) 현재 CU가 AMVP 모드에 있는 경우 원본 AMVP 후보, (2) 모든 합병 후보, (3) 보간 MV 필드에 여러 MV(나중에 설명), 상단 및 왼쪽 이웃 모션 벡터.
이중층 매칭을 사용하는 경우, 경우, 병합 후보의 각각의 유효한 MV는 양방향 매칭을 가정하여 MV 쌍을 생성하기 위한 입력으로 사용될 수 있다. 예를 들어 병합 후보의 유효한 MV 중 하나는 레퍼런스 목록(reference list) A에서(MVa, refa)이다. 그런 다음 쌍을 이루는 양방향 MV의 레퍼런스 픽처 refb가 다른 레퍼런스 목록 B에서 발견되어 refa 및 refb가 현재 픽처의 다른 쪽에 시간적으로 있다. 이러한 레퍼런스 목록 B에서 이러한 refb를 사용할 수 없는 경우, refb는 refa와 다른 레퍼런스로 결정되며 현재 픽처까지의 시간적 거리는 목록 B의 최소값이다. refb가 결정된 후, MVb는 현재 픽처와 refa, refb 사이의 시간적 거리를 기반으로 MVa를 스케일링 하여 유도된다.
일부 구현에서, 보간된 MV 필드의 4개의 MV를 CU 레벨 후보 목록에 추가할 수도 있다. 보다 구체적으로, 현재 CU의 위치(0, 0), (W/2, 0), (0, H/2) 및 (W/2, H/2)의 보간된 MV가 추가된다. FRUC를 AMVP 모드로 적용하면 원본 AMVP 후보 세트에 원본 AMVP 후보가 추가된다. 일부 구현에서는 CU 레벨에서 AMVP CU용 MV 15대와 병합 CU용 MV 13장을 후보 목록에 추가할 수 있다.
서브 CU 레벨에서 설정된 MV 후보에는 CU 레벨 검색, (2) 상단, 왼쪽, 왼쪽 위쪽 및 오른쪽 상단 이웃 MV, (3) 레퍼런스 픽처에서 콜드 MV의 스케일링 버전, (4) 하나 이상의 ATMVP 후보(예를 들어, 최대 4개), (5) 하나 이상의 STMVP 후보(예를 들어, 최대 4개)에서 결정된 MV가 포함된다. 레퍼런스 픽처에서 스케일링이 조정된 MV는 다음과 같이 유도된다. 두 목록의 레퍼런스 픽처가 횡단된다. 레퍼런스 픽처에서 서브 CU의 콜위치 위치에 있는 MV는 시작 CU 레벨 MV의 레퍼런스로 스케일링이 조정된다. ATMVP와 STMVP 후보는 4개의 제1 후보가 될 수 있다. 서브 CU 레벨에서 하나 이상의 MV(예를 들어, 최대 17개)가 후보 목록에 추가된다.
보간 된 MV 필드의 생성. 프레임을 코딩 하기 전에 일방적인 ME에 기초하여 전체 픽처에 대해 보간된 모션 필드가 생성된다. 그런 다음 모션 필드는 나중에 CU 레벨 또는 서브 CU 레벨 MV 지원자로 사용될 수 있다.
일부 실시예에서, 두 레퍼런스 목록의 각 레퍼런스 픽처의 모션 필드는 4Х4 블록 레벨에서 횡단된다. 도 20은 FRUC 방법에서 일방적인 모션 추정(ME) 2000의 예를 나타낸다. 각 4Х4 블록에 대해, 현재 픽처에서 4Х4 블록을 통과하는 블록에 연결된 모션이 보간 된 모션을 할당하지 않은 경우, 레퍼런스 블록의 모션은 현시 거리 TD0 및 TD1에 따라 현재 픽처로 스케일링 된다(HEVC에서 TMVP의 MV 스케일링과 동일한 방식으로) 및 스케일 모션이 현재 프레임에서 할당된 블록에 할당된다. 4Х4 블록에 스케일링 MV가 할당되지 않으면 블록의 모션을 보간 된 모션 필드에서 사용할 수 없는 것으로 표시된다.
보간 및 매칭 비용. 모션 벡터가 분수 샘플 위치를 가리키면 모션 보상 보간이 필요하다. 복잡성을 줄이기 위해 일반 8탭 HEVC 보간 대신 이중 선형 보간을 이중층 매칭 및 템플릿 매칭 모두에 사용할 수 있다.
매칭하는 비용의 계산은 다른 단계에서 약간 다르다. CU 레벨에서 설정된 후보에서 후보를 선택할 때 매칭 비용은 이중층 매칭 또는 템플릿 매칭의 절대 합계 차이(SAD)일 수 있다. 시작 MV가 결정되면 서브 CU 레벨 검색에서 이중층 매칭의 매칭하는 비용 C는 다음과 같이 계산된다:
식(4)
여기서 w는 가중치 요소이다. 일부 실시예에서, w는 경험적으로 4로 설정할 수 있다. MV 와 MVs는 각각 현재 MV와 시작 MV를 나타낸다. SAD는 서브 CU 레벨 검색에서 매칭하는 템플릿 매칭 비용으로 계속 사용할 수 있다.
FRUC 모드에서 MV는 루마 샘플만을 사용하여 유도된다. 유도된 모션은 MC 인터 예측을 위해 루마와 크로마 모두에 사용된다. MV가 결정되면 루마용 8탭 보간 필터와 크로마용 4탭 보간 필터를 사용하여 최종 MC가 수행된다.
MV 정제는 이중층 매칭 비용 또는 템플릿 매칭 비용의 기준을 가진 패턴 기반 MV 검색이다. JEM에서는 무제한 중앙 편향 다이아몬드 검색(UCBDS)과 CU 레벨 및 서브 CU 레벨에서 MV 정제에 대한 적응형 교차 검색의 두 가지 검색 패턴이 지원된다. CU 및 서브 CU 레벨 MV 정제의 경우 MV는 쿼터 루마 샘플 MV 정확도에서 직접 검색되며, 그 다음에는 1/8 루마 샘플 MV 정제가 뒤따른다. CU 및 서브 CU 단계에 대한 MV 정제의 검색 범위는 8개의 루마 샘플과 동일하게 설정된다.
이중층 매칭 병합 모드에서, CU의 모션 정보는 두 개의 상이한 레퍼런스 픽처에서 현재 CU의 모션 궤적을 따라 두 블록 사이의 가장 가까운 매칭에 기초하여 유도되므로 이중 예측이 적용된다. 템플릿 매칭 병합 모드에서 인코더는 list0에서 단일 예측, list1의 단일 예측 또는 CU에 대한 이중 예측 중에서 선택할 수 있다. 선택 영역 은 다음과 같이 템플릿 매칭 비용에 기초한다.
costBi <= 계수 * 최소 (비용0, 비용1)
이중 예측이 사용된다.
그렇지 않으면 비용0 < = 비용1
목록0에서 단일 예측이 사용된다.
그렇지 않으면
list1에서 단일 예측이 사용된다.
여기서, cost0은 list0 템플릿 매칭의 SAD이며, cost1은 list1 템플릿 매칭의 SAD이며 costBi는 이중 예측 템플릿 매칭의 SAD이다. 예를 들어 계수 값이 1.25와 같으면 선택 프로세스가 이중 예측에 편향되어 있음을 의미한다. 인터 예측 방향 선택은 CU 레벨 템플릿 매칭 프로세스에 적용할 수 있다.
2.8 일반화된 이중 예측 개선의 예 (GBi)
JVET-L0646에서 제안된 일반화된 이중 예측 개선(GBi)은 VTM-3.0으로 채택된다. GBi는 이중 예측 모드에서 L0 및 L1의 예측 변수에 동일하지 않은 가중치를 적용한다. 인터 예측 모드에서, 동일한 가중 쌍(1/2, 1/2)을 포함하는 다중 가중 쌍은 속도 왜곡 최적화(RDO)에 기초하여 평가되고, 선택한 가중 쌍의 GBi 지수는 디코더에 시그널링 된다. 병합 모드에서는 GBi 인덱스가 이웃 CU에서 상속된다. 예측 변수 생성 수식은 식(5)과 같이 표시된다.
P GBi = (w0ХP L0 +w1ХP L1 + RoundingOffset) >> shiftNum GBi 식(5)
여기서,PGB i는 GBi의 최종 예측자이고, w 0 w 1 각각 목록 0(L0) 및 목록 1(L1)의 예측자(P L0 P L1) 적용된 선택된 GBi 가중치이다. RoundingOffset GBi shiftNum GBi 는 GBi의 최종 예측 변수를 정규화하는 데 사용된다. 지원되는 w 1 가중 세트는 {-1/4, 3/8, 1/2, 5/8, 5/4}이며, 5개의 가중치는 동일한 웨이트 쌍 1쌍과 4개의 동일하지 않은 가중 쌍에 대응한다. 혼합 게인(blending gain), 즉 w 1 w 0 의 합은 1.0으로 고정된다. 따라서 대응하는 w 0 가중 세트는 {5/4, 5/8, 1/2, 3/8, -1/4}이다. 가중 쌍 선택은 CU 레벨이다.
비-저지연 픽처(non-low delay picture)의 경우 가중 세트 크기가 5에서 3개로 감소하며, 여기서w 1 가중 세트는 {3/8, 1/2, 5/8}이고 w 0 가중 세트는 {5/8, 1/2, 3/8}이다. 비-저지연 픽처에 대한 가중 세트 크기 감소는 BMS2.1 GBi 및 이 기여도의 모든 GBi 테스트에 적용된다.
2.8.1 GBi 인코더 버그 수정
GBi 인코딩 시간을 줄이기 위해 현재 인코더 설계에서 인코더는 4/8과 동일한 GBi 가중에서 추정되는 단일 예측 모션 벡터를 저장하고 다른 GBi 가중치의 단일 예측 검색을 위해 다시 사용한다. 이 빠른 인코딩 방법은 번역 모션 모델과 아핀 모션 모델에 모두 적용된다. VTM2.0에서는 6파라미터 아핀 모델이 4파라미터 아핀 모델과 함께 채택되었다. BMS2.1 인코더는 GBi 가중이 4/8과 같을 때 단일 예측 아핀 MV를 저장할 때 4파라미터 아핀 모델 및 6파라미터 아핀 모델을 차별화하지 않는다. 따라서, 4파라미터 아핀 MV는 GBi 가중 4/8로 인코딩 한 후 6파라미터 아핀 MV에 의해 덮어쓸 수 있다. 저장된 6 파라미터 아핀 MV는 다른 GBi 가중에 대해 4파라미터 아핀 ME에 사용될 수 있거나, 또는 저장된 4파라미터 아핀 MV는 6파라미터 아핀 ME에 사용될 수 있다. 제안된 GBi 인코더 버그 수정은 4 파라미터 및 6 파라미터 아핀 MV 스토리지를 분리하는 것이다. 인코더는 GBi 가중이 4/8과 같을 때 아핀 모델 유형에 기초하여 아핀 MV를 저장하고 다른 GBi 가중에 대한 아핀 모델 유형에 따라 대응하는 아핀 MV를 재사용한다.
2.8.2 GBi 인코더 속도 향상
이 기존 구현에서는 GBi가 활성화될 때 인코딩 시간을 줄이기 위해 5개의 인코더 속도 향상 방법이 제안된다.
(1) 일부 GBi 가중치에 대한 미세 한 모션 추정을 조건부로 스킵
BMS2.1에서, 4 파라미터 및 6 파라미터 아핀 ME를 포함한 아핀 ME는 모든 GBi 가중에 대해 수행된다. 우리는 조건부로 그 동일하지 않은 GBi 가중 (4/8에 동일하지 않은 가중)에 대한 아핀 ME를 스킵 할 것을 제안한다. 구체적으로, 아핀 ME는 아핀 모드가 현재 최고의 모드로 선택되고 4/8의 GBi 가중을 평가한 후 아핀 병합 모드가 아닌 경우에만 다른 GBi 가중에 대해 수행된다. 현재 픽처가 지연되지 않는 픽처인 경우, afine ME가 수행될 때 번역 모델에 대한 이중 예측 ME는 동일하지 않은 GBi 가중치에 대해 스킵 한다. 아핀 모드가 현재 최고의 모드로 선택되지 않거나 아핀 병합이 현재 최고의 모드로 선택되면 다른 모든 GBi 가중치에 대해 아핀 ME를 스킵 한다.
(2) 1-펠 및 4-펠 MVD 정밀도에 대한 인코딩에서 저속 픽처 검사에 대한 RD 비용 검사의 가중치 수 감소
저지연 픽처(low-delay picture)의 경우 1/4-펠, 1-펠 및 4-펠을 포함한 모든 MVD 정밀도에 대한 RD 비용 검사를 위한 5개의 가중치가 있다. 인코더는 RD 비용을 먼저 1/4-펠 MVD 정밀도에 확인한다. 우리는 1-펠 및 4-펠 MVD 정밀도에 대한 RD 비용 검사에 대한 GBi 가중치의 일부를 스킵 할 것을 제안한다. 우리는 1/4-펠 MVD 정밀도에서 RD 비용에 따라 이러한 동일하지 않은 가중치를 주문한다. GBi 가중 4/8과 함께 가장 작은 RD 비용을 가진 처음 두 가중치만 1-펠 및 4-펠 MVD 정밀도로 인코딩 하는 동안 평가된다. 따라서, 대부분 3개의 가중치가 낮은 지연 픽처에 대해 1-펠 및 4-펠 MVD 정밀도에 대해 평가될 것이다.
(3) L0 및 L1 레퍼런스 픽처가 동일할 때 조건부로 이중 예측 검색을 스킵 한다.
RA의 일부 픽처의 경우 레퍼런스 픽처 목록(목록-0 및 목록-1)에서 동일한 픽처가 발생할 수 있다. 예를 들어 CTC의 임의 액세스 코딩 구성의 경우 제1 픽처 그룹(GOP)에 대한 레퍼런스 픽처 구조가 다음과 같이 나열된다:
POC: 16, TL:0, [L0: 0] [L1: 0]
POC: 8, TL:1, [L0: 0 16] [L1: 16 0]
POC: 4, TL:2, [L0: 0 8] [L1: 8 16]
POC: 2, TL:3, [L0: 0 4] [L1: 4 8]
POC: 1, TL:4, [L0: 0 2] [L1: 2 4]
POC: 3, TL:4, [L0: 2 0] [L1: 4 8]
POC: 6, TL:3, [L0: 4 0] [L1: 8 16]
POC: 5, TL:4, [L0: 4 0] [L1: 6 8]
POC: 7, TL:4, [L0: 6 4] [L1: 8 16]
POC: 12, TL:2, [L0: 8 0] [L1: 16 8]
POC: 10, TL:3, [L0: 8 0] [L1: 12 16]
POC: 9, TL:4, [L0: 8 0] [L1: 10 12]
POC: 11, TL:4, [L0: 10 8] [L1: 12 16]
POC: 14, TL:3, [L0: 12 8] [L1: 12 16]
POC: 13, TL:4, [L0: 12 8] [L1: 14 16]
POC: 15, TL:4, [L0: 14 12] [L1: 16 14]
픽처 16, 8, 4, 2, 1, 12, 14 및 15는 두 목록에서 동일한 레퍼런스 픽처가 있다. 이러한 픽처에 대한 이중 예측의 경우 L0 및 L1 레퍼런스 픽처가 동일할 수 있다. 우리는 인코더가 1) 이중 예측에서 두 개의 레퍼런스 픽처가 동일하고 2) 시간층이 1 과 3) MVD 정밀도가 1/4-펠인 경우 동일하지 않은 GBi 가중치에 대한 이중 예측 ME를 스킵 할 것을 제안한다. 아핀 이중 예측 ME의 경우 이 빠른 스킵 방법은 4파라미터 아핀 ME에만 적용된다.
(4) 레퍼런스 픽처와 현재 픽처 사이의 시간적 층과 POC 거리에 따라 동일하지 않은 GBi 가중을 검사하는 RD 비용 스킵
당사는 시간적 층이 4(RA에서 가장 높은 시간적 층)와 같을 때 대응하는 비등GBi 가중치에 대한 RD 비용 평가를 스킵 하거나 레퍼런스 픽처(목록-0 또는 목록-1)과 현재 픽처 사이의 POC 거리가 1과 같고 현재 픽처는 QP가 32보다 클 때 이를 생략할 것을 제안한다.
(5) ME 동안 동일하지 않은 GBi 가중에 대한 부동 점(floating-point) 계산을 고정 점(fixed-point) 계산으로 변경
기존 이중 예측 검색의 경우 인코더는 한 목록의 MV를 수정하고 다른 목록에서 MV를 구체화한다. 계산 복잡성을 줄이기 위해 대상이 ME 앞에 수정된다. 예를 들어 목록-1의 MV가 고정되고 인코더가 목록-0의 MV를 구체화하는 경우 목록-0 MV 구체화대상은 식(6)으로 수정된다. O는 원본 신호(original signal)이고 P 1은 목록-1의 예측 신호이다. w는 목록-1에 대한 GBi 가중이다.
T = ((O ≪ 3) - w * P1)*(1/(8 - w)) 식(6)
여기서, (1/(8 - w)) 항은 부동 점 정밀도에 저장되어 계산 복잡성을 증가시킨다. 식(7)과 같이 식(6)을 고정점으로 변경하도록 제안한다.
T = (O * a1 - P1 * a2 + round) ≫ N 식(7)
여기서, a1과 a2는 스케일링 인자(scaling factor)이며 다음과 같이 계산된다;
γ = (1 ≪ N)/(8 - w); a1 = γ ≪ 3; a2 = γ * w; round = 1 ≪ (N - 1)
2.8.3 GBi용 CU 크기 제약 조건
이 방법에서 작은 구치소에서는 GBi가 비활성화된다. 인터 예측 모드에서는 이중 예측이 사용되고 CU 영역이 128루마 샘플보다 작으면 신호 없이 GBi가 비활성화된다.
2.9 양방향 광학 흐름(BDOF 또는 BIO)의 예
2.9.1 BDOF 개요
BIO에서 모션 보상은 먼저 현재 블록의 제1 예측(각 예측 방향)을 생성하도록 수행된다. 제1 예측은 블록 내의 각 서브 블록 또는 픽셀의 공간 그레디언트, 시간적 그레디언트 및 광학 흐름을 유도하는 데 사용되며, 이는 예를 들어 서브 블록 또는 픽셀의 최종 예측과 같은 두 번째 예측을 생성하는 데 사용된다. 세부 사항은 다음과 같이 설명된다.
이 양방향 광학 흐름(BIO) 방법은 이중 예측을 위한 블록-와이즈 모션 보상 위에 수행되는 샘플 별 모션 정제이다. 일부 구현에서는 샘플 레벨 모션 구체화가 시그널링을 사용하지 않는다.
I (k) 를 블록 모션 보상 후 레퍼런스 k(k=0,1)로부터 루마 값이 되고, ∂I(k)/∂x 및 ∂I(k)/∂y를 I(k) 그레디언트의 수평 및 수직 컴포넌트로서 각각 나타낸다. 광학 흐름이 유효하다고 가정하면 모션 벡터 필드 (vx,vy)는 다음과 같이 주어진다:
식(8)
각 샘플의 모션 궤적에 대한 헤르밋 보간과 이 광학 흐름 식을 결합하면 끝에서 함수 값 I(k)와 도함수 ∂I(k)/∂x 및 ∂I(k)/∂y 모두와 일치하는 고유한 3차 다항식이 생성된다. t=0에서, 이 다항형의 값은 BIO 예측이다:
식(9)
도 24는 양방향 광학 흐름(BIO) 방법에서 광학 흐름 궤적을 예로 들 수 있다. 여기서, τ0 및 τ1은 레퍼런스 프레임에 대한 거리를 나타낸다 거리 τ0 및 τ1은 Ref0 및 Ref1에 대한 POC에 기초하여 계산된다. τ0=POC(현재) - POC(Ref0), τ1= POC(현재) - POC(Ref1). 두 예측이 동일한 시간 방향(과거 또는 둘 다 미래에서 온 것)에서 나온 경우 기호가 다르다(예를 들어, ). 이 경우 예측이 같은 시점(예를 들어, )이 아닌 경우 BIO가 적용된다. 레퍼런스된 두 영역 모두 0이 아닌 모션(예를 들어, )을 가지며 블록 모션 벡터는 시간 거리(예를 들어, )에 비례한다.
모션 벡터 필드(vx, vy)는 A 지점과 B 지점의 값의 차이 를 최소화하여 결정된다. 도 8은 모션 궤적과 기준 프레임 평면이 교차하는 예를 나타낸다. 모델은 에 대한 로컬 테일러 전개의 첫 번째 선형 항만 사용한다:
식(10)
위 방정식의 모든 값은 (i', j')로 표시된 샘플 위치에 따라 다르다. 모션이 로컬 이웃 영역에서 일관적이라고 가정하면, 는 현재 예측된 지점 (i,j)을 중심으로 하는 (2M+1)x(2M+1) 정사각형 윈도우 Ω 내부에서 최소화할 수 있다. 여기서 M은 2와 같다:
식(11)
이 최적화 문제의 경우 JEM은 단순화된 접근 방식을 사용하여 먼저 수직 방향으로, 다음 가로 방향으로 최소화한다. 이렇게 하면 다음과 같은 결과가 발생한다.
식(12)
식(13)
여기서,
식(14)
0 또는 매우 작은 값으로 나누는 것을 피하기 위해 정규화 파라미터 r 및 m이 식(12) 및 (13)에 도입될 수 있다. 여기서:
r = 500 * 4d-8 식(15)
m = 700 * 4d-8 식(16)
여기서, d는 비디오 샘플의 비트 심도(bit depth)이다.
BIO에 대한 메모리 액세스를 일반 이중 예측 모션 보상과 동일하게 유지하기 위해, 모든 예측 및 그레디언트 값, I(k), ∂I(k)/∂x, ∂I(k)/∂y는 현재 블록 내부의 위치에 대해 계산된다. 도 22a블록(2200) 외부의 액세스 위치의 예를 나타낸다. 픽처와 도 22a에 도시된 바와 같이, 식(12)에서 (2M+1)x(2M+1) Ω 정사각형 윈도우는 현재 예측된 블록 경계의 경계에 위치하여 블록 외부의 위치에 액세스해야 한다. JEM에서 I(k), ∂I(k)/∂x, ∂I(k)/∂y 블록 외부값은 블록 내에서 가장 가까운 사용 가능한 값과 동일하게 설정된다. 예를 들어, 이는 도 22b와 같이 패딩 영역(2201)으로 구현될 수 있다.
BIO를 사용하면 각 샘플에 대해 모션 필드를 정제할 수 있다. 계산 복잡성을 줄이기 위해 BIO의 블록 기반 설계가 JEM에서 사용된다. 모션 정제는 4x4 블록에 기초하여 계산할 수 있다. 블록 기반 BIO에서, 4x4 블록의 모든 샘플 중 식(17)의 sn 값은 4x4 블록에 대한 유도된 BIO 모션 벡터 오프셋에 사용된다. 보다 구체적으로 블록 기반 BIO 유도에 다음 공식을 사용할 수 있다.
식(17)
bk는 예측 블록의 k번째 4x4 블록에 속하는 샘플들의 세트를 의미한다. 식 (12) 및 식 (13)의 sn은 연관된 모션 벡터 오프셋을 유도하기 위해 ((sn,bk) >> 4 )로 대체된다.
일부 시나리오에서, BIO의 MV 연대는 소음 또는 불규칙한 모션으로 인해 신뢰할 수 없을 수 있다. 따라서, BIO에서 MV 연대의 크기는 임계값으로 잘린다. 임계값은 현재 픽처의 레퍼런스 픽처가 모두 한 방향의 지여부를 기준으로 결정된다. 예를 들어, 현재 픽처의 모든 레퍼런스 픽처가 한 방향에서 온 경우 임계값 값은 12x1214-d로 설정된다. 그렇지 않으면 12x1213-d 로 설정된다.
BIO에 대한 그레디언트는 HEVC 모션 보상 프로세스(예를 들어, 2D 분리 가능한 유한 임펄스 응답(Finite Impulse Response)(FIR))과 일치하는 작업을 사용하여 모션 보상 보간과 동시에 계산될 수 있다. 일부 실시예에서, 2D 분리 가능한 FIR에 대한 입력은 블록 모션 벡터의 분수 부분에 따른 모션 보상 프로세스 및 분수 위치(fracX, fracY)에 대한 것과 동일한 레퍼런스 프레임 샘플이다. 수평 그레디언트 ∂I/∂y 의 경우, 신호는 먼저 스케일링 시프트 d-8을 제거하는 분수 위치 fracY에 해당하는 BIOfilterS를 사용하여 수직으로 보간된다. 그런 다음 그레디언트 필터 BIOfilterG가 18-d만큼 스케일링 제거 시프트를 사용하여 분수 위치 fracX에 해당하는 수평 방향으로 적용된다. 수직 그레디언트 ∂I/∂x의 경우 디스케일링 시프트가 d-8인 분수 위치 fracY에 해당하는 BIOfilterG를 사용하여 그레디언트 필터가 수직으로 적용된다. 그런 다음 18-d만큼 디스케일링 시프트를 사용하여 분수 위치 fracX에 해당하는 수평 방향으로 BIOfilterS를 사용하여 신호 변위(signal displacement)를 수행한다. 그레디언트 계산 BIOfilterG 및 신호 변위 BIOfilterF를 위한 보간 필터의 길이는 합리적인 복잡성을 유지하기 위해 더 짧을 수 있다(예를 들어, 6-탭). 표 1은 BIO에서 블록 모션 벡터의 서로 다른 분수 위치의 그레디언트 계산에 사용할 수 있는 예제 필터를 보여준다. 표 2는 BIO에서 예측 신호 생성에 사용할 수 있는 보간 필터의 예를 보여준다.
BIO의 그레디언트 계산을 위한 예시 필터
분수 펠 위치 그레디언트용 보간 필터(BIOfilterG)
0 { 8, -39, -3, 46, -17, 5}
1/16 { 8, -32, -13, 50, -18, 5}
1/8 { 7, -27, -20, 54, -19, 5}
3/16 { 6, -21, -29, 57, -18, 5}
1/4 { 4, -17, -36, 60, -15, 4}
5/16 { 3, -9, -44, 61, -15, 4}
3/8 { 1, -4, -48, 61, -13, 3}
7/16 { 0, 1, -54, 60, -9, 2}
1/2 { -1, 4, -57, 57, -4, 1}
BIO에서 예측 신호 생성을 위한 예시적인 보간 필터
분수 펠 위치 예측 신호(BIOfilterS)용 보간 필터
0 { 0, 0, 64, 0, 0, 0}
1/16 { 1, -3, 64, 4, -2, 0}
1/8 { 1, -6, 62, 9, -3, 1}
3/16 { 2, -8, 60, 14, -5, 1}
1/4 { 2, -9, 57, 19, -7, 2}
5/16 { 3, -10, 53, 24, -8, 2}
3/8 { 3, -11, 50, 29, -9, 2}
7/16 { 3, -11, 44, 35, -10, 3}
1/2 { 3, -10, 35, 44, -11, 3}
JEM에서 BIO는 두 예측이 서로 다른 레퍼런스 픽처에서 온 경우 모든 이중 예측 블록에 적용할 수 있다. CU에 대해 로컬 조명 보상(LIC)이 활성화되면 BIO를 비활성화할 수 있다.
일부 실시예에서, OBMC는 정상적인 MC 프로세스 후 블록에 적용된다. 계산 복잡성을 줄이기 위해 OBMC 프로세스 중에 BIO가 적용되지 않을 수 있다. 즉, BIO는 자체 MV를 사용할 때 블록에 대한 MC 프로세스에 적용되며 OBMC 프로세스 중에 이웃 블록의 MV를 사용할 때 MC 프로세스에 적용되지 않는다.
2.9.2 JVET-L0256에서 제안된 VTM-3.0에서의 바이오의 예
1단계: BIO가 적용 가능한지 판단한다(W/H는 현재 블록의 너비/높이이다)
BIO는 적용되지 않는다.
○ 현재 비디오 블록은 부가된 코드 또는 ATMVP 코딩
○ (iPOC - iPOC0) Х (iPOC - iPOC1) ≥ 0
○ H==4 또는 (W==4 및 H==8)
○ 가중 예측을 갖는
○ GBi 가중치는 (1,1)이 아니다
두 레퍼런스 블록(R0 및 R1로 표시) 사이의 총 SAD가 임계값 보다 작은 경우 사용되지 않고, 여기서,
2단계: 데이터 준비
WxH 블록의 경우(W+2)x(H+2) 샘플이 보간된다.
내부 WxH 샘플은 일반 모션 보상과 마찬가지로 8탭 보간 필터로 보간된다.
샘플의 네 측면 외부 선(도.23의 검정 원)은 이중 선형 필터로 보간된다.
각 위치에 대해 그레디언트는 두 개의 레퍼런스 블록(R0 및 R1)에서 계산된다.
Gx0(x,y)=(R0(x+1,y)-R0(x-1,y))>>4
Gy0(x,y)=(R0(x, y+1)-R0(x, y-1))>>4
Gx1(x,y)=(R1(x+1,y)-R1(x-1,y))>>4
Gy1(x,y)=(R1(x, y+1)-R1(x, y-1))>>4
각 위치에 대해 내부 값은 다음과 같이 계산된다:
T1= (R0(x,y)>>6)-(R1(x,y)>>6), T2=(Gx0(x,y)+Gx1(x,y))>>3, T3=(Gy0(x,y)+Gy1(x,y))>>3; 및
B1(x,y) = T2*T2, B2(x,y)=T2*T3, B3(x,y)=-T1*T2, B5(x,y)=T3*T3, B6(x,y)=-T1*T3
3단계: 각 블록에 대한 예측 계산
두 개의 4Х4 레퍼런스 블록 사이에 SAD가 임계값보다 작으면, BIO는 4Х4 블록에 대해 스킵 한다.
Vx와 Vy를 계산한다.
4Х4 블록의 각 위치에 대한 최종 예측을 계산한다.
b (x, y)=(Vx(Gx0(x,y)-Gx1(x,y))+Vy(Gy0(x,y)-Gy1(x,y))+>>1
P(x,y)=(R 0 (x,y)+R 1 (x,y)+b(x,y)+offset) >> shift
여기서, b(x,y)는 보상 항목으로 알려져 있다.
2.9.3 VTM-4.0의 바이오
비트 심도에 따라 BDOF에서 계산 결과를 반올림할 것을 제안한 JVET-M0063이 VTM-4.0으로 채택되었다.
JVET-M0487은 이중 선형 필터링을 제거하고 샘플의 4개의 측면 외부 라인(도 23의 검은색 원)을 채우기 위해 레퍼런스 블록의 가장 가까운 정수 픽셀을 패치한 VTM-4.0으로 채택되었다.
VTM-4.0에서 BIO와 관련된 작업 초안은 아래와 같이 표시된다(JVET-M1001에서).
2.9.4 분수 샘플 보간 프로세스
일반
이 프로세스의 입력은 다음과 같다.
- 현재 픽처의 왼쪽 상단 루마 샘플을 기준으로 현재 코딩 서브 블록의 왼쪽 위쪽 표본을 지정하는 루마 위치(xSb, ySb)는,
- 현재 코딩 서브 블록의 너비를 지정하는 변수 sbWidth,
- 현재 코딩 서브 블록의 높이를 지정하는 변수 sbHeight,
- 모션 벡터 오프셋 mvOffset,
- 세련된 모션 벡터 refMvLX,
- 선택한 레퍼런스 픽처 샘플 어레이 refPicLX,
- 양방향 광학 유동 플래그 bdofFlag,
- 현재 블록의 컬러 컴포넌트 인덱스를 지정하는 가변 cIdx이다.
이 프로세스의 출력은 다음과 같다:
- 예측 샘플 값의 어레이 predSamplesLX (sbWidth +bdofOffset)x (sbHeight +bdofOffset).
양방향 광학 흐름 경계 오프셋 bdofOffset는 다음과 같이 유도된다:
bdofOffset = bdofFlag ? 2 : 0 (8-811)
- cIdx가 0과 같으면 다음이 적용된다:
- (xIntL, yIntL)은 전체 샘플 유닛으로 주어진 루마 위치로 하고 (xFracL, yFracL)는 1/16 샘플 유닛으로 주어진 오프셋으로 한다. 이러한 변수는 레퍼런스 샘플 어레이 refPicLX 내부의 분수 샘플 위치를 지정하기 위해 이 절에서만 사용된다.
- 각 루마 샘플 위치 (xL = 0..sbWidth - 1 +bdofOffset, yL = 0..sbHeight - 1 +bdofOffset) 내 예측 루마 샘플 어레이 predSamplesLX, 대응하는 예측 루마 샘플 값 predSamplesLX[ xL][[yL]은 다음과 같이 유도된다:
- 변수 xIntL,, yIntL,, xFrac L 및 yFracL은 다음과 같이 유도된다:
xIntL = xSb + ( refMvLX[ 0 ]  >>  4 ) + xL (8-812)
yIntL = ySb + ( refMvLX[ 1 ]  >>  4 ) + yL (8-813)
xFracL = refMvLX[ 0 ] & 15 (8-814)
yFracL = refMvLX[ 1 ] & 15 (8-815)
- bdofFlag는 참(TRUE)과 같고 다음 조건 중 하나 이상이 사실인 경우, 예측 루마 샘플 값 predSamplesLX[ xL ][yL]은 ( xIntL, yIntL ), ( xFracL, yFracL ) 및 refPicLX 를 입력으로 사용하여 8.5.7.3.3 절에 지정된 루마 정수 샘플 가져오기 프로세스를 호출하여 유도된다:
- bdofFlag는 참(TRUE)과 동일하다.
- xL은 0과 같다.
- xL은 sbWidth + 1과 같다.
- yL은 0과 같다.
- yL은 sbHeight + 1과 같다.
- 그렇지 않으면 다음이 적용된다:
- 모션 벡터 mvLX (refMvLX - mvOffset)와 동일하게 설정된다.
예측 루마 샘플 값 predSamplesLX[ xL ][ yL ]는 ( xIntL, yIntL ), ( xFracL, yFracL ), refPicLX 및 padVal을 입력으로 사용하여 8.5.7.3.2절에 지정된 루마 샘플 8탭 보간 필터링 프로세스를 호출하여 유도된다.
...
루마 정수 샘플 가져오기 프로세스
이 프로세스의 입력은 다음과 같다:
- 전체 샘플 유닛의 루마 위치(xIntL, yIntL)
- 루마 레퍼런스 샘플 어레이 refPicLXL,
이 프로세스의 출력은 예측된 루마 샘플 값 predSampleLXL 이다.
가변 시프트는 Max(2, 14 - BitDepthY)와 동일하게 설정된다.
변수 picW는 pic_width_in_luma_samples 동일하게 설정되며 변수 picH는 pic_height_in_luma_samples 동일하게 설정된다.
전체 샘플 유닛(xInt, yInt)의 루마 위치는 다음과 같이 유도된다:
xInt = Clip3( 0, picW - 1, sps_ref_wraparound_enabled_flag (8-838)
ClipH( ( sps_ref_wraparound_offset_minus1 + 1 ) * MinCbSizeY, picW, xIntL ) : xIntL ) yInt = Clip3( 0, picH - 1, yIntL ) (8-839)
예측된 루마 샘플 값 predSampleLXL은 다음과 같이 유도된다:
predSampleLXL = refPicLXL[ xInt ][ yInt ] << shift3 (8-840)
양방향 광학 흐름 예측 프로세스
이 프로세스의 입력은 다음과 같다:
- 현재 코딩 블록의 너비와 높이를 지정하는 두 가지 변수 nCbW 및 nCbH,
- 2개(nCbW + 2)x(nCbH + 2) 루마 예측 샘플 어레이 프레드샘플L0 및 predSamplesL1,
- 예측 목록 사용률은 predFlagL0 및 predFlagL1,
- 레퍼런스 지수 refIdxL0 및 refIdxL1,
- 양방향 광학 흐름 사용률 플래그 bdofUtilizationFlag[ xIdx][ yIdx] xIdx = 0.. (nCbW >> 2) - 1, yIdx = 0.. (nCbH >> 2) - 1.
이 프로세스의 출력은 (nCbW)x(nCbH) 어레이 pbSamples의 루마 예측 샘플 값이다.
변수 bitDepth, shift1, shift2, shift3, shift4, offset4 및 mvRefineThres는 다음과 같이 유도된다.
- 변수 비트깊이는 비트깊이Y와동일하게 설정된다.
- 변수 shift1은 맥스(2, 14 - 비트깊이)와 동일하게 설정된다.
- 변수 shift2는 맥스 (8, 비트 심도 - 4)와 동일하게 설정된다.
- 변수 shift3는 맥스 (5, 비트 심도 - 7)와 동일하게 설정된다.
- 변수 shift4는 맥스(3, 15 -bitDepth)와 동일하게 설정되며 변수 오프셋4는 1<<(shift4 - 1)와 동일하게 설정된다.
- 변수 mvRefineThres는 맥스 (2, 1 << (13 - 비트 심도) )와 동일하게 설정된다.
xIdx = 0.. (nCbW >> 2) - 1 과 yIdx = 0.. (nCbH >> 2) - 1, 다음과 같이 적용된다 :
- 변수 xSb는 (xIdx << 2) + 1과 동일하게 설정되며 ySb은 (yIdx << 2) + 1과 동일하게 설정된다.
- bdofUtilizationFlag 경우[xSbIdx][ yIdx]는 거짓과 같으면 x = xSb - 1.xSb + 2, y = ySb - 1.. ySb + 2, 현재 서브 블록의 예측 샘플 값은 다음과 같이 유도된다.
pbSamples [ x ][ y] = 클립3 (0, (2bitdepth)- 1, (predSamplesL0[ x + 1 ][ y + 1 ] + offset2 + + (8-852)
predSamplesL1[ x + 1 ][ y + 1] ) >> shift2)
- 그렇지 않으면(bdofUtilizationFlag[xSbIdx][ yIdx]는 참(TRUE)과 같음), 현재 서브 블록의 예측 샘플 값은 다음과 같이 유도된다.
- x =xSb - 1.xSb + 4, y = ySb - 1.ySb + 4, 다음 순서의 단계가 적용된다:
1. 예측 샘플 어레이 내부의 각 대응하는 샘플 위치(x, y)에 대한 위치(hx,, v y)는 다음과 같이 유도된다.
hx = Clip3( 1, nCbW, x ) (8-853)
vy = Clip3( 1, nCbH, y ) (8-854)
2. 변수 gradientHL0[ x][ y], gradientVL0[ x][y], gradientHL1[x][y] 및 gradientVL1[x][y]는 다음과 같이 유도된다.
gradientHL0[ x ][ y] = (predSamplesL0[ hx + 1 ][vy]- predSampleL0[ h x - 1 ][ v y]) >> shift1 (8-855)
gradientVL0[ x ][ y] = (predSampleL0[ h x][ vy + 1] - predSampleL0[ hx ][vy - 1] ) >> shift1 (8-856)
gradientHL1[ x ][ y] = (predSamplesL1[ hx + 1 ][vy]- predSampleL1[ h x - 1 ][ v y]) >> shift1 (8-857)
gradientVL1[ x ][ y] = (predSampleL1[ h x][ vy + 1] - predSampleL1[ hx ][vy - 1] ) >> shift1 (8-858)
3. 변수 온도 [ x ][ y], tempH[ x ][ y] 및 tempV[ x ][ y] 다음과 같이 유도된다.
diff [ x ][ y] = (predSamplesL0 [ hx ][ vy ] >> shift2 ) - - (predSamplesL1 [ hx ][ vy ] >> shift2) (8-859)
tempH[ x ][ y ] = (gradientHL0[ x ][ y ] + gradientHL1[ x ][ y ] ) >> shift3 (8-860)
tempV[ x ][ y ] = (gradientVL0[ x ][ y ] + gradientVL1[ x ][ y ] ) >> shift3 (8-861)
- 변수 sGx2, sGy2, sGxGy, sGxdI 및 sGydI는 다음과 같이 유도된다.
sGx2 = SiSj (tempH[ xSb + i][[ ySb + j ] * tempH[ xSb + i ][ ySb + j] ) i, j = -1.. 4 (8-862)
sGy2 = SiSj(tempV[ xSb + i][ ySb + j ] * tempV [ xSb + i ][ ySb + j ]) i, j = -1.. 4 (8-863)
sGxGy = SiSj(tempH[ xSb + i][ ySb + j ] * tempV[ xSb + i ][ ySb + j] ) i, j -1.. 4 (8-864)
sGxdI = SiSj(- tempH[ xSb + i ][ ySb + j ] * diff[ xSb + i ][ ySb + j ]) ) i, j = -1.. 4 (8-865)
sGydI = SiSj(-tempV[ xSb + i][[ ySb + j ] * diff[ xSb + i ][ ySb + j] ) ) i, j = -1.. 4 (8-866)
- 현재 서브 블록의 수평 및 수직 모션 오프셋은 다음과 같이 유도된다.
vx = sGx2 > 0  ?  Clip3( -mvRefineThres, mvRefineThres, (8-867)
-( sGxdI << 3 ) >> Floor( Log2( sGx2 ) ) )  :  0
vy = sGy2 > 0  ?  Clip3( -mvRefineThres, mvRefineThres, ( ( sGydI << 3 ) - (8-868)
(vx Х sGxGym) << 12 + v x * sGxGys ) >> 1 ) >> Floor (Log2 (sGx2) ) )  0
- x =xSb - 1.xSb + 2, y = ySb - 1.ySb + 2의 경우 현재 서브 블록의 예측 샘플 값은 다음과 같이 유도된다.
bdofoffset = Round (vx * (gradientHL1[ x + 1 ][ y + 1 ] - gradientHL0 [ x + 1 ][ y + 1] ) ) >> 1 ) (8-869)
+ Round (vy * (gradientVL1] x + 1 ][ y + 1 ] - gradientVL0 [ x + 1 ][ y + 1] ) ) >> 1) )
[Ed. (JC): Round() 작업은 플로트 입력에 대해 정의된다. 입력이 정수 값이므로 Round() 작업이 중복된 것처럼 보이다. 제안자에 의해 확인하려면]
pbSamples [ x ][ y] = 클립3 (0, (2BitDepth)- 1, (predSamplesL0 [ x + 1 ][ y + 1 ] + offset4 + + (8-870)
predSamplesL1[ x + 1 ][ y + 1 ] + bdofOffset )  >>  shift4 )
2.10 디코더 측 모션 벡터 개선(DMVR)의 예
이중 예측 작업에서, 하나의 블록 영역의 예측을 위해, list0의 모션 벡터(MV)와 목록1의 MV를 사용하여 형성된 두 개의 예측 블록이 각각 결합되어 단일 예측 신호를 형성한다. 디코더 측 모션 벡터 정제(DMVR) 방법에서, 이중 예측의 두 모션 벡터는 이중층 템플릿 매칭 프로세스에 의해 더욱 정제된다. 디코더에 적용된 이중층 템플릿 매칭은 추가 모션 정보의 전송 없이 정제된 MV를 얻기 위해 레퍼런스 픽처에서 이중층 템플릿과 재구성 샘플 간의 왜곡 기반 검색을 수행한다.
DMVR에서, 양측 템플릿은 도 24에 도시된 바와 같이, 각각 목록0 및 MV1의 목록0 및 MV1의 초기 MV0으로부터 두 예측 블록의 가중 조합(즉 평균)으로 생성된다. 템플릿 매칭 작업은 레퍼런스 픽처에서 생성된 템플릿과 샘플 영역(초기 예측 블록 주위) 간의 비용 측정값 계산으로 구성된다. 두 레퍼런스 픽처 각각에 대해 최소 템플릿 비용을 산출하는 MV는 원본(original)를 대체하기 위해 대응하는 목록의 업데이트된 MV로 간주된다. JEM에서는 9명의 MV 후보가 각 목록을 검색한다. 9개의 MV 후보는 원본 MV와 8개의 이웃 MV를 포함하며, 하나의 루마 샘플은 수평 또는 수직 방향 또는 둘 다에서 원본 MV에 오프셋되어 있다. 마지막으로, 두 개의 새로운 MV, 즉, MV0와 MV1도 24에 도시된 바와 같이, 최종 이중 예측 결과를 생성하는 데 사용된다. 절대 차이(SAD)의 합계는 비용 측정값으로 사용된다. 이웃 MV에 의해 생성된 예측 블록의 비용을 계산할 때 둥근 MV(정수 펠)는 실제로 실제 MV 대신 예측 블록을 획득하는 데 사용된다.
DMVR은 추가 신택스 요소의 전송 없이, 과거에 레퍼런스 픽처에서 하나의 MV와 다른 하나의 MV와 이중 예측의 병합 모드에 적용된다. JEM에서, CU에 대해 LIC, 아핀 모션, FRUC 또는 서브 CU 병합 후보가 활성화되면 DMVR이 적용되지 않는다.
2.11 JVET-N0236
이 기여는 광학 흐름으로 서브 블록 기반 아핀 모션 보상 예측을 구체화하는 방법을 제안한다. 서브 블록 기반 아핀 모션 보상이 수행된 후, 예측 샘플은 광학 흐름(PROF)을 사용하여 예측 정제라고 하는 광학 흐름 식에 의해 유도된 차이를 추가하여 정제된다. 제안된 메서드는 메모리 액세스 대역폭을 증가하지 않고도 픽셀 레벨 세분성으로 인터 예측을 달성할 수 있다.
모션 보상의 세분성을 달성하기 위해, 이 기여는 광학 흐름으로 예측을 보상하는 서브 블록 기반 아핀 모션을 구체화하는 방법을 제안한다. 서브 블록 기반 아핀 모션 보상이 수행된 후, 루마 예측 샘플은 광학 흐름 식에 의해 유도된 차이를 추가하여 정제된다. 제안된 PROF(광학 흐름을 위한 예측 정제)는 다음 4단계로 설명된다.
1단계) 서브 블록 기반 아핀 모션 보상이 수행되어 서브 블록 예측을 생성한다.
2단계) 서브 블록 예측의 공간 그레디언트 gx(I,j) 및 gy(I,j)은 3탭 필터[-1, 0, 1]를 사용하여 각 샘플 위치에서 계산된다.
서브 블록 예측은 그레디언트 계산을 위해 각 면에서 1픽셀씩 확장된다. 메모리 대역폭과 복잡성을 줄이기 위해 확장된 테두리의 픽셀은 레퍼런스 픽처에서 가장 가까운 정수 픽셀 위치에서 복사된다. 따라서 패딩 영역에 대한 추가 보간을 피할 수 있다.
3단계) 광학 흐름 식에 의해 계산되는 바와 같이 루마 예측 정제(로 표시됨).
여기서 델타 MV(로 표시됨)는 v(i,j)로 표시되는 샘플 위치(i,j)에 대해 계산된 픽셀 MV와 도 25에 도시된 바와 같이, 픽셀 (i,j)가 속하는 서브 블록의 서브 블록 MV사이의 차이이다.
아핀 모델 파라미터와 서브 블록 중심에 대한 픽셀 위치는 서브 블록에서 서브 블록으로 변경되지 않으므로, 는 제1 서브 블록에 대해 계산될 수 있으며 동일한 CU의 다른 서브 블록에 대해 재사용될 수 있다. x와 y를 픽셀 위치에서 서브 블록의 중심까지의 수평 및 수직 오프셋이라고 하자, 는 다음 식에 의해 유도될 수 있다:
4파라미터 아핀 모델의 경우
6 파라미터 아핀 모델의 경우
여기서 (v0x, v0y), (v1x, v1y), (v2x, v2y)는 왼쪽 상단, 오른쪽 상단 및 왼쪽 하단 제어점 모션 벡터이고, w 및 h는 CU의 너비와 높이이다.
단계 4) 마지막으로, 루마 예측 구체화가 서브 블록 예측 I(i, j)에 추가된다. 최종 예측I'는 다음 식으로 생성된다:
JVET-N0236의 일부 세부 사항
a) PROF의 그레디언트를 유도하는 방법
JVET-N0263에서 그레디언트는 각 레퍼런스 목록에 대해 각 서브 블록(VTM-4.0의 4Х4 서브 블록)에 대해 계산된다. 각 서브 블록에 대해, 레퍼런스 블록의 가장 가까운 정수 샘플은 샘플의 4측 외부 라인(도 23의 검은색 원)을 패딩 하기 위해 패치된다.
현재 서브 블록에 대한 MV가 (MVx, MVy)라고 가정한다. 그런 다음 분수 부분(FracX, FracY)==(MVx&15, MVy&15)로 계산된다. 정수 부분은 (IntX, IntY)==(MVx>>4, MVy>>4)로 계산된다. offset(OffsetX, OffsetY)은 다음과 같이 유도된다.
offsetX = FracX > 7 ? 1 : 0;
offsetY = FracX > 7 ? 1 : 0;
현재 서브 블록의 왼쪽 좌표가 (xCur, yCur) 및 현재 서브 블록의 치수는 WxH라고 가정한다.
그런 다음 (xCor0, yCor0), (xCor1, yCor1), (xCor2, yCor2) 및 (xCor3, yCor3)는 다음과 같이 계산된다:
(xCor0, yCor0) = (xCur+IntX+OffsetX-1, yCur+IntY+OffsetY-1);
(xCor1, yCor1) = (xCur+IntX+OffsetX-1, yCur+IntY+OffsetY+H);
(xCor2, yCor2) = (xCur+IntX+OffsetX-1, yCur+IntY+OffsetY);
(xCor3, yCor3) = (xCur+IntX+OffsetX+W, yCur+IntY+OffsetY);
x=0..W-1, y=0. H-1을 갖는 PredSample[x][y]가 서브 블록에 대한 예측 샘플을 저장한다고 가정하자. 그런 다음 패딩 샘플은:
PredSample[x][-1] = (Ref (xCor0+x, yCor0) << Shift0) - Rounding, x=-1..W;
PredSample[x][H] = (Ref (xCor1+x, yCor1) << Shift0) - Rounding, x=-1..W;
PredSample[-1][-1][y] = (Ref (xCor2, yCor2+y) << Shift0) - Rounding, y=0.H-1;
PredSample[W][y] = (Ref (xCor3, yCor3+y) << Shift0) - Rounding, y=0..H-1;
Rec가 레퍼런스 픽처를 나타내는 위치이다. 반올림은 예시적인 PROF 구현에서 213과 동일한 정수이다. Shift0 = Max(2, (14 - BitDepth));
PROF는 그레디언트가 입력 루마 샘플과 동일한 정밀도로 출력되는 VTM-4.0의 BIO와 달리 그레디언트의 정밀도를 높이려고 시도한다.
PROF의 그레디언트는 다음과 같이 계산된다.
Shift1 = Shift0-4.
gradientH [ x][ y] = (predSamples [ x + 1 ][y] - predSample [ x - 1 ][ y] ) >> Shift1
gradientV [ x][ y] = (predSample[ x ][ y + 1] - predSample [ x ][y - 1] ) >> Shift1
predSamples[x][y]는 보간 후 정밀도를 유지한다는 점에 유의해야 한다.
b) PROF를 위한 를 유도하는 방법
의 유도 (dMvH [posX][posY][posY][posX][posX][posY] [posY] [posY] 와 posY= 0..H-1) 아래와 같이 설명할 수 있다
현재 블록의 치수가 cbWidth Х cbHeight, 제어 점 모션 벡터의 수는 numCpMv이고, 제어 지점 모션 벡터는 cpIdx = 0.numCpMv - 1 및 X가 두 개의 레퍼런스 목록을 나타내는 0 또는 1인 cpMVX[cpIdx]라고 가정한다.
변수 log2CbW 및 log2CbH는 다음과 같이 유도된다:
log2CbW = Log2( cbWidth )
log2CbH = Log2( cbHeight )
변수 mvScaleHor, mvScaleVer, dHorX 및 dVerX는 다음과 같이 유도된다:
mvScaleHor = cpMvLX[ 0 ][ 0 ] << 7
mvScaleVer = cpMvLX[ 0 ][ 1 ] << 7
dHorX = ( cpMvLX[ 1 ][ 0 ] - cpMvLX[ 0 ][ 0 ] ) << ( 7 - log2CbW )
dVerX = ( cpMvLX[ 1 ][ 1 ] - cpMvLX[ 0 ][ 1 ] ) << ( 7 - log2CbW )
변수 dHorY 및 dVerY는 다음과 같이 유도된다:
numCpMv가 3과 같으면 다음이 적용된다:
dHorY = ( cpMvLX[ 2 ][ 0 ] - cpMvLX[ 0 ][ 0 ] ) << ( 7 - log2CbH )
dVerY = ( cpMvLX[ 2 ][ 1 ] - cpMvLX[ 0 ][ 1 ] ) << ( 7 - log2CbH )
그렇지 않으면 (numCpMv는 2와 같음) 다음과 같은 적용 :
dHorY = - dVerX
dVerY = dHorX
변수 qHorX, qVerX, qHorY 및 qVerY는
qHorX = dHorX << 2;
qVerX = dVerX << 2;
qHorY = dHorY << 2;
qVerY = dVerY << 2;
dMvH[0][0][0] 및 dMvV[0][0][0]는 다음과 같이 계산된다:
dMvH[0][0] = ((dHorX + dHorY) << 1) - ((qHorX + qHorY) << 1);
dMvV[0][0] = ((dVerX + dVerY) << 1) - ((qVerX + qVerY) << 1);
1에서 W-1까지의 xPos에 대한 dMvH[xPos][0] 및 dMvV[xPos][0]는 다음과 같이 유도된다:
dMvH[xPos][0] = dMvH[xPos-1][0] + qHorX;
dMvV[xPos][0] = dMvV[xPos-1][0] + qVerX;
1에서 H-1까지의 yPos의 경우 다음과 같은 것이 적용된다:
dMvH[xPos][yPos] = dMvH[xPos][yPos-1] + qHorY with xPos=0..W-1
dMvV[xPos][yPos] = dMvV[xPos][yPos-1] + qVerY with xPos=0..W-1
마지막으로, dMvH[xPos][yPos][yPos][xPos][yPos] [yPos] posX = 0.W-1, posY=0..H-1은 다음과 같이 오른쪽으로 이동
dMvH[xPos][yPos] = SatShift( dMvH[xPos][yPos], 7+2-1);
dMvV[xPos][yPos] = SatShift( dMvV[xPos][yPos], 7+2-1);
SatShift(x, n) 및 shift(x,n)는 다음과 같이 정의된 위치
shift(x,, n)=(x+ offset0)>>n
하나의 예에서, 오프셋0 및/또는 오프셋1은 (1<<n)>>1로설정된다.
a) PROF를 위한 를 유도하는 방법
서브 블록 내부의 위치(posX, posY)의 경우, 대응하는 는 (dMvH[posX][posY], dMvV[posX][posY]로 표시된다. 대응하는 그레디언트는 (gradientH[posX][posY], gradientV[posX][posY]로 표시된다.
그런 다음 (posX, posY)는 다음과 같이 유도된다.
(dMvH[posX][posY], dMvV[posX][posY]는 다음과 같이 클리핑 된다
dMvH[posX][posY] = Clip3( -32768, 32767, dMvH[posX][posY]);
dMvV[posX][posY] = Clip3( -32768, 32767, dMvV[posX][posY]);
(posX, posY)= dMvH[posX][posY] Х gradientH[posX][posY] + dMvV[posX][posY] Х gradientV[posX][posY];
(posX, posY) = Shift((posX, posY), 1+1+4);
(posX, posY) = Clip3( -(213-1), 213-1, (posX, posY));
b) PROF를 위한 I를 유도하는 방법
현재 블록이 이중 예측 또는 가중 예측으로 코딩 되지 않은 경우
I'(posX, posY) = Shift((I(posX, posY) + (posX, posY)), Shift0),
I'(posX, posY) = ClipSample (I'(posX, posY)),
여기서 ClipSample은 샘플 값을 유효한 출력 샘플 값으로 클립 한다.
그런 다음 I'(posX, posY)는 인터 예측 값으로 출력된다.
그렇지 않으면(현재 블록은 이중 예측 또는 가중 예측으로 코딩 된다)
I'(posX, posY)는 저장되어 다른 예측 값 및/또는 가중치값에 따라 인터 예측 값을 생성하는 데 사용된다.
2.12 JVET-N0510
JVET-N0510에서는 위상 변형 아핀 서브 블록 모션 보상(MC)이 제안된다. 종래의 2단계 수평 수직 보간이 적용된다. 그러나 모든 샘플 행에 대해 동일한 가로 필터와 모든 샘플 열에 대해 동일한 수직 필터를 사용하는 위상 불변 블록 기반 MC와 달리, 다른 단계의 필터는 아핀 서브 블록의 다른 샘플 행 및 다른 샘플 열에 적용될 수 있다.
아핀 서브 블록에서 아핀 모션 모델을 더 잘 근사화하기 위해 위상 변형 MC가 서브 블록에 적용된다. 제안된 방법에서, 아핀 코딩 블록은 또한 4Х4 서브 블로 나뉘며, 서브 블록 MV는 VTM4.0에서 와 같이 각 서브 블록에 대해 유도된다. 각 서브 블록의 MC는 두 스테이지로 나뉜다. 제1 스테이지는 (4+L-1)Х(4+L-1) 레퍼런스 블록 창을 가로 필터링(4+L-1) 행의 가로 필터링으로 필터링하는 것이다. 그러나, 전이 MC(translational MC)와는 달리, 제안된 위상 변이 아핀 서브 블록 MC에서, 각 샘플 행의 필터 위상은 다르다. 각 샘플 행에 대해 MVx는 다음과 같이 유도된다:
MVx = (subblockMVx<<7 + dMvVerXХ(rowIdx - L/2 - 2)) >>7
각 샘플 행의 필터 위상은 MVx에서 유도된다. 서브 블록 MVx는 VTM4.0에서와 같이 유도 서브 블록 MV의 MV의 x 구성 요소이다. rowIdx는 샘플 행 인덱스이다. dMvVerX는 (cuBottomLeftCPMVx - cuTopLeftCPMVx) << (7 - log2LumaCbHeight)이고, 여기서 cuBottomLeftCPMVxCU 하단 왼쪽 제어 점 MV의 x 구성 요소, cuTopLeftCPMVx는 CU 상단 왼쪽 제어 점 MV의 x 구성 요소이며, LumaCbHeight는 루마 코딩 블록의 높이의 로그 2이다.
수평 필터링 후 가로 필터링된 4Х(4+L-1) 샘플이 생성된다. 도 26은 제안된 수평 필터링의 개념을 나타낸다. 회색 점은 레퍼런스 블록 창의 샘플이며 주황색 점은 가로로 필터링된 샘플을 나타낸다. 8Х1 샘플의 파란색 튜브는 각각 도 26 및 도 27에 도시된 바와 같이 8탭 수평 필터링을 한 번 적용하는 것을 나타낸다. 각 샘플 행은 수평 필터링 네 번이 필요하다. 샘플 행의 필터 단계는 동일하다. 그러나 다른 행의 필터 단계는 다르다. 4Х11 개의 샘플이 생성된다.
두 번째 스테이지에서, 4Х(4+L-1) 수평 필터링 샘플(도 26의 주황색 샘플)이 더 수직으로 필터링 된다. 각 샘플 열에 대해 MVy는 다음과 같이 유도된다.
MVy = (subblockMVy<<7 + dMvHorYХ(columnIdx - 2)) >>7 (식(2))
각 샘플 컬럼의 필터 단계는 MVy에서 유도된다. 서브 블록MVy는 VTM4.0에서 와 같이 유도 서브 블록 MV의 MV의 y 컴포넌트이다. 열Idx는 샘플 열 인덱스이다. dMvHorY는 (cuTopRightCPMVy - cuTopLeftCPMVy) << (7 - log2LumaCbWidth)이고, 여기서 cuTopRightCPMVyCU 상단 오른쪽 제어 점 MV의 y 구성 요소, cuTopLeftCPMVy는 CU 상단 왼쪽 제어 점 MV의 y 구성 요소이며, log2LumaCb너비는 루마 CB의 너비의 로그2이다.
수직 필터링 후 4Х4 개의 아핀 서브 블록 예측 샘플이 생성된다. 도 28은 제안된 수직 필터링의 개념을 나타낸다. 밝은 주황색 점은 제1 단계에서 수평으로 필터링 된 샘플이다. 빨간색 점은 최종 예측 샘플로 수직으로 필터링 된 샘플이다.
이 제안서에서 사용된 보간 필터 세트는 VTM4.0의 필터 세트와 동일하다. 유일한 차이점은 한 샘플 행의 수평 필터 단계가 다르고 한 샘플 열의 세로 필터 단계가 다르다는 것이다. 제안된 방법에서 각 아핀 서브 블록에 대한 필터링 작업의 수는 VTM4.0과 동일하다.
3. 기존 구현의 단점
일부 기존 구현은 다음과 같은 단점으로 인해 발생한다.
(1) 그레디언트 계산 방법은 BDOF 및 PROF에서 동일하지 않는다.
(a) BDOF에서 그레디언트는 전체 블록에 대해 계산되고 패딩이 한 번 수행된다. PROF에서 그레디언트는 각 서브 블록에 대해 계산되고 패딩이 N 번 수행된다고 가정한다(N 서브 블록이 있다고 가정).
(b) PROF는 BDOF보다 그레디언트에 대해 더 높은 정밀도를 요구한다.
(2) PROF와 다른 툴 사이의 상호 작용은 불분명하다.
(3) 크로마 컴포넌트에 PROF를 적용하는 방법은 불분명한다.
(4) 의 유도 과정이 올바르지 않을 수 있다.
(5) PROF는 더 높은 코딩 성능을 위해 조건부로 수행될 수 있다.
(6) JVET-N0236 및 JVET-N0510의 방법을 결합하는 방법은 불분명하다.
(7) dMvH 및 dMvV의 비트 너비가 너무 클 수 있다.
4. 광학 흐름으로 예측 정제를 위한 예제 방법(PROF)
현재 개시된 기술의 실시예는 기존 구현의 단점을 극복하고, 따라서 더 높은 코딩 효율성을 가진 비디오 코딩을 제공한다. 개시된 기술에 기초하여 광학 흐름을 통해 예측 정제를 위한 방법은, 기존 및 미래의 비디오 코딩 표준을 모두 향상시킬 수 있으며, 다양한 구현에 대해 설명된 다음 예에서 설명된다. 아래에 제공된 개시된 기술의 예는 일반적인 개념을 설명하고 제한으로 해석되지 않는다. 예를 들어, 반대로 명시적으로 표시되지 않는 한, 이러한 예에 기재된 다양한 피쳐가 결합될 수 있다.
목록 0에서 현재 픽처의 레퍼런스 픽처를 나타내고 Ref0 및 Ref1에 의해 각각 1을 나타내며, τ0=POC (현재) - POC (Ref0), τ1= POC (Ref1) - POC (현재) 및 Refblk0 및 refblk1에 의해 현재 블록의 레퍼런스 블록을 나타낸다. 현재 블록의 서브 블록의 경우 refblk0에서 대응하는 서브 블록의 MV가 refblk1을 가리키는 것으로 표시된다(vx, vy). Ref0 및 Ref1의 서브 블록의 MV는 각각 (mvL0x, mvL0y)및 (mvL1x, mvL1y)에 의해 표시된다.
shift(x, s)는 shift(x, s) = (x+ off) >>
SignShift(x, s)는 다음과 같이 정의된다
예를 들어 오프셋0 및/또는 오프셋1은 (1<<n) >>1 또는 (1<<(n-1)로 설정된다. 또 다른 예에서는 오프셋0 및/또는 오프셋1이 0으로 설정된다. 또 다른 예에서 오프셋0 = 오프셋1 =(((1<<n)>>1)-1또는 ((1<<(n-1))-1)-1이다.
Clip3(x, 최소, 최대)는 다음과 같이 정의된다
본원에서, Max(a, b) = a>=b? a : b, 및 Min(a, b) = a< =b ? a : b 이다.
다음 논의에서, 두 모션 벡터 사이의 작업은 모션 벡터의 두 구성 요소에 작업이 적용될 것임을 의미한다. 예를 들어, MV3=MV1+MV2는 MV3x=MV1 x +MV2x 및 MV3y=MV1y+MV2y와 동일하며, 작업은 두 모션 벡터의 수평 또는 수직 구성 요소에만 적용될 수 있다. MV(MVx, MVy)의 용어 "절대값"은 abs(MVx), 또는 abs(MVy), 또는 max(abs(MVx), abs(MVy)) 또는 abs(MBx) 또는 abs(MVy) 또는 abs(MVy)을 참조할 수 있으며, 함수 abs(x)은 x의 절대 값을 반환하고, 함수 max(x, y)는 x 및 y 중 더 큰 것을 반환한다.
다음 토론에서, 왼쪽 이웃 블록, 왼쪽-하단 이웃 블록, 이웃 블록 위쪽, 오른쪽 위쪽의 이웃 블록 및 왼쪽 위쪽의 이웃 블록은 도 2에 도시된 바와 같이 블록 A1, A0, B1, B0 및 B2로 표시된다.
1. PROF의 그레디언트 계산은 아핀 모드에서 모션 보상에 사용되는 서브 블록 크기와 다른 MХN 영역 레벨에서 수행될 수 있음을 제안한다.
a. 하나의 예에서, PROF의 그레디언트 계산은 서브 블록보다 큰 MХN 영역에 대해 수행될 수 있다.
b. 하나의 예에서, M과 N은 미리 정의된 숫자(예를 들어, M=N=8 또는 M=N=16)일 수 있다.
c. 하나의 예에서, M과 N은 서브 블록 크기의 너비/높이에 따라 정의된 숫자일 수 있다(예를 들어, M=N=2*Wmc)는 Wmc가 모션 보상에 사용되는 서브 블록 크기의 너비/높이이다.
d. PROF의 그레디언트를 유도하는 데 사용되는 패딩 프로세스는 MХN 영역 레벨에서 수행된다.
e. 위의 모든 예제에서 M 및 N의 정의는 다음과 같다.
i. 하나의 예에서, K0은 정수 값인 M= 최소(K0, 블록 너비)이다.
ii. 하나의 예에서, K0은 정수 값인 N=min(K1, 블록 높이)이다.
iii. 위의 예의 경우 K0 =K1 = 16이다.
iv. 하나의 예에서, K0과 K1은 BDOF에 사용되는 것과 정렬된다.
f. 제1 서브 블록내의 제1 샘플의 그레디언트는 제2 서브 블록에서 제2 샘플로 유도될 수 있다.
i. 하나의 예에서, 두 번째 서브 블록은 제1 서브 블록에 인접한다.
ii. 하나의 예에서, 두 번째 샘플은 제1 서브 블록 또는 두 번째 서브 블록에 있을 때와 같은 방식으로 제1 샘플의 그레디언트를 유도하는 데 사용된다.
iii. MХN이 서브 블록보다 크면 위의 방법이 적용될 수 있다.
g. 하나 또는 다중 MV는 각 MХN 영역에 대한 패딩 프로세스에 대해 유도될 수 있다.
i. 하나의 예에서, 하나의 특정 MV는 MХN 영역에 대한 패딩 프로세스에 대해 유도된다. 정수 레퍼런스 샘플은 특정 MV와 함께 위치한 다음 MХN 영역에서 샘플을 패딩 하는 데 사용될 수 있다.
(i) 하나의 예에서, 특정 MV는 MХN 영역의 상부 좌측 모서리 서브 블록 또는 중앙 서브 블록과 같은 MХN 영역에서 하나의 서브 블록중 하나의 MV일 수 있다. 도 31은 예를 나타낸다. 서브 블록 A, B, C, D 또는 E의 MV는 특정 MV로 선택될 수 있다.
(ii) 하나의 예에서, 특정 MV는 MХN 영역의 특정 위치(예를 들어, 가운데)를 향한 아핀 모델로부터 유도될 수 있다.
(iii) 하나의 예에서, 특정 MV는 MХN 영역에서 서브 블록의 MV로부터 유도될 수 있다.
a. 예를 들어, 특정 MV는 MХN 영역내의 모든 서브 블록의 MV의 평균으로 유도될 수 있다.
b. 예를 들어, 특정 MV는 중심 서브 블록의 여러 MV의 평균으로 유도될 수 있다.
i. 예를 들어, 특정 MV는 도 31에서 B, C, D 및 E의 여러 MV의 평균으로 유도될 수 있다.
ii. 예를 들어, 특정 MV는 도 31에서 B의 여러 MV 및 E의 평균으로 유도될 수 있다.
iii. 예를 들어, 특정 MV는 도 31에서 C의 여러 MV 및 D의 평균으로 유도될 수 있다.
c. 예를 들어, 특정 MV는 여러 MV(예를 들어, CPMV 또는 서브 블록의 MV)의 함수로 유도될 수 있다.
ii. 하나의 예에서, 여러 MV는 MХN 영역에 대한 패딩 프로세스에 대해 유도된다. 정수 레퍼런스 샘플은 여러 MV 중 하나와 함께 위치한 다음 MХN 영역에서 샘플을 패딩 하는 데 사용될 수 있다.
(i) 하나의 예에서, MХN 영역의 제1 서브 블록에 제1 샘플을 패딩할 때, 제1 서브 블록의 제1 MV가 제1 샘플을 패딩 하는 데 사용되는 정수 레퍼런스 샘플을 찾는 데 사용될 수 있다.
iii. 위의 방법은 MХN이 서브 블록보다 크면 적용되며, PROF의 그레디언트를 유도하는 데 사용되는 패딩 프로세스는 각 MХN 영역에 대해 수행된다.
2. PROF/BIO의 그레디언트 계산은 MХN 영역 레벨에서 수행될 수 있으며 M/N은 적응적으로 변경될 수 있다.
a. 하나의 예에서, M 및 N은 현재 블록의 차원 WХH에 따라 달라질 수 있다.
i. 예를 들어, 영역은 전체 현재 블록, 즉 .M=W 및 N=H일 수 있다.
ii. 예를 들어 T1및 T2가 정수인 M=W/T1 및 N=H/T2(예를 들어, T1=T2=2).
iii. 하나의 예에서, M 및/또는 N은 VPS/DPS/SPS/PPS/APS/슬라이스 헤더/타일 그룹 헤더/타일/CTU/CU와 같은 디코더로 인코더에서 시그널링 될 수 있다.
(i) 또는 M 및/또는 N은 비디오 코딩 표준의 프로파일/레벨/계층에 지정될 수 있다.
iv. 하나의 예에서, M=Min(W, T1) 및 N =Min(H, T2). 예를 들어 T1=T2=16.
(i) 하나의 예에서, T1 및/또는 T2는 VPS/DPS/SPS/PPS/APS/슬라이스 헤더/타일 그룹 헤더/타일/CTU/CU와 같은 디코더로 인코더에서 시그널링 될 수 있다.
(ii) 또는 T1 및/또는 T2는 비디오 코딩 표준의 프로파일/레벨/계층에 지정될 수 있다.
3. 위의 방법의 경우 다음이 더 적용될 수 있다.
a. 하나의 예에서, M은 적어도 Mmin과 동일하며 N은 적어도 Nmin과 동일하다(예를 들어, Mmin=Nmin=8).
b. 하나의 예에서, 패딩 프로세스는 각 MХN 영역에 대해 한 번 수행되어 dM=dN=2와 같은 패딩(M+dM) Х(N+dN) 영역을 얻다.
i. 하나의 예에서, 영역 내의 샘플(예를 들어, 도 23의 백색 원)은 보간 필터링을 통해 모션 보상으로부터 유도될 수 있다.
(i) 하나의 예에서, 영역 내부의 샘플은 영역에서 여러 서브 블록에 대한 모션 보상으로부터 유도될 수 있다.
ii. 하나의 예에서, 샘플의 4개의 외부 선(예를 들어, 도 23의 검은 원)이 패딩 될 수 있다.
(i) 하나의 예에서, 패딩 되는 샘플은 레퍼런스 블록에서 가장 가까운 정수 샘플의 강도를 복사할 수 있다.
(ii) 하나의 예에서, 패딩 되는 샘플은 패딩 되지 않은 영역에서 가장 가까운 샘플의 강도를 복사할 수 있다.
4. PROF/BIO의 그레디언트 계산이 적용되는 각 영역마다 각 샘플에 대한 그레디언트 값을 계산하는 대신 샘플의 일부를 기준으로 그레디언트를 계산하는 것이 제안된다.
a. 하나의 예에서, 주어진 좌표에서 샘플과 관련된 그레디언트는 PROF/BIO, 예를 들어(2x, y) 또는 (x, 2y) 또는 (2x+1, 2y+1) 또는 (2x, 2y) 즉(m, n)에서 현재 블록의 왼쪽 상부 샘플에 대한 좌표이다.
b. 하나의 예에서, 샘플은 먼저 변형될 수 있다(예를 들어, 다운샘플링) 및 변형된 샘플은 그레디언트를 유도하는 데 사용될 수 있다.
5. BDOF 및 PROF에서 계산된 그레디언트 값의 정밀도가 동일할 수 있음을 제안한다.
a. 하나의 예에서, 샘플 차이는 동일한 값으로 이동될 수 있다.
i. 하나의 예에서, 수평 및 수직 그레디언트(gradientH, gradientV에 의해 각각 표시)은 다음과 같은 방식으로 계산될 수 있다.
gradientH [ x][ y] = (predSamples [ x + 1 ][y] - predSample [ x - 1 ][ y] ) >> shift0
gradientV [ x][ y] = (predSample[ x ][ y + 1] - predSample [ x ][y - 1] ) >> Shift1
또는
gradientH [ x][ y] = shift(predSamples [ x + 1 ][y] - predSample [ x - 1][ y] = shift0)
gradientV [ x ][ y ]  =  Shift((predSample[ x ][ y + 1 ] - predSample [ x ][y - 1 ] ), Shift1)
또는
gradientH [ x][ y] = SatShift ((predSamples [ x + 1 ][y] - predSample [ x - 1 ][ y] = shift0)
gradientV [x][ y] = SatShift (((predSample[ x][ y + 1] - predSample [x][y - 1] = Shift1)
ii. 하나의 예에서, 수평 및 수직 그레디언트(gradientH, gradientV에 의해 각각 표시)은 다음과 같은 방식으로 계산될 수 있다.
gradientH [ x][ y] = (predSamples [x][y] *2 - predSamples [x +1][y] - predSample [x-1][y] ) >> shift0
gradientV [ x][ y] = (predSamples [x][y] *2 - predSample[x][y+1] - predSample [x][y-1] ) >> Shift1
또는
gradientH [ x][ y] = shift (predSamples [ x ][y] *2 - predSamples [x +1][y] - predSample [x-1][y]), Shift0)
gradientV [ x][ y] = shift (predSamples [ x][y] *2 - predSample[x][y+1] - predSample [x][y-1]
또는
gradientH [ x][ y] = SatShift ((predSamples [x][y] *2 - predSample [x+1][y] - predSample [x-1][y]
gradientV [ x][ y] = SatShift ((predSamples [ x][y] *2 - predSample[x][y+1] - predSample [x][y-1]
iii. 하나의 예에서, Shift0 및/또는 Shift1은 Max(2, (14 - BitDepth)로 설정될 수 있으며, 여기서 BitDepth는 재구성된 샘플/입력 샘플의 비트 심도이다.
6. 샘플의 외부 라인을 메우기 위한 다음 방법(도 23의 검은 원과 같은 패딩 샘플로 표시)은 PROF, 또는 BIO, 또는 PROF 및 BIO 모두에 적용될 수 있다.
a. 패딩 샘플은 PROF 및/또는 BIO에 대해 동일한 방법으로 패딩 될 수 있다. "동일한 방법"은 아래에 공개된 모든 패딩 방법일 수 있다.
b. 하나의 예에서, 패딩 샘플은 PROF 및/또는 BIO에 대한 레퍼런스 픽처에서 정수 샘플로부터 유도(예를 들어 복사)될 수 있다.
i. 하나의 예에서, 패딩 샘플을 유도시키는 데 사용되는 정수 샘플은 추가 작업에서 정수 MV로 반올림될 수 있는 MV를 추가하는 패딩 샘플의 위치에 의해 위치될 수 있다.
(i) 하나의 예에서, MV(MvX, MvY)는 바닥 정수 MV(IntX, IntY)로 반올림될 수 있다. 예를 들어, IntX=MvX>>P, IntY=MvY>>P, P는 MV 정밀도이다.
(ii) 하나의 예에서, MV(MvX, MvY)는 가장 가까운 정수 MV(IntX, IntY)로 반올림될 수 있다. 예를 들어 FracX=MvX 및((1<<P)-1), FracY=MvY 및 ((1<<P) -1), OffX =(FracX >=(1<<(P-1)))를 설정합니까? 1: 0, OffY = (FracY >= (1<<(P-1))) ? 1: 0, P는 MV 정밀도, 다음 IntX =(MvX>>P)+OffX, IntY=(MvY>>P)+OffY. HalfFrac는 1<<(P-1)와 같을 수 있으며, 다른 예에서는 (1<<(P-1))-1 또는 (1<<(P-1))+1과 같을 수 있다.
(iii) 하나의 예에서, MV(MvX, MvY)는 IntX=SatShift(MvX, P), IntY=SatShift(MvY, P)로 정수 MV(IntX, IntY)로 반올림될 수 있다.
(iv) 위의 글머리 기호에서 MV 정밀도 P는 컬러 형식 및/또는 컬러 컴포넌트에 따라 달라질 수 있다.
a. 예를 들어, Cb/Cr 구성 요소에 대한 MV 정밀도는 루마 컴포넌트에 대한 MV 정밀도와 4:2:0 컬러 형식을 가진 K와 같을 수 있다. 예를 들어. K는 1과 같을 수 있다.
(v) 패딩을 수행하는 방법은 VPS/DPS/SPS/PPS/슬라이스 헤더/타일 그룹 헤더/타일/CTU/CU와 같이 인코더에서 디코더로 신호를 받을 수 있다.
a. 또는 패딩을 수행하는 방법은 비디오 코딩 표준의 프로파일/레벨/계층에 지정될 수 있다.
(vi) 패딩을 수행하는 방법은 블록 치수에 따라 달라질 수 있다.
7. PROF가 적용될 때 코딩 툴 X를 적용할 수 없다.
a. 또는 코딩 툴 X가 적용되면 PROF를 적용할 수 없다.
b. 하나의 예에서, 코딩 툴 X를 적용할 수 없는 경우 코딩 툴 X를 나타내는 신택스 요소(들)가 신호를 받지 못할 수 있다.
c. 하나의 예에서, 코딩 툴 X는 GBI(일반화된 Bi 예측)일 수 있다.
i. 예를 들어 GbiIdx가 0과 같지 않은 경우 PROF가 적용되지 않는다.
ii. 또는 PROF가 적용될 때 GbiIdx는 0이어야 한다.
iii. 또는, PROF가 적용될 때, GbiIdx는 시그널링 되지 않으며 0으로 유추되지 않는다.
iv. 또는, PROF가 적용될 때 GbiIdx가 0과 같든 아니든 GBI가 적용되지 않는다.
d. 하나의 예에서, 코딩 툴 X는 로컬 조명 보상일 수 있다.
e. 하나의 예에서, 코딩 툴 X는 MTS(다중 변환 세트)일 수 있다.
i. 예를 들어 PROF가 적용되면 기본 변환만 적용할 수 있다.
(i) 예를 들어 PROF가 적용되면 MTS와 관련된 신택스 요소가 적용되지 않는다.
f. 하나의 예에서, 코딩 툴 X는 가중 예측일 수 있다.
i. 예를 들어 가중치 예측으로 인한 동일하지 않은 가중치 및/또는 동일하지 않은 오프셋이 한 블록에 적용되는 경우 PROF가 적용되지 않는다.
8. PROF를 적용하는 방법은 별도의 평면 코딩의 컬러 형식 및/또는 사용에 따라 달라질 수 있음을 제안된다.
a. 하나의 예에서, 컬러 형식이 4:0:0인 경우 크로마 컴포넌트에 PROF를 적용할 수 없다.
b. 하나의 예에서, 컬러 포맷이 4:4:4인 경우 PROF가 크로마 컴포넌트에 적용될 수 있다.
c. 하나의 예에서, 컬러 형식이 4:0:0과 같지 않은 경우 크로마 컴포넌트에 PROF가 적용될 수 있다.
d. 하나의 예에서, 델타 MV를 유도하는 방법(예를 들어, 섹션 2.11의 )은 컬러 형식에 따라 달라질 수 있다.
9. PROF를 적용하는 방법은 컬러 컴포넌트에 따라 달라질 수 있음을 제안한다.
a. 하나의 예에서, 그레디언트는 각 컬러 컴포넌트에 대해 독립적으로 계산될 수 있다.
i. 또는 제1 컬러 컴포넌트에 대해 계산된 그레디언트는 제2 컬러 컴포넌트에 의해 사용될 수 있다.
ii. 또는 그레디언트는 루마/주 컬러 컴포넌트에 대해 두 번, 다른 하나는 두 크로마/종속 컬러 컴포넌트에 대해 계산될 수 있다.
b. 하나의 예에서, 델타 MV(예를 들어, 섹션 2.11의 )는 각 컬러 컴포넌트에 대해 독립적으로 계산될 수 있다.
i. 또는 제1 컬러 컴포넌트에 대해 계산된 델타 MV는 제2 컬러 컴포넌트에 의해 사용될 수 있다.
c. 하나의 예에서, 예측 정제(예를 들어, 섹션 2.11의 )는 각 컬러 컴포넌트에 대해 독립적으로 계산될 수 있다.
i. 대안적으로, 제1색 컴포넌트에 대해 계산된 예측 정제(예를 들어, 제2색 컴포넌트의 )는 제2컬러 컴포넌트에 의해 사용될 수 있다.
d. 하나의 예에서, PROF의 그레디언트의 정밀도는 컬러 컴포넌트에 따라 달라질 수 있다.
e. 하나의 예에서, PROF의 델타 MV(예를 들어, 섹션 2.11의 )의 정밀도는 컬러 컴포넌트에 따라 달라질 수 있다.
f. 하나의 예에서, PROF에서 클리핑 작업을 수행할지 여부와 방법은 컬러 컴포넌트에 따라 달라질 수 있다.
g. 하나의 예에서, PROF에서 이동 작업을 수행하는 지 여부와 방법은 컬러 컴포넌트에 따라 달라질 수 있다.
h. 하나의 예에서, PROF는 루마 컴포넌트에만 적용될 수 있다.
i. 하나의 예에서, PROF는 상이한 서브 블록 크기로 다른 컬러 컴포넌트에 적용될 수 있다.
i. 또는, PROF는 동일한 서브 블록 크기로 다른 컬러 컴포넌트에 적용될 수 있다.
j. 하나의 예에서, PROF는 M*N 서브 블록 크기의 크로마 컴포넌트에 적용될 수 있다.
i. 예를 들어 M과 N은 4와 동일하게 설정된다.
k. 위의 방법(bullet h-j)은 컬러 형식(예를 들어, 4:2:0 또는 4:4:4)에 더 의존할 수 있다.
10. 델타 MV(예를 들어, 섹션 2.11의 )의 유도는 서브 블록의 너비 및/또는 높이에 따라 달라질 수 있음을 제안된다.
a. 하나의 예에서, dMvH[0][0][0] 및 dMvV[0][0][0]로 계산된다.
qHorX = dHorX * P0;
qVerX = dVerX * P0;
qHorY = dHorY * P0;
qVerY = dVerY * P0;
dMvH[0][0][0] = ((iDMvHorX+iDMvVerX) * P1) -(quadHorX * (블록 너비>>1) + quadVerX * (블록 높이 * P1));
dMvV[0][0][0] = ((iDMvHorY+iDMvVerY) *P1) -(quadHor* (블록 너비>>1) + quadVer * (블록 높이 * P1));
여기서 블록 너비및 블록높이는 각각 서브 블록의 너비와 높이를 나타낸다. P0 및 P1은 정밀도를 제어하는 두 숫자이다.
i. 예를 들어 P0=4 및 P1=2 다음 dMvH[0][0][0] 및 dMvV[0][0]로 계산된다.
qHorX = dHorX << 2;
qVerX = dVerX << 2;
qHorY = dHorY << 2;
qVerY = dVerY << 2;
dMvH[0][0][0] = ((iDMvHorX + iDMvVerX) << 1) -(quadHorX * (블록 너비 >> 1) + quadHorX * (블록 높이 >> 1));
dMvV[0][0][0] = ((iDMvHorY + iDMvVerY) << 1) -(quadHorY * (블록 너비 >> 1) + quadVerY * (블록 높이 >> 1));
11. 부호형 코드 블록의 경우, PROF는 항상 적용되는 대신 조건부로 수행될 수 있음을 제안된다.
a. 하나의 예에서, PROF를 수행하는 지 여부와 방법은 현재 블록의 차원 WХH에 따라 달라질 수 있다.
i. 예를 들어, W<=T1 및/또는 H<=T2,T1=T2=16과 같은 경우 PROF가 적용되지 않을 수 있다.
ii. 예를 들어, W<T1 및/또는 H<T2,T1=T2=16과 같은 경우 PROF가 적용되지 않을 수 있다.
iii. 예를 들어, W>=T1 및/또는 H>=T2, 예를 들어, T1=T2=64와 같은 PROF가 적용되지 않을 수 있다.
iv. 예를 들어, W>T1 및/또는 H>T2,T1=T2=64와 같은 경우 PROF가 적용되지 않을 수 있다.
v. 예를 들어 W*H>T1(예를 들어, T1= 64*64)의 경우 PROF가 적용되지 않을 수 있다.
vi. 예를 들어 W*H>=T1(예를 들어, T1= 64*64)의 경우 PROF가 적용되지 않을 수 있다.
vii. 예를 들어 W*H<T1(예를 들어, T1= 16*16)이 적용되지 않을 수 있다.
viii. 예를 들어 W*H<=T1(예를 들어, T1= 16*16)이 면 PROF가 적용되지 않을 수 있다.
ix. 예를 들어, PROF가 최소(W, H)>=T1(예를 들어, T1= 64)이 적용되지 않을 수 있다.
x. 예를 들어, PROF가 최소(W, H)>T1 과 같은 T1= 64)를 적용하지 않을 수 있다.
xi. 예를 들어, max(W, H)<=T1(예를 들어, T1= 16)이 면 PROF가 적용되지 않을 수 있다.
xii. 예를 들어, max(W, H)<T1(예를 들어, T1= 16)이 적용되지 않을 수 있다.
b. 하나의 예에서, PROF를 수행하는 지 여부 및/또는 방법은 제어점 모션 벡터에 따라 달라질 수 있다.
c. 하나의 예에서, PROF를 수행하는 방법 및/또는 아핀 파라미터의 수에 따라 달라질 수 있다.
i. 4 파라미터 아핀 모델의 경우
,
PROF를 수행하는 지 여부와 방법은 파라미터 ab에따라 달라질 수 있다.
ii. 4 파라미터 아핀 모델의 경우
,
PROF를 수행하는 지 여부와 방법은 파라미터 b,, c 및 d에 따라 달라질 수 있다.
iii. 하나의 예에서, 최대 아핀 파라미터가 임계값보다 작거나 크지 않은 경우 PROF가 적용되지 않을 수 있다.
(i) 또는, 모든(예를 들어, 4또는 6) 아핀 파라미터가 임계값보다 작거나 크지 않은 경우 PROF가 적용되지 않을 수 있다.
(ii) 또는 임계값보다 하나 이상의 아핀 파라미터가 작거나 크지 않은 경우 PROF가 적용되지 않을 수 있다.
iv. 하나의 예에서, 아핀 파라미터의 절대 값의 최대 값이 임계값보다 작거나 크지 않은 경우 PROF가 적용되지 않을 수 있다.
(i) 또는 모든 아핀 파라미터의 절대 값이 임계값보다 작거나 크지 않은 경우 PROF가 적용되지 않을 수 있다.
(ii) 또는 모든 아핀 파라미터의 절대 값 중 하나 이상이 임계값보다 크거나 작지 않은 경우에만 PROF를 적용할 수 있다.
v. 하나의 예에서, 최소 아핀 파라미터가 임계값보다 크거나 작지 않은 경우 PROF가 적용되지 않을 수 있다.
(i) 또는, 모든(예를 들어, 4또는 6) 아핀 파라미터가 임계값보다 크거나 작지 않은 경우 PROF가 적용되지 않을 수 있다.
(ii) 또는 임계값보다 하나 이상의 아핀 파라미터가 더 크거나 작지 않은 경우 PROF가 적용되지 않을 수 있다.
vi. 하나의 예에서, 아핀 파라미터의 절대 값의 최소 값이 임계값보다 크거나 작지 않은 경우 PROF가 적용되지 않을 수 있다.
(i) 또는 모든 아핀 파라미터의 절대 값이 임계값보다 크거나 작지 않은 경우 PROF가 적용되지 않을 수 있다.
(ii) 또는, PROF는 아핀 파라미터의 절대 값 중 하나 이상이 임계값보다 작거나 크지 않은 경우에만 적용될 수 있다.
vii. 하나의 예에서, JVET-N0236에 개시된 델타 MV의 "절대값"의 최대 값이 임계값보다 작거나 크지 않은 경우 PROF가 적용되지 않을 수 있다.
(i) 또는 모든 델타 MV의 "절대 값"이 임계값보다 작거나 크지 않은 경우 PROF가 적용되지 않을 수 있다.
(ii) 또는 델타 MV의 "절대 값" 중 하나 이상이 임계값보다 크거나 작지 않은 경우에만 PROF를 적용할 수 있다.
viii. 하나의 예에서, 델타 MV의 "절대 값"의 최소 값이 임계값보다 크거나 작지 않은 경우 PROF가 적용되지 않을 수 있다.
(i) 또는 모든 델타 MV의 "절대 값"이 임계값보다 크거나 작지 않은 경우 PROF가 적용되지 않을 수 있다.
(ii) 또는 델타 MV의 "절대 값" 중 하나 이상이 임계값보다 크거나 작지 않은 경우에만 PROF를 적용할 수 있다.
ix. 하나의 예에서, PROF는 특정 위치에 적용될 수 있다.
(i) 예를 들어, 대응하는 델타 MV의 "절대 값"이 임계값보다 작거나 크지 않은 경우 PROF가 위치에 적용될 수 있다.
(ii) 예를 들어, 대응하는 델타 MV의 "절대 값"이 임계값보다 크거나 작지 않은 경우 PROF가 위치에 적용될 수 있다.
x. 하나의 예에서, 아핀 파라미터는 JVET-M1001에 설명된 바와 같이 특정 정밀도로 정수 dHorX, dVerX, dHorY 및 dVerY로 표현될 수 있다.
xi. 하나의 예에서, 임계값은 비트 심도에 따라 달라질 수 있다.
(i) 하나의 예에서, 임계값은 1<<BitDepth로 유도될 수 있다.
(ii) 또는, 또한 임계값은 이중 예측 또는 단일 예측이 적용되는지 여부에 따라 달라질 수 있다.
a. 예를 들어 임계값은 (1<<BitDepth)+(Bi-예측)로 유도될 수 있습니까? 1: 0).
xii. 하나의 예에서, 항목(bullet) 11에 개시된 방법을 적용하는 방법 및/또는 방법은 레퍼런스 픽처 구조에 따라 달라질 수 있다.
(i) 예를 들어, 현재 픽처의 모든 레퍼런스 픽처가 디스플레이 순서로 현재 픽처 앞에 있는 경우, 즉 모든 레퍼런스 픽처의 POC가 현재 픽처의 POC보다 작으면, 개시된 방법 중 하나 또는 다중이 적용되지 않을 수 있다.
(ii) 또는, 항목(bullet) 11에 개시된 방법을 적용하는 방법 및/또는 방법은 슬라이스/픽처 유형(예를 들어, I-슬라이스 또는 B-슬라이스)에 따라 달라질 수 있다.
(iii) 또는, 항목(bullet) 11에 개시된 방법을 적용하는 방법 및/또는 방법에 따라 시간적 계층에 의존할 수 있다.
xiii. 항목 11에서, 코딩 방법 "PROF"는 JVET-N0216 또는 위상 변종 아핀 서브 블록 모션 보상에 개시된 바와 같이 상호예측과 같은 아핀 예측 코딩을 강화하는 다른 코딩 방법으로 대체될 수 있다.
12. JVET-N0510에서 제안된 상변 변형 아핀 서브 블록 모션 보상이 먼저 적용되어 예측 값을 얻을 수 있으며, 그 다음에 PROF가 제안된다.
13. 유효한 x 및 y에 대해 dMvH[x][x][y] 및/또는 dMvV[x][y]를 유도하는 데 사용되는 변수의 비트 너비는 32와 같은 특정 숫자를 초과할 수 없다는 것이 제안된다.
a. 하나의 예에서, dMvH[x][y] 및/또는 dMvVV[x][y]는 다른 dMvH[t][z] 및/또는 dMvV[t][z][z]를 유도하는 데 사용되기 전에 잘린다.
b. 하나의 예에서, dMvH[x][x][y] 및/또는 dMvV[x][y]는 다른 dMvH[t][z] 및/또는 dMvV[t][z][z]를 유도하는 데 사용되기 전에 오른쪽으로 이동되며(t, z)와 같지 않는다.
14. dMvH 및/또는 dMvV가 저장된 모션 벡터와 동일한 정밀도를 가질 수 있음을 제안한다.
a. 예를 들어,
dMvH[xPos][yPos] = SatShift( dMvH[xPos][yPos], 7+M);
dMvV[xPos][yPos] = SatShift( dMvV[xPos][yPos], 7+M);
여기서 M은 dMvH 및/또는 hMvV,예를 들어 .M=2를 유도할 수 있는 추가 정밀도이다.
15. 예측 정제 를 유도하기 위해 사용되기 전에 dMvH 및/또는 dMvV에 클리핑 하는 것은 dMvH 및/또는 dMvV의 정밀도에 따라 달라질 수 있음을 제안된다.
a. 예를 들어
dMvH[posX][posY] = Clip3( -2K-1, 2K-1-1, dMvH[posX][posY]);
dMvV[posX][posY] = Clip3( -2K-1, 2K-1-1, dMvV[posX][posY]);
K는 dMvH 및/또는 dMvV의 정밀도에 따라 달라진다.
b. 또는 dMvH[x][y] 및/또는 dMvV[x][y]는 예측 구체화를 유도하는 데 사용되기 전에 잘리고 있지 않는다.
16. 예측 정제 (posX, posY)에 대한 올바른 변화는 (posX, posY)의 기호에 따라 달라질 수 있음을 제안한다.
a. 예를 들어, (posX, posY) = SatShift( (posX, posY), N은 정수이다.
17. 예측 정제 (posX, posY)에 대한 클리핑은 샘플 비트 심도에 따라 달라질 수 있음을 제안된다.
a. 예를 들어 (posX, posY) = Clip3 (-(23+ BitDepth-1), 2 3 +BitDpeth-1, (posX, posY));
18. 차단 해제를 수행하는 방법 및/또는 아핀 모드 블록 내의 서브 블록 경계(예를 들어, 내부 서브 블록 경계)는 JVET-N0216 또는/및 PROF 및/및 위상 변종 아핀 서브 블록 모션 보상이 블록에 적용되는지 여부에 따라 달라질 수 있다.
a. 하나의 예에서, 차단 해제는 블록에 적용된 예측 및/및 PROF 및/및 위상 변종 아핀 서브 블록 모션 보상을 삽입할 때 비활성화될 수 있다.
i. 또는, 디블로킹 필터는 교차예측 또는/및 PROF/및 위상 변종 아핀 서브 블록 모션 보상이 블록에 적용되는 서브 블록 경계에서 약할 수 있다. 예를 들어 경계 강도는 이러한 경계에서 더 작게 설정될 수 있다.
b. 하나의 예에서, 차단 해제는 상호 연관된 예측 또는/및 PROF 및/및 위상 변종 아핀 서브 블록 모션 보상이 블록에 적용되지 않을 때 활성화될 수 있다.
전술한 예는 비디오 디코더 또는 비디오 인코더에서 구현될 수 있는 메서드(예를 들어, 2910~2950)에 기재된 방법의 컨텍스트에 포함될 수 있다.
전술한 예는 비디오 디코더 또는 비디오 인코더에서 구현될 수 있는 메서드(예를 들어, 2910~2950)에 기재된 방법의 컨텍스트에 포함될 수 있다.
도 29a는 비디오 처리를 위한 예시적인 방법의 순서도를 나타낸다. 방법(2910)은, 단계 2912에서, 현재 비디오 블록의 서브 블록 레벨에서 수행되는 아핀 모드 모션 보상을 사용하여 비디오의 현재 비디오 블록에 대한 예측 블록을 생성하는 단계를 포함한다. 상기 방법(2910)은, 단계 2914에서, 광학 흐름(PROF) 절차를 통해 예측 정제를 사용하여 예측 블록을 정제하기 위해 현재 비디오 블록의 영역에 대한 그레디언트 계산을 수행하는 단계를 더 포함하고, 여기서 영역의 크기(MХN)는 현재 비디오 블록의 서브 블록의 크기와 상이하고, 여기서 M 및 N은 양의 정수이다. 방법(2910)은, 단계 2916에서, 그레디언트 계산에 기초하여, 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 수행하는 단계를 더 포함한다.
도 29b는 비디오 처리를 위한 예시적인 방법의 순서도를 나타낸다. 방법(2920)은, 단계 2922에서 제1 크기를 갖는 비디오의 현재 비디오 블록에 대해, 규칙에 따라 제2 크기를 갖는 비디오 영역에 대해 수행된 그레디언트 계산을 사용하여 하나 이상의 중간 예측 블록을 정제하여 컴퓨팅 되는 최종 예측 블록을 유도하는 단계를 포함하고, 정제는 광학 흐름 절차를 사용한다. 방법(2920)은, 단계 2924에서, 최종 예측 블록을 사용하여 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 수행하는 단계를 더 포함한다.
도 29c는 비디오 처리를 위한 예시적인 방법의 순서도를 나타낸다. 방법(2930)은, 단계 2932에서, 비디오의 현재 비디오 블록에 대해, 양방향 광학 흐름(BDOF) 또는 광학 흐름을 통한 예측 정제(PROF)를 사용하여 모션 정보를 유도하는 단계를 포함한다. 방법(2930)은, 단계 2934에서, 영역 내의 적어도 하나의 샘플이 그레디언트 계산에서 생략되도록 현재 비디오 블록의 영역 내의 샘플들에 대해 그레디언트 계산을 수행하는 단계를 더 포함한다. 방법(2930)은, 단계 2936에서, 그레디언트 계산에 기초하여, 현재 비디오 블록과 현재 비디오 블록을 포함하는 비디오의 코딩 된 표현 사이의 변환을 수행하는 단계를 더 포함한다. 일부 구현에서, 현재 비디오 블록에 대한 하나 이상의 초기 예측이 서브 블록 레벨에서 계산되고 PROF 동안 광학 흐름 계산을 사용하여 정제되거나 또는 하나 이상의 초기 예측이 BDOF 동안 공간적 및 시간적 그레디언트를 사용하여 정제된다.
도 29d는 비디오 처리를 위한 예시적인 방법의 순서도를 나타낸다. 상기 방법(2940)은 2942단계에서, 비디오의 현재 비디오 블록에 대해, 정밀도 규칙(precision rule)에 따른 초기 예측 샘플의 그레디언트에 기초한 광학 흐름 계산을 사용하여 현재 비디오 블록에 대한 하나 이상의 초기 예측을 정제하여 현재 비디오 블록에 대한 최종 예측 블록을 결정하는 단계를 포함한다. 상기 방법(2940)은, 단계 2944에서, 현재 비디오 블록과 최종 예측 블록을 사용하여 코딩 된 표현 사이의 변환을 수행하는 단계를 더 포함하고, 광학 흐름 계산은 광학 흐름(PROF) 절차 또는 양방향 광학 흐름(BDOF) 절차를 통한 예측 정제를 포함하고, 정밀도 규칙은 PROF 절차 및 BDOF 절차 모두에 대한 그레디언트를 나타내는 데 동일한 정밀도를 사용하도록 지정한다.
도 29e는 비디오 처리를 위한 예시적인 방법의 순서도를 나타낸다. 상기 방법(2950)은, 단계 2952에서, 비디오의 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 위해, 광학 흐름 계산을 사용하여 현재 비디오 블록에 대한 하나 이상의 초기 예측을 정제함으로써 현재 비디오 블록에 대한 최종 예측 블록을 결정하는 단계를 포함한다. 상기 방법(2950)은, 단계 2954에서, 최종 예측 블록을 사용하여 변환을 수행하는 단계를 더 포함한다. 일부 구현에서, 광학 흐름 계산은 광학 흐름(PROF) 절차 및/또는 양방향 광학 흐름(BDOF) 절차를 통한 예측 정제를 포함하고, 광학 흐름 계산은 패딩 샘플을 유도하기 위한 규칙에 따라 PROF 절차 또는 BDOF 절차 중 적어도 하나에 적용 가능한 패딩 작업을 더 포함한다.
5. 개시된 기술의 예 구현
도 30a는 비디오 처리 장치(3000)의 블록 다이어그램이다. 상기 장치(3000)는 본원에 기재된 하나 이상의 방법을 구현하는 데 사용될 수 있다. 상기 장치(3000)는 스마트폰, 태블릿, 컴퓨터, 사물인터넷(IoT) 수신기 등에서 구현될 수 있다. 상기 장치(3000)는 하나 이상의 프로세서(processor)(3002), 하나 이상의 메모리(memory)(3004) 및 비디오 처리 하드웨어(video processing hardware)(3006)를 포함할 수 있다. 상기 프로세서(들)(3002)는 본 문서에 기재된 하나 이상의 방법(2900을 포함하되 이에 국한되지 않음)을 구현하도록 구성될 수 있다. 상기 메모리(3004)는 본 원에 기재된 방법 및 기술을 구현하는 데 사용되는 데이터 및 코드를 저장하는 데 사용될 수 있다. 비디오 처리 하드웨어(3006)는 하드웨어 회로에서 본 문서에 설명된 일부 기술을 구현하는 데 사용될 수 있다.
도 30b는 개시된 기술이 구현될 수 있는 비디오 처리 시스템의 블록 다이어그램의 또 다른 예이다. 도 30b는 본 원에 개시된 다양한 기술이 구현될 수 있는 예시 비디오 처리 시스템(video processing system)(4100)을 보여주는 블록 다이어그램이다. 다양한 구현에는 시스템(4100)의 구성 요소의 일부 또는 전부가 포함될 수 있다. 상기 시스템(4100)에는 비디오 콘텐츠를 수신하기 위한 입력(4102)이 포함될 수 있다. 비디오 콘텐츠는 원시 또는 압축되지 않은 형식으로 수신될 수 있다(예를 들어, 8 또는 10비트 다중 구성 요소 픽셀 값) 또는 압축 또는 인코딩 된 형식으로 수행될 수 있다. 입력(4102)은 네트워크 인터페이스, 주변 버스 인터페이스 또는 스토리지 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예로는 이더넷, 패시브 광 네트워크(PON) 등과 같은 유선 인터페이스 및 Wi-Fi 또는 셀룰러 인터페이스와 같은 무선 인터페이스가 있다.
상기 시스템(4100)은 본 문서에 기재된 다양한 코딩 또는 인코딩 방법을 구현할 수 있는 코딩 컴포넌트(coding component)(4104)을 포함할 수 있다. 코딩 컴포넌트(4104)은 입력(4102)에서 코딩 컴포넌트(4104)의 출력으로 비디오의 평균 비트레이트를 감소시킬 수 있으며, 비디오의 코딩 된 표현을 생성할 수 있다. 따라서 코딩 기법을 비디오 압축 또는 비디오 트랜스코딩 기술이라고도 한다. 코딩 컴포넌트(4104)의 출력은 구성요소(4106)로 표현되는 바와 같이 연결된 통신을 통해 저장되거나 전송될 수 있다. 입력(4102)에서 수신된 비디오의 저장 또는 통신 비트스트림(또는 코딩 된) 표현은 디스플레이 인터페이스(4110)로 전송되는 픽셀 값 또는 디스플레이 가능한 비디오를 생성하기 위해 컴폰넌트(4108)에 의해 사용될 수 있다. 비트스트림 표현에서 사용자가 볼 수 있는 비디오를 생성하는 프로세스를 비디오 압축해제(video decompression)라고도 한다. 또한 특정 비디오 처리 작업을 "코딩" 작업 또는 툴로 지칭하지만 코딩 툴 또는 작업이 인코더에서 사용되고 코딩 결과를 되돌리는 대응하는 디코딩 툴 또는 작업이 디코더에 의해 수행된다는 점을 높이 평가될 것이다.
주변 버스 인터페이스 또는 디스플레이 인터페이스의 예로는 범용 직렬 버스(USB) 또는 고화질 멀티미디어 인터페이스(HDMI) 또는 디스플레이포트 등이 포함될 수 있다. 스토리지 인터페이스의 예로는 SATA(직렬 첨단 기술 첨부 파일), PCI, IDE 인터페이스 등이 있다. 본 문서에 기재된 기술은 휴대전화, 노트북, 스마트폰 또는 디지털 데이터 처리 및/또는 비디오 디스플레이를 수행할 수 있는 기타 장치와 같은 다양한 전자 기기에 구현될 수 있다.
개시된 기술의 일부 실시예에는 비디오 처리 툴 또는 모드를 가능하게 하기 위한 결정 또는 결정을 내리는 것이 포함된다. 예를 들어 비디오 처리 툴 또는 모드를 사용하도록 설정하면 인코더가 비디오 블록 처리에서 툴 또는 모드를 사용하거나 구현하지만 툴 또는 모드의 사용에 따라 결과 비트스트림을 반드시 수정할 필요는 없다. 즉, 비디오 블록에서 비디오의 비트스트림 표현으로 변환하면 결정 또는 결정에 따라 활성화될 때 비디오 처리 툴 또는 모드를 사용한다. 또 다른 예에서 비디오 처리 툴 또는 모드를 사용하도록 설정하면 디코더는 비디오 처리 툴 또는 모드에 따라 비트스트림이 수정되었다는 사실을 알고 비트스트림을 처리한다. 즉, 비디오의 비트스트림 표현에서 비디오 블록으로의 변환은 결정 또는 결정에 따라 활성화된 비디오 처리 툴 또는 모드를 사용하여 수행된다.
개시된 기술의 일부 실시예에는 비디오 처리 툴 또는 모드를 비활성화하는 결정 또는 결정을 내리는 것이 포함된다. 예를 들어 비디오 처리 툴 또는 모드를 사용하지 않는 경우 인코더는 비디오 블록을 비디오 블록으로 변환하는 데 툴 또는 모드를 사용하지 않는다. 또 다른 예에서 비디오 처리 툴 또는 모드를 사용하지 않도록 설정하면 디코더는 결정 또는 결정에 따라 비활성화된 비디오 처리 툴 또는 모드를 사용하여 비트스트림이 수정되지 않았다는 사실을 알고 비트스트림을 처리한다.
본 문서에서는 "비디오 처리(video processing)"라는 용어가 비디오 인코딩, 비디오 디코딩, 비디오 압축 또는 비디오 압축해제를 참조할 수 있다. 예를 들어 비디오 압축 알고리즘은 비디오의 픽셀 표현에서 대응하는 비트스트림 표현으로 변환하는 동안 적용될 수 있거나 그 반대의 경우도 마찬가지이다. 현재 비디오 블록의 비트스트림 표현은, 예를 들어, 신택스에 의해 정의된 바와 같이 비트스트림 내의 다른 위치에 함께 배치되거나 확산되는 비트에 대응할 수 있다. 예를 들어 매크로블록은 변환 및 코딩 된 오류 잔류 값과 비트스트림의 헤더 및 기타 필드에 비트를 사용하여 인코딩 될 수 있다.
개시된 방법 및 기술은 본 문서에 개시된 기술의 사용을 허용함으로써 스마트폰, 노트북, 데스크톱 및 유사한 장치와 같은 비디오 처리 장치에 통합된 비디오 인코더 및/또는 디코더 구현에 도움이 된다는 점에 유의할 것이다.
다양한 기술 및 실시예는 다음 절 기반 형식을 사용하여 설명될 수 있다.
절의 첫 번째 세트는 이전 섹션에서 공개된 기술의 특정 기능 및 측면을 설명한다.
1. 비디오 처리 방법에 있어서, 현재 비디오 블록의 제1 영역에서 그레디언트 계산을 수행하는 단계 - 제1 영역의 크기(MХN)는 아핀 모드에서 모션 보상에 사용되는 현재 비디오 블록의 서브 블록의 크기와 다르고, M 및 N은 양의 정수임 -; 및 그레디언트 계산에 기초하여, 현재 비디오 블록과 현재 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다.
2. 제1절의 방법에 있어서, 제1영역의 크기가 서브 블록의 크기보다 크다.
3. 제1절 또는 제2절의 방법에 있어서, M 과 N은 양의 정수로 미리 정의된다.
4. 제1절 또는 제2절의 방법에 있어서, 제1 영역의 크기는 서브 블록의 크기에 기초한다.
5. 제1절의 방법에 있어서, M/N이 적응적으로 변경된다.
6. 제1절의 방법에 있어서, M 및 N은 현재 비디오 블록의 범위에 기초한다.
7. 제1절 내지 제6절 중 어느 하나의 방법에 있어서, M은 최소 값 Mmin을 가지고, N은 최소 값 Nmin을 가진다.
8. 제7절의 방법에 있어서, Mmin = Nmin = 8이다.
9. 제1절 내지 제6절 중 어느 하나의 방법에 있어서, 제1 영역은 크기 (M+dM)Х(N+dN)의 제1 패딩 된 영역을 생성하도록 패딩 된다.
10. 제9절의 방법에 있어서, 제1 영역 또는 제1 패딩 된 영역의 샘플은 보간 필터링을 사용한 모션 보상에 기초하여 유도된다.
11. 제1절의 방법에 있어서, 그레디언트 계산을 수행하는 단계에서, 제1 영역에서 하나 이상의 샘플이 생략된다.
12. 제1절의 방법에 있어서, 그레디언트 계산은 양방향 광학 흐름(BDOF)에서 제1 정밀도로 수행되고 광학 흐름(PROF)을 사용한 예측 정제에서 제2 정밀도로 수행되고, 여기서 제1 및 제2 정밀도는 동일하다.
13. 비디오 처리 방법에 있어서, 현재 비디오 블록에 대한 광학 흐름을 통한 예측 정제 (Prediction Refinement with Optical Flow)(PROF)의 선택적 적용에 기초하여, 현재 비디오 블록에 대한 코딩 툴의 선택적 적용에 관한 결정을 내리는 단계 - 코딩 도구는 PROF와 상이함 -; 및 결정에 기초하여, 현재 비디오 블록과 현재 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다.
14. 제13절의 방법에 있어서, PROF가 적용되지 않고 코딩 도구가 적용된다.
15. 제13절의 방법에 있어서, 코딩 도구는 일반화된 이중 예측을 포함한다.
16. 제15의 방법에 있어서, PROF가 적용되지 않고, 일반화된 양방향 예측과 관련된 인덱스가 0이 아니다.
17. 제13절의 방법에 있어서, 코딩 도구는 로컬 조명 보정이다.
18. 제13절의 방법에 있어서, 코딩 도구는 MTS(다중 변환 집합)이다.
19. 제18의 방법에 있어서, PROF가 적용되고 MTS의 기본 변환만 현재 비디오 블록에 적용된다.
20. 제13절의 방법에 있어서, 코딩 도구는 가중 예측이다.
21. 비디오 처리 방법에 있어서, 현재 비디오 블록과 현재 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환 동안, 광학 흐름 작업을 통한 예측 정제(PROF)을 사용한 예측 정제의 선택적 적용에 관해 결정을 내리는 단계를 포함하고, 결정은 현재 비디오 블록의 컬러 정보에 기초한다.
22. 제21절의 방법에 있어서, PROF 작업은 현재 비디오 블록의 하나 이상의 크로마 컴포넌트에 적용되지 않으며, 여기서 컬러 정보는 4:0:0 컬러 형식을 포함한다.
23. 제21절의 방법에 있어서, PROF 작업은 현재 비디오 블록의 하나 이상의 크로마 컴포넌트에 적용되고, 여기서 컬러 정보는 4:4:4 컬러 형식을 포함한다.
24. 제21절의 방법에 있어서, PROF 작업은 현재 비디오 블록의 하나 이상의 크로마 컴포넌트에 적용되고, 여기서 컬러 정보는 4:0:0 컬러 형식을 포함한다.
25. 제21절의 방법에 있어서, PROF 연산이 적용되고, 컬러 정보가 복수의 컬러 컴포넌트를 포함한다.
26. 제25절의 방법에 있어서, PROF 연산의 하나 이상의 그레디언트는 복수의 컬러 컴포넌트 각각에 대해 독립적으로 계산된다.
27. 제25절의 방법에 있어서, PROF 연산의 하나 이상의 그레디언트는 복수의 컬러 컴포넌트 중 제1 컬러 컴포넌트에 대해 계산되고 복수의 컬러 컴포넌트 중 제2 컬러 컴포넌트에 대해 재사용된다.
28. 제26절 또는 제27절의 방법에 있어서, 그레디언트의 정밀도는 복수의 컬러 컴포넌트 중 적어도 하나에 기초한다.
29. 비디오 처리 방법에 있어서, 현재 비디오 블록의 높이(H) 또는 너비(W)에 기초하여, 광학 흐름(PROF) 작업을 사용한 예측 정제의 선택적 적용에 관한 결정을 내리는 단계; 및 결정에 기초하여, 현재 비디오 블록과 현재 비디오 블록을 포함하는 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다.
30. 제29절의 방법에 있어서, PROF 작업은 현재 비디오 블록의 루마 컴포넌트에 적용된다.
31. 제29절의 방법에 있어서, 현재 비디오 블록은 아핀 모드를 사용하여 코딩 된다.
32. 제31절의 방법에 있어서, PROF 연산은 적용되지 않으며, 여기서 W ≤ T1 및/또는 H ≤ T2, 여기서 T1 = T2 = 16이다.
33. 제31절의 방법에 있어서, W ≥ T1 및/또는 H ≥ T2이고 T1 = T2 = 64인 경우 PROF 연산이 적용되지 않는다.
34. 제31절의 방법에 있어서, PROF 연산은 적용되지 않고, 여기서 WХH ≤ T 또는 max(W, H) ≤ T이고 T = 16이다.
35. 제31절의 방법에 있어서, PROF 연산은 적용되지 않고, 여기서 WХH ≥ T 또는 min(W, H) ≥ T이고 T = 64이다.
36. 제1절 또는 제2절의 방법에 있어서, 현재 비디오 블록의 크기는 WХH이고, 여기서 M = min(K, W)이고, K는 정수이다.
37. 제1절 또는 제2절의 방법에 있어서, 현재 비디오 블록의 크기는 WХH이고, 여기서 N = min(K, H)이고, K는 정수이다.
38. 제36절 또는 제37절의 방법에 있어서, K = 16이다.
39. 제1절 또는 제2절의 방법에 있어서, 그레디언트 계산을 수행하기 전에, 현재 비디오 블록의 제1 영역에서 패딩 프로세스를 수행하는 단계를 더 포함한다.
40. 제39절의 방법에 있어서, 패딩 프로세스를 수행하는 단계는 하나 이상의 모션 벡터를 유도하는 단계를 포함한다.
41. 제40절의 방법에 있어서, 하나 이상의 모션 벡터는 제1 영역의 특정 위치를 향한 아핀 모델로부터 유도된 모션 벡터를 포함한다.
42. 제40절의 방법에 있어서, 하나 이상의 모션 벡터는 제1 영역의 적어도 하나의 서브블록의 적어도 하나의 모션 벡터로부터 유도된 모션 벡터를 포함한다.
43. 제39절에 있어서, 패딩 프로세스를 수행하는 단계는 현재 비디오 블록의 높이 또는 너비에 기초한다.
44. 제39절의 방법에 있어서, 패딩 프로세스를 수행하는 단계는 비디오 파라미터 세트(VPS), 디코더 파라미터 세트(DPS), 시퀀스 파라미터 세트(SPS), 픽처 파라미터 세트(PPS), 적응 파라미터 세트(APS), 슬라이스 헤더, 타일, 타일 그룹 헤더, 코딩 트리 유닛(CTU) 또는 코딩 유닛(CU)의 시그널링에 기초한다.
45. 제5절 또는 제6절의 방법에 있어서, M 및 N은 비디오 파라미터 세트(VPS), 디코더 파라미터 세트(DPS), 시퀀스 파라미터 세트(SPS), 픽처 파라미터 세트(PPS), 적응 파라미터 세트(APS), 슬라이스 헤더, 타일, 타일 그룹 헤더, 코딩 트리 유닛(CTU) 또는 코딩 유닛(CU)에서 시그널링 된다.
46. 제5절 또는 제6절의 방법에 있어서, M과 N은 비디오 코딩 표준의 프로파일, 레벨 또는 티어에서 지정된다.
47. 프로세서 및 명령이 있는 비일시적 메모리를 포함하는 비디오 시스템의 장치에 있어서, 프로세서에 의한 실행 시 명령은 프로세서로 하여금 제1절 내지 제46절 중 어느 하나의 방법을 구현하게 한다.
48. 제1절 내지 제46절 중 어느 한 절의 방법을 수행하기 위한 프로그램 코드를 포함하는, 비일시적 컴퓨터 판독가능 매체에 저장된 컴퓨터 프로그램.
두 번째 절 세트에서는 예시적 구현 예 1에서 4를 포함하여 이전 섹션에서 공개된 기술의 특정 기능 및 측면을 설명한다.
1. 비디오 처리 방법에 있어서, 현재 비디오 블록의 서브 블록 레벨에서 수행되는 아핀 모드 모션 보상을 사용하여 비디오의 현재 비디오 블록에 대한 예측 블록을 생성하는 단계; 광학 흐름(PROF) 절차를 통해 예측 정제를 사용하여 예측 블록을 정제하기 위해 현재 비디오 블록의 영역에 대한 그레디언트 계산을 수행하는 단계 - 영역의 크기(MХN)는 현재 비디오 블록의 서브 블록의 크기와 상이하고, 여기서 M 및 N은 양의 정수임 -; 및 그레디언트 계산에 기초하여, 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 수행하는 단계를 포함한다.
2. 제1절의 방법에 있어서, 여기서 영역의 크기는 서브 블록의 크기보다 크다.
3. 제1 또는 2절의 방법에 있어서, 여기서 M과 N은 미리 정의된 양의 정수이다.
4. 제1절 또는 제2절의 방법에 있어서, 여기서 영역의 크기는 서브 블록의 크기에 기초한다.
5. 제1절의 방법에 있어서, 여기서 PROF 절차의 패딩 연산은 (MХN) 영역 레벨에서 그레디언트를 유도하기 위해 적용된다.
6. 제1 내지 제5 중 어느 하나의 방법에 있어서, M은 min(K0, 블록 너비)으로 정의되고 N은 min(K1, 블록 높이)으로 정의되며, 여기서 K0 및 K1은 정수이다.
7. 제6절의 방법에 있어서, 여기서 K0 및 K1은 16과 같다.
8. 제1절의 방법에 있어서, 여기서 그레디언트 계산을 수행하는 단계는 현재 비디오 블록의 제1 서브 블록에서 제1 샘플에 대한 제1 그레디언트 및 현재 비디오 블록의 제2 서브 블록에서 제2 샘플에 대한 제2 그레디언트를 획득하는 단계를 포함한다.
9. 제8절의 방법에 있어서, 여기서 제2 서브 블록은 제1 서브 블록에 인접한다.
10. 제8절의 방법에 있어서, 여기서 제2 샘플은 제1 그레디언트를 유도하는 데 사용된다.
11. 제8절 내지 제10절 중 어느 하나의 방법에 있어서, 영역의 크기(MХN)는 현재 비디오 블록의 서브 블록의 크기보다 크다.
12. 제1절의 방법에 있어서, 여기서 영역에 대한 패딩 연산을 위해 하나 이상의 모션 벡터가 유도된다.
13. 제12절의 방법에 있어서, 현재 비디오 블록의 레퍼런스 블록에서 정수 샘플과 연관된 특정 모션 벡터는 영역에 대한 패딩 연산에 대해 유도된다.
14. 제13절의 방법에 있어서, 특정 모션 벡터는 해당 영역의 서브 블록 중 하나의 모션 벡터에 대응한다.
15. 제13절의 방법에 있어서, 특정 모션 벡터는 영역의 특정 위치에 대해 아핀 모델을 적용하여 유도된다.
16. 제13절의 방법에 있어서, 특정 모션 벡터는 해당 영역의 모든 서브 블록의 모션 벡터에서 유도된다.
17. 제13절의 방법에 있어서, 특정 모션 벡터는 해당 영역의 모든 서브 블록의 모션 벡터의 평균으로 유도된다.
18. 제13절의 방법에 있어서, 특정 모션 벡터는 영역 내 서브 블록의 적어도 일부 모션 벡터의 평균으로서 유도되며, 서브 블록은 영역의 중심 주위에 위치된다.
19. 제13절의 방법에 있어서, 특정 모션 벡터는 제어 포인트 모션 벡터 또는 영역의 서브블록의 모션 벡터를 포함하는 다중 모션 벡터의 함수로 유도된다.
20. 제12절의 방법에 있어서, 현재 비디오 블록의 레퍼런스 블록에서 정수 샘플과 연관된 다수의 모션 벡터는 영역에 대한 패딩 연산을 위해 유도된다.
21. 제20절의 방법에 있어서, 여기서, 영역의 제1 서브 블록에 인접한 제1 샘플을 패딩 하기 위해, 영역 내의 제1 서브 블록의 제1 모션 벡터가 정수 샘플들의 위치를 찾는 데 사용된다.
22. 제12절의 방법에 있어서, 영역의 크기(MХN)는 현재 비디오 블록의 서브 블록의 크기보다 크다.
23. 제1절 내지 제22절 중 어느 하나의 방법에 있어서, M과 N의 최소값은 각각 Mmin과 Nmin으로 미리 정해진다.
24. 제23절의 방법에 있어서, Mmin = Nmin = 8이다.
25. 제1절 내지 제24절 중 어느 하나의 방법에 있어서, (M+dM) Х (N+dN) 크기의 패딩 된 영역에서 패딩 된 샘플을 생성하기 위해 영역에 대해 패딩 연산이 수행된다.
26. 제25절의 방법에 있어서, 영역 내부의 샘플은 보간 필터링을 사용한 모션 보상에서 유도된다.
27. 제26절의 방법에 있어서, 샘플은 해당 지역의 여러 서브 블록에 대한 모션 보상에서 유도된다.
28. 제25절의 방법에 있어서, 패딩 된 샘플은 지역의 4개 외부 측면을 따라 유도된다.
29. 제28절의 방법에 있어서, 패딩 된 샘플은 현재 비디오 블록의 참조 블록에서 가장 가까운 정수 샘플의 강도를 복사한다.
30. 제28절의 방법에 있어서, 패딩 샘플은 패딩 되지 않은 영역에서 가장 가까운 샘플의 강도를 복사한다.
31. 제1절 내지 제30절 중 어느 하나의 방법에 있어서, 변환을 수행하는 단계는 현재 비디오 블록으로부터 코딩 된 표현을 생성하는 단계를 포함한다.
32. 제1절 내지 제30절 중 어느 하나의 방법에 있어서, 변환을 수행하는 단계는 코딩 된 표현으로부터 현재 비디오 블록을 생성하는 단계를 포함한다.
33. 비디오 처리 방법에 있어서, 제1 크기를 갖는 비디오의 현재 비디오 블록에 대해, 규칙에 따라 제2 크기를 갖는 비디오 영역에 대해 수행된 그레디언트 계산을 사용하여 하나 이상의 중간 예측 블록을 정제하여 컴퓨팅 되는 최종 예측 블록을 유도하는 단계 - 정제는 광학 흐름 절차를 사용함 -; 및 최종 예측 블록을 사용하여 현재 비디오 블록과 비디오의 코딩 된 표현 사이의 변환을 수행하는 단계를 포함한다.
34. 제33절에 있어서, 규칙은 제2 크기가 제1 크기의 함수임을 지정한다.
35. 제34절의 방법에 있어서, 규칙은 제2 크기의 너비(M) 및/또는 제2 크기의 높이(N)가 제1 크기의 너비(W) 및/또는 제1 크기의 높이(H)에 따라 달라지도록 지정한다.
36. 제35절의 방법에 있어서, M = W 및 N=H이다.
37. 제35절의 방법에 있어서, M=N=2*Wmc이고 Wmc는 현재 비디오 블록의 서브 블록의 너비 또는 높이이며, 서브 블록은 현재 비디오 블록에 대한 모션 보상을 사용하여 하나 이상의 중간 예측 블록을 획득하는 데 사용된다.
38. 제35절의 방법에 있어서, M 및 N 중 적어도 하나는 비디오 파라미터 세트(VPS), 디코딩 파라미터 세트(DPS), 시퀀스 파라미터 세트(SPS), 픽처 파라미터 세트(PPS), 적응 파라미터 세트(APS), 슬라이스 헤더, 타일 그룹 헤더, 타일, 코딩 트리 유닛 또는 코딩 유닛에서 시그널링 된다.
39. 제35절의 방법에 있어서, M 및 N 중 적어도 하나는 규칙의 프로필, 레벨 또는 계층에 지정된다.
40. 제35절의 방법에 있어서, M=Min(W, T1) 및 N = Min(H, T2)이고, 여기서 T1 및 T2는 양의 정수이다.
41. 제40절의 방법에 있어서, T1 및 T2 중 적어도 하나는 비디오 파라미터 세트(VPS), 디코딩 파라미터 세트(DPS), 시퀀스 파라미터 세트(SPS), 픽처 파라미터 세트(PPS), 적응 파라미터 세트(APS)에서 시그널링되고, 슬라이스 헤더, 타일 그룹 헤더, 타일, 코딩 트리 유닛 또는 코딩 유닛에서 시그널링 된다.
42. 제40절의 방법에 있어서, T1 및 T2 중 적어도 하나는 규칙의 프로필, 레벨 또는 계층에 지정된다.
43. 제35 내지 제42 중 어느 하나의 방법으로서, M과 N의 최소값은 각각 Mmin과 Nmin으로 미리 정해진다.
44. 제43절의 방법에 있어서, Mmin = Nmin = 8이다.
45. 제33절 내지 제44절 중 어느 하나의 방법에 있어서, (M+dM) Х (N+dN) 크기의 패딩 된 영역에서 패딩 된 샘플을 생성하기 위해 영역에 대해 패딩 작업이 수행된다.
46. 제45절의 방법에 있어서, 영역 내부의 샘플은 보간 필터링을 사용한 모션 보상에서 유도된다.
47. 제46절의 방법에 있어서, 샘플은 영역의 여러 서브 블록에 대한 모션 보상에서 유도된다.
48. 제45절의 방법에 있어서, 패딩 된 샘플은 영역의 4개 외부 측면을 따라 유도된다.
49. 제48절의 방법에 있어서, 패딩 된 샘플은 현재 비디오 블록의 레퍼런스 블록에서 가장 가까운 정수 샘플의 강도를 복사한다.
50. 제48절의 방법에 있어서, 패딩 샘플은 패딩 되지 않은 영역에서 가장 가까운 샘플의 강도를 복사한다.
51. 제33절에 있어서, 광학 흐름 절차는 하나 이상의 중간 예측 블록이 서브 블록 레벨에서 계산되고 광학 흐름 계산을 사용하여 정제되는 PROF(광학 흐름을 사용한 예측 개선) 절차를 포함한다.
52. 제33절의 방법에 있어서, 광학 흐름 절차는 공간 및 시간 그레디언트를 사용하여 하나 이상의 중간 예측 블록이 정제되는 양방향 광학 흐름(BDOF) 절차를 포함한다.
53. 제33절 내지 제52절 중 어느 하나의 방법에 있어서, 변환을 수행하는 단계는 현재 비디오 블록으로부터 코딩 된 표현을 생성하는 단계를 포함한다.
54. 제33절 내지 제52절 중 어느 하나의 방법에 있어서, 변환을 수행하는 단계는 코딩 된 표현으로부터 현재 비디오 블록을 생성하는 단계를 포함한다.
55. 비디오 처리 방법에 있어서, 비디오의 현재 비디오 블록에 대해, 양방향 광학 흐름(BDOF) 또는 광학 흐름을 통한 예측 정제(PROF)를 사용하여 모션 정보를 유도하는 단계: 영역 내의 적어도 하나의 샘플이 기울기 계산에서 생략되도록 현재 비디오 블록의 영역 내의 샘플들에 대해 그레디언트 계산을 수행하는 단계; 및 그레디언트 계산에 기초하여, 현재 비디오 블록과 현재 비디오 블록을 포함하는 비디오의 코딩 된 표현 사이의 변환을 수행하는 단계를 포함하고, 현재 비디오 블록에 대한 하나 이상의 초기 예측이 서브 블록 레벨에서 계산되고 PROF 동안 광학 흐름 계산을 사용하여 정제되거나 또는 하나 이상의 초기 예측이 BDOF 동안 공간적 및 시간적 그레디언트를 사용하여 정제된다.
56. 제55절의 방법에 있어서, 주어진 좌표에서 샘플과 연관된 그레디언트는 BIO 및 PROF에서 사용된다.
57. 제55절의 방법에 있어서, 샘플은 그레디언트 계산을 수행하기 전에 수정되고 수정된 샘플은 그레디언트 계산을 수행하는 동안 사용된다.
58. 제55절 내지 제57절 중 어느 하나의 방법에 있어서, 변환을 수행하는 단계는 현재 비디오 블록으로부터 코딩 된 표현을 생성하는 단계를 포함한다.
59. 제55절 내지 제57절 중 어느 하나의 방법에 있어서, 변환을 수행하는 단계는 코딩 된 표현으로부터 현재 비디오 블록을 생성하는 단계를 포함한다.
세 번째 절 세트는 예시적 구현 예 5 및 6을 포함하여 이전 섹션에서 공개된 기술의 특정 기능 및 측면을 설명한다.
1. 비디오 처리 방법에 있어서, 비디오의 현재 비디오 블록에 대해, 정밀도 규칙에 따른 초기 예측 샘플의 그레디언트에 기초하여 광학 흐름 계산을 사용하여 현재 비디오 블록에 대한 하나 이상의 초기 예측을 정제하여 현재 비디오 블록에 대한 최종 예측 블록을 결정하는 단계; 및 현재 비디오 블록과 최종 예측 블록을 사용하여 코딩된 표현 사이의 변환을 수행하는 단계 - 광학 흐름 계산은 광학 흐름(PROF) 절차 또는 양방향 광학 흐름(BDOF) 절차를 통한 예측 정제를 포함하고, 정밀도 규칙은 PROF 절차 및 BDOF 절차 모두에 대한 그레디언트를 나타내는 데 동일한 정밀도를 사용하도록 지정함 - 를 포함한다.
2. 제1절에 있어서, PROF 절차에서, 하나 이상의 초기 예측은 아핀 모션 보상 예측 동안 서브 블록 레벨에서 컴퓨팅 되고 광학 흐름 계산을 사용하여 정제된다.
3. 제1절에 있어서, BDOF 절차에서, 하나 이상의 초기 예측은 광학 흐름 계산 동안 획득된 적어도 하나의 그레디언트 값을 사용하여 정제된다.
4. 제1절에 있어서, 각각 gradientH 및 gradientV로 표시되는 수평 기울기 및 수직 기울기는 다음:
i) gradientH [x][y] = (predSamples [x + 1][y] - predSample [x - 1][y])>> shift0, gradientV [x][y] = (predSample[x [y + 1] - 프리샘플 [x][y - 1] >> ) shift1,
ii) gradientH [x][y] = shift(predSamples [x + 1][y] - predSample [x - 1]] y]/shift0), gradientV [x] ] y] = shift(predSample[x][x][y+1] - predSample [x][y-1]
iii) gradientH [x][ y] = SatShift ((predSamples [ x + 1 ][y] - predSample [x - 1 ]] y ]/shift0), gradientV [x] [ y] = SatShift ((predSample[ x][ x][ y ] [ y + 1] - predsample [x][y-1]
iv) gradientH [x][ y] = shift(predSamples [ x + 1 ][y], Shift0) - shift(predSample [x - 1 ][ y]/shift0), gradientV [x ][ y] = shift (predSample[ x][ y] = shift(predSample[ x][ y] [ y + 1 ], shift 1] - predSample [x][y] 중 하나로 계산되고, 및
여기서 Shift(x, n)는 Shift(x, n) = (x + offset0) >> n 으로 정의되고 Satshift(x, n)는 로 정의된다.
5. 제1절에 있어서, 각각 gradientH 및 gradientV로 표시되는 수평 기울기 및 수직 기울기는 다음:
i) gradientH [x][y] = (predSamples [x][y] *2 - predSamples [x+1][y] - predSample [x-1][y] ) >> shift0, gradientV [x][ y] = (predSamples [x][y] *2 - 사전 샘플[x][>> y][y][
ii) gradientH [x][ y] = shift(predSamples [x][y] *2 - predSamples [x+1][y] - predSample [x-1][y]), shift0), gradientV [ x][ y] = shift (predSamples [ x ][y] *2 - predSample[x][y+1] - predSample [x][y-1] , Shift1) 또는
iii) gradientH [x][ y] = Satshift((predSamples [x][y] *2 - predSamples [x+1][y] - predSample [x-1][y] gradientV [x][ y] = Satshift(predSamples [x][y] *2 - predSample[x][y+1] - predSample [x][y-1] [ Shift1) 중 하나로 계산되고, 및
여기서 Shift(x, n)는 Shift(x, n) = (x+ offset0)>>n으로 정의되고
Satshift(x, n)는 로 정의된다.
6. 제4절 또는 제5절에 있어서, Shift0 및/또는 Shift1은 Max(2, (14-BitDepth))로 설정되고 BitDepth는 재구성된 샘플 또는 입력 샘플의 비트 심도를 나타낸다.
7. 제1절에서 제6절 중 어느 한 절에 있어서, SHIFT0 및/또는 Shift1이 PROF 및 BDOF에 사용되는 방식이 동일하다.
8. 제1절 내지 제7절 중 어느 한 절에 있어서, 변환을 수행하는 단계는 현재 비디오 블록으로부터 코딩 된 표현을 생성하는 단계를 포함한다.
9. 제1절 내지 제7절 중 어느 한 절에 있어서, 변환을 수행하는 단계는 코딩된 표현으로부터 현재 비디오 블록을 생성하는 단계를 포함한다.
10. 비디오 처리 방법에 있어서, 비디오의 현재 비디오 블록과 비디오의 코딩된 표현 사이의 변환을 위해, 광학 흐름 계산을 사용하여 현재 비디오 블록에 대한 하나 이상의 초기 예측을 정제함으로써 현재 비디오 블록에 대한 최종 예측 블록을 결정하는 단계; 및 최종 예측 블록을 사용하여 변환을 수행하는 단계를 포함하고, 광학 흐름 계산은 광학 흐름(PROF) 절차 및/또는 양방향 광학 흐름(BDOF) 절차를 통한 예측 정제를 포함하고, 광학 흐름 계산은 패딩 샘플을 유도하기 위한 규칙에 따라 PROF 절차 또는 BDOF 절차 중 적어도 하나에 적용 가능한 패딩 작업을 더 포함한다.
11. 제10절에 있어서, PROF 절차에서, 하나 이상의 초기 예측은 아핀 모션 보상 예측 동안 서브 블록 레벨에서 컴퓨팅 되고 광학 흐름 계산을 사용하여 정제된다.
12. 제10절에 있어서, BDOF 절차에서, 하나 이상의 초기 예측은 광학 흐름 계산 동안 획득된 적어도 하나의 그레디언트 값을 사용하여 정제된다.
13. 제10절에 있어서, 규칙은 PROF 절차 및 BDOF 절차에 대해 동일한 패딩 작업을 사용하도록 지정한다.
14. 제10절에 있어서, 규칙은 현재 비디오 블록의 레퍼런스 픽처에서 정수 위치에 있는 정수 샘플로부터 패딩 샘플을 유도하도록 지정한다.
15. 제14절에 있어서, 정수 샘플은 정수 MV로 반올림된 MV(Mvx, Mvy)의 차이를 갖는 패딩 샘플 주위에 위치된다.
16. 제14절에 있어서, MV(Mvx, MvY)는 바닥 정수(IntX, IntY)로 반올림 된다.
17. 제14절에 있어서, MV(Mvx, MvY)는 가장 가까운 정수 MV(IntX, IntY)로 반올림 된다.
18. 제14절에 있어서, MV(Mvx, MvY)는 IntX = SatShift(MvX, P) 및 IntY= SatShift(MvY, P)가 되도록 정수 MV(IntX, IntY)로 반올림 되고, 여기서 P는 MV의 정밀도 및
를 나타낸다.
19. 제15절 내지 제18절 중 어느 한 절에 있어서, MV는 현재 비디오 블록의 컬러 형식 및/또는 컬러 컴포넌트에 따라 달라지는 MV의 정밀도에 기초하여 반올림 된다.
20. 제10절에 있어서, 패딩 작업을 수행하는 방법에 대한 정보는 비디오 파라미터 세트(VPS), 디코딩 파라미터 세트(DPS), 시퀀스 파라미터 세트(SPS), 픽처 파라미터 세트(PPS), 적응 파라미터 세트(APS), 슬라이스 헤더, 타일 그룹 헤더, 타일, 코딩 트리 단위 또는 코딩 단위에서 시그널링 된다.
21. 제10절에 있어서, 패딩 작업을 수행하는 방법에 대한 정보는 규칙의 프로필, 레벨 또는 계층에 있다.
22. 제10절에 있어서, 패딩 작업을 수행하는 방법에 대한 정보는 현재 비디오 블록의 크기에 의존한다.
23. 제10절 내지 제22절 중 어느 한 절에 있어서, 변환을 수행하는 단계는 현재 비디오 블록으로부터 코딩 된 표현을 생성하는 단계를 포함한다.
24. 제10절 내지 제22절 중 어느 한 절에 있어서, 변환을 수행하는 단계는 코딩 된 표현으로부터 현재 비디오 블록을 생성하는 단계를 포함한다.
25. 프로세서 및 명령이 있는 비일시적 메모리를 포함하는 비디오 시스템의 장치에 있어서, 프로세서에 의한 실행 시 명령은 프로세서로 하여금 제10절 내지 제22절 중 어느 한 항의 방법을 구현하게 하는 장치.
26. 제10절 내지 제22절 중 어느 한 항의 방법을 수행하기 위한 프로그램 코드를 포함하는 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램.
27. 비디오 인코딩 방법에 있어서, 비디오의 현재 비디오 블록을 비디오의 코딩 된 표현으로 인코딩 하기 위해, 정밀도 규칙에 따른 모션의 그레디언트에 기초한 광학 흐름 계산을 사용하여 현재 비디오 블록에 대한 하나 이상의 초기 예측을 정제함으로써 현재 비디오 블록에 대한 최종 예측 블록을 결정하는 단계; 및 최종 예측 블록을 사용하여 현재 비디오 블록을 코딩 된 표현으로 인코딩 하는 단계를 포함하고, 광류 계산은 하나 이상의 초기 예측이 서브 블록 레벨에서 컴퓨팅 되고 및 광학 흐름 계산을 사용하여 정제되는 광학 흐름 절차를 갖는 예측 정제(PROF) 및 하나 이상의 초기 예측이 공간 및 시간적 그레디언트를 사용하여 정제되는 양방향 광학 흐름(BDOF) 절차를 포함하고, 정밀도 규칙은 PROF 절차 및 BDOF 절차 모두에 대한 기울기를 나타내는 데 동일한 정밀도를 사용하도록 지정한다.
28. 비디오 디코딩 방법에 있어서, 비디오의 현재 비디오 블록을 비디오의 코딩 된 표현으로 디코딩 하기 위해, 정밀도 규칙에 따른 모션의 그레디언트에 기초한 광학 흐름 계산을 사용하여 현재 비디오 블록에 대한 하나 이상의 초기 예측을 정제함으로써 현재 비디오 블록에 대한 최종 예측 블록을 결정하는 단계; 및 최종 예측 블록을 사용하여 코딩 된 표현으로 디코딩 된 현재 비디오 블록을 생성하는 단계를 포함하고, 광류 계산은 하나 이상의 초기 예측이 서브 블록 레벨에서 컴퓨팅 되고 및 광학 흐름 계산을 사용하여 정제되는 광학 흐름 절차를 갖는 예측 정제(PROF) 및 하나 이상의 초기 예측이 공간 및 시간적 그레디언트를 사용하여 정제되는 양방향 광학 흐름(BDOF) 절차를 포함하고, 정밀도 규칙은 PROF 절차 및 BDOF 절차 모두에 대한 기울기를 나타내는 데 동일한 정밀도를 사용하도록 지정한다.
29. 비디오 인코딩 방법에 있어서, 비디오의 현재 비디오 블록을 비디오의 코딩 된 표현으로 인코딩 하기 위해, 광학 흐름 계산을 사용하여 현재 비디오 블록에 대한 하나 이상의 초기 예측을 정제함으로써 현재 비디오 블록에 대한 최종 예측 블록을 결정하는 단계; 및 최종 예측 블록을 사용하여 현재 비디오 블록을 코딩 된 표현으로 인코딩 하는 단계를 포함하고, 광류 계산은 하나 이상의 초기 예측이 서브 블록 레벨에서 컴퓨팅 되고 및 광학 흐름 계산을 사용하여 정제되는 광학 흐름 절차를 갖는 예측 정제(PROF) 및 하나 이상의 초기 예측이 공간 및 시간적 그레디언트를 사용하여 정제되는 양방향 광학 흐름(BDOF) 절차를 포함하고, 광학 흐름 계산은 패딩 샘플을 유도하기 위한 규칙에 따라 PROF 절차 또는 BDOF 절차 중 적어도 하나에 적용 가능한 패딩 작업을 더 포함한다.
30. 비디오 디코딩 방법에 있어서, 비디오의 현재 비디오 블록을 비디오의 코딩 된 표현으로 디코딩 하기 위해, 정밀도 규칙에 따른 모션의 그레디언트에 기초한 광학 흐름 계산을 사용하여 현재 비디오 블록에 대한 하나 이상의 초기 예측을 정제함으로써 현재 비디오 블록에 대한 최종 예측 블록을 결정하는 단계; 및 최종 예측 블록을 사용하여 코딩 된 표현으로 디코딩 된 현재 비디오 블록을 생성하는 단계를 포함하고, 광류 계산은 하나 이상의 초기 예측이 서브 블록 레벨에서 컴퓨팅 되고 및 광학 흐름 계산을 사용하여 정제되는 광학 흐름 절차를 갖는 예측 정제(PROF) 및 하나 이상의 초기 예측이 공간 및 시간적 그레디언트를 사용하여 정제되는 양방향 광학 흐름(BDOF) 절차를 포함하고, 광학 흐름 계산은 패딩 샘플을 유도하기 위한 규칙에 따라 PROF 절차 또는 BDOF 절차 중 적어도 하나에 적용 가능한 패딩 작업을 더 포함한다.
상기로부터, 현재 개시된 기술의 구체적인 실시예는 일러스트레이션의 목적을 위해 본원에 기재되어 있으나, 본 발명의 범위에서 벗어나지 않고 다양한 수정이 이루어질 수 있다는 점을 평가할 것이다. 이에 따라, 현재 개시된 기술은 추가된 청구에 의한 경우를 제외하고는 한정되지 않는다.
본 특허 문서에 기재된 주제의 구현 및 기능적 작업은 본 사양 및 구조상 등가물 또는 그 중 하나 이상의 조합으로 다양한 시스템, 디지털 전자 회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있다. 본 명세서에 기재된 주제의 구현은 하나 이상의 컴퓨터 프로그램 제품, 즉, 데이터 처리 장치의 작동을 제어하기 위해 실물 및 비일시적 컴퓨터 판독 가능한 매체에 인코딩 된 컴퓨터 프로그램 지침의 하나 이상의 모듈로 구현될 수 있다. 컴퓨터가 읽을 수 있는 매체는 기계가 읽을 수 있는 스토리지 장치, 기계가 읽을 수 있는 스토리지 기판, 메모리 장치, 기계가 읽을 수 있는 전파 신호에 영향을 미치는 물질의 조성 또는 하나 이상의 조합일 수 있다. 용어 "데이터 처리 장치" 또는 "데이터 처리 장치"는 예를 들어 프로그래밍 가능한 프로세서, 컴퓨터 또는 다중 프로세서 또는 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 장치, 장치 및 기계를 포함한다. 이 장치에는 대응하는 컴퓨터 프로그램에 대한 실행 환경을 만드는 코드(예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 하나 이상의 조합)가 포함될 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 응용 프로그램, 스크립트 또는 코드라고도 함)은 컴파일 되거나 해석된 언어를 포함한 모든 형태의 프로그래밍 언어로 작성할 수 있고 독립 실행형 프로그램 또는 컴퓨팅 환경에서 사용하기에 적합한 모듈, 구성 요소, 서브루틴 또는 기타 유닛으로 포함하여 모든 형태로 배포할 수 있다. 컴퓨터 프로그램이 파일 시스템의 파일에 반드시 대응하는 되는 것은 아니다. 프로그램은 다른 프로그램이나 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트), 대응하는 프로그램에 전념하는 단일 파일 또는 여러 조정된 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드 일부를 저장하는 파일)에 저장할 수 있다. 컴퓨터 프로그램은 한 컴퓨터 또는 한 사이트에 위치하거나 여러 사이트에 분산되고 통신 네트워크에 의해 상호 연결된 여러 컴퓨터에서 실행하도록 배포할 수 있다.
이 사양에 설명된 프로세스 및 논리 흐름은 하나 이상의 프로그래밍 가능한 프로세서가 하나 이상의 프로그래밍 가능한 프로세서에서 수행하여 입력 데이터에서 작동하고 출력을 생성하여 기능을 수행할 수 있다. 프로세스 및 로직 흐름도 수행될 수 있으며, 장치는 특수 목적 논리 회로, 예를 들어 FPGA(필드 프로그래밍 가능한 게이트 어레이) 또는 ASIC(응용 프로그램 별 집적 회로)로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서에는 예를 들어 일반 및 특수 목적 마이크로프로세서와 모든 종류의 디지털 컴퓨터의 하나 이상의 프로세서가 포함된다. 일반적으로 프로세서는 읽기 전용 메모리 또는 임의 액세스 메모리 또는 둘 다에서 지침과 데이터를 받게 된다. 컴퓨터의 필수 요소는 지침과 데이터를 저장하기 위한 하나 이상의 메모리 장치를 수행하기 위한 프로세서이다. 일반적으로 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대량 스토리지 장치(예를 들어, 자기, 마그네토 광학 디스크 또는 광학 디스크)에서 데이터를 수신하거나 전송하기 위해 작동적으로 결합되거나 결합된다. 그러나 컴퓨터에 이러한 장치가 필요하지 않는다. 컴퓨터 프로그램 지침 및 데이터를 저장하는 데 적합한 컴퓨터 판독 가능한 미디어에는 반도체 메모리 장치(예를 들어, EPROM, EEPROM 및 플래시 메모리 장치)를 비롯한 모든 형태의 비휘발성 메모리, 미디어 및 메모리 장치가 포함된다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보충되거나 통합될 수 있다.
이 사양은 도면과 함께 예시적인 예로 간주되며, 예시적인 예시가 예를 의미한다. 본 명세서에서 사용되는 바와 같이, "또는"의 사용은 컨텍스트가 명확하게 달리 나타내지 않는 한 "및/또는"을 포함하기 위한 것이다.
본 특허문서에는 여러 가지 구체적인 내용이 포함되어 있지만, 이는 발명의 범위 나 주장될 수 있는 것의 한계로 해석되어서는 안 되며, 오히려 특정 발명의 특정 실시예에 특정할 수 있는 특징에 대한 설명으로 해석되어서는 안 된다. 이 특허 문서에 기재된 특정 특징은 별도의 실시예의 맥락에서 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 문맥상에 기재되는 다양한 특징은 또한 다중 실시예에서 개별적으로 또는 임의의 적합한 서브 조합에서 구현될 수 있다. 더욱이, 특징은 상시 특정 조합으로 작용하고 심지어 처음에 같은 주장으로 설명될 수 있지만, 청구된 조합으로부터 하나 이상의 특징은 어떤 경우에는 조합으로부터 절제될 수 있으며, 청구된 조합은 서브 조합의 서브 조합 또는 변형으로 향할 수 있다.
마찬가지로, 작업은 특정 순서로 도면에 묘사되는 동안, 이러한 작업이 표시된 특정 순서 또는 순차순서로 수행되거나, 모든 일러스트레이션 작업을 수행하여 바람직한 결과를 달성하도록 요구하는 것으로 이해되어서는 안 된다. 더욱이, 본 특허 문서에 기재된 실시예에서 다양한 시스템 컴포넌트의 분리는 모든 실시예에서 이러한 분리를 요구하는 것으로 이해되어서는 안 된다.
몇 가지 구현 및 예제만 설명되며 이 특허 문서에 설명되고 설명된 내용에 따라 다른 구현, 개선 및 변형을 만들 수 있다.

Claims (26)

  1. 비디오 처리 방법에 있어서,
    비-아핀 모드로 코딩된 비디오의 제1 비디오 블록에 대해, 제1 광학 흐름 계산 절차를 사용하여 상기 제1 비디오 블록에 대한 하나 이상의 제1 초기 예측을 정제함으로써 상기 제1 비디오 블록에 대한 제1 최종 예측 블록을 결정하는 단계 - 각각의 제1 초기 예측은 상기 각각의 제1 초기 예측의 적어도 하나의 그레디언트에 기초하여 정제됨 -;
    상기 제1 최종 예측 블록을 사용하여 상기 제1 비디오 블록과 상기 비디오의 비트스트림 사이의 제1 변환을 수행하는 단계,
    아핀 모드로 코딩된 비디오의 제2 비디오 블록에 대해, 제2 광학 흐름 계산 절차를 사용하여 상기 제2 비디오 블록에 대한 하나 이상의 제2 초기 예측을 정제함으로써 상기 제2 비디오 블록에 대한 제2 최종 예측 블록을 결정하는 단계 - 각각의 제2 초기 예측은 상기 각각의 제2 초기 예측의 적어도 하나의 그레디언트에 기초하여 정제됨 -, 및
    상기 제2 최종 예측 블록을 사용하여 상기 제2 비디오 블록과 상기 비디오의 비트스트림 사이의 제2 변환을 수행하는 단계
    를 포함하고;
    상기 제1 광학 흐름 계산 절차에 대한 그레디언트는 다수의 제1 초기 예측 샘플 사이의 제1 차이에 기초하여 계산되고, 상기 제2 광학 흐름 계산 절차에 대한 그레디언트는 다수의 제2 초기 예측 샘플 사이의 제2 차이에 기초하여 계산되고,
    상기 제1 차이 및 상기 제2 차이는, 상기 제1 광학 흐름 계산 절차에 대한 상기 그레디언트 및 상기 제2 광학 흐름 계산 절차에 대한 상기 그레디언트를 결정하기 위해 동일한 값으로 각각 우측 시프트 되는,
    방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 제1 광학 흐름 계산 절차는,
    양방향 인터 예측 모드에만 사용되고, 및
    상기 제2 광학 흐름 계산 절차는,
    양방향 인터 예측 모드 및 단방향 인터 예측 모드에 사용되는
    방법.
  4. 삭제
  5. 제1항에 있어서,
    각각 gradientH 및 gradientV로 표시되는 각 제1 초기 예측(x, y)의 수평 그레디언트 및 수직 그레디언트는:
    gradientH [ x ][ y ] = (predSamples [ x + 1 ][y] - predSample [ x - 1 ][ y ] ) >> Shift0, gradientV [ x ][ y ] = (predSample[ x ][ y + 1 ] - predSample [ x ][y - 1 ] ) >> Shift1
    중 하나로 계산되는
    방법.
  6. 제1항에 있어서,
    상기 제1 광학 흐름 계산 절차를 위한 상기 그레디언트를 계산하기 위한 레퍼런스 블록 및 상기 제2 광학 흐름 계산 절차를 위한 상기 그레디언트를 계산하기 위한 레퍼런스 블록에 대해, 동일한 패딩 연산이 사용되는
    방법.
  7. 제6항에 있어서,
    상기 제1 광학 흐름 계산 절차를 위한 상기 그레디언트를 계산하기 위한 상기 레퍼런스 블록과 상기 제2 광학 흐름 계산 절차를 위한 상기 레퍼런스를 계산하기 위한 상기 레퍼런스 블록은, 정수 샘플로 패딩 되는
    방법.
  8. 제7항에 있어서,
    상기 패딩 연산은,
    상기 제1 광학 흐름 계산 절차에 대한 상기 그레디언트를 계산하기 위한 상기 레퍼런스 블록 및 상기 제2 광학 흐름 계산 절차에 대한 상기 그레디언트를 계산하기 위한 상기 레퍼런스 블록의 위쪽 이웃 샘플 행, 아래쪽 이웃 샘플 행, 왼쪽 이웃 샘플 열, 및 오른쪽 이웃 샘플 열을 유도하기 위해 사용되고,
    상기 패딩 연산은,
    8탭 보간 필터링 프로세스를 제외하여 적용되는
    방법.
  9. 제1항에 있어서,
    상기 제1 광학 흐름 계산 절차는 양방향 광학 흐름 절차이고,
    상기 제2 광학 흐름 계산 절차는 상기 광학 흐름 절차를 통한 예측 정제인,
    방법.
  10. 제1항에 있어서,
    상기 제1 변환은,
    상기 제1 비디오 블록을 상기 비트스트림으로 인코딩 하는 단계
    를 포함하고,
    상기 제2 변환은,
    상기 제2 비디오 블록을 상기 비트스트림으로 인코딩 하는 단계
    를 포함하는
    방법.
  11. 제1항에 있어서,
    상기 제1 변환은,
    상기 비트스트림으로 부터 상기 제1 비디오 블록을 디코딩 하는 단계
    를 포함하고,
    상기 제2 변환은,
    상기 비트스트림으로 부터 상기 제2 비디오 블록을 디코딩 하는 단계
    를 포함하는
    방법.
  12. 프로세서 및 명령들이 포함된 비일시적 메모리를 포함하는 비디오 데이터를 처리하기 위한 장치에 있어서,
    상기 명령들은,
    상기 프로세서에 의한 실행 시,
    상기 프로세서로 하여금,
    비-아핀 모드로 코딩된 비디오의 제1 비디오 블록에 대해, 제1 광학 흐름 계산 절차를 사용하여 상기 제1 비디오 블록에 대한 하나 이상의 제1 초기 예측을 정제함으로써 상기 제1 비디오 블록에 대한 제1 최종 예측 블록을 결정하고 - 각각의 제1 초기 예측은 상기 각각의 제1 초기 예측의 적어도 하나의 그레디언트에 기초하여 정제됨 -,
    상기 제1 최종 예측 블록을 사용하여 상기 제1 비디오 블록과 상기 비디오의 비트스트림 사이의 제1 변환을 수행하고,
    아핀 모드로 코딩된 비디오의 제2 비디오 블록에 대해, 제2 광학 흐름 계산 절차를 사용하여 상기 제2 비디오 블록에 대한 하나 이상의 제2 초기 예측을 정제함으로써 상기 제2 비디오 블록에 대한 제2 최종 예측 블록을 결정하고 - 각각의 제2 초기 예측은 상기 각각의 제2 초기 예측의 적어도 하나의 그레디언트에 기초하여 정제됨 -, 및
    상기 제2 최종 예측 블록을 사용하여 상기 제2 비디오 블록과 상기 비디오의 비트스트림 사이의 제2 변환을 수행하도록 하고,
    상기 제1 광학 흐름 계산 절차에 대한 그레디언트는 다수의 제1 초기 예측 샘플 사이의 제1 차이에 기초하여 계산되고, 상기 제2 광학 흐름 계산 절차에 대한 그레디언트는 다수의 제2 초기 예측 샘플 사이의 제2 차이에 기초하여 계산되고,
    상기 제1 차이 및 상기 제2 차이는, 상기 제1 광학 흐름 계산 절차에 대한 상기 그레디언트 및 상기 제2 광학 흐름 계산 절차에 대한 상기 그레디언트를 결정하기 위해 동일한 값으로 각각 우측 시프트 되는,
    장치.
  13. 명령들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체에 있어서,
    상기 명령들은,
    프로세서로 하여금,
    비-아핀 모드로 코딩된 비디오의 제1 비디오 블록에 대해, 제1 광학 흐름 계산 절차를 사용하여 상기 제1 비디오 블록에 대한 하나 이상의 제1 초기 예측을 정제함으로써 상기 제1 비디오 블록에 대한 제1 최종 예측 블록을 결정하고 - 각각의 제1 초기 예측은 상기 각각의 제1 초기 예측의 적어도 하나의 그레디언트에 기초하여 정제됨 -,
    상기 제1 최종 예측 블록을 사용하여 상기 제1 비디오 블록과 상기 비디오의 비트스트림 사이의 제1 변환을 수행하고,
    아핀 모드로 코딩된 비디오의 제2 비디오 블록에 대해, 제2 광학 흐름 계산 절차를 사용하여 상기 제2 비디오 블록에 대한 하나 이상의 제2 초기 예측을 정제함으로써 상기 제2 비디오 블록에 대한 제2 최종 예측 블록을 결정하고 - 각각의 제2 초기 예측은 상기 각각의 제2 초기 예측의 적어도 하나의 그레디언트에 기초하여 정제됨 -, 및
    상기 제2 최종 예측 블록을 사용하여 상기 제2 비디오 블록과 상기 비디오의 비트스트림 사이의 제2 변환을 수행하도록 하고,
    상기 제1 광학 흐름 계산 절차에 대한 그레디언트는 다수의 제1 초기 예측 샘플 사이의 제1 차이에 기초하여 계산되고, 상기 제2 광학 흐름 계산 절차에 대한 그레디언트는 다수의 제2 초기 예측 샘플 사이의 제2 차이에 기초하여 계산되고,
    상기 제1 차이 및 상기 제2 차이는, 상기 제1 광학 흐름 계산 절차에 대한 상기 그레디언트 및 상기 제2 광학 흐름 계산 절차에 대한 상기 그레디언트를 결정하기 위해 동일한 값으로 각각 우측 시프트 되는,
    비일시적 컴퓨터 판독가능 저장 매체.
  14. 비디오 처리 장치에 의해 수행되는 방법에 의해 생성된 비디오의 비트스트림을 저장하는 비일시적 컴퓨터 판독가능 기록 매체에 있어서,
    상기 방법은,
    비-아핀 모드로 코딩된 비디오의 제1 비디오 블록에 대해, 제1 광학 흐름 계산 절차를 사용하여 상기 제1 비디오 블록에 대한 하나 이상의 제1 초기 예측을 정제함으로써 상기 제1 비디오 블록에 대한 제1 최종 예측 블록을 결정하는 단계 - 각각의 제1 초기 예측은 상기 각각의 제1 초기 예측의 적어도 하나의 그레디언트에 기초하여 정제됨 -;
    상기 제1 최종 예측 블록에 기초하여 상기 비트스트림을 생성하는 단계;
    아핀 모드로 코딩된 비디오의 제2 블록에 대해, 제2 광학 흐름 계산 절차를 사용하여 상기 제2 비디오 블록에 대한 하나 이상의 제2 초기 예측을 정제함으로써 상기 제2 비디오 블록에 대한 제2 최종 예측 블록을 결정하는 단계 - 각각의 제2 초기 예측은 상기 각각의 제2 초기 예측의 적어도 하나의 그레디언트에 기초하여 정제됨 -; 및
    상기 제2 최종 예측 블록을 사용하여 상기 제2 비디오 블록과 상기 비디오의 비트스트림 사이의 제2 변환을 수행하는 단계
    를 포함하고
    상기 제1 광학 흐름 계산 절차에 대한 그레디언트는 다수의 제1 초기 예측 샘플 사이의 제1 차이에 기초하여 계산되고, 상기 제2 광학 흐름 계산 절차에 대한 그레디언트는 다수의 제2 초기 예측 샘플 사이의 제2 차이에 기초하여 계산되고,
    상기 제1 차이 및 상기 제2 차이는, 상기 제1 광학 흐름 계산 절차에 대한 상기 그레디언트 및 상기 제2 광학 흐름 계산 절차에 대한 상기 그레디언트를 결정하기 위해 동일한 값으로 각각 우측 시프트 되는,
    비일시적 컴퓨터 판독가능 기록 매체.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
KR1020217031768A 2019-04-19 2020-04-20 상이한 모션 벡터 정제의 그레디언트 계산 KR102662024B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CNPCT/CN2019/083434 2019-04-19
CN2019083434 2019-04-19
CN2019092762 2019-06-25
CNPCT/CN2019/092762 2019-06-25
PCT/CN2020/085662 WO2020211865A1 (en) 2019-04-19 2020-04-20 Gradient calculation in different motion vector refinements

Publications (2)

Publication Number Publication Date
KR20210152470A KR20210152470A (ko) 2021-12-15
KR102662024B1 true KR102662024B1 (ko) 2024-05-21

Family

ID=72837050

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217031768A KR102662024B1 (ko) 2019-04-19 2020-04-20 상이한 모션 벡터 정제의 그레디언트 계산

Country Status (6)

Country Link
US (2) US11356697B2 (ko)
EP (2) EP3922015A4 (ko)
JP (2) JP7319386B2 (ko)
KR (1) KR102662024B1 (ko)
CN (2) CN113728626B (ko)
WO (2) WO2020211865A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113661708B (zh) 2019-04-02 2023-12-15 北京字节跳动网络技术有限公司 基于双向光流的视频编解码和解码
CN113711609B (zh) 2019-04-19 2023-12-01 北京字节跳动网络技术有限公司 利用光流的预测细化过程中的增量运动矢量
KR102662024B1 (ko) 2019-04-19 2024-05-21 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 상이한 모션 벡터 정제의 그레디언트 계산
WO2020211866A1 (en) 2019-04-19 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. Applicability of prediction refinement with optical flow process
WO2020233662A1 (en) 2019-05-21 2020-11-26 Beijing Bytedance Network Technology Co., Ltd. Syntax signaling for optical-flow based inter coding
CN114026851A (zh) * 2019-06-21 2022-02-08 Vid拓展公司 利用光流的运动补偿的精度细化
WO2021047540A1 (en) 2019-09-09 2021-03-18 Beijing Bytedance Network Technology Co., Ltd. Coefficient scaling for high precision image and video coding
CN114365500A (zh) * 2019-09-20 2022-04-15 瑞典爱立信有限公司 具有移位操作的双向光流简化的视频编码和/或解码的方法及相关装置
EP4018648A4 (en) 2019-09-21 2022-11-23 Beijing Bytedance Network Technology Co., Ltd. HIGH PRECISION TRANSFORMATION AND QUANTIZATION FOR IMAGE AND VIDEO CODING
WO2021068956A1 (en) 2019-10-12 2021-04-15 Beijing Bytedance Network Technology Co., Ltd. Prediction type signaling in video coding
EP4032290A4 (en) 2019-10-18 2022-11-30 Beijing Bytedance Network Technology Co., Ltd. SYNTAX CONSTRAINTS IN REPORTING SUBPICTURE PARAMETER SETS
KR20220113379A (ko) 2019-12-27 2022-08-12 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 픽처 헤더의 슬라이스 유형의 시그널링
US20230021722A1 (en) * 2021-07-20 2023-01-26 Mediatek Inc. Apparatus and method for performing motion vector refinement to get more precise motion vectors
US20230291908A1 (en) * 2022-02-04 2023-09-14 Tencent America LLC Affine estimation in pre-analysis of encoder
EP4258666A1 (en) * 2022-04-07 2023-10-11 Beijing Xiaomi Mobile Software Co., Ltd. Encoding/decoding video picture data
US20240022758A1 (en) * 2022-07-12 2024-01-18 Tencent America LLC Full-pixel based and group-based motion compensated picture boundary padding
WO2024012052A1 (en) * 2022-07-15 2024-01-18 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing

Family Cites Families (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101703362B1 (ko) 2008-09-04 2017-02-06 톰슨 라이센싱 암시적 모션 예측을 이용한 예측 리파인먼트를 위한 방법들 및 장치들
JP2011142585A (ja) * 2010-01-08 2011-07-21 Sony Corp 画像処理装置、情報記録媒体、および画像処理方法、並びにプログラム
KR101529992B1 (ko) 2010-04-05 2015-06-18 삼성전자주식회사 픽셀 그룹별 픽셀값 보상을 위한 비디오 부호화 방법과 그 장치, 및 픽셀 그룹별 픽셀값 보상을 위한 비디오 복호화 방법과 그 장치
JP5768662B2 (ja) 2011-10-31 2015-08-26 富士通株式会社 動画像復号装置、動画像符号化装置、動画像復号方法、動画像符号化方法、動画像復号プログラム及び動画像符号化プログラム
US9503720B2 (en) 2012-03-16 2016-11-22 Qualcomm Incorporated Motion vector coding and bi-prediction in HEVC and its extensions
US10390041B2 (en) 2012-03-30 2019-08-20 Sun Patent Trust Predictive image coding and decoding using two reference pictures
EP2908530A4 (en) 2012-10-12 2016-04-13 Korea Electronics Telecomm IMAGE ENCODING / DECODING METHOD AND DEVICE USING THE SAME
US10412419B2 (en) 2013-07-12 2019-09-10 Qualcomm Incorporated Adaptive filtering in video coding
KR102028186B1 (ko) 2013-09-20 2019-10-02 브이아이디 스케일, 인크. 색역 확장성을 위한 3d 룩업 테이블 코딩을 제공하기 위한 시스템 및 방법
CN105409221B (zh) 2014-04-29 2020-03-06 微软技术许可有限责任公司 用于样本自适应偏移滤波的编码器侧决策
AU2014202921B2 (en) 2014-05-29 2017-02-02 Canon Kabushiki Kaisha Method, apparatus and system for de-blocking a block of video samples
US10200717B2 (en) 2014-06-19 2019-02-05 Sharp Kabushiki Kaisha Image decoding device, image coding device, and predicted image generation device
KR20170078682A (ko) 2014-11-04 2017-07-07 삼성전자주식회사 에지 타입의 오프셋을 적용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
SG11201703454XA (en) 2014-11-18 2017-06-29 Mediatek Inc Method of bi-prediction video coding based on motion vectors from uni-prediction and merge candidate
US10158836B2 (en) 2015-01-30 2018-12-18 Qualcomm Incorporated Clipping for cross-component prediction and adaptive color transform for video coding
US10057574B2 (en) 2015-02-11 2018-08-21 Qualcomm Incorporated Coding tree unit (CTU) level adaptive loop filter (ALF)
JP6532962B2 (ja) 2015-06-09 2019-06-19 華為技術有限公司Huawei Technologies Co.,Ltd. 画像符号化方法、画像復号方法、符号化デバイス、および復号デバイス
CN107925773B (zh) 2015-06-11 2022-06-07 杜比实验室特许公司 使用自适应去块滤波编码和解码图像的方法及其装置
US20180139469A1 (en) 2015-06-19 2018-05-17 Nokia Technologies Oy An Apparatus, A Method and A Computer Program for Video Coding and Decoding
CA2999826C (en) 2015-09-25 2020-10-13 Huawei Technologies Co., Ltd. Apparatus and method for video motion compensation with selectable interpolation filter
BR112018010207A2 (pt) 2015-11-18 2018-11-21 Mediatek Inc método e aparelho para o modo de predição intra usando filtro de predição intra em compressão de vídeo e imagem
KR20180075558A (ko) 2015-11-24 2018-07-04 삼성전자주식회사 비디오 복호화 방법 및 장치, 그 부호화 방법 및 장치
GB2561507B (en) 2016-01-07 2021-12-22 Mediatek Inc Method and apparatus for affine merge mode prediction for video coding system
US10887619B2 (en) 2016-02-03 2021-01-05 Sharp Kabushiki Kaisha Moving image decoding device, moving image coding device, and prediction image generation device
CN108781294B (zh) 2016-02-05 2021-08-31 联发科技股份有限公司 视频数据的运动补偿方法及装置
US11405611B2 (en) 2016-02-15 2022-08-02 Qualcomm Incorporated Predicting filter coefficients from fixed filters for video coding
US11095898B2 (en) 2016-03-28 2021-08-17 Lg Electronics Inc. Inter-prediction mode based image processing method, and apparatus therefor
EP3446480A1 (en) 2016-04-22 2019-02-27 VID SCALE, Inc. Prediction systems and methods for video coding based on filtering nearest neighboring pixels
JP2019519972A (ja) 2016-05-05 2019-07-11 ヴィド スケール インコーポレイテッド イントラコーディングのための制御点ベースのイントラ方向表現
BR112018073434A2 (pt) 2016-05-13 2019-03-26 Interdigital Vc Holdings, Inc. método e aparelho para codificação de vídeo com corte adaptativo
EP3456049B1 (en) 2016-05-13 2022-05-04 VID SCALE, Inc. Systems and methods for generalized multi-hypothesis prediction for video coding
US10560712B2 (en) 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
US20180041778A1 (en) 2016-08-02 2018-02-08 Qualcomm Incorporated Geometry transformation-based adaptive loop filtering
US10728572B2 (en) * 2016-09-11 2020-07-28 Lg Electronics Inc. Method and apparatus for processing video signal by using improved optical flow motion vector
WO2018061563A1 (ja) 2016-09-27 2018-04-05 シャープ株式会社 アフィン動きベクトル導出装置、予測画像生成装置、動画像復号装置、および動画像符号化装置
US10631002B2 (en) 2016-09-30 2020-04-21 Qualcomm Incorporated Frame rate up-conversion coding mode
US10448010B2 (en) 2016-10-05 2019-10-15 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding
US10341659B2 (en) 2016-10-05 2019-07-02 Qualcomm Incorporated Systems and methods of switching interpolation filters
WO2018105579A1 (ja) 2016-12-09 2018-06-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
EP3565245A4 (en) 2017-01-04 2019-11-27 Samsung Electronics Co., Ltd. VIDEO CODING METHOD AND DEVICE AND VIDEO CODING METHOD AND DEVICE
US20180199057A1 (en) 2017-01-12 2018-07-12 Mediatek Inc. Method and Apparatus of Candidate Skipping for Predictor Refinement in Video Coding
US10701366B2 (en) * 2017-02-21 2020-06-30 Qualcomm Incorporated Deriving motion vector information at a video decoder
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
BR112019018922A8 (pt) * 2017-03-16 2023-02-07 Mediatek Inc Método e aparelho de refinamento de movimento com base em fluxo óptico bi-direcional para codificação de vídeo
US10491917B2 (en) 2017-03-22 2019-11-26 Qualcomm Incorporated Decoder-side motion vector derivation
CN116708829A (zh) * 2017-04-24 2023-09-05 Sk电信有限公司 编解码视频数据的装置、发送编码视频数据比特流的方法
US10805630B2 (en) * 2017-04-28 2020-10-13 Qualcomm Incorporated Gradient based matching for motion search and derivation
CN116437106A (zh) 2017-05-19 2023-07-14 松下电器(美国)知识产权公司 编码方法和解码方法
CN107277316B (zh) 2017-06-12 2020-05-12 京东方科技集团股份有限公司 显示装置及其制造方法
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
EP3649780A1 (en) 2017-07-03 2020-05-13 Vid Scale, Inc. Motion-compensation prediction based on bi-directional optical flow
US10757442B2 (en) 2017-07-05 2020-08-25 Qualcomm Incorporated Partial reconstruction based template matching for motion vector derivation
WO2019040075A1 (en) 2017-08-24 2019-02-28 Ford Global Technologies, Llc ENHANCED FUEL SUPPLYING OF VEHICLE
US10609384B2 (en) 2017-09-21 2020-03-31 Futurewei Technologies, Inc. Restriction on sub-block size derivation for affine inter prediction
WO2019070770A1 (en) 2017-10-02 2019-04-11 Arris Enterprises Llc SYSTEM AND METHOD FOR REDUCING BLOCKED ARTIFACTS AND PRODUCING ENHANCED ENCODING EFFICIENCY
US10757417B2 (en) 2018-01-20 2020-08-25 Qualcomm Incorporated Affine motion compensation in video coding
KR20210016581A (ko) 2018-06-05 2021-02-16 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Ibc 및 atmvp 간의 상호 작용
US11303923B2 (en) 2018-06-15 2022-04-12 Intel Corporation Affine motion compensation for current picture referencing
CN116347099A (zh) 2018-06-19 2023-06-27 北京字节跳动网络技术有限公司 没有运动矢量预测截断的选择的运动矢量差精度
CN116095312A (zh) 2018-08-04 2023-05-09 北京字节跳动网络技术有限公司 视频处理方法、装置和计算机可读介质
CN116546213A (zh) 2018-09-19 2023-08-04 北京字节跳动网络技术有限公司 具有自适应运动矢量分辨率的仿射模式的语法重用
EP3834418A1 (en) 2018-09-23 2021-06-16 Beijing Bytedance Network Technology Co. Ltd. Modification of motion vector with adaptive motion vector resolution
WO2020070612A1 (en) 2018-10-06 2020-04-09 Beijing Bytedance Network Technology Co., Ltd. Improvement for temporal gradient calculating in bio
CN111357294B (zh) 2018-10-23 2022-12-30 北京字节跳动网络技术有限公司 基于子块的运动信息列表的简化熵编解码
JP7231727B2 (ja) 2018-11-05 2023-03-01 北京字節跳動網絡技術有限公司 精緻化を伴うインター予測のための補間
CN113170097B (zh) 2018-11-20 2024-04-09 北京字节跳动网络技术有限公司 视频编解码模式的编解码和解码
CN113366834A (zh) 2018-11-26 2021-09-07 弗劳恩霍夫应用研究促进协会 使用切片独立约束的间预测概念
GB2580173B (en) 2018-12-21 2022-07-27 Canon Kk A filter
CN113728645A (zh) 2019-02-20 2021-11-30 北京达佳互联信息技术有限公司 用于基于尾数-指数表示的帧间预测的运动矢量舍入、裁剪和存储的方法和装置
US20200296405A1 (en) 2019-03-14 2020-09-17 Qualcomm Incorporated Affine motion compensation refinement using optical flow
CN113632484A (zh) 2019-03-15 2021-11-09 北京达佳互联信息技术有限公司 用于双向光流的比特宽度控制的方法和设备
SG11202109031TA (en) 2019-03-18 2021-09-29 Tencent America LLC Method and apparatus for video coding
US11343525B2 (en) 2019-03-19 2022-05-24 Tencent America LLC Method and apparatus for video coding by constraining sub-block motion vectors and determining adjustment values based on constrained sub-block motion vectors
US11962796B2 (en) 2019-04-01 2024-04-16 Qualcomm Incorporated Gradient-based prediction refinement for video coding
CN113661708B (zh) 2019-04-02 2023-12-15 北京字节跳动网络技术有限公司 基于双向光流的视频编解码和解码
WO2020211866A1 (en) 2019-04-19 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. Applicability of prediction refinement with optical flow process
CN113711609B (zh) 2019-04-19 2023-12-01 北京字节跳动网络技术有限公司 利用光流的预测细化过程中的增量运动矢量
KR102662024B1 (ko) 2019-04-19 2024-05-21 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 상이한 모션 벡터 정제의 그레디언트 계산
US20210092390A1 (en) 2019-09-23 2021-03-25 Alibaba Group Holding Limited Methods and apparatuses for prediction refinement with optical flow in reference picture resampling

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LUO (INTERDIGITAL) J ET AL: "CE2-related: Prediction refinement with optical flow for affine mode", Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 14th Meeting: Geneva, CH, 19-27 March 2019, JVET-N0236-v7.*
XIO (KWAI) X ET AL: "CE9-related: Improvements on bi-directional optical flow (BDOF)", Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 14th Meeting: Geneva, CH, 19-27 March 2019, JVET-N0325-v3.*
XIU ET AL: "CE9.1: Simplifications on bi-directional optical flow (BDOF)", Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 13th Meeting: Marrakech, MA, 9-18 Jan. 2019, JVET-M0487-v2.*

Also Published As

Publication number Publication date
WO2020211864A1 (en) 2020-10-22
US11924463B2 (en) 2024-03-05
US20220070490A1 (en) 2022-03-03
WO2020211865A1 (en) 2020-10-22
EP3922015A4 (en) 2022-07-20
KR20210152470A (ko) 2021-12-15
EP3922015A1 (en) 2021-12-15
CN113728630A (zh) 2021-11-30
US11356697B2 (en) 2022-06-07
JP2023145563A (ja) 2023-10-11
EP4304178A2 (en) 2024-01-10
JP7319386B2 (ja) 2023-08-01
CN113728626A (zh) 2021-11-30
CN113728630B (zh) 2023-11-17
JP2022527852A (ja) 2022-06-06
EP4304178A3 (en) 2024-03-06
CN113728626B (zh) 2023-05-30
US20210368203A1 (en) 2021-11-25

Similar Documents

Publication Publication Date Title
KR102662024B1 (ko) 상이한 모션 벡터 정제의 그레디언트 계산
KR102613889B1 (ko) 적응적 움직임 벡터 해상도를 갖는 움직임 벡터 수정
CN110933420B (zh) 仿射模式中自适应运动矢量分辨率的快速算法
CN113711609B (zh) 利用光流的预测细化过程中的增量运动矢量
US11368711B2 (en) Applicability of prediction refinement with optical flow process
WO2020084461A1 (en) Restrictions on decoder side motion vector derivation based on coding information
WO2020084462A1 (en) Restrictions on decoder side motion vector derivation based on block size
WO2020031059A1 (en) Constraints for usage of updated motion information
US11330289B2 (en) Context for coding affine mode adaptive motion vector resolution
WO2020156517A1 (en) Fast algorithms for symmetric motion vector difference coding mode
WO2020016859A2 (en) Motion prediction based on updated motion vectors
CN114503596B (zh) 运动矢量细化和其他编解码工具之间的相互作用
WO2020049512A1 (en) Two-step inter prediction

Legal Events

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