KR20010031192A - 기계시각시스템에서의 영상데이터와 같은 논리적으로인접한 데이터샘플들을 위한 데이터처리시스템 - Google Patents

기계시각시스템에서의 영상데이터와 같은 논리적으로인접한 데이터샘플들을 위한 데이터처리시스템 Download PDF

Info

Publication number
KR20010031192A
KR20010031192A KR1020007004135A KR20007004135A KR20010031192A KR 20010031192 A KR20010031192 A KR 20010031192A KR 1020007004135 A KR1020007004135 A KR 1020007004135A KR 20007004135 A KR20007004135 A KR 20007004135A KR 20010031192 A KR20010031192 A KR 20010031192A
Authority
KR
South Korea
Prior art keywords
data
processing
word
processor
memory
Prior art date
Application number
KR1020007004135A
Other languages
English (en)
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 어큐어티 이미징 엘엘씨
Publication of KR20010031192A publication Critical patent/KR20010031192A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Image Processing (AREA)
  • Image Input (AREA)
  • Image Analysis (AREA)
  • Bus Control (AREA)

Abstract

데이터처리기(20)를 구비한 데이터처리시스템(10)은 클럭사이클마다 적어도 하나의 처리기워드(17)를 처리한다. 각각의 처리기워드(17)는 논리적으로 인접하거나 관련된 데이터샘플들의 순차적인 스트림의 일부로서 개별적으로 수신되는 다수의 완전데이터샘플들(13)을 구비한다. 기설정된 갯수의 데이터샘플들은 전용메모리(18)에 처리기워드(17)로서 함께 저장된다. 데이터처리시스템은 또한 데이터처리기가 다른 2개의 처리기워드들로부터의 적어도 하나의 데이터샘플을 포함한 적어도 하나의 처리기워드(17)를 처리하는 것을 허용하는 데이터정렬기(50)를 구비한다. 데이터정렬기(50)는 시각(vision)시스템에서의 화소정렬과 같은 데이터샘플정렬을 제어하여 영상데이터처리를 용이하게 한다.

Description

기계시각시스템에서의 영상데이터와 같은 논리적으로 인접한 데이터샘플들을 위한 데이터처리시스템{Data processing system for logically adjacent data samples such as image data in a machine vision system}
막대한 양의 데이터 처리를 요구하는 수많은 데이터처리응용들이 존재한다. 수많은 이러한 응용들에서, 처리하려는 데이터는 논리적으로 인접한 데이터샘플들의 순차적인 스트림으로서 수신된다. 이런 데이터 유형의 일 예는 기계시각데이터이다.
기계시각(machine vision)은 비디오영상들로부터 데이터를 추출하고 그것을 처리제어 및/또는 품질제어에 유용한 정보로 만드는 특별한 형태의 산업자동화기술이다.
기계시각을 위해 사용되는 기본적인 기술의 대부분은 다른 분야들과 공유된다. CCD비디오카메라기술은 캠코더들 및 감시카메라들에 사용된다. 디지털영상포획하드웨어는 데스크탑출판 및 멀티미디어응용들을 위해 사용된다. 영상분석소프트웨 어, 이를테면 매릴랜드주 베데스다의 국립보건협회(National Institute of Health, NIH)로부터 입수할 수 있는 공개소프트웨어 응용프로그램인 "이미지(Image)"는 과학적인 영상 분석을 위해 사용된다. 영상분석알고리듬들은 학문적인 연구에서 폭넓게 주목받아 왔다. 본 발명의 양수인을 포함한 많은 회사들이 저렴하고 쉽사리 입수할 수 있는 구성요소들을 조합하여 기계시각시스템들을 만들어 왔다.
기계시각기술은 다수의 응용들에 이용되고, 네 개의 주요 기계시각응용들로는 다음의 것들이 있다: 1) 검사(inspection)응용들; 2) 치수측정; 3) 물체위치(object location)(유도 또는 부품배치를 위함); 및 4) 부품식별. 이러한 응용들은 예를 들면 산업적인 조립(로보트공학)응용들 및 제품검사에 유용하다. 예를 들어, 기계시각은 기준점에 관련하여 기부(base)의 위치를 결정하는데 사용될 것이다.
유사하게, 다른 기계시각응용들은 제품포장이 온전한지, 집적회로구성요소리드들이 그것들의 적절한 위치에 있으며 적절히 형체를 이루고 있는 지와, 제품로고 또는 레이블이 기재되고 정확한지의 결정, 그리고 완성된 제품 검사 자체를 포함한다.
시각시스템카메라는 수행되는 검사에 관련한 결정을 다루기 위하여 정확하고 신속하게 처리되어야 하는 정보를 상당한 량으로 수집한다. 기계시각데이터는 일반적으로 논리적으로 인접하고 관련된 데이터샘플들의 순차적인 스트림으로서 표현된다. 그러한 데이터의 부피 및 유형은 정보의 순수 부피 및 데이터샘플들의 관련성(relatedness)이 주어지면 신속한 처리에 상당한 장애로 나타난다.
종래기술의 기계시각데이터처리기법들의 소프트웨어 구현들 및 대부분의 하드웨어 구현들은 한꺼번에 기계시각데이터의 한 화소(하나의 데이터샘플)를 처리하는데 관련된다. 컴퓨터시스템의 메모리에 워드들로 패킹된 부호없는 정수들(또는 바이트들 또는 이진벡터들)을 표현하는 고정길이의 디지털코드들은 전형적으로 기계시각영상화소들을 표현한다. 많은 종래기술 시스템들에서, 1 내지 4 화소들의 데이터(하나의 데이터샘플)는 각각의 메모리워드로 패킹되나 이러한 화소들(데이터샘플들)은 컴퓨터상에서 실행되는 프로그램에 의해 한번에 하나씩 처리된다. 현재의 영상처리시스템들은 또한 컴퓨터의 메모리캐시로 이익을 얻는다. 즉, 컴퓨터는 전형적으로 전체 캐시라인들을 컴퓨터의 내부캐시메모리로 가지고 와, 외부메모리에 접근하는데 소비되는 시간을 최소화한다. 일단 영상데이터의 캐시라인들이 컴퓨터의 내부캐시메모리에 위치되면, 컴퓨터는 처리를 위해 개개의 화소들에 신속히 접근할 것이다.
이러한 종래기술 시스템들의 주요 이점들은 그러한 시스템들이 매우 유연하고 다른 응용들에 쉽게 적응될 수 있다는 것이다. 그러나, 주된 불리함은 이러한 컴퓨터시스템들이 순차적으로 연산들을 수행하여 시스템의 전체 속력이 컴퓨터의 속력에 정비례한다는 것이다. 많은 현재의 기계시각응용들의 경우, 오늘날 이용할 수 있는 범용 컴퓨터들은 응용의 요구들을 만족할 만큼 빠르게 실행되지 않는다.
따라서, 기계시각에 의해 제기된 주요 과제들 중의 하나는 적절한 계산하드웨어를 통합하는 것이다. 범용 CPU들 및 다른 응용들을 위해 설계된 영상처리하드웨어는 많은 기계시각응용들에 요구된 가격 대 성능비를 만족하지 않는다.
다수의 기기들이 디지털영상데이터에 대한 계산을 가속하도록 개발되어왔다. 이러한 특수설계된 처리기들은 유사한 사이즈 및 비용의 범용 CPU보다 훨씬 빠르게 영상데이터스트림에 대해 특수한 계산을 수행한다. 그러한 기기들 중의 한 예는 파이프라인처리기이다. 이전의 영상파이프라인처리 아키텍처들은 영상화소들을 래스터(raster)순서로 고속으로 처리, 수신하고, 많은 연산들에 대해 클럭펄스마다 하나의 새로운 화소를 생성한다. 이러한 기기들은 종종 카메라에 의해 발생된 비디오데이터의 스트림에 직접 연결되는 응용들에 사용된다.
이러한 화소-파이프라인처리기들은 기계시각에 유용할 것이나, 많은 기계시각응용들에 최적인 것은 아니다. 기계시각시스템의 경우, 요구된 속력은 응용의 함수이지 비디오데이터비율의 함수는 아니다. 많은 기계시각응용들은 아날로그든 디지털이든, 표준비디오카메라 또는 영상데이터의 다른 신호원의 데이터비율 보다 실질적으로 빠르거나 느린 데이터율들을 요구한다. 기계시각을 위한 화소-파이프라인 처리기들의 유용함을 제한하는 다른 문제들은 긴 처리대기시간과, 그러한 화소-파이프라인처리기들이 종종 처리동작들을 전환하도록 하기 위한 실질적인 재구성 노력을 요구한다는 점이다.
몇몇 기기들이 비용에 효율적인 방식으로 기계시각계산을 수행하도록 특별히 고안되어왔다. 일부 시스템들은, 인텔 8087 또는 모토롤라 MC68881이 각각 인텔 8088 또는 모토롤라 68000의 메모리뱅크들에 저장된 데이터에 대한 부동소수점계산을 수행하는 것과 매우 유사한 방식으로, 주 CPU에 의해 제어되는 메모리뱅크들에 저장된 영상데이터를 직접 연산하는 비전코프로세서를 사용한다. 이러한 시스템들은 단일 메모리제어기를 CPU 및 코프로세스 간에 공유함으로써 비용상의 이점을 얻지만, CPU가 코프로세서의 제어에 긴밀하고 폭넓게 관여하기 때문에 성능상의 불리함을 감수해야 한다.
다른 현존하는 기계시각시스템아키텍처는 영상데이터의 개개의 화소들 또는 다중 행들 또는 열들에 대한 연산을 병렬로 행하는 많은 수의 단순시각처리기들을 사용한다. 처리기들의 갯수는 매우 빠른 시스템을 구축하도록 확장될 수 있으나, 병렬 메모리 배선 회로는 비교적 복잡하고 비싸다.
다른 현존하는 기계시각시스템아키텍처는 디지털신호처리기기들(DSP들)을 사용한다. 이러한 기기들은 기계시각을 위해 요구된 연산들을 수행하도록 프로그램될 수 있으나, 오디오나 모뎀 응용들을 위해 요구된 일차원신호처리에 더 적합하다. 시각 및 비시각 응용들 둘 다에서, DSP기반 시스템들의 다른 불리함들은, 그 시스템들이 많은 다른 연산들을 수행하도록 프로그램될 수 있음에도 불구하고 철저한 어셈블리코드 최적화 및 DSP명령들에 대한 상세한 지식이 최적의 성능을 달성하기 위해 요구된다는 점이다. 그에 더하여, DSP엔진들은 전형적으로 값비싼 고속의 메모리를 요구하여, 데이터 또는 시각 처리시스템의 비용이 높아지게 만든다.
현존하는 기계시각시스템아키텍처들에 사용되는 다른 기법은 화소값들 또는 화소값들의 단순 함수들에 의해 색인된 룩업테이블들을 사용하여 정규화된 상관 및 기계시각을 위해 요구된 다른 계산들을 이행하는 것이다. 룩업테이블들을 사용하는 경우의 이점들은 룩업테이블들이 다른 연산들을 이행하도록 프로그램될 수 있으며, 비선형연산들을 수행할 수 있고, 쉽게 입수할 수 있는 메모리구성요소들을 사용하여 구현될 수 있다는 것이다. 계산들의 룩업테이블 구현들의 불리점들은 연산들을 변경시키는 하나 이상의 룩업테이블들의 재로딩의 성능충돌과, 이 방식으로 수행되어질 제한된 범위의 계산들을 포함한다.
본 발명은 데이터처리시스템들에 관한 것으로, 보다 상세하게는, 기계시각시스템에서와 같이 논리적으로 인접하거나 관련된 데이터샘플들을 담고있는 데이터 스트림을 처리하기 위한 데이터처리시스템에 관한 것이다.
도 1은 본 발명의 한 특징에 따른 데이터처리기 및 처리가속기의 개요 블록도,
도 2는 시각처리가속기의 형태로 본 발명을 통합하는 기계시각시스템의 개요블록도,
도 3은 처리가속기의 형태로 본 발명을 통합하는 기계시각시스템의 더 상세한 개요 블록도,
도 4는 본 발명의 처리가속기에 의해 이용되는 메모리서브시스템을 도시하는 본 발명의 처리가속기의 일부의 개요 블록도,
도 5a 및 5b는 본 발명의 한 양태에 따른 화소정렬부의 단순화된 도면을 도시하는 개요 블록도들,
도 6a 내지 6d는 본 발명의 한 양태에 따른 정렬부의 기능성을 이행하는데 사용되는 카운터들 및 화소정렬데이터시프터를 도시하는 개요 블록도들,
도 7은 본 발명의 한 양태에 따른 정렬부의 동작을 보어주는 개요도,
도 8은 본 발명의 한 양태에 따른 단일 피연산자로 메모리대기시간 문제를 해결하도록 데이터스트림에 FIFO를 추가함을 도시하는 개요 블록도,
도 9는 본 발명의 한 양태에 따른 2개의 피연산자들로 메모리대기시간 문제를 해결하도록 데이터스트림에 FIFO를 추가함을 도시하는 개요 블록도,
도 10은 본 발명의 한 양태에 따른 3개의 피연산자들로 메모리대기시간 문제를 해결하도록 데이터스트림에 FIFO를 추가함을 도시하는 개요 블록도,
도 11은 2개의 물리적인 메모리들로 3개의 피연산자계산들을 가능케하는 공유된 메모리와 함께 결과버퍼를 사용함을 도시하는 본 발명의 한 특징의 개요 블록도,
도 12는 시각처리가속기에 구현된 본 발명의 유연한 데이터경로배치를 도시하는 본 발명의 한 특징의 개요 블록도,
도 13은 본 발명의 한 특징에 따른 워드폭(word-wide)으로 정규화된 상관처리부의 개요 블록도,
도 14a 내지 14k는 본 발명의 다른 양태에 따른 워드폭이웃형성영상처리부 동작의 개요도들,
도 15는 본 발명의 한 양태에 따른 워드폭이웃형성영상처리부의 바람직한 구현의 개요 블록도,
도 16은 본 발명의 다른 특징에 따른 워드폭분할처리부의 개요 블록도,
도 17 및 18은 본 발명의 다른 양태에 따른 내부처리가속기 순서조정엔진의 동작을 도시하는 개요 블록도들, 그리고
도 19 및 20은 기계시각시스템에 구현된 본 발명의 다른 특징에 따른 염탐특징 및 주변버스인터페이스의 사용을 도시하는 개요 블록도들이다.
따라서, 본 발명의 한 목적은 현재 기술의 많은 제한들을 조정할 수 있으면서도 기계시각 및 다른 처리시스템들에 대해 뛰어난 가격/성능을 용이하게 하는 것이다. 본 발명은, 하나의 실시예에서, 새로이 이용가능한 디지털메모리를 이용하고 바람직한 실시예에서는 주문형 집적회로(Application Specific Integrated Circuit, ASIC)기술을 이용하는 혁신적인 아키텍처를 제공한다. 그에 더하여, 본 발명은 현존하는 영상처리기법들의 신규한 이행을 제공한다. 본 발명이 시각시스템의 영상처리시스템 또는 처리가속기구성요소에 관련하여 설명될 것이나, 오디오신호처리, 디지털신호처리, 또는 1, 2, 또는 더 높은 차원의 데이터집합을 처리하려는 임의의 다른 응용들과 같은 많은 데이터처리응용들이 개시된 발명의 이점들을 취할 수 있으므로, 그러한 설명이 본 발명을 한정하는 것은 아니다. 게다가, 주사현미경와 같은 다른 신호원들로부터의 영상데이터샘플들, 또는 지진측량데이터 등과 같은 다른 관련되거나 인접한 데이터샘플들이 본 발명의 시스템에 의해 처리될 수 있다.
본 발명은 관련되거나 인접한 데이터샘플들의 스트림으로부터 수신된 다중 데이터샘플들(다중 화소데이터)을, 하나의 메모리 또는 처리기워드로, 그룹화하고 저장하고, 처리기워드에 저장된 데이터샘플들의 전부를 동시에 처리함으로써 실질적인 성능상의 이점을 얻는다. 이 아키텍처는 이진 및 그레이스케일 형태, 정규화된 상관, 히스트그램화, 사영(projection), 분할(segmentation), 및 이 기술1)에서 잘 알려지고 참조로서 여기에 통합된 많은 다른 알고리듬들을 이행하는데 사용될 수 있다. 본 발명은 각각의 화소를 위해 복제되고 부가적인 로직과 결합된 이러한 계산들의 직선순방향(straight forward) 디지털회로 구현들을 사용하여, 영상데이터의 워드에 저장된 화소들의 모두를 동시에 처리한다.
논리적으로 관련된 데이터샘플들의 데이터스트림으로부터 수신되는 화소들 또는 다른 데이터샘플들은 처리 이전 및 이후의 저장 및 전송을 위해 더 넓은 워드들로 패킹된다. 예를 들어(본 발명을 한정하지는 않음), 4개의 8비트 화소들은 32비트 폭의 메모리워드로 패킹되어, 32비트 메모리버스들을 통해 전송되는 등의 처리가 이루어진다. 메모리클럭사이클 마다 입력( 및 아마도 출력)되어진 화소들의 수는 이러한 보통의 메모리/버스 조직(organization)에 상응한다. 화소처리연산들이 임의의 영상화소경계에 대해 시작하고 종료될 수 있어야 하므로, 본 시스템 및 방법은 각각의 처리연산 동안 화소들의 타당성을 재정렬하고 신호한다.
최대의 성능을 위해, 파이프라인된 버스트모드 SDRAM(Synchronous Dynamic Random-Access Memory)메모리들이 사용된다. 본 발명은 인터럽트되지 않은 데이터스트림을 영상처리유닛들에 제공하기 위해 조정된(coordinated) FIFO(First In First Out)버퍼들을 사용하여, 처리가 완전한 클럭율로 진행하게 한다. 버퍼 및 복수개의 데이터경로스위치들을 추가하여 다중 메모리 공유와, 자원 및 목적지피연산자배열들(destination operand arrays)을 유연하게 위치 정하는 것을 허용한다.
본 발명은 내부 순서조정(sequencing)엔진을 통합하여, 본 발명의 데이터처리기(처리가속기)가 외부 CPU의 중재를 필요로 하지 않으면서 독단적인 순서들로 연산들을 실행하게 한다. 이 순서조정엔진은 단순 명령들을 읽고 결과들을 전용처리기 메모리뱅크(들)에 저장한다.
본 발명은 또한 처리하려는 영상 또는 다른 데이터가 버스트모드 주변버스를 통해 다른 메모리로 전송될 때 이 데이터의 염탐 또는 전용처리기메모리로의 포획을 허용한다. 이 특징은 시스템이 데이터를 추가 처리를 위한 CPU메모리로 또는 보여주기 위한 디스플레이메모리로 동시에 전송하는 동안에 본 발명이 전용메모리들로 데이터를 수신하는 것을 가능하게 한다.
클럭 당 다중화소 기법이 워드 당 임의의 수의 화소들로 확장될 수 있음에도 불구하고, 버스 또는 처리기워드 당 4개의 화소들, 메모리워드 당 하나의 버스 또는 처리기워드가 이하의 상술에서, 예로서 보여주기 위한 목적으로, 바람직한 실시예에서 사용되고 도시된다.
본 발명은 데이터처리시스템(10)에 사용하기 위한 도 1의 신규한 데이터처리기(20)(여기서는 처리가속기로도 언급됨)를 특징으로 한다. 본 발명은, 여기에 개시된 발명이 시각처리시스템을 포함하나 이것에 한정되지는 않는 수많은 유형들의 데이터처리시스템들에 의해, 이러한 시스템들 내에서 그리고 이러한 시스템들과 함께 구현될 수 있게끔 하였다.
본 발명의 데이터처리기(20)는, 개개의 데이터샘플들(15)이 처리하려는 영상으로부터의 개개의 화소데이터값들이고 그 영상(들)은 카메라에 의해 포획되는 경우이었을 때, 논리적으로 관련되거나 인접한 데이터샘플들(15)의 일반적으로 연속하는 스트림(13)을 수신하기에 상당히 적합하다. 데이터샘플들(15)은 아날로그 또는 디지털 값의 데이터샘플들일 것이다. 이 기술에서 잘 알려진 것처럼, 개개의 데이터샘플들(15)은 전형적으로 바이트내의 비트들과 같은 데이터요소들로 구성된다.
논리적으로 관련되거나 인접한 데이터의 스트림(13)은 시각시스템의 디지타이저 또는 프레임그래버(frame grabber)와 같은 데이터조직화기(12)에 의해 수신된다. 데이터조직화기(12)는 개개의 데이터샘플들(13)을 수신하고 기설정된 갯수의 데이터샘플들(13)을 데이터버스(26)를 통해 주변버스인터페이스(230), 데이터경로(121) 및 메모리제어기(40)를 경유하여 데이터메모리(18)에 전송하기 위한 처리기워드들인 P0-Pm(17)로 그룹화한다. 처리기워드들(17) 각각은 2개 이상의 데이터샘플들(15)을 담고 있다. 바람직한 실시예에서, 데이터샘플들(15)은 8비트 길이이고 4개의 논리적으로 인접하거나 관련된 그러한 데이터샘플들(15)은 데이터조직화기(12)에 의해 하나의 처리기워드(17)로 그룹화된다. 나중에 추가로 설명될 것처럼, 메모리워드는 하나 보다 많은 처리기워드들(17)을 담을 수 있다.
데이터처리기(20)는 처리기워드들(17)을, 나중에 설명될 것처럼 큰 메모리서브시스템의 일부를 구성하는 적어도 하나의 메모리(18)에 저장하는 것을 제어한다. 2개 이상의 데이터샘플들(15)을 포함하는 각각의 처리기워드(17)는 데이터처리기(20)의 제어 하에서 저장되며, 데이터처리기(20)는 바람직한 실시예에서 적어도 하나의 메모리제어기(40) 및 하나 이상의 주소발생기들(41)을 구비한다. 본 발명의 부가적인 특징들은 나중에 매우 상세히 설명될 것으로, 데이터처리기(20)는 일반적으로 호스트CPU에 독립적이고 자주적으로 동작하는 것을 허락하는 순서조정기(200); 처리하려는 데이터샘플들이 2개의 처리기워드들(17) 간의 경계를 "교차"할 때마다 또는 처리하려는 데이터의 배열이 처리기워드경계에서 시작 또는 종료하지 않는 경우에 처리기워드(17) 내의 데이터샘플들(15)을 재정렬시키는 데이터정렬기(50); 그리고 나중에 설명될 것처럼, 각각이 특수한 작업을 수행하는 이웃(42a), 상관(42b), 분할(42c), 및 영상산술(42d)의 처리부들과 같은 하나 이상의 처리부들(42)을 구비한다.
도 2의 전형적인 기계시각시스템(10a)은 이 시스템에서 본 발명의 데이터처리기(20)가 처리가속기로서 사용되는 것으로, 여기서는 예로서 설명된다. 시각시스템(10a)은 디지타이저(12, 프레임그래버)를 데이터조직화기로서 구비하고, 디지타이저는 영상데이터와 같이 논리적으로 인접하거나 관련된 데이터샘플들의 스트림(13)을 카메라(14)로부터 수신한다. 디지타이저(12)는 영상데이터(13)를 국소적으로 저장하며 또는 바람직하게는 최적의 성능 및 최저 비용을 위해 포획되고 그룹화된 데이터샘플들(15)(영상데이터)을 내장된 직접메모리접근(direct memory access, DMA)제어기(7)를 사용하여 전용의 영상 또는 데이터샘플 메모리(18)에 위치시킨다. 데이터 또는 시각데이터처리가속기(20)(본 발명의 주제) 또한 제공된다. 현재의 발명에서, 처리가속기(20)는 시각시스템CPU(16) 및 시각CPU메모리(22)에 독립적인 처리기워드들(17)로서 저장된 데이터샘플들(15)을 저장 및 조작하기 위한 데이터샘플메모리(18)에 메모리버스(19)를 통해 연결된다.
이러한 시각시스템(10b)의 한 실시예(도 3의 10b)에서, 다중 카메라들(14a-14d)로부터 포획된 영상들(영상데이터샘플들(13)의 스트림들)은 시각가속기(20), 내장된 시각시스템CPU(16)의해 처리될 수 있거나, 또는 시각시스템이 호스트CPU주변데이터버스(예, 어댑터 또는 주변카드)에 상주하는 경우의 호스트CPU(24)에 의해 처리될 수 있다. 시각시스템(10b)은 종종 국소디스플레이(28), 그리고 실시간 시각 동작들 및 다른 기기들과의 상호통신을 지원하는 이산입력/출력포트들을 구비한다.
최대 효율을 위하여, 이 구현에서의 디지타이저(12)는 적어도 메모리데이터버스(19)의 폭에 부합하도록 그리고 바람직한 실시예에서는 주변버스(26)의 폭에 부합하도록, 다중 화소들(데이터샘플들(15))을 더 큰 워드(처리기워드(17)로 패킹한다(예, 4개의 8비트화소들이 32비트워드로 패킹됨). 메모리데이터버스(19)의 폭과 주변데이터버스(26)의 폭이 동일하지 않다면, 처리가속기(20)는 메모리데이터버스(19) 또는 주변데이터버스(26)의 폭에 부합하도록 처리기워드(17)의 폭을 다시 형식화(reformat)할 것이다. 버스인터페이스부(230)는 필요한 경우 버스 또는 처리기워드들(17)을 더 넓은 폭의 메모리워드들로 추가로 패킹할 것이다.
DMA마스터(7)에 관련한 디지타이저(12)는 화소데이터샘플들을 고속의 버스트들로 주변데이터버스주소공간의 일 부분에 이동시킨다. 본 발명에서, 이러한 일 부분은 영상메모리들(18a 및/또는 18b), 공유된 시각시스템CPU 메모리(22), 호스트CPU 메모리(32) 또는 디스플레이제어기 메모리(34) 중의 하나일 것이다.
일단 충분한 수의 영상데이터샘플들(전형적으로는 완전한 영상)이 영상메모리(18)에 저장되면, 처리가속기(20) 동작들이 개시될 수 있다. 임의의 그러한 동작의 결과는 레지스터들에서의 데이터의 집합 또는 다른 영상(결과배열)일 것이다. 시각가속기(20)에서의 데이터조직화기(12), DMA마스터(7), 및 DMA제어기들(도 1의 232)은, 들어오는 영상데이터샘플들(15)을 효율적으로 형식화하고 처리된 영상들과 처리가속기(20) 바깥의 처리기워드들(17)로서 레지스터데이터집합들에 저장된 영상데이터샘플들(15)을 버스(26) 및 호스트브릿지(26b)를 사용하여 호스트 또는 시각CPU, 국소디스플레이(28)를 위한 디스플레이제어기 메모리(34), 뿐 아니라 주변데이터버스브릿지(26a)를 통해 연결되는 임의의 기기로 이동시키기 위하여 제공된다.
본 발명의 처리가속기(20)의 도 4의 메모리서브시스템(120)은 하나 이상의 전용 고속메모리제어기들(40)을 특징으로 한다. 메모리제어기들(40)은 그것들의 개개의 메모리뱅크들(18a, 18b)의 동작을 완전히 책임지는 것으로, 주소발생기 A, B 및 C(41a-41c)와 결합하여 영상 또는 다른 데이터샘플들(15)의 완전한 처리기워드들(17)을 클럭펄스 당 하나의 처리기워드(17)라는 일관된 비율들로 읽거나 쓰도록 하기 위한 모든 요구된 주소 및 제어신호들을 메모리제어기(120) 마다 발생한다.
여기에 설명된 처리가속기(20)는 본 발명을 한정하는 것이 아니지만 ASIC와 같은 집적회로 상에 구현된다. 본 발명의 바람직한 실시예는 메모리(18)가 산업적으로 현재 또는 미래에 통상적으로 이용가능한, SDRAM, SGRAM, 램버스(RAMBUS) 또는 다른 그러한 메모리장치들과 같은 버스트모드 동기식메모리로 구현되게끔 하였다.
본 발명의 한 특징은 도 5의 데이터정렬부(50)를 제공하는 것으로, 데이터정렬부는 주소발생기 A(41a) 및 주소발생기 C(41c)와 함께, 완전한 처리기워드(17)보다 적은 데이터의 선택된 데이터샘플들(15)(메모리워드에서의 어떤 임의의 화소들)만이 처리되어야 하는 경우, 처리가속기(20)가 완전한 처리기워드들(17)의 데이터를 처리하는 것을 허락하는 문제를 해결한다.
예시적인 정렬기회로는 도 5 및 도 6a-6d에 도시된다. 도 6a-6c는 주소발생기 A(41a), 정렬부(50) 및 주소발생기 C(41c)의 카운터회로들을 도시하며, 이 카운터회로들은 요구된 폭카운터프리셋 및 배열프레임화(SOR, EOR 및 EOF) 및 바이트유효(BYTE_ENABLE) 신호들을 발생한다. 도 6d는 실제 데이터정렬부의 한 실시예를 도시한다. 처리가속기(20)는 래스터순서(좌에서 우, 위에서 아래)로 화소들(처리기워드들(17) 각각은 다중데이터샘플들(15)을 담고 있음)을 주사한다. 사용자는 시작주소(BASE)(52) 및 행(WIDTH)(54) 당 화소들(데이터샘플들)의 갯수를 가장 가까운 화소에 명기한다.
본 발명의 현재의 예에서, 처리가속기(20)는 메모리워드 당 4개의 화소들을 처리하고, 그러므로 사용자에 의해 공급된 베이스값비트들 [24:0](69)으로부터, 비트들 [24:2]는 메모리워드주소(67)를 명기하고 비트들 [1:0]은 메모리워드경계로부터의 화소오프셋(52)을 명기한다. 비슷하게, 폭비트들 [1:0] (56)은 일단 폭비트들 [13:2] (54)에 의해 명기된 메모리(처리기)워드들의 갯수가 정렬부(50)에 의해 피연산자-A버스(86) 상에 나타난다면 얼마나 많은 부가비트들(데이터샘플들)이 처리되어야 하는 지를 명기한다. 높이매개변수(58)는 데이터샘플들의 얼마나 많은 "행들"이 가져와져야 될 지를 결정한다.
도 5의 정렬부(50) 및 주소발생기들 A 및 C(41a 및 41c)는 베이스주소의 폭 및 최소유효비트들 둘 다를 고려하여 메모리의 각각의 행으로부터 가져와야될 워드들의 전체 갯수를 결정한다. 정렬부(50) 및 주소발생기들 A 및 C(41a 및 41c)는 폭 카운터(60) 및 높이카운터(62)를 포함하여, 그것들이 영상처리부들(도 4의 42)에 의해 사용되는 행의 시작(71), 행의 끝(73), 그리고 프레임의 끝 신호들 발생하여 개개의 화소들 또는 화소배열들이 각각의 클럭펄스에 대해 유효한지를 결정하는 것을 가능하게 한다. 정렬부의 바이트인에이블출력들(64)은 행의 끝에서의 어느 화소들이 유효한지를 신호한다.
도 6a-6c는 주소발생기들(41a 및 41c)과 정렬부(50)의 카운트 및 바이트인에이블 기능들을 도시한다. 메모리로부터 가져와야만 하는 다중 화소워드들의 갯수는 보여진 바와 같이 계산된다: 워드 당 3개의 화소들에 대응하는 베이스(52) 및 폭(54) 설정들의 LSB들(이 예에서는 2)은 서로 더해지고 3비트결과의 2개의 MSB들(55)(다시 워드 당 4개의 화소들에 대응)은 폭설정(이 예에서는 12비트)의 남아있는 MSB들(54)에 더해진다. 그 결과값(57)은 주소발생기 A(41a) 및 정렬부(50)에서의 폭다운카운터들(60)을 위한 프리셋값을 결정한다. 이 카운터(60)는 신호원 영상의 각 행에 대해 이 프리셋값에서부터 아래의 영까지로 한 주기를 이룬다.
제1상태(카운터의 초기화 바로 이후 및 뒤따르는 각 행의 끝) 동안에, 행의 시작(SOR)신호(71)는 표명(assertion)되고 높이다운카운터(62)는 감소카운팅한다. 폭다운카운터(60)가 영에 도달하는 각각의 시간에, 행의 끝(EOR)신호(73)는 표명된다. 정렬부(50)의 바이트인에이블로직(77)은 EOR상태 동안 이외에는 4개의 바이트인에이블들(64) 모두를 표명한다. EOR상태 동안에는, 바이트인에이블신호패턴(64)은 보여진 것 같은 베이스주소(52)의 2개의 LSB들에 의해 결정된다. 바이트인에이블로직(77)은 다음과 같이 다른 버스폭들로 확장될 수 있다: 폭설정이 메모리워드 들의 완전한(exact) 배수(LSB들의 폭=0)인 경우, 모든 바이트인에이블들이 표명된다. 모든 다른 경우들에 대해서는, 바이트인에이블패턴은 LSB값만큼 우측으로 시프트된 1들과 우측을 채우는 영들로 구성된다.
위에서의 논의는 다중 화소들이 메모리에 좌측에서 우측으로 저장되는 "큰 끝(big-endian)" 화소순서를 가정하였음에 유의해야 한다. 이 기법은 작은 끝(little-endian) 화소 또는 데이터샘플 순서와 개개의 화소데이터가 메모리워드 경계를 교차하지 않는 다른 샘플/화소폭들로 쉽게 확장된다.
도 7은 (P1로 표시된 화소(데이터샘플)로 시작하는) 1개 화소의 베이스오프셋으로, 9개의 화소들(데이터샘플들)을 행 당 4개의 화소들로 처리하는 예이다. 도 1의 예의 경우, 사건(event)들의 순서는 다음과 같다:
1. 제1메모리클럭사이클에, P0 내지 P3으로 표시된 화소들(데이터샘플들)을 담고있는 제1메모리/처리기워드(17a)는 메모리(18)로부터 읽히어 정렬부(50)에 저장된다.
2. 제2메모리클럭사이클에, P4 내지 P7로 표시된 화소들(데이터샘플들)을 담고있는 제2메모리/처리기워드(17b)는 메모리(18)로부터 읽히고 정렬부(50)는 P1 내지 P4로 표시된 4개의 화소데이터샘플들을 담고있는 정렬된 처리기워드(70)를 출력하고, 비트들 [3:0] 및 행의 시작(SOR)신호(71)를 포함하는 바이트인에이블신호(64a)를 표명한다(도 6).
3. 제3클럭에, P8 내지 P11로 표시된 화소데이터샘플들을 담고있는 처리기워드(17c)는 메모리로부터 읽혀지고, 그런 이후에 정렬부(50)는 P5 내지 P8로 표시된 4개의 화소데이터샘플들을 담고있는 정렬된 처리기워드(74)를 출력하고, 도 6에 보여진 것 같은 관련된 의미로 함께 4비트의 바이트인에이블신호(64)를 구성하는 비트들 [3:0]을 포함하는 바이트인에이블신호(64b)를 표명한다.
4. 제4클럭에, 정렬부(50)는 P9로 표시된 화소데이터샘플을 담고있는 처리기워드(76)를 출력하고, 비트들 [3:0]을 포함하는 바이트인에이블신호(64C), 행끝(EOR)신호(73) 및 프레임끝(EOF)신호(75)를 표명한다.
제1유효출력이 나타나기 이전에 2번의 워드가져오기(word fetches)가 요구됨에 유념해야 할 것이다.
도 6d는 8비트화소들을 사용하는 4화소폭메모리버스를 위한 정렬부(50)의 데이터시프터부(80)의 한 구현 예이다. 4개의 레지스터들(82a-82d)은 32비트 데이터A입력버스(84)로부터의 이전의 4개의 유효화소데이터샘플들(예시의 목적으로 P0 내지 P3으로 표시됨)의 값들을 유지한다. 현재의 값은, 유효한 경우, 다음의 4개 화소들(P4..P7)을 나타낸다. 베이스주소설정의 2개의 LSB들(52)은 화소들이 피연산자 A 출력버스(86) 상에 표현되기 위해 어떻게 재정렬되어야 하는 지를 결정한다. 2개의 베이스최소유효비트들(52)은 각각의 멀티플렉서(88a-88d)에 대해 적절한 포트를 선택한다. 0P_A출력버스(86)에 재정렬된 처리기워드가 제공될 것이다.
파이프라인된 버스트모드 메모리들(18) 또는 유사한 메모리장치들은 바람직하게는 최대데이터대역폭을 달성하기 위해 사용된다. 이런 것들의 예들로는 동기식동적/그래픽 임의접근메모리(SDRAM/SGRAM) 및 램버스 DRAM(RDRAM)이 있다. 이러한 장치들은 주소 및 읽기명령을 받아들여 나중에 대응하는 데이터를 출력한다. 일반적으로, 현재 진행중인 동작들에 겹쳐지게 하는 새로운 명령들이 허용된다.
그러나, 이러한 유형들의 메모리들은 수 클럭사이클들의 읽기데이터 대기시간문제를 갖는다. 따라서 도 4의 데이터경로(121)의 일부를 구성하는 도 8의 FIFO-A(90)는 읽기명령들이 현재 계류중인 모든 부가적인 워드들을 수용하도록 하는 충분한 공간이 FIFO-A(90)에 남아있는 경우 주소발생기 A(41a)의 "준비중 A(in ready A)"신호(in rdy A)를 부정(negation)하도록 설계된다. 이 신호가 표명되는 동안, 주소발생기 A(41a)가 읽기명령들(주소스텝 A)을 메모리서브시스템 A(120a)에 발행하하는 것이 허용된다. 각각의 유효한 처리기/메모리워드(17)가 메모리서브시스템 A(120a)에 운반될 때, 이 워드는 FIFO-A(90)로 밀려간다. 정렬부(50)는 FIFO-A(90)로부터 유효한 처리기워드들을 취하여, 그것들을 정렬한 다음 피연산자 A 버스(86)로 운반한다.
DRAM으로부터의 데이터흐름은 간헐적으로는 불가피하게 느려지게 되어 메모리의 하나의 "페이지"로부터 다른 페이지로 교차한다. 동일 메모리"페이지" 상의 처리기/메모리워드들은 신속히 접근되나, 페이지경계교차는 메모리가 예비충전(precharge), 활성, 그런 다음의 페이지상의 모든 워드들을 내부캐시로 전송하는 것을 요구한다. 현재의 설계에서, 전형적인 SDRAM/SGRAM장치들의 2-뱅크아키텍처가 개발되었으나, 일부 처리기/메모리워드 중단(interruption)은 피할 수 없다(예, 페이지경계가 신속하고 반복적으로 교차되는 경우). 다른 중단들은 리프레시사이클들 또는 다른 대리자(agent)들(예, DMA제어기)에 의한 메모리접근들 동안에 일어난다.
2개 또는 3개의 피연산자연산들의 경우, 도 9-11에 보인 것처럼, 데이터는 입력포트들(A 및 B) 둘 다에 대해 유효해야 하고, 결과-C버스(92) 상에서 출력이 일어난다면, 데이터목적지장치는 그 출력을 받아들일 수 있어야 한다. 결과버퍼 또는 FIFO(도 10의 94 및 도 11의 95)를 각각의 출력 또는 결과포트 상에 제공함에 의해, 데이터의 정상(steady)흐름이 유지된다.
주소발생기(도 10의 41c) 또한 유효한 화소들/데이터샘플들 만이 메모리서브시스템(120c)에 다시 쓰여지게 되는 것을 가능하게 하는 바이트쓰기인에이블[3:0]신호(96)을 발생한다. 따라서, 주소발생기 C(41c)는 도 5에서 설명된 정렬기능에 본 발명의 일부로서 관여한다. 각각의 출력행의 시작은 워드경계에서 정렬되나, 그 행의 폭은 화소들/데이터샘플들의 임의 갯수가 될 것이다. 따라서, 각각의 행에 쓰여진 마지막 처리기/메모리워드는 대체된 화소들(데이터샘플들) 모두를 갖지 않을 것이다. 주소발생기 C(41c)는 따라서 SDRAM/SGRAM장치들이 개개의 바이트대체능력을 갖는 다는 사실을 활용한다.
FIFO C(94)는 두 번째로 중요한 기능을 수행한다. 일부 동작들은 각각의 입력데이터집합에 대해 출력데이터의 하나의 워드 보다 많은 워드들을 생성할 것이다(예, 특징추출). 다음으로, 일부 처리부들(42)은 각각의 클럭펄스에 대해 데이터의 흐름을 중지시키는 능력을 갖지 않는다. 따라서, FIFO C(94)는 또한, 입력데이터의 흐름이 중지된 이후의 모든 데이터를 능동적인 처리부(42)로부터 완전히 배출시키게 하는 충분한 공간이 FIFO에 남아있는 경우 그것의 "준비중"신호를 부정하도록 설계된다.
현재의 구현에서, 메모리서브시스템 B(120b)는 항상 워드정렬되므로 정렬부를 갖지 않는다. 그러나, 이것이, 이 기술의 숙련자가 그러한 정렬기를 이 메모리시스템에도 쉽사리 추가할 수 있으므로, 본 발명을 한정하는 것은 아니다.
경제성, 효율성 및 유연성을 높이기 위해, 메모리들을 공유하는 것이 필요하다. 도 11은 메모리서브시스템 1(120b)이 공유될 수 있도록 결과버퍼(95) 및 주소멀티플렉서(100)를 추가한 것을 보여준다. 처리가 중지되어야 하고 결과버퍼(94)는 메모리서브시스템 1(120b)에 주기적으로 복사되어야 하기 때문에 3개의 피연산자계산들은 절반의 속력으로 계속되어야 한다.
충분한 유연성을 위해, 메모리서브시스템들(120a,120b) 에서의 2개의 메모리들(0, 1)은 주어진 동작을 위해 신호원 또는 목적지 데이터를 담을 것이다. 이것은, 하나의 동작 이후에 예를 들면 다음 동작을 위한 신호원이 반대쪽 메모리에 있어야 할 것이기 때문에, 중요하다. 데이터버퍼(도 12의 120)는 동작시의 출력측의 입력에 대해 어느 것인가는 사용되어야 할 것이다.
도 12에서, 2개 또는 3개의 피연산자기능들을 위한 신호원들 둘 다는 메모리서브시스템(120a, 120b)에서의 한 메모리에 있어야 할 것이다. 그런 경우라면, 데이터버퍼(102)는 먼저 하나의 피연산자를 위한 데이터로 채워지고 그 다음에 제2피연산자를 위한 데이터가 동일 메모리로부터 가져와질 수 있다. 출력이 이 경우에 요구된다면, 그것은 다른 메모리로 가야만 한다. 처리는 절반의 속력으로 진행된다. 출력데이터가 곧바로 메모리로 가므로, FIFO C (94)는 데이터흐름의 부드러운 출력에서 중요하다.
비슷하게, 동작이 입력피연산자와 동일한 메모리로 가야만 하는 출력을 생성하는 경우, 데이터버퍼(102)는 출력데이터를 포획하고 이 데이터는 FIFO C(94)를 통해 목적지메모리에 덤프(dump)된다. 이 경우에 3개의 피연산자연산을 수행하기 위해, 입력피연산자들 중의 하나는 반대쪽 메모리에 있어야 한다.
데이터샘플들의 실제 처리는 그것들의 각각이 특수한 처리작업을 수행하는 복수개의 워드폭처리부들(도 1의 42)에 의해 수행된다.
도 13은 정규화된 상관처리부(42b)의 블록도이다. 이 처리부는 영상데이터샘플들(15)의 처리기워드(17)를 정렬부(50)로부터 피연산자 A 버스(86)를 통해 받아들이고, 매 처리기/메모리클럭사이클마다 템플릿(template) 데이터의 워드를 피연산자 B 버스(87)로부터 받아들인다. 각각의 클럭사이클 동안에, 2개의 워드들에서의 모든 대응하는 화소들(데이터샘플들)은 4개의 계산셀들(101a-101d)에서 서로 곱해지고, 영상합(104), 제곱된 영상합(106) 및 탬플릿 곱해진 영상합(105)을 담고있는 내부합산레지스터들(104-106)은 모두 갱신된다.
도 14a-14k 및 도 15는 어떻게 워드폭이웃형성부(42a)가 처리되어진 워드에서의 각각의 화소를 둘러싸는 4개의 완전한 3x3 이웃들을 동시에 형성하는 지를 보여준다. 이러한 완전한 이웃들은 처리부들을 분리하도록 평행하게 통과되고, 처리부들의 결과들은 나가는 워드들을 형성하도록 처리 이후에 다시 모아진다. 이웃처리로직은 경계조건의 궤도를 유지하고, 관심있는 지역의 모서리들에 존재하는 이웃들에 대해 누락화소들 대신 배경데이터를 처리부들에 공급한다.
제1행처리: 제1클럭사이클 동안에, 화소들 00/01/02/03이 도착하고 "우측"에 저장된다(도 14b). 제2클럭사이클 동안에, 화소들 04/05/06/07이 도착하고 우측에 저장되고, 00/01/02/03은 "중앙"으로 전송된다(도14c). 제3클럭사이클 동안, 화소들 08/09/010/011이 도착하고, 화소들 04/05/06/07은 중앙으로 전송되고, 화소들 00/01/02/03은 좌측으로 전송된다(도 14d). 제1행이 전송되어지는 계산된 출력은 없으나, 이러한 워드들은 제1워드폭행FIFO에 공급된다.
제2행처리: 제1클럭사이클 동안에, 화소들 10/11/12/13이 제1행FIFO로부터 나오는 00/01/02/03과 함께 도착하고, 이러한 워드들 둘 다는 "우측"에 저장된다(도 14e). 제2클럭사이클 동안에, 화소들 14/15/16/17은 제1행FIFO로부터의 화소들 04/05/06/07과 함께 도착한다. 이러한 새로운 워드들은 "우측"에 저장되나, 현재 "우측"에 있는 처리기워드들은 "중앙"으로 이동한다(도 14f). 이것은 이웃배열에서 처리될 것인 제1완전이웃들을 형성한다. 처리부는 자동으로 "xx" 값들을 위해 가장자리값을 채운다. 제3클럭사이클 동안에, 화소들 18/19/110/111은 제1행FIFO로부터의 08/09/010/011과 함께 도착한다. 이러한 새로운 워드들은 "우측"에 저장되나, 현재 "우측"에 있는 워드들은 "중앙"으로 이동한다(도 14g).
제3행처리: 제1클럭사이클 동안에, 화소들 20/21/22/23은 제1행FIFO로부터의 화소들 10/11/12/13과 함께 도착하고 화소들 00/01/02/03은 제2행FIFO로부터 도착한다(도 14h). 이 클럭사이클 동안에 처리부(42a)가 이전 행의 가장 우측의 이웃그룹들을 처리함에 유의해야 한다. 제2클럭사이클 동안에, 화소들 24/25/26/27은 제1행FIFO로부터의 화소들 14/15/16/17 및 제2행FIFO로부터의 화소들 04/05/06/07과 함께 도착한다(도 14j). 제3클럭사이클 동안, 화소들 28/29/210/211은 제1행FIFO로 부터의 화소들 18/19/110/111 및 제2행FIFO로부터의 화소들 08/09/010/011과 함께 도착한다(도 14k).
이는 4개의 3화소 x 3화소 이웃들의 제1완전유효그룹을 형성한다. 이 클럭사이클 동안에 처리된 4개의 3x3 이웃들은 도 14k에 보여진다. 처리는 마지막 행까지 계속되어, 행FIFO들의 배출하는 출력인 값들을 사용하여 계산된다. 마지막 출력행이 처리되어지는 동안에 들어오는 데이터는 없다.
도 15는 워드폭이웃형성부(42a)의 유일하게 가능한 것은 아니나 바람직한 구현을 보여준다. 데이터는, 현재의 예의 목적을 위해, 단일 처리기/메모리워드의 4개의 화소들(데이터샘플들)을 운반하는 피연산자 A 버스(86)로부터 들어온다. 이 데이터는 이웃레지스터배열(87) 및 행 1 시프터(89)로 간다. 처리기워드(17)가 이웃레지스터배열(87)에 들어가는 경우, 처리기워드(17)는 P20RIGHT, P21RIGHT, P22RIGHT, 및 P23RIGHT로 표시된 4개의 화소레지스터들에 저장된다. 유효한 처리기워드가 도착하는 각각의 시간에, 데이터 "스텝들"은 "우측"레지스터들의 화소들(데이터샘플들)의 모두를 "중앙"레지스터들의 대응하는 위치로 이동시킨 다음, 최종적으로는 "좌측"레지스터들로 이동시키게 진행된다. "좌측"에 대해 오른쪽의 화소 대부분이 이웃을 완성하는데 필요하다. "우측"의 모든 화소들은 그러나, "중앙"을 복사하고 채우는데 필요하다. 처리기워드들(17)의 제1행이 도착한 이후에, 행 1 시프터(89)는 P10RIGHT, P11RIGHT, P12RIGHT 및 P13RIGHT로 표시된 제2행레지스터들에 데이터를 제공하는 것을 시작하고, 다른 완전한 행의 데이터가 도착한 이후에, 행 2 시프터(91)는 P03RIGHT, P02RIGHT, P01RIGHT 및 P00RIGHT로 표시된 레지스터들로 시작하는 행 3 레지스터들에 데이터를 제공한다.
유효한 데이터가 P10CENTER, P11CENTER, P12CENTER 및 P13CENTER로 표시된 중앙워드에 들어가는 경우, 워드폭이웃처리는 이웃값들의 집합들을 동시에 수신하는 4개의 병렬 이웃처립들(42a1내지 42a4)로 시작한다. 이웃값들은 도 15의 바닥에 보여진 것 같은 이웃레지스터배열(87)로부터 추출된다.
도 16은 기계시각시스템에 유용한 워드폭분할처리부(42d)의 제1단(stage)을 보여준다. 워드폭분할처리부(42d)는 화소영상데이터의 스트림(17)에서 전이들이 검출되는 경우 결과들을 발생하기만 한다. 각각의 화소는 문턱기준에 따라 전면(foreground, FG) 또는 후면(background, BG)에 속하도록 결정된다. 전이는 전면의 화소가 후면의 화소에 인접하는 경우의 데이터스트림에서의 임의의 지점으로 정의된다.
영상데이터의 "행" 처리의 개시 시에, 세그먼트코드(120)는 영으로 초기화된다. 전이가 검출되는 각각의 시간에, 세그먼트코드는 가산기(122)를 사용하여 증가되고, 전이에 관한 정보를 담고있는 결과워드가 발생된다. 하나의 처리기워드(17)에서 한번에 4개의 화소들을 처리하는 동안 이러한 기능성을 구현하기 위하여, 4개의 이웃비교기들(124a-124d)은 4개의 들어오는 화소들(126a-126d)의 각각이 전면 또는 후면의 어느 것에 있는 지를 동시에 판단한다. 4개의 1비트비교기들(128a- 128d)은 처리워드에서의 4개의 인접한 화소들의 각각 간에 또는 현재 워드의 최좌측 화소 및 이전 워드의 최우측 화소 간에 전이가 있는 지를 동시에 판단한다.
실제 영상데이터로는 조금도 전이가 없거나 또는 단일한 전이가 있을 수 있는 가능성이 더 큼에도 불구하고, 4개까지의 전이들이 동시에 일어날 것이다. 이클럭사이클 동안에 처리하려는 총 전이수는 가산기(130)에 의해 계산되어, 현재 워드가 행의 마지막 워드일 가능성을 통합한다(EOR신호(130)).
워드폭분할처리부(42d)는 항상 행의 끝(EOR 130)을 위해 특수한 전이레코드를 발생하고, 그래서 발생되어야 하는 전이레코드들의 최대 갯수는 행의 끝에서 5개만큼은 되어야 할 것이다. 전이레코드는 단일의 32비트 워드(134)로 부호화되고, 그러므로 이 처리부(42d)는 실제로는 입력인 단일 워드에 대해 결과로서 5개까지의 처리기워드들(17)을 발생한다. 도 16에 보여진 이 처리부(42d) 및 동작순서조정기(도 18의 210) 간의 인터페이스는 워드폭분할처리부(42d)가 클럭펄스 당 한 워드의 결과를 발생하도록 하고, 그래서 하나 보다 많은 결과워드들을 발생하는 것이 필요한 경우, 들어오는 데이터는 정지(stall)되어야 하나 그 결과들은 발생된다. 이것은 총 전이수(136)를 사용하여 총 전이수가 하나 보다 크게 될 때에 들어오는 데이터를 즉시 차단하는 신호를 제어함으로써 구현된다.
세그먼트레코드결과들이 발생되면, 전이들의 갯수는 카운트 다운되고, 들어오는 데이터(86)는 마지막 결과가 발생되는 때에 재계하는 것이 가능하게 된다. 이 아키텍처는 워드 또는 그 미만 당 하나의 전이가 있게 되는 한 처리가속기(20)가 충분한 속력으로 동작하는 것을 가능하게 한다.
도 17은 본 발명의 순서조정기(200)가 어떻게 하나의 메모리뱅크로부터 단순한 명령들을 읽고 결과들을 다른 메모리뱅크들에 쓰는 지를 도시한다. 4개의 명령 들 WRITE, READ, GO 및 STOP만이 공급된다. 명령을 위한 OP-코드는 두 비트들로 부호화되고, 남아있는 비트들은 READ 또는 WRITE 명령들에 의해 명기된 레지스터를 위한 레지스터주소를 담고 있다. 남아있는 비트들은 GO 및 STOP 명령들을 위해 사용되지 않는다. WRITE명령은 명령스트림에서 발견된 다음의 워드를 WRITE명령의 레지스터주소부분에 의해 명기된 레지스터에 쓴다. READ명령은 READ명령의 레지스터 주소부분에 명기된 레지스터로부터 값을 읽고 이 레지스터의 값을 나가는 데이터스트림으로 출력한다. 순서조정기엔진(200)에 의해 사용되는 "프로그램"은 명령워드들 및 WRITE피연산자들의 순차적인 블록이고, "출력"은 레지스터값들의 순차적인 블록이다. 순서조정기엔진(200)은 처리가속기가 의미있는 시간주기들에대해 CPU 주목(attention) 없이 동작하는 것을 허용한다.
순서조정기엔진(200)은 전용 메모리들(18a, 18b)에서 동작하여, 처리가속기(20)가 CPU(16)의 주목 없이 독단적으로 동작들을 수행하는 것을 가능하게 한다.
순서조정기엔진(도 18의 200)은 주소 및 데이터 선택기들을 제어하여, 메모리서브시스템 0(120a)의 주소가 명령포인터(202)에 의해 제공되게 하고 메모리서브시스템 1(120b)의 주소가 쓰기데이터포인터(204)에 의해 제공되게 한다. 비슷하게, 메모리서브시스템 0(120a)으로부터의 데이터는 FIFO A(90a)로 가고 FIFO C(94)로부터의 데이터는 메모리서브시스템 1(120b)로 간다. 순서조정기(200)는 레지스터주소들을 발생하고 레지스터데이터를 읽고 쓴다.
메모리워드들은 명령포인터(202)에 의해 공급되는 순차적인 주소들로부터 가져와진다. 이러한 워드들은 (위에서) 설명된 바와 같은 명령들의 스트림을 담고 있다. 명령들은 명령순서조정기(208)의 제어하에서 FIFO A(90a)로 가져가 지고 명령디코더(206)에 의해 인터럽트된다. WRITE명령에 대해, 선택된 레지스터로부터의 데이터는 쓰기데이터포인터(204)에 의해 주소지정된 메모리 1(120b)에 FIFO C(94)를 통해 쓰여진다.
GO명령에 대해, 명령순서조정기(208)는 FIFO C(94)에 남아있는 임의의 데이터가 메모리 1(120b)에 쓰여지게 될 때까지 기다리고, FIFO A(90a)는 클리어되어, 임의의 프리패치된 명령들이 지워진다. 끝으로, 처리가속기동작순서조정기(210)가 동작을 시작하게 된다. 이 동작 동안에, 동작순서조정기(210)는 메모리들(120) 및 처리부들(42) 간의 데이터흐름을 FIFO A, B 및 C(90a, 90b 및 90c)를 통해 제어한다. 명령순서조정기(208)는 동작순서를 기다려서, 다음 명령의 주소를 내부프로그램카운터에 저장하는 동작을 완료한다. 그 동작이 완료되고 FIFO C(94)에 남아있는 임의의 결과데이터가 쓰여지는 경우, 명령포인터(202)는 저장된 다음 명령주소로 다시 초기화되며, FIFO A(90a)는 클리어되고, 순서조정기명령들은 FIFO A(90a)에 다시 패치된다. 유효한 데이터(다음 명령)가 FIFO A(90a)에 존재하는 경우, 순서조정기(200)는 동작을 재계한다.
유사한 동작이 순서조정기(200)가 CPU제어 하에서 시작되는 때에 행해진다. 이 경우에, 프로그램카운터 및 명령포인터(202)는 둘 다 메모리 0(120a)의 제1명령의 주소로 초기화되며, 모든 FIFO들은 클리어되고, 순서조정기는 FIFO A에 출현하는 제1명령을 기다린다.
STOP명령에 대해, 명령순서조정기(208)는 동작들이 정지(halt)되기 이전에 FIFO C(94)에 남아있는 임의의 데이터가 메모리 1(120b)에 쓰여지기까지 기다린다.
본 발명을 구현하는 시스템의 최대 효율을 위해, 데이터샘플들의 별개의 사본들(예, 영상)이 전용처리가속기(20)메모리 뿐만 아니라 시각CPU, 호스트, 또는 디스플레이제어기메모리에 존재하게 되는 것이 종종 필요하다. 한 예는 영상을 처리가속기에 대해 이용가능하게 만들면서도 포획된 영상을 동시에 디스플레이하는 것이다. 다른 예는 영상을 시각시스템 뿐만 아니라 처리가속기에 대해 이용가능하게 만들어 두 개의 다른 시각동작들이 동시발생적으로 수행되게 하는 것이다. 세 번째 관련된 예로서는, 시각시스템CPU가 포획된 영상에 대한 그래픽작업을 하게 하면서 처리가속기가 그것을 처리하게 하는 것이다. 다중의 영상 사본들을 만드는 것은 주변버스에 대한 대역폭요구를 두 배가 되게 하고 대기시간을 증가시킨다. 본 발명은 이러한 문제를 염탐(snooping)기법을 사용하여 해결한다.
본 발명의 염탐 특징의 단순화된 버전은 도 19에 보여진다(공유된 CPU메모리(22)만 보여짐). 디지타이저/DMA(12)는, 현재의 예에서는 공유된 시각CPU메모리(22), 호스트CPU메모리(미도시), 또는 디스플레이메모리(미도시)에 존재할 것인 주표적주소에 영상데이터(13)를 쓰도록 설정된다. 디지타이저(12) 및 시각가속기(20) 간의 염탐핸드세이크신호들(220, 222)은 디지타이저/DMA(12) 활동을 제어한다. 처리가속기(20)는, 알려진 량의 데이터(13)를 받아들일 수 있는 경우 READY 신호(222)를 표명한다. 그때 디지타이저(12)는 DMA동작을 개시하여, 한정된 갯수의 워드들을 주변버스(26)를 통해 주표적에 보낸다. 디지타이저(12)가 주변버스 마스터가 되는 경우, 디지타이저는 염탐(SNOOP)신호(220)를 표명한다. 처리가속기(20)는 주변버스(26)를 가로지르는 각각의 처리기워드(17)를 염탐(SNOOP)신호 및 부가적인 주변버스데이터전송제어신호들을 사용하여 포획한다. 시각가속기(20)는 염탐된 데이터(17)를 도 20의 내부DMA입력주소발생기(234)를 사용하여 영상메모리(18)에 위치시키고, 주변버스표적주소신호들을 무시한다. READY신호(222)는 데이터 포획이 개시되자마자 부정되고 데이터가 영상메모리(18)에 저장되어질 때까지 부정된 상태로 유지된다.
도 20에 도시된 회로는 주변버스데이터를 처리가속기의 레지스터들 및 메모리들과 교환하기 위한 주소 및 데이터 경로들을 추가한 것이다. 주변버스인터페이스(230)는 표준 기술을 사용하고 CPU(16) 또는 디지타이저(12)와 처리가속기 간의 전송들을 완충하기 위한 부가적인 FIFO들을 포함한다. 주변버스인터페이스(230)는 버스트모드로 동작하기 때문에, 데이터를 효율적으로 순차적인 메모리위치들에 전송할 수 있다. 주변버스표적(슬레이브)과 마찬가지로 주변버스인터페이스는 주소를 공급하고 처리가속기(20)와 데이터를 교환한다. 공급되는 직접표적주소(232)는 영상메모리(18) 및 레지스터위치들에 직접 주소지정하는데 사용될 것이며, 또는 메모리쓰기사이클들에 대한 주변버스에 대해서는, 목적지주소가 다른 대안으로서 DMA입력주소발생기(234)에 의해 공급되어질 것이다. 염탐모드(위에서 설명됨)에서, 다른 주변버스기기를 표적으로 하는 데이터는 특수한 염탐FIFO에 포획되어 입력DMA주소발생기(234)의 제어하에서 영상메모리(18)에 쓰여진다.
주변버스인터페이스(230) 또한 주변버스마스터회로를 포함한다. 이 회로는 출력DMA신호원주소발생기(236)에 의해 주소지정된 메모리(28)로부터 데이터를 읽어서 주변버스인터페이스(230) 내의 주변버스인터페이스마스터데이터FIFO로 준다. 주변버스목적지주소들(CPU, 호스트, 또는 디스플레이 메모리의)은 출력DMA목적지주소발생기(240)에 의해 공급된다.
이 기술의 통상의 기술자에 의한 변형들 및 대체들은 아래의 청구항들에 의한 것을 제외하면 한정되는 것이 아닌 본 발명의 범위내에서 고려될 수 있다.
1) Haralick, Robert M. and Shapiro, Linda G. "Computer and Robot Vision, Colume II", Addison-Wesley, 1993
Gonzalez, Rafael C. and Woods Richard E., "Digital Image Processing", Addison-Wesley, 1992
Ballard, Dana H. and Brown, Christopher M., Computer vision", Prentice-Hall, 1982

Claims (15)

  1. 복수개의 논리적으로 인접한 데이터샘플들을 포함하는 적어도 하나의 순차적인 데이터스트림을 수신하고, 기설정된 갯수의 상기 복수개의 논리적으로 인접한 데이터샘플들의 디지털표현을 처리기워드로 조직하는 데이터조직화기(data organizer);
    복수개의 상기 처리기워드들을 저장하기 위한 적어도 하나의 데이터샘플 메모리;
    상기 메모리에 응답하여, 적어도 제1 및 제2 상기 처리기워드들을 수신하며, 상기 제1처리기워드로부터 적어도 하나의 데이터샘플 및 상기 제2처리기워드로부터 적어도 하나의 데이터샘플을 선택하고, 상기 기설정된 갯수의 상기 복수개의 논리적으로 인접한 데이터샘플들을 포함하는 적어도 하나의 정렬된 처리기워드를 제공하는, 상기 정렬된 처리기워드는 적어도, 상기 제1처리기워드로부터의 상기 선택된 적어도 하나의 데이터샘플 및 상기 제2처리기워드로부터의 상기 선택된 적어도 하나의 데이터샘플을 구비한, 데이터워드정렬기; 및
    상기 데이터워드정렬기에 응답하여, 상기 기설정된 갯수의 상기 논리적으로 인접한 데이터샘플들을 포함하는 적어도 하나의 정렬된 처리기워드를 수신하며, 상기 적어도 하나의 정렬된 처리기워드로서 수신된 상기 기설정된 갯수의 상기 논리적으로 인접한 데이터샘플들을 동시에 처리하고, 상기 적어도 하나의 정렬된 처리기워드로서 수신된 상기 동시에 처리된 기설정된 갯수의 논리적으로 인접한 데이터 샘플들에 근거하여 적어도 하나의 데이터처리기결과를 발생하는 데이터처리기를 포함하는 데이터처리시스템.
  2. 제1항에 있어서, 상기 논리적으로 인접한 데이터샘플들은 영상데이터를 포함하며, 상기 복수개의 논리적으로 인접한 영상데이터샘플의 각각은 처리하려는 영상으로부터의 영상데이터의 한 화소 표현하고, 논리적으로 인접한 순차적인 영상데이터샘플은 처리하려는 상기 영상으로부터의 영상데이터의 인접하는 화소들을 표현하고, 상기 데이터메모리는 적어도 2개의 인접하는 화소들의 영상데이터를 함께 하나의 상기 처리기워드로서 저장하는 데이터처리시스템.
  3. 제1항에 있어서, 상기 데이터처리기는 적어도 하나의 데이터처리부를 더 구비하는 데이터처리시스템.
  4. 제3항에 있어서, 상기 적어도 하나의 데이터처리부는 이웃처리부, 산술처리부, 분할(segmentation)처리부, 형태처리부 및 상관처리부로 구성된 그룹으로부터 선택되는 데이터처리시스템.
  5. 제2항에 있어서, 처리기사이클마다 적어도 하나의 처리기워드를, 상기 데이터메모리는 전송하고 상기 데이터워드처리기는 수신하는 데이터처리시스템.
  6. 제1항에 있어서, 상기 적어도 하나의 데이터메모리에 연결되어, 상기 적어도 제1 및 제2처리기워드들을 제공하도록 상기 메모리를 주소지정(addressing)하는 메모리주소발생기를 더 구비하는 데이터처리시스템.
  7. 제2항에 있어서, 영상데이터의 적어도 두 화소들의 주위에 적어도 2개의 기설정된 사이즈의 이웃들을 형성하는 이웃영상처리부를 더 구비하는 데이터처리시스템.
  8. 제2항에 있어서, 상기 처리기워드로서 함께 저장된 상기 적어도 2개의 인접하는 영상데이터의 화소들의 각각의 주위에 적어도 2개의 기설정된 사이즈의 이웃들을 형성하는 이웃영상처리부를 더 구비하는 데이터처리시스템.
  9. 제1항에 있어서, 상기 데이터처리기는 상기 데이터조직화기로부터의 데이터를 주(primary)데이터샘플표적기기로 이송하는 데이터버스에 연결되고,
    상기 데이터처리기는 상기 데이터버스를 통해 상기 주데이터샘플표적기기에 전송된 데이터샘플들의 동시 포획을 제어하고 상기 데이터샘플들의 사본을 상기 적어도 하나의 데이터샘플메모리에 저장하는 데이터포획기기를 더 구비하는 데이터처리시스템.
  10. 제1항에 있어서, 상기 적어도 하나의 데이터샘플메모리는 제1 및 제2데이터 샘플메모리들을 구비하고,
    데이터처리시스템은 상기 적어도 하나의 데이터샘플메모리로부터의 명령들 및 처리기레지스터값들을 읽고 적어도 하나의 처리기레지스터값들을 적어도 상기 적어도 하나의 데이터샘플메모리에 쓰는 적어도 하나의 처리순서조정기를 더 구비하는 데이터처리시스템.
  11. 제1항에 있어서, 상기 적어도 하나의 데이터샘플메모리에 처리기워드들로서 순차적인 데이터샘플들이 제공되는 동안에 데이터샘플메모리제어명령들을 실행하는 적어도 하나의 데이터샘플메모리제어기를 더 구비하는 데이터처리시스템.
  12. 영상데이터를 위한 데이터처리시스템에 있어서,
    복수개의 인접한 영상데이터샘플들의 각각이 처리하려는 영상으로부터의 영상데이터의 하나의 화소를 나타내는 복수개의 인접한 영상데이터샘플들을 포함하는 적어도 하나의 순차적인 데이터스트림을 수신하고, 상기 복수개의 인접한 영상데이터샘플들중의 적어도 2개의 디지털표현을 처리기워드들로 조직하는 데이터조직화기;
    복수개의 상기 처리기워드들을 저장하기 위한 적어도 하나의 데이터샘플메모리;
    상기 메모리에 응답하여, 적어도 제1 및 제2 상기 처리기워드들을 수신하며, 상기 제1처리기워드로부터 적어도 하나의 영상데이터샘플 및 상기 제2처리기워드로 부터 적어도 하나의 영상데이터샘플을 선택하고, 상기 기설정된 갯수의 상기 복수개의 인접한 영상데이터샘플들을 포함하는 적어도 하나의 정렬된 처리기워드를 제공하는,
    상기 정렬된 처리기워드는 적어도, 상기 제1처리기워드로부터의 상기 선택된 적어도 하나의 영상데이터샘플 및 상기 제2처리기워드로부터의 상기 선택된 적어도 하나의 영상데이터샘플을 구비한, 데이터워드정렬기; 및
    상기 데이터워드정렬기에 응답하여, 상기 기설정된 갯수의 인접한 영상데이터샘플들을 포함하는 적어도 하나의 정렬된 처리기워드를 수신하며, 상기 적어도 하나의 정렬된 처리기워드로서 수신된 상기 기설정된 갯수의 인접한 영상데이터샘플들을 동시에 처리하고,
    상기 적어도 하나의 정렬된 처리기워드로서 수신된 상기 동시에 처리된 기설정된 갯수의 인접한 영상데이터샘플들에 근거하여 적어도 하나의 데이터처리기결과를 발생하는 데이터처리기를 포함하는 데이터처리시스템.
  13. 제12항에 있어서, 영상데이터의 적어도 두 화소들의 주위에 적어도 2개의 기설정된 사이즈의 이웃들을 형성하는 이웃영상처리부를 더 구비하는 데이터처리시스템.
  14. 제12항에 있어서, 상기 정렬된 처리기워드들의 주위에 적어도 2개의 기설정된 사이즈의 이웃들을 형성하는 이웃영상처리부를 더 구비하는 데이터처리시스템.
  15. 영상데이터를 위한 데이터처리시스템에 있어서,
    복수개의 인접한 영상데이터샘플들의 각각이 처리하려는 영상으로부터의 한 화소의 영상데이터를 표현하는 복수개의 인접한 영상데이터샘플들을 포함하는 적어도 하나의 순차적인 데이터스트림을 수신하고, 상기 복수개의 인접한 영상데이터샘플들 중의 적어도 2개의 디지털표현을 처리기워드들로 조직하는 데이터조직화기;
    복수개의 상기 처리기워드들을 저장하는 적어도 하나의 데이터샘플메모리; 및
    상기 적어도 하나의 데이터샘플메모리에 응답하여, 영상데이터샘플들의 상기 인접한 화소들중의 적어도 2개를 포함하는 상기 저장된 처리기워드들 중의 적어도 하나를 수신하고, 상기 처리기워드로서 함께 저장된 영상데이터의 상기 적어도 2개의 인접한 화소들의 각각의 주위에 기설정된 사이즈의 화소영상데이터의 적어도 2개의 이웃들을 형성하는 이웃영상처리부를 포함하는 데이터처리시스템.
KR1020007004135A 1997-10-17 1998-05-08 기계시각시스템에서의 영상데이터와 같은 논리적으로인접한 데이터샘플들을 위한 데이터처리시스템 KR20010031192A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/953,772 US6208772B1 (en) 1997-10-17 1997-10-17 Data processing system for logically adjacent data samples such as image data in a machine vision system
US8/953,772 1997-10-17
PCT/US1998/009445 WO1999021126A1 (en) 1997-10-17 1998-05-08 Data processing system for logically adjacent data samples such as image data in a machine vision system

Publications (1)

Publication Number Publication Date
KR20010031192A true KR20010031192A (ko) 2001-04-16

Family

ID=25494513

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007004135A KR20010031192A (ko) 1997-10-17 1998-05-08 기계시각시스템에서의 영상데이터와 같은 논리적으로인접한 데이터샘플들을 위한 데이터처리시스템

Country Status (7)

Country Link
US (4) US6208772B1 (ko)
EP (1) EP1031108A4 (ko)
JP (1) JP2003517649A (ko)
KR (1) KR20010031192A (ko)
AU (1) AU747283B2 (ko)
CA (1) CA2308328A1 (ko)
WO (1) WO1999021126A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100698549B1 (ko) * 2001-06-04 2007-03-21 에스케이케미칼주식회사 오·폐수처리용 미생물 배양기

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6459439B1 (en) * 1998-03-09 2002-10-01 Macromedia, Inc. Reshaping of paths without respect to control points
US6160423A (en) * 1998-03-16 2000-12-12 Jazio, Inc. High speed source synchronous signaling for interfacing VLSI CMOS circuits to transmission lines
JP2001243460A (ja) * 2000-02-29 2001-09-07 Fuji Photo Film Co Ltd 画像処理装置および画像処理プログラム記憶媒体
AUPQ668500A0 (en) * 2000-04-04 2000-05-04 Canon Kabushiki Kaisha Accessing items of information
ATE329330T1 (de) * 2000-12-18 2006-06-15 Lightspace Technologies Inc Rasterung von dreidimensionalen bildern
US6965606B2 (en) * 2001-01-26 2005-11-15 Exar Corporation Method and apparatus for byte rotation
US6620246B2 (en) 2001-06-14 2003-09-16 Nylok Corporation Process controller for coating fasteners
JP3703754B2 (ja) * 2001-10-23 2005-10-05 富士通株式会社 描画装置および情報処理装置
US20030137590A1 (en) * 2002-01-18 2003-07-24 Barnes Danny S. Machine vision system with auxiliary video input
US6871409B2 (en) 2002-12-18 2005-03-29 Snap-On Incorporated Gradient calculating camera board
US20040243767A1 (en) * 2003-06-02 2004-12-02 Cierniak Michal J. Method and apparatus for prefetching based upon type identifier tags
JP2006157580A (ja) * 2004-11-30 2006-06-15 Ricoh Co Ltd 画像処理装置、画像形成装置、画像処理方法、コンピュータプログラム及び記録媒体
US7855783B2 (en) * 2007-09-18 2010-12-21 Snap-On Incorporated Integrated circuit image sensor for wheel alignment systems
US9390661B2 (en) * 2009-09-15 2016-07-12 E Ink California, Llc Display controller system
US8130229B2 (en) * 2009-11-17 2012-03-06 Analog Devices, Inc. Methods and apparatus for image processing at pixel rate
US20130027416A1 (en) * 2011-07-25 2013-01-31 Karthikeyan Vaithianathan Gather method and apparatus for media processing accelerators
US8488882B1 (en) * 2011-08-10 2013-07-16 Google Inc. Non-linear transformation of images in web browsers
JP6385077B2 (ja) * 2014-03-05 2018-09-05 ルネサスエレクトロニクス株式会社 半導体装置
US10262624B2 (en) * 2014-12-29 2019-04-16 Synaptics Incorporated Separating a compressed stream into multiple streams
CN106126453A (zh) * 2016-06-13 2016-11-16 浪潮电子信息产业股份有限公司 一种含外带接口的cpu的实现方法
US11081792B2 (en) 2018-03-07 2021-08-03 Anokiwave, Inc. Phased array with low-latency control interface
CN109191374B (zh) * 2018-10-10 2020-05-08 京东方科技集团股份有限公司 一种畸变参数测量方法、装置及系统
US11205858B1 (en) 2018-10-16 2021-12-21 Anokiwave, Inc. Element-level self-calculation of phased array vectors using direct calculation
US10985819B1 (en) * 2018-10-16 2021-04-20 Anokiwave, Inc. Element-level self-calculation of phased array vectors using interpolation
US11096012B2 (en) * 2019-05-29 2021-08-17 Texas Instruments Incorporated Integrated Wi-Fi location
TWI830363B (zh) * 2022-05-19 2024-01-21 鈺立微電子股份有限公司 用於提供三維資訊的感測裝置

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4484346A (en) * 1980-08-15 1984-11-20 Sternberg Stanley R Neighborhood transformation logic circuitry for an image analyzer system
US4554593A (en) * 1981-01-02 1985-11-19 International Business Machines Corporation Universal thresholder/discriminator
US4577344A (en) 1983-01-17 1986-03-18 Automatix Incorporated Vision system
JPH0778825B2 (ja) * 1983-02-09 1995-08-23 株式会社日立製作所 画像処理プロセツサ
US4541114A (en) * 1983-05-05 1985-09-10 Research Environmental/Institute of Michigan Routing techniques using serial neighborhood image analyzing system
US4742552A (en) * 1983-09-27 1988-05-03 The Boeing Company Vector image processing system
US4581762A (en) 1984-01-19 1986-04-08 Itran Corporation Vision inspection system
US4648119A (en) * 1985-03-18 1987-03-03 Tektronix, Inc. Method and apparatus for forming 3×3 pixel arrays and for performing programmable pattern contingent modifications of those arrays
US4790026A (en) * 1985-12-31 1988-12-06 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Programmable pipelined image processor
US5717440A (en) * 1986-10-06 1998-02-10 Hitachi, Ltd. Graphic processing having apparatus for outputting FIFO vacant information
US4972359A (en) 1987-04-03 1990-11-20 Cognex Corporation Digital image processing system
US5129092A (en) 1987-06-01 1992-07-07 Applied Intelligent Systems,Inc. Linear chain of parallel processors and method of using same
US5146592A (en) * 1987-09-14 1992-09-08 Visual Information Technologies, Inc. High speed image processing computer with overlapping windows-div
US5384912A (en) * 1987-10-30 1995-01-24 New Microtime Inc. Real time video image processing system
US5268856A (en) 1988-06-06 1993-12-07 Applied Intelligent Systems, Inc. Bit serial floating point parallel processing system and method
US4967378A (en) * 1988-09-13 1990-10-30 Microsoft Corporation Method and system for displaying a monochrome bitmap on a color display
US4974261A (en) * 1988-11-15 1990-11-27 Matsushita Electric Works, Ltd. Optical surface inspection method
NL8803112A (nl) 1988-12-19 1990-07-16 Elbicon Nv Werkwijze en inrichting voor het sorteren van een stroom voorwerpen in afhankelijkheid van optische eigenschappen van de voorwerpen.
US4972495A (en) * 1988-12-21 1990-11-20 General Electric Company Feature extraction processor
DE69028337T2 (de) * 1989-04-28 1997-01-09 Hitachi Ltd Zeichenerkennungsanlage
JPH0486961A (ja) * 1990-07-31 1992-03-19 Toshiba Corp 塗りつぶしパターン発生装置および発生方法
US5115309A (en) 1990-09-10 1992-05-19 At&T Bell Laboratories Method and apparatus for dynamic channel bandwidth allocation among multiple parallel video coders
JPH087715B2 (ja) * 1990-11-15 1996-01-29 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理装置及びアクセス制御方法
US5341468A (en) * 1991-01-28 1994-08-23 Ricoh Company, Ltd. Image processor
JPH0568243A (ja) 1991-09-09 1993-03-19 Hitachi Ltd 可変長符号化制御方式
US5173951A (en) * 1991-10-10 1992-12-22 Unisys Corporation Word oriented image smoothing apparatus and method
US5315388A (en) 1991-11-19 1994-05-24 General Instrument Corporation Multiple serial access memory for use in feedback systems such as motion compensated television
US5216503A (en) 1991-12-24 1993-06-01 General Instrument Corporation Statistical multiplexer for a multichannel image compression system
US5657403A (en) 1992-06-01 1997-08-12 Cognex Corporation Vision coprocessing
US5623624A (en) * 1993-02-01 1997-04-22 Micron Technology, Inc. Memory control architecture for high speed transfer options
US6118886A (en) * 1993-03-30 2000-09-12 The United States Of America As Represented By The United States Department Of Energy Automatic target recognition apparatus and method
US5550972A (en) * 1993-06-30 1996-08-27 Microsoft Corporation Method and apparatus for efficient transfer of data to memory
US5583954A (en) 1994-03-01 1996-12-10 Cognex Corporation Methods and apparatus for fast correlation
US5526050A (en) 1994-03-31 1996-06-11 Cognex Corporation Methods and apparatus for concurrently acquiring video data from multiple video data sources
US5602937A (en) 1994-06-01 1997-02-11 Cognex Corporation Methods and apparatus for machine vision high accuracy searching
US5557734A (en) 1994-06-17 1996-09-17 Applied Intelligent Systems, Inc. Cache burst architecture for parallel processing, such as for image processing
US5536559A (en) * 1994-11-22 1996-07-16 Wisconsin Alumni Research Foundation Stress-free mount for imaging mask
US5706483A (en) * 1994-12-13 1998-01-06 Microsoft Corporation Run-time code compiler for data block transfer
US5564114A (en) * 1995-01-09 1996-10-08 Cirrus Logic Inc. Method and an arrangement for handshaking on a bus to transfer information between devices in a computer system
US5784047A (en) * 1995-04-28 1998-07-21 Intel Corporation Method and apparatus for a display scaler
US5608876A (en) * 1995-05-22 1997-03-04 International Business Machines Corporation Add-in board with enable-disable expansion ROM for PCI bus computers
JPH11513150A (ja) * 1995-06-15 1999-11-09 インテル・コーポレーション Pci間ブリッジを統合する入出力プロセッサ用アーキテクチャ
JP3556340B2 (ja) * 1995-08-21 2004-08-18 株式会社東芝 コンピュータシステム
US5835160A (en) * 1995-09-13 1998-11-10 Oak Technology, Inc. Sampling rate conversion using digital differential analyzers
US6084600A (en) * 1996-03-15 2000-07-04 Micron Technology, Inc. Method and apparatus for high-speed block transfer of compressed and word-aligned bitmaps
US5987590A (en) * 1996-04-02 1999-11-16 Texas Instruments Incorporated PC circuits, systems and methods
US5969750A (en) * 1996-09-04 1999-10-19 Winbcnd Electronics Corporation Moving picture camera with universal serial bus interface
US5889480A (en) * 1996-10-18 1999-03-30 Samsung Electronics Co., Ltd. Full duplex serial codec interface with DMA
US5784576A (en) * 1996-10-31 1998-07-21 International Business Machines Corp. Method and apparatus for adding and removing components of a data processing system without powering down
US6125418A (en) * 1996-11-27 2000-09-26 Compaq Computer Corporation Method and apparatus for enabling a computer user to convert a computer system to an intelligent I/O system
US5761461A (en) * 1996-12-13 1998-06-02 International Business Machines Corporation Method and system for preventing peripheral component interconnect (PCI) peer-to-peer access across multiple PCI host bridges within a data processing system
US5978493A (en) * 1996-12-16 1999-11-02 International Business Machines Corporation Identification bracelet for child and guardian matching
US5933614A (en) * 1996-12-31 1999-08-03 Compaq Computer Corporation Isolation of PCI and EISA masters by masking control and interrupt lines
US5935233A (en) * 1997-05-21 1999-08-10 Micron Electronics, Inc. Computer system with a switch interconnector for computer devices
US6047349A (en) * 1997-06-11 2000-04-04 Micron Electronics, Inc. System for communicating through a computer system bus bridge
US5937173A (en) * 1997-06-12 1999-08-10 Compaq Computer Corp. Dual purpose computer bridge interface for accelerated graphics port or registered peripheral component interconnect devices
US6134579A (en) * 1997-08-15 2000-10-17 Compaq Computer Corporation Semaphore in system I/O space
US6094699A (en) * 1998-02-13 2000-07-25 Mylex Corporation Apparatus and method for coupling devices to a PCI-to-PCI bridge in an intelligent I/O controller
US7082487B2 (en) * 2002-02-20 2006-07-25 Spectrum Signal Processing, Inc. Multiple configurable I/O common mezzanine cards
US6985990B2 (en) * 2002-03-29 2006-01-10 International Business Machines Corporation System and method for implementing private devices on a secondary peripheral component interface

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100698549B1 (ko) * 2001-06-04 2007-03-21 에스케이케미칼주식회사 오·폐수처리용 미생물 배양기

Also Published As

Publication number Publication date
US20060190656A1 (en) 2006-08-24
EP1031108A1 (en) 2000-08-30
US5977994A (en) 1999-11-02
US6208772B1 (en) 2001-03-27
CA2308328A1 (en) 1999-04-29
US6041148A (en) 2000-03-21
WO1999021126A1 (en) 1999-04-29
EP1031108A4 (en) 2001-01-24
JP2003517649A (ja) 2003-05-27
AU7375298A (en) 1999-05-10
AU747283B2 (en) 2002-05-09

Similar Documents

Publication Publication Date Title
KR20010031192A (ko) 기계시각시스템에서의 영상데이터와 같은 논리적으로인접한 데이터샘플들을 위한 데이터처리시스템
JP3026984B2 (ja) マルチプロセッサシステム
US6260088B1 (en) Single integrated circuit embodying a risc processor and a digital signal processor
US6173388B1 (en) Directly accessing local memories of array processors for improved real-time corner turning processing
US6275920B1 (en) Mesh connected computed
US5197140A (en) Sliced addressing multi-processor and method of operation
CN114503072A (zh) 用于向量中的区的排序的方法及设备
US5371896A (en) Multi-processor having control over synchronization of processors in mind mode and method of operation
US7584343B2 (en) Data reordering processor and method for use in an active memory device
US5657403A (en) Vision coprocessing
EP0408810B1 (en) Multi processor computer system
JPH06509893A (ja) 画像処理及びグラフィック処理システム
US10606598B2 (en) Dual data streams sharing dual level two cache access ports to maximize bandwidth utilization
US11550575B2 (en) Method and apparatus for vector sorting
JPS62208158A (ja) マルチプロセツサシステム
US20230385063A1 (en) Streaming engine with early exit from loop levels supporting early exit loops and irregular loops
JP2009223758A (ja) 画像処理装置
EP1122688A1 (en) Data processing apparatus and method
JP3821198B2 (ja) 信号処理装置
JPH06309349A (ja) プログラム制御のプロセッサ
US20230065512A1 (en) Pseudo-First In, First Out (FIFO) Tag Line Replacement
US20230251970A1 (en) Padding and suppressing rows and columns of data
JPH0435792B2 (ko)
JP2000285081A (ja) ノード間データ通信方法
JPS61233869A (ja) 画像処理装置

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid