KR20150062131A - 데이터 연산 방법, 데이터 연산 장치 및 결함 검사 장치 - Google Patents

데이터 연산 방법, 데이터 연산 장치 및 결함 검사 장치 Download PDF

Info

Publication number
KR20150062131A
KR20150062131A KR1020140164365A KR20140164365A KR20150062131A KR 20150062131 A KR20150062131 A KR 20150062131A KR 1020140164365 A KR1020140164365 A KR 1020140164365A KR 20140164365 A KR20140164365 A KR 20140164365A KR 20150062131 A KR20150062131 A KR 20150062131A
Authority
KR
South Korea
Prior art keywords
run
address
data
expansion
run data
Prior art date
Application number
KR1020140164365A
Other languages
English (en)
Other versions
KR101630078B1 (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 가부시키가이샤 스크린 홀딩스
Publication of KR20150062131A publication Critical patent/KR20150062131A/ko
Application granted granted Critical
Publication of KR101630078B1 publication Critical patent/KR101630078B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

복수의 런 데이터군의 논리 연산을 단시간에 행한다.
런 데이터의 시단 좌표에 대응하는 런 전개 메모리의 어드레스에 기억되어 있는 값에 기정치를 가산하는 한편 상기 런 데이터의 종단 좌표에 대응하는 런 전개 메모리의 어드레스에 기억되어 있는 값으로부터 기정치를 감산하는 데이터 전개 조작을 런 데이터마다 실행함으로써, 복수의 런 데이터를 런 전개 메모리의 어드레스 공간에 전개하여 기억시키는 런 전개 공정과, 어드레스 공간의 m번째의 어드레스에 대해 런 전개 공정을 완료한 시점에서 어드레스 공간의 0번째 내지 m번째의 어드레스에 각각 기억된 값의 총 합을 기입하는, 스캔 조작을 어드레스 공간의 각 어드레스에 대해서 실행하여 복수의 런 데이터의 겹침 상태를 나타내는 겹침 정보를 취득하는 겹침 정보 취득 공정과, 겹침 정보에 의거하여 복수의 런 데이터군을 논리 연산하는 논리 연산 공정을 구비한다.

Description

데이터 연산 방법, 데이터 연산 장치 및 결함 검사 장치{DATA CALCULATION METHOD, DATA CALCULATION APPARATUS, AND DEFECT INSPECTION APPARATUS}
이 발명은, 복수의 런 데이터군의 이론 연산을 행하는 데이터 연산 기술 및 상기 데이터 연산 기술을 적용한 결함 검사 장치에 관한 것이다.
반도체 기판이나 프린트 기판 등의 제조 기술 분야에서는, 제품에 포함되는 결함을 검출하고 이것을 분석·평가하기 위해, 평가 대상물을 현미경 등에 의해 촬상하고, 얻어진 화상으로부터 결함부를 포함하는 화상을 추출하고 있다. 그리고, 추출한 화상에 대해 마스크 화상에 의한 마스크 처리를 실행함으로써 결함 화상을 정확하게 구하고 있다. 이 마스크 처리를 행하기 위해, 예를 들면 일본국 특허공개 평7-203178호 공보에 기재된 논리 연산이 상기 화상의 런 데이터에 대해 실행된다.
일본국 특허공개 평7-203178호 공보에 기재된 발명은, 연산 처리 대상이 되는 2개의 화상의 런 데이터군을 비트맵 데이터로 변환하지 않고, 2개의 화상의 논리곱, 논리합 및 배타적 논리합을 구하고 있다. 보다 구체적으로는, 연산 처리 대상이 되는 2개의 런 데이터군을 일방단의 런부터 순서대로 접속 판정하고, 겹쳐 있는 부분에 따라 논리곱, 논리합 및 배타적 논리합의 판정을 행하고 있다. 따라서, 런 데이터군을 구성하는 런 데이터의 갯수가 많아짐에 따라 접속 판정이 복잡해져, 논리 연산에 필요로 하는 시간이 증대한다는 문제가 있다. 또, 3개 이상의 런 데이터군에 대해서 논리 연산하는 경우에는, 접속 판정의 복잡함은 더 비약적으로 상승되어, 논리 연산에 필요로 하는 시간도 비약적으로 증대되어 버린다.
이 발명은 상기 과제를 감안하여 이루어진 것이며, 복수의 런 데이터군의 논리 연산을 단시간에 행할 수 있는 데이터 연산 기술 및 상기 데이터 연산 기술을 이용하여 결함 검사를 효율적으로 행하는 기술을 제공하는 것을 목적으로 한다.
이 발명의 제1 양태는, 이치 화상 데이터를 런 렝스화하여 얻어지는 적어도 1개 이상의 런 데이터를 런 데이터군으로 하고, 서로 상이한 복수의 런 데이터군의 논리 연산을 행하는, 데이터 연산 방법으로서, 런 데이터의 시단 좌표에 대응하는 런 전개 메모리의 어드레스에 기억되어 있는 값에 기정치를 가산하는 한편 상기 런 데이터의 종단 좌표에 대응하는 런 전개 메모리의 어드레스에 기억되어 있는 값으로부터 기정치를 감산하는 데이터 전개 조작을 런 데이터마다 실행함으로써, 복수의 런 데이터를 런 전개 메모리의 어드레스 공간에 전개하여 기억시키는 런 전개 공정과, 어드레스 공간의 m번째의 어드레스에 대해 런 전개 공정을 완료한 시점에서 어드레스 공간의 0번째 내지 m번째의 어드레스에 각각 기억된 값의 총 합을 기입하는, 스캔 조작을 어드레스 공간의 각 어드레스에 대해서 실행하여 복수의 런 데이터의 겹침 상태를 나타내는 겹침 정보를 취득하는 겹침 정보 취득 공정과, 겹침 정보에 의거하여 복수의 런 데이터군의 논리곱, 논리합 및 배타적 논리합 중 적어도 1개를 구하는 논리 연산 공정을 구비하는 것을 특징으로 하고 있다.
또, 이 발명의 제2 양태는, 이치 화상 데이터를 런 렝스화하여 얻어지는 적어도 1개 이상의 런 데이터를 런 데이터군으로 하고, 서로 상이한 복수의 런 데이터군의 논리 연산을 행하는 데이터 연산 장치로서, 런 데이터의 시단 좌표 및 종단 좌표에 관련하는 값을 기억하는 런 전개 메모리와, 런 데이터의 시단 좌표에 대응하는 런 전개 메모리의 어드레스에 기억되어 있는 값에 기정치를 가산하는 한편 상기 런 데이터의 종단 좌표에 대응하는 런 전개 메모리의 어드레스에 기억되어 있는 값으로부터 기정치를 감산하는 데이터 전개 조작을 런 데이터마다 실행하여 복수의 런 데이터를 런 전개 메모리의 어드레스 공간에 전개하는 런 전개 처리부와, 복수의 런 데이터가 전개된 런 전개 메모리에 있어서의 어드레스 공간의 m번째의 어드레스에 대해 어드레스 공간의 0번째 내지 m번째의 어드레스에 각각 기억된 값의 총 합을 기입하는, 스캔 조작을 어드레스 공간의 각 어드레스에 대해서 실행하여 복수의 런 데이터의 겹침 상태를 나타내는 겹침 정보를 취득하는 겹침 정보 취득부와, 겹침 정보에 의거하여 복수의 런 데이터군의 논리곱, 논리합 및 배타적 논리합 중 적어도 1개를 구하는 논리 연산부를 구비하는 것을 특징으로 하고 있다.
이와 같이 구성된 발명(데이터 연산 방법 및 데이터 연산 장치)에서는, 런 데이터군을 비트 맵 데이터로 변환하지 않고, 런 데이터군의 논리 연산이 실행된다. 또한, 런 데이터마다의 데이터 전개 조작 및 어드레스마다의 스캔 조작에 의해 복수의 런 데이터의 겹침 상태를 나타내는 겹침 정보를 취득한 다음, 상기 겹침 정보에 의거하여 런 데이터군의 논리곱, 논리합 및 배타적 논리합 중 적어도 1개를 구하고 있다. 이 때문에, 런 데이터의 개수나 런 데이터군의 개수가 적은 경우는 물론, 이들 개수가 증대해도, 간소한 데이터 처리에 의해 논리 연산을 실행할 수 있다.
또, 이 발명의 제3 양태는, 결함 검사 장치로서, 검사 대상 화상을 취득하는 화상 취득부와, 검사 대상 화상을 검사하여 결함 부위가 포함되는 추출 화상을 추출하는 화상 추출부와, 추출 화상을 행마다 런 렝스화하여 얻어지는 적어도 1개 이상의 런 데이터를 가지는 추출 런 데이터군과, 마스크 화상을 행마다 런 렝스화하여 얻어지는 적어도 1개 이상의 런 데이터를 가지는 마스크 런 데이터군의 논리 연산을 행함으로써, 추출 화상 중 결함 부위 이외의 부위를 마스크 화상에 의해 마스크 처리하여 결함 화상 데이터를 얻는 데이터 처리부를 구비하는 결함 검사 장치이며, 데이터 처리부가, 런 데이터의 시단 좌표 및 종단 좌표에 관련하는 값을 기억하는 런 전개 메모리와, 런 데이터의 시단 좌표에 대응하는 런 전개 메모리의 어드레스에 기억되어 있는 값에 기정치를 가산하는 한편 상기 런 데이터의 종단 좌표에 대응하는 런 전개 메모리의 어드레스에 기억되어 있는 값으로부터 기정치를 감산하는 데이터 전개 조작을 런 데이터마다 실행하여 복수의 런 데이터를 런 전개 메모리의 어드레스 공간에 전개하는 런 전개 처리부와, 복수의 런 데이터가 전개된 런 전개 메모리에 있어서의 어드레스 공간의 m번째의 어드레스에 대해 어드레스 공간의 0번째 내지 m번째의 어드레스에 각각 기억된 값의 총 합을 기입하는, 스캔 조작을 어드레스 공간의 각 어드레스에 대해서 실행하여 복수의 런 데이터의 겹침 상태를 나타내는 겹침 정보를 취득하는 겹침 정보 취득부와, 겹침 정보에 의거하여 추출 런 데이터군 및 마스크 런 데이터군의 논리곱을 연산하여 결함 부위 이외의 부위를 제거하는 논리 연산 처리부를 가지는 것을 특징으로 하고 있다.
이와 같이 구성된 발명(결함 검사 장치)에서는, 상기한 데이터 연산 기술에 의해 추출 런 데이터군과 마스크 런 데이터군의 논리곱이 연산되어 결함 부위 이외의 부위가 추출 화상으로부터 제거되어, 양호한 결함 화상 데이터가 얻어진다.
이 발명에 의하면, 런 데이터의 개수나 런 데이터군의 개수에 관계없이, 런 전개 처리와 겹침 정보 취득 처리를 실행함으로써 전체 런 데이터의 겹침 상태를 나타내는 겹침 정보가 얻어지며, 상기 겹침 정보에 의거하여 전체 런 데이터군의 논리곱, 논리합 및 배타적 논리합 중 적어도 1개를 구하는 것이 가능해지고 있다. 따라서, 런 데이터군의 논리 연산을 단시간에 행할 수 있다.
또, 상기한 데이터 연산 기술을 이용함으로써 결함 부위 이외의 부위가 추출 화상으로부터 제거되어, 양호한 결함 화상 데이터를 단시간에 얻어진다. 따라서, 결함 검사에 필요로 하는 시간을 단축할 수 있다.
도 1은 본 발명에 관련된 데이터 연산 장치의 일실시 형태를 구비하는 결함 검사 장치의 개략 구성을 나타내는 도이다.
도 2는 화상 처리부의 개략 구성을 나타내는 블럭도이다.
도 3은 본 발명에 관련된 데이터 연산 장치의 일실시 형태에 상당하는 데이터 처리부의 개략 구성을 나타내는 블럭도이다.
도 4는 데이터 처리부에 의한 데이터 연산 동작의 일례를 모식적으로 나타내는 설명도이다.
도 5는 각 프로세스 코어에서 실행되는 데이터 전개 조작의 내용을 나타내는 도이다.
도 6은 겹침 정보 취득 처리의 내용을 나타내는 도이다.
도 7은 프리픽스 스캔의 동작 개요를 나타내는 도이다.
도 8은 논리곱 판정 처리의 내용을 나타내는 도이다.
도 9는 데이터 처리부에 의한 데이터 연산 동작의 다른 예를 모식적으로 나타내는 설명도이다.
도 10은 논리합 판정 처리의 내용을 나타내는 도이다.
도 11은 데이터 처리부에 의한 데이터 연산 동작의 다른 예를 모식적으로 나타내는 설명도이다.
도 12는 배타적 논리합 판정 처리의 내용을 나타내는 도이다.
도 1은 본 발명에 관련된 데이터 연산 장치의 일실시 형태를 구비하는 결함 검사 장치의 개략 구성을 나타내는 도이다. 이 결함 검사 장치(1)는, 검사 대상인 반도체 기판(이하 「기판」이라고 한다.) S의 외관에 나타난 핀홀이나 이물 등의 결함 검사를 행한다. 결함 검사 장치(1)는, 기판 S 상의 검사 대상 영역을 촬상하는 촬상 장치(2)와, 촬상 장치(2)로부터의 화상 데이터에 의거하여 결함 검사를 행하는 제어 장치(3)를 가진다.
상기 결함 검사 장치(1)를 구비하는 검사 시스템에서는, 결함 검사 장치(1)와는 별도로 기판 S의 제조 라인에 설치된 기판 검출 장치 M에 있어서 기판 S에 결함이 발견되면, 그 결함의 위치 좌표가 이 결함 검사 장치(1)에 부여된다. 제조 라인에 장착된 기판 검출 장치 M은, 미리 정해진 처리 알고리즘에 의해 기판 S 전체를 검사하고, 기판 표면에 결함으로서의 요건을 만족하는 영역이 있으면 그 위치 좌표를 취득하여 출력한다. 따라서, 그 기판 검출 장치 M이 가지는 촬상부는 비교적 저해상도이며, 처리 알고리즘도 고정적이다.
한편, 이 결함 검사 장치(1)는, 도시하지 않는 인터페이스를 통하여 기판 검출 장치 M과 접속되어 있으며, 기판 검출 장치 M으로부터 결함으로서 위치 좌표가 보고된 영역을 보다 높은 해상도를 가지는 촬상 장치(2)에 의해 촬상함과 함께, 그 화상을 제어 장치(3)가 정밀 조사하여 결함의 유무나 그 종류 등을 보다 상세하게 판정함과 함께, 결함 부위의 화상을 표시부에 표시한다.
촬상 장치(2)는, 기판 S 상의 검사 대상 영역을 촬상함으로써 화상 데이터를 취득하는 촬상부(21), 기판 S를 유지하는 스테이지(22), 및, 촬상부(21)에 대해 스테이지(22)를 상대적으로 이동시키는 스테이지 구동부(23)를 가지고 있다. 또, 촬상부(21)는, 조명광을 출사하는 조명부(211), 기판 S에 조명광을 유도함과 함께 기판 S로부터의 광이 입사하는 광학계(212), 및, 광학계(212)에 의해 결상된 기판 S의 이미지를 전기 신호로 변환하는 촬상 디바이스(213)를 가지고 있다. 스테이지 구동부(23)는 볼 나사, 가이드 레일 및 모터에 의해 구성되며, 제어 장치(3)에 설치된 장치 제어부(4)가 스테이지 구동부(23) 및 촬상부(21)를 제어함으로써, 기판 S 상의 검사 대상 영역이 촬상된다.
제어 장치(3)는 장치 제어부(4)를 가지고 있으며, 이 장치 제어부(4)가 미리 읽어 들인 제어 프로그램을 실행함으로써, 도 1에 나타내는 제어 장치 각 부를 이하와 같이 동작시킨다. 제어 장치(3)는, 상기의 장치 제어부(4) 외에, 화상 취득부(5) 및 화상 처리부(6)를 구비하고 있다. 화상 취득부(5)는, 촬상부(21)로부터 출력되는 전기 신호를 데이터화하고, 촬상 화상에 대응하는 화상 데이터를 취득한다. 화상 처리부(6)는, 화상 취득부(5)가 취득한 화상 데이터에 대해 적절한 화상 처리를 실시하고, 화상에 포함되는 결함의 검출이나 결함 부위의 화상(이하 「결함 화상」이라고 한다)을 작성한다. 또한, 상기 화상 처리부(6)는 본 발명에 관련된 데이터 연산 장치의 일실시 형태인 데이터 처리부를 포함하고 있으며, 촬상 장치(2)에 의해 촬상된 화상(검사 대상 화상)으로부터 추출한 화상에 대해 마스크 처리를 실시하여 결함 부위의 정보를 도출 가능하게 되어 있다. 화상 처리부(6), 특히 데이터 처리부의 구성 및 동작에 대해서는, 다음에 상세히 서술한다.
또한 제어 장치(3)는, 각종 데이터를 기억하기 위한 기억부(7), 사용자로부터의 조작 입력을 받아들이는 키보드 및 마우스 등의 입력 접수부(8) 및 조작 순서나 처리 결과 등의 사용자용 시각 정보를 표시하는 표시부(9) 등을 구비하고 있다. 또, 도시를 생략하고 있지만, 광디스크, 자기 디스크, 광자기 디스크 등의 컴퓨터 판독 가능한 기록 매체로부터 정보의 판독을 행하는 판독 장치를 가지며, 결함 검사 장치(1)의 다른 구성과의 사이에서 신호를 송수신 하는 통신부가, 적절히, 인터페이스(1/F)를 통하는 등 하여 접속된다.
도 2는 화상 처리부의 개략 구성을 나타내는 블록도다. 화상 처리부(6)는, 필터링부(61), 차분 추출부(62), 이치화 처리부(63) 및 데이터 처리부(64)를 가지고 있다. 필터링부(61)에는, 화상 취득부(5)로부터 촬상 화상이 보내져 옴과 함께, 기억부(7)로부터 참조 화상이 보내져 온다. 이들 양화상 중 촬상 화상은, 촬상 장치(2)에 의해 촬상된 기판 S의 화상이며, 결함 검출 검사의 대상이 되는 검사 대상 화상에 상당한다. 또, 참조 화상은 결함이 없는 이상적인 기판에 대응하는 화상이며, 이 실시 형태에서는, 다음에 설명하는 바와 같이, 검사 대상 화상과 참조 화상의 비교에 의해 검사 대상 화상으로부터 결함 검출이 행해진다. 이들 결함 화상 및 참조 화상은 기억부(7)에 기억되며, 필요에 따라 참조되지만, 외부의 기억 매체에 기억된 화상 데이터를 필요에 따라 읽어들이는 형태여도 된다.
필터링부(61)는, 검사 대상 화상 및 참조 화상의 각각에 대해서, 화상 노이즈 및 결함과 관계가 없는 경미한 화상의 차이를 제거하기 위한 필터링 처리를 행하고, 각 화상을 차분 추출부(62)에 보낸다. 이 차분 추출부(62)는, 필터링 처리 후의 검사 대상 화상 및 참조 화상의 차분을 구함으로써 화상 내용이 서로 상이한 영역을 추출하여, 상기 차분 화상을 이치화 처리부(63)에 보낸다. 그리고, 이치화 처리부(63)는 적절한 역치에 의해 차분 화상을 이치화하여 추출 화상 데이터를 생성하고, 데이터 처리부(64)에 보낸다. 이 데이터 처리부(64)는 추출 화상 데이터를 런 렝스화하여 복수의 런 데이터로 이루어지는 런 데이터군을 생성함과 함께, 기억부(7)로부터 부여되는 마스크 화상 데이터를 런 렝스화하여 복수의 런 데이터로 이루어지는 런 데이터군을 생성한다. 또한, 본 명세서에서는, 추출 화상 데이터를 런 렝스화하여 생성되는 런 데이터를 「추출 런 데이터」라고 칭하고, 마스크 화상 데이터를 런 렝스화하여 생성되는 런 데이터를 「마스크 런 데이터」라고 칭하며, 또한 후술하는 바와 같이 추출 런 데이터군과 마스크 런 데이터군의 논리곱에 의해 얻어지는 런 데이터를 「결함 런 데이터」라고 칭한다.
도 3은, 본 발명에 관련된 데이터 연산 장치의 일실시 형태에 상당하는 데이터 처리부의 개략 구성을 나타내는 블럭도이다. 이 데이터 처리부(64)는 GPU(Graphics Processing Unit)로 구성되어 있으며, 복수의 프로세서 코어(641)를 가지고 있다. 각 프로세서 코어(641)는 런 전개 처리부(642), 겹침 정보 취득 처리부(643) 및 논리 판정 처리부(644)로서 기능하며, 런 데이터마다의 런 전개 메모리로의 런 전개 조작, 상기 런 전개 메모리의 어드레스마다의 스캔 조작 및 판정 조작을 각각 하나의 스레드로서 실행한다. 본 실시 형태에서는, 런 데이터마다의 런 전개 조작이 본 발명의 「전개 스레드」의 일례에 상당하고, 어드레스마다의 판정 조작이 본 발명의 「판정 스레드」의 일례에 상당하고 있다. 또한, 런 전개 조작, 스캔 조작 및 판정 조작에 대해서는 다음에 상세히 서술한다.
데이터 처리부(64)는, 상기한 추출 런 데이터, 마스크 런 데이터 및 결함 런 데이터를 일시적으로 기억하는 기억부(645)를 가지고 있다. 이 기억부(645)는 런 전개 조작에 의해 전개된 값을 기억하는 어드레스 공간을 가지고 있으며, 상기 어드레스 공간에서 규정되는 메모리 공간이 본 발명의 「런 전개 메모리」로서 기능한다. 또, 기억부(645)에는, 런 전개 메모리의 각 어드레스에 대해서 스캔 조작을 행함으로써 얻어지는 값을 기억하는 시단 위치 메모리 및 종단 위치 메모리도 설치되어 있다. 이들 런 전개 메모리, 시단 위치 메모리 및 종단 위치 메모리에 관해서도 다음에 상세히 서술한다.
데이터 처리부(64)는, 또한 런 생성부(647), 병렬 처리 제어부(648), 데이터 초기 설정부(649)를 가지고 있다. 런 생성부(647)는, 추출 화상 데이터를 런 렝스화 처리하여 추출 런 데이터군을 생성하고, 또 마스크 화상 데이터를 런 렝스화 처리하여 마스크 런 데이터군을 생성하고, 그들을 기억부(645)에 기억시킨다. 또, 병렬 처리 제어부(648)는, 각 프로세서 코어(641)에서 실행되는 스레드를 배타 제어하면서 병렬하여 실행시킨다. 또한 데이터 초기 설정부(649)는 적절히 런 전개 메모리, 시단 위치 메모리나 종단 위치 메모리의 메모리 내용을 제로 클리어한다. 또한, 본 실시 형태에서는, 마스크 화상 데이터로부터 마스크 런 데이터군을 생성하고 있지만, 미리 마스크 런 데이터군을 기억부(7)에 기억시켜 두어, 기억부(7)로부터의 마스크 런 데이터군을 이용하여 마스크 처리를 행하도록 구성해도 된다.
다음에, 상기와 같이 구성된 데이터 처리부(64)에 의한 데이터 연산 동작에 대해서 도 4 내지 도 8을 참조하면서 설명한다. 도 4는 데이터 처리부에 의한 데이터 연산 동작의 일례를 모식적으로 나타내는 설명도이다. 여기에서는, 데이터 연산 동작의 이해를 돕기 위해, 이치화 처리부(63)에 의해 작성된 추출 화상 데이터로서 도 4 중의 부호 De로 나타내는 1×6 화소의 이치 화상 데이터가 데이터 처리부(64)에 부여됨과 함께 마스크 화상 데이터로서 도 4 중의 부호 Dm으로 나타내는 1×6 화소의 이치 화상 데이터가 데이터 처리부(64)에 부여된 경우를 예시하여 설명한다.
데이터 처리부(64)에 입력된 추출 화상 데이터에 대해, 런 렝스화 처리가 런 생성부(647)에서 실행되어 추출 런 데이터가 생성되고, 기억부(645)에 기억된다. 런 렝스화 처리에 대해서는 종래 주지 기술이 많이 제안되어 있고, 본 실시 형태에 있어서도 일반적인 런 렝스화 처리를 그대로 이용하고 있으며, 추출 화상 데이터 De에 대해 런 렝스화 처리를 실시함으로써 1개의 추출 런 데이터 re[0]이 얻어진다. 또한, 이 도면 중의 부호 「X0」은 화상 데이터에 있어서의 상기 런의 시단 화소 위치를 나타내는 열 인덱스(시단 좌표)를 나타내고, 부호 「X1」은 화상 데이터에 있어서의 상기 런의 종단 화소 위치를 나타내는 열 인덱스(종단 좌표)를 나타내고, 부호 「Y」는 화상 데이터에 있어서의 상기 런의 행 인덱스를 나타내고 있다.
또, 데이터 처리부(64)에서는, 추출 화상 데이터 이외에, 마스크 화상 데이터에 대해서도 런 렝스화 처리가 실행되어 마스크 런 데이터가 생성되고, 기억부(645)에 기억된다. 마스크 화상 데이터 Dm에 대한 런 렝스화 처리에 의해 2개의 마스크 런 데이터 rm[0], rm[1]이 얻어진다.
이렇게 하여 추출 런 데이터 re[0]으로 이루어지는 추출 런 데이터군과, 마스크 런 데이터 rm[0], rm[1]로 이루어지는 마스크 런 데이터군이 생성된다. 그리고, 「런 전개 처리」, 「겹침 정보 취득 처리」 및 「논리곱 판정 처리」가 실행되고, 이것에 의해 추출 런 데이터군과 마스크 런 데이터군의 논리곱이 연산된다.
런 전개 처리는, 런 전개 메모리의 어드레스에 기억되어 있는 값을 제로로 클리어한 다음에, 런 데이터마다 데이터 전개 조작하여 양 런 데이터군에 포함되는 런 데이터 모두를 런 전개 메모리 s1의 어드레스 공간에 전개하여 기억시키는 것이며, 본 발명의 「런 전개 공정」의 일례에 상당한다. 여기서, 데이터 전개 조작을 시리얼로 행하는 것도 가능하지만, 이 경우, 런 전개 처리에 다대한 시간을 소비해 버린다.
그래서, 본 실시 형태에서는, 런 데이터마다의 데이터 전개 조작을 하나의 「전개 스레드」로 하고, 각 프로세서 코어(641)에 의해 전개 스레드가 병렬적으로 실행된다. 즉, 도 3 및 도 5에 나타내는 바와 같이, 제0 프로세서 코어(641)에서는 런 데이터 re[0]을 처리 대상 런 데이터로 하여 데이터 전개 조작이 실행되고, 이것에 병행하여 제1 프로세서 코어(641)에서는 런 데이터 rm[0]을 처리 대상 런으로 하고, 또 제2 프로세서 코어(641)에서는 런 데이터 rm[1]을 처리 대상 런으로 하여 데이터 전개 조작이 실행된다. 단, 각 데이터 전개 조작에서는, 다음에 설명하는 바와 같이 런 전개 메모리 s1의 재기록 작업이 수반되기 때문에, 본 실시 형태에서는 병렬 처리 제어부(648)가 프로세서 코어(641) 간에서의 배타 제어를 행한다.
도 5는 각 프로세서 코어에서 실행되는 데이터 전개 조작의 내용을 나타내는 도이다. 데이터 전개 조작은, 런 데이터의 시단 좌표에 대응하는 런 전개 메모리 s1의 어드레스에 기억되어 있는 값에 기정치(본 실시 형태에서는 「1」)를 가산하는 한편 상기 런 데이터의 종단 좌표에 대응하는 런 전개 메모리 s1의 어드레스에 기억되어 있는 값으로부터 기정치를 감산하는 조작이다. 예를 들면 제0 스레드는 런 데이터 re[0]의 시단 좌표 X0에 대응하는 런 전개 메모리 s1의 어드레스(도 4 중의 어드레스 [2])에 기억되어 있는 값 s1[2]에 1을 가산한다. 즉, 런 전개 메모리 s1의 어드레스 [2]에 대해 다른 스레드에 의한 재기록이 행해지는 동안 대기하는 한편, 재기록 금지가 해제되어 있는 것을 조건으로 다음 식의 가산 처리
s1[2]=s1[2]+1
를 실행한다. 그에 이어서, 런 데이터 re[0]의 종단 좌표 X1에 대응하는 런 전개 메모리 s1의 어드레스(도 4 중의 어드레스 [6])에 기억되어 있는 값 s1[6]에서 1을 감산한다. 즉, 런 전개 메모리 s1의 어드레스 [6]에 대해 다른 스레드에 의한 재기록이 행해지는 동안 대기하는 한편, 재기록 금지가 해제되어 있는 것을 조건으로 다음 식의 감산 처리
s1[6]=s1[6]-1
을 실행한다.
이러한 데이터 전개 조작을 런 데이터마다 행함으로써, 추출 런 데이터군의 런 데이터 및 마스크 런 데이터군의 런 데이터가 모두 런 전개 메모리 s1의 어드레스 공간 [0]~[6]에 전개되어 기억된다. 그리고, 이렇게 하여 전개된 데이터에 대해 프리픽스 스캔(prefixscan;「프리픽스 스캔」이라고도 한다)를 실행함으로써 전체 런 데이터의 겹침 상태를 나타내는 겹침 정보를 취득한다(겹침 정보 취득 처리). 이 겹침 정보 취득 처리가 본 발명의 「겹침 정보 취득 공정」의 일례에 상당한다.
도 6은 겹침 정보 취득 처리의 내용을 나타내는 도이며, 도 7은 프리픽스 스캔의 동작 개요를 나타내는 도이다. 여기서, 「프리픽스 스캔」이란 일차원 배열의 제 m번째에 원래의 배열의 0번째로부터 m번째까지의 총 합을 넣는 처리를 의미하고 있다. 그리고, 본 실시 형태에서는, 어드레스마다의 프리픽스 스캔 조작을 시리얼로 행하는 것이 아니라, 병렬적으로 행하고 있다. 즉, 런 전개 메모리 s1 이외에 다른 2개의 런 전개 메모리 s2, s3가 기억부(645)에 설치되고, 도 6 및 도 7에 나타내는 바와 같이, 어드레스마다의 프리픽스 스캔 조작을 하나의 「스캔 스레드」로 하고, 각 프로세스 코어(641)에 의해 스캔 스레드가 병렬적으로 실행된다.
도 4에 나타내는 구체예에서는, 런 전개 메모리 s1의 어드레스 공간 [0]~[6]의 일차원 배열{1, -1, 1, 1, 0, -1, -1}은, 어드레스마다의 프리픽스 스캔 조작에 의해 배열{1, 0, 1, 2, 2, 1, 0}이 되고, 각 어드레스에 기억되어 있는 값, 즉 화소마다의 겹침 상태를 나타내는 겹침 정보에 의거하여 논리 연산하는 것이 가능해진다. 본 실시 형태에서는, 마스크 처리를 행하기 위해 2개의 런 데이터군의 논리곱을 실행할 필요가 있어, 값 「2」에 주목하여 논리 판정 처리부(644)가 논리 연산 판정으로서 논리곱 판정 처리를 행한다. 단, 값 「2」는 상기 어드레스 [m]에 대응하는 화소로 런 데이터군이 겹쳐 있는 것을 나타내고 있는 것에 지나지 않고, 시단 좌표인 것을 확인하기 위해서는 어드레스 [m-1]에 기억되어 있는 값 s1[m-1]이 「2」보다 작은 (1 이하)인 것을 확인할 필요가 있다. 또, 종단 좌표인 것을 확인하기 위해서는 어드레스 [m+1]에 기억되어 있는 값 s1[m+1]이 「2」보다 작은 (1 이하)인 것을 확인할 필요가 있다. 또한, 런 데이터군의 수가 3 이상인 경우여도 기본적으로 동일하며, 런 데이터군의 수 N(2 이상의 자연수)에 주목하여, 다음에 설명하는 본 발명의 「논리 연산 공정」의 일례인 논리곱 판정 처리를 행할 수 있다.
도 8은 논리곱 판정 처리의 내용을 나타내는 도이다. 이 논리곱 판정 처리는, 겹침 정보 취득 처리를 실행한 후의 런 전개 메모리 s1의 각 어드레스에 기억되는 값에 의거하여 각 어드레스에 대응하는 화소가 논리곱 처리에 의해 얻어지는 런 데이터의 시단 좌표 혹은 종단 좌표인지 아닌지를 판정하는 것이다. 본 실시 형태에서는, 논리곱 판정 처리에 앞서 시단 위치 메모리 ss 및 종단 위치 메모리 se의 각 어드레스에 기억되어 있는 값을 제로로 클리어한다. 그리고, 논리곱 판정 처리에 있어서도, 겹침 정보 취득 처리와 마찬가지로 1화소 1스레드로 판정 조작을 행하고 있다. 즉, 어드레스 공간의 m번째의 어드레스가 논리 연산 후의 런의 시단 좌표 혹은 종단 좌표에 대응하는지 아닌지를 판정하는 판정 조작을 도 8에 나타내는 바와 같이 하나의 「판정 스레드」로 하고, 각 프로세서 코어(641)에 의해 판정 스레드가 병렬적으로 실행된다.
각 판정 스레드는 크게 나누어 시단 좌표의 판정과 종단 좌표의 판정을 순차적으로 실행한다. 시단 좌표의 판정은, 어드레스 공간의 m번째의 어드레스에 기억된 값(=s1[m])과 (m-1)번째의 어드레스에 기억된 값(=s1[m-1])에 의거하여 m번째의 어드레스가 논리곱 처리 후의 런의 시단 좌표에 대응하는지 아닌지에 의해 행해진다. 보다 구체적으로는, 이하의 2개의 조건 (AND1), (AND2)
(AND1)…값 s1[m]이 런 데이터군의 수 N과 일치하거나,
(AND2)…값 s1[m-1]이 (N-1) 이하이다
를 모두 만족할 때에, 시단 위치 메모리 ss의 어드레스 [m]에 기억되는 값을 「1」로 세트한다. 따라서, 도 4에 나타내는 구체예에서는, 런 데이터수 N=2이며, m=3에 있어서만 상기 조건 (AND1), (AND2)가 만족되기 때문에, 값 ss[3] 만이 「1」이 되고, 그 이외의 값 ss[0]~ss[2], ss[4], ss[5]는 「0」인 채로 유지된다.
또, 종단 좌표의 판정은, 어드레스 공간의 m번째의 어드레스에 기억된 값(=s1[m])과 (m+1)번째의 어드레스에 기억된 값(=s1[m+1])에 의거하여 m번째의 어드레스가 논리곱 처리 후의 런의 종단 좌표에 대응하는지 아닌지에 의해 행해진다. 보다 구체적으로는, 상기한 조건 (AND1)과 함께, 조건 (AND3), 즉,
(AND3)…값 s1[m+1]이 (N-1) 이하이다
를 만족할 때에, 종단 위치 메모리 se의 어드레스 [m]에 기억되는 값을 「1」로 세트한다. 따라서, 도 4에 나타내는 구체예에서는, 런 데이터수 N=2이며, m=4에 있어서만 상기 조건 (AND1), (AND3)이 만족되기 때문에, 값 se[4] 만이 「1」이 되고, 그 이외의 값 se[0]~se[3], se[5]는 「0」인 채로 유지된다.
이렇게 하여 추출 런 데이터군과 마스크 런 데이터군의 논리곱 후에 있어서의 런의 시단 좌표 및 종단 좌표가 구해진다. 그에 이어서, 시단 위치 메모리 ss 및 종단 위치 메모리 se의 기억 정보에 의거하여 결함 런 데이터 rd[m]을 취득한다. 예를 들면 도 4에 나타내는 구체예에서는, 값 ss[3]이 「1」이며, 값 se[4]가 「1」이며, 그 이외의 값은 「0」이기 때문에 결함 런 데이터 rd[m]은, 런 데이터 rd[0](시단 좌표 X0=3, 종단 좌표 X1=5, 행 인덱스 Y=0)이 된다. 그리고, 상기 결함 런 데이터 rd[m]에 의거하여 결함 화상 데이터를 작성하여, 출력한다(결함 화상 데이터의 작성 처리: 논리합 화상 데이터의 작성 처리).
이상과 같이, 본 실시 형태에 의하면, 추출 런 데이터군 및 마스크 런 데이터군을 비트 맵 데이터로 변환하지 않고, 2개의 런 데이터군의 논리곱을 구하고 있으며, 논리 연산을 단시간에 행할 수 있다. 비트 맵 데이터로의 변환을 불요로 하는 점에서는, 일본국 특허공개 평7-203178호 공보에 기재된 발명과 공통되지만, 다음의 점에서 크게 상이하다. 즉, 본 실시 형태에서는, 런 데이터마다의 데이터 전개 조작 및 어드레스마다의 스캔 조작에 의해 전체 런 데이터의 겹침 상태를 나타내는 겹침 정보를 취득하고, 또한 상기 겹침 정보에 의거하여 추출 런 데이터군 및 마스크 런 데이터군의 논리곱을 구하고 있다. 따라서, 일본국 특허공개 평7-203178호 공보에 기재된 발명에 있어서의 논리 연산 방법, 즉 일방단의 런부터 순서대로 접속 판정하고, 겹쳐 있는 부분에 따라 논리 연산을 행하는 방법에 비해 고속의 연산 처리가 가능해져, 연산 시간을 단축할 수 있다. 특히, 런 데이터의 개수가 증대하면, 본 실시 형태의 우위성은 더 높아진다.
또 상기 실시 형태에서는, 런 전개 처리를 실행할 때에 있어서, 런 데이터마다의 런 전개 조작을 전개 스레드로 하고, 1런 데이터 1전개 스레드로 런 전개 조작을 병렬적으로 실행하고 있기 때문에, 런 전개 처리에 필요로 하는 시간을 단축하고 있다. 또한, 본 실시 형태에서는 전개 스레드의 개수와 런 데이터의 개수를 일치시키고 있지만, 복수의 런 데이터의 분할 양태는 이것에 한정되는 것은 아니다. 즉, 프로세서 코어(641)의 개수에 따라 복수의 런 데이터의 분할 양태를 적절히 변경해도 되며, 복수의 런 데이터를 프로세서 코어(641)의 개수에 따라 복수 세트로 분할하고, 각 프로세서 코어가 분할된 하나 또는 복수의 런 데이터에 대해서 런 전개 조작을 전개 스레드로서 실행하도록 구성해도 된다. 이 점에 대해서는, 겹침 정보 취득 처리 및 논리곱 판정 처리에 있어서도 동일하다.
또 상기 실시 형태에서는, 런 전개 처리뿐만 아니라, 겹침 정보 취득 처리 및 논리곱 판정 처리에 있어서도 복수의 프로세서 코어(641)에 의한 병렬 처리를 행하고 있으며, 처리 시간의 단축에 크게 기여하고 있다. 즉, 겹침 정보 취득 처리에서 행해지는 프리픽스 스캔에서는, 어드레스마다의 프리픽스 스캔 조작을 하나의 「스캔 스레드」로 하고, 각 프로세서 코어(641)에 의해 스캔 스레드를 병렬적으로 행하고 있다. 또, 논리곱 판정 처리에서는, 1화소 1판정 스레드로 판정 조작을 행하고 있다. 즉, 어드레스 공간의 m번째의 어드레스가 논리 연산 후의 런의 시단 좌표 혹은 종단 좌표에 대응하는지 아닌지를 판정하는 판정 조작을 하나의 「판정 스레드」로 하고, 각 프로세서 코어(641)에 의해 판정 스레드를 병렬적으로 행하고 있다. 따라서, 겹침 정보 취득 처리나 논리곱 판정 처리에 필요로 하는 시간을 단축할 수 있다.
또한, 상기 실시 형태에서는, 제0~제n 프로세서 코어(641)의 상위에 위치하는 병렬 처리 제어부(648)가 런 전개 메모리 s1의 액세스 관리를 행하고, 상이한 복수의 프로세서 코어(641)가 런 전개 메모리 s1의 동일 어드레스에 대해 데이터 재기록을 행하는 것을 방지하고 있다. 즉, 하나의 전개 스레드로 런 전개 메모리 s1의 어드레스 [m]에 기억되어 있는 값 s1[m]의 재기록을 행할 때에는, 다른 전개 스레드가 값 s1[m]을 재기록한 것을 일시적으로 금지하고 있다. 한편, 어드레스 [m] 이외의 런 전개 메모리 s1을 자유화하여 데이터 재기록을 허가하고 있다. 따라서, 런 전개 처리의 경합을 회피하면서 런 전개 처리를 고속으로 행하는 것이 가능해지고 있다.
그런데, 상기 실시 형태에서는 마스크 처리를 행하기 위해, 겹침 정보에 의거하는 논리 판정 처리로서 논리곱 판정을 행하고 있지만, 그 외의 처리, 예를 들면 검사 결과의 통합을 행하기 위해 논리합 판정 처리를 행할 수 있다. 또, 상기 논리 판정 처리로서 배타적 논리합 판정 처리를 행하는 것도 가능하고, 논리곱 판정 처리의 경우와 동일한 작용 효과가 얻어진다. 이하, 논리합 판정 처리 및 배타적 논리합 판정 처리에 대해서 도면을 참조하면서 설명한다.
도 9는 데이터 처리부에 의한 데이터 연산 동작의 다른 예를 모식적으로 나타내는 설명도이다. 여기에서는, 데이터 연산 동작의 이해를 돕기 위해, 이치화 처리부(63)에 의해 작성된 제1 화상 데이터로서 도 9 중의 부호 D1로 나타내는 1×6 화소의 제1 화상 데이터가 데이터 처리부(64)에 부여됨과 함께 제2 화상 데이터로서 도 9 중의 부호 D2로 나타내는 1×6 화소의 제2 화상 데이터가 데이터 처리부(64)에 부여된 경우를 예시하여 설명한다. 또한, 장황한 설명을 회피하기 위해, 제1 화상 데이터 D1은 도 4의 추출 화상 데이터 De와 동일하고, 제2 화상 데이터 D2는 도 4의 마스크 화상 데이터 Dm과 동일한 경우를 예시하고 있다. 따라서, 겹침 정보가 얻어질 때까지의 처리는 상기 실시 형태(도 4)와 동일하다. 이러한 점에 대해서는, 다음에 설명하는 배타적 논리합 판정 처리의 설명에 있어서도 동일하다.
도 10은 논리합 판정 처리의 내용을 나타내는 도이다. 이 논리합 판정 처리는, 겹침 정보 취득 처리를 실행한 후의 런 전개 메모리 s1의 각 어드레스에 기억되는 값에 의거하여 각 어드레스에 대응하는 화소가 논리합 처리에 의해 얻어지는 런 데이터의 시단 좌표 혹은 종단 좌표인지 아닌지를 판정하는 것이다. 본 실시 형태에서는, 논리합 판정 처리에 있어서도, 겹침 정보 취득 처리와 마찬가지로 1화소 1스레드로 판정 조작을 행하고 있다. 즉, 어드레스 공간의 m번째의 어드레스가 논리합 처리 후의 런의 시단 좌표 혹은 종단 좌표에 대응하는지 아닌지를 판정하는 판정 조작을 도 10에 나타내는 바와 같이 하나의 「판정 스레드」로 하고, 각 프로세서 코어(641)에 의해 판정 스레드가 병렬적으로 실행된다.
각 판정 스레드는 크게 나누어 시단 좌표의 판정과 종단 좌표의 판정을 순차적으로 실행한다. 시단 좌표의 판정은, 어드레스 공간의 m번째의 어드레스에 기억된 값(=s1[m])과 (m-1)번째의 어드레스에 기억된 값(=s1[m-1])에 의거하여 m번째의 어드레스가 논리 연산 후의 런의 시단 좌표에 대응하는지 아닌지를 판정하는 것이다. 보다 구체적으로는, 이하의 2개의 조건 (OR1), (OR2)
(OR1)…값 s1[m]이 1 이상이거나,
(OR2)…값 s1[m-1]이 「0」이다,
를 모두 만족할 때에, 시단 위치 메모리 ss의 어드레스 [m]에 기억되는 값 ss[m]을 「1」로 세트한다. 따라서, 도 9에 나타내는 구체예에서는, m=0, 2에 있어서 상기 조건 (OR1), (OR2)가 만족되기 때문에, 값 ss[0], ss[2]가 「1」이 되고, 그 이외의 값 ss[1], ss[3]~ss[5]는 「0」인 채로 유지된다.
또, 종단 좌표의 판정은, 어드레스 공간의 m번째의 어드레스에 기억된 값(=s1[m])과 (m+1)번째의 어드레스에 기억된 값(=s1[m+1])에 의거하여 m번째의 어드레스가 논리합 처리 후의 런의 종단 좌표에 대응하는지 아닌지를 판정하는 것이다. 보다 구체적으로는, 상기한 조건 (OR1)과 함께, 조건 (OR3), 즉,
(OR3)…값 s1[m+1]이 「0」이다,
를 만족할 때에, 종단 위치 메모리 se의 어드레스 [m]에 기억되는 값 se[m]를 「1」로 세트한다. 따라서, 도 9에 나타내는 구체예에서는, m=0, 5에 있어서만 상기 조건 (OR1), (OR3)이 만족되기 때문에, 값 se[0], se[5]가 「1」이 되고, 그 이외의 값 se[1]~se[4]는 「0」인 채로 유지된다.
이렇게 하여 제1 런 데이터군과 제2 런 데이터군의 논리합 처리 후에 있어서의 런의 시단 좌표 및 종단 좌표가 구해진다. 그에 이어서, 시단 위치 메모리 ss 및 종단 위치 메모리 se의 기억 정보에 의거하여 논리합 처리의 런 데이터 rd[m]을 취득한다. 예를 들면 도 9에 나타내는 구체예에서는, 값 ss[0], ss[2]가 「1」이며, 값 se[0], se[5]가 「1」이며, 그 이외의 값은 「0」이기 때문에 논리합 처리 후의 런 데이터 rd[m]은, 런 데이터 rd[0](시단 좌표 X0=3, 종단 좌표 X1=1, 행 인덱스 Y=0)과, 런 데이터 rd[1](시단 좌표 X0=2, 종단 좌표 X1=6, 행 인덱스 Y=0)가 된다. 그리고, 상기 런 데이터 rd[m]에 의거하여 논리합 화상 데이터를 작성하여, 출력한다(논리합 화상 데이터의 작성 처리).
도 11은 데이터 처리부에 의한 데이터 연산 동작의 다른 예를 모식적으로 나타내는 설명도이다. 또, 도 12는 배타적 논리합 판정 처리의 내용을 나타내는 도이다. 이 배타적 논리합 판정 처리는, 겹침 정보 취득 처리를 실행한 후의 런 전개 메모리 s1의 각 어드레스에 기억되는 값에 의거하여 각 어드레스에 대응하는 화소가 배타적 논리합 처리에 의해 얻어지는 런 데이터의 시단 좌표 혹은 종단 좌표인지 아닌지를 판정하는 것이다. 본 실시 형태에서는, 배타적 논리합 판정 처리에 있어서도, 겹침 정보 취득 처리와 마찬가지로 1화소 1스레드로 판정 조작을 행하고 있다. 즉, 어드레스 공간의 m번째의 어드레스가 배타적 논리합 처리 후의 런의 시단 좌표 혹은 종단 좌표에 대응하는지 아닌지를 판정하는 판정 조작을 도 12에 나타내는 바와 같이 하나의 「판정 스레드」로 하고, 각 프로세서 코어(641)에 의해 판정 스레드가 병렬적으로 실행된다.
각 판정 스레드는 크게 나누어 시단 좌표의 판정과 종단 좌표의 판정을 순차적으로 실행한다. 시단 좌표의 판정은, 어드레스 공간의 m번째의 어드레스에 기억된 값(=s1[m])과 (m-1)번째의 어드레스에 기억된 값(=s1[m-1])에 의거하여 m번째의 어드레스가 논리 연산 후의 런의 시단 좌표에 대응하는지 아닌지를 판정하는 것이다. 보다 구체적으로는, 이하의 2개의 조건 (X0R1), (X0R2)
(X0R1)…값 s1[m]이 홀수이거나,
(X0R2)…값 s1[m-1]이 짝수이다,
를 모두 만족할 때에, 시단 위치 메모리 ss의 어드레스 [m]에 기억되는 값 ss[m]을 「1」로 세트한다. 따라서, 도 11에 나타내는 구체예에서는, m=0, 2, 5에 있어서 상기 조건 (X0R1), (X0R2)가 만족되기 때문에, 값 ss[0], ss[2], ss[5]가 「1」이 되고, 그 이외의 값 ss[1], ss[3], ss[4]는 「0」인 채로 유지된다.
또, 종단 좌표의 판정은, 어드레스 공간의 m번째의 어드레스에 기억된 값(=s1[m])과 (m+1)번째의 어드레스에 기억된 값(=s1[m+1])에 의거하여 m번째의 어드레스가 배타적 논리합 처리 후의 런의 종단 좌표에 대응하는지 아닌지를 판정하는 것이다. 보다 구체적으로는, 상기한 조건 (X0R1)과 함께, 조건 (X0R3), 즉,
(X0R3)…값 s1[m+1]이 짝수이다,
를 만족할 때에, 종단 위치 메모리 se의 어드레스 [m]에 기억되는 값 se[m]을 「1」로 세트한다. 따라서, 도 11에 나타내는 구체예에서는, m=0, 2, 5에 있어서 상기 조건 (X0R1), (X0R3)이 만족되기 때문에, 값 se[0], se[2], se[5]가 「1」이 되고, 그 이외의 값 se[1], se[3], se[4]는 「0」인 채로 유지된다.
이렇게 하여 제1 런 데이터군과 제2 런 데이터군의 배타적 논리합 처리 후에 있어서의 런의 시단 좌표 및 종단 좌표가 구해진다. 그에 이어서, 시단 위치 메모리 ss 및 종단 위치 메모리 se의 기억 정보에 의거하여 배타적 논리합 처리 후의 런 데이터 rd[m]을 취득한다. 예를 들면 도 11에 나타내는 구체예에서는, 값 ss[0], ss[2], ss[5]가 「1」이고, 값 se[0], se[2], se[5]가 「1」이며, 그 이외의 값은 「0」이기 때문에 배타적 논리합 처리 후의 런 데이터 rd[m]은, 런 데이터 rd[0](시단 좌표 X0=0, 종단 좌표 X1=1, 행 인덱스 Y=0)과, 런 데이터 rd[1](시단 좌표 X0=2, 종단 좌표 X1=3, 행 인덱스 Y=0)과, 런 데이터 rd[2](시단 좌표 X0=5, 종단 좌표 X1=6, 행 인덱스 Y=0)가 된다. 그리고, 상기 런 데이터 rd[m]에 의거하여 배타적 논리합 화상 데이터를 작성하여, 출력한다(배타적 논리합 화상 데이터의 작성 처리).
또한, 본 발명은 상기한 실시 형태에 한정되는 것이 아니고, 그 취지를 일탈하지 않는 한에 있어서 상기 서술한 것 이외에 다양한 변경을 행하는 것이 가능하다. 예를 들면, 상기 실시 형태에서는, 런 전개 처리, 겹침 정보 취득 처리 및 논리 판정 처리(논리곱 판정, 논리합 판정, 배타적 논리합 판정)를 실행하기 위해 복수의 프로세서 코어(641)를 가지는 GPU를 이용하고 있지만, GPU 대신에 복수의 CPU를 설치하고, 각 CPU로 하나의 스레드를 실행하도록 구성해도 된다.
또, 상기 실시 형태에서는, 마스크 화상 데이터 Dm(도 4)이나 제2 화상 데이터 D2(도 9, 도 11)를 데이터 처리부(65)에서 런 렝스화하여 런 데이터군을 얻고 있지만, 이들 화상 데이터 Dm, D2에 대응하는 런 데이터군을 미리 기억부(7)에 기억시켜 두고, 상기 런 데이터군을 기억부(7)로부터 데이터 처리부(65)에 부여하도록 구성해도 된다.
또, 상기 실시 형태에서는, 2개의 런 데이터군에 대해서 논리 연산을 실시하고 있지만, 3개 이상의 런 데이터군에 대해서도 본 발명에 관련된, 데이터 연산 방법을 적용할 수 있다. 이와 같이 3개 이상의 런 데이터군에 대해서 논리 연산하는 경우, 본 발명의 우위성이 더 증대한다. 즉, 일본국 특허공개 평7-203178호 공보에 기재된 발명에서는 런 데이터군이 3개 이상이 되면, 접속 판정의 복잡함이 비약적으로 상승되어, 런 데이터군의 증대에 수반하는 처리 시간의 증가는 불가피하다. 이에 반해, 본 발명에서는, 런 데이터군의 증대에 의해 전개해야 할 런 데이터의 개수가 증가하여 런 전개 처리에 필요로 하는 시간은 2개의 런 데이터군의 경우보다 길어질 가능성은 있다. 그러나, 겹침 정보 취득 처리 및 논리 판정 처리(논리곱 판정, 논리합 판정, 배타적 논리합 판정)에 필요로 하는 시간은 런 데이터군의 개수에 영향을 받지 않는다. 따라서, 런 데이터의 개수 증대에도 불구하고, 데이터 연산 처리를 단시간에 행할 수 있다.
또한, 상기 실시 형태에서는, 복수의 런 데이터군을 논리 연산하는 데이터 연산 기술을 결함 검사 장치에 적용하고 있지만, 본 발명에 관련된, 데이터 연산 방법 및 장치에 적용 대상은 이것에 한정되는 것이 아니고, 상기 데이터 연산 기술을 이용하는 장치 전반에 적용할 수 있다.
이 발명은, 복수의 런 데이터군의 논리 연산을 행하는 데이터 연산 기술에 대해 적합하게 적용할 수 있다.
1 검사 시스템 5 화상 취득부
6 화상 처리부 21 촬상부
62 차분 추출부(화상 추출부) 63 이치화 처리부
64 데이터 처리부(데이터 연산 장치)
641 프로세서 코어 642 런 전개 처리부
643 겹침 정보 취득 처리부 644 논리 판정 처리부
645 기억부 647 런 생성부
648 병렬 처리 제어부 649 데이터 초기 설정부

Claims (13)

  1. 이치 화상 데이터를 런 렝스화하여 얻어지는 적어도 1개 이상의 런 데이터를 런 데이터군으로 하고, 서로 상이한 복수의 런 데이터군의 논리 연산을 행하는 데이터 연산 방법으로서,
    런 데이터의 시단 좌표에 대응하는 런 전개 메모리의 어드레스에 기억되어 있는 값에 기정치(旣定値)를 가산하는 한편 상기 런 데이터의 종단 좌표에 대응하는 상기 런 전개 메모리의 어드레스에 기억되어 있는 값으로부터 상기 기정치를 감산하는 데이터 전개 조작을 상기 런 데이터마다 실행함으로써, 상기 복수의 런 데이터를 상기 런 전개 메모리의 어드레스 공간에 전개하여 기억시키는 런 전개 공정과,
    상기 어드레스 공간의 m번째의 어드레스에 대해 상기 런 전개 공정을 완료한 시점에서 상기 어드레스 공간의 0번째 내지 상기 m번째의 어드레스에 각각 기억된 값의 총합을 기입하는, 스캔 조작을 상기 어드레스 공간의 각 어드레스에 대해서 실행하여 상기 복수의 런 데이터의 겹침 상태를 나타내는 겹침 정보를 취득하는 겹침 정보 취득 공정과,
    상기 겹침 정보에 의거하여 상기 복수의 런 데이터군의 논리곱, 논리합 및 배타적 논리합 중 적어도 1개를 구하는 논리 연산 공정을 구비하는 것을 특징으로 하는 데이터 연산 방법.
  2. 청구항 1에 있어서,
    상기 복수의 런 데이터를 복수 세트로 분할함과 함께 각 세트에 대해 실행되는 데이터 전개 조작을 전개 스레드로 하고,
    배타 제어 아래 상기 복수의 전개 스레드 중 하나의 전개 스레드에 의한 상기 기정치의 가감산을 허가함과 함께 상기 하나의 전개 스레드에 의한 가감산의 대상이 되는 어드레스에 대한 다른 전개 스레드에 의한 액세스를 금지하면서 상기 복수의 전개 스레드를 병렬하여 실행하는, 데이터 연산 방법.
  3. 청구항 2에 있어서,
    상기 전개 스레드의 개수가 상기 런 데이터의 개수와 일치하는, 데이터 연산 방법.
  4. 청구항 2 또는 청구항 3에 있어서,
    상기 런 전개 공정에서는, 상기 하나의 전개 스레드에 의한 가감산의 대상이 되는 어드레스 이외의 어드레스에 대해, 다른 전개 스레드에 의한 액세스를 허가하는, 데이터 연산 방법.
  5. 청구항 1에 있어서,
    상기 어드레스 공간의 m번째의 어드레스에 기억된 값과 (m-1)번째의 어드레스에 기억된 값에 의거하여 상기 m번째의 어드레스가 논리 연산 후의 런의 시단 좌표에 대응하는지 아닌지를 판정하고, m번째의 어드레스에 기억된 값과 (m+1)번째의 어드레스에 기억된 값에 의거하여 상기 m번째의 어드레스가 논리 연산 후의 런의 종단 좌표에 대응하는지 아닌지를 판정하는 조작을 판정 조작으로 하고,
    상기 논리 연산 공정은, 상기 어드레스 공간의 각 어드레스에 대해서 상기 판정 조작을 실행하는 공정인, 데이터 연산 방법.
  6. 청구항 5에 있어서,
    상기 어드레스 공간을 구성하는 복수의 어드레스를 복수 세트로 분할함과 함께 각 세트에 대한 판정 조작을 판정 스레드로 하고, 상기 복수의 판정 스레드를 병렬하여 실행하는, 데이터 연산 방법.
  7. 청구항 6에 있어서,
    상기 논리 연산 공정에서는, 상기 판정 스레드의 개수가 상기 어드레스 공간의 상기 어드레스의 개수와 일치하고, 각 어드레스에 대해 상기 판정 스레드가 실행되는, 데이터 연산 방법.
  8. 청구항 5에 있어서,
    상기 기정치는 1인, 데이터 연산 방법.
  9. 청구항 8에 있어서,
    상기 런 데이터군의 개수를 N으로 했을 때,
    상기 논리 연산 공정에서는,
    상기 어드레스 공간의 m번째의 어드레스에 기억된 값이 N이며 (m-1)번째의 어드레스에 기억된 값이 (N-1) 이하일 때에 상기 m번째의 어드레스가 논리 연산 후의 런의 시단 좌표에 대응한다고 판정하고, 상기 어드레스 공간의 m번째의 어드레스에 기억된 값이 N이며, (m+1)번째의 어드레스에 기억된 값이 (N-1) 이하일 때에 상기 m번째의 어드레스가 논리 연산 후의 런의 종단 좌표에 대응한다고 판정하는 조작을 상기 판정 조작으로 하고,
    상기 판정 조작을 상기 어드레스 공간의 각 어드레스에 대해서 실행하여 상기 복수의 런 데이터의 논리곱을 구하는, 데이터 연산 방법.
  10. 청구항 8에 있어서,
    상기 논리 연산 공정에서는,
    상기 어드레스 공간의 m번째의 어드레스에 기억된 값이 1 이상이며 (m-1)번째의 어드레스에 기억된 값이 0일 때에 상기 m번째의 어드레스가 논리 연산 후의 런의 시단 좌표에 대응한다고 판정하고, 상기 어드레스 공간의 m번째의 어드레스에 기억된 값이 1 이상이며 (m+1)번째의 어드레스에 기억된 값이 0일 때에 상기 m번째의 어드레스가 논리 연산 후의 런의 종단 좌표에 대응한다고 판정하는 조작을 상기 판정 조작으로 하고,
    상기 판정 조작을 상기 어드레스 공간의 각 어드레스에 대해서 실행하여 상기 복수의 런 데이터의 논리합을 구하는, 데이터 연산 방법.
  11. 청구항 8 또는 청구항 9에 있어서,
    상기 논리 연산 공정에서는,
    상기 어드레스 공간의 m번째의 어드레스에 기억된 값이 홀수이며 (m-1)번째의 어드레스에 기억된 값이 짝수일 때에 상기 m번째의 어드레스가 논리 연산 후의 런의 시단 좌표에 대응한다고 판정하고, 상기 어드레스 공간의 m번째의 어드레스에 기억된 값이 홀수이며 (m+1)번째의 어드레스에 기억된 값이 짝수일 때에 상기 m번째의 어드레스가 논리 연산 후의 런의 종단 좌표에 대응한다고 판정하는 조작을 상기 판정 조작으로 하고,
    상기 판정 조작을 상기 어드레스 공간의 각 어드레스에 대해서 실행하여 상기 복수의 런 데이터의 배타적 논리합을 구하는, 데이터 연산 방법.
  12. 이치 화상 데이터를 런 렝스화하여 얻어지는 적어도 1개 이상의 런 데이터를 런 데이터군으로 하고, 서로 상이한 복수의 런 데이터군의 논리 연산을 행하는 데이터 연산 장치로서,
    상기 런 데이터의 시단 좌표 및 종단 좌표에 관련하는 값을 기억하는 런 전개 메모리와,
    런 데이터의 시단 좌표에 대응하는 런 전개 메모리의 어드레스에 기억되어 있는 값에 기정치를 가산하는 한편 상기 런 데이터의 종단 좌표에 대응하는 상기 런 전개 메모리의 어드레스에 기억되어 있는 값으로부터 상기 기정치를 감산하는 데이터 전개 조작을 상기 런 데이터마다 실행하여 상기 복수의 런 데이터를 상기 런 전개 메모리의 어드레스 공간에 전개하는 런 전개 처리부와,
    상기 복수의 런 데이터가 전개된 상기 런 전개 메모리에 있어서의 상기 어드레스 공간의 m번째의 어드레스에 대해 상기 어드레스 공간의 0번째 내지 상기 m번째의 어드레스에 각각 기억된 값의 총합을 기입하는, 스캔 조작을 상기 어드레스 공간의 각 어드레스에 대해서 실행하여 상기 복수의 런 데이터의 겹침 상태를 나타내는 겹침 정보를 취득하는 겹침 정보 취득부와,
    상기 겹침 정보에 의거하여 상기 복수의 런 데이터군의 논리곱, 논리합 및 배타적 논리합 중 적어도 1개를 구하는 논리 연산부를 구비하는 것을 특징으로 하는 데이터 연산 장치.
  13. 검사 대상 화상을 취득하는 화상 취득부와,
    상기 검사 대상 화상을 검사하여 결함 부위가 포함되는 추출 화상을 추출하는 화상 추출부와,
    상기 추출 화상을 행마다 런 렝스화하여 얻어지는 적어도 1개 이상의 런 데이터를 가지는 추출 런 데이터군과, 마스크 화상을 행마다 런 렝스화하여 얻어지는 적어도 1개 이상의 런 데이터를 가지는 마스크 런 데이터군의 논리 연산을 행함으로써, 상기 추출 화상 중 상기 결함 부위 이외의 부위를 상기 마스크 화상에 의해 마스크 처리하여 결함 화상 데이터를 얻는 데이터 처리부를 구비하고,
    상기 데이터 처리부는,
    상기 런 데이터의 시단 좌표 및 종단 좌표에 관련하는 값을 기억하는 런 전개 메모리와,
    런 데이터의 시단 좌표에 대응하는 런 전개 메모리의 어드레스에 기억되어 있는 값에 기정치를 가산하는 한편 상기 런 데이터의 종단 좌표에 대응하는 상기 런 전개 메모리의 어드레스에 기억되어 있는 값으로부터 상기 기정치를 감산하는 데이터 전개 조작을 상기 런 데이터마다 실행하여 상기 복수의 런 데이터를 상기 런 전개 메모리의 어드레스 공간에 전개하는 런 전개 처리부와,
    상기 복수의 런 데이터가 전개된 상기 런 전개 메모리에 있어서의 상기 어드레스 공간의 m번째의 어드레스에 대해 상기 어드레스 공간의 0번째 내지 상기 m번째의 어드레스에 각각 기억된 값의 총합을 기입하는, 스캔 조작을 상기 어드레스 공간의 각 어드레스에 대해서 실행하여 상기 복수의 런 데이터의 겹침 상태를 나타내는 겹침 정보를 취득하는 겹침 정보 취득부와,
    상기 겹침 정보에 의거하여 상기 추출 런 데이터군 및 상기 마스크 런 데이터군의 논리곱을 연산하여 상기 결함 부위 이외의 부위를 제거하는 논리 연산 처리부를 가지는 것을 특징으로 하는 결함 검사 장치.
KR1020140164365A 2013-11-28 2014-11-24 데이터 연산 방법, 데이터 연산 장치 및 결함 검사 장치 KR101630078B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2013-246008 2013-11-28
JP2013246008A JP2015103226A (ja) 2013-11-28 2013-11-28 データ演算方法、データ演算装置および欠陥検査装置

Publications (2)

Publication Number Publication Date
KR20150062131A true KR20150062131A (ko) 2015-06-05
KR101630078B1 KR101630078B1 (ko) 2016-06-13

Family

ID=53313267

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140164365A KR101630078B1 (ko) 2013-11-28 2014-11-24 데이터 연산 방법, 데이터 연산 장치 및 결함 검사 장치

Country Status (4)

Country Link
JP (1) JP2015103226A (ko)
KR (1) KR101630078B1 (ko)
CN (1) CN104677919B (ko)
TW (1) TWI532015B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105608713A (zh) * 2016-01-04 2016-05-25 湖南大学 一种基于四叉树的二值图像编码与高效逻辑运算方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111611178B (zh) * 2019-02-26 2023-05-26 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003099770A (ja) * 2001-09-25 2003-04-04 Dainippon Screen Mfg Co Ltd データ変換装置およびその方法、並びに当該方法を用いたプログラム
KR20080089175A (ko) * 2007-03-30 2008-10-06 다이니폰 스크린 세이조우 가부시키가이샤 결함 검사 장치, 도형 묘화 장치, 도형 묘화 시스템 및결함 검사 프로그램을 기억한 기록 매체

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5981961A (ja) * 1982-11-02 1984-05-11 Hitachi Ltd 画像処理方法
JPH06251164A (ja) * 1993-02-24 1994-09-09 Toshiba Corp 文字パターン生成装置
JPH07203178A (ja) * 1993-12-28 1995-08-04 Meidensha Corp 画像データ処理方法
JPH09231356A (ja) * 1996-02-21 1997-09-05 Canon Inc 画像処理方法及びその装置
JP3964267B2 (ja) * 2002-06-04 2007-08-22 大日本スクリーン製造株式会社 欠陥検出装置、欠陥検出方法、およびプログラム
JP2005227054A (ja) * 2004-02-12 2005-08-25 Jfe Steel Kk 疵種判別ロジック自動設計方法および装置ならびに表面欠陥計
US8520007B2 (en) * 2008-01-15 2013-08-27 Mitsubishi Electronic Corporation Graphic drawing device and graphic drawing method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003099770A (ja) * 2001-09-25 2003-04-04 Dainippon Screen Mfg Co Ltd データ変換装置およびその方法、並びに当該方法を用いたプログラム
KR20080089175A (ko) * 2007-03-30 2008-10-06 다이니폰 스크린 세이조우 가부시키가이샤 결함 검사 장치, 도형 묘화 장치, 도형 묘화 시스템 및결함 검사 프로그램을 기억한 기록 매체

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105608713A (zh) * 2016-01-04 2016-05-25 湖南大学 一种基于四叉树的二值图像编码与高效逻辑运算方法
CN105608713B (zh) * 2016-01-04 2018-11-16 湖南大学 一种基于四叉树的二值图像编码与高效逻辑运算方法

Also Published As

Publication number Publication date
KR101630078B1 (ko) 2016-06-13
TW201520979A (zh) 2015-06-01
JP2015103226A (ja) 2015-06-04
TWI532015B (zh) 2016-05-01
CN104677919B (zh) 2017-10-10
CN104677919A (zh) 2015-06-03

Similar Documents

Publication Publication Date Title
CN107315011B (zh) 图像处理装置、图像处理方法及存储介质
JP2015511310A (ja) ウエハ検査のためのセグメント化
US8965132B2 (en) Edge tracing with hysteresis thresholding
US11847766B2 (en) Method and device for detecting bright spots on image, and computer program product
JP2008277730A5 (ko)
CN111444964A (zh) 一种基于自适应roi划分的多目标快速图像匹配方法
KR101630078B1 (ko) 데이터 연산 방법, 데이터 연산 장치 및 결함 검사 장치
JP2006275612A (ja) ランドパターン検査方法及び検査装置
US20150117769A1 (en) Blob-Encoding
KR101521725B1 (ko) 라벨링 방법, 라벨링 장치 및 결함 검사 장치
CN105069780A (zh) 一种基于SoPC的SAR图像水域检测实现方法
JP2710527B2 (ja) 周期性パターンの検査装置
JP6460660B2 (ja) データ演算装置、データ演算方法および欠陥検査装置
JP6173088B2 (ja) 検査装置、検査方法、プログラム及び記録媒体
JP6897431B2 (ja) 画像処理装置、設定支援方法、および設定支援プログラム
Lahdenoja et al. Extracting local binary patterns with MIPA4k vision processor
JP6175904B2 (ja) 照合対象抽出システム、照合対象抽出方法、照合対象抽出プログラム
JP2003203218A (ja) 外観検査装置および方法
JPWO2020158630A1 (ja) 検出装置、学習器、コンピュータプログラム、検出方法及び学習器の生成方法
JP2008186150A (ja) テンプレートマッチング装置及び方法
JP2008026072A (ja) 欠陥検査装置及び欠陥検査方法
JPS62212506A (ja) 欠陥検出方法
KR20230112520A (ko) 결함 검출 시스템 및 결함 검출 방법
KR20070006424A (ko) 디스플레이 수단의 메탈 마스크 검사 방법
JP4013695B2 (ja) 画像処理方法及び画像処理装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190515

Year of fee payment: 4