KR20190031208A - 자동 모션 정보 세분화를 이용한 비디오 코딩을 위한 방법 및 장치 - Google Patents

자동 모션 정보 세분화를 이용한 비디오 코딩을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20190031208A
KR20190031208A KR1020187037849A KR20187037849A KR20190031208A KR 20190031208 A KR20190031208 A KR 20190031208A KR 1020187037849 A KR1020187037849 A KR 1020187037849A KR 20187037849 A KR20187037849 A KR 20187037849A KR 20190031208 A KR20190031208 A KR 20190031208A
Authority
KR
South Korea
Prior art keywords
motion vector
motion
vector predictor
resolution
predictor
Prior art date
Application number
KR1020187037849A
Other languages
English (en)
Inventor
프랑크 갈팡
파비앙 라까프
땅기 푸아리에
필립 보르드
Original Assignee
인터디지털 브이씨 홀딩스 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터디지털 브이씨 홀딩스 인코포레이티드 filed Critical 인터디지털 브이씨 홀딩스 인코포레이티드
Publication of KR20190031208A publication Critical patent/KR20190031208A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding

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

특정의 구현들에서, 비디오 디코더는 현재 블록에 대한 비트스트림으로부터 디코딩된 초기 모션 벡터 예측자를 세분화할 수 있다. 시그널링 오버헤드를 감소시키기 위해, 디코더는 이미 이용가능한 정보에 기초하여, 예를 들어, 모션 필드가 현재 블록 주위에서 균일한지 및 인접 블록들에 특정 레벨의 텍스처 강도가 있는지에 기초하여, 모션 세분화가 사용되는지 여부를 결정할 수 있다. 비트스트림으로부터 디코딩된 모션 벡터 차이는 비트스트림에서 명시적 시그널링을 수신함이 없이 모션 세분화를 자동으로 활성화 또는 비활성화시키는데 사용될 수 있다. 예를 들어, 모션 벡터 차이가 임계값보다 더 작을 때, 모션 세분화가 자동으로 활성화되고, 모션 벡터 차이가 다른 임계값보다 더 클 때, 모션 세분화가 자동으로 비활성화된다. 대응하는 비디오 인코더는 인코더 결정들에 기초하여 모션 세분화를 사용하고 시그널링할지를 선택할 수 있다.

Description

자동 모션 정보 세분화를 이용한 비디오 코딩을 위한 방법 및 장치
본 원리들은 일반적으로 비디오 인코딩 및 디코딩을 위한 방법 및 장치에 관한 것으로, 보다 상세하게는 모션 정보 세분화를 이용한 비디오 인코딩 및 디코딩을 위한 방법 및 장치에 관한 것이다.
높은 압축 효율을 달성하기 위해, 이미지 및 비디오 코딩 스킴들은 비디오 콘텐츠에서의 공간적 및 시간적 리던던시(spatial and temporal redundancy)를 레버리지(leverage)하기 위해 보통 예측 및 변환을 이용한다. 일반적으로, 인트라(intra) 또는 인터(inter) 예측이 인트라 또는 인터 프레임 상관을 이용하는 데 사용되고, 이어서, 종종 예측 에러들 또는 예측 잔차들로서 표시되는, 원래의 이미지(original image)와 예측된 이미지(predicted image) 간의 차이들이 변환되고, 양자화되며, 엔트로피 코딩된다. 비디오를 재구성하기 위해, 압축된 데이터(compressed data)가 예측, 변환, 양자화 및 엔트로피 코딩에 대응하는 역 프로세스들(inverse processes)에 의해 디코딩된다.
일반 양태에 따르면, 비디오의 현재 블록에 대한 초기 모션 벡터 예측자(initial motion vector predictor)에 액세스하는 단계 - 초기 모션 벡터 예측자는 제1 모션 분해능(motion resolution)과 연관됨 -; 모션 벡터 차이(motion vector difference)에 기초하여, 초기 모션 벡터 예측자를 세분화(refine)할지 여부를 결정하는 단계; 및 초기 모션 벡터 예측자가 세분화되는 것으로 결정되는 경우, 세분화된 모션 벡터 예측자를 형성하기 위해 모션 탐색(motion search)에 기초하여 초기 모션 벡터 예측자를 세분화하고 세분화된 모션 벡터 예측자에 기초하여 현재 블록을 디코딩하는 단계 - 세분화된 모션 벡터 예측자는 제2 모션 분해능과 연관되고, 제2 모션 분해능은 제1 모션 분해능보다 더 높음 - 를 포함하는 비디오 디코딩을 위한 방법이 제시된다.
모션 벡터 차이의 크기가 제1 임계값보다 더 작을 때, 초기 모션 벡터 예측자는 세분화되는 것으로 결정될 수 있다. 모션 벡터 차이의 크기가 제2 임계값을 초과할 때, 초기 모션 벡터 예측자는 세분화되지 않는 것으로 결정될 수 있고, 현재 블록은 초기 모션 벡터 예측자에 기초하여 디코딩된다. 여기서, 모션 세분화의 활성화 또는 비활성화는, 명시적 시그널링을 이용함이 없이, 자동으로 수행된다.
모션 벡터 차이의 크기가 제1 임계값을 초과하지만 제2 임계값을 초과하지 않을 때, 플래그가 비트스트림으로부터 디코딩될 수 있고, 초기 모션 벡터 예측자가 세분화되어야 하는지 여부는 디코딩된 플래그에 기초한다.
인접한 디코딩된 블록들의 모션 벡터가 또한 모션 세분화를 수행할지 여부를 결정하는 데 사용될 수 있다. 예를 들어, 현재 블록에 대한 초기 모션 벡터 예측자와 인접한 디코딩된 블록들의 적어도 하나의 모션 벡터 사이의 차이가 제3 임계값보다 더 작은 경우, 초기 모션 벡터 예측자는 세분화되는 것으로 결정된다. 그에 부가하여, 텍스처 레벨(texture level)이 또한 사용될 수 있다. 예를 들어, 인접한 디코딩된 블록들의 복수의 픽셀들의 텍스처 레벨이 제4 임계값을 초과하는 경우, 초기 모션 벡터 예측자는 세분화되는 것으로 결정된다.
다른 일반 양태에 따르면, 초기 모션 벡터 예측자에 액세스하는 단계 - 초기 모션 벡터 예측자는 제1 모션 분해능과 연관됨 -; 초기 모션 벡터 예측자에 대응하는 모션 벡터 차이에 기초하여, 초기 모션 벡터 예측자의 세분화를 명시적으로 시그널링할지 여부를 결정하는 단계 - 세분화는 제2 모션 분해능과 연관되고, 제2 모션 분해능은 제1 모션 분해능보다 더 높음 -; 및 모션 벡터 차이를 인코딩하는 단계를 포함하는 비디오 인코딩을 위한 방법이 제시된다.
모션 벡터 차이의 크기가 제1 임계값보다는 더 작지만 제2 임계값보다는 더 작지 않을 때, 초기 모션 벡터 예측자의 세분화가 명시적으로 시그널링되지 않는다. 모션 벡터 차이의 크기가 제2 임계값을 초과할 때, 초기 모션 벡터 예측자의 세분화가 명시적으로 시그널링하는 일 없이 비활성화된다.
모션 벡터 차이의 크기가 제1 임계값을 초과할 때, 초기 모션 벡터 예측자가 세분화되어야 하는지 여부를 명시적으로 시그널링하기 위해 플래그가 비트스트림에 인코딩된다.
인접한 재구성된 블록들의 모션 벡터가 또한 모션 세분화를 수행할지 여부를 결정하는 데 사용될 수 있다. 예를 들어, 현재 블록에 대한 초기 모션 벡터 예측자와 인접한 재구성된 블록들의 적어도 하나의 모션 벡터 사이의 차이가 제3 임계값보다 더 작은 경우, 초기 모션 벡터 예측자는 세분화되는 것으로 결정된다. 그에 부가하여, 텍스처 레벨이 또한 사용될 수 있다. 예를 들어, 복수의 픽셀들의 텍스처 레벨이 제4 임계값을 초과하는 경우, 초기 모션 벡터 예측자는 세분화되는 것으로 결정된다.
본 실시예들은 또한 이 방법들을 수행하기 위한 장치를 제공한다.
본 실시예들은 또한 앞서 기술된 방법들 중 임의의 것을 수행하기 위한 명령어들을 저장하고 있는 비일시적 컴퓨터 판독가능 저장 매체를 제공한다.
본 실시예들은 또한 앞서 기술된 방법들에 따라 생성된 비트스트림을 제공한다.
도 1은 예시적인 HEVC(High Efficiency Video Coding) 인코더를 예시하고 있다.
도 2a는 현재 블록에 대한 5개의 공간 후보 {a1, b1, b0, a0, b2}의 위치들을 묘사하는 그림 예(pictorial example)이고, 도 2b는 AMVP(Advanced Motion Vector Prediction)를 사용하는 예시적인 모션 벡터 표현을 묘사하는 그림 예이며, 도 2c는 모션 보상된 예측을 묘사하는 그림 예이다.
도 3은 예시적인 HEVC 비디오 디코더의 블록 다이어그램을 예시하고 있다.
도 4는 본 원리들의 일 실시예에 따른, 디코더에서 모션 벡터 세분화를 수행하기 위한 예시적인 방법을 예시하고 있다.
도 5는 정수 픽셀들, 1/2 픽셀들, 1/4 픽셀들 및 1/8 픽셀들에 대한 픽셀 위치들을 묘사하는 그림 예이다.
도 6a는 디코딩될 예시적인 PU을 예시하고, 도 6b는 불연속성을 측정하기 위한 이웃하는 재구성된 샘플들의 L자형 세트 및 예측 샘플들의 L자형 세트를 예시하는 그림 예이다.
도 7a는 국부 그레이디언트들(local gradients)을 예시하는 그림 예이고, 도 7b는 그레이디언트들의 2차 모멘트들을 예시하는 그림 예이다.
도 8은 본 원리들의 일 실시예에 따른, 인코더에서 모션 벡터 세분화를 수행하기 위한 예시적인 방법을 예시하고 있다.
도 9는 본 원리들의 일 실시예에 따른, 디코더에서 모션 벡터 예측자 세분화를 수행하기 위한 예시적인 방법을 예시하고 있다.
도 10은 본 원리들의 일 실시예에 따른, 인코더에서 모션 벡터 예측자 세분화를 수행하기 위한 예시적인 방법을 예시하고 있다.
도 11은 본 원리들의 일 실시예에 따른, 디코더에서 자동 모션 세분화 활성화를 이용한 모션 벡터 예측자 세분화를 수행하기 위한 예시적인 방법을 예시하고 있다.
도 12는 본 원리들의 일 실시예에 따른, 인코더에서 자동 모션 세분화 활성화를 이용한 모션 벡터 예측자 세분화를 수행하기 위한 예시적인 방법을 예시하고 있다.
도 13은 본 원리들의 일 실시예에 따른, 특정의 MVP에 대해 적응 모션 세분화(adaptive motion refinement)를 사용할지 여부를 결정하기 위한 예시적인 방법을 예시하고 있다.
도 14는 본 원리들의 예시적인 실시예들의 다양한 양태들이 구현될 수 있는 예시적인 시스템의 블록 다이어그램을 예시하고 있다.
도 1은 예시적인 HEVC(High Efficiency Video Coding) 인코더(100)를 예시하고 있다. 하나 이상의 픽처를 갖는 비디오 시퀀스를 인코딩하기 위해, 픽처가 하나 이상의 슬라이스로 파티셔닝되고(partitioned) 여기서 각각의 슬라이스는 하나 이상의 슬라이스 세그먼트를 포함할 수 있다. 슬라이스 세그먼트는 코딩 유닛들(coding units), 예측 유닛들(prediction units) 및 변환 유닛들(transform units)로 조직화된다.
HEVC 규격은 "블록들"과 "유닛들"을 구별하며, 여기서 "블록"은 샘플 어레이(예컨대, 루마(luma), Y) 내의 특정 구역을 말하고(address), "유닛"은 모든 인코딩된 컬러 성분들(Y, Cb, Cr, 또는 모노크롬(monochrome)), 신택스 요소들 및 블록과 연관된 예측 데이터(예컨대, 모션 벡터들)의 동일 위치 블록(collocated block)을 포함한다.
코딩을 위해, 픽처가 구성가능한 크기를 갖는 정사각형 형상의 코딩 트리 블록들(CTB)로 파티셔닝되고, 연속적인 코딩 트리 블록들의 세트가 슬라이스로 그룹화된다. 코딩 트리 유닛(CTU)은 인코딩된 컬러 성분들의 CTB들을 포함한다. CTB는 코딩 블록들(CB)로의 쿼드트리 파티셔닝(quadtree partitioning)의 루트이고, 코딩 블록은 하나 이상의 예측 블록(PB)으로 파티셔닝되고 변환 블록들(TB들)로의 쿼드트리 파티셔닝의 루트를 형성한다. 코딩 블록, 예측 블록 및 변환 블록에 대응하여, 코딩 유닛(CU)은 예측 유닛들(PU들) 및 변환 유닛들(TU들)의 트리-구조 세트를 포함하고, PU는 모든 컬러 성분들에 대한 예측 정보를 포함하며, TU는 각각의 컬러 성분에 대한 잔차 코딩 신택스 구조(residual coding syntax structure)를 포함한다. 루마 성분의 CB, PB 및 TB의 크기가 대응하는 CU, PU 및 TU에 적용된다. 본 출원에서, "블록"이라는 용어는 CTU, CU, PU, TU, CB, PB 및 TB 중 어느 하나를 지칭하는 데 사용될 수 있다. 그에 부가하여, "블록"은 또한 H.264/AVC 또는 다른 비디오 코딩 표준들에 규정된 바와 같이 매크로블록, 파티션 및 서브블록을 지칭하는 데, 그리고 보다 일반적으로 다양한 크기들의 데이터 어레이를 지칭하는 데 사용될 수 있다.
예시적인 인코더(100)에서, 픽처가 이하에서 기술되는 바와 같이 인코더 요소들에 의해 인코딩된다. 인코딩될 픽처가 CU들의 단위들로 프로세싱된다. 각각의 CU는 인트라 또는 인터 모드 중 어느 하나를 사용하여 인코딩된다. CU가 인트라 모드에서 인코딩될 때, 인코더는 인트라 예측을 수행한다(160). 인터 모드에서, 모션 추정(175) 및 보상(170)이 수행된다. 인코더는 CU를 인코딩하기 위해 인트라 모드 또는 인터 모드 중 어느 모드를 사용할지를 결정하고(105), 인트라/인터 결정을 예측 모드 플래그에 의해 표시한다. 예측 잔차들은 원래의 이미지 블록으로부터 예측된 블록을 차감(110)하는 것에 의해 산출된다.
인트라 모드에서의 CU들은 동일한 슬라이스 내의 재구성된 이웃 샘플들로부터 예측된다. DC 예측 모드, 평면 예측 모드 및 33개의 각도 예측 모드를 포함한, 35개의 인트라 예측 모드들의 세트가 HEVC에서 이용가능하다. 인트라 예측 기준은 현재 블록에 인접한 로우(row) 및 칼럼(column)으로부터 재구성된다. 기준은 이전에 재구성된 블록들로부터의 이용가능한 샘플들을 사용하여 수평 및 수직 방향으로 블록 크기의 두 배에 걸쳐 연장된다. 인트라 예측을 위해 각도 예측 모드가 사용될 때, 각도 예측 모드에 의해 표시된 방향을 따라 기준 픽셀들이 복사될 수 있다.
현재 블록에 대한 적용가능한 루마 인트라 예측 모드는 2개의 상이한 옵션을 사용하여 코딩될 수 있다. 적용가능한 모드가 3개의 가장 가능성 있는 모드(most probable modes)(MPM)의 구성된 리스트(constructed list)에 포함되는 경우, 모드는 MPM 리스트에서의 인덱스에 의해 시그널링된다. 그렇지 않은 경우, 모드는 모드 인덱스의 고정 길이 이진화(fixed-length binarization)에 의해 시그널링된다. 3개의 가장 가능성 있는 모드는 상부 및 좌측 이웃 블록들의 인트라 예측 모드들로부터 도출된다.
인터 CU의 경우, 대응하는 코딩 블록이 하나 이상의 예측 블록들로 추가로 파티셔닝된다. 인터 예측은 PB 레벨에서 수행되며, 대응하는 PU는 인터 예측이 어떻게 수행되는지에 관한 정보를 포함한다.
모션 정보(즉, 모션 벡터 및 기준 인덱스)는 2개의 방법, 즉 "병합 모드(merge mode)" 및 "AMVP(advanced motion vector prediction)"으로 시그널링될 수 있다.
병합 모드에서, 비디오 인코더 또는 디코더는 이미 코딩된 블록들에 기초하여 후보 리스트를 어셈블링하고, 비디오 인코더는 후보 리스트 내의 후보들 중 하나에 대한 인덱스를 시그널링한다. 디코더 측에서는, 시그널링된 후보에 기초하여 모션 벡터(MV) 및 기준 픽처 인덱스가 재구성된다.
병합 모드에서의 가능한 후보들의 세트는 공간 이웃 후보들, 시간 후보, 및 생성된 후보들로 이루어져 있다. 도 2a는 현재 블록(210)에 대한 5개의 공간 후보 {a1, b1, b0, a0, b2}의 위치들을 도시하고 있다. 각각의 후보 위치에 대해, a1, b1, b0, a0, b2의 순서에 따라 이용가능성이 체크되고, 이어서 후보들에서의 리던던시가 제거된다.
병합 후보들의 최대 수(N)는 슬라이스 헤더에 명시된다. 병합 후보들의 수가 N보다 더 큰 경우에, 처음 N - 1개의 공간 후보와 시간 후보만이 사용된다. 그렇지 않고, 병합 후보들의 수가 N보다 더 작은 경우, 후보들의 세트는 최대 수(N)까지 채워진다.
AMVP에서, 비디오 인코더 또는 디코더는 이미 코딩된 블록들로부터 결정된 모션 벡터들에 기초하여 후보 리스트들을 어셈블링한다. 비디오 인코더는 이어서 모션 벡터 예측자(MVP)를 식별해주기 위해 후보 리스트에서의 인덱스를 시그널링하고, 모션 벡터 차이(MVD)를 시그널링한다. 디코더 측에서는, 모션 벡터(MV)가 MVP + MVD로서 재구성된다.
AMVP에서는 2개의 공간 모션 후보만이 선택된다. 2개의 세트에 표시된 바와 같은 탐색 순서를 유지하면서, 첫 번째 공간 모션 후보는 좌측 위치들 {a0, a1}로부터 선택되고, 두 번째 것은 위쪽 위치들 {b0, b1, b2}로부터 선택된다. 모션 벡터 예측자들의 수가 2가 아니면, 시간 MV 예측 후보가 포함될 수 있다. 시간 후보가 이용가능하지 않은 경우, 후보들의 세트를 채우기 위해 제로 모션 벡터(zero motion vector)가 사용된다.
도 2b는 AMVP를 사용하는 예시적인 모션 벡터 표현을 예시하고 있다. 인코딩될 현재 블록(240)에 대해, 모션 추정을 통해 모션 벡터(MVcurrent)가 획득될 수 있다. 좌측 블록(230)으로부터의 모션 벡터(MVleft) 및 위쪽 블록(220)으로부터의 모션 벡터(MVabove)를 사용하여, 모션 벡터 예측자가 MVPcurrent로서 선택될 수 있다. 모션 벡터 차이가 이어서 MVDcurrent = MVcurrent - MVPcurrent로서 산출될 수 있다.
HEVC에서, 모션 보상을 위한 모션 정보의 정밀도는 루마 성분에 대해서는 1/4 샘플(1/4 펠(quarter-pel) 또는 1/4 펠(1/4-pel)이라고도 지칭됨)이고 크로마 성분에 대해서는 1/8 샘플(1/8 펠이라고도 지칭됨)이다. 분수 샘플 픽셀 위치들의 보간을 위해 7-탭 또는 8-탭 보간 필터가 사용되며, 즉 루마에 대해 수평 및 수직 방향들 둘 다에서의 풀 픽셀 위치들(full pixel locations)의 1/4, 1/2 및 3/4가 어드레싱될(addressed) 수 있다.
예측 잔차들이 이어서 변환되고(125) 양자화된다(130). 비트스트림을 출력하기 위해, 양자화된 변환 계수들은 물론, 모션 벡터들 및 다른 신택스 요소들이 엔트로피 코딩(145)된다. 인코더는 또한 변환을 스킵하고 4x4 TU 기반으로 비-변환된 잔차 신호에 양자화를 직접 적용할 수 있다. 인코더는 또한 변환 및 양자화 둘 다를 바이패스할 수 있으며, 즉 잔차가 변환 또는 양자화 프로세스의 적용 없이 직접 코딩된다. 직접 PCM 코딩(direct PCM coding)에서는, 예측이 적용되지 않으며, 코딩 유닛 샘플들이 비트스트림으로 직접 코딩된다.
인코더는 추가 예측들을 위한 기준을 제공하기 위해 인코딩된 블록을 디코딩한다. 양자화된 변환 계수들은 예측 잔차들을 디코딩하기 위해 역양자화되고(140) 역변환된다(150). 디코딩된 예측 잔차들과 예측된 블록을 결합(155)시키는 것에 의해, 이미지 블록이 재구성된다. 예를 들어, 디블로킹(deblocking)/SAO(Sample Adaptive Offset) 필터링을 수행하여 블로킹 아티팩트들(blockiness artifacts)을 감소시키기 위해, 필터(165)가 재구성된 픽처에 적용된다. 필터링된 이미지는 기준 픽처 버퍼(180)에 저장된다.
도 3은 예시적인 HEVC 비디오 디코더(300)의 블록 다이어그램을 예시하고 있다. 예시적인 디코더(300)에서, 비트스트림이 이하에서 기술되는 바와 같이 디코더 요소들에 의해 디코딩된다. 비디오 디코더(300)는 일반적으로 비디오 데이터를 인코딩하는 것의 일부로서 비디오 디코딩을 수행하는, 도 1에서 기술된 바와 같은 인코딩 패스(encoding pass)와 상반하는(reciprocal) 디코딩 패스(decoding pass)를 수행한다.
특히, 디코더의 입력은, 비디오 인코더(100)에 의해 생성될 수 있는, 비디오 비트스트림을 포함한다. 비트스트림이 변환 계수들, 모션 벡터들, 및 다른 코딩된 정보를 획득하기 위해 먼저 엔트로피 디코딩된다(330). 변환 계수들이 예측 잔차들을 디코딩하기 위해 역양자화되고(340) 역변환된다(350). 디코딩된 예측 잔차들과 예측된 블록을 결합(355)시키는 것에 의해, 이미지 블록이 재구성된다. 예측 블록은 인트라 예측(360) 또는 모션 보상된 예측(motion-compensated prediction)(즉, 인터 예측)(375)으로부터 획득될 수 있다(370). 앞서 기술된 바와 같이, 기준 블록의 서브-정수 픽셀들(sub-integer pixels)에 대한 보간된 값들을 산출하기 위해 보간 필터들을 사용할 수 있는, 모션 보상을 위한 모션 벡터들을 도출하기 위해 AMVP 및 병합 모드 기법들이 사용될 수 있다. 필터(365)는 재구성된 이미지에 적용된다. 필터링된 이미지는 기준 픽처 버퍼(380)에 저장된다.
비디오 압축에서, 인터 예측 모드는 이전에 재구성된/디코딩된 픽처들로부터의 적어도 하나의 모션 보상된 블록을 사용하여 하나의 블록(예를 들어, 예측 유닛)을 예측할 수 있게 해준다. 예를 들어, 도 2c에 예시된 바와 같이, 현재 블록(255)이 인터 예측 모드를 이용하여 인코딩되고, 블록들(225 및 245)은 기준 픽처 내의 동일 위치 블록들이고, 블록들(215 및 235)은 모션 보상된 예측을 위해 사용되는 블록들이다. 디코더에서의 적어도 하나의 모션 벡터(MV, 예컨대, mv0)의 재구성을 가능하게 해주기 위해, 디코딩된 픽처들 버퍼(Decoded Pictures Buffer, DPB) 내의 재구성된 픽처를 식별해주는 적어도 하나의 기준 인덱스(예컨대, refldx0) 및 하나의 모션 정보(모션 벡터 차이(Motion Vector Difference), MVD)가 인코딩된다. 양방향 예측(bi-prediction)이 사용될 때, 모션 벡터들(예컨대, mv0 및 mv1)을 재구성하기 위해 부가의 기준 인덱스(예컨대, refldx1) 및 모션 정보가 인코딩된다. 일부 경우들에서, 모션 벡터들은 이전에 디코딩된 데이터(예컨대, HEVC에서의 병합 모드)로부터 추론될 수 있다.
MV 값들의 재구성은 다음과 같이 수행될 수 있고:
Figure pct00001
여기서 MVX 및 MVY는, 제각기, 수평 및 수직 모션 벡터 성분들이고, MVP (MVPX, MVPY)는 이전에 재구성된 데이터로부터 작성된 모션 벡터 예측자이며, MVD (MVDX, MVDY)는 비트스트림에 인코딩되고 전송되는 모션 벡터 차이이다.
MVD 값들은 보통 디코딩된 MV 값들에 대응하는 정밀도로 인코딩된다. 예를 들어, HEVC는 1/4 픽셀(즉, 1/4 펠)을 모션 벡터 분해능으로서 사용한다.
MV 분해능을, 예를 들어, 1/4 펠로부터 1/8 펠로 증가시키는 것은 일반적으로 예측을 개선시킬 수 있다. 그렇지만, 낮은 비트 레이트들의 경우, MVD 데이터의 코딩은 블록당 인코딩된 다른 데이터에 비해 상대적으로 높은 비트레이트 비용을 가질 수 있다. 따라서, 전체 압축 효율이 MV 분해능을 이용해 반드시 개선되는 것은 아닐 수 있다.
압축 효율을 개선시키기 위해, 예를 들어, 모션 분해능을 정수 펠 또는 1/4 펠 중에서 선택하거나, 1/4 펠 및 1/6 펠 중에서 선택하기 위해, 적응 모션 분해능을 사용하는 것에 대한 몇몇 기존의 연구들이 있다. 그렇지만, 어느 모션 벡터 분해능이 사용되는지를 표시하는 것은 비트스트림에서 송신될 필요가 있는 추가의 보조 정보로 인해 압축 효율의 저하(degradation)를 야기할 수 있다.
오버헤드를 감소시키기 위해, "Conditional motion vector refinement for improved prediction," Picture Coding Symposium (PCS), 2012. IEEE라는 제목의 Lakshman, Haricharan, et al.의 논문(이하 "Lakshman"이라고 함)은, 임의의 명시적 블록 단위 순방향 시그널링(explicit block-by-block forward signaling)을 이용함이 없이, 1/4 샘플 MV 분해능 및 1/6 샘플 MV 분해능 중에서 MV 분해능을 추론하기 위해 인코더와 디코더 둘 다에 알려진 규칙들의 세트를 정의한다. 고분해능 MV는 세분화 정보로 보강된 정규의 1/4 샘플 MV로서 전송되고, 이는 모션 벡터들의 분해능을 1/4 샘플 분해능으로부터 1/6 샘플로 증가시킨다. 정수 또는 1/2 샘플 위치들을 가리키는 재구성된 MV 성분들은 변화 없이 유지된다. 1/4 또는 3/4 위치들을 가리키는 MV 성분들에 대해, 디코더는 다음과 같은 조건들을 사용하여 세분화의 존재를 추론한다:
- P-슬라이스의 경우에, MV 세분화 정보가 항상 송신된다.
- 양방향 예측의 경우에, 하이 텍스처(high texture)를 포함하는 기준 픽처로부터의 샘플들에 액세스하는 예측들을 위해 MV 세분화가 송신된다.
- 양방향 예측들이 하이 텍스처 기준 픽처들에 액세스하지 않는 경우에, 미리 정의된 기준 픽처 리스트로부터의 픽처들에 대해서만 MV 세분화가 송신된다.
- B-슬라이스들에서의 단일 가설 예측들(single hypothesis predictions)에 대해, MV 세분화가 사용되지 않는다.
"Further improvements to HMKTA-1.0," VCEG-AZ07, ITU-T/SG16 Video Coding Experts Group (VCEG) 52nd Meeting: 19-26 June 2015, Warsaw, Poland라는 제목의 Chen, Jianle, et al.의 논문(이하 "Chen"이라고 함)은 AMVR(Advanced Motion Vector Resolution) 모드를 기술한다. 특히, 모션 벡터와 PU의 예측된 모션 벡터 사이의 MVD는 1/4 펠 분해능 또는 정수 펠 분해능 중 어느 하나로 코딩될 수 있다. MVD 분해능은 코딩 유닛(CU) 레벨에서 제어되며 정수 MVD 분해능 플래그는 적어도 하나의 비-제로 MVD 성분을 갖는 각각의 CU에 대해 조건부로 시그널링된다. 정수 MVD 분해능 플래그가 거짓(false)이거나 CU에 대해 코딩되어 있지 않을 때, CU에 속한 모든 PU들에 대해 디폴트 1/4 펠 MV 분해능이 사용된다. 그렇지 않은 경우, CU에 속한 AMVP 모드로 코딩된 모든 PU들은 정수 MV 분해능을 사용하는 반면, 병합 모드로 코딩된 PU들은 여전히 1/4 펠 MV 분해능을 사용한다. PU가 정수 MV 분해능을 사용할 때, AMVP 후보 리스트는 1/4 펠 MV들을 정수 펠 MV들로 라운딩(rounding)함으로써 정수 MV로 채워진다.
본 원리들은 비디오 인코딩 및 디코딩에서의 모션 벡터 세분화에 관한 것이다. 일 실시예에서, 제1 분해능 MVD(예를 들어, 1/4 펠)가 비트스트림에서 수신되고, 디코더는 MVD에 기초하여 초기 모션 벡터를 획득하며, 이미 디코딩된 이웃 샘플들을 사용하여, 제1 분해능보다 더 높은 제2 모션 분해능(예를 들어 1/8 펠)을 획득하기 위해 초기 모션 벡터를 세분화한다. 미스매치(mismatch)를 피하기 위해 모션 정보의 세분화가 인코더에서도 수행된다. 모션 세분화가 인코더 및 디코더 둘 다에서 수행되기 때문에, 모션 세분화를 표시하기 위해 비트스트림에서 어떠한 부가 정보도 전송되지 않으며, 예를 들어, 1/4 펠로부터 1/8 펠로의 모션 벡터의 세분화를 표시하기 위해 어떠한 명시적 시그널링도 사용되지 않는다. 일 변형에서, 현재 블록에 대해 병합 모드가 사용되고(즉, 비트스트림에서 어떠한 MVD도 수신되지 않고), (어쩌면 제1 분해능으로 라운딩된) 후보 리스트에서의 모션 벡터 예측자가 제2 모션 분해능을 획득하기 위해 세분화되기 때문에 초기 모션 벡터가 획득된다.
모션 정보 세분화는 인코더 또는 디코더에서 모션 추정을 사용하여 수행될 수 있다. 모션 분해능 세분화 없이 제1 모션 분해능(예를 들어, 1/4 펠)을 사용하는 접근법과 비교할 때, 제안된 실시예는 세분화 모션 정보를 전송하는 오버헤드 없이 모션 정확도를 개선시킬 수 있다. 디코더에서의 모션 분해능 세분화 없이 제2 모션 분해능(예를 들어, 1/8 펠)을 사용하는 접근법과 비교할 때, 제안된 실시예는 모션 세분화 정보를 전송하는 오버헤드를 감소시킬 수 있다. 본 원리들에 따른 디코더가 또한 모션 탐색을 수행할 수 있고, 따라서 모션 탐색을 필요로 하지 않는 디코더보다 더 복잡할 수 있다는 점에 유의해야 한다.
도 4는 본 원리들의 일 실시예에 따른, 디코더에서 모션 벡터 세분화를 수행하기 위한 예시적인 방법(400)을 예시하고 있다. 이 예에서, 우리는 디코더가 모션 벡터 분해능을 1/4 펠로부터 1/8 펠로 세분화할 수 있다고 가정한다. 본 원리들이 다른 모션 분해능들 간의 세분화, 예를 들어, 정수 펠로부터 1/4 펠로, 1/4 펠로부터 1/6 펠로의 세분화 - 이들로 제한되지 않음 - 에 적용될 수 있다는 점에 유의해야 한다.
디코딩될 블록에 대해, 디코더는, 예를 들어, 비트스트림에서의 플래그를 사용하여, 또는 앞서 기술된 바와 같은 기존의 방법들을 사용하여, 적응 모션 벡터 분해능이 인에이블되어 있는지를 체크한다(410). 적응 모션 벡터 분해능이 인에이블되어 있는 경우, 디코더는, 예를 들어, HEVC의 AMVP 모드를 사용하여, MV 예측자(MVP)를 1/4 펠 분해능으로 생성한다(420). 예측자가 1/8 펠로 되어 있는 경우, 예측자가 1/4 펠로 라운딩된다. 디코더는 이어서 MVD를 1/4 펠 분해능으로 디코딩한다(430). 초기 모션 벡터가 MV0 = MVP + MVD로서 획득될 수 있다(440). 이어서 초기 모션 벡터(MV0)가 1/8 펠 분해능으로 세분화되고(450) 모션 보상된 예측을 위해 사용될 수 있다.
420에서, MV 예측자들이 또한 1/8 펠로 생성될 수 있다. MV 예측자가 1/4 펠 또는 1/8 펠로 생성되는지는 인코더가 사용한 것과 일치해야 한다.
모션 보상된 예측 블록의 샘플들은 기준 픽처 인덱스에 의해 식별되는 기준 픽처에서 모션 벡터에 의해 변위된 위치에 있는 대응하는 블록의 샘플들로부터 획득된다. 모션 벡터가 정수가 아닐 때, 예측 샘플들을 생성하기 위해 분수 샘플 보간이 사용된다.
HEVC는 1/4 펠의 모션 벡터들을 지원한다. 모션 벡터를 MV = iMV + sMV로서 표현하기로 하며, 여기서 iMV는 MV의 정수 파트(integer part)이고 sMV는 1/4 펠 파트(1/4-pel part)(제1 모션 분해능)이며, sMV = p/4, p = 0, 1, 2, 3이고, 그러면 보간된 샘플 값은 다음과 같이 산출될 수 있고:
Figure pct00002
여기서, x는 픽셀 위치이고, c[p][i],i = 0,...,N-1은 p/4 펠 위치에 대응하는 필터 계수들이고, N은 필터 탭들의 수이다. HEVC에서 1/4 펠 보간을 위한 필터 계수들은 다음과 같다:
c[p=0][]={0, 0, 0, 64, 0, 0, 0, 0}, 정수 위치에 대응하고, 스케일링만이 있음,
c[p=1][]={-1, 4, -10, 58, 17, -5, 1, 0}, 1/4 펠 위치에 대응하고, 7-탭 필터임
c[p=2][]={-1, 4, -11, 40, 40, -11, 4, -1}, 1/2 펠 위치에 대응하고, 8-탭 필터임,
c[p=3][]={0, 1, -5, 17, 58, -10, 4, -1}, 1/4 펠 위치에 대응하고, 7-탭 필터임.
더 높은 분해능인 1/8 펠을 사용할 때, sMV = p/8, p = 0, 1, 2, 3, 4, 5, 6, 7, 8을 포함한, 1/8 펠 부분을 보간하기 위해 1/8 펠 보간 필터가 사용된다. 예를 들어, 다음과 같은 1/8 펠 보간 필터들(N = 4)이 사용될 수 있다:
c[p=0][] = { 0, 64, 0, 0 },
c[p=l][] = { -2, 58, 10, -2 },
c[p=2][] = { -4, 54, 16, -2 },
c[p=3][] = { -6, 46, 28, -4 },
c[p=4][] = { -4, 36, 36, -4 },
c[p=5][] = { -4, 28, 46, -6 },
c[p=6][] = { -2, 16, 54, -4 },
c[p=7][] = { -2, 10, 58, -2 }.
모션 세분화 프로세스는 세분화 이전의 모션 분해능에 관련된 범위를 갖는, 모션 추정으로서 간주될 수 있다. 예를 들어, 모션 벡터가 1/4 펠의 제1 분해능으로부터 1/8 펠의 제2 분해능으로 세분화될 때, 모션 탐색 범위는 초기 모션 벡터 주위의 후보들을 포함한다. 보다 일반적으로, 모션 세분화를 위한 탐색 후보들은 수평 방향 및 수직 방향으로, 제각기, MVX0 - ΔMVX ~ MVX0 + ΔMVX, MVY0 - ΔMVY ~ MVY0 + ΔMVY일 수 있으며, 여기서 MVX0 및 MVY0은, 제각기, 초기 모션 벡터(MV0)의 수평 및 수직 성분들이고, ΔMVX 및 ΔMVY는, 제각기, 수평 및 수직 방향들에서의 탐색 범위를 정의한다.
예를 들어, 수평 방향에서의 세분화 후보들은 (MVX0- k x step2, MVX0 + k x step2)일 수 있고, 여기서 k는 정수이고 다음과 같이 정의되며
Figure pct00003
여기서 step1은 제1 분해능이고, step2는 제2 분해능이다. step1 = 1/4이고 step2 = 1/8일 때, -2 < k < 2이다. 도 5는 정수 픽셀들, 1/2 픽셀들, 1/4 픽셀들 및 1/8 픽셀들에 대한 픽셀 위치들을 예시하고 있다. 표기(notation)의 편의를 위해, 우리는 그 후보들을 모션 세분화 후보들이라고도 지칭할 수 있고, 우리는 모션 세분화 후보를 이용한 모션 보상에 의해 작성된 예측된 블록을 모션-세분화 예측된 블록으로 그리고 모션-세분화 예측된 블록 내의 샘플들을 모션-세분화 예측 샘플들로 표기한다.
예시적인 탐색 후보들의 세트는 (MVX0 MVY0)이 위치(510)에 대응할 때 박스(520) 내의 위치들을 포함한다. 탐색 범위, 그리고 보다 일반적으로, 탐색 후보들의 세트가 도 5에 도시된 것과 상이할 수 있다. 인코더 및 디코더에서 동일한 탐색 후보들의 세트가 사용되어야 한다.
적응 모션 벡터 분해능이 인에이블되어 있지 않은 경우, 디코더는 디코딩된 모션 벡터에 대해 사용되는 모션 분해능으로 MVP 및 MVD를 획득하고, 어떠한 모션 세분화도 디코더에서 수행되지 않는다. 도 4에 도시된 바와 같이, 디코더는 MVP 및 MVD 둘 다를 1/8 펠 분해능으로 얻고(460, 470), 모션 벡터를 1/8 펠 분해능으로 MV = MVP + MVD로서 디코딩할 수 있다(480). 일 변형에서, 디코더는 MVP 및 MVD 둘 다를 1/4 펠 분해능으로 얻고(460, 470), 모션 벡터를 1/4 펠 분해능으로 MV = MVP + MVD로서 디코딩할 수 있다(480).
이하에서, 우리는 모션 벡터 세분화(450)를 수행하는 데 사용될 수 있는 몇 개의 실시예를 더욱 상세히 기술한다.
디코더에서 모션 벡터를 세분화하기 위해, 우리는 픽처 신호가 보통 매끄럽고 연속적이라는 특성들을 사용한다. 따라서, 디코더 측에서, 모션 벡터가 정확한 경우, 디코딩된 블록은 전형적으로 이웃 블록들에 대해 연속적이어야 한다. 일 실시예에서, 우리는 MV를 세분화하기 위해 재구성된 이웃 샘플들을 사용한다. 특히, 앞서 기술된 바와 같은 탐색 후보들의 세트는 모션 세분화 후보들을 이용한 모션 보상에 의해 작성된 예측된 블록과 이전에 재구성된 샘플들, 예를 들어, 도 6a에 예시된 바와 같은 이웃하는 상부 및 좌측 블록들의 샘플들 사이의 불연속성을 측정하는 것에 의해 평가된다.
도 6a는 디코딩될 예시적인 PU(650)을 예시하고 있다. 현재 PU의 위쪽 또는 왼쪽에 있는 다른 PU들(610, 620, 630, 640)은 이미 디코딩되어 있고, 현재 PU를 디코딩하는 데 이용가능하다. 특히, 이웃 블록들(610, 620, 640)에서의 디코딩된 샘플들(670)의 L자형 세트가 현재 PU(650)에 대한 모션 벡터를 세분화하는 데 사용될 수 있다. PU들이 도 6a에 도시된 것과 상이한 크기들 또는 형상들로 되어 있을 수 있고, 이웃하는 재구성된 샘플들의 보다 크거나 보다 작은 세트가 현재 PU에 대한 모션 벡터를 세분화하는 데 사용될 수 있다는 점에 유의해야 한다. 본 출원에서, 우리는 모션 세분화를 위해 샘플들의 L자형 세트를 사용한다. 보다 일반적으로, 상이한 샘플들의 세트들이 모션 세분화를 위해 사용될 수 있고, 세분화가 블록에 적용될 수 있다.
일 실시예에서, 우리는 이웃 블록들에서의 디코딩된 샘플들의 L자형 세트(670)("이웃하는 L자형"이라고도 지칭됨) 및 현재 예측 블록에서의 샘플들의 L자형 세트(680)에 기초한 불연속성을 사용한다. 도 6b에 예시된 바와 같이, 불연속성은 재구성된 샘플들(n)과 최근접 모션-세분화 예측 샘플(p) 사이의 절대 차이의 합(Sum of Absolute Difference, SAD)으로서 측정될 수 있다. 수학적으로, 세분화된 모션 벡터 차이는 다음과 같이 산출될 수 있고:
Figure pct00004
여기서 p는 (xp, yp)에 있는 위치를 갖는 PU의 L자형에서의 모션-세분화 예측 샘플이고,
Figure pct00005
는 PU의 L자형 세트에 걸친 합산이며, MV0 = MVP + MVD는 세분화될 모션 벡터이고, n은 (xn, yn)에 있는 위치를 갖는 p 옆에 있는 L자형 내의 재구성된 샘플이며(예를 들어, p가 PU의 좌측 경계에 속하는 경우, xn = xp - 1, yn = yp이고, p가 PU의 상부 경계에 속하는 경우, xn = xp, yn = yp - 1임), Irec(n)은 현재 픽처의 재구성된(또는 디코딩된) 샘플 값이고, Iref(p + MVP + MVD + MVDrefine)은 MVDrefined가 선택될 때의 모션 보상된 예측 값이다.
일 변형에서, 우리는 잔차와 모션 보상된 예측 블록의 합을 고려하고, Iref(p + MV0 + MVDrefine) + Res(p)는 MVDrefine가 선택된 경우의 샘플(p)에 대한 재구성된 값일 것이다. 그러면 세분화된 모션 벡터 차이는 다음과 같이 산출될 수 있고:
Figure pct00006
여기서 Res(p)는 샘플(p)에서의 잔차이다.
HEVC 디코더가 본 원리들에 따른 모션 벡터 세분화를 포함하도록 수정될 때, MV0은 AMVP에서는 MVD+MVP로 또는 병합 모드에서는 후보 리스트에서 시그널링된 것으로 설정될 수 있으며, 여기서 MVD 및 MVP는 HEVC에 의해 규정된 바와 같이 획득된다. 일반적으로, MV0은 디코더가 디코더에서 모션 탐색을 수행함이 없이 획득한 모션 벡터이다.
모션 세분화는 초기 모션 벡터 주위로부터 선택된, 보다 높은 모션 분해능의 후보 모션 벡터들의 세트를 이용한 디코더에서의 모션 탐색으로 볼 수 있다. 최상의 모션 벡터의 선택항목(choice)은 특정 기준, 예를 들어, 수학식 4 또는 수학식 5에 기술된 바와 같은 불연속성 척도를 최소화하는 것일 수 있다. 즉, 초기 모션 벡터(MV0)가 획득된 후에, 초기 모션 벡터를 세분화하기 위해 모션 탐색이 추가로 수행된다. 디코더에서의 추가 복잡도(extra complexity)가 보통 작은데, 그 이유는 초기 모션 벡터 주위의 탐색 후보들의 작은 세트만이 체크되면 되기 때문이다.
수학적으로, 도출된 세분화된 MV는 다음과 같이 표현될 수 있다:
Figure pct00007
이어서 기준 픽처에서의 세분화된 MV에 대응하는 블록이, 예를 들어, 앞서 기술된 바와 같은 보간 필터들을 사용하여 PU를 디코딩하기 위한 예측 블록으로서 사용된다. 전형적으로, 모션 세분화는, 디코더가 전체 분해능(full resolution)으로 MV를 여전히 복구할 수 있으면서, 인코더가 MVD를 낮은 분해능으로 인코딩할 수 있게 해주며, 따라서 MVD를 전체 분해능으로 인코딩하는 것에 비해 모션 정보를 인코딩하는 비용을 감소시킨다.
본 출원에서, 우리는 다양한 실시예들에서 SAD를 차이 척도로서 사용한다. 다른 차이 척도들, 예를 들어, SSE(Sum of Squared Error) - 이에 한정되지 않음 - 가 SAD 대신 사용될 수 있다는 점에 유의해야 한다.
다른 실시예에서, 우리는 인접 픽셀들에서의 그레이디언트들이 보통 비슷하다는 특성을 사용하며, 불연속성을 측정하기 위해 위치들 (n) 및 (p)에서의 국부 그레이디언트들을 계산한다. 신호(즉, 픽처 샘플들)가 공간적으로 정적(spatially stationary)이라고 가정하면, 신호를, 선형 항(linear term)으로 절단된(truncated), 테일러 급수로서 국부적으로 모델링할 수 있고:
Figure pct00008
여기서 I(x)는 위치(x)에서의 픽처 샘플 값이고, g는 국부 그레이디언트들을 이용해 추정된 2x2 행렬이다.
수학식 7을 사용하면, 이웃하는 재구성된 샘플들(R(x))과 모션-세분화 예측된 블록(P(x)) 사이의 관계는 다음과 같이 되고:
Figure pct00009
P(p) = Iref(p + MV0 + MVDrefine)이고, R(n) = Irec(n)이다. 일 변형에서, 잔차들이 P(p)를 산출할 때 포함될 수 있다. 위치 p = (xp, yp)에서의 국부 그레이디언트들은 도 7a에 도시된 바와 같이 표현될 수 있다:
G11(p) = R(n) - P(p), n=(xp - 1, yp - 1)임
G12(p) = R(n) - P(p), n=(xp - 1, yp)임
G13(p) = R(n) - P(p), n=(xp - 1, yp + 1)임
이어서, 국부 그레이디언트들의 절댓값의 합이 불연속성을 산출하는 데 사용될 수 있고, 불연속성을 최소화하는 모션 벡터 세분화가 선택된다:
Figure pct00010
(n 및 p가 L자형의 수직 좌측 경계에 위치될 때) 위치 p = (xp, yp)에서의 2차 모멘트들이 도 7b에 도시된 바와 같이 표현될 수 있다:
G21(p) = R(n2) - R(n) - G11, n=(xp -1, yp -1)이고 n2=(xp - 2, yp - 2)임
G22(p) = R(n2) - R(n) - G12, n=(xp -1, yp)이고 n2=(xp - 2, yp)임
G23(p) = R(n2) - R(n) - G13, n=(xp -1, yp + 1)이고 n2=(xp -2, yp + 2)임
G24(p) = R(n2) - R(n) - P(p) + P(p2), n=(xp - 1, yp)이고 n2=(xP -1, yp + 1)이며 p2=(xp, yp + 1)임.
샘플(p)이 PU의 상부 경계에 있을 때, 그레이디언트들이 유사하게 도출될 수 있다. 좌측 상부 코너의 경우, 그것은 좌측 또는 상부 경계에 있는 것처럼 프로세싱될 수 있거나 두 번(경계로서 한 번, 그리고 상부로서 한 번) 프로세싱될 수 있다.
이어서, 그레이디언트들의 2차 모멘트들의 절댓값의 합이 불연속성을 산출하는 데 사용될 수 있고, 불연속성을 최소화하는 모션 벡터 세분화가 선택된다:
Figure pct00011
불연속성은 또한 국부 그레이디언트들 및 2차 모멘트들의 절댓값의 합으로서 산출될 수 있다:
Figure pct00012
본 원리들이 또한 다른 형태들의 그레이디언트 산출에 적용될 수 있다는 점에 유의해야 한다.
도 8은 본 원리들의 일 실시예에 따른, 인코더에서 모션 벡터 세분화를 수행하기 위한 예시적인 방법(800)을 예시하고 있다. 방법(800)의 출력은 방법(400)에의 입력 비트스트림으로서 사용될 수 있다. 초기화 단계(805)에서, 인코더는 입력으로서 인코딩될 비디오 시퀀스에 액세스할 수 있다. 부가적으로, 인코더는 파라미터들을 초기 값들로 설정할 수 있으며, 예를 들어, Best_flag = 1로 설정하고 Best_RDcost를 큰 값으로 설정할 수 있다.
모션 벡터(MV)를 획득하기 위해 모션 추정(810)이 1/8 펠 분해능으로 수행된다. 인코더는 이어서 적응 모션 세분화를 사용하여 모션 벡터를 인코딩하는 것이 보다 효율적인지 여부를 체크한다. 단계들(820 내지 840)로부터, 인코더는, 예를 들어, RD(Rate-Distortion) 비용을 사용하여, 모션 세분화를 이용한 MV 인코딩 비용을 체크한다. 단계들(845 내지 875)로부터, 인코더는 모션 세분화를 이용하지 않은 MV 인코딩 비용을 체크한다. 이어서 모션 보상이 최종 MV(Best_MV)에 기초하여 수행되고 잔차들이 산출될 수 있다(885). 잔차들, 최종 MVD(Best_MVD) 및 적응 모션 세분화 플래그(Best_flag)가 비트스트림에 인코딩된다(890).
보다 상세하게는, 단계(815)에서, 모션 벡터 예측자 리스트가, 예를 들어, 대응하는 디코더가 모션 벡터 예측자 리스트를 어떻게 작성하는지에 따라, AMVP로부터의 모션 벡터 예측자 후보 리스트, 1/8 펠 초기 모션 벡터 예측자의 라운딩된 버전 또는 이웃하는 모션 벡터들의 평균을 사용하여, 1/4 펠 분해능으로 작성된다. 분해능을 낮추는 것은 모션 벡터 예측자를 보다 많이 "상관된" 것으로 만들 수 있고(즉, 모션 벡터 예측자를 표시하기 위해 인덱스만이 전송될 수 있도록 모션 벡터 예측자가 정확하게 예측될 수 있고), 모션 세분화가 고분해능 파트(즉, 보다 적게 "상관된" 부분)를 획득하게 할 수 있다. MVP 리스트는 일부 경우들에서 단지 하나의 MVP를 포함할 수 있다. MVP 리스트 내의 각각의 MVP에 대해, 모션 벡터 차이(MVD)가 MVD = MV - MVP로서 산출되고(820), 초기 모션 벡터가 MV0 = MVP + MVD로서 산출될 수 있다.
일 변형에서, 모션 벡터 예측자 후보 리스트가 단계(815)에서 1/8 펠 분해능으로 작성될 수 있고, 모션 벡터 차이(MVD)가 단계(820)에서 1/4 펠로 라운딩된다. MVP 또는 MVD에 라운딩에 적용되는 것으로 인해 MV0이 MV와 상이할 수 있다는 점에 유의한다.
MVDrefine을, 예를 들어, 수학식 4 또는 수학식 5에 기술된 바와 같이, 그리고 세분화된 모션 벡터를 MV* = MV0 + MVDrefine로서 획득하기 위해 세분화가 수행된다(825). 잔차들이 이어서 MV*에 기초하여 산출될 수 있다(827). 조정된 모션 벡터(MV*)의 인코딩 비용이 단계(830)에서 RD(Rate-Distortion) 비용을 사용하여 추정될 수 있다. 단계(835)에서, 인코더는 현재의 조정된 모션 벡터가 현재의 Best_RDcost보다 더 작은 RD 비용을 갖는지를 체크한다. 예인 경우, 파라미터들 Best_RDcost, Best_MV, Best_MVD가 현재의 RD 비용, 현재의 조정된 모션 벡터, 및 현재의 MVD로 설정되고, 어떤 다른 관련 인코딩 정보가 또한 저장될 수 있다.
단계(845)에서, 모션 벡터 예측자 리스트가, 예를 들어, AMVP로부터의 모션 벡터 예측자 후보 리스트를 사용하여, 1/8 펠 분해능으로 작성된다. 단계(845)는, 인코더가 모션 분해능을 1/4 펠로 조정하지 않는 것을 제외하고는, 단계(815)와 유사하다. MVP 리스트 내의 각각의 MVP에 대해, MVD가 MVP에 기초하여 1/8 펠 분해능으로 산출된다(850). 모션 벡터 MV1 = MVP + MVD에 대해 잔차들이 산출될 수 있고(852), 모션 벡터 MV1의 인코딩 비용이 단계(855)에서 RD 비용을 사용하여 추정될 수 있다. 단계(865)에서, 인코더는 현재의 모션 벡터가 현재의 Best_RDcost보다 더 작은 RD 비용을 갖는지를 체크한다. 예인 경우, 파라미터들 Best_RDcost, Best_MV 및 Best_MVD가 현재의 RD 비용, 현재의 모션 벡터, 및 현재의 MVD로 설정되고, 적응 모션 세분화 플래그가 거짓(0)으로 설정된다. 다른 관련 인코딩 정보가 또한 저장될 수 있다.
MVD가 0일 때, 예를 들어, 병합 모드가 사용될 때, 단계들(820 및 850)이 필요하지 않고, 단계(840 및 875)에서, Best_MVD가 산출될 필요가 없으며, 단계(890)에서, Best_MVD가 인코딩될 필요가 없다.
모션 세분화가 모션 벡터 예측자들에 대응하는 모든 모션 벡터들에 적용될 수 있거나, 서브세트에 적용될 수 있다. 예를 들어, 모션 세분화가 AMVP 모션 벡터 예측자들에 대해서만, 또는 병합 모드에만 사용된다.
방법(800)에서, 인코더는 인코딩 비용에 기초하여 적응 모션 세분화를 사용할지를 결정하고, 비트스트림에서의 플래그를 통해 선택항목을 시그널링한다. 다른 실시예들에서, 인코더는, 예를 들어, 이하에서 또는 Lakshman 및 Chen에서 추가로 기술되는 바와 같이, 인코딩 비용을 체크함이 없이 비디오 특성들에 기초하여 적응 모션 세분화를 사용할지를 결정할 수 있다. 결과적으로, 인코더는 방법(800)의 일부(예를 들어, 모션 세분화를 이용하는 파트 또는 모션 세분화를 이용하지 않는 파트)를 수행하기만 하면 될 수 있다.
부가의 신택스 요소(Best_flag)가 방법(800)에 따라 송신될 필요가 있을 수 있다는 점에 유의한다. 그렇지만, 모션 벡터의 고분해능 부분이 보통 랜덤하고 인코딩하는 데 비용이 많이 들기 때문에 Best_flag를 송신하는 것이 여전히 1/8 펠 분해능으로 MVD를 송신하는 것보다 더 효율적일 수 있다.
모션 벡터를 세분화함으로써, 모션 벡터 차이(MVD)가 비트스트림에서 1/4 펠 모션 분해능으로 전송되면서 인코더는 1/8 펠 모션 분해능에 도달할 수 있다. 그에 따라, MVD는 인코딩되기 위해 보다 적은 비트들을 필요로 할 수 있다. 예를 들어, 표 1에 보여지는 바와 같이, 모션 추정(810)으로부터의 현재 블록에 대한 모션 벡터(MV)는 3.625이며, 모션 벡터 예측자 리스트(815)는 {3.0, ...}을 포함한다. 모션 벡터 예측자 MVP0 = 3.0에 대해, 모션 세분화가 인에이블되어 있지 않을 때, MVD(850)는 MV - MVP = 0.625(1/8 펠로 코딩됨)이다. 다른 한편으로, 모션 세분화가 인에이블되어 있을 때, MVD는 0.5(1/4 펠)로 라운딩되고, 초기 모션 벡터(820) MV0 = MVP + MVD = 3.5이다. 모션 벡터 MV0은 그러면 MV* = 3.625로 세분화된다(825). 이 예에서, 세분화된 모션은 모션 추정으로부터 획득된 MV와 동일하고, MVD는 1/4 펠로 전송되며, 따라서 모션 세분화가 사용되지 않을 때보다 더 적은 비트들을 필요로 할 수 있다(즉, MVD는 1/8 펠로 전송된다). 결과적으로, 인코더는 모션 세분화를 인에이블시키기로 선택할 가능성이 많다.
Figure pct00013
상기 예에서, 세분화된 모션 벡터는 모션 추정으로부터의 모션 벡터와 동일하다. 세분화된 모션 벡터가 모션 추정으로부터 획득된 모션 벡터와 상이할 수 있다는 점에 유의해야 한다.
MVP 세분화
이상에서, 우리는 모션 벡터 예측자(MVP) 및 모션 벡터 차이(MVD)에 기초하여 생성되는 초기 모션 벡터에 대한 세분화를 논의하고 있다. 다른 실시예에서, (MVD를 포함하지 않고) 모션 벡터 예측자에 대해 세분화가 수행될 수 있다. 도 6을 다시 참조하면, 초기 모션 벡터 예측자(MVP0)가, 예를 들어, HEVC에 의해 규정된 바와 같은 AMVP를 사용하여 획득된 후에, 모션 벡터 예측자가 재구성된 L자형(670)을 사용하여 세분화될 수 있다.
특히, 디코더는 초기 모션 벡터 예측자 주위의 모션 벡터 예측자, 예를 들어
Figure pct00014
Figure pct00015
에 대응하는 MC L자형(680)을 형성할 수 있다. 이어서, 디코더는 재구성된 L자형(670)과 상이한 MC L자형들(680) 사이의 차이, 예를 들어, 앞서 논의된 바와 같은 불연속성 또는 그레이디언트들을 비교하고, 가장 작은 차이를 가져오는(yield) 모션 세분화(ΔMV*)를 초기 모션 벡터 예측자에 대한 세분화로서 선택할 수 있으며, 즉 세분화된 모션 벡터 예측자가 MVP* = MVP0 + ΔMV*로서 산출될 수 있다. 인코더 측 및 디코더 측 둘 다에서 동일한 프로세스가 수행될 수 있도록, 재구성된 L자형(670) 및 MC L자형(680) 둘 다가 디코딩된 샘플들에 기초한다는 점에 유의한다.
일반적으로, 모션 벡터 예측자에 대한 모션 세분화는 초기 모션 벡터 예측자 주위의 전체 모션 분해능(full motion resolution)에서의 몇 개의 서브-샘플 변위(sub-sample displacement)를 포함하는 탐색 범위를 갖는 모션 탐색으로 볼 수 있다. 예를 들어, 510에서의 모션 벡터 예측자(MVP0)는 도 5에 예시된 바와 같이 520 내의 탐색 후보들을 사용하여 세분화될 수 있다. 모션 벡터를 (MVD를 이용해) 세분화하는 것과 유사하게, 도 5에 도시된 것과 상이한 탐색 후보들의 세트들이 사용될 수 있다.
일 변형에서, 모션 세분화가 초기 모션 벡터 예측자의 라운딩된 버전(round(MVP0))에 대해 수행될 수 있으며, 모션 세분화에 대한 탐색 범위는, 라운딩된 모션 벡터 예측자 주위의 전체 모션 분해능의 서브-샘플 변위들을 포함한다. 예를 들어, 세분화된 모션 분해능이 1/8 펠일 때, MVP0의 라운딩된 버전은 정수 펠, 1/2 펠 또는 1/4 펠 분해능으로 되어 있을 수 있다. 이러한 이유는 실제의 모션 벡터가 보다 낮은 분해능의 모션 벡터 주위에 집중될 가능성이 보다 많고, 초기 모션 벡터 예측자의 라운딩된 버전이 탐색을 위한 보다 나은 시작점을 제공할 수 있기 때문이다.
다른 변형에서, MVP 후보 리스트에 사용되는 이웃하는 모션 벡터들의 평균 값과 관련하여 모션 세분화가 수행될 수 있다. 예를 들어, 모션 세분화는 좌측 및 위쪽 모션 벡터들의 평균 (MVleft + MVabove)/2를 초기 모션 벡터 예측자로서 사용하고, 이어서 초기 모션 벡터 예측자 주위에서 모션 탐색을 수행할 수 있다. 우리는 모션 세분화가 보통 거의 또는 비교적 균일한 모션 구역에서 선택된다는 것을 알게 된다. 현재 블록에 인접한 모션 벡터들을 평균화함으로써, 우리는 탐색을 위한 보다 나은 시작점을 제공할 수 있다. 모션 세분화가 선택될 때, 즉 모션 필드(motion field)가 균일할 때, 예측자 후보 리스트가 리스트 내의 단지 하나의(좌측 또는 위쪽) 후보를 사용하도록 감소될 수 있으며, 따라서 가능한 후보들의 수를 감소시킬 수 있다. 이것은 압축 효율을 개선시킬 수 있는데 그 이유는 AMVP 리스트의 인덱스가 비트스트림에 인코딩되거나 전송될 필요가 없기 때문이다.
도 9는 본 원리들의 일 실시예에 따른, 디코더에서 모션 벡터 예측자 세분화를 수행하기 위한 예시적인 방법(900)을 예시하고 있다. 이 예에서, 우리는 디코더가 모션 벡터 예측자 분해능을 1/4 펠로부터 1/8 펠로 세분화할 수 있다고 가정한다.
블록에 대해, 디코더는, 예를 들어, 비트스트림에서의 플래그를 사용하여, 또는 앞서 기술된 바와 같은 기존의 방법들을 사용하여, 적응 모션 벡터 분해능이 인에이블되어 있는지를 체크한다(910). 적응 모션 벡터 분해능이 인에이블되어 있는 경우, 디코더는 MV 예측자(MVP)를 1/4 펠 분해능으로 생성한다(920). 초기 모션 벡터 예측자는, 예를 들어, HEVC의 AMVP 모드를 사용하여, 이웃하는 모션 벡터들의 평균을 사용하여, 또는 모션 벡터 예측자의 라운딩된 버전을 사용하여 - 이들로 제한되지 않음 - 생성될 수 있다. 모션 벡터 예측자는 이어서, 예를 들어, 앞서 기술된 실시예들을 사용하여, 1/8 펠 분해능으로 세분화될 수 있다(930). 디코더는 MVD를 1/8 펠 분해능으로 디코딩한다(940). 모션 벡터가 이어서 MV = MVP* + MVD로서 획득되고(950), 모션 보상된 예측을 위해 사용될 수 있다.
적응 모션 벡터 분해능이 인에이블되어 있지 않은 경우, 디코더는 디코딩된 모션 벡터에 대해 사용되는 모션 분해능으로 MVP 및 MVD를 획득하고, 어떠한 모션 세분화도 디코더에서 수행되지 않는다. 도 9에 도시된 바와 같이, 디코더는 MVP 및 MVD 둘 다를 1/8 펠 분해능으로 얻고(960, 970), 모션 벡터를 1/8 펠 분해능으로 MV = MVP + MVD로서 디코딩할 수 있다(980). 일 변형에서, 디코더는 MVP 및 MVD 둘 다를 1/4 펠 분해능으로 얻고(960, 970), 모션 벡터를 1/4 펠 분해능으로 MV = MVP + MVD로서 디코딩할 수 있다(980).
도 10은 본 원리들의 일 실시예에 따른, 인코더에서 모션 벡터 예측자 세분화를 수행하기 위한 예시적인 방법(1000)을 예시하고 있다. 방법(1000)의 출력은 방법(900)에의 입력 비트스트림으로서 사용될 수 있다. 초기화 단계(1005)에서, 인코더는 입력으로서 인코딩될 비디오 시퀀스에 액세스할 수 있다. 부가적으로, 인코더는 파라미터들을 초기 값들로 설정할 수 있으며, 예를 들어, Best_flag = 1로 설정하고 Best_RDcost를 큰 값으로 설정할 수 있다.
모션 벡터(MV)를 획득하기 위해 모션 추정(1010)이 1/8 펠 분해능으로 수행된다. 인코더는 이어서 적응 모션 세분화를 사용하여 모션 벡터를 인코딩하는 것이 보다 효율적인지 여부를 체크한다. 단계들(1020 내지 1040)로부터, 인코더는, 예를 들어, RD(Rate-Distortion) 비용을 사용하여, 모션 세분화를 이용한 MV 인코딩 비용을 체크한다. 단계들(1045 내지 1075)로부터, 인코더는 모션 세분화를 이용하지 않은 MV 인코딩 비용을 체크한다. 이어서 모션 보상이 최종 MV(Best_MV)에 기초하여 수행되고 잔차들이 산출될 수 있다(1085). 잔차들, 최종 MVD(Best_MVD) 및 적응 모션 세분화 플래그(Best_flag)가 비트스트림에 인코딩된다(1090).
보다 상세하게는, 단계(1015)에서, 모션 벡터 예측자 리스트가, 예를 들어, 대응하는 디코더가 모션 벡터 예측자 리스트를 어떻게 작성하는지에 따라, AMVP로부터의 모션 벡터 예측자 후보 리스트, 초기 모션 벡터 예측자의 (예를 들어, 원하는 분해능에서 최근접 정수로) 라운딩된 버전 또는 이웃하는 모션 벡터들의 평균을 사용하여, 1/4 펠 분해능으로 작성된다. MVP 리스트는 일부 경우들에서 단지 하나의 MVP를 포함할 수 있다. 단계(1015)에서, 모션 벡터 예측자 리스트가 또한 1/8 펠 분해능으로 작성될 수 있다. 그렇지만, 보다 낮은 분해능(1/4 펠)을 사용하는 것의 하나의 이점은, RD 최적화가 1/8 펠 분해능 또는 1/4 펠 분해능으로 MV를 구별할 수 없는 편평한 구역들에서 드리프트(drift)를 피할 수 있다는 것이다. 감소된 분해능을 사용하는 것은 MV 잡음을 감소시킬 수 있는 MV 예측자의 일종의 스무딩(smoothing)을 가능하게 해준다. 또한, 세분화에 대한 탐색 윈도의 크기가 비교적 작은 경우(1/8 세분화에 대해 ±1/4), 탐색 윈도에 대한 시작/중심 MV의 정밀도가 결과를 변경시킬 수 있다.
MVP 리스트 내의 각각의 MVP에 대해, MVP 세분화가, 예를 들어, 디코더에 대해 앞서 기술된 바와 같이, 수행된다(1020). MVD는 세분화된 MVP(MVP*)에 기초하여 산출되고(1025), 모션 보상을 위해 사용될 수 있는 조정된 모션 벡터(MV*)(MV* = MVD + MVP*)가 또한 산출될 수 있다. 조정된 모션 벡터(MV*)의 인코딩 비용이 단계(1030)에서 RD 비용을 사용하여 추정될 수 있다. 단계(1035)에서, 인코더는 현재의 조정된 모션 벡터가 현재의 Best_RDcost보다 더 작은 RD 비용을 갖는지를 체크한다. 예인 경우, 파라미터들 Best_RDcost, Best_MV 및 Best_MVD가 현재의 RD 비용, 현재의 조정된 모션 벡터, 및 현재의 MVD로 설정되고(1040), Best_flag가 참(true)(1)인 채로 있다.
단계(1045)에서, 모션 벡터 예측자 리스트가, 예를 들어, AMVP로부터의 모션 벡터 예측자 후보 리스트를 사용하여 1/8 펠 분해능으로 작성된다. MVP 리스트 내의 각각의 MVP에 대해, MVD가 MVP에 기초하여 1/8 펠 분해능으로 산출된다(1050). 모션 벡터(MV)의 인코딩 비용이 단계(1055)에서 RD 비용을 사용하여 추정될 수 있다. 단계(1065)에서, 인코더는 현재의 모션 벡터가 현재의 Best_RDcost보다 더 작은 RD 비용을 갖는지를 체크한다. 예인 경우, 파라미터들 Best_RDcost, Best_MV 및 Best_MVD가 현재의 RD 비용, 현재의 모션 벡터, 및 현재의 MVD로 설정되고(1075), 적응 모션 세분화 플래그(Best_flag)가 거짓(0)으로 설정된다.
방법(1000)에서, 인코더는 인코딩 비용에 기초하여 적응 모션 세분화를 사용할지를 결정하고, 비트스트림에서의 플래그를 통해 선택항목을 시그널링한다. 다른 실시예들에서, 인코더는, 예를 들어, 이하에서 또는 Lakshman 및 Chen에서 추가로 기술되는 바와 같이, 인코딩 비용을 체크함이 없이 비디오 특성들에 기초하여 적응 모션 세분화를 사용할지를 결정할 수 있다. 결과적으로, 인코더는 방법(1000)의 일부(예를 들어, 모션 세분화를 이용하는 파트 또는 모션 세분화를 이용하지 않는 파트)를 수행하기만 하면 될 수 있다.
모션 벡터 예측자를 세분화함으로써, MV 예측자가 보다 정확할 수 있다. 그에 따라, MVD는 통계적으로 보다 낮은 값들을 가질 수 있고, 코딩 비용이 이어서 감소될 수 있다. 예를 들어, 표 2에 보여지는 바와 같이, 모션 추정(1010)으로부터의 현재 블록에 대한 모션 벡터(MV)는 3.625이며, 모션 벡터 예측자 리스트(1015)는 {3.0, ...}을 포함한다. 모션 벡터 예측자 MVP0 = 3.0에 대해, 이는 모션 세분화에 의해 MVP* = 3.5로 세분화된다(1020). 차후에, 모션 벡터 차이는 MVD = MV - MVP* = 0.125이다. 모션 세분화를 사용하지 않은 모션 벡터 차이 MV - MVP0 = 0.625와 비교하여, 인코딩될 MVD가 보다 작고 인코딩되기 위해 보다 적은 비트들을 필요로 할 수 있다. 이 예에서, 모션 세분화를 사용하는 것은 압축 효율을 개선시킬 수 있으며, 따라서 인코더는 적응 모션 세분화를 인에이블시키기로 선택할 가능성이 많다. 모션 보상을 위해 사용되는 모션 벡터는 MVP* + MVD = 3.625이다.
Figure pct00016
MVD가 0일 때, 예를 들어, 병합 모드가 사용될 때, 단계들(1025 및 1050)이 필요하지 않고, 단계(1040 및 1075)에서, Best_MVD가 산출될 필요가 없으며, 단계(1090)에서, Best_MVD가 인코딩될 필요가 없다. MVD가 0일 때, 방법(1000)이 방법(800)과 동일하게 될 수 있다는 점에 유의한다. 모션 세분화가 모션 벡터 예측자들에 대응하는 모든 모션 벡터들에 적용될 수 있거나, 서브세트에 적용될 수 있다. 예를 들어, 모션 세분화가 AMVP 모션 벡터 예측자들에 대해서만, 또는 병합 모드에만 사용된다.
자동 모션 세분화 활성화
상기 실시예들에서, 우리는 적응 모션 벡터 분해능이 인에이블되어 있는지를 표시하기 위해 플래그(예를 들어, 도 8 또는 도 10에 도시된 바와 같은 Best_flag)가 사용될 수 있다는 것을 기술하고 있다. 이하에서, 우리는 모션 벡터 분해능 세분화를 자동으로 활성화 또는 비활성화시키는 다양한 실시예들을 기술한다. 따라서, 인코더는 명시적 플래그를 이용함이 없이 적응 모션 벡터 분해능이 인에이블되는지를 표시할 수 있고, 디코더는 또한 명시적 플래그를 참조함이 없이 적응 모션 벡터 분해능이 인에이블되는지를 결정할 수 있다.
일 실시예에서, 우리는 다음과 같은 기준들 중 하나 이상에 기초하여 적응 모션 세분화를 자동으로 활성화시킬 것을 제안한다:
- 모션 유사도(motion similarity): 현재 블록의 모션은 주변 블록들의 모션과 유사하며, 따라서 인코더 또는 디코더는 모션 세분화를 위해 주변 블록들의 모션 벡터들을 사용할 수 있다.
- 텍스처 강도(textureness)(또는 텍스처 레벨): 현재 블록 및 주변 블록들은 강건한 서브-픽셀 모션 세분화를 가능하게 해줄 수 있는 어떤 텍스처를 포함한다.
- 모션 벡터 차이(MVD): MVD는 인코더 및 디코더 둘 다에서 이용가능하며, 자동 적응 모션 세분화를 사용할지 또는 적응 모션 세분화를 명시적으로 시그널링할지를 결정하는 데 사용될 수 있다.
모션 유사도 기준은 다음과 같은 조건들 중 하나 이상을 사용하여 측정될 수 있다:
1) MVPleft 및 MVPabove(임의로 MVPabove-left)가 존재한다, 즉 모션 필드가 현재 블록 주위에 존재한다. 보다 일반적으로, 모션 벡터들을 갖는 하나 이상의 이웃 블록이 있다.
2) |MVPleft - MVPcurrent| < T2, |MVPabove - MVPcurrent| < T2, 및 |MVPleftabove - MVPcurrent| < T2. 이 조건은 또한 다음의 3개의 서브-조건의 상이한 논리 조합일 수 있다: |MVPleft - MVPcurrent| < T2, |MVPabove - MVPcurrent| < T2, 및 |MVPleftabove - MVPcurrent| < T2. 즉, 주변 블록들의 모션 벡터들은 유사하고 현재 블록 주위의 모션 필드는 얼마간 균일하다. 여기서 우리는 MVPleft와 MVPcurrent 사이의, MVPabove와 MVPcurrent 사이의, 그리고 MVPleftabove와 MVPcurrent 사이의 차이를 체크하기 위해 동일한 T2를 사용한다. 이러한 차이들에 대해 상이한 임계값들이 사용될 수 있다는 점에 유의해야 한다.
텍스처 강도 기준은 다음과 같은 조건들 중 하나 이상을 사용하여 측정될 수 있다:
1) Texture(L) > T3, 여기서 L은 모션 세분화를 수행하는 데 사용되는 이웃 구역(neighboring area), 예를 들어, 도 6a에 도시된 바와 같은 670이고, texture(X)는 X의 텍스처링(texturing), 예를 들어, 루미넌스 변동(variance in luminance)의 척도이다. 즉, 이웃 구역은 어떤 텍스처를 갖는다.
2) Err(mc(L, MVP, Iref), L) < Err(mc(L, MVP+MVr, Iref),L) + T4, 여기서, MVP는 비트스트림에서 시그널링된 MVD에 대응하는 선택된 모션 벡터 예측자이고, 따라서 인코더 및 디코더 둘 다는 이 조건을 체크하기 위해 동일한 MVP를 사용할 수 있으며, Err(X,Y)는 픽셀들의 그룹 X와 픽셀들의 그룹 Y 사이의 에러의 척도, 예를 들어, SAD, HAD 또는 SSE이고, mc(X, v, I)는 기준 이미지 I에서의 모션 벡터 v를 사용한 픽셀들의 그룹 X의 모션 보상이며, Iref는 모션 벡터 예측자(MVP)와 연관된 기준 이미지이고, T4는 에러 유사도에 관한 임계값이며, MVP+MVr은 세분화 이후의 모션 벡터 예측자이다. MVP는 이전에 기술된 바와 같이 보다 낮은 모션 분해능으로 되어 있을 수 있으며, 예를 들어, 정수로 라운딩되어(integer rounded) 있을 수 있다.
자동 모션 세분화 활성화는 모션 유사도 또는 텍스처 강도 기준들 둘 다에 따른 모든 조건들에 기초할 수 있거나, 또한 조건들의 서브세트를 사용할 수 있다. 모션 세분화 활성화 또는 비활성화를 시그널링할지는 모션 벡터 차이(MVD)에 기초할 수 있다. |MVD|≤T1일 때 - MVD는 비트스트림에 표시된 모션 벡터 차이이고 T1은 모션 임계값이며, 전형적인 예에서,
Figure pct00017
Figure pct00018
임 -, 우리는 명시적 시그널링을 이용함이 없이 모션 벡터 세분화를 활성화시키기로 선택할 수 있다. 즉, 모션 벡터 차이가 작고 현재 모션 벡터가 현재 모션 벡터 예측자에 가까울 때, 인코더 및 디코더는 모션 세분화를 자동으로 활성화시킬 수 있다. 그에 부가하여, 인코더 및 디코더 둘 다는 MVD에 액세스할 수 있으며, 인코더와 디코더를 동기화시키기 위해 MVD를 사용하여 동일한 방식으로 모션 세분화 활성화를 결정할 수 있다. 다른 한편으로, |MVD|가 크게 될 때, 인코더 및 디코더는, 명시적 시그널링을 이용함이 없이, 모션 세분화를 자동으로 비활성화시킬 수 있다.
다른 예에서, 시간 후보가 모션 벡터 예측자 리스트를 작성하는 데 사용될 때, 즉 MVPleft와 MVPabove가 공존하지 않거나 동일할 때, 모션 유사도 기준에서의 조건들 1) 및 2)가 사용되지 않는다. 인코더는 자동 세분화를 위해 시간 후보를 사용할지 여부를 선택할 수 있다.
도 11은 본 원리들의 일 실시예에 따른, 디코더에서 자동 모션 세분화 활성화 또는 비활성화를 이용한 모션 벡터 예측자 세분화를 수행하기 위한 예시적인 방법(1100)을 예시하고 있다.
디코딩될 블록에 대해, 디코더는 MV 예측자(MVPcurrent)를 생성하고(1110) MV 차이(MVD)를 디코딩한다(1120). |MVD|≤T1(1125)가 참일 때, 디코더는 모션 세분화가 활성화되어야 하는지를 알아보기 위해 다른 조건들을 체크한다. 그렇지 않고 |MVD| > T1인 경우, 디코더는
Figure pct00019
인지를 체크한다. 일 예에서, S = 1/2이며, 이는 세분화를 위한 모션 탐색이 [-1/2, 1/2]에서 있다는 것을 나타낸다.
Figure pct00020
(1130)인 경우, 디코더는 비트스트림으로부터 디코딩된(1140) 플래그에 기초하여 모션 세분화가 사용되는지를 결정한다. 그렇지 않고
Figure pct00021
인 경우, 디코더는 모션 세분화를 수행하지 않고(즉, 모션 세분화가 자동으로 비활성화되고), MVP 및 MVD에 기초하여 모션 벡터를 디코딩하며(1180), 즉 MV = MVP + MVD이다.
보다 상세하게는, 디코더는 |MVPleft - MVPcurrent| < T2이고 |MVPabove - MVPcurrent| < T2인지를 체크한다(1155). 예인 경우, 디코더는 Texture(L) > T3인지를 체크한다(1165). 1155 및 1165에서의 조건들 둘 다가 충족되는 경우, 디코더는, 예를 들어, 앞서 기술된 다양한 실시예들을 사용하여, 모션 벡터 예측자 세분화를 수행하고, 세분화된 모션 벡터 예측자(MVP*) 및 MVD에 기초하여 모션 벡터를 디코딩하며(1170), 즉 MV = MVP* + MVD이다. 여기서, 모션 세분화가 플래그를 이용함이 없이 자동으로 활성화된다.
Figure pct00022
일 때, 디코더는 모션 세분화가 사용될 수 있는지를 표시하는 플래그(예를 들어, Refine_flag)를 디코딩한다(1140). 플래그가 참인 경우(1145), 디코더는 단계(1155)로 진행한다. 그렇지 않고 플래그가 거짓인 경우(1145), MVP 및 MVD에 기초하여 모션 벡터가 획득된다(1180).
도 11에서, 디코더는 일부 조건들에서 모션 세분화를 자동으로 비활성화 또는 활성화시키고, 다른 조건들에서 모션 세분화를 비활성화 또는 활성화시키기 위해 플래그에 의존한다. 동일한 조건들이 인코더와 디코더 간의 동기화를 보장하기 위해 대응하는 인코더에 의해 사용된다.
MVD가 0일 때, 예를 들어, 병합 모드가 사용될 때, 단계(1125)에서의 조건은 항상 참이고 제거될 수 있으며, 단계들(1120, 1130, 1140, 1145 및 1180)이 필요하지 않다. 대안적으로, 병합 모드에서, 병합 추론된 모션 벡터 예측자(merge deduced motion vector predictor)에 잡음을 추가하는 것을 피하기 위해 모션 세분화가 디스에이블될 수 있다.
도 11에 도시된 것과 상이하게, 방법(1100)은 또한 단계들(1130 내지 1145)을 스킵할 수 있다. 즉, |MVD| > T1일 때, 디코더는 모션 세분화 없이 단계(1180)를 수행한다. 다른 변형들, 예를 들어, 단계(1155) 및/또는 단계(1165)를 스킵하는 것, 단계(1155)에서의 2개의 조건 중 하나를 체크하는 것 - 이들로 제한되지 않음 - 이 또한 구현될 수 있다.
도 12는 본 원리들의 일 실시예에 따른, 인코더에서 자동 모션 세분화를 수행하기 위한 예시적인 방법(1200)을 예시하고 있다. 방법(1200)의 출력은 방법(1100)에의 입력 비트스트림으로서 사용될 수 있다. 초기화 단계(1205)에서, 인코더는 입력으로서 인코딩될 비디오 시퀀스에 액세스할 수 있다. 부가적으로, 인코더는 파라미터들을 초기 값들로 설정할 수 있으며, 예를 들어, Best_RDcost를 큰 값으로 설정할 수 있다.
모션 벡터(MV)를 획득하기 위해 모션 추정(1210)이 1/8 펠 분해능으로 수행된다. 단계(1220)에서, 모션 벡터 예측자 리스트가, 예를 들어, AMVP로부터의 모션 벡터 예측자 후보 리스트를 사용하여 작성된다. 대응하는 디코더가 모션 벡터 예측자 리스트를 어떻게 작성하는지에 따라, 초기 모션 벡터 예측자의 (예를 들어, 원하는 분해능에서 최근접 정수로) 라운딩된 버전 또는 이웃하는 모션 벡터들의 평균이 사용될 수 있다. MVP 리스트는 일부 경우들에서 단지 하나의 MVP를 포함할 수 있다. 단계(1220)에서, 모션 벡터 예측자 리스트가 또한 다른 분해능들로 작성될 수 있다.
단계(1225)에서, 특정의 MVP에 대해, 인코더는 이어서 적응 모션 세분화를 사용하여 모션 벡터를 인코딩하는 것이 보다 효율적인지 여부를 체크하고 Refine_flag를 0 또는 1로 설정한다. 모션 세분화가 보다 효율적일 때, Refine_flag는 1로 설정되고, 그렇지 않으면 0으로 설정된다. 대응하는 MVD가 또한 단계(1225)에서 계산된다.
도 13은 본 원리들의 일 실시예에 따른, 특정의 MVP에 대해 적응 모션 세분화를 사용할지 여부를 결정하기 위한 예시적인 방법(1300)을 예시하고 있다. 방법(1300)은 방법(1200)의 단계(1225)를 구현하는 데 사용될 수 있다.
특히, 인코더는 |MVPleft - MVPcurrent| < T2이고, |MVPabove - MVPcurrent| < T2이며, Texture(L) > T3인지를 체크한다(1305). 1305에서의 조건들이 충족되는 경우, 인코더는, 예를 들어, 앞서 기술된 다양한 실시예들을 사용하여, 모션 벡터 예측자 세분화(1330)를 수행하고, 세분화된 모션 벡터 예측자(MVP*)에 기초하여 모션 벡터 차이를 계산하며(1340), 즉 MVD = MV - MVP*이다. 모션 세분화가 사용될 때 RD 비용(RDCost1)이 추정된다(1350). 인코더는 또한 세분화된 모션 벡터 예측자를 이용함이 없이 모션 벡터 차이를 계산하며(1360), 즉 MVD = MV - MVP이다. 모션 세분화가 사용되지 않을 때 RD 비용(RDCost2)이 추정된다(1370). 모션 세분화를 이용한 RD 비용과 모션 세분화를 이용하지 않은 RD 비용이 비교된다(1375). RDCost1이 더 작은 경우, Refine_flag는 1로 설정되고(1380), MVD는 MV - MVP*로 설정된다. 그렇지 않은 경우, Refine_flag는 0으로 설정되고(1390), MVD는 MV - MVP로 설정된다.
1305에서의 조건들이 충족되지 않는 경우, 모션 벡터 차이가 모션 벡터 예측자(MVP)에 기초하여 계산되며(1310), 즉 MVD = MV - MVP이며, Refine_flag는 0으로 설정된다(1320).
단계(1225)에서 MVD 및 Refine_flag가 결정된 후에, 단계(1230)에서, 인코더는 |MVD| ≤ T1인지를 체크한다. 예인 경우, 인코더는 Refine_flag가 1인지를 추가로 체크한다(1235). Refine_flag가 1로 설정되어 있는 경우, 인코더는 RD 비용을 추정한다(1270). RD 비용이 현재의 Best_RDCost보다 더 작은 경우(1275), 파라미터들 Best_RDcost 및 Best_MVD는 현재의 RD 비용 및 현재의 MVD로 설정되고(1280), Write_flag는, 어떠한 명시적 시그널링도 적응 모션 세분화를 표시하는 데 사용되지 않는다는 것을 표시하는, no로 설정된다. 즉, 현재의 MVP가 인코딩을 위해 선택되는 경우, 모션 세분화가 플래그를 송신할 필요 없이 자동으로 활성화될 것이다.
|MVD| > T1일 때(1230), 인코더는 RD 비용을 추정한다(1240). RD 비용이 Best_RDCost보다 더 작은 경우(1245), 파라미터들 Best_RDcost 및 Best_MVD는 현재의 RD 비용 및 현재의 MVD로 설정된다(1250). 인코더는 이어서
Figure pct00023
인지를 체크한다(1255). 예인 경우, Write_flag가 yes로 설정된다. 여기서, 조건 분기(1260)에 대응하는 모션 벡터 예측자가 선택되는 경우, 모션 세분화가 활성화되는지는 Refine_flag에 기초하여 명시적으로 시그널링될 것이다.
그렇지 않고 1255에서의 조건이 충족되지 않는 경우, Write_flag는 no로 설정된다(1265). 즉, 조건 분기(1265)에 대응하는 모션 벡터 예측자가 선택되는 경우, 모션 세분화는 플래그를 송신할 필요 없이 자동으로 비활성화될 것이다.
인코더는 MVP 리스트의 끝에 도달했는지를 체크한다(1285). 예인 경우, 인코더는 Best_MVD, 선택된 MVP의 인덱스, 및, 있는 경우, 대응하는 잔차를 인코딩한다. Write_flag가 yes로 설정된 경우, Refine_flag가 또한 인코딩된다. 그렇지 않고 1285에서의 조건이 충족되지 않는 경우, 제어가 단계(1225)로 되돌아간다. 병합 모드가 선택되는 경우, Best_MVD가 단계(1290)에서 인코딩될 필요가 없다. 방법(1100)에 대응하여, 방법(1200)이 도 12에 도시된 것으로부터 변화될 수 있으며, 예를 들어, 단계들(1240 내지 1260)이 스킵될 수 있다.
이상에서, 모션 세분화의 자동 활성화 또는 비활성화가 모션 벡터 예측자와 관련하여 논의되어 있다. 자동 활성화 또는 비활성화가 다른 타입들의 모션 정보, 예를 들어, 모션 벡터 차이를 이미 포함하는 모션 벡터 - 이에 한정되지 않음 - 에 적용될 수 있다는 점에 유의해야 한다.
예를 들어, 임계값들에 기초하여 모션 유사도 또는 텍스처 강도를 결정하기 위해, 본 출원에서 다양한 수치 값들이 사용된다. 특정 값들이 예시 목적을 위한 것이며 본 원리들이 이러한 특정 값들로 제한되지 않는다는 점에 유의해야 한다.
이상에서, 다양한 실시예들이 HEVC 표준과 관련하여 기술되어 있다. 예를 들어, 앞서 기술된 바와 같은 다양한 모션 세분화 또는 자동 활성화 방법들은 도 1에 도시된 바와 같은 HEVC 인코더의 모션 추정 모듈(175) 또는 도 3에 도시된 바와 같은 HEVC 디코더의 모션 보상 모듈(375)을 수정하는 데 사용될 수 있다. 그렇지만, 본 원리들은 HEVC로 제한되지 않으며, 다른 표준들, 권고들, 및 그 확장들에 적용될 수 있다.
이상에서, 우리는 1/4 펠로부터 1/8 펠로의 모션 세분화를 논의하고 있다. 본 원리들이 다른 모션 분해능들 간의 세분화, 예를 들어, 정수 펠로부터 1/4 펠로, 1/4 펠로부터 1/6 펠로의 세분화 - 이들로 제한되지 않음 - 에 적용될 수 있다는 점에 유의해야 한다.
도 14는 본 원리들의 예시적인 실시예들의 다양한 양태들이 구현될 수 있는 예시적인 시스템의 블록 다이어그램을 예시하고 있다. 시스템(1400)은 이하에서 기술되는 다양한 컴포넌트들을 포함하는 디바이스로서 구체화될 수 있으며, 앞서 기술된 프로세스들을 수행하도록 구성된다. 이러한 디바이스들의 예들은 개인용 컴퓨터들, 랩톱 컴퓨터들, 스마트폰들, 태블릿 컴퓨터들, 디지털 멀티미디어 셋톱 박스들, 디지털 TV 수신기들, 개인용 비디오 레코딩 시스템들, 연결된 가전 제품들, 및 서버들을 포함하지만, 이들로 제한되지 않는다. 시스템(1400)은 앞서 기술된 예시적인 비디오 시스템을 구현하기 위해 도 14에 도시된 바와 같은 그리고 본 기술분야의 통상의 기술자에게 공지된 바와 같은 통신 채널을 통해 다른 유사한 시스템들에 그리고 디스플레이에 통신가능하게 커플링될 수 있다.
시스템(1400)은 앞서 논의된 바와 같은 다양한 프로세스들을 구현하기 위해 로딩된 명령어들을 실행하도록 구성된 적어도 하나의 프로세서(1410)를 포함할 수 있다. 프로세서(1410)는 본 기술분야에 공지된 바와 같은 임베디드 메모리, 입력 출력 인터페이스 및 다양한 다른 회로부들을 포함할 수 있다. 시스템(1400)은 또한 적어도 하나의 메모리(1420)(예컨대, 휘발성 메모리 디바이스, 비휘발성 메모리 디바이스)를 포함할 수 있다. 시스템(1400)은, EEPROM, ROM, PROM, RAM, DRAM, SRAM, 플래시, 자기 디스크 드라이브, 및/또는 광학 디스크 드라이브를 포함하지만 이들로 제한되지 않는, 비휘발성 메모리를 포함할 수 있는 저장 디바이스(1440)를 부가로 포함할 수 있다. 저장 디바이스(1440)는, 비제한적 예들로서, 내부 저장 디바이스, 부착형 저장 디바이스(attached storage device) 및/또는 네트워크 액세스가능 저장 디바이스를 포함할 수 있다. 시스템(1400)은 또한 인코딩된 비디오 또는 디코딩된 비디오를 제공하기 위해 데이터를 프로세싱하도록 구성된 인코더/디코더 모듈(1430)을 포함할 수 있다.
인코더/디코더 모듈(1430)은 인코딩 및/또는 디코딩 기능들을 수행하기 위해 디바이스에 포함될 수 있는 모듈(들)을 나타낸다. 공지된 바와 같이, 디바이스는 인코딩 및 디코딩 모듈들 중 하나 또는 둘 다를 포함할 수 있다. 부가적으로, 인코더/디코더 모듈(1430)은 본 기술분야의 통상의 기술자에게 공지된 바와 같이 시스템(1400)의 별개의 요소로서 구현될 수 있거나 하드웨어와 소프트웨어의 조합으로서 프로세서들(1410) 내에 통합될 수 있다.
본 명세서에서 앞서 기술된 다양한 프로세스들을 수행하기 위해 프로세서들(1410) 상으로 로딩될 프로그램 코드는 저장 디바이스(1340)에 저장되고 차후에 프로세서들(1410)에 의한 실행을 위해 메모리(1420) 상으로 로딩될 수 있다. 본 원리들의 예시적인 실시예들에 따르면, 프로세서(들)(1410), 메모리(1420), 저장 디바이스(1440) 및 인코더/디코더 모듈(1430) 중 하나 이상은 본 명세서에서 앞서 논의된 프로세스들의 수행 동안, 입력 비디오, 비트스트림, 방정식들, 공식, 행렬들, 변수들, 연산들, 및 연산 로직을 포함하지만 이들로 제한되지 않는, 다양한 항목들 중 하나 이상을 저장할 수 있다.
시스템(1400)은 또한 통신 채널(1460)을 통해 다른 디바이스들과의 통신을 가능하게 해주는 통신 인터페이스(1450)를 포함할 수 있다. 통신 인터페이스(1450)는 통신 채널(1460)로부터 데이터를 전송 및 수신하도록 구성된 트랜시버를 포함할 수 있지만, 이에 한정되지 않는다. 통신 인터페이스는 모뎀 또는 네트워크 카드를 포함할 수 있지만 이에 한정되지 않으며, 통신 채널은 유선 및/또는 무선 매체 내에 구현될 수 있다. 시스템(1400)의 다양한 컴포넌트들은, 내부 버스들, 와이어들, 및 인쇄 회로 보드들을 포함하지만 이에 한정되지 않는, 다양한 적당한 연결들을 사용하여 서로 연결되거나 통신가능하게 커플링될 수 있다.
본 원리들에 따른 예시적인 실시예들은 프로세서(1410)에 의해 구현되는 컴퓨터 소프트웨어에 의해 또는 하드웨어에 의해, 또는 하드웨어와 소프트웨어의 조합에 의해 수행될 수 있다. 비제한적인 예로서, 본 원리들에 따른 예시적인 실시예들은 하나 이상의 집적 회로에 의해 구현될 수 있다. 메모리(1420)는 기술적 환경에 적절한 임의의 타입일 수 있고, 비제한적 예들로서, 광학 메모리 디바이스들, 자기 메모리 디바이스들, 반도체 기반 메모리 디바이스들, 고정식 메모리 및 이동식 메모리와 같은 임의의 적절한 데이터 저장 기술을 사용하여 구현될 수 있다. 프로세서(1410)는 기술적 환경에 적절한 임의의 타입일 수 있으며, 비제한적 예들로서, 마이크로프로세서들, 범용 컴퓨터들, 특수 목적 컴퓨터들 및 멀티 코어 아키텍처 기반의 프로세서들 중 하나 이상을 포괄(encompass)할 수 있다.
본 명세서에 기술되는 구현들이, 예를 들어, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림, 또는 신호로 구현될 수 있다. 단일 형태의 구현의 맥락에서 논의되어 있을 뿐이지만(예를 들어, 방법로서만 논의되어 있음), 논의된 특징들의 구현이 또한 다른 형태들(예를 들어, 장치 또는 프로그램)로 구현될 수 있다. 장치가, 예를 들어, 적절한 하드웨어, 소프트웨어, 및 펌웨어로 구현될 수 있다. 방법들이, 예를 들어, 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그래밍가능 로직 디바이스를 포함한, 일반 프로세싱 디바이스들을 지칭하는, 예를 들어, 프로세서와 같은, 예를 들어, 장치에서 구현될 수 있다. 프로세서들은 또한, 예를 들어, 컴퓨터들, 셀 폰들, 휴대용/개인 휴대 단말들("PDA들"), 및 최종 사용자들 간의 정보의 전달을 용이하게 하는 다른 디바이스들과 같은, 통신 디바이스들을 포함한다.
본 원리들의 "일 실시예" 또는 "실시예" 또는 "일 구현" 또는 "구현"은 물론, 이들의 다른 변형들에 대한 언급은 그 실시예와 관련하여 기술된 특정의 특징, 구조, 특성 등이 본 원리들의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 명세서 전체에 걸쳐 여러 곳에서 나오는 "일 실시예에서" 또는 "실시예에서" 또는 "일 구현에서" 또는 "구현에서"는 물론 임의의 다른 변형들과 같은 문구들의 출현들은 모두가 꼭 동일한 실시예를 지칭하는 것은 아니다.
부가적으로, 본 출원 또는 그 청구항들은 다양한 정보들을 "결정"하는 것을 언급할 수 있다. 정보를 결정하는 것은, 예를 들어, 정보를 추정하는 것, 정보를 산출하는 것, 정보를 예측하는 것, 또는 메모리로부터 정보를 검색하는 것 중 하나 이상을 포함할 수 있다.
게다가, 본 출원 또는 그 청구항들은 다양한 정보들에 "액세스"하는 것을 언급할 수 있다. 정보에 액세스하는 것은, 예를 들어, 정보를 수신하는 것, (예를 들어, 메모리로부터) 정보를 검색하는 것, 정보를 저장하는 것, 정보를 프로세싱하는 것, 정보를 전송하는 것, 정보를 이동시키는 것, 정보를 복사하는 것, 정보를 소거하는 것, 정보를 산출하는 것, 정보를 결정하는 것, 정보를 예측하는 것, 또는 정보를 추정하는 것 중 하나 이상을 포함한다.
부가적으로, 본 출원 또는 그 청구항들은 다양한 정보들을 "수신"하는 것을 언급할 수 있다. 수신하는 것은, "액세스하는 것"에서와 같이, 광범위한 용어로 의도되어 있다. 정보를 수신하는 것은, 예를 들어, 정보에 액세스하는 것, 또는 (예를 들어, 메모리로부터) 정보를 검색하는 것 중 하나 이상을 포함할 수 있다. 게다가, "수신하는 것"은 전형적으로, 예를 들어, 정보를 저장하는 것, 정보를 프로세싱하는 것, 정보를 전송하는 것, 정보를 이동시키는 것, 정보를 복사하는 것, 정보를 소거하는 것, 정보를 산출하는 것, 정보를 결정하는 것, 정보를 예측하는 것, 또는 정보를 추정하는 것과 같은 동작들 동안, 어떻게든, 수반될 수 있다.
본 기술 분야의 통상의 기술자에게 명백할 것인 바와 같이, 구현들은, 예를 들어, 저장 또는 전송될 수 있는 정보를 반송하도록 포맷팅된 각종의 신호들을 생성할 수 있다. 정보는, 예를 들어, 방법을 수행하기 위한 명령어들, 또는 기술된 구현들 중 하나에 의해 생성된 데이터를 포함할 수 있다. 예를 들어, 신호는 기술된 실시예의 비트스트림을 반송하도록 포맷팅될 수 있다. 그러한 신호는, 예를 들어, 전자기파로서(예를 들어, 스펙트럼의 라디오 주파수 부분을 사용하여) 또는 베이스밴드 신호(baseband signal)로서 포맷팅될 수 있다. 포맷팅은, 예를 들어, 데이터 스트림을 인코딩하는 것 및 인코딩된 데이터 스트림으로 반송파를 변조하는 것을 포함할 수 있다. 신호가 반송하는 정보는, 예를 들어, 아날로그 또는 디지털 정보일 수 있다. 신호는, 공지된 바와 같이, 각종의 상이한 유선 또는 무선 링크들을 거쳐 전송될 수 있다. 신호는 프로세서 판독가능 매체 상에 저장될 수 있다.

Claims (16)

  1. 비디오 디코딩을 위한 방법(1100)으로서,
    비디오의 현재 블록에 대한 모션 벡터 예측자(motion vector predictor) 및 모션 벡터 차이(motion vector difference)에 액세스하는 단계(1110) - 상기 모션 벡터 예측자는 제1 모션 분해능(motion resolution)과 연관됨 -; 및
    상기 모션 벡터 차이에 기초하여, 상기 모션 벡터 예측자를 세분화(refine)할지 여부를 결정하는 단계(1125, 1130)
    를 포함하고, 상기 모션 벡터 예측자를 세분화하는 단계(1170)는:
    모션 탐색에 기초하여 세분화된 모션 벡터 예측자를 형성하는 단계 - 상기 세분화된 모션 벡터 예측자는 제2 모션 분해능과 연관되고, 상기 제2 모션 분해능은 상기 제1 모션 분해능보다 더 높음 -, 및
    상기 세분화된 모션 벡터 예측자 및 상기 모션 벡터 차이에 기초하여 상기 현재 블록에 대한 모션 벡터를 형성하는 단계(1170) - 상기 현재 블록은 상기 형성된 모션 벡터에 기초하여 디코딩됨 -
    를 포함하는, 방법.
  2. 적어도 하나의 메모리 및 하나 이상의 프로세서를 포함하는 장치(1400)로서, 상기 하나 이상의 프로세서는:
    비디오의 현재 블록에 대한 모션 벡터 예측자 및 모션 벡터 차이에 액세스하고 - 상기 모션 벡터 예측자는 제1 모션 분해능과 연관됨 -;
    상기 모션 벡터 차이에 기초하여, 상기 모션 벡터 예측자를 세분화할지 여부를 결정하도록
    구성되고, 상기 하나 이상의 프로세서는:
    모션 탐색에 기초하여 세분화된 모션 벡터 예측자를 형성하는 것 - 상기 세분화된 모션 벡터 예측자는 제2 모션 분해능과 연관되고, 상기 제2 모션 분해능은 상기 제1 모션 분해능보다 더 높음 -, 및
    상기 세분화된 모션 벡터 예측자 및 상기 모션 벡터 차이에 기초하여 상기 현재 블록에 대한 모션 벡터를 형성하는 것 - 상기 현재 블록은 상기 형성된 모션 벡터에 기초하여 디코딩됨 -
    을 수행하는 것에 의해 상기 모션 벡터 예측자를 세분화하도록 구성되는, 장치.
  3. 제1항에 있어서, 또는 제2항에 있어서, 상기 모션 벡터 예측자는 상기 모션 벡터 차이의 크기가 제1 임계값보다 더 작을 때 세분화되는 것으로 결정되는, 방법 또는 장치.
  4. 제1항 또는 제3항에 있어서, 또는 제2항 또는 제3항에 있어서, 상기 모션 벡터 예측자는 상기 모션 벡터 차이의 크기가 제2 임계값을 초과할 때 세분화되지 않는 것으로 결정되고, 상기 모션 벡터 예측자 및 상기 모션 벡터 차이에 기초하여 상기 현재 블록을 디코딩하는 것을 추가로 포함하는, 방법 또는 장치.
  5. 제1항, 제3항 및 제4항 중 어느 한 항에 있어서, 또는 제2항 내지 제4항 중 어느 한 항에 있어서, 상기 모션 벡터 차이의 크기가 제1 임계값을 초과할 때, 비트스트림으로부터 플래그를 디코딩하는 것을 추가로 포함하고, 상기 모션 벡터 예측자가 세분화되어야 하는지 여부는 상기 디코딩된 플래그에 기초하는, 방법 또는 장치.
  6. 제1항 및 제3항 내지 제5항 중 어느 한 항에 있어서, 또는 제2항 내지 제5항 중 어느 한 항에 있어서,
    인접한 디코딩된 블록들의 적어도 하나의 모션 벡터에 액세스하는 단계를 추가로 포함하고, 상기 하나 이상의 프로세서는:
    인접한 디코딩된 블록들의 적어도 하나의 모션 벡터에 액세스하는 것을 수행하도록 추가로 구성되며, 상기 현재 블록에 대한 상기 모션 벡터 예측자와 상기 적어도 하나의 모션 벡터 사이의 차이가 제3 임계값보다 더 작은 경우, 상기 모션 벡터 예측자는 세분화되는 것으로 결정되는, 방법 또는 장치.
  7. 제1항 및 제3항 내지 제6항 중 어느 한 항에 있어서, 또는 제2항 내지 제6항 중 어느 한 항에 있어서,
    인접한 디코딩된 블록들의 복수의 픽셀들에 액세스하는 단계를 추가로 포함하고, 상기 하나 이상의 프로세서는:
    인접한 디코딩된 블록들의 복수의 픽셀들에 액세스하는 것을 수행하도록 추가로 구성되며, 상기 복수의 픽셀들의 텍스처 레벨이 제4 임계값을 초과하는 경우 상기 모션 벡터 예측자는 세분화되는 것으로 결정되는, 방법 또는 장치.
  8. 비디오 인코딩을 위한 방법(1200)으로서,
    모션 벡터 예측자에 액세스하는 단계(1220) - 상기 모션 벡터 예측자는 제1 모션 분해능과 연관됨 -;
    상기 모션 벡터 예측자에 대응하는 모션 벡터 차이를 결정하는 단계(1225);
    상기 모션 벡터 예측자를 세분화할지를 결정하는 단계(1225) - 상기 세분화는 제2 모션 분해능과 연관되고, 상기 제2 모션 분해능은 상기 제1 모션 분해능보다 더 높음 -;
    상기 결정된 모션 벡터 차이에 기초하여, 상기 모션 벡터 예측자의 상기 세분화를 명시적으로 시그널링할지 여부를 결정하는 단계(1280, 1260, 1265); 및
    상기 모션 벡터 차이를 인코딩하는 단계(1290)
    를 포함하는, 방법.
  9. 적어도 하나의 메모리 및 하나 이상의 프로세서를 포함하는 장치(1400)로서, 상기 하나 이상의 프로세서는:
    모션 벡터 예측자에 액세스하고 - 상기 모션 벡터 예측자는 제1 모션 분해능과 연관됨 -;
    상기 모션 벡터 예측자에 대응하는 모션 벡터 차이를 결정하며;
    상기 모션 벡터 예측자를 세분화할지를 결정하고 - 상기 세분화는 제2 모션 분해능과 연관되고, 상기 제2 모션 분해능은 상기 제1 모션 분해능보다 더 높음 -;
    상기 결정된 모션 벡터 차이에 기초하여, 상기 모션 벡터 예측자의 상기 세분화를 명시적으로 시그널링할지 여부를 결정하며;
    상기 모션 벡터 차이를 인코딩하도록
    구성되는, 장치.
  10. 제8항에 있어서, 또는 제9항에 있어서, 상기 모션 벡터 차이의 크기가 제1 임계값보다 더 작을 때 상기 모션 벡터 예측자의 상기 세분화가 명시적으로 시그널링되지 않는, 방법 또는 장치.
  11. 제8항 또는 제10항에 있어서, 또는 제9항 또는 제10항에 있어서, 상기 모션 벡터 차이의 크기가 제2 임계값을 초과할 때 상기 모션 벡터 예측자의 상기 세분화가 명시적으로 시그널링하는 일 없이 비활성화되는, 방법 또는 장치.
  12. 제8항, 제10항 및 제11항 중 어느 한 항에 있어서, 또는 제9항 내지 제11항 중 어느 한 항에 있어서, 상기 모션 벡터 차이의 크기가 제1 임계값을 초과할 때, 상기 모션 벡터 예측자가 세분화되어야 하는지 여부를 명시적으로 시그널링하기 위해 플래그를 비트스트림에 인코딩하는 것을 추가로 포함하는, 방법 또는 장치.
  13. 제8항 및 제10항 내지 제12항 중 어느 한 항에 있어서, 또는 제9항 내지 제12항 중 어느 한 항에 있어서,
    인접한 재구성된 블록들의 적어도 하나의 모션 벡터에 액세스하는 단계를 추가로 포함하고, 상기 하나 이상의 프로세서는:
    인접한 재구성된 블록들의 적어도 하나의 모션 벡터에 액세스하는 것을 수행하도록 추가로 구성되며, 상기 현재 블록에 대한 상기 모션 벡터 예측자와 상기 적어도 하나의 모션 벡터 사이의 차이가 제3 임계값보다 더 작은 경우, 상기 모션 벡터 예측자는 세분화되는 것으로 결정되는, 방법 또는 장치.
  14. 제8항 및 제10항 내지 제13항 중 어느 한 항에 있어서, 또는 제9항 내지 제13항 중 어느 한 항에 있어서,
    인접한 재구성된 블록들의 복수의 픽셀들에 액세스하는 단계를 추가로 포함하고, 상기 하나 이상의 프로세서는:
    인접한 재구성된 블록들의 복수의 픽셀들에 액세스하는 것을 수행하도록 추가로 구성되며, 상기 복수의 픽셀들의 텍스처 레벨이 제4 임계값을 초과하는 경우 상기 모션 벡터 예측자는 세분화되는 것으로 결정되는, 방법 또는 장치.
  15. 제1항, 제3항 내지 제8항 및 제10항 내지 제14항 중 어느 한 항에 따른 방법을 구현하기 위한 명령어들을 저장하고 있는 비일시적 컴퓨터 판독가능 저장 매체.
  16. 제8항 및 제10항 내지 제14항 중 어느 한 항의 방법에 따라 생성된, 비트스트림.
KR1020187037849A 2016-06-30 2017-06-27 자동 모션 정보 세분화를 이용한 비디오 코딩을 위한 방법 및 장치 KR20190031208A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP16305827.4A EP3264769A1 (en) 2016-06-30 2016-06-30 Method and apparatus for video coding with automatic motion information refinement
EP16305827.4 2016-06-30
PCT/EP2017/065809 WO2018002024A1 (en) 2016-06-30 2017-06-27 Method and apparatus for video coding with automatic motion information refinement

Publications (1)

Publication Number Publication Date
KR20190031208A true KR20190031208A (ko) 2019-03-25

Family

ID=56411561

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187037849A KR20190031208A (ko) 2016-06-30 2017-06-27 자동 모션 정보 세분화를 이용한 비디오 코딩을 위한 방법 및 장치

Country Status (10)

Country Link
US (1) US20190208223A1 (ko)
EP (2) EP3264769A1 (ko)
JP (1) JP2019519998A (ko)
KR (1) KR20190031208A (ko)
CN (1) CN109417630A (ko)
BR (1) BR112018077187A2 (ko)
CA (1) CA3027632A1 (ko)
MX (1) MX2018016070A (ko)
RU (1) RU2019102368A (ko)
WO (1) WO2018002024A1 (ko)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180043151A (ko) * 2016-10-19 2018-04-27 에스케이텔레콤 주식회사 영상 부호화 또는 복호화를 위한 장치 및 방법
CN117528107A (zh) 2016-11-28 2024-02-06 英迪股份有限公司 图像编码方法、图像解码方法及用于传送比特流的方法
CN117615153A (zh) * 2017-08-29 2024-02-27 株式会社Kt 视频解码和编码方法及用于存储压缩视频数据的装置
US10841794B2 (en) * 2017-09-18 2020-11-17 Futurewei Technologies, Inc. Adaptive motion vector resolution
CN109587501B (zh) * 2017-09-28 2022-07-12 腾讯科技(深圳)有限公司 进行运动估计的方法、装置及存储介质
EP3518536A1 (en) * 2018-01-26 2019-07-31 Thomson Licensing Method and apparatus for adaptive illumination compensation in video encoding and decoding
US11310526B2 (en) * 2018-01-26 2022-04-19 Mediatek Inc. Hardware friendly constrained motion vector refinement
US20190246134A1 (en) * 2018-02-06 2019-08-08 Panasonic Intellectual Property Corporation Of America Encoding method, decoding method, encoder, and decoder
CN111869216B (zh) * 2018-02-12 2024-05-28 联发科技股份有限公司 用于视频编解码系统的语法处理的方法和装置
CN114205617B (zh) 2018-02-28 2024-03-19 三星电子株式会社 编码方法及其装置以及解码方法及其装置
US11575925B2 (en) 2018-03-30 2023-02-07 Electronics And Telecommunications Research Institute Image encoding/decoding method and device, and recording medium in which bitstream is stored
US10779002B2 (en) 2018-04-17 2020-09-15 Qualcomm Incorporated Limitation of the MVP derivation based on decoder-side motion vector derivation
US10638151B2 (en) * 2018-05-31 2020-04-28 Verizon Patent And Licensing Inc. Video encoding methods and systems for color and depth data representative of a virtual reality scene
US10469869B1 (en) * 2018-06-01 2019-11-05 Tencent America LLC Method and apparatus for video coding
TWI735929B (zh) 2018-08-04 2021-08-11 大陸商北京字節跳動網絡技術有限公司 更新的mv或推導的mv的裁剪
WO2020049512A1 (en) * 2018-09-06 2020-03-12 Beijing Bytedance Network Technology Co., Ltd. Two-step inter prediction
US10992938B2 (en) * 2018-09-28 2021-04-27 Ati Technologies Ulc Spatial block-level pixel activity extraction optimization leveraging motion vectors
US11418793B2 (en) * 2018-10-04 2022-08-16 Qualcomm Incorporated Adaptive affine motion vector coding
CN111010569B (zh) 2018-10-06 2023-02-28 北京字节跳动网络技术有限公司 Bio中的时间梯度计算的改善
CN112913240A (zh) * 2018-10-22 2021-06-04 北京字节跳动网络技术有限公司 解码器侧运动矢量推导和其他编解码工具之间的并置
CN111083489B (zh) * 2018-10-22 2024-05-14 北京字节跳动网络技术有限公司 多次迭代运动矢量细化
EP3857879A4 (en) 2018-11-12 2022-03-16 Beijing Bytedance Network Technology Co., Ltd. SIMPLIFICATION OF COMBINED INTER-INTRA PREDICTION
WO2020103870A1 (en) * 2018-11-20 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Inter prediction with refinement in video processing
JP7241870B2 (ja) 2018-11-20 2023-03-17 北京字節跳動網絡技術有限公司 部分的な位置に基づく差分計算
CN113228639A (zh) * 2018-12-21 2021-08-06 韩国电子通信研究院 图像编码/解码方法和装置以及存储有比特流的记录介质
EP4307667A3 (en) * 2018-12-21 2024-03-20 Beijing Bytedance Network Technology Co., Ltd. Motion vector precision in merge with motion vector difference mode
WO2020177682A1 (en) * 2019-03-03 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Motion vector management for decoder side motion vector refinement
CN113615196A (zh) * 2019-03-08 2021-11-05 交互数字Vc控股法国公司 视频编码和解码中的运动矢量导出
CN117014634A (zh) * 2019-03-11 2023-11-07 阿里巴巴集团控股有限公司 用于对视频数据进行编码的帧间预测方法
WO2020187062A1 (zh) * 2019-03-18 2020-09-24 华为技术有限公司 用于融合运动矢量差技术的优化方法、装置及编解码器
KR20210149850A (ko) * 2019-04-19 2021-12-09 후아웨이 테크놀러지 컴퍼니 리미티드 현재 블록에 대한 보간 필터 인덱스를 도출하는 방법 및 장치
CN117676134A (zh) 2019-04-25 2024-03-08 北京字节跳动网络技术有限公司 对运动矢量差的约束
CN113767638A (zh) * 2019-04-28 2021-12-07 北京字节跳动网络技术有限公司 对称运动矢量差编解码
CN116156199B (zh) * 2019-06-07 2023-10-03 北京达佳互联信息技术有限公司 用于视频解码、视频编码的方法、计算设备和存储介质
JP7098847B2 (ja) * 2019-06-17 2022-07-11 ベイジン・ダジア・インターネット・インフォメーション・テクノロジー・カンパニー,リミテッド ビデオ符号化におけるデコーダ側動きベクトル補正のための方法および装置
CN114026861B (zh) * 2019-06-25 2023-11-17 北京字节跳动网络技术有限公司 对运动矢量差的约束
US11218718B2 (en) * 2019-08-26 2022-01-04 Tencent America LLC Adaptive motion vector resolution signaling
CN114979631A (zh) * 2019-10-09 2022-08-30 北京达佳互联信息技术有限公司 用于利用光流的预测细化、双向光流和解码器侧运动矢量细化的方法和装置
WO2021123439A1 (en) * 2019-12-20 2021-06-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Factional sample interpolation for reference picture resampling
WO2022222988A1 (en) * 2021-04-21 2022-10-27 Beijing Bytedance Network Technology Co., Ltd. Method, device, and medium for video processing

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040258154A1 (en) * 2003-06-19 2004-12-23 Microsoft Corporation System and method for multi-stage predictive motion estimation
US7526028B2 (en) * 2003-07-25 2009-04-28 Taiwan Imaging-Tek Corp. Motion estimation method and apparatus for video data compression
US8411756B2 (en) * 2009-05-21 2013-04-02 Ecole De Technologie Superieure Method and system for generating block mode conversion table for efficient video transcoding
TWI566586B (zh) * 2009-10-20 2017-01-11 湯姆生特許公司 一序列形象的現時區塊之寫碼方法和重建方法
US10536701B2 (en) * 2011-07-01 2020-01-14 Qualcomm Incorporated Video coding using adaptive motion vector resolution
CN108377393A (zh) * 2012-03-22 2018-08-07 联发科技股份有限公司 编码视频数据的方法以及装置
KR101347062B1 (ko) * 2012-06-27 2014-01-10 숭실대학교산학협력단 움직임 벡터의 예측을 위한 탐색영역 설정 장치 및 방법
PL400344A1 (pl) * 2012-08-13 2014-02-17 Politechnika Poznanska Sposób wyznaczania predyktora wektora ruchu
US10158884B2 (en) * 2014-03-19 2018-12-18 Qualcomm Incorporated Simplified merge list construction process for 3D-HEVC
WO2017052009A1 (ko) * 2015-09-24 2017-03-30 엘지전자 주식회사 영상 코딩 시스템에서 amvr 기반한 영상 코딩 방법 및 장치

