KR101449435B1 - 움직임 벡터 정규화에 기초한 영상의 부호화 방법 및 장치, 영상의 복호화 방법 및 장치 - Google Patents

움직임 벡터 정규화에 기초한 영상의 부호화 방법 및 장치, 영상의 복호화 방법 및 장치 Download PDF

Info

Publication number
KR101449435B1
KR101449435B1 KR20130002665A KR20130002665A KR101449435B1 KR 101449435 B1 KR101449435 B1 KR 101449435B1 KR 20130002665 A KR20130002665 A KR 20130002665A KR 20130002665 A KR20130002665 A KR 20130002665A KR 101449435 B1 KR101449435 B1 KR 101449435B1
Authority
KR
South Korea
Prior art keywords
block
merging
blocks
motion vector
motion
Prior art date
Application number
KR20130002665A
Other languages
English (en)
Other versions
KR20130081676A (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 KR20130081676A publication Critical patent/KR20130081676A/ko
Application granted granted Critical
Publication of KR101449435B1 publication Critical patent/KR101449435B1/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
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • 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/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting 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/537Motion estimation other than block-based
    • H04N19/543Motion estimation other than block-based using regions

Abstract

영상의 부호화 방법 및 장치, 복호화 방법 및 장치가 개시된다. 영상 부호화 방법은 인접한 블록들을 병합한 병합 블록의 움직임 벡터, 병합 블록에 포함된 블록들의 움직임 벡터, 주변 블록들의 움직임 벡터에 기초하여, 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량을 획득하고 획득된 변화량에 기초하여, 병합 블록들 중 변화량이 가장 작은 병합 블록을 결정하고 결정된 병합 블록에 포함된 블록들의 병합 여부를 결정한다.

Description

움직임 벡터 정규화에 기초한 영상의 부호화 방법 및 장치, 영상의 복호화 방법 및 장치{Method and apparatus for encoding image, and method and apparatus for decoding image based on regularization of motion vector}
본 발명은 영상의 부호화 및 복호화에 관한 것으로, 보다 상세하게는 블록들을 병합한 병합 블록의 움직임 벡터를 이용하여 영상을 부호화하는 방법 및 장치, 복호화하는 방법 및 장치에 관한 것이다. 또한, 본 발명은 영상을 객체 단위로 분할하고, 분할된 객체 단위로 움직임 예측 및 보상을 수행하여 영상을 부호화하는 방법 및 장치, 복호화하는 방법 및 장치에 관한 것이다.
MPEG-1, MPEG-2, MPEG-4 H.264/MPEG-4 AVC(Advanced Video coding)와 같은 영상 압축 방식에서는 정교한 움직임 예측을 위해 영상을 여러 개의 영역(픽셀 집합)으로 분할하고, 각 영역에 대해서 움직임 벡터를 예측한다. 가장 널리 이용되는 BMA(Block Matching Algorithm) 방법은 현재 프레임에 대해 블록 형태로 픽셀 집합을 정의하고, 각 블록에 대해서 가장 유사한 블록을 이전 프레임에서 검색함으로써 블록 단위의 움직임 벡터를 예측한다.
BMA와 같은 움직임 예측 방식은 SAD(Sum of Absolute Difference) 값을 최소화하는 움직임 벡터를 예측하기 때문에 영상에 포함된 물체의 실제 움직임을 정확히 예측하지 못할 확률이 높다. 예를 들어, 균일한(homogeneous) 물체에 포함된 블록에 대한 움직임 예측시에, 이전 프레임에도 움직임 예측되는 블록과 유사한 블록이 다수 존재할 가능성이 크므로 움직임 벡터는 실제 물체의 움직임을 정확히 반영하지 못하는 경우가 발생할 수 있다.
또한, 종래 기술에 따르면 영상에 포함된 객체를 고려하지 않고 소정 크기의 블록 단위로 움직임 예측을 수행하기 때문에, 움직임 예측의 정확도와 정밀도가 감소한다. 예를 들어, 객체에 비해 블록의 크기가 작은 경우 블록과 유사한 영역이 이전 프레임에도 다수 존재하기 때문에 실제 움직임 벡터가 아닌 움직임 벡터가 최종 움직임 벡터로 선택될 수 있다. 또한, 객체에 비해 블록의 크기가 큰 경우에는 블록에 객체 뿐만 아니라 배경 영역의 픽셀도 포함되어 움직임 예측이 잘못 수행될 수 있다.
본 발명이 해결하고자 하는 기술적 과제는 같은 물체에 포함된 블록들을 병합하여 보다 큰 병합 블록을 획득하고, 획득된 병합 블록에 기초하여 움직임 벡터를 예측함으로써 물체의 실제 움직임에 가까운 움직임 벡터를 획득하는 동시에 일관성있는 움직임 벡터 필드를 제공하는 것이다.
또한 본 발명이 해결하고자 하는 기술적 과제는 영상에 포함된 객체 단위로 움직임 예측 및 보상을 수행함으로써 보다 정확한 움직임 벡터를 획득하기 위한 것이다.
전술한 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 영상 부호화 방법은 영상을 구성하는 블록들의 움직임 벡터들을 획득하는 단계; 서로 인접한 두 개의 블록들을 병합하여 병합 블록들을 획득하는 단계; 각 병합 블록의 움직임 벡터를 획득하는 단계; 상기 병합 블록의 움직임 벡터, 상기 병합 블록에 포함된 상기 블록들의 움직임 벡터, 상기 병합 블록의 주변 블록들의 움직임 벡터 및 상기 병합 블록에 포함된 블록들의 주변 블록들의 움직임 벡터에 기초하여, 상기 병합 블록에 대하여 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량을 획득하는 단계; 및 상기 획득된 변화량에 기초하여, 상기 병합 블록들 중 상기 변화량이 가장 작은 병합 블록을 결정하고 상기 결정된 병합 블록에 포함된 블록들의 병합 여부를 결정하는 단계를 포함한다.
본 발명의 일 실시예에 따른 영상 부호화 장치는 영상을 구성하는 블록들의 움직임 벡터들 및 서로 인접한 두 개의 블록들을 병합하여 병합 블록들 각각의 움직임 벡터를 획득하는 움직임 예측 및 보상부; 및 상기 병합 블록의 움직임 벡터, 상기 병합 블록에 포함된 상기 블록들의 움직임 벡터, 상기 병합 블록의 주변 블록들의 움직임 벡터 및 상기 병합 블록에 포함된 블록들의 주변 블록들의 움직임 벡터에 기초하여, 상기 병합 블록에 대하여 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량을 획득하고, 상기 획득된 변화량에 기초하여, 상기 병합 블록들 중 상기 변화량이 가장 작은 병합 블록을 결정하고 상기 결정된 병합 블록에 포함된 블록들의 병합 여부를 결정하는 블록 병합부를 포함한다.
본 발명의 일 실시예에 따른 영상의 복호화 방법은 수신된 비트스트림으로부터 상기 영상을 구성하는 블록들 중 적어도 두 개의 서로 인접한 블록들을 병합한 병합 블록 및 상기 병합 블록의 움직임 벡터에 대한 정보를 획득하는 단계; 및 상기 움직임 벡터를 이용하여 상기 병합 블록에 대한 움직임 보상을 수행하여 상기 병합 블록의 예측값을 획득하는 단계를 포함하며, 상기 병합 블록은 상기 적어도 두 개의 서로 인접한 블록들의 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량과 소정 임계값과의 비교 결과에 따라서 상기 인접한 블록들을 병합하여 결정된다.
본 발명의 일 실시예에 따른 영상의 복호화 장치는 수신된 비트스트림으로부터 상기 영상을 구성하는 블록들 중 적어도 두 개의 서로 인접한 블록들을 병합한 병합 블록 및 상기 병합 블록의 움직임 벡터에 대한 정보를 획득하는 엔트로피 복호화부; 및 상기 움직임 벡터를 이용하여 상기 병합 블록에 대한 움직임 보상을 수행하여 상기 병합 블록의 예측값을 획득하는 움직임 보상부를 포함하며, 상기 병합 블록은 상기 적어도 두 개의 서로 인접한 블록들의 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량과 소정 임계값과의 비교 결과에 따라서 상기 인접한 블록들을 병합하여 결정된다.
본 발명의 실시예들에 따르면 동일한 객체에 포함될 확률이 높은 블록들을 병합함으로써 영상을 소수의 큰 병합 블록으로 분할할 수 있다. 이러한 소수의 큰 병합 블록들은 영상에 포함된 객체의 형태와 유사해질 수 있다. 본 발명의 실시예들에 따르면 객체의 일부분에 불과한 작은 블록을 다른 블록들과 병합하여 병합 블록을 생성하고, 병합 블록에 대한 움직임 예측을 수행함으로써 객체에 포함된 작은 블록에 대한 잘못된 움직임 예측을 방지하고 보다 정확한 움직임 벡터를 획득할 수 있다. 즉, 본 발명의 실시예들에 따르면 같은 객체 내에 포함된 블록들의 서로 다른 움직임 벡터들을 병합 블록의 움직임 벡터로 정규화(regularization)함으로써 실제로 하나의 객체가 갖는 하나의 움직임을 보다 정확하게 반영하는 움직임 벡터를 획득할 수 있다.
또한, 본 발명의 실시예들에 따르면 객체 단위로 움직임 예측 및 보상을 수행함으로써 객체의 경계 부분에서도 보다 정확한 움직임 예측 및 보상을 수행할 수 있다.
또한, 본 발명의 실시예들에 따르면 보다 정확한 움직임 예측 및 보상 과정을 MCFI(Motion-Compensated Frame Interpolation) 등의 보간 프레임 생성시에 이용함으로써 보다 정확한 보간 프레임을 생성할 수 있다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치의 구성을 나타낸 블록도이다.
도 2는 본 발명과 관련된 기술 분야에서 움직임 벡터의 후처리를 위한 중간값(median) 필터링 방식을 설명하기 위한 참조도이다.
도 3 및 도 4는 본 발명과 관련된 기술 분야에서 이용되는 중간값 필터링 방식의 문제점을 설명하기 위한 참조도이다.
도 5는 본 발명의 일 실시예에 따라서 영상 블록의 병합 과정을 설명하기 위한 참조도이다.
도 6은 본 발명의 일 실시예에 따라서 영상 블록의 병합 과정을 나타낸 플로우 차트이다.
도 7은 본 발명의 일 실시예에 따라서 영상 블록의 병합이 반복되는 과정을 설명하기 위한 참조도이다.
도 8은 본 발명의 일 실시예에 따라서 블록 병합 과정 및 움직임 벡터의 정규화 과정을 나타낸 도면이다.
도 9은 본 발명의 일 실시예에 따른 영상 부호화 방법을 나타낸 플로우 차트이다.
도 10은 본 발명의 일 실시예에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 11은 본 발명의 일 실시예에 따른 영상 복호화 방법을 나타낸 플로우 차트이다.
도 12는 본 발명의 다른 실시예에 따른 영상 부호화 방법을 나타낸 플로우 차트이다.
도 13은 본 발명의 다른 실시예에 따른 영상 복호화 방법을 나타낸 플로우 차트이다.
이하 첨부된 도면을 참조하여 본 발명의 실시예들에 대하여 구체적으로 설명한다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치의 구성을 나타낸 블록도이다. 도 1을 참조하면, 영상 부호화 장치(100)는 감산부(110), 변환 및 양자화부(120), 엔트로피 부호화부(130), 역양자화 및 역변환부(140), 가산부(150), 저장부(160), 움직임 예측 및 보상부(170) 및 블록 병합부(180)를 포함한다. 미도시된 인트라 예측부는 인트라 예측 모드에서 블록 단위로 인트라 예측을 수행하여 각 블록의 예측값을 생성할 수 있다.
움직임 예측 및 보상부(170)는 입력 영상을 소정 크기의 블록들로 분할하고, 분할된 각 블록에 대하여 움직임 예측을 수행하여 각 블록의 움직임 벡터를 획득한다. 이하, 본 발명에서 설명되는 블록은 매크로 블록, 매크로 블록을 분할한 파티션, 또는 HEVC(High Efficiency Video Coding)에서 이용되는 부호화 단위 중 하나를 나타낼 수 있다. 특히, 본 발명의 일 실시예에 따른 움직임 예측 및 보상부(170)는 영상을 구성하는 블록들 중 인접한 두 개의 블록들을 병합한 병합 블록에 대한 움직임 예측을 수행하여 병합 블록의 움직임 벡터도 획득한다. 후술되는 바와 같이 병합 블록들은 영상에 포함된 모든 조합 가능한 인접한 두 개의 블록들을 병합하여 획득될 수 있다. 구체적인 병합 블록의 움직임 벡터 예측 과정에 대해서는 후술한다.
블록 병합부(180)는 병합 블록들에 포함된 블록들의 병합 여부를 결정한다. 후술되는 바와 같이, 본 발명의 일 실시예에 따른 블록 병합 과정은 소정 코스트 함수에 기초하여, 조합 가능한 모든 병합 블록들 중 최소 코스트를 갖는 병합 블록을 선택하여 병합하는 과정을 반복함으로써 수행된다. 블록 병합부(180)는 원래 두 개의 블록들 각각의 움직임 벡터에 의한 움직임 예측 오차값과 두 개의 블록을 병합함으로써 생성된 병합 블록의 움직임 벡터를 이용한 움직임 예측 오차값 사이의 변화량 정도와, 원래 두 개의 블록들이 갖는 두 개의 움직임 벡터를 하나의 병합 블록의 움직임 벡터로 균일화(uniformization)하는 과정에서 획득되는 병합에 의한 움직임 벡터의 균일화 정도를 반영하여 각 병합 블록의 코스트를 계산할 수 있다. 구체적으로, 블록 병합부(180)는 병합 블록의 움직임 벡터, 병합 블록에 포함된 블록들의 움직임 벡터, 병합 블록의 주변 블록들의 움직임 벡터 및 병합 블록에 포함된 블록들의 주변 블록들의 움직임 벡터에 기초하여, 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량을 획득한다. 그리고, 블록 병합부(180)는 획득된 변화량에 기초하여, 병합 블록들 중 변화량이 가장 작은 병합 블록을 결정하고 결정된 병합 블록의 변화량과 소정 임계값을 비교하여 최종적으로 블록들의 병합 여부를 결정한다. 블록들의 병합 과정에 대해서는 후술한다.
블록 병합부(180)의 블록 병합 과정에 따라 영상의 최종 분할 형태가 결정되면, 움직임 예측 및 보상부(170)는 블록 또는 병합 블록의 움직임 벡터를 이용하여 이전 참조 프레임으로부터 블록 또는 병합 블록의 예측값을 획득하여 출력한다.
감산부(110)는 블록 또는 병합 블록의 예측값과 입력값 사이의 차이값인 레지듀얼을 출력한다. 레지듀얼 데이터는 변환 및 양자화부(120)를 거쳐 양자화된 변환 계수로 출력된다. 양자화된 변환 계수는 역양자화 및 역변환부(140)를 통해 레지듀얼 데이터로 복원된다. 가산부(150)는 복원된 레지듀얼 데이터와 예측값을 가산하여 복원 영상을 생성하고, 복원 영상은 저장부(160)에 저장되어 다음 영상 프레임의 참조 프레임으로 이용된다. 양자화된 변환 계수는 엔트로피 부호화부(130)를 거쳐 비트스트림으로 출력될 수 있다. 특히, 엔트로피 부호화부(130)는 후술되는 병합 과정을 통해 영상의 분할 형태가 최종적으로 결정되면, 영상을 부호화한 비트스트림에 블록들의 병합 정보 및 병합 블록의 움직임 벡터 정보를 부가할 수 있다.
이하, 도 1의 블록 병합부(180)에서 수행되는 블록의 병합 과정 및 움직임 벡터의 정규화 과정에 대하여 구체적으로 설명한다.
도 2는 본 발명과 관련된 기술 분야에서 움직임 벡터의 후처리를 위한 중간값(median) 필터링 방식을 설명하기 위한 참조도이다. 도 2에서 도면 부호 210은 원래의 움직임 벡터 필드를 나타내며, 도면 부호 220은 중간값 필터링 과정 이후의 변화된 움직임 벡터 필드를 나타낸다.
전술한 바와 같이, BMA와 같은 움직임 예측 방식에서는 SAD 값을 최소화하는 움직임 벡터를 예측하기 때문에 균일한 물체에 포함된 블록에 대한 움직임 예측시에, 이전 프레임에도 움직임 예측되는 블록과 유사한 블록이 다수 존재할 가능성이 크므로 움직임 벡터는 실제 물체의 움직임을 정확히 반영하지 못하는 경우가 발생할 수 있다. 이러한 문제점을 해결하기 위한 방법으로써 각 블록이 갖는 움직임 벡터들에 대하여 후처리 과정을 통하여 인접한 블록들이 서로 유사한 움직임 벡터를 갖도록, 주변 블록들이 갖는 움직임 벡터의 중간값을 현재 블록의 움직임 벡터로 사용하는 중간값 필터링 방법이 있다. 도 2를 참조하면, 도면 부호 210에 도시된 바와 같이 현재 블록(211)을 중심으로 주변 8개의 움직임 벡터 필드가 결정되었다고 가정한다. 중간값 필터링 방법은 현재 블록(211) 및 그 주변 블록들이 갖는 움직임 벡터들 V0, V1, ..., V8으로부터 다음의 수학식 1에 따라서 중간값 움직임 벡터(
Figure 112013002460998-pat00001
)를 획득하여 현재 블록(211)의 움직임 벡터(V0)를 대체하는 것이다.
Figure 112013002460998-pat00002
수학식 1에서
Figure 112013002460998-pat00003
는 Vi 벡터의 x축 성분,
Figure 112013002460998-pat00004
는 Vi 벡터의 y축 성분을 의미한다.
도 2의 우측의 도면 부호 220을 참조하면, 수학식 1에 따른 중간값 필터링 과정에 따라서 현재 블록(221)의 움직임 벡터는 주변 블록들의 움직임 벡터와 유사하게 필터링된다.
이러한 중간값 필터링 방식에서는 유사한 움직임 벡터를 가져야하는 움직임 벡터 필드에서 잘못된 값을 갖는 움직임 벡터를 수정하는데 도움이 될 수 있다. 그러나, 이러한 중간값 필터링 방식은 물체의 크기가 작거나 블록이 물체와 배경의 경계 부근에 있을 경우 해당 블록이 잘못된 움직임 벡터를 가질 수 있는 문제점이 있다.
도 3 및 도 4는 본 발명과 관련된 기술 분야에서 이용되는 중간값 필터링 방식의 문제점을 설명하기 위한 참조도이다. 도 3 및 도 4에서 도면 부호 310 및 410은 원래의 움직임 벡터 필드를 나타내며, 도면 부호 320 및 420은 중간값 필터링 과정 이후의 변화된 움직임 벡터 필드를 나타낸다.
도 3을 참조하면, 물체를 구성하는 블록들(311)에 대하여 전술한 수학식 1에 따라서 중간값 필터링이 수행될 경우, 주변 블록들 중에는 물체보다 배경에 포함된 블록이 많기 때문에 물체의 움직임으로 예측되었던 움직임 벡터가 배경의 움직임 벡터로 변경될 수 있다. 즉, 배경과 물체가 다른 움직임을 갖는 경우, 도면 부호 320에 도시된 바와 같이 중간값 필터링 방식에 의하면 물체에 포함된 블록들의 움직임 벡터는 모두 주변 배경 블록들이 갖는 움직임 벡터로 필터링되어 물체에 포함된 블록들은 실제 움직임과 다른 움직임 벡터를 가질 수 있다. 또한, 도 4를 참조하면, 중간값 필터링 방식은 대부분의 블록들이 정확한 움직임 벡터를 가지고 있다는 가정에 기초한 것이기 때문에 도면 부호 410과 같이 블록 단위에 기초한 움직임 벡터들 자체의 정확도가 떨어지는 경우에는, 중간값 필터링 이후의 도면 부호 420에 도시된 바와 같이 잘못된 움직임 벡터를 수정할 수 없다.
본 발명의 일 실시예에 따른 블록 병합부(180)는 같은 물체에 있는 블록들을 병합한 병합 블록 단위로 움직임 벡터를 예측함으로써 실제 물체의 움직임에 가까운 움직임 벡터를 획득하고, 일관성있는 움직임 벡터 필드를 제공한다. 하나의 물체 안에 포함된 블록들은 실질적으로 동일한 움직임을 가져야 하지만, 블록 단위로 움직임 예측이 수행되므로 하나의 물체 안에 포함된 블록들 각각은 서로 다른 움직임 벡터를 가질 수 있다. 따라서, 블록 병합부(180)는 블록 단위의 움직임 예측에 따른 각 블록의 움직임 벡터와 각 블록의 움직임 예측 오차 및 병합 블록의 움직임 예측 오차 등을 고려하여 하나의 물체 안에 포함될 가능성이 높은 블록들을 병합한 병합 블록 단위로 움직임 벡터를 예측함으로써 균일하지 않은 움직임 벡터 필드를 균일화한다. 블록 병합 과정은 두 개 이상의 움직임 벡터를 병합된 블록의 하나의 움직임 벡터로 대체하는 과정에 해당된다. 즉 블록 병합을 통하여 두 개의 인접한 블록이 병합되고 병합된 블록에 대한 움직임 예측을 통해 새로운 움직임 벡터가 획득된다. 따라서, 블록 병합에 의한 움직임 벡터의 균일화(uniformization) 또는 정규화(regularization)가 수행된다.
도 5는 본 발명의 일 실시예에 따라서 영상 블록의 병합 과정을 설명하기 위한 참조도이다.
블록 병합부(180)는 움직임 예측 및 보상부(170)에서 결정된 각 블록의 움직임 벡터와 움직임 예측 오차값에 기반하여 같은 물체에 있을 가능성이 가장 높은 인접한 블록들을 하나의 블록으로 병합하는 과정을 반복함으로써 블록 병합을 수행한다.
도 5를 참조하면, 움직임 예측 및 보상부(170)에서 영상(500)을 블록들(B1 내지 B9)로 분할하고 블록들(B1 내지 B9)의 움직임 벡터를 결정하였다고 가정한다. 도 5에서 영상(500)은 영상 전체 프레임일 수도 있고, 영상 프레임 중 일부일 수 있다. 설명의 편의를 위하여 도 5에서는 하나의 영상이 9개의 블록들(B1 내지 B9)으로 분할되어 움직임 예측된 경우를 가정한다.
블록 병합부(180)는 모든 인접한 두 개의 블록들을 병합하여 병합 블록들(511 내지 522)을 생성한다. 그리고, 블록 병합부(180)는 소정 평가 함수에 따라서 병합 블록들(511 내지 522)의 코스트를 계산하여 가장 작은 값을 갖는 코스트를 갖는 병합 블록을 결정하고, 결정된 병합 블록의 코스트를 소정 임계값과 비교하여 결정된 병합 블록의 실제 병합 여부를 결정한다. 여기서, 코스트는 두 개의 블록이 하나의 물체 안에 포함되었을 때 작은 값을 갖도록 병합되는 블록 내에 포함된 두 개의 블록의 정보에 기초하여 설정된 평가 함수에 의하여 결정된다. 다시 말해서, 블록 병합부(180)는 인접한 두 개의 블록에 대한 정보를 매개 변수로 하여 두 개의 블록이 하나의 물체 안에 포함된 경우 작은 값을 갖도록 설정된 평가 함수에 기초하여 모든 병합 블록들(511 내지 522)의 코스트를 획득하고, 최소 코스트를 갖는 병합 블록에 포함된 두 개의 블록을 실제로 병합할 것인지를 최종 결정한다. 예를 들어, 병합 블록들(511 내지 522) 중 B1+B2 병합 블록(511)이 최소 코스트를 갖는 병합 블록이라고 가정한다. 블록 병합부(180)는 소정 평가 함수에 따른 코스트에 기초하여 B1+B2 병합 블록(511)이 최소 코스트를 갖는 병합 블록으로 결정되면, 다시 B1+B2 병합 블록(511)의 코스트와 소정 임계값을 비교하여 B1 블록과 B2 블록을 실제로 병합할 것인지를 최종 결정할 수 있다.
두 개의 블록이 하나의 물체 안에 포함된 경우 작은 값을 갖도록 설정된 평가 함수는 다양한 방식으로 설정될 수 있다. 일 예로, 평가 함수는 병합 블록의 움직임 벡터와 병합 블록의 주변 블록들의 움직임 벡터들 사이의 불균일성 정도와 병합 블록에 포함된 블록들 각각의 움직임 벡터들과 블록들 각각의 주변 블록들의 움직임 벡터들 사이의 불균일성 정도의 차이를 나타내는 움직임 벡터의 균일화 정도에 대비한 병합 블록에 의한 움직임 예측 오차의 변화량을 측정하는 함수일 수 있다. 즉, 평가 함수는 (병합 블록에 의한 움직임 예측 오차의 변화량)/(움직임 벡터의 균일화 정도)을 계산하여 각 병합 블록의 코스트를 획득할 수 있다. 이와 같이, 블록 병합부(180)가 (병합 블록에 의한 움직임 예측 오차의 변화량)/(움직임 벡터의 균일화 정도)을 계산하여 블록들이 하나의 물체에 포함되었는지 여부를 판단하는 이유는, 하나의 물체안에 포함될 가능성이 높은 블록들만을 병합하여 균일하지 않은 움직임 벡터를 균일하게 하는 동시에, 서로 다른 영역(예를 들어 배경과 물체의)에 포함된 블록들은 병합되지 않도록 하기 위한 것이다.
움직임 벡터의 균일화 정도는 병합 블록의 움직임 벡터, 병합 블록에 포함된 블록들의 움직임 벡터, 병합 블록의 주변 블록들의 움직임 벡터 및 병합 블록에 포함된 블록들의 주변 블록들의 움직임 벡터를 이용하여 결정될 수 있다. 또한, 병합 블록에 의한 움직임 예측 오차의 변화량은 병합 블록의 움직임 벡터에 의한 움직임 예측 오차와 병합 블록에 포함된 블록들 각각의 움직임 벡터에 의한 움직임 예측 오차 사이의 차이를 이용하여 결정될 수 있다. 여기서 움직임 예측 오차로써 SAD가 이용될 수 있다.
도 6은 본 발명의 일 실시예에 따라서 영상 블록의 병합 과정을 나타낸 플로우 차트이다.
도 6을 참조하면, 단계 610에서 블록 병합부(180)는 모든 인접한 두 개의 블록(또는 픽셀의 집합)인 R과 S에 대해서 두 개의 블록 R 및 S가 같은 물체에 있을 때 작은 값을 갖는, 소정의 평가 함수에 기초한 코스트값인 C(R,S)를 획득한다. 블록 병합이 수행되는 영상 영역을 Ω라고 할 때, 블록 병합부(180)는 영상(Ω)에 포함된 임의의 블록 R과, ψ(R)로 정의되는 블록 R의 인접 블록들 S를 이용하여 C(R,S)를 획득한다. 즉, 블록 병합부(180)는 영상(Ω)에 포함된 모든 조합 가능한 인접 블록들 R 및 S를 병합한 병합 블록들의 C(R,S)를 획득하고, 병합 블록들 중 최소 코스트 C(R,S)를 갖는 블록 R' 및 S'를 선택한다.
단계 620에서, 블록 병합부(180)는 최소 코스트를 갖는 것으로 판단된 병합 블록의 코스트를 소정 임계값(Th)과 비교한다. 비교 결과, 최소 코스트를 갖는 병합 블록의 코스트가 소정 임계값(Th) 미만인 경우, 단계 630에서 블록 병합부(180)는 최소 코스트를 갖는 병합 블록 내의 블록들을 병합한다. 그리고, 블록 병합부(180)는 병합된 블록을 하나의 새로운 블록으로 가정하고, 다시 영상 내의 인접한 블록들을 병합한 병합 블록들에 대하여 최소 코스트를 갖는 병합 블록을 결정하고, 결정된 병합 블록의 코스트가 소정 임계값(Th)을 비교하여 블록을 병합하는 과정을 반복한다. 이러한 블록 병합 과정은 최소 코스트를 갖는 것으로 판단된 병합 블록의 코스트가 소정 임계값(Th) 보다 작은 동안 반복된다. 블록 병합부(180)는 최소 코스트를 갖는 병합 블록의 코스트가 소정 임계값(Th)이상인 경우 더 이상 병합 블록 내에 포함된 블록들을 병합하지 않고 병합 과정을 종료한다.
도 7은 본 발명의 일 실시예에 따라서 영상 블록의 병합이 반복되는 과정을 설명하기 위한 참조도이다.
도 5 및 도 7을 참조하면, 도 5의 병합 블록들(511 내지 522) 중 B1+B2 병합 블록(511)이 최소 코스트를 갖는 병합 블록이며, B1+B2 병합 블록(511)의 코스트가 소정 임계값(Th)보다 작아서, 블록 병합부(180)가 최종적으로 블록 B1 및 B2를 병합하여 병합 블록 BT를 획득하였다고 가정한다. 블록 병합부(180)는 도 5에 도시된 병합 블록들(511 내지 522)의 코스트에 추가하여 병합된 블록 BT를 새로운 하나의 블록으로 가정하여 블록 BT와 인접한 블록들을 병합한 병합 블록들(710, 720, 730)의 코스트를 계산한다. 그리고, 블록 병합부(180)는 병합 블록들 BT+B3(710), BT+B4(720), BT+B5(730), B4+B5(513), B5+B6(514), B7+B8(515), B8+B9(516), B3+B6(519), B4+B7(520), B5+B8(521), B6+B9(522)의 코스트들 중 최소 코스트를 갖는 병합 블록을 판단하고, 최소 코스트를 갖는 병합 블록의 코스트가 소정 임계값(Th)보다 작은지를 다시 판단하여 최소 코스트를 갖는 병합 블록 내의 블록들의 병합 여부를 판단한다. 만약, BT+B3(710)이 최소 코스트를 갖는다고 가정하면, BT+B3(710)의 코스트가 소정 임계값(Th)보다 작은 경우 블록 BT 및 B3는 병합되며, BT+B3(710)의 코스트가 소정 임계값(Th) 이상인 경우 블록 BT 및 B3는 병합되지 않고 도 7과 같은 분할 상태가 최종 분할 형태로 결정되고 병합 과정은 종료된다. 즉, 전술한 바와 같이 병합 과정은 현재 처리되는 영상 내의 인접한 블록들을 병합한 병합 블록들의 코스트들 중 최소 코스트가 소정 임계값(Th)보다 작은 동안에만 반복된다.
한편, 서로 인접한 두 개의 블록 R 및 S를 병합한 병합 블록을 T, 병합 블록의 움직임 벡터를 VT, 블록들 R 및 S 각각의 움직임 벡터를 VR 및 VS, 병합 블록 T의 움직임 벡터 VT에 의한 움직임 예측 오차를 SAD(T, VT), 블록 R의 움직임 벡터 VR에 의한 움직임 예측 오차를 SAD(R, VR), 블록 S의 움직임 벡터 VS에 의한 움직임 예측 오차를 SAD(S, Vs)라고 할 때, 코스트 C(R, S)는 다음의 수학식 2에 따라서 획득될 수 있다.
Figure 112013002460998-pat00005
수학식 2에서 함수 φ(X)는 다음의 수학식 3에 의하여 정의되는 함수이다.
Figure 112013002460998-pat00006
수학식 3에서 Π는 블록 X와 인접한 주변 블록들의 집합, Q는 Π에 포함된 하나의 주변 블록을 나타낸다. 즉, φ(X)는 블록 X의 움직임 벡터 VX와 주변 블록들 Q의 움직임 벡터 VQ 사이의 차이값의 합으로, 블록 X의 움직임 벡터와 블록 X의 주변 블록의 움직임 벡터의 불균일한 정도를 나타낸다.
수학식 2에서, 분모 부분은 병합 블록의 움직임 벡터와 병합 블록의 주변 블록들의 움직임 벡터들 사이의 불균일성 정도와 병합 블록에 포함된 블록들 각각의 움직임 벡터들과 블록들 각각의 주변 블록들의 움직임 벡터들 사이의 불균일성 정도의 차이로서, 병합에 의한 움직임 벡터의 균일화 정도를 나타낸다. 즉, 분모 부분은 병합에 의하여 두 개의 움직임 벡터가 병합 블록의 하나의 움직임 벡터로 대체됨으로써 움직임 벡터가 균일화되는 정도를 정량화한 값이다. 병합 과정에 의하여 원래 두 개의 움직임 벡터가 병합 블록의 하나의 움직임 벡터로 대체되는데, 병합에 의하여 움직임 벡터의 균일성이 크게 증가하지 않는 경우에는 수학식 2의 분모는 상대적으로 작은 값을 갖게 되어 C(R,S)의 값은 증가된다. 따라서, 병합에 의하여 움직임 벡터의 균일성이 크게 증가하지 않는 경우 병합을 수행하지 않기 위하여 수학식 2의 분모 부분과 같이 병합에 의한 움직임 벡터의 균일화 정도를 정량화하여 측정한다.
또한 수학식 2에서, 분자 부분은 병합에 의한 움직임 예측 오차의 변화량을 나타낸다. 서로 다른 물체에 포함된 블록들이 병합되어 하나의 움직임 벡터를 갖게 되는 경우 병합 블록의 SAD가 크게 증가하므로, 수학식 2의 분자 부분과 같이 병합에 의하여 새롭게 생성된 병합 블록에 의한 움직임 예측 오차와 병합 이전의 두 개의 블록 각각에 의한 움직임 예측 오차의 합의 차이를 계산함으로써 병합되는 블록들이 하나의 물체에 존재하는지 여부를 판단한다.
또한, 수학식 2를 참조하면, C(R,S)가 작다는 것은 블록 R 및 S가 병합될 경우 움직임 예측 오차의 큰 증가없이 움직임 벡터 필드가 보다 균일하게 된다는 것을 의미하므로, C(R,S)가 작은 경우에는 병합이 이루어지도록 해야한다. 반대로, C(R,S)가 크다는 것은 움직임 벡터 필드가 크게 균일해지지 않지만 움직임 예측 오차는 크게 증가된다는 것을 뜻하므로 이러한 경우에는 인접한 블록들 사이의 병합을 수행하지 않는 것이 바람직하다. 따라서, 블록 병합부(180)는 수학식 2와 같은 소정 평가 함수에 기초하여 (병합 블록에 의한 움직임 예측 오차의 변화량)/(움직임 벡터의 균일화 정도)를 나타내는 코스트 C(R,S)를 측정하여 두 개의 인접한 블록 R 및 S가 하나의 물체 내에 존재할 가능성 및 블록 R과 S의 병합에 의한 움직임 벡터의 균일화 정도의 효율성을 측정하여 인접 블록의 병합 여부를 판단한다.
한편 수학식 2에서, SAD(X, V)는 움직임 벡터 V를 갖는 블록 X의 움직임 예측 오차로써, 다음의 수학식 4와 같이 획득될 수 있다.
Figure 112013002460998-pat00007
수학식 4에서, 블록 X의 크기는 N*M(N,M은 정수)이며 블록 X의 첫 번째 픽셀 위치는(x0,y0), 움직임 벡터 V는 (Vx, Vy)의 성분을 가지며, ft -1은 참조 프레임, ft+1은 현재 프레임을 나타낸다.
도 8은 본 발명의 일 실시예에 따라서 블록 병합 과정 및 움직임 벡터의 정규화 과정을 나타낸 도면이다. 도 8은 제 1 영상(810)으로부터 제 6 영상(860)의 순서로 병합 과정이 수행되는 경우를 나타낸 것으로, 제 1 영상 내지 제 6 영상들(810,820,830,840,850,860)은 하나의 영상에 포함된 블록의 병합 과정을 순차적으로 나타낸 것이며 서로 다른 영상은 아니다.
도 8을 참조하면, 블록 병합부(180)는 제 1 영상(810) 내의 모든 인접한 블록들을 병합한 병합 블록들에 대해서 전술한 수학식 2와 같이 C(R,S)를 계산하고 최소 코스트를 갖는 병합 블록의 코스트와 소정 임계값(Th)를 비교하여 병합 여부를 판단한다. 최초 인접 블록들(811 및 812)을 포함하는 병합 블록이 최소 코스트를 갖으며 소정 임계값(Th)보다 작다고 가정한다. 이러한 경우 제 2 영상(820)에 도시된 바와 같이 최초 인접 블록들(811 및 812)은 하나의 병합 블록(821)으로 최종적으로 병합된다. 전술한 도 5 내지 도 7에서 설명된 바와 같이 이러한 병합 과정은 병합 블록들의 최소 코스트가 소정 임계값(Th)보다 작은 동안에 반복된다. 제 3 영상(830)을 참조하면, 배경에 해당하는 부분은 이러한 병합 과정을 통해 하나의 움직임 벡터를 갖는 하나의 블록으로 병합된다. 또한, 음영으로 표시된 객체 부분에 포함된 인접 블록들 역시 병합 과정을 통해 하나의 병합 블록으로 병합될 수 있다. 제 3 영상(830)에서 블록들(831, 832)를 포함하는 병합 블록이 최소 코스트를 갖으며 소정 임계값(Th)보다 작다고 가정한다. 이러한 경우 제 4 영상(840)에 도시된 바와 같이 블록들(831, 832)는 하나의 병합 블록(841)로 최종적으로 병합된다. 유사하게, 제 4 영상(840)에서 블록들(842, 843)를 포함하는 병합 블록이 최소 코스트를 갖으며 소정 임계값(Th)보다 작다고 가정하면, 제 5 영상(850)에 도시된 바와 같이 블록들(842, 843)는 하나의 병합 블록(851)로 최종적으로 병합된다. 제 5 영상(850)의 하나의 물체에 포함된 블록들(851,852,853)에 대해서 유사한 병합 과정이 수행되어, 제 6 영상(860)의 병합 블록(861)과 같이 물체의 형태와 유사한 하나의 병합 블록이 획득될 수 있다. 이와 같이, 본 발명의 일 실시예에 따른 블록의 병합 과정 및 움직임 벡터의 정규화 과정을 통해서 같은 물체 내에서 서로 다른 잘못된 움직임 벡터를 갖는 블록들은 하나의 병합 블록 내로 병합되어 하나의 움직임 벡터를 갖게 됨으로써 실제 움직임에 가까운 움직임 벡터를 획득할 수 있다.
도 9은 본 발명의 일 실시예에 따른 영상 부호화 방법을 나타낸 플로우 차트이다.
도 1 및 도 9를 참조하면, 단계 910에서 움직임 예측 및 보상부(170)는 영상을 구성하는 블록들의 움직임 벡터들을 획득한다. 블록은 매크로 블록, 매크로 블록을 분할한 파티션, 또는 HEVC에서 이용되는 부호화 단위 중 하나를 나타낼 수 있다.
단계 920 및 단계 930에서 움직임 예측 및 보상부(170)는 영상을 구성하는 블록들 중 인접한 두 개의 블록들을 병합한 병합 블록에 대한 움직임 예측을 수행하여 병합 블록의 움직임 벡터도 획득한다. 전술한 바와 같이 병합 블록들은 영상에 포함된 모든 조합 가능한 인접한 두 개의 블록들을 병합하여 획득될 수 있다.
단계 940에서, 블록 병합부(180)는 병합 블록의 움직임 벡터, 병합 블록에 포함된 블록들의 움직임 벡터, 병합 블록의 주변 블록들의 움직임 벡터 및 병합 블록에 포함된 블록들의 주변 블록들의 움직임 벡터에 기초하여, 병합 블록에 대하여 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량을 획득한다.
전술한 바와 같이, 블록 병합부(180)는 수학식 2와 같은 소정 평가 함수와 같이 (병합 블록에 의한 움직임 예측 오차의 변화량)/(움직임 벡터의 균일화 정도)를 나타내는 코스트를 측정하여 두 개의 인접한 블록들이 하나의 물체 내에 존재할 가능성 및 인접 블록들의 병합에 의한 움직임 벡터의 균일화 정도의 효율성을 측정하여 인접 블록의 병합 여부를 판단한다.
단계 950에서, 블록 병합부(180)는 획득된 변화량, 즉 수학식 2와 같은 코스트에 기초하여, 병합 블록들 중 변화량이 가장 작은 병합 블록을 결정하고 결정된 병합 블록에 포함된 블록들의 병합 여부를 결정한다. 전술한 바와 같이, 블록 병합부(180)는 획득된 변화량과 소정 임계값을 비교하여, 획득된 변화량이 소정 임계값보다 작은 경우 결정된 병합 블록에 포함된 블록들을 병합하고, 획득된 변화량이 소정 임계값 이상인 경우 병합 블록에 포함된 블록들을 병합하지 않고 원 블록을 유지하도록 한다.
도 10은 본 발명의 일 실시예에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 10을 참조하면, 영상 복호화 장치(1000)는 엔트로피 복호화부(1010), 역양자화 및 역변화부(1020), 복원부(1030), 움직임 보상부(1040) 및 저장부(1050)를 포함한다.
엔트로피 복호화부(1010)는 수신된 비트스트림을 엔트로피 복호화하고, 비트스트림으로부터 복호화되는 현재 블록의 예측 모드 정보 및 영상 데이터를 추출한다. 특히, 본 발명의 일 실시예에 따른 엔트로피 복호화부(1010) 수신된 비트스트림으로부터 영상을 구성하는 블록들 중 적어도 두 개의 서로 인접한 블록들을 병합한 병합 블록 및 병합 블록의 움직임 벡터에 대한 정보를 획득하여 출력한다.
역양자화 및 역변환부(1020)는 엔트로피 복호화된 레지듀얼 데이터를 역양자화 및 역변환하여 출력한다. 움직임 보상부(1040)는 획득된 병합 블록의 움직임 벡터를 이용하여 병합 블록에 대한 움직임 보상을 수행하여 병합 블록의 예측값을 획득한다. 병합 블록 이외의 블록들은 일반적인 블록 예측 방식에 따라 예측될 수 있다.
복원부(1030)는 병합 블록의 레지듀얼 데이터와 예측값을 가산하여 영상을 복원한다. 저장부(1050)는 다음 영상의 복호화를 위한 참조 프레임으로써 이전에 복호화된 영상을 저장한다.
도 11은 본 발명의 일 실시예에 따른 영상 복호화 방법을 나타낸 플로우 차트이다.
도 10 및 도 11을 참조하면, 단계 1110에서 엔트로피 복호화부(1010)는 수신된 비트스트림으로부터 영상을 구성하는 블록들 중 적어도 두 개의 서로 인접한 블록들을 병합한 병합 블록 및 병합 블록의 움직임 벡터에 대한 정보를 획득한다. 전술한 바와 같이, 병합 블록은 부호화 과정에서 적어도 두 개의 서로 인접한 블록들의 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량을 소정 임계값과의 비교한 결과에 따라서 인접한 블록들을 병합한 블록이다.
단계 1120에서, 움직임 보상부(1030)는 병합 블록의 움직임 벡터를 이용하여 병합 블록에 대한 움직임 보상을 수행하여 병합 블록의 예측값을 획득한다. 병합 블록의 예측값이 생성되면 역양자화 및 역변환 과정을 통해 획득된 병합 블록의 레지듀얼 데이터와 예측값을 가산하여 병합 블록이 복원된다.
도 12는 본 발명의 다른 실시예에 따른 영상 부호화 방법을 나타낸 플로우 차트이다.
전술한 바와 같이, 종래 BMA에 기초한 움직임 예측 방식은 영상에 포함된 객체를 고려하지 않고 소정 크기의 블록 단위로 움직임 예측을 수행하기 때문에, 움직임 예측의 정확도와 정밀도가 감소된다. 따라서, 본 발명의 다른 실시예에 따른 영상 부호화 방법은 움직임 예측 이전에 현재 프레임에 포함된 픽셀들을 그 픽셀값을 기준으로 객체들로 분할하고 분할된 객체 단위를 기준으로 움직임 예측 및 보상을 수행한다. 즉, 본 발명의 다른 실시예에 따른 영상 부호화 방법은 유사한 픽셀값을 갖는 인접 픽셀들을 하나의 객체로 그룹화하고 유사한 픽셀값을 갖는 객체 단위로 움직임 예측을 수행한다.
구체적으로 도 12를 참조하면, 단계 1210에서 움직임 예측 이전에 현재 프레임의 포함된 픽셀들의 픽셀값에 기초하여 유사한 픽셀값을 갖는 인접 픽셀들은 하나의 픽셀 집합으로 그룹화된다. 즉, 영상은 유사한 픽셀값을 갖는 인접 픽셀들을 그룹화한 객체들로 분할된다. 본 발명의 다른 실시예에 있어서, 객체는 유사한 픽셀값을 갖는 픽셀들을 집합을 의미한다. 하나의 물체 내에 포함된 픽셀들은 서로 다른 픽셀값을 가질 수 있으므로 하나의 물체 역시 복수 개의 객체로 분할될 수 있다. 예를 들어, 수박과 같이 녹색과 검정색의 패턴을 갖는 물체의 경우를 가정한다. 이러한 경우 본 발명의 다른 실시예에 따른 영상 부호화 방법은 검정색과 유사한 픽셀값을 갖는 인접 픽셀들을 그룹화하여 하나의 객체를 형성하고, 녹색과 유사한 픽셀값을 갖는 인접 픽셀들을 그룹화하여 하나의 객체를 형성한다. 즉, 본 발명의 다른 실시예에 따르면 하나의 물체라도 픽셀값을 기준으로 복수 개의 객체들로 분류될 수 있다.
단계 1220에서, 픽셀값을 기준으로 영상이 객체들로 분할되면 객체 단위로 움직임 예측 및 보상이 수행된다. 본 발명의 다른 실시예에 따르면 유사한 픽셀값을 갖는 인접 픽셀들을 그룹화한 객체 단위로 움직임 벡터가 획득되므로 움직임 벡터의 정확도가 증가될 수 있다.
도 13은 본 발명의 다른 실시예에 따른 영상 복호화 방법을 나타낸 플로우 차트이다.
도 13을 참조하면, 단계 1310에서 비트스트림으로부터 유사한 픽셀값을 갖는 인접 픽셀들을 그룹화한 객체 단위에 대한 분할 정보 및 이러한 객체 단위의 움직임 벡터 정보가 획득된다. 단계 1320에서, 획득된 움직임 벡터를 이용하여 객체 단위로 움직임 보상을 수행하여 유사한 픽셀값을 갖는 인접 픽셀들을 그룹화한 객체의 예측값을 생성한다. 본 발명의 다른 실시예에 따른 영상 부호화, 복호화 방법은 블록 대신에 유사한 픽셀값을 갖는 인접 픽셀들을 그룹화한 객체를 이용한다는 차이점 이외에 종래 블록 기반 영상 부호화, 복호화 방식과 유사하게 수행될 수 있으므로 구체적인 설명은 생략한다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는, ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장 장치 등이 포함된다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (14)

  1. 영상 부호화 방법에 있어서,
    영상을 구성하는 블록들의 움직임 벡터들을 획득하는 단계;
    서로 인접한 두 개의 블록들을 병합하여 병합 블록들을 획득하는 단계;
    각 병합 블록의 움직임 벡터를 획득하는 단계;
    상기 병합 블록의 움직임 벡터, 상기 병합 블록에 포함된 상기 블록들의 움직임 벡터 및 상기 병합 블록에 포함된 블록들의 주변 블록들의 움직임 벡터에 기초하여, 상기 병합 블록에 대하여 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량을 획득하는 단계; 및
    상기 획득된 변화량에 기초하여, 상기 병합 블록들 중 상기 변화량이 가장 작은 병합 블록을 결정하고 상기 결정된 병합 블록에 포함된 블록들의 병합 여부를 결정하는 단계를 포함하는 것을 특징으로 하는 영상 부호화 방법.
  2. 제 1항에 있어서,
    상기 변화량을 획득하는 단계는
    상기 병합 블록에 포함된 상기 블록들의 움직임 벡터 및 상기 병합 블록에 포함된 블록들의 주변 블록들의 움직임 벡터를 이용하여, 상기 병합 블록의 움직임 벡터와 상기 병합 블록의 주변 블록들의 움직임 벡터들 사이의 불균일성 정도와 상기 병합 블록에 포함된 상기 블록들 각각의 움직임 벡터들과 상기 블록들 각각의 주변 블록들의 움직임 벡터들 사이의 불균일성 정도의 차이를 나타내는 상기 움직임 벡터의 균일화 정도를 획득하는 단계;
    상기 병합 블록의 움직임 벡터에 의한 움직임 예측 오차와 상기 병합 블록에 포함된 상기 블록들 각각의 움직임 벡터에 의한 움직임 예측 오차 사이의 차이를 나타내는 상기 움직임 예측 오차의 변화량을 획득하는 단계; 및
    상기 획득된 움직임 예측 오차의 변화량을 상기 움직임 벡터의 균일화 정도로 나누어, 상기 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량을 획득하는 단계를 포함하는 것을 특징으로 하는 영상 부호화 방법.
  3. 제 2항에 있어서,
    상기 병합 블록을 T, 상기 병합 블록에 포함된 두 개의 블록을 각각 R 및 S, 상기 병합 블록의 움직임 벡터를 VT, 상기 블록들 R 및 S 각각의 움직임 벡터를 VR 및 VS, 상기 병합 블록 T의 움직임 벡터 VT에 의한 움직임 예측 오차를 SAD(T, VT), 상기 블록 R의 움직임 벡터 VR에 의한 움직임 예측 오차를 SAD(R, VR), 상기 블록 S의 움직임 벡터 VS에 의한 움직임 예측 오차를 SAD(S, Vs), 함수 φ(X)는 다음의 수학식;
    Figure 112013002460998-pat00008
    (Π는 블록 X와 인접한 주변 블록들의 집합, Q는 Π에 포함된 하나의 주변 블록)에 의하여 정의되는 블록 X의 움직임 벡터와 상기 블록 X의 주변 블록의 움직임 벡터의 불균일한 정도를 획득하는 함수, C(R, S)는 상기 블록들 R 및 S의 병합에 의한 병합 블록 T의 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량이라고 할 때,
    상기 C(R, S)는 다음의 수학식;
    Figure 112013002460998-pat00009

    에 따라 획득되는 것을 특징으로 하는 영상 부호화 방법.
  4. 제 1항에 있어서,
    상기 병합 여부를 결정하는 단계는
    상기 획득된 변화량과 소정 임계값을 비교하여, 상기 획득된 변화량이 상기 소정 임계값보다 작은 경우 상기 결정된 병합 블록에 포함된 블록들을 병합하고, 상기 획득된 변화량이 상기 소정 임계값 이상인 경우 상기 결정된 병합 블록에 포함된 블록들을 병합하지 않고 원 블록을 유지하는 것을 특징으로 하는 영상 부호화 방법.
  5. 제 1항에 있어서,
    상기 획득된 병합 블록의 변화량이 소정 임계값보다 작은 동안 상기 단계들을 반복하는 것을 특징으로 하는 영상 부호화 방법.
  6. 제 1항에 있어서,
    상기 영상을 부호화한 비트스트림에 상기 블록들의 병합 정보 및 상기 병합 블록의 움직임 벡터 정보를 부호화하는 단계를 더 포함하는 것을 특징으로 하는 영상 부호화 방법.
  7. 영상 부호화 장치에 있어서,
    영상을 구성하는 블록들의 움직임 벡터들 및 서로 인접한 두 개의 블록들을 병합하여 병합 블록들 각각의 움직임 벡터를 획득하는 움직임 예측 및 보상부; 및
    상기 병합 블록의 움직임 벡터, 상기 병합 블록에 포함된 상기 블록들의 움직임 벡터 및 상기 병합 블록에 포함된 블록들의 주변 블록들의 움직임 벡터에 기초하여, 상기 병합 블록에 대하여 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량을 획득하고, 상기 획득된 변화량에 기초하여, 상기 병합 블록들 중 상기 변화량이 가장 작은 병합 블록을 결정하고 상기 결정된 병합 블록에 포함된 블록들의 병합 여부를 결정하는 블록 병합부를 포함하는 것을 특징으로 하는 영상 부호화 장치.
  8. 영상의 복호화 방법에 있어서,
    수신된 비트스트림으로부터 상기 영상을 구성하는 블록들 중 적어도 두 개의 서로 인접한 블록들을 병합한 병합 블록 및 상기 병합 블록의 움직임 벡터에 대한 정보를 획득하는 단계; 및
    상기 움직임 벡터를 이용하여 상기 병합 블록에 대한 움직임 보상을 수행하여 상기 병합 블록의 예측값을 획득하는 단계를 포함하며,
    상기 병합 블록은
    상기 적어도 두 개의 서로 인접한 블록들의 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량과 소정 임계값과의 비교 결과에 따라서 상기 인접한 블록들을 병합하여 결정된 것을 특징으로 하는 영상 복호화 방법.
  9. 제 8항에 있어서,
    상기 변화량은
    상기 병합 블록의 움직임 벡터에 의한 움직임 예측 오차와 상기 병합 블록에 포함된 상기 블록들 각각의 움직임 벡터에 의한 움직임 예측 오차 사이의 차이를 나타내는 상기 움직임 예측 오차의 변화량을, 상기 병합 블록의 움직임 벡터와 상기 병합 블록의 주변 블록들의 움직임 벡터들 사이의 불균일성 정도와 상기 병합 블록에 포함된 상기 블록들 각각의 움직임 벡터들과 상기 블록들 각각의 주변 블록들의 움직임 벡터들 사이의 불균일성 정도의 차이를 나타내는 상기 움직임 벡터의 균일화 정도로 나누어 획득되는 것을 특징으로 하는 영상 복호화 방법.
  10. 제 9항에 있어서,
    상기 병합 블록을 T, 상기 병합 블록에 포함된 두 개의 블록을 각각 R 및 S, 상기 병합 블록의 움직임 벡터를 VT, 상기 블록들 R 및 S 각각의 움직임 벡터를 VR 및 VS, 상기 병합 블록 T의 움직임 벡터 VT에 의한 움직임 예측 오차를 SAD(T, VT), 상기 블록 R의 움직임 벡터 VR에 의한 움직임 예측 오차를 SAD(R, VR), 상기 블록 S의 움직임 벡터 VS에 의한 움직임 예측 오차를 SAD(S, Vs), 함수 φ(X)는 다음의 수학식;
    Figure 112013002460998-pat00010
    (Π는 블록 X와 인접한 주변 블록들의 집합, Q는 Π에 포함된 하나의 주변 블록)에 의하여 정의되는 블록 X의 움직임 벡터와 상기 블록 X의 주변 블록의 움직임 벡터의 불균일한 정도를 획득하는 함수, C(R, S)는 상기 블록들 R 및 S의 병합에 의한 병합 블록 T의 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량이라고 할 때,
    상기 C(R, S)는 다음의 수학식;
    Figure 112013002460998-pat00011

    에 따라 획득되는 것을 특징으로 하는 영상 복호화 방법.
  11. 제 8항에 있어서,
    상기 병합 블록은
    상기 획득된 변화량과 상기 소정 임계값을 비교하여, 상기 획득된 변화량이 상기 소정 임계값보다 작은 경우 상기 병합 블록에 포함된 블록들을 병합하여 획득되는 것을 특징으로 하는 영상 복호화 방법.
  12. 영상의 복호화 장치에 있어서,
    수신된 비트스트림으로부터 상기 영상을 구성하는 블록들 중 적어도 두 개의 서로 인접한 블록들을 병합한 병합 블록 및 상기 병합 블록의 움직임 벡터에 대한 정보를 획득하는 엔트로피 복호화부; 및
    상기 움직임 벡터를 이용하여 상기 병합 블록에 대한 움직임 보상을 수행하여 상기 병합 블록의 예측값을 획득하는 움직임 보상부를 포함하며,
    상기 병합 블록은
    상기 적어도 두 개의 서로 인접한 블록들의 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량과 소정 임계값과의 비교 결과에 따라서 상기 인접한 블록들을 병합하여 결정된 것을 특징으로 하는 영상 복호화 장치.
  13. 제 1항 내지 제 6항 중 어느 한 항의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
  14. 제 8항 내지 제 11항 중 어느 한 항의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR20130002665A 2012-01-09 2013-01-09 움직임 벡터 정규화에 기초한 영상의 부호화 방법 및 장치, 영상의 복호화 방법 및 장치 KR101449435B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201261584386P 2012-01-09 2012-01-09
US61/584,386 2012-01-09

Publications (2)

Publication Number Publication Date
KR20130081676A KR20130081676A (ko) 2013-07-17
KR101449435B1 true KR101449435B1 (ko) 2014-10-17

Family

ID=48781688

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130002665A KR101449435B1 (ko) 2012-01-09 2013-01-09 움직임 벡터 정규화에 기초한 영상의 부호화 방법 및 장치, 영상의 복호화 방법 및 장치

Country Status (3)

Country Link
US (1) US9571832B2 (ko)
KR (1) KR101449435B1 (ko)
WO (1) WO2013105791A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9300977B2 (en) * 2013-10-02 2016-03-29 Amlogic Co., Ltd. Methods for encoding motion vectors
JP6569677B2 (ja) * 2014-08-28 2019-09-04 日本電気株式会社 ブロックサイズ決定方法及びプログラム
KR101660031B1 (ko) * 2015-06-24 2016-09-26 주식회사 에스원 고속 영상 부호화 방법 및 그 장치
US10687073B2 (en) 2015-10-22 2020-06-16 Lg Electronics Inc. Method for encoding/decoding image and device therefor
US10630992B2 (en) 2016-01-08 2020-04-21 Samsung Electronics Co., Ltd. Method, application processor, and mobile terminal for processing reference image
WO2018008678A1 (ja) * 2016-07-08 2018-01-11 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 復号装置、符号化装置、復号方法及び符号化方法
CN109997363B (zh) 2016-11-28 2023-12-05 英迪股份有限公司 图像编码/解码方法和装置以及存储有比特流的记录介质
US10497173B2 (en) * 2018-05-07 2019-12-03 Intel Corporation Apparatus and method for hierarchical adaptive tessellation
EP3648059B1 (en) * 2018-10-29 2021-02-24 Axis AB Video processing device and method for determining motion metadata for an encoded video
US10997731B2 (en) * 2019-06-14 2021-05-04 Rockwell Collins, Inc. Motion vector vision system integrity monitor
US11140416B1 (en) * 2020-03-26 2021-10-05 Tencent America LLC Method and apparatus for temporal smoothing for video

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100803611B1 (ko) 2006-11-28 2008-02-15 삼성전자주식회사 영상의 부호화, 복호화 방법 및 장치

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8107535B2 (en) * 2003-06-10 2012-01-31 Rensselaer Polytechnic Institute (Rpi) Method and apparatus for scalable motion vector coding
KR100991344B1 (ko) * 2003-11-29 2010-11-01 엘지전자 주식회사 영상을 디코딩하는 방법
KR100678949B1 (ko) 2004-07-15 2007-02-06 삼성전자주식회사 비디오 코딩 및 디코딩 방법, 비디오 인코더 및 디코더
KR101039204B1 (ko) * 2006-06-08 2011-06-03 경희대학교 산학협력단 다시점 비디오 코딩에서의 움직임 벡터 예측 방법 및 이를이용한 다시점 영상의 부호화/복호화 방법 및 장치
JP4178480B2 (ja) 2006-06-14 2008-11-12 ソニー株式会社 画像処理装置、画像処理方法、撮像装置および撮像方法
US8488007B2 (en) 2010-01-19 2013-07-16 Sony Corporation Method to estimate segmented motion

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100803611B1 (ko) 2006-11-28 2008-02-15 삼성전자주식회사 영상의 부호화, 복호화 방법 및 장치

Also Published As

Publication number Publication date
US20140321548A1 (en) 2014-10-30
KR20130081676A (ko) 2013-07-17
WO2013105791A1 (ko) 2013-07-18
US9571832B2 (en) 2017-02-14

Similar Documents

Publication Publication Date Title
KR101449435B1 (ko) 움직임 벡터 정규화에 기초한 영상의 부호화 방법 및 장치, 영상의 복호화 방법 및 장치
KR102570488B1 (ko) 다중 참조 예측을 위한 움직임 벡터 개선
AU2015213340B2 (en) Video decoder, video encoder, video decoding method, and video encoding method
JP5277257B2 (ja) 動画像復号化方法および動画像符号化方法
US11050903B2 (en) Video encoding and decoding
US8891621B2 (en) Image coding apparatus and image coding method
CN108028942A (zh) 编码方法、解码方法及其装置
US11134242B2 (en) Adaptive prediction of coefficients of a video block
US10349071B2 (en) Motion vector searching apparatus, motion vector searching method, and storage medium storing motion vector searching program
KR20090117011A (ko) 복수의 참조 픽처에 기초한 영상 부호화, 복호화 방법 및장치
Chen et al. Rough mode cost–based fast intra coding for high-efficiency video coding
JP5706291B2 (ja) 映像符号化方法,映像復号方法,映像符号化装置,映像復号装置およびそれらのプログラム
KR20110134404A (ko) 화상 데이터의 블록을 예측하는 방법, 이 방법을 실행하는 복호 장치 및 부호화 장치
JP2009194474A (ja) 動画像符号化装置
JP2010273110A (ja) 画像符号化装置および画像符号化方法
JP5108828B2 (ja) 画像符号化装置
GB2486692A (en) Video encoding using multiple inverse quantizations of the same reference image with different quantization offsets
JP6700877B2 (ja) 画像復号装置、画像復号プログラム及びチップ
JP2007274366A (ja) 動画像符号化装置、動きベクトル検出方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170927

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180921

Year of fee payment: 5