KR102675854B1 - 비디오 픽처 예측 방법 및 장치 - Google Patents

비디오 픽처 예측 방법 및 장치 Download PDF

Info

Publication number
KR102675854B1
KR102675854B1 KR1020217008940A KR20217008940A KR102675854B1 KR 102675854 B1 KR102675854 B1 KR 102675854B1 KR 1020217008940 A KR1020217008940 A KR 1020217008940A KR 20217008940 A KR20217008940 A KR 20217008940A KR 102675854 B1 KR102675854 B1 KR 102675854B1
Authority
KR
South Korea
Prior art keywords
affine
identifier
motion
motion model
block
Prior art date
Application number
KR1020217008940A
Other languages
English (en)
Other versions
KR20210046768A (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 KR1020247009086A priority Critical patent/KR20240040131A/ko
Publication of KR20210046768A publication Critical patent/KR20210046768A/ko
Application granted granted Critical
Publication of KR102675854B1 publication Critical patent/KR102675854B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/527Global motion vector estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods 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 slice, e.g. a line of blocks or a group of 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 출원은 비디오 픽처 예측 방법 및 장치를 제공하여 코딩된 비디오 시퀀스의 길이가 증가하는 종래의 기술에서의 문제를 해결한다. 일부의 비디오 픽처는 아핀 특징을 가지지 않으며, 일부의 비디오 픽처의 모든 슬라이스가 아핀 특징을 가지는 것은 아니다. 이 경우, 제1 유형의 식별자 및 제2 유형의 식별자가 비트스트림에 부가될 수 있다. 제1 유형의 식별자는 아핀 모션 모델-기반 인터 예측 모드가 비디오 픽처에 대해 인에이블되는지를 나타내는 데 사용되고, 제2 유형의 식별자는 아핀 모션 모델-기반 인터 예측 모드가 비디오 픽처 내 슬라이스에 대해 인에이블되는지를 나타내는 데 사용된다. 아핀 모션 모델이 사용될 필요가 없는 슬라이스에 포함된 비디오 블록 또는 픽처 블록에 있어서, 픽처 블록의 아핀 모션 모델과 관련된 파라미터는 전송될 필요가 없다. 디코더 측에서, 픽처 블록의 디코딩 동안, 아핀 모션 모델과 관련된 파라미터는 파싱되지 않는다. 이것은 디코더의 부하를 감소시키고, 처리 속도를 증가시키며 처리 시간을 감소시킬 수 있다.

Description

비디오 픽처 예측 방법 및 장치
본 출원은 2018년 8월 27일 중국특허청에 출원되고 발명의 명칭이 "비디오 픽처 예측 방법 및 장치"인 중국특허출원 No. 201810983026.0에 대한 우선권을 주장하며, 상기 문헌은 그 전문이 본 명세서에 참조로 포함된다.
본 출원은 픽처 인코딩 및 디코딩 기술 분야에 관한 것이며, 특히 비디오 픽처 예측 방법 및 장치에 관한 것이다.
정보 기술의 발달로 고화질 TV, 웹 회의, IPTV 및 3D TV와 같은 비디오 서비스가 빠르게 발전하고 있다. 직관성과 고효율이라는 장점 덕분에 비디오 신호는 사람들의 일상 생활에서 정보를 얻는 주요 방법이 되었다. 비디오 신호는 많은 양의 데이터를 포함하므로 많은 양의 전송 대역폭과 저장 공간을 차지한다. 비디오 신호를 효과적으로 전송하고 저장하려면 비디오 신호에 대해 압축 인코딩을 수행해야 한다. 비디오 압축 기술은 비디오 응용 분야에서 점점 더 필수적인 핵심 기술이 되었다.
비디오 코딩 압축의 기본 원리는 공간 영역, 시간 영역 및 코드 워드 간의 상관 관계를 기반으로 가능한 중복성을 제거하는 것이다. 현재 널리 사용되는 방법은 픽처 블록 기반 하이브리드 비디오 코딩 프레임 워크를 사용하여 예측(인트라 예측 및 인터 예측 포함), 변환, 양자화 및 엔트로피 코딩과 같은 단계를 수행하여 비디오 코딩 압축을 구현하는 것이다.
다양한 비디오 인코딩/디코딩 솔루션에서, 인터 예측에서의 모션 추정/모션 보상은 인코딩/디코딩 성능에 영향을 미치는 핵심 기술이다. 기존의 인터 예측에서는 병진 운동 모델을 이용한 블록 기반 모션 보상(motion compensation, MC) 예측을 기반으로 비 병진 모션 모델(예를 들어, 아핀 모션 모델)을 이용한 서브 블록 기반 모션 보상 예측이 추가되었다. 비 병진 모션 모델의 사용 여부에 관계없이 아핀 모션 모델에 대한 관련 파라미터를 코딩된 비디오 시퀀스에 추가해야 한다. 그 결과, 코딩된 비디오 시퀀스의 길이가 증가한다.
본 출원은 비디오 픽처 예측 방법 및 장치를 제공하여 코딩된 비디오 시퀀스의 길이가 증가하는 종래의 기술에서의 문제를 해결한다.
제1 관점에 따라, 본 출원의 실시예는 비디오 픽처 예측 방법을 제공하며, 상기 방법은: 비트스트림을 파싱하여 제1 식별자를 획득하는 단계; 상기 제1 식별자가 처리 대상 블록(to-be-processed block)을 포함하는 비디오 픽처 내 픽처 블록의 인터 예측을 위한 후보 모션 모델이 아핀 모션 모델(affine motion model)을 포함하고 있음을 나타내며, 상기 처리 대상 블록이 상기 아핀 모션 모델을 사용하여 인터 예측을 위한 미리 설정된 조건을 충족할 때, 상기 비트스트림을 파싱하여 제2 식별자를 획득하는 단계; 및 상기 제2 식별자에 기초하여 상기 처리 대상 블록의 인터 예측을 위한 예측 모드를 결정하는 단계를 포함하며, 상기 예측 모드는 아핀 모션 모델 기반 병합 모드(affine motion model--based merge mode), 아핀 모션 모델 기반 고급 모션 벡터 예측(affine motion model-based advanced motion vector prediction, AMVP) 모드 및 비-아핀 모션 모델 기반 예측 모드(non-affine motion model-based prediction mode)를 포함한다.
예를 들어, 전술한 솔루션에서 일부 비디오 픽처에는 일부 아핀 기능이 있을 수 있는 반면 일부 비디오 픽처에는 아핀 기능이 없을 수 있다. 이 경우, 비디오 픽처에 대해 아핀 모션 모델 기반 인터 예측 모드가 인에이블되는지를 나타내는 식별자가 비트스트림에 추가될 수 있다. 비디오 픽처에 대해 아핀 모션 모델 기반 인터 예측 모드가 인에이블되지 않는 경우, 비디오 픽처의 픽처 블록의 아핀 모션 모델과 관련된 파라미터를 전송할 필요가 없을 수 있다. 디코더 측에서는 비디오 픽처의 픽처 블록을 디코딩하는 동안 아핀 모션 모델과 관련된 파라미터를 파싱할 필요가 없다. 이는 디코더의 부하를 줄이고 처리 속도를 높이며 처리 시간을 줄일 수 있다.
예를 들어, "제1" 및 "제2"와 같은 용어는 단지 구별 및 설명을 위해 사용되며 상대적 중요성의 표시 또는 함축 또는 순서의 표시 또는 함축으로 이해되지 않아야 한다. 또한, 식별자와 같은 파라미터에 대해, 다양한 측면 및 특정 실시예에서 동일한 콘텐츠의 설명을 위해 상이한 이름이 사용될 수 있다. 예를 들어, 제1 관점에서 제1 식별자는 제2 관점에서 제5 식별자로 지칭된다. 특정 실시예에서, 제1 관점의 제1 식별자는 식별자 1로 지칭되고, 제1 관점의 제2 식별자는 식별자 12로 지칭된다.
제1 관점의 가능한 설계에서, 상기 비트스트림을 파싱하여 제1 식별자를 획득하는 단계는 다음 방식: 상기 비트스트림의 시퀀스 파라미터 세트를 파싱하여 제1 식별자를 획득하는 단계로 구현될 수 있다. 제1 식별자가 시퀀스 파라미터 세트에 구성되고 제1 식별자가 비디오 픽처에 대해 아핀 모션 모델 기반 인터 예측 모드가 인에이블되지 않음을 나타내는 경우, 비디오 픽처의 각 픽처 블록 레벨 신택스는 아핀 모션 모델과 관련된 신택스 요소를 포함하지 않는다. 디코더 측에서는 비디오 픽처의 픽처 블록을 디코딩하는 동안 아핀 모션 모델과 관련된 파라미터를 파싱할 필요가 없다. 이는 디코더의 부하를 줄이고 처리 속도를 높이며 처리 시간을 줄일 수 있다.
제1 관점의 가능한 설계에서, 상기 제1 식별자가 상기 처리 대상 블록을 포함하는 상기 비디오 픽처의 픽처 블록의 인터 예측을 위한 상기 후보 모션 모델이 상기 아핀 모션 모델을 포함하고 있음을 나타낼 때, 상기 방법은: 상기 비트스트림을 파싱하여 제3 식별자를 획득하는 단계를 더 포함한다. 상기 제3 식별자가 제1 값일 때, 상기 아핀 모션 모델은 오직 4-파라미터 아핀 모델만을 포함하거나; 또는 상기 제3 식별자가 제2 값일 때, 상기 아핀 모션 모델은 4-파라미터 아핀 모델 및 6-파라미터 아핀 모델을 포함하며, 여기서 상기 제1 값은 상기 제2 값과 상이하다.
전술한 설계에서, 6-파라미터 아핀 모델을 포함하는 아핀 모션 모델이 비디오 픽처에 대해 인에이블되는지를 나타내는 제3 식별자가 비트스트림에 더 구성될 수 있다. 제3 식별자가 6-파라미터 아핀 모델이 비디오 픽처에 대해 인에이블되지 않음을 나타내는 경우, 6-파라미터 아핀 모델과 관련된 파라미터는 비디오 픽처의 영상 블록에 대해 파싱할 필요가 없다. 6-파라미터 아핀 모델은 비디오 픽처의 각 영상 블록에 대해 비트스트림으로 전송될 필요가 없다. 이는 코딩된 비디오 시퀀스의 길이를 줄이고 디코더의 부하를 줄이며 처리 속도를 높이고 처리 시간을 줄일 수 있다.
특정 실시예에서, 제1 관점의 제3 식별자는 식별자 13으로 지칭된다.
제1 관점의 가능한 설계에서, 상기 방법은: 상기 제2 식별자가 상기 아핀 모션 모델 기반 병합 모드가 성가 처리 대상 블록의 인터 예측에 사용됨을 나타내고, 상기 제3 식별자가 상기 제2 값일 때, 제1 후보 모션 벡터 리스트를 구성하는 단계 - 상기 제1 후보 모션 벡터 리스트는 제1 요소를 포함하고, 상기 제1 요소는 상기 6-파라미터 아핀 모션 모델을 구성하기 위한 3 개의 제어점의 모션 정보를 포함함 - ; 또는
상기 제2 식별자가 상기 아핀 모션 모델 기반 병합 모드가 상기 처리 대상 블록의 인터 예측에 사용됨을 나타내고, 상기 제3 식별자가 상기 제1 값일 때, 제2 후보 모션 벡터 리스트를 구성하는 단계 - 상기 제2 후보 모션 벡터 리스트는 제2 요소를 포함하고, 상기 제2 요소는 상기 4-파라미터 아핀 모션 모델을 구성하기 위한 두 개의 제어점의 모션 정보만을 포함함 -
를 더 포함한다.
전술한 설계에서, 제3 식별자 및 제2 식별자는 후보 모션 벡터 리스트의 구성을 나타내기 위해 사용된다.
제1 관점의 가능한 설계에서, 상기 제2 식별자가 상기 아핀 모션 모델 기반 병합 모드가 상기 처리 대상 블록의 인터 예측에 사용됨을 나타내고, 상기 제3 식별자가 상기 제2 값일 때, 상기 제1 후보 모션 벡터 리스트는 상기 제2 요소를 더 포함한다.
제1 관점의 가능한 설계에서, 상기 방법은: 상기 제2 식별자가 상기 아핀 모션 모델 기반 AMVP 모드가 상기 처리 대상 블록의 인터 예측에 사용됨을 나타내고, 상기 제3 식별자가 제2 값일 때, 상기 비트스트림을 파싱하여 제4 식별자를 획득하는 단계를 더 포함한다. 상기 제4 식별자가 제3 값일 때, 상기 아핀 모션 모델은 상기 6-파라미터 아핀 모션 모델이거나, 상기 제4 식별자가 제4 값일 때, 상기 아핀 모션 모델은 상기 4-파라미터 아핀 모션 모델이며, 상기 제3 값은 상기 제4 값과 상이하다.
특정 실시예에서, 제4 식별자는 식별자 14로 지칭된다.
제1 관점의 가능한 설계에서, 제1 미리 설정된 임계 값은 제2 미리 설정된 임계 값과 동일하다.
제1 관점의 가능한 설계에서, 상기 미리 설정된 조건은 상기 처리 대상 블록의 폭이 제1 미리 설정된 임계 값보다 크거나 같고, 상기 처리 대상 블록의 높이가 제2 미리 설정된 임계 값 이상보다 크거나 같은 것을 포함한다.
제1 관점의 가능한 설계에서, 상기 제1 미리 설정된 임계 값은 상기 제2 미리 설정된 임계 값과 같다.
제2 관점에 따라, 본 출원의 실시예는 비디오 픽처 예측 방법을 제공하며, 상기 방법은: 비트스트림을 파싱하여 제1 식별자를 획득하는 단계; 상기 제1 식별자가 상기 처리 대상 블록을 포함하는 슬라이스 내 픽처 블록의 인터 예측을 위한 후보 모션 모델이 아핀 모션 모델을 포함하고 있음을 나타내고, 상기 처리 대상 블록이 상기 아핀 모션 모델을 사용하여 인터 예측을 위한 미리 설정된 조건을 충족할 때, 상기 비트스트림을 분석하여 제2 식별자를 획득하는 단계; 및 상기 제2 식별자에 기초하여, 상기 처리 대상 블록의 인터 예측을 위한 예측 모드를 결정하는 단계를 포함하며, 상기 예측 모드는 아핀 모션 모델 기반 병합 모드(affine motion model--based merge mode), 아핀 모션 모델 기반 고급 모션 벡터 예측(affine motion model-based advanced motion vector prediction, AMVP) 모드 및 비-아핀 모션 모델 기반 예측 모드(non-affine motion model-based prediction mode)를 포함한다.
전술한 솔루션에서, 예를 들어, 비디오 픽처의 일부 슬라이스는 일부 아핀 특징을 가질 수 있는 반면, 비디오 픽처의 일부 슬라이스는 아핀 특징을 갖지 않을 수 있다. 이 경우, 비디오 픽처의 슬라이스에 대해 아핀 모션 모델 기반 인터 예측 모드가 인에이블되는지를 나타내는 식별자가 비트스트림에 추가될 수 있다. 슬라이스에 대해 아핀 모션 모델 기반 인터 예측 모드가 인에이블되지 않는 경우, 슬라이스에 포함된 픽처 블록의 아핀 모션 모델과 관련된 파라미터를 전송할 필요가 없을 수 있다. 디코더 측에서는 슬라이스 내 픽처 블록을 디코딩하는 동안 아핀 모션 모델과 관련된 파라미터를 파싱할 필요가 없다. 이는 디코더의 부하를 줄이고 처리 속도를 높이며 처리 시간을 줄일 수 있다.
특정 실시예에서 제2 관점의 제1 식별자는 식별자 2로 지칭되고, 특정 실시예에서 제2 관점의 제2 식별자는 식별자 22로 지칭된다는 점에 유의해야 한다.
제2 관점의 가능한 설계에서, 상기 비트스트림을 파싱하여 제1 식별자를 획득하는 단계는: 상기 비트스트림 내 슬라이스의 슬라이스 헤더를 파싱하여 제1 식별자를 획득하는 단계를 포함한다.
슬라이스의 슬라이스 헤더에 제1 식별자가 구성되고 제1 식별자가 슬라이스에 대해 아핀 모션 모델 기반 인터 예측 모드가 인에이블되지 않음을 나타내는 경우, 슬라이스의 각 픽처 블록 레벨 신택스는 아핀 모션 모델과 관련된 신택스 요소를 포함하지 않는다. 디코더 측에서는 슬라이스 내 픽처 블록을 디코딩하는 동안 아핀 모션 모델과 관련된 파라미터를 파싱할 필요가 없다. 이는 디코더의 부하를 줄이고 처리 속도를 높이며 처리 시간을 줄일 수 있다.
제2 관점의 가능한 설계에서, 상기 제1 식별자가 상기 처리 대상 블록을 포함하는 상기 슬라이스 내 픽처 블록의 인터 예측을 위한 상기 후보 모션 모델이 상기 아핀 모션 모델을 포함하고 있음을 나타낼 때, 상기 비트스트림을 파싱하여 제3 식별자를 획득하는 단계를 더 포함하며, 상기 제3 식별자가 제1 값일 때, 상기 아핀 모션 모델은 4-파라미터 아핀 모델만을 포함하거나; 또는 상기 제3 식별자가 제2 값일 때, 상기 아핀 모션 모델은 4-파라미터 아핀 모델 및 6-파라미터 아핀 모델을 포함하며, 상기 제1 값은 상기 제2 값과 상이하다.
제2 관점의 제3 식별자는 특정 실시예에서 식별자 23으로 지칭된다는 점에 유의해야 한다.
제2 관점의 가능한 설계에서, 상기 방법은: 상기 제2 식별자가 상기 아핀 모션 모델 기반 병합 모드가 상기 처리 대상 블록의 인터 예측에 사용됨을 나타내고, 상기 제3 식별자가 상기 제2 값일 때, 제1 후보 모션 벡터 리스트를 구성하는 단계 - 상기 제1 후보 모션 벡터 리스트는 제1 요소를 포함하고, 상기 제1 요소는 상기 6-파라미터 아핀 모션 모델을 구성하기 위한 3 개의 제어점의 모션 정보를 포함함 - ; 또는
상기 제2 식별자가 상기 아핀 모션 모델 기반 병합 모드가 상기 처리 대상 블록의 인터 예측에 사용됨을 나타내고, 상기 제3 식별자가 상기 제1 값일 때, 제2 후보 모션 벡터 리스트를 구성하는 단계 - 상기 제2 후보 모션 벡터 리스트는 제2 요소를 포함하고, 상기 제2 요소는 4-파라미터 아핀 모션 모델을 구성하기 위한 2 개의 제어점의 모션 정보만을 포함함 -
를 더 포함한다.
제2 관점의 가능한 설계에서, 상기 제2 식별자가 상기 아핀 모션 모델 기반 병합 모드가 상기 처리 대상 블록의 인터 예측에 사용됨을 나타내고, 상기 제3 식별자가 상기 제2 값일 때, 상기 제1 후보 모션 벡터 리스트는 상기 제2 요소를 더 포함한다.
제2 관점의 가능한 설계에서, 상기 방법은: 상기 제2 식별자가 상기 아핀 모션 모델 기반 AMVP 모드가 상기 처리 대상 블록의 인터 예측에 사용됨을 나타내고, 상기 제3 식별자가 상기 제2 값일 때, 상기 비트스트림을 파싱하여 제4 식별자를 획득하는 단계를 더 포함한다.
상기 제4 식별자가 제3 값일 때, 상기 아핀 모션 모델은 상기 6-파라미터 아핀 모션 모델이거나, 상기 제4 식별자가 제4 값일 때, 상기 아핀 모션 모델은 상기 4-파라미터 아핀 모션 모델이고, 상기 제3 값은 상기 제4 값과 상이하다.
본 출원에서, 제4 식별자는 특정 실시예에서 식별자 24로 지칭된다는 점에 유의해야 한다.
전술한 설계에서, 슬라이스에 사용되는 아핀 모션 모델이 6-파라미터 아핀 모션 모델을 포함할 수 있는지를 나타내는 제3 식별자가 비트스트림에 더 구성될 수 있다. 제3 식별자가 슬라이스에 대해 6-파라미터 아핀 모델이 인에이블되지 않음을 나타내는 경우, 6-파라미터 아핀 모델과 관련된 파라미터는 슬라이스에 포함된 픽처 블록에 대해 파싱할 필요가 없다. 6-파라미터 아핀 모델은 슬라이스에 포함된 각 픽처 블록에 대해 비트스트림으로 전송될 필요가 없다. 이는 코딩된 비디오 시퀀스의 길이를 줄이고 디코더의 부하를 줄이며 처리 속도를 높이고 처리 시간을 줄일 수 있다.
제2 관점의 가능한 설계에서, 상기 비트스트림을 파싱하여 제3 식별자를 획득하는 단계는: 상기 비트스트림 내 슬라이스의 슬라이스 헤더를 파싱하여 제3 식별자를 획득하는 단계를 포함한다.
제2 관점의 가능한 설계에서, 상기 비트스트림을 파싱하여 제1 식별자를 획득하기 전에, 상기 방법은: 상기 비트스트림을 파싱하여 제5 식별자를 획득하는 단계를 더 포함한다. 상기 제5 식별자가 제5 값일 때, 상기 처리 대상 블록을 포함하는 비디오 픽처의 인터 예측을 위한 후보 모션 모델이 아핀 모션 모델을 포함하거나, 상기 제5 식별자가 제6 값일 때, 상기 처리 대상 블록을 포함하는 비디오 픽처의 인터 예측을 위한 후보 모션 모델은 비-아핀 모션 모델만을 포함하며, 상기 제5 값은 상기 제6 값과 상이하다.
제5 식별자는 특정 실시예에서 식별자 1로 지칭된다.
일부 비디오 픽처에는 아핀 특징이 없는 반면, 일부 비디오 픽처의 모든 슬라이스가 아핀 특징을 갖는 것은 아니다. 이 경우 두 개의 식별자가 비트스트림에 추가될 수 있다. 제1 유형의 식별자(제2 관점에서 제5 식별자라고 지칭함)는 비디오 픽처에 대해 아핀 모션 모델 기반 인터 예측 모드가 인에이블되는지를 나타내기 위해 사용되며, 제2 유형의 식별자(제2 관점에서 제1 식별자라고 지칭함)는 비디오 픽처의 슬라이스에 대해 아핀 모션 모델 기반 인터 예측 모드가 인에이블되는지를 나타내는 데 사용된다. 아핀 모션 모델을 사용할 필요가 없는 슬라이스에 포함된 비디오 픽처 또는 픽처 블록에 대해서는 픽처 블록의 아핀 모션 모델과 관련된 파라미터를 전송하지 않아도 된다. 디코더 측에서는 픽처 블록을 디코딩하는 동안 아핀 모션 모델과 관련된 파라미터를 파싱할 필요가 없다. 이는 디코더의 부하를 줄이고 처리 속도를 높이며 처리 시간을 줄일 수 있다.
제2 관점의 가능한 설계에서, 상기 비트스트림을 파싱하여 제5 식별자를 획득하는 단계는: 상기 비트스트림의 시퀀스 파라미터 세트를 파싱하여 제5 식별자를 획득하는 단계를 포함한다.
제2 관점의 가능한 설계에서, 상기 비트스트림을 파싱하여 제5 식별자를 획득한 후, 그리고 상기 비트스트림을 파싱하여 제1 식별자를 획득하기 전에, 상기 방법은: 상기 비트스트림을 파싱하여 제6 식별자를 획득하는 단계를 더 포함한다. 상기 제6 식별자는 비트스트림이 상기 제3 식별자를 포함하는 것으로 결정하는 데 사용된다.
제2 관점의 제6 식별자는 특정 실시예에서 식별자 13으로 지칭된다는 점에 유의해야 한다.
제2 관점의 가능한 설계에서, 상기 비트스트림을 파싱하여 제6 식별자를 획득하는 단계는: 상기 비트스트림의 시퀀스 파라미터 세트를 파싱하여 제6 식별자를 획득하는 단계를 포함한다.
제2 관점의 가능한 설계에서, 상기 미리 설정된 조건은 상기 처리 대상 블록의 폭이 제1 미리 설정된 임계 값보다 크거나 같고, 상기 처리 대상 블록의 높이가 제2 미리 설정된 임계 값 이상보다 크거나 같은 것을 포함한다.
제2 관점의 가능한 설계에서, 상기 제1 미리 설정된 임계 값은 상기 제2 미리 설정된 임계 값과 같다.
제1 관점과 동일한 발명의 개념을 바탕으로, 제3 관점에 따라, 본 출원의 실시예는 비디오 픽처 예측 장치를 제공하며, 상기 장치는: 비트스트림을 파싱하여 제1 식별자를 획득하고; 상기 제1 식별자가 처리 대상 블록(to-be-processed block)을 포함하는 비디오 픽처 내 픽처 블록의 인터 예측을 위한 후보 모션 모델이 아핀 모션 모델(affine motion model)을 포함하고 있음을 나타내며, 상기 처리 대상 블록이 상기 아핀 모션 모델을 사용하여 인터 예측을 위한 미리 설정된 조건을 충족할 때, 상기 비트스트림을 파싱하여 제2 식별자를 획득하도록 구성되어 있는 파싱 유닛을 포함한다.
상기 파싱 유닛은 상기 제2 식별자에 기초하여 상기 처리 대상 블록의 인터 예측을 위한 예측 모드를 결정하도록 추가로 구성되어 있으며, 상기 예측 모드는 아핀 모션 모델 기반 병합 모드(affine motion model--based merge mode), 아핀 모션 모델 기반 고급 모션 벡터 예측(affine motion model-based advanced motion vector prediction, AMVP) 모드 및 비-아핀 모션 모델 기반 예측 모드(non-affine motion model-based prediction mode)를 포함한다.
제3 관점의 가능한 설계에서, 상기 비트스트림을 파싱하여 제1 식별자를 획득할 때, 상기 파싱 유닛은 구체적으로: 상기 비트스트림의 시퀀스 파라미터 세트를 파싱하여 제1 식별자를 획득하도록 구성되어 있다.
제3 관점의 가능한 설계에서, 상기 제1 식별자가 상기 처리 대상 블록을 포함하는 상기 비디오 픽처의 픽처 블록의 인터 예측을 위한 상기 후보 모션 모델이 상기 아핀 모션 모델을 포함하고 있음을 나타낼 때, 상기 파싱 유닛은: 상기 비트스트림을 파싱하여 제3 식별자를 획득하도록 추가로 구성되어 있으며, 상기 제3 식별자가 제1 값일 때, 상기 아핀 모션 모델은 오직 4-파라미터 아핀 모델만을 포함하거나; 또는 상기 제3 식별자가 제2 값일 때, 상기 아핀 모션 모델은 4-파라미터 아핀 모델 및 6-파라미터 아핀 모델을 포함한다. 상기 제1 값은 상기 제2 값과 상이하다.
제3 관점의 가능한 설계에서, 상기 장치는: 상기 제2 식별자가 상기 아핀 모션 모델 기반 병합 모드가 성가 처리 대상 블록의 인터 예측에 사용됨을 나타내고, 상기 제3 식별자가 상기 제2 값일 때, 제1 후보 모션 벡터 리스트를 구성하거나 - 상기 제1 후보 모션 벡터 리스트는 제1 요소를 포함하고, 상기 제1 요소는 상기 6-파라미터 아핀 모션 모델을 구성하기 위한 3 개의 제어점의 모션 정보를 포함함 - ; 또는
상기 제2 식별자가 상기 아핀 모션 모델 기반 병합 모드가 상기 처리 대상 블록의 인터 예측에 사용됨을 나타내고, 상기 제3 식별자가 상기 제1 값일 때, 제2 후보 모션 벡터 리스트를 구성하도록 - 상기 제2 후보 모션 벡터 리스트는 제2 요소를 포함하고, 상기 제2 요소는 상기 4-파라미터 아핀 모션 모델을 구성하기 위한 두 개의 제어점의 모션 정보만을 포함함 - 구성되어 있는 구성 유닛
을 더 포함한다.
제3 관점의 가능한 설계에서, 상기 제2 식별자가 상기 아핀 모션 모델 기반 병합 모드가 상기 처리 대상 블록의 인터 예측에 사용됨을 나타내고, 상기 제3 식별자가 상기 제2 값일 때, 상기 제1 후보 모션 벡터 리스트는 상기 제2 요소를 더 포함한다.
제3 관점의 가능한 설계에서, 상기 파싱 유닛은: 상기 제2 식별자가 상기 아핀 모션 모델 기반 AMVP 모드가 상기 처리 대상 블록의 인터 예측에 사용됨을 나타내고, 상기 제3 식별자가 제2 값일 때, 상기 비트스트림을 파싱하여 제4 식별자를 획득하도록 추가로 구성되어 있다.
상기 제4 식별자가 제3 값일 때, 상기 아핀 모션 모델은 상기 6-파라미터 아핀 모션 모델이거나, 상기 제4 식별자가 제4 값일 때, 상기 아핀 모션 모델은 상기 4-파라미터 아핀 모션 모델이며, 상기 제3 값은 상기 제4 값과 상이하다.
제3 관점의 가능한 설계에서, 상기 비트스트림을 파싱하여 제3 식별자를 획득할 때, 상기 파싱 유닛은 구체적으로: 상기 비트스트림의 시퀀스 파라미터 세트를 파싱하여 제3 식별자를 획득하도록 구성되어 있다.
제3 관점의 가능한 설계에서, 상기 미리 설정된 조건은 상기 처리 대상 블록의 폭이 제1 미리 설정된 임계 값보다 크거나 같고, 상기 처리 대상 블록의 높이가 제2 미리 설정된 임계 값 이상보다 크거나 같은 것을 포함한다.
제3 관점의 가능한 설계에서, 상기 제1 미리 설정된 임계 값은 상기 제2 미리 설정된 임계 값과 같다.
제2 관점과 동일한 발명의 개념을 바탕으로, 제4 관점에 따라, 본 출원의 실시예는 비디오 픽처 예측 장치를 제공하며, 상기 장치는: 비트스트림을 파싱하여 제1 식별자를 획득하도록 구성되어 있는 파싱 유닛을 포함한다. 상기 파싱 유닛은: 상기 제1 식별자가 상기 처리 대상 블록을 포함하는 슬라이스 내 픽처 블록의 인터 예측을 위한 후보 모션 모델이 아핀 모션 모델을 포함하고 있음을 나타내고, 상기 처리 대상 블록이 상기 아핀 모션 모델을 사용하여 인터 예측을 위한 미리 설정된 조건을 충족할 때, 상기 비트스트림을 분석하여 제2 식별자를 획득하고; 그리고 상기 제2 식별자에 기초하여, 상기 처리 대상 블록의 인터 예측을 위한 예측 모드를 결정하도록 추가로 구성되어 있다. 상기 예측 모드는 아핀 모션 모델 기반 병합 모드(affine motion model--based merge mode), 아핀 모션 모델 기반 고급 모션 벡터 예측(affine motion model-based advanced motion vector prediction, AMVP) 모드 및 비-아핀 모션 모델 기반 예측 모드(non-affine motion model-based prediction mode)를 포함한다.
제4 관점의 가능한 설계에서, 상기 비트스트림을 파싱하여 제1 식별자를 획득할 때, 상기 파싱 유닛은 구체적으로: 상기 비트스트림 내 슬라이스의 슬라이스 헤더를 파싱하여 제1 식별자를 획득하도록 구성되어 있다.
제4 관점의 가능한 설계에서, 아핀 모션 모델 기반 병합 모드는 처리 대상 블록의 인터 예측에 사용된다. 상기 파싱 유닛은: 상기 제1 식별자가 상기 처리 대상 블록을 포함하는 상기 슬라이스 내 픽처 블록의 인터 예측을 위한 상기 후보 모션 모델이 상기 아핀 모션 모델을 포함하고 있음을 나타낼 때, 상기 비트스트림을 파싱하여 제3 식별자를 획득하도록 추가로 구성되어 있다. 상기 제3 식별자가 제1 값일 때, 상기 아핀 모션 모델은 4-파라미터 아핀 모델만을 포함하거나; 또는 상기 제3 식별자가 제2 값일 때, 상기 아핀 모션 모델은 4-파라미터 아핀 모델 및 6-파라미터 아핀 모델을 포함한다. 상기 제1 값은 상기 제2 값과 상이하다.
제4 관점의 가능한 설계에서, 상기 장치는: 상기 제2 식별자가 상기 아핀 모션 모델 기반 병합 모드가 상기 처리 대상 블록의 인터 예측에 사용됨을 나타내고, 상기 제3 식별자가 상기 제2 값일 때, 제1 후보 모션 벡터 리스트를 구성하거나 - 상기 제1 후보 모션 벡터 리스트는 제1 요소를 포함하고, 상기 제1 요소는 상기 6-파라미터 아핀 모션 모델을 구성하기 위한 3 개의 제어점의 모션 정보를 포함함 - ; 또는
상기 제2 식별자가 상기 아핀 모션 모델 기반 병합 모드가 상기 처리 대상 블록의 인터 예측에 사용됨을 나타내고, 상기 제3 식별자가 상기 제1 값일 때, 제2 후보 모션 벡터 리스트를 구성하도록 - 상기 제2 후보 모션 벡터 리스트는 제2 요소를 포함하고, 상기 제2 요소는 4-파라미터 아핀 모션 모델을 구성하기 위한 2 개의 제어점의 모션 정보만을 포함함 - 구성되어 있는 구성 유닛
을 더 포함한다.
제4 관점의 가능한 설계에서, 상기 제2 식별자가 상기 아핀 모션 모델 기반 병합 모드가 상기 처리 대상 블록의 인터 예측에 사용됨을 나타내고, 상기 제3 식별자가 상기 제2 값일 때, 상기 제1 후보 모션 벡터 리스트는 상기 제2 요소를 더 포함한다.
제4 관점의 가능한 설계에서, 상기 파싱 유닛은: 상기 제2 식별자가 상기 아핀 모션 모델 기반 AMVP 모드가 상기 처리 대상 블록의 인터 예측에 사용됨을 나타내고, 상기 제3 식별자가 상기 제2 값일 때, 상기 비트스트림을 파싱하여 제4 식별자를 획득하도록 추가로 구성되어 있다. 상기 제4 식별자가 제3 값일 때, 상기 아핀 모션 모델은 상기 6-파라미터 아핀 모션 모델이거나, 상기 제4 식별자가 제4 값일 때, 상기 아핀 모션 모델은 상기 4-파라미터 아핀 모션 모델이다. 상기 제3 값은 상기 제4 값과 상이하다.
제4 관점의 가능한 설계에서, 상기 비트스트림을 파싱하여 제3 식별자를 획득할 때, 상기 파싱 유닛은 구체적으로: 상기 비트스트림 내 슬라이스의 슬라이스 헤더를 파싱하여 제3 식별자를 획득하도록 구성되어 있다.
제4 관점의 가능한 설계에서, 상기 비트스트림을 파싱하여 제1 식별자를 획득하기 전에, 상기 파싱 유닛은: 상기 비트스트림을 파싱하여 제5 식별자를 획득하도록 추가로 구성되어 있다. 상기 제5 식별자가 제5 값일 때, 상기 처리 대상 블록을 포함하는 비디오 픽처의 인터 예측을 위한 후보 모션 모델이 아핀 모션 모델을 포함하거나, 상기 제5 식별자가 제6 값일 때, 상기 처리 대상 블록을 포함하는 비디오 픽처의 인터 예측을 위한 후보 모션 모델은 비-아핀 모션 모델만을 포함한다. 상기 제5 값은 상기 제6 값과 상이하다.
제4 관점의 가능한 설계에서, 상기 비트스트림을 파싱하여 제5 식별자를 획득할 때, 상기 파싱 유닛은 구체적으로: 상기 비트스트림의 시퀀스 파라미터 세트를 파싱하여 제5 식별자를 획득하도록 구성되어 있다.
제4 관점의 가능한 설계에서, 상기 파싱 유닛은: 상기 비트스트림을 파싱하여 제5 식별자를 획득한 후, 그리고 상기 비트스트림을 파싱하여 제1 식별자를 획득하기 전에, 상기 비트스트림을 파싱하여 제6 식별자를 획득하도록 추가로 구성되어 있다. 상기 제6 식별자는 비트스트림이 상기 제3 식별자를 포함하는 것으로 결정하는 데 사용된다.
제4 관점의 가능한 설계에서, 상기 비트스트림을 파싱하여 제6 식별자를 획득할 때, 상기 파싱 유닛은 구체적으로: 상기 비트스트림의 시퀀스 파라미터 세트를 파싱하여 제6 식별자를 획득하도록 구성되어 있다.
제4 관점의 가능한 설계에서, 상기 미리 설정된 조건은 상기 처리 대상 블록의 폭이 제1 미리 설정된 임계 값보다 크거나 같고, 상기 처리 대상 블록의 높이가 제2 미리 설정된 임계 값 이상보다 크거나 같은 것을 포함한다.
제4 관점의 가능한 설계에서, 상기 제1 미리 설정된 임계 값은 상기 제2 미리 설정된 임계 값과 같다.
제5 관점에 따르면, 본 출원의 실시예는 장치를 제공한다. 장치는 디코더일 수 있으며, 프로세서 및 메모리를 포함한다. 메모리는 명령어를 저장하도록 구성된다. 장치가 실행될 때, 프로세서는 메모리에 저장된 명령을 실행하여 장치가 제1 관점, 제1 관점의 설계, 제2 관점의 설계 또는 제2 관점의 설계 중 어느 하나에서 제공된 방법을 수행할 수 있도록 한다. 메모리는 프로세서에 통합되거나 프로세서와 독립적일 수 있다.
제6 관점에 따라, 본 출원의 실시예는 비디오 픽처 예측 방법을 제공한다. 상기 방법은 인코더 측에 적용되며,
제6 관점에 따르면, 본 출원의 실시예는 비디오 픽처 예측 방법을 제공한다. 이 방법은 인코더 측에 적용되며 다음을 포함한다.
제1 식별자를 비트스트림으로 인코딩하는 단계; 및
제1 식별자가 처리 대상 블록을 포함하는 비디오 픽처 내 픽처 블록의 인터 예측을 위한 후보 모션 모델에 아핀 모션 모델이 포함되어 있음을 나타내며, 처리 대상 블록이 인터 예측을 위한 미리 설정된 조건을 충족함을 나타내는 경우 아핀 모션 모델을 사용하여 제2 식별자를 비트스트림으로 인코딩하고, 여기서 제2 식별자는 처리 대상 블록의 인터 예측을 위한 예측 모드를 결정하는 데 사용된다. 예측 모드는 아핀 모션 모델 기반 병합 모드, 아핀 모션 모델 기반 고급 모션 벡터 예측 AMVP 모드 및 비 아핀 모션 모델 기반 예측 모드를 포함한다.
제6 관점의 가능한 설계에서, 제1 식별자를 비트스트림으로 인코딩하는 단계는 다음 방식으로 구현될 수 있다: 제1 식별자를 비트스트림의 시퀀스 파라미터 세트로 인코딩한다.
제6 관점의 가능한 설계에서, 제1 식별자가 처리 대상 블록을 포함하는 비디오 픽처 내 픽처 블록의 인터 예측을 위한 후보 모션 모델이 아핀 모션 모델을 포함하고 있음을 나타낼 때, 방법은 추가로 다음을 포함한다: 제3 식별자를 비트스트림으로 인코딩한다. 제3 식별자가 제1 값일 때 아핀 모션 모델에는 4-파라미터 아핀 모델만 포함되거나; 또는 제3 식별자가 제2 값일 때, 아핀 모션 모델은 4-파라미터 아핀 모델과 6-파라미터 아핀 모델을 포함한다. 제1 값은 제2 값과 다르다.
제6 관점의 가능한 설계에서, 방법은: 제2 식별자가 아핀 모션 모델 기반 병합 모드가 처리 대상 블록의 인터 예측에 사용됨을 나타내고, 제3 식별자가 제2 값일 때, 제1 후보 모션 벡터 리스트를 구성하는 단계 - 상기 제1 후보 모션 벡터 리스트는 제1 요소를 포함하고, 상기 제1 요소는 6-파라미터 아핀 모션 모델을 구성하기 위한 3 개의 제어점의 모션 정보를 포함함 - ; 또는
제2 식별자가 아핀 모션 모델 기반 병합 모드가 처리 대상 블록의 인터 예측에 사용됨을 나타내고 제3 식별자가 제1 값일 때, 제2 후보 모션 벡터 리스트를 구성하는 단계 - 여기서 제2 후보 모션 벡터 리스트는 제2 요소를 포함하고 제2 요소는 4-파라미터 아핀 모션 모델을 구성하기 위한 두 제어점의 모션 정보만 포함함 - 를 더 포함한다.
전술한 설계에서, 제3 식별자 및 제2 식별자는 후보 모션 벡터 리스트의 구성을 나타내기 위해 사용된다.
제6 관점의 가능한 설계에서, 제2 식별자가 아핀 모션 모델 기반 병합 모드가 처리 대상 블록의 인터 예측에 사용됨을 나타내고, 제3 식별자가 제2 값일 때, 제1 후보 모션 벡터 리스트는 제2 요소를 더 포함한다.
제6 관점의 가능한 설계에서, 방법은: 제2 식별자가 아핀 모션 모델 기반 AMVP 모드가 처리 대상 블록의 인터 예측에 사용됨을 나타내고, 제3 식별자가 제2 값, 제4 식별자를 비트스트림으로 인코딩하는 단계를 더 포함한다. 제4 식별자가 제3 값일 때 아핀 모션 모델은 6-파라미터 아핀 모션 모델이거나, 제4 식별자가 제4 값일 때 아핀 모션 모델은 4-파라미터 아핀 모션 모델이다. 제3 값은 제4 값과 다르다.
특정 실시예에서, 제4 식별자는 식별자 14로 지칭된다.
제6 관점의 가능한 설계에서, 제3 식별자를 비트스트림으로 인코딩하는 단계는: 제3 식별자를 비트스트림의 시퀀스 파라미터 세트로 인코딩하는 단계를 포함한다.
제7 관점에 따르면, 본 애플리케이션의 실시예는 비디오 픽처 예측 방법을 제공한다. 이 방법은 인코더 측에 적용되며:
제1 식별자를 비트스트림으로 인코딩하는 단계; 및
제1 식별자가 처리 대상 블록을 포함하는 슬라이스에서 픽처 블록의 인터 예측을 위한 후보 모션 모델이 아핀 모션 모델을 포함하고 있음을 나타내며, 처리 대상 블록이 아핀 모션 모델을 사용하여 인터 예측을 위한 미리 설정된 조건을 충족할 때 제2 식별자를 비트스트림으로 인코딩하는 단계를 더 포함하며, 여기서 제2 식별자는 처리 대상 블록의 인터 예측을 위한 예측 모드를 결정하는 데 사용되며, 예측 모드는 아핀 모션 모델 기반 병합 모드, 아핀 모션 모델 기반 고급 모션 벡터 예측 AMVP 모드 및 비-아핀 모션 모델 기반 예측 모드를 포함한다.
제7 관점의 가능한 설계에서, 제1 식별자를 비트스트림으로 인코딩하는 단계는: 제1 식별자를 비트스트림의 슬라이스의 슬라이스 헤더로 인코딩하는 단계를 포함한다.
제7 관점의 가능한 설계에서, 제1 식별자가 처리 대상 블록을 포함하는 슬라이스 내 픽처 블록의 인터 예측을 위한 후보 모션 모델이 아핀 모션 모델을 포함하고 있음을 나타낼 때, 방법은 다음을 더 포함한다: 제3 식별자를 비트스트림에 추가한다. 제3 식별자가 제1 값일 때 아핀 모션 모델에는 4-파라미터 아핀 모델만 포함된다. 또는 제3 식별자가 제2 값일 때, 아핀 모션 모델은 4-파라미터 아핀 모델과 6-파라미터 아핀 모델을 포함한다. 제1 값은 제2 값과 다르다.
제7 관점의 가능한 설계에서, 방법은: 제2 식별자가 아핀 모션 모델 기반 병합 모드가 처리 대상 블록의 인터 예측에 사용됨을 나타내고 제3 식별자가 제2 값일 때, 제1 후보 모션 벡터 리스트를 구성하는 단계 - 상기 제1 후보 모션 벡터 리스트는 제1 요소를 포함하고, 상기 제1 요소는 6-파라미터 아핀 모션 모델을 구성하기 위한 3 개의 제어점의 모션 정보를 포함함 - ; 또는
제2 식별자가 아핀 모션 모델 기반 병합 모드가 처리 대상 블록의 인터 예측에 사용됨을 나타내고 제3 식별자가 제1 값일 때, 제2 후보 모션 벡터 리스트를 구성하는 단계 - 여기서 제2 후보 모션 벡터 리스트는 제2 요소를 포함하고 제2 요소는 4-파라미터 아핀 모션 모델을 구성하기 위한 두 제어점의 모션 정보만 포함함 -
를 더 포함한다.
제7 관점의 가능한 설계에서, 제2 식별자가 아핀 모션 모델 기반 병합 모드가 처리 대상 블록의 인터 예측에 사용됨을 나타내고, 제3 식별자가 제2 값일 때, 제1 식별자는 후보 모션 벡터 리스트는 제2 요소를 더 포함한다.
제7 관점의 가능한 설계에서, 방법은: 제2 식별자가 아핀 모션 모델 기반 AMVP 모드가 처리 대상 블록의 인터 예측에 사용됨을 나타내고, 제3 식별자가 제2 값일 때, 제4 식별자를 비트스트림으로 인코딩하는 단계를 더 포함한다.
제4 식별자가 제3 값일 때, 아핀 모션 모델은 6-파라미터 아핀 모션 모델이거나, 제4 식별자가 제4 값일 때, 아핀 모션 모델은 4-파라미터 아핀 모션 모델이다. 제3 값은 제4 값과 다르다.
제7 관점의 가능한 설계에서, 제3 식별자를 비트스트림으로 인코딩하는 단계는: 제3 식별자를 비트스트림의 슬라이스의 슬라이스 헤더로 인코딩하는 단계를 포함한다.
제7 관점의 가능한 설계에서, 제1 식별자를 비트스트림으로 인코딩하기 전에, 방법은: 제5 식별자를 비트스트림으로 인코딩하는 단계를 더 포함한다. 제5 식별자가 제5 값일 때 처리 대상 블록을 포함하는 비디오 픽처 내 픽처 블록의 인터 예측을 위한 후보 모션 모델은 아핀 모션 모델을 포함하거나, 제5 식별자가 제6 값일 때 후보 처리 대상 블록을 포함하는 비디오 픽처 내 픽처 블록의 인터 예측을 위한 모션 모델은 비 아핀 모션 모델만을 포함한다. 제5 값은 제6 값과 다르다.
제7 관점의 가능한 설계에서, 제5 식별자를 비트스트림으로 인코딩하는 단계는: 제5 식별자를 비트스트림의 시퀀스 파라미터 세트로 인코딩하는 단계를 포함한다.
제7 관점의 가능한 설계에서, 제5 식별자를 비트스트림으로 인코딩한 후 및 비트스트림에서 제1 식별자를 인코딩하기 전에, 방법은 제6 식별자를 비트스트림으로 인코딩하는 단계를 더 포함한다. 제6 식별자는 비트스트림이 제3 식별자를 포함하는지 결정하는 데 사용된다.
제7 관점의 제6 식별자는 특정 실시예에서 식별자 13으로 지칭된다는 점에 유의해야 한다.
제7 관점의 가능한 설계에서, 제6 식별자를 비트스트림으로 인코딩하는 단계는: 제6 식별자를 비트스트림의 시퀀스 파라미터 세트로 인코딩하는 단계를 포함한다.
제8 관점에 따르면, 본 출원의 실시예는 장치를 제공한다. 장치는 인코더일 수 있으며, 프로세서 및 메모리를 포함한다. 메모리는 명령어를 저장하도록 구성된다. 장치가 실행될 때, 프로세서는 메모리에 저장된 명령을 실행하여 장치가 제3 관점, 제3 관점의 설계, 제4 관점의 설계 또는 제4 관점의 설계 중 어느 하나에 제공된 방법을 수행할 수 있도록 한다. 메모리는 프로세서에 통합되거나 프로세서와 독립적일 수 있다.
제9 관점에 따르면, 본 출원은 컴퓨터 판독 가능 저장 매체를 제공한다. 컴퓨터 판독 가능 저장 매체는 명령어를 저장한다. 명령어가 컴퓨터에서 실행될 때, 컴퓨터는 전술한 각 측면에서 설명된 방법을 수행할 수 있다.
제10 관점에 따르면, 본 출원은 명령어를 포함하는 컴퓨터 프로그램 제품을 제공한다. 컴퓨터 프로그램 제품이 컴퓨터에서 실행될 때, 컴퓨터는 전술한 각 관점에서 설명된 방법을 수행할 수 있다.
본 출원의 제3 내지 제10 관점의 기술적 솔루션은 본 출원의 제1 관점 및 제2 관점의 기술적 솔루션과 일치하고, 관점 및 대응하는 구현 가능한 설계에 의해 달성되는 유리한 효과는 유사하다는 것을 이해해야 한다. 자세한 내용은 다시 설명하지 않는다.
도 1은 본 출원의 실시예에서 설명된 구현에서의 비디오 인코딩 및 디코딩 시스템의 블록도이다.
도 2a는 본 출원의 실시예에서 설명된 구현에서의 비디오 인코더의 블록도이다.
도 2b는 본 출원의 실시예에서 설명된 구현에서의 인터 예측의 개략도이다.
도 2c는 본 출원의 실시예에서 설명된 구현에서의 비디오 디코더의 블록도이다.
도 3은 본 출원의 실시예에서 설명된 구현에서 모션 정보의 후보 위치의 개략도이다.
도 4는 본 출원의 실시예에서 설명된 구현에서 상속된 제어점 모션 벡터의 예측의 개략도이다.
도 5a는 본 출원의 실시예에서 설명된 구현에서 구성된 제어점 모션 벡터를 예측하는 개략도이다.
도 5b는 본 출원의 실시예에서 설명된 구현에서 구성된 제어점 모션 정보를 획득하기 위해 제어점 모션 정보를 결합하는 개략적인 흐름도이다.
도 6a는 본 출원의 실시예에서 설명된 구현에서의 인터 예측 방법의 흐름도이다.
도 6b는 본 출원의 실시예에서 설명된 구현에서 후보 모션 벡터 리스트를 구성하는 개략도이다.
도 6c는 본 출원의 실시예에서 설명된 구현에서의 모션 보상 유닛의 개략도이다.
도 7은 본 출원의 실시예에 따른 비디오 픽처 예측 방법의 개략적인 흐름도이다.
도 8은 본 출원의 실시예에 따른 인터 예측 방법의 개략적인 흐름도이다.
도 9는 본 출원의 실시예에 따른 다른 비디오 픽처 예측 방법의 개략적인 흐름도이다.
도 10은 본 출원의 실시예에 따른 인터 예측 방법의 개략적인 흐름도이다.
도 11은 본 출원의 실시예에 따른 또 다른 비디오 픽처 예측 방법의 개략적인 흐름도이다.
도 12는 본 출원의 실시예에 따른 장치(1200)의 개략도이다.
도 13은 본 출원의 실시예에 따른 장치(1300)의 개략도이다.
도 14는 본 출원의 실시예에 따른 장치(1400)의 개략도이다.
본 출원의 실시예에서 제공되는 픽처 예측 솔루션은 픽처 인코딩 또는 디코딩에 적용될 수 있다. 도 1은 본 출원의 실시예에 따른 비디오 인코딩 및 디코딩 시스템(10)의 개략적인 블록도이다. 도 1에 도시된 바와 같이, 시스템(10)은 소스 장치(11) 및 목적지 장치(12)를 포함한다. 소스 장치(11)는 인코딩된 비디오 데이터를 생성하고 인코딩된 비디오 데이터를 목적지 장치(12)로 전송한다. 목적지 장치(12)는 인코딩된 비디오 데이터를 수신하고, 인코딩된 비디오 데이터를 디코딩하고, 디코딩된 비디오 데이터를 표시하도록 구성된다. 소스 장치(11) 및 목적지 장치(12)는 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 셋톱 박스, "스마트" 폰과 같은 휴대폰, "스마트" 터치 패널, 텔레비전 세트, 카메라, 디스플레이 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 비디오 스트리밍 전송 장치 등을 포함하는 다양한 장치 중 어느 하나를 포함할 수 있다.
본 출원의 실시예들에서 제공되는 픽처 블록의 인트라 모드 예측을 위한 솔루션은 비디오 픽처 인코딩 또는 디코딩에 적용될 수 있다.
목적지 장치(12)는 링크(16)를 통해 디코딩될 인코딩된 비디오 데이터를 수신할 수 있다. 링크(16)는 인코딩된 비디오 데이터를 소스 장치(11)로부터 목적지 장치(12)로 전송할 수 있는 임의의 유형의 미디어 또는 장치를 포함할 수 있다. 가능한 구현에 있어서, 링크(16)는 소스 장치(11)가 인코딩된 비디오 데이터를 실시간으로 목적지 장치(12)에 직접 전송할 수 있게 하는 통신 매체를 포함할 수 있다. 인코딩된 비디오 데이터는 통신 표준(예를 들어, 무선 통신 프로토콜)에 따라 변조될 수 있고 변조된 인코딩된 비디오 데이터는 목적지 장치(12)로 전송된다. 통신 매체는 임의의 무선 또는 유선 통신 매체를 포함할 수 있으며, 예를 들어, 무선 주파수 스펙트럼 또는 하나 이상의 물리적 전송 라인을 포함할 수 있다. 통신 매체는 패킷 기반 네트워크(예를 들어, 근거리 통신망, 광역 통신망 또는 인터넷의 글로벌 네트워크)의 일부일 수 있다. 통신 매체는 라우터, 스위치, 기지국, 또는 소스 장치(11)와 목적지 장치(12) 사이의 통신을 용이하게 하도록 구성된 임의의 다른 장치를 포함할 수 있다.
대안적으로, 비디오 인코딩 및 디코딩 시스템(10)은 저장 장치를 더 포함한다. 인코딩된 데이터는 출력 인터페이스(14)를 통해 저장 장치로 출력될 수 있다. 유사하게, 인코딩된 데이터는 입력 인터페이스(15)를 통해 저장 장치로부터 액세스될 수 있다. 저장 장치는 다양한 분산 또는 로컬 액세스 데이터 저장 매체, 예를 들어, 하드 디스크 드라이브, Blu-ray 디스크, DVD, CD-ROM, 플래시 메모리, 휘발성 또는 비 휘발성 메모리 또는 인코딩된 비디오 데이터를 저장하는 데 사용되는 임의의 다른 적절한 디지털 저장 매체 중 어느 하나를 포함할 수 있다. 다른 실행 가능한 구현에서, 저장 장치는 소스 장치(11)에 의해 생성된 인코딩된 비디오를 유지할 수 있는 파일 서버 또는 다른 중간 저장 장치에 대응할 수 있다. 목적지 장치(12)는 스트리밍 전송 또는 다운로드를 통해 저장 장치로부터 저장된 비디오 데이터에 액세스할 수 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 인코딩된 비디오 데이터를 목적지 장치(12)로 전송할 수 있는 임의의 유형의 서버일 수 있다. 실행 가능한 구현에서, 파일 서버는 웹 사이트 서버, 파일 전송 프로토콜 서버, 네트워크-연결 저장 장치 또는 로컬 디스크 드라이브를 포함한다. 목적지 장치(12)는 인터넷 연결을 포함하는 임의의 표준 데이터 연결을 통해 인코딩된 비디오 데이터에 액세스할 수 있다. 데이터 연결은 무선 채널(예를 들어, Wi-Fi 연결), 유선 연결(예를 들어, 케이블 모뎀) 또는 이들의 조합을 포함할 수 있다. 무선 채널 또는 유선 연결은 파일 서버에 저장된 인코딩된 비디오 데이터에 액세스하는 데 적합하다. 저장 장치로부터 인코딩된 비디오 데이터의 전송은 스트리밍 전송, 다운로드 전송 또는 이들의 조합일 수 있다.
본 출원의 기술은 반드시 무선 애플리케이션이나 설정으로 제한되지는 않는다. 이 기술은 오버-디-에어 텔레비전 방송, 케이블 텔레비전 전송, 위성 텔레비전 전송, 스트리밍 비디오 전송(예를 들어, 인터넷을 통한), 데이터 저장 매체에 저장하기 위한 디지털 비디오 인코딩, 데이터 저장 매체에 저장된 디지털 비디오의 디코딩, 또는 다른 애플리케이션과 같은 다양한 멀티미디어 애플리케이션 중 하나를 지원하기 위해 비디오 디코딩에 적용될 수 있다. 일부 가능한 구현에서, 시스템(10)은 스트리밍 비디오 전송, 비디오 재생, 비디오 방송 및/또는 비디오 통화와 같은 애플리케이션을 지원하기 위해 단방향 또는 양방향 비디오 전송을 지원하도록 구성될 수 있다.
도 1의 가능한 구현에서, 소스 장치(11)는 비디오 소스(13), 비디오 인코더(20) 및 출력 인터페이스(14)를 포함할 수 있다. 일부 애플리케이션에서, 출력 인터페이스(14)는 변조기/복조기(모뎀) 및/또는 전송기를 포함할 수 있다. 소스 장치(11)에서, 비디오 소스(13)는 예를 들어, 다음 소스 장치를 포함할 수 있다: 비디오 캡처 장치(예를 들어, 카메라), 이전에 캡처된 비디오를 포함하는 아카이브, 비디오를 수신하기 위한 비디오 피드-인 인터페이스 비디오 콘텐츠 제공자로부터의 비디오, 및/또는 컴퓨터 그래픽 데이터를 소스 비디오 또는 이들의 조합으로 생성하는 데 사용되는 컴퓨터 그래픽 시스템. 가능한 구현에서, 비디오 소스(13)가 카메라인 경우, 소스 장치(11) 및 목적지 장치(12)는 카메라 폰 또는 비디오 폰을 구성할 수 있다. 예를 들어, 본 출원에서 설명하는 기술은 예를 들어 비디오 디코딩에 적용될 수 있고, 무선 및/또는 유선 애플리케이션에 적용될 수 있다.
비디오 인코더(20)는 생성된 비디오를 인코딩, 캡처, 사전 캡처 또는 계산할 수 있다. 인코딩된 비디오 데이터는 소스 장치(11)의 출력 인터페이스(14)를 통해 목적지 장치(12)로 직접 전송될 수 있다. 인코딩된 비디오 데이터는 또한 목적지 장치(12) 또는 디코딩 및/또는 재생을 위한 다른 장치에 의해 추후 액세스를 위해 저장 장치에 저장될 수 있다.
목적지 장치(12)는 입력 인터페이스(15), 비디오 디코더(30) 및 디스플레이 장치(17)를 포함한다. 일부 애플리케이션에서, 입력 인터페이스(15)는 수신기 및/또는 모뎀을 포함할 수 있다. 목적지 장치(12)의 입력 인터페이스(15)는 링크(16)를 통해 인코딩된 비디오 데이터를 수신한다. 링크(16)를 통해 저장 장치로 전송되거나 제공되는 인코딩된 비디오 데이터는 비디오 데이터를 디코딩하기 위한 비디오 디코더(30)에 대해 비디오 인코더(20)에서 생성된 다양한 신택스 요소를 포함할 수 있다. 이러한 신택스 요소는 통신 매체상에서 전송되고 저장 매체 또는 파일 서버에 저장되는 인코딩된 비디오 데이터와 함께 포함될 수 있다.
디스플레이 장치(17)는 목적지 장치(12)와 통합될 수 있거나, 목적지 장치(12) 외부에 위치할 수 있다. 일부 가능한 구현에서, 목적지 장치(12)는 통합 디스플레이 장치를 포함할 수 있고, 또한 외부 디스플레이 장치의 인터페이스에 연결하도록 구성될 수 있다. 다른 가능한 구현에서, 목적지 장치(12)는 디스플레이 장치일 수 있다. 일반적으로 디스플레이 장치(17)는 디코딩된 비디오 데이터를 사용자에게 표시하며, 액정 디스플레이, 플라즈마 디스플레이, 유기 발광 다이오드 디스플레이 또는 다른 유형의 디스플레이 장치와 같은 다양한 디스플레이 장치를 포함할 수 있다.
비디오 인코더(20) 및 비디오 디코더(30)는, 예를 들어 현재 개발 중인 차세대 비디오 코딩 압축 표준(H.266)에 따라 동작할 수 있으며, H.266 테스트 모델(JEM)을 준수할 수 있다. 대안적으로, 비디오 인코더(20) 및 비디오 디코더(30)는 예를 들어 ITU-T H.265 표준 또는 ITU-T H.264 표준 또는 그 확장과 같은 다른 전용 또는 산업 표준에 따라 동작할 수 있으며, 여기서 ITU는 -T H.265 표준은 고효율 비디오 코딩 표준이라고도 하며 ITU-T H.264 표준은 MPEG-4 Part 10 또는 고급 비디오 코딩(고급 비디오 코딩, AVC)이라고도 한다. 그러나 본 출원의 기술은 특정 디코딩 표준에 국한되지 않는다. 비디오 압축 표준의 다른 가능한 구현으로는 MPEG-2 및 ITU-TH.263이 있다.
도 1에는 도시되어 있지 않지만, 일부 관점들에서, 비디오 인코더(20) 및 비디오 디코더(30)는 각각 오디오 인코더 및 오디오 디코더와 통합될 수 있고, 공통 데이터 스트림 또는 개별 데이터 스트림의 오디오 및 비디오 모두를 인코딩하기 위해 적절한 멀티플렉서-디멀티플렉서(MUX-DEMUX) 유닛 또는 다른 하드웨어 및 소프트웨어를 포함할 수 있다. 적용 가능하다면 일부 실행 가능한 구현에서 MUX-DEMUX 장치는 ITU H.223 멀티플렉서 프로토콜 또는 사용자 데이터그램 프로토콜(User Datagram Protocol, UDP)와 같은 기타 프로토콜을 준수할 수 있다.
비디오 인코더(20) 및 비디오 디코더(30)는 다양한 적절한 인코더 회로 중 하나로서, 예를 들어 하나 이상의 마이크로프로세서, 디지털 신호 프로세서(digital signal processor, DSP), 주문형 집적 회로(application-specific integrated circuit, ASIC), 현장 프로그래밍 가능 게이트 어레이(field-programmable gate array, FPGA), 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 조합에 의해 구현될 수 있다. 기술 중 일부가 소프트웨어로 구현될 때, 장치는 소프트웨어에 대한 명령을 적절한 비 일시적 컴퓨터 판독 가능 매체에 저장하고 하나 이상의 프로세서를 사용하여 하드웨어 형태로 명령을 실행하여 본 출원의 기술을 구현할 수 있다. 비디오 인코더(20) 및 비디오 디코더(30) 각각은 하나 이상의 인코더 또는 디코더에 포함될 수 있고, 비디오 인코더(20) 또는 비디오 디코더(30) 중 어느 하나는 대응하는 장치 내의 복합 인코더/디코더(CODEC)의 일부로서 통합될 수 있다.
JCT-VC는 H.265(HEVC) 표준을 개발하였다. HEVC 표준화는 비디오 디코딩 장치의 진화된 모델을 기반으로 하며, 모델을 HEVC 테스트 모델(HM)이라고 한다. 최신 H.265 표준 문서는 http://www.itu.int/rec/T-REC-H.265에서 확인할 수 있다. 표준 문서의 최신 버전은 H.265(12/16)이며 표준 문서는 전체적으로 참조로 여기에 통합된다. HM에서 비디오 디코딩 장치는 기존의 ITU-TH.264/AVC 알고리즘에 비해 몇 가지 추가 기능이 있다고 가정한다.
JVET는 H.266 표준 개발에 전념하고 있다. H.266 표준화 프로세스는 비디오 디코딩 장치의 진화된 모델을 기반으로 하며, 모델을 H.266 테스트 모델이라고 한다. H.266 알고리즘 설명은 http://phenix.int-evry.fr/jvet에서 확인할 수 있으며 최신 알고리즘 설명은 JVET-F1001-v2에 포함되어 있다. 알고리즘 설명의 문서는 그 전체가 참조로 여기에 통합된다. 또한 JEM 테스트 모델에 대한 참조 소프트웨어는 https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/에서 구할 수 있으며 그 전문이 참조로 여기에 포함된다.
일반적으로, HM 작업 모델의 설명에서, 비디오 프레임 또는 픽처는 루마 및 크로마 샘플을 모두 포함하는 트리 블록 시퀀스 또는 최대 코딩 단위 시퀀스(largest coding unit, LCU)로 분할될 수 있다. LCU는 CTU라고도 한다. 트리 블록은 H.264 표준의 매크로 블록과 유사한 기능을 가지고 있다. 슬라이스는 디코딩 순서로 여러 개의 연속적인 트리 블록을 포함한다. 비디오 프레임 또는 픽처는 하나 이상의 슬라이스로 분할될 수 있다. 각 트리 블록은 쿼드 트리를 기반으로 코딩 단위로 분할될 수 있다. 예를 들어, 쿼드 트리의 루트 노드 역할을 하는 트리 블록은 4 개의 자식 노드로 분할될 수 있으며, 각 자식 노드는 부모 노드 역할도 할 수 있으며 4 개의 다른 자식 노드로 분할될 수 있다. 쿼드 트리의 리프 노드 역할을 하는 분할 불가능한 최종 자식 노드는 디코딩 노드, 예를 들어 디코딩된 픽처 블록을 포함한다. 디코딩된 비트스트림과 관련된 신택스 데이터에서 트리 블록의 최대 분할 수 및 디코딩 노드의 최소 크기가 정의될 수 있다.
코딩 단위는 디코딩 노드, 예측 단위(prediction unit, PU) 및 디코딩 노드와 연관된 변환 단위(transform unit, TU)를 포함한다. CU의 크기는 디코딩 노드의 크기에 대응하며 CU의 모양은 정사각형이어야 한다. CU의 크기는 8 × 8 픽셀에서 최대 64 × 64 픽셀까지의 범위를 가질 수 있거나 더 큰 트리 블록 크기일 수 있다. 각각의 CU는 하나 이상의 PU 및 하나 이상의 TU를 포함할 수 있다. 예를 들어, CU와 관련된 신택스 데이터는 CU를 하나 이상의 PU로 분할하는 것을 설명할 수 있다. CU가 스킵 모드, 다이렉트 모드, 인트라 예측 모드 또는 인터 예측 모드로 인코딩된 경우 다른 분할 모드가 사용될 수 있다. 분할을 통해 얻은 PU는 정사각형이 아닌 형태일 수 있다. 예를 들어, CU와 관련된 신택스 데이터는 또한 쿼드 트리에 기초하여 CU를 하나 이상의 TU로 분할하는 것을 설명할 수 있다. TU는 정사각형 또는 정사각형이 아닌 모양일 수 있다.
HEVC 표준은 TU 기반 변환을 허용한다. 다른 CU에는 다른 TU가 포함될 수 있다. TU의 크기는 일반적으로 분할된 LCU에 대해 정의된 주어진 CU 내의 PU 크기를 기반으로 설정된다. 그러나 경우가 항상 이와 같지는 않을 수 있다. TU의 크기는 일반적으로 PU의 크기와 같거나 작다. 일부 실행 가능한 구현에서, "잔여 쿼드 트리"(residual quadtree, RQT)로 지칭되는 쿼드 트리 구조는 CU에 대응하는 잔류 샘플을 더 작은 단위로 분할하는 데 사용될 수 있다. RQT의 리프 노드는 TU라고 할 수 있다. TU와 관련된 픽셀 차이는 변환 계수를 생성하기 위해 변환될 수 있고, 변환 계수는 양자화될 수 있다.
일반적으로 PU는 예측 프로세스와 관련된 데이터를 포함한다. 예를 들어, PU가 인트라 모드로 인코딩된 경우 PU는 PU의 인트라 예측 모드를 설명하는 데이터를 포함할 수 있다. 다른 실행 가능한 구현에서, PU가 인터 모드에서 인코딩될 때, PU는 PU에 대한 모션 벡터를 정의하는 데이터를 포함할 수 있다. 예를 들어, PU에 대한 모션 벡터를 정의하는 데이터는 모션 벡터의 수평 성분, 모션 벡터의 수직 성분, 모션 벡터의 해상도(예를 들어, 1/4 픽셀 정밀도 또는 1/8 픽셀 정밀도), 모션 벡터가 가리키는 참조 픽처 및/또는 모션 벡터의 참조 픽처 리스트(예를 들어, 리스트 0, 리스트 1 또는 리스트 C)를 설명할 수 있다.
일반적으로 TU에는 변환 및 양자화 프로세스가 사용된다. 하나 이상의 PU를 포함하는 주어진 CU는 또한 하나 이상의 TU를 포함할 수 있다. 예측 후, 비디오 인코더(20)는 PU에 대응하는 잔여 값을 계산할 수 있다. 잔여 값에는 픽셀 차이가 포함된다. 픽셀 차이는 변환 계수로 변환될 수 있고, 변환 계수는 양자화되고 TU를 사용하여 스캔되어 엔트로피 디코딩을 위한 직렬화된 변환 계수를 생성한다. 본 출원에서 "픽처 블록"이라는 용어는 일반적으로 CU의 디코딩 노드를 나타내는 데 사용된다. 일부 특정 애플리케이션에서, 본 출원에서 "픽처 블록"이라는 용어는 디코딩 노드, PU 및 TU, 예를 들어 LCU 또는 CU를 포함하는 트리 블록을 나타내기 위해 사용될 수도 있다.
비디오 인코더(20)는 비디오 데이터를 인코딩한다. 비디오 데이터는 하나 이상의 픽처를 포함할 수 있다. 비디오 인코더(20)는 비트스트림을 생성할 수 있으며, 비트스트림은 비트스트림의 형태로 비디오 데이터의 인코딩된 정보를 포함한다. 인코딩된 정보는 인코딩된 픽처 데이터 및 관련 데이터를 포함할 수 있다. 관련 데이터는 시퀀스 파라미터 세트(sequence parameter set, SPS), 픽처 파라미터 세트(picture parameter set, PPS) 및 다른 신택스 구조를 포함할 수 있다. SPS는 0 개 또는 복수의 시퀀스에 적용되는 파라미터를 포함할 수 있다. SPS는 코딩된 비디오 시퀀스(coded video sequence, CVS)의 일반적인 특성에 대한 상위 계층 파라미터를 설명하며, 시퀀스 파라미터 집합 SPS는 CVS의 모든 슬라이스(slice)에서 요구하는 정보를 포함한다. PPS는 0 개 또는 복수의 픽처에 적용되는 파라미터를 포함할 수 있다. 신택스 구조는 비트스트림에 지정된 순서로 배열된 0 또는 복수의 신택스 요소의 집합이다.
실행 가능한 구현에서 HM은 다양한 PU 크기에 대한 예측을 지원한다. 특정 CU의 크기가 2N × 2N이라고 가정하면 HM은 2N × 2N 또는 N × N의 PU 크기에 대한 인트라 예측과 2N × 2N, 2N × N, N × 2N 또는 N × N의 대칭 PU 크기에 대한 인터 예측을 지원한다. HM은 2N × nU, 2N × nD, nL × 2N 및 nR × 2N의 PU 크기에 대한 인터 예측을 위한 비대칭 분할도 지원한다. 비대칭 분할에서 CU는 한 방향으로 분할되지 않고 다른 방향으로 두 부분으로 분할되며, 여기서 한 부분은 CU의 25%를 차지하고 다른 부분은 CU의 75%를 차지한다. CU의 25%를 차지하는 부분은 "n" 다음에 "U(위)", "D(아래)", "L(왼쪽)" 또는 "R(오른쪽)"을 포함하는 지시자로 나타내어진다. 따라서 예를 들어 "2N × nU"는 상단에 2N × 0.5N PU, 하단에 2N × 1.5N PU가 있는 수평 분할 2N × 2N CU를 나타낸다.
본 출원에서, "N × N" 및 "N × N"은 수직 차원 및 수평 차원에서 픽처 블록의 픽셀 크기, 예를 들어, 16 × 16 픽셀 또는 16 by 16 픽셀을 나타내기 위해 상호 교환적으로 사용될 수 있다. 일반적으로 16 × 16 블록은 수직 방향(y = 16)으로 16 픽셀, 수평 방향(x = 16)으로 16 픽셀을 갖는다. 유사하게, N × N 블록은 일반적으로 수직 방향으로 N 개의 픽셀과 수평 방향으로 N 개의 픽셀을 가지며, 여기서 N은 음이 아닌 정수 값이다. 블록의 픽셀은 행과 열로 배열될 수 있다. 또한, 블록에서 가로 방향의 픽셀 수와 세로 방향의 픽셀 수가 반드시 같을 필요는 없다. 예를 들어, 블록은 N × M 픽셀을 포함할 수 있으며, 여기서 M은 반드시 N과 동일하지 않는다.
인트라 또는 인터 예측 모드에서 CU의 PU를 디코딩한 후, 비디오 인코더(20)는 CU의 TU의 잔여 데이터를 계산할 수 있다. PU는 공간 도메인(픽셀 도메인이라고도 함)의 픽셀 데이터를 포함할 수 있으며, TU는 변환(예를 들어, 이산 코사인 변환(discrete cosine transform, DCT), 정수 변환, 웨이블릿 변환 또는 기타 개념적으로 유사한 변환)이 잔여 비디오 데이터에 적용된 후 획득된 변환 도메인의 계수를 포함할 수 있다. 잔여 데이터는 인코딩되지 않은 픽처의 픽셀과 PU에 대응하는 예측자 간의 픽셀 차이에 대응할 수 있다. 비디오 인코더(20)는 CU의 잔여 데이터를 포함하는 TU를 생성한 후, TU를 변환하여 CU의 변환 계수를 생성할 수 있다.
JEM 모델은 비디오 픽처 코딩 구조를 더욱 개선한다. 특히, QTBT(quadtree plus binary tree) 구조라고 하는 블록 코딩 구조가 도입되었다. HEVC에서 CU, PU 및 TU와 같은 개념을 사용하지 않고 QTBT 구조는 보다 유연한 CU 분할 모양을 지원한다. CU는 정사각형 모양 또는 직사각형 모양일 수 있다. 쿼드 트리 분할은 먼저 CTU에서 수행되고, 이진 트리 분할은 쿼드 트리의 리프 노드에서 추가로 수행된다. 또한 대칭 수평 분할과 대칭 수직 분할의 두 가지 이진 트리 분할 모드가 있다. 이진 트리의 리프 노드를 CU라고 한다. JEM 모델의 CU는 예측 프로세스 나 변환 프로세스에서 더 이상 분할되지 않는다. 즉, JEM 모델의 CU, PU 및 TU는 동일한 블록 크기를 갖는다. 기존 JEM 모델에서 최대 CTU 크기는 256 × 256 루마 픽셀이다.
도 2a는 본 출원의 실시예에 따른 비디오 인코더(20)의 개략적인 블록도이다.
도 2a에 도시된 바와 같이, 비디오 인코더(20)는 예측 모듈(21), 합산기(22), 변환 모듈(23), 양자화 모듈(24) 및 엔트로피 인코딩 모듈(25)을 포함할 수 있다. 일 예에서, 예측 모듈(21)은 인터 예측 모듈(211) 및 인트라 예측 모듈(212)을 포함할 수 있다. 예측 모듈(21)의 내부 구조는 본 출원의 이 실시예에서 제한되지 않는다. 선택적으로, 하이브리드 아키텍처를 갖는 비디오 인코더(20)는 또한 역 양자화 모듈(26), 역 변환 모듈(27) 및 합산기(28)를 포함할 수 있다.
도 2a의 실행 가능한 구현에서, 비디오 인코더(20)는 저장 모듈(29)을 더 포함할 수 있다. 저장 모듈(29)은 대안적으로 비디오 인코더(20) 외부에 배치될 수 있다는 것을 이해해야 한다.
다른 실행 가능한 구현에서, 비디오 인코더(20)는 재구성된 비디오 픽처로부터 아티팩트를 제거하기 위해 픽처 블록의 경계를 필터링하기 위한 필터(도 2a에 도시되지 않음)를 더 포함할 수 있다. 필요한 경우, 필터는 일반적으로 합산기(28)의 출력을 필터링한다.
선택적으로, 비디오 인코더(20)는 분할 유닛(도 2a에 도시되지 않음)을 더 포함할 수 있다. 비디오 인코더(20)는 비디오 데이터를 수신하고, 분할 유닛은 비디오 데이터를 픽처 블록으로 분할한다. 이러한 분할은 슬라이스, 픽처 블록 또는 다른 더 큰 단위로 분할하는 파티셔닝, 및 (예를 들어) LCU 및 CU의 쿼드 트리 구조에 기초하여 수행되는 픽처 블록으로 분할하는 파티셔닝을 더 포함할 수 있다. 비디오 인코더(20)는 예를 들어, 인코딩될 비디오 슬라이스에서 픽처 블록을 인코딩하기 위한 컴포넌트를 설명한다. 슬라이스는 일반적으로 복수의 픽처 블록으로 분할될 수 있다(그리고 픽처 블록의 세트로 분할될 수 있다). 슬라이스 유형은 I(주로 인트라 픽처 인코딩에 사용됨), P(인터 순방향 참조 예측 픽처 인코딩에 사용됨) 및 B(간 양방향 참조 예측 픽처 인코딩에 사용됨)를 포함한다.
예측 모듈(21)은 현재 블록의 예측자(본 출원에서 예측된 정보로 지칭될 수 있음)를 획득하기 위해 현재 처리되어야 하는 픽처 블록에 대해 인트라 또는 인터 예측을 수행하도록 구성된다. 본 출원의 이 실시예에서, 현재 처리될 필요가 있는 픽처 블록은 짧게 처리 대상 블록일 수 있거나, 짧게 현재 픽처 블록일 수 있거나, 짧게 현재 블록일 수 있다. 대안으로, 인코딩 단계에서 현재 처리해야 하는 픽처 블록을 줄여서 현재 코딩 블록(인코딩 블록)이라고 할 수 있으며, 현재 디코딩 단계에서 처리해야 하는 픽처 블록을 현재 코딩 블록(디코딩 블록)이라고 할 수 있다.
구체적으로, 예측 모듈(21)에 포함된 인터 예측 모듈(211)은 현재 블록에 대해 인터 예측을 수행하여 인터 예측자를 획득한다. 인트라 예측 모듈(212)은 인트라 예측자를 획득하기 위해 현재 블록에 대해 인트라 예측을 수행한다. 인터 예측 모듈(211)은 현재 픽처에서 현재 블록에 대해 매칭된 참조 블록에 대해 재구성된 픽처를 검색하고; 참조 블록에 있는 샘플의 샘플 값을 예측 정보로 사용하거나 현재 블록에 있는 샘플의 샘플 값에 대한 예측자로 사용한다(이하에서는 정보를 값과 구분하지 않는다). 여기서 이 프로세스를 모션 추정(motion estimation, ME)(도 2b에 도시된 바와 같음); 현재 블록의 모션 정보를 전송한다.
픽처 블록의 모션 정보는 예측 방향(보통 순방향 예측, 역방향 예측 또는 양방향 예측이다)의 지시 정보, 참조 블록이 가리키는 하나 또는 두 개의 모션 벡터 (Motion vector, MV) 및 참조 블록이 위치하는 픽처의 지시 정보(종종 참조 픽처 인덱스, 참조 인덱스로 표시된다)를 포함한다는 것에 유의해야 한다.
순방향 예측은 현재 블록에 대한 참조 블록을 획득하기 위해 순방향 참조 픽처 세트에서 참조 픽처를 선택하는 것을 의미한다. 역방향 예측은 현재 블록에 대한 참조 블록을 획득하기 위해 역방향 참조 픽처 세트에서 참조 픽처를 선택하는 것을 의미한다. 양방향 예측은 참조 블록을 획득하기 위해 순방향 참조 픽처 세트에서 참조 픽처를 선택하고 역방향 참조 픽처 세트에서 참조 픽처를 선택하는 것을 의미한다. 양방향 예측 방법을 사용하는 경우 현재 블록에 대해 두 개의 참조 블록이 있다. 각 참조 블록은 모션 벡터와 참조 픽처 인덱스를 사용하여 지시해야 하며, 두 참조 블록에 있는 샘플의 픽셀 값을 기반으로 현재 블록에 있는 샘플의 샘플 값에 대한 예측 변수를 결정한다.
모션 추정 과정에서는 현재 블록에 대해 참조 픽처 내의 복수의 참조 블록을 시도해야 하며, 예측에 최종적으로 사용되는 하나 이상의 특정 참조 블록은 속도 왜곡 최적화(Rate-distortion Optimization, RDO) 또는 다른 방법을 사용한다.
예측 모듈(21)이 인터 예측 또는 인트라 예측을 통해 현재 블록의 예측자를 생성한 후, 비디오 인코더(20)는 현재 블록에서 예측자를 감산하여 잔여 정보를 생성한다. 변환 모듈(23)은 잔여 정보를 변환하도록 구성된다. 변환 모듈(23)은 이산 코사인 변환(discrete cosine transformation, DCT) 또는 개념적으로 유사한 변환(예를 들어, 이산 사인 변환(discrete sine transform, DST))과 같은 변환을 적용하여 잔여 정보를 잔여 변환 계수로 변환한다. 변환 모듈(23)은 획득된 잔여 변환 계수를 양자화 모듈(24)로 전송할 수 있다. 양자화 모듈(24)은 코드 레이트를 더 감소시키기 위해 잔여 변환 계수를 양자화한다. 일부 실행 가능한 구현에서, 양자화 모듈(24)은 양자화된 변환 계수를 포함하는 매트릭스를 계속 스캔할 수 있다. 또는 엔트로피 인코딩 모듈(25)은 스캐닝을 수행할 수 있다.
양자화 후에, 엔트로피 인코딩 모듈(25)은 비트스트림을 획득하기 위해 양자화된 잔여 변환 계수에 대해 엔트로피 인코딩을 수행할 수 있다. 예를 들어, 엔트로피 인코딩 모듈(25)은 상황 적응 가변 길이 디코딩(CAVLC), 상황 기반 적응 이진 산술 디코딩(CABAC), 신택스 기반 상황 적응 이진 산술 디코딩(SBAC), 확률 간격 분할 엔트로피(PIPE) 디코딩 또는 다른 엔트로피 인코딩 방법론 또는 기술을 수행할 수 있다. 엔트로피 인코딩 모듈(25)이 엔트로피 인코딩을 수행한 후에, 인코딩된 비트스트림은 비디오 디코더(30)로 전송되거나 비디오 디코더(30)에 의한 향후 전송 또는 검색을 위해 보관될 수 있다.
역 양자화 모듈(26) 및 역변환 모듈(27)은 각각 역 양자화 및 역변환을 수행하여 픽셀 도메인의 잔여 블록을 참조 픽처의 참조 블록으로 재구성한다. 합산기(28)는 복원을 통해 얻은 잔여 정보와 예측 모듈(21)에서 생성된 예측자를 더하여 복원된 블록을 생성하고, 복원된 블록을 저장 모듈(29)에 저장하기 위한 참조 블록으로 사용한다. 참조 블록은 예측 모듈(21)은 후속 비디오 프레임 또는 픽처의 블록에 대해 인터 또는 인트라 예측을 수행한다.
비디오 인코더(20)의 다른 구조적 변형이 비디오 스트림을 인코딩하기 위해 사용될 수 있다는 것을 이해해야 한다. 예를 들어, 일부 픽처 블록 또는 픽처 프레임의 경우, 비디오 인코더(20)는 변환 모듈(23)에 의한 처리 또는 역변환 모듈(27)에 의한 처리 없이 잔여 정보를 직접 양자화할 수 있다. 대안적으로, 일부 픽처 블록 또는 픽처 프레임의 경우, 비디오 인코더는 20은 잔여 정보를 생성하지 않으며, 그에 따라 변환 모듈(23), 양자화 모듈(24), 역 양자화 모듈(26) 및 역변환 모듈(27)에 의한 처리가 필요하지 않다. 또는, 비디오 인코더(20)는 필터 유닛의 처리 없이 복원된 픽처 블록을 참조 블록으로 직접 저장할 수 있다. 대안적으로, 비디오 인코더(20)의 양자화 모듈(24) 및 역 양자화 모듈(26)은 함께 결합될 수 있다. 대안적으로, 비디오 인코더(20)의 변환 모듈(23) 및 역변환 모듈(27)은 함께 결합될 수 있다. 대안적으로, 합산기(22) 및 합산기(28)는 함께 결합될 수 있다.
도 2c는 본 출원의 실시예에 따른 비디오 디코더(30)의 개략적인 블록도이다.
도 2c에 도시된 바와 같이, 비디오 디코더(30)는 엔트로피 디코딩 모듈(31), 예측 모듈(32), 역 양자화 모듈(34), 역변환 모듈(35) 및 재구성 모듈(36)을 포함할 수 있다. 예를 들어, 예측 모듈(32)은 모션 보상을 포함할 수 있다. 모듈(322) 및 인트라 예측 모듈(321). 이것은 본 출원의 이 실시예에서 제한되지 않는다.
실행 가능한 구현에서, 비디오 디코더(30)는 저장 모듈(33)을 더 포함할 수 있다. 저장 모듈(33)은 대안적으로 비디오 디코더(30) 외부에 배치될 수 있음을 이해해야 한다. 일부 실행 가능한 구현에서, 비디오 디코더(30)는 도 2a의 비디오 인코더(20)의 인코딩 절차와 반대인 예시적인 디코딩 절차를 수행할 수 있다.
디코딩 과정에서 비디오 디코더(30)는 비디오 인코더(20)로부터 비트스트림을 수신한다. 엔트로피 디코딩 모듈(31), 역 양자화 모듈(34) 및 역변환 모듈(35)은 각각 엔트로피 디코딩, 역 양자화 및 역변환을 순차적으로 수행한다. 비디오 디코더(30)에 의해 수신된 비트스트림을 변환하여 잔여 정보를 획득한다. 현재 블록에 대해 인트라 예측 또는 인터 예측이 수행되는지는 비트스트림을 기반으로 결정된다. 인트라 예측이 수행되면, 예측 모듈(32)의 인트라 예측 모듈(321)은 사용된 인트라 예측 방법 및 현재 블록 주변의 복원된 블록의 참조 픽셀의 픽셀 값을 기반으로 예측 정보를 구성한다. 인터 예측이 수행되면 모션 보상 모듈(322)은 파싱을 통해 모션 정보를 획득하고, 파싱된 모션 정보를 기반으로 복원된 픽처 블록에서 참조 블록을 결정하고, 참조 블록에 있는 샘플의 샘플 값을 예측 정보로 사용한다. (여기서 이 프로세스를 모션 보정(motion compensation, MC)이라고 한다). 재구성 모듈(36)은 예측 정보와 잔여 정보를 이용하여 재구성 정보를 획득할 수 있다.
전술한 바와 같이, 본 출원은 예를 들어 인터 디코딩에 관한 것이다. 따라서, 본 출원의 특정 기술은 모션 보상 모듈(322)에 의해 실행될 수 있다. 다른 실행 가능한 구현에서, 비디오 디코더(30)의 하나 이상의 다른 유닛은 추가적으로 또는 대안적으로본 출원의 기술을 실행하는 책임이 있을 수 있다.
다음은 먼저 본 출원의 개념을 설명한다.
(1) 인터 예측 모드
HEVC에서, 2 개의 인터 예측 모드가 사용된다: 고급 모션 벡터 예측(advanced motion vector prediction, AMVP) 모드 및 병합(merge) 모드.
AMVP 모드에서, 현재 블록의 공간적 또는 시간적 이웃 인코딩 블록(인접 블록으로 표시됨)이 먼저 순회되고, 후보 모션 벡터 리스트(모션 정보 후보 리스트라고도 함)가 구성된다. 각 주변 블록의 모션 정보에 대해 레이트 왜곡 비용을 이용하여 후보 모션 벡터 리스트에서 최적 모션 벡터를 결정하고, 모션 벡터 예측자(motion vector predictor, MVP) 인접 블록의 위치와 인접 블록의 순회 순서가 미리 정의된다. 속도 왜곡 비용은 식 (1)에 따라 계산된다. 여기서 J는 속도 왜곡 비용 RD 비용을 나타내고, SAD는 원래 픽셀 값과 예측된 픽셀 값 간의 절대 차이(절대 차이의 합, SAD)의 합계이다. 후보 모션 벡터 예측자를 이용한 모션 추정을 통해 얻은 R은 비트율, 는 라그랑주 승수를 나타낸다. 인코더 측은 후보 모션 벡터 리스트에서 선택된 모션 벡터 예측자의 인덱스 값과 참조 픽처 인덱스 값을 디코더 측에 전달한다. 또한, 현재 블록의 실제 모션 벡터를 획득하기 위해 MVP를 중심으로 이웃에서 모션 검색을 수행한다. 인코더 측은 MVP와 실제 모션 벡터 간의 차이(모션 벡터 차이)를 디코더 측으로 전송한다.
(1)
병합 모드에서는 현재 블록의 공간적 또는 시간적 인접 인코딩 블록의 모션 정보를 이용하여 후보 모션 벡터 리스트를 먼저 구성한 다음, 속도 왜곡 비용을 계산하여 후보 모션 벡터 리스트에서 최적 모션 정보를 결정하고 현재 블록의 모션 정보로 사용된 후 후보 모션 벡터 리스트에서 최적 모션 정보의 위치에 대한 인덱스 값(이하 병합 인덱스라 함)을 디코더 측으로 전달한다. 도 3은 현재 블록의 공간적 및 시간적 후보 모션 정보를 나타낸다. 공간 후보 모션 정보는 5 개의 공간 이웃 블록(A0, A1, B0, B1, B2)에서 가져온다. 주변 블록을 사용할 수 없는 경우(인접 블록이 없거나 주변 블록이 인코딩되지 않았거나 주변 블록이 사용하는 예측 모드가 인터 예측 모드가 아닌 경우), 주변 블록의 모션 정보는 후보 모션 벡터 리스트에 추가되지 않는다. 현재 블록의 시간적 후보 모션 정보는 참조 프레임과 현재 프레임의 픽처 순서 카운트(Picture Order Count, POC)를 기반으로 참조 프레임의 해당 위치에 있는 블록의 MV를 스케일링하여 획득한다. 참조 프레임의 T 위치에 있는 블록이 사용 가능한지가 먼저 결정된다. 블록을 사용할 수 없는 경우 위치 C의 블록이 선택된다.
AMVP 모드와 유사하게, 병합 모드에서, 이웃 블록의 위치와 이웃 블록의 순회 순서도 미리 정의된다. 또한, 주변 블록의 위치와 주변 블록의 횡단 순서는 모드에 따라 다를 수 있다.
AMVP 모드와 병합 모드 모두에서 후보 모션 벡터 리스트가 유지되어야 함을 알 수 있다. 매번 새로운 모션 정보가 후보 리스트에 추가되기 전에 리스트에 이미 동일한 모션 정보가 존재하는지 먼저 확인한다. 리스트에 동일한 모션 정보가 있는 경우 해당 모션 정보는 리스트에 추가되지 않는다. 이 검사 프로세스를 후보 모션 벡터 리스트의 잘라 내기(pruning)라고 한다. 리스트에서 동일한 동작 정보를 피하기 위해 리스트가 정리되므로 중복된 속도 왜곡 비용 계산이 방지된다.
HEVC의 인터 예측에서는 코딩 블록의 모든 픽셀에 대해 동일한 모션 정보를 사용하고, 그 모션 정보를 기반으로 모션 보상을 수행하여 코딩 블록의 픽셀에 대한 예측자를 획득한다. 그러나 코딩 블록에서 모든 픽셀이 동일한 모션 기능을 갖는 것은 아니다. 동일한 모션 정보를 사용하면 부정확한 모션 보상 예측 및 더 많은 잔여 정보가 발생할 수 있다.
기존의 비디오 코딩 표준에서는 병진 운동 모델을 기반으로 한 블록 매칭 모션 추정을 사용하며, 블록 내 모든 픽셀의 모션이 일관적이라고 가정한다. 그러나 현실 세계에는 다양한 동작이 있다. 예를 들어 회전하는 물체, 다른 방향으로 회전하는 롤러코스터, 불꽃놀이의 디스플레이, 영화에서의 일부 스턴트, 특히 UGC 시나리오에서의 움직이는 물체와 같이 많은 물체가 비 병진 모션(non-translational motion)에 있다. 이러한 움직이는 물체의 경우, 기존 코딩 표준의 병진 운동 모델에 기반한 블록 모션 보상 기술을 코딩에 사용하면 코딩 효율에 큰 영향을 미칠 수 있다. 이 경우 코딩 효율을 더욱 향상시키기 위해 비 병진 모션 모델, 예를 들어 아핀 모션 모델이 도입된다.
이를 바탕으로 서로 다른 모션 모델의 관점에서 AMVP 모드는 병진 모델 기반 AMVP 모드와 비 병진 모델 기반 AMVP 모드로 구분할 수 있으며, 병합 모드는 병진 모델 기반 병합 모드 및 비 병진 모션 모델 기반 병합 모드로 구분할 수 있다.
(2) 비 병진 운동 모델
비 병진 모션 모델 예측은 인코더/디코더 측이 동일한 모션 모델을 이용하여 현재 블록의 각 모션 보상 서브 유닛의 모션 정보를 도출하고, 모션 보상 서브 유닛의 모션 정보를 기반으로 모션 보상을 수행하는 것을 의미한다. 예측 블록을 획득하여 예측 효율성을 향상시킨다. 일반적인 비 병진 모션 모델에는 4-파라미터 아핀 모션 모델 또는 6-파라미터 아핀 모션 모델이 포함된다.
본 출원의 이 실시예에서 모션 보상 서브 유닛은 의 크기를 갖고 특정 방법에 따라 분할을 통해 얻은 샘플 또는 픽셀 블록일 수 있으며, 여기서 는 모두 양의 정수이고 와 동일할 수 있거나 또는 와 같지 않을 수 있다.
4-파라미터 아핀 모션 모델은 다음 식 (2)로 표현된다:
(2)
4-파라미터 아핀 모션 모델은 두 샘플의 모션 벡터와 현재 블록의 왼쪽 상단 샘플을 기준으로 두 샘플의 좌표를 사용하여 표현할 수 있다. 모션 모델 파라미터를 나타내는 데 사용되는 샘플을 제어점이라고 한다. 왼쪽 상단 샘플 (0, 0) 및 오른쪽 상단 샘플 (W, 0)이 제어점으로 사용되는 경우, 왼쪽 상단 샘플의 제어점 및 오른쪽 상단 샘플의 모션 벡터 현재 블록이 먼저 결정된 다음 현재 블록의 각 모션 보상 서브 유닛의 모션 정보는 식 (3)에 따라 획득된다. 여기서 (x, y)는 왼쪽 상단 샘플에 대한 모션 보상 서브 유닛의 좌표이다. W는 현재 블록의 폭이다.
(3)
6-파라미터 아핀 모션 모델은 다음 식 (4)로 표현된다:
(4)
6-파라미터 아핀 모션 모델은 현재 블록의 왼쪽 상단 샘플을 기준으로 3 개 샘플의 모션 벡터와 3 개 샘플의 좌표를 사용하여 표현할 수 있다. 왼쪽 상단 샘플 (0, 0), 오른쪽 상단 샘플 (W, 0) 및 왼쪽 하단 샘플 (0, H)이 제어점으로 사용되는 경우 왼쪽 상단 제어점의 모션 벡터, 현재 블록의 오른쪽 상단 제어점과 왼쪽 하단 제어점은 먼저 각각 , , 및 로 결정된다. 그러면 현재 블록의 각 모션 보상 서브 유닛의 모션 정보는 식 (5)에 따라 획득된다. (x, y)는 현재 블록의 왼쪽 상단 샘플에 대한 모션 보상 서브 유닛의 좌표이고 W와 H는 각각 현재 블록의 폭과 높이이다.
(5)
아핀 모션 모델을 이용하여 예측한 코딩 블록을 아핀 코딩 블록이라고 한다.
아핀 코딩 블록의 제어점의 모션 정보는 일반적으로 아핀 모션 모델 기반 고급 모션 벡터 예측(Advanced Motion Vector Prediction, AMVP) 모드 또는 아핀 모션 모델 기반 병합(Merge) 모드를 사용하여 얻을 수 있다.
현재 인코딩 블록의 제어점의 모션 정보는 상속된 제어점 모션 벡터 또는 구성된 제어점 모션 벡터를 예측하는 방법을 이용하여 획득할 수 있다.
(3) 상속된 제어점 모션 벡터 예측 방법
상속된 제어점 모션 벡터를 예측하는 방법은 주변 인코딩된 아핀 코딩 블록의 모션 모델을 이용하여 현재 블록의 후보 제어점 모션 벡터를 결정하는 것이다.
도 4에 도시된 현재 블록이 예로 사용된다. 현재 블록 주변의 인접 위치에 있는 블록은 지정된 순서 (예를 들어, 순서 A1->B1->B0->A0->B2)로 순회되어 현재의 인접 위치에 있는 블록이 위치하는 아핀 코딩 블록을 찾고, 아핀 코딩 블록의 제어점 모션 정보를 획득한다. 또한, (병합 모드에서 사용되는) 현재 블록의 제어점 모션 벡터 또는 (AMVP 모드에서 사용되는) 제어점 모션 벡터 예측자는 제어점 모션 정보를 이용하여 구성된 모션 모델을 이용하여 더 도출된다. 아핀 코딩 블록의 순서 A1->B1->B0->A0->B2는 단지 예로 사용된다. 다른 조합의 순서도 본 출원에 적용된다. 또한 인접 위치의 블록은 A1, B1, B0, A0, B2로 제한되지 않는다.
주변 위치의 블록은 특정 방법에 따라 분할하여 얻은 미리 설정된 크기의 샘플 또는 픽셀 블록일 수 있다. 예를 들어, 픽셀 블록은 4x4 픽셀 블록, 4x2 픽셀 블록 또는 다른 크기의 픽셀 블록일 수 있으며 이에 제한되지 않는다.
다음은 A1을 예로 들어 판단하는 과정을 설명하며, 다른 경우도 유사하다.
도 4에 도시된 바와 같이, A1이 위치하는 코딩 블록이 4-파라미터 아핀 코딩 블록인 경우, 아핀 코딩 블록의 왼쪽 상단 샘플 (x4, y4)의 모션 벡터 (vx4, vy4) 및 아핀 코딩 블록의 오른쪽 상단 샘플 (x5, y5)의 모션 벡터 (vx5), vy5)를 획득한다. 현재 아핀 코딩 블록의 왼쪽 상단 샘플 (x0, y0)의 모션 벡터 (vx0, vy0)는 식 (6)에 따라 계산되고, 현재 아핀 코딩 블록의 오른쪽 상단 샘플 (x1, y1)의 모션 벡터 (vx1, vy1)는 식 (7)에 따라 계산된다.
(6)
(7)
현재 블록의 왼쪽 상단 샘플 (x0, y0)의 모션 벡터 (vx0, vy0)와 현재 블록의 오른쪽 상단 샘플 (x1, y1)의 모션 벡터 (vx1, vy1)의 조합은 A1이 위치하는 아핀 코딩 블록을 기반으로 구한 것이고 현재 블록의 후보 제어점 모션 벡터이다.
A1이 위치하는 코딩 블록이 6-파라미터 아핀 코딩 블록인 경우, 아핀 코딩 블록의 왼쪽 상단 샘플 (x4, y4)의 모션 벡터 (vx4, vy4), 아핀 코딩 블록의 오른쪽 상단 샘플 (x5, y5)의 모션 벡터 (vx5, vy5) 및 아핀 코딩 블록의 왼쪽 상단 샘플 (x6, y6)의 모션 벡터 (vx6, vy6)를 획득한다. 현재 블록의 왼쪽 상단 샘플 (x0, y0)의 모션 벡터 (vx0, vy0)는 식 (8)에 따라 계산되고, 오른쪽 상단 샘플 (x1, y1)의 모션 벡터 (vx1, vy1)는 식 (9)에 따라 계산되고, 현재 블록의 왼쪽 상단 샘플 (x2, y2)의 모션 벡터 (vx2, vy2)는 식 (10)에 따라 계산된다.
(8)
(9)
(10)
현재 블록의 왼쪽 상단 샘플 (x0, y0)의 모션 벡터 (vx0, vy0), 현재 블록의 오른쪽 상단 샘플 (x1, y1)의 모션 벡터 (vx1, vy1), 및 현재 블록의 왼쪽 상단 샘플 (x2, y2)의 모션 벡터 (vx2, vy2)의 조합은 A1이 위치하는 아핀 코딩 블록을 기반으로 획득되며 현재 블록의 후보 제어점 모션 벡터이다.
다른 모션 모델, 후보 위치, 검색 및 순회 순서도 본 출원에 적용 가능하다는 점에 유의해야 한다. 본 출원의 이 실시예에서 자세한 내용은 설명되지 않는다.
이웃 및 현재 인코딩 블록의 모션 모델을 나타내기 위해 다른 제어점이 사용되는 방법도 본 출원에 적용 가능하다는 점에 유의해야 한다. 자세한 내용은 여기에서 설명하지 않는다.
(4) 구성된 제어점 모션 벡터(구성된 제어점 모션 벡터)를 예측하는 방법 1
구성된 제어점 모션 벡터를 예측하는 방법은 현재 블록의 제어점 주위의 주변 인코딩된 블록의 모션 벡터를 결합하여 현재 아핀 인코딩 블록의 제어점 모션 벡터 역할을 하는 것으로, 주변 인코딩된 블록이 아핀 코딩 블록인지는 고려하지 않는다.
현재 블록의 왼쪽 상단 샘플 및 오른쪽 상단 샘플의 모션 벡터는 현재 인코딩 블록 주변의 이웃 인코딩된 블록의 모션 정보를 이용하여 결정된다. 도 5a는 구성된 제어점 모션 벡터를 예측하는 방법을 설명하기 위한 예로서 사용된다. 도 5a는 단지 예일 뿐임에 유의해야 한다.
도 5a에 도시된 바와 같이, 왼쪽 상단 샘플의 인접 인코딩된 블록 A2, B2, B3의 모션 벡터는 현재 블록의 왼쪽 상단 샘플의 모션 벡터 및 인접 인코딩된 블록 B1의 모션 벡터에 대한 후보 모션 벡터로 사용된다. 오른쪽 상단 샘플의 B0은 현재 블록의 오른쪽 상단 샘플의 모션 벡터에 대한 후보 모션 벡터로 사용된다. 왼쪽 상단 샘플의 후보 모션 벡터와 오른쪽 상단 샘플의 후보 모션 벡터가 결합되어 복수의 2-튜플을 구성한다. 2-튜플에 포함된 두 개의 인코딩된 블록의 모션 벡터는 다음 식 (11A)과 같이 현재 블록의 후보 제어점 모션 벡터로 사용될 수 있다.
(11A),
여기서 는 A2의 모션 벡터를 나타내고, 는 B1의 모션 벡터를 나타내고, 는 B0의 모션 벡터를 나타내고, 는 B2의 모션 벡터를 나타내고, 는 B3의 모션 벡터를 나타낸다.
도 5a에 도시된 바와 같이, 왼쪽 상단 샘플의 이웃 인코딩 블록 A2, B2, B3의 모션 벡터는 현재 블록의 왼쪽 상단 샘플의 모션 벡터, 이웃 인코딩 블록 B1 및 B0의 모션 벡터에 대한 후보 모션 벡터로 사용된다. 현재 블록의 오른쪽 상단 샘플의 모션 벡터에 대한 후보 모션 벡터로 사용되며, 왼쪽 하단 샘플의 인접 인코딩된 블록 A0 및 A1의 모션 벡터는 다음에 대한 후보 모션 벡터로 사용된다. 현재 블록의 왼쪽 하단 샘플에 대한 모션 벡터. 왼쪽 상단 샘플의 후보 모션 벡터, 오른쪽 상단 샘플의 후보 모션 벡터 및 왼쪽 하단 샘플의 후보 모션 벡터가 결합되어 3-튜플을 구성한다. 3-튜플에 포함된 세 개의 인코딩된 블록의 모션 벡터는 다음 식 (11B) 및 식 (11C)에 표시된 것처럼 현재 블록의 후보 제어점 모션 벡터로 사용될 수 있다:
(11C),
여기서, 는 A2의 모션 벡터를 나타내고, 는 B1의 모션 벡터를 나타내고, 는 B0의 모션 벡터를 나타내고, 는 B2의 모션 벡터를 나타내고, 는 B3의 모션 벡터를 나타내고, 는 A0의 모션 벡터를 나타내고, 는 A1의 모션 벡터를 나타낸다.
제어점 모션 벡터를 결합하는 다른 방법도 본 출원에 적용할 수 있다. 자세한 내용은 여기에서 설명하지 않는다.
이웃 및 현재 인코딩 블록의 모션 모델을 표현하기 위해 다른 제어점이 사용되는 방법도 본 출원에 적용 가능하다는 점에 유의해야 한다. 자세한 내용은 여기에서 설명하지 않는다.
(5) 도 5b에 도시된 바와 같이 구성된 제어점 모션 벡터 (구성된 제어점 모션 벡터)를 예측하기 위한 방법.
단계 501: 현재 블록의 제어점의 모션 정보를 획득한다.
예를 들어, 도 5a에서 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이 확인된다. 세 위치의 모션 정보를 모두 사용할 수 없는 경우 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 위치를 사용할 수 없다.
제어점의 모션 정보를 획득하기 위한 다른 방법도 본 출원에 적용 가능하다는 점에 유의해야 한다. 자세한 내용은 여기에서 설명하지 않는다.
단계 502: 구성된 제어점 모션 정보를 획득하기 위해 제어점의 모션 정보를 결합한다.
두 제어점의 모션 정보를 결합하여 2-튜플을 구성하여 4-파라미터 아핀 모션 모델을 구성한다. 두 제어점은 {CP1, CP4}, {CP2, CP3}, {CP1, CP2}, {CP2, CP4}, {CP1, CP3} 또는 {CP3, CP4}와 같이 결합될 수 있다. 예를 들어, 제어점 CP1 및 CP2의 모션 정보(예를 들어, 2 개의 MV)를 기반으로 하는 2-튜플을 이용하여 구성된 4-파라미터 아핀 모션 모델은 아핀 (CP1, CP2)으로 표시될 수 있다.
3 개의 제어점의 모션 정보를 결합하여 3 개의 튜플을 구성하여 6 개의 파라미터 아핀 모션 모델을 구성한다. 3 개의 제어점은 {CP1, CP2, CP4}, {CP1, CP2, CP3}, {CP2, CP3, CP4} 또는 {CP1, CP3, CP4}와 같이 결합될 수 있다. 예를 들어, 제어점 CP1, CP2, CP3의 모션 정보(예를 들어, 3 개의 MV)를 기반으로 하는 3-튜플을 이용하여 구성된 6-파라미터 아핀 모션 모델은 아핀 (CP1, CP2, CP3)으로 표시될 수 있다.
4 개의 제어점의 모션 정보를 결합하여 4 개의 튜플을 구성하고 8 개의 파라미터 쌍 선형 모션 모델을 구성한다. 제어점 CP1, CP2, CP3, CP4의 모션 정보(예를 들어, 4 개의 MV)를 포함하는 4-튜플을 사용하여 구성된 8-파라미터 이중 선형 모델은 이중 선형(CP1, CP2, CP3, CP4)으로 표시된다.
본 출원의 이 실시예에서, 설명의 편의를 위해, 2 개의 제어점 (또는 2 개의 인코딩된 블록)의 모션 정보의 조합은 간단히 2 개의 튜플이라 하고, 3 개의 제어점 (또는 3 개의 인코딩된 블록)의 모션 정보의 조합은 간단히 3-튜플이라고 하며, 4 개의 제어점 (또는 4 개의 인코딩된 블록)의 모션 정보 조합은 간단히 4-튜플이라고 한다.
이러한 모델은 미리 설정된 순서로 순회된다. 결합된 모델에 대응하는 특정 제어점의 모션 정보를 사용할 수 없는 경우 해당 모델을 사용할 수 없는 것으로 간주한다. 그렇지 않으면 모델의 참조 픽처 인덱스가 결정되고 제어점의 모션 벡터가 스케일링된다. 스케일링 후 얻은 모든 제어점의 모션 정보가 일치하면 모델이 유효하지 않는다. 모델을 제어하는 제어점의 모션 정보를 모두 사용할 수 있고 모델이 유효한 경우 모델을 구성하는 제어점의 모션 정보가 모션 정보 후보 리스트에 추가된다.
제어점 모션 벡터 스케일링 방법은 식 (12)에 표시된다:
(12),
여기서 는 현재 프레임의 POC 번호를 나타내고, 는 현재 블록의 참조 프레임의 POC 번호를 나타내고, 는 제어점의 참조 프레임의 POC 번호를 나타내고, 는 스케일링 후 얻은 모션 벡터를 나타내고, MV는 제어점의 모션 벡터를 나타낸다.
서로 다른 제어점의 조합은 동일한 위치에서 제어점으로 변환될 수 있다.
예를 들어, {CP1, CP4}, {CP2, CP3}, {CP2, CP4}, {CP1, CP3} 또는 {CP3, CP4} 조합을 사용하여 얻은 4-파라미터 아핀 모션 모델이 {CP1, CP2} 또는 {CP1, CP2, CP3}로 변환된다. 변환 방법은 다음과 같다: 제어점의 모션 벡터와 제어점의 좌표 정보를 식 (2)에 대입하여 모델 파라미터를 얻고; 그런 다음 {CP1, CP2}의 좌표 정보를 식 (3)에 대입하여 CP1과 CP2의 모션 벡터를 얻는다.
보다 직접적으로는 식 (13) 내지 식 (21)에 따라 변환이 수행될 수 있다. W는 현재 블록의 폭을 나타낸다. H는 현재 블록의 높이를 나타낸다. 식 (13) 내지 식 (21)에서 ()는 CP1의 모션 벡터를 나타내고, ()는 CP2의 모션 벡터를 나타내고, ()는 CP3의 모션 벡터를 나타내고, ()는 CP4의 모션 벡터를 나타낸다.
{CP1, CP2}는 식 (13)을 사용하여 {CP1, CP2, CP3}로 변환될 수 있다. 즉, {CP1, CP2, CP3}에서 CP3의 모션 벡터는 다음 식 (13)을 사용하여 결정될 수 있다:
(13)
{CP1, CP3}는 다음 식 (14)을 사용하여 {CP1, CP2} 또는 {CP1, CP2, CP3}로 변환될 수 있다:
(14)
{CP2, CP3}는 다음 식 (15)을 사용하여 {CP1, CP2} 또는 {CP1, CP2, CP3}로 변환할 수 있다:
(15)
{CP1, CP4}는 식 (16) 또는 식 (17)을 사용하여 {CP1, CP2} 또는 {CP1, CP2, CP3}로 변환할 수 있다:
(16)
(17)
{CP2, CP4}는 식 (18)을 사용하여 {CP1, CP2}로 변환될 수 있으며 {CP2, CP4}는 식 (18) 및 식 (19)를 사용하여 {CP1, CP2, CP3}로 변환될 수 있다:
(18)
(19)
{CP3, CP4}는 식 (20)을 사용하여 {CP1, CP2}로 변환할 수 있으며 {CP3, CP4}는 식 (20) 및 식 (21)을 사용하여 {CP1, CP2, CP3}로 변환할 수 있다:
(20)
(21)
예를 들어, {CP1, CP2, CP4}, {CP2, CP3, CP4} 또는 {CP1, CP3, CP4} 조합을 사용하여 얻은 6-파라미터 아핀 모션 모델은 제어점의 {CP1, CP2, CP3}로 변환된다. 변환 방법은 다음과 같다: 제어점의 모션 벡터와 제어점의 좌표 정보를 식 (4)에 대입하여 모델 파라미터를 얻고; 그런 다음 {CP1, CP2, CP3}의 좌표 정보를 식 (5)에 대입하여 CP1, CP2, CP3의 모션 벡터를 얻는다.
보다 직접적으로는 식 (22) 내지 식 (24)에 따라 변환이 수행될 수 있다. W는 현재 블록의 폭을 나타낸다. H는 현재 블록의 높이를 나타낸다. 식 (13) 내지 식 (21)에서 ()는 CP1의 모션 벡터를 나타내고, ()는 CP2의 모션 벡터를 나타내고, ()는 CP3의 모션 벡터를 나타내고, ()는 CP4의 모션 벡터를 나타낸다.
{CP1, CP2, CP4}는 다음 식 (22)에 따라 {CP1, CP2, CP3}로 변환될 수 있다:
(22)
{CP2, CP3, CP4}는 다음 식 (23)에 따라 {CP1, CP2, CP3}로 변환될 수 있다:
(23)
{CP1, CP3, CP4}는 식 (24)에 따라 {CP1, CP2, CP3}로 변환될 수 있다:
(24)
(6) 아핀 모션 모델 기반 고급 모션 벡터 예측 모드(아핀 AMVP 모드):
1. 후보 모션 벡터 리스트 구성
아핀 모션 모델 기반 AMVP 모드의 후보 모션 벡터 리스트는 상속된 제어점 모션 벡터 및/또는 구성된 제어점 모션 벡터를 예측하는 방법을 사용하여 구성된다. 본 출원의 본 실시예에서, 아핀 모션 모델 기반 AMVP 모드에 대한 후보 모션 벡터 리스트는 제어점 모션 벡터 예측자 후보 리스트(제어점 모션 벡터 예측자 후보 리스트) 및 각 제어점 모션 벡터로 지칭될 수 있다. 예측자는 2 개의(4-파라미터 아핀 모션 모델) 제어점의 모션 벡터 또는 3 개의(6-파라미터 아핀 모션 모델) 제어점의 모션 벡터를 포함한다.
선택적으로, 제어점 모션 벡터 예측자 후보 리스트는 특정 규칙에 따라 잘라 내기되어 정렬되며, 특정 수량으로 잘라 내기되거나 패딩될 수 있다.
2. 최적의 제어점 모션 벡터 예측자 결정
인코더 측에서는 제어점 모션 벡터 예측자 후보 리스트 내의 각 제어점 모션 벡터 예측자를 사용하여 현재 인코딩 블록의 각 모션 보상 서브 유닛의 모션 벡터를 식 (3)/(5)에 따라 구한다. 또한, 각 모션 보상 서브 유닛의 모션 벡터를 획득한 참조 프레임에서 해당 위치의 픽셀 값을 픽셀 값의 예측자로 사용하여 아핀 모션 모델을 이용하여 모션 보상을 수행한다. 현재 인코딩 블록에 있는 모든 샘플의 원래 값과 예측 변수 간의 차이에 대한 평균 값이 계산된다. 최소 평균값에 대응하는 제어점 모션 벡터 예측자는 최적의 제어점 모션 벡터 예측자로 선정되어 현재 인코딩 블록의 2/3 제어점 모션 벡터 예측자로 사용된다. 제어점 모션 벡터 예측자 후보 리스트에서 제어점 모션 벡터 예측자의 위치를 나타내는 인덱스 번호는 비트스트림으로 인코딩되어 디코더로 전송된다.
디코더 측에서, 인덱스 번호가 파싱되고, 제어점 모션 벡터 예측자(control point motion vectors predictor, CPMVP)가 인덱스 번호에 기초하여 제어점 모션 벡터 예측자 후보 리스트로부터 결정된다.
3. 제어점 모션 벡터 결정
인코더 측에서는, 제어점 모션 벡터 (control point motion vectors, CPMV)를 획득하기 위해 특정 검색 범위 내에서 모션 검색을 위한 검색 시작점으로 제어점 모션 벡터 예측자가 사용된다. 제어점 모션 벡터와 제어점 모션 벡터 예측자 간의 차이(control point motion vector differences, CPMVD)는 디코더 측으로 전송된다.
디코더 측에서는 제어점 모션 벡터 차이를 분석하고, 제어점 모션 벡터 차이와 제어점 모션 벡터 예측자를 추가하여 제어점 모션 벡터를 얻는다.
(7) 아핀 병합 모드(Affine Merge mode)
제어점 모션 벡터 병합 후보 리스트(control point motion vectors merge candidate list)는 상속된 제어점 모션 벡터 및/또는 구성된 제어점 모션 벡터를 예측하는 방법을 사용하여 구성된다.
선택적으로, 제어점 모션 벡터 병합 후보 리스트는 특정 규칙에 따라 잘라 내기 및 정렬되고, 특정 수량으로 잘라 내기되거나 패딩될 수 있다.
인코더 측에서는 현재 인코딩 블록에서 각 모션 보상 서브 유닛(크기가 이고 특정 방법에 따라 분할을 통해 얻은 샘플 또는 픽셀 블록)의 모션 벡터는 병합 후보 리스트의 각 제어점 모션 벡터를 사용하여 식 (3)/(5)에 따라 획득된다. 또한, 각 모션 보상 서브 유닛의 모션 벡터가 가리키는 참조 프레임 내 위치의 픽셀 값을 획득하여 픽셀 값의 예측자로 사용하여 아핀 모션 보상을 수행한다. 현재 인코딩 블록에 있는 모든 샘플의 원래 값과 예측 변수 간의 차이에 대한 평균 값이 계산된다. 차이의 최소 평균값에 대응하는 제어점 모션 벡터는 현재 인코딩 블록의 2/3 제어점 모션 벡터로 선택된다. 후보 리스트에서 제어점의 모션 벡터의 위치를 나타내는 인덱스 번호는 비트스트림으로 인코딩되어 디코더로 전송된다.
디코더 측에서는 인덱스 번호가 파싱되고, 제어점 모션 벡터 (control point motion vectors, CPMV)는 인덱스 번호에 기초하여 제어점 모션 벡터 병합 후보 리스트로부터 결정된다.
또한, 본 출원에서 "적어도 하나"는 하나 이상을 의미하고, "복수"는 둘 이상을 의미함을 유의해야 한다. 용어 "및/또는"은 연관된 객체 간의 연관 관계를 설명하고 세 가지 관계가 존재할 수 있음을 나타낸다. 예를 들어 A 및/또는 B는 다음과 같은 경우를 나타낼 수 있다: A만 존재하고 A와 B가 모두 존재하며 B만 존재한다. 여기서 A와 B는 단수 또는 복수 형태일 수 있다. 문자 "/"는 일반적으로 연관된 객체 간의 "또는" 관계를 나타낸다. "다음 항목(개수) 중 적어도 하나" 또는 이와 유사한 표현은 단일 케이스(개수) 또는 복수 항목(개수)의 임의 조합을 포함하여 이들 항목의 임의의 조합을 나타낸다. 예를 들어, a, b 또는 c 중 적어도 하나는: a, b, c, a-b, a-c, b-c 또는 a-b-c를 나타낼 수 있으며, 여기서 a, b 및 c는 단수 또는 복수일 수 있다.
본 출원에서 인터 예측 모드를 이용하여 현재 블록을 디코딩하는 경우, 신택스 요소를 이용하여 인터 예측 모드를 시그널링할 수 있다.
현재, 현재 블록에 사용되는 인터 예측 모드를 파싱하기 위해 현재 사용되는 신택스 구조의 일부에 대해서는 표 1을 참조한다. 신택스 구조에서 신택스 요소는 대안적으로 다른 식별자로 표현될 수 있음에 유의해야 한다. 이것은 본 출원에서 특별히 제한되지 않는다.
coding_unit(x0,y0,cbWidth,cbHeight) { 설명자
(descriptor)
...
merge_flag[x0][y0] ae(v)
if(merge_flag[x0][y0]) {
if(allowAffineMerge)
affine_merge_flag[x0][y0] ae(v)
if(MaxNumMergeCand > 1)
merge_idx[x0][y0] ae(v)
} else {
if(slice_type = = B)
inter_pred_idc[x0][y0] ae(v)
if(allowAffineInter) {
affine_inter_flag[x0][y0] ae(v)
if(affine_inter_flag[x0][y0])
affine_type_flag[x0][y0] ae(v)
}
MotionModelIdc[x0][y0] = affine_inter_flag[x0][y0] + affine_type_flag[x0][y0]
if(inter_pred_idc[x0][y0] != PRED_L1) {
if(num_ref_idx_l0_active_minus1 > 0)
ref_idx_l0[x0][y0] ae(v)
mvd_coding(x0, y0, 0, 0)
if(MotionModelIdc[x0][y0] > 0) {
mvd_coding(x0, y0, 0, 1)
if(MotionModelIdc[x0][y0] > 1)
mvd_coding(x0, y0, 0, 2)
}
mvp_l0_flag[x0][y0] ae(v)
}
if(inter_pred_idc[x0][y0] != PRED_L0) {
if(num_ref_idx_l1_active_minus1 > 0)
ref_idx_l1[x0][y0] ae(v)
mvd_coding(x0, y0, 1, 0)
if(MotionModelIdc[x0][y0] > 0) {
mvd_coding(x0, y0, 1, 1)
if(MotionModelIdc[x0][y0] > 1)
mvd_coding(x0, y0, 1, 2)
}
mvp_l1_flag[x0][y0] ae(v)
}
}
...
}
merge_flag[x0][y0] 신택스 요소는 현재 블록에 병합 모드가 사용되는지를 나타내는 데 사용될 수 있다. 예를 들어 merge_flag[x0][y0] = 1이면 현재 블록에 병합 모드를 사용하고 있음을 나타낸다. 또는 merge_flag[x0][y0] = 0이면 현재 블록에 병합 모드가 사용되지 않음을 나타낸다. x0 및 y0은 비디오 픽처에 대한 현재 블록의 좌표를 나타낸다.
allowAffineMerge 변수는 현재 블록에 대해 아핀 모션 모델 기반 병합 모드를 허용하기 위한 조건이 충족되는지를 나타내는 데 사용될 수 있다. 예를 들어 allowAffineMerge = 0이면 아핀 모션 모델 기반 병합 모드를 허용하는 조건이 충족되지 않음을 나타낸다. 또는 allowAffineMerge = 1이면 아핀 모션 모델 기반 병합 모드에 대한 조건이 충족되었음을 나타낸다. 아핀 모션 모델 기반 병합 모드를 허용하기 위한 조건은 현재 블록의 폭과 높이가 모두 8보다 크거나 같을 수 있다. cbWidth는 현재 블록의 폭을 나타내고, cbHeight는 현재 블록의 높이를 나타낸다. 즉, cbWidth < 8 또는 cbHeight < 8이면 allowAffineMerge = 0이거나; 또는 cbWidth ◎ 8 및 cbHeight ◎ 8이면 allowAffineMerge = 1이다.
allowAffineInter 변수는 현재 블록에 대해 아핀 모션 모델 기반 AMVP 모드를 허용하기 위한 조건이 만족되는지를 나타내는 데 사용될 수 있다. 예를 들어 allowAffineInter = 0이면 아핀 모션 모델 기반 AMVP 모드 허용 조건이 충족되지 않음을 나타낸다. 또는 allowAffineInter = 1인 경우 아핀 모션 모델 기반 AMVP 모드 허용 조건을 만족함을 나타낸다. 아핀 모션 모델 기반 AMVP 모드를 허용하는 조건은 현재 블록의 폭과 높이가 모두 16보다 크거나 같을 수 있다. 즉, cbWidth < 16 또는 cbHeight < 16일 때 allowAffineInter = 0이거나; 또는 cbWidth ≥ 16 및 cbHeight ≥ 16인 경우 allowAffineInter = 1이다.
신택스 요소 affine_merge_flag[x0][y0]은 현재 블록을 포함하는 슬라이스가 P 슬라이스 또는 B 슬라이스인 경우 현재 블록에 대해 아핀 모션 모델 기반 병합 모드를 사용하는지를 나타내는 데 사용될 수 있다. 예를 들어, affine_merge_flag[x0][y0] = 1이면 현재 블록에 대해 아핀 모션 모델 기반 병합 모드를 사용함을 나타낸다. 또는 affine_merge_flag[x0][y0] = 0인 경우 현재 블록에 대해 아핀 모션 모델 기반 병합 모드를 사용하지 않고 병진 모션 모델 기반 병합 모드를 사용할 수 있음을 나타낸다.
신택스 요소 affine_inter_flag[x0][y0]은 현재 블록을 포함하는 슬라이스가 P 슬라이스 또는 B 슬라이스인 경우 현재 블록에 대해 아핀 모션 모델 기반 AMVP 모드를 사용하는지를 나타내는 데 사용될 수 있다. 예를 들어 affine_inter_flag[x0][y0] = 1이면 현재 블록에 대해 아핀 모션 모델 기반 AMVP 모드를 사용함을 나타내거나; 또는 affine_inter_flag[x0][y0] = 0이면 현재 블록에 대해 아핀 모션 모델 기반 AMVP 모드가 사용되지 않음을 나타내며, 병진 모션 모델 기반 AMVP 모드를 사용할 수 있다.
신택스 요소 affine_type_flag[x0][y0]은 현재 블록을 포함하는 슬라이스가 P 슬라이스 또는 B 슬라이스인 경우 현재 블록에 대해 6-파라미터 아핀 모션 모델 기반 모션 보상이 사용되는지를 나타내는 데 사용될 수 있다. affine_type_flag[x0][y0] = 0인 경우 현재 블록에 대해 6-파라미터 아핀 모션 모델 기반 모션 보상을 사용하지 않고 4-파라미터 아핀 모션 모델 기반 모션 보상만 현재 블록에 대해 사용할 수 있음을 나타내거나; 또는 affine_type_flag[x0][y0] = 1인 경우 현재 블록에 대해 6-파라미터 아핀 모션 모델 기반 모션 보상을 사용함을 나타낸다.
표 2에 나타난 바와 같이, MotionModelIdc [x0][y0] = 1인 경우 4-파라미터 아핀 모션 모델이 사용됨을 나타낸다. MotionModelIdc [x0][y0] = 2인 경우 6-파라미터 아핀 모션 모델이 사용됨을 나타내거나; 또는 MotionModelIdc [x0][y0] = 0인 경우 변환 모션 모델이 사용됨을 나타낸다.
MotionModelIdc[x0][y0] 모션 보상을 위한 모션 모델(motion model for motion compensation)
0 병진 모션(translational motion)
1 4-파라미터 아핀 모션(4-parameter affine motion)
2 6-파라미터 아핀 모션(6-parameter affine motion)
MaxNumMergeCand 변수는 최대 리스트 길이를 나타내는 데 사용되며 구성된 후보 모션 벡터 리스트의 최대 후보 수를 나타낸다. inter_pred_idc [x0][y0]은 예측 방향을 나타내는 데 사용된다. PRED_L1은 역방향 예측을 나타내는 데 사용된다. num_ref_idx_l0_active_minus1은 순방향 참조 프레임 리스트(리스트 0)에서 참조 프레임의 개수를 나타내고, ref_idx_l0 [x0][y0]은 현재 블록에 대한 순방향(리스트 0) 참조 픽처 인덱스를 나타낸다. mvd_coding(x0, y0, 0, 0)은 제1 모션 벡터 차이를 나타낸다. mvp_l0_flag[x0][y0]은 순방향 MVP 후보 리스트(리스트 0)의 MVP 후보 인덱스를 나타낸다. PRED_L0은 전방 예측을 나타낸다. num_ref_idx_l1_active_minus1은 역방향 참조 프레임 리스트(리스트 1)에서 참조 프레임의 수량을 나타낸다. ref_idx_l1 [x0][y0]은 현재 블록에 대한 역방향 참조 픽처 인덱스를 나타내고, mvp_l1_flag[x0][y0]는 역방향 MVP 후보 리스트(리스트 1)의 MVP 후보 인덱스를 나타낸다.
표 1에서 ae(v)는 컨텍스트 기반 적응 이진 산술 코딩(context-based adaptive binary arithmetic coding, CABAC)을 사용하여 인코딩된 신택스 요소를 나타낸다.
이하에서는 인터 예측 과정을 상세히 설명한다. 도 6a를 참조한다.
단계 601: 현재 블록의 인터 예측 모드를 결정하기 위해 표 1에 도시된 신택스 구조에 기초하여 비트스트림을 파싱한다.
현재 블록의 인터 예측 모드가 아핀 모션 모델 기반 AMVP 모드라고 판단되면 602a 단계로 진행한다.
즉, merge_flag = 0, affine_inter_flag = 1인 경우 현재 블록의 인터 예측 모드가 아핀 모션 모델 기반 AMVP 모드임을 나타낸다.
현재 블록의 인터 예측 모드가 아핀 모션 모델 기반 병합(merge) 모드 인 것으로 판단되면 단계 602b를 수행한다.
즉, 신택스 요소에서 merge_flag = 1, affine_merge_flag = 1인 경우 현재 블록의 인터 예측 모드가 아핀 모션 모델 기반 병합 모드임을 나타낸다.
단계 602a: 아핀 모션 모델 기반 AMVP 모드에 대응하는 후보 모션 벡터 리스트를 구성하고 단계 603a를 수행한다.
상속된 제어점 모션 벡터 및/또는 구성된 제어점 모션 벡터를 예측하는 방법을 이용하여 현재 블록의 후보 제어점 모션 벡터를 도출하여 후보 모션 벡터 리스트에 추가한다.
후보 모션 벡터 리스트는 2-튜플 리스트(2-tuple list)(현재 인코딩 블록은 4-파라미터 아핀 모션 모델이다) 또는 3-튜플 리스트를 포함할 수 있다. 2-튜플 리스트에는 4-파라미터 아핀 모션 모델을 구성하는 데 사용되는 하나 이상의 2-튜플이 포함된다. 3-튜플 리스트에는 6-파라미터 아핀 모션 모델을 구성하는 데 사용되는 하나 이상의 3-튜플이 포함된다.
선택적으로, 후보 모션 벡터 2-튜플/3-튜플 리스트는 특정 규칙에 따라 잘라 내기 및 정렬되며, 특정 수량으로 잘리거나 패딩될 수 있다.
A1: 상속된 제어점 모션 벡터를 예측하는 방법을 사용하여 후보 모션 벡터 리스트를 구성하는 절차에 대해 설명한다.
도 4가 예로 사용된다. 예를 들어, 현재 블록 주변의 인접 위치에 있는 블록은 도 4에서 A1->B1->B0->A0->B2 순서로 순회되어, 주변 위치의 블록이 위치하는 아핀 코딩 블록을 찾고, 아핀 코딩 블록의 제어점 모션 정보를 획득한다. 또한, 아핀 코딩 블록의 제어점 모션 정보를 이용하여 모션 모델을 구성하고 현재 블록의 후보 제어점 모션 정보를 도출한다. 자세한 내용은 (3)의 상속된 제어점 모션 벡터 예측 방법에 대한 관련 설명을 참조한다. 자세한 내용은 여기에서 설명하지 않는다.
예를 들어, 현재 블록에 사용되는 아핀 모션 모델은 4-파라미터 아핀 모션 모델(즉, MotionModelIdc = 1)이다. 인접 아핀 코딩 블록이 4-파라미터 아핀 모션 모델인 경우, 아핀 코딩 블록의 두 제어점에 대한 모션 벡터를 얻는다: 왼쪽 상단 제어점 (x4, y4)의 모션 벡터 (vx4, vy4) 및 오른쪽 상단 제어점 (x5, y5)의 모션 벡터 (vx5, vy5). 아핀 코딩 블록은 아핀 모션 모델을 이용하여 인코딩 단계에서 예측되는 아핀 코딩 블록이다.
현재 블록의 왼쪽 상단 제어점 및 오른쪽 상단 제어점의 모션 벡터는 이웃 아핀 코딩 블록의 2 개의 제어점을 포함하는 4-파라미터 아핀 모션 모델을 사용하여 4-파라미터 아핀 모션 모델에 대응하는 식 (6) 및 식 (7)에 따라 각각 도출된다.
인접 아핀 코딩 블록에 대해 6-파라미터 아핀 모션 모델을 사용하는 경우, 인접 아핀 코딩 블록의 3 개 제어점의 모션 벡터, 예를 들어 도 4에서 왼쪽 상단 제어점 (x4, y4)의 모션 벡터 (vx4, vy4), 오른쪽 상단 제어점 (x5, y5)의 모션 벡터 (vx5, vy5), 왼쪽 하단 제어점 (x6, y6)의 모션 벡터 (vx6, vy6)가 획득된다.
현재 블록의 왼쪽 상단 제어점 및 오른쪽 상단 제어점의 모션 벡터는 이웃 아핀 코딩 블록의 3 개의 제어점을 포함하는 6-파라미터 아핀 모션 모델을 이용하여 6-파라미터 아핀 모션 모델에 대응하는 식 (8) 및 식 (9)에 따라 각각 도출된다.
예를 들어, 현재 디코딩 블록에 대한 아핀 모션 모델은 6-파라미터 아핀 모션 모델(즉, MotionModelIdc = 2)이다.
인접 아핀 코딩 블록에 사용되는 아핀 모션 모델이 6-파라미터 아핀 모션 모델인 경우, 인접 아핀 코딩 블록의 3 개의 제어점의 모션 벡터, 예를 들어 도 4에서 왼쪽 상단 제어점 (x4, y4)의 모션 벡터 (vx4, vy4), 오른쪽 상단 제어점 (x5, y5)의 모션 벡터 (vx5, vy5), 왼쪽 하단 제어점(x6, vy6)의 모션 벡터 (vx6, vy6) y6)를 획득한다.
현재 블록의 왼쪽 상단 제어점, 오른쪽 상단 제어점, 왼쪽 상단 제어점의 모션 벡터는 이웃의 아핀 코딩 블록의 3 개 제어점을 포함하는 6-파라미터 아핀 모션 모델을 사용하여 6-파라미터 아핀 모션 모델에 대응하는 식 (8), 식 (9) 및 식 (10)에 따라 각각 도출된다.
인접 아핀 코딩 블록에 사용되는 아핀 모션 모델이 4-파라미터 아핀 모션 모델인 경우, 아핀 코딩 블록의 두 제어점에 대한 모션 벡터가 획득된다: 왼쪽 상단 제어점(x4, y4)의 모션 벡터 (vx4, vy4) 및 오른쪽 상단 제어점(x5, y5)의 모션 벡터 (vx5, vy5).
현재 블록의 왼쪽 상단 제어점, 오른쪽 상단 제어점 및 좌측 하단 제어점의 모션 벡터는 이웃의 아핀 코딩 블록의 두 제어점을 포함하는 4-파라미터 아핀 모션 모델을 사용하여 4-파라미터 아핀 모션 모델에 대응하는 식 (6) 및 식 (7)에 따라 각각 도출된다.
다른 모션 모델, 후보 위치 및 검색 순서도 본 출원에 적용할 수 있다. 자세한 내용은 여기에서 설명하지 않는다. 주변 및 현재 인코딩 블록의 모션 모델을 표현하기 위해 다른 제어점을 사용하는 방법도 본 출원에 적용할 수 있다. 자세한 내용은 여기에서 설명하지 않는다.
A2: 구성된 제어 모션 벡터를 예측하는 방법을 사용하여 후보 모션 벡터 리스트를 구성하는 절차에 대한 설명이 제공된다.
예를 들어 현재 디코딩 블록에 사용되는 아핀 모션 모델은 4-파라미터 아핀 모션 모델이다(즉, MotionModelIdc는 1이다). 이 경우, 현재 인코딩 블록 주위의 주변 인코딩 블록의 모션 정보를 이용하여 현재 인코딩 블록의 왼쪽 상단 샘플 및 오른쪽 상단 샘플의 모션 벡터를 결정한다. 구체적으로, 후보 모션 벡터 리스트는 구성된 제어점 모션 벡터를 예측하는 방식 1 또는 방식 2로 구성될 수 있다. 구체적인 방법은 (4) 및 (5)의 설명을 참조한다. 자세한 내용은 여기에서 설명하지 않는다.
예를 들어, 현재 디코딩 블록에 사용된 아핀 모션 모델이 6-파라미터 아핀 모션 모델인 경우(즉, MotionModelIdc가 2이다), 현재 인코딩 블록의 왼쪽 상단 샘플의 모션 벡터, 오른쪽 상단 샘플의 모션 벡터 및 왼쪽 하단 샘플의 모션 벡터는 구성된 제어점 모션 벡터를 예측하는 방식 1 또는 방식 2로 구성될 수 있다. 구체적인 방법에 대해서는 (4) 및 (5)의 설명을 참조한다. 자세한 내용은 여기에서 설명하지 않는다.
제어점 모션 정보의 다른 조합도 본 출원에 적용 가능하다는 점에 유의해야 한다. 자세한 내용은 여기에서 설명하지 않는다.
단계 603a: 최적의 제어점 모션 벡터 예측자를 결정하기 위해 비트스트림을 파싱하고 단계 604a를 수행한다.
B1: 현재 디코딩 블록에 사용된 아핀 모션 모델이 4-파라미터 아핀 모션 모델인 경우(MotionModelIdc는 1이다), 파싱을 통해 인덱스 번호를 획득하고, 인덱스 번호에 기초하여 후보 모션 벡터 리스트로부터 두 제어점의 최적 모션 벡터 예측자를 결정한다.
예를 들어, 인덱스 번호는 mvp_l0_flag 또는 mvp_l1_flag이다.
B2: 현재 디코딩 블록에 사용된 아핀 모션 모델이 6-파라미터 아핀 모션 모델이면(MotionModelIdc는 2이다), 파싱을 통해 인덱스 번호를 획득하고, 인덱스 번호에 기초하여 후보 모션 벡터 리스트로부터 3 개의 제어점의 최적의 모션 벡터 예측자를 결정한다.
단계 604a: 제어점 모션 벡터를 결정하기 위해 비트스트림을 파싱한다.
C1: 현재 디코딩 블록에 사용되는 아핀 모션 모델이 4-파라미터 아핀 모션 모델인 경우(MotionModelIdc는 1이다), 비트스트림을 디코딩하여 현재 블록의 두 제어점의 모션 벡터 차이를 획득하고 제어권을 획득하고, 모션 벡터 차이 및 제어점의 모션 벡터 예측자를 기반으로 제어점 모션 벡터를 획득한다. 예를 들어 순방향 예측이 사용된다. 두 제어점의 모션 벡터 차이는 mvd_coding(x0, y0, 0, 0) 및 mvd_coding(x0, y0, 0, 1)이다.
예를 들어, 비트스트림을 디코딩하여 왼쪽 상단 제어점과 오른쪽 상단 제어점의 모션 벡터 차이를 구하고, 모션 벡터 예측자에 각각 추가하여 현재 블록의 왼쪽 상단 제어점의 모션 벡터와 오른쪽 상단 제어점의 모션 벡터를 얻는다.
C2: 현재 디코딩 블록의 아핀 모션 모델이 6-파라미터 아핀 모션 모델인 경우(즉, MotionModelIdc가 2이다),
비트스트림을 디코딩하여 현재 블록의 3 개의 제어점의 모션 벡터 차이를 획득하고, 제어점의 모션 벡터 차이 및 모션 벡터 예측자에 기초하여 제어점 모션 벡터를 획득한다. 예를 들어 앞으로 예측이 사용된다. 세 제어점의 모션 벡터 차이는 mvd_coding(x0, y0, 0, 0), mvd_coding(x0, y0, 0, 1) 및 mvd_coding(x0, y0, 0, 2)이다.
예를 들어, 비트스트림을 디코딩하여 왼쪽 상단 제어점, 오른쪽 상단 제어점 및 좌측 하단 제어점의 모션 벡터 차이를 획득하고 모션 벡터 예측자에 각각 추가하여 현재 블록의 왼쪽 상단 제어점의 모션 벡터, 오른쪽 상단 제어점의 모션 벡터 및 왼쪽 하단 제어점의 벡터를 획득한다.
단계 602b: 아핀 모션 모델 기반 병합 모드를 위한 모션 정보 후보 리스트를 구성한다.
구체적으로, 상속된 제어점 모션 벡터 및/또는 구성된 제어점 모션 벡터를 예측하는 방법을 이용하여 아핀 모션 모델 기반 병합 모드를 위한 모션 정보 후보 리스트를 구성할 수 있다.
선택적으로, 모션 정보 후보 리스트는 특정 규칙에 따라 잘라 내기 및 정렬되며, 특정 수량으로 잘리거나 패딩될 수 있다.
D1: 상속된 제어 모션 벡터를 예측하는 방법을 사용하여 후보 모션 벡터 리스트를 구성하는 절차에 대한 설명이 제공된다.
상속된 제어점 모션 벡터를 예측하는 방법을 이용하여 현재 블록의 후보 제어점 모션 정보를 도출하여 모션 정보 후보 리스트에 추가한다.
현재 블록 주변의 인접 위치에 있는 블록은 도 5a에서 A1, B1, B0, A0, B2의 순서로 순회되어, 주변 위치의 아핀 코딩 블록을 찾고, 아핀 코딩 블록의 제어점 모션 정보를 획득한다. 또한, 아핀 코딩 블록의 제어점 모션 정보로부터 구성된 모션 모델을 이용하여 현재 블록의 후보 제어점 모션 정보를 더 도출한다.
이때 후보 모션 벡터 리스트가 비어 있으면 후보 제어점 모션 정보가 후보 리스트에 추가된다. 그렇지 않으면 후보 모션 벡터 리스트에 있는 모션 정보를 순차적으로 순회하여 후보 제어점 모션 정보와 동일한 모션 정보가 후보 모션 벡터 리스트에 존재하는지 확인한다. 후보 모션 벡터 리스트에 후보 제어점 모션 정보와 동일한 모션 정보가 없는 경우 후보 모션 벡터 리스트에 후보 제어점 모션 정보가 추가된다.
두 개의 후보 모션 정보가 동일한지를 판단하기 위해서는 한 부분의 후보 모션 정보에서의 순방향 참조 프레임, 역방향 참조 프레임, 각 순방향 모션 벡터의 수평 및 수직 성분, 각 역방향 모션 벡터의 수평 및 수직 성분이 다른 부분의 후보 모션 정보에서의 것들과 동일한지 순차적으로 결정되어야 한다. 두 개의 후보 모션 정보는 전술한 요소가 모두 다른 경우에만 다른 후보 모션 정보로 간주된다.
후보 모션 벡터 리스트의 모션 정보가 최대 리스트 길이 MaxNumMrgCand에 도달하면(MaxNumMrgCand는 1, 2, 3, 4 또는 5와 같은 양의 정수이며, 이하에서 설명을 위한 예로 5가 사용되며, 자세한 내용은 여기에서 설명하지 않는다), 후보 리스트 구성이 완료된다. 그렇지 않으면 다음 인접 위치의 블록이 횡단된다.
D2: 구성된 제어점 모션 벡터를 예측하는 방법을 이용하여 현재 블록의 후보 제어점 모션 정보를 도출하고, 도 6b에 도시된 바와 같이, 모션 정보 후보 리스트에 후보 제어점 모션 정보를 추가한다.
단계 601c: 현재 블록의 제어점의 모션 정보를 획득한다. (5)에서 구성된 제어점 모션 벡터를 예측하는 방법 2의 단계 501을 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
단계 602c: 구성된 제어점 모션 정보를 획득하기 위해 제어점의 모션 정보를 결합한다. 도 5b의 단계 501을 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
단계 603c: 구성된 제어점 모션 정보를 후보 모션 벡터 리스트에 추가한다.
이때 후보 리스트의 길이가 최대 리스트 길이 MaxNumMrgCand보다 작으면 이러한 조합을 미리 설정된 순서대로 순회하여 후보 제어점 모션 정보로 유효한 조합을 얻는다. 이때 후보 모션 벡터 리스트가 비어 있으면 후보 제어점 모션 정보가 후보 모션 벡터 리스트에 추가된다. 그렇지 않으면 후보 모션 벡터 리스트에 있는 모션 정보를 순차적으로 순회하여 후보 모션 벡터 리스트에 후보 제어점 모션 정보와 동일한 모션 정보가 존재하는지 확인한다. 후보 모션 벡터 리스트에 후보 제어점 모션 정보와 동일한 모션 정보가 없는 경우 후보 모션 벡터 리스트에 후보 제어점 모션 정보가 추가된다.
예를 들어, 미리 설정된 순서는 다음과 같다: Affine(CP1, CP2, CP3) -> Affine(CP1, CP2, CP4) -> Affine(CP1, CP3, CP4) -> Affine(CP2, CP3, CP4 ) -> Affine(CP1, CP2) -> Affine(CP1, CP3) -> Affine(CP2, CP3) -> Affine(CP1, CP4) -> Affine(CP2, CP4) -> Affine(CP3, CP4). 총 10 개의 조합이 있다.
조합에 대응하는 제어점 모션 정보를 사용할 수 없는 경우 해당 조합을 사용할 수 없는 것으로 간주한다. 조합이 가능하면 조합의 참조 픽처 인덱스가 결정되고(2 개의 제어점의 경우 최소 참조 픽처 인덱스가 조합의 참조 픽처 인덱스로 선택되고; 2 개 이상의 제어점의 경우, 가장 빈번하게 나타나는 참조 픽처 인덱스를 선택하고, 복수의 참조 픽처 인덱스가 나타나는 횟수가 같으면 조합의 참조 픽처 인덱스로 최소 참조 픽처 인덱스를 선택한다), 제어점 모션 벡터의 스케일링된다. 스케일링 후 얻은 모든 제어점의 모션 정보가 일치하면 조합이 유효하지 않는다.
선택적으로, 본 출원의 이 실시예에서, 후보 모션 벡터 리스트는 추가로 패딩될 수 있다. 예를 들어, 전술한 순회 과정 이후 후보 모션 벡터 리스트의 길이가 최대 리스트 길이 MaxNumMrgCand보다 작으면 리스트의 길이가 MaxNumMrgCand와 같아질 때까지 후보 모션 벡터 리스트를 패딩할 수 있다.
패딩은 제로 모션 벡터로 채우거나 기존 리스트에서 기존 후보 모션 정보를 결합하거나 가중 평균함으로써 수행될 수 있다. 후보 모션 벡터 리스트를 패딩하는 다른 방법도 본 출원에 적용할 수 있다. 자세한 내용은 여기에서 설명하지 않는다.
단계 S603b: 최적의 제어점 모션 정보를 결정하기 위해 비트스트림을 파싱한다.
인덱스 번호를 파싱하고, 인덱스 번호에 기초하여 후보 모션 벡터 리스트로부터 최적의 제어점 모션 정보를 결정한다.
단계 604b: 현재 디코딩 블록에 사용되는 아핀 모션 모델 및 최적 제어점 모션 정보에 기초하여 현재 블록의 각 서브 블록의 모션 벡터를 획득한다.
현재 아핀 코딩 블록의 각 서브 블록에 대해(서브 블록은 모션 보상 단위와 동일할 수도 있고, 서브 블록의 폭과 높이가 현재 블록의 폭과 높이보다 작다), 모션 보상 유닛에서 미리 설정된 위치에 있는 샘플의 모션 정보는 모션 보상 유닛에서 모든 샘플의 모션 정보를 표현하는 데 사용될 수 있다. 모션 보상 유닛의 크기는 MxN이라고 가정하며; 이 경우, 미리 설정된 위치의 샘플은 중앙 샘플 (M/2, N/2), 왼쪽 상단 샘플 (0, 0), 오른쪽 상단 샘플 (M-1, 0) 또는 모션 보상 유닛의 다른 위치에 있는 샘플일 수 있다. 다음은 모션 보상 유닛의 중앙 픽셀을 예로 들어 설명한다. 도 6c를 참조한다. 도 6c에서 V0은 왼쪽 상단 제어점의 모션 벡터를 나타내고 V1은 오른쪽 상단 제어점의 모션 벡터를 나타낸다. 각 작은 사각형 상자는 하나의 모션 보정 장치를 나타낸다.
현재 아핀 코딩 블록의 왼쪽 상단 샘플에 대한 모션 보상 유닛의 중앙 샘플의 좌표는 식 (25)을 사용하여 계산되며, 여기서 i는 수평 방향(왼쪽에서 오른쪽으로)의 i 번째 모션 보상 유닛이고, j는 수직 방향(위에서 아래로)의 j 번째 모션 보상 단위이고, (, )는 현재 아핀 코딩 블록의 왼쪽 상단 샘플과 관련된 (i, j) 번째 모션 보상 단위의 중심 샘플의 좌표를 나타낸다.
현재 아핀 코딩 블록에 사용되는 아핀 모션 모델이 6-파라미터 아핀 모션 모델인 경우, (, )는 6-파라미터 아핀 모션 모델에 대응하는 식 (26)에 대입되어 각 모션 보상 유닛의 중앙 샘플의 모션 벡터를 획득하고, 각 모션 보상 유닛의 중앙 샘플의 모션 벡터는 모션 보상 유닛의 모든 샘플의 모션 벡터 (, )로 사용된다.
현재 아핀 코딩 블록에 사용된 아핀 모션 모델이 4-파라미터 아핀 모션 모델인 경우, (, )는 4-파라미터 아핀 모션 모델에 대응하는 식 (27)에 대입되어 각 모션 보상 유닛의 중앙 샘플의 모션 벡터를 획득하고, 각 모션 보상 유닛의 중앙 샘플의 모션 벡터는 모션 보상 유닛의 모든 샘플의 모션 벡터 (, )로 사용된다.
(25)
(26)
(27)
단계 605b: 서브 블록의 예측된 픽셀 값을 획득하기 위해 서브 블록의 결정된 모션 벡터에 기초하여 각 서브 블록에 대한 모션 보상을 수행한다.
종래의 기술에서는 4-파라미터 아핀 모션 모델의 파라미터 정보와 6-파라미터 아핀 모션 모델의 파라미터 정보 모두, 예를 들어 표 1의 affine_merge_flag, affine_inter_flag, affine_type_flag는 비트스트림을 통해 디코더 측으로 전송해야 한다. 현재 비디오 픽처 또는 슬라이스에 아핀 변환 기능이 없는 경우 파라미터 정보를 전송하면 비트스트림에서 비트 수가 증가한다. 또한, 인코딩 블록별로 아핀 모션 모델이 사용되는지를 나타내는 파라미터 정보는 디코더 측에서 파싱되어야 한다. 결과적으로 디코더의 부하가 증가하고 처리 속도가 감소하며 처리 시간이 증가할 수 있다.
이를 바탕으로, 본 출원의 실시예는 비트스트림의 비트 량이 증가하는 종래 기술의 문제점을 해결하기 위한 비디오 픽처 예측 방법 및 장치를 제공한다. 방법 및 장치는 동일한 발명 개념에 기초한다. 방법의 문제 해결 원리는 장치의 원리와 유사하기 때문에 장치 및 방법의 구현에 상호 참조가 이루어질 수 있다. 반복되는 설명은 제공되지 않는다.
전술한 문제를 해결하기 위해, 본 출원의 실시예는 다음의 몇 가지 가능한 구현을 제공하지만 이에 한정되지 않는다.
제1 가능한 구현에서, 예를 들어, 일부 비디오 픽처는 일부 아핀 특징을 가질 수 있는 반면, 일부 비디오 픽처는 아핀 특징을 갖지 않을 수 있다. 이 경우, 비디오 픽처에 대해 아핀 모션 모델 기반 인터 예측 모드가 인에이블되는지를 나타내는 식별자가 비트스트림에 추가될 수 있다.
제2 가능한 구현에서, 예를 들어, 비디오 픽처의 모든 슬라이스가 아핀 특징을 갖는 것은 아니고, 아핀 모션 모델 기반 인터 예측 모드가 슬라이스에 대해 인에이블되는지를 나타내기 위해 식별자가 비트스트림에 추가될 수 있다.
제3 가능한 구현에서, 예를 들어, 일부 비디오 픽처는 아핀 특징을 갖지 않으며, 일부 비디오 픽처의 모든 슬라이스가 아핀 특징을 갖는 것은 아니다. 이 경우 두 가지 유형의 식별자가 비트스트림에 추가될 수 있다. 제1 유형의 식별자는 비디오 픽처에 대해 아핀 모션 모델 기반 인터 예측 모드가 인에이블되는지를 나타내기 위해 사용되며, 제2 유형의 식별자는 비디오 픽처에 대해 아핀 모션 모델 기반 인터 예측 모드가 비디오 픽처 내 슬라이스에 인에이블되는지를 나타내는 데 사용된다.
후속 설명의 편의를 위해, 비디오 픽처에 대해 아핀 모션 모델 기반 인터 예측 모드가 인에이블되는지를 나타내는 데 사용되는 식별자를 식별자 1이라고 하고, 비디오 픽처에 포함된 슬라이스에 대해 아핀 모션 모델 기반 인터 예측 모드가 인에이블되는지를 나타내는 데 사용되는 식별자를 식별자 2라고 한다.
전술한 세 가지 가능한 구현에서, 비디오 픽처에 포함된 픽처 블록 또는 아핀 모션 모델을 사용할 필요가 없는 슬라이스의 경우 픽처 블록의 아핀 모션 모델과 관련된 파라미터가 필요하지 않을 수 있다. 예를 들어 표 1의 affine_merge_flag, affine_inter_flag, affine_type_flag와 같이 전송될 수 있다. 디코더 측에서는 픽처 블록을 디코딩하는 동안 아핀 모션 모델과 관련된 파라미터를 파싱할 필요가 없다. 이는 디코더의 부하를 줄이고 처리 속도를 높이며 처리 시간을 줄일 수 있다.
다음은 첨부된 도면을 참조하여 디코더 측의 관점에서 본 출원에서 제공되는 전술한 몇 가지 가능한 구현을 상세히 설명한다. 구체적으로, 가능한 구현은 비디오 디코더(30)에 의해 수행될 수 있거나, 비디오 디코더의 모션 보상 모듈에 의해 수행될 수 있거나, 프로세서에 의해 수행될 수 있다.
도 7을 참조한다. 제1 가능한 구현이 설명된다.
단계 701: 식별자 1을 획득하기 위해 비트스트림을 파싱한다.
식별자 1은 처리 대상 블록을 포함하는 비디오 픽처의 인터 예측을 위한 후보 모션 모델이 아핀 모션 모델을 포함하는지를 나타내기 위해 사용된다. 즉, 식별자 1은 처리 대상 블록을 포함하는 비디오 픽처에 대해 아핀 모션 모델 기반 모션 보상이 가능한지를 나타내는 데 사용된다.
예를 들어, 식별자 1은 비트스트림의 SPS에 구성될 수 있다. 이에 기초하여, 식별자 1을 획득하기 위해 비트스트림을 파싱하는 것은 다음과 같은 방식으로 구현될 수 있다: 식별자 1을 획득하기 위해 비트스트림의 SPS를 파싱한다.
단계 702: 식별자 1이 처리 대상 블록을 포함하는 비디오 픽처의 인터 예측을 위한 후보 동작 모델이 아핀 동작 모델을 포함하고 처리 대상 블록이 아핀 모션 모델을 사용하여 인터 예측에 대한 미리 설정된 조건을 충족함을 나타낼 때, 식별자를 획득하기 위해 비트스트림을 파싱한다.
선택적으로, 미리 설정된 조건은 다음 경우 중 적어도 하나를 포함할 수 있다.
처리 대상 블록의 폭은 미리 설정된 제1 임계 값보다 크거나 같고; 그리고
처리 대상 블록의 높이가 미리 설정된 제2 임계 값보다 크거나 같다.
제1 미리 설정된 임계 값은 제2 미리 설정된 임계 값과 동일할 수 있다. 예를 들어, 인터 예측 모드가 병합 모드인 경우 미리 설정된 조건은 처리 대상 블록의 폭이 8보다 크거나 같고 처리 대상 블록의 높이가 8보다 크거나 같다는 것일 수 있다. 인터 예측 모드가 AMVP 모드인 경우, 미리 설정된 조건은 처리 대상 블록의 폭이 16보다 크거나 같고, 처리 대상 블록의 높이가 16보다 크거나 같다는 것일 수 있다.
예를 들어, 인터 예측 모드가 병합 모드인 경우, 처리 대상 블록이 아핀 모션 모델을 이용한 인터 예측을 위한 미리 설정된 조건을 충족하는지는 변수 allowAffineMerge로 표현될 수 있다. 예를 들어, 인터 예측 모드가 AMVP 모드인 경우, 처리 대상 블록이 아핀 모션 모델을 이용한 인터 예측을 위한 미리 설정된 조건을 만족하는지는 변수 allowAffineInter로 나타낼 수 있다. allowAffineMerge 및 allowAffineInter에 대한 관련 설명은 표 1을 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
예를 들어, 식별자 1이 처리 대상 블록을 포함하는 비디오 픽처 내 픽처 블록의 인터 예측을 위한 후보 모션 모델이 아핀 모션 모델을 포함하지 않음을 나타내는 경우, 아핀 모션과 관련된 파라미터 정보 비디오 픽처의 픽처 블록에 대해 인터 예측을 수행할 때 모델을 파싱할 필요가 없다. 예를 들어, 식별자 12를 획득하기 위해 비트스트림을 파싱할 필요가 없다.
예를 들어, 식별자 1이 값 A인 경우, 처리 대상 블록을 포함하는 비디오 픽처 내 픽처 블록의 인터 예측을 위한 후보 모션 모델에 아핀 모션 모델이 포함되어 있음을 나타내거나, 또는 식별자 1은 값 B인 경우, 처리 대상 블록을 포함하는 비디오 픽처 내 픽처 블록의 인터 예측을 위한 후보 모션 모델에 아핀 모션 모델이 포함되어 있지 않음을 나타낸다. 예를 들어, 식별자 1이 1인 경우, 처리 대상 블록을 포함하는 비디오 픽처 내 픽처 블록의 인터 예측을 위한 후보 모션 모델에 아핀 모션 모델이 포함되어 있음을 나타내거나, 식별자 1이 0인 경우, 처리 대상 블록을 포함하는 비디오 픽처 내 픽처 블록의 인터 예측을 위한 후보 모션 모델에 아핀 모션 모델이 포함되어 있지 않음을 나타낸다.
단계 703: 식별자 12에 기초하여 처리 대상 블록의 인터 예측을 위한 예측 모드를 결정하며, 여기서 예측 모드는 아핀 모션 모델 기반 병합 모드, 아핀 모션 모델 기반 AMVP 모드 및 비 아핀 모션 모델 기반 예측 모드를 포함한다.
예를 들어, 식별자 1은 신택스 요소 sps_affine_enabled_flag로 나타낼 수 있다. sps_affine_enabled_flag는 인터 예측에 대해 아핀 모델 기반 모션 보상이 인에이블되는지를 지정한다(sps_affine_enabled_flag는 인터 예측에 아핀 모델 기반 모션 보상을 사용할 수 있는지를 지정한다). 예를 들어 sps_affine_enabled_flag는 0이고 신택스 요소는 CVS에서 아핀 모델 기반 모션 보상이 사용되지 않도록 제한되어야 하며, affine_merge_flag, affine_inter_flag 및 affine_type_flag는 CVS의 픽처 블록 레벨 신택스에 표시되지 않는다. sps_affine_enabled_flag가 1이고 CVS에서 아핀 모델 기반의 모션 보상을 사용할 수 있다.(sps_affine_enabled_flag가 0이면 CVS에서 아핀 모델 기반 모션 보상이 사용되지 않도록 신택스 요소를 제한해야 하며 affine_merge_flag, affine_inter_flag 및 affine_type_flag는 CVS의 코딩 유닛 레벨 신택스에 표시되지 않는다. 그렇지 않으면 (sps_affine_enabled_flag는 1이다), CVS에서 아핀 모델 기반 모션 보정을 사용할 수 있다).
예를 들어, 인터 예측 모드가 AMVP 모드인 경우, 식별자 12는 신택스 요소 affine_inter_flag에 의해 표현될 수 있거나; 또는 인터 예측 모드가 병합 모드인 경우 식별자 12는 신택스 요소 affine_merge_flag에 의해 표현될 수 있다. affine_inter_flag 및 affine_merge_flag에 대한 관련 설명은 표 1의 설명을 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
제1 가능한 구현에서, 가능한 예에서, 식별자 13은 비트스트림에 더 구성될 수 있다. 식별자 13은 비트스트림의 시퀀스 파라미터 세트로 구성될 수 있다. 처리 대상 블록의 인터 예측을 위해 아핀 모션 모델 기반 병합 모드를 사용하는 경우, 비트스트림을 파싱하여 획득한 식별자 1이 처리 대상 블록을 포함하는 비디오 픽처 내 픽처 블록의 인터 예측을 위한 후보 모션 모델이 아핀 모션 모델을 포함한다는 것을 나타내는 경우, 비트스트림은 식별자 13을 획득하기 위해 파싱된다. 식별자 13이 제1 값일 때, 아핀 모션 모델은 단지 4-파라미터 아핀 모델을 포함하거나; 또는 식별자 13이 제2 값일 때, 아핀 모션 모델은 4-파라미터 아핀 모델과 6-파라미터 아핀 모델을 포함한다. 제1 값은 제2 값과 다르다. 예를 들어, 제1 값은 1이고 제2 값은 0이다. 또는 제1 값은 0이고 제2 값은 1이다.
예를 들어, 식별자 13은 sps_affine_type_flag로 표현될 수 있다. sps_affine_type_flag는 6-파라미터 아핀 모델 기반 모션 보정이 인터 예측에 인에이블되는지를 지정한다. 예를 들어, sps_affine_type_flag는 0이고, 신택스 요소는 CVS에서 6-파라미터 아핀 모델 기반 모션 보상이 사용되지 않도록 제한되어야 하며, affine_type_flag는 CVS의 픽처 블록 레벨 신택스에 표시되지 않는다. (sps_affine_type_flag는 6-파라미터 아핀 모델 기반 모션 보상이 인터 예측에 사용될 수 있는지를 지정한다. sps_affine_type_flag가 0이면 CVS에서 6-파라미터 아핀 모델 기반 모션 보상이 CVS에서 사용되지 않도록 신택스 요소를 제한하고 affine_type_flag가 CVS의 cu 레벨 신택스에서 존재하지 않도록 한다. 그렇지 않으면(sps_affine_type_flag가 1이다), 6-파라미터 아핀 모델 기반 모션 보상이 CVS에서 사용될 수 있다. 존재하지 않을 경우 sps_affine_type_flag의 값은 0과 같은 것으로 추정된다.)
가능한 제1 구현에서, 가능한 예에서 식별자 12가 아핀 모션 모델 기반 AMVP 모드가 처리 대상 블록의 인터 예측에 사용됨을 나타내고 식별자 13이 제2 값일 때, 비트스트림 식별자 14를 획득하기 위해 파싱해야 한다. 식별자 14가 제3 값이면 아핀 모션 모델은 6-파라미터 아핀 모션 모델이거나 식별자 14가 제4 값이면 아핀 모션 모델은 4-파라미터 유사 모션 모델이다. 제3 값은 제4 값과 다르다. 예를 들어, 제3 값은 1이고 제4 값은 0이다. 또는 제3 값은 0이고 제4 값은 1이다.
예를 들어, 식별자 14는 affine_type_flag로 표현될 수 있다. affine_type_flag는 픽처 블록의 인터 예측을 위해 6-파라미터 아핀 모션 모델 기반 모션 보상을 사용할 수 있는지를 나타내는 데 사용된다. 예를 들어, affine_type_flag = 0인 경우, 픽처 블록의 인터 예측에 6-파라미터 아핀 모션 모델 기반 모션 보상을 사용할 수 없음을 나타낸다.
예를 들어, 식별자 1과 식별자 13을 파싱하기 위한 신택스 구조에 대해서는 표 3을 참조한다. u(1)은 하나 이상의 연속적인 비트를 읽는 것을 나타내며 부호 없는 정수로 해석된다.
seq_parameter_set_rbsp( ) { 설명자
...
sps_affine_enabled_flag u(1)
if(sps_affine_enabled_flag)
sps_affine_type_flag u(1)
...
...
}
예를 들어, 현재 픽처 블록에 사용되는 인터 예측 모드를 파싱하기 위한 신택스 구조의 일부는 표 4를 참조한다.
coding_unit(x0, y0, cbWidth, cbHeight) {
...
merge_flag[x0][y0] ae(v)
if(merge_flag[x0][y0]) {
if(sps_affine_enable_flag && allowAffineMerge)
affine_merge_flag[x0][y0] ae(v)
...
} else {
...
if(sps_affine_enable_flag && allowAffineInter){
affine_inter_flag[x0][y0] ae(v)
if(sps_affine_type_flag && affine_inter_flag[x0][y0])
affine_type_flag[x0][y0] ae(v)
}
... }
...
}
제1 가능한 구현에서, 가능한 예에서, 식별자 1 및 식별자 13을 획득하기 위해 비트스트림이 파싱되는 경우, 식별자 12가 아핀 모션 모델 기반 병합 모드가 대상의 인터 예측에 사용됨을 나타낼 때, 처리된 블록이고 식별자 13은 제2 값이고, 제1 후보 모션 벡터 리스트가 구성된다. 제1 후보 모션 벡터 리스트는 제1 요소를 포함하고, 제1 요소는 6 개의 파라미터 아핀 모션 모델을 구성하기 위한 3 개의 제어점의 모션 정보를 포함한다. 예를 들어 제1 요소는 하나 이상의 3-튜플을 포함한다.
선택적으로, 제1 후보 모션 벡터 리스트는 제2 요소를 더 포함할 수 있다. 제2 요소는 4-파라미터 아핀 모션 모델을 구성하기 위한 두 제어점의 모션 정보만 포함한다. 예를 들어, 제2 요소는 하나 이상의 2-튜플을 포함한다. 제1 후보 모션 벡터 리스트는 제3 요소를 더 포함할 수 있고, 제3 요소는 비 아핀 모션 모델의 모션 정보를 포함할 수 있다.
다른 가능한 예에서, 식별자 12가 아핀 모션 모델 기반 병합 모드가 처리 대상 블록의 인터 예측에 사용됨을 나타내고 식별자 13이 제1 값일 때, 제2 후보 모션 벡터 리스트 구성된다. 제2 후보 모션 벡터 리스트는 제2 요소를 포함하고, 제2 요소는 4-파라미터 아핀 모션 모델을 구성하기 위한 두 제어점의 모션 정보만을 포함한다. 제2 후보 모션 벡터 리스트는 제1 요소를 포함하지 않는다. 제2 후보 모션 벡터 리스트는 제3 요소를 더 포함할 수 있고, 제3 요소는 비 아핀 모션 모델의 모션 정보를 포함할 수 있다. 제1 후보 모션 벡터 리스트와 제2 후보 모션 벡터 리스트는 모두 아핀 모션 모델 기반 병합 모드를 위한 후보 모션 벡터 리스트이다.
제1 가능한 구현에서, 가능한 예에서, 식별자 1 및 식별자 13을 획득하기 위해 비트스트림이 파싱되는 경우, 식별자 12가 아핀 모션 모델 기반 AMVP 모드가 처리 대상 블록의 인터 예측에 사용됨을 나타내고, 식별자 13은 제2 값일 때, 비트스트림은 식별자 14를 획득하기 위해 파싱되며; 식별자 14가 제3 값일 때, 아핀 모션 모델은 6-파라미터 아핀 모션 모델이거나, 식별자 14가 제4 값일 때, 아핀 모션 모델은 4-파라미터 아핀 모션 모델이다. 제3 값은 제4 값과 다르다. 예를 들어, 제3 값은 1이고 제4 값은 0이거나; 또는 제3 값은 0이고 제4 값은 1이다.
선택적으로, 식별자 14는 신택스 요소 affine_type_flag에 의해 표현될 수 있다. affine_type_flag에 대해서는 표 1의 관련 설명을 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
다음은 표 3 및 표 4의 신택스 구조를 예로 들어 도 8에 도시된 바와 같이 가능한 제1 방식으로 수행되는 인터 예측 절차를 상세히 설명한다.
단계 801a: 현재 블록의 인터 예측 모드를 결정하기 위해 표 3 및 표 4에 도시된 신택스 구조에 기초하여 비트스트림을 파싱한다.
현재 블록의 인터 예측 모드가 아핀 모션 모델 기반 AMVP 모드라고 판단되면 단계 802a를 수행한다.
즉, 신택스 요소에서 sps_affine_enabled_flag = 1, merge_flag = 0, affine_inter_flag = 1이면, 현재 블록의 인터 예측 모드가 아핀 모션 모델 기반 AMVP 모드임을 나타낸다.
예를 들어, 신택스 요소에서 sps_affine_enabled_flag = 1, merge_flag = 0, affine_inter_flag = 1, sps_affine_type_flag = 1이면, affine_type_flag를 획득하기 위해 비트스트림을 파싱해야 한다. 파싱된 affine_type_flag가 1이면, 현재 블록의 인터 예측 모드가 6-파라미터 아핀 모션 모델 기반 AMVP 모드임을 나타내거나; 또는 파싱을 통해 얻은 affine_type_flag가 0이면, 현재 블록의 인터 예측 모드가 4-파라미터 아핀 모션 모델 기반 AMVP 모드임을 나타낸다.
예를 들어 신택스 요소에서 sps_affine_enabled_flag = 1, merge_flag = 0, affine_inter_flag = 1, sps_affine_type_flag = 0이면, 현재 블록의 인터 예측 모드가 4-파라미터 아핀 모션 모델 기반 AMVP 모드임을 나타낸다. 이 경우 affine_type_flag를 파싱할 필요가 없다.
예를 들어, 신택스 요소에서 sps_affine_enabled_flag = 0, merge_flag = 0이면, 현재 블록의 인터 예측 모드가 병진 운동 모델 기반 AMVP 모드임을 나타낸다. 이 경우 affine_merge_flag, affine_inter_flag, affine_type_flag는 비트스트림에 포함되지 않을 수 있으며 비트스트림을 파싱하여 획득할 필요가 없다.
현재 블록의 인터 예측 모드가 아핀 모션 모델 기반 병합(merge) 모드인 것으로 판단되면 단계 802b를 수행한다.
즉, 신택스 요소에서 sps_affine_enabled_flag = 1, merge_flag = 1, affine_merge_flag = 1이면, 현재 블록의 인터 예측 모드가 아핀 모션 모델 기반 머지 모드임을 나타낸다.
예를 들어, 신택스 요소에서 sps_affine_enabled_flag = 0이고 merge_flag = 1이면, 현재 블록의 인터 예측 모드가 병진 동작 모델 기반 병합 모드임을 나타낸다. 이 경우 affine_merge_flag, affine_inter_flag, affine_type_flag는 비트스트림에 포함되지 않을 수 있으며 비트스트림을 파싱하여 획득할 필요가 없다.
단계 802a 내지 단계 804a의 경우, 단계 602a 내지 단계 604a를 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
단계 802b: 아핀 모션 모델 기반 병합 모드를 위한 모션 정보 후보 리스트를 구성한다.
구체적으로, 아핀 모션 모델 기반 병합 모드를 위한 모션 정보 후보 리스트는 상속된 제어점 모션 벡터 및/또는 구성된 제어점 모션 벡터를 예측하는 방법을 이용하여 구성될 수 있다.
상속된 제어점 모션 벡터를 예측하는 방법을 이용하여 아핀 모션 모델 기반 병합 모드를 위한 모션 정보 후보 리스트를 구성하는 방법은 602b 단계에서 D1에 대한 관련 설명을 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
구성된 제어점 모션 벡터를 예측하는 방법을 이용하여 현재 블록의 후보 제어점 모션 정보를 도출하여 모션 정보 후보 리스트에 추가하는 경우, 구체적으로 다음과 같은 단계를 포함한다:
(1) 현재 블록의 제어점의 모션 정보를 획득한다. 자세한 내용은 단계 601c를 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
(2) 구성된 제어점 동작 정보를 획득하기 위해 제어점의 동작 정보를 결합한다.
sps_affine_type_flag = 0이면 두 제어점의 모션 정보를 결합하여 4 개의 파라미터 아핀 모션 모델을 구성한다. 두 제어점은 {CP1, CP4}, {CP2, CP3}, {CP1, CP2}, {CP2, CP4}, {CP1, CP3} 또는 {CP3, CP4}와 같이 결합된다. 예를 들어, 제어점 CP1 및 CP2의 모션 정보(예를 들어, 2 개의 MV)에 기초하는 2-튜플을 사용하여 구성된 4-파라미터 아핀 모션 모델은 아핀 (CP1, CP2)으로 표시된다.
sps_affine_type_flag = 1이면 3 개의 제어점의 모션 정보를 결합하여 6 개의 파라미터 아핀 모션 모델을 구성한다. 세 개의 제어점은 {CP1, CP2, CP4}, {CP1, CP2, CP3}, {CP2, CP3, CP4} 또는 {CP1, CP3, CP4}와 같이 결합된다. 예를 들어, 제어점 CP1, CP2 및 CP3의 모션 정보(예를 들어, 3 개의 MV)에 기초하는 3-튜플을 사용하여 구성된 6-파라미터 아핀 모션 모델은 아핀 (CP1, CP2, CP3)으로 표시된다. 예를 들어, sps_affine_type_flag = 1이면 3 개의 제어점의 모션 정보를 결합하여 6-파라미터 아핀 모션 모델을 구성하는 것 외에, 2 개의 제어점의 모션 정보를 더 결합하여 4-파라미터 아핀 모션 모델을 구성할 수 있다.
서로 다른 제어점의 조합이 동일한 위치의 제어점으로 변환될 수도 있다는 점에 유의해야 한다. 특정 변환 방법에 대해서는 단계 502의 관련 설명을 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
(3) 생성된 제어점 모션 정보를 후보 모션 벡터 리스트에 추가한다.
이때 후보 리스트의 길이가 최대 리스트 길이 MaxNumMrgCand보다 작으면 이러한 조합을 미리 설정된 순서대로 순회하여 후보 제어점 모션 정보로 유효한 조합을 얻는다. 이때 후보 모션 벡터 리스트가 비어 있으면 후보 제어점 모션 정보가 후보 모션 벡터 리스트에 추가된다. 그렇지 않으면 후보 모션 벡터 리스트에 있는 모션 정보를 순차적으로 순회하여 후보 모션 벡터 리스트에 후보 제어점 모션 정보와 동일한 모션 정보가 존재하는지 확인한다. 후보 모션 벡터 리스트에 후보 제어점 모션 정보와 동일한 모션 정보가 없는 경우 후보 모션 벡터 리스트에 후보 제어점 모션 정보가 추가된다.
예를 들어, sps_affine_type_flag가 1이면 미리 설정된 순서는 다음과 같다: Affine(CP1, CP2, CP3) -> Affine(CP1, CP2, CP4) -> Affine(CP1, CP3, CP4) -> Affine( CP2, CP3, CP4)-> Affine(CP1, CP2)-> Affine(CP1, CP3) -> Affine(CP2, CP3) -> Affine(CP1, CP4) -> Affine(CP2, CP4) -> Affine( CP3, CP4). 총 10 개의 조합이 있다. 후보 모션 벡터 리스트에 10 개의 조합을 추가하는 순서는 본 출원의 이 실시예에서 특별히 제한되지 않는다.
sps_affine_type_flag가 0인 경우 미리 설정된 순서는 다음과 같다: Affine(CP1, CP2) -> Affine(CP1, CP3) -> Affine(CP2, CP3) -> Affine(CP1, CP4) -> Affine(CP2, CP4) -> Affine(CP3, CP4). 총 6 개의 조합이 있다. 후보 모션 벡터 리스트에 6 개의 조합을 추가하는 순서는 본 출원의 이 실시예에서 특별히 제한되지 않는다.
단계 803b 내지 단계 805b에 대해서는 단계 603b 내지 단계 605b를 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
도 9를 참조한다. 가능한 제2 구현이 설명된다.
단계 901: 식별자 2를 획득하기 위해 비트스트림을 파싱한다.
식별자 2는 처리 대상 블록을 포함하는 슬라이스에서 픽처 블록의 인터 예측을 위한 후보 모션 모델이 아핀 모션 모델을 포함하는지를 나타내는 데 사용된다. 즉, 식별자 2는 처리 대상 블록을 포함하는 슬라이스에 포함된 픽처 블록에 대해 모션 보상을 수행할 때 아핀 모션 모델을 사용할 수 있는지를 나타내는 데 사용된다.
예를 들어, 식별자 2는 비트스트림의 슬라이스의 슬라이스 헤더에 구성될 수 있다. 이것에 기초하여, 식별자 2를 획득하기 위해 비트스트림을 파싱하는 것은 다음과 같은 방식으로 구현될 수 있다: 식별자 2를 획득하기 위해 비트스트림의 슬라이스의 슬라이스 헤더를 파싱한다.
단계 902: 식별자 2가 처리 대상 블록을 포함하는 슬라이스 내 픽처 블록의 인터 예측을 위한 후보 동작 모델이 아핀 동작 모델을 포함하고 처리 대상 블록이 아핀 모션 모델을 사용하여 인터 예측을 위한 미리 설정된 조건을 충족할 때, 식별자 12를 획득하기 위해 비트스트림을 파싱한다.
미리 설정된 조건 및 식별자 12에 대한 관련 설명은 도 7 및 도 8에 대응하는 실시예를 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
예를 들어, 식별자 2가 처리 대상 블록을 포함하는 슬라이스 내 픽처 블록의 인터 예측을 위한 후보 모션 모델이 아핀 모션 모델을 포함하지 않음을 나타내는 경우, 아핀 모션 모델과 관련된 파라미터 정보 슬라이스 내 픽처 블록에 대해 인터 예측이 수행될 때 파싱될 필요가 없다. 예를 들어, 식별자 12를 획득하기 위해 비트스트림을 파싱할 필요가 없다.
예를 들어, 식별자 2가 값 A1인 경우, 처리 대상 블록을 포함하는 슬라이스에서 픽처 블록의 인터 예측을 위한 후보 모션 모델이 아핀 모션 모델을 포함하고 있음을 나타내거나, 또는 식별자 2가 값 B1인 경우, 처리 대상 블록을 포함하는 슬라이스에서 픽처 블록의 인터 예측을 위한 후보 모션 모델이 아핀 모션 모델을 포함하고 있음을 나타낸다. 예를 들어, 식별자 2가 1인 경우, 처리 대상 블록을 포함하는 슬라이스 내 픽처 블록의 인터 예측을 위한 후보 모션 모델이 아핀 모션 모델을 포함하고 있음을 나타내거나, 또는 식별자 2가 0인 경우, 처리 대상 블록을 포함하는 슬라이스에서 픽처 블록의 인터 예측을 위한 후보 모션 모델이 아핀 모션 모델을 포함하지 않음을 나타낸다.
단계 903: 식별자 12에 기초하여, 처리 대상 블록의 인터 예측을 위한 예측 모드를 결정하고, 여기서 예측 모드는 아핀 모션 모델 기반 병합 모드, 아핀 모션 모델 기반 AMVP 모드 및 비 아핀 모션 모델 기반 예측 모드를 포함한다.
예를 들어, 식별자 2는 신택스 요소 slice_affine_enabled_flag에 의해 표현될 수 있다. slice_affine_enabled_flag는 아핀 모델 기반 모션 보상이 인터 예측에 인에이블되는지를 지정한다. 예를 들어, slice_affine_enabled_flag는 0이고, 신택스 요소는 슬라이스에 대해 아핀 모델 기반 모션 보상이 사용되지 않도록 제한되어야 하며, affine_merge_flag, affine_inter_flag 및 affine_type_flag는 CVS의 픽처 블록 레벨 신택스에 표시되지 않는다. slice_affine_enabled_flag는 1과 같으며, 슬라이스에 대해 아핀 모델 기반 모션 보상을 사용할 수 있다. (slice_affine_enabled_flag는 아핀 모델 기반 모션 보상을 인터 예측에 사용할 수 있는지를 지정한다. slice_affine_enabled_flag가 0이면 아핀 모델 기반 모션 보상이 슬라이스를 위해 사용되지 않도록 신택스 요소를 제한해야 하고, affine_merge_flag, affine_inter_flag 및 affine_type_flag가 CVS의 cu 레벨 신택스에 제공되지 않는다. 그렇지 않으면(slice_affine_enabled_flag가 1과 같다), 슬라이스에서 아핀 모델 기반 모션 보상을 사용할 수 있다).
제2 가능한 구현에서, 가능한 예에서, 식별자 23가 비트스트림에 더 구성될 수 있다. 식별자 23은 비트스트림의 슬라이스의 슬라이스 헤더에 구성될 수 있다. 비트스트림을 파싱하여 얻은 식별자 2가 처리 대상 블록을 포함하는 슬라이스의 인터 예측을 위한 후보 모션 모델에 아핀 모션 모델이 포함되어 있음을 나타내는 경우, 비트스트림을 더 파싱하여 식별자 23을 획득한다. 제1 값일 때 아핀 모션 모델에는 4-파라미터 아핀 모델만 포함된다. 식별자 23가 제2 값일 때, 아핀 모션 모델은 4-파라미터 아핀 모델과 6-파라미터 아핀 모델을 포함한다. 제1 값은 제2 값과 다르다. 예를 들어, 제1 값은 1이고 제2 값은 0이다. 또는 제1 값은 0이고 제2 값은 1이다.
예를 들어, 식별자 23은 slice_affine_type_flag로 표현될 수 있다. slice_affine_type_flag는 6-파라미터 아핀 모델 기반 모션 보상이 인터 예측에 인에이블되는지를 지정한다. 예를 들어, slice_affine_type_flag는 0이고, 신택스 요소는 슬라이스에 대해 6-파라미터 아핀 모델 기반 모션 보상이 사용되지 않도록 제한되어야 하며, affine_type_flag는 CVS의 픽처 블록 레벨 신택스에 표시되지 않는다. (slice_affine_type_flag는 6-파라미터 아핀 모델 기반 모션 보상을 인터 예측에 사용할 수 있는지를 지정한다. slice_affine_type_flag가 0이면 6-파라미터 아핀 모델 기반 모션 보상이 슬라이스에서 사용되지 않도록 신택스 요소를 제한해야 하며, affine_type_flag는 CVS에서 cu 레벨 신택스로 표시되지 않는다. 그렇지 않으면(slice_affine_type_flag가 1과 같다), 슬라이스에서 6-파라미터 아핀 모델 기반 모션 보상을 사용할 수 있다. 존재하지 않을 경우 slice_affine_type_flag의 값은 0과 같은 것으로 추론된다).
예를 들어, 식별자 2와 식별자 23을 파싱하기 위한 신택스 구조는 표 5를 참조한다.
slice_segment_header( ) { 설명자
...
slice_affine_enabled_flag u(1)
if(slice_affine_enabled_flag)
slice_affine_type_flag u(1)
...
...
}
예를 들어, 현재 픽처 블록에 사용되는 인터 예측 모드를 파싱하기 위한 신택스 구조의 일부는 표 6을 참조한다.
coding_unit(x0, y0, cbWidth, cbHeight) {
...
merge_flag[x0][y0] ae(v)
if(merge_flag[x0][y0]) {
if(slice_affine_enable_flag && allowAffineMerge)
affine_merge_flag[x0][y0] ae(v)
...
} else {
...
if(slice_affine_enable_flag && allowAffineInter){
affine_inter_flag[x0][y0] ae(v)
if(slice_affine_type_flag && affine_inter_flag[x0][y0])
affine_type_flag[x0][y0] ae(v)
}
... }
...
}
제2 가능한 구현에서, 가능한 예에서, 식별자 2 및 식별자 23이 비트스트림을 파싱하여 획득되면, 식별자 12가 아핀 모션 모델 기반 병합 모드가 대상의 인터 예측에 사용됨을 나타낼 때, 처리된 블록이고 식별자 23은 제2 값이고, 제1 후보 모션 벡터 리스트가 구성된다. 제1 후보 모션 벡터 리스트는 제1 요소를 포함하고, 제1 요소는 6 개의 파라미터 아핀 모션 모델을 구성하기 위한 3 개의 제어점의 모션 정보를 포함한다. 예를 들어 제1 요소는 하나 이상의 3-튜플을 포함한다.
선택적으로, 제1 후보 모션 벡터 리스트는 제2 요소를 더 포함할 수 있다. 제2 요소는 4-파라미터 아핀 모션 모델을 구성하기 위한 두 제어점의 모션 정보만 포함한다. 예를 들어, 제2 요소는 하나 이상의 2-튜플을 포함한다. 제1 후보 모션 벡터 리스트는 제3 요소를 더 포함할 수 있고, 제3 요소는 비 아핀 모션 모델의 모션 정보를 포함할 수 있다.
또 다른 가능한 예에서, 식별자 12가 아핀 모션 모델 기반 병합 모드가 처리 대상 블록의 인터 예측에 사용됨을 나타내고 식별자 23이 제1 값일 때, 제2 후보 모션 벡터 리스트 구성된다. 제2 후보 모션 벡터 리스트는 제2 요소를 포함하고, 제2 요소는 4-파라미터 아핀 모션 모델을 구성하기 위한 두 제어점의 모션 정보만을 포함한다. 제2 후보 모션 벡터 리스트는 제1 요소를 포함하지 않는다. 제2 후보 모션 벡터 리스트는 제3 요소를 더 포함할 수 있고, 제3 요소는 비 아핀 모션 모델의 모션 정보를 포함할 수 있다. 제1 후보 모션 벡터 리스트와 제2 후보 모션 벡터 리스트는 모두 아핀 모션 모델 기반 병합 모드를 위한 후보 모션 벡터 리스트이다.
제2 가능한 구현에서, 가능한 예에서, 식별자 2 및 식별자 23이 비트스트림을 파싱하여 획득되면, 식별자 12가 아핀 모션 모델 기반 AMVP 모드가 처리 대상 블록의 인터 예측에 사용됨을 나타내고 식별자 23이 제2 값일 때, 비트스트림이 파싱되어 식별자 14를 얻는다. 식별자 14가 제3 값일 때 아핀 모션 모델은 6-파라미터 아핀 모션 모델이거나, 또는 식별자 14가 제4 값일 때, 아핀 모션 모델은 4-파라미터 아핀 모션 모델이다. 제3 값은 제4 값과 다르다. 예를 들어, 제3 값은 1이고 제4 값은 0이거나; 또는 제3 값은 0이고 제4 값은 1이다.
선택적으로, 식별자 14는 신택스 요소 affine_type_flag에 의해 표현될 수 있다. affine_type_flag에 대해서는 표 1의 관련 설명을 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
다음은 표 5 및 표 6의 신택스 구조를 예로 들어 도 10에 도시된 바와 같이 가능한 제2 방식으로 수행되는 인터 예측 절차를 상세히 설명한다.
단계 1001: 현재 블록의 인터 예측 모드를 결정하기 위해 표 5 및 표 6에 도시된 신택스 구조에 기초하여 비트스트림을 파싱한다.
현재 블록의 인터 예측 모드가 아핀 모션 모델 기반 AMVP 모드라고 판단되면 단계 1002a를 수행한다.
즉, 신택스 요소에서 slice_affine_enabled_flag = 1, merge_flag = 0, affine_inter_flag = 1이면 현재 블록의 인터 예측 모드가 아핀 모션 모델 기반 AMVP 모드임을 나타낸다.
예를 들어, 신택스 요소에서 slice_affine_enabled_flag = 0, merge_flag = 0이면 현재 블록의 인터 예측 모드가 병진 운동 모델 기반 AMVP 모드임을 나타낸다. 이 경우 affine_merge_flag, affine_inter_flag, affine_type_flag는 비트스트림에 포함되지 않을 수 있으며 비트스트림을 파싱하여 획득할 필요가 없다.
현재 블록의 인터 예측 모드가 아핀 모션 모델 기반 병합(merge) 모드라고 판단되면 단계 702b를 수행한다.
즉, 신택스 요소에서 slice_affine_enabled_flag = 1, merge_flag = 1, affine_merge_flag = 1이면, 현재 블록의 인터 예측 모드가 아핀 모션 모델 기반 머지 모드임을 나타낸다.
예를 들어, 신택스 요소에서 slice_affine_enabled_flag = 0, merge_flag = 1이면 현재 블록의 인터 예측 모드가 병진 운동 모델 기반 병합 모드임을 나타낸다. 이 경우 affine_merge_flag, affine_inter_flag, affine_type_flag는 비트스트림에 포함되지 않을 수 있으며 비트스트림을 파싱하여 획득할 필요가 없다.
단계 1002a 내지 단계 1004a의 경우, 단계 602a 내지 단계 604a를 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
단계 1002b: 아핀 모션 모델 기반 병합 모드를 위한 모션 정보 후보 리스트를 구성한다.
구체적으로, 아핀 모션 모델 기반 병합 모드를 위한 모션 정보 후보 리스트는 상속된 제어점 모션 벡터 및/또는 구성된 제어점 모션 벡터를 예측하는 방법을 이용하여 구성될 수 있다.
상속된 제어점 모션 벡터를 예측하는 방법을 이용하여 아핀 모션 모델 기반 병합 모드를 위한 모션 정보 후보 리스트를 구성하는 방법은 단계 602b에서 D1의 관련 설명을 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
구성된 제어점 모션 벡터를 예측하는 방법을 이용하여 현재 블록의 후보 제어점 모션 정보를 도출하여 모션 정보 후보 리스트에 추가하는 경우, 구체적으로 다음과 같은 단계를 포함한다:
(1) 현재 블록의 제어점의 모션 정보를 획득한다. 자세한 내용은 단계 601c를 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
(2) 구성된 제어점 동작 정보를 획득하기 위해 제어점의 동작 정보를 결합한다.
slice_affine_type_flag = 0이면 두 제어점의 모션 정보를 결합하여 4-파라미터 아핀 모션 모델을 구성한다. 두 제어점은 {CP1, CP4}, {CP2, CP3}, {CP1, CP2}, {CP2, CP4}, {CP1, CP3} 또는 {CP3, CP4}와 같이 결합된다. 예를 들어, 제어점 CP1 및 CP2를 사용하여 구성된 4-파라미터 아핀 모션 모델은 아핀 (CP1, CP2)으로 표시된다.
slice_affine_type_flag = 1이면 3 개의 제어점의 모션 정보를 결합하여 6 개의 파라미터 아핀 모션 모델을 구성한다. 세 개의 제어점은 다음과 같이 결합된다: {CP1, CP2, CP4}, {CP1, CP2, CP3}, {CP2, CP3, CP4} 또는 {CP1, CP3, CP4}. 예를 들어, 제어점 CP1, CP2 및 CP3을 사용하여 구성된 6-파라미터 아핀 모션 모델은 아핀 (CP1, CP2, CP3)으로 표시된다. 예를 들어, slice_affine_type_flag = 1이면 3 개의 제어점의 모션 정보를 결합하여 6-파라미터 아핀 모션 모델을 구성하는 것 외에 2 개의 제어점의 모션 정보를 더 결합하여 4-파라미터 아핀 모션 모델을 구성할 수 있다.
서로 다른 제어점의 조합도 동일한 위치의 제어점으로 변환될 수 있다는 점에 유의해야 한다. 특정 변환 방법에 대해서는 단계 502의 관련 설명을 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
(3) 생성된 제어점 모션 정보를 후보 모션 벡터 리스트에 추가한다.
이때 후보 리스트의 길이가 최대리스트 길이 MaxNumMrgCand보다 작다면, 이들 조합을 미리 설정된 순서대로 순회하여 후보 제어점 모션 정보로 유효한 조합을 획득한다. 이때 후보 모션 벡터 리스트가 비어 있으면 후보 제어점 모션 정보가 후보 모션 벡터 리스트에 추가된다. 그렇지 않으면 후보 모션 벡터 리스트에 있는 모션 정보를 순차적으로 순회하여 후보 모션 벡터 리스트에 후보 제어점 모션 정보와 동일한 모션 정보가 존재하는지 확인한다. 후보 모션 벡터 리스트에 후보 제어점 모션 정보와 동일한 모션 정보가 없는 경우 후보 모션 벡터 리스트에 후보 제어점 모션 정보가 추가된다.
예를 들어 slice_affine_type_flag가 1이면 미리 설정된 순서는 다음과 같다: Affine(CP1, CP2, CP3) -> Affine(CP1, CP2, CP4) -> Affine(CP1, CP3, CP4) -> Affine(CP2, CP3), CP4) -> Affine(CP1, CP2) -> Affine(CP1, CP3) -> Affine(CP2, CP3) -> Affine(CP1, CP4) -> Affine(CP2, CP4) -> Affine(CP3, CP4 ). 총 10 개의 조합이 있다. 후보 모션 벡터 리스트에 10 개의 조합을 추가하는 순서는 본 출원의 이 실시예에서 특별히 제한되지 않는다.
slice_affine_type_flag가 0인 경우 미리 설정된 순서는 다음과 같다: Affine(CP1, CP2) -> Affine(CP1, CP3) -> Affine(CP2, CP3) -> Affine(CP1, CP4) -> Affine(CP2, CP4) -> Affine(CP3, CP4). 총 6 개의 조합이 있다. 후보 모션 벡터 리스트에 6 개의 조합을 추가하는 순서는 본 출원의 이 실시예에서 특별히 제한되지 않는다.
단계 1003b에 대해서는 단계 603b를 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
단계 1004b에 대해서는 단계 604b를 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
도 11을 참조하여, 제3 가능한 구현이 설명된다.
단계 1101: 식별자 1을 획득하기 위해 비트스트림을 파싱한다.
단계 1102: 식별자 1이 처리 대상 블록을 포함하는 비디오 픽처의 픽처 블록의 인터 예측을 위한 후보 모션 모델이 아핀 모션 모델을 포함하고 있음을 나타낼 때, 비트스트림을 파싱하여 식별자 2를 획득한다.
예를 들어, 식별자 1은 신택스 요소 sps_affine_enabled_flag로 나타낼 수 있다. sps_affine_enabled_flag는 아핀 모델 기반 모션 보상을 인터 예측에 사용할지를 지정한다. 예를 들어 sps_affine_enabled_flag가 0이면 CVS에 대해 아핀 모델 기반 모션 보상이 사용되지 않고 slice_affine_enabled_flag가 CVS의 슬라이스 레벨 신택스에 표시되지 않음을 나타낸다. (sps_affine_enabled_flag가 1과 같음은 slice_affine_enabled_flag가 슬라이스 헤더에 있음을 지정한다. sps_affine_enabled_flag가 0과 같음을 지정하면 slice_affine_enabled_flag가 슬라이스 헤더에 없고 아핀 모델 기반 모션 보상이 CVS에서 사용되지 않음을 지정한다).
가능한 예에서, 식별자 1이 처리 대상 블록을 포함하는 비디오 픽처 내 픽처 블록의 인터 예측을 위한 후보 모션 모델이 아핀 모션 모델을 포함하고 있음을 나타내면, 비트스트림이 식별자 2를 포함하고 있음을 나타낸다. 식별자 1이 처리 대상 블록을 포함하는 비디오 픽처 내 픽처 블록의 인터 예측을 위한 후보 모션 모델이 아핀 모션 모델을 포함하지 않음을 나타내는 경우, 비트스트림이 식별자 2를 포함하지 않음을 나타낸다.
단계 1103: 식별자 2가 처리 대상 블록을 포함하는 슬라이스 내의 픽처 블록의 인터 예측을 위한 후보 동작 모델이 아핀 동작 모델을 포함하고, 처리 대상 블록이 아핀 모션 모델을 사용하여 인터 예측을 위한 미리 설정된 조건을 충족할 때, 식별자 12를 획득하기 위해 비트스트림을 파싱한다.
미리 설정된 조건, 식별자 1, 식별자 2 및 식별자 12에 대한 관련 설명은 도 9 및 도 10에 대응하는 실시예를 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
단계 1104: 식별자 12에 기초하여, 처리 대상 블록의 인터 예측을 위한 예측 모드를 결정하고, 여기서 예측 모드는 아핀 모션 모델 기반 병합 모드, 아핀 모션 모델 기반 AMVP 모드 및 비 아핀 모션 모델 기반 모드를 포함한다.
제3 가능한 구현에서, 가능한 예에서, 식별자 23가 비트스트림에서 더 구성될 수 있다. 식별자 23은 비트스트림의 슬라이스의 슬라이스 헤더에 구성될 수 있다. 비트스트림을 파싱하여 얻은 식별자 2가 처리 대상 블록을 포함하는 슬라이스 내 픽처 블록의 인터 예측을 위한 후보 모션 모델에 아핀 모션 모델이 포함되어 있음을 나타내는 경우, 비트스트림을 파싱하여 식별자 23을 획득한다. 식별자 23은 제1 값이고, 아핀 모션 모델은 4-파라미터 아핀 모델만 포함한다. 식별자 23가 제2 값일 때, 아핀 모션 모델은 4-파라미터 아핀 모델과 6-파라미터 아핀 모델을 포함한다. 제1 값은 제2 값과 다르다. 예를 들어, 제1 값은 1이고 제2 값은 0이거나; 또는 제1 값은 0이고 제2 값은 1이다.
예를 들어, 식별자 1을 파싱하기 위한 신택스 구조는 표 7을 참조한다.
seq_parameter_set_rbsp( ) { 설명자
...
sps_affine_enabled_flag u(1)
...
...
}
예를 들어, 식별자 2 및 식별자 23을 파싱하기 위한 신택스 구조에 대해서는 표 8을 참조한다. 자세한 내용은 여기서 다시 설명하지 않는다.
slice_segment_header( ) { 설명자
...
if(sps_affine_enabled_flag)
slice_affine_enabled_flag u(1)
if(slice_affine_enabled_flag)
slice_affine_type_flag u(1)
...
}
예를 들어, 현재 픽처 블록에 사용되는 인터 예측 모드를 파싱하기 위한 신택스 구조의 일부는 표 6을 참조한다.
제3 가능한 방식의 인터 예측 절차에서, 현재 블록의 인터 예측 모드를 결정하기 위해 비트스트림을 파싱하는 절차만이 제2 가능한 방식의 절차와 다르며 다른 절차는 동일하다. 자세한 내용은 여기서 다시 설명하지 않는다.
현재 블록의 인터 예측 모드를 결정하기 위해 비트스트림을 파싱할 때, 신택스 요소에서 sps_affine_enabled_flag = 1, slice_affine_enabled_flag = 1, merge_flag = 0, affine_inter_flag = 1이면, 이것은 현재 블록의 인터 예측 모드가 아핀 모션 모델 기반 AMVP 모드임을 나타낸다.
예를 들어, 신택스 요소에서 sps_affine_enabled_flag = 0, merge_flag = 0이면 현재 블록의 인터 예측 모드가 병진 운동 모델 기반 AMVP 모드임을 나타낸다. 이 경우 affine_merge_flag, affine_inter_flag, affine_type_flag는 비트스트림에 포함되지 않을 수 있으며 비트스트림을 파싱하여 획득할 필요가 없다.
예를 들어, 신택스 요소에서 sps_affine_enabled_flag = 1, slice_affine_enabled_flag = 0, merge_flag = 0이면 현재 블록의 인터 예측 모드가 병진 운동 모델 기반 AMVP 모드임을 나타낸다. 이 경우 affine_merge_flag, affine_inter_flag, affine_type_flag는 비트스트림에 포함되지 않을 수 있으며 비트스트림을 파싱하여 획득할 필요가 없다.
신택스 요소에서 sps_affine_enabled_flag = 1, slice_affine_enabled_flag = 1, merge_flag = 1, affine_merge_flag = 1이면 현재 블록의 인터 예측 모드가 아핀 모션 모델 기반 머지 모드임을 나타낸다.
예를 들어, 신택스 요소에서 sps_affine_enabled_flag = 0, merge_flag = 1이면 현재 블록의 인터 예측 모드가 병진 모션 모델 기반 병합 모드임을 나타낸다. 이 경우 affine_merge_flag, affine_inter_flag, affine_type_flag는 비트스트림에 포함되지 않을 수 있으며 비트스트림을 파싱하여 획득할 필요가 없다.
예를 들어 sps_affine_enabled_flag = 1, slice_affine_enabled_flag = 0, merge_flag = 1이면 현재 블록의 인터 예측 모드가 변환 동작 모델 기반 병합 모드임을 나타낸다. 이 경우 affine_merge_flag, affine_inter_flag, affine_type_flag는 비트스트림에 포함되지 않을 수 있으며 비트스트림을 파싱하여 획득할 필요가 없다.
제3 가능한 구현에서, 식별자 1을 기반으로 비트스트림에 식별자 13이 추가로 구성될 수 있다. 제3 가능한 구현에서, 식별자 13이 아핀 모션 모델 기반 병합 모드가 처리 대상 블록의 인터 예측에 사용됨을 나타낼 때, 식별자 13은 비트스트림이 식별자 23를 포함하는지를 더 나타낼 수 있다.
단계 1101에서 식별자 1을 획득하기 위해 비트스트림을 파싱한 후 그리고 단계 1102에서 식별자 2를 획득하기 위해 비트스트림을 파싱하기 전에, 방법은: 식별자 13을 획득하기 위해 비트스트림을 파싱하는 단계를 더 포함한다.
식별자 13은 신택스 요소 sps_affine_type_flag로 표현될 수 있다. sps_affine_type_flag는 6-파라미터 아핀 모션 모델 기반 모션 보상이 인터 예측에 인에이블되는지와 비트스트림에 slice_affine_type_flag가 포함되는지를 나타내는 데 사용된다. 예를 들어 sps_affine_type_flag = 0이면 6-파라미터 아핀 모션 모델 기반 모션 보정이 인터 예측에 사용되지 않음을 나타낸다. 이 경우 CVS는 6-파라미터 아핀 모션 모델 기반 모션 보상을 나타내는 데 사용되는 신택스 요소를 포함하지 않는다. 예를 들어 slice_affine_type_flag 또는 affine_type_flag는 CVS의 픽처 블록 레벨 신택스에 표시되지 않는다. (slice_affine_type_flag는 인터 예측을 위해 6-파라미터 아핀 모델 기반 모션 보상을 사용할 수 있는지를 지정한다. slice_affine_type_flag가 0이면 현재 픽처의 디코딩에 6-파라미터 아핀 모델 기반 모션 보상이 사용되지 않도록 신택스 요소를 제한해야 한다. affine_type_flag는 현재 픽처의 cu 레벨 신택스에 표시되지 않는다. 그렇지 않으면(slice_affine_type_flag가 1과 같다), 현재 픽처의 디코딩에 6-파라미터 아핀 모델 기반 모션 보상을 사용할 수 있다. slice_affine_type_flag는 0과 같은 것으로 추론된다).
예를 들어, 식별자 1과 식별자 13을 파싱하기 위한 신택스 구조는 표 9를 참조한다.
seq_parameter_set_rbsp( ) { 설명자
...
sps_affine_enabled_flag u(1)
if(sps_affine_enabled_flag)
sps_affine_type_flag u(1)
...
}
예를 들어 식별자 2와 식별자 23을 파싱하기 위한 신택스 구조는 표 10을 참조한다.
slice_segment_header( ) { 설명자
...
if(sps_affine_enabled_flag)
slice_affine_enabled_flag u(1)
if(sps_affine_type_flag && slice_affine_enabled_flag)
slice_affine_type_flag u(1)
...
}
방법 실시예와 동일한 발명 개념에 기초하여, 본 출원의 실시예는 장치를 더 제공한다. 도 12를 참조하면, 장치(1200)는 구체적으로 비디오 디코더의 프로세서, 칩 또는 칩 시스템이거나, 비디오 디코더의 모듈, 예를 들어 모션 보상 모듈(322)일 수 있다.
예를 들어, 장치는 파싱 유닛(1201) 및 구성 유닛(1202)을 포함할 수 있다. 파싱 유닛(1201) 및 구성 유닛(1202)은 도 7 내지 도 11에 대응하는 실시예에 도시된 방법의 단계를 수행한다. 예를 들어, 파싱 유닛(1201)은 비트스트림에 포함된 식별자(예를 들어, 식별자 1, 식별자 12, 식별자 13, 식별자 14, 식별자 2 및 식별자 23)를 파싱하도록 구성될 수 있으며, 구성 유닛(1202)은 후보 모션 벡터 리스트(제1 후보 모션 벡터 리스트, 제2 후보 모션 벡터 리스트 등)을 구성하도록 구성된다.
본 출원의 실시예는 디코딩 장치의 다른 구조를 더 제공한다. 도 13에 도시된 바와 같이, 장치(1300)는 통신 인터페이스(1310) 및 프로세서(1320)를 포함할 수 있다. 선택적으로, 장치(1300)는 메모리(1330)를 더 포함할 수 있다. 메모리(1330)는 장치 내부 또는 외부에 배치될 수 있다. 도 12에 도시된 파싱 유닛(1201) 및 구성 유닛(1202) 모두는 프로세서(1320)에 의해 구현될 수 있다. 프로세서(1320)는 통신 인터페이스(1310)를 통해 비디오 스트림 또는 비트스트림을 송수신하고, 도 7 내지 도 11의 방법을 구현하도록 구성된다. 구현 프로세스에서, 처리 절차의 단계는 프로세서(1320)의 하드웨어의 집적 논리 회로 또는 소프트웨어 형태의 명령을 사용하여 구현되어 도 7 내지 도 11의 방법을 완료할 수 있다.
본 출원의 이 실시예에서 통신 인터페이스(1310)는 회로, 버스, 트랜시버 또는 정보를 교환하도록 구성될 수 있는 임의의 다른 장치일 수 있다. 예를 들어, 다른 장치는 장치(1300)에 연결된 장치일 수 있다. 예를 들어, 장치가 비디오 인코더인 경우, 다른 장치는 비디오 디코더일 수 있다.
본 출원의 이 실시예에서, 프로세서(1320)는 범용 프로세서, 디지털 신호 프로세서, 주문형 집적 회로, 필드 프로그래밍 가능 게이트 어레이 또는 다른 프로그래밍 가능 논리 장치, 이산 게이트 또는 트랜지스터 논리 장치, 또는 이산 하드웨어 구성 요소일 수 있으며, 본 출원의 실시예에 개시된 방법, 단계 및 논리 블록도를 구현하거나 수행할 수 있다. 범용 프로세서는 마이크로프로세서 또는 임의의 통상적인 프로세서 등일 수 있다. 본 출원의 실시예를 참조하여 개시된 방법의 단계는 하드웨어 프로세서에 의해 직접 수행될 수 있거나, 프로세서의 하드웨어와 소프트웨어 유닛의 조합을 사용하여 수행될 수 있다. 전술한 방법을 구현하기 위해 프로세서(1320)에 의해 실행되는 프로그램 코드는 메모리(1330)에 저장될 수 있다. 메모리(1330)는 프로세서(1320)에 연결된다.
본 출원의 이 실시예에서 결합은 간접 결합 또는 장치, 유닛 또는 모듈 간의 통신 연결이며, 전기적 형태, 기계적 형태 또는 다른 형태일 수 있으며 장치 간, 유닛 간, 모듈 간의 정보 교환에 사용된다.
프로세서(1320)는 메모리(1330)와 협력하여 동작할 수 있다. 메모리(1330)는 비 휘발성 메모리, 예를 들어 하드 디스크 드라이브(hard disk drive, HDD) 또는 솔리드 스테이트 드라이브(solid state drive, SSD)일 수 있으며, 또는 휘발성 메모리(volatile memory), 예를 들어 랜덤 액세스 메모리(random access memory, RAM)일 수 있다. 메모리(1330)는 명령어 또는 데이터 구조의 형태로 예상되는 프로그램 코드를 전달하거나 저장하도록 구성될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체이지만 이에 제한되지 않는다.
본 출원의 이 실시예에서, 통신 인터페이스(1310), 프로세서(1320) 및 메모리(1330) 사이의 특정 연결 매체는 제한되지 않는다. 본 출원의 이 실시예에서, 메모리(1330), 프로세서(1320) 및 통신 인터페이스(1310)는 도 13의 버스를 통해 연결되며, 버스는 도 13에서 굵은 선으로 표시된다. 다른 구성 요소 간의 연결 모드는 개략적으로 설명된 것으로 이에 제한되지 않는다. 버스는 어드레스 버스, 데이터 버스, 제어 버스 등으로 분류될 수 있다. 표현의 용이성을 위해, 도 13에서 버스를 표현하기 위해 단지 하나의 굵은 선이 사용되지만, 이것은 버스가 하나만 있거나 버스 유형이 하나뿐임을 의미하지는 않는다.
도 7 내지 도 11과 관련된 전술한 실행 가능한 구현 및 특정 실시예는 본 출원에서 하나 이상의 비디오 데이터 디코딩 장치를 설명한다. 전술한 설명에 따르면, 인코더 측은 일반적으로 인터 예측 모드를 결정하고 인터 예측 모드를 비트스트림으로 인코딩한다는 것을 이해해야 한다. 최종적으로 선택된 인터 예측 모드가 선택된 후, 인터 예측 모드의 지시자(예를 들어, 식별자 1, 식별자 2, 식별자 12, 식별자 13, 식별자 14 및 식별자 23)는 전술한 디코딩 방법(디코딩 프로세스에서 각각 파싱된 식별자 1, 식별자 2, 식별자 12, 식별자 13, 식별자 14 및 식별자 23에 대응)과 완전히 반대인 인코딩 프로세스에 따라 비트스트림으로 인코딩된다. 인코더 측의 후보 모션 벡터 리스트의 구성은 디코더 측의 구성과 완전히 일치한다는 것을 이해해야 한다. 인코더 측의 특정 실시예는 다시 설명하지 않는다. 그러나 본 출원에서 설명하는 비디오 픽처 예측 방법은 인코딩 장치에도 적용 가능함을 이해해야 한다.
본 출원의 실시예는 인코딩 장치를 더 제공한다. 도 14에 도시된 바와 같이, 장치(1400)는 통신 인터페이스(1410) 및 프로세서(1420)를 포함할 수 있다. 선택적으로, 장치(1400)는 메모리(1430)를 더 포함할 수 있다. 메모리(1430)는 장치 내부 또는 외부에 배치될 수 있다. 프로세서(1420)는 통신 인터페이스(1410)를 통해 비디오 스트림 또는 비트스트림을 송수신한다.
일 관점에서, 프로세서(1420)는 식별자 1을 비트스트림으로 인코딩하고; 식별자 1이 처리 대상 블록을 포함하는 비디오 픽처 내 픽처 블록의 인터 예측을 위한 후보 모션 모델이 아핀 모션 모델을 포함하고 있음을 나타내고, 처리 대상 블록이 아핀 모션 모델을 사용하여 인터 예측에 대한 미리 설정된 조건을 충족하면, 식별자 12를 비트스트림으로 인코딩한다. 식별자 12는 처리 대상 블록의 인터 예측을 위한 예측 모드를 결정하는 데 사용된다. 예측 모드는 아핀 모션 모델 기반 병합 모드, 아핀 모션 모델 기반 고급 모션 벡터 예측 AMVP 모드 및 비 아핀 모션 모델 기반 예측 모드를 포함한다.
다른 관점에서, 프로세서(1420)는 식별자 3을 비트스트림으로 인코딩하고; 식별자 3이 처리 대상 블록을 포함하는 슬라이스에서 픽처 블록의 인터 예측을 위한 후보 모션 모델이 아핀 모션 모델을 포함하고 있음을 나타내며, 처리 대상 블록이 아핀 모션 모델을 사용하여 인터 예측을 위한 미리 설정된 조건을 충족함을 나타내는 경우 식별자 32를 비트스트림으로 인코딩한다. 식별자 32는 처리 대상 블록의 인터 예측을 위한 예측 모드를 결정하는 데 사용된다. 예측 모드는 아핀 모션 모델 기반 병합 모드, 아핀 모션 모델 기반 고급 모션 벡터 예측 AMVP 모드 및 비 아핀 모션 모델 기반 예측 모드를 포함한다.
본 출원의 이 실시예에서 통신 인터페이스(1410)는 회로, 버스, 트랜시버 또는 정보를 교환하도록 구성될 수 있는 임의의 다른 장치일 수 있다. 예를 들어, 다른 장치는 장치(1400)에 연결된 장치일 수 있다. 예를 들어, 장치가 비디오 인코더인 경우, 다른 장치는 비디오 디코더일 수 있다.
본 출원의 이 실시예에서, 프로세서(1420)는 범용 프로세서, 디지털 신호 프로세서, 주문형 집적 회로, 필드 프로그래밍 가능 게이트 어레이 또는 다른 프로그래밍 가능 논리 장치, 개별 게이트 또는 트랜지스터 논리 장치, 또는 개별 하드웨어 구성 요소일 수 있으며, 본 출원의 실시예에 개시된 방법, 단계 및 논리 블록 다이어그램을 구현하거나 수행할 수 있다. 범용 프로세서는 마이크로프로세서 또는 임의의 통상적인 프로세서 등일 수 있다. 본 출원의 실시예를 참조하여 개시된 방법의 단계는 하드웨어 프로세서에 의해 직접 수행될 수 있거나, 프로세서의 하드웨어와 소프트웨어 유닛의 조합을 사용하여 수행될 수 있다. 전술한 방법을 구현하기 위해 프로세서(1420)에 의해 실행되는 프로그램 코드는 메모리(1430)에 저장될 수 있다. 메모리(1430)는 프로세서(1420)에 연결된다.
본 출원의 이 실시예에서 결합은 간접 결합 또는 장치, 유닛 또는 모듈 간의 통신 연결이며, 전기적 형태, 기계적 형태 또는 다른 형태일 수 있으며 장치 간, 유닛 간, 또는 모듈 간의 정보 교환에 사용된다.
프로세서(1420)는 메모리(1430)와 협력하여 동작할 수 있다. 메모리(1430)는 비 휘발성 메모리, 예를 들어 하드 디스크 드라이브(hard disk drive, HDD) 또는 솔리드 스테이트 드라이브(solid state drive, SSD)일 수 있거나, 또는 휘발성 메모리(volatile memory), 예를 들어 랜덤 액세스 메모리(random access memory, RAM)일 수 있다. 메모리(1430)는 명령어 또는 데이터 구조의 형태로 예상되는 프로그램 코드를 전달하거나 저장하도록 구성될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체이지만 이에 제한되지 않는다.
본 출원의 이 실시예에서, 통신 인터페이스(1410), 프로세서(1420) 및 메모리(1430) 사이의 특정 연결 매체는 제한되지 않는다. 본 출원의 이 실시예에서, 메모리(1430), 프로세서(1420) 및 통신 인터페이스(1410)는 도 14의 버스를 통해 연결되며, 도 14에서 버스는 굵은 선으로 표시된다. 다른 구성 요소 간의 연결 모드는 개략적으로 설명된 것으로 이에 제한되지 않는다. 버스는 어드레스 버스, 데이터 버스, 제어 버스 등으로 분류될 수 있다. 표현의 용이성을 위해, 도 14에서 버스를 표현하기 위해 단지 하나의 두꺼운 선이 사용된다. 그러나 이것은 버스가 하나만 있거나 버스 유형이 하나만 있음을 의미하지는 않는다.
전술한 실시예에 기초하여, 본 출원의 실시예는 컴퓨터 저장 매체를 더 제공한다. 저장 매체는 소프트웨어 프로그램을 저장한다. 소프트웨어 프로그램이 하나 이상의 프로세서에 의해 판독되고 실행될 때, 전술한 실시예 중 임의의 하나 이상의 실시예에서 제공된 방법이 구현될 수 있다. 컴퓨터 저장 매체는 USB 플래시 드라이브, 이동식 하드 디스크, 읽기 전용 메모리, 랜덤 액세스 메모리, 자기 디스크 또는 광 디스크와 같은 프로그램 코드를 저장할 수 있는 임의의 매체를 포함할 수 있다.
전술한 실시예에 기초하여, 본 출원의 실시예는 칩을 더 제공한다. 칩은 예를 들어, 전술한 방법에서 정보 또는 메시지를 획득 또는 처리하는 것과 같이 전술한 실시예 중 임의의 하나 이상의 기능을 구현하도록 구성된 프로세서를 포함한다. 선택적으로, 칩은 메모리를 더 포함하고, 메모리는 프로세서에 의해 필요하고 실행되는 프로그램 명령 및 데이터를 저장하도록 구성된다. 칩은 칩을 포함할 수 있거나 칩 및 다른 개별 장치를 포함할 수 있다.
본 출원의 특정 측면이 비디오 인코더(20) 및 비디오 디코더(30)를 참조하여 설명되었지만, 본 발명의 기술은 프로세서, 인코더/디코더(CODEC)의 하드웨어 기반 디코딩 유닛 및 유사한 유닛과 같은 프로세싱 유닛 등과 같은 많은 다른 비디오 인코딩 및/또는 디코딩 유닛을 사용하여 적용될 수 있음을 이해해야 한다. 또한, 도 6a 내지 도 11에 도시되고 설명된 단계는 단지 실행 가능한 구현으로만 제공된다는 것을 이해해야 한다. 다시 말해, 도 6a 내지 도 11의 실행 가능한 구현에 도시된 단계는 도 6a 내지 도 11에 도시된 순서로 반드시 수행되는 것은 아니며, 더 적은, 추가 또는 대안의 단계가 수행될 수 있다.
또한, 실행 가능한 구현에 따라, 본 명세서에 설명된 임의의 방법에서 특정 동작 또는 이벤트가 다른 순서로 수행될 수 있고, 동작 또는 이벤트가 추가될 수 있거나, 동작 또는 이벤트가 결합되거나 생략될 수 있음을 이해해야 한다(예를 들어, 설명된 모든 조치 또는 이벤트가 방법을 구현하는 데 필요한 것은 아니다). 또한, 특정 실행 가능한 구현에서, 동작 또는 이벤트는 (예를 들어) 다중 스레딩 처리 또는 인터럽트 처리를 거치거나, 순차적으로 처리되는 대신 복수의 프로세서에 의해 동시에 처리될 수 있다. 또한, 본 출원의 특정 측면이 명확성을 위해 단일 모듈 또는 유닛에 의해 수행되는 것으로 설명되었지만, 본 출원의 기술은 비디오 디코더와 연관된 유닛 또는 모듈의 조합에 의해 수행될 수 있음을 이해해야 한다.
하나 이상의 실행 가능한 구현에서, 설명된 기능은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합을 사용하여 구현될 수 있다. 소프트웨어를 이용하여 기능을 구현하는 경우, 기능은 하나 이상의 명령어 또는 코드로 컴퓨터 판독 가능 매체에 저장되거나 컴퓨터 판독 가능 매체를 통해 전송되어 하드웨어 기반 처리 장치에 의해 수행될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터 판독 가능 저장 매체 또는 통신 매체를 포함할 수 있다. 컴퓨터 판독 가능 저장 매체는 데이터 저장 매체와 같은 유형의 매체에 대응한다. 통신 매체는 통신 프로토콜에 따라 한 위치에서 다른 위치로 (예를 들어) 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함한다.
이러한 방식으로, 컴퓨터 판독 가능 매체는, 예를 들어 (1) 비 일시적 유형의 컴퓨터 판독 가능 저장 매체, 또는 (2) 신호 또는 캐리어와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체는 본 출원에서 설명된 기술을 구현하기 위한 명령어, 코드 및/또는 데이터 구조를 검색하기 위해 하나 이상의 컴퓨터 또는 하나 이상의 프로세서에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 매체를 포함할 수 있다.
제한이 아닌 실행 가능한 구현 방식으로, 컴퓨터 판독 가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 저장 장치, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 플래시 메모리, 또는 명령 또는 데이터 구조의 형태로 필요한 코드를 저장하는 데 사용할 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 마찬가지로, 어떤 연결도 적절하게 컴퓨터 판독 가능 매체라고 할 수 있다. 예를 들어 웹 사이트, 서버 또는 다른 원격 소스에서 동축 케이블, 광섬유 케이블, 트위스트 페어, 디지털 가입자 회선(digital subscriber line, DSL) 또는 적외선, 라디오, 마이크로파와 같은 무선 기술을 통해 명령이 전송되면, 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술이 매체의 정의에 포함된다.
그러나 컴퓨터 판독 가능 저장 매체 및 데이터 저장 매체는 연결, 캐리어, 신호 또는 다른 일시적인 매체를 포함하지 않고, 대안적으로 비 일시적 유형의 저장 매체를 의미함을 이해해야 한다. 본 명세서에서 사용되는 자기 디스크 및 광 디스크는 컴팩트 디스크(CD), 레이저 디스크, 광 디스크, 디지털 다용도 디스크(DVD), 플로피 디스크 및 블루 레이 디스크를 포함한다. 자기 디스크는 일반적으로 데이터를 자기적으로 재생하고 광 디스크는 레이저를 통해 데이터를 광학적으로 재생한다. 전술한 자기 디스크와 광 디스크의 조합도 컴퓨터 판독 가능 매체의 범위에 포함되어야 한다.
명령은 하나 이상의 디지털 신호 프로세서(digital signal processor, DSP), 범용 마이크로프로세서, 주문형 집적 회로(application-specific integrated circuits, ASIC), 필드 프로그래머블 게이트 어레이(field programmable gate arrays, FPGA) 또는 다른 등가의 통합 또는 이산 논리 회로와 같은 하나 이상의 프로세서에 의해 실행될 수 있다. 따라서, 본 명세서에서 사용되는 "프로세서"라는 용어는 전술한 구조 중 어느 하나이거나 본 명세서에서 설명하는 기술을 구현하는 데 사용되는 다른 구조일 수 있다. 또한, 일부 관점에서, 본 명세서에 설명된 기능은 인코딩 및 디코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈에 제공될 수 있거나, 결합된 코덱에 통합될 수 있다. 또한, 기술은 모두 하나 이상의 회로 또는 논리 요소에서 구현될 수 있다.
본 출원의 기술은 무선 이동 전화, 집적 회로(IC) 또는 IC 세트(예를 들어, 칩셋)를 포함하는 다양한 장치 또는 장치에서 구현될 수 있다. 개시된 기술을 수행하도록 구성된 장치의 기능적 측면을 강조하기 위해 본 출원에서 다양한 구성 요소, 모듈 또는 유닛이 설명되지만, 반드시 상이한 하드웨어 유닛에 의해 구현되는 것은 아니다. 보다 구체적으로, 전술한 바와 같이, 유닛은 코덱 하드웨어 유닛으로 결합되거나 적절한 소프트웨어 및/또는 펌웨어와 함께 상호 운용 가능한 하드웨어 유닛 세트(위에서 설명된 하나 이상의 프로세서 포함)에 의해 제공될 수 있다.
전술한 설명은 본 출원의 특정 구현의 예일 뿐이며 본 출원의 보호 범위를 제한하려는 의도는 없다. 본 출원에 개시된 기술적 범위 내에서 당업자에 의해 용이하게 파악되는 임의의 변형 또는 대체는 본 출원의 보호 범위 내에 속한다. 따라서 본 출원의 보호 범위는 청구 범위의 보호 범위에 따른다.

Claims (46)

  1. 비디오 픽처 예측 방법으로서,
    비트스트림을 파싱하여 제1 식별자를 획득하는 단계;
    상기 제1 식별자가 아핀 모션 모델 기반 모션 보상이 처리 대상 블록(to-be-processed block)을 포함하는 비디오 시퀀스에 대해 인에이블되는 것을 나타낼 때, 상기 비트스트림을 파싱하여 제3 식별자를 획득하는 단계 - 상기 제3 식별자의 값은 참 값 또는 거짓 값이며, 여기서 상기 참 값은 상기 아핀 모션 모델이 4-파라미터 아핀 모션 모델 및 6-파라미터 아핀 모션 모델을 포함함을 나타내고, 상기 거짓 값은 상기 아핀 모션 모델이 6-파라미터 아핀 모션 모델을 포함하지 않음을 나타냄 - ;
    상기 제1 식별자가 상기 아핀 모션 모델 기반 모션 보상이 상기 비디오 시퀀스에 대해 인에이블되고 상기 처리 대상 블록이 상기 아핀 모션 모델을 사용하여 인터 예측을 위해 미리 설정된 조건을 충족함을 나타낼 때, 상기 비트스트림을 파싱하여 제2 식별자를 획득하는 단계;
    상기 제2 식별자가 아핀 모션 모델 기반 병합 모드가 상기 처리 대상 블록의 인터 예측을 위해 사용됨을 나타내면서 상기 제3 식별자의 값이 참 값인 경우, 제1 후보 모션 벡터 리스트를 구성하거나 - 여기서, 상기 제1 후보 모션 벡터 리스트는 제1 요소와 제2 요소를 포함하고, 상기 제1 요소는 상기 6-파라미터 아핀 모션 모델을 구성하기 위한 3개의 제어점의 모션 정보를 포함하고, 상기 제2 요소는 상기 4-파라미터 아핀 모션 모델을 구성하기 위한 2개의 제어점의 모션 정보만을 포함함 - ; 또는
    상기 제2 식별자가 아핀 모션 모델 기반 병합 모드가 상기 처리 대상 블록의 인터 예측을 위해 사용됨을 나타내면서 상기 제3 식별자의 값이 거짓 값인 경우, 제2 후보 모션 벡터 리스트를 구성하는 단계 - 여기서, 상기 제2 후보 모션 벡터 리스트는 상기 제2 요소를 포함하고, 상기 제2 요소는 4-파라미터 아핀 모션 모델을 구성하기 위한 2개의 제어점의 모션 정보만을 포함함 -
    를 포함하는 비디오 픽처 예측 방법.
  2. 제1항에 있어서,
    상기 비트스트림을 파싱하여 제1 식별자를 획득하는 단계는:
    상기 비트스트림의 시퀀스 파라미터 세트를 파싱하여 제1 식별자를 획득하는 단계
    를 포함하는, 비디오 픽처 예측 방법.
  3. 제2항에 있어서,
    상기 제1 식별자는 sps_affine_enabled_flag로 표시되고, sps_affine_enabled_flag는 상기 아핀 모션 모델 기반 모션 보상이 상기 비디오 시퀀스에 대해 인에이블되는지를 나타내며, sps_affine_enabled_flag가 1이면, 상기 아핀 모션 모델 기반 모션 보상이 상기 비디오 시퀀스에 대해 인에이블되는 것을 나타내는, 비디오 픽처 예측 방법.
  4. 제1항에 있어서,
    상기 비트스트림을 파싱하여 제3 식별자를 획득하는 단계는:
    상기 비트스트림의 시퀀스 파라미터 세트를 파싱하여 제3 식별자를 획득하는 단계
    를 포함하는, 비디오 픽처 예측 방법.
  5. 제4항에 있어서,
    상기 제3 식별자는 상기 비디오 시퀀스에 대한 6-파라미터 아핀 모션 모델 기반 모션 보상의 활성화 여부를 나타내는 sps_affine_type_flag로 표현되며, 여기서, sps_affine_type_flag는 1 또는 0의 값을 갖고, sps_affine_type_flag의 값이 1이면 상기 비디오 시퀀스에 대해 6-파라미터 아핀 모션 모델 기반 모션 보상이 활성화되어 있음을 나타내고, sps_affine_type_flag의 값이 0이면 상기 6-파라미터 아핀 모션 모델 기반 모션 보상이 비활성화되어 있음을 나타내는, 비디오 픽처 예측 방법.
  6. 디코더로서,
    메모리 및 프로세서를 포함하며,
    상기 메모리는 프로그램 명령을 저장하도록 구성되며, 그리고
    상기 프로세서는 제1항 내지 제5항 중 어느 한 항에 따른 방법을 구현하기 위해 상기 메모리에 저장된 프로그램 명령을 불러내어 실행하도록 구성되어 있는, 디코더.
  7. 비디오 데이터 디코딩 장치로서,
    비트스트림의 형태로 비디오 데이터를 저장하도록 구성되어 있는 비 일시적 메모리 스토리지; 및
    제1항 내지 제5항 중 어느 한 항에 따른 방법을 수행하도록 구성되어 있는 비디오 디코더
    를 포함하는 비디오 데이터 디코딩 장치.
  8. 컴퓨터-판독 가능형 저장 매체로서,
    상기 컴퓨터-판독 가능형 저장 매체는 명령을 저장하고, 상기 명령이 컴퓨터 상에서 실행될 때, 상기 컴퓨터는 제1항 내지 제5항 중 어느 한 항에 따른 방법을 수행할 수 있는, 컴퓨터-판독 가능형 저장 매체.
  9. 비 일시적 저장 매체로서,
    제1항 내지 제5항 중 어느 한 항에 따른 방법에 의해 디코딩된 비트스트림을 포함하는 비 일시적 저장 매체.
  10. 칩으로서,
    상기 칩은 메모리에 연결되어 있으며, 제1항 내지 제5항 중 어느 한 항에 따른 방법을 구현하기 위해 상기 메모리에 저장된 소프트웨어 프로그램을 읽고 실행하도록 구성되어 있는 칩.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
