KR20230155621A - 움직임 벡터 예측 방법 및 장치, 인코더, 그리고 디코더 - Google Patents

움직임 벡터 예측 방법 및 장치, 인코더, 그리고 디코더 Download PDF

Info

Publication number
KR20230155621A
KR20230155621A KR1020237038229A KR20237038229A KR20230155621A KR 20230155621 A KR20230155621 A KR 20230155621A KR 1020237038229 A KR1020237038229 A KR 1020237038229A KR 20237038229 A KR20237038229 A KR 20237038229A KR 20230155621 A KR20230155621 A KR 20230155621A
Authority
KR
South Korea
Prior art keywords
motion information
candidate motion
list
block
current block
Prior art date
Application number
KR1020237038229A
Other languages
English (en)
Inventor
황방 천
하이타오 양
장러 천
웨이웨이 수
팅 푸
지아리 후
Original Assignee
후아웨이 테크놀러지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20230155621A publication Critical patent/KR20230155621A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/53Multi-resolution motion estimation; Hierarchical motion estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Abstract

디코딩 방법이 제공된다. 상기 디코딩 방법은 비트스트림을 파싱하여 신택스 요소를 획득하는 단계(s151) - 상기 신택스 요소는 적어도 현재 블록의 최적 후보 움직임 정보의 색인을 포함함 -; 상기 신택스 요소에 기초하여, 상기 현재 블록에 대한 제1 리스트 또는 제2 리스트를 구축하기로 결정하는 단계(s152) - 상기 제1 리스트는 블록 기반 후보 움직임 정보 리스트이고, 상기 제2 리스트는 서브블록 기반 후보 움직임 정보 리스트임 -; 상기 색인에 기초하여 상기 제1 리스트 또는 상기 제2 리스트로부터 최적 움직임 정보를 결정하는 단계(s153); 및 상기 최적 움직임 정보에 기초하여 현재 블록을 예측하는 단계(s154)를 포함한다. 이 방법에서는, 블록(BLOCK) 기반 후보 움직임 정보 리스트와 서브블록(SUB-BLOCK) 기반 후보 움직임 정보 리스트가 서로 구별된다. 이는 최적 후보 움직임 정보의 송신 비용을 효과적으로 감소시킨다.

Description

