KR20140146541A - 움직임 정보를 획득하기 위한 방법 - Google Patents

움직임 정보를 획득하기 위한 방법 Download PDF

Info

Publication number
KR20140146541A
KR20140146541A KR20140072304A KR20140072304A KR20140146541A KR 20140146541 A KR20140146541 A KR 20140146541A KR 20140072304 A KR20140072304 A KR 20140072304A KR 20140072304 A KR20140072304 A KR 20140072304A KR 20140146541 A KR20140146541 A KR 20140146541A
Authority
KR
South Korea
Prior art keywords
block
motion vector
current
predictor
sub
Prior art date
Application number
KR20140072304A
Other languages
English (en)
Inventor
지에 첸
김일구
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20140146541A publication Critical patent/KR20140146541A/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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

Landscapes

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

Abstract

현재 블록 또는 서브 블록의 제 1 참조 블록 세트 안의 각 참조 블록의 움직임 벡터에 따라 상기 현재 블록 또는 서브 블록의 움직임 벡터의 제 1 예측자를 계산하고, 상기 현재 블록 또는 서브 블록의 제 2 참조 블록 세트 안의 각 참조 블록의 움직임 벡터와 상기 현재 블록 또는 서브 블록의 상기 제 2 참조 블록 세트 안의 상기 참조 블록의 상기 움직임 벡터의 제 1 예측자 간의 제 1 움직임 벡터 차이를 결정하며, 상기 현재 블록 또는 서브 블록의 상기 제 1움직임 벡터 차이의 예측자를 획득하기 위하여 상기 제 2 참조 블록 세트 안의 각 참조 블록의 상기 제 1 움직임 벡터 차이에 따라 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터와 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 1예측자 간의 제 1 움직임 벡터 차이를 예측하고, 및 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자와 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 1 예측자에 따라 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 제 2 예측자를 결정하는 것을 특징으로 하는 비디오 부호화 또는 복호화에 있어서 움직임 정보를 획득하기 위한 방법이 개시되어 있다. 상기 방법으로 부호화 또는 복호화 성능이 향상될 수 있다.

Description

움직임 정보를 획득하기 위한 방법 {Method for obtaining motion information}
본 발명은 비디오 부호화 또는 복호화에 있어서 움직임 정보를 획득하기 위한 방법에 관한 것이다.
일반적으로 사용되는 비디오 부호화 (encoding) 또는 복호화 (decoding) 기술들은 모두 하이브리드 구조에 기초하고, 주요 부호화 도구(coding tool)들은 예측 부호화(prediction coding), 변환 부호화(transform coding) 및 엔트로피 부호화(entropy coding)를 포함한다. 예측 부호화는 각각 시간축 안의 비디오 신호들의 상관관계(correlation)와 공간축 안의 비디오 신호들의 상관관계를 제거하는 인터-프레임 예측 부호화(inter-frame prediction coding)와 인트라-프레임 예측 부호화(intra-frame prediction coding)를 포함한다.
인터-프레임 예측 부호화는 부호화된 프레임의 이미지에 따라 현재 부호화된 프레임의 이미지를 예측할 수 있다. 그리고 예측 오차들(prediction residuals)은 변환되어 엔트로피 부호화된다. 현재 부호화된 프레임을 예측하기 위한 먼저 부호화된 프레임은 참조 프레임이라고 부른다. 참조 프레임 위의 예측 블록과 현재 부호화된 블록 간의 공간 위치 관계는 움직임 벡터로 복호화될 수 있다.
예측 기술들의 발전으로, 이미지의 예측 오차는 감소하고 있다. 따라서, 비트 스트림 안에서 이미지의 예측 오차 정보의 비율은 감소하고, 이에 따라 움직임 정보의 비중은 증가하였다. 움직임 벡터의 효율적인 부호화는 비디오 부호화의 성능에 있어서 중요하다.
비디오 부호화 또는 복호화에서 움직임 벡터를 처리하기 위한 두 가지 방법이 있다. 첫 번째 방법에서, 부호기는 움직임 추정을 통해 움직임 벡터를 획득한 후 움직임 벡터를 예측하고, 움직임 벡터와 움직임 벡터의 예측자 간의 움직임 벡터 차이를 비트 스트림(bit-stream)에 기록한다. 복호기는 같은 방법으로 움직임 벡터를 예측하고, 비트 스트림으로부터 읽은 움직임 벡터의 예측자와 움직임 벡터 차이에 따라 움직임 벡터를 재구성한다. 두 번째 방법은 부호기/복호기가 같은 방법으로 직접 움직임 벡터를 유도한다. 두 번째 방법으로 인해 비트 스트림 안에 움직임 벡터 차이를 전송할 필요가 없다. 그러나 어떠한 방법을 적용하여도, 움직임 정보는 유도된다. 유도된 움직임 정보는 움직임 벡터의 예측자, 움직임 벡터, 움직임 벡터의 예측자의 후보 또는 움직임 벡터의 후보가 될 수 있다.
H.264/Advanced Video Coding (AVC)에서, 움직임 벡터는 인터-프레임 예측 모드(inter-frame prediction mode)에서 중간값 예측 방법으로 예측된다. 중간값 예측 방법에서, 현재 부호화된 블록과 인접한 세 개의 부호화된 블록들은 선택되고, 세 개의 부호화된 블록들의 움직임 벡터들의 수평 성분들의 중간 값과 세 개의 부호화된 블록들의 움직임 벡터들의 수직 성분들의 중간 값은 각각 현재 부호화된 블록의 움직임 벡터의 예측자의 수평 성분과 수직 성분으로 채택된다. 시간적 다이렉트 모드(temporal direct mode)에서, 현재 부호화된 블록과 동일한 공간 위치를 가지는 참조 프레임의 블록의 움직임 벡터는 스케일링되고(scaled), 현재 부호화된 블록의 움직임 벡터로 채택된다.
Audio Video coding Standard (AVS)에서, 움직임 벡터는 인터-프레임 예측 모드에서 거리 중간값 방법으로 예측된다. 거리 중간값 방법에서 공간상 현재 부호화된 블록과 근접한 세 개의 부호화된 블록들은 선택되고, 세 개의 부호화된 블록들의 움직임 벡터들 중 두 움직임 벡터 사이의 거리는 계산되며, 계산된 거리들의 중간값에 대응되는 움직임 벡터가 현재 부호화된 블록의 움직임 벡터의 예측자로 채택된다. 시간적 다이렉트 모드에서 현재 부호화된 블록과 동일한 공간 위치를 가지는 참조 프레임의 블록의 움직임 벡터는 스케일링되고 현재 부호화된 블록의 움직임 벡터로 채택된다.
최신 국제 비디오 부호화 표준인 High Efficiency Video Coding (HEVC)에서, 움직임 벡터 경쟁 기법(motion vector competition scheme)이 소개되었다. 움직임 벡터 경쟁 계획에서, 후보 움직임 벡터 세트는 규칙에 따라 유도되고, 적합한 후보 움직임 벡터가 후보 움직임 벡터 세트 중에서 선택되어, 현재 부호화된 움직임 벡터의 예측자로 채택된다. 그리고 선택된 움직임 벡터는 비트 스트림으로 전송된다. 후보 움직임 벡터 세트 공간적 후보 움직임 벡터들과 시간적 후보 움직임 벡터들을 포함할 수 있다. 공간적 후보 움직임 벡터들은 현재 부호화된 블록과 인접한 좌측 블록들과 상단 블록들의 움직임 벡터들로부터 특정 규칙과 우선권에 따라 선택될 것이다. 시간적 후보 움직임 벡터들은 현재 부호화된 블록과 공간적으로 인접하거나 같은 공간 위치를 가지는 참조 프레임의 블록들의 움직임 벡터들로부터 특정 규칙과 우선권에 따라 선택될 것이다.
기존의 기술들에서 움직임 벡터는 오직 한 번 유도되거나 예측되고, 유도 또는 예측된 값은 최종 움직임 벡터 또는 예측자로 채택된다. 그러나 서로 공간적 또는 시간적으로 인접한 블록들의 움직임 벡터 차이들은 여전히 상관관계를 가지고 있고, 움직임 벡터 차이들 간의 상관관계는 기존의 비디오 부호화 또는 복호화 방법에서 이용되지 않는다. 예를 들어 중간값 또는 거리에 기초한 움직임 벡터 예측 또는 유도 방법에서, 오직 현재 부호화된 블록의 동일한 프레임에 위치한 블록들의 움직임 벡터들만이 고려되고, 따라서 오직 공간 영역의 움직임 벡터들의 상관관계만이 제거될 수 있다. 그러나 움직임 벡터 차이들은 여전히 시간 영역의 움직임 벡터들의 상관관계를 갖는다. H.264/AVC 및 AVS의 시간적 다이렉트 모드에서, 움직임 벡터 유도 방법은 오직 현재 부호화된 블록의 동일한 공간 위치에 위치한 참조 프레임들 위의 블록들의 움직임 벡터들만이 고려된다. 이 방법을 통해 유도된 움직임 벡터는 시간적 상관관계를 활용하지만, 동일한 프레임 안의 현재 부호화된 블록과 현재 부호화된 블록에 인접한 블록들과 간의 상관관계를 고려하지 않는다. 따라서, 유도된 움직임 벡터들은 최적이 아니다. HEVC의 경쟁 계획에 기초한 움직임 벡터 예측 및 유도 방법에서, 시간적 후보 움직임 벡터와 공간적 후보 움직임 벡터 모두 후보 움직임 벡터 세트 안에 포함되고 최적 움직임 벡터가 선택되더라도, 인접 블록들의 움직임 벡터 차이들은 여전히 상관관계를 가지고 있다.
본 발명의 일 실시 예는, 비디오 이미지의 현재 블록 또는 서브 블록의 움직임 정보를 결정하는 방법을 포함하는 비디오 부호화 또는 복호화에 있어서 움직임 정보를 획득하기 위한 방법을 제공한다.
본 발명의 다른 실시 예는, 비디오 부호화 또는 복호화에 있어서 움직임 정보를 획득하기 위한 장치를 제공한다.
본 발명은 비디오 부호화 또는 복호화에 있어서 움직임 정보를 획득하기 위한 방법 및 장치를 제공한다. 상기 방법 및 장치로써 부호화 성능을 향상시킬 수 있다. 다음과 같이 본 발명의 해결책이 구현된다.
비디오 부호화 또는 복호화에 있어서 움직임 정보를 획득하기 위한 방법은 비디오 이미지의 현재 블록 또는 서브 블록의 움직임 정보를 결정하는 과정을 포함한다. 이 과정은
현재 블록 또는 서브 블록의 제 1 참조 블록 세트의 각 참조 블록의 움직임 벡터에 따라 상기 현재 블록 또는 서브 블록의 움직임 벡터의 제 1 예측자를 계산하는 단계,
현재 블록 또는 서브 블록의 제 2 참조 블록 세트의 각 참조 블록의 움직임 벡터와 현재 블록 또는 서브 블록의 제 2 참조 블록 세트의 참조 블록의 움직임 벡터의 제 1 예측자 간의 제 1 움직임 벡터 차이를 결정하고, 현재 블록 또는 서브 블록의 제 1움직임 벡터 차이의 예측자를 획득하기 위하여 제 2 참조 블록 세트의 각 참조 블록의 제 1 움직임 벡터 차이에 따라 현재 블록 또는 서브 블록의 움직임 벡터와 현재 블록 또는 서브 블록의 움직임 벡터의 예측자 간의 제 1 움직임 벡터 차이를 예측하는 단계, 및
현재 블록 또는 서브 블록의 제 1 움직임 벡터 차이의 예측자와 현재 블록 또는 서브 블록의 움직임 벡터의 제 1 예측자에 따라 현재 블록 또는 서브 블록의 움직임 벡터의 제 2 예측자를 결정하는 단계를 포함할 수 있고,
상기 제 1 참조 블록 세트는 최초로 현재 블록 또는 서브 블록의 움직임 벡터를 예측하거나 유도하기 위한 참조 블록들을 포함하고,
상기 제 2 참조 블록 세트는 현재 블록 또는 서브 블록의 제 1 움직임 벡터 차이를 예측하기 위한 참조 블록들을 포함할 수 있다.
상기 현재 블록의 상기 제 1 참조 블록 세트는 현재 프레임 안의 상기 현재 블록에 인접한 부호화된 블록 또는 복호화된 블록을 포함하거나, 상기 현재 프레임의 참조 프레임 안의 공간적으로 상기 현재 블록에 인접하거나 겹치는 부호화된 블록 또는 복호화된 블록을 포함하고,
상기 현재 블록의 상기 제 2 참조 블록 세트는 상기 현재 블록에 인접한 상기 현재 프레임에서 부호화된 블록 또는 복호화된 블록을 포함하거나, 상기 현재 프레임의 상기 참조 프레임 안에 공간적으로 상기 현재 블록에 인접하거나 겹치는 부호화된 블록 또는 복호화된 블록을 포함하고,
상기 현재 서브 블록의 상기 제 1 참조 블록 세트는 상기 현재 서브 블록 또는 상기 현재 서브 블록의 상기 블록에 인접한 상기 현재 프레임에서 부호화된 블록 또는 복호화된 블록을 포함하거나, 공간적으로 상기 현재 서브 블록 또는 상기 현재 서브 블록의 상기 블록에 인접하거나 겹치는 상기 현재 프레임의 상기 참조 프레임에서 부호화된 블록 또는 복호화된 블록을 포함하고, 및
상기 현재 서브 블록의 상기 제 2 참조 블록 세트는 상기 현재 서브 블록 또는 상기 현재 서브 블록의 상기 블록에 인접한 상기 현재 프레임에서 부호화된 블록 또는 복호화된 블록을 포함하거나, 공간적으로 상기 현재 서브 블록 또는 상기 현재 서브 블록의 상기 블록에 인접하거나 겹치는 상기 현재 프레임의 상기 참조 프레임에서 부호화된 블록 또는 복호화된 블록을 포함할 수 있다.
상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 1 예측자를 계산하는 단계에 있어서,
부호기에 의하여, 상기 현재 블록 또는 서브 블록의 상기 제 1 참조 블록 세트 안의 각 참조 블록의 상기 모션 벡터에 따라 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 1 예측자를 유도하고, 비트 스트림에 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 1 예측자의 유도 정보를 기록하는 단계, 및
복호기에 의하여, 상기 현재 블록 또는 서브 블록의 상기 제 1 참조 블록 세트 안의 각 참조 블록의 상기 모션 벡터에 따라 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 1 예측자와 상기 비트 스트림 안의 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 1 예측자의 상기 유도 정보를 유도하는 단계를 포함할 수 있다.
상기 제 2 참조 블록 세트 안의 각 참조 블록의 상기 움직임 벡터와 상기 현재 블록 또는 서브 블록의 상기 제 2 참조 블록 세트 안의 상기 참조 블록의 상기 움직임 벡터의 상기 제 1 예측자 간의 상기 제 1 움직임 벡터 차이를 결정하는 단계에 있어서,
상기 현재 블록 또는 서브 블록의 상기 움직임 정보가 결정된 때, 상기 제 2 참조 블록 세트 안의 각 참조 블록의 상기 움직임 벡터와 상기 제 2 참조 블록 세트 안의 상기 참조 블록의 상기 움직임 벡터의 제 1 예측자를 획득하고, 상기 현재 블록 또는 서브 블록의 상기 제 2 참조 블록 세트의 상기 참조 블록의 상기 제 1 움직임 벡터 차이로 상기 제 2 참조 블록 세트 안의 상기 참조 블록의 상기 움직임 벡터와 상기 제 2 참조 블록 세트 안의 상기 참조 블록의 상기 움직임 벡터의 상기 제 1 예측자 간의 차이를 선택하는 단계,
상기 현재 블록 또는 서브 블록의 제 2 참조 블록 세트 안의 각 참조 블록에 대하여, 상기 참조 블록의 움직임 정보가 결정된 후, 상기 참조 블록의 다음에 처리되는 블록 또는 서브 블록의 움직임 정보가 결정되기 전에, 상기 참조 블록의 상기 제 1 움직임 벡터 차이로 상기 참조 블록의 움직임 벡터와 상기 참조 블록의 상기 움직임 벡터의 제 1 예측자 간의 차이를 선택하고, 상기 참조 블록의 상기 제 1 움직임 벡터 차이를 저장하는 단계, 및
상기 현재 블록 또는 서브 블록의 상기 움직임 정보가 결정되면, 상기 제 2 참조 블록 세트 안의 각 참조 블록의 저장된 제 1 움직임 벡터 차이를 획득하는 단계를 포함할 수 있다.
상기 현재 블록 또는 서브 블록의 상기 제 2 참조 블록 세트의 참조 블록의 움직임 벡터 또는 상기 현재 블록 또는 서브 블록의 상기 제 2 참조 블록 세트의 상기 참조 블록의 상기 움직임 벡터의 예측자가 존재하지 않을 때, 상기 움직임 정보를 획득하기 위한 방법은,
상기 참조 블록의 제 1 움직임 벡터 차이는 상기 현재 블록 또는 서브 블록의 제 1 움직임 벡터 차이의 상기 예측자의 계산에 사용되지 않을 때, 상기 참조 블록의 상기 제 1 움직임 벡터 차이가 존재하지 않는다고 판단하는 단계, 또는
상기 참조 블록의 제 1 움직임 벡터 차이는 상기 현재 블록 또는 서브 블록의 제 1 움직임 벡터 차이의 상기 예측자의 계산에 사용될 때, 상기 참조 블록의 상기 제 1 움직임 벡터 차이를 영 벡터로 설정하는 단계를 포함할 수 있다.
상기 현재 블록 또는 서브 블록의 상기 제 2 참조 블록 세트 안의 상기 참조 블록의 상기 제 1 움직임 벡터 차이가 존재하지 않을 때, 상기 움직임 정보를 획득하기 위한 방법은 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자를 영 벡터로 설정하는 단계를 포함하거나,
상기 현재 블록 또는 서브 블록의 상기 제 2 참조 블록 세트 안의 모든 참조 블록들의 제 1 움직임 벡터 차이들이 존재하지 않을 때, 상기 움직임 정보를 획득하기 위한 방법은 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자를 영 벡터로 설정하는 단계를 포함할 수 있다.
상기 현재 블록 또는 서브 블록의 제 1 움직임 벡터 차이를 예측하는 단계는,
상기 제 2 참조 블록 세트의 상기 참조 블록들의 제 1 움직임 벡터 차이들의 수평 성분들 중 최소값을 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자의 수평 성분으로 채택하고, 상기 제 2 참조 블록 세트의 상기 참조 블록들의 제 1 움직임 벡터 차이들의 수직 성분들 중 최소값을 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자의 수직 성분으로 채택하는 단계, 또는
상기 제 2 참조 블록 세트의 상기 참조 블록들의 제 1 움직임 벡터 차이들의 평균을 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자로 채택하는 단계, 또는
상기 제 2 참조 블록 세트의 상기 참조 블록들의 제 1 움직임 벡터 차이들의 수평 성분들 중 중간값을 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자의 수평 성분으로 채택하고, 상기 제 2 참조 블록 세트의 상기 참조 블록들의 제 1 움직임 벡터 차이들의 수직 성분들 중 중간값을 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자의 수직 성분으로 채택하는 단계, 또는
상기 제 2 참조 블록 세트의 상기 참조 블록들의 제 1 움직임 벡터 차이들 중 각 두 개 사이의 거리를 계산하고, 상기 거리들에 따라 상기 현재 블록 또는 서브 블록의 제 1 움직임 벡터 차이의 상기 예측자를 유도하는 단계, 또는
부호기에 의하여, 상기 제 2 참조 블록 세트의 각 참조 블록의 상기 제 1 움직임 벡터 차이에 따라 상기 현재 블록 또는 서브 블록의 제 1 움직임 벡터 차이의 상기 예측자를 유도하고, 상기 현재 블록 또는 서브 블록의 제 1 움직임 벡터 차이의 상기 예측자의 유도 정보를 비트 스트림에 기록하는 단계, 및 복호기에 의하여, 상기 제 2 참조 블록 세트 안의 각 참조 블록의 상기 제 1 움직임 벡터 차이에 따라 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자, 및 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자의 상기 유도 정보를 유도하는 단계를 포함할 수 있다.
상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 2 예측자를 결정하는 단계는,
상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자와 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 1 예측자의 합 또는 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자와 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 1 예측자의 가중합을 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 2 예측자로 채택하는 단계를 포함할 수 있다.
상기 현재 블록 또는 서브 블록의 상기 제 1 참조 블록 세트 안의 상기 참조 블록들은 상기 현재 블록 또는 서브 블록의 상기 제 2 참조 블록 세트 안의 상기 참조 블록들과 동일하거나 다를 수 있다.
블록 내에서 다른 서브 블록들에 대하여, 서브 블록의 제 1 참조 블록 세트 안의 참조 블록들은 또 다른 서브 블록의 제 1 참조 블록 세트 안의 참조 블록들과 동일하거나 다르고, 서브 블록의 제 2 참조 블록 세트 안의 참조 블록들은 또 다른 서브 블록의 제 2 참조 블록 세트 안의 참조 블록들과 동일하거나 다를 수 있다.
상기 제 1 참조 블록 세트 또는 상기 제 2 참조 블록 세트 안의 참조 블록의 움직임 정보가 서브 블록 안에서 결정될 때, 상기 참조 블록은 서브 블록일 수 있다.
비디오 부호화 또는 복호화에서의 움직임 정보를 획득하기 위한 장치에 있어서,
현재 블록 또는 서브 블록의 제 1 참조 블록 세트 안의 각 참조 블록의 움직임 벡터를 획득하고, 상기 현재 블록 또는 서브 블록의 제 2 참조 블록 세트 안의 각 참조 블록과 상기 현재 블록 또는 서브 블록의 상기 제 2 참조 블록 세트 안의 상기 참조 블록의 상기 움직임 벡터의 제 1 예측자 간의 제 1 움직임 벡터 차이를 결정하는 입력부,
상기 제 1 참조 블록 세트 안의 각 참조 블록의 상기 움직임 벡터에 따라 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 1 예측자를 계산하고, 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자를 획득하기 위하여 상기 제 2 참조 블록 세트 안의 각 참조 블록의 상기 제 1 움직임 벡터 차이에 따라 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이를 예측하는 예측부, 및
상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 1 예측자에 따라 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 제 2 예측자를 결정하는 계산부를 포함하고,
상기 제 1 참조 블록 세트는 최초로 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터를 예측하거나 유도하기 위한 참조 블록들을 포함하고,
상기 제 2 참조 블록 세트는 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이를 예측하기 위한 참조 블록들을 포함할 수 있다.
상기 해결책에서 알 수 있는 바와 같이, 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터는 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 제 1 예측자를 획득하기 위하여 예측된다. 그리고 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이는 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자를 유도하기 위하여 상기 제 2 참조 블록 세트 안의 참조 블록들의 제 1 움직임 벡터 차이들에 따라 예측된다. 그 후에, 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 2 예측자는 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자와 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 1 예측자에 따라 획득되고, 현재 블록의 움직임 벡터의 최종 예측자, 현재 블록의 움직임 벡터의 예측자의 후보, 현재 블록의 움직임 벡터 또는 현재 블록의 움직임 벡터의 후보로 채택될 수 있다. 상기 방법에 의해, 상기 참조 블록의 움직임 벡터 차이들과 현재 블록 또는 서브 블록 간의 상관 관계는 현재 블록 / 서브 블록의 움직임 벡터의 차이를 추정하는 것에 충분히 활용될 수 있고, 또한 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 정확한 ??제 2 예측자를 구하기 위하여 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 1 예측자를 정정할 수 있다. 이로 인하여 움직임 정보와 부호화 성능의 정확도가 크게 향상될 수 있다.
기존의 비디오 부호화 또는 복호화 방법에서, 움직임 벡터는 오직 한 번만 유도되거나 예측되었다. 그러나 공간적 또는 시간적으로 인접한 블록의 움직임 벡터 차이는 여전히 상관 관계를 가지고 있다. 따라서, 움직임 벡터 차이들의 상관관계를 완전히 활용하기 위해, 본 발명은 움직임 벡터를 2회 유도하거나 예측하여 움직임 벡터를 더 정확히 유도 또는 예측할 수 있다.
도 1은 본 발명의 실시 예에 따른 움직임 벡터를 구하는 방법을 설명하는 순서도이다.
도 2는 본 발명에 따른 제 1 실시 예의 흐름도이다.
도 3은 본 발명의 일 실시 예에 따라 현재 블록의 제 1 카테고리의 참조 블록을 나타낸 개략도이다.
도 4는 본 발명에 따른 제 2 실시 예의 흐름도이다.
도 5는 본 발명의 일 실시 예에 따라 현재 블록의 제 2 카테고리의 참조 블록을 나타낸 개략도이다.
도 6은 본 발명에 따른 제 3 실시 예의 흐름도이다.
도 7은 본 발명에 따른 제 4 실시 예의 흐름도이다.
도 8은 본 발명에 따른 제 5 실시 예의 흐름도이다.
도 9는 본 발명의 다른 실시 예에 따라 현재 블록의 제 1 카테고리의 참조 블록을 나타낸 개략도이다.
도 10은 본 발명의 다른 실시 예에 따라 현재 블록의 제 2 카테고리의 참조 블록을 나타낸 개략도이다.
도 11은 본 발명에 따른 제 6 실시 예의 흐름도이다.
도 12는 본 발명의 다른 실시 예에 따라 현재 블록의 제 1 카테고리의 참조 블록을 나타낸 개략도이다.
도 13은 본 발명의 다른 실시 예에 따라 현재 블록의 제 2 카테고리의 참조 블록을 나타낸 개략도이다.
도 14는 본 발명의 실시 예에 따른 움직임 정보를 획득하기 위한 장치를 나타내는 개략도이다.
도 15는 본 발명의 실시 예에 따른 장치에서의 입력부의 구성을 나타내는 개략도이다.
도 16은 본 발명의 실시 예에 따른 장치에 있어서의 예측부 구성을 나타내는 개략도이다.
본 발명의 목적, 기술적 해결책 및 효과를 명확히 하기 위하여, 아래에서 본 발명은 첨부 도면을 참조하여 상세히 설명될 것이다.
배경 기술에서 언급한 바와 같이, 기존의 비디오 부호화 또는 복호화 방법에서, 움직임 벡터는 오직 한 번만 유도되거나 예측되었다. 그러나 공간적 또는 시간적으로 인접한 블록의 움직임 벡터 차이는 여전히 상관 관계를 가지고 있다. 따라서, 부호화 성능은 상기 상관 관계를 활용함으로써 개선될 수 있다. 움직임 벡터 차이들의 상관관계를 완전히 활용하기 위해, 본 발명은 도1에서 도시되어 있는 것과 같이 움직임 벡터를 획득하기 위한 방법을 제공한다.
블록 (101)에서 현재 블록 또는 서브 블록의 움직임 벡터의 제 1 예측자는 현재 블록 또는 서브 블록의 제 1참조 블록 세트 안의 각 참조 블록의 움직임 벡터에 따라 계산된다.
제 1참조 블록 세트는 최초로 현재 블록 또는 서브 블록의 움직임 벡터를 예측하거나 유도하기 위하여 참조 블록들을 포함한다.
블록 (102)에서 현재 블록 또는 서브 블록의 제 2참조 블록 세트 안의 각 참조 블록의 움직임 벡터와 현재 블록 또는 서브 블록의 제 2참조 블록 세트 안의 참조 블록의 움직임 벡터의 제 1 예측자 간의 제 1 움직임 벡터 차이는 결정된다. 그리고 현재 블록 또는 서브 블록의 움직임 벡터와 현재 블록 또는 서브 블록의 움직임 벡터의 제 1 예측자 간의 제 1 움직임 벡터 차이는 현재 블록 또는 서브 블록의 제 1 움직임 벡터 차이의 예측자를 획득하기 위하여 제 2 참조 블록 세트 안의 각 참조 블록의 제 1 움직임 벡터 차이에 따라 예측된다.
제 2 참조 블록 세트는 현재 블록 또는 서브 블록의 제 1 움직임 벡터 차이를 예측하기 위하여 참조 블록들을 포함한다.
블록 (103)에서 현재 블록 또는 서브 블록의 제 1 움직임 벡터 차이의 예측자와 현재 블록 또는 서브 블록의 움직임 벡터의 제 1 예측자에 따라 현재 블록 또는 서브 블록의 움직임 벡터의 제 2 예측자는 결정된다.
그러므로, 움직임 정보를 획득하기 위한 방법의 흐름도는 종료된다. 위 흐름도에서 획득된 움직임 벡터의 제 2 예측자는 현재 블록 또는 서브 블록의 부호화 또는 복호화를 위해 사용될 수 있는 현재 블록 또는 서브 블록의 움직임 벡터의 예측자, 현재 블록 또는 서브 블록의 움직임 벡터의 예측자의 후보, 현재 블록 또는 서브 블록의 움직임 벡터 또는 현재 블록 또는 서브 블록의 움직임 벡터의 후보로 채택될 수 있다. 상기 흐름도에서 알 수 있는 바와 같이, 움직임 정보를 획득하기 위한 방법은 움직임 벡터의 보조적인 예측 또는 유도 방법으로 간주될 수 있다. 움직임 벡터의 예측 프로세스에서, 움직임 벡터의 예측 이후 최초로 생성되는 움직임 벡터 차이는 움직임 벡터 차이의 예측자를 획득하기 위하여 다시 예측될 수 있다. 그리고 움직임 벡터의 최후 예측자는 상기 두 개의 예측들 (predictions) 의 결과에 따라 획득될 수 있다. 움직임 벡터의 유도 프로세스에서, 움직임 벡터의 유도된 값이 먼저 획득되고, 움직임 벡터 차이의 유도된 값이 근접한 블록들의 제 1 움직임 벡터 차이들의 정보에 따라 획득된다. 그리고 움직임 벡터의 최후 유도 변수는 상기 두 개의 유도된 값에 따라 획득된다. 그렇게 함으로써 유도된 움직임 벡터의 정확성이 향상될 수 있다.
최초로 예측 프로세스를 통해 획득된 현재 블록 또는 서브 블록의 움직임 벡터의 예측자와 최초로 유도 프로세스를 통해 획득된 현재 블록 또는 서브 블록의 움직임 벡터의 유도된 값은 움직임 벡터의 제 1 예측자라고 칭한다. 본 발명에서 두 번의 예측들 (predictions) 또는 두 번의 유도들 (derivations)의 결과에 따른 획득된 움직임 벡터의 추정 결과는 움직임 벡터의 제 2 예측자라고 칭한다. 비트 스트림 안의 유도 정보 전송 방법은 현재 블록 또는 서브 블록의 움직임 벡터의 제 1 예측자 및/또는 현재 블록 또는 서브 블록의 제 1 움직임 벡터 차이의 예측자의 계산에 적용될 수 있다. 이 방법에서 부호기)는 움직임 벡터의 제 1 예측자의 유도 정보 및/또는 제 1 움직임 벡터 차이의 예측자의 유도 정보를 비트 스트림에 기록한다. 그리고 복호기는 비트 스트림의 유도 정보를 따라 움직임 벡터의 제 1 예측자 및/또는 제 1 움직임 벡터 차이의 예측자를 계산한다.
현재 프레임(current frame)과 현재 블록과 공간상 근접하거나 겹치는 참조 프레임(reference frame)의 블록들은 모두 본 발명의 두 번의 예측 또는 유도 프로세스들에 사용되거나, 각각 본 발명의 두 예측 또는 유도 프로세스들에 사용될 수 있다. 따라서 다른 블록들의 움직임 벡터들의 공간적, 시간적 상관관계는 최대로 제거될 수 있고, 움직임 벡터들의 부호화 효율은 증가할 수 있다.
블록이 여러 개의 서브 블록으로 분리되면, 움직임 정보를 획득하기 위한 방법은 각 서브 블록의 움직임 정보를 획득하기 위하여 각 서브 블록에 적용된다. 블록과 서브 블록 안의 움직임 정보를 획득하기 위한 방법은 본 발명의 실시 예들을 따라 구현될 수 있다. 본 발명의 솔루션은 실시 예를 참고하여 설명된다.
제 1, 2, 3 및 4 실시 예들에서, 움직임 정보는 현재 블록에 대하여 결정된다. 그리고 현재 블록의 움직임 정보를 유도하는 흐름도는 각 실시 에에 제공된다. 제 5 및 6실시 예들에서, 현재 블록이 여러 개의 서브 블록들로 분리된다. 그리고 움직임 정보는 각 서브 블록에 대하여 결정된다. 그리고 서브 블록들의 움직임 정보를 유도하는 흐름도는 각 실시 예에 제공된다.
제 1 실시 예는 다음과 같이 설명된다.
도 2 는 본 발명에 따른 제 1 실시 예의 흐름도이다. 도 3은 본 발명의 일 실시 예에 따른 현재 블록의 제 1 카테고리의 참조 블록들을 설명하는 개략도이다. 도 2에서 볼 수 있듯이 제 1 실시 예에 따라 움직임 정보를 획득하는 방법은 다음 블록들을 포함한다.
블록 (201)에서 현재 블록의 제 1 참조 블록 세트는 결정된다.
본 발명에서, 제 1 참조 블록 세트와 제 2 참조 블록 세트는 적어도 제1 카테고리의 참조 블록과 제 카테고리의 참조 블록 중 하나를 포함한다. 제 1 카테고리의 참조 블록들은 현재 블록과 인접한 현재 프레임의 부호화 또는 복호화된 블록이다. 제 2 카테고리의 참조 블록들은 공간적으로 현재 블록들과 겹치거나 인접한 참조 프레임의 부호화 또는 복호화된 블록이다.
이 실시 예에서 블록(201)은 다음과 같이 구현될 수 있다. 제 1 참조 블록 세트는 오직 제 1 카테고리의 참조 블록들을 포함한다. 도 3에서 도시되어 있듯이, 현재 블록의 제 1 카테고리의 참조 블록들은 AL1, AL2, AU1, AU2, AU3, AC1 및 AC2을 포함한다. 이 실시 예에서 현재 블록의 제 1 참조 블록 세트 안의 참조 블록들은 현재 블록의 좌측 상단 꼭지점 위에 위치한 인접 블록 AU1, 현재 블록의 좌측 상단 꼭지점 좌측에 위치한 인접 블록 AL2 및 현재 블록의 좌측 상단 꼭지점의 좌측 상단에 위치한 인접 블록 AC2으로 구성될 수 있다.
블록(202)에서 제 1 참조 블록 세트 안의 각 참조 블록의 움직임 벡터는 획득된다.
블록(202)에서 제 1 참조 블록 세트 안의 각 참조 블록의 움직임 벡터가 획득된 때, 만약 제 1 참조 블록 세트 안의 특정 참조 블록의 움직임 벡터가 존재하지 않으면, 참조 블록의 움직임 벡터가 존재하지 않는다고 표시하는 표시가 리턴(return)된다.
블록 (203)에서 블록(202)에서 획득한 제 1 참조 블록 세트 안의 각 참조 블록의 움직임 벡터에 따라 현재 블록의 움직임 벡터의 제 1 예측자는 계산된다.
블록 (203)에서 기존의 부호화 또는 복호화 방법에서 사용되던 현재 블록의 움직임 벡터를 예측하고 유도하기 위한 동일한 방법에 따라 현재 블록의 움직임 벡터의 제 1 예측자는 계산될 수 있다.
블록 (203)은 다음과 같이 구현될 수 있다. 블록 (202)에서 획득된 움직임 벡터들의 수평 성분들의 평균 값과 블록 (202)에서 획득된 움직임 벡터들의 수직 성분들의 평균 값이 각각 계산되고, 현재 블록의 움직임 벡터의 예측자의 수평 성분과 현재 블록의 움직임 벡터의 예측자의 수직 성분으로 채택한다. 만약 제 1 참조 블록 세트 안의 특정 참조 블록의 움직임 벡터가 존재하지 않을 경우, 존재하지 않는 움직임 벡터는 영(zero) 벡터로 설정된다.
더 나아가, 제 1 참조 블록 세트 안의 참조 블록이 위치한 프레임과 제 1 참조 블록 세트 안의 참조 블록이 위치한 프레임의 참조 프레임 간의 거리가 현재 블록이 위치한 프레임과 현재 블록이 위치한 프레임의 참조 프레임 간의 거리와 다를 수 있다. 이에 따라, 부호화 또는 복호화 성능을 향상시키기 위하여, 제 1 참조 블록 세트 안의 참조 블록의 움직임 벡터는 블록 (203)에서 현재 블록의 움직임 벡터의 제 1 예측자가 결정되기 전에 제 1 참조 블록 세트 안의 참조 블록이 위치한 프레임과 제 1 참조 블록 세트 안의 참조 블록이 위치한 프레임의 참조 프레임 간의 거리와 현재 블록이 위치한 프레임과 현재 블록이 위치한 프레임의 참조 프레임 간의 거리에 따라 스케일링될 수 있다. 그리고 현재 블록의 움직임 벡터의 제 1 예측자는 스케일링된 움직임 벡터에 따라 계산될 수 있다. 그렇게 함으로써 제 1 예측자의 정확도가 향상될 수 있다.
블록 (204)에서 현재 블록의 제 2 참조 블록 세트는 결정된다.
블록 (204)는 다음과 같이 구현될 수 있다. 제 2 참조 블록 세트는 오직 제 1 카테고리의 참조 블록들을 포함한다. 도 3에서 볼 수 있듯이, 현재 블록의 제 1 카테고리의 참조 블록들은 AL1, AL2, AU1, AU2, AU3, AC1 및 AC2을 포함한다. 이 실시 예에서 현재 블록의 제 2 참조 블록 세트 안의 참조 블록들은 현재 블록의 좌측 상단 꼭지점 위에 위치한 인접 블록 AU1, 현재 블록의 좌측 상단 꼭지점 좌측에 위치한 인접 블록 AL2 및 현재 블록의 좌측 상단 꼭지점의 좌측 상단에 위치한 인접 블록 AC2으로 구성될 수 있다.
블록 (205)에서 제 2 참조 블록 세트 안의 각 참조 블록의 움직임 벡터와 제 2 참조 블록 세트 안의 각 참조 블록의 움직임 벡터의 제 1 예측자는 획득된다. 그리고 참조 블록의 움직임 벡터와 참조 블록의 움직임 벡터의 제 1 예측자 간의 제 1 움직임 벡터 차이가 계산된다.
블록 (205)에서 제 2 참조 블록 세트 안의 각 참조 블록의 움직임 벡터와 제 2 참조 블록 세트 안의 각 참조 블록의 움직임 벡터의 제 1 예측자가 획득될 때, 만약 각 참조 블록의 움직임 벡터 또는 각 참조 블록의 움직임 벡터의 제 1 예측자가 존재하지 않을 때, 참조 블록의 제 1 움직임 벡터 차이가 존재하지 않는다고 표시하는 표시가 리턴(return)된다.
제 2 참조 블록 세트 안의 참조 블록들은 모두 부호화된 블록들이다. 그러므로 제 2 참조 블록 세트 안의 참조 블록들의 움직임 벡터들과 제 2 참조 블록 세트 안의 참조 블록들의 움직임 벡터들의 제 1 예측자들은 생성된다. 여기서 각 참조 블록의 움직임 벡터와 참조 블록의 움직임 벡터의 제 1 예측자는 직접적으로 획득된다. 그리고 참조 블록의 제 1 움직임 벡터 차이를 획득하기 위하여 참조 블록의 움직임 벡터의 제 1 예측자는 참조 블록의 움직임 벡터에서 제(除)한다.
블록 (203)과 유사하게, 제 2 참조 블록 세트 안의 참조 블록이 위치한 프레임과 제 2 참조 블록 세트 안의 참조 블록이 위치한 프레임의 참조 프레임 간의 거리가 현재 블록이 위치한 프레임과 현재 블록이 위치한 프레임의 참조 프레임 간의 거리와 다를 수 있다. 이에 따라, 부호화 또는 복호화 성능을 향상시키기 위하여, 블록 (205)에서 제 2 참조 블록 세트 안의 참조 블록의 움직임 벡터와 제 2 참조 블록 세트 안의 참조 블록의 움직임 벡터의 제 1 예측자는 제 2 참조 블록 세트 안의 참조 블록의 제 1 움직임 벡터 차이가 계산되기 전에 제 2참조 블록 세트 안의 참조 블록이 위치한 프레임과 제 2 참조 블록 세트 안의 참조 블록이 위치한 프레임의 참조 프레임 간의 거리와 현재 블록이 위치한 프레임과 현재 블록이 위치한 프레임의 참조 프레임 간의 거리에 따라 스케일링될 수 있다. 그렇게 함으로써 제 2 참조 블록 세트 안의 참조 블록의 제 1 움직임 벡터 차이의 정확도가 향상될 수 있다.
도 2를 참조하여 현재 블록과 참조 블록 A의 움직임 정보가 유도된 대로 제 2 참조 블록 세트 안의 참조 블록 A가 정해질 때, 만약 참조 블록 A의 제 1 참조 블록 세트 안의 참조 블록의 움직임 벡터가 블록 203에서 스케일링되지 않은 경우, 참조 블록 A의 움직임 벡터의 제 1 예측자는 제 1참조 블록 세트 안의 참조 블록이 위치한 프레임과 제 1 참조 블록 세트 안의 참조 블록이 위치한 프레임의 참조 프레임 간의 거리와 현재 블록이 위치한 프레임과 현재 블록이 위치한 프레임의 참조 프레임 간의 거리에 따라 스케일링될 수 있다. 또는, 도 2를 참조하여 현재 블록과 참조 블록 A의 움직임 정보가 유도된 대로 제 2 참조 블록 세트 안의 참조 블록 A가 정해질 때, 만약 참조 블록 A의 제 1 참조 블록 세트 안의 참조 블록 B의 움직임 벡터가 블록 203에서 완전히 스케일링되지 않은 경우 (즉, 축적비(scale ratio))가 참조 블록 A가 위치한 프레임과 참조 블록 A가 위치한 프레임의 참조 프레임 간의 거리와 참조 블록 B가 위치한 프레임과 참조 블록 B가 위치한 프레임의 참조 프레임 간의 거리 사이의 거리 차이를 완전히 보상하지 못하는 경우), 거리 차이를 완전히 보상하기 위하여 참조 블록 A의 움직임 벡터의 제 1 예측자는 스케일링될 수 있다. 그리고 위 문단의 스케일링 프로세스와 제 2 참조 블록 세트 안의 각 참조 블록의 제 1 움직임 벡터 차이의 계산은 스케일링된 움직임 벡터들에 적용될 수 있다.
블록 (206)에서 현재 블록의 제 1 움직임 벡터 차이의 예측자는 블록 (205)에서 계산된 제 2 참조 블록 세트 안의 각 참조 블록의 제 1 움직임 벡터 차이에 따라 계산된다.
현재 블록의 제 1 움직임 벡터 차이는 제 2 참조 블록 세트 안의 참조 블록의 제 1 움직임 벡터 차이에 따라 예측된다. 예측 방법은 필요 조건들에 따라 선택될 수 있다. 예를 들어, 참조 블록들의 제 1 움직임 벡터 차이들의 가중 평균을 내는 것, 참조 블록들의 제 1 움직임 벡터 차이들의 수평 성분의 중간 값과 참조 블록들의 제 1 움직임 벡터 차이들의 수직 성분의 중간 값을 각각 선택하는 것, 또는 기존의 움직임 벡터 예측 방법들이 사용될 수 있다.
이 실시 예에서, 블록 (206)은 다음과 같이 구현될 수 있다. 블록 (205)에서 획득된 제 1 움직임 벡터 차이들의 최소 값은 현재 블록의 제 1 움직임 벡터의 예측자로 채택될 수 있다. 만약 제 2 참조 블록 세트 안의 특정 참조 블록의 제 1 움직임 벡터 차이가 존재하지 않는다면, 그 참조 블록의 제 1 움직임 벡터 차이는 계산 프로세스에서 고려되지 않을 수 있다. 만약 제 2 참조 블록 세트 안의 모든 참조 블록의 제 1 움직임 벡터 차이가 존재하지 않는다면, 현재 블록의 제 1 움직임 벡터 차이의 예측자는 영 벡터로 설정될 수 있다.
블록(203)과 유사하게, 제 2 참조 블록 세트 안의 참조 블록이 위치한 프레임과 제 2 참조 블록 세트 안의 참조 블록이 위치한 프레임의 참조 프레임 간의 거리가 현재 블록이 위치한 프레임과 현재 블록이 위치한 프레임의 참조 프레임 간의 거리와 다를 수 있다. 이에 따라, 만약 블록 (205)에서 제 2 참조 블록 세트 안의 참조 블록의 움직임 벡터와 제 2 참조 블록 세트 안의 참조 블록의 움직임 벡터의 제 1 예측자가 제 2참조 블록 세트 안의 참조 블록이 위치한 프레임과 제 2 참조 블록 세트 안의 참조 블록이 위치한 프레임의 참조 프레임 간의 거리와 현재 블록이 위치한 프레임과 현재 블록이 위치한 프레임의 참조 프레임 간의 거리에 따라 스케일링되지 않았거나 완전히 스케일링되지 않은 경우, 참조 블록의 제 1 움직임 벡터 차이는 블록 (206)에서 현재 블록의 제 1 움직임 벡터 차이의 예측자가 계산되기 전에 제 2참조 블록 세트 안의 참조 블록이 위치한 프레임과 제 2 참조 블록 세트 안의 참조 블록이 위치한 프레임의 참조 프레임 간의 거리와 현재 블록이 위치한 프레임과 현재 블록이 위치한 프레임의 참조 프레임 간의 거리에 따라 스케일링될 수 있다.
블록 (207)에서 현재 블록의 움직임 벡터의 제 2 예측자는 현재 블록의 움직임 벡터의 제 1 예측자와 현재 블록의 제 1움직임 벡터 차이의 예측자에 따라 유도된다.
현재 블록의 움직임 벡터의 제 2 예측자를 결정하는 방법은 현재 블록의 움직임 벡터의 제 1 예측자와 현재 블록의 제 1움직임 벡터 차이의 예측자에 대한 합계 또는 가중 합계 작업을 수행하는 방법을 포함한다.
블록 (203)과 유사하게, 제 2 참조 블록 세트 안의 참조 블록이 위치한 프레임과 제 2 참조 블록 세트 안의 참조 블록이 위치한 프레임의 참조 프레임 간의 거리가 현재 블록이 위치한 프레임과 현재 블록이 위치한 프레임의 참조 프레임 간의 거리와 다를 수 있다. 이에 따라, 부호화 또는 복호화 성능을 향상시키기 위하여, 만약 제 1 참조 블록 세트 안의 참조 블록의 움직임 벡터와 현재 블록의 움직임 벡터의 제 1 예측자가 제 1참조 블록 세트 안의 참조 블록이 위치한 프레임과 제 1 참조 블록 세트 안의 참조 블록이 위치한 프레임의 참조 프레임 간의 거리와 현재 블록이 위치한 프레임과 현재 블록이 위치한 프레임의 참조 프레임 간의 거리에 따라 스케일링되지 않았거나 완전히 스케일링되지 않은 경우, 참조 블록의 제 1 움직임 벡터 차이는 블록 (207)에서 현재 블록의 움직임 벡터의 제 2 예측자가 계산되기 전에 제1참조 블록 세트 안의 참조 블록이 위치한 프레임과 제 1 참조 블록 세트 안의 참조 블록이 위치한 프레임의 참조 프레임 간의 거리와 현재 블록이 위치한 프레임과 현재 블록이 위치한 프레임의 참조 프레임 간의 거리에 따라 스케일링될 수 있다. 만약 제 2 참조 블록 세트 안의 참조 블록의 움직임 벡터와 제 2 참조 블록 세트 안의 참조 블록의 움직임 벡터의 제 1 예측자 또는 제 2 참조 블록 세트 안의 참조 블록의 제 1 움직임 벡터 차이가 현재 블록의 제 2 참조 블록 세트 안의 블록의 제 1 참조 블록 세트 안의 참조 블록이 위치한 프레임과 현재 블록의 제 2 참조 블록 세트 안의 블록의 제 1 참조 블록 세트 안의 참조 블록이 위치한 프레임의 참조 프레임 간의 거리, 제 2 참조 블록 세트 안의 참조 블록이 위치한 프레임과 제 2 참조 블록 세트 안의 참조 블록이 위치한 프레임의 참조 프레임 간의 거리 및 현재 블록이 위치한 프레임과 현재 블록이 위치한 프레임의 참조 프레임 간의 거리에 따라 스케일링되지 않았거나, 완전히 스케일링되지 않은 경우, 현재 블록의 제 1 움직임 벡터 차이의 예측자는 블록 207에서 현재 블록의 움직임 벡터의 제 2 예측자가 유도되기 전에 제 2 참조 블록 세트 안의 참조 블록이 위치한 프레임과 제 2 참조 블록 세트 안의 참조 블록이 위치한 프레임의 참조 프레임 간의 거리와 현재 블록이 위치한 프레임과 현재 블록이 위치한 프레임의 참조 프레임 간의 거리에 따라 스케일링될 수 있습니다.
블록 (207)에서 현재 블록의 움직임 벡터의 제 2 예측자가 결정된 후에, 현재 블록의 움직임 벡터의 제 2 예측자는 현재 블록의 부호화 또는 복호화를 위해 사용될 수 있는 현재 블록의 움직임 벡터의 예측자, 현재 블록의 움직임 벡터의 예측자의 후보, 현재 블록 또는 서브 블록의 움직임 벡터 또는 현재 블록의 움직임 벡터의 후보로 채택될 수 있다.
그리고 제 1 실시 예에서 제공하는 방법 흐름도는 종료된다.
제 2 실시 예는 다음과 같이 설명된다.
도 4 는 본 발명에 따른 제 2 실시 예의 흐름도이다. 도 3는 본 발명의 일 실시 예에 따른 현재 블록의 제 1 카테고리의 참조 블록들을 설명하는 개략도이다. 도 5는 본 발명의 일 실시 예에 따른 현재 블록의 제 2 카테고리의 참조 블록들을 설명하는 개략도이다. 도 4에서 볼 수 있듯이 움직임 정보를 획득하는 방법은 다음과 같이 구현된다.
블록 (401)에서 현재 블록의 제 1 참조 블록 세트는 결정된다.
이 실시 예에서 블록 (401)은 다음과 같이 구현될 수 있다. 제 1 참조 블록 세트는 오직 제 1 카테고리의 참조 블록들을 포함한다. 도 3에서 도시되어 있듯이, 현재 블록의 제 1 카테고리의 참조 블록들은 AL1, AL2, AU1, AU2, AU3, AC1 및 AC2을 포함한다. 이 실시 예에서 현재 블록의 제 1 참조 블록 세트 안의 참조 블록들은 현재 블록의 좌측 상단 꼭지점 위에 위치한 인접 블록 AU1, 현재 블록의 좌측 상단 꼭지점 좌측에 위치한 인접 블록 AL2, 현재 블록의 좌측 상단 꼭지점의 좌측 상단에 위치한 인접 블록 AC2 및 현재 블록의 우측 상단 꼭지점의 우측 상단에 위치한 인접 블록 AU3으로 구성될 수 있다.
블록(402)에서 제 1 참조 블록 세트 안의 각 참조 블록의 움직임 벡터는 획득된다.
블록(402)에서 제 1 참조 블록 세트 안의 각 참조 블록의 움직임 벡터가 획득된 때, 만약 제 1 참조 블록 세트 안의 특정 참조 블록의 움직임 벡터가 존재하지 않으면, 참조 블록의 움직임 벡터가 존재하지 않는다고 표시하는 표시가 리턴된다.
움직임 벡터를 리턴하는 기존의 방법은 적용될 수 있다. 움직임 벡터를 리턴하는 방법은 다음과 같이 구현될 수 있다. 만약 블록 AU3가 움직임 벡터를 가진다면, 블록 AU3의 움직임 벡터는 리턴되어 mv3로 복호화되지만, 블록 AC2의 움직임 벡터는 리턴되지 않는다. 만약 블록 AU3는 움직임 벡터가 없고 대신 블록 AC2가 움직임 벡터를 가진다면, 블록 AC2의 움직임 벡터는 리턴되어 mv3으로 복호화된다. 만약 블록 AU3과 블록 AC2가 모두 움직임 벡터가 없다면, 영 벡터가 리턴되며 mv3로 복호화된다. 만약 블록 AU1가 움직임 벡터를 가진다면, 블록 AU1의 움직임 벡터는 리턴되어 mv1로 복호화된다. 만약 블록 AU2가 움직임 벡터를 가진다면, 블록 AU2의 움직임 벡터는 리턴되어 mv2로 복호화된다. 만약 블록 AU1이 움직임 벡터가 없다면, 영 벡터는 리턴되어 mv1로 복호화된다. 만약 블록 AU2이 움직임 벡터가 없다면, 영 벡터는 리턴되어 mv2로 복호화된다. 만약 특정 블록이 존재하지 않는다면, 그 블록은 모션 벡터가 없는 것으로 간주된다. 여기서 설명한 프로세스 방법은 본 발명의 다른 실시 예에도 적용될 수 있다.
블록 (403)에서 블록 (402)에서 획득한 제 1 참조 블록 세트 안의 각 참조 블록의 움직임 벡터에 따라 현재 블록의 움직임 벡터의 제 1 예측자는 계산된다.
현재 블록의 움직임 벡터의 제 1 예측자는 현재 블록의 움직임 벡터를 예측 또는 유도하는 기존의 부호화 또는 복호화 방법에서 사용된 방법과 동일한 방법에 따라 계산될 수 있다.
블록 (403)은 다음과 같이 구현될 수 있다. mv1의 수평 성분과 수직 성분은 각각 mv1_x과 mv1_y으로 복호화되고, mv2의 수평 성분과 수직 성분은 각각 mv2_x과 mv2_y으로 복호화되고, mv3의 수평 성분과 수직 성분은 각각 mv3_x과 mv3_y으로 복호화된다. 만약 mv1_x와 mv2_x가 같은 기호(sign)를 가진다면, mv1_x와 mv2_x의 평균은 현재 블록의 움직임 벡터의 제 1 예측자의 수평 성분으로 채택된다. 만약 mv1_x와 mv2_x가 다른 기호를 가지고, mv1_x와 mv3_x가 같은 기호를 가진다면, mv1_x와 mv3_x의 평균이 현재 블록의 움직임 벡터의 제 1 예측자의 수평 성분으로 채택된다. 만약 mv1_x와 mv2_x가 다른 기호를 가지고, mv2_x와 mv3_x가 같은 기호를 가진다면, mv2_x와 mv3_x의 평균이 현재 블록의 움직임 벡터의 제 1 예측자의 수평 성분으로 채택된다. 만약 mv1_y와 mv2_y가 같은 기호를 가진다면, mv1_y와 mv2_y의 평균은 현재 블록의 움직임 벡터의 제 1 예측자의 수직 성분으로 채택된다. 만약 mv1_y와 mv2_y가 다른 기호를 가지고, mv1_y와 mv3_y가 같은 기호를 가진다면, mv1_y와 mv3_y의 평균이 현재 블록의 움직임 벡터의 제 1 예측자의 수직 성분으로 채택된다. 만약 mv1_y와 mv2_y가 다른 기호를 가지고, mv2_y와 mv3_y가 같은 기호를 가진다면, mv2_y와 mv3_y의 평균이 현재 블록의 움직임 벡터의 제 1 예측자의 수직 성분으로 채택된다. 만약 특정 참조 블록의 움직임 벡터의 제 1 예측자가 존재하지 않을 경우, 참조 블록의 움직임 벡터는 영 벡터로 설정된다.
이 실시 예에서 현재 블록의 움직임 벡터와 현재 블록의 움직임 벡터의 제 1 예측자가 결정된 후, 현재 블록의 제 1 움직임 벡터 차이가 계산될 수 있다. 이 방법에서 현재 블록이 다음으로 진행되는 블록의 제 2 참조 블록 세트 안의 참조 블록으로 채택되는 때, 참조 블록의 제 1 움직임 벡터 차이는 바로 획득될 수 있다.
제 1 실시 예와 유사하게, 여기에 설명되지는 않았지만 블록 (403)에서 움직임 벡터는 스케일링된다.
블록 (404)에서 현재 블록의 제 2 참조 블록 세트는 결정된다.
블록(404)는 다음과 같이 구현될 수 있다. 제 2 참조 블록 세트는 오직 제 1 카테고리의 참조 블록들과 제 2 카테고리의 참조 블록들을 포함한다. 도 3에서 볼 수 있듯이, 현재 블록의 제 1 카테고리의 참조 블록들은 AL1, AL2, AU1, AU2, AU3, AC1 및 AC2을 포함한다. 이 실시 예에서 현재 블록의 제 2 참조 블록 세트 안의 제 1 카테고리의 참조 블록들은 현재 블록의 좌측 상단 꼭지점 위에 위치한 인접 블록 AU1, 현재 블록의 좌측 상단 꼭지점 좌측에 위치한 인접 블록 AL2 및 현재 블록의 좌측 상단 꼭지점의 좌측 상단에 위치한 인접 블록 AC2으로 구성될 수 있다. 도 5에서 볼 수 있듯이, 현재 블록의 제 2 카테고리의 참조 블록들은 B1, B2, B3, B4, B5, B6 및 B7을 포함한다. B1, B2, B3 및 B4는 공간상 현재 블록과 겹친다. B5, B6 및 B7는 공간상 현재 블록과 인접해 있다. 이 실시 예에서, 현재 블록의 제 2 참조 블록 세트 안의 제 2 카테고리의 참조 블록들은 현재 블록의 좌측 상단 꼭지점과 같은 공간에 위치한 점을 포함하는 B1, 현재 블록의 우측 하단 꼭지점과 같은 공간에 위치한 점을 포함하는 B4으로 구성될 수 있다.
블록 (405)에서 제 2 참조 블록 세트 안의 각 참조 블록의 움직임 벡터와 제 2 참조 블록 세트 안의 참조 블록의 움직임 벡터의 제 1 예측자 간의 제 1 움직임 벡터 차이가 획득된다.
이 실시 예에서 현재 블록의 움직임 벡터와 현재 블록의 움직임 벡터의 제 1 예측자가 결정된 후, 현재 블록의 움직임 벡터와 현재 블록의 움직임 벡터의 제 1 예측자 간의 제 1 움직임 벡터 차이가 계산되고 저장된다. 이 블록 (405)에서 제 2 참조 블록 세트 안의 참조 블록들은 모두 부호화된 블록이다. 그리고 제 2 참조 블록 세트 안의 각 참조 블록의 제 1 움직임 벡터 차이는 생성되고 저장된다. 따라서 제 2 참조 블록 세트 안의 각 참조 블록의 제 1 움직임 벡터 차이는 바로 획득될 수 있다.
블록 (405)에서 제 2 참조 블록 세트 안의 각 참조 블록의 제 1 움직임 벡터 차이가 획득될 때, 특정 참조 블록의 제 1 움직임 벡터 차이가 존재하지 않을 때, 그 참조 블록의 제 1 움직임 벡터 차이가 존재하지 않는다고 표시하는 표시가 리턴된다.
블록 (406)에서 현재 블록의 제 1 움직임 벡터 차이의 예측자는 블록 (405)에서 계산된 제 2 참조 블록 세트 안의 각 참조 블록의 제 1 움직임 벡터 차이에 따라 계산된다.
블록 (406)은 다음과 같이 구현될 수 있다. 부호기는 존재하는 제 1 움직임 벡터 차이들과 영 벡터 중 하나를 현재 블록의 제 1 움직임 벡터 차이의 예측자로 선택한다. 그리고 선택된 값의 인덱스를 비트 스트림에 기록한다. 복호기는 비트 스트림 안의 인덱스에 따라 블록 (405)에서 획득한 존재하는 제 1 움직임 벡터 차이들과 영 벡터로부터 올바른 값을 선택한다. 그리고 선택한 값을 현재 블록의 제 1 움직임 벡터 차이의 예측자로 채택한다. 비트 스트림 안에서 전송된 인덱스는, 도1에 대한 설명에서 제 1 움직임 벡터 차이의 예측자를 계산하기 위한 비트 스트림 안의 유도 정보를 전송하는 방법에서 언급한, 현재 블록의 제 1 움직임 벡터 차이의 예측자의 유도 정보로 채택될 수 있다.
제 1 실시 예와 유사하게, 블록 (406)에서 제 1 움직임 벡터 차이는 스케일링될 수 있다.
블록 (407)에서 현재 블록의 움직임 벡터의 제 2 예측자는 현재 블록의 움직임 벡터의 제 1 예측자와 현재 블록의 제 1움직임 벡터 차이의 예측자에 따라 유도된다.
블록 (407)은 여기서 설명되지 않았지만 제 1 실시 예의 블록 (207)과 동일하다.
블록 (407)에서 현재 블록의 움직임 벡터의 제 2 예측자가 결정된 후에, 현재 블록의 움직임 벡터의 제 2 예측자는 현재 블록의 부호화 또는 복호화를 위해 사용될 수 있는 현재 블록의 움직임 벡터의 예측자, 현재 블록의 움직임 벡터의 예측자의 후보, 현재 블록의 움직임 벡터 또는 현재 블록의 움직임 벡터의 후보로 채택될 수 있다.
그리고 제 2 실시 예에서 제공하는 방법 흐름도는 종료된다.
위 두 개의 실시 예에서 현재 블록의 움직임 벡터의 제 1 예측자는 먼저 계산된다. 그리고 현재 블록의 제 1 움직임 벡터 차이의 예측자는 계산된다. 실제 응용들에 있어서, 현재 블록의 움직임 벡터의 제 1 예측자와 현재 블록의 제 1 움직임 벡터 차이의 예측자는 동시에 획득될 수 있다. 또는 현재 블록의 제 1 움직임 벡터 차이의 예측자는 먼저 계산되고, 현재 블록의 움직임 벡터의 제 1 예측자가 계산될 수 있다. 제 3 실시 예와 제 4 실시 예에 있어서 움직임 정보를 획득하는 방법은, 현재 블록의 제 1 움직임 벡터 차이의 예측자가 먼저 계산되고, 현재 블록의 움직임 벡터의 제 1 예측자가 계산된다.
제 3 실시 예는 다음과 같이 설명된다.
도 6은 본 발명에 따른 제 3 실시 예의 흐름도이다. 도 5는 본 발명의 일 실시 예에 따른 현재 블록의 제 2 카테고리의 참조 블록들을 설명하는 개략도이다. 도 6에서 볼 수 있듯이 움직임 정보를 획득하는 방법은 다음과 같이 구현된다.
블록 (601)에서 현재 블록의 제 2 참조 블록 세트는 결정된다.
블록 (601)은 다음과 같이 구현될 수 있다. 제 2 참조 블록 세트는 오직 제 2 카테고리의 참조 블록들을 포함한다. 도 5에서 도시되어 있듯이, 현재 블록의 제 2 카테고리의 참조 블록들은 B1, B2, B3, B4, B5, B6 및 B7을 포함한다. B1, B2, B3 및 B4는 공간상 현재 블록과 겹친다. B5, B6 및 B7는 공간상 현재 블록과 인접해 있다. 이 실시 예에서 현재 블록의 제 2 참조 블록 세트 안의 참조 블록들은 현재 블록의 중심점과 같은 공간에 위치한 점을 포함하는 B1, 현재 블록의 좌측 상단 꼭지점과 같은 공간에 위치한 점을 포함하는 B1, 현재 블록의 우측 하단 꼭지점과 같은 공간에 위치한 점을 포함하는 B4으로 구성될 수 있다.
블록(602)에서 제 2 참조 블록 세트 안의 각 참조 블록의 움직임 벡터와 제 2 참조 블록 세트 안의 참조 블록의 움직임 벡터의 제 1 예측자는 획득된다. 그리고 참조 블록의 움직임 벡터와 참조 블록의 움직임 벡터의 제 1 예측자 간의 제 1 움직임 벡터 차이는 계산된다.
블록 (602)는 제 1 실시 예에서 설명된 블록 (205)와 유사하다. 블록(602)에서 제 2 참조 블록 세트 안의 각 참조 블록의 움직임 벡터와 제 2 참조 블록 세트 안의 참조 블록의 움직임 벡터의 제 1 예측자는 획득된 때, 만약 특정 참조 블록의 움직임 벡터 또는 참조 블록의 움직임 벡터의 제 1 예측자가 존재하지 않으면, 참조 블록의 제 1 움직임 벡터 차이가 존재하지 않는다고 표시하는 표시가 리턴된다.
제 1 실시 예와 유사하게 스케일링 동작은 블록(602)에서 수행될 수 있다.
블록 (603)에서 블록 (602)에서 획득한 제 2 참조 블록 세트 안의 각 참조 블록의 제 1 움직임 벡터 차이에 따라 현재 블록의 제 1 움직임 벡터 차이의 예측자는 획득된다.
블록 (603)에서, 움직임 벡터를 예측하는 기존의 방법에 따라 현재 블록의 제 1 움직임 벡터 차이는 예측될 수 있다.
블록 (603)은 다음과 같이 구현될 수 있다. 블록 (602)에서 획득된 참조 블록들의 제 1 움직임 벡터 차이들의 수평 성분들의 중간 값과 블록 (602)에서 획득된 참조 블록들의 제 1 움직임 벡터 차이들의 수직 성분들의 중간 값이 각각 현재 블록의 제 1 움직임 벡터 차이의 예측자의 수평 성분과 현재 블록의 제 1 움직임 벡터 차이의 예측자의 수직 성분으로 채택한다. 만약 특정 참조 블록의 제 1 움직임 벡터 차이가 존재하지 않거나 0과 같은 경우, 영 벡터가 현재 블록의 제 1 움직임 벡터 차이의 예측자로 채택한다.
블록 (603)은 다음과 같이 구현될 수 있다. 부호기는 블록 (602)에서 획득한 존재하는 제 1 움직임 벡터 차이들 중 하나를 현재 블록의 제 1 움직임 벡터 차이의 예측자로 선택한다. 그리고 선택된 값의 인덱스를 비트 스트림에 기록한다. 복호기는 비트 스트림 안의 인덱스에 따라 블록 (602)에서 획득한 존재하는 제 1 움직임 벡터 차이들로부터 올바른 값을 선택한다. 그리고 선택한 값을 현재 블록의 제 1 움직임 벡터 차이의 예측자로 채택한다. 비트 스트림 안에서 전송된 인덱스는, 도1에 대한 설명에서 제 1 움직임 벡터 차이의 예측자를 계산하기 위한 비트 스트림 안의 유도 정보를 전송하는 방법에서 언급한, 현재 블록의 제 1 움직임 벡터 차이의 예측자의 유도 정보로 채택될 수 있다.
제 1 실시 예와 유사하게, 스케일링 동작을 수행 될 수 있다.
블록 (604)에서 현재 블록의 제 1 참조 블록 세트는 결정된다.
블록 (604)는 다음과 같이 구현될 수 있다. 제 1 참조 블록 세트는 오직 제 2 카테고리의 참조 블록들을 포함한다. 도 5에서 볼 수 있듯이, 현재 블록의 제 2 카테고리의 참조 블록들은 B1, B2, B3, B4, B5, B6 및 B7을 포함한다. B1, B2, B3 및 B4는 공간상 현재 블록과 겹친다. B5, B6 및 B7는 공간상 현재 블록과 인접해 있다. 이 실시 예에서, 현재 블록의 제 2 참조 블록 세트 안의 참조 블록들은 현재 블록의 좌측 상단 꼭지점과 같은 공간에 위치한 점을 포함하는 B1, 현재 블록의 우측 하단 꼭지점과 같은 공간에 위치한 점을 포함하는 B4으로 구성될 수 있다.
블록 (605)에서 제 1 참조 블록 세트 안의 각 참조 블록의 움직임 벡터는 획득된다.
블록 (605)에서 제 1 참조 블록 세트 안의 각 참조 블록의 움직임 벡터는 획득될 때, 만약 제 1 참조 블록 세트 안의 특정 참조 블록의 움직임 벡터가 존재하지 않으면, 그 참조 블록의 움직임 벡터가 존재하지 않는다고 표시하는 표시가 리턴된다.
블록 (606)에서 현재 블록의 움직임 벡터의 제 1 예측자는 블록 (605)에서 획득된 제 1 참조 블록 세트 안의 각 참조 블록의 움직임 벡터에 따라 계산된다.
현재 블록의 움직임 벡터의 제 1 예측자는 현재 블록의 움직임 벡터를 예측 또는 유도하는 기존의 부호화 또는 복호화 방법에서 사용된 방법과 동일한 방법에 따라 계산될 수 있다.
블록 (606)은 다음과 같이 구현될 수 있다. 부호기는 존재하는 움직임 벡터들 중 하나를 현재 블록의 제 1 움직임 벡터 차이의 예측자로 선택한다. 그리고 선택된 값의 인덱스를 비트 스트림에 기록한다. 복호기는 비트 스트림 안의 인덱스에 따라 블록 (605)에서 획득한 존재하는 움직임 벡터들로부터 올바른 값을 선택한다. 그리고 선택한 값을 현재 블록의 움직임 벡터의 제 1 예측자로 채택한다. 만약 제 1 참조 블록 세트 안의 특정 참조 블록의 움직임 벡터가 존재하지 않을 때, 참조 블록의 존재하지 않는 움직임 벡터는 영 벡터로 설정된다. 비트 스트림 안에서 전송된 인덱스는, 도1에 대한 설명에서 움직임 벡터의 제 1예측자를 계산하기 위한 비트 스트림 안의 유도 정보를 전송하는 방법에서 언급한, 현재 블록의 움직임 벡터의 제 1 예측자의 유도 정보로 채택될 수 있다.
제 1 실시 예와 유사하게, 스케일링 동작은 블록 (606)에서 수행될 수 있다.
블록 (607)에서 현재 블록의 움직임 벡터의 제 2 예측자는 현재 블록의 움직임 벡터의 제 1 예측자와 현재 블록의 제 1움직임 벡터 차이의 예측자에 따라 유도된다.
블록 (607)은 제 1 실시 예에서 설명한 블록 (207)과 동일하다.
블록 (607)에서 현재 블록의 움직임 벡터의 제 2 예측자가 결정된 후에, 현재 블록의 움직임 벡터의 제 2 예측자는 현재 블록의 부호화 또는 복호화를 위해 사용될 수 있는 현재 블록의 움직임 벡터의 예측자, 현재 블록의 움직임 벡터의 예측자의 후보, 현재 블록의 움직임 벡터 또는 현재 블록의 움직임 벡터의 후보로 채택될 수 있다.
그리고 제 3 실시 예에서 제공하는 방법 흐름도는 종료된다.
제 4 실시 예는 다음과 같이 설명된다.
도 7 는 본 발명에 따른 제 4 실시 예의 흐름도이다. 도 3는 본 발명의 일 실시 예에 따른 현재 블록의 제 1 카테고리의 참조 블록들을 설명하는 개략도이다. 도 5는 본 발명의 일 실시 예에 따른 현재 블록의 제 2 카테고리의 참조 블록들을 설명하는 개략도이다. 도 7에서 볼 수 있듯이 움직임 정보를 획득하는 방법은 다음과 같이 구현된다.
블록 (701)에서 현재 블록의 제 2 참조 블록 세트는 결정된다.
블록 (701)은 다음과 같이 구현될 수 있다. 제 2 참조 블록 세트는 오직 제 2 카테고리의 참조 블록들을 포함한다. 도 5에서 도시되어 있듯이, 현재 블록의 제 2 카테고리의 참조 블록들은 B1, B2, B3, B4, B5, B6 및 B7을 포함한다. B1, B2, B3 및 B4는 공간상 현재 블록과 겹친다. B5, B6 및 B7는 공간상 현재 블록과 인접해 있다. 이 실시 예에서 현재 블록의 제 2 참조 블록 세트 안의 참조 블록들은 현재 블록의 좌측 상단 꼭지점과 같은 공간에 위치한 점을 포함하는 상단 블록 B1, 현재 블록의 좌측 상단 꼭지점과 같은 공간에 위치한 점을 포함하는 좌측 블록 B1, 현재 블록의 좌측 상단 꼭지점과 같은 공간에 위치한 점을 포함하는 좌측 상단 블록 B1으로 구성될 수 있다.
블록 (702)에서 제 2 참조 블록 세트 안의 각 참조 블록의 움직임 벡터와 제 2 참조 블록 세트 안의 참조 블록의 움직임 벡터의 제 1 예측자 간의 제 1 움직임 벡터 차이는 획득된다.
블록 (702)는 제 2 실시 예에서 설명된 블록 (405)와 유사하다. 블록 (702)에서 제 2 참조 블록 세트 안의 각 참조 블록의 제 1 움직임 벡터 차이가 획득된 때, 만약 제 2 참조 블록 세트 안의 특정 참조 블록의 제 1 움직임 벡터 차이가 존재하지 않으면, 참조 블록의 제 1 움직임 벡터 차이가 존재하지 않는다고 표시하는 표시가 리턴된다.
제 1 실시 예와 유사하게 스케일링 동작은 블록(702)에서 수행될 수 있다.
블록 (703)에서 블록 (702)에서 획득한 제 2 참조 블록 세트 안의 각 참조 블록의 제 1 움직임 벡터 차이에 따라 현재 블록의 제 1 움직임 벡터 차이의 예측자는 획득된다.
블록 (703)에서, 움직임 벡터를 예측하는 기존의 방법에 따라 현재 블록의 제 1 움직임 벡터 차이의 예측자는 계산될 수 있다.
블록 (703)은 다음과 같이 구현될 수 있다. 블록 (702)에서 상단 블록에 대하여 리턴된 제 1 움직임 벡터 차이는 mvd_U로, 좌측 블록에 대하여 리턴된 제 1 움직임 벡터 차이는 mvd_L로, 그리고 좌측 상단 블록에 대하여 리턴된 제 1 움직임 벡터 차이가 mvd_LU로 복호화 된다. mvd_L, mvd_U 및 mvd_LU 중 두 개 사이의 거리가 계산된다. 즉, d12=|mvd_L-mvd_U|, d13=|mvd_L-mvd_LU|, 그리고 d23=|mvd_U-mvd_LU|와 같은 방법으로 계산될 수 있다. 만약 d12, d13 및 d23 중에서 d12이 가장 작은 값이라면, mvd_LU가 현재 블록의 제 1 움직임 벡터 차이의 예측자로 채택된다. 만약 d12, d13 및 d23 중에서 d13이 가장 작은 값이라면, mvd_U가 현재 블록의 제 1 움직임 벡터 차이의 예측자로 채택된다. 만약 d12, d13 및 d23 중에서 d23이 가장 작은 값이라면, mvd_L가 현재 블록의 제 1 움직임 벡터 차이의 예측자로 채택된다. 만약 특정 참조 블록의 제 1 움직임 벡터 차이가 존재하지 않거나 0과 같다면, 현재 블록의 제 1 움직임 벡터 차이의 예측자는 영 벡터로 설정된다.
제 1 실시 예와 유사하게, 스케일링 동작을 수행 될 수 있다.
블록 (704)에서 현재 블록의 제 1 참조 블록 세트는 결정된다.
블록(704)는 다음과 같이 구현될 수 있다. 제 1 참조 블록 세트는 오직 제 1 카테고리의 참조 블록들과 제 2 카테고리의 참조 블록들을 포함한다. 도 3에서 볼 수 있듯이, 현재 블록의 제 1 카테고리의 참조 블록들은 AL1, AL2, AU1, AU2, AU3, AC1 및 AC2을 포함한다. 도 5에서 볼 수 있듯이, 현재 블록의 제 2 카테고리의 참조 블록들은 B1, B2, B3, B4, B5, B6 및 B7을 포함한다. B1, B2, B3 및 B4는 공간상 현재 블록과 겹친다. B5, B6 및 B7는 공간상 현재 블록과 인접해 있다. 이 실시 예에서, 현재 블록의 제 1 참조 블록 세트 안의 참조 블록들은 현재 블록의 좌측 상단 꼭지점의 좌측 상단에 위치한 인접 블록 AC2, 현재 블록의 우측 상단 꼭지점 우측 상단에 위치한 인접 블록 AU3, 현재 블록의 좌측 하단 꼭지점의 좌측 하단에 위치한 인접 블록 AC1 및 현재 블록의 중심점과 같은 공간에 위치한 점을 포함하는 B1으로 구성될 수 있다.
블록 (705)에서 제 1 참조 블록 세트 안의 각 참조 블록의 움직임 벡터가 획득된다.
블록 (705)에서 제 1 참조 블록 세트 안의 각 참조 블록의 움직임 벡터가 획득된 때, 만약 제 1 참조 블록 세트 안의 특정 참조 블록의 움직임 벡터가 존재하지 않으면, 그 참조 블록의 움직임 벡터가 존재하지 않는다고 표시하는 표시가 리턴된다.
블록 (706)에서 현재 블록의 움직임 벡터의 제 1 예측자는 블록 (705)에서 획득된 제 1 참조 블록 세트 안의 각 참조 블록의 움직임 벡터에 따라 계산된다.
현재 블록의 움직임 벡터의 제 1 예측자는 현재 블록의 움직임 벡터를 예측 또는 유도하는 기존의 부호화 또는 복호화 방법에서 사용된 방법과 동일한 방법에 따라 계산될 수 있다.
이 실시 예에서 블록 (706)에서 다음과 같이 구현될 수 있다. AC1의 움직임 벡터 mv1, AC2의 움직임 벡터 mv2 및 AC3의 움직임 벡터 mv3의 평균 값은 계산되고 mva로 복호화된다. 만약 mv1, mv2 및 mv3 중 어느 하나가 존재하지 않는다면, 존재하지 않는 것은 영 벡터로 설정된다. B1의 움직임 벡터는 mvb로 복호화된다. 그리고 mva와 mvb 중 작은 것이 현재 블록의 움직임 벡터의 제 1 예측자로 채택된다. 만약 mvb가 존재하지 않는다면, mva가 현재 블록의 움직임 벡터의 제 1 예측자로 채택된다.
제 2 실시 예와 유사하게, 현재 블록의 움직임 벡터와 현재 블록의 움직임 벡터의 제 1 예측자가 결정된 후에, 현재 블록의 제 1움직임 벡터 차이는 계산된다. 이 방법에서 , 현재 블록이 다음으로 프로세스되는 블록의 제 2 참조 블록 세트의 참조 블록으로 채택되는 때, 참조 블록의 제 1 움직임 벡터 차이는 바로 획득될 수 있다.
제 1 실시 예와 유사하게, 블록 (706)에서 스케일링 동작이 수행될 수 있다.
블록 (707)에서 현재 블록의 움직임 벡터의 제 2 예측자는 현재 블록의 움직임 벡터의 제 1 예측자와 현재 블록의 제 1 움직임 벡터 차이의 예측자에 따라 유도된다.
블록 (707)은 제 1 실시 예의 블록 (207)과 유사하다.
블록 (707)에서 현재 블록의 움직임 벡터의 제 2 예측자가 결정된 후, 현재 블록의 움직임 벡터의 제 2 예측자는 현재 블록의 부호화 또는 복호화를 위해 사용될 수 있는 현재 블록의 움직임 벡터의 예측자, 현재 블록의 움직임 벡터의 예측자의 후보, 현재 블록의 움직임 벡터 또는 현재 블록의 움직임 벡터의 후보로 채택될 수 있다.
그리고 또한 이 실시 예가 제공하는 방법 흐름도는 종료된다.
제 5 실시 예는 다음과 같이 설명된다.
도 8은 본 발명의 제 5 실시 예의 흐름도이다. 도9는 본 발명의 일 실시 예에 따라 현재 블록의 제 1 카테고리의 참조 블록들을 묘사하는 개략도이다. 도 10은 본 발명의 일 실시 예에 따라 현재 블록의 제 2 카테고리의 참조 블록들을 묘사하는 개략도이다. 도 8에서 볼 수 있듯이 움직임 정보를 획득하는 방법은 아래와 같이 구현된다.
블록 (801)에서 도 9에서 참조된 현재 블록 E는 4개의 서브 블록인 E1, E2, E3, 및 E4로 분리된다.
이 실시 예에서 현재 블록은 4개의 서브 블록들로 분리된다. 그리고 본 발명에서 설명되는 방법에 따라 각 서브 블록의 움직임 정보는 계산될 수 있다. 이 실시 예에서 아래의 블록들에 따라 4 개의 서브 블록들의 움직임 정보는 획득된다.
블록 (802)에서 각 현재 서브 블록의 제 1 참조 블록 세트는 결정된다.
현재 서브 블록의 4 개의 다른 서브 블록들에 대하여, 제 1 참조 블록 세트 안의 참조 블록들은 동일할 수도 있고, 부분적으로 동일할 수도 있으며, 완전히 다를 수도 있다.
블록 (802)는 다음과 같이 구현될 수 있다. 서브 블록들은 다른 제 1 참조 블록 세트들을 가진다. 그러나 모든 제 1 참조 블록 세트들은 오직 제2 카테고리의 참조 블록들을 포함한다. 도10에 의하면 E1, E2, E3, 및 E4 의 제2 카테고리의 참조 블록들은 B1, B2, B3, B4 및 B5를 포함한다. 이 실시 예에서 현재 서브 블록의 제 1 참조 블록 세트 안의 참조 블록들은 현재 서브 블록의 중심과 같은 공간 위치를 가지는 지점을 포함하는 블록으로 설정될 수 있다. 즉 말하자면, E1의 제 1 참조 블록 세트는 B1, E2의 제 1 참조 블록 세트는 B3, E3의 제 1 참조 블록 세트는 B1, E4의 제 1 참조 블록 세트는 B4이다.
만약 현재 서브 블록의 제 1 참조 블록 세트 안의 참조 블록 A의 움직임 정보가 서브 블록 안에서 결정되었다면, 참조 블록 A는 서브 블록이다. 다른 말로 하면, 제 1 참조 블록 세트 안의 참조 블록들은 블록들이거나 서브블록들일 수 있다. 만약 움직임 정보의 단일 조각이 블록에 대응되는 경우, 대응되는 참조 블록은 블록이다. 만약 움직임 정보의 단일 조각이 서브 블록과 대응되면, 대응되는 참조 블록은 서브 블록이다
예를 들어, 블록 A는 현재 서브 블록에 근접한 부호화된 블록이다. 블록 A의 움직임 정보가 결정되었을 때, 블록 A는 서브 블록 A1과 A2로 분리되어 있고, 서브 블록 A1의 움직임 정보와 서브 블록 A2의 움직임 정보는 각각 계산된다. A1은 현재 서브 블록 또는 현재 서브 블록의 블록에 근접해 있다. A2은 현재 서브 블록 또는 현재 서브 블록의 블록에 근접해 있지 않다. (왜냐하면 블록 A는 움직임 정보의 단일 조각에 대응되지 않지만, 서브 블록들 A1, A2의 움직임 정보에는 대응된다.) 왜냐하면 서브 블록 A2는 현재 서브 블록 및 현재 서브 블록의 블록과 근접해 있지 않기 때문에, 서브 블록 A2는 현재 서브 블록의 제 1 참조 블록 세트에 포함되지 않는다.
블록 (803)에서 각 현재 서브 블록의 제 1 참조 블록 세트 안의 각 참조 블록의 움직임 벡터는 획득된다.
각 현재 서브 블록의 제 1 참조 블록 세트 안의 각 참조 블록의 움직임 벡터를 획득하는 방법은 기존의 방법과 동일할 수 있다. 블록 (803)에서 각 현재 서브 블록의 제 1 참조 블록 세트 안의 각 참조 블록의 움직임 벡터는 획득되었을 때, 만약 제 1 참조 블록 세트 안의 특정 참조 블록의 움직임 벡터가 존재하지 않는다면, 참조 블록의 움직임 벡터가 존재하지 않는다고 표시하는 표시가 리턴된다.
블록 (804)에서, 블록 (803)에서 획득한 각 현재 서브 블록의 제 1 참조 블록 세트 안의 각 참조 블록의 움직임 벡터에 따라 각 현재 서브 블록의 움직임 벡터의 제 1 예측자는 계산된다.
참조 블록의 움직임 벡터에 따라 각 현재 서브 블록의 움직임 벡터의 제 1 예측자를 결정하는 방법은 움직임 벡터를 예측하거나 유도하는 기존의 방법과 동일할 수 있다. 현재 서브 블록들의 움직임 벡터들의 제 1 예측자들을 결정하는 방법들은 동일하거나 다를 수 있다. 블록 (804)는 다음과 같이 구현될 수 있다. 각 현재 서브 블록의 제 1 참조 블록 세트 안의 참조 블록의 움직임 벡터는 직접적으로 각 현재 서브 블록의 움직임 벡터의 제 1 예측자로 채택될 수 있다. 만약 특정 현재 서브 블록의 제 1 참조 블록 세트 안의 참조 블록에 움직임 벡터가 없다면, 현재 서브 블록의 움직임 벡터의 제 1 예측자는 영 벡터로 설정되거나, 현재 서브 블록의 움직임 벡터의 제 2 예측자는 블록들 (805 내지 808)을 실행하지 않고 다른 방법으로 유도되어 현재 서브 블록의 움직임 벡터의 예측자, 현재 서브 블록의 움직임 벡터의 예측자의 후보, 현재 서브 블록의 움직임 벡터 또는 현재 서브 블록의 움직임 벡터의 후보로 채택될 수 있다.
블록 (203)와 유사하게, 각 현재 서브 블록의 제 1 참조 블록 세트 안의 참조 블록의 움직임 벡터는 스케일링될 수 있다.
블록 (805)에서 각 현재 서브 블록의 제 2 참조 블록 세트는 결정된다.
실제 요구 사항들에 따라 각 현재 서브 블록의 제 2 참조 블록 세트는 결정된다. 블록 (805)은 다음과 같이 구현될 수 있다. E1, E2, E3 및 E4는 동일한 제 2 참조 블록 세트들을 가지고 있다. 그리고 각 제 2 참조 블록 세트는 오직 제 1 카테고리의 참조 블록들을 포함한다. 도 9에서 볼 수 있듯이, E1, E2, E3 및 E4의 제 1 카테고리의 참조 블록들은 AL1, AC1, AU1, AU2 및 AU3를 포함한다. 이 실시 예에서 E1, E2, E3 및 E4의 제 1 참조 블록 세트의 참조 블록들은 E1의 왼쪽 상단 꼭지점의 좌측에 위치하는 블록 AL1, E1의 왼쪽 상단 꼭지점 위에 있는 블록 AU1 및 E1의 왼쪽 상단 꼭지점의 왼쪽 상단에 있는 블록 AC1으로 구성될 수 있다. 만약 E1의 왼쪽 상단 꼭지점의 좌측에 위치한 블록 AL1은 움직임 벡터가 없는 경우, E1의 왼쪽 상단 꼭지점의 좌측에 위치한 블록 AL1은 E3의 왼쪽 상단 꼭지점의 좌측에 위치한 블록 AL1으로 교체된다. 만약 E1의 왼쪽 상단 꼭지점 위에 위치한 블록 AU1 기준 움직임 벡터가 없는 경우, E1의 왼쪽 상단 꼭지점 위에 위치한 블록 AU1 기준 움직임 벡터는 E2의 왼쪽 상단 꼭지점 위에 위치한 블록 AU2로 교체된다.
블록 (806)에서 각 현재 서브 블록에 대하여 제 2 참조 블록 세트 안의 각 참조 블록의 움직임 벡터와 제 2 참조 블록 세트 안의 참조 블록의 움직임 벡터의 제1 예측자는 획득된다. 그리고 참조 블록의 움직임 벡터와 참조 블록의 움직임 벡터의 제 1 예측자 간의 제 1 움직임 벡터 차이가 계산된다.
블록 (806)은 제 1 실시 예에서 설명한 블록 (205)와 유사하지만, 각 현재 서브 블록이 각각 프로세스 된다는 점에서 블록 (205)와 다르다. 그러나 이 실시 예에서 모든 현재 서브 블록들의 제 2 참조 블록 세트들은 동일하므로, 프로세스는 오직 한 번만 수행되면 된다. 각 현재 서브 블록의 제 2 참조 블록 세트 안의 각 참조 블록의 움직임 벡터와 각 현재 서브 블록의 제 2 참조 블록 세트 안의 각 참조 블록의 움직임 벡터의 제 1 예측자는 블록 (806)은 획득된 때, 만약 특정 참조 블록의 움직임 벡터 또는 참조 블록의 움직임 벡터의 제 1 예측자가 존재하지 않는다면, 참조 블록의 제 1 움직임 벡터 차이가 존재하지 않는다고 표시하는 표시가 리턴된다.
블록 (205)와 유사하게, 제 2 참조 블록 세트 안의 참조 블록의 움직임 벡터와 제 2 참조 블록 세트 안의 참조 블록의 움직임 벡터의 제 1 예측자는 이 블록의 각 현재 서브 블록에 맞게 스케일링될 수 있다.
블록 (807)에서 블록 (806)에서 계산된 현재 서브 블록의 제 2 참조 블록 세트 안의 각 참조 블록의 제 1 움직임 벡터 차이에 따라 각 현재 서브 블록의 제 1 움직임 벡터 차이의 예측자는 계산된다.
현재 서브 블록들의 제 1 움직임 벡터 차이들의 예측자들은 동일한 방법 또는 다른 방법들을 통하여 계산될 수 있다. 계산 방법은 실제 요구 사항들에 따라 결정될 수도 있다. 예를 들어 위의 실시 예에서 언급된 방법 중 하나가 적용될 수도 있다. 이 실시 예에서, 블록 (807)는 다음과 같이 구현될 수 있다. 현재 서브 블록의 제 2 참조 블록 세트 안의 참조 블록들의 존재하는 제 1 움직임 벡터 차이들의 평균은 현재 서브 블록의 제 1 움직임 벡터 차이의 예측자로 채택될 수 있다. 특정 현재 서브 블록의 제 2 참조 블록 세트 안의 참조 블록들의 존재하는 제 1 움직임 벡터 차이들이 모두 존재하지 않는 경우, 현재 서브 블록의 제 1 움직임 벡터 차이의 예측자는 영벡터로 설정될 수 있다.
또한 블록 (807)는 다음과 같이 구현될 수도 있다. 부호기는 블록 (806)에서 계산된 현재 서브 블록의 제 2 참조 블록 세트 안의 참조 블록들의 존재하는 제 1 움직임 벡터 차이들 중 하나를 선택하고, 선택된 값을 현재 서브 블록의 제 1 움직임 벡터 차이의 예측자로 정하고, 선택된 값의 인덱스(index)를 비트 스트림에 기록한다. 복호기는 블록 (806)에서 계산된 현재 서브 블록의 제 2 참조 블록 세트 안의 참조 블록들의 존재하는 제 1 움직임 벡터 차이들로부터 비트 스트림 안의 인덱스에 따라 올바른 값을 선택하고, 선택된 값을 현재 서브 블록의 제 1 움직임 벡터 차이의 예측자로 정한다. 비트 스트림 안의 전송된 인덱스는 도1의 설명 부분에서 제 1 움직임 벡터 차이의 예측자를 계산하기 위하여 비트 스트림 안의 유도 정보를 전송하는 방법에 언급된 현재 서브 블록의 제 1 움직임 벡터 차이의 예측자의 유도 정보로 채택될 수 있다. 서브 블록들은 제 1 움직임 벡터 차이의 예측자를 공유??할 수 있다. 이러한 경우, 제 1 움직임 벡터 차이의 예측자의 계산 프로세스는 오직 전체 현재 블록 E에 대해 한 번만 수행되어야 하고, 오직 하나의 제 1 움직임 벡터 차이의 인덱스만 비트 스트림 안으로 전송된다
제 1 실시예의 블록 (206)과 유사하게, 제 2 참조 블록 세트 안의 참조 블록의 제 1 움직임 벡터 차이는 이 블록에 각각 현재의 서브 블록에 대하여 스케일링될 수 있다.
블록 (808)에서 현재 서브 블록의 움직임 벡터의 제 1 예측자와 현재 서브 블록의 제 1 움직임 벡터 차이의 예측자에 따라 현재 서브 블록의 움직임 벡터의 제 2 예측자는 유도된다.
블록 (808)은 제 1 실시 예에서 설명된 블록 (207)과 유사하고, 각 현재 서브 블록이 각각 프로세스 된다는 점에서 블록 (207)과 다르다.
블록 (808)에서 현재 서브 블록의 움직임 벡터의 제 2 예측자가 결정된 후에, 현재 서브 블록의 움직임 벡터의 제 2 예측자는 현재 서브 블록의 부호화 또는 복호화 프로세스에 사용되는 현재 서브 블록의 움직임 벡터의 예측자, 현재 서브 블록의 움직임 벡터의 예측자의 후보, 현재 서브 블록의 움직임 벡터 또는 현재 서브 블록의 움직임 벡터의 후보로 채택될 수 있다.
그리고 또한 이 실시 예가 제공하는 방법 흐름도는 종료된다.
제 6 실시 예는 다음과 같다.
도 11은 본 발명의 제 6 실시 예의 흐름도이다. 도 12는 본 발명의 일 실시 예에 따라 현재 블록의 제 1 카테고리의 참조 블록들을 묘사하는 개략도이다. 도 13은 본 발명의 일 실시 예에 따라 현재 블록의 제 2 카테고리의 참조 블록들을 묘사하는 개략도이다. 도 11에서 볼 수 있듯이 움직임 정보를 획득하는 방법은 아래와 같이 구현된다.
블록 (1101)에서 현재 블록 E는 E1과 E2로 분리된다.
도 12에서 볼 수 있듯이 현재 블록은 E1과 E2로 분리된다. 다음 블록들 (1102-1108)은 각각 E1과 E2에 대하여 수행된다.
블록 (1102)에서 현재 서브 블록의 제 2 참조 블록 세트는 결정된다.
블록 (1102)는 다음과 같이 구현될 수 있다. E1과 E2는 다른 제 2 참조 블록 세트들을 가진다. 그러나 각 제 2 참조 블록 세트들은 오직 제 2 카테고리의 참조 블록들을 포함한다. 도13에 의하면 E1과 E2의 제 2 카테고리의 참조 블록들은 B1, B2, B3, B4 및 B5를 포함한다. B1, B2, B3은 공간에서 블록 E와 겹친다. B4 및 B5는 공간에서 블록 E와 근접한다. 이 실시 예에서, 현재 서브 블록의 제 1 참조 블록 세트 안의 참조 블록들은 현재 서브 블록의 중심과 같은 공간 위치를 가지는 지점을 포함하는 블록으로 설정될 수 있다. 예를 들어 만약 현재 서브 블록이 E1일 때, B1은 현재 서브 블록의 제 2 참조 블록 세트 안의 참조 블록일 수 있다. 만약 현재 서브 블록이 E2일 때, B3은 현재 서브 블록의 제 2 참조 블록 세트 안의 참조 블록일 수 있다.
블록 (1103)에서 현재 서브 블록의 제 2 참조 블록 세트 안의 각 참조 블록의 움직임 벡터와 현재 서브 블록의 제 2 참조 블록 세트 안의 참조 블록의 움직임 벡터의 제 1 예측자는 획득된다. 그리고 참조 블록의 움직임 벡터와 참조 블록의 움직임 벡터의 제 1 예측자 간의 제 1 움직임 벡터 차이는 계산된다.
블록 (1103)에서 현재 서브 블록의 제 2 참조 블록 세트 안의 각 참조 블록의 움직임 벡터와 현재 서브 블록의 제 2 참조 블록 세트 안의 참조 블록의 움직임 벡터의 제 1 예측자가 획득되었을 때, 만약 제 2 참조 블록 세트 안의 특정 참조 블록의 움직임 벡터 또는 제 2 참조 블록 세트 안의 참조 블록의 움직임 벡터의 제 1 예측자가 존재하지 않는다면, 참조 블록의 제 1 움직임 벡터 차이가 존재하지 않는다고 표시하는 표시가 리턴된다.
위의 실시 예와 유사하게, 움직임 벡터와 제 1 움직임 벡터 차이는 이 블록에 맞추어 스케일링될 수 있다.
블록 (1104)에서, 블록 (1103)에서 획득한 현재 서브 블록의 제 2 참조 블록 세트 안의 각 참조 블록의 제 1 움직임 벡터 차이에 따라 현재 서브 블록의 제 1 움직임 벡터 차이의 예측자는 계산된다.
블록 (1104)는 다음과 같이 구현될 수 있다. 블록 (1103)에서 획득한 현재 서브 블록의 제 2 참조 블록 세트 안의 참조 블록의 제 1 움직임 벡터 차이는 직접적으로 현재 서브 블록의 제 1 움직임 벡터 차이의 예측자로 채택될 수 있다. 만약 제 2 참조 블록 세트 안의 특정 서브 블록의 제 1 움직임 벡터 차이가 없다면, 현재 서브 블록의 제 1 움직임 벡터 차이의 예측자는 영 벡터로 설정된다.
위의 실시 예와 유사하게, 이 블록에서 제 1 움직임 벡터 차이는 스케일링될 수 있다.
블록 (1105)에서 현재 서브 블록의 제 1 움직임 벡터 차이는 결정된다.
블록 (1105)은 다음과 같이 구현될 수 있다. E1과 E2는 다른 제 1 참조 블록 세트들을 가지고 있다. 그러나 각 제 1 참조 블록 세트는 오직 제 1 카테고리의 참조 블록들을 포함한다. 도12에서 볼 수 있듯이, E1과 E2의 제 1 카테고리의 참조 블록들은 AL1, AL2, AC1, AU1, AU2 및 AU3를 포함한다. 이 실시 예에서 현재 서브 블록의 제 1 참조 블록 세트의 참조 블록들은 현재의 서브 블록의 좌측 상단 꼭지점의 좌측에 위치한 블록과 현재의 서브 블록의 좌측 상단 꼭지점 위에 있는 블록으로 구성될 수 있다. 예를 들어 만약 현재 서브 블록이 E1일 경우, AL2 및 AU1은 현재 서브 블록의 제 1 참조 블록 세트 안의 참조 블록들이다. 만약 현재 서브 블록이 E2일 경우, E1 및 AU2는 현재 서브 블록의 제 1 참조 블록 세트 안의 참조 블록들이다.
블록 (1106)에서 현재 서브 블록의 제 1 참조 블록 세트 안의 각 참조 블록의 움직임 벡터는 획득된다.
블록 (1106)에서 현재 서브 블록의 제 1 참조 블록 세트 안의 각 참조 블록의 움직임 벡터는 획득될 때, 만약 제 1 참조 블록 세트 안의 특정 참조 블록들의 움직임 벡터가 존재하지 않으면, 참조 블록의 움직임 벡터가 존재하지 않는다고 표시하는 표시가 리턴된다.
블록 (1107)에서 블록 (1106)에서 현재 서브 블록의 제 1 참조 블록 세트 안의 각 참조 블록의 움직임 벡터에 따라 현재 서브 블록의 움직임 벡터의 제 1 예측자는 획득된다.
블록 (1107)은 다음과 같이 구현될 수 있다. 현재 서브 블록의 제 1 참조 블록 세트 안의 참조 블록들의 움직임 벡터들 중 최소값은 현재 서브 블록의 움직임 벡터의 제 1 예측자로 채택될 수 있다. 만약 현재 서브 블록의 제 1 참조 블록 세트 안의 참조 블록들의 움직임 벡터들이 모두 존재하지 않는다면, 현재 서브 블록의 움직임 벡터의 제 1 예측자는 영 벡터로 설정된다.
위의 실시 예들과 유사하게, 이 블록에서 제 1 참조 블록 세트 안의 참조 블록들의 움직임 벡터들은 스케일링될 수 있다.
블록 (1108)에서 현재 서브 블록의 움직임 벡터의 제 1 예측자와 현재 서브 블록의 제 1 움직임 벡터 차이의 예측자에 따라 현재 서브 블록의 움직임 벡터의 제 2 예측자는 획득된다.
블록 (1108)은 제 1 실시 예에서 설명한 블록 (207)과 유사하다. 그리고 블록(207)에 대하여 현재 서브 블록에서 수행되는 프로세스라는 점이 다르다.
블록 (1108)에서 현재 서브 블록의 움직임 벡터의 제 2 예측자를 획득한 후, 현재 서브 블록의 움직임 벡터의 제 2 예측자는 현재 서브 블록의 부호화 또는 복호화 프로세스에 사용될 수 있는 현재 서브 블록의 움직임 벡터의 예측자, 현재 서브 블록의 제 1 움직임 벡터 차이의 예측자의 후보, 현재 서브 블록의 움직임 벡터 또는 현재 서브 블록의 움직임 벡터의 후보로 채택될 수 있다.
이 실시 예의 방법 흐름도는 종료된다. 이 실시 예는 현재 블록의 서브 블록들이 순차적으로 프로세스되지만, 제5 실시 예는 현재 블록의 서브 블록들이 동시에 프로세스된다는 점에서 제 5 실시 예와 다르다.
제 7 실시 예는 다음과 같이 설명된다.
도14는 본 발명의 일 실시 예에 따라 움직임 정보를 획득하는 장치를 설명하는 개략도이다. 도15는 본 발명의 일 실시 예에 따라 상기 장치의 입력부를 설명하는 개략도이다. 도16는 본 발명의 일 실시 예에 따라 상기 장치의 예측부를 설명하는 개략도이다. 도 14에서 볼 수 있듯이, 부호기/복호기 또는 비디오 부호화 또는 복호화 시스템 안의 움직임 정보를 획득하는 장치는 일 실시 예에 따라 제공된다. 상기 장치는 입력부 (141), 예측부 (142) 및 계산부 (143)를 포함한다.
입력부 (141)는 현재 블록 또는 서브 블록의 제 1 참조 블록 세트와 제 2 참조 블록 세트 안의 참조 블록들의 움직임 정보를 입력한다. 입력부 (141)는 다음과 같이 구현될 수 있다. 도 15에서 볼 수 있듯이, 입력부 (141)는 제 1 참조 블록 세트 정보 입력부와 제 2 참조 블록 세트 정보 입력부를 포함한다. 제 1 참조 블록 세트 정보 입력부는 현재 블록 또는 서브 블록의 제 1 참조 블록 세트 안의 참조 블록의 움직임 벡터를 입력한다. 제 2 참조 블록 세트 정보 입력부는 현재 블록 또는 서브 블록의 제 2 참조 블록 세트 안의 참조 블록의 움직임 벡터와 현재 블록 또는 서브 블록의 제 2 참조 블록 세트 안의 참조 블록의 움직임 벡터의 제 1 예측자 간의 제 1 움직임 벡터 차이를 입력한다. 또는 제 2 참조 블록 세트 정보 입력부는 현재 블록 또는 서브 블록의 제 2 참조 블록 세트 안의 참조 블록의 움직임 벡터와 현재 블록 또는 서브 블록의 제 2 참조 블록 세트 안의 참조 블록의 움직임 벡터의 제 1 예측 정보를 입력하고, 현재 블록 또는 서브 블록의 제 2 참조 블록 세트 안의 참조 블록의 제 1 움직임 벡터 차이를 계산한다.
예측부 (142)는 현재 블록 또는 서브 블록의 움직임 벡터의 제 1 예측자와 현재 블록 또는 서브 블록의 제 1 움직임 벡터 차이의 예측자를 계산한다. 예측부 (142)는 다음과 같이 구현될 수 있다. 도 16에서 볼 수 있듯이, 예측부 (142)는 현재 블록 또는 서브 블록의 움직임 벡터의 제 1 예측자를 계산하는 제 1 예측부와 현재 블록 또는 서브 블록의 제 1 움직임 벡터 차이의 예측자를 계산하는 제 2 예측부를 포함한다.
계산부 (143)는 현재 블록 또는 서브 블록의 움직임 벡터의 제 1 예측자와 현재 블록 또는 서브 블록의 제 1 움직임 벡터 차이의 예측자에 따라 현재 블록 또는 서브 블록의 움직임 벡터의 제 2 예측자를 계산한다. 현재 블록 또는 서브 블록의 움직임 벡터의 제 2 예측자가 획득된 후, 계산부 (143)는 현재 블록 또는 서브 블록의 움직임 벡터의 제 2 예측자를 현재 블록 또는 서브 블록의 부호화 또는 복호화를 위해 사용될 수 있는 현재 블록 또는 서브 블록의 움직임 벡터의 예측자, 현재 블록 또는 서브 블록의 움직임 벡터의 예측자의 후보, 현재 블록 또는 서브 블록의 움직임 벡터 또는 현재 블록 또는 서브 블록의 움직임 벡터의 후보로 채택될 수 있다.
본 발명의 상기 해결책으로부터 알 수 있는 바와 같이, 현재 블록 또는 서브 블록의 움직임 벡터는 현재 블록 또는 서브 블록의 움직임 벡터의 제 1 예측자를 획득하기 위하여 제 1 참조 블록 세트의 참조 블록들에 따라 예측된다. 그리고 현재 블록 또는 서브 블록의 제 1 움직임 벡터 차이는 현재 블록 또는 서브 블록의 제 1 움직임 벡터 차이의 예측자를 획득하기 위하여 제 2 참조 블록 세트의 참조 블록들에 따라 예측된다. 마지막으로 현재 블록 또는 서브 블록의 움직임 벡터의 제 2 예측자는 현재 블록 또는 서브 블록의 움직임 벡터의 제 1 예측자와 현재 블록 또는 서브 블록의 제 1 움직임 벡터 차이의 예측자에 따라 획득된다. 상기 제 2 예측자는 현재 블록의 부호화 또는 복호화를 위해 사용될 수 있는 현재 블록 또는 서브 블록의 움직임 벡터의 예측자, 현재 블록 또는 서브 블록 의 움직임 벡터의 예측자의 후보, 현재 블록 또는 서브 블록 의 움직임 벡터 또는 현재 블록 또는 서브 블록 의 움직임 벡터의 후보로 채택될 수 있다. 그러나 기존의 기술들에서는 움직임 벡터의 제 1 예측자는 현재 블록 또는 서브 블록의 움직임 벡터의 최종 예측자, 현재 블록 또는 서브 블록 의 움직임 벡터의 예측자의 후보, 현재 블록 또는 서브 블록 의 움직임 벡터 또는 현재 블록 또는 서브 블록 의 움직임 벡터의 후보로 채택된다. 움직임 벡터를 예측하는 기존의 방법에 기초하여 움직임 벡터의 보조 예측은 소개되었다. 예측되거나 유도된 움직임 벡터의 정확성은 움직임 벡터 차이의 예측자를 통해 향상되었다. 배경 기술에서 언급한 첫 번째 부호화 또는 복호화 방법에 대하여, 움직임 벡터의 예측자의 정확도가 향상되었기 때문에 전송된 움직임 벡터 차이는 감소하였다. 따라서 움직임 벡터의 압축 효율이 향상되었다. 배경 기술에서 언급한 두 번째 부호화 또는 복호화 방법에 대하여 최적화된 움직임 벡터가 유도되었으므로, 비디오 부호화 성능이 향상되었다. 제 1 참조 블록 세트는 오직 제 1 카테고리의 참조 블록들을 포함하고 제 2 참조 블록 세트는 오직 제 2 카테고리의 참조 블록들을 포함할 때 또는 제 1 참조 블록 세트는 오직 제 2 카테고리의 참조 블록들을 포함하고 제 2 참조 블록 세트는 오직 제 1 카테고리의 참조 블록들을 포함할 때, 공간 영역과 시간 영역 모두에서 움직임 벡터의 상관 관계가 두 예측들의 복잡성을 증가시키지 않고 제거될 수 있다. 즉, 상대적으로 더 적은 비용으로 더 큰 부호화 성능 이득을 획득할 수 있다.
전술한 것은 본 발명의 단지 바람직한 실시 예이며, 본 발명의 보호 범위를 제한하기 위해 사용되지 않는다. 본 발명의 사상 및 원리를 벗어나지 않는 정도의 임의의 변형, 균등물 치환 및 개선은 본 발명의 보호 범위 내에 있다.

Claims (12)

  1. 비디오 부호화 또는 복호화에 있어서 움직임 정보를 획득하기 위한 방법은 비디오 이미지의 현재 블록 또는 서브 블록의 움직임 정보를 결정하는 방법을 포함하며, 상기 움직임 정보를 결정하는 방법은
    상기 현재 블록 또는 서브 블록의 제 1 참조 블록 세트 안의 각 참조 블록의 움직임 벡터에 따라 상기 현재 블록 또는 서브 블록의 움직임 벡터의 제 1 예측자를 계산하는 단계;
    상기 현재 블록 또는 서브 블록의 제 2 참조 블록 세트 안의 각 참조 블록의 움직임 벡터와 상기 현재 블록 또는 서브 블록의 상기 제 2 참조 블록 세트 안의 상기 참조 블록의 상기 움직임 벡터의 제 1 예측자 간의 제 1 움직임 벡터 차이를 결정하고, 상기 현재 블록 또는 서브 블록의 상기 제 1움직임 벡터 차이의 예측자를 획득하기 위하여 상기 제 2 참조 블록 세트 안의 각 참조 블록의 상기 제 1 움직임 벡터 차이에 따라 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터와 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 1예측자 간의 제 1 움직임 벡터 차이를 예측하는 단계; 및
    상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자와 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 1 예측자에 따라 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 제 2 예측자를 결정하는 단계를 포함하고,
    상기 제 1 참조 블록 세트는 최초로 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터를 예측하거나 유도하기 위한 참조 블록들을 포함하고; 및
    상기 제 2 참조 블록 세트는 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이를 예측하기 위한 참조 블록들을 포함하는 것을 특징으로 하는 움직임 정보를 획득하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 현재 블록의 상기 제 1 참조 블록 세트는 현재 프레임 안에서 상기 현재 블록에 인접한 부호화된 블록 또는 복호화된 블록을 포함하거나, 상기 현재 프레임의 참조 프레임 안에서 공간적으로 상기 현재 블록에 인접하거나 겹치는 부호화된 블록 또는 복호화된 블록을 포함하고;
    상기 현재 블록의 상기 제 2 참조 블록 세트는 상기 현재 블록에 인접한 상기 현재 프레임에서 부호화된 블록 또는 복호화된 블록을 포함하거나, 상기 현재 프레임의 상기 참조 프레임 안에서 공간적으로 상기 현재 블록에 인접하거나 겹치는 부호화된 블록 또는 복호화된 블록을 포함하고;
    상기 현재 서브 블록의 상기 제 1 참조 블록 세트는 상기 현재 서브 블록 또는 상기 현재 서브 블록의 상기 블록에 인접한 상기 현재 프레임에서 부호화된 블록 또는 복호화된 블록을 포함하거나, 공간적으로 상기 현재 서브 블록 또는 상기 현재 서브 블록의 상기 블록에 인접하거나 겹치는 상기 현재 프레임의 상기 참조 프레임에서 부호화된 블록 또는 복호화된 블록을 포함하고; 및
    상기 현재 서브 블록의 상기 제 2 참조 블록 세트는 상기 현재 서브 블록 또는 상기 현재 서브 블록의 상기 블록에 인접한 상기 현재 프레임에서 부호화된 블록 또는 복호화된 블록을 포함하거나, 공간적으로 상기 현재 서브 블록 또는 상기 현재 서브 블록의 상기 블록에 인접하거나 겹치는 상기 현재 프레임의 상기 참조 프레임에서 부호화된 블록 또는 복호화된 블록을 포함하는 움직임 정보를 획득하기 위한 방법.
  3. 제 1 항에 있어서,
    상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 1 예측자를 계산하는 단계에 있어서,
    부호기에 의하여, 상기 현재 블록 또는 서브 블록의 상기 제 1 참조 블록 세트 안의 각 참조 블록의 상기 모션 벡터에 따라 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 1 예측자를 유도하고, 비트 스트림(bit-stream)에 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 1 예측자의 유도 정보를 기록하는 단계; 및
    복호기에 의하여, 상기 현재 블록 또는 서브 블록의 상기 제 1 참조 블록 세트 안의 각 참조 블록의 상기 모션 벡터에 따라 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 1 예측자와 상기 비트 스트림 안의 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 1 예측자의 상기 유도 정보를 유도하는 단계를 포함하는 움직임 정보를 획득하기 위한 방법.
  4. 제 1 항에 있어서,
    상기 제 2 참조 블록 세트 안의 각 참조 블록의 상기 움직임 벡터와 상기 현재 블록 또는 서브 블록의 상기 제 2 참조 블록 세트 안의 상기 참조 블록의 상기 움직임 벡터의 상기 제 1 예측자 간의 상기 제 1 움직임 벡터 차이를 결정하는 단계에 있어서,
    상기 현재 블록 또는 서브 블록의 상기 움직임 정보가 결정된 때, 상기 제 2 참조 블록 세트 안의 각 참조 블록의 상기 움직임 벡터와 상기 제 2 참조 블록 세트 안의 상기 참조 블록의 상기 움직임 벡터의 제 1 예측자를 획득하고, 상기 현재 블록 또는 서브 블록의 상기 제 2 참조 블록 세트의 상기 참조 블록의 상기 제 1 움직임 벡터 차이로 상기 제 2 참조 블록 세트 안의 상기 참조 블록의 상기 움직임 벡터와 상기 제 2 참조 블록 세트 안의 상기 참조 블록의 상기 움직임 벡터의 상기 제 1 예측자 간의 차이를 선택하는 단계
    상기 현재 블록 또는 서브 블록의 제 2 참조 블록 세트 안의 각 참조 블록에 대하여, 상기 참조 블록의 움직임 정보가 결정된 후, 상기 참조 블록의 다음에 처리되는 블록 또는 서브 블록의 움직임 정보가 결정되기 전에, 상기 참조 블록의 상기 제 1 움직임 벡터 차이로 상기 참조 블록의 움직임 벡터와 상기 참조 블록의 상기 움직임 벡터의 제 1 예측자 간의 차이를 선택하고, 상기 참조 블록의 상기 제 1 움직임 벡터 차이를 저장하는 단계; 및
    상기 현재 블록 또는 서브 블록의 상기 움직임 정보가 결정되면, 상기 제 2 참조 블록 세트 안의 각 참조 블록의 저장된 제 1 움직임 벡터 차이를 획득하는 단계를 포함하는 움직임 정보를 획득하기 위한 방법.
  5. 제 4 항에 있어서,
    상기 현재 블록 또는 서브 블록의 상기 제 2 참조 블록 세트의 참조 블록의 움직임 벡터 또는 상기 현재 블록 또는 서브 블록의 상기 제 2 참조 블록 세트의 상기 참조 블록의 상기 움직임 벡터의 예측자가 존재하지 않을 때, 상기 움직임 정보를 획득하기 위한 방법은,
    상기 참조 블록의 제 1 움직임 벡터 차이는 상기 현재 블록 또는 서브 블록의 제 1 움직임 벡터 차이의 상기 예측자의 계산에 사용되지 않을 때, 상기 참조 블록의 상기 제 1 움직임 벡터 차이가 존재하지 않는다고 판단하는 단계; 또는
    상기 참조 블록의 제 1 움직임 벡터 차이는 상기 현재 블록 또는 서브 블록의 제 1 움직임 벡터 차이의 상기 예측자의 계산에 사용될 때, 상기 참조 블록의 상기 제 1 움직임 벡터 차이를 영 벡터로 설정하는 단계를 포함하는 움직임 정보를 획득하기 위한 방법.
  6. 제 5 항에 있어서,
    상기 현재 블록 또는 서브 블록의 상기 제 2 참조 블록 세트 안의 상기 참조 블록의 상기 제 1 움직임 벡터 차이가 존재하지 않을 때, 상기 움직임 정보를 획득하기 위한 방법은 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자를 영 벡터로 설정하는 단계를 포함하거나,
    상기 현재 블록 또는 서브 블록의 상기 제 2 참조 블록 세트 안의 모든 참조 블록들의 제 1 움직임 벡터 차이들이 존재하지 않을 때, 상기 움직임 정보를 획득하기 위한 방법은 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자를 영 벡터로 설정하는 단계를 포함하는 것을 특징으로 하는 움직임 정보를 획득하기 위한 방법.
  7. 제 1 항에 있어서,
    상기 현재 블록 또는 서브 블록의 제 1 움직임 벡터 차이를 예측하는 단계는,
    상기 제 2 참조 블록 세트의 상기 참조 블록들의 제 1 움직임 벡터 차이들의 수평 성분들 중 최소값을 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자의 수평 성분으로 채택하고, 상기 제 2 참조 블록 세트의 상기 참조 블록들의 제 1 움직임 벡터 차이들의 수직 성분들 중 최소값을 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자의 수직 성분으로 채택하는 단계; 또는
    상기 제 2 참조 블록 세트의 상기 참조 블록들의 제 1 움직임 벡터 차이들의 평균을 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자로 채택하는 단계; 또는
    상기 제 2 참조 블록 세트의 상기 참조 블록들의 제 1 움직임 벡터 차이들의 수평 성분들 중 중간값을 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자의 수평 성분으로 채택하고, 상기 제 2 참조 블록 세트의 상기 참조 블록들의 제 1 움직임 벡터 차이들의 수직 성분들 중 중간값을 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자의 수직 성분으로 채택하는 단계; 또는
    상기 제 2 참조 블록 세트의 상기 참조 블록들의 제 1 움직임 벡터 차이들 중 각 두 개 사이의 거리를 계산하고, 상기 거리들에 따라 상기 현재 블록 또는 서브 블록의 제 1 움직임 벡터 차이의 상기 예측자를 유도하는 단계; 또는
    부호기에 의하여, 상기 제 2 참조 블록 세트의 각 참조 블록의 상기 제 1 움직임 벡터 차이에 따라 상기 현재 블록 또는 서브 블록의 제 1 움직임 벡터 차이의 상기 예측자를 유도하고, 상기 현재 블록 또는 서브 블록의 제 1 움직임 벡터 차이의 상기 예측자의 유도 정보를 비트 스트림에 기록하는 단계; 및 복호기에 의하여, 상기 제 2 참조 블록 세트 안의 각 참조 블록의 상기 제 1 움직임 벡터 차이에 따라 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자, 및 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자의 상기 유도 정보를 유도하는 단계를 포함하는 움직임 정보를 획득하기 위한 방법.
  8. 제 1 항에 있어서,
    상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 2 예측자를 결정하는 단계는,
    상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자와 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 1 예측자의 합 또는 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자와 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 1 예측자의 가중합을 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 2 예측자로 채택하는 단계를 포함하는 움직임 정보를 획득하기 위한 방법.
  9. 제 1 항 내지 제8항에 있어서,
    상기 현재 블록 또는 서브 블록의 상기 제 1 참조 블록 세트 안의 상기 참조 블록들은 상기 현재 블록 또는 서브 블록의 상기 제 2 참조 블록 세트 안의 상기 참조 블록들과 동일하거나 다른 것을 특징으로 하는 움직임 정보를 획득하기 위한 방법.
  10. 제 1 항 내지 제8항에 있어서,
    블록 내에서 다른 서브 블록들에 대하여, 서브 블록의 제 1 참조 블록 세트 안의 참조 블록들은 또 다른 서브 블록의 제 1 참조 블록 세트 안의 참조 블록들과 동일하거나 다르고, 서브 블록의 제 2 참조 블록 세트 안의 참조 블록들은 또 다른 서브 블록의 제 2 참조 블록 세트 안의 참조 블록들과 동일하거나 다른 것을 특징으로 하는 움직임 정보를 획득하기 위한 방법.
  11. 제 1 항 내지 제8항에 있어서,
    상기 제 1 참조 블록 세트 또는 상기 제 2 참조 블록 세트 안의 참조 블록의 움직임 정보가 서브 블록 안에서 결정될 때, 상기 참조 블록은 서브 블록인 것을 특징으로 하는 움직임 정보를 획득하기 위한 방법.
  12. 비디오 부호화 또는 복호화에 관한 움직임 정보를 획득하기 위한 장치에 있어서,
    현재 블록 또는 서브 블록의 제 1 참조 블록 세트 안의 각 참조 블록의 움직임 벡터를 획득하고, 상기 현재 블록 또는 서브 블록의 제 2 참조 블록 세트 안의 각 참조 블록과 상기 현재 블록 또는 서브 블록의 상기 제 2 참조 블록 세트 안의 상기 참조 블록의 상기 움직임 벡터의 제 1 예측자 간의 제 1 움직임 벡터 차이를 결정하는 입력부;
    상기 제 1 참조 블록 세트 안의 각 참조 블록의 상기 움직임 벡터에 따라 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 1 예측자를 계산하고, 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이의 상기 예측자를 획득하기 위하여 상기 제 2 참조 블록 세트 안의 각 참조 블록의 상기 제 1 움직임 벡터 차이에 따라 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이를 예측하는 예측부; 및
    상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 상기 제 1 예측자에 따라 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터의 제 2 예측자를 결정하는 계산부를 포함하고,
    상기 제 1 참조 블록 세트는 최초로 상기 현재 블록 또는 서브 블록의 상기 움직임 벡터를 예측하거나 유도하기 위한 참조 블록들을 포함하고; 및
    상기 제 2 참조 블록 세트는 상기 현재 블록 또는 서브 블록의 상기 제 1 움직임 벡터 차이를 예측하기 위한 참조 블록들을 포함하는 것을 특징으로 하는 움직임 정보를 획득하기 위한 장치.
KR20140072304A 2013-06-14 2014-06-13 움직임 정보를 획득하기 위한 방법 KR20140146541A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310236309 2013-06-14
CN201310236309.6 2013-06-14

Publications (1)

Publication Number Publication Date
KR20140146541A true KR20140146541A (ko) 2014-12-26

Family

ID=52022517

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20140072304A KR20140146541A (ko) 2013-06-14 2014-06-13 움직임 정보를 획득하기 위한 방법

Country Status (5)

Country Link
US (1) US10051282B2 (ko)
KR (1) KR20140146541A (ko)
CN (2) CN111200736B (ko)
SG (1) SG11201510258PA (ko)
WO (1) WO2014200313A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016195453A1 (ko) * 2015-06-05 2016-12-08 한양대학교 산학협력단 영상 부호화 및 복호화 방법과 영상 복호화 장치
WO2018131986A1 (ko) * 2017-01-16 2018-07-19 세종대학교 산학협력단 영상의 부호화/복호화 방법 및 장치
KR20200124755A (ko) * 2018-04-13 2020-11-03 엘지전자 주식회사 비디오 처리 시스템에서 인터 예측 방법 및 장치
CN113454999A (zh) * 2019-01-02 2021-09-28 北京字节跳动网络技术有限公司 划分模式之间的运动矢量推导

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107071421B (zh) * 2017-05-23 2019-11-22 北京理工大学 一种结合视频稳定的视频编码方法
CN109005412B (zh) * 2017-06-06 2022-06-07 北京三星通信技术研究有限公司 运动矢量获取的方法及设备
US10856003B2 (en) * 2017-10-03 2020-12-01 Qualcomm Incorporated Coding affine prediction motion information for video coding
CN109996075B (zh) * 2017-12-29 2022-07-12 华为技术有限公司 一种图像解码方法及解码器
US11051025B2 (en) * 2018-07-13 2021-06-29 Tencent America LLC Method and apparatus for video coding
CN111050177B (zh) * 2018-10-15 2021-07-20 腾讯科技(深圳)有限公司 视频编码、视频解码方法、装置、计算机设备和存储介质
CN112969072B (zh) 2019-03-11 2022-08-26 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN110719489B (zh) * 2019-09-18 2022-02-18 浙江大华技术股份有限公司 运动矢量修正、预测、编码方法、编码器及存储装置
CN113706573B (zh) * 2020-05-08 2024-06-11 杭州海康威视数字技术股份有限公司 一种运动物体的检测方法、装置及存储介质
CN111626178B (zh) * 2020-05-24 2020-12-01 中南民族大学 一种基于新时空特征流的压缩域视频动作识别方法和***

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100420308C (zh) * 2002-04-26 2008-09-17 株式会社Ntt都科摩 图象编码装置和图象译码装置
EP1835747B1 (en) * 2005-01-07 2019-05-08 Nippon Telegraph And Telephone Corporation Video encoding method and device, video decoding method and device, program thereof, and recording medium containing the program
US20060153300A1 (en) * 2005-01-12 2006-07-13 Nokia Corporation Method and system for motion vector prediction in scalable video coding
KR101364195B1 (ko) * 2008-06-26 2014-02-21 에스케이텔레콤 주식회사 움직임벡터 부호화/복호화 방법 및 그 장치
CN101677400B (zh) * 2008-09-19 2012-08-15 华为技术有限公司 编码、解码方法和编码器、解码器及编解码***
CN101742278B (zh) * 2008-11-12 2012-11-07 富士通半导体股份有限公司 获取图像的运动矢量和边界强度的方法和***
CN102883160B (zh) * 2009-06-26 2016-06-29 华为技术有限公司 视频图像运动信息获取方法、装置及设备、模板构造方法
US9060176B2 (en) 2009-10-01 2015-06-16 Ntt Docomo, Inc. Motion vector prediction in video coding
CN101860754B (zh) * 2009-12-16 2013-11-13 香港应用科技研究院有限公司 运动矢量编码和解码的方法和装置
US8824558B2 (en) * 2010-11-23 2014-09-02 Mediatek Inc. Method and apparatus of spatial motion vector prediction
CN103797795B (zh) * 2011-07-01 2017-07-28 谷歌技术控股有限责任公司 用于运动矢量预测的方法和设备

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016195453A1 (ko) * 2015-06-05 2016-12-08 한양대학교 산학협력단 영상 부호화 및 복호화 방법과 영상 복호화 장치
WO2018131986A1 (ko) * 2017-01-16 2018-07-19 세종대학교 산학협력단 영상의 부호화/복호화 방법 및 장치
KR20200124755A (ko) * 2018-04-13 2020-11-03 엘지전자 주식회사 비디오 처리 시스템에서 인터 예측 방법 및 장치
US11601643B2 (en) 2018-04-13 2023-03-07 Lg Electronics Inc. Method and apparatus for inter prediction in video processing system
KR20230042419A (ko) * 2018-04-13 2023-03-28 엘지전자 주식회사 비디오 처리 시스템에서 인터 예측 방법 및 장치
CN113454999A (zh) * 2019-01-02 2021-09-28 北京字节跳动网络技术有限公司 划分模式之间的运动矢量推导

Also Published As

Publication number Publication date
CN111200736A (zh) 2020-05-26
CN104244002B (zh) 2019-02-05
CN104244002A (zh) 2014-12-24
SG11201510258PA (en) 2016-01-28
US20160134886A1 (en) 2016-05-12
CN111200736B (zh) 2022-06-21
US10051282B2 (en) 2018-08-14
WO2014200313A1 (ko) 2014-12-18

Similar Documents

Publication Publication Date Title
KR20140146541A (ko) 움직임 정보를 획득하기 위한 방법
CN110809887B (zh) 用于多参考预测的运动矢量修正的方法和装置
TWI617185B (zh) 具有仿射運動補償的視訊編碼的方法以及裝置
KR101713354B1 (ko) 움직임 추정에 대한 검색 범위 선택 방법과 그의 시스템 및 컴퓨터 판독가능 저장 매체
JP5373626B2 (ja) 複数の動きベクトル・プレディクタを使用して動きベクトルを推定する方法、装置、エンコーダ、デコーダ及びデコーディング方法
KR101443169B1 (ko) 비디오 이미지의 움직임 정보를 취득하는 방법, 장치, 및 기기, 그리고 템플릿 구성 방법
TWI587689B (zh) 用以於視訊解碼器基於經重建參考圖框來估算移動之方法與系統(二)
KR20110008653A (ko) 움직임 벡터 예측 방법과 이를 이용한 영상 부호화/복호화 장치 및 방법
CN113170192A (zh) 仿射的merge与mvd
CN110710212B (zh) 通过子像素运动矢量细化对视频数据进行编码或解码的方法和装置
JP2011199362A (ja) 動画像符号化装置、動画像符号化方法及び動画像復号装置ならびに動画像復号方法
TW202007154A (zh) 交織預測的改善
CN115052162A (zh) 用于解码端运动矢量修正的基于误差面的子像素精确修正方法
JP5835524B1 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
TW202015405A (zh) 用於視訊編解碼的幀間預測方法以及裝置
CN111901590B (zh) 一种用于帧间预测的细化运动矢量存储方法及装置
CN112449180B (zh) 一种编解码方法、装置及其设备
JP7516725B2 (ja) 双線形補間ベースのデコーダ側の動きベクトルのリファインメントにおけるパッチの類似性に基づいてリファインメントを省略するための方法
JP2016027768A (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP5637010B2 (ja) 動きベクトル検出装置、動きベクトル検出方法及び動きベクトル検出プログラム
JP2006074499A (ja) 画像符号化装置及び画像符号化プログラム

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid