KR101540138B1 - 적응적 조사영역을 갖는 모션추정 장치 및 방법 - Google Patents

적응적 조사영역을 갖는 모션추정 장치 및 방법 Download PDF

Info

Publication number
KR101540138B1
KR101540138B1 KR1020107016142A KR20107016142A KR101540138B1 KR 101540138 B1 KR101540138 B1 KR 101540138B1 KR 1020107016142 A KR1020107016142 A KR 1020107016142A KR 20107016142 A KR20107016142 A KR 20107016142A KR 101540138 B1 KR101540138 B1 KR 101540138B1
Authority
KR
South Korea
Prior art keywords
block
frame
motion vector
motion
error
Prior art date
Application number
KR1020107016142A
Other languages
English (en)
Other versions
KR20100103838A (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 KR20100103838A publication Critical patent/KR20100103838A/ko
Application granted granted Critical
Publication of KR101540138B1 publication Critical patent/KR101540138B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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
    • H04N19/194Methods 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 involving only two passes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/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/57Motion estimation characterised by a search window with variable size or shape

Abstract

본 발명은 동작을 추정하고 보정하는 방법과 장치에 관한 것으로, 첫번째 프레임의 화소블록의 움직임을 추정하는 모션추정법을 제공하는데, 이 방법은 화소블록에 대응하면서 제1 에러값을 갖는 제1 매칭블록을 확인하기 위해 두번째 프레임의 제1 영역을 조사하는 단계; 화소블록에 대응하면서 제2 에러값을 갖는 제2 매칭블록을 확인하기 위해 두번째 프레임의 제2 영역을 조사하는 단계; 및 제1 및 제2 에러값을 기반으로 제1 및 제2 모션벡터들 사이의 최종 모션벡터를 선택하는 단계;를 포함하고, 제1 에러값은 화소블록과 제1 매칭블록 사이의 최소의 에러 판단기준이고, 제2 에러값은 화소블록과 제2 매칭블록 사이의 최소의 에러 판단기준이다.

Description

적응적 조사영역을 갖는 모션추정 장치 및 방법{MOTION ESTIMATION WITH AN ADAPTIVE SEARCH RANGE}
본 발명은 비디오/영상 코딩분야에 관한 것으로, 구체적으로는 동작을 추정하고 보정하는 방법과 장치에 관한 것이다.
디지털 통신망, 디지털 저장매체, 대규모 집적장치, 디지털 오디오/비디오 신호처리 분야에서의 기술적 진보는 아주 다양한 애플리케이션에서 경제적인 디지털 비디오의 송신과 저장 쪽으로 진행되고 있다. 디지털 비디오신호의 저장과 송신은 많은 애플리케이션에서 아주 중요하므로, 디지털 비디오 코딩기술도 대중화되고 있다.
비주얼 정보는 거의 모든 실생활에서 중요한 역할을 하고있다. 영상과 비디오에 관련된 정보량이 아주 막대하여, 비디오코딩은 중요한 기술일 수 밖에 없다. 모션 추정과 보정은 각종 비디오코딩 방식에서 핵심 역할을 담당한다. 압축, 노이즈제거, 주사변환은 물론, 프레임/플드 속도변환을 위한 영상보간과 같은 다양한 애플리케이션에 모션추정이 이용된다.
그러나, 휴대폰 통신이나 인터넷이 무서운 속도로 개발되고 있어서, 현재의 모션추정과 보정체계로는 인터넷이나 휴대폰을 통한 비디오 스트리밍과 같은 급속도로 증가하는 요구사항을 충족할 수 없다.
본 발명은 종래의 이와 같은 문제점을 감안하여 안출된 것으로, 비디오코딩과 압축에 있어 좀더 효율적인 모션 추정과 보정 시스템을 제공하는 것을 목적으로 한다.
이런 목적 달성을 위해, 본 발명은 첫번째 프레임의 화소블록의 움직임을 추정하는 모션추정법을 제공하는데, 이 방법은 화소블록에 대응하면서 제1 에러값을 갖는 제1 매칭블록을 확인하기 위해 두번째 프레임의 제1 영역을 조사하는 단계; 화소블록에 대응하면서 제2 에러값을 갖는 제2 매칭블록을 확인하기 위해 두번째 프레임의 제2 영역을 조사하는 단계; 및 제1 및 제2 에러값을 기반으로 제1 및 제2 모션벡터들 사이의 최종 모션벡터를 선택하는 단계;를 포함하고, 제1 에러값은 화소블록과 제1 매칭블록 사이의 최소의 에러 판단기준이고, 제2 에러값은 화소블록과 제2 매칭블록 사이의 최소의 에러 판단기준이다.
이하, 첨부 도면들을 참조하여 본 발명에 대해 자세히 설명한다.
도 1은 본 발명에 따른 비디오 코딩장치의 블록도;
도 2는 본 발명에 따른 비디오 프레임;
도 3은 본 발명에 따른 동영상 비디오;
도 4는 본 발명에 따른 다른 비디오 프레임;
도 5는 본 발명에 따른 모션추정법의 일례;
도 6은 본 발명에 따른 다른 모션추정법의 일례;
도 7은 본 발명에 따른 모션추정장치의 블록도;
도 8은 본 발명에 따른 다른 모션추정장치의 블록도;
도 9a는 본 발명에 따른 또다른 모션추정장치의 블록도;
도 9b는 본 발명에 따른 격자구조도;
도 10은 본 발명에 따른 모션벡터 히스토그램;
도 11은 본 발명에 따른 모션추정장치의 블록도.
도 1은 본 발명에 따른 고성능 비디오 코딩시스템(100)의 블록도이다. 이하 후술하는 각종 기능장치들은 실제로는 개별적으로 작동되기도 하고 프로세서나 ASIC와 같은 하드웨어나 소프트웨어와 같이 동작하기도 한다.
도 1의 시스템(100)의 인코더(104)는 카메라(102)로부터 비디오신호(I)를 받고, 이 신호(I)를 인코딩하여 비트스트림(B)을 구한다. 비트스트림(B)은 메모리에 저장되거나 통신망을 통해 전송된다. 도 1의 시스템의 디코더(106)는 비트스트림(B)을 받아 비디오신호(I)로 재구성한다. 모니터나 스크린과 같은 디스플레이(108)는 디코더(106)에 연결되어 재구성된 비디오신호(I)를 디스플레이한다. 이상 설명한대로, 모션추정이 비디오코딩에 핵심적인 역할을 하므로, 시스템(100)에 MEU(110; motion estimation unit)가 있다. 경우에 따라서는, MEU(110)와 같은 모션추정기가 디코더(106)의 일부분이거나, 디코더(106) 안에 있는 MCIIU(111; motion compensation image interpolation unit)의 일부분일 수 있다. MCIIU(111)는 비디오의 미싱프레임(missing frame)을 복구하기 위한 영상보간 동작을 실행한다. 모션추정기에 대해서는 도 7에서 자세히 설명한다.
자연적인 비주얼신(visual scene)은 시공간적으로 연속적인 것이다. 비주얼신은 실제 장면을 (영상평면의 사각형 그리드에) 시공간적으로 샘플링하여 디지털 형태로 나타나는 것이 보통이다. 즉 스틸영상(프레임) 여러장이 일정한 시간간격으로 샘플링되는 것이다. 도 1의 카메라(102)의 신호(I)는 비주얼신을 하나 이상의 스틸영상(프레임)(I1,I2,...,In-1,In)으로 나타낸 것이다.
도 2a는 카메라(102)로 캡처할 수 있는 자연적인 장면의 스틸영상(200) 중의 하나를 보여준다. 이 영상(200)은 언덕(212,214,216)과 나무(206,208,210)를 배경으로 하여 도로(204)를 주행하는 자동차(202)를 보여준다. 이 영상(200)은 도 2b와 같이 PxQ의 그리드(R)에 샘플링하여 디지털 형태로 나타낼 수 있다. 그리드(R) 상의 각각의 지점 R(p,q)(0≤p≤P-1; 0≤q≤Q-1)이 화소에 해당한다. 화소마다 휘도나 컬러를 설명할 수 있는 숫자로 표현될 수 있다. 디지털 측면에서는 화소가 2진수로 표현되고, 각각의 프레임은 해당 화소값의 어레이나 행렬로 표현될 수 있다. 주지하는 바와 같이, 프레임내의 화소수는 변할 수 있다. 따라서, 본 발명은 프레임에 포함되는 화소수에 한정되지 않는다.
일반적으로, 스틸영상(200)은 카메라(102)와 같은 캡처장비의 센서(예; CCD 어레이)에 스틸영상(200)의 초점을 맞춰 2차원으로 샘플링된 영상이다. CCD 어레이의 출력에서 화소어레이를 구할 수 있다. 어떤 경우에는, 컬러영상을 위해, CCD 어레이의 출력을 컬러성분으로 필터링하고, 각각의 컬러성분마다 해당 화소어레이를 가질 수 있다. 예를 들어, RGB(적녹청) 컬러모델의 컬러영상의 각 컬러성분마다 화소어레이가 있을 수 있다.
전술한 바와 같이, 비주얼신을 일련의 프레임(I1,I2,...,In-1,In)으로 표현할 수 있다. 이들 프레임은 일련의 완전프레임(순차프레임)이나 비월주사 프레임으로 샘플링되는 것이 일반적이지만, 본 발명이 이런 종류의 순차나 비월주사 프레임에 한정된다는 것은 아니다.
도 3은 도로(204)를 주행하는 자동차(202)의 동영상 비디오(300)이다. 이 비디오(300)는 주기적인 시간간격으로 일련의 프레임(302,304,306,308)으로 캡처된다. 이들 프레임을 재생하면 자동차(202)가 움직이는 동영상으로 나타난다. 편의상, 도 3에는 비디오(300)의 프레임수를 302~308의 4개로 도시했지만, 프레임 수(n)는 몇개라도 가능함은 당연하다. 즉, 본 발명의 시스템에 포함되거나 지원되는 프레임의 수를 한정하지 않는다.
비디오(300)의 각 프레임도 도 2에서 설명한대로 디지털 형태로 나타낼 수 있다. 따라서, 비디오(300)의 각각의 프레임도 다수의 비트로 표현된다. 일반적으로, 단위시간당 취해지는 프레임수인 프레임율이 높을수록 동작이 부드러워 비디오(300)의 전체적인 화질도 우수해진다. 그러나, 프레임율을 높이면 비디오(300)를 표현하는데 필요한 비트수도 증가한다.
대부분의 비디오의 저장용량과 대역폭이 한정되어 있기 때문에, 주어진 비디오를 나타내는데 필요한 비트수(비트율과 비디오 화질 사이에 균형을 맞추기 위해 인코더(104)에서 각종 코딩(또는 압축) 체계가 구현된다.
일반적으로, 대부분의 비디오 코딩체계는 압축을 위해 시공간적으로 장면장면에 있는 반복정보를 활용할 수 있다. 시간 도메인에서는, 시간적으로 인접한 프레임들, 즉 프레임율이 높을 때 시간 순서대로의 연속되는 프레임들 사이에 높은 상관관계(유사성)가 있다. 공간 도메인에서는 서로 가까이 있어 인접한 화소들 사이에 높은 상관관계가 있다.
도 3과 같이, 프레임(302,304,306,308)에서 언덕(212,214,216)이나 나무(206,208,210)와 도로(204)와 같은 배경과 연관된 화소들은 모든 프레임에서 동일하게 반복된다. 따라서, 모든 프레임 각각에서 반복정보를 표현하지 않으면 비디오(300)를 나타내는데 필요한 전체 비트수를 줄일 수 있다. 이 작업은 프레임내의 공통 화소들을 확인하여 이루어진다.
그러나, 화소 기반에서 프레임을 처리하는 것은 아주 복잡하다. 이런 복잡성을 줄이고 압축율을 더 개선하기 위해, 브레임을 다수의 구역(블록)으로 나누고 블록 기반으로 처리하기도 한다. 일반적으로, 이런 구역(블록)은 다수의 이웃한 화소들을 포함하고 사이즈가 변할 수 있다. 적용례에 따라서는 이들 블록이 서로 겹칠 수도 있다.
도 4a의 프레임(302)은 크기가 일정한 5x5 블록(402)으로 나누어지고, 블록마다 화소수는 16x16이다. 편의상 도 4a의 프레임(302)의 화소블록 수가 5x5개로 표현되었지만, 살제로는 화소블록수는 제한 없이 UxV(U<P; V<Q)이고 각 블록내의 화소수도 제한이 없다. 즉, 본 발명은 프레임의 화소블록의 수나 크기에 제한을 두지 않는다.
비디오 화질을 더 높이기 위해 여러 크기의 블록들로 프레임을 나누기도 한다. 도 4b의 프레임(302)은 여러 크기의 화소블록(402,404,406)으로 나누어진 것이다. 도면에는 3가지의 화소블록만 표시했지만, 실제로는 UxV개의 화소블록이 가능하고, 각각의 화소블록도 uxv개의 화소블록으로 나눌 수 있으며, 둘다 갯수에 제한이 없다(u<U, v<V). 즉, 본 발명에서는 프레임에 포함된 화소블록의 갯수와 크기에 제한을 두지 않는다.
비디오 프레임들 사이의 변화는 물체의 동작(예; 움직이는 자동차), 카메라 동작(예; 패닝, 틸트, 줌, 회전 등), 언커버 영역(예; 움직이는 물체로 가려진 배경 부분)과 조명의 변화로 인해 생긴다. 조명 변화 이외의 동작은 대개 프레임 사이의 화소의 움직임에 관련된 것이다. 따라서, 연속되는 프레임들 사이의 각 화소의 궤적을 예측하면(모션추정), (관련 궤도에 맞게) 각각의 화소를 기준 프레임(과거나 미래 프레임)에서 움직임으로써(즉, 모션 보정) 현재 프레임을 정확히 재구성할 수 있다. 하나 이상의 프레임들이 하나의 기준 프레임으로 표현될 수 있으므로, 비디오 영상을 전체적으로 표현하는데 필요한 비트수도 줄어든다.
그러나, 전술한 바와 같이, 화소 기준으로 프레임을 처리하는 것은 계산이 복잡해 비용이 많이 든다. 따라서, 이런 복잡성을 줄이기 위해, 어떤 경우에는 MEU(110)가 블록 기반으로 각종 모션추정을 한다.
도 4에서 설명한대로, 주어진 프레임(302)를 크기가 한가지나 여러가지인 다수의 화소블록으로 나눈다. 블록기반 모션추정에 있어서, 현재의 블록을 기준 프레임의 같은 크기의 다른 움직인 블록과 비교한다. 현재의 블록과 움직인 기준블록이 가장 잘 맞을 때 생기는 모션벡터(MV; motion vector)가 2개의 블록사이의 움직임이나 동작을 최적으로 설명한다. 어떤 경우에는 모션벡터가 2차원으로서 수평수직 성분을 포함하기도 한다. 따라서, 움직인 블록을 확인하고 기준프레임내의 모든 해당 움직인 블록들을 각각의 모션벡터로 보정하면 현재 프레임을 표현할 수 있다.
예를 들어, 비디오(300)의 프레임(304)에서 움직인 블록들을 확인하고, 이렇게 움직인 블록들에 관련된 모션벡터들을 계산한 다음, 기준프레임(302)내의 움직인 블록들을 해당 모션벡터로 보정하면 프레임(304)을 기준프레임(302)으로 표현할 수 있다. 따라서, 프레임(304)과 관련된 모든 화소값들을 저장하는 대신, 프레임(304)내의 이동 블록들에 관련된 MV와 프레임(302,304) 사이의 차이(예컨대, 자동차(202)가 움직이면서 드러난 영역)만 저장하면 된다.
MEU(110)가 기준프레임과 현재 프레임내의 블록들 사이의 모션추정을 위해 블록매칭을 하기도 한다. 일례로, MEU(110)는 기준프레임내의 대응하는 "최적매칭" 블록을 찾기 위해 현재 블록에 포함된 모든 화소에 대해 가 절대오차합(SAD; sum of absolute differences), 최소차제곱합(SSD; sum of squared differences), SATD(sum of absolute transform differences)와 같은 오차 판별기준을 이용하기도 한다. 대개, 편의성이나 비용 때문에 SAD 방법이 가장 널리 이용된다.
MEU(110)가 검색구역내의 가능한 모든 모션벡터에 대한 최소의 블록 매치오차값(예; 최소 SAD 값)을 찾는데 풀스케일 전수조사를 하기도 한다. 최소 매치오차값을 갖는 모션벡터는 대부분의 화소에 대한 최적의 모션추정을 나타내고, 관련 블록은 최적의 매치블록으로 선택된다.
도 5는 본 발명에 따른 MEU(110)에 의한 풀스케일 전수조사의 일례로서, 502가 기준프레임이고, 504는 현재 프레임이다. 이들 프레임(502,504)는 도 3에서 설명한 프레임과 비슷하다. 현재 프레임(504)의 현재 블록(506)은 도 4에서 설명한 화소블록과 비슷하다. 도 5에서 보듯이, 블록(506)에 속하는 영상이 프레임(502)에서 프레임(504)으로 이동한다.
도 5의 전수조사 영역(503) 은 기준프레임(502)에서 현재 블록(506)에 가장 잘 맞는 최적의 매치블록과 해당 모션벡터를 확인하는 블록 매칭과정을 실행하는데 사용된다. 프레임(504)내의 블록(506)의 공간위치가 기준프레임(502)에 움직임 제로 블록(507)로 표시된다.
전수조사 영역(503)은 영상의 해상도(포맷)나 프레임율이나 응용례에 따라 좌우되어, 수평길이 -M/2 ~ +M/2, 수직길이 -N/2 ~ +N/2의 (M+1 x N+1)의 화소수를 갖는 정사각형일 수 있는데, 이때 M과 N은 짝수이고 M+1≤P, N+1≤Q이다. 여러 영상 포맷들 사이의 모션벡터 사이에 속도가 비슷하게 표현될 수 있도록 전수조사 영역(503)이 영상 포맷에 비례할 수도 있다. 속도는 어떤 프레임에 있는 물체가 경계선을 지나 다른 프레임으로 옮기는데 필요한 시간으로 정의될 수 있다. 예컨대, HDTV 1080p 영상시퀀스에 사용되는 조사영역이 비슷한 모션벡터를 얻기 위해서는 HDTV 720p 영상시퀀스에 사용되는 조사영역보다 225% 커야 한다. 프레임(502)의 전수조사 영역(503)이 움직임 제로 블록(507)의 중심에 있을 수도 있다.
현재 블록(506)과 같은 크기를 갖는 기준 프레임(502)내의 이동블록(508,510)은 전수 조사영역(503)내의 가능한 모든 블록(506)의 움직임과 관련된 블록 매치 오차를 계산하기 위해 단위블록씩 움직일 수 있다. 이렇게 최소 매치오차에 해당하는 움직임을 최적의 매치블록으로 확인할 수 있다. 예컨대, 도 5에서 블록(508)은 "최적매치" 후보로 볼 수 있지만, 블록(510)도 기준프레임(502)내의 블록(506)에 대한 다른 "최적매치" 후보로 볼 수 있다. 도 5의 블록(508,510) 각각이 할당된 모션벡터 MV1과 MV2일 수 있다. 편의상, 도 5의 전수조사영역(503)에는 최적매치 후보로서 2개의 블록(508,510)과 대응 모션벡터(MV1,MV2)가 최적매치 후보로 표시되어 있지만, 실제로는 MV든 블록이든 최적매치 후보의 갯수는 몇개라도 가능하다. 즉, 본 발명은 조사영역내의 MV의 갯수에 제한을 두지 않는다.
전술한 바와 같이, MEU(110)는 전수조사에 의해 기준프레임(502)에서 최적매치 블록(508,510)를 확인할 수 있지만, 전수조사 방식은 프레임내의 블록수가 많아 비경제임은 물론, 도 5와 같이 최적매치 블록도 여러개이다. 모션보정이나 영상보간을 할 때 최적매치 블록이 잘못되어 미스매치되면 영상에 뚜렷한 잡티가 생길 수 있다. 이런 미스매치가 일어나는 영상 특징들은 많다. 예컨대, 직선특징의 경우, 직선특징에 평행한 모션벡터가 생길 수 있고, 그 길이도 어떤 길이도 가능하다. 또, 직선특징과 관련된 모션벡터도 랜덤하게 선택될 수 있어, 직선특징 부근의 다른 화소들을 보간할 때 에러가 생길 수 있다.
예를 들어, 도 5에서 프레임(502)내의 블록(510)과 관련된 MV2가 현재 블록(506)과 관련된 실제 모션벡터라 하자. 이 경우에도 매칭블록(508,510)이 모두 비슷하게 낮은 오차값을 갖기 때문에, MEU(110)는 블록(506)에 대한 최적매칭 블록으로서 블록(508)을 잘못 선택할 수 있다. 이런 미스매치는 비디오 화질을 악화시킨다.
영상보간에 모션벡터를 사용하기 때문에, 물체의 실제 움직임과 영상시퀀스의 상세사항을 정확히 표현하면, 영상과 상세사항이 적절히 보간된 공간위치로 움직여 보간된 영상의 잡티를 피할 수 있다.
격자구조나 주기적 구조와 같은 각종 반벅적인 구조들이 영상에 있기 때문에, 이들 구조를 확인하면 실제 동작 표현을 개선하는데 도움이 된다. 경우에 따라, MEU(110)가 영상내의 각종 격자구조를 확인할 수 있는 격자구조 맵을 만드는 격자구조 검색을 할 수 있다. 격자구조 맵에는 수평 모션벡터 성분들을 분류하는 수평 피치값과, 수직 모션벡터 성분들을 분류하는 수직 피치값이 들어있다. 피치 주기는 격자구조의 최소 반복단위이다.
MEU(110)에서 할 수 있는 격자구조 검색에 대해 도 9를 참조하여 설명한다.
격자구조는 건물, 창문, 그릴, 담장, 텍스트와 같은 물체에 뚜렷하다. 도 5에서 설명한 전수조사법에서, MEU(110)는 전수조사영역(503) 내부에서 에러값이 비슷하게 낮은 다수의 최적매칭 모션벡터들을 확인한다. 예컨대, 격자구조의 수평 피치가 10화소이고 실제 수평 동작이 +3화소이면, MEU(110)가 3-10에 의해 -7 화소나 3+10에 의해 +13 화소의 수평동작을 찾을 수 있다. 실제 모션벡터에 대응하는 국부적인 최소오차가 하나만 있어도, 장면에서의 빛의 변화나 카메라의 패닝이나 다른 광학적 효과와 같은 영향 때문에, 최소 오차값이 하나 이상의 최적매칭 후보들에 연결될 수 있다. 조사영역(503)의 크기를 줄이면, 최소값의 수도 줄어들어, 실제 모션벡터에 최소 오차값을 더잘 연결할 수 있다. 그러나, 전수조사영역(503)이 작으면, 물체의 움직임 범위도 제한되어 전체 모션추정에 해가 될 수 있다. 따라서, 모션추정에 악영향을 주지 않고 미스매치를 방지하기 위해, MEU(110)가 최적매칭 블록이나 모션벡터를 찾는데 적응적 조사방식을 사용할 수 있다.
도 6은 본 발명에 따른 MEU(110)에 의한 적응적 검색체계도로서, 기준프레임(502)과 현재 프레임(504)을 볼 수 있으며, 도 5에서 설명한 것과 마찬가지로 블록(506)의 위치가 프레임(502)에서 프레임(504)으로 바뀐다.
도 6과 같이, 전수조사영역(503) 외에도 적응적 조사영역(603)을 기준프레임(502)에 사용해 현재 블록(506)과 관련된 최적매칭 블록이나 모션벡터를 확인하는 블록매칭 과정을 실시한다. 이런 전수조사영역(503)과 적응적 조사영역(603)은 움직임 제로 블록(507)을 중심에 둘 수도 있다.
전수조사 블록매칭이 전수조사영역(503)에서 일어나고 적응적 조사영역(603)에 포함될 수 있는 모든 이동에 대해 블록매칭 에러들의 소집합들을 모을 수 있다. 영역(503,603)에서 계산된 블록매칭 에러들을 비교해 최적매칭블록의 위치에 해당하는 최소에러를 찾을 수 있다. 예를 들어, 도 6에서는 적응적 조사영역(603)에 있는 블록(510)이 최적매칭 블록이고, 모션벡터(605)가 이에 해당하는 모션벡터이다. 전술한 바와 같이, 전수조사영역(503)과 적응적 조사영역(603)이 갖는 최적매칭 블록이 다수이고 이에 해당하는 모션벡터도 다수일 수 있다. 편의상, 다음 설명에서는 전수조사영역(503)에 있는 모든 최적매칭 MV와 해당 블록매칭 에러들을 각각 총체적으로 최적매칭벡터(607)과 블록매칭에러(609)라 한다. 마찬가지로, 적응적 조사영역(603)에 있는 모든 최적매칭 MV와 해당 블록매칭 에러들을 각각 총체적으로 최적매칭벡터(605)와 블록매칭에러(611)라 한다.
적응적 조사영역(603)이 가로 [-m/2 ~ +m/2], 세로 [-n/2 ~ +n/2] 화소의 (m+1 x n+1) 화소를 갖는 사각형일 수 있는데, 여기서 m과 n은 짝수로서 m<M, n<N이다. 또, 적응적 조사영역(603)이 (Oh,Ov) 화소의 모션 옵셋값을 가질 수도 있는데, Oh와 Ov는 정응적 조사영역(603)의 중심과 전수조사영역(503)의 중심 사이의 가로축과 세로축 옵셋값이다. 격자구조 맵과 모션벡터 히스토그램(MVH)에서 m, n, Ov, Oh를 구할 수도 있다.
MVH는 2차원 히스토그램 어레이로서 가로축과 세로축에서 가능한 모든 수평운동량 MVh[-n/2 ~ +n/2]와 Th[2~N]이다. MVH가 장면에서의 작은 영상과 비슷할 수도 있는데, 여기서 각각의 히스토그램 빈(histogram bin)이 영상화소와 비슷하다. 또, 프레임마다 2개의 히스토그램이 생길 수도 있는데, 하나는 수평 모션벡터 성분과 수평 기간을 위한 것이고, 다른 하나는 수직 모션벡터 성분과 수직 기간을 위한 것이다. MEU(110)에서 사용할 수 있는 MVH에 대해 도 10에서 자세히 설명한다.
일반적으로, 격자구조에서 2개의 후보 벡터성분들 사이의 거리는 피치값의 배수이다. 식 (1)은 피치가 T인 격자구조에서의 실제 모션벡터(MVT)와 선택된 모션벡터(MVS) 사이의 관계를 보여준다.
MVTh= MVSh + k*Th (1)
여기서 h는 모션벡터와 피치의 수평성분, k는 선택된 모션벡터가 실제 모션벡터에서 벗어난 피치값을 표시하는 정수이다. 이상상태에서는 k=0이다.
식 (1)에서 알 수 있듯이, m이 세로 피치값(Tv)보다 작고 n이 가로 피치값(Th)보다 작으면 적응적 조사구역(603)의 최소값을 1로 한정할 수 있다. 어떤 경우에는 적응적 조사영역(603)의 치수인 m, n, Oh, Ov를 아래 식 (2)와 (3)으로 정할 수 있다.
m = Tv-1 (2)
n = Th-1 (3)
위의 식에서 Th와 Tv가 2 이상이라고 할 수 있다. Tv=0이면 수직 격자구조가 검색되지 않고 m을 M에대해 일정한 값이며 Ov=0으로 할 수 있다. Th=0이면, 수평격자구조가 검색되지 않고, n은 N에 대해 일정한 값이며 Oh=0으로 할 수 있다.
고속동작이 있을 때 적응적 조사영역(603)이 잘릴 수도 있다. 블록매칭에러를 위한 더 복잡한 계산이 불필요하도록, 적응적 조사영역(603)이 전수조사영역(503)의 일부분을 포함하고, 배제된 모든 영역에서의 블록매칭은 무시할 수도 있다. 예를 들어, 옵셋(Oh=N/2)에 대해, 적응적 조사영역(603)의 중심 위치가 전수조사영역의 우측경계선에 있으면, 적응적 조사영역(604)의 좌측 절반만 고려하면 된다.
조사영역(503,603)의 크기가 영상의 해상도에 좌우될 수도 있다. 예컨대, 고화질 HD-1080의 조사영역(503,603)의 크기는 HD-720보다 크고, HD-480보다는 더 클 수 있다. 어떤 경우, HD-720의 조사영역(503,603)이 SD-480의 2배이고, HD-1080의 조사영역은 SD-480의 3배이기도 하다.
편의상, 도 6의 프레임(502)은 2개의 조사영역인 전수조사영역(503)과 적응적 조사영역(603)을 갖는 것으로 설명했지만, 실제로는 조사영역의 갯수가 무제한이다. 즉, 본 발명은 프레임내의 조사영역의 갯수를 제한하지 않는다.
또, 적응적 조사영역(603)과 전수조사영역(503)이 각각 최적매칭블록을 하나씩 확인하는 것으로 설명했지만, 실제로는 하나의 조사영역이 최적매칭블록을 몇개라도 확인할 수 있다. 즉, 본 발명은 조사영역에 포함된 최적매칭블록의 갯수를 제한하지 않는다.
전술한 바와 같이, "최적매칭" 블록은 SAD, SSD, SATD와 같은 블록매칭 에러를 최소화하는 블록이다. 경우에 따라, MEU(110)는 오차범위를 만족하는 최적매칭블록을 선택하기도 하고, 최적매칭블록을 선택하기 위한 오차범위가 외부에서 프로그램되어 MEU(110)로 보내지기도 한다.
도 7은 본 발명에 따른 비디오코딩 시스템(100)의 MEU(110)의 블록도이다. MEU(110)의 DU(704; delay unit)는 비디오신호(I)를받아 기준프레임(502)과 같은 프레임을 추출하고, 이런 프레임은 현재 프레임(504)과 공간적으로 정렬된다. MEU(110)의 AMSU(702; adaptive motion estimation search unit)은 현재 프레임(504)과 기준프레임(502)을 DU(704)로부터 받는다. AMSU(702)는 전수조사 모션벡터(607)와 블록매칭에러(609)와 적응적 조사 모션벡터(605)와 블록매칭에러(611)를 확인하는 적응적 조사를 실시한다.
LSDU(706; lattice structure detection unit)는 비디오신호(I)를 받고, 비디오신호(I)에 포함된 프레임을 위한 블록기반 격자구조맵(712)을 만든다. AMSU(702)는 LSDU(706)로부터 격자구조맵(712)을 받는다.
MHGU(708; motion histogram generator unit)는 LSDU(706)로부터 격자구조맵(712)을 받고, AMSU(702)로부터는 전수조사 모션벡터(607)를 받는다. MHGU(708)는 옵셋값 Oh나 Ov와 같은 모션 옵셋 인자(714)를 만든다.
MVSU(710; motion vector selection unit)은 모션벡터(607,605)와 블록매칭 에러(609,611)와 격자구조맵(712)를 받는다. MVSU(710)는 최적매칭 블록을 나타내는 최종 모션벡터(716)를 선택한다.
초기화나 장면전환시, 현재 프레임(504)과 기준프레임(502)을 받은 AMSU(702)는 전수조사를 하여 전수조사 모션벡터(607)와 해당하는 블록매칭에러(609)를 확인한다. 그와 동시에, MHGU(708)는 LSDU(706)로부터 격자구조맵(712)을 받아 모션벡터(607)를 나타내는 2차원 MVH(711)를 만든다. MHGU(708)에서 생긴 MVH(711)에 대해서는 도 10에서 설명한다.
경우에 따라서는, 현재 프레임(504)의 최종 블록이 AMSU(702)에 의해 처리될 때까지, MHGU(708)의 MVH(711)가 현재 프레임(504) 전체에 대해 격자구조맵(712)에 의해 분류된 동작정보를 모은다. MHGU는 격자구조맵(712)의 각각의 주기에 대한 모션옵셋인자(714)를 계산하기 위해 MVH(711)를 더 처리한다. AMSU(702)는 모션옵셋인자(714)와 격자구조맵(712)을 받아, 적응적 조사영역(603)의 m, n, Oh, Ov와 같은 치수를 구하기도 한다.
블록이 AMSU(702)에서 모션추정을 겪으면서, 전수조사영역(503)에서 생기는 모든 움직임에 대해 블록매칭에러(609)와 해당 모션벡터(607)가 계산되고, 적응적 조사영역(603)에서 생기는 모든 움직임에 대해서는 블록매칭에러(611)와 해당 모션벡터(605)가 계산된다. 모션벡터(607,605)와 블록매칭에러(609,611)는 MVSU(710)로 보내지고, MVSU는 격자구조맵(712)에 의한 블록매칭에러(609,611)와 비교해 최종 모션벡터(716)를 선택한다. MVSU(710)에 대해서는 도 11에서 설명한다.
2개의 프레임(502,504)을 바꿔서 후진은 물론 전진 모션벡터도 구할 수 있다. 도 8은 본 발명에 따른 AMSU(702)의 블록도이다. 여기서, BMU(802; block matching unit)는 현재 프레임(504)과 기준프레임(502)을 받고, 전수조사영역(503)에서 가능한 모든 움직임(dx,dy)에 대해 SAD와 같은 블록매칭에러 평가를 통해 블록매칭에러(820)를 생성한다. MSCU(804; motion vector scanner unit)는 움직임(814)을 생성하고, 경우에 따라서는 (-M/2,-N/2) 위치에서 시작해 (M/2,N/2)로 끝나는 래스터 주사방식으로 움직임(814)을 생성하기도 한다.
FSEU(812; full search evaluation unit)과 ASEU(810; adaptive search evaluation unit)는 움직임(814)과 블록매칭에러(820)를 받는다. 블록매칭에러(820)는 해당 움직임과 함께 FESU(812)와 ASEU(810)에 보내지기도 한다. FSEU(812)는 전수조사영역(503)에 대한 최소 블록매칭에러를 평가하고 해당 블록매칭에러(609)와 함께 최적매칭 모션벡터(607)를 생성할 수 있다.
SACU(806; search area computation unit)는 격자구조맵(712)과 모션인자(714)를 받고, 적응적 조사영역(603)의 m이나 n과 같은 치수(816)를 계산한다. CU(808; comparator unit)는 움직임(814,816)을 받고, (dx,dy) 동작값이 적응적 조사영역(603)에 있는지 여부를 확인하기 위해 현재 프레임(504)의 전수조사 블록매칭을 하는 동안 (dx,dy) 각각의 동작값을 비교한다. CU(808)는 (dx,dy)가 적응적 조사영역(603)에 있는지 여부를 2진신호(818)로 확인하기도 한다.
ASEU(810)는 이 신호(818)를 받고 적응적 조사영역(603)에 있는 모든 (dx,dy) 이동값에 대해 해당 최적매칭벡터(605)와 함께 최소 블록매칭에러(611)를 계산한다.
도 9a는 본 발명에 따른 LSDU(706)의 블록도이다. SWU(902; sampling window unit)는 프레임(502)을 받고, 프레임(502)의 화소에 대해 윈도우 기반 샘플링을 하여 화소샘플(912)을 구한다. SWU(902)가 표준화된 1차원 샘플링 윈도우를 가질 수도 있는데, 이런 윈도우의 크기는 검색된 피치의 주기에 좌우된다. 또, 피치 범위가 [2~N]일 경우, 화소수가 2N 이상인 샘플링 윈도우를 사용할 수 있다. 샘플링된 화소들의 평균값을 구해 이 값을 각각의 화소샘플에서 감산하여 SWU(902)가 프레임(502)의 화소샘플(912)을 평균 제로까지 표준화할 수도 있다.
WU(904; weighting unit)는 화소샘플(912)를 받고, 가중치가 부여된(이하, "가중치"라 함) 화소샘플(914)을 구하기 위해 가중치 부여기능을 한다. WU(904)가 하는 가중치 부여기능은 샘플링 윈도우 중심 둘레의 화소샘플에 관심을 두고 윈도우 가장자리의 화소샘플에는 관심을 두지 않는다. WU(904)가 가중치 샘플(914)을 구하기 위해 화소샘플(912)에 해밍(Hamming) 윈도우변조나 가중치부여를 하기도 한다. 해밍윈도우를 이용하면 이웃 블록들에서의 주기를 좀더 일정하게 검색할 수 있다.
FFT(906; Fast Fourier Transform unit)는 가중치 샘플(914)를 받고, 변환계수(916)를 구하기 위해 퓨리에 변환을 한다. 변환계수(916)는 계수의 크기성분만을 가질 수도 있다.
PPCU(908; peak and period computation unit)는 변환계수(916)를 받고, 가장 강력한 진폭 최대치를 검출하기 위해 변환계수(916)의 진폭 스펙트럼에 대한 최대치 검출을 한다. PPCU(908)는 최적 최대치의 주파수값을 선택하여 피치주기맵(918)으로 변환하기도 한다. FPU(910; filter period unit)는 피치주기맵(918)을 받고, 이 맵을 필터링하여 격자구조맵(712)을 만든다. 피치주기맵(918)을 필터링하여, FPU(910)는 일관성(평활도)를 개선하고, 맵(918)의 검출된 주기에 대한 독립되거나 잘못된 검출을 피할 수 있다.
도 9b는 프레임(502)의 격자구조(930)의 일례를 보여준다. 원(932)은 가로 피치주기 Th를 보여주기 위한 프레임(502)의 가로(수평) 성분을 보여준다. 가로 피치주기 Thdhk 같은 정보가 격자구조맵(712)에 들어있다.
블록기반으로 격자구조의 주기값을 검색하는데 윈도우 주파수변환이 아닌 윈도우신호 자기상관법과 같은 다른 방법을 이용할 수도 있다. 또, 여러가지 해상도의 프레임에 대해 계층적으로 격자구조를 검색할 수도 있다. 계층적 검색법을 사용하면, 여러가지 이미지다운 샘플링 단계들을 통해 더 넓은 범위의 피치주기를 검색할 수 있다. 예를 들어, 영상 크기가 2배로 작아지면, 주기는 2배로 작아지게 되고, 그만큼 주기검색범위는 2배로 커지게 된다.
도 7에서 설명한 바와 같이, MHGU(708)는 AMSU(702)에서 사용할 수 있는 모션옵셋 인자(714)를 계산하는데 사용되는 MVH(711)를 생성한다. 도 10은 MHGU(708)에서 생성되는 히스토그램 MVH(711)의 일례를 보여준다.
도 10의 MVH(711)는 히스토그램 빈(1004)을 갖는다. 가로축(MVh)은 -N/2에서 N/2까지 가능한 모든 수평운동값을 나타내고, 세로축(Th)은 2에서 NrKWLDML 검색가능한 모든 수평 피치주기를 나타낸다. 도 10의 히스토그램 MVH는 몇몇 화소블록에서 검색된 피치주기가 4이고 나머지 화소블록에선 5인 격자구조의 프레임을 지적한다. 또, 주기값 4와 5 둘다에서 가장 많이 생기는 모션벡터는 MV0로서 각각 75회와 90회 생긴다. 피치주기 4의 경우, MV0와 MV+4가 정확히 1피치 떨어져 있는데, 이는 MV+4가 프레임의 특정 블록에서 미스매칭됨을 나타낸다.
MHGU(708)는 주로 MVH(711)를 분석해 모션옵셋값(714)을 생성하지만, MVH(711)를필터링하여 격자구조맵(712)의 각 주기에 최적의 모션을 결정하기도 한다. 예를 들어, 도 10의 MVH9711)에 의하면, 주기가 4나 5인 격자구조에 속하는 블록의 적응적 조사영역(603)은 가로옵셋 Oh를 0으로 정하고 폭 n은 식 (3)에서 구한 값으로 정하도록 기능한다.
모든 히스토그램 빈(1004)은 모든 새로운 프레임이 들어오면 리셋될 수 있다. 전술한 바와 같이, MHGU(708)는 프레임마다 히스토그램을 2개 생성하는데, 한쪽 히스토그램은 수평 모션벡터성분과 주기를 위한 것이고, 다른 하나는 수직 모션벡터와 주기를 위한 것이다.
도 11은 본 발명에 따른 MVSU(710; motion vector selection unit)의 블록도이다. 도 11에서, MVCU(1102; motion vector comparison unit)는 전수조사와 적응적조사 모션벡터(607,605) 및 격자구조맵(712)를 받고, 각각의 블록에 대해 이들 모션벡터(607,605) 사이의 절대값 차이를 비교하기도 한다. 절대값 차이가 0이 아니고 격자구조맵(712)의 피치값의 수배이면, MVCU(1102)가 현재 블록위치의 입력프레임에 격자구조가 있음을 나타내는 유효신호(1110)를 생성한다. 이런 유효신호(1110)는 2진신호일 수 있다.
멀티플렉서(1106)는 유효신호(1110)를 받고 인자(1112,1114) 중의 하나를 선택한다. 유효신호(1110)를 근거로, 멀티플렉서(1106)가 벌점인자(1116)를 보낼 수 있는데, 벌점인자는 옵셋값을 포함한다. MECU(1104; match error computation unit)는 매칭에러(609,611)와 벌점인자(1116)를 받고, 선택신호(1118)를 낸다. 벌점인자(1116)를 통해 해당 전수조사 매칭에러(609)에는 벌점을 주고 해당 적응조사 모션벡터(605)에는 선택상의 가점을 준다. 예를 들어, 격자구조가 있으면, 멀티플렉서(1106)가 유효신호(1110)를 통해 벌점인자(1116)를 보내, MECU(1104)가 적응조사 모션벡터(605)를 더 잘 선택하도록 하는데, 이는 전수조사 매칭에러(609)에 벌점이 부여되었기 때문이다. 격자구조가 없으면, 멀티플렉서(1106)는 유효신호(1110)를 통해 벌점인자(1116)를 생성하여, MECU(1104)가 전수조사 매칭에러(609)에 작은 벌점을 부여하도록 함으로써, 블록매칭에러(609,611)가 비슷할 때 (선택신호(1118)와 멀티플렉서(1108)를 통해) 적응조사 모션벡터(605)가 선택되도록 한다. 경우에 따라서는, 벌점이 없는 전수조사 매칭에러(609)가 적응조사 매칭에러(611)보다 작거나 같을 수도 있다.
또, 선택신호(1118)가 2진신호일 수 있다. 선택신호(1118)를 근거로, 멀티플렉서(1108)는 전수조사와 적응조사 모션벡터(607,605) 중에서 최종 모션벡터(716)를 선택할 수 있다.

Claims (5)

  1. 제 1 프레임 내의 화소 블록의 모션 추정 방법으로서,
    상기 화소 블록에 대응하는 제 1 매칭 블록을 식별하기 위해 제 2 프레임 내의 제 1 영역을 검색하는 단계로서, 상기 제 1 매칭 블록은 상기 화소 블록과 상기 제 1 매칭 블록 사이의 적어도 하나의 에러 판단기준의 최소값인 제 1 에러값을 포함하고, 상기 제 1 매칭 블록과 관련된 제 1 모션 벡터를 계산하는, 상기 제 1 영역을 검색하는 단계;
    상기 화소 블록에 대응하는 제 2 매칭 블록을 식별하기 위해 상기 제 2 프레임 내의 제 2 영역을 검색하는 단계로서, 상기 제 2 매칭 블록은 상기 화소 블록과 상기 제 2 매칭 블록 사이의 적어도 하나의 에러 판단기준의 최소값인 제 2 에러값을 포함하고, 상기 제 2 매칭 블록과 관련된 제 2 모션 벡터를 계산하는, 상기 제 2 영역을 검색하는 단계; 및
    상기 제 1 및 제 2 에러값에 기초하여 상기 제 1 및 제 2 모션 벡터들 사이에서 최종 모션 벡터를 선택하는 단계; 를 포함하는 모션 추정 방법.
  2. 제 1 항에 있어서,
    상기 제 1 영역을 검색하는 단계는,
    상기 제 1 영역을 제 1 복수개의 화소 블록들을 포괄하는 영역으로서 제공하는 단계; 및
    상기 화소 블록과 상기 제 1 매칭 블록 사이의 상기 적어도 하나의 에러 판단기준의 최소값인 상기 제 1 에러값을 포함하는 상기 제 1 매칭 블록을 식별하기 위해 상기 제 1 복수개의 화소 블록들 각각을 검색하는 단계;
    를 더 포함하는, 모션 추정 방법.
  3. 제 1 항에 있어서,
    상기 제 2 영역을 검색하는 단계는,
    상기 제 1 프레임의 제 1 격자 구조 맵을 감지하는 단계로서, 상기 격자 구조 맵은 상기 제 1 프레임 내의 적어도 하나의 반복 구조와 관련된 적어도 하나의 피치 주기값을 포함하는, 상기 제 1 격자 구조 맵을 감지하는 단계;
    상기 제 1 프레임에 대한 제 1 히스토그램을 생성하는 단계로서, 상기 제 1 히스토그램은 상기 제 1 및 제 2 모션 벡터들, 및 상기 제 1 격자 구조 맵으로부터 유도되고, 상기 제 1 히스토그램은 상기 제 1 및 제 2 모션 벡터들 및 상기 적어도 하나의 피치 주기값 사이의 관계를 포함하는, 상기 제 1 히스토그램을 생성하는 단계;
    상기 제 1 격자 구조 맵 및 상기 제 1 히스토그램으로부터 적어도 하나의 파라미터를 유도하는 단계;
    상기 제 2 영역을 제 2 복수개의 화소 블록들을 포괄하는 영역으로서 제공하는 단계로서, 상기 제 2 영역은 상기 제 1 영역의 부분으로서 포함되고, 상기 제 2 영역은 상기 적어도 하나의 파라미터로부터 유도된 적어도 하나의 차원을 더 포함하는, 상기 제 2 영역을 제공하는 단계; 및
    상기 제 2 매칭 블록을 식별하기 위해 상기 제 2 복수개의 화소 블록들을 각각 검색하는 단계로서, 상기 제 2 매칭 블록은 상기 화소 블록 및 상기 제 2 매칭 블록 사이의 상기 적어도 하나의 에러 판단기준의 최소값을 포함하는 상기 제 2 에러값을 포함하는, 상기 제 2 복수개의 화소 블록들을 각각 검색하는 단계를 더 포함하는, 모션 추정 방법.
  4. 제 1 항에 있어서,
    상기 최종 모션 벡터를 선택하는 단계는;
    제 1 격자 구조 맵 내에 포함된 상기 적어도 하나의 피치 주기값에 기초하여 제 1 벌점값을 계산하는 단계로서, 상기 제 1 벌점값은 상기 제 1 에러값 및/또는 상기 제 2 에러값을 적응시키는, 상기 제 1 벌점값을 계산하는 단계; 및
    상기 적응된 제 1 및 제 2 에러값들에 기초하여 상기 제 1 모션 벡터와 상기 제 2 모션 벡터 사이의 상기 최종 모션 벡터를 선택하는 단계를 더 포함하는, 모션 추정 방법.
  5. 제 1 프레임 내의 화소 블록의 모션 추정을 위한 장치로서,
    상기 화소 블록에 대응하는 제 1 매칭 블록과 관련된 제 1 모션 벡터를 계산하는, 제 2 프레임을 검색하기 위해 커플링된 적응 모션 검색부 (Adaptive Motion Search Unit, AMSU) 로서, 상기 제 1 매칭 블록은 상기 화소 블록 및 상기 제 1 매칭 블록 사이의 적어도 하나의 에러 판단기준의 최소값인 제 1 에러값을 포함하고, 상기 적응 모션 검색부는 상기 화소 블록에 대응되는 제 2 매칭 블록과 관련된 제 2 모션 벡터를 더 계산하고, 상기 제 2 매칭 블록은 상기 화소 블록 및 상기 제 2 매칭 블록 사이의 상기 적어도 하나의 에러 판단기준의 최소값인 제 2 에러값을 포함하는, 상기 적응 모션 검색부;
    상기 제 1 프레임의 제 1 격자 구조 맵을 감지하기 위해 커플링된 격자 구조 감지부 (Lattice Structure Detection Unit, LSDU) 로서, 상기 제 1 격자 구조 맵은 상기 제 1 프레임 내의 적어도 하나의 반복 구조와 관련된 적어도 하나의 피치 주기값을 포함하는, 상기 격자 구조 감지부;
    상기 제 1 프레임에 대한 제 1 히스토그램을 생성하기 위해 커플링된 모션 히스토그램 생성부 (Motion Histogram Generating Unit, MHGU) 로서, 상기 제 1 히스토그램은 상기 제 1 모션 벡터 및 상기 제 1 격자 구조 맵으로부터 유도되고, 상기 제 1 히스토그램은 상기 제 1 모션 벡터와 적어도 하나의 상기 피치 주기값 사이의 관계를 포함하는, 상기 모션 히스토그램 생성부; 및
    상기 제 1 및 제 2 에러값들에 기초하여 상기 제 1 및 제 2 모션 벡터들 사이의 최종 모션 벡터를 선택하기 위해 커플링된 모션 벡터 선택부 (Motion Vector Selection Unit, MVSU) 를 포함하는 제 1 이미지 내의 화소 블록의 모션 추정을 위한 장치.
KR1020107016142A 2007-12-20 2008-12-18 적응적 조사영역을 갖는 모션추정 장치 및 방법 KR101540138B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US1522607P 2007-12-20 2007-12-20
US61/015,226 2007-12-20

Publications (2)

Publication Number Publication Date
KR20100103838A KR20100103838A (ko) 2010-09-28
KR101540138B1 true KR101540138B1 (ko) 2015-07-28

Family

ID=40602629

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107016142A KR101540138B1 (ko) 2007-12-20 2008-12-18 적응적 조사영역을 갖는 모션추정 장치 및 방법

Country Status (6)

Country Link
US (1) US8265158B2 (ko)
JP (2) JP5453304B2 (ko)
KR (1) KR101540138B1 (ko)
CN (1) CN101946514B (ko)
TW (1) TW200943969A (ko)
WO (1) WO2009085232A1 (ko)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9330060B1 (en) 2003-04-15 2016-05-03 Nvidia Corporation Method and device for encoding and decoding video image data
US8660182B2 (en) 2003-06-09 2014-02-25 Nvidia Corporation MPEG motion estimation based on dual start points
US8705614B2 (en) * 2005-04-04 2014-04-22 Broadcom Corporation Motion estimation using camera tracking movements
US8731071B1 (en) 2005-12-15 2014-05-20 Nvidia Corporation System for performing finite input response (FIR) filtering in motion estimation
US8724702B1 (en) 2006-03-29 2014-05-13 Nvidia Corporation Methods and systems for motion estimation used in video coding
US8660380B2 (en) 2006-08-25 2014-02-25 Nvidia Corporation Method and system for performing two-dimensional transform on data value array with reduced power consumption
US8756482B2 (en) 2007-05-25 2014-06-17 Nvidia Corporation Efficient encoding/decoding of a sequence of data frames
JP2008307184A (ja) * 2007-06-13 2008-12-25 Fujifilm Corp 画像処理装置および画像処理プログラム
US9118927B2 (en) 2007-06-13 2015-08-25 Nvidia Corporation Sub-pixel interpolation and its application in motion compensated encoding of a video signal
US8873625B2 (en) 2007-07-18 2014-10-28 Nvidia Corporation Enhanced compression in representing non-frame-edge blocks of image frames
JP5657391B2 (ja) * 2007-12-20 2015-01-21 クゥアルコム・インコーポレイテッドQualcomm Incorporated ハローを低減する画像補間
JP5406465B2 (ja) * 2008-04-24 2014-02-05 株式会社Nttドコモ 画像予測符号化装置、画像予測符号化方法、画像予測符号化プログラム、画像予測復号装置、画像予測復号方法及び画像予測復号プログラム
KR101487685B1 (ko) * 2008-11-21 2015-01-29 삼성전자주식회사 이미지 처리장치, 이미지 처리방법 및 처리방법을 실행시키기 위한 프로그램을 저장한 기록매체
US8666181B2 (en) * 2008-12-10 2014-03-04 Nvidia Corporation Adaptive multiple engine image motion detection system and method
US8295551B2 (en) * 2009-04-08 2012-10-23 Samsung Electronics Co., Ltd. System and method of adaptive vertical search range tracking for motion estimation in digital video
EP2419861A1 (en) * 2009-04-14 2012-02-22 Koninklijke Philips Electronics N.V. Key frames extraction for video content analysis
US8917769B2 (en) * 2009-07-03 2014-12-23 Intel Corporation Methods and systems to estimate motion based on reconstructed reference frames at a video decoder
US8462852B2 (en) 2009-10-20 2013-06-11 Intel Corporation Methods and apparatus for adaptively choosing a search range for motion estimation
US20110002387A1 (en) * 2009-07-03 2011-01-06 Yi-Jen Chiu Techniques for motion estimation
US9654792B2 (en) 2009-07-03 2017-05-16 Intel Corporation Methods and systems for motion vector derivation at a video decoder
US8594199B2 (en) * 2010-03-08 2013-11-26 Qualcomm Incorporated Apparatus and method for motion vector filtering based on local image segmentation and lattice maps
JP5441803B2 (ja) * 2010-04-12 2014-03-12 キヤノン株式会社 動きベクトル決定装置及び動きベクトル決定方法、コンピュータプログラム
US8537283B2 (en) 2010-04-15 2013-09-17 Qualcomm Incorporated High definition frame rate conversion
US8798131B1 (en) 2010-05-18 2014-08-05 Google Inc. Apparatus and method for encoding video using assumed values with intra-prediction
US8446524B2 (en) * 2010-06-21 2013-05-21 Realtek Semiconductor Corp. Apparatus and method for frame rate conversion
GB2483294B (en) * 2010-09-03 2013-01-02 Canon Kk Method and device for motion estimation of video data coded according to a scalable coding structure
US8781165B2 (en) * 2010-12-14 2014-07-15 The United States Of America As Represented By The Secretary Of The Navy Method and apparatus for displacement determination by motion compensation
JP5721851B2 (ja) 2010-12-21 2015-05-20 インテル・コーポレーション Dmvd処理のシステムおよび方法の改善
US8856212B1 (en) 2011-02-08 2014-10-07 Google Inc. Web-based configurable pipeline for media processing
US8767817B1 (en) 2011-04-07 2014-07-01 Google Inc. Apparatus and method for coding using parameterized equation
US8804819B1 (en) * 2011-04-19 2014-08-12 Google Inc. Method and apparatus for encoding video using data frequency
US8681866B1 (en) 2011-04-28 2014-03-25 Google Inc. Method and apparatus for encoding video by downsampling frame resolution
US9749638B1 (en) 2011-04-28 2017-08-29 Google Inc. Method and apparatus for encoding video with dynamic quality improvement
US8705620B1 (en) 2011-04-28 2014-04-22 Google Inc. Method and apparatus for encoding anchor frame by encoding features using layers
US9106787B1 (en) 2011-05-09 2015-08-11 Google Inc. Apparatus and method for media transmission bandwidth control using bandwidth estimation
US10018703B2 (en) * 2012-09-13 2018-07-10 Conduent Business Services, Llc Method for stop sign law enforcement using motion vectors in video streams
US20130107960A1 (en) * 2011-11-02 2013-05-02 Syed Ali Scene dependent motion search range adaptation
US8818045B2 (en) * 2011-12-29 2014-08-26 Stmicroelectronics (Canada), Inc. Adaptive sub-pixel accuracy system for motion and disparities estimation
CN104011771A (zh) * 2011-12-30 2014-08-27 英特尔公司 用于可缩放的帧速率上转换的方法和设备
US9185429B1 (en) 2012-04-30 2015-11-10 Google Inc. Video encoding and decoding using un-equal error protection
US9781447B1 (en) 2012-06-21 2017-10-03 Google Inc. Correlation based inter-plane prediction encoding and decoding
US9342334B2 (en) 2012-06-22 2016-05-17 Advanced Micro Devices, Inc. Simulating vector execution
US9167268B1 (en) 2012-08-09 2015-10-20 Google Inc. Second-order orthogonal spatial intra prediction
US9344742B2 (en) 2012-08-10 2016-05-17 Google Inc. Transform-domain intra prediction
US9380298B1 (en) 2012-08-10 2016-06-28 Google Inc. Object-based intra-prediction
US9369732B2 (en) 2012-10-08 2016-06-14 Google Inc. Lossless intra-prediction video coding
US9628790B1 (en) 2013-01-03 2017-04-18 Google Inc. Adaptive composite intra prediction for image and video compression
US9172740B1 (en) 2013-01-15 2015-10-27 Google Inc. Adjustable buffer remote access
US9311692B1 (en) 2013-01-25 2016-04-12 Google Inc. Scalable buffer remote access
US9225979B1 (en) 2013-01-30 2015-12-29 Google Inc. Remote access encoding
US9247251B1 (en) 2013-07-26 2016-01-26 Google Inc. Right-edge extension for quad-tree intra-prediction
KR101599888B1 (ko) * 2014-05-02 2016-03-04 삼성전자주식회사 적응적 영상 데이터 압축 방법 및 장치
JP5970507B2 (ja) * 2014-08-08 2016-08-17 日本電信電話株式会社 映像符号化装置及び映像符号化プログラム
US10291931B2 (en) * 2016-10-13 2019-05-14 Ati Technologies Ulc Determining variance of a block of an image based on a motion vector for the block
CN106993108B (zh) * 2017-04-07 2020-08-28 上海顺久电子科技有限公司 一种确定视频图像在运动估计中的随机量的方法和装置
CN113873096A (zh) * 2020-06-30 2021-12-31 晶晨半导体(上海)股份有限公司 场景检测方法、芯片、电子设备以及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10304371A (ja) * 1997-04-25 1998-11-13 Sharp Corp 動きベクトル検出装置
JP2003078807A (ja) * 2001-08-31 2003-03-14 Sony Corp 動きベクトル検出装置および方法、手振れ補正装置および方法、並びに撮像装置
JP2005056410A (ja) * 2003-07-31 2005-03-03 Samsung Electronics Co Ltd パターン分析に基づく動きベクトル補正装置及びその方法

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2645383B1 (fr) 1989-03-31 1997-06-27 Thomson Consumer Electronics Procede et dispositif d'interpolation temporelle d'images, a compensation de mouvement corrigee
GB9013642D0 (en) 1990-06-19 1990-08-08 British Broadcasting Corp Video signal processing
EP0549681B2 (en) 1990-09-20 2000-03-01 British Broadcasting Corporation Video image processing
ATE162037T1 (de) 1991-05-24 1998-01-15 British Broadcasting Corp Videobildverarbeitung
GB2279531B (en) 1993-06-24 1997-07-16 Sony Uk Ltd Motion compensated image interpolation
EP0647919B1 (en) * 1993-10-11 2000-02-02 THOMSON multimedia Method and apparatus for correcting motion vectors
SG50718A1 (en) * 1993-10-11 1998-07-20 Thomson Multimedia Sa Method and apparatus for correcting motion vectors
JP3598526B2 (ja) * 1993-12-29 2004-12-08 ソニー株式会社 動きベクトル検出方法及び画像データの符号化方法
KR950024600A (ko) 1994-01-31 1995-08-21 김광호 휘도신호적응 움직임 평가방법
JP3846642B2 (ja) 1994-01-31 2006-11-15 ソニー株式会社 動き量検出方法及び動き量検出装置
KR100235343B1 (ko) * 1994-12-29 1999-12-15 전주범 영역분할 기법을 이용한 동영상신호 부호화기의 움직임 벡터 측정장치
JP3764505B2 (ja) * 1995-03-20 2006-04-12 株式会社大宇エレクトロニクス 階層的動き推定を採用した動きベクトル決定方法
FR2742902B1 (fr) * 1995-12-22 1998-01-23 Thomson Multimedia Sa Procede d'estimation de mouvement
JPH09224249A (ja) * 1996-02-15 1997-08-26 Nippon Hoso Kyokai <Nhk> 動きベクトル検出装置
JPH10134193A (ja) * 1996-10-31 1998-05-22 Oki Electric Ind Co Ltd 移動ベクトル算出方法及び装置
EP0907145A3 (en) * 1997-10-03 2003-03-26 Nippon Telegraph and Telephone Corporation Method and equipment for extracting image features from image sequence
WO1999022520A2 (en) 1997-10-29 1999-05-06 Koninklijke Philips Electronics N.V. Motion vector estimation and detection of covered/uncovered image parts
TW376659B (en) 1998-05-21 1999-12-11 Nat Science Council Motion estimator using 3-step hierarchical search block-matching algorithm
US6130912A (en) 1998-06-09 2000-10-10 Sony Electronics, Inc. Hierarchical motion estimation process and system using block-matching and integral projection
EP1048170A1 (en) 1998-08-21 2000-11-02 Koninklijke Philips Electronics N.V. Problem area location in an image signal
JP2000308064A (ja) * 1999-04-22 2000-11-02 Mitsubishi Electric Corp 動きベクトル検出装置
CA2279797C (en) 1999-08-06 2010-01-05 Demin Wang A method for temporal interpolation of an image sequence using object-based image analysis
JP2001145114A (ja) * 1999-08-31 2001-05-25 Matsushita Electric Ind Co Ltd 動きベクトル検出装置および動きベクトル検出方法
US6876703B2 (en) * 2000-05-11 2005-04-05 Ub Video Inc. Method and apparatus for video coding
US6810081B2 (en) 2000-12-15 2004-10-26 Koninklijke Philips Electronics N.V. Method for improving accuracy of block based motion compensation
EP1356676B1 (en) 2001-01-16 2007-04-11 Koninklijke Philips Electronics N.V. Reducing halo-like effects in motion-compensated interpolation
US7227896B2 (en) * 2001-10-04 2007-06-05 Sharp Laboratories Of America, Inc. Method and apparatus for global motion estimation
US6914938B2 (en) * 2002-06-18 2005-07-05 Motorola, Inc. Interlaced video motion estimation
EP1590957A1 (en) 2003-01-23 2005-11-02 Koninklijke Philips Electronics N.V. Background motion vector detection
JP4220284B2 (ja) 2003-03-28 2009-02-04 株式会社東芝 フレーム補間方法、装置及びこれを用いた画像表示システム
US7489821B2 (en) * 2003-04-08 2009-02-10 International Business Machines Corporation Method, system and program product for representing a perceptual organization of an image
US20060136402A1 (en) * 2004-12-22 2006-06-22 Tsu-Chang Lee Object-based information storage, search and mining system method
JP4366571B2 (ja) * 2003-09-18 2009-11-18 日本電気株式会社 動画像符号化装置及び方法
US7499494B2 (en) 2003-12-23 2009-03-03 Genesis Microchip Inc. Vector selection decision for pixel interpolation
CA2457988A1 (en) * 2004-02-18 2005-08-18 Voiceage Corporation Methods and devices for audio compression based on acelp/tcx coding and multi-rate lattice vector quantization
WO2005084036A1 (ja) * 2004-03-01 2005-09-09 Sony Corporation 動きベクトル検出装置、および動きベクトル検出方法、並びにコンピュータ・プログラム
JP4375080B2 (ja) 2004-03-29 2009-12-02 ソニー株式会社 画像処理装置および方法、記録媒体、並びにプログラム
JP4746550B2 (ja) * 2004-09-22 2011-08-10 パナソニック株式会社 画像符号化装置
JP4528694B2 (ja) * 2005-08-12 2010-08-18 株式会社東芝 動画像符号化装置
CN100459693C (zh) 2005-11-08 2009-02-04 逐点半导体(上海)有限公司 一种运动补偿插帧装置及插帧方法
EP1855474A1 (en) 2006-05-12 2007-11-14 Sony Deutschland Gmbh Method for generating an interpolated image between two images of an input image sequence
US8068543B2 (en) * 2006-06-14 2011-11-29 Samsung Electronics Co., Ltd. Method and system for determining the reliability of estimated motion vectors
JP4868968B2 (ja) * 2006-07-31 2012-02-01 株式会社東芝 補間フレーム作成方法及び補間フレーム作成装置
JP2008042332A (ja) * 2006-08-02 2008-02-21 Toshiba Corp 補間フレーム作成方法及び補間フレーム作成装置
KR100806858B1 (ko) 2006-09-26 2008-02-22 삼성전자주식회사 고화질 영상표시장치 및 그 프레임레이트변환방법
US8509313B2 (en) * 2006-10-10 2013-08-13 Texas Instruments Incorporated Video error concealment
US8130845B2 (en) * 2006-11-02 2012-03-06 Seiko Epson Corporation Method and apparatus for estimating and compensating for jitter in digital video
US8059915B2 (en) * 2006-11-20 2011-11-15 Videosurf, Inc. Apparatus for and method of robust motion estimation using line averages
JP4869049B2 (ja) * 2006-12-08 2012-02-01 株式会社東芝 補間フレーム画像作成方法および補間フレーム画像作成装置
US8144778B2 (en) * 2007-02-22 2012-03-27 Sigma Designs, Inc. Motion compensated frame rate conversion system and method
US8254444B2 (en) * 2007-05-14 2012-08-28 Samsung Electronics Co., Ltd. System and method for phase adaptive occlusion detection based on motion vector field in digital video
US8223831B2 (en) * 2007-06-22 2012-07-17 Samsung Electronics Co., Ltd. System and method for periodic pattern detection for motion compensated interpolation
ES2630211T3 (es) 2007-07-02 2017-08-18 Nippon Telegraph And Telephone Corporation Método de codificación y descodificación escalable de imagen en movimiento usando predicción ponderada, sus dispositivos, sus programas, y medios de grabación que almacenan los programas
US8300987B2 (en) 2007-09-28 2012-10-30 Ati Technologies Ulc Apparatus and method for generating a detail-enhanced upscaled image
JP5657391B2 (ja) 2007-12-20 2015-01-21 クゥアルコム・インコーポレイテッドQualcomm Incorporated ハローを低減する画像補間
EP2234403A4 (en) 2007-12-28 2011-12-21 Sharp Kk MOBILE IMAGE ENCODER AND DECODER
JP4670943B2 (ja) 2008-11-27 2011-04-13 ソニー株式会社 監視装置、及び妨害検知方法
US8269885B2 (en) 2009-04-03 2012-09-18 Samsung Electronics Co., Ltd. Fade in/fade-out fallback in frame rate conversion and motion judder cancellation
JP5566133B2 (ja) 2010-03-05 2014-08-06 キヤノン株式会社 フレームレート変換処理装置
US8594199B2 (en) 2010-03-08 2013-11-26 Qualcomm Incorporated Apparatus and method for motion vector filtering based on local image segmentation and lattice maps

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10304371A (ja) * 1997-04-25 1998-11-13 Sharp Corp 動きベクトル検出装置
JP2003078807A (ja) * 2001-08-31 2003-03-14 Sony Corp 動きベクトル検出装置および方法、手振れ補正装置および方法、並びに撮像装置
JP2005056410A (ja) * 2003-07-31 2005-03-03 Samsung Electronics Co Ltd パターン分析に基づく動きベクトル補正装置及びその方法

Also Published As

Publication number Publication date
JP5844394B2 (ja) 2016-01-13
JP5453304B2 (ja) 2014-03-26
TW200943969A (en) 2009-10-16
JP2011508517A (ja) 2011-03-10
US20090161763A1 (en) 2009-06-25
WO2009085232A1 (en) 2009-07-09
KR20100103838A (ko) 2010-09-28
JP2014116951A (ja) 2014-06-26
US8265158B2 (en) 2012-09-11
CN101946514A (zh) 2011-01-12
CN101946514B (zh) 2014-06-04

Similar Documents

Publication Publication Date Title
KR101540138B1 (ko) 적응적 조사영역을 갖는 모션추정 장치 및 방법
RU2117412C1 (ru) Способ и устройство для сравнения сигнала изображения между соседними кадрами и оценки движения изображений
CN1303818C (zh) 运动估计和/或补偿
US8625673B2 (en) Method and apparatus for determining motion between video images
CN1262496A (zh) 使用正交变换域中的块匹配进行运动估测的方法和装置
US7197074B2 (en) Phase plane correlation motion vector determination method
CN101309385B (zh) 一种基于运动检测的去隔行处理方法
KR19990035896A (ko) 모션 벡터를 추정하는 방법, 장치 및 그 장치를 포함하는 비디오 디스플레이 장치
EP2330817A1 (en) Video signal converting system
GB2437337A (en) Measuring block artefacts in video data using an auto-correlation function
JP2000134585A (ja) 動きベクトル決定方法、画像信号のフレーム数変換方法および回路
JP2000512091A (ja) 動作ベクトル処理
JP2004526363A (ja) ビデオ符号化における中間画素高精度高速探索を実現する装置及び方法
EP1472881B1 (en) Unit for and method of estimating a current motion vector
KR20050080862A (ko) 중첩된 블록 기반 움직임 추정에 의한 움직임 보상 보간방법 및 그를 적용한 프레임 레이트 변환 장치
US7679676B2 (en) Spatial signal conversion
US20110187924A1 (en) Frame rate conversion device, corresponding point estimation device, corresponding point estimation method and corresponding point estimation program
JP3769773B2 (ja) 動きベクトル検出装置および検出方法
JPH0795591A (ja) ディジタル画像信号処理装置
KR100931110B1 (ko) 퍼지 룰 기반 에지 복원 알고리즘을 이용하는 디인터레이싱장치 및 방법
CN1249994C (zh) 转换帧频的装置和方法
JP3480015B2 (ja) 画像データの生成装置および生成方法
KR101469513B1 (ko) 영상여기신호를 이용한 다중 텍스쳐 이미지 기반 영상 처리 방법 및 장치
JP3800638B2 (ja) 画像情報変換装置および方法
Venkatesan et al. Video deinterlacing with control grid interpolation

Legal Events

Date Code Title Description
N231 Notification of change of applicant
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: 20180628

Year of fee payment: 4