움직임 벡터 예측 방법 및 장치, 인코더, 그리고 디코더{MOTION VECTOR PREDICTION METHOD AND APPARATUS, ENCODER, AND DECODER}
본 출원은 비디오 코딩 기술 분야에 관한 것으로, 특히 움직임 벡터 예측 방법 및 장치, 그리고 대응하는 인코더 및 디코더에 관한 것이다.
정보 기술의 발달과 함께, 고화질 텔레비전, 웹 회의, IPTV, 3D 텔레비전과 같은 비디오 서비스가 빠르게 발전하고 있다. 비디오 신호는 직관성 및 고효율성과 같은 장점으로 인해 사람들의 일상생활에서 정보를 얻는 가장 중요한 방법이 되었다. 비디오 신호는 대량의 데이터를 포함하므로 대량의 송신 대역폭과 저장 공간을 차지한다. 비디오 신호를 효과적으로 송신하고 저장하려면, 비디오 신호를 압축하고 인코딩해야 한다. 비디오 압축 기술은 비디오 애플리케이션 분야에서 점점 더 필수적인 핵심 기술이 되었다.
본 발명의 실시예는 비디오 인코더, 비디오 디코더 및 대응하는 방법을 개시한다. 구체적인 구현은 본 출원의 청구 범위, 본 명세서 및 첨부 도면의 설명에 기초하여 명확하다.
제1 측면에 따르면, 본 발명은 디코딩 방법 또는 움직임 벡터 예측 방법에 관한 것이다. 상기 방법은, 현재 코딩 블록의 최적 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트의 구축 모드(construction mode)를 획득하고, 상기 후보 움직임 정보 리스트에서 상기 최적 후보 움직임 정보의 색인을 획득하는 단계 - 상기 후보 움직임 정보 리스트의 구축 모드는 블록 기반 후보 움직임 정보 리스트를 구축하는 모드이거나 서브블록 기반 후보 움직임 정보 리스트를 구축하는 모드임 -; 상기 구축 모드로 상기 후보 움직임 정보 리스트를 구축하는 단계; 상기 색인에 기초하여, 구축된 후보 움직임 정보 리스트로부터 최적 움직임 정보를 결정하는 단계; 및 상기 최적 움직임 정보에 기초하여 상기 현재 블록을 예측하는 단계를 포함한다.
현재 기술에서, 현재 코딩 블록은 더 작은 서브블록으로 분할될 수 있음을 이해해야 한다. 예를 들어, 현재 코딩 블록은 반복을 통해 쿼드 트리(quad-tree, QT) 분할, 이진 트리(binary-tree, BT) 분할 또는 트리플 트리(triple-tree, TT), 또는 이들의 조합을 사용하여 분할될 수 있다. 다시 말해, 하나의 코딩 블록이 더 작은 서브블록으로 분할될 수 있다.
이 방법에서, 현재 블록의 후보 움직임 정보 리스트(경우에 따라서는, 언어 습관의 차이로 인해, 현재 코딩 블록(current coding block)은 현재 영상 블록(current picture block), 현재 인코딩 블록(current encoding block), 현재 디코딩 블록(current decoding block), 현재 인코딩 대상 블록(current to-be-encoded block), 현재 디코딩 대상 블록(current to-be-decoded block) 등이라고 할 수 있으며, 명칭이 본 발명을 한정하는 것은 아니다)는 분류된다. 후보 움직임 정보는 블록(BLOCK) 기반 예측을 통해 획득되는 후보 움직임 정보와 서브블록(SUB-BLOCK) 기반 예측을 통해 획득되는 후보 움직임 정보로 분류된다. 블록 기반 후보 움직임 정보 리스트와 서브블록 기반 후보 움직임 정보 리스트가 구축된다. 이는 최적 후보 움직임 정보의 송신 비용을 효과적으로 줄일 수 있다.
제1 측면에 따르면, 가능한 구현 프로세스에서, 상기 현재 블록의 최적 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트의 구축 모드를 획득하는 것은, 상기 후보 움직임 정보 리스트를 결정하는 데 사용되는 식별자를 획득하는 것을 포함하며, 상기 현재 블록에 사용되는 인터 예측 모드는 병합 모드(merge mode)이고, 상기 식별자가 제1 특징 값(feature value)인 경우, 상기 후보 움직임 정보 리스트의 구축 모드는 블록 기반 후보 움직임 정보 리스트를 구축하는 모드이거나, 상기 식별자가 제2 특징 값인 경우, 상기 후보 움직임 정보 리스트의 구축 모드는 서브블록 기반 후보 움직임 정보 리스트를 구축하는 모드이다. 제1 특징 값과 제2 특징 값은 두 개의 값을 표현하기 위해 사용되는 명칭이며, 어떠한 한정사항도 구성하지 않음을 이해해야 한다.
선택적으로, 제1 특징 값은 0 또는 1일 수 있고, 제2 특징 값은 1 또는 0일 수 있다. 선택적으로, 식별자는 예를 들어 list-idx로 표현될 수 있다. 그러나 이것은 한정되지 않는다. 선택적으로, 블록 기반 모드로 구축된 후보 움직임 정보 리스트는 list0(또는 list1)으로 표현될 수 있고, 서브블록 기반 모드로 구축된 후보 움직임 정보 리스트는 list1(또는 list0)로 표현될 수 있다. 특징 값의 구체적인 값, 또는 식별자 및 리스트의 구체적인 표현 기호는 한정되지 않으며 본 발명에서 속속들이 설명되지 않음을 이해해야 한다.
제1 측면에 따르면, 가능한 구현 프로세스에서, 상기 블록 기반 후보 움직임 정보 리스트는 HEVC 표준 또는 HEVC 표준의 진화된 버전에 따라 정의된 병합 모드로 구축되는 후보 움직임 정보 리스트를 포함한다. 예를 들어, 미리 설정된 규칙에 따라 현재 코딩 블록의 공간적 또는 시간적으로 이웃하는 코딩 블록의 움직임 정보가 후보 움직임 정보 리스트에 추가된다. 일부 가능한 구축 모드에 대해서는, 실시예 S11.1의 관련 설명을 참조한다.
제1 측면에 따르면, 가능한 구현 프로세스에서, 상기 블록 기반 후보 움직임 정보 리스트 내의 후보 움직임 정보는 상기 현재 블록의 공간적으로 이웃하는 코딩된 블록의 움직임 정보 또는 상기 현재 블록의 시간적으로 이웃하는 코딩된 블록의 움직임 정보 중 적어도 하나를 포함한다. 상기 후보 움직임 정보 리스트 내의 모든 후보 움직임 정보는 상기 현재 블록의 공간적으로 또는 시간적으로 이웃하는 코딩된 블록의 움직임 정보일 수 있다. 대안으로, 상기 후보 움직임 정보 중 일부는 상기 현재 블록의 공간적으로 또는 시간적으로 이웃하는 코딩된 블록의 움직임 정보일 수 있고, 상기 후보 움직임 정보 중 일부는 다른 방식으로 획득된 움직임 정보일 수 있다.
제1 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는, 아핀 모델 병합(affine model merge) 또는 복합 병합(complex merge) 또는 ATMVP 중 적어도 하나의 서브블록 기반 병합 모드로 구축되는 후보 움직임 정보 리스트를 포함한다. 상기 서브블록 기반 후보 움직임 정보 리스트의 모든 후보 움직임 정보는 아핀 모델 병합 모드에서, 복합 병합 모드에서, 또는 ATMVP 모드에서만, 또는 복수의 상이한 모드에서 도출을 통해 획득할 수 있다. 복수의 상이한 모드는 아핀 모델 병합, 복합 병합 및 ATMVP의 세 가지 모드의 임의의 조합일 수 있다. 경우에 따라서는, 후보 움직임 정보 리스트는 다른 서브블록 기반 모드에서 획득된 움직임 정보를 더 포함할 수 있다. 본 발명에서는 이를 상세하게 열거하거나 설명하지 않는다.
제1 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는 움직임 모델 기반 아핀 모델 병합(Affine model merge, AMM) 모드로 구축될 수 있다. 상기 현재 코딩 블록의 공간적으로 이웃하는 코딩 블록의 움직임 정보는 미리 설정된 규칙에 따라 상기 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어 다음과 같으나 이에 한정되지는 않는다: 먼저 아핀 코딩된 블록(affine coded block)을 찾고, 아핀 코딩된 블록의 제어점의 움직임 정보를 획득하고, 아핀 변환 모델에 따라 현재 코딩 블록의 왼쪽 위 정점(upper-left vertex)의 움직임 정보 및 오른쪽 위 정점(upper-right vertex)의 움직임 정보를 도출하고, 가용성(availability) 검사 및 중복된 항목(repeated item) 제거 후에, 사용 가능한 위치 블록에 대응하는 음직임 정보를 후보 움직임 정보 리스트에 순차적으로 삽입한다. 일부 가능한 구축 모드에 대해서는 실시예 S12.1의 관련 설명을 참조한다.
제1 측면에 따르면, 가능한 구현 프로세스에서, 서브블록 기반 후보 움직임 정보 리스트는 제어점 기반 복합 병합 모드(complex merge mode)로 구축될 수 있다. 상기 현재 코딩 블록의 공간적으로 이웃하는 코딩 블록의 움직임 정보는 미리 설정된 규칙에 따라 상기 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어, 도출(derivation)을 통해 각각의 제어점의 움직임 정보를 획득하고, 제어점의 움직임 정보를 조합하여 비 병진(non-translational)(아핀 모델 기반) 움직임 정보를 획득하고, 미리 구성된 시퀀스로 제어점의 움직임 정보를 조합하여 획득한 이들 모델을 순회하고(traversing), 유효한 모델에서 후보 움직임 정보의 가용성을 검사하고 중복된 항목을 제거하고, 중복 및 무자격 정보(unqualified information)를 제외한 움직임 정보를 후보 움직임 정보 리스트에 삽입하는 것이다. 몇몇 가능한 구축 모드에 대해서는 실시예 S12.2의 관련 설명을 참조한다.
제1 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는 진보된 시간 움직임 벡터 예측(Advanced temporal motion vector predict, ATMVP) 모드로 구축될 수 있다. 구체적으로, ATMVP 후보 움직임 정보가 미리 설정된 규칙에 따라 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어 다음과 같지만 이에 한정되는 것은 아니다: 먼저 병치된 참조 영상(Collocated reference picture)를 결정하고, 그런 다음, 현재 코딩 유닛(현재 블록)을 각각 M×N 크기의 코딩 서브유닛(코딩 서브블록)으로 분할하고, 각각의 현재 코딩 서브유닛에 대응하는 코딩 서브유닛으로서 병치된 참조 영상 내에 있는 코딩 서브유닛의 중심점 위치 샘플의 움직임 정보를 획득하고, 움직임 정보를 스케일링(scaling)하고, 움직임 정보를 현재 코딩 서브유닛 각각의 움직임 정보로 변환하고, 가용성 검사하고 중복된 항목 제거한 후에 이용 가능한 위치 블록에 대응하는 움직임 정보를 순차적으로 후보 움직임 정보 리스트에 삽입한다. 일부 가능한 구축 모드에 대해서는 실시예 S12.3의 관련 설명을 참조한다.
제1 측면에 따르면, 가능한 구현 프로세스에서, 상기 현재 블록의 폭은 임계치 이상이고, 및/또는 상기 현재 블록의 높이는 임계치 이상이다. 상기 임계치는 4, 8 또는 16일 수 있지만, 이에 한정되지 않는다.
제1 측면에 따르면, 가능한 구현 프로세스에서, 상기 최적 움직임 정보는 블록 기반 후보 움직임 정보 리스트 내의 움직임 정보이고, 상기 현재 블록은 상기 최적 움직임 정보에 기초하여 예측된다.
제1 측면에 따르면, 가능한 구현 프로세스에서, 상기 최적 움직임 정보가 서브블록 기반 후보 움직임 정보 리스트의 움직임 정보라면, 적어도 다음의 세 가지 경우가 포함된다.
사례 1: S23에서 결정된 최적 움직임 정보가 아핀 모드(적어도 아핀 모델 병합 모드 또는 복합 병합 모드 포함)에서 획득되면, 현재 블록의 서브블록에 대응하는 움직임 정보는 최적 움직임 정보에 기초하여 도출되고, 현재 블록의 서브블록이 예측된다. 현재 블록은 복수의 서브블록을 포함할 수 있고, 현재 블록의 서브블록은 복수의 서브블록 중 어느 하나일 수 있다. 가능한 구현 프로세스에서, 현재 블록의 서브블록 각각에 대응하는 움직임 정보는 최적 움직임 정보에 기초하여 도출되고, 현재 블록의 서브블록 각각에 대응하는 움직임 정보를 도출하고, 이에 상응하여 현재 블록의 서브블록 각각을 예측한다.
사례 2: S23에서 결정된 최적 움직임 정보가 ATMVP 모드에서 획득되면, 현재 블록의 서브블록은 최적 움직임 정보에 기초하여 예측된다. 가능한 구현 프로세스에서 최적 후보 움직임 정보는 움직임 정보의 조합일 수 있으며 현재 블록의 서브블록 각각에 대응하는 움직임 정보를 포함하고, 현재 블록의 서브블록 각각은 이에 상응하여 예측된다.
사례 3: S23에서 결정된 최적 움직임 정보가 지시를 통해 ATMVP 모드에서 획득되면, 최적 움직임 정보는 대응하는 지시에 기초하여 획득되고, 현재 블록의 서브블록은 최적 움직임 정보에 기초하여 예측된다. 가능한 구현 프로세스에서, 최적 후보 움직임 정보는 지시 정보에 기초하여 획득될 수 있다. 현재 블록의 서브블록 각각에 대응하는 움직임 정보는 지시 정보에 기초하여 ATMVP 모드에서 획득될 수 있으며, 현재 블록의 서브블록 각각은 이에 상응하여 예측된다.
제2 측면에 따르면, 본 발명은 디코딩 방법 또는 움직임 벡터 예측 방법에 관한 것이다. 상기 방법은, 현재 블록의 최적 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트를 결정하는 데 사용되는 식별자를 획득하고, 상기 후보 움직임 정보 리스트에서 상기 최적 후보 움직임 정보의 색인을 획득하는 단계 - 상기 현재 블록에 사용되는 인터 예측 모드는 병합 모드임 -; 상기 식별자에 기초하여 상기 후보 움직임 정보 리스트를 구축하는 단계 - 상기 식별자가 제1 특징 값인 경우, 상기 후보 움직임 정보 리스트는 블록 기반 후보 움직임 정보 리스트이거나, 상기 식별자가 제2 특징 값인 경우, 상기 후보 움직임 정보 리스트는 서브블록 기반 후보 움직임 정보 리스트임 -; 상기 색인에 기초하여, 구축된 후보 움직임 정보 리스트로부터 최적 움직임 정보를 결정하는 단계; 및 상기 최적 움직임 정보에 기초하여 상기 현재 블록을 예측하는 단계를 포함한다.
제2 측면에 따르면, 가능한 구현 프로세스에서, 상기 블록 기반 후보 움직임 정보 리스트는 HEVC 표준 또는 HEVC 표준의 진화된 버전에 따라 정의된 병합 모드로 구축되는 후보 움직임 정보 리스트를 포함한다. 예를 들어, 미리 설정된 규칙에 따라 현재 코딩 블록의 공간적 또는 시간적으로 이웃하는 코딩 블록의 움직임 정보가 후보 움직임 정보 리스트에 추가된다. 일부 가능한 구축 모드에 대해서는, 실시예 S11.1의 관련 설명을 참조한다.
제2 측면에 따르면, 가능한 구현 프로세스에서, 블록 기반 후보 움직임 정보 리스트 내의 후보 움직임 정보는 상기 현재 블록의 공간적으로 이웃하는 코딩된 블록의 움직임 정보 또는 상기 현재 블록의 시간적으로 이웃하는 코딩된 블록의 움직임 정보 중 적어도 하나를 포함한다. 상기 후보 움직임 정보 리스트 내의 모든 후보 움직임 정보는 상기 현재 블록의 공간적으로 또는 시간적으로 이웃하는 코딩된 블록의 움직임 정보일 수 있다. 대안으로, 상기 후보 움직임 정보 중 일부는 상기 현재 블록의 공간적으로 또는 시간적으로 이웃하는 코딩된 블록의 움직임 정보일 수 있고, 후보 움직임 정보 중 일부는 다른 방식으로 획득된 움직임 정보일 수 있다.
제2 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는, 아핀 모델 병합, 또는 복합 병합 또는 ATMVP 중 적어도 하나의 서브블록 기반 병합 모드로 구축되는 후보 움직임 정보 리스트를 포함한다. 상기 서브블록 기반 후보 움직임 정보 리스트의 모든 후보 움직임 정보는 아핀 모델 병합 모드에서, 복합 병합 모드에서, 또는 ATMVP 모드에서만, 또는 복수의 상이한 모드에서 도출을 통해 획득할 수 있다. 복수의 상이한 모드는 아핀 모델 병합, 복합 병합 및 ATMVP의 세 가지 모드의 임의의 조합일 수 있다. 경우에 따라서는, 후보 움직임 정보 리스트는 다른 서브블록 기반 모드에서 획득된 움직임 정보를 더 포함할 수 있다. 본 발명에서는 이를 상세하게 열거하거나 설명하지 않는다.
제2 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는 움직임 모델 기반 아핀 모델 병합(Affine model merge, AMM) 모드로 구축될 수 있다. 상기 현재 코딩 블록의 공간적으로 이웃하는 코딩 블록의 움직임 정보는 미리 설정된 규칙에 따라 상기 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어 다음과 같으나 이에 한정되지는 않는다: 먼저 아핀 코딩된 블록을 찾고, 아핀 코딩된 블록의 제어점의 움직임 정보를 획득하고, 아핀 변환 모델에 따라 현재 코딩 블록의 왼쪽 위 정점의 움직임 정보 및 오른쪽 위 정점의 움직임 정보를 도출하고, 가용성 검사 및 중복된 항목 제거 후에, 사용 가능한 위치 블록에 대응하는 음직임 정보를 후보 움직임 정보 리스트에 순차적으로 삽입한다. 일부 가능한 구축 모드에 대해서는 실시예 S12.1의 관련 설명을 참조한다.
제2 측면에 따르면, 가능한 구현 프로세스에서, 서브블록 기반 후보 움직임 정보 리스트는 제어점 기반 복합 병합 모드(complex merge mode)로 구축될 수 있다. 상기 현재 코딩 블록의 공간적으로 이웃하는 코딩 블록의 움직임 정보는 미리 설정된 규칙에 따라 상기 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어, 도출을 통해 각각의 제어점의 움직임 정보를 획득하고, 제어점의 움직임 정보를 조합하여 비 병진(아핀 모델 기반) 움직임 정보를 획득하고, 미리 구성된 시퀀스로 제어점의 움직임 정보를 조합하여 획득한 이들 모델을 순회하고, 유효한 모델에서 후보 움직임 정보의 가용성을 검사하고 중복된 항목을 제거하고, 중복 및 무자격 정보를 제외한 움직임 정보를 후보 움직임 정보 리스트에 삽입하는 것이다. 몇몇 가능한 구축 모드에 대해서는 실시예 S12.2의 관련 설명을 참조한다.
제2 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는 진보된 시간 움직임 벡터 예측(Advanced temporal motion vector predict, ATMVP) 모드로 구축될 수 있다. 구체적으로, ATMVP 후보 움직임 정보가 미리 설정된 규칙에 따라 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어 다음과 같지만 이에 한정되는 것은 아니다: 먼저 병치된 참조 영상(Collocated reference picture)를 결정하고, 그런 다음, 현재 코딩 유닛(현재 블록)을 각각 M×N 크기의 코딩 서브유닛(코딩 서브블록)으로 분할하고, 각각의 현재 코딩 서브유닛에 대응하는 코딩 서브유닛으로서 병치된 참조 영상 내에 있는 코딩 서브유닛의 중심점 위치 샘플의 움직임 정보를 획득하고, 움직임 정보를 스케일링(scaling)하고, 움직임 정보를 현재 코딩 서브유닛 각각의 움직임 정보로 변환하고, 가용성 검사하고 중복된 항목 제거한 후에 이용 가능한 위치 블록에 대응하는 움직임 정보를 순차적으로 후보 움직임 정보 리스트에 삽입한다. 일부 가능한 구축 모드에 대해서는 실시예 S12.3의 관련 설명을 참조한다.
제2 측면에 따르면, 가능한 구현 프로세스에서, 상기 현재 블록의 폭은 임계치 이상이고, 및/또는 상기 현재 블록의 높이는 임계치 이상이다. 상기 임계치는 4, 8 또는 16일 수 있지만, 이에 한정되지 않는다.
제3 측면에 따르면, 본 발명은 움직임 벡터 예측 방법에 관한 것이다. 상기 방법은, 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하면, 상기 현재 블록의 최적 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트를 결정하는 데 사용되는 식별자를 획득하고, 상기 후보 움직임 정보 리스트에서 상기 최적 후보 움직임 정보의 색인을 획득하는 단계 - 상기 현재 블록에 사용되는 인터 예측 모드는 병합 모드임 -; 상기 식별자에 기초하여 상기 후보 움직임 정보 리스트를 구축하는 단계 - 상기 식별자가 제1 특징 값인 경우, 블록 기반 후보 움직임 정보 리스트를 구축하거나, 상기 식별자가 제2 특징 값인 경우, 서브블록 기반 후보 움직임 정보 리스트를 구축함 -; 상기 색인에 기초하여, 구축된 후보 움직임 정보 리스트로부터 최적 움직임 정보를 결정하는 단계; 및 상기 최적 움직임 정보에 기초하여 상기 현재 블록을 예측하는 단계를 포함한다.
제3 측면에 따르면, 가능한 구현 프로세스에서, 상기 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하지 않는 경우, 상기 블록 기반 후보 움직임 정보 리스트를 구축하고, 상기 후보 움직임 정보 리스트에서 상기 최적 후보 움직임 정보의 색인을 획득하며 - 상기 현재 블록에 사용되는 인터 예측 모드는 상기 병합 모드임 -; 상기 색인에 기초하여, 구축된 후보 움직임 정보 리스트로부터 최적 움직임 정보를 결정하고; 상기 최적 움직임 정보에 기초하여 상기 현재 블록을 예측한다.
이 방안의 발명 개념은 다음과 같다: 먼저, 현재 블록이 미리 설정된 조건을 충족시키는지 판정하고; 현재 블록이 미리 설정된 조건을 충족하는 경우, 현재 블록의 최적 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트를 지시할 수 있는 식별자를 획득하고, 식별자에 기초하여 블록 기반 후보 움직임 정보 리스트 또는 서브블록 기반 후보 움직임 정보를 구축하거나; 또는 현재 블록이 미리 설정된 조건을 충족하지 않는 경우, 블록 기반 후보 움직임 정보 리스트만 구축하고; 획득된 움직임 정보 색인에 기초하여, 구축된 후보 움직임 정보 리스트로부터 최적 후보 움직임 정보를 결정하고; 현재 블록을 예측한다.
제3 측면에 따르면, 가능한 구현 프로세스에서, 현재 블록이 미리 설정된 조건을 충족하는지는, 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하는지를 포함하지만 이에 한정되는 것은 아니다.
제3 측면에 따르면, 가능한 구현 프로세스에서, 상기 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하는 것은 다음을 포함한다: 상기 현재 블록의 폭이 임계치 이상 및/또는 상기 현재 블록의 높이가 임계치보다 이상이다.
선택적으로, 상기 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하는 경우는 상기 현재 블록의 폭이 임계치 이상이라는 것이고, 상기 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하지 않는다는 것은 상기 현재 블록의 폭이 임계치보다 작다는 것이며; 상기 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하는 경우는 상기 현재 블록의 높이가 임계치 이상이라는 것이고, 상기 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하지 않는다는 것은 상기 현재 블록의 높이가 임계치보다 작다는 것이며; 상기 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하는 경우는 상기 현재 블록의 폭이 임계치 이상이거나 상기 현재 블록의 높이가 다른 임계치 이상이라는 것이고, 상기 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하지 않는다는 것은 상기 현재 블록의 폭이 임계치보다 작고 상기 현재 블록의 높이가 다른 임계치보다 작다는 것이거나; 또는 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하는 경우는, 상기 현재 블록의 폭이 임계치 이상이고 상기 현재 블록의 높이가 다른 임계치 이상이라는 것이고, 상기 현재 블록이 미리 설정된 샘플 수량을 충족하지 않는 경우는 상기 현재 블록의 폭이 임계치보다 작거나 상기 현재 블록의 높이가 다른 임계치보다 작다는 것이다. 상기 임계치는 4, 8 또는 16일 수 있지만 이에 한정되는 것은 아니다. 이 논리는 단지 예일 뿐이며, 어떠한 한정사항도 구성하지 않는다는 것을 이해해야 한다. 또한, 본 발명에서는 폭과 높이의 관계도 한정되지 않는다.
제3 측면에 따르면, 가능한 구현 프로세스에서, 상기 블록 기반 후보 움직임 정보 리스트는 HEVC 표준 또는 HEVC 표준의 진화된 버전에 따라 정의된 병합 모드로 구축되는 후보 움직임 정보 리스트를 포함한다. 예를 들어, 미리 설정된 규칙에 따라 현재 코딩 블록의 공간적 또는 시간적으로 이웃하는 코딩 블록의 움직임 정보가 후보 움직임 정보 리스트에 추가된다. 일부 가능한 구축 모드에 대해서는, 실시예 S11.1의 관련 설명을 참조한다.
제3 측면에 따르면, 가능한 구현 프로세스에서, 상기 후보 움직임 정보 리스트 내의 모든 후보 움직임 정보는 상기 현재 블록의 공간적으로 또는 시간적으로 이웃하는 코딩된 블록의 움직임 정보일 수 있다. 대안으로, 상기 후보 움직임 정보 중 일부는 상기 현재 블록의 공간적으로 또는 시간적으로 이웃하는 코딩된 블록의 움직임 정보일 수 있고, 상기 후보 움직임 정보 중 일부는 다른 방식으로 획득된 움직임 정보일 수 있다.
제3 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는, 아핀 모델 병합, 또는 복합 병합 또는 ATMVP 중 적어도 하나의 서브블록 기반 병합 모드로 구축되는 후보 움직임 정보 리스트를 포함한다. 상기 서브블록 기반 후보 움직임 정보 리스트의 모든 후보 움직임 정보는 아핀 모델 병합 모드에서, 복합 병합 모드에서, 또는 ATMVP 모드에서만, 또는 복수의 상이한 모드에서 도출을 통해 획득할 수 있다. 상기 복수의 상이한 모드는 아핀 모델 병합, 복합 병합 및 ATMVP의 세 가지 모드의 임의의 조합일 수 있다. 경우에 따라서는, 후보 움직임 정보 리스트는 다른 서브블록 기반 모드에서 획득된 움직임 정보를 더 포함할 수 있다. 본 발명에서는 이를 상세하게 열거하거나 설명하지 않는다.
제3 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는 움직임 모델 기반 아핀 모델 병합(Affine model merge, AMM) 모드로 구축될 수 있다. 상기 현재 코딩 블록의 공간적으로 이웃하는 코딩 블록의 움직임 정보는 미리 설정된 규칙에 따라 상기 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어 다음과 같으나 이에 한정되지는 않는다: 먼저, 아핀 코딩된 블록을 찾고, 아핀 코딩된 블록의 제어점의 움직임 정보를 획득하고, 아핀 변환 모델에 따라 현재 코딩 블록의 왼쪽 위 정점의 움직임 정보 및 오른쪽 위 정점의 움직임 정보를 도출하고, 가용성 검사 및 중복된 항목 제거 후에, 사용 가능한 위치 블록에 대응하는 음직임 정보를 후보 움직임 정보 리스트에 순차적으로 삽입한다. 일부 가능한 구축 모드에 대해서는 실시예 S12.1의 관련 설명을 참조한다.
제3 측면에 따르면, 가능한 구현 프로세스에서, 서브블록 기반 후보 움직임 정보 리스트는 제어점 기반 복합 병합 모드(complex merge mode)로 구축될 수 있다. 상기 현재 코딩 블록의 공간적으로 이웃하는 코딩 블록의 움직임 정보는 미리 설정된 규칙에 따라 상기 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어, 도출을 통해 각각의 제어점의 움직임 정보를 획득하고, 제어점의 움직임 정보를 조합하여 비 병진(아핀 모델 기반) 움직임 정보를 획득하고, 미리 구성된 시퀀스로 제어점의 움직임 정보를 조합하여 획득한 이들 모델을 순회하고, 유효한 모델에서 후보 움직임 정보의 가용성을 검사하고 중복된 항목을 제거하고, 중복 및 무자격 정보를 제외한 움직임 정보를 후보 움직임 정보 리스트에 삽입한다. 몇몇 가능한 구축 모드에 대해서는 실시예 S12.2의 관련 설명을 참조한다.
제3 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는 진보된 시간 움직임 벡터 예측(Advanced temporal motion vector predict, ATMVP) 모드로 구성될 수 있다. 구체적으로, ATMVP 후보 움직임 정보가 미리 설정된 규칙에 따라 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어 다음과 같지만 이에 한정되는 것은 아니다: 먼저 병치된 참조 영상(Collocated reference picture)를 결정하고, 그런 다음, 현재 코딩 유닛(현재 블록)을 각각 M×N 크기의 코딩 서브유닛(코딩 서브블록)으로 분할하고, 각각의 현재 코딩 서브유닛에 대응하는 코딩 서브유닛으로서 병치된 참조 영상 내에 있는 코딩 서브유닛의 중심점 위치 샘플의 움직임 정보를 획득하고, 움직임 정보를 스케일링(scaling)하고, 움직임 정보를 현재 코딩 서브유닛 각각의 움직임 정보로 변환하고, 가용성 검사하고 중복된 항목 제거한 후에 사용 가능한 위치 블록에 대응하는 움직임 정보를 순차적으로 후보 움직임 정보 리스트에 삽입한다. 일부 가능한 구축 모드에 대해서는 실시예 S12.3의 관련 설명을 참조한다.
전술한 방법은 움직임 벡터 예측 장치 또는 기기에 의해 수행될 수 있다. 선택적으로, 본 발명은 상응하게 제1 측면, 제2 측면 및 제3 측면에 따른 제4 측면, 제5 측면 및 제6 측면의 장치를 제공한다.
제4 측면에 따르면, 본 발명은 디코딩 장치에 것이다. 상기 디코딩 장치는, 현재 블록의 최적 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트의 구축 모드를 획득하고, 상기 후보 움직임 정보 리스트에서 상기 최적 후보 움직임 정보의 색인을 획득하도록 구성된 획득 모듈 - 상기 후보 움직임 정보 리스트의 구축 모드는 블록 기반 후보 움직임 정보 리스트를 구축하는 모드이거나 서브블록 기반 후보 움직임 정보 리스트를 구축하는 모드임 -; 상기 구축 모드로 상기 후보 움직임 정보 리스트를 구축하도록 구성된 구축 모듈; 상기 색인에 기초하여, 구축된 후보 움직임 정보 리스트로부터 최적 움직임 정보를 결정하도록 구성된 결정 모듈; 및 상기 최적 움직임 정보에 기초하여 상기 현재 블록을 예측하도록 구성된 예측 모듈을 포함한다.
제4 측면에 따르면, 가능한 구현 프로세스에서, 상기 획득 모듈은 구체적으로, 상기 후보 움직임 정보 리스트를 결정하는 데 사용되는 식별자를 획득하도록 구성되며, 상기 현재 블록에 사용되는 인터 예측 모드는 병합 모드이고; 상기 식별자가 제1 특징 값인 경우, 상기 후보 움직임 정보 리스트의 구축 모드는 블록 기반 후보 움직임 정보 리스트를 구축하는 모드이거나, 상기 식별자가 제2 특징 값인 경우, 상기 후보 움직임 정보 리스트의 구축 모드는 서브블록 기반 후보 움직임 정보 리스트를 구축하는 모드이다.
선택적으로, 제1 특징 값은 0 또는 1일 수 있고, 제2 특징 값은 1 또는 0일 수 있다. 선택적으로, 식별자는 예를 들어 list-idx로 표현될 수 있다. 그러나 이것은 한정되지 않는다. 선택적으로, 블록 기반 모드로 구축된 후보 움직임 정보 리스트는 list0(또는 list1)으로 표현될 수 있고, 서브블록 기반 모드로 구축된 후보 움직임 정보 리스트는 list1(또는 list0)로 표현될 수 있다. 특징 값의 구체적인 값, 또는 식별자 및 리스트의 구체적인 표현 기호는 한정되지 않으며 본 발명에서 속속들이 설명되지 않음을 이해해야 한다.
제4 측면에 따르면, 가능한 구현 프로세스에서, 상기 블록 기반 후보 움직임 정보 리스트는 HEVC 표준 또는 HEVC 표준의 진화된 버전에 따라 정의된 병합 모드로 구축되는 후보 움직임 정보 리스트를 포함한다. 예를 들어, 미리 설정된 규칙에 따라 현재 코딩 블록의 공간적 또는 시간적으로 이웃하는 코딩 블록의 움직임 정보가 후보 움직임 정보 리스트에 추가된다. 일부 가능한 구축 모드에 대해서는, 실시예 S11.1의 관련 설명을 참조한다.
제4 측면에 따르면, 가능한 구현 프로세스에서, 상기 블록 기반 후보 움직임 정보 리스트 내의 후보 움직임 정보는 상기 현재 블록의 공간적으로 이웃하는 코딩된 블록의 움직임 정보 또는 상기 현재 블록의 시간적으로 이웃하는 코딩된 블록의 움직임 정보 중 적어도 하나를 포함한다. 상기 후보 움직임 정보 리스트 내의 모든 후보 움직임 정보는 상기 현재 블록의 공간적으로 또는 시간적으로 이웃하는 코딩된 블록의 움직임 정보일 수 있다. 대안으로, 상기 후보 움직임 정보 중 일부는 상기 현재 블록의 공간적으로 또는 시간적으로 이웃하는 코딩된 블록의 움직임 정보일 수 있고, 상기 후보 움직임 정보 중 일부는 다른 방식으로 획득된 움직임 정보일 수 있다.
제4 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는, 아핀 모델 병합 또는 복합 병합 또는 ATMVP 중 적어도 하나의 서브블록 기반 병합 모드로 구축되는 후보 움직임 정보 리스트를 포함한다. 상기 서브블록 기반 후보 움직임 정보 리스트의 모든 후보 움직임 정보는 아핀 모델 병합 모드에서, 복합 병합 모드에서, 또는 ATMVP 모드에서만, 또는 복수의 상이한 모드에서 도출을 통해 획득할 수 있다. 복수의 상이한 모드는 아핀 모델 병합, 복합 병합 및 ATMVP의 세 가지 모드의 임의의 조합일 수 있다. 경우에 따라서는, 후보 움직임 정보 리스트는 다른 서브블록 기반 모드에서 획득된 움직임 정보를 더 포함할 수 있다. 본 발명에서는 이를 상세하게 열거하거나 설명하지 않는다.
제4 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는 움직임 모델 기반 아핀 모델 병합(Affine model merge, AMM) 모드로 구축될 수 있다. 상기 현재 코딩 블록의 공간적으로 이웃하는 코딩 블록의 움직임 정보는 미리 설정된 규칙에 따라 상기 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어 다음과 같으나 이에 한정되지는 않는다: 먼저 아핀 코딩된 블록을 찾고, 아핀 코딩된 블록의 제어점의 움직임 정보를 획득하고, 아핀 변환 모델에 따라 현재 코딩 블록의 왼쪽 위 정점(의 움직임 정보 및 오른쪽 위 정점의 움직임 정보를 도출하고, 가용성 검사 및 중복된 항목 제거 후에, 사용 가능한 위치 블록에 대응하는 음직임 정보를 후보 움직임 정보 리스트에 순차적으로 삽입한다. 일부 가능한 구축 모드에 대해서는 실시예 S12.1의 관련 설명을 참조한다.
제4 측면에 따르면, 가능한 구현 프로세스에서, 서브블록 기반 후보 움직임 정보 리스트는 제어점 기반 복합 병합 모드(complex merge mode)로 구축될 수 있다. 상기 현재 코딩 블록의 공간적으로 이웃하는 코딩 블록의 움직임 정보는 미리 설정된 규칙에 따라 상기 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어, 도출을 통해 각각의 제어점의 움직임 정보를 획득하고, 제어점의 움직임 정보를 조합하여 비 병진(아핀 모델 기반) 움직임 정보를 획득하고, 미리 구성된 시퀀스로 제어점의 움직임 정보를 조합하여 획득한 이들 모델을 순회하고, 유효한 모델에서 후보 움직임 정보의 가용성을 검사하고 중복된 항목을 제거하고, 중복 및 무자격 정보를 제외한 움직임 정보를 후보 움직임 정보 리스트에 삽입하는 것이다. 몇몇 가능한 구축 모드에 대해서는 실시예 S12.2의 관련 설명을 참조한다.
제4 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는 진보된 시간 움직임 벡터 예측(Advanced temporal motion vector predict, ATMVP) 모드로 구축될 수 있다. 구체적으로, ATMVP 후보 움직임 정보가 미리 설정된 규칙에 따라 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어 다음과 같지만 이에 한정되는 것은 아니다: 먼저 병치된 참조 영상(Collocated reference picture)를 결정하고, 그런 다음, 현재 코딩 유닛(현재 블록)을 각각 M×N 크기의 코딩 서브유닛(코딩 서브블록)으로 분할하고, 각각의 현재 코딩 서브유닛에 대응하는 코딩 서브유닛으로서 병치된 참조 영상 내에 있는 코딩 서브유닛의 중심점 위치 샘플의 움직임 정보를 획득하고, 움직임 정보를 스케일링하고, 움직임 정보를 현재 코딩 서브유닛 각각의 움직임 정보로 변환하고, 가용성 검사하고 중복된 항목 제거한 후에 이용 가능한 위치 블록에 대응하는 움직임 정보를 순차적으로 후보 움직임 정보 리스트에 삽입한다. 일부 가능한 구축 모드에 대해서는 실시예 S12.3의 관련 설명을 참조한다.
제4 측면에 따르면, 가능한 구현 프로세스에서, 상기 현재 블록의 폭은 임계치 이상이고, 및/또는 상기 현재 블록의 높이는 임계치 이상이다. 상기 임계치는 4, 8 또는 16일 수 있지만, 이에 한정되지 않는다.
제5 측면에 따르면, 본 발명은 디코딩 장치 또는 움직임 벡터 예측 장치에 관한 것이다. 상기 장치는, 현재 블록의 최적 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트를 결정하는 데 사용되는 식별자를 획득하고, 상기 후보 움직임 정보 리스트에서 상기 최적 후보 움직임 정보의 색인을 획득하도록 구성된 획득 모듈 - 상기 현재 블록에 사용되는 인터 예측 모드는 병합 모드임 -; 상기 식별자에 기초하여 상기 후보 움직임 정보 리스트를 구축하도록 구성된 구축 모듈 - 상기 식별자가 제1 특징 값인 경우, 상기 후보 움직임 정보 리스트는 블록 기반 후보 움직임 정보 리스트이거나, 상기 식별자가 제2 특징 값인 경우, 상기 후보 움직임 정보 리스트는 서브블록 기반 후보 움직임 정보 리스트임 -; 상기 색인에 기초하여, 구축된 후보 움직임 정보 리스트로부터 최적 움직임 정보를 결정하도록 구성된 결정 모듈; 및 상기 최적 움직임 정보에 기초하여 상기 현재 블록을 예측하도록 구성된 예측 모듈을 포함한다.
제5 측면에 따르면, 가능한 구현 프로세스에서, 상기 블록 기반 후보 움직임 정보 리스트는 HEVC 표준 또는 HEVC 표준의 진화된 버전에 따라 정의된 병합 모드로 구축되는 후보 움직임 정보 리스트를 포함한다. 예를 들어, 미리 설정된 규칙에 따라 현재 코딩 블록의 공간적 또는 시간적으로 이웃하는 코딩 블록의 움직임 정보가 후보 움직임 정보 리스트에 추가된다. 일부 가능한 구축 모드에 대해서는, 실시예 S11.1의 관련 설명을 참조한다.
제5 측면에 따르면, 가능한 구현 프로세스에서, 블록 기반 후보 움직임 정보 리스트 내의 후보 움직임 정보는 상기 현재 블록의 공간적으로 이웃하는 코딩된 블록의 움직임 정보 또는 상기 현재 블록의 시간적으로 이웃하는 코딩된 블록의 움직임 정보 중 적어도 하나를 포함한다. 상기 후보 움직임 정보 리스트 내의 모든 후보 움직임 정보는 상기 현재 블록의 공간적으로 또는 시간적으로 이웃하는 코딩된 블록의 움직임 정보일 수 있다. 대안으로, 상기 후보 움직임 정보 중 일부는 상기 현재 블록의 공간적으로 또는 시간적으로 이웃하는 코딩된 블록의 움직임 정보일 수 있고, 후보 움직임 정보 중 일부는 다른 방식으로 획득된 움직임 정보일 수 있다.
제5 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는, 아핀 모델 병합, 또는 복합 병합 또는 ATMVP 중 적어도 하나의 서브블록 기반 병합 모드로 구축되는 후보 움직임 정보 리스트를 포함한다. 상기 서브블록 기반 후보 움직임 정보 리스트의 모든 후보 움직임 정보는 아핀 모델 병합 모드에서, 복합 병합 모드에서, 또는 ATMVP 모드에서만, 또는 복수의 상이한 모드에서 도출을 통해 획득할 수 있다. 복수의 상이한 모드는 아핀 모델 병합, 복합 병합 및 ATMVP의 세 가지 모드의 임의의 조합일 수 있다. 경우에 따라서는, 후보 움직임 정보 리스트는 다른 서브블록 기반 모드에서 획득된 움직임 정보를 더 포함할 수 있다. 본 발명에서는 이를 상세하게 열거하거나 설명하지 않는다.
제5 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는 움직임 모델 기반 아핀 모델 병합(Affine model merge, AMM) 모드로 구축될 수 있다. 상기 현재 코딩 블록의 공간적으로 이웃하는 코딩 블록의 움직임 정보는 미리 설정된 규칙에 따라 상기 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어 다음과 같으나 이에 한정되지는 않는다: 먼저 아핀 코딩된 블록을 찾고, 아핀 코딩된 블록의 제어점의 움직임 정보를 획득하고, 아핀 변환 모델에 따라 현재 코딩 블록의 왼쪽 위 정점의 움직임 정보 및 오른쪽 위 정점의 움직임 정보를 도출하고, 가용성 검사 및 중복된 항목 제거 후에, 사용 가능한 위치 블록에 대응하는 음직임 정보를 후보 움직임 정보 리스트에 순차적으로 삽입한다. 일부 가능한 구축 모드에 대해서는 실시예 S12.1의 관련 설명을 참조한다.
제5 측면에 따르면, 가능한 구현 프로세스에서, 서브블록 기반 후보 움직임 정보 리스트는 제어점 기반 복합 병합 모드(complex merge mode)로 구축될 수 있다. 상기 현재 코딩 블록의 공간적으로 이웃하는 코딩 블록의 움직임 정보는 미리 설정된 규칙에 따라 상기 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어, 도출을 통해 각각의 제어점의 움직임 정보를 획득하고, 제어점의 움직임 정보를 조합하여 비 병진(아핀 모델 기반) 움직임 정보를 획득하고, 미리 구성된 시퀀스로 제어점의 움직임 정보를 조합하여 획득한 이들 모델을 순회하고, 유효한 모델에서 후보 움직임 정보의 가용성을 검사하고 중복된 항목을 제거하고, 중복 및 무자격 정보를 제외한 움직임 정보를 후보 움직임 정보 리스트에 삽입하는 것이다. 몇몇 가능한 구축 모드에 대해서는 실시예 S12.2의 관련 설명을 참조한다.
제5 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는 진보된 시간 움직임 벡터 예측(Advanced temporal motion vector predict, ATMVP) 모드로 구축될 수 있다. 구체적으로, ATMVP 후보 움직임 정보가 미리 설정된 규칙에 따라 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어 다음과 같지만 이에 한정되는 것은 아니다: 먼저 병치된 참조 영상(Collocated reference picture)를 결정하고, 그런 다음, 현재 코딩 유닛(현재 블록)을 각각 M×N 크기의 코딩 서브유닛(코딩 서브블록)으로 분할하고, 각각의 현재 코딩 서브유닛에 대응하는 코딩 서브유닛으로서 병치된 참조 영상 내에 있는 코딩 서브유닛의 중심점 위치 샘플의 움직임 정보를 획득하고, 움직임 정보를 스케일링(scaling)하고, 움직임 정보를 현재 코딩 서브유닛 각각의 움직임 정보로 변환하고, 가용성 검사하고 중복된 항목 제거한 후에 이용 가능한 위치 블록에 대응하는 움직임 정보를 순차적으로 후보 움직임 정보 리스트에 삽입한다. 일부 가능한 구축 모드에 대해서는 실시예 S12.3의 관련 설명을 참조한다.
제5 측면에 따르면, 가능한 구현 프로세스에서, 상기 현재 블록의 폭은 임계치 이상이고, 및/또는 상기 현재 블록의 높이는 임계치 이상이다. 상기 임계치는 4, 8 또는 16일 수 있지만, 이에 한정되지 않는다.
제6 측면에 따르면, 본 발명은 디코딩 장치에 관한 것이다. 상기 디코딩 장치는, 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하는 경우, 상기 현재 블록의 최적 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트의 식별자를 획득하고, 상기 후보 움직임 정보 리스트에서 상기 최적 후보 움직임 정보의 색인을 획득하도록 구성된 획득 모듈 - 상기 현재 블록에 사용되는 인터 예측 모드는 병합 모드임 -; 상기 식별자에 기초하여 상기 후보 움직임 정보 리스트를 구축하도록 구성된 구축 모듈 - 상기 식별자가 제1 특징 값인 경우, 블록 기반 후보 움직임 정보 리스트를 구축하거나, 상기 식별자가 제2 특징 값인 경우, 서브블록 기반 후보 움직임 정보 리스트를 구축함 -; 상기 색인에 기초하여, 구축된 후보 움직임 정보 리스트로부터 최적 움직임 정보를 결정하도록 구성된 결정 모듈; 및 상기 최적 움직임 정보에 기초하여 상기 현재 블록을 예측하도록 구성된 예측 모듈을 포함한다.
제6 측면에 따르면, 가능한 구현 프로세스에서, 상기 구축 모듈은 추가로 구체적으로, 상기 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하지 않는 경우, 상기 블록 기반 후보 움직임 정보 리스트를 구축하도록 구성되며, 상기 현재 블록에 사용되는 인터 예측 모드는 상기 병합 모드이다.
제6 측면에 따르면, 가능한 구현 프로세스에서, 현재 블록이 미리 설정된 조건을 충족하는지는, 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하는지를 포함하지만 이에 한정되는 것은 아니다.
제6 측면에 따르면, 가능한 구현 프로세스에서, 상기 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하는 것은 다음을 포함한다: 상기 현재 블록의 폭이 임계치 이상 및/또는 상기 현재 블록의 높이가 임계치보다 이상이다.
선택적으로, 상기 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하는 경우는 상기 현재 블록의 폭이 임계치 이상이라는 것이고, 상기 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하지 않는다는 것은 상기 현재 블록의 폭이 임계치보다 작다는 것이며; 상기 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하는 경우는 상기 현재 블록의 높이가 임계치 이상이라는 것이고, 상기 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하지 않는다는 것은 상기 현재 블록의 높이가 임계치보다 작다는 것이며; 상기 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하는 경우는 상기 현재 블록의 폭이 임계치 이상이거나 상기 현재 블록의 높이가 다른 임계치 이상이라는 것이고, 상기 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하지 않는다는 것은 상기 현재 블록의 폭이 임계치보다 작고 상기 현재 블록의 높이가 다른 임계치보다 작다는 것이거나; 또는 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하는 경우는, 상기 현재 블록의 폭이 임계치 이상이고 상기 현재 블록의 높이가 다른 임계치 이상이라는 것이고, 상기 현재 블록이 미리 설정된 샘플 수량을 충족하지 않는 경우는 상기 현재 블록의 폭이 임계치보다 작거나 상기 현재 블록의 높이가 다른 임계치보다 작다는 것이다. 상기 임계치는 4, 8 또는 16일 수 있지만 이에 한정되는 것은 아니다. 이 논리는 단지 예일 뿐이며, 어떠한 한정도 구성하지 않는다는 것을 이해해야 한다. 또한, 본 발명에서는 폭과 높이의 관계도 한정되지 않는다.
제6 측면에 따르면, 가능한 구현 프로세스에서, 상기 블록 기반 후보 움직임 정보 리스트는 HEVC 표준 또는 HEVC 표준의 진화된 버전에 따라 정의된 병합 모드로 구축되는 후보 움직임 정보 리스트를 포함한다. 예를 들어, 미리 설정된 규칙에 따라 현재 코딩 블록의 공간적 또는 시간적으로 이웃하는 코딩 블록의 움직임 정보가 후보 움직임 정보 리스트에 추가된다. 일부 가능한 구축 모드에 대해서는, 실시예 S11.1의 관련 설명을 참조한다.
제6 측면에 따르면, 가능한 구현 프로세스에서, 상기 후보 움직임 정보 리스트 내의 모든 후보 움직임 정보는 상기 현재 블록의 공간적으로 또는 시간적으로 이웃하는 코딩된 블록의 움직임 정보일 수 있다. 대안으로, 상기 후보 움직임 정보 중 일부는 상기 현재 블록의 공간적으로 또는 시간적으로 이웃하는 코딩된 블록의 움직임 정보일 수 있고, 상기 후보 움직임 정보 중 일부는 다른 방식으로 획득된 움직임 정보일 수 있다.
제6 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는, 아핀 모델 병합, 또는 복합 병합 또는 ATMVP 중 적어도 하나의 서브블록 기반 병합 모드로 구축되는 후보 움직임 정보 리스트를 포함한다. 상기 서브블록 기반 후보 움직임 정보 리스트의 모든 후보 움직임 정보는 아핀 모델 병합 모드에서, 복합 병합 모드에서, 또는 ATMVP 모드에서만, 또는 복수의 상이한 모드에서 도출을 통해 획득할 수 있다. 상기 복수의 상이한 모드는 아핀 모델 병합, 복합 병합 및 ATMVP의 세 가지 모드의 임의의 조합일 수 있다. 경우에 따라서는, 후보 움직임 정보 리스트는 다른 서브블록 기반 모드에서 획득된 움직임 정보를 더 포함할 수 있다. 본 발명에서는 이를 상세하게 열거하거나 설명하지 않는다.
제6 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는 움직임 모델 기반 아핀 모델 병합(Affine model merge, AMM) 모드로 구축될 수 있다. 상기 현재 코딩 블록의 공간적으로 이웃하는 코딩 블록의 움직임 정보는 미리 설정된 규칙에 따라 상기 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어 다음과 같으나 이에 한정되지는 않는다: 먼저, 아핀 코딩된 블록을 찾고, 아핀 코딩된 블록의 제어점의 움직임 정보를 획득하고, 아핀 변환 모델에 따라 현재 코딩 블록의 왼쪽 위 정점의 움직임 정보 및 오른쪽 위 정점의 움직임 정보를 도출하고, 가용성 검사 및 중복된 항목 제거 후에, 사용 가능한 위치 블록에 대응하는 음직임 정보를 후보 움직임 정보 리스트에 순차적으로 삽입한다. 일부 가능한 구축 모드에 대해서는 실시예 S12.1의 관련 설명을 참조한다.
제6 측면에 따르면, 가능한 구현 프로세스에서, 서브블록 기반 후보 움직임 정보 리스트는 제어점 기반 복합 병합 모드(complex merge mode)로 구축될 수 있다. 상기 현재 코딩 블록의 공간적으로 이웃하는 코딩 블록의 움직임 정보는 미리 설정된 규칙에 따라 상기 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어, 도출을 통해 각각의 제어점의 움직임 정보를 획득하고, 제어점의 움직임 정보를 조합하여 비 병진(아핀 모델 기반) 움직임 정보를 획득하고, 미리 구성된 시퀀스로 제어점의 움직임 정보를 조합하여 획득한 이들 모델을 순회하고, 유효한 모델에서 후보 움직임 정보의 가용성을 검사하고 중복된 항목을 제거하고, 중복 및 무자격 정보를 제외한 움직임 정보를 후보 움직임 정보 리스트에 삽입한다. 몇몇 가능한 구축 모드에 대해서는 실시예 S12.2의 관련 설명을 참조한다.
제6 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는 진보된 시간 움직임 벡터 예측(Advanced temporal motion vector predict, ATMVP) 모드로 구성될 수 있다. 구체적으로, ATMVP 후보 움직임 정보가 미리 설정된 규칙에 따라 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어 다음과 같지만 이에 한정되는 것은 아니다: 먼저 병치된 참조 영상(Collocated reference picture)를 결정하고, 그런 다음, 현재 코딩 유닛(현재 블록)을 각각 M×N 크기의 코딩 서브유닛(코딩 서브블록)으로 분할하고, 각각의 현재 코딩 서브유닛에 대응하는 코딩 서브유닛으로서 병치된 참조 영상 내에 있는 코딩 서브유닛의 중심점 위치 샘플의 움직임 정보를 획득하고, 움직임 정보를 스케일링(scaling)하고, 움직임 정보를 현재 코딩 서브유닛 각각의 움직임 정보로 변환하고, 가용성 검사하고 중복된 항목 제거한 후에 이용 가능한 위치 블록에 대응하는 움직임 정보를 순차적으로 후보 움직임 정보 리스트에 삽입한다. 일부 가능한 구축 모드에 대해서는 실시예 S12.3의 관련 설명을 참조한다.
제7 측면에 따르면, 본 발명은 디코딩 방법 또는 움직임 벡터 예측 방법에 관한 것이다. 상기 방법은, 비트스트림을 파싱하여 신택스 요소(syntax element)를 획득하는 단계 - 상기 신택스 요소는 적어도 현재 블록의 최적 후보 움직임 정보의 색인을 포함함 -; 상기 신택스 요소에 기초하여, 상기 현재 영상 블록에 대한 제1 리스트 또는 제2 리스트를 구축하기로 결정하는 단계 - 상기 제1 리스트는 블록 기반 후보 움직임 정보 리스트이고, 상기 제2 리스트는 서브블록 기반 후보 움직임 정보 리스트임 -; 상기 색인에 기초하여 상기 제1 리스트 또는 상기 제2 리스트로부터 최적 움직임 정보를 결정하는 단계; 및 상기 최적 움직임 정보에 기초하여 현재 블록을 예측하는 단계를 포함한다.
제7 측면에 따르면, 가능한 구현 프로세스에서, 상기 블록 기반 후보 움직임 정보 리스트는 종래의 병합(일부 시나리오에서는 general_merge 또는 regular_merge로 표현될 수도 있음) 모드로 구축된 후보 움직임 정보 리스트이다.
제7 측면에 따르면, 가능한 구현 프로세스에서, 상기 종래의 병합 모드는 HEVC 표준 또는 상기 HEVC 표준의 진화된 버전에 따라 정의된 모드를 포함한다. 구체적으로, 상기 블록 기반 후보 움직임 정보 리스트는 상기 HEVC 표준 또는 상기 HEVC 표준의 진화된 버전에 따라 정의된 종래의 병합 모드로 구축되는 후보 움직임 정보 리스트를 포함한다.
제7 측면에 따르면, 가능한 구현 프로세스에서, 상기 제1 리스트 내의 후보 움직임 정보는 상기 현재 영상의 블록의 좌측 위(upper-left)에 공간적으로 이웃하는 블록의 움직임 정보, 또는 상기 현재 영상 블록의 왼쪽에 공간적으로 이웃하는 블록의 움직임 정보, 또는 상기 현재 영상 블록의 왼쪽 아래(lower-left)에 공간적으로 이웃하는 블록의 움직임 정보, 또는 상기 현재 영상 블록의 오른쪽 위에 공간적으로 이웃하는 블록의 움직임 정보, 또는 상기 현재 영상 블록의 오른쪽에 공간적으로 이웃하는 블록의 움직임 정보 중 하나 이상을 포함한다.
제7 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는 서브블록 기반 병합(merge_subblock) 모드로 구축된 후보 움직임 정보 리스트이다.
제7 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 병합 모드는 아핀 모델 병합, 복합 병합 또는 ATMVP 중 적어도 하나를 포함한다. 구체적으로, 상기 서브블록 기반 후보 움직임 정보 리스트는 아핀 모델 병합, 복합 병합 또는 ATMVP 중 적어도 하나의 서브블록 기반 병합 모드로 구축된 후보 움직임 정보 리스트를 포함한다.
제7 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는 ATMVP의 서브블록 기반 병합 모드로만 구축되는 후보 움직임 정보 리스트를 포함한다.
제7 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트의 모든 후보 움직임 정보는 아핀 모델 병합 모드에서, 복합 병합 모드에서, 또는 ATMVP 모드에서만, 또는 복수의 상이한 모드에서 도출을 통해 획득할 수 있다. 상기 복수의 상이한 모드는 아핀 모델 병합, 복합 병합 및 ATMVP의 세 가지 모드의 임의의 조합일 수 있다. 경우에 따라서는, 후보 움직임 정보 리스트는 다른 서브블록 기반 모드에서 획득된 움직임 정보를 더 포함할 수 있다. 본 발명에서는 이를 상세하게 열거하거나 설명하지 않는다.
제7 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는 움직임 모델 기반 아핀 모델 병합(Affine model merge, AMM) 모드로 구축될 수 있다. 상기 현재 코딩 블록의 공간적으로 이웃하는 코딩 블록의 움직임 정보는 미리 설정된 규칙에 따라 상기 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어 다음과 같으나 이에 한정되지는 않는다: 먼저, 아핀 코딩된 블록을 찾고, 아핀 코딩된 블록의 제어점의 움직임 정보를 획득하고, 아핀 변환 모델에 따라 현재 코딩 블록의 왼쪽 위 정점의 움직임 정보 및 오른쪽 위 정점의 움직임 정보를 도출하고, 가용성 검사 및 중복된 항목 제거 후에, 사용 가능한 위치 블록에 대응하는 음직임 정보를 후보 움직임 정보 리스트에 순차적으로 삽입한다. 일부 가능한 구축 모드에 대해서는 실시예 S12.1의 관련 설명을 참조한다.
제7 측면에 따르면, 가능한 구현 프로세스에서, 서브블록 기반 후보 움직임 정보 리스트는 제어점 기반 복합 병합 모드(complex merge mode)로 구축될 수 있다. 상기 현재 코딩 블록의 공간적으로 이웃하는 코딩 블록의 움직임 정보는 미리 설정된 규칙에 따라 상기 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어, 도출을 통해 각각의 제어점의 움직임 정보를 획득하고, 제어점의 움직임 정보를 조합하여 비 병진(아핀 모델 기반) 움직임 정보를 획득하고, 미리 구성된 시퀀스로 제어점의 움직임 정보를 조합하여 획득한 이들 모델을 순회하고, 유효한 모델에서 후보 움직임 정보의 가용성을 검사하고 중복된 항목을 제거하고, 중복 및 무자격 정보를 제외한 움직임 정보를 후보 움직임 정보 리스트에 삽입한다. 몇몇 가능한 구축 모드에 대해서는 실시예 S12.2의 관련 설명을 참조한다.
제7 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는 진보된 시간 움직임 벡터 예측(Advanced temporal motion vector predict, ATMVP) 모드로 구성될 수 있다. 구체적으로, ATMVP 후보 움직임 정보가 미리 설정된 규칙에 따라 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어 다음과 같지만 이에 한정되는 것은 아니다: 먼저 병치된 참조 영상(Collocated reference picture)를 결정하고, 그런 다음, 현재 코딩 유닛(현재 블록)을 각각 M×N 크기의 코딩 서브유닛(코딩 서브블록)으로 분할하고, 각각의 현재 코딩 서브유닛에 대응하는 코딩 서브유닛으로서 병치된 참조 영상 내에 있는 코딩 서브유닛의 중심점 위치 샘플의 움직임 정보를 획득하고, 움직임 정보를 스케일링(scaling)하고, 움직임 정보를 현재 코딩 서브유닛 각각의 움직임 정보로 변환하고, 가용성 검사하고 중복된 항목 제거한 후에 이용 가능한 위치 블록에 대응하는 움직임 정보를 순차적으로 후보 움직임 정보 리스트에 삽입한다. 일부 가능한 구축 모드에 대해서는 실시예 S12.3의 관련 설명을 참조한다.
측면에 따르면, 가능한 구현 프로세스에서, 상기 신택스 요소는 리스트 색인을 포함하고, 상기 신택스 요소에 기초하여, 상기 현재 영상 블록에 대한 제1 리스트 또는 제2 리스트를 구축하기로 결정하는 단계는, 후보 움직임 정보 리스트 색인을 획득하는 단계 - 상기 리스트 색인이 제1 특징 값인 경우, 상기 현재 영상 블록에 대한 상기 제1 리스트를 구축하도록 지시하거나, 상기 리스트 색인이 제2 특징 값인 경우, 상기 현재 영상 블록에 대한 제2 리스트를 구축하도록 지시함 -를 포함한다.
제7 측면에 따르면, 가능한 구현 프로세스에서, 상기 신택스 요소는 상기 현재 블록에 사용되는 종래의 병합 모드를 지시하는 데 사용되는 지시 정보 또는 상기 현재 블록에 사용되는 서브블록 기반 병합 모드를 지시하는 데 사용되는 지시 정보를 더 포함한다.
제7 측면에 따르면, 가능한 구현 프로세스에서, 상기 신택스 요소는 상기 블록 기반 후보 움직임 정보 리스트가 상기 현재 블록에 사용된다는 것을 지시하는 데 사용되는 지시 정보 또는 상기 서브블록 기반 후보 움직임 정보 리스트가 상기 현재 블록에 사용된다는 것을 지시하는 데 사용되는 지시 정보를 더 포함한다.
제7 측면에 따르면, 가능한 구현 프로세스에서, 상기 제1 특징 값은 0 또는 1일 수 있고, 상기 제2 특징 값은 1 또는 0일 수 있다. 선택적으로, 식별자는 예를 들어 list-idx로 표현될 수 있다. 그러나 이것은 한정되지 않는다. 선택적으로, 블록 기반 모드로 구축된 후보 움직임 정보 리스트는 list0(또는 list1)으로 표현될 수 있고, 서브블록 기반 모드로 구축된 후보 움직임 정보 리스트는 list1(또는 list0)로 표현될 수 있다. 특징 값의 구체적인 값, 또는 식별자 및 리스트의 구체적인 표현 기호는 한정되지 않으며 본 발명에서 속속들이 설명되지 않음을 이해해야 한다.
제7 측면에 따르면, 가능한 구현 프로세스에서, 상기 현재 블록의 폭은 임계치 이상이고, 및/또는 상기 현재 블록의 높이는 임계치 이상이다. 상기 임계치는 4, 8 또는 16일 수 있지만, 이에 한정되지 않는다.
제7 측면에 따르면, 가능한 구현 프로세스에서, 상기 최적 움직임 정보가 블록 기반 후보 움직임 정보 리스트 내의 움직임 정보이면, 상기 현재 블록은 상기 최적 움직임 정보에 기초하여 예측된다.
제7 측면에 따르면, 가능한 구현 프로세스에서, 상기 최적 움직임 정보가 서브블록 기반 후보 움직임 정보 리스트 내의 움직임 정보이면, 적어도 다음의 세 가지 경우가 포함된다.
사례 1: S23에서 결정된 최적 움직임 정보가 아핀 모드(적어도 아핀 모델 병합 모드 또는 복합 병합 모드 포함)에서 획득되면, 현재 블록의 서브블록에 대응하는 움직임 정보는 최적 움직임 정보에 기초하여 도출되고, 현재 블록의 서브블록이 예측된다. 현재 블록은 복수의 서브블록을 포함할 수 있고, 현재 블록의 서브블록은 복수의 서브블록 중 어느 하나일 수 있다. 가능한 구현 프로세스에서, 현재 블록의 서브블록 각각에 대응하는 움직임 정보는 최적 움직임 정보에 기초하여 도출되고, 현재 블록의 서브블록 각각에 대응하는 움직임 정보를 도출하고, 이에 상응하여 현재 블록의 서브블록 각각을 예측한다.
사례 2: S23에서 결정된 최적 움직임 정보가 ATMVP 모드에서 획득되면, 현재 블록의 서브블록은 최적 움직임 정보에 기초하여 예측된다. 가능한 구현 프로세스에서 최적 후보 움직임 정보는 움직임 정보의 조합일 수 있으며 현재 블록의 서브블록 각각에 대응하는 움직임 정보를 포함하고, 현재 블록의 서브블록 각각은 이에 상응하여 예측된다.
사례 3: S23에서 결정된 최적 움직임 정보가 지시를 통해 ATMVP 모드에서 획득되면, 최적 움직임 정보는 대응하는 지시에 기초하여 획득되고, 현재 블록의 서브블록은 최적 움직임 정보에 기초하여 예측된다. 가능한 구현 프로세스에서, 최적 후보 움직임 정보는 지시 정보에 기초하여 획득될 수 있다. 현재 블록의 서브블록 각각에 대응하는 움직임 정보는 지시 정보에 기초하여 ATMVP 모드에서 획득될 수 있으며, 현재 블록의 서브블록 각각은 이에 상응하여 예측된다.
제8 측면에 따르면, 본 발명은 디코딩 장치 또는 움직임 벡터 예측 장치에 관한 것이다. 상기 장치는, 비트스트림을 파싱하여 신택스 요소를 획득하도록 구성된 획득 모듈 - 상기 신택스 요소는 적어도 현재 블록의 최적 후보 움직임 정보의 색인을 포함함 -; 상기 신택스 요소에 기초하여, 상기 현재 블록에 대한 제1 리스트 또는 제2 리스트의 구축을 결정하도록 구성된 구축 모듈 - 상기 제1 리스트는 블록 기반 후보 움직임 정보 리스트이고, 상기 제2 리스트는 서브블록 기반 후보 움직임 정보 리스트임 -; 상기 색인에 기초하여, 상기 제1 리스트 또는 상기 제2 리스트로부터 최적 움직임 정보를 결정하도록 구성된 결정 모듈; 및 상기 최적 움직임 정보에 기초하여 현재 블록을 예측하도록 구성된 예측 모듈을 포함한다.
제8 측면에 따르면, 가능한 구현 프로세스에서, 상기 블록 기반 후보 움직임 정보 리스트는 종래의 병합(일부 시나리오에서는 general_merge 또는 regular_merge로 표현될 수도 있음) 모드로 구축된 후보 움직임 정보 리스트이다.
제8 측면에 따르면, 가능한 구현 프로세스에서, 상기 종래의 병합 모드는 HEVC 표준 또는 상기 HEVC 표준의 진화된 버전에 따라 정의된 모드를 포함한다. 구체적으로, 상기 블록 기반 후보 움직임 정보 리스트는 상기 HEVC 표준 또는 상기 HEVC 표준의 진화된 버전에 따라 정의된 종래의 병합 모드로 구축되는 후보 움직임 정보 리스트를 포함한다.
제8 측면에 따르면, 가능한 구현 프로세스에서, 상기 제1 리스트 내의 후보 움직임 정보는 상기 현재 영상의 블록의 좌측 위(upper-left)에 공간적으로 이웃하는 블록의 움직임 정보, 또는 상기 현재 영상 블록의 왼쪽에 공간적으로 이웃하는 블록의 움직임 정보, 또는 상기 현재 영상 블록의 왼쪽 아래(lower-left)에 공간적으로 이웃하는 블록의 움직임 정보, 또는 상기 현재 영상 블록의 오른쪽 위에 공간적으로 이웃하는 블록의 움직임 정보, 또는 상기 현재 영상 블록의 오른쪽에 공간적으로 이웃하는 블록의 움직임 정보 중 하나 이상을 포함한다.
제8 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는 서브블록 기반 병합(merge_subblock) 모드로 구축된 후보 움직임 정보 리스트이다.
제8 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 병합 모드는 아핀 모델 병합, 복합 병합 또는 ATMVP 중 적어도 하나를 포함한다. 구체적으로, 상기 서브블록 기반 후보 움직임 정보 리스트는 아핀 모델 병합, 복합 병합 또는 ATMVP 중 적어도 하나의 서브블록 기반 병합 모드로 구축된 후보 움직임 정보 리스트를 포함한다.
제8 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는 ATMVP의 서브블록 기반 병합 모드로만 구축되는 후보 움직임 정보 리스트를 포함한다.
제8 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트의 모든 후보 움직임 정보는 아핀 모델 병합 모드에서, 복합 병합 모드에서, 또는 ATMVP 모드에서만, 또는 복수의 상이한 모드에서 도출을 통해 획득할 수 있다. 상기 복수의 상이한 모드는 아핀 모델 병합, 복합 병합 및 ATMVP의 세 가지 모드의 임의의 조합일 수 있다. 경우에 따라서는, 후보 움직임 정보 리스트는 다른 서브블록 기반 모드에서 획득된 움직임 정보를 더 포함할 수 있다. 본 발명에서는 이를 상세하게 열거하거나 설명하지 않는다.
제8 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는 움직임 모델 기반 아핀 모델 병합(Affine model merge, AMM) 모드로 구축될 수 있다. 상기 현재 코딩 블록의 공간적으로 이웃하는 코딩 블록의 움직임 정보는 미리 설정된 규칙에 따라 상기 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어 다음과 같으나 이에 한정되지는 않는다: 먼저, 아핀 코딩된 블록을 찾고, 아핀 코딩된 블록의 제어점의 움직임 정보를 획득하고, 아핀 변환 모델에 따라 현재 코딩 블록의 왼쪽 위 정점의 움직임 정보 및 오른쪽 위 정점의 움직임 정보를 도출하고, 가용성 검사 및 중복된 항목 제거 후에, 사용 가능한 위치 블록에 대응하는 음직임 정보를 후보 움직임 정보 리스트에 순차적으로 삽입한다. 일부 가능한 구축 모드에 대해서는 실시예 S12.1의 관련 설명을 참조한다.
제8 측면에 따르면, 가능한 구현 프로세스에서, 서브블록 기반 후보 움직임 정보 리스트는 제어점 기반 복합 병합 모드(complex merge mode)로 구축될 수 있다. 상기 현재 코딩 블록의 공간적으로 이웃하는 코딩 블록의 움직임 정보는 미리 설정된 규칙에 따라 상기 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어, 도출을 통해 각각의 제어점의 움직임 정보를 획득하고, 제어점의 움직임 정보를 조합하여 비 병진(아핀 모델 기반) 움직임 정보를 획득하고, 미리 구성된 시퀀스로 제어점의 움직임 정보를 조합하여 획득한 이들 모델을 순회하고, 유효한 모델에서 후보 움직임 정보의 가용성을 검사하고 중복된 항목을 제거하고, 중복 및 무자격 정보를 제외한 움직임 정보를 후보 움직임 정보 리스트에 삽입한다. 몇몇 가능한 구축 모드에 대해서는 실시예 S12.2의 관련 설명을 참조한다.
제8 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는 진보된 시간 움직임 벡터 예측(Advanced temporal motion vector predict, ATMVP) 모드로 구성될 수 있다. 구체적으로, ATMVP 후보 움직임 정보가 미리 설정된 규칙에 따라 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어 다음과 같지만 이에 한정되는 것은 아니다: 먼저 병치된 참조 영상(Collocated reference picture)를 결정하고, 그런 다음, 현재 코딩 유닛(현재 블록)을 각각 M×N 크기의 코딩 서브유닛(코딩 서브블록)으로 분할하고, 각각의 현재 코딩 서브유닛에 대응하는 코딩 서브유닛으로서 병치된 참조 영상 내에 있는 코딩 서브유닛의 중심점 위치 샘플의 움직임 정보를 획득하고, 움직임 정보를 스케일링(scaling)하고, 움직임 정보를 현재 코딩 서브유닛 각각의 움직임 정보로 변환하고, 가용성 검사하고 중복된 항목 제거한 후에 이용 가능한 위치 블록에 대응하는 움직임 정보를 순차적으로 후보 움직임 정보 리스트에 삽입한다. 일부 가능한 구축 모드에 대해서는 실시예 S12.3의 관련 설명을 참조한다.
제8 측면에 따르면, 가능한 구현 프로세스에서, 상기 신택스 요소는 리스트 색인을 포함하고, 상기 신택스 요소에 기초하여, 상기 구축 모듈은 구체적으로, 후보 움직임 정보 리스트 색인을 획득하도록 구성되며, 상기 리스트 색인이 제1 특징 값인 경우, 상기 현재 영상 블록에 대한 상기 제1 리스트를 구축하도록 지시하거나, 상기 리스트 색인이 제2 특징 값인 경우, 상기 현재 영상 블록에 대한 제2 리스트를 구축하도록 지시한다.
제8 측면에 따르면, 가능한 구현 프로세스에서, 상기 신택스 요소는 상기 현재 블록에 사용되는 종래의 병합 모드를 지시하는 데 사용되는 지시 정보 또는 상기 현재 블록에 사용되는 서브블록 기반 병합 모드를 지시하는 데 사용되는 지시 정보를 더 포함한다.
제8 측면에 따르면, 가능한 구현 프로세스에서, 상기 신택스 요소는 상기 블록 기반 후보 움직임 정보 리스트가 상기 현재 블록에 사용된다는 것을 지시하는 데 사용되는 지시 정보 또는 상기 서브블록 기반 후보 움직임 정보 리스트가 상기 현재 블록에 사용된다는 것을 지시하는 데 사용되는 지시 정보를 더 포함한다.
제8 측면에 따르면, 가능한 구현 프로세스에서, 상기 제1 특징 값은 0 또는 1일 수 있고, 상기 제2 특징 값은 1 또는 0일 수 있다. 선택적으로, 식별자는 예를 들어 list-idx로 표현될 수 있다. 그러나 이것은 한정되지 않는다. 선택적으로, 블록 기반 모드로 구축된 후보 움직임 정보 리스트는 list0(또는 list1)으로 표현될 수 있고, 서브블록 기반 모드로 구축된 후보 움직임 정보 리스트는 list1(또는 list0)로 표현될 수 있다. 특징 값의 구체적인 값, 또는 식별자 및 리스트의 구체적인 표현 기호는 한정되지 않으며 본 발명에서 속속들이 설명되지 않음을 이해해야 한다.
제8 측면에 따르면, 가능한 구현 프로세스에서, 상기 현재 블록의 폭은 임계치 이상이고, 및/또는 상기 현재 블록의 높이는 임계치 이상이다. 상기 임계치는 4, 8 또는 16일 수 있지만, 이에 한정되지 않는다.
본 발명은 인코딩 방법 또는 움직임 벡터 예측 방법에 관한 것이다. 상기 방법은, 제1 리스트를 구축하는 단계 - 상기 제1 리스트는 블록 기반 후보 움직임 정보 리스트임 -; 제2 리스트를 구축하는 단계 - 상기 제2 리스트는 서브블록 기반 후보 움직임 정보 리스트임 -; 상기 제1 후보 움직임 정보 리스트 및 상기 제2 후보 움직임 정보 리스트로부터 최적 후보 움직임 정보를 결정하는 단계; 및 상기 최적 움직임 정보에 기초하여 현재 블록을 예측하는 단계를 포함한다.
제9 측면에 따르면, 가능한 구현 프로세스에서, 상기 방법은, 현재 블록의 최적 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트를 결정하는 데 사용되는 식별자를 획득하고, 상기 후보 움직임 정보 리스트에서 상기 최적 후보 움직임 정보의 색인을 획득하는 단계 - 상기 현재 블록에 사용되는 인터 예측 모드는 병합 모드이고, 상기 식별자가 제1 특징 값인 경우, 상기 후보 움직임 정보 리스트는 제1 리스트이거나, 상기 식별자가 제2 특징 값인 경우, 상기 후보 움직임 정보 리스트는 제2 리스트임 -; 및 상기 식별자와 상기 색인을 비트스트림으로 인코딩하는 단계를 더 포함한다.
제10 측면에 따르면, 본 발명은 인코딩 방법 또는 움직임 벡터 예측 방법에 관한 것이다. 상기 방법은, 현재 블록의 최적 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트를 결정하는 데 사용되는 식별자를 획득하고, 상기 후보 움직임 정보 리스트에서 상기 최적 후보 움직임 정보의 색인을 획득하는 단계 - 상기 현재 블록에 사용되는 인터 예측 모드는 병합 모드이고, 상기 식별자가 제1 특징 값인 경우, 상기 후보 움직임 정보 리스트는 블록 기반 후보 움직임 정보 리스트이거나, 상기 식별자가 제2 특징 값인 경우, 상기 후보 움직임 정보 리스트는 서브블록 기반 후보 움직임 정보 리스트임 -; 및 상기 식별자와 상기 색인을 비트스트림으로 인코딩하는 단계를 포함한다.
제11 측면에 따르면, 본 발명은 인코딩 방법 또는 움직임 벡터 예측 방법에 관한 것이다. 상기 방법은, 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하면, 제1 리스트와 제2 리스트를 구축하는 단계 - 상기 제1 리스트는 블록 기반 후보 움직임 정보 리스트이고, 상기 제2 리스트는 서브블록 기반 후보 움직임 정보 리스트이며, 상기 현재 블록에 사용되는 인터 예측 모드는 병합 모드임 -; 상기 제1 리스트 및 상기 제2 리스트로부터 최적 후보 움직임 정보를 결정하는 단계; 및 상기 최적 움직임 정보에 기초하여 상기 현재 블록을 예측하는 단계를 포함한다.
제11 측면에 따르면, 가능한 구현 프로세스에서, 상기 방법은, 상기 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하면, 상기 제1 리스트를 구축하는 단계 - 상기 제1 리스트는 블록 기반 후보 움직임 정보 리스트이고, 상기 현재 블록에 사용되는 인터 예측 모드는 병합 모드임 -; 상기 제1 리스트로부터 상기 최적 후보 움직임 정보를 결정하는 단계; 및 상기 최적 움직임 정보에 기초하여 상기 현재 블록을 예측하는 단계를 더 포함한다.
제12 측면에 따르면, 본 발명은 인코딩 장치 또는 움직임 벡터 예측 장치에 관한 것이다. 상기 장치는, 제1 리스트 및 제2 리스트를 구축하도록 구성된 구축 모듈 - 상기 제1 리스트는 블록 기반 후보 움직임 정보 리스트이고, 상기 제2 리스트는 서브블록 기반 후보 움직임 정보 리스트임 -; 상기 제1 후보 움직임 정보 리스트 및 상기 제2 후보 움직임 정보 리스트로부터 최적 후보 움직임 정보를 결정하도록 구성된 결정 모듈; 및 상기 최적 움직임 정보에 기초하여 상기 현재 블록을 예측하도록 구성된 예측 모듈을 포함한다.
제12 측면에 따르면, 가능한 구현 프로세스에서, 상기 장치는, 현재 블록의 최적 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트를 결정하는 데 사용되는 식별자를 획득하고, 상기 후보 움직임 정보 리스트에서 상기 최적 후보 움직임 정보의 색인을 획득하도록 구성된 획득 모듈 - 상기 현재 블록에 사용되는 인터 예측 모드는 병합 모드이고, 상기 식별자가 제1 특징 값인 경우, 상기 후보 움직임 정보 리스트는 제1 리스트이거나, 상기 식별자가 제2 특징 값인 경우, 상기 후보 움직임 정보 리스트는 제2 리스트임 -; 및 상기 식별자와 상기 색인을 비트스트림으로 인코딩하도록 구성된 인코딩 모듈을 더 포함한다.
제13 측면에 따르면, 본 발명은 인코딩 장치 또는 움직임 벡터 예측 장치에 관한 것이다. 상기 장치는, 현재 블록의 최적 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트를 결정하는 데 사용되는 식별자를 획득하고, 상기 후보 움직임 정보 리스트에서 상기 최적 후보 움직임 정보의 색인을 획득하도록 구성된 획득 모듈 - 상기 현재 블록에 사용되는 인터 예측 모드는 병합 모드이고, 상기 식별자가 제1 특징 값인 경우, 상기 후보 움직임 정보 리스트는 블록 기반 후보 움직임 정보 리스트이거나, 상기 식별자가 제2 특징 값인 경우, 상기 후보 움직임 정보 리스트는 서브블록 기반 후보 움직임 정보 리스트임 -; 및 상기 식별자와 상기 색인을 비트스트림으로 인코딩하도록 구성된 인코딩 모듈을 포함한다.
제14 측면에 따르면, 본 발명은 인코딩 장치 또는 움직임 벡터 예측 장치에 관한 것이다. 상기 장치는, 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하면, 제1 리스트와 제2 리스트를 구축하도록 구성된 구축 모듈 - 상기 제1 리스트는 블록 기반 후보 움직임 정보 리스트이고, 상기 제2 리스트는 서브블록 기반 후보 움직임 정보 리스트이며, 상기 현재 블록에 사용되는 인터 예측 모드는 병합 모드임 -; 상기 제1 리스트 및 상기 제2 리스트로부터 최적 후보 움직임 정보를 결정하도록 구성된 결정 모듈; 및 상기 최적 움직임 정보에 기초하여 상기 현재 블록을 예측하도록 구성된 예측 모듈을 포함한다.
제14 측면에 따르면, 가능한 구현 프로세스에서, 상기 구축 모듈은 추가로,
상기 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하면, 상기 제1 리스트를 구축하도록 구성되며, 상기 제1 리스트는 상기 블록 기반 후보 움직임 정보 리스트이고, 상기 현재 블록에 사용되는 상기 인터 예측 모드는 상기 병합 모드이다.
제9 측면 내지 제14 측면(제9 측면, 제10 측면, 제11 측면, 제12 측면, 제13 측면 및 제14 측면 중 어느 하나를 포함함)에 따르면, 가능한 구현 프로세스에서, 상기 제1 특징 값은 0 또는 1일 수 있고, 제2 특징 값은 1 또는 0일 수 있다. 선택적으로, 식별자는 예를 들어 list-idx로 표현될 수 있다. 그러나 이것은 한정되지 않는다. 선택적으로, 블록 기반 모드로 구축된 후보 움직임 정보 리스트는 list0(또는 list1)으로 표현될 수 있고, 서브블록 기반 모드로 구축된 후보 움직임 정보 리스트는 list1(또는 list0)로 표현될 수 있다. 특징 값의 구체적인 값, 또는 식별자 및 리스트의 구체적인 표현 기호는 한정되지 않으며 본 발명에서 속속들이 설명되지 않음을 이해해야 한다.
제9 측면 내지 제14 측면에 따르면, 가능한 구현 프로세스에서, 상기 블록 기반 후보 움직임 정보 리스트는 HEVC 표준 또는 HEVC 표준의 진화된 버전에 따라 정의된 병합 모드로 구축되는 후보 움직임 정보 리스트를 포함한다. 예를 들어, 미리 설정된 규칙에 따라 현재 코딩 블록의 공간적 또는 시간적으로 이웃하는 코딩 블록의 움직임 정보가 후보 움직임 정보 리스트에 추가된다. 일부 가능한 구축 모드에 대해서는, 실시예 S11.1의 관련 설명을 참조한다.
제9 측면 내지 제14 측면에 따르면, 가능한 구현 프로세스에서, 상기 블록 기반 후보 움직임 정보 리스트 내의 후보 움직임 정보는 상기 현재 블록의 공간적으로 이웃하는 코딩된 블록의 움직임 정보 또는 상기 현재 블록의 시간적으로 이웃하는 코딩된 블록의 움직임 정보 중 적어도 하나를 포함한다. 상기 후보 움직임 정보 리스트 내의 모든 후보 움직임 정보는 상기 현재 블록의 공간적으로 또는 시간적으로 이웃하는 코딩된 블록의 움직임 정보일 수 있다. 대안으로, 상기 후보 움직임 정보 중 일부는 상기 현재 블록의 공간적으로 또는 시간적으로 이웃하는 코딩된 블록의 움직임 정보일 수 있고, 상기 후보 움직임 정보 중 일부는 다른 방식으로 획득된 움직임 정보일 수 있다.
제9 측면 내지 제14 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는, 아핀 모델 병합 또는 복합 병합 또는 ATMVP 중 적어도 하나의 서브블록 기반 병합 모드로 구축되는 후보 움직임 정보 리스트를 포함한다. 상기 서브블록 기반 후보 움직임 정보 리스트의 모든 후보 움직임 정보는 아핀 모델 병합 모드에서, 복합 병합 모드에서, 또는 ATMVP 모드에서만, 또는 복수의 상이한 모드에서 도출을 통해 획득할 수 있다. 복수의 상이한 모드는 아핀 모델 병합, 복합 병합 및 ATMVP의 세 가지 모드의 임의의 조합일 수 있다. 경우에 따라서는, 후보 움직임 정보 리스트는 다른 서브블록 기반 모드에서 획득된 움직임 정보를 더 포함할 수 있다. 본 발명에서는 이를 상세하게 열거하거나 설명하지 않는다.
제9 측면 내지 제14 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는 움직임 모델 기반 아핀 모델 병합(Affine model merge, AMM) 모드로 구축될 수 있다. 상기 현재 코딩 블록의 공간적으로 이웃하는 코딩 블록의 움직임 정보는 미리 설정된 규칙에 따라 상기 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어 다음과 같으나 이에 한정되지는 않는다: 먼저 아핀 코딩된 블록을 찾고, 아핀 코딩된 블록의 제어점의 움직임 정보를 획득하고, 아핀 변환 모델에 따라 현재 코딩 블록의 왼쪽 위 정점(의 움직임 정보 및 오른쪽 위 정점의 움직임 정보를 도출하고, 가용성 검사 및 중복된 항목 제거 후에, 사용 가능한 위치 블록에 대응하는 음직임 정보를 후보 움직임 정보 리스트에 순차적으로 삽입한다. 일부 가능한 구축 모드에 대해서는 실시예 S12.1의 관련 설명을 참조한다.
제9 측면 내지 제14 측면에 따르면, 가능한 구현 프로세스에서, 서브블록 기반 후보 움직임 정보 리스트는 제어점 기반 복합 병합 모드(complex merge mode)로 구축될 수 있다. 상기 현재 코딩 블록의 공간적으로 이웃하는 코딩 블록의 움직임 정보는 미리 설정된 규칙에 따라 상기 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어, 도출을 통해 각각의 제어점의 움직임 정보를 획득하고, 제어점의 움직임 정보를 조합하여 비 병진(아핀 모델 기반) 움직임 정보를 획득하고, 미리 구성된 시퀀스로 제어점의 움직임 정보를 조합하여 획득한 이들 모델을 순회하고, 유효한 모델에서 후보 움직임 정보의 가용성을 검사하고 중복된 항목을 제거하고, 중복 및 무자격 정보를 제외한 움직임 정보를 후보 움직임 정보 리스트에 삽입하는 것이다. 몇몇 가능한 구축 모드에 대해서는 실시예 S12.2의 관련 설명을 참조한다.
제9 측면 내지 제14 측면에 따르면, 가능한 구현 프로세스에서, 상기 서브블록 기반 후보 움직임 정보 리스트는 진보된 시간 움직임 벡터 예측(Advanced temporal motion vector predict, ATMVP) 모드로 구축될 수 있다. 구체적으로, ATMVP 후보 움직임 정보가 미리 설정된 규칙에 따라 후보 움직임 정보 리스트에 추가된다. 구체적인 구현 방법은 예를 들어 다음과 같지만 이에 한정되는 것은 아니다: 먼저 병치된 참조 영상(Collocated reference picture)를 결정하고, 그런 다음, 현재 코딩 유닛(현재 블록)을 각각 M×N 크기의 코딩 서브유닛(코딩 서브블록)으로 분할하고, 각각의 현재 코딩 서브유닛에 대응하는 코딩 서브유닛으로서 병치된 참조 영상 내에 있는 코딩 서브유닛의 중심점 위치 샘플의 움직임 정보를 획득하고, 움직임 정보를 스케일링하고, 움직임 정보를 현재 코딩 서브유닛 각각의 움직임 정보로 변환하고, 가용성 검사하고 중복된 항목 제거한 후에 이용 가능한 위치 블록에 대응하는 움직임 정보를 순차적으로 후보 움직임 정보 리스트에 삽입한다. 일부 가능한 구축 모드에 대해서는 실시예 S12.3의 관련 설명을 참조한다.
제9 측면 내지 제14 측면에 따르면, 가능한 구현 프로세스에서, 상기 현재 블록의 폭은 임계치 이상이고, 및/또는 상기 현재 블록의 높이는 임계치 이상이다. 상기 임계치는 4, 8 또는 16일 수 있지만, 이에 한정되지 않는다.
본 발명에 따른 전술한 가능한 방법의 다른 특징 및 구현은 본 발명에서 제공되는 대응하는 장치의 기능 및 다른 구현에 의존할 수 있음을 이해해야 한다.
제15 측면에 따르면, 본 발명은 움직임 벡터 예측 방법에 관한 것이다. 상기 움직임 벡터 예측 방법은 현재 블록의 최적 후보 움직임 정보의 색인 정보를 획득하는 단계; 상기 색인 정보에 기초하여 후보 움직임 정보 리스트를 구축하는 단계 - 상기 후보 움직임 정보 리스트에 포함된 움직임 벡터를 획득하는 모드는 상기 색인 정보의 필드에 따라 달라짐 -; 상기 색인 정보에 기초하여 상기 후보 움직임 정보 리스트에서 상기 최적 움직임 벡터를 결정하는 단계; 및 상기 최적 움직임 벡터에 기초하여 현재 블록을 예측하는 단계를 포함한다.
제15 측면에 따르면, 가능한 구현 프로세스에서, 상기 색인 정보가 제1 특징 값인 경우, 상기 후보 움직임 정보 리스트는 HEVC 모드 또는 비 인접 모드(non-adjacent mode) 중 적어도 하나에서 획득된 후보 움직임 벡터를 포함한다.
제15 측면에 따르면, 가능한 구현 프로세스에서, 상기 색인 정보가 제2 특징 값인 경우, 상기 후보 움직임 정보 리스트는 AFFINE 모드, ATMVP 모드, STMVP 모드, 평면 모드 중 적어도 하나에서 획득된 후보 움직임 벡터를 포함한다.
제15 측면에 따르면, 가능한 구현 프로세스에서, 상기 색인 정보가 제3 특징 값인 경우, 상기 후보 움직임 정보 리스트는 HEVC 모드, 비 인접 모드, ATMVP 모드 또는 STMVP 모드 중 적어도 하나에서 획득된 후보 움직임 벡터를 포함한다.
제15 측면에 따르면, 가능한 구현 프로세스에서, 상기 색인 정보가 제4 특징 값인 경우, 상기 후보 움직임 정보 리스트는 AFFINE 또는 평면 모드 중 적어도 하나에서 획득된 후보 움직임 벡터를 포함한다.
제15 측면에 따르면, 가능한 구현 프로세스에서, 상기 현재 블록의 최적 후보 움직임 정보의 색인 정보를 획득하는 단계는 다음을 포함한다: 상기 현재 블록이 제1 미리 설정된 조건을 충족하면, 획득된 색인 정보는 상기 현재 블록의 후보 움직임 정보 리스트를 구축하도록 지시하는 데 사용된다.
제15 측면에 따르면, 가능한 구현 프로세스에서, 상기 현재 블록의 최적 후보 움직임 정보의 색인 정보를 획득하는 단계는 다음을 포함한다: 상기 현재 블록이 제2 미리 설정된 조건을 충족하면, 획득된 색인 정보는 현재 서브블록의 후보 움직임 정보 리스트를 구축하도록 지시하는 데 사용되며, 상기 현재 서브블록은 상기 현재 블록을 분할함으로써 획득된다.
제15 측면에 따르면, 가능한 구현 프로세스에서, 상기 현재 블록의 최적 후보 움직임 정보의 색인 정보를 획득하는 단계는 다음을 포함한다: 상기 현재 블록이 미리 설정된 제1 조건을 충족하지 않으면, 비트스트림을 파싱하여 상기 최적 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트의 색인을 획득한다.
제16 측면에 따르면, 본 발명은 움직임 벡터 예측 장치에 관한 것이다. 상기 장치는, 현재 블록의 최적 후보 움직임 정보의 색인 정보를 획득하도록 구성된 획득 모듈; 상기 색인 정보에 기초하여 후보 움직임 정보 리스트를 구축하도록 구성된 구축 모듈 - 상기 후보 움직임 정보 리스트에 포함된 움직임 벡터를 획득하는 모드는 상기 색인 정보의 필드에 따라 달라짐 -; 상기 색인 정보에 기초하여 상기 후보 움직임 정보 리스트로부터 최적의 움직임 벡터를 결정하도록 구성된 결정 모듈; 및 상기 최적 움직임 벡터에 기초하여 상기 현재 블록을 예측하도록 구성된 예측 모듈을 포함한다.
제16 측면에 따르면, 가능한 구현 프로세스에서, 상기 색인 정보가 제1 특징 값인 경우, 상기 후보 움직임 정보 리스트는 HEVC 모드 또는 비 인접 모드 중 적어도 하나에서 획득된 후보 움직임 벡터를 포함한다.
제16 측면에 따르면, 가능한 구현 프로세스에서, 상기 색인 정보가 제2 특징 값인 경우, 상기 후보 움직임 정보 리스트는 AFFINE, ATMVP, STMVP 또는 평면 모드 중 적어도 하나에서 획득된 후보 움직임 벡터를 포함한다.
제16 측면에 따르면, 가능한 구현 프로세스에서, 상기 색인 정보가 제3 특징 값인 경우, 상기 후보 움직임 정보 리스트는 HEVC 모드, 비 인접 모드, ATMVP 모드, 또는 STMVP 모드 중 적어도 하나에서 획득된 후보 움직임 벡터를 포함한다.
제16 측면에 따르면, 가능한 구현 프로세스에서, 상기 색인 정보가 제4 특징 값인 경우, 상기 후보 움직임 정보 리스트는 AFFINE 모드 또는 평면 모드 중 적어도 하나에서 획득된 후보 움직임 벡터를 포함한다.
제17 측면에 따르면, 본 발명은 비디오 코딩 기기에 관한 것이다. 상기 비디오 코딩 기기는 서로 결합된 비휘발성 메모리 및 프로세서를 포함한다. 상기 프로세서는 상기 메모리에 저장된 프로그램 코드를 호출하여 전술한 측면들 또는 가능한 설계 방법들 중 어느 하나를 수행한다.
제18 측면에 따르면, 본 발명은 컴퓨터로 판독 가능한 저장 매체에 관한 것이다. 상기 컴퓨터로 판독 가능한 저장 매체는 컴퓨터 프로그램을 저장한다. 상기 컴퓨터 프로그램이 프로세서에서 실행될 때, 전술한 측면들 또는 가능한 설계 방법들 중 어느 하나가 구현된다.
제19 측면에 따르면, 본 발명은 메모리 및 프로세서를 포함하는 디코더에 관한 것이다. 상기 디코더는 전술한 측면들 중 어느 하나에서의 디코딩 방법, 디코딩 장치 및 가능한 구현 방안을 상응하게 구현하도록 구성될 수 있다.
제20 측면에 따르면, 본 발명은 메모리 및 프로세서를 포함하는 인코더에 관한 것이다. 상기 인코더는 전술한 측면들 중 어느 하나에서의 인코딩 방법, 인코딩 장치 및 가능한 구현 방안을 상응하게 구현하도록 구성될 수 있다.
인코더의 기능과 디코더의 기능이 서로 결합될 수 있음을 이해해야 한다. 따라서, 일부 가능한 경우에, 디코더 측의 방법은 인코더 측에 대응할 수 있고, 인코더 측의 방법은 디코더 측에 대응할 수 있다. 본 발명에서는 상세한 설명을 생략한다.
구현 방안의 다양성으로 인해, 전술한 가능한 구현 및 설명은 조합 논리를 위배하지 않고 자유롭게 조합될 수 있음을 이해해야 한다. 여러 측면과 대응하는 실행 가능한 구현에서 얻은 유익한 효과는 유사하다. 세부사항은 다시 설명하지 않는다. 하나 이상의 실시예의 세부사항은 첨부 도면과 이하의 설명에서 기술된다. 다른 특징, 목적 및 장점은 명세서, 첨부 도면 및 청구 범위로부터 명백하다.
도 1은 비디오 인코딩 프로시저의 개략도이다.
도 2는 인터 예측의 개략도이다.
도 3은 비디오 디코딩 프로시저의 개략도이다.
도 4는 움직임 정보의 후보 위치의 개략도이다.
도 5는 아핀 변환의 향상된 움직임 벡터 예측 모드의 개략도이다.
도 6은 비디오 송신 시스템의 개략도이다.
도 7은 공간적으로 이웃하는(spatially neighboring) 후보 블록의 움직임 정보의 개략도이다.
도 8은 공간적으로 이웃하지 않는(spatially non-neighboring) 후보 블록의 움직임 정보의 개략도이다.
도 9는 아핀 모델 병합 모드의 개략도이다.
도 10은 복합 병합 모드의 개략도이다.
도 11은 ATMVP 예측 모드의 개략도이다.
도 12는 STMVP 예측 모드의 개략도이다.
도 13은 평면 움직임 벡터 도출의 개략도이다.
도 14는 본 발명의 일 실시예에 따른 디코딩 방법을 도시한다.
도 15는 본 발명의 일 실시예에 따른 다른 디코딩 방법을 도시한다.
도 16은 본 발명의 일 실시예에 따른 신택스 표를 도시한다.
도 17은 본 발명의 일 실시예에 따른 다른 디코딩 방법을 도시한다.
도 18은 본 발명의 일 실시예에 따른 디코딩 장치를 도시한다.
도 19는 본 발명의 일 실시예에 따른 코딩 기기를 도시한다.
이하에서는 본 출원의 실시예에서의 첨부 도면을 참조하여 본 출원의 실시예를 설명한다.
도 1에 도시된 바와 같이, 인코딩 프로세스는 주로 다음의 단계를 포함한다: 인트라 예측(Intra Prediction), 인터 예측(Inter Prediction), 변환(Transform), 양자화(Quantization), 엔트로피 인코딩(Entropy encoding), 인루프 필터링(in-loop filtering)(주로 디블로킹 필터(de-blocking filtering)) 등. 영상이 코딩 블록으로 분할된 후, 인트라 예측 또는 인터 예측이 수행된다. 그런 다음, 잔차(residual)가 획득된 후에 변환 및 양자화가 수행된다. 마지막으로, 엔트로피 인코딩이 수행되고 비트스트림이 출력된다. 여기서, 코딩 블록은 M×N개의 샘플(M은 N과 같거나 다를 수 있음) 크기의 배열이다. 또한, 각각의 샘플 위치의 샘플 값이 제공된다.
인트라 예측은 현재 영상 내의 재구축된 영역(reconstructed area) 내의 샘플의 샘플 값에 기초하여 현재 코딩 블록 내의 샘플의 샘플 값을 예측하는 것을 의미한다.
인터 예측은 재구축된 영상에서 현재 영상 내의 현재 코딩 블록에 매칭되는 참조 블록을 검색하고; 참조 블록 내의 샘플의 샘플 값을 예측 정보 또는 현재 코딩 블록 내의 샘플의 샘플 값의 예측자(predictor)(이하, 예측 정보와 예측자를 구별하지 않음)로서 사용하고 - 여기서 이 프로세스는 움직임 추정(Motion estimation, ME)(도 2b에 도시된 바와 같이)이라고 함); 현재 코딩 블록의 움직임 정보를 송신하는 것을 의미한다.
현재 코딩 블록의 움직임 정보는 예측 방향 지시 정보(일반적으로 순방향 예측, 역방향 예측 또는 양방향 예측), 참조 블록을 가리키는 하나 또는 두 개의 움직임 벡터(Motion vector, MV), 및 참조 블록이 위치하는 영상의 지시 정보(일반적으로 참조 색인이라고 함)을 포함한다는 점에 유의해야 한다.
순방향 예측은 현재 코딩 블록에 대한 참조 블록을 획득하기 위해, 순방향 참조 영상 세트에서 참조 영상을 선택하는 것을 의미한다. 역방향 예측은 현재 코딩 블록에 대한 참조 블록을 획득하기 위해, 역방향 참조 영상 세트에서 참조 영상을 선택하는 것을 의미한다. 양방향 예측은 참조 블록을 획득하기 위해, 순방향 참조 영상 세트에서 참조 영상을 선택하고 역방향 참조 영상 세트에서 참조 영상을 선택하는 것을 의미한다. 양방향 예측 방법이 사용되는 경우, 현재 코딩 블록은 두 개의 참조 블록을 갖는다. 각각의 참조 블록은 지시를 위해 움직임 벡터와 참조 색인을 필요로 한다. 현재 블록 내의 샘플의 샘플 값의 예측자는 두 개의 참조 블록 내의 샘플의 샘플 값에 기초하여 결정된다.
움직임 추정 프로세스에서, 현재 코딩 블록은 참조 영상 내의 복수의 참조 블록을 시도해야 하며, 최종적으로 예측에 사용되는 특정 참조 블록 또는 특정 블록은 레이트 왜곡 최적화(Rate-distortion optimization, RDO)를 통해 또는 다른 방법을 사용하여 결정된다.
인트라 예측 또는 인터 예측을 통해 예측 정보가 획득된 후, 현재 코딩 블록 내의 샘플의 샘플 값으로부터 대응하는 예측 정보를 감산하여 잔차 정보가 획득된다. 그런 다음, 이산 코사인 변환(Discrete Cosine Transformation, DCT)과 같은 방법을 사용하여 잔차 정보가 변환된다. 그런 다음, 양자화와 엔트로피 인코딩을 통해 비트스트림이 획득된다. 재구축된 신호를 획득하기 위해, 예측 신호와 재구축된 잔차 신호를 가산함으로써 결과에 대해 필터링 작업(filtering operation)을 수행해야 한다. 재구축된 신호는 후속 인코딩을 위한 참조 신호로서 사용된다.
디코딩은 인코딩의 역 프로세스이다. 예를 들어, 도 3에 도시된 바와 같이, 엔트로피 디코딩, 역 양자화 및 역 변환이 먼저 수행되어 잔여 정보를 획득하고; 비트스트림은 현재 코딩 블록에 인트라 예측 또는 인터 예측이 사용되는지를 판정하기 위해 디코딩된다. 인트라 예측이 사용되면, 인트라 예측 방법을 사용하여 현재 코딩 블록 주위의 재구축된 영역 내의 샘플의 샘플 값에 기초하여 예측 정보가 구축된다. 인터 예측이 사용되면, 움직임 정보가 파싱되어야 하고, 파싱을 통해 획득된 움직임 정보에 기초하여 재구축된 영상에서 참조 블록을 결정하고, 블록 내의 샘플의 샘플 값을 예측 정보로서 사용한다. 이러한 프로세스를 움직임 보상(Motion Compensation, MC)이라고 한다. 재구축된 정보는 예측 정보와 잔차 정보를 가산함으로써 결과에 대해 필터링 작업을 수행함으로써 획득될 수 있다.
HEVC에서는 두 가지 인터 예측 모드가 사용된다: 향상된 움직임 벡터 예측(Advanced Motion Vector Prediction, AMVP) 모드 및 병합(Merge) 모드.
AMVP 모드에서, 후보 움직임 벡터 리스트가 현재 코딩 블록의 공간적으로 또는 시간적으로 이웃하는 코딩된 블록의 움직임 정보에 기초하여 구성된다. 그런 다음, 후보 움직임 벡터 리스트에서 최적 움직임 벡터를 결정하고, 최적의 움직임 벡터를 현재 코딩 블록의 움직임 벡터 예측자(Motion vector predictor, MVP)로서 사용한다. 레이트 왜곡 비용(rate-distortion cost)은 식 (1)에 따라 계산되며, 여기서 J는 레이트 왜곡 비용(rate-distortion cost, RD Cost)을 나타내고, SAD는 후보 움직임 벡터 예측자를 사용하여 수행되는 움직임 추정을 통해 획득되는 원시(original) 샘플 값과 예측된 샘플 값 사이의 절대 차의 합(Sum of Absolute Differences, SAD)을 나타내고, R은 비트 레이트를 나타내고, λ는 라그랑주 승수(Lagrange multiplier)를 나타낸다. 인코더 측은 디코더 측에, 후보 움직임 벡터 리스트에서 선택된 움직임 벡터 예측자의 색인 값과 참조 색인 값을 전송한다. 또한, 현재 코딩 블록의 실제 움직임 벡터를 획득하기 위해, MVP 중심의 이웃 영역에서 움직임 검색을 수행한다. 인코더 측은 MVP와 실제 움직임 벡터 사이의 차이(움직임 벡터 차이)를 디코더 측에 전송한다.
(1)
병합 모드에서, 후보 움직임 정보 리스트는 먼저 현재 코딩 블록의 공간적으로 또는 시간적으로 이웃하는 코딩된 블록의 움직임 정보에 기초하여 구축되고; 레이트 왜곡 비용 기준에 따라 후보 움직임 정보 리스트로부터 최적 움직임 정보가 결정되고, 최적 움직임 정보가 현재 코딩 블록의 움직임 정보로 사용되며; 후보 움직임 정보 리스트 내의 최적 움직임 정보의 위치의 색인 값(병합 색인으로 표시되며, 다음 설명에도 적용됨)이 그 후 디코더 측에 전송된다. 현재 코딩 블록의 공간적으로 또는 시간적으로 이웃하는 코딩 블록의 후보 움직임 정보는 도 4에 도시되어 있다. 공간 후보 움직임 정보는 공간적으로 이웃하는 5개의 블록(A0, A1, B0, B1, B2)에서 온 것이다. 이웃 블록(neighboring block)을 사용할 수 없거나 이웃 블록이 인트라 코딩되면, 이웃 블록의 움직임 정보는 후보 움직임 정보 리스트에 추가되지 않는다. 현재 코딩 블록의 시간적 후보 움직임 정보는 참조 영상, 및 현재 영상의 영상 순서 카운트(Picture order count, POC)에 기초하여 참조 영상 내의 병치된 블록의 MV를 스케일링함으로써 획득된다. 먼저, 참조 영상의 T 위치에 있는 블록이 사용 가능한지가 결정된다. 블록을 사용할 수 없으면, C 위치의 블록이 선택된다.
AMVP 모드와 병합 모드 모두에서 후보 움직임 벡터 리스트(후보의 리스트라고도 하며, 약칭하여 후보 리스트라고도 함)이 유지되어야 함을 알 수 있다. 새로운 움직임 정보가 후보 리스트에 추가되기 전에, 리스트에 이미 동일한 움직임 정보가 존재하는지를 먼저 확인한다. 리스트에 동일한 움직임 정보가 존재하면, 그 움직임 정보는 리스트에 추가되지 않는다. 확인 프로세스는 후보 움직임 벡터 리스트의 가지치기(pruning)라고 한다. 리스트를 가지치기하면, 리스트에 동일한 움직임 정보가 존재하지 않고, 중복된 레이트 왜곡 비용 계산이 방지된다.
HEVC 인터 예측에서는 코딩 블록 내의 모든 샘플이 동일한 움직임 정보를 사용하고, 움직임 정보에 기초하여 움직임 보상을 수행하여, 코딩 블록의 샘플의 예측자를 획득한다. 그러나 코딩 블록에서, 모든 샘플이 동일한 움직임 특성을 갖는 것은 아니다. 동일한 움직임 정보를 사용하는 것은 움직임 보상 예측이 부정확해지고 잔차 정보가 더 많아질 수 있다.
기존의 비디오 코딩 표준에서는 병진 움직임 모델(translational motion model)에 따른 블록 매칭 움직임 추정을 사용하며, 블록 내의 모든 샘플의 움직임이 일치한다고 가정한다. 그러나 현실 세계에서는 다양한 움직임이 있다. 예를 들어, 회전하는 물체, 다른 방향으로 회전하는 롤러코스터, 불꽃놀이, 영화에서의 일부 스턴트와 같은, 많은 객체는 병진 운동 상태에 있지 않는다. 이러한 움직이는 객체, 특히 UGC(User Generated Content) 시나리오에서의 객체의 경우, 기존의 코딩 표준에서의 병진 운동 모델 기반 블록 움직임 보상 기술을 사용하여 코딩을 수행하면, 코딩 효율이 크게 영향을 받는다. 따라서, 비 병진 움직임(non-translational motion) 모델에 대한 연구가 업계와 Huawei에서 수행되었다. 특히 코딩 효율을 더욱 향상시키기 위해, 아핀 변환 기반 움직임 모델에 대한 심층 연구가 수행되어 왔다.
비 병진 움직임 모델 기반 예측이란, 예측 효율을 향상시키기 위해, 현재 코딩 블록 내의 움직임 보상 서브유닛 각각의 움직임 정보가 인코더 측과 디코더 측 모두에 동일한 움직임 모델을 사용하여 도출되고, 움직임 보상 서브유닛의 움직임 정보에 기초하여 움직임 보상이 수행되는 것을 의미한다. 움직임 보상 서브유닛의 정보를 이용하여 예측 블록을 획득하여 예측 효율을 향상시킨다. 일반적으로 사용되는 움직임 모델에는 6-파라미터 아핀 변환 모델과 4-파라미터 아핀 변환 모델이 있다.
4-파라미터 아핀 변환 모델은 식 (2)에 표시된 바와 같다:
(2)
4-파라미터 아핀 변환 모델은 두 샘플의 움직임 벡터와 현재 코딩 블록의 왼쪽 위 정점의 샘플에 대한 움직임 벡터의 좌표를 사용하여 표현될 수 있으며, 움직임 모델 파라미터를 표현하는 데 사용되는 샘플은 제어점으로 표시된다. 왼쪽 위 정점(0, 0) 및 오른쪽 위 정점(W, 0)에 있는 샘플이 제어점으로 사용되면, 현재 코딩 브록의 왼쪽 위 정점 및 오른쪽 위 정점에서 제어점의 움직임 벡터 (vx0, vy0) 및 (vx1, vy1)이 먼저 결정된다. 그런 다음, 현재 코딩 블록에서 움직임 보상 서브유닛 각각의 움직임 정보는 식 (3)에 따라 도출되며, 여기서 (x, y)는 현재 코딩 블록의 왼쪽 위 정점에 있는 샘플에 대한, 움직임 보상 서브유닛의 좌표를 나타내며, W 및 H는 각각 현재 코딩 블록의 폭와 높이를 나타낸다.
(3)
6-파라미터 아핀 변환 모델은 식 (4)에 표시된 바와 같다:
(4)
6-파라미터 아핀 변환 모델은 세 개의 샘플의 움직임 벡터 및 현재 코딩 블록의 왼쪽 상단(top-left) 샘플에 대한 그들의 좌표를 사용하여 표현할 수 있다. 왼쪽 위 정점(0, 0), 오른쪽 위 정점(W, 0) 및 왼쪽 아래 정점(0, H)에서의 샘플이 제어점으로 사용되면, 현재 코딩 블록의 왼쪽 위 정점, 오른쪽 위 정점 및 왼쪽 아래 정점에서의 제어점의 움직임 벡터 (vx0, vy0), (vx1, vy1), 및 (vx2, vy2)가 먼저 결정된다. 그런 다음 현재 코딩 블록의 움직임 보상 서브유닛 각각의 움직임 정보가 식 (5)에 따라 도출되며, 여기서 (x, y)는 현재 코딩 블록의 왼쪽 위 정점에 있는 샘플에 대한, 움직임 보상 서브유닛의 좌표를 나타내며, W는 현재 코딩 블록의 폭를 나타낸다.
(5)
8-파라미터 이선형(bilinear) 모델은 식 (6)에 나타낸 바와 같다:
(6)
8-파라미터 이선형 모델은 네 개의 샘플의 움직임 벡터 및 현재 코딩 블록의 왼쪽 위 정점의 샘플에 대한 움직임 벡터의 좌표를 사용하여 표현될 수 있다. 왼쪽 위 정점 (0, 0), 오른쪽 위 정점 (W, 0), 왼쪽 아래 정점 (0, H) 및 오른쪽 아래 정점 (W, H)의 샘플이 제어점으로 사용되면, 현재 코딩 블록의 왼쪽 위 정점, 오른쪽 위 정점, 왼쪽 아래 정점, 및 오른쪽 아래 정점의 움직임 벡터 (vx0, vy0), (vx1, vy1), (vx2, vy2), 및 (vx3, vy3)가 먼저 결정된다. 그런 다음, 현재 코딩 블록에서 움직임 보상 서브유닛 각각의 움직임 정보가 식(7)에 따라 도출되며, 여기서 (x, y)는 현재 코딩 블록의 왼쪽 위 정점의 샘플에 대한, 움직임 보상 서브유닛의 ㅈv표를 나타내고, W와 H는 각각 현재 코딩 블록의 폭와 높이이다.
(7)
비 병진 움직임 모델에 따라 예측되는 코딩 블록을 비 병진 코딩 블록이라고 한다.
일반적으로, 비 병진 코딩 블록의 제어점의 움직임 정보는 아핀 변환 기반의 향상된 움직임 벡터 예측(Advanced Motion Vector Prediction, AMVP) 모드 또는 아핀 변환 기반 병합(Merge) 모드에서 획득될 수 있다.
이하에서는 4-파라미터 아핀 변환 모델에서 두 제어점의 움직임 정보를 획득하는 방법을 설명한다.
Affine 변환 기반 향상된 움직임 벡터 예측 모드:
(1) 후보 움직임 벡터 2-튜플(tuple) 구축
현재 코딩 블록의 왼쪽 상단 정점 및 오른쪽 상단 정점의 움직임 벡터는 현재 코딩 블록의 이웃하는 코딩된 블록의 움직임 정보에 기초하여 결정된다. 도 5에 도시된 바와 같이, 왼쪽 상단 정점의 이웃하는 코딩된 블록 A, B, 및 C의 움직임 벡터가 현재 코딩 블록의 왼쪽 상단 정점의 후보 움직임 벡터로 사용되며, 오른쪽 상단 정점의 이웃하는 코딩된 블록 D 및 E의 움직임 벡터가 현재 블록의 오른쪽 상단 정점의 후보 움직임 벡터로 사용된다. 왼쪽 위 정점의 후보 움직임 벡터와 오른쪽 위 정점의 후보 움직임 벡터는 결합되어 두 제어점의 후보 움직임 벡터 2-튜플 큐를 구성한다.
.
은 왼쪽 상단 정점의 후보 움직임 벡터를 나타내고, 은 오른쪽 상단 정점의 후보 움직임 벡터를 나타낸다. 큐에서의 후보 움직임 벡터의 위치가 색인화되며, 색인 값은 0, 1, 2, 3, 4 및 5이다.
선택적으로, 후보 움직임 벡터 2-튜플 큐는 특정 규칙에 따라 가지치기 및 정렬되고, 후보 움직임 벡터 2-튜플 큐에 대해 절단() 및 채우기()가 수행되어 큐에 포함된 특정 수량의 요소를 획득할 수 있다.
(2) 최적의 후보 움직임 벡터 2-튜플 결정
인코더 측에서는 각각의 움직임 보상 서브유닛의 움직임 벡터가 가리키는 참조 영상 내의 위치의 샘플 값을 획득하기 위해, 현재 코딩 블록에서 각각의 움직임 보상 서브유닛(특정 방법을 사용하여 분할된 N_1×N_2 크기의 샘플 또는 샘플 블록)의 움직임 벡터를 식(3)에 따라 각각의 후보 움직임 벡터 2-튜플을 사용하여 획득한다. 샘플 값은 아핀 변환 움직임 보상을 위해 현재 코딩 블록에서 샘플의 샘플 값의 예측자로서 사용된다.
현재 코딩 블록의 샘플인 원래 값(original value)과 예측자의 차이의 평균값을 계산하고, 최소 차이 평균에 대응하는 후보 움직임 벡터 2-튜플의 움직임 벡터를 현재 코딩 블록에서 두 제어점의 움직임 벡터 예측 변수로서 선택한다. 현재 코딩 블록에서. 후보 움직임 벡터 2-튜플 큐에서의 2-튜플의 위치를 나타내는 색인 값은 비트스트림으로 인코딩되어, 디코더에 전송된다.
디코더 측에서는 색인 값을 파싱하여 두 제어점의 움직임 벡터 예측자를 획득한다.
(3) 제어점의 움직임 벡터 결정
인코더 측에서는 두 제어점의 움직임 벡터 예측자를 검색 시작점으로 사용하여 특정 검색 범위 내에서 움직임 검색을 수행하여, 두 제어점의 움직임 벡터를 획득한다. 두 제어점의 움직임 벡터와 움직임 벡터 예측자 간의 차이는 디코더 측에 전송된다.
디코더 측에서는 두 제어점의 움직임 벡터 차이를 파싱하고 움직임 벡터 예측자에 추가하여, 제어점의 움직임 벡터를 획득한다.
도 6은 본 발명에 따른 시스템 프레임워크를 도시한다. 본 발명은 주로 시스템 프레임워크에서의 비디오 인코딩 및 비디오 디코딩에 관한 것이다. 기존의 비디오 송신 시스템은 전형적으로 수집, 인코딩, 전송, 수신, 디코딩 및 표시를 포함한다. 수집 모듈은 카메라 또는 카메라 모듈과 전처리기를 포함하며, 광학 신호를 디지털 비디오 시퀀스로 변환한다. 그런 다음 비디오 시퀀스는 인코더에 의해 인코딩되고 비트스트림으로 변환된다. 그런 다음 비트스트림은 송신 모듈에 의해 네트워크를 통해 수신 모듈에 전송되고, 수신 모듈에 의해 변환되고 디코더에 의해 디코딩되고 비디오 시퀀스로 재구축된다. 마지막으로, 재구축된 비디오 시퀀스는 렌더링과 같은 후처리를 거쳐, 표시를 위해 디스플레이 기기에 전송된다.
본 발명은 주로 시스템 프레임 워크에서 비디오 인코딩 및 비디오 디코딩에 관한 것이다.
본 발명의 적용 시나리오는 도 1 및 도 2에 도시된 하이브리드 코딩 프레임워크 기반 비디오 인코딩 및 디코딩 시스템에서 도시되어 있다. 인코딩 프로세스는, 도 1에 도시된 바와 같이, 주로 인트라 예측(Intra Prediction), 인터 예측(Inter Prediction), 변환(Transform), 양자화(Quantization), 엔트로피 인코딩(Entropy encode), 루프 필터링((Loop filter) 및 기타 단계를 포함한다. 이러한 프로시저는 주로 다음 작업을 각각 구현하는 데 사용된다: 현재 영상의 이웃 샘플로부터 예측 블록을 획득하는 작업, MV 정보를 계산하고 참조 영상으로부터 예측 블록을 획득하는 작업, 잔차를 샘플 도메인에서 변환 도메인으로 변환하는 작업, 변환 도메인 계수를 압축하는 작업, 인코딩 정보를 압축하는 작업, 및 재구축된 영상에 대해 후처리를 수행하는 작업. 디코딩 시스템에서의 작업은, 도 2에 도시된 바와 같이, 인코딩 프로세스에서 수행된 것의 역 프로세스이다. 본 발명은 주로 비디오 인코딩 및 디코딩 시스템에서의 인터 예측에 적용된다.
실시예 1(인코더 측)
간략한 설명: 현재 블록(Block)에 대해 서로 다른 움직임 정보 리스트 구축 모드로 list0과 list1이 구축된다. list0은 블록을 기본 예측 유닛(basic prediction unit)으로 사용하여 현재 블록을 예측하는 경우에, 현재 블록에 사용되는 후보 움직임 벡터 리스트이다. list1은 서브블록을 기본 예측 유닛으로 사용하여 현재 블록을 예측하는 경우에 현재 블록에 사용되는 후보 움직임 벡터 리스트이다. 현재 블록은 복수의 서브블록으로 분할될 수 있으며, 각각의 서브블록은 정사각형 또는 직사각형 형태일 수 있다. 서브블록은 예를 들어 4×4, 8×8 또는 4×8의 크기를 가질 수 있지만 이에 한정되지 않는다. list0 및 list1은 후보 움직임 정보를 포함한다. 후보 움직임 정보는 움직임 벡터, 예측 방향, 참조 색인 등을 포함한다. 간단히, list0과 list1은 현재 블록의 특징에 적용 가능한 서로 다른 움직임 정보 리스트 구축 모드로 구축된다.
예를 들어, 블록 기반 list0은 HEVC 모드와 비 인접 모드를 포함할 수 있고; 서브블록 기반 list1은 AFFINE 모드(움직임 모델 기반 아핀 모델 병합 모드 및/또는 제어점 기반 복합 병합 모드를 포함함), ATMVP 모드, STMVP 모드 및 평면 모드를 포함할 수 있다.
구체적인 구현 프로세스에서, 블록 기반 list0은 HEVC 모드 및 비 인접 모드와 같은 후보 움직임 벡터 도출 모드 중 하나 이상을 포함할 수 있고, 서브블록 기반 list1은 AFFINE 모드, ATMVP 모드, STMVP 모드 및 평면 모드와 같은 후보 움직임 벡터 도출 모드 중 하나 이상을 포함할 수 있다. 예를 들어, list1은 대안으로 ATMVP 모드만을 포함할 수 있다. 본 출원에서는 설명을 위해 복수의 모드가 사용될 수 있다.
S11: 현재 코딩 블록의 제1 후보 움직임 정보 리스트(List0)을 구성한다, 즉, 블록 기반 후보 움직임 정보 리스트를 구축한다. List0 내의 움직임 정보는 블록 기반 후보 움직임 정보라고 할 수 있다.
S11.1: HEVC 모드에서 미리 설정된 규칙에 따라, 현재 코딩 블록의 공간적으로 및/또는 시간적으로 이웃하는 코딩된 블록의 움직임 정보가 제1 후보 움직임 정보 리스트에 추가된다.
도 7은 공간적으로 이웃하는 후보 블록의 움직임 정보를 나타낸다. 가장 왼쪽에서, 공간 후보 블록은 다음 시퀀스: a1, b1, b0, a0 및 b2로 선택된다. 처음 4개 블록 중 어느 것이 사용할 수 없으면, b2의 움직임 정보가 존재하고 사용 가능한지가 확인한다. b2의 움직임 정보가 존재하고 사용 가능하면, b2의 움직임 정보가 후보 움직임 정보 리스트에 추가된다. 그런 다음, 시간적 후보 움직임 정보 및/또는 영(zero) 벡터가 움직임 정보 리스트에 추가되는 것으로 고려된다. 공간적 후보 및 시간적 후보를 선택하기 위해 미리 설정된 복수의 규칙이 있을 수 있음을 이해해야 한다. 본 발명에서는 이를 한정하지 않는다.
가능한 구현 프로세스에서 도출 시퀀스는 a0, b0, b1, a1 및 b2일 수 있다. b2 위치는 a0, b0, b1, 및 a1 위치의 임의의 CU를 사용할 수 없거나(예: CU가 다른 슬라이스 또는 다른 타일에 속함) CU가 인트라 코딩된 경우에만 고려된다. 후보 위치 a1이 추가된 후, 나머지 후보가 추가되는 경우에 중복 검사(redundancy check)가 수행되어야 한다. 중복 검사는 동일한 움직임 정보를 가진 후보 항목이 리스트에 추가되는 것을 방지하여 코딩 효율을 향상시킨다. 계산 복잡도를 줄이기 위해, 일부 후보는 중복 검사에서 선택적으로 고려될 수 있다. 예를 들어 중복 검사에 사용된 대응하는 후보에 대해 동일한 움직임 정보가 없는 경우에만 그 후보가 리스트에 추가된다.
가능한 구현예에서, 공간적 후보 블록의 최대 수량은 4개이다. 또한, list0에있는 후보 움직임 정보의 수량(중복 및 무자격 정보 제외)이 MaxNumMergeCand와 같으면, 삽입 또는 추가가 중지된다. 후보 List1의 후보 움직임 정보의 최대 수량 MaxNumMergeCand는 비트스트림으로 송신될 수 있거나, 인코딩 및 디코딩에 디폴트 값이 사용될 수 있다. 이 실시예에서, 후보 움직임 정보의 최대 수량은, 예를 들어, 5이다.
선택적으로, 블록 기반 후보 움직임 정보 리스트는 HEVC 표준 또는 HEVC 표준의 진화된 버전에 따라 정의된 종래의 병합 모드(일부 시나리오에서는 general_merge 또는 regular_merge 모드로 표현될 수도 있음)로 구축된 후보 움직임 정보 리스트를 포함한다. 블록 기반 후보 움직임 정보 리스트의 모든 후보 움직임 정보는 현재 블록의 공간적으로 또는 시간적으로 이웃하는 코딩된 블록의 움직임 정보일 수 있다. 대안으로, 일부 후보 움직임 정보는 현재 블록의 공간적으로 또는 시간적으로 이웃하는 코딩된 블록의 움직임 정보일 수 있다. 후보 움직임 정보 중 일부는 다른 방식으로 획득된 움직임 정보일 수 있다
S11.2: 미리 설정된 규칙에 따라 제1 후보 움직임 정보 리스트에 현재 코딩 블록의 공간적으로 이웃하지 않는 코딩 블록의 움직임 정보를 추가한다.
공간적으로 이웃하지 않는 후보 블록의 움직임 벡터는 다음 도면(도 8)에 도시되어 있다. 공간 후보 블록은 후보 블록은 다음 시퀀스: 후보 블록 6 ∼ 후보 블록 49로 선택된다. 사용 가능한 위치 블록에 대응하는 움직임 정보는 가용성을 검사하고 중복된 항목을 제거한 후에 제1 후보 움직임 정보 리스트에 순차적으로 삽입된다. list0의 후보 움직임 정보의 수량(중복 및 무자격 정보 제외)이 MaxNumMergeCand와 같으면 삽입이 중지된다.
list0은 S11.1 및 S11.2에 기초하여 구축된다. list0의 후보 움직임 정보의 수량(중복 및 무자격 정보 제외)이 5개 미만이면, 리스트에 있는 후보 움직임 정보의 수량은 영 움직임 벡터를 추가함으로써 지정된 수량에 도달할 수 있다. 예를 들어, 현재 블록의 제1 후보 움직임 정보 리스트(List0)은 다음과 같은 형태일 수 있다.
[표 1]
대안으로, 현재 블록의 제1 후보 움직임 정보 리스트(List0)은 다음과 같은 형태일 수 있다.
[표 2]
본 발명에서는 블록 기반 후보 움직임 정보 리스트를 구축하는 S11 단계에서, S11.1에서 리스트에 후보 움직임 정보를 추가하고, S11.2에서 리스트에 후보 움직임 정보를 추가하는 시퀀스를 한정하지 않는다는 것에 유의해야 한다. S11.1의 움직임 정보가 먼저 추가될 수 있고, 그 후 S11.2의 움직임 정보가 추가되거나;
S11.2의 움직임 정보가 먼저 추가될 수 있고, 그 후 S11.1의 움직임 정보가 추가되거나; 또는 S11.1과 S11.2의 움직임 정보를 교대로 리스트에 추가할 수 있다. 대안으로 S11에 대해 S11.1 및 S11.2 중 하나 또는 모두를 수행할 수 있다.
S12: 현재 인코딩 서브블록의 제2 후보 움직임 정보 리스트(List1)를 구성한다. 즉, 서브블록 기반 후보 움직임 정보 리스트를 구축한다. list1의 움직임 정보는 서브블록 기반 후보 움직임 정보라고 할 수 있다.
S12.1: 움직임 모델 기반 아핀 모델 병합(Affine model merge, AMM) 모드에서 미리 설정된 규칙에 따라, 현재 코딩 블록의 공간적으로 이웃하는 코딩된 블록의 움직임 정보를 제2 후보 움직임 정보 리스트(List1)에 추가한다.
현재 블록이 아핀 변환 예측 블록인 경우에 인코딩 효율을 높이기 위해, 현재 블록의 제어점의 움직임 정보를 인코딩가 인코딩되는 경우, 미리 설정된 선택 정책에 따라 현재 블록의 이웃 블록 중 하나의 블록이 선택되고, 현재 블록의 정점의 움직임 정보는 블록의 정점의 움직임 정보에 기초하여 도출된다(표준에서는 이를 이웃 블록으로부터의 루마 아핀 제어점 움직임 벡터라고도 함). 인코더 측은 선택된 이웃 블록의 지시 정보를 디코더 측에 전송할 필요가 없다. 이 경우, 현재 블록과 이웃 블록은 동일한 아핀 변환 모델을 사용한다.
도 9에 도시된 바와 같이. A, B, C, D, E는 현재 코딩 블록의 이웃 코딩 블록이며, 아핀 코딩된 블록을 찾기 위해 A, B, C, D, E의 시퀀스로 순회를 수행하고, 아핀 코딩된 블록의 제어점의 움직임 정보를 획득하고, 현재 코딩 블록의 왼쪽 위 정점과 현재 코딩 블록의 오른쪽 위 정점의 움직임 정보를 추가로 도출한다.
이하에서는 A를 예로 사용하여 도출 프로세스를 설명하며, 다른 경우는 유사하다. A에 대응하는 코딩된 블록이 아핀 코딩된 블록이면, 왼쪽 위 정점(x2, y2)의 움직임 벡터(vx2, vy2)와 오른쪽 위 정점(x3, y3)의 움직임 벡터를 획득한다. 현재 코딩 블록의 왼쪽 위 정점(x0, y0)의 움직임 벡터(vx0, vy0)는 식(8)에 따라 계산된다. 현재 코딩 블록의 오른쪽 위 정점(x1, y1)의 움직임 벡터(vx1, vy1)는 식(9)에 따라 계산된다.
(8)
(9)
가용 위치 블록에 대응하는 움직임 정보는 가용성을 검사하고 중복된 항목 제거한 후에 제2 후보 움직임 정보 리스트(List1)에 순차적으로 삽입된다. list1의 후보 움직임 정보의 수량(중복 및 무자격 정보 제외)이 MaxNumMergeCand와 같으면 삽입이 중지된다.
S12.2: 제어점 기반 복합 병합 모드(Complex merge mode)에서 미리 설정된 규칙에 따라 제2 후보 움직임 정보 리스트(List1)에 현재 코딩 블록의 공간적으로 이웃하는 코딩 블록의 움직임 정보를 추가한다.
먼저, 각각의 제어점의 움직임 정보를 도출한다. 도 10에 도시된 바와 같이, CPk(k=1, 2, 3, 4)는 k 번째(제k) 제어점을 나타낸다. A0, A1, A2, B0, B1, B2, 및 B3 은 현재 블록의 공간적으로 이웃하는 위치를 나타내며, CPk(k=1, 2, 3)를 예측하는 데 사용된다. Tr은 현재 블록의 시간적으로 이웃하는 위치를 나타내며, CP4를 예측하는 데 사용된다.
CP1, CP2, CP3, 및 CP4의 좌표는 각각 (0, 0), (W, 0), (H, 0), (W, H)이며, 여기서 W와 H는 현재 블록의 폭과 높이를 나타낸다.
각각의 제어점에 대해, 제어점의 움직임 정보는 다음 시퀀스로 획득된다:
CP1의 경우, 검사 시퀀스는 B2→A2→B3이다. B2가 사용 가능하면, B2의 움직임 정보를 사용한다. 그렇지 않으면, A2 및 B3을 검사한다. 세 위치 모두의 움직임 정보가 사용 불가능하면, CP1의 움직임 정보를 획득할 없다.
CP2의 경우, 검사 시퀀스는 B0→B1이다.
CP3의 경우, 검사 시퀀스는 A0→A1이다.
CP4의 경우, Tr의 움직임 정보가 사용된다.
여기서, "사용 가능하다(available)"는 것은 X 위치의 블록이 인코딩되며 인터 인코딩되는 것을 의미한다. 그렇지 않으면, X를 사용할 수 없다.
제어점의 움직임 정보를 획득하기 위한 다른 방법도 본 발명에 적용될 수 있음에 유의해야 한다. 자세한 내용은 여기서 설명하지 않는다.
그런 다음, 제어점의 움직임 정보를 조합하여 비 병진(아핀 모델 기반) 움직임 정보를 획득한다.
두 개의 제어점의 움직임 정보를 조합하여 4-파라미터 아핀 변환 모델을 구축한다. 두 개의 제어점은 다음과 같이 조합된다: {CP1, CP4}, {CP2, CP3}, {CP1, CP2}, {CP2, CP4}, {CP1, CP3}, 및 {CP3, CP4}. 예를 들어, 제어점 CP1 및 CP2로 구축된 4-파라미터 아핀 변환 모델은 affine(CP1, CP2)으로 표시된다.
세 개의 제어점의 움직임 정보를 조합하여 6-파라미터 아핀 변환 모델을 구축한다. 세 개의 제어점은 다음과 같이 조합된다: {CP1, CP2, CP4}, {CP1, CP2, CP3}, {CP2, CP3, CP4}, 및 {CP1, CP3, CP4}. 예를 들어, 제어점 CP1, CP2, 및 CP3으로 구축된 6-파라미터 아핀 변환 모델은 affine(CP1, CP2, CP3 )으로 표시된다.
네 개의 제어점의 움직임 정보를 조합하여 8-파라미터 이선형 모델을 구축한다. 제어점 CP1, CP2, CP3, 및 CP4로 구축된 8-파라미터 이선형 모델은 bilinear(CP1, CP2, CP3, CP4)으로 표시된다.
이러한 모델(상이한 유형의 모델 또는 동일한 유형의 모델)은 미리 구성된 시퀀스로 순회된다. 조합 모델에 대응하는 제어점의 움직임 정보를 사용할 수 없으면, 그 모델은 사용할 수 없는 것으로 고려된다. 그렇지 않으면, 모델의 참조 색인(모든 제어점의 움직임 벡터가 동일한 참조 영상을 가리킴)가 결정되고, 제어점의 움직임 벡터가 스케일링된다. 예를 들어, 움직임 벡터는 식(10)에 따라 스케일링된다. 스케일링 계수는 현재 영상에서 참조 영상까지의 거리 대 현재 영상에서 이웃 블록의 참조 영상까지의 거리의 비율이다. 스케일링 후 모든 제어점의 움직임 정보가 일치하면, 그 모델은 유효하지 않다. 그렇지 않으면, 모델을 구축하는 제어점의 움직임 정보가 후보 움직임 정보 리스트에 추가된다.
(10)
가용 위치 블록에 대응하는 움직임 정보는 가용성을 검사하고 중복된 항목을 제거한 후에 제2 후보 움직임 정보 리스트(List1)에 순차적으로 삽입된다. list1의 후보 움직임 정보의 수량(중복 및 무자격 정보 제외)이 MaxNumMergeCand와 같으면, 삽입이 중지된다.
복합 병합 모드에서 획득된 후보 움직임 정보를 최신 표준으로 구축된 아핀 제어점 움직임 벡터 병합 후보라고 한다.
S12.3: 미리 설정된 규칙에 따라 ATMVP 및/또는 STMVP 후보 움직임 벡터를 제2 후보 움직임 정보 리스트(List1)에 추가한다.
서브블록 기반 움직임 벡터 예측(Sub-BLOCK-based motion vector prediction, SMVP) 기술을 사용하여, 현재 인코딩 유닛을 각각 M×N개의 인코딩 서브유닛으로 분할하고, 각각의 인코딩 서브유닛의 움직임 정보를 도출한 다음, 모든 코딩 서브유닛의 움직임 정보에 기초하여 움직임 보상을 수행하여, 현재 코딩 유닛의 예측자를 획득한다.
이 기술에서, 병합 모드에서 두 가지 유형의 후보 움직임 정보가 있다: 향상된 시간 움직임 벡터 예측(Advanced temporal motion vector predict, ATMVP) 후보 움직임 정보와 공간-시간 움직임 벡터 예측(Spatial-temporal motion vector prediction, STMVP) ) 후보 움직임 정보.
ATMVP 기술에서는, 먼저 병치된 참조 영상(Collocated reference picture)을 결정하고, 현재 코딩 유닛(현재 블록)을 각각 M×N개 크기의 코딩 서브유닛(코딩 서브블록)으로 분할하고, 각각의 현재 코딩 서브유닛에 대응하고 병치된 참조 영상에 있는 코딩 서브유닛의 샘플의 중심 제어 위치의 움직임 정보를 획득하고로 분할된다. 코딩 서브유닛의 포인트 위치 샘플을 획득하고, 움직임 정보를 스케일링하고, 움직임 정보를 각각의 현재 코딩 서브유닛의 움직임 정보로 변환한다.
STMVP 기술에서는, 위의 공간적으로 이웃하는 위치, 왼쪽의 공간적으로 이웃하는 위치 및 오른쪽 아래의 시간적으로 이웃하는 위치에서 각각의 현재 인코딩 서브유닛의 움직임 정보를 획득하고; 움직임 정보의 평균값을 계산하고; 계산한 평균값을 각각의 현재 인코딩 서브유닛의 움직임 정보로 변환한다. 다음 도면(도 12)에서 도시된 바와 같이, 현재 인코딩 유닛은 A, B, C, D의 네 개의 인코딩 서브유닛으로 분할된다. A가 예로 사용된다. 인코딩 서브유닛 A의 움직임 정보는 공간적으로 이웃하는 위치 c와 b의 움직임 정보와, 병치된 참조 영상에서의 위치 D의 움직임 정보에 기초하여 도출된다.
가용 위치 블록에 대응하는 움직임 정보는, 가용성을 확인하고 중복된 항목을 제거한 후에 제2 후보 움직임 정보 리스트(List1)에 순차적으로 삽입된다. list1의 후보 움직임 정보의 수량(중복 및 무자격 정보 제외)이 MaxNumMergeCand와 같으면, 삽입이 중지된다.
S12.4: 미리 설정된 규칙에 따라 평면 후보 움직임 정보를 제2 후보 움직임 정보 리스트(List1)에 추가한다.
도 13을 참조하면, 현재 블록의 오른쪽 아래의 시간적으로 이웃하는 M×N개 블록의 움직임 정보를 획득한다. 오른쪽 위의 공간적으로 이웃하는 블록(AR)의 움직임 정보와 오른쪽 아래의 시간적으로 이웃하는 M×N개 블록(BR)의 움직임 정보에 아래의 식에 따라 수직 보간을 통해 오른쪽 이웃 M×N개 블록 R(W, y) 각각의 움직임 정보를 획득하며, 여기서 M×N은 블록의 크기를 나타낸다:
R(W, y) = ((H - y - 1)×AR + (y + 1)×BR)/H.
왼쪽 위의 공간적으로 이웃하는 블록(BL)의 움직임 정보와 오른쪽 아래의 시간적으로 이웃하는 M×N개 블록(BR)의 움직임 정보에 아래의 식에 따라 수평 보간을 통해 아래의 이웃하는 M×N개 블록(B(x, H)) 각각의 움직임 정보를 획득한다:
B(x, H) = ((W - x - 1)×BL + (x + 1)×BR)/W.
(x, y)는 현재 블록의 왼쪽 위 서브블록에 대한 현재 M×N개 서브블록의 좌표를 나타낸다. W와 H는 각각 현재 블록의 폭와 높이(서브블록에서 측정된 것)를 나타낸다. AR은 오른쪽 위의 공간적으로 이웃하는 M×N개 블록의 움직임 정보를 나타낸다. BR은 오른쪽 아래의 시간적으로 이웃하는 M×N개 블록의 움직임 정보를 나타낸다. BL은 왼쪽 아래의 공간적으로 이웃하는 M×N개 블록의 움직임 정보를 나타낸다.
각각의 서브블록의 움직임 정보는 다음과 같은 방식으로 획득된다.
수평 움직임 벡터는 현재 서브블록이 위치한 행에서 왼쪽의 이웃하는 M×N개 블록의 움직임 벡터와 오른쪽의 이웃하는 M×N개 블록의 움직임 벡터에 기초하여 다음 식에 따라 수평 보간을 통해 획득된다:
수직 움직임 벡터는 현재 서브블록이 위치한 열에서 위의 이웃하는 M×N개 블록의 움직임 벡터와 아래의 이웃하는 M×N개 블록의 움직임 벡터에 기초하여 다음 식에 따라 수직 보간을 통해 획득된다:
.
수평 및 수직 선형 보간을 통해 획득된 움직임 벡터의 평균값은 아래의 식에 따라 획득된다. 즉, 각각의 서브블록의 움직임 벡터는 다음과 같다:
P(x, y)=(H×Pn(x, y) + W×Pv(x, y) + H×W)/(2×H×W).
는 각각 현재 서브블록이 위치한 행에서 왼쪽의 이웃하는 M×N개 블록의 움직임 벡터와 오른쪽의 이웃하는 M×N개 블록의 움직임 벡터를 나타낸다. 는 각각 현재 서브블록이 위치한 열에서 위의 이웃하는 M×N개 블록의 움직임 벡터와 아래의 이웃하는 M×N개 블록의 움직임 벡터를 각각 나타낸다. 는 수평 보간을 통해 획득된 움직임 벡터를 나타낸다. 는 수직 보간을 통해 획득된 움직임 벡터를 나타낸다.
모든 공간적 및 시간적 이웃 블록(및 시간적으로 이웃하는 블록)이 리스트에 동일한 움직임 정보(기존 및 처리된 움직임 정보만)를 포함하면, 리스트를 사용할 수 없다. 두 개의 리스트를 사용할 수 없으면, 평면 움직임 정보를 사용할 수 없다. 대안으로, 모든 공간적으로 이웃하는 블록(및 시간적으로 이웃하는 블록)이 리스트에 동일한 움직임 정보(기존 및 처리된 움직임 정보만)를 포함하면, 동일한 움직임 정보는 리스트에 있는 현재 코딩 블록의 모든 서브블록의 움직임 정보이다.
가용 위치 블록에 대응하는 움직임 정보는 가용성을 검사하고 중복된 항목을 제거한 후에 제2 후보 움직임 정보 리스트(List1)에 순차적으로 삽입된다. list1의 후보 움직임 정보의 수량(중복 및 무자격 정보 제외)이 MaxNumMergeCand와 같으면, 삽입이 중지된다.
list1은 S12.1 ∼ S12.4에 기초하여 구성된다. list1의 후보 움직임 정보의 수량(중복 및 무자격 정보 제외)이 5개 미만이면, 리스트의 후보 움직임 정보의 수량은 영 움직임 벡터를 추가함으로써 지정된 수량에 도달할 수 있다. 예를 들어, 현재 블록의 제2 후보 움직임 정보 리스트(List1)은 표 3에 나타낸 형태일 수 있다:
[표 3]
대안으로, 현재 블록의 제2 후보 움직임 정보 리스트(List1)은 표 4에 나타낸 형태일 수 있다:
[표 4]
본 발명에서는, 서브블록 기반의 후보 움직임 정보 리스트를 구축하는 S12에서, S12.1, S12.2, S12.3, S12.4에서 후보 움직임 정보를 리스트에 추가하는 시퀀스는 한정되지 않는다. 후보 움직임 정보는 특정 순서로 추가될 수 있거나; 또는 상이한 유형의 움직임 정보가 리스트에 교대로 추가될 수 있거나; 또는 S12.1, S12.2, S12.3 및 S12.4에서 후보 움직임 정보 중 하나 이상이 리스트에 추가될 수 있다.
서브블록 기반 후보 움직임 정보 리스트는 서브블록 기반 병합 모드(merge_subblock) 모드로 구축된 후보 움직임 정보 리스트이고, 서브블록 기반 후보 움직임 정보 리스트는 아핀 모델 병합, 복합 병합 또는 ATMVP 중 적어도 하나의 서브블록 기반 병합 모드로 구축된 후보 움직임 정보 리스트를 포함할 수 있음을 이해해야 한다. 서브블록 기반 후보 움직임 정보 리스트의 모든 후보 움직임 정보는 아핀 모델 병합 모드에서, 복합 병합 모드에서, 또는 ATMVP 모드에서만, 또는 복수의 다른 모드에서 도출을 통해 얻을 수 있다. 복수의 상이한 모드는 세 가지 모드: 아핀 모델 병합, 복합 병합 및 ATMVP의 임의의 조합일 수 있다. 가능한 경우에 따라서는, 후보 움직임 정보 리스트는 다른 서브블록 기반 모드에서 획득된 움직임 정보를 더 포함할 수 있다. 후보 움직임 정보는 다음과 같이 리스트에 추가될 수 있다: ATMVP 모드에서 도출된 후보 움직임 정보가 먼저 추가되고 다른 모드에서 도출된 후보 움직임 정보가 추가될 수 있다. 본 발명에서는 조합 방식 및 추가 시퀀스를 열거하거나 상세히 기술하지 않는다.
선택적으로 2×2개의 서브블록을 포함하는 블록이 예로 사용된다. 서브블록 기반으로 구축된 후보 움직임 정보 리스트(list1)의 가능한 구현 형태는 다음을 포함할 수 있다: ATMVP ((MVx01, MVy01) (MVx02, MVy02) (MVx03, MVy03) (MVx04, MVy04)), (MVx1, MVy1), (MVx2, MVy2), (MVx3, MVy3), (MVx4, MVy4)}. 색인의 값이 0이면, 후속하여 (MVx01, MVy01) (MVx02, MVy02) (MVx03, MVy03) (MVx04, MVy04)에 기초하여 네 개의 서브블록에 대해 각각 대응하는 예측이 수행될 수 있다. 색인 값이 1이면,
현재 블록의 서브블록의 MV는 각각, AFFINE 모드에서 (MVx1, MVy1)에 기초하여 도출된다. 그런 다음, 현재 블록의 서브블록 각각이 도출된 각각의 MV에 기초하여 예측된다.
선택적으로, 서브블록 기반으로 구축된 후보 움직임 정보 리스트(list1)의 가능한 구현 형태는 다음을 포함할 수 있다: {ATMVP (MVx1, MVy1), (MVx2, MVy2), (MVx3, MVy3), (MVx4, MVy4)}. 색인 값이 0이면, 마지막으로 사용된 움직임 정보가 ATMVP를 통해 획득된다. 색인 값이 1이면, 사용되는 움직임 정보는 AFFINE 모드에서 (MVx1, MVy1)에 기초하여 도출된, 현재 블록의 서브블록의 MV이다.
S13: 두 개의 리스트에서 최적의 후보 움직임 정보를 선택한다.
최적 후보 움직임 정보는 최소 레이트 왜곡 비용 기준에 따라 두 개의 후보 움직임 정보 리스트에서 결정되며, 최적 후보 움직임 정보는 현재 코딩 블록의 움직임 정보로서 사용된다. 그런 다음,
최적 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트의 색인(예: list-idx) 및 리스트에서 최적 후보 움직임 정보 위치의 색인 값(예: mv-idx)이 디코더 측에 전송된다. 레이트 왜곡 비용은 아래의 식에 따라 계산되며, 여기서 J는 레이트 왜곡 비용(rate-distortion cost, RD Cost)을 나타내고, SAD는 원시 샘플 값과, 후보 움직임 정보를 사용하여 수행되는 움직임 보상을 통해 획득되는 예측된 샘플 값 사이의 절대 차이의 합(Sum of Absolute Differences, SAD)을 나타내고, R은 비트 레이트를 나타내고, λ는 라그랑주 승수를 나타낸다. 인코더 측은 후보 움직임 정보 리스트에서 선택된 움직임 정보의 색인 값을 디코더 측에 전송한다.
J = SAD + λR.
S14: S13에서 획득된 최적 후보 움직임 정보에 기초하여 현재 블록에 대한 움직임 보상을 수행하여 블록의 샘플 예측자를 획득한다.
또한, list0과 list1에서 "0"과 "1"은 단지 구별을 사용된 것임을 이해해야 한다. list0 또는 list1이 블록 기반 리스트 또는 서브블록 기반 리스트로 명명되는지는 미리 설정된 규칙에 따라 결정될 수 있다. 본 출원에서는 이를 한정하지 않는다.
구체적으로, 최적 움직임 정보가 블록 기반 후보 움직임 정보 리스트의 움직임 정보이면, 최적 움직임 정보에 기초하여 현재 블록이 예측된다.
구체적으로, 최적 움직임 정보가 서브블록 기반 후보 움직임 정보 리스트의 움직임 정보이면, 적어도 다음 두 가지 사례가 포함된다.
사례 1: 아핀 모드(적어도 아핀 모델 병합 모드 또는 복합 병합 모드 포함)에서 최적 움직임 정보가 획득되면, 최적 움직임 정보에 기초하여 현재 블록의 서브블록에 대응하는 움직임 정보가 도출되고, 현재 블록의 서브블록이 예측된다. 현재 블록은 복수의 서브블록을 포함할 수 있고, 현재 블록의 서브블록은 복수의 서브블록 중 어느 하나일 수 있다.
가능한 구현 프로세스에서, 최적 움직임 정보에 기초하여 현재 블록의 서브블록 각각에 대응하는 움직임 정보가 도출되고, 이에 상응하여 현재 블록의 서브블록 각각이 예측된다.
사례 2: ATMVP를 통해 최적 움직임 정보가 도출되면, 최적 움직임 정보에 기초하여 현재 블록의 서브블록이 예측된다.
가능한 구현 프로세스에서, 최적 후보 움직임 정보는 움직임 정보의 조합이고 현재 블록의 서브블록 각각에 대응하는 움직임 정보를 포함할 수 있으며, 현재 블록의 서브블록 각각이 이에 상응하여 예측된다.
또한, 최적의 움직임 정보에 기초한 예측을 수행하는 것은 최적의 움직임 정보에 기초하여 직접 예측을 수행하는 것을 포함할 수 있거나; 또는 최적의 움직임 정보를 도출하고, 도출된 움직임 정보에 기초하여 최적의 움직임 정보를 예측하는 것을 포함할 수 있거나; 또는 최적 움직임 정보를 보정하고, 보정을 통해 획득된 움직임 정보에 기초하여 예측을 수행하는 것을 포함할 수 있다.
전술한 경우는 본 발명의 일부 가능한 구현일 뿐이며, 어떠한 한정사항도 구성하지 않는다. 본 발명에서는 다른 경우를 속속들이 설명되지 않는다.
선택적으로, 현재 블록의 폭은 임계치보다 이상이고/이거나 현재 블록의 높이는 임계치 이상이다. 임계치는 4, 8 또는 16일 수 있지만 이에 한정되지 않는다.
실시예 1에 따르면, 다음의 방법 흐름을 획득할 수 있다.
S1301: 제1 리스트를 구축하며, 여기서 제1 리스트는 블록 기반 후보 움직임 정보 리스트이다.
S1302: 제2 리스트를 구축하며, 여기서 제2 리스트는 서브블록 기반 후보 움직임 정보 리스트이다.
S1303: 제1 후보 움직임 정보 리스트 및 제2 후보 움직임 정보 리스트로부터 최적 후보 움직임 정보를 결정한다.
S1304: 최적의 움직임 정보에 기초하여 현재 블록을 예측한다.
이 방법은 또한 다음 단계를 더 포함할 수 있다.
S1305: 현재 블록의 최적 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트를 결정하는 데 사용되는 식별자를 획득하고, 후보 움직임 정보 리스트에서 최적 후보 움직임 정보의 색인을 획득하며, 여기서 현재 블록에 사용되는 인터 예측 모드는 병합 모드이고, 식별자가 제1 특징 값인 경우, 후보 움직임 정보 리스트는 제1 리스트이고, 식별자가 제2 특징 값인 경우, 후보 움직임 정보 리스트는 제2 리스트이다.
S1306: 식별자와 색인을 비트스트림으로 인코딩한다.
S1305 및 S1306은 또한 독립적으로 새로운 인코딩 방법을 구성할 수 있다. 자세한 내용은 여기에서 설명하지 않는다.
실시예 1과 현재 기술의 차이점은 다음과 같다: 서로 다른 후보 움직임 정보 리스트에 복수 유형의 후보 움직임 정보가 삽입되고, RDO 기준에 따라 최적 후보 움직임 정보가 선정되며, 최적 후보 움직임 정보가 디코더 측에 전송된다. 실시예 1에 따르면, 블록(BLOCK) 기반 후보 움직임 정보 리스트와 서브블록(Sub-BLOCK) 기반 후보 움직임 정보 리스트가 서로 구별될 수 있어, 블록(BLOCK) 기반 후보 움직임 정보 리스트와 서브블록(Sub-BLOCK) 기반 후보 움직임 정보 리스트가 획득될 수 있도록 해준다. 이는 최적 후보 움직임 정보의 송신 비용을 효과적으로 감소시킨다.
실시예 2(디코더 측)
간략한 설명: 현재 블록(Block)의 후보 움직임 정보와 현재 서브블록(Sub-BLOCK)의 후보 움직임 정보는 후보 움직임 정보의 획득 모드에서 각각 list0과 list1에 삽입(또는 구축)될 수 있다.
블록 기반list0은 HEVC 모드와 비 인접 모드를 포함한다.
서브블록 기반 list1은 AFFINE 모드(움직임 모델 기반 아핀 모델 병합 모드 또는 제어점 기반 복합 병합 모드 포함), ATMVP 모드, STMVP 모드 및 평면 모드를 포함한다.
구체적인 구현 프로세스에서, 블록 기반 list0은 HEVC 모드(general_merge 또는 regular_merge) 및 비 인접 모드와 같은, 후보 움직임 벡터 도출 모드 중 하나 이상을 포함할 수 있으며, 서브블록 기반 list1은 AFFINE 모드, ATMVP 모드, STMVP 모드 및 평면 모드와 같은 후보 움직임 벡터 도출 모드 중 하나 이상을 포함할 수 있다. 본 출원에서는 설명을 위해 복수의 모드가 사용될 수 있다. 예를 들어, list1은 대안으로 ATMVP 모드만을 포함할 수 있다.
S21: 비트스트림을 파싱하여 최적 후보 움직임 정보의 색인 정보를 획득한다.
구체적으로, 비트스트림을 파싱하여 최적 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트의 색인(예: list-idx) 및 리스트에서 최적의 후보 움직임 정보의 위치의 색인 값(예: mv-index)을 획득한다. 비트스트림을 파싱함으로써 더 많은 신택스 요소를 추가로 획득할 수 있으며, 리스트 색인은 단지 가능한 구현예일 뿐임을 이해해야 한다.
S22: 후보 움직임 정보 리스트의 색인에 기초하여 후보 움직임 정보 리스트를 구축한다.
한정이 아닌 예로, 다음과 같은 경우가 있을 수 있다:
list-idx = 0이면, S11의 방법과 동일하거나 유사한 방법을 사용하여 구체적인 구현을 수행할 수 있다. 예를 들어, 블록 기반 후보 움직임 정보 리스트는 S11.1 및/또는 S11.2 모드에서 구축된다. 예를 들어, 후보 움직임 정보 리스트는 표 1 또는 표 2에 나타낸 리스트일 수 있으나 이에 한정되는 것은 아니다.
list-idx = 1이면, S12의 방법과 동일하거나 유사한 방법을 사용하여 구체적인 구현을 수행할 수 있다. 예를 들어, S12.1, S12.2 및/또는 S12.3의 모드에서 서브블록 기반 후보 움직임 정보 리스트가 구축된다. 예를 들어, 후보 움직임 정보 리스트는 표 3 또는 표 4에 나타낸 리스트일 수 있으나 이에 한정되는 것은 아니다.
움직임 벡터 리스트의 색인(list-idx)과 리스트에서 벡터의 색인(mv-index)를 결정되는 한, 특정 움직임 벡터를 결정할 수 있다는 것을 표를 통해 알 수 있다. 선택적으로, 색인의 식별자는 예를 들어 list-idx로 표현될 수 있다. 그러나 이에 한정되는 것은 않는다. 선택적으로, 색인 list-idx의 식별자 값은 0 또는 1을 포함할 수 있으나 이에 한정되는 것은 아니다. 선택적으로, 블록 기반 모드로 구축된 후보 움직임 정보 리스트는 list0(또는 list1)로 표현될 수 있으며, 서브블록 기반 모드로 구축된 후보 움직임 정보 리스트는 list1(또는 list0)으로 표현될 수 있다. "블록 기반 모드"는 현재 블록을 기반으로 예측을 수행하는 모드를 가리키고, "서브블록 기반 모드"는 서브블록을 기반으로 예측을 수행하는 모드를 가리키며, 서브블록은 현재 블록을 복수의 서브블록을 분할하여 획득된다.
특징 값의 특정 값, 또는 식별자의 형태, 또는 또는 리스트의 특정 표현 심볼은 본 발명에서 한정되지 않고 속속들이 설명되지 않음을 이해해야 한다.
리스트 색인, 또는 유사한 식별자, 또는 유사한 신택스 요소가 현재 블록의 최적 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트를 결정하는 데 사용될 수 있거나, 또는 현재 블록의 최적 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트를 구축하는 모드를 결정하는 데 사용될 수 있거나; 또는 현재 블록에 대해 종래의 병합 모드 또는 서브블록 기반 병합 모드가 현재 블록에 사용되는지를 지시하는 데 사용될 수 있음을 이해해야 한다.
선택적으로, 비트스트림이 파싱되는 경우, 획득된 신택스 요소는 리스트 색인을포함할 수 있고, 신택스 요소에 기초하여 현재 코딩 블록에 대한 제1 리스트 또는 제2 리스트를 구축하기로 결정하는 것은, 후보 움직임 정보 리스트 색인을 획득하는 것을 포함하며, 여기서 리스트 색인이 제1 특징 값인 경우, 현재 코딩 블록에 대해 제1 리스트를 구축하도록 지시하거나, 또는 리스트 색인이 제2 특징 값인 경우, 현재 코딩 블록에 대해 제2 리스트를 구축하도록 지시한다.
선택적으로, 비트스트림이 파싱되는 경우, 획득된 신택스 요소는 현재 블록에 사용되는 종래의 병합 모드를 지시하는 데 사용되는 지시 정보 또는 현재 블록에 사용되는 서브블록 기반 병합 모드를 지시하는 데 사용되는 지시 정보를 포함할 수 있다.
선택적으로, 비트스트림이 파싱되는 경우, 획득된 신택스 요소는 현재 블록에 사용되는 블록 기반 후보 움직임 정보 리스트를 결정하는 데 사용되는 지시 정보 또는 현재 블록에 사용되는 서브블록 기반 후보 움직임 정보 리스트를 결정하는 데 사용되는 지시 정보를 포함할 수 있다.
S23: 색인 정보에 기초하여 최적 후보 움직임 정보를 결정한다.
구체적으로, 최적 후보 움직임 정보는 list-idx 및 mv-index에 기초하여 리스트로부터 결정된다.
예를 들어, list-idx = 0이고 mv-index = 0이면, 현재 블록의 움직임 정보는 MVB1이다.
S24: S23에서 획득된 최적 후보 움직임 정보에 기초하여 현재 블록에 대해 움직임 보상을 수행하여 블록의 샘플 예측자를 획득한다.
특정 예측 모드는 인코더 측의 예측 모드에 대응할 수 있다.
구체적으로, 최적 움직임 정보가 블록 기반 후보 움직임 정보 리스트의 움직임 정보이면, 최적 움직임 정보에 기초하여 현재 블록를 예측한다.
구체적으로, 최적 움직임 정보가 서브블록 기반 후보 움직임 정보 리스트의 움직임 정보이면, 적어도 다음 두 가지 경우를 포함한다.
사례 1: S23에서 결정된 최적 움직임 정보가 아핀 모드(적어도 아핀 모델 병합 모드 또는 복합 병합 모드 포함)에서 획득되면, 현재 블록의 서브블록에 대응하는 움직임 정보는 최적 움직임 정보에 기초하여 도출되고, 현재 블록의 서브블록이 예측된다. 현재 블록은 복수의 서브블록을 포함할 수 있고, 현재 블록의 서브블록은 복수의 서브블록 중 어느 하나일 수 있다.
가능한 구현 프로세스에서, 최적 움직임 정보에 기초하여 현재 블록의 서브블록 각각에 대응하는 움직임 정보가 도출되고, 현재 블록의 서브블록 각각이 이에 상응하여 예측된다.
사례 2: S23에서 결정된 최적 움직임 정보가 ATMVP 모드에서 획득되면, 최적 움직임 정보에 기초하여 현재 블록의 서브블록이 예측된다.
가능한 구현 프로세스에서, 최적 후보 움직임 정보는 움직임 정보의 조합일 수 있으며, 현재 블록의 서브블록 각각에 대응하는 움직임 정보를 포함하고, 현재 블록의 서브블록 각각이 대응하여 예측된다.
사례 3: 지시를 통해 ATMVP 모드에서 S23에서 결정된 최적 움직임 정보가 획득되면, 대응하는 지시에 기초하여 최적 움직임 정보가 획득되고, 최적 움직임 정보에 기초하여 현재 블록의 서브블록이 예측된다.
가능한 구현 프로세스에서, 최적 후보 움직임 정보는 지시 정보에 기초하여 획득될 수 있다. 현재 블록의 서브블록 각각에 대응하는 움직임 정보는 지시 정보에 기초하여 ATMVP 모드에서 획득될 수 있으며, 현재 블록의 서브블록 각각이 이에 상응하여 예측된다.
또한, 최적 움직임 정보에 기초한 예측을 수행하는 것은 최적 움직임 정보에 기초한 예측을 직접 수행하는 것을 포함할 수 있거나; 또는 최적 움직임 정보를 도출하고, 도출을 통해 획득된 움직임 정보에 기초하여 예측을 수행하는 것을 포함할 수 있거나; 또는 최적 움직임 정보를 보정하고, 보정을 통해 획득된 움직임 정보에 기초하여 예측을 수행하는 것을 포함할 수 있다.
전술한 경우는 본 발명의 일부 가능한 구현예일 뿐이며 어떠한 한정사항도 구성하지 않는다. 다른 경우는 본 발명에서 속속들이 설명하지 않는다.
선택적으로, 현재 블록의 폭은 임계치 이상이고/이거나 현재 블록의 높이는 임계치 이상이다. 임계치는 4, 8 또는 16일 수 있지만 이에 한정되는 것은 아니다.
결론적으로, 실시예 1 및 실시예 2에 따르면, 본 발명에서 다음의 방법 프로시저가 획득될 수 있다. 도 14 및 도 15를 참조하기 바란다.
도 14는 디코딩 방법을 나타낸다. 이 방법에는 다음 단계가 포함된다.
S141: 현재 블록의 최적 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트의 구축 모드를 획득하고, 후보 움직임 정보 리스트에서 최적 후보 움직임 정보의 색인을 획득하며, 여기서 후보의 구축 모드 움직임 정보 리스트는 블록 기반 후보 움직임 정보 리스트를 구축하는 모드 또는 서브블록 기반 후보 움직임 정보 리스트를 구축하는 모드이다.
선택적 방식에 대해서는 실시예의 S21을 참조한다.
구체적으로, 후보 움직임 정보 리스트를 결정하는 데 사용되는 식별자가 획득된다. 현재 블록에 사용되는 인터 예측 모드는 병합 모드이다. 식별자가 제1 특징 값인 경우, 후보 움직임 정보 리스트의 구축 모드는 블록 기반 후보 움직임 정보 리스트를 구축하는 모드이거나; 또는 식별자가 제2 특징 값인 경우, 후보 움직임 정보 리스트의 구축 모드는 서브블록 기반 후보 움직임 정보 리스트를 구축하는 모드이다.
선택적인 방식에 대해서는 실시예의 S22의 식별자의 기능을 참조한다.
S142: 구축 모드로 후보 움직임 정보 리스트를 구축한다.
선택적 방식에 대해서는 실시예의 S22를 참조한다.
블록 기반 후보 움직임 정보 리스트의 구축에 대해서는 본 실시예의 S11.1 및/또는 S11.2를 참조한다.
서브블록 기반 후보 움직임 정보 리스트의 구축에 대해서는 본 실시예의 S12.1, S12.2, S12.3 및/또는 S12.4를 참조한다.
S143: 색인에 기초하여 구축된 후보 움직임 정보 리스트로부터 최적 움직임 정보를 결정한다. 선택적 방식에 대해서는 실시예의 S13을 참조한다.
S144: 최적 움직임 정보에 기초하여 현재 블록을 예측한다. 선택적 방식에 대해서는 실시예의 S14를 참조한다.
도 15는 디코딩 방법을 나타낸다. 이 방법은 다음 단계를 포함한다.
S151: 비트스트림을 파싱하여 신택스 요소를 획득하며, 여기서 신택스 요소는 현재 블록의 최적 후보 움직임 정보의 색인을 적어도 포함한다.
선택적 방식에 대해서는 실시예의 S21을 참조한다.
S152: 신택스 요소에 기초하여, 현재 블록에 대한 제1 리스트 또는 제2 리스트를 구축하기로 결정하며, 여기서 제1 리스트는 블록 기반 후보 움직임 정보 리스트이고, 제2 리스트는 서브블록 기반 후보 움직임 정보 리스트이다.
선택적 방식에 대해서는 실시예의 S22를 참조한다.
블록 기반 후보 움직임 정보 리스트의 구축에 대해서는 본 실시예의 S11.1 및/또는 S11.2를 참조한다.
서브블록 기반 후보 움직임 정보 리스트의 구축에 대해서는 본 실시예의 S12.1, S12.2, S12.3 및/또는 S12.4를 참조한다.
S153: 색인에 기초하여 제1 리스트 또는 제2 리스트로부터 최적 움직임 정보를 결정한다.
선택적 방식에 대해서는 실시예의 S23을 참조한다.
S154: 최적 움직임 정보에 기초하여 현재 블록을 예측한다.
선택적 방식에 대해서는 실시예의 S24를 참조한다.
전술한 실시예에서 구체적인 구현 방안을 완전히 설명하였다. 자세한 내용은 여기서 다시 설명하지 않는다.
더 명확한 신택스 표에 대해서는 도 16을 참조한다. 도 16은 병합 데이터 신택스 표를 나타낸다.
신택스 표 또는 비트스트림이 merge_subblock_flag[x0][y0]을 포함하지 않음을 알 수 있다. merge_subblock_flag[x0][y0]는 본 발명에서 블록 기반 후보 움직임 정보 리스트 또는 서브블록 기반 후보 움직임 정보 리스트가 현재 블록에 사용됨을 지시하는 데 사용될 수 있는 지시 정보에 대응할 수 있다.
실시예 2와 현재 기술의 차이점은 다음과 같다: 복수 유형의 후보 움직임 정보가 상이한 후보 움직임 정보 리스트에 삽입되고; 최적 후보 움직임 정보의 색인 정보를 획득하기 위해 비트스트림이 파싱되고; 현재 블록은 대응하는 움직임 정보에 기초하여 디코딩된다. 실시예 2에 따르면, 블록(BLOCK) 기반 후보 움직임 정보 리스트와 서브블록(Sub-BLOCK) 기반 후보 움직임 정보 리스트가 서로 구별될 수 있다. 이것은 최적 후보 움직임 정보의 송신 비용을 효과적으로 감소시킨다.
실시예 3(인코더 측)
간략한 설명: 현재 블록(Block)에 대해 서로 다른 움직임 정보 리스트 구축 모드로 list0과 list1이 구축된다. list0은 블록을 기본 예측 유닛으로 사용하여 현재 블록을 예측하는 경우에, 현재 블록에 사용되는 후보 움직임 벡터 리스트이다. list1은 서브블록을 기본 예측 유닛으로 사용하여 현재 블록을 예측하는 경우에 현재 블록에 사용되는 후보 움직임 벡터 리스트이다. 현재 블록은 복수의 서브블록으로 분할될 수 있으며, 각각의 서브블록은 정사각형 또는 직사각형 형태일 수 있다. 서브블록은 예를 들어 4×4, 8×8 또는 4×8의 크기를 가질 수 있지만 이에 한정되지 않는다. list0 및 list1은 후보 움직임 정보를 포함한다. 후보 움직임 정보는 움직임 벡터, 예측 방향, 참조 색인 등을 포함한다. 간단히, list0과 list1은 현재 블록의 특징에 적용 가능한 서로 다른 움직임 정보 리스트 구축 모드로 구축된다.
예를 들어, 블록 기반 list0은 HEVC 모드, 비 인접 모드, ATMVP 모드 또는 STMVP 모드를 포함하고;
서브블록 기반 list1은 AFFINE 모드(움직임 모델 기반 아핀 모델 병합 모드 또는 제어점 기반 복합 병합 모드 포함) 및 평면 모드를 포함한다.
구체적인 구현 프로세스에서, list0은 HEVC 모드, 비 인접 모드, ATMVP 모드, STMVP 모드와 같은 후보 움직임 벡터 도출 모드 중 하나 이상을 포함할 수 있다. 예를 들어, 다른 실시예에서, list0는 대안으로 ATMVP 모드만을 포함할 수 있다. list1은 AFFINE 모드 및 평면 모드와 같은 후보 움직임 벡터 도출 모드 중 하나 이상을 포함할 수 있다. 본 출원에서는 설명을 위해 복수의 모드가 사용될 수 있다.
S31: 현재 코딩 블록의 제1 후보 움직임 정보 리스트(List0)을 구축한다.
S31.1: S11.1의 방법과 동일하거나 유사한 방법을 사용하여 구체적인 구현을 수행할 수 있다.
S31.2: S11.2의 방법과 동일하거나 유사한 방법을 사용하여 구체적인 구현을 수행할 수 있다.
S31.3: S12.3의 방법과 동일하거나 유사한 방법을 사용하여 구체적인 구현을 수행할 수 있다.
본 발명에서 S31.1 및 S31.2의 후보 움직임 정보를 리스트에 추가하는 시퀀스는 S31에 한정되지 않는다는 점에 유의해야 한다. S31.1의 움직임 정보가 S31.2의 움직임 정보 앞에 추가될 수 있거나; 또는 S31.2의 움직임 정보가 S31.1의 움직임 정보 앞에 추가될 수 있거나; 또는 S31.1의 움직임 정보와 S31.2의 움직임 정보를 교대로 리스트에 추가할 수 있다.
S32: 현재 코딩 블록의 제2 후보 움직임 정보 리스트(List1)를 구축한다.
S32.1: S12.1의 방법과 동일하거나 유사한 방법을 사용하여 구체적인 구현을 수행할 수 있다.
S32.2: S12.2의 방법과 동일하거나 유사한 방법을 사용하여 구체적인 구현이 수행될 수 있다.
S32.3: S12.4의 방법과 동일하거나 유사한 방법을 사용하여 구체적인 구현을 수행할 수 있다.
본 발명에서 S32.1, S32.2, S32.3의 후보 움직임 정보를 리스트에 추가하는 순서는 S32에 한정되지 않는다는 점에 유의해야 한다. 후보 움직임 정보는 특정 시퀀스로 추가될 수 있거나; 또는 서로 다른 유형의 움직임 정보가 리스트에 교대로 추가될 수 있거나; 또는 S32.1, S32.2 및 S32.3의 후보 움직임 정보 중 하나 이상이 리스트에 추가될 수 있다.
S33: 두 개의 리스트에서 최적 후보 움직임 정보를 선택하며, 여기서 S13의 방법과 동일하거나 유사한 방법을 사용하여 구체적인 구현을 수행할 수 있다.
S34: S33에서 획득한 최적 후보 움직임 정보에 기초하여 현재 블록에 대해 움직임 보상을 수행하여, 블록의 샘플 예측자를 획득한다. 구체적인 구현은 S14의 방법과 동일하거나 유사한 방법을 사용하여 수행될 수 있다.
list0과 list1은 상호 교환될 수 있음을 이해해야 한다.
실시예 3과 현재 기술 사이의 차이점은 다음과 같다: 다양한 후보 움직임 벡터가 서로 다른 후보 움직임 벡터 리스트에 삽입되고; 최적 후보 움직임 정보의 색인 정보를 획득하기 위해 비트스트림이 파싱되며; 현재 블록은 대응하는 움직임 정보에 기초하여 디코딩된다. 실시예 3에 따르면, 모델 기반 서브블록(SUB-BLOCK) 기반 후보 움직임 정보 리스트와 다른 후보 움직임 정보는 서로 구별될 수 있다. 이는 최적 후보 움직임 정보의 송신 비용을 효과적으로 감소시킨다.
실시예 4(디코더 측)
간략한 설명: 현재 블록(Block)의 후보 움직임 정보와 현재 서브블록(Sub-BLOCK)의 후보 움직임 정보는 후보 움직임 정보의 획득 모드에서 각각 list0과 list1에 삽입(또는 구축)될 수 있다.
블록 기반list0은 HEVC 모드, 비 인접 모드, ATMVP 모드 및 STMVP 모드를 포함한다.
서브블록 기반list1은 AFFINE 모드(움직임 모델 기반 아핀 모델 병합 모드 또는 제어점 기반 복합 병합 모드 포함)와 평면 모드를 포함한다.
구체적인 구현 프로세스에서, list0은 HEVC 모드, 비 인접 모드, ATMVP 모드, STMVP 모드와 같은 후보 움직임 벡터 도출 모드 중 하나 이상을 포함할 수 있다. 예를 들어, 다른 실시예에서, list0는 ATMVP 모드만을 포함할 수 있다. list1은 AFFINE 모드 및 평면 모드와 같은 후보 움직임 벡터 도출 모드 중 하나 이상을 포함할 수 있다. 본 출원에서는 설명을 위해 복수의 모드가 사용될 수 있다.
S41: 비트스트림을 파싱하여 최적 후보 움직임 정보의 색인 정보를 획득한다.
구체적으로, 비트스트림을 파싱하여 최적 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트의 색인(예: list-idx)를 획득하고, 리스트에서 최적의 후보 움직임 정보의 위치의 색인 값(예: mv-index)을 획득한다.
S42: 후보 움직임 정보 리스트의 색인에 기초하여 후보 움직임 정보 리스트를 구축한다.
list-idx = 0이면, S31의 방법과 동일하거나 유사한 방법을 사용하여 구체적인 구현을 수행할 수 있다. 예를 들어, 블록 기반 후보 움직임 정보 리스트는 S31.1, S31.2 및/또는 S31.3의 모드에서 구축된다. 이에 상응하여, 다른 예를 들어, 블록 기반 후보 움직임 정보 리스트는 S11.1, S11.2 및/또는 S12.3의 모드에서 구축된다.
list-idx = 1이면, 모델 기반 서브플록 기반 후보 움직임 정보 리스트는 S32.1, S32.2 및/또는 S32.3의 모드에서 구축된다. 이에 상응하여, 다른 예를 들어, 서브블록 기반 후보 움직임 정보 리스트는 S12.1, S12.2 및/또는 S12.4의 모드에서 구축된다.
S43: 색인 정보에 기초하여 최적 후보 움직임 정보를 결정한다.
구체적으로, 최적 후보 움직임 정보는 list-idx 및 mv-index에 기초하여 리스트로부터 결정된다.
S44: S43에서 획득한 최적 후보 움직임 정보에 기초하여 현재 블록에 대해 움직임 보상을 수행하여 블록의 샘플 예측자를 획득한다.
실시예 4와 현재 기술 사이의 차이점은 다음과 같다: 상이한 유형의 후보 움직임 정보가 상이한 후보 움직임 정보 리스트에 삽입되고; 비트스트림이 최적 후보 움직임 정보의 색인 정보를 획득하기 위해 파싱되고; 현재 블록은 대응하는 움직임 정보에 기초하여 디코딩된다. 실시예 4에 따르면, 모델 기반 서브블록(SUB-BLOCK) 기반 후보 움직임 정보 리스트와 다른 후보 움직임 정보는 서로 구별될 수 있다. 이는 최적 후보 움직임 정보의 송신 비용을 효과적으로 감소시킨다.
실시예 5(인코더 측)
현재 코딩 블록이 미리 설정된 조건을 충족하는지를 판정한다. 현재 코딩 블록이 미리 설정된 조건을 충족하면, S51 및 S52가 수행되거나; 또는 현재 코딩 블록이 미리 설정된 조건을 총족하지 않으면, S51이 수행되거나; 또는 현재 코딩 블록이 미리 설정된 조건을 충족하면 S51 및 S52가 수행되거나; 또는 현재 코딩 블록이 미리 설정된 조건을 충족하지 않으면, S52가 수행된다.
미리 설정된 조건은 다음과 같을 수 있다.
(1) 현재 코딩 블록의 폭이 임계치 이상이고(예: 4, 8, 16 또는 32이지만 이에 한정되지 않음) 및/또는 현재 코딩 블록의 높이가 임계치 이상이거나(예: 4, 8, 16 또는 32이지만 이에 한정되지 않음); 또는
(2) 현재 코딩 블록의 샘플 수량(폭×높이)이 임계치(예: 256) 이상이다.
미리 설정된 조건은 인코더 측과 디코더 측에서 모두 합의하거나, SPS 또는 PPS와 같은 상위 레벨 신택스를 사용하여 지정될 수 있다.
S51: 현재 코딩 블록의 제1 후보 움직임 정보 리스트(List0)를 구축한다.
제1 후보 움직임 정보 리스트는 대응하는 방법, 예를 들어 실시예 1의 S11 또는 실시예 3의 S31을 사용하여 구축된다. 자세한 내용은 여기서 다시 설명하지 않는다.
S52: 현재 코딩 블록의 제2 후보 움직임 정보 리스트(List1)를 구축한다.
제2 후보 움직임 정보 리스트는 대응하는 방법, 예를 들어 실시예 1의 S12 또는 실시예 3의 S32를 사용하여 구축된다. 자세한 내용은 여기서 다시 설명하지 않는다.
S53: 최적 후보 움직임 정보를 선택한다.
현재 코딩 블록이 미리 설정된 조건을 충족하면, 현재 코딩 블록의 움직임 정보로서, 레이트 왜곡 비용 기준에 따라 두 개의 후보 움직임 정보 리스트로부터 최적 후보 움직임 정보가 결정된다. 그런 다음, 최적 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트의 색인(예: list-idx)과, 리스트에서 최적 후보 움직임 정보 위치의 색인 값(예: mv-idx)이 디코더 측에 전송된다.
현재 코딩 블록이 미리 설정된 조건을 충족하지 않으면, 현재 코딩 블록의 움직임 정보로서, 레이트 왜곡 비용 기준에 따라 하나의 후보 움직임 정보 리스트로부터 최적 후보 움직임 정보가 결정된다. 그런 다음, 후보 움직임 정보 리스트에서 최적 후보 움직임 정보의 위치의 색인 값(예: mv-idx)이 디코더 측에 전송된다.
S54: S53에서 획득한 최적 후보 움직임 정보에 기초하여 현재 블록에 대해 움직임 보상을 수행하여 블록의 샘플 예측자를 획득한다. 구체적인 구현은 S14 또는 S34의 방법과 동일하거나 유사한 방법을 사용하여 수행될 수 있다.
실시예 5와 현재 기술 사이의 차이점은 다음과 같다: 다양한 후보 움직임 벡터가 서로 다른 후보 움직임 벡터 리스트에 삽입되고; 최적 후보 움직임 정보의 색인 정보를 획득하기 위해 비트스트림이 파싱되며; 현재 블록은 대응하는 움직임 정보에 기초하여 디코딩된다. 또한 미리 설정된 조건에 따라 서로 다른 움직임 정보 리스트가 구축될 것이고, 사용된 후보 리스트는 현재 코딩 블록의 특징에 기초하여 조건부로 파싱되므로, 후보 리스트를 지시하기 위해 필요한 비트 수량을 줄일 수 있다.
실시예 5를 참조하면, 인코딩 방법 프로시저는 다음과 같이 획득될 수 있다.
S161: 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하면, 제1 리스트를 구축한다.
S162: 제2 리스트를 구축하며, 여기서 제1 리스트는 블록 기반 후보 움직임 정보 리스트이고, 제2 리스트는 서브블록 기반 후보 움직임 정보 리스트이며, 현재 블록에 사용되는 인터 예측 모드는 병합 모드이다.
S163: 제1 리스트 및 제2 리스트로부터 최적 후보 움직임 정보를 결정한다.
S164: 최적 움직임 정보에 기초하여 현재 블록을 예측한다.
선택적으로, S161 이전에, 이 방법은 다음을 더 포함할 수 있다:
현재 블록의 크기가 미리 설정된 샘플 수량을 충족하는지를 판정한다.
선택적으로, 현재 코딩 블록의 폭 또는 높이가 임계치 이상인지를 판정한다. 예를 들어, 폭 및/또는 높이가 8 이상인지를 판정한된다.
현재 블록의 크기가 미리 설정된 샘플 수량을 충족하지 않으면, 이 방법은 다음을 더 포함한다.
S165: 제1 리스트를 구축하며, 여기서 제1 리스트는 블록 기반 후보 움직임 정보 리스트이고, 현재 블록에 사용되는 인터 예측 모드는 병합 모드이다.
S166: 제1 리스트에서 최적 후보 움직임 정보를 결정한다.
S167: 최적 움직임 정보에 기초하여 현재 블록을 예측한다.
S165 내지 S167은 S161 내지 S164와 무관하게 구현 가능한 인코딩 방법을 구성할 수 있음을 이해해야 한다.
실시예 6(디코더 측)
S61: 미리 설정된 조건에 기초하여 비트스트림을 파싱하여 최적 후보 움직임 정보를 획득한다.
미리 설정된 조건은 다음과 같을 수 있다.
(1) 현재 코딩 블록의 폭이 임계치 이상이고(예: 4, 8, 16 또는 32이지만 이에 한정되지 않음) 및/또는 현재 코딩 블록의 높이가 임계치 이상이거나(예: 4, 8, 16 또는 32이지만 이에 한정되지 않음); 또는
(2) 현재 코딩 블록의 샘플 수량(폭×높이)이 임계치(예: 256) 이상이다.
미리 설정된 조건은 인코더 측과 디코더 측에서 모두 합의하거나, SPS 또는 PPS와 같은 상위 레벨 신택스를 사용하여 지정될 수 있다.
현재 코딩 블록이 미리 설정된 조건을 충족하지 않는 경우(미리 설정된 조건 중 어느 것도 충족하지 않는 것으로 이해될 수 있음), 움직임 정보의 색인 정보는 파싱되지 않는다(블록 기반 움직임 정보만 사용). 이 경우, list0(구체적인 구현에서는 list-idx = 0)이 디폴트로 사용되며, list0에서 위치의 색인 값(mv-index)이 파싱된다. 구체적으로 list0 리스트에서 위치의 색인 값(mv-index)만 파싱될 수 있다.
현재 코딩 블록이 조건을 충족하는 경우(미리 설정된 조건 중 어느 하나를 충족시키는 것으로 이해될 수 있음), 비트스트림을 파싱하여 최적 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트의 색인(예: list-idx, list-idx의 값이 0 또는 1일 수 있)을 획득하고 최적 후보 움직임 정보 리스트에서 최적 후보 움직임 정보의 위치의 색인 값(예: mv-index)을 획득한다.
S62: 후보 움직임 정보 리스트의 색인에 기초하여 후보 움직임 정보 리스트를 구축한다.
구체적으로, 리스트는 실시예 2 또는 실시예 4에서 대응하는 방법을 사용하여 구축될 수 있다. 구체적으로, 리스트는 S22 또는 S42의 방법과 동일하거나 유사한 방법을 사용하여 구축될 수 있다. 자세한 내용은 여기서 다시 설명하지 않는다.
S63: 색인 정보에 기초하여 최적 후보 움직임 정보를 결정한다.
구체적으로, 최적 후보 움직임 정보는 list-idx 및 mv-index에 기초하여 리스트로부터 결정된다. 구체적으로, 최적 후보 움직임 정보는 S23 또는 S43의 방법과 동일하거나 유사한 방법을 사용하여 결정될 수 있다. 자세한 내용은 여기서 다시 설명하지 않는다.
S64: S63에서 획득한 최적 후보 움직임 정보에 기초하여 현재 코딩 블록에 대해 움직임 보상을 수행하여 블록의 샘플 예측자를 획득한다. 구체적인 구현은 S24 또는 S44의 방법과 동일하거나 유사한 방법을 사용하여 수행될 수 있다.
실시예 6과 현재 기술의 차이점은 다음과 같다: 다양한 후보 움직임 벡터가 서로 다른 후보 움직임 벡터 리스트에 삽입되고; 비트스트림이 최적 후보 움직임 정보의 색인 정보를 획득하기 위해 파싱되며; 현재 코딩 블록은 대응하는 움직임 정보에 기초하여 디코딩된다. 또한, 미리 설정된 조건에 기초하여 서로 다른 움직임 정보 리스트가 구축될 수 있으며, 사용된 후보 리스트는 현재 코딩 블록의 특징에 기초하여 조건부로 파싱되므로, 후보 리스트를 지시하기 위해 필요한 비트 수량을 줄일 수 있다.
실시예 6을 참조하면, 디코딩 방법 프로시저를 획득할 수 있다. 도 17을 참조한다. 이 방법은 다음 단계를 포함한다.
S171: 현재 블록의 크기가 미리 설정된 샘플 수량을 충족하면, 현재 블록의 최적 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트를 결정하는 데 사용되는 식별자를 획득하고, 후보 움직임 정보 리스트에서 최적 후보 움직임의 색인을 획득하며, 현재 블록에 사용되는 인터 예측 모드는 병합 모드이다.
선택적으로, 구체적인 구현에 대해서는 S61을 참조하기 바란다.
S172: 식별자에 기초하여 후보 움직임 정보 리스트를 구축하며; 식별자가 제1 특징 값인 경우, 블록 기반 후보 움직임 정보 리스트를 구축하거나; 또는 식별자가 제2 특징 값인 경우, 서브블록 기반 후보 움직임 정보 리스트를 구축한다.
선택적으로, 구체적인 구현에 대해서는 S62를 참조하기 바란다.
S173: 색인에 기초하여 구축된 후보 움직임 정보 리스트로부터 최적 움직임 정보를 결정한다.
선택적으로, 구체적인 구현에 대해서는 S63을 참조하기 바란다.
S174: 최적 움직임 정보에 기초하여 현재 블록을 예측한다.
선택적으로 구체적인 구현에 대해서는 S64를 참조하기 바란다.
S171 이전에, 이 방법은 현재 블록의 크기가 미리 설정된 조건 또는 미리 설정된 샘플 수량을 충족하는지를 판정하는 단계를 더 포함한다.
선택적으로, 현재 코딩 블록의 폭 또는 높이가 임계치 이상인지를 판정한다. 예를 들어 폭 및/또는 높이가 8 이상인지를 판정한다.
현재 블록의 크기가 미리 설정된 샘플 수량을 충족하지 않는 경우, 이 방법은 다음을 추가로 포함한다:
S175: 제1 리스트를 구축하며, 여기서 제1 리스트는 블록 기반 후보 움직임 정보 리스트이고, 현재 블록에 사용되는 인터 예측 모드는 병합 모드이다.
S176: 제1 리스트에서 최적 후보 움직임 정보를 결정한다.
S177: 최적 움직임 정보에 기초하여 현재 블록을 예측한다.
S175 내지 S177은 S171 내지 S174와 무관하게 구현 가능한 인코딩 방법을 구성할 수 있음을 이해해야 한다.
실시예 7(디코더 측)
S71: 미리 설정된 조건에 기초하여 비트스트림을 파싱하여 최적 후보 움직임 정보의 색인 정보를 획득한다.
제1 미리 설정된 조건이 충족되는 경우, 최적 후보 움직임 정보 리스트의 색인은 0이다(블록 단위 움직임 정보만 사용). 다시 말해, list0(list-idx = 0으로 표시될 수도 있음)이 사용된다.
제2 미리 설정된 조건이 충족되는 경우, 최적 후보 움직임 정보 리스트의 색인은 1이다(서브블록 기반 움직임 정보만 사용). 다시 말해, list1(list-idx = 1로 표시될 수도 있음)이 사용된다.
제1 미리 설정된 조건과 제2 미리 설정된 조건이 모두 충족되지 않는 경우, 비트스트림을 파싱하여 최적 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트의 색인(예: list-idx)를 획득하고, list-idx에 기초하여, list0 또는 list1이 사용될지를 판정한다. 마지막으로, 대응하는 리스트에서 최적 후보 움직임 정보의 위치의 색인 값(예: mv-index)을 파싱한다.
제1 미리 설정된 조건은 다음과 같을 수 있다.
(1) 현재 코딩 블록의 폭이 제1 임계치(예:를 들어, 16) 미만이고, 및/또는 현재 코딩 블록의 높이가 제1 임계치(예: 16) 미만이거나; 또는
(2) 현재 코딩 블록의 샘플 수량(폭× 높이)이 제1 임계치(예: 256) 미만이다.
제1 미리 설정된 조건은 인코더 측과 디코더 측 모두에 의해 합의될 수 있거나, SPS 또는 PPS와 같은 상위 레벨 신택스를 사용하여 지정될 수 있다.
제2 미리 설정된 조건은 다음과 같을 수 있다.
(1) 현재 코딩 블록의 폭이 제2 임계치(예: 64) 이상이고, 및/또는 현재 코딩 블록의 높이가 제2 임계치(예: 64) 이상이거나; 또는
(2) 현재 코딩 블록의 샘플 수량(폭× 높이)이 제2 임계치(예: 1024) 이상이다.
제2 미리 설정된 조건은 인코더 측과 디코더 측 모두에 의해 합의될 수 있거나, SPS 또는 PPS와 같은 상위 레벨 신택스를 사용하여 지정될 수 있다.
제2 임계치는 제1 임계치보다 크다.
S72: 후보 움직임 정보 리스트의 색인에 기초하여 후보 움직임 정보 리스트를 구축한다.
구체적으로, 리스트는 실시예 2, 실시예 4 또는 실시예 6에서 대응하는 방법을 사용하여 구축될 수 있다. 구체적으로, 리스트는 S22, S42 또는 S62의 방법과 동일하거나 유사한 방법을 사용하여 구축될 수 있다. 자세한 내용은 여기서 다시 설명하지 않는다.
S73: 색인 정보에 기초하여 최적 후보 움직임 정보를 결정한다.
구체적으로, 최적 후보 움직임 정보는 list-idx 및 mv-index에 기초하여 리스트로부터 결정된다. 구체적으로, 최적 후보 움직임 정보는 S23, S43 또는 S63의 방법과 동일하거나 유사한 방법을 사용하여 결정될 수 있다. 자세한 내용은 여기서 다시 설명하지 않는다.
S74: S73에서 획득된 최적 후보 움직임 정보에 기초하여 현재 코딩 블록에 대해 움직임 보상을 수행하여, 블록의 샘플 예측자를 획득한다. 구체적인 구현은 S24, S44, S64의 방법과 동일하거나 유사한 방법을 사용하여 수행할 수 있다.
실시예 7과 현재 기술 사이의 차이점은 다음과 같다: 다양한 후보 움직임 벡터가 서로 다른 후보 움직임 벡터 리스트에 삽입되고; 비트스트림이 최적 후보 움직임 정보의 색인 정보를 획득하기 위해 파싱되며; 현재 코딩 블록은 대응하는 움직임 정보에 기초하여 디코딩된다. 또한, 미리 설정된 조건에 기초하여 서로 다른 움직임 정보 리스트가 구축되고, 사용된 후보 리스트는 현재 코딩 블록의 특징에 기초하여 조건부로 파싱되므로, 후보 리스트를 지시하기 위해 필요한 비트 수량을 줄일 수 있다.
본 출원의 실시예는 장치(1800)를 제공한다. 도 18을 참조하면, 장치(1800)는,
현재 블록의 최적 후보 움직임 정보의 색인 정보를 획득하도록 구성된 획득 모듈(1801);
색인 정보에 기초하여 후보 움직임 정보 리스트를 구축하도록 구성된 구축 모듈(1802) - 여기서 후보 움직임 정보 리스트에 포함된 움직임 벡터를 획득하는 모드는 색인 정보의 필드에 따라 달라짐 -;
색인 정보에 기초하여 후보 움직임 정보 리스트로부터 최적 움직임 벡터를 결정하도록 구성된 결정 모듈(1803); 및
최적의 움직임 벡터에 기초하여 현재 블록을 예측하도록 구성된 예측 모듈(1804)을 포함한다.
구체적으로, 획득 모듈(1801)은 S21에서의 대응하는 방법과 부분 대체에 사용될 수 있는 동등한 방법을 수행하도록 구성된다. 구축 모듈(1802)은 S22에서의 대응하는 방법 및 부분 대체에 사용될 수 있는 동등한 방법을 수행하도록 구성된다. 결정 모듈(1803)은 S23에서의 대응하는 방법과 부분 대체를 위해 사용될 수 있는 동등한 방법을 수행하도록 구성된다. 예측 모듈(1804)은 S24에서의 대응하는 방법과 부분 대체에 사용될 수 있는 동등한 방법을 수행하도록 구성된다.
구체적으로, 획득 모듈(1801)은 S41에서 대응하는 방법과 부분 대체에 사용될 수 있는 동등한 방법을 수행하도록 구성된다. 구축 모듈(1802)은 S42에서 대응하는 방법과 부분 대체에 사용될 수 있는 동동한 방법을 수행하도록 구성된다. 결정 모듈(1803)은 S43에서 대응하는 방법 및 부분 대체에 사용될 수 있는 동등한 방법을 수행하도록 구성된다. 예측 모듈(1804)은 S44에서 대응하는 방법과 부분 대체에 사용될 수 있는 동동한 방법을 수행하도록 구성된다.
구체적으로, 획득 모듈(1801)은 S51에서의 대응하는 방법과 부분 대체에 사용될 수 있는 동등한 방법을 수행하도록 구성된다. 구축 모듈(1802)은 S52에서의 대응하는 방법과 부분 대체에 사용될 수 있는 동등한 방법을 수행하도록 구성된다. 결정 모듈(1803)은 S53에서의 대응하는 방법과 부분 대체에 사용될 수 있는 동등한 방법을 수행하도록 구성된다. 예측 모듈(1804)은 S54에서의 대응하는 방법과 부분 대체에 사용될 수 있는 동등한 방법을 수행하도록 구성된다.
구체적으로, 획득 모듈(1801)은 S61에서의 대응하는 방법과 부분 대체에 사용될 수 있는 동등한 방법을 수행하도록 구성된다. 구축 모듈(1802)은 S62에서의 대응하는 방법과 부분 대체에 사용될 수 있는 동등한 방법을 수행하도록 구성된다. 결정 모듈(1803)은 S63에서의 대응하는 방법과 부분 대체에 사용될 수 있는 동등한 방법을 수행하도록 구성된다. 예측 모듈(1804)은 S64에서의 대응하는 방법과 부분 대체에 사용될 수 있는 동동한 방법을 수행하도록 구성된다.
구체적으로, 획득 모듈(1801)은 S71에서의 대응하는 방법과 부분 대체에 사용될 수 있는 동등한 방법을 수행하도록 구성된다. 구축 모듈(1802)은 S72에서의 대응하는 방법과 부분 대체에 사용될 수 있는 동등한 방법을 수행하도록 구성된다. 결정 모듈(1803)은 S73에서의 대응하는 방법과 부분 대체에 사용될 수 있는 동등한 방법을 수행하도록 구성된다. 예측 모듈(1804)은 S74에서의 대응하는 방법과 부분 대체에 사용될 수 있는 동동한 방법을 수행하도록 구성된다.
또한, 획득 모듈(1801)은 S141, S151 또는 S171에 대응하는 방법과 S141, S151 또는 S171의 부분 대체에 사용될 수 있는 동등한 방법을 수행하도록 구성된다. 구축 모듈(1802)은 S142, S152, S172에 대응하는 방법과 S142, S152, S172의 부분 대체에 사용할 수 있는 동등한 방법을 수행하도록 구성된다. 결정 모듈(1803)은 S143, S153 또는 S173에 대응하는 방법과 S143, S153 또는 S173의 부분 대체에 사용될 수 있는 동등한 방법을 수행하도록 구성된다. 예측 모듈(1804)은 S144, S154 또는 S174에 대응하는 방법 및 S144, S154 또는 S174의 부분 대체에 사용될 수 있는 동등한 방법을 수행하도록 구성된다.
본 출원의 실시예는 인코딩 기기(19)를 제공한다. 도 19를 참조하면, 이 기기는 다목적 코딩 기기일 수 있고, 서로 결합된 비휘발성 메모리 및 프로세서를 포함한다. 프로세서는 메모리에 저장된 프로그램 코드를 호출하여 S11, S12, S13 및 S14와 같은 방법 및 동등한 방법을 수행한다.
본 출원의 실시예는 서로 결합된 비휘발성 메모리 및 프로세서를 포함하는 인코딩 기기(19)를 제공한다. 프로세서는 메모리에 저장된 프로그램 코드를 호출하여 S31, S32, S33 및 S34와 같은 방법 및 동등한 방법을 수행한다.
본 출원의 실시예는 서로 결합된 비휘발성 메모리 및 프로세서를 포함하는 인코딩 장치(19)를 제공한다. 프로세서는 메모리에 저장된 프로그램 코드를 호출하여 S51, S52, S53 및 S54와 같은 방법 및 동등한 방법을 수행한다.
이 본 출원의 실시예는 서로 결합된 비휘발성 메모리(1901) 및 프로세서(1902)를 포함하는 디코딩 기기(19)(기기는 코딩 기기일 수 있음)를 제공한다. 프로세서는 메모리에 저장된 프로그램 코드를 호출하여 S21, S22, S23 및 S24와 같은 방법 및 동등한 방법을 수행한다.
이 출원의 실시예는 서로 결합된 비휘발성 메모리(1901) 및 프로세서(1902)를 포함하는 디코딩 기기(19)를 제공한다. 프로세서는 메모리에 저장된 프로그램 코드를 호출하여 S41, S42, S43 및 S44와 같은 방법 및 동등한 방법을 수행한다.
본 출원의 실시예는 서로 결합된 비휘발성 메모리(1901) 및 프로세서(1902)를 포함하는 디코딩 기기(19)를 제공한다. 프로세서는 메모리에 저장된 프로그램 코드를 호출하여 S61, S62, S63 및 S64와 같은 방법 및 동등한 방법을 수행한다.
이 출원의 실시예는 서로 결합된 비휘발성 메모리(1901) 및 프로세서(1902)를 포함하는 디코딩 기기(19)를 제공한다. 프로세서는 메모리에 저장된 프로그램 코드를 호출하여 S71, S72, S73 및 S74와 같은 방법 및 동등한 방법을 수행한다.
코딩 기기(19)는 비디오 영상을 표시하도록 구성된 디스플레이(1903)를 더 포함할 수 있다.
이 출원의 실시예는 컴퓨터로 판독 가능한 저장 매체를 제공한다. 컴퓨터로 판독 가능한 저장 매체는 프로그램 코드를 저장한다. 프로그램 코드는 S11∼S14, S21∼S24, S31∼S34, S41∼S44, S51∼S54, S61∼S64 및/또는 S71∼S74의 일부 또는 모든 단계를 수행하는 데 사용되는 명령어를 포함한다.
이 출원의 실시예는 컴퓨터 프로그램 제품을 제공한다. 컴퓨터 프로그램 제품이 컴퓨터에서 실행될 때, 컴퓨터는 S11∼S14, S21∼S24, S31∼S34, S41∼S44, S51∼S54, S61∼S64 및/또는 S71∼S74의 일부 또는 모든 단계를 수행한다.
방법 실시예의 일부 기술적 특징의 설명 및 표현은 장치 실시예, 인코딩 기기, 디코딩 기기, 컴퓨터 프로그램, 저장 매체 등에 적용될 수 있음을 이해해야 한다.
당업자는 본 명세서에 개시되고 기술된 다양한 예시적인 논리 블록, 모듈 및 알고리즘 단계를 참조하여 기술된 기능이 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합에 의해 구현될 수 있음을 이해할 수 있다. 소프트웨어에 의해 구현되면, 예시적인 논리 블록, 모듈 및 단계를 참조하여 기술된 기능은 하나 이상의 명령어 또는 코드로서 컴퓨터로 판독 가능한 매체에 저장되거나 컴퓨터로 판독 가능한 매체를 통해 송신될 수 있고 하드웨어 기반 처리 유닛에 의해 실행될 수 있다.
컴퓨터로 판독 가능한 매체는 컴퓨터로 판독 가능한 저장 매체를 포함할 수 있으며, 데이터 저장 매체와 같은 유형의 매체, 또는 한 장소에서 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체(예를 들어, 통신 프로토콜에 따라)를 포함하는 통신 매체에 대응한다. 이러한 방식으로, 컴퓨터로 판독 가능한 매체는 일반적으로(1) 컴퓨터로 판독 가능한 비 일시적인 유형의 저장 매체, 또는(2) 신호 또는 캐리어와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체는 하나 이상의 컴퓨터 또는 하나 이상의 프로세서에 의해 본 출원에서 기재된 기술을 구현하기 위한 명령어, 코드 및/또는 데이터 구조를 검색하기 위해 액세스될 수 있는 임의의 사용 가능한 매체일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터로 판독 가능한 매체를 포함할 수 있다.
한정이 아닌 예로서, 이러한 컴퓨터로 판독 가능한 저장 매체로는 RAM, ROM, EEPROM, CD-ROM 또는 다른 콤팩트 디스크 저장 장치, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 플래시 메모리 또는 명령어 또는 데이터 구조의 형태로 원하는 프로그램 코드를 저장하는 데 사용할 수 있고 컴퓨터에 의해 액세스될 수 있는 기타 매체를 포함할 수 있다. 또한, 모든 연결도 컴퓨터로 판독 가능한 매체라고 한다. 예를 들어, 명령어가 웹 사이트, 서버 또는 기타 원격 소스로부터 동축 케이블, 광섬유, 연선 쌍(twisted pair), 디지털 가입자 회선(digital subscriber line, DSL), 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술을 통해 송신되면, 동축 케이블, 광섬유 케이블, 연선 쌍, DSL, 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술은 매체의 정의에 포함된다. 그러나 컴퓨터로 판독 가능한 저장 매체 및 데이터 저장 매체는 연결, 캐리어, 신호, 또는 기타 일시적인 매체를 포함하지 않고, 실제로는 비 일시적인 유형의 저장 매체를 의미한다는 것을 이해해야 한다.
본 명세서에서 사용되는 디스크(disk와 disc)는 컴팩트 디스크(compact disc, CD), 레이저 디스크(laser disc), 광 디스크, 디지털 다목적 디스크(digital versatile disc, DVD) 및 블루레이(Blu-ray) 디스크가 포함된다. 디스크(disk)는 일반적으로 데이터를 자기적으로 재생하는 반면, 디스크(disc)는 레이저로 데이터를 광학적으로 재생한다. 전술한 내용의 조합도 컴퓨터로 판독 가능한 매체의 범위에 포함되어야 한다.
명령어는 하나 이상의 디지털 신호 프로세서(digital signal processor, DSP), 범용 마이크로프로세서, ASIC(Application-Specific Integrated circuit), FPGA(field programmable logic array), 또는 기타 등가의 집적회로나 이산 논리 회로와 같은 하나 이상의 프로세서에 의해 실행될 수 있다. 따라서, 본 명세서에서 사용되는 "프로세서"라는 용어는 전술한 구조 또는 본 명세서에 기재된 기술을 구현하기에 적합한 임의의 다른 구조일 수 있다. 또한, 일부 측면에서, 본 명세서에 기재된 예시적인 논리 블록, 모듈 및 단계를 참조하여 설명된 기능은 인코딩 및 디코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈 내에 제공될 수 있거나, 결합된 코덱에 통합될 수 있다. 또한, 기술은 하나 이상의 회로 또는 논리 요소에서 완전히 구현될 수 있다.
본 출원의 기술은 무선 핸드셋, 집적 회로(IC) 또는 IC 세트(예: 칩셋)를 포함한, 다양한 장치 또는 기기에 구현될 수 있다. 개시된 기술을 수행하도록 구성된 장치의 기능적 측면을 강조하기 위해 본 출원에서 다양한 구성요소, 모듈 또는 유닛이 설명되지만, 반드시 상이한 하드웨어 유닛에 의해 구현되는 것은 아니다. 실제로, 이상에서 설명한 바와 같이, 다양한 유닛은 적절한 소프트웨어 및/또는 펌웨어와 결합하여 코덱 하드웨어 유닛으로 결합될 수 있거나, 상호운용 가능한 하드웨어 유닛(위에서 설명한 하나 이상의 프로세서를 포함함)에 의해 제공될 수 있다.
이상의 설명은 본 출원의 구체적인 구현의 예일 뿐이며, 본 출원의 보호 범위를 한정하려는 것은 아니다. 본 출원에 개시된 기술적 범위 내에서 당업자에 의해 용이하게 파악되는 임의의 변형 또는 대체는 본 출원의 보호 범위 내에 속한다. 따라서 본 출원의 보호 범위는 청구 범위의 보호 범위에 따른다.

