KR100236033B1 - 움직임 추정기의 절대 에러값 가산 방법 및 가산기 구조 - Google Patents

움직임 추정기의 절대 에러값 가산 방법 및 가산기 구조 Download PDF

Info

Publication number
KR100236033B1
KR100236033B1 KR1019960072053A KR19960072053A KR100236033B1 KR 100236033 B1 KR100236033 B1 KR 100236033B1 KR 1019960072053 A KR1019960072053 A KR 1019960072053A KR 19960072053 A KR19960072053 A KR 19960072053A KR 100236033 B1 KR100236033 B1 KR 100236033B1
Authority
KR
South Korea
Prior art keywords
adder
wallace
data
matrix
adders
Prior art date
Application number
KR1019960072053A
Other languages
English (en)
Other versions
KR19980053017A (ko
Inventor
이수정
Original Assignee
전주범
대우전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 전주범, 대우전자주식회사 filed Critical 전주범
Priority to KR1019960072053A priority Critical patent/KR100236033B1/ko
Publication of KR19980053017A publication Critical patent/KR19980053017A/ko
Application granted granted Critical
Publication of KR100236033B1 publication Critical patent/KR100236033B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)

Abstract

본 발명은 움직임 추정기(motion estimator)의 가산기에 관한 것으로, 특히, 월리스 트리를 적용한 파이프 라인구조 가산기의 인터커넥션(interconnetion)을 간단히 하는 가산 방법 및 가산기 구조에 관한 것으로서, 본 발명의 방법은매트릭스를 4입력 2출력 월리스 트리로 가산하여 매트릭스 크기를 반절로 줄여나가는데, 각 스테이지의 입력 데이터를그룹으로 나누어서 총

Description

움직임 추정기의 절대 에러값 가산 방법 및 가산기 구조
본 발명은 움직임 추정기(motion estimator)의 가산기에 관한 것으로, 특히, 월리스 트리를 적용한 파이프 라인 구조를 갖는 가산기의 각 모듈(module) 사이의 인터커넥션(interconnetion)을 간단히 하고, 하드웨어 수를 감소시킨 절대에러값 가산 방법 및 가산기 구조에 관한 것이다.
일반적으로, 이차원 동화상은 많은 양의 정보를 갖고 있기 때문에 이의 전송을 위해서는 상당한 주파수 대역이 필요하게 된다. 이 문제를 해결하기 위해서는 정보의 중복성이 존재하기 때문에 정보의 압축이 가능해진다. 이때 시간축상의 중복성은 움직임 보상을 통하여 정보를 압축할 수 있으며, 여기서 중요한 핵심이 바로 움직임 벡터 추정기 이다.
움직임 벡터 추출 알고리즘으로는 PRA(Pel Recursive Algorithm)과 블럭정합 알고리즘이 있다.
블럭 정합 알고리즘(BMA: Block Matching Algorithm)은 현재 프레임을 고정된 크기의 블럭(이하 기준 블럭이라함)으로 나누어 각각의 기준 블럭이 이전 프레임의 정해진 영역에서 블럭단위로 독립적으로 변위를 한다는 가정하에 이루어지는 것이다.
이때, 화면의 움직임이 수평 또는 수직으로 평행 이동한 것으로 가정하여 움직임이 일어난 프레임(즉, 현재 프레임)의 블록영상이 움직임이 일어나기전 프레임(즉, 이전 프레임)의 어느 위치에 있는 블록영상과 가장 일치하는가를 추정하여 그 위치를 통해 움직임 벡터(motion vector)를 추정하는 방법이다. 이때, 블록의 크기로는 8×8, 16×16( 가로 픽셀 수×세로 픽셀 수 )을 주로 사용한다.
여기서, 현재 프레임의 기준 블록(reference block)과 가장 유사한 이전 블록을 찾기 위하여 이전 프레임에서 기준 블록의 위치를 중심으로 일정 범위 안을 찾게 되는데, 이러한 범위를 "서치 윈도우(search window)"라 하고, 이러한 서치 윈도우안에서 각 후보 블록(candidate block)과의 차를 디스토션(distortion)이라 하며, 두 블록간의 유사정도를 나타내는 것이다.
결국, 영상신호 처리기술에서 '움직임 추정(motion estimation)'이란 연속되는 영상신호에서 현재 프레임(current frame)의 화소(pixel)들이 이전 프레임(previous frame)에 비해 어느 정도 움직였는지를 벡터로 표시한 움직임 벡터(motion vector)를 추정하여, 전체 영상을 전송하는 대신에, 이들 움직임 벡터를 전송함으로써 전송정보를 압축하는 기술(즉, 영상압축)을 말하는 것이다.
한편, 블럭 정합 알고리즘중에서 계산량은 많지만 움직임 벡터를 상대적으로 정확하게 찾을 수 있는 알고리즘이 최근 집적기술의 발전으로 가능해졌는데, 이 알고리즘은 기준 블록을 서치 윈도우안의 모든 후보 블록들과 비교하는 것으로 "완전 탐색 블록 정합 알고리즘(full search block matching algorithm)"이라 한다.
완전 탐색 블럭 정합 알고리즘을 이용한 움직임 벡터 추출 일반식은 다음 수학식으로 구해진다.
[수학식 1]
상기 수학식에서 쓰인현재 프레임의 기준 블럭 내의 (i,j)좌표에 있는 각 화소값을 나타내고,이전 프레임의 기준 블럭의 위치에 있는 각 화소값을 나타낸다.
의 절대치 차이값(distortion)을 의미한다.좌표의 움직임 벡터를 갖는 탐색 블럭의 j 열의 k 행 까지의 화소값들의 각각의 화소값 절대치 차이값을 합산한 누적치를 나타낸다.
좌표의 움직임 벡터를 갖는 탐색 블럭과 기준 블럭과의 절대치 차이값의 총 누적 값을 나타낸다.
이렇게 구해진좌표가 -p/+p범위내의 모든 중에서 가장 최소 값을 갖게 하는를 기준 블럭의 움직임 벡터로 결정한다.
여기서,값을 블럭 크기로 나눈 값을 평균 절대 오차값 MAE(mean absolute error)이라 한다.
상기 수학식에서도 보듯이 움직임 추정에서 요구되는 기본적인 연산으로는 기준블록과 후보 블록과의 차를 구하는 감산과정과, 감산에 의해 구해진 차이값들을 매크로블록내에서 모두 더하여 절대에러값을 구하는 가산과정이 있다.
특히, 차이값을 모두 더해야 하는 가산기는 고속을 요구하므로 월리스 트리 파이프 라인 구조로 제작할 수 있다.
여기서, '월리스 트리'는 병렬 승산기 내부 회로중 가장 비중이 크고 핵심이 되는 다수개의 부분곱을 더하여 두개의 출력선(캐리(Carry)와 합(Sum))으로 감소시키는 다수 피연산자 가산 회로로서, 1964년 C.S. Wallace에 의해 제시되었다.
도 1은 움직임 추정기에서 윌리스 트리를 이용한 종래의 파이프 라인 가산기 구조를 도시한 블록도이고, 도 2는 움직임 추정시 종래의 도 1에 따라 매크로 블록의 차이값들을 가산하는 동작을 도시한 개념도이다.
도 1에 도시한 구조는 매크로 블록 크기(수평 데이터 개수 × 수직 데이터 개수)가 16×16인 경우에 적용한 것이다.
도 1을 참조하면, 종래의 7단계의 파이프 라인 구조로 이루어진 가산기는, 제 1 월리스 가산부(100)와 제 2 월리스 가산부(110), 제 3 월리스 가산부(120), 제 4 월리스 가산부(130), 제 5 월리스 가산부(140), 제 6 월리스 가산부(150), 및 병합 가산기(160)로 구성되어 있다.
그리고, 제 1내지 제 6 월리스 가산부(110∼150)는 다수개의 4입력 2출력 월리스 트리(W42)로 구성되어 있으며, 병합 가산부(160)는 상기 제 6 월리스 가산부(150)로부터 출력된 4개 서맨드를 모두 합산하는 가산기로 구성되어 있다.
도 1과 같이 구성된 가산기 동작을 도 2를 참조하여 설명하면, 제 1 단계(step1)에서는, 두 블럭의 차이값을 나타내는 16×16 매트릭스에서 1열(1 column)에 해당하는 16개 픽셀을 상기 제 1 월리스 가산부(100)의 1조(100-1)를 통해 가산하여 8개의 데이터로 출력하고, 2열(2 column)에 해당하는 16개 픽셀을 상기 제 1 월리스 가산부(100)의 2조(100-2)를 통해 가산하여 8개의 데이터로 출력하며, 나머지 열(3∼16 column)에 대해서도 마찬가지로 16개 픽셀을 8개의 데이터로 줄여서 출력한다.
이와 같이 제 1 월리스 가산부(100)를 통하여 제 1단계가 수행된 이후, 가산부(100)의 각 조에서 출력된 8개 데이터를 열로 정렬시키게 되면 16×8 매트릭스와 같이 나타난다.
제 2 단계(step 2)에서는, 16×8매트릭스에서 1행(1 row)에 해당하는 16개 데이터를 상기 제 2 월리스 가산부(110)의 1조(110-1)를 통해 가산하여 8개의 데이터로 출력하고, 2행(2 row)에 해당하는 16개 데이터를 상기 제 2 월리스 가산부(110)의 2조(110-2)를 통해 가산하여 8개의 데이터로 출력하며, 나머지 행(3∼8 row)에 대해서도 마찬가지로 16개 픽셀을 8개의 데이터로 줄여서 출력한다.
이와 같이 제 2 월리스 가산부(110)를 통하여 제 2단계가 수행된 이후, 가산부(510)의 각 조에서 출력된 8개의 데이터를 행단위 정렬시키게 되면 8×8 매트릭스와 같이 나타난다.
계속해서 제 3 월리스 가산부(120)를 통하여 제 3 단계가 수행된 이후, 8×4 데이터 매트릭스와 같이 나타나고, 제 4 월리스 가산부(130)를 통하여 제 4 단계가 수행된 이후, 8×2 데이터 매트릭스와 같이 나타나며, 제 5 월리스 가산부(140)를 통하여 제 5 단계가 수행된 이후, 4×2데이터 매트릭스와 같이 나타나고, 제 6 월리스 가산부(150)를 통하여 제 6 단계가 수행된 이후, 4×1데이터 매트릭스와 같이 나타난다.
이제, 제 7 단계(step 7)에서는, 4×1매트릭스의 4개의 데이터를 병합 가산기(160)를 이용하여 모두 합산하여 1데이터를 출력한다. 이 값이 바로 최종계산된 후보 블럭의 절대에러값(MAE)에 해당한다.
그러나, 상기 종래의 파이프 라인 구조를 갖는 가산기는 각 모듈사이의 입력선 과 출력선사이의 연결(인터커넥션)이 복잡한 문제점이 있었다. 또한 VLSI로 제작하고자 할때 복잡한 인터커넥션을 위한 상당량의 면적이 소요되는 문제점이 있었다.
이에, 본 발명은 상기와 같은 종래의 문제점을 해소하기 위하여 안출된 것으로, 하드웨어 수 즉, 월리스 트리 개수를 줄이고, 파이프라인 인터커넥션을 단순화하여 칩 면적을 감소시킨 움직임 추정기의 절대에러값 가산 방법 및 가산기 구조를 제공하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여 본 발명의 방법은,매트릭스(수평 픽셀수×수직 픽셀수)의 각 픽셀값들을매트릭스로 산출하는 제 1 단계(step 1)와; 상기 제 1 단계(step 1)에서 산출된매트릭스에 대하여 가산을 수행하여매트릭스를 산출하는 제 2 단계(step 2); 상기 제 2단계(step 2)에서 산출된매트릭스에 대하여 가산하여매트릭스를 산출하는 제 3 단계(step 3); 상기 제 3 단계(step 3)에서 산출된매트릭스를 가산하여매트릭스를 산출하는 제 4 단계(step 4); 상기 제 4 단계(step 4)에서 산출된매트릭스를 가산하여매트릭스를 산출하는 제 5 단계(step 5); 상기 제 5 단계(step 5)에서 산출된매트릭스를 가산하여매트릭스를 산출하는 제 6 단계(step 6); 상기 제 6 단계(step 6)의매트릭스를가산하여매트릭스를 산출하는 제 7 단계(step 7); 및 상기 제 7 단계의매트릭스를 가산하여 절대에러값(MAE)을 구하는 제 8 단계(step 8)를 포함하여 구성되는 것을 특징한다.
상기와 같은 목적을 달성하기 위하여 본 발명의 가산기 구조는차이값을 가산하여데이터를 출력하는 제 1 월리스 가산부(40)와; 상기 제1 월리스 가산부(40)에서 출력된개의 데이터에 대하여 가산을 수행하여데이터를 출력하는 제 2 월리스 가산부(41); 상기 제 2 월리스 가산부(41)에서 출력된데이터에 대하여 가산하여데이터를 출력하는 제 3 월리스 가산부(42); 상기 제 3 월리스 가산부(42)에서 출력된데이터를 가산하여데이터를 출력하는 제 4 월리스 가산부(43); 상기 제 4 월리스 가산부(43)에서 출력된데이터를 가산하여데이터를 출력하는 제 5 월리스 가산부(44); 상기 제 5 월리스 가산부(44)에서 출력된데이터를 가산하여데이터를 출력하는 제 6 월리스 가산부(45); 상기 제 6 월리스 가산부(45)에서 출력된데이터를 가산하여데이터를 출력하는 제 7 월리스 가산부(46); 및 상기 제 7 월리스 가산부(46)에서 출력된데이터를 가산하여 절대에러값(MAE)을 출력하는 병합 가산부(47)를 포함하여 구성되는 것을 특징한다.
도 1은 움직임 추정기에서 윌리스 트리를 이용한 종래의 가산기 구조를 도시한 블록도,
도 2는 움직임 추정시 종래의 도 1에 따라 매크로 블록의 차이값들을 가산하는 동작을 도시한 개념도,
도 3은 본 발명에 적용되는 파이프 라인 프로세서의 기본 구조도,
도 4은 움직임 추정기에서 월리스 트리를 이용한 도 3에 따른 가산기 구조를 도시한 블록도,
도 5는 도 4에 따라 매크로 블록의 차이값들을 가산하는 동작을 도시한 개념도,
도 6은 본 발명에 이용된 4개의 서맨드를 2개의 서맨드로 줄이는 월리스 트리 동작을 설명하기 위한 비트맵도,
도 7은 도 6를 전가산기로 구현한 4입력 2출력 가산기(월리스 트리)의 세부 구조를 도시한 세부 구성도이다.
* 도면의 주요부분에 대한 부호의 설명 *
40 : 제 1 월리스 가산부41 : 제 2 월리스 가산부
42 : 제 3 월리스 가산부 43 : 제 4 월리스 가산부
44 : 제 5 월리스 가산부 45 : 제 6 월리스 가산부
46 : 제 7 월리스 가산부 47 : 병합 가산부
W42: 4입력 2출력 가산기(월리스 트리)
우선, 일반적으로 파이프 라인구조의 각 스테이지는 조합 회로로 구성되어 있으면서 논리 혹은 산술 연산한 데이터를 파이프를 통해 전달해서 반복적으로 연산을 수행하고자 할때 유용하다. 여기서, 각 스테이지의 연산결과를 전달하는 인터페이스 래치들은 동일한 클럭에 동기되어 동작하여야만 병목현상을 막을 수 있다.
따라서, 각 스테이지중 가장 긴 지연 시간을 갖는 스테이지에 의해 파이프 라인 클럭 주기가 결정되어 지며, 수학식 과 같다.
[수학식 2]
상기 수학식에서는 각 스테이지의 지연 시간이며,은 각 인터페이스 래치의 지연 시간으로, 가장 긴 스테이지 지연 시간과 인터페이스 래치의 지연 시간을 합한 시간이 파이프라인의 클럭 주기로 결정되어 지고, 각 인터페이스 래치는 클럭 주기동기되는 것이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 자세히 설명하기로 한다.
본 발명에서 적용한 실시예는 매크로 블럭 크기 16×16(수평 픽셀 개수×수직 픽셀 개수)인 경우에 해당한다.
도 3은 본 발명에 적용되는 파이프 라인 프로세서의 기본 구조도이고, 도 4는 움직임 추정기에서 월리스 트리를 이용한 도 3에 따른 가산기 구조를 도시한 블록도이고, 도 5는 도 4에 따라 매크로 블록의 차이값들을 가산하는 동작을 도시한 개념도이다.
도 3을 참조하면, 본 발명의 파이프 라인 구조는 8단 프로세싱 스테이지(S1∼S8) 및, 단과 단사이의 중간 결과(intermediate results)를 임시 저장하는 래치(LATCH)들로 구성되어 있다.
여기서, 제 1 내지 제 6 래치(LATCH1∼LATCH6)는 상기 수학식과 같이 파이프라인 클럭 주기 (이하, '제 1 클럭'이라함 )에 동기되어 동작하고, 제 7 내지 제 9 래치(LATCH7∼LATCH9)는 상기 클럭 주기의 4배에 해당하는 클럭 주기(이하, '제 2 클럭'이라 함)에 동기되어 동작하도록 되어 있다.
이어서, 도 4는 도 3의 상세 블럭도로서, 도 3의 각 스테이지는 월리스 가산기를 포함한 다수개의 가산기 및, 레지스터들로 구성되어 있다.
도 4에서 보는 바와 같이, 파이프 라인 가산기 구조는 제 1 월리스 가산부(40)와, 제 2 월리스 가산부(41), 제 3 월리스 가산부(42), 제 4 월리스 가산부(43), 제 5 월리스 가산부(44), 제 6 월리스 가산부(45), 제 7 월리스 가산부(46), 병합 가산부(47) 및, 제 1 내지 제 9 래치(L1∼L9), 카운터(도시하지 않음)로 구성되어 있다.
상기 제 1 월리스 가산부(40)는 4개 데이터를 입력받아 2개 데이터를 출력하는 월리스 트리 구조로 된 16개의 4입력 2출력 가산기로 구성되어 있는데, 한 사이클마다 수직 1열 데이터중 4개씩 입력받아 4사이클동안 한 열의 데이터(16개)를 처리하는 제 1 가산기(40-1) 및 나머지 수직 열에 대해서도 4개씩 입력받아 한 열의 데이터를 처리하는 제 2 내지 제 16 가산기(40-2∼40-16)로 구성되어 있다.
상기 제 2 월리스 가산부(41)는 8개의 4입력 2출력 가산기로 구성되어 있는데, 상기 제 1 월리스 가산부(40)의 제1 및 제2 가산기(40-1, 40-2) 출력을 입력받는 제1 가산기(41-1), 제 2 월리스 가산부(40)의 제3 및 제4 가산기(40-3, 40-4) 출력을 입력받는 제2 가산기(41-2) 및 나머지 제1 월리스 가산부 출력을 입력받는 제3 내지 제8 가산기(41-3∼41-8)로 구성되어 있다.
상기 제 3 월리스 가산부(42)는 4개의 4입력 2출력 가산기로 구성되어 있는데, 상기 제2 월리스 가산부(41)의 제1 및 제2 가산기(41-1, 41-2)출력을 입력받는 제1 가산기(42-1), 상기 제3 및 제4 가산기(41-3, 41-4)출력을 입력받는 제2 가산기(42-2) 및 나머지 제2 월리스 가산부의 가산기(41-5∼41-8)들의 출력을 입력받는 제3 내지 제4 가산기(42-3∼42-4)로 구성되어 있다.
상기 제 4 월리스 가산부(43)는 2개의 4입력 2출력 가산기로 구성되어 있는데, 상기 제 3 월리스 가산부(42)의 제1 및 제2 가산기(42-1, 42-2)출력을 입력받는 제1 가산기(43-1) 및 제 3 월리스 가산부의 가산기(42-3, 42-4) 출력을 입력받는 제2 가산기(43-2)로 구성되어 있다.
상기 제 5 월리스 가산부(44)는 1개의 4입력 2출력 가산기로 구성되어 있는데, 상기 제 4 월리스 가산부(43)의 제1 및 제2 가산기(43-1, 43-2)출력을 입력받는 가산기(44)로 구성되어 있다.
상기 제 6 월리스 가산부(45)는 2개의 4입력 2출력 가산기와 8개의 시프트레지스터로 구성되어 있는데, 상기 제 5 월리스 가산부(44)의 2개 출력을 4클럭 동안 입력받아 시프트 시켜 8개 데이터를 래치하여 저장하는 시프트레지스터(45-1)와, 상기 시프트레지스터(45-1)에 저장된 4개 데이터를 입력받아 가산하는 제1 가산기(45-2) 및 상기 시프트레지스터에 저장된 다른 4개 데이터를 입력 받아 가산하는 제2 가산기(45-3)로 구성되어 있다.
상기 제 7 월리스 가산부(46)는 1개의 4입력 2출력 가산기로 구성되어 있는데, 상기 제 6 월리스 가산부(45)의 제1 및 제2 가산기(45-2∼45-3)의 출력을 입력 받아 2개 데이터를 출력하는 가산기(46)로 구성되어있다.
상기 병합 가산부(47)는 상기 제 7 월리스 가산부(46)로부터 출력된 2개 데이터를 합산하여 최종 절대에러값(MAE)을 구하는 병합가산기로 구성되어 있다. 상기 병합 가산기로는 CSA(carry select adder), CLA(carry lookahead adder) 등을 이용하여 구현할 수도 있다.
그리고, 제1 내지 제6 래치(L1∼L6)는 제 1 내지 제 5 월리스 가산부(40∼44)로부터 1사이클 마다 출력되는 데이터를 래치하여야 하므로 제 1 클럭(클럭 주파수 ; f)에 동기되어 있으며, 상기 시프트레지스터 역시 제 1 클럭에 동기되어 동작된다.
그리고, 제7 내지 제9 래치(L7∼L9)는 상기 제 6 월리스 가산부(45)의 시프트레지스터에 유효한 4쌍(8개 데이터)데이터가 채워진 후에 가산 연산을 수행하므로 상기 제 7내지 9래치(L7∼L9)는 상기 제 1 클럭 주기의 4배에 해당하는 제 2 클럭(클럭 주파수;)에 동기되어져 있다.
이때, 제 2 클럭(COUNT_LATCH)은 상기 제 1 클럭(CLOCK_LATCH) 사이클을 카운팅하는 카운터를 이용하여 4번째 클럭마다 발생하도록 하였다.
이어서, 도 4 와 같이 구성된 파이프 라인 구조를 갖는 가산기의 동작을 도 5를 참조하여 자세히 설명하고자 한다.
도 5 에서 보여지는 스텝 1에 나타낸 16×16 매트릭스가 상기 제 1 월리스 가산부(40)의 입력 데이터이다.
1클럭 사이클 동안, 수직 1열에 해당하는 4개의 데이터는 제 1 가산기를 통해 2개 데이터로 출력되고, 2열에 해당하는 4개의 데이터는 제 2 가산기를 통해 2개 데이터로 출력되고, 나머지 열에 대해서도 마찬가지로 4개 데이터가 2개 데이터로 출력된다.
즉, 제 1 월리스 가산부의 16개 4입력 2출력 가산기에서는 1번째 사이클 동안 A1 그룹(4×16데이터)이 입력되고, 2번째 사이클 동안 A2그룹, 3번째 사이클 동안 A3 그룹, 4번째 사이클 동안 A4 그룹이 차례로 입력되면서, 총 4사이클 동안 모든 입력 데이터가 처리되어 그 중간 결과 데이터를 정렬시키게 되면 스텝 2의 16×8 매트릭스와 같이 나타난다.
스텝 2에서 나타낸 16×8 매트릭스는 상기 제 2 월리스 가산부(41)의 입력 데이터로서, 1 사이클 동안, 상기 제 1 월리스 가산부(40)의 제 1 및 제 2 가산기(40-1, 40-2)로부터 출력된 4개 데이터가 제 2 월리스 가산부(41)의 제 1 가산기(41-1)로 입력되어 되고, 나머지 제 1 월리스 가산부(40)의 출력도 마찬가지로 제 2 월리스 가산부(41)의 7개 가산기(41-2∼41-8)로 입력된다.
즉, 1번째 사이클 동안, 그룹 B1(그룹 A1이 처리된 중간 결과 데이터 2×16개) 데이터중 4개씩 가산기를 통해 가산되어 2개 데이터로 출력되고, 2번째 사이클 동안 그룹 B2(그룹 A2가 처리된 중간 결과 데이터), 3번째 사이클 동안 그룹 B3(A3가 처리된 중간 결과 데이터), 4번째 사이클 동안 그룹 B4(그룹 A4가 처리된 중간 결과 데이터)가 처리된다. 이렇게 총 4사이클 동안 모든 중간 결과 데이터(16×8)가 제 2 월리스 가산부(41)를 통해 처리되어 그 중간 결과 데이터를 정렬시키게 되면 스텝 3의 8×8 매트릭스와 같이 나타난다.
계속해서, 스텝 3, 스텝 4, 스텝 5에서도 스텝 1이나 스테 2에서와 마찬가지로 4개의 그룹 단위로 전체 4사이클동안 이전 스텝의 모든 중간 결과 데이터를 처리하게 된다.
다시말해서, 4사이클 동안, 상기 스텝 3에 나타낸 8×8 매트릭스는 제 3 월리스 가산부(42)를 통해 4×8 매트릭스로 출력되고, 스텝 4에서 나타낸 4×8 매트릭스는 제 4 월리스 가산부(43)를 통해 2×8 매트릭스로 출력되고, 스텝 5에서 나타낸 2×8 매트릭스는 제 5 월리스 가산부(44)를 통해 4×2매트릭스로 출력된다.
지금까지 설명한 상기 스텝 1부터 스텝 5까지 수행되는 동작은 각 스텝에서 처리해야할 모든 데이터를 4그룹으로 구분하여 1그룹을 1사이클동안 처리하여 4사이클에 모두 처리하도록 하여, 도 1에 보여준 기존의 파이프 라인 각 모듈에서 소요된 하드웨어가 1/4배 정도까지 감소되었음을 알수 있다.
이제, 상기 스텝 5를 수행한 이후, 출력된 데이터가 처리되는 과정을 살펴보면 다음과 같다.
스텝 6에서 나타낸 2×4 매트릭스는 상기 제 6 월리스 가산부(45)의 입력 데이터로서, 상기 제 5 월리스 가산부(44)로부터 제 1 클럭(CLOCK_LATCH)에 따라 출력되는 2개 데이터를 상기 시프트레지스터(45-1)로 래치한 데이터에 해당한다.
즉, 상기 제 5 월리스 가산부(44)로부터 4사이클 동안 출력된 데이터가 상기 시프트레지스터 저장된 배열에 해당하며, 상기 시프트레지스터(45-1)에 유효한 8개 데이터가 채워졌을 때 4개 데이터가 제 1 가산기(45-2), 나머지 4개 데이터가 제 2 가산기(45-3)로 입력되어 2×2 매트릭스로 출력된다.
이때, 상기 제 6 월리스 가산부(45)의 출력을 래치하는 제 7래치(L7)는 카운터에 의해 4사이클 마다 한번씩 연산을 수행하도록 제 2 클럭(COUNT_LATCH)에 동기시켜야한다.
스텝 7에서 나타낸 2×2 매트릭스는 상기 제 7 월리스 가산부(46)의 입력데이터로서, 상기 제 6 월리스 가산부(45)로부터 출력된 4개 데이터가 가산되어 2개 데이터로 출력된다.
마지막으로, 스텝 8에서 나타낸 1×2 매트릭스는 병합 가산기(47)를 통해 합산되어 최종 절대에러값(MAE)이 구해진다.
여기서, 상기 제 7 월리스 가산부(46)의 출력을 래치하는 제 8래치(L8)와 병합 가산부(47)의 출력을 래치하는 제 9 래치(L9) 역시, 제 7래치(L7)와 마찬가지로 카운터에 의해 발생되는 제 2 클럭(COUNT_LATCH)에 동기되어 있다. 그러나, 상기 제 9래치는 마지막 스테이지의 최종결과값을 래치하므로 반듯이 제 2 클럭(COUNT_LATCH)에 동기될 필요는 없다.
이상에서 설명한 가산기의 파이프라인 동작을 하기 표 1로 나타내었다.
T=1/f S1 S2 S3 S4 S5 S6 S7 S8
T0 M1, A1
T1 M1, A2 M1, B1
T2 M1, A3 M1, B2 M1, C1
T3 M1, A4 M1, B3 M1, C2 M1, D1
T4 M2, A1 M1, B4 M1, C3 M1, D2 M1, E1
T5 M2, A2 M2, B1 M1, C4 M1, D3 M1, E2
T6 M2, A3 M2, B2 M2, C1 M1, D4 M1, E3
T7 M2, A4 M2, B3 M2, C2 M2, D1 M1, E4
T8 M3, A1 M2, B4 M2, C3 M2, D2 M2, E1 M1, F1
T9 M3, A2 M3, B1 M2, C4 M2, D3 M2, E2
T10 M3, A3 M3, B2 M3, C1 M2, D4 M2, E3
T11 M3, A4 M3, B3 M3, C2 M3, D1 M2, E4
T12 M4, A1 M3, B4 M3, C3 M3, D2 M3, E1 M2, F1 M1, G1
T13 M4, A2 M4, B1 M3, C4 M3, D3 M3, E2
T14 M4, A3 M4, B2 M4, C1 M3, D4 M3, E3
T15 M4, A4 M4, B3 M4, C2 M4, D1 M3, E4
T16 M5, A1 M4, B4 M4, C3 M4, D2 M4, E1 M3, F1 M2, G1 M1, H1
T17 M5, A2 M5, B1 M4, C4 M4, D3 M4, E2
T18 M5, A3 M5, B2 M5, C1 M4, D4 M4, E3
T19 M5, A4 M5, B3 M5, C2 M5, D1 M4, E4
T20 M6, A1 M5, B4 M5, C3 M5, D2 M5, D1 M4, F1 M3, G1 M2, H1
상기 표 1에서 T 는 제 1 클럭(CLOCK_LATCH) 주기이고, Si는 파이프 라인 스테이지이고, M은 매크로 블록 인덱스이며, A, B, C, D, E, F, G, H 는 도 5에서 보여준 각 스테이지에서 처리되는 데이터 그룹이다.
상기 표에서 보여지는 바와 같이, 스테이지 1에서는 T0∼T3클럭동안 M1 매크로 블록의 모든 데이터 4그룹 A1,A2,A3,A4 를 차례로 처리하고, 계속해서 새로운 다음 매크로 블럭을 입력받아 처리하게 된다.
상기 M1 매크로 블록의 모든 데이터를 합산하여 절대에러값을 계산하는데 소요되는 사이클은 최소한 16사이클이 소요되며, 이후 4사이클 마다 다음 매크로 블록의 절대에러값이 계산되어 출력된다.
상기 월리스 가산부의 구체적인 동작을 설명하기 위해 4입력 2출력 월리스 트리를 보이고자 한다.
도 6은 4개의 데이터를 2개의 데이터로 줄이는 월리스 트리 동작을 설명하기 위한 비트맵도이고, 도 7은 도 6을 전가산기로 구현한 4입력 2출력 가산기의 세부 구조를 도시한 세부 구성도이다.
도 7을 참조하면, 윌리스 트리에서는 4개의 데이터를 입력받아 동일한 위치의 비트끼리 묶어서 가산하여 합(SUM)과 캐리(CARRY)를 발생하고, 발생된 썸에 해당하는 비트들과 캐리에 해당하는 비트들을 하나의 데이터로 간주하여 2개의 데이터를 출력한다. 따라서, 캐리 프로퍼케이션이 발생되지 않도록 하고 있다.
즉, 4개의 데이터(혹은 픽셀) a, b, c, d 는 8비트로 구성되어 있으며, 동일한 비트 위치끼리 가산을 수행하는데, a, b, c의 각 비트 3개씩 그룹을 지어 가산한다. 그 결과 각 그룹의 합(SUM)은 동일한 비트 위치, 캐리(CARRY)는 상위 1비트 위치에 해당하는 웨이트가 되어서, 나머지 d 의 각 비트와 동일한 웨이트의 비트끼리 다시 3개씩 그룹을 지어 가산한다. 그 결과 각 그룹의 합(SUM)은 동일한 비트 위치, 캐리(CARRY)는 상위 1비트 위치에 해당하는 웨이트가 되어서, 2개의 데이터 e와 f는 윌리스 트리의 출력쌍을 형성한다.
이때, 출력된 2개의 데이터 e와 f의 최고 9비트까지 발생되고 있으나, 원래 기준 블럭과 후보 블럭의 각 픽셀끼리의 차이값을 가산하였기 때문에, 여기서 가산된 2개의 데이터는 그다지 크지 않으며, 최상위 비트(캐리)까지 고려하지 않더라도 결과에는 지장이 없다.
이상에서 살펴본 바와 같이 본 발명에 따라 움직임 추정시에 절대에러값을 구하는 가산 방식은 월리스 트리를 이용한 파이프라인 처리로 병렬 고속처리가 가능하며, 하드웨어 수(월리스 트리)가 감소되며, 각 모듈 사이의 인터커넥션이 간단해지므로써 VLSI제작시 칩 면적과 비용이 감소되는 효과가 있다.

Claims (14)

  1. 매트릭스(수평 픽셀수×수직 픽셀수)의 각 픽셀값들을 월리스 트리구조를 이용하여 가산하는 방법에 있어서,
    매트릭스(수평 픽셀수×수직 픽셀수)의 각 픽셀값들을매트릭스로 산출하는 제 1 단계(step 1)와;
    상기 제 1 단계(step 1)에서 산출된매트릭스에 대하여 가산을 수행하여매트릭스를 산출하는 제 2 단계(step 2);
    상기 제 2단계(step 2)에서 산출된매트릭스에 대하여 가산하여매트릭스를 산출하는 제 3 단계(step 3);
    상기 제 3 단계(step 3)에서 산출된매트릭스를 가산하여매트릭스를 산출하는 제 4 단계(step 4);
    상기 제 4 단계(step 4)에서 산출된매트릭스를 가산하여매트릭스를 산출하는 제 5 단계(step 5);
    상기 제 5 단계(step 5)에서 산출된매트릭스를 가산하여매트릭스를 산출하는 제 6 단계(step 6);
    상기 제 6 단계(step 6)의매트릭스를가산하여매트릭스를 산출하는 제 7 단계(step 7); 및
    상기 제 7 단계의매트릭스를 가산하여 최종값(MAE)을 구하는 제 8 단계(step 8)를 포함하여 구성되는 움직임 추정기의 절대 에러값 가산 방법 .
  2. 움직임 추정기에서 블럭의 차이(distortion)값들은 월리스 트리구조를 이용하여 가산하는 파이프 라인 가산기 구조에 있어서,
    차이값을 가산하여데이터를 출력하는 제 1 월리스 가산부(40)와; 상기 제1 월리스 가산부(40)에서 출력된개의 데이터에 대하여 가산을 수행하여데이터를 출력하는 제 2 월리스 가산부(41);
    상기 제 2 월리스 가산부(41)에서 출력된데이터에 대하여 가산하여데이터를 출력하는 제 3 월리스 가산부(42);
    상기 제 3 월리스 가산부(42)에서 출력된데이터를 가산하여데이터를 출력하는 제 4 월리스 가산부(43);
    상기 제 4 월리스 가산부(43)에서 출력된데이터를 가산하여데이터를 출력하는 제 5 월리스 가산부(44);
    상기 제 5 월리스 가산부(44)에서 출력된데이터를 가산하여데이터를 출력하는 제 6 월리스 가산부(45);
    상기 제 6 월리스 가산부(45)에서 출력된데이터를 가산하여데이터를 출력하는 제 7 월리스 가산부(46); 및
    상기 제 7 월리스 가산부(46)에서 출력된데이터를 가산하여 최종값(MAE)을 출력하는 병합 가산부(560)를 포함하여 구성되는 움직임 추정기의 절대 에러값 가산기 구조.
  3. 제 2 항에 있어서, 상기 제 1 내지 제 7 월리스 가산부(40∼46) 및 병합 가산부(47)의 입력 단과 출력단 사이의 중간 결과 데이터(intermediate results)임시 저장하는 제 1 래치 및 제 9래치(L1∼L9)들이 추가로 구비되는 것을 특징으로 하는 움직임 추정기의 절대 에러값 가산기 구조.
  4. 제 3 항에 있어서, 상기 제 1 내지 제 6래치(L1∼L6)는 클럭 주파수에 해당하는 제 1 클럭(CLOCK_LATCH)에 동기되어 동작하고, 상기 제 7 내지 제 9 래치(L7∼L9)는 클럭 주파수에 해당하는 제 2 클럭(COUNT_LATCH)에 동기되어 동작하는 것을 특징으로 하는 움직임 추정기의 절대에러값 가산기 구조.
  5. 제 3 항에 있어서, 상기 제 9 래치(L9)는 제 1 클럭에 동기되어 동작하는 것을 특징으로 하는 움직임 추정기의 절대에러값 가산기 구조.
  6. 제 4 항에 있어서, 상기 제 1 클럭(CLOCK_LATCH)을 카운팅하여 4번째 클럭 사이클째 마다 제 2 클럭(COUNT_LATCH) 발생을 하는 카운터가 추가되는 것을 특징으로 하는 움직임 추정기의 절대에러값 가산기 구조.
  7. 제 2 항에 있어서, 제 1 내지 제 7 월리스 가산부(40∼46)는 4개 데이터를 입력받아 가산하여 2개 데이터를 출력하는 월리스 트리를 적용한 다수개의 4입력 2출력 가산기로 구성되는 것을 특징으로 하는 움직임 추정기의 절대 에러값 가산기 구조.
  8. 제 2 항에 있어서, 상기 제 1 월리스 가산부(40)는 한 사이클마다 수직 1열 데이터중 4개씩 입력받아 4사이클동안 한 열의 데이터(16개)를 처리하는 제 1 가산기(40-1); 및
    나머지 수직 열에 대해서도 4개씩 입력받아 한 열의 데이터를 처리하는 제 2 내지 제 16 가산기(40-2∼40-16)를 포함하여 구성되는 것을 특징으로 하는 움직임 추정기의 절대 에러값 가산기 구조.
  9. 제 2 항에 있어서, 상기 제 2 월리스 가산부(41)는 상기 제 1 월리스 가산부(40)의 제1 및 제2 가산기(40-1, 40-2) 출력을 입력받는 제1 가산기(41-1)와;
    제 1 월리스 가산부(40)의 제3 및 제4 가산기(40-3, 40-4) 출력을 입력받는 제2 가산기(41-2); 및
    나머지 제1 월리스 가산부(40)출력을 입력받는 제3 내지 제8 가산기 (41-3∼41-8)를 포함하여 구성되는 것을 특징으로 하는 움직임 추정기의 절대 에러값 가산기 구조.
  10. 제 2 항에 있어서, 상기 제 3 월리스 가산부(42)는 상기 제2 월리스 가산부(41)의 제1 및 제2 가산기(41-1, 41-2)출력을 입력받는 제1 가산기(42-1) 와;
    상기 제3 및 제4 가산기(41-3, 41-4)출력을 입력받는 제2 가산기(42-2); 및
    나머지 제2 월리스 가산부(41) 출력을 입력받는 제3 내지 제4 가산기(42-3∼42-4)를 포함하여 구성되는 것을 특징으로 하는 움직임 추정기의 절대 에러값 가산기 구조.
  11. 제 2 항에 있어서, 상기 제 4 월리스 가산부(43)는 상기 제 3 월리스 가산부(42)의 제1 및 제2 가산기(42-1, 42-2)출력을 입력받는 제1 가산기(43-1); 및
    제 3 월리스 가산부(42)의 가산기(42-3, 42-4) 출력을 입력받는 제2 가산기(43-2)를 포함하여 구성되는 것을 특징으로 하는 움직임 추정기의 절대 에러값 가산기 구조.
  12. 제 2 항에 있어서, 상기 제 5 월리스 가산부(44)는 상기 제 4 월리스 가산부(43)의 제1 및 제2 가산기(43-1, 43-2)출력을 입력받는 가산기(44)를 포함하여 구성되는 것을 특징으로 하는 움직임 추정기의 절대 에러값 가산기 구조.
  13. 제 2 항에 있어서, 상기 제 6 월리스 가산부(45)는 상기 제 5 월리스 가산부(44)의 2개 출력을 입력받아 시프트시켜 8개 데이터를 래치하여 저장하는 시프트레지스터(45-1)와;
    상기 시프트레지스터(45-1)에 저장된 4개 데이터를 입력받아 가산하는 제1 가산기(45-2); 및
    상기 시프트레지스터(54-1)에 저장된 다른 4개 데이터를 입력 받아 가산하는 제2 가산기(45-3)를 포함하여 구성되는 것을 특징으로 하는 움직임 추정기의 절대 에러값 가산기 구조.
  14. 제 2 항에 있어서, 상기 제 7 월리스 가산부(46)는 상기 제 6 월리스 가산부(45)의 제1 및 제2 가산기(45-2∼45-3)의 4개 출력을 입력받아 가산하여 2개 데이터로 출력하는 가산기(46)를 포함하여 구성되는 것을 특징으로 하는 움직임 추정기의 절대 에러값 가산기 구조.
KR1019960072053A 1996-12-26 1996-12-26 움직임 추정기의 절대 에러값 가산 방법 및 가산기 구조 KR100236033B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960072053A KR100236033B1 (ko) 1996-12-26 1996-12-26 움직임 추정기의 절대 에러값 가산 방법 및 가산기 구조

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960072053A KR100236033B1 (ko) 1996-12-26 1996-12-26 움직임 추정기의 절대 에러값 가산 방법 및 가산기 구조

Publications (2)

Publication Number Publication Date
KR19980053017A KR19980053017A (ko) 1998-09-25
KR100236033B1 true KR100236033B1 (ko) 1999-12-15

Family

ID=19490928

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960072053A KR100236033B1 (ko) 1996-12-26 1996-12-26 움직임 추정기의 절대 에러값 가산 방법 및 가산기 구조

Country Status (1)

Country Link
KR (1) KR100236033B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100549919B1 (ko) * 2000-12-15 2006-02-06 주식회사 케이티 소요클럭사이클수 감축을 위한 초대규모 집적회로 장치

Also Published As

Publication number Publication date
KR19980053017A (ko) 1998-09-25

Similar Documents

Publication Publication Date Title
US4635292A (en) Image processor
Lyon Two's complement pipeline multipliers
US4887233A (en) Pipeline arithmetic adder and multiplier
CN111767994A (zh) 一种神经元计算模块
EP0819284A2 (en) Method and structure for performing motion estimation using reduced precision pixel intensity values
KR100236033B1 (ko) 움직임 추정기의 절대 에러값 가산 방법 및 가산기 구조
JPH0715346A (ja) 2ベクトルのスカラ積を決定するためのデジタル信号の符号化方法および回路
WO1996004733A1 (en) System and method for inverse discrete cosine transform implementation
WO1996004733A9 (en) System and method for inverse discrete cosine transform implementation
Baek et al. A fast array architecture for block matching algorithm
KR0146065B1 (ko) 절대값 계산 회로
KR100225690B1 (ko) 상관도 연산장치, 병렬상관도 연산장치 및 상관도연산방법
US5548665A (en) Vector correlation detecting circuit
KR100243467B1 (ko) 움직임 추정기의 절대 에러값 가산 회로
KR100243466B1 (ko) 움직임 추정기의 절대 에러값 가산 회로
KR100246033B1 (ko) 고속 실시간 처리 움직임 추정을 위한 연산방법 및 이를 위한 연산장치
JP2885039B2 (ja) 動きベクトル検出回路
Lee et al. Efficient algorithm and architecture for post-processor in HDTV
JPH1098743A (ja) 輝度信号の計算装置及びその方法
Chang et al. Bit level systolic arrays for real time median filters
JP2023157868A (ja) データ稠密化方法ならびにこの方法を用いるデータ稠密化装置およびセンシングチップ
US7191203B2 (en) Method and system for high-speed multiplication
KR950010451B1 (ko) 그룹 트리구조 알고리즘(GTSM ; Group Tree Structure Method)을 적용한 고속 승산기
Tanimoto Fast median filtering algorithms for mesh computers
JP3202846B2 (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
FPAY Annual fee payment

Payment date: 20120903

Year of fee payment: 14

LAPS Lapse due to unpaid annual fee