Also Published As

Publication number Publication date
MX2018016070A (es) 2019-09-09
WO2018002024A1 (en) 2018-01-04
EP3479576A1 (en) 2019-05-08
BR112018077187A2 (pt) 2019-04-02
CA3027632A1 (en) 2018-01-04
RU2019102368A (ru) 2020-07-30
RU2019102368A3 (ko) 2020-07-30
US20190208223A1 (en) 2019-07-04
EP3264769A1 (en) 2018-01-03
CN109417630A (zh) 2019-03-01
JP2019519998A (ja) 2019-07-11

Similar Documents

Publication Publication Date Title
US10986366B2 (en) Video coding with adaptive motion information refinement
KR20190031208A (ko) 자동 모션 정보 세분화를 이용한 비디오 코딩을 위한 방법 및 장치
AU2020207821B2 (en) Motion vector derivation in video coding
EP3849197A1 (en) Inter-frame prediction method and device
JP2023100843A (ja) 動き補償用の改善されたプレディクタ候補
CN111418209A (zh) 用于视频编码和视频解码的方法和装置
CN111373749A (zh) 视频编码和解码中的低复杂度双向帧内预测的方法和装置
WO2022184052A1 (en) Inter-prediction on non-dyadic blocks
WO2023274302A1 (en) Recursive prediction unit in video coding
WO2023274360A1 (en) Utilization of recursive prediction unit in video coding
WO2023076700A1 (en) Motion compensation considering out-of-boundary conditions in video coding
WO2023205283A1 (en) Methods and devices for enhanced local illumination compensation
WO2020142468A1 (en) Picture resolution dependent configurations for video coding

Legal Events

Date Code Title Description
WITB Written withdrawal of application