Claims (22)

  1. 디코딩 방법으로서,
    현재 블록의 크기가 미리 설정된 샘플 수량을 충족하면, 비트스트림을 파싱하여 식별자를 획득하는 단계;
    비트스트림을 파싱하여 현재 블록의 후보 움직임 정보의 색인을 획득하는 단계 - 상기 현재 블록에 대한 인터 예측 모드는 병합 모드임 -;
    상기 식별자에 기초하여 상기 현재 블록에 대한 제1 리스트 또는 제2 리스트를 구축하는 단계 - 상기 제1 리스트는 블록 기반 후보 움직임 정보 리스트이고, 상기 제2 리스트는 서브블록 기반 후보 움직임 정보 리스트이며, 상기 식별자가 제1 특징 값인 경우 상기 현재 블록에 대한 제1 리스트를 구축하도록 지시하고, 상기 식별자가 제2 특징 값인 경우 상기 현재 블록에 대한 제2 리스트를 구축하도록 지시함 -;
    상기 색인에 기초하여 상기 구축된 제1 리스트 또는 제2 리스트로부터 움직임 정보를 결정하는 단계; 및
    상기 움직임 정보에 기초하여 상기 현재 블록을 예측하는 단계
    를 포함하는 디코딩 방법.
  2. 제1항에 있어서,
    상기 서브블록 기반 후보 움직임 정보 리스트는 ATMVP의 서브블록 기반 병합 모드로만 구축되는 후보 움직임 정보 리스트를 포함하는, 디코딩 방법.
  3. 제1항 또는 제2항에 있어서,
    제2 리스트를 구축하는 단계는,
    상기 현재 블록의 병치된 참조 영상(collocated reference picture)을 결정하는 단계;
    상기 현재 블록을 M*N개의 서브블록으로 분할하는 단계;
    분할을 통해 획득된 M*N개의 서브블록 각각에 대응하고 상기 병치된 참조 영상 내에 있는 서브블록 유닛의 중심점 위치 샘플의 움직임 정보를 획득하고, 스케일링(scaling)을 통해 상기 움직임 정보를 상기 서브블록의 움직임 정보로 변환하는 단계; 및
    각각의 서브블록의 움직임 정보에 기초하여 상기 제2 리스트를 획득하는 단계
    를 포함하는 디코딩 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 현재 블록의 폭은 임계치 이상이고, 및/또는 상기 현재 블록의 높이는 임계치 이상인, 디코딩 방법.
  5. 디코딩 장치로서,
    현재 블록의 크기가 미리 설정된 샘플 수량을 충족하면 비트스트림을 파싱하여 식별자를 획득하도록 구성되고, 비트스트림을 파싱하여 현재 블록의 후보 움직임 정보의 색인을 획득하도록 구성된 획득 모듈 - 상기 현재 블록에 대한 인터 예측 모드는 병합 모드임 -;
    상기 식별자에 기초하여 상기 현재 블록에 대한 제1 리스트 또는 제2 리스트를 구축하도록 구성된 구축 모듈 - 상기 제1 리스트는 블록 기반 후보 움직임 정보 리스트이고, 상기 제2 리스트는 서브블록 기반 후보 움직임 정보 리스트이며, 상기 식별자가 제1 특징 값인 경우 상기 현재 블록에 대한 제1 리스트를 구축하도록 지시하고, 상기 식별자가 제2 특징 값인 경우 상기 현재 블록에 대한 제2 리스트를 구축하도록 지시함 -;
    상기 색인에 기초하여 상기 구축된 제1 리스트 또는 제2 리스트로부터 움직임 정보를 결정하도록 구성된 결정 모듈; 및
    상기 움직임 정보에 기초하여 상기 현재 블록을 예측하도록 구성된 예측 모듈
    을 포함하는 디코딩 장치.
  6. 인코딩 방법으로서,
    현재 블록의 크기가 미리 설정된 샘플 수량을 충족하면, 상기 현재 블록의 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트를 결정하는 데 사용되는 식별자를 획득하고, 상기 후보 움직임 정보 리스트에서 상기 후보 움직임 정보의 색인을 획득하는 단계 - 상기 현재 블록에 대해 사용되는 인터 예측 모드는 병합 모드임 -;
    상기 후보 움직임 정보 리스트를 구축하는 단계 - 상기 식별자가 제1 특징 값인 경우 블록 기반 후보 움직임 정보 리스트를 구축하거나, 상기 식별자가 제2 특징 값인 경우 서브블록 기반 후보 움직임 정보 리스트를 구축함 -;
    상기 구축된 후보 움직임 정보 리스트로부터 움직임 정보를 결정하는 단계;
    상기 움직임 정보에 기초하여 상기 현재 블록을 예측하는 단계; 및
    상기 식별자와 상기 색인을 비트스트림으로 인코딩하는 단계
    를 포함하는 인코딩 방법.
  7. 제6항에 있어서,
    상기 현재 블록의 크기가 상기 미리 설정된 샘플 수량을 충족하지 않으면, 상기 블록 기반 후보 움직임 정보 리스트를 구축하고, 상기 후보 움직임 정보 리스트에서 상기 후보 움직임 정보의 색인을 획득하는 단계 - 상기 현재 블록에 대해 사용되는 인터 예측 모드는 상기 병합 모드임 -;
    상기 구축된 후보 움직임 정보 리스트로부터 상기 움직임 정보를 결정하는 단계; 및
    상기 움직임 정보에 기초하여 상기 현재 블록을 예측하는 단계
    를 더 포함하는, 인코딩 방법.
  8. 제6항 또는 제7항에 있어서,
    현재 블록의 크기가 미리 설정된 샘플 수량을 충족한다는 것은, 상기 현재 블록의 폭이 임계치 이상이고, 및/또는 상기 현재 블록의 높이가 임계치 이상인 것을 포함하는, 인코딩 방법.
  9. 인코딩 장치로서,
    현재 블록의 크기가 미리 설정된 샘플 수량을 충족하면, 상기 현재 블록의 후보 움직임 정보를 포함하는 후보 움직임 정보 리스트의 식별자를 획득하고, 상기 후보 움직임 정보 리스트에서 상기 후보 움직임 정보의 색인을 획득하도록 구성된 획득 모듈 - 상기 현재 블록에 대해 사용되는 인터 예측 모드는 병합 모드임 -;
    상기 후보 움직임 정보 리스트를 구축하도록 구성된 구축 모듈 - 상기 식별자가 제1 특징 값인 경우 블록 기반 후보 움직임 정보 리스트를 구축하거나, 상기 식별자가 제2 특징 값인 경우 서브블록 기반 후보 움직임 정보 리스트를 구축함 -;
    상기 구축된 후보 움직임 정보 리스트로부터 움직임 정보를 결정하도록 구성된 결정 모듈;
    상기 움직임 정보에 기초하여 상기 현재 블록을 예측하도록 구성된 예측 모듈; 및
    상기 식별자와 상기 색인을 비트스트림으로 인코딩하도록 구성된 인코딩 모듈
    을 포함하는 인코딩 장치.
  10. 컴퓨터 프로그램을 저장하는, 컴퓨터로 판독 가능한 저장 매체로서,
    상기 컴퓨터 프로그램이 프로세서에서 실행될 때, 제1항 내지 제4항과 제6항 내지 제8항 중 어느 한 항에 따른 방법이 구현되는,
    컴퓨터로 판독 가능한 저장 매체.
  11. 제6항 내지 제8항 중 어느 한 항에 따른 방법을 수행하기 위한 처리 회로를 포함하는 인코더.
  12. 인코더로서,
    하나 이상의 프로세서; 및
    상기 프로세서에 결합되어 상기 프로세서에 의한 실행을 위한 컴퓨터 명령어를 저장하는 컴퓨터로 판독 가능한 저장 매체 - 상기 컴퓨터 명령어는 상기 프로세서에 의해 실행될 때 상기 인코더가 제6항 내지 제8항 중 어느 한 항에 따른 방법을 수행하도록 구성됨 -
    를 포함하는 인코더.
  13. 비디오 신호에 대한 인코딩된 비트스트림을 저장하는 저장 매체로서,
    상기 인코딩된 비트스트림은 복수의 신택스 요소를 포함하고,
    상기 복수의 신택스 요소는 블록 기반 후보 움직임 정보 리스트 또는 서브블록 기반 후보 움직임 정보 리스트가 상기 현재 블록에 적용되는 것을 지시하는 식별자를 포함하는, 저장 매체.
  14. 코딩 장치로서,
    인코딩하기 위해 영상을 수신하거나 디코딩하기 위해 비트스트림을 수신하도록 구성된 수신기;
    상기 수신기에 결합된 송신기 - 상기 송신기는 상기 비트스트림을 디코더에 송신하거나 디코딩된 이미지를 디스플레이에 송신하도록 구성됨 -;
    상기 수신기 또는 상기 송신기 중 적어도 하나에 결합된 메모리 - 상기 메모리는 명령어를 저장하도록 구성됨 -; 및
    상기 메모리에 결합된 프로세서 - 상기 프로세서는 제1항 내지 제4항 중 어느 한 항 및 제6항 내지 제8항 중 어느 한 항의 방법을 수행하기 위해 상기 메모리에 저장된 명령어를 실행하도록 구성됨 -
    를 포함하는 코딩 장치.
  15. 시스템으로서,
    인코더; 및
    상기 인코더와 통신하는 디코더 - 상기 인코더 또는 상기 디코더는 제1항 내지 제4항 중 어느 한 항의 디코딩 기기, 인코딩 기기 또는 코딩 장치를 포함함 -
    를 포함하는 시스템.
  16. 제1항 내지 제4항 중 어느 한 항에 따른 방법을 수행하기 위한 처리 회로를 포함하는 디코더.
  17. 단말로서,
    상기 단말은 하나 이상의 프로세서, 메모리 및 통신 인터페이스를 포함하고;
    상기 메모리 및 상기 통신 인터페이스는 상기 하나 이상의 프로세서에 연결되고,
    상기 단말은 다른 기기와 상기 통신 인터페이스를 통해 통신하고,
    상기 메모리는 컴퓨터 프로그램 코드를 저장하도록 구성되고,
    상기 컴퓨터 프로그램 코드는 명령어를 포함하고,
    상기 하나 이상의 프로세서가 상기 명령어를 실행할 때, 상기 단말은 제1항 내지 제4항 중 어느 한 항 또는 제6항 내지 제8항 중 어느 한 항에 따른 방법을 수행하는, 단말.
  18. 비트스트림을 저장하기 위한 기기로서,
    상기 기기는 적어도 하나의 저장 매체 및 적어도 하나의 통신 인터페이스를 포함하고,
    상기 적어도 하나의 통신 인터페이스는 상기 비트스트림을 수신하거나 송신하도록 구성되고,
    상기 적어도 하나의 저장 매체는 상기 비트스트림을 저장하도록 구성되고,
    상기 비트스트림은 복수의 신택스 요소를 포함하고,
    상기 복수의 신택스 요소는 블록 기반 후보 움직임 정보 리스트 또는 서브블록 기반 후보 움직임 정보 리스트가 상기 현재 블록에 적용되는 것을 지시하는 식별자를 포함하는, 비트스트림을 저장하기 위한 기기.
  19. 비트스트림을 저장하기 위한 방법으로서,
    통신 인터페이스를 통해 비트스트림을 수신하거나 송신하는 단계; 및
    하나 이상의 저장 매체에 상기 비트스트림을 저장하는 단계 - 상기 비트스트림은 복수의 신택스 요소를 포함하고, 상기 복수의 신택스 요소는 블록 기반 후보 움직임 정보 리스트 또는 서브블록 기반 후보 움직임 정보 리스트가 상기 현재 블록에 적용되는 것을 지시하는 식별자를 포함함 -
    를 포함하는 비트스트림을 저장하기 위한 방법.
  20. 비트스트림을 송신하기 위한 기기로서,
    적어도 하나의 비트스트림을 저장하도록 구성된 적어도 하나의 저장 매체 - 상기 비트스트림은 복수의 신택스 요소를 포함하고, 상기 복수의 신택스 요소는 블록 기반 후보 움직임 정보 리스트 또는 서브블록 기반 후보 움직임 정보 리스트가 상기 현재 블록에 적용되는 것을 지시하는 식별자를 포함함 -;
    상기 적어도 하나의 저장 매체 중 하나로부터 하나 이상의 비트스트림을 획득하고 목적지 기기로 상기 하나 이상의 비트스트림을 송신하도록 구성된 적어도 하나의 프로세서
    를 포함하는 비트스트림을 송신하기 위한 기기.
  21. 비트스트림을 송신하기 위한 방법으로서,
    적어도 하나의 저장 매체에 적어도 하나의 비트스트림을 저장하는 단계 - 상기 비트스트림은 복수의 신택스 요소를 포함하고, 상기 복수의 신택스 요소는 블록 기반 후보 움직임 정보 리스트 또는 서브블록 기반 후보 움직임 정보 리스트가 상기 현재 블록에 적용되는 것을 지시하는 식별자를 포함함 -;
    상기 적어도 하나의 저장 매체 중 하나로부터 하나 이상의 비트스트림을 획득하는 단계; 및
    목적지 기기로 상기 하나 이상의 비트스트림을 송신하는 단계
    를 포함하는 비트스트림을 송신하기 위한 방법.
  22. 비트스트림을 처리하기 위한 시스템으로서,
    인코딩 기기, 하나 이상의 저장 기기 및 디코딩 기기를 포함하고,
    상기 인코딩 기기는 비디오 신호를 획득하고, 하나 이상의 비트스트림을 획득하기 위해 상기 비디오 신호를 인코딩하도록 구성되고;
    상기 비트스트림은 복수의 신택스 요소를 포함하고,
    상기 복수의 신택스 요소는 블록 기반 후보 움직임 정보 리스트 또는 서브블록 기반 후보 움직임 정보 리스트가 상기 현재 블록에 적용되는 것을 지시하는 식별자를 포함하고,
    상기 하나 이상의 저장 기기는 상기 하나 이상의 비트스트림을 저장하는 데 사용되고;
    상기 디코딩 기기는 상기 하나 이상의 비트스트림을 디코딩하는 데 사용되는, 비트스트림을 처리하기 위한 시스템.
KR1020237038229A 2018-07-02 2019-07-02 움직임 벡터 예측 방법 및 장치, 인코더, 그리고 디코더 KR20230155621A (ko)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201862693444P 2018-07-02 2018-07-02
US62/693,444 2018-07-02
US201862694451P 2018-07-06 2018-07-06
US62/694,451 2018-07-06
US201862699750P 2018-07-18 2018-07-18
US62/699,750 2018-07-18
KR1020217001462A KR102600670B1 (ko) 2018-07-02 2019-07-02 움직임 벡터 예측 방법 및 장치, 인코더, 그리고 디코더
PCT/CN2019/094429 WO2020007304A1 (zh) 2018-07-02 2019-07-02 一种运动矢量预测方法、装置与编解码器

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020217001462A Division KR102600670B1 (ko) 2018-07-02 2019-07-02 움직임 벡터 예측 방법 및 장치, 인코더, 그리고 디코더

Publications (1)

Publication Number Publication Date
KR20230155621A true KR20230155621A (ko) 2023-11-10

Family

ID=69059326

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217001462A KR102600670B1 (ko) 2018-07-02 2019-07-02 움직임 벡터 예측 방법 및 장치, 인코더, 그리고 디코더
KR1020237038229A KR20230155621A (ko) 2018-07-02 2019-07-02 움직임 벡터 예측 방법 및 장치, 인코더, 그리고 디코더

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020217001462A KR102600670B1 (ko) 2018-07-02 2019-07-02 움직임 벡터 예측 방법 및 장치, 인코더, 그리고 디코더

Country Status (9)

Country Link
US (1) US20210168355A1 (ko)
EP (2) EP3809705B1 (ko)
JP (2) JP7223111B2 (ko)
KR (2) KR102600670B1 (ko)
CN (2) CN112602326A (ko)
BR (1) BR112020026941A2 (ko)
MX (1) MX2020013878A (ko)
SG (1) SG11202012701XA (ko)
WO (1) WO2020007304A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX2021007018A (es) * 2018-12-13 2021-07-21 Beijing Dajia Internet Information Tech Co Ltd Metodo para derivar candidatos de fusion afin construidos.
CN111698506B (zh) * 2019-03-11 2022-04-26 杭州海康威视数字技术股份有限公司 运动信息候选者列表构建方法、三角预测解码方法及装置
US20230362402A1 (en) * 2022-05-09 2023-11-09 Tencent America LLC Systems and methods for bilateral matching for adaptive mvd resolution
CN115297333B (zh) * 2022-09-29 2023-03-24 北京达佳互联信息技术有限公司 视频数据的帧间预测方法、装置、电子设备及存储介质

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10298952B2 (en) * 2007-08-06 2019-05-21 Interdigital Madison Patent Holdings Methods and apparatus for motion skip move with multiple inter-view reference pictures
CN102595116B (zh) * 2011-01-14 2014-03-12 华为技术有限公司 多图像块划分的编解码方法和装置
CN103716631B (zh) * 2012-09-29 2017-04-05 华为技术有限公司 用于图像处理的方法、装置、编码器和解码器
GB2509704B (en) * 2013-01-04 2016-06-01 Canon Kk Method and device for processing prediction information for encoding or decoding at least part of an image
US10666968B2 (en) 2014-05-06 2020-05-26 Hfi Innovation Inc. Method of block vector prediction for intra block copy mode coding
CN104601988B (zh) * 2014-06-10 2018-02-02 腾讯科技(北京)有限公司 视频编码器、方法和装置及其帧间模式选择方法和装置
WO2016048834A1 (en) * 2014-09-26 2016-03-31 Vid Scale, Inc. Intra block copy coding with temporal block vector prediction
US11477477B2 (en) * 2015-01-26 2022-10-18 Qualcomm Incorporated Sub-prediction unit based advanced temporal motion vector prediction
US10271064B2 (en) 2015-06-11 2019-04-23 Qualcomm Incorporated Sub-prediction unit motion vector prediction using spatial and/or temporal motion information
US10575011B2 (en) * 2015-09-24 2020-02-25 Lg Electronics Inc. Inter prediction method and apparatus in image coding system
US10560718B2 (en) * 2016-05-13 2020-02-11 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
US10721489B2 (en) * 2016-09-06 2020-07-21 Qualcomm Incorporated Geometry-based priority for the construction of candidate lists
US10812791B2 (en) 2016-09-16 2020-10-20 Qualcomm Incorporated Offset vector identification of temporal motion vector predictor
TW201826796A (zh) 2016-11-22 2018-07-16 美商松下電器(美國)知識產權公司 編碼裝置、解碼裝置、編碼方法及解碼方法
CN106789217A (zh) * 2016-12-13 2017-05-31 重庆金美通信有限责任公司 一种战术通信网络智能开通方法
JP7168593B2 (ja) * 2017-07-03 2022-11-09 ヴィド スケール インコーポレイテッド 双方向オプティカルフローに基づいた動き補償予測
CN111345041B (zh) * 2017-09-28 2024-01-26 Vid拓展公司 解码、编码视频数据的方法和设备
CN107613305B (zh) * 2017-10-12 2020-04-07 杭州当虹科技股份有限公司 一种hevc中p、b帧快速运动估计方法
US11558633B2 (en) * 2017-11-01 2023-01-17 Vid Scale, Inc. Sub-block motion derivation and decoder-side motion vector refinement for merge mode
US10397603B1 (en) * 2018-05-08 2019-08-27 Tencent America LLC Method and apparatus for video coding
US20190387247A1 (en) * 2018-06-19 2019-12-19 Qualcomm Incorporated Signaling sub-prediction unit motion vector predictor
CN112585972B (zh) * 2018-08-17 2024-02-09 寰发股份有限公司 视频编解码的帧间预测方法及装置
EP3857888A4 (en) * 2018-10-06 2022-08-03 HFI Innovation Inc. METHOD AND APPARATUS FOR AN AREA OF A SHARED MERGER CANDIDATE LIST FOR ENABLING VIDEO CODING
CN117768658A (zh) * 2018-11-06 2024-03-26 北京字节跳动网络技术有限公司 依赖位置的对运动信息的存储

Also Published As

Publication number Publication date
EP4362468A2 (en) 2024-05-01
KR102600670B1 (ko) 2023-11-08
MX2020013878A (es) 2021-04-12
KR20210019556A (ko) 2021-02-22
SG11202012701XA (en) 2021-01-28
EP3809705A4 (en) 2021-04-21
CN112866720A (zh) 2021-05-28
JP2023065393A (ja) 2023-05-12
BR112020026941A2 (pt) 2021-03-30
EP3809705B1 (en) 2024-05-01
US20210168355A1 (en) 2021-06-03
CN112866720B (zh) 2022-02-18
JP2021530165A (ja) 2021-11-04
JP7223111B2 (ja) 2023-02-15
WO2020007304A1 (zh) 2020-01-09
EP3809705A1 (en) 2021-04-21
CN112602326A (zh) 2021-04-02

Similar Documents

Publication Publication Date Title
CN112470474B (zh) 视频编解码的方法和装置
CN112956190B (zh) 仿射运动预测
KR102600670B1 (ko) 움직임 벡터 예측 방법 및 장치, 인코더, 그리고 디코더
CN113302932B (zh) 视频编解码的方法、装置及存储介质
US11019357B2 (en) Motion vector predictor list generation
CN114827594B (zh) 图片数据处理方法、装置及存储介质
CN112005551B (zh) 一种视频图像预测方法及装置
KR102620024B1 (ko) 아핀 모션 모델을 기반으로 한 모션 벡터 예측 방법 및 디바이스
CN111480338B (zh) 视频数据的帧间预测方法和装置
JP7164710B2 (ja) ビデオ復号化方法及びビデオ・デコーダ
CN111919443B (zh) 用于视频解码的方法和装置
CN110876282A (zh) 运动矢量预测方法以及相关装置
CN113498607B (zh) 视频编码方法、解码方法、装置和可读介质
CN110944171B (zh) 一种图像预测方法和设备
JP2021524708A (ja) ビデオ・エンコーダ、ビデオ・デコーダおよび対応する方法
CN115428445A (zh) 用于视频编码的方法和装置
CN110958452B (zh) 视频解码方法及视频解码器
CN110677645B (zh) 一种图像预测方法及装置

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal