KR940010241B1 - 이동 벡터 검출 방법 - Google Patents

이동 벡터 검출 방법 Download PDF

Info

Publication number
KR940010241B1
KR940010241B1 KR1019910023005A KR910023005A KR940010241B1 KR 940010241 B1 KR940010241 B1 KR 940010241B1 KR 1019910023005 A KR1019910023005 A KR 1019910023005A KR 910023005 A KR910023005 A KR 910023005A KR 940010241 B1 KR940010241 B1 KR 940010241B1
Authority
KR
South Korea
Prior art keywords
search
block
value
pixel
search position
Prior art date
Application number
KR1019910023005A
Other languages
English (en)
Other versions
KR930015828A (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 산성전자 주식회사
Priority to KR1019910023005A priority Critical patent/KR940010241B1/ko
Priority to US07/814,616 priority patent/US5173772A/en
Priority to FR9200747A priority patent/FR2685108B1/fr
Priority to DE4206280A priority patent/DE4206280C2/de
Publication of KR930015828A publication Critical patent/KR930015828A/ko
Application granted granted Critical
Publication of KR940010241B1 publication Critical patent/KR940010241B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • H04N5/145Movement estimation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • G06T7/238Analysis of motion using block-matching using non-full search, e.g. three-step search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/533Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]

Abstract

내용 없음.

Description

이동 벡터 검출 방법
제 1 도는 본 발명이 적용되는 비디오 코덱의 구성도.
제 2 도는 매크로 블럭의 구조도.
제 3 도는 블럭 매칭 알고리즘에 의한 이동 벡터 검출도.
제 4 도는 3단계 탐색방법 예시도.
제 5 도는 본 발명에 따른 ∑(bu)2의 계산에서 중복되는 부분의 예시도.
제 6 도는 제 1단계에서의 독립 연산 형태도.
제 7 도는 제 2단계에서의 독립 연산 형태도.
제 8 도는 제 3단계에서의 독립 연산 형태도.
제 9 도는 본 발명에 따른 이동 검출기 구성도.
제 10 도는 이동 검출 동작 순서도.
제 11 도는 블럭 매칭 알고리즘 루틴의 동작 순서도.
제 12 도는 본 발명에 따른 3단계 블럭 매칭 알고리즘의 동작 순서도.
본 발명은 동화상 처리 시스템에 있어서 이동 보상(Motion Compensation)방법에 관한 것으로, 특히 블럭 매칭 알고리즘(Block Matching Algorithm ; 이하 BMA라 함)의 3단계 탐색(3-step search)속도를 높이는 이동 벡터(motion vector)검출방법에 관한 것이다.
일반적으로 동화상을 처리하는 시스템의 종류는 다양하나 예를들어 영상 전화 시스템에서 주로 다루는 영상의 경우는 배경과 같이 정지되어 있는 영역이 많고 흉상과 얼굴을 주표현 대상으로 하므로 움직임 정도가 작아 화면의 변화 정도가 별로 크지 않아 연속하는 두 영상간의 상관 관계는 대단히 크다.
이와 같은 성질을 이용하여 시간의(temporal)방향으로서 리던던시(redundancy)를 줄이는 방법이 인터프레임(interframe) DPCM(Differencial Pules Code Modulation)부호화 방식이다. 상기 인터프레임 DPCM부호화 방식에서 좀더 예측 효율을 높이기 위하여 물체의 운동에 기인한 변화를 예측하는 이동 보상 인터프레임 DPCM부호화 방식이 제안되었다. 상기 이동 보상 인터프레임 DPCM부호화 방식 중에서도 블럭단위로 이동을 검출하는 BMA가 많이 쓰이고 있는 추세이다.
상기 이동보상 인터프레임 DPCM방식과 DCT(Discrete Cosine Transform)방식을 결합한 복합 부호화 방식은 현재 부호화해야 할 이미지 프레임 블럭과 이전 이미지 프레임의 유사한 블럭과의 차를 DCT하여 전송하는 것으로, 제 1 도에 도시한 바와 같은 구성을 갖는다.
포맷부(11)는 1프레임 단위의 입력 영상을 일정한 크기의 블럭으로 나누어 포맷한다. 감산기(21)에서는 상기 일정한 크기의 각 블럭을 순차적으로 직렬 입력하여 이전 프레임 정보와의 차를 검출한다. 제 1차 데이타 압축부(12)는 상기 감산기(21) 출력을 입력하여 DCT처리함으로써 제 1차로 데이타를 압축한다.
제 2차 데이타 압축부(13)에서는 상기 제1차 데이타 압축결과를 양자화하여 더 압축하고, 제 3데이타 압축부(14)는 상기 양자화 데이타 양의 통계극성을 이용하여 데이타를 압축(variable length coding)한다.
한편 데이타 신장부(17)에서는 상기 제 2차 데이타 압축부(13)에서 출력된 영상신호를 역 DCT처리하여 신장한다. 프레임메모리(19)는 이전 프레임 정보를 복원하여 저장하고 소정의 제어를 받아 이동 보상 블럭데이타를 독출한다. 루프필터(18)는 상기 이동 보상 블럭 데이타를 필터링한다.
가산기(22)는 상기 필터링한 이동 보상 블럭 데이타와 상기 역 DCT처리하여 신장된 영상신호를 가산함으로써 이전 프레임을 복원하여 상기 프레임메모리(19)에 저장되도록 한다. 이때 상기 프레임 메모리(19)는 이동 검출부(20)로부터 위치 정보(S12)를 받는다. 상기 위치 정보는 이동 벡터로서 제 3 도에 도시한 바와 같이 이전 프레임에서 현재 프레임의 블럭과 유사한 블럭의 상대적 위치를 나타낸다.
멀티플렉싱부(15)에서는 상기 제 2데이타 압축부(13)로부터 받은 정보양자화 단위 정보(S11)와 상기 이동 검출부(20)로부터 받은 위치 정보(S12)를 송수신단 상호간의 포맷에 맞추어 출력한다.
상기 멀티플렉싱 결과는 버퍼(16)를 거쳐 수신단으로 전달되는데, 상기 버퍼(16)는 자신의 입출력 속도에 맞도록 상기 제 2데이타 압축부(13)에서의 데이타 압축정도를 제어하기 위한 신호(cc)를 발생한다.
한편 제 1 도에 도시하지는 않았으나 상기 수신단에서는 이전 프레임의 정보를 저장하고 있다가 상기한 과정을 거쳐 차신호와 이동 벡터가 수신되면 상기 이전 프레임 정보에서 움직임이 발생한 부분만 바꾸어 줌으로써 현재 블럭을 복원하여 연속적인 동화상을 표현한다.
상기와 같은 복합 부호화 방식에 근거하여 BMA방식과 움직임 정도(distortion measure)에 관하여 설명한다.
그러므로 상기 DNA는 현재 부호화하려고 하는 블럭과 가장 유사한 블럭을 이전 영상에서 찾는 과정을 말한다. 즉, 현재 코팅하고자 하는 이미지 프레임(Image frame)의 블럭과 이전 이미지 프레임의 예측된 탐색영역(search area)내에서 각 탐색위치(search position)에 해당하는 블럭들을 비교하여 가장 유사한 블럭을 찾는 것이다.
BMA모듈이 복합 부호화하기내에서 해야할 일은 제한된 영역내에서 정확한 이동벡터를 찾아내는 것인바, 실시간 시스템 구현에 필요한 계산량을 가능한한 줄이면서 하드웨어의 구현이 용이한 방법으로써 3단계탐색(3-search)방법이 많이 사용되어 왔다.
상기 3단계 탐색 방법은 제 4 도에 도시한 바와 같이 3개의 단계로 이루어지며, 각 블럭간의 상이한 정도(움직임 정도)가 탐색영역 내에서 고르다고(smooth) 가정하고 처음에는 대충 찾고 두번째 및 세번째 단계에서는 정밀하게 찾는 코올스(coarse)-화인(fine) 탐색방법의 일종이다.
상기 움직임 정도를 계산하는 식으로는 NCCF(Normalized Cross-Correlation Function), MSE(Mean Square Error), MAE(Mean of the Absolute Error), MNAE(Mean Number of bits necessary to binary code the Absolute Error)의 4가지 함수를 고려해 볼 수 있는데, 이중에서도 계산이 간편한 MSE를 주로 사용한다.
여기서 M과 N은 블럭의 크기를 나타내며, I(m+i,n+j,t-τ)는 현재 부호화하고자 하는 블럭으로부터 상대적으로 (i,j)만큼 떨어진 이전 영상의 블럭의 (m,n)번째 화소의 밝기를 나타낸다.
DSP(Digital Signal Processor)를 사용하여 MSE에 의해 움직임 정도를 계산하는데는 하기와 같은 처리 시간이 소요된다.
상기 식(1)을 계산하기 위해서는 m 및 n번째에 해당하는 화소간의 차를 먼저 구하여 저장한 후 해당 블럭 M×N개의 차를 "SQRA"명령(이 명령은 DSP에서 일반적으로 사용하는 명령어로서 해당값을 제곱한 후 누적하는 명령어인데, 제곱과 누적을 한 명령 주기에 수행할 수 있다.)을 사용하여 제곱한 후 누적해서 해당 블럭에 대한 MSE값을 구하게 되며, 이때 소요되는 명령어 주기 수는 하기한 식(2)에 나타난 바와 같다.
M×N×25×4 = 100MN(cycles)…………………………………(2)
여기서 25는 탐색 화소의 수(제 4 도에서 제 1단계는 '0'로 표시한 9개이며 제 2단계와 제 3단계는 각각 'X'와 '◇'로 표시한 8개이다.)이며, 4는 한 동작당 소요되는 주기 수이다.
상기한 식(2)의 결과는 차를 저장하는데 한 화소당 3주기가 소요되고 "SORA"명령 수행에 1주기가 결함을 나타낸다.
예를들어 Ti(Texas Instruments)사의 DSP칩인 TMS 32OC25를 사용하여 움직임 정도를 계산할 경우 블럭 크기가 16×16이면 하기한 식(3)의 결과 만큼의 처리시간이 걸리게 된다.
16×16×25×4×100(nsec/cycle)=2.560㎲ec…………………………(3)
영상 전화에 대한 CCITT H.261권고안에 의하면 입력 영상의 크기는CIF로 하고 초당 10프레임을 처리할 경우 입력 영상의 공간해상도가 하기한(표 1)과 같고, 매크로 블럭(macro block)은 제 2 도에 도시한 바와 같이 16×16의 휘도성분(Y)과 8×8의 색차신호들(R-Y, B-Y)로 구성되므로,
화소클럭과 1매크로 블럭당 16×24개의 화소를 처리해야 하는 1매크로 블럭 지속시간(macro block duration)은 각각 하기한 식(4) 및 (5)와 같다.
Fp=(176×144+88×72)(pels/frame)×10(frames/sec)=380.16[kpels/sec]…………………………………………………………………………………(4)
TB=384/Fp=1010.1(㎲ec)……………………………………………(5)
즉, 처리해야 할 입력 데이타는 초당 380.16kpels만큼 입력되고, 384개의 화소로 구성되는 매크로 블럭을 처리해야 하는 할당시간은 1010.1(㎲ec)로 한정된다. 그러므로 한 매크로 블럭에 대한 움직임 정보를 1매크로 블럭 처리 시간내에서 찾으려하면 적어도 3개 이상의 DSP를 사용해야 실시간으로 영상 전화를 구현할 수 있다. 이와 같이 이동 검출 속도에 따라 필요한 DSP의 갯수가 결정되므로, 하드웨어의 양을 줄여 구성을 간단하게 함과 아울러 경제적인 측면을 고려해 볼때 이동 검출기의 구현에 있어 이동검출 속도가 갖는 의미는 매우 크다고 하겠다.
현재는 서브샘플링(subsampling)에 의한 3단계 BMA방식으로 처리시간을 좀더 단축함으로써 2개의 DSP칩(TMS 320C26)을 사용하여 이동 검출기를 실시간 구현하기에 이르렀다. 이는 1990년 김기환씨에 의해 한국과학기술원에 석사학위 논문으로 제출된 바 있는 "DSP소자를 이용한 실시간 이동 검출기의 구현"에 상세히 게재되어 있다.
그런데 상기한 종래의 방법은 DSP의 연산 구조 측면을 고려해 볼때 불합리한 방법이었다. 왜냐하면 전술한 바와 같이 현 프레임과 이전 프레임간의 대응 화소차를 먼저 구하여 일단 저장한 다음 그 값들을 각각 제곱하여 더하는 방식을 취하고 있었으므로 승산후 가산 및 누적을 실시하는 DSP의 연산 특성을 제대로 이용하지 못하여 연산처리 속도면에서 적절한 효과를 거두지 못했기 때문이다.
따라서 본 발명의 목적은 3단계 BMA의 처리 속도를 높이는 이동 벡터 검출 방법을 제공함에 있다.
이하 본 발명을 첨부한 도면을 참조하여 상세히 설명한다.
전술한 바와 같이 MSE움직임 정도를 계산하는 식(1)에서 편의상 I(m,n,t)를 ak라 하고 I(m+i, n+j,t-τ)를 bk1가 가정할 경우 상기 식(1)은 하기 식(b)와 같이 나타낼 수 있다.
이때 1은 탐색위치 인덱스(search position index)1,…,25이고, 합산기호(summation : ∑)는 K=1,…M×N의 블럭 전체 화소에 일차원적으로 수행한다.
그런데 DSP의 연산구조는 전술한 바와 같이 승산기를 거친 후 가산기와 누적기를 거치는 순서를 갖고 있으므로, 상기 DSP의 연산 구조를 합리적으로 이용하기 위해서는 상기 식(6)을 하기 식(7)가 같이 바꾸어 처리해야 한다.
DSP의 "MAC"명령은 승산과 가산을 동시에 1주기로 처리한다.
그러므로 "MAC"명령은 승산과 가산을 동시에 주기로 처리한다.
그러므로 "MAC"명령을 사용하여 MSE를 연산하는데 소요되는 명령 주기를 계산해보면,
1항(ak)2: M×N×1=MㆍN주기
2항(bk1)2: M×N×25×1=25MㆍN주기
3항akㆍbk1 : M×N×25=25MㆍN주기
이때 M×N은 해당 블럭의 화소수이고, 25는 탐색 위치의 수이다.
이와 같이 각 항별로 분리하여 처리하게 되면 MSE를 계산하는데 총 51×M×N주기 정도의 시간이 걸리게 되어 전술한 식(2)에서 계산되었던 100×M×N주기에 비해서 51%의 처리 시간이 소요된다.
그러므로 49%연산처리 시간을 절약할 수 있다.
그런데 상기 3항 연산은 독립적이므로 더 줄일 수 없지만, 2항 연산은 각 탐색 위치마다 중복되어 연산되어지는 부분이 생기게 되므로 중복 연산 부분을 적절히 처리하여 처리시간을 더욱 줄일 수 있다. 예를들면 첫번째 단계에서 탐색위치(1)과 (5)에 대한 중복 연산 부분은 제 5 도에 점선으로 표시한 안쪽 영역만큼이다.
탐색 위치가 (1)일때 (1=1)현재의 블럭과 비교되어지는 이전 프레임의 블럭은 실선으로 표시된 부분(bk5)이고, 점선으로 표시된 블럭은 탐색 위치가 (5)일때의 현재의 블럭과 비교되어지는 이전 프레임에서의 블럭이다.
결국 연산해야 할 식은 ∑(bk1)2과 ∑(bk5)2이지만 겹쳐진 부분은 한번만 연산해 놓으면 다음 탐색 위치에서는 겹쳐지지 않은 부분에 대해서만 계산을 하여 이미 계산해둔 중복된 부분의 계산결과 값과 더 하기만 하면 되므로 2항 연산을 할때 연산처리 시간을 줄일 수 있다.
영상전화에 대한 CCITT H.261권고안에서는 이동검출에 쓰이는 블럭의 크기를 휘도(luminence)성분에 대한 16×16으로 권고해 놓았기 때문에 본 발명은 MSE를 계산해야 할 블럭의 크기를 결정하는 M과 N을 각각 16으로 하여 처리 시간을 계산한다.
±4화소의 간격을 갖는 제 1단계의 경우 전체 탐색 영역중에서 독립적으로 연산되어지는 부분을 표시하면 제 6 도와 같이 25개의 부분으로 나누어진다.
각 탐색 위치에 해당하는 블럭에서 2번째 항의 연산 값인 ∑(bk1)2(1=1,2,…25)의 계산값은 각각 9개씩의 독립적인 부분들에 대한 연산값인(bk)2들의 합으로 구해진다.(단, sec는 각 부분을 의미한다.)
그러므로 제 1단계에서 2번째 항의 연산을 수행하는데 걸리는 총 시간은 각 부분마다 해당화소들을 제곱하여 더하는 명령 "SQRA"과 더한값을 저장하는 명령 "SAC"을 수행하는데 필요한 주기수와 각 탐색 위치에서의 블럭에 해당하는 9개의 부분값들을 합하는데 필요한 주기수의 합으로 나타낼 수 있으며, 이는 하기 식(8)과 같이 나타낼수 있다.
상기 PL은 제곱 및 누적에 필요한 주기수를 나타내고, S는 저장에 필요한 주기수를 나타낸다.
그러므로 상기 제 6 도의 경우는 601주기가 필요하다.
왜냐하면 코너(coner)부분(S1, S2, S4, S5, S6, S7, S9, S10, S16, S17, S19, S20, S21, S22, S24, S25)의 수가 16이고, 에지(edge)부분(S3, S8, S11, S12, S14, S15, S18, S23)의 수가 8개이며 중앙부분(S13)의 화소수에 1을 더한 값이 65이고, 중앙부분(S13)이 하나이므로 '17×16+33×8+65×1'한 결과는 601주기가 된다.
또한 각 탐색 위치마다 그 블럭에 해당하는 9개의 부분을 더하는데 각각 10개의 주기가 소요되는데, 예를들어 탐색위치(1)에 2항의 연산은 제 6 도에서 S1, S2, S3, S6, S7, S8, S11, S12, S13의 9개 부분을 더하면 된다. 그러므로 제 1단계에서의 탐색 위치 수가 9이고 한 탐색 위치당 9개의 부분값을 합하는데 소요주기가 수가 10이기 때문에 각 탐색 위치에서 해당 부분들의 합산 결과값들을 합하는데 소요되는 총주기수는 90이다.
결국 제 1단계에서의 2번째 항의 연산에 소요되는 총시간은 691주기가 된다.
한편 제 2단계에서는 제 7 도에 도시한 바와 같이 25개의 부분으로 나눌 수 있는데, 상기한 첫번째 단계와 마찬가지 방법으로 이때 걸리는 처리 시간을 계산하면 하기와 같다.
5×16+25×8+144×1 = 424주기
10×8 = 80주기
그러므로 총소요 시간은 상기 두 값을 합한 504주기가 된다.
다음으로 제 3단계에서는 제 8 도에 도시한 바와 같이 25개의 부분으로 나눌 수 있고 처리 시간을 계산하면 하기와 같다.
1×6+14×8+196×1 = 324주기
10×8 = 80
그러므로 총 소요 시간은 상기 두 값을 합한 404주기가 된다.
결국 2항 ∑(bk1)2(1=1,2,…25)연산을 수행하기 위해서 소요되는 총처리 시간은 제 1단계 소요시간 691과 제 2 및 제 3단계 각각의 소요시간이 각각 504와 404이므로 이를 모두 합한 1599주기이다.
이와 같은 방식으로 MSE를 계산하는데 걸리는 처리 시간은 16×16기준 블럭에 대하여
1 항((ak)2)은 25주기이고, 2 항((bk1)2)은 1599주기이며, 3 항(akㆍbk1)은 6400주기이므로 총합은 8255주기이다(단, 1=1, 2, …, 25).
상기 총합은 전술한 식(2)의 계산결과(100×M×N=100×16×16)인 25600주기의 32.2%이다.
그러므로 본 발명에 의한 MSE계산 방식은 종래의 계산방식에 비하여 66.8%의 연산 처리 시간을 절약할 수 있다.
이와 같이 3단계 탐색 BMA를 처리하는데 걸리는 시간이 BMA 프로세서에 할당된 시간보다 적게 소요되면 제 9 도에 도시한 바와같이 하나의 DSP 칩(BMA 프로세서(PR))만으로도 실시간 이동 검출부(20)를 구현할 수 있다.
상기 하나의 DSP 칩을 사용하여 구현한 이동 검출부(20)는 제 10 도에 도시한 바과 같은 순서로 동작한다.
파워업 리셋(POWER UP Reset)인터럽트에 의해 BMA 프로세서의 내부 데이타 메모리(on chip data memory)와 외부 메모리를 초기값으로 초기화시키고 BMA 처리시 필요한 상수값들을 생성하여 저장하는 작업들을 수행한다. 상기 초기화 루틴을 수행 완료한 후에는 사용자 인터렙트에 의해 BMA처리 루틴을 수행한 후, 대기(idle)상태에서 있다가 다음 사용자 인터럽트가 들어오면 다시 BMA루틴을 수행하며 이와 같은 동작을 반복한다.
상기 BMA루틴의 세부순서는 제 11 도에 도시한 바와 같다. 즉, 사용자 인터럽트가 발생하게 되면 제9도에 도시한 바와같이 BMA 프로세서(PR)의 한 입력단과 포멧부(11) 사이에 접속된 입력 버퍼(IB)에 저장되어 있는 매크로 블럭중 휘도 성분을 블럭단위로 입력하여 내부 메모리에 저장한다.
그리고 이전 프레임상에서 가져올 탐색 영역 블럭의 초기 어드레스를 계산한 후 전술한 제 1단계와 제 2단계 그리고 제 3단계의 순서에 따라 이동벡터를 찾아 상기BMA 프로세서(PR)의 한 출력단에 연결된 래치(LA)를 통해 멀티플렉싱부(15)로 출력하고, 이렇게 구해진 이동 벡터에 의해 예측된 블럭을 이전 프레임 메모리에서 찾아 상기 BMA 프로세서(PR)의 다른 출력단과 연결된 출력 버퍼(OB)로 블럭 이동시켜 루트필터(18)에서 필터링한 다음 감산기(21)에서 현재 프레임 블럭과의 차를 검출한다. 이와 같은 모든 작업이 끝나게 되면 다음 사용자 인터럽트가 발생할때까지 기다리게 된다.
다음으로 각 단계별 BMA 수행과정에 대해 제 12 도를 참조하여 자세히 설명한다.
우선 MSE 계산식의 첫째항()(ak)2을 계산하여 저장하고, 제 1단계 탐색을 행하기 위해서 이전 프레임 메모리에서 가져올 탐색 영역의 초기 어드레스를 결정한다. 즉 현재의 매크로 블럭의 위치에서 ±4화소씩 떨어진 9개의 메뉴벡터(menu vector)에 해당되는 탐색 블럭들을 포함하는 영역의 초기 어드레스를 정한다. 상기 초기 어드레스로부터 탐색 영역 데이타를 입력하여 내부 메모리에 저장한다.
다음에는 전술한 바와 같이 25개의 부분으로 나누어진 각 부분에 대하여 ((bk1)2값을 계산하여 저장한 후 이 값들로써 각 탐색위치에서의 ((bk1)2값을 계산하여 저장한다(단, 1=1,…, 25)
다음으로 각 탐색 위치에서 2akbk값을 계산한 후 9개의 탐색 위치에 대한 MSE((ak)2-2∑akbk1+(bk1)2)값을 계산한다. 이런 과정을 거친후 상기 9개의 MSE에 대해 가장 적은 값의 MSE를 결정하게 된다.
이후의 제 2단계 탐색과 제 3단계 탐색에서 MSE를 구하는 과정은 상기한 제 1단계 탐색 과정과 동일하나 메뉴벡터의 간격이 각각 ±2, ±1화소씩 떨어져 있기 때문에 ∑(bk1)2을 계산하기 위해서 제 11 도와 제 12 도에 도시한 바와 같이 상기 제 1단계 부분과는 다른 형태의 부분을 만든다는 점이 다르다. 또한 이전 단계에서 최소 MSE로 결정된 메뉴 벡터를 사용하게 됨으로 새로 생성해야 할 메뉴 벡터는 8개씩이 되고 MSE의 계산 또한 8번 한다는 점이 다를 뿐이다.
상술한 바와 같이 본 발명은 3단계 탐색 방법을 이용하여 이동 검출 동작을 수행함에 있어 DSP칩의 구조적인 특성에 잘 맞도록 하여 연산시간을 더욱 줄임으로써 DSP칩 하나만으로 실시간 이동 검출기의 구현이 가능하여 동일한 정도의 성능을 유지하는데 필요한 하드웨어의 양을 줄이는 경제적인 효과가 있다.

Claims (3)

  1. 승산후 가산 및 누적 동작을 실시하는 연산 수단을 구비한 영상 처리 시스템에서 현재 매크로 블럭의 휘도 성분 데이타를 입력하고 탐색 영역의 초기 어드레스를 생성하여 이동 벡터를 검출하는 방법에 있어서, 상기 입력된 현재 매크로 블럭내의 각 화소의 밝기값을 제곱한 그 다음 그 결과를 제 1합산하는 제 1과정과, 상기 초기 어드레스에 해당하는 이전 프레임의 탐색 영역 데이타를 입력하는 제 2과정과, 상기 이전 프레임의 탐색 영역에서 일정한 화소 간격을 두고 소정수의 탐색위치를 설정하는 제 3과정과, 상기 각 탐색위치를 기준하여 상기 현재 매크로 블럭과 동일한 크기의 블럭들을 설정하고 상기 설정된 각 블럭별로 해당블럭에 속하는 화소의 밝기값을 제곱한 다음 제 2합산하는 제 4과정과, 상기 현재 매크로 블럭과 각 탐색위치를 기준한 블럭의 대응되는 화소 밝기값을 곱하고 그 값들을 제 3합산한 후 2배하는 제 5과정과, 각 탐색 위치를 기준한 블럭별로 상기 제 1합산값에 상기 제 2합산값을 더하고 상기 제 3합산값의 2배값을 감산하여 그중 최소값을 검출하는 제 6과정과, 상기 제 6과정 수행후 3단계 수행완료여부를 체크하여 제 3단계 탐색완료시 최소값을 갖는 블럭의 탐색 위치를 이동 벡터로 설정하고 종료하며 완료되지 않았을시 상기최소값을 갖는 블럭의 탐색 위치를 기준으로 전단계보다 좁은 화소 간격을 두고 소정수의 탐색 위치를 설정한 다음 상기 제 4과정으로 루핑하는 제 7과정으로 이루어짐을 특징으로 하는 이동 벡터 검출 방법.
  2. 제 1 항에 있어서, 제 4과정이 각 탐색 위치를 기준하여 상기 현재 매크로 블럭과 동일한 크기의 블럭들을 설정하고 이들 모두를 포함하는 영역에 대한 독립 연산 부분들을 설정하며 상기 독립 연산 부분 각각에 대하여 해당 부분에 속하는 화소의 밝기값을 제곱한 다음 합산하여 독립 연산값을 계산하는 제 1단계와, 상기 탐색 위치를 기준한 블럭별로 대응되는 상기 독립 연산 부분의 독립 연산값을 제 2합산하는 제 2단계로 이루어짐을 특징으로 하는 이동 벡터 검출 방법.
  3. 승산후 가산 및 누적 동작을 실시하는 연산 수단을 구비한 영상 처리 시스템에서 현재 매크로 블럭의 휘도 성분 데이타를 입력하고 탐색 영역의 초기 어드레스를 생성하여 이동 벡터를 검출하는 방법에 있어서, 상기 입력된 현재 매크로 블럭내의 각 화소의 밝기값을 제곱한 그 다음 그 결과를 제 1합산하는 제 1과정과, 상기 초기 어드레스에 해당하는 이전 프레임의 탐색 영역 데이타를 입력하는 제 2과정과, 상기 이전 프레임의 탐색 영역에서 일정한 화소 간격을 두고 소정수의 탐색 위치를 설정하는 제 3과정과, 각 탐색 위치를 기준하여 상기 현재 매크로 블럭과 동일한 크기의 블럭들을 설정하고 이들 모두를 포함하는 영역에 대한 독립연산 부분들을 설정하며 상기 독립 연산 부분 각각에 대하여 해당부분에 속하는 화소의 밝기값을 제곱한 다음 합산하여 독립 연산값을 계산하는 제 4과정과, 상기 탐색 위치를 기준한 블럭별로 대응되는 상기 독립 연산 부분의 독립 연산값을 제 2합산하는 제 5과정과, 상기 현재 매크로 블럭과 각 탐색 위치를 기준한 블럭간의 대응되는 화소 밝기값을 곱하고 그 값들을 제 3합산한 후 2배하는 제 6과정과, 각 탐색 위치를 기준한 블럭별로 상기 제 1합산값에 상기 제 2합산값을 더하고 상기 제 3합산값의 2배값을 감산하여 그중 최소값을 검출하는 제 7과정과, 상기 제 7과정 수행후 3단계 수행완료 여부를 체크하여 3단계 탐색 완료시 최소값을 갖는 블럭의 탐색위치를 이동벡터로 설정하고 종료하며 완료되지 않았을시 상기 최소값을 갖는 블럭의 탐색 위치를 기준으로 전단계보다 좁은 화소 간격을 두고 소정수의 탐색위치를 설정한 다음 상기 제 4과정으로 루핑하는 제 8과정으로 이루어짐을 특징으로 하는 이동 벡터 검출 방법.
KR1019910023005A 1991-12-14 1991-12-14 이동 벡터 검출 방법 KR940010241B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1019910023005A KR940010241B1 (ko) 1991-12-14 1991-12-14 이동 벡터 검출 방법
US07/814,616 US5173772A (en) 1991-12-14 1991-12-30 Method for detecting motion vector
FR9200747A FR2685108B1 (fr) 1991-12-14 1992-01-24 Procede de detection de vecteur mouvement.
DE4206280A DE4206280C2 (de) 1991-12-14 1992-02-28 Verfahren zum Aufzeigen eines Bewegungsvektors

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019910023005A KR940010241B1 (ko) 1991-12-14 1991-12-14 이동 벡터 검출 방법

Publications (2)

Publication Number Publication Date
KR930015828A KR930015828A (ko) 1993-07-24
KR940010241B1 true KR940010241B1 (ko) 1994-10-22

Family

ID=19324817

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019910023005A KR940010241B1 (ko) 1991-12-14 1991-12-14 이동 벡터 검출 방법

Country Status (4)

Country Link
US (1) US5173772A (ko)
KR (1) KR940010241B1 (ko)
DE (1) DE4206280C2 (ko)
FR (1) FR2685108B1 (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE469866B (sv) * 1991-04-12 1993-09-27 Dv Sweden Ab Metod för estimering av rörelseinnehåll i videosignaler
JP3068304B2 (ja) * 1992-01-21 2000-07-24 日本電気株式会社 動画像符号化方式および復号化方式
JPH05236466A (ja) * 1992-02-25 1993-09-10 Nec Corp 動き補償フレーム間予測画像符号化装置及び方法
US5461423A (en) * 1992-05-29 1995-10-24 Sony Corporation Apparatus for generating a motion vector with half-pixel precision for use in compressing a digital motion picture signal
KR0166724B1 (ko) * 1993-05-08 1999-03-20 김광호 반화소정확도를 갖는 동벡터추정방법 및 그 장치
KR950014343B1 (ko) * 1993-05-20 1995-11-24 한국방송공사 고화질 티브(hdtv)의 화상데이타 움직임 추정방법 및 그 장치
JP2636674B2 (ja) * 1993-05-25 1997-07-30 日本電気株式会社 動画像の動きベクトル検出装置
DE19549500C2 (de) * 1994-01-21 2000-05-25 Mitsubishi Electric Corp Bewegungsvektor-Ermittlungseinrichtung
JPH07250328A (ja) 1994-01-21 1995-09-26 Mitsubishi Electric Corp 動きベクトル検出装置
US6160900A (en) * 1994-02-04 2000-12-12 Canon Kabushiki Kaisha Method and apparatus for reducing the processing time required in motion vector detection
US5537155A (en) * 1994-04-29 1996-07-16 Motorola, Inc. Method for estimating motion in a video sequence
US5572248A (en) 1994-09-19 1996-11-05 Teleport Corporation Teleconferencing method and system for providing face-to-face, non-animated teleconference environment
KR0178231B1 (ko) * 1995-08-10 1999-05-01 배순훈 계층적인 움직임 추정 기법을 이용하는 움직임 벡터 검출 방법 및 장치
US5706059A (en) * 1994-11-30 1998-01-06 National Semiconductor Corp. Motion estimation using a hierarchical search
US5689589A (en) * 1994-12-01 1997-11-18 Ricoh Company Ltd. Data compression for palettized video images
US6384859B1 (en) * 1995-03-29 2002-05-07 Sanyo Electric Co., Ltd. Methods for creating an image for a three-dimensional display, for calculating depth information and for image processing using the depth information
US5926221A (en) * 1995-08-18 1999-07-20 Texas Instruments Incorporated Method and apparatus for improved video coding using a center-biased orthogonal search technique and a zero block predictor module
US5682209A (en) * 1995-11-13 1997-10-28 Tektronix, Inc. Motion estimation using limited-time early exit with prequalification matrices and a predicted search center
US5790133A (en) * 1996-02-27 1998-08-04 Hewlett-Packard Company Method of rapidly displaying large data records retrieved by deep memory digital oscilloscopes and logic analyzers
US6008851A (en) * 1996-05-23 1999-12-28 The Regents Of The University Of California Method and apparatus for video data compression
KR100209413B1 (ko) * 1996-05-23 1999-07-15 전주범 블럭-기반 비디오 신호 부호화 시스템에 이용하기 위한그리드 결정방법
EP0825778A3 (en) * 1996-08-22 1998-06-10 Cirrus Logic, Inc. Method for motion estimation
US6014181A (en) * 1997-10-13 2000-01-11 Sharp Laboratories Of America, Inc. Adaptive step-size motion estimation based on statistical sum of absolute differences
US6097851A (en) * 1998-03-31 2000-08-01 Agilent Technologies Low latency correlation
TW376659B (en) * 1998-05-21 1999-12-11 Nat Science Council Motion estimator using 3-step hierarchical search block-matching algorithm
US6259737B1 (en) * 1998-06-05 2001-07-10 Innomedia Pte Ltd Method and apparatus for fast motion estimation in video coding
KR20010045766A (ko) * 1999-11-08 2001-06-05 오길록 상태천이도를 이용하여 제어부를 구현한 움직임 추정 장치
US20060159170A1 (en) * 2005-01-19 2006-07-20 Ren-Wei Chiang Method and system for hierarchical search with cache
US8179967B2 (en) * 2005-07-05 2012-05-15 Stmicroelectronics S.A. Method and device for detecting movement of an entity provided with an image sensor
US8300015B2 (en) * 2005-07-05 2012-10-30 Stmicroelectronics S.A. Method of detecting the movement of an entity equipped with an image sensor and device for implementing same

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0197945A1 (en) * 1984-09-28 1986-10-22 Motorola, Inc. A digital signal processor for single cycle multiply/accumulation
EP0290085B1 (de) * 1987-05-06 1996-03-20 Philips Patentverwaltung GmbH System zur Übertragung von Videobildern
EP0330455A3 (en) * 1988-02-22 1990-07-04 Kabushiki Kaisha Toshiba Image encoding apparatus
CA1311063C (en) * 1988-12-16 1992-12-01 Tokumichi Murakami Digital signal processor

Also Published As

Publication number Publication date
FR2685108B1 (fr) 1994-09-23
US5173772A (en) 1992-12-22
DE4206280C2 (de) 1995-06-01
DE4206280A1 (de) 1993-07-01
KR930015828A (ko) 1993-07-24
FR2685108A1 (fr) 1993-06-18

Similar Documents

Publication Publication Date Title
KR940010241B1 (ko) 이동 벡터 검출 방법
EP0720355B1 (en) Apparatus for determining motion vectors through the use of an adaptive median filtering technique
KR950009699B1 (ko) 움직임벡터 검출방법 및 장치
US5859668A (en) Prediction mode selecting device in moving image coder
JP3183155B2 (ja) 画像復号化装置、及び、画像復号化方法
EP0593099B1 (en) Apparatus for inter-frame predictive encoding of video signal
US5347309A (en) Image coding method and apparatus
JP3230263B2 (ja) 動きベクトル検出回路
JP3500634B2 (ja) 動きベクトル検出装置
JPH0795594A (ja) 半画素精度の動きベクトル検出方法および装置
CN101073269A (zh) 用于视频编码的运动估计技术
JP2684941B2 (ja) 画像符号化方法及び画像符号化装置
EP0720356B1 (en) Apparatus for determining motion vectors
JP3283159B2 (ja) ソフトウェアによる画像符号化方法
EP1460854A1 (en) Moving picture compression/coding apparatus and motion vector detection method
EP0731612B1 (en) Apparatus for encoding a video signal using search grids for motion estimation and compensation
US6141449A (en) Coding mode determination system
JP3067608B2 (ja) 映像信号符号化装置
US20050131979A1 (en) Apparatus for calculating absolute difference value, and motion estimation apparatus and motion picture encoding apparatus which use the apparatus for calculating the absolute difference value
KR0152014B1 (ko) 화상데이타압축에서의 움직임추정방법 및 그 장치
KR100240620B1 (ko) 양방향의 반화소 움직임 추정을 위한 대칭 탐색 윈도우를 형성하는 방법 및 장치
JP2916027B2 (ja) 画像符号化装置
JPH0420088A (ja) フレーム間符号化装置
JPH0614739B2 (ja) 画像信号の動き補償フレ−ム間予測符号化・復号化方法とその装置
KR100635009B1 (ko) 화면 전체의 움직임을 고려한 움직임예측방법 및 그 장치

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20050929

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee