본문 바로가기
펄스 광원의 입사광이 반투명 수지 커버 아래 미세 크랙을 비추고, 먼저 도착한 직반사 광자만 대물렌즈를 거쳐 게이트가 열린 SPAD 픽셀 어레이에 계수되는 저조도 검사 구성도
광학·렌즈,  엣지 AI

광량이 모자랄 때 SPAD 센서는 노출 대신 광자를 센다

OPTICS

노출을 늘리는 대신 광자를 세면 읽기 잡음은 사라지지만, 256칸 센서의 시야는 4 mm 남짓으로 줄고 타임 게이팅은 수지 속 20 mm 넘게 돈 빛만 잘라 냅니다.

반투명 수지 커버 아래의 미세 크랙을 예로, 일반 CMOS와 SPAD 센서의 잡음과 시야와 게이트 시간을 같은 숫자로 비교했습니다.

읽는 시간 약 15분

광량이 모자라면 노출 시간을 늘리고, 그래도 모자라면 게인을 올리고, 마지막에 조명을 한 단 밝게 바꿉니다. 그럴듯한 순서이고 대개는 통합니다. 그런데 반투명 수지 커버 아래의 폭 30 μm 크랙처럼 신호가 화소당 광자 몇 개로 줄어든 자리에서는 세 방법이 모두 막힙니다. 노출은 움직임 번짐을, 게인은 읽기 잡음1을 신호와 함께 키우고, 조명을 밝히면 커버 속에서 흩어진 빛도 함께 밝아져 크랙의 가장자리를 덮기 때문입니다.

이 커버는 빛을 일부 통과시키면서 안에서 흩는 반투명 수지라, 표면에서 곧장 돌아오는 빛과 안을 돌다 나온 빛이 같은 화소에 섞입니다. 흩어진 빛이 배경을 뿌옇게 밝히면 크랙 가장자리의 콘트라스트가 무너지고, 그 크랙은 검사를 통과해 조립된 뒤에야 깨짐으로 돌아옵니다.

단일광자 애벌란시 다이오드(single-photon avalanche diode, SPAD)2 센서는 이 문제를 다른 축에서 건드립니다. 광자 하나하나를 디지털 펄스로 세어 읽기 잡음을 없애고, 펄스 조명에 맞춰 정해진 시간 구간에 도착한 광자만 세는 타임 게이팅3으로 늦게 도착한 산란광을 버립니다. 제가 따져 보려는 것은 그 두 가지가 숫자로 얼마만큼의 이득이고, 대가로 무엇을 내주는지입니다.

노출을 늘리면 번짐도 같이 늘어난다

노출을 늘리는 일은 광자를 더 모으는 일이지만, 그동안 부품이 움직이면 모은 광자가 옆 화소로 번집니다. 50 μm 이물을 3칸에 담는 16.7 μm/px에서 부품이 초속 10 mm로 움직인다면(가정), 번짐을 한 칸 안에 두는 노출은 1.67 ms가 한계입니다. 노출을 두 배로 늘리면 광자가 두 배가 되는 만큼 번짐도 두 칸으로 늘어요.

번짐을 피하려고 짧은 프레임을 여러 장 찍어 더하는 방법도 있습니다. 일반 CMOS에서는 이 방법에 값이 붙는데, 프레임을 읽을 때마다 읽기 잡음이 한 번씩 더해지기 때문입니다. 화소에 광자 100개가 온다고 두고 양자 효율 0.6과 읽기 잡음 2 e⁻로 계산하면, 한 번에 길게 찍을 때 신호 대 잡음비가 7.5이고 같은 광자를 30장으로 나눠 찍어 더하면 4.5로 떨어집니다. 30번 읽으며 쌓인 잡음이 신호 60 e⁻에서 오는 샷 노이즈4보다 커지는 탓입니다.

일반 CMOS는 길게 찍으면 번지고 나눠 찍으면 잡음이 쌓이는 갈림길에 섭니다. 이 갈림길을 비켜 가는 쪽이 읽기 잡음이 없는 계수기입니다.

읽기 잡음이 없는 계수기는 짧은 프레임을 그냥 더한다

SPAD 화소는 광자 하나가 일으킨 애벌란시 항복으로 디지털 펄스를 내고, 측정량은 전하보다 펄스의 개수입니다. 읽는 과정에서 아날로그 잡음이 붙지 않으니 1 ms 프레임 30장을 더해도 30 ms 한 장과 통계가 같습니다. 다만 광자를 펄스로 바꾸는 비율인 광자 검출 효율5이 일반 CMOS의 양자 효율보다 낮은 편이라, 이 값을 0.3으로 두면 같은 광자 100개에서 신호 대 잡음비는 5.5입니다.

세 숫자를 비교하면 SPAD가 이기는 자리가 계산됩니다. 30장으로 나눠 찍는 조건에서 SPAD가 일반 CMOS를 앞서는 것은 프레임당 화소에 오는 광자가 6.7개 아래일 때이고, 광자 검출 효율이 0.5라면 그 경계가 33개로 올라갑니다. 한 번에 길게 찍을 수 있는 정지 부품이라면 일반 CMOS의 7.5를 넘기 어렵습니다. 제 판단으로 SPAD의 이득은 감도보다, 번짐 없이 짧게 찍은 프레임을 잡음 손해 없이 더하는 데 있습니다.

읽기 잡음 대신 SPAD에는 빛이 없어도 생기는 펄스, 암계수6가 있습니다. 게이트를 쓰면 이것도 줄어서, 20 MHz로 펄스를 쏘고 매번 1 ns만 문을 열면 문이 열린 시간이 전체의 2 %라 암계수도 50분의 1로 줄어요. 반대로 빛이 많으면 SPAD가 먼저 막힙니다. 한 번 펄스를 낸 화소는 잠시 다음 광자를 받지 못해서 펄스당 평균 0.1개만 와도 4.8 %를 놓치는 파일업7이 생기고, 20 MHz라면 초당 190만 계수 언저리가 손실 5 %의 한계입니다.

6.7개

30장으로 나눠 찍을 때 SPAD가 앞서는 프레임당 광자 수 (검출 효율 0.3 가정)

4.8%

펄스당 광자 0.1개에서 파일업으로 놓치는 비율

2%

20 MHz, 1 ns 게이트에서 문이 열린 시간

세 숫자는 SPAD가 어둠 쪽에 맞춰진 센서라는 사실을 양쪽에서 보여 줍니다. 광자가 프레임당 한 자릿수일 때 이기고, 펄스당 0.1개를 넘으면 계수를 잃습니다. 그래서 조명을 밝혀 문제를 푸는 방법과는 같이 쓰기 어렵습니다.

256칸이 정하는 시야는 4.27 mm

센서 쪽 소식도 있습니다. 에든버러의 Singular Photonics는 2026년 9월 10일 SPAD 이미지 센서 Litavis를 발표했습니다. 회사 발표에 따르면 256 × 256 px 광자 계수 영상을 연속으로 내면서, 64 × 64 매크로픽셀8 격자에서 피코초 분해능의 광자 시각을 함께 기록하고, 세기와 타이밍과 히스토그램 모드를 동시에 돌립니다. 화소 간격과 광자 검출 효율과 암계수는 그 발표에 나와 있지 않아서, 앞의 계산에 넣은 값은 모두 가정입니다.

해상도는 숫자 그대로 시야를 정합니다. 50 μm 이물을 3칸에 담으려면 16.7 μm/px라 256칸의 시야는 4.27 mm이고, 폭 30 μm 크랙을 3칸에 담으려면 10 μm/px, 시야 2.56 mm까지 줄어듭니다. 길이 200 μm 스크래치라면 시야가 17.1 mm까지 넓어집니다. 40 × 40 mm 커버를 4.27 mm 시야로 10 %씩 겹쳐 덮으면 가로세로 11장씩 121장이 필요해서, 이 센서는 판 전체를 훑는 카메라보다 의심 자리를 다시 보는 두 번째 눈에 어울립니다.

타이밍 격자는 그보다 거칩니다. 64 × 64 매크로픽셀은 화소 4 × 4개를 한 칸으로 묶으니, 16.7 μm/px에서 시각 정보는 66.7 μm 간격으로만 나옵니다. 시각으로 산란을 가르는 판정은 이물 하나보다 굵은 격자에서 이뤄진다는 뜻이에요. 렌즈와 WD9는 화소 간격을 알아야 정해지는데, 간격을 10 μm로 두면(가정) 배율 0.6배라 50 mm 렌즈로는 WD가 약 133 mm, 75 mm 렌즈로는 약 200 mm입니다. 펄스 광원과 동기 배선이 렌즈 앞에 들어갈 자리를 생각하면 저는 75 mm 쪽을 고릅니다.

100 ps가 가르는 길이는 수지 속 20 mm

타임 게이팅의 이득은 빛의 속도로 계산합니다. 빛은 공기 중에서 1 ps에 0.3 mm를 가고, 굴절률 1.5인 수지 안에서는 0.2 mm를 갑니다. 두께 2 mm 커버의 뒷면까지 갔다 돌아오는 빛은 앞면 반사보다 20 ps 늦게 도착합니다. 펄스 폭과 센서의 타이밍 지터10를 합한 시간 분해능을 100 ps로 두면(가정), 게이트로 가를 수 있는 빛은 수지 안에서 앞면 반사보다 20 mm 넘게 더 돌다 나온 빛뿐입니다. 그림은 이 상황을 광자의 도착 시각으로 그린 개념도입니다.

펄스 조명 직후 게이트 구간에 도착한 직반사 광자만 계수하고 늦게 도착한 산란 광자는 버리는 SPAD 타임 게이팅 원리 그래프
게이트 안의 날카로운 직반사 봉우리와, 게이트 안까지 밀고 들어온 넓은 산란 꼬리의 앞부분을 함께 보면 됩니다.

날카로운 직반사 봉우리는 게이트 안에서 세어지고, 넓은 산란 꼬리 가운데 게이트를 지나 늦게 온 부분은 버려집니다. 문제는 꼬리의 앞부분입니다. 커버 안에서 몇 mm만 돌고 나온 빛은 직반사와 100 ps 안쪽으로 붙어 도착해 게이트 안에 함께 들어오고, 크랙 둘레를 뿌옇게 만드는 빛의 상당 부분이 이렇게 짧게 돈 빛일 가능성이 있습니다. 이 빛까지 자르려면 시간 분해능이 20 ps 언저리로 내려가야 하는데, 펄스 폭과 지터를 함께 그만큼 줄여야 하는 조건이라 장비 선택이 크게 좁아집니다.

그래서 저는 타임 게이팅을 산란을 지우는 도구보다 산란의 늦은 꼬리를 덜어 내는 도구로 봅니다. 수지 안에서 수 cm씩 도는 빛이 많은 두꺼운 반투명 부품이나 형광처럼 수 ns 늦게 오는 빛을 가를 때는 이득이 크고, 2 mm 커버 표면의 크랙에서는 이득이 작게 나오기 쉽습니다. 그 크기는 수지의 산란 특성과 두께에 달려 있어 샘플 테스트 전 확언 불가입니다.

광자는 칩 안에서 세어야 데이터가 버틴다

광자를 하나하나 시각과 함께 밖으로 내보내면 데이터 경로가 먼저 무너집니다. 256 × 256 화소가 초당 1,000개씩만 세어도 광자마다 16비트 시각을 붙이면 초당 1.05 Gbit로 기가비트 이더넷 한 줄을 넘기고, 초당 10만 개라면 105 Gbit입니다. 같은 정보를 64 × 64 매크로픽셀마다 32칸짜리 시각 히스토그램11으로 접어 초당 30번 내보내면 63 Mbit로 줄어요.

Singular Photonics가 광자 사건을 칩 위에서 바로 처리해 밖으로 보낼 원시 데이터를 크게 줄인다고 설명하는 대목이 이 계산과 맞닿아 있습니다. 그래서 SPAD 도입 검토는 광학 검토이면서 데이터 경로 검토입니다. 게이트를 좁히면 계수가 줄어 대역폭은 내려가지만, 같은 통계를 얻으려면 프레임을 더 쌓아야 해서 검사 시간은 오히려 늘어나기도 합니다. 이 교환을 회로에서 다루는 기법은 특허에도 보입니다.

특허 번호명칭권리자우선일 · 등록일
US 10,620,300 B2SPAD array with gated histogram constructionApple Inc.2015-08-20 · 2020-04-14
US 10,801,886 B2SPAD detector having modulated sensitivityApple Inc.2017-01-25 · 2020-10-13

앞의 특허는 화소마다 처리 회로를 붙여 광자를 받을 수 있는 시간 창을 조절하고, 그 창을 먼저 훑어 화소별 위치를 찾은 다음 고정해 도착 시각 히스토그램을 촘촘하게 쌓는 구조입니다. 뒤의 특허는 빛 펄스 구간 안에서 SPAD의 감도를 배열 전체나 구역별로 바꾸는데, 시간 폭이 서로 다른 히스토그램 칸이나 소광 트랜지스터의 신호로 회복 시간을 바꾸는 방법을 담고 있습니다. 게이트 지연을 훑어 시간 분포를 얻는 방식을 자체 구현한다면, 청구항 범위는 별도 검토가 필요합니다.

크랙 하나를 위한 저조도 셋업 표

앞의 숫자를 한 표에 모으면, 저조도 검사의 사양이 밝기보다 광자 수와 시간으로 적힌다는 점이 드러납니다. 크랙과 이물과 스크래치가 각자 다른 시야를 요구한다는 점도 표의 첫 줄에 들어갑니다.

항목기준값조건 · 근거풀어 쓰면
① 최소 불량 크기 (μm)크랙 폭 30 μm, 이물 직경 50 μm, 스크래치 길이 200 μm3칸 기준 10 · 16.7 · 66.7 μm/px, 256칸 시야 2.56 · 4.27 · 17.1 mm결함마다 시야가 따로 정해진다
② 조명펄스 광원(20 MHz, 게이트와 동기), 게이트 1 ns, 펄스당 광자 0.1개 이하시간 분해능 100 ps(펄스 폭 + 지터, 가정) = 수지 속 20 mm. 파일업 4.8 %, 게이트 듀티 2 %늦게 온 빛만 버릴 수 있다
② 센서 · 렌즈 · WDSPAD 256 × 256 px, 타이밍 64 × 64 매크로픽셀(Litavis 공개 사양), 화소 간격 10 μm 가정75 mm 렌즈, 배율 0.6배, WD 약 200 mm 확보 필요(얇은 렌즈 근사), 화소 간격 확인 뒤 재계산화소 간격을 알아야 렌즈가 정해진다
③ 알고리즘 파라미터1 ms 프레임 30장 누적, 게이트 지연 스윕으로 시간 분포 취득, 암계수 맵 차감(운전 온도에서 취득)판정선 3σ(√N 기반, 정상품 30장으로 재추정), 칩 안 히스토그램 출력 63 Mbit/s짧게 찍어 잡음 없이 더한다

이 표에서 가장 먼저 확인할 칸은 ②의 시간 분해능입니다. 100 ps로는 수지 속 20 mm보다 짧게 돈 빛을 가를 수 없어서, 2 mm 커버의 크랙이라면 게이트가 주는 이득이 표의 다른 칸이 기대하게 하는 것보다 작게 나올 공산이 큽니다. 시야 2.56 mm라는 숫자도 같은 무게로 봐야 합니다. 커버 한 장을 다 보려면 수백 번 옮겨 찍어야 하니, 저라면 이 센서를 일반 카메라가 찾은 후보 자리를 다시 보는 역할로 들입니다.

반대 선택이 나은 자리도 분명합니다. 광량이 충분한 일반 조명에서는 SPAD가 파일업으로 먼저 막혀서 해상도와 값 모두에서 일반 CMOS 글로벌 셔터가 낫고, 수 MP 해상도가 필요한 검사도 256 × 256 px로는 맞지 않습니다. 산란이 거의 없는 불투명한 무광 표면은 시간으로 자를 빛이 없으니 각도 조명이나 편광이 더 경제적입니다. 어느 쪽이 맞는지는 재질의 산란 시간 분포에 달려 있어 샘플 테스트 전 확언 불가입니다.

광학계를 꾸리는 일은 비전 엔지니어의 몫이지만, 이 표의 시간 칸은 조명 드라이버와 센서를 고르는 쪽이 함께 정해야 합니다. 펄스 폭과 지터를 합한 100 ps라는 가정이 실제로 몇 ps인지가 게이트의 이득을 정하기 때문입니다. 견적을 비교하는 쪽에서는 광자 계수라는 이름보다, 몇 mm 시야로 몇 번을 옮겨 찍는지가 택트를 정한다는 점부터 따져 보시길 권합니다. 이 글은 기술 설명이며 투자 권유가 아닙니다. 자세한 내용은 면책조항을 참고하세요.

현장 노트

저조도 구간에 SPAD를 들인다면 저는 게이트 폭을 정하기 전에 실제 커버로 게이트 지연을 100 ps 간격으로 훑어, 직반사 봉우리와 산란 꼬리가 몇 ps에서 갈리는지를 먼저 봅니다. 봉우리 뒤 200 ps 안쪽에 산란이 몰려 있다면 게이트로 얻을 몫이 작다고 보고, 프레임 누적과 다른 조명 각도를 함께 검토합니다. 암계수 맵은 운전 온도에서 다시 찍고, 펄스당 광자가 0.1개를 넘지 않는지는 계수율로 확인합니다.

현장 체크포인트

게이트 스윕과 암계수 맵을 확인했다면 셋업을 마치기 전에 아래를 짚어 봅니다.

  • 렌즈에서 커버까지 WD 약 200 mm(75 mm 렌즈, 화소 간격 10 μm 가정)가 펄스 광원 하우징과 동기 배선을 피해 실제로 확보되는가? (화소 간격을 확인해 다시 계산했는지)
  • 목표 결함이 3칸 이상 담기는 시야인가? (크랙 30 μm면 2.56 mm, 이물 50 μm면 4.27 mm)
  • 화소당 프레임당 광자 수를 조명 출력과 노출과 조리개에서 계산했는가? (lx 값만으로는 계수 통계를 알 수 없다)
  • 펄스 폭과 센서 지터를 합한 시간 분해능을 확인했는가? (100 ps면 수지 속 20 mm보다 짧게 돈 빛은 가르지 못한다)
  • 펄스당 광자 수가 0.1개 아래인가? (넘으면 파일업으로 계수를 잃는다)
  • 암계수 보정 맵을 운전 온도에서 찍었는가?
  • 칩 밖으로 나가는 데이터가 링크 대역폭 안에 드는가? (원시 사건이면 1 Gbit/s를 쉽게 넘는다)

자주 묻는 질문

일반 CMOS에서 게인만 높이면 같은 효과가 나지 않나요?

게인은 신호와 함께 그 앞단의 잡음도 키워서, 광자 수가 바뀌지 않는 한 샷 노이즈가 정한 한계를 넘지 못합니다. 게인이 줄여 주는 것은 뒤단 변환에서 붙는 잡음의 비중뿐이고, 광자 100개에서 신호 대 잡음비의 위쪽 끝은 양자 효율 0.6일 때 7.7입니다. 노출을 늘리지 못하는 조건에서 신호 대 잡음비를 올리는 길은 광자를 더 모으는 조명과 밝은 렌즈, 혹은 읽기 잡음 없이 프레임을 더하는 센서입니다.

타임 게이팅에 레이저가 꼭 필요한가요?

게이트가 가를 수 있는 시간은 펄스 폭보다 짧아질 수 없어서, 수 ns 폭으로 켜지는 LED 펄스라면 수지 속 수백 mm 차이를 가를 뿐입니다. 1 ns는 수지 안에서 200 mm에 해당합니다. 100 ps 언저리를 원한다면 피코초 펄스 레이저 다이오드 같은 광원이 필요하고, 그 광원의 눈 안전 등급과 반사 차폐는 별도 검토가 필요합니다.

용어 풀이

  • [1] 읽기 잡음 read noise
    화소에 모인 전하를 전압으로 읽어 숫자로 바꿀 때 덧붙는 잡음입니다. 프레임을 읽을 때마다 한 번씩 더해집니다. ↩
  • [2] SPAD single-photon avalanche diode, 단일광자 애벌란시 다이오드
    광자 하나가 들어오면 애벌란시 항복을 일으켜 디지털 펄스를 내는 다이오드입니다. 빛의 양을 펄스의 개수로 셉니다. ↩
  • [3] 타임 게이팅 time gating
    펄스 조명을 쏜 뒤 정해진 시간 구간에 도착한 광자만 세는 방법입니다. 늦게 도착한 산란광을 시간으로 걸러 냅니다. ↩
  • [4] 샷 노이즈 shot noise
    광자가 띄엄띄엄 도착하면서 생기는 통계적 흔들림입니다. 평균 N개가 오면 흔들림은 √N이라 광자 수를 늘려야만 줄어듭니다. ↩
  • [5] 광자 검출 효율 photon detection efficiency, PDE
    화소에 도착한 광자 가운데 실제로 펄스가 되는 비율입니다. 일반 센서의 양자 효율에 해당합니다. ↩
  • [6] 암계수 dark count
    빛이 없어도 열 등으로 생기는 가짜 펄스입니다. 온도가 오르면 늘어나므로 운전 온도에서 보정 맵을 찍습니다. ↩
  • [7] 파일업 pile-up
    펄스를 낸 화소가 잠시 다음 광자를 받지 못해, 빛이 많을수록 계수가 실제보다 적게 나오는 현상입니다. 펄스당 광자가 0.1개만 돼도 약 5 %를 놓칩니다. ↩
  • [8] 매크로픽셀 macropixel
    여러 화소를 한 칸으로 묶어 시각 정보를 함께 처리하는 단위입니다. 256 × 256 화소를 64 × 64로 묶으면 한 칸이 4 × 4 화소입니다. ↩
  • [9] WD working distance, 작동 거리
    렌즈 앞에서 검사할 면까지의 거리입니다. 본문 값은 얇은 렌즈 근사로 렌즈 중심을 기준으로 계산했습니다. ↩
  • [10] 타이밍 지터 timing jitter
    같은 순간에 도착한 광자라도 센서가 기록하는 시각이 조금씩 흔들리는 정도입니다. 펄스 폭과 함께 게이트가 가를 수 있는 가장 짧은 시간을 정합니다. ↩
  • [11] 시각 히스토그램 arrival-time histogram
    광자가 펄스 뒤 몇 ps에 도착했는지를 시간 칸마다 세어 쌓은 분포입니다. 광자 하나하나의 시각을 보내는 대신 이 분포만 보내면 데이터가 크게 줄어듭니다. ↩

참고 자료

  • Singular Photonics, Singular Photonics launches world-first SPAD-based image sensor (2026년 9월 10일, Litavis: 256 × 256 px 광자 계수 영상, 64 × 64 매크로픽셀 피코초 타이밍, 세기 · 타이밍 · 히스토그램 동시 동작)
  • Apple Inc., 미국 등록특허 US10620300B2 SPAD array with gated histogram construction (우선일 · 출원 2015년 8월 20일, 등록 2020년 4월 14일)
  • Apple Inc., 미국 등록특허 US10801886B2 SPAD detector having modulated sensitivity (우선일 2017년 1월 25일, 출원 2018년 1월 24일, 등록 2020년 10월 13일)
  • 계산식: 번짐 한계 노출 = 화소 분해능 ÷ 이동 속도, CMOS 신호 대 잡음비 = QE·N ÷ √(QE·N + k·σr²), SPAD 신호 대 잡음비 = √(PDE·N), 경계 광자 수 = PDE·σr² ÷ (QE·(QE − PDE)), 파일업 손실 = 1 − (1 − e^−μ) ÷ μ, 게이트 듀티 = 게이트 폭 × 반복 주파수, 시야 = 256 × 화소 분해능, WD ≈ f × (1 + 1/m), 수지 속 빛의 속도 = 0.2998 mm/ps ÷ 1.5, 원시 데이터 = 화소 수 × 계수율 × 16비트

함께 읽으면 좋은 글 — 센서를 바꾸면 조명도 다시 계산해야 합니다 · 깊이 카메라의 오차는 거리의 제곱으로 자란다 · SWIR 이미징에서 결함 대비를 지키는 것은 조명과 조리개다

2005년부터 생산설비의 기계설계와 프로젝트 관리를 맡아 온 엔지니어입니다. 설비에 들어가는 카메라·렌즈·조명을 수식과 공개 자료로 계산하고, 가정과 출처를 함께 밝혀 기록합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다