KR102060184B1 - 픽쳐 예측 방법 및 관련 장치 - Google Patents

픽쳐 예측 방법 및 관련 장치 Download PDF

Info

Publication number
KR102060184B1
KR102060184B1 KR1020197003118A KR20197003118A KR102060184B1 KR 102060184 B1 KR102060184 B1 KR 102060184B1 KR 1020197003118 A KR1020197003118 A KR 1020197003118A KR 20197003118 A KR20197003118 A KR 20197003118A KR 102060184 B1 KR102060184 B1 KR 102060184B1
Authority
KR
South Korea
Prior art keywords
picture block
pixel
current picture
motion vector
pixel samples
Prior art date
Application number
KR1020197003118A
Other languages
English (en)
Other versions
KR20190014590A (ko
Inventor
리 리
허우창 리
줘이 뤼
시신 린
Original Assignee
후아웨이 테크놀러지 컴퍼니 리미티드
중국과학기술대학
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드, 중국과학기술대학 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20190014590A publication Critical patent/KR20190014590A/ko
Application granted granted Critical
Publication of KR102060184B1 publication Critical patent/KR102060184B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/172Methods 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 picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/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

Landscapes

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

Abstract

본 발명의 실시예는 픽쳐 예측 방법 및 관련 장치를 개시한다. 픽쳐 예측 방법은, 현재 픽쳐 블록 내의 K개의 화소 샘플의 움직임 벡터 예측자를 결정하는 단계 - K는 1보다 큰 정수이고, K개의 화소 샘플은 현재 픽쳐 블록 내의 제1 꼭지각 화소 샘플을 포함하며, 제1 꼭지각 화소 샘플의 움직임 벡터 예측자는 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 기초하여 획득되고, 공간적으로 인접한 제1 픽쳐 블록은 제1 꼭지각 화소 샘플과 공간적으로 인접함 -; 및 비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터 예측자에 기초하여 현재 픽쳐 블록에 대해 화소 값 예측을 수행하는 단계를 포함한다. 본 발명의 실시예의 해결수단은 비-병진 움직임 모델에 기반한 픽쳐 예측의 계산 복잡도를 감소시키는 데 도움이 된다.

Description

픽쳐 예측 방법 및 관련 장치{PICTURE PREDICTION METHOD AND RELATED APPARATUS}
본 발명은 픽쳐 처리 기술 분야에 관한 것으로, 상세하게는 픽쳐 예측 방법 및 관련 장치에 관한 것이다.
광전 획득 기술(photoelectric acquisition technology)이 발전하고 고화질 디지털 비디오에 대한 수요가 지속적으로 증가함에 따라, 비디오 데이터의 양이 점점 더 커지고 있다. 제한된 이종의 전송 대역폭 및 다양화된 비디오 애플리케이션으로 인해, 비디오 코딩 효율에 대한 요구사항이 지속적으로 강요되고 있다. 이러한 요구사항에 따라 고효율 비디오 코딩(High Efficiency Video coding, HEVC) 표준을 개발하는 작업이 시작되었다.
비디오 압축 코딩의 기본 원리는 가능한 한 중복(redundancy)을 제거하기 위해 공간 영역, 시간 영역, 및 코드워드 간의 상호 연관관계를 이용하는 것이다. 현재, 블록 기반의 하이브리드 비디오 코딩 프레임워크를 이용하여 예측(프레임 내 예측(intra-frame prediction) 및 프레임 간 예측(inter-frame prediction)을 포함하고 있음), 변환, 양자화, 엔트로피 코딩 등의 단계를 수행함으로써 비디오 압축 코딩을 구현하는 것이 일반적이다. 이러한 코딩 프레임워크는 실행 가능성(viability)이 높고, 따라서 HEVC가 블록 기반의 하이브리드 비디오 코딩 프레임워크를 여전히 사용하고 있다.
다양한 비디오 코딩/디코딩 해결수단에서는, 움직임 추정 또는 움직임 보상이 코딩/디코딩 효율에 영향을 미치는 핵심 기법이다. 다양한 종래의 비디오 코딩/디코딩 해결수단에서는, 객체의 움직임이 병진 움직임(translational motion)을 항상 만족하며, 전체 객체의 모든 부분의 움직임이 동일한 것으로 추정된다. 기본적으로, 모든 종래의 움직임 추정 또는 움직임 보상 알고리즘은 병진 움직임 모델에 기초하여 구축되는 블록 움직임 보상 알고리즘이다. 하지만, 실제 세계에서의 움직임은 다양하며, 스케일 조절 업/다운(scaling up/down), 회전, 또는 포물선 움직임과 같은 불규칙 움직임이 보편적(ubiquitous)이다. 1990년대 이후, 비디오 코딩 전문가들은 불규칙 움직임이 보편적이라는 것을 이해하였고, 비디오 코딩 효율을 개선하기 위해 불규칙 움직임 모델(아핀 움직임 모델, 회전 움직임 모델, 또는 스케일 조절 움직임 모델과 같은 비-병진 움직임 모델)을 도입하기를 희망했다. 하지만, 비-병진 움직임 모델에 기초하여 수행되는 종래의 픽쳐 예측의 계산 복잡도가 일반적으로 상당히 높다.
본 발명의 실시형태는 비-병진 움직임 모델에 기반한 픽쳐 예측의 계산 복잡도를 감소시키기 위한 픽쳐 예측 방법 및 관련 장치를 제공한다.
본 발명의 제1 양태는 픽쳐 예측 방법을 제공한다. 상기 픽쳐 예측 방법은,
현재 픽쳐 블록 내의 K개의 화소 샘플의 움직임 벡터 예측자(motion vector predictor)를 결정하는 단계 - K는 1보다 큰 정수이고, 상기 K개의 화소 샘플은 상기 현재 픽쳐 블록 내의 제1 꼭지각 화소 샘플(vertex angle pixel sample)을 포함하며, 상기 제1 꼭지각 화소 샘플의 움직임 벡터 예측자는 상기 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 기초하여 획득되고, 상기 공간적으로 인접한 제1 픽쳐 블록은 상기 제1 꼭지각 화소 샘플과 공간적으로 인접함 -; 및
비-병진 움직임 모델(non-translational motion model) 및 상기 K개의 화소 샘플의 움직임 벡터 예측자에 기초하여 상기 현재 픽쳐 블록에 대해 화소 값 예측을 수행하는 단계를 포함한다.
제1 양태를 참조하여, 제1 양태의 제1 가능한 구현 방식에서, 상기 K개의 화소 샘플은 상기 현재 픽쳐 블록 내의 좌측 상부 화소 샘플, 또는 우측 상부 화소 샘플, 또는 좌측 하부 화소 샘플 중 적어도 2개의 화소 샘플을 포함하고;
상기 현재 픽쳐 블록 내의 상기 좌측 상부 화소 샘플은 상기 현재 픽쳐 블록의 좌측 상부 꼭지점에 있거나 또는 상기 현재 픽쳐 블록 내에 있으면서 상기 현재 픽쳐 블록의 좌측 상부 꼭지점을 포함하는 화소 블록이고, 상기 현재 픽쳐 블록 내의 상기 좌측 하부 화소 샘플은 상기 현재 픽쳐 블록의 좌측 하부 꼭지점에 있거나 또는 상기 현재 픽쳐 블록 내에 있으면서 상기 현재 픽쳐 블록의 좌측 하부 꼭지점을 포함하는 화소 블록이며, 상기 현재 픽쳐 블록 내의 상기 우측 상부 화소 샘플은 상기 현재 픽쳐 블록의 우측 상부 꼭지점에 있거나 또는 상기 현재 픽쳐 블록 내에 있으면서 상기 현재 픽쳐 블록의 우측 상부 꼭지점을 포함한다.
제1 양태의 제1 가능한 구현 방식을 참조하여, 제1 양태의 제2 가능한 구현 방식에서, 상기 공간적으로 인접한 제1 픽쳐 블록은 픽쳐 블록 X1, 픽쳐 블록 X2, 또는 픽쳐 블록 X3이고;
상기 현재 픽쳐 블록 내의 상기 좌측 상부 화소 샘플의 움직임 벡터 예측자는 상기 픽쳐 블록 X1의 움직임 벡터에 기초하여 획득되고, 상기 픽쳐 블록 X1은 상기 현재 픽쳐 블록과 공간적으로 인접한 픽쳐 블록이며, 상기 픽쳐 블록 X1은 상기 현재 픽쳐 블록 내의 상기 좌측 상부 화소 샘플과 공간적으로 인접하고;
상기 현재 픽쳐 블록 내의 상기 우측 상부 화소 샘플의 움직임 벡터 예측자는 상기 픽쳐 블록 X2의 움직임 벡터에 기초하여 획득되고, 상기 픽쳐 블록 X2는 상기 현재 픽쳐 블록과 공간적으로 인접한 픽쳐 블록이며, 상기 픽쳐 블록 X2는 상기 현재 픽쳐 블록 내의 상기 우측 상부 화소 샘플과 공간적으로 인접하고;
상기 현재 픽쳐 블록 내의 상기 좌측 하부 화소 샘플의 움직임 벡터 예측자는 상기 픽쳐 블록 X3의 움직임 벡터에 기초하여 획득되고, 상기 픽쳐 블록 X3은 상기 현재 픽쳐 블록과 공간적으로 인접한 픽쳐 블록이며, 상기 픽쳐 블록 X3은 상기 현재 픽쳐 블록 내의 상기 좌측 하부 화소 샘플과 공간적으로 인접한다.
제1 양태의 제2 가능한 구현 방식을 참조하여, 제1 양태의 제3 가능한 구현 방식에서,
상기 제1 꼭지각 화소 샘플은 상기 현재 픽쳐 블록 내의 상기 좌측 상부 화소 샘플이고, 상기 공간적으로 인접한 제1 픽쳐 블록은 상기 픽쳐 블록 X1이며, 상기 픽쳐 블록 X1은 상기 현재 픽쳐 블록의 좌측 상부에서 공간적으로 인접한 픽쳐 블록이다.
제1 양태의 제3 가능한 구현 방식을 참조하여, 제1 양태의 제4 가능한 구현 방식에서,
상기 픽쳐 블록 X2는 상기 현재 픽쳐 블록의 위에서 공간적으로 인접한 픽쳐 블록이거나; 또는
상기 픽쳐 블록 X2의 움직임 벡터 절대값과 상기 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값이 픽쳐 블록 X5의 움직임 벡터 절대값과 상기 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값보다 크거나 같고, 상기 픽쳐 블록 X5는 상기 우측 상부 꼭지점과 공간적으로 인접한 상기 현재 픽쳐 블록 중의 픽쳐 블록으로서, 상기 픽쳐 블록 X2를 제외한 공간적으로 인접한 나머지 적어도 일부의 픽쳐 블록 중 하나이다.
제1 양태의 제3 가능한 구현 방식 또는 제1 양태의 제4 가능한 구현 방식을 참조하여, 제1 양태의 제5 가능한 구현 방식에서,
상기 픽쳐 블록 X3은 상기 현재 픽쳐 블록의 좌측에서 공간적으로 인접한 픽쳐 블록이거나; 또는
상기 픽쳐 블록 X3의 움직임 벡터 절대값과 상기 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값이 픽쳐 블록 X6의 움직임 벡터 절대값과 상기 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값보다 크거나 같고, 상기 픽쳐 블록 X6은 상기 좌측 하부 꼭지점과 공간적으로 인접한 상기 현재 픽쳐 블록 중의 픽쳐 블록으로서, 상기 픽쳐 블록 X3을 제외한 공간적으로 인접한 나머지 적어도 일부의 픽쳐 블록 중 하나이다.
제1 양태, 또는 제1 양태의 제1 내지 제5 가능한 구현 방식 중 어느 하나를 참조하여, 제1 양태의 제6 가능한 구현 방식에서, 상기 비-병진 움직임 모델 및 상기 K개의 화소 샘플의 움직임 벡터 예측자에 기초하여 상기 현재 픽쳐 블록에 대해 화소 값 예측을 수행하는 단계는,
상기 K개의 화소 샘플 중 K1개의 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임(reference frame)이 참조 프레임 Y1이 아닌 경우, 상기 K개의 화소 샘플의 움직임 벡터를 획득하기 위해, 상기 K1개의 화소 샘플의 움직임 벡터 예측자를 상기 참조 프레임 Y1로 스케일 조절하고, K2개의 화소 샘플의 움직임 벡터 예측자 및 상기 K1개의 화소 샘플의 움직임 벡터 예측자로서, 상기 참조 프레임 Y1로 스케일 조절된 움직임 벡터 예측자를 이용하여 상기 K개의 화소 샘플에 대해 움직임 추정을 수행하며, 상기 비-병진 움직임 모델 및 상기 K개의 화소 샘플의 움직임 벡터를 이용하여 상기 현재 픽쳐 블록에 대해 화소 값 예측을 수행하는 단계를 포함한다. 여기서, 상기 K2개의 화소 샘플은 상기 K개의 화소 샘플 중에서 상기 K1개의 화소 샘플을 제외한 나머지 화소 샘플이고, K1 및 K2는 양의 정수이다.
제1 양태의 제6 가능한 구현 방식을 참조하여, 제1 양태의 제7 가능한 구현 방식에서, 화소 샘플 i는 상기 K개의 화소 샘플 중에서 상기 제1 꼭지각 화소 샘플을 제외한 임의의 화소 샘플이고, 상기 화소 샘플 i의 움직임 벡터 예측자에 대응하는 예측 방향이 상기 제1 꼭지각 화소 샘플의 움직임 벡터 예측자에 대응하는 예측 방향과 다르면 상기 화소 샘플 i의 움직임 벡터 예측자에 대응하는 참조 프레임 인덱스가 0이다.
제1 양태의 제7 가능한 구현 방식을 참조하여, 제1 양태의 제8 가능한 구현 방식에서, 상기 참조 프레임 Y1은 상기 제1 꼭지각 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임이고, 상기 화소 샘플 i의 움직임 벡터 예측자가 상기 참조 프레임 Y1로 스케일 조절된다는 것은, 상기 제1 꼭지각 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임 인덱스와 상기 화소 샘플 i에 대응하는 참조 프레임 인덱스가 서로 다르면 상기 화소 샘플 i의 움직임 벡터 예측자가 상기 참조 프레임 Y1로 스케일 조절된다는 것을 포함한다.
제1 양태의 제6 가능한 구현 방식 또는 제1 양태의 제7 가능한 구현 방식 또는 제1 양태의 제8 가능한 구현 방식을 참조하여, 제1 양태의 제9 가능한 구현 방식에서, 상기 K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K2개의 화소 샘플의 움직임 벡터 예측자 및 상기 K1개의 화소 샘플의 움직임 벡터 예측자로서, 상기 참조 프레임 Y1로 스케일 조절된 움직임 벡터 예측자를 이용하여 상기 K개의 화소 샘플에 대해 움직임 추정을 수행하는 것은,
상기 K개의 화소 샘플의 움직임 벡터를 획득하기 위해, 상기 K2개의 화소 샘플의 움직임 벡터 예측자 및 상기 K1개의 화소 샘플의 움직임 벡터 예측자로서, 상기 참조 프레임 Y1로 스케일 조절된 움직임 벡터 예측자를 이용함으로써 반복 검색 알고리즘에 기초하여 상기 K개의 화소 샘플에 대해 움직임 추정을 수행하는 것을 포함한다.
제1 양태, 또는 제1 양태의 제1 내지 제9 가능한 구현 방식 중 어느 하나를 참조하여, 제1 양태의 제10 가능한 구현 방식에서, 상기 비-병진 움직임 모델은 아핀 변환 모델(affine transformation model), 또는 포물선 움직임 모델, 또는 회전 움직임 모델, 또는 원근 움직임 모델(perspective motion model), 또는 전단 움직임 모델(shearing motion model), 또는 스케일러블 움직임 모델(scalable motion model) 중 하나이다.
제1 양태, 또는 제1 양태의 제1 내지 제10 가능한 구현 방식 중 어느 하나를 참조하여, 제1 양태의 제11 가능한 구현 방식에서,
상기 픽쳐 예측 방법은 비디오 코딩 프로세스에 적용되거나, 또는 상기 픽쳐 예측 방법은 비디오 디코딩 프로세스에 적용된다.
본 발명의 제2 양태는 픽쳐 예측 장치를 제공한다. 상기 픽쳐 예측 장치는,
현재 픽쳐 블록 내의 K개의 화소 샘플의 움직임 벡터 예측자를 결정하도록 구성된 결정 유닛 - K는 1보다 큰 정수이고, 상기 K개의 화소 샘플은 상기 현재 픽쳐 블록 내의 제1 꼭지각 화소 샘플을 포함하며, 상기 제1 꼭지각 화소 샘플의 움직임 벡터 예측자는 상기 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 기초하여 획득되고, 상기 공간적으로 인접한 제1 픽쳐 블록은 상기 제1 꼭지각 화소 샘플과 공간적으로 인접함 -; 및
비-병진 움직임 모델 및 상기 K개의 화소 샘플의 움직임 벡터 예측자에 기초하여 상기 현재 픽쳐 블록에 대해 화소 값 예측을 수행하도록 구성된 예측 유닛을 포함한다.
제2 양태를 참조하여, 제2 양태의 제1 가능한 구현 방식에서, 상기 K개의 화소 샘플은 상기 현재 픽쳐 블록 내의 좌측 상부 화소 샘플, 또는 우측 상부 화소 샘플, 또는 좌측 하부 화소 샘플 중 적어도 2개의 화소 샘플을 포함하고;
상기 현재 픽쳐 블록 내의 상기 좌측 상부 화소 샘플은 상기 현재 픽쳐 블록의 좌측 상부 꼭지점에 있거나 또는 상기 현재 픽쳐 블록 내에 있으면서 상기 현재 픽쳐 블록의 좌측 상부 꼭지점을 포함하는 화소 블록이고, 상기 현재 픽쳐 블록 내의 상기 좌측 하부 화소 샘플은 상기 현재 픽쳐 블록의 좌측 하부 꼭지점에 있거나 또는 상기 현재 픽쳐 블록 내에 있으면서 상기 현재 픽쳐 블록의 좌측 하부 꼭지점을 포함하는 화소 블록이며, 상기 현재 픽쳐 블록 내의 상기 우측 상부 화소 샘플은 상기 현재 픽쳐 블록의 우측 상부 꼭지점에 있거나 또는 상기 현재 픽쳐 블록 내에 있으면서 상기 현재 픽쳐 블록의 우측 상부 꼭지점을 포함하는 화소 블록이다.
제2 양태의 제1 가능한 구현 방식을 참조하여, 제2 양태의 제2 가능한 구현 방식에서, 상기 공간적으로 인접한 제1 픽쳐 블록은 픽쳐 블록 X1, 픽쳐 블록 X2, 또는 픽쳐 블록 X3이고;
상기 현재 픽쳐 블록 내의 상기 좌측 상부 화소 샘플의 움직임 벡터 예측자는 상기 픽쳐 블록 X1의 움직임 벡터에 기초하여 획득되고, 상기 픽쳐 블록 X1은 상기 현재 픽쳐 블록과 공간적으로 인접한 픽쳐 블록이며, 상기 픽쳐 블록 X1은 상기 현재 픽쳐 블록 내의 상기 좌측 상부 화소 샘플과 공간적으로 인접하고;
상기 현재 픽쳐 블록 내의 상기 우측 상부 화소 샘플의 움직임 벡터 예측자는 상기 픽쳐 블록 X2의 움직임 벡터에 기초하여 획득되고, 상기 픽쳐 블록 X2는 상기 현재 픽쳐 블록과 공간적으로 인접한 픽쳐 블록이며, 상기 픽쳐 블록 X2는 상기 현재 픽쳐 블록 내의 상기 우측 상부 화소 샘플과 공간적으로 인접하고;
상기 현재 픽쳐 블록 내의 상기 좌측 하부 화소 샘플의 움직임 벡터 예측자는 상기 픽쳐 블록 X3의 움직임 벡터에 기초하여 획득되고, 상기 픽쳐 블록 X3은 상기 현재 픽쳐 블록과 공간적으로 인접한 픽쳐 블록이며, 상기 픽쳐 블록 X3은 상기 현재 픽쳐 블록 내의 상기 좌측 하부 화소 샘플과 공간적으로 인접한다.
제2 양태의 제2 가능한 구현 방식을 참조하여, 제2 양태의 제3 가능한 구현 방식에서,
상기 제1 꼭지각 화소 샘플은 상기 현재 픽쳐 블록 내의 상기 좌측 상부 화소 샘플이고, 상기 공간적으로 인접한 제1 픽쳐 블록은 상기 픽쳐 블록 X1이며, 상기 픽쳐 블록 X1은 상기 현재 픽쳐 블록의 좌측 상부에서 공간적으로 인접한 픽쳐 블록이다.
제1 양태의 제3 가능한 구현 방식을 참조하여, 제1 양태의 제4 가능한 구현 방식에서,
상기 픽쳐 블록 X2는 상기 현재 픽쳐 블록의 위에서 공간적으로 인접한 픽쳐 블록이거나; 또는
상기 픽쳐 블록 X2의 움직임 벡터 절대값과 상기 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값이 픽쳐 블록 X5의 움직임 벡터 절대값과 상기 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값보다 크거나 같고, 상기 픽쳐 블록 X5는 상기 우측 상부 꼭지점과 공간적으로 인접한 상기 현재 픽쳐 블록 중의 픽쳐 블록으로서, 상기 픽쳐 블록 X2를 제외한 공간적으로 인접한 나머지 적어도 일부의 픽쳐 블록 중 하나이다.
제2 양태의 제3 가능한 구현 방식 또는 제2 양태의 제4 가능한 구현 방식을 참조하여, 제2 양태의 제5 가능한 구현 방식에서,
상기 픽쳐 블록 X3은 상기 현재 픽쳐 블록의 좌측에서 공간적으로 인접한 픽쳐 블록이거나; 또는
상기 픽쳐 블록 X3의 움직임 벡터 절대값과 상기 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값이 픽쳐 블록 X6의 움직임 벡터 절대값과 상기 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값보다 크거나 같고, 상기 픽쳐 블록 X6은 상기 좌측 하부 꼭지점과 공간적으로 인접한 상기 현재 픽쳐 블록 중의 픽쳐 블록으로서, 상기 픽쳐 블록 X3을 제외한 공간적으로 인접한 나머지 적어도 일부의 픽쳐 블록 중 하나이다.
제2 양태, 또는 제2 양태의 제1 내지 제5 가능한 구현 방식 중 어느 하나를 참조하여, 제2 양태의 제6 가능한 구현 방식에서, 상기 예측 유닛은 구체적으로, 상기 K개의 화소 샘플 중 K1개의 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임이 참조 프레임 Y1이 아닌 경우, 상기 K개의 화소 샘플의 움직임 벡터를 획득하기 위해, 상기 K1개의 화소 샘플의 움직임 벡터 예측자를 상기 참조 프레임 Y1로 스케일 조절하고, K2개의 화소 샘플의 움직임 벡터 예측자 및 상기 K1개의 화소 샘플의 움직임 벡터 예측자로서, 상기 참조 프레임 Y1로 스케일 조절된 움직임 벡터 예측자를 이용하여 상기 K개의 화소 샘플에 대해 움직임 추정을 수행하며, 상기 비-병진 움직임 모델 및 상기 K개의 화소 샘플의 움직임 벡터를 이용하여 상기 현재 픽쳐 블록에 대해 화소 값 예측을 수행하도록 구성된다. 여기서, 상기 K2개의 화소 샘플은 상기 K개의 화소 샘플 중에서 상기 K1개의 화소 샘플을 제외한 나머지 화소 샘플이며, K1 및 K2는 양의 정수이다.
제2 양태의 제6 가능한 구현 방식을 참조하여, 제2 양태의 제7 가능한 구현 방식에서, 화소 샘플 i는 상기 K개의 화소 샘플 중에서 상기 제1 꼭지각 화소 샘플을 제외한 임의의 화소 샘플이고, 상기 화소 샘플 i의 움직임 벡터 예측자에 대응하는 예측 방향이 상기 제1 꼭지각 화소 샘플의 움직임 벡터 예측자에 대응하는 예측 방향과 다르면 상기 화소 샘플 i의 움직임 벡터 예측자에 대응하는 참조 프레임 인덱스가 0이다.
제2 양태의 제6 가능한 구현 방식을 참조하여, 제2 양태의 제7 가능한 구현 방식에서, 상기 참조 프레임 Y1은 상기 제1 꼭지각 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임이고, 상기 예측 유닛은 구체적으로, 상기 제1 꼭지각 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임 인덱스와 상기 화소 샘플 i에 대응하는 참조 프레임 인덱스가 서로 다르면 상기 화소 샘플 i의 움직임 벡터 예측자를 상기 참조 프레임 Y1로 스케일링하도록 구성된다.
제2 양태, 제2 양태 제1 내지 제8 가능한 구현 방식 중 어느 하나를 참조하여, 제2 양태의 제9 가능한 구현 방식에서, 상기 비-병진 움직임 모델은 아핀 변환 모델, 또는 포물선 움직임 모델, 또는 회전 움직임 모델, 또는 원근 움직임 모델, 또는 전단 움직임 모델, 또는 스케일러블 움직임 모델 중 하나이다.
제2 양태, 또는 제2 양태의 제1 내지 제9 가능한 구현 방식 중 어느 하나를 참조하여, 제2 양태의 제10 가능한 구현 방식에서, 상기 픽쳐 예측 장치는 비디오 코딩 장치에 적용되거나, 또는 상기 픽쳐 예측 장치는 비디오 디코딩 장치에 적용된다.
본 발명의 실시형태의 해결수단에서, 현재 픽쳐 블록에 대해 화소 값 예측이 수행되는 동안 결정되는 K개의 화소 샘플의 움직임 벡터 예측자가 비-병진 움직임 모델에 기초하여 참조된다는 것을 알 수 있을 것이다. 상기 K개의 화소 샘플은 상기 현재 픽쳐 블록 내의 제1 꼭지각 화소 샘플을 포함한다. 상기 K개의 화소 샘플의 움직임 벡터 예측자가 예측을 위해 직접 사용되고, 상기 K개의 화소 샘플 내의 제1 꼭지각 화소 샘플의 움직임 벡터 예측자가 상기 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 기초하여 획득되며, 상기 K개의 화소 샘플의 움직임 벡터 예측자를 위한 단 하나의 선택적인 경우만이 존재한다. 따라서, 종래의 기술에서 사용되는, K개의 화소 샘플의 움직임 벡터 예측자가 상기 K개의 화소 샘플의 다수의 선택적인 움직임 벡터 예측자 세트로부터 대규모 계산에 의하여 선택되는 메커니즘이 포기된다. 이렇게 함으로써, 비트스트림 내의 움직임 정보 예측자의 선택 정보를 전달하는 것을 방지하는 데 도움이 되고, 코딩 효율을 높이는 데 도움이 되며, 또한 비-병진 움직임 모델에 기반하는 픽쳐 예측의 계산 복잡도를 감소시키는 데 도움이 된다.
도 1a는 본 발명의 일 실시형태에 따른 프레임 내 예측에 대응하는 예측 단위 분할 방식의 개략도이다.
도 1b는 본 발명의 일 실시형태에 따른 프레임 간 예측에 대응하는 여러 예측 단위 분할 방식의 개략도이다.
도 1c는 본 발명의 일 실시형태에 따른 픽쳐 예측 방법의 개략적인 흐름도이다.
도 2는 본 발명의 일 실시형태에 따른 현재 픽쳐 블록의 가능한 인접 참조 블록의 개략도이다.
도 3a는 본 발명의 일 실시형태에 따른 다른 픽쳐 예측 방법의 개략적인 흐름도이다.
도 3b는 본 발명의 일 실시형태에 따른 현재 픽쳐 블록의 가능한 인접 참조 블록의 다른 개략도이다.
도 3c는 본 발명의 일 실시형태에 따른 현재 픽쳐 블록의 참조 프레임의 개략도이다.
도 3d는 본 발명의 일 실시형태에 따른 현재 픽쳐 블록의 개략도이다.
도 3e는 본 발명의 일 실시형태에 따른 픽쳐 블록의 아핀 변환의 개략도이다.
도 4a는 본 발명의 일 실시형태에 따른 또 다른 픽쳐 예측 방법의 개략적인 흐름도이다.
도 4b는 본 발명의 일 실시형태에 따른 현재 픽쳐 블록의 인접한 참조 블록의 또 다른 개략도이다.
도 5는 본 발명의 일 실시형태에 따른 또 다른 픽쳐 예측 방법의 개략적인 흐름도이다.
도 6은 본 발명의 일 실시형태에 따른 또 다른 픽쳐 예측 방법의 개략적인 흐름도이다.
도 7은 본 발명의 일 실시형태에 따른 비디오 디코딩 방법의 개략적인 흐름도이다.
도 8은 본 발명의 일 실시형태에 따른 픽쳐 예측 장치의 개략도이다.
도 9는 본 발명의 일 실시형태에 따른 다른 픽쳐 예측 장치의 개략도이다.
도 10은 본 발명의 일 실시형태에 따른 또 다른 픽쳐 예측 장치의 개략도이다.
는 프로세스, 방법, 제품, 또는 장치의 다른 고유한 단계 또는 유닛을 선택적으로 더 포함한다.
이하, 본 발명의 실시형태에 포함될 수 있는 몇몇 개념에 대해 먼저 설명한다.
대부분의 코딩 프레임워크에서는, 비디오 시퀀스가 일련의 픽쳐(picture)를 포함하고, 픽쳐는 슬라이스(slice)로 추가적으로 분할되고, 슬라이스는 블록(block)으로 추가적으로 분할된다. 비디오 코딩은, 블록을 단위로서 이용하여 픽쳐의 좌측 상부 모서리 위치에서 시작해서 좌측에서 우측으로 또한 최상부 행에서 최하부 행까지 코딩 처리를 수행하는 것이다. 일부 새로운 비디오 코딩 표준에서는, 이러한 블록의 개념이 더 확장되었다. H.264 표준에서는 매크로블록(macro block, MB)이 있고, MB는 예측 코딩에 사용될 수 있는 복수의 예측 블록으로 더 분할될 수 있다. HEVC 표준에서는, 코딩 단위(coding unit, CU), 예측 단위(prediction unit, PU), 및 변환 단위(transform unit, TU)과 같은 기본적인 개념이 사용되고, 복수의 단위가 기능에 따라 분류되며, 설명을 위해 완전히 새로운 트리 기반 구조가 사용된다. 예를 들어, 쿼드트리(quadtree) 구조를 형성하기 위해, CU가 쿼드트리에 따라 더 작은 CU로 분할될 수 있고, 더 작은 CU는 추가적으로 분할될 수 있다. PU 및 TU도 또한 유사한 트리 구조를 가지고 있다. 유닛이 CU, PU, 또는 TU인지 여부에 관계없이, 이러한 유닛은 본질적으로 블록의 개념에 속해 있다. CU는 매크로블록(macroblock, MB) 또는 코딩 블록과 유사하며, 픽쳐를 분할하고 코딩하기 위한 기본 단위이다. PU는 예측 블록에 대응할 수 있고, 예측 코딩을 위한 기본 단위이다. CU는 분할 모드에 따라 복수의 PU로 추가적으로 분할된다. TU는 변환 블록에 대응할 수 있고, 예측 잔차(prediction residual)를 변환하기 위한 기본 단위이다.
HEVC 표준에서는, 코딩 단위의 크기가 4개의 레벨, 즉 64×64, 32×32, 16×16, 및 8×8을 포함할 수 있다. 코딩 단위는 각각의 레벨에서 프레임 내 예측 및 프레임 간 예측에 따라 서로 다른 크기의 예측 단위로 분할될 수 있다. 예를 들어, 도 1a 및 도 1b에 도시된 바와 같이, 도 1a는 프레임 내 예측에 대응하는 예측 단위 분할 방식의 예를 도시하고 있다. 도 1b는 프레임 간 예측에 대응하는 다수의 예측 단위 분할 방식의 예를 도시하고 있다.
비디오 코딩 기술이 발전하고 진화하는 동안, 비디오 코딩 전문가들은 코딩 효율을 향상시키기 위해 인접한 코딩/디코딩 블록 간의 시간적 및 공간적 상호 연관관계를 이용하는 다양한 방법을 파악해 왔다. H264/AVC(Advanced Video Coding, AVC) 표준에서, 스킵 모드(skip mode) 및 다이렉트 모드(direct mode)는 코딩 효율을 향상시키기 위한 효과적인 툴이 된다. 비트 레이트가 낮은 경우에 사용되는 2가지 코딩 모드의 블록이 전체 코딩 시퀀스의 절반 이상을 차지할 수 있다. 스킵 모드가 사용되는 경우에, 현재 픽쳐 블록의 움직임 벡터가 단지 스킵 모드 플래그를 비트 스트림에 추가함으로써 근처의 움직임 벡터를 이용하여 도출될 수 있고, 참조 블록의 값이 현재 픽쳐 블록의 재구성된 값으로서 움직임 벡터에 따라 직접 복사된다. 또한, 다이렉트 모드가 사용되는 경우에, 인코더가 인접한 움직임 벡터를 이용하여 현재 픽쳐 블록의 움직임 벡터를 도출하고, 현재 픽쳐 블록의 예측자로서의 움직임 벡터에 따라 참조 블록의 값을 직접 복사하며, 인코더에서 예측자를 이용하여 현재 픽쳐 블록에 대해 예측 코딩을 수행할 수 있다. 진화된 HEVC 표준에서는, 비디오 코딩 효율을 추가로 향상시키기 위해 일부 새로운 코딩 툴이 도입되었다. 병합 코딩(병합) 모드 및 고급 움직임 벡터 예측(advanced motion vector prediction, AVMP) 모드는 2가지 중요한 프레임 간 예측 툴이다. 병합 코딩 중에, 후보 움직임 정보 세트가 현재 코딩 블록의 인접한 코딩된 블록의 움직임 정보(예측 방향, 움직임 벡터, 및 참조 프레임 인덱스를 포함)를 이용하여 구성되고, 비교에 의하여 코딩 효율이 가장 높을 수 있는 후보 움직임 정보가 현재 코딩 블록의 움직임 정보로서 선택될 수 있으며, 현재 코딩 블록의 예측자가 참조 프레임에서 발견되고, 예측 코딩이 현재 코딩 블록에 대해 수행되며, 움직임 정보가 선택되는 인접한 코딩된 블록을 나타내는 인덱스 값이 비트스트림에 기입된다. 고급 움직임 벡터 예측(AVMP) 모드가 사용되는 경우, 인접한 코딩된 블록의 움직임 벡터가 현재 코딩 블록의 움직임 벡터 예측자로서 사용되고, 코딩 효율이 가장 높을 수 있게 하는 움직임 벡터가 현재 코딩 블록의 움직임 벡터를 예측하기 위해 선택될 수 있으며, 선택된 인접한 움직임 벡터를 나타내는 인덱스 값이 비디오 비트스트림에 기입될 수 있다.
이하, 본 발명의 실시형태의 과제 해결수단에 대해 추가적으로 설명한다.
다음, 본 발명의 실시형태에서 제공되는 픽쳐 예측 방법에 대해 설명한다. 본 발명의 실시형태에서 제공되는 픽쳐 예측 방법은 비디오 코딩 장치 또는 비디오 디코딩 장치에 의해 실행된다. 비디오 코딩 장치 또는 비디오 디코딩 장치는 비디오를 출력하거나 저장할 필요가 있는 임의의 장치, 예를 들어 랩탑 컴퓨터, 태블릿 컴퓨터, 개인용 컴퓨터, 휴대폰, 또는 비디오 서버일 수 있다.
본 발명에서의 픽쳐 예측 방법의 실시형태에서, 픽쳐 예측 방법은, 현재 픽쳐 블록 내의 K개의 화소 샘플의 움직임 벡터 예측자(motion vector predictor, MVP)를 결정하는 단계 - K는 1보다 큰 정수이고, K개의 화소 샘플은 현재 픽쳐 블록 내의 제1 꼭지각 화소 샘플을 포함하며, 제1 꼭지각 화소 샘플의 움직임 벡터 예측자는 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 기초하여 획득되고, 공간적으로 인접한 제1 픽쳐 블록은 제1 꼭지각 화소 샘플과 공간적으로 인접함 -; 및 비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터 예측자에 기초하여 현재 픽쳐 블록에 대해 화소 값 예측을 수행하는 단계를 포함한다.
도 1c을 참조하면, 도 1c는 본 발명의 일 실시형태에 따른 픽쳐 예측 방법의 개략적인 흐름도이다. 도 1c의 예에 도시된 바와 같이, 본 발명의 본 실시형태에서 제공되는 픽쳐 예측 방법은 다음의 단계를 포함할 수 있다.
101. 현재 픽쳐 블록 내의 K개의 화소 샘플의 움직임 벡터 예측자를 결정한다.
K는 1보다 큰 정수이고, K개의 화소 샘플은 현재 픽쳐 블록 내의 제1 꼭지각 화소 샘플을 포함하며, 제1 꼭지각 화소 샘플의 움직임 벡터 예측자는 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 기초하여 획득된다. 공간적으로 인접한 제1 픽쳐 블록은 제1 꼭지각 화소 샘플과 공간적으로 인접한다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 제1 꼭지각 화소 샘플의 움직임 벡터 예측자가 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 기초하여 획득된다. 구체적으로, 제1 꼭지각 화소 샘플의 움직임 벡터 예측자는 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터와 동일할 수 있거나(즉, 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터가 제1 꼭지각 화소 샘플의 움직임 벡터 예측자로서 사용되거나); 또는 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 대해 사전 결정된 병진 움직임을 수행하여 획득되는 움직임 벡터 예측자가 제1 꼭지각 화소 샘플의 움직임 벡터 예측자로서 사용될 수 있다.
102. 비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터 예측자에 기초하여 현재 픽쳐 블록에 대해 화소 값 예측을 수행한다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 비-병진 움직임 모델은 아핀 변환 모델(affine transformation model), 또는 포물선 움직임 모델, 또는 회전 움직임 모델, 또는 원근 움직임 모델(perspective motion model), 또는 전단 움직임 모델(shearing motion model), 또는 스케일러블 움직임 모델(scalable motion model) 중 하나이다. 비-병진 움직임 모델이 전술한 특정 예에 한정되지 않는다고 이해할 수 있을 것이다.
본 실시형태의 과제 해결수단에서, 현재 픽쳐 블록에 대해 화소 값 예측이 수행되는 동안, K개의 화소 샘플의 결정되는 움직임 벡터 예측자가 비-병진 움직임 모델에 기초하여 참조된다는 것을 알 수 있을 것이다. K개의 화소 샘플은 현재 픽쳐 블록 내의 제1 꼭지각 화소 샘플을 포함한다. K개의 화소 샘플의 움직임 벡터 예측자가 예측을 위해 직접 사용되고, K개의 화소 샘플 내의 제1 꼭지각 화소 샘플의 움직임 벡터 예측자가 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 기초하여 획득되며, K개의 화소 샘플의 움직임 벡터 예측자를 위한 단 하나의 선택적인 경우만이 존재한다. 따라서, 종래의 기술에서 사용되는, K개의 화소 샘플의 움직임 벡터 예측자가 K개의 화소 샘플의 다수의 선택적인 움직임 벡터 예측자 세트로부터 대규모 계산에 의하여 선택되는 메커니즘이 포기된다. 이렇게 함으로써, 비트스트림 내의 움직임 정보 예측자의 선택 정보를 전달하는 것을 방지하는 데 도움이 되고, 코딩 효율을 높이는 데 도움이 되며, 또한 비-병진 움직임 모델에 기반하는 픽쳐 예측의 계산 복잡도를 감소시키는 데 도움이 된다.
또한, 공간적으로 인접한 제1 픽쳐 블록은 제1 꼭지각 화소 샘플과 공간적으로 인접하며, 현재 픽쳐 블록과 공간적으로 인접한 제1 픽쳐 블록이 사전 결정된다(즉, 현재 픽쳐 블록과 공간적으로 인접한 제1 픽쳐 블록이 미리 협의되거나 설정된다고 간주될 수 있다). 이렇게 함으로써, K개의 화소 샘플의 움직임 벡터 예측자를 빠르게 결정하는 데 도움이 된다. 또한, 픽쳐 블록 간의 공간적 상관관계를 최대한 이용하여 중복(redundancy)을 제거하므로, 코딩 효율을 향상시키는 데 도움이 된다.
K개의 화소 샘플을 선택하는 다양한 방식이 있을 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, K개의 화소 샘플은 현재 픽쳐 블록 내의 좌측 상부 화소 샘플, 우측 상부 화소 샘플, 좌측 하부 화소 샘플, 또는 우측 하부 화소 샘플 중 적어도 2개의 화소 샘플을 포함한다.
화소 샘플이 화소 블록이면, 화소 블록의 크기는 예를 들어, 2×2, 1×2, 4×2, 4×4이거나, 또는 다른 크기이다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 현재 픽쳐 블록 내의 좌측 상부 화소 샘플은 현재 픽쳐 블록의 좌측 상부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 좌측 상부 꼭지점을 포함하는 화소 블록이다. 현재 픽쳐 블록 내의 좌측 하부 화소 샘플은 현재 픽쳐 블록의 좌측 하부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 좌측 하부 꼭지점을 포함하는 화소 블록이다. 현재 픽쳐 블록 내의 우측 상부 화소 샘플은 현재 픽쳐 블록의 우측 상부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 우측 상부 꼭지점을 포함하는 화소 블록이다. 현재 픽쳐 블록 내의 우측 하부 화소 샘플은 현재 픽쳐 블록의 우측 하부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 우측 하부 꼭지점을 포함하는 화소 블록이다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, K개의 화소 샘플은 현재 픽쳐 블록 내의 중심 화소 샘플을 더 포함할 수 있다. 현재 픽쳐 블록 내의 중심 화소 샘플은 현재 픽쳐 블록 내의 중심 화소이거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록 내의 중심 화소를 포함하는 화소 블록일 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 공간적으로 인접한 제1 픽쳐 블록은 픽쳐 블록 X1, 픽쳐 블록 X2, 픽쳐 블록 X3, 또는 픽쳐 블록 X4일 수 있다.
현재 픽쳐 블록 내의 좌측 상부 화소 샘플의 움직임 벡터 예측자는 픽쳐 블록 X1의 움직임 벡터에 기초하여 획득될 수 있고, 픽쳐 블록 X1은 현재 픽쳐 블록과 공간적으로 인접한 픽쳐 블록이며, 픽쳐 블록 X1은 현재 픽쳐 블록 내의 좌측 상부 화소 샘플과 공간적으로 인접한다.
현재 픽쳐 블록 내의 우측 상부 화소 샘플의 움직임 벡터 예측자는 픽쳐 블록 X2의 움직임 벡터에 기초하여 획득될 수 있고, 픽쳐 블록 X2는 현재 픽쳐 블록과 공간적으로 인접한 픽쳐 블록이며, 픽쳐 블록 X2는 현재 픽쳐 블록 내의 우측 상부 화소 샘플과 공간적으로 인접한다.
현재 픽쳐 블록 내의 좌측 하부 화소 샘플의 움직임 벡터 예측자는 픽쳐 블록 X3의 움직임 벡터에 기초하여 획득될 수 있고, 픽쳐 블록 X3은 현재 픽쳐 블록과 공간적으로 인접한 픽쳐 블록이며, 픽쳐 블록 X3은 현재 픽쳐 블록 내의 좌측 하부 화소 샘플과 공간적으로 인접한다.
현재 픽쳐 블록 내의 우측 하부 화소 샘플의 움직임 벡터 예측자는 픽쳐 블록 X4의 움직임 벡터에 기초하여 획득될 수 있고, 픽쳐 블록 X4는 현재 픽쳐 블록과 공간적으로 인접한 픽쳐 블록이고, 픽쳐 블록 X4는 현재 픽쳐 블록 내의 우측 하부 화소 샘플 공간적으로 인접한다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 제1 꼭지각 화소 샘플은 현재 픽쳐 블록 내의 좌측 상부 화소 샘플일 수 있고, 공간적으로 인접한 제1 픽쳐 블록은 픽쳐 블록 X1일 수 있다. 픽쳐 블록 X1은 현재 픽쳐 블록의 좌측 상부에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X1은 현재 픽쳐 블록의 좌측에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X1은 현재 픽쳐 블록의 위에서 공간적으로 인접한 픽쳐 블록이다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 픽쳐 블록 X2는 현재 픽쳐 블록의 위에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X2는 현재 픽쳐 블록의 우측 상부에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X2는 현재 픽쳐 블록의 우측에서 공간적으로 인접한 픽쳐 블록이다. 또한 선택적으로, 픽쳐 블록 X2의 움직임 벡터 절대값과 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값이 픽쳐 블록 X5의 움직임 벡터 절대값과 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값보다 크거나 같고, 픽쳐 블록 X5는 우측 상부 꼭지점과 공간적으로 인접한 현재 픽쳐 블록 중의 픽쳐 블록으로서, 픽쳐 블록 X2를 제외한 공간적으로 인접한 나머지 적어도 일부의 픽쳐 블록 중 하나이다. 즉, 픽쳐 블록 X2의 위치가 특정 정책에 기초하여 결정될 수 있거나, 또는 픽쳐 블록 X2의 위치가 직접 합의될 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 픽쳐 블록 X3은 현재 픽쳐 블록의 좌측에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X3은 현재 픽쳐 블록의 좌측 하부에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X3은 현재 픽쳐 블록의 아래에서 공간적으로 인접한 픽쳐 블록이다. 또한 선택적으로, 픽쳐 블록 X3의 움직임 벡터 절대값과 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값이 픽쳐 블록 X6의 움직임 벡터 절대값과 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값보다 크거나 같고, 픽쳐 블록 X6은 좌측 하부 꼭지점과 공간적으로 인접한 현재 픽쳐 블록 중의 픽쳐 블록으로서, 픽쳐 블록 X3을 제외한 공간적으로 인접한 나머지 적어도 일부의 픽쳐 블록 중 하나이다. 즉, 픽쳐 블록 X3의 위치가 특정 정책에 기초하여 결정될 수 있거나, 또는 픽쳐 블록 X3의 위치가 직접 합의될 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 픽쳐 블록 X4는 현재 픽쳐 블록의 우측에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X4는 현재 픽쳐 블록의 우측 하부에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X4는 현재 픽쳐 블록의 아래에서 공간적으로 인접한 픽쳐 블록이다. 또한 선택적으로, 픽쳐 블록 X4의 움직임 벡터 절대값과 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값이 픽쳐 블록 X7의 움직임 벡터 절대값과 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값보다 크거나 같고, 픽쳐 블록 X7은 좌측 하부 꼭지점과 공간적으로 인접한 현재 픽쳐 블록 중의 픽쳐 블록으로서, 픽쳐 블록 X4를 제외한 공간적으로 인접한 나머지 적어도 일부의 픽쳐 블록 중 하나이다.
도 2를 참조하면, 도 2는 픽쳐 블록 X1, 픽쳐 블록 X2, 픽쳐 블록 X3, 및 픽쳐 블록 X4의 몇몇 가능한 위치의 예를 나타낸다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터 예측자에 기초하여, 현재 픽쳐 블록에 대해 화소 값 예측을 수행하는 단계는 구체적으로, K개의 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임이 참조 프레임 Y1이면, K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K개의 화소 샘플의 움직임 벡터 예측자를 이용하여 K개의 화소 샘플에 대해 움직임 추정을 수행하고, 비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터를 이용하여 현재 픽쳐 블록에 대해 화소 값 예측을 수행하는 단계를 포함할 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터 예측자에 기초하여, 현재 픽쳐 블록에 대해 화소 값 예측을 수행하는 단계는 구체적으로, K개의 화소 샘플 중 K1개의 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임(reference frame)이 참조 프레임 Y1이 아닌 경우, K1개의 화소 샘플의 움직임 벡터 예측자를 참조 프레임 Y1로 스케일 조절하고; K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K2개의 화소 샘플의 움직임 벡터 예측자 및 K1개의 화소 샘플의 움직임 벡터 예측자로서, 참조 프레임 Y1로 스케일 조절된 움직임 벡터 예측자를 이용하여 K개의 화소 샘플에 대해 움직임 추정을 수행하며; 비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터를 이용하여 현재 픽쳐 블록에 대해 화소 값 예측을 수행하는 단계를 포함할 수 있다. 여기서, K2개의 화소 샘플은 K개의 화소 샘플 중에서 K1개의 화소 샘플을 제외한 나머지 화소 샘플이고, K1 및 K2는 양의 정수이다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 참조 프레임 Y1은 제1 꼭지각 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임일 수 있거나, 또는 참조 프레임 Y1은 K개의 화소 샘플 내의 다른 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임일 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 화소 샘플 i는 K개의 화소 샘플 중에서 제1 꼭지각 화소 샘플을 제외한 임의의 화소 샘플이고, 화소 샘플 i의 움직임 벡터 예측자에 대응하는 예측 방향이 제1 꼭지각 화소 샘플의 움직임 벡터 예측자에 대응하는 예측 방향과 다르면 화소 샘플 i의 움직임 벡터 예측자에 대응하는 참조 프레임 인덱스가 0이다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 화소 샘플 i의 움직임 벡터 예측자가 참조 프레임 Y1로 스케일 조절된다는 것은, 제1 꼭지각 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임 인덱스와 화소 샘플 i에 대응하는 참조 프레임 인덱스가 서로 다르면 화소 샘플 i의 움직임 벡터 예측자가 참조 프레임 Y1로 스케일 조절된다는 것을 포함할 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K2개의 화소 샘플의 움직임 벡터 예측자 및 K개의 화소 샘플의 움직임 벡터 예측자로서, 참조 프레임 Y1로 스케일 조절된 움직임 벡터 예측자를 이용하여 K개의 화소 샘플에 대해 움직임 추정을 수행하는 것은, K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K2개의 화소 샘플의 움직임 벡터 예측자 및 K개의 화소 샘플의 움직임 벡터 예측자로서, 참조 프레임 Y1로 스케일 조절된 움직임 벡터 예측자를 이용함으로써 반복 검색 알고리즘(또는 다른 타입의 움직임 추정 알고리즘)에 기초하여 K개의 화소 샘플에 대해 움직임 추정을 수행하는 것을 포함할 수 있다.
물론, 몇몇 다른 가능한 적용 시나리오에서, K개의 화소 샘플에 대해 움직임 추정을 수행하는 단계가 생략될 수도 있다. 심지어, 정규화(normalization) 단계도 생략될 수 있다. 즉, K개의 화소 샘플 내의 K1개의 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임이 참조 프레임 Y1이 아닌 경우, K1개의 화소 샘플의 움직임 벡터 예측자가 참조 프레임 Y1로 스케일 조절되는 단계가 생략될 수 있다.
본 실시형태에서 제공되는 전술한 픽쳐 예측 방법 중 하나는 비디오 코딩 프로세스 또는 비디오 디코딩 프로세스에 적용될 수 있다는 것을 이해할 수 있을 것이다.
이하, 본 발명의 실시형태에서의 전술한 해결수단을 더 잘 이해하고 구현하기 위해, 더 구체적인 적용 시나리오를 참조하여 추가적으로 설명한다.
도 3a를 참조하면, 도 3a는 본 발명의 다른 실시형태에 따른 다른 픽쳐 예측 방법의 개략적인 흐름도이다. 도 3a의 예에서 도시된 바와 같이, 본 발명의 다른 실시형태에서 제공되는 다른 픽쳐 예측 방법은 다음의 단계를 포함할 수 있다.
301. 현재 픽쳐 블록 내의 K개의 화소 샘플의 움직임 벡터 예측자를 결정한다.
본 실시형태의 예에서, K=3이다.
본 실시형태에서, K개의 화소 샘플은 현재 픽쳐 블록의 좌측 상부 꼭지점, 우측 상부 꼭지점, 및 좌측 하부 꼭지점을 포함한다.
도 3b의 예에 도시된 바와 같이, 현재 픽쳐 블록의 좌측 상부 꼭지점의 움직임 벡터 예측자는 현재 픽쳐 블록의 좌측 상부에서 인접한 픽쳐 블록 A의 움직임 벡터와 같다. 현재 픽쳐 블록의 우측 상부 꼭지점의 움직임 벡터 예측자는 현재 픽쳐 블록의 위에서 인접한 픽쳐 블록 B의 움직임 벡터와 같거나, 또는 현재 픽쳐 블록의 우측 상부 꼭지점의 움직임 벡터 예측자는 현재 픽쳐 블록의 우측 상부에서 인접한 픽쳐 블록의 움직임 벡터 C와 같을 수 있다. 현재 픽쳐 블록의 좌측 하부 꼭지점의 움직임 벡터 예측자는 현재 픽쳐 블록의 좌측 하부에서 인접한 픽쳐 블록의 움직임 벡터 E와 같을 수 있거나, 또는 현재 픽쳐 블록의 좌측 하부 꼭지점의 움직임 벡터 예측자는 현재 픽쳐 블록의 좌측에서 인접한 픽쳐 블록의 움직임 벡터 D와 같을 수 있다.
예를 들어, 우측 상부 꼭지점 및 현재 픽쳐 블록의 좌측 하부 꼭지점의 움직임 벡터 예측자는 다음의 수식에 기초하여 결정될 수 있다:
Figure 112019010947117-pat00001
수식 (1)
Figure 112019010947117-pat00002
수식 (2)
전술한 수식 (1) 및 수식 (2)에서,
Figure 112019010947117-pat00003
는 픽쳐 블록 A의 움직임 벡터(motion vector, MV)를 나타낸다.
전술한 수식 (1)에서,
Figure 112019010947117-pat00004
은 현재 픽쳐 블록의 우측 상부 꼭지점의 MVP를 나타내고,
Figure 112019010947117-pat00005
는 픽쳐 블록 B의 MV를 나타내며,
Figure 112019010947117-pat00006
는 픽쳐 블록 C의 MV를 나타낸다. 전술한 수식 (2)에서,
Figure 112019010947117-pat00007
는 현재 픽쳐 블록의 우측 상부 꼭지점의 MVP를 나타내고,
Figure 112019010947117-pat00008
는 픽쳐 블록 D의 MV를 나타내며,
Figure 112019010947117-pat00009
는 픽쳐 블록 E의 MV를 나타낸다.
즉, 우측 상부 꼭지점의 MVP의 경우, 블록 A의 움직임 벡터 절대값과 더 큰 차이를 가진 픽쳐 블록이 공간적으로 인접한 픽쳐 블록 B 및 픽쳐 블록 C로부터 선택된다. 좌측 하부 꼭지점의 MVP의 경우, 블록 A의 움직임 벡터 절대값과 더 큰 차이를 가진 픽쳐 블록이 공간적으로 인접한 픽쳐 블록 D 및 픽쳐 블록 E로부터 선택된다.
302. K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K개의 화소 샘플의 움직임 벡터 예측자를 이용하여 K개의 화소 샘플에 대해 움직임 추정을 수행한다.
K개의 화소 샘플 중 K1개의 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임이 참조 프레임 Y1이 아닌 경우, K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K개의 화소 샘플의 움직임 벡터 예측자를 이용하여 K개의 화소 샘플에 대해 움직임 추정을 수행하는 것은, K1개의 화소 샘플의 움직임 벡터 예측자를 참조 프레임 Y1로 스케일 조절하고(즉, K1개의 화소 샘플의 움직임 벡터 예측자에 대해 정규화 처리를 수행하고); K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K2개의 화소 샘플의 움직임 벡터 예측자 및 K1개의 화소 샘플의 움직임 벡터 예측자로서, 참조 프레임 Y1로 스케일 조절된 움직임 벡터 예측자를 이용하여 K개의 화소 샘플에 대해 움직임 추정을 수행하는 것을 포함한다.
K1개의 화소 샘플의 움직임 벡터 예측자에 대해 정규화 처리가 수행되기 전에, 화소 샘플 i의 움직임 벡터 예측자의 참조 프레임 인덱스가 먼저 수정될 수 있다. 화소 샘플 i는 K개의 화소 샘플 중에서 현재 픽쳐 블록의 좌측 상부 꼭지점을 제외한 임의의 화소 샘플(예를 들어, 좌측 하부 꼭지점 또는 우측 상부 꼭지점)이다. 화소 샘플 i의 움직임 벡터 예측자에 대응하는 예측 방향이 좌측 상부 꼭지점의 움직임 벡터 예측자에 대응하는 예측 방향과 다르면(예를 들어, 화소 샘플 i의 움직임 벡터 예측자에 대응하는 예측 방향이 포워드 예측이고, 좌측 상부 꼭지점의 움직임 벡터 예측자에 대응하는 예측 방향이 백워드 예측이거나; 또는 화소 샘플 i의 움직임 벡터 예측자에 대응하는 예측 방향이 백워드 예측이고, 좌측 상부 꼭지점의 움직임 벡터 예측자에 대응하는 예측 방향은 포워드 예측이면), 화소 샘플 i의 움직임 벡터 예측자에 대응하는 참조 프레임 인덱스가 0이다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 움직임 벡터 예측자를 참조 프레임으로 스케일 조절하기 위한 방법은 다음과 같을 수 있다: 현재 코딩 프레임 인덱스가 CurPoc이고, 픽쳐 블록 A의 참조 프레임(즉, 좌측 상부 꼭지점의 MVP에 대응하는 참조 프레임)이 목적지 참조 프레임이라고 추정된다. 목적지 참조 프레임 인덱스가 DesPoc이고, 우측 상부 꼭지점의 MVP 또는 좌측 하부 꼭지점에 대응하는 참조 프레임이 소스 참조 프레임이며, 소스 참조 프레임 인덱스는 SrcPoc이고, 우측 상부 꼭지점 또는 좌측 하부 꼭지점의 움직임 벡터 예측자가 MVP이며, 우측 상부 꼭지점 또는 좌측 하부 꼭지점의 움직임 벡터 예측자로서, 스케일 조절 이후에 획득되는 움직임 벡터 예측자가 MVS이다. 도 3c에 도시된 바와 같이, MVS가 다음의 수식을 이용하여 계산에 의해 획득될 수 있다:
Figure 112019010947117-pat00010
특히, K개의 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임이 참조 프레임 Y1이면, K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K1개의 화소 샘플의 움직임 벡터 예측자에 대해 정규화 처리가 수행되지 않고(K1개의 화소 샘플의 움직임 벡터 예측자가 정규화된 상태에 있었으므로), K개의 화소 샘플의 움직임 벡터 예측자를 이용하여 K개의 화소 샘플에 대해 움직임 추정이 직접 수행될 수 있다.
선택적으로, K개의 화소 샘플의 움직임 벡터를 획득하기 위해 K개의 화소 샘플에 대해 움직임 추정이 수행된다는 것은, K개의 화소 샘플의 움직임 벡터를 획득하기 위해 반복 검색 알고리즘에 기초하여 K개의 화소 샘플에 대해 움직임 추정이 수행된다는 것을 포함할 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, K개의 화소 샘플의 움직임 벡터를 획득하기 위해 반복 검색 알고리즘의 각각의 반복에 기초하여 K개의 화소 샘플에 대해 움직임 추정이 수행된다는 것은, 다음의 단계를 포함할 수 있다.
S1. 수식 (3), (4), 및 (5)에 따라 각각의 화소의
Figure 112019010947117-pat00011
를 계산한다.
Figure 112019010947117-pat00012
에서, k=1, 2, 3이다.
도 3d에 도시된 바와 같이, 현재 픽쳐 블록 X의 크기가 S1×S2이고, 현재 픽쳐 블록 X 내의 각각의 화소 p의 좌표가 (x, y)라고 추정된다.
Figure 112019010947117-pat00013
수식 (3)
Figure 112019010947117-pat00014
수식 (4)
Figure 112019010947117-pat00015
수식 (5)
S2.
Figure 112019010947117-pat00016
Figure 112019010947117-pat00017
를 계산한다.
Figure 112019010947117-pat00018
Figure 112019010947117-pat00019
는 방향 x 및 방향 y에서 현재 픽쳐 블록 X 내의 각각의 화소 p의 도함수(derivative)를 각각 나타낸다. 본 실시형태의 예에서, 미분은 소벨(Sobel) 연산자를 이용하여 계산된다. 다른 연산자(예를 들어, 가우시안 연산)이 사용될 수 있다. 수식 (6)과 수식 (7)의 예는 소벨(Sobel) 연산자의 템플릿을 나타낸다.
Figure 112019010947117-pat00020
수식 (6)
Figure 112019010947117-pat00021
수식 (7)
현재 화소 p의 좌표가 (x, y)라고 가정하면, 수식 (8) 및 수식 (9)의 예는
Figure 112019010947117-pat00022
Figure 112019010947117-pat00023
의 계산 공식을 나타낸다. 여기서, pred[x][y]는 현재 픽쳐 블록 X 내에 있고 좌표가 (x, y)인 화소의 예측된 화소 값을 나타낸다.
Figure 112019010947117-pat00024
수식 (8)
Figure 112019010947117-pat00025
수식 (9)
현재 픽쳐 블록 X의 가장자리 위에 위치하는 화소의 인접한 화소는 존재하지 않을 수도 있고,
Figure 112019010947117-pat00026
Figure 112019010947117-pat00027
는 현재 픽쳐 블록 X의 가장자리 위에 위치하는 화소와 인접한 화소의 대응하는 값으로 대체될 수 있다.
S3. 예측 에러
Figure 112019010947117-pat00028
를 계산한다.
현재 화소 p의 좌표가 (x, y)라고 추정된다.
Figure 112019010947117-pat00029
수식 (10)
여기서,
Figure 112019010947117-pat00030
Figure 112019010947117-pat00031
는 원래의 화소 값 및 현재 픽쳐 블록 X 내에 있고 좌표가 (x, y)인 화소의 예측된 화소 값을 각각 나타낸다.
S4.
Figure 112019010947117-pat00032
,
Figure 112019010947117-pat00033
,
Figure 112019010947117-pat00034
,
Figure 112019010947117-pat00035
,
Figure 112019010947117-pat00036
, 및
Figure 112019010947117-pat00037
가 각각 현재 픽쳐 블록 X의 3개의 꼭지점의 방향 x 및 방향 y로의 움직임 벡터 변화라고 가정하면, 선형 수식 세트 (11)를 풀어서 계산에 의해
Figure 112019010947117-pat00038
,
Figure 112019010947117-pat00039
,
Figure 112019010947117-pat00040
,
Figure 112019010947117-pat00041
,
Figure 112019010947117-pat00042
, 및
Figure 112019010947117-pat00043
을 획득한다.
Figure 112019010947117-pat00044
수식 세트 (11)
여기서,
Figure 112019010947117-pat00045
이고;
Figure 112019010947117-pat00046
이며;
*
Figure 112019010947117-pat00047
;
Figure 112019010947117-pat00048
이고;
Figure 112019010947117-pat00049
;
Figure 112019010947117-pat00050
이며;
Figure 112019010947117-pat00051
이고;
Figure 112019010947117-pat00052
이며;
Figure 112019010947117-pat00053
이고;
*
Figure 112019010947117-pat00054
이다.
전술한 단계 S1 내지 S4에 기초하여, 이 반복에서 현재 픽쳐 블록 내의 3개의 화소 샘플 각각의 방향 x로의 움직임 벡터 변화
Figure 112019010947117-pat00055
및 화소 샘플 각각의 방향 y로의 움직임 벡터 변화
Figure 112019010947117-pat00056
가 움직임 추정에 의하여 획득될 수 있다.
현재 픽쳐 블록 내의 K개의 화소 샘플의 움직임 벡터가 움직임 추정에 의하여 획득될 수 있도록, 하나 이상의 반복이 전술한 단계 S1 내지 S4 내의 반복적인 방식에 기초하여 수행된다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, K개의 화소 샘플의 움직임 벡터 차(motion vector difference, MVD)를 얻기 위해 움직임 추정과 대응하는 MVP에 의하여 획득되는 K개의 화소 샘플의 움직임 벡터 간에는 차감이 추가적으로 수행될 수 있고, K개의 화소 샘플의 MVD가 비디오 비트스트림에 기입될 수 있다.
또한, 구문 엘리먼트(syntactic element) affine_no_MVD_flag가 화소 샘플에 대응하는 MVD를 비디오 비트스트림에 기입할지 여부를 나타내기 위해 사용될 수 있다. 예를 들어, 전술한 K개의 화소 샘플에 대응하는 MVD가 모두 0이면, affine_no_MVD_flag가 참(true)으로 설정될 수 있고, 어떠한 MVD도 비디오 비트스트림에 기입되지 않거나; 또는 전술한 K개의 화소 샘플에 대응하는 MVD가 모두 0인 것이 아니라면, affine_no_MVD_flag가 거짓(false)로 설정될 수 있고, K개의 화소 샘플에 대응하는 MVD가 비디오 비트스트림에 기입된다.
303. 아핀 변환 모델 및 K개의 화소 샘플의 움직임 벡터에 기초하여, 현재 픽쳐 블록 내의 각각의 화소의 움직임 벡터를 계산한다.
현재 예측 블록 X의 크기가 S1×S2라고 추정된다. 좌표가
Figure 112019010947117-pat00057
,
Figure 112019010947117-pat00058
, 및
Figure 112019010947117-pat00059
인 3개의 꼭지점의 움직임 벡터
Figure 112019010947117-pat00060
,
Figure 112019010947117-pat00061
, 및
Figure 112019010947117-pat00062
가 단계 301 및 단계 302를 수행하여 계산된다.
3개의 꼭지점의 좌표 및 움직임 벡터를 아핀 변환 수식 (12)에 대입함으로써, 현재 픽쳐 블록 내의 각각의 화소의 움직임 벡터를 계산할 수 있다. 아핀 변환의 개략도가 도 3e에 도시되어 있다.
좌표가 (x, y)인 화소의 움직임 벡터가 다음과 같이 계산된다:
Figure 112019010947117-pat00063
수식 (12)
또한, 현재 픽쳐 블록 내의 각각의 화소의 움직임 정보가 다른 픽쳐 블록에 대한 움직임 벡터 예측을 위해 사용될 수 있기 때문에, 각각의 4×4 블록에 대해서 하나의 움직임 정보가 저장될 수 있고, 각각의 4×4 블록의 움직임 벡터가 좌측 상부 모서리 또는 4×4 블록 내의 임의의 다른 화소 상에 화소의 움직임 정보로서 저장된다.
본 실시형태에서, 아핀 변환 모델이 설명을 위한 비-병진 움직임 모델의 예로서 주로 사용되고, 다른 비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터에 기초하여 현재 픽쳐 블록 내의 각각의 화소의 움직임 벡터를 계산하기 위한 메커니즘도 유사한 원리를 가지고 있지만, 본 실시형태에서 사용되는 공식과는 다른 공식이 이 메커니즘에서 사용될 수 있다는 것을 유의해야 한다. 본 명세서에서는 예를 하나씩 열거하지 않는다.
304. 현재 픽쳐 블록 내의 각각의 화소의 계산된 움직임 벡터에 기초하여, 현재 픽쳐 블록에 대해 화소 값 예측을 수행한다.
또한, 비디오 코딩 중에, 현재 픽쳐 블록의 잔차(residual)가 현재 픽쳐 블록의 원래의 화소 값 및 화소 값 예측에 의하여 획득되는 현재 픽쳐 블록의 예측된 화소 값을 이용하여 획득될 수 있고, 현재 픽쳐 블록의 잔차가 비디오 비트스트림에 기입될 수 있다.
본 실시형태의 과제 해결수단에서, 현재 픽쳐 블록에 대해 화소 값 예측이 수행되는 동안, K개의 화소 샘플의 결정된 움직임 벡터 예측자가 비-병진 움직임 모델에 기초하여 참조된다는 것을 알 수 있을 것이다. K개의 화소 샘플은 현재 픽쳐 블록 내의 제1 꼭지각 화소 샘플을 포함한다. K개의 화소 샘플의 움직임 벡터 예측자가 예측을 위해 직접 사용되고, K개의 화소 샘플 내의 제1 꼭지각 화소 샘플의 움직임 벡터 예측자가 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 기초하여 획득되며, K개의 화소 샘플의 움직임 벡터 예측자를 위한 단 하나의 선택적인 경우만이 존재한다. 따라서, 종래의 기술에서 사용되는, K개의 화소 샘플의 움직임 벡터 예측자가 K개의 화소 샘플의 다수의 선택적인 움직임 벡터 예측자 세트로부터 대규모 계산에 의하여 선택되는 메커니즘이 포기된다. 이렇게 함으로써, 비트스트림 내의 움직임 정보 예측자의 선택 정보를 전달하는 것을 방지하는 데 도움이 되고, 코딩 효율을 높이는 데 도움이 되며, 또한 비-병진 움직임 모델에 기반하는 픽쳐 예측의 계산 복잡도를 감소시키는 데 도움이 된다.
또한, 현재 픽쳐 블록 내의 K개의 화소 샘플의 MVP의 예측 방향이 정규화되고, 참조 프레임 인덱스가 처리되며, K개의 화소 샘플의 MVP에 대응하는 움직임 벡터가 참조 프레임 인덱스에 따라 스케일 조절되어 동일한 참조 프레임에 매핑된다. 또한, 현재 픽쳐 블록 내의 각각의 화소의 움직임 벡터가, 아핀 변환 공식을 이용하여 K개의 화소 샘플의 최적의 움직임 벡터에 따라 계산될 수 있다. 전술한 해결수단은, 비디오가 비-병진 특징의 컨텐츠, 예를 들어 렌즈 주밍(lens zooming), 물체 변형(object deformation), 또는 이동 물체 회전(moving object rotation)을 포함하는 경우 현재 비디오 코딩 표준에서 프레임 간 예측 정확도가 낮다는 문제를 해결하는 데 도움이 된다. 또한, 종래 기술에서 제안된 아핀 변환 기술이 다중 방향의 예측 및 복수의 참조 프레임 기반의 예측에 거의 적용되지 않는 불리한 점이 극복되며, 이로 인해 일시적인 중복을 제거하기 위해 비디오 시퀀스 간의 임시 상호 연관관계를 충분히 이용하는 데 도움이 됨으로써, 코딩 효율을 향상시킨다.
도 4a를 참조하면, 도 4a는 본 발명의 다른 실시형태에 따른 또 다른 픽쳐 예측 방법의 개략적인 흐름도이다. 도 4a의 예에 도시된 바와 같이, 본 발명의 다른 실시형태에서 제공되는 또 다른 픽쳐 예측 방법은 다음의 단계를 포함할 수 있다.
401. 현재 픽쳐 블록 내의 K개의 화소 샘플의 움직임 벡터 예측자를 결정한다.
본 실시형태의 예에서, K=3이다.
본 실시형태에서, K개의 화소 샘플은 현재 픽쳐 블록의 좌측 상부 꼭지점, 우측 상부 꼭지점, 및 좌측 하부 꼭지점을 포함한다.
도 4b의 예에 도시된 바와 같이, 현재 픽쳐 블록의 좌측 상부 꼭지점의 움직임 벡터 예측자는 현재 픽쳐 블록의 좌측 상부와 인접한 픽쳐 블록 A의 움직임 벡터와 같다. 현재 픽쳐 블록의 우측 상부 꼭지점의 움직임 벡터 예측자는 현재 픽쳐 블록의 위에서 인접한 픽쳐 블록 B의 움직임 벡터와 같다. 현재 픽쳐 블록의 좌측 하부 꼭지점의 움직임 벡터 예측자는 현재 픽쳐 블록의 좌측에서 인접한 픽쳐 블록의 움직임 벡터 D와 같을 수 있다.
402. K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K개의 화소 샘플의 움직임 벡터 예측자를 이용하여 K개의 화소 샘플에 대해 움직임 추정을 수행한다.
K개의 화소 샘플 중 K1개의 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임이 참조 프레임 Y1이 아닌 경우, K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K1개의 화소 샘플의 움직임 벡터 예측자를 이용하여 K개의 화소 샘플에 대해 움직임 추정을 수행하는 것은, K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K1개의 화소 샘플의 움직임 벡터 예측자를 참조 프레임 Y1로 스케일 조절하고(즉, K1개의 화소 샘플의 움직임 벡터 예측자에 대해 정규화 처리를 수행하고); K2개의 화소 샘플의 움직임 벡터 예측자 및 K1개의 화소 샘플의 움직임 벡터 예측자로서, 참조 프레임 Y1로 스케일 조절된 움직임 벡터 예측자를 이용하여 K개의 화소 샘플에 대해 움직임 추정을 수행하는 것을 포함한다.
K1개의 화소 샘플의 움직임 벡터 예측자에 대해 정규화 처리가 수행되기 전에, 화소 샘플 i의 움직임 벡터 예측자의 참조 프레임 인덱스가 먼저 수정될 수 있다. 화소 샘플 i는 K개의 화소 샘플 중에서 현재 픽쳐 블록의 좌측 상부 꼭지점을 제외한 임의의 화소 샘플(예를 들어, 좌측 하부 꼭지점 또는 우측 상부 꼭지점)이다. 화소 샘플 i의 움직임 벡터 예측자에 대응하는 예측 방향이 좌측 상부 꼭지점의 움직임 벡터 예측자에 대응하는 예측 방향과 다르면(예를 들어, 화소 샘플 i의 움직임 벡터 예측자에 대응하는 예측 방향이 포워드 예측이고, 좌측 상부 꼭지점의 움직임 벡터 예측자에 대응하는 예측 방향이 백워드 예측이거나; 또는 화소 샘플 i의 움직임 벡터 예측자에 대응하는 예측 방향이 백워드 예측이고, 좌측 상부 꼭지점의 움직임 벡터 예측자에 대응하는 예측 방향이 포워드 예측이면), 화소 샘플 i의 움직임 벡터 예측자에 대응하는 참조 프레임 인덱스가 0이다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 움직임 벡터 예측자를 참조 프레임으로 스케일 조절하기 위한 방법은 다음과 같을 수 있다: 현재 코딩 프레임 인덱스가 CurPoc이고, 픽쳐 블록 A의 참조 프레임(즉, 좌측 상부 꼭지점의 MVP에 대응하는 참조 프레임)이 목적지 참조 프레임이라고 추정된다. 목적지 참조 프레임 인덱스가 DesPoc이고, 우측 상부 꼭지점의 MVP 또는 좌측 하부 꼭지점에 대응하는 참조 프레임가 소스 참조 프레임이며, 소스 참조 프레임 인덱스가 SrcPoc이고, 우측 상부 꼭지점 또는 좌측 하부 꼭지점의 움직임 벡터 예측자가 MVP이며, 우측 상부 꼭지점 또는 좌측 하부 꼭지점의 움직임 벡터 예측자로서, 스케일 조절 이후에 획득되는 움직임 벡터 예측자가 MVS이다. MVS는 다음의 수식을 이용하여 계산에 의해 획득될 수 있다:
Figure 112019010947117-pat00064
특히, K개의 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임이 참조 프레임 Y1이면, K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K1개의 화소 샘플의 움직임 벡터 예측자에 대해 정규화 처리가 수행되지 않고(K1개의 화소 샘플의 움직임 벡터 예측자가 정규화된 상태에 있었으므로), K개의 화소 샘플의 움직임 벡터 예측자를 이용하여 K개의 화소 샘플에 대해 움직임 추정이 직접 수행될 수 있다.
선택적으로, K개의 화소 샘플의 움직임 벡터를 획득하기 위해 K개의 화소 샘플에 대해 움직임 추정이 수행된다는 것은, K개의 화소 샘플의 움직임 벡터를 획득하기 위해, 반복 검색 알고리즘에 기초하여 K개의 화소 샘플에 대해 움직임 추정이 수행된다는 것을 포함할 수 있다. 특정 반복 검색 알고리즘의 경우, 전술한 실시형태에서의 관련 설명을 참조하라. 여기서는 세부사항에 대해 다시 설명하지 않는다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, K개의 화소 샘플의 MVD를 획득하기 위해, 움직임 추정 및 대응하는 MVP에 의하여 획득되는 K개의 화소 샘플의 움직임 벡터 사이에는 차감이 추가적으로 수행될 수 있고, K개의 화소 샘플의 MVD가 비디오 비트스트림에 기입될 수 있다.
또한, 구문 엘리먼트 affine_no_MVD_flag가 화소 샘플에 대응하는 MVD를 비디오 비트스트림에 기입할지 여부를 나타내기 위해 사용될 수 있다. 예를 들어, 전술한 K개의 화소 샘플에 대응하는 MVD가 모두 0이면, affine_no_MVD_flag가 참으로 설정될 수 있고, 어떠한 MVD도 비디오 비트스트림에 기입되지 않거나; 또는 전술한 K개의 화소 샘플에 대응하는 MVD가 모두 0인 것이 아니라면, affine_no_MVD_flag가 거짓으로 설정될 수 있고, K개의 화소 샘플에 대응하는 MVD가 비디오 비트스트림에 기입된다.
403. 아핀 변환 모델 및 K개의 화소 샘플의 움직임 벡터에 기초하여, 현재 픽쳐 블록 내의 각각의 화소의 움직임 벡터를 계산한다.
또한, 현재 픽쳐 블록 내의 각각의 화소의 움직임 정보가 다른 픽쳐 블록에 대한 움직임 벡터 예측을 위해 사용될 수 있기 때문에, 각각의 4×4(또는 8×8) 블록에 대해서 하나의 움직임 정보가 저장될 수 있고, 각각의 4×4(또는 8×8) 블록의 움직임 벡터가 좌측 상부 모서리 또는 4×4(또는 8×8) 블록 내의 임의의 다른 화소 상에 화소의 움직임 정보로서 저장된다.
움직임 정보는 움직임 벡터, 움직임 벡터에 대응하는 예측 방향, 및 움직임 벡터에 대응하는 참조 프레임 인덱스를 포함할 수 있다.
본 실시형태에서, 아핀 변환 모델이 설명을 위한 비-병진 움직임 모델의 예로서 주로 사용되고, 다른 비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터에 기초하여 현재 픽쳐 블록 내의 각각의 화소의 움직임 벡터를 계산하기 위한 메커니즘도 유사한 원리를 가지고 있지만, 본 실시형태에서 사용되는 공식과는 다른 공식이 이 메커니즘에 사용될 수 있다는 것을 유의해야 한다. 본 명세서에서는 예를 하나씩 열거하지 않는다.
404. 현재 픽쳐 블록 내의 각각의 화소의 계산된 움직임 벡터에 기초하여, 현재 픽쳐 블록에 대해 화소 값 예측을 수행한다.
또한, 비디오 코딩 중에, 현재 픽쳐 블록의 잔차가 현재 픽쳐 블록의 원래의 화소 값 및 화소 값 예측에 의하여 획득되는 현재 픽쳐 블록의 예측된 화소 값을 이용하여 획득될 수 있고, 현재 픽쳐 블록의 잔차가 비디오 비트스트림에 기입될 수 있다.
본 실시형태의 과제 해결수단에서, 현재 픽쳐 블록에 대해 화소 값 예측이 수행되는 동안, K개의 화소 샘플의 결정된 움직임 벡터 예측자가 비-병진 움직임 모델에 기초하여 참조된다는 것을 알 수 있을 것이다. K개의 화소 샘플은 현재 픽쳐 블록 내의 제1 꼭지각 화소 샘플을 포함한다. K개의 화소 샘플의 움직임 벡터 예측자가 예측을 위해 직접 사용되고, K개의 화소 샘플 내의 제1 꼭지각 화소 샘플의 움직임 벡터 예측자가 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 기초하여 획득되며, K개의 화소 샘플의 움직임 벡터 예측자를 위한 단 하나의 선택적인 경우만이 존재한다. 따라서, 종래의 기술에서 사용되는, K개의 화소 샘플의 움직임 벡터 예측자가 K개의 화소 샘플의 다수의 선택적인 움직임 벡터 예측자 세트로부터 대규모 계산에 의하여 선택되는 메커니즘이 포기된다. 이렇게 함으로써, 비트스트림 내의 움직임 정보 예측자의 선택 정보를 전달하는 것을 방지하는 데 도움이 되고, 코딩 효율을 높이는 데 도움이 되며, 또한 비-병진 움직임 모델에 기반하는 픽쳐 예측의 계산 복잡도를 감소시키는 데 도움이 된다.
또한, 현재 픽쳐 블록 내의 K개의 화소 샘플의 MVP의 예측 방향이 정규화되고, 참조 프레임 인덱스가 처리되며, K개의 화소 샘플의 MVP에 대응하는 움직임 벡터가 참조 프레임 인덱스에 따라 스케일 조절되어 동일한 참조 프레임에 매핑된다. 또한, 현재 픽쳐 블록 내의 각각의 화소의 움직임 벡터가, 아핀 변환 공식을 이용하여 K개의 화소 샘플의 최적의 움직임 벡터에 따라 계산될 수 있다. 전술한 해결수단은, 비디오가 비-병진 특징의 컨텐츠, 예를 들어 렌즈 주밍, 물체 변형, 또는 이동 물체 회전을 포함하는 경우 현재 비디오 코딩 표준에서 프레임 간 예측 정확도가 낮다는 문제를 해결하는 데 도움이 된다. 또한, 종래 기술에서 제안된 아핀 변환 기술이 다중 방향의 예측 및 복수의 참조 프레임 기반의 예측에 거의 적용되지 않는 불리한 점이 극복되며, 이로 인해 일시적인 중복을 제거하기 위해 비디오 시퀀스 간의 임시 상호 연관관계를 충분히 이용하는 데 도움이 됨으로써, 코딩 효율을 향상시킨다.
도 5를 참조하면, 도 5는 본 발명의 다른 실시형태에 따른 또 다른 픽쳐 예측 방법의 개략적인 흐름도이다. 도 5의 예에 도시된 바와 같이, 본 발명의 다른 실시형태에서 제공되는 또 다른 픽쳐 예측 방법은 다음의 단계를 포함할 수 있다.
501. 현재 픽쳐 블록 내의 K개의 화소 샘플의 움직임 벡터 예측자를 결정한다.
본 실시형태의 예에서, K=3이다.
본 실시형태에서, K개의 화소 샘플은 현재 픽쳐 블록의 좌측 상부 꼭지점, 우측 상부 꼭지점, 및 좌측 하부 꼭지점을 포함한다.
단계 501에서 현재 픽쳐 블록 내의 K개의 화소 샘플의 움직임 벡터 예측자를 결정하는 구체적인 방식에 대해서는, 전술한 실시형태의 임의의 방식을 참조하라.
502. 전술한 K개의 화소 샘플의 움직임 벡터 예측자를 전술한 K개의 화소 샘플의 움직임 벡터로서 이용하고, 아핀 변환 모델 및 K개의 화소 샘플의 움직임 벡터에 기초하여 현재 픽쳐 블록 내의 각각의 화소의 움직임 벡터를 계산한다.
또한, 현재 픽쳐 블록 내의 각각의 화소의 움직임 정보가 다른 픽쳐 블록에 대한 움직임 벡터 예측을 위해 사용될 수 있기 때문에, 각각의 4×4(또는 8×8) 블록에 대해서 하나의 움직임 정보가 저장될 수 있고, 각각의 4×4(또는 8×8) 블록의 움직임 벡터가 좌측 상부 모서리 또는 4×4(또는 8×8) 블록 내의 임의의 다른 화소 상에 화소의 움직임 정보로서 저장된다.
움직임 정보는 움직임 벡터, 움직임 벡터에 대응하는 예측 방향, 및 움직임 벡터에 대응하는 참조 프레임 인덱스를 포함할 수 있다.
본 실시형태에서, 아핀 변환 모델이 설명을 위한 비-병진 움직임 모델의 예로서 주로 사용되고, 다른 비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터에 기초하여 현재 픽쳐 블록 내의 각각의 화소의 움직임 벡터를 계산하기 위한 메커니즘도 유사한 원리를 가지고 있지만, 본 실시형태에서 사용되는 공식과는 다른 공식이 이 메커니즘에 사용될 수 있다는 것을 유의해야 한다. 본 명세서에서는 예를 하나씩 열거하지 않는다.
503. 현재 픽쳐 블록 내의 각각의 화소의 계산된 움직임 벡터에 기초하여, 현재 픽쳐 블록에 대해 화소 값 예측을 수행한다.
또한, 비디오 코딩 중에, 현재 픽쳐 블록의 잔차가 현재 픽쳐 블록의 원래의 화소 값 및 화소 값 예측에 의하여 획득되는 현재 픽쳐 블록의 예측된 화소 값을 이용하여 획득될 수 있고, 현재 픽쳐 블록의 잔차가 비디오 비트스트림에 기입될 수 있다.
본 실시형태의 과제 해결수단에서, 현재 픽쳐 블록에 대해 화소 값 예측이 수행되는 동안, K개의 화소 샘플의 결정된 움직임 벡터 예측자가 비-병진 움직임 모델에 기초하여 참조된다는 것을 알 수 있을 것이다. K개의 화소 샘플은 현재 픽쳐 블록 내의 제1 꼭지각 화소 샘플을 포함한다. K개의 화소 샘플의 움직임 벡터 예측자가 예측을 위해 직접 사용되고, K개의 화소 샘플 내의 제1 꼭지각 화소 샘플의 움직임 벡터 예측자가 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 기초하여 획득되며, K개의 화소 샘플의 움직임 벡터 예측자를 위한 단 하나의 선택적인 경우만이 존재한다. 따라서, 종래의 기술에서 사용되는, K개의 화소 샘플의 움직임 벡터 예측자가 K개의 화소 샘플의 다수의 선택적인 움직임 벡터 예측자 세트로부터 대규모 계산에 의하여 선택되는 메커니즘이 포기된다. 이렇게 함으로써, 비트스트림 내의 움직임 정보 예측자의 선택 정보를 전달하는 것을 방지하는 데 도움이 되고, 코딩 효율을 높이는 데 도움이 되며, 또한 비-병진 움직임 모델에 기반하는 픽쳐 예측의 계산 복잡도를 감소시키는 데 도움이 된다.
또한, 현재 픽쳐 블록 내의 K개의 화소 샘플의 MVP의 예측 방향이 정규화되고, 참조 프레임 인덱스가 처리되며, K개의 화소 샘플의 MVP에 대응하는 움직임 벡터가 참조 프레임 인덱스에 따라 스케일 조절되어 동일한 참조 프레임에 매핑된다. 전술한 해결수단은, 비디오가 비-병진 특징(예를 들어, 렌즈 주밍, 물체 변형, 또는 이동 물체 회전)의 컨텐츠를 포함하는 경우 현재 비디오 코딩 표준에서 프레임 간 예측 정확도가 낮다는 문제를 해결하는 데 도움이 된다. 또한, 종래 기술에서 제안된 아핀 변환 기술이 다중 방향의 예측 및 복수의 참조 프레임 기반의 예측에 거의 적용되지 않는 불리한 점이 극복되며, 이로 인해 일시적인 중복을 제거하기 위해 비디오 시퀀스 간의 임시 상호 연관관계를 충분히 이용하는 데 도움이 됨으로써, 코딩 효율을 향상시킨다.
도 6을 참조하면, 도 6은 본 발명의 다른 실시형태에 따른 또 다른 픽쳐 예측 방법의 개략적인 흐름도이다. 도 6의 예에 도시된 바와 같이, 본 발명의 다른 실시형태에서 제공되는 또 다른 픽쳐 예측 방법은 다음의 단계를 포함할 수 있다.
601. 현재 픽쳐 블록 내의 K개의 화소 샘플의 움직임 벡터 예측자를 결정한다.
본 실시형태의 예에서, K=3이다.
본 실시형태에서, K개의 화소 샘플은 현재 픽쳐 블록의 좌측 상부 꼭지점, 우측 상부 꼭지점, 및 좌측 하부 꼭지점을 포함한다.
단계 601에서 현재 픽쳐 블록 내의 K개의 화소 샘플의 움직임 벡터 예측자를 결정하는 구체적인 방식에 대해서는, 전술한 실시형태의 임의의 방식을 참조하라.
602. K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K개의 화소 샘플의 움직임 벡터 예측자를 이용하여 K개의 화소 샘플에 대해 움직임 추정을 수행한다.
K개의 화소 샘플 중 K1개의 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임이 참조 프레임 Y1이 아닌 경우, K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K개의 화소 샘플의 움직임 벡터 예측자를 이용하여 K개의 화소 샘플에 대해 움직임 추정을 수행하는 것은, K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K1개의 화소 샘플의 움직임 벡터 예측자를 참조 프레임 Y1로 스케일 조절하고(즉, K1개의 화소 샘플의 움직임 벡터 예측자에 대해 정규화 처리를 수행하고); K2개의 화소 샘플의 움직임 벡터 예측자 및 K1개의 화소 샘플의 움직임 벡터 예측자로서, 참조 프레임 Y1로 스케일 조절된 움직임 벡터 예측자를 이용하여 K개의 화소 샘플에 대해 움직임 추정을 수행하는 것을 포함한다.
K1개의 화소 샘플의 움직임 벡터 예측자에 대해 정규화 처리가 수행되기 전에, 화소 샘플 i의 움직임 벡터 예측자의 참조 프레임 인덱스가 먼저 수정될 수 있다. 화소 샘플 i는 K개의 화소 샘플 중에서 현재 픽쳐 블록의 좌측 상부 꼭지점을 제외한 임의의 화소 샘플(예를 들어, 좌측 하부 꼭지점 또는 우측 상부 꼭지점)이다. 화소 샘플 i의 움직임 벡터 예측자에 대응하는 예측 방향이 좌측 상부 꼭지점의 움직임 벡터 예측자에 대응하는 예측 방향과 다르면(예를 들어, 화소 샘플 i의 움직임 벡터 예측자에 대응하는 예측 방향이 포워드 예측이고, 좌측 상부 꼭지점의 움직임 벡터 예측자에 대응하는 예측 방향이 백워드 예측이거나; 또는 화소 샘플 i의 움직임 벡터 예측자에 대응하는 예측 방향이 백워드 예측이고, 좌측 상부 꼭지점의 움직임 벡터 예측자에 대응하는 예측 방향은 포워드 예측이면), 화소 샘플 i의 움직임 벡터 예측자에 대응하는 참조 프레임 인덱스가 0이다.
특히, K개의 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임이 참조 프레임 Y1이면, K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K1개의 화소 샘플의 움직임 벡터 예측자에 대해 정규화 처리가 수행되지 않고(K1개의 화소 샘플의 움직임 벡터 예측자가 정규화된 상태에 있었으므로), K개의 화소 샘플의 움직임 벡터 예측자를 이용하여 K개의 화소 샘플에 대해 움직임 추정이 직접 수행될 수 있다.
선택적으로, K개의 화소 샘플의 움직임 벡터를 획득하기 위해 K개의 화소 샘플에 대해 움직임 추정이 수행된다는 것은, K개의 화소 샘플의 움직임 벡터를 획득하기 위해 반복 검색 알고리즘에 기초하여 K개의 화소 샘플에 대해 움직임 추정이 수행된다는 것을 포함할 수 있다. 특정 반복 검색 알고리즘의 경우, 전술한 실시형태에서의 관련 설명을 참조하라. 여기서는 세부사항에 대해 다시 설명하지 않는다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, K개의 화소 샘플의 MVD를 획득하기 위해, 움직임 추정 및 대응하는 MVP에 의하여 획득되는 K개의 화소 샘플의 움직임 벡터 사이에는 차감이 추가적으로 수행될 수 있고, K개의 화소 샘플의 MVD가 비디오 비트스트림에 기입될 수 있다.
또한, 구문 엘리먼트 affine_no_MVD_flag가 화소 샘플에 대응하는 MVD를 비디오 비트스트림에 기입할지 여부를 나타내기 위해 사용될 수 있다. 예를 들어, 전술한 K개의 화소 샘플에 대응하는 MVD가 모두 0이면, affine_no_MVD_flag가 참으로 설정될 수 있고, 어떠한 MVD도 비디오 비트스트림에 기입되지 않거나; 또는 전술한 K개의 화소 샘플에 대응하는 MVD가 모두 0인 것이 아니라면, affine_no_MVD_flag가 거짓으로 설정될 수 있고, K개의 화소 샘플에 대응하는 MVD가 비디오 비트스트림에 기입된다.
603. 아핀 변환 모델 및 K개의 화소 샘플의 움직임 벡터에 기초하여, 현재 픽쳐 블록 내의 각각의 화소의 움직임 벡터를 계산한다.
또한, 현재 픽쳐 블록 내의 각각의 화소의 움직임 정보가 다른 픽쳐 블록에 대한 움직임 벡터 예측을 위해 사용될 수 있기 때문에, 각각의 4×4(또는 8×8) 블록에 대해서 하나의 움직임 정보가 저장될 수 있고, 각각의 4×4(또는 8×8) 블록의 움직임 벡터가 좌측 상부 모서리 또는 4×4(또는 8×8) 블록 내의 임의의 다른 화소 상에 화소의 움직임 정보로서 저장된다.
움직임 정보는 움직임 벡터, 움직임 벡터에 대응하는 예측 방향, 및 움직임 벡터에 대응하는 참조 프레임 인덱스를 포함할 수 있다.
본 실시형태에서, 아핀 변환 모델이 설명을 위한 비-병진 움직임 모델의 예로서 주로 사용되고, 다른 비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터에 기초하여 현재 픽쳐 블록 내의 각각의 화소의 움직임 벡터를 계산하기 위한 메커니즘도 유사한 원리를 가지고 있지만, 본 실시형태에서 사용되는 공식과는 다른 공식이 이 메커니즘에 사용될 수 있다는 것을 유의해야 한다. 본 명세서에서는 예를 하나씩 열거하지 않는다.
604. 현재 예측 단위에 대한, 아핀 변환-기반 프레임 간 예측 모드(단계 601 내지 단계 603)를 이용하는 레이트-왜곡 비용을 계산하고, 레이트-왜곡 비용을 HEVC 프레임 간 예측 모드를 이용하는 계산된 레이트-왜곡 비용과 비교한다.
아핀 변환-기반 프레임 간 예측 모드를 이용하는 레이트-왜곡 비용이 HEVC 프레임 간 예측 모드를 이용하는 레이트-왜곡 비용보다 작으면, 현재 픽쳐 블록의 최적 프레임 간 예측 모드는 아핀 변환 기반의 프레임 간 예측 모드로 설정된다. 구체적으로, 현재 픽쳐 블록의 최적 프레임 간 예측 모드가 아핀 변환-기반 프레임 간 예측 모드라는 것을 나타내기 위해, 구문 엘리먼트 affine_MC_flag가 참으로 설정될 수 있다. 아핀 변환-기반 프레임 간 예측 모드를 이용하는 레이트-왜곡 비용이 HEVC 프레임 간 예측 모드를 이용하는 레이트-왜곡 비용보다 작지 않으면, 현재 픽쳐 블록의 최적 프레임 간 예측 모드가 HEVC 프레임 간 예측 모드라는 것을 나타내기 위해, 구문 엘리먼트 affine_MC_flag가 거짓으로 설정된다.
605. 현재 픽쳐 블록 내의 각각의 화소의 계산된 움직임 벡터에 기초하여, 현재 픽쳐 블록에 대해 화소 값 예측을 수행한다.
예를 들어, 루미넌스 컴포넌트(luminance component)의 경우, 화소의 움직임 벡터가 1/4 화소 정밀도이면, 각각의 화소의 예측된 화소 값이 HEVC 보간 필터를 이용하여 획득될 수 있거나; 또는 화소의 움직임 벡터가 1/4 화소 정밀도보다 크면, 화소로부터 가장 짧은 거리에 있는 4개의 1/4개의 화소의 예측된 화소 값이 HEVC 보간 필터를 이용하여 먼저 획득된 다음, 이선형 보간(bilinear interpolation)이 수행되어 예측된 화소 값을 획득한다. 크로미넌스 컴포넌트(chrominance component)의 경우, 예측된 화소 값이 HEVC 보간 필터를 이용하여 획득된다.
또한, 비디오 코딩 중에, 현재 픽쳐 블록의 잔차가 현재 픽쳐 블록의 원래의 화소 값 및 화소 값 예측에 의하여 획득되는 현재 픽쳐 블록의 예측된 화소 값을 이용하여 획득될 수 있고, 현재 픽쳐 블록의 잔차가 비디오 비트스트림에 기입된다. 구체적으로, 현재 예측 단위의 잔차가 병진운동, 양자화, 및 엔트로피 인코딩을 거친 다음, 비디오 비트스트림에 기입된다.
본 실시형태의 과제 해결수단에서, 현재 픽쳐 블록에 대해 화소 값 예측이 수행되는 동안, K개의 화소 샘플의 결정된 움직임 벡터 예측자가 비-병진 움직임 모델에 기초하여 참조된다는 것을 알 수 있을 것이다. K개의 화소 샘플은 현재 픽쳐 블록 내의 제1 꼭지각 화소 샘플을 포함한다. K개의 화소 샘플의 움직임 벡터 예측자가 예측을 위해 직접 사용되고, K개의 화소 샘플 내의 제1 꼭지각 화소 샘플의 움직임 벡터 예측자가 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 기초하여 획득되며, K개의 화소 샘플의 움직임 벡터 예측자를 위한 단 하나의 선택적인 경우만이 존재한다. 따라서, 종래의 기술에서 사용되는, K개의 화소 샘플의 움직임 벡터 예측자가 K개의 화소 샘플의 다수의 선택적인 움직임 벡터 예측자 세트로부터 대규모 계산에 의하여 선택되는 메커니즘이 포기된다. 이렇게 함으로써, 비트스트림 내의 움직임 정보 예측자의 선택 정보를 전달하는 것을 방지하는 데 도움이 되고, 코딩 효율을 높이는 데 도움이 되며, 또한 비-병진 움직임 모델에 기반하는 픽쳐 예측의 계산 복잡도를 감소시키는 데 도움이 된다.
또한, 현재 픽쳐 블록 내의 K개의 화소 샘플의 MVP의 예측 방향이 정규화되고, 참조 프레임 인덱스가 처리되며, K개의 화소 샘플의 MVP에 대응하는 움직임 벡터가 참조 프레임 인덱스에 따라 스케일 조절되어 동일한 참조 프레임에 매핑된다. 또한, 현재 픽쳐 블록 내의 각각의 화소의 움직임 벡터가, 아핀 변환 공식을 이용하여 K개의 화소 샘플의 최적의 움직임 벡터에 따라 계산될 수 있다. 전술한 해결수단은, 비디오가 비-병진 특징의 컨텐츠, 예를 들어 렌즈 주밍, 물체 변형, 또는 이동 물체 회전을 포함하는 경우 현재 비디오 코딩 표준에서 프레임 간 예측 정확도가 낮다는 문제를 해결하는 데 도움이 된다. 또한, 종래 기술에서 제안된 아핀 변환 기술이 다중 방향의 예측 및 복수의 참조 프레임 기반의 예측에 거의 적용되지 않는 불리한 점이 극복되며, 이로 인해 일시적인 중복을 제거하기 위해 비디오 시퀀스 간의 임시 상호 연관관계를 충분히 이용하는 데 도움이 됨으로써, 코딩 효율을 향상시킨다.
도 7을 참조하면, 도 7은 본 발명의 일 실시형태에 따른 비디오 디코딩 방법의 개략적인 흐름도이다. 도 7의 예에 도시된 바와 같이, 본 발명의 본 실시형태에서 제공되는 비디오 디코딩 방법은 다음의 단계를 포함할 수 있다.
701. 아핀 변환-기반 프레임 간 예측 모드가 현재 픽쳐 블록에 사용되는지 여부를 판정하기 위해, 디코더가 비디오 비트스트림 내의 구문 엘리먼트 affine_MC_flag를 디코딩한다.
702. 아핀 변환-기반 프레임 간 예측 모드가 현재 픽쳐 블록에 사용되면, 디코더가 현재 픽쳐 블록에 사용되는 프레임 간 예측 방향을 결정하기 위해 비디오 비트스트림 내의 구문 엘리먼트 affine_inter_dir_flag를 디코딩한다.
703. 디코더가 구문 엘리먼트 affine_inter_dir_flag에 따라 현재 픽쳐 블록 내의 K개의 화소 샘플의 MVP를 결정한다.
현재 픽쳐 블록 내의 K개의 화소 샘플은 전술한 실시형태 중 하나에서 설명된 현재 픽쳐 블록 내의 K개의 화소 샘플 일 수 있다.
704. 디코더가 현재 픽쳐 블록에 대응하고 있고 비디오 비트스트림 내에 있는 구문 엘리먼트 affine_no_MVD_flag를 디코딩함으로써 현재 픽쳐 블록 내의 K개의 화소 샘플에 대응하는 MVD가 0인지 여부를 결정한다. affine_no_MVD_flag가 참이면, 현재 픽쳐 블록 내의 K개의 화소 샘플에 대응하는 MVD가 모두 0이고, K개의 화소 샘플의 획득된 MVP에 대응하는 움직임 벡터가 K개의 화소 샘플의 움직임 벡터로서 이용될 수 있다는 것을 나타낸다. affine_no_MVD_flag가 거짓이면, K개의 화소 샘플에 대응하는 MVD가 모두 0인 것은 아니고, K개의 화소 샘플에 대응하는 MVD가 별도의 디코딩에 의하여 획득되며, 각각의 화소 샘플에 대응하는 MVD 및 대응하는 MVP가 화소 샘플의 움직임 벡터를 획득하기 위해 추가된다는 것을 나타낸다.
705. 디코더가 현재 픽쳐 블록의 잔차 계수를 디코딩하고, 현재 픽쳐 블록 내의 잔차 화소를 획득하기 위해 역양자화 및 역변환을 수행한다.
706. 디코더가 아핀 변환 모델 및 K개의 화소 샘플의 움직임 벡터에 기초하여 현재 픽쳐 블록 내의 각각의 화소의 움직임 벡터를 계산하고, 현재 픽쳐 블록의 예측된 화소 값을 획득하기 위해 현재 픽쳐 블록 내의 각각의 화소의 계산된 움직임 벡터에 기초하여 현재 픽쳐 블록에 대해 화소 값 예측을 수행한다.
아핀 변환 모델이 설명을 위한 비-병진 움직임 모델의 예로서 주로 사용되고, 다른 비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터에 기초하여 현재 픽쳐 블록 내의 각각의 화소의 움직임 벡터를 계산하기 위한 메커니즘도 유사한 원리를 가지고 있지만, 본 실시형태에서 사용되는 공식과는 다른 공식이 이 메커니즘에 사용될 수 있다는 것을 유의해야 한다. 본 명세서에서는 예를 하나씩 열거하지 않는다.
707. 디코더가 현재 픽쳐 블록 내의 잔차 화소 및 현재 픽쳐 블록의 예측된 화소 값에 따라 현재 픽쳐 블록을 재구성한다.
또한, 현재 픽쳐 블록 내의 각각의 화소의 움직임 정보가 다른 픽쳐 블록에 대한 움직임 벡터 예측을 위해 사용될 수 있기 때문에, 각각의 4×4(또는 8×8) 블록에 대해서 하나의 움직임 정보가 저장될 수 있고, 각각의 4×4(또는 8×8) 블록의 움직임 벡터가 좌측 상부 모서리 또는 4×4(또는 8×8) 블록 내의 임의의 다른 화소 상에 화소의 움직임 정보로서 저장된다.
움직임 정보는 움직임 벡터, 움직임 벡터에 대응하는 예측 방향, 및 움직임 벡터에 대응하는 참조 프레임 인덱스를 포함할 수 있다.
본 실시형태의 과제 해결수단에서, 현재 픽쳐 블록에 대해 화소 값 예측이 수행되는 동안, K개의 화소 샘플의 결정된 움직임 벡터 예측자가 비-병진 움직임 모델에 기초하여 참조된다는 것을 알 수 있을 것이다. K개의 화소 샘플은 현재 픽쳐 블록 내의 제1 꼭지각 화소 샘플을 포함한다. K개의 화소 샘플의 움직임 벡터 예측자가 예측을 위해 직접 사용되고, K개의 화소 샘플 내의 제1 꼭지각 화소 샘플의 움직임 벡터 예측자가 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 기초하여 획득되며, K개의 화소 샘플의 움직임 벡터 예측자를 위한 단 하나의 선택적인 경우만이 존재한다. 따라서, 종래의 기술에서 사용되는, K개의 화소 샘플의 움직임 벡터 예측자가 K개의 화소 샘플의 다수의 선택적인 움직임 벡터 예측자 세트로부터 대규모 계산에 의하여 선택되는 메커니즘이 포기된다. 이렇게 함으로써, 비트스트림 내의 움직임 정보 예측자의 선택 정보를 전달하는 것을 방지하는 데 도움이 되고, 코딩 효율을 높이는 데 도움이 되며, 또한 비-병진 움직임 모델에 기반하는 픽쳐 예측의 계산 복잡도를 감소시키는 데 도움이 된다.
또한, 현재 픽쳐 블록 내의 K개의 화소 샘플의 MVP의 예측 방향이 정규화되고, 참조 프레임 인덱스가 처리되며, K개의 화소 샘플의 MVP에 대응하는 움직임 벡터가 참조 프레임 인덱스에 따라 스케일 조절되어 동일한 참조 프레임에 매핑된다. 또한, 현재 픽쳐 블록 내의 각각의 화소의 움직임 벡터가, 아핀 변환 공식을 이용하여 K개의 화소 샘플의 최적의 움직임 벡터에 따라 계산될 수 있다. 전술한 해결수단은, 비디오가 비-병진 특징의 컨텐츠, 예를 들어 렌즈 주밍, 물체 변형, 또는 이동 물체 회전을 포함하는 경우 현재 비디오 코딩 표준에서 프레임 간 예측 정확도가 낮다는 문제를 해결하는 데 도움이 된다. 또한, 종래 기술에서 제안된 아핀 변환 기술이 다중 방향의 예측 및 복수의 참조 프레임 기반의 예측에 거의 적용되지 않는 불리한 점이 극복되며, 이로 인해 일시적인 중복을 제거하기 위해 비디오 시퀀스 간의 임시 상호 연관관계를 충분히 이용하는 데 도움이 됨으로써, 코딩 효율을 향상시킨다.
최신 비디오 코딩 표준(HEVC)의 인코더 HM11.0 상에서, 본 실시형태에서 제공되는 일부 해결수단에 대해 에뮬레이션 테스트가 수행된다. 예를 들어, 2가지 구성으로 테스트가 수행되는데, 본 발명의 실시형태의 해결수단의 낮은 지연(LDB)과 랜덤 액세스(RA), 및 성능이 HM11.0 해결수단의 성능과 비교된다. 테스트를 위해 아핀 특징이 비교적 명백한 6개의 테스트 시퀀스가 선택된다. 이 테스트 시퀀스가 표 1에 열거되어 있고, 표 2는 에뮬레이션 결과를 보여준다.
(표 1)
Figure 112019010947117-pat00065
(표 2)
Figure 112019010947117-pat00066
성능 카운터 BD-레이트는 QP가 22, 27, 32, 및 37인 4개의 포인트의 결과를 이용하여 계산에 의해 획득될 수 있고, 3개의 컴포넌트 Y, U, 및 V의 피크 신호 대 잡음비(peak signal to noise ratio, PSNR)가 각각 계산된다.
본 발명의 실시형태의 해결수단의 경우, LDB 구성에서는 평균 BD-레이트(Y) 성능이 4.5% 증가하고, RA 구성에서는 평균 BD-레이트(Y) 성능이 5.0% 증가하며 심지어 17.8% 증가한다는 것을 알 수 있을 것이다. 즉, PSNR 품질이 동일한 경우, HM11.0 해결수단과 비교하여, 본 실시형태에서의 해결수단은 최대 17.8%의 비트 레이트를 감소시킬 수 있다.
이하, 다른 비-병진 움직임 모델(non-motion model)에 대해 설명한다.
아핀 변환 모델은 다음의 모델을 만족하는 움직임 모델이다:
Figure 112019010947117-pat00067
여기서, a, b, c, d, e, 및 f는 상수 파라미터이고, (x, y)는 화소의 원래 좌표이며, (
Figure 112019010947117-pat00068
,
Figure 112019010947117-pat00069
)는 화소에 대해 아핀 변환이 수행된 후에 획득된 좌표이고, Vx는 x-축 방향의 움직임 벡터이고, 표는 y-축 방향의 움직임 벡터이다.
회전 움직임 모델은 다음과 같이 나타낼 수 있다:
Figure 112019010947117-pat00070
여기서,
Figure 112019010947117-pat00071
는 회전 각도이고, a 및 b는 파라미터이다.
원근 움직임 모델은 다음과 같이 나타낼 수 있다.
Figure 112019010947117-pat00072
여기서,
Figure 112019010947117-pat00073
는 원근 행렬(perspective matrix)이다.
전단 움직임 모델은 다음과 같이 나타낼 수 있다.
Figure 112019010947117-pat00074
Figure 112019010947117-pat00075
여기서,
Figure 112019010947117-pat00076
는 전단 행렬이고, 다른 것은 상수 파라미터이다.
스케일러블 운동 모델은 다음과 같이 나타낼 수 있다.
Figure 112019010947117-pat00077
여기서,
Figure 112019010947117-pat00078
,
Figure 112019010947117-pat00079
,
Figure 112019010947117-pat00080
, 및
Figure 112019010947117-pat00081
은 상수 파라미터이다.
2차 움직임 모델은 다음과 같이 나타낼 수 있다.
Figure 112019010947117-pat00082
여기서, u 및 v는 원래의 좌표를 나타내고, x 및 y는 병진운동 후 획득된 좌표이며, 나머지는 상수 파라미터이다.
전술한 예는 다양한 움직임 모델 중 일부 가능한 표현 형태의 예일 뿐이고, 물론 다양한 움직임 모델은 다른 형태를 가질 수 있다고 이해할 수 있을 것이다.
다음에서는 전술한 해결수단을 구현하기 위한 관련 장치를 추가로 제공한다.
도 8을 참조하면, 본 발명의 일 실시형태는 픽쳐 예측 장치(800)를 제공하며, 픽쳐 예측 장치(800)는 이하를 포함할 수 있다:
현재 픽쳐 블록 내의 K개의 화소 샘플의 움직임 벡터 예측자를 결정하도록 구성된 결정 유닛(810) - K는 1보다 큰 정수이고, K개의 화소 샘플은 현재 픽쳐 블록 내의 제1 꼭지각 화소 샘플을 포함하며, 제1 꼭지각 화소 샘플의 움직임 벡터 예측자는 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 기초하여 획득되고, 공간적으로 인접한 제1 픽쳐 블록은 제1 꼭지각 화소 샘플과 공간적으로 인접함 -; 및
비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터 예측자에 기초하여 현재 픽쳐 블록에 대해 화소 값 예측을 수행하도록 구성된 예측 유닛(820).
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 제1 꼭지각 화소 샘플의 움직임 벡터 예측자가 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 기초하여 획득된다. 구체적으로, 제1 꼭지각 화소 샘플의 움직임 벡터 예측자가 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터와 같을 수 있거나(즉, 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터가 제1 꼭지각 화소 샘플의 움직임 벡터 예측자로서 사용되거나); 또는 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 대해 사전 결정된 병진 움직임을 수행하여 획득되는 움직임 벡터 예측자가 제1 꼭지각 화소 샘플의 움직임 벡터 예측자로서 사용될 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 비-병진 움직임 모델은 아핀 변환 모델, 또는 포물선 움직임 모델, 또는 회전 움직임 모델, 또는 원근 움직임 모델, 또는 전단 움직임 모델, 또는 스케일러블 움직임 모델 중 하나이다. 비-병진 움직임 모델이 전술한 특정 예에 제한되지 않는다고 이해할 수 있을 것이다.
K개의 화소 샘플을 선택하는 다양한 방식이 있을 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, K개의 화소 샘플은 현재 픽쳐 블록 내의 좌측 상부 화소 샘플, 우측 상부 화소 샘플, 좌측 하부 화소 샘플, 또는 우측 하부 화소 샘플 중 적어도 2개의 화소 샘플을 포함한다.
화소 샘플이 화소 블록이면, 화소 블록의 크기는 예를 들어, 2×2, 1×2, 4×2, 4×4이거나, 또는 다른 크기이다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 현재 픽쳐 블록 내의 좌측 상부 화소 샘플은 현재 픽쳐 블록의 좌측 상부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 좌측 상부 꼭지점을 포함하는 화소 블록이다. 현재 픽쳐 블록 내의 좌측 하부 화소 샘플은 현재 픽쳐 블록의 좌측 하부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 좌측 하부 꼭지점을 포함하는 화소 블록이다. 현재 픽쳐 블록 내의 우측 상부 화소 샘플은 현재 픽쳐 블록의 우측 상부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 우측 상부 꼭지점을 포함하는 화소 블록이다. 현재 픽쳐 블록 내의 우측 하부 화소 샘플은 현재 픽쳐 블록의 우측 하부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 우측 하부 꼭지점을 포함하는 화소 블록이다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, K개의 화소 샘플은 현재 픽쳐 블록 내의 중심 화소 샘플을 더 포함할 수 있다. 현재 픽쳐 블록 내의 중심 화소 샘플은 현재 픽쳐 블록 내의 중심 화소이거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록 내의 중심 화소를 포함하는 화소 블록일 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 공간적으로 인접한 제1 픽쳐 블록은 픽쳐 블록 X1, 픽쳐 블록 X2, 픽쳐 블록 X3, 또는 픽쳐 블록 X4일 수 있다.
현재 픽쳐 블록 내의 좌측 상부 화소 샘플의 움직임 벡터 예측자는 픽쳐 블록 X1의 움직임 벡터에 기초하여 획득될 수 있고, 픽쳐 블록 X1은 현재 픽쳐 블록과 공간적으로 인접한 픽쳐 블록이며, 픽쳐 블록 X1은 현재 픽쳐 블록 내의 좌측 상부 화소 샘플과 공간적으로 인접한다.
현재 픽쳐 블록 내의 우측 상부 화소 샘플의 움직임 벡터 예측자는 픽쳐 블록 X2의 움직임 벡터에 기초하여 획득될 수 있고, 픽쳐 블록 X2는 현재 픽쳐 블록과 공간적으로 인접한 픽쳐 블록이며, 픽쳐 블록 X2는 현재 픽쳐 블록 내의 우측 상부 화소 샘플과 공간적으로 인접한다.
현재 픽쳐 블록 내의 좌측 하부 화소 샘플의 움직임 벡터 예측자는 픽쳐 블록 X3의 움직임 벡터에 기초하여 획득될 수 있고, 픽쳐 블록 X3은 현재 픽쳐 블록과 공간적으로 인접한 픽쳐 블록이며, 픽쳐 블록 X3은 현재 픽쳐 블록 내의 좌측 하부 화소 샘플과 공간적으로 인접한다.
현재 픽쳐 블록 내의 우측 하부 화소 샘플의 움직임 벡터 예측자는 픽쳐 블록 X4의 움직임 벡터에 기초하여 획득될 수 있고, 픽쳐 블록 X4는 현재 픽쳐 블록과 공간적으로 인접한 픽쳐 블록이고, 픽쳐 블록 X4는 현재 픽쳐 블록 내의 우측 하부 화소 샘플 공간적으로 인접한다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 제1 꼭지각 화소 샘플은 현재 픽쳐 블록 내의 좌측 상부 화소 샘플일 수 있고, 공간적으로 인접한 제1 픽쳐 블록은 픽쳐 블록 X1일 수 있다. 픽쳐 블록 X1은 현재 픽쳐 블록의 좌측 상부에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X1은 현재 픽쳐 블록의 좌측에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X1은 현재 픽쳐 블록의 위에서 공간적으로 인접한 픽쳐 블록이다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 픽쳐 블록 X2는 현재 픽쳐 블록의 위에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X2는 현재 픽쳐 블록의 우측 상부에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X2는 현재 픽쳐 블록의 우측에서 공간적으로 인접한 픽쳐 블록이다. 또한 선택적으로, 픽쳐 블록 X2의 움직임 벡터 절대값과 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값이 픽쳐 블록 X5의 움직임 벡터 절대값과 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값보다 크거나 같고, 픽쳐 블록 X5는 우측 상부 꼭지점과 공간적으로 인접한 현재 픽쳐 블록 중의 픽쳐 블록으로서, 픽쳐 블록 X2를 제외한 공간적으로 인접한 나머지 적어도 일부의 픽쳐 블록 중 하나이다. 즉, 픽쳐 블록 X2의 위치가 특정 정책에 기초하여 결정될 수 있거나, 또는 픽쳐 블록 X2의 위치가 직접 합의될 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 픽쳐 블록 X3은 현재 픽쳐 블록의 좌측에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X3은 현재 픽쳐 블록의 좌측 하부에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X3은 현재 픽쳐 블록의 아래에서 공간적으로 인접한 픽쳐 블록이다. 또한 선택적으로, 픽쳐 블록 X3의 움직임 벡터 절대값과 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값이 픽쳐 블록 X6의 움직임 벡터 절대값과 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값보다 크거나 같고, 픽쳐 블록 X6은 좌측 하부 꼭지점과 공간적으로 인접한 현재 픽쳐 블록 중의 픽쳐 블록으로서, 픽쳐 블록 X3을 제외한 공간적으로 인접한 나머지 적어도 일부의 픽쳐 블록 중 하나이다. 즉, 픽쳐 블록 X3의 위치가 특정 정책에 기초하여 결정될 수 있거나, 또는 픽쳐 블록 X3의 위치가 직접 합의될 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 픽쳐 블록 X4는 현재 픽쳐 블록의 우측에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X4는 현재 픽쳐 블록의 우측 하부에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X4는 현재 픽쳐 블록의 아래에서 공간적으로 인접한 픽쳐 블록이다. 또한 선택적으로, 픽쳐 블록 X4의 움직임 벡터 절대값과 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값이 픽쳐 블록 X7의 움직임 벡터 절대값과 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값보다 크거나 같고, 픽쳐 블록 X7은 좌측 하부 꼭지점과 공간적으로 인접한 현재 픽쳐 블록 중의 픽쳐 블록으로서, 픽쳐 블록 X4를 제외한 공간적으로 인접한 나머지 적어도 일부의 픽쳐 블록 중 하나이다.
도 2를 참조하면, 도 2는 픽쳐 블록 X1, 픽쳐 블록 X2, 픽쳐 블록 X3, 및 픽쳐 블록 X4의 몇몇 가능한 위치의 예를 도시하고 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 예측 유닛(820)은, K개의 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임이 참조 프레임 Y1이면, K개의 화소 샘플의 움직임 벡터를 획득하기 위해 K개의 화소 샘플의 움직임 벡터 예측자를 이용하여 K개의 화소 샘플에 대해 움직임 추정을 수행하고; 비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터를 이용하여 현재 픽쳐 블록에 대해 화소 값 예측을 수행하도록 구성될 수 있다.
선택적으로, 예측 유닛(820) 구체적으로, K개의 화소 샘플 중 K1개의 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임이 참조 프레임 Y1이 아닌 경우, K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K1개의 화소 샘플의 움직임 벡터 예측자를 참조 프레임 Y1로 스케일 조절하고, K2개의 화소 샘플의 움직임 벡터 예측자 및 K1개의 화소 샘플의 움직임 벡터 예측자로서, 참조 프레임 Y1로 스케일 조절된 움직임 벡터 예측자를 이용하여 K개의 화소 샘플에 대해 움직임 추정을 수행하며, 비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터를 이용하여 현재 픽쳐 블록에 대해 화소 값 예측을 수행하도록 구성될 수 있다. 여기서, K2개의 화소 샘플은 K개의 화소 샘플 중에서 K1개의 화소 샘플을 제외한 나머지 화소 샘플이고, K1 및 K2는 양의 정수이다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 참조 프레임 Y1은 제1 꼭지각 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임일 수 있거나, 또는 참조 프레임 Y1은 K개의 화소 샘플 내의 다른 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임일 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 화소 샘플 i는 K개의 화소 샘플 중에서 제1 꼭지각 화소 샘플을 제외한 임의의 화소 샘플이고, 화소 샘플 i의 움직임 벡터 예측자에 대응하는 예측 방향이 제1 꼭지각 화소 샘플의 움직임 벡터 예측자에 대응하는 예측 방향과 다르면 화소 샘플 i의 움직임 벡터 예측자에 대응하는 참조 프레임 인덱스가 0이다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 제1 꼭지각 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임 인덱스와 화소 샘플 i에 대응하는 참조 프레임 인덱스가 서로 다르면, 예측 유닛(820)은 화소 샘플 i의 움직임 벡터 예측자를 참조 프레임 Y1로 스케일 조절할 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 예측 유닛(820)은 구체적으로, K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K2개의 화소 샘플의 움직임 벡터 예측자 및 K1개의 화소 샘플의 움직임 벡터 예측자로서, 참조 프레임 Y1로 스케일 조절된 움직임 벡터 예측자를 이용함으로써 반복 검색 알고리즘(또는 다른 타입의 움직임 추정 알고리즘)에 기초하여 K개의 화소 샘플에 대해 움직임 추정을 수행하도록 구성될 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K2개의 화소 샘플의 움직임 벡터 예측자 및 K개의 화소 샘플의 움직임 벡터 예측자로서, 참조 프레임 Y1로 스케일 조절된 움직임 벡터 예측자를 이용하여 K개의 화소 샘플에 대해 움직임 추정을 수행하는 것은, K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K2개의 화소 샘플의 움직임 벡터 예측자 및 K1개의 화소 샘플의 움직임 벡터 예측자로서, 참조 프레임 Y1로 스케일 조절된 움직임 벡터 예측자를 이용함으로써 반복 검색 알고리즘에 기초하여 K개의 화소 샘플에 대해 움직임 추정을 수행하는 것을 포함한다.
픽쳐 예측 장치(800)는 비디오 코딩 장치에 적용되거나, 또는 픽쳐 예측 장치(800)는 비디오 디코딩 장치에 적용된다.
본 실시형태에서의 픽쳐 예측 장치(800) 내의 모든 기능적인 모듈의 기능이 전술한 방법 실시형태의 방법에 따라 구체적으로 구현될 수 있다는 것이 이해될 수 있을 것이다. 구체적인 구현 프로세스에 대해서는, 전술한 방법 실시형태에서의 관련된 설명을 참조하고, 여기서는 세부사항에 대해 다시 설명하지 않는다. 픽쳐 예측 장치(800)는 비디오를 출력하고 재생할 필요가 있는 임의의 장치, 예를 들어 랩탑 컴퓨터, 태블릿 컴퓨터, 개인용 컴퓨터, 또는 휴대폰일 수 있다.
본 실시형태의 과제 해결수단에서, 현재 픽쳐 블록에 대해 화소 값 예측이 수행되는 동안, K개의 화소 샘플의 결정된 움직임 벡터 예측자가 비-병진 움직임 모델에 기초하여 참조된다는 것을 알 수 있을 것이다. K개의 화소 샘플은 현재 픽쳐 블록 내의 제1 꼭지각 화소 샘플을 포함한다. K개의 화소 샘플의 움직임 벡터 예측자가 예측을 위해 직접 사용되고, K개의 화소 샘플 내의 제1 꼭지각 화소 샘플의 움직임 벡터 예측자가 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 기초하여 획득되며, K개의 화소 샘플의 움직임 벡터 예측자를 위한 단 하나의 선택적인 경우만이 존재한다. 따라서, 종래의 기술에서 사용되는, K개의 화소 샘플의 움직임 벡터 예측자가 K개의 화소 샘플의 다수의 선택적인 움직임 벡터 예측자 세트로부터 대규모 계산에 의하여 선택되는 메커니즘이 포기된다. 이렇게 함으로써, 비트스트림 내의 움직임 정보 예측자의 선택 정보를 전달하는 것을 방지하는 데 도움이 되고, 코딩 효율을 높이는 데 도움이 되며, 또한 비-병진 움직임 모델에 기반하는 픽쳐 예측의 계산 복잡도를 감소시키는 데 도움이 된다.
또한, 공간적으로 인접한 제1 픽쳐 블록은 제1 꼭지각 화소 샘플과 공간적으로 인접하고, 현재 픽쳐 블록과 공간적으로 인접한 제1 픽쳐 블록이 사전 결정된다(즉, 현재 픽쳐 블록과 공간적으로 인접한 제1 픽쳐 블록이 미리 협의되거나 설정된다고 간주될 수 있다). 이렇게 함으로써, K개의 화소 샘플의 움직임 벡터 예측자를 빠르게 결정하는 데 도움이 된다. 또한, 픽쳐 블록 간의 공간적 상관관계를 최대한 이용하여 중복을 제거하므로, 코딩 효율을 향상시키는 데 도움이 된다.
도 9를 참조하면, 도 9는 본 발명의 일 실시형태에 따른 픽쳐 예측 장치(900)의 개략도이다. 픽쳐 예측 장치(900)는 적어도 하나의 버스(901), 버스(901)에 연결된 적어도 하나의 프로세서(902), 및 버스(901)에 연결된 적어도 하나의 메모리(903)를 포함할 수 있다.
프로세서(902)는 버스(901)를 이용하여 메모리(903)에 저장된 코드를 호출함으로써, 현재 픽쳐 블록 내의 K개의 화소 샘플의 움직임 벡터 예측자를 결정하고 - 여기서, K는 1보다 큰 정수이고, K개의 화소 샘플은 현재 픽쳐 블록 내의 제1 꼭지각 화소 샘플을 포함하며, 제1 꼭지각 화소 샘플의 움직임 벡터 예측자는 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 기초하여 획득되고, 공간적으로 인접한 제1 픽쳐 블록은 제1 꼭지각 화소 샘플과 공간적으로 인접함 -; 비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터 예측자에 기초하여 현재 픽쳐 블록에 대해 화소 값 예측을 수행한다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 제1 꼭지각 화소 샘플의 움직임 벡터 예측자가 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 기초하여 획득된다. 구체적으로, 제1 꼭지각 화소 샘플의 움직임 벡터 예측자가 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터와 같을 수 있거나(즉, 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터가 제1 꼭지각 화소 샘플의 움직임 벡터 예측자로서 사용되거나); 또는 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 대해 사전 결정된 병진 움직임을 수행하여 획득되는 움직임 벡터 예측자가 제1 꼭지각 화소 샘플의 움직임 벡터 예측자로서 사용될 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 비-병진 움직임 모델은 아핀 변환 모델, 또는 포물선 움직임 모델, 또는 회전 움직임 모델, 또는 원근 움직임 모델, 또는 전단 움직임 모델, 또는 스케일러블 움직임 모델 중 하나이다. 비-병진 움직임 모델이 전술한 특정 예에 제한되지 않는다고 이해할 수 있을 것이다.
K개의 화소 샘플을 선택하는 다양한 방식이 있을 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, K개의 화소 샘플은 현재 픽쳐 블록 내의 좌측 상부 화소 샘플, 우측 상부 화소 샘플, 좌측 하부 화소 샘플, 또는 우측 하부 화소 샘플 중 적어도 2개의 화소 샘플을 포함한다.
화소 샘플이 화소 블록이면, 화소 블록의 크기는 예를 들어, 2×2, 1×2, 4×2, 4×4이거나, 또는 다른 크기이다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 현재 픽쳐 블록 내의 좌측 상부 화소 샘플은 현재 픽쳐 블록의 좌측 상부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 좌측 상부 꼭지점을 포함하는 화소 블록이다. 현재 픽쳐 블록 내의 좌측 하부 화소 샘플은 현재 픽쳐 블록의 좌측 하부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 좌측 하부 꼭지점을 포함하는 화소 블록이다. 현재 픽쳐 블록 내의 우측 상부 화소 샘플은 현재 픽쳐 블록의 우측 상부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 우측 상부 꼭지점을 포함하는 화소 블록이다. 현재 픽쳐 블록 내의 우측 하부 화소 샘플은 현재 픽쳐 블록의 우측 하부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 우측 하부 꼭지점을 포함하는 화소 블록이다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, K개의 화소 샘플은 현재 픽쳐 블록 내의 중심 화소 샘플을 더 포함할 수 있다. 현재 픽쳐 블록 내의 중심 화소 샘플은 현재 픽쳐 블록 내의 중심 화소이거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록 내의 중심 화소를 포함하는 화소 블록일 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 공간적으로 인접한 제1 픽쳐 블록은 픽쳐 블록 X1, 픽쳐 블록 X2, 픽쳐 블록 X3, 또는 픽쳐 블록 X4일 수 있다.
현재 픽쳐 블록 내의 좌측 상부 화소 샘플의 움직임 벡터 예측자는 픽쳐 블록 X1의 움직임 벡터에 기초하여 획득될 수 있고, 픽쳐 블록 X1은 현재 픽쳐 블록과 공간적으로 인접한 픽쳐 블록이며, 픽쳐 블록 X1은 현재 픽쳐 블록 내의 좌측 상부 화소 샘플과 공간적으로 인접한다.
현재 픽쳐 블록 내의 우측 상부 화소 샘플의 움직임 벡터 예측자는 픽쳐 블록 X2의 움직임 벡터에 기초하여 획득될 수 있고, 픽쳐 블록 X2는 현재 픽쳐 블록과 공간적으로 인접한 픽쳐 블록이며, 픽쳐 블록 X2는 현재 픽쳐 블록 내의 우측 상부 화소 샘플과 공간적으로 인접한다.
현재 픽쳐 블록 내의 좌측 하부 화소 샘플의 움직임 벡터 예측자는 픽쳐 블록 X3의 움직임 벡터에 기초하여 획득될 수 있고, 픽쳐 블록 X3은 현재 픽쳐 블록과 공간적으로 인접한 픽쳐 블록이며, 픽쳐 블록 X3은 현재 픽쳐 블록 내의 좌측 하부 화소 샘플과 공간적으로 인접한다.
현재 픽쳐 블록 내의 우측 하부 화소 샘플의 움직임 벡터 예측자는 픽쳐 블록 X4의 움직임 벡터에 기초하여 획득될 수 있고, 픽쳐 블록 X4는 현재 픽쳐 블록과 공간적으로 인접한 픽쳐 블록이고, 픽쳐 블록 X4는 현재 픽쳐 블록 내의 우측 하부 화소 샘플 공간적으로 인접한다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 제1 꼭지각 화소 샘플은 현재 픽쳐 블록 내의 좌측 상부 화소 샘플일 수 있고, 공간적으로 인접한 제1 픽쳐 블록은 픽쳐 블록 X1일 수 있다. 픽쳐 블록 X1은 현재 픽쳐 블록의 좌측 상부에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X1은 현재 픽쳐 블록의 좌측에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X1은 현재 픽쳐 블록의 위에서 공간적으로 인접한 픽쳐 블록이다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 픽쳐 블록 X2는 현재 픽쳐 블록의 위에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X2는 현재 픽쳐 블록의 우측 상부에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X2는 현재 픽쳐 블록의 우측에서 공간적으로 인접한 픽쳐 블록이다. 또한 선택적으로, 픽쳐 블록 X2의 움직임 벡터 절대값과 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값이 픽쳐 블록 X5의 움직임 벡터 절대값과 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값보다 크거나 같고, 픽쳐 블록 X5는 우측 상부 꼭지점과 공간적으로 인접한 현재 픽쳐 블록 중의 픽쳐 블록으로서, 픽쳐 블록 X2를 제외한 공간적으로 인접한 나머지 적어도 일부의 픽쳐 블록 중 하나이다. 즉, 픽쳐 블록 X2의 위치가 특정 정책에 기초하여 결정될 수 있거나, 또는 픽쳐 블록 X2의 위치가 직접 합의될 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 픽쳐 블록 X3은 현재 픽쳐 블록의 좌측에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X3은 현재 픽쳐 블록의 좌측 하부에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X3은 현재 픽쳐 블록의 아래에서 공간적으로 인접한 픽쳐 블록이다. 또한 선택적으로, 픽쳐 블록 X3의 움직임 벡터 절대값과 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값이 픽쳐 블록 X6의 움직임 벡터 절대값과 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값보다 크거나 같고, 픽쳐 블록 X6은 좌측 하부 꼭지점과 공간적으로 인접한 현재 픽쳐 블록 중의 픽쳐 블록으로서, 픽쳐 블록 X3을 제외한 공간적으로 인접한 나머지 적어도 일부의 픽쳐 블록 중 하나이다. 즉, 픽쳐 블록 X3의 위치는 특정 정책에 기초하여 결정될 수 있거나, 또는 픽쳐 블록 X3의 위치는 직접 합의될 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 픽쳐 블록 X4는 현재 픽쳐 블록의 우측에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X4는 현재 픽쳐 블록의 우측 하부에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X4는 현재 픽쳐 블록의 아래에서 공간적으로 인접한 픽쳐 블록이다. 또한 선택적으로, 픽쳐 블록 X4의 움직임 벡터 절대값과 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값이 픽쳐 블록 X7의 움직임 벡터 절대값과 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값보다 크거나 같고, 픽쳐 블록 X7은 좌측 하부 꼭지점과 공간적으로 인접한 현재 픽쳐 블록 중의 픽쳐 블록으로서, 픽쳐 블록 X4를 제외한 공간적으로 인접한 나머지 적어도 일부의 픽쳐 블록 중 하나이다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 프로세서(902)는, K개의 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임이 참조 프레임 Y1이면, K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K개의 화소 샘플의 움직임 벡터 예측자를 이용하여 K개의 화소 샘플에 대해 움직임 추정을 수행하고; 비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터를 이용하여 현재 픽쳐 블록에 대해 화소 값 예측을 수행하도록 구성될 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 프로세서(902)는, K개의 화소 샘플 중 K1개의 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임이 참조 프레임 Y1이 아닌 경우, K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K1개의 화소 샘플의 움직임 벡터 예측자를 참조 프레임 Y1로 스케일 조절하고, K2개의 화소 샘플의 움직임 벡터 예측자 및 K개의 화소 샘플의 움직임 벡터 예측자로서, 참조 프레임 Y1로 스케일 조절된 움직임 벡터 예측자를 이용함으로써 K개의 화소 샘플에 대해 움직임 추정을 수행하며, 비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터를 이용하여 현재 픽쳐 블록에 대해 화소 값 예측을 수행하도록 구성될 수 있다. 여기서, K2개의 화소 샘플은 K개의 화소 샘플 중에서 K1개의 화소 샘플을 제외한 나머지 화소 샘플이고, K1 및 K2는 양의 정수이다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 참조 프레임 Y1은 제1 꼭지각 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임일 수 있거나, 또는 참조 프레임 Y1은 K개의 화소 샘플 내의 다른 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임일 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 화소 샘플 i는 K개의 화소 샘플 중에서 제1 꼭지각 화소 샘플을 제외한 임의의 화소 샘플이고, 화소 샘플 i의 움직임 벡터 예측자에 대응하는 예측 방향이 제1 꼭지각 화소 샘플의 움직임 벡터 예측자에 대응하는 예측 방향과 다르면 화소 샘플 i의 움직임 벡터 예측자에 대응하는 참조 프레임 인덱스가 0이다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 제1 꼭지각 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임 인덱스와 화소 샘플 i에 대응하는 참조 프레임 인덱스가 서로 다르면, 프로세서(902)는 화소 샘플 i의 움직임 벡터 예측자를 참조 프레임 Y1로 스케일 조절하도록 구성될 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 프로세서(902)는, K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K2개의 화소 샘플의 움직임 벡터 예측자 및 K1개의 화소 샘플의 움직임 벡터 예측자로서, 참조 프레임 Y1로 스케일 조절된 움직임 벡터 예측자를 이용함으로써 반복 검색 알고리즘(또는 다른 타입의 움직임 추정 알고리즘)에 기초하여 K개의 화소 샘플에 대해 움직임 추정을 수행하도록 구성될 수 있다.
본 실시형태에서의 픽쳐 예측 장치(900) 내의 모든 기능적인 모듈의 기능이 전술한 방법 실시형태의 방법에 따라 구체적으로 구현될 수 있다는 것이 이해될 수 있을 것이다. 구체적인 구현 프로세스에 대해서는, 전술한 방법 실시형태에서의 관련된 설명을 참조하고, 여기서는 세부사항에 대해 다시 설명하지 않는다. 픽쳐 예측 장치(900)는 비디오를 출력하고 재생할 필요가 있는 임의의 장치, 예를 들어 랩탑 컴퓨터, 태블릿 컴퓨터, 개인용 컴퓨터, 또는 휴대폰일 수 있다.
본 실시형태의 과제 해결수단에서, 현재 픽쳐 블록에 대해 화소 값 예측이 수행되는 동안, K개의 화소 샘플의 결정된 움직임 벡터 예측자가 비-병진 움직임 모델에 기초하여 참조된다는 것을 알 수 있을 것이다. K개의 화소 샘플은 현재 픽쳐 블록 내의 제1 꼭지각 화소 샘플을 포함한다. K개의 화소 샘플의 움직임 벡터 예측자가 예측을 위해 직접 사용되고, K개의 화소 샘플 내의 제1 꼭지각 화소 샘플의 움직임 벡터 예측자가 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 기초하여 획득되며, K개의 화소 샘플의 움직임 벡터 예측자를 위한 단 하나의 선택적인 경우만이 존재한다. 따라서, 종래의 기술에서 사용되는, K개의 화소 샘플의 움직임 벡터 예측자가 K개의 화소 샘플의 다수의 선택적인 움직임 벡터 예측자 세트로부터 대규모 계산에 의하여 선택되는 메커니즘이 포기된다. 이렇게 함으로써, 비트스트림 내의 움직임 정보 예측자의 선택 정보를 전달하는 것을 방지하는 데 도움이 되고, 코딩 효율을 높이는 데 도움이 되며, 또한 비-병진 움직임 모델에 기반하는 픽쳐 예측의 계산 복잡도를 감소시키는 데 도움이 된다.
또한, 공간적으로 인접한 제1 픽쳐 블록은 제1 꼭지각 화소 샘플과 공간적으로 인접하고, 현재 픽쳐 블록과 공간적으로 인접한 제1 픽쳐 블록이 사전 결정된다(즉, 현재 픽쳐 블록과 공간적으로 인접한 제1 픽쳐 블록이 미리 협의되거나 설정된다고 간주될 수 있다). 이렇게 함으로써, K개의 화소 샘플의 움직임 벡터 예측자를 빠르게 결정하는 데 도움이 된다. 또한, 픽쳐 블록 간의 공간적 상관관계를 최대한 이용하여 중복을 제거하므로, 코딩 효율을 향상시키는 데 도움이 된다.
도 10을 참조하면, 도 10은 본 발명의 다른 실시형태에 따른 픽쳐 예측 장치(1000)의 구조적인 블록도이다. 픽쳐 예측 장치(1000)는 적어도 하나의 프로세서(1001), 적어도 하나의 네트워크 인터페이스(1004)나 다른 사용자 인터페이스(1003), 메모리(1005), 및 적어도 하나의 통신 버스(1002)를 포함할 수 있다. 통신 버스(1002)는 이러한 컴포넌트 간의 연결 및 통신을 구현하도록 구성된다. 픽쳐 예측 장치(1000)는 디스플레이(예를 들어, 터치 스크린, LCD, 홀로그래픽 이미징 장치(holographic imaging device), CRT, 또는 프로젝션(Projector)), 클릭 장치(예를 들어, 마우스, 트랙볼(trackball), 터치패드, 또는 터치 스크린), 및 카메라 및/또는 픽업 장치 등을 포함하는 사용자 인터페이스(1003)를 선택적으로 포함할 수 있다.
메모리(1005)는 읽기 전용 메모리 및 랜덤 액세스 메모리를 포함할 수 있고, 프로세서(1001)를 위한 명령 및 데이터를 제공한다. 메모리(1005) 중 일부는 비휘발성 램(NVRAM)를 더 포함할 수 있다.
일부 구현 방식에서, 메모리(1005)는 실행 가능한 모듈이나 데이터 구조, 또는 그 서브세트, 또는 그 확장 세트인 다음의 엘리먼트를 저장한다:
다양한 시스템 프로그램을 포함하고, 다양한 기본 서비스 및 프로세스 하드웨어 기반 작업을 구현하기 위해 사용되는 운영 체제(10051); 및
다양한 응용 프로그램을 포함하고, 다양한 응용 서비스를 구현하기 위해 사용되는 응용 프로그램 모듈(10052).
본 발명의 본 실시형태에서, 메모리(1005)에 저장된 프로그램 또는 명령을 호출함으로써, 프로세서(1001)는, 현재 픽쳐 블록 내의 K개의 화소 샘플의 움직임 벡터 예측자를 결정하고 - 여기서, K는 1보다 큰 정수이고, K개의 화소 샘플은 현재 픽쳐 블록 내의 제1 꼭지각 화소 샘플을 포함하며, 제1 꼭지각 화소 샘플의 움직임 벡터 예측자는 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 기초하여 획득되고, 공간적으로 인접한 제1 픽쳐 블록은 제1 꼭지각 화소 샘플과 공간적으로 인접함 -; 비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터 예측자에 기초하여 현재 픽쳐 블록에 대해 화소 값 예측을 수행하도록 구성된다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 제1 꼭지각 화소 샘플의 움직임 벡터 예측자가 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 기초하여 획득된다. 구체적으로, 제1 꼭지각 화소 샘플의 움직임 벡터 예측자가 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터와 같을 수 있거나(즉, 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터가 제1 꼭지각 화소 샘플의 움직임 벡터 예측자로서 사용되거나); 또는 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 대해 사전 결정된 병진 움직임을 수행하여 획득되는 움직임 벡터 예측자가 제1 꼭지각 화소 샘플의 움직임 벡터 예측자로서 사용될 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 비-병진 움직임 모델은 아핀 변환 모델, 또는 포물선 움직임 모델, 또는 회전 움직임 모델, 또는 원근 움직임 모델, 또는 전단 움직임 모델, 또는 스케일러블 움직임 모델 중 하나이다. 비-병진 움직임 모델이 전술한 특정 예에 제한되지 않는다고 이해할 수 있을 것이다.
K개의 화소 샘플을 선택하는 다양한 방식이 있을 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, K개의 화소 샘플은 현재 픽쳐 블록 내의 좌측 상부 화소 샘플, 우측 상부 화소 샘플, 좌측 하부 화소 샘플, 또는 우측 하부 화소 샘플 중 적어도 2개의 화소 샘플을 포함한다.
화소 샘플이 화소 블록이면, 화소 블록의 크기는 예를 들어, 2×2, 1×2, 4×2, 4×4이거나, 또는 다른 크기이다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 현재 픽쳐 블록 내의 좌측 상부 화소 샘플은 현재 픽쳐 블록의 좌측 상부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 좌측 상부 꼭지점을 포함하는 화소 블록이다. 현재 픽쳐 블록 내의 좌측 하부 화소 샘플은 현재 픽쳐 블록의 좌측 하부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 좌측 하부 꼭지점을 포함하는 화소 블록이다. 현재 픽쳐 블록 내의 우측 상부 화소 샘플은 현재 픽쳐 블록의 우측 상부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 우측 상부 꼭지점을 포함하는 화소 블록이다. 현재 픽쳐 블록 내의 우측 하부 화소 샘플은 현재 픽쳐 블록의 우측 하부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 우측 하부 꼭지점을 포함하는 화소 블록이다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, K개의 화소 샘플은 현재 픽쳐 블록 내의 중심 화소 샘플을 더 포함할 수 있다. 현재 픽쳐 블록 내의 중심 화소 샘플은 현재 픽쳐 블록 내의 중심 화소이거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록 내의 중심 화소를 포함하는 화소 블록일 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 공간적으로 인접한 제1 픽쳐 블록은 픽쳐 블록 X1, 픽쳐 블록 X2, 픽쳐 블록 X3, 또는 픽쳐 블록 X4일 수 있다.
현재 픽쳐 블록 내의 좌측 상부 화소 샘플의 움직임 벡터 예측자는 픽쳐 블록 X1의 움직임 벡터에 기초하여 획득될 수 있고, 픽쳐 블록 X1은 현재 픽쳐 블록과 공간적으로 인접한 픽쳐 블록이며, 픽쳐 블록 X1은 현재 픽쳐 블록 내의 좌측 상부 화소 샘플과 공간적으로 인접한다.
현재 픽쳐 블록 내의 우측 상부 화소 샘플의 움직임 벡터 예측자는 픽쳐 블록 X2의 움직임 벡터에 기초하여 획득될 수 있고, 픽쳐 블록 X2는 현재 픽쳐 블록과 공간적으로 인접한 픽쳐 블록이며, 픽쳐 블록 X2는 현재 픽쳐 블록 내의 우측 상부 화소 샘플과 공간적으로 인접한다.
현재 픽쳐 블록 내의 좌측 하부 화소 샘플의 움직임 벡터 예측자는 픽쳐 블록 X3의 움직임 벡터에 기초하여 획득될 수 있고, 픽쳐 블록 X3은 현재 픽쳐 블록과 공간적으로 인접한 픽쳐 블록이며, 픽쳐 블록 X3은 현재 픽쳐 블록 내의 좌측 하부 화소 샘플과 공간적으로 인접한다.
현재 픽쳐 블록 내의 우측 하부 화소 샘플의 움직임 벡터 예측자는 픽쳐 블록 X4의 움직임 벡터에 기초하여 획득될 수 있고, 픽쳐 블록 X4는 현재 픽쳐 블록과 공간적으로 인접한 픽쳐 블록이고, 픽쳐 블록 X4는 현재 픽쳐 블록 내의 우측 하부 화소 샘플 공간적으로 인접한다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 제1 꼭지각 화소 샘플은 현재 픽쳐 블록 내의 좌측 상부 화소 샘플일 수 있고, 공간적으로 인접한 제1 픽쳐 블록은 픽쳐 블록 X1일 수 있다. 픽쳐 블록 X1은 현재 픽쳐 블록의 좌측 상부에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X1은 현재 픽쳐 블록의 좌측에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X1은 현재 픽쳐 블록의 위에서 공간적으로 인접한 픽쳐 블록이다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 픽쳐 블록 X2는 현재 픽쳐 블록의 위에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X2는 현재 픽쳐 블록의 우측 상부에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X2는 현재 픽쳐 블록의 우측에서 공간적으로 인접한 픽쳐 블록이다. 또한 선택적으로, 픽쳐 블록 X2의 움직임 벡터 절대값과 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값이 픽쳐 블록 X5의 움직임 벡터 절대값과 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값보다 크거나 같고, 픽쳐 블록 X5는 우측 상부 꼭지점과 공간적으로 인접한 현재 픽쳐 블록 중의 픽쳐 블록으로서, 픽쳐 블록 X2를 제외한 공간적으로 인접한 나머지 적어도 일부의 픽쳐 블록 중 하나이다. 즉, 픽쳐 블록 X2의 위치가 특정 정책에 기초하여 결정될 수 있거나, 또는 픽쳐 블록 X2의 위치가 직접 합의될 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 픽쳐 블록 X3은 현재 픽쳐 블록의 좌측에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X3은 현재 픽쳐 블록의 좌측 하부에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X3은 현재 픽쳐 블록의 아래에서 공간적으로 인접한 픽쳐 블록이다. 또한 선택적으로, 픽쳐 블록 X3의 움직임 벡터 절대값과 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값이 픽쳐 블록 X6의 움직임 벡터 절대값과 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값보다 크거나 같고, 픽쳐 블록 X6은 좌측 하부 꼭지점과 공간적으로 인접한 현재 픽쳐 블록 중의 픽쳐 블록으로서, 픽쳐 블록 X3을 제외한 공간적으로 인접한 나머지 적어도 일부의 픽쳐 블록 중 하나이다. 즉, 픽쳐 블록 X3의 위치는 특정 정책에 기초하여 결정될 수 있거나, 또는 픽쳐 블록 X3의 위치는 직접 합의될 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 픽쳐 블록 X4는 현재 픽쳐 블록의 우측에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X4는 현재 픽쳐 블록의 우측 하부에서 공간적으로 인접한 픽쳐 블록이거나, 또는 픽쳐 블록 X4는 현재 픽쳐 블록의 아래에서 공간적으로 인접한 픽쳐 블록이다. 또한 선택적으로, 픽쳐 블록 X4의 움직임 벡터 절대값과 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값이 픽쳐 블록 X7의 움직임 벡터 절대값과 픽쳐 블록 X1의 움직임 벡터 절대값 간의 차이의 절대값보다 크거나 같고, 픽쳐 블록 X7은 좌측 하부 꼭지점과 공간적으로 인접한 현재 픽쳐 블록 중의 픽쳐 블록으로서, 픽쳐 블록 X4를 제외한 공간적으로 인접한 나머지 적어도 일부의 픽쳐 블록 중 하나이다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 프로세서(1001)는, K개의 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임이 참조 프레임 Y1이면, K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K개의 화소 샘플의 움직임 벡터 예측자를 이용하여 K개의 화소 샘플에 대해 움직임 추정을 수행하고; 비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터를 이용하여 현재 픽쳐 블록에 대해 화소 값 예측을 수행하도록 구성될 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 프로세서(1001)는, K개의 화소 샘플 중 K1개의 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임이 참조 프레임 Y1이 아닌 경우, K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K1개의 화소 샘플의 움직임 벡터 예측자를 참조 프레임 Y1로 스케일 조절하고, K2개의 화소 샘플의 움직임 벡터 예측자 및 K1개의 화소 샘플의 움직임 벡터 예측자로서, 참조 프레임 Y1로 스케일 조절된 움직임 벡터 예측자를 이용함으로써 K개의 화소 샘플에 대해 움직임 추정을 수행하며, 비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터를 이용하여 현재 픽쳐 블록에 대해 화소 값 예측을 수행하도록 구성될 수 있다. 여기서, K2개의 화소 샘플은 K개의 화소 샘플 중에서 K1개의 화소 샘플을 제외한 나머지 화소 샘플이고, K1 및 K2는 양의 정수이다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 참조 프레임 Y1은 제1 꼭지각 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임일 수 있거나, 또는 참조 프레임 Y1은 K개의 화소 샘플 내의 다른 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임일 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 화소 샘플 i는 K개의 화소 샘플 중에서 제1 꼭지각 화소 샘플을 제외한 임의의 화소 샘플이고, 화소 샘플 i의 움직임 벡터 예측자에 대응하는 예측 방향이 제1 꼭지각 화소 샘플의 움직임 벡터 예측자에 대응하는 예측 방향과 다르면 화소 샘플 i의 움직임 벡터 예측자에 대응하는 참조 프레임 인덱스가 0이다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 제1 꼭지각 화소 샘플의 움직임 벡터 예측자에 대응하는 참조 프레임 인덱스와 화소 샘플 i에 대응하는 참조 프레임 인덱스가 서로 다르면, 프로세서(1001)는 화소 샘플 i의 움직임 벡터 예측자를 참조 프레임 Y1로 스케일 조절하도록 구성될 수 있다.
선택적으로, 본 발명의 일부 가능한 구현 방식에서, 프로세서(1001)는, K개의 화소 샘플의 움직임 벡터를 획득하기 위해, K2개의 화소 샘플의 움직임 벡터 예측자 및 K개의 화소 샘플의 움직임 벡터 예측자로서, 참조 프레임 Y1로 스케일 조절된 움직임 벡터 예측자를 이용함으로써 반복 검색 알고리즘(또는 다른 타입의 움직임 추정 알고리즘)에 기초하여 K개의 화소 샘플에 대해 움직임 추정을 수행하도록 구성될 수 있다.
본 실시형태에서의 픽쳐 예측 장치(1000) 내의 모든 기능적인 모듈의 기능이 전술한 방법 실시형태에서의 방법에 따라 구체적으로 구현될 수 있다는 것이 이해될 수 있을 것이다. 구체적인 구현 프로세스에 대해서는, 전술한 방법의 실시형태의 관련된 설명을 참조하고, 여기서는 세부사항에 대해 다시 설명하지 않는다. 픽쳐 예측 장치(1000)는 비디오를 출력하고 재생할 필요가 있는 임의의 장치, 예를 들어 랩탑 컴퓨터, 태블릿 컴퓨터, 개인용 컴퓨터, 또는 휴대폰일 수 있다.
본 실시형태의 과제 해결수단에서, 현재 픽쳐 블록에 대해 화소 값 예측이 수행되는 동안, K개의 화소 샘플의 결정된 움직임 벡터 예측자가 비-병진 움직임 모델에 기초하여 참조된다는 것을 알 수 있을 것이다. K개의 화소 샘플은 현재 픽쳐 블록 내의 제1 꼭지각 화소 샘플을 포함한다. K개의 화소 샘플의 움직임 벡터 예측자가 예측을 위해 직접 사용되고, K개의 화소 샘플 내의 제1 꼭지각 화소 샘플의 움직임 벡터 예측자가 현재 픽쳐 블록과 공간적으로 인접한 사전 설정된 제1 픽쳐 블록의 움직임 벡터에 기초하여 획득되며, K개의 화소 샘플의 움직임 벡터 예측자를 위한 단 하나의 선택적인 경우만이 존재한다. 따라서, 종래의 기술에서 사용되는, K개의 화소 샘플의 움직임 벡터 예측자가 K개의 화소 샘플의 다수의 선택적인 움직임 벡터 예측자 세트로부터 대규모 계산에 의하여 선택되는 메커니즘이 포기된다. 이렇게 함으로써, 비트스트림 내의 움직임 정보 예측자의 선택 정보를 전달하는 것을 방지하는 데 도움이 되고, 코딩 효율을 높이는 데 도움이 되며, 또한 비-병진 움직임 모델에 기반하는 픽쳐 예측의 계산 복잡도를 감소시키는 데 도움이 된다.
또한, 공간적으로 인접한 제1 픽쳐 블록은 제1 꼭지각 화소 샘플과 공간적으로 인접하고, 현재 픽쳐 블록과 공간적으로 인접한 제1 픽쳐 블록이 사전 결정된다(즉, 현재 픽쳐 블록과 공간적으로 인접한 제1 픽쳐 블록이 미리 협의되거나 설정된다고 간주될 수 있다). 이렇게 함으로써, K개의 화소 샘플의 움직임 벡터 예측자를 빠르게 결정하는 데 도움이 된다. 또한, 픽쳐 블록 간의 공간적 상관관계를 최대한 이용하여 중복을 제거하므로, 코딩 효율을 향상시키는 데 도움이 된다.
설명의 편의를 위해 전술한 방법 실시형태는 일련의 동작으로서 표현된다는 것을 유의해야 한다. 하지만, 본 발명에 따르면, 일부 단계가 다른 순서로 수행되거나 또는 동시에 수행될 수 있기 때문에, 본 발명이 전술한 동작 순서에 한정되지 않는다는 것을 당업자는 이해할 것이다. 또한, 명세서에 기재된 모든 실시형태는 실시형태의 예이고, 관련된 동작 및 모듈은 반드시 본 발명에 필수적인 것은 아니라는 것을 당업자는 이해해야 한다.
전술한 실시형태에서, 모든 실시형태는 설명의 중점사항을 가지고 있다. 실시형태에서 자세히 설명되지 않은 부분에 대해서는, 다른 실시형태에서의 관련된 설명을 참조하라.
본 출원에서 제공되는 실시형태에서, 개시된 장치가 다른 방식으로 구현될 수 있다는 것을 이해해야 한다. 예를 들어, 전술한 장치 실시형태는 단지 예일 뿐이다. 예를 들어, 유닛 구분은 단지 논리적 기능 구분일 뿐이고 실제 구현에서는 이와 다르게 구분될 수 있다. 예를 들어, 복수의 유닛 또는 콤포넌트는 다른 시스템으로 결합되거나 통합될 수 있거나, 또는 몇몇 특징은 무시되거나 수행되지 않을 수도 있다. 또한, 표시되거나 서술되는 상호 커플링 또는 직접 커플링 또는 통신 연결은 몇몇 인터페이스를 통해서 구현될 수 있다. 장치들 또는 유닛들 간의 간접적인 커플링 또는 통신 연결은 전자적인 형태 또는 다른 형태로 구현될 수 있다.
별도의 부분으로 설명된 유닛은 물리적으로 분리되거나 또는 분리되지 않을 수 있고, 유닛으로서 표시되는 부분은 물리적 유닛이거나 또는 물리적 유닛이 아닐 수 있으며, 하나의 위치에 놓여 있을 수 있거나, 또는 복수의 네트워크 유닛 상에 분산되어 있을 수 있다. 유닛 중 일부 또는 전부가 실시형태에서 해결수단의 목적을 달성하기 위한 실제 필요에 따라 선택될 수 있다.
또한, 본 발명의 실시형태의 기능 유닛은 하나의 처리 유닛으로 통합될 수 있거나, 또는 각각의 유닛이 물리적으로 단독으로 존재할 수도 있거나, 또는 2개 이상의 유닛이 하나의 유닛으로 통합될 수 있다. 통합 유닛은 하드웨어의 형태로 구현될 수 있고, 또는 소프트웨어 기능 유닛의 형태로 구현될 수도 있다.
전술한 통합 유닛이 구현된 소프트웨어 기능 유닛의 형태로 구현되고 독립적인 제품으로서 판매되거나 사용되는 경우, 통합 유닛은 컴퓨터로 판독 가능한 저장 매체에 저장될 수 있다. 이러한 이해를 바탕으로, 본질적으로 본 발명의 과제 해결수단, 또는 종래 기술에 기여하는 부분, 또는 과제 해결수단 중 전부나 일부가 소프트웨어 제품의 형태로 구현될 수 있다. 이 소프트웨어 제품은 저장 매체 내에 저장되고, 본 발명의 실시형태에서 설명되는 방법의 단계의 전부 또는 일부를 수행하도록 컴퓨터 장치(개인용 컴퓨터, 서버, 또는 네트워크 장치일 수 있음)에 지시하기 위한 명령을 포함한다. 전술한 저장 매체는 프로그램 코드를 저장할 수 있는 임의의 저장 매체, 예를 들어 USB 플래쉬 드라이브, 읽기 전용 메모리, 랜덤 액세스 메모리, 착탈식 하드디스크, 자기 디스크, 또는 광 디스크를 포함한다.
전술한 실시형태는 본 발명의 과제 해결수단을 설명하기 위한 것일 뿐이며, 본 발명을 제한하려고 하는 것이 아니다. 본 발명을 전술한 실시형태를 참조하여 설명하였으나, 당업자라면 본 발명의 실시형태의 과제 해결수단의 사상 및 범위에서 벗어나지 않고도 전술한 실시형태에서 설명된 과제 해결수단에 대해 여전히 변경이 이루어질 수 있거나 또는 과제 해결수단의 일부 기술적인 특징에 대해 등가의 대체가 이루어질 수 있다는 것을 이해해야 한다.

Claims (26)

  1. 비디오 코딩 프로세스에서 사용하기 위한 픽쳐 예측 방법(picture prediction method)으로서,
    (1) 현재 픽쳐 블록 내의 K개의 화소 샘플의 움직임 벡터 예측자들(MVPs: motion vector predictors)를 결정하는 단계 - K는 1보다 큰 정수임 -,
    (2) 움직임 추정에 의해 K개의 화소 샘플의 움직임 벡터들을 획득하는 단계,
    (3) K개의 화소 샘플 및 대응하는 MVP들의 움직임 벡터들에 기초하여 K개의 화소 샘플의 움직임 벡터 차이들(MVDs: motion vector differences)를 획득하는 단계,
    (4-1) K개의 화소 샘플의 MVD들이 모두 0이 아닌 때, 구문 엘리먼트 affine_no_MVD_flag 및 K개의 화소 샘플의 MVD들을 비트스트림에 기록하는 단계 - affine_no_MVD_flag의 값은 제1값으로 설정됨 -, 또는
    (4-2) K개의 화소 샘플의 MVD들이 모두 0인 때, 구문 엘리먼트 affine_no_MVD_flag를 비트스트림에 기록하는 단계 - affine_no_MVD_flag의 값은 제2값으로 설정됨 -, 그리고
    (5) 비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터들에 기초하여, 현재 픽쳐 블록의 각 화소의 예측된 화소 값을 획득하는 단계
    를 포함하고,
    K개의 화소 샘플은 현재 픽쳐 블록 내의 좌측 상부 화소 샘플, 또는 우측 상부 화소 샘플, 또는 좌측 하부 화소 샘플 중 적어도 2개의 화소 샘플을 포함하고,
    현재 픽쳐 블록 내의 좌측 상부 화소 샘플은 현재 픽쳐 블록의 좌측 상부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 좌측 상부 꼭지점을 포함하는 화소 블록이고, 현재 픽쳐 블록 내의 좌측 하부 화소 샘플은 현재 픽쳐 블록의 좌측 하부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 좌측 하부 꼭지점을 포함하는 화소 블록이며, 현재 픽쳐 블록 내의 우측 상부 화소 샘플은 현재 픽쳐 블록의 우측 상부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 우측 상부 꼭지점을 포함하는 화소 블록인,
    픽쳐 예측 방법.
  2. 제1항에 있어서,
    비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터들에 기초하여, 현재 픽쳐 블록의 각 화소의 예측된 화소 값을 획득하는 단계는,
    비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터들에 기초하여, 현재 픽쳐 블록 내의 각 화소의 움직임 벡터를 계산하는 단계, 그리고
    현재 픽처 블록의 각 화소의 계산된 움직임 벡터에 기초하여, 현재 픽처 블록의 화소 값 예측을 수행하는 단계를 포함하는,
    픽쳐 예측 방법.
  3. 제1항 또는 제2항에 있어서,
    구문 엘리먼트 affine_no_MVD_flag는 화소 샘플의 임의의 MVD가 비트스트림에 기록되는지를 나타내거나, 또는
    구문 엘리먼트 affine_no_MVD_flag는 현재 픽쳐 블록 내의 K개의 화소 샘플의 모든 MVD들이 0인지를 나타내는,
    픽쳐 예측 방법.
  4. 제3항에 있어서,
    affine_no_MVD_flag의 제1값은 거짓(false)이고,
    affine_no_MVD_flag의 제2값은 참(true)인,
    픽쳐 예측 방법.
  5. 제1항에 있어서,
    K개의 화소 샘플 및 대응하는 MVP들의 움직임 벡터들에 기초하여 K개의 화소 샘플의 움직임 벡터 차이들(MVDs)를 획득하는 단계는,
    K개의 화소 샘플의 움직임 벡터들 및 대응하는 MVP들 사이에 감산을 수행하여 K개의 화소 샘플의 움직임 벡터 차이들(MVDs)을 획득하는 단계를 포함하는,
    픽쳐 예측 방법.
  6. 제1항에 있어서,
    비-병진 움직임 모델은 아핀 변환 모델, 또는 포물선 움직임 모델, 또는 회전 움직임 모델, 또는 원근 움직임 모델, 또는 전단 움직임 모델, 또는 스케일러블 움직임 모델 중 하나인,
    픽쳐 예측 방법.
  7. 비디오 디코딩 프로세스에서 사용하기 위한 픽쳐 예측 방법(picture prediction method)으로서,
    (1) 현재 픽쳐 블록 내의 K개의 화소 샘플의 움직임 벡터 예측자들(MVPs: motion vector predictors)을 결정하는 단계 - K는 1보다 큰 정수임 -,
    (2) 비트스트림으로부터 현재 픽처 블록의 구문 엘리먼트 affine_no_MVD_flag를 디코딩하는 단계,
    (3-1) affine_no_MVD_flag의 값이 제1값으로 설정된 때, 비트스트림으로부터 K개의 화소 샘플의 움직임 벡터 차이들(MVDs: motion vector differences)을 디코딩하고, K개의 화소 샘플의 MVD들 및 K개의 화소 샘플의 대응하는 MVP들에 기초하여 K개의 화소 샘플의 움직임 벡터들을 획득하는 단계, 또는
    (3-2) affine_no_MVD_flag의 값이 제2값으로 설정된 때, K개의 화소 샘플의 MVP들을 K개의 화소 샘플의 움직임 벡터들로서 결정하는 단계, 그리고
    (4) 비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터들에 기초하여, 현재 픽쳐 블록의 각 화소의 예측된 화소 값을 획득하는 단계
    를 포함하고,
    K개의 화소 샘플은 현재 픽쳐 블록 내의 좌측 상부 화소 샘플, 또는 우측 상부 화소 샘플, 또는 좌측 하부 화소 샘플 중 적어도 2개의 화소 샘플을 포함하고,
    현재 픽쳐 블록 내의 좌측 상부 화소 샘플은 현재 픽쳐 블록의 좌측 상부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 좌측 상부 꼭지점을 포함하는 화소 블록이고, 현재 픽쳐 블록 내의 좌측 하부 화소 샘플은 현재 픽쳐 블록의 좌측 하부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 좌측 하부 꼭지점을 포함하는 화소 블록이며, 현재 픽쳐 블록 내의 우측 상부 화소 샘플은 현재 픽쳐 블록의 우측 상부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 우측 상부 꼭지점을 포함하는 화소 블록인,
    픽쳐 예측 방법.
  8. 제7항에 있어서,
    비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터들에 기초하여, 현재 픽쳐 블록의 각 화소의 예측된 화소 값을 획득하는 단계는,
    비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터들에 기초하여, 현재 픽쳐 블록 내의 각 화소의 움직임 벡터를 계산하는 단계, 그리고
    현재 픽처 블록의 각 화소의 계산된 움직임 벡터에 기초하여, 현재 픽처 블록의 화소 값 예측을 수행하는 단계를 포함하는,
    픽쳐 예측 방법.
  9. 제7항 또는 제8항에 있어서,
    affine_no_MVD_flag는 화소 샘플의 임의의 MVD가 비트스트림에 기록되는지를 나타내거나, 또는
    affine_no_MVD_flag는 현재 픽쳐 블록 내의 K개의 화소 샘플의 모든 MVD들이 0인지를 나타내는,
    픽쳐 예측 방법.
  10. 제9항에 있어서,
    affine_no_MVD_flag의 제2값은 참이고, affine_no_MVD_flag의 제2값은 현재 픽처 블록 내의 K개의 화소 샘플의 MVD들이 모두 0임을 나타내며,
    affine_no_MVD_flag의 제1값은 거짓이고, affine_no_MVD_flag의 제1값은 K개의 화소 샘플의 MVD들이 모두 0이 아님을 나타내는,
    픽쳐 예측 방법.
  11. 제7항에 있어서,
    비-병진 움직임 모델은 아핀 변환 모델, 또는 포물선 움직임 모델, 또는 회전 움직임 모델, 또는 원근 움직임 모델, 또는 전단 움직임 모델, 또는 스케일러블 움직임 모델 중 하나인,
    픽쳐 예측 방법.
  12. 명령들을 저장하는 메모리, 그리고
    메모리에 연결된 프로세서를 포함하고, 프로세서는 메모리에 저장된 명령들을 실행하여, 프로세서가,
    현재 픽쳐 블록 내의 K개의 화소 샘플의 움직임 벡터 예측자들(MVPs: motion vector predictors)를 결정하고 - K는 1보다 큰 정수임 -,
    움직임 추정에 의해 K개의 화소 샘플의 움직임 벡터들을 획득하며,
    K개의 화소 샘플 및 대응하는 MVP들의 움직임 벡터들에 기초하여 K개의 화소 샘플의 움직임 벡터 차이들(MVDs: motion vector differences)를 획득하고,
    K개의 화소 샘플의 MVD들이 모두 0이 아닌 때, 구문 엘리먼트 affine_no_MVD_flag 및 K개의 화소 샘플의 MVD들을 비트스트림에 기록하거나 - affine_no_MVD_flag의 값은 제1값으로 설정됨 -,
    K개의 화소 샘플의 MVD들이 모두 0인 때, 구문 엘리먼트 affine_no_MVD_flag를 비트스트림에 기록하고 - affine_no_MVD_flag의 값은 제2값으로 설정됨 -,
    비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터들에 기초하여, 현재 픽쳐 블록의 각 화소의 예측된 화소 값을 획득하도록 구성되고,
    K개의 화소 샘플은 현재 픽쳐 블록 내의 좌측 상부 화소 샘플, 또는 우측 상부 화소 샘플, 또는 좌측 하부 화소 샘플 중 적어도 2개의 화소 샘플을 포함하고,
    현재 픽쳐 블록 내의 좌측 상부 화소 샘플은 현재 픽쳐 블록의 좌측 상부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 좌측 상부 꼭지점을 포함하는 화소 블록이고, 현재 픽쳐 블록 내의 좌측 하부 화소 샘플은 현재 픽쳐 블록의 좌측 하부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 좌측 하부 꼭지점을 포함하는 화소 블록이며, 현재 픽쳐 블록 내의 우측 상부 화소 샘플은 현재 픽쳐 블록의 우측 상부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 우측 상부 꼭지점을 포함하는 화소 블록인,
    인코딩 장치.
  13. 제12항에 있어서,
    비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터들에 기초하여, 현재 픽쳐 블록의 각 화소의 예측된 화소 값을 획득하기 위해, 프로세서는,
    비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터들에 기초하여, 현재 픽쳐 블록 내의 각 화소의 움직임 벡터를 계산하고,
    현재 픽처 블록의 각 화소의 계산된 움직임 벡터에 기초하여, 현재 픽처 블록의 화소 값 예측을 수행하는,
    인코딩 장치.
  14. 제12항 또는 제13항에 있어서,
    affine_no_MVD_flag는 화소 샘플의 MVD가 비트스트림에 기록되는지를 나타내거나, 또는
    affine_no_MVD_flag는 현재 픽쳐 블록 내의 K개의 화소 샘플의 MVD들이 모두 0인지를 나타내는,
    인코딩 장치.
  15. 제14항에 있어서,
    K개의 화소 샘플의 MVD들이 모두 0이 아닌 때, 구문 엘리먼트 affine_no_MVD_flag 및 K개의 화소 샘플의 MVD들이 비트스트림에 기록되고, affine_no_MVD_flag의 값은 거짓으로 설정되며,
    K개의 화소 샘플의 MVD들이 모두 0인 때, 구문 엘리먼트 affine_no_MVD_flag가 비트스트림에 기록되고, affine_no_MVD_flag의 값은 참으로 설정되는, 인코딩 장치.
  16. 제12항에 있어서,
    K개의 화소 샘플 및 대응하는 MVP들의 움직임 벡터들에 기초하여 K개의 화소 샘플의 움직임 벡터 차이들(MVDs)를 획득하기 위해, 프로세서는 K개의 화소 샘플의 움직임 벡터들 및 대응하는 MVP들 사이에 감산을 수행하여 K개의 화소 샘플의 움직임 벡터 차이들(MVDs)을 획득하는,
    인코딩 장치.
  17. 제12항에 있어서,
    비-병진 움직임 모델은 아핀 변환 모델, 또는 포물선 움직임 모델, 또는 회전 움직임 모델, 또는 원근 움직임 모델, 또는 전단 움직임 모델, 또는 스케일러블 움직임 모델 중 하나인,
    인코딩 장치.
  18. 명령들을 저장하는 메모리, 그리고
    메모리에 연결된 프로세서를 포함하고, 프로세서는 메모리에 저장된 명령들을 실행하여, 프로세서가,
    현재 픽쳐 블록 내의 K개의 화소 샘플의 움직임 벡터 예측자들(MVPs: motion vector predictors)을 결정하고 - K는 1보다 큰 정수임 -,
    비트스트림으로부터 현재 픽처 블록의 구문 엘리먼트 affine_no_MVD_flag를 디코딩하며,
    affine_no_MVD_flag의 값이 제1값으로 설정된 때, 비트스트림으로부터 K개의 화소 샘플의 움직임 벡터 차이들(MVDs: motion vector differences)을 디코딩하거나, K개의 화소 샘플의 MVD들 및 K개의 화소 샘플의 대응하는 MVP들에 기초하여 K개의 화소 샘플의 움직임 벡터들을 획득하며,
    affine_no_MVD_flag의 값이 제2값으로 설정된 때, K개의 화소 샘플의 MVP들을 K개의 화소 샘플의 움직임 벡터들로서 결정하고,
    비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터들에 기초하여, 현재 픽쳐 블록의 각 화소의 예측된 화소 값을 획득하며,
    K개의 화소 샘플은 현재 픽쳐 블록 내의 좌측 상부 화소 샘플, 또는 우측 상부 화소 샘플, 또는 좌측 하부 화소 샘플 중 적어도 2개의 화소 샘플을 포함하고,
    현재 픽쳐 블록 내의 좌측 상부 화소 샘플은 현재 픽쳐 블록의 좌측 상부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 좌측 상부 꼭지점을 포함하는 화소 블록이고, 현재 픽쳐 블록 내의 좌측 하부 화소 샘플은 현재 픽쳐 블록의 좌측 하부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 좌측 하부 꼭지점을 포함하는 화소 블록이며, 현재 픽쳐 블록 내의 우측 상부 화소 샘플은 현재 픽쳐 블록의 우측 상부 꼭지점에 있거나 또는 현재 픽쳐 블록 내에 있으면서 현재 픽쳐 블록의 우측 상부 꼭지점을 포함하는 화소 블록인,
    디코딩 장치.
  19. 제18항에 있어서,
    비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터들에 기초하여, 현재 픽쳐 블록의 각 화소의 예측된 화소 값을 획득하기 위해, 프로세서는,
    비-병진 움직임 모델 및 K개의 화소 샘플의 움직임 벡터들에 기초하여, 현재 픽쳐 블록 내의 각 화소의 움직임 벡터를 계산하고,
    현재 픽처 블록의 각 화소의 계산된 움직임 벡터에 기초하여, 현재 픽처 블록의 화소 값 예측을 수행하는,
    디코딩 장치.
  20. 제18항 또는 제19항에 있어서,
    구문 엘리먼트 affine_no_MVD_flag는 화소 샘플의 임의의 MVD가 비트스트림에 기록되는지를 나타내거나, 또는
    구문 엘리먼트 affine_no_MVD_flag는 현재 픽쳐 블록 내의 K개의 화소 샘플의 모든 MVD들이 0인지를 나타내는,
    디코딩 장치.
  21. 제20항에 있어서,
    affine_no_MVD_flag의 제2값은 참이고, affine_no_MVD_flag의 제2값은 현재 픽처 블록 내의 K개의 화소 샘플의 MVD들이 모두 0임을 나타내며,
    affine_no_MVD_flag의 제1값은 거짓이고, affine_no_MVD_flag의 제1값은 K개의 화소 샘플의 MVD들이 모두 0이 아님을 나타내는,
    디코딩 장치.
  22. 제18항에 있어서,
    비-병진 움직임 모델은 아핀 변환 모델, 또는 포물선 움직임 모델, 또는 회전 움직임 모델, 또는 원근 움직임 모델, 또는 전단 움직임 모델, 또는 스케일러블 움직임 모델 중 하나인,
    디코딩 장치.
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
KR1020197003118A 2014-09-30 2015-04-15 픽쳐 예측 방법 및 관련 장치 KR102060184B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410526608.8A CN104539966B (zh) 2014-09-30 2014-09-30 图像预测方法及相关装置
CN201410526608.8 2014-09-30
PCT/CN2015/076659 WO2016050051A1 (zh) 2014-09-30 2015-04-15 图像预测方法及相关装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020177007259A Division KR101945894B1 (ko) 2014-09-30 2015-04-15 픽쳐 예측 방법 및 관련 장치

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020197037916A Division KR102160564B1 (ko) 2014-09-30 2015-04-15 픽쳐 예측 방법 및 관련 장치

Publications (2)

Publication Number Publication Date
KR20190014590A KR20190014590A (ko) 2019-02-12
KR102060184B1 true KR102060184B1 (ko) 2019-12-27

Family

ID=52855412

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020197037916A KR102160564B1 (ko) 2014-09-30 2015-04-15 픽쳐 예측 방법 및 관련 장치
KR1020197003118A KR102060184B1 (ko) 2014-09-30 2015-04-15 픽쳐 예측 방법 및 관련 장치
KR1020177007259A KR101945894B1 (ko) 2014-09-30 2015-04-15 픽쳐 예측 방법 및 관련 장치

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020197037916A KR102160564B1 (ko) 2014-09-30 2015-04-15 픽쳐 예측 방법 및 관련 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020177007259A KR101945894B1 (ko) 2014-09-30 2015-04-15 픽쳐 예측 방법 및 관련 장치

Country Status (7)

Country Link
US (2) US10827194B2 (ko)
EP (3) EP3836546A1 (ko)
JP (3) JP6546277B2 (ko)
KR (3) KR102160564B1 (ko)
CN (4) CN112087630B (ko)
BR (2) BR122020019754B1 (ko)
WO (1) WO2016050051A1 (ko)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MY190198A (en) 2015-03-10 2022-04-04 Huawei Tech Co Ltd Picture prediction method and related apparatus
CN106303543B (zh) 2015-05-15 2018-10-30 华为技术有限公司 视频图像编码和解码的方法、编码设备和解码设备
CN106331722B (zh) 2015-07-03 2019-04-26 华为技术有限公司 图像预测方法和相关设备
US10728571B2 (en) * 2015-08-04 2020-07-28 Lg Electronics Inc. Inter prediction method and device in video coding system
CN105163116B (zh) 2015-08-29 2018-07-31 华为技术有限公司 图像预测的方法及设备
CN108965871B (zh) * 2015-09-29 2023-11-10 华为技术有限公司 图像预测的方法及装置
GB2561507B (en) * 2016-01-07 2021-12-22 Mediatek Inc Method and apparatus for affine merge mode prediction for video coding system
CN107027040B9 (zh) * 2016-01-29 2020-08-28 华为技术有限公司 一种去除块效应的滤波方法及装置
CN111556323B (zh) 2016-02-06 2022-05-13 华为技术有限公司 图像编解码方法及装置
CN117354536A (zh) * 2016-02-25 2024-01-05 株式会社Kt 用于处理视频信号的方法和设备
US10638152B2 (en) 2016-03-15 2020-04-28 Mediatek Inc. Method and apparatus of video coding with affine motion compensation
WO2017156705A1 (en) * 2016-03-15 2017-09-21 Mediatek Inc. Affine prediction for video coding
KR20240025714A (ko) 2016-03-24 2024-02-27 엘지전자 주식회사 비디오 코딩 시스템에서 인터 예측 방법 및 장치
WO2017195914A1 (ko) * 2016-05-11 2017-11-16 엘지전자 주식회사 비디오 코딩 시스템에서 인터 예측 방법 및 장치
US10560712B2 (en) 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
WO2017201678A1 (zh) * 2016-05-24 2017-11-30 华为技术有限公司 图像预测方法和相关设备
US10631002B2 (en) 2016-09-30 2020-04-21 Qualcomm Incorporated Frame rate up-conversion coding mode
CN108271023B (zh) * 2017-01-04 2021-11-19 华为技术有限公司 图像预测方法和相关设备
US10701390B2 (en) * 2017-03-14 2020-06-30 Qualcomm Incorporated Affine motion information derivation
CN107071496B (zh) * 2017-05-14 2020-01-17 北京工业大学 一种h.265/hevc帧间编码单元深度快速选择方法
CN109391814B (zh) 2017-08-11 2023-06-06 华为技术有限公司 视频图像编码和解码的方法、装置及设备
CN107454429B (zh) * 2017-08-21 2019-12-24 武汉兴图新科电子股份有限公司 基于运动向量外推和图像梯度加权的视频错误隐藏方法
CN109587479B (zh) 2017-09-29 2023-11-10 华为技术有限公司 视频图像的帧间预测方法、装置及编解码器
US11877001B2 (en) * 2017-10-10 2024-01-16 Qualcomm Incorporated Affine prediction in video coding
CN112055205B (zh) 2017-12-12 2021-08-03 华为技术有限公司 视频数据的帧间预测方法和装置、视频编解码器、存储介质
US20190208211A1 (en) * 2018-01-04 2019-07-04 Qualcomm Incorporated Generated affine motion vectors
WO2019191867A1 (zh) * 2018-04-02 2019-10-10 华为技术有限公司 一种视频编解码方法和装置
CN115695791A (zh) 2018-07-02 2023-02-03 华为技术有限公司 视频图像编码方法以及用于对视频数据进行编码的设备
WO2020007093A1 (zh) * 2018-07-02 2020-01-09 华为技术有限公司 一种图像预测方法及装置
CN108960160B (zh) * 2018-07-10 2021-03-09 深圳地平线机器人科技有限公司 基于非结构化预测模型来预测结构化状态量的方法和装置
JP7488249B2 (ja) 2018-07-11 2024-05-21 華為技術有限公司 ビデオ・エンコーダ、ビデオ・デコーダおよび対応する方法
WO2020024275A1 (zh) * 2018-08-03 2020-02-06 华为技术有限公司 一种帧间预测的方法及装置
CN110971899B (zh) * 2018-10-01 2021-06-01 华为技术有限公司 一种确定运动信息的方法、帧间预测方法及装置
JP7189234B2 (ja) * 2018-12-21 2022-12-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置及び復号装置
CN109672886B (zh) * 2019-01-11 2023-07-04 京东方科技集团股份有限公司 一种图像帧预测方法、装置及头显设备

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5923786A (en) * 1995-07-17 1999-07-13 Sony Corporation Method and device for encoding and decoding moving images
US5652616A (en) * 1996-08-06 1997-07-29 General Instrument Corporation Of Delaware Optimal disparity estimation for stereoscopic video coding
US7206346B2 (en) * 1997-06-25 2007-04-17 Nippon Telegraph And Telephone Corporation Motion vector predictive encoding method, motion vector decoding method, predictive encoding apparatus and decoding apparatus, and storage media storing motion vector predictive encoding and decoding programs
US7016539B1 (en) * 1998-07-13 2006-03-21 Cognex Corporation Method for fast, robust, multi-dimensional pattern recognition
CN1194544C (zh) * 2003-04-25 2005-03-23 北京工业大学 基于时空域相关性运动矢量预测的视频编码方法
WO2008123753A1 (en) * 2007-04-09 2008-10-16 Lg Electronics Inc. A method and an apparatus for processing a video signal
CN101350920A (zh) * 2007-07-17 2009-01-21 北京华辰广正科技发展有限公司 一种面向全景视频的全局运动估计方法
CN101198064A (zh) * 2007-12-10 2008-06-11 武汉大学 一种分辨率分层技术中的运动矢量预测方法
CN101340583B (zh) * 2008-08-08 2010-07-28 浙江大学 基于h.264编码域的移动对象检测装置
WO2010093430A1 (en) * 2009-02-11 2010-08-19 Packetvideo Corp. System and method for frame interpolation for a compressed video bitstream
US8363721B2 (en) * 2009-03-26 2013-01-29 Cisco Technology, Inc. Reference picture prediction for video coding
CN101771878B (zh) * 2010-01-14 2011-05-25 广西大学 面向全景视频编码的自适应选择全局运动估计方法
EP2559243B1 (en) * 2010-04-13 2014-08-27 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. A video decoder and a video encoder using motion-compensated prediction
CN106162171B (zh) * 2010-04-13 2020-09-11 Ge视频压缩有限责任公司 解码器及方法、编码方法
JP5686018B2 (ja) * 2010-05-21 2015-03-18 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法および画像符号化プログラム
CN103039075B (zh) * 2010-05-21 2015-11-25 Jvc建伍株式会社 图像编码装置、图像编码方法、以及图像解码装置、图像解码方法
US9467689B2 (en) * 2010-07-08 2016-10-11 Dolby Laboratories Licensing Corporation Systems and methods for multi-layered image and video delivery using reference processing signals
CN103477635B (zh) * 2010-10-08 2017-01-18 Ge视频压缩有限责任公司 编码器和编码方法与解码器和解码方法
JP5716437B2 (ja) 2011-02-08 2015-05-13 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法および画像符号化プログラム
HUE061938T2 (hu) 2011-03-21 2023-09-28 Lg Electronics Inc Mozgásvektor-prediktor kiválasztása
US20130170553A1 (en) * 2012-01-04 2013-07-04 Qualcomm Incorporated Coding motion vector difference
CN103475883B (zh) * 2013-09-26 2016-07-06 北京航空航天大学 一种基于运动区域划分的hevc运动估计提前终止方法
JP6614472B2 (ja) * 2013-09-30 2019-12-04 サン パテント トラスト 画像符号化方法、画像復号方法、画像符号化装置及び画像復号装置
US10531116B2 (en) * 2014-01-09 2020-01-07 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding
CN103905826A (zh) * 2014-04-10 2014-07-02 北京工业大学 一种自适应全局运动估计方法

Also Published As

Publication number Publication date
CN104539966A (zh) 2015-04-22
KR20190143496A (ko) 2019-12-30
KR101945894B1 (ko) 2019-02-08
WO2016050051A1 (zh) 2016-04-07
CN112087629B (zh) 2021-08-20
US20210006818A1 (en) 2021-01-07
JP2021182752A (ja) 2021-11-25
JP7123863B2 (ja) 2022-08-23
KR20190014590A (ko) 2019-02-12
CN104539966B (zh) 2017-12-22
BR112017006018B1 (pt) 2023-12-19
EP3197165A1 (en) 2017-07-26
BR112017006018A2 (pt) 2018-06-26
EP3836547A1 (en) 2021-06-16
EP3836546A1 (en) 2021-06-16
BR122020019754B1 (pt) 2023-12-12
EP3197165A4 (en) 2017-08-02
CN107734335A (zh) 2018-02-23
CN112087630A (zh) 2020-12-15
CN112087630B (zh) 2022-04-08
US10827194B2 (en) 2020-11-03
JP7252282B2 (ja) 2023-04-04
KR102160564B1 (ko) 2020-09-28
JP2017535162A (ja) 2017-11-24
JP2019198092A (ja) 2019-11-14
CN112087629A (zh) 2020-12-15
KR20170044686A (ko) 2017-04-25
US20170188041A1 (en) 2017-06-29
JP6546277B2 (ja) 2019-07-17
EP3197165B1 (en) 2020-09-16
CN107734335B (zh) 2020-11-06

Similar Documents

Publication Publication Date Title
KR102060184B1 (ko) 픽쳐 예측 방법 및 관련 장치
JP7313816B2 (ja) 画像予測方法および関連装置
US10771809B2 (en) Picture prediction method and picture prediction apparatus
KR102005007B1 (ko) 픽쳐 예측 방법 및 관련 장치

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right