KR102606146B1 - 모션 벡터 예측 방법 및 관련 장치 - Google Patents

모션 벡터 예측 방법 및 관련 장치 Download PDF

Info

Publication number
KR102606146B1
KR102606146B1 KR1020217002027A KR20217002027A KR102606146B1 KR 102606146 B1 KR102606146 B1 KR 102606146B1 KR 1020217002027 A KR1020217002027 A KR 1020217002027A KR 20217002027 A KR20217002027 A KR 20217002027A KR 102606146 B1 KR102606146 B1 KR 102606146B1
Authority
KR
South Korea
Prior art keywords
current block
motion vector
block
sample position
control points
Prior art date
Application number
KR1020217002027A
Other languages
English (en)
Other versions
KR20210022101A (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 후아웨이 테크놀러지 컴퍼니 리미티드
Priority to KR1020237040062A priority Critical patent/KR20230162152A/ko
Publication of KR20210022101A publication Critical patent/KR20210022101A/ko
Application granted granted Critical
Publication of KR102606146B1 publication Critical patent/KR102606146B1/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/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/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/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

본 출원은 모션 벡터 예측 방법 및 관련 장치를 제공한다. 본 방법은 후보 모션 벡터 리스트의 인덱스 값을 획득하기 위해 비트스트림을 파싱하는 단계; 후보 모션 벡터 리스트를 구성하는 단계로서, 상기 후보 모션 벡터 리스트는 현재의 블록의 K개의 제어 지점들의 후보 모션 벡터들을 포함하며, K개의 제어 지점들의 후보 모션 벡터들은 현재의 블록의 이웃하는 블록에 사용되는 2N-파라미터 아핀 변환 모델에 기초하여 획득되며, N은 2 이상이고 4 이하인 정수이며, K는 2 이상이고 4 이하인 정수이며, N은 K와 같지 않은, 상기 구성하는 단계; 인덱스 값에 기초하여 후보 모션 벡터 리스트에서, K개의 제어 지점들의 목표 후보 모션 벡터들을 결정하는 단계; 및 K개의 제어 지점들의 목표 후보 모션 벡터들에 기초하여, 현재의 블록의 각각의 서브블록의 예측된 모션 벡터를 획득하는 단계를 포함한다. 본 출원은 오디오 및 비디오 코딩 프로세스에서 코딩 효율을 향상시키는 것을 도우며, 사용자 요구사항을 만족시킨다.

Description

모션 벡터 예측 방법 및 관련 장치
본 발명의 실시형태들은 비디오 코딩 기술들의 분야, 특히, 비디오 이미지의 모션 벡터를 예측하는 방법 및 장치, 및 대응하는 인코더 및 디코더에 관한 것이다.
비디오 코딩 (비디오 인코딩 및 디코딩)은 광범위한 디지털 비디오 애플리케이션들, 예를 들어, 브로드캐스트 디지털 TV, 인터넷 및 모바일 네트워크들을 통한 비디오 송신, 실시간 대화의 애플리케이션들, 예컨대 비디오 채팅, 화상 회의, DVD들 및 블루-레이 디스크들, 비디오 콘텐츠 획득 및 편집 시스템들, 및 보안 애플리케이션들의 캠코더들에 사용된다.
1990년 H.261 표준에서 블록-기반 하이브리드 비디오 코딩 접근법의 개발 이후, 새로운 비디오 코딩 기법들 및 툴들이 개발되었으며 새로운 비디오 코딩 표준들에 대한 기초를 형성하였다. 추가적인 비디오 코딩 표준들은 MPEG-1 비디오, MPEG-2 비디오, ITU-T H.262/MPEG-2, ITU-T H.263, ITU-T H.264/MPEG-4 파트 10 고급 비디오 코딩 (Advanced Video Coding, AVC), ITU-T H.265/고효율 비디오 코딩 (High Efficiency video coding, HEVC), 및 확장판들, 예를 들어, 이들 표준들의 스케일러빌리티 및/또는 3D (3차원) 확장판들을 포함한다. 비디오 생성 및 사용이 더욱 보편화됨에 따라, 비디오 트래픽은 통신 네트워크들 및 데이터 스토리지에 가장 큰 부하이다. 따라서, 대부분의 비디오 코딩 표준들의 목표들 중 하나는 그의 이전 버전에 비해 이미지 품질을 희생함이 없이 비트레이트 감소를 달성하는 것이었다. 심지어, 최근의 고효율 비디오 코딩 (High Efficiency video coding, HEVC)조차도 이미지 품질을 희생함이 없이 AVC보다 약 2배 많은 비디오를 압축할 수 있으며, HEVC에 비해 비디오를 더 압축하는 새로운 기술을 갈망하고 있다.
본 발명의 실시형태들은 코딩 효율을 향상시키고 사용자 요구사항을 만족시키기 위해 모션 벡터 예측 방법 및 관련된 장치를 제공한다.
제 1 양태에 따르면, 본 발명의 일 실시형태는 모션 벡터 예측 방법을 제공한다. 본 방법은 디코더 측 또는 인코더 측의 관점에서 설명된다. 본 방법은 프로세싱될 이미지 블록을 예측하는데 이용될 수도 있다. 프로세싱될 이미지 블록은 비디오 이미지를 파티셔닝함으로써 획득된다. 인코더 측 상에서, 프로세싱될 이미지 블록은 현재의 아핀 코딩 블록이고, 프로세싱될 이미지 블록에 공간적으로 인접한 디코딩된 이미지 블록은 이웃하는 아핀 코딩 블록이다. 디코더 측 상에서, 프로세싱될 이미지 블록은 현재의 아핀 디코딩 블록이고, 프로세싱될 이미지 블록에 공간적으로 인접한 디코딩된 이미지 블록은 이웃하는 아핀 디코딩 블록이다. 설명의 용이성을 위해, 프로세싱될 이미지 블록은 현재의 블록으로 지칭될 수도 있으며, 프로세싱될 이미지 블록에 공간적으로 인접한 참조 블록은 이웃하는 블록으로 지칭될 수도 있다. 본 방법은 후보 모션 벡터 리스트의 인덱스 값을 획득하기 위해 비트스트림을 파싱하는 단계; 후보 모션 벡터 리스트를 구성하는 단계로서, 여기서, 후보 모션 벡터 리스트는 현재의 블록의 K개의 제어 지점들의 후보 모션 벡터들을 포함하며, K개의 제어 지점들의 후보 모션 벡터들은 현재의 블록의 이웃하는 블록에 사용되는 2×N-파라미터 아핀 변환 모델에 기초하여 획득되며, 2×N-파라미터 아핀 변환 모델은 이웃하는 블록의 N개의 제어 지점들의 모션 벡터들에 기초하여 획득되며, N은 2 이상이고 4 이하인 정수이며, K는 2 이상이고 4 이하인 정수이며, N은 K와 같지 않은, 상기 구성하는 단계; 인덱스 값에 기초하여 후보 모션 벡터 리스트에서, K개의 제어 지점들의 목표 후보 모션 벡터들을 결정하는 단계; 및 K개의 제어 지점들의 목표 후보 모션 벡터들에 기초하여, 현재의 블록의 각각의 서브블록의 위치에 대응하는 예측된 모션 벡터를 획득하는 단계를 포함한다. 다양한 서브블록들의 위치들에 대응하는 예측된 모션 벡터들이 복수의 서브블록들의 모션 보상에 각각 사용될 수도 있다.
본 발명의 이 실시형태에서, 현재의 블록을 예측하는 프로세스에서, 디코더 측은 현재의 블록의 후보 리스트를 구성하는 단계에서 (예를 들어, 아핀 변환 모델-기반 AMVP 모드 또는 병합 모드에 대한 후보 모션 벡터 리스트를 구성하는 단계에서), 이웃하는 블록의 아핀 변환 모델을 이용하여 현재의 블록의 아핀 변환 모델을 구성할 수 있음을 알 수 있다. 2개의 블록들의 아핀 변환 모델들은 상이할 수도 있다. 현재의 블록의 아핀 변환 모델은 현재의 블록의 실제 모션 상태/실제 요구사항을 더 잘 만족시킨다. 따라서, 이 해결책은 현재의 블록을 예측하는데 있어서의 코딩 효율 및 정확도를 향상시키고 사용자 요구사항을 만족시킬 수 있다.
제 1 양태에 따르면, 가능한 구현예에서, 현재의 블록의 하나 이상의 사전 설정된 공간적으로 이웃하는 블록들의 이용가능성이 사전 설정된 순서로 결정될 수 있어, 사전 설정된 순서로 이용가능한 이웃하는 블록이 순차적으로 획득된다. 사전 설정된 이용가능한 이웃하는 블록은 프로세싱될 이미지 블록의 좌측, 우상단, 좌하단, 또는 좌상단에 위치된 이웃하는 이미지 블록을 포함할 수도 있다. 예를 들어, 좌측 상에 위치된 이웃하는 이미지 블록, 상부 상에 위치된 이웃하는 이미지 블록, 우상단 상에 위치된 이웃하는 이미지 블록, 좌하단 상에 위치된 이웃하는 이미지 블록, 및 좌상단 상에 위치된 이웃하는 이미지 블록이 이용가능성에 대해 순차적으로 체크된다.
제 1 양태에 따르면, 가능한 구현예에서, N=2 및 K=3이다. 구체적으로, 4-파라미터 아핀 변환 모델이 아핀 디코딩 블록 (인코더 측 상의 아핀 코딩 블록)에 사용되고 6-파라미터 아핀 변환 모델이 현재의 블록에 사용되면, 현재의 블록의 3개의 제어 지점들의 후보 모션 벡터들이 현재의 블록의 이웃하는 블록에 사용되는 4-파라미터 아핀 변환 모델에 기초하여 획득된다.
예를 들어, 현재의 블록의 3개의 제어 지점들의 후보 모션 벡터들은 현재의 블록의 좌상단 샘플 위치 (또는, 아래에서 동일한 좌상단 모서리로 지칭됨) (x0, y0)에서의 모션 벡터 (vx0, vy0), 현재의 블록의 우상단 샘플 위치 (또는, 아래에서 동일한 우상단 모서리로 지칭됨) (x1, y1)에서의 모션 벡터 (vx1, vy1), 및 현재의 블록의 좌하단 샘플 위치 (또는, 아래에서 동일한 좌하단 모서리로 지칭됨) (x2, y2)에서의 모션 벡터 (vx2, vy2)를 포함한다.
현재의 블록의 3개의 제어 지점들의 후보 모션 벡터들이 현재의 블록의 이웃하는 블록에 사용되는 4-파라미터 아핀 변환 모델에 기초하여 획득되는 것은, 현재의 블록의 좌상단 모서리 (x0, y0)의 모션 벡터 (vx0, vy0), 현재의 블록의 우상단 모서리 (x1, y1)의 모션 벡터 (vx1, vy1), 및 현재의 블록의 좌하단 모서리 (x2, y2)의 모션 벡터 (vx2, vy2)이 다음 수식들에 따라서 먼저 계산되는 것을 포함하며:
여기서, 는 현재의 블록의 좌상단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 현재의 블록의 좌상단 샘플 위치에 대응하는 모션 벡터의 수직 성분이며; 는 현재의 블록의 우상단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 현재의 블록의 우상단 샘플 위치에 대응하는 모션 벡터의 수직 성분이며; 는 현재의 블록의 좌하단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 현재의 블록의 좌하단 샘플 위치에 대응하는 모션 벡터의 수직 성분이며; 는 이웃하는 블록의 좌상단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 이웃하는 블록의 좌상단 샘플 위치에 대응하는 모션 벡터의 수직 성분이며; 는 이웃하는 블록의 우상단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 이웃하는 블록의 우상단 샘플 위치에 대응하는 모션 벡터의 수직 성분이며; 는 현재의 블록의 좌상단 샘플 위치의 수평 좌표이고, 그리고 는 현재의 블록의 좌상단 샘플 위치의 수직 좌표이며; 는 현재의 블록의 우상단 샘플 위치의 수평 좌표이고, 그리고 는 현재의 블록의 우상단 샘플 위치의 수직 좌표이며; 는 현재의 블록의 좌하단 샘플 위치의 수평 좌표이고, 그리고 는 현재의 블록의 좌하단 샘플 위치의 수직 좌표이며; 는 이웃하는 블록의 좌상단 샘플 위치의 수평 좌표이고, 그리고 는 이웃하는 블록의 좌상단 샘플 위치의 수직 좌표이며; 그리고 는 이웃하는 블록의 우상단 샘플 위치의 수평 좌표이다.
제 1 양태에 따르면, 가능한 구현예에서, N=3 및 K=2이다. 구체적으로, 6-파라미터 아핀 변환 모델이 아핀 디코딩 블록 (인코더 측 상의 아핀 코딩 블록)에 사용되고 4-파라미터 아핀 변환 모델이 현재의 블록에 사용되면, 현재의 블록의 2개의 제어 지점들의 후보 모션 벡터들이 현재의 블록의 이웃하는 블록에 사용되는 6-파라미터 아핀 변환 모델에 기초하여 획득된다.
예를 들어, 현재의 블록의 2개의 제어 지점들의 후보 모션 벡터들은 현재의 블록의 좌상단 샘플 위치 (또는, 아래에서 동일한 좌상단 모서리라고 지칭됨) (x0, y0)에서의 모션 벡터 (vx0, vy0) 및 현재의 블록의 우상단 샘플 위치 (또는, 아래에서 동일한 우상단 모서리로 지칭됨) (x1, y1)에서의 모션 벡터 (vx1, vy1)을 포함하며; 그리고, 현재의 블록의 2개의 제어 지점들의 후보 모션 벡터들이 현재의 블록의 이웃하는 블록에 사용되는 6-파라미터 아핀 변환 모델에 기초하여 획득되는 것은, 현재의 블록의 2개의 제어 지점들의 후보 모션 벡터들이 다음 수식들에 따라서 계산되는 것을 포함하며:
여기서, 는 현재의 블록의 좌상단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 현재의 블록의 좌상단 샘플 위치에 대응하는 모션 벡터의 수직 성분이며; 는 현재의 블록의 우상단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 현재의 블록의 우상단 샘플 위치에 대응하는 모션 벡터의 수직 성분이며; 는 이웃하는 블록의 좌상단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 이웃하는 블록의 좌상단 샘플 위치에 대응하는 모션 벡터의 수직 성분이며; 는 이웃하는 블록의 우상단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 이웃하는 블록의 우상단 샘플 위치에 대응하는 모션 벡터의 수직 성분이며; 는 이웃하는 블록의 좌하단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 이웃하는 블록의 좌하단 샘플 위치에 대응하는 모션 벡터의 수직 성분이며; 는 현재의 블록의 좌상단 샘플 위치의 수평 좌표이고, 그리고 는 현재의 블록의 좌상단 샘플 위치의 수직 좌표이며; 는 현재의 블록의 우상단 샘플 위치의 수평 좌표이고, 그리고 는 현재의 블록의 우상단 샘플 위치의 수직 좌표이며; 는 이웃하는 블록의 좌상단 샘플 위치의 수평 좌표이고, 그리고 는 이웃하는 블록의 좌상단 샘플 위치의 수직 좌표이며; 는 이웃하는 블록의 우상단 샘플 위치의 수평 좌표이며; 그리고 는 이웃하는 블록의 좌하단 샘플 위치의 수직 좌표이다.
본 발명의 이 실시형태에서, 현재의 블록을 파싱하는 단계에서 (예를 들어, 후보 모션 벡터 리스트를 구성하는 단계에서), 현재의 블록의 아핀 변환 모델이 이웃하는 블록의 아핀 변환 모델을 이용하여 구성될 수 있음을 알 수 있다. 2개의 블록들의 아핀 변환 모델들은 상이할 수도 있다. 현재의 블록의 아핀 변환 모델은 현재의 블록의 실제 모션 상태/실제 요구사항을 더 잘 만족시킨다. 따라서, 이 해결책은 현재의 블록을 예측하는데 있어서의 코딩 효율 및 정확도를 향상시키고 사용자 요구사항을 만족시킬 수 있다.
제 1 양태에 따르면, 현재의 블록을 복원하는 단계의 일 실시형태에서, 현재의 블록의 각각의 서브블록의 예측된 모션 벡터를 획득하는 프로세스는 다음 과정: K개의 제어 지점들의 목표 후보 모션 벡터들에 기초하여 현재의 블록의 2×K-파라미터 아핀 변환 모델을 획득하는 단계; 및 2×K-파라미터 아핀 변환 모델에 기초하여 현재의 블록의 각각의 서브블록의 예측된 모션 벡터를 획득하는 단계를 포함한다.
예를 들어, 6-파라미터 아핀 모션 모델이 현재의 아핀 디코딩 블록에 사용되면, 현재의 블록의 6-파라미터 아핀 변환 모델은 현재의 블록의 3개의 제어 지점들 (즉, K=3)의 목표 후보 모션 벡터들에 기초하여 구성된다. 서브블록에서의 샘플 좌표들 이 각각의 서브블록에서의 샘플 좌표들에 대응하는 모션 벡터를 획득하기 위해 6-파라미터 아핀 모션 모델에 대한 수식으로 치환되며, 획득된 모션 벡터가 서브블록에서의 모든 샘플들의 모션 벡터들 로서 사용된다.
다른 예로, 4-파라미터 아핀 모션 모델이 현재의 아핀 디코딩 블록에 사용되면, 현재의 블록의 4-파라미터 아핀 변환 모델은 현재의 블록의 2개의 제어 지점들 (즉, K=2)의 목표 후보 모션 벡터들에 기초하여 구성된다. 서브블록에서의 샘플 좌표들 이 각각의 서브블록에서의 샘플 좌표들에 대응하는 모션 벡터를 획득하기 위해 4-파라미터 아핀 모션 모델에 대한 수식으로 치환되며, 획득된 모션 벡터가 서브블록에서의 모든 샘플들의 모션 벡터들 로서 사용된다:
제 1 양태에 따르면, 현재의 블록을 복원하는 단계의 다른 실시형태에서, 현재의 블록의 각각의 서브블록의 예측된 모션 벡터를 획득하는 프로세스는 다음 과정: 현재의 블록의 K개의 제어 지점들의 목표 후보 모션 벡터들에 기초하여 현재의 블록의 6-파라미터 아핀 변환 모델을 획득하는 단계; 및 현재의 블록의 6-파라미터 아핀 변환 모델에 기초하여 현재의 블록의 각각의 서브블록의 예측된 모션 벡터를 획득하는 단계를 포함한다.
다시 말해서, 이 해결책에서, 파싱 단계 (리스트 구성 단계)에서 현재의 블록에 사용되는 아핀 변환 모델에 관계없이, 현재의 블록을 복원하는 단계에서, 6-파라미터 아핀 변환 모델이 각각의 서브블록을 복원하기 위해, 현재의 블록의 각각의 서브블록의 모션 벡터 정보를 획득하는데 균일하게 사용된다. 예를 들어, 4-파라미터 아핀 변환 모델 또는 8-파라미터 이중선형의 모델이 파싱 단계에서 사용되면, 현재의 블록의 6-파라미터 아핀 변환 모델이 추가로 구성된다. 예를 들어, 6-파라미터 아핀 변환 모델이 파싱 단계에서 사용되면, 현재의 블록의 6-파라미터 아핀 변환 모델이 복원 단계에서 계속 사용된다.
예를 들어, 4-파라미터 아핀 변환 모델이 파싱 단계에서 현재의 블록에 사용되며, 4-파라미터 아핀 변환 모델 또는 다른 파라미터 아핀 모델이 이웃하는 블록에 사용될 수도 있다. 따라서, 현재의 블록의 2개의 제어 지점들의 모션 벡터들이 획득된 후, 예를 들어, 현재의 블록의 좌상단 제어 지점 (x4, y4)의 모션 벡터 (vx4, vy4) 및 현재의 블록의 우상단 제어 지점 (x5, y5)의 모션 벡터 (vx5, vy5)이 획득된 후, 현재의 블록을 복원하는 단계에서, 6-파라미터 아핀 변환 모델이 현재의 블록의 2개의 제어 지점들의 모션 벡터들에 기초하여 구성되어야 한다.
예를 들어, 현재의 블록의 좌상단 제어 지점 (x0, y0)의 모션 벡터 (vx0, vy0) 및 현재의 블록의 우상단 제어 지점 (x1, y1)의 모션 벡터 (vx1, vy1)에 기초하여, 제 3 제어 지점의 모션 벡터는 다음 수식에 따라서 획득될 수도 있다. 제 3 제어 지점의 모션 벡터는 예를 들어, 현재의 블록의 좌하단 모서리 (x2, y2)의 모션 벡터 (vx2, vy2)이다.
그 후, 복원 단계에서의 현재의 블록의 6-파라미터 아핀 모델이 현재의 블록의 좌상단 제어 지점 (x0, y0)의 모션 벡터 (vx0, vy0), 현재의 블록의 우상단 제어 지점 (x1, y1)의 모션 벡터 (vx1, vy1), 및 현재의 블록의 좌하단 제어 지점 (x2, y2)의 모션 벡터 (vx2, vy2)를 이용하여 획득된다. 6-파라미터 아핀 모델에 대한 수식은 다음과 같다:
그 후, 현재의 블록의 좌상단 모서리 (또는, 다른 참조 지점)에 대한 현재의 블록의 각각의 서브블록 (또는, 각각의 모션 보상 유닛)의 사전 설정된 위치 (예를 들어, 중심 지점)에서의 샘플의 좌표들 이 각각의 서브블록 (또는, 각각의 모션 보상 유닛)의 사전 설정된 위치에서의 샘플의 모션 정보를 획득하고 그후 각각의 서브블록을 복원하기 위해 전술한 6-파라미터 아핀 모델에 대한 수식으로 치환된다.
본 발명의 이 실시형태에서, 현재의 블록을 복원하는 단계에서, 6-파라미터 아핀 변환 모델이 현재의 블록을 예측하는데 균일하게 사용될 수 있다. 현재의 블록의 아핀 모션을 설명하는 모션 모델의 더 큰 양의 파라미터들은 더 높은 정밀도 및 더 높은 계산 복잡성을 표시한다. 이 해결책에서, 복원 단계에서 구성된 6-파라미터 아핀 변환 모델은 아핀 변환, 예컨대 이미지 블록의 변환, 스케일링, 및 회전을 기술하고, 모델 복잡성과 모델링 능력 사이의 우수한 균형을 달성할 수 있다. 따라서, 이 해결책은 현재의 블록을 예측하는데 있어서의 코딩 효율 및 정확도를 향상시키고 사용자 요구사항을 만족시킬 수 있다.
제 1 양태에 따르면, 가능한 구현예에서, 아핀 변환 모델-기반 AMVP 모드에서, K개의 제어 지점들의 목표 후보 모션 벡터들에 기초하여 2×K-파라미터 아핀 변환 모델을 획득하는 단계는, K개의 제어 지점들의 목표 후보 모션 벡터들 및 K개의 제어 지점들의 모션 벡터 차이들에 기초하여 K개의 제어 지점들의 모션 벡터들을 획득하는 단계로서, K개의 제어 지점들의 모션 벡터 차이들은 비트스트림을 파싱하여 획득되는, 상기 획득하는 단계; 및 K개의 제어 지점들의 모션 벡터들에 기초하여 현재의 블록의 2×K-파라미터 아핀 변환 모델을 획득하는 단계를 포함한다.
제 1 양태에 따르면, 가능한 구현예에서, 인코더 측 및 디코더 측은 아핀 변환 모델-기반 AMVP 모드를 이용하여 인터 예측을 수행하며, 구성된 리스트는 아핀 변환 모델-기반 AMVP 모드에 대한 후보 모션 벡터 리스트이다.
본 발명의 일부 특정의 실시형태들에서, 현재의 블록의 제어 지점의 후보 모션 벡터는 본 명세서에서 설명되는 제 1 모션 모델-기반 모션 벡터 예측 방법을 이용하여 획득되고, AMVP 모드에 대응하는 후보 모션 벡터 리스트에 추가될 수도 있다.
본 발명의 일부 다른 특정의 실시형태들에서, 현재의 블록의 제어 지점의 후보 모션 벡터는 대안적으로, 제 1 모션 모델-기반 모션 벡터 예측 방법 및 구성된 제어 지점 모션 벡터 예측 방법을 이용하여 별개로 획득되고, AMVP 모드에 대응하는 후보 모션 벡터 리스트에 추가될 수도 있다.
제 1 양태에 따르면, 가능한 구현예에서, 인코더 측 및 디코더 측은 아핀 변환 모델-기반 병합 모드를 이용하여 인터 예측을 수행하며, 구성된 리스트는 아핀 변환 모델-기반 병합 모드에 대한 후보 모션 벡터 리스트이다.
본 발명의 일부 특정의 실시형태들에서, 현재의 블록의 제어 지점의 후보 모션 벡터는 또한 본 명세서에서 설명되는 제 1 모션 모델-기반 모션 벡터 예측 방법을 이용하여 획득되고, 병합 모드에 대응하는 후보 모션 벡터 리스트에 추가될 수도 있다.
본 발명의 일부 다른 특정의 실시형태들에서, 현재의 블록의 제어 지점의 후보 모션 벡터는 대안적으로, 제 1 모션 모델-기반 모션 벡터 예측 방법 및 구성된 제어 지점 모션 벡터 예측 방법을 이용하여 별개로 획득되고, 병합 모드에 대응하는 후보 모션 벡터 리스트에 추가될 수도 있다.
제 1 양태에 따르면, 가능한 구현예에서, 복수의 이웃하는 블록들이 있을 때, 즉, 현재의 블록이 복수의 이웃하는 아핀 디코딩 블록들을 가질 때, 가능한 실시형태에서, 인코더 측 및 디코더 측 양자는 모델 파라미터들의 양이 현재의 블록과 동일한 아핀 디코딩 블록을 이용하여 현재의 블록의 제어 지점의 후보 모션 벡터를 먼저 획득하고, 제어 지점의 획득된 후보 모션 벡터를 AMVP 모드에 대응하는 후보 모션 벡터 리스트에 추가할 수 있다. 그 후, 현재의 블록의 제어 지점의 후보 모션 벡터는 모델 파라미터들의 양이 현재의 블록과는 상이한 아핀 디코딩 블록을 이용하여 획득되고, AMVP 모드에 대응하는 후보 모션 벡터 리스트에 추가될 수도 있다. 이러한 방법으로, 현재의 블록의 제어 지점의 후보 모션 벡터이며 모델 파라미터들의 양이 현재의 블록과 동일한 아핀 디코딩 블록을 이용하여 획득되는 후보 모션 벡터가 리스트의 전면 위치에 위치된다. 이러한 설계는 비트스트림으로 송신되는 비트들의 양을 감소시키는 것을 돕는다.
제 1 양태에 따르면, 가능한 구현예에서, 디코더 측이 현재의 블록의 제어 지점의 후보 모션 벡터를 유도하는 프로세스에서, 아핀 디코딩 블록의 아핀 변환 모델의 플래그 정보 (플래그)가 획득되어야 할 수도 있다. 플래그는 디코더 측 상에 로컬로 미리 저장되며, 그리고, 아핀 디코딩 블록의 아핀 변환 모델이며 아핀 디코딩 블록의 서브블록을 예측하는데 실제로 사용되는 아핀 변환 모델을 표시하기 위해 사용된다.
예를 들어, 애플리케이션 시나리오에서, 디코더 측이 아핀 디코딩 블록의 플래그를 식별함으로써, 아핀 디코딩 블록에 실제로 사용되는 아핀 변환 모델의 모델 파라미터들의 양이 현재의 블록에 사용되는 아핀 변환 모델의 모델 파라미터들의 양과 상이하다(또는, 동일하다)고 결정할 때, 디코더 측은 아핀 디코딩 블록에 실제로 사용되는 아핀 변환 모델을 이용하여 현재의 블록의 제어 지점의 후보 모션 벡터를 유도하도록 트리거된다.
제 1 양태에 따르면, 가능한 구현예에서, 디코더 측이 현재의 블록의 제어 지점의 후보 모션 벡터를 유도하는 프로세스에서, 아핀 디코딩 블록의 아핀 변환 모델의 플래그가 요구되지 않을 수도 있다.
예를 들어, 애플리케이션 시나리오에서, 디코더 측이 현재의 블록에 사용되는 아핀 변환 모델을 결정한 후, 디코더 측은 아핀 디코딩 블록의 특정의 양의 제어 지점들 (특정의 양은 현재의 블록의 제어 지점들의 양과 동일하거나 또는 상이하다)을 획득하고, 아핀 디코딩 블록의 특정의 양의 제어 지점들을 이용하여 아핀 변환 모델을 구성하고, 그후 아핀 변환 모델을 이용하여 현재의 블록의 제어 지점의 후보 모션 벡터를 유도한다.
제 2 양태에 따르면, 본 발명의 일 실시형태는 다른 모션 벡터 예측 방법을 제공한다. 본 방법은 후보 모션 벡터 리스트의 인덱스 값을 획득하기 위해 비트스트림을 파싱하는 단계; 후보 모션 벡터 리스트를 구성하는 단계로서, 상기 후보 모션 벡터 리스트는 현재의 블록의 K개의 제어 지점들의 후보 모션 벡터들을 포함하며, 현재의 블록의 K개의 제어 지점들의 후보 모션 벡터들은 현재의 블록의 이웃하는 블록에 사용되는 2N-파라미터 아핀 변환 모델에 기초하여 획득되며, 2N-파라미터 아핀 변환 모델은 이웃하는 블록의 N개의 제어 지점들의 모션 벡터들에 기초하여 획득되며, N은 2 이상이고 4 이하인 정수이며, K는 2 이상이고 4 이하인 정수이며, 이웃하는 블록은 현재의 블록에 공간적으로 인접한 디코딩된 이미지 블록이고, 그리고 현재의 블록은 복수의 서브블록들을 포함하는, 상기 구성하는 단계; 인덱스 값에 기초하여, 후보 모션 벡터 리스트에서, 현재의 블록의 K개의 제어 지점들의 목표 후보 모션 벡터들을 결정하는 단계; 현재의 블록의 K개의 제어 지점들의 목표 후보 모션 벡터들에 기초하여 현재의 블록의 6-파라미터 아핀 변환 모델을 획득하는 단계; 및 현재의 블록의 6-파라미터 아핀 변환 모델에 기초하여 현재의 블록의 각각의 서브블록의 예측된 모션 벡터를 획득하는 단계를 포함한다.
본 발명의 이 실시형태에서, 6-파라미터 아핀 변환 모델이 현재의 블록을 복원하는 단계에서 현재의 블록을 예측하는데 균일하게 사용될 수 있음을 알 수 있다. 현재의 블록의 아핀 모션을 설명하는 모션 모델의 더 큰 양의 파라미터들은 더 높은 정밀도 및 더 높은 계산 복잡성을 표시한다. 이 해결책에서, 복원 단계에서 구성된 6-파라미터 아핀 변환 모델은 아핀 변환, 예컨대 이미지 블록의 변환, 스케일링, 및 회전을 기술하고, 모델 복잡성과 모델링 능력 사이의 우수한 균형을 달성할 수 있다. 따라서, 이 해결책은 현재의 블록을 예측하는데 있어서의 코딩 효율 및 정확도를 향상시키고 사용자 요구사항을 만족시킬 수 있다.
제 2 양태에 따르면, 가능한 구현예에서, N=2 및 K=3이다.
이에 따라, 현재의 블록의 2개의 제어 지점들의 후보 모션 벡터들이 현재의 블록의 이웃하는 블록에 사용되는 4-파라미터 아핀 변환 모델에 기초하여 획득된다.
제 2 양태에 따르면, 가능한 구현예에서, N=3 및 K=2이다. 이에 따라, 현재의 블록의 2개의 제어 지점들의 후보 모션 벡터들이 현재의 블록의 이웃하는 블록에 사용되는 6-파라미터 아핀 변환 모델에 기초하여 획득된다.
제 2 양태에 따르면, 가능한 구현예에서, 현재의 블록의 K개의 제어 지점들의 목표 후보 모션 벡터들에 기초하여 현재의 블록의 6-파라미터 아핀 변환 모델을 획득하는 단계는,
현재의 블록의 2개의 제어 지점들의 목표 후보 모션 벡터들에 기초하여 현재의 블록의 4-파라미터 아핀 변환 모델을 획득하는 단계;
현재의 블록의 4-파라미터 아핀 변환 모델에 기초하여, 현재의 블록의 제 3 제어 지점의 모션 벡터를 획득하는 단계; 및
현재의 블록의 2개의 제어 지점들의 목표 후보 모션 벡터들 및 제 3 제어 지점의 모션 벡터에 기초하여 현재의 블록의 6-파라미터 아핀 변환 모델을 획득하는 단계를 포함한다.
제 2 양태에 따르면, 가능한 구현예에서, 현재의 블록의 2개의 제어 지점들의 목표 후보 모션 벡터들에 기초하여 현재의 블록의 4-파라미터 아핀 변환 모델을 획득하는 단계는,
현재의 블록의 2개의 제어 지점들의 목표 후보 모션 벡터들 및 현재의 블록의 2개의 제어 지점들의 모션 벡터 차이들에 기초하여, 현재의 블록의 2개의 제어 지점들의 모션 벡터들을 획득하는 단계로서, 상기 현재의 블록의 2개의 제어 지점들의 모션 벡터 차이들은 비트스트림을 파싱하여 획득되는, 상기 획득하는 단계; 및
현재의 블록의 2개의 제어 지점들의 모션 벡터들에 기초하여 현재의 블록의 4-파라미터 아핀 변환 모델을 획득하는 단계를 포함하고; 그리고
이에 따라, 현재의 블록의 2개의 제어 지점들의 목표 후보 모션 벡터들 및 제 3 제어 지점의 모션 벡터에 기초하여 현재의 블록의 6-파라미터 아핀 변환 모델을 획득하는 단계는, 구체적으로,
현재의 블록의 2개의 제어 지점들의 모션 벡터들 및 제 3 제어 지점의 모션 벡터에 기초하여 현재의 블록의 6-파라미터 아핀 변환 모델을 획득하는 단계를 포함한다.
제 2 양태에 따르면, 가능한 구현예에서, N=2 및 K=3이다. 이에 따라, 현재의 블록의 3개의 제어 지점들의 후보 모션 벡터들이 현재의 블록의 이웃하는 블록에 사용되는 2-파라미터 아핀 변환 모델에 기초하여 획득된다.
제 3 양태에 따르면, 본 발명의 일 실시형태는 디코딩 디바이스를 제공한다. 디바이스는, 비디오 데이터를 비트스트림의 형태로 저장하도록 구성된 저장 유닛; 후보 모션 벡터 리스트의 인덱스 값을 획득하기 위해 비트스트림을 파싱하도록 구성된 엔트로피 디코딩 유닛; 및 예측 프로세싱 유닛을 포함하되, 상기 예측 프로세싱 유닛은, 후보 모션 벡터 리스트를 구성하는 것으로서, 상기 후보 모션 벡터 리스트는 현재의 블록의 K개의 제어 지점들의 후보 모션 벡터들을 포함하며, 현재의 블록의 K개의 제어 지점들의 후보 모션 벡터들은 현재의 블록의 이웃하는 블록에 사용되는 2×N-파라미터 아핀 변환 모델에 기초하여 획득되며, 2×N-파라미터 아핀 변환 모델은 이웃하는 블록의 N개의 제어 지점들의 모션 벡터들에 기초하여 획득되며, N은 2 이상이고 4 이하인 정수이며, K는 2 이상이고 4 이하인 정수이며, N은 K와 같지 않고, 이웃하는 블록은 현재의 블록에 공간적으로 인접한 디코딩된 이미지 블록이고, 그리고 현재의 블록은 복수의 서브블록들을 포함하는, 상기 구성하고; 인덱스 값에 기초하여 후보 모션 벡터 리스트에서, 현재의 블록의 K개의 제어 지점들의 목표 후보 모션 벡터들을 결정하고; 그리고 현재의 블록의 K개의 제어 지점들의 목표 후보 모션 벡터들에 기초하여 현재의 블록의 각각의 서브블록의 예측된 모션 벡터를 획득하도록 구성된다.
특정의 실시형태에서, 디바이스의 모듈들은 제 1 양태에서 설명되는 방법을 구현하도록 구성될 수도 있다.
제 4 양태에 따르면, 본 발명의 일 실시형태는 디코딩 디바이스를 제공한다. 디바이스는, 비디오 데이터를 비트스트림의 형태로 저장하도록 구성된 저장 유닛; 후보 모션 벡터 리스트의 인덱스 값을 획득하기 위해 비트스트림을 파싱하도록 구성된 엔트로피 디코딩 유닛; 및 예측 프로세싱 유닛을 포함하되, 상기 예측 프로세싱 유닛은, 후보 모션 벡터 리스트의 인덱스 값을 획득하기 위해 비트스트림을 파싱하고; 후보 모션 벡터 리스트를 구성하는 것으로서, 상기 후보 모션 벡터 리스트는 현재의 블록의 K개의 제어 지점들의 후보 모션 벡터들을 포함하며, 현재의 블록의 K개의 제어 지점들의 후보 모션 벡터들은 현재의 블록의 이웃하는 블록에 사용되는 2N-파라미터 아핀 변환 모델에 기초하여 획득되며, 2N-파라미터 아핀 변환 모델은 이웃하는 블록의 N개의 제어 지점들의 모션 벡터들에 기초하여 획득되며, N은 2 이상이고 4 이하인 정수이며, K는 2 이상이고 4 이하인 정수이며, 이웃하는 블록은 현재의 블록에 공간적으로 인접한 디코딩된 이미지 블록이고, 그리고 현재의 블록은 복수의 서브블록들을 포함하는, 상기 구성하고; 인덱스 값에 기초하여 후보 모션 벡터 리스트에서, 현재의 블록의 K개의 제어 지점들의 목표 후보 모션 벡터들을 결정하고; 현재의 블록의 K개의 제어 지점들의 목표 후보 모션 벡터들에 기초하여 현재의 블록의 6-파라미터 아핀 변환 모델을 획득하고; 그리고 현재의 블록의 6-파라미터 아핀 변환 모델에 기초하여 현재의 블록의 각각의 서브블록의 예측된 모션 벡터를 획득하도록 구성된다.
특정의 실시형태에서, 디바이스의 모듈들은 제 2 양태에서 설명되는 방법을 구현하도록 구성될 수도 있다.
제 5 양태에 따르면, 본 발명의 일 실시형태는 비디오 디코딩 디바이스를 제공한다. 디바이스는,
비디오 데이터를 비트스트림의 형태로 저장하도록 구성된 메모리; 및
디코더를 포함하며, 상기 디코더는, 후보 모션 벡터 리스트를 구성하는 것으로서, 상기 후보 모션 벡터 리스트는 현재의 블록의 K개의 제어 지점들의 후보 모션 벡터들을 포함하며, 현재의 블록의 K개의 제어 지점들의 후보 모션 벡터들은 현재의 블록의 이웃하는 블록에 사용되는 2×N-파라미터 아핀 변환 모델에 기초하여 획득되며, 2×N-파라미터 아핀 변환 모델은 이웃하는 블록의 N개의 제어 지점들의 모션 벡터들에 기초하여 획득되며, N은 2 이상이고 4 이하인 정수이며, K는 2 이상이고 4 이하인 정수이며, N은 K와 같지 않고, 이웃하는 블록은 현재의 블록에 공간적으로 인접한 디코딩된 이미지 블록이고, 그리고 현재의 블록은 복수의 서브블록들을 포함하는, 상기 구성하고; 인덱스 값에 기초하여 후보 모션 벡터 리스트에서, 현재의 블록의 K개의 제어 지점들의 목표 후보 모션 벡터들을 결정하고; 그리고 현재의 블록의 K개의 제어 지점들의 목표 후보 모션 벡터들에 기초하여 현재의 블록의 각각의 서브블록의 예측된 모션 벡터를 획득하도록 구성된다.
제 5 양태에 따르면, 일부 구현예들에서, N은 2와 같고, K는 3과 같다. 이에 따라, 현재의 블록의 3개의 제어 지점들의 후보 모션 벡터들이 현재의 블록의 이웃하는 블록에 사용되는 4-파라미터 아핀 변환 모델에 기초하여 획득된다.
제 5 양태에 따르면, 일부 구현예들에서, 현재의 블록의 3개의 제어 지점들의 후보 모션 벡터들은 현재의 블록의 좌상단 샘플 위치에서의 모션 벡터, 현재의 블록의 우상단 샘플 위치에서의 모션 벡터, 및 현재의 블록의 좌하단 샘플 위치에서의 모션 벡터를 포함한다.
디코더는 다음 수식들에 따라서 현재의 블록의 3개의 제어 지점들의 후보 모션 벡터들을 계산하도록 구성되며:
여기서, 는 현재의 블록의 좌상단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 현재의 블록의 좌상단 샘플 위치에 대응하는 모션 벡터의 수직 성분이며; 는 현재의 블록의 우상단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 현재의 블록의 우상단 샘플 위치에 대응하는 모션 벡터의 수직 성분이며; 는 현재의 블록의 좌하단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 현재의 블록의 좌하단 샘플 위치에 대응하는 모션 벡터의 수직 성분이며; 는 이웃하는 블록의 좌상단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 이웃하는 블록의 좌상단 샘플 위치에 대응하는 모션 벡터의 수직 성분이며; 는 이웃하는 블록의 우상단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 이웃하는 블록의 우상단 샘플 위치에 대응하는 모션 벡터의 수직 성분이며; 는 현재의 블록의 좌상단 샘플 위치의 수평 좌표이고, 그리고 는 현재의 블록의 좌상단 샘플 위치의 수직 좌표이며; 는 현재의 블록의 우상단 샘플 위치의 수평 좌표이고, 그리고 는 현재의 블록의 우상단 샘플 위치의 수직 좌표이며; 는 현재의 블록의 좌하단 샘플 위치의 수평 좌표이고, 그리고 는 현재의 블록의 좌하단 샘플 위치의 수직 좌표이며; 는 이웃하는 블록의 좌상단 샘플 위치의 수평 좌표이고, 그리고 는 이웃하는 블록의 좌상단 샘플 위치의 수직 좌표이며; 그리고 는 이웃하는 블록의 우상단 샘플 위치의 수평 좌표이다.
제 5 양태에 따르면, 일부 구현예들에서, N은 3과 같고, K는 2와 같다. 이에 따라, 현재의 블록의 2개의 제어 지점들의 후보 모션 벡터들이 현재의 블록의 이웃하는 블록에 사용되는 6-파라미터 아핀 변환 모델에 기초하여 획득된다.
제 5 양태에 따르면, 일부 구현예들에서, 현재의 블록의 2개의 제어 지점들의 후보 모션 벡터들은 현재의 블록의 좌상단 샘플 위치에서의 모션 벡터 및 현재의 블록의 우상단 샘플 위치에서의 모션 벡터를 포함한다.
디코더는 다음 수식들에 따라서 현재의 블록의 2개의 제어 지점들의 후보 모션 벡터들을 계산하도록 구성되며:
여기서, 는 현재의 블록의 좌상단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 현재의 블록의 좌상단 샘플 위치에 대응하는 모션 벡터의 수직 성분이며; 는 현재의 블록의 우상단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 현재의 블록의 우상단 샘플 위치에 대응하는 모션 벡터의 수직 성분이며; 는 이웃하는 블록의 좌상단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 이웃하는 블록의 좌상단 샘플 위치에 대응하는 모션 벡터의 수직 성분이며; 는 이웃하는 블록의 우상단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 이웃하는 블록의 우상단 샘플 위치에 대응하는 모션 벡터의 수직 성분이며; 는 이웃하는 블록의 좌하단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 이웃하는 블록의 좌하단 샘플 위치에 대응하는 모션 벡터의 수직 성분이며; 는 현재의 블록의 좌상단 샘플 위치의 수평 좌표이고, 그리고 는 현재의 블록의 좌상단 샘플 위치의 수직 좌표이며; 는 현재의 블록의 우상단 샘플 위치의 수평 좌표이고, 그리고 는 현재의 블록의 우상단 샘플 위치의 수직 좌표이며; 는 이웃하는 블록의 좌상단 샘플 위치의 수평 좌표이고, 그리고 는 이웃하는 블록의 좌상단 샘플 위치의 수직 좌표이며; 는 이웃하는 블록의 우상단 샘플 위치의 수평 좌표이며; 그리고 는 이웃하는 블록의 좌하단 샘플 위치의 수직 좌표이다.
제 5 양태에 따르면, 일부 구현예들에서, 디코더는,
현재의 블록의 K개의 제어 지점들의 목표 후보 모션 벡터들에 기초하여 현재의 블록의 2×K-파라미터 아핀 변환 모델을 획득하고; 그리고
현재의 블록의 2×K-파라미터 아핀 변환 모델에 기초하여 현재의 블록의 각각의 서브블록의 예측된 모션 벡터를 획득하도록 구체적으로 구성된다.
제 5 양태에 따르면, 일부 구현예들에서, 디코더는,
현재의 블록의 K개의 제어 지점들의 목표 후보 모션 벡터들 및 현재의 블록의 K개의 제어 지점들의 모션 벡터 차이들에 기초하여 현재의 블록의 K개의 제어 지점들의 모션 벡터들을 획득하는 것으로서, 상기 현재의 블록의 K개의 제어 지점들의 모션 벡터 차이들은 비트스트림을 파싱하여 획득되는, 상기 획득하고; 그리고
현재의 블록의 K개의 제어 지점들의 모션 벡터들에 기초하여 현재의 블록의 2×K-파라미터 아핀 변환 모델을 획득하도록 구체적으로 구성된다.
제 5 양태에 따르면, 일부 구현예들에서, 인덱스 값에 기초하여, 후보 모션 벡터 리스트에서, 현재의 블록의 K개의 제어 지점들의 목표 후보 모션 벡터들을 결정한 후, 디코더는,
현재의 블록의 K개의 제어 지점들의 목표 후보 모션 벡터들에 기초하여 현재의 블록의 6-파라미터 아핀 변환 모델을 획득하고; 그리고
현재의 블록의 6-파라미터 아핀 변환 모델에 기초하여 현재의 블록의 각각의 서브블록의 예측된 모션 벡터를 획득하도록 추가로 구성된다.
디코더의 특정의 기능 구현예에 대해서는, 제 1 양태에서의 관련 설명들을 참조한다.
제 6 양태에 따르면, 본 발명의 일 실시형태는 다른 비디오 디코딩 디바이스를 제공한다. 디바이스는,
비디오 데이터를 비트스트림의 형태로 저장하도록 구성된 메모리; 및
디코드를 포함하며, 상기 디코더는, 후보 모션 벡터 리스트의 인덱스 값을 획득하기 위해 비트스트림을 파싱하고; 후보 모션 벡터 리스트를 구성하는 것으로서, 상기 후보 모션 벡터 리스트는 현재의 블록의 K개의 제어 지점들의 후보 모션 벡터들을 포함하며, 현재의 블록의 K개의 제어 지점들의 후보 모션 벡터들은 현재의 블록의 이웃하는 블록에 사용되는 2N-파라미터 아핀 변환 모델에 기초하여 획득되며, 2N-파라미터 아핀 변환 모델은 이웃하는 블록의 N개의 제어 지점들의 모션 벡터들에 기초하여 획득되며, N은 2 이상이고 4 이하인 정수이며, K는 2 이상이고 4 이하인 정수이며, 이웃하는 블록은 현재의 블록에 공간적으로 인접한 디코딩된 이미지 블록이고, 그리고 현재의 블록은 복수의 서브블록들을 포함하는, 상기 구성하고; 인덱스 값에 기초하여 후보 모션 벡터 리스트에서, 현재의 블록의 K개의 제어 지점들의 목표 후보 모션 벡터들을 결정하고; 현재의 블록의 K개의 제어 지점들의 목표 후보 모션 벡터들에 기초하여 현재의 블록의 6-파라미터 아핀 변환 모델을 획득하고; 그리고 현재의 블록의 6-파라미터 아핀 변환 모델에 기초하여 현재의 블록의 각각의 서브블록의 예측된 모션 벡터를 획득하도록 구성된다.
디코더의 특정의 기능 구현예에 대해서는, 제 2 양태에서의 관련 설명들을 참조한다.
제 7 양태에 따르면, 본 발명의 일 실시형태는 컴퓨터-판독가능 저장 매체를 제공한다. 컴퓨터-판독가능 저장 매체는 명령을 저장하고, 명령이 실행될 때, 하나 이상의 프로세서들이 비디오 데이터를 인코딩하도록 인에이블된다. 명령은 하나 이상의 프로세서들로 하여금, 제 1 양태의 임의의 가능한 실시형태에서 설명된 방법을 수행가능하게 한다.
제 8 양태에 따르면, 본 발명의 일 실시형태는 컴퓨터-판독가능 저장 매체를 제공한다. 컴퓨터-판독가능 저장 매체는 명령을 저장하고, 명령이 실행될 때, 하나 이상의 프로세서들이 비디오 데이터를 인코딩하도록 인에이블된다. 명령은 하나 이상의 프로세서들로 하여금, 제 2 양태의 임의의 가능한 실시형태에서 설명된 방법을 수행가능하게 한다.
제 9 양태에 따르면, 본 발명의 일 실시형태는 프로그램 코드를 포함하는 컴퓨터 프로그램을 제공한다. 프로그램 코드가 컴퓨터 상에서 실행될 때, 제 1 양태의 임의의 가능한 실시형태에서 설명된 방법이 수행된다.
제 10 양태에 따르면, 본 발명의 일 실시형태는 프로그램 코드를 포함하는 컴퓨터 프로그램을 제공한다. 프로그램 코드가 컴퓨터 상에서 실행될 때, 제 2 양태의 임의의 가능한 실시형태에서 설명된 방법이 수행된다.
본 발명의 일 실시형태에서, 현재의 블록을 인코딩 및 디코딩하는 프로세스에서, 현재의 블록을 파싱하는 단계에서 (예를 들어, AMVP 모드 또는 병합 모드에 대한 후보 모션 벡터 리스트를 구성하는 단계에서), 현재의 블록의 아핀 변환 모델이 이웃하는 블록의 아핀 변환 모델을 이용하여 구성될 수 있음을 알 수 있다. 2개의 블록들의 아핀 변환 모델들은 상이할 수도 있다. 현재의 블록의 아핀 변환 모델은 현재의 블록의 실제 모션 상태/실제 요구사항을 더 잘 만족시킨다. 따라서, 이 해결책은 현재의 블록을 인코딩하는 효율 및 정확도를 향상시키고 사용자 요구사항을 만족시킬 수 있다.
또한, 현재의 블록을 인코딩 및 디코딩하는 프로세스에서, 디코더 측이 6-파라미터 아핀 변환 모델을 균일하게 이용하여 이미지 블록을 복원하는 단계에서 이미지 블록을 예측할 수도 있음을 알 수 있다. 이러한 방법으로, 본 발명의 이 실시형태에서, 현재의 블록을 복원하는 프로세스에서 모델 복잡성과 모델링 능력 사이에 우수한 균형이 달성된다. 따라서, 이 해결책은 현재의 블록을 예측하는데 있어서의 코딩 효율 및 정확도를 향상시키고 사용자 요구사항을 만족시킬 수 있다.
본 발명의 실시형태들 또는 배경에서의 기술적인 해결책들을 보다 명확하게 설명하기 위해, 다음은 본 발명의 실시형태들 또는 배경을 설명하기 위해 첨부 도면들을 간략히 설명한다.
도 1은 본 발명의 실시형태들을 구현하는 비디오 코딩 시스템의 예시적인 구조를 나타내는 블록도이다.
도 2a는 본 발명의 실시형태들을 구현하는 비디오 인코더의 예시적인 구조를 나타내는 블록도이다.
도 2b는 본 발명의 실시형태들을 구현하는 비디오 디코더의 예시적인 구조를 나타내는 블록도이다.
도 3은 본 발명의 실시형태들을 구현하는 비디오 코딩 디바이스의 일 예를 나타내는 블록도이다.
도 4는 본 발명의 실시형태들을 구현하는 인코딩 장치 또는 디코딩 장치의 일 예를 나타내는 블록도이다.
도 5는 예시적인 동작이 현재의 블록 상에서 수행되는 시나리오를 나타내는 개략도이다.
도 6은 다른 예시적인 동작이 현재의 블록 상에서 수행되는 시나리오를 나타내는 개략도이다.
도 7은 다른 예시적인 동작이 현재의 블록 상에서 수행되는 시나리오를 나타내는 개략도이다.
도 8은 다른 예시적인 동작이 현재의 블록 상에서 수행되는 시나리오를 나타내는 개략도이다.
도 9는 본 발명의 일 실시형태에 따른 모션 벡터 예측 방법의 플로우차트이다.
도 10은 다른 예시적인 동작이 현재의 블록 상에서 수행되는 시나리오를 나타내는 개략도이다.
도 11a는 본 발명의 일 실시형태에 따른, 현재의 블록 및 현재의 블록의 모션 보상 유닛의 개략도이다.
도 11b는 본 발명의 일 실시형태에 따른, 다른 현재의 블록 및 현재의 블록의 모션 보상 유닛의 개략도이다.
도 12는 본 발명의 일 실시형태에 따른 다른 모션 벡터 예측 방법의 플로우차트이다.
도 13은 본 발명의 일 실시형태에 따른 다른 모션 벡터 예측 방법의 플로우차트이다.
다음은 먼저 본 발명의 실시형태들에서의 관련된 개념들을 간략히 설명한다. 본 발명의 실시형태들에서의 기술적인 해결책들은 기존 비디오 코딩 표준들 (예를 들어, 표준들, 예컨대 H.264 및 HEVC)에 적용될 수도 있을 뿐만 아니라, 미래 비디오 코딩 표준들 (예를 들어, H.266 표준)에도 적용될 수도 있다.
비디오 코딩은 일반적으로 비디오 또는 비디오 시퀀스를 구성하는 일련의 이미지들을 프로세싱하는 것을 지칭한다. 비디오 코딩의 분야에서, 용어들 "픽처 (picture)", "프레임 (frame)", 및 "이미지 (image)"는 동의어들로서 사용될 수도 있다. 본 명세서에서 사용되는 비디오 코딩은 비디오 인코딩 및 비디오 디코딩을 포함한다. 비디오 코딩은 소스 측 상에서 수행되며, 일반적으로 좀더 효율적인 저장 및/또는 송신을 위해, 비디오 이미지를 나타내는 데이터의 양을 감소시키도록 원래 비디오 이미지를 (예를 들어, 압축함으로써) 프로세싱하는 것을 포함한다. 비디오 디코딩은 목적지 측 상에서 수행되며, 일반적으로, 비디오 이미지를 복원하기 위해 인코더와 비교하여 반대로 프로세싱하는 것을 포함한다. 실시형태들에서의 비디오 이미지의 "코딩"은 비디오 시퀀스의 "인코딩" 또는 "디코딩"으로서 이해되어야 한다. 인코딩 부분과 디코딩 부분의 결합은 또한 코덱 (인코딩 및 디코딩)으로 지칭된다.
비디오 시퀀스는 일련의 이미지들 (픽처)을 포함하며, 이미지는 슬라이스들 (슬라이스)로 추가로 분할되며, 슬라이스는 블록들 (블록)로 추가로 분할된다. 비디오 코딩은 블록에 의해 수행된다. 일부 새로운 비디오 코딩 표준들에서, 컨셉 "블록"은 추가로 확장된다. 예를 들어, 매크로블록 (macroblock, MB)은 H.264 표준에서 소개되어 있다. 매크로블록은 예측 코딩에 사용될 수 있는 복수의 예측 블록들 (예측기)로 추가로 분할될 수도 있다. 고효율 비디오 코딩 (High Efficiency video coding, HEVC) 표준에서, 기본적인 컨셉들, 예컨대 "코딩 유닛" (coding unit, CU), "예측 유닛" (prediction unit, PU), 및 "변환 유닛" (transform unit, TU)이 사용된다. 복수의 블록 유닛들은 기능적 분할을 통해서 획득되며, 새로운 트리-기반 구조를 이용하여 설명된다. 예를 들어, CU는 쿼드트리에 기초하여 더 작은 CU들로 분할될 수도 있으며, 더 작은 CU는 쿼드트리 구조를 발생시키기 위해, 추가로 분할될 수도 있다. CU는 코딩된 이미지를 분할 및 인코딩하기 위한 기본 단위이다. PU 및 TU는 또한 유사한 트리 구조들을 갖는다. PU는 예측 블록에 대응할 수도 있으며, 예측 코딩을 위한 기본 단위다. CU는 분할 패턴에 기초하여 복수의 PU들로 추가로 분할된다. TU는 변환 블록에 대응할 수도 있으며, 예측 잔차를 변환하기 위한 기본 단위이다. 그러나, 본질적으로, CU, PU, 및 TU 모두는 개념적으로 블록들 (또는, 이미지 블록들)이다.
예를 들어, HEVC 에서, CTU는 코딩 트리로서 표현되는 쿼드트리 구조를 이용하여 복수의 CU들로 분할된다. 인터-이미지 (시간) 또는 인트라-이미지 (공간) 예측을 이용하여 이미지 영역을 인코딩할지 여부에 관한 결정이 CU 레벨에서 이루어진다. 각각의 CU는 PU 분할 패턴에 기초하여 하나, 2개, 또는 4개의 PU들로 추가로 분할될 수도 있다. 하나의 PU 내에서, 동일한 예측 프로세스가 적용되며, 관련된 정보가 PU 단위로, 디코더로 송신된다. PU 분할 패턴에 기초하여 예측 프로세스를 적용하여 잔차 블록을 획득한 후, CU는 CU에 사용되는 코딩 트리와 유사한 다른 쿼드트리 구조에 기초하여, 변환 유닛들 (transform unit, TU)로 파티셔닝될 수도 있다. 비디오 압축 기술들의 최근의 발전에서, 쿼드트리 플러스 2진 트리 (Quad-tree plus binary tree, QTBT) 파티션 프레임이 코딩 블록을 파티셔닝하는데 사용된다. QTBT 블록 구조에서, CU는 정사각형 또는 직사각형일 수도 있다.
본 명세서에서, 설명의 용이성 및 이해를 위해, 현재의 코딩된 이미지에서의 인코딩될 이미지 블록은 현재의 블록으로 지칭될 수도 있다. 예를 들어, 인코딩에서, 현재의 블록은 현재 인코딩중인 블록이고, 디코딩에서, 현재의 블록은 현재 디코딩중인 블록이다. 현재의 블록을 예측하는데 사용되는, 참조 이미지에서의, 디코딩된 이미지 블록은 참조 블록으로 지칭된다. 다시 말해서, 참조 블록은 현재의 블록에 대한 참조 신호를 제공하는 블록이고, 참조 신호는 이미지 블록에서의 픽셀 값을 나타낸다. 참조 이미지에서 현재의 블록에 대한 예측 신호를 제공하는 블록은 예측 블록으로 지칭될 수도 있으며, 예측 신호는 예측 블록에서의 픽셀 값, 샘플링 값, 또는 샘플링 신호를 나타낸다. 예를 들어, 복수의 참조 블록들이 횡단된 후, 최적의 참조 블록이 발견된다. 최적의 참조 블록은 현재의 블록에 대한 예측을 제공하며, 예측 블록으로 지칭될 수도 있다.
다음은 본 발명의 실시형태들에서의 비디오 코딩 시스템을 설명한다. 도 1은 본 발명의 일 실시형태에 따른, 예시적인 비디오 코딩 시스템의 블록도이다. 본 명세서에서 사용될 때, 용어 "비디오 코덱"은 일반적으로 비디오 인코더 및 비디오 디코더를 지칭한다. 본 발명의 실시형태들에서, 용어 "비디오 코딩" 또는 "코딩"은 일반적으로 비디오 인코딩 또는 비디오 디코딩을 지칭할 수도 있다. 비디오 코딩 시스템에서 비디오 인코더 (100) 및 비디오 디코더 (200)는 예측된 모션 벡터가 모션 추정 방법을 이용하여 획득된 모션 벡터에 최대로 근접하도록, 본 발명의 실시형태들에서 제공되는 복수의 새로운 인터 예측 모드들 중 임의의 하나에서 설명된 다양한 방법 예들에 따라, 현재의 코딩된 이미지 블록의 현재의 코딩된 이미지 블록 또는 서브블록의 모션 정보, 예를 들어, 모션 벡터를 예측하도록 구성된다. 이러한 방법으로, 모션 벡터 차이가 인코딩 동안 송신될 필요가 없으므로, 코딩 성능을 추가로 향상시킨다.
도 1에 나타낸 바와 같이, 비디오 코딩 시스템은 소스 장치 (10) 및 목적지 장치 (20)를 포함한다. 소스 장치 (10)는 인코딩된 비디오 데이터를 발생시킨다. 따라서, 소스 장치 (10)는 비디오 인코딩 장치로 지칭될 수도 있다. 목적지 장치 (20)는 소스 장치 (10)에 의해 발생된 인코딩된 비디오 데이터를 디코딩할 수도 있다. 따라서, 목적지 장치 (20)는 비디오 디코딩 장치로 지칭될 수도 있다. 다양한 구현 해결책들에서, 소스 장치 (10), 목적지 장치 (20), 또는 소스 장치 (10) 및 목적지 장치 (20) 양자는 하나 이상의 프로세서들 및 하나 이상의 프로세서들에 커플링된 메모리를 포함할 수도 있다. 메모리는, RAM, ROM, EEPROM, 플래시 메모리, 또는 본 명세서에서 설명된 바와 같은, 원하는 프로그램 코드를 명령 또는 컴퓨터에 액세스가능한 데이터 구조의 형태로 저장하는데 사용될 수 있는 임의의 다른 매체를 포함할 수도 있지만 이에 한정되지 않는다.
소스 장치 (10) 및 목적지 장치 (20)는 데스크탑 컴퓨터, 모바일 컴퓨팅 장치, 노트북 (예를 들어, 랩탑) 컴퓨터, 태블릿 컴퓨터, 셋 탑 박스, 핸드헬드 전화기 세트, 예컨대 "스마트" 폰, 텔레비전 세트, 카메라, 디스플레이 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 차량 탑재 컴퓨터, 및 유사한 장치를 포함한, 다양한 장치들을 포함할 수도 있다.
목적지 장치 (20)는 소스 장치 (10)로부터 링크 (30)를 통해서 인코딩된 비디오 데이터를 수신할 수도 있다. 링크 (30)는 인코딩된 비디오 데이터를 소스 장치 (10)로부터 목적지 장치 (20)로 전송할 수 있는 하나 이상의 매체들 또는 장치들을 포함할 수도 있다. 일 예에서, 링크 (30)는 소스 장치 (10)로 하여금 인코딩된 비디오 데이터를 목적지 장치 (20)로 직접 실시간으로 송신가능하게 하는 하나 이상의 통신 매체들을 포함할 수도 있다. 이 예에서, 소스 장치 (10)는 인코딩된 비디오 데이터를 통신 표준 (예를 들어, 무선 통신 프로토콜)에 따라서 변조할 수도 있으며, 변조된 비디오 데이터를 목적지 장치 (20)로 송신할 수도 있다. 하나 이상의 통신 매체들은 무선 통신 매체 및/또는 유선 통신 매체, 예를 들어, 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적인 송신 케이블들을 포함할 수도 있다. 하나 이상의 통신 매체들은 패킷-기반 네트워크의 부분일 수도 있으며, 패킷-기반 네트워크는 예를 들어, 근거리 네트워크, 광역 네트워크, 또는 글로벌 네트워크 (예를 들어, 인터넷)이다. 하나 이상의 통신 매체들은 라우터, 스위치, 기지국, 또는 소스 장치 (10)로부터 목적지 장치 (20)로의 통신을 용이하게 하는 다른 디바이스를 포함할 수도 있다.
다른 예에서, 인코딩된 데이터는 출력 인터페이스 (140)를 통해서 저장 장치 (40)로 출력될 수도 있다. 이와 유사하게, 인코딩된 데이터는 입력 인터페이스 (240)를 통해서 저장 장치 (40)로부터 액세스될 수도 있다. 저장 장치 (40)는 복수의 분산 또는 로컬로 액세스된 데이터 저장 매체들, 예를 들어, 하드 디스크 드라이브, 블루-레이 디스크, DVD, CD-ROM, 플래시 메모리, 휘발성 또는 비-휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하도록 구성된 임의의 다른 적합한 디지털 저장 매체 중 임의의 하나를 포함할 수도 있다.
다른 예에서, 저장 장치 (40)는 파일 서버, 또는 소스 장치 (10)에 의해 발생된 인코딩된 비디오 데이터를 저장하는 것이 가능한 다른 중간 저장 장치에 대응할 수도 있다. 목적지 장치 (20)는 스트리밍 송신 또는 다운로딩을 통해서 저장 장치 (40)로부터, 저장된 비디오 데이터에 액세스할 수도 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 인코딩된 비디오 데이터를 목적지 장치 (20)로 송신하는 것이 가능한 임의 종류의 서버일 수도 있다. 예를 들어, 파일 서버는 (예를 들어, 웹사이트에 사용된) 네트워크 서버, FTP 서버, 네트워크-부착된 저장 (NAS) 장치, 또는 로컬 디스크 드라이브를 포함한다. 목적지 장치 (20)는 (인터넷 접속을 포함한) 임의의 표준 데이터 접속을 통해서, 인코딩된 비디오 데이터에 액세스할 수도 있다. 표준 데이터 접속은 파일 서버에 저장된 인코딩된 비디오 데이터에 액세스하는데 사용될 수 있는, 무선 채널 (예를 들어, Wi-Fi 접속), 유선 접속 (예를 들어, DSL 또는 케이블 모뎀), 또는 이들의 결합을 포함할 수도 있다. 저장 장치 (40)로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로딩 송신, 또는 이들의 결합일 수도 있다.
본 발명의 실시형태들에서의 모션 벡터 예측 기술은 복수의 멀티미디어 애플리케이션들, 예를 들어, 오버-디-에어 텔레비전 브로드캐스트, 무선 텔레비전 송신, 위성 텔레비전 송신, (예를 들어, 인터넷을 통한) 스트리밍 비디오 송신, 데이터 저장 매체에 저장된 비디오 데이터의 인코딩, 데이터 저장 매체에 저장된 비디오 데이터의 디코딩, 또는 다른 애플리케이션을 지원하기 위해 비디오 코딩에 적용될 수도 있다. 일부 예들에서, 비디오 코딩 시스템은 스트리밍 비디오 송신, 비디오 플레이백, 비디오 브로드캐스팅, 및/또는 비디오전화와 같은, 애플리케이션들을 지원하기 위해, 단방향 또는 양방향의 비디오 송신을 지원하도록 구성될 수도 있다.
도 1에서 설명된 비디오 코딩 시스템은 단지 일 예이다. 본 발명의 실시형태들에서의 기술들은 인코딩 장치와 디코딩 장치 사이의 임의의 데이터 통신을 반드시 포함하지 않는 비디오 코딩 세팅 (예를 들어, 비디오 인코딩 또는 비디오 디코딩)에 적용가능할 수도 있다. 다른 예에서, 데이터는 로컬 메모리로부터 취출되어, 네트워크 상에서 스트리밍 방법 등으로 송신된다. 비디오 인코딩 장치는 데이터를 인코딩하고 데이터를 메모리에 저장할 수도 있고/있거나, 비디오 디코딩 장치는 메모리로부터 데이터를 취출하고 데이터를 디코딩할 수도 있다. 다수의 예들에서, 단지 데이터를 인코딩하여 데이터를 메모리에 저장하고/하거나 메모리로부터 데이터를 취출하여 데이터를 디코딩하며 서로 통신하지 않는 장치들이 인코딩 및 디코딩을 수행한다.
도 1의 예에서, 소스 장치 (10)는 비디오 소스 (120), 비디오 인코더 (100), 및 출력 인터페이스 (140)를 포함한다. 일부 예들에서, 출력 인터페이스 (140)는 변조기/복조기 (모뎀) 및/또는 송신기를 포함할 수도 있다. 비디오 소스 (120)는 비디오 캡쳐 장치 (예를 들어, 카메라), 이전에 캡쳐된 비디오 데이터를 포함하는 비디오 아카이브, 비디오 데이터를 발생시키기 위한 컴퓨터 그래픽스 시스템, 및/또는 비디오 콘텐츠 제공자로부터 비디오 데이터를 수신하기 위한 비디오 피드-인 인터페이스, 또는 전술한 비디오 데이터 소스들의 결합을 포함할 수도 있다.
비디오 인코더 (100)는 비디오 소스 (120)로부터 유래하는 비디오 데이터를 인코딩할 수도 있다. 일부 예들에서, 소스 장치 (10)는 인코딩된 비디오 데이터를 출력 인터페이스 (140)를 통해서 목적지 장치 (20)로 직접 송신한다. 다른 예에서, 인코딩된 비디오 데이터는 대안적으로, 목적지 장치 (20)가 그후 디코딩 및/또는 플레잉을 위해, 인코딩된 비디오 데이터에 액세스하도록, 저장 장치 (40)에 저장될 수도 있다.
도 1의 예에서, 목적지 장치 (20)는 입력 인터페이스 (240), 비디오 디코더 (200), 및 디스플레이 장치 (220)를 포함한다. 일부 예들에서, 입력 인터페이스 (240)는 수신기 및/또는 모뎀을 포함한다. 입력 인터페이스 (240)는 인코딩된 비디오 데이터를 링크 (30)를 통해서 및/또는 저장 장치 (40)로부터 수신할 수도 있다. 디스플레이 장치 (220)는 목적지 장치 (20)와 통합될 수도 있거나 또는 목적지 장치 (20) 외부에 배치될 수도 있다. 대개, 디스플레이 장치 (220)는 디코딩된 비디오 데이터를 디스플레이한다. 디스플레이 장치 (220)는 복수의 유형들의 디스플레이 장치들, 예를 들어, 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 유형의 디스플레이 장치를 포함할 수도 있다.
도 1에 나타내지는 않지만, 일부 양태들에서, 비디오 인코더 (100) 및 비디오 디코더 (200)는 오디오 인코더 및 오디오 디코더와 각각 통합될 수도 있으며, 오디오 및 비디오를 결합된 데이터 스트림 또는 별개의 데이터 스트림으로 인코딩하기 위해, 적합한 멀티플렉서-디멀티플렉서 유닛 또는 다른 하드웨어 및 소프트웨어를 포함할 수도 있다. 일부 예들에서, 적용가능한 경우, MUX-DEMUX 유닛은 ITU H.223 멀티플렉서 프로토콜, 또는 다른 프로토콜, 예컨대 사용자 데이터그램 프로토콜 (UDP)을 준수할 수도 있다.
비디오 인코더 (100) 및 비디오 디코더 (200) 각각은 예를 들어, 다음 복수의 회로들: 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSP), 주문형 집적 회로들 (ASIC), 필드 프로그래밍가능 게이트 어레이들 (FPGA), 이산 로직, 하드웨어, 또는 이들의 임의의 결합 중 임의의 하나로서 구현될 수도 있다. 본 발명의 실시형태들이 소프트웨어로 부분적으로 구현되면, 본 장치는 적합한 비-휘발성 컴퓨터-판독가능 저장 매체에, 소프트웨어에 사용되는 명령을 저장할 수도 있으며, 본 발명의 실시형태들에서의 기술들을 구현하기 위해, 하나 이상의 프로세서들을 이용하여 하드웨어에서 명령을 실행할 수도 있다. (하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 결합 등을 포함한) 전술한 콘텐츠 중 임의의 하나는 하나 이상의 프로세서들로서 간주될 수도 있다. 비디오 인코더 (100) 및 비디오 디코더 (200) 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있으며, 인코더 또는 디코더는 대응하는 장치에서, 결합된 인코더/디코더 (CODEC)의 부분으로서 통합될 수도 있다.
본 발명의 실시형태들에서, 비디오 인코더 (100)는 일반적으로, 일부 정보를 다른 장치, 예컨대 비디오 디코더 (200)로 "시그널링" 또는 "송신"하는 장치일 수도 있다. 용어 "시그널링" 또는 "송신"은 일반적으로, 신택스 엘리먼트 및/또는 압축된 비디오 데이터를 디코딩하는데 사용되는 다른 데이터의 전송을 지칭할 수도 있다. 전송은 실시간으로 또는 거의 실시간으로 발생할 수도 있다. 대안적으로, 통신은 특정의 시간 기간 이후 발생할 수도 있다. 예를 들어, 통신은 인코딩된 비트스트림에서의 신택스 엘리먼트가 인코딩 동안 컴퓨터-판독가능 저장 매체에 저장될 때에 발생할 수도 있으며, 디코딩 장치는 그후 신택스 엘리먼트가 매체에 저장된 후 임의의 시간에 신택스 엘리먼트를 취출할 수도 있다.
비디오 인코더 (100) 및 비디오 디코더 (200)는 비디오 압축 표준, 예컨대 HEVC (High Efficiency Video Coding), 또는 그의 확장판에 따라서 동작할 수도 있으며, HEVC 테스트 모델 (HM)을 따를 수도 있다. 대안적으로, 비디오 인코더 (100) 및 비디오 디코더 (200)는 다른 산업 표준, 예를 들어, ITU-T H.264 표준, H.265 표준, 또는 이러한 표준의 확장판에 따라서 동작할 수도 있다. 그러나, 본 발명의 실시형태들에서의 기술들은 임의의 특정의 코딩 표준에 한정되지 않는다.
일 예에서, 비디오 인코더 (100)는 현재의 인코딩될 이미지 블록에 관련된 신택스 엘리먼트를 (줄여서, 비트스트림 또는 비트스트림으로 지칭되는) 디지털 비디오 출력 비트스트림으로 인코딩하도록 구성된다. 본원에서, 현재의 이미지 블록의 인터 예측에 사용되는 신택스 엘리먼트는 줄여서, 인터 예측 데이터로 지칭되며, 인터 예측 데이터는 예를 들어, 인터 예측 모드의 표시 정보를 포함한다. 본 발명의 실시형태들에서의 인터 예측 모드는 아핀 변환 모델-기반 AMVP 모드 및 아핀 변환 모델-기반 병합 모드 중 적어도 하나를 포함한다. 인터 예측 데이터가 아핀 변환 모델-기반 AMVP 모드의 표시 정보를 포함할 때, 인터 예측 데이터는 AMVP 모드에 대응하는 후보 모션 벡터 리스트의 인덱스 값 (또는, 인덱스 번호로 지칭됨), 및 현재의 블록의 제어 지점의 모션 벡터 차이 (MVD)를 더 포함할 수도 있다. 인터 예측 데이터가 아핀 변환 모델-기반 병합 모드의 표시 정보를 포함할 때, 인터 예측 데이터는 병합 모드에 대응하는 후보 모션 벡터 리스트의 인덱스 값 (또는, 인덱스 번호로 지칭됨)을 더 포함할 수도 있다. 게다가, 선택적인 실시형태에서, 전술한 예에서의 인터 예측 데이터는 현재의 블록의 아핀 변환 모델 (모델 파라미터들의 양)의 표시 정보를 더 포함할 수도 있다.
본 발명의 실시형태들에서 제공되는 새로운 인터 예측 모드에 기초하여 예측된 모션 정보에 기초하여 발생된 예측 블록과 현재의 인코딩될 이미지 블록 (즉, 원래 블록) 사이의 차이 (즉, 잔차)가 0이면, 비디오 인코더 (100)가 현재의 인코딩될 이미지 블록에 관련된 신택스 엘리먼트를 비트스트림 (또한, 비트스트림으로 지칭됨)으로 인코딩하기만 하면 되는 것으로 이해되어야 한다. 그렇지 않으면, 신택스 엘리먼트에 추가하여, 대응하는 잔차가 비트스트림으로 추가로 인코딩되어야 한다.
특정의 실시형태에서, 비디오 인코더 (100)는 인코더 측 상에서, 본 발명에서 설명되는 모션 벡터 예측 방법의 애플리케이션을 구현하기 위해, 도 13에서 설명되는 다음 실시형태를 실행하도록 구성될 수도 있다.
일 예에서, 비디오 디코더 (200)는 비트스트림을 디코딩하여 현재의 디코딩될 이미지 블록에 관련된 신택스 엘리먼트를 획득하도록 구성된다 (S401). 본원에서, 현재의 이미지 블록의 인터 예측에 사용되는 신택스 엘리먼트는 줄여서, 인터 예측 데이터로 지칭되며, 인터 예측 데이터는 예를 들어, 인터 예측 모드의 표시 정보를 포함한다. 본 발명의 실시형태들에서의 인터 예측 모드는 아핀 변환 모델-기반 AMVP 모드 및 아핀 변환 모델-기반 병합 모드 중 적어도 하나를 포함한다. 인터 예측 데이터가 아핀 변환 모델-기반 AMVP 모드의 표시 정보를 포함할 때, 인터 예측 데이터는 AMVP 모드에 대응하는 후보 모션 벡터 리스트의 인덱스 값 (또는, 인덱스 번호로 지칭됨), 및 현재의 블록의 제어 지점의 모션 벡터 차이 (MVD)를 더 포함할 수도 있다. 인터 예측 데이터가 아핀 변환 모델-기반 병합 모드의 표시 정보를 포함할 때, 인터 예측 데이터는 병합 모드에 대응하는 후보 모션 벡터 리스트의 인덱스 값 (또는, 인덱스 번호로 지칭됨)을 더 포함할 수도 있다. 게다가, 선택적인 실시형태에서, 전술한 예에서의 인터 예측 데이터는 현재의 블록의 아핀 변환 모델 (모델 파라미터들의 양)의 표시 정보를 더 포함할 수도 있다.
특정의 실시형태에서, 비디오 디코더 (200)는 디코더 측 상에서 본 발명에서 설명되는 모션 벡터 예측 방법의 애플리케이션을 구현하기 위해, 도 9 또는 도 12에서 설명된 다음 실시형태를 실행하도록 구성될 수도 있다.
도 2a는 본 발명의 일 실시형태에 따른 예시적인 비디오 인코더 (100)의 블록도이다. 비디오 인코더 (100)는 비디오를 사후-프로세싱 엔터티 (41)로 출력하도록 구성된다. 사후-프로세싱 엔터티 (41)는 비디오 인코더 (100)로부터 유래하는 인코딩된 비디오 데이터를 프로세싱하는 것이 가능한 비디오 엔터티의 일 예를 나타낸다. 예를 들어, 비디오 엔터티는 미디어 인지 네트워크 엘리먼트 (MANE) 또는 분할 장치/편집 장치이다. 일부의 경우, 사후-프로세싱 엔터티 (41)는 네트워크 엔터티의 일 예일 수도 있다. 일부 비디오 인코딩 시스템들에서, 사후-프로세싱 엔터티 (41) 및 비디오 인코더 (100)는 별개의 장치들의 컴포넌트들일 수도 있다. 다른 경우, 사후-프로세싱 엔터티 (41)에 대해 설명된 기능들은 비디오 인코더 (100)를 포함하는 동일한 장치에 의해 수행될 수도 있다. 일 예에서, 사후-프로세싱 엔터티 (41)는 도 1의 저장 장치 (40)의 일 예이다.
도 2a의 예에서, 비디오 인코더 (100)는 예측 프로세싱 유닛 (108), 필터 유닛 (106), 디코딩된 이미지 버퍼 (DPB) (107), 합산기 (112), 변환기 (101), 양자화기 (102), 및 엔트로피 인코더 (103)를 포함한다. 예측 프로세싱 유닛 (108)은 인터 예측기 (110) 및 인트라 예측기 (109)를 포함한다. 이미지 블록 복원을 위해, 비디오 인코더 (100)는 역 양자화기 (104), 역변환기 (105), 및 합산기 (111)를 더 포함한다. 필터 유닛 (106)은 하나 이상의 루프 필터들, 예를 들어, 디블록킹 필터, 적응 루프 필터 (ALF), 및 샘플 적응 오프셋 (SAO) 필터를 나타내도록 의도된다. 필터 유닛 (106)이 도 2a에서 인-루프 필터로서 도시되지만, 다른 구현예에서, 필터 유닛 (106)은 사후-루프 필터로서 구현될 수도 있다. 일 예에서, 비디오 인코더 (100)는 비디오 데이터 메모리 및 파티셔닝 유닛 (도면에 미도시)을 더 포함할 수도 있다.
비디오 데이터 메모리는 비디오 인코더 (100)의 컴포넌트에 의해 인코딩된 비디오 데이터를 저장할 수도 있다. 비디오 데이터 메모리에 저장된 비디오 데이터는 비디오 소스 (120)로부터 획득될 수도 있다. DPB (107)는 인트라 또는 인터 코딩 모드에서 비디오 데이터를 인코딩하기 위해 비디오 인코더 (100)에 의해 사용되는 참조 비디오 데이터를 저장하는 참조 이미지 메모리일 수도 있다. 비디오 데이터 메모리 및 DPB (107) 각각은 복수의 메모리 장치들, 예를 들어, 동기식 DRAM (SDRAM)을 포함한 동적 랜덤 액세스 메모리 (DRAM), 자기저항 RAM (MRAM), 저항 RAM (RRAM), 또는 다른 유형의 메모리 장치 중 임의의 하나로 구성될 수도 있다. 비디오 데이터 메모리 및 DPB (107)는 동일한 메모리 장치 또는 별개의 메모리 장치들에 의해 제공될 수도 있다. 다양한 예들에서, 비디오 데이터 메모리는 비디오 인코더 (100)의 다른 컴포넌트들과 함께 칩 상에 통합될 수도 있거나, 또는 이들 컴포넌트들에 대해 칩 외부에 배치될 수도 있다.
도 2a에 나타낸 바와 같이, 비디오 인코더 (100)는 비디오 데이터를 수신하고 비디오 데이터를 비디오 데이터 메모리에 저장한다. 파티셔닝 유닛은 비디오 데이터를 여러 이미지 블록들로 파티셔닝하며, 이들 이미지 블록들은 더 작은 블록들로 추가로 파티셔닝될 수도 있으며, 예를 들어, 쿼드트리 구조 또는 2진-트리 구조에 기초하여 파티셔닝될 수도 있다. 파티셔닝은 슬라이스들 (slice), 타일들 (tile), 또는 다른 더 큰 유닛들로 파티셔닝하는 것을 더 포함할 수도 있다. 비디오 인코더 (100)는 일반적으로, 인코딩될 비디오 슬라이스에서의 이미지 블록을 인코딩하는 컴포넌트이다. 슬라이스는 복수의 이미지 블록들로 파티셔닝될 수도 있다 (그리고, 타일들로서 지칭되는 이미지 블록 세트들로 파티셔닝될 수도 있다).
예측 프로세싱 유닛 (108)에서의 인트라 예측기 (109)는 공간 리던던시를 제거하기 위해, 현재의 이미지 블록과 동일한 프레임 또는 슬라이스에 있는 하나 이상의 이웃하는 블록들에 대해, 인코딩될 현재의 이미지 블록에 대한 인트라 예측 인코딩을 수행할 수도 있다. 예측 프로세싱 유닛 (108)에서의 인터 예측기 (110)는 시간 리던던시를 제거하기 위해, 하나 이상의 참조 이미지들에서의 하나 이상의 예측 블록들에 대해, 현재의 이미지 블록에 대한 인터 예측 인코딩을 수행할 수도 있다.
구체적으로 설명하면, 인터 예측기 (110)는 현재의 이미지 블록을 인코딩하는데 사용되는 인터 예측 모드를 결정하도록 구성될 수도 있다. 예를 들어, 인터 예측기 (110)는 레이트-왜곡 분석을 통해서, 후보 인터 예측 모드 세트에서 다양한 인터 예측 모드들의 레이트-왜곡 값들을 계산하고, 인터 예측 모드들 중에서 최적의 레이트-왜곡 특징을 가진 인터 예측 모드를 선택할 수도 있다. 레이트-왜곡 분석은 일반적으로, 인코딩된 블록과 인코딩된 블록을 발생시키기 위해 인코딩되어야 하는 원래 비인코딩된 블록 사이의 왜곡의 양 (또는, 에러), 및 인코딩된 블록을 발생시키는데 사용되는 비트 레이트 (즉, 비트들의 양)를 결정하는 것이다. 예를 들어, 인터 예측기 (110)는 후보 인터 예측 모드 세트에서, 가장 작은 레이트-왜곡 비용을 가지며 현재의 이미지 블록을 인코딩하는데 사용되는 인터 예측 모드를, 현재의 이미지 블록에 대한 인터 예측을 수행하는데 사용되는 인터 예측 모드로서, 결정할 수도 있다. 다음은 인터 예측 인코딩 프로세스, 특히 본 발명의 실시형태들에서 비-방향 또는 방향 모션 분야에서 사용되는 다양한 인터 예측 모드들에서 현재의 이미지 블록에서의 (구체적으로 각각의 서브블록 또는 모든 서브블록들일 수도 있는) 하나 이상의 서브블록들의 모션 정보를 예측하는 프로세스를 자세히 설명한다.
인터 예측기 (110)는 결정된 인터 예측 모드에 기초하여 현재의 이미지 블록에서의 하나 이상의 서브블록들의 모션 정보 (예를 들어, 모션 벡터)를 예측하고, 현재의 이미지 블록에서의 하나 이상의 서브블록들의 모션 정보 (예를 들어, 모션 벡터)를 이용하여 현재의 이미지 블록의 예측 블록을 획득 또는 발생시키도록 구성된다. 인터 예측기 (110)는 참조 이미지 리스트 내 하나의 참조 이미지에서, 모션 벡터가 가리키는 예측 블록을 위치지정할 수도 있다. 인터 예측기 (110)는 비디오 디코더 (200)가 신택스 엘리먼트를 이용하여 비디오 슬라이스의 이미지 블록을 디코딩할 수 있도록, 이미지 블록 및 비디오 슬라이스와 연관된 신택스 엘리먼트를 추가로 발생시킬 수도 있다. 대안적으로, 일 예에서, 인터 예측기 (110)는 각각의 서브블록의 모션 정보를 이용하여 모션 보상 프로세스를 수행하여, 서브블록의 예측 블록을 발생시킴으로써, 현재의 이미지 블록의 예측 블록을 획득한다. 본원에서 인터 예측기 (110)가 모션 추정 프로세스 및 모션 보상 프로세스를 수행하는 것으로 이해되어야 한다.
구체적으로 설명하면, 현재의 이미지 블록에 대한 인터 예측 모드를 선택한 후, 인터 예측기 (110)는 엔트로피 인코더 (103)가 선택된 인터 예측 모드를 표시하는 정보를 인코딩하도록, 엔트로피 인코더 (103)로, 현재의 이미지 블록의 선택된 인터 예측 모드를 표시하는 정보를 제공할 수도 있다. 본 발명의 이 실시형태에서, 비디오 인코더 (100)는 현재의 이미지 블록에 관련된 인터 예측 데이터를 비디오 인코더 (100)에 의해 송신된 비트스트림에 추가할 수도 있다. 인터 예측 데이터는 예를 들어, 인터 예측 모드의 표시 정보를 포함한다. 본 발명의 실시형태들에서의 인터 예측 모드는 아핀 변환 모델-기반 AMVP 모드 및 아핀 변환 모델-기반 병합 모드 중 적어도 하나를 포함한다. 인터 예측 데이터가 아핀 변환 모델-기반 AMVP 모드의 표시 정보를 포함할 때, 인터 예측 데이터는 AMVP 모드에 대응하는 후보 모션 벡터 리스트의 인덱스 값 (또는, 인덱스 번호로 지칭됨), 및 현재의 블록의 제어 지점의 모션 벡터 차이 (MVD)를 더 포함할 수도 있다. 인터 예측 데이터가 아핀 변환 모델-기반 병합 모드의 표시 정보를 포함할 때, 인터 예측 데이터는 병합 모드에 대응하는 후보 모션 벡터 리스트의 인덱스 값 (또는, 인덱스 번호로 지칭됨)을 더 포함할 수도 있다. 게다가, 선택적인 실시형태에서, 전술한 예에서의 인터 예측 데이터는 현재의 블록의 아핀 변환 모델 (모델 파라미터들의 양)의 표시 정보를 더 포함할 수도 있다.
특정의 실시형태에서, 인터 예측기 (110)는 인코더 측 상에서, 본 발명에서 설명되는 모션 벡터 예측 방법의 애플리케이션을 구현하기 위해 도 13에서 설명되는 다음 실시형태에서의 관련된 단계를 수행하도록 구성될 수도 있다.
인트라 예측기 (109)는 현재의 이미지 블록에 대한 인트라 예측을 수행할 수도 있다. 구체적으로 설명하면, 인트라 예측기 (109)는 현재의 블록을 인코딩하는데 사용되는 인트라 예측 모드를 결정할 수도 있다. 예를 들어, 인트라 예측기 (109)는 레이트-왜곡 분석을 통해 다양한 테스트될 인트라 예측 모드들의 레이트-왜곡 값들을 계산하고, 테스트될 모드들 중에서 최적의 레이트-왜곡 특징을 가진 인트라 예측 모드를 선택할 수도 있다. 어쨌든, 이미지 블록에 대한 인트라 예측 모드를 선택한 후, 인트라 예측기 (109)는 엔트로피 인코더 (103)가 선택된 인트라 예측 모드를 표시하는 정보를 인코딩하도록, 엔트로피 인코더 (103)로, 현재의 이미지 블록의 선택된 인트라 예측 모드를 표시하는 정보를 제공할 수도 있다.
예측 프로세싱 유닛 (108)이 인터 예측 및 인트라 예측을 통해서 현재의 이미지 블록의 예측 블록을 발생시킨 후, 비디오 인코더 (100)는 인코딩될 현재의 이미지 블록으로부터 예측 블록을 감산하여 잔차 이미지 블록을 발생시킨다. 합산기 (112)는 감산 동작을 수행하는 하나 이상의 컴포넌트들을 나타낸다. 잔차 블록에서의 잔차 비디오 데이터는 하나 이상의 TU들에 포함되어, 변환기 (101)에 적용될 수도 있다. 변환기 (101)는 이산 코사인 변환 (DCT) 또는 개념적으로 유사한 변환과 같은, 변환을 통해서 잔차 비디오 데이터를 잔차 변환 계수로 변환한다. 변환기 (101)는 잔차 비디오 데이터를 픽셀 값 도메인으로부터 변환 도메인, 예를 들어, 주파수 도메인으로 변환할 수도 있다.
변환기 (101)는 획득된 변환 계수를 양자화기 (102)로 전송할 수도 있다. 양자화기 (102)는 비트 레이트를 추가로 감소시키기 위해 변환 계수를 양자화한다. 일부 예들에서, 양자화기 (102)는 양자화된 변환 계수를 포함하는 매트릭스를 추가로 스캐닝할 수도 있다. 대안적으로, 엔트로피 인코더 (103)는 스캐닝을 수행할 수도 있다.
양자화 이후, 엔트로피 인코더 (103)는 양자화된 변환 계수에 대한 엔트로피 인코딩을 수행한다. 예를 들어, 엔트로피 인코더 (103)는 컨텍스트-적응 가변-길이 코딩 (CAVLC), 컨텍스트-적응 2진 산술 코딩 (CABAC), 신택스-기반 컨텍스트-적응 2진 산술 코딩 (SBAC), 확률 간격 파티셔닝 엔트로피 (PIPE) 코딩, 또는 다른 엔트로피 코딩 방법 또는 기술을 수행할 수도 있다. 엔트로피 인코더 (103)가 엔트로피 인코딩을 수행한 후, 인코딩된 비트스트림은 비디오 디코더 (200)로 송신되거나, 또는 후속 송신을 위해 아카이브되거나 또는 비디오 디코더 (200)에 의해 취출될 수도 있다. 엔트로피 인코더 (103)는 인코딩될 현재의 이미지 블록의 신택스 엘리먼트에 대한 엔트로피 인코딩을 추가로 수행할 수도 있다.
역 양자화기 (104) 및 역변환기 (105)는 역양자화 및 역변환을 각각 적용하여, 예를 들어, 이후에 참조 이미지의 참조 블록으로서 사용될, 픽셀 도메인에서의 잔차 블록을 복원한다. 합산기 (111)는 복원된 잔차 블록을 인터 예측기 (110) 또는 인트라 예측기 (109)에 의해 발생된 예측 블록에 가산하여, 복원된 이미지 블록을 발생시킨다. 필터 유닛 (106)은 블록킹 아티팩트들 (blocking artifacts)과 같은 왜곡을 감소시키기 위해, 복원된 이미지 블록에 적용가능할 수도 있다. 그 후, 복원된 이미지 블록은 디코딩된 이미지 버퍼 (107)에 참조 블록으로서 저장되며, 후속 비디오 프레임 또는 이미지에서의 블록에 대한 인터 예측을 수행하기 위해 인터 예측기 (110)에 의해 참조 블록으로서 사용될 수도 있다.
비디오 인코더 (100)의 다른 구조적 변형들이 비디오 스트림을 디코딩하는데 사용될 수 있는 것으로 이해되어야 한다. 예를 들어, 일부 이미지 블록들 또는 이미지 프레임들에 대해, 비디오 인코더 (100)는 잔차 신호를 직접 양자화할 수도 있으며, 이에 따라, 변환기 (101) 및 역변환기 (105)에 의해 프로세싱하는 것이 필요하지 않다. 대안적으로, 일부 이미지 블록들 또는 이미지 프레임들에 대해, 비디오 인코더 (100)는 잔차 데이터를 발생시키지 않으며, 이에 따라, 변환기 (101), 양자화기 (102), 역 양자화기 (104), 및 역변환기 (105)에 의해 프로세싱하는 것이 필요하지 않다. 대안적으로, 비디오 인코더 (100)는 복원된 이미지 블록을, 필터 유닛 (106)에 의한 프로세싱 없이, 참조 블록으로서 직접 저장할 수도 있다. 대안적으로, 비디오 인코더 (100)에서의 양자화기 (102) 및 역 양자화기 (104)는 결합될 수도 있다.
구체적으로 설명하면, 본 발명의 이 실시형태에서, 비디오 인코더 (100)는 다음 실시형태들에서 설명되는 모션 벡터 예측 방법을 수행하도록 구성된다.
도 2b는 본 발명의 일 실시형태에 따른 예시적인 비디오 디코더 (200)의 블록도이다. 도 2b의 예에서, 비디오 디코더 (200)는 엔트로피 디코더 (203), 예측 프로세싱 유닛 (208), 역 양자화기 (204), 역변환기 (205), 합산기 (211), 필터 유닛 (206), 및 디코딩된 이미지 버퍼 (207)를 포함한다. 예측 프로세싱 유닛 (208)은 인터 예측기 (210) 및 인트라 예측기 (209)를 포함할 수도 있다. 일부 예들에서, 비디오 디코더 (200)는 도 2a에서의 비디오 인코더 (100)에 대해 설명된 인코딩 프로세스와는 실질적으로 반대인 디코딩 프로세스를 수행할 수도 있다.
디코딩 동안, 비디오 디코더 (200)는 비디오 인코더 (100)로부터, 인코딩된 비디오 슬라이스의 이미지 블록 및 연관된 신택스 엘리먼트를 나타내는 인코딩된 비디오 비트스트림을 수신한다. 비디오 디코더 (200)는 네트워크 엔터티 (42)로부터 비디오 데이터를 수신할 수도 있으며, 선택적으로, 비디오 데이터를 (도면에 도시되지 않은) 비디오 데이터 메모리에 추가로 저장할 수도 있다. 비디오 데이터 메모리는 비디오 디코더 (200)의 컴포넌트에 의해 디코딩될 비디오 데이터, 예를 들어, 인코딩된 비디오 비트스트림을 저장할 수도 있다. 비디오 데이터 메모리에 저장된 비디오 데이터는 비디오 데이터의 유선 또는 무선 네트워크 통신을 통해서, 또는 물리적인 데이터 저장 매체에 액세스함으로써, 예를 들어, 저장 장치 (40) 또는 카메라와 같은, 로컬 비디오 소스로부터 획득될 수도 있다. 비디오 데이터 메모리는 인코딩된 비디오 비트스트림으로부터 유래하는 인코딩된 비디오 데이터를 저장하도록 구성된 디코딩된 이미지 버퍼 (DPB)로서 사용될 수도 있다. 따라서, 비디오 데이터 메모리가 도 2b에 도시되지 않지만, 비디오 데이터 메모리 및 DPB (207)는 동일한 메모리일 수도 있거나, 또는 별개로 배치된 메모리들일 수도 있다. 비디오 데이터 메모리 및 DPB (207) 각각은 복수의 메모리 장치들, 예를 들어, 동기식 DRAM (SDRAM)을 포함한 동적 랜덤 액세스 메모리 (DRAM), 자기저항 RAM (MRAM), 저항 RAM (RRAM), 또는 다른 유형의 메모리 장치 중 임의의 하나로 구성될 수도 있다. 다양한 예들에서, 비디오 데이터 메모리는 비디오 디코더 (200)의 다른 컴포넌트들과 함께 칩 상에 통합될 수도 있거나, 또는 이들 컴포넌트들에 대해 칩 외부에 배치될 수도 있다.
네트워크 엔터티 (42)는 예를 들어, 서버, MANE, 비디오 편집기/스플라이서(splicer), 또는 위에서 설명된 기술들 중 하나 이상을 구현하도록 구성된 다른 유사한 장치일 수도 있다. 네트워크 엔터티 (42)는 비디오 인코더, 예를 들어, 비디오 인코더 (100)를 포함하거나 또는 포함하지 않을 수도 있다. 네트워크 엔터티 (42)가 인코딩된 비디오 비트스트림을 비디오 디코더 (200)로 전송하기 전에, 네트워크 엔터티 (42)는 본 발명의 실시형태들에서 설명된 기술들의 부분을 구현할 수도 있다. 일부 비디오 디코딩 시스템들에서, 네트워크 엔터티 (42) 및 비디오 디코더 (200)는 별개의 장치들의 컴포넌트들일 수도 있다. 다른 경우, 네트워크 엔터티 (42)에 대해 설명된 기능들은 비디오 디코더 (200)를 포함하는 동일한 장치에 의해 수행될 수도 있다. 일부의 경우, 네트워크 엔터티 (42)는 도 1의 저장 장치 (40)의 일 예일 수도 있다.
비디오 디코더 (200)의 엔트로피 디코더 (203)는 비트스트림에 대해 엔트로피 디코딩을 수행하여 양자화된 계수 및 일부 신택스 엘리먼트들을 발생시킨다. 엔트로피 디코더 (203)는 신택스 엘리먼트들을 예측 프로세싱 유닛 (208)으로 포워딩한다. 비디오 디코더 (200)는 비디오 슬라이스 레벨 및/또는 이미지 블록 레벨에서 신택스 엘리먼트들/신택스 엘리먼트를 수신할 수도 있다.
비디오 슬라이스가 인트라-디코딩된 (I) 슬라이스로 디코딩될 때, 예측 프로세싱 유닛 (208)의 인트라 예측기 (209)는 현재의 프레임 또는 이미지의 이전에 디코딩된 블록의 시그널링된 인트라 예측 모드 및 데이터에 기초하여 현재의 비디오 슬라이스의 이미지 블록의 예측 블록을 발생시킬 수도 있다. 비디오 슬라이스가 인터-디코딩된 (즉, B 또는 P) 슬라이스로 디코딩될 때, 예측 프로세싱 유닛 (208)의 인터 예측기 (210)는 엔트로피 디코더 (203)로부터 수신된 신택스 엘리먼트에 기초하여, 현재의 비디오 슬라이스의 현재의 이미지 블록을 디코딩하는데 사용되는 인터 예측 모드를 결정하고, 결정된 인터 예측 모드에 기초하여 현재의 이미지 블록을 디코딩할 (예를 들어, 인터 예측을 수행할) 수도 있다. 구체적으로 설명하면, 인터 예측기 (210)는 현재의 비디오 슬라이스의 현재의 이미지 블록을 예측하는데 새로운 인터 예측 모드를 이용할지 여부를 결정할 수도 있다. 신택스 엘리먼트가 현재의 이미지 블록을 예측하는데 새로운 인터 예측 모드를 이용한다고 표시하면, 인터 예측기 (210)가 새로운 인터 예측 모드 (예를 들어, 신택스 엘리먼트에 의해 표시되는 새로운 인터 예측 모드 또는 디폴트 새로운 인터 예측 모드)에 기초하여 현재의 비디오 슬라이스의 현재의 이미지 블록의 모션 정보 또는 현재의 이미지 블록의 서브블록의 모션 정보를 예측하여, 모션 보상 프로세스를 이용하여, 현재의 이미지 블록의 예측된 모션 정보 또는 현재의 이미지 블록의 서브블록의 예측된 모션 정보에 기초하여 현재의 이미지 블록 또는 현재의 이미지 블록의 서브블록에 대한 예측 블록을 획득 또는 발생시킨다. 본원에서의 모션 정보는 참조 이미지 정보 및 모션 벡터를 포함할 수도 있다. 참조 이미지 정보는, 단방향/양방향의 예측 정보, 참조 이미지 리스트 개수, 및 참조 이미지 리스트에 대응하는 참조 이미지 인덱스를 포함할 수도 있지만 이에 한정되지 않는다. 인터 예측을 위해, 예측 블록은 참조 이미지 리스트들 중 하나에서의 참조 이미지들 중 하나로부터 발생될 수도 있다. 비디오 디코더 (200)는 DPB (207)에 저장된 참조 이미지들에 기초하여, 참조 이미지 리스트들, 즉, 리스트 0 및 리스트 1을 구성할 수도 있다. 현재의 이미지의 참조 프레임 인덱스는 참조 프레임 리스트 0 및 참조 프레임 리스트 1 중 하나 이상에 포함될 수도 있다. 본원에서 인터 예측기 (210)가 모션 보상 프로세스를 수행하는 것으로 이해되어야 한다. 다음은 참조 블록의 모션 정보를 이용하여, 다양한 새로운 인터 예측 모드들에서, 현재의 이미지 블록의 모션 정보 또는 현재의 이미지 블록의 서브블록의 모션 정보를 예측하는 인터 예측 프로세스를 자세히 설명한다.
일 예에서, 인터 예측기 (210)는 현재의 디코딩될 이미지 블록에 관련되며 비트스트림을 디코딩함으로써 획득되는 신택스 엘리먼트에 기초하여, 현재의 디코딩될 이미지 블록을 예측할 수도 있다 (S401). 본원에서, 현재의 이미지 블록의 인터 예측에 사용되는 신택스 엘리먼트는 줄여서, 인터 예측 데이터로 지칭되며, 인터 예측 데이터는 예를 들어, 인터 예측 모드의 표시 정보를 포함한다. 본 발명의 실시형태들에서의 인터 예측 모드는 아핀 변환 모델-기반 AMVP 모드 및 아핀 변환 모델-기반 병합 모드 중 적어도 하나를 포함한다. 인터 예측 데이터가 아핀 변환 모델-기반 AMVP 모드의 표시 정보를 포함할 때, 인터 예측 데이터는 AMVP 모드에 대응하는 후보 모션 벡터 리스트의 인덱스 값 (또는, 인덱스 번호로 지칭됨), 및 현재의 블록의 제어 지점의 모션 벡터 차이 (MVD)를 더 포함할 수도 있다. 인터 예측 데이터가 아핀 변환 모델-기반 병합 모드의 표시 정보를 포함할 때, 인터 예측 데이터는 병합 모드에 대응하는 후보 모션 벡터 리스트의 인덱스 값 (또는, 인덱스 번호로 지칭됨)을 더 포함할 수도 있다. 게다가, 선택적인 실시형태에서, 전술한 예에서의 인터 예측 데이터는 현재의 블록의 아핀 변환 모델 (모델 파라미터들의 양)의 표시 정보를 더 포함할 수도 있다.
특정의 실시형태에서, 인터 예측기 (210)는 디코더 측 상에서 본 발명에서 설명되는 모션 벡터 예측 방법의 애플리케이션을 구현하기 위해, 도 9 또는 도 12에서 설명된 다음 실시형태에서의 관련된 단계를 수행하도록 구성될 수도 있다.
역 양자화기 (204)는 비트스트림으로 제공되어 엔트로피 디코더 (203)에 의해 디코딩된 양자화된 변환 계수를 역양자화를 수행한다, 즉, 역양자화한다. 역양자화 프로세스는 비디오 슬라이스에서의 각각의 이미지 블록에 대해 비디오 인코더 (100)에 의해 계산된 양자화 파라미터를 이용하여, 적용될 양자화 도를 결정하는 단계, 및 유사하게, 적용될 역양자화 도를 결정하는 단계를 포함할 수도 있다. 역변환기 (205)는 역변환, 예를 들어, 역 DCT, 역 정수 변환, 또는 개념적으로 유사한 역변환 프로세스를, 변환 계수에 적용하여, 픽셀-도메인 잔차 블록을 발생시킨다.
인터 예측기 (210)가 현재의 이미지 블록 또는 현재의 이미지 블록의 서브블록에 사용되는 예측 블록을 발생시킨 후, 비디오 디코더 (200)는 역변환기 (205)로부터의 잔차 블록과, 인터 예측기 (210)에 의해 발생된 대응하는 예측 블록을 합산하여, 복원된 블록, 즉, 디코딩된 이미지 블록을 획득한다. 합산기 (211)는 합산 동작을 수행하는 컴포넌트를 나타낸다. 필요할 경우, (디코딩 루프 내 또는 이후에) 루프 필터가 픽셀들을 평활화하는데 추가로 사용될 수도 있거나, 또는 비디오 품질이 다른 방법으로 향상될 수도 있다. 필터 유닛 (206)은 하나 이상의 루프 필터들, 예를 들어, 디블록킹 필터, 적응 루프 필터 (ALF), 및 샘플 적응 오프셋 (SAO) 필터를 나타낼 수도 있다. 필터 유닛 (206)이 도 2b에서 인-루프 필터로서 도시되지만, 다른 구현예에서, 필터 유닛 (206)은 사후-루프 필터로서 구현될 수도 있다. 일 예에서, 필터 유닛 (206)은 블록 왜곡을 감소시키기 위해, 복원된 블록에 적용가능하며, 그 결과가 디코딩된 비디오 스트림으로서 출력된다. 게다가, 주어진 프레임 또는 이미지에서의 디코딩된 이미지 블록이 디코딩된 이미지 버퍼 (207)에 추가로 저장될 수도 있으며, 디코딩된 이미지 버퍼 (207)는 후속 모션 보상에 사용되는 참조 이미지를 저장한다. 디코딩된 이미지 버퍼 (207)는 메모리의 부분일 수도 있으며, 디스플레이 장치 (예를 들어, 도 1의 디스플레이 장치 220) 상의 후속 프리젠테이션을 위해, 디코딩된 비디오를 추가로 저장할 수도 있다. 대안적으로, 디코딩된 이미지 버퍼 (207)는 이러한 메모리로부터 분리될 수도 있다.
비디오 디코더 (200)의 다른 구조적 변형들이 인코딩된 비디오 비트스트림을 디코딩하는데 사용될 수 있는 것으로 이해되어야 한다. 예를 들어, 비디오 디코더 (200)는 필터 유닛 (206)에 의한 프로세싱 없이, 출력 비디오 스트림을 발생시킬 수도 있다. 대안적으로, 일부 이미지 블록들 또는 이미지 프레임들에 대해, 비디오 디코더 (200)의 엔트로피 디코더 (203)는 디코딩을 통해 양자화된 계수를 획득하지 않으며, 이에 따라, 역 양자화기 (204) 및 역변환기 (205)에 의해 프로세싱하는 것이 필요하지 않다.
구체적으로 설명하면, 본 발명의 이 실시형태에서, 비디오 디코더 (200)는 다음 실시형태들에서 설명되는 모션 벡터 예측 방법을 수행하도록 구성된다.
도 3은 본 발명의 일 실시형태에 따른, 비디오 코딩 디바이스 (400) (예를 들어, 비디오 인코딩 디바이스 (400) 또는 비디오 디코딩 디바이스 (400))의 개략적인 구조 다이어그램이다. 비디오 코딩 디바이스 (400)는 본 명세서에서 설명된 실시형태들에 적용가능하다. 일 실시형태에서, 비디오 코딩 디바이스 (400)는 비디오 디코더 (예를 들어, 도 1의 비디오 디코더 (200)) 또는 비디오 인코더 (예를 들어, 도 1의 비디오 인코더 (100))일 수도 있다. 다른 실시형태에서, 비디오 코딩 디바이스 (400)는 도 1의 비디오 디코더 (200) 또는 도 1의 비디오 인코더 (100)에서의 하나 이상의 컴포넌트들일 수도 있다.
비디오 코딩 디바이스 (400)는 데이터를 수신하도록 구성된 유입 포트들 (410) 및 수신기 유닛 (Rx) (420); 데이터를 프로세싱하도록 구성된, 프로세서, 로직 유닛, 또는 중앙 처리 유닛 (CPU) (430); 데이터를 송신하도록 구성된 송신기 유닛 (Tx) (440) 및 유출 포트들 (450); 및 데이터를 저장하도록 구성된 메모리 (460)를 포함한다. 비디오 코딩 디바이스 (400)는 광학 또는 전기 신호의 유출 또는 유입을 위해, 유입 포트들 (410)에 커플링된 광-대-전기 및 전기-대-광 (EO) 변환 컴포넌트, 수신기 유닛 (420), 송신기 유닛 (440), 및 유출 포트들 (450)을 더 포함할 수도 있다.
프로세서 (430)는 하드웨어 및 소프트웨어에 의해 구현된다. 프로세서 (430)는 하나 이상의 CPU 칩들, 코어들 (예를 들어, 멀티-코어 프로세서), FPGA들, ASIC들, 또는 DSP들로서 구현될 수도 있다. 프로세서 (430)는 유입 포트들 (410), 수신기 유닛 (420), 송신기 유닛 (440), 유출 포트들 (450), 및 메모리 (460)와 통신한다. 프로세서 (430)는 코딩 모듈 (470) (예를 들어, 인코딩 모듈 (470) 또는 디코딩 모듈 470)을 포함한다. 인코딩/디코딩 모듈 (470)은 본 명세서에 개시된 실시형태들을 구현하여, 본 발명의 실시형태들에서 제공되는 모션 벡터 예측 방법을 구현한다. 예를 들어, 인코딩/디코딩 모듈 (470)은 다양한 코딩 동작들을 수행하거나, 프로세싱하거나, 또는 제공한다. 따라서, 인코딩/디코딩 모듈 (470)은 비디오 코딩 디바이스 (400)의 기능들을 실질적으로 향상시키고 상이한 상태로의 비디오 코딩 디바이스 (400)의 변환에 영향을 미친다. 대안적으로, 인코딩/디코딩 모듈 (470)은 메모리 (460)에 저장되어 프로세서 (430)에 의해 실행되는 명령으로서 구현된다.
메모리 (460)는 하나 이상의 디스크들, 테이프 드라이브들, 및 솔리드 스테이트 드라이브들을 포함하며, 이러한 프로그램들이 선택적으로 실행될 때 프로그램들을 저장하기 위해, 그리고 프로그램 실행 동안 판독되는 명령들 및 데이터를 저장하기 위해, 오버플로우(overflow) 데이터 저장 디바이스로서 사용될 수도 있다. 메모리 (460)는 휘발성 및/또는 비-휘발성일 수도 있으며, 판독-전용 메모리 (ROM), 랜덤 액세스 메모리 (RAM), 터너리 콘텐츠-어드레스가능한 메모리 (ternary content-addressable memory, TCAM), 및/또는 정적 랜덤 액세스 메모리 (SRAM)일 수도 있다.
본 출원의 비디오 인코더 (100) 및 비디오 디코더 (200)에서, 과정에 대한 프로세싱 결과가 추가로 프로세싱된 후 다음 과정으로 출력될 수도 있는 것으로 이해되어야 한다. 예를 들어, 내삽 필터링, 모션 벡터 유도, 또는 루프 필터링과 같은 과정 이후, 클리핑 또는 시프트와 같은 동작이 대응하는 과정에 대한 프로세싱 결과에 대해 추가로 수행된다.
예를 들어, 현재의 이미지 블록의 제어 지점의 모션 벡터이고 이웃하는 아핀 코딩 블록의 모션 벡터에 기초하여 유도되는 모션 벡터가 추가로 프로세싱될 수도 있다. 이는 본 출원에서 한정되지 않는다. 예를 들어, 모션 벡터의 값 범위는, 모터 벡터가 특정의 비트 심도 내에 있도록, 제한된다. 모션 벡터의 허용된 비트 심도가 bitDepth라고 가정하면, 모션 벡터 범위는 -2^(bitDepth-1) 내지 2^(bitDepth-1)-1이며, 여기서, 심볼 "^"는 거듭제곱을 나타낸다. bitDepth가 16이면, 값 범위는 -32768 내지 32767이다. bitDepth가 18이면, 값 범위는 -131072 내지 131071이다. 모션 벡터의 값 범위는 다음 2개의 방법들 중 어느 하나에 제한되지 않는다:
방법 1: 모션 벡터의 오버플로우 상위 비트가 제거된다:
예를 들어, vx의 값은 -32769이며, 32767은 전술한 수식들에 따라서 획득된다. 값은 2의 보수 형태로 컴퓨터에 저장되며, -32769의 2의 보수는 1,0111,1111,1111,1111 (17 비트들)이고, 오버플로우 동안 컴퓨터에 의해 수행되는 프로세싱은 상위 비트를 폐기하는 것이다. 따라서, vx의 값은 0111,1111,1111,1111, 즉, 32767이며, 이는 수식들에 따라서 획득된 결과와 일치한다.
방법 2: 클리핑이 다음 수식들에 나타낸 바와 같이, 모션 벡터에 대해 수행된다:
vx = Clip3(-2bitDepth -1, 2bitDepth -1 -1, vx)
vy = Clip3(-2bitDepth -1, 2bitDepth -1 -1, vy)
전술한 수식들에서, Clip3는 z의 값을 범위 [x, y]로 클리핑하는 것으로서 정의된다.
Clip3( x, y, z ) =
도 4는 본 발명의 일 실시형태에 따른 인코딩 디바이스 또는 디코딩 디바이스 (줄여서, 코딩 디바이스 (1200))의 구현예의 개략 블록도이다. 코딩 디바이스 (1200)는 프로세서 (1210), 메모리 (1230), 및 버스 시스템 (1250)을 포함할 수도 있다. 프로세서 및 메모리는 버스 시스템을 이용하여 서로 접속된다. 메모리는 명령을 저장하도록 구성된다. 프로세서는 메모리에 저장된 명령을 실행하도록 구성된다. 인코딩 디바이스의 메모리는 프로그램 코드를 저장한다. 프로세서는 메모리에 저장된 프로그램 코드를 호출하여, 본 발명의 실시형태들에서 설명되는 다양한 비디오 인코딩 또는 디코딩 방법들, 특히 다양한 새로운 인터 예측 모드들에서의 비디오 인코딩 또는 디코딩 방법들 및 새로운 인터 예측 모드들에서의 모션 정보 예측 방법들을 수행할 수도 있다. 반복을 피하기 위해, 세부 사항들은 본원에서 다시 설명되지 않는다.
본 발명의 이 실시형태에서, 프로세서 (1210)는 중앙 처리 유닛 (Central Processing Unit, 줄여서, "CPU")일 수도 있거나, 또는 프로세서 (1210)는 다른 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적 회로 (ASIC), 필드 프로그래밍가능 게이트 어레이 (FPGA) 또는 다른 프로그래밍가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직 디바이스, 별개의 하드웨어 컴포넌트, 또는 기타 등등일 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있거나, 또는 프로세서는 임의의 종래의 프로세서 또는 기타 등등일 수도 있다.
메모리 (1230)는 판독-전용 메모리 (ROM) 디바이스 또는 랜덤 액세스 메모리 (RAM) 디바이스를 포함할 수도 있다. 임의의 다른 적합한 유형의 저장 디바이스가 또한 메모리 (1230)로서 사용될 수도 있다. 메모리 (1230)는 버스 시스템 (1250)을 이용하여 프로세서 (1210)에 의해 액세스되는 코드 및 데이터 (1231)를 포함할 수도 있다. 메모리 (1230)는 동작 시스템 (1233) 및 애플리케이션 프로그램 (1235)을 더 포함할 수도 있다. 애플리케이션 프로그램 (1235)은 프로세서 (1210)로 하여금, 본 발명의 실시형태들에서 설명되는 비디오 인코딩 또는 디코딩 방법들 (특히 본 발명의 실시형태들에서 설명되는 모션 벡터 예측 방법)을 수행하게 하는 적어도 하나의 프로그램을 포함한다. 예를 들어, 애플리케이션 프로그램 (1235)은 애플리케이션들 1 내지 N을 포함할 수도 있으며, 본 발명의 실시형태들에서 설명되는 비디오 인코딩 또는 디코딩 방법들을 수행하는 비디오 인코딩 또는 디코딩 애플리케이션 (줄여서, 비디오 코딩 애플리케이션)을 더 포함한다.
데이터 버스에 추가하여, 버스 시스템 (1250)은 전력 버스, 제어 버스, 상태 신호 버스 등을 더 포함할 수도 있다. 그러나, 명확한 설명을 위해, 도면에서 다양한 유형들의 버스들은 버스 시스템 (1250)로서 표시된다.
선택적으로, 코딩 디바이스 (1200)는 하나 이상의 출력 디바이스들, 예를 들어, 디스플레이 (1270)를 더 포함할 수도 있다. 일 예에서, 디스플레이 (1270)는 터치 입력을 동작가능하게 감지하는 터치 유닛과 디스플레이를 결합한 터치 디스플레이일 수도 있다. 디스플레이 (1270)는 버스 (1250)를 이용하여 프로세서 (1210)에 접속될 수도 있다.
본 발명의 실시형태들에서의 기술적인 해결책들을 더 잘 이해하기 위해, 다음은 본 발명의 실시형태들에서 인터 예측 모드, 비-병진 모션 모델, 상속된 제어 지점 모션 벡터 예측 방법, 및 구성된 제어 지점 모션 벡터 예측 방법을 추가로 설명한다.
(1) 인터 예측 모드. HEVC 에서, 2개의 인터 예측 모드들: 진보된 모션 벡터 예측 (advanced motion vector prediction, AMVP) 모드 및 병합 (merge) 모드가 사용된다.
AMVP 모드에서, 현재의 블록의 공간적으로 또는 시간적으로 이웃하는 인코딩된 블록들 (이웃하는 블록들로서 표시됨)이 먼저 횡단된다. (모션 정보 후보 리스트로서 또한 지칭될 수도 있는) 후보 모션 벡터 리스트는 이웃하는 블록들의 모션 정보에 기초하여 구성된다. 그 후, 최적의 모션 벡터가 레이트-왜곡 비용에 기초하여 후보 모션 벡터 리스트에서 결정되며, 최소 레이트-왜곡 비용을 가진 후보 모션 정보가 현재의 블록의 모션 벡터 예측자 (motion vector predictor, MVP)로서 사용된다. 이웃하는 블록들의 위치들 및 횡단 순서는 미리 정의된다. 레이트-왜곡 비용은 수식 (1)에 따라서 계산되며, 여기서, J는 레이트-왜곡 비용 RD 비용을 나타내며, SAD는 원래 픽셀 값과, 후보 모션 벡터 예측자를 이용하여 모션 추정을 통해서 획득된 예측된 픽셀 값 사이의 절대 차이들의 합 (sum of absolute differences, SAD), R은 비트 레이트를 나타내며, λ는 라그랑지(Lagrange) 승산기를 나타낸다. 인코더 측은 후보 모션 벡터 리스트에서의 선택된 모션 벡터 예측자의 인덱스 값 및 참조 프레임 인덱스 값을 디코더 측으로 전송한다. 또, 모션 탐색이 현재의 블록의 실제 모션 벡터를 획득하기 위해, MVP 의 중심에 있는 이웃에서 수행된다. 인코더 측은 MVP와 실제 모션 벡터 사이의 차이 (모션 벡터 차이)를 디코더 측으로 전송한다.
J=SAD+λR (1)
병합 모드에서, 후보 모션 벡터 리스트가 현재의 블록의 공간적으로 또는 시간적으로 이웃하는 인코딩된 블록들의 모션 정보에 기초하여 먼저 구성된다. 그 후, 레이트-왜곡 비용이 후보 모션 벡터 리스트에서의 최적의 모션 정보를 현재의 블록의 모션 정보로서 결정하도록 계산되며, 후보 모션 벡터 리스트에서의 최적의 모션 정보의 위치의 인덱스 값 (이하, 병합 인덱스로 표시됨)이 디코더 측으로 전송된다. 도 5는 현재의 블록의 공간 및 시간 후보 모션 정보를 나타낸다. 공간 후보 모션 정보는 5개의 공간적으로 이웃하는 블록들 (A0, A1, B0, B1, 및 B2)로부터 유래한다. 이웃하는 블록이 이용불가능하면 (이웃하는 블록이 존재하지 않거나, 또는 이웃하는 블록이 인코딩되지 않거나, 또는 이웃하는 블록에 사용되는 예측 모드가 인터 예측 모드가 아니면), 이웃하는 블록의 모션 정보가 후보 모션 벡터 리스트에 추가되지 않는다. 현재의 블록의 시간 후보 모션 정보는 참조 프레임 및 현재의 프레임의 픽처 순서 카운트들 (picture order count, POC)에 기초하여, 참조 프레임의 대응하는 위치에서의 블록의 MV를 스케일링함으로써 획득된다. 참조 프레임의 위치 T에서의 블록이 이용가능한지 여부가 먼저 결정된다. 블록이 이용불가능하면, 위치 C에서의 블록이 선택된다.
AMVP 모드와 유사하게, 병합 모드에서, 이웃하는 블록들의 위치들 및 횡단 순서는 또한 미리 정의된다. 게다가, 이웃하는 블록들의 위치들 및 횡단 순서는 상이한 모드들에서 상이할 수도 있다.
후보 모션 벡터 리스트가 AMVP 모드 및 병합 모드 양자에서 유지되어야 함을 알 수 있다. 새로운 모션 정보가 후보 리스트에 매번 추가되기 전에, 동일한 모션 정보가 리스트에 이미 존재하는지 여부가 먼저 체크된다. 동일한 모션 정보가 리스트에 존재하면, 모션 정보가 리스트에 추가되지 않는다. 이 체킹 프로세스는 후보 모션 벡터 리스트의 프루닝으로서 지칭된다. 리스트의 프루닝은 여분의 레이트-왜곡 비용 계산을 피하기 위해, 리스트에서 동일한 모션 정보를 피하는 것이다.
HEVC에서의 인터 예측 동안, 동일한 모션 정보가 코딩 블록에서의 모든 픽셀들에 대해 사용되며 (즉, 코딩 블록 내 모든 픽셀들의 모션이 일관되며), 그후 모션 보상이 코딩 블록의 픽셀 예측자를 획득하기 위해, 모션 정보에 기초하여 수행된다. 코딩 블록에서, 그러나, 모든 픽셀들이 동일한 모션 특성들을 갖는 것은 아니다. 동일한 모션 정보를 이용하는 것은 부정확한 모션-보상된 예측 및 더 많은 잔차 정보를 발생시킬 수도 있다.
다시 말해서, 기존 비디오 코딩 표준에서, 병진 모션 모델에 기초한 블록-매칭 모션 추정이 사용된다. 그러나, 현실 세계에서, 다양한 움직임들이 있다. 다수의 물체들, 예를 들어, 회전 물체, 상이한 방향들로 회전하는 롤러 코스터, 불꽃놀이들, 및 영화들에서의 일부 스턴트들은 병진 모션이 아니다. 이들 움직이는 물체들, 특히 UGC 시나리오에서의 물체들이 현재의 코딩 표준에서의 병진 모션 모델에 기초하여 블록 모션 보상 기술을 이용하여 인코딩되면, 코딩 효율이 크게 영향을 받는다. 따라서, 비-병진 모션 모델, 예를 들어, 아핀 모션 모델이 코딩 효율을 추가로 향상시키기 위해 도입된다.
이에 기초하여, 상이한 모션 모델들에 따라, AMVP 모드는 병진 모델-기반 AMVP 모드 및 비-병진 모델-기반 AMVP 모드로 분류될 수도 있으며, 병합 모드는 병진 모델-기반 병합 모드 및 비-병진 모델-기반 병합 모드로 분류될 수도 있다.
(2) 비-병진 모션 모델. 비-병진 모션 모델-기반 예측에서, 코덱 측은 하나의 모션 모델을 이용하여, 현재의 블록에서의 각각의 모션 보상 서브유닛의 모션 정보를 유도하고, 모션 보상 서브유닛의 모션 정보에 기초하여 모션 보상을 수행하여, 예측 블록을 획득한다. 이는 예측 효율을 향상시킬 수 있다. 본 발명의 실시형태들에서의 모션 보상 서브유닛은 특정의 방법에 따른 분할을 통해서 획득되며 그 사이즈가 N1 × N2인 샘플 또는 픽셀 블록일 수도 있으며, 여기서, N1 및 N2 양자는 양의 정수들이며, N1은 N2와 동일할 수도 있거나 또는 N2와 동일하지 않을 수도 있다.
빈번하게 사용되는 비-병진 모션 모델들은 4-파라미터 아핀 변환 모델 및 6-파라미터 아핀 변환 모델을 포함하며, 가능한 애플리케이션 시나리오에서 8-파라미터 이중선형의 모델을 더 포함한다. 이들 모델들이 아래에 별도로 설명된다.
4-파라미터 아핀 변환 모델은 다음 수식 (2)에 나타낸다:
(2)
4-파라미터 아핀 변환 모델은 현재의 블록의 좌상단 모서리에서의 샘플에 대한 2개의 샘플들의 모션 벡터들 및 2개의 샘플들의 좌표들을 이용하여 표현될 수도 있다. 모션 모델 파라미터를 나타내는데 사용되는 샘플은 제어 지점으로서 지칭된다. 좌상단 모서리 (0, 0)에서의 샘플 및 우상단 모서리 (W, 0)에서의 샘플이 제어 지점들로 사용되면, 현재의 블록의 좌상단 모서리 및 우상단 모서리에서의 제어 지점들의 모션 벡터들 (vx0, vy0) 및 (vx1, vy1)이 먼저 결정된다. 그 후, 현재의 블록의 각각의 모션 보상 서브유닛의 모션 정보가 다음 수식 (3)에 따라서 획득되며, 여기서, (x, y)는 현재의 블록의 좌상단 모서리에서의 샘플에 대한 모션 보상 서브유닛의 좌표들이며, W는 현재의 블록의 폭을 나타낸다.
(3)
6-파라미터 아핀 변환 모델은 다음 수식 (4)에 나타낸다:
(4)
6-파라미터 아핀 변환 모델은 현재의 블록의 좌상단 모서리에서의 샘플에 대한 3개의 샘플들의 모션 벡터들 및 3개의 샘플들의 좌표들을 이용하여 표현될 수도 있다. 좌상단 모서리 (0, 0)에서의 샘플, 우상단 모서리 (W, 0)에서의 샘플, 및 좌하단 모서리 (0, H)에서의 샘플이 제어 지점들로 사용되면, 현재의 블록의 좌상단 모서리, 우상단 모서리, 및 좌하단 모서리에서의 제어 지점들의 모션 벡터들이 먼저 결정되며 각각 (vx0, vy0), (vx1, vy1), 및 (vx2, vy2)이다. 그 후, 현재의 블록의 각각의 모션 보상 서브유닛의 모션 정보가 다음 수식 (5)에 따라서 획득되며, 여기서, (x, y)는 현재의 블록의 좌상단 모서리에서의 샘플에 대한 모션 보상 서브유닛의 좌표들이며, W 및 H는 각각 현재의 블록의 폭 및 높이를 나타낸다.
(5)
8-파라미터 이중선형의 모델은 다음 수식 (6)에 나타낸다:
(6)
8-파라미터 이중선형의 모델은 현재의 코딩 블록의 좌상단 모서리에서의 샘플에 대한 4개의 샘플들의 모션 벡터들 및 4개의 샘플들의 좌표들을 이용하여 표현될 수도 있다. 좌상단 모서리 (0, 0)에서의 샘플, 우상단 모서리 (W, 0)에서의 샘플, 좌하단 모서리 (0, H)에서의 샘플, 및 우하단 모서리 (W, H)에서의 샘플이 제어 지점들로서 사용되면, 현재의 코딩 블록의 좌상단 모서리, 우상단 모서리, 좌하단 모서리, 및 우하단 모서리에서의 제어 지점들의 모션 벡터들 (vx0, vy0), (vx1, vy1), (vx2, vy2), 및 (vx3, vy3)이 먼저 결정된다. 그 후, 현재의 코딩 블록의 각각의 모션 보상 서브유닛의 모션 정보가 다음 수식 (7)에 따라서 유도되며, 여기서, (x, y)는 현재의 코딩 블록의 좌상단 모서리에서의 샘플에 대한 모션 보상 서브유닛의 좌표들이며, W 및 H는 각각 현재의 코딩 블록의 폭 및 높이이다.
(7)
아핀 변환 모델을 이용하여 예측된 코딩 블록은 또한 아핀 코딩 블록으로 지칭될 수도 있다. 전술한 설명으로부터, 아핀 변환 모델이 아핀 코딩 블록의 제어 지점의 모션 정보에 직접 관련됨을 알 수 있다.
대개, 아핀 코딩 블록의 제어 지점의 모션 정보는 아핀 변환 모델-기반 AMVP 모드 또는 아핀 변환 모델-기반 병합 모드를 이용하여 획득될 수도 있다. 아핀 변환 모델-기반 AMVP 모드 또는 아핀 변환 모델-기반 병합 모드에서, 아핀 코딩 블록의 제어 지점의 모션 정보는 상속된 제어 지점 모션 벡터 예측 방법 또는 구성된 제어 지점 모션 벡터 예측 방법에 따라서 획득될 수도 있다. 다음은 2개의 방법들을 추가로 설명한다.
(3) 상속된 제어 지점 모션 벡터 예측 방법. 상속된 제어 지점 모션 벡터 예측 방법에서, 현재의 블록의 제어 지점의 후보 모션 벡터가 현재의 블록의 이웃하는 인코딩된 아핀 코딩 블록의 아핀 변환 모델을 이용하여 결정된다. 아핀 코딩 블록의 아핀 변환 모델의 파라미터 양 (예를 들어, 4개의 파라미터들, 6개의 파라미터들, 또는 8개의 파라미터들)은 현재의 블록의 아핀 변환 모델의 파라미터의 양과 동일하다.
도 6에 나타낸 현재의 블록은 일 예로서 사용된다. 현재의 블록의 이웃하는 블록들은 현재의 블록의 이웃하는 블록이 위치되는 아핀 코딩 블록을 발견하고 아핀 코딩 블록의 제어 지점의 모션 정보를 획득하기 위해, 규정된 순서, 예를 들어, A1->B1->B0->A0->B2로 횡단된다. 또, 제어 지점의 모션 벡터 (병합 모드의 경우) 또는 제어 지점의 모션 벡터 예측자 (AMVP 모드의 경우)가 아핀 코딩 블록의 제어 지점의 모션 정보에 기초하여 구성된 아핀 변환 모델을 이용하여 현재의 블록에 대해 유도된다. 순서 A1→B1→B0→A0→B2는 단지 일 예로서 사용된다. 다른 결합 순서가 또한 본 발명의 실시형태들에 적용가능하다. 게다가, 이웃하는 블록들은 A1, B1, B0, A0, 및 B2에 한정되지 않는다. 이웃하는 블록은 샘플일 수도 있거나, 또는 사전 설정된 사이즈이고 특정의 분할 방법, 예를 들어, 4×4 픽셀 블록, 4×2 픽셀 블록, 또는 다른 사이즈의 픽셀 블록에 따라서 획득되는 픽셀 블록일 수도 있다. 이는 한정되지 않는다. 아핀 코딩 블록은 현재의 블록에 인접하며 인코딩 단계에서 아핀 변환 모델을 이용하여 예측되는 (또한 줄여서, 이웃하는 아핀 코딩 블록으로서 지칭될 수도 있는) 인코딩된 블록이다.
다음은 도 6에 나타낸 A1을 일 예로서 이용하여 현재의 블록의 제어 지점의 후보 모션 벡터를 결정하는 프로세스를 설명한다. 다른 경우들은 유추에 의해 추론된다.
A1이 위치되는 아핀 코딩 블록이 4-파라미터 아핀 코딩 블록이면 (즉, 아핀 코딩 블록이 4-파라미터 아핀 변환 모델을 이용하여 예측되면), 아핀 코딩 블록의 좌상단 모서리 (x4, y4)의 모션 벡터 (vx4, vy4) 및 아핀 코딩 블록의 우상단 모서리 (x5, y5)의 모션 벡터 (vx5, vy5)가 획득된다.
그 후, 현재의 블록의 좌상단 모서리 (x0, y0)의 모션 벡터 (vx0, vy0)이 다음 수식 (8)에 따라서 계산된다:
(8)
현재의 블록의 우상단 모서리 (x1, y1)의 모션 벡터 (vx1, vy1)이 다음 수식 (9)에 따라서 계산된다:
(9)
A1이 위치되는 아핀 코딩 블록에 기초하여 획득되는, 현재의 블록의 좌상단 모서리 (x0, y0)의 모션 벡터 (vx0, vy0)와 현재의 블록의 우상단 모서리 (x1, y1)의 모션 벡터 (vx1, vy1)의 결합(combination)은 현재의 블록의 제어 지점의 후보 모션 벡터이다.
A1이 위치되는 코딩 블록이 6-파라미터 아핀 코딩 블록이면 (즉, 아핀 코딩 블록이 6-파라미터 아핀 변환 모델을 이용하여 예측되면), 아핀 코딩 블록의 좌상단 모서리 (x4, y4)의 모션 벡터 (vx4, vy4), 아핀 코딩 블록의 우상단 모서리 (x5, y5)의 모션 벡터 (vx5, vy5), 및 아핀 코딩 블록의 좌하단 모서리 (x6, y6)의 모션 벡터 (vx6, vy6)이 획득된다.
그 후, 현재의 블록의 좌상단 모서리 (x0, y0)의 모션 벡터 (vx0, vy0)이 다음 수식 (10)에 따라서 계산된다:
(10)
현재의 블록의 우상단 모서리 (x1, y1)의 모션 벡터 (vx1, vy1)이 다음 수식 (11)에 따라서 계산된다:
(11)
현재의 블록의 좌하단 모서리 (x2, y2)의 모션 벡터 (vx2, vy2)가 다음 수식 (12)에 따라서 계산된다:
(12)
A1이 위치되는 아핀 코딩 블록에 기초하여 획득되는, 좌상단 모서리 (x0, y0)의 모션 벡터 (vx0, vy0), 우상단 모서리 (x1, y1)의 모션 벡터 (vx1, vy1), 및 현재의 블록의 좌하단 모서리 (x2, y2)의 모션 벡터 (vx2, vy2)의 결합은 현재의 블록의 제어 지점의 후보 모션 벡터이다.
다른 모션 모델, 후보 위치, 및 탐색 및 횡단 순서가 또한 본 발명의 실시형태들에 적용가능하다는 점에 유의해야 한다. 세부 사항들은 본 발명의 실시형태들에서 설명되지 않는다.
다른 제어 지점들을 이용하여 현재의 및 이웃하는 코딩 블록들의 모션 모델들을 나타내는 방법이 또한 본 발명의 실시형태들에 적용가능할 수도 있다는 점에 유의해야 한다. 세부 사항들은 본원에서 설명되지 않는다.
(4) 구성된 제어 지점 모션 벡터 예측 방법. 구성된 제어 지점 모션 벡터 예측 방법에서, 현재의 블록의 제어 지점의 이웃하는 인코딩된 블록들의 모션 벡터들이 현재의 아핀 코딩 블록의 제어 지점의 모션 벡터로서 결합되며, 이웃하는 인코딩된 블록들이 아핀 코딩 블록들인지 여부를 고려할 필요가 없다. 상이한 예측 모드들 (아핀 변환 모델-기반 AMVP 모드 및 아핀 변환 모델-기반 병합 모드)에 기초한 구성된 제어 지점 모션 벡터 예측 방법들은 상이하며, 다음에서 별도로 설명된다.
아핀 변환 모델-기반 AMVP 모드에 기초한 구성된 제어 지점 모션 벡터 예측 방법이 먼저 설명된다.
도 7은 현재의 코딩 블록의 이웃하는 인코딩된 블록의 모션 정보를 이용하여 현재의 블록의 좌상단 모서리 및 우상단 모서리의 모션 벡터들을 결정하기 위해, 구성된 제어 지점 모션 벡터 예측 방법을 설명하기 위한 일 예로서 사용된다.
현재의 블록이 4-파라미터 아핀 코딩 블록이면 (즉, 현재의 블록이 4-파라미터 아핀 변환 모델을 이용하여 예측되면), 좌상단 모서리에 인접한 인코딩된 블록 A2, B2, 또는 B3의 모션 벡터는 현재의 블록의 좌상단 모서리의 모션 벡터의 후보 모션 벡터로서 사용될 수도 있다. 우상단 모서리에 인접한 인코딩된 블록 B1 또는 B0의 모션 벡터가 현재의 블록의 우상단 모서리의 모션 벡터의 후보 모션 벡터로서 사용된다. 좌상단 모서리 및 우상단 모서리의 후보 모션 벡터들이 복수의 2-튜플들을 구성하도록 결합된다. 2-튜플에 포함된 2개의 인코딩된 블록들의 모션 벡터들은 현재의 블록의 후보 제어 지점 모션 벡터들로서 사용될 수도 있다. 복수의 2-튜플들은 다음 (13A)과 같이 나타내어진다:
(13A)
는 A2의 모션 벡터를 나타내며, 는 B1의 모션 벡터를 나타내고, 는 B0의 모션 벡터를 나타내며, 는 B2의 모션 벡터를 나타내고, 그리고 는 B3의 모션 벡터를 나타낸다.
현재의 블록이 6-파라미터 아핀 코딩 블록이면 (즉, 현재의 블록이 6-파라미터 아핀 변환 모델을 이용하여 예측되면), 좌상단 모서리에 인접한 인코딩된 블록 A2, B2, 또는 B3의 모션 벡터는 현재의 블록의 좌상단 모서리의 모션 벡터의 후보 모션 벡터로서 사용될 수도 있다. 우상단 모서리에 인접한 인코딩된 블록 B1 또는 B0의 모션 벡터가 현재의 블록의 우상단 모서리의 모션 벡터의 후보 모션 벡터로서 사용된다. 좌하단 모서리에 인접한 인코딩된 블록 A0 또는 A1의 모션 벡터가 현재의 블록의 좌하단 모서리의 모션 벡터의 후보 모션 벡터로서 사용된다. 좌상단 모서리, 우상단 모서리, 및 좌하단 모서리의 후보 모션 벡터들이 복수의 트리플릿들을 구성하도록 결합된다. 트리플릿에 포함된 3개의 인코딩된 블록들의 모션 벡터들이 현재의 블록의 후보 제어 지점 모션 벡터들로서 사용될 수도 있다. 복수의 트리플릿들은 다음 ((13B) 및 (13C))와 같이 나타내어진다:
(13B)
(13C)
는 A2의 모션 벡터를 나타내고, 는 B1의 모션 벡터를 나타내며, 는 B0의 모션 벡터를 나타내고, 는 B2의 모션 벡터를 나타내며, 는 B3의 모션 벡터를 나타내고, 는 A0의 모션 벡터를 나타내며, 는 A1의 모션 벡터를 나타낸다.
도 7은 단지 일 예인 점에 점에 유의해야 한다. 제어 지점 모션 벡터들을 결합하는 다른 방법이 또한 본 발명의 실시형태들에도 적용가능할 수도 있다는 점에 유의해야 한다. 세부 사항들은 본원에서 설명되지 않는다.
다른 제어 지점들을 이용하여 현재의 및 이웃하는 코딩 블록들의 모션 모델들을 나타내는 방법이 또한 본 발명의 실시형태들에 적용가능할 수도 있다는 점에 유의해야 한다. 세부 사항들은 본원에서 설명되지 않는다.
다음은 아핀 변환 모델-기반 병합 모드에 기초하여, 구성된 제어 지점 모션 벡터 예측 방법을 설명한다.
도 8은 현재의 코딩 블록의 이웃하는 인코딩된 블록의 모션 정보를 이용하여 현재의 블록의 좌상단 모서리 및 우상단 모서리의 모션 벡터들을 결정하기 위해, 구성된 제어 지점 모션 벡터 예측 방법을 설명하기 위한 일 예로서 사용된다. 도 8은 단지 일 예인 점에 점에 유의해야 한다.
도 8에 나타낸 바와 같이, CPk (k=1, 2, 3, 4)는 k번째 제어 지점을 나타낸다. A0, A1, A2, B0, B1, B2, 및 B3는 현재의 블록의 공간적으로 이웃하는 위치들이며 CP1, CP2, 또는 CP3를 예측하는데 사용된다. T는 현재의 블록의 시간적으로 이웃하는 위치이며 CP4를 예측하는데 사용된다. CP1, CP2, CP3, 및 CP4의 좌표들이 각각 (0, 0), (W, 0), (H, 0), 및 (W, H)이라고 가정하며, 여기서, W 및 H는 현재의 블록의 폭 및 높이를 나타낸다. 이 경우, 현재의 블록의 각각의 제어 지점의 모션 정보는 다음 순서로 획득된다:
1. CP1에 대해, 체크 순서는 B2->A2->B3이다. B2가 이용가능하면, B2의 모션 정보가 사용된다. 그렇지 않으면, A2 및 B3가 체크된다. 모든 3개의 위치들의 모션 정보가 이용불가능하면, CP1의 모션 정보가 획득되지 않을 수 있다.
2. CP2에 대해, 체크 순서는 B0->B1이다. B0가 이용가능하면, B0의 모션 정보가 CP2에 대해 사용된다. 그렇지 않으면, B1이 체크된다. 위치들 양자의 모션 정보가 이용불가능하면, CP2의 모션 정보가 획득되지 않을 수 있다.
3. CP3에 대해, 체크 순서는 A0->A1이다.
4. CP4에 대해, T의 모션 정보가 사용된다.
본원에서, X가 이용가능하다는 것은, 위치 X (X는 A0, A1, A2, B0, B1, B2, B3, 또는 T임)에서의 블록이 이미 인코딩되고 인터 예측 모드가 블록에 대해 사용된다는 것을 의미한다. 그렇지 않으면, 위치 X는 이용불가능하다. 제어 지점 모션 정보를 획득하는 다른 방법이 또한 본 발명의 실시형태들에 적용불가능할 수도 있다는 점에 유의해야 한다. 세부 사항들은 본원에서 설명되지 않는다.
그 후, 현재의 블록의 제어 지점 모션 정보가 구성된 제어 지점 모션 정보를 획득하기 위해, 결합된다.
4-파라미터 아핀 변환 모델이 현재의 블록에 사용되면, 현재의 블록의 2개의 제어 지점들의 모션 정보가 2-튜플을 구성하도록 결합되어, 4-파라미터 아핀 변환 모델을 구성한다. 2개의 제어 지점들은 다음과 같이 결합될 수도 있다: {CP1, CP4}, {CP2, CP3}, {CP1, CP2}, {CP2, CP4}, {CP1, CP3}, 및 {CP3, CP4}. 예를 들어, 제어 지점들 CP1 및 CP2를 포함하는 2-튜플을 이용하여 구성된 4-파라미터 아핀 변환 모델은 아핀 (CP1, CP2)로서 표시될 수도 있다.
6-파라미터 아핀 변환 모델이 현재의 블록에 사용되면, 현재의 블록의 3개의 제어 지점들의 모션 정보가 트리플릿을 구성하도록 결합되어, 6-파라미터 아핀 변환 모델을 구성한다. 3개의 제어 지점들은 다음과 같이 결합될 수도 있다: {CP1, CP2, CP4}, {CP1, CP2, CP3}, {CP2, CP3, CP4}, 및 {CP1, CP3, CP4}. 예를 들어, 제어 지점들 CP1, CP2, 및 CP3을 포함하는 트리플릿을 이용하여 구성된 6-파라미터 아핀 변환 모델은 아핀 (CP1, CP2, CP3)로서 표시될 수도 있다.
8-파라미터 이중선형의 모델이 현재의 블록에 사용되면, 현재의 블록의 4개의 제어 지점들의 모션 정보가 쿼드러플을 구성하도록 결합되어, 8-파라미터 이중선형의 모델을 구성한다. 제어 지점들 CP1, CP2, CP3, 및 CP4를 포함하는 쿼드러플을 이용하여 구성된 8-파라미터 이중선형의 모델은 이중선형의 (CP1, CP2, CP3, CP4)로서 표시될 수도 있다.
본 명세서에서, 설명의 용이성을 위해, 2개의 제어 지점들 (또는, 2개의 인코딩된 블록들)의 모션 정보의 결합은 줄여서, 2-튜플로서 지칭되며, 3개의 제어 지점들 (또는, 3개의 인코딩된 블록들)의 모션 정보의 결합은 줄여서, 트리플릿으로서 지칭되며, 4개의 제어 지점들 (또는, 4개의 인코딩된 블록들)의 모션 정보의 결합은 줄여서, 쿼드러플로서 지칭된다.
이들 모델들은 사전 설정된 순서로 횡단된다. 결합 모델에 대응하는 제어 지점의 모션 정보가 이용불가능하면, 그 모델이 이용불가능한 것으로 간주된다. 그렇지 않으면, 모델의 참조 프레임 인덱스가 결정되고, 제어 지점의 모션 벡터가 스케일링된다. 스케일링 이후 모든 제어 지점들의 모션 정보가 일치하면, 그 모델이 유효하지 않다. 모델을 제어하는 제어 지점들의 모든 모션 정보가 이용가능하고 그 모델이 유효하면, 모델을 구성하는데 사용되는 제어 지점들의 모션 정보가 모션 정보 후보 리스트에 추가된다.
제어 지점 모션 벡터를 스케일링하는 방법은 다음 수식 (14)에 나타나 있다:
(14)
CurPoc는 현재의 프레임의 POC 번호를 나타내고, DesPoc는 현재의 블록의 참조 프레임의 POC 번호를 나타내며, SrcPoc는 제어 지점의 참조 프레임의 POC 번호를 나타내고, MVS 는 스케일링을 통해서 획득된 모션 벡터를 나타내며, MV는 제어 지점의 모션 벡터를 나타낸다.
상이한 제어 지점들의 결합이 대안적으로, 동일한 위치에서의 제어 지점들로 변환될 수도 있다는 점에 유의해야 한다.
예를 들어, 결합 {CP1, CP4}, {CP2, CP3}, {CP2, CP4}, {CP1, CP3}, 또는 {CP3, CP4}를 통해서 획득된 4-파라미터 아핀 변환 모델은 {CP1, CP2} 또는 {CP1, CP2, CP3}로 표현된다. 변환 방법은 제어 지점의 모션 벡터 및 좌표 정보를 전술한 수식 (2)로 치환하여, 모델 파라미터를 획득하는 단계; 및 그후, {CP1, CP2}의 좌표 정보를 전술한 수식 (3)으로 치환하여, 제어 지점의 모션 벡터를 획득하는 단계이다.
보다 직접적으로는, 변환이 다음 수식들 (15) 내지 (23)에 따라서 수행될 수도 있으며, 여기서, W는 현재의 블록의 폭을 나타내고, H는 현재의 블록의 높이를 나타낸다. 수식들 (15) 내지 (23)에서, 는 CP1의 모션 벡터를 나타내고, 는 CP2의 모션 벡터를 나타내며, 는 CP3의 모션 벡터를 나타내고, 는 CP4의 모션 벡터를 나타낸다.
{CP1, CP2}는 다음 수식 (15)에 따라서 {CP1, CP2, CP3}로 변환될 수도 있다. 다시 말해서, {CP1, CP2, CP3} 중 CP3의 모션 벡터는 수식 (15)에 따라서 결정될 수도 있다:
(15)
{CP1, CP3}는 다음 수식 (16)에 따라서 {CP1, CP2} 또는 {CP1, CP2, CP3}로 변환될 수도 있다:
(16)
{CP2, CP3}는 다음 수식 (17)에 따라서 {CP1, CP2} 또는 {CP1, CP2, CP3}로 변환될 수도 있다:
(17)
{CP1, CP4}는 다음 수식 (18) 또는 (19)에 따라서 {CP1, CP2} 또는 {CP1, CP2, CP3}로 변환될 수도 있다:
(18)
(19)
{CP2, CP4}는 다음 수식 (20)에 따라서 {CP1, CP2}로 변환될 수도 있으며, {CP2, CP4}는 다음 수식들 (20) 및 (21)에 따라서 {CP1, CP2, CP3}로 변환될 수도 있다:
(20)
(21)
{CP3, CP4}는 다음 수식 (22)에 따라서 {CP1, CP2}로 변환될 수도 있으며, {CP3, CP4}는 다음 수식들 (22) 및 (23)에 따라서 {CP1, CP2, CP3}로 변환될 수도 있다:
(22)
(23)
예를 들어, 결합 {CP1, CP2, CP4}, {CP2, CP3, CP4}, 또는 {CP1, CP3, CP4}를 통해서 획득된 6-파라미터 아핀 변환 모델은 제어 지점들 {CP1, CP2, CP3}로 표현된다. 변환 방법은 제어 지점의 모션 벡터 및 좌표 정보를 전술한 수식 (4)로 치환하여, 모델 파라미터를 획득하는 단계; 및 그후 {CP1, CP2, CP3}의 좌표 정보를 전술한 수식 (5)로 치환하여, 제어 지점의 모션 벡터를 획득하는 단계이다.
보다 직접적으로는, 변환이 다음 수식들 (24) 내지 (26)에 따라서 수행될 수도 있으며, 여기서, W는 현재의 블록의 폭을 나타내고, H는 현재의 블록의 높이를 나타낸다. 수식들 (24) 내지 (26)에서, 는 CP1의 모션 벡터를 나타내고, 는 CP2의 모션 벡터를 나타내며, 는 CP3의 모션 벡터를 나타내고, 는 CP4의 모션 벡터를 나타낸다.
{CP1, CP2, CP4}는 수식 (22)에 따라서 {CP1, CP2, CP3}로 변환될 수도 있다:
(24)
{CP2, CP3, CP4}는 수식 (23)에 따라서 {CP1, CP2, CP3}로 변환될 수도 있다:
(25)
{CP1, CP3, CP4}는 수식 (24)에 따라서 {CP1, CP2, CP3}로 변환될 수도 있다:
(26)
특정의 실시형태에서, 현재 구성된 제어 지점 모션 정보가 후보 모션 벡터 리스트에 추가된 후, 후보 리스트의 길이가 최대 리스트 길이 (예를 들어, MaxAffineNumMrgCand) 미만이면, 이들 결합들이 사전 설정된 순서로 횡단되고 획득된 유효한 결합이 제어 지점의 후보 모션 정보로서 사용된다. 후보 모션 벡터 리스트가 비어있으면, 제어 지점의 후보 모션 정보가 후보 모션 벡터 리스트에 추가된다. 그렇지 않으면, 후보 모션 벡터 리스트에서의 모션 정보가 순차적으로 횡단되며, 제어 지점의 후보 모션 정보와 동일한 모션 정보가 후보 모션 벡터 리스트에 존재하는지 여부가 체크된다. 제어 지점의 후보 모션 정보와 동일한 모션 정보가 후보 모션 벡터 리스트에 존재하지 않으면, 제어 지점의 후보 모션 정보가 후보 모션 벡터 리스트에 추가된다.
예를 들어, 사전 설정된 순서는 다음과 같다: 아핀 (CP1, CP2, CP3)->아핀 (CP1, CP2, CP4)->아핀 (CP1, CP3, CP4)->아핀 (CP2, CP3, CP4)->아핀 (CP1, CP2)->아핀 (CP1, CP3)->아핀 (CP2, CP3)->아핀 (CP1, CP4)->아핀 (CP2, CP4)->아핀 (CP3, CP4). 총 10개의 결합들이 있다.
결합에 대응하는 제어 지점 모션 정보가 이용불가능하면, 그 결합이 이용불가능한 것으로 간주된다. 그 결합이 이용가능하면, 결합의 참조 프레임 인덱스가 결정되고 (2개의 제어 지점들의 경우, 최소 참조 프레임 인덱스가 결합의 참조 프레임 인덱스로서 선택되며; 2개보다 많은 제어 지점들의 경우, 가장 빈번하게 나타나는 참조 프레임 인덱스가 선택되며, 그리고, 복수의 참조 프레임 인덱스들이 나타나는 횟수들이 동일하면, 최소 참조 프레임 인덱스가 결합의 참조 프레임 인덱스로서 선택된다), 제어 지점 모션 벡터가 스케일링된다. 스케일링 이후 모든 제어 지점들의 모션 정보가 일치하면, 그 결합이 유효하지 않다.
선택적으로, 본 발명의 실시형태들에서, 후보 모션 벡터 리스트는 대안적으로 패딩될 수도 있다. 예를 들어, 전술한 횡단 프로세스 이후, 후보 모션 벡터 리스트의 길이가 최대 리스트 길이 (예를 들어, MaxAffineNumMrgCand) 미만이면, 후보 모션 벡터 리스트는 리스트 길이가 최대 리스트 길이와 동일하지 않을 때까지 패딩될 수도 있다.
패딩은 패딩 제로 모션 벡터에 의해, 또는 기존 리스트 내 기존 후보 모션 정보를 결합하거나 또는 가중 평균함으로써, 수행될 수도 있거나. 후보 모션 벡터 리스트를 패딩하는 다른 방법이 또한 본 발명의 실시형태들에도 적용가능할 수도 있다는 점에 유의해야 한다. 세부 사항들은 본원에서 설명되지 않는다.
기존 해결책에서, 상속된 제어 지점 모션 벡터 예측 방법에 대해, 동일한 이미지 시퀀스에 사용되는 비-병진 모션 모델이 고정되며, 이미지에서의 상이한 블록들에 사용되는 아핀 변환 모델들의 파라미터들의 양이 동일하다. 다시 말해서, 아핀 코딩 블록에 사용되는 아핀 변환 모델의 파라미터들의 양은 현재의 블록에 사용되는 아핀 변환 모델의 파라미터들의 양과 동일하다. 따라서, 아핀 코딩 블록의 제어 지점들의 양은 현재의 블록의 제어 지점들의 양과 동일하며, 아핀 코딩 블록에서의 제어 지점의 위치는 현재의 블록에서의 제어 지점의 위치와 동일하다.
예를 들어, 4-파라미터 아핀 변환 모델이 아핀 코딩 블록에 사용되면, 4-파라미터 아핀 변환 모델이 또한 현재의 블록에 사용된다. 디코더 측은 현재의 블록의 4-파라미터 아핀 변환 모델에 기초하여 현재의 블록의 각각의 서브블록의 모션 벡터 정보를 획득하여, 각각의 서브블록을 복원한다.
다른 예로, 8-파라미터 이중선형의 모델이 아핀 코딩 블록에 사용되면, 8-파라미터 이중선형의 모델이 또한 현재의 블록에 사용된다. 디코더 측은 현재의 블록의 8-파라미터 이중선형의 모델에 기초하여 현재의 블록의 각각의 서브블록의 모션 벡터 정보를 획득하여, 각각의 서브블록을 복원한다.
실제는 이미지에서의 상이한 블록들의 아핀 모션이 상이할 수도 있다 (즉, 현재의 블록의 아핀 모션이 아핀 코딩 블록의 아핀 모션과 상이할 수도 있다)는 것을 나타낸다. 따라서, 현재의 블록이 아핀 코딩 블록과 동일한 순서를 갖는 아핀 변환 모델에 기초하여 파싱되어 (예를 들어, 후보 모션 벡터 리스트가 확립되어) 복원되는 기존 방법에서, 현재의 블록을 예측하는데 있어서의 코딩 효율 및 정확도가 높지 않으며, 여전히 일부 시나리오들에서 사용자 요구사항을 만족시키기 어렵다.
기존 해결책의 결함들을 극복하고 코딩 프로세스에서의 예측 동안 코딩 효율 및 정확도를 향상시키기 위해, 상속된 제어 지점 모션 벡터 예측 방법이 본 발명의 실시형태들에서 향상된다. 2개의 향상된 해결책들: 제 1 향상된 해결책 및 제 2 향상된 해결책이 있다. 제 1 향상된 해결책은 또한 제 1 모션 모델-기반 모션 벡터 예측 방법으로서 지칭될 수도 있으며, 제 2 향상된 해결책은 또한 제 2 모션 모델-기반 모션 벡터 예측 방법으로서 지칭될 수도 있다. 다음은 2개의 방법들을 별도로 설명한다.
(5) 제 1 모션 모델-기반 모션 벡터 예측 방법. 제 1 모션 모델-기반 모션 벡터 예측 방법에서, 이미지 시퀀스에서 이미지의 상이한 블록들에 사용되는 아핀 변환 모델들이 제한되지 않는다, 즉, 상이한 아핀 변환 모델들이 상이한 블록들에 사용될 수도 있다. 현재의 블록을 인코딩 및 디코딩하는 프로세스에서, 현재의 블록에 사용되는 아핀 변환 모델이 먼저 결정된다. 현재의 블록에 사용되는 아핀 변환 모델은 미리 정의될 수도 있거나, 또는 현재의 블록의 실제 모션 상태 또는 실제 요구사항에 기초하여, 복수의 아핀 변환 모델들 중에서 선택될 수도 있다. 2×N-파라미터 아핀 변환 모델이 현재의 블록의 이웃하는 블록 (또한, 인코더 측에서는 아핀 코딩 블록으로 또는 디코더 측에서는 아핀 디코딩 블록으로 지칭됨)에 사용되고, 2×K-파라미터 아핀 변환 모델이 현재의 블록에 사용되고, N≠K이라고 가정한다. 이 경우, 현재의 블록의 K개의 제어 지점들의 모션 벡터들 (후보 모션 벡터들)은 이웃하는 블록에 사용되는 2×N-파라미터 아핀 변환 모델에 기초하여 내삽 계산을 통해서 획득된다.
다음은 현재의 블록의 제어 지점의 후보 모션 벡터를 결정하는 프로세스를 설명하기 위한 일 예로서 도 10에 나타낸 A1을 이용한다. 결정하는 프로세스는 디코더 측의 관점에서 주로 설명된다. 이 경우, A1이 위치되는 이웃하는 블록은 아핀 디코딩 블록이다. 인코더 측 상에서의 구현은 유추에 의해 추론될 수도 있음을 알 수도 있다. 다시 말해서, 인코더 측 상에서, 현재의 블록의 이웃하는 블록은 아핀 코딩 블록이다. 구현예에 관한 세부 사항들은 본 명세서에서 다시 설명되지 않는다.
예를 들어, 6-파라미터 아핀 변환 모델이 A1이 위치되는 아핀 디코딩 블록에 사용되고 4-파라미터 아핀 변환 모델이 현재의 블록에 사용되면, 아핀 디코딩 블록의 좌상단 모서리 (x4, y4)의 모션 벡터 (vx4, vy4), 아핀 디코딩 블록의 우상단 모서리 (x5, y5)의 모션 벡터 (vx5, vy5), 및 아핀 디코딩 블록의 좌하단 모서리 (x6, y6)의 모션 벡터 (vx6, vy6)이 획득된다. 6-파라미터 아핀 변환 모델에 대한 다음 수식들 (27) 및 (28)에 따라, 내삽 계산이 아핀 디코딩 블록의 전술한 3개의 제어 지점들의 모션 벡터들로 구성되는 6-파라미터 아핀 변환 모델을 이용하여 별개로 수행되어, 현재의 블록의 좌상단 모서리 (x0, y0)의 모션 벡터 (vx0, vy0) 및 현재의 블록의 우상단 모서리 (x1, y1)의 모션 벡터 (vx1, vy1)을 획득한다:
(27)
(28)
다른 예로, 4-파라미터 아핀 변환 모델이 A1이 위치되는 아핀 디코딩 블록에 사용되고 6-파라미터 아핀 변환 모델이 현재의 블록에 사용되면, 아핀 디코딩 블록의 좌상단 모서리 (x4, y4)의 모션 벡터 (vx4, vy4) 및 아핀 디코딩 블록의 우상단 모서리 (x5, y5)의 모션 벡터 (vx5, vy5)가 획득된다. 이 경우, 아핀 디코딩 블록의 2개의 제어 지점들의 모션 벡터들이 획득된다: 좌상단 제어 지점 (x4, y4)의 모션 벡터 (vx4, vy4) 및 우상단 제어 지점 (x5, y5)의 모션 벡터 (vx5, vy5). 4-파라미터 아핀 변환 모델에 대한 다음 수식들 (29), (30), 및 (31)에 따라, 내삽 계산이 아핀 디코딩 블록의 2개의 제어 지점들의 모션 벡터들로 구성되는 4-파라미터 아핀 변환 모델을 이용하여 별개로 수행되어, 현재의 블록의 좌상단 모서리 (x0, y0)의 모션 벡터 (vx0, vy0), 현재의 블록의 우상단 모서리 (x1, y1)의 모션 벡터 (vx1, vy1), 및 현재의 블록의 좌하단 모서리 (x2, y2)의 모션 벡터 (vx2, vy2)를 획득한다:
(29)
(30)
(31)
전술한 예들이 단지 본 발명의 기술적인 해결책들을 설명하는데 사용될 뿐만 아니라, 본 발명을 한정하려는 것이 아니라는 점에 유의해야 한다. 게다가, 다른 아핀 변환 모델들이 현재의 블록 및 이웃하는 블록에 사용되는 (예를 들어, 4-파라미터 아핀 변환 모델은 현재의 블록에 사용되고 8-파라미터 이중선형의 모델은 이웃하는 블록에 사용되거나; 또는 6-파라미터 아핀 변환 모델은 현재의 블록에 사용되고 8-파라미터 이중선형의 모델은 이웃하는 블록에 사용되는) 경우에 대해서는, 전술한 예들의 구현예를 참조한다. 세부 사항들은 본원에서 다시 설명되지 않는다.
또한, 이 해결책에서, 현재의 블록의 모델 파라미터들의 양이 이웃하는 블록의 모델 파라미터들의 양과 동일한지 여부가 제한되지 않는다는 점에 유의해야 한다. 따라서, 일부 구현 시나리오들에서, 현재의 블록의 모델 파라미터들의 양은 또한 이웃하는 블록의 모델 파라미터들의 양과 동일할 수도 있다.
예를 들어, 4-파라미터 아핀 변환 모델이 A1이 위치되는 아핀 디코딩 블록에 사용되고 4-파라미터 아핀 변환 모델이 또한 현재의 블록에 사용되면, 아핀 디코딩 블록의 좌상단 모서리 (x4, y4)의 모션 벡터 (vx4, vy4) 및 아핀 디코딩 블록의 우상단 모서리 (x5, y5)의 모션 벡터 (vx5, vy5)가 획득된다. 4-파라미터 아핀 변환 모델에 대한 다음 수식들 (32) 및 (33)에 따라, 내삽 계산이 아핀 디코딩 블록의 전술한 2개의 제어 지점들의 모션 벡터들로 구성되는 4-파라미터 아핀 변환 모델을 이용하여 별개로 수행되어, 현재의 블록의 좌상단 모서리 (x0, y0)의 모션 벡터 (vx0, vy0) 및 현재의 블록의 우상단 모서리 (x1, y1)의 모션 벡터 (vx1, vy1)을 획득한다:
(32)
(33)
다른 예로, 6-파라미터 아핀 변환 모델이 A1이 위치되는 아핀 디코딩 블록에 사용되고 6-파라미터 아핀 변환 모델이 현재의 블록에 사용되면, 아핀 디코딩 블록의 좌상단 모서리 (x4, y4)의 모션 벡터 (vx4, vy4), 아핀 디코딩 블록의 우상단 모서리 (x5, y5)의 모션 벡터 (vx5, vy5), 및 아핀 디코딩 블록의 좌하단 모서리 (x6, y6)의 모션 벡터 (vx6, vy6)이 획득된다. 6-파라미터 아핀 변환 모델에 대한 다음 수식들 (34), (35), 및 (36)에 따라, 내삽 계산이 아핀 디코딩 블록의 3개의 제어 지점들로 구성되는 6-파라미터 아핀 변환 모델을 이용하여 별개로 수행되어, 현재의 블록의 좌상단 모서리 (x0, y0)의 모션 벡터 (vx0, vy0), 현재의 블록의 우상단 모서리 (x1, y1)의 모션 벡터 (vx1, vy1), 및 현재의 블록의 좌하단 모서리 (x2, y2)의 모션 벡터 (vx2, vy2)를 획득한다:
(34)
(35)
(36)
전술한 예들이 단지 본 발명의 기술적인 해결책들을 설명하는데 사용될 뿐만 아니라, 본 발명을 한정하려는 것이 아니라는 점에 유의해야 한다. 게다가, 다른 아핀 변환 모델들이 현재의 블록 및 이웃하는 블록에 사용되는 (예를 들어, 8-파라미터 아핀 변환 모델이 현재의 블록 및 이웃하는 블록 양자에 사용되는) 경우에 대해서는, 전술한 예들의 구현예를 참조한다. 세부 사항들은 본원에서 다시 설명되지 않는다.
본 발명의 제 1 모션 모델-기반 모션 벡터 예측 방법에 따르면, 현재의 블록을 파싱하는 단계에서 (예를 들어, 후보 모션 벡터 리스트를 구성하는 단계에서), 이웃하는 블록의 아핀 변환 모델이 현재의 블록의 아핀 변환 모델을 구성하는데 사용될 수 있다. 2개의 블록들의 아핀 변환 모델들은 상이할 수도 있다. 현재의 블록의 아핀 변환 모델은 현재의 블록의 실제 모션 상태/실제 요구사항을 더 잘 만족시킨다. 따라서, 이 해결책은 현재의 블록을 예측하는데 있어서의 코딩 효율 및 정확도를 향상시키고 사용자 요구사항을 만족시킬 수 있다.
(6) 제 2 모션 모델-기반 모션 벡터 예측 방법. 제 2 모션 모델-기반 모션 벡터 예측 방법에서, 이미지 시퀀스에서 이미지의 상이한 블록들에 사용되는 아핀 변환 모델들이 제한되지 않으며, 동일한 아핀 변환 모델 또는 상이한 아핀 변환 모델들이 상이한 블록들에 사용될 수도 있다. 다시 말해서, 2×N-파라미터 아핀 변환 모델이 현재의 블록의 이웃하는 블록 (또한, 인코더 측 상에서는 아핀 코딩 블록으로 또는 디코더 측 상에서는 아핀 디코딩 블록으로 지칭됨)에 사용되고 2×K-파라미터 아핀 변환 모델이 현재의 블록에 사용되면, N은 K와 동일하거나 또는 동일하지 않을 수도 있다. 파싱 단계 (예를 들어, 후보 모션 벡터 리스트를 구성하는 단계)에서, 현재의 블록의 제어 지점들 (예를 들어, 2개, 3개, 또는 4개의 제어 지점들)은 "(3)"에서 설명된 상속된 제어 지점 모션 벡터 예측 방법 또는 "(5)"에서 설명된 제 1 모션 모델-기반 모션 벡터 예측 방법에 따라서 획득될 수도 있다. 그 후, 현재의 블록을 복원하는 단계에서, 6-파라미터 아핀 변환 모델이 각각의 서브블록을 복원하기 위해, 현재의 블록의 제어 지점들에 기초하여 현재의 블록의 각각의 서브블록의 모션 벡터 정보를 획득하는데 균일하게 사용된다.
다음은 또한 (디코더 측의 관점에서) 현재의 블록의 제어 지점의 후보 모션 벡터를 결정하는 프로세스를 설명하기 위한 일 예로서 도 6에 나타낸 A1을 이용한다. 다른 경우들은 유추에 의해 추론된다.
예를 들어, 4-파라미터 아핀 변환 모델이 파싱 단계에서 현재의 블록에 사용되며, 4-파라미터 아핀 변환 모델 또는 다른 파라미터 아핀 모델이 이웃하는 블록에 사용될 수도 있다. 따라서, 현재의 블록의 2개의 제어 지점들의 모션 벡터들, 예를 들어, 현재의 블록의 좌상단 제어 지점 (x4, y4)의 모션 벡터 (vx4, vy4) 및 현재의 블록의 우상단 제어 지점 (x5, y5)의 모션 벡터 (vx5, vy5)은 "(3)"에서 설명된 상속된 제어 지점 모션 벡터 예측 방법 또는 "(5)"에서 설명된 제 1 모션 모델-기반 모션 벡터 예측 방법에 따라서 획득될 수도 있다. 그 후, 현재의 블록을 복원하는 단계에서, 6-파라미터 아핀 변환 모델이 현재의 블록의 2개의 제어 지점들의 모션 벡터들에 기초하여 구성되어야 한다.
예를 들어, 현재의 블록의 좌상단 제어 지점 (x0, y0)의 모션 벡터 (vx0, vy0) 및 현재의 블록의 우상단 제어 지점 (x1, y1)의 모션 벡터 (vx1, vy1)에 기초하여, 제 3 제어 지점의 모션 벡터는 다음 수식 (40)에 따라서 획득될 수도 있다. 제 3 제어 지점의 모션 벡터는 예를 들어, 현재의 블록의 좌하단 모서리 (x2, y2)의 모션 벡터 (vx2, vy2)이다.
(40)
W는 현재의 블록의 폭을 나타내며, H는 현재의 블록의 높이를 나타낸다.
그 후, 복원 단계에서의 현재의 블록의 6-파라미터 아핀 모델이 현재의 블록의 좌상단 제어 지점 (x0, y0)의 모션 벡터 (vx0, vy0), 현재의 블록의 우상단 제어 지점 (x1, y1)의 모션 벡터 (vx1, vy1), 및 현재의 블록의 좌하단 제어 지점 (x2, y2)의 모션 벡터 (vx2, vy2)를 이용하여 획득된다. 6-파라미터 아핀 모델에 대한 수식은 다음 수식 (37)에 나타낸다:
(37)
그 후, 현재의 블록의 좌상단 모서리 (또는, 다른 참조 지점)에 대한 현재의 블록의 각각의 서브블록 (또는, 각각의 모션 보상 유닛)의 중심 지점의 좌표들 이 각각의 서브블록 (또는, 각각의 모션 보상 유닛)의 중심 지점의 모션 정보를 획득하고 그후 각각의 서브블록을 복원하기 위해, 전술한 수식 (37)으로 치환된다.
전술한 예가 단지 본 발명의 기술적인 해결책들을 설명하는데 사용될 뿐만 아니라, 본 발명을 한정하려는 것이 아니라는 점에 유의해야 한다. 게다가, 다른 아핀 변환 모델 (예를 들어, 6-파라미터 아핀 변환 모델 또는 8-파라미터 이중선형의 모델)이 파싱 단계에서 현재의 블록에 사용되는 경우에 대해서는, 전술한 예의 구현예를 참조한다. 세부 사항들은 본원에서 다시 설명되지 않는다.
본 발명의 제 2 모션 모델-기반 모션 벡터 예측 방법에 따르면, 현재의 블록을 복원하는 단계에서, 6-파라미터 아핀 변환 모델이 현재의 블록을 예측하는데 균일하게 사용될 수 있다. 현재의 블록의 아핀 모션을 설명하는 모션 모델의 더 큰 양의 파라미터들은 더 높은 정밀도 및 더 높은 계산 복잡성을 표시한다. 이 해결책에서는, 복원 단계에서 구성된 6-파라미터 아핀 변환 모델은 아핀 변환, 예컨대 이미지 블록의 변환, 스케일링, 및 회전을 기술하고, 모델 복잡성과 모델링 능력 사이의 우수한 균형을 달성할 수 있다. 따라서, 이 해결책은 현재의 블록을 예측하는데 있어서의 코딩 효율 및 정확도를 향상시키고 사용자 요구사항을 만족시킬 수 있다.
본 발명의 일부 실시형태들에서, 제 1 향상된 해결책 및 제 2 향상된 해결책 양자가 대안적으로 구현에 사용될 수도 있음을 알 수도 있다.
예를 들어, 4-파라미터 아핀 변환 모델이 파싱 단계에서 현재의 블록에 사용되고 6-파라미터 아핀 변환 모델이 이웃하는 블록에 사용될 때, 현재의 블록의 2개의 제어 지점들의 모션 벡터들은 "(5)"에서 설명된 제 1 모션 모델-기반 모션 벡터 예측 방법에 따라서 획득될 수도 있다. 그 후, "(6)"에서 설명된 제 2 모션 모델-기반 모션 벡터 예측 방법에 따르면, 2개의 제어 지점들의 모션 벡터들이 그후 현재의 블록의 각각의 서브블록을 복원하기 위해, 복원 단계에서 6-파라미터 아핀 변환 모델로 변환된다.
다른 예로, 6-파라미터 아핀 변환 모델이 파싱 단계에서 현재의 블록에 사용되고 4-파라미터 아핀 변환 모델이 이웃하는 블록에 사용될 때, 현재의 블록의 3개의 제어 지점들의 모션 벡터들은 "(5)"에서 설명된 제 1 모션 모델-기반 모션 벡터 예측 방법에 따라서 획득될 수도 있다. 그 후, "(6)"에서 설명된 제 2 모션 모델-기반 모션 벡터 예측 방법에서의 수식 (32)에 따라, 3개의 제어 지점들의 모션 벡터들이 복원 단계에서 6-파라미터 아핀 변환 모델을 획득하고 그후 현재의 블록의 각각의 서브블록을 복원하기 위해, 결합될 수도 있다.
확실히, 제 1 향상된 해결책 및 제 2 향상된 해결책 양자가 구현예에 사용되는 해결책은 대안적으로, 다른 실시형태로서 구현될 수도 있다. 세부 사항들은 본원에서 설명되지 않는다.
전술한 설명에 기초하여, 다음은 본 발명의 실시형태들에서 아핀 변환 모델-기반 AMVP 모드 (아핀 AMVP 모드) 및 아핀 변환 모델-기반 병합 모드 (아핀 병합 모드)를 추가로 설명한다.
아핀 변환 모델-기반 AMVP 모드가 먼저 설명된다.
아핀 변환 모델-기반 AMVP 모드에 대해, 일 실시형태에서, AMVP 모드에 기초한 후보 모션 벡터 리스트 (또는, 제어 지점 모션 벡터 예측자 후보 리스트로 지칭됨)는 또한 제 1 모션 모델-기반 모션 벡터 예측 방법 및/또는 구성된 제어 지점 모션 벡터 예측 방법을 이용하여 구성될 수도 있다. 다른 실시형태에서, AMVP 모드에 기초한 후보 모션 벡터 리스트 (또는, 제어 지점 모션 벡터 예측자 후보 리스트로 지칭됨)는 상속된 제어 지점 모션 벡터 예측 방법 및/또는 구성된 제어 지점 모션 벡터 예측 방법을 이용하여 구성될 수도 있다. 리스트에서의 제어 지점 모션 벡터 예측자들은 (예를 들어, 4-파라미터 아핀 변환 모델이 현재의 블록에 사용될 때) 2개의 후보 제어 지점 모션 벡터들을 포함하거나, 또는 (예를 들어, 6-파라미터 아핀 변환 모델이 현재의 블록에 사용될 때) 3개의 후보 제어 지점 모션 벡터들을 포함하거나, 또는 (예를 들어, 8-파라미터 이중선형의 모델이 현재의 블록에 사용될 때) 4개의 후보 제어 지점 모션 벡터들을 포함할 수도 있다.
가능한 애플리케이션 시나리오에서, 제어 지점 모션 벡터 예측자 후보 리스트는 특정의 규칙에 따라서 추가로 프루닝되어 분류될 수도 있으며, 특정의 양의 제어 지점 모션 벡터 예측자 후보들을 획득하기 위해 트렁케이트되거나 또는 패딩될 수도 있다.
그 후, 인코더 측 상에서, 인코더 (예를 들어, 비디오 인코더 (100))가 제어 지점 모션 벡터 예측자 후보 리스트에서의 각각의 제어 지점 모션 벡터 예측자를 이용하여 그리고 전술한 수식 (3), (5), 또는 (7)에 따라서 현재의 코딩 블록의 각각의 모션 보상 서브유닛의 모션 벡터를 획득한다. 또, 인코더는 각각의 모션 보상 서브유닛의 모션 벡터가 가리키는 참조 프레임에서 대응하는 위치의 픽셀 값을 획득하고, 픽셀 값을 모션 보상 서브유닛의 픽셀 예측자로서 이용하여 아핀 변환 모델-기반 모션 보상을 수행한다. 현재의 코딩 블록에서의 각각의 샘플의 원래 값과 예측자 사이의 평균 차이가 계산된다. 최소 평균 차이에 대응하는 제어 지점 모션 벡터 예측자가 최적의 제어 지점 모션 벡터 예측자로서 선택되며, 현재의 코딩 블록의 2개, 3개, 또는 4개의 제어 지점들의 모션 벡터 예측자들로서 사용된다. 게다가, 인코더 측 상에서, 특정의 탐색 범위 내에서 모션 탐색을 수행하여 제어 지점 모션 벡터 (control point motion vectors, CPMV)를 획득하기 위해 제어 지점 모션 벡터 예측자가 탐색 시작 지점으로서 추가로 사용될 수도 있으며, 제어 지점 모션 벡터와 제어 지점 모션 벡터 예측자 사이의 차이 (control point motion vectors differences, CPMVD)가 계산된다. 그 후, 인코더는 제어 지점 모션 벡터 예측자 후보 리스트에서 제어 지점 모션 벡터 예측자의 위치를 표시하는 인덱스 값 및 CPMVD를 비트스트림으로 인코딩하고, 비트스트림을 디코더 측으로 전송한다.
디코더 측 상에서, 디코더 (예를 들어, 비디오 디코더 200)는 비트스트림을 파싱하여 인덱스 값 및 제어 지점 모션 벡터 차이 (CPMVD)를 획득하고, 인덱스 값에 기초하여 제어 지점 모션 벡터 예측자 후보 리스트에서 제어 지점 모션 벡터 예측자 (control point motion vectors predictor, CPMVP)를 결정하고, CPMVP 및 CPMVD를 가산하여 제어 지점 모션 벡터를 획득한다.
다음은 아핀 변환 모델-기반 병합 모드를 설명한다.
아핀 변환 모델-기반 병합 모드에 대해, 일 실시형태에서, 병합 모드에 대한 후보 모션 벡터 리스트 (또는, 제어 지점 모션 벡터 병합 후보 리스트로 지칭됨)는 상속된 제어 지점 모션 벡터 예측 방법 및/또는 구성된 제어 지점 모션 벡터 예측 방법을 이용하여 구성될 수도 있다. 다른 실시형태에서, 병합 모드에 대한 후보 모션 벡터 리스트 (또는, 제어 지점 모션 벡터 병합 후보 리스트로 지칭됨)는 대안적으로, 제 1 모션 모델-기반 모션 벡터 예측 방법 및/또는 구성된 제어 지점 모션 벡터 예측 방법을 이용하여 구성될 수도 있다.
가능한 애플리케이션 시나리오에서, 제어 지점 모션 벡터 병합 후보 리스트는 특정의 규칙에 따라서 추가로 프루닝되어 분류될 수도 있으며, 특정의 양의 제어 지점 모션 벡터 후보들을 획득하기 위해 트렁케이트되거나 또는 패딩될 수도 있다.
그 후, 인코더 측 상에서, 인코더 (예를 들어, 비디오 인코더 (100))는 병합 후보 리스트에서의 각각의 제어 지점 모션 벡터를 이용하여 그리고 전술한 수식 (3), (5), 또는 (7)에 따라서 현재의 코딩 블록의 각각의 모션 보상 서브유닛 (M × N의 사이즈를 가지며 특정의 방법에 따른 분할을 통해 획득된 샘플 또는 픽셀 블록)의 모션 벡터를 획득한다. 또, 인코더는 각각의 모션 보상 서브유닛의 모션 벡터가 가리키는 참조 프레임에서의 위치의 픽셀 값을 획득하고, 픽셀 값을 모션 보상 서브유닛의 픽셀 예측자로서 이용하여 아핀 모션 보상을 수행한다. 현재의 코딩 블록에서의 각각의 샘플의 원래 값과 예측자 사이의 평균 차이가 계산된다. 최소 평균 차이에 대응하는 제어 지점 모션 벡터가 현재의 코딩 블록의 2개, 3개, 또는 4개의 제어 지점들의 모션 벡터들로서 선택된다. 후보 리스트에서 제어 지점 모션 벡터의 위치를 표시하는 인덱스 번호가 비트스트림으로 인코딩되어 디코더 측으로 전송된다.
디코더 측 상에서, 디코더 (예를 들어, 비디오 디코더 (200))는 비트스트림을 파싱하여 인덱스 값을 획득하고, 인덱스 값에 기초하여 제어 지점 모션 벡터 병합 후보 리스트에서 제어 지점 모션 벡터 (control point motion vectors, CPMVP)를 결정한다.
게다가, 본 발명의 실시형태들에서, "적어도 하나의"는 하나 이상을 의미하고, "복수의"는 2 이상을 의미한다는 점에 유의해야 한다. 용어 "및/또는"은 연관된 오브젝트들을 설명하는 연관 관계를 기술하며, 3개의 관계들이 존재할 수도 있다는 것을 나타낸다. 예를 들어, A 및/또는 B는 다음 경우들: 단지 A 만이 존재하는 경우, A 및 B 양자가 존재하는 경우, 및 단지 B만이 존재하는 경우를 표시할 수도 있으며, 여기서, A 및 B는 단일 또는 복수일 수도 있다. 캐릭터 "/"는 일반적으로, 연관된 오브젝트들 사이의 "또는" 관계를 표시한다. "다음 항목들 (조각들) 중 적어도 하나" 또는 이의 유사한 표현은 단일 항목 (조각) 또는 복수의 항목들 (조각들)의 임의의 조합을 포함한, 이들 항목들의 임의의 조합을 표시한다. 예를 들어, a, b, 또는 c 중 적어도 하나는 a, b, c, 및 b, 및 c, b 및 c, 또는 a, b, 및 c를 표시할 수도 있으며, 여기서, a, b, 및 c는 단일 또는 복수일 수도 있다.
도 9를 참조한다. 제 1 모션 모델-기반 모션 벡터 예측 방법의 설계 해결책에 기초하여, 본 발명의 일 실시형태는 모션 벡터 예측 방법을 제공한다. 본 방법은 비디오 디코더 (200)에 의해 수행될 수도 있으며, 특히, 비디오 디코더 (200)의 인터 예측기 (210)에 의해 수행될 수도 있다. 비디오 디코더 (200)는 복수의 비디오 프레임들을 갖는 비디오 데이터 스트림에 기초하여, 다음 단계들의 부분 또는 모두를 수행하여, 현재의 비디오 프레임의 현재의 디코딩 블록 (줄여서, 현재의 블록으로 지칭됨)의 각각의 서브블록의 모션 정보를 예측하고 모션 보상을 수행할 수도 있다. 도 9에 나타낸 바와 같이, 본 방법은 다음 단계들을 포함하지만 이에 한정되지 않는다.
단계 601: 비트스트림을 파싱하고 현재의 디코딩 블록의 인터 예측 모드를 결정한다.
구체적으로 설명하면, 디코더 측 상의 비디오 디코더 (200)는 인코더 측으로부터 송신된 비트스트림에서 신택스 엘리먼트를 파싱하여, 인터 예측 모드를 표시하는데 사용되는 표시 정보를 획득하고, 표시 정보에 기초하여 현재의 블록의 인터 예측 모드를 결정할 수도 있다.
현재의 블록의 인터 예측 모드가 아핀 변환 모델-기반 AMVP 모드라고 결정되면, 단계들 602a 내지 606a가 그후 수행된다.
현재의 블록의 인터 예측 모드가 아핀 변환 모델-기반 병합 모드라고 결정되면, 단계들 602b 내지 605b가 그후 수행된다.
단계 602a: 아핀 변환 모델-기반 AMVP 모드에 대한 후보 모션 벡터 리스트를 구성한다.
본 발명의 일부 특정의 실시형태들에서, 현재의 블록의 제어 지점의 후보 모션 벡터는 제 1 모션 모델-기반 모션 벡터 예측 방법을 이용하여 획득되어, AMVP 모드에 대응하는 후보 모션 벡터 리스트에 추가될 수도 있다.
본 발명의 일부 다른 특정의 실시형태들에서, 현재의 블록의 제어 지점의 후보 모션 벡터는 대안적으로, 제 1 모션 모델-기반 모션 벡터 예측 방법 및 구성된 제어 지점 모션 벡터 예측 방법을 이용하여 별개로 획득되어, AMVP 모드에 대응하는 후보 모션 벡터 리스트에 추가될 수도 있다.
4-파라미터 아핀 변환 모델이 현재의 블록에 사용되면, AMVP 모드에 대한 후보 모션 벡터 리스트는 2-튜플 리스트일 수도 있다. 2-튜플 리스트는 4-파라미터 아핀 변환 모델을 구성하는데 사용되는 하나 이상의 2-튜플들을 포함한다.
6-파라미터 아핀 변환 모델이 현재의 블록에 사용되면, AMVP 모드에 대한 후보 모션 벡터 리스트는 트리플릿 리스트일 수도 있다. 트리플릿 리스트는 6-파라미터 아핀 변환 모델을 구성하는데 사용되는 하나 이상의 트리플릿들을 포함한다.
8-파라미터 이중선형의 모델이 현재의 블록에 사용되면, AMVP 모드에 대한 후보 모션 벡터 리스트는 쿼드러플 리스트일 수도 있다. 쿼드러플 리스트는 8-파라미터 이중선형의 모델을 구성하는데 사용되는 하나 이상의 쿼드러플들을 포함한다.
가능한 애플리케이션 시나리오에서, 후보 모션 벡터 2-튜플/트리플릿/쿼드러플 리스트는 특정의 규칙에 따라서 프루닝되어 분류될 수도 있으며, 특정의 양의 후보 모션 벡터 후보들을 획득하기 위해 트렁케이트되거나 또는 패딩될 수도 있다.
제 1 모션 모델-기반 모션 벡터 예측 방법에 대해, 예를 들어, 도 10에 나타낸 바와 같이, 현재의 블록의 이웃하는 블록들은 이웃하는 블록이 위치되는 아핀 디코딩 블록 (예를 들어, 도 10에서 A1이 위치되는 아핀 디코딩 블록)을 발견하기 위해, 도 10에서 A1→B1→B0→A0→B2의 순서로 횡단될 수도 있다. 아핀 디코딩 블록의 아핀 변환 모델이 아핀 디코딩 블록의 제어 지점을 이용하여 구성되고, 그후 현재의 블록의 제어 지점의 후보 모션 벡터 (예를 들어, 후보 모션 벡터 2-튜플/트리플릿/쿼드러플)가 아핀 디코딩 블록의 아핀 변환 모델을 이용하여 유도되어, AMVP 모드에 대응하는 후보 모션 벡터 리스트에 추가된다. 다른 탐색 순서가 또한 본 발명의 실시형태들에 적용가능할 수도 있다는 점에 유의해야 한다. 세부 사항들은 본원에서 설명되지 않는다.
복수의 이웃하는 블록들이 있을 때, 즉, 현재의 블록이 복수의 이웃하는 아핀 디코딩 블록들을 가질 때, 가능한 실시형태에서, 인코더 측 및 디코더 측 양자는 모델 파라미터들의 양이 현재의 블록과 동일한 아핀 디코딩 블록을 이용하여 현재의 블록의 제어 지점의 후보 모션 벡터를 먼저 획득하고, 획득된 후보 모션 벡터를 AMVP 모드에 대응하는 후보 모션 벡터 리스트에 추가할 수 있다는 점에 유의해야 한다. 그 후, 현재의 블록의 제어 지점의 후보 모션 벡터는 모델 파라미터들의 양이 현재의 블록과는 상이한 아핀 디코딩 블록을 이용하여 획득되고, AMVP 모드에 대응하는 후보 모션 벡터 리스트에 추가될 수도 있다. 이러한 방법으로, 현재의 블록의 제어 지점의 후보 모션 벡터이며 모델 파라미터들의 양이 현재의 블록과 동일한 아핀 디코딩 블록을 이용하여 획득되는 후보 모션 벡터가 리스트의 전면 위치에 위치된다. 이러한 설계는 비트스트림으로 송신되는 비트들의 양을 감소시키는 것을 돕는다.
도 10은 일 예로서 사용된다. 현재의 디코딩 블록의 파라미터 모델이 4-파라미터 아핀 변환 모델이라고 가정한다. 현재의 블록의 이웃하는 블록들이 횡단된 후, 4-파라미터 아핀 변환 모델이 B1이 위치되는 아핀 디코딩 블록에 사용되고 6-파라미터 아핀 변환 모델이 A1이 위치되는 아핀 디코딩 블록에 사용되는 것으로 결정된다. 이 경우, 현재의 블록의 2개의 제어 지점들의 모션 벡터들은 B1이 위치되는 아핀 디코딩 블록을 이용하여 먼저 유도되어, 리스트에 추가될 수도 있다. 그 후, 현재의 블록의 2개의 제어 지점들의 모션 벡터들이 A1이 위치되는 아핀 디코딩 블록을 이용하여 유도되어, 리스트에 추가된다.
대안적으로, 현재의 디코딩 블록의 파라미터 모델이 6-파라미터 아핀 변환 모델이라고 가정한다. 현재의 블록의 이웃하는 블록들이 횡단된 후, 6-파라미터 아핀 변환 모델이 A1이 위치되는 아핀 디코딩 블록에 사용되고 4-파라미터 아핀 변환 모델이 B1이 위치되는 아핀 디코딩 블록에 사용되는 것으로 결정된다. 이 경우, 현재의 블록의 3개의 제어 지점들의 모션 벡터들은 A1이 위치되는 아핀 디코딩 블록을 이용하여 먼저 유도되어, 리스트에 추가될 수도 있다. 그 후, 현재의 블록의 3개의 제어 지점들의 모션 벡터들이 B1이 위치되는 아핀 디코딩 블록을 이용하여 유도되어, 리스트에 추가된다.
본 발명의 기술적인 해결책들이 전술한 예들에 한정되지 않으며 다른 이웃하는 블록, 모션 모델, 및 탐색 순서가 또한 본 발명에 적용가능할 수도 있다는 점에 유의해야 한다. 세부 사항들은 본원에서 설명되지 않는다.
단계 602a에서, 상이한 블록들에 사용되는 아핀 변환 모델들은 제한되지 않는다. 다시 말해서, 현재의 블록에 사용되는 아핀 변환 모델의 파라미터들의 양은 아핀 디코딩 블록의 파라미터들의 양과 상이하거나 또는 동일할 수도 있다. 일 실시형태에서, 현재의 블록에 사용되는 아핀 변환 모델은 비트스트림을 파싱하여 결정될 수도 있다. 다시 말해서, 이 경우, 비트스트림은 현재의 블록의 아핀 변환 모델의 표시 정보를 포함한다. 일 실시형태에서, 현재의 블록에 사용되는 아핀 변환 모델은 사전-구성될 수도 있다. 일 실시형태에서, 현재의 블록에 사용되는 아핀 변환 모델은 현재의 블록의 실제 모션 상태 또는 실제 요구사항에 기초하여 복수의 아핀 변환 모델들 중에서 선택될 수도 있다.
구성된 제어 지점 모션 벡터 예측 방법을 이용하여 현재의 블록의 제어 지점의 후보 모션 벡터를 획득하는 것에 관한 일부 내용은 전술한 "(4)"에서 자세히 설명되었다. 본 명세서의 간결성을 위해, 세부 사항들은 본원에서 다시 설명되지 않는다.
제 1 모션 모델-기반 모션 벡터 예측 방법을 이용하여 현재의 블록의 제어 지점의 후보 모션 벡터를 획득하는 것에 관한 일부 내용은 전술한 "(5)"에서 자세히 설명되었다. 본 명세서의 간결성을 위해, 세부 사항들은 본원에서 다시 설명되지 않는다.
제 1 모션 모델-기반 모션 벡터 예측 방법이 사용되는 일부 실시형태들에서, 디코더 측이 현재의 블록의 제어 지점의 후보 모션 벡터를 유도하는 프로세스에서, 아핀 디코딩 블록의 아핀 변환 모델의 플래그 정보 (플래그)가 획득되어야 할 수도 있다는 점에 유의해야 한다. 플래그는 디코더 측 상에 로컬로 미리 저장되며, 그리고, 아핀 디코딩 블록의 아핀 변환 모델이며 아핀 디코딩 블록의 서브블록을 예측하는데 실제로 사용되는 아핀 변환 모델을 표시하기 위해 사용된다.
예를 들어, 애플리케이션 시나리오에서, 디코더 측이 아핀 디코딩 블록의 플래그를 식별함으로써, 아핀 디코딩 블록에 실제로 사용되는 아핀 변환 모델의 모델 파라미터들의 양이 현재의 블록에 사용되는 아핀 변환 모델의 모델 파라미터들의 양과 상이하다(또는, 동일하다)고 결정할 때, 디코더 측이 아핀 디코딩 블록에 실제로 사용되는 아핀 변환 모델을 이용하여 현재의 블록의 제어 지점의 후보 모션 벡터를 유도하도록 트리거된다.
예를 들어, 4-파라미터 아핀 변환 모델이 현재의 블록에 사용될 때, 디코더 측이 아핀 디코딩 블록의 플래그를 식별하고, 아핀 디코딩 블록에 실제로 사용되는 아핀 변환 모델의 모델 파라미터들의 양이 현재의 블록에 사용되는 아핀 변환 모델의 모델 파라미터들의 양과 상이하다, 예를 들어, 6-파라미터 아핀 변환 모델이 아핀 디코딩 블록에 사용된다고 결정하면, 디코더 측은 아핀 디코딩 블록의 3개의 제어 지점들의 모션 벡터들: 좌상단 모서리 (x4, y4)의 모션 벡터 (vx4, vy4), 우상단 모서리 (x5, y5)의 모션 벡터 (vx5, vy5), 및 좌하단 모서리 (x6, y6)의 모션 벡터 (vx6, vy6)을 획득한다. 아핀 디코딩 블록의 3개의 제어 지점들로 구성되는 6-파라미터 아핀 변환 모델에 기초하여, 현재의 블록의 좌상단 및 우상단 제어 지점들의 후보 모션 벡터들이 6-파라미터 아핀 변환 모델에 대한 수식들 (27) 및 (28)에 따라서 각각 유도된다.
다른 예로, 4-파라미터 아핀 변환 모델이 현재의 블록에 사용될 때, 디코더 측이 아핀 디코딩 블록의 플래그를 식별하고, 아핀 디코딩 블록에 실제로 사용되는 아핀 변환 모델의 모델 파라미터들의 양이 현재의 블록에 사용되는 아핀 변환 모델의 모델 파라미터들의 양과 동일하다, 예를 들어, 4-파라미터 아핀 변환 모델이 또한 아핀 디코딩 블록에 사용된다고 결정하면, 디코더 측은 아핀 디코딩 블록의 2개의 제어 지점들의 모션 벡터들: 좌상단 제어 지점 (x4, y4)의 모션 벡터 (vx4, vy4) 및 우상단 제어 지점 (x5, y5)의 모션 벡터 (vx5, vy5)를 획득한다. 아핀 디코딩 블록의 2개의 제어 지점들로 구성되는 4-파라미터 아핀 변환 모델에 기초하여, 현재의 블록의 좌상단 및 우상단 제어 지점들의 후보 모션 벡터들이 4-파라미터 아핀 변환 모델에 대한 수식들 (32) 및 (33)에 따라서 각각 유도된다.
제 1 모션 모델-기반 모션 벡터 예측 방법이 사용되는 일부 다른 실시형태들에서, 디코더 측이 현재의 블록의 제어 지점의 후보 모션 벡터를 유도하는 프로세스에서, 아핀 디코딩 블록의 아핀 변환 모델의 플래그는 요구되지 않을 수도 있다는 점에 유의해야 한다.
예를 들어, 애플리케이션 시나리오에서, 디코더 측이 현재의 블록에 사용되는 아핀 변환 모델을 결정한 후, 디코더 측은 아핀 디코딩 블록의 특정의 양의 제어 지점들 (특정의 양은 현재의 블록의 제어 지점들의 양과 동일하거나 또는 상이하다)을 획득하고, 아핀 디코딩 블록의 특정의 양의 제어 지점들을 이용하여 아핀 변환 모델을 구성하고, 그후 아핀 변환 모델을 이용하여 현재의 블록의 제어 지점의 후보 모션 벡터를 유도한다.
예를 들어, 4-파라미터 아핀 변환 모델이 현재의 블록에 사용될 때, 디코더 측은 아핀 디코딩 블록에 실제로 사용되는 아핀 변환 모델 (아핀 디코딩 블록에 실제로 사용되는 아핀 변환 모델은 4-파라미터 아핀 변환 모델, 6-파라미터 아핀 변환 모델, 또는 8-파라미터 이중선형의 모델일 수도 있다)을 결정하지 않고, 아핀 디코딩 블록의 2개의 제어 지점들의 모션 벡터들: 좌상단 제어 지점 (x4, y4)의 모션 벡터 (vx4, vy4) 및 우상단 제어 지점 (x5, y5)의 모션 벡터 (vx5, vy5)를 직접 획득한다. 아핀 디코딩 블록의 2개의 제어 지점들로 구성되는 4-파라미터 아핀 모델에 기초하여, 현재의 블록의 좌상단 및 우상단 제어 지점들의 모션 벡터들이 4-파라미터 아핀 모델에 대한 수식들 (32) 및 (33)에 따라서 각각 유도된다.
본 발명의 기술적인 해결책들이 전술한 예들에 한정되지 않으며 다른 제어 지점, 모션 모델, 후보 위치, 및 탐색 순서가 또한 본 발명에 적용가능할 수도 있다는 점에 유의해야 한다. 세부 사항들은 본원에서 설명되지 않는다.
단계 603a: 인덱스 값에 기초하여 제어 지점의 최적의 모션 벡터 예측자를 결정한다.
구체적으로 설명하면, 후보 모션 벡터 리스트의 인덱스 값이 비트스트림을 파싱하여 획득되며, 제어 지점의 최적의 모션 벡터 예측자가 인덱스 값에 기초하여, 단계 602a에서 구성된 후보 모션 벡터 리스트에서, 결정된다.
예를 들어, 4-파라미터 아핀 모션 모델이 현재의 블록에 사용되면, 인덱스 값이 파싱을 통해서 획득되며, 2개의 제어 지점들의 최적의 모션 벡터 예측자들이 인덱스 값에 기초하여 후보 모션 벡터 2-튜플 리스트에서 결정된다.
다른 예로, 6-파라미터 아핀 모션 모델이 현재의 블록에 사용되면, 인덱스 값이 파싱을 통해서 획득되며, 3개의 제어 지점들의 최적의 모션 벡터 예측자들이 인덱스 값에 기초하여 후보 모션 벡터 트리플릿 리스트에서 결정된다.
다른 예로, 8-파라미터 이중선형의 모델이 현재의 블록에 사용되면, 인덱스 값이 파싱을 통해서 획득되며, 4개의 제어 지점들의 최적의 모션 벡터 예측자들이 인덱스 값에 기초하여 후보 모션 벡터 쿼드러플 리스트에서 결정된다.
단계 604a: 모션 벡터 차이에 기초하여 제어 지점의 실제 모션 벡터를 결정한다.
구체적으로 설명하면, 제어 지점의 모션 벡터 차이가 비트스트림을 파싱하여 획득되며, 그후 제어 지점의 모션 벡터가 제어 지점의 모션 벡터 차이, 및 제어 지점의 모션 벡터 예측자이고 단계 603a에서 결정되는 최적의 모션 벡터 예측자에 기초하여 획득된다.
예를 들어, 4-파라미터 아핀 모션 모델이 현재의 블록에 사용되면, 현재의 블록의 2개의 제어 지점들의 모션 벡터 차이들이 비트스트림을 디코딩함으로써 획득된다. 예를 들어, 좌상단 제어 지점의 모션 벡터 차이 및 우상단 제어 지점의 모션 벡터 차이는 비트스트림을 디코딩함으로써 획득될 수도 있다. 그 후, 각각의 제어 지점의 모션 벡터 차이 및 모션 벡터 예측자가 제어 지점의 실제 모션 벡터를 획득하기 위해 추가된다. 다시 말해서, 현재의 블록의 좌상단 및 우상단 제어 지점들의 모션 벡터들이 획득된다.
다른 예로, 6-파라미터 아핀 모션 모델이 현재의 블록에 사용되면, 현재의 블록의 3개의 제어 지점들의 모션 벡터 차이들이 비트스트림을 디코딩함으로써 획득된다. 예를 들어, 좌상단 제어 지점의 모션 벡터 차이, 우상단 제어 지점의 모션 벡터 차이, 및 좌하단 제어 지점의 모션 벡터 차이는 비트스트림을 디코딩함으로써 획득될 수도 있다. 그 후, 각각의 제어 지점의 모션 벡터 차이 및 모션 벡터 예측자가 제어 지점의 실제 모션 벡터를 획득하기 위해 추가된다. 다시 말해서, 현재의 블록의 좌상단, 우상단, 및 좌하단 제어 지점들의 모션 벡터들이 획득된다.
본 발명의 이 실시형태에서, 다른 아핀 모션 모델 및 다른 제어 지점 위치가 또한 사용될 수도 있다는 점에 유의해야 한다. 세부 사항들은 본원에서 설명되지 않는다.
단계 605a: 현재의 블록에 사용되는 아핀 변환 모델에 기초하여 현재의 블록의 각각의 서브블록의 모션 벡터를 획득한다.
P×Q 현재의 블록에서의 각각의 M×N 서브블록 (하나의 서브블록이 하나의 모션 보상 유닛과 동일할 수도 있으며, M×N 서브블록의 폭 또는 높이 중 적어도 하나가 현재의 블록의 폭 또는 높이 미만이다)에 대해, 모션 보상 유닛 내 사전 설정된 위치에서의 샘플의 모션 정보가 모션 보상 유닛 내 모든 샘플들의 모션 정보를 나타내는데 사용될 수도 있다. 모션 보상 유닛의 사이즈가 M×N이라 가정하면, 사전 설정된 위치에서의 샘플은 중심 지점 (M/2, N/2), 좌상단 샘플 (0, 0), 우상단 샘플 (M-1, 0), 또는 모션 보상 유닛의 다른 위치에서의 샘플일 수도 있다.
다음은 설명을 위한 일 예로서 모션 보상 유닛의 중심 지점을 이용한다. 도 11a 및 도 11b를 참조한다.
도 11a는 현재의 블록 및 현재의 블록의 모션 보상 유닛의 일 예를 나타낸다. 도면에서의 각각의 작은 박스는 하나의 모션 보상 유닛을 나타낸다. 도면에서, 각각의 모션 보상 유닛의 사양은 4×4이며, 각각의 모션 보상 유닛에서의 그레이 지점은 모션 보상 유닛의 중심 지점을 나타낸다. 도 11a에서, V0은 현재의 블록의 좌상단 제어 지점의 모션 벡터를 나타내며, V1은 현재의 블록의 우상단 제어 지점의 모션 벡터를 나타내고, V2는 현재의 블록의 좌하단 제어 지점의 모션 벡터를 나타낸다.
도 11b는 다른 현재의 블록 및 현재의 블록의 모션 보상 유닛의 일 예를 나타낸다. 도면에서의 각각의 작은 박스는 하나의 모션 보상 유닛을 나타낸다. 도면에서, 각각의 모션 보상 유닛의 사양은 8×8이며, 각각의 모션 보상 유닛에서의 그레이 지점은 모션 보상 유닛의 중심 지점을 나타낸다. 도 11b에서, V0은 현재의 블록의 좌상단 제어 지점의 모션 벡터를 나타내고, V1은 현재의 블록의 우상단 제어 지점의 모션 벡터를 나타내며, V2는 현재의 블록의 좌하단 제어 지점의 모션 벡터를 나타낸다.
현재의 블록의 좌상단 픽셀에 대한 모션 보상 유닛의 중심 지점의 좌표들은 다음 수식 (38)에 따라서 계산될 수도 있다:
(38)
전술한 수식에서, i는 수평 방향에서의 (좌측으로부터 우측으로) i번째 모션 보상 유닛이며, j는 수직 방향에서의 (상부로부터 하부로) j번째 모션 보상 유닛이며, 는 현재의 아핀 디코딩 블록의 좌상단 제어 지점에서의 픽셀에 대한 (i, j)번째 모션 보상 유닛의 중심 지점의 좌표들을 표시한다.
6-파라미터 아핀 모션 모델이 현재의 아핀 디코딩 블록에 사용되면, 는 각각의 모션 보상 유닛의 중심 지점의 모션 벡터를 획득하기 위해 6-파라미터 아핀 모션 모델에 대한 다음 수식 (37)로 치환되며, 획득된 모션 벡터가 모션 보상 유닛에서의 모든 샘플들의 모션 벡터들 로서 사용된다:
(37)
4-파라미터 아핀 모션 모델이 현재의 아핀 디코딩 블록에 사용되면, 는 각각의 모션 보상 유닛의 중심 지점의 모션 벡터를 획득하기 위해 4-파라미터 아핀 모션 모델에 대한 다음 수식 (39)로 치환되며, 획득된 모션 벡터가 모션 보상 유닛에서의 모든 샘플들의 모션 벡터들 로서 사용된다:
(39)
단계 606a: 서브블록의 결정된 모션 벡터에 기초하여 각각의 서브블록에 대한 모션 보상을 수행하여, 서브블록의 픽셀 예측자를 획득한다.
단계 602b: 아핀 변환 모델-기반 병합 모드에 대한 후보 모션 벡터 리스트를 구성한다.
본 발명의 일부 특정의 실시형태들에서, 현재의 블록의 제어 지점의 후보 모션 벡터는 대안적으로, 제 1 모션 모델-기반 모션 벡터 예측 방법을 이용하여 획득되어, 병합 모드에 대응하는 후보 모션 벡터 리스트에 추가될 수도 있다.
본 발명의 일부 다른 특정의 실시형태들에서, 현재의 블록의 제어 지점의 후보 모션 벡터는 대안적으로, 제 1 모션 모델-기반 모션 벡터 예측 방법 및 구성된 제어 지점 모션 벡터 예측 방법을 이용하여 별개로 획득되어, 병합 모드에 대응하는 후보 모션 벡터 리스트에 추가될 수도 있다.
이와 유사하게, 병합 모드에 대응하는 후보 모션 벡터 리스트에 대해, 4-파라미터 아핀 변환 모델이 현재의 블록에 사용되면, 후보 모션 벡터 리스트는 2-튜플 리스트일 수도 있다. 2-튜플 리스트는 4-파라미터 아핀 변환 모델을 구성하는데 사용되는 하나 이상의 2-튜플들을 포함한다.
6-파라미터 아핀 변환 모델이 현재의 블록에 사용되면, 후보 모션 벡터 리스트는 트리플릿 리스트일 수도 있다. 트리플릿 리스트는 6-파라미터 아핀 변환 모델을 구성하는데 사용되는 하나 이상의 트리플릿들을 포함한다.
8-파라미터 이중선형의 모델이 현재의 블록에 사용되면, 후보 모션 벡터 리스트는 쿼드러플 리스트일 수도 있다. 쿼드러플 리스트는 8-파라미터 이중선형의 모델을 구성하는데 사용되는 하나 이상의 쿼드러플들을 포함한다.
가능한 애플리케이션 시나리오에서, 후보 모션 벡터 2-튜플/트리플릿/쿼드러플 리스트는 특정의 규칙에 따라서 프루닝되어 분류될 수도 있으며, 특정의 양의 후보 모션 벡터 후보들을 획득하기 위해 트렁케이트되거나 또는 패딩될 수도 있다.
이와 유사하게, 제 1 모션 모델-기반 모션 벡터 예측 방법에 대해, 예를 들어, 도 10에 나타낸 바와 같이, 현재의 블록의 이웃하는 블록들은 이웃하는 블록이 위치되는 아핀 디코딩 블록을 발견하기 위해, 도 10에서 A1→B1→B0→A0→B2의 순서로 횡단될 수도 있다. 아핀 디코딩 블록의 아핀 변환 모델이 아핀 디코딩 블록의 제어 지점을 이용하여 구성되며, 그후 현재의 블록의 제어 지점의 후보 모션 벡터 (예를 들어, 후보 모션 벡터 2-튜플/트리플릿/쿼드러플)가 아핀 디코딩 블록의 아핀 변환 모델을 이용하여 유도되어, 병합 모드에 대응하는 후보 모션 벡터 리스트에 추가된다. 다른 탐색 순서가 또한 본 발명의 실시형태들에 적용가능할 수도 있다는 점에 유의해야 한다. 세부 사항들은 본원에서 설명되지 않는다.
구체적으로 설명하면, 전술한 횡단 프로세스에서, 후보 모션 벡터 리스트가 비어있으면, 제어 지점의 후보 모션 정보가 후보 리스트에 추가된다. 그렇지 않으면, 후보 모션 벡터 리스트에서의 모션 정보가 순차적으로 횡단되며, 제어 지점의 후보 모션 정보와 동일한 모션 정보가 후보 모션 벡터 리스트에 존재하는지 여부가 체크된다. 제어 지점의 후보 모션 정보와 동일한 모션 정보가 후보 모션 벡터 리스트에 존재하지 않으면, 제어 지점의 후보 모션 정보가 후보 모션 벡터 리스트에 추가된다.
2개의 후보 모션 정보가 동일한지 여부를 결정하기 위해, 2개의 후보 모션 정보에서 정방향 참조 프레임들, 역방향 참조 프레임들, 각각의 정방향 모션 벡터의 수평 및 수직 성분들, 및 각각의 역방향 모션 벡터의 수평 및 수직 성분들이 동일한지 여부를 순차적으로 결정하는 것이 필요하다. 2개의 후보 모션 정보가 상이한 오직 모든 이들 엘리먼트들이 상이할 때에만 상이한 것으로 간주된다.
후보 모션 벡터 리스트에서의 모션 정보의 조각들의 양이 최대 리스트 길이에 도달하면, 후보 리스트 구성이 완료되며; 그렇지 않으면, 다음 이웃하는 블록이 횡단된다.
구성된 제어 지점 모션 벡터 예측 방법을 이용하여 현재의 블록의 제어 지점의 후보 모션 벡터를 획득하는 것에 관한 일부 내용은 전술한 "(4)"에서 자세히 설명되었다. 본 명세서의 간결성을 위해, 세부 사항들은 본원에서 다시 설명되지 않는다.
제 1 모션 모델-기반 모션 벡터 예측 방법을 이용하여 현재의 블록의 제어 지점의 후보 모션 벡터를 획득하는 것에 관한 일부 내용은 전술한 "(5)"에서 자세히 설명되었다. 본 명세서의 간결성을 위해, 세부 사항들은 본원에서 다시 설명되지 않는다.
제 1 모션 모델-기반 모션 벡터 예측 방법이 사용되는 일부 실시형태들에서, 아핀 변환 모델-기반 병합 모드에 대해, 아핀 변환 모델들, 예컨대 4-파라미터 아핀 변환 모델, 6-파라미터 아핀 변환 모델, 및 8-파라미터 이중선형의 모델은 대안적으로, 이미지에서 상이한 블록들에 대해 구별되지 않을 수도 있다, 즉, 동일한 양의 파라미터들을 가진 아핀 변환 모델들이 상이한 블록들에 사용될 수도 있다는 점에 유의해야 한다.
예를 들어, 6-파라미터 아핀 변환 모델이 이미지에서의 모든 블록들에 사용된다. 도 10에서의 A1은 일 예로서 사용된다. A1이 위치되는 아핀 디코딩 블록의 3개의 제어 지점들의 모션 벡터들: 좌상단 제어 지점 (x4, y4)의 모션 벡터 (vx4, vy4), 우상단 제어 지점 (x5, y5)의 모션 벡터 (vx5, vy5), 및 좌하단 제어 지점 (x6, y6)의 모션 벡터 (vx6, vy6)이 획득된다. 그 후, 이웃하는 아핀 디코딩 블록의 3개의 제어 지점들로 구성되는 6-파라미터 아핀 모델에 기초하여, 현재의 블록의 좌상단 제어 지점, 우상단 제어 지점, 및 좌하단 제어 지점의 모션 벡터들이 수식들 (34), (35), 및 (36)에 따라서 각각 유도된다.
본 발명의 기술적인 해결책들이 전술한 예에 한정되지 않으며, 다른 제어 지점, 모션 모델, 후보 위치, 및 탐색 순서가 또한 본 발명에 적용가능할 수도 있다는 점에 유의해야 한다. 세부 사항들은 본원에서 설명되지 않는다.
단계 603b: 인덱스 값에 기초하여 제어 지점의 모션 벡터를 결정한다.
구체적으로 설명하면, 후보 모션 벡터 리스트의 인덱스 값이 비트스트림을 파싱하여 획득되며, 제어 지점의 실제 모션 벡터가 단계 602b에서 구성된 후보 모션 벡터 리스트에서 인덱스 값에 기초하여 결정된다.
예를 들어, 4-파라미터 아핀 모션 모델이 현재의 블록에 사용되면, 인덱스 값이 파싱을 통해서 획득되며, 2개의 제어 지점들의 모션 벡터들이 인덱스 값에 기초하여 후보 모션 벡터 2-튜플 리스트에서 결정된다.
다른 예로, 6-파라미터 아핀 모션 모델이 현재의 블록에 사용되면, 인덱스 값이 파싱을 통해서 획득되며, 3개의 제어 지점들의 모션 벡터들이 인덱스 값에 기초하여 후보 모션 벡터 트리플릿 리스트에서 결정된다.
다른 예로, 8-파라미터 이중선형의 모델이 현재의 블록에 사용되면, 인덱스 값이 파싱을 통해서 획득되며, 4개의 제어 지점들의 모션 벡터들이 인덱스 값에 기초하여 후보 모션 벡터 쿼드러플 리스트에서 결정된다.
단계 604b: 현재의 블록에 사용되는 아핀 변환 모델에 기초하여 현재의 블록의 각각의 서브블록의 모션 벡터를 획득한다. 이 단계의 상세한 구현예에 대해서는, 단계 605a의 설명들을 참조한다. 본 명세서의 간결성을 위해, 세부 사항들은 본원에서 다시 설명되지 않는다.
단계 605b: 대응하는 모션 벡터에 기초하여 각각의 서브블록에 대한 모션 보상을 수행하여, 서브블록의 픽셀 예측자를 획득한다.
본 발명의 이 실시형태에서, 디코더 측이 현재의 블록을 예측하는 프로세스에서 제 1 모션 모델-기반 모션 벡터 예측 방법을 이용함을 알 수 있다. 이러한 방법으로, 이웃하는 블록의 아핀 변환 모델이 현재의 블록을 파싱하는 단계에서 (예를 들어, AMVP 모드 또는 병합 모드에 대한 후보 모션 벡터 리스트를 구성하는 단계에서) 현재의 블록의 아핀 변환 모델을 구성하는데 사용될 수 있다. 2개의 블록들의 아핀 변환 모델들은 상이하거나 또는 동일할 수도 있다. 현재의 블록의 아핀 변환 모델은 현재의 블록의 실제 모션 상태/실제 요구사항을 더 잘 만족시킨다. 따라서, 이 해결책은 현재의 블록을 예측하는데 있어서의 코딩 효율 및 정확도를 향상시키고 사용자 요구사항을 만족시킬 수 있다.
도 12를 참조한다. 제 2 모션 모델-기반 모션 벡터 예측 방법의 설계 해결책에 기초하여, 본 발명의 일 실시형태는 다른 모션 벡터 예측 방법을 제공한다. 본 방법은 비디오 디코더 (200)에 의해 수행될 수도 있으며, 특히, 비디오 디코더 (200)의 인터 예측기 (210)에 의해 수행될 수도 있다. 비디오 디코더 (200)는 복수의 비디오 프레임들을 갖는 비디오 데이터 스트림에 기초하여, 다음 단계들의 부분 또는 모두를 수행하여, 현재의 비디오 프레임의 현재의 디코딩 블록 (줄여서, 현재의 블록으로 지칭됨)의 각각의 서브블록의 모션 정보를 예측하고 모션 보상을 수행할 수도 있다. 도 12에 나타낸 바와 같이, 본 방법은 다음 단계들을 포함하지만 이에 한정되지 않는다.
단계 701: 비트스트림을 파싱하고 현재의 디코딩 블록의 인터 예측 모드를 결정한다.
구체적으로 설명하면, 디코더 측 상의 비디오 디코더 (200)는 인코더 측으로부터 송신된 비트스트림에서 신택스 엘리먼트를 파싱하여, 인터 예측 모드를 표시하는데 사용되는 표시 정보를 획득하고, 표시 정보에 기초하여 현재의 블록의 인터 예측 모드를 결정할 수도 있다.
현재의 블록의 인터 예측 모드가 아핀 변환 모델-기반 AMVP 모드라고 결정되면, 단계들 702a 내지 706a가 그후 수행된다.
현재의 블록의 인터 예측 모드가 아핀 변환 모델-기반 병합 모드라고 결정되면, 단계들 702b 내지 705b가 그후 수행된다.
단계 702a: 아핀 변환 모델-기반 AMVP 모드에 대한 후보 모션 벡터 리스트를 구성한다.
본 발명의 이 실시형태에서, 이미지 시퀀스에서 이미지의 상이한 블록들에 사용되는 아핀 변환 모델들이 제한되지 않는다, 즉, 상이한 아핀 변환 모델들이 상이한 블록들에 사용될 수도 있다.
특정의 실시형태에서, 현재의 블록의 제어 지점의 후보 모션 벡터가 상속된 제어 지점 모션 벡터 예측 방법을 이용하여 획득되어, AMVP 모드에 대응하는 후보 모션 벡터 리스트에 추가될 수도 있다.
특정의 실시형태에서, 현재의 블록의 제어 지점의 후보 모션 벡터가 제 1 모션 모델-기반 모션 벡터 예측 방법을 이용하여 획득되어, AMVP 모드에 대응하는 후보 모션 벡터 리스트에 추가될 수도 있다.
특정의 실시형태에서, 현재의 블록의 제어 지점의 후보 모션 벡터가 구성된 제어 지점 모션 벡터 예측 방법을 이용하여 획득되어, AMVP 모드에 대응하는 후보 모션 벡터 리스트에 추가될 수도 있다.
일부 다른 특정의 실시형태들에서, 현재의 블록의 제어 지점의 후보 모션 벡터가 대안적으로, 상속된 제어 지점 모션 벡터 예측 방법, 제 2 모션 모델-기반 모션 벡터 예측 방법, 또는 구성된 제어 지점 모션 벡터 예측 방법 중 임의의 2개를 이용하여 별개로 획득되어, AMVP 모드에 대응하는 후보 모션 벡터 리스트에 추가될 수도 있다.
일부 다른 특정의 실시형태들에서, 현재의 블록의 제어 지점의 후보 모션 벡터가 대안적으로, 상속된 제어 지점 모션 벡터 예측 방법, 제 2 모션 모델-기반 모션 벡터 예측 방법, 및 구성된 제어 지점 모션 벡터 예측 방법을 이용하여 별개로 획득되어, AMVP 모드에 대응하는 후보 모션 벡터 리스트에 추가될 수도 있다.
상속된 제어 지점 모션 벡터 예측 방법을 이용하여 현재의 블록의 제어 지점의 후보 모션 벡터를 획득하는 것에 관한 일부 내용은 전술한 "(3)"에서 자세히 설명되었다. 본 명세서의 간결성을 위해, 세부 사항들은 본원에서 다시 설명되지 않는다.
구성된 제어 지점 모션 벡터 예측 방법을 이용하여 현재의 블록의 제어 지점의 후보 모션 벡터를 획득하는 것에 관한 일부 내용은 전술한 "(4)"에서 자세히 설명되었다. 본 명세서의 간결성을 위해, 세부 사항들은 본원에서 다시 설명되지 않는다.
제 1 모션 모델-기반 모션 벡터 예측 방법을 이용하여 현재의 블록의 제어 지점의 후보 모션 벡터를 획득하는 것에 관한 일부 내용은 전술한 "(5)"에서, 그리고, 도 9의 실시형태에서 단계 602a에서, 자세히 설명되었다. 본 명세서의 간결성을 위해, 세부 사항들은 본원에서 다시 설명되지 않는다.
예를 들어, 4-파라미터 아핀 변환 모델이 현재의 블록에 사용되면, AMVP 모드에 대한 후보 모션 벡터 리스트는 2-튜플 리스트일 수도 있다. 2-튜플 리스트는 4-파라미터 아핀 변환 모델을 구성하는데 사용되는 하나 이상의 2-튜플들을 포함한다.
6-파라미터 아핀 변환 모델이 현재의 블록에 사용되면, AMVP 모드에 대한 후보 모션 벡터 리스트는 트리플릿 리스트일 수도 있다. 트리플릿 리스트는 6-파라미터 아핀 변환 모델을 구성하는데 사용되는 하나 이상의 트리플릿들을 포함한다.
8-파라미터 이중선형의 모델이 현재의 블록에 사용되면, AMVP 모드에 대한 후보 모션 벡터 리스트는 쿼드러플 리스트일 수도 있다. 쿼드러플 리스트는 8-파라미터 이중선형의 모델을 구성하는데 사용되는 하나 이상의 쿼드러플들을 포함한다.
가능한 애플리케이션 시나리오에서, 후보 모션 벡터 2-튜플/트리플릿/쿼드러플 리스트는 특정의 규칙에 따라서 추가로 프루닝되어 분류될 수도 있으며, 특정의 양의 후보 모션 벡터 후보들을 획득하기 위해 트렁케이트되거나 또는 패딩될 수도 있다.
단계 703a: 인덱스 값에 기초하여 제어 지점의 최적의 모션 벡터 예측자를 결정한다. 구체적인 내용에 대해서는, 도 9의 실시형태에서의 단계 603a에서 관련된 설명들을 참조한다. 세부 사항들은 본원에서 다시 설명되지 않는다.
단계 704a: 모션 벡터 차이들에 기초하여 현재의 블록의 3개의 제어 지점들의 모션 벡터들을 결정한다.
구체적으로 설명하면, 제어 지점의 모션 벡터 차이가 비트스트림을 파싱하여 획득되며, 그후 제어 지점의 모션 벡터가 제어 지점의 모션 벡터 차이, 및 제어 지점의 모션 벡터 예측자이고 단계 703a에서 결정되는 최적의 모션 벡터 예측자에 기초하여 획득된다. 그 후, 현재의 블록의 3개의 제어 지점들의 모션 벡터들이 제어 지점들의 획득된 모션 벡터들에 기초하여 결정된다.
예를 들어, 단계 702a에서 디코더 측에 의해 구성되는 후보 모션 벡터 리스트가 2-튜플 리스트이면, 인덱스 값이 단계 703a에서의 파싱을 통해서 획득되며, 2개의 제어 지점들 (즉, 2-튜플)의 모션 벡터 예측자들 (MVP)이 후보 모션 벡터 리스트에서 인덱스 값에 기초하여 결정된다. 현재의 블록의 2개의 제어 지점들의 모션 벡터 차이들 (MVD)이 단계 704a에서 비트스트림을 파싱함으로써 획득된다. 그 후, 2개의 제어 지점들의 모션 벡터들 (MV)이 2개의 제어 지점들의 MVP들 및 MVD들에 기초하여 각각 획득된다. 2개의 제어 지점들의 모션 벡터들은 예를 들어, 현재의 블록의 좌상단 제어 지점 (x0, y0)의 모션 벡터 (vx0, vy0) 및 현재의 블록의 우상단 제어 지점 (x1, y1)의 모션 벡터 (vx1, vy1)이다. 그 후, 4-파라미터 아핀 변환 모델이 현재의 블록의 2개의 제어 지점들의 모션 벡터들에 기초하여 구성된다. 제 3 제어 지점의 모션 벡터는 4-파라미터 아핀 변환 모델에 대한 수식 (40)에 따라서 획득된다. 제 3 제어 지점의 모션 벡터는 예를 들어, 현재의 블록의 좌하단 모서리 (x2, y2)의 모션 벡터 (vx2, vy2)이다. 이러한 방법으로, 현재의 블록의 좌상단 제어 지점, 우상단 제어 지점, 및 좌하단 제어 지점의 모션 벡터들이 결정된다.
다른 예로, 단계 702a에서 디코더 측에 의해 구성되는 후보 모션 벡터 리스트가 트리플릿 리스트이면, 인덱스 값이 단계 703a에서의 파싱을 통해서 획득되며, 3개의 제어 지점들 (즉, 트리플릿)의 모션 벡터 예측자들 (MVP)이 후보 모션 벡터 리스트에서 인덱스 값에 기초하여 결정된다. 현재의 블록의 3개의 제어 지점들의 모션 벡터 차이들 (MVD)이 단계 704a에서 비트스트림을 파싱함으로써 획득된다. 그 후, 3개의 제어 지점들의 모션 벡터들 (MV)이 3개의 제어 지점들의 MVP들 및 MVD들에 기초하여 각각 획득된다. 3개의 제어 지점들의 모션 벡터들은 예를 들어, 현재의 블록의 좌상단 제어 지점 (x0, y0)의 모션 벡터 (vx0, vy0), 현재의 블록의 우상단 제어 지점 (x1, y1)의 모션 벡터 (vx1, vy1), 및 현재의 블록의 좌하단 모서리 (x2, y2)의 모션 벡터 (vx2, vy2)이다.
이러한 방법으로, 현재의 블록의 좌상단 제어 지점, 우상단 제어 지점, 및 좌하단 제어 지점의 모션 벡터들이 결정된다.
다른 예로, 단계 702a에서 디코더 측에 의해 구성되는 후보 모션 벡터 리스트가 쿼드러플 리스트이면, 인덱스 값이 단계 703a에서의 파싱을 통해서 획득되며, 4개의 제어 지점들 (즉, 쿼드러플)의 모션 벡터 예측자들 (MVP)이 후보 모션 벡터 리스트에서 인덱스 값에 기초하여 결정된다. 현재의 블록의 4개의 제어 지점들의 모션 벡터 차이들 (MVD)이 단계 704a에서 비트스트림을 파싱함으로써 획득된다. 그 후, 4개의 제어 지점들의 모션 벡터들 (MV)이 4개의 제어 지점들의 MVP들 및 MVD들에 기초하여 각각 획득된다. 4개의 제어 지점들의 모션 벡터들은 예를 들어, 현재의 블록의 좌상단 제어 지점 (x0, y0)의 모션 벡터 (vx0, vy0), 현재의 블록의 우상단 제어 지점 (x1, y1)의 모션 벡터 (vx1, vy1), 현재의 블록의 좌하단 모서리 (x2, y2)의 모션 벡터 (vx2, vy2), 및 현재의 블록의 우하단 모서리 (x3, vy3)의 모션 벡터 (vx3, vy3)이다. 그 후, 디코더 측은 단지 현재의 블록의 좌상단 제어 지점, 우상단 제어 지점, 및 좌하단 제어 지점의 모션 벡터들을 이용할 수도 있다.
본 발명의 기술적인 해결책들이 전술한 예들에 한정되지 않으며 다른 제어 지점 및 모션 모델이 또한 본 발명에 적용가능할 수도 있다는 점에 유의해야 한다. 세부 사항들은 본원에서 설명되지 않는다.
단계 705a: 현재의 블록의 3개의 제어 지점들에 기초하여, 그리고 6-파라미터 아핀 변환 모델을 이용하여, 각각의 서브블록의 모션 벡터를 획득한다.
구체적으로 설명하면, 현재의 블록의 3개의 제어 지점들의 모션 벡터들은 단계 704a에서 결정되었다. 따라서, 6-파라미터 아핀 변환 모델은 현재의 블록의 3개의 제어 지점들의 모션 벡터들에 기초하여 구성될 수도 있으며, 각각의 서브블록의 모션 벡터가 6-파라미터 아핀 변환 모델을 이용하여 획득된다.
예를 들어, 3개의 제어 지점들의 모션 벡터들은 예를 들어, 현재의 블록의 좌상단 제어 지점 (x0, y0)의 모션 벡터 (vx0, vy0), 현재의 블록의 우상단 제어 지점 (x1, y1)의 모션 벡터 (vx1, vy1), 및 현재의 블록의 좌하단 제어 지점 (x2, y2)의 모션 벡터 (vx2, vy2)이다. 이 경우, 복원 단계에서의 현재의 블록의 6-파라미터 아핀 모델은 현재의 블록의 좌상단 제어 지점 (x0, y0)의 모션 벡터 (vx0, vy0), 현재의 블록의 우상단 제어 지점 (x1, y1)의 모션 벡터 (vx1, vy1), 및 현재의 블록의 좌하단 모서리 (x2, y2)의 모션 벡터 (vx2, vy2)을 이용하여 획득된다. 6-파라미터 아핀 모델에 대한 수식은 수식 (37)에 나타낸다.
그 후, 현재의 블록의 좌상단 모서리 (또는, 다른 참조 지점)에 대한 현재의 블록의 각각의 서브블록 (또는, 각각의 모션 보상 유닛)의 사전 설정된 위치에서의 샘플의 좌표들 은 각각의 서브블록의 모션 벡터를 획득하기 위해 전술한 수식 (37)로 치환된다. 사전 설정된 위치에서의 샘플은 각각의 서브블록 (또는, 각각의 모션 보상 유닛)의 중심 지점일 수도 있다. 현재의 블록의 좌상단 픽셀에 대한 각각의 서브블록 (또는, 각각의 모션 보상 유닛)의 중심 지점의 좌표들 은 다음 수식 (38)에 따라서 계산될 수도 있다. 구체적인 내용에 대해서는, 도 11a의 실시형태 및 도 11b의 실시형태에서의 관련 설명들을 참조한다. 세부 사항들은 본원에서 다시 설명되지 않는다.
단계 706a: 대응하는 모션 벡터에 기초하여 각각의 서브블록에 대한 모션 보상을 수행하여, 서브블록의 픽셀 예측자를 획득한다.
단계 702b: 아핀 변환-기반 병합 모드에 대한 후보 모션 벡터 리스트를 구성한다.
이와 유사하게, 본 발명의 이 실시형태에서, 이미지 시퀀스에서 이미지의 상이한 블록들에 사용되는 아핀 변환 모델들이 한정되지 않는다, 즉, 상이한 아핀 변환 모델들이 상이한 블록들에 사용될 수도 있다.
특정의 실시형태에서, 현재의 블록의 제어 지점의 후보 모션 벡터가 상속된 제어 지점 모션 벡터 예측 방법을 이용하여 획득되어, 병합 모드에 대응하는 후보 모션 벡터 리스트에 추가될 수도 있다.
특정의 실시형태에서, 현재의 블록의 제어 지점의 후보 모션 벡터가 제 1 모션 모델-기반 모션 벡터 예측 방법을 이용하여 획득되어, 병합 모드에 대응하는 후보 모션 벡터 리스트에 추가될 수도 있다.
특정의 실시형태에서, 현재의 블록의 제어 지점의 후보 모션 벡터가 구성된 제어 지점 모션 벡터 예측 방법을 이용하여 획득되어, 병합 모드에 대응하는 후보 모션 벡터 리스트에 추가될 수도 있다.
일부 다른 특정의 실시형태들에서, 현재의 블록의 제어 지점의 후보 모션 벡터가 대안적으로, 상속된 제어 지점 모션 벡터 예측 방법, 제 2 모션 모델-기반 모션 벡터 예측 방법, 또는 구성된 제어 지점 모션 벡터 예측 방법 중 임의의 2개를 이용하여 별개로 획득되어, 병합 모드에 대응하는 후보 모션 벡터 리스트에 추가될 수도 있다.
일부 다른 특정의 실시형태들에서, 현재의 블록의 제어 지점의 후보 모션 벡터가 대안적으로, 상속된 제어 지점 모션 벡터 예측 방법, 제 2 모션 모델-기반 모션 벡터 예측 방법, 및 구성된 제어 지점 모션 벡터 예측 방법을 이용하여 별개로 획득되어, 병합 모드에 대응하는 후보 모션 벡터 리스트에 추가될 수도 있다.
상속된 제어 지점 모션 벡터 예측 방법을 이용하여 현재의 블록의 제어 지점의 후보 모션 벡터를 획득하는 것에 관한 일부 내용은 전술한 "(3)"에서 자세히 설명되었다. 본 명세서의 간결성을 위해, 세부 사항들은 본원에서 다시 설명되지 않는다.
구성된 제어 지점 모션 벡터 예측 방법을 이용하여 현재의 블록의 제어 지점의 후보 모션 벡터를 획득하는 것에 관한 일부 내용은 전술한 "(4)"에서 자세히 설명되었다. 본 명세서의 간결성을 위해, 세부 사항들은 본원에서 다시 설명되지 않는다.
제 1 모션 모델-기반 모션 벡터 예측 방법을 이용하여 현재의 블록의 제어 지점의 후보 모션 벡터를 획득하는 것에 관한 일부 내용은 전술한 "(5)"에서, 그리고 도 9의 실시형태에서의 단계 602a에서 자세히 설명되었다. 본 명세서의 간결성을 위해, 세부 사항들은 본원에서 다시 설명되지 않는다.
일부 또 다른 실시형태들에서, 아핀 변환 모델-기반 병합 모드에 대해, 디코더 측에 의해 확립된 후보 모션 벡터 리스트가 후보 모션 벡터 2-튜플/트리플릿/쿼드러플 리스트일 수도 있다는 점에 유의해야 한다. 게다가, 후보 모션 벡터 2-튜플/트리플릿/쿼드러플 리스트는 특정의 규칙에 따라서 추가로 프루닝되어 분류될 수도 있으며, 특정의 양의 후보 모션 벡터 후보들을 획득하기 위해 트렁케이트되거나 또는 패딩될 수도 있다.
일부 또 다른 실시형태들에서, 아핀 변환 모델-기반 병합 모드에 대해, 아핀 변환 모델들, 예컨대 4-파라미터 아핀 변환 모델, 6-파라미터 아핀 변환 모델, 및 8-파라미터 이중선형의 모델은 대안적으로, 이미지에서의 상이한 블록들에 대해 구별되지 않을 수도 있다, 즉, 동일한 양의 파라미터들을 가진 아핀 변환 모델들이 상이한 블록들에 사용될 수도 있다는 점에 유의해야 한다.
단계 703b: 인덱스 값에 기초하여 제어 지점의 모션 벡터를 획득한다. 구체적으로 설명하면, 후보 모션 벡터 리스트의 인덱스 값이 비트스트림을 파싱하여 획득되며, 제어 지점의 실제 모션 벡터가 단계 702b에서 구성된 후보 모션 벡터 리스트에서 인덱스 값에 기초하여 결정된다. 이 단계의 특정의 구현예에 대해서는, 도 9의 실시형태에서의 단계 603b에서 관련된 설명들을 참조한다. 세부 사항들은 본원에서 다시 설명되지 않는다.
단계 704b: 제어 지점들의 획득된 모션 벡터들에 기초하여 현재의 블록의 3개의 제어 지점들의 모션 벡터들을 결정한다.
예를 들어, 디코더 측은 단계 703b에서 2개의 제어 지점들 (즉, 2-튜플)의 모션 벡터들을 획득한다. 2개의 제어 지점들의 모션 벡터들은 예를 들어, 현재의 블록의 좌상단 제어 지점 (x0, y0)의 모션 벡터 (vx0, vy0) 및 현재의 블록의 우상단 제어 지점 (x1, y1)의 모션 벡터 (vx1, vy1)이다. 그 후, 4-파라미터 아핀 변환 모델이 현재의 블록의 2개의 제어 지점들의 모션 벡터들에 기초하여 구성된다. 제 3 제어 지점의 모션 벡터는 4-파라미터 아핀 변환 모델에 대한 수식 (31)에 따라서 획득된다. 제 3 제어 지점의 모션 벡터는 예를 들어, 현재의 블록의 좌하단 모서리 (x2, y2)의 모션 벡터 (vx2, vy2)이다. 이러한 방법으로, 현재의 블록의 좌상단 제어 지점, 우상단 제어 지점, 및 좌하단 제어 지점의 모션 벡터들이 결정된다.
다른 예로, 디코더 측은 단계 703b에서 3개의 제어 지점들 (즉, 트리플릿)의 모션 벡터들을 획득한다. 3개의 제어 지점들의 모션 벡터들은 예를 들어, 현재의 블록의 좌상단 제어 지점 (x0, y0)의 모션 벡터 (vx0, vy0), 현재의 블록의 우상단 제어 지점 (x1, y1)의 모션 벡터 (vx1, vy1), 및 현재의 블록의 좌하단 모서리 (x2, y2)의 모션 벡터 (vx2, vy2)이다. 이러한 방법으로, 현재의 블록의 좌상단 제어 지점, 우상단 제어 지점, 및 좌하단 제어 지점의 모션 벡터들이 결정된다.
다른 예로, 디코더 측은 단계 703b에서 4개의 제어 지점들 (즉, 쿼드러플)의 모션 벡터들을 획득한다. 4개의 제어 지점들의 모션 벡터들은 예를 들어, 현재의 블록의 좌상단 제어 지점 (x0, y0)의 모션 벡터 (vx0, vy0), 현재의 블록의 우상단 제어 지점 (x1, y1)의 모션 벡터 (vx1, vy1), 현재의 블록의 좌하단 모서리 (x2, y2)의 모션 벡터 (vx2, vy2), 및 현재의 블록의 우하단 모서리 (x3, vy3)의 모션 벡터 (vx3, vy3)이다. 그 후, 디코더 측은 단지 현재의 블록의 좌상단 제어 지점, 우상단 제어 지점, 및 좌하단 제어 지점의 모션 벡터들을 이용할 수도 있다.
본 발명의 기술적인 해결책들이 전술한 예들에 한정되지 않으며 다른 제어 지점 및 모션 모델이 또한 본 발명에 적용가능할 수도 있다는 점에 유의해야 한다. 세부 사항들은 본원에서 설명되지 않는다.
단계 705b: 현재의 블록의 3개의 제어 지점들에 기초하여, 그리고 6-파라미터 아핀 변환 모델을 이용하여, 각각의 서브블록의 모션 벡터를 획득한다. 이 단계의 특정의 구현예에 대해서는, 단계 705a에서의 관련된 설명들을 참조한다. 세부 사항들은 본원에서 다시 설명되지 않는다.
단계 706b: 대응하는 모션 벡터에 기초하여 각각의 서브블록에 대한 모션 보상을 수행하여, 서브블록의 픽셀 예측자를 획득한다.
본 발명의 이 실시형태에서, 디코더 측이 현재의 블록을 예측하는 프로세스에서 제 2 모션 모델-기반 모션 벡터 예측 방법을 이용함을 알 수 있다. 이러한 방법으로, 파싱 단계에서, 현재의 블록에 사용되는 아핀 변환 모델의 파라미터들의 양은 이웃하는 블록에 사용되는 아핀 변환 모델의 파라미터들의 양과 상이하거나 또는 동일할 수도 있으며, 6-파라미터 아핀 변환 모델이 (서브블록의 모션 벡터를 예측하는 단계를 포함한) 현재의 블록을 복원하는 단계에서 현재의 블록을 예측하는데 균일하게 사용될 수 있다. 이 해결책에서, 복원 단계에서 구성된 6-파라미터 아핀 변환 모델은 아핀 변환, 예컨대 이미지 블록의 변환, 스케일링, 및 회전을 기술하고, 모델 복잡성과 모델링 능력 사이의 우수한 균형을 달성할 수 있다. 따라서, 이 해결책은 현재의 블록을 예측하는데 있어서의 코딩 효율 및 정확도를 향상시키고 사용자 요구사항을 만족시킬 수 있다.
도 13은 본 발명의 일 실시형태에 따른, 또 다른 모션 벡터 예측 방법의 플로우차트이다. 본 방법은 비디오 인코더 (100)에 의해 수행될 수도 있으며, 특히, 비디오 인코더 (100)의 인터 예측기 (110)에 의해 수행될 수도 있다. 비디오 인코더 (100)는 복수의 비디오 프레임들을 갖는 비디오 데이터 스트림에 기초하여, 다음 단계들의 부분 또는 모두를 수행하여, 현재의 비디오 프레임의 현재의 코딩 블록 (줄여서, 현재의 블록으로 지칭됨)을 인코딩할 수도 있다. 도 13에 나타낸 바와 같이, 본 방법은 다음 단계들을 포함하지만 이에 한정되지 않는다.
801: 현재의 코딩 블록의 인터 예측 모드를 결정한다.
특정의 구현예에서, 복수의 인터 예측 모드들은 인코더 측 상에서의 인터 예측을 위해 사전 설정될 수도 있다. 예를 들어, 복수의 인터 예측 모드들은 위에서 설명된 아핀 모션 모델-기반 AMVP 모드 및 아핀 모션 모델-기반 병합 모드를 포함한다. 인코더 측은 복수의 인터 예측 모드들을 횡단하여, 현재의 블록을 예측하기 위한 최적의 인터 예측 모드를 결정한다.
다른 특정의 구현예에서, 오직 하나의 인터 예측 모드만이 인코더 측 상에서의 인터 예측을 위해 사전 설정될 수도 있다. 이 경우, 인코더 측은 디폴트 인터 예측 모드가 현재 사용되고 있다고 직접 결정한다. 디폴트 인터 예측 모드는 아핀 모션 모델-기반 AMVP 모드 또는 아핀 모션 모델-기반 병합 모드이다.
본 발명의 이 실시형태에서, 현재의 블록의 인터 예측 모드가 아핀 모션 모델-기반 AMVP 모드라고 결정되면, 단계들 802a 내지 804a가 그후 수행된다.
본 발명의 이 실시형태에서, 현재의 블록의 인터 예측 모드가 아핀 모션 모델-기반 병합 모드라고 결정되면, 단계 802b 내지 단계 804b가 그후 수행된다.
802a: 아핀 변환-기반 AMVP 모드에 대한 후보 모션 벡터 리스트를 구성한다.
일부 실시형태들에서, 인코더 측은 제 1 모션 모델-기반 모션 벡터 예측 방법의 설계 해결책을 이용한다. 따라서, 이 단계의 특정의 구현예에 대해서는, 도 9의 실시형태에서의 단계 602a의 설명들을 참조한다. 세부 사항들은 본원에서 다시 설명되지 않는다.
일부 다른 실시형태들에서, 인코더 측은 제 2 모션 모델-기반 모션 벡터 예측 방법의 설계 해결책을 이용한다. 따라서, 이 단계의 특정의 구현예에 대해서는, 도 12의 실시형태에서의 단계 702a의 설명들을 참조한다. 세부 사항들은 본원에서 다시 설명되지 않는다.
803a: 레이트-왜곡 비용에 기초하여 제어 지점의 최적의 모션 벡터 예측자를 결정한다.
일부 예들에서, 인코더 측은 후보 모션 벡터 리스트에서 제어 지점 모션 벡터 예측자 (예를 들어, 후보 모션 벡터 2-튜플/트리플릿/쿼드러플)를 이용하여, 그리고 수식 (3), (5), 또는 (7)에 따라서 현재의 블록의 각각의 모션 보상 서브유닛의 모션 벡터를 획득할 수도 있다. 또, 인코더 측은 각각의 모션 보상 서브유닛의 모션 벡터가 가리키는 참조 프레임에서 대응하는 위치의 픽셀 값을 획득하고, 픽셀 값을 모션 보상 서브유닛의 픽셀 예측자로서 이용하여 아핀 모션 모델-기반 모션 보상을 수행한다. 현재의 코딩 블록에서의 각각의 샘플의 원래 값과 예측자 사이의 평균 차이가 계산된다. 최소 평균 차이에 대응하는 제어 지점 모션 벡터 예측자가 최적의 제어 지점 모션 벡터 예측자로서 선택되며, 현재의 블록의 2개, 3개, 또는 4개의 제어 지점들의 모션 벡터 예측자들로서 사용된다.
804a: 인덱스 값, 제어 지점의 모션 벡터 차이, 및 인터 예측 모드의 표시 정보를 비트스트림으로 인코딩한다.
일부 예들에서, 인코더 측은 최적의 제어 지점 모션 벡터 예측자를 탐색 시작 지점으로 이용하여 특정의 탐색 범위 내에서 모션 탐색을 수행하여 제어 지점 모션 벡터 (control point motion vectors, CPMV)를 획득하고, 제어 지점 모션 벡터와 제어 지점 모션 벡터 예측자 사이의 차이 (control point motion vectors differences, CPMVD)를 계산할 수도 있다. 그 후, 인코더 측은 후보 모션 벡터 리스트에서의 제어 지점 모션 벡터 예측자의 위치를 나타내는 인덱스 값 및 CPMVD를 비트스트림으로 인코딩한다. 인터 예측 모드의 표시 정보는 비트스트림이 그후 디코더 측으로 송신되도록, 비트스트림으로 추가로 인코딩될 수도 있다.
다른 가능한 예에서, 인코더 측은 현재의 블록에 사용되는 아핀 변환 모델 (파라미터들의 양)을 표시하는 표시 정보를 비트스트림으로 인코딩하고 그후 비트스트림을 디코더 측으로 송신할 수도 있다. 이러한 방법으로, 디코더 측은 표시 정보에 기초하여, 현재의 블록에 사용되는 아핀 변환 모델을 결정한다.
802b: 아핀 변환-기반 병합 모드에 대한 후보 모션 벡터 리스트를 구성한다.
일부 실시형태들에서, 인코더 측은 제 1 모션 모델-기반 모션 벡터 예측 방법의 설계 해결책을 이용한다. 따라서, 이 단계의 특정의 구현예에 대해서는, 도 9의 실시형태에서의 단계 602b의 설명들을 참조한다. 세부 사항들은 본원에서 다시 설명되지 않는다.
일부 다른 실시형태들에서, 인코더 측은 제 2 모션 모델-기반 모션 벡터 예측 방법의 설계 해결책을 이용한다. 따라서, 이 단계의 특정의 구현예에 대해서는, 도 12의 실시형태에서의 단계 702b의 설명들을 참조한다. 세부 사항들은 본원에서 다시 설명되지 않는다.
803b: 제어 지점의 최적의 모션 벡터 예측자를 결정한다.
일부 예들에서, 인코더 측은 후보 모션 벡터 리스트에서 제어 지점 모션 벡터 (예를 들어, 후보 모션 벡터 2-튜플/트리플릿/쿼드러플)를 이용하여, 그리고, 수식 (3), (5), 또는 (7)에 따라서, 현재의 코딩 블록의 각각의 모션 보상 서브유닛의 모션 벡터를 획득할 수도 있다. 또, 인코더 측은 각각의 모션 보상 서브유닛의 모션 벡터가 가리키는 참조 프레임에서의 위치의 픽셀 값을 획득하고, 픽셀 값을 모션 보상 서브유닛의 픽셀 예측자로서 이용하여 아핀 모션 보상을 수행한다. 현재의 코딩 블록에서의 각각의 샘플의 원래 값과 예측자 사이의 평균 차이가 계산된다. 최소 평균 차이에 대응하는 제어 지점 모션 벡터가 최적의 제어 지점 모션 벡터로서 선택된다. 최적의 제어 지점 모션 벡터가 현재의 코딩 블록의 2개, 3개, 또는 4개의 제어 지점들의 모션 벡터들로서 사용된다.
804b: 인덱스 값 및 인터 예측 모드의 표시 정보를 비트스트림으로 인코딩한다.
일 예에서, 인코더 측은 비트스트림이 그후 디코더 측으로 송신되도록, 후보 리스트에서 제어 지점 모션 벡터의 위치를 표시하는 인덱스 값, 및 인터 예측 모드의 표시 정보를 비트스트림으로 인코딩할 수도 있다.
다른 가능한 예에서, 인코더 측은 현재의 블록에 사용되는 아핀 변환 모델 (파라미터들의 양)을 표시하는 표시 정보를 비트스트림으로 인코딩하고, 그후 비트스트림을 디코더 측으로 송신할 수도 있다. 이러한 방법으로, 디코더 측은 표시 정보에 기초하여, 현재의 블록에 사용되는 아핀 변환 모델을 결정한다.
전술한 실시형태가 단지 인코더 측이 인코딩을 수행하여 비트스트림을 전송하는 프로세스만을 설명한다는 점에 유의해야 한다. 전술한 설명들에 따르면, 당업자는 인코더 측이 또한 다른 과정에서, 본 발명의 실시형태들에서의 다른 방법을 수행할 수도 있음을 알 수 있다. 예를 들어, 현재의 블록에 대해 인코더 측에 의해 수행되는 예측 동안, 현재의 블록을 복원하는 프로세스의 특정의 구현예에 대해서는, 디코더 측 상에서 위에서 설명된 (도 9 또는 도 12의 실시형태에 나타낸 바와 같은) 관련된 방법을 참조한다. 세부 사항들은 본원에서 다시 설명되지 않는다.
본 발명의 일 실시형태에서, 인코더 측이 제 1 모션 모델-기반 모션 벡터 예측 방법의 설계 해결책에 따라서 현재의 블록을 인코딩함을 알 수 있다. 이러한 방법으로, 이웃하는 블록의 아핀 변환 모델이 현재의 블록을 파싱하는 단계에서 (예를 들어, AMVP 모드 또는 병합 모드에 대한 후보 모션 벡터 리스트를 구성하는 단계에서) 현재의 블록의 아핀 변환 모델을 구성하는데 사용될 수 있다. 2개의 블록들의 아핀 변환 모델들은 상이하거나 또는 동일할 수도 있다. 현재의 블록의 아핀 변환 모델은 현재의 블록의 실제 모션 상태/실제 요구사항을 더 잘 만족시킨다. 따라서, 이 해결책은 현재의 블록을 인코딩하는 효율 및 정확도를 향상시키고 사용자 요구사항을 만족시킬 수 있다.
또한, 본 발명의 일 실시형태에서, 인코더 측이 제 2 모션 모델-기반 모션 벡터 예측 방법의 설계 해결책에 따라서 현재의 블록을 인코딩함을 알 수 있다. 이는 디코더 측이 6-파라미터 아핀 변환 모델을 균일하게 이용하여 이미지 블록을 복원하는 단계에서 이미지 블록을 예측하는 것을 돕는다. 따라서, 이 해결책은 현재의 블록을 예측하는데 있어서의 코딩 효율 및 정확도를 향상시키고 사용자 요구사항을 만족시킬 수 있다.
당업자는 본 명세서에서 개시 및 설명된 다양한 예시적인 로직 블록들, 모듈들, 및 알고리즘 단계들을 참조하여 설명된 기능들이 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 결합에 의해 구현될 수 있음을 알 수 있다. 소프트웨어로 구현되는 경우, 예시적인 로직 블록들, 모듈들, 및 단계들을 참조하여 설명된 기능들은 컴퓨터-판독가능 매체 상에 하나 이상의 명령들 또는 코드로서 저장되거나 또는 송신되고 하드웨어-기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터-판독가능 매체는 데이터 저장 매체와 같은, 유형의 매체에 대응하는 컴퓨터-판독가능 저장 매체를 포함하거나, 또는 (예를 들어, 통신 프로토콜에 따라) 한 장소로부터 다른 장소로의 컴퓨터 프로그램의 송신을 용이하게 하는 임의의 통신 매체를 포함할 수도 있다. 이와 같이, 컴퓨터-판독가능 매체는 일반적으로, (1) 비일시성 유형의 컴퓨터-판독가능 저장 매체, 또는 (2) 통신 매체 예컨대 신호 또는 캐리어에 대응할 수도 있다. 데이터 저장 매체는 본 발명의 실시형태들에서 설명된 기술들을 구현하기 위한 명령들, 코드, 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 사용가능한 매체일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터-판독가능 매체를 포함할 수도 있다.
일 예로서 그리고 비한정적으로, 이러한 컴퓨터-판독가능 저장 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 컴팩트 디스크 저장 장치, 자기디스크 저장 장치 또는 다른 자기 저장 장치, 플래시 메모리, 또는 원하는 프로그램 코드를 컴퓨터에 의해 액세스될 수 있는 명령 또는 데이터 구조의 형태로 저장하는데 사용될 수 있는 임의의 다른 매체를 포함할 수도 있다. 게다가, 임의의 접속은 컴퓨터-판독가능 매체로서 적절히 지칭된다. 예를 들어, 명령이 웹사이트, 서버, 또는 다른 원격 소스로부터 동축 케이블, 광 섬유, 연선, 디지털 가입자 회선 (DSL), 또는 무선 기술, 예컨대 적외선, 라디오, 또는 마이크로파를 통해서 송신되면, 동축 케이블, 광 섬유, 연선, DSL, 또는 무선 기술, 예컨대 적외선, 라디오, 또는 마이크로파가 매체의 정의에 포함된다. 그러나, 컴퓨터-판독가능 저장 매체 및 데이터 저장 매체가 접속들, 캐리어들, 신호들, 또는 다른 일시성 매체들을 포함하지 않고 실제로 비일시성 유형의 저장 매체들인 것으로 이해되어야 한다. 본 명세서에서 사용되는 디스크들(disks) 및 디스크들(discs)은 컴팩트 디스크 (CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 (DVD), 및 블루-레이 디스크를 포함한다. 디스크들(disks)은 일반적으로 데이터를 자기적으로 재생하고, 반면 디스크들(discs)은 데이터를 레이저들로 광학적으로 재생한다. 전술한 것들의 결합도 또한 컴퓨터-판독가능 매체의 범위 내에 포함되어야 한다.
명령은 하나 이상의 프로세서들, 예컨대 하나 이상의 디지털 신호 프로세서들 (DSP), 범용 마이크로프로세서들, 주문형 집적 회로들 (ASIC), 필드 프로그래밍가능 게이트 어레이들 (FPGA), 또는 다른 등가의 통합된 또는 이산 로직 회로들에 의해 실행될 수도 있다. 따라서, 본 명세서에서 사용되는 용어 "프로세서"는 전술한 구조들 또는 본 명세서에서 설명된 기술들에 적용가능한 임의의 다른 구조 중 어느 하나일 수도 있다. 게다가, 일부 양태들에서, 본 명세서에서 설명되는 예시적인 로직 블록들, 모듈들, 및 단계들을 참조하여 설명된 기능들은 전용 하드웨어 및/또는 인코딩 및 디코딩을 위해 구성되는 소프트웨어 모듈들 내에 제공되거나, 또는 결합된 코덱에 통합될 수도 있다. 게다가, 기술들은 하나 이상의 회로들 또는 로직 엘리먼트들에서 완전히 구현될 수도 있다.
본 발명의 실시형태들에서의 기술들은 무선 핸드셋, 집적 회로 (IC), 또는 IC들의 세트 (예를 들어, 칩셋)를 포함한, 다양한 장치들 또는 디바이스들에서 구현될 수도 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들이 개시된 기술들을 수행하도록 구성된 장치들의 기능적 양태들을 강조하기 위해 본 발명의 실시형태들에서 설명되지만, 반드시 상이한 하드웨어 유닛들에 의해 구현되는 것은 아니다. 실제로, 위에서 설명한 바와 같이, 다양한 유닛들이 적합한 소프트웨어 및/또는 펌웨어와 결합하여 코덱 하드웨어 유닛에 결합될 수도 있거나, 또는 (위에서 설명된 하나 이상의 프로세서들을 포함하여) 상호 이용가능한 하드웨어 유닛들에 의해 제공될 수도 있다.
전술한 설명들은 단지 본 발명의 실시형태들의 예시적인 특정의 구현예들일 뿐이며, 본 발명의 실시형태들의 보호 범위를 한정하려는 의도는 아니다. 본 발명의 실시형태들에서 개시된 기술적인 범위 내에서 당업자에 의해 용이하게 파악되는 임의의 변형 또는 대체는 본 발명의 실시형태들의 보호 범위 내에 속한다. 따라서, 본 발명의 실시형태들의 보호 범위는 청구 범위의 보호 범위를 따라야 한다.

Claims (16)

  1. 모션 벡터 예측 방법으로서,
    후보 모션 벡터 리스트의 인덱스 값을 획득하기 위해 비트스트림을 파싱하는 단계;
    현재의 블록의 아핀 모델이 2×K-파라미터 아핀 변환 모델이고, 상기 현재의 블록의 이웃하는 블록의 아핀 변환 모델이 2×N-파라미터 아핀 변환 모델인 경우, 상기 이웃하는 블록에 사용된 상기 2×N-파라미터 아핀 변환 모델에 따라, 상기 현재의 블록의 K개의 제어 지점들의 후보 모션 벡터들을 획득하는 단계 - 상기 2×N-파라미터 아핀 변환 모델은 상기 이웃하는 블록의 N개의 제어 지점들의 모션 벡터들에 기초하여 획득되며, N은 2 이상이고 4 이하인 정수이며, K는 2 이상이고 4 이하인 정수이며, N은 K와 같지 않고, 상기 이웃하는 블록은 상기 현재의 블록에 공간적으로 인접한 디코딩된 이미지 블록이며, 상기 현재의 블록은 복수의 서브블록들을 포함함 - ;
    상기 후보 모션 벡터 리스트를 구성하는 단계 - 상기 후보 모션 벡터 리스트는 현재의 블록의 K개의 제어 지점들의 후보 모션 벡터들을 포함함 - ;
    상기 인덱스 값에 기초하여, 상기 후보 모션 벡터 리스트에서, 상기 K개의 제어 지점들의 목표 후보 모션 벡터들을 결정하는 단계;
    상기 K개의 제어 지점들의 상기 목표 후보 모션 벡터들에 기초하여 상기 현재의 블록 내의 상기 복수의 서브블록들의 각각의 서브블록의 예측된 모션 벡터를 획득하는 단계; 및
    상기 현재의 블록 내의 상기 복수의 서브블록들의 상기 예측된 모션 벡터에 기초하여 상기 현재의 블록의 예측 블록을 발생시키는 단계를 포함하는, 모션 벡터 예측 방법.
  2. 제 1 항에 있어서,
    N은 2와 같고 K는 3과 같으며, 이에 따라, 상기 현재의 블록의 3개의 제어 지점들의 후보 모션 벡터들은 상기 현재의 블록의 상기 이웃하는 블록에 사용되는 4-파라미터 아핀 변환 모델에 기초하여 획득되는, 모션 벡터 예측 방법.
  3. 제 2 항에 있어서,
    상기 현재의 블록의 상기 3개의 제어 지점들의 상기 후보 모션 벡터들은 상기 현재의 블록의 좌상단 샘플 위치에서의 모션 벡터, 상기 현재의 블록의 우상단 샘플 위치에서의 모션 벡터, 및 상기 현재의 블록의 좌하단 샘플 위치에서의 모션 벡터를 포함하며;
    상기 현재의 블록의 상기 3개의 제어 지점들의 상기 후보 모션 벡터들이 상기 현재의 블록의 상기 이웃하는 블록에 사용되는 상기 4-파라미터 아핀 변환 모델에 기초하여 획득되는 것은 상기 현재의 블록의 상기 3개의 제어 지점들의 상기 후보 모션 벡터들이 다음 수식들에 따라서 계산되는 것을 포함하며:



    여기서, 는 상기 현재의 블록의 상기 좌상단 샘플 위치에 대응하는 상기 모션 벡터의 수평 성분이고, 그리고 는 상기 현재의 블록의 상기 좌상단 샘플 위치에 대응하는 상기 모션 벡터의 수직 성분이며; 는 상기 현재의 블록의 상기 우상단 샘플 위치에 대응하는 상기 모션 벡터의 수평 성분이고, 그리고 는 상기 현재의 블록의 상기 우상단 샘플 위치에 대응하는 상기 모션 벡터의 수직 성분이며; 는 상기 현재의 블록의 상기 좌하단 샘플 위치에 대응하는 상기 모션 벡터의 수평 성분이고, 그리고 는 상기 현재의 블록의 상기 좌하단 샘플 위치에 대응하는 상기 모션 벡터의 수직 성분이며; 는 상기 이웃하는 블록의 좌상단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 상기 이웃하는 블록의 상기 좌상단 샘플 위치에 대응하는 상기 모션 벡터의 수직 성분이며; 는 상기 이웃하는 블록의 우상단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 상기 이웃하는 블록의 상기 우상단 샘플 위치에 대응하는 상기 모션 벡터의 수직 성분이며; 는 상기 현재의 블록의 상기 좌상단 샘플 위치의 수평 좌표이고, 그리고 는 상기 현재의 블록의 상기 좌상단 샘플 위치의 수직 좌표이며; 는 상기 현재의 블록의 상기 우상단 샘플 위치의 수평 좌표이고, 그리고 는 상기 현재의 블록의 상기 우상단 샘플 위치의 수직 좌표이며; 는 상기 현재의 블록의 상기 좌하단 샘플 위치의 수평 좌표이고, 그리고 는 상기 현재의 블록의 상기 좌하단 샘플 위치의 수직 좌표이며; 는 상기 이웃하는 블록의 상기 좌상단 샘플 위치의 수평 좌표이고, 그리고 는 상기 이웃하는 블록의 상기 좌상단 샘플 위치의 수직 좌표이며; 그리고 는 상기 이웃하는 블록의 상기 우상단 샘플 위치의 수평 좌표인, 모션 벡터 예측 방법.
  4. 제 1 항에 있어서,
    N은 3과 같고 K는 2와 같으며, 이에 따라, 상기 현재의 블록의 2개의 제어 지점들의 후보 모션 벡터들은 상기 현재의 블록의 상기 이웃하는 블록에 사용되는 6-파라미터 아핀 변환 모델에 기초하여 획득되는, 모션 벡터 예측 방법.
  5. 제 4 항에 있어서,
    상기 현재의 블록의 상기 2개의 제어 지점들의 상기 후보 모션 벡터들은 상기 현재의 블록의 좌상단 샘플 위치에서의 모션 벡터 및 상기 현재의 블록의 우상단 샘플 위치에서의 모션 벡터를 포함하며;
    상기 현재의 블록의 상기 2개의 제어 지점들의 상기 후보 모션 벡터들이 상기 현재의 블록의 상기 이웃하는 블록에 사용되는 상기 6-파라미터 아핀 변환 모델에 기초하여 획득되는 것은, 상기 현재의 블록의 상기 2개의 제어 지점들의 상기 후보 모션 벡터들이 다음 수식들에 따라서 계산되는 것을 포함하며:


    여기서, 는 상기 현재의 블록의 상기 좌상단 샘플 위치에 대응하는 상기 모션 벡터의 수평 성분이고, 그리고 는 상기 현재의 블록의 상기 좌상단 샘플 위치에 대응하는 상기 모션 벡터의 수직 성분이며; 는 상기 현재의 블록의 상기 우상단 샘플 위치에 대응하는 상기 모션 벡터의 수평 성분이고, 그리고 는 상기 현재의 블록의 상기 우상단 샘플 위치에 대응하는 상기 모션 벡터의 수직 성분이며; 는 상기 이웃하는 블록의 좌상단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 상기 이웃하는 블록의 상기 좌상단 샘플 위치에 대응하는 상기 모션 벡터의 수직 성분이며; 는 상기 이웃하는 블록의 우상단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 상기 이웃하는 블록의 상기 우상단 샘플 위치에 대응하는 상기 모션 벡터의 수직 성분이며; 는 상기 이웃하는 블록의 좌하단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 상기 이웃하는 블록의 상기 좌하단 샘플 위치에 대응하는 상기 모션 벡터의 수직 성분이며; 는 상기 현재의 블록의 상기 좌상단 샘플 위치의 수평 좌표이고, 그리고 는 상기 현재의 블록의 상기 좌상단 샘플 위치의 수직 좌표이며; 는 상기 현재의 블록의 상기 우상단 샘플 위치의 수평 좌표이고, 그리고 는 상기 현재의 블록의 상기 우상단 샘플 위치의 수직 좌표이며; 는 상기 이웃하는 블록의 상기 좌상단 샘플 위치의 수평 좌표이고, 그리고 는 상기 이웃하는 블록의 상기 좌상단 샘플 위치의 수직 좌표이며; 는 상기 이웃하는 블록의 상기 우상단 샘플 위치의 수평 좌표이며; 그리고 는 상기 이웃하는 블록의 상기 좌하단 샘플 위치의 수직 좌표인, 모션 벡터 예측 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 K개의 제어 지점들의 상기 목표 후보 모션 벡터들에 기초하여 상기 현재의 블록의 각각의 서브블록의 예측된 모션 벡터를 획득하는 단계는,
    상기 K개의 제어 지점들의 상기 목표 후보 모션 벡터들에 기초하여 상기 현재의 블록의 2×K-파라미터 아핀 변환 모델을 획득하는 단계; 및
    상기 2×K-파라미터 아핀 변환 모델에 기초하여 상기 현재의 블록의 각각의 서브블록의 상기 예측된 모션 벡터를 획득하는 단계를 포함하는, 모션 벡터 예측 방법.
  7. 제 6 항에 있어서,
    상기 K개의 제어 지점들의 상기 목표 후보 모션 벡터들에 기초하여 2×K-파라미터 아핀 변환 모델을 획득하는 단계는,
    상기 K개의 제어 지점들의 상기 목표 후보 모션 벡터들 및 상기 K개의 제어 지점들의 모션 벡터 차이들에 기초하여 상기 K개의 제어 지점들의 모션 벡터들을 획득하는 단계로서, 상기 K개의 제어 지점들의 상기 모션 벡터 차이들은 상기 비트스트림을 파싱함으로써 획득되는, 상기 획득하는 단계; 및
    상기 K개의 제어 지점들의 상기 모션 벡터들에 기초하여 상기 현재의 블록의 상기 2×K-파라미터 아핀 변환 모델을 획득하는 단계를 포함하는, 모션 벡터 예측 방법.
  8. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 인덱스 값에 기초하여, 상기 후보 모션 벡터 리스트에서, 상기 현재의 블록의 상기 K개의 제어 지점들의 목표 후보 모션 벡터들을 결정하는 단계 이후, 상기 방법은, 상기 현재의 블록의 상기 K개의 제어 지점들의 상기 목표 후보 모션 벡터들에 기초하여 상기 현재의 블록의 6-파라미터 아핀 변환 모델을 획득하는 단계를 더 포함하며;
    이에 따라, 상기 K개의 제어 지점들의 상기 목표 후보 모션 벡터들에 기초하여 상기 현재의 블록의 각각의 서브블록의 예측된 모션 벡터를 획득하는 단계는,
    상기 현재의 블록의 상기 6-파라미터 아핀 변환 모델에 기초하여 상기 현재의 블록의 각각의 서브블록의 상기 예측된 모션 벡터를 획득하는 단계를 포함하는, 모션 벡터 예측 방법.
  9. 디코딩 디바이스로서,
    비디오 데이터를 비트스트림의 형태로 저장하도록 구성된 저장 유닛;
    후보 모션 벡터 리스트의 인덱스 값을 획득하기 위해 상기 비트스트림을 파싱하도록 구성된 엔트로피 디코딩 유닛; 및
    예측 프로세싱 유닛을 포함하되,
    상기 예측 프로세싱 유닛은,
    현재의 블록의 아핀 모델이 2×K-파라미터 아핀 변환 모델이고, 상기 현재의 블록의 이웃하는 블록의 아핀 변환 모델이 2×N-파라미터 아핀 변환 모델인 경우, 상기 이웃하는 블록에 사용된 상기 2×N-파라미터 아핀 변환 모델에 따라, 상기 현재의 블록의 K개의 제어 지점들의 후보 모션 벡터들을 획득 - 상기 2×N-파라미터 아핀 변환 모델은 상기 이웃하는 블록의 N개의 제어 지점들의 모션 벡터들에 기초하여 획득되며, N은 2 이상이고 4 이하인 정수이며, K는 2 이상이고 4 이하인 정수이며, N은 K와 같지 않고, 상기 이웃하는 블록은 상기 현재의 블록에 공간적으로 인접한 디코딩된 이미지 블록이며, 상기 현재의 블록은 복수의 서브블록들을 포함함 - 하고;
    상기 후보 모션 벡터 리스트를 구성 - 상기 후보 모션 벡터 리스트는 현재의 블록의 K개의 제어 지점들의 후보 모션 벡터들을 포함함 - 하고;
    상기 인덱스 값에 기초하여 상기 후보 모션 벡터 리스트에서, 상기 현재의 블록의 상기 K개의 제어 지점들의 목표 후보 모션 벡터들을 결정하고;
    상기 현재의 블록의 상기 K개의 제어 지점들의 상기 목표 후보 모션 벡터들에 기초하여 상기 현재의 블록 내의 상기 복수의 서브블록들의 각각의 서브블록의 예측된 모션 벡터를 획득하고;
    상기 현재의 블록 내의 상기 복수의 서브블록들의 상기 예측된 모션 벡터에 기초하여 상기 현재의 블록의 예측 블록을 발생시키도록 구성되는, 디코딩 디바이스.
  10. 제 9 항에 있어서,
    N은 2와 같고 K는 3과 같으며, 이에 따라, 상기 현재의 블록의 3개의 제어 지점들의 후보 모션 벡터들은 상기 현재의 블록의 상기 이웃하는 블록에 사용되는 4-파라미터 아핀 변환 모델에 기초하여 획득되는, 디코딩 디바이스.
  11. 제 10 항에 있어서,
    상기 현재의 블록의 상기 3개의 제어 지점들의 상기 후보 모션 벡터들은 상기 현재의 블록의 좌상단 샘플 위치에서의 모션 벡터, 상기 현재의 블록의 우상단 샘플 위치에서의 모션 벡터, 및 상기 현재의 블록의 좌하단 샘플 위치에서의 모션 벡터를 포함하며;
    상기 예측 프로세싱 유닛은 다음 수식들에 따라서 상기 현재의 블록의 상기 3개의 제어 지점들의 상기 후보 모션 벡터들을 계산하도록 구성되며:

    여기서, 는 상기 현재의 블록의 상기 좌상단 샘플 위치에 대응하는 상기 모션 벡터의 수평 성분이고, 그리고 는 상기 현재의 블록의 상기 좌상단 샘플 위치에 대응하는 상기 모션 벡터의 수직 성분이며; 는 상기 현재의 블록의 상기 우상단 샘플 위치에 대응하는 상기 모션 벡터의 수평 성분이고, 그리고 는 상기 현재의 블록의 상기 우상단 샘플 위치에 대응하는 상기 모션 벡터의 수직 성분이며; 는 상기 현재의 블록의 상기 좌하단 샘플 위치에 대응하는 상기 모션 벡터의 수평 성분이고, 그리고 는 상기 현재의 블록의 상기 좌하단 샘플 위치에 대응하는 상기 모션 벡터의 수직 성분이며; 는 상기 이웃하는 블록의 좌상단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 상기 이웃하는 블록의 상기 좌상단 샘플 위치에 대응하는 상기 모션 벡터의 수직 성분이며; 는 상기 이웃하는 블록의 우상단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 상기 이웃하는 블록의 상기 우상단 샘플 위치에 대응하는 상기 모션 벡터의 수직 성분이며; 는 상기 현재의 블록의 상기 좌상단 샘플 위치의 수평 좌표이고, 그리고 는 상기 현재의 블록의 상기 좌상단 샘플 위치의 수직 좌표이며; 는 상기 현재의 블록의 상기 우상단 샘플 위치의 수평 좌표이고, 그리고 는 상기 현재의 블록의 상기 우상단 샘플 위치의 수직 좌표이며; 는 상기 현재의 블록의 상기 좌하단 샘플 위치의 수평 좌표이고, 그리고 는 상기 현재의 블록의 상기 좌하단 샘플 위치의 수직 좌표이며; 는 상기 이웃하는 블록의 상기 좌상단 샘플 위치의 수평 좌표이고, 그리고 는 상기 이웃하는 블록의 상기 좌상단 샘플 위치의 수직 좌표이며; 그리고 는 상기 이웃하는 블록의 상기 우상단 샘플 위치의 수평 좌표인, 디코딩 디바이스.
  12. 제 9 항에 있어서,
    N은 3과 같고 K는 2와 같으며, 이에 따라, 상기 현재의 블록의 2개의 제어 지점들의 후보 모션 벡터들은 상기 현재의 블록의 상기 이웃하는 블록에 사용되는 6-파라미터 아핀 변환 모델에 기초하여 획득되는, 디코딩 디바이스.
  13. 제 12 항에 있어서,
    상기 현재의 블록의 상기 2개의 제어 지점들의 상기 후보 모션 벡터들은 상기 현재의 블록의 좌상단 샘플 위치에서의 모션 벡터 및 상기 현재의 블록의 우상단 샘플 위치에서의 모션 벡터를 포함하며;
    상기 예측 프로세싱 유닛은 다음 수식들에 따라서 상기 현재의 블록의 상기 2개의 제어 지점들의 상기 후보 모션 벡터들을 계산하도록 구성되며:


    여기서, 는 상기 현재의 블록의 상기 좌상단 샘플 위치에 대응하는 상기 모션 벡터의 수평 성분이고, 그리고 는 상기 현재의 블록의 상기 좌상단 샘플 위치에 대응하는 상기 모션 벡터의 수직 성분이며; 는 상기 현재의 블록의 상기 우상단 샘플 위치에 대응하는 상기 모션 벡터의 수평 성분이고, 그리고 는 상기 현재의 블록의 상기 우상단 샘플 위치에 대응하는 상기 모션 벡터의 수직 성분이며; 는 상기 이웃하는 블록의 좌상단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 상기 이웃하는 블록의 상기 좌상단 샘플 위치에 대응하는 상기 모션 벡터의 수직 성분이며; 는 상기 이웃하는 블록의 우상단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 상기 이웃하는 블록의 상기 우상단 샘플 위치에 대응하는 상기 모션 벡터의 수직 성분이며; 는 상기 이웃하는 블록의 좌하단 샘플 위치에 대응하는 모션 벡터의 수평 성분이고, 그리고 는 상기 이웃하는 블록의 상기 좌하단 샘플 위치에 대응하는 상기 모션 벡터의 수직 성분이며; 는 상기 현재의 블록의 상기 좌상단 샘플 위치의 수평 좌표이고, 그리고 는 상기 현재의 블록의 상기 좌상단 샘플 위치의 수직 좌표이며; 는 상기 현재의 블록의 상기 우상단 샘플 위치의 수평 좌표이고, 그리고 는 상기 현재의 블록의 상기 우상단 샘플 위치의 수직 좌표이며; 는 상기 이웃하는 블록의 상기 좌상단 샘플 위치의 수평 좌표이고, 그리고 는 상기 이웃하는 블록의 상기 좌상단 샘플 위치의 수직 좌표이며; 는 상기 이웃하는 블록의 상기 우상단 샘플 위치의 수평 좌표이며; 그리고 는 상기 이웃하는 블록의 상기 좌하단 샘플 위치의 수직 좌표인, 디코딩 디바이스.
  14. 제 9 항 내지 제 13 항 중 어느 한 항에 있어서,
    상기 예측 프로세싱 유닛은,
    상기 현재의 블록의 상기 K개의 제어 지점들의 상기 목표 후보 모션 벡터들에 기초하여 상기 현재의 블록의 2×K-파라미터 아핀 변환 모델을 획득하고;
    상기 현재의 블록의 상기 2×K-파라미터 아핀 변환 모델에 기초하여 상기 현재의 블록의 각각의 서브블록의 상기 예측된 모션 벡터를 획득하도록 구체적으로 구성되는, 디코딩 디바이스.
  15. 제 14 항에 있어서,
    상기 예측 프로세싱 유닛은,
    상기 현재의 블록의 상기 K개의 제어 지점들의 상기 목표 후보 모션 벡터들 및 상기 현재의 블록의 상기 K개의 제어 지점들의 모션 벡터 차이들에 기초하여 상기 현재의 블록의 상기 K개의 제어 지점들의 모션 벡터들을 획득 - 상기 현재의 블록의 상기 K개의 제어 지점들의 상기 모션 벡터 차이들은 상기 비트스트림을 파싱함으로써 획득됨 - 하고;
    상기 현재의 블록의 상기 K개의 제어 지점들의 상기 모션 벡터들에 기초하여 상기 현재의 블록의 상기 2×K-파라미터 아핀 변환 모델을 획득하도록 구체적으로 구성되는, 디코딩 디바이스.
  16. 제 9 항 내지 제 13 항 중 어느 한 항에 있어서,
    상기 인덱스 값에 기초하여, 상기 후보 모션 벡터 리스트에서, 상기 현재의 블록의 상기 K개의 제어 지점들의 상기 목표 후보 모션 벡터들을 결정한 후, 상기 예측 프로세싱 유닛은,
    상기 현재의 블록의 상기 K개의 제어 지점들의 상기 목표 후보 모션 벡터들에 기초하여 상기 현재의 블록의 6-파라미터 아핀 변환 모델을 획득하고;
    상기 현재의 블록의 상기 6-파라미터 아핀 변환 모델에 기초하여 상기 현재의 블록의 각각의 서브블록의 상기 예측된 모션 벡터를 획득하도록 더 구성되는, 디코딩 디바이스.
KR1020217002027A 2018-07-02 2018-11-22 모션 벡터 예측 방법 및 관련 장치 KR102606146B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237040062A KR20230162152A (ko) 2018-07-02 2018-11-22 모션 벡터 예측 방법 및 관련 장치

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862693422P 2018-07-02 2018-07-02
US62/693,422 2018-07-02
US201862699733P 2018-07-18 2018-07-18
US62/699,733 2018-07-18
PCT/CN2018/116984 WO2020006969A1 (zh) 2018-07-02 2018-11-22 运动矢量预测方法以及相关装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237040062A Division KR20230162152A (ko) 2018-07-02 2018-11-22 모션 벡터 예측 방법 및 관련 장치

Publications (2)

Publication Number Publication Date
KR20210022101A KR20210022101A (ko) 2021-03-02
KR102606146B1 true KR102606146B1 (ko) 2023-11-23

Family

ID=69060695

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217002027A KR102606146B1 (ko) 2018-07-02 2018-11-22 모션 벡터 예측 방법 및 관련 장치
KR1020237040062A KR20230162152A (ko) 2018-07-02 2018-11-22 모션 벡터 예측 방법 및 관련 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020237040062A KR20230162152A (ko) 2018-07-02 2018-11-22 모션 벡터 예측 방법 및 관련 장치

Country Status (9)

Country Link
US (4) US11206408B2 (ko)
EP (1) EP3809704A4 (ko)
JP (2) JP7368396B2 (ko)
KR (2) KR102606146B1 (ko)
CN (3) CN115695791A (ko)
BR (1) BR112020026992A2 (ko)
MX (4) MX2021000171A (ko)
SG (1) SG11202013202YA (ko)
WO (1) WO2020006969A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI835864B (zh) 2018-09-23 2024-03-21 大陸商北京字節跳動網絡技術有限公司 簡化的空時運動矢量預測
US11418793B2 (en) * 2018-10-04 2022-08-16 Qualcomm Incorporated Adaptive affine motion vector coding
CN113196771B (zh) * 2018-12-21 2023-12-22 北京字节跳动网络技术有限公司 基于运动矢量精度的运动矢量范围
CN112055207B (zh) * 2020-08-06 2024-05-31 浙江大华技术股份有限公司 时域运动矢量预测方法、设备及存储介质
CN114374849A (zh) * 2020-10-18 2022-04-19 腾讯科技(深圳)有限公司 一种候选运动信息列表确定方法、装置、电子设备及存储介质
US11425368B1 (en) * 2021-02-17 2022-08-23 Adobe Inc. Lossless image compression using block based prediction and optimized context adaptive entropy coding
CN114979627A (zh) * 2021-02-24 2022-08-30 华为技术有限公司 视频编码中的运动矢量(mv)约束和变换约束

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180098063A1 (en) * 2016-10-05 2018-04-05 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101873767B1 (ko) * 2010-05-26 2018-07-03 엘지전자 주식회사 비디오 신호의 처리 방법 및 장치
US9049455B2 (en) * 2010-12-28 2015-06-02 Panasonic Intellectual Property Corporation Of America Image coding method of coding a current picture with prediction using one or both of a first reference picture list including a first current reference picture for a current block and a second reference picture list including a second current reference picture for the current block
KR101484171B1 (ko) * 2011-01-21 2015-01-23 에스케이 텔레콤주식회사 예측 움직임벡터 색인부호화에 기반한 움직임정보 생성/복원 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법
CN102883163B (zh) * 2012-10-08 2014-05-28 华为技术有限公司 用于运动矢量预测的运动矢量列表建立的方法、装置
CN103402045A (zh) * 2013-08-20 2013-11-20 长沙超创电子科技有限公司 一种基于分区匹配和仿射模型相结合的图像去旋稳像方法
CN103561263B (zh) * 2013-11-06 2016-08-24 北京牡丹电子集团有限责任公司数字电视技术中心 基于运动矢量约束和加权运动矢量的运动补偿预测方法
WO2016008157A1 (en) * 2014-07-18 2016-01-21 Mediatek Singapore Pte. Ltd. Methods for motion compensation using high order motion model
CN104539966B (zh) * 2014-09-30 2017-12-22 华为技术有限公司 图像预测方法及相关装置
CN109005407B (zh) * 2015-05-15 2023-09-01 华为技术有限公司 视频图像编码和解码的方法、编码设备和解码设备
KR20180028513A (ko) * 2015-08-04 2018-03-16 엘지전자 주식회사 비디오 코딩 시스템에서 인터 예측 방법 및 장치
CN114866770A (zh) * 2015-08-07 2022-08-05 Lg 电子株式会社 视频编译系统中的帧间预测方法和装置
CN105163116B (zh) * 2015-08-29 2018-07-31 华为技术有限公司 图像预测的方法及设备
US20190028731A1 (en) * 2016-01-07 2019-01-24 Mediatek Inc. Method and apparatus for affine inter prediction for video coding system
WO2017156705A1 (en) * 2016-03-15 2017-09-21 Mediatek Inc. Affine prediction for video coding
US10560712B2 (en) * 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
US11089323B2 (en) * 2016-05-28 2021-08-10 Mediatek Inc. Method and apparatus of current picture referencing for video coding
CN106454378B (zh) * 2016-09-07 2019-01-29 中山大学 一种基于变形运动模型的帧率上转换视频编码方法及系统
US10631002B2 (en) 2016-09-30 2020-04-21 Qualcomm Incorporated Frame rate up-conversion coding mode
WO2018128379A1 (ko) * 2017-01-03 2018-07-12 엘지전자(주) 어파인 예측을 이용하여 비디오 신호를 처리하는 방법 및 장치
US10701390B2 (en) * 2017-03-14 2020-06-30 Qualcomm Incorporated Affine motion information derivation
US10602180B2 (en) * 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180098063A1 (en) * 2016-10-05 2018-04-05 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding

Also Published As

Publication number Publication date
US20230370606A1 (en) 2023-11-16
US20210127116A1 (en) 2021-04-29
CN115695791A (zh) 2023-02-03
US20220078443A1 (en) 2022-03-10
KR20210022101A (ko) 2021-03-02
EP3809704A4 (en) 2021-04-28
MX2022013784A (es) 2022-11-30
US20230370607A1 (en) 2023-11-16
MX2021000171A (es) 2022-11-01
US11683496B2 (en) 2023-06-20
MX2022013781A (es) 2022-11-30
US11206408B2 (en) 2021-12-21
CN110876282A (zh) 2020-03-10
EP3809704A1 (en) 2021-04-21
KR20230162152A (ko) 2023-11-28
JP7368396B2 (ja) 2023-10-24
BR112020026992A2 (pt) 2021-04-06
SG11202013202YA (en) 2021-01-28
WO2020006969A1 (zh) 2020-01-09
CN110876282B (zh) 2022-10-18
CN115733974A (zh) 2023-03-03
JP2021529483A (ja) 2021-10-28
JP2023184560A (ja) 2023-12-28
MX2022013782A (es) 2022-11-30

Similar Documents

Publication Publication Date Title
US11252436B2 (en) Video picture inter prediction method and apparatus, and codec
KR102606146B1 (ko) 모션 벡터 예측 방법 및 관련 장치
KR102607443B1 (ko) 비디오 데이터 인터 예측 방법 및 장치
US20230239494A1 (en) Video encoder, video decoder, and corresponding method
CN112740663B (zh) 图像预测方法、装置以及相应的编码器和解码器
CN110677645B (zh) 一种图像预测方法及装置
TWI841033B (zh) 視頻數據的幀間預測方法和裝置
CN110971899B (zh) 一种确定运动信息的方法、帧间预测方法及装置
KR20210046777A (ko) 인터 예측 방법 및 장치, 비디오 인코더 및 비디오 디코더

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant