KR940010241B1 - 이동 벡터 검출 방법 - Google Patents
이동 벡터 검출 방법 Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/14—Picture signal circuitry for video frequency region
- H04N5/144—Movement detection
- H04N5/145—Movement estimation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/223—Analysis of motion using block-matching
- G06T7/238—Analysis of motion using block-matching using non-full search, e.g. three-step search
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/43—Hardware specially adapted for motion estimation or compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/533—Motion 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과정과, 상기 초기 어드레스에 해당하는 이전 프레임의 탐색 영역 데이타를 입력하는 제 2과정과, 상기 이전 프레임의 탐색 영역에서 일정한 화소 간격을 두고 소정수의 탐색위치를 설정하는 제 3과정과, 상기 각 탐색위치를 기준하여 상기 현재 매크로 블럭과 동일한 크기의 블럭들을 설정하고 상기 설정된 각 블럭별로 해당블럭에 속하는 화소의 밝기값을 제곱한 다음 제 2합산하는 제 4과정과, 상기 현재 매크로 블럭과 각 탐색위치를 기준한 블럭의 대응되는 화소 밝기값을 곱하고 그 값들을 제 3합산한 후 2배하는 제 5과정과, 각 탐색 위치를 기준한 블럭별로 상기 제 1합산값에 상기 제 2합산값을 더하고 상기 제 3합산값의 2배값을 감산하여 그중 최소값을 검출하는 제 6과정과, 상기 제 6과정 수행후 3단계 수행완료여부를 체크하여 제 3단계 탐색완료시 최소값을 갖는 블럭의 탐색 위치를 이동 벡터로 설정하고 종료하며 완료되지 않았을시 상기최소값을 갖는 블럭의 탐색 위치를 기준으로 전단계보다 좁은 화소 간격을 두고 소정수의 탐색 위치를 설정한 다음 상기 제 4과정으로 루핑하는 제 7과정으로 이루어짐을 특징으로 하는 이동 벡터 검출 방법.
- 제 1 항에 있어서, 제 4과정이 각 탐색 위치를 기준하여 상기 현재 매크로 블럭과 동일한 크기의 블럭들을 설정하고 이들 모두를 포함하는 영역에 대한 독립 연산 부분들을 설정하며 상기 독립 연산 부분 각각에 대하여 해당 부분에 속하는 화소의 밝기값을 제곱한 다음 합산하여 독립 연산값을 계산하는 제 1단계와, 상기 탐색 위치를 기준한 블럭별로 대응되는 상기 독립 연산 부분의 독립 연산값을 제 2합산하는 제 2단계로 이루어짐을 특징으로 하는 이동 벡터 검출 방법.
- 승산후 가산 및 누적 동작을 실시하는 연산 수단을 구비한 영상 처리 시스템에서 현재 매크로 블럭의 휘도 성분 데이타를 입력하고 탐색 영역의 초기 어드레스를 생성하여 이동 벡터를 검출하는 방법에 있어서, 상기 입력된 현재 매크로 블럭내의 각 화소의 밝기값을 제곱한 그 다음 그 결과를 제 1합산하는 제 1과정과, 상기 초기 어드레스에 해당하는 이전 프레임의 탐색 영역 데이타를 입력하는 제 2과정과, 상기 이전 프레임의 탐색 영역에서 일정한 화소 간격을 두고 소정수의 탐색 위치를 설정하는 제 3과정과, 각 탐색 위치를 기준하여 상기 현재 매크로 블럭과 동일한 크기의 블럭들을 설정하고 이들 모두를 포함하는 영역에 대한 독립연산 부분들을 설정하며 상기 독립 연산 부분 각각에 대하여 해당부분에 속하는 화소의 밝기값을 제곱한 다음 합산하여 독립 연산값을 계산하는 제 4과정과, 상기 탐색 위치를 기준한 블럭별로 대응되는 상기 독립 연산 부분의 독립 연산값을 제 2합산하는 제 5과정과, 상기 현재 매크로 블럭과 각 탐색 위치를 기준한 블럭간의 대응되는 화소 밝기값을 곱하고 그 값들을 제 3합산한 후 2배하는 제 6과정과, 각 탐색 위치를 기준한 블럭별로 상기 제 1합산값에 상기 제 2합산값을 더하고 상기 제 3합산값의 2배값을 감산하여 그중 최소값을 검출하는 제 7과정과, 상기 제 7과정 수행후 3단계 수행완료 여부를 체크하여 3단계 탐색 완료시 최소값을 갖는 블럭의 탐색위치를 이동벡터로 설정하고 종료하며 완료되지 않았을시 상기 최소값을 갖는 블럭의 탐색 위치를 기준으로 전단계보다 좁은 화소 간격을 두고 소정수의 탐색위치를 설정한 다음 상기 제 4과정으로 루핑하는 제 8과정으로 이루어짐을 특징으로 하는 이동 벡터 검출 방법.
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)
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)
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 |
-
1991
- 1991-12-14 KR KR1019910023005A patent/KR940010241B1/ko not_active IP Right Cessation
- 1991-12-30 US US07/814,616 patent/US5173772A/en not_active Expired - Lifetime
-
1992
- 1992-01-24 FR FR9200747A patent/FR2685108B1/fr not_active Expired - Fee Related
- 1992-02-28 DE DE4206280A patent/DE4206280C2/de not_active Expired - Fee Related
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 |