首页 / 专利库 / 视听技术与设备 / 块匹配运动估计 / 고속 실시간 처리 움직임 추정을 위한 연산방법 및 이를 위한 연산장치

고속 실시간 처리 움직임 추정을 위한 연산방법 및 이를 위한 연산장치

阅读:62发布:2021-03-21

专利汇可以提供고속 실시간 처리 움직임 추정을 위한 연산방법 및 이를 위한 연산장치专利检索,专利查询,专利分析的服务。并且본 발명은, 계층적 블럭 탐색에 있어서, 여러 움직임 추정 계층간의 종속성으로 인한 지연시간을 제거함으로써 하드웨어의 이용도를 향상시키고, 통일적 아키텍쳐를 바탕으로 확장성 및 가변성을 갖고, 이를 전역 탐색 알고리즘의 연산 장치에도 확장, 적용할 수 있도록 하는 고속 실시간 처리 움직임 추정을 위한 연산방법 및 이를 위한 연산장치에 관한 것으로서, 계층 1,2,3의 움직임 추정 프로세서( 101).(102),(103), 반화소 움직임 추정 프로세서(104), 한 마크로블럭에 대한 연산에 필요한 데이터를 저장하는 과거프레임 저장 메모리(105-111)와 각각의 과거프레임의 마크로블럭에 대응되는 현재프레임 마크로블럭 데이터(112-118)로 이루어진다. 1,2,3 계층 탐색 움직임 추정 프로세서(101),(102),(103)는 병렬로 각 계층의 움직임 추정 연산을 수행하고, 상기 프로세서의 과거프레임 데이터는 상위 계층의 움직임 벡터에 따라, 과거프레임 탐색영역이 결정된다. 이후 이 움직임 벡터에 의한 과거프레임 데이터가 하위 계층 움직임 추정 프로세서에 입력된 후에야 연산이 시작되어야 하므로 지연 시간이 발생한다. 움직임 추정 프로세서(101-104)는, 각각 과거프레임 저장 메모리(105),(107),(109),(111)에 저장된 과거프레임 마크로블럭을 연산하여 다양한 움직임 추정 연산모드를 통일적 아키텍쳐를 바탕으로 구현가능하며, 고속 연산이 가능하고, 입력된 데이터의 중복 사용도를 높여 입출력 핀 개수의 최소화 및 하드웨어 양을 최소화 시키는 효과가 있는 매우 유용한 발명이다.,下面是고속 실시간 처리 움직임 추정을 위한 연산방법 및 이를 위한 연산장치专利的具体信息内容。

  • 화상 데이터 처리 시스템의 화상 움직임 추정기에서 연속되는 화상 마크로 블록(k1, k2,.. kn-1, kn, kn+1...) 탐색시 연관된 탐색영역 내에서 입력된 화상 마크로블록(kn)을 탐색함과 아울러, 다음 화상 마크로블록(kn+1)에 연관된 탐색영역 내의 화소 데이터를 독출하는 동작을, 상위계층에서 동시에 각각 수행하는 제1단계; 상기 제1단계 이전에 상기 상위계층에서 수행된 탐색 동작에 의해 축소설정된 탐색영역 내에서의 이전 화상 마크로블록(kn-1)을 탐색함과 아울러, 상기 제1단계에서의 화상 마이크로블록(kn) 탐색동작에 의해 축소설정된 탐색영역 내에서의 화소 데이터를 독출하는 동작을 하위계층에서 동시에 각각 수행하는 제2단계; 및 상기 제2단계에서 화소 데이터를 독출한 탐색영역 내에서의 화상 마이크로 블록( kn)을 탐색하는 동작을 상기 하위계층에서 수행하는 3단계를 포함하여 이루어지는 계층간의 파이프라인 방식에 의한 화상 마크로블록 탐색방법.
  • 제1항에 있어서, 상기 독출 과정은 상기 독출되는 화소 데이터를 저장수단에 저장하는 저장단계; 및 상기 탐색 동작 도중에 다음 화상 마크로블록의 탐색에 필요한 양(量)만큼 초기 데이터를 임시 저장시키는 입력단계를 포함하여 이루어지는 것을 특징으로 하는 계층간의 파이프라인 방식에 의한 화상 마크로블록 탐색방법.
  • 제2항에 있어서, 상기 입력단계는, 상기 하위계층이 최하위계층인 경우, 상기 저장된 화소 데이터로부터 반화소 데이터를 생성하는 보간단계를 더 포함하여 이루어지되, 상기 초기 데이터의 양은, 상기 생성된 반화소 데이터의 초기 양과 동일한 것을 특징으로 하는 계층간의 파이프라인 방식에 의한 화상 마크로블록 탐색방법.
  • 화상 데이터 처리 시스템에서 수행되는 화상 움직임 추정을 위한 화소 차이값 산출장치에 있어서, 계층별 화상 마크로블록을 최소단위의 화소블록으로 분해한 후, 각 화소블록간의 화소차이 절대값을 순차적으로 합산하여 출력하는 단위차이 연산수단; 및 상기 단위차이 연산수단에서 출력되는 합산 값을 가산하여 상기 계층별 화상 마크로블록간의 화소 차이값으로 출력하는 가산수단을 포함하여 구성되는 것을 특징으로 하는 각 계층별 화소 차이값의 통일적 산출장치.
  • 제4항에 있어서, 상기 단위차이 연산수단은, 최소크기(M×M)의 현재 화상 마크로블록의 행 또는 열의 화소 데이터를 일대일 대응 저장하는 소정개수의 래치; 탐색영역 내의 행 또는 열의 화소 데이터를 일대일 대응 저장하는 다수의 시프트 레지스터 및 상기 래치 내의 화소 데이터와, 상기 시프트 레지스터 내의 화소 데이터간의 화소 차이 절대값을 출력하는 소정개수(kM, k는 1≤k≤M인 자연수)의 연산기를 포함하여 구성되되, 상기 연산들은, 상기 래치 내의 행 또는 열의 화소 데이터 군을 상기 군수에 대응되는 상기 시프트 레지스터 내의 화소 데이터 군 및 연속(k번) 인접된 화소 데이터 군들을 각각 동시에 연산하고, 상기 시프트 레지스터들은, 상기 연산기의 연산 동작 이후, 소정 화소거리(M)의 데이터간에 이동이 이루어지도록 하는 것을 특징으로 하는 각 계층별 화소차이값의 통일적 산출장치.
  • 제4항에 있어서, 상기 단위차이 연산수단은, 탐색영역 내의 행 또는 열의 화소 데이터 군을 저장하는 다수의 시프트 레지스터; 및 현재 화상 마크로블록 내의 임의의 화소 데이터를 복제하여, 상기 다수의 시프트 레지스터 내의 화소 데이터와의 차이의 절대값을 각각 연산하는 다수의 연산기를 포함하여 구성되되, 상기 시프트 레지스터는, 상기 연산기의 연산동작 이후, 인접된 화소 데이터의 이동이 수행되도록 하고, 상기 연산기는, 현재 화상 마크로블록 내의 임의의 화소 데이터에 연속된 다음 화소 데이터로, 상기 연산과정을 반복 수행하는 것을 특징으로 하는 각 계층별 화소 차이값의 통일적 산출장치.
  • 화상 데이터 처리 시스템에서 사용되는 화상 움직임 추정기에 있어서, 외부의 기능선택 신호에 따라, 임의의 입력값(A) 또는 이에 상응하는 음수값 을 선택적으로 출력하는 입력값 선택수단; 상기 입력값 선택수단으로부터 출력되는 출력 값과, 또다른 임의의 입력값(B)을 가산 출력하는 가산수단; 및 상기 외부의 기능선택 신호에 기준하여, 상기 가산수단의 출력값을 출력하거나, 또는 상기 임의의 입력값(A)과 상기 또다른 임의의 입력값(B) 중 상기 가산수단의 출력값에 의해 결정되는 최소값을 선택 출력하는 출력값 선택수단을 포함하여 구성되는 전환이 가능한 가산 및 비교기능의 병합 연산장치.
  • 화상 데이터 처리 시스템에서 사용되는 화상 움직임 추정기의 화상 메모리에 있어서, 상기 화상 메모리는 행렬 배치를 갖는 다수의 메모리 셀들로 이루어지되 인접되는 일련의 행 또는 열의 메모리 셀들은, 동일 선택 신호선에 의해 선택되어 데이터 비트의 쓰기 및 읽기가 동시에 행해지도록 하는 연결 구조를 갖는 것을 특징으로 하는 화상 메모리.
  • 화상 데이터 처리 시스템에서 사용되는 화상 움직임 추정기에 있어서, 상기 화상 데이터의 현재 프레임과 과거 프레임간의 화소 차이를 계산하여 출력하는 제1가산기; 상기 가산기로부터 출력되는 임의의 수에 대한 1의 보수를 구하는 인버터; 및 상기 구해진 보수에, 최하위 비트 입력 캐리(carry)에 의해서만 1을 가산하여 2의 보수를 계산 출력하는 제2가산기를 포함하여 구성되는 2의 보수 생성장치.
  • 说明书全文

    고속 실시간 처리 움직임 추정을 위한 연산방법 및 이를 위한 연산장치

    본 발명은 화상 압축 코덱 시스템에서 구현상 가장 어려운 움직임 추정 연산장치 및 이를 구성하는 다양한 기능 모듈을 효율적으로 구현하기 위한 고속 실시간 처리 움직임 추정을 위한 연산방법 및 이를 위한 연산장치에 관한 것으로서, 더욱 상세하게는 계층적 블럭 탐색 알고리즘(Hierarchical search block matching algorithm)의 경우, 여러 움직임 추정 계층간의 종속성으로 인한 지연시간을 제거함으로써 하드웨어의 이용도를 향상시키고, 화상 데이터의 중복 사용도 향상을 통해, 입출력 병목 현상을 해결하고 침 핀 수를 최소화시킨다. 또한, 각 움직임 추정 계층별로 동일한 어레이 하드웨어 구조의 반복사용을 통해 설계함으로써, VLSI(very large scale intergration) 구현을 용이하게 하고, 고속 영상 압축을 수행하며 화소, 반화소 정확도 및 프레임, 필드방식, 다양한 블럭 크기 등의 여러 응용분야에 적용 가능한 움직임 추정에 있어, 통일적 아키텍쳐를 바탕으로 확장성 및 가변성을 갖고, 이를 전역 탐색 알고리즘의 연산 장치에도 확장, 적용할 수 있도록 하는 고속 실시간 처리 움직임 추정을 위한 연산방법 및 이를 위한 연산장치에 관한 것이다.

    종래의 움직임 추정 알고리즘은 화상 데이터를 전송 또는 저장하는데 있어, 데이터의 양을 압축시키기 위하여, 과거 화상 데이터와 현재 화상 데이터의 차이를 연산하여, 이 차이의 최소값을 갖는 움직임 벡터를 연산한다. 이를 통해, 복호기 쪽에서 전송된 과거 화상 데이터와 움직임 벡터를 이용하여, 현재 화상 데이터를 만들어 내는 과정에 사용되는 연산이다.

    이러한 움직임 추정 알고리즘에 있어서, 전역 탐색 움직임 추정 알고리즘(F ull search block matching algorithm : FBMA)은 현재프레임의 N크기 마크로블럭 내의 모든 화소를 일정한 크기로 설정된 이전 프레임의 탐색영역(p) 내의 모든 마크로블럭과 비교한 후, 가장 최소 차이값을 가지는 양 마크로블럭에 있어, 두 마크로블럭간의 위치 변화를 움직임 벡터로 발생시키는 방법이다. 전역 탐색 움직임 추정 알고리즘은 정확도는 높으나 고선명 텔레비전과 같이, 탐색영역이 넓어질 경우, 비교해야 할 화소수가 엄청나게 증가함으로 인하여, 실시간 처리가 거의 블가능하거나, 하드웨어의 크기가 엄청나게 증가하는 단점이 있다. 이를 해결하기 위해, 계층 탐색 움직임 추정 알고리즘(Hierarchical search block algorithm : HSA)은 연산량을 감소시키기 위하여, 계층별로 탐색영역 내의 선별된 마크로블럭 또는 마크로블럭내의 화소에 대해 움직임 추정을 수행한다. 첫 계층에서는 넓은 탐색영역에 대해 마크로블럭 또는 마크로블럭내의 화소에 대해 샘플링을 통하여, 정확도가 떨어지는 움직임 백터를 찾고, 이를 바탕으로, 계층이 진행됨에 따라 전단에 비해 적은 탐색영역에 대해 보다 정확도가 높은 움직임 추정을 수행하여 최종 단에서 가장 정확한 움직임 백터를 찾았다.

    일반적으로 이러한 움직임 추정은 연산량이 막대하며, 고속으로 실시간 처리를 할 필요가 있으므로 병렬처리를 통하여, 연산성능을 향상시킬 필요가 있다. 전역 탐색 알고리즘인 경우에는, 계층적 블럭 탐색 알고리즘에 비해, 비교적 규칙적인 데이터의 흐름이 존재하기 때문에, 종래의 기술에 있어서는, 일반적으로, 시스토릭 어레이 등을 사용하여, 구현하였다. 그러나, 전역 탐색 알고리즘은 하드웨어 구현은 비교적 용이하나, 넓은 탐색영역, 큰 프레임 크기를 고속으로 실시간 처리하기 어려워, 최근에는 고선명 텔레비젼 등의 구현에 있어서는, 계층적 블럭 탐색 알고리즘을 사용하였다.

    세부적으로 종래의 움직임 추정 아키텍쳐를 살펴보면, 시스토릭 아키텍쳐의 경우 주로 전역 탐색 알고리즘을 위한 아키텍쳐를 바탕으로 계층 탐색 움직임 추종 알고리즘의 구현을 위해 움직임 추정계층의 변화에 따라 데이터를 공급하기 위한 방법에 대한 방안을 제시하고 있는데, 1차원 중심 시스토릭 어레이 구조와 2차원 시스토릭 어레이구조 및 파이프라인 방식의 트리 아키텍쳐를 이용하여 계층 탐색 알고리즘을 구현하였으며, 연산 유닛 개수를 감소시키기 위하여, 트리절단방식을 바탕으로 한 반복적인(recursive) 아키텍쳐를 사용하였다.

    움직임 추정 계층간의 지연시간 문제를 해결하기 위하여, 현재프레임 마크로블럭과 일부의 과거프레임 마크로블럭과 부분적인 움직임 벡터를 구한 후, 이로 인하여 보다 적은 탐색영역을 탐색하게 된다. 이와 병렬적으로, 아직 움직임 추정이 끝나지 않은 나머지 움직임 추정 벡터를 구하여, 위 두 연산의 결과를 비교함으로써, 최종적인 움직임 벡터를 구하게 된다.

    화상 데이터의 불규칙적인 입출력을 효율적으로 구현하기 위하여서는, 일반적으로, 메모리에서 화상 데이터 이동을 위하여, 데이터의 입력과 출력을 동시에 처리할 수있는, 더블 버퍼(double buffer)의 개념을 사용하였다.

    움직임 추정 아키텍쳐는 대부분 정해진 화상 데이터 블럭 크기, 탐색영역을 대상으로, 설계되고 있다. 움직임 추정은 고속 실시간 처리가 요구되므로, 이를 위해, 하드웨어의 구조가 각 계층에 맞게 최적화 되거나, 대부분 서로 다른 아키텍쳐를 사용하였다.

    이러한 움직임 추정 시스템에서는 연산성능의 향상뿐 아니라, 막대한 화상 데이터의 입출력이 필요하여, 이를 효율적으로 구현하기 위한 방안도 필수적이다. 따라서, 시간당 입출력 양을 줄이기 위하여서는, 입력된 화상 데이터의 중복사용을 위해, 효율적인 시프트 레지스터간의 데이터 이동 및 내부 메모리 등의 다양한 방법을 사용하였다.

    하드웨어 구현상, 움직임 추정 연산을 위해서는, 많은 양의 과거와 현재의 화상 데이터 차이의 절대값을 구하는 연산이 필요하다. 움직임 추정 연산은 고속 실시간 처리가 필요하므로, 위 연산을 신속히 처리하는 절대값 계산회로가 필요하다. 이 절대값 계산에 있어, 사용되어 오던 종래의 절대값 계산 회로는 제7a도와 같이, 예를 들어, (ab)의 절대값 계산의 경우, 감산기(701)에서, (ab)를 연산하고, 감산기(702)에서, (ba)를 연산하여, 선택기(703)에서, 이중 양수의 값을 취하는 방법과 제7b도와 같이, 레지스터(704)에 가를 저장하고, 레지스터(705)에 나를 저장하고, a와 b의 대소를 판단하여, 감산기(706)에서 큰 수에서 작은 수를 감산하는 방법과 제7c도와 같이, 감산기(7808)에서 (ab)를 연산하고, 음수 탐지기(709)에서 결과가 음수인 경우, 이를 먹스(707)에서, 외부 입력 대신 위 결과를 입력으로 받아, 감산기(708)를 통해, 양수로 전환하는 방법등이 사용되고 있었다.

    그러나, 종래의 계층 탐색 움직임 추정 프로세서는 알고리즘의 특성상 움직임 추정계층간 연산에 있어서, 각단이 독립적인 연산을 수행하는 것이 아니라 상위 계층 움직임 연산의 완료 후 발생된 움직임 벡터를 바탕으로 하위 연산 과거프레임 마크로블럭을 받아들여 연산을 시작할 수 있으므로, 이로 인한 지연시간이 발생되어 하드웨어의 이용도 및 연산도가 저하되는 문제점이 있었다.

    움직임 추정은 고속 실시간 처리가 요구되어, 외부의 막대한 화상 데이터를 받아들여야 할뿐 아니라, 특히 계층 탐색 움직임 추정 알고리즘의 경우, 데이터의 구조로 불규칙적이므로, 이에 의해 하드웨어 양 데이터를 공급하는 메모리의 대역폭, 특히 포트 수의 증가, 또는 입출력에 연산속도에 대한 제한을 발생시키게 된다. 특히, 2차원 시스토릭 어레이의 경우가, 1차원 시스토릭 어레이의 경우보다 더 많은 포트 수가 필요하다. 그러나, 1차원 시스토릭 어레이의 경우, 하드웨어의 이용도가 저하되거나, 고속 연산이 어렵다는 문제점이 있다. 이와 더불어, 다음 현재프레임 마크로블럭 연산초기에 일시에 막대한 화상 데이터가 움직임 추정 프로세서에, 입력 되야 하므로 포트 수를 매우 증가시키게 된다. 이와 같은 문제는 특히 트리 구조를 이용할 경우에 심각하다. 이와 같은 이유로 인해, 메모리 인터리빙 (interleaving)에 의해 포트 수를 줄였으나, 고속 연산시, 메모리속도에 의해 연산속도가 제한되는 단점이 있다. 메모리의 속도제한 문제를 해결하기 위하여, 다수의 메모리를 사용하였으나, 이로 인해, 연결선이 복잡하게 되어 하드웨어의 구현이 어렵고, 지연시간 또한 증가하게 되며 다양한 메모리의 속도와 움직임 추정 연산장치의 속도에 따라, 포트의 수를 조정할 수 있는 융통성이 부족한 점이 있었다.

    한편, 시스토릭 어레이를 사용할 경우, 연산에 필요한 연산 유닛의 개수가 블럭의 크기, 탐색 영역에 의해 고정되므로, 계층 탐색 알고리즘의 각 계층별 연산, 반화소 정확도와 프레임 및 필드 기반 등의 다양한 움직임 추정 연산 방식 확장성에 한계가 있게 된다. 즉, 각각 절대값 연산 유닛의 개수가 마크로블럭 크기에 의해, 탐색영역의 크기가 움직임 추정에 사용되는 마크로블럭 크기의 절반에 해당하는 특수한 경우에만 적용 가능하다. 따라서, 아키텍쳐의 연산능력이 고정되어, 다양한 응용분야에 맞는 움직임 추정 시스템에 적용하기 위한 가변성이 떨어진다. 이로 인해, 하드웨어의 이용도가 저하되거나, 여러 가지의 아키텍쳐가 필요하게 되어 시스템의 크기, 비용증가, 설계시간의 장기화되고 블럭의 크기, 탐색 영역 등의 다양한 응용분야, 계층 탐색 움직임 추정 연산의 각 계층 및 필드, 프레임, 반화소 연산방식을 처리할 수 있는 통일적 아키텍쳐가 필요하다.

    상기와 같은 통일적 아키텍쳐에서 반드시 고려해야 할 점은, 계층탐색 알고리즘이 요구하는 다양한 입력 데이터 구조 및 서로 다른 연산 유닛에서 필요한 동일 화소 데이터의 이동을 통한 재사용 문제의 효율적 처리를 통해, 상기에서 설명된 입출력 포트의 수를 감소시키기 위한 방안이 반드시 필요하다. 이러한 방안으로써, 종래의 기술에서는, 프로세서 내에 더블 버퍼방식을 바탕으로, 입력된 화소 데이터의 사용시간 간격만큼 연산장치 내부에서 저장하는 방법을 사용한다. 그러나, 더블 버퍼 방식은 연산장치 내부에서, 출력이 진행됨과 동시에, 외부로 부터 데이터가 입력되어야 하므로, 두배의 기억용량 및 특히 복잡도 및 하드웨어양을 크게 증가시키게 된다. 따라서, 이를 해결하기 위한 효율적인 회로 구현 방법이 필요하다. 이와 더불어, 움직임 추정 연산에는, 데이터의 양이 방대하고, 특히 계층 탐색 움직임 추정 알고리즘을 구현할 경우, 동일 데이터의 사용 시간 간격이 크고 불규칙적인 면이 있어, 많은 양의 내부 버퍼 및 시프트 레지스터와 복잡한 외부 메모리 주소 계산이 필요하게 된다, 일반적으로, 종래의 움직임 추정 연산 프로세서에서는 내부 버퍼, 시프트 레지스터의 양과 데이터의 재사용도, 포트 수간에 상호 충돌관계가 존재하며, 적은 하드웨어 양 및 포트 수에 의한 각 계층 별 통일적 아키텍쳐가 불가능하였다.

    움직임 추정 연산을 효율적으로 병렬처리하기 위해서는, 과거와 현재의 화소차이의 절대값을 연산하는 하드웨어가 다수 필요하므로 이를 위한 효율적인 회로 구현이 필요한데, 제7도에 도시된 종래의 구현방법에 있어, 제7a도의 감산기와 먹스로 이루어진 장치의 경우, 두 개의 감산기가 필요하게 되어, 하드웨어 양이 증가하게된다. 제7b도의 먹스와 감산기로 이루어진 장치의 경우, 두 입력의 대소를 비교하기 위한 하드웨어가 감산기 이외로 추가로 필요하게 되어, 하드웨어양이 증가하게되며 제7b도의 먹스와 감산기, 음수 탐지기로 이루어진 장치의 경우, 절대값 계산을 위해, 두 번에 걸쳐 감산기를 통해 연산해야 하므로 절대값 계산 시간이 증가하는 문제점이 존재한다.

    따라서, 본 발명은 상기와 같은 문제점을 해결하기 위하여 창작된 것으로서, 규칙적이며 동일한 하드웨어 구조의 중복사용을 통한 하드웨어 구현이 용이하고, 효율적인 과거프레임 버퍼에 의해, 연속되는 화상 마크로블럭간의 하드웨어의 휴지도를 감소 시킬 수 있고 외부 화상 데이터의 직렬 데이터 입력이 가능하도록 함으로써, 입출력 핀 개수를 감소시키는 계층간의 파이프라인 방식에 의한 마크로블럭 탐색방법을 제공하는 데 그 목적이 있는 것이며, 본 발명의 다른 목적은, 움직임 추정 각 계층, 블럭크기, 필드, 프레임 연산, 반화소 연산등 다양한 움직임 추정 연산 모드를 통일적 아키텍쳐를 바탕으로 구현 가능하며 고속 연산이 가능한 각 계층별 화소 차이값의 통일적 산출장치를 제공하는 것이며, 본 발명의 또 다른 목적은, 입력된 데이터의 � ��복 사용도를 높여 입출력 핀 개수 및 하드웨어양을 최소화 시킬 수 있도록 하는 각 계층별 화소 차이값의 통일적 산출장치를 제공하는 것이며, 본 발명의 또 다른 목적은, 외부와 내부 클럭 속도의 조절을 통한 다양한 입출력 핀 수의 조절 및 다양한 외부 화상 메모리와의 동작이 가능하도록 하는 전환이 가능한 가산 및 비교기능의 병합 연산장치 제공하는 것이며, 본 발명의 또 다른 목적은, 적은 메모리의 기억용량으로 입출력을 동시에 진행시키는 화상 메모리가 구현 가능하도록 하는 메모리 셀의 연결구조를 제공하는 것이다.

    제1도는 본 발명에 따른 외부 화상 메모리의 구성도이고,

    제2도는 본 발명에 따른 외부 메모리에서, 프로세서 내부로, 데이터 공급하는 장치의 구성도이고,

    제3도는 본 발명에 따른 계층 탐색 움직임 추정 연산의 모든 계층을 연산할 수 있는 통일적 연산장치의 구성도이고,

    제4a, b도는 본 발명에 따른 프로세서내의 데이터 이동을 위한 시프트 레지스터의 구성도이고,

    제5도는 본 발명에 따른 비교기와 가산기를 혼용할 수 있는 장치의 구성도이고,

    제6도는 본 발명에 따른 화소 절대값 차이 메모리의 구성도이고,

    제7도는 종래의 절대값 계산 회로의 구성도이고,

    제8도는 본 발명에 따른 화소 절대값 계산 회로의 구성도이고,

    제9도와 제10도는 현재프레임(CF) 및 과거프레임(PF) 화소의 위치를 좌측 위를 원점으로 2차원 적으로 도시한 것이다.

    * 도면의 주요부분에 대한 부호의 설명

    101-104 : 움직임 추정 프로세서 105-111 : 과거프레임 저장 메모리

    112-118 : 현재프레임 마크로블럭 데이터

    201 : 외부메모리 202 : 과거프레임 버퍼

    203 : 시프트 레지스터 어레이 301-316 : 화소 절대값차이 그룹

    317 : 가산기 트리 318 : 필드 프레임발생기

    401-404, 421-439, 441-444, 449-452, 454-457, 462-465, 467-470 : 시프트 레지스터

    405-420, 445-448, 458-461 : 화소 절대값 차이 연산 유닛과 먹스

    440, 453, 466, 703, 707 : 먹스 501 : 입력먹스

    502, 802 : 가산기 503, 805 : 출력먹스

    601-604 : 메모리 셀

    606, 607 : 읽기용 메모리 셀 열 선택(column select)기

    608, 609 : 쓰기용 메모리 셀 열 선택(column select)기

    610 : 가산 축척기 701, 702, 706, 708 : 감산기

    704, 705 : 레지스터 709 : 음수 탐지기

    801, 803 : 인버터 804 : 절대값 발생기

    상기와 같은 목적을 달성하기 위한 본 발명에 따른 계층간의 파이프라인 방식에 의한 마크로블럭 탐색방법은, 연속되는 마크로블럭(k1, k2, ..., kn-1, kn, kn+1, ...)을 탐색하는 움직임 추정기의 각 계층간의 연산방법에 있어서, 연관된 탐색영역 내에서의 입력된 마크로블럭(kn)의 탐색과 다음 마크로블럭(kn+1)의 연관된 탐색영역 내의 데이타의 독출을 상위계층에서 동시에 수행하는 제1단계; 상기 제1단계 이전의 상기 상위계층에 의한 탐색에 의해 축소설정된 탐색영역 내에서의 이전 마크로블럭(kn-1)의 탐색과 상기 제1단계에서의 마크로블럭(kn)의 탐색에 의해 축소 설정된 탐색영역내의 데이타의 독출을 하위계층에서 동시에 수행하는 제2단계; 및 상기 제2단계에서의 독출된 탐색영역 내에서의 마크로블럭(k n )의 탐색을 상기 하위계층에서 수행하는 제3단계;를 포함하여 이루어지는 것과, 상기 독출 과정은 헤당 데이타를 저장수단 내에 저장하는 단계; 및 프로세서의 상기 탐색 중에 다음 마크로블럭의 탐색에 필요한 초기 데이타 양을 상기 프로세서 내의 내부 버퍼로 이동시키는 입력단계;를 포함하여 이루어지는 것에 특징이 있는 것이며, 본 발명에 따른 각 계층별 화소 차이값의 통일적 산출장치는, 움직임 추정을 위한 화소 차이값 산출장치에 있어서, 계층별 마크로블럭을 최소크기의 마크로블럭 단위로 분해하여 순차적으로 화소차이의 절대값을 합산출력하는 단위차이 연산수단; 및 상기 단위차이 연산수단에서 출력되는 합산값을 가산하여 상기 계층별 마크로블럭의 화소 차이값을 출력하는 가산수단;을 포함하여 구성되는 것에 특징이 있는 것이며, 본 발명에 따른 각 계층별 화소 차이값의 통일적 산출장치는, 상기 단위차이 연산수단은 최소크기(M×M)의 현재 마크로블럭의 행 또는 열의 화소 데이타를 일대일 대응저장하는 소정개수의 래치; 탐색영역 내의 행 또는 열의 화소데이타를 일대일 대응 저장하는 다수의 시프트 레지스터; 및 상기 래치 내의 화소데이타와 상기 시프트 레지스터 내의 화소데이타의 화소 차이의 절대값을 출력하는 소정개수(kM, k는 1

    k M인 자연수)의 연산기;를 포함하여 구성되되, 상기 연산기들은 상기 래치 내의 행 또는 열의 화소데이타 군을 상기 군수에 대응되는 상기 시프트 레지스터 내의 화소데이타 군 및 연속(k번) 인접된 화소데이타 군들을 각각 동시에 연산하고, 상기 시프트 레지스터들은 상기 연산기의 연산 후에 소정 화소거리(M)의 데이타간에 이동이 이루어지는 것과, 상기 단위차이 연산수단은 탬색영역 내의 행 또는 열의 화소데이타 군을 저장하는 다수의 시프트 제지스터; 현재 마크로블럭 내의 임의의 화소데이타를 복제하여 상기 다수의 시프트 레지스터 내의 화소데이타와의 차이의 절대값을 각각 연산하는 다수의 연산기;를 포함하여 구성되되, 상기 시프트 레지스터는 상기 연산기의 연산후에 인접된 화소데이타의 이동을 수행하고, 상기 연산기는 현재 마크로블럭 내의 상기 임의의 화소데이타의 다은 화소데이타로 상기 연산과정을 수행하는 것에 다른 특징이 있는 것이며, 본 발명에 따른 전환이 가능한 가산 및 비교기능의 병합 연산장치는, 외부의 기능선택 신호에 따라 임의의 입력값(A) 또는 이에 상응하는 음수값 을 선택출력하는 입력값 선택수단; 상기 입력값 선택수단의 출력값과 또 다른 임의의 입력값(B)을 가산출력하는 가산수단; 및 상기 외부의 기능선택 신호에 기준하여 상기 가산수단의 출력값을 출력하거나 상기 임의의 입력값(A)과 상기 또 다른 임의의 입력값(B) 중 상기 가산수단의 출력값에 의해 결정되는 최소값을 선택출력하는 출력값 선택수단;을 포함하여 구성되는 것에 특징이 있는 것이며, 본 발명에 따른 메모리 셀의 연결구조는, 행렬배치를 갖는 다수의 메모리 셀에 있어서, 인접되는 일련의 행 또는 열의 메모리 셀은 동일 선택신호선에 의해 선택되어 데이타 비트의 쓰기 및 읽기가 동시에 행해지는 것에 특징이 있는 것이다.

    상기와 같이 구성되고 이루어지는 본 발명에 따른 고속 실시간 처리 움직임 추정을 위한 연산방법 및 이를 위한 연산장치에서는, 계층 탐색 움직임 추정 연산장치에 있어, 서로 다른 현재프레임 화상 데이터 또는 마크로블럭간의 연산지연의 문제를 해결하기 위해 종래의 움직임 추정에 사용되는 연속된 현재프레임, 과거프레임 마크로블럭 데이터를 사용하지 않고 시간적으로 하나 건너뛰어 사용한다. 이때 움직임 추정이 완료된 후 발생된 움직임 벡터를 이용하여 다음 계층의 과거프레임 마크로블럭 데이터를 위한 주소를 발생시키는데 필요한 지연시간은 하나의 움직임 추정계층의 연산에 필요한 시간에 비해 적으므로 제거됨으로써, 이를 통해 하드웨어 이용도를 극대화시킬 수 있다.

    하드웨어의 이용도를 높이기 위해 계층 탐색 움직임 추정시 발생하는 또 다른 지연시간은 주로 하나의 과거프레임 마크로블럭에 대한 움직임 추정을 수행한 후 다음의 과거프레임 마크로블럭에 대한 움직임 추정을 수행하기 위해 연산에 필요한 과거프레임 마크로블럭의 데이터를 읽어들여 절대값 차이 연산 유닛 어레이에 채우는데 발생된다. 이를 해결하기 위하여, 내부에 버퍼를 두어 현재 연산중인 과거프레임 마크로블럭에 대한 연산이 수행되고 있는 동안 다음 움직임 추정 연산 수행에 필요한 과거프레임 마크로블럭 데이터를 미리 읽어 저장한다. 이때 움직임 추정 연산 장치 칩의 입출력 핀 수와 시간당 입출력 양 사이에는 서로 반비례 관계가 있으므로, 이를 이용하여, 시스템 외부와 내부 클럭 속도를 조정하여, 다양한 메모리 또는 입출력 장치와 연결 가능하게 하였다. 이후 다음 움직임 추정 연산 초기에 일시에, 절대값 차이 연산 유닛 어레이에 입력시킨후 연산을 시작한다. 이때 외부의 메모리와 움직임 추정 부간의 입출력 병목현상을 해결할 수 있도록, 시간적으로 연산시간과 입출력시간을 중첩하고, 연산에 필요한 화상 데이터 입력은 외부 메모리로부터 이전 연산 동안 직렬로 입력되도록 하였으며, 아키텍쳐 내부에서는 고속 연산을 위해, 입력된 데이터를 이용하여 병렬로 연산이 수행되도록 한다.

    또한, 통일적 아키텍쳐를 통해 계층 탐색 움직임 추정 알고리즘을 연산하기 위해, 움직임 추정계층이 증가함에 따라 탐색영역의 크기는 감소하나 현재프레임 마크로블럭과 과거프레임 마크로블럭에 대한 절대값 차이연산에 필요한 연산량은 샘플링 거리가 감소함에 따라서 반비례하여 감소하므로 움직임 추정에 필요한 각 계층별 연산량을 다음 식에 나타낸 바와 같이 항상 동일한 값을 유지하게 하였다. 따라서 동일한 개수의 절대값 연산 유닛을 이용하여 모든 움직임 추정 계층을 연산하는데 필요한 시간은 항상 동일한 값을 가지게 된다.

    식(1)에서 정의된 pst, Sst는 각 움직임 추정계층별 탐색영역과 샘플링 거리를 나타낸다. 세부적으로, 샘플링 거리와 탐색영역의 변화에 따라 하드웨어의 구조 혹은 데이터 입력 방식을 프로그램 가능하게 할 수 있는 구조를 설계하여, 계층탐색 움직임 추정 알고리즘을 하드웨어로 구현하는데 있어 각기 다른 구조의 하드웨어를 설계해야 하는 문제가 해결 가능하다. 구현상 절대값 연산 유닛 어레이는 가장 작은 블럭인 계층 1에 해당되는 N/S1×N/S1(단, S1 : 계층 1에서의 샘플 거리)크기의 화소 그룹을 바탕으로 연산을 수행한다. 총 N/S1×N/S1개의 화소 절대값 차이 연산 유닛 각각은 현재프레임 마크로블럭 내에 존재하는 서로 다른 화소들을 저장하고 있어, 이를 병렬처리로 연산을 수행한 후 이를 가산 축척하여 결과적으로 하나의 마크로블럭에 대한 연산을 수행하게 된다. 계층이 증가하여 실제 연산에 필요한 마크로블럭 내의 화소 데이터 개수가 N/S1×N/S1 보다 커지게 되면, 이를 N/S1×N/S1의 크기를 갖는 여러 개의 블럭으로 나눈 뒤, 여러 번에 걸쳐 각 블럭에 대한 절대값 차이를 연산하여 이를 화소 절대값 차이 메모리에 저장한다. 이 메모리는 이전에 저장된 블럭의 절대값 차이와 계속 더해 나감으로서 각 계층에서 요구하는 데이타의 크기를 만족하는 마크로블럭별 절대값 차이를 만들게 된다. 각 계층이 증가할수록 상기 가산 대상인 N/S1×N/S1 화소 그룹의 개수는 증가한다. 또한 본 발명은 필드, 프레임 연산까지 통일적 아키텍쳐에 의해 연산 가능할 수 있도록, 상기 가산 절차에 있어, 프레임인 경우는 모든 화소 그룹, 필드 모드에 있어서는, 짝수, 홀수 행별로 가산을 수행한다. 상기 연산시, 각 화소 절대값 차이 연산 유닛이 계산하게 되는 화소 절대값 차이의 수를 n이라고 하면, n은 과거프레임 마크로블럭 수/총 화소 절대값 차이 연산 유닛 수가 된다. 따라서 화소 절대값 차이 연산 유닛은 n만큼 인터리빙 방식에 의해, 과거프레임 데이터를 연산한다. 본 발명에 의한 아키텍쳐에서는 응용분야에 따라, n이 조절 가능하게 하여, 하드웨어양과 연산속도를 자유롭게 조절 가능하게 함으로써, 다양한 영상처리 규격을 전부 동일한 아키텍쳐로 구현 가능하도록 한다. 이와 더불어, 움직임 추정 연산장치의 성능을 향상시키기 위하여, N/S1 × N/S1 개의 화소 절대값 차이 연산 유닛 그룹을 수평, 수직으로 각각 u, v만큼 늘여 과거 프레임 탐색 영역 내에 수평방향으로 u개, 수직방향으로 v개 존재하는 마크로블록을 동시에 연산 가능하다. 반대로 하드웨어양을 감소시킬 필요가 있어, 연산 능력을 줄일 경우에는 N/S1 × N/S1개의 화소 절대값 차이 연산 유닛 그룹들이 연산해야하는 과거프레임의 마크로블록을 증가시켜, 인터리빙 하여 연산함으로서 이를 해결할 수 있다. 이와 같은 방법을 통하여, 다양한 하드웨어양과 연산속도에 적용 가능하다.

    움직임 추정 연산 장치에서 사용되는 과거프레임 데이터는, 연산이 진행됨에 따라, 각 화소 절대값 차이 연산 유닛에서, 서로 중복된 입력을 연산하므로, 효율적으로 재 사용될 필요가 있다. 따라서, 상기에 설명된 외부 화상 메모리와 움직임 추정 프로세서간의 입출력 병목 현상 해결 방법과 더불어, 입력된 데이터의 재사용 도를 높임으로서 외부와의 시간당 데이터 입출력 양을 최소화 시킬 수 있다. 즉 2차원적으로 배열된 화소 절대값 차이 연산 장치에 시간에 따라, 입력된 화상 데이터를 시프트 레지스터에 의해 이동, 재사용하며, 연산하는 방법을 사용하였다. 본 발명에 의한 시프트 레지스터의 데이터 이동 및 저장 구조는, 다양한 블록 크기와 탐색 영역에 대하여, 오직 연산에 필요한 화소 수만큼의 시프트 레지스터 개수만이 요구되어, 종래의 데이터 이동만을 위한 별도의 시프트 레지스터가 요구되지 않는다. 이와 같은 방법을 통해, 현재 프레임 내에 있는 임의의 마크로블록과 움직임 벡터를 바탕으로 하여 설정된 탐색 영역 내에 존재하는 과거프레임의 마크로블록에 있어, 같은 위치에 존재하는 화소 절대값 차이를 계산한다. 이와 더불어, 고속의 연산을 위해 그룹별로 연산하고, 이동시켜, 화소 그룹에 대한 연산을 수행하므로써, 병렬처리를 가능하게 하며 계층 탐색 움직임 추정 알고리즘 대신, 전역 탐색 알고리즘에 적용할 경우, 매 연산마다, 동일한 현재 프레임 데이터를 사용하도록 하여, 모든 절대값 차이 연산 유닛으로, 현재프레임 데이터를 브로스 캐스팅(broa dcasting)하도록 할 수 있다.

    움직임 추정 연산은 블록크기가 다를 경우, 가산 축적될 화소 절대값 차이의 개수와, 움직임 벡터를 계산하기 위한 최소값 탐색 대상인 위 가산 축적된 결과의 개수에 차이가 있다. 따라서, 통일적인 아키텍쳐를 통해, 이와 같은 다양한 경우를 연산하기 위해서는, 화소 절대값 차이 가산축적기와 이 결과의 비교기의 개수에 차이가 있게된다. 본 발명에서는, 비교기와 가산기가 전용 가능한 장치를 제안하여, 이를 해결하였다. 비교기와 가산기의 전용은, 하드웨어 구현상 비교기는 감산기를통한 연산 결과의 부호 비트의 판별을 통해 대, 소를 구별할 수 있고, 2의 보수인 경우, 감산기는 입력의 보수에 최하위 캐리 비트에 1을 입력시킨다.

    움직임 추정 시스템에 있어 화소 절대값 차이 메모리는 읽기와 쓰기가 동시에 수행되며, 읽기 주소와 쓰기 주소간에는 항상 1행의 차이가 생긴다. 이를 위해, 종래의 기술에서는, 읽기와 쓰기 포트가 서로 독립적으로 존재하며, 두배의 기억용량이 필요한데, 읽기와 쓰기가 처리되는 메모리 셀의 위치가 연속되어 있다는 점을 이용하여, 메모리 셀 행 제어를 통일적으로 제어함으로써, 상기 메모리의 제어구조, 기억용량을 감소시켰다.

    또한, 움직임 추정 시스템에 있어서, 고속 병렬처리 연산을 위해, 화소 절대값 차이 연산기가 매우 많이 필요하다. 이러한 절대값 차이 연산은 기본적으로, 두 개의 가산기가 필요하다. 즉, 가산기 1의 출력이 음수일 경우는 절대값을 얻기 위하여 2의 보수를 취해야 하는데 이때는 두 개의 가산기를 직렬로 거쳐야 하므로 절대값 연산 유닛의 연산속도 저하를 가져올 수 있다. 본 발명에서는, 두 개의 가산기중 절대값 연산시 필요한 음수의 보수를 취하는 가산기를 종래의 기술과는 다르게, 단순화시킴으로써, 연산 속도의 향상과 하드웨어양을 감소 시켰다. 간략화 될 가산기 2는 CLA(캐리 록 어헤드 가산기)를 이용하였다. 2의 보수를 구하는 과정은 가산기 1출력의 보수를 취한 값에 +1을 가산하여 처리하였다. 이 경우에 있어, 가산기 2의 최하위 캐리 Cin에 1을 입력시키면 가산기 2의 나머지 입력(Bi)은 항상 0이 된다. 이를 이용하여 간략화된 가산기 2의 논리식은 다음과 같다.

    따라서, CLA에서 요구되는 Gi,Pi를 위한 회로가 필요 없으며 Ci를 계산하기 위한 회로도 간소해지고, 두 개의 가산기가 직렬로 연결되어 있으나, 가산기 2가 간소화되기 때문에 절대값 연산 유닛의 연산속도를 크게 저하시키지 않는다.

    이하, 본 발명에 따른 고속 실시간 처리 움직임 추정을 위한 연산방법 및 이를 위한 연산장치의 바람직한 실시예의 구성 및 동작에 대해, 첨부된 도면에 의거하여 상세히 설명한다.

    제1도는 전체 계층 탐색 움직임 추정 시스템의 구성도로서, 계층 1의 움직임 추정 프로세서(101), 계층 2의 움직임 추정 프로세서(102), 계층 3의 움직임 추정 프로세서(103), 반화소 움직임 추정 프로세서(104), 한 마크로블록에 대한 연산에 필요?? 데이터를 저장하는 과거프레임 저장 메모리에 있어 발생하는 시간의 역순으로 (105), (106), (107), (108), (109), (110), (111)과 각각의 과거프레임 마크로블록에 대응되는 현재프레임 마크로블록 데이터(112), (113), (114), (115), (116), (117), (118)로 이루어진다. 계층 1,2,3 계층 탐색 움직임 추정 프로세서(101), (102), (103)는 병렬로 각 계층의 움직임 추정 연산을 수행하고, 상기 프로세서의 과거프레임 데이터는 상위 계층의 움직임 벡터에 따라, 과거프레임 탐색영역이 결정된다. 이후 이 움직임 벡터에 의한 과거프레임 데이터가 하위 계층 움직임 추정 프로세서에 입력된 후에야 연산이 시작되어야 하므로 지연시간이 발생한다. 움직임 추정 프로세서(101), (102), (103), (104)는, 각각 과거프레임 저장 메모리(105), (107), (109), (111)에 저장된 과거프레임 마크로블록을 연산한다.

    제2도는 외부 메모리에서 연산장치 내부로 입출력 병목 현상을 최소화시키면서, 데이터를 입력하는 인터페이스 부분을 나타내었다. 인터페이스는 외부메모리(2 01), 과거프레임 버퍼 및 인터폴레이터(interplolator)(202), 및 시프트 레지스터 어레이(203)로 이루어져 있다.

    현재프레임 마크로블록에 대한 연산을 수행함과 동시에 다음 연산에 필요한 과거프레임 데이터의 일부를 과거프레임 버퍼(202)에 미리 받아들여 시간당 입출력 양을 일정하게 유지시키게 한다. 입출력 병목 현상을 최소화시키기 위하여 과거프레임 버퍼(202)에 있어 입력은 직렬로 처리하여, 이를 통해 프로세서 핀 수를 최소화시킨다. 반화소 모드 연산에 있어서는, 인터폴레이터를 통과시킨 결과를 과거프레임 버퍼(202)에 저장시킨다. 과거프레임 버퍼 및 인터폴레이터(interpolator )(202)의 입출력 속도는 다양한 응용분야에 적합하게 포트 수를 조절가능하다. 즉 포트 수를 증가시킬 경우, 입출력 속도를 저하시킬 수 있고, 포트수를 감소시킬 경우 빠른 속도의 입출력이 필요하다. 이와 같은 방법을 통해, 입출력 핀 수와 입출력 속도의 응용분야 및 구현 환경에 따른 조절이 가능하다. 저장된 연속되는 과거프레임 마크로블록을 위한 화상 데이터는 연산 초기에 일시에 움직임 추정 연산장치 내부의 상기 시프트 레지스터 어레이(203)로 일시에 입력되어, 지연시간이 제거된다.

    상기에서 설명한 바와 같이 일시에 입력된 화상 데이터는 어레이로 구성된 절대값 차이 연산 유닛을 통해, 현재와 과거프레임 마크로블록을 구성하는 화소의 절대값 차이를 병렬로 연산한다.

    제3도는 통일적 아키텍쳐를 통해 계층 탐색 움직임 추정 알고리즘의 다양한 계층, 필드, 프레임, 반화소 움직임 추정 연산을 수행할 수 있는 장치의 내부 구조를 나타내었다. (301), (302), (303), (304), (305), (306), (307), (308), (309), (310), (311), (312), (313), (314), (315), (316)은 이미 설명된바 있는, N/S1 × N/S1(단, S1 : 계층 1에서의 샘플링 거리)의 크기를 갖는 화소 절대값차이 그룹을 나타낸다. 여러개의 화소 절대값 차이로 이루어진 상기의 그룹은 트리 형식으로 가산 축척을 수행하는 가산기 트리(317)로 입력된다. 각 그룹내의 화소 절대값 차이의 가산 축척된 결과를 발생시키는 가산기 트리의 결과는 필드 프레임발생기(318)에서, 화소 절대값 차이 메모리를 통해, 순차적으로 움직임 추정 각 계층에 적합한 크기의 마크로블록 단위로 가산 축척 된다. 이 과정에서, 필드, 프레임 모드에 따라, 필드인 경우에는 홀수 및 짝수 행에 대해, 프레임인 경우에는 모든 행에 대해, 일차적으로 가산기 트리에서 발생된 화소 절대값 차이의 가산 축척 된 결과를 가산 축척하게 된다.

    제4도는 데이터 재사용을 통해, 시간당 입출력 양을 최소화시킬 수 있고, 내부 버퍼 메모리의 양을 감소시킬 수 있는 두 가지 데이터 저장 및 이동 구조를 나타내었다. 내부 연산 장치는, 절대값 차이를 계산하는 화소 절대값 차이 연산 유닛과 이들에게 과거프레임 마크로블록 데이터를 공급해주는 시프트 레지스터로 구성되어 있다. 일반적으로, 상기에서 설명된 통일적 아키텍쳐에 있어, 연산장치는 수직 방향으로 v개의 마크로블록을 동시에 계산하므로, (N/S1+v-1)개의 화소 절대값 차이 연산 유닛 행으로 구성되며, 1화소 절대값 차이 연산 유닛 행에는

    의 2차원 형태로 화소 절대값 차이 연산 유닛이 배열되어 있다. 이와 더불어, (N/S1 + 2p/S1-1)개의 시프트 레지스터가 행 형태와 맨 마지막 행은 m=(u-1)(u<N/S1) 또는 (N/S1-1)(u≥N/S1)개의 시프트 레지스터로 배치된다. 상기의 m개의 시프트 레지스터들은 연산 진행에 따라, 과거프레임 데이터가 연속되는 연산에 중복하여 사용되거나, 한 번만 사용하게되는 차이점이 있어, (2p/S1)/u 클럭마다 인접해 있는 행간 또는 하나 건너 존재하는 행에 대한 경로로 바뀌어 가며 데이터를 이동하게 된다.

    제4a도는 이와 같은 방안을 바탕으로, 계층 탐색 움직임 추정 알고리즘을 위한 것으로, 블록 크기 16, 탐색영역 32, 샘플링 거리 4의 경우를 나타낸다. 병렬처리 방안은, u=4, v=1 경우를 나타내며, 따라서, 시프트 레지스터는 4×4 형태와 마지막 행의 3형태로 이루어진다. 제4a도에서 (401),(402),(403),(404),(421),(422) ,(423),(424),(425),(426),(427),(428),(429),(430),(431),(432),(433),(434),(435)는 시프트 레지스터를 나타내며, (405),(406),(407),(408),(409),(410),(411), (412),(413),(414),(415),(416),(417),(418),(419),(420)은 화소 차이 절대값 연산 유닛을 나타낸다. 연산 초기에, 각 시프트 레지스터는 과거프레임 버퍼(202)로부터 과거프레임 데이터를 입력하여, 연결되어 있는 절대값 연산 유닛에 전송하며, 이와 더불어 위쪽으로 인접해있는 시프트 레지스터에 클럭에 따라 화살표 방향으로 데이터를 이동시킨다. 따라서, 동일한 데이터의 중복사용을 통해 화소 절대값 차이 연산을 수행하게 된다.

    제4b도는 전역 탐색 움직임 추정 알고리즘을 위한 데이터 이동 및 저장 방안으로서, 시프트 레지스터(436), (437), (438), (439), (441), (442), (443),(444 ),(449),(450), (451),(452),(454),(455),(456),(457),(462),(463),(464),(465),( 467),(468),(469),(470)과 먹스(440),(453),(466)와 화소 절대값 차이 연산 유닛 및 먹스(445),(446),(447),(448),(458),(459),(460),(461)로 이루어져 있다.

    연산유닛과 연결되어 있는 먹스는 (2pN/수평으로 배여된 화소 절대값 차이 유닛수) 클럭 마다 위쪽과 아래쪽 과거프레임 화소 데이터를 번갈아 가며, 연결해준다. 또 다른, 먹스(440),(453),(466)는 번갈아 가며 각 시프트 레지스터에 입력되는 데이터를 시프트 레지스터 행의 바로 위 또는 3행 아래로부터 받는 역할을 수행한다. 제4a와 제4b도의 차이점은 제4a도에서는, 계층 탐색 움직임 추정 알고리즘을 바탕으로, 그룹단위로 병렬 처리, 이동이 가능하여, 제4b도보다, 연산성능을 향상시킬 수 있고, 데이터 이동만을 위한 추가의 시프트 레지스터를 제거하기 위한 조건 N=2p로 제한을 받지 않는다. 제4b도는 전역 탐색 움직임 추정 알고리즘을 바탕으로, 모든 화소 절대값 차이 연산 유닛에서, 동일한 현재 프레임 화소 데이터를 다음 현재 프레임 데이터를 사용하기 전까지 여러 클럭동안 사용하므로, 이 현재 프레임 데이터를 하드웨어 구현상 유리한 늦은 속도로, 브로드 캐스팅(broa dcasting)할 수 있다는 장점이 있다.

    제5도는 다양한 블록크기를 연산 가능한 가산기와 비교기 사이에 전용 가능한 장치의 구조를 나타내었다. 이 장치는 입력먹스(501), 출력먹스(503), 가산기(5 02)로 이루어져 있다. 입력먹스(501)는 가산기인 경우에는 정상 입력을, 비교기로 사용될 경우에는 2의 보수를 취한 값을 가산기(502)에 입력시킨다. 가산기(502)는 비교기가 필요할 경우 입력먹스(501)에서 2의 보수를 받아들이고, 최하위 캐리에 1을 입력받아, 감산연산을 수행한다. 출력먹스(503)는 가산기인 경우에는 가산기(50 2)의 출력을, 비교기인 경우에는 가산기(502)의 출력의 부호 비트를 바탕으로 두 입력중 최소값을 출력하게 된다.

    제6도는 필드 프레임발생기(318)에서 화소 절대값 차이를 축척하기 위한 화상 절대값 차이 메모리의 구조를 나타내었다. 화상메모리는 데이터의 비트 폭만큼의 메모리셀 열로 이루어져 있으며, 동작원리를 간단히 설명하기 위하여, 메모리 셀(601),(602),(603),(604)과 읽기용 메모리 셀 열 선택(column select)기(606 ),(607) 및 쓰기용 메모리 셀 열 선택(column select)기(608),(609), 가산 축적기( 610)만을 간단히 도시하였다. 모든 계층을 연산할 수 있는 본 발명에서 제시된 아키텍쳐에서는, 인접된 화소 절대값 차이 그룹에 대해 순차적으로, 가산 축척이 수행된다. 예를들어, 제6도의 첫 번째 열에 나타낸 단일 비트의 경우, 한 클럭 사이클동안, 상기 메모리 셀(601)과 메모리 셀(603)이 동일한 워드라인에 의하여, 인접된 화소 블록에 대한 읽기와 쓰기를 수행한다. 메모리 셀(603)로 부터의 읽기 결과출력먹스는 가산 축적기(610)의 입력으로, 가산축적기의 출력은 쓰기용 메모리 셀 열 선택(column select)장치(608)를 통해, 메모리 셀(603)로 쓰기가 수행된다.

    제8도는 화소 절대값 차이 연산을 위한 장치의 구조를 나타내었다. 이 장치는 인버터(801),(803)와 가산기(802), 간략화된 절대값 발생기(804) 및 출력먹스( 805)로 이루어져 있다. 먼저 가산기(802)에서 현재프레임과 과거프레임 화소의 차이를 계산하고, 이의 사인 비트를 검사하여 양수 일 경우에는 데이터를 출력먹스 (805)를 통해, 그대로 출력하게 된다. 가산기(802)의 출력이 음수일 경우에는 인버터(803)를 통해 결과의 보수를 발생시키고, CLA를 통해 이전에 설명된 방법에 의해 간략화된 절대값 발생기(804) 최하위 캐리 비트에 1을 입력하여 절대값을 계산해낸후 출력먹스(805)를 통해 절대값을 발생시킨다.

    제4a도에 나타낸 장치의 구조를 바탕으로, 3계층 탐색 움직임 추정을 연산하는 방식을 사용하여, 본 발명에 의한 데이터의 재사용 방안, 데이터의 시프트 레지스터를 통한 이동 및 연산 방안을 위한 실시예를 설명하였다. 다음의 일련의 표는 각 화소 절대값 차이 연산 유닛에 있어, 각 클럭에 있어서 연산 과정이 실시예를 나타내었고, 제9도는 현재프레임(CF) 및 과거프레임(PF) 화소의 위치를 좌측 위를 원점으로 2차원적으로 도시 하였다. 타이밍 다이어그램에 있어, 첫 행은 각 연산 유닛의 번호를 나타낸다.

    또한, 제4b도에 나타낸 장치의 구조를 바탕으로, 전역 탐색 움직임 추정을 연산하는 방식을 사용하여, 본 발명에 의한 데이터의 재사용 방안, 데이터의 시프트 레지스터를 통한 이동 및 연산 방안을 위한 실시예를 나타낸다. 다음의 일련의 표는 각 화소 절대값 차이 연산 유닛에 있어, 각 클럭에 있어서의 연산 과정 실시예를 나타내었다. 블록 크기 4, 탐색영역 2경우의 전역 탐색 움직임 추정의 실시예를 나타내었고, 제10도는 현재프레임(CF) 및 과거프레임(PF) 화소의 위치를 좌측 위를 원점으로 2차원적으로 도시하였다. 타이밍 다이어 그램에 있어, 첫 행은 각 화소 절대값 차이 연산 유닛의 번호를 나타낸다.

    또한, 본 발명에서 제안된 데이터 저장 및 이동 방법 등의 연산 방안과 장치는 다양한 움직임 추정 알고리즘, 다양한 계층의 수, 마크로블록 크기,샘플링 거리에 모두 적용 가능하다. 본 발명에서 제안된, 가산기와 비교기 전환 가능한 장치는 움직임 추정 장치이외로, 가산 축적 후 비교를 통한 최소값 또는 최대값을 구하는 모든 연산에 적용 가능하다. 본 발명에서 제안된 화상 메모리 구조는, 입출력이 동시에 필요한 모든 장치에 적용 가능하다. 본 발명에서 제안된 절대값 연산장치는, 움직임 추정 연산이외로, 절대값 계산이 필요한 모든 연산에 적용 가능하다.

    상기와 같이 구성되고 이루어지는 본 발명에 따른 고속 실시간 처리 움직임 추정을 위한 연산방법 및 이를 위한 연산장치는, 계층간 종속성으로 인해 발생되는 연산지연 문제점을 해결할 수 있으며, 규칙적이며 동일한 하드웨어 구조의 중복사용을 통한 하드웨어 구현이 용이하며 효율적인 과거프레임 버퍼에 의해, 연속되는 화상 마크로블록간의 하드웨어의 휴지도를 감소 시킬 수 있고 외부 화상 데이터의 직렬 데이터 입력이 가능하도록 함으로써 입출력 핀 개수를 감소시키고, 입출력 병목문제를 제거되는 효과가 있다.

    또한, 움직임 추정 각 계층, 블록크기, 필드, 프레임 연산, 반화소 연산등 다양한 움직임 추정 연산모드를 통일적 아키텍쳐를 바탕으로 구현가능하며, 고속연산이 가능하고, 입력된 데이터의 중복 사용도를 높여 입출력 핀 개수의 최소화 및 하드웨어 양을 최소화 시키는 효과가 있으며, 외부와 내부 클럭 속도의 조절을 통한 다양한 입출력 핀 수의 조절 및 다양한 외부 화상 메모리와의 동작이 가능하며, 적은 메모리의 기억용량만으로 입출력을 동시에 진행시킬 수 있는 화상 메모리가 구현가능하고, 아키텍쳐의 성능이 특정 요소에 의해 제한되는 문제점을 해결하며 다양한 계층 탐색 움직임 추정 알고리즘, 계층 연산, 연산속도, 하드웨어양, 병렬처리 정도, 마크로블록 크기 등을 통일적으로 만족시킬 수 있는 효과가 있는 매우 유용한 발명이다.

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