KR1020217008940A 2018-08-27 2019-04-17 비디오 픽처 예측 방법 및 장치 KR102675854B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020247009086A KR20240040131A (ko) 2018-08-27 2019-04-17 비디오 픽처 예측 방법 및 장치

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201810983026.0A CN110868587B (zh) 2018-08-27 2018-08-27 一种视频图像预测方法及装置
CN201810983026.0 2018-08-27
PCT/CN2019/083100 WO2020042630A1 (zh) 2018-08-27 2019-04-17 一种视频图像预测方法及装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020247009086A Division KR20240040131A (ko) 2018-08-27 2019-04-17 비디오 픽처 예측 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20210046768A KR20210046768A (ko) 2021-04-28
KR102675854B1 true KR102675854B1 (ko) 2024-06-14

Family

ID=69642667

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217008940A KR102675854B1 (ko) 2018-08-27 2019-04-17 비디오 픽처 예측 방법 및 장치
KR1020247009086A KR20240040131A (ko) 2018-08-27 2019-04-17 비디오 픽처 예측 방법 및 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020247009086A KR20240040131A (ko) 2018-08-27 2019-04-17 비디오 픽처 예측 방법 및 장치

Country Status (9)

Country Link
US (3) US11425410B2 (ko)
EP (1) EP3836549A4 (ko)
JP (2) JP7497807B2 (ko)
KR (2) KR102675854B1 (ko)
CN (5) CN117499672A (ko)
BR (1) BR112021003736A2 (ko)
MX (1) MX2021002288A (ko)
SG (1) SG11202101977QA (ko)
WO (1) WO2020042630A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112640459B (zh) * 2018-09-06 2023-07-28 Lg电子株式会社 图像编码系统中基于使用合并候选列表的运动预测的图像解码方法和设备
JP7321583B2 (ja) * 2019-04-25 2023-08-07 オーピー ソリューションズ, エルエルシー ピクチャヘッダ内の大域的運動ベクトルの信号伝達
WO2021204063A1 (en) * 2020-04-07 2021-10-14 FG Innovation Company Limited Device and method for coding video data
CN111614960B (zh) * 2020-05-25 2022-09-02 绍兴文理学院 按图像内容特征进行帧级划分的快速编解码方法
US11388401B2 (en) * 2020-06-26 2022-07-12 Google Llc Extended transform partitions for video compression
CN113470788B (zh) * 2021-07-08 2023-11-24 山东志盈医学科技有限公司 多个数字切片的同步浏览方法和装置
CN118522019A (zh) * 2024-07-24 2024-08-20 浙江大华技术股份有限公司 文本识别方法、电子设备以及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3426092B2 (ja) * 1996-09-12 2003-07-14 シャープ株式会社 動画像符号化装置における動き補償フレーム間予測方法
US8861797B2 (en) * 2010-11-12 2014-10-14 At&T Intellectual Property I, L.P. Calibrating vision systems
CN108965869B (zh) * 2015-08-29 2023-09-12 华为技术有限公司 图像预测的方法及设备
CN108965871B (zh) * 2015-09-29 2023-11-10 华为技术有限公司 图像预测的方法及装置
WO2017118411A1 (en) * 2016-01-07 2017-07-13 Mediatek Inc. Method and apparatus for affine inter prediction for video coding system
WO2017147765A1 (en) * 2016-03-01 2017-09-08 Mediatek Inc. Methods for affine motion compensation
US10560712B2 (en) * 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
US10448010B2 (en) * 2016-10-05 2019-10-15 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding
US10681370B2 (en) * 2016-12-29 2020-06-09 Qualcomm Incorporated Motion vector generation for affine motion model for video coding
CN108271023B (zh) * 2017-01-04 2021-11-19 华为技术有限公司 图像预测方法和相关设备
US10856003B2 (en) * 2017-10-03 2020-12-01 Qualcomm Incorporated Coding affine prediction motion information for video coding
US11877001B2 (en) * 2017-10-10 2024-01-16 Qualcomm Incorporated Affine prediction in video coding
US20190116376A1 (en) * 2017-10-12 2019-04-18 Qualcomm Incorporated Motion vector predictors using affine motion model in video coding
US20190208211A1 (en) * 2018-01-04 2019-07-04 Qualcomm Incorporated Generated affine motion vectors
US11172229B2 (en) * 2018-01-12 2021-11-09 Qualcomm Incorporated Affine motion compensation with low bandwidth
US10834417B2 (en) * 2018-09-21 2020-11-10 Tencent America LLC Method and apparatus for video coding

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Haitao Yang, et. al., "Draft text for affine motion compensation", Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 11th Meeting: Ljubljana, SI, 2018.07.18., JVET-K0565-v2.*
비특허문헌 1 (JVET_K0565 VERSION 2 2018.07.18)*
비특허문헌 2 (JVET_J0024 VERSION 2018.04.14)*

Also Published As

Publication number Publication date
WO2020042630A1 (zh) 2020-03-05
EP3836549A1 (en) 2021-06-16
SG11202101977QA (en) 2021-03-30
MX2021002288A (es) 2021-07-15
CN117499670A (zh) 2024-02-02
US20220345739A1 (en) 2022-10-27
KR20210046768A (ko) 2021-04-28
JP2023099016A (ja) 2023-07-11
CN117499671A (zh) 2024-02-02
CN110868587B (zh) 2023-10-20
JP2021535672A (ja) 2021-12-16
JP7497807B2 (ja) 2024-06-11
BR112021003736A2 (pt) 2021-05-25
US20240007663A1 (en) 2024-01-04
CN117528115A (zh) 2024-02-06
KR20240040131A (ko) 2024-03-27
EP3836549A4 (en) 2021-09-29
US11736715B2 (en) 2023-08-22
US20210203975A1 (en) 2021-07-01
CN110868587A (zh) 2020-03-06
US11425410B2 (en) 2022-08-23
CN117499672A (zh) 2024-02-02

Similar Documents

Publication Publication Date Title
US12088819B2 (en) Method and apparatus for predicting motion information of picture block, encoder, and decoder
JP6882560B2 (ja) 画像予測方法および装置
KR102675854B1 (ko) 비디오 픽처 예측 방법 및 장치
US9699472B2 (en) Restriction of prediction units in B slices to uni-directional inter prediction
RU2584498C2 (ru) Видеокодирование интра-режима
US9736489B2 (en) Motion vector determination for video coding
KR102607443B1 (ko) 비디오 데이터 인터 예측 방법 및 장치
US20130202038A1 (en) Restriction of prediction units in b slices to uni-directional inter prediction
KR20150076235A (ko) 비디오 코딩을 위한 참조 화상 상태
US20210211715A1 (en) Picture Prediction Method and Apparatus, and Corresponding Encoder and Decoder
US11601667B2 (en) Inter prediction method and related apparatus
US11197018B2 (en) Inter-frame prediction method and apparatus
KR20210046777A (ko) 인터 예측 방법 및 장치, 비디오 인코더 및 비디오 디코더

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
A107 Divisional application of patent
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant