Nothing Special   »   [go: up one dir, main page]

KR102691271B1 - 후보 모션 정보 목록을 구성하기 위한 방법, 인터 예측 방법, 및 장치 - Google Patents

후보 모션 정보 목록을 구성하기 위한 방법, 인터 예측 방법, 및 장치 Download PDF

Info

Publication number
KR102691271B1
KR102691271B1 KR1020217008936A KR20217008936A KR102691271B1 KR 102691271 B1 KR102691271 B1 KR 102691271B1 KR 1020217008936 A KR1020217008936 A KR 1020217008936A KR 20217008936 A KR20217008936 A KR 20217008936A KR 102691271 B1 KR102691271 B1 KR 102691271B1
Authority
KR
South Korea
Prior art keywords
motion information
candidate motion
image block
information list
candidate
Prior art date
Application number
KR1020217008936A
Other languages
English (en)
Other versions
KR20210046767A (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
Priority claimed from CN201810990444.2A external-priority patent/CN110868601B/zh
Priority claimed from CN201810997139.6A external-priority patent/CN110876065A/zh
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20210046767A publication Critical patent/KR20210046767A/ko
Application granted granted Critical
Publication of KR102691271B1 publication Critical patent/KR102691271B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • 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/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

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

Abstract

본 출원의 실시예는 비디오 이미지 코딩 기술 분야에 관련되고, 낮은 계산 복잡성 및 낮은 딜레이를 달성하기 위한, 후보 모션 정보 목록을 구성하기 위한 방법, 예측 방법, 및 장치를 개시한다. 구성 방법은, 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 제1 값과 같거나 모든 이웃하는 이미지 블록이 순회될 때까지 현재 이미지 블록의 모든 이웃하는 이미지 블록에 대해 제1 처리 프로세스를 수행하는 단계; 다음으로, 모션 정보 세트로 선택될 적어도 2개의 여분을 순회하고, 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값과 같거나 모션 정보 세트로 선택될 여분이 순회될 때까지 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분을 후보 모션 정보 목록에 저장하는 단계; 및 모션 정보 세트로 선택될 여분이 순회된 후 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값보다 작으면, 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값과 같을 때까지 미리 설정된 제1 후보 모션 정보 세트로 후보 모션 정보 목록을 채우는 단계;를 포함한다.

Description

후보 모션 정보 목록을 구성하기 위한 방법, 인터 예측 방법, 및 장치
삭제
본 출원의 실시예는 비디오 이미지 코딩 기술 분야에 관한 것으로서, 특히, 후보 모션 정보 목록을 구성하기 위한 방법, 인터 예측 방법, 및 장치에 관한 것이다.
비-병진 모션 모델 예측 모드(non-translational motion model prediction mode)에서, 인코더/디코더 측은, 현재 이미지 블록의 제어점의 모션 정보에 기초하여, 동일한 모션 모델을 사용하여 현재 이미지 블록의 모든 서브블록의 모션 정보를 도출하고, 모든 서브블록의 모션 정보에 기초하여 모션 보상을 수행하여 예측 이미지 블록을 획득한다. 일반적으로, 이 방식으로 예측되는 이미지 블록은 아핀 코딩 블록으로 지칭된다.
일반적으로, 인코더/디코더 측은 아핀 고급 모션 벡터 예측 모드(affine advanced motion vector prediction mode; 아핀 AMVP 모드) 또는 아핀 병합 모드(Affine Merge mode)를 사용하여 아핀 코딩 블록의 제어점의 모션 정보를 획득할 수 있다. 구체적으로, 인코더/디코더 측은 후보 모션 정보 목록을 구성하고, 목록 내의 후보 모션 정보에 기초하여 제어점의 모션 정보를 결정한다. 후보 모션 정보 목록을 구성하는 프로세스에서, 새로운 후보 모션 정보 세트를 후보 모션 정보 목록에 매번 추가하기 전에, 인코더/디코더 측은 동일한 모션 정보 세트가 후보 모션 정보 목록에 이미 존재하는지 여부를 먼저 체크한다. 동일한 모션 정보 세트가 후보 모션 정보 목록에 존재하는 경우, 인코더/디코더 측은 새로운 후보 모션 정보 세트를 목록에 추가하지 않는다.
이 프로세스는 후보 모션 정보 목록의 정리(pruning)라고 지칭된다. 후보 모션 정보 목록의 정리는 후보 모션 정보 목록에서 동일한 모션 정보를 방지할 수 있고, 중복된 레이트-왜곡 비용 계산을 피할 수 있다. 그러나, 이 프로세스의 계산 복잡성이 또한 상대적으로 높고, 딜레이가 상대적으로 길다.
본 출원의 실시예는, 계산 복잡성이 상대적으로 높고 딜레이가 상대적으로 긴 문제를 해결하기 위한, 후보 모션 정보 목록을 구성하기 위한 방법, 인터 예측 방법, 및 장치를 제공한다.
상기 전술한 목적을 달성하기 위해, 본 출원의 실시예에서 다음의 기술적 해결 수단이 사용된다:
제1 측면에 따르면, 후보 모션 정보 목록을 구성하기 위한 방법이 제공된다. 후보 모션 정보 목록을 구성하기 위한 장치(이하에서 구성 장치로 지칭됨)는, 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 제1 값과 같거나 상기 모든 이웃하는 이미지 블록이 순회(traverse)될 때까지 현재 이미지 블록의 모든 이웃하는 이미지 블록에 대해 미리 설정된 제1 순서로 제1 처리 프로세스를 순차적으로 수행한다. 상기 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 제1 값과 같거나 상기 모든 이웃하는 이미지 블록가 순회된 후, 상기 구성 장치는 모션 정보 세트로 선택될 적어도 2개의 여분(extra)을 미리 설정된 제2 순서로 순차적으로 순회하고, 상기 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값과 같거나 모션 정보 세트로 선택될 모든 여분이 순회될 때까지, 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분을 상기 후보 모션 정보 목록에 저장한다. 여기서, 상기 미리 설정된 수량 값은 상기 미리 설정된 제1 값보다 크고, 상기 모션 정보 세트로 선택될 여분은 상기 현재 이미지 블록의 적어도 2개의 제어점의 모션 정보로 선택될 여분을 포함하고, 상기 제어점의 모션 정보로 선택될 여분은 상기 현재 이미지 블록에 인접한 인터-코딩된 이미지 블록의 모션 정보이다. 모션 정보 세트로 선택될 모든 여분이 순회된 후 상기 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 수량 값보다 작으면, 상기 구성 장치는, 상기 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 수량 값과 같을 때까지, 미리 설정된 제1 후보 모션 정보 세트로 상기 후보 모션 정보 목록을 채운다. 구체적으로, 상기 제1 처리 프로세스는 다음과 같다: 상기 i번째 (i∈[1, n]) 이웃하는 이미지 블록에 대해, 상기 i번째 이웃하는 이미지 블록이 아핀 코딩 블록인 경우, 상기 구성 장치는 상기 후보 모션 정보 목록에 저장된 후보 모션 정보 세트 및 상기 i번째 이웃하는 이미지 블록이 동일한 코딩 유닛으로부터 유래하는지 여부를 판단한다. 상기 i번째 이웃하는 이미지 블록이 속하는 코딩 유닛으로부터의 후보 모션 정보 세트가 상기 후보 모션 정보 목록에 존재하지 않는 경우, 상기 구성 장치는 상기 i번째 이웃하는 이미지 블록의 x개 제어점의 모션 정보에 기초하여 상기 현재 이미지 블록의 x개 제어점의 후보 모션 정보를 결정하고, 상기 현재 이미지 블록의 x개 제어점의 후보 모션 정보를 포함하는 후보 모션 정보 세트를 상기 후보 모션 정보 목록에 저장하며, 여기서, n은 상기 현재 이미지 블록의 이웃하는 이미지 블록의 수량이고, x 및 n은 모두 2보다 크거나 같은 정수이다.
상기 제1 처리 프로세스에서, 상기 i번째 이웃하는 이미지 블록이 상기 아핀 코딩 블록인 경우, 상기 구성 장치는 상기 후보 모션 정보 목록에 저장된 후보 모션 정보 세트 및 i번째 이웃하는 이미지 블록이 상기 동일한 코딩 유닛으로부터 유래하는지 여부를 판단하고, 그 판단 결과에 기초하여, 새로운 후보 모션 정보 세트를 상기 후보 모션 정보 목록에 추가할지 여부를 판단하기만 하면 되고, 상기 새로운 후보 모션 정보 세트를 계산한 후 동일한 모션 정보가 상기 후보 모션 정보 목록에 존재하는지 여부를 판단할 필요가 없다는 것을 알 수 있다. 이는 계산 복잡성 및 딜레이를 효과적으로 감소시킨다.
선택사항으로서, 본 출원의 가능한 구현예에서, 상기 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 모든 제어점의 참조 프레임 인덱스는 동일하거나; 또는 상기 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 모든 제어점의 참조 프레임 인덱스는 동일하고 상기 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 적어도 2개의 제어점의 모션 벡터로 선택될 여분은 상이하다.
상기 구성 장치는 모션 정보 세트로 선택될 여분에서 모든 제어점의 모션 벡터로 선택될 여분 및 참조 프레임 인덱스만을 결정하고, 결정 결과에 기초하여, 상기 모션 정보 세트로 선택될 여분을 상기 후보 모션 정보 목록에 저장할지 여부를 모션 벡터 스케일링을 수행하지 않고 결정한다. 이는 상기 계산 복잡성을 감소시킨다.
선택사항으로서, 본 출원의 다른 가능한 구현예에서, 상기 후보 모션 정보 목록에 저장된 후보 모션 정보 세트 및 i번째 이웃하는 이미지 블록이 상기 동일한 코딩 유닛으로부터 유래하는지 여부를 판단하기 위해 상기 구성 장치에 의해 사용되는 방법은 다음과 같다: 상기 구성 장치는 상기 i번째 이웃하는 이미지 블록이 속하는 코딩 유닛의 왼쪽 상단 모서리의 정보가 타깃 코딩 유닛의 왼쪽 상단 모서리의 정보와 동일한지 여부를 판단하며, 여기서 상기 타깃 코딩 유닛은 상기 후보 모션 정보 목록에 저장된 후보 모션 정보 세트를 계산하는데 사용되는 이웃하는 이미지 블록이 속하는 코딩 유닛이다.
이미지 블록 예측 프로세스에서, 상기 코딩 유닛의 크기는 고정된다. 상기 구성 장치는, 상기 코딩 유닛의 왼쪽 상단 모서리의 정보에 기초하여, 상기 후보 모션 정보 목록에 저장된 후보 모션 정보 세트 및 i번째 이웃하는 이미지 블록이 상기 동일한 코딩 유닛으로부터 유래하는지 여부를 직접 판단할 수 있다. 판단 프로세스는 간단하고 효율적이다.
선택사항으로서, 본 출원의 다른 가능한 구현예에서, 상기 모션 정보 세트로 선택될 여분은 적어도 제1 제어점의 모션 정보로 선택될 여분 및 제2 제어점의 모션 정보로 선택될 여분을 포함하되, 여기서 상기 제1 제어점 및 상기 제2 제어점은 상기 현재 이미지 블록의 이웃하는 제어점이다.
제2 측면에 따르면, 후보 모션 정보 목록을 구성하기 위한 방법이 제공된다. 구성 장치는, 제1 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 제1 값과 같거나 상기 모든 이웃하는 이미지 블록이 순회될 때까지, 현재 이미지 블록의 모든 이웃하는 이미지 블록에 대해 미리 설정된 제1 순서로 제1 처리 프로세스를 순차적으로 수행한다. 그리고, 상기 구성 장치는 추가로, 모션 정보 세트로 선택될 적어도 2개의 여분을 미리 설정된 제2 순서로 순차적으로 순회하고, 제2 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 제2 값과 같거나 모션 정보 세트로 선택될 모든 여분이 순회될 때까지 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분을 제2 후보 모션 정보 목록에 저장한다. 상기 모션 정보 세트로 선택될 여분은 상기 현재 이미지 블록의 적어도 2개의 제어점의 모션 정보로 선택될 여분을 포함하고, 상기 제어점의 모션 정보로 선택될 여분은 상기 현재 이미지 블록에 인접한 인터-코딩된 이미지 블록의 모션 정보이다. 모션 정보 세트로 선택될 모든 여분이 순회된 후 상기 제2 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 제2 값보다 작으면, 상기 구성 장치는, 상기 제2 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 제2 값과 같을 때까지, 미리 설정된 제2 후보 모션 정보 세트로 상기 제2 후보 모션 정보 목록을 채운다. 그 다음, 상기 구성 장치는 상기 제1 후보 모션 정보 목록 및 상기 제2 후보 모션 정보 목록을 미리 설정된 규칙에 따라 병합하여, 제3 후보 모션 정보 목록를 획득한다. 상기 제3 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량은 미리 설정된 수량 값과 같고, 상기 미리 설정된 제1 값 및 상기 미리 설정된 제2 값의 합은 상기 미리 설정된 수량 값보다 크거나 같다.
구체적으로, 상기 제1 처리 프로세스는 다음과 같다: 상기 i번째 (i∈[1, n]) 이웃하는 이미지 블록에 대해, 상기 i번째 이웃하는 이미지 블록이 아핀 코딩 블록인 경우, 상기 구성 장치는 상기 제1 후보 모션 정보 목록에 저장된 후보 모션 정보 세트 및 상기 i번째 이웃하는 이미지 블록이 동일한 코딩 유닛으로부터 유래하는지 여부를 판단한다. 상기 i번째 이웃하는 이미지 블록이 속하는 코딩 유닛으로부터의 후보 모션 정보 세트가 상기 후보 모션 정보 목록에 존재하지 않는 경우, 상기 구성 장치는 상기 i번째 이웃하는 이미지 블록의 x개 제어점의 모션 정보에 기초하여 상기 현재 이미지 블록의 x개 제어점의 후보 모션 정보를 결정하고, 상기 현재 이미지 블록의 x개 제어점의 후보 모션 정보를 포함하는 후보 모션 정보 세트를 상기 후보 모션 정보 목록에 저장하며, 여기서, n은 상기 현재 이미지 블록의 이웃하는 이미지 블록의 수량이고, x 및 n은 모두 2보다 크거나 같은 정수이다.
상기 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 모든 제어점의 참조 프레임 인덱스는 동일하거나; 또는 상기 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 모든 제어점의 참조 프레임 인덱스는 동일하고 상기 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 적어도 2개의 제어점의 모션 벡터로 선택될 여분은 상이하다.
본 출원에서 상기 모션 정보 세트로 선택될 여분의 처리 프로세스 및 상기 제1 처리 프로세스 모두에서, 새로운 후보 모션 정보 세트를 상기 후보 모션 정보 목록에 추가할지 여부는 판단 결과에 기초하여 결정되고, 상기 새로운 후보 모션 정보 세트를 먼저 계산한 후 동일한 모션 정보가 상기 후보 모션 정보 목록에 존재하는지 여부를 판단할 필요가 없다. 이는 계산 복잡성 및 딜레이를 효과적으로 감소시킨다.
선택사항으로서, 본 출원의 다른 가능한 구현예에서, 상기 모션 정보 세트로 선택될 여분은 적어도 제1 제어점의 모션 정보로 선택될 여분 및 제2 제어점의 모션 정보로 선택될 여분을 포함하되, 여기서 상기 제1 제어점 및 상기 제2 제어점은 상기 현재 이미지 블록의 이웃하는 제어점이다.
선택사항으로서, 본 출원의 다른 가능한 구현예에서, 상기 구성 장치에 의해 상기 제1 후보 모션 정보 목록 및 상기 제2 후보 모션 정보 목록를 상기 미리 설정된 규칙에 따라 병합하여 상기 제3 후보 모션 정보 목록을 획득하는데 사용되는 방법은 다음과 같다: 상기 구성 장치는 상기 제1 후보 모션 정보 목록의 모든 후보 모션 정보 세트를 상기 제2 후보 모션 정보 목록의 모든 후보 모션 정보 세트 앞에 배치하여, 타깃 후보 모션 정보 목록을 생성하고; 그리고 상기 타깃 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 수량 값보다 작으면, 상기 타깃 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 수량 값과 같을 때까지 상기 타깃 후보 모션 정보 목록을 상기 미리 설정된 제2 후보 모션 정보 세트로 채우고, 채움 후에 획득되는 타깃 후보 모션 정보 목록을 상기 제3 후보 모션 정보 목록으로서 사용하거나; 상기 타깃 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 수량 값과 같으면, 상기 타깃 후보 모션 정보 목록을 상기 제3 후보 모션 정보 목록으로서 사용하거나; 또는 상기 타깃 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 수량 값보다 크면, 적어도 하나의 후보 모션 정보를 상기 타깃 후보 모션 정보 목록으로부터 삭제하여, 삭제 후에 획득되는 타깃 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 수량 값과 같고, 삭제 후에 획득되는 상기 타깃 후보 모션 정보 목록을 상기 제3 후보 모션 정보 목록으로서 사용하도록 한다.
제3 측면에 따르면, 후보 모션 정보 목록을 구성하기 위한 방법이 제공된다. 구성 장치는 현재 이미지 블록의 모든 이웃하는 이미지 블록을 미리 설정된 제1 순서로 순회하여, 적어도 하나의 후보 모션 정보 세트를 포함하는 후보 모션 정보 목록을 생성하고, 여기서, 상기 후보 모션 정보 세트는 상기 현재 이미지 블록의 x개 제어점의 후보 모션 정보를 포함하고, x는 2보다 크거나 같은 정수이다. 상기 현재 이미지 블록의 모든 이웃하는 이미지 블록을 순회한 후, 상기 구성 장치는 모션 정보 세트로 선택될 적어도 2개의 여분을 미리 설정된 제2 순서로 순차적으로 순회하고, 상기 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값과 같거나 모션 정보 세트로 선택될 모든 여분이 순회될 때까지, 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분을 상기 후보 모션 정보 목록에 저장한다. 모션 정보 세트로 선택될 모든 여분이 순회된 후 상기 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 수량 값보다 작으면, 상기 구성 장치는, 상기 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 수량 값과 같을 때까지, 미리 설정된 제3 후보 모션 정보 세트로 상기 후보 모션 정보 목록을 채운다. 여기서, 상기 모션 정보 세트로 선택될 여분은 상기 현재 이미지 블록의 적어도 2개의 제어점의 모션 정보로 선택될 여분을 포함하고, 상기 제어점의 모션 정보로 선택될 여분은 상기 현재 이미지 블록에 인접한 인터-코딩된 이미지 블록의 모션 정보이다. 상기 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 모든 제어점의 참조 프레임 인덱스는 동일하거나; 또는 상기 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 모든 제어점의 참조 프레임 인덱스는 동일하고 상기 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 적어도 2개의 제어점의 모션 벡터로 선택될 여분은 상이하다.
모션 정보 세트로 선택될 여분을 처리하는 경우, 상기 구성 장치는 상기 모션 정보 세트로 선택될 여분에서 모든 제어점의 모션 벡터로 선택될 여분 및 참조 프레임 인덱스만을 결정하고, 결정 결과에 기초하여, 상기 모션 정보 세트로 선택될 여분을 상기 후보 모션 정보 목록에 저장할지 여부를 결정한다는 것을 알 수 있다. 구성 장치는 모션 벡터 스케일링을 수행할 필요도 없고, 새로운 후보 모션 정보 세트를 먼저 계산한 다음 동일한 모션 정보가 후보 모션 정보 목록에 존재하는지 여부를 판단할 필요도 없다. 이는 계산 복잡성 및 딜레이를 감소시킨다.
선택사항으로서, 본 출원의 다른 가능한 구현예에서, 상기 모션 정보 세트로 선택될 여분은 적어도 제1 제어점의 모션 정보로 선택될 여분 및 제2 제어점의 모션 정보로 선택될 여분을 포함하되, 여기서 상기 제1 제어점 및 상기 제2 제어점은 상기 현재 이미지 블록의 이웃하는 제어점이다.
제4 측면에 따르면, 인터 예측 방법이 제공된다. 인터 예측 장치는 비트스트림을 획득 및 파싱하여, 제1 인덱스 값 및 모션 정보 차이를 획득하며, 여기서, 상기 제1 인덱스 값은 후보 모션 정보 목록에서 현재 이미지 블록의 제어점의 모션 정보 예측자(predictor)의 인덱스 값이고, 상기 후보 모션 정보 목록은 전술한 구성 장치에 의해 상기 제1 측면, 상기 제2 측면, 상기 제3 측면, 또는 이의 가능한 구현예 중 어느 하나에서 기술된 구성 방법을 사용하여 생성된다. 그 다음, 상기 인터 예측 장치는 상기 제1 인덱스 값에 기초하여 상기 후보 모션 정보 목록으로부터 상기 제어점의 모션 정보 예측자를 획득하고, 상기 제어점의 모션 정보를 상기 제어점의 모션 정보 예측자 및 상기 모션 정보 차이에 기초하여 결정한다. 이러한 방식으로, 상기 인터 예측 장치는 상기 현재 이미지 블록의 예측 픽셀을 상기 제어점의 모션 정보에 기초하여 결정할 수 있다.
상기 인터 예측 장치는 상기 제1 측면, 상기 제2 측면, 상기 제3 측면, 또는 이의 가능한 구현예 중 어느 하나에서 기술된 구성 방법에 따라 생성되는 후보 모션 정보 목록에 기초하여 인터 예측을 수행한다. 본 출원에서 상기 구성 장치가 상기 후보 모션 정보 목록을 생성하는 프로세스에서, 계산 복잡성 및 딜레이가 효과적으로 감소된다. 따라서, 상기 인터 예측 장치는 상대적으로 고속으로 인터 예측을 수행한다.
제5 측면에 따르면, 인터 예측 방법이 제공된다. 인터 예측 장치는 비트스트림을 획득 및 파싱하여, 제2 인덱스 값를 획득하며, 여기서, 상기 제2 인덱스 값은 후보 모션 정보 목록에서 현재 이미지 블록의 제어점의 모션 정보의 인덱스 값이고, 상기 후보 모션 정보 목록은 전술한 구성 장치에 의해 상기 제1 측면, 상기 제2 측면, 상기 제3 측면, 또는 이의 가능한 구현예 중 어느 하나에서 기술된 구성 방법을 사용하여 생성된다. 그 다음, 상기 인터 예측 장치는 상기 제2 인덱스 값에 기초하여 상기 후보 모션 정보 목록으로부터 상기 제어점의 모션 정보를 획득하고, 상기 현재 이미지 블록의 예측 픽셀을 상기 상기 제어점의 모션 정보에 기초하여 결정한다.
상기 인터 예측 장치는 상기 제1 측면, 상기 제2 측면, 상기 제3 측면, 또는 이의 가능한 구현예 중 어느 하나에서 기술된 구성 방법에 따라 생성되는 후보 모션 정보 목록에 기초하여 인터 예측을 수행한다. 본 출원에서 상기 구성 장치가 상기 후보 모션 정보 목록을 생성하는 프로세스에서, 계산 복잡성 및 딜레이가 효과적으로 감소된다. 따라서, 상기 인터 예측 장치는 상대적으로 고속으로 인터 예측을 수행한다.
제6 측면에 따르면, 후보 모션 정보 목록을 구성하기 위한 장치가 제공된다. 상기 후보 모션 정보 목록을 구성하기 위한 장치는 제1 처리 유닛, 제2 처리 유닛, 채움 유닛, 및 저장 유닛을 포함한다.
구체적으로, 상기 제1 처리 유닛은 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 제1 값과 같거나 상기 모든 이웃하는 이미지 블록이 순회될 때까지 현재 이미지 블록의 모든 이웃하는 이미지 블록에 대해 미리 설정된 제1 순서로 제1 처리 프로세스를 순차적으로 수행하도록 구성되며, 여기서 상기 후보 모션 정보 목록은 상기 저장 유닛에 저장된다. 상기 제1 처리 프로세스는 다음과 같다: 상기 i번째 이웃하는 이미지 블록에 대해, 상기 i번째 이웃하는 이미지 블록이 아핀 코딩 블록인 경우, 상기 후보 모션 정보 목록에 저장된 후보 모션 정보 세트 및 상기 i번째 이웃하는 이미지 블록이 동일한 코딩 유닛으로부터 유래하는지 여부를 판단하는 단계; 및 상기 i번째 이웃하는 이미지 블록이 속하는 코딩 유닛으로부터의 후보 모션 정보 세트가 상기 후보 모션 정보 목록에 존재하지 않는 경우, 상기 i번째 이웃하는 이미지 블록의 x개 제어점의 모션 정보에 기초하여 상기 현재 이미지 블록의 x개 제어점의 후보 모션 정보를 결정하는 단계, 및 상기 현재 이미지 블록의 x개 제어점의 후보 모션 정보를 포함하는 후보 모션 정보 세트를 상기 후보 모션 정보 목록에 저장하는 단계, 여기서, i∈[1, n]이고, n은 상기 현재 이미지 블록의 이웃하는 이미지 블록의 수량이고, x 및 n은 모두 2보다 크거나 같은 정수이다. 상기 제2 처리 유닛은, 상기 저장 유닛에 저장된 상기 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 제1 값과 같거나 상기 모든 이웃하는 이미지 블록이 순회된 후, 모션 정보 세트로 선택될 적어도 2개의 여분을 미리 설정된 제2 순서로 순차적으로 순회하고, 상기 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값과 같거나 모션 정보 세트로 선택될 모든 여분이 순회될 때까지 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분을 상기 후보 모션 정보 목록에 저장하도록 구성된다. 상기 미리 설정된 수량 값은 상기 미리 설정된 제1 값보다 크고, 상기 모션 정보 세트로 선택될 여분은 상기 현재 이미지 블록의 적어도 2개의 제어점의 모션 정보로 선택될 여분을 포함하고, 상기 제어점의 모션 정보로 선택될 여분은 상기 현재 이미지 블록에 인접한 인터-코딩된 이미지 블록의 모션 정보이다. 상기 채움 유닛은, 상기 제2 처리 유닛이 모션 정보 세트로 선택될 모든 여분을 순회한 후 상기 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 수량 값보다 작으면, 상기 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 수량 값과 같을 때까지 상기 후보 모션 정보 목록을 미리 설정된 제1 후보 모션 정보 세트로 채우도록 구성된다.
선택사항으로서, 본 출원의 가능한 구현예에서, 상기 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 모든 제어점의 참조 프레임 인덱스는 동일하거나; 또는 상기 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 모든 제어점의 참조 프레임 인덱스는 동일하고 상기 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 적어도 2개의 제어점의 모션 벡터로 선택될 여분은 상이하다.
선택사항으로서, 본 출원의 다른 가능한 구현예에서, 상기 제1 처리 유닛은 구체적으로, 상기 i번째 이웃하는 이미지 블록이 속하는 상기 코딩 유닛의 왼쪽 상단 모서리의 정보가 타깃 코딩 유닛의 왼쪽 상단 모서리의 정보와 동일한지 여부를 판단하도록 구성되며, 여기서 상기 타깃 코딩 유닛은 상기 후보 모션 정보 목록에 저장된 후보 모션 정보 세트를 계산하는데 사용되는 이웃하는 이미지 블록이 속하는 코딩 유닛이다.
선택사항으로서, 본 출원의 다른 가능한 구현예에서, 상기 모션 정보 세트로 선택될 여분은 적어도 제1 제어점의 모션 정보로 선택될 여분 및 제2 제어점의 모션 정보로 선택될 여분을 포함하되, 여기서 상기 제1 제어점 및 상기 제2 제어점은 상기 현재 이미지 블록의 이웃하는 제어점이다.
본 출원에서 상기 제6 측면 또는 이의 가능한 구현예 중 어느 하나의 구체적인 설명에 대해, 상기 제1 측면 또는 이의 가능한 구현예 중 어느 하나의 상세한 설명을 참조한다. 그리고, 상기 제6 측면 또는 이의 가능한 구현예 중 어느 하나의 유익한 효과에 대해, 상기 제1 측면 또는 이의 가능한 구현예 중 어느 하나의 유익한 효과의 분석을 참조한다. 세부 사항은 여기서 다시 설명하지 않는다.
제7 측면에 따르면, 후보 모션 정보 목록을 구성하기 위한 장치가 제공된다. 상기 후보 모션 정보 목록을 구성하기 위한 장치는 제1 처리 유닛, 제2 처리 유닛, 병합 유닛, 및 저장 유닛을 포함한다.
구체적으로, 상기 제1 처리 유닛은 제1 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 제1 값과 같거나 상기 모든 이웃하는 이미지 블록이 순회될 때까지 현재 이미지 블록의 모든 이웃하는 이미지 블록에 대해 미리 설정된 제1 순서로 제1 처리 프로세스를 순차적으로 수행하도록 구성되며, 여기서 상기 제1 후보 모션 정보 목록은 상기 저장 유닛에 저장된다. 상기 제1 처리 프로세스는 다음과 같다: 상기 i번째 이웃하는 이미지 블록에 대해, 상기 i번째 이웃하는 이미지 블록이 아핀 코딩 블록인 경우, 상기 제1 후보 모션 정보 목록에 저장된 후보 모션 정보 세트 및 i번째 이웃하는 이미지 블록이 동일한 코딩 유닛으로부터 유래하는지 여부를 판단하는 단계; 및 상기 i번째 이웃하는 이미지 블록이 속하는 코딩 유닛으로부터의 후보 모션 정보 세트가 상기 제1 후보 모션 정보 목록에 존재하지 않는 경우, 상기 i번째 이웃하는 이미지 블록의 x개 제어점의 모션 정보에 기초하여 상기 현재 이미지 블록의 x개 제어점의 후보 모션 정보를 결정하는 단계, 및 상기 현재 이미지 블록의 x개 제어점의 후보 모션 정보를 포함하는 모션 정보 세트를 상기 제1 후보 모션 정보 목록에 저장하는 단계, 여기서, i∈[1, n]이고, n은 상기 현재 이미지 블록의 이웃하는 이미지 블록의 수량이고, x 및 n은 모두 2보다 크거나 같은 정수이다. 상기 제2 처리 유닛은, 모션 정보 세트로 선택될 적어도 2개의 여분을 미리 설정된 제2 순서로 순차적으로 순회하고, 상기 제2 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 제2 값과 같거나 모션 정보 세트로 선택될 모든 여분이 순회될 때까지 제2 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분을 후보 모션 정보 목록에 저장하도록 구성되며, 여기서, 상기 모션 정보 세트로 선택될 여분은 상기 현재 이미지 블록의 적어도 2개의 제어점의 모션 정보로 선택될 여분을 포함하고, 상기 제어점의 모션 정보로 선택될 여분은 상기 현재 이미지 블록에 인접한 인터-코딩된 이미지 블록의 모션 정보이고, 상기 제2 후보 모션 정보 목록은 상기 저장 유닛에 저장된다. 상기 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 모든 제어점의 참조 프레임 인덱스는 동일하거나; 또는 상기 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 모든 제어점의 참조 프레임 인덱스는 동일하고 상기 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 적어도 2개의 제어점의 모션 벡터로 선택될 여분은 상이하다. 상기 병합 유닛은 상기 저장 유닛에 저장된 제1 후보 모션 정보 목록 및 제2 후보 모션 정보 목록을 미리 설정된 규칙에 따라 병합하여, 제3 후보 모션 정보 목록을 획득하도록 구성되며, 여기서, 상기 제3 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량은 미리 설정된 수량 값과 같고, 상기 미리 설정된 제1 값 및 상기 미리 설정된 제2 값의 합은 상기 미리 설정된 수량 값보다 크거나 같다.
선택사항으로서, 본 출원의 가능한 구현예에서, 상기 모션 정보 세트로 선택될 여분은 적어도 제1 제어점의 모션 정보로 선택될 여분 및 제2 제어점의 모션 정보로 선택될 여분을 포함하되, 여기서 상기 제1 제어점 및 상기 제2 제어점은 상기 현재 이미지 블록의 이웃하는 제어점이다.
선택사항으로서, 본 출원의 다른 가능한 구현예에서, 상기 병합 유닛은 구체적으로, 상기 제1 후보 모션 정보 목록의 모든 후보 모션 정보 세트를 상기 제2 후보 모션 정보 목록의 모든 후보 모션 정보 세트 앞에 배치하여, 타깃 후보 모션 정보 목록을 생성하도록; 그리고 상기 타깃 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 수량 값보다 작으면, 상기 타깃 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 수량 값과 같을 때까지 상기 타깃 후보 모션 정보 목록을 미리 설정된 제2 후보 모션 정보 세트로 채우고, 채운 후에 획득되는 타깃 후보 모션 정보 목록을 상기 제3 후보 모션 정보 목록으로서 사용하거나, 상기 타깃 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 수량 값과 같으면, 상기 타깃 후보 모션 정보 목록을 상기 제3 후보 모션 정보 목록로서 사용하거나, 또는 상기 타깃 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 수량 값보다 크면, 상기 타깃 후보 모션 정보 목록으로부터 적어도 하나의 후보 모션 정보를 삭제하여, 삭제 후에 획득되는 타깃 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 수량 값과 같고, 상기 삭제 후에 획득되는 타깃 후보 모션 정보 목록을 상기 제3 후보 모션 정보 목록으로서 사용하도록; 구성된다.
선택사항으로서, 본 출원의 다른 가능한 구현예에서, 상기 제1 처리 유닛은 구체적으로, 상기 i번째 이웃하는 이미지 블록이 속하는 상기 코딩 유닛의 왼쪽 상단 모서리의 정보가 타깃 코딩 유닛의 왼쪽 상단 모서리의 정보와 동일한지 여부를 판단하도록 구성되며, 여기서 상기 타깃 코딩 유닛은 상기 제1 후보 모션 정보 목록에 저장된 후보 모션 정보 세트를 계산하는데 사용되는 이웃하는 이미지 블록이 속하는 코딩 유닛이다.
본 출원에서 상기 제7 측면 또는 이의 가능한 구현예 중 어느 하나의 구체적인 설명에 대해, 상기 제2 측면 또는 이의 가능한 구현예 중 어느 하나의 상세한 설명을 참조한다. 그리고, 상기 제7 측면 또는 이의 가능한 구현예 중 어느 하나의 유익한 효과에 대해, 상기 제2 측면 또는 이의 가능한 구현예 중 어느 하나의 유익한 효과의 분석을 참조한다. 세부 사항은 여기서 다시 설명하지 않는다.
제8 측면에 따르면, 후보 모션 정보 목록을 구성하기 위한 장치가 제공된다. 상기 후보 모션 정보 목록을 구성하기 위한 장치는 제1 처리 유닛, 제2 처리 유닛, 채움 유닛, 및 저장 유닛을 포함한다.
구체적으로, 상기 제1 처리 유닛은, 현재 이미지 블록의 모든 이웃하는 이미지 블록을 미리 설정된 제1 순서로 순회하여, 적어도 하나의 후보 모션 정보 세트를 포함하는 후보 모션 정보 목록을 생성하도록 구성되며, 여기서, 상기 후보 모션 정보 세트는 상기 현재 이미지 블록의 x개 제어점의 후보 모션 정보를 포함하고, 상기 후보 모션 정보 목록은 상기 저장 유닛에 저장되고, x는 2보다 크거나 같은 정수이다. 상기 제2 처리 유닛은, 상기 제1 처리 유닛이 상기 현재 이미지 블록의 모든 이웃하는 이미지 블록을 순회한 후, 모션 정보 세트로 선택될 적어도 2개의 여분을 미리 설정된 제2 순서로 순차적으로 순회하도록, 그리고 상기 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값과 같거나 모션 정보 세트로 선택될 모든 여분이 순회될 때까지 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분을 상기 후보 모션 정보 목록에 저장하도록 구성되며, 여기서, 상기 모션 정보 세트로 선택될 여분은 상기 현재 이미지 블록의 적어도 2개의 제어점의 모션 정보로 선택될 여분을 포함하고, 상기 제어점의 모션 정보로 선택될 여분은 상기 현재 이미지 블록에 인접한 인터-코딩된 이미지 블록의 모션 정보이다. 상기 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 모든 제어점의 참조 프레임 인덱스는 동일하거나; 또는 상기 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 모든 제어점의 참조 프레임 인덱스는 동일하고 상기 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 적어도 2개의 제어점의 모션 벡터로 선택될 여분은 상이하다. 상기 채움 유닛은, 상기 제2 처리 유닛이 모션 정보 세트로 선택될 모든 여분을 순회한 후 상기 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 수량 값보다 작으면, 상기 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 수량 값과 같을 때까지 상기 후보 모션 정보 목록을 미리 설정된 제3 후보 모션 정보 세트로 채우도록 구성된다.
선택사항으로서, 본 출원의 가능한 구현예에서, 상기 모션 정보 세트로 선택될 여분은 적어도 제1 제어점의 모션 정보로 선택될 여분 및 제2 제어점의 모션 정보로 선택될 여분을 포함하되, 여기서 상기 제1 제어점 및 상기 제2 제어점은 상기 현재 이미지 블록의 이웃하는 제어점이다.
본 출원에서 상기 제8 측면 또는 이의 가능한 구현예 중 어느 하나의 구체적인 설명에 대해, 상기 제3 측면 또는 이의 가능한 구현예 중 어느 하나의 상세한 설명을 참조한다. 그리고, 상기 제8 측면 또는 이의 가능한 구현예 중 어느 하나의 유익한 효과에 대해, 상기 제3 측면 또는 이의 가능한 구현예 중 어느 하나의 유익한 효과의 분석을 참조한다. 세부 사항은 여기서 다시 설명하지 않는다.
제9 측면에 따르면, 인터 예측 장치가 제공된다. 상기 인터 예측 장치는 획득 유닛 및 결정 유닛을 포함한다.
구체적으로, 상기 획득 유닛은 비트스트림을 획득 및 파싱하여, 제1 인덱스 값 및 모션 정보 차이를 획득하도록 구성되며, 여기서, 상기 제1 인덱스 값은 후보 모션 정보 목록에서 현재 이미지 블록의 제어점의 모션 정보 예측자의 인덱스 값이고, 상기 후보 모션 정보 목록은 상기 제6 측면, 상기 제7 측면, 상기 제8 측면, 또는 이의 가능한 구현예 중 어느 하나에서의 구성 장치에 의해 상기 제1 측면, 상기 제2 측면, 상기 제3 측면, 또는 이의 가능한 구현예 중 어느 하나에서의 구성 방법을 사용하여 생성된다. 상기 획득 유닛은 상기 제1 인덱스 값에 기초하여 상기 후보 모션 정보 목록으로부터 상기 제어점의 모션 정보 예측자를 획득하도록 추가적으로 구성된다. 상기 결정 유닛은 상기 제어점의 모션 정보를 상기 제어점의 모션 정보 예측자 및 상기 획득 유닛에 의해 획득되는 모션 정보 차이에 기초하여 결정하도록 구성된다. 상기 결정 유닛은 상기 현재 이미지 블록의 예측 픽셀을 상기 제어점의 모션 정보에 기초하여 결정하도록 추가적으로 구성된다.
본 출원에서 상기 제9 측면의 구체적인 설명에 대해, 상기 제4 측면의 상세한 설명을 참조한다. 그리고, 상기 제9 측면의 유익한 효과에 대해, 상기 제4 측면의 유익한 효과에 대한 분석을 참조한다. 세부 사항은 여기서 다시 설명하지 않는다.
제10 측면에 따르면, 인터 예측 장치가 제공된다. 상기 인터 예측 장치는 획득 유닛 및 결정 유닛을 포함한다.
상기 획득 유닛은 비트스트림을 획득 및 파싱하여, 제2 인덱스 값을 획득하도록 구성되며, 여기서, 상기 제2 인덱스 값은 후보 모션 정보 목록에서 현재 이미지 블록의 제어점의 모션 정보의 인덱스 값이고, 상기 후보 모션 정보 목록은 상기 제6 측면, 상기 제7 측면, 상기 제8 측면, 또는 이의 가능한 구현예 중 어느 하나에서의 구성 장치에 의해 상기 제1 측면, 상기 제2 측면, 상기 제3 측면, 또는 이의 가능한 구현예 중 어느 하나에서의 구성 방법을 사용하여 생성된다. 상기 획득 유닛은 상기 제2 인덱스 값에 기초하여 상기 후보 모션 정보 목록으로부터 상기 제어점의 모션 정보를 획득하도록 추가적으로 구성된다. 상기 결정 유닛은 상기 현재 이미지 블록의 예측 픽셀을 상기 획득 유닛에 의해 획득되는 제어점의 모션 정보에 기초하여 결정하도록 추가적으로 구성된다.
본 출원에서 상기 제10 측면의 구체적인 설명에 대해, 상기 제5 측면의 상세한 설명을 참조한다. 그리고, 상기 제10 측면의 유익한 효과에 대해, 상기 제5 측면의 유익한 효과에 대한 분석을 참조한다. 세부 사항은 여기서 다시 설명하지 않는다.
제11 측면에 따르면, 단말이 제공된다. 상기 단말은 하나 이상의 프로세서, 메모리, 및 통신 인터페이스를 포함한다. 상기 메모리 및 상기 통신 인터페이스는 상기 하나 이상의 프로세서에 연결된다. 상기 메모리는 컴퓨터 프로그램 코드를 저장하도록 구성된다. 상기 컴퓨터 프로그램 코드는 명령을 포함한다. 상기 하나 이상의 프로세서가 상기 명령을 수행하는 경우, 상기 단말은 상기 제1 측면, 상기 제2 측면, 상기 제3 측면, 또는 이의 가능한 구현예 중 어느 하나에서의 후보 모션 정보 목록을 구성하기 위한 방법을 수행하거나, 상기 제4 측면, 상기 제5 측면, 또는 이의 가능한 구현예 중 어느 하나에서 인터 예측 방법을 수행한다.
제12 측면에 따르면, 비휘발성 저장 매체 및 중앙 처리 장치를 포함하여 비디오 디코더가 제공된다. 상기 비휘발성 저장 매체는 실행가능한 프로그램을 저장한다. 상기 중앙 처리 장치는 상기 비휘발성 저장 매체에 연결되고, 상기 제1 측면, 상기 제2 측면, 상기 제3 측면, 또는 이의 가능한 구현예 중 어느 하나에서의 후보 모션 정보 목록을 구성하기 위한 방법을 수행하거나, 상기 제4 측면, 상기 제5 측면, 또는 이의 가능한 구현예 중 어느 하나에서의 인터 예측 방법을 수행한다.
제13 측면에 따르면, 디코더가 제공된다. 상기 디코더는, 상기 제6 측면, 상기 제7 측면, 상기 제8 측면, 또는 이의 가능한 구현예 중 어느 하나에서의 후보 모션 정보 목록을 구성하기 위한 장치, 상기 제9 측면, 상기 제10 측면, 또는 이의 가능한 구현예 중 어느 하나에서의 인터 예측 장치, 및 재구성 모듈을 포함한다. 상기 재구성 모듈은 현재 이미지 블록의 재구성된 픽셀 값을 상기 인터 예측 장치에 의해 획득되는 예측 픽셀에 기초하여 결정하도록 구성된다.
제14 측면에 따르면, 컴퓨터-판독 가능한 저장 매체가 제공된다. 상기 컴퓨터-판독 가능한 저장 매체는 명령을 저장한다. 상기 명령이 상기 제11 측면에서의 단말 상에서 실행되는 경우, 상기 단말은 상기 제1 측면, 상기 제2 측면, 상기 제3 측면, 또는 이의 가능한 구현예 중 어느 하나에서의 후보 모션 정보 목록을 구성하기 위한 방법을 수행할 수 있게 되거나, 상기 제4 측면, 상기 제5 측면, 또는 이의 가능한 구현예 중 어느 하나에서 인터 예측 방법을 수행할 수 있게 된다.
제15 측면에 따르면, 명령을 포함하는 컴퓨터 프로그램 제품이 제공된다. 상기 컴퓨터 프로그램 제품이 상기 제11 측면에서의 상기 단말 상에서 실행되는 경우, 상기 단말은 상기 제1 측면, 상기 제2 측면, 상기 제3 측면, 또는 이의 가능한 구현예 중 어느 하나에서의 후보 모션 정보 목록을 구성하기 위한 방법을 수행할 수 있게 되거나, 상기 제4 측면, 상기 제5 측면, 또는 이의 가능한 구현예 중 어느 하나에서 인터 예측 방법을 수행할 수 있게 된다.
본 출원에서, 상기 후보 모션 정보 목록을 구성하기 위한 장치 및 상기 인터 예측 장치의 이름은 디바이스 또는 기능 모듈에 제한을 가하지 않는다. 실제의 구현예에서, 상기 디바이스 또는 상기 기능 모듈은 다른 이름을 가질 수 있다. 디바이스 또는 기능 모듈의 기능이 본 출원에서의 기능과 유사하다면, 그 디바이스 또는 기능 모듈은 본 출원 및 그와 동등한 기술의 청구 범위 내에 속한다.
본 출원에서 상기 제11 측면 내지 제15 측면 및 이의 가능한 구현예의 구체적인 설명에 대해, 상기 제1 측면, 상기 제2 측면, 상기 제3 측면, 상기 제4 측면, 상기 제5 측면, 또는 이의 가능한 구현예 중 어느 하나의 상세한 설명을 참조한다. 그리고, 상기 제11 측면 내지 상기 제15 측면 및 이의 가능한 구현예의 유익한 효과에 대해, 상기 제1 측면, 상기 제2 측면, 상기 제3 측면, 상기 제4 측면, 상기 제5 측면, 또는 이의 가능한 구현예 중 어느 하나의 유익한 효과에 대한 분석을 참조한다. 세부 사항은 여기서 다시 설명하지 않는다.
본 출원의 이러한 측면 또는 다른 측면은 다음 설명에서 더 간결하고 이해하기 쉽다.
도 1은 본 출원의 실시예에 따른 상속된 제어점 모션 벡터 예측 방법의 원리를 보여주는 다이어그램이다.
도 2는 본 출원의 실시예에 따른 구성된 제어점 모션 벡터 예측 방법의 원리를 보여주는 다이어그램이다.
도 3은 본 출원의 실시예에 따른 비디오 코딩 시스템의 개략적인 구조도이다.
도 4는 본 출원의 실시예에 따른 비디오 인코더의 개략적인 구조도이다.
도 5는 본 출원의 실시예에 따른 비디오 디코더의 개략적인 구조도이다.
도 6은 본 출원의 실시예에 따른 후보 모션 정보 목록을 구성하기 위한 방법의 제1 개략적인 흐름도이다.
도 7은 본 출원의 실시예에 따른 후보 모션 정보 목록을 구성하기 위한 방법의 제2 개략적인 흐름도이다.
도 8은 본 출원의 실시예에 따른 후보 모션 정보 목록을 구성하기 위한 방법의 제3 개략적인 흐름도이다.
도 9는 본 출원의 실시예에 따른 후보 모션 정보 목록을 구성하기 위한 장치의 제1 개략적인 구조도이다.
도 10은 본 출원의 실시예에 따른 후보 모션 정보 목록을 구성하기 위한 장치의 제2 개략적인 구조도이다.
도 11은 본 출원의 실시예에 따른 인터 예측 장치의 제1 개략적인 구조도이다.
도 12는 본 출원의 실시예에 따른 인터 예측 장치의 제2 개략적인 구조도이다.
본 출원의 실시예에서, "예" 또는 "예를 들어"라는 단어는 예, 예시, 또는 설명을 제공하는 것을 표현하기 위해 사용된다. 본 출원의 실시예들에서 "예" 또는 "예를 들어"로 기술된 임의의 실시예 또는 설계 방식은 다른 실시예 또는 설계 방식보다 더 바람직하거나 더 많은 이점을 가지는 것으로 설명되어서는 안된다. 정확하게, "예", "예를 들어" 등의 단어 사용은 구체적인 방식으로 관련 개념을 제시하기 위한 것이다.
본 출원의 실시예의 이해를 용이하게 하기 위해, 본 출원의 실시예의 관련 엘리먼트가 여기에서 먼저 설명된다.
이미지 인코딩(image encoding): 비트스트림으로 압축하는 프로세스.
이미지 디코딩(image decoding): 특정 신택스 규칙 및 특정 처리 방법에 따라 비트스트림을 재구성된 이미지로 복원하는 프로세스.
현재, 비디오 이미지 인코딩 프로세스는 다음과 같다: 인코더 측은 먼저 원본 이미지의 프레임을 서로 겹치지 않는 복수의 부분으로 분할하고, 여기서 각각의 부분은 이미지 블록으로 사용될 수 있다. 그 다음, 인코더 측은 각각의 이미지 블록에 대해 예측(prediction), 변환(transform), 및 양자화(quantization)와 같은 작업을 수행하여, 이미지 블록에 대응하는 비트스트림을 획득하며, 여기서, 이미지 블록의 예측 블록을 획득하기 위해 예측이 수행되어, 이미지 블록의 예측 블록과 이미지 블록 사이의 (또는 잔차 또는 잔차 블록으로 지칭되는) 차이만이 인코딩되고 전송되어, 전송 오버헤드를 줄인다. 마지막으로, 인코더 측은 이미지 블록에 대응하는 비트스트림을 디코더 측으로 송신한다.
이에 상응하여, 비트스트림을 수신한 후, 디코더 측은 비디오 디코딩 프로세스를 수행한다. 구체적으로, 디코더 측은 수신된 비트스트림에 예측, 역 양자화, 및 역변환과 같은 작업을 수행하여 (재구성 후의 이미지 블록으로도 지칭되는) 재구성된 이미지 블록을 획득한다. 이 프로세스는 이미지 재구성 프로세스(또는 이미지 리빌딩 프로세스)로 지칭된다. 그 다음, 디코더 측은 원본 이미지의 각각의 이미지 블록의 재구성된 블록을 조립하여 원본 이미지의 재구성된 이미지를 획득하고, 재구성된 이미지를 재생한다.
기존 비디오 이미지 코딩 기술은 인트라 예측 및 인터 예측을 포함한다. 인터 예측은 현재 프레임의 참조 프레임과 현재 프레임 사이의 상관 관계를 이용하여 이미지 블록을 코딩/이미지 블록을 디코딩하여 완성되는 예측이다. 현재 프레임은 하나 이상의 참조 프레임을 가질 수 있다. 구체적으로, 현재 이미지 블록의 참조 프레임의 픽셀에 기초하여 현재 이미지 블록의 예측 이미지 블록이 생성된다.
일반적으로, 현재 이미지 블록의 예측 이미지 블록은 하나의 참조 이미지 블록만에 기초하여 생성될 수도 있고, 현재 이미지 블록의 예측 이미지 블록은 적어도 2개의 참조 이미지 블록에 기초하여 생성될 수도 있다. 현재 이미지 블록의 예측 이미지 블록을 하나의 참조 이미지 블록에 기초하여 생성하는 것은 일방향 예측으로 지칭되고, 현재 이미지 블록의 예측 이미지 블록을 적어도 2개의 참조 이미지 블록에 기초하여 생성하는 것은 양방향 인터 예측으로 지칭된다. 양방향 인터 예측에서 적어도 2개의 참조 이미지 블록은 동일한 참조 프레임 또는 상이한 참조 프레임으로부터일 수 있다. 달리 말하면, 본 출원에서 "방향"은 일반화된 정의이다. 본 출원에서 하나의 방향은 하나의 참조 이미지 블록에 대응한다.
모션 보상(motion compensation, MC)은 참조 이미지 블록을 사용하여 현재 이미지 블록을 예측하는 프로세스이다.
대부분의 코딩 프레임워크에서, 비디오 시퀀스는 일련의 이미지(picture)를 포함하고, 이미지는 적어도 하나의 슬라이스(slice)로 분할되고, 각각의 슬라이스는 이미지 블록(block)으로 추가로 분할된다. 비디오 인코딩/디코딩은 이미지 블록별로 수행된다. 인코딩/디코딩은 이미지의 왼쪽 상단으로부터 시작하여 왼쪽에서 오른쪽으로, 위에서 아래로 행 단위로 수행될 수 있다. 여기서, 이미지 블록은 고효율 비디오 코딩(High Efficiency Video Coding, HEVC) 표준에서 코딩 유닛(coding unit, CU)에 포함된 블록일 수 있다. 예를 들어, 이미지 블록은 CU의 휘도 블록이거나 CU의 채도 블록일 수 있다. 이는 본 출원의 실시예에서 특별히 제한되지 않는다.
본 출원에서, 인코딩되고 있는/디코딩되고 있는 이미지 블록은 현재 이미지 블록(현재 블록)으로 지칭되고, 현재 이미지 블록이 위치한 이미지는 현재 프레임으로 지칭된다.
현재 프레임에서, 현재 이미지 블록의 이웃하는 이미지 블록(예를 들어, 현재 블록의 좌측, 상단, 또는 우측)이 인코딩/디코딩되어 재구성된 이미지가 획득될 수 있다. 이웃하는 이미지 블록은 재구성된 이미지 블록으로 지칭된다. 재구성된 이미지 블록의 재구성된 픽셀 및 코딩 모드와 같은 정보가 사용 가능하다(available).
현재 프레임이 인코딩/디코딩 되기 전에 인코딩된/디코딩된 프레임은 재구성된 프레임으로 지칭된다.
모션 벡터(motion vector, MV)는 인터 예측 프로세스에서 중요한 매개 변수로서, 현재 이미지 블록에 대해 상대적인 인코딩된 이미지 블록의 공간 변위를 표현한다. 일반적으로, 모션 벡터는 모션 검색과 같은 모션 추정(motion estimation, ME) 방법을 사용하여 획득될 수 있다. 예비 인터 예측 기술에서, 인코더 측은 현재 이미지 블록의 모션 벡터를 비트스트림으로 전송하여, 디코더 측이 현재 이미지 블록의 예측 픽셀을 재생성하여 재구성된 블록을 획득한다. 인코딩 효율을 더욱 향상하기 위해, 참조 모션 벡터를 이용하여 모션 벡터를 차등적으로(differentially) 인코딩하는 방법이 제공된다. 구체적으로, 모션 벡터 차이(motion vector difference, MVD)만 인코딩된다.
디코더 측과 인코더 측이 동일한 참조 이미지 블록을 사용할 수 있도록 하려면, 인코더 측이 비트스트림에서 각각의 이미지 블록의 모션 정보를 디코더 측에 전송해야 한다. 인코더 측이 각각의 이미지 블록의 모션 벡터를 직접 인코딩하면, 전송 자원이 많이 소모된다. 공간적으로 이웃하는 이미지 블록의 모션 벡터는 강한 상관 관계가 있기 때문에, 현재 이미지 블록의 모션 벡터는 이웃하는 인코딩된 이미지 블록의 모션 벡터에 기초하여 예측할 수 있다. 예측을 통해 획득되는 모션 벡터는 MVP라고 지칭되고, 현재 이미지 블록의 모션 벡터와 MVP의 차이는 MVD라고 지칭된다.
비디오 코딩 표준 H.264에서, 예측 정확도를 높이기 위해 모션 추정 프로세스에서 다중-참조 프레임 예측이 사용된다. 구체적으로, 복수의 재구성된 프레임을 저장하는 버퍼가 생성되고, 버퍼 내의 모든 재구성된 프레임을 검색하여 모션 보상을 위한 최적의 참조 이미지 블록을 찾아 시간 도메인에서 중복성을 제거한다. 비디오 코딩 표준 H.264에서, 2개의 버퍼가 인터 예측에 사용된다: 참조 프레임 목록 0 (참조 목록 0) 및 참조 프레임 목록 1 (참조 목록 1). 각각의 목록에서 최적의 참조 블록이 위치한 참조 프레임은, 인덱스 값, 즉 ref_idx_l0 및 ref_idx_l1로 마킹된다. 각각의 참조 프레임 목록에서, 참조 이미지 블록의 모션 정보는 참조 프레임 인덱스 값(ref_idx_l0 또는 ref_idx_l1), 후보 모션 정보 목록에서 MVP의 인덱스 값, 및 MVD를 포함한다. 디코더 측은 참조 프레임 인덱스 값, 후보 모션 정보 목록에서 MVP의 인덱스 값, 및 MVD에 기초하여, 선택된 참조 프레임에서 정확한 참조 이미지 블록을 찾을 수 있다.
현재, HEVC 표준에서 자주 사용되는 인터 예측 모드는 고급 모션 벡터 예측 (advanced motion vector prediction, AMVP) 모드와 병합(merge) 모드이다.
AMVP 모드에서, 인코더 측은 현재 이미지 블록에 공간적으로 또는 시간적으로 인접한 인코딩된 이미지 블록의 모션 벡터를 사용하여 후보 모션 정보 목록을 구성하고, 레이트-왜곡 비용에 기초하여 후보 모션 정보 목록에서 최적의 모션 벡터를 현재 이미지 블록의 MVP로 결정한다. 그리고, 인코더 측은 MVP를 중심으로 한 이웃에서 모션 검색을 수행하여 현재 이미지 블록의 모션 벡터를 획득한다. 인코더 측은 후보 모션 정보 목록에서 MVP의 인덱스 값, 참조 프레임 인덱스 값, 및 MVD를 디코더 측으로 전송한다.
병합 모드에서, 인코더 측은 현재 이미지 블록에 공간적으로 또는 시간적으로 인접한 인코딩된 이미지 블록의 모션 벡터를 사용하여 후보 모션 정보 목록을 구성하고, 레이트-왜곡 비용에 기초하여 후보 모션 정보 목록에서 최적의 모션 벡터를 현재 이미지 블록의 MV로 결정한다. 인코더 측은 후보 모션 정보 목록에서 최적의 모션 벡터의 위치의 인덱스 값을 디코더 측으로 전송한다.
기존 비디오 코딩 표준에서, 병진 모션 모델-기반 모션 보상 기술이 사용되며, 이미지 블록에 있는 모든 샘플의 모션이 일관된다고 가정한다. 그러나, 현실 세계에서는, 회전하는 물체, 상이한 방향으로 회전하는 롤러 코스터, 불꽃 놀이, 영화의 일부 스턴트와 같은 많은 물체가 병진 모션이 아니다. 이러한 움직이는 물체에 대해 기존 코딩 표준의 병진 모션 모델-기반 모션 보상 기술을 사용하면 코딩 효율성에 큰 영향을 미친다. 따라서, 비-병진 모션 모델에 대한 연구가 업계에서 수행되었다.
비-병진 모션 모델 예측 모드에서, 인코더/디코더 측은 동일한 모션 모델을 이용하여 현재 이미지 블록의 모든 서브블록의 모션 정보를 도출하고, 예측 이미지 블록을 획득하기 위해 모든 서브블록의 모션 정보에 기초하여 모션 보상을 수행한다. 이는 예측 효율을 향상시킨다. 인코더/디코더 측에서 자주 사용하는 모션 모델은 4-파라미터 아핀 모션 모델 또는 6-파라미터 아핀 모션 모델이다.
예를 들어, 4-파라미터 아핀 모션 모델은 현재 이미지 블록의 왼쪽 상단 모서리에 있는 픽셀에 대해 상대적인 2개의 샘플의 좌표 및 2개의 샘플의 모션 벡터를 사용하여 표현될 수 있다. 여기서, 모션 모델 파라미터를 표현하기 위해 사용되는 샘플은 제어점으로 지칭된다. 현재 이미지 블록의 왼쪽 상단 모서리(0, 0)에 있는 샘플 및 현재 이미지 블록의 오른쪽 상단 모서리(W, 0)에 있는 샘플이 제어점이고, 현재 이미지 블록의 왼쪽 상단 모서리 및 오른쪽 상단 모서리의 모션 벡터가 각각 (vx0, vy0) 및 (vx1, vy11)인 경우, 현재 이미지 블록의 각각의 서브블록의 모션 정보는 다음 공식 (1)에 따라 획득된다. 다음 공식 (1)에서, (x, y)는 현재 이미지 블록의 왼쪽 상단 모서리에 있는 픽셀에 대해 상대적인 서브블록의 좌표이고, (vx, vy)는 서브블록의 모션 벡터이고, W는 현재 이미지 블록의 폭이다.
(1)
예를 들어, 6-파라미터 아핀 모션 모델은 현재 이미지 블록의 왼쪽 상단 모서리에 있는 픽셀에 대해 상대적인 3개의 샘플의 좌표 및 3개의 샘플의 모션 벡터를 사용하여 표현될 수 있다. 현재 이미지 블록의 왼쪽 상단 모서리(0, 0)에 있는 샘플, 현재 이미지 블록의 오른쪽 상단 모서리(W, 0)에 있는 샘플, 및 현재 이미지 블록의 왼쪽 하단 모서리(0, H)에 있는 샘플이 제어점이고, 현재 이미지 블록의 왼쪽 상단 모서리, 오른쪽 상단 모서리, 및 왼쪽 하단 모서리의 모션 벡터가 각각 (vx0, vy0), (vx1, vy1), 및 (vx2, vy2)인 경우, 현재 이미지 블록의 각각의 서브블록의 모션 정보는 다음 공식 (2)에 따라 획득된다. 다음 공식 (2)에서, (x, y)는 현재 이미지 블록의 왼쪽 상단 모서리에 있는 픽셀에 대해 상대적인 서브블록의 좌표이고, (vx, vy)는 서브블록의 모션 벡터이고, W 및 H는 각각 현재 이미지 블록의 폭 및 높이이다.
(2)
설명의 편의상, 본 출원의 실시예에서, 비-병진 모션 모델 예측 모드를 이용하여 예측되는 이미지 블록은 아핀 코딩 블록으로 지칭된다. 물론, 이러한 유형의 이미지 블록은 다른 이름을 사용하여 표시될 수도 있다. 이는 본 출원의 실시예에서 특별히 제한되지 않는다.
전술한 비-병진 모션 모델 예측 모드에 대한 설명으로부터, 예측 프로세스에서 아핀 코딩 블록의 제어점의 모션 정보를 획득해야 함을 알 수 있다.
일반적으로, 인코더/디코더 측은 아핀 고급 모션 벡터 예측 모드(Affine AMVP mode) 또는 아핀 병합 모드(Affine Merge mode)를 사용하여 제어점의 모션 정보를 획득할 수 있다.
인코더/디코더 측이 아핀 AMVP 모드를 사용하여 현재 이미지 블록의 제어점 모션 정보를 획득하는 프로세스는 다음과 같다.
단계 1: 인코더/디코더 측은 제어점 후보 모션 정보 목록을 구성한다.
인코더/디코더 측은 상속된 제어점 모션 벡터 예측 방법(아래 설명 참조) 및/또는 구성된 제어점 모션 벡터 예측 방법(아래 설명 참조)을 사용하여 후보 모션 정보 목록을 구성한다.
후보 모션 정보 목록는 복수의 후보 모션 정보 세트를 포함하고, 각각의 후보 모션 정보 세트는 2개의 (4-파라미터 아핀 모델) 또는 3개의 (6-파라미터 아핀 모델) 제어점의 모션 벡터를 포함할 수 있다.
선택사항으로서, 인코더/디코더 측은 후보 모션 정보 목록을 미리 설정된 규칙에 따라 정리(prune) 및 소팅하고, 특정 수량(이후 미리 설정된 수량 값에 대응)의 후보 모션 정보 세트를 획득하기 위해 후보 모션 정보 목록을 자르거나 채울 수 있다.
단계 2: 인코더/디코더 측은 최적의 후보 모션 정보 세트를 결정하고, 최적의 후보 모션 정보를 제어점의 모션 정보 예측자로 사용한다.
인코더 측은 후보 모션 정보 목록의 각각의 후보 모션 정보 세트를 사용하여, 현재 이미지 블록의 각각의 서브블록의 모션 벡터를 전술한 공식 (1)/(2)에 따라 획득하고, 각각의 서브블록의 모션 벡터가 가리키는 참조 프레임 내의 대응하는 위치의 픽셀 값을 획득하고, 픽셀 값을 서브블록의 픽셀 예측자로 사용하여 아핀 변환 모션 보상을 수행한다. 인코더 측은 현재 이미지 블록 내의 모든 샘플의 예측자와 원래의 값 사이의 차이의 평균 값을 계산하고, 최소 평균 값에 대응하는 후보 모션 정보 세트를 최적의 후보 모션 정보 세트로서 선택한다. 인코더 측은 후보 모션 정보 목록 내의 최적의 후보 모션 정보 세트의 인덱스 번호를 디코더 측으로 송신한다.
디코더 측은 인덱스 번호를 파싱하고, 후보 모션 정보 목록에서 제어점의 모션 정보 예측자(control point motion vector predictor, CPMVP)를 인덱스 번호에 기초하여 결정한다.
단계 3: 인코더/디코더 측은 제어점의 모션 벡터를 결정한다.
인코더 측은 제어점의 모션 정보 예측자(제어점의 모션 벡터 예측자로 지칭됨)의 모션 벡터를 검색 시작점으로 사용하여 특정 범위 내에서 모션 검색을 수행하여 제어점의 모션 벡터(control point motion vector, CPMV)를 획득하고, 제어점의 모션 벡터와 제어점의 모션 벡터 예측자 사이의 차이(control point motion vectors differences, CPMVD)를 디코더 측으로 전송한다.
디코더 측은 제어점의 모션 벡터 차이를 파싱하고, 제어점의 모션 벡터 차이와 제어점의 모션 벡터 예측자를 더하여 제어점의 모션 벡터를 획득한다.
인코더/디코더 측이 아핀 병합 모드를 사용하여 현재 이미지 블록의 제어점의 모션 벡터를 획득하는 프로세스는 다음과 같다:
단계 I: 인코더/디코더 측은 제어점 후보 모션 정보 목록을 구성한다.
인코더/디코더 측은 상속된 제어점 모션 벡터 예측 방법 및/또는 구성된 제어점 모션 벡터 예측 방법을 사용하여 제어점 후보 모션 정보 목록을 구성한다.
선택사항으로서, 인코더/디코더 측은 제어점 후보 모션 정보 목록을 미리 설정된 규칙에 따라 정리 및 소팅하고, 특정 수량(이후 미리 설정된 수량 값에 대응)의 후보 모션 정보 세트를 획득하기 위해 제어점 후보 모션 정보 목록을 자르거나 채울 수 있다.
단계 II: 인코더/디코더 측은 제어점의 모션 정보를 결정한다.
인코더 측은 후보 모션 정보 목록의 각각의 후보 모션 정보 세트를 사용하여, 현재 이미지 블록의 각각의 서브블록의 모션 정보를 전술한 공식 (1)/(2)에 따라 획득하고, 각각의 서브블록의 모션 정보가 가리키는 참조 프레임 내의 위치의 픽셀 값을 획득하고, 픽셀 값을 서브블록의 픽셀 예측자로 사용하여 아핀 모션 보상을 수행한다. 인코더 측은 현재 코딩 블록 내의 모든 샘플의 예측자와 현재의 값 사이의 차이의 평균 값을 계산하고, 최소 평균 값에 대응하는 후보 모션 정보 세트를 현재 이미지 블록의 제어점의 모션 정보로서 선택한다. 인코더 측은 후보 모션 정보 목록 내의 제어점의 모션 정보의 인덱스 값를 디코더 측으로 송신한다.
디코더 측은 비트스트림을 파싱하여 후보 모션 정보 목록에서 제어점의 모션 정보의 인덱스 값을 획득하고, 후보 모션 정보 목록에서 제어점의 모션 정보를 인덱스 값에 기초하여 결정한다.
전술한 설명으로부터, 인코더/디코더 측은 상속된 제어점 모션 벡터 예측 방법(inherited control point motion vectors) 및/또는 구성된 제어점 모션 벡터 예측 방법(constructed control point motion vectors)을 사용하여 후보 모션 정보 목록을 구성할 수 있음을 알 수 있다. 다음은 상속된 제어점 모션 벡터 예측 방법 및 구성된 제어점 모션 벡터 예측 방법을 별도로 설명한다.
상속된 제어점 모션 벡터 예측 방법에서, 인코더/디코더 측은 현재 이미지 블록에 공간적으로 인접한 인코딩된 아핀 코딩 블록의 모션 모델을 사용하여 현재 이미지 블록의 제어점의 모션 벡터를 도출한다.
예를 들어, 도 1에 도시된 바와 같이, 이미지 블록(B2), 이미지 블록(B1), 이미지 블록(B0), 이미지 블록(A1), 및 이미지 블록(A0)이 현재 이미지 블록에 공간적으로 인접하면, 인코더/디코더 측은 현재 이미지 블록의 공간적으로 이웃하는 이미지 블록을 미리 설정된 순서로, 예를 들어, 이미지 블록(A1), 이미지 블록(B1), 이미지 블록(B0), 이미지 블록(A0), 그 다음 이미지 블록(B2)의 순서로 순회(순차적으로 검사)하여, 공간적으로 이웃하는 이미지 블록에서 아핀 코딩 블록을 결정하고, 아핀 코딩 블록의 제어점의 모션 벡터를 획득하고, 그리고 아핀 코딩 블록에 대해 사용되는 모션 모델에 기초하여 현재 이미지 블록의 제어점의 모션 벡터 또는 현재 이미지 블록의 제어점의 모션 벡터 예측자를 도출한다.
이해의 편의를 위해, 도 1을 참조로, 이미지 블록(A1)이 아핀 코딩 블록인 예를 이용하여 상속된 제어점 모션 벡터 예측 방법을 설명한다. 도 1에 도시된 바와 같이, 현재 이미지 블록의 왼쪽 상단 모서리(x0, y0)에 있는 샘플 및 현재 이미지 블록의 오른쪽 상단 모서리(x1, y1)에 있는 샘플이 제어점이면, 현재 이미지 블록의 왼쪽 상단 모서리 및 오른쪽 상단 모서리의 모션 벡터는 각각 (vx0, vy0) 및 (vx1, vy1)이다.
이미지 블록(A1)이 4-파라미터 아핀 코딩 블록이면, 이미지 블록(A1)의 왼쪽 상단 모서리(x4, y4)에 있는 샘플 및 이미지 블록(A1)의 오른쪽 상단 모서리(x5, y5)에 있는 샘플이 제어점이고, 이미지 블록(A1)의 왼쪽 상단 모서리 및 오른쪽 상단 모서리의 모션 벡터는 각각 (vx4, vy4) 및 (vx5, vy5)이다. 인코더/디코더 측은 현재 이미지 블록의 왼쪽 상단 모서리의 모션 벡터를 다음 공식 (3)에 따라 계산하고, 현재 이미지 블록의 오른쪽 상단 모서리의 모션 벡터를 다음 공식 (4)에 따라 계산한다. 달리 말하면, 현재 이미지 블록의 제어점의 모션 벡터는 4-파라미터 아핀 모션 모델에 기초하여 계산된다.
(3)
(4)
현재 이미지 블록의 왼쪽 상단 모서리(x0, y0)에 있는 샘플, 현재 이미지 블록의 오른쪽 상단 모서리(x1, y1)에 있는 샘플, 및 현재 이미지 블록의 왼쪽 하단 모서리(x2, y2)에 있는 샘플이 제어점이면, 현재 이미지 블록의 왼쪽 상단 모서리, 오른쪽 상단 모서리, 및 왼쪽 하단 모서리의 모션 벡터는 각각 (vx0, vy0), (vx1, vy1), 및 (vx2, vy2)이다.
이미지 블록(A1)이 6-파라미터 아핀 코딩 블록이면, 이미지 블록(A1)의 왼쪽 상단 모서리(x4, y4)에 있는 샘플, 이미지 블록(A1)의 오른쪽 상단 모서리(x5, y5)에 있는 샘플, 및 이미지 블록(A1)의 왼쪽 하단 모서리(x6, y6)에 있는 샘플이 제어점이고, 이미지 블록(A1)의 왼쪽 상단 모서리, 오른쪽 상단 모서리, 및 왼쪽 하단 모서리의 모션 벡터는 각각 (vx4, vy4), (vx5, vy5), 및 (vx6, vy6)이다. 인코더/디코더 측은 현재 이미지 블록의 왼쪽 상단 모서리의 모션 벡터를 다음 공식 (5)에 따라 계산하고, 현재 이미지 블록의 오른쪽 상단 모서리의 모션 벡터를 다음 공식 (6)에 따라 계산하고, 현재 이미지 블록의 왼쪽 하단 모서리의 모션 벡터를 다음 공식 (7)에 따라 계산한다. 달리 말하면, 현재 이미지 블록의 제어점의 모션 벡터는 6-파라미터 아핀 모션 모델에 기초하여 계산된다.
(5)
(6)
(7)
물론, 인코더/디코더 측은 4-파라미터 아핀 모션 모델 및 6-파라미터 아핀 모션 모델 이외의 모션 모델을 사용하여 현재 이미지 블록의 제어점의 모션 벡터를 대안적으로 계산할 수 있다.
구성된 제어점 모션 벡터 예측 방법에서, 인코더/디코더 측은 현재 이미지 블록의 제어점에 공간적으로/시간적으로 인접한 인코딩된 이미지 블록의 모션 벡터를 조합하여 현재 이미지 블록의 제어점의 후보 모션 벡터를 획득하며, 인코딩된 공간적으로/시간적으로 이웃하는 이미지 블록이 아핀 코딩 블록인지 여부를 고려할 필요가 없다.
구성된 제어점 모션 벡터 예측 방법은 다음 2가지 방식으로 구현될 수 있다.
제1 구현예로서, 인코더/디코더는, 현재 이미지 블록의 제어점의 후보 모션 벡터로서, 현재 이미지 블록에 공간적으로/시간적으로 인접한 인코딩된 이미지 블록의 모션 벡터를 사용한다. 그 다음, 인코더/디코더 측은 제어점의 후보 모션 벡터로부터 최적의 후보 모션 벡터를 제어점의 모션 벡터로서 선택한다.
예를 들어, 도 2에 도시된 바와 같이, 현재 이미지 블록의 왼쪽 상단 모서리와 오른쪽 상단 모서리는 현재 이미지 블록의 제어점이다. 현재 이미지 블록의 왼쪽 상단 모서리에 인접한 인코딩된 이미지 블록이 이미지 블록(A2), 이미지 블록(B2), 및 이미지 블록(B3)이고, 현재 이미지 블록의 오른쪽 상단 모서리에 인접한 인코딩된 이미지 블록이 이미지 블록(B0) 및 이미지 블록(B1)이면, 인코더/디코더 측은 이미지 블록(A2)의 모션 벡터(vA2), 이미지 블록(B2)의 모션 벡터(vB2), 및 이미지 블록(B3)의 모션 벡터(vB3)를 현재 이미지 블록의 왼쪽 상단 모서리의 후보 모션 벡터로서 사용하고, 이미지 블록(B0)의 모션 벡터(vB0) 및 이미지 블록(B1)의 모션 벡터(vB1)를 현재 이미지 블록의 오른쪽 상단 모서리의 후보 모션 벡터로서 사용한다. 그 다음, 인코더/디코더 측은 현재 이미지 블록의 왼쪽 상단 모서리의 후보 모션 벡터의 각각 및 현재 이미지 블록의 오른쪽 상단 모서리의 후보 모션 벡터의 각각을 조함하여, 2개의 제어점의 후보 모션 벡터 2-튜플 큐(2-tuble queue)를 생성한다: . 그러면, 인코더/디코더 측은 후보 모션 벡터 2-튜플 큐로부터 최적의 후보 모션 벡터를 현재 이미지 블록의 제어점의 모션 벡터로서 선택할 수 있다.
제2 구현예에서, 인코더/디코더 측은 현재 이미지 블록의 각각의 제어점의 모션 벡터로 선택될 여분을 계산한다. 그 다음, 인코더/디코더 측은 비-병진 모션 모델을 사용하여 각각의 제어점의 모션 벡터를 조합하여, 후보 모션 정보 목록을 생성한다. 마지막으로, 인코더/디코더 측은 후보 모션 정보 목록으로부터 최적의 후보 모션 정보를 현재 이미지 블록의 제어점의 모션 정보로 선택한다.
예를 들어, 도 2에 도시된 바와 같이, 본 출원의 실시예에서, CPk (k=1, 2, 3, 4)는 현재 이미지 블록의 k번째 제어점을 표현하는데 사용되고, CP1, CP2, CP3, 및 CP4의 좌표는 각각 (0, 0), (W, 0), (0, H), 및 (W, H)이며, 여기서 W 및 H는 각각 현재 이미지 블록의 폭 및 높이이다. 이미지 블록(A2), 이미지 블록(B2), 이미지 블록(B3), 이미지 블록(B0), 및 이미지 블록(B1)은 모두 현재 이미지 블록에 공간적으로 인접하고, 예측 CP1, CP2, 또는 CP3를 예측하는데 사용될 수 있다. 이미지 블록(T)은 현재 이미지 블록에 시간적으로 인접하며, CP4를 예측하는데 사용될 수 있다.
단계 A: 인코더/디코더 측은 현재 이미지 블록의 각각의 제어점의 모션 벡터로 선택될 여분을 다음 순서로 획득한다.
CP1의 경우, 인코더/디코더 측은 이미지 블록(B2), 이미지 블록(A2), 및 이미지 블록(B3)을 순차적으로 확인한다. 이미지 블록(B2)이 인터 코딩을 통해 획득되는 경우, 인코더/디코더 측은 CP1의 모션 벡터(vcp1)로 선택될 여분으로서 이미지 블록(B2)의 모션 벡터를 사용한다. 이미지 블록(B2)이 인터 코딩을 통해 획득되지 않는 경우, 인코더/디코더 측은 이미지 블록(A2) 및 이미지 블록(B3)을 순차적으로 검출한다. 이미지 블록(B2), 이미지 블록(A2), 및 이미지 블록(B3) 중 어느 것도 인터 코딩을 통해 획득되지 않는 경우, 인코더/디코더 측은 CP1의 모션 벡터로 선택될 여분을 결정할 수 없다.
CP2의 경우, 인코더/디코더 측은 이미지 블록(B0) 및 이미지 블록(B1)을 순차적으로 쿼리하고, 쿼리 결과에 기초하여 CP2의 모션 벡터(vcp2)로 선택될 여분을 결정한다.
CP3의 경우, 인코더/디코더 측은 이미지 블록(A0) 및 이미지 블록(A1)을 순차적으로 쿼리하고, 쿼리 결과에 기초하여 CP3의 모션 벡터(vcp3)로 선택될 여분을 결정한다.
CP4의 경우, 인코더/디코더 측은 이미지 블록(T)의 모션 벡터를 CP4의 모션 벡터(vcp4)로 선택될 여분으로서 사용한다.
단계 B: 인코더/디코더 측은 전술한 제어점의 모션 벡터로 선택될 여분을 조합하여, 제어점 후보 모션 정보 목록을 생성한다.
구체적으로, 인코더/디코더 측은 임의의 2개의 제어점의 모션 벡터로 선택될 여분을 조합하여, 4-파라미터 아핀 모션 모델을 구성한다. 2개의 제어점의 모션 벡터로 선택될 여분은 다음과 같이 조합될 수 있다: (vcp1, vcp4), (vcp2, vcp3), (vcp1, vcp2), (vcp2, vcp4), (vcp1, vcp3), 및 (vcp3, vcp4). 예를 들어, 본 출원의 실시예에서, vcp1 및 vcp2를 사용하여 구성되는 4-파라미터 아핀 모션 모델은 아핀(vcp1, vcp2)으로 표시된다.
인코더/디코더 측은 임의의 3개의 제어점의 모션 벡터로 선택될 여분을 조합하여, 6-파라미터 아핀 모션 모델을 구성한다. 3개의 제어점의 모션 벡터로 선택될 여분은 다음과 같이 조합될 수 있다: (vcp1, vcp2, vcp4), (vcp1, vcp2, vcp3), (vcp2, vcp3, vcp4), 및 (vcp1, vcp3, vcp4). 예를 들어, 본 출원의 실시예에서, vcp1, vcp2, 및 vcp3를 사용하여 구성되는 6-파라미터 아핀 모션 모델은 아핀(vcp1, vcp2, vcp3)으로 표시된다.
인코더/디코더 측은 전술한 4개의 제어점의 모션 벡터로 선택될 여분을 조합하여, 8-파라미터 아핀 모션 모델을 구성한다. 예를 들어, 본 출원의 실시예에서, vcp1, vcp2, vcp3, 및 vcp4를 사용하여 구성되는 8-파라미터 아핀 모션 모델은 Bilinear(vcp1, vcp2, vcp3, vcp4)로 표시된다.
실제 애플리케이션에서 인코더/디코더 측은 전술한 순서로 순회를 수행한다. 세트에서 모션 벡터로 선택될 여분이 획득될 수 없는 경우, 인코더/디코더 측은 세트를 결정할 수 없다. 그렇지 않으면, 인코더/디코더 측은 세트 내의 모든 제어점의 참조 프레임 인덱스를 결정하고, 세트에서 모션 벡터로 선택될 여분을 다음 공식 (8)에 따라 스케일링한다. 또한, 스케일링 후에 획득되는 모션 벡터로 선택될 모든 여분이 일관되는 경우, 인코더/디코더 측에 의해 획득되는 세트는 유효하지 않다. 그렇지 않으면, 인코더/디코더 측은 세트를 후보 모션 정보 목록에 추가한다.
달리 말하면, 인코더/디코더 측은 각각의 제어점의 모션 벡터로 선택될 여분을 예비적으로 먼저 계산하고, 모션 벡터로 선택될 획득된 여분을 전술한 순서로 조합한다. 세트에서 모션 벡터로 선택될 여분의 참조 프레임 인덱스가 일관되지 않은 경우, 인코더/디코더 측은 세트에서 모션 벡터로 선택될 여분을 스케일링한다. 스케일링 후에 획득되는 모션 벡터로 선택될 여분이 일관되는 경우, 인코더/디코더 측은 세트를 후보 모션 정보 목록.
(8)
공식 (8)에서, CurPoc는 현재 프레임의 시퀀스 번호를 표현하고, DesPoc는 현재 이미지 블록의 참조 프레임의 시퀀스 번호를 표현하고, StrPoc는 제어점의 참조 프레임의 시퀀스 번호를 표현하고, MVs는 스케일링 후에 획득되는 MV를 표현한다.
전술한 상이한 제어점의 모션 벡터로 선택될 여분의 세트는 상호 변환될 수 있음에 유의해야 한다.
예를 들어, 인코더/디코더 측은 다음 공식 (9)에 따라 (vcp1, vcp2)를 (vcp1, vcp2, vcp3)로 변환할 수 있다:
(9)
vcp1는 구체적으로 (vx0, vy0)이고, vcp2는 구체적으로 (vx1, vy1)이고, vcp3는 구체적으로 (vx2, vy2)이다.
인코더/디코더 측은 다음 공식 (10)에 따라 (vcp1, vcp3)를 (vcp1, vcp2, vcp3) 또는 (vcp1, vcp2)로 변환할 수 있다:
(10)
인코더/디코더 측은 다음 공식 (11)에 따라 (vcp2, vcp3)를 (vcp1, vcp2, vcp3) 또는 (vcp1, vcp2)로 변환할 수 있다:
(11)
인코더/디코더 측은 다음 공식 (12) 및 (13)에 따라 (vcp1, vcp4)를 (vcp1, vcp2, vcp3) 또는 (vcp1, vcp2)로 변환할 수 있다:
(12)
(13)
vcp4는 구체적으로 (vx3, vy3)이다.
인코더/디코더 측은 다음 공식 (14) 및 (15)에 따라 (vcp2, vcp4)를 (vcp1, vcp2, vcp3) 또는 (vcp1, vcp2)로 변환할 수 있다:
(14)
(15)
인코더/디코더 측은 다음 공식 (16) 및 (17)에 따라 (vcp3, vcp4)를 (vcp1, vcp2, vcp3) 또는 (vcp1, vcp2)로 변환할 수 있다:
(16)
(17)
인코더/디코더 측은 다음 공식 (18)에 따라 (vcp1, vcp2, vcp4)를 (vcp1, vcp2, vcp3)로 변환할 수 있다:
(18)
인코더/디코더 측은 다음 공식 (19)에 따라 (vcp2, vcp3, vcp4)를 (vcp1, vcp2, vcp3)로 변환할 수 있다:
(19)
인코더/디코더 측은 다음 공식 (20)에 따라 (vcp1, vcp3, vcp4)를 (vcp1, vcp2, vcp3)로 변환할 수 있다:
(20)
종래 기술에서, 인코더/디코더 측에 의해 제어점 후보 모션 정보 목록을 구성하는데 사용되는 방법은 일반적으로 다음과 같다. S1: 인코더/디코더 측은 상속된 제어점 모션 벡터 예측 방법을 사용하여 현재 이미지 블록의 복수의 제어점의 후보 모션 정보를 계산하고, 후보 모션 정보를 후보 모션 정보 목록에 추가한다. S2: 인코더/디코더 측은 구성된 제어점 모션 벡터 예측 방법을 사용하여 현재 이미지 블록의 상기 복수의 제어점의 후보 모션 정보를 계산하고, 후보 모션 정보를 후보 모션 정보 목록에 추가한다. S3: 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값보다 작으면, 인코더/디코더 측은, 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값에 도달할 때까지 후보 모션 정보 목록을 미리 설정된 후보 모션 정보 세트로 채운다.
S1 및 S2에서, 새로운 후보 모션 정보 세트를 후보 모션 정보 목록에 매번 추가하기 전에, 인코더/디코더 측은 먼저 동일한 모션 정보 세트가 후보 모션 정보 목록에 이미 존재하는지 여부를 체크한다. 동일한 모션 정보 세트가 후보 모션 정보 목록에 존재하는 경우, 인코더/디코더 측은 새로운 후보 모션 정보 세트를 목록에 추가하지 않는다. 이 프로세스는 후보 모션 정보 목록의 정리로 지칭된다. 후보 모션 정보 목록의 정리는 후보 모션 정보 목록에서 동일한 모션 정보를 방지할 수 있고, 중복된 레이트-왜곡 비용 계산을 피할 수 있다. 그러나, 이 프로세스의 계산 복잡성이 또한 상대적으로 높고, 딜레이가 상대적으로 길다.
그리고, 상속된 제어점 모션 벡터 예측 방법을 사용해 인코더/디코더 측이 제어점의 후보 모션 정보를 계산하는 것은 매우 복잡하다. 구성된 제어점 모션 벡터 예측 방법을 사용해 제어점의 후보 모션 정보가 계산되는 경우, 모션 정보 세트로 선택될 여분에서 참조 프레임 인덱스가 일관되지 않으면, 인코더/디코더 측은 모션 벡터로 선택될 여분을 추가로 스케일링 해야 한다. 스케일링의 계산 복잡성이 높고, 이는 또한 딜레이를 증가시킨다.
전술한 문제를 해결하기 위해, 본 출원은 후보 모션 정보 목록을 구성하기 위한 방법, 및 대응하는 구성 장치를 제공한다. 방법 또는 구성 장치는, 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 제1 값과 같거나 모든 이웃하는 이미지 블록이 순회될 때까지, 현재 이미지 블록의 모든 이웃하는 이미지 블록에 대해 미리 설정된 제1 순서로 제1 처리 프로세스를 순차적으로 수행한다. 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 제1 값과 같거나 모든 이웃하는 이미지 블록가 순회된 후, 구성 장치는 모션 정보 세트로 선택될 적어도 2개의 여분을 미리 설정된 제2 순서로 순차적으로 순회하고, 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값과 같거나 모션 정보 세트로 선택될 모든 여분이 순회될 때까지, 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분을 후보 모션 정보 목록에 저장한다. 여기서, 미리 설정된 수량 값은 미리 설정된 제1 값보다 크고, 모션 정보 세트로 선택될 여분은 현재 이미지 블록의 적어도 2개의 제어점의 모션 정보로 선택될 여분을 포함하고, 제어점의 모션 정보로 선택될 여분은 현재 이미지 블록에 인접한 인터-코딩된 이미지 블록의 모션 정보이다. 모션 정보 세트로 선택될 모든 여분이 순회된 후 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값보다 작으면, 구성 장치는, 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값과 같을 때까지, 미리 설정된 제1 후보 모션 정보 세트로 후보 모션 정보 목록을 채운다.
대안적으로, 구성 장치는, 제1 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 제1 값과 같거나 모든 이웃하는 이미지 블록이 순회될 때까지, 현재 이미지 블록의 모든 이웃하는 이미지 블록에 대해 미리 설정된 제1 순서로 제1 처리 프로세스를 순차적으로 수행할 수 있다. 그리고, 구성 장치는 추가로, 모션 정보 세트로 선택될 적어도 2개의 여분을 미리 설정된 제2 순서로 순차적으로 순회하고, 제2 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 제2 값과 같거나 모션 정보 세트로 선택될 모든 여분이 순회될 때까지 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분을 제2 후보 모션 정보 목록에 저장한다. 그 다음, 구성 장치는 제1 후보 모션 정보 목록 및 제2 후보 모션 정보 목록을 미리 설정된 규칙에 따라 병합하여, 제3 후보 모션 정보 목록를 획득한다. 제3 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량은 미리 설정된 수량 값과 같다. 미리 설정된 제1 값 및 미리 설정된 제2 값의 합은 미리 설정된 수량 값보다 크거나 같다.
대안적으로, 구성 장치는 현재 이미지 블록의 모든 이웃하는 이미지 블록을 미리 설정된 제1 순서로 순회하여, 적어도 하나의 후보 모션 정보 세트를 포함하는 후보 모션 정보 목록을 생성할 수 있으며, 여기서, 후보 모션 정보 세트는 현재 이미지 블록의 x개 제어점의 후보 모션 정보를 포함하고, x는 2보다 크거나 같은 정수이다. 현재 이미지 블록의 모든 이웃하는 이미지 블록을 순회한 후, 구성 장치는 모션 정보 세트로 선택될 적어도 2개의 여분을 미리 설정된 제2 순서로 순차적으로 순회하고, 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값과 같거나 모션 정보 세트로 선택될 모든 여분이 순회될 때까지, 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분을 후보 모션 정보 목록에 저장한다. 모션 정보 세트로 선택될 모든 여분이 순회된 후 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값보다 작으면, 구성 장치는, 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값과 같을 때까지, 미리 설정된 제3 후보 모션 정보 세트로 후보 모션 정보 목록을 채운다.
구체적으로, 제1 처리 프로세스는 다음과 같다: i번째 (i∈[1, n]) 이웃하는 이미지 블록에 대해, i번째 이웃하는 이미지 블록이 아핀 코딩 블록인 경우, 구성 장치는 후보 모션 정보 목록에 저장된 후보 모션 정보 세트 및 i번째 이웃하는 이미지 블록이 동일한 코딩 유닛으로부터 유래하는지 여부를 판단한다. i번째 이웃하는 이미지 블록이 속하는 코딩 유닛으로부터의 후보 모션 정보 세트가 후보 모션 정보 목록에 존재하지 않는 경우, 구성 장치는 i번째 이웃하는 이미지 블록의 x개 제어점의 모션 정보에 기초하여 현재 이미지 블록의 x개 제어점의 후보 모션 정보를 결정하고, 현재 이미지 블록의 x개 제어점의 후보 모션 정보를 포함하는 후보 모션 정보 세트를 후보 모션 정보 목록에 저장하며, 여기서, n은 현재 이미지 블록의 이웃하는 이미지 블록의 수량이고, x 및 n은 모두 2보다 크거나 같은 정수이다.
모션 정보 세트로 선택될 여분은 현재 이미지 블록의 적어도 2개의 제어점의 모션 정보로 선택될 여분을 포함하고, 제어점의 모션 정보로 선택될 여분은 현재 이미지 블록에 인접한 인터-코딩된 이미지 블록의 모션 정보이다. 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 모든 제어점의 참조 프레임 인덱스는 동일하거나; 또는 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 모든 제어점의 참조 프레임 인덱스는 동일하고 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 적어도 2개의 제어점의 모션 벡터로 선택될 여분은 상이하다.
제1 처리 프로세스 및 모션 정보로 선택될 여분의 처리 프로세스 모두에서, 새로운 후보 모션 정보 세트를 후보 모션 정보 목록에 추가할지 여부는 판단 결과에 기초하여 결정되고, 새로운 후보 모션 정보 세트를 먼저 계산한 후 동일한 모션 정보가 후보 모션 정보 목록에 존재하는지 여부를 판단할 필요가 없다는 것을 알 수 있다. 이는 계산 복잡성 및 딜레이를 효과적으로 감소시킨다.
그리고, 본 출원은 인터 예측 방법을 추가로 제공한다. 인터 예측 장치는 비트스트림을 파싱하여, 인덱스 값(즉, 제1 인덱스 값) 및 모션 정보 차이를 획득하며, 여기서 인덱스 값은 구성 장치에 의해 전술한 구성 방법을 사용하여 생성되는 후보 모션 정보 목록에서 현재 이미지 블록의 제어점의 모션 정보 예측자의 인덱스 값이다. 이러한 방식으로, 인터 예측 장치는 후보 모션 정보 목록로부터 제어점의 모션 정보 예측자를 제1 인덱스 값에 기초하여 획득하고, 제어점의 모션 정보를 제어점의 모션 정보 예측자 및 모션 정보 차이에 기초하여 결정하고, 현재 이미지 블록의 예측 픽셀을 제어점의 모션 정보에 기초하여 결정한다.
대안적으로, 인터 예측 장치는 비트스트림을 파싱하여, 구성 장치에 의해 전술한 구성 방법을 사용하여 생성되는 후보 모션 정보 목록에서 현재 이미지 블록의 제어점의 모션 정보의 인덱스 값(즉, 제2 인덱스 값)을 획득할 수 있다. 이러한 방식으로, 인터 예측 장치는 제2 인덱스 값에 기초하여 후보 모션 정보 목록으로부터 제어점의 모션 정보를 획득하고, 현재 이미지 블록의 예측 픽셀을 제어점의 모션 정보에 기초하여 결정한다.
본 출원에서 제공되는 구성 방법은 계산 복잡성 및 딜레이를 효과적으로 감소시킨다. 따라서, 구성 방법을 사용하여 생성되는 후보 모션 정보 목록에 기초하여 수행되는 인터 예측은 또한 계산 복잡성 및 딜레이를 효과적으로 감소시킨다.
본 출원에서 제공되는 후보 모션 정보 목록을 구성하기 위한 방법은 구성 장치, 비디오 코딩 장치, 비디오 코덱, 또는 비디오 코딩 기능을 가지는 다른 디바이스에 의해 수행될 수 있다. 본 출원에서 제공되는 인터 예측 방법은 인터 예측 장치, 비디오 코딩 장치, 비디오 코덱, 또는 비디오 코딩 기능을 가지는 다른 디바이스에 의해 수행될 수 있다. 구성 장치 및 인터 예측 장치는 동일한 디바이스에 배치될 수 있거나, 독립적으로 배치될 수 있다. 이는 본 출원의 실시예에서 특별히 제한되지 않는다.
본 출원에서 제공되는 후보 모션 정보 목록을 구성하기 위한 방법 및 인터 예측 방법은 비디오 코딩 시스템에 적용 가능하다. 비디오 코딩 시스템에서 비디오 인코더(100) 및 비디오 디코더(200)는, 본 출원에서의 후보 모션 정보 목록을 구성하기 위한 방법의 예에 따라 후보 모션 정보 목록을 생성하도록, 그리고 현재 이미지 블록을 예측하도록 구성된다.
도 3은 비디오 코딩 시스템의 구조를 도시한다. 도 3에 도시된 바와 같이, 비디오 코딩 시스템은 소스 장치(10) 및 데스티네이션 장치(20)를 포함한다. 소스 장치(10)는 인코딩된 비디오 데이터를 생성한다. 소스 장치(10)는 또한 비디오 인코딩 장치 또는 비디오 인코딩 디바이스로 지칭될 수 있다. 데스티네이션 장치(20)는 소스 장치(10)에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수 있다. 데스티네이션 장치(20)는 또한 비디오 디코딩 장치 또는 비디오 디코딩 디바이스로 지칭될 수 있다. 소스 장치(10) 및/또는 데스티네이션 장치(20)는 적어도 하나의 프로세서 및 적어도 하나의 프로세서에 연결되는 메모리를 포함할 수 있다. 메모리는 읽기-전용 메모리(read-only memory, ROM), 랜덤 액세스 메모리(random access memory, RAM), 전기적으로 지울 수 있는 프로그래밍 가능한 읽기-전용 메모리(electrically erasable programmable read-only memory, EEPROM), 플래시 메모리, 또는 요구되는 프로그램 코드를 컴퓨터에 의해 액세스 될 수 있는 데이터 구조 또는 명령의 형태로 저장하도록 구성될 수 있는 임의의 다른 매체를 포함할 수 있으나 이에 제한되지 않는다. 이는 본 출원에서 특별히 제한되지 않는다.
소스 장치(10) 및 데스티네이션 장치(20)는 데스크톱 컴퓨터, 모바일 컴퓨팅 장치, 노트북(예: 랩톱) 컴퓨터, 태블릿 컴퓨터, 셋톱 박스, "스마트"폰과 같은 휴대용 전화기, 텔레비전 세트, 카메라, 디스플레이 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 차량-탑재 컴퓨터 또는 유사한 장치를 포함하는 다양한 장치를 포함할 수 있다.
데스티네이션 장치(20)는 링크(30)를 통해 소스 장치(10)로부터 인코딩된 비디오 데이터를 수신할 수 있다. 링크(30)는 인코딩된 비디오 데이터를 소스 장치(10)에서 데스티네이션 장치(20)로 전송할 수 있는 하나 이상의 매체 및/또는 장치를 포함할 수 있다. 예로서, 링크(30)는 소스 장치(10)가 인코딩된 비디오 데이터를 실시간으로 데스티네이션 장치(20)에 직접 전송할 수 있게 하는 하나 이상의 통신 매체를 포함할 수 있다. 이 예에서, 소스 장치(10)는 통신 표준(예를 들어, 무선 통신 프로토콜)에 따라 인코딩된 비디오 데이터를 변조하고, 변조된 비디오 데이터를 데스티네이션 장치(20)에 전송할 수 있다. 하나 이상의 통신 매체는 무선 및/또는 유선 통신 매체, 예를 들어 무선 주파수(radio frequency, RF) 스펙트럼, 또는 하나 이상의 물리적 전송 케이블을 포함할 수 있다. 하나 이상의 통신 매체는 패킷 기반 네트워크의 일부를 구성할 수 있으며, 패킷 기반 네트워크는 예를 들어 근거리 통신망, 광역 통신망 또는 글로벌 네트워크(예를 들어, 인터넷)일 수 있다. 하나 이상의 통신 매체는 라우터, 스위치, 기지국, 또는 소스 장치(10)로부터 데스티네이션 장치(20)로의 통신을 구현하는 하는 다른 장치를 포함할 수 있다.
다른 일례에서, 인코딩된 비디오 데이터는 출력 인터페이스(140)를 통해 저장 장치(40)로 출력될 수 있다. 유사하게, 인코딩된 비디오 데이터는 저장 장치(40)로부터 입력 인터페이스(240)를 통해 액세스될 수 있다. 저장 장치(40)는 블루-레이 디스크, 고밀도 디지털 비디오 디스크(digital video disc, DVD), 컴팩트 디스크 읽기-전용 메모리(compact disc read-only memory, CD-ROM), 플래시 메모리, 또는 인코딩된 비디오 데이터를 저장하도록 구성되는 다른 적정 디지털 저장 매체와 같은 복수의 로컬 액세스 가능한 데이터 저장 매체를 포함할 수 있다.
다른 일례에서, 저장 장치(40)는 소스 장치(10)에 의해 생성된 인코딩된 비디오 데이터를 저장하는 파일 서버 또는 다른 중간 저장 장치에 대응할 수 있다. 이 예에서, 데스티네이션 장치(20)는 스트리밍 전송 또는 다운로드를 통해 저장 장치(40)로부터 저장된 비디오 데이터를 획득할 수 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 인코딩된 비디오 데이터를 데스티네이션 장치(20)에 전송할 수 있는 임의의 유형의 서버일 수 있다. 예로서, 파일 서버는, 네트워크 서버(예컨대, 웹 사이트에 사용됨), 파일 전송 프로토콜(file transfer protocol, FTP) 서버, 네트워크 연결 저장소(network attached storage, NAS) 장치, 및 로컬 디스크 드라이브를 포함한다.
데스티네이션 장치(20)는 임의의 표준 데이터 연결(예컨대, 인터넷 연결)을 통해 인코딩된 비디오 데이터에 액세스할 수 있다. 데이터 연결의 예시적인 유형은, 파일 서버 또는 그 세트에 저장된 인코딩된 비디오 데이터에 액세스하는데 사용할 수 있는 무선 채널 또는 유선 연결(예컨대, 케이블 모뎀)을 포함한다. 파일 서버로부터의 인코딩된 비디오 데이터의 전송은 스트리밍 전송, 다운로드 전송, 또는 그 세트일 수 있다.
본 출원에서의 후보 모션 정보 목록을 구성하기 위한 방법 및 인터 예측 방법은 무선 애플리케이션 시나리오에 재한되지 않는다. 예를 들어, 본 출원에서의 후보 모션 정보 목록을 구성하기 위한 방법 및 인터 예측 방법은 다음 애플리케이션과 같은 복수의 멀티미디어 애플리케이션을 지원하기 위한 비디오 코딩에 적용될 수 있다: 공중파 텔레비전 방송, 케이블 텔레비전 전송, 위성 텔레비전 전송, (예를 들어, 인터넷을 통한) 스트리밍 비디오 전송, 데이터 저장 매체에 저장된 비디오 데이터의 인코딩, 데이터 저장 매체에 저장된 비디오 데이터의 디코딩, 또는 다른 애플리케이션. 일부 예에서, 비디오 코딩 시스템은 일방향 또는 양방향 비디오 전송을 지원하여, 스트리밍 비디오 전송, 비디오 재생, 비디오 방송, 및/또는 영상통화와 같은 애플리케이션을 지원하도록 구성될 수 있다.
도 3에 도시된 비디오 코딩 시스템은 단지 비디오 코딩 시스템의 예시일 뿐이며, 본 출원에서 비디오 코딩 시스템을 제한하지 않는다는 점에 유의해야 한다. 본 출원에서 제공되는 후보 모션 정보 목록을 구성하기 위한 방법은 인코딩 장치와 디코딩 장치 사이에 데이터 통신이 없느 시나리오에도 또한 적용될 수 있다. 다른 예로서, 인코딩될 비디오 데이터 또는 인코딩된 비디오 데이터는 로컬 메모리로부터 검색될 수 있고, 네트워크 등에서 스트리밍 방식으로 전송될 수 있다. 비디오 인코딩 장치는 인코딩될 비디오 데이터를 인코딩할 수 있고 인코딩된 비디오 데이터를 메모리에 저장할 수 있다. 비디오 디코딩 장치는 또한 인코딩된 비디오 데이터를 메모리로부터 획득할 수 있고 인코딩된 비디오 데이터를 디코딩할 수 있다.
도 3에서, 소스 장치(10)는 비디오 소스(101), 비디오 인코더(102), 및 출력 인터페이스(103)를 포함한다. 일부 예에서, 출력 인터페이스(103)는 변조기/복조기(모뎀) 및/또는 송신기를 포함할 수 있다. 비디오 소스(101)는, 비디오 캡처 장치(예를 들어, 카메라), 이전에 캡처된 비디오 데이터를 포함하는 비디오 아카이브, 비디오 컨텐츠 제공자로부터 비디오 데이터를 수신하기 위한 비디오 입력 인터페이스, 및/또는 비디오 데이터를 생성하기 위한 컴퓨터 그래픽 시스템, 또는 전술한 비디오 데이터 소스의 세트를 포함할 수 있다.
비디오 인코더(102)는 비디오 소스(101)로부터의 비디오 데이터를 인코딩할 수 있다. 일부 예로서, 소스 장치(10)는 인코딩된 비디오 데이터를 출력 인터페이스(103)를 통해 데스티네이션 장치(20)에 직접 전송한다. 다른 예로서, 인코딩된 비디오 데이터는, 대안적으로, 저장 장치(40)에 저장될 수 있어서, 데스티네이션 장치(20)가 디코딩 및/또는 재생을 위해 인코딩된 비디오 데이터에 후속하여 액세스할 수 있다.
도 3의 예에서, 데스티네이션 장치(20)는 디스플레이 장치(201), 비디오 디코더(202), 및 입력 인터페이스(203)를 포함한다. 일부 예에서, 입력 인터페이스(203)는 수신기 및/또는 모뎀을 포함한다. 입력 인터페이스(203)는 링크(30)를 통해 및/또는 저장 장치(40)로부터 인코딩된 비디오 데이터를 수신할 수 있다. 디스플레이 장치(201)는 데스티네이션 장치(20)와 통합되거나 데스티네이션 장치(20) 외부에 위치할 수 있다. 일반적으로 디스플레이 장치(201)는 디코딩된 비디오 데이터를 디스플레이한다. 디스플레이 장치(201)는, 예를 들어, 액정 디스플레이, 플라즈마 디스플레이, 유기 발광 다이오드 디스플레이, 또는 다른 유형의 디스플레이 장치와 같은 복수의 유형의 디스플레이 장치를 포함할 수 있다.
선택사항으로서, 비디오 인코더(102) 및 비디오 디코더(202)는 오디오 인코더 및 오디오 디코더와 각각 통합될 수 있고, 적정 멀티플렉서-디멀티플렉서 유닛 또는 다른 하드웨어 및 소프트웨어를 포함하여, 조합된 데이터 스트림 또는 별개의 데이터 스트림으로 오디오 및 비디오 모두를 인코딩할 수 있다.
비디오 인코더(102) 및 비디오 디코더(202) 각각은, 적어도 하나의 마이크로프로세서, 디지털 신호 처리기(digital signal processor, DSP), 주문형 집적회로(application-specific integrated circuit, ASIC), 필드 프로그래밍 가능한 게이트 어레이(field programmable gate array, FPGA), 이산 로직, 하드웨어, 또는 그 세트를 포함할 수 있다. 본 출원에서 제공되는 후보 모션 정보 목록을 구성하기 위한 방법이 소프트웨어를 사용하여 구현되는 경우, 소프트웨어에 사용되는 명령은 적정 비휘발성 컴퓨터-판독 가능한 저장 매체에 저장될 수 있고, 적어도 하나의 프로세서는 하드웨어에서 명령을 실행하여 본 출원을 구현하는데 사용될 수 있다. 전술한 컨텐츠(하드웨어, 소프트웨어, 하드웨어, 하드웨어 및 소프트웨어의 세트, 등을 포함) 중 어느 하나가 적어도 하나의 프로세서로 간주될 수 있다. 비디오 인코더(102)는 인코더에 포함될 수 있고, 비디오 디코더(202)는 디코더에 포함될 수 있고, 인코더 또는 디코더는 해당 장치에서 결합된 인코더/디코더(코덱)의 일부일 수 있다.
본 출원에서 비디오 인코더(102) 및 비디오 디코더(202)는 비디오 압축 표준(예를 들어, HEVC)에 따라 작업을 수행할 수 있거나, 다른 산업 표준에 따라 작업을 수행할 수 있다. 이는 본 출원에서 특별히 제한되지 않는다.
도 6을 참조한다. 비디오 인코더(102) 및 비디오 디코더(202) 모두는, 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 제1 값과 같거나 모든 이웃하는 이미지 블록이 순회될 때까지 현재 이미지 블록의 모든 이웃하는 이미지 블록에 대해 미리 설정된 제1 순서로 제1 처리 프로세스를 순차적으로 수행하도록(S601); S601 후에는, 모션 정보 세트로 선택될 적어도 2개의 여분을 미리 설정된 제2 순서로 순차적으로 순회하고, 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값과 같거나 모션 정보 세트로 선택될 모든 여분이 순회될 때까지 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분을 후보 모션 정보 목록에 저장하도록(S602); 그리고 모션 정보 세트로 선택될 모든 여분이 순회된 후 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값보다 작으면, 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값과 같을 때까지 후보 모션 정보 목록을 미리 설정된 제1 후보 모션 정보 세트로 채우도록(S603), 구성된다.
도 7을 참조한다. 비디오 인코더(102) 및 비디오 디코더(202)는 대안적으로, 제1 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 제1 값과 같거나 모든 이웃하는 이미지 블록이 순회될 때까지 현재 이미지 블록의 모든 이웃하는 이미지 블록에 대해 미리 설정된 제1 순서로 제1 처리 프로세스를 순차적으로 수행(S701)하도록; 모션 정보 세트로 선택될 적어도 2개의 여분을 미리 설정된 제2 순서로 순차적으로 순회하고, 제2 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 제2 값과 같거나 모션 정보 세트로 선택될 모든 여분이 순회될 때까지 제2 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분을 후보 모션 정보 목록에 저장(S702)하도록; 그리고 제1 후보 모션 정보 목록 및 제2 후보 모션 정보 목록을 미리 설정된 규칙에 따라 병합하여, 제3 후보 모션 정보 목록을 획득(S703)하도록, 구성된다.
도 8을 참조한다. 비디오 인코더(102) 및 비디오 디코더(202)는 대안적으로, 현재 이미지 블록의 모든 이웃하는 이미지 블록을 미리 설정된 제1 순서로 순회하여, 적어도 하나의 후보 모션 정보 세트를 포함하는 후보 모션 정보 목록을 생성(S800)하도록; 현재 이미지 블록의 모든 이웃하는 이미지 블록을 순회한 후, 모션 정보 세트로 선택될 적어도 2개의 여분을 미리 설정된 제2 순서로 순차적으로 순회하고, 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값과 같거나 모션 정보 세트로 선택될 모든 여분이 순회될 때까지 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분을 후보 모션 정보 목록에 저장(S801)하도록; 그리고 모션 정보 세트로 선택될 모든 여분이 순회된 후 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값보다 작으면, 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값과 같을 때까지 후보 모션 정보 목록을 미리 설정된 제3 후보 모션 정보 세트로 채우도록(S802), 구성된다.
그리고, 비디오 인코더(102)는, 후보 모션 정보 목록으로부터 최적의 후보 모션 정보 세트를 현재 이미지 블록의 모션 정보 예측자로서 선택하도록; 현재 이미지 블록의 모션 정보를 결정하고 모션 정보 예측자와 모션 정보 사이의 차이를 계산하도록; 그리고 후보 모션 정보 목록 내의 최적의 후보 모션 정보 세트의 인덱스 값 및 차이 값을 피어 단(peer end)으로 송신하도록, 추가적으로 구성된다.
비디오 디코더(202)는, 비트스트림을 파싱하여, 제1 인덱스 값 및 모션 정보 차이를 획득하도록, 달리 말하면, 후보 모션 정보 목록에서 현재 이미지 블록의 제어점의 모션 정보 예측자의 인덱스 값 및 모션 정보 차이를 결정하도록; 그리고 제어점의 모션 정보 예측자를 획득하고, 제어점의 모션 정보 예측자 및 모션 정보 차이에 기초하여 제어점의 모션 정보를 결정하도록, 추가적으로 구성된다. 이러한 방식으로, 비디오 디코더(202)는 제어점의 모션 정보에 기초하여 현재 이미지 블록의 예측 픽셀을 결정할 수 있다.
선택사항으로서, 비디오 디코더(202)는, 비트스트림을 파싱하여, 제2 인덱스 값을 획득하도록, 달리 말하면, 후보 모션 정보 목록에서 현재 이미지 블록의 제어점의 모션 정보의 인덱스 값을 결정하도록; 그리고 제어점의 모션 정보를 획득하도록, 추가적으로 구성된다. 이러한 방식으로, 비디오 디코더(202)는 제어점의 모션 정보에 기초하여 현재 이미지 블록의 예측 픽셀을 결정할 수 있다.
도 4는 본 출원의 실시예에 따른 비디오 인코더(102)의 개략적인 구조도이다. 도 4에 도시된 바와 같이, 비디오 인코더(102)는 비디오를 후처리 엔티티(41)로 출력하도록 구성된다. 후처리 엔티티(41)는 비디오 인코더(102)로부터의 인코딩된 비디오 데이터를 처리할 수 있는 비디오 엔티티의 예, 예를 들어, MANE(media aware network element;) 또는 스플라이싱(splicing) 장치/편집 장치를 표현한다. 일부 경우에, 후처리 엔티티(41)는 네트워크 엔티티의 예일 수 있다. 일부 비디오 인코딩 시스템에서, 후처리 엔티티(41) 및 비디오 인코더(102)는 개별 장치의 콤포넌트일 수 있다. 다른 경우에, 후처리 엔티티(41)의 기능은 비디오 인코더(102)를 포함하는 동일한 장치에 의해 수행될 수 있다. 예로서, 후처리 엔티티(41)는 도 3의 저장 장치(40)의 예이다.
도 4에 도시된 바와 같이, 비디오 인코더(102)는 변환기(301), 양자화기(302), 엔트로피 인코더(303), 필터(306), 메모리(307), 예측 처리 유닛(308), 및 합산기(312)를 포함한다. 예측 처리 유닛(308)은 인트라 예측자(309) 및 인터 예측자(310)를 포함한다. 이미지 블록을 재구성하기 위해, 비디오 인코더(102)는 역양자화기(304), 역변환기(305), 및 합산기(311)를 추가로 포함한다. 필터(306)는 하나 이상의 루프 필터, 예를 들어, 디블로킹 필터, 적응형 루프 필터, 및 샘플 적응형 오프셋 필터를 나타내는 것으로 지정된다.
메모리(307)는 비디오 인코더(102)의 콤포넌트에 의해 인코딩되는 비디오 데이터를 저장할 수 있다. 메모리(307)에 저장된 비디오 데이터는 비디오 소스(101)로부터 획득될 수 있다. 메모리(307)는 비디오 인코더(102)에 의해 인트라 또는 인터 코딩 모드에서 비디오 데이터를 인코딩하는데 사용되는 참조 비디오 데이터를 저장하는 참조 이미지 메모리일 수 있다. 메모리(307)는 동기 DRAM(synchronous DRAM, SDRAM), 자기저항 RAM(magnetic RAM, MRAM), 저항 RAM(resistive RAM, RRAM), 또는 다른 유형의 메모리 장치를 포함하는 동적 랜덤 액세스 메모리(dynamic RAM, DRAM)일 수 있다.
비디오 인코더(102)는 비디오 데이터를 수신하고 비디오 데이터를 비디오 데이터 메모리에 저장한다. 분할 유닛은 비디오 데이터를 여러 개의 이미지 블록으로 분할하고, 이러한 이미지 블록은 더 작은 블록으로 추가로 분할, 예를 들어, 쿼드트리 구조 또는 2진-트리 구조에 기초하여 분할 수 있다. 분할은 슬라이스(slice), 타일(tile), 또는 다른 더 큰 단위로의 분할을 포함할 수 있다. 비디오 인코더(102)는 일반적으로 인코딩될 비디오 슬라이스에서 이미지 블록을 인코딩하기 위한 콤포넌트이다. 슬라이스는 복수의 이미지 블록으로 분할될 수 있다(그리고 타일로 지칭되는 이미지 블록 세트로 분할될 수 있다).
예측 처리 유닛(308)의 인트라 예측자(309)는, 공간적 중복성을 제거하기 위해, 현재 이미지 블록의 것과 동일한 프레임 또는 슬라이스 내의 하나 이상의 이웃하는 이미지 블록에 대해 상대적인 현재 이미지 블록에 대해 인트라 예측 인코딩을 수행할 수 있다. 예측 처리 유닛(308)의 인터 예측자(310)는 시간적 중복성을 제거하기 위해 하나 이상의 참조 이미지 내의 하나 이상의 예측 이미지 블록에 대해 상대적인 현재 이미지 블록에 대해 인터 예측 인코딩을 수행할 수 있다.
예측 처리 유닛(308)은 획득된 인트라-코딩된 및 인터-코딩된 이미지 블록을 합산기(310)에 제공하여 잔차 블록을 생성할 수 있고, 잔차 블록을 합산기(309)에 제공하여 참조 이미지로서 사용되는 인코딩된 블록을 재구성할 수 있다.
예측 처리 유닛(308)이 인터 예측 및 인트라 예측을 통해 현재 이미지 블록의 예측 이미지 블록을 생성한 후, 비디오 인코더(102)는 인코딩될 현재 이미지 블록으로부터 예측 이미지를 감산하여 잔차 이미지 블록을 생성한다. 합산기(312)는 이러한 빼기 연산을 수행하는 하나 이상의 콤포넌트를 표현한다. 잔차 블록에서 잔차 비디오 데이터는 하나 이상의 변환 유닛(transform unit, TU)에 포함될 수 있고, 변환기(301)에 적용될 수 있다. 변환기(301)는 이산 코사인 변환(discrete cosine transform, DCT) 또는 개념적으로 유사한 변환과 같은 변환을 통해 잔차 비디오 데이터를 잔차 변환 계수로 변환한다. 변환기(301)는 잔차 비디오 데이터를 픽셀 값 도메인으로부터 변환 도메인으로, 예를 들어, 주파수 도메인으로 변환할 수 있다.
변환기(301)는 획득된 변환 계수를 양자화기(302)로 송신할 수 있다. 양자화기(302)는 변환 계수를 양자화하여 비트율을 더욱 감소시킨다. 일부 예에서, 양자화기(302)는 양자화된 변환 계수를 포함하는 매트릭스를 추가로 스캔할 수 있다. 대안적으로, 엔트로피 인코더(303)는 스캐닝을 수행할 수 있다.
양자화 이후, 엔트로피 인코더(303)는 양자화된 변환 계수에 엔트로피 인코딩을 수행한다. 예를 들어, 엔트로피 인코더(303)는 컨텍스트-적응형 가변-길이 코딩(context adaptive variable length coding, CAVLC), 컨텍스트-적응형 2진 산술 코딩(context based adaptive binary arithmetic coding, CABAC), 또는 다른 엔트로피 코딩 방법 또는 기술을 수행할 수 있다. 엔트로피 인코더(303)가 엔트로피 인코딩을 수행한 후, 인코딩된 비트스트림은 비디오 디코더(202)로 전송되거나, 비디오 디코더(202)에 의한 후속 전송 또는 후속 검색을 위해 보관될 수 있다. 엔트로피 인코더(303)는 인코딩될 현재 이미지 블록의 신택스 엘리먼트에 엔트로피 인코딩을 추가로 수행할 수 있다.
역양자화기(304) 및 역변환기(305)는 역 양자화 및 역변환을 각각 수행하여, 예를 들어, 이후에 참조 이미지의 참조 블록으로서 사용될, 픽셀 도메인의 잔차 블록을 재구성한다. 합산기(311)는 재구성된 잔차 블록을 인터 예측자(310) 또는 인트라 예측자(309)에 의해 생성되는 예측 이미지 블록에 축가하여, 재구성된 이미지 블록을 생성할 수 있다. 이미지 블록의 예측 이미지 블록은 이미지 블록의 참조 이미지 블록에 (보간과 같은) 처리를 수행함으로써 획득될 수 있다.
비디오 인코더(102)의 다른 구조적 변형이 비디오 스트림을 인코딩하기 위해 사용될 수 있다는 것을 이해해야 한다. 예를 들어, 일부 이미지 블록 또는 이미지 프레임에 대해, 비디오 인코더(102)는 잔차 신호를 직접 양자화할 수 있고, 이에 따라 변환기(301) 및 역 변환기(305)에 의한 처리가 요구되지 않는다. 대안적으로, 일부 이미지 블록 또는 이미지 프레임에 대해, 비디오 인코더(102)는 잔차 데이터를 생성하지 않고, 따라서, 변환기(301), 양자화기(302), 역양자화기(304), 및 역변환기(305)에 의한 처리가 요구되지 않는다. 대안적으로, 비디오 인코더(102)는, 필터(306)에 의한 처리 없이, 재구성된 이미지 블록을 참조 블록으로서 직접 저장할 수 있다. 대안적으로, 비디오 인코더(102)에서 양자화기(302) 및 역양자화기(304)는 결합될 수 있다.
도 5는 본 출원의 실시예에 따른 비디오 디코더(202)의 개략적인 구조도이다. 도 5에 도시된 바와 같이, 비디오 디코더(202)는 엔트로피 디코더(401), 역양자화기(402), 역변환기(403), 필터(404), 메모리(405), 예측 처리 유닛(406), 및 합산기(409)를 포함한다. 예측 처리 유닛(406)은 인트라 예측자(407) 및 인터 예측자(408)를 포함한다. 일부 예에서, 비디오 디코더(202)는 도 4에서 비디오 인코더(102)에 의해 수행되는 인코딩 프로세스에 대략 역인 디코딩 프로세스를 수행할 수 있다.
디코딩 프로세스에서, 비디오 디코더(202)는 비트스트림을 비디오 인코더(102)로부터 수신한다. 비디오 디코더(202)는 네트워크 엔티티(42)로부터 비디오 데이터를 수신할 수 있고, 선택사항으로, 비디오 데이터를 비디오 데이터 메모리(도면에는 도시되지 않음)에 추가로 저장할 수 있다. 비디오 데이터 메모리는 비디오 디코더(202)의 콤포넌트에 의해 디코딩될 비디오 데이터, 예를 들어, 인코딩된 비트스트림을 저장할 수 있다. 비디오 데이터 메모리에 저장된 비디오 데이터는, 예를 들어, 저장 장치(40) 또는 카메라와 같은 로컬 비디오 소스로부터, 비디오 데이터의 유선 또는 무선 네트워크 통신을 통해, 또는 물리적 데이터 저장 매체에 액세스 함으로써, 획득될 수 있다. 비디오 데이터 메모리는 도 5에 도시되지 않았으나, 비디오 데이터 메모리 및 메모리(405)는 동일한 메모리이거나, 별개로 배치된 메모리일 수 있다. 비디오 데이터 메모리 및 메모리(405) 각각은, 예를 들어, 동기 DRAM (SDRAM)을 포함하는 동적 랜덤 액세스 메모리(DRAM), 자기저항 RAM(MRAM), 저항 RAM(RRAM), 또는 다른 유형의 메모리 장치와 같은 복수의 유형의 메모리 장치 중 어느 하나에 의해 구성될 수 있다. 다양한 예들에서, 비디오 데이터 메모리는 비디오 디코더(202)의 다른 콤포넌트와 함께 칩으로 통합될 수 있거나, 이러한 콤포넌트에 대해 상대적으로 칩 외부에 배치될 수 있다.
네트워크 엔티티(42)는, 예를 들어, 서버, MANE, 비디오 편집기/스플라이서(editor/splicer), 또는 전술한 기술의 하나 이상을 구현하도록 구성되는 다른 장치일 수 있다. 네트워크 엔티티(42)는 비디오 인코더, 예를 들어, 비디오 인코더(102)를 포함할 수도 포함하지 않을 수도 있다. 네트워크 엔티티(42)가 비트스트림을 비디오 디코더(202)로 송신하기 전에, 네트워크 엔티티(42)는 본 출원에서 설명되는 기술의 일부를 구현할 수 있다. 일부 비디오 디코딩 시스템에서, 네트워크 엔티티(42) 및 비디오 디코더(202)는 개별 장치의 콤포넌트일 수 있다. 다른 경우에, 네트워크 엔티티(42)의 기능은 비디오 디코더(202)를 포함하는 동일한 장치에 의해 수행될 수 있다. 일부 경우에, 네트워크 엔티티(42)는 도 3의 저장 장치(40)의 예일 수 있다.
비디오 디코더(202)의 엔트로피 디코더(401)는 비트스트림에 엔트로피 디코딩을 수행하여 양자화된 계수 및 일부 신택스 엘리먼트를 생성한다. 엔트로피 디코더(401)는 신택스 엘리먼트를 필터(404)에 전달한다. 비디오 디코더(202)는 비디오 슬라이스 레벨 및/또는 이미지 블록 레벨에서 신택스 엘리먼트들/신택스 엘리먼트를 수신할 수 있다.
역양자화기(402)는, 비트스트림에 제공되고 엔트로피 디코더(401)에 의해 디코딩된 양자화된 변환 계수에 역 양자화를 수행, 즉, 역 양자화한다. 역 양자화 프로세스는, 비디오 인코더(102)에 의해 비디오 슬라이스의 각각의 이미지 블록에 대해 계산되는 양자화 파라미터를 사용하여, 적용될 양자화 정도를 결정하는 단계, 그리고 적용될 역 양자화 정도를 유사하게 결정하는 단계를 포함한다. 역변환기(403)는, 역변환, 예를 들어, 역 DCT, 역 정수 변환, 또는 개념적으로 유사한 역변환 프로세스를, 변환 계수에 적용하여, 픽셀-도메인 잔차 블록을 생성한다.
예측 처리 유닛(406)이 현재 이미지 블록에 대한 예측 이미지 블록 또는 현재 이미지 블록의 서브블록을 생성한 후, 비디오 디코더(202)는, 역변환기(403)로부터의 잔차 블록 및 예측 처리 유닛(406)에 의해 생성된 해당 예측 이미지 블록을 합산하여, 재구성된 블록, 즉, 디코딩된 이미지 블록을 획득한다. (재구성기(409)로도 또한 지칭되는) 합산기(409)는 이 합산 연산을 수행하는 콤포넌트를 표현한다. 필요한 경우, (디코딩 루프 내 또는 이후) 필터가 추가로 사용되어 픽셀을 평활화(smoothen)하거나, 비디오 품질을 다른 방식으로 향상할 수 있다. 필터(404)는 하나 이상의 루프 필터, 예를 들어, 디블로킹 필터, 적응형 루프 필터(adaptive loop filter; ALF), 및 샘플 적응형 오프셋(sample adaptive offset; SAO) 필터일 수 있다.
비디오 디코더(202)의 다른 구조적 변형이 비트스트림을 디코딩하는데 사용될 수 있다는 것을 이해해야 한다. 예를 들어, 일부 이미지 블록 또는 이미지 프레임에 대해, 비디오 디코더(202)의 엔트로피 디코더(401)는 양자화된 계수를 디코딩을 통해 획득하지 않고, 이에 따라 역양자화기(402) 및 역변환기(403)에 의한 처리가 요구되지 않는다. 예를 들어, 비디오 디코더(202)에서 역양자화기(402) 및 역변환기(403)는 결합될 수 있다.
도 3에 도시된 비디오 코딩 시스템, 도 4에 도시된 비디오 인코더(102), 및 도 5에 도시된 비디오 디코더(202)에 기초하여, 다음은 본 출원에서 제공되는 후보 모션 정보 목록을 구성하기 위한 방법 및 인터 예측 방법을 상세히 설명한다.
도 6은 본 출원의 실시예에 따른 후보 모션 정보 목록을 구성하기 위한 방법의 개략적인 흐름도이다. 도 6에 도시된 방법은 구성 장치에 의해 수행된다. 구성 장치는 도 3의 비디오 디코더(202) 또는 비디오 인코더(102)일 수 있다.
도 6에 도시된 바와 같이, 본 출원의 이 실시예에서의 후보 모션 정보 목록을 구성하기 위한 방법은 다음 단계들을 포함할 수 있다.
S601: 구성 장치는, 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 제1 값과 같거나 모든 이웃하는 이미지 블록이 순회될 때까지, 현재 이미지 블록의 모든 이웃하는 이미지 블록에 대해 미리 설정된 제1 순서로 제1 처리 프로세스를 순차적으로 수행한다.
제1 처리 프로세스는 다음과 같다: i번째 이웃하는 이미지 블록에 대해, i번째 이웃하는 이미지 블록이 아핀 코딩 블록인 경우, 구성 장치는 후보 모션 정보 목록에 저장된 후보 모션 정보 세트 및 i번째 이웃하는 이미지 블록이 동일한 코딩 유닛으로부터 유래하는지 여부를 판단한다. i번째 이웃하는 이미지 블록이 속하는 코딩 유닛으로부터의 후보 모션 정보 세트가 후보 모션 정보 목록에 존재하지 않는 경우, 구성 장치는 i번째 이웃하는 이미지 블록의 x개 제어점의 모션 정보에 기초하여 현재 이미지 블록의 x개 제어점의 후보 모션 정보를 결정하고, 현재 이미지 블록의 x개 제어점의 후보 모션 정보를 포함하는 후보 모션 정보 세트를 후보 모션 정보 목록에 저장하며, 여기서, i∈[1, n]이고, n은 현재 이미지 블록의 이웃하는 이미지 블록의 수량이고, x 및 n은 모두 2보다 크거나 같은 정수이다.
선택사항으로서, 후보 모션 정보 목록에 저장된 후보 모션 정보 세트 및 i번째 이웃하는 이미지 블록이 동일한 코딩 유닛으로부터 유래하는지 여부를 판단하기 위해 구성 장치에 의해 사용되는 방법은 다음과 같다: 구성 장치는 i번째 이웃하는 이미지 블록이 속하는 코딩 유닛의 왼쪽 상단 모서리의 정보가 타깃 코딩 유닛의 왼쪽 상단 모서리의 정보와 동일한지 여부를 판단하며, 여기서, 타깃 코딩 유닛은 후보 모션 정보 목록에 저장된 후보 모션 정보 세트를 계산하는데 사용되는 이웃하는 이미지 블록이 속하는 코딩 유닛이다. 여기서, 왼쪽 상단 모서리의 정보는 왼쪽 상단 모서리의 위치 정보일 수 있다.
예를 들어, 이미지 블록(A0) 및 이미지 블록(B1)이 현재 이미지 블록에 인접한 경우, 이미지 블록(B1)이 속하는 코딩 유닛은 CU 2이고, CU 2의 왼쪽 상단 모서리의 좌표는 (x0, y0)이고, 이미지 블록(A0)이 속하는 코딩 유닛은 CU 1이고, CU 1의 좌측 상단 모서리의 좌표는 (x1, y0)이다. 이 경우에 후보 모션 정보 목록이 비어 있으면, 구성 장치는 이미지 블록(B1)의 제어점의 모션 정보에 기초하여 현재 이미지 블록의 제어점의 후보 모션 정보를 결정하고, 후보 모션 정보를 후보 모션 정보 목록에 저장한다. 이 경우에 후보 모션 정보 목록이 비어 있지 않고, 이미지 블록(A0)의 제어점의 모션 정보에 기초하여 결정되는 후보 모션 정보를 포함하면, 구성 장치는 x1≠x0||y1≠y0 이 만족되는지 여부를 판단한다. 구성 장치가 x1≠x0||y1≠y0 라고 판단하는 경우, 구성 장치는 이미지 블록(B1)의 제어점의 모션 정보에 기초하여 현재 이미지 블록의 제어점의 후보 모션 정보를 결정하고, 후보 모션 정보를 후보 모션 정보 목록에 저장한다. 그렇지 않으면, 구성 장치는 다음의 이웃하는 이미지 블록을 순회한다.
선택사항으로서, 구성 장치는 타깃 코딩 유닛의 왼쪽 상단 모서리의 좌표를 저장하는데 사용되는 좌표 목록을 생성할 수 있다. 이러한 방식으로, 구성 장치는 i번째 이웃하는 이미지 블록이 속하는 코딩 유닛의 왼쪽 상단 모서리의 정보가 좌표 목록에 존재하는지 여부를 직접 결정한다. 구성 장치는 대안적으로 타깃 코딩 유닛의 왼쪽 상단 모서리의 좌표를 후보 모션 정보 목록에 저장할 수 있다. 이는 본 출원의 이 실시예에서 특별히 제한되지 않는다.
구성 장치는 대안적으로, 다른 방법을 사용하여, 후보 모션 정보 목록에 저장된 후보 모션 정보 세트 및 i번째 이웃하는 이미지 블록이 동일한 코딩 유닛으로부터 유래하는지 여부를 결정할 수 있음에 유의해야 한다. 이는 본 출원의 이 실시예에서 특별히 제한되지 않는다. 예를 들어, 구성 장치는 카운트 값을 각각의 코딩 유닛에 할당하거나, 고유한 ID를 각각의 코딩 유닛에 할당할 수 있다. 이러한 방식으로, 구성 장치는 카운트 값을 비교함으로써 또는 ID에 기초하여 판단을 수행한다.
제1 처리 프로세스는 전술한 상속된 제어점 모션 벡터 예측 방법에 유사하다는 것을 알 수 있다. 차이점은, 제1 처리 프로세스에서, 구성 장치는 후보 모션 정보 목록에 저장된 후보 모션 정보 세트 및 i번째 이웃하는 이미지 블록이 동일한 코딩 유닛으로부터 유래하는지 여부를 판단하여, 현재 이미지 블록의 x개 제어점의 후보 모션 정보를 i번째 이웃하는 이미지 블록의 x개 제어점의 모션 정보에 기초하여 결정할지 여부를 판단하고, 현재 이미지 블록의 x개 제어점의 후보 모션 정보를 포함하는 후보 모션 정보 세트를 후보 모션 정보 목록에 추가로 저장하는 것이다. 새로운 후보 모션 정보를 후보 모션 정보 목록 매번 추가하는 경우, 구성 장치는 새로운 후보 모션 정보가 후보 모션 정보 목록에 존재하는지 여부를 판단할 필요가 없다. 이는 계산 복잡성 및 딜레이를 효과적으로 감소시킨다.
본 출원의 이 실시예에서 미리 설정된 제1 값은 최대 상속된 목록 길이 MaxNumInheritMrgCand일 수 있다. 미리 설정된 제1 값은 미리 설정된 수량 값, 예를 들어, 1, 2, 또는 3보다 작은 정수이다. 미리 설정된 수량 값은 후보 모션 정보의 최대 길이 값이다. 구성 장치는 현재 이미지 블록의 모든 이웃하는 이미지 블록에 대해 미리 설정된 제1 순서로 제1 처리 프로세스를 순차적으로 수행한다. 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 제1 값에 도달하는 경우, 구성 장치는 후보 모션 정보 목록의 생성을 종료하고; 그렇지 않으면, 구성 장치는 다음의 이웃하는 이미지 블록을 순회하는 것을 계속한다.
본 출원의 이 실시예에서, 구성 장치가 제1 처리 프로세스를 이용하여 이웃하는 이미지 블록을 순회하는 횟수는 미리 설정된 제1 값에 의해 제한ㄷㅚㄴ다. 달리 말하면, 상속된 제어점 모션 벡터 예측 방법을 수행하는 횟수가 감소된다. 상속된 제어점 모션 벡터 예측 방법의 계산 복잡성이 상대적으로 높기 때문에, 상속된 제어점 모션 벡터 예측 방법을 수행하는 횟수가 감소되면, 계산 복잡성이 효과적으로 감소된다.
S602: S601를 수행한 후, 구성 장치는 모션 정보 세트로 선택될 적어도 2개의 여분을 미리 설정된 제2 순서로 순차적으로 순회하고, 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값과 같거나 모션 정보 세트로 선택될 모든 여분이 순회될 때까지, 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분을 후보 모션 정보 목록에 저장한다.
미리 설정된 수량 값은 미리 설정된 제1 값보다 크다. 모션 정보 세트로 선택될 여분은 현재 이미지 블록의 적어도 2개의 제어점의 모션 정보로 선택될 여분을 포함하고, 제어점의 모션 정보로 선택될 여분은 현재 이미지 블록에 인접한 인터-코딩된 이미지 블록의 모션 정보이다.
구체적으로, 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 제1 값과 같은 후, 구성 장치는 현재 이미지 블록의 각각의 제어점의 모션 정보로 선택될 여분을 결정하고, 획득된 제어점의 모션 정보로 선택될 여분을 조합하여 모션 정보 세트로 선택될 적어도 2개의 여분을 획득한다.
또한, 구성 장치는 다음 3가지 선택적인 구현예 중 어느 하나를 수행한다.
제1 선택적인 구현예에서, 모션 정보 세트로 선택될 적어도 2개의 여분을 생성하고, 모션 정보 세트로 선택될 적어도 2개의 여분을 순차적으로 순회하고, 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분을 후보 모션 정보 목록에 저장하는데 구성 장치에 의해 사용되는 방법을 위해, 단계 A 및 단계 B의 설명을 참조한다.
제2 선택적인 구현예에서, 모션 정보 세트로 선택될 적어도 2개의 여분이 생성된 후, 구성 장치에 의해, 모션 정보 세트로 선택될 적어도 2개의 여분을 순차적으로 순회하고, 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분을 후보 모션 정보 목록에 저장하는데 사용되는 방법은, 모션 정보 세트로 선택될 각각의 여분에 대해, 모션 정보 세트로 선택될 여분에서 모든 제어점의 참조 프레임 인덱스가 동일한지 여부를 구성 장치가 판단하는 것일 수 있다. 모션 정보 세트로 선택될 여분에서 모든 제어점의 참조 프레임 인덱스가 동일한 경우, 구성 장치는 모션 정보 세트로 선택될 여분을 후보 모션 정보 목록에 저장한다. 구성 장치는 세트에서 제어점의 모션 벡터를 결정하거나 모션 벡터 스케일링을 수행할 필요가 없다. 이는 전술한 단계 A 및 단계 B와 상이하고, 모션 벡터 스케일링으로 인한 상대적으로 높은 계산 복잡성을 피한다. 달리 말하면, 이 시나리오에서, 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 모든 제어점의 참조 프레임 인덱스는 동일하다.
제3 선택적인 구현예에서, 모션 정보 세트로 선택될 적어도 2개의 여분이 생성된 후, 구성 장치에 의해, 모션 정보 세트로 선택될 적어도 2개의 여분을 순차적으로 순회하고, 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분을 후보 모션 정보 목록에 저장하는데 사용되는 방법은, 모션 정보 세트로 선택될 각각의 여분에 대해, 모션 정보 세트로 선택될 여분에서 모든 제어점의 참조 프레임 인덱스가 동일한지 여부를 구성 장치가 판단하는 것일 수 있다. 모션 정보 세트로 선택될 여분에서 모든 제어점의 참조 프레임 인덱스가 동일한 경우, 구성 장치는 모션 정보 세트로 선택될 여분에서 모든 제어점의 모션 벡터로 선택될 여분이 동일한지 여부를 판단한다. 모션 정보 세트로 선택될 여분에서 모든 제어점의 모션 벡터로 선택될 여분이 상이한 경우, 구성 장치는 모션 정보 세트로 선택될 여분을 후보 모션 정보 목록에 저장한다. 구성 장치는 모션 벡터 스케일링을 수행하지 않는다. 이는 전술한 단계 A 및 단계 B와 상이하고, 모션 벡터 스케일링으로 인한 상대적으로 높은 계산 복잡성 을 피한다. 달리 말하면, 이 시나리오에서, 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 모든 제어점의 참조 프레임 인덱스는 동일하고 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 적어도 2개의 제어점의 모션 벡터로 선택될 여분은 상이하다.
선택사항으로서, 구성 장치에 의해 생성되는 모션 정보 세트로 선택될 여분은 적어도 제1 제어점의 모션 정보로 선택될 여분 및 제2 제어점의 모션 정보로 선택될 여분을 더 포함할 수 있으며, 여기서 제1 제어점 및 제2 제어점은 현재 이미지 블록의 이웃하는 제어점이다. 달리 말하면, 본 출원의 이 실시예에서 모션 정보 세트로 선택될 여분은 현재 이미지 블록의 대각(diagonal) 제어점의 모션 정보로 선택될 여분만을 포함할 수 없다.
예를 들어, 전술한 단계 B을 참조로, 본 출원의 구성 장치는 임의의 2개의 제어점의 모션 벡터로 선택될 여분을 조합하여, 4-파라미터 아핀 모션 모델을 구성할 수 있다. 2개의 제어점의 모션 벡터로 선택될 여분은 다음과 같이 조합될 수 있다: (vcp1, vcp2), (vcp2, vcp4), (vcp1, vcp3), 및 (vcp3, vcp4). 예를 들어, 본 출원의 이 실시예에서, vcp1 및 vcp2를 사용하여 구성되는 4-파라미터 아핀 모션 모델은 아핀(vcp1, vcp2)으로 표시될 수 있다.
구성 장치는 임의의 3개의 제어점의 모션 벡터로 선택될 여분을 조합하여, 6-파라미터 아핀 모션 모델을 구성할 수 있다. 3개의 제어점의 모션 벡터로 선택될 여분은 다음과 같이 조합될 수 있다: (vcp1, vcp2, vcp4), (vcp1, vcp2, vcp3), (vcp2, vcp3, vcp4), 및 (vcp1, vcp3, vcp4). 예를 들어, 본 출원의 이 실시예에서, vcp1, vcp2, 및 vcp3를 사용하여 구성되는 6-파라미터 아핀 모션 모델은 아핀(vcp1, vcp2, vcp3)으로 표시된다.
구성 장치는 전술한 4개의 제어점의 모션 벡터로 선택될 여분을 조합하여, 8-파라미터 아핀 모션 모델을 구성할 수 있다. 예를 들어, 본 출원의 이 실시예에서, vcp1, vcp2, vcp3, 및 vcp4를 사용하여 구성되는 8-파라미터 이중 선형 모델은 Bilinear(vcp1, vcp2, vcp3, vcp4)로 표시된다.
구성 장치는 모션 정보 세트로 선택될 각각의 여분에서 모션 벡터로 선택될 여분 및 참조 프레임 인덱스를 다음 순서로 순차적으로 결정한다: 아핀(vcp1, vcp2, vcp3)→아핀(vcp1, vcp2, vcp4)→아핀(vcp1, vcp3, vcp4)→아핀(vcp2, vcp3, vcp4)→아핀(vcp1, vcp2)→아핀(vcp1, vcp3)→아핀(vcp2, vcp4)→아핀(vcp3, vcp4).
S603: 모션 정보 세트로 선택될 모든 여분이 순회된 후 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값보다 작으면, 구성 장치는, 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값과 같을 때까지, 미리 설정된 제1 후보 모션 정보 세트로 후보 모션 정보 목록을 채운다.
본 출원의 이 실시예에서, 제1 처리 프로세스를 수행하는 횟수가 효과적으로 제한되도록 미리 설정된 제1 값이 설정된다. 이는 계산 복잡성 및 딜레이를 감소시킨다. 또한, 모션 정보 세트로 선택될 여분은 2개의 이웃하는 제어점의 적어도 모션 정보를 포함할 수 있고, 구성 장치는 모션 벡터 스케일링을 더이상 수행하지 않는다. 이는 계산 복잡성 및 딜레이를 더욱 감소시킨다.
도 7은 본 출원의 실시예에 따른 후보 모션 정보 목록을 구성하기 위한 방법의 다른 개략적인 흐름도이다. 도 7에 도시된 방법은 구성 장치에 의해 수행된다. 구성 장치는 도 3의 비디오 디코더(202) 또는 비디오 인코더(102)일 수 있다.
도 7에 도시된 바와 같이, 본 출원의 이 실시예에서의 후보 모션 정보 목록을 구성하기 위한 방법은 다음 단계들을 포함할 수 있다.
S701: 구성 장치는, 제1 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 제1 값과 같거나 모든 이웃하는 이미지 블록이 순회될 때까지, 현재 이미지 블록의 모든 이웃하는 이미지 블록에 대해 미리 설정된 제1 순서로 제1 처리 프로세스를 순차적으로 수행한다.
S701에 대해, 전술한 S601의 설명을 참조한다. 세부 사항은 여기서 다시 설명하지 않는다.
S702: 구성 장치는 모션 정보 세트로 선택될 적어도 2개의 여분을 미리 설정된 제2 순서로 순차적으로 순회하고, 제2 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 제2 값과 같거나 모션 정보 세트로 선택될 모든 여분이 순회될 때까지 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분을 제2 후보 모션 정보 목록에 저장한다.
모션 정보 세트로 선택될 여분은 현재 이미지 블록의 적어도 2개의 제어점의 모션 정보로 선택될 여분을 포함하고, 제어점의 모션 정보로 선택될 여분은 현재 이미지 블록에 인접한 인터-코딩된 이미지 블록의 모션 정보이다.
미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 모든 제어점의 참조 프레임 인덱스는 동일하다. 대안적으로, 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 모든 제어점의 참조 프레임 인덱스는 동일하고 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분에서 적어도 2개의 제어점의 모션 벡터로 선택될 여분은 상이하다.
S702에 대해, 전술한 S602에서 제2 또는 제3 선택적인 구현예의 설명을 참조한다. 세부 사항은 여기서 다시 설명하지 않는다.
S703: 구성 장치는 제1 후보 모션 정보 목록 및 제2 후보 모션 정보 목록을 미리 설정된 규칙에 따라 병합하여, 제3 후보 모션 정보 목록를 획득한다.
선택사항으로서, 구성 장치는 제1 후보 모션 정보 목록의 (일부) 후보 모션 정보를 제2 후보 모션 정보 목록의 (일부) 후보 모션 정보 앞 또는 뒤에 배치할 수 있다. 이는 본 출원의 이 실시예에서 특별히 제한되지 않는다.
선택사항으로서, 구성 장치는 제1 후보 모션 정보 목록 및 제2 후보 모션 정보 목록을 직접 병합할 수 있다. 대안적으로, 구성 장치는 동일한 후보 모션 정보 세트가 제1 후보 모션 정보 목록 및 제2 후보 모션 정보 목록에 존재하는지 여부를 판단할 수 있다. 동일한 후보 모션 정보 세트가 제1 후보 모션 정보 목록 및 제2 후보 모션 정보 목록에 존재하면, 구성 장치는 반복되는 후보 모션 정보 세트를 삭제한다.
여기에서는, 구성 장치가 제1 후보 모션 정보 목록의 모든 후보 모션 정보를 제2 후보 모션 정보 목록의 모든 후보 모션 정보 앞에 배치하는 예를 사용하여 설명이 제공된다.
구체적으로, 구성 장치는 제1 후보 모션 정보 목록의 모든 후보 모션 정보를 제2 후보 모션 정보 목록의 모든 후보 모션 정보 앞에 배치하여, 타깃 후보 모션 정보 목록을 생성한다. 그 다음, 구성 장치는 타깃 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값보다 작은지 여부를 판단한다. 타깃 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값보다 작으면, 구성 장치는, 타깃 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값과 같을 때까지, 미리 설정된 제2 후보 모션 정보 세트로 타깃 후보 모션 정보 목록을 채운다. 이러한 방식으로, 구성 장치는 채움 후에 획득되는 타깃 후보 모션 정보 목록을 제3 후보 모션 정보 목록으로서 사용한다. 타깃 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값과 같으면, 구성 장치는 타깃 후보 모션 정보 목록을 제3 후보 모션 정보 목록으로서 사용한다. 타깃 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값보다 크면, 구성 장치는 적어도 하나의 후보 모션 정보를 타깃 후보 모션 정보 목록에서 삭제하여, 삭제 후에 획득되는 타깃 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값과 같도록 하고, 삭제 후에 획득되는 타깃 후보 모션 정보 목록을 제3 후보 모션 정보 목록으로서 사용한다.
물론, 전술한 예에 추가로, 미리 설정된 수량 값에 기초하여, 구성 장치는 또한 제1 후보 모션 정보 목록으로부터 A 후보 모션 정보 세트를 선택하고 제2 후보 모션 정보 목록로부터 B 후보 모션 정보 세트를 선택하여, A 후보 모션 정보 세트 및 B 후보 모션 정보 세트를 포함하는 제3 후보 모션 정보 세트 목록을 생성할 수 있다. 여기서, A와 B의 합은 미리 설정된 수량 값과 같다. 본 출원의 이 실시예에서, 제3 후보 모션 정보 목록을 생성하는 방법은 구체적으로 제한되지 않는다.
구성 장치는 S702에 앞서 S701를 수행하거나, S701에 앞서 S702를 수행하거나, 또는 수행 S701 및 S702를 동시에 수행할 수 있음에 유의해야 한다. 이는 본 출원의 이 실시예에서 특별히 제한되지 않는다.
구성 장치는 별도로 제1 후보 모션 정보 목록 및 제2 후보 모션 정보 목록을 구성한 후, 제1 후보 모션 정보 목록 및 제2 후보 모션 정보 목록을 병합한다. 제1 후보 모션 정보 목록 및 제2 후보 모션 정보 목록을 구성하는 프로세스에서, 구성 장치는 제1 후보 모션 정보 목록 및 제2 후보 모션 정보 목록의 길이를 제한한다. 이는 계산 복잡성 및 딜레이를 효과적으로 감소시킨다.
도 8은 본 출원의 실시예에 따른 후보 모션 정보 목록을 구성하기 위한 방법의 다른 개략적인 흐름도이다. 도 8에 도시된 방법은 구성 장치에 의해 수행된다. 구성 장치는 도 3의 비디오 디코더(202) 또는 비디오 인코더(102)일 수 있다.
도 8에 도시된 바와 같이, 본 출원의 이 실시예에서의 후보 모션 정보 목록을 구성하기 위한 방법은 다음 단계들을 포함할 수 있다.
S800: 구성 장치는 현재 이미지 블록의 모든 이웃하는 이미지 블록을 미리 설정된 제1 순서로 순회하여, 적어도 하나의 후보 모션 정보 세트를 포함하는 후보 모션 정보 목록을 생성한다.
현재 이미지 블록의 이웃하는 위치를 순회하는 프로세스에서, 순회되는 이웃하는 위치가 위치하는 이미지 블록이 아핀 코딩 블록인지 여부는 판단될 필요가 없다는 점에 유의해야 한다. 이미지 블록이 아핀 코딩 블록이면, 아핀 코딩 블록이 획득될 수 있다. 그리고, 현재 이미지 블록의 후보 제어점 모션 정보는 아핀 코딩 블록의 제어점의 모션 정보에 기초하여 도출된다. 이웃하는 위치가 위치하는 이미지 블록이 병진 블록(translational block)인 경우, 현재 이미지 블록의 후보 제어점 모션 정보는 병진 블록에 기초하여 도출될 수 없다. 따라서, 단계 S800에서, 이웃하는 위치가 위치하는 이미지 블록이 병진 블록인 경우, 현재 이미지 블록의 다른 이웃하는 위치는, 순회되는 이웃하는 위치가 위치하는 이미지 블록이 아핀 코딩 블록일 때까지 연속적으로 순회되어야 한다.
후보 모션 정보 세트는 현재 이미지 블록의 x개 제어점의 후보 모션 정보를 포함하며, 여기서 x는 2보다 크거나 같다.
S800의 프로세스에 대해, 전술한 상속된 제어점 모션 벡터 예측 방법의 설명 또는 도 1의 설명을 참조한다. 세부 사항은 여기서 다시 설명하지 않는다.
S801: 현재 이미지 블록의 모든 이웃하는 이미지 블록을 순회한 후, 구성 장치는 모션 정보 세트로 선택될 적어도 2개의 여분을 미리 설정된 제2 순서로 순차적으로 순회하고, 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값과 같거나 모션 정보 세트로 선택될 모든 여분이 순회될 때까지, 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분을 후보 모션 정보 목록에 저장한다.
S801에 대해, 전술한 S602에서 제2 또는 제3 선택적인 구현예의 설명을 참조한다. 세부 사항은 여기서 다시 설명하지 않는다.
S802: 모션 정보 세트로 선택될 모든 여분이 순회된 후 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값보다 작으면, 구성 장치는, 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값과 같을 때까지, 미리 설정된 제3 후보 모션 정보 세트로 후보 모션 정보 목록을 채운다.
S802에 대해, 전술한 S603의 설명을 참조한다. 세부 사항은 여기서 다시 설명하지 않는다.
모션 정보 세트로 선택될 여분을 처리하는 경우, 구성 장치는 모션 정보 세트로 선택될 여분에서 모든 제어점의 모션 벡터로 선택될 여분 및 참조 프레임 인덱스만을 결정하고, 결정 결과에 기초하여, 모션 정보 세트로 선택될 여분을 후보 모션 정보 목록에 저장할지 여부를 결정한다. 구성 장치는 모션 벡터 스케일링을 수행할 필요도 없고, 새로운 후보 모션 정보 세트를 먼저 계산한 다음 동일한 모션 정보가 후보 모션 정보 목록에 존재하는지 여부를 판단할 필요도 없다. 이는 계산 복잡성 및 딜레이를 감소시킨다.
그리고, 본 출원의 실시예는 인터 예측 방법을 추가로 제공한다. 구체적으로, 인터 예측 장치는 비트스트림을 획득 및 파싱하여, 제1 인덱스 값 및 모션 정보 차이를 획득하며, 여기서, 제1 인덱스 값은 후보 모션 정보 목록에서 현재 이미지 블록의 제어점의 모션 정보 예측자의 인덱스 값이고, 후보 모션 정보 목록은 전술한 구성 장치에 의해 도 6 내지 도 8 중 어느 하나에서 기술된 구성 방법을 사용하여 생성된다. 인터 예측 장치는 제1 인덱스 값에 기초하여 후보 모션 정보 목록으로부터 제어점의 모션 정보 예측자를 획득한다. 인터 예측 장치 제어점의 모션 정보를 제어점의 모션 정보 예측자 및 모션 정보 차이에 기초하여 결정한다. 인터 예측 장치는 현재 이미지 블록의 예측 픽셀을 제어점의 모션 정보에 기초하여 결정한다.
인터 예측 방법은 본질적으로, 본 출원의 실시예에서 제공되는 구성 방법에 따라 후보 모션 정보 목록을 생성하고, 미리 설정된 아핀 AMVP 모드를 사용하여 후보 모션 정보 목록에 기초하여 디코더 측에 의해 인터 예측을 수행하는 것임을 쉽게 이해할 수 있다.
본 출원의 실시예는 인터 예측 방법을 추가로 제공한다. 구체적으로, 인터 예측 장치는 비트스트림을 획득 및 파싱하여, 제2 인덱스 값를 획득하며, 여기서, 제2 인덱스 값은 후보 모션 정보 목록에서 현재 이미지 블록의 제어점의 모션 정보의 인덱스 값이고, 후보 모션 정보 목록은 전술한 구성 장치에 의해 도 6 내지 도 8 중 어느 하나에서 기술된 구성 방법을 사용하여 생성된다. 인터 예측 장치는 제2 인덱스 값에 기초하어 후보 모션 정보 목록으로부터 제어점의 모션 정보를 획득한다. 인터 예측 장치 현재 이미지 블록의 예측 픽셀을 제어점의 모션 정보에 기초하여 결정한다.
인터 예측 방법은 본질적으로, 본 출원의 실시예에서 제공되는 구성 방법에 따라 후보 모션 정보 목록을 생성하고, 아핀 병합 모드를 사용하여 후보 모션 정보 목록에 기초하여 디코더 측에 의해 인터 예측을 수행하는 것임을 쉽게 이해할 수 있다.
본 출원의 실시예는 후보 모션 정보 목록을 구성하기 위한 장치를 제공한다. 구성 장치는 비디오 디코더, 비디오 인코더, 또는 디코더일 수 있다. 구체적으로, 후보 모션 정보 목록을 구성하기 위한 장치는 후보 모션 정보 목록을 구성하기 위한 전술한 방법에서 구성 장치에 의해 수행되는 단계들을 수행하도록 구성된다. 본 출원의 이 실시예에서 제공되는 구성 장치는 해당 단계에 대응하는 모듈을 포함할 수 있다.
본 출원의 실시예에서, 후보 모션 정보 목록을 구성하기 위한 장치는 전술한 방법 예시에 기초하여 기능 모듈로 분할될 수 있다. 예를 들어, 각각의 기능 모듈이 해당 기능에 기초하여 분할을 통해 획득될 수 있거나, 둘 이상의 기능이 하나의 처리 모듈로 통합될 수 있다. 통합 모듈은 하드웨어의 형태로 구현될 수 있거나, 소프트웨어 기능 모듈의 형태로 구현될 수 있다. 본 출원의 실시예에서, 모듈로의 분할은 예시적이고, 단지 논리적 기능 구분이며, 실제의 구현에서는 다른 분할일 수 있다.
각각의 기능 모듈이 해당 기능에 기초하여 분할을 통해 획득되는 경우, 도 9는 전술한 실시예에서의 후보 모션 정보 목록을 구성하기 위한 장치의 가능한 개략적인 구조도이다. 도 9에 도시된 바와 같이, 후보 모션 정보 목록을 구성하기 위한 장치(9)는 제1 처리 유닛(90), 제2 처리 유닛(91), 채움 유닛(92), 병합 유닛(93), 및 저장 유닛(94)을 포함한다.
제1 처리 유닛(90)은 후보 모션 정보 목록을 구성하기 위한 장치를 지원하여, 전술한 실시예의 S601, S701, S801, 등을 수행하도록 구성되거나, 및/또는 본 명세서에서 설명되는 기술의 다른 프로세스에서 사옹된다.
제2 처리 유닛(91)은 후보 모션 정보 목록을 구성하기 위한 장치를 지원하여, 전술한 실시예의 S602, S702, S802, 등을 수행하도록 구성되거나, 및/또는 본 명세서에서 설명되는 기술의 다른 프로세스에서 사옹된다.
채움 유닛(92)은 후보 모션 정보 목록을 구성하기 위한 장치를 지원하여, 전술한 실시예의 S603, S802, 등을 수행하도록 구성되거나, 및/또는 본 명세서에서 설명되는 기술의 다른 프로세스에서 사옹된다.
병합 유닛(93)은 후보 모션 정보 목록을 구성하기 위한 장치를 지원하여, 전술한 실시예의 S703, 등을 수행하도록 구성되거나, 및/또는 본 명세서에서 설명되는 기술의 다른 프로세스에서 사옹된다.
저장 유닛(94)은 후보 모션 정보 목록을 구성하기 위한 장치의 프로그램 코드 및 데이터를 저장하도록 구성될 수 있고, 후보 모션 정보 목록을 저장하도록 추가적으로 구성될 수 있다.
전술한 방법 실시예의 단계들의 모든 관련 내용은 해당 기능 모듈의 기능 설명에서 인용될 수 있다. 세부 사항은 여기서 다시 설명하지 않는다.
통합 유닛이 사용되는 경우, 도 10은 본 출원의 실시예에서 제공되는 후보 모션 정보 목록을 구성하기 위한 장치의 개략적인 구조도이다. 도 10에서, 후보 모션 정보 목록을 구성하기 위한 장치(10)는 처리 모듈(100) 및 통신 모듈(101)을 포함한다. 처리 모듈(100)은 후보 모션 정보 목록을 구성하기 위한 장치의 동작을 제어하고 관리하도록, 예를 들어, 제1 처리 유닛(90), 제2 처리 유닛(91), 채움 유닛(92), 및 병합 유닛(93)에 의해 수행되는 단계들을 수행하도록 구성되거나, 및/또는 본 명세서에서 설명되는 기술의 다른 프로세스를 수행하도록 구성된다. 통신 모듈(101)은 후보 모션 정보 목록을 구성하기 위한 장치와 다른 디바이스 사이의 상호 작용을 지원하도록 구성된다. 도 10에 도시된 바와 같이, 후보 모션 정보 목록을 구성하기 위한 장치는 저장 모듈(102)을 더 포함할 수 있다. 저장 모듈(102)은, 후보 모션 정보 목록을 구성하기 위한 장치의 프로그램 코드 및 데이터를 저장하도록, 예를 들어, 저장 유닛(94)에 의해 저장되는 컨텐츠를 저장하도록 구성된다.
처리 모듈(100)은 프로세서 또는 제어기일 수 있고, 예를 들어, 중앙 처리 장치(Central Processing unit, CPU), 범용 프로세서, 디지털 신호 처리기(Digital Signal Processor, DSP), ASIC, FPGA 또는 다른 프로그래밍 가능한 논리 디바이스, 트랜지스터 논리 디바이스, 하드웨어 콤포넌트, 또는 이들의 세트일 수 있다. 처리 모듈(100)은 본 출원에서 개시된 내용을 참조로 설명된 다양한 예시적인 논리 블록, 모듈, 및 회로를 구현하거나 실행할 수 있다. 프로세서는 대안적으로 컴퓨팅 기능을 구현하기 위한 세트, 예를 들어, 하나 이상의 마이크로프로세서를 포함하는 세트, 또는 DSP와 마이크로 프로세서의 조합일 수 있다. 통신 모듈(101)은 송수신기, RF 회로, 통신 인터페이스, 등일 수 있다. 저장 모듈(102)은 메모리일 수 있다.
전술한 방법 실시예의 시나리오의 모든 관련 내용은 해당 기능 모듈의 기능 설명에 인용될 수 있다. 세부 사항은 여기서 다시 설명하지 않는다.
후보 모션 정보 목록을 구성하기 위한 장치(9) 및 후보 모션 정보 목록을 구성하기 위한 장치(10) 모두는 도 6 내지 도 8에 도시된 후보 모션 정보 목록을 구성하기 위한 방법을 수행할 수 있다. 후보 모션 정보 목록을 구성하기 위한 장치(9) 및 후보 모션 정보 목록을 구성하기 위한 장치(10) 각각은 구체적으로 비디오 디코딩 장치 또는 비디오 코딩 기능을 가지는 다른 디바이스일 수 있다. 후보 모션 정보 목록을 구성하기 위한 장치(9) 및 후보 모션 정보 목록을 구성하기 위한 장치(10)는 디코딩 프로세스에서 이미지 예측을 수행하도록 구성될 수 있다.
본 출원의 실시예는 인터 예측 장치를 제공한다. 인터 예측 장치는 비디오 디코더, 비디오 인코더, 또는 디코더일 수 있다. 구체적으로, 인터 예측 장치는 전술한 인터 예측 방법에서 인터 예측 장치에 의해 수행되는 단계를 수행하도록 구성된다. 본 출원의 이 실시예에서 제공되는 인터 예측 장치는 해당 단계에 대응하는 모듈을 포함할 수 있다.
본 출원의 실시예에서, 인터 예측 장치는 전술한 방법 예에 기초하여 기능 모듈로 분할될 수 있다. 예를 들어, 각각의 기능 모듈이 해당 기능에 기초하여 분할을 통해 획득될 수 있거나, 둘 이상의 기능이 하나의 처리 모듈로 통합될 수 있다. 통합 모듈은 하드웨어의 형태로 구현될 수 있거나, 소프트웨어 기능 모듈의 형태로 구현될 수 있다. 본 출원의 실시예에서, 모듈로의 분할은 예시적이고, 단지 논리적 기능 구분이며, 실제의 구현에서는 다른 분할일 수 있다.
각각의 기능 모듈이 해당 기능에 기초하여 분할을 통해 획득되는 경우, 도 11은 전술한 실시예에서의 인터 예측 장치의 가능한 개략적인 구조도이다. 도 11에 도시된 바와 같이, 인터 예측 장치(11)는 획득 유닛(110), 결정 유닛(111), 및 저장 유닛(112)을 포함한다.
획득 유닛(110)은 인터 예측 장치를 지원하여, "비트스트림을 획득하고 파싱하여 제1 인덱스 값 및 모션 정보 차이를 획득하는 단계", "제1 인덱스 값에 기초하여 후보 모션 정보 목록으로부터 제어점의 모션 정보 예측자를 획득하는 단계", "비트스트림을 획득하고 파싱하여 제2 인덱스 값을 획득하는 단계", 및 "제2 인덱스 값에 기초하여 후보 모션 정보 목록으로부터 제어점의 모션 정보를 획득하는 단계", 등의 전술한 단계들을 수행하도록 구성되거나, 및/또는 본 명세서에서 설명되는 기술의 다른 프로세스에서 사옹된다.
결정 유닛(111)은 인터 예측 장치를 지원하여, "획득된 제어점의 모션 정보 예측자 및 획득된 모션 정보 차이에 기초하여 제어점의 모션 정보를 결정하는 단계", "제어점의 모션 정보에 기초하여 현재 이미지 블록의 예측 픽셀을 결정하는 단계" 등의 전술한 단계들을 수행하도록 구성되거나, 및/또는 본 명세서에서 설명되는 기술의 다른 프로세스에서 사옹된다.
저장 유닛(112)은 인터 예측 장치의 프로그램 코드 및 데이터를 저장하도록 구성될 수 있다.
전술한 방법 실시예의 단계들의 모든 관련 내용은 해당 기능 모듈의 기능 설명에서 인용될 수 있다. 세부 사항은 여기서 다시 설명하지 않는다.
통합 유닛이 사용되는 경우, 도 12는 본 출원의 실시예에서 제공되는 인터 예측 장치의 개략적인 구조도이다. 도 12에서, 인터 예측 장치(12)는 처리 모듈(120) 및 통신 모듈(121)을 포함한다. 처리 모듈(120)은 인터 예측 장치의 동작을 제어하고 관리하도록, 예를 들어, 획득 유닛(110) 및 결정 유닛(111)에 의해 수행되는 단계들을 수행하도록 구성되거나, 및/또는 본 명세서에서 설명되는 기술의 다른 프로세스를 수행하도록 구성된다. 통신 모듈(121)은 인터 예측 장치와 다른 디바이스 사이의 상호 작용을 지원하도록 구성된다. 도 12에 도시된 바와 같이, 인터 예측 장치는 저장 모듈(122)을 더 포함할 수 있다. 저장 모듈(122)은 인터 예측 장치의 프로그램 코드 및 데이터를 저장하도록, 예를 들어, 저장 유닛(112)에 의해 저장되는 컨텐츠를 저장하도록 구성된다.
처리 모듈(120)은 프로세서 또는 제어기일 수 있고, 예를 들어, CPU, 범용 프로세서, DSP, ASIC, FPGA 또는 다른 프로그래밍 논리 디바이스, 트랜지스터 논리 디바이스, 하드웨어 콤포넌트, 또는 이들의 조합일 수 있다. 처리 모듈(120)은 본 출원에서 개시된 내용을 참조로 설명된 다양한 예시적인 논리 블록, 모듈, 및 회로를 구현하거나 실행할 수 있다. 프로세서는 대안적으로 컴퓨팅 기능을 구현하기 위한 조합, 예를 들어, 하나 이상의 마이크로프로세서를 포함하는 조합, 또는 DSP 및 마이크로프로세서의 조합일 수 있다. 통신 모듈(121)은 송수신기, RF 회로, 통신 인터페이스, 등일 수 있다. 저장 모듈(122)은 메모리일 수 있다.
전술한 방법 실시예의 시나리오의 모든 관련 내용은 해당 기능 모듈의 기능 설명에 인용될 수 있다. 세부 사항은 여기서 다시 설명하지 않는다.
인터 예측 장치(11) 및 인터 예측 장치(12) 모두는 전술한 인터 예측 방법을 수행할 수 있다. 인터 예측 장치(11) 및 인터 예측 장치(12) 각각은 구체적으로 비디오 디코딩 장치 또는 비디오 코딩 기능을 가지는 다른 디바이스일 수 있다. 인터 예측 장치(11) 및 인터 예측 장치(12)는 디코딩 프로세스에서 이미지 예측을 수행하도록 구성될 수 있다.
이 출원은 단말을 추가로 제공한다. 단말은 하나 이상의 프로세서, 메모리, 및 통신 인터페이스를 포함한다. 상기 메모리 및 상기 통신 인터페이스는 상기 하나 이상의 프로세서에 연결된다. 메모리는 컴퓨터 프로그램 코드를 저장하도록 구성된다. 컴퓨터 프로그램 코드는 명령을 포함한다. 하나 이상의 프로세서가 명령을 수행하는 경우, 단말은 본 출원의 실시예에서의 후보 모션 정보 목록을 구성하기 위한 방법 또는 인터 예측 방법을 수행한다.
여기서 단말은 비디오 표시 장치, 스마트폰, 휴대 컴퓨터, 또는 비디오를 처리하거나 재생할 수 있는 다른 디바이스일 수 있다.
이 출원은 비휘발성 저장 매체 및 중앙 처리 장치를 포함하는, 비디오 디코더를 추가로 제공한다. 비휘발성 저장 매체는 실행가능한 프로그램을 저장한다. 중앙 처리 장치는 비휘발성 저장 매체에 연결되고, 실행가능한 프로그램을 실행하여 본 출원의 실시예에서의 후보 모션 정보 목록을 구성하기 위한 방법 및 인터 예측 방법을 수행한다.
이 출원은 디코더을 추가로 제공한다. 디코더는 본 출원의 실시예에서 후보 모션 정보 목록을 구성하기 위한 장치(후보 모션 정보 목록을 구성하기 위한 장치(9) 또는 후보 모션 정보 목록을 구성하기 위한 장치(10)), 본 출원의 실시예에서 인터 예측 장치(인터 예측 장치(11) 또는 인터 예측 장치(12)), 및 재구성 모듈을 포함한다. 재구성 모듈은 현재 이미지 블록의 재구성된 픽셀 값을 인터 예측 장치에 의해 획득되는 예측 픽셀에 기초하여 결정하도록 구성된다.
본 출원의 다른 실시예는 컴퓨터-판독 가능한 저장 매체를 추가로 제공한다. 컴퓨터-판독 가능한 저장 매체는 하나 이상의 프로그램 코드를 포함한다. 하나 이상의 프로그램은 명령을 포함한다. 단말의 프로세서가 프로그램 코드를 실행하는 경우, 단말은 도 6 내지 도 8 중 어느 하나의 후보 모션 정보 목록을 구성하기 위한 방법을 수행하거나 인터 예측 방법을 수행한다.
본 출원의 다른 실시예에서, 컴퓨터 프로그램 제품이 추가로 제공된다. 컴퓨터 프로그램 제품은 컴퓨터-실행 가능한 명령을 포함하고, 컴퓨터-실행 가능한 명령은 컴퓨터-판독 가능한 저장 매체에 저장된다. 단말의 적어도 하나의 프로세서는 컴퓨터-판독 가능한 저장 매체로부터 컴퓨터-실행 가능한 명령을 읽을 수 있다. 적어도 하나의 프로세서는 컴퓨터-실행 가능한 명령을 실행하여, 단말로 하여금 도 6 내지 도 8 중 어느 하나에서의 후보 모션 정보 목록을 구성하기 위한 방법을 수행하게 하거나 인터 예측 방법을 수행하게 한다.
전술한 실시예의 전부 또는 일부는 소프트웨어, 하드웨어, 펌웨어, 또는 이들의 조합을 사용하여 구현될 수 있다. 소프트웨어 프로그램이 실시예를 구현하기 위해 사용되는 경우, 실시예는 완전히 또는 부분적으로 컴퓨터 프로그램 제품의 형태로 구현될 수 있다. 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터 명령을 포함한다. 컴퓨터 프로그램 명령이 로딩되어 컴퓨터에서 실행될 때, 본 출원의 실시예에 따른 절차 또는 기능은 전부 또는 부분적으로 생성된다.
컴퓨터는 범용 컴퓨터, 특수 목적 컴퓨터, 컴퓨터 네트워크, 또는 다른 프로그래밍 가능한 장치일 수 있다. 컴퓨터 명령은 컴퓨터-판독 가능한 저장 매체에 저장되거나 컴퓨터-판독 가능한 저장 매체로부터 다른 컴퓨터-판독 가능 저장 매체로 전송될 수 있다. 예를 들어, 컴퓨터 명령은 웹 사이트, 컴퓨터, 서버, 또는 데이터 센터로부터 다른 웹 사이트, 컴퓨터, 서버, 또는 데이터 센터로, 유선(예컨대, 동축 케이블, 광섬유, 또는 디지털 가입자 회선(DSL)) 또는 무선(예컨대, 적외선, 라디오, 또는 마이크로파) 방식으로 전송될 수 있다. 컴퓨터-판독 가능한 저장 매체는 컴퓨터에 의해 액세스 가능한 임의의 사용 가능한 매체이거나, 하나 이상의 사용 가능한 매체를 통합하는 서버 또는 데이터 센터와 같은 데이터 저장 장치일 수 있다. 사용 가능한 매체는 자기 매체(예를 들어, 플로피 디스크, 하드 디스크, 또는 자기 테이프), 광학 매체(예를 들어, DVD), 반도체 매체(예를 들어, 솔리드 스테이트 드라이브(solid state disk, SSD)), 등일 수 있다.
구현예에 대한 전술한 설명은, 편의상의 및 간략한 설명의 목적상, 전술한 기능 모듈로의 분할이 예시로서 취해진 것임을 통상의 기술자는 명확히 이해할 수 있다. 실제의 응용에서, 전술한 기능이 상이한 기능 모듈로 할당되고 요구 사항에 기초하여 구현될 수 있으며, 즉, 장치의 내부 구조가 상이한 기능 모듈로 구분되어 전술한 기능의 전부 또는 일부를 구현할 수 있다.
본 출원에서 제공되는 여러 실시예에서, 개시된 장치 및 방법은 다른 방식으로 구현될 수 있음을 이해해야 한다. 예를 들어, 설명된 장치 실시예는 단지 예일 뿐이다. 예를 들어, 모듈 또는 유닛으로의 분할은 단지 논리적 기능 분할이며, 실제 구현에서는 다른 분할일 수 있다. 예를 들어, 복수의 유닛 또는 콤포넌트가 결합되거나 다른 장치에 통합될 수 있거나, 일부 특징이 무시되거나 수행되지 않을 수 있다. 그리고, 표시되거나 논의된 상호 결합 또는 직접 결합 또는 통신 연결은 일부 인터페이스를 사용하여 구현될 수 있다. 장치 또는 유닛 사이의 간접 결합 또는 통신 연결은 전기적, 기계적 또는 다른 형태로 구현될 수 있다.
별개의 부분으로 설명된 유닛은 물리적으로 분리되어 있을 수도 있고 그렇지 않을 수도 있으며, 일부 또는 모든 유닛은 실시예의 해결 수단의 목적을 달성하기 위한 실제 요건에 기초하여 선택될 수 있다.
또한, 본 출원의 실시예에서 기능 유닛은 하나의 처리 유닛으로 통합될 수 있거나, 각각의 유닛은 물리적으로 단독으로 존재할 수 있거나, 둘 이상의 유닛이 하나의 유닛으로 통합될 수 있다. 통합 유닛은 하드웨어의 형태로 구현될 수 있거나 소프트웨어 기능 유닛의 형태로 구현될 수 있다.
통합 유닛이 소프트웨어 기능 유닛의 형태로 구현되고 독립적인 제품으로 판매 또는 사용되는 경우, 통합 유닛은 판독 가능한 저장 매체에 저장될 수 있다. 이러한 이해에 기초하여, 본 출원의 실시예의 기술적 해결 수단, 또는 종래 기술에 기여하는 부분, 또는 기술적 해결 수단의 전부 또는 일부는 소프트웨어 제품의 형태로 구현될 수 있다. 소프트웨어 제품은 저장 매체에 저장되고 디바이스(단일-칩 마이크로컴퓨터, 칩 등일 수 있음) 또는 프로세서(processor)가 본 출원의 실시예의 방법의 단계들의 전부 또는 일부를 수행하도록 지시하는 여러 명령을 포함한다. 전술한 저장 매체는, USB 플래시 드라이브, 이동식 하드 디스크, 읽기-전용 메모리(read-only memory, ROM), 랜덤 액세스 메모리(random access memory, RAM), 자기 디스크, 또는 광학 디스크와 같은, 프로그램 코드를 저장할 수 있는 임의의 매체를 포함한다.
전술한 설명은 본 출원의 특정한 구현예일 뿐이며, 본 출원의 보호 범위를 제한하려고 의도되는 것이 아니다. 본 출원에서 개시된 기술적 범위 내의 임의의 변형 또는 대체는 본 출원의 보호 범위에 속한다. 따라서, 본 출원의 보호 범위는 청구 범위의 보호 범위에 따른다.

Claims (12)

  1. 후보 모션 정보 목록을 구성하기 위한 방법으로서,
    적어도 하나의 후보 모션 정보 세트를 포함하는 후보 모션 정보 목록을 생성하는 단계-여기서, 상기 적어도 하나의 후보 모션 정보 세트는 상속된 제어점 모션 벡터 예측 방법을 사용하여 현재 이미지 블록의 이웃하는 아핀 이미지 블록으로부터 획득되고, 상기 후보 모션 정보 세트는 상기 현재 이미지 블록의 x개 제어점의 후보 모션 정보를 포함하고, x는 2보다 크거나 같은 정수임-;
    상기 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값과 같을 때까지, 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분을 상기 후보 모션 정보 목록에 저장하는 단계-여기서, 상기 모션 정보 세트로 선택될 여분은 상기 현재 이미지 블록의 적어도 2개의 제어점의 모션 벡터로 선택될 여분을 포함하고; 상기 제어점의 모션 벡터로 선택될 여분은 상기 현재 이미지 블록에 인접한 인터-코딩된 이미지 블록의 모션 벡터이고; 상기 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분을 상기 후보 모션 정보 목록에 저장하는 단계가, 상기 모션 정보 세트로 선택될 여분 각각에 대해, 상기 모션 정보 세트로 선택될 여분 내의 모든 제어점의 참조 프레임 인덱스가 동일한지의 여부를 판정하는 단계; 및 상기 모션 정보 세트로 선택될 여분 내의 모든 제어점의 참조 프레임 인덱스가 동일할 때, 상기 모션 정보 세트로 선택될 여분을 상기 후보 모션 정보 목록에 저장하는 단계를 포함함 -; 및
    상기 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 수량 값보다 작은 경우, 상기 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 수량 값과 같을 때까지 미리 설정된 제3 후보 모션 정보 세트로 상기 후보 모션 정보 목록을 채우는 단계;를 포함하는, 후보 모션 벡터 목록을 구성하기 위한 방법.
  2. 제1항에 있어서,
    상기 모션 정보 세트로 선택될 여분은 적어도 제1 제어점의 모션 정보로 선택될 여분 및 제2 제어점의 모션 정보로 선택될 여분을 포함하되, 여기서 상기 제1 제어점 및 상기 제2 제어점은 상기 현재 이미지 블록의 이웃하는 제어점인, 후보 모션 벡터 목록을 구성하기 위한 방법.
  3. 제1항에 있어서,
    상기 현재 이미지 블록의 이웃하는 아핀 이미지 블록은 상기 현재 이미지 블록의 좌측 및/또는 상부에서 미리 정해진 위치 또는 미리 정해진 위치들에 위치하는, 후보 모션 벡터 목록을 구성하기 위한 방법.
  4. 제1항에 있어서,
    상기 모션 정보 세트로 선택될 여분은 상기 현재 이미지 블록의 적어도 2개의 제어점의 모션 정보로 선택될 여분을 포함하고, 상기 적어도 2개의 제어점에서 각각의 제어점의 모션 정보로 선택될 여분은 상기 제어점에 인접한 특정 위치에 있는 이미지 블록으로부터 유래하고, 인터 예측 모드는 상기 인접한 특정 위치에 있는 이미지 블록에 대해 사용되는, 후보 모션 벡터 목록을 구성하기 위한 방법.
  5. 인터 예측 방법으로서,
    제1 인덱스 값 및 모션 정보 차이를 획득하기 위해 비트스트림을 획득하고 파싱하는 단계-여기서, 상기 제1 인덱스 값은 후보 모션 정보 목록에서 현재 이미지 블록의 제어점의 모션 정보 예측자의 인덱스 값이고, 상기 후보 모션 정보 목록은 제1항 내지 제4항 중 어느 한 항에 따른 구성 방법을 사용하여 생성됨-;
    상기 제1 인덱스 값에 기초하여 상기 후보 모션 정보 목록으로부터 상기 제어점의 모션 정보 예측자를 획득하는 단계;
    상기 제어점의 모션 정보 예측자 및 상기 모션 정보 차이에 기초하여 상기 제어점의 모션 정보를 결정하는 단계; 및
    상기 제어점의 모션 정보에 기초하여 상기 현재 이미지 블록의 예측 픽셀을 결정하는 단계;를 포함하는, 인터 예측 방법.
  6. 인터 예측 방법으로서,
    제2 인덱스 값을 획득하기 위해 비트스트림을 획득하고 파싱하는 단계-여기서, 상기 제2 인덱스 값은 후보 모션 정보 목록에서 현재 이미지 블록의 제어점의 모션 정보 세트의 인덱스 값이고, 상기 후보 모션 정보 목록은 제1항 내지 제4항 중 어느 한 항에 따른 구성 방법을 사용하여 생성됨-;
    상기 제2 인덱스 값에 기초하여 상기 후보 모션 정보 목록으로부터 상기 제어점의 모션 정보 세트를 획득하는 단계; 및
    상기 제어점의 모션 정보에 기초하여 상기 현재 이미지 블록의 예측 픽셀을 결정하는 단계;를 포함하는, 인터 예측 방법.
  7. 후보 모션 정보 목록을 구성하기 위한 구성 장치로서,
    적어도 하나의 후보 모션 정보 세트를 포함하는 후보 모션 정보 목록을 생성하도록 구성되는 제1 처리 유닛-여기서, 상기 적어도 하나의 후보 모션 정보 세트는 상속된 제어점 모션 벡터 예측 방법을 사용하여 현재 이미지 블록의 이웃하는 아핀 이미지 블록으로부터 획득되고, 상기 후보 모션 정보 세트는 상기 현재 이미지 블록의 x개 제어점의 후보 모션 정보를 포함하고, 상기 후보 모션 정보 목록은 저장 유닛에 저장되고, 그리고 x는 이상 2보다 크거나 같은 정수임-;
    상기 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 미리 설정된 수량 값과 같을 때까지, 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분을 상기 후보 모션 정보 목록에 저장하도록 구성되는 제2 처리 유닛-여기서, 상기 모션 정보 세트로 선택될 여분은 상기 현재 이미지 블록의 적어도 2개의 제어점의 모션 벡터로 선택될 여분을 포함하고; 상기 제어점의 모션 벡터로 선택될 여분은 상기 현재 이미지 블록에 인접한 인터-코딩된 이미지 블록의 모션 벡터이고; 그리고 상기 미리 설정된 조건을 만족하는 모션 정보 세트로 선택될 여분을 상기 후보 모션 정보 목록에 저장하는 것이, 상기 모션 정보 세트로 선택될 여분 각각에 대해, 상기 모션 정보 세트로 선택될 여분 내의 모든 제어점의 참조 프레임 인덱스가 동일한지의 여부를 판정하는 것; 및 상기 모션 정보 세트로 선택될 여분 내의 모든 제어점의 참조 프레임 인덱스가 동일할 때, 상기 모션 정보 세트로 선택될 여분을 상기 후보 모션 정보 목록에 저장하는 것을 포함함-; 및
    상기 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 수량 값보다 작은 경우, 상기 후보 모션 정보 목록 내의 후보 모션 정보 세트의 수량이 상기 미리 설정된 수량 값과 같을 때까지 상기 후보 모션 정보 목록을 미리 설정된 제3 후보 모션 정보 세트로 채도록 구성되는 채움 유닛;을 포함하는, 후보 모션 정보 목록을 구성하기 위한 구성 장치.
  8. 제7항에 있어서,
    상기 모션 정보 세트로 선택될 여분은 적어도 제1 제어점의 모션 정보로 선택될 여분 및 제2 제어점의 모션 정보로 선택될 여분을 포함하되, 여기서 상기 제1 제어점 및 상기 제2 제어점은 상기 현재 이미지 블록의 이웃하는 제어점인, 후보 모션 정보 목록을 구성하기 위한 구성 장치.
  9. 제7항에 있어서,
    상기 현재 이미지 블록의 이웃하는 아핀 이미지 블록은 상기 현재 이미지 블록의 좌측 및/또는 상부에서 미리 정해진 위치 또는 미리 정해진 위치들에 위치하는, 후보 모션 정보 목록을 구성하기 위한 구성 장치.
  10. 제7항에 있어서,
    상기 모션 정보 세트로 선택될 여분은 상기 현재 이미지 블록의 적어도 2개의 제어점의 모션 정보로 선택될 여분을 포함하고, 상기 적어도 2개의 제어점에서 각각의 제어점의 모션 정보로 선택될 여분은 상기 제어점에 인접한 특정 위치에 있는 이미지 블록으로부터 유래하고, 인터 예측 모드는 상기 인접한 특정 위치에 있는 이미지 블록에 대해 사용되는, 후보 모션 정보 목록을 구성하기 위한 구성 장치.
  11. 인터 예측 장치로서,
    비트스트림을 획득하고 파싱하여, 제1 인덱스 값 및 모션 정보 차이를 획득하도록 구성되는 획득 유닛-여기서, 상기 제1 인덱스 값은 후보 모션 정보 목록에서 현재 이미지 블록의 제어점의 모션 정보 예측자의 인덱스 값이고, 상기 후보 모션 정보 목록은 제7항 내지 제10항 중 어느 한 항에 따른 구성 장치에 의해 생성됨-;을 포함하되,
    상기 획득 유닛은 상기 제1 인덱스 값에 기초하여 상기 후보 모션 정보 목록으로부터 상기 제어점의 모션 정보 예측자를 획득하도록 추가적으로 구성되고; 그리고
    상기 제어점의 모션 정보 예측자 및 상기 획득 유닛에 의해 획득되는 모션 정보 차이에 기초하여 상기 제어점의 모션 정보를 결정하도록 구성되는 결정 유닛;을 포함하되,
    상기 결정 유닛은 상기 현재 이미지 블록의 예측 픽셀을 상기 제어점의 모션 정보에 기초하여 결정하도록 추가적으로 구성되는, 인터 예측 장치.
  12. 인터 예측 장치로서,
    비트스트림을 획득 및 파싱하여, 제2 인덱스 값을 획득하도록 구성되는 획득 유닛-여기서, 상기 제2 인덱스 값은 후보 모션 정보 목록에서 현재 이미지 블록의 제어점의 모션 정보의 인덱스 값이고, 상기 후보 모션 정보 목록은 제7항 내지 제10항 중 어느 한 항에 따른 구성 장치에 의해 생성됨-;을 포함하되,
    상기 획득 유닛은 상기 제2 인덱스 값에 기초하여 상기 후보 모션 정보 목록으로부터 상기 제어점의 모션 정보를 획득하도록 추가적으로 구성되고; 그리고
    상기 현재 이미지 블록의 예측 픽셀을 상기 획득 유닛에 의해 획득되는 제어점의 모션 정보에 기초하여 결정하도록 구성되는 결정 유닛;을 포함하는, 인터 예측 장치.
KR1020217008936A 2018-08-28 2019-08-22 후보 모션 정보 목록을 구성하기 위한 방법, 인터 예측 방법, 및 장치 KR102691271B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201810990444.2 2018-08-28
CN201810990444.2A CN110868601B (zh) 2018-08-28 2018-08-28 帧间预测方法、装置以及视频编码器和视频解码器
CN201810997139.6 2018-08-29
CN201810997139.6A CN110876065A (zh) 2018-08-29 2018-08-29 候选运动信息列表的构建方法、帧间预测方法及装置
PCT/CN2019/102026 WO2020043004A1 (zh) 2018-08-28 2019-08-22 候选运动信息列表的构建方法、帧间预测方法及装置

Publications (2)

Publication Number Publication Date
KR20210046767A KR20210046767A (ko) 2021-04-28
KR102691271B1 true KR102691271B1 (ko) 2024-08-05

Family

ID=69643910

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217008936A KR102691271B1 (ko) 2018-08-28 2019-08-22 후보 모션 정보 목록을 구성하기 위한 방법, 인터 예측 방법, 및 장치

Country Status (9)

Country Link
US (2) US11895319B2 (ko)
EP (1) EP3840384A4 (ko)
JP (2) JP7374999B2 (ko)
KR (1) KR102691271B1 (ko)
CN (5) CN112004098B (ko)
BR (1) BR112021003917A2 (ko)
MX (1) MX2021002399A (ko)
SG (1) SG11202102005PA (ko)
WO (2) WO2020043000A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102691271B1 (ko) 2018-08-28 2024-08-05 후아웨이 테크놀러지 컴퍼니 리미티드 후보 모션 정보 목록을 구성하기 위한 방법, 인터 예측 방법, 및 장치

Citations (1)

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

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2487200A (en) * 2011-01-12 2012-07-18 Canon Kk Video encoding and decoding with improved error resilience
US9319716B2 (en) * 2011-01-27 2016-04-19 Qualcomm Incorporated Performing motion vector prediction for video coding
CN104813667B (zh) * 2012-11-15 2018-03-16 联发科技股份有限公司 用于可伸缩视频编码的帧间层预测方法及装置
US9438910B1 (en) * 2014-03-11 2016-09-06 Google Inc. Affine motion prediction in video coding
WO2016008157A1 (en) * 2014-07-18 2016-01-21 Mediatek Singapore Pte. Ltd. Methods for motion compensation using high order motion model
CN107079161B (zh) * 2014-09-01 2020-11-20 寰发股份有限公司 用于屏幕内容以及视频编码的帧内图片块复制的方法
WO2017003063A1 (ko) 2015-06-28 2017-01-05 엘지전자(주) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
CN106331722B (zh) 2015-07-03 2019-04-26 华为技术有限公司 图像预测方法和相关设备
CN104935938B (zh) 2015-07-15 2018-03-30 哈尔滨工业大学 一种混合视频编码标准中帧间预测方法
US10412407B2 (en) * 2015-11-05 2019-09-10 Mediatek Inc. Method and apparatus of inter prediction using average motion vector for video coding
CN108293131B (zh) * 2015-11-20 2021-08-31 联发科技股份有限公司 基于优先级运动矢量预测子推导的方法及装置
US20190158870A1 (en) * 2016-01-07 2019-05-23 Mediatek Inc. Method and apparatus for affine merge mode prediction for video coding system
WO2017147765A1 (en) * 2016-03-01 2017-09-08 Mediatek Inc. Methods for affine motion compensation
KR102715635B1 (ko) * 2016-03-28 2024-10-11 로즈데일 다이나믹스 엘엘씨 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US10560712B2 (en) * 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
CN115914625A (zh) 2016-08-01 2023-04-04 韩国电子通信研究院 图像编码/解码方法
JP7048503B2 (ja) * 2016-09-27 2022-04-05 シャープ株式会社 復号装置、符号化装置、復号方法、および、符号化方法
EP3525460A4 (en) * 2016-10-06 2020-06-17 LG Electronics Inc. -1- METHOD FOR PROCESSING A VIDEO BASED ON AN INTRAPREDICATION MODE AND DEVICE THEREFOR
US10681370B2 (en) * 2016-12-29 2020-06-09 Qualcomm Incorporated Motion vector generation for affine motion model for video coding
WO2018128380A1 (ko) * 2017-01-03 2018-07-12 엘지전자(주) 어파인 예측을 이용하여 비디오 신호를 처리하는 방법 및 장치
CN108271023B (zh) * 2017-01-04 2021-11-19 华为技术有限公司 图像预测方法和相关设备
US11245921B2 (en) * 2017-06-26 2022-02-08 Interdigital Vc Holdings, Inc. Multiple predictor candidates for motion compensation
WO2019027145A1 (ko) * 2017-08-03 2019-02-07 엘지전자 주식회사 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
CN109729352B (zh) * 2017-10-27 2020-07-21 华为技术有限公司 确定仿射编码块的运动矢量的方法和装置
KR102691271B1 (ko) * 2018-08-28 2024-08-05 후아웨이 테크놀러지 컴퍼니 리미티드 후보 모션 정보 목록을 구성하기 위한 방법, 인터 예측 방법, 및 장치

Patent Citations (1)

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

Also Published As

Publication number Publication date
CN111656786B (zh) 2024-04-09
SG11202102005PA (en) 2021-04-29
JP2021535685A (ja) 2021-12-16
WO2020043000A1 (zh) 2020-03-05
EP3840384A4 (en) 2021-12-08
CN111656786A (zh) 2020-09-11
US20240196003A1 (en) 2024-06-13
CN112004098B (zh) 2021-06-29
BR112021003917A2 (pt) 2021-05-18
US20210185351A1 (en) 2021-06-17
CN118175325A (zh) 2024-06-11
EP3840384A1 (en) 2021-06-23
MX2021002399A (es) 2021-07-15
US11895319B2 (en) 2024-02-06
CN118200574A (zh) 2024-06-14
JP2023134524A (ja) 2023-09-27
KR20210046767A (ko) 2021-04-28
CN112055970A (zh) 2020-12-08
JP7374999B2 (ja) 2023-11-07
CN112055970B (zh) 2024-04-09
CN112004098A (zh) 2020-11-27
WO2020043004A1 (zh) 2020-03-05

Similar Documents

Publication Publication Date Title
KR102607443B1 (ko) 비디오 데이터 인터 예측 방법 및 장치
KR102602827B1 (ko) 양방향 인터 예측에 적용되는 참조 프레임 획득 방법 및 장치
JP7520931B2 (ja) 双方向インター予測の方法および装置
WO2020006969A1 (zh) 运动矢量预测方法以及相关装置
US20230239494A1 (en) Video encoder, video decoder, and corresponding method
CN110876065A (zh) 候选运动信息列表的构建方法、帧间预测方法及装置
US20240196003A1 (en) Method for constructing candidate motion information list, inter prediction method, and apparatus
CN110971899B (zh) 一种确定运动信息的方法、帧间预测方法及装置

Legal Events

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