KR0178302B1 - 양방향 병렬 파이프라인 구조에 근거한 탐색 이동 예측처리기 - Google Patents
양방향 병렬 파이프라인 구조에 근거한 탐색 이동 예측처리기 Download PDFInfo
- Publication number
- KR0178302B1 KR0178302B1 KR1019950047886A KR19950047886A KR0178302B1 KR 0178302 B1 KR0178302 B1 KR 0178302B1 KR 1019950047886 A KR1019950047886 A KR 1019950047886A KR 19950047886 A KR19950047886 A KR 19950047886A KR 0178302 B1 KR0178302 B1 KR 0178302B1
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- search
- search area
- data
- basic processing
- 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/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
- H04N19/433—Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
-
- 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/436—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 using parallelised computational arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 양방향 병렬 파이프라인 구조에 근거한 탐색 이동 예측처리기에 관한 것으로서, 움직이는 영상의 이동 예측을 위한 알고리즘중에 하나인 완전탐색 블럭정합 알고리즘을 이용, 탐색블럭 정합연산시 요구되는 클럭사이클 수를 줄여 고속예측이 가능하도록 한 것이다.
이와같은 본 발명의 양방향 병렬 파이프라인 구조에 근거한 탐색 이동 예측처리기는 외부의 제1, 제2클럭제어신호에 따라 외부의 탐색 영 데이타를 각 단위별로 입력받아 저장 출력하는 제2탐색영역 메모리와; 상기 제1, 제2클럭제어신호에 따라 상기 제1탐색영역 메모리부터 입력되는 탐색영역 데이타를 저장하여 출력하는 제1탐색영역 외부의 기준블럭 데이타를 저장하여 출력하는 기준블럭 메모리와; 상기 기준블럭 메모리에 저장된 이전 또는 현재의 기준블럭 데이타와 제1, 제2탐색영역 메모리의 탐색영역 데이타에 대한 차의 절대값을 구하여 변위벡타를 1비트씩 순차 출력하는 기본처리소자 어레이수단과; 상기 기본처리소자 어레이수단에서 제공되는 누적값을 수평 수직으로 비교하여 이동벡터와 최소 절대 오차값을 구하는 비트순차 비교수단으로 이루어짐으로써 달성된다.
Description
제1도는 일반적인 비디오 코덱용 영상압축기에서의 완전탐색 블럭정합 알고리즘 및 변위벡터의 개념도.
제2도는 제1도의 영상탐색 처리를 위한 기본처리소자의 구성도.
제3도는 종래의 이동 예측기의 제1실시예 구성도.
제4도는 종래의 이동 예측기의 제2실시예 구성도.
제5도는 본 발명 양방향 파이프라인 구조에 근거한 탐색 이동 예측기의 실시예 구성도.
제6도는 제5도에서 제안한 기본 처리소자의 상세 구성도.
제7도는 제5, 제6도에 따른 제1, 제2탐색영역 메모리에 저장되는 이전 프레임의 탐색영역과 3개의 부영역을 보인 도.
제8도는 제5도에서 제안한 제1, 제2탐색영역 메모리를 보다 상세하게 도시한 도.
제9도는 제8도의 제2탐색영역 메모리를 보다 상세하게 보인 도.
제10도는 제8도의 제1탐색영역 메모리를 보다 상세하게 보인 도.
제11도는 제5도의 제1, 제2탐색영역 메모리의 동작 타이밍도로서,
(a)는 제1탐색영역 메모리에 의한 기본처리소자 어레이부의 동작 타이밍도이고,
(b)는 제2탐색영역 메모리에 의한 기본처리소자 어레이부의 동작 타이밍도이며,
(c)는 제1, 제2탐색영역 메모리에 입력되는 제2클럭제어신호이고,
(d)는 제1, 제2탐색영역 메모리에 제공되는 제1클럭제어신호이다.
제12도는 제5도에 따른 탐색영역 데이타의 이동 동작도.
제13도는 제5도에 따른 이동예측을 위한 제1, 제2탐색영역메모리의 동작 설명도로서,
(a)는 새로운 기준블럭에 대해 이동 예측을 수행시 초기에 이동 예측기내의 제1, 제2탐색영역 메모리에 존재하는 데이타이고,
(b)는 제1선입선출부에 존재하는 데이타이며,
(c)는 제2선입선출부에 존재하는 데이타이고,
(d)는 이전 프레임으로부터 직접 데이타를 읽어오는 상태도이다.
제14도는 제5도의 이동 예측기에 제3부영역의 데이타를 전달하는 구성을 보인 도.
* 도면의 주요부분에 대한 부호의 설명
400 : 제1탐색영역 메모리 401 : 기본처리소자 어레이부
402 : 제2탐색영역 메모리 403 : 기준블럭 메모리
404 : 비트순차 비교기
본 발명은 화상전화, 화상회의 시스템에서의 양방향 병렬 파이프라인 구조에 근거한 완전탐색 이동 예측처리에 관한 것으로, 좀더 상세하게는 움직이는 영상의 이동 예측을 위한 알고리즘중에 하나인 완전탐색 블럭정합 알고리즘을 이용하여 탐색블럭 정합 연산시 요구되는 클럭사이클 수를 현저히 줄이고 고속 이동 예측이 가능하도록 하는 양방향 병렬 파이프라인 구조에 근거한 탐색 이동 예측처리기(MEP ; Motoin Estimati on Processor)에 관한 것이다.
일반적으로 화상전화, 화상회의 시스템에 대한 화상 압축 표준 알고리즘인 블럭정합 알고리즘 및 변위 벡터의 기본 개념은 제1도와 같다.
상기에서, 블럭정합 알고리즘이란 제1도의 (a)에서와 같이, 현재 프레임을 고정된 크기의 블럭(이하, 기준블럭이라 칭함)(RB ; ReferenceBlock)으로 나누어 각각의 블럭영역이 독립적인 변위를 한다는 가정하에 이루어지는 것으로, 이때 제1도의 (a)와 같이, 현재 프레임의 기준블럭(RB)과 동일한 위치의 이전 프레임의 블럭을 중심으로 하여 정해진 영역(이하, 탐색영역이라 칭함)(SA ; Search Area)내에서 블럭단위의 탐색블럭(SB ; Search Block)과 기준블럭(RB)과의 상관관계를 구하여 이 값이 최대가 되는 위치, 즉 패턴 매칭이 가장 잘 이루어지는 위치를 변위벡터(X, Y)로 이용하는 방법이다.
일반적으로 이동예측 처리기(MEP)의 핵심인 기본 처리소자(PE ; PrProcess ing Element)의 구조는 제2도와 같다.
즉, 현재 프레임의 기준블럭(RB)의 8비트 데이타값(RB(i,j))을 래치하여 출력하는 제1래치부(100)와; 상기 제1래치부(100)에서 출력되는 현재 프레임의 기준블럭(RB)의 8비트 데이타값(RB(i,j))과 이전 프레임에서의 8비트의 탐색블럭(SR)의 데이타값(SB(i+v, j+h))과를 감산하여 출력하는 감산기(101)와; 상기 감산기(101)에서 연산되어 얻어진 8비트의 화소값을 래치하여 출력하는 제2래치부(102)와; 상기 제2래치부(102)에서 입력되는 8비트의 화소값에 절대치를 취하여 주는 절대값 처리부(103)와; 상기 절대값 처리부(103)에서 취해진 화소의 절대값을 누적하여 저장 출력하는 누적부(104)로 구성된다.
상기에서, 누적부(104)는 상기 절대값 처리부(103)에서 입력되는 현재의 화소의 절대차값과 이전에 누적되어 저장된 절대차값과를 가산하여 출력하는 가산기(104a)와; 상기 가산기(104a)에서 가산된 절대값을 순차적으로 저장하여 상기 가산기(104a)에 궤환 입력하는 제3래치부(104b)로 구성되어 있다.
이와같은 구조를 갖는 일반적인 이동예측 처리기(MEP)의 핵심인 기존처리소자(PE)는 먼저, 현재 프레임을 고정된 크기의 블럭으로 나누어져 입력되는 기준블럭(RB)의 8비트 화소값(RB(i,j))이 입력되면 제1래치부(100)는 그 입력된 8비트의 화소값(RB(i,j))을 순차적으로 래치하여 감산기(101)에 제공하게 된다.
상기 감산기(101)는 상기 제1래치부(100)에서 래치되어 입력되는 현재 프레임의 기준블럭(RB) 8비트 화소값(RB(i,j))과 이전 프레임에서 입력되는 탐색블럭의 8비트 화소값 SB(i+v, j+h))을 감산하여 제2래치부(102)를 통해 절대값 처리부(103)에 제공하게 된다.
상기 절대값 처리부(103)는 상기 제2래치부(102)를 통해 입력되는 차값에 절대치를 취하게 된다.
즉, 다시말해서 제2래치부(102)로부터 입력되는 차값이 음의 값을 가지면 이에 절대치를 취하여 누적부(104)의 가산기(104a)에 제공하게 되고, 차값이 양의 값을 가지만 바로 바이패스시켜 누적부(104)의 가산기(104a)에 제공하게 된다.
상기 누적부(104)의 가산기(104a)는 절대값 처리부(103)에서 처리되어 입력되는 한 화소의 절대차값과 후단의 제3래치부(103b)에에 누적되어 저장된 이전의 절대차값을 가산하여 다시 제3래치부(104b)에 저장하게 된다.
따라서, 상기 제3래치부(104a)에는 8×8개의 절대차의 누적값이 저장된다.
이와같은 기능을 갖는 기본처리소자(PE)를 이용한 종래의 한방향 병렬 파이프라인에 근거한 이동 예측기의 제1실시예 구성은 첨부된 도면 제1도에 도시된 바와 같이, 입력되는 탐색영역 데이타(SAD : Search Area Data)를 저장하였다가 순차적으로 출력하는 탐색영역 메모리(200)와; 8×8의 기본처리소자(PE)로 이루어져 상기 탐색영역 메모리(200)로부터 순차적으로 입력되는 이전 프레임에 대한 탐색영역 데이타(SAD)와 외부로부터의 현재 프레임에 대한 8×8의 크기를 갖는 기준블럭 데이타를 입력받아 연산하여 절대차값을 구하고 그 구한 현재의 절대차값과 이전의 절대차값을 가산누적하여 출력하는 기본처리소자 어레이부(201)와; 상기 기본처리소자 어레이부(201)에서 처리되어 순차적으로 입력되는 컬럼에 대한 8개의 절대차 부분 누적합을 더하여 출력하는 부분합 처리부(202)와; 상기 부분합 처리부(202)에서 처리되어 입력되는 절대차 부분합을 연산하여 이동벡터와 최소절대 오차값을 구하는 절대오차값 처리부(203)로 구성되어 있다.
이와같이 구성된 종래의 이동 예측기는, 먼저 기본처리소자 어레이부(201)는 8×8의 기본처리소자(PE)로 이루어져 있으며, 기준블럭의 크기가 8×8화소로 구성되어지고, 또한 탐색영역의 크기는 이동벡터(X, Y)의 범위를 +7/-8로 하여 24×24개의 화소로 되어 있다.
실제 탐색영역은 23×23이나 탐색영역 데이타(SAD)를 이동예측 처리기(MEP)에 효율적으로 전달하기 위해 탐색영역을 24×24로 하였으며, 탐색영역은 제7도와 같이 다시 3개의 8×8블럭으로 이루어진 3개의 부분영역(A1)(A2)(A3)으로 구성된다.
이를 참조하여 제3도를 구체적으로 설명하면 다음과 같다. 먼저, 기본처리소자 어레이부(201)내에 있는 모든 기본처리소자(PE)에 기준블럭(RB)의 화소값, 즉 기준블럭 데이타(RBD)를 미리 저장해 놓은 후 탐색영역 데이타(SAD)가 제7도의 제1부영역(A1)에 있는 23개의 라인에서(하나의 라인은 8개의 화소로 구성되며 여기서 라인은 행을 가르킴) 한 라인씩 순차적으로 탐색영역 메모리(200)에 입력되면, 상기 탐색영역 메모리(200)는 이전에 저장된 이전 프레임의 탐색영역 데이타(SAD)를 한 라인씩 순차적으로 상기 기본처리소자 어레이부(201)에 입력하게 된다.
이때, 하나의 라인 단위로 한 클럭 사이클에 기본처리소자(PE)에 저장되어 있는 현재 프레임의 기준블럭 데이타(RBD)와 탐색영역 메모리 값과의 절대차를 계산하여 그 결과를 다음 라인에 있는 기본처리소자(PE)에 넘겨주고, 다음 라인에 있는 기본처리소자(PE)는 그 전 라인에 있는 기본처리소자(PE)로부터 받은 화소값의 절대차 값과 자신의 화소값의 절대차 값을 더하여 그 다음 라인의 기본처리소자(PE)에 제공하게 된다.
이와같은 방법으로 동작하여 마지막 라인에 있는 기본처리소자들은 계산된 8개 부분 누적합 값들을 부분합 처리부(202)에 보내며 여기서 모두 더해져 절대오차값 처리부(203)에 제공된다.
상기 절대오차값 처리부(203)는 상기 부분합 처리부(202)에서 입력되는 부분 누적합을 연산처리하여 이동벡터와 최소절대 오차값을 구하게 되어 하나의 탐색블럭, 즉 탐색영역에 대한 변위값이 계산된다.
그러나, 이와같은 종래의 이동 예측기의 제1실시예는 기준블럭의 데이타가 기본처리소자 어레이부 내에 저장된 후에는 탐색블럭이 수직 또는 수평 이동시 처음 7클럭 사이클이 자나면 매 클럭 사이클마다 하나의 탐색블럭에 대한 변위값이 계산되며 탐색영역안에 있는 전체 256블럭에 대한 변위값을 구하기 위해서는 432 클럭 사이클(23×16+64)이 요구된다.
이 구조의 장점은 이동예측 처리기(MEP)에 대한 제어가 간단하여 이동예측 처리기의 전체 크기를 줄일 수는 있으나 기본처리소자 (PE)를 설계할 때 기준블럭의 데이타를 저장하기 위한 레지스터를 함께 고려하여야 하며, 또한 기준블럭이 바뀔때마다 기준블럭의 화소값이 기본처리소자 어레이에 순차적으로 입력되어 해당되는 기본처리소자의 레지스터에 전달되고 저장되기 위해서는 기준블럭의 하소 수만큼의 아이들 타임(idle time)이 존재하게 되어 고속 이동예측이 불가능하게 되는 문제점이 있었다.
그리고, 제4도는 종래 이동 예측기의 제2실시예 구성도로서, 이에 도시된 바와 같이, 입력되는 탐색영역 데이타(SAD)를 저장하여 출력하는 탐색영역 메모리(300)와; 8×8의 기본처리소자 (PE)로 이루어져 상기 탐색영역 메모리(300)로부터 순차적으로 입력되는 이전 프레임에 대한 탐색영역 데이타(SAD)와 외부로부터의 현재 프레임에 대한 8×8의 크기를 갖는 기준블럭 데이타(RBD)를 동시에 입력받아 연산하여 절대차값을 구하고 그 구한 현재의 절대차값과 이전의 절대차값을 가산누적하여 출력하는 기본처리소자 어레이부(301)와; 상기 기본처리소자 어레이부(301)의 기본처리소자 (PE)에서 처리되어 동시에 입력되는 64개의 절대차 부분 누적합을 비교하여 이동벡터와 최소 절대오차값을 구하는 비교기(302)로 구성되어 있다.
이와같이, 구성된 종래 이동예측 처리기의 제2실시예는 제3도와는 달리 기준블럭 데이타(RBD)을 미리 기본처리소자 어레이부(301)내에 저장하지 않고 순차적으로 모든 기본처리소자 (PE)에 동시에 전달되는 구조로서, 한 클럭 사이클에 탐색영역 데이타(SAD)가 탐색영역 메모리(300)로부터 한 라인(행)씩 순차적으로 기본처리소자 어레이부(301)에 입력되고 시프트되며, 이때 상기 기본처리소자 어레이부(301)의 각 기본처리소자 (PE)에서는 현재 프레임에 대한 기준블럭 데이타(RBD)와 이전 프레임의 각 탐색영역 데이타(SAD)에 대한 절대차를 구하여 누적하고 이를 비교기(302)에 제공하게 된다.
상기 비교기(302)는 기본처리소자 어레이부(301)의 각 기본처리소자 (PE)에서 구해져 입력되는 64개의 누적 변위값들을 비교하여 그 결과로 이동벡터와 최소 절대 오차값을 구하게 된다.
따라서, 이와같은 구조는 120클럭 사이클(15×8)에 64개의 블럭에 대한 변위값이 동시에 계산되어 출력되며(즉, 각각의 기본처리소자는 하나의 탐색블럭에 대한 하나의 변위값을 구한다) 탐색영역에 속하는 256개의 탐색블럭에 대한 변위값을 구하기 위해서는 4번의 반복이 요구되어 480클럭 사이클(15×8×4)이 요구된다.
그리고, 이와같은 구조는 기본처리소자의 설계가 용이하며 제어도 간단하여 전체 칩의 크기를 줄일 수 있다는 장점이 있지만 많은 클럭 사이클이 요구되는 단점을 갖는다.
또한 64개의 기본 처리소자에 동시에 출력되는 변위값들을 비교하기 위한 고속의 전용 비교기가 요구되는 문제점이 있다.
즉 다시말해서, 제3도 및 제4도와 같은 이동예측 처리기는 화상전화, 화상회의 시스템에 대한 화상 압축 표준 알고리즘인 블럭정합 연산시 한 방향에 대한 병렬 파이프라인 구조를 가짐으로써 탐색블럭이 수평 또는 수직방향으로 이동할 때마다 기준블럭의 수직 또는 수평방향의 화소 수만큼의 클럭 사이클동안 연산처리가 아이들(idle)상태에 있게 되는 문제점이 있었다.
따라서, 본 발명의 목적은 이와같은 종래의 문제점을 감안하여 화상 전화 및 화상회의 시스템에서의 움직이는 영상의 이동 예측을 위한 알고리즘중에 하나인 완전탐색 블럭정합 알고리즘을 이용하여 탐색블럭 정합연산시 요구되는 클럭사이클 수를 줄여 고속 예측이 가능하도록 하는 양방향 병렬 파이프라인 구조에 근거한 탐색 이동 예측처리기를 제공함에 있다.
본 발명의 또다른 목적은 기존의 한 방향 병렬 파이프라인 이동예측처리기에서 나타나는 탐색블럭의 수직 또는 수평 이동시 발생되는 아이들 타임을 현저하게 줄이도록 하는데 있다.
상기와 같은 목적을 달성하기 위한 본 발명 양방향 병렬 파이프라인 구조에 근거한 탐색 이동 예측처리기는 외부의 제1, 제2클럭제어신호에 따라 이전 프레임메모리로부터 입력되는 256개의 전체 탐색영역 데이타를 각 단위별로 입력받아 저장 출력하는 제2탐색영역 메모리와; 상기 제1, 제2클럭제어신호에 따라 상기 제1탐색영역 메모리로부터 단위별로 입력되는 8×8개의 탐색영역 데이타를 저장하여 순차적으로 출력하는 제1탐색영역 메모리와; 외부의 현재 프레임 메모리로부터 입력되는 기준블럭 데이타를 저장하여 출력하는 기준블럭 메모리와; 상기 기준블럭 메모리에 저장된 이전의 기준블럭 데이타 또는 현재의 입력되는 기준블럭 데이타와 제1탐색영역 메모리의 탐색영역 데이타 또는 제2탐색영역 데이타에 대한 차의 절대값을 구하고 이를 계속 누적하여 누적 64개의 변위벡터를 1비트씩 순차 출력하는 8×8개의 기본처리소자(PE)로 이루어진 기본처리소자 어레이수단과; 상기 기본처리소자 어레이수단에서 제공되는 누적값을 수평 수직으로 비교하여 이동벡터와 최소절대 오차값을 구하는 비트순차 비교수단으로 이루어짐을 특징으로 한다.
상기에서, 제2탐색영역 메모리는 외부의 선택제어신호에 따라 이전 프레임 메모리에서 입력되는 8비트의 탐색영역 데이타를 래치하여 출력하는 버퍼수단과; 상기 버퍼수단에서 입력되는 현재의 탐색영역 데이타와 이전의 탐색영역 데이타를 선택하여 출력하는 제1선택수단과; 상기 제1선택수단에서 선택되어 얻어진 탐색영역 데이타를 저장하여 출력하는 제1메모리와; 상기 제1메모리에서 얻어진 이전의 탐색영역 데이타와 버퍼수단에서 얻어진 현재의 탐색영역 데이타를 선택하여 출력하는 제2선택수단과; 상기 제2선택수단에서 선택되어 얻어진 이전 또는 현재의 탐색영역 데이타를 저장하여 기본처리소자 어레이수단, 제1선택수단 및 제1탐색영역 메모리에 제공하는 제2메모리로 이루어짐을 특징으로 한다.
상기에서, 제1탐색영역 메모리는 상기 제2탐색영역 메모리의 제2메모리에서 입력되는 현재의 8×8개의 탐색영역 데이타와 궤환되어 입력되는 이전의 탐색영역 데이타를 선택하여 출력하는 제3선택수단과; 상기 제3선택수단에서 선택되어 얻어진 이전 또는 현재의 탐색영역 데이타를 저장하여 기본처리소자 어레이수단 및 제1선택수단에 제공하여 8×24개의 8비트 레지스터로 이루어진 제3메모리로 이루어짐을 특징으로 한다.
상기에서, 기본처리소자 어레이수단에 있는 각각의 기본처리소자 (PE)는 상기 제1탐색영역 메모리로부터 입력되는 8비트의 탐색영역 데이타를 저장하여 다음 행의 기본처리소자에 제공하는 제1레지스터와; 상기 제1탐색영역 메모리 및 제2탐색영역 메모리로부터 각각 입력되는 8비트의 탐색영역 데이타를 외부의 선택신호에 의해 선택하여 출력하는 제5선택수단과; 상기 제5선택수단에서 선택된 8비트의 탐색영역 데이타를 저장하여 다음 열의 기본처리소자에 제공하는 제2레지스터와; 상기 제5선택수단에서 선택된 탐색영역 데이타와 현재 또는 이전의 기준블럭 데이타를 연산하여 차값을 구하는 감산부와, 상기 감산부에서 구해진 차값에 절대치를 취하는 절대값 처리부와; 상기 감산부에서 구해진 차값에 따라 절대값 처리부에서 처리된 현재의 절대치값과 이전의 절대치값을 연산하여 변위값을 구하는 누적부와; 상기 누적부에서 구해진 누적된 변위값을 외부의 제어신호에 의해 저장하여 비트 순차 비교수단에 제공하는 비트레지스터로 이루어짐을 특징으로 한다.
이하, 본 발명을 첨부한 도면에 의거 상세히 설명하면 다음과 같다.
제5도는 본 발명 양방향 파이프라인 구조에 근거한 탐색 이동예측기의 실시예 구성도로서, 이에 도시한 바와 같이, 외부의 제어수단(도면에 미도시)으로부터 입력되는 제1, 제2클럭제어신호(V0)(V1)에 따라 외부의 이전 프레임메모리(도면에 미도시)로부터 입력되는 256개의 전체 탐색영역 데이타(SAD)를 각 단위별(8×8)로 입력받아 저장 출력하는 192개(8×24)의 8비트 레지스터로 이루어진 제2탐색영역 메모리(402)와; 상기 제1, 제2클럭제어신호(V0)(V1)에 따라 상기 제2탐색영역 메모리(402)로부터 단위별로 입력되는 8×8개의 탐색영역 데이타(SAD)를 저장하여 순차적으로 출력하는 192개의 8비트 레지스터로 이루어진 제1탐색영역 메모리(400)와; 외부의 현재 프레임 메모리로부터 입력되는 기준블럭 데이타(RBD)를 저장하여 출력하는 64개의 8비트 레지스터로 이루어진 기준블럭 메모리(403)와; 상기 기준블럭 메모리(403)에 저장된 이전의 기준블럭 데이타 또는 현재 입력되는 기준블럭 데이타와 제1탐색영역 메모리(400)의 탐색영역 데이타 또는 제2탐색영역 메모리(402)의 탐색영역 데이타에 대한 차의 절대값을 구하고 이를 계속 누적하여 그 누적된 64개의 변위벡터를 1비트씩 순차 출력하는 8×8개의 기본처리소자 (PE)로 이루어진 기본처리소자 어레이부(401)와; 상기 기본처리소자 어레이부(401)에서 제공되는 누적값을 수평 수직으로 비교하여 이동벡터와 최소절대 오차값을 구하는 수평비교기 및 수직비교기를 구비한 비트순차 비교기(404)로 구성한다.
상기에서, 외부의 현재 프레임 메모리로부터 입력되는 기준블럭 데이타(RBD)와 기준블럭 메모리(403)에 저장된 이전의 기준블럭 데이타를 제어수단에서 제공되는 제1선택제어신호(ST1)에 따라 선택하여 상기 기본처리소자 어레이부(401) 및 기준블럭 메모리(403)에 제공하는 제4선택부(405)를 더 포함하여 구성한다.
그리고, 상기 제2탐색영역 메모리(402)는 제8도 및 제9도에 도시한 바와 같이, 외부의 제어부에서 입력되는 제2선택제어신호(ST2)에 따라 이전 프레임 메모리에서 입력되는 8비트의 탐색영역 데이타(SAD)를 래치하여 출력하는 8개의 8비트 레지스터로 이루어진 버퍼부(402a)와; 상기 버퍼부(402a)에서 입력되는 현재의 탐색영역 데이타(SAD)와 궤환되어 입력되는 이전의 탐색영역 데이타를 선택하여 출력하는 제1선택부(402b)와; 상기 제1선택부(402b)에서 선택되어 입력되는 탐색영역 데이타를 저장하여 출력하는 64개의 8비트 레지스터로 이루어진 제1메모리(402c)와; 상기 제1메모리(402c)로부터 저장되어 입력되는 이전의 탐색영역 데이타와 버퍼부(402a)에서 입력되는 현재의 탐색영역 데이타를 선택하여 출력하는 제2선택부(402d)와; 상기 제2선택부(402d)에서 선택되어 입력되는 이전 또는 현재의 탐색영역 데이타를 저장하여 기본처리소자 어레이부(401), 제1선택부(402a) 및 제1탐색영역 메모리(400)에 제공하는 128개(16×8)의 8비트 레지스터로 이루어진 제2선택부(402e)로 구성한다.
상기에서, 제1탐색영역 메모리(400)는 제8도 및 제10도에 도시한 바와 같이, 상기 제2탐색영역 메모리(402)의 제2메모리(402e)에서 입력되는 현재의 8×8개의 탐색영역 데이타와 궤환되어 입력되는 이전의 탐색영역 데이타를 선택하여 출력하는 제3선택부(400a)와; 상기 제3선택부(400a)에서 선택되어 입력되는 이전 또는 현재의 탐색영역 데이타를 저장하여 기본처리소자 어레이부(401) 및 제1선택부(400a)에 제공하는 192개(8×24)의 8비트 레지스터로 이루어진 제3메모리(400b)로 구성한다.
상기에서, 기본처리소자 어레이부(401)의 각각의 기본처리소자(PE)는 제6도에 도시한 바와 같이, 상기 제1탐색영역 메모리(400)로부터 입력되는 8비트의 탐색영역 데이타(SAD)를 저장하여 다음 행의 기본처리소자(PE)에 제공하는 8비트의 제1레지스터(401a)와; 상기 제1탐색영역 메모리(400) 및 제2탐색영역 메모리(402)로부터 각각 입력되는 8비트의 탐색영역 데이타(SAD)를 외부의 제어부로부터 입력되는 제2클럭제어신호(V1)에 의해 선택하여 출력하는 제5선택부(401b)와; 상기 제5선택부(401b)에서 선택된 8비트의 탐색영역 데이타를 저장하여 다음 열의 기본처리소자(PE)에 제공하는 제2레지스터(401c)와; 상기 제5선택부(401b)에서 선택된 8비트의 탐색영역 데이타(SAD)와 제4선택부(405)에서 선택되어 입력되는 현재 또는 이전의 기준블럭 데이타(RBD)를 연산하여 차값을 구하는 감산부(401d)와; 상기 감산부(401d)에서 구해진 차값에 절대치를 취하는 배타적 논리합소자로 이루어진 절대값 처리부(401e)와; 상기 감산부(401d)에서 구해진 차값에 따라 절대값 처리부(401e)에서 처리된 현재의 절대치값과 이전의 절대치값을 연산하여 16비트의 변위값을 구하는 전가산기와 래치를 포함하는 누적부(401f)와; 상기 누적부(401f)에서 구해진 누적된 16비트의 변위값을 외부의 제어부에서 입력되는 제2클럭제어신호(V1)에 의해 저장하여 비트순차 비교기(404)에 제공하는 비트레지스터(401g)로 구성한다.
이와같이 구성된 본 발명의 작용 효과를 제5도 내지 제10도를 참조하여 상세히 설명하면 다음과 같다.
본 발명에서 제안하는 이동예측 처리기의 구조는 제5도에 나타나 있으며 가능한 한 적은 클럭 사이클에 256개의 탐색블럭에서 가장 작은 변위값을 갖는 블럭의 위치를 찾아내기 위한 구조로서, 기본적으로 제4도의 기존의 이동예측 처리기 구조를 개선한 구조이다.
기본처리소자 어레이부(401)는 기본처리소자(PE)를 8×8의 이차원 어레이 구조로 구성하였다.
또한 기준블럭의 크기는 8×8이며 탐색영역의 크기는 23×23으로, 이동벡터의 범위는 수직, 수평 양방향이 같이 +7/-8로 하여 한번에 64개의 기본처리소자(PE)가 64개의 탐색블럭에 대한 변위값을 추출하게 되며, 이러한 과정을 네 번 수행함으로써 전체 탐색영역에 대하여 256개의 변위값을 구하게 된다.
본 발명에서는 용어의 혼란을 피하기 위하여 기본처리소자 어레이부(401)의 64개의 기본처리소자(PE)가 64개의 탐색블럭에 대한 누적값을 추출하는 하나의 과정을 처리과정이라 정의한다.
따라서, 본 발명에서 제안한 이동예측 처리기는 전체 탐색영역에 대한 256개의 탐색블럭의 누적값을 구하기 위해서는 네 번의 처리과정을 거쳐야 한다.
제6도는 전술한 바와 같이, 본 발명에서 제안하는 이동예측 처리기의 기본처리소자 어레이부(401)를 구성하는 하나의 기본처리소자(PE)를 나타낸 것이다.
이 기본처리소자(PE)는 두 개의 8비트 입력 데이타신호를 받아들이게 있다.
그리고, 본 발명에서 제안하는 이동예측 처리기내에는 제8도에 나타낸 바와 같이, 메모리블럭으로서, 기준블럭의 데이타를 저장하기 위한 8×8 크기의 8비트 레지스터로 구성된 기준블럭 메모리(403)와 탐색영역의 데이타를 저장하기 위한 탐색영역의 메모리로서 두 개의 8×24크기의 8비트 레지스터로 구성된 제1탐색영역 메모리(400)와 제2탐색영역 메모리(402) 및 8개의 8비트 레지스터로 이루어진 하나의 버퍼부(402a)로 구성되어 있다.
또한 가능한 한 이동예측 처리기(MEP)내의 탐색영역의 메모리의 양을 줄이기 위하여 탐색영역은 제7도에 나타낸 바와 같이, 3개의 제1, 제2, 제3부영역(A1)(A2)(A3)으로 나누고, 초기 상태에 탐색영역의 제1부영역(A1)에 있는 화소값(192개)은 제1탐색영역 메모리(400)에, 그리고 제2부영역(A2)에 있는 화소값(192개)들은 제2탐색영역 메모리(402)에 저장하고, 제3부영역(A3)에 있는 화소값을 각 처리과정에서 1/3씩 제2탐색영역 메모리(402)로 입력하는 구조를 갖도록 하였다.
이것은 제2탐색영역 메모리(402)에 있던 데이타들은 세 번째와 네 번째 처리과정에서는 제1탐색영역 메모리(400)에 있어야 하므로 제2탐색영역 메모리(402)에 있던 데이타들이 첫 번째와 두 번째 처리과정에서 제1탐색영역 메모리(400)로 완전히 이동되도록 하기 위한 것으로 탐색영역의 제3부영역(A3)에 있는 데이타를 1/3씩 각 처리과정에서 제2탐색영역 메모리(402)로 보내고 그 제2탐색영역 메모리(402)에 있는 데이타들은 제1탐색영역 메모리(400)로 보내지도록 한 것이다.
따라서, 이를 위해서는 각 제1, 제2탐색영역 메모리(400)(402)는 3등분될 수 있어야 함으로 각 제1, 제2탐색영역 메모리(400)(402)의 크기를 8×24로 하였다.
그러나, 탐색영역의 크기는 전술한 바와 같이, 23×23이므로 제1, 제2탐색영역 메모리(400)(402)의 크기보다 행과 열에 있어서 하나가 적게 되어 제1, 제2탐색영역 메모리(400)(402)에서 이를 처리하기 위하여 두 번째와 네 번째 처리과정에서는 제1, 제2탐색영역 메모리(400)(402)의 마지막 행을 이동시키기 위한 하나의 제1클럭제어신호(V0)의 아이들 타임이 있게 된다.
그리고 본 발명에서 제안한 이동예측 처리기(MEP)는 크게 기본처리소자 어레이부(401), 메모리부(400)(402), 비트순차 비교기(404), 제어부로 구성되며, 기본처리소자 어레이부(401)의 구조는 앞에서 설명했듯이 8×8개의 기본처리소자(PE)가 이차원 어레이를 형성하고 있으며, 각 처리소자의 구조는 제6도에 나타난 바와 같이, 1비트 D-래치가 8개 병렬로 이루어진 두 개의 제1, 제2레지스터(401a)(401c), 그리고 제1, 제2탐색영역 메모리(400)(402)의 탐색영역 데이타를 선택하기 위한 제5선택부(401b), 탐색영역 데이타(SAD)와 기준블럭 데이타(RBD)의 차를 구하기 위한 8비트 감산부(401d), 절대값 연산을 위한 배타적 논리합소자인 절대값 처리부(401e), 절대값 누적을 위한 16비트의 누적부(401f) 및 누적된 변위값을 저장하기 위한 16비트의 레지스터(401g)로 구성되어 있으며, 탐색영역 데이타(SAD)들은 제1, 제2탐색영역 메모리(400)(402)로부터 기본처리소자 어레이부(401)로 수직 또는 수평방향으로 이동하게 된다.
각 기본처리소자(PE)는 비교대상 블럭에 대한 변위값을 구한 후 16비트의 비트레지스터(401g)에서 비트 순차적으로 비교기(404)에 출력한다.
이하, 본 발명의 이동예측 처리기(MEP)의 동작을 구체적으로 설명하면 다음과 같다.
먼저, 기준블럭 데이타(RBD)를 기본처리소자 어레이부(401)에 입력하기 위해 제어부로부터 발생된 제1클럭제어신호(V0)가 상승시(positive dege)일 때 첫 번째와 세 번째 처리과정에서 초기 7사이클 동안과 두 번째와 네 번째 처리과정에서 마지막 1사이클만 제외하고 기준블럭 데이타(RBD)가 기본처리소자 어레이부(401)의 모든 기본처리소자(PE)의 감산부(401d)로 동시에 입력된다.
이때 기준블럭 데이타(RBD)는 첫 번째 처리과정에서는 외부로부터 제4선택부(405)를 통해 입력되지만 두 번째와 세 번째 그리고 네 번째 처리과정은 이동예측 처리기(MEP)내에 있는 기준블럭 메모리(403)로부터 입력된다.
즉 다시말해서, 초기에 기준블럭 메모리(403)는 0으로 클리어되어 있으며, 제어부로부터 발생된 제1클럭제어신호(V0)가 포시티브 에지이고, 제1선택제어신호(ST1)가 '1'이면 기준블럭 데이타(RBD)가 외부로부터 제4선택부(405)를 통해 기본처리소자 어레이부(401)내에 있는 모든 기본처리소자(PE)와 기준블럭 메모리(403)에 동시에 순차적으로 입력되며, 제1선택제어신호(ST1)가 '0'이면 이동예측 처리기(MEP)내에 있는 기준블럭 메모리(403)에 저장되어 있는 기준블럭 데이타(RBD)가 제4선택부(405)를 통해 순차적으로 기본처리소자 어레이부(401)내에 있는 모든 기본처리소자(PE)로 동시에 입력된다.
따라서, 제어부에서 발생된 제1클럭제어신호(V0)의 초기 64사이클동안에는 외부로부터 기준블럭 데이타(RBD)가 이동예측 처리기(MEP)내의 기준블럭 메모리(403) 및 기본처리소자 어레이부(401)로 입력되면 그 이후 정해진 탐색영역에 대한 256개의 변위벡터를 구하기까지는 이동예측 처리기(MEP)내의 기준블럭 메모리(403)로부터 기본처리소자 어레이부(401)로 기준블럭 데이타(RBD)가 제공된다.
한편, 제1, 제2탐색영역 메모리(400)(402)에 저장된 탐색영역 데이타(SAD)의 기본처리소자 어레이부(401) 입력에 있어서는 제2클럭제어신호(V1)가 '1'이고 제1클럭제어신호(V0)가 상승시(positive edge)이면 제1탐색영역 메모리(400)에 저장되어 있는 탐색영역 데이타(SAD)가 기본처리소자 어레이부(401)의 기본처리소자(PE)내에 있는 제1레지스터(401a)로 입력되고, 또한 제5선택부(401b)를 통하여 제2레지스터(401c) 및 감산부(401d)에 입력된다.
상기 제1레지스터(401a)에 현재 탐색영역 데이타(SAD)가 입력되면 이전에 있던 탐색영역 데이타는 다음단(수직방향) 기본처리소자(PE)의 제1레지스터 및 제5선택부를 통하여 제2레지스터와 감산부로 입력된다.
그리고, 상기 제2클럭제어신호(V1)가 '0'이고 제1클럭제어신호(V0)가 상승시(positive edge)이면 제2탐색영역 메모리(402)에 있는 탐색영역 데이타(SAD)가 기본처리소자 어레이부(401)의 기본처리소자(PE)내에 있는 제5선택부(401b)를 통하여 제2레지스터(401c)와 감산부(401d)에 입력되고, 이전의 제2레지스터(401c)에 저장되어 있던 탐색영역 데이타는 다음단, 즉 수평방향의 기본처리소자(PE)의 제5선택부를 통하여 제2레지스터와 감산부로 이동하게 된다.
상기 제5선택부(401b)는 두 개의 입력신호중, 즉 제1, 제2탐색영역 메모리(400)(402)에 입력되는 두 탐색영역 데이타중 하나를 제2클럭제어신호(V1)에 의해 선택하여(본 이동예측 처리기에서는 제2클럭제어신호 V1이 '1'이면 제1탐색영역 메모리 Ehss 이전단의 제1레지스터에 있는 탐색영역 데이타를, 제2클럭제어신호 V1이 '0'이면 제2탐색영역 메모리 또는 이전단의 제2레지스터에 있는 탐색영역 데이타를 선택한다) 감산부(401d)와 제2레지스터(401c)로 보내주는 역할을 한다.
그리고, 상기 기본처리소자 어레이부(401)의 각 기본처리소자(PE)는 이후에 설명될 감산부(401d)에 의하여 기준블럭 데이타(RBD)와 탐색영역 데이타(SAD)에 대한 차를 구하고 배타적 논리합소자로 이루어진 절대치 처리부(401e)를 통하여 절대값을 구한 후에, 누적부(401f)에 계속 누적되게 된다.
이와같이 하여 64개의 변위벡터를 구하면 각 기본처리소자(PE)의 누적부(401f)에 누적된 값들은 비트레지스터(401g)로 이동하고 이값은 1비트씩 비트순차 비교기(404)의 수직비교기로 출력하게 되며 누적부(401f)의 누적값은 0으로 클리어된다.
즉 다시말해서, 기준블럭 데이타(RBD)와 탐색영역 데이타(SAD)의 입력을 위해 제어부로부터 발생된 제1클럭제어신호(V0)가 상승시(positive edge)이고 제2클럭제어신호(V1)가 '1'이면 제1탐색영역 메모리(400)내에 있는 제3메모리(400b)의 첫 번째 행에 있는 레지스터의 탐색영역 데이타(SAD)들은 수직방향으로 기본처리소자 어레이부(401)의 최하위에 있는 행의 각 기본처리소자(PE)로 병렬 출력되며, 제1탐색영역 메모리(400)의 마지막 행에 있는 8개의 레지스터에는 첫 번째와 두 번째 처리과정에서는 제2탐색영역 메모리(402)의 제3메모리(402e)의 9번째 행에 있는 8개 레지스터의 값들이 제3선택부(400a)를 통해 병렬로 입력되고, 세 번째와 네 번째 처리과정에서는 제1탐색영역 메모리(400)내에 있는 제3메모리(400b)의 첫 번째 행에 있는 8개의 레지스터의 값들이 병렬로 입력되며, 각 행에 있는 레지스터의 값들은 앞 행의 레지스터로 이동하게 된다.
그러나, 제1, 제2탐색영역 메모리(400)(402)의 선택과 데이타의 행 이동을 위한 제1클럭제어신호(V0)가 '0'이면 제1탐색영역 메모리(400)의 상태는 변화하지 않는다.
그리고, 상기 제2탐색영역 메모리(402)의 경우에 있어서는 제어부로부터 발생된 제2클럭제어신호(V1)가 상승시(positive edge)이고 제2클럭제어신호(V1)가 '0'이면 제2탐색영역 메모리(402)내에 있는 제2메모리(402e)의 첫 번째 열의 첫 번째부터 열번째 행에 있는 8개의 레지스터의 값들은 기본처리소자 어레이부(401)의 오른쪽에서 수평방향으로 기본처리소자 어레이부(401)로 병렬로 출력되며 제2탐색영역 메모리(402) 내의 제1, 제2탐색영역 메모리(402c),(402e)의 각 열에 있는 레지스터의 값들은 앞 열의 레지스터로 이동하고 첫 번째 열에 있는 레지스터의 값들은 행의 마지막 열에 있는 레지스터로 이동한다.
그리고, 제2클럭제어신호(V1)가 '1'이면 첫 번째와 두 번째 처리과정에서는 제2탐색영역 메모리(402)내에 있는 제2메모리(402e)의 9번째 행에 있는 8개의 레지스터의 값들은 제3선택부(400a)를 통해 제1탐색영역 메모리(400)의 제3메모리(400b)의 마지막 행에 있는 8개의 레지스터로 동시에 전달되며, 제2탐색영역 메모리(402)의 각 행에 있는 8개의 레지스터의 값들은 앞 행의 레지스터로 동시에 이동하게 된다.
또한 상기 제2탐색영역 메모리(402)의 제1메모리(402c)의 마지막 행에 있는 8개의 레지스터의 제1클럭제어신호(V0)의 초기 8사이클동안 제2탐색영역 메모리(402)의 제2메모리(402e)의 첫 번째 행에 있는 8개의 레지스터 값을 병렬로 받아들이지만 제1클럭제어신호(V0)의 초기 8사이클이 지난 후에는 이후에 설명될 버퍼부(402a)로부터 8개의 탐색영역 데이타(SAD)가 동시에 입력된다.
그러나, 세 번째 처리과정에서는 제1클럭제어신호(V0)의 초기 8사이클동안 제2탐색영역 메모리(402)의 제1메모리(402c)내 마지막 행에 있는 8개의 레지스터에는 입력되는 탐색영역 데이타가 없으며 단지 각 행에 있는 8개의 레지스터의 값들은 앞 행의 레지스터로 이동하게 된다.
따라서, 세 번째 처리과정의 제1클럭제어신호(V0)의 8사이클이 지나면 제2탐색영역 메모리(402)의 제1메모리(402c)의 17번째 행부터 24번째 행까지의 레지스터에는 화소 데이타, 즉 탐색영역 데이타가 존재하지 않는다.
그러나 세 번째 처리과정의 제1클럭제어신호(V0)의 8사이클이 지나면 외부의 이전 프레임 메모리로부터 탐색영역의 제3부영역(A3)에 있는 나머지 탐색영역 데이타들이 버퍼부(402a), 제1선택부(402b), 제1메모리(402c) 및 제2선택부(402d)를 통해 제2메모리(402e)의 16번째 행에 있는 8개의 레지스터에 동시에 전달되고, 제2메모리(402e)의 첫 번째 행에 있는 8개의 레지스터 값들은 제1선택부(402b)를 통해 제1메모리(402c)의 마지막 행에 있는 8개의 레지스터로 이동하게 되며 각 행에 있는 8개의 레지스터 값들은 앞 행의 레지스터로 이동을 하게 된다.
또한 네 번째 처리과정에서는 제2탐색영역 메모리(402)의 제1메모리(402c) 마지막 행에 있는 8개의 레지스터에 제2탐색영역 메모리(402)의 제2메모리(402e) 첫 번째 행에 있는 8개의 레지스터 값들은 입력되며, 각 행에 있는 8개의 레지스터 값들은 앞 행에 있는 레지스터로 이동을 하게 된다.
또한 제2탐색영역 메모리(402)의 제2메모리(402e) 16번째 행에 있는 8개의 레지스터에도 제2선택부(402d)에 의해 제1메모리(402c)의 17번째 행에 있는 8개의 레지스터 값이 입력된다.
그리고, 전술한 제2탐색영역 메모리(402)의 버퍼부(402a)에 있어서는 전술한 제1클럭제어신호(V0)가 상승시(positive edge)이고 제어부에서 발생된 제2선택제어신호(ST2)가 '1'이면 그 버퍼부(402a)의 마지막 레지스터에는 외부의 이전 프레임 메모리로부터 탐색영역의 제3부영역(A3)에 있는 탐색영역 데이타(SAD)가 하나씩 순차적으로 입력되고 버퍼부(402a)의 각 레지스터에 있는 값들은 앞단의 레지스터로 이동하게 된다.
또한 제2클럭제어신호(V1)가 '1'이고 제1클럭제어신호(V0)가 상승시(positive edge)이면 버퍼부(402a)의 8개 레지스터에 있던 값들은 첫 번째 처리과정과 두 번째 처리과정에서는 제2탐색영역 메모리(402)의 제1메모리(402c)의 마지막 행에 있는 8개의 레지스터로 이동하게 되며, 세 번째 처리과정에서는 제2선택부(402d)를 통해 제2탐색영역 메모리(402)의 제2메모리(402e)의 16번째 행에 있는 8개의 레지스터로 전달되어진다.
상기 제1, 제2탐색영역 메모리(400)(402)의 구조는 제9도와 제10도에 나타내었다.
제9도의 제1탐색영역 메모리(400)는 8×24개의 래치로 구성되어 있으며, 행 단위로 아래에서 위로 이동하는 구조를 가진다.
또한 제1, 제2, 제3선택부(402b)(402d)(400a)를 제어함에 의해 제1탐색영역 메모리(400)의 마지막 행에 입력되는 8개의 탐색영역 데이타를 제1탐색영역 메모리(400)의 첫 번째 행 또는 제2탐색영역 메모리(402)로부터 선택한다.
제10도의 제2탐색영역 메모리(402)는 8×24개의 래치로 구성되어 있으며, 상위 7×8개의 래치는 양방향(수직 및 수평)으로 탐색영역 데이타가 선택적으로 전달되는 구조를 가진다.
16번째 행과 17번째 행 사이에는 제2선택부(402d)를 사용해 16번째 행에 입력되는 탐색영역 데이타로서 17번째 행 또는 외부의 이전 프레임 메모리로부터 입력된 탐색영역 데이타를 선택한다.
또한 24번째 행 밑에는 제1선택부(402d)를 사용하여 24번째 행에 입력되는 데이타로서 첫 번째 행 또는 외부의 이전 프레임 메모리로부터 입력된 탐색영역 데이타를 선택한다.
이와같이, 제어부에서 발생된 제1, 제2클럭제어신호(V0)(V1)에 의해 제1, 제2탐색영역 메모리(400)(402)에 있는 탐색영역 데이타가 이차원 기본처리소자 어레이부(401)의 각 기본처리소자(PE)에 수직 또는 수평방향으로 입력되고, 첫 번째와 세 번째 처리과정에서의 제1클럭제어신호(V0)의 초기 7사이클과 두 번째와 네 번째 처리과정의 마지막 1사이클만 제외하고 매 사이클마다 기준블럭 데이타는 모든 기본처리소자(PE)에 동시에 가해져서 두 입력 데이타의 차의 절대값이 전술한 바와 같이, 누적부(401f)에 누적되며, 한번의 처리과정이 끝나면 64개의 탐색블럭에 대한 누적된 64개의 변위값이 각 기본처리소자(PE)의 누적부(401f)로부터 비트레지스터(401g)로 이동되고 각 기본처리소자(PE)의 비트레지스터(401g) 값은 한 비트씩 상위 비트부터 순차적으로 제1클럭제어신호(V0)의 사이클에 의해 비트순차 비교기(404)내에 있는 8개의 수직비교기로 출력된다.
상기 8개의 수직 비교기는 제1클럭제어신호(V0)의 매 사이클마다 8개의 기본처리소자(PE)들중에서 입력되는 8개의 변위값의 비트들중에서 가장 작은 변위값의 비트를 추출하여 그 값을 수평비교기로 보내고 또한 제1클럭제어신호(V0)의 16사이클 후에는 8개의 입력된 변위값 중에서 가장 작은 변위값을 갖는 기본처리소자(PE)의 행어드레스를 구하여 수평비교기로 출력하게 된다.
상기 수평 비교기는 제1클럭제어신호(V0)의 매 사이클마다 8개의 수직 비교기에서 입력되는 8개의 가장 작은 변위값에 대한 비트들과 앞 구한 가장 작은 변위값에 대한 비트를 포함한 9개의 비트값중에서 가장 작은 변위값의 비트값을 구하여 수평비교기의 16비트 레지스터에 저장하고 제1클럭제어신호(V0)의 16사이클 후에 8개의 수직 비교기에서 입력된 8개의 변위값과 수평비교기의 16비트 레지스터에 저장된 값을 완전히 비교하여 가장 작은 변위값과 이에 해당하는 기본처리소자(PE)의 어드레스를 구하여 수평비교기의 8비트 어드레스 레지스터에 저장한다.
이와같은 처리과정을 4번 거치게 되면 256개의 탐색블럭에 대한 변위값중에서 가장 작은 변위값과 이에 해당되는 기본처리소자(PE)의 변위벡터를 구하여 출력하게 된다.
따라서, 본 발명에서 제안한 이동예측 처리기(MEP)의 구조는 첫 번째와 세 번째 처리과정에서의 제1클럭제어신호(V0)의 초기 7사이클과 두 번째와 네 번째 처리과정의 마지막 1사이클만 제외하고는 전혀 아이들 타임이 없으므로 제1클럭제어신호(V0)의 272(2×(7+1+2×64)=272) 사이클만에 256개의 탐색블럭에 대한 변위값을 구할 수 있는 고속 이동예측 처리기 구조이다.
그리고, 제11도는 (c)(d)와 같은 제1, 제2클럭제어신호(V0)(V1)에 따라 (a)( b)와 같이, 제1, 제2탐색영역 메모리(400)(402)로부터 기본처리소자 어레이부(401)로 데이타가 전달되는 것을 나타낸 것이다.
제11도의 (d)와 같이 제1클럭제어신호(V0)의 초기 8사이클동안에는 제11도의 (c)와 같이, 제2클럭제어신호(V1)가 '1' 상태이며, 따라서 제11도의 (a)와 같이, 제1탐색영역 메모리(400)로부터 순차적으로 기본처리소자 어레이부(401)에 입력된다.
다음 제1클럭제어신호(V0)의 7사이클동안 제2클럭제어신호(V1)은 '0' 상태이며 이때에는 제11도의 (b)와 같이, 제2탐색영역 메모리(402)로부터 기본처리소자 어레이부(401)로 순차적으로 입력된다.
다음 제1클럭제어신호(V0)의 1사이클동안 제2클럭제어신호(V1)가 '1'상태가 되어 제1탐색영역 메모리(400)로부터 기본처리소자 어레이부(401)로 입력된다.
이와같은 과정을 반복하여 탐색영역 메모리의 데이타는 기본처리소자 어레이부(401)로 전달된다.
그리고, 제12도는 각 처리과정에서 탐색영역 부영역의 데이타가 이동예측 처리기(MEP)내의 제1, 제2탐색영역 메모리(400)(402) 및 기본처리소자 어레이부(401)로 전달되는 과정을 나타낸 것이다.
즉, 탐색영역의 3개의 제1, 제2, 제3부영역(A1)(A2)(A3) 각각을 다시 8×8로 구성된 블럭으로 표시할 때 기본처리소자 어레이부(401) 내부의 지연소자에 존재하는 데이타와 제1탐색영역 메모리(400) 및 제2탐색영역 메모리(402)에 존재하는 데이타를 각각의 처리과정별로 나타내며 또한 제3부영역(A3)의 데이타가 이동예측 처리기(MEP)내로 입력되는 과정을 나타낸다.
그리고, 제13도는 이전 프레임 메모리로부터 이동예측에 필요한 탐색영역 데이타를 전달하는 방법으로서, (a)에서 빗금친 부분은 새로운 기준블럭에 대해 이동예측을 수행시 초기에 이동예측 처리기(MEP)내의 제1탐색영역 메모리(400) 및 제2탐색영역 메모리(402)에 존재하는 탐색영역 데이타를 나타낸다.
(b)는 이전 프레임 메모리에서 제1밴드의 개념 및 그 제1밴드(BAND1)에 존재하는 데이타를 나타낸다.
(c)는 이전 프레임 메모리에서 제2밴드(BAND2)의 개념 및 그 제2밴드에 존재하는 데이타를 나타낸다.
(d)는 하나의 탐색영역 데이타 중 이전 프레임 메모리로부터 직접 데이타를 읽어오는 부분을 나타낸다.
그리고, 제14도는 상기 제1, 제2밴드의 데이타를 제1, 제2선입선출부(406)(407)를 사용하여 저장하고 제6선택부(408)를 사용하여 이동예측 처리기(MEP)내에 순차적으로 처음에는 제1밴드의 제1밴드의 선입선출부(406), 다음에는 제2밴드의 선입선출부(407)로부터 데이타를 전달하고 그리고, 상기 (d)에 해당하는 데이타는 이전 프레임 메모리로부터 직접 읽어와 이동예측 처리기(MEP)내로 전달하는 개념을 나타낸다.
제1밴드 및 제2밴드 버퍼는 제1, 제2선입선출부(406)(407)를 사용하여 데이타의 읽고 저장하는 것을 각각 제어하여 순차적으로 제2밴드의 데이타는 이동예측 처리기(MEP)내로 전달되며 동시에 제1밴드 버퍼로 입력되고 이전 프레임 메모리로부터 직접 읽어오는 데이타도 이동예측 처리기(MEP)내로 입력되고 동시에 제2밴드에 입력되어 저장된다.
이렇게 함으로써 이동예측 처리기(MEP) 외부에는 탐색영역을 기준으로 하여 제1밴드 및 제2밴드 데이타가 제1, 제2선입선출부(406)(407)에 저장되며 따라서 이전 프레임 메모리로부터 순차적으로 64개의 데이타만 읽어오면 된다.
한편, 외부에 존재하는 이전 프레임 메모리의 접근 시간은 수십나노초(second)가 걸려 하나의 기준블럭에 대한 탐색영역 전체를 읽어와서는 이동예측을 위해 소요되는 연산시간보다 입출력시간이 더 많이 소요되어 실시간 이동 예측이 불가능하다.
따라서 제14도와 같은 구조를 사용함에 의해 이전 프레임 메모리를 중복적으로 접근하지 않고 하나의 기준 블럭당 64개의 블럭 데이타를 한번만 읽어 이동 예측을 할 수 있다.
한편, 이동예측 처리기를 칩으로 구현시 가격 및 칩 구현의 효율성을 위해 입출력 핀 수를 줄이는 것이 요구되며 제14도에 나타낸 구조를 사용하는 경우 외부로부터 입력되는 탐색영역 데이타의 핀 수를 1/3으로 줄일 수 있다.
이상에서 상세히 설명한 바와 같이, 본 발명에 따르면 화상전화 및 화상회의 시스템에서의 움직이는 영상의 이동 예측을 위한 알고리즘중에 하나인 완전탐색 블럭정합 알고리즘을 이용하여 탐색블럭 정합 연산시 요구되는 클럭사이클 수를 줄여줌으로써 고속 이동 예측이 가능하고, 또한 기존의 한 방향 병렬 파이프라인 이동예측 처리기에서 나타나는 탐색 블럭의 수직 또는 수평 이동시 발생되는 아이들 타임을 현저하게 줄일 수 있는 효과가 있다.
Claims (9)
- 제어부에서 제공되는 제1, 제2클럭제어신호에 따라 이전 프레임메모리로부터 입력되는 256개의 전체 탐색영역 데이타를 각 단위별로 입력받아 저장 출력하는 제2탐색영역 메모리와; 상기 제1, 제2클럭제어신호에 따라 상기 제1탐색영역 메모리로부터 단위별로 입력되는 8×8개의 탐색영역 데이타를 저장하여 순차적으로 출력하는 제1탐색영역 메모리와; 외부의 현재 프레임 메모리로부터 입력되는 기준블럭 데이타를 저장하여 출력하는 기준블럭 메모리와; 상기 기준블럭 메모리에 저장된 이전의 기준블럭 데이타 또는 현재의 기준블럭 데이타를 수평방향으로 입력받고 제1탐색영역 메모리의 탐색영역 데이타 또는 제2탐색영역 데이타를 수평 및 수직방향으로 입력받아 이에 대한 차의 절대값을 구하고 이를 계속 누적하여 누적 64개의 변위벡타를 1비트씩 순차 출력하는 8×8개의 기본처리소자(PE)로 이루어진 기본처리소자 어레이수단과; 상기 기본처리소자 어레이수단에서 제공되는 누적값을 수평 수직으로 비교하여 이동벡터와 최소절대 오차값을 구하는 비트순차 비교수단으로 이루어짐을 특징으로 한 양방향 병렬 파이프라인 구조에 근거한 탐색 이동 예측처리기.
- 제1항에 있어서, 제2탐색영역 메모리는 외부의 제2선택제어신호 및 제1, 제2클럭제어신호에 따라 이전 프레임 메모리에서 입력되는 8비트의 탐색영역 데이타를 저장하여 출력하는 버퍼수단과; 상기 버퍼수단에서 입력되는 현재의 탐색영역 데이타와 이전의 탐색영역 데이타를 선택하여 출력하는 제1선택수단과; 상기 제1선택수단에서 선택되어 얻어진 탐색영역 데이타를 저장하여 출력하는 제1메모리와; 상기 제1메모리에서 얻어진 이전의 탐색영역 데이타와 제1래치수단에서 얻어진 현재의 탐색영역 데이타를 선택하여 출력하는 제2선택수단과; 상기 제2선택수단에서 선택되어 얻어진 이전 또는 현재의 탐색영역 데이타를 저장하여 기본처리소자 어레이수단, 제1선택수단 및 제1탐색영역 메모리에 제공하는 제2메모리로 이루어짐을 특징으로 한 양방향 병렬 파이프라인 구조에 근거한 탐색 이동 예측기.
- 제1항에 있어서, 제1탐색영역 메모리는 상기 제2탐색영역 메모리의 제2메모리에서 입력되는 현재의 탐색영역 데이타와 궤환되어 입력되는 이전의 탐색영역 데이타를 선택하여 출력하는 제3선택수단과; 상기 제3선택수단에서 선택되어 입력되는 이전 또는 현재의 탐색영역 데이타를 저장하여 기본처리소자 어레이부 및 제1선택수단에 제공하는 제3메모리로 이루어짐을 특징으로 한 양방향 병렬 파이프라인 구조에 근거한 탐색 이동 예측처리기.
- 제1항에 있어서, 기본처리소자 어레이수단의 각각의 기본처리소자(PE)는 상기 제1탐색영역 메모리로부터 입력되는 8비트의 탐색영역 데이타를 저장하여 다음 행의 기본처리소자에 제공하는 제1레지스터와; 상기 제1탐색영역 메모리 및 제2탐색영역 메모리로부터 각각 입력되는 8비트의 탐색영역 데이타를 제어부의 제2클럭제어신호에 의해 선택하여 출력하는 선택수단과; 상기 선택수단에서 선택된 8비트의 탐색영역 데이타를 저장하여 다음 열의 기본처리소자에 제공하는 제2레지스터와; 상기 선택수단에서 선택된 탐색영역 데이타와 현재 또는 이전의 기준블럭 데이타를 연산하여 차값을 구하는 감산부와; 상기 감산부에서 구해진 차값에 절대치를 취하는 절대값 처리부와; 상기 감산부에서 구해진 차값에 따라 절대값 처리부에서 처리된 현재의 절대치값과 이전의 절대치값을 연산하여 변위값을 구하는 누적부와; 상기 누적부에서 구해진 누적된 변위값을 외부의 제어신호에 의해 저장하여 비트 순차 비교수단에 제공하는 비트레지스터로 이루어짐을 특징으로 한 양방향 병렬 파이프라인 구조에 근거한 탐색이동 예측처리기.
- 제1항에 있어서, 제어부에서 발생된 제1선택제어신호에 따라 외부의 기준블럭 데이타 및 기준블럭 메모리의 데이타를 선택하여 기본처리소자 어레이수단 및 기준블럭 메모리에 제공하는 선택수단을 더 포함하여 구성함을 특징으로 한 양방향 병렬 파이프라인 구조에 근거한 탐색이동 예측처리기.
- 제1항에 있어서, 제1클럭제어신호는 기준블럭 데이타와 탐색영역 데이타의 입력을 제어하는 신호이고, 제2클럭제어신호는 제1, 제2탐색영역 메모리의 선택과 그 탐색영역 메모리의 데이타 행 이동을 제어하는 신호인 것을 특징으로 한 양방향 병렬 파이프라인 구조에 근거한 탐색이동 예측처리기.
- 제1항에 있어서, 제1, 제2탐색영역 메모리는 8×24개으 레지스터로 이루어진 것을 특징으로 한 양방향 병렬 파이프라인 구조에 근거한 탐색이동 예측처리기.
- 제1항에 있어서, 기준블럭 메모리는 8×8개의 레지스터로 이루어진 것을 특징으로 한 양방향 병렬 파이프라인 구조에 근거한 탐색이동 예측처리기.
- 제1항에 있어서, 외부의 이전 프레임 메모리로부터 입력되는 탐색영역 데이타를 선입선출하는 제2선입선출수단과; 상기 제2선입선출수단에서 제공되는 탐색영역 데이타를 선입선출하는 제1선입선출수단과; 상기 제1, 제2선입선출수단의 탐색영역 데이타 및 외부의 이전 프레임 메모리의 탐색영역 데이타중 하나의 데이타를 선택하여 이동예측 처리기의 제2탐색영역 메모리에 제공하는 선택수단을 더 포함하여 이루어진 것을 특징으로 한 양방향 병렬 파이프라인 구조에 근거한 탐색이동 예측처리기.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950047886A KR0178302B1 (ko) | 1995-12-08 | 1995-12-08 | 양방향 병렬 파이프라인 구조에 근거한 탐색 이동 예측처리기 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950047886A KR0178302B1 (ko) | 1995-12-08 | 1995-12-08 | 양방향 병렬 파이프라인 구조에 근거한 탐색 이동 예측처리기 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR970057953A KR970057953A (ko) | 1997-07-31 |
KR0178302B1 true KR0178302B1 (ko) | 1999-05-01 |
Family
ID=19438635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019950047886A KR0178302B1 (ko) | 1995-12-08 | 1995-12-08 | 양방향 병렬 파이프라인 구조에 근거한 탐색 이동 예측처리기 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR0178302B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102540491B1 (ko) | 2022-07-14 | 2023-06-13 | (주)테마엔지니어링종합건축사사무소 | 건축물의 비상 대피장치 |
KR102540492B1 (ko) | 2022-07-14 | 2023-06-13 | (주)테마엔지니어링종합건축사사무소 | 건축물의 화재발생시 대피가이드 시스템 |
KR102540487B1 (ko) | 2022-07-14 | 2023-06-13 | (주)테마엔지니어링종합건축사사무소 | 건축물 복도용 대피 시스템 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW361051B (en) * | 1997-01-09 | 1999-06-11 | Matsushita Electric Ind Co Ltd | Motion vector detection apparatus |
KR100549919B1 (ko) * | 2000-12-15 | 2006-02-06 | 주식회사 케이티 | 소요클럭사이클수 감축을 위한 초대규모 집적회로 장치 |
-
1995
- 1995-12-08 KR KR1019950047886A patent/KR0178302B1/ko not_active IP Right Cessation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102540491B1 (ko) | 2022-07-14 | 2023-06-13 | (주)테마엔지니어링종합건축사사무소 | 건축물의 비상 대피장치 |
KR102540492B1 (ko) | 2022-07-14 | 2023-06-13 | (주)테마엔지니어링종합건축사사무소 | 건축물의 화재발생시 대피가이드 시스템 |
KR102540487B1 (ko) | 2022-07-14 | 2023-06-13 | (주)테마엔지니어링종합건축사사무소 | 건축물 복도용 대피 시스템 |
Also Published As
Publication number | Publication date |
---|---|
KR970057953A (ko) | 1997-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0626791B1 (en) | Motion vector detection apparatus for moving pictures | |
CA2014854C (en) | Circuit implementation of block matching algorithm with fractional precision | |
US6687303B1 (en) | Motion vector detecting device | |
US8218635B2 (en) | Systolic-array based systems and methods for performing block matching in motion compensation | |
KR101578052B1 (ko) | 움직임 추정 장치 및 이를 구비하는 동영상 부호화 장치 | |
Lai et al. | A data-interlacing architecture with two-dimensional data-reuse for full-search block-matching algorithm | |
US20050238102A1 (en) | Hierarchical motion estimation apparatus and method | |
US7126991B1 (en) | Method for programmable motion estimation in a SIMD processor | |
US8175161B1 (en) | System and method for motion estimation | |
US6687299B2 (en) | Motion estimation method and apparatus for interrupting computation which is determined not to provide solution | |
KR0178302B1 (ko) | 양방향 병렬 파이프라인 구조에 근거한 탐색 이동 예측처리기 | |
Baglietto et al. | Parallel implementation of the full search block matching algorithm for motion estimation | |
Baek et al. | A fast array architecture for block matching algorithm | |
JP3041658B2 (ja) | 高並列動き補償演算器 | |
KR100359091B1 (ko) | 움직임추정장치 | |
US6968011B2 (en) | Motion vector detecting device improved in detection speed of motion vectors and system employing the same devices | |
Muralidhar et al. | Efficient architecture for variable block size motion estimation in H. 264/AVC | |
KR100926440B1 (ko) | 영상부호화를 위한 블록 매칭 움직임 추정 장치 | |
KR100202310B1 (ko) | 비디오 반화소 단위 움직임 추정장치 | |
KR100223052B1 (ko) | 비디오 움직임 추정장치 | |
KR100246033B1 (ko) | 고속 실시간 처리 움직임 추정을 위한 연산방법 및 이를 위한 연산장치 | |
JP2866325B2 (ja) | 動きベクトル探索装置 | |
US20020101926A1 (en) | Block matching motion estimator reducing its clock cycles and method thereof | |
Dias et al. | Fully parameterizable vlsi architecture for sub-pixel motion estimation with low memory bandwidth requirements | |
Pyen et al. | An efficient VLSI architecture for full-search variable block size motion estimation in H. 264/AVC |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20030730 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |