KR100225690B1 - 상관도 연산장치, 병렬상관도 연산장치 및 상관도연산방법 - Google Patents
상관도 연산장치, 병렬상관도 연산장치 및 상관도연산방법 Download PDFInfo
- Publication number
- KR100225690B1 KR100225690B1 KR1019960010636A KR19960010636A KR100225690B1 KR 100225690 B1 KR100225690 B1 KR 100225690B1 KR 1019960010636 A KR1019960010636 A KR 1019960010636A KR 19960010636 A KR19960010636 A KR 19960010636A KR 100225690 B1 KR100225690 B1 KR 100225690B1
- Authority
- KR
- South Korea
- Prior art keywords
- pixel data
- correlation
- pixel
- candidate
- block
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
탐색영역의 확장이 용이하고, 탐색영역을 넓힌 경우에도 고속처리를 실현할 수 있고 더구나 간편한 구성으로 실현할 수 있는 상관도 연산장치를 제공한다.
탐색영역 메모리에는 ((m×M)×L)개의 후보블록을 포함하는 탐색영역의 화소데이터가 격납되어 있다. 상관도 연산부는 (M×N) 화소의 참조화상블록과 각 후보블록의 상관도 연산을 탐색영역 메모리로부터 읽어내어진 화소데이터를 이용하여 (M×L)개의 후보블록으로 구성되는 후보블록군마다 파이프라인 처리에 의하여 실행한다. 탐색영역 메모리는 4개의 화소데이터를 동일한 클록 사이클에서 출력하는 기능을 가지므로, 상관도 연산부는 각 후보블록군에 대한 파이프라인 처리를 연속하여 실행할 수 있다. 이로써, (M×N) 화소의 참조화상블록에 대하여 ((m×M)×L)개 후보블록의 상관도를 연속하여 연산하는 것이 가능해 진다.
Description
제1도는 블록매칭법 및 운동벡터를 설명하기 위한 도면으로서, 참조화상블록, 후보블록 및 탐색영역을 나타내는 도면.
제2a도는 탐색영역 E 내의 각 후보블록 Bb를 나타내는 도면, 제2b,c도는 본 발명의 실시예의 후보블복 Bb의 탐색순서를 나타내는 도면.
제3도는 본 발명의 실시예에 관한 상관도 연산장치의 구성을 나타내는 블록도
제4도는 본 발명의 제1실시예에 관한 상관도 연산장치의 상관도 연산부 구성을 나타내는 블록도.
제5도는 본 발명의 제1실시예에 관한 상관도 연산장치의 연산제어부 구성을 나타내는 블록도.
제6도는 제5도에 나타내는 연산제어부의 제2제어부 구성을 나타내는 회로도.
제7도는 제4도에 나타내는 상관도 연산부의 화소 연산부 구성을 나타내는 블록도.
제8도는 본 발명의 실시예에 관한 상관도 연산장치의 탐색영역 메모리의 각 기억 소자부에 격납되는 화소데이터를 나타내는 도면.
제9도는 본 발명의 실시예에 관한 상관도 연산장치에 의하여 실현되는 파이프라인 처리를 나타내는 도면이고, 각 클록 사이클에서 화소 연산부가 요구하는 화소데이터를 나타내는 도면.
제10도는 본 발명의 제1실시예에 관한 상관도 연산장치의 동작을 설명하기 위한 도면이고, 제10a도는 메인 제어부의 동작을 나타내는 도면, 제10beh는 각 기억 소자부로부터 읽어내어지는 화소데이터를 나타내는 도면, 제10c도는 탐색영역으로부터 출력되는 화소데이터를 나타내는 도면, (d)는 상관도 연산부 내의 제1선택기가 선택하는 버스를 나타내는 도면.
제11도는 탐색영역을 수평방향으로 끝까지 순차 주사하는 방법에 의하여 참조화상 블록과 각 후보블록의 상관도를 연산하기 위하여 이용하는 상관도 연산부의 내부구성을 나타내는 블록도.
제12도는 제11도에 나타내는 상관도 연산부에 의한 파이프라인 처리의 흐름을 나타내는 도면.
제13도는 본 발명의 제2실시예에 관한 상관도 연산장치의 상관도 연산부 구성을 나타내는 블록도.
제14도는 본 발명의 제2실시예에 관한 상관도 연산장치의 상관도 연산부 내의 화소 연산부 구성을 나타내는 블록도.
제15도는 본 발명의 제3실시예에 관한 병렬상관도 연산장치의 구성을 나타내는 블록도.
* 도면의 주요부분에 대한 부호의 설명
10 : 탐색영역 메모리 20 : 메인 제어부
30 : 상관도 연산부 40 : 연산제어부
Bb : 후보블록 Bp : 참조화상 블록
E : 탐색영역 Fb : 후보프레임
Fp : 참조화상 프레임 MV : 운동벡터
[발명의 배경]
본 발명은, 화상데이터이 운동벡터 검출에 유효한 2종류의 화상데이터 상관도를 연산하는 상관도 연산장치, 병렬상관도 연산장치 및 상관도 연산방법에 관한 것이다.
동화상의 화상압축을 실현하는 방법으로서, 하나 전의 화면중 어느 부분이 현재의 화면에서는 모든 장소로 이동한 것인가를 나타내는 정보(운동벡터)를 이용하여 시간적 용장성을 줄이는 방법이 있다.
이 운동벡터를 추출하기 위한 하나의 방법으로서, 현프레임화상(참조화상 프레임)과 전프레임화상(후보프레임)을 비교하여 현프레임화상이 어느 블록(참조화상 블록)과 유사한지에 따른 (즉 상관이 높은) 블록을 전프레임 화상으로부터 추출하여 운동벡터를 검출한다는, 이른바 블록매칭법이 있다. 이 블록매칭법은 화상압축 부호화의 움직임보상 예측에 광범위하게 이용되고 있다.
블록매칭법에서는 하나의 참조화상 블록에 대하여 전프레임 화상내의 복수개후보블록과의 상관도를 각각 연산하고, 상관도가 높은 후보블록을 선택하여 운동벡터를 검출한다. 여기에서, 2개의 화상블록 사이의 상관을 구하기 위해서는 각 화상블록의 화소데이터를 각각 연산하여야 한다. 또, 최근의 화상압축 기술에서는 상관도가 높은 블록을 선출하는 가능성을 높이기 위하여 탐색영역을 넓혀 후보블록의 수를 증가시키는 경향이 있다. 이 때문에 2개 화상블록의 상관도를 고속으로 연산할 수 있는 상관도 연산장치의 필요성이 높아지고 있다.
종래의 상관도 연산장치로서, 상관도를 연산하는 복수개의 연산기를 구비하고, 이들을 병렬 동작시킴으로써 고속화를 도모한 것이 있다.
예를 들면, 일본국 특개평 제6-141304호에 개시된 상관도 연산장치는 다음과 같은 구성으로 된다. 참조화상 블록의 사이즈가 (M×N) 화소이고, 후보블록수도 또한 (M×N)개인 경우에 화소값 격납용 레지스터와 멀티플렉서 및 차분절대값 연산기로 구성되는 (M×N)개의 연산유니트를 M×N의 행렬 형상으로 배치하고, 각 연산유니트의 출력데이터선을 가산기를 통하여 파이프라인 접속하여 참조화상 블루 및 후반블록의 화소데이터를 일정한 순서로 차분절대값 연산기에 공급한다. 이로써, 상관도의 평가지표인 차분절대값의 한계를 클록 사이클마다 순차 출력하는 것이 가능해지고, 상관도 연산의 고속화가 실현되고 있다.
그러나 종래의 상관도 연산장치에는 이하와 같은 문제점이 있다.
상기의 상관도 연산장치에 의하면 (M×N) 화소의 참조화상 블록에 대하여 (M×N)개의 후보블록 상관도밖에 연산할 수 없다. 이 때문에, 상관도가 높은 후보블록을 선출하는 가능성을 높이기 위하여 탐색영역을 넓혀 후보블록의 수를 증가하는 일은 매우 곤란하였다.
화상압축의 국제 규격인 MPEGDP 따라서 화상을 압축하는 경우, 적은 부호량에 의하여 높은 화질을 실현하기 위하여, 예를 들면 16×16 화소의 참조화상 블록에 대하여 후보블록의 수를 32×32개 또는 48×48개로 하여 탐색영역을 넓히는 일이 일반적으로 실행되고 있다. 따라서, 탐색영역을 넓힌 경우에도 고속 처리를 실행할 수 있고, 또 회로면적이 작은 상관도 연산장치가 불가결하다.
[발명의 개요]
본 발명은 탐색영역의 확장이 용이하고, 탐색영역을 넓힌 경우에도 고속 처리를 실행할 수 있고, 또 간편한 구성으로 실현할 수 있는 상관도 연산장치를 제공하는 것을 과제로 한다.
상기의 과제를 해결하기 위하여, 본 발명은 (M×N) 화소의 참조화상 블록에 대하여 블록매칭법에 의하여 ((m×M)×L)개의 후보블록 상관도를 연산하는 상관도 연산장치로서 (M, N, L, m은 자연수, L≥N, m≥2), 상관도의 연산을 (M×L)개의 후보블록으로 구성되는 후보블록군마다 파이프라인 처리에 의하여 실행하고, 하나의 후보블록군에 대한 연산에 필요한 화소데이터와 상기 하나의 후보블록군에 대한 연산에 계속하여 처리되는 다른 후보블록군에 대한 연산에 필요한 화소데이터를 동일한 클록 사이클에서 파이프라인 처리에 이용하는 것이 가능한 것이다.
이와 같은 상관도 연산장치에 의하여 각 후보블록군마다 파이프라인 처리를 연속하여 실행할 수 있고, (M×N) 화소의 참조화상 블록에 대한 ((m×M)×L)개의 후보블록 상관도가 1클록 사이클마다 순차 출력이 가능해 진다.
상기 상관도 연산장치는, 구체적으로는, 부여받은 클록을 기본으로 하여 메모리 제어신호 및 연산제어신호를 생성하여 출력하는 메인 제어부와, ((m×M)×L)개의 후보블록을 포함하는 탐색영역의 화소데이터를 격납하고 있고, 상기 메인 제어부로부터 출력된 메모리 제어신호의 지시에 따라서 격납한 화소데이터를 출력하는 탐색영역 메모리와, (M×N) 화소의 참조화상 블록의 화소데이터를 유지하고 있고, 참조화상 블록과 후보블록의 상관도 연산은, 유지하고 있는 참조화상 블록의 화소데이터 및 상기 탐색영역 메모리로부터 출력된 화소데이터를 이용하여 (M×L)개의 후보블록으로 구성되는 후보블록군마다 파이프라인 처리에 의하여 실행하는 상관도 연산부와, 상기 메인 제어부로부터 출력된 연산제어신호의 지시에 따라서 상기 상관도 연산부를 제어하는 연산제어부를 구비하고, 상기 탐색영역메모리는 하나의 후보블록군에 대한 연산에 필요한 화소데이터와 상기 하나의 후보블록군에 대한 연산에 계속하여 처리되는 다른 후보블록군에 대한 연산에 필요한 화소데이터를 상기 상관도 연산부에 동시에 공급하는 기능을 가지고 있는 것이 바람직하다.
이로써, 상기 상관도 연산부는 각 후보블록군에 대한 연산을 연속하여 실행 가능하게 되고, (M×N) 화소의 참조화상 블록에 대한 ((m×M)×L)개 후보블록의 상관도가 1블록마다 순차 출력이 가능해 진다.
또, 상기 탐색영역 메모리는 ((m×M)×L)개의 후보블록으로 구성되는 ((m+1)×M-1)열 (L+N-1)) 행의 탄색영역을 (M×(L+N-1))화소마다 분할하여 얻어진 (m+1)개의 부분탐색영역의 화소데이터를 각각 기억하고 있고, 상기 메인 제어부로부터 출력된 메모리 제어신호에 의한 억세스의 지시에 따라서 화소데이터를 읽어내는 (m+1)개의 기억 소자부와, 상기 (m+1)개의 기억 소자부로부터 읽어낸 화소데이터를 타이밍을 조정한 후에 상기 상관도 연산부로 출력하는 타이밍 조정수단을 구비하고 있는 것이 바람직하다.
이로써, 상관도 연산부가 요구하는 복수의 화소데이터를 탐색영역 메모리로부터 간단하게 출력할 수 있다. 또, 타이밍 조정수단은 선택기 및 지연수단에 의하여 간편하게 구성되므로, 상기 탐색영역 메모리를 면적이 작은 회로에 의하여 실현할 수 있다.
또, 상기 상관도 연산부는 상기 탐색영역 메모리로부터 출력된 4개의 화소데이터 중 다른 하나의 화소데이터를 각각 선택 출력하는 2개의 제1선택기와, 참조화상 블록의 화소데이터를 각각 유지하고, 상기 2개의 제1선택기에 의하여 선택 출력된 2개의 화소데이터 중 하나를 선택하여 유지하고 있는 화소데이터와의 평가값을 연산하는 M개의 화소 연산부를 각각 가지고 있는 N 개의 라인연산부를 구비하고 있는 것이 바람직하다.
이로써, 탐색영역을 확장한 경우에도 화소 연산부에 1클록 사이클마다 화소데이터를 공급받음으로, 처리의 고속화가 실현된다. 또, 같은 구성으로 구성되는 라인연산부를 배치하는 것만으로 상관도 연산부가 구성되므로, 상관도 연산장치 구성의 간략화가 실현된다.
또, 상기 각 라인연산부에서 M개의 화소 연산부가 제1선택기에 의하여 선택 출력된 화소데이터를 전송하는 버스의 양측에 대칭적으로 2열로 배치되어 있는 것이 바람직하다.
이로써, 각 라인연산부내 또는 라인연산부 사이의 배선길이가 단축된다.
또, 상기 상관도 연산부는 참조화상 블록 각 행의 M개 화소데이터를 유지하고, 상기 탐색영역 메모리로부터 출력된 화소데이터와 유지한 화소데이터의 평가값을 연산하는 N개의 라인연산부를 구비하고, 상기 연산제어부는 상기 N개의 라인연산부를 각각 제어하는 N개의 라인 제어부를 구비하고 있는 것이 바람직하다.
이로써, 라인연산부와 라인 제어부를 조합시켜 배치하는 것만으로 상관도 연산부 및 연산제어부가 구성되므로 상관도 연산장치 구성의 간략화가 실현된다.
또, 상기 상관도 연산부는 참조화상 블록의 화소데이터를 각각 유지하고, 상기 탐색영역 메모리로부터 출력된 4개의 화소데이터 중 하나를 선택하여, 유지하고 있는 화소데이터와의 평가값을 연산하는 (M×N)개의 화소 연산부를 구비하고 있는 것이 바람직하다.
이로써, 탐색영역을 확장한 경우에도 화소 연산부에 1클록 사이클마다 화소데이터가 공급되므로, 처리의 고속화가 실현된다. 또, 같은 구성으로 구성되는 라인연산부를 배치하는 것만으로 상관도 연산부가 구성되므로 상관도 연산장치 구성의 간략화가 실현된다.
[실시예]
[제1실시예]
본 발명의 제1실시예에 관한 상관도 연산장치에 대하여 도면을 참조하여 설명한다.
본 실시예는 블록매칭법에 의하여 모든 탐색으로 운동벡터를 구할 때, (M×N) 화소의 참조화상 블록에 대하여 (m×M)×L개의 후보블록 각각의 상관도를 구하는 것이다. 이 경우, 탐색영역의 크기는 ((m+1)×M-1)×(L+N-1) 화소이다. 여기에서, M, N. L, m은 각각 임의의 자연수(다만, L≥N, m≥2)이다.
이하, 설명을 위하여, M=4, N=3, L=3, m=2, 즉 참조화상 블록의 블록사이즈를 4×3 화소, 후보블록의 수를 (2×4)×3개로 한다. 또, 상관도의 평가지표로서 참조화상 블록과 후보블록의 화소데이터 차분절대값의 합계를 구하는 것으로 한다.
제1도는 블록매칭법 및 운동벡터를 설명하기 위한 도면이다. 제1도에 있어서, Fp는 참조화상 프레임(현재의 화면), Bp는 참조화상 블록, Fb는 후보프레임(하나 전의 화면), Bb는 후보블록, E는 탐색영역, MV는 운동벡터이다. 또, r은 참조화상 블록 Bp의 각 화소, C는 탐색영역 E의 각 화소를 표시한다.
운동벡터란 하나 전의 화면중 어느 부분이 현재의 화면에서는 어디로 이동하는지를 나타내는 정보이다. 블록매칭법에서는 참조화상 블록 Bp와 가장 상관도가 높은 후보블록 Bb를 탐색영역 E중에서 검출하고, 그 위치의 어긋남을 나타내는 벡터를 운동벡터로 한다. 본 실시예에서는 상관도의 평가지표인 차분 절대값의 합계가 최소가 되는 후보블록 Bb를 구하고, 운동벡터 MV를 검출한다.
본 실시예에 관한 상관도 연산장치의 연산동작 및 구성의 개략은 이하와 같다.
상관도의 평가지표를 계산하는 각 연산부는 우선, 참조화상 블록의 각 화소 데이터를 유지하고, 다음에 각 후보블록의 화소데이터를 블록사이클마다 받으며, 유지하고 있는 참조화상 블록의 화소데이터와 입력된 후보블록의 화소데이터의 차분절대값을 연산한 후, 전단의 연산부로부터 출력된 차분절대값과의 가산을 실행하고, 가산결과를 다음 단의 연산부로 출력한다. 즉, 각 연산부는 이른바 캐스케이드 접속의 구성을 취하고 있다.
또, 본 실시예에 관한 상관도 연산장치는 후보블록의 탐색순서, 및 이 탐색순서를 실현하기 위한 각 연산부에 대한 데이터 공급수단, 이 데이터 공급수단을 제어하는 수단, 및 각 수단의 배치구성에 특징이 있다.
제2(a)도는 탐색영역 E 내의 각 후보블록 Bb의 범위를 나타내는 도면이다. 예를 들면, 후보블록 Bb0,0은 탐색영역 E의 왼쪽 윗 모서리에 상당하고, 화소 C0,0~C3,0, C0,1~C3,1 및 C0,2~C3,2로 구성된다. 또, 후보블록 Bb7,2는 탐색 영역 E의 오른쪽 아래 모서리에 상당하고, 화소 C7,2~Ca,2, C7,3~Ca,3 및 C7,4~Ca,4로 구성된다. 8×3개의 후보블록 Bb에 의하여 11×5 화소의 탐색영역 E가 구성되어 있다.
제2도(b) 및 (c)는 본 실시예의 후보블록 Bb의 탐색순서를 나타내는 도면이다. 제2도(b) 및 (c)에서, 각 후보블록 Bb의 왼쪽 윗 모서리의 화소를 그 후보블록 Bb의 대표점으로 하고, 대표점의 움직임을 나타내는 화살표에 의하여 후보블록 Bb의 탐색순서를 표시하고 있다.
제2b도에 나타내는 바와 같이, 우선, 탐색영역 E내의 왼쪽 위의 후보블록 Bb0,0부터 시작하여 수평방향으로 4(=M)개의 후보블록 Bb0,0, Bb1,0, Bb2,0, Bb3,0을 차례로 처리한다(스텝1). 이어서, 수직방향으로 1단 내려서 후보블록 Bb0,1로부터 수평방향으로 4개의 후보블록을 처리한다. 같은 처리를 3(=L)회 반복(스텝2)함으로써 12(=M×L)개의 후보블록 Bb0,0~Bb3,2를 처리한다.
이어서, 제2c도에 나타내는 바와 같이, 후보블록 Bb4,0부터 시작하여 수평방향으로 4(=M)개의 후보블록 Bb4,0, Bb5,0, Bb6,0, Bb7,0을 차례로 처리하고, 다음에 수직방향으로 1단 내려서 후보블록 Bb4,1로부터 수평방향으로 4개의 후보블록을 처리하는 동작을 3(=L)회 반복한다. 이로써, 12(=M×L)개의 후보블록 Bb4,0~Bb7,2를 처리한다.
종래의 상관도 연산장치를 이용하여 파이프라인 처리를 실행한 경우, 제2도 (b)에 나타내는 처리와 제2c도 에 나타내는 처리를 연속하여 처리할 수 있고, 이 때문에, 수 사이클(제2도에 나타낸 후보블록에서는 12 사이클)의 상관도가 산출되지 않는 기간이 존재하여 버린다.
그런데 본 실시예에 관한 상관도 연산장치에 의하면 (m×M)×L(=(4×2)×3)개의 후보블록을 연속하여 처리할 수 있다. 또, 본 실시예에서는 N=L=3으로하여 설명의 간략화를 도모하였으나, L은 N 이상의 자연수라면 하등 문제가 없다.
제3도는 본 실시예에 관한 상관도 연산장치의 구성을 나타내는 블록도이다. 제3도에 있어서, 10은 탐색영역 메모리, 20은 메인 제어부, 30은 상관도 연산부, 40은 연산제어부이다.
탐색영역 메모리(10)는 기억 소자부 11a~11c, 제1메모리 선택기(12a), 제2 메모리 선택기(12b) 및 지연수단(13)에 의하여 구성되어 있다. 기억 소자부(11a~11c)에는 탐색영역의 화소데이터가 격납되어 있고, 탐색영역 메모리(10)는 메인 제어부(20)로부터 출력된 메모리 제어신호(24)에 따라서 탐색영역내의 4개 화소데이터를 버스 A1, A2, B1, B2를 통하여 상관도 연산부(30)로 출력한다. 지연수단(13)은 지연회로(13a~13d) 및 M 화소 지연회로(13e~13f)에 의하여 구성되어 있다. 또, 제1메모리 선택기(12a), 제2메모리 선택기(12b) 및 지연수단(13)에 의하여 타이밍 조정수단이 구성되어 있다.
메인 제어부(20)는 클록생성회로(25), 카운터(26) 및 어드레스 해석기(27)에 의하여 구성되어 있고, 탐색영역 메모리(10)에 메모리 제어신호(24)를 출력하며, 연산제어부(40)로 연산제어신호(23)를 출력한다.
클록생성회로(25)는 입력된 클록(21)을 기본으로하여 클록(21)과 같은 위상의 클록(홀수 클록)(24a), 클록(21)과 반대 위상의 클록(짝수 클록)(24b) 및 클록(21)의 2배의 주파수를 가지는 2배 클록(24c)을 생성하고, 탐색영역 메모리(10)로 출력한다. 카운터(26)는 개시신호(22)의 지시에 따라서 2배 클록(24c)에 동기하여 계수를 개시하고, 계수데이터를 어드레스 해석기(27)로 출력한다. 어드레스 해석기(27)는 카운터(26)의 계수데이터를 기본으로 하여 어드레스(24d) 및 연산제어신호(23)를 생성하는 디코더이고, 연산제어부(40)로 연산제어신호(23)를 출력하며, 탐색영역 메모리(10)로 어드레스(24d)를 출력한다. 메모리 제어신호(24)는 홀수클록(24a), 짝수클록(24b), 2배 클록(24c) 및 어드레스(24d)로 구성된다.
기억 소자부(11a~11c)에는 메인 제어부(20)로부터 출력된 2배 클록(24c) 및 어드레스(24d)가 부여된다. 부여된 어드레스(24d)에 따라서 각 기억 소자부(11a~11c)로부터 2배 클록(24c)의 사이클마다 화소데이터가 읽어내어진다. 또, 제1, 제2메모리 선택기(12a, 12b)는 홀수클록(24a)에 의하여 변환이 행해진다. 2배 클록(24c)이 홀수 사이클일 때, 제1메모리 선택기(12a)는 기억소자부(11a)로부터 읽어내어진 화소데이터를 선택하여 지연회로(13a)로 출력하고, 제2메모리 선택기(12b)는 기억 소자부(11b)로부터 읽어내어진 화소데이터를 선택하여 지연회로(13c)로 출력한다. 한편, 2배클록(24c)이 짝수사이클일 때, 제1메모리 선택기(12a)는 기억 소자부(11b)로부터 읽어내어진 화소데이터를 선택하여 지연회로((13c)로 출력한다. 한편, 2배 클록(24c)이 짝수사이클일 때, 제1메모리 선택기(12a)는 기억 소자부(11b)로부터 읽어내어진 화소데이터를 선택하여 지연회로(13b)로 출력하며, 제2메모리 선택기(12b)는 기억 소자부(11c)로부터 읽어내어진 화소데이터를 선택하여 지연회로(13d)로 출력한다. 이와 같은 동작에 의하여 클록(21)의 1사이클마다 기억 소자부(11a~11c)로부터 4개의 화소데이터를 읽어낼 수 있다.
지연회로(13a, 13c)는 홀수클록(24a)에 의하여 화소데이터가 입력되고, 지연회로(13b, 13d)는 짝수클록(24b)에 의하여 화소데이터가 입력된다. 지연회로(13a, 13b)는 입력된 화소데이터를 각각 버스 A1, A2로 출력한다. 또, 지연회로(13c, 13d)는 입력된 화소데이터를 각각 M 화소지연회로(13e, 13f)로 출력한다. M 화소지연회로(13e, 13f)는 입력된 화소데이터를 M(=4) 클록 정도 지연한 후, 각각 버스 B1, B2로 출력한다.
상관도 연산부(30)는 부여된 M×N 화소의 참조화상 블록(51)에 대하여 각 후보블록과의 상관도를 버스 A1, A2, B1, B2를 통하여 입력된 화소데이터를 이용하여 파이프라인 처리에 의하여 연산하고, 상관도 데이터(31m)를 출력한다.
연산제어부(40)는 메인 제어부(20)로부터 출력된 연산제어신호(23)의 지시에 따라서 격납제어신호(41a~41l), 제1변환신호(42a~42f) 및 제2 변환신호(43a~43l)를 상관도 연산부(30)로 출력한다.
상관도 연산부(30) 및 연산제어부(40)에 대하여 제4도 내지 제7도를 이용하여 더욱 상세하게 설명한다.
제4도는 상관도 연산부(30)의 내부 구성을 나타내는 블록도이다. 제4도에 나타내는 바와 같이 상관도 연산부(30)는 4(=M)개의 화소 연산부와 2개의 제1선택기를 각각 가지는 3(=N)개의 라인연산부에 의하여 구성되어 있다. 라인연산부(32~34)의 내부구성은 동일하고, 또, 화소 연산부(32a~32d, 33a~33d, 34a~34d)의 내부 구성은 동일하다.
라인연산부(32)는 화소 연산부(32a~32d) 및 제1선택기(32e, 32f)로 구성되어 있다. 제1선택기(32e)는 버스 A1, A2에서 전송되는 2개의 화소데이터 중 하나를 선택하여 버스 32A로 출력하고, 제1선택기(32f)는 버스 B1, B2에서 전송되는 2개의 화소데이터 중 하나를 선택하여 버스 32B로 출력한다. 화소 연산부(32a~32d)는 참조화상 블록(51)의 화소데이터를 각각 축적하고 있고, 버스 32A 또는 32B에서 전송되는 후보블록의 화소데이터를 읽어들여 참조화상 블록의 화소데이터와의 차분절대값을 연산한다.
화소 연산부(32a)는 상관도 데이터의 초기값(31a)(제4도에서는 0)에 연산 결과를 가산하고, 가산결과 데이터(31b)를 다음 단의 화소연산기(32b)로 출력한다. 화소 연산부(32b)는 데이터(31b)에 연산결과를 가산하여 가산 결과데이터(31c)를 출력하고, 마찬가지로, 화소 연산부(32c)는 데이터(31c)에 연산결과를 가산하여 가산결과데이터(31d)를 출력하며, 화소 연산부(32d)는 데이터(31d)에 연산결과를 가산하여 가산결과 데이터(31e)를 출력한다. 데이터(31e)는 라인연산부(33)의 화소 연산부(33a)에 부여된다.
라인연산부(33)의 화소 연산부(33a~33d), 라인연산부(34)의 화소 연산부(34a~34d)도 마찬가지의 동작을 실행하고, 화소 연산부(34d)로부터 상관도 데이터(31m)가 출력된다.
제5도는 연산제어부(40)의 내부구성을 나타내는 회로도이다. 제5도에 나타내는 바와 같이, 연산제어부(40)는 1개의 제1제어부와 4(=M)개의 제2제어부를 각각 가지는 3(=N)개의 가인 제어부에 의하여 구성되어 있다. 라인 제어부(44~46)는 동일한 구성으로 되어 있으므로 제5도에서는 라인 제어부(45,46)의 구성을 생략한다.
라인 제어부(44)는 제1제어부(44e) 및 제2제어부(44a~44d)에 의하여 구성되어 있고, 제2제어부(44a~44d)는 각각 제4도에 나타내는 라인연산부(32)내의 화소 연산부(32a~32d)의 제어를 실행한다. 메인 제어부(20)로부터 연산제어신호(23)가 입력되면 제1제어부(44e)는 제2제어부(44a~44d)를 동작시키고, 제2제어부(44a~44d)는 각각 격납제어신호(41a~41d) 및 제2변환신호(43a~43d)를 화소 연산부(32a~32d)로 출력한다. 또, 제1제어부(44e)는 라인연산부(32)내의 제1선택기(32e, 32f)를 변환하는 제1변환신호(42a, 42b)를 출력한다.
또, 제1제어부(44e)는 M(=4) 클록 후에 다음 단의 라인 제어부(45)로 연산제어신호(44j)를 출력한다. 라인 제어부(45)의 제1제어부도 같은 제어를 실행하고, M(=4) 클록후에 다음 단의 라인 제어부(46)로 연산제어신호(45j)를 출력한다.
여기에서, 연산제어부(40)에 의한 상관도 연산부(30)의 제어에 대하여 더욱 상세하게 설명한다.
우선, 제1제어부에 의한 제1선택기의 제어에 대하여 설명한다. 여기에서는 제1제어부(44e)에 의한 제1선택기(32e, 32f)의 제어를 예로 들어 설명한다.
제5도에 나타내는 바와 같이, 라인 제어부(44)에 연산제어신호(23)가 입력되면 제1레지스터(44f)는 격납허가신호(44i)를 제1변환신호(42a)로서 출력한다. 제1변환신호(42a)는 제4도에 나타내는 바와 등 제1선택기(32e)에 부여되고, 제1선택기(32e)는 버스 A1및 버스 A2의 어느 한쪽을 선택하며, 선택한 버스의 데이터를 버스 32A로 출력한다.
또, 제5도에 나타내는 바와 같이, 제1변환신호(42A)가 출력되고나서 4(=M) 클록후에 제2레지스터(44g)는 제2제어부(44d)의 출력신호(44o)에 의하여 동기된 제1변환신호(42b)를 출력한다. 제1변환신호(42b)는 제4도에 나타내는 바와 같이 제1선택기(32f)에 부여되고, 제1선택기(32f)는 버스 B1및 버스 B2의 어느 한쪽을 선택하며, 선택한 버스 데이터를 버스 32B로 출력한다.
또, 제5도에 나타내는 바와 같이, 제2제어부(44d)로부터 출력신호(44o)가 출력되면 OR 게이트(44h)로부터 초기화신호(44k)가 다시 출력되고, 이후 마찬가지의 동작이 반복된다.
이어서, 제2제어부에 의한 화소 연산부의 제어에 대하여 설명한다. 여기에서는 제2제어부(44b)에 의한 화소 연산부(32b)의 제어를 예를 들어 설명한다.
연산제어신호(23)가 연산제어부(40)에 입력되면 참조화상 블록 화소데이터의 격납 및 후보블록 화소데이터의 분배 제어에 기동이 걸린다. 제5도에서, 라인제어부(44)에 연산제어신호(23)가 입력되면 제1레지스터(44f)는 제2제어부(44a~44d)에 격납허가신호(44i)를 출력한다. 또, 연산제어신호(23)는 OR 게이트(44h)에도 입력되고, OR 게이트(44h)는 제2제어부(44a~44d)에 초기화 신호(44k)를 출력한다. 이 초기화신호(44k)에 의하여 제2제어부(44a~44d)는 각각 초기화된다.
제6도는 제2제어부(44b)의 내부 구성을 나타내는 회로도이다. 제6도에 나타내는 바와 같이 제2제어부(44b)는 AND 게이트(44p), 변환회로(44q) 및 전파회로(44r)로 구성되어 있다. 또 제7도는 제2화소 연산부(32b)의 내부구성을 나타내는 회로도이다. 제7도에 나타내는 바와 같이, 화상연산부(32b)는 참조화상 격납부(81), 제2선택기(82), 차분절대값 연산기(83), 차분절대값 가산기(84) 및 파이프라인 레지스터(85)로 구성되어 있다.
제6도에 나타내는 바와 같이, 제2제어부(44b)는 초기화 신호(44k)가 입력된 1사이클 후에 전단의 제2제어부(44a) 출력신호(44l)를 전파회로(44r)에 의하여 홀수클록(24a)의 타이밍에서 받는다. AND 게이트(44p)는 전파회로(44r)의 출력신호 및 격납허가신호(44i)를 입력하고, 격납제어신호(41b)를 출력한다.
격납제어신호(41b)는 제7도에 나타내는 바와 같이, 화소 연산부(32b) 내의 참조화상 격납부(81)에 부여된다.
또, 제2제어부(44b)는 초기화신호(44k)가 입력된 1사이클 후에 전단의 제2제어부(44a) 출력신호(44l)에 의하여 변환회로(44q)의 동기를 취하고, 변환회로(44q)는 제2변환신호(43b)를 출력한다.
제2변환신호(43b)는 제7도에 나타내는 바와 같이, 화소 연산부(32b)내의 제2선택기(82)에 부여되고, 제2선택기(82)는 제2변환신호(43b)에 따라서 선택하는 버스를 변환한다.
전파회로(44r)의 출력신호(44m)는 다음 단의 제2제어부(44c)로 출력된다.
제2제어부(44c)도 또한 마찬가지로 동작한 후, 신호(44n)를 다음 단의 제2제어부(44d)로 출력한다. 이와 같이 제2제어부(44a~44d)의 동작은 1사이클마다 전파하여 간다. 또, 라인 제어부(45, 46)도 마찬가지의 동작을 실행한다.
화소연산기(32b)는 다음과 같이 동작한다. 제7도에 나타내는 바와 같이, 차분절대값 연산기(83)는 제2선택기(82)에 의하여 선택된 후보블록의 화소데이터와 참조화상 격납부(81)에 격납된 참조화상 블록 화소데이터의 차분절대값(AE)을 연산한다. 차분절대값 가산기(84)는 차분절대값 연산기(83)로부터 출력된 차분절대값(86)과, 전단의 화소 연산부(32a)로부터 부여된 차분절대값의 합계(SAE)(31b)를 가산한다. 가산 결과 얻어진 차분절대값의 합계(31c)는 다음의 클록 사이클에서 파이프라인 레지스터(85)를 통하여 다음 단의 화소연산기(32c)로 출력된다. 이 동작을 12 클록 사이클 반복함으로써, 참조화상 블록과 각 후보클록의 상관도 데이터(31m)를 얻을 수 있다.
이하, 본 실시예에 관한 상관도 연산장치의 동작을 구체적으로 설명한다.
여기에서는 제1 및 제2도에 나타내는 바와 같은 참조화상 블록(Bp)과 후보블록(Bb)의 상관도를 연산하는 것으로 한다.
우선, 탐색영역 메모리(10)내의 기억 소자부(11a~11c)에는 탐색영역 E의 화소데이터가 격납된다. 제8도에 기억 소자부(11a~11c)에 각각 격납된 화소데이터를 나타내는 도면이다. 제8도에서, 부분탐색영역 E1의 화소데이터는 기억소자부(11a)에 격납되고, 부분탐색영역 E2의 화소데이터는 기억 소자부(11b)에 격납되고, 부분탐색영역 E3의 화소데이터는 기억 소자부(11c)에 격납된다. 이때, 기억 소자부(11a~11c)에 대한 어드레스를 공통화하기 위하여 기억 소자부(11a)에는 부분탐색영역 E1의 화소데이터가 C0,0, C1,0, C2,0, C3,0, C0,1, ···, C2,4, C3,4 의 순서로 격납되어 있고, 기억 소자부(11b)에는 부분탐색영역 E2의 화소데이터가 C4, 0, C5, 0, C6, 0, C7, 0, C4, 1 … ,C6, 4, C7, 4의 순서로 격납되어 있으며, 또 기억 소자부(11c)에는 부분탐색영역 E3의 화소데이터가 C8,0, C9,0, Ca,0, Cb,0 (더미데이터)C8, 1, … , Ca, 4, Cb, 4(더미데이터)의 순서로 격납되어 있다.
제9도는 본 실시예에 관한 상관도 연산장치에 의하여 실현되는 파이프라인 처리를 표시하는 도면이고, 각 사이클에서 각 화소 연산부(PE)(32a~32d)가 요구하는 탐색영역 E 내의 화소데이터 C를 나타내고 있다. 화소데이터 C의 첨자는 제1도 및 제8도에 나타내는 탐색영역 E 내의 화소데이터 C의 첨자에 대응한다. 제9도에서, 계단 형상의 굵은 선으로부터 좌측의 처리는 제2(b)도에 나타내는 처리에 상당하고, 계단 형상의 굵은 선으로부터 우측의 처리는 제2(c)도에 나타내는 처리에 상당한다.
여기에서 예를 들면, 시간 18일 때에 각 화소 연산부가 요구하는 화소데이터(제9도에서 굵은 점선으로 둘러싸고 있는 개소)는 C4,1, C8,0, C4,3, C0,4 의 4개이고, 제8도에서 원으로 둘러싸서 나타내고 있다. 종래의 상관도 연산장치에서는 시간 18일 때와 같이 4개의 화소데이터를 각 화소 연산부로 동시에 공급할 수 없었으므로 계단 형상의 굵을 선으로부터 우측의 처리와 좌측의 처리를 연속하여 파이프라인 처리할 수 없고, 상관도가 연산되지 않는 수 사이클 기간이 존재하였다.
본 실시예에 관한 상관도 연산장치는 파이프라인 처리가 끓임없이 실행하도록 각 화소 연산부에 데이터를 공급하는 수단을 실현하고 있다.
제10도는 본 실시예에 관한 상관도 연산장치의 동작을 설명하기 위한 도면이다. 제10도중, (a)는 메인 제어부(20)의 동작을 설명하기 위한 도면, (b)는 각 기억 소자부(11a~11c)로부터 읽어내어지는 화소데이터를 나타내는 도면, (c)는 탐색영역 메모리(10)의 각 버스로부터 출력되는 화소데이터를 나타내는 도면, (d)는 상관도 연산부(30)내의 제1선택기가 선택하는 버스를 나타내는 도면이다.
개신신호(22)가 입력되면 카운터(26)는 클록생성회로(25)로부터 출력된 2배 클록(24C)의 계수를 개시하고, 계수데이터를 어드레스 해석기(27)로 출력한다. 제10도 (a)에서는 외부로부터 부여되는 클록(21)의 사이클마다 시간을 표시하고 있으므로 카운터(26)는 사이클마다 홀수클록(24a) 및 짝수클록(24b)의 타이밍에 의하여 2개의 계수데이터를 출력한다. 카운터(26)의 계수가 개시되면 어드레스 해석기(27)는 탐색영역 메모리(10)로 어드레스(24d)를 출력한다. 홀수클록(24a)의 타이밍에서 출력되는 어드레스(24d)는 「1」로부터 시작되는 한편, 짝수클록(24b)의 타이밍에서 출력되는 어드레스(24d)는 「9」로부터 시작되고, 각각 순차 증가된다. 또, 각각의 어드레스(24d)는 「20」까지 증가되면 다음의 사이클에서는 「1」이 되고, 다시 증가된다.
각 기억 소자부(11a~11c)로부터 어드레스(24d)에 의하여 읽어내어지는 화소데이터는 제10도(b)와 같이 된다. 예를 들면, 홀수클록(24a)의 타이밍에서 어드레스 「1」이 출력되면, 기억 소자부(11a)로부터 화소데이터 C0,0이, 기억 소자부(11b)로부터 화소데이터 C4,0이, 기억 소자부(11c)로부터 화소데이터 C8,0이 읽어내어지고, 제1메모리 선택기(12a)에 의하여 화소데이터 C0,0이 지연회로(13a)로 출력되며, 제2메모리 선택기(12b)에 의하여 화소데이터 C4,0이 지연회로(13c)로 출력된다.
계속하여, 짝수클록(24b)에 타이밍에서 어드레스 「9」가 출력되면 기억 소자부(11a)로부터 화소데이터 C0,2가, 기억 소자부(11b)로부터 화소데이터 C4,2가, 기억 소자부(11c)로부터 화소데이터 C8,2가 읽어내어지고, 제1메모리 선택기(12a)에 의하여 화소데이터 C4,2가 지연회로(13b)로 출력되며, 제2메모리 선택기(12b)에 의하여 화소데이터 C8,2가 지연회로(13d)로 출력된다.
다만, 시간 1~12일 때에 지연회로로(13b, 13d)로 출력된 화소데이터는 상관도 연산에는 필요없다. 또, 시간 21~32일 때에 지연회로(13b, 13d)로 출력된 화소데이터는 상관도 연산에는 필요없다. 제10(b)도에서는 실제로 상관도 연산에 이용되는 화소데이터를 굵은 선으로 둘러싸고 있다. 또, 지연회로에 출력되지만 상관도 연산에는 이용되지 않는 화소데이터를 점선의 틀로 둘러싸고 있다.
여기에서, 어드레스(24d)의 최대값 「20」은 각 기억 소자부(11a~11c)에 격납된 화소데이터의 수, 즉 각 부분 탐색영역 E1~E3의 화소수에 상당한다. 일반적으로는 다음과 같은 식으로 표시된다.
부분 탐색영역의 화소수=M×(N+L-1)
=4×(3+3-1)=20
또한, 제10(a)도에서 굵은 선으로 둘러싸고 있는 시간 13~20의 8사이클 기간(홀수클록(24a)의 타이밍에서 어드레스 「13」으로부터 「20」까지 출력되고, 짝수클록(24b)의 타이밍에서 어드레스 「1」로부터 「8」까지 출력되는 기간)은 탐색영역 메모리(10)가 4개의 화소데이터를 출력하는 기간이다. 또, 기수클록(24a)의 타이밍에서 출력되는 어드레스와 짝수클록(24b)의 타이밍에서 출력되는 어드레스의 차는 12이다. 일반적으로 다음과 같은 식으로 표시된다.
4개의 화소데이터를 출력하는 기간=M×(N-1)
=4×(3-1)=8
어드레스의 차=M×L
=4×3=12
또 카운터(26)의 값이 「25」 및 「26」일 때, 어드레스(24d)는 홀수클록(24a)의 타이밍에서 「13」, 짝수클록(24b)의 타이밍에서 「1」이 된다.
일반적으로 말하자면 카운터(26)의 값이 「2×(M×L)+1」 및 「2×(M×L)+2」일 때, 어드레스 (24d)는 홀수클록(24a)의 타이밍에서 「M×L+1」, 짝수클록(24b)의 타이밍에서 「1」이 되고, 이후, 홀수클록(24a)의 타이밍에서 「M×(N+L-1)」, 짝수클록(24b)의 타이밍에서 「M×(N-1)」이 될 때까지의 M×(N-1) 사이클 기간이 탐색영역 메모리(10)가 4개의 화소데이터를 출력하는 기간이다.
즉, 제10b도로부터 알 수 있는 바와 같이 최최의 M×L(=12) 사이클 사이에 홀수클록(24a)의 타이밍에서 기억 소자부(11a, 11b)로부터 읽어내어진 화소데이터와, 계속하여 M×(N-1)(=8) 사이클 사이에 홀수클록(24a)의 타이밍에서 기억 소자부(11a, 11b)로부터 읽어내어진 화소데이터 및 짝수클록(24b)의 타이밍에서 기억 소자부(11b, 11c)로부터 읽어낸 화소데이터와, 계속하여 M×L(=12) 사이클 사이에 짝수클록(24b)의 타이밍에서 기억 소자부(11b, 11c)로부터 읽어내어진 화소데이터가 상관도의 연산에 이용된다.
지연회로(13a)에 입력된 화소데이터는 1사이클 후에 버스 A1로 출력되고, 지연회로(13b)에 입력된 화소데이터는 1사이클 후에 버스 A2로 출력된다. 또, 지연회로(13c)에 입력된 화소데이터는 1사이클 후에 M 화소지연회로(13e)로 출력되고, M 화소지연회로(13e)에 의하여 M(=4) 클록만큼 지연된 후, 버스 B1로 출력된다. 지연회로(13d)에 입력된 화소데이터는 1 사이클 후에 M 화소지연회로(13f)로 출력되고, M 화소지연회로(13f)에 의하여 M(=4) 클록만큼 지연된 후, 버스 B2로 출력된다.
제10c도는 버스 A1, A2, B1, B2로 출력된 화소데이터는 나타내고 있다. 버스 B1, B2로 출력된 화소데이터는 M 화소지연회로(13e, 13f)에 의하여 M 클록만큼 지연되고 있으므로 기억 소자부(11a~11c)로부터 동시에 읽어내어진 화소데이터보다도 M 사이클 지연되어 출력되고 있다. 또, 제10(c)도는 제10(b)도의 실선 굵은 틀내의 화소데이터에 대해서만 나타내고 있다.
여기에서, 시간 18의 화소데이터(제10(c)도의 굵은 선으로 둘러싸인 개소)를 보면, 버스 A1에 화소데이터 C0,4가, 버스 B1에 화소데이터 C4,3이, 버스 A2에 화소데이터 C4,1이, 버스 B2에 화소데이터 C8,0이 출력되어 있는 것을 알았다. 이들 화소데이터는 제8도에서 원으로 둘러싸인 화소데이터에 상당하고, 제9도에서 굵은 점선으로 둘러싸인 화소데이터에 상당한다. 또, 제10b도에서 원으로 둘러싸인 화소데이터에 상당한다.
화소데이터 C4,3은 같은 사이클(시간 13)에 기억 소자부(11a)로부터 읽어낸 화소데이터 C0,3 보다도 4사이클 지연되고, 버스 A1로 출력된 화소데이터 C0,4와 동일 사이클에 버스 B1로 출력된다. 또, 화소데이터 C8,0은 같은 사이클(시간 13)에 기억 소자부(11b)로부터 읽어낸 화소데이터 C4,0보다도 4사이클 지연되고, 버스 A2로 출력된 화소데이터 C4,1과 동일 사이클로 B2로 출력된다.
이와 같이 화소데이터를 상관도 연산부에 공급함으로써, 제2도에 나타내는 후보블록의 처리순서가 수평방향으로 반전될 때, 파이프라인 처리가 도중에 끊어지는 일이 없다. 예를 들면, 후보블록 Bb3,0으로부터 후보블록 Bb0,1로 반전될 때, 화소데이터 C4,0과 화소데이터 C0,1을 동일 사이클로 상관도 연산부에 공급할 수 있으므로, 파이프라인 처리는 도중에 끊어지지 않는다.
또, 화소데이터 C0,4 및 C4,3과 화소데이터 C4,1 및 C8,0이 동일 사이클로 상관도 연산부(30)로 출력됨으로써, 후보블록 처리순서가 수직방향으로 반전될 때, 파이프라인 처리가 도중에 끊어지는 일이 없다. 예를 들면, 후보블록 Bb3,2로부터 후보블록 Bb4,0으로 반전될 때, 파이프라인 처리가 도중에 끊어지는 일이 없다. 따라서, 상관도 연산부(30)는 상관도를 연속하여 연산할 수 있다.
상관도 연산부(30)는 1사이클당 최대 4개의 화소데이터를 버스 A1, A2, B1, B2로부터 동일 사이클에 입력한다. 제1선택기(32e~32f)는 제10도(d)에 나타내는 바와 같이, 연산제어부(40)로부터 출력된 제1변환신호(42a~42f)에 따라서 4종류의 버스 A1, A2, B1, B2의 어느 하나를 선택한다. 선택된 버스의 신호는 제1선택기(32e~34f)가 각각 접속된 버스(32A~34B)로 출력된다. 이 동작에 의하여 각 화소 연산부(32a~34d)가 필요로 하는 화소데이터가 각 라인연산부(32~34)내의 버스에 각각 공급되게 된다.
화소 연산부(32a~34d)내의 제2선택기는 라인연산부내의 화소데이터가 전송되어 있는 2개의 버스 내의 한쪽을 선택하고, 상관도의 연산에 필요로 하는 화소데이터를 입력한다. 예를 들면, 라인연산부(32)의 경우, 화소 연산부(32a~32d)내의 제2선택기는 버스(32A) 및 버스(32B)의 어느 한 쪽을 선택하고, 화소데이터를 입력한다.
이상과 같은 동작의 결과, 각 화소 연산부에 입력되는 화소데이터는 제9도와 같이 되고, 연속하여 파이프라인 처리를 행하는 것이 가능해 진다.
또, 개시신호(22)가 입력되면 참조화상 블록용 버스는 참조화상 블록 Bp의 12(=4×3=M×N)개의 화소데이터 r0,0~r3,2를 12 사이클 건너 차례로 전송하고, 화소 연산부(32a~34d)에 1개씩 격납시킨다. 이 동작은 격납제어신호(41a~41l)에 의하여 제어된다. 각 화소 연산부는 격납한 참조화상 블록 Bp의 화소데이터를 적어도 후보블록 Bb의 수(여기에서는 8×3개)의 사이클 동안 유지하고, 입력되는 후보블록 Bb의 화소데이터와의 연산을 실행한다. 이 결과, 제9도에 나타내는 바와 같은 순서로 1사이클마다 각 후보블록 Bb에 대한 차분절대값의 합계를 구할 수 있다. 구한 차분절대값의 합계를 대소 비교함으로써 가장 상관도가 높은 후보블록을 구할 수 있고, 이로써 운동벡터를 구할 수 있다.
또, 8×3 사이클 경과한 후는 마찬가지로 다음의 참조화상 블록 Bp의 각 하소데이터를 차례로 화소 연산부에 입력하고, 상관도를 연산하는 것도 가능하다.
이상 설명한 바와 같이, 본 실시예에 관한 상관도 연산장치에 의하면, (M×N) 화소의 참조화상 블록에 대하여 (M×m)×L개의 후보블록과의 상관도 연산을 파이프라인 처리에 의하여 연속하여 실행할 수 있다.
이어서, 상관도 연산부(30) 및 연산제어부(40)의 배치구성에 대하여 제4도 및 제5도를 이용하여 설명한다.
본 실시예에 관한 상관도 연산장치에는 같은 구성의 화소연산기를 다수 배치할 필요가 있다. 화소연산기의 배치구성은 회로면적에 크게 관계가 있으므로, 상관도 연산장치를 설계 제조할 때 충분하게 고려할 필요가 있다.
제4도에 나타내는 바와 같이, 라인연산부(32~34)는 같은 구성 때문에 병렬로 배치하고 있고, 라인연산부 상호 배선은 상관도 데이터를 전송하는 선뿐이다. 또, 각 라인연산부의 내부는 참조화상 블록의 화소데이터를 전송하는 버스 및 후보블록의 화소데이터를 전송하는 버스에 대하여 화소 연산부를 선대칭으로 배치하고 있다. 이와 같은 배치에 의하여 버스의 길이를 단축할 수 있는 데다가, 상관도 데이터를 전송하는 선을 반환하여 접속함으로써 배선의 길이를 최소한으로 억제할 수 있다.
또, 제5도에 나타내는 바와 같이, 연산제어부(40)는 각 라인연산부의 제어를 실행하는 라인 제어부(44~46)로 구성되어 있으므로, 라인연산부와 라인 제어부를 1쌍으로 하여 블록을 구성하면 이 블록을 병렬로 배치하는 것만으로 상관도 연산부(30) 및 연산제어부(40)가 구성된다. 게다가, 라인수를 증가시킨 경우에도 외부에 제어회로를 부가할 필요가 없고, 간편한 구성에 의하여 상관도 연산장치를 실형할 수 있다.
여기에서, 본 실시예에서 채용한 제2도에 나타난 바와 같은 후보블록 Bb의 처리순서에 의한 효과에 대하여 탐색영역 E를 수평방향으로 끝까지 순차 주사하는 방법과 비교하여 설명한다.
제11도는 제1도에 나타내는 참조화상 블록 Bp와 탐색영역 E에서, 탐색영역 E를 수평방향으로 끝까지 순차 주사하는 방법에 의하여 참조화상 블록 Bp와의 각 후보블록 Bp의 상관도를 연산하기 위하여 이용하는 상관도 연산부의 내부구성을 나타내는 블록도이다. 또, 제12도는 제11도에 나타내는 상관도 연산부에 의한 파이프라인 처리의 흐름를 나타내는 도면이다.
본 실시예에 관한 처리를 나타낸 제9도와 제12도를 비교하면 각 화소 연산부의 사용효률이 현격하게 나빠져 있는 것을 알았다. 또, 24개의 후보블록에 대한 상관도를 구하기 위하여 56 사이클을 요구하고 있고, 본 실시예의 경우 36 사이클에 비하여 1.5배 이상 처리가 지연된다. 또, 제12도로부터 알 수 있듯이 연산도중에 7(=m×M-1) 사이클의 지연이 2회 필요하게 되므로 제11도에 나타내는 바와 같이 7단의 레지스터(71,72)를 구비할 필요가 있다. 이 때문에, 장치 전체의 면적이 증대한다.
따라서, 제2도에 나타내는 바와 같은 후보블록 Bb의 처리순서를 채용함으로써 처리속도를 빠르게 할 수 있음과 동시에 상관도 연산장치의 장치면적을 작게 억제할 수 있다.
[제2실시예]
본 발명의 제2실시예에 관한 상관도 연산장치에 대하여 설명한다.
제13도는 본 실시예에 관한 상관도 연산장치의 상관도 연산부(35)의 내부 구성을 나타내는 블록도이다. 본 실시예에 관한 상관도 연산장치는 제3도에 나타내는 상관도 연산장치에서 상관도 연산부(30)가 제13도에 나타내는 바와 같은 상관도 연산부(35)를 대신할 뿐이고, 이 이외의 구성 요소는 동일하다.
상관도 연산부(35)는 4(=M)개의 화소 연산부를 각각 가지는 3(=N)개의 라인연산부에 의하여 구성되어 있다. 라인연산부(36~38) 내부구성은 동일하고, 또, 화소 연산부(36a~36d, 37a~37d, 38a~38d)의 내부구성은 동일하다.
제13도에 나타내는 상관도 연산부(35)가 제4도에 나타내는 상관도 연산부(35)와 다른 것은 버스 A1, A2, B1, B2를 선택하는 수단을 각 화소 연산부(36a~38d) 내부에 구비하고 있는 점이다. 라인연산부(36)를 예로 들면, 제1선택기가 없고, 버스 A1, A2, B1, B2는 화소 연산부(36a~36d)에 직접 접속되어 있다. 또 제1변환신호(42a,42b)도 화소 연산부(36a~36d)에 입력되어 있다.
제14도는 화소 연산부(36b)의 내부 구성을 나타내는 블록도이다. 제14도에서, 제3선택기(87)는 제1변환신호(42a, 42b) 및 제2변환신호(43b)에 따라서 버스 A1, A2, B1, B2중 하나를 선택하고, 선택한 버스의 화소데이터를 차분 절대값 연산기(83)로 출력한다. 이와 같은 구성에 의하여 제1실시예에 관한 상관도 연산장치와 같은 동작을 실행할 수 있다.
[제3실시예]
제15도는 본 발명의 제3실시예에 관한 병렬상관도 연산장치의 구성을 나타내는 블록도이다. 제15도에서, 61은 제1상관도 연산장치, 62는 제2상관도 연산장치, 63은 상관도 가산기이고, 제1상관도 연산장치(61) 및 제2상관도 연산장치는 제3도에 나타내는 제1실시예에 관한 상관도 연산장치이다. 제1상관도 연산장치(61)는 참조화상 블록(51a)에 대하여 상관도 1을 연산하고, 제2상관도 연산장치(62)는 참조화상 블록(51b)에 대하여 상관도 2를 연산한다. 상관도 가산기(63)는 상관도 1 및 상관도 2를 가산하여 상관도 3을 출력한다. 이로써, 탐색영역을 2 분할하였을 때 각각의 상관도와 탐색영역 전역의 상관도를 동시에 산출하는 경우의 처리 고속화를 실현할 수 있다.
MPEG2의 운동벡터 검출에서는 1프레임을 구성하는 2종류의 필드를 기본으로 구해지는 2개의 운동벡터와, 프레임을 단위로 하여 구해지는 운동벡터 3종류의 운동벡터를 구하는 일이 기대되고 있다.
제15도에 나타내는 병렬상관도 연산장치에서는 2개의 상관도 연산장치에 의하여 각각의 필드 평가값을 연산할 수 있고, 각 평가값을 가산하는 것만으로 프레임의 평가값을 연산할 수 있다. 이와 같은 간편한 구성에 의하여 3종류의 평가값을 연산할 수 있는 것은 본 발명의 상관도 연산장치가 1사이클마다 평가값을 연산할 수 있기 때문이다.
또, 제1~제3실시예에서는 M=4, N=3, m=2, L=3의 경우, 즉 참조화상 블록 Bp의 블록사이즈가 4×3화소, 후보블록 Bb의 수가 (2×4)×3개인 경우에 대하여 설명하였으나, 본 발명은 이것에 한정되는 것은 아니고, (M×N) 화소의 참조화상 블록 Bp에 대하여 ((m×M)×L)개의 후보블록 Bb에 대하여 파이프라인 처리를 연속하여 실행할 수 있다. 또, 임의 개수의 참조화상 블록에 대해서도 마찬가지의 처리를 끊어진 흔적 없이 연속하여 실행할 수 있다. 다만, M, N, L, m은 자연수, L은 N이상, m은 2 이상이다.
또, 제1~제3실시예에서는 상관도의 평가데이터로서 차분절대값의 합계를 이용하는 경우를 예로 들어 설명하였으나, 본 발명은 이것에 한정되는 것은 아니고, 예를 들면, 차분 자승의 합계를 이용하거나 대소 비교기를 이용하는 등 상관도의 평가계산을 실행하는 장치라면 어떠한 것이라도 적용할 수 있다.
또, 제1~제3실시예에서는 탐색영역 메모리의 면적을 줄이기 위하여 기억 소자부의 수를 최소로 하고, 기억 소자부로부터 출력된 데이터를 타이밍 조정수단에 의하여 제어함으로써 각 화소 연산부에 화소데이터를 공급하고 있으나, 기억 소자부를 다수 구비하고, 각 화소 연산부가 필요로 하는 차례로 화소데이터를 기억 소자부에 격납하고 있어도 하등 문제가 없다.
또, 제1~제3실시예에서는 각 화소 연산부는 연산효율을 올리기 위하여 파이프라인 처리를 연속하여 실행하고 있으나, 제9도에 나타내는 계단 형상의 굵은 선의 좌우 처리는 반드시 연속하고 있지 않아도 하등 문제가 없다.
또, 상관도 연산부의 고속화를 위하여 복수단의 파이프라인 레지스터를 삽입하여도 하등 문제가 없다.
Claims (29)
- (M×N) 화소의 참조화상블록에 대하여, 블록매칭법에 의하여 ((m×M)×L)개의 후보블록과의 상관도를 연산하는 상관도 연산장치는 (M, N, L, m은 자연수, L≥N, m≥2), 상관도의 연산을 (M×L)개의 후보블록으로 구성되는 후보블록군마다 파이프라인 처리에 의하여 실행하고, 하나의 후보블록군에 대한 연산에 필요한 화소데이터와 상기 하나의 후보블록군에 대한 연산에 계속하여 처리되는 다른 후보블록군에 대한 연산에 필요한 화소데이터를 동일한 클록 사이클에서 파이프라인 처리에 이용하는 것을 특징으로 하는 상관도 연산장치.
- (M×N) 화소의 참조화상블록에 대하여, 블록매칭법에 의하여 ((m×M)×L)개의 후보블록과의 상관도를 연산하는 상관도 연산장치는 (M, N, L, m은 자연수, L≥N, m≥2), ((m×M)×L)개의 후보블록을 포함하는 탐색영역의 화소데이터를 격납하는 탐색영역 메모리와, (M×N) 화소의 참조화상블록의 화소데이터를 유지하고, 참조화상블록과 후보 블록의 상관도 연산을, 유지한 참조화상블록의 화소데이터 및 상기 탐색영역 메모리로부터 출력된 각 후보블록의 화소데이터를 이용하여, (M×L)개의 후보블록으로 구성되는 후보블록군마다 파이프라인 처리에 의하여 실행하는 상관도 연산부를 구비하고, 상기 탐색영역 메모리는 하나의 후보블록군에 대한 연산에 필요한 화소데이터와 상기 하나의 후보블록군에 대한 연산에 계속하여 처리되는 다른 후보블록군에 대한 연산에 필요한 화소데이터를 동일한 블록 사이클에서 상기 상관도 연산부로 출력하는 기능을 가지며, 상기 상관도 연산부는 각 후보블록군에 대한 연산을 연속하여 실행 가능하게 구성되어 있는 것을 특징으로 하는 상관도 연산장치.
- 제2항에 있어서, 상기 탐색영역 메모리는, ((m×M)×L)개의 후보블록으로 구성되는 ((m+1)×M-1)열 (L+N-1)행의 탐색영역 화소데이터 중에서 상기 하나의 후보블록군에 대한 연산에 필요한 화소데이터인 제1화소데이터 및 이 제1화소데이터보다 1행 위이고 M열 오른쪽에 있는 제2화소데이터와, 상기 다른 후보블록군에 대한 연산에 필요한 화소데이터인 제3화소데이터 및 이 제3화소데이터보다 1행 위이고 M열 오른쪽에 있는 제4화소데이터를 상기 상관도 연산부에 동일한 클록 사이클에서 출력하는 기능을 가지는 것을 특징으로 하는 상관도 연산장치.
- 제3항에 있어서, 상기 제3화소데이터는 상기 제1화소데이터보다 L행 위이고 M열 오른쪽에 있는 것을 특징으로 하는 상관도 연산장치.
- (M×N) 화소의 참조화상블록에 대하여, 블록매칭법에 의하여 ((m×M)×L)개의 후보블록과의 상관도를 연산하는 상관도 연산장치는 (M, N, L, m은 자연수, L≥N, m≥2), 부여된 클록을 기본으로하여 메모리 제어신호 및 연산제어신호를 생성하여 출력하는 메인 제어부와, ((m×M)×L)개의 후보블록을 포함하는 탐색영역의 화소데이터를 격납하고 있고, 상기 메인제어부로부터 출력된 메모리 제어신호의 지시에 따라서 격납한 화소데이터를 출력하는 탐색영역 메모리와, (M×N) 화소의 참조화상블록의 화소데이터를 유지하고, 참조화상블록과 후보블록의 상관도 연산을, 유지한 참조화상블록의 화소데이터 및 상기 탐색영역메모리로부터 출력된 화소데이터를 이용하여 (M×L)개의 후보블록으로 구성되는 후보블록군마다 파이프라인 처리에 의하여 실행하는 상관도 연산부와, 상기 메인제어부로부터 출력된 연산제어신호의 지시에 따라서 상기 상관도 연산부를 제어하는 연산제어부를 구비하고, 상기 탐색영역 메모리는 하나의 후보블록군에 대한 연산에 필요한 화소데이터와 상기 하나의 후보블록군에 대한 연산에 계속하여 처리되는 다른 후보블럭군에 대한 연산에 필요한 화소데이터를 상기 상관도 연산부에 동일한 클록 사이클에서 출력하는 기능를 가지고, 상기 상관도 연산부는 각 후보블록군에 대한 연산을 연속하여 실행이 가능한 것을 특징으로 하는 상관도 연산장치.
- 제5항에 있어서, 상기 탐색영역 메모리는, ((m×M)×L)개의 후보블록으로 구성되는 ((m+1)×M-1)열 (L+N-1)행의 탐색영역의 화소데이터 중에서 상기 하나의 후보블록군에 대한 연산에 필요한 화소데이터인 제1화소데이터 및 이 제1화소데이터보다 1행 위이고 M열 오른쪽에 있는 제2화소데이터와, 상기 다른 후보블록군에 대한 연산에 필요한 화소데이터인 제3화소데이터 및 이 제3화소데이터보다 1행 위이고 M열 오른쪽에 있는 제4화소데이터를 상기 상관도 연산부에 동일 사이클에서 출력하는 기능을 가지는 것을 특징으로 하는 상관도 연산장치.
- 제6항에 있어서, 상기 제3화소데이터는 상기 제1화소데이터보다 L행 위이고 M열 오른쪽에 있는 것을 특징으로 하는 상관도 연산장치.
- 제5항에 있어서, 상기 탐색영역 메모리는 1클록 사이클에 대하여 4개의 화소데이터를 출력하는 기능을 가지는 것을 특징으로 하는 상관도 연산장치.
- 제8항에 있어서, 상기 탐색영역 메모리는, ((m×M)×L)개의 후보블록으로 구성되는 ((m+1)×M-1)열 (L+N-1)행의 탐색영역을 (M×(L+N-1) 화소마다 분할하여 얻어진 (m+1)개의 부분탐색영역의 화소데이터를 각각 기억하고 있고, 상기 메인제어부로부터 출력된 메모리 제어신호에 의한 억세스의 지시에 따라서 화소데이터를 읽어내는 (m+1)개의 기억소자부와, 상기 (m+1)개의 기억소자로부터 읽어내어진 화소데이터를 타이밍을 조정한 후에 상기 상관도 연산부로 출력하는 타이밍 조정수단을 구비하고, 상기 메인제어부는 1클록 사이클에서 2회의 억세스를 실행하도록 메모리 제어신호에 의하여 상기 탐색영역 메모리에 지시하며, 상기 타이밍 조정수단을 상기 (m+1)개의 기억소자로부터 1회의 억세스로 읽어내어진 화소데이터 중 2개를 선택하고, 타이밍을 조정한 후에 1 클록 사이클에 대하여 4개의 화소데이터를 출력하는 것을 특징으로 하는 상관도 연산장치.
- 제9항에 있어서, 상기 타이밍 조정수단은, 상기 (m+1)개의 기억소자중 제1~제m 기억소자로부터 읽어낸 화소데이터 중 하나를 선택하여 출력하는 제1메모리 선택기와, 상기(m+1)개의 기억소자부 중 제2~제(m+1) 기억소자부로부터 읽어내어진 화소데이터 중 하나를 선택하여 출력하는 제2메모리 선택기와, 상기 제1메모리 선택기에 의하여 선택 출력된 화소데이터에 대하여 상기 제2메모리 선택기에 의하여 선택 출력된 화소데이터를 M 클록 사이클 지연시키는 지연수단을 구비하고 있는 것을 특징으로 하는 상관도 연산장치.
- 제8항에 있어서, 상기 상관도 연산부는, 상기 탐색영역 메모리로부터 출력된 4개의 화소데이터 중 다른 하나의 화소데이터를 각각 선택 출력하는 2개의 제1선택기와, 참조화상블록의 화소데이터를 각각 유지하고, 상기 2개의 제1선택기에 의하여 선택 출력된 2개의 화소데이터 중 하나를 선택하여 유지하고 있는 화소데이터와의 평가값을 연산하는 M개의 화소연산부를 각각 가지고 있는 N개의 라인연산부를 구비하며, 각 화소연산부에 의하여 연산된 평가값을 누적함으로써 (M×N) 화소의 참조화상블록과 각 후보블록의 상관도를 구하는 것을 특징으로 하는 상관도 연산장치.
- 제11항에 있어서, 상기 화소연산부는, 각각, 입력된 참조화상블록의 화소데이터를 유지하는 참조화상 격납부와, 상기 2개의 제1선택기에 의하여 선택 출력된 2개의 화소데이터 중 하나를 선택하는 제2선택기와, 상기 참조화상 격납부에 유지된 화소데이터와 상기 제2선택기에 의하여 선택된 화소데이터의 평가값을 연산하는 연산기와, 상기 연산기에 의하여 연산된 평가값과 전단의 화소연산부로부터 출력된 누적된 평가값을 가산하는 가산기와, 상기 가산기의 출력데이터를 일단 격납하고, 다음 단의 화소연산부로 출력하는 레지스터를 구비하고 있는 것을 특징으로 하는 상관도 연산장치.
- 제11항에 있어서, 각 라인연산부에서 M개의 화소연산부가 제1선택기에 의하여 선택 출력된 화소데이터를 전송하는 버스의 양측에 대칭적으로 2열로 배치되어 있는 것을 특징으로 하는 상관도 연산장치.
- 제13항에 있어서, 평가값이 하나의 열인 화소연산부에서, 상기 제1선택기가 배치되어 있는 쪽의 끝에 위치하는 화소연산부로부터 상기 제1선택기가 배치되어 있지 않은 쪽의 끝에 위치하는 화소연산부로, 계속하여 다른 열의 상기 제1선택기가 배치되어 있지 않는 쪽의 끝에 위치하는 화소연산부로, 계속하여 상기 다른 열의 화소연산부에서 상기 제1선택기가 배치되어 있지 않는 쪽의 끝에 위치하는 화소연산부로부터 상기 제1선택기가 배치되어 있는 쪽의 끝에 위치하는 화소연산부로, 순차 전송되어 누적되는 것을 특징으로 하는 상관도 연산장치.
- 제8항에 있어서, 상기 상관도 연산부는, 참조화상 블록의 화소데이터를 각각 유지하고, 상기 탐색영역 메모리로부터 출력된 4개의 화소데이터 중 하나를 선택하여 유지하고 있는 화소데이터와의 평가값을 연산하는 (M×N)개의 화소연산부를 구비하고,각 화소연산부에 의하여 연산된 평가값을 누적함으로써, (M×N)화소의 참조화상블록과 각 후보블록의 상관도를 구하는 것을 특징으로 하는 상관도 연산장치.
- 제15항에 있어서, 상기 화소연산부는, 각각, 입력된 참조화상블록의 화소데이터를 유지하는 참조화상 격납부와, 상기 탐색영역 메모리로부터 출력된 4개의 화소데이터 중 하나를 선택하는 선택기와, 상기 참조화상 격납부에 유지된 화소데이터와 상기 선택기에 의하여 선택된 화소데이터의 평가값을 연산하는 연산기와, 상기 연산기에 의하여 연산된 평가값과 전단의 화소연산부로부터 출력된 누적된 평가값을 가산하는 가산기와, 상기 가산기의 출력데이터를 일단 격납하고, 다음 단의 화소연산부로 출력하는 레지스터를 구비하고 있는 것을 특징으로 하는 상관도 연산장치.
- 제8항에 있어서, 상기 상관도 연산부는, 참조화상블록 각 행의 M개의 화소데이터를 유지하고, 상기 탐색영역 메모리로부터 출력된 화소데이터와 유지한 화소데이터의 평가값을 연산하는 N개의 라인연산부를 구비하고,상기 연산제어부는,상기 N개의 라인연산부를 각각 제어하는 N개의 라인제어부를 구비하고 있는 것을 특징으로 하는 상관도 연산장치.
- 제17항에 있어서, 상기 N개의 라인제어부는 캐스케이드 접속되어 있고, 상기 연산제어부에 입력된 연산제어신호는 상기 N개의 라인제어부에서 순차 전송되는 것을 특징으로 하는 상관도 연산장치.
- 제18항에 있어서, 상기 라인연산부는, 각각, 상기 탐색영역 메모리로부터 출력된 4개의 화소데이터 중 다른 하나의 화소데이터를 각각 선택 출력하는 2개의 제1선택기와, 참조화상블록의 화소데이터를 각각 유지하고 있고, 상기 2개의 제1선택기에 의하여 선택 출력된 2개의 화소데이터 중 하나를 선택하고, 유지하고 있는 화소데이터의 평가값을 연산하는 M개의 화소연산부를 구비하고, 상기 라인제어부는, 각각, 상기 2개의 제1선택기를 제어하는 제1제어부와, 상기 M개의 화소연산부를 각각 제어하는 M개의 제2제어부를 구비하고 있는 것을 특징으로 하는 상관도 연산장치.
- 제19항에 있어서, 각 라인제어부에서 상기 M개의 제2제어부는 캐스케이드 접속되어 있고, 당해 라인제어부에 입력된 연산제어신호는 상기 M개의 제2제어부에서 순차 전송되고, 입력받고나서 M클록 사이클 후에 출력되는 것을 특징으로 하는 상관도 연산장치.
- (M×N) 화소의 참조화상블록에 대하여 클록매칭법에 의하여 복수의 후보블록과의 상관도를 연산하는 상관도 연산장치는(M, N은 자연수), 연산대상의 각 후보블록을 포함하는 탐색영역의 화소데이터를 격납하고 있는 탐색영역 메모리와, (M×N) 화소의 참조화상블록의 화소데이터를 유지하고, 이 참조화상블록과 각 후보블록의 상관도 연산을, 유지한 참조화상블록의 화소데이터 및 상기 탐색영역 메모리로부터 출력된 각 후보블록의 화소데이터를 이용하여 파이프라인 처리에 의하여 실행하는 상관도 연산부와, 입력된 연산제어신호에 따라서 상기 상관도 연산부를 제어하는 연산제어부를 구비하고, 상기 상관도 연산부는 상기 참조화상블록의 화소데이터를 각각 유지하고, 유지한 화소데이터와 상기 탐색영역 메모리로부터 출력된 화소데이터의 평가값을 연산하는 M개의 화소연산부를 각각 가지는 N개의 라인연산부로 구성되며, 상기 연산제어부는 상기 N개의 라인연산부를 각각 제어하는 N개의 라인제어부로 구성되는 것을 특징으로 하는 상관도 연산장치.
- 제21항에 있어서, 상기 N개의 라인제어부는 캐스케이드 접속되어 있고, 상기 연산제어부에 입력된 연산제어신호는 상기 N개의 라인제어부에서 순차 전송되는 것을 특징으로 하는 상관도 연산장치.
- 제22항에 있어서, 상기 라인제어부는, 각각, 상기 M개의 화소연산부를 각각 제어하는 M개의 제어부를 구비하고 있는 것을 특징으로 하는 상관도 연산장치.
- 제23항에 있어서, 각 라인제어부에서 상기 M개의 제어부는 캐스케이드 접속되어 있고, 해당 라인제어부에 입력된 연산제어신호는 상기 M개의 제어부에서 순차 전송되고, 입력 받고나서 M클록 사이클 후에 출력되는 것을 특징으로 하는 상관도 연산장치.
- 제1참조화상블록에 대하여 후보블록과의 상관도를 연산하는 제1상관도 연산장치와, 제2참조화상블록에 대하여 후보블록과의 상관도를 연산하는 제2상관도 연산장치와, 상기 제1상관도 연산장치에 의하여 연산된 상관도와 상기 제2상관도 연산장치에 의하여 연산된 상관도를 가산하는 상관도 가산기를 구비하며, 상기 제1 및 제2 상관도 연산장치는, 각각, (M×N) 화소의 참조화상블록에 대하여, 블록매칭법에 의하여 ((m×M)×L)개의 후보블록과의 상관도를 연산하는 상관도 연산장치로서(다만, M, N, L, m은 자연수, L≥N, m≥2), ((m×M)×L)개의 후보블록을 포함하는 탐색영역의 화소데이터를 격납하는 탐색영역 메모리와, (M×N) 화소의 참조화상블록의 화소데이터를 유지하고, 참조화상블록과 후보블록의 상관도 연산을, 유지한 참조화상블록의 화소데이터 및 상기 탐색영역 메모리로부터 출력된 각 후보블록의 화소데이터를 이용하여 (M×L)개의 후보블록으로 구성되는 후보블록군마다 파이프라인 처리에 의하여 실행하는 상관도 연산부를 구비하고, 상기 탐색영역 메모리는 하나의 후보블록군에 대한 연산에 필요한 화소데이터와 상기 하나의 후보블록군에 대한 연산으로 계속하여 처리되는 다른 후보블록군에 대한 연산에 필요한 화소데이터를 동일한 클록 사이클에서 상기 상관도 연산부로 출력하는 기능을 가지고, 상기 상관도 연산부는 각 후보블록군에 대한 연산을 연속하여 실행 가능한 것을 특징으로 하는 병렬상관도 연산장치.
- (M×N) 화소의 참조화상블록에 대하여, 블록매칭법에 의하여 ((m×M)×L)개의 후보블록과의 상관도를 연산하는 상관도 연산방법은 (M, N, L, m은 자연수, L≥N, m≥2), ((m×M)×L)개의 후보블록을 (M×L)개의 후보블록으로 구성되는 개의 후보블록군으로 나누고, 각 후보블록군에 대하여, 수평방향으로 연속하여 포개어 나열하는 M개의 후보블록에 대하여 참조화상블록과의 블록매칭을 취하는 제1스텝과, 상기 제1스텝을 수직방향으로 이동하면서 L회 반복하는 제2스텝을 실행하는 것을 특징으로 하는 상관도 연산방법.
- 제27항에 있어서, 하나의 후보블록군에 대한 연산에 필요한 화소데이터와 상기 하나의 후보블록군에 대한 연산으로 계속하여 처리되는 다른 후보블록군에 대한 연산에 필요한 화소데이터를 동일한 클록 사이클에서 이용하는 것을 특징으로 하는 상관도 연산방법.
- (M×N) 화소의 참조화상블록에 대하여, 블록매칭법에 의하여 ((m×M)×L)개의 후보블록과의 상관도를 연산하는 상관도 연산장치로서(다만, M, N, L, m은 자연수, L≥N, m≥2), 상관도 연산을, 각각 (M×L)개의 후보블록으로 이루어지고 또 수평방향 및 수직방향 중 어느 한 쪽의 방향으로 연속하는 m개의 후보블록군마다 파이프라인 처리에 의해 실행하고, 각 후보 블록군에 있어서의 상관도 연산은, 상기 한쪽 방향으로 연속하여 포개어 나열되는 M개의 후보블록에 대하여 참조화상블록과의 블록 매칭을 취하는 단계를 다른 쪽 방향으로 이동하면서 L회 반복하는 것이며, 하나의 후보블록군에 대한 연산에 필요한 화소 데이터와 상기 하나의 후보블록군에 대한 연산에 이어서 처리되는 다른 후보 블록군에 대한 연산에 필요한 화소 데이터를 동일 클록 사이클에서 파이프라인 처리에 이용하도록 구성되는 것을 특징으로 하는 상관도 연산장치.
- (M×N) 화소의 참조화상블록에 대하여, 블록매칭법에 의하여 ((m×M)×L)개의 후보블록과의 상관도를 연산하는 상관도 연산장치로서(다만, M, N, L, m은 자연수, L≥N, m≥2), ((m×M)×L)개의 후보 블록을, 각각 (M×L)개의 후보블록으로 이루어지고 또 수평방향 및 수직방향중 어느 한 쪽의 방향으로 연속하는 m개의 후보블록군으로 나누고, 각 후보블록군에 대해, 상기 한쪽 방향으로 연속하여 포개어 나열되는 M개의 후보블록에 대하여 참조화상블록과의 블록 매칭을 취하는 제1단계와, 상기 제1단계를, 다른 쪽 방향으로 이동하면서 L회 반복하는 제2단계를 실행하는 것이며, 하나의 후보블록군에 대한 연산에 필요한 화소 데이터와 상기 하나의 후보블록군에 대한 연산에 이어서 처리되는 다른 후보 블록군에 대한 연산에 필요한 화소 데이터를 동시에 이용하는 것을 특징으로 하는 상관도 연산방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP95-092,096 | 1995-04-18 | ||
JP9209695 | 1995-04-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR960040009A KR960040009A (ko) | 1996-11-25 |
KR100225690B1 true KR100225690B1 (ko) | 1999-10-15 |
Family
ID=14044924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019960010636A KR100225690B1 (ko) | 1995-04-18 | 1996-04-09 | 상관도 연산장치, 병렬상관도 연산장치 및 상관도연산방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5929939A (ko) |
KR (1) | KR100225690B1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW368640B (en) * | 1996-12-25 | 1999-09-01 | Hitachi Ltd | Image processor, image processing device and image processing method |
GB2415561A (en) * | 2004-06-21 | 2005-12-28 | Clearspeed Technology Ltd | Comparing data from sets at same positions |
US20070140529A1 (en) * | 2005-12-21 | 2007-06-21 | Fujifilm Corporation | Method and device for calculating motion vector between two images and program of calculating motion vector between two images |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03116352A (ja) * | 1989-09-29 | 1991-05-17 | Imajika:Kk | ビデオ信号パイプラインバス |
JP2868045B2 (ja) * | 1991-10-25 | 1999-03-10 | 日本電気株式会社 | 動画像信号符号化装置 |
JP3041658B2 (ja) * | 1992-05-14 | 2000-05-15 | 日本電信電話株式会社 | 高並列動き補償演算器 |
KR0160618B1 (ko) * | 1992-10-27 | 1999-01-15 | 윤종용 | 실시간 움직임 추정장치 및 그 방법 |
JPH06141304A (ja) * | 1992-10-28 | 1994-05-20 | Sony Corp | 演算回路 |
JP3545004B2 (ja) * | 1993-01-25 | 2004-07-21 | ソニー株式会社 | 演算回路 |
US5485214A (en) * | 1993-02-25 | 1996-01-16 | Industrial Technology Research Institute | Dual bus dual bank architecture for motion compensation |
JP3401823B2 (ja) * | 1993-03-31 | 2003-04-28 | ソニー株式会社 | 画像コーデック用プロセッサ |
JP3546437B2 (ja) * | 1993-03-31 | 2004-07-28 | ソニー株式会社 | 適応形ビデオ信号演算処理装置 |
FR2703802A1 (fr) * | 1993-04-07 | 1994-10-14 | Philips Electronique Lab | Dispositif d'estimation de mouvement entre des images successives d'une séquence d'images animées subdivisées en blocs bidimensionnels d'éléments d'image. |
JPH06303590A (ja) * | 1993-04-13 | 1994-10-28 | Matsushita Electric Ind Co Ltd | 並列処理画像符号化方法及び復号化方法 |
US5448310A (en) * | 1993-04-27 | 1995-09-05 | Array Microsystems, Inc. | Motion estimation coprocessor |
KR950014343B1 (ko) * | 1993-05-20 | 1995-11-24 | 한국방송공사 | 고화질 티브(hdtv)의 화상데이타 움직임 추정방법 및 그 장치 |
JP2636674B2 (ja) * | 1993-05-25 | 1997-07-30 | 日本電気株式会社 | 動画像の動きベクトル検出装置 |
JPH07115646A (ja) * | 1993-10-20 | 1995-05-02 | Sony Corp | 画像処理装置 |
JP3513214B2 (ja) * | 1994-04-19 | 2004-03-31 | ソニー株式会社 | 動きベクトル検出装置 |
-
1996
- 1996-04-09 KR KR1019960010636A patent/KR100225690B1/ko not_active IP Right Cessation
- 1996-04-18 US US08/634,490 patent/US5929939A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5929939A (en) | 1999-07-27 |
KR960040009A (ko) | 1996-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5586202A (en) | Motion detecting apparatus | |
US5512962A (en) | Motion vector detecting apparatus for moving picture | |
US5594679A (en) | Adaptive video signal processing apparatus | |
KR100281148B1 (ko) | 대역 압축 장치 | |
US5430886A (en) | Method and apparatus for motion estimation | |
EP1120747A2 (en) | Motion estimator | |
Lai et al. | A data-interlacing architecture with two-dimensional data-reuse for full-search block-matching algorithm | |
JP3101691B2 (ja) | 二次元動画像の連続するピクセルを表わすデータ信号を処理するための方法および回路 | |
US5604546A (en) | Image signal processing circuit for performing motion estimation | |
US5793443A (en) | Motion vector detection circuit | |
KR20010052630A (ko) | 동작 추정 | |
Chan et al. | Motion estimation architecture for video compression | |
KR100225690B1 (ko) | 상관도 연산장치, 병렬상관도 연산장치 및 상관도연산방법 | |
JP3401823B2 (ja) | 画像コーデック用プロセッサ | |
Baglietto et al. | Parallel implementation of the full search block matching algorithm for motion estimation | |
JPH09182088A (ja) | 動き検出システムに於けるマトリックス配列データ処理方法 | |
Baek et al. | A fast array architecture for block matching algorithm | |
US5946405A (en) | Block-matching motion estimation apparatus under use of linear systolic array architecture | |
JP3545004B2 (ja) | 演算回路 | |
US5953458A (en) | Method and device for motion estimation | |
JP2883034B2 (ja) | 相関度演算装置及び相関度演算方法 | |
US6732131B1 (en) | Discrete cosine transformation apparatus, inverse discrete cosine transformation apparatus, and orthogonal transformation apparatus | |
US6198771B1 (en) | Motion vector processing circuit | |
JP3682239B2 (ja) | ディジタルフィルタ処理装置 | |
JP4101645B2 (ja) | 動きベクトル検出装置,動きベクトル検出方法,プログラム,および記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
G170 | Re-publication after modification of scope of protection [patent] | ||
FPAY | Annual fee payment |
Payment date: 20090708 Year of fee payment: 11 |
|
LAPS | Lapse due to unpaid annual